<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE module [
  <!ELEMENT module (dtdversion,name,version,description*,help*,about*,requires*,file+)>
  <!ELEMENT dtdversion (#PCDATA)>
  <!ELEMENT name (#PCDATA)>
  <!ELEMENT version (#PCDATA)>
  <!ELEMENT mincmsversion (#PCDATA)>
  <!ELEMENT description (#PCDATA)>
  <!ELEMENT help (#PCDATA)>
  <!ELEMENT about (#PCDATA)>
  <!ELEMENT requires (requiredname,requiredversion)>
  <!ELEMENT requiredname (#PCDATA)>
  <!ELEMENT requiredversion (#PCDATA)>
  <!ELEMENT file (filename,isdir,data)>
  <!ELEMENT filename (#PCDATA)>
  <!ELEMENT isdir (#PCDATA)>
  <!ELEMENT data (#PCDATA)>
]>
<module>
	<dtdversion>1.3</dtdversion>
	<name>EFAGISmsLight</name>
	<version>0.0.1</version>
  <mincmsversion>1.11</mincmsversion>
	<help><![CDATA[LS0gTWFucXVlIGNoYSZpY2lyYztuZSBkZSBsYW5ndWUgLSBtb2R1bGUgOiBFRkFHSVNtc0xpZ2h0IHN0cmluZzpoZWxwLS08aDM+UGFyYW1ldGVyczwvaDM+PHVsPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGxhbmc9ImVuX1VTIiAtIG91IGZyX0ZSIChmcmFuJmNjZWRpbDthaXMpIFBhcmFtJmVncmF2ZTt0cmUgdXRpbGlzJmVhY3V0ZTsgcG91ciBzcCZlYWN1dGU7Y2lmaWVyIGRhbnMgcXVlbGxlIGxhbmd1ZSBhZmZpY2hlciBsZSBtb2R1bGUgZGFucyBsYSBwYXJ0aWUgcHVibGlxdWUuIENlIHBhcmFtJmVncmF2ZTt0cmUgbiYjMDM5O2VzdCBwYXMgc3VwcG9ydCZlYWN1dGU7IG91IHV0aWxlIHBvdXIgdG91cyBsZXMgbW9kdWxlcy4gQXR0ZW50aW9uIDxzdHJvbmc+b2Jzb2wmZWdyYXZlO3RlPC9zdHJvbmc+IGVuIHZlcnNpb24gMS4xMSBwb3VyIGxlcyB0cmFkdWN0aW9ucy48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHRlbXBsYXRlPSIiIC0gU3DDqWNpZmllIHVuIGdhYmFyaXQgZGUgbGEgbGlzdGUgZGVzIGdhYmFyaXRzIHF1aSBwZXV0ICZlY2lyYzt0cmUgdXRpbGlzJmVhY3V0ZTsgCnBvdXIgbCZhY3V0ZTthZmZpY2hhZ2UgZHUgZm9ybXVsYWlyZSBkJmFjdXRlO2luc2NyaXB0aW9uLiBTaSBhdWN1bmUgdmFsZXVyIG4mYWN1dGU7ZXN0IGQmZWFjdXRlO2ZpbmllLCBsZSBnYWJhcml0IAptYXJxdSZlYWN1dGU7ICZsYXF1bztwYXIgZCZlYWN1dGU7ZmF1dCZyYXF1bzsgc2VyYSB1dGlsaXMmZWFjdXRlOy48L2xpPjwvdWw+]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBFcmljRnJlZWxhbmNlICZsdDtlcmljZnJlZWxhbmNlQGdtYWlsLmNvbSZndDs8YnIgLz48YnIgLz5WZXJzaW9uOiAwLjAuMTxiciAvPjxiciAvPkNoYW5nZSBIaXN0b3J5OjxiciAvPi0tIE1hbnF1ZSBjaGEmaWNpcmM7bmUgZGUgbGFuZ3VlIC0gbW9kdWxlIDogRUZBR0lTbXNMaWdodCBzdHJpbmc6Y2hhbmdlbG9nLS08YnIgLz4=]]></about>
	<description><![CDATA[-- Manque cha&icirc;ne de langue - module : EFAGISmsLight string:description--]]></description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.account.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBnQ21zCiAqLwogCmlmICghaXNzZXQoJGdDbXMpKSAKCWV4aXQoKTsKCi8qKgogKiBPYmplY3QKICovCiAKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCR0aGlzLT5HZXROYW1lKCkgLicgQWNjb3VudCBFZGl0JykpIAoJZXhpdCgpOwoKJG9iamVjdCA9ICR0aGlzLT5HZXROYW1lKCkgLidfJy4gJHBhcmFtc1snbm9kZSddOwokJHBhcmFtc1snbm9kZSddID0gbmV3ICRvYmplY3QoJGlkLCAkcmV0dXJuaWQsICRwYXJhbXMpOwoKaWYgKCQkcGFyYW1zWydub2RlJ10tPnVwZGF0ZUFjY291bnQoKSkKCWVjaG8ganNvbl9lbmNvZGUoJCRwYXJhbXNbJ25vZGUnXS0+cmVzKTsKCQkKZXhpdCgpOw==]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBnQ21zCiAqLwogCmlmICghaXNzZXQoJGdDbXMpKSBleGl0ICgpOwoKLyoqCiAqIE9iamVjdAogKi8KIAokb2JqZWN0ID0gJHRoaXMtPkdldE5hbWUoKSAuJ19mcm9udCc7CiQkcGFyYW1zWydub2RlJ10gPSBuZXcgJG9iamVjdCgkaWQsICRyZXR1cm5pZCwgJHBhcmFtcyk7CgppZiAoJCRwYXJhbXNbJ25vZGUnXS0+dXNlckluc2NyaXB0aW9uKCkpCgllY2hvICgkJHBhcmFtc1snbm9kZSddLT5yZXMpOwoJLy9lY2hvIGpzb25fZW5jb2RlKCQkcGFyYW1zWydub2RlJ10tPnJlcyk7CgkJCg==]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBnQ21zCiAqLwogCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKLyoqCiAqIFBlcm1pc3Npb25zCiAqLwogCmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbigkdGhpcy0+R2V0TmFtZSgpIC4nIFVzZScpKSBleGl0OwoKLyoqCiAqIEhlYWRlciB0YWJzIDo6IG5vZGUKICovCgokdGFicyA9IGFycmF5KCdNZXNzYWdlcycsICdIaXN0b3JpYycsICdSZWNpcGllbnRzJywgJ0dyb3VwcycsICdUZW1wbGF0ZXMnKTsJCmlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCR0aGlzLT5HZXROYW1lKCkgLicgQWNjb3VudCBFZGl0JykpCgkkdGFic1tdID0gJ0FjY291bnQnOwkKaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJHRoaXMtPkdldE5hbWUoKSAuJyBQcmVmZXJlbmNlcyBFZGl0JykpCgkkdGFic1tdID0gJ1ByZWZlcmVuY2VzJzsJCgovKioKICogUGFyYW1zCiAqLwogCiRqc29uID0gaXNzZXQoJHBhcmFtc1snbm9kZSddKSA/ICRwYXJhbXNbJ25vZGUnXSA6IC0xOwokbm9kZSA9IGlzc2V0KCRwYXJhbXNbJ25vZGUnXSkgPyAkcGFyYW1zWydub2RlJ10gOiAkdGFic1swXTsKJHBhcmFtc1snbm9kZSddID0gJG5vZGU7CgovKioKICogT2JqZWN0CiAqLwogCiRjbGFzcyA9ICR0aGlzLT5HZXROYW1lKCkgLidfJy4gc3RydG9sb3dlcigkbm9kZSk7CiRtZXRob2QgPSAnYWRtaW5QYW5lbCc7CgovLyBDbGFzcyBhbmQgbWV0aG9kCmlmIChjbGFzc19leGlzdHMoJGNsYXNzKSkgCnsKCSQkbm9kZSA9IG5ldyAkY2xhc3MoJGlkLCAkcmV0dXJuaWQsICRwYXJhbXMpOwkKCWlmIChtZXRob2RfZXhpc3RzKCQkbm9kZSwgJG1ldGhvZCApKSAKCXsgCgkJJG1zZ1R5cGUgPSAwOwoJCSQkbm9kZS0+JG1ldGhvZCgkanNvbik7Cgl9IGVsc2UgewoJCSRtc2dUeXBlID0gMTsKCQkkbXNnVGV4dCA9ICR0aGlzLT5MYW5nKCdFcnJvciA6IGNhbGwgdG8gdW5kZWZpbmVkIG1ldGhvZC4nLCAkY2xhc3MgLicgPiAnLiAkbWV0aG9kKTsKCX0KICAgIAp9IGVsc2UgewoJJG1zZ1R5cGUgPSAxOwogICAgJG1zZ1RleHQgPSAkdGhpcy0+TGFuZygnRXJyb3IgOiBjbGFzcyBub3QgZm91bmQuJywgJGNsYXNzKTsgIAp9CgppZiAoJG1zZ1R5cGUgPT09IDEgJiYgJGpzb24gPT09IC0xKSAKewoJJG9bJ21zZ1R5cGUnXSA9IDE7Cgkkb1snbXNnVGV4dCddID0gJG1zZ1RleHQ7Cgkkb1snY2xvc2UnXSA9IGZhbHNlOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdvJywgJG8pOyAKCSRvID0gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnbWVzc2FnZV9ib3gudHBsJyk7Cgp9IGVsc2UgaWYgKCRtc2dUeXBlID09PSAxICYmICRqc29uICE9IC0xKSB7Cgkkb1snbXNnVHlwZSddID0gMTsKCSRvWydtc2dUZXh0J10gPSAkbXNnVGV4dDsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignbycsICRvKTsKCSRvID0gYXJyYXkoJ21zZ1R5cGUnPT4kb1snbXNnVHlwZSddLCAncmVzdWx0Jz0+JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnbWVzc2FnZV9ib3gudHBsJykpOwoJCn0gZWxzZSB7CgkkbyA9ICQkbm9kZS0+cmVzOwkJCn0KCgovKioKICogQWRtaW4gcGFuZWwKICovCiAKaWYgKCRqc29uID09PSAtMSkKewoJZWNobyAkdGhpcy0+U3RhcnRUYWJIZWFkZXJzKCk7Cglmb3JlYWNoICgkdGFicyBhcyAkdGFiKQoJewoJCWVjaG8gJwoJCTxkaXYgaWQ9IicuIHN0cnRvbG93ZXIoJHRhYikgLiciPicuCgkJCSR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCAnJywgYXJyYXkoJ25vZGUnPT4gc3RydG9sb3dlcigkdGFiKSksICcnLCBmYWxzZSwgZmFsc2UsICdyZWw9IicuIHN0cnRvbG93ZXIoJHRhYikgLidfYyIgY2xhc3M9InRhYkhlYWRlcnNMaW5rcyInKS4KCQkJJHRoaXMtPkxhbmcoJHRhYikKCQkuJzwvZGl2Pic7Cgl9CgllY2hvICR0aGlzLT5FbmRUYWJIZWFkZXJzKCk7CgoJZWNobyAkdGhpcy0+U3RhcnRUYWJDb250ZW50KCk7CgkJZm9yZWFjaCAoJHRhYnMgYXMgJHRhYikKCQl7CgkJCWVjaG8gJHRoaXMtPlN0YXJ0VGFiKCR0YWIsICRwYXJhbXMpOwoJCQlpZiAoJHRhYiA9PSAkdGFic1swXSkgCgkJCQllY2hvICRvOwoJCQllbHNlCgkJCQllY2hvICcnOwoJCQllY2hvICR0aGlzLT5FbmRUYWIoKTsKCQl9CgllY2hvICR0aGlzLT5FbmRUYWJDb250ZW50KCk7CQoKfSBlbHNlIHsKCWVjaG8ganNvbl9lbmNvZGUoJG8pOwoJZXhpdDsKfQoK]]></data>
	</file>
	<file>
	  <filename>/action.delete.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBnQ21zCiAqLwogCmlmICghaXNzZXQoJGdDbXMpKSBleGl0ICgpOwoKLyoqCiAqIFBlcm1pc3Npb25zCiAqLwoKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCR0aGlzLT5HZXROYW1lKCkgLicgRGVsZXRlJykpIGV4aXQgKCk7CgovKioKICogT2JqZWN0CiAqLwoKJG9iamVjdCA9ICR0aGlzLT5HZXROYW1lKCkgLidfJy4gJHBhcmFtc1snbm9kZSddOwokJHBhcmFtc1snbm9kZSddID0gbmV3ICRvYmplY3QoJGlkLCAkcmV0dXJuaWQsICRwYXJhbXMpOwoKaWYgKCQkcGFyYW1zWydub2RlJ10tPmRlbGV0ZVJlY29yZCgpKQoJZWNobyBqc29uX2VuY29kZSgkJHBhcmFtc1snbm9kZSddLT5yZXMpOwoKZXhpdCAoKTs=]]></data>
	</file>
	<file>
	  <filename>/action.insertupdate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBnQ21zCiAqLwogCmlmICghaXNzZXQoJGdDbXMpKSBleGl0ICgpOwoKLyoqCiAqIFBlcm1pc3Npb25zCiAqLwoKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCR0aGlzLT5HZXROYW1lKCkgLicgQWRkJykgfHwgISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJHRoaXMtPkdldE5hbWUoKSAuJyBFZGl0JykpIAoJZXhpdCgpOwogCi8qKgogKiBPYmplY3QKICovCiAKJG9iamVjdCA9ICR0aGlzLT5HZXROYW1lKCkgLidfJy4gJHBhcmFtc1snbm9kZSddOwokJHBhcmFtc1snbm9kZSddID0gbmV3ICRvYmplY3QoJGlkLCAkcmV0dXJuaWQsICRwYXJhbXMpOwoKaWYgKCQkcGFyYW1zWydub2RlJ10tPmluc2VydFVwZGF0ZVJlY29yZCgpKQoJZWNobyBqc29uX2VuY29kZSgkJHBhcmFtc1snbm9kZSddLT5yZXMpOwoJCQpleGl0ICgpOw==]]></data>
	</file>
	<file>
	  <filename>/action.makeactive.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBnQ21zCiAqLwogCmlmICghaXNzZXQoJGdDbXMpKSBleGl0ICgpOwoKLyoqCiAqIFBlcm1pc3Npb25zCiAqLwoKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCR0aGlzLT5HZXROYW1lKCkgLicgRWRpdCcpKSBleGl0ICgpOwoKLyoqCiAqIE9iamVjdAogKi8KCiRvYmplY3QgPSAkdGhpcy0+R2V0TmFtZSgpIC4nXycuICRwYXJhbXNbJ25vZGUnXTsKJCRwYXJhbXNbJ25vZGUnXSA9IG5ldyAkb2JqZWN0KCRpZCwgJHJldHVybmlkLCAkcGFyYW1zKTsKCmlmICgkJHBhcmFtc1snbm9kZSddLT5tYWtlQWN0aXZlKCkpCgllY2hvIGpzb25fZW5jb2RlKCQkcGFyYW1zWydub2RlJ10tPnJlcyk7CgpleGl0ICgpOw==]]></data>
	</file>
	<file>
	  <filename>/action.makedefault.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBnQ21zCiAqLwogCmlmICghaXNzZXQoJGdDbXMpKSBleGl0ICgpOwoKLyoqCiAqIFBlcm1pc3Npb25zCiAqLwoKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCR0aGlzLT5HZXROYW1lKCkgLicgRWRpdCcpKSBleGl0ICgpOwoKLyoqCiAqIE9iamVjdAogKi8KCiRvYmplY3QgPSAkdGhpcy0+R2V0TmFtZSgpIC4nXycuICRwYXJhbXNbJ25vZGUnXTsKJCRwYXJhbXNbJ25vZGUnXSA9IG5ldyAkb2JqZWN0KCRpZCwgJHJldHVybmlkLCAkcGFyYW1zKTsKCmlmICgkJHBhcmFtc1snbm9kZSddLT5tYWtlRGVmYXVsdCgpKQoJZWNobyBqc29uX2VuY29kZSgkJHBhcmFtc1snbm9kZSddLT5yZXMpOwoKZXhpdCAoKTs=]]></data>
	</file>
	<file>
	  <filename>/action.preferences.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBnQ21zCiAqLwogCmlmICghaXNzZXQoJGdDbXMpKSAKCWV4aXQoKTsKCi8qKgogKiBPYmplY3QKICovCiAKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCR0aGlzLT5HZXROYW1lKCkgLicgUHJlZmVyZW5jZXMgRWRpdCcpKSAKCWV4aXQoKTsKCiRvYmplY3QgPSAkdGhpcy0+R2V0TmFtZSgpIC4nXycuICRwYXJhbXNbJ25vZGUnXTsKJCRwYXJhbXNbJ25vZGUnXSA9IG5ldyAkb2JqZWN0KCRpZCwgJHJldHVybmlkLCAkcGFyYW1zKTsKCmlmICgkJHBhcmFtc1snbm9kZSddLT51cGRhdGVQcmVmZXJlbmNlcygpKQoJZWNobyBqc29uX2VuY29kZSgkJHBhcmFtc1snbm9kZSddLT5yZXMpOwoJCQpleGl0KCk7]]></data>
	</file>
	<file>
	  <filename>/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/css/admin.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogY21zbXMgKi8KI3BhZ2VfY29udGVudCB7cGFkZGluZy10b3A6IDFlbTsgbWluLWhlaWdodDogMzAwcHg7fQojcGFnZV9jb250ZW50IC5hbGVydHtib3JkZXItcmFkaXVzOiA0cHggNHB4IDRweCA0cHg7IHBhZGRpbmc6IDEwcHg7IGJvcmRlcjogbm9uZTsgYmFja2dyb3VuZDogI2RkZDsgbWFyZ2luLWJvdHRvbTogMDt9CiNwYWdlX2NvbnRlbnQubG9hZGluZyB7YmFja2dyb3VuZC1pbWFnZTogdXJsKGltZy9sb2FkaW5nLmdpZik7IGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciAyNXB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O30KI3BhZ2VfY29udGVudCBoMiB7bWFyZ2luOiAwIDAgMWVtIDA7fQojcGFnZV90YWJzIGRpdiB7cG9zaXRpb246IHJlbGF0aXZlO30KI3BhZ2VfdGFicyBkaXY+YSB7YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGRpc3BsYXk6IGJsb2NrOyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDowOyBsZWZ0OiAwOyB6LWluZGV4OiAxMDAwOyB0ZXh0LWluZGVudDogLTk5OTk5ZW07IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7fQpkaXYucGFnZWNvbnRhaW5lciAucGFnZXRleHQge2ZvbnQtd2VpZ2h0OiBub3JtYWw7fQpkaXYucGFnZWNvbnRhaW5lciAucGFnZWlucHV0IHRleHRhcmVhIHt3aWR0aDogYXV0bzsgaGVpZ2h0OiBhdXRvO30KZGl2LnBhZ2Vjb250YWluZXIgLnBhZ2VpbnB1dCBsYWJlbCB7bWFyZ2luLXJpZ2h0OiAxZW07fQpkaXYucGFnZWNvbnRhaW5lciAucGFnZXRleHQgbGFiZWwge2Rpc3BsYXk6IGlubGluZS1ibG9jazsgbWFyZ2luLXJpZ2h0OiAxZW07IGZvbnQtd2VpZ2h0OiBib2xkO30KCnAjcXVvdGFMZWZ0LCBkaXYucGFnZWNvbnRhaW5lciBmaWVsZHNldC5xdW90YU5vdGlmaWNhdGlvbiB7Ym9yZGVyLXJhZGl1czogNHB4IDRweCA0cHggNHB4OyBwYWRkaW5nOiAxMHB4OyBib3JkZXI6IG5vbmU7IGJhY2tncm91bmQ6ICNkZGQ7IG1hcmdpbi1ib3R0b206IDA7fQpmaWVsZHNldC5xdW90YU5vdGlmaWNhdGlvbiBwLCBwI3F1b3RhTGVmdCB7Y29sb3I6ICM1ODU4NTg7IGZvbnQtd2VpZ2h0OiBib2xkO30KZmllbGRzZXQucXVvdGFOb3RpZmljYXRpb24gcCBzcGFuLCBwI3F1b3RhTGVmdCBzcGFuIHtjb2xvcjogYmx1ZTt9CgphLmFkZCwgYS5jbG9zZSB7CglmbG9hdDogbGVmdDsgbWFyZ2luLXJpZ2h0OiAxZW07CW1hcmdpbi10b3A6IDFweDsgY29sb3I6ICMwMDA7IGRpc3BsYXk6IGlubGluZS1ibG9jazsKCWxpbmUtaGVpZ2h0OiAyNnB4OyAKCXRleHQtYWxpZ246IGxlZnQ7IAoJYmFja2dyb3VuZDogI2YwZjBmMDsgCglib3JkZXI6IDFweCBzb2xpZCAjY2VjZWNlOyAKCWJvcmRlci1yYWRpdXM6IDRweDsgCglwYWRkaW5nOiAwIDhweDsKCW1hcmdpbi1ib3R0b206IDZweDsKCWN1cnNvcjogcG9pbnRlcjsKfQoKYS5hZGQ6aG92ZXIsIGEuY2xvc2U6aG92ZXJ7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgYmFja2dyb3VuZDogI2ZmZjt9CgpzcGFuLmRlbGV0ZUZpbHRlcnsKCWZsb2F0OiBsZWZ0OwoJY29sb3I6ICMwMDA7CglkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CglsaW5lLWhlaWdodDogMjZweDsgCgl0ZXh0LWFsaWduOiBsZWZ0OyAKCWJhY2tncm91bmQ6ICNmMGYwZjA7IAoJYm9yZGVyOiAxcHggc29saWQgI0FBQUFBQTsKICAgIGJvcmRlci1yYWRpdXM6IDVweCA1cHggNXB4IDVweDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIG1hcmdpbjogLjVlbSAxZW0gMCAxZW07CiAgICBwYWRkaW5nOiAwIDhweDsKICAgIGRpc3BsYXk6IG5vbmU7Cn0KCnNwYW4uZGVsZXRlRmlsdGVyOmhvdmVye3RleHQtZGVjb3JhdGlvbjogbm9uZTsgYmFja2dyb3VuZDogI2ZmZjt9CgoKLyogZGF0ZXBpY2tlciAqLwoKLnVpLXRpbWVwaWNrZXItZGl2IC51aS13aWRnZXQtaGVhZGVyIHsgbWFyZ2luLWJvdHRvbTogOHB4OyB9Ci51aS10aW1lcGlja2VyLWRpdiBkbCB7IHRleHQtYWxpZ246IGxlZnQ7IH0KLnVpLXRpbWVwaWNrZXItZGl2IGRsIGR0IHsgaGVpZ2h0OiAyNXB4OyBtYXJnaW4tYm90dG9tOiAtMjVweDsgfQoudWktdGltZXBpY2tlci1kaXYgZGwgZGQgeyBtYXJnaW46IDAgMTBweCAxMHB4IDY1cHg7IH0KLnVpLXRpbWVwaWNrZXItZGl2IHRkIHsgZm9udC1zaXplOiA5MCU7IH0KLnVpLXRwaWNrZXItZ3JpZC1sYWJlbCB7IGJhY2tncm91bmQ6IG5vbmU7IGJvcmRlcjogbm9uZTsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyB9CgovKiBkYXRhdGFibGVzIGZpbHRlciBwYWdpbmF0ZSovCgouZGF0YXRhYmxlIGlucHV0LApkaXYuZGF0YVRhYmxlc19maWx0ZXIgaW5wdXQgewoJdGV4dC1hbGlnbjogbGVmdDsgCgliYWNrZ3JvdW5kOiAjZjBmMGYwOyAKCWJvcmRlcjogMXB4IHNvbGlkICNjZWNlY2U7IAoJYm9yZGVyLXJhZGl1czogNHB4OyAKCXBhZGRpbmc6IDVweCA4cHg7Cgl0ZXh0LWluZGVudDogMDsKCWRpc3BsYXk6IGlubGluZS1ibG9jazsKfQoKLmRhdGF0YWJsZSBpbnB1dDpob3ZlciwKZGl2LmRhdGFUYWJsZXNfZmlsdGVyIGlucHV0OmhvdmVyIHtiYWNrZ3JvdW5kOiAjZmZmfQoKLmRhdGF0YWJsZSBzZWxlY3QsCmRpdi5kYXRhVGFibGVzX2xlbmd0aCBzZWxlY3QgewoJdGV4dC1hbGlnbjogbGVmdDsgCgliYWNrZ3JvdW5kOiAjZjBmMGYwOyAKCWJvcmRlcjogMXB4IHNvbGlkICNjZWNlY2U7IAoJYm9yZGVyLXJhZGl1czogNHB4OyAKCXBhZGRpbmc6IDRweCA4cHg7Cgl0ZXh0LWluZGVudDogMDsKCW1hcmdpbi1sZWZ0OiA0cHg7CglkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cn0KCi5kYXRhdGFibGUgc2VsZWN0OmhvdmVyLApkaXYuZGF0YVRhYmxlc19sZW5ndGggc2VsZWN0OmhvdmVyIHtiYWNrZ3JvdW5kOiAjZmZmfQoKLyogZGF0YXRhYmxlcyBjb2x2aXMgKi8KCmRpdi5Db2xWaXMge2Zsb2F0OiBsZWZ0OyBsaW5lLWhlaWdodDogMzBweDsgbWFyZ2luLXJpZ2h0OiAxZW07fQpidXR0b24uQ29sVmlzX0J1dHRvbiB7CglsaW5lLWhlaWdodDogMjZweDsgCgl0ZXh0LWFsaWduOiBsZWZ0OyAKCWJhY2tncm91bmQ6ICNmMGYwZjA7IAoJYm9yZGVyOiAxcHggc29saWQgI2NlY2VjZTsgCglib3JkZXItcmFkaXVzOiA0cHg7IAoJcGFkZGluZzogMCA4cHg7CgltYXJnaW4tYm90dG9tOiA2cHg7Cn0KYnV0dG9uLkNvbFZpc19CdXR0b246aG92ZXIge2JhY2tncm91bmQ6ICNmZmY7fQpkaXYuQ29sVmlzX2NvbGxlY3Rpb24ge2JhY2tncm91bmQ6ICNmZmY7IHBhZGRpbmc6IDZweCA2cHggMCA2cHg7IGJvcmRlcjogMXB4IHNvbGlkICNjZWNlY2U7IGJvcmRlci1yYWRpdXM6IDRweDsgfQoKLyogZGF0YXRhYmxlcyB0YWJsZXRvb2xzICovCgpkaXYuRFRUVF9jb250YWluZXIge3BhZGRpbmctdG9wOiAycHg7IHdpZHRoOiAxODBweDt9CgpidXR0b24uRFRUVF9idXR0b24sIGRpdi5EVFRUX2J1dHRvbiwgYS5EVFRUX2J1dHRvbiB7CgliYWNrZ3JvdW5kOiAjZjBmMGYwOyAKCWJvcmRlcjogMXB4IHNvbGlkICNjZWNlY2U7IAoJYm9yZGVyLXJhZGl1czogNHB4OyAKICAgIGJveC1zaGFkb3c6IG5vbmU7CglsaW5lLWhlaWdodDogMjVweDsgCiAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGZsb2F0OiBsZWZ0OwogICAgZm9udC1zaXplOiBhdXRvOwogICAgbWFyZ2luLWxlZnQ6IDNweDsKICAgIHBhZGRpbmc6IDAgOHB4OwogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgpidXR0b24uRFRUVF9idXR0b246aG92ZXIsIGRpdi5EVFRUX2J1dHRvbjpob3ZlciwgYS5EVFRUX2J1dHRvbjpob3ZlciB7CgliYWNrZ3JvdW5kOiAjZmZmOyAKCXRleHQtZGVjb3JhdGlvbjogbm9uZTsKfSAKCi8qIGRhdGF0YWJsZXMgKi8KCmRpdi5kYXRhVGFibGVzX3dyYXBwZXIge21hcmdpbi10b3A6IDFlbTt9CgpkaXYudG9wTGVuZ3RoRmlsdGVyIHtsaW5lLWhlaWdodDogMzBweDsgLypjbGVhcjogYm90aDsqL30KZGl2LnRvcEluZm9QYWdpbmF0aW9uIHtsaW5lLWhlaWdodDogMzBweDsgY2xlYXI6IGJvdGg7fQpkaXYuYm90dG9tSW5mb1BhZ2luYXRpb24ge2xpbmUtaGVpZ2h0OiAzMHB4OyBjbGVhcjogYm90aDt9CgpkaXYuZGF0YVRhYmxlc19sZW5ndGgge2Zsb2F0OiBsZWZ0OyB3aWR0aDogMjAwcHg7fQpkaXYuZGF0YVRhYmxlc19maWx0ZXIge2Zsb2F0OiBsZWZ0OyB0ZXh0LWFsaWduOiBsZWZ0OyB3aWR0aDogMzAwcHg7fQpkaXYuZGF0YVRhYmxlc19pbmZvIHtmbG9hdDogbGVmdDsgbWFyZ2luLXRvcDogLjI1ZW07fQpkaXYuZGF0YVRhYmxlc19wYWdpbmF0ZSB7ZmxvYXQ6IHJpZ2h0OyB0ZXh0LWFsaWduOiByaWdodDsgbWFyZ2luLXRvcDogLjI1ZW07fQpkaXYuZGF0YVRhYmxlc19wcm9jZXNzaW5nIHt0ZXh0LWFsaWduOiBjZW50ZXI7fQoKLyoKICogVGFibGUKICovCgouZGF0YVRhYmxlc19zY3JvbGxIZWFkIHtjbGVhcjogYm90aH0KCnRhYmxlLmRhdGFUYWJsZSB7bWFyZ2luOiAwOyBjbGVhcjogYm90aDsgd2lkdGg6IDEwMCU7fQp0YWJsZS5kYXRhVGFibGUgdGhlYWQgdHIge2JhY2tncm91bmQ6ICNlZmU7IGNvbG9yOiBibGFjazsgdGV4dC1zaGFkb3c6IG5vbmU7fQp0YWJsZS5kYXRhVGFibGUgdGZvb3QgdHIge2JhY2tncm91bmQ6ICNlZmU7IGNvbG9yOiBibGFjazsgdGV4dC1zaGFkb3c6IG5vbmU7fQp0YWJsZS5kYXRhVGFibGUgdGhlYWQgdGgge3BhZGRpbmc6IDNweCAxMHB4IDNweCAxOHB4OyBmb250LXdlaWdodDogYm9sZDsgY3Vyc29yOiBwb2ludGVyOyAqY3Vyc29yOiBoYW5kOyBiYWNrZ3JvdW5kOiAjZWZlOyBjb2xvcjogYmxhY2s7IHRleHQtc2hhZG93OiBub25lOyBib3JkZXItYm90dG9tOiBub25lOyBoZWlnaHQ6IDI0cHg7fQp0YWJsZS5kYXRhVGFibGUgdGhlYWQgdGguc29ydGluZ19kaXNhYmxlZCB7cGFkZGluZy1sZWZ0OiAxMHB4OyBjdXJzb3I6IGRlZmF1bHQ7fQp0YWJsZS5kYXRhVGFibGUgdGhlYWQgdGguaWR4IHt3aWR0aDogMmVtICFpbXBvcnRhbnQ7fQp0YWJsZS5kYXRhVGFibGUgdGZvb3QgdGgge3BhZGRpbmc6IDNweCAxMHB4IDsgZm9udC13ZWlnaHQ6IGJvbGQ7IGJhY2tncm91bmQ6ICNlZmU7IGNvbG9yOiBibGFjazsgdGV4dC1zaGFkb3c6IG5vbmU7CWJvcmRlci1ib3R0b206IG5vbmU7fQp0YWJsZS5kYXRhVGFibGUgdGQge3BhZGRpbmc6IDNweCAxMHB4O30KdGFibGUuZGF0YVRhYmxlIHRkLmNlbnRlciwgdGFibGUuZGF0YVRhYmxlIHRkLmRhdGFUYWJsZXNfZW1wdHkge3RleHQtYWxpZ246IGNlbnRlcjt9CnRhYmxlLmRhdGFUYWJsZSB0ci5vZGQgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjRTJFNEZGOyB9CnRhYmxlLmRhdGFUYWJsZSB0ci5ldmVuIHsgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IH0KdGFibGUuZGF0YVRhYmxlIHRyLm9kZCB0ZC5zb3J0aW5nXzEgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjRDNENkZGOyB9CnRhYmxlLmRhdGFUYWJsZSB0ci5vZGQgdGQuc29ydGluZ18yIHsgYmFja2dyb3VuZC1jb2xvcjogI0RBRENGRjsgfQp0YWJsZS5kYXRhVGFibGUgdHIub2RkIHRkLnNvcnRpbmdfMyB7IGJhY2tncm91bmQtY29sb3I6ICNFMEUyRkY7IH0KdGFibGUuZGF0YVRhYmxlIHRyLmV2ZW4gdGQuc29ydGluZ18xIHsgYmFja2dyb3VuZC1jb2xvcjogI0VBRUJGRjsgfQp0YWJsZS5kYXRhVGFibGUgdHIuZXZlbiB0ZC5zb3J0aW5nXzIgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjRjJGM0ZGOyB9CnRhYmxlLmRhdGFUYWJsZSB0ci5ldmVuIHRkLnNvcnRpbmdfMyB7IGJhY2tncm91bmQtY29sb3I6ICNGOUY5RkY7IH0KCnRhYmxlLmRhdGFUYWJsZSB0ci5yb3dfc2VsZWN0ZWQgdGQgeyBjb2xvcjogYmx1ZSAhaW1wb3J0YW50OyB9CgoucGFnaW5nX3R3b19idXR0b24gYTphY3RpdmUsIC5wYWdpbmdfZnVsbF9udW1iZXJzIGE6YWN0aXZlIHtvdXRsaW5lOiBub25lfQoucGFnaW5nX3R3b19idXR0b24gYTpob3ZlciwgLnBhZ2luZ19mdWxsX251bWJlcnMgYTpob3ZlciB7dGV4dC1kZWNvcmF0aW9uOiBub25lO30KLnBhZ2luZ190d29fYnV0dG9uIGEsIAoucGFnaW5nX2Z1bGxfbnVtYmVycyBhLnBhZ2luYXRlX2J1dHRvbiwKLnBhZ2luZ19mdWxsX251bWJlcnMgYS5wYWdpbmF0ZV9hY3RpdmUgewoJYm9yZGVyOiAxcHggc29saWQgI2FhYTsKCS13ZWJraXQtYm9yZGVyLXJhZGl1czogNXB4OwoJLW1vei1ib3JkZXItcmFkaXVzOiA1cHg7Cglib3JkZXItcmFkaXVzOiA1cHg7CglwYWRkaW5nOiAycHggNXB4OwoJbWFyZ2luOiAwIDNweDsKCWN1cnNvcjogcG9pbnRlcjsKCWNvbG9yOiAjMzMzICFpbXBvcnRhbnQ7Cn0KLnBhZ2luZ190d29fYnV0dG9uIGEsIC5wYWdpbmdfZnVsbF9udW1iZXJzIGEucGFnaW5hdGVfYnV0dG9uIHtiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO30KLnBhZ2luZ190d29fYnV0dG9uIGEucGFnaW5hdGVfZW5hYmxlZF9wcmV2aW91czpob3ZlciwgCi5wYWdpbmdfdHdvX2J1dHRvbiBhLnBhZ2luYXRlX2VuYWJsZWRfbmV4dDpob3ZlciwgCi5wYWdpbmdfZnVsbF9udW1iZXJzIGEucGFnaW5hdGVfYnV0dG9uOmhvdmVyIHtiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjOyB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDt9Ci5wYWdpbmdfZnVsbF9udW1iZXJzIGEucGFnaW5hdGVfYWN0aXZlIHtiYWNrZ3JvdW5kLWNvbG9yOiAjOTlCM0ZGO30KLnBhZ2luZ190d29fYnV0dG9uIGEucGFnaW5hdGVfZGlzYWJsZWRfcHJldmlvdXMsCi5wYWdpbmdfdHdvX2J1dHRvbiBhLnBhZ2luYXRlX2Rpc2FibGVkX25leHQsCi5wYWdpbmdfZnVsbF9udW1iZXJzIGEucGFnaW5hdGVfYnV0dG9uX2Rpc2FibGVkIHtvcGFjaXR5OiAuMjU7IGN1cnNvcjogZGVmYXVsdDt9CgoKCnRhYmxlLmRhdGFUYWJsZSB0aGVhZCB0aC5zb3J0aW5nIHsgYmFja2dyb3VuZDogdXJsKCdpbWcvc29ydF9ib3RoLnBuZycpIG5vLXJlcGVhdCBsZWZ0IDEycHg7IH0KdGFibGUuZGF0YVRhYmxlIHRoZWFkIHRoLnNvcnRpbmdfYXNjIHsgYmFja2dyb3VuZDogdXJsKCdpbWcvc29ydF9hc2MucG5nJykgbm8tcmVwZWF0IGxlZnQgMTVweDsgfQp0YWJsZS5kYXRhVGFibGUgdGhlYWQgdGguc29ydGluZ19kZXNjIHsgYmFja2dyb3VuZDogdXJsKCdpbWcvc29ydF9kZXNjLnBuZycpIG5vLXJlcGVhdCBsZWZ0IDlweDsgfQp0YWJsZS5kYXRhVGFibGUgdGhlYWQgdGguc29ydGluZ19hc2NfZGlzYWJsZWQgeyBiYWNrZ3JvdW5kOiB1cmwoJ2ltZy9zb3J0X2FzY19kaXNhYmxlZC5wbmcnKSBuby1yZXBlYXQgbGVmdCAxNXB4OyB9CnRhYmxlLmRhdGFUYWJsZSB0aGVhZCB0aC5zb3J0aW5nX2Rlc2NfZGlzYWJsZWQgeyBiYWNrZ3JvdW5kOiB1cmwoJ2ltZy9zb3J0X2Rlc2NfZGlzYWJsZWQucG5nJykgbm8tcmVwZWF0IGxlZnQgOXB4OyB9CnRhYmxlLmRhdGFUYWJsZSB0aGVhZCB0aDphY3RpdmUge291dGxpbmU6IG5vbmU7fQp0YWJsZS5kYXRhVGFibGUgdGhlYWQgdGgubm8tb3JkZXJ7YmFja2dyb3VuZDogbm9uZTsgY3Vyc29yOiBkZWZhdWx0O30KdGFibGUuZGF0YVRhYmxlIHRoZWFkIHRoLm5vLXRoZWFke3RleHQtaW5kZW50OiAtOTk5OTllbTt9Cg==]]></data>
	</file>
	<file>
	  <filename>/css/img/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/css/img/back_disabled.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OENDQ0Q2NzcxQjNDMTFFMTgzMjk4NTg3RjVGMTg0RDIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OENDQ0Q2NzgxQjNDMTFFMTgzMjk4NTg3RjVGMTg0RDIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4Q0NDRDY3NTFCM0MxMUUxODMyOTg1ODdGNUYxODREMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4Q0NDRDY3NjFCM0MxMUUxODMyOTg1ODdGNUYxODREMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PrjJ0tsAAAHFSURBVHjarJM7S8NQFMdzk9CE+ASxQ4NbcaxDtWDaKRB1k0wFP4Do4NTJwY9QCm2guPQLuHQvOBZaOuggOAmZWlQsarCkj8Rz5URiG2IKvfDnnt7e/M7jnkNc12UWtVhmgWuhMIamOUeqpFqtZsvlcgoDIagfxjyREYDswH4JH+7CHgNx/gt8FIphGFscx50QQi5AsmVZt3C8DPoC2aDJv7BSqbQmCMIxAM5Ylt33zvv9PgWtIWQYGlmhUOCTyaQK5jlAjmAX/f9DZBS0Cvr0ajYDKxaLK5Ik7YGZh2h00GaQM9u2JdgErFkgjEBhJZAO9TkNS99xHH66+DN9VqlU3jqdjtHtdq/A+1NIO5Gg8z9pmqbJ1Gq1ZzBvFEUxc7lcXpblrCiK61FeffoBaPeOQYNms/kIutY07T6TyRwkEokUz/OxqDAKcrBv3j270WhYrVbrQVVVJZ1Oa/F4fBtqSvB+aGQUMMKd9s+APv8HrHq9/tput+90XT+Enz3MwPVDiTeX0AZBj8Ph2Cxhk26gTZ29gHqYxYhywibAQa8TjJZGaSGMxVEa4r1Is+mlMfJBLYx4jDB3rkH3RejVkvU5+oV9CzAAh3Ks+xqtzZMAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/css/img/back_enabled.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OENDQ0Q2NzMxQjNDMTFFMTgzMjk4NTg3RjVGMTg0RDIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OENDQ0Q2NzQxQjNDMTFFMTgzMjk4NTg3RjVGMTg0RDIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0N0UwNjdENjFCM0MxMUUxODMyOTg1ODdGNUYxODREMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4Q0NDRDY3MjFCM0MxMUUxODMyOTg1ODdGNUYxODREMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmyBEQIAAAHXSURBVHjaYvz//z8DtQATAxUBVQ1jAHmTBK8ydk38Zd3W+1kP6hBGKAabQYrLGIGG6AOpyv///5kA+WxAzIysgIUYU9r7vsoyM7NGMTIy5zIyMkp/+fx6H1CYB4i/AfFPIP5L0LDmzrf8bOw8/oyMTBlMTMyWMPFPH5+CDOKHGvILr8sy8/axKCrbOAG9lAk0xAMoxIEs//XLG5BBfED8GRZmGIY1tr/i5eQSMAXKhwNdEwj0kig2y37+/MIFpNihYYbVMEZgwHIBYyWQmZklDZ/3//37w4Ie+BjpbM5073cXzq2c8vLF9Vqg7fdwJieG/4zYxFG8+eTxWYbli+JeAZmrTc0THppbJYdLSutZs7PzCpCTA0Cp9w8Qfz99csGNKf22M3dta5r29PG5M3///vpFyDAWNIP+QdPNRxj74L7eL+dOL7lq45BrpW8Y5ioiqqLGzMTKCFXPgC/Rggz4DaVBLvkOiv7Pn19+2r655s35M8svePm1u3/+/OIF1Af/kQ1lhOVLYDLAFgTM0GzDDU2kwlA2yLLXQPwC6ovfIHPw5YB/UFv/Ql0LcuUXqGFM0Kz0C6qOqLwJ88ZvJEO/QF38B2rYf5IyOpILYWHJhGQR3DCAAAMAeLyzTU4/H0wAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/css/img/back_enabled_hover.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MUYwQzBGOUUxQjNFMTFFMTgzMjk4NTg3RjVGMTg0RDIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MUYwQzBGOUYxQjNFMTFFMTgzMjk4NTg3RjVGMTg0RDIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxRjBDMEY5QzFCM0UxMUUxODMyOTg1ODdGNUYxODREMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxRjBDMEY5RDFCM0UxMUUxODMyOTg1ODdGNUYxODREMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PpI63WsAAAHTSURBVHjaYvz//z8DtQATAxUBVQ1jAHmTBK8yBkXfsfaPuKYHdQgjFIPNIMVljEBD9IFUJVCnCZDPBsTMyApYiDElIPKGLBMTSxQjI3Mu0DDpnz/f7gMK8wDxNyD+CcR/CRrmG3aRn4WF25+RkTEDaJAlTPz7txcgg/ihhvzC6zI71xUsImImTkBXZAIN8QAKcSDL//r5HmQQHxB/hoUZhmE+oed42dj4TIHy4YyMTIFAWhSbZX9+f+UCUuzQMMNqGCMwYLmAkRLIxMSchs/7//7/ZUEPfIx0dnRfwrsnDzdP+fzxTu2fP1/v4UlQjNhEUbz5/t1lhtNHC18BmavllUMeKqpEhPMLaFqzsHILkJMDQKn3DyjCHt5dc+PAzpCZ1y5NmPbh3ZUz//79/kXIMBY0g/5B081HGPv29dlfHt1ff1VFI9FKRt7blYdXQY2JkYURqp4BX6IFGfAbSoNc8h0U/T9/vPl09UL3m8cPNl7QMSx3//Hj9QuoD/4jG8oIy5fAhIktCJih2YYbmkiFoWyQZa+B+AXUF79B5uDLAf+gtv6Fuhbkyi9Qw5igWekXVB1ReRPmjd9Ihn6BuvgP1LD/JGV0JBfCwpIJySK4YQABBgAZMK2LcOdRHQAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/css/img/forward_disabled.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OENDQ0Q2N0IxQjNDMTFFMTgzMjk4NTg3RjVGMTg0RDIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OENDQ0Q2N0MxQjNDMTFFMTgzMjk4NTg3RjVGMTg0RDIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4Q0NDRDY3OTFCM0MxMUUxODMyOTg1ODdGNUYxODREMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4Q0NDRDY3QTFCM0MxMUUxODMyOTg1ODdGNUYxODREMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pu7MQ98AAAHHSURBVHjarJRNSwJRFIbnq5KBHAgXqZC7Fu36AS4iF21c1b8IWrmypbYQI5cuCqJli3DRVhSiiQZCGnftJJghnNEhp1Kbr86VK1y/J/DAi9cz9zyc9565Q3ueRy0rGGqJsVQYN1zQEMVi8QCWu4qiXGaz2RasPayFgY6L7Iy2bTvGMMxZJBK5zeVyR8lkUoA8i5791ybd7/cHRSzL7gmCcJ1IJK4ymcw+pFbwXtovjIHOWMI2HwgEDkOh0E2hULhIp9M7+FgYXwNwHIed2MAwmzzPH0ej0bt8Pn+SSqViECvTuhyx6bruTBscx20Hg8HzcDh8Go/Htwjrk9NcFJZldTRNExuNxossy6uQWgO55MQXwqBbW1XVN0mSHqrV6jNAFQzhxq3Ohem6/l6r1aRKpfJqGIYGqS9QF/RLdDUdBoc9OAN4Rdr1ev2pXC7LYEuF1CeoRaiDtmHgdBhYskzTfCyVSveiKBq4gzYBQdBvDLLHbwgJ85rNpgx2TAB94GfIlg4y8LqHZjHrmtHDTxC8pKh4HbSBfx2QibvpYog7664izkhnuH1U/IOLe1iOnwtPwlxiSsP/zrxu5sEoopgiAL4/xX8CDABNTsnSn2GkBgAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/css/img/forward_enabled.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDdFMDY3RDQxQjNDMTFFMTgzMjk4NTg3RjVGMTg0RDIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDdFMDY3RDUxQjNDMTFFMTgzMjk4NTg3RjVGMTg0RDIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0N0UwNjdEMjFCM0MxMUUxODMyOTg1ODdGNUYxODREMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0N0UwNjdEMzFCM0MxMUUxODMyOTg1ODdGNUYxODREMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgHnMK0AAAHYSURBVHjaYvz//z8DtQATAxUBVQ1jgTEYgaBr4m8PBob/hs+fXZ7d32n8Fij8H4oJAlBwIbuM8e+fn/JMTCytEpI6K2ubH4e4edXzA8WZQXKkepPx588vYE3MzKyOfPyS8+2diuZU1N1yBgqxQtUyEmsY09+/v5gR3mbiYmfnDRYSVljY3Pm2L7/0lBY0WJiIioA/fxCGwRUwsUhwcglmS0rprq1vfZaXlX9AXkbWmBWbK1G8+f//P5zeYGFhV+Plk+gRl9CqtrBOlUPyOmZsEgJ/fv/49ObN3aOPH50+c/XyZjagEDsQ/0OOcYKG/fv358+L51dvnju97NCRQ5NPAA19CjWEBd2reA179/b+o0sX1pw8cnDKhQ/vH78GCn0B4u9A/AvJVdgNA8YgOAx+/fr67trlzccO7Z9w8dHDU8+AQh+B+C0S/gTEP6EGYjfs//+/v798fnVk2+bqzaeOz30PdcE7JENAhn6FGvQHPYcgG/b/9avbFz99fPoZaNALqBzIW2+A+D2U/QOIf+PKZoywIgiYNUGaeYFYCEr/BeLPUNd8hxryD1deBZmD4jKo80Gav0E1/4Div8RkeGTD/iHFEoz/F59r8BnGgKSZAckAootigAADALCxy490ww3/AAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/css/img/forward_enabled_hover.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MUYwQzBGOUExQjNFMTFFMTgzMjk4NTg3RjVGMTg0RDIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MUYwQzBGOUIxQjNFMTFFMTgzMjk4NTg3RjVGMTg0RDIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxRjBDMEY5ODFCM0UxMUUxODMyOTg1ODdGNUYxODREMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxRjBDMEY5OTFCM0UxMUUxODMyOTg1ODdGNUYxODREMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Phw0MooAAAHXSURBVHjaYvz//z8DtQDj4DeMEQiCou96MDD8N/z4/ubsvdu83wKF/0MxQQAyhwnZ4H9/f8kzMrK08gmor/QKOhGipVfADxRnBskRYyCKYX/+fANrYmJiceTgFJuvqpk6x93/gDNQiBWqlpFYw5j+/fvFDDeZkYmLhZU7mJtHZqFv2MU+J89NWkBhFjQ9OA1j+PfvNzNGoDKySLCx8WfzC2is9Q4+nWfvtkpeUEiXFZsrmVAj4x9ObzAxs6lxcIr28PKrVCuqRsoheR0OWIiN9r9/f376+vnh0fdvL5159mQPG1CIHeQZ5BhnIRzlf/58+nD75qP7Gw7dvbngBNDQp1BDWNC9itewr18eP3r6aNvJOzcWXPj+7flroNAXIP4OxL+QXIXdMGAMgsMAmETePX+y99id63Muvnt78RlQ6CMQv0XCn4D4J9RA7Ib9///3988fb49cudC1+cGdle+hLniHZAjI0K9Qg/6g5xBkw/5/+fTg4vfvLz4DDXoBlQN56w0Qv4eyfwDxb1zZDDlvgjTzArEQlP4LxJ+hrvkONeQfrrwKMgfZMGZodHNB09BvqEt+QA3+Tyijo5Qa0EwN8/o/qCH/iCk5sBnGgJR2/qPRBA0DCDAAk+Xcf7FLjA8AAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/css/img/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/css/img/loading.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/css/img/sort_asc.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowMTgwMTE3NDA3MjA2ODExQjM4MkY2QzVGRUYwRTJDNCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4MkFEQzYxNjIyQzExMUUxQTFGMUFEQUQ1QjJBNTM4QyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4MkFEQzYxNTIyQzExMUUxQTFGMUFEQUQ1QjJBNTM4QyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjAyODAxMTc0MDcyMDY4MTFCMzgyRjZDNUZFRjBFMkM0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjAxODAxMTc0MDcyMDY4MTFCMzgyRjZDNUZFRjBFMkM0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+z5ABTAAAAI5JREFUeNpi/P//PwO1ABMDFQELIQXVjfe4gFQbEJe11iv9otRl2UCcBcSphBQy4gszoKu0gNROIJYB4jtA7AF03V2SXQY0iBFIFUMNAgEVIM6DipPsTQcgDkQTSwRia5IMA9rOC6RqgVgQTQokXgOUZyfFZSFQF/zAgh2BOIjkCBjQRDtq2Khh9DAMIMAAT9AmNBDSXegAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/css/img/sort_asc_disabled.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODJBREM2MTEyMkMxMTFFMUExRjFBREFENUIyQTUzOEMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODJBREM2MTIyMkMxMTFFMUExRjFBREFENUIyQTUzOEMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0M0ZDRUZGRTIyQzExMUUxQTFGMUFEQUQ1QjJBNTM4QyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4MkFEQzYxMDIyQzExMUUxQTFGMUFEQUQ1QjJBNTM4QyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pr4T1OwAAACOSURBVHjaYvz//z8DtQATAxUBCyEF1Y33uIBUGxCXtdYr/aLUZdlAnAXEqYQUMuILM6CrtIDUTiCWAeI7QOwBdN1dkl0GNIgRSBVDDQIBFSDOg4qT7E0HIA5EE0sEYmuSDAPazgukaoFYEE0KJF4DlGcnxWUhUBf8wIIdgTiI5AgY0EQ7atioYfQwDCDAAE/QJjQQ0l3oAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/css/img/sort_both.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTRDMDM5NjkyMkMxMTFFMUExRjFBREFENUIyQTUzOEMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTRDMDM5NkEyMkMxMTFFMUExRjFBREFENUIyQTUzOEMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxNEMwMzk2NzIyQzExMUUxQTFGMUFEQUQ1QjJBNTM4QyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxNEMwMzk2ODIyQzExMUUxQTFGMUFEQUQ1QjJBNTM4QyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pm8NGvcAAADkSURBVHjaYvz//z8DtQATAxUBCzbBu3fvInO5gLgNiMuA+BdMUFlZmSyXZQNxFhCnUupNLSDOA2JWIC4AOYhcwxiBuBiIZaB8FajBjOQY5gDEgWhiiUBsTaphvEBcC8SCWMRrgJidFMNCoC74gQU7AnEQ1nChZqLFlc4igdQCIP6HwzcZwHQ2n1hvrgPi/UDMgQUfBeI1pITZTyBuAeLPaOLvgbgZizjBpAFyAbpX1gPxAXLSGShmJgHxHSj/CRD3QsXJyk6gHD8BiH9DDb5GcmyigdlArArEUwkpZBy0hSNAgAEA5Ho0sMdEmU8AAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/css/img/sort_desc.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowMTgwMTE3NDA3MjA2ODExQjM4MkY2QzVGRUYwRTJDNCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4MkFEQzYxQTIyQzExMUUxQTFGMUFEQUQ1QjJBNTM4QyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4MkFEQzYxOTIyQzExMUUxQTFGMUFEQUQ1QjJBNTM4QyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjAyODAxMTc0MDcyMDY4MTFCMzgyRjZDNUZFRjBFMkM0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjAxODAxMTc0MDcyMDY4MTFCMzgyRjZDNUZFRjBFMkM0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+1fsfwAAAAJdJREFUeNpi/P//PwO1ABMDFcGoYaOG0cMwFmyC1Y33IoHUAiD+h8MBGa31SvOJddk6IN4PxBxY8FEgXkO0N4G2/gRSLUD8GU3qPRA3A+U/kxpmIBege2U9EB/ApYERX6kBDDtlILUDiFWA+AkQuwNddY2s2ARqvAukJgDxbyCehM8gnLGJBmYDsSoQTyWkkHHQFo4AAQYAAA0piq4hbqwAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/css/img/sort_desc_disabled.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDNGQ0VGRjQyMkMxMTFFMUExRjFBREFENUIyQTUzOEMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDNGQ0VGRjUyMkMxMTFFMUExRjFBREFENUIyQTUzOEMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxNEMwMzk2QjIyQzExMUUxQTFGMUFEQUQ1QjJBNTM4QyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxNEMwMzk2QzIyQzExMUUxQTFGMUFEQUQ1QjJBNTM4QyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pnt2WfgAAACJSURBVHjaYvz//z8DtQATAxXBqGGjhtHDMBZsgnfv3o0EUguA+B8OB2QoKyvPJ9Zl64B4PxBzYMFHgXgNKd78CcQtQPwZTfw9EDdjEScYZiAXoHtlPRAfICcCQMXJJCC+A+U/AeJeqDhZsXkXiCcA8W+owddIjk00MBuIVYF4KiGFjIO2cAQIMAAzGSDTlIC38gAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/css/img/Thumbs.db</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAEAAAAgAAAAEAAAD+////AAAAAAAAAAD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9////CQAAAP7///8EAAAABQAAAAYAAAAHAAAACAAAAAoAAAD+////CwAAAP7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1IAbwBvAHQAIABFAG4AdAByAHkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAUA//////////8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALBjPYehAs0BAwAAAAAPAAAAAAAAMgA1ADYAXwA4AGQANAAwAGIAOQA1AGIANAAwAGYAYwAxADAAMwA5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACoAAgEDAAAABgAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYwMAAAAAAAAyADUANgBfADkAOAA3ADIAMQA5ADkAOAAwAGQAOQBmADYAOQBjADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKgACAP///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAADWAQAAAAAAADIANQA2AF8AMwA1AGUAYQA2ADIAMQA1ADEAOQAzADMANQAyADcAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqAAIBBAAAAP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAACsGAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAP7///8PAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAA/v///xcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAACAAAAAhAAAAIgAAACMAAAAkAAAAJQAAACYAAAAnAAAAKAAAACkAAAAqAAAAKwAAACwAAAAtAAAALgAAAP7///8wAAAAMQAAADIAAAAzAAAA/v///zUAAAA2AAAANwAAAP7///85AAAAOgAAADsAAAD+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8YAAAAAwAAAEsDAAAAAAAAhZmIZft54q2JUE5HDQoaCgAAAA1JSERSAAAAgAAAAM0IBgAAAHD4eHkAAAABc1JHQgCuzhzpAAAABGdBTUEAALGPC/xhBQAAAvVJREFUeF7t3UERgDAQxVAW/7pqa6E6XnCQNPOnJzq7+/S5Bl4XPfJroADwDgqgAHADOH4LUAC4ARy/BSgA3ACO3wIUAG4Ax28BCgA3gOO3AAWAG8DxW4ACwA3g+C1AAeAGcPwWoABwAzh+C1AAuAEcvwUoANwAjt8CFABuAMdvAQoAN4DjtwAFgBvA8VuAAsAN4PgtQAHgBnD8FqAAcAM4fgtQALgBHL8FKADcAI7fAhQAbgDHbwEKADeA47cABYAbwPFbgALADeD4LUAB4AZw/BagAHADOH4LUAC4ARx/zjm9GwdHML0bCJ/+j94dwD7/AsDPvwAKQDeA83cHKADcAI7fAhQAbgDHbwEKADeA47cABYAbwPFbgALADeD4LUAB4AZw/BagAHADOH4LUAC4ARy/BSgA3ACO3wIUAG4Ax28BCgA3gOO3AAWAG8DxW4ACwA3g+C1AAeAGcPwWoABwAzh+C1AAuAEcvwUoANwAjt8CFABuAMdvAQoAN4DjtwAFgBvA8VuAAsAN4Pi9F6AH0HsBdgHdAezz73fx+PkXQAHoBnD+7gAFgBvA8VuAAsAN4PgtQAHgBnD8FqAAcAM4fgtQALgBHL8FKADcAI7fAhQAbgDHbwEKADeA47cABYAbwPFbgALADeD4LUAB4AZw/BagAHADOH4LUAC4ARy/BSgA3ACO3wIUAG4Ax28BCgA3gOO3AAWAG8DxW4ACwA3g+C1AAeAGcPwWoABwAzh+C1AAuAEcv/cC9AB6L8AuoDuAff79Lh4//wIoAN0Azt8doABwAzh+C1AAuAEcvwUoANwAjt8CFABuAMdvAQoAN4DjtwAFgBvA8VuAAsAN4PgtQAHgBnD8FqAAcAM4fgtQALgBHL8FKADcAI7fAhQAbgDHbwEKADeA47cABYAbwPFbgALADeD4LUAB4AZw/BagAHADOH4LUAC4ARy/BSgA3ACO3wIUAG4Ax28BCgA3gOO3AAWAG8DxW4ACwA3g+C1AAeAGcPwPeDEXe2oqjrIAAAAASUVORK5CYIIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAADAAAAvgEAAAAAAAAUJ4QaIi1Kt4lQTkcNChoKAAAADUlIRFIAAAASAAAAEggGAAAAVs6OVwAAAAFzUkdCAK7OHOkAAAAEZ0FNQQAAsY8L/GEFAAABaElEQVQ4T2O87WXOQCq4JWmyUfrdbS+QvmeCKjs95071YSTVoM8cgjN5f7xPQ7b8toTxVlINUgEacAmIOZEN+sbO95eJWG9NdZsYC8SPgOp9gPg7sj6mf38ZiTIIaEA7UOMiIF4NZB9BN+yBqPYqggZBDamAusAP3bDPnELzfGZPisQbRmiGIPtmE5ATmr0rX1Fl64mbIAmcLsJjCEgfyGXhQAw2BKdBBAwB6esGumYxSoCjxxoRhnQADSlD14fiNSINqcSWZOAGAQ0xAyqIBeJfONIWyCVYDUEPoxygAEhhKBbD8BoCNwjoGgkgxxKIlwFtBUctkmEEDYEb9O/v73ggZzrQkL9AQ9mAbH4gfg3ERBkCMojR3d2TjZmV8wqvuEaJpK6fOlAM5MWDQDwFaPApHOEFFwYmSHg6Cvn7+7vq55fX+//9/QVyjQnQgDhiDEG2BOSiCUCBs0C8cgrzO1wxhtNhMBcBAEOxh3SI6RdJAAAAAElFTkSuQmCCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAMAAAATBgAAAAAAAHsRP5yg4w+eiVBORw0KGgoAAAANSUhEUgAAANwAAADOCAYAAABVRGwRAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAW9SURBVHhe7dzBrV03EERBf8eoGJyTY1CQT9bSS/IDjVazvPbVkDU8gLR5X5/P5y//ESCQEfg7M8YUAgR+CwjOOyAQFBBcENsoAoLzBggEBQQXxDaKgOC8AQJBAcEFsY0iIDhvgEBQQHBBbKMICM4bIBAUEFwQ2ygCgvMGCAQFBBfENoqA4LwBAkEBwQWxjSIgOG+AQFBAcEFsowgIzhsgEBQQXBDbKAKC8wYIBAUEF8Q2ioDgvAECQQHBBbGNIiA4b4BAUEBwQWyjCAjOGyAQFBBcENsoAoLzBggEBQQXxDaKgOC8AQJBAcEFsY0iIDhvgEBQQHBBbKMICM4bIBAUEFwQ2ygCgvMGCAQFBBfENoqA4LwBAkEBwQWxjSIgOG+AQFBAcEFsowgIzhsgEBQQXBDbKAKC8wYIBAUEF8Q2ioDgvAECQQHBBbGNIiA4b4BAUEBwQWyjCAjOGyAQFBBcENsoAoLzBggEBQQXxDaKgOC8AQJBAcEFsY0iIDhvgEBQQHBBbKMICM4bIBAUEFwQ2ygCgvMGCAQFBBfENoqA4LwBAkEBwQWxjSIgOG+AQFBAcEFsowgIzhsgEBQQXBDbKAKC8wYIBAUEF8Q2ioDgvAECQQHBBbGNIiA4b4BAUEBwQWyjCAjOGyAQFBBcENsoAoLzBggEBQQXxDaKgOC8AQJBAcEFsY0iIDhvgEBQQHBBbKMICM4bIBAUEFwQ2ygCgvMGCAQFBBfENoqA4LwBAkEBwQWxjSIgOG+AQFBAcEFsowgIzhsgEBQQXBDbKAKC8wYIBAUEF8Q2ioDgvAECQQHBBbGNIiA4b4BAUODrnx8/PsF5RhH4owX+/fnz6zsX+B3cd773LYE/WuC/gKLn91fKKLdhrwsI7vUX4P5RAcFFuQ17XUBwr78A948KCC7KbdjrAoJ7/QW4f1RAcFFuw14XENzrL8D9owKCi3Ib9rqA4F5/Ae4fFRBclNuw1wUE9/oLcP+ogOCi3Ia9LiC411+A+0cFBBflNux1AcG9/gLcPyoguCi3Ya8LCO71F+D+UQHBRbkNe13Ajwi9/gLc/0jAjwgdcfmfCfxfwI8IeREEhgX8G254ua7WJyC4vp040bCA4IaX62p9AoLr24kTDQsIbni5rtYnILi+nTjRsIDghpfran0CguvbiRMNCwhueLmu1icguL6dONGwgOCGl+tqfQKC69uJEw0LCG54ua7WJyC4vp040bCA4IaX62p9AoLr24kTDQsIbni5rtYn4DdN+nbiRMUCftOkeDmO1i/gN036d+SEBK4F/Bvums6HBM4FBHdu5gsC1wKCu6bzIYFzAcGdm/mCwLWA4K7pfEjgXEBw52a+IHAtILhrOh8SOBcQ3LmZLwhcCwjums6HBM4FBHdu5gsC1wKCu6bzIYFzAcGdm/mCwLWA4K7pfEjgXEBw52a+IHAtILhrOh8SOBcQ3LmZLwhcCwjums6HBM4F/KbJuZkvHhbwmyYPL9/Vvy/gN02+b+hPIFAr4N9wtatxsEUBwS1u1Z1qBQRXuxoHWxQQ3OJW3alWQHC1q3GwRQHBLW7VnWoFBFe7GgdbFBDc4lbdqVZAcLWrcbBFAcEtbtWdagUEV7saB1sUENziVt2pVkBwtatxsEUBwS1u1Z1qBQRXuxoHWxQQ3OJW3alWwE8s1K7GwRoFvv0TC5/Pp/FezkRgUsBfKSfX6lKtAoJr3YxzTQoIbnKtLtUqILjWzTjXpIDgJtfqUq0CgmvdjHNNCghucq0u1SoguNbNONekgOAm1+pSrQKCa92Mc00KCG5yrS7VKiC41s0416SA4CbX6lKtAoJr3YxzTQoIbnKtLtUqILjWzTjXpIDgJtfqUq0CgmvdjHNNCghucq0u1SoguNbNONekgOAm1+pSrQKCa92Mc00KCG5yrS7VKiC41s0416SA4CbX6lKtAoJr3YxzTQoIbnKtLtUq8AtdSCdxUU2xfgAAAABJRU5ErkJgggAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAADAAAA7wAAAAAAAACskHRDH9bIaYlQTkcNChoKAAAADUlIRFIAAAAKAAAACggGAAAAjTLPvQAAAAFzUkcyADUANgBfADIANQBkADQAZAAyADYAOAA5ADgANgA0AGMANwA1ADUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKgACAP///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8AAAAHAQAAAAAAADIANQA2AF8AYwAwAGEAMABlADkAYwBlAGQAZgBlADUAYgBlAGYANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqAAIA////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAM8AAAAAAAAAMgA1ADYAXwBiADcAOQA3ADkANQAyAGIANwA5ADEAOQBlADAAZAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACoAAgECAAAABQAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAA1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEIArs4c6QAAAARnQU1BAACxjwv8YQUAAACZSURBVChTY/z//z8DMYCxYMIJsLrr2xtVgNRtJE3XND3rtWF8JiSJ72gm8yDzkRV+QVPIj8xHtpoZKPEHSfIvkK0BxCANvxjd3T1LgYxwqADIndhANMjqPiA+C8S4FOUCPbWM2Td3yX9RVYctb+4cBGmyRzOuFaioAyQG9wxQoB7Iz0VSOB0oVoMteBiAElOAEtFAvAxNEwMAJPUnvFB3rooAAAAASUVORK5CYIJRUSEOp9YKXL94tV1HZMML/mu6YwlJvI1DRMWmsNSEI5MtsLvMPKd8dFRu6+OpRk+VenWLODVK2OYYAAAAAwAAALcAAAAAAAAAcyPaffOLrlWJUE5HDQoaCgAAAA1JSERSAAAACgAAAAoIBgAAAI0yz70AAAABc1JHQgCuzhzpAAAABGdBTUEAALGPC/xhBQAAAGFJREFUKFNj/P//P0PhxJMMyOD69sY6Tc/6JmQxJhQVCE4jSDExCkFqUBQzgqz28PD6j8NkkHA9yBnEKAQrxuVGdAuYiVHYBLS6Hmw1luCBuRmsCGQ8PhPhivApRFEEUggAIFgqs6vqgTQAAAAASUVORK5CYIIkLz28JmLvgs8Nn5agTyO+beYbJPP/j1DvELy5PcE8avA7bXtdGrlF0X4Am1KAWMH/GAAAAAMAAAC9AAAAAAAAAKN3ZZ1HFIsyiVBORw0KGgoAAAANSUhEUgAAAAEAAABaCAYAAAB5XDy9AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABnSURBVChTlU9BDsAgCCN8Yv/Prsuyp/kCuqIJotkS9dBALYXKdT9QmIkaQKiVw8S1dtQtcHuSsE9jfxyGc4UP6rgM5Tw8pU+AAGN8erJ1rlXtI9qPqp6RJkKSnMOlL5qdu2Qngud9ATJ0rFk1fEeGAAAAAElFTkSuQmCCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=]]></data>
	</file>
	<file>
	  <filename>/css/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/EFAGISmsLight.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlCiMgKGMpMjAwNCBieSBUZWQgS3VscCAod2lzaHlAdXNlcnMuc2YubmV0KQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGUgOiBFRkFHSVNtc0xpZ2h0CiMgVmVyc2lvbiA6IDAuMC4xCiMgQXV0aG9yIDogRXJpYyAvIGVyaWNmcmVlbGFuY2VAZ21haWwuY29tCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpjbGFzcyBFRkFHSVNtc0xpZ2h0IGV4dGVuZHMgQ01TTW9kdWxlCnsgIAoJZnVuY3Rpb24gR2V0TmFtZSgpIHtyZXR1cm4gJ0VGQUdJU21zTGlnaHQnO30KCWZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpIHtyZXR1cm4gJHRoaXMtPkxhbmcoJ0VGQUdJU21zTGlnaHQnKTt9CglmdW5jdGlvbiBHZXRWZXJzaW9uKCkge3JldHVybiAnMC4wLjEnO30KCWZ1bmN0aW9uIEdldEhlbHAoKSB7cmV0dXJuICR0aGlzLT5MYW5nKCdoZWxwJyk7fQoJZnVuY3Rpb24gR2V0QXV0aG9yKCkge3JldHVybiAnRXJpY0ZyZWVsYW5jZSc7fQoJZnVuY3Rpb24gR2V0QXV0aG9yRW1haWwoKSB7cmV0dXJuICdlcmljZnJlZWxhbmNlQGdtYWlsLmNvbSc7fQoJZnVuY3Rpb24gR2V0Q2hhbmdlTG9nKCkge3JldHVybiAkdGhpcy0+TGFuZygnY2hhbmdlbG9nJyk7fQogIAlmdW5jdGlvbiBBbGxvd0F1dG9JbnN0YWxsKCkge3JldHVybiBGQUxTRTt9CglmdW5jdGlvbiBBbGxvd0F1dG9VcGdyYWRlKCkge3JldHVybiBGQUxTRTt9CglmdW5jdGlvbiBJbnN0YWxsUG9zdE1lc3NhZ2UoKSB7cmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0aW5zdGFsbCcpO30KCWZ1bmN0aW9uIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkge3JldHVybiAkdGhpcy0+TGFuZygncG9zdHVuaW5zdGFsbCcpO30JCglmdW5jdGlvbiBJc1BsdWdpbk1vZHVsZSgpIHtyZXR1cm4gdHJ1ZTt9CglmdW5jdGlvbiBIYXNBZG1pbigpIHtyZXR1cm4gdHJ1ZTt9CglmdW5jdGlvbiBHZXRBZG1pblNlY3Rpb24oKSB7cmV0dXJuICdleHRlbnNpb25zJzt9CglmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCkge3JldHVybiAkdGhpcy0+TGFuZygnZGVzY3JpcHRpb24nKTt9CglmdW5jdGlvbiBHZXREZXBlbmRlbmNpZXMoKSB7cmV0dXJuIGFycmF5KCk7fQoJZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKSB7cmV0dXJuICcxLjExJzt9CglmdW5jdGlvbiBHZXRFdmVudERlc2NyaXB0aW9uKCRldmVudG5hbWUpIHtyZXR1cm4gJHRoaXMtPkxhbmcoJ2V2ZW50ZGVzYy0nIC4gJGV2ZW50bmFtZSk7fQogICAgZnVuY3Rpb24gR2V0RXZlbnRIZWxwKCAkZXZlbnRuYW1lICkge3JldHVybiAkdGhpcy0+TGFuZygnZXZlbnRoZWxwLScgLiAkZXZlbnRuYW1lKTt9CgkKCS8qZnVuY3Rpb24gQWxsb3dTbWFydHlDYWNoaW5nKCkge3JldHVybiBUUlVFO30KCWZ1bmN0aW9uIExhenlMb2FkRnJvbnRlbmQoKQl7cmV0dXJuIFRSVUU7fQoJZnVuY3Rpb24gTGF6eUxvYWRBZG1pbigpIHtyZXR1cm4gVFJVRTt9Ki8KCiAgICBmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKSB7CgkJcmV0dXJuIAoJCSR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ0VGQUdJU21zTGlnaHQgVXNlJykgfHwgIAoJCSR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ0VGQUdJU21zTGlnaHQgQWRkJykgfHwgIAoJCSR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ0VGQUdJU21zTGlnaHQgRWRpdCcpIHx8CgkJJHRoaXMtPkNoZWNrUGVybWlzc2lvbignRUZBR0lTbXNMaWdodCBEZWxldGUnKSB8fAoJCSR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ0VGQUdJU21zTGlnaHQgQWNjb3VudCBFZGl0Jyk7CgkJJHRoaXMtPkNoZWNrUGVybWlzc2lvbignRUZBR0lTbXNMaWdodCBQcmVmZXJlbmNlcyBFZGl0Jyk7Cgl9CgoJZnVuY3Rpb24gSW5pdGlhbGl6ZUZyb250ZW5kKCkKCXsKCQkkdGhpcy0+UmVnaXN0ZXJNb2R1bGVQbHVnaW4oKTsKCQkkdGhpcy0+UmVzdHJpY3RVbmtub3duUGFyYW1zKCk7CgoJCS8vIHRlbXBsYXRlCgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3RlbXBsYXRlJywgQ0xFQU5fU1RSSU5HKTsKCgkJLy8gZm9ybSBpbnNjcmlwdGlvbgoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdpZHgnLCBDTEVBTl9TVFJJTkcpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdtb2RpZmllZCcsIENMRUFOX1NUUklORyk7CgkJLy8kdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncmVjaXBpZW50X2xvZ2luJywgQ0xFQU5fU1RSSU5HKTsKCQkvLyR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdyZWNpcGllbnRfcGFzc3dvcmQnLCBDTEVBTl9TVFJJTkcpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdyZWNpcGllbnRfZmlyc3RuYW1lJywgQ0xFQU5fU1RSSU5HKTsKCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncmVjaXBpZW50X25hbWUnLCBDTEVBTl9TVFJJTkcpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdyZWNpcGllbnRfbW9iaWwnLCBDTEVBTl9TVFJJTkcpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdyZWNpcGllbnRfZW1haWwnLCBDTEVBTl9TVFJJTkcpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdyZWNpcGllbnRfZ3JvdXAnLCBDTEVBTl9TVFJJTkcpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdyZWNpcGllbnRfY29kZScsIENMRUFOX1NUUklORyk7CgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3JlY2lwaWVudF9jb2RlX2NoZWNrJywgQ0xFQU5fU1RSSU5HKTsKCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncmVjaXBpZW50X2NhcHRjaGEnLCBDTEVBTl9TVFJJTkcpOwoJCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzdGVwJywgQ0xFQU5fU1RSSU5HKTsKCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc3VibWl0JywgQ0xFQU5fU1RSSU5HKTsKCX0KCglmdW5jdGlvbiBJbml0aWFsaXplQWRtaW4oKQoJewoJCS8vIHRlbXBsYXRlCgkgIAkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCd0ZW1wbGF0ZScsICcnLCAkdGhpcy0+bGFuZygnaGVscF90ZW1wbGF0ZScpKTsKCX0KCglmdW5jdGlvbiBHZXRIZWFkZXJIVE1MKCkKCXsgICAJCQoJCSRkYXRlUGlja2VyTGFuZ3VhZ2UgPSBleHBsb2RlKCdfJywgZ2V0X3ByZWZlcmVuY2UoZ2V0X3VzZXJpZCgpLCAnZGVmYXVsdF9jbXNfbGFuZ3VhZ2UnKSk7CgkJJGRhdGVQaWNrZXJMYW5ndWFnZSA9ICRkYXRlUGlja2VyTGFuZ3VhZ2VbMF07CgogICAgICAJJGh0bWwgPSAnPCEtLSBNb2R1bGUgJy4gJHRoaXMtPkdldE5hbWUoKSAgLicgLS0+Jy4iXG4iOwoJCSRodG1sIC49ICc8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSInLiAkdGhpcy0+R2V0TW9kdWxlVVJMUGF0aCgpIC4nL2Nzcy9hZG1pbi5jc3MiIC8+Jy4iXG4iOwkKCQkkaHRtbCAuPSAnPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iJy4gJHRoaXMtPkdldE1vZHVsZVVSTFBhdGgoKSAuJy9qcy9EYXRhVGFibGVzLTEuOS4zL2V4dHJhcy9UYWJsZVRvb2xzL21lZGlhL2Nzcy9UYWJsZVRvb2xzLmNzcyIgLz4nLiJcbiI7CQoJCSRodG1sIC49ICc8c2NyaXB0IHNyYz0iaHR0cDovL2FqYXguYXNwbmV0Y2RuLmNvbS9hamF4L2pxdWVyeS5kYXRhVGFibGVzLzEuOS4zL2pxdWVyeS5kYXRhVGFibGVzLm1pbi5qcyI+PC9zY3JpcHQ+Jy4iXG4iOwoJCSRodG1sIC49ICc8c2NyaXB0IHNyYz0iJy4gJHRoaXMtPkdldE1vZHVsZVVSTFBhdGgoKSAuJy9qcy9EYXRhVGFibGVzLTEuOS4zL2V4dHJhcy9Db2xWaXMvbWVkaWEvanMvQ29sVmlzLm1pbi5qcyI+PC9zY3JpcHQ+Jy4iXG4iOyAgCgkJJGh0bWwgLj0gJzxzY3JpcHQgc3JjPSInLiAkdGhpcy0+R2V0TW9kdWxlVVJMUGF0aCgpIC4nL2pzL0RhdGFUYWJsZXMtMS45LjMvZXh0cmFzL1RhYmxlVG9vbHMvbWVkaWEvanMvWmVyb0NsaXBib2FyZC5qcyI+PC9zY3JpcHQ+Jy4iXG4iOwoJCSRodG1sIC49ICc8c2NyaXB0IHNyYz0iJy4gJHRoaXMtPkdldE1vZHVsZVVSTFBhdGgoKSAuJy9qcy9EYXRhVGFibGVzLTEuOS4zL2V4dHJhcy9UYWJsZVRvb2xzL21lZGlhL2pzL1RhYmxlVG9vbHMubWluLmpzIj48L3NjcmlwdD4nLiJcbiI7CgkJJGh0bWwgLj0gJzxzY3JpcHQgc3JjPSInLiAkdGhpcy0+R2V0TW9kdWxlVVJMUGF0aCgpIC4nL2pzL2FkbWluLmpzIj48L3NjcmlwdD4nLiJcbiI7ICAKCQkkaHRtbCAuPSAnPHNjcmlwdCBzcmM9IicuICR0aGlzLT5HZXRNb2R1bGVVUkxQYXRoKCkgLicvanMvVGltZVBpY2tlci9qcXVlcnktdWktdGltZXBpY2tlci1hZGRvbi5qcyI+PC9zY3JpcHQ+Jy4iXG4iOyAgCgkJJGh0bWwgLj0gJzxzY3JpcHQgc3JjPSInLiAkdGhpcy0+R2V0TW9kdWxlVVJMUGF0aCgpIC4nL2pzL0RhdGVQaWNrZXIvbGFuZ3VhZ2UvJy4gZ2V0X3ByZWZlcmVuY2UoZ2V0X3VzZXJpZCgpLCAnZGVmYXVsdF9jbXNfbGFuZ3VhZ2UnKSAuJy5qcyI+PC9zY3JpcHQ+Jy4iXG4iOwoJCSRodG1sIC49ICc8c2NyaXB0IHNyYz0iJy4gJHRoaXMtPkdldE1vZHVsZVVSTFBhdGgoKSAuJy9qcy9UaW1lUGlja2VyL2xhbmd1YWdlLycuIGdldF9wcmVmZXJlbmNlKGdldF91c2VyaWQoKSwgJ2RlZmF1bHRfY21zX2xhbmd1YWdlJykgLicuanMiPjwvc2NyaXB0PicuIlxuIjsKCQkKCQkkc0RvbVBhZ2luYXRpb25UeXBlID0gKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwcmVmZXJlbmNlc19kYXRhdGFibGVfcGFnaW5hdGlvbicpID09IDEpID8gMTogMjsKCQkkc0RvbVJlY29yZHMgPSAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ3ByZWZlcmVuY2VzX2RhdGF0YWJsZV9yZWNvcmRzJykgPT0gMSkgPyAnbCcgOiAnJzsKCQkkc0RvbVNlYXJjaCA9ICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgncHJlZmVyZW5jZXNfZGF0YXRhYmxlX3NlYXJjaCcpID09IDEpID8gJ2YnIDogJyc7CgkJJHNDb3B5U2F2ZSA9ICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgncHJlZmVyZW5jZXNfZGF0YXRhYmxlX2NvcHlfc2F2ZScpID09IDEpID8gJ1QnIDogJyc7CgkJJGh0bWwgLj0gJzxzY3JpcHQ+CgkJCXZhciBvVGFibGUgPSBbXTsKCQkJdmFyIHNMYW5nYWdlID0gIicuICR0aGlzLT5HZXRNb2R1bGVVUkxQYXRoKCkgLicvanMvRGF0YVRhYmxlcy0xLjkuMy9sYW5ndWFnZS8nLiBnZXRfcHJlZmVyZW5jZShnZXRfdXNlcmlkKCksICdkZWZhdWx0X2Ntc19sYW5ndWFnZScpIC4nLnR4dCI7CgkJCXZhciBzU3dmUGF0aCA9ICInLiAkdGhpcy0+R2V0TW9kdWxlVVJMUGF0aCgpIC4nL2pzL0RhdGFUYWJsZXMtMS45LjMvZXh0cmFzL1RhYmxlVG9vbHMvbWVkaWEvc3dmL2NvcHlfY3N2X3hsc19wZGYuc3dmIjsKCQkJdmFyIHNDb3B5ID0gIicuICR0aGlzLT5MYW5nKCdDb3B5JykgLiciOwoJCQl2YXIgc1NhdmVBcyA9ICInLiAkdGhpcy0+TGFuZygnU2F2ZSBhcycpIC4nIjsKCQkJdmFyIHNMYW5nID0gIicuIGdldF9wcmVmZXJlbmNlKGdldF91c2VyaWQoKSwgJ2RlZmF1bHRfY21zX2xhbmd1YWdlJykgLiciOwoJCQl2YXIgYWxsID0gIicuICR0aGlzLT5MYW5nKCdBbGwnKSAuJyI7CgkJCXZhciBzRG9tUGFnaW5hdGlvblR5cGUgPSAiJy4gJHNEb21QYWdpbmF0aW9uVHlwZSAuJyI7CgkJCXZhciBzRG9tUmVjb3JkcyA9ICInLiAkc0RvbVJlY29yZHMgLiciOwoJCQl2YXIgc0RvbVNlYXJjaCA9ICInLiAkc0RvbVNlYXJjaCAuJyI7CgkJCXZhciBzQ29weVNhdmUgPSAiJy4gJHNDb3B5U2F2ZSAuJyI7CgkJPC9zY3JpcHQ+Jy4iXG4iOyAKCQkkaHRtbCAuPSAnPCEtLSAvLyBNb2R1bGUgJy4gJHRoaXMtPkdldE5hbWUoKSAgLicgLS0+Jy4iXG4iOyAgIAogICAgICAJcmV0dXJuICRodG1sOwkJCgl9IAoKCWZ1bmN0aW9uIEluY2x1ZGVUZW1wbGF0ZSgpCgl7CgkJJHRoaXMtPnNtYXJ0eS0+YWRkVGVtcGxhdGVEaXIoZGlybmFtZShfX0ZJTEVfXykuJy90ZW1wbGF0ZXMnKTsKCX0KfQoK]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/admin.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[dmFyIG9Cb2R5LCBvVGFicywgb1RhYnNfYSwgb0N0bnQsIG9DdG50X2MsIG9SZXN1bHQsIG9Ub0Rpc3BsYXksIG9XcmFwcGVyTWVzc2FnZTsKdmFyIHNIcmVmOwoKLy92YXIgc1dpbmRvd0xvY2F0aW9uSHJlZiA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmOwovL3ZhciBhV2luZG93TG9jYXRpb25IcmVmID0gc1dpbmRvd0xvY2F0aW9uSHJlZi5zcGxpdCgidGFiPSIpOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoKICBvQm9keSA9ICQoImJvZHkiKTsKICBvVGFicyA9ICQoIiNwYWdlX3RhYnMiKTsKICBvVGFic19hID0gJCgiYSIsIG9UYWJzKTsKICBvQ3RudCA9ICQoIiNwYWdlX2NvbnRlbnQiKTsKICBvQ3RudF9jID0gJCgiIyIgKyAkKCJkaXY6ZXEoMCkiLCBvQ3RudCkuYXR0cigiaWQiKSk7ICAvLyBmaXJzdCBsb2FkaW5nCiAgCiAgb0JvZHkuYXBwZW5kKCI8ZGl2IGlkPVwid3JhcHBlck1lc3NhZ2VcIj48L2Rpdj4iKTsKICBvV3JhcHBlck1lc3NhZ2UgPSAkKCIjd3JhcHBlck1lc3NhZ2UiKTsKCiAgZm5UcmFuc2Zvcm1CdXR0b24oKTsKICBmbkFjdGlvbnMoKTsKfSk7CgpmdW5jdGlvbiBmblNob3dMb2FkZXIoc3RlcCkKewogIGlmIChzdGVwID09IDEpCiAgICBvQ3RudC5hZGRDbGFzcygibG9hZGluZyIpOwogIGVsc2UKICAgIG9DdG50LnJlbW92ZUNsYXNzKCJsb2FkaW5nIik7CgogICQoJ2JvZHksaHRtbCcpLmFuaW1hdGUoe3Njcm9sbFRvcDogMH0sIDgwMCk7Cn0KCmZ1bmN0aW9uIGZuQWN0aW9ucyAoKQp7IAogIG9UYWJzX2EuY2xpY2soIGZ1bmN0aW9uKGV2ZW50KSB7IAogICAgc0hyZWYgPSAkKHRoaXMpLmF0dHIoImhyZWYiKTsKICAgIG9DdG50X2MgPSAkKCIjIiArICQodGhpcykucGFyZW50KCJkaXYiKS5hdHRyKCJpZCIpICsgIl9jIik7CgogICAgaWYgKG9DdG50X2MuaHRtbCgpID09ICcnKQogICAgewogICAgICBzUGFyYW1zID0gIntcImRpc2FibGVfdGhlbWVcIjp0cnVlLCBcInNob3d0ZW1wbGF0ZVwiOlwiZmFsc2VcIn0iOyAgICAgCiAgICAgIGZuTG9hZEN0bnRfYygicmVwbGFjZSIpOwogICAgICBmblNob3dMb2FkZXIoMSk7CiAgICB9CgogICAgcmV0dXJuIGZhbHNlOwogIH0pOwoKICBvQ3RudC5vbigiY2xpY2siLCAiYSIsIGZ1bmN0aW9uKGV2ZW50KSB7IAogICAgc0hyZWYgPSAkKHRoaXMpLmF0dHIoImhyZWYiKTsKICAgIHNQYXJhbXMgPSAie1wiZGlzYWJsZV90aGVtZVwiOnRydWUsIFwic2hvd3RlbXBsYXRlXCI6XCJmYWxzZVwifSI7ICAKICAgIG9Ub0Rpc3BsYXkgPSAkKCJkaXYudG9EaXNwbGF5Iiwgb0N0bnRfYyk7CgogICAgaWYgKCQodGhpcykuaGFzQ2xhc3MoInByZXBlbmQiKSkKICAgICAgZm5Mb2FkQ3RudF9jKCJwcmVwZW5kIik7CgogICAgZWxzZSBpZiAoJCh0aGlzKS5oYXNDbGFzcygicmVwbGFjZSIpKQogICAgICBmbkxvYWRDdG50X2MoInJlcGxhY2UiKTsKICAgIAogICAgZWxzZQogICAgICByZXR1cm4gdHJ1ZTsKCiAgICBmblNob3dMb2FkZXIoMSk7CiAgICByZXR1cm4gZmFsc2U7CiAgfSk7CgogIG9DdG50Lm9uKCJjbGljayIsICJidXR0b24iLCBmdW5jdGlvbihldmVudCkgewogICAgb0J1dHRvbiA9ICQodGhpcykuYXR0cignbmFtZScpOwogICAgb1RvRGlzcGxheSA9ICQoImRpdi50b0Rpc3BsYXkiLCBvQ3RudF9jKTsKICAgIGlmIChvQnV0dG9uID09ICJtMV9jYW5jZWwiIHx8IG9CdXR0b24gPT0gImNhbmNlbCIpCiAgICB7CiAgICAgICQoImRpdi50b1JlbW92ZSIsIG9DdG50X2MpLnJlbW92ZSgpOwogICAgICAkKCJkaXYudG9IaWRlIiwgb0N0bnRfYykuaGlkZSgpOwogICAgICBvVG9EaXNwbGF5LnNob3coKTsKICAgICAgZm5TaG93TG9hZGVyKDApOwogICAgICByZXR1cm4gZmFsc2U7ICAgICAgCgogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuIHRydWU7CiAgICAgIGZuU2hvd0xvYWRlcigxKTsKICAgIH0KCiAgfSk7CgogIG9DdG50Lm9uKCJzdWJtaXQiLCAiZm9ybSIsIGZ1bmN0aW9uKGV2ZW50KSB7CiAgICBzUGFyYW1zID0gIntcImRpc2FibGVfdGhlbWVcIjp0cnVlLCBcInNob3d0ZW1wbGF0ZVwiOlwiZmFsc2VcIiI7CiAgICB2YXIgb0ZpZWxkcyA9ICQodGhpcykuZmluZCgiYnV0dG9uLCBpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSIpOwogICAgb0ZpZWxkcy5lYWNoKCBmdW5jdGlvbihpKQogICAgewogICAgICBpZiAoISQodGhpcykuYXR0cigibXVsdGlwbGUiKSAmJiAkKHRoaXMpLmF0dHIoInR5cGUiKSAhPSAiY2hlY2tib3giICYmICQodGhpcykuYXR0cigidHlwZSIpICE9ICJyYWRpbyIpCiAgICAgIHsKICAgICAgICBzdHJpbmcgPSAkKHRoaXMpLnZhbCgpOwogICAgICAgIHN0cmluZyA9IHN0cmluZy5yZXBsYWNlKC8iL2dpLCImcXVvdDsiKTsKICAgICAgICBzdHJpbmcgPSBzdHJpbmcucmVwbGFjZSgvXG4vZ2ksIiYjOTI7biIpOwogICAgICAgIHN0cmluZyA9IHN0cmluZy5yZXBsYWNlKC9cci9naSwiJiM5MjtyIik7IAogICAgICAgIHNQYXJhbXMgKz0gIiwgXCIiKyQodGhpcykuYXR0cigibmFtZSIpKyJcIjogXCIiK3N0cmluZysiXCIiOwogICAgICB9IGVsc2UgaWYgKCQodGhpcykuYXR0cigidHlwZSIpID09ICJjaGVja2JveCIgfHwgJCh0aGlzKS5hdHRyKCJ0eXBlIikgPT0gInJhZGlvIikgewogICAgICAgIHNQYXJhbXMgKz0gKCQodGhpcykuaXMoIjpjaGVja2VkIikpID8gIiwgXCIiKyQodGhpcykuYXR0cigibmFtZSIpKyJcIjogXCIiKyQodGhpcykudmFsKCkrIlwiIiA6ICIiOwogICAgICB9IGVsc2UgewogICAgICAgIHNQYXJhbXMgKz0gIiwgXCIiKyQodGhpcykuYXR0cigibmFtZSIpKyJcIjogXCIiKyQodGhpcykudmFsKCkrIlwiIjsgICAgICAgICAgIAogICAgICB9CiAgICB9KTsKICAgIHNQYXJhbXMgKz0gIn0iOwogICAgZm5Mb2FkQ3RudF9jKCJyZXBsYWNlIik7CiAgICBmblNob3dMb2FkZXIoMSk7CiAgICByZXR1cm4gZmFsc2U7CiAgfSk7Cn07CgpmdW5jdGlvbiBmbkxvYWRDdG50X2MgKHNPcHRpb24pCnsKICB2YXIgb0RhdGEgPSBqUXVlcnkucGFyc2VKU09OKHNQYXJhbXMpOwogICQuYWpheCh7CiAgICB1cmw6IHNIcmVmLAogICAgdHlwZTogIlBPU1QiLAogICAgZGF0YTogb0RhdGEsCiAgICBzdWNjZXNzOiBmdW5jdGlvbihyZXN1bHQpIAogICAgeyAKICAgICAgb1Jlc3VsdCA9IGpRdWVyeS5wYXJzZUpTT04ocmVzdWx0KTsKICAgICAgZm5SZXN1bHQoc09wdGlvbik7CiAgICB9CiAgfSk7IAp9CgpmdW5jdGlvbiBmblJlc3VsdChzT3B0aW9uKQp7CiAgLy9hbGVydCAob1Jlc3VsdC5tc2dUeXBlKTsKCiAgLy8gbm8gZXJyb3IsIG5vIG1lc3NhZ2UgKGV4IDogbG9hZCByZWNvcmRzIG9yIGZvcm1zKQogIGlmIChvUmVzdWx0Lm1zZ1R5cGUgPT0gMCkKICB7CiAgICBpZiAoc09wdGlvbiA9PSAicmVwbGFjZSIpCiAgICB7CiAgICAgIG9DdG50X2MuaHRtbChvUmVzdWx0LnJlc3VsdCk7CgogICAgfSBlbHNlIGlmIChzT3B0aW9uID09ICJwcmVwZW5kIikgewogICAgICBvVG9EaXNwbGF5LmhpZGUoKTsKICAgICAgb0N0bnRfYy5wcmVwZW5kKG9SZXN1bHQucmVzdWx0KTsKICAgIH0KICAgIAogICAgZm5UcmFuc2Zvcm1CdXR0b24oKTsgIAogICAgZm5TaG93TG9hZGVyKDApOwogIH0gCgogIC8vIG1lc3NhZ2UgZXJyb3Igb3Igbm8sIHdpdGggcmVsb2FkIChleCA6IGxvYWQsIGluc2VydCwgdXBkYXRlLCBkZWxldGUpCiAgaWYgKG9SZXN1bHQubXNnVHlwZSA9PSAxKQogIHsKICAgIGZuTWVzc2FnZSgpOwogICAgZm5TaG93TG9hZGVyKDApOwogIH0gICAgCgogIC8vIG5vIGVycm9yIHdpdGggbWVzc2FnZSAoZXggOiBpbnNlcnQsIHVwZGF0ZSwgZGVsZXRlKQogIGlmIChvUmVzdWx0Lm1zZ1R5cGUgPT0gMikKICB7CiAgICBmbk1lc3NhZ2UoKTsKICAgICQoImRpdi50b1JlbW92ZSIsIG9DdG50X2MpLnJlbW92ZSgpOwogICAgb1RhYmxlW29DdG50X2MuYXR0cigiaWQiKV0uZm5TdGFuZGluZ1JlZHJhdygpOwogICAgb1RvRGlzcGxheS5zaG93KCk7CiAgICBmblNob3dMb2FkZXIoMCk7CiAgfSAgIAoKICAvLyBlcnJvciBhbmQgbWVzc2FnZSBpbmNsdWRlIGluIHRoZSBjb250ZW50CiAgaWYgKG9SZXN1bHQubXNnVHlwZSA9PSAzKQogIHsKICAgIG9DdG50X2MuaHRtbChvUmVzdWx0LnJlc3VsdCk7CiAgICBmblRyYW5zZm9ybUJ1dHRvbigpOyAgCiAgICBmblNob3dMb2FkZXIoMCk7CiAgfSAKCiAgLy8gY29uZmlybSAoZXg6IGRlbGV0ZSkKICBpZiAob1Jlc3VsdC5tc2dUeXBlID09IDQpCiAgewogICAgb1RvRGlzcGxheS5oaWRlKCk7CiAgICBvQ3RudF9jLnByZXBlbmQob1Jlc3VsdC5yZXN1bHQpOwogICAgZm5UcmFuc2Zvcm1CdXR0b24oKTsgIAogICAgZm5TaG93TG9hZGVyKDApOyAgICAKICB9CgogIC8vIG5vIGVycm9yLCBubyBtZXNzYWdlIChleCA6IGFjdGl2ZSwgZGVmYXVsdCkKICBpZiAob1Jlc3VsdC5tc2dUeXBlID09IDUpCiAgewogICAgb1RhYmxlW29DdG50X2MuYXR0cigiaWQiKV0uZm5TdGFuZGluZ1JlZHJhdygpOwogICAgZm5TaG93TG9hZGVyKDApOwogIH0KCiAgLy8gbm8gZXJyb3Igd2l0aCBtZXNzYWdlIGFuZCByZXBsYWNlCiAgaWYgKG9SZXN1bHQubXNnVHlwZSA9PSA2KQogIHsKICAgIGZuTWVzc2FnZSgpOyAKICAgIHNIcmVmID0gJCgiZGl2LmFjdGl2ZSBhIiwgb1RhYnMpLmF0dHIoImhyZWYiKTsKICAgIG9DdG50X2MgPSAkKCIjIiArICQoImRpdi5hY3RpdmUiLCBvVGFicykuYXR0cigiaWQiKSArICJfYyIpOwogICAgc1BhcmFtcyA9ICJ7XCJkaXNhYmxlX3RoZW1lXCI6dHJ1ZSwgXCJzaG93dGVtcGxhdGVcIjpcImZhbHNlXCJ9IjsKICAgIGZuTG9hZEN0bnRfYyAoInJlcGxhY2UiKTsKICB9ICAKCiAgLy8gbm8gZXJyb3Igd2l0aCBtZXNzYWdlIGFuZCByZWxhb2QgbW9kdWxlIChleCA6IHVwZGF0ZSBwcmVmZXJlbmNlcykKICBpZiAob1Jlc3VsdC5tc2dUeXBlID09IDcpCiAgewogICAgZm5NZXNzYWdlKCk7CiAgICAvL3dpbmRvdy5sb2NhdGlvbi5ocmVmID0gd2luZG93LmxvY2F0aW9uLmhyZWYgKyAiJnRhYj0iKyQoIiMiICsgJCgiZGl2LmFjdGl2ZSIsIG9UYWJzKS5hdHRyKCJpZCIpKTsKICAgIGxvY2F0aW9uLnJlbG9hZCgpOwogICAgLy9mblNob3dMb2FkZXIoMCk7CiAgfSAKCgp9OwoKZnVuY3Rpb24gZm5NZXNzYWdlKCkKewogIG9XcmFwcGVyTWVzc2FnZS5odG1sKG9SZXN1bHQucmVzdWx0KTsKfQoKZnVuY3Rpb24gZm5UcmFuc2Zvcm1CdXR0b24oKQp7CiAgJCgnaW5wdXRbdHlwZT0ic3VibWl0Il0sIGlucHV0W3R5cGU9ImJ1dHRvbiJdLCBpbnB1dFt0eXBlPSJyZXNldCJdJywgb0N0bnRfYykuZWFjaChmdW5jdGlvbigpIAogIHsKICAgIGlmKCQodGhpcykuYXR0cignbmFtZScpID09ICdhcHBseScgfHwgJCh0aGlzKS5hdHRyKCduYW1lJykgPT0gJ20xX2FwcGx5JykgewogICAgICB2YXIgaWNvbiA9ICd1aS1pY29uLWRpc2snOwogICAgfSBlbHNlIGlmKCQodGhpcykuYXR0cignbmFtZScpID09ICdjYW5jZWwnIHx8ICQodGhpcykuYXR0cignbmFtZScpID09ICdtMV9jYW5jZWwnKSB7CiAgICAgIHZhciBpY29uID0gJ3VpLWljb24tY2lyY2xlLWNsb3NlJzsKICAgIH0gZWxzZSBpZigkKHRoaXMpLmF0dHIoJ3Jlc2V0dG9kZWZhdWx0JykgfHwgJCh0aGlzKS5hdHRyKCduYW1lJykgPT0gJ20xX3Jlc2V0dG9kZWZhdWx0JyB8fCAkKHRoaXMpLmF0dHIoJ2lkJykgPT0gJ3JlZnJlc2gnKSB7CiAgICAgIHZhciBpY29uID0gJ3VpLWljb24tcmVmcmVzaCc7CiAgICB9IGVsc2UgaWYgKCQodGhpcykuYXR0cignbmFtZScpID09ICdhZGQnIHx8ICQodGhpcykuYXR0cignbmFtZScpID09ICdtMV9hZGQnKSB7CiAgICAgIHZhciBpY29uID0gJ3VpLWljb24tZG9jdW1lbnQnOwogICAgfSBlbHNlIGlmICgkKHRoaXMpLmF0dHIoJ25hbWUnKSA9PSAnc2VsZWN0X3BlcnNvbicgfHwgJCh0aGlzKS5hdHRyKCduYW1lJykgPT0gJ20xX3NlbGVjdF9wZXJzb24nKSB7CiAgICAgIHZhciBpY29uID0gJ3VpLWljb24tcGVyc29uJzsKICAgIH0gZWxzZSB7CiAgICAgIHZhciBpY29uID0gJ3VpLWljb24tY2lyY2xlLWNoZWNrJzsKICAgIH0KICAgIHZhciBidG4gPSAkKCc8YnV0dG9uIC8+Jyk7CiAgICAvLyBBRE9QVCBBTEwgQVRUUklCVVRFUwogICAgJCh0aGlzLmF0dHJpYnV0ZXMpLmVhY2goZnVuY3Rpb24oaW5kZXgsIGF0dHJpYnV0ZSl7CiAgICAgIGJ0bi5hdHRyKGF0dHJpYnV0ZS5uYW1lLCBhdHRyaWJ1dGUudmFsdWUpOwogICAgfSk7CiAgICBidG4uYnV0dG9uKHsKICAgICAgaWNvbnMgOiB7CiAgICAgICAgcHJpbWFyeSA6IGljb24KICAgICAgfSwKICAgICAgbGFiZWwgOiAkKHRoaXMpLnZhbCgpCiAgICB9KTsKICAgICQodGhpcykucmVwbGFjZVdpdGgoYnRuKTsKICB9KTsKfTsKCmZ1bmN0aW9uIGZuU21zTGVuZ3RoKCkKewogIHZhciBzU21zID0gb1Ntcy52YWwoKTsKICB2YXIgc0VuZCA9IHNTbXMubGVuZ3RoOyAgICAKICB2YXIgc091dHB1dCA9IDA7ICAgIAogIHZhciBzQmFzZUNhbGMgPSAxNjA7ICAgICAgCgogIC8vIGNvdW50CiAgZm9yIChpID0gMCA7IGkgPCBzRW5kIDsgaSsrKSB7ICAgICAgICAgICAgICAgCiAgICBzQ3VycmVudCA9IHNTbXMuY2hhckF0KGkpOwogICAgKGFUd29DaGFyW3NDdXJyZW50XSkgPyBzT3V0cHV0ICs9IGFUd29DaGFyW3NDdXJyZW50XSA6IHNPdXRwdXQgKz0xOwogICAgKCFhVHdvQ2hhcltzQ3VycmVudF0gJiYgIWFPbmVDaGFyW3NDdXJyZW50XSAmJiBzU2ltcGxlQ2hhci5pbmRleE9mKHNDdXJyZW50KSA9PSAtMSkgPyBzQmFzZUNhbGMgPSA3MCA6IHNCYXNlQ2FsYyA9IDE2MCA7CiAgfQoKICBpZiAoc091dHB1dCA9PSAwKQogICAgcmVzdWx0ID0gWzAsIDE2MCwgMF07CgogIC8vIGNhbGN1bCBiYXNlIG9uIGFuZHJvaWQuLi4KICBpZiAoc0Jhc2VDYWxjID09IDE2MCkKICB7CiAgICBpZiAoc091dHB1dCA+IDMwNikKICAgIHsKICAgICAgc1RvdGFsU21zID0gTWF0aC5jZWlsKChzT3V0cHV0IC0gMTYwIC0oMTYwLSgyKjcpKSkvKDE2MC03KSkgKyAyOyAKICAgICAgc0Jhc2VDYWxjID0gMzA2ICsgKHNUb3RhbFNtcy0yKSAqIDE1MzsKICAgIH0KCiAgICBpZiAoc091dHB1dCA+IDAgJiYgc091dHB1dCA8PTE2MCkKICAgICAgcmVzdWx0ID0gW3NPdXRwdXQsIDE2MCwgMV07CgogICAgZWxzZSBpZiAoc091dHB1dCA+IDE2MCAgJiYgc091dHB1dCA8PSAzMDYpCiAgICByZXN1bHQgPSBbc091dHB1dCwgMzA2LCAyXTsKCiAgICBlbHNlIGlmIChzT3V0cHV0ID4gMzA2KQogICAgICByZXN1bHQgPSBbc091dHB1dCwgc0Jhc2VDYWxjLCBzVG90YWxTbXNdOwogIH0KCiAgaWYgKHNCYXNlQ2FsYyA9PSA3MCkKICB7CiAgICBpZiAoc091dHB1dCA+IDIwMSkKICAgIHsKICAgICAgc1RvdGFsU21zID0gTWF0aC5jZWlsKChzT3V0cHV0IC0gNzAgLSg3MC0oMiozKSkpLyg3MC0zKSkgKyAyOyAKICAgICAgc0Jhc2VDYWxjID0gMjAxICsgKHNUb3RhbFNtcy0zKSAqIDY3OwogICAgfQoKICAgIGlmIChzT3V0cHV0ID4gMCAmJiBzT3V0cHV0IDw9IDcwKQogICAgICByZXN1bHQgPSBbc091dHB1dCwgNzAsIDFdOwoKICAgIGVsc2UgaWYgKHNPdXRwdXQgPiA3MCAgJiYgc091dHB1dCA8PSAxMzQpCiAgICAgIHJlc3VsdCA9IFtzT3V0cHV0LCAxMzQsIDJdOwoKICAgIGVsc2UgaWYgKHNPdXRwdXQgPiAxMzQgJiYgc091dHB1dCA8PSAyMDEpCiAgICAgIHJlc3VsdCA9IFtvdXRwdXQsIDIwMSwgM107CgogICAgZWxzZSBpZiAoc091dHB1dCA+IDIwMSkKICAgICAgcmVzdWx0ID0gW3NPdXRwdXQsIHNCYXNlQ2FsYywgc1RvdGFsU21zXTsKICB9CgogIG9OYkNoYXJzLnRleHQocmVzdWx0WzBdKTsKICBvTWF4Q2hhcnMudGV4dChyZXN1bHRbMV0pOwogIG9OYlNtcy50ZXh0KHJlc3VsdFsyXSk7ICAgCn0KCi8qIGRhdGFUYWJsZXMgcGx1Z2luICovCgokLmZuLmRhdGFUYWJsZUV4dC5vQXBpLmZuU3RhbmRpbmdSZWRyYXcgPSBmdW5jdGlvbihvU2V0dGluZ3MpIHsKICAgIGlmKG9TZXR0aW5ncy5vRmVhdHVyZXMuYlNlcnZlclNpZGUgPT09IGZhbHNlKXsKICAgICAgICB2YXIgYmVmb3JlID0gb1NldHRpbmdzLl9pRGlzcGxheVN0YXJ0OyAKICAgICAgICBvU2V0dGluZ3Mub0FwaS5fZm5SZURyYXcob1NldHRpbmdzKTsKICAgICAgICBvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQgPSBiZWZvcmU7CiAgICAgICAgb1NldHRpbmdzLm9BcGkuX2ZuQ2FsY3VsYXRlRW5kKG9TZXR0aW5ncyk7CiAgICB9CiAgICBvU2V0dGluZ3Mub0FwaS5fZm5EcmF3KG9TZXR0aW5ncyk7Cn07]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/callbacks.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5BdXRvRmlsbCBleGFtcGxlPC90aXRsZT4KCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJjdXJyZW50U3R5bGUiPgoJCQlAaW1wb3J0ICIuLi8uLi9tZWRpYS9jc3MvZGVtb19wYWdlLmNzcyI7CgkJCUBpbXBvcnQgIi4uLy4uL21lZGlhL2Nzcy9kZW1vX3RhYmxlLmNzcyI7CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9BdXRvRmlsbC5jc3MiOwoJCTwvc3R5bGU+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5kYXRhVGFibGVzLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiIHNyYz0ibWVkaWEvanMvQXV0b0ZpbGwuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CgkJCSQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkJCQl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCQkJCW5ldyBBdXRvRmlsbCggb1RhYmxlLCB7CgkJCQkJImFvQ29sdW1uRGVmcyI6IFsgewoJCQkJCQkiZm5DYWxsYmFjayI6IGZ1bmN0aW9uICggYW8gKSB7CgkJCQkJCQl2YXIgbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdXRwdXQnKTsKCQkJCQkJCWZvciAoIHZhciBpPTAsIGlMZW49YW8ubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkgewoJCQkJCQkJCW4uaW5uZXJIVE1MICs9ICJVcGRhdGU6IG9sZCB2YWx1ZTogeyIrCgkJCQkJCQkJCWFvW2ldLm9sZFZhbHVlKyJ9IC0gbmV3IHZhbHVlOiB7Iithb1tpXS5uZXdWYWx1ZSsifTxicj4iOwoJCQkJCQkJfQoJCQkJCQkJbi5zY3JvbGxUb3AgPSBuLnNjcm9sbEhlaWdodDsKCQkJCQkJfSwKCQkJCQkJImFUYXJnZXRzIjogWyAiX2FsbCIgXQoJCQkJCX0gXQoJCQkJfSApOwoJCQl9ICk7CgkJPC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keSBpZD0iZHRfZXhhbXBsZSI+CgkJPGRpdiBpZD0iY29udGFpbmVyIj4KCQkJPGRpdiBjbGFzcz0iZnVsbF93aWR0aCBiaWciPgoJCQkJQXV0b0ZpbGwgZXhhbXBsZQoJCQk8L2Rpdj4KCQkJCgkJCTxoMT5QcmVhbWJsZTwvaDE+CgkJCTxwPgoJCQkJQXV0b0ZpbGwgcHJvdmlkZXMgYSBudW1iZXIgb2YgY3VzdG9taXNhYmxlIGNhbGxiYWNrIGZ1bmN0aW9ucyBzbyB5b3UgY2FuIHRhaWxvciBpdCdzCgkJCQlhY3Rpb25zIHRvIGV4YWN0bHkgd2hhdCB5b3UgbmVlZC4gVGhpcyBzcGVjaWZpYyBleGFtcGxlIHNob3dzIGZuQ2FsbGJhY2ssIHdoaWNoIGlzIGZpcmVkIHdoZW4gdGhlIG1vdXNlIGlzIHJlbGVhc2VkLiBGdXJ0aGVyIGRvY3VtZW50YXRpb24gaXMgYmVsb3cuCgkJCTwvcD4KCQkJCgkJCTx1bD4KCQkJCTxsaT4KCQkJCQk8Yj5mblJlYWQ8L2I+IC0gQ2FsbGVkIHdoZW4gYSBjZWxsIGlzIHJlYWQgZm9yIGl0J3MgdmFsdWUuIFRoaXMgYWxsb3dzIHlvdSB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBvZiByZWFkaW5nIHRoZSBIVE1MIHZhbHVlIChvciAnaW5wdXQnIGVsZW1lbnRzIHZhbHVlIGlmIHRoZXJlIGlzIG9uZSBwcmVzZW50KS4gRm9yIGV4YW1wbGUgcmVhZGluZyB0aGUgdmFsdWUgZnJvbSBhIHNlbGVjdCBsaXN0LgoJCQkJCTx1bD4KCQkJCQkJPGxpPlBhcmFtZXRlciAxOiBOb2RlIC0gVEQgZWxlbWVudCB0byBiZSByZWFkIGZyb208L2xpPgoJCQkJCQk8bGk+UmV0dXJuczogU3RyaW5nIC0gcmVhZCB2YWx1ZTwvbGk+CgkJCQkJPC91bD4KCQkJCTwvbGk+CgkJCQk8bGk+CgkJCQkJPGI+Zm5Xcml0ZTwvYj4gLSBDYWxsZWQgd2hlbiBhIGNlbGwgaXMgdG8gcmVhZCB0by4gVGhpcyBhbGxvd3MgeW91IHRvIHdyaXRlIGluIGEgc3BlY2lmaWMgZm9ybWF0LCBvciBwZXJoYXBzIHRvIGFuIGVsZW1lbnQgd2l0aGluIHRoZSBjZWxsLgoJCQkJCTx1bD4KCQkJCQkJPGxpPlBhcmFtZXRlciAxOiBOb2RlIC0gVEQgZWxlbWVudCB0byBiZSB3cml0dGVuIHRvPC9saT4KCQkJCQkJPGxpPlBhcmFtZXRlciAyOiBTdHJpbmcgLSBWYWx1ZSB0byB3cml0ZTwvbGk+CgkJCQkJCTxsaT5QYXJhbWV0ZXIgMzogQm9vbGVhbiAtIExhc3QgY2VsbCB0byBiZSB3cml0dGVuICh1c2VmdWwgZm9yIHNwZWVkaW5nIHVwIERhdGFUYWJsZXMnIGZuVXBkYXRlKTwvbGk+CgkJCQkJCTxsaT5SZXR1cm5zOiB2b2lkPC9saT4KCQkJCQk8L3VsPgoJCQkJPC9saT4KCQkJCTxsaT4KCQkJCQk8Yj5mblN0ZXA8L2I+IC0gQ2FsbGVkIHRvIGNhbGN1bGF0ZSB0aGUgbmV3IHZhbHVlIHRvIGdpdmUgdG8gYSBjZWxsCgkJCQkJPHVsPgoJCQkJCQk8bGk+UGFyYW1ldGVyIDE6IE5vZGUgLSBURCBlbGVtZW50IHRvIGJlIHdyaXR0ZW4gdG88L2xpPgoJCQkJCQk8bGk+UGFyYW1ldGVyIDI6IFN0cmluZyAtIFN0YXRlbWVudCB3aXRoIGEgdG9rZW4gdG8gYmUgcmVwbGFjZSB3aXRoIHRoZSBjYWxjdWxhdGVkIHZhbHVlPC9saT4KCQkJCQkJPGxpPlBhcmFtZXRlciAzOiBJbnQgLSBTdGVwIGNvdW50ZXI8L2xpPgoJCQkJCQk8bGk+UGFyYW1ldGVyIDQ6IEJvb2xlYW4gLSBpbmNyZW1lbnQgKHRydWUpLCBvciBkZWNyZW1lbnQgKGZhbHNlKTwvbGk+CgkJCQkJCTxsaT5QYXJhbWV0ZXIgNTogU3RyaW5nIC0gVG9rZW4gdG8gcmVwbGFjZTwvbGk+CgkJCQkJCTxsaT5SZXR1cm5zOiBTdHJpbmcgLSBzdHJpbmcgdG8gd3JpdGUgaW50byB0aGUgY2VsbDwvbGk+CgkJCQkJPC91bD4KCQkJCTwvbGk+CgkJCQk8bGk+CgkJCQkJPGI+Zm5DYWxsYmFjazwvYj4gLSBDYWxsZWQgd2hlbiB0aGUgQXV0b0ZpbGwgaXMgY29tcGxldGUsIHdpdGggaW5mb3JtYXRpb24gYWJvdXQgdGhlIGZpbGwuIFRoaXMgY2FuIGJlIHVzZWZ1bCBmb3IgdXBkYXRpbmcgYSBzZXJ2ZXIgZGF0YWJhc2UgZm9yIGV4YW1wbGUuCgkJCQkJPHVsPgoJCQkJCQk8bGk+UGFyYW1ldGVyIDE6IEFycmF5IC0gQW4gYXJyYXkgb2Ygb2JqZWN0cyB3aXRoIGluZm9ybWF0aW9uIGFib3V0IGVhY2ggY2VsbCB0aGF0IHdhcyB3cml0dGVuIHRvLiBPYmplY3QgcGFyYW1ldGVycyBhcmU6ICJ0ZCIsICJuZXdWYWx1ZSIgYW5kICJvbGRWYWx1ZSIuPC9saT4KCQkJCQkJPGxpPlJldHVybnM6IHZvaWQ8L2xpPgoJCQkJCTwvdWw+CgkJCQk8L2xpPgoJCQk8L3VsPgoJCQkKCQkJCgkJCTxoMT5MaXZlIGV4YW1wbGU8L2gxPgoJCQk8Zm9ybT4KCQkJCTxkaXYgaWQ9Im91dHB1dCIgc3R5bGU9ImhlaWdodDogMTAwcHg7IG92ZXJmbG93OiBzY3JvbGw7Ij4gCgkJCQkJSW5mb3JtYXRpb24gYWJvdXQgZWFjaCB1cGRhdGUgd2lsbCBhcHBlYXIgaGVyZS48YnI+PGJyPgoJCQkJPC9kaXY+CgkJCTxkaXYgaWQ9ImRlbW8iPgo8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIGNsYXNzPSJkaXNwbGF5IiBpZD0iZXhhbXBsZSI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGZvb3Q+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGZvb3Q+Cgk8dGJvZHk+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVYIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNC4wPC90ZD4KCQkJPHRkPldpbiA5NSsgKEVudGl0eTogJmFtcDspPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVDIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4wPC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA2PC90ZD4KCQkJPHRkPldpbiA5OCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDc8L3RkPgoJCQk8dGQ+V2luIFhQIFNQMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5BT0wgYnJvd3NlciAoQU9MIGRlc2t0b3ApPC90ZD4KCQkJPHRkPldpbiBYUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvIChVVEYtODogJMKi4oKsKTwvdGQ+CgkJCTx0ZD5GaXJlZm94IDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjU8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAyLjA8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMy4wPC90ZD4KCQkJPHRkPldpbiAyaysgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS45PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkNhbWlubyAxLjA8L3RkPgoJCQk8dGQ+T1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuNTwvdGQ+CgkJCTx0ZD5PU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIDcuMjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gTWFjIE9TIDguNi05LjI8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSBCcm93c2VyIDg8L3RkPgoJCQk8dGQ+V2luIDk4U0UrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSBOYXZpZ2F0b3IgOTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4xPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMzwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjQ8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS42PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS43PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuODwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5TZWFtb25rZXkgMS4xPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5FcGlwaGFueSAyLjIwPC90ZD4KCQkJPHRkPkdub21lPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDEuMjwvdGQ+CgkJCTx0ZD5PU1guMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xMjUuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjM8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MzEyLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAyLjA8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQxOS4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDMuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTIyLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPk9tbmlXZWIgNS41PC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MjA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5pUG9kIFRvdWNoIC8gaVBob25lPC90ZD4KCQkJPHRkPmlQb2Q8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlM2MDwvdGQ+CgkJCTx0ZD5TNjA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDEzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgNy4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgNy41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDguMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDguNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjI8L3RkPgoJCQk8dGQ+V2luIDg4KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS41PC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgZm9yIFdpaTwvdGQ+CgkJCTx0ZD5XaWk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5va2lhIE44MDA8L3RkPgoJCQk8dGQ+TjgwMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5OaW50ZW5kbyBEUyBicm93c2VyPC90ZD4KCQkJPHRkPk5pbnRlbmRvIERTPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjguNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DL0E8c3VwPjE8L3N1cD48L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQyI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuMTwvdGQ+CgkJCTx0ZD5LREUgMy4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuMzwvdGQ+CgkJCTx0ZD5LREUgMy4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjU8L3RkPgoJCQk8dGQ+S0RFIDMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZVgiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDQuNTwvdGQ+CgkJCTx0ZD5NYWMgT1MgOC05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVDIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjE8L3RkPgoJCQk8dGQ+TWFjIE9TIDcuNi05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUMiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMjwvdGQ+CgkJCTx0ZD5NYWMgT1MgOC1YPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy4xPC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPk5ldEZyb250IDMuNDwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+RGlsbG8gMC44PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkxpbmtzPC90ZD4KCQkJPHRkPlRleHQgb25seTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkx5bng8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUMiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5JRSBNb2JpbGU8L3RkPgoJCQk8dGQ+V2luZG93cyBNb2JpbGUgNjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQyI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPlBTUCBicm93c2VyPC90ZD4KCQkJPHRkPlBTUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVVIj4KCQkJPHRkPk90aGVyIGJyb3dzZXJzPC90ZD4KCQkJPHRkPkFsbCBvdGhlcnM8L3RkPgoJCQk8dGQ+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlU8L3RkPgoJCTwvdHI+Cgk8L3Rib2R5Pgo8L3RhYmxlPgoJCQk8L2Rpdj4KCQk8L2Zvcm0+CgkJCTxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CgkJCQoJCQkKCQkJPGgxPkV4YW1wbGVzPC9oMT4KCQkJPHVsPgoJCQkJPGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkJhc2ljIGluaXRpYWxpc2F0aW9uPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iY29sdW1ucy5odG1sIj5TZWxlY3Rpbmcgd2hpY2ggY29sdW1ucyB0byBwcm92aWRlIEF1dG9GaWxsIG9uPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ic2Nyb2xsaW5nLmh0bWwiPlNjcm9sbGluZyBhIERhdGFUYWJsZSB1c2luZyBmaWxsPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iaW5wdXRzLmh0bWwiPlVzaW5nIHdpdGggaW5wdXQgZWxlbWVudHM8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJjYWxsYmFja3MuaHRtbCI+Q3VzdG9taXNhdGlvbiB1c2luZyBjYWxsYmFjayBmdW5jdGlvbnM8L2E+PC9saT4KCQkJPC91bD4KCQkJCgkJCQoJCQk8aDE+SW5pdGlhbGlzYXRpb24gY29kZTwvaDE+CgkJCTxwcmU+JChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJbmV3IEF1dG9GaWxsKCBvVGFibGUsIHsKCQkiYW9Db2x1bW5EZWZzIjogWyB7CgkJCSJmbkNhbGxiYWNrIjogZnVuY3Rpb24gKCBhbyApIHsKCQkJCXZhciBuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ291dHB1dCcpOwoJCQkJZm9yICggdmFyIGk9MCwgaUxlbj1hby5sZW5ndGggOyBpJmx0O2lMZW4gOyBpKysgKSB7CgkJCQkJbi5pbm5lckhUTUwgKz0gIlVwZGF0ZTogb2xkIHZhbHVlOiB7IisKCQkJCQkJYW9baV0ub2xkVmFsdWUrIn0gLSBuZXcgdmFsdWU6IHsiK2FvW2ldLm5ld1ZhbHVlKyJ9Jmx0O2JyJmd0OyI7CgkJCQl9CgkJCQluLnNjcm9sbFRvcCA9IG4uc2Nyb2xsSGVpZ2h0OwoJCQl9LAoJCQkiYVRhcmdldHMiOiBbICJfYWxsIiBdCgkJfSBdCgl9ICk7Cn0gKTs8L3ByZT4KCQkJCgkJCTxkaXYgaWQ9ImZvb3RlciIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyOyI+CgkJCQk8c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwcHg7Ij4KCQkJCQlBdXRvRmlsbCBhbmQgRGF0YVRhYmxlcyAmY29weTsgQWxsYW4gSmFyZGluZSAyMDA5LTIwMTAuPGJyPgoJCQkJPC9zcGFuPgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/columns.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5BdXRvRmlsbCBleGFtcGxlPC90aXRsZT4KCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJjdXJyZW50U3R5bGUiPgoJCQlAaW1wb3J0ICIuLi8uLi9tZWRpYS9jc3MvZGVtb19wYWdlLmNzcyI7CgkJCUBpbXBvcnQgIi4uLy4uL21lZGlhL2Nzcy9kZW1vX3RhYmxlLmNzcyI7CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9BdXRvRmlsbC5jc3MiOwoJCTwvc3R5bGU+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5kYXRhVGFibGVzLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiIHNyYz0ibWVkaWEvanMvQXV0b0ZpbGwuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CgkJCSQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkJCQl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCQkJCW5ldyBBdXRvRmlsbCggb1RhYmxlLCB7CgkJCQkJImFvQ29sdW1uRGVmcyI6IFsgewoJCQkJCQkiYkVuYWJsZSI6IGZhbHNlLAoJCQkJCQkiYVRhcmdldHMiOiBbIC0xLCAtMiwgLTMgXQoJCQkJCX0gXQoJCQkJfSApOwoJCQl9ICk7CgkJPC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keSBpZD0iZHRfZXhhbXBsZSI+CgkJPGRpdiBpZD0iY29udGFpbmVyIj4KCQkJPGRpdiBjbGFzcz0iZnVsbF93aWR0aCBiaWciPgoJCQkJQXV0b0ZpbGwgZXhhbXBsZSB3aXRoIGNvbHVtbiBzZWxlY3Rpb24gb3B0aW9ucwoJCQk8L2Rpdj4KCQkJCgkJCTxoMT5QcmVhbWJsZTwvaDE+CgkJCTxwPgoJCQkJQ29sdW1ucyBjYW4gYmUgZW5hYmxlZCAoZGVmYXVsdCkgYW5kIGRpc2FibGVkIGZyb20gcHJvdmlkaW5nIHRoZSBlbmQgdXNlciB0aGUgQXV0b0ZpbGwgb3B0aW9uCgkJCQlieSB1c2luZyBlaXRoZXIgYW9Db2x1bW5zIG9yIGFvQ29sdW1uRGVmcyBhbmQgdGhlIGJFbmFibGUgb3B0aW9uLiBUaGVzZSB0d28gYXJyYXlzIHdvcmsgaW4KCQkJCTxhIGhyZWY9Imh0dHA6Ly9kYXRhdGFibGVzLm5ldC91c2FnZS9jb2x1bW5zIj5leGFjdGx5IHRoZSBzYW1lIHdheSBoYXMgZm9yIERhdGFUYWJsZXM8L2E+LgoJCQk8L3A+CgkJCTxwPgoJCQkJVGhpcyBleGFtcGxlIHNob3dzIGhvdyBkaXNhYmxpbmcgY29sdW1ucyBjb3VudGluZyBmcm9tIHRoZSByaWdodCBoYW5kIHNpZGUgb2YgdGhlIHRhYmxlIAoJCQkJY2FuIGJlIGFjaGlldmVkLiBJbiB0aGlzIGNhc2UsIHRoZSBsYXN0IHRocmVlIGNvbHVtbnMuCgkJCTwvcD4KCQkJCgkJCQoJCQk8aDE+TGl2ZSBleGFtcGxlPC9oMT4KCQkJPGZvcm0+CgkJCTxkaXYgaWQ9ImRlbW8iPgo8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIGNsYXNzPSJkaXNwbGF5IiBpZD0iZXhhbXBsZSI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGZvb3Q+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGZvb3Q+Cgk8dGJvZHk+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVYIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNC4wPC90ZD4KCQkJPHRkPldpbiA5NSsgKEVudGl0eTogJmFtcDspPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVDIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4wPC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA2PC90ZD4KCQkJPHRkPldpbiA5OCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDc8L3RkPgoJCQk8dGQ+V2luIFhQIFNQMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5BT0wgYnJvd3NlciAoQU9MIGRlc2t0b3ApPC90ZD4KCQkJPHRkPldpbiBYUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvIChVVEYtODogJMKi4oKsKTwvdGQ+CgkJCTx0ZD5GaXJlZm94IDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjU8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAyLjA8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMy4wPC90ZD4KCQkJPHRkPldpbiAyaysgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS45PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkNhbWlubyAxLjA8L3RkPgoJCQk8dGQ+T1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuNTwvdGQ+CgkJCTx0ZD5PU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIDcuMjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gTWFjIE9TIDguNi05LjI8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSBCcm93c2VyIDg8L3RkPgoJCQk8dGQ+V2luIDk4U0UrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSBOYXZpZ2F0b3IgOTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4xPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMzwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjQ8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS42PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS43PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuODwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5TZWFtb25rZXkgMS4xPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5FcGlwaGFueSAyLjIwPC90ZD4KCQkJPHRkPkdub21lPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDEuMjwvdGQ+CgkJCTx0ZD5PU1guMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xMjUuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjM8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MzEyLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAyLjA8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQxOS4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDMuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTIyLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPk9tbmlXZWIgNS41PC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MjA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5pUG9kIFRvdWNoIC8gaVBob25lPC90ZD4KCQkJPHRkPmlQb2Q8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlM2MDwvdGQ+CgkJCTx0ZD5TNjA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDEzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgNy4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgNy41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDguMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDguNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjI8L3RkPgoJCQk8dGQ+V2luIDg4KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS41PC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgZm9yIFdpaTwvdGQ+CgkJCTx0ZD5XaWk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5va2lhIE44MDA8L3RkPgoJCQk8dGQ+TjgwMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5OaW50ZW5kbyBEUyBicm93c2VyPC90ZD4KCQkJPHRkPk5pbnRlbmRvIERTPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjguNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DL0E8c3VwPjE8L3N1cD48L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQyI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuMTwvdGQ+CgkJCTx0ZD5LREUgMy4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuMzwvdGQ+CgkJCTx0ZD5LREUgMy4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjU8L3RkPgoJCQk8dGQ+S0RFIDMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZVgiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDQuNTwvdGQ+CgkJCTx0ZD5NYWMgT1MgOC05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVDIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjE8L3RkPgoJCQk8dGQ+TWFjIE9TIDcuNi05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUMiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMjwvdGQ+CgkJCTx0ZD5NYWMgT1MgOC1YPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy4xPC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPk5ldEZyb250IDMuNDwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+RGlsbG8gMC44PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkxpbmtzPC90ZD4KCQkJPHRkPlRleHQgb25seTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkx5bng8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUMiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5JRSBNb2JpbGU8L3RkPgoJCQk8dGQ+V2luZG93cyBNb2JpbGUgNjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQyI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPlBTUCBicm93c2VyPC90ZD4KCQkJPHRkPlBTUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVVIj4KCQkJPHRkPk90aGVyIGJyb3dzZXJzPC90ZD4KCQkJPHRkPkFsbCBvdGhlcnM8L3RkPgoJCQk8dGQ+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlU8L3RkPgoJCTwvdHI+Cgk8L3Rib2R5Pgo8L3RhYmxlPgoJCQk8L2Rpdj4KCQk8L2Zvcm0+CgkJCTxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CgkJCQoJCQkKCQkJPGgxPkV4YW1wbGVzPC9oMT4KCQkJPHVsPgoJCQkJPGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkJhc2ljIGluaXRpYWxpc2F0aW9uPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iY29sdW1ucy5odG1sIj5TZWxlY3Rpbmcgd2hpY2ggY29sdW1ucyB0byBwcm92aWRlIEF1dG9GaWxsIG9uPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ic2Nyb2xsaW5nLmh0bWwiPlNjcm9sbGluZyBhIERhdGFUYWJsZSB1c2luZyBmaWxsPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iaW5wdXRzLmh0bWwiPlVzaW5nIHdpdGggaW5wdXQgZWxlbWVudHM8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJjYWxsYmFja3MuaHRtbCI+Q3VzdG9taXNhdGlvbiB1c2luZyBjYWxsYmFjayBmdW5jdGlvbnM8L2E+PC9saT4KCQkJPC91bD4KCQkJCgkJCQoJCQk8aDE+SW5pdGlhbGlzYXRpb24gY29kZTwvaDE+CgkJCTxwcmU+JChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJbmV3IEF1dG9GaWxsKCBvVGFibGUsIHsKCQkiYW9Db2x1bW5EZWZzIjogWyB7CgkJCSJiRW5hYmxlIjogZmFsc2UsCgkJCSJhVGFyZ2V0cyI6IFsgLTEsIC0yLCAtMyBdCgkJfSBdCgl9ICk7Cn0gKTs8L3ByZT4KCQkJCgkJCTxkaXYgaWQ9ImZvb3RlciIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyOyI+CgkJCQk8c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwcHg7Ij4KCQkJCQlBdXRvRmlsbCBhbmQgRGF0YVRhYmxlcyAmY29weTsgQWxsYW4gSmFyZGluZSAyMDA5LTIwMTAuPGJyPgoJCQkJPC9zcGFuPgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5BdXRvRmlsbCBleGFtcGxlPC90aXRsZT4KCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJjdXJyZW50U3R5bGUiPgoJCQlAaW1wb3J0ICIuLi8uLi9tZWRpYS9jc3MvZGVtb19wYWdlLmNzcyI7CgkJCUBpbXBvcnQgIi4uLy4uL21lZGlhL2Nzcy9kZW1vX3RhYmxlLmNzcyI7CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9BdXRvRmlsbC5jc3MiOwoJCTwvc3R5bGU+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5kYXRhVGFibGVzLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiIHNyYz0ibWVkaWEvanMvQXV0b0ZpbGwuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CgkJCSQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkJCQl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCQkJCW5ldyBBdXRvRmlsbCggb1RhYmxlICk7CgkJCX0gKTsKCQk8L3NjcmlwdD4KCTwvaGVhZD4KCTxib2R5IGlkPSJkdF9leGFtcGxlIj4KCQk8ZGl2IGlkPSJjb250YWluZXIiPgoJCQk8ZGl2IGNsYXNzPSJmdWxsX3dpZHRoIGJpZyI+CgkJCQlBdXRvRmlsbCBleGFtcGxlCgkJCTwvZGl2PgoJCQkKCQkJPGgxPlByZWFtYmxlPC9oMT4KCQkJPHA+CgkJCQlBdXRvRmlsbCBnaXZlcyBhbiBFeGNlbCBsaWtlIG9wdGlvbiB0byBhIERhdGFUYWJsZSB0byBjbGljayBhbmQgZHJhZyBvdmVyIG11bHRpcGxlCgkJCQljZWxscywgZmlsbGluZyBpbiBpbmZvcm1hdGlvbiBvdmVyIHRoZSBzZWxlY3RlZCBjZWxscyBhbmQgaW5jcmVtZW50aW5nIG51bWJlcnMgYXMgbmVlZGVkLgoJCQk8L3A+CgkJCTxwPlRoYW5rcyB0byA8YSBocmVmPSJodHRwOi8vd3d3LnBob25pYXgubm8vIj5QaG9uaWF4IEFTPC9hPiBmb3IgdGhlaXIgc3BvbnNvcnNoaXAgb2YgdGhpcyBwbHVnLWluIGZvciBEYXRhVGFibGVzLjwvcD4KCQkJCgkJCQoJCQkKCQkJPGgxPkxpdmUgZXhhbXBsZTwvaDE+CgkJCTxmb3JtPgoJCQk8ZGl2IGlkPSJkZW1vIj4KPHRhYmxlIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgYm9yZGVyPSIwIiBjbGFzcz0iZGlzcGxheSIgaWQ9ImV4YW1wbGUiPgoJPHRoZWFkPgoJCTx0cj4KCQkJPHRoPlJlbmRlcmluZyBlbmdpbmU8L3RoPgoJCQk8dGg+QnJvd3NlcjwvdGg+CgkJCTx0aD5QbGF0Zm9ybShzKTwvdGg+CgkJCTx0aD5FbmdpbmUgdmVyc2lvbjwvdGg+CgkJCTx0aD5DU1MgZ3JhZGU8L3RoPgoJCTwvdHI+Cgk8L3RoZWFkPgoJPHRmb290PgoJCTx0cj4KCQkJPHRoPlJlbmRlcmluZyBlbmdpbmU8L3RoPgoJCQk8dGg+QnJvd3NlcjwvdGg+CgkJCTx0aD5QbGF0Zm9ybShzKTwvdGg+CgkJCTx0aD5FbmdpbmUgdmVyc2lvbjwvdGg+CgkJCTx0aD5DU1MgZ3JhZGU8L3RoPgoJCTwvdHI+Cgk8L3Rmb290PgoJPHRib2R5PgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlWCI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDQuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIChFbnRpdHk6ICZhbXA7KTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQyI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjU8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNjwvdGQ+CgkJCTx0ZD5XaW4gOTgrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA3PC90ZD4KCQkJPHRkPldpbiBYUCBTUDIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+QU9MIGJyb3dzZXIgKEFPTCBkZXNrdG9wKTwvdGQ+CgkJCTx0ZD5XaW4gWFA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbyAoVVRGLTg6ICTCouKCrCk8L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjA8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMS41PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMi4wPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDMuMDwvdGQ+CgkJCTx0ZD5XaW4gMmsrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5DYW1pbm8gMS4wPC90ZD4KCQkJPHRkPk9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkNhbWlubyAxLjU8L3RkPgoJCQk8dGQ+T1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSA3LjI8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE1hYyBPUyA4LjYtOS4yPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgQnJvd3NlciA4PC90ZD4KCQkJPHRkPldpbiA5OFNFKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgTmF2aWdhdG9yIDk8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjI8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjI8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjM8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS40PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS40PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNzwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjg8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+U2VhbW9ua2V5IDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RXBpcGhhbnkgMi4yMDwvdGQ+CgkJCTx0ZD5Hbm9tZTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjI8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTI1LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMS4zPC90ZD4KCQkJPHRkPk9TWC4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMxMi44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMi4wPC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTkuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAzLjA8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUyMi4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5PbW5pV2ViIDUuNTwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+aVBvZCBUb3VjaCAvIGlQaG9uZTwvdGQ+CgkJCTx0ZD5pUG9kPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQyMC4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TNjA8L3RkPgoJCQk8dGQ+UzYwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQxMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDcuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDcuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA4LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA4LjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS4yPC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuNTwvdGQ+CgkJCTx0ZD5XaW4gODgrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIGZvciBXaWk8L3RkPgoJCQk8dGQ+V2lpPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5Ob2tpYSBOODAwPC90ZD4KCQkJPHRkPk44MDA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+TmludGVuZG8gRFMgYnJvd3NlcjwvdGQ+CgkJCTx0ZD5OaW50ZW5kbyBEUzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj44LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+Qy9BPHN1cD4xPC9zdXA+PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUMiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjE8L3RkPgoJCQk8dGQ+S0RFIDMuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjM8L3RkPgoJCQk8dGQ+S0RFIDMuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy41PC90ZD4KCQkJPHRkPktERSAzLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVYIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA0LjU8L3RkPgoJCQk8dGQ+TWFjIE9TIDgtOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQyI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4xPC90ZD4KCQkJPHRkPk1hYyBPUyA3LjYtOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVDIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjI8L3RkPgoJCQk8dGQ+TWFjIE9TIDgtWDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPk5ldEZyb250IDMuMTwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5OZXRGcm9udCAzLjQ8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkRpbGxvIDAuODwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5MaW5rczwvdGQ+CgkJCTx0ZD5UZXh0IG9ubHk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5MeW54PC90ZD4KCQkJPHRkPlRleHQgb25seTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVDIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+SUUgTW9iaWxlPC90ZD4KCQkJPHRkPldpbmRvd3MgTW9iaWxlIDY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUMiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5QU1AgYnJvd3NlcjwvdGQ+CgkJCTx0ZD5QU1A8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlVSI+CgkJCTx0ZD5PdGhlciBicm93c2VyczwvdGQ+CgkJCTx0ZD5BbGwgb3RoZXJzPC90ZD4KCQkJPHRkPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5VPC90ZD4KCQk8L3RyPgoJPC90Ym9keT4KPC90YWJsZT4KCQkJPC9kaXY+CgkJPC9mb3JtPgoJCQk8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgoJCQkKCQkJCgkJCTxoMT5FeGFtcGxlczwvaDE+CgkJCTx1bD4KCQkJCTxsaT48YSBocmVmPSJpbmRleC5odG1sIj5CYXNpYyBpbml0aWFsaXNhdGlvbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImNvbHVtbnMuaHRtbCI+U2VsZWN0aW5nIHdoaWNoIGNvbHVtbnMgdG8gcHJvdmlkZSBBdXRvRmlsbCBvbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InNjcm9sbGluZy5odG1sIj5TY3JvbGxpbmcgYSBEYXRhVGFibGUgdXNpbmcgZmlsbDwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImlucHV0cy5odG1sIj5Vc2luZyB3aXRoIGlucHV0IGVsZW1lbnRzPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iY2FsbGJhY2tzLmh0bWwiPkN1c3RvbWlzYXRpb24gdXNpbmcgY2FsbGJhY2sgZnVuY3Rpb25zPC9hPjwvbGk+CgkJCTwvdWw+CgkJCQoJCQkKCQkJPGgxPkluaXRpYWxpc2F0aW9uIGNvZGU8L2gxPgoJCQk8cHJlPiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCW5ldyBBdXRvRmlsbCggb1RhYmxlICk7PC9wcmU+CgkJCQoJCQk8ZGl2IGlkPSJmb290ZXIiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjsiPgoJCQkJPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMHB4OyI+CgkJCQkJQXV0b0ZpbGwgYW5kIERhdGFUYWJsZXMgJmNvcHk7IEFsbGFuIEphcmRpbmUgMjAwOS0yMDEwLjxicj4KCQkJCTwvc3Bhbj4KCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2JvZHk+CjwvaHRtbD4=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/inputs.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5BdXRvRmlsbCBleGFtcGxlPC90aXRsZT4KCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJjdXJyZW50U3R5bGUiPgoJCQlAaW1wb3J0ICIuLi8uLi9tZWRpYS9jc3MvZGVtb19wYWdlLmNzcyI7CgkJCUBpbXBvcnQgIi4uLy4uL21lZGlhL2Nzcy9kZW1vX3RhYmxlLmNzcyI7CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9BdXRvRmlsbC5jc3MiOwoJCQl0ZCBpbnB1dCB7IHdpZHRoOiA5MCUgfQoJCTwvc3R5bGU+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5kYXRhVGFibGVzLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiIHNyYz0ibWVkaWEvanMvQXV0b0ZpbGwuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CgkJCSQuZm4uZGF0YVRhYmxlRXh0LmFmblNvcnREYXRhWydkb20tdGV4dCddID0gZnVuY3Rpb24gICggb1NldHRpbmdzLCBpQ29sdW1uICkKCQkJewoJCQkJdmFyIGFEYXRhID0gW107CgkJCQkkKCAndGQ6ZXEoJytpQ29sdW1uKycpIGlucHV0Jywgb1NldHRpbmdzLm9BcGkuX2ZuR2V0VHJOb2RlcyhvU2V0dGluZ3MpICkuZWFjaCggZnVuY3Rpb24gKCkgewoJCQkJCWFEYXRhLnB1c2goIHRoaXMudmFsdWUgKTsKCQkJCX0gKTsKCQkJCXJldHVybiBhRGF0YTsKCQkJfQoJCQkKCQkJJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCQkJCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCQkJCXsgInNTb3J0RGF0YVR5cGUiOiAiZG9tLXRleHQiLCAiYVRhcmdldHMiOiBbICJfYWxsIiBdIH0sCgkJCQkJCXsgInNUeXBlIjogIm51bWVyaWMiLCAiYVRhcmdldHMiOiBbIC0yIF0gfQoJCQkJCV0KCQkJCX0gKTsKCQkJCW5ldyBBdXRvRmlsbCggb1RhYmxlICk7CgkJCX0gKTsKCQk8L3NjcmlwdD4KCTwvaGVhZD4KCTxib2R5IGlkPSJkdF9leGFtcGxlIj4KCQk8ZGl2IGlkPSJjb250YWluZXIiPgoJCQk8ZGl2IGNsYXNzPSJmdWxsX3dpZHRoIGJpZyI+CgkJCQlBdXRvRmlsbCBleGFtcGxlIHdpdGggaW5wdXQgZWxlbWVudHMKCQkJPC9kaXY+CgkJCQoJCQk8aDE+UHJlYW1ibGU8L2gxPgoJCQk8cD4KCQkJCUF1dG9GaWxsIHdvcmtzIHdpdGggSW5wdXQgZWxlbWVudHMgYW5kIFNlbGVjdCBlbGVtZW50cywgYXMgd2VsbCBhcyBwbGFpbiBIVE1MIGNlbGxzLiBUaGlzCgkJCQlleGFtcGxlIHNob3dzIGFsbCBpbnB1dHMgY2VsbHMsIGNvbWJpbmVkIHdpdGggRGF0YVRhYmxlcycgRE9NIHNvcnRpbmcgcGx1Zy1pbi4gWW91IGNhbiAKCQkJCWV2ZW4gY29tYmluZSBpbnB1dCBhbmQgcGxhaW4gSFRNTCBjZWxscyBpZiB5b3Ugd2FudGVkICh1c2VmdWwgZnJvbSBzb21ldGhpbmcgbGlrZSBqRWRpdGFibGUpLgoJCQk8L3A+CgkJCQoJCQkKCQkJCgkJCTxoMT5MaXZlIGV4YW1wbGU8L2gxPgoJCQk8Zm9ybT4KCQkJPGRpdiBpZD0iZGVtbyI+Cjx0YWJsZSBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIGJvcmRlcj0iMCIgY2xhc3M9ImRpc3BsYXkiIGlkPSJleGFtcGxlIj4KCTx0aGVhZD4KCQk8dHI+CgkJCTx0aD5SZW5kZXJpbmcgZW5naW5lPC90aD4KCQkJPHRoPkJyb3dzZXI8L3RoPgoJCQk8dGg+UGxhdGZvcm0ocyk8L3RoPgoJCQk8dGg+RW5naW5lIHZlcnNpb248L3RoPgoJCQk8dGg+Q1NTIGdyYWRlPC90aD4KCQk8L3RyPgoJPC90aGVhZD4KCTx0Zm9vdD4KCQk8dHI+CgkJCTx0aD5SZW5kZXJpbmcgZW5naW5lPC90aD4KCQkJPHRoPkJyb3dzZXI8L3RoPgoJCQk8dGg+UGxhdGZvcm0ocyk8L3RoPgoJCQk8dGg+RW5naW5lIHZlcnNpb248L3RoPgoJCQk8dGg+Q1NTIGdyYWRlPC90aD4KCQk8L3RyPgoJPC90Zm9vdD4KCTx0Ym9keT4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZVgiPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJUcmlkZW50Ij48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJJbnRlcm5ldCBFeHBsb3JlciA0LjAiPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IldpbiA5NSsgKEVudGl0eTogJmFtcDspIj48L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSI0Ij48L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJYIj48L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQyI+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IlRyaWRlbnQiPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IkludGVybmV0IEV4cGxvcmVyIDUuMCI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iV2luIDk1KyI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iNSI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iQyI+PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IlRyaWRlbnQiPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IkludGVybmV0IEV4cGxvcmVyIDUuNSI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iV2luIDk1KyI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iNS41Ij48L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJBIj48L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IlRyaWRlbnQiPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IkludGVybmV0IEV4cGxvcmVyIDYiPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IldpbiA5OCsiPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IjYiPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IkEiPjwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJUcmlkZW50Ij48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJJbnRlcm5ldCBFeHBsb3JlciA3Ij48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJXaW4gWFAgU1AyKyI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iNyI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iQSI+PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJUcmlkZW50Ij48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJBT0wgYnJvd3NlciAoQU9MIGRlc2t0b3ApIj48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJXaW4gWFAiPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IjYiPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IkEiPjwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJHZWNrbyAoVVRGLTg6ICTCouKCrCkiPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IkZpcmVmb3ggMS4wIj48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJXaW4gOTgrIC8gT1NYLjIrIj48L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSIxLjciPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IkEiPjwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iR2Vja28iPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IkZpcmVmb3ggMS41Ij48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJXaW4gOTgrIC8gT1NYLjIrIj48L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSIxLjgiPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IkEiPjwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJHZWNrbyI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iRmlyZWZveCAyLjAiPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IldpbiA5OCsgLyBPU1guMisiPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IjEuOCI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iQSI+PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJHZWNrbyI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iRmlyZWZveCAzLjAiPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IldpbiAyaysgLyBPU1guMysiPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IjEuOSI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iQSI+PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IkdlY2tvIj48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJDYW1pbm8gMS4wIj48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJPU1guMisiPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IjEuOCI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iQSI+PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJHZWNrbyI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iQ2FtaW5vIDEuNSI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iT1NYLjMrIj48L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSIxLjgiPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IkEiPjwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJHZWNrbyI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iTmV0c2NhcGUgNy4yIj48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJXaW4gOTUrIC8gTWFjIE9TIDguNi05LjIiPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IjEuNyI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iQSI+PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJHZWNrbyI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iTmV0c2NhcGUgQnJvd3NlciA4Ij48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJXaW4gOThTRSsiPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IjEuNyI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iQSI+PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IkdlY2tvIj48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJOZXRzY2FwZSBOYXZpZ2F0b3IgOSI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iV2luIDk4KyAvIE9TWC4yKyI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iMS44Ij48L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJBIj48L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IkdlY2tvIj48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJNb3ppbGxhIDEuMCI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iV2luIDk1KyAvIE9TWC4xKyI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iMSI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iQSI+PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IkdlY2tvIj48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJNb3ppbGxhIDEuMSI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iV2luIDk1KyAvIE9TWC4xKyI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iMS4xIj48L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJBIj48L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IkdlY2tvIj48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJNb3ppbGxhIDEuMiI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iV2luIDk1KyAvIE9TWC4xKyI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iMS4yIj48L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJBIj48L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iR2Vja28iPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9Ik1vemlsbGEgMS4zIj48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJXaW4gOTUrIC8gT1NYLjErIj48L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSIxLjMiPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IkEiPjwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iR2Vja28iPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9Ik1vemlsbGEgMS40Ij48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJXaW4gOTUrIC8gT1NYLjErIj48L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSIxLjQiPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IkEiPjwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJHZWNrbyI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iTW96aWxsYSAxLjUiPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IldpbiA5NSsgLyBPU1guMSsiPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IjEuNSI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iQSI+PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJHZWNrbyI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iTW96aWxsYSAxLjYiPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IldpbiA5NSsgLyBPU1guMSsiPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IjEuNiI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iQSI+PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IkdlY2tvIj48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJNb3ppbGxhIDEuNyI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iV2luIDk4KyAvIE9TWC4xKyI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iMS43Ij48L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJBIj48L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IkdlY2tvIj48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJNb3ppbGxhIDEuOCI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iV2luIDk4KyAvIE9TWC4xKyI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iMS44Ij48L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJBIj48L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iR2Vja28iPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IlNlYW1vbmtleSAxLjEiPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IldpbiA5OCsgLyBPU1guMisiPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IjEuOCI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iQSI+PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJHZWNrbyI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iRXBpcGhhbnkgMi4yMCI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iR25vbWUiPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IjEuOCI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iQSI+PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IldlYmtpdCI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iU2FmYXJpIDEuMiI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iT1NYLjMiPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IjEyNS41Ij48L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJBIj48L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IldlYmtpdCI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iU2FmYXJpIDEuMyI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iT1NYLjMiPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IjMxMi44Ij48L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJBIj48L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iV2Via2l0Ij48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJTYWZhcmkgMi4wIj48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJPU1guNCsiPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IjQxOS4zIj48L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJBIj48L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IldlYmtpdCI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iU2FmYXJpIDMuMCI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iT1NYLjQrIj48L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSI1MjIuMSI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iQSI+PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IldlYmtpdCI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iT21uaVdlYiA1LjUiPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9Ik9TWC40KyI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iNDIwIj48L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJBIj48L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IldlYmtpdCI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iaVBvZCBUb3VjaCAvIGlQaG9uZSI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iaVBvZCI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iNDIwLjEiPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IkEiPjwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJXZWJraXQiPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IlM2MCI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iUzYwIj48L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSI0MTMiPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IkEiPjwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iUHJlc3RvIj48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJPcGVyYSA3LjAiPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IldpbiA5NSsgLyBPU1guMSsiPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9Ii0iPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IkEiPjwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJQcmVzdG8iPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9Ik9wZXJhIDcuNSI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iV2luIDk1KyAvIE9TWC4yKyI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iLSI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iQSI+PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJQcmVzdG8iPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9Ik9wZXJhIDguMCI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iV2luIDk1KyAvIE9TWC4yKyI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iLSI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iQSI+PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IlByZXN0byI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iT3BlcmEgOC41Ij48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJXaW4gOTUrIC8gT1NYLjIrIj48L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSItIj48L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJBIj48L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IlByZXN0byI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iT3BlcmEgOS4wIj48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJXaW4gOTUrIC8gT1NYLjMrIj48L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSItIj48L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJBIj48L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iUHJlc3RvIj48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJPcGVyYSA5LjIiPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IldpbiA4OCsgLyBPU1guMysiPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9Ii0iPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IkEiPjwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iUHJlc3RvIj48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJPcGVyYSA5LjUiPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IldpbiA4OCsgLyBPU1guMysiPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9Ii0iPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IkEiPjwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJQcmVzdG8iPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9Ik9wZXJhIGZvciBXaWkiPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IldpaSI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iLSI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iQSI+PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJQcmVzdG8iPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9Ik5va2lhIE44MDAiPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9Ik44MDAiPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9Ii0iPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IkEiPjwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJQcmVzdG8iPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9Ik5pbnRlbmRvIERTIGJyb3dzZXIiPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9Ik5pbnRlbmRvIERTIj48L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSI4LjUiPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IkMvQTxzdXA+MTwvc3VwPiI+PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUMiPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJLSFRNTCI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iS29ucXVyZXJvciAzLjEiPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IktERSAzLjEiPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IjMuMSI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iQyI+PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IktIVE1MIj48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJLb25xdXJlcm9yIDMuMyI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iS0RFIDMuMyI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iMy4zIj48L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJBIj48L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IktIVE1MIj48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJLb25xdXJlcm9yIDMuNSI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iS0RFIDMuNSI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iMy41Ij48L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJBIj48L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVYIj4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iVGFzbWFuIj48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJJbnRlcm5ldCBFeHBsb3JlciA0LjUiPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9Ik1hYyBPUyA4LTkiPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9Ii0iPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IlgiPjwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVDIj4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iVGFzbWFuIj48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJJbnRlcm5ldCBFeHBsb3JlciA1LjEiPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9Ik1hYyBPUyA3LjYtOSI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iMSI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iQyI+PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQyI+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IlRhc21hbiI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iSW50ZXJuZXQgRXhwbG9yZXIgNS4yIj48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJNYWMgT1MgOC1YIj48L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSIxIj48L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJDIj48L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9Ik1pc2MiPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9Ik5ldEZyb250IDMuMSI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iRW1iZWRkZWQgZGV2aWNlcyI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iLSI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iQyI+PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9Ik1pc2MiPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9Ik5ldEZyb250IDMuNCI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iRW1iZWRkZWQgZGV2aWNlcyI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iLSI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iQSI+PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZVgiPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJNaXNjIj48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJEaWxsbyAwLjgiPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IkVtYmVkZGVkIGRldmljZXMiPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9Ii0iPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IlgiPjwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZVgiPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJNaXNjIj48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJMaW5rcyI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iVGV4dCBvbmx5Ij48L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSItIj48L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJYIj48L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlWCI+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9Ik1pc2MiPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9Ikx5bngiPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IlRleHQgb25seSI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iLSI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iWCI+PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQyI+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9Ik1pc2MiPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IklFIE1vYmlsZSI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iV2luZG93cyBNb2JpbGUgNiI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iLSI+PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iQyI+PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUMiPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJNaXNjIj48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJQU1AgYnJvd3NlciI+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iUFNQIj48L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSItIj48L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+PGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSJDIj48L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVVIj4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iT3RoZXIgYnJvd3NlcnMiPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IkFsbCBvdGhlcnMiPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9Ii0iPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9Ii0iPjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj48aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IlUiPjwvdGQ+CgkJPC90cj4KCTwvdGJvZHk+CjwvdGFibGU+CgkJCTwvZGl2PgoJCTwvZm9ybT4KCQkJPGRpdiBjbGFzcz0ic3BhY2VyIj48L2Rpdj4KCQkJCgkJCQoJCQk8aDE+RXhhbXBsZXM8L2gxPgoJCQk8dWw+CgkJCQk8bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+QmFzaWMgaW5pdGlhbGlzYXRpb248L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJjb2x1bW5zLmh0bWwiPlNlbGVjdGluZyB3aGljaCBjb2x1bW5zIHRvIHByb3ZpZGUgQXV0b0ZpbGwgb248L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJzY3JvbGxpbmcuaHRtbCI+U2Nyb2xsaW5nIGEgRGF0YVRhYmxlIHVzaW5nIGZpbGw8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJpbnB1dHMuaHRtbCI+VXNpbmcgd2l0aCBpbnB1dCBlbGVtZW50czwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImNhbGxiYWNrcy5odG1sIj5DdXN0b21pc2F0aW9uIHVzaW5nIGNhbGxiYWNrIGZ1bmN0aW9uczwvYT48L2xpPgoJCQk8L3VsPgoJCQkKCQkJCgkJCTxoMT5Jbml0aWFsaXNhdGlvbiBjb2RlPC9oMT4KCQkJPHByZT4kLmZuLmRhdGFUYWJsZUV4dC5hZm5Tb3J0RGF0YVsnZG9tLXRleHQnXSA9IGZ1bmN0aW9uICggb1NldHRpbmdzLCBpQ29sdW1uICkKewoJdmFyIGFEYXRhID0gW107CgkkKCAndGQ6ZXEoJytpQ29sdW1uKycpIGlucHV0Jywgb1NldHRpbmdzLm9BcGkuX2ZuR2V0VHJOb2RlcyhvU2V0dGluZ3MpICkuZWFjaCggZnVuY3Rpb24gKCkgewoJCWFEYXRhLnB1c2goIHRoaXMudmFsdWUgKTsKCX0gKTsKCXJldHVybiBhRGF0YTsKfQoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCXsgInNTb3J0RGF0YVR5cGUiOiAiZG9tLXRleHQiLCAiYVRhcmdldHMiOiBbICJfYWxsIiBdIH0sCgkJCXsgInNUeXBlIjogIm51bWVyaWMiLCAiYVRhcmdldHMiOiBbIC0yIF0gfQoJCV0KCX0gKTsKCW5ldyBBdXRvRmlsbCggb1RhYmxlICk7Cn0gKTs8L3ByZT4KCQkJCgkJCTxkaXYgaWQ9ImZvb3RlciIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyOyI+CgkJCQk8c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwcHg7Ij4KCQkJCQlBdXRvRmlsbCBhbmQgRGF0YVRhYmxlcyAmY29weTsgQWxsYW4gSmFyZGluZSAyMDA5LTIwMTAuPGJyPgoJCQkJPC9zcGFuPgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/css/AutoFill.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICoKICogQXV0b0ZpbGwgc3R5bGVzCiAqLwoKZGl2LkF1dG9GaWxsX2ZpbGxlciB7CglkaXNwbGF5OiBub25lOwoJcG9zaXRpb246IGFic29sdXRlOwoJaGVpZ2h0OiAxNHB4OwoJd2lkdGg6IDE0cHg7CgliYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2ZpbGxlci5wbmcpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyOwoJei1pbmRleDogMTAwMjsKfQoKZGl2LkF1dG9GaWxsX2JvcmRlciB7CglkaXNwbGF5OiBub25lOwoJcG9zaXRpb246IGFic29sdXRlOwoJYmFja2dyb3VuZC1jb2xvcjogIzAwNjNkYzsKCXotaW5kZXg6IDEwMDE7CgkKCWJveC1zaGFkb3c6IDBweCAwcHggNXB4ICM3NmI0ZmY7CgktbW96LWJveC1zaGFkb3c6IDBweCAwcHggNXB4ICM3NmI0ZmY7Cgktd2Via2l0LWJveC1zaGFkb3c6IDBweCAwcHggNXB4ICM3NmI0ZmY7Cn0KCg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/docs/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/docs/02ff627f40.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTx0aXRsZT5OYW1lc3BhY2U6IFN0b3JlIGZvciBsaXZlIGluZm9ybWF0aW9uIGZvciB0aGUgY3VycmVudCBkcmFnIC0gZG9jdW1lbnRhdGlvbjwvdGl0bGU+CiAgCgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KCQkJQGltcG9ydCAibWVkaWEvY3NzL2RvYy5jc3MiOwoJCQlAaW1wb3J0ICJtZWRpYS9jc3Mvc2hDb3JlLmNzcyI7CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9zaFRoZW1lRGF0YVRhYmxlcy5jc3MiOwoJCTwvc3R5bGU+CgkKCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9zaENvcmUuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL3NoQnJ1c2hKU2NyaXB0LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9qcXVlcnkuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL2RvYy5qcyI+PC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keT4KCQk8ZGl2IGNsYXNzPSJmd19jb250YWluZXIiPgoJCQkKCQkJCTxhIG5hbWU9InRvcCI+PC9hPgoJCQkJPGRpdiBjbGFzcz0iZndfaGVhZGVyIj4KCQkJCQk8aDEgY2xhc3M9InBhZ2UtdGl0bGUiPk5hbWVzcGFjZTogU3RvcmUgZm9yIGxpdmUgaW5mb3JtYXRpb24gZm9yIHRoZSBjdXJyZW50IGRyYWc8L2gxPgoJCQkJCQoJCQkJCTxkaXYgY2xhc3M9InBhZ2UtaW5mbyI+CgkJCQkJCQoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgoJCQkJCgoJCQkJPGRpdiBjbGFzcz0iZndfbmF2Ij4KCQkJCQk8aDI+TmF2aWdhdGlvbjwvaDI+CgkJCQkJPHVsPgoJCQkJCTxsaT48YSBocmVmPSIjdG9wIj5PdmVydmlldzwvYT48L2xpPgoJCQkJCTxsaT48YSBocmVmPSIjc3VtbWFyeSI+U3VtbWFyeTwvYT48ZGl2PjwvZGl2PjwvbGk+PGxpPjxhIGhyZWY9IiNkZXRhaWxzIj5EZXRhaWxzPC9hPjxkaXY+PC9kaXY+PC9saT48L3VsPgoJCQkJCTxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDEwcHg7Ij4KCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2hvd19wcml2YXRlIiB2YWx1ZT0iMCI+CgkJCQkJCTxzcGFuIGlkPSJwcml2YXRlX2xhYmVsIj5IaWRpbmc8L3NwYW4+IHByaXZhdGUgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9InByaXZhdGVfdG9nZ2xlIiBocmVmPSIiPnRvZ2dsZTwvYT4pCgkJCQkJCTwvc3Bhbj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2PgoJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzaG93X2V4dGVuZGVkIiB2YWx1ZT0iMSI+CgkJCQkJCTxzcGFuIGlkPSJleHRlbmRlZF9sYWJlbCI+U2hvd2luZzwvc3Bhbj4gZXh0ZW5kZWQgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9ImV4dGVuZGVkX3RvZ2dsZSIgaHJlZj0iIj50b2dnbGU8L2E+KQoJCQkJCQk8L3NwYW4+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCgkJCQk8ZGl2IGNsYXNzPSJmd19jb250ZW50Ij4KCQkJCQk8YSBuYW1lPSJvdmVydmlldyI+PC9hPgoJCQkJCTxkaXYgY2xhc3M9ImRvY19vdmVydmlldyI+CgkJCQkJCTxkaXYgY2xhc3M9Im5hdl9ibG9ja2VyIj48L2Rpdj4KCQkJCQkJPGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgoKCQkJCQk8L2Rpdj4KCgkJCQkJCgoKCQkJCQkKCQk8L2Rpdj4KCgkJPGRpdiBjbGFzcz0iZndfZm9vdGVyIj4KCQkJCgoJCQlEb2N1bWVudGF0aW9uIGdlbmVyYXRlZCBieSA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbWljbWF0aC9KU0RvYyI+SlNEb2MgMzwvYT4gb24KCQkJOHRoIEF1ZyAyMDEyIC0gMjI6NTMKCQkJd2l0aCB0aGUgPGEgaHJlZj0iaHR0cDovL2RhdGF0YWJsZXMubmV0LyI+RGF0YVRhYmxlczwvYT4gdGVtcGxhdGUuCgkJPC9kaXY+Cgk8L2JvZHk+CjwvaHRtbD4=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/docs/5a72546831.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTx0aXRsZT5OYW1lc3BhY2U6IERhdGEgY2FjaGUgZm9yIHRoZSBwb3NpdGlvbiBvZiB0aGUgRGF0YVRhYmxlcyBzY3JvbGxpbmcgZWxlbWVudCAod2hlbiBzY3JvbGxpbmcKICBpcyBlbmFibGVkKSAtIGRvY3VtZW50YXRpb248L3RpdGxlPgogIAoJCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9kb2MuY3NzIjsKCQkJQGltcG9ydCAibWVkaWEvY3NzL3NoQ29yZS5jc3MiOwoJCQlAaW1wb3J0ICJtZWRpYS9jc3Mvc2hUaGVtZURhdGFUYWJsZXMuY3NzIjsKCQk8L3N0eWxlPgoJCgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvc2hDb3JlLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9zaEJydXNoSlNjcmlwdC5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvanF1ZXJ5LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9kb2MuanMiPjwvc2NyaXB0PgoJPC9oZWFkPgoJPGJvZHk+CgkJPGRpdiBjbGFzcz0iZndfY29udGFpbmVyIj4KCQkJCgkJCQk8YSBuYW1lPSJ0b3AiPjwvYT4KCQkJCTxkaXYgY2xhc3M9ImZ3X2hlYWRlciI+CgkJCQkJPGgxIGNsYXNzPSJwYWdlLXRpdGxlIj5OYW1lc3BhY2U6IERhdGEgY2FjaGUgZm9yIHRoZSBwb3NpdGlvbiBvZiB0aGUgRGF0YVRhYmxlcyBzY3JvbGxpbmcgZWxlbWVudCAod2hlbiBzY3JvbGxpbmcKICBpcyBlbmFibGVkKTwvaDE+CgkJCQkJCgkJCQkJPGRpdiBjbGFzcz0icGFnZS1pbmZvIj4KCQkJCQkJCgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCgkJCQkKCgkJCQk8ZGl2IGNsYXNzPSJmd19uYXYiPgoJCQkJCTxoMj5OYXZpZ2F0aW9uPC9oMj4KCQkJCQk8dWw+CgkJCQkJPGxpPjxhIGhyZWY9IiN0b3AiPk92ZXJ2aWV3PC9hPjwvbGk+CgkJCQkJPGxpPjxhIGhyZWY9IiNzdW1tYXJ5Ij5TdW1tYXJ5PC9hPjxkaXY+PC9kaXY+PC9saT48bGk+PGEgaHJlZj0iI2RldGFpbHMiPkRldGFpbHM8L2E+PGRpdj48L2Rpdj48L2xpPjwvdWw+CgkJCQkJPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogMTBweDsiPgoJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzaG93X3ByaXZhdGUiIHZhbHVlPSIwIj4KCQkJCQkJPHNwYW4gaWQ9InByaXZhdGVfbGFiZWwiPkhpZGluZzwvc3Bhbj4gcHJpdmF0ZSBlbGVtZW50cyAKCQkJCQkJCSg8YSBpZD0icHJpdmF0ZV90b2dnbGUiIGhyZWY9IiI+dG9nZ2xlPC9hPikKCQkJCQkJPC9zcGFuPgoJCQkJCTwvZGl2PgoJCQkJCTxkaXY+CgkJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNob3dfZXh0ZW5kZWQiIHZhbHVlPSIxIj4KCQkJCQkJPHNwYW4gaWQ9ImV4dGVuZGVkX2xhYmVsIj5TaG93aW5nPC9zcGFuPiBleHRlbmRlZCBlbGVtZW50cyAKCQkJCQkJCSg8YSBpZD0iZXh0ZW5kZWRfdG9nZ2xlIiBocmVmPSIiPnRvZ2dsZTwvYT4pCgkJCQkJCTwvc3Bhbj4KCQkJCQk8L2Rpdj4KCQkJCTwvZGl2PgoKCQkJCTxkaXYgY2xhc3M9ImZ3X2NvbnRlbnQiPgoJCQkJCTxhIG5hbWU9Im92ZXJ2aWV3Ij48L2E+CgkJCQkJPGRpdiBjbGFzcz0iZG9jX292ZXJ2aWV3Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibmF2X2Jsb2NrZXIiPjwvZGl2PgoJCQkJCQk8ZGwgY2xhc3M9ImRldGFpbHMiPgoJCjwvZGw+CgoJCQkJCTwvZGl2PgoKCQkJCQkKCgoJCQkJCQoJCTwvZGl2PgoKCQk8ZGl2IGNsYXNzPSJmd19mb290ZXIiPgoJCQkKCgkJCURvY3VtZW50YXRpb24gZ2VuZXJhdGVkIGJ5IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9taWNtYXRoL0pTRG9jIj5KU0RvYyAzPC9hPiBvbgoJCQk4dGggQXVnIDIwMTIgLSAyMjo1MwoJCQl3aXRoIHRoZSA8YSBocmVmPSJodHRwOi8vZGF0YXRhYmxlcy5uZXQvIj5EYXRhVGFibGVzPC9hPiB0ZW1wbGF0ZS4KCQk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/docs/8ee4007a12.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTx0aXRsZT5OYW1lc3BhY2U6IERhdGEgY2FjaGUgZm9yIGluZm9ybWF0aW9uIHRoYXQgd2UgbmVlZCBmb3Igc2Nyb2xsaW5nIHRoZSBzY3JlZW4gd2hlbiB3ZSBuZWFyCiAgdGhlIGVkZ2VzIC0gZG9jdW1lbnRhdGlvbjwvdGl0bGU+CiAgCgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KCQkJQGltcG9ydCAibWVkaWEvY3NzL2RvYy5jc3MiOwoJCQlAaW1wb3J0ICJtZWRpYS9jc3Mvc2hDb3JlLmNzcyI7CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9zaFRoZW1lRGF0YVRhYmxlcy5jc3MiOwoJCTwvc3R5bGU+CgkKCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9zaENvcmUuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL3NoQnJ1c2hKU2NyaXB0LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9qcXVlcnkuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL2RvYy5qcyI+PC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keT4KCQk8ZGl2IGNsYXNzPSJmd19jb250YWluZXIiPgoJCQkKCQkJCTxhIG5hbWU9InRvcCI+PC9hPgoJCQkJPGRpdiBjbGFzcz0iZndfaGVhZGVyIj4KCQkJCQk8aDEgY2xhc3M9InBhZ2UtdGl0bGUiPk5hbWVzcGFjZTogRGF0YSBjYWNoZSBmb3IgaW5mb3JtYXRpb24gdGhhdCB3ZSBuZWVkIGZvciBzY3JvbGxpbmcgdGhlIHNjcmVlbiB3aGVuIHdlIG5lYXIKICB0aGUgZWRnZXM8L2gxPgoJCQkJCQoJCQkJCTxkaXYgY2xhc3M9InBhZ2UtaW5mbyI+CgkJCQkJCQoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgoJCQkJCgoJCQkJPGRpdiBjbGFzcz0iZndfbmF2Ij4KCQkJCQk8aDI+TmF2aWdhdGlvbjwvaDI+CgkJCQkJPHVsPgoJCQkJCTxsaT48YSBocmVmPSIjdG9wIj5PdmVydmlldzwvYT48L2xpPgoJCQkJCTxsaT48YSBocmVmPSIjc3VtbWFyeSI+U3VtbWFyeTwvYT48ZGl2PjwvZGl2PjwvbGk+PGxpPjxhIGhyZWY9IiNkZXRhaWxzIj5EZXRhaWxzPC9hPjxkaXY+PC9kaXY+PC9saT48L3VsPgoJCQkJCTxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDEwcHg7Ij4KCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2hvd19wcml2YXRlIiB2YWx1ZT0iMCI+CgkJCQkJCTxzcGFuIGlkPSJwcml2YXRlX2xhYmVsIj5IaWRpbmc8L3NwYW4+IHByaXZhdGUgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9InByaXZhdGVfdG9nZ2xlIiBocmVmPSIiPnRvZ2dsZTwvYT4pCgkJCQkJCTwvc3Bhbj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2PgoJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzaG93X2V4dGVuZGVkIiB2YWx1ZT0iMSI+CgkJCQkJCTxzcGFuIGlkPSJleHRlbmRlZF9sYWJlbCI+U2hvd2luZzwvc3Bhbj4gZXh0ZW5kZWQgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9ImV4dGVuZGVkX3RvZ2dsZSIgaHJlZj0iIj50b2dnbGU8L2E+KQoJCQkJCQk8L3NwYW4+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCgkJCQk8ZGl2IGNsYXNzPSJmd19jb250ZW50Ij4KCQkJCQk8YSBuYW1lPSJvdmVydmlldyI+PC9hPgoJCQkJCTxkaXYgY2xhc3M9ImRvY19vdmVydmlldyI+CgkJCQkJCTxkaXYgY2xhc3M9Im5hdl9ibG9ja2VyIj48L2Rpdj4KCQkJCQkJPGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgoKCQkJCQk8L2Rpdj4KCgkJCQkJCgoKCQkJCQkKCQk8L2Rpdj4KCgkJPGRpdiBjbGFzcz0iZndfZm9vdGVyIj4KCQkJCgoJCQlEb2N1bWVudGF0aW9uIGdlbmVyYXRlZCBieSA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbWljbWF0aC9KU0RvYyI+SlNEb2MgMzwvYT4gb24KCQkJOHRoIEF1ZyAyMDEyIC0gMjI6NTMKCQkJd2l0aCB0aGUgPGEgaHJlZj0iaHR0cDovL2RhdGF0YWJsZXMubmV0LyI+RGF0YVRhYmxlczwvYT4gdGVtcGxhdGUuCgkJPC9kaXY+Cgk8L2JvZHk+CjwvaHRtbD4=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/docs/47cac4f141.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTx0aXRsZT5OYW1lc3BhY2U6IENhY2hlZCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYm9yZGVyIGRpc3BsYXkgLSBkb2N1bWVudGF0aW9uPC90aXRsZT4KICAKCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgoJCQlAaW1wb3J0ICJtZWRpYS9jc3MvZG9jLmNzcyI7CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9zaENvcmUuY3NzIjsKCQkJQGltcG9ydCAibWVkaWEvY3NzL3NoVGhlbWVEYXRhVGFibGVzLmNzcyI7CgkJPC9zdHlsZT4KCQoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL3NoQ29yZS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvc2hCcnVzaEpTY3JpcHQuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvZG9jLmpzIj48L3NjcmlwdD4KCTwvaGVhZD4KCTxib2R5PgoJCTxkaXYgY2xhc3M9ImZ3X2NvbnRhaW5lciI+CgkJCQoJCQkJPGEgbmFtZT0idG9wIj48L2E+CgkJCQk8ZGl2IGNsYXNzPSJmd19oZWFkZXIiPgoJCQkJCTxoMSBjbGFzcz0icGFnZS10aXRsZSI+TmFtZXNwYWNlOiBDYWNoZWQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGJvcmRlciBkaXNwbGF5PC9oMT4KCQkJCQkKCQkJCQk8ZGl2IGNsYXNzPSJwYWdlLWluZm8iPgoJCQkJCQkKCQkJCQk8L2Rpdj4KCQkJCTwvZGl2PgoKCQkJCQoKCQkJCTxkaXYgY2xhc3M9ImZ3X25hdiI+CgkJCQkJPGgyPk5hdmlnYXRpb248L2gyPgoJCQkJCTx1bD4KCQkJCQk8bGk+PGEgaHJlZj0iI3RvcCI+T3ZlcnZpZXc8L2E+PC9saT4KCQkJCQk8bGk+PGEgaHJlZj0iI3N1bW1hcnkiPlN1bW1hcnk8L2E+PGRpdj48L2Rpdj48L2xpPjxsaT48YSBocmVmPSIjZGV0YWlscyI+RGV0YWlsczwvYT48ZGl2PjwvZGl2PjwvbGk+PC91bD4KCQkJCQk8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAxMHB4OyI+CgkJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNob3dfcHJpdmF0ZSIgdmFsdWU9IjAiPgoJCQkJCQk8c3BhbiBpZD0icHJpdmF0ZV9sYWJlbCI+SGlkaW5nPC9zcGFuPiBwcml2YXRlIGVsZW1lbnRzIAoJCQkJCQkJKDxhIGlkPSJwcml2YXRlX3RvZ2dsZSIgaHJlZj0iIj50b2dnbGU8L2E+KQoJCQkJCQk8L3NwYW4+CgkJCQkJPC9kaXY+CgkJCQkJPGRpdj4KCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2hvd19leHRlbmRlZCIgdmFsdWU9IjEiPgoJCQkJCQk8c3BhbiBpZD0iZXh0ZW5kZWRfbGFiZWwiPlNob3dpbmc8L3NwYW4+IGV4dGVuZGVkIGVsZW1lbnRzIAoJCQkJCQkJKDxhIGlkPSJleHRlbmRlZF90b2dnbGUiIGhyZWY9IiI+dG9nZ2xlPC9hPikKCQkJCQkJPC9zcGFuPgoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgoJCQkJPGRpdiBjbGFzcz0iZndfY29udGVudCI+CgkJCQkJPGEgbmFtZT0ib3ZlcnZpZXciPjwvYT4KCQkJCQk8ZGl2IGNsYXNzPSJkb2Nfb3ZlcnZpZXciPgoJCQkJCQk8ZGl2IGNsYXNzPSJuYXZfYmxvY2tlciI+PC9kaXY+CgkJCQkJCTxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KCgkJCQkJPC9kaXY+CgoJCQkJCQoKCgkJCQkJCgkJPC9kaXY+CgoJCTxkaXYgY2xhc3M9ImZ3X2Zvb3RlciI+CgkJCQoKCQkJRG9jdW1lbnRhdGlvbiBnZW5lcmF0ZWQgYnkgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL21pY21hdGgvSlNEb2MiPkpTRG9jIDM8L2E+IG9uCgkJCTh0aCBBdWcgMjAxMiAtIDIyOjUzCgkJCXdpdGggdGhlIDxhIGhyZWY9Imh0dHA6Ly9kYXRhdGFibGVzLm5ldC8iPkRhdGFUYWJsZXM8L2E+IHRlbXBsYXRlLgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/docs/36456bf45f.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTx0aXRsZT5OYW1lc3BhY2U6IFNldHRpbmdzIG9iamVjdCB3aGljaCBjb250YWlucyBjdXN0b21pc2FibGUgaW5mb3JtYXRpb24gZm9yIEF1dG9GaWxsIGluc3RhbmNlIC0gZG9jdW1lbnRhdGlvbjwvdGl0bGU+CiAgCgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KCQkJQGltcG9ydCAibWVkaWEvY3NzL2RvYy5jc3MiOwoJCQlAaW1wb3J0ICJtZWRpYS9jc3Mvc2hDb3JlLmNzcyI7CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9zaFRoZW1lRGF0YVRhYmxlcy5jc3MiOwoJCTwvc3R5bGU+CgkKCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9zaENvcmUuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL3NoQnJ1c2hKU2NyaXB0LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9qcXVlcnkuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL2RvYy5qcyI+PC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keT4KCQk8ZGl2IGNsYXNzPSJmd19jb250YWluZXIiPgoJCQkKCQkJCTxhIG5hbWU9InRvcCI+PC9hPgoJCQkJPGRpdiBjbGFzcz0iZndfaGVhZGVyIj4KCQkJCQk8aDEgY2xhc3M9InBhZ2UtdGl0bGUiPk5hbWVzcGFjZTogU2V0dGluZ3Mgb2JqZWN0IHdoaWNoIGNvbnRhaW5zIGN1c3RvbWlzYWJsZSBpbmZvcm1hdGlvbiBmb3IgQXV0b0ZpbGwgaW5zdGFuY2U8L2gxPgoJCQkJCQoJCQkJCTxkaXYgY2xhc3M9InBhZ2UtaW5mbyI+CgkJCQkJCQoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgoJCQkJCgoJCQkJPGRpdiBjbGFzcz0iZndfbmF2Ij4KCQkJCQk8aDI+TmF2aWdhdGlvbjwvaDI+CgkJCQkJPHVsPgoJCQkJCTxsaT48YSBocmVmPSIjdG9wIj5PdmVydmlldzwvYT48L2xpPgoJCQkJCTxsaT48YSBocmVmPSIjc3VtbWFyeSI+U3VtbWFyeTwvYT48ZGl2PjwvZGl2PjwvbGk+PGxpPjxhIGhyZWY9IiNkZXRhaWxzIj5EZXRhaWxzPC9hPjxkaXY+PC9kaXY+PC9saT48L3VsPgoJCQkJCTxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDEwcHg7Ij4KCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2hvd19wcml2YXRlIiB2YWx1ZT0iMCI+CgkJCQkJCTxzcGFuIGlkPSJwcml2YXRlX2xhYmVsIj5IaWRpbmc8L3NwYW4+IHByaXZhdGUgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9InByaXZhdGVfdG9nZ2xlIiBocmVmPSIiPnRvZ2dsZTwvYT4pCgkJCQkJCTwvc3Bhbj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2PgoJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzaG93X2V4dGVuZGVkIiB2YWx1ZT0iMSI+CgkJCQkJCTxzcGFuIGlkPSJleHRlbmRlZF9sYWJlbCI+U2hvd2luZzwvc3Bhbj4gZXh0ZW5kZWQgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9ImV4dGVuZGVkX3RvZ2dsZSIgaHJlZj0iIj50b2dnbGU8L2E+KQoJCQkJCQk8L3NwYW4+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCgkJCQk8ZGl2IGNsYXNzPSJmd19jb250ZW50Ij4KCQkJCQk8YSBuYW1lPSJvdmVydmlldyI+PC9hPgoJCQkJCTxkaXYgY2xhc3M9ImRvY19vdmVydmlldyI+CgkJCQkJCTxkaXYgY2xhc3M9Im5hdl9ibG9ja2VyIj48L2Rpdj4KCQkJCQkJPGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgoKCQkJCQk8L2Rpdj4KCgkJCQkJCgoKCQkJCQkKCQk8L2Rpdj4KCgkJPGRpdiBjbGFzcz0iZndfZm9vdGVyIj4KCQkJCgoJCQlEb2N1bWVudGF0aW9uIGdlbmVyYXRlZCBieSA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbWljbWF0aC9KU0RvYyI+SlNEb2MgMzwvYT4gb24KCQkJOHRoIEF1ZyAyMDEyIC0gMjI6NTMKCQkJd2l0aCB0aGUgPGEgaHJlZj0iaHR0cDovL2RhdGF0YWJsZXMubmV0LyI+RGF0YVRhYmxlczwvYT4gdGVtcGxhdGUuCgkJPC9kaXY+Cgk8L2JvZHk+CjwvaHRtbD4=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/docs/a69b02bcf2.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTx0aXRsZT5OYW1lc3BhY2U6IENvbW1vbiBhbmQgdXNlZnVsIERPTSBlbGVtZW50cyBmb3IgdGhlIGNsYXNzIGluc3RhbmNlIC0gZG9jdW1lbnRhdGlvbjwvdGl0bGU+CiAgCgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KCQkJQGltcG9ydCAibWVkaWEvY3NzL2RvYy5jc3MiOwoJCQlAaW1wb3J0ICJtZWRpYS9jc3Mvc2hDb3JlLmNzcyI7CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9zaFRoZW1lRGF0YVRhYmxlcy5jc3MiOwoJCTwvc3R5bGU+CgkKCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9zaENvcmUuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL3NoQnJ1c2hKU2NyaXB0LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9qcXVlcnkuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL2RvYy5qcyI+PC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keT4KCQk8ZGl2IGNsYXNzPSJmd19jb250YWluZXIiPgoJCQkKCQkJCTxhIG5hbWU9InRvcCI+PC9hPgoJCQkJPGRpdiBjbGFzcz0iZndfaGVhZGVyIj4KCQkJCQk8aDEgY2xhc3M9InBhZ2UtdGl0bGUiPk5hbWVzcGFjZTogQ29tbW9uIGFuZCB1c2VmdWwgRE9NIGVsZW1lbnRzIGZvciB0aGUgY2xhc3MgaW5zdGFuY2U8L2gxPgoJCQkJCQoJCQkJCTxkaXYgY2xhc3M9InBhZ2UtaW5mbyI+CgkJCQkJCQoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgoJCQkJCgoJCQkJPGRpdiBjbGFzcz0iZndfbmF2Ij4KCQkJCQk8aDI+TmF2aWdhdGlvbjwvaDI+CgkJCQkJPHVsPgoJCQkJCTxsaT48YSBocmVmPSIjdG9wIj5PdmVydmlldzwvYT48L2xpPgoJCQkJCTxsaT48YSBocmVmPSIjc3VtbWFyeSI+U3VtbWFyeTwvYT48ZGl2PjwvZGl2PjwvbGk+PGxpPjxhIGhyZWY9IiNkZXRhaWxzIj5EZXRhaWxzPC9hPjxkaXY+PC9kaXY+PC9saT48L3VsPgoJCQkJCTxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDEwcHg7Ij4KCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2hvd19wcml2YXRlIiB2YWx1ZT0iMCI+CgkJCQkJCTxzcGFuIGlkPSJwcml2YXRlX2xhYmVsIj5IaWRpbmc8L3NwYW4+IHByaXZhdGUgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9InByaXZhdGVfdG9nZ2xlIiBocmVmPSIiPnRvZ2dsZTwvYT4pCgkJCQkJCTwvc3Bhbj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2PgoJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzaG93X2V4dGVuZGVkIiB2YWx1ZT0iMSI+CgkJCQkJCTxzcGFuIGlkPSJleHRlbmRlZF9sYWJlbCI+U2hvd2luZzwvc3Bhbj4gZXh0ZW5kZWQgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9ImV4dGVuZGVkX3RvZ2dsZSIgaHJlZj0iIj50b2dnbGU8L2E+KQoJCQkJCQk8L3NwYW4+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCgkJCQk8ZGl2IGNsYXNzPSJmd19jb250ZW50Ij4KCQkJCQk8YSBuYW1lPSJvdmVydmlldyI+PC9hPgoJCQkJCTxkaXYgY2xhc3M9ImRvY19vdmVydmlldyI+CgkJCQkJCTxkaXYgY2xhc3M9Im5hdl9ibG9ja2VyIj48L2Rpdj4KCQkJCQkJPGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgoKCQkJCQk8L2Rpdj4KCgkJCQkJCgoKCQkJCQkKCQk8L2Rpdj4KCgkJPGRpdiBjbGFzcz0iZndfZm9vdGVyIj4KCQkJCgoJCQlEb2N1bWVudGF0aW9uIGdlbmVyYXRlZCBieSA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbWljbWF0aC9KU0RvYyI+SlNEb2MgMzwvYT4gb24KCQkJOHRoIEF1ZyAyMDEyIC0gMjI6NTMKCQkJd2l0aCB0aGUgPGEgaHJlZj0iaHR0cDovL2RhdGF0YWJsZXMubmV0LyI+RGF0YVRhYmxlczwvYT4gdGVtcGxhdGUuCgkJPC9kaXY+Cgk8L2JvZHk+CjwvaHRtbD4=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/docs/AutoFill.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTx0aXRsZT5DbGFzczogQXV0b0ZpbGwgLSBkb2N1bWVudGF0aW9uPC90aXRsZT4KICAKCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgoJCQlAaW1wb3J0ICJtZWRpYS9jc3MvZG9jLmNzcyI7CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9zaENvcmUuY3NzIjsKCQkJQGltcG9ydCAibWVkaWEvY3NzL3NoVGhlbWVEYXRhVGFibGVzLmNzcyI7CgkJPC9zdHlsZT4KCQoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL3NoQ29yZS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvc2hCcnVzaEpTY3JpcHQuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvZG9jLmpzIj48L3NjcmlwdD4KCTwvaGVhZD4KCTxib2R5PgoJCTxkaXYgY2xhc3M9ImZ3X2NvbnRhaW5lciI+CgkJCQoJCQkJPGEgbmFtZT0idG9wIj48L2E+CgkJCQk8ZGl2IGNsYXNzPSJmd19oZWFkZXIiPgoJCQkJCTxoMSBjbGFzcz0icGFnZS10aXRsZSI+Q2xhc3M6IEF1dG9GaWxsPC9oMT4KCQkJCQk8cCBjbGFzcz0iY2xhc3MtZGVzY3JpcHRpb24iPkF1dG9GaWxsPC9wPgoJCQkJCTxkaXYgY2xhc3M9InBhZ2UtaW5mbyI+CgkJCQkJCQoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgoJCQkJCgoJCQkJPGRpdiBjbGFzcz0iZndfbmF2Ij4KCQkJCQk8aDI+TmF2aWdhdGlvbjwvaDI+CgkJCQkJPHVsPgoJCQkJCTxsaT48YSBocmVmPSIjdG9wIj5PdmVydmlldzwvYT48L2xpPgoJCQkJCTxsaT48YSBocmVmPSIjc3VtbWFyeSI+U3VtbWFyeTwvYT48ZGl2PjwvZGl2PjwvbGk+PGxpPjxhIGhyZWY9IiNkZXRhaWxzIj5EZXRhaWxzPC9hPjxkaXY+PC9kaXY+PC9saT48L3VsPgoJCQkJCTxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDEwcHg7Ij4KCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2hvd19wcml2YXRlIiB2YWx1ZT0iMCI+CgkJCQkJCTxzcGFuIGlkPSJwcml2YXRlX2xhYmVsIj5IaWRpbmc8L3NwYW4+IHByaXZhdGUgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9InByaXZhdGVfdG9nZ2xlIiBocmVmPSIiPnRvZ2dsZTwvYT4pCgkJCQkJCTwvc3Bhbj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2PgoJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzaG93X2V4dGVuZGVkIiB2YWx1ZT0iMSI+CgkJCQkJCTxzcGFuIGlkPSJleHRlbmRlZF9sYWJlbCI+U2hvd2luZzwvc3Bhbj4gZXh0ZW5kZWQgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9ImV4dGVuZGVkX3RvZ2dsZSIgaHJlZj0iIj50b2dnbGU8L2E+KQoJCQkJCQk8L3NwYW4+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCgkJCQk8ZGl2IGNsYXNzPSJmd19jb250ZW50Ij4KCQkJCQk8YSBuYW1lPSJvdmVydmlldyI+PC9hPgoJCQkJCTxkaXYgY2xhc3M9ImRvY19vdmVydmlldyI+CgkJCQkJCTxkaXYgY2xhc3M9Im5hdl9ibG9ja2VyIj48L2Rpdj4KCQkJCQkJPGRsPjxkdCBpZD0iQXV0b0ZpbGwiIGNsYXNzPSIgZXZlbiI+PGEgbmFtZT0iQXV0b0ZpbGwiPjwvYT48YSBuYW1lPSJBdXRvRmlsbF9kZXRhaWxzIj48L2E+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj48L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhPm5ldyBBdXRvRmlsbDwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0ic2lnbmF0dXJlIj4oRGF0YVRhYmxlcywgQ29uZmlndXJhdGlvbik8L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj48L3NwYW4+PC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iIGV2ZW4iPjxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+QXV0b0ZpbGwgcHJvdmlkZXMgRXhjZWwgbGlrZSBhdXRvIGZpbGwgZmVhdHVyZXMgZm9yIGEgRGF0YVRhYmxlPC9wPjxkaXYgY2xhc3M9ImNvbGxhcHNlX2RldGFpbHMiPjxoMz5Db25zdHJ1Y3RvcjwvaDM+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8aDU+UGFyYW1ldGVyczo8L2g1PgoKPHRhYmxlIGNsYXNzPSJwYXJhbXMiPgogICAgPHRoZWFkPgoJPHRyPgogICAgICAgIDx0aCB3aWR0aD0iMjAiPjwvdGg+CiAgICAgICAgPHRoIHdpZHRoPSIxMiUiIGNsYXNzPSJib3R0b21fYm9yZGVyIG5hbWUiPk5hbWU8L3RoPgoJCTx0aCB3aWR0aD0iMTAlIiBjbGFzcz0iYm90dG9tX2JvcmRlciI+VHlwZTwvdGg+CgkJPHRoIHdpZHRoPSIxMCUiIGNsYXNzPSJib3R0b21fYm9yZGVyIj5BdHRyaWJ1dGVzPC90aD4KCQk8dGggd2lkdGg9IjEwJSIgY2xhc3M9ImJvdHRvbV9ib3JkZXIiPkRlZmF1bHQ8L3RoPgoJCTx0aCBjbGFzcz0ibGFzdCBib3R0b21fYm9yZGVyIj5EZXNjcmlwdGlvbjwvdGg+Cgk8L3RyPgoJPC90aGVhZD4KCQoJPHRib2R5PgoJPHRyIGNsYXNzPSJldmVuIj48dGQgY2xhc3M9Im51bWJlciByaWdodF9ib3JkZXIiPjxkaXY+MTwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJuYW1lIj5EYXRhVGFibGVzPC90ZD48dGQgY2xhc3M9InR5cGUgdHlwZS1wYXJhbSI+b2JqZWN0PC90ZD48dGQgY2xhc3M9ImF0dHJpYnV0ZXMiPjwvdGQ+PHRkIGNsYXNzPSJkZWZhdWx0Ij48L3RkPjx0ZCBjbGFzcz0iZGVzY3JpcHRpb24gbGFzdCI+c2V0dGluZ3Mgb2JqZWN0PC90ZD48L3RyPjx0ciBjbGFzcz0ib2RkIj48dGQgY2xhc3M9Im51bWJlciByaWdodF9ib3JkZXIiPjxkaXY+MjwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJuYW1lIj5Db25maWd1cmF0aW9uPC90ZD48dGQgY2xhc3M9InR5cGUgdHlwZS1wYXJhbSI+b2JqZWN0PC90ZD48dGQgY2xhc3M9ImF0dHJpYnV0ZXMiPjwvdGQ+PHRkIGNsYXNzPSJkZWZhdWx0Ij48L3RkPjx0ZCBjbGFzcz0iZGVzY3JpcHRpb24gbGFzdCI+b2JqZWN0IGZvciBBdXRvRmlsbDwvdGQ+PC90cj4KCTwvdGJvZHk+CjwvdGFibGU+PC9kaXY+CjwvZGw+CgkJCQkJPC9kaXY+CgoJCQkJCQoKCgkJCQkJCgkJPC9kaXY+CgoJCTxkaXYgY2xhc3M9ImZ3X2Zvb3RlciI+CgkJCQoKCQkJRG9jdW1lbnRhdGlvbiBnZW5lcmF0ZWQgYnkgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL21pY21hdGgvSlNEb2MiPkpTRG9jIDM8L2E+IG9uCgkJCTh0aCBBdWcgMjAxMiAtIDIyOjUzCgkJCXdpdGggdGhlIDxhIGhyZWY9Imh0dHA6Ly9kYXRhdGFibGVzLm5ldC8iPkRhdGFUYWJsZXM8L2E+IHRlbXBsYXRlLgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/docs/b44bd4821a.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTx0aXRsZT5OYW1lc3BhY2U6ICBBbiBhcnJheSBvZiBvYmplY3RzIC0gZG9jdW1lbnRhdGlvbjwvdGl0bGU+CiAgCgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KCQkJQGltcG9ydCAibWVkaWEvY3NzL2RvYy5jc3MiOwoJCQlAaW1wb3J0ICJtZWRpYS9jc3Mvc2hDb3JlLmNzcyI7CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9zaFRoZW1lRGF0YVRhYmxlcy5jc3MiOwoJCTwvc3R5bGU+CgkKCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9zaENvcmUuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL3NoQnJ1c2hKU2NyaXB0LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9qcXVlcnkuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL2RvYy5qcyI+PC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keT4KCQk8ZGl2IGNsYXNzPSJmd19jb250YWluZXIiPgoJCQkKCQkJCTxhIG5hbWU9InRvcCI+PC9hPgoJCQkJPGRpdiBjbGFzcz0iZndfaGVhZGVyIj4KCQkJCQk8aDEgY2xhc3M9InBhZ2UtdGl0bGUiPk5hbWVzcGFjZTogIEFuIGFycmF5IG9mIG9iamVjdHM8L2gxPgoJCQkJCQoJCQkJCTxkaXYgY2xhc3M9InBhZ2UtaW5mbyI+CgkJCQkJCQoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgoJCQkJCgoJCQkJPGRpdiBjbGFzcz0iZndfbmF2Ij4KCQkJCQk8aDI+TmF2aWdhdGlvbjwvaDI+CgkJCQkJPHVsPgoJCQkJCTxsaT48YSBocmVmPSIjdG9wIj5PdmVydmlldzwvYT48L2xpPgoJCQkJCTxsaT48YSBocmVmPSIjc3VtbWFyeSI+U3VtbWFyeTwvYT48ZGl2PjwvZGl2PjwvbGk+PGxpPjxhIGhyZWY9IiNkZXRhaWxzIj5EZXRhaWxzPC9hPjxkaXY+PC9kaXY+PC9saT48L3VsPgoJCQkJCTxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDEwcHg7Ij4KCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2hvd19wcml2YXRlIiB2YWx1ZT0iMCI+CgkJCQkJCTxzcGFuIGlkPSJwcml2YXRlX2xhYmVsIj5IaWRpbmc8L3NwYW4+IHByaXZhdGUgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9InByaXZhdGVfdG9nZ2xlIiBocmVmPSIiPnRvZ2dsZTwvYT4pCgkJCQkJCTwvc3Bhbj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2PgoJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzaG93X2V4dGVuZGVkIiB2YWx1ZT0iMSI+CgkJCQkJCTxzcGFuIGlkPSJleHRlbmRlZF9sYWJlbCI+U2hvd2luZzwvc3Bhbj4gZXh0ZW5kZWQgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9ImV4dGVuZGVkX3RvZ2dsZSIgaHJlZj0iIj50b2dnbGU8L2E+KQoJCQkJCQk8L3NwYW4+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCgkJCQk8ZGl2IGNsYXNzPSJmd19jb250ZW50Ij4KCQkJCQk8YSBuYW1lPSJvdmVydmlldyI+PC9hPgoJCQkJCTxkaXYgY2xhc3M9ImRvY19vdmVydmlldyI+CgkJCQkJCTxkaXYgY2xhc3M9Im5hdl9ibG9ja2VyIj48L2Rpdj4KCQkJCQkJPGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgoKCQkJCQk8L2Rpdj4KCgkJCQkJCgoKCQkJCQkKCQk8L2Rpdj4KCgkJPGRpdiBjbGFzcz0iZndfZm9vdGVyIj4KCQkJCgoJCQlEb2N1bWVudGF0aW9uIGdlbmVyYXRlZCBieSA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbWljbWF0aC9KU0RvYyI+SlNEb2MgMzwvYT4gb24KCQkJOHRoIEF1ZyAyMDEyIC0gMjI6NTMKCQkJd2l0aCB0aGUgPGEgaHJlZj0iaHR0cDovL2RhdGF0YWJsZXMubmV0LyI+RGF0YVRhYmxlczwvYT4gdGVtcGxhdGUuCgkJPC9kaXY+Cgk8L2JvZHk+CjwvaHRtbD4=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/docs/c6945fdb4a.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTx0aXRsZT5OYW1lc3BhY2U6IENhY2hlZCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbGl0dGxlIGRyYWdnaW5nIGljb24gIC0gZG9jdW1lbnRhdGlvbjwvdGl0bGU+CiAgCgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KCQkJQGltcG9ydCAibWVkaWEvY3NzL2RvYy5jc3MiOwoJCQlAaW1wb3J0ICJtZWRpYS9jc3Mvc2hDb3JlLmNzcyI7CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9zaFRoZW1lRGF0YVRhYmxlcy5jc3MiOwoJCTwvc3R5bGU+CgkKCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9zaENvcmUuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL3NoQnJ1c2hKU2NyaXB0LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9qcXVlcnkuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL2RvYy5qcyI+PC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keT4KCQk8ZGl2IGNsYXNzPSJmd19jb250YWluZXIiPgoJCQkKCQkJCTxhIG5hbWU9InRvcCI+PC9hPgoJCQkJPGRpdiBjbGFzcz0iZndfaGVhZGVyIj4KCQkJCQk8aDEgY2xhc3M9InBhZ2UtdGl0bGUiPk5hbWVzcGFjZTogQ2FjaGVkIGluZm9ybWF0aW9uIGFib3V0IHRoZSBsaXR0bGUgZHJhZ2dpbmcgaWNvbiA8L2gxPgoJCQkJCTxzdXA+dGhlIGZpbGxlcjwvc3VwPgoJCQkJCTxkaXYgY2xhc3M9InBhZ2UtaW5mbyI+CgkJCQkJCQoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgoJCQkJCgoJCQkJPGRpdiBjbGFzcz0iZndfbmF2Ij4KCQkJCQk8aDI+TmF2aWdhdGlvbjwvaDI+CgkJCQkJPHVsPgoJCQkJCTxsaT48YSBocmVmPSIjdG9wIj5PdmVydmlldzwvYT48L2xpPgoJCQkJCTxsaT48YSBocmVmPSIjc3VtbWFyeSI+U3VtbWFyeTwvYT48ZGl2PjwvZGl2PjwvbGk+PGxpPjxhIGhyZWY9IiNkZXRhaWxzIj5EZXRhaWxzPC9hPjxkaXY+PC9kaXY+PC9saT48L3VsPgoJCQkJCTxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDEwcHg7Ij4KCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2hvd19wcml2YXRlIiB2YWx1ZT0iMCI+CgkJCQkJCTxzcGFuIGlkPSJwcml2YXRlX2xhYmVsIj5IaWRpbmc8L3NwYW4+IHByaXZhdGUgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9InByaXZhdGVfdG9nZ2xlIiBocmVmPSIiPnRvZ2dsZTwvYT4pCgkJCQkJCTwvc3Bhbj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2PgoJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzaG93X2V4dGVuZGVkIiB2YWx1ZT0iMSI+CgkJCQkJCTxzcGFuIGlkPSJleHRlbmRlZF9sYWJlbCI+U2hvd2luZzwvc3Bhbj4gZXh0ZW5kZWQgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9ImV4dGVuZGVkX3RvZ2dsZSIgaHJlZj0iIj50b2dnbGU8L2E+KQoJCQkJCQk8L3NwYW4+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCgkJCQk8ZGl2IGNsYXNzPSJmd19jb250ZW50Ij4KCQkJCQk8YSBuYW1lPSJvdmVydmlldyI+PC9hPgoJCQkJCTxkaXYgY2xhc3M9ImRvY19vdmVydmlldyI+CgkJCQkJCTxkaXYgY2xhc3M9Im5hdl9ibG9ja2VyIj48L2Rpdj4KCQkJCQkJPGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgoKCQkJCQk8L2Rpdj4KCgkJCQkJCgoKCQkJCQkKCQk8L2Rpdj4KCgkJPGRpdiBjbGFzcz0iZndfZm9vdGVyIj4KCQkJCgoJCQlEb2N1bWVudGF0aW9uIGdlbmVyYXRlZCBieSA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbWljbWF0aC9KU0RvYyI+SlNEb2MgMzwvYT4gb24KCQkJOHRoIEF1ZyAyMDEyIC0gMjI6NTMKCQkJd2l0aCB0aGUgPGEgaHJlZj0iaHR0cDovL2RhdGF0YWJsZXMubmV0LyI+RGF0YVRhYmxlczwvYT4gdGVtcGxhdGUuCgkJPC9kaXY+Cgk8L2JvZHk+CjwvaHRtbD4=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/docs/global.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTx0aXRsZT5HbG9iYWwgLSBkb2N1bWVudGF0aW9uPC90aXRsZT4KICAKCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgoJCQlAaW1wb3J0ICJtZWRpYS9jc3MvZG9jLmNzcyI7CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9zaENvcmUuY3NzIjsKCQkJQGltcG9ydCAibWVkaWEvY3NzL3NoVGhlbWVEYXRhVGFibGVzLmNzcyI7CgkJPC9zdHlsZT4KCQoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL3NoQ29yZS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvc2hCcnVzaEpTY3JpcHQuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvZG9jLmpzIj48L3NjcmlwdD4KCTwvaGVhZD4KCTxib2R5PgoJCTxkaXYgY2xhc3M9ImZ3X2NvbnRhaW5lciI+CgkJCQoJCQkJPGEgbmFtZT0idG9wIj48L2E+CgkJCQk8ZGl2IGNsYXNzPSJmd19oZWFkZXIiPgoJCQkJCTxoMSBjbGFzcz0icGFnZS10aXRsZSI+R2xvYmFsPC9oMT4KCQkJCQkKCQkJCQk8ZGl2IGNsYXNzPSJwYWdlLWluZm8iPgoJCQkJCQkKCQkJCQk8L2Rpdj4KCQkJCTwvZGl2PgoKCQkJCQoKCQkJCTxkaXYgY2xhc3M9ImZ3X25hdiI+CgkJCQkJPGgyPk5hdmlnYXRpb248L2gyPgoJCQkJCTx1bD4KCQkJCQk8bGk+PGEgaHJlZj0iI3RvcCI+T3ZlcnZpZXc8L2E+PC9saT4KCQkJCQk8bGk+PGEgaHJlZj0iI3N1bW1hcnkiPlN1bW1hcnk8L2E+PGRpdj48YSBocmVmPSIjc3VtbWFyeV9wcm9wZXJ0aWVzIj5Qcm9wZXJ0aWVzPC9hPiB8IDxhIGhyZWY9IiNzdW1tYXJ5X21ldGhvZHMiPk1ldGhvZHM8L2E+PC9kaXY+PC9saT48bGk+PGEgaHJlZj0iI2RldGFpbHMiPkRldGFpbHM8L2E+PGRpdj48YSBocmVmPSIjZGV0YWlsc19wcm9wZXJ0aWVzIj5Qcm9wZXJ0aWVzPC9hPiB8IDxhIGhyZWY9IiNkZXRhaWxzX21ldGhvZHMiPk1ldGhvZHM8L2E+PC9kaXY+PC9saT48L3VsPgoJCQkJCTxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDEwcHg7Ij4KCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2hvd19wcml2YXRlIiB2YWx1ZT0iMCI+CgkJCQkJCTxzcGFuIGlkPSJwcml2YXRlX2xhYmVsIj5IaWRpbmc8L3NwYW4+IHByaXZhdGUgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9InByaXZhdGVfdG9nZ2xlIiBocmVmPSIiPnRvZ2dsZTwvYT4pCgkJCQkJCTwvc3Bhbj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2PgoJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzaG93X2V4dGVuZGVkIiB2YWx1ZT0iMSI+CgkJCQkJCTxzcGFuIGlkPSJleHRlbmRlZF9sYWJlbCI+U2hvd2luZzwvc3Bhbj4gZXh0ZW5kZWQgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9ImV4dGVuZGVkX3RvZ2dsZSIgaHJlZj0iIj50b2dnbGU8L2E+KQoJCQkJCQk8L3NwYW4+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCgkJCQk8ZGl2IGNsYXNzPSJmd19jb250ZW50Ij4KCQkJCQk8YSBuYW1lPSJvdmVydmlldyI+PC9hPgoJCQkJCTxkaXYgY2xhc3M9ImRvY19vdmVydmlldyI+CgkJCQkJCTxkaXYgY2xhc3M9Im5hdl9ibG9ja2VyIj48L2Rpdj4KCQkJCQkJPGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgoKCQkJCQk8L2Rpdj4KCgkJCQkJCgkJCQkJPGRpdiBjbGFzcz0iZG9jX3N1bW1hcnkiPgoJCQkJCQk8YSBuYW1lPSJzdW1tYXJ5Ij48L2E+CgkJCQkJCTxoMj5TdW1tYXJ5PC9oMj4KCgkJCQkJCTxkaXYgY2xhc3M9ImRvY19ncm91cCI+PGEgbmFtZT0ic3VtbWFyeV9wcm9wZXJ0aWVzIj48L2E+PGgzIGNsYXNzPSJzdWJzZWN0aW9uLXRpdGxlIj5Qcm9wZXJ0aWVzPC9oMz4KCjxkbD4KICAgIDxkdCBjbGFzcz0iICBldmVuIj48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtjb25zdGFudD4gPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjQ0xBU1MiPkNMQVNTPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDpTdHJpbmc8L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgIGV2ZW4iPk5hbWUgb2YgdGhpcyBjbGFzczwvZGQ+PGR0IGNsYXNzPSIgIG9kZCI+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4mbHQ7Y29uc3RhbnQ+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI1ZFUlNJT04iPlZFUlNJT048L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gOlN0cmluZzwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiAgb2RkIj5BdXRvRmlsbCB2ZXJzaW9uPC9kZD4KPC9kbD48L2Rpdj48ZGl2IGNsYXNzPSJkb2NfZ3JvdXAiPjxhIG5hbWU9InN1bW1hcnlfbWV0aG9kcyI+PC9hPjxoMyBjbGFzcz0ic3Vic2VjdGlvbi10aXRsZSI+TWV0aG9kczwvaDM+Cgo8ZGw+CiAgICA8ZHQgY2xhc3M9IiBldmVuIj48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPjwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI2ZuU2V0dGluZ3MiPmZuU2V0dGluZ3M8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InNpZ25hdHVyZSI+KCk8L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gJnJhcnI7IHtvYmplY3R9PC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iIGV2ZW4iPlJldHJlaWV2ZSB0aGUgc2V0dGluZ3Mgb2JqZWN0IGZyb20gYW4gaW5zdGFuY2U8L2RkPjxkdCBjbGFzcz0iIG9kZCI+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj48L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNfZm5GaWxsZXJEaXNwbGF5Ij5fZm5GaWxsZXJEaXNwbGF5PC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJzaWduYXR1cmUiPihlKTwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPjwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiBvZGQiPkRpc3BsYXkgdGhlIGRyYWcgaGFuZGxlIG9uIG1vdXNlIG92ZXIgY2VsbDwvZGQ+PGR0IGNsYXNzPSIgZXZlbiI+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj48L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNfZm5GaWxsZXJEcmFnTW92ZSI+X2ZuRmlsbGVyRHJhZ01vdmU8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InNpZ25hdHVyZSI+KGUpPC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+PC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iIGV2ZW4iPk1vdXNlIG1vdmUgZXZlbnQgaGFuZGxlciBmb3IgZHVyaW5nIGEgbW92ZS4gU2VlIGlmIHdlIHdhbnQgdG8gdXBkYXRlIHRoZSBkaXNwbGF5IGJhc2VkIG9uIHRoZQpuZXcgY3Vyc29yIHBvc2l0aW9uPC9kZD48ZHQgY2xhc3M9IiBvZGQiPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjX2ZuRmlsbGVyRHJhZ1N0YXJ0Ij5fZm5GaWxsZXJEcmFnU3RhcnQ8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InNpZ25hdHVyZSI+KGUpPC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+PC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iIG9kZCI+TW91c2UgZG93biBldmVudCBoYW5kbGVyIGZvciBzdGFydGluZyBhIGRyYWc8L2RkPjxkdCBjbGFzcz0iIGV2ZW4iPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjX2ZuRmlsbGVyRmluaXNoIj5fZm5GaWxsZXJGaW5pc2g8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InNpZ25hdHVyZSI+KGUpPC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+PC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iIGV2ZW4iPk1vdXNlIHJlbGVhc2UgaGFuZGxlciAtIGVuZCB0aGUgZHJhZyBhbmQgdGFrZSBhY3Rpb24gdG8gdXBkYXRlIHRoZSBjZWxscyB3aXRoIHRoZSBuZWVkZWQgdmFsdWVzPC9kZD48ZHQgY2xhc3M9IiBvZGQiPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjX2ZuRmlsbGVyUG9zaXRpb24iPl9mbkZpbGxlclBvc2l0aW9uPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJzaWduYXR1cmUiPihuVGQpPC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+PC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iIG9kZCI+UG9zaXRpb24gdGhlIGZpbGxlciBpY29uIG92ZXIgYSBjZWxsPC9kZD48ZHQgY2xhc3M9IiBldmVuIj48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPjwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI19mbkluaXQiPl9mbkluaXQ8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InNpZ25hdHVyZSI+KG9EVCwgb0NvbmZpZyk8L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj48L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgZXZlbiI+SW5pdGlhbGlzYXRpb248L2RkPjxkdCBjbGFzcz0iIG9kZCI+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj48L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNfZm5QcmVwIj5fZm5QcmVwPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJzaWduYXR1cmUiPihzU3RyKTwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiAmcmFycjsge09iamVjdH08L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgb2RkIj5DaHVuayBhIHN0cmluZyBzdWNoIHRoYXQgaXQgY2FuIGJlIGZpbGxlZCBpbiBieSB0aGUgc3RlcHBlciBmdW5jdGlvbjwvZGQ+PGR0IGNsYXNzPSIgZXZlbiI+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj48L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNfZm5SZWFkQ2VsbCI+X2ZuUmVhZENlbGw8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InNpZ25hdHVyZSI+KG5UZCk8L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gJnJhcnI7IHtTdHJpbmd9PC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iIGV2ZW4iPlJlYWQgaW5mb3JtYWl0b24gZnJvbSBhIGNlbGwsIHBvc3NpYmx5IHVzaW5nIGxpdmUgRE9NIGVsZW1lbnRzIGlmIHN1aXRhYmxlPC9kZD48ZHQgY2xhc3M9IiBvZGQiPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjX2ZuU3RlcCI+X2ZuU3RlcDwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0ic2lnbmF0dXJlIj4oblRkLCBvUHJlcHBlZCwgaURpZmYsIGJJbmNyZW1lbnQsIHNUb2tlbik8L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gJnJhcnI7IHtTdHJpbmd9PC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iIG9kZCI+UmVuZGVyIGEgc3RyaW5nIGZvciBpdCdzIHBvc2l0aW9uIGluIHRoZSB0YWJsZSBhZnRlciB0aGUgZHJhZyAoaW5jcmVtZW10IG51bWJlcnMpPC9kZD48ZHQgY2xhc3M9IiBldmVuIj48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPjwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI19mblRhcmdldENvb3JkcyI+X2ZuVGFyZ2V0Q29vcmRzPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJzaWduYXR1cmUiPihuVGQpPC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+ICZyYXJyOyB7T2JqZWN0fTwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiBldmVuIj5GaW5kIG91dCB0aGUgY29vcmRpbmF0ZXMgb2YgYSBnaXZlbiBURCBjZWxsIGluIGEgdGFibGU8L2RkPjxkdCBjbGFzcz0iIG9kZCI+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj48L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNfZm5VcGRhdGVCb3JkZXIiPl9mblVwZGF0ZUJvcmRlcjwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0ic2lnbmF0dXJlIj4oblN0YXJ0LCBuRW5kKTwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPjwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiBvZGQiPkRpc3BsYXkgdGhlIGJvcmRlciBhcm91bmQgb25lIG9yIG1vcmUgY2VsbHMgKGZyb20gc3RhcnQgdG8gZW5kKTwvZGQ+PGR0IGNsYXNzPSIgZXZlbiI+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj48L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNfZm5Xcml0ZUNlbGwiPl9mbldyaXRlQ2VsbDwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0ic2lnbmF0dXJlIj4oblRkLCBzVmFsLCBiTGFzdCk8L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj48L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgZXZlbiI+V3JpdGUgaW5mb3JtYWl0b24gdG8gYSBjZWxsLCBwb3NzaWJseSB1c2luZyBsaXZlIERPTSBlbGVtZW50cyBpZiBzdWl0YWJsZTwvZGQ+CjwvZGw+CjwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJCQoKCgkJCQkJCgkJCQkJPGRpdiBjbGFzcz0iZG9jX2RldGFpbHMiPgoJCQkJCQk8YSBuYW1lPSJkZXRhaWxzIj48L2E+CgkJCQkJCTxoMj5EZXRhaWxzPC9oMj4KCQkJCQkJPGRpdiBjbGFzcz0iZG9jX2dyb3VwIj48YSBuYW1lPSJkZXRhaWxzX3Byb3BlcnRpZXMiPjwvYT48aDMgY2xhc3M9InN1YnNlY3Rpb24tdGl0bGUiPlByb3BlcnRpZXM8L2gzPgo8ZGw+CiAgICA8ZHQgY2xhc3M9IiAgZXZlbiI+PGEgbmFtZT0iQ0xBU1MiPjwvYT48YSBuYW1lPSJDTEFTU19kZXRhaWxzIj48L2E+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4mbHQ7Y29uc3RhbnQ+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI0NMQVNTIj5DTEFTUzwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6U3RyaW5nPC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iICBldmVuIj48cCBjbGFzcz0iZGVzY3JpcHRpb24iPk5hbWUgb2YgdGhpcyBjbGFzczwvcD48ZGl2IGNsYXNzPSJjb2xsYXBzZV9kZXRhaWxzIj48ZGwgY2xhc3M9ImRldGFpbHMiPgoJCjwvZGw+CjwvZGl2PjwvZGQ+PGR0IGNsYXNzPSIgIG9kZCI+PGEgbmFtZT0iVkVSU0lPTiI+PC9hPjxhIG5hbWU9IlZFUlNJT05fZGV0YWlscyI+PC9hPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+Jmx0O2NvbnN0YW50PiA8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNWRVJTSU9OIj5WRVJTSU9OPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDpTdHJpbmc8L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgIG9kZCI+PHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5BdXRvRmlsbCB2ZXJzaW9uPC9wPjxkaXYgY2xhc3M9ImNvbGxhcHNlX2RldGFpbHMiPjxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KPC9kaXY+PC9kZD4KPC9kbD48L2Rpdj48ZGl2IGNsYXNzPSJkb2NfZ3JvdXAiPjxhIG5hbWU9ImRldGFpbHNfbWV0aG9kcyI+PC9hPjxoMyBjbGFzcz0ic3Vic2VjdGlvbi10aXRsZSI+TWV0aG9kczwvaDM+CjxkbD4KICAgIDxkdCBpZD0iZm5TZXR0aW5ncyIgY2xhc3M9IiBldmVuIj48YSBuYW1lPSJmblNldHRpbmdzIj48L2E+PGEgbmFtZT0iZm5TZXR0aW5nc19kZXRhaWxzIj48L2E+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj48L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhPmZuU2V0dGluZ3M8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InNpZ25hdHVyZSI+KCk8L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gJnJhcnI7IHtvYmplY3R9PC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiBldmVuIj48cCBjbGFzcz0iZGVzY3JpcHRpb24iPlJldHJlaWV2ZSB0aGUgc2V0dGluZ3Mgb2JqZWN0IGZyb20gYW4gaW5zdGFuY2U8L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8aDU+UmV0dXJuczo8L2g1PjxwIGNsYXNzPSJyZXR1cm5zIj5BdXRvRmlsbCBzZXR0aW5ncyBvYmplY3Q8L3A+PC9kaXY+CjxkdCBpZD0iX2ZuRmlsbGVyRGlzcGxheSIgY2xhc3M9IiBvZGQiPjxhIG5hbWU9Il9mbkZpbGxlckRpc3BsYXkiPjwvYT48YSBuYW1lPSJfZm5GaWxsZXJEaXNwbGF5X2RldGFpbHMiPjwvYT48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPjwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGE+X2ZuRmlsbGVyRGlzcGxheTwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0ic2lnbmF0dXJlIj4oZSk8L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj48L3NwYW4+PC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iIG9kZCI+PHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5EaXNwbGF5IHRoZSBkcmFnIGhhbmRsZSBvbiBtb3VzZSBvdmVyIGNlbGw8L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8aDU+UGFyYW1ldGVyczo8L2g1PgoKPHRhYmxlIGNsYXNzPSJwYXJhbXMiPgogICAgPHRoZWFkPgoJPHRyPgogICAgICAgIDx0aCB3aWR0aD0iMjAiPjwvdGg+CiAgICAgICAgPHRoIHdpZHRoPSIxMiUiIGNsYXNzPSJib3R0b21fYm9yZGVyIG5hbWUiPk5hbWU8L3RoPgoJCTx0aCB3aWR0aD0iMTAlIiBjbGFzcz0iYm90dG9tX2JvcmRlciI+VHlwZTwvdGg+CgkJPHRoIHdpZHRoPSIxMCUiIGNsYXNzPSJib3R0b21fYm9yZGVyIj5BdHRyaWJ1dGVzPC90aD4KCQk8dGggd2lkdGg9IjEwJSIgY2xhc3M9ImJvdHRvbV9ib3JkZXIiPkRlZmF1bHQ8L3RoPgoJCTx0aCBjbGFzcz0ibGFzdCBib3R0b21fYm9yZGVyIj5EZXNjcmlwdGlvbjwvdGg+Cgk8L3RyPgoJPC90aGVhZD4KCQoJPHRib2R5PgoJPHRyIGNsYXNzPSJldmVuIj48dGQgY2xhc3M9Im51bWJlciByaWdodF9ib3JkZXIiPjxkaXY+MTwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJuYW1lIj5lPC90ZD48dGQgY2xhc3M9InR5cGUgdHlwZS1wYXJhbSI+T2JqZWN0PC90ZD48dGQgY2xhc3M9ImF0dHJpYnV0ZXMiPjwvdGQ+PHRkIGNsYXNzPSJkZWZhdWx0Ij48L3RkPjx0ZCBjbGFzcz0iZGVzY3JpcHRpb24gbGFzdCI+RXZlbnQgb2JqZWN0PC90ZD48L3RyPgoJPC90Ym9keT4KPC90YWJsZT48aDU+UmV0dXJuczo8L2g1PjxwIGNsYXNzPSJyZXR1cm5zIj52b2lkPC9wPjwvZGl2Pgo8ZHQgaWQ9Il9mbkZpbGxlckRyYWdNb3ZlIiBjbGFzcz0iIGV2ZW4iPjxhIG5hbWU9Il9mbkZpbGxlckRyYWdNb3ZlIj48L2E+PGEgbmFtZT0iX2ZuRmlsbGVyRHJhZ01vdmVfZGV0YWlscyI+PC9hPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YT5fZm5GaWxsZXJEcmFnTW92ZTwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0ic2lnbmF0dXJlIj4oZSk8L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj48L3NwYW4+PC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iIGV2ZW4iPjxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+TW91c2UgbW92ZSBldmVudCBoYW5kbGVyIGZvciBkdXJpbmcgYSBtb3ZlLiBTZWUgaWYgd2Ugd2FudCB0byB1cGRhdGUgdGhlIGRpc3BsYXkgYmFzZWQgb24gdGhlCm5ldyBjdXJzb3IgcG9zaXRpb248L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8aDU+UGFyYW1ldGVyczo8L2g1PgoKPHRhYmxlIGNsYXNzPSJwYXJhbXMiPgogICAgPHRoZWFkPgoJPHRyPgogICAgICAgIDx0aCB3aWR0aD0iMjAiPjwvdGg+CiAgICAgICAgPHRoIHdpZHRoPSIxMiUiIGNsYXNzPSJib3R0b21fYm9yZGVyIG5hbWUiPk5hbWU8L3RoPgoJCTx0aCB3aWR0aD0iMTAlIiBjbGFzcz0iYm90dG9tX2JvcmRlciI+VHlwZTwvdGg+CgkJPHRoIHdpZHRoPSIxMCUiIGNsYXNzPSJib3R0b21fYm9yZGVyIj5BdHRyaWJ1dGVzPC90aD4KCQk8dGggd2lkdGg9IjEwJSIgY2xhc3M9ImJvdHRvbV9ib3JkZXIiPkRlZmF1bHQ8L3RoPgoJCTx0aCBjbGFzcz0ibGFzdCBib3R0b21fYm9yZGVyIj5EZXNjcmlwdGlvbjwvdGg+Cgk8L3RyPgoJPC90aGVhZD4KCQoJPHRib2R5PgoJPHRyIGNsYXNzPSJldmVuIj48dGQgY2xhc3M9Im51bWJlciByaWdodF9ib3JkZXIiPjxkaXY+MTwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJuYW1lIj5lPC90ZD48dGQgY2xhc3M9InR5cGUgdHlwZS1wYXJhbSI+T2JqZWN0PC90ZD48dGQgY2xhc3M9ImF0dHJpYnV0ZXMiPjwvdGQ+PHRkIGNsYXNzPSJkZWZhdWx0Ij48L3RkPjx0ZCBjbGFzcz0iZGVzY3JpcHRpb24gbGFzdCI+RXZlbnQgb2JqZWN0PC90ZD48L3RyPgoJPC90Ym9keT4KPC90YWJsZT48aDU+UmV0dXJuczo8L2g1PjxwIGNsYXNzPSJyZXR1cm5zIj52b2lkPC9wPjwvZGl2Pgo8ZHQgaWQ9Il9mbkZpbGxlckRyYWdTdGFydCIgY2xhc3M9IiBvZGQiPjxhIG5hbWU9Il9mbkZpbGxlckRyYWdTdGFydCI+PC9hPjxhIG5hbWU9Il9mbkZpbGxlckRyYWdTdGFydF9kZXRhaWxzIj48L2E+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj48L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhPl9mbkZpbGxlckRyYWdTdGFydDwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0ic2lnbmF0dXJlIj4oZSk8L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj48L3NwYW4+PC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iIG9kZCI+PHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5Nb3VzZSBkb3duIGV2ZW50IGhhbmRsZXIgZm9yIHN0YXJ0aW5nIGEgZHJhZzwvcD48ZGl2IGNsYXNzPSJjb2xsYXBzZV9kZXRhaWxzIj48ZGwgY2xhc3M9ImRldGFpbHMiPgoJCjwvZGw+CjxoNT5QYXJhbWV0ZXJzOjwvaDU+Cgo8dGFibGUgY2xhc3M9InBhcmFtcyI+CiAgICA8dGhlYWQ+Cgk8dHI+CiAgICAgICAgPHRoIHdpZHRoPSIyMCI+PC90aD4KICAgICAgICA8dGggd2lkdGg9IjEyJSIgY2xhc3M9ImJvdHRvbV9ib3JkZXIgbmFtZSI+TmFtZTwvdGg+CgkJPHRoIHdpZHRoPSIxMCUiIGNsYXNzPSJib3R0b21fYm9yZGVyIj5UeXBlPC90aD4KCQk8dGggd2lkdGg9IjEwJSIgY2xhc3M9ImJvdHRvbV9ib3JkZXIiPkF0dHJpYnV0ZXM8L3RoPgoJCTx0aCB3aWR0aD0iMTAlIiBjbGFzcz0iYm90dG9tX2JvcmRlciI+RGVmYXVsdDwvdGg+CgkJPHRoIGNsYXNzPSJsYXN0IGJvdHRvbV9ib3JkZXIiPkRlc2NyaXB0aW9uPC90aD4KCTwvdHI+Cgk8L3RoZWFkPgoJCgk8dGJvZHk+Cgk8dHIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0ibnVtYmVyIHJpZ2h0X2JvcmRlciI+PGRpdj4xPC9kaXY+PC90ZD48dGQgY2xhc3M9Im5hbWUiPmU8L3RkPjx0ZCBjbGFzcz0idHlwZSB0eXBlLXBhcmFtIj5PYmplY3Q8L3RkPjx0ZCBjbGFzcz0iYXR0cmlidXRlcyI+PC90ZD48dGQgY2xhc3M9ImRlZmF1bHQiPjwvdGQ+PHRkIGNsYXNzPSJkZXNjcmlwdGlvbiBsYXN0Ij5FdmVudCBvYmplY3Q8L3RkPjwvdHI+Cgk8L3Rib2R5Pgo8L3RhYmxlPjxoNT5SZXR1cm5zOjwvaDU+PHAgY2xhc3M9InJldHVybnMiPnZvaWQ8L3A+PC9kaXY+CjxkdCBpZD0iX2ZuRmlsbGVyRmluaXNoIiBjbGFzcz0iIGV2ZW4iPjxhIG5hbWU9Il9mbkZpbGxlckZpbmlzaCI+PC9hPjxhIG5hbWU9Il9mbkZpbGxlckZpbmlzaF9kZXRhaWxzIj48L2E+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj48L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhPl9mbkZpbGxlckZpbmlzaDwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0ic2lnbmF0dXJlIj4oZSk8L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj48L3NwYW4+PC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iIGV2ZW4iPjxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+TW91c2UgcmVsZWFzZSBoYW5kbGVyIC0gZW5kIHRoZSBkcmFnIGFuZCB0YWtlIGFjdGlvbiB0byB1cGRhdGUgdGhlIGNlbGxzIHdpdGggdGhlIG5lZWRlZCB2YWx1ZXM8L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8aDU+UGFyYW1ldGVyczo8L2g1PgoKPHRhYmxlIGNsYXNzPSJwYXJhbXMiPgogICAgPHRoZWFkPgoJPHRyPgogICAgICAgIDx0aCB3aWR0aD0iMjAiPjwvdGg+CiAgICAgICAgPHRoIHdpZHRoPSIxMiUiIGNsYXNzPSJib3R0b21fYm9yZGVyIG5hbWUiPk5hbWU8L3RoPgoJCTx0aCB3aWR0aD0iMTAlIiBjbGFzcz0iYm90dG9tX2JvcmRlciI+VHlwZTwvdGg+CgkJPHRoIHdpZHRoPSIxMCUiIGNsYXNzPSJib3R0b21fYm9yZGVyIj5BdHRyaWJ1dGVzPC90aD4KCQk8dGggd2lkdGg9IjEwJSIgY2xhc3M9ImJvdHRvbV9ib3JkZXIiPkRlZmF1bHQ8L3RoPgoJCTx0aCBjbGFzcz0ibGFzdCBib3R0b21fYm9yZGVyIj5EZXNjcmlwdGlvbjwvdGg+Cgk8L3RyPgoJPC90aGVhZD4KCQoJPHRib2R5PgoJPHRyIGNsYXNzPSJldmVuIj48dGQgY2xhc3M9Im51bWJlciByaWdodF9ib3JkZXIiPjxkaXY+MTwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJuYW1lIj5lPC90ZD48dGQgY2xhc3M9InR5cGUgdHlwZS1wYXJhbSI+T2JqZWN0PC90ZD48dGQgY2xhc3M9ImF0dHJpYnV0ZXMiPjwvdGQ+PHRkIGNsYXNzPSJkZWZhdWx0Ij48L3RkPjx0ZCBjbGFzcz0iZGVzY3JpcHRpb24gbGFzdCI+RXZlbnQgb2JqZWN0PC90ZD48L3RyPgoJPC90Ym9keT4KPC90YWJsZT48aDU+UmV0dXJuczo8L2g1PjxwIGNsYXNzPSJyZXR1cm5zIj52b2lkPC9wPjwvZGl2Pgo8ZHQgaWQ9Il9mbkZpbGxlclBvc2l0aW9uIiBjbGFzcz0iIG9kZCI+PGEgbmFtZT0iX2ZuRmlsbGVyUG9zaXRpb24iPjwvYT48YSBuYW1lPSJfZm5GaWxsZXJQb3NpdGlvbl9kZXRhaWxzIj48L2E+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj48L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhPl9mbkZpbGxlclBvc2l0aW9uPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJzaWduYXR1cmUiPihuVGQpPC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+PC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiBvZGQiPjxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+UG9zaXRpb24gdGhlIGZpbGxlciBpY29uIG92ZXIgYSBjZWxsPC9wPjxkaXYgY2xhc3M9ImNvbGxhcHNlX2RldGFpbHMiPjxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KPGg1PlBhcmFtZXRlcnM6PC9oNT4KCjx0YWJsZSBjbGFzcz0icGFyYW1zIj4KICAgIDx0aGVhZD4KCTx0cj4KICAgICAgICA8dGggd2lkdGg9IjIwIj48L3RoPgogICAgICAgIDx0aCB3aWR0aD0iMTIlIiBjbGFzcz0iYm90dG9tX2JvcmRlciBuYW1lIj5OYW1lPC90aD4KCQk8dGggd2lkdGg9IjEwJSIgY2xhc3M9ImJvdHRvbV9ib3JkZXIiPlR5cGU8L3RoPgoJCTx0aCB3aWR0aD0iMTAlIiBjbGFzcz0iYm90dG9tX2JvcmRlciI+QXR0cmlidXRlczwvdGg+CgkJPHRoIHdpZHRoPSIxMCUiIGNsYXNzPSJib3R0b21fYm9yZGVyIj5EZWZhdWx0PC90aD4KCQk8dGggY2xhc3M9Imxhc3QgYm90dG9tX2JvcmRlciI+RGVzY3JpcHRpb248L3RoPgoJPC90cj4KCTwvdGhlYWQ+CgkKCTx0Ym9keT4KCTx0ciBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJudW1iZXIgcmlnaHRfYm9yZGVyIj48ZGl2PjE8L2Rpdj48L3RkPjx0ZCBjbGFzcz0ibmFtZSI+blRkPC90ZD48dGQgY2xhc3M9InR5cGUgdHlwZS1wYXJhbSI+Tm9kZTwvdGQ+PHRkIGNsYXNzPSJhdHRyaWJ1dGVzIj48L3RkPjx0ZCBjbGFzcz0iZGVmYXVsdCI+PC90ZD48dGQgY2xhc3M9ImRlc2NyaXB0aW9uIGxhc3QiPkNlbGwgdG8gcG9zaXRpb24gZmlsbGVyIGljb24gb3ZlcjwvdGQ+PC90cj4KCTwvdGJvZHk+CjwvdGFibGU+PGg1PlJldHVybnM6PC9oNT48cCBjbGFzcz0icmV0dXJucyI+dm9pZDwvcD48L2Rpdj4KPGR0IGlkPSJfZm5Jbml0IiBjbGFzcz0iIGV2ZW4iPjxhIG5hbWU9Il9mbkluaXQiPjwvYT48YSBuYW1lPSJfZm5Jbml0X2RldGFpbHMiPjwvYT48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPjwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGE+X2ZuSW5pdDwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0ic2lnbmF0dXJlIj4ob0RULCBvQ29uZmlnKTwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgZXZlbiI+PHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5Jbml0aWFsaXNhdGlvbjwvcD48ZGl2IGNsYXNzPSJjb2xsYXBzZV9kZXRhaWxzIj48ZGwgY2xhc3M9ImRldGFpbHMiPgoJCjwvZGw+CjxoNT5QYXJhbWV0ZXJzOjwvaDU+Cgo8dGFibGUgY2xhc3M9InBhcmFtcyI+CiAgICA8dGhlYWQ+Cgk8dHI+CiAgICAgICAgPHRoIHdpZHRoPSIyMCI+PC90aD4KICAgICAgICA8dGggd2lkdGg9IjEyJSIgY2xhc3M9ImJvdHRvbV9ib3JkZXIgbmFtZSI+TmFtZTwvdGg+CgkJPHRoIHdpZHRoPSIxMCUiIGNsYXNzPSJib3R0b21fYm9yZGVyIj5UeXBlPC90aD4KCQk8dGggd2lkdGg9IjEwJSIgY2xhc3M9ImJvdHRvbV9ib3JkZXIiPkF0dHJpYnV0ZXM8L3RoPgoJCTx0aCB3aWR0aD0iMTAlIiBjbGFzcz0iYm90dG9tX2JvcmRlciI+RGVmYXVsdDwvdGg+CgkJPHRoIGNsYXNzPSJsYXN0IGJvdHRvbV9ib3JkZXIiPkRlc2NyaXB0aW9uPC90aD4KCTwvdHI+Cgk8L3RoZWFkPgoJCgk8dGJvZHk+Cgk8dHIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0ibnVtYmVyIHJpZ2h0X2JvcmRlciI+PGRpdj4xPC9kaXY+PC90ZD48dGQgY2xhc3M9Im5hbWUiPm9EVDwvdGQ+PHRkIGNsYXNzPSJ0eXBlIHR5cGUtcGFyYW0iPm9iamVjdDwvdGQ+PHRkIGNsYXNzPSJhdHRyaWJ1dGVzIj48L3RkPjx0ZCBjbGFzcz0iZGVmYXVsdCI+PC90ZD48dGQgY2xhc3M9ImRlc2NyaXB0aW9uIGxhc3QiPkRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0PC90ZD48L3RyPjx0ciBjbGFzcz0ib2RkIj48dGQgY2xhc3M9Im51bWJlciByaWdodF9ib3JkZXIiPjxkaXY+MjwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJuYW1lIj5vQ29uZmlnPC90ZD48dGQgY2xhc3M9InR5cGUgdHlwZS1wYXJhbSI+b2JqZWN0PC90ZD48dGQgY2xhc3M9ImF0dHJpYnV0ZXMiPjwvdGQ+PHRkIGNsYXNzPSJkZWZhdWx0Ij48L3RkPjx0ZCBjbGFzcz0iZGVzY3JpcHRpb24gbGFzdCI+Q29uZmlndXJhdGlvbiBvYmplY3QgZm9yIEF1dG9GaWxsPC90ZD48L3RyPgoJPC90Ym9keT4KPC90YWJsZT48aDU+UmV0dXJuczo8L2g1PjxwIGNsYXNzPSJyZXR1cm5zIj52b2lkPC9wPjwvZGl2Pgo8ZHQgaWQ9Il9mblByZXAiIGNsYXNzPSIgb2RkIj48YSBuYW1lPSJfZm5QcmVwIj48L2E+PGEgbmFtZT0iX2ZuUHJlcF9kZXRhaWxzIj48L2E+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj48L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhPl9mblByZXA8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InNpZ25hdHVyZSI+KHNTdHIpPC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+ICZyYXJyOyB7T2JqZWN0fTwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgb2RkIj48cCBjbGFzcz0iZGVzY3JpcHRpb24iPkNodW5rIGEgc3RyaW5nIHN1Y2ggdGhhdCBpdCBjYW4gYmUgZmlsbGVkIGluIGJ5IHRoZSBzdGVwcGVyIGZ1bmN0aW9uPC9wPjxkaXYgY2xhc3M9ImNvbGxhcHNlX2RldGFpbHMiPjxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KPGg1PlBhcmFtZXRlcnM6PC9oNT4KCjx0YWJsZSBjbGFzcz0icGFyYW1zIj4KICAgIDx0aGVhZD4KCTx0cj4KICAgICAgICA8dGggd2lkdGg9IjIwIj48L3RoPgogICAgICAgIDx0aCB3aWR0aD0iMTIlIiBjbGFzcz0iYm90dG9tX2JvcmRlciBuYW1lIj5OYW1lPC90aD4KCQk8dGggd2lkdGg9IjEwJSIgY2xhc3M9ImJvdHRvbV9ib3JkZXIiPlR5cGU8L3RoPgoJCTx0aCB3aWR0aD0iMTAlIiBjbGFzcz0iYm90dG9tX2JvcmRlciI+QXR0cmlidXRlczwvdGg+CgkJPHRoIHdpZHRoPSIxMCUiIGNsYXNzPSJib3R0b21fYm9yZGVyIj5EZWZhdWx0PC90aD4KCQk8dGggY2xhc3M9Imxhc3QgYm90dG9tX2JvcmRlciI+RGVzY3JpcHRpb248L3RoPgoJPC90cj4KCTwvdGhlYWQ+CgkKCTx0Ym9keT4KCTx0ciBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJudW1iZXIgcmlnaHRfYm9yZGVyIj48ZGl2PjE8L2Rpdj48L3RkPjx0ZCBjbGFzcz0ibmFtZSI+c1N0cjwvdGQ+PHRkIGNsYXNzPSJ0eXBlIHR5cGUtcGFyYW0iPlN0cmluZzwvdGQ+PHRkIGNsYXNzPSJhdHRyaWJ1dGVzIj48L3RkPjx0ZCBjbGFzcz0iZGVmYXVsdCI+PC90ZD48dGQgY2xhc3M9ImRlc2NyaXB0aW9uIGxhc3QiPlN0cmluZyB0byBwcmVwPC90ZD48L3RyPgoJPC90Ym9keT4KPC90YWJsZT48aDU+UmV0dXJuczo8L2g1PjxwIGNsYXNzPSJyZXR1cm5zIj53aXRoIHBhcmFtZXRlcnMsIGlTdGFydCwgc1N0ciBhbmQgc1Bvc3RGaXg8L3A+PC9kaXY+CjxkdCBpZD0iX2ZuUmVhZENlbGwiIGNsYXNzPSIgZXZlbiI+PGEgbmFtZT0iX2ZuUmVhZENlbGwiPjwvYT48YSBuYW1lPSJfZm5SZWFkQ2VsbF9kZXRhaWxzIj48L2E+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj48L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhPl9mblJlYWRDZWxsPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJzaWduYXR1cmUiPihuVGQpPC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+ICZyYXJyOyB7U3RyaW5nfTwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgZXZlbiI+PHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5SZWFkIGluZm9ybWFpdG9uIGZyb20gYSBjZWxsLCBwb3NzaWJseSB1c2luZyBsaXZlIERPTSBlbGVtZW50cyBpZiBzdWl0YWJsZTwvcD48ZGl2IGNsYXNzPSJjb2xsYXBzZV9kZXRhaWxzIj48ZGwgY2xhc3M9ImRldGFpbHMiPgoJCjwvZGw+CjxoNT5QYXJhbWV0ZXJzOjwvaDU+Cgo8dGFibGUgY2xhc3M9InBhcmFtcyI+CiAgICA8dGhlYWQ+Cgk8dHI+CiAgICAgICAgPHRoIHdpZHRoPSIyMCI+PC90aD4KICAgICAgICA8dGggd2lkdGg9IjEyJSIgY2xhc3M9ImJvdHRvbV9ib3JkZXIgbmFtZSI+TmFtZTwvdGg+CgkJPHRoIHdpZHRoPSIxMCUiIGNsYXNzPSJib3R0b21fYm9yZGVyIj5UeXBlPC90aD4KCQk8dGggd2lkdGg9IjEwJSIgY2xhc3M9ImJvdHRvbV9ib3JkZXIiPkF0dHJpYnV0ZXM8L3RoPgoJCTx0aCB3aWR0aD0iMTAlIiBjbGFzcz0iYm90dG9tX2JvcmRlciI+RGVmYXVsdDwvdGg+CgkJPHRoIGNsYXNzPSJsYXN0IGJvdHRvbV9ib3JkZXIiPkRlc2NyaXB0aW9uPC90aD4KCTwvdHI+Cgk8L3RoZWFkPgoJCgk8dGJvZHk+Cgk8dHIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0ibnVtYmVyIHJpZ2h0X2JvcmRlciI+PGRpdj4xPC9kaXY+PC90ZD48dGQgY2xhc3M9Im5hbWUiPm5UZDwvdGQ+PHRkIGNsYXNzPSJ0eXBlIHR5cGUtcGFyYW0iPk5vZGU8L3RkPjx0ZCBjbGFzcz0iYXR0cmlidXRlcyI+PC90ZD48dGQgY2xhc3M9ImRlZmF1bHQiPjwvdGQ+PHRkIGNsYXNzPSJkZXNjcmlwdGlvbiBsYXN0Ij5DZWxsIHRvIHJlYWQ8L3RkPjwvdHI+Cgk8L3Rib2R5Pgo8L3RhYmxlPjxoNT5SZXR1cm5zOjwvaDU+PHAgY2xhc3M9InJldHVybnMiPlJlYWQgdmFsdWU8L3A+PC9kaXY+CjxkdCBpZD0iX2ZuU3RlcCIgY2xhc3M9IiBvZGQiPjxhIG5hbWU9Il9mblN0ZXAiPjwvYT48YSBuYW1lPSJfZm5TdGVwX2RldGFpbHMiPjwvYT48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPjwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGE+X2ZuU3RlcDwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0ic2lnbmF0dXJlIj4oblRkLCBvUHJlcHBlZCwgaURpZmYsIGJJbmNyZW1lbnQsIHNUb2tlbik8L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gJnJhcnI7IHtTdHJpbmd9PC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiBvZGQiPjxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+UmVuZGVyIGEgc3RyaW5nIGZvciBpdCdzIHBvc2l0aW9uIGluIHRoZSB0YWJsZSBhZnRlciB0aGUgZHJhZyAoaW5jcmVtZW10IG51bWJlcnMpPC9wPjxkaXYgY2xhc3M9ImNvbGxhcHNlX2RldGFpbHMiPjxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KPGg1PlBhcmFtZXRlcnM6PC9oNT4KCjx0YWJsZSBjbGFzcz0icGFyYW1zIj4KICAgIDx0aGVhZD4KCTx0cj4KICAgICAgICA8dGggd2lkdGg9IjIwIj48L3RoPgogICAgICAgIDx0aCB3aWR0aD0iMTIlIiBjbGFzcz0iYm90dG9tX2JvcmRlciBuYW1lIj5OYW1lPC90aD4KCQk8dGggd2lkdGg9IjEwJSIgY2xhc3M9ImJvdHRvbV9ib3JkZXIiPlR5cGU8L3RoPgoJCTx0aCB3aWR0aD0iMTAlIiBjbGFzcz0iYm90dG9tX2JvcmRlciI+QXR0cmlidXRlczwvdGg+CgkJPHRoIHdpZHRoPSIxMCUiIGNsYXNzPSJib3R0b21fYm9yZGVyIj5EZWZhdWx0PC90aD4KCQk8dGggY2xhc3M9Imxhc3QgYm90dG9tX2JvcmRlciI+RGVzY3JpcHRpb248L3RoPgoJPC90cj4KCTwvdGhlYWQ+CgkKCTx0Ym9keT4KCTx0ciBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJudW1iZXIgcmlnaHRfYm9yZGVyIj48ZGl2PjE8L2Rpdj48L3RkPjx0ZCBjbGFzcz0ibmFtZSI+blRkPC90ZD48dGQgY2xhc3M9InR5cGUgdHlwZS1wYXJhbSI+Tm9kZTwvdGQ+PHRkIGNsYXNzPSJhdHRyaWJ1dGVzIj48L3RkPjx0ZCBjbGFzcz0iZGVmYXVsdCI+PC90ZD48dGQgY2xhc3M9ImRlc2NyaXB0aW9uIGxhc3QiPkNlbGwgYmVpbmcgd3JpdHRlbiB0bzwvdGQ+PC90cj48dHIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJudW1iZXIgcmlnaHRfYm9yZGVyIj48ZGl2PjI8L2Rpdj48L3RkPjx0ZCBjbGFzcz0ibmFtZSI+b1ByZXBwZWQ8L3RkPjx0ZCBjbGFzcz0idHlwZSB0eXBlLXBhcmFtIj5PYmplY3Q8L3RkPjx0ZCBjbGFzcz0iYXR0cmlidXRlcyI+PC90ZD48dGQgY2xhc3M9ImRlZmF1bHQiPjwvdGQ+PHRkIGNsYXNzPSJkZXNjcmlwdGlvbiBsYXN0Ij5QcmVwYXJlZCBvYmplY3QgZm9yIHRoZSBzdGVwcGVyIChmcm9tIF9mblByZXApPC90ZD48L3RyPjx0ciBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJudW1iZXIgcmlnaHRfYm9yZGVyIj48ZGl2PjM8L2Rpdj48L3RkPjx0ZCBjbGFzcz0ibmFtZSI+aURpZmY8L3RkPjx0ZCBjbGFzcz0idHlwZSB0eXBlLXBhcmFtIj5JbnQ8L3RkPjx0ZCBjbGFzcz0iYXR0cmlidXRlcyI+PC90ZD48dGQgY2xhc3M9ImRlZmF1bHQiPjwvdGQ+PHRkIGNsYXNzPSJkZXNjcmlwdGlvbiBsYXN0Ij5TdGVwIGRpZmZlcmVuY2U8L3RkPjwvdHI+PHRyIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0ibnVtYmVyIHJpZ2h0X2JvcmRlciI+PGRpdj40PC9kaXY+PC90ZD48dGQgY2xhc3M9Im5hbWUiPmJJbmNyZW1lbnQ8L3RkPjx0ZCBjbGFzcz0idHlwZSB0eXBlLXBhcmFtIj5Cb29sZWFuPC90ZD48dGQgY2xhc3M9ImF0dHJpYnV0ZXMiPjwvdGQ+PHRkIGNsYXNzPSJkZWZhdWx0Ij48L3RkPjx0ZCBjbGFzcz0iZGVzY3JpcHRpb24gbGFzdCI+SW5jcmVtZW50ICh0cnVlKSBvciBkZWNyaW1lbnQgKGZhbHNlKTwvdGQ+PC90cj48dHIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0ibnVtYmVyIHJpZ2h0X2JvcmRlciI+PGRpdj41PC9kaXY+PC90ZD48dGQgY2xhc3M9Im5hbWUiPnNUb2tlbjwvdGQ+PHRkIGNsYXNzPSJ0eXBlIHR5cGUtcGFyYW0iPlN0cmluZzwvdGQ+PHRkIGNsYXNzPSJhdHRyaWJ1dGVzIj48L3RkPjx0ZCBjbGFzcz0iZGVmYXVsdCI+PC90ZD48dGQgY2xhc3M9ImRlc2NyaXB0aW9uIGxhc3QiPlRva2VuIHRvIHJlcGxhY2U8L3RkPjwvdHI+Cgk8L3Rib2R5Pgo8L3RhYmxlPjxoNT5SZXR1cm5zOjwvaDU+PHAgY2xhc3M9InJldHVybnMiPlJlbmRlcmVkIGluZm9ybWF0aW9uPC9wPjwvZGl2Pgo8ZHQgaWQ9Il9mblRhcmdldENvb3JkcyIgY2xhc3M9IiBldmVuIj48YSBuYW1lPSJfZm5UYXJnZXRDb29yZHMiPjwvYT48YSBuYW1lPSJfZm5UYXJnZXRDb29yZHNfZGV0YWlscyI+PC9hPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YT5fZm5UYXJnZXRDb29yZHM8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InNpZ25hdHVyZSI+KG5UZCk8L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gJnJhcnI7IHtPYmplY3R9PC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiBldmVuIj48cCBjbGFzcz0iZGVzY3JpcHRpb24iPkZpbmQgb3V0IHRoZSBjb29yZGluYXRlcyBvZiBhIGdpdmVuIFREIGNlbGwgaW4gYSB0YWJsZTwvcD48ZGl2IGNsYXNzPSJjb2xsYXBzZV9kZXRhaWxzIj48ZGwgY2xhc3M9ImRldGFpbHMiPgoJCjwvZGw+CjxoNT5QYXJhbWV0ZXJzOjwvaDU+Cgo8dGFibGUgY2xhc3M9InBhcmFtcyI+CiAgICA8dGhlYWQ+Cgk8dHI+CiAgICAgICAgPHRoIHdpZHRoPSIyMCI+PC90aD4KICAgICAgICA8dGggd2lkdGg9IjEyJSIgY2xhc3M9ImJvdHRvbV9ib3JkZXIgbmFtZSI+TmFtZTwvdGg+CgkJPHRoIHdpZHRoPSIxMCUiIGNsYXNzPSJib3R0b21fYm9yZGVyIj5UeXBlPC90aD4KCQk8dGggd2lkdGg9IjEwJSIgY2xhc3M9ImJvdHRvbV9ib3JkZXIiPkF0dHJpYnV0ZXM8L3RoPgoJCTx0aCB3aWR0aD0iMTAlIiBjbGFzcz0iYm90dG9tX2JvcmRlciI+RGVmYXVsdDwvdGg+CgkJPHRoIGNsYXNzPSJsYXN0IGJvdHRvbV9ib3JkZXIiPkRlc2NyaXB0aW9uPC90aD4KCTwvdHI+Cgk8L3RoZWFkPgoJCgk8dGJvZHk+Cgk8dHIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0ibnVtYmVyIHJpZ2h0X2JvcmRlciI+PGRpdj4xPC9kaXY+PC90ZD48dGQgY2xhc3M9Im5hbWUiPm5UZDwvdGQ+PHRkIGNsYXNzPSJ0eXBlIHR5cGUtcGFyYW0iPk5vZGU8L3RkPjx0ZCBjbGFzcz0iYXR0cmlidXRlcyI+PC90ZD48dGQgY2xhc3M9ImRlZmF1bHQiPjwvdGQ+PHRkIGNsYXNzPSJkZXNjcmlwdGlvbiBsYXN0Ij51bmRlZmluZWQ8L3RkPjwvdHI+Cgk8L3Rib2R5Pgo8L3RhYmxlPjxoNT5SZXR1cm5zOjwvaDU+PHAgY2xhc3M9InJldHVybnMiPnggYW5kIHkgcHJvcGVydGllcywgZm9yIHRoZSBwb3NpdGlvbiBvZiB0aGUgY2VsbCBpbiB0aGUgdGFibGVzIERPTTwvcD48L2Rpdj4KPGR0IGlkPSJfZm5VcGRhdGVCb3JkZXIiIGNsYXNzPSIgb2RkIj48YSBuYW1lPSJfZm5VcGRhdGVCb3JkZXIiPjwvYT48YSBuYW1lPSJfZm5VcGRhdGVCb3JkZXJfZGV0YWlscyI+PC9hPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YT5fZm5VcGRhdGVCb3JkZXI8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InNpZ25hdHVyZSI+KG5TdGFydCwgbkVuZCk8L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj48L3NwYW4+PC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iIG9kZCI+PHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5EaXNwbGF5IHRoZSBib3JkZXIgYXJvdW5kIG9uZSBvciBtb3JlIGNlbGxzIChmcm9tIHN0YXJ0IHRvIGVuZCk8L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8aDU+UGFyYW1ldGVyczo8L2g1PgoKPHRhYmxlIGNsYXNzPSJwYXJhbXMiPgogICAgPHRoZWFkPgoJPHRyPgogICAgICAgIDx0aCB3aWR0aD0iMjAiPjwvdGg+CiAgICAgICAgPHRoIHdpZHRoPSIxMiUiIGNsYXNzPSJib3R0b21fYm9yZGVyIG5hbWUiPk5hbWU8L3RoPgoJCTx0aCB3aWR0aD0iMTAlIiBjbGFzcz0iYm90dG9tX2JvcmRlciI+VHlwZTwvdGg+CgkJPHRoIHdpZHRoPSIxMCUiIGNsYXNzPSJib3R0b21fYm9yZGVyIj5BdHRyaWJ1dGVzPC90aD4KCQk8dGggd2lkdGg9IjEwJSIgY2xhc3M9ImJvdHRvbV9ib3JkZXIiPkRlZmF1bHQ8L3RoPgoJCTx0aCBjbGFzcz0ibGFzdCBib3R0b21fYm9yZGVyIj5EZXNjcmlwdGlvbjwvdGg+Cgk8L3RyPgoJPC90aGVhZD4KCQoJPHRib2R5PgoJPHRyIGNsYXNzPSJldmVuIj48dGQgY2xhc3M9Im51bWJlciByaWdodF9ib3JkZXIiPjxkaXY+MTwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJuYW1lIj5uU3RhcnQ8L3RkPjx0ZCBjbGFzcz0idHlwZSB0eXBlLXBhcmFtIj5Ob2RlPC90ZD48dGQgY2xhc3M9ImF0dHJpYnV0ZXMiPjwvdGQ+PHRkIGNsYXNzPSJkZWZhdWx0Ij48L3RkPjx0ZCBjbGFzcz0iZGVzY3JpcHRpb24gbGFzdCI+U3RhcnRpbmcgY2VsbDwvdGQ+PC90cj48dHIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJudW1iZXIgcmlnaHRfYm9yZGVyIj48ZGl2PjI8L2Rpdj48L3RkPjx0ZCBjbGFzcz0ibmFtZSI+bkVuZDwvdGQ+PHRkIGNsYXNzPSJ0eXBlIHR5cGUtcGFyYW0iPk5vZGU8L3RkPjx0ZCBjbGFzcz0iYXR0cmlidXRlcyI+PC90ZD48dGQgY2xhc3M9ImRlZmF1bHQiPjwvdGQ+PHRkIGNsYXNzPSJkZXNjcmlwdGlvbiBsYXN0Ij5FbmRpbmcgY2VsbDwvdGQ+PC90cj4KCTwvdGJvZHk+CjwvdGFibGU+PGg1PlJldHVybnM6PC9oNT48cCBjbGFzcz0icmV0dXJucyI+dm9pZDwvcD48L2Rpdj4KPGR0IGlkPSJfZm5Xcml0ZUNlbGwiIGNsYXNzPSIgZXZlbiI+PGEgbmFtZT0iX2ZuV3JpdGVDZWxsIj48L2E+PGEgbmFtZT0iX2ZuV3JpdGVDZWxsX2RldGFpbHMiPjwvYT48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPjwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGE+X2ZuV3JpdGVDZWxsPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJzaWduYXR1cmUiPihuVGQsIHNWYWwsIGJMYXN0KTwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgZXZlbiI+PHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5Xcml0ZSBpbmZvcm1haXRvbiB0byBhIGNlbGwsIHBvc3NpYmx5IHVzaW5nIGxpdmUgRE9NIGVsZW1lbnRzIGlmIHN1aXRhYmxlPC9wPjxkaXYgY2xhc3M9ImNvbGxhcHNlX2RldGFpbHMiPjxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KPGg1PlBhcmFtZXRlcnM6PC9oNT4KCjx0YWJsZSBjbGFzcz0icGFyYW1zIj4KICAgIDx0aGVhZD4KCTx0cj4KICAgICAgICA8dGggd2lkdGg9IjIwIj48L3RoPgogICAgICAgIDx0aCB3aWR0aD0iMTIlIiBjbGFzcz0iYm90dG9tX2JvcmRlciBuYW1lIj5OYW1lPC90aD4KCQk8dGggd2lkdGg9IjEwJSIgY2xhc3M9ImJvdHRvbV9ib3JkZXIiPlR5cGU8L3RoPgoJCTx0aCB3aWR0aD0iMTAlIiBjbGFzcz0iYm90dG9tX2JvcmRlciI+QXR0cmlidXRlczwvdGg+CgkJPHRoIHdpZHRoPSIxMCUiIGNsYXNzPSJib3R0b21fYm9yZGVyIj5EZWZhdWx0PC90aD4KCQk8dGggY2xhc3M9Imxhc3QgYm90dG9tX2JvcmRlciI+RGVzY3JpcHRpb248L3RoPgoJPC90cj4KCTwvdGhlYWQ+CgkKCTx0Ym9keT4KCTx0ciBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJudW1iZXIgcmlnaHRfYm9yZGVyIj48ZGl2PjE8L2Rpdj48L3RkPjx0ZCBjbGFzcz0ibmFtZSI+blRkPC90ZD48dGQgY2xhc3M9InR5cGUgdHlwZS1wYXJhbSI+Tm9kZTwvdGQ+PHRkIGNsYXNzPSJhdHRyaWJ1dGVzIj48L3RkPjx0ZCBjbGFzcz0iZGVmYXVsdCI+PC90ZD48dGQgY2xhc3M9ImRlc2NyaXB0aW9uIGxhc3QiPkNlbGwgdG8gd3JpdGU8L3RkPjwvdHI+PHRyIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0ibnVtYmVyIHJpZ2h0X2JvcmRlciI+PGRpdj4yPC9kaXY+PC90ZD48dGQgY2xhc3M9Im5hbWUiPnNWYWw8L3RkPjx0ZCBjbGFzcz0idHlwZSB0eXBlLXBhcmFtIj5TdHJpbmc8L3RkPjx0ZCBjbGFzcz0iYXR0cmlidXRlcyI+PC90ZD48dGQgY2xhc3M9ImRlZmF1bHQiPjwvdGQ+PHRkIGNsYXNzPSJkZXNjcmlwdGlvbiBsYXN0Ij5WYWx1ZSB0byB3cml0ZTwvdGQ+PC90cj48dHIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0ibnVtYmVyIHJpZ2h0X2JvcmRlciI+PGRpdj4zPC9kaXY+PC90ZD48dGQgY2xhc3M9Im5hbWUiPmJMYXN0PC90ZD48dGQgY2xhc3M9InR5cGUgdHlwZS1wYXJhbSI+Qm9vbGVhbjwvdGQ+PHRkIGNsYXNzPSJhdHRyaWJ1dGVzIj48L3RkPjx0ZCBjbGFzcz0iZGVmYXVsdCI+PC90ZD48dGQgY2xhc3M9ImRlc2NyaXB0aW9uIGxhc3QiPkZsYWcgdG8gc2hvdyBpZiB0aGlzIGlzIHRoYXQgbGFzdCB1cGRhdGU8L3RkPjwvdHI+Cgk8L3Rib2R5Pgo8L3RhYmxlPjxoNT5SZXR1cm5zOjwvaDU+PHAgY2xhc3M9InJldHVybnMiPnZvaWQ8L3A+PC9kaXY+Cgo8L2RkPgo8L2Rpdj4KICAgCQkJCQk8L2Rpdj4KCQkJCQoJCTwvZGl2PgoKCQk8ZGl2IGNsYXNzPSJmd19mb290ZXIiPgoJCQkKCgkJCURvY3VtZW50YXRpb24gZ2VuZXJhdGVkIGJ5IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9taWNtYXRoL0pTRG9jIj5KU0RvYyAzPC9hPiBvbgoJCQk4dGggQXVnIDIwMTIgLSAyMjo1MwoJCQl3aXRoIHRoZSA8YSBocmVmPSJodHRwOi8vZGF0YXRhYmxlcy5uZXQvIj5EYXRhVGFibGVzPC9hPiB0ZW1wbGF0ZS4KCQk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/docs/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTx0aXRsZT5UYWJsZSBvZiBDb250ZW50cyAtIGRvY3VtZW50YXRpb248L3RpdGxlPgogIAoJCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9kb2MuY3NzIjsKCQkJQGltcG9ydCAibWVkaWEvY3NzL3NoQ29yZS5jc3MiOwoJCQlAaW1wb3J0ICJtZWRpYS9jc3Mvc2hUaGVtZURhdGFUYWJsZXMuY3NzIjsKCQk8L3N0eWxlPgoJCgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvc2hDb3JlLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9zaEJydXNoSlNjcmlwdC5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvanF1ZXJ5LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9kb2MuanMiPjwvc2NyaXB0PgoJPC9oZWFkPgoJPGJvZHk+CgkJPGRpdiBjbGFzcz0iZndfY29udGFpbmVyIj4KCQkJPGEgbmFtZT0idG9wIj48L2E+CgkJCTxkaXYgY2xhc3M9ImZ3X2hlYWRlciI+CgkJCTwvZGl2PgoKCQkJPGRpdiBjbGFzcz0iZndfY29udGVudCI+CgkJCQk8aDMgY2xhc3M9InN1YnNlY3Rpb24tdGl0bGUiPlRhYmxlIG9mIENvbnRlbnRzPC9oMz4KCQkJCTxkbD4KCQkJCQk8ZHQ+PGEgaHJlZj0iQXV0b0ZpbGwuaHRtbCI+QXV0b0ZpbGw8L2E+PC9kdD48ZGQ+QXV0b0ZpbGwgcHJvdmlkZXMgRXhjZWwgbGlrZSBhdXRvIGZpbGwgZmVhdHVyZXMgZm9yIGEgRGF0YVRhYmxlPC9kZD4KCQkJCTwvZGw+CiAgIAkJCTwvZGl2PgoJCTwvZGl2PgoKCQk8ZGl2IGNsYXNzPSJmd19mb290ZXIiPgoJCQkKCgkJCURvY3VtZW50YXRpb24gZ2VuZXJhdGVkIGJ5IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9taWNtYXRoL0pTRG9jIj5KU0RvYyAzPC9hPiBvbgoJCQk4dGggQXVnIDIwMTIgLSAyMjo1MwoJCQl3aXRoIHRoZSA8YSBocmVmPSJodHRwOi8vZGF0YXRhYmxlcy5uZXQvIj5EYXRhVGFibGVzPC9hPiB0ZW1wbGF0ZS4KCQk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/docs/media/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/docs/media/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/docs/media/css/doc.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKQ29weXJpZ2h0IChjKSAyMDA2LCBZYWhvbyEgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpDb2RlIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0QgTGljZW5zZToKaHR0cDovL2RldmVsb3Blci55YWhvby5uZXQveXVpL2xpY2Vuc2UudHh0CnZlcnNpb246IDAuMTIuMAoqLwpib2R5LGRpdixkbCxkdCxkZCx1bCxvbCxsaSxoMSxoMixoMyxoNCxoNSxoNixwcmUsZm9ybSxmaWVsZHNldCxpbnB1dCx0ZXh0YXJlYSxwLGJsb2NrcXVvdGUsdGgsdGR7bWFyZ2luOjA7cGFkZGluZzowO30KdGFibGV7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO2JvcmRlci1zcGFjaW5nOjA7fQpmaWVsZHNldCxpbWd7Ym9yZGVyOjA7fQphZGRyZXNzLGNhcHRpb24sY2l0ZSxjb2RlLGRmbixlbSxzdHJvbmcsdGgsdmFye2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDt9Cm9sLHVsIHtsaXN0LXN0eWxlOm5vbmU7fQpjYXB0aW9uLHRoIHt0ZXh0LWFsaWduOmxlZnQ7fQpoMSxoMixoMyxoNCxoNSxoNntmb250LXNpemU6MTAwJTtmb250LXdlaWdodDpub3JtYWw7fQpxOmJlZm9yZSxxOmFmdGVye2NvbnRlbnQ6Jyc7fQphYmJyLGFjcm9ueW0ge2JvcmRlcjowO30KCgpodG1sLCBib2R5IHsKCW1hcmdpbjogMDsKCXBhZGRpbmc6IDA7Cgl3aWR0aDogMTAwJTsKCWZvbnQ6IDE0cHgvMS40NWVtICJMdWNpZGEgR3JhbmRlIiwgVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsKCWNvbG9yOiAjMTExOwp9CgpkaXYuZndfY29udGFpbmVyIHsKCXdpZHRoOiA5ODBweDsKCXBhZGRpbmctdG9wOiAyZW07CgltYXJnaW46IDAgYXV0bzsKfQoKZGl2LmZ3X2hlYWRlciB7Cglwb3NpdGlvbjogcmVsYXRpdmU7Cn0KCmRpdi5md19jb250ZW50IHsKCXBhZGRpbmctdG9wOiAyZW07Cn0KCmRpdi5md19mb290ZXIgewoJcGFkZGluZy10b3A6IDRlbTsKCWZvbnQtc2l6ZTogNzUlOwoJdGV4dC1hbGlnbjogY2VudGVyOwp9CgoKCi50eXBlLXBhcmFtIHsKCQp9CgoudHlwZS1hdHRyIHsKCWZsb2F0OiByaWdodDsKCWNvbG9yOiAjOTk5Owp9CgoudHlwZS1uYW1lIHsKCWZvbnQtd2VpZ2h0OiBib2xkOwp9CgoudHlwZS1zaWcgewoJY29sb3I6ICM5OTk7Cn0KCi50eXBlLXBhcmFtIHsKCWNvbG9yOiAjRkY5OTk5Owp9CgoudHlwZS1yZXR1cm4gewoJY29sb3I6ICNGRjgwODA7Cn0KCi50eXBlLWJyYWNlIHsKCWNvbG9yOiAjMTExOwp9CgouZXhhbXBsZS1jb2RlIHsKCW1hcmdpbi1sZWZ0OiAzMHB4Owp9Ci5leGFtcGxlLWNvZGUgdGQuY29kZSB7Cglib3JkZXItdG9wOiAxcHggc29saWQgIzRFNkNBMyAhaW1wb3J0YW50Owp9CgoudHlwZS1hdWdtZW50ZWQgewoJcG9zaXRpb246IGFic29sdXRlOwoJbGVmdDogOHB4OwoJdG9wOiAwOwp9CgpkdCwgZGQgewoJcGFkZGluZzogMC40ZW0gMTBweDsKfQoKZHQgewoJcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDsKfQoKZGQgewoJcG9zaXRpb246IHJlbGF0aXZlOwoJcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDsKCXBhZGRpbmctbGVmdDogM2VtOwp9CgpkdC5ldmVuLCBkZC5ldmVuIHsKCWJhY2tncm91bmQtY29sb3I6IHdoaXRlOwp9CgpkdC5vZGQsIGRkLm9kZCB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjRjJGMkYyOwp9CgpkaXYuZG9jX292ZXJ2aWV3IGRkLCBkaXYuZG9jX292ZXJ2aWV3IGR0IHsKCXBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50Owp9CgoKCi5kb2NfZGV0YWlscyBkdCwgLmRvY19kZXRhaWxzIGRkIHsKCXBhZGRpbmc6IDFlbSAxMHB4Owp9CgoucmlnaHRfYm9yZGVyIGRpdiB7Cgl3aWR0aDogMjBweDsKCXBhZGRpbmc6IDJweCAwLjVlbSAycHggMWVtOwoJdGV4dC1hbGlnbjogcmlnaHQ7Cn0KLnJpZ2h0X2JvcmRlciB7Cglib3JkZXItcmlnaHQ6IDNweCBzb2xpZCAjNEU2Q0EzOwp9Ci5ib3R0b21fYm9yZGVyIHsKCWJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNEU2Q0EzOwp9CgoKYSB7Cgl0ZXh0LWRlY29yYXRpb246IG5vbmU7Cgljb2xvcjogIzRFNkNBMzsKfQoKYTpob3ZlciB7Cgl0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKCWN1cnNvcjogcG9pbnRlcjsKCSpjdXJzb3I6IGhhbmQ7Cn0KCmRpdi5md19jb250ZW50IHVsIHsKCWxpc3Qtc3R5bGUtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2Fycm93LmpwZycpOwoJcGFkZGluZzogMC41ZW0gMCAwLjVlbSAyZW07Cn0KCi8qCmgyIHsKCWZvbnQtc2l6ZTogMS40ZW07CgltYXJnaW4tdG9wOiAyZW07Cglib3JkZXItYm90dG9tOiAzcHggc29saWQgIzgyOWFjNjsKCXBhZGRpbmctbGVmdDogNXB4Owp9CgpoMyB7Cglmb250LXNpemU6IDEuMmVtOwoJbWFyZ2luLXRvcDogMWVtOwoJYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNBNEI1RDU7CglwYWRkaW5nLWxlZnQ6IDVweDsKfQoqLwoKaDEgewoJZm9udC1zaXplOiAyZW07Cn0KCmgyIHsKCWZvbnQtc2l6ZTogMS42ZW07CglwYWRkaW5nLXRvcDogNXB4Owp9CgpoMi5hbmNlc3RvcnMgewoJZm9udC1zaXplOiAxNHB4OwoJbWFyZ2luOiAwOwp9CgpoMyB7Cglmb250LXNpemU6IDEuM2VtOwoJcGFkZGluZy10b3A6IDVweDsKCW1hcmdpbi1ib3R0b206IDVweDsKfQoKaDUgewoJcGFkZGluZy10b3A6IDZweDsKfQoKZGl2LmRvY19zdW1tYXJ5LCBkaXYuZG9jX2RldGFpbHMgewoJbWFyZ2luLXRvcDogMmVtOwoJY2xlYXI6IGJvdGg7Cn0KCmRpdi5kb2NfZ3JvdXAgewoJbWFyZ2luLXRvcDogMWVtOwoJYm9yZGVyLXRvcDogMXB4IHNvbGlkICNBNEI1RDU7Cglib3JkZXItbGVmdDogMXB4IHNvbGlkICNBNEI1RDU7CglwYWRkaW5nLWxlZnQ6IDEwcHg7Cn0KCmRpdi5leHRlbmRlZCB7CgltYXJnaW4tbGVmdDogMzBweDsKfQoKdGFibGUucGFyYW1zIHsKCW1hcmdpbi1sZWZ0OiAzMHB4OwoJd2lkdGg6IDk3JTsKfQoKdHIub2RkIHsKCWJhY2tncm91bmQtY29sb3I6IHdoaXRlOwp9Cgp0ci5ldmVuIHsKCWJhY2tncm91bmQtY29sb3I6ICNGOEY4Rjg7Cn0KCnRoLm5hbWUsCnRkLm5hbWUgewoJcGFkZGluZy1sZWZ0OiAxM3B4Owp9Cgp0ZC5udW1iZXIgewoJYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7Cgljb2xvcjogIzVDNUM1QzsKfQoKZGQub2RkIHRkLm51bWJlciB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjRjJGMkYyOwp9CgpwLnJldHVybnMgewoJbWFyZ2luLWxlZnQ6IDUlOwp9CgpkaXYucGFnZS1pbmZvIHsKCXBvc2l0aW9uOiBhYnNvbHV0ZTsKCXRvcDogMDsKCXJpZ2h0OiAwOwp9CgoKLnByaXZhdGUgewoJZGlzcGxheTogbm9uZTsKfQoKCgoKZGl2LmZ3X25hdiB7Cglwb3NpdGlvbjogZml4ZWQ7Cgl0b3A6IDYwcHg7CglyaWdodDogMzBweDsKCXdpZHRoOiAyNTBweDsKCWJvcmRlcjogMXB4IHNvbGlkICNBNEI1RDU7CgliYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKCXBhZGRpbmc6IDEwcHg7Cgl6LWluZGV4OiAxMDAxOwoJZm9udC1zaXplOiAxMnB4OwoJb3ZlcmZsb3c6IGhpZGRlbjsKfQoKZGl2LmZ3X25hdiBoMiB7CgltYXJnaW46IC0xMHB4IDAgMTBweCAtMTBweDsKCXdpZHRoOiAyNTBweDsKCXBhZGRpbmc6IDVweCAxMHB4OwoJYmFja2dyb3VuZC1jb2xvcjogI0E0QjVENTsKCWZvbnQtc2l6ZTogMTJweDsKCWN1cnNvcjogcG9pbnRlcjsKCSpjdXJzb3I6IGhhbmQ7Cn0KCmRpdi5md19uYXYgdWw+bGk+ZGl2IHsKCXBhZGRpbmc6IDAgMCAwIDFlbTsKfQoKZGl2Lm5hdl9ibG9ja2VyIHsKCWZsb2F0OiByaWdodDsKfQoKCgoKCgoKLmNzc19jbGVhciB7CgljbGVhcjogYm90aDsKCWhlaWdodDogMDsKCWxpbmUtaGVpZ2h0OiAwOwoJdmlzaWJpbGl0eTogaGlkZGVuOwp9CgouY3NzX3JpZ2h0IHsKCXRleHQtYWxpZ246IHJpZ2h0Owp9CgouY3NzX2NlbnRlciB7Cgl0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCi5jc3Nfc3BhY2luZyB7CgltYXJnaW4tdG9wOiAxLjVlbTsKfQoKLmNzc19zbWFsbCB7Cglmb250LXNpemU6IDc1JTsKCWxpbmUtaGVpZ2h0OiAxLjQ1ZW07Cn0KCi5jc3NfdnNtYWxsIHsKCWZvbnQtc2l6ZTogNjUlOwoJbGluZS1oZWlnaHQ6IDEuNDVlbTsKfQo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/docs/media/css/shCore.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIFN5bnRheEhpZ2hsaWdodGVyCiAqIGh0dHA6Ly9hbGV4Z29yYmF0Y2hldi5jb20vU3ludGF4SGlnaGxpZ2h0ZXIKICoKICogU3ludGF4SGlnaGxpZ2h0ZXIgaXMgZG9uYXRpb253YXJlLiBJZiB5b3UgYXJlIHVzaW5nIGl0LCBwbGVhc2UgZG9uYXRlLgogKiBodHRwOi8vYWxleGdvcmJhdGNoZXYuY29tL1N5bnRheEhpZ2hsaWdodGVyL2RvbmF0ZS5odG1sCiAqCiAqIEB2ZXJzaW9uCiAqIDMuMC44MyAoSnVseSAwMiAyMDEwKQogKiAKICogQGNvcHlyaWdodAogKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMCBBbGV4IEdvcmJhdGNoZXYuCiAqCiAqIEBsaWNlbnNlCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzLgogKi8KLnN5bnRheGhpZ2hsaWdodGVyIGEsCi5zeW50YXhoaWdobGlnaHRlciBkaXYsCi5zeW50YXhoaWdobGlnaHRlciBjb2RlLAouc3ludGF4aGlnaGxpZ2h0ZXIgdGFibGUsCi5zeW50YXhoaWdobGlnaHRlciB0YWJsZSB0ZCwKLnN5bnRheGhpZ2hsaWdodGVyIHRhYmxlIHRyLAouc3ludGF4aGlnaGxpZ2h0ZXIgdGFibGUgdGJvZHksCi5zeW50YXhoaWdobGlnaHRlciB0YWJsZSB0aGVhZCwKLnN5bnRheGhpZ2hsaWdodGVyIHRhYmxlIGNhcHRpb24sCi5zeW50YXhoaWdobGlnaHRlciB0ZXh0YXJlYSB7CiAgLW1vei1ib3JkZXItcmFkaXVzOiAwIDAgMCAwICFpbXBvcnRhbnQ7CiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwIDAgMCAwICFpbXBvcnRhbnQ7CiAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50OwogIGJvcmRlcjogMCAhaW1wb3J0YW50OwogIGJvdHRvbTogYXV0byAhaW1wb3J0YW50OwogIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7CiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7CiAgbGVmdDogYXV0byAhaW1wb3J0YW50OwogIGxpbmUtaGVpZ2h0OiAxLjFlbSAhaW1wb3J0YW50OwogIG1hcmdpbjogMCAhaW1wb3J0YW50OwogIG91dGxpbmU6IDAgIWltcG9ydGFudDsKICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50OwogIHBhZGRpbmc6IDAgIWltcG9ydGFudDsKICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7CiAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDsKICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7CiAgdG9wOiBhdXRvICFpbXBvcnRhbnQ7CiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lICFpbXBvcnRhbnQ7CiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDsKICBib3gtc2l6aW5nOiBjb250ZW50LWJveCAhaW1wb3J0YW50OwogIGZvbnQtZmFtaWx5OiAiQ29uc29sYXMiLCJNb25hY28iLCJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8iLCJDb3VyaWVyIE5ldyIsQ291cmllcixtb25vc3BhY2UgIWltcG9ydGFudDsKICBmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7CiAgZm9udC1zdHlsZTogbm9ybWFsICFpbXBvcnRhbnQ7CiAgZm9udC1zaXplOiAxZW0gIWltcG9ydGFudDsKICBtaW4taGVpZ2h0OiBpbmhlcml0ICFpbXBvcnRhbnQ7CiAgbWluLWhlaWdodDogYXV0byAhaW1wb3J0YW50Owp9Cgouc3ludGF4aGlnaGxpZ2h0ZXIgewogIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CiAgbWFyZ2luOiAxZW0gMCAxZW0gMCAhaW1wb3J0YW50OwogIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50OwogIG92ZXJmbG93OiBhdXRvICFpbXBvcnRhbnQ7CiAgZm9udC1zaXplOiAxZW0gIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIuc291cmNlIHsKICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC5ib2xkIHsKICBmb250LXdlaWdodDogYm9sZCAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuaXRhbGljIHsKICBmb250LXN0eWxlOiBpdGFsaWMgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgLmxpbmUgewogIHdoaXRlLXNwYWNlOiBwcmUgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgdGFibGUgewogIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIHRhYmxlIGNhcHRpb24gewogIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsKICBwYWRkaW5nOiAuNWVtIDAgMC41ZW0gMWVtICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIHRhYmxlIHRkLmNvZGUgewogIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIHRhYmxlIHRkLmNvZGUgLmNvbnRhaW5lciB7CiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIHRhYmxlIHRkLmNvZGUgLmNvbnRhaW5lciB0ZXh0YXJlYSB7CiAgYm94LXNpemluZzogYm9yZGVyLWJveCAhaW1wb3J0YW50OwogIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50OwogIGxlZnQ6IDAgIWltcG9ydGFudDsKICB0b3A6IDAgIWltcG9ydGFudDsKICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OwogIGhlaWdodDogMTAwJSAhaW1wb3J0YW50OwogIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50OwogIGJhY2tncm91bmQ6IHdoaXRlICFpbXBvcnRhbnQ7CiAgcGFkZGluZy1sZWZ0OiAxZW0gIWltcG9ydGFudDsKICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7CiAgd2hpdGUtc3BhY2U6IHByZSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciB0YWJsZSB0ZC5ndXR0ZXIgLmxpbmUgewogIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7CiAgcGFkZGluZzogMnB4IDAuNWVtIDJweCAxZW0gIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgdGFibGUgdGQuY29kZSAubGluZSB7CiAgcGFkZGluZzogMnB4IDFlbSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5ub2d1dHRlciB0ZC5jb2RlIC5jb250YWluZXIgdGV4dGFyZWEsIC5zeW50YXhoaWdobGlnaHRlci5ub2d1dHRlciB0ZC5jb2RlIC5saW5lIHsKICBwYWRkaW5nLWxlZnQ6IDBlbSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5zaG93IHsKICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5jb2xsYXBzZWQgdGFibGUgewogIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIuY29sbGFwc2VkIC50b29sYmFyIHsKICBwYWRkaW5nOiAwLjFlbSAwLjhlbSAwZW0gMC44ZW0gIWltcG9ydGFudDsKICBmb250LXNpemU6IDFlbSAhaW1wb3J0YW50OwogIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDsKICB3aWR0aDogYXV0byAhaW1wb3J0YW50OwogIGhlaWdodDogYXV0byAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5jb2xsYXBzZWQgLnRvb2xiYXIgc3BhbiB7CiAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7CiAgbWFyZ2luLXJpZ2h0OiAxZW0gIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIuY29sbGFwc2VkIC50b29sYmFyIHNwYW4gYSB7CiAgcGFkZGluZzogMCAhaW1wb3J0YW50OwogIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIuY29sbGFwc2VkIC50b29sYmFyIHNwYW4gYS5leHBhbmRTb3VyY2UgewogIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAudG9vbGJhciB7CiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7CiAgcmlnaHQ6IDFweCAhaW1wb3J0YW50OwogIHRvcDogMXB4ICFpbXBvcnRhbnQ7CiAgd2lkdGg6IDExcHggIWltcG9ydGFudDsKICBoZWlnaHQ6IDExcHggIWltcG9ydGFudDsKICBmb250LXNpemU6IDEwcHggIWltcG9ydGFudDsKICB6LWluZGV4OiAxMCAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAudG9vbGJhciBzcGFuLnRpdGxlIHsKICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgLnRvb2xiYXIgYSB7CiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsKICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsKICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsKICBwYWRkaW5nLXRvcDogMXB4ICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC50b29sYmFyIGEuZXhwYW5kU291cmNlIHsKICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLmllIHsKICBmb250LXNpemU6IC45ZW0gIWltcG9ydGFudDsKICBwYWRkaW5nOiAxcHggMCAxcHggMCAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5pZSAudG9vbGJhciB7CiAgbGluZS1oZWlnaHQ6IDhweCAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5pZSAudG9vbGJhciBhIHsKICBwYWRkaW5nLXRvcDogMHB4ICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5saW5lLmFsdDEgLmNvbnRlbnQsCi5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAubGluZS5hbHQyIC5jb250ZW50LAouc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLmxpbmUuaGlnaGxpZ2h0ZWQgLm51bWJlciwKLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5saW5lLmhpZ2hsaWdodGVkLmFsdDEgLmNvbnRlbnQsCi5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAubGluZS5oaWdobGlnaHRlZC5hbHQyIC5jb250ZW50IHsKICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5saW5lIC5udW1iZXIgewogIGNvbG9yOiAjYmJiYmJiICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5saW5lIC5jb250ZW50IHsKICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLnRvb2xiYXIgewogIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgYSB7CiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5wbGFpbiwgLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5wbGFpbiBhIHsKICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLmNvbW1lbnRzLCAuc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLmNvbW1lbnRzIGEgewogIGNvbG9yOiAjMDA4MjAwICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5zdHJpbmcsIC5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAuc3RyaW5nIGEgewogIGNvbG9yOiBibHVlICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5rZXl3b3JkIHsKICBjb2xvcjogIzAwNjY5OSAhaW1wb3J0YW50OwogIGZvbnQtd2VpZ2h0OiBib2xkICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5wcmVwcm9jZXNzb3IgewogIGNvbG9yOiBncmF5ICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC52YXJpYWJsZSB7CiAgY29sb3I6ICNhYTc3MDAgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLnZhbHVlIHsKICBjb2xvcjogIzAwOTkwMCAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAuZnVuY3Rpb25zIHsKICBjb2xvcjogI2ZmMTQ5MyAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAuY29uc3RhbnRzIHsKICBjb2xvcjogIzAwNjZjYyAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAuc2NyaXB0IHsKICBmb250LXdlaWdodDogYm9sZCAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAuY29sb3IxLCAuc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLmNvbG9yMSBhIHsKICBjb2xvcjogZ3JheSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAuY29sb3IyLCAuc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLmNvbG9yMiBhIHsKICBjb2xvcjogI2ZmMTQ5MyAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAuY29sb3IzLCAuc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLmNvbG9yMyBhIHsKICBjb2xvcjogcmVkICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5icmVhaywgLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5icmVhayBhIHsKICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsKfQo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/docs/media/css/shThemeDataTables.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIFN5bnRheEhpZ2hsaWdodGVyCiAqIGh0dHA6Ly9hbGV4Z29yYmF0Y2hldi5jb20vU3ludGF4SGlnaGxpZ2h0ZXIKICoKICogU3ludGF4SGlnaGxpZ2h0ZXIgaXMgZG9uYXRpb253YXJlLiBJZiB5b3UgYXJlIHVzaW5nIGl0LCBwbGVhc2UgZG9uYXRlLgogKiBodHRwOi8vYWxleGdvcmJhdGNoZXYuY29tL1N5bnRheEhpZ2hsaWdodGVyL2RvbmF0ZS5odG1sCiAqCiAqIEB2ZXJzaW9uCiAqIDMuMC44MyAoSnVseSAwMiAyMDEwKQogKiAKICogQGNvcHlyaWdodAogKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMCBBbGV4IEdvcmJhdGNoZXYuCiAqCiAqIEBsaWNlbnNlCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzLgogKi8KLnN5bnRheGhpZ2hsaWdodGVyIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50OwogIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50OwogIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC5saW5lLmFsdDEgewogIGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC5saW5lLmFsdDIgewogIGJhY2tncm91bmQtY29sb3I6ICNGOEY4RjggIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgLmxpbmUuaGlnaGxpZ2h0ZWQuYWx0MSwgLnN5bnRheGhpZ2hsaWdodGVyIC5saW5lLmhpZ2hsaWdodGVkLmFsdDIgewogIGJhY2tncm91bmQtY29sb3I6ICNlMGUwZTAgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgLmxpbmUuaGlnaGxpZ2h0ZWQubnVtYmVyIHsKICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgdGFibGUgY2FwdGlvbiB7CiAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC5ndXR0ZXIgewp9Ci5zeW50YXhoaWdobGlnaHRlciAuZ3V0dGVyIGRpdiB7CiAgY29sb3I6ICM1QzVDNUMgIWltcG9ydGFudDsKICB3aWR0aDogMjBweCAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuZ3V0dGVyIC5saW5lLmFsdDEsIC5zeW50YXhoaWdobGlnaHRlciAgLmd1dHRlciAubGluZS5hbHQyIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50Owp9Ci5vZGQgLnN5bnRheGhpZ2hsaWdodGVyIC5ndXR0ZXIgLmxpbmUuYWx0MSwgLm9kZCAuc3ludGF4aGlnaGxpZ2h0ZXIgIC5ndXR0ZXIgLmxpbmUuYWx0MiB7CiAgYmFja2dyb3VuZC1jb2xvcjogI0YyRjJGMiAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuZ3V0dGVyIC5saW5lIHsKICBib3JkZXItcmlnaHQ6IDNweCBzb2xpZCAjNEU2Q0EzICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC5ndXR0ZXIgLmxpbmUuaGlnaGxpZ2h0ZWQgewogIGJhY2tncm91bmQtY29sb3I6ICM0RTZDQTMgIWltcG9ydGFudDsKICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLmxpbmUgLmNvbnRlbnQgewogIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5jb2xsYXBzZWQgewogIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLmNvbGxhcHNlZCAudG9vbGJhciB7CiAgY29sb3I6IGJsdWUgIWltcG9ydGFudDsKICBiYWNrZ3JvdW5kOiB3aGl0ZSAhaW1wb3J0YW50OwogIGJvcmRlcjogMXB4IHNvbGlkICM0RTZDQTMgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIuY29sbGFwc2VkIC50b29sYmFyIGEgewogIGNvbG9yOiBibHVlICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLmNvbGxhcHNlZCAudG9vbGJhciBhOmhvdmVyIHsKICBjb2xvcjogcmVkICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC50b29sYmFyIHsKICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDsKICBiYWNrZ3JvdW5kOiAjNEU2Q0EzICFpbXBvcnRhbnQ7CiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC50b29sYmFyIGEgewogIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAudG9vbGJhciBhOmhvdmVyIHsKICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgLnBsYWluLCAuc3ludGF4aGlnaGxpZ2h0ZXIgLnBsYWluIGEgewogIGNvbG9yOiBibGFjayAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuY29tbWVudHMsIC5zeW50YXhoaWdobGlnaHRlciAuY29tbWVudHMgYSB7CiAgY29sb3I6ICMwMDgyMDAgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgLnN0cmluZywgLnN5bnRheGhpZ2hsaWdodGVyIC5zdHJpbmcgYSB7CiAgY29sb3I6IGJsdWUgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgLmtleXdvcmQgewogIGNvbG9yOiAjMDA2Njk5ICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC5wcmVwcm9jZXNzb3IgewogIGNvbG9yOiBncmF5ICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC52YXJpYWJsZSB7CiAgY29sb3I6ICNhYTc3MDAgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgLnZhbHVlIHsKICBjb2xvcjogIzAwOTkwMCAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuZnVuY3Rpb25zIHsKICBjb2xvcjogI2ZmMTQ5MyAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuY29uc3RhbnRzIHsKICBjb2xvcjogIzAwNjZjYyAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuc2NyaXB0IHsKICBmb250LXdlaWdodDogYm9sZCAhaW1wb3J0YW50OwogIGNvbG9yOiAjMDA2Njk5ICFpbXBvcnRhbnQ7CiAgYmFja2dyb3VuZC1jb2xvcjogbm9uZSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuY29sb3IxLCAuc3ludGF4aGlnaGxpZ2h0ZXIgLmNvbG9yMSBhIHsKICBjb2xvcjogZ3JheSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuY29sb3IyLCAuc3ludGF4aGlnaGxpZ2h0ZXIgLmNvbG9yMiBhIHsKICBjb2xvcjogI2ZmMTQ5MyAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuY29sb3IzLCAuc3ludGF4aGlnaGxpZ2h0ZXIgLmNvbG9yMyBhIHsKICBjb2xvcjogcmVkICFpbXBvcnRhbnQ7Cn0KCi5zeW50YXhoaWdobGlnaHRlciAua2V5d29yZCB7CiAgZm9udC13ZWlnaHQ6IGJvbGQgIWltcG9ydGFudDsKfQo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/docs/media/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/docs/media/images/arrow.jpg</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAZAAA/+4ADkFkb2JlAGTAAAAAAf/bAIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMDAwMDAwMDAwEBAQEBAQECAQECAgIBAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD/8AAEQgABwAIAwERAAIRAQMRAf/EAGYAAQAAAAAAAAAAAAAAAAAAAAoBAQEAAAAAAAAAAAAAAAAAAAUHEAABAgYDAQAAAAAAAAAAAAAFAhYDEwQUBgcREhUXEQABAwQBBAMAAAAAAAAAAAABAhIDESETBCNBIkJSQxQG/9oADAMBAAIRAxEAPwBitOH3pEsWqvIhlzuSoLapc+QwijU1Qjo+/q0utW7MGySZGbANFwYG3Q/kjRyU+dRVzfng/wC6Il00gnZxobk2fhOvbjmRTnltFJSTiU45H1q0w/MEnsAkbZy/Ex+qhQuN0q6oFTT/2Q==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/docs/media/images/extended.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAFoTx1HAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NEZGQzY2NkQ1MDJDMTFFMEI1RDE5NDU4MEJERUNCNjciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NEZGQzY2NkU1MDJDMTFFMEI1RDE5NDU4MEJERUNCNjciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowNkRFRjRFQzUwMDIxMUUwQjVEMTk0NTgwQkRFQ0I2NyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0RkZDNjY2QzUwMkMxMUUwQjVEMTk0NTgwQkRFQ0I2NyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PlMwMW8AAAEZSURBVHjaYvz//z8DCDCBiN7e3v8AAcQIF5k/fz6YBRBADCCRXbt2/c/Pz/8PYoPVPnnyhEFWVhasACCA4HpQTIJzUGRgACCAwKbCcFNT039kPthAkP3v3r0DK7558ybYttraWka4bcgKiouLGUE0QAChOAUdwB0QFRX1H4SRJcE6Qe4WEhJiuHfvHliwubkZbCzT7t27/yspKcFVs7GxMYDEULwyb968/zU1NSheYWLAA/BKAgQYSggh48jIyP+45OChhwyAvvgvIyPDAAqsDx8+oPgMIwhgIaupqcnw+fNncETDNIL4MDBhwgRGDI0wAEs7MI0CAgLwKCI+AMgOOTyABV0A5MTHjx8zfPv2jeHLly8MIH9jAwDul9vYyKpTggAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/docs/media/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/docs/media/js/doc.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CihmdW5jdGlvbigpIHsKCnZhciBzaG93aW5nTmF2ID0gdHJ1ZTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIganFOYXYgPSAkKCdkaXYuZndfbmF2Jyk7CglqcU5hdi5jc3MoJ3JpZ2h0JywgKCQod2luZG93KS53aWR0aCgpIC0gJCgnZGl2LmZ3X2NvbnRhaW5lcicpLndpZHRoKCkpIC8yKTsKCgl2YXIgbiA9ICQoJ2Rpdi5uYXZfYmxvY2tlcicpWzBdOwoJbi5zdHlsZS5oZWlnaHQgPSAkKGpxTmF2KS5vdXRlckhlaWdodCgpKyJweCI7CgluLnN0eWxlLndpZHRoID0gKCQoanFOYXYpLm91dGVyV2lkdGgoKSsyMCkrInB4IjsKCglTeW50YXhIaWdobGlnaHRlci5oaWdobGlnaHQoKTsKCgkkKCcjcHJpdmF0ZV90b2dnbGUnKS5jbGljayggZnVuY3Rpb24gKCkgewoJCWlmICggJCgnaW5wdXRbbmFtZT1zaG93X3ByaXZhdGVdJykudmFsKCkgPT0gMCApIHsKCQkJJCgnaW5wdXRbbmFtZT1zaG93X3ByaXZhdGVdJykudmFsKCAxICk7CgkJCSQoJyNwcml2YXRlX2xhYmVsJykuaHRtbCgnU2hvd2luZycpOwoJCQkkKCcucHJpdmF0ZScpLmNzcygnZGlzcGxheScsICdibG9jaycpOwoJCX0gZWxzZSB7CgkJCSQoJ2lucHV0W25hbWU9c2hvd19wcml2YXRlXScpLnZhbCggMCApOwoJCQkkKCcjcHJpdmF0ZV9sYWJlbCcpLmh0bWwoJ0hpZGluZycpOwoJCQkkKCcucHJpdmF0ZScpLmNzcygnZGlzcGxheScsICdub25lJyk7CgkJfQoJCWZuV3JpdGVDb29raWUoKTsKCQlyZXR1cm4gZmFsc2U7Cgl9ICk7CgoJJCgnI2V4dGVuZGVkX3RvZ2dsZScpLmNsaWNrKCBmdW5jdGlvbiAoKSB7CgkJaWYgKCAkKCdpbnB1dFtuYW1lPXNob3dfZXh0ZW5kZWRdJykudmFsKCkgPT0gMCApIHsKCQkJJCgnaW5wdXRbbmFtZT1zaG93X2V4dGVuZGVkXScpLnZhbCggMSApOwoJCQkkKCcjZXh0ZW5kZWRfbGFiZWwnKS5odG1sKCdTaG93aW5nJyk7CgkJCSQoJy5hdWdtZW50ZWQnKS5jc3MoJ2Rpc3BsYXknLCAnYmxvY2snKTsKCQl9IGVsc2UgewoJCQkkKCdpbnB1dFtuYW1lPXNob3dfZXh0ZW5kZWRdJykudmFsKCAwICk7CgkJCSQoJyNleHRlbmRlZF9sYWJlbCcpLmh0bWwoJ0hpZGluZycpOwoJCQkkKCcuYXVnbWVudGVkJykuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTsKCQl9CgkJZm5Xcml0ZUNvb2tpZSgpOwoJCXJldHVybiBmYWxzZTsKCX0gKTsKCgl2YXIgc2F2ZWRIZWlnaHQgPSAkKGpxTmF2KS5oZWlnaHQoKTsKCSQoJ2Rpdi5md19uYXYgaDInKS5jbGljayggZnVuY3Rpb24gKCkgewoJCWlmICggc2hvd2luZ05hdiApIHsKCQkJJCgnZGl2LmZ3X25hdicpLmFuaW1hdGUoIHsKCQkJCSJoZWlnaHQiOiAxMCwKCQkJCSJvcGFjaXR5IjogMC4zCgkJCX0gKTsKCQkJc2hvd2luZ05hdiA9IGZhbHNlOwoJCX0gZWxzZSB7CgkJCSQoJ2Rpdi5md19uYXYnKS5hbmltYXRlKCB7CgkJCQkiaGVpZ2h0Ijogc2F2ZWRIZWlnaHQsCgkJCQkib3BhY2l0eSI6IDEKCQkJfSApOwoJCQlzaG93aW5nTmF2ID0gdHJ1ZTsKCQl9CgkJZm5Xcml0ZUNvb2tpZSgpOwoJfSApOwoKCXZhciBjb29raWUgPSBmblJlYWRDb29raWUoICdTcHJ5TWVkaWFfSlNEb2MnICk7CglpZiAoIGNvb2tpZSAhPSBudWxsICkgewoJCXZhciBhID0gY29va2llLnNwbGl0KCctJyk7CgkJaWYgKCBhWzBdID09IDEgKSB7CgkJCSQoJyNwcml2YXRlX3RvZ2dsZScpLmNsaWNrKCk7CgkJfQoJCWlmICggYVsxXSA9PSAwICkgewoJCQkkKCcjZXh0ZW5kZWRfdG9nZ2xlJykuY2xpY2soKTsKCQl9CgkJaWYgKCBhWzJdID09ICdmYWxzZScgKSB7CgkJCSQoJ2Rpdi5md19uYXYnKS5jc3MoJ2hlaWdodCcsIDEwKS5jc3MoJ29wYWNpdHknLCAwLjMpOwoJCQlzaG93aW5nTmF2ID0gZmFsc2U7CgkJfQoJfQp9ICk7CgoKZnVuY3Rpb24gZm5Xcml0ZUNvb2tpZSgpCnsKCXZhciBzVmFsID0gCgkJJCgnaW5wdXRbbmFtZT1zaG93X3ByaXZhdGVdJykudmFsKCkrJy0nKwoJCSQoJ2lucHV0W25hbWU9c2hvd19leHRlbmRlZF0nKS52YWwoKSsnLScrCgkJc2hvd2luZ05hdjsKCQoJZm5DcmVhdGVDb29raWUoICdTcHJ5TWVkaWFfSlNEb2MnLCBzVmFsICk7Cn0KCgpmdW5jdGlvbiBmbkNyZWF0ZUNvb2tpZSggc05hbWUsIHNWYWx1ZSApCnsKCXZhciBpRGF5cyA9IDM2NTsKCXZhciBkYXRlID0gbmV3IERhdGUoKTsKCWRhdGUuc2V0VGltZSggZGF0ZS5nZXRUaW1lKCkrKGlEYXlzKjI0KjYwKjYwKjEwMDApICk7Cgl2YXIgc0V4cGlyZXMgPSAiOyBleHBpcmVzPSIrZGF0ZS50b0dNVFN0cmluZygpOwoJCglkb2N1bWVudC5jb29raWUgPSBzTmFtZSsiPSIrc1ZhbHVlK3NFeHBpcmVzKyI7IHBhdGg9LyI7Cn0KCgpmdW5jdGlvbiBmblJlYWRDb29raWUoIHNOYW1lICkKewoJdmFyIHNOYW1lRVEgPSBzTmFtZSArICI9IjsKCXZhciBzQ29va2llQ29udGVudHMgPSBkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKTsKCQoJZm9yKCB2YXIgaT0wIDsgaTxzQ29va2llQ29udGVudHMubGVuZ3RoIDsgaSsrICkgewoJCXZhciBjID0gc0Nvb2tpZUNvbnRlbnRzW2ldOwoJCQoJCXdoaWxlIChjLmNoYXJBdCgwKT09JyAnKSB7CgkJCWMgPSBjLnN1YnN0cmluZygxLGMubGVuZ3RoKTsKCQl9CgkJCgkJaWYgKGMuaW5kZXhPZihzTmFtZUVRKSA9PSAwKSB7CgkJCXJldHVybiBjLnN1YnN0cmluZyhzTmFtZUVRLmxlbmd0aCxjLmxlbmd0aCk7CgkJfQoJfQoJCglyZXR1cm4gbnVsbDsKfQoKfSkoKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/docs/media/js/jquery.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohCiAqIGpRdWVyeSBKYXZhU2NyaXB0IExpYnJhcnkgdjEuNS4xCiAqIGh0dHA6Ly9qcXVlcnkuY29tLwogKgogKiBDb3B5cmlnaHQgMjAxMSwgSm9obiBSZXNpZwogKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQogKgogKiBJbmNsdWRlcyBTaXp6bGUuanMKICogaHR0cDovL3NpenpsZWpzLmNvbS8KICogQ29weXJpZ2h0IDIwMTEsIFRoZSBEb2pvIEZvdW5kYXRpb24KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCwgQlNELCBhbmQgR1BMIExpY2Vuc2VzLgogKgogKiBEYXRlOiBXZWQgRmViIDIzIDEzOjU1OjI5IDIwMTEgLTA1MDAKICovCihmdW5jdGlvbiggd2luZG93LCB1bmRlZmluZWQgKSB7CgovLyBVc2UgdGhlIGNvcnJlY3QgZG9jdW1lbnQgYWNjb3JkaW5nbHkgd2l0aCB3aW5kb3cgYXJndW1lbnQgKHNhbmRib3gpCnZhciBkb2N1bWVudCA9IHdpbmRvdy5kb2N1bWVudDsKdmFyIGpRdWVyeSA9IChmdW5jdGlvbigpIHsKCi8vIERlZmluZSBhIGxvY2FsIGNvcHkgb2YgalF1ZXJ5CnZhciBqUXVlcnkgPSBmdW5jdGlvbiggc2VsZWN0b3IsIGNvbnRleHQgKSB7CgkJLy8gVGhlIGpRdWVyeSBvYmplY3QgaXMgYWN0dWFsbHkganVzdCB0aGUgaW5pdCBjb25zdHJ1Y3RvciAnZW5oYW5jZWQnCgkJcmV0dXJuIG5ldyBqUXVlcnkuZm4uaW5pdCggc2VsZWN0b3IsIGNvbnRleHQsIHJvb3RqUXVlcnkgKTsKCX0sCgoJLy8gTWFwIG92ZXIgalF1ZXJ5IGluIGNhc2Ugb2Ygb3ZlcndyaXRlCglfalF1ZXJ5ID0gd2luZG93LmpRdWVyeSwKCgkvLyBNYXAgb3ZlciB0aGUgJCBpbiBjYXNlIG9mIG92ZXJ3cml0ZQoJXyQgPSB3aW5kb3cuJCwKCgkvLyBBIGNlbnRyYWwgcmVmZXJlbmNlIHRvIHRoZSByb290IGpRdWVyeShkb2N1bWVudCkKCXJvb3RqUXVlcnksCgoJLy8gQSBzaW1wbGUgd2F5IHRvIGNoZWNrIGZvciBIVE1MIHN0cmluZ3Mgb3IgSUQgc3RyaW5ncwoJLy8gKGJvdGggb2Ygd2hpY2ggd2Ugb3B0aW1pemUgZm9yKQoJcXVpY2tFeHByID0gL14oPzpbXjxdKig8W1x3XFddKz4pW14+XSokfCMoW1x3XC1dKykkKS8sCgoJLy8gQ2hlY2sgaWYgYSBzdHJpbmcgaGFzIGEgbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVyIGluIGl0Cglybm90d2hpdGUgPSAvXFMvLAoKCS8vIFVzZWQgZm9yIHRyaW1taW5nIHdoaXRlc3BhY2UKCXRyaW1MZWZ0ID0gL15ccysvLAoJdHJpbVJpZ2h0ID0gL1xzKyQvLAoKCS8vIENoZWNrIGZvciBkaWdpdHMKCXJkaWdpdCA9IC9cZC8sCgoJLy8gTWF0Y2ggYSBzdGFuZGFsb25lIHRhZwoJcnNpbmdsZVRhZyA9IC9ePChcdyspXHMqXC8/Pig/OjxcL1wxPik/JC8sCgoJLy8gSlNPTiBSZWdFeHAKCXJ2YWxpZGNoYXJzID0gL15bXF0sOnt9XHNdKiQvLAoJcnZhbGlkZXNjYXBlID0gL1xcKD86WyJcXFwvYmZucnRdfHVbMC05YS1mQS1GXXs0fSkvZywKCXJ2YWxpZHRva2VucyA9IC8iW14iXFxcblxyXSoifHRydWV8ZmFsc2V8bnVsbHwtP1xkKyg/OlwuXGQqKT8oPzpbZUVdWytcLV0/XGQrKT8vZywKCXJ2YWxpZGJyYWNlcyA9IC8oPzpefDp8LCkoPzpccypcWykrL2csCgoJLy8gVXNlcmFnZW50IFJlZ0V4cAoJcndlYmtpdCA9IC8od2Via2l0KVsgXC9dKFtcdy5dKykvLAoJcm9wZXJhID0gLyhvcGVyYSkoPzouKnZlcnNpb24pP1sgXC9dKFtcdy5dKykvLAoJcm1zaWUgPSAvKG1zaWUpIChbXHcuXSspLywKCXJtb3ppbGxhID0gLyhtb3ppbGxhKSg/Oi4qPyBydjooW1x3Ll0rKSk/LywKCgkvLyBLZWVwIGEgVXNlckFnZW50IHN0cmluZyBmb3IgdXNlIHdpdGggalF1ZXJ5LmJyb3dzZXIKCXVzZXJBZ2VudCA9IG5hdmlnYXRvci51c2VyQWdlbnQsCgoJLy8gRm9yIG1hdGNoaW5nIHRoZSBlbmdpbmUgYW5kIHZlcnNpb24gb2YgdGhlIGJyb3dzZXIKCWJyb3dzZXJNYXRjaCwKCgkvLyBIYXMgdGhlIHJlYWR5IGV2ZW50cyBhbHJlYWR5IGJlZW4gYm91bmQ/CglyZWFkeUJvdW5kID0gZmFsc2UsCgoJLy8gVGhlIGRlZmVycmVkIHVzZWQgb24gRE9NIHJlYWR5CglyZWFkeUxpc3QsCgoJLy8gUHJvbWlzZSBtZXRob2RzCglwcm9taXNlTWV0aG9kcyA9ICJ0aGVuIGRvbmUgZmFpbCBpc1Jlc29sdmVkIGlzUmVqZWN0ZWQgcHJvbWlzZSIuc3BsaXQoICIgIiApLAoKCS8vIFRoZSByZWFkeSBldmVudCBoYW5kbGVyCglET01Db250ZW50TG9hZGVkLAoKCS8vIFNhdmUgYSByZWZlcmVuY2UgdG8gc29tZSBjb3JlIG1ldGhvZHMKCXRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZywKCWhhc093biA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksCglwdXNoID0gQXJyYXkucHJvdG90eXBlLnB1c2gsCglzbGljZSA9IEFycmF5LnByb3RvdHlwZS5zbGljZSwKCXRyaW0gPSBTdHJpbmcucHJvdG90eXBlLnRyaW0sCglpbmRleE9mID0gQXJyYXkucHJvdG90eXBlLmluZGV4T2YsCgoJLy8gW1tDbGFzc11dIC0+IHR5cGUgcGFpcnMKCWNsYXNzMnR5cGUgPSB7fTsKCmpRdWVyeS5mbiA9IGpRdWVyeS5wcm90b3R5cGUgPSB7Cgljb25zdHJ1Y3RvcjogalF1ZXJ5LAoJaW5pdDogZnVuY3Rpb24oIHNlbGVjdG9yLCBjb250ZXh0LCByb290alF1ZXJ5ICkgewoJCXZhciBtYXRjaCwgZWxlbSwgcmV0LCBkb2M7CgoJCS8vIEhhbmRsZSAkKCIiKSwgJChudWxsKSwgb3IgJCh1bmRlZmluZWQpCgkJaWYgKCAhc2VsZWN0b3IgKSB7CgkJCXJldHVybiB0aGlzOwoJCX0KCgkJLy8gSGFuZGxlICQoRE9NRWxlbWVudCkKCQlpZiAoIHNlbGVjdG9yLm5vZGVUeXBlICkgewoJCQl0aGlzLmNvbnRleHQgPSB0aGlzWzBdID0gc2VsZWN0b3I7CgkJCXRoaXMubGVuZ3RoID0gMTsKCQkJcmV0dXJuIHRoaXM7CgkJfQoKCQkvLyBUaGUgYm9keSBlbGVtZW50IG9ubHkgZXhpc3RzIG9uY2UsIG9wdGltaXplIGZpbmRpbmcgaXQKCQlpZiAoIHNlbGVjdG9yID09PSAiYm9keSIgJiYgIWNvbnRleHQgJiYgZG9jdW1lbnQuYm9keSApIHsKCQkJdGhpcy5jb250ZXh0ID0gZG9jdW1lbnQ7CgkJCXRoaXNbMF0gPSBkb2N1bWVudC5ib2R5OwoJCQl0aGlzLnNlbGVjdG9yID0gImJvZHkiOwoJCQl0aGlzLmxlbmd0aCA9IDE7CgkJCXJldHVybiB0aGlzOwoJCX0KCgkJLy8gSGFuZGxlIEhUTUwgc3RyaW5ncwoJCWlmICggdHlwZW9mIHNlbGVjdG9yID09PSAic3RyaW5nIiApIHsKCQkJLy8gQXJlIHdlIGRlYWxpbmcgd2l0aCBIVE1MIHN0cmluZyBvciBhbiBJRD8KCQkJbWF0Y2ggPSBxdWlja0V4cHIuZXhlYyggc2VsZWN0b3IgKTsKCgkJCS8vIFZlcmlmeSBhIG1hdGNoLCBhbmQgdGhhdCBubyBjb250ZXh0IHdhcyBzcGVjaWZpZWQgZm9yICNpZAoJCQlpZiAoIG1hdGNoICYmIChtYXRjaFsxXSB8fCAhY29udGV4dCkgKSB7CgoJCQkJLy8gSEFORExFOiAkKGh0bWwpIC0+ICQoYXJyYXkpCgkJCQlpZiAoIG1hdGNoWzFdICkgewoJCQkJCWNvbnRleHQgPSBjb250ZXh0IGluc3RhbmNlb2YgalF1ZXJ5ID8gY29udGV4dFswXSA6IGNvbnRleHQ7CgkJCQkJZG9jID0gKGNvbnRleHQgPyBjb250ZXh0Lm93bmVyRG9jdW1lbnQgfHwgY29udGV4dCA6IGRvY3VtZW50KTsKCgkJCQkJLy8gSWYgYSBzaW5nbGUgc3RyaW5nIGlzIHBhc3NlZCBpbiBhbmQgaXQncyBhIHNpbmdsZSB0YWcKCQkJCQkvLyBqdXN0IGRvIGEgY3JlYXRlRWxlbWVudCBhbmQgc2tpcCB0aGUgcmVzdAoJCQkJCXJldCA9IHJzaW5nbGVUYWcuZXhlYyggc2VsZWN0b3IgKTsKCgkJCQkJaWYgKCByZXQgKSB7CgkJCQkJCWlmICggalF1ZXJ5LmlzUGxhaW5PYmplY3QoIGNvbnRleHQgKSApIHsKCQkJCQkJCXNlbGVjdG9yID0gWyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCByZXRbMV0gKSBdOwoJCQkJCQkJalF1ZXJ5LmZuLmF0dHIuY2FsbCggc2VsZWN0b3IsIGNvbnRleHQsIHRydWUgKTsKCgkJCQkJCX0gZWxzZSB7CgkJCQkJCQlzZWxlY3RvciA9IFsgZG9jLmNyZWF0ZUVsZW1lbnQoIHJldFsxXSApIF07CgkJCQkJCX0KCgkJCQkJfSBlbHNlIHsKCQkJCQkJcmV0ID0galF1ZXJ5LmJ1aWxkRnJhZ21lbnQoIFsgbWF0Y2hbMV0gXSwgWyBkb2MgXSApOwoJCQkJCQlzZWxlY3RvciA9IChyZXQuY2FjaGVhYmxlID8galF1ZXJ5LmNsb25lKHJldC5mcmFnbWVudCkgOiByZXQuZnJhZ21lbnQpLmNoaWxkTm9kZXM7CgkJCQkJfQoKCQkJCQlyZXR1cm4galF1ZXJ5Lm1lcmdlKCB0aGlzLCBzZWxlY3RvciApOwoKCQkJCS8vIEhBTkRMRTogJCgiI2lkIikKCQkJCX0gZWxzZSB7CgkJCQkJZWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCBtYXRjaFsyXSApOwoKCQkJCQkvLyBDaGVjayBwYXJlbnROb2RlIHRvIGNhdGNoIHdoZW4gQmxhY2tiZXJyeSA0LjYgcmV0dXJucwoJCQkJCS8vIG5vZGVzIHRoYXQgYXJlIG5vIGxvbmdlciBpbiB0aGUgZG9jdW1lbnQgIzY5NjMKCQkJCQlpZiAoIGVsZW0gJiYgZWxlbS5wYXJlbnROb2RlICkgewoJCQkJCQkvLyBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgSUUgYW5kIE9wZXJhIHJldHVybiBpdGVtcwoJCQkJCQkvLyBieSBuYW1lIGluc3RlYWQgb2YgSUQKCQkJCQkJaWYgKCBlbGVtLmlkICE9PSBtYXRjaFsyXSApIHsKCQkJCQkJCXJldHVybiByb290alF1ZXJ5LmZpbmQoIHNlbGVjdG9yICk7CgkJCQkJCX0KCgkJCQkJCS8vIE90aGVyd2lzZSwgd2UgaW5qZWN0IHRoZSBlbGVtZW50IGRpcmVjdGx5IGludG8gdGhlIGpRdWVyeSBvYmplY3QKCQkJCQkJdGhpcy5sZW5ndGggPSAxOwoJCQkJCQl0aGlzWzBdID0gZWxlbTsKCQkJCQl9CgoJCQkJCXRoaXMuY29udGV4dCA9IGRvY3VtZW50OwoJCQkJCXRoaXMuc2VsZWN0b3IgPSBzZWxlY3RvcjsKCQkJCQlyZXR1cm4gdGhpczsKCQkJCX0KCgkJCS8vIEhBTkRMRTogJChleHByLCAkKC4uLikpCgkJCX0gZWxzZSBpZiAoICFjb250ZXh0IHx8IGNvbnRleHQuanF1ZXJ5ICkgewoJCQkJcmV0dXJuIChjb250ZXh0IHx8IHJvb3RqUXVlcnkpLmZpbmQoIHNlbGVjdG9yICk7CgoJCQkvLyBIQU5ETEU6ICQoZXhwciwgY29udGV4dCkKCQkJLy8gKHdoaWNoIGlzIGp1c3QgZXF1aXZhbGVudCB0bzogJChjb250ZXh0KS5maW5kKGV4cHIpCgkJCX0gZWxzZSB7CgkJCQlyZXR1cm4gdGhpcy5jb25zdHJ1Y3RvciggY29udGV4dCApLmZpbmQoIHNlbGVjdG9yICk7CgkJCX0KCgkJLy8gSEFORExFOiAkKGZ1bmN0aW9uKQoJCS8vIFNob3J0Y3V0IGZvciBkb2N1bWVudCByZWFkeQoJCX0gZWxzZSBpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCBzZWxlY3RvciApICkgewoJCQlyZXR1cm4gcm9vdGpRdWVyeS5yZWFkeSggc2VsZWN0b3IgKTsKCQl9CgoJCWlmIChzZWxlY3Rvci5zZWxlY3RvciAhPT0gdW5kZWZpbmVkKSB7CgkJCXRoaXMuc2VsZWN0b3IgPSBzZWxlY3Rvci5zZWxlY3RvcjsKCQkJdGhpcy5jb250ZXh0ID0gc2VsZWN0b3IuY29udGV4dDsKCQl9CgoJCXJldHVybiBqUXVlcnkubWFrZUFycmF5KCBzZWxlY3RvciwgdGhpcyApOwoJfSwKCgkvLyBTdGFydCB3aXRoIGFuIGVtcHR5IHNlbGVjdG9yCglzZWxlY3RvcjogIiIsCgoJLy8gVGhlIGN1cnJlbnQgdmVyc2lvbiBvZiBqUXVlcnkgYmVpbmcgdXNlZAoJanF1ZXJ5OiAiMS41LjEiLAoKCS8vIFRoZSBkZWZhdWx0IGxlbmd0aCBvZiBhIGpRdWVyeSBvYmplY3QgaXMgMAoJbGVuZ3RoOiAwLAoKCS8vIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgY29udGFpbmVkIGluIHRoZSBtYXRjaGVkIGVsZW1lbnQgc2V0CglzaXplOiBmdW5jdGlvbigpIHsKCQlyZXR1cm4gdGhpcy5sZW5ndGg7Cgl9LAoKCXRvQXJyYXk6IGZ1bmN0aW9uKCkgewoJCXJldHVybiBzbGljZS5jYWxsKCB0aGlzLCAwICk7Cgl9LAoKCS8vIEdldCB0aGUgTnRoIGVsZW1lbnQgaW4gdGhlIG1hdGNoZWQgZWxlbWVudCBzZXQgT1IKCS8vIEdldCB0aGUgd2hvbGUgbWF0Y2hlZCBlbGVtZW50IHNldCBhcyBhIGNsZWFuIGFycmF5CglnZXQ6IGZ1bmN0aW9uKCBudW0gKSB7CgkJcmV0dXJuIG51bSA9PSBudWxsID8KCgkJCS8vIFJldHVybiBhICdjbGVhbicgYXJyYXkKCQkJdGhpcy50b0FycmF5KCkgOgoKCQkJLy8gUmV0dXJuIGp1c3QgdGhlIG9iamVjdAoJCQkoIG51bSA8IDAgPyB0aGlzWyB0aGlzLmxlbmd0aCArIG51bSBdIDogdGhpc1sgbnVtIF0gKTsKCX0sCgoJLy8gVGFrZSBhbiBhcnJheSBvZiBlbGVtZW50cyBhbmQgcHVzaCBpdCBvbnRvIHRoZSBzdGFjawoJLy8gKHJldHVybmluZyB0aGUgbmV3IG1hdGNoZWQgZWxlbWVudCBzZXQpCglwdXNoU3RhY2s6IGZ1bmN0aW9uKCBlbGVtcywgbmFtZSwgc2VsZWN0b3IgKSB7CgkJLy8gQnVpbGQgYSBuZXcgalF1ZXJ5IG1hdGNoZWQgZWxlbWVudCBzZXQKCQl2YXIgcmV0ID0gdGhpcy5jb25zdHJ1Y3RvcigpOwoKCQlpZiAoIGpRdWVyeS5pc0FycmF5KCBlbGVtcyApICkgewoJCQlwdXNoLmFwcGx5KCByZXQsIGVsZW1zICk7CgoJCX0gZWxzZSB7CgkJCWpRdWVyeS5tZXJnZSggcmV0LCBlbGVtcyApOwoJCX0KCgkJLy8gQWRkIHRoZSBvbGQgb2JqZWN0IG9udG8gdGhlIHN0YWNrIChhcyBhIHJlZmVyZW5jZSkKCQlyZXQucHJldk9iamVjdCA9IHRoaXM7CgoJCXJldC5jb250ZXh0ID0gdGhpcy5jb250ZXh0OwoKCQlpZiAoIG5hbWUgPT09ICJmaW5kIiApIHsKCQkJcmV0LnNlbGVjdG9yID0gdGhpcy5zZWxlY3RvciArICh0aGlzLnNlbGVjdG9yID8gIiAiIDogIiIpICsgc2VsZWN0b3I7CgkJfSBlbHNlIGlmICggbmFtZSApIHsKCQkJcmV0LnNlbGVjdG9yID0gdGhpcy5zZWxlY3RvciArICIuIiArIG5hbWUgKyAiKCIgKyBzZWxlY3RvciArICIpIjsKCQl9CgoJCS8vIFJldHVybiB0aGUgbmV3bHktZm9ybWVkIGVsZW1lbnQgc2V0CgkJcmV0dXJuIHJldDsKCX0sCgoJLy8gRXhlY3V0ZSBhIGNhbGxiYWNrIGZvciBldmVyeSBlbGVtZW50IGluIHRoZSBtYXRjaGVkIHNldC4KCS8vIChZb3UgY2FuIHNlZWQgdGhlIGFyZ3VtZW50cyB3aXRoIGFuIGFycmF5IG9mIGFyZ3MsIGJ1dCB0aGlzIGlzCgkvLyBvbmx5IHVzZWQgaW50ZXJuYWxseS4pCgllYWNoOiBmdW5jdGlvbiggY2FsbGJhY2ssIGFyZ3MgKSB7CgkJcmV0dXJuIGpRdWVyeS5lYWNoKCB0aGlzLCBjYWxsYmFjaywgYXJncyApOwoJfSwKCglyZWFkeTogZnVuY3Rpb24oIGZuICkgewoJCS8vIEF0dGFjaCB0aGUgbGlzdGVuZXJzCgkJalF1ZXJ5LmJpbmRSZWFkeSgpOwoKCQkvLyBBZGQgdGhlIGNhbGxiYWNrCgkJcmVhZHlMaXN0LmRvbmUoIGZuICk7CgoJCXJldHVybiB0aGlzOwoJfSwKCgllcTogZnVuY3Rpb24oIGkgKSB7CgkJcmV0dXJuIGkgPT09IC0xID8KCQkJdGhpcy5zbGljZSggaSApIDoKCQkJdGhpcy5zbGljZSggaSwgK2kgKyAxICk7Cgl9LAoKCWZpcnN0OiBmdW5jdGlvbigpIHsKCQlyZXR1cm4gdGhpcy5lcSggMCApOwoJfSwKCglsYXN0OiBmdW5jdGlvbigpIHsKCQlyZXR1cm4gdGhpcy5lcSggLTEgKTsKCX0sCgoJc2xpY2U6IGZ1bmN0aW9uKCkgewoJCXJldHVybiB0aGlzLnB1c2hTdGFjayggc2xpY2UuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApLAoJCQkic2xpY2UiLCBzbGljZS5jYWxsKGFyZ3VtZW50cykuam9pbigiLCIpICk7Cgl9LAoKCW1hcDogZnVuY3Rpb24oIGNhbGxiYWNrICkgewoJCXJldHVybiB0aGlzLnB1c2hTdGFjayggalF1ZXJ5Lm1hcCh0aGlzLCBmdW5jdGlvbiggZWxlbSwgaSApIHsKCQkJcmV0dXJuIGNhbGxiYWNrLmNhbGwoIGVsZW0sIGksIGVsZW0gKTsKCQl9KSk7Cgl9LAoKCWVuZDogZnVuY3Rpb24oKSB7CgkJcmV0dXJuIHRoaXMucHJldk9iamVjdCB8fCB0aGlzLmNvbnN0cnVjdG9yKG51bGwpOwoJfSwKCgkvLyBGb3IgaW50ZXJuYWwgdXNlIG9ubHkuCgkvLyBCZWhhdmVzIGxpa2UgYW4gQXJyYXkncyBtZXRob2QsIG5vdCBsaWtlIGEgalF1ZXJ5IG1ldGhvZC4KCXB1c2g6IHB1c2gsCglzb3J0OiBbXS5zb3J0LAoJc3BsaWNlOiBbXS5zcGxpY2UKfTsKCi8vIEdpdmUgdGhlIGluaXQgZnVuY3Rpb24gdGhlIGpRdWVyeSBwcm90b3R5cGUgZm9yIGxhdGVyIGluc3RhbnRpYXRpb24KalF1ZXJ5LmZuLmluaXQucHJvdG90eXBlID0galF1ZXJ5LmZuOwoKalF1ZXJ5LmV4dGVuZCA9IGpRdWVyeS5mbi5leHRlbmQgPSBmdW5jdGlvbigpIHsKCXZhciBvcHRpb25zLCBuYW1lLCBzcmMsIGNvcHksIGNvcHlJc0FycmF5LCBjbG9uZSwKCQl0YXJnZXQgPSBhcmd1bWVudHNbMF0gfHwge30sCgkJaSA9IDEsCgkJbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aCwKCQlkZWVwID0gZmFsc2U7CgoJLy8gSGFuZGxlIGEgZGVlcCBjb3B5IHNpdHVhdGlvbgoJaWYgKCB0eXBlb2YgdGFyZ2V0ID09PSAiYm9vbGVhbiIgKSB7CgkJZGVlcCA9IHRhcmdldDsKCQl0YXJnZXQgPSBhcmd1bWVudHNbMV0gfHwge307CgkJLy8gc2tpcCB0aGUgYm9vbGVhbiBhbmQgdGhlIHRhcmdldAoJCWkgPSAyOwoJfQoKCS8vIEhhbmRsZSBjYXNlIHdoZW4gdGFyZ2V0IGlzIGEgc3RyaW5nIG9yIHNvbWV0aGluZyAocG9zc2libGUgaW4gZGVlcCBjb3B5KQoJaWYgKCB0eXBlb2YgdGFyZ2V0ICE9PSAib2JqZWN0IiAmJiAhalF1ZXJ5LmlzRnVuY3Rpb24odGFyZ2V0KSApIHsKCQl0YXJnZXQgPSB7fTsKCX0KCgkvLyBleHRlbmQgalF1ZXJ5IGl0c2VsZiBpZiBvbmx5IG9uZSBhcmd1bWVudCBpcyBwYXNzZWQKCWlmICggbGVuZ3RoID09PSBpICkgewoJCXRhcmdldCA9IHRoaXM7CgkJLS1pOwoJfQoKCWZvciAoIDsgaSA8IGxlbmd0aDsgaSsrICkgewoJCS8vIE9ubHkgZGVhbCB3aXRoIG5vbi1udWxsL3VuZGVmaW5lZCB2YWx1ZXMKCQlpZiAoIChvcHRpb25zID0gYXJndW1lbnRzWyBpIF0pICE9IG51bGwgKSB7CgkJCS8vIEV4dGVuZCB0aGUgYmFzZSBvYmplY3QKCQkJZm9yICggbmFtZSBpbiBvcHRpb25zICkgewoJCQkJc3JjID0gdGFyZ2V0WyBuYW1lIF07CgkJCQljb3B5ID0gb3B0aW9uc1sgbmFtZSBdOwoKCQkJCS8vIFByZXZlbnQgbmV2ZXItZW5kaW5nIGxvb3AKCQkJCWlmICggdGFyZ2V0ID09PSBjb3B5ICkgewoJCQkJCWNvbnRpbnVlOwoJCQkJfQoKCQkJCS8vIFJlY3Vyc2UgaWYgd2UncmUgbWVyZ2luZyBwbGFpbiBvYmplY3RzIG9yIGFycmF5cwoJCQkJaWYgKCBkZWVwICYmIGNvcHkgJiYgKCBqUXVlcnkuaXNQbGFpbk9iamVjdChjb3B5KSB8fCAoY29weUlzQXJyYXkgPSBqUXVlcnkuaXNBcnJheShjb3B5KSkgKSApIHsKCQkJCQlpZiAoIGNvcHlJc0FycmF5ICkgewoJCQkJCQljb3B5SXNBcnJheSA9IGZhbHNlOwoJCQkJCQljbG9uZSA9IHNyYyAmJiBqUXVlcnkuaXNBcnJheShzcmMpID8gc3JjIDogW107CgoJCQkJCX0gZWxzZSB7CgkJCQkJCWNsb25lID0gc3JjICYmIGpRdWVyeS5pc1BsYWluT2JqZWN0KHNyYykgPyBzcmMgOiB7fTsKCQkJCQl9CgoJCQkJCS8vIE5ldmVyIG1vdmUgb3JpZ2luYWwgb2JqZWN0cywgY2xvbmUgdGhlbQoJCQkJCXRhcmdldFsgbmFtZSBdID0galF1ZXJ5LmV4dGVuZCggZGVlcCwgY2xvbmUsIGNvcHkgKTsKCgkJCQkvLyBEb24ndCBicmluZyBpbiB1bmRlZmluZWQgdmFsdWVzCgkJCQl9IGVsc2UgaWYgKCBjb3B5ICE9PSB1bmRlZmluZWQgKSB7CgkJCQkJdGFyZ2V0WyBuYW1lIF0gPSBjb3B5OwoJCQkJfQoJCQl9CgkJfQoJfQoKCS8vIFJldHVybiB0aGUgbW9kaWZpZWQgb2JqZWN0CglyZXR1cm4gdGFyZ2V0Owp9OwoKalF1ZXJ5LmV4dGVuZCh7Cglub0NvbmZsaWN0OiBmdW5jdGlvbiggZGVlcCApIHsKCQl3aW5kb3cuJCA9IF8kOwoKCQlpZiAoIGRlZXAgKSB7CgkJCXdpbmRvdy5qUXVlcnkgPSBfalF1ZXJ5OwoJCX0KCgkJcmV0dXJuIGpRdWVyeTsKCX0sCgoJLy8gSXMgdGhlIERPTSByZWFkeSB0byBiZSB1c2VkPyBTZXQgdG8gdHJ1ZSBvbmNlIGl0IG9jY3Vycy4KCWlzUmVhZHk6IGZhbHNlLAoKCS8vIEEgY291bnRlciB0byB0cmFjayBob3cgbWFueSBpdGVtcyB0byB3YWl0IGZvciBiZWZvcmUKCS8vIHRoZSByZWFkeSBldmVudCBmaXJlcy4gU2VlICM2NzgxCglyZWFkeVdhaXQ6IDEsCgoJLy8gSGFuZGxlIHdoZW4gdGhlIERPTSBpcyByZWFkeQoJcmVhZHk6IGZ1bmN0aW9uKCB3YWl0ICkgewoJCS8vIEEgdGhpcmQtcGFydHkgaXMgcHVzaGluZyB0aGUgcmVhZHkgZXZlbnQgZm9yd2FyZHMKCQlpZiAoIHdhaXQgPT09IHRydWUgKSB7CgkJCWpRdWVyeS5yZWFkeVdhaXQtLTsKCQl9CgoJCS8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBET00gaXMgbm90IGFscmVhZHkgbG9hZGVkCgkJaWYgKCAhalF1ZXJ5LnJlYWR5V2FpdCB8fCAod2FpdCAhPT0gdHJ1ZSAmJiAhalF1ZXJ5LmlzUmVhZHkpICkgewoJCQkvLyBNYWtlIHN1cmUgYm9keSBleGlzdHMsIGF0IGxlYXN0LCBpbiBjYXNlIElFIGdldHMgYSBsaXR0bGUgb3ZlcnplYWxvdXMgKHRpY2tldCAjNTQ0MykuCgkJCWlmICggIWRvY3VtZW50LmJvZHkgKSB7CgkJCQlyZXR1cm4gc2V0VGltZW91dCggalF1ZXJ5LnJlYWR5LCAxICk7CgkJCX0KCgkJCS8vIFJlbWVtYmVyIHRoYXQgdGhlIERPTSBpcyByZWFkeQoJCQlqUXVlcnkuaXNSZWFkeSA9IHRydWU7CgoJCQkvLyBJZiBhIG5vcm1hbCBET00gUmVhZHkgZXZlbnQgZmlyZWQsIGRlY3JlbWVudCwgYW5kIHdhaXQgaWYgbmVlZCBiZQoJCQlpZiAoIHdhaXQgIT09IHRydWUgJiYgLS1qUXVlcnkucmVhZHlXYWl0ID4gMCApIHsKCQkJCXJldHVybjsKCQkJfQoKCQkJLy8gSWYgdGhlcmUgYXJlIGZ1bmN0aW9ucyBib3VuZCwgdG8gZXhlY3V0ZQoJCQlyZWFkeUxpc3QucmVzb2x2ZVdpdGgoIGRvY3VtZW50LCBbIGpRdWVyeSBdICk7CgoJCQkvLyBUcmlnZ2VyIGFueSBib3VuZCByZWFkeSBldmVudHMKCQkJaWYgKCBqUXVlcnkuZm4udHJpZ2dlciApIHsKCQkJCWpRdWVyeSggZG9jdW1lbnQgKS50cmlnZ2VyKCAicmVhZHkiICkudW5iaW5kKCAicmVhZHkiICk7CgkJCX0KCQl9Cgl9LAoKCWJpbmRSZWFkeTogZnVuY3Rpb24oKSB7CgkJaWYgKCByZWFkeUJvdW5kICkgewoJCQlyZXR1cm47CgkJfQoKCQlyZWFkeUJvdW5kID0gdHJ1ZTsKCgkJLy8gQ2F0Y2ggY2FzZXMgd2hlcmUgJChkb2N1bWVudCkucmVhZHkoKSBpcyBjYWxsZWQgYWZ0ZXIgdGhlCgkJLy8gYnJvd3NlciBldmVudCBoYXMgYWxyZWFkeSBvY2N1cnJlZC4KCQlpZiAoIGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICJjb21wbGV0ZSIgKSB7CgkJCS8vIEhhbmRsZSBpdCBhc3luY2hyb25vdXNseSB0byBhbGxvdyBzY3JpcHRzIHRoZSBvcHBvcnR1bml0eSB0byBkZWxheSByZWFkeQoJCQlyZXR1cm4gc2V0VGltZW91dCggalF1ZXJ5LnJlYWR5LCAxICk7CgkJfQoKCQkvLyBNb3ppbGxhLCBPcGVyYSBhbmQgd2Via2l0IG5pZ2h0bGllcyBjdXJyZW50bHkgc3VwcG9ydCB0aGlzIGV2ZW50CgkJaWYgKCBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyICkgewoJCQkvLyBVc2UgdGhlIGhhbmR5IGV2ZW50IGNhbGxiYWNrCgkJCWRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoICJET01Db250ZW50TG9hZGVkIiwgRE9NQ29udGVudExvYWRlZCwgZmFsc2UgKTsKCgkJCS8vIEEgZmFsbGJhY2sgdG8gd2luZG93Lm9ubG9hZCwgdGhhdCB3aWxsIGFsd2F5cyB3b3JrCgkJCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCAibG9hZCIsIGpRdWVyeS5yZWFkeSwgZmFsc2UgKTsKCgkJLy8gSWYgSUUgZXZlbnQgbW9kZWwgaXMgdXNlZAoJCX0gZWxzZSBpZiAoIGRvY3VtZW50LmF0dGFjaEV2ZW50ICkgewoJCQkvLyBlbnN1cmUgZmlyaW5nIGJlZm9yZSBvbmxvYWQsCgkJCS8vIG1heWJlIGxhdGUgYnV0IHNhZmUgYWxzbyBmb3IgaWZyYW1lcwoJCQlkb2N1bWVudC5hdHRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIiwgRE9NQ29udGVudExvYWRlZCk7CgoJCQkvLyBBIGZhbGxiYWNrIHRvIHdpbmRvdy5vbmxvYWQsIHRoYXQgd2lsbCBhbHdheXMgd29yawoJCQl3aW5kb3cuYXR0YWNoRXZlbnQoICJvbmxvYWQiLCBqUXVlcnkucmVhZHkgKTsKCgkJCS8vIElmIElFIGFuZCBub3QgYSBmcmFtZQoJCQkvLyBjb250aW51YWxseSBjaGVjayB0byBzZWUgaWYgdGhlIGRvY3VtZW50IGlzIHJlYWR5CgkJCXZhciB0b3BsZXZlbCA9IGZhbHNlOwoKCQkJdHJ5IHsKCQkJCXRvcGxldmVsID0gd2luZG93LmZyYW1lRWxlbWVudCA9PSBudWxsOwoJCQl9IGNhdGNoKGUpIHt9CgoJCQlpZiAoIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5kb1Njcm9sbCAmJiB0b3BsZXZlbCApIHsKCQkJCWRvU2Nyb2xsQ2hlY2soKTsKCQkJfQoJCX0KCX0sCgoJLy8gU2VlIHRlc3QvdW5pdC9jb3JlLmpzIGZvciBkZXRhaWxzIGNvbmNlcm5pbmcgaXNGdW5jdGlvbi4KCS8vIFNpbmNlIHZlcnNpb24gMS4zLCBET00gbWV0aG9kcyBhbmQgZnVuY3Rpb25zIGxpa2UgYWxlcnQKCS8vIGFyZW4ndCBzdXBwb3J0ZWQuIFRoZXkgcmV0dXJuIGZhbHNlIG9uIElFICgjMjk2OCkuCglpc0Z1bmN0aW9uOiBmdW5jdGlvbiggb2JqICkgewoJCXJldHVybiBqUXVlcnkudHlwZShvYmopID09PSAiZnVuY3Rpb24iOwoJfSwKCglpc0FycmF5OiBBcnJheS5pc0FycmF5IHx8IGZ1bmN0aW9uKCBvYmogKSB7CgkJcmV0dXJuIGpRdWVyeS50eXBlKG9iaikgPT09ICJhcnJheSI7Cgl9LAoKCS8vIEEgY3J1ZGUgd2F5IG9mIGRldGVybWluaW5nIGlmIGFuIG9iamVjdCBpcyBhIHdpbmRvdwoJaXNXaW5kb3c6IGZ1bmN0aW9uKCBvYmogKSB7CgkJcmV0dXJuIG9iaiAmJiB0eXBlb2Ygb2JqID09PSAib2JqZWN0IiAmJiAic2V0SW50ZXJ2YWwiIGluIG9iajsKCX0sCgoJaXNOYU46IGZ1bmN0aW9uKCBvYmogKSB7CgkJcmV0dXJuIG9iaiA9PSBudWxsIHx8ICFyZGlnaXQudGVzdCggb2JqICkgfHwgaXNOYU4oIG9iaiApOwoJfSwKCgl0eXBlOiBmdW5jdGlvbiggb2JqICkgewoJCXJldHVybiBvYmogPT0gbnVsbCA/CgkJCVN0cmluZyggb2JqICkgOgoJCQljbGFzczJ0eXBlWyB0b1N0cmluZy5jYWxsKG9iaikgXSB8fCAib2JqZWN0IjsKCX0sCgoJaXNQbGFpbk9iamVjdDogZnVuY3Rpb24oIG9iaiApIHsKCQkvLyBNdXN0IGJlIGFuIE9iamVjdC4KCQkvLyBCZWNhdXNlIG9mIElFLCB3ZSBhbHNvIGhhdmUgdG8gY2hlY2sgdGhlIHByZXNlbmNlIG9mIHRoZSBjb25zdHJ1Y3RvciBwcm9wZXJ0eS4KCQkvLyBNYWtlIHN1cmUgdGhhdCBET00gbm9kZXMgYW5kIHdpbmRvdyBvYmplY3RzIGRvbid0IHBhc3MgdGhyb3VnaCwgYXMgd2VsbAoJCWlmICggIW9iaiB8fCBqUXVlcnkudHlwZShvYmopICE9PSAib2JqZWN0IiB8fCBvYmoubm9kZVR5cGUgfHwgalF1ZXJ5LmlzV2luZG93KCBvYmogKSApIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCgkJLy8gTm90IG93biBjb25zdHJ1Y3RvciBwcm9wZXJ0eSBtdXN0IGJlIE9iamVjdAoJCWlmICggb2JqLmNvbnN0cnVjdG9yICYmCgkJCSFoYXNPd24uY2FsbChvYmosICJjb25zdHJ1Y3RvciIpICYmCgkJCSFoYXNPd24uY2FsbChvYmouY29uc3RydWN0b3IucHJvdG90eXBlLCAiaXNQcm90b3R5cGVPZiIpICkgewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoKCQkvLyBPd24gcHJvcGVydGllcyBhcmUgZW51bWVyYXRlZCBmaXJzdGx5LCBzbyB0byBzcGVlZCB1cCwKCQkvLyBpZiBsYXN0IG9uZSBpcyBvd24sIHRoZW4gYWxsIHByb3BlcnRpZXMgYXJlIG93bi4KCgkJdmFyIGtleTsKCQlmb3IgKCBrZXkgaW4gb2JqICkge30KCgkJcmV0dXJuIGtleSA9PT0gdW5kZWZpbmVkIHx8IGhhc093bi5jYWxsKCBvYmosIGtleSApOwoJfSwKCglpc0VtcHR5T2JqZWN0OiBmdW5jdGlvbiggb2JqICkgewoJCWZvciAoIHZhciBuYW1lIGluIG9iaiApIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQlyZXR1cm4gdHJ1ZTsKCX0sCgoJZXJyb3I6IGZ1bmN0aW9uKCBtc2cgKSB7CgkJdGhyb3cgbXNnOwoJfSwKCglwYXJzZUpTT046IGZ1bmN0aW9uKCBkYXRhICkgewoJCWlmICggdHlwZW9mIGRhdGEgIT09ICJzdHJpbmciIHx8ICFkYXRhICkgewoJCQlyZXR1cm4gbnVsbDsKCQl9CgoJCS8vIE1ha2Ugc3VyZSBsZWFkaW5nL3RyYWlsaW5nIHdoaXRlc3BhY2UgaXMgcmVtb3ZlZCAoSUUgY2FuJ3QgaGFuZGxlIGl0KQoJCWRhdGEgPSBqUXVlcnkudHJpbSggZGF0YSApOwoKCQkvLyBNYWtlIHN1cmUgdGhlIGluY29taW5nIGRhdGEgaXMgYWN0dWFsIEpTT04KCQkvLyBMb2dpYyBib3Jyb3dlZCBmcm9tIGh0dHA6Ly9qc29uLm9yZy9qc29uMi5qcwoJCWlmICggcnZhbGlkY2hhcnMudGVzdChkYXRhLnJlcGxhY2UocnZhbGlkZXNjYXBlLCAiQCIpCgkJCS5yZXBsYWNlKHJ2YWxpZHRva2VucywgIl0iKQoJCQkucmVwbGFjZShydmFsaWRicmFjZXMsICIiKSkgKSB7CgoJCQkvLyBUcnkgdG8gdXNlIHRoZSBuYXRpdmUgSlNPTiBwYXJzZXIgZmlyc3QKCQkJcmV0dXJuIHdpbmRvdy5KU09OICYmIHdpbmRvdy5KU09OLnBhcnNlID8KCQkJCXdpbmRvdy5KU09OLnBhcnNlKCBkYXRhICkgOgoJCQkJKG5ldyBGdW5jdGlvbigicmV0dXJuICIgKyBkYXRhKSkoKTsKCgkJfSBlbHNlIHsKCQkJalF1ZXJ5LmVycm9yKCAiSW52YWxpZCBKU09OOiAiICsgZGF0YSApOwoJCX0KCX0sCgoJLy8gQ3Jvc3MtYnJvd3NlciB4bWwgcGFyc2luZwoJLy8gKHhtbCAmIHRtcCB1c2VkIGludGVybmFsbHkpCglwYXJzZVhNTDogZnVuY3Rpb24oIGRhdGEgLCB4bWwgLCB0bXAgKSB7CgoJCWlmICggd2luZG93LkRPTVBhcnNlciApIHsgLy8gU3RhbmRhcmQKCQkJdG1wID0gbmV3IERPTVBhcnNlcigpOwoJCQl4bWwgPSB0bXAucGFyc2VGcm9tU3RyaW5nKCBkYXRhICwgInRleHQveG1sIiApOwoJCX0gZWxzZSB7IC8vIElFCgkJCXhtbCA9IG5ldyBBY3RpdmVYT2JqZWN0KCAiTWljcm9zb2Z0LlhNTERPTSIgKTsKCQkJeG1sLmFzeW5jID0gImZhbHNlIjsKCQkJeG1sLmxvYWRYTUwoIGRhdGEgKTsKCQl9CgoJCXRtcCA9IHhtbC5kb2N1bWVudEVsZW1lbnQ7CgoJCWlmICggISB0bXAgfHwgISB0bXAubm9kZU5hbWUgfHwgdG1wLm5vZGVOYW1lID09PSAicGFyc2VyZXJyb3IiICkgewoJCQlqUXVlcnkuZXJyb3IoICJJbnZhbGlkIFhNTDogIiArIGRhdGEgKTsKCQl9CgoJCXJldHVybiB4bWw7Cgl9LAoKCW5vb3A6IGZ1bmN0aW9uKCkge30sCgoJLy8gRXZhbHVsYXRlcyBhIHNjcmlwdCBpbiBhIGdsb2JhbCBjb250ZXh0CglnbG9iYWxFdmFsOiBmdW5jdGlvbiggZGF0YSApIHsKCQlpZiAoIGRhdGEgJiYgcm5vdHdoaXRlLnRlc3QoZGF0YSkgKSB7CgkJCS8vIEluc3BpcmVkIGJ5IGNvZGUgYnkgQW5kcmVhIEdpYW1tYXJjaGkKCQkJLy8gaHR0cDovL3dlYnJlZmxlY3Rpb24uYmxvZ3Nwb3QuY29tLzIwMDcvMDgvZ2xvYmFsLXNjb3BlLWV2YWx1YXRpb24tYW5kLWRvbS5odG1sCgkJCXZhciBoZWFkID0gZG9jdW1lbnQuaGVhZCB8fCBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSggImhlYWQiIClbMF0gfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LAoJCQkJc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggInNjcmlwdCIgKTsKCgkJCWlmICggalF1ZXJ5LnN1cHBvcnQuc2NyaXB0RXZhbCgpICkgewoJCQkJc2NyaXB0LmFwcGVuZENoaWxkKCBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSggZGF0YSApICk7CgkJCX0gZWxzZSB7CgkJCQlzY3JpcHQudGV4dCA9IGRhdGE7CgkJCX0KCgkJCS8vIFVzZSBpbnNlcnRCZWZvcmUgaW5zdGVhZCBvZiBhcHBlbmRDaGlsZCB0byBjaXJjdW12ZW50IGFuIElFNiBidWcuCgkJCS8vIFRoaXMgYXJpc2VzIHdoZW4gYSBiYXNlIG5vZGUgaXMgdXNlZCAoIzI3MDkpLgoJCQloZWFkLmluc2VydEJlZm9yZSggc2NyaXB0LCBoZWFkLmZpcnN0Q2hpbGQgKTsKCQkJaGVhZC5yZW1vdmVDaGlsZCggc2NyaXB0ICk7CgkJfQoJfSwKCglub2RlTmFtZTogZnVuY3Rpb24oIGVsZW0sIG5hbWUgKSB7CgkJcmV0dXJuIGVsZW0ubm9kZU5hbWUgJiYgZWxlbS5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpID09PSBuYW1lLnRvVXBwZXJDYXNlKCk7Cgl9LAoKCS8vIGFyZ3MgaXMgZm9yIGludGVybmFsIHVzYWdlIG9ubHkKCWVhY2g6IGZ1bmN0aW9uKCBvYmplY3QsIGNhbGxiYWNrLCBhcmdzICkgewoJCXZhciBuYW1lLCBpID0gMCwKCQkJbGVuZ3RoID0gb2JqZWN0Lmxlbmd0aCwKCQkJaXNPYmogPSBsZW5ndGggPT09IHVuZGVmaW5lZCB8fCBqUXVlcnkuaXNGdW5jdGlvbihvYmplY3QpOwoKCQlpZiAoIGFyZ3MgKSB7CgkJCWlmICggaXNPYmogKSB7CgkJCQlmb3IgKCBuYW1lIGluIG9iamVjdCApIHsKCQkJCQlpZiAoIGNhbGxiYWNrLmFwcGx5KCBvYmplY3RbIG5hbWUgXSwgYXJncyApID09PSBmYWxzZSApIHsKCQkJCQkJYnJlYWs7CgkJCQkJfQoJCQkJfQoJCQl9IGVsc2UgewoJCQkJZm9yICggOyBpIDwgbGVuZ3RoOyApIHsKCQkJCQlpZiAoIGNhbGxiYWNrLmFwcGx5KCBvYmplY3RbIGkrKyBdLCBhcmdzICkgPT09IGZhbHNlICkgewoJCQkJCQlicmVhazsKCQkJCQl9CgkJCQl9CgkJCX0KCgkJLy8gQSBzcGVjaWFsLCBmYXN0LCBjYXNlIGZvciB0aGUgbW9zdCBjb21tb24gdXNlIG9mIGVhY2gKCQl9IGVsc2UgewoJCQlpZiAoIGlzT2JqICkgewoJCQkJZm9yICggbmFtZSBpbiBvYmplY3QgKSB7CgkJCQkJaWYgKCBjYWxsYmFjay5jYWxsKCBvYmplY3RbIG5hbWUgXSwgbmFtZSwgb2JqZWN0WyBuYW1lIF0gKSA9PT0gZmFsc2UgKSB7CgkJCQkJCWJyZWFrOwoJCQkJCX0KCQkJCX0KCQkJfSBlbHNlIHsKCQkJCWZvciAoIHZhciB2YWx1ZSA9IG9iamVjdFswXTsKCQkJCQlpIDwgbGVuZ3RoICYmIGNhbGxiYWNrLmNhbGwoIHZhbHVlLCBpLCB2YWx1ZSApICE9PSBmYWxzZTsgdmFsdWUgPSBvYmplY3RbKytpXSApIHt9CgkJCX0KCQl9CgoJCXJldHVybiBvYmplY3Q7Cgl9LAoKCS8vIFVzZSBuYXRpdmUgU3RyaW5nLnRyaW0gZnVuY3Rpb24gd2hlcmV2ZXIgcG9zc2libGUKCXRyaW06IHRyaW0gPwoJCWZ1bmN0aW9uKCB0ZXh0ICkgewoJCQlyZXR1cm4gdGV4dCA9PSBudWxsID8KCQkJCSIiIDoKCQkJCXRyaW0uY2FsbCggdGV4dCApOwoJCX0gOgoKCQkvLyBPdGhlcndpc2UgdXNlIG91ciBvd24gdHJpbW1pbmcgZnVuY3Rpb25hbGl0eQoJCWZ1bmN0aW9uKCB0ZXh0ICkgewoJCQlyZXR1cm4gdGV4dCA9PSBudWxsID8KCQkJCSIiIDoKCQkJCXRleHQudG9TdHJpbmcoKS5yZXBsYWNlKCB0cmltTGVmdCwgIiIgKS5yZXBsYWNlKCB0cmltUmlnaHQsICIiICk7CgkJfSwKCgkvLyByZXN1bHRzIGlzIGZvciBpbnRlcm5hbCB1c2FnZSBvbmx5CgltYWtlQXJyYXk6IGZ1bmN0aW9uKCBhcnJheSwgcmVzdWx0cyApIHsKCQl2YXIgcmV0ID0gcmVzdWx0cyB8fCBbXTsKCgkJaWYgKCBhcnJheSAhPSBudWxsICkgewoJCQkvLyBUaGUgd2luZG93LCBzdHJpbmdzIChhbmQgZnVuY3Rpb25zKSBhbHNvIGhhdmUgJ2xlbmd0aCcKCQkJLy8gVGhlIGV4dHJhIHR5cGVvZiBmdW5jdGlvbiBjaGVjayBpcyB0byBwcmV2ZW50IGNyYXNoZXMKCQkJLy8gaW4gU2FmYXJpIDIgKFNlZTogIzMwMzkpCgkJCS8vIFR3ZWFrZWQgbG9naWMgc2xpZ2h0bHkgdG8gaGFuZGxlIEJsYWNrYmVycnkgNC43IFJlZ0V4cCBpc3N1ZXMgIzY5MzAKCQkJdmFyIHR5cGUgPSBqUXVlcnkudHlwZShhcnJheSk7CgoJCQlpZiAoIGFycmF5Lmxlbmd0aCA9PSBudWxsIHx8IHR5cGUgPT09ICJzdHJpbmciIHx8IHR5cGUgPT09ICJmdW5jdGlvbiIgfHwgdHlwZSA9PT0gInJlZ2V4cCIgfHwgalF1ZXJ5LmlzV2luZG93KCBhcnJheSApICkgewoJCQkJcHVzaC5jYWxsKCByZXQsIGFycmF5ICk7CgkJCX0gZWxzZSB7CgkJCQlqUXVlcnkubWVyZ2UoIHJldCwgYXJyYXkgKTsKCQkJfQoJCX0KCgkJcmV0dXJuIHJldDsKCX0sCgoJaW5BcnJheTogZnVuY3Rpb24oIGVsZW0sIGFycmF5ICkgewoJCWlmICggYXJyYXkuaW5kZXhPZiApIHsKCQkJcmV0dXJuIGFycmF5LmluZGV4T2YoIGVsZW0gKTsKCQl9CgoJCWZvciAoIHZhciBpID0gMCwgbGVuZ3RoID0gYXJyYXkubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKysgKSB7CgkJCWlmICggYXJyYXlbIGkgXSA9PT0gZWxlbSApIHsKCQkJCXJldHVybiBpOwoJCQl9CgkJfQoKCQlyZXR1cm4gLTE7Cgl9LAoKCW1lcmdlOiBmdW5jdGlvbiggZmlyc3QsIHNlY29uZCApIHsKCQl2YXIgaSA9IGZpcnN0Lmxlbmd0aCwKCQkJaiA9IDA7CgoJCWlmICggdHlwZW9mIHNlY29uZC5sZW5ndGggPT09ICJudW1iZXIiICkgewoJCQlmb3IgKCB2YXIgbCA9IHNlY29uZC5sZW5ndGg7IGogPCBsOyBqKysgKSB7CgkJCQlmaXJzdFsgaSsrIF0gPSBzZWNvbmRbIGogXTsKCQkJfQoKCQl9IGVsc2UgewoJCQl3aGlsZSAoIHNlY29uZFtqXSAhPT0gdW5kZWZpbmVkICkgewoJCQkJZmlyc3RbIGkrKyBdID0gc2Vjb25kWyBqKysgXTsKCQkJfQoJCX0KCgkJZmlyc3QubGVuZ3RoID0gaTsKCgkJcmV0dXJuIGZpcnN0OwoJfSwKCglncmVwOiBmdW5jdGlvbiggZWxlbXMsIGNhbGxiYWNrLCBpbnYgKSB7CgkJdmFyIHJldCA9IFtdLCByZXRWYWw7CgkJaW52ID0gISFpbnY7CgoJCS8vIEdvIHRocm91Z2ggdGhlIGFycmF5LCBvbmx5IHNhdmluZyB0aGUgaXRlbXMKCQkvLyB0aGF0IHBhc3MgdGhlIHZhbGlkYXRvciBmdW5jdGlvbgoJCWZvciAoIHZhciBpID0gMCwgbGVuZ3RoID0gZWxlbXMubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKysgKSB7CgkJCXJldFZhbCA9ICEhY2FsbGJhY2soIGVsZW1zWyBpIF0sIGkgKTsKCQkJaWYgKCBpbnYgIT09IHJldFZhbCApIHsKCQkJCXJldC5wdXNoKCBlbGVtc1sgaSBdICk7CgkJCX0KCQl9CgoJCXJldHVybiByZXQ7Cgl9LAoKCS8vIGFyZyBpcyBmb3IgaW50ZXJuYWwgdXNhZ2Ugb25seQoJbWFwOiBmdW5jdGlvbiggZWxlbXMsIGNhbGxiYWNrLCBhcmcgKSB7CgkJdmFyIHJldCA9IFtdLCB2YWx1ZTsKCgkJLy8gR28gdGhyb3VnaCB0aGUgYXJyYXksIHRyYW5zbGF0aW5nIGVhY2ggb2YgdGhlIGl0ZW1zIHRvIHRoZWlyCgkJLy8gbmV3IHZhbHVlIChvciB2YWx1ZXMpLgoJCWZvciAoIHZhciBpID0gMCwgbGVuZ3RoID0gZWxlbXMubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKysgKSB7CgkJCXZhbHVlID0gY2FsbGJhY2soIGVsZW1zWyBpIF0sIGksIGFyZyApOwoKCQkJaWYgKCB2YWx1ZSAhPSBudWxsICkgewoJCQkJcmV0WyByZXQubGVuZ3RoIF0gPSB2YWx1ZTsKCQkJfQoJCX0KCgkJLy8gRmxhdHRlbiBhbnkgbmVzdGVkIGFycmF5cwoJCXJldHVybiByZXQuY29uY2F0LmFwcGx5KCBbXSwgcmV0ICk7Cgl9LAoKCS8vIEEgZ2xvYmFsIEdVSUQgY291bnRlciBmb3Igb2JqZWN0cwoJZ3VpZDogMSwKCglwcm94eTogZnVuY3Rpb24oIGZuLCBwcm94eSwgdGhpc09iamVjdCApIHsKCQlpZiAoIGFyZ3VtZW50cy5sZW5ndGggPT09IDIgKSB7CgkJCWlmICggdHlwZW9mIHByb3h5ID09PSAic3RyaW5nIiApIHsKCQkJCXRoaXNPYmplY3QgPSBmbjsKCQkJCWZuID0gdGhpc09iamVjdFsgcHJveHkgXTsKCQkJCXByb3h5ID0gdW5kZWZpbmVkOwoKCQkJfSBlbHNlIGlmICggcHJveHkgJiYgIWpRdWVyeS5pc0Z1bmN0aW9uKCBwcm94eSApICkgewoJCQkJdGhpc09iamVjdCA9IHByb3h5OwoJCQkJcHJveHkgPSB1bmRlZmluZWQ7CgkJCX0KCQl9CgoJCWlmICggIXByb3h5ICYmIGZuICkgewoJCQlwcm94eSA9IGZ1bmN0aW9uKCkgewoJCQkJcmV0dXJuIGZuLmFwcGx5KCB0aGlzT2JqZWN0IHx8IHRoaXMsIGFyZ3VtZW50cyApOwoJCQl9OwoJCX0KCgkJLy8gU2V0IHRoZSBndWlkIG9mIHVuaXF1ZSBoYW5kbGVyIHRvIHRoZSBzYW1lIG9mIG9yaWdpbmFsIGhhbmRsZXIsIHNvIGl0IGNhbiBiZSByZW1vdmVkCgkJaWYgKCBmbiApIHsKCQkJcHJveHkuZ3VpZCA9IGZuLmd1aWQgPSBmbi5ndWlkIHx8IHByb3h5Lmd1aWQgfHwgalF1ZXJ5Lmd1aWQrKzsKCQl9CgoJCS8vIFNvIHByb3h5IGNhbiBiZSBkZWNsYXJlZCBhcyBhbiBhcmd1bWVudAoJCXJldHVybiBwcm94eTsKCX0sCgoJLy8gTXV0aWZ1bmN0aW9uYWwgbWV0aG9kIHRvIGdldCBhbmQgc2V0IHZhbHVlcyB0byBhIGNvbGxlY3Rpb24KCS8vIFRoZSB2YWx1ZS9zIGNhbiBiZSBvcHRpb25hbGx5IGJ5IGV4ZWN1dGVkIGlmIGl0cyBhIGZ1bmN0aW9uCglhY2Nlc3M6IGZ1bmN0aW9uKCBlbGVtcywga2V5LCB2YWx1ZSwgZXhlYywgZm4sIHBhc3MgKSB7CgkJdmFyIGxlbmd0aCA9IGVsZW1zLmxlbmd0aDsKCgkJLy8gU2V0dGluZyBtYW55IGF0dHJpYnV0ZXMKCQlpZiAoIHR5cGVvZiBrZXkgPT09ICJvYmplY3QiICkgewoJCQlmb3IgKCB2YXIgayBpbiBrZXkgKSB7CgkJCQlqUXVlcnkuYWNjZXNzKCBlbGVtcywgaywga2V5W2tdLCBleGVjLCBmbiwgdmFsdWUgKTsKCQkJfQoJCQlyZXR1cm4gZWxlbXM7CgkJfQoKCQkvLyBTZXR0aW5nIG9uZSBhdHRyaWJ1dGUKCQlpZiAoIHZhbHVlICE9PSB1bmRlZmluZWQgKSB7CgkJCS8vIE9wdGlvbmFsbHksIGZ1bmN0aW9uIHZhbHVlcyBnZXQgZXhlY3V0ZWQgaWYgZXhlYyBpcyB0cnVlCgkJCWV4ZWMgPSAhcGFzcyAmJiBleGVjICYmIGpRdWVyeS5pc0Z1bmN0aW9uKHZhbHVlKTsKCgkJCWZvciAoIHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrICkgewoJCQkJZm4oIGVsZW1zW2ldLCBrZXksIGV4ZWMgPyB2YWx1ZS5jYWxsKCBlbGVtc1tpXSwgaSwgZm4oIGVsZW1zW2ldLCBrZXkgKSApIDogdmFsdWUsIHBhc3MgKTsKCQkJfQoKCQkJcmV0dXJuIGVsZW1zOwoJCX0KCgkJLy8gR2V0dGluZyBhbiBhdHRyaWJ1dGUKCQlyZXR1cm4gbGVuZ3RoID8gZm4oIGVsZW1zWzBdLCBrZXkgKSA6IHVuZGVmaW5lZDsKCX0sCgoJbm93OiBmdW5jdGlvbigpIHsKCQlyZXR1cm4gKG5ldyBEYXRlKCkpLmdldFRpbWUoKTsKCX0sCgoJLy8gQ3JlYXRlIGEgc2ltcGxlIGRlZmVycmVkIChvbmUgY2FsbGJhY2tzIGxpc3QpCglfRGVmZXJyZWQ6IGZ1bmN0aW9uKCkgewoJCXZhciAvLyBjYWxsYmFja3MgbGlzdAoJCQljYWxsYmFja3MgPSBbXSwKCQkJLy8gc3RvcmVkIFsgY29udGV4dCAsIGFyZ3MgXQoJCQlmaXJlZCwKCQkJLy8gdG8gYXZvaWQgZmlyaW5nIHdoZW4gYWxyZWFkeSBkb2luZyBzbwoJCQlmaXJpbmcsCgkJCS8vIGZsYWcgdG8ga25vdyBpZiB0aGUgZGVmZXJyZWQgaGFzIGJlZW4gY2FuY2VsbGVkCgkJCWNhbmNlbGxlZCwKCQkJLy8gdGhlIGRlZmVycmVkIGl0c2VsZgoJCQlkZWZlcnJlZCAgPSB7CgoJCQkJLy8gZG9uZSggZjEsIGYyLCAuLi4pCgkJCQlkb25lOiBmdW5jdGlvbigpIHsKCQkJCQlpZiAoICFjYW5jZWxsZWQgKSB7CgkJCQkJCXZhciBhcmdzID0gYXJndW1lbnRzLAoJCQkJCQkJaSwKCQkJCQkJCWxlbmd0aCwKCQkJCQkJCWVsZW0sCgkJCQkJCQl0eXBlLAoJCQkJCQkJX2ZpcmVkOwoJCQkJCQlpZiAoIGZpcmVkICkgewoJCQkJCQkJX2ZpcmVkID0gZmlyZWQ7CgkJCQkJCQlmaXJlZCA9IDA7CgkJCQkJCX0KCQkJCQkJZm9yICggaSA9IDAsIGxlbmd0aCA9IGFyZ3MubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKysgKSB7CgkJCQkJCQllbGVtID0gYXJnc1sgaSBdOwoJCQkJCQkJdHlwZSA9IGpRdWVyeS50eXBlKCBlbGVtICk7CgkJCQkJCQlpZiAoIHR5cGUgPT09ICJhcnJheSIgKSB7CgkJCQkJCQkJZGVmZXJyZWQuZG9uZS5hcHBseSggZGVmZXJyZWQsIGVsZW0gKTsKCQkJCQkJCX0gZWxzZSBpZiAoIHR5cGUgPT09ICJmdW5jdGlvbiIgKSB7CgkJCQkJCQkJY2FsbGJhY2tzLnB1c2goIGVsZW0gKTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCQlpZiAoIF9maXJlZCApIHsKCQkJCQkJCWRlZmVycmVkLnJlc29sdmVXaXRoKCBfZmlyZWRbIDAgXSwgX2ZpcmVkWyAxIF0gKTsKCQkJCQkJfQoJCQkJCX0KCQkJCQlyZXR1cm4gdGhpczsKCQkJCX0sCgoJCQkJLy8gcmVzb2x2ZSB3aXRoIGdpdmVuIGNvbnRleHQgYW5kIGFyZ3MKCQkJCXJlc29sdmVXaXRoOiBmdW5jdGlvbiggY29udGV4dCwgYXJncyApIHsKCQkJCQlpZiAoICFjYW5jZWxsZWQgJiYgIWZpcmVkICYmICFmaXJpbmcgKSB7CgkJCQkJCWZpcmluZyA9IDE7CgkJCQkJCXRyeSB7CgkJCQkJCQl3aGlsZSggY2FsbGJhY2tzWyAwIF0gKSB7CgkJCQkJCQkJY2FsbGJhY2tzLnNoaWZ0KCkuYXBwbHkoIGNvbnRleHQsIGFyZ3MgKTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCQkvLyBXZSBoYXZlIHRvIGFkZCBhIGNhdGNoIGJsb2NrIGZvcgoJCQkJCQkvLyBJRSBwcmlvciB0byA4IG9yIGVsc2UgdGhlIGZpbmFsbHkKCQkJCQkJLy8gYmxvY2sgd2lsbCBuZXZlciBnZXQgZXhlY3V0ZWQKCQkJCQkJY2F0Y2ggKGUpIHsKCQkJCQkJCXRocm93IGU7CgkJCQkJCX0KCQkJCQkJZmluYWxseSB7CgkJCQkJCQlmaXJlZCA9IFsgY29udGV4dCwgYXJncyBdOwoJCQkJCQkJZmlyaW5nID0gMDsKCQkJCQkJfQoJCQkJCX0KCQkJCQlyZXR1cm4gdGhpczsKCQkJCX0sCgoJCQkJLy8gcmVzb2x2ZSB3aXRoIHRoaXMgYXMgY29udGV4dCBhbmQgZ2l2ZW4gYXJndW1lbnRzCgkJCQlyZXNvbHZlOiBmdW5jdGlvbigpIHsKCQkJCQlkZWZlcnJlZC5yZXNvbHZlV2l0aCggalF1ZXJ5LmlzRnVuY3Rpb24oIHRoaXMucHJvbWlzZSApID8gdGhpcy5wcm9taXNlKCkgOiB0aGlzLCBhcmd1bWVudHMgKTsKCQkJCQlyZXR1cm4gdGhpczsKCQkJCX0sCgoJCQkJLy8gSGFzIHRoaXMgZGVmZXJyZWQgYmVlbiByZXNvbHZlZD8KCQkJCWlzUmVzb2x2ZWQ6IGZ1bmN0aW9uKCkgewoJCQkJCXJldHVybiAhISggZmlyaW5nIHx8IGZpcmVkICk7CgkJCQl9LAoKCQkJCS8vIENhbmNlbAoJCQkJY2FuY2VsOiBmdW5jdGlvbigpIHsKCQkJCQljYW5jZWxsZWQgPSAxOwoJCQkJCWNhbGxiYWNrcyA9IFtdOwoJCQkJCXJldHVybiB0aGlzOwoJCQkJfQoJCQl9OwoKCQlyZXR1cm4gZGVmZXJyZWQ7Cgl9LAoKCS8vIEZ1bGwgZmxlZGdlZCBkZWZlcnJlZCAodHdvIGNhbGxiYWNrcyBsaXN0KQoJRGVmZXJyZWQ6IGZ1bmN0aW9uKCBmdW5jICkgewoJCXZhciBkZWZlcnJlZCA9IGpRdWVyeS5fRGVmZXJyZWQoKSwKCQkJZmFpbERlZmVycmVkID0galF1ZXJ5Ll9EZWZlcnJlZCgpLAoJCQlwcm9taXNlOwoJCS8vIEFkZCBlcnJvckRlZmVycmVkIG1ldGhvZHMsIHRoZW4gYW5kIHByb21pc2UKCQlqUXVlcnkuZXh0ZW5kKCBkZWZlcnJlZCwgewoJCQl0aGVuOiBmdW5jdGlvbiggZG9uZUNhbGxiYWNrcywgZmFpbENhbGxiYWNrcyApIHsKCQkJCWRlZmVycmVkLmRvbmUoIGRvbmVDYWxsYmFja3MgKS5mYWlsKCBmYWlsQ2FsbGJhY2tzICk7CgkJCQlyZXR1cm4gdGhpczsKCQkJfSwKCQkJZmFpbDogZmFpbERlZmVycmVkLmRvbmUsCgkJCXJlamVjdFdpdGg6IGZhaWxEZWZlcnJlZC5yZXNvbHZlV2l0aCwKCQkJcmVqZWN0OiBmYWlsRGVmZXJyZWQucmVzb2x2ZSwKCQkJaXNSZWplY3RlZDogZmFpbERlZmVycmVkLmlzUmVzb2x2ZWQsCgkJCS8vIEdldCBhIHByb21pc2UgZm9yIHRoaXMgZGVmZXJyZWQKCQkJLy8gSWYgb2JqIGlzIHByb3ZpZGVkLCB0aGUgcHJvbWlzZSBhc3BlY3QgaXMgYWRkZWQgdG8gdGhlIG9iamVjdAoJCQlwcm9taXNlOiBmdW5jdGlvbiggb2JqICkgewoJCQkJaWYgKCBvYmogPT0gbnVsbCApIHsKCQkJCQlpZiAoIHByb21pc2UgKSB7CgkJCQkJCXJldHVybiBwcm9taXNlOwoJCQkJCX0KCQkJCQlwcm9taXNlID0gb2JqID0ge307CgkJCQl9CgkJCQl2YXIgaSA9IHByb21pc2VNZXRob2RzLmxlbmd0aDsKCQkJCXdoaWxlKCBpLS0gKSB7CgkJCQkJb2JqWyBwcm9taXNlTWV0aG9kc1tpXSBdID0gZGVmZXJyZWRbIHByb21pc2VNZXRob2RzW2ldIF07CgkJCQl9CgkJCQlyZXR1cm4gb2JqOwoJCQl9CgkJfSApOwoJCS8vIE1ha2Ugc3VyZSBvbmx5IG9uZSBjYWxsYmFjayBsaXN0IHdpbGwgYmUgdXNlZAoJCWRlZmVycmVkLmRvbmUoIGZhaWxEZWZlcnJlZC5jYW5jZWwgKS5mYWlsKCBkZWZlcnJlZC5jYW5jZWwgKTsKCQkvLyBVbmV4cG9zZSBjYW5jZWwKCQlkZWxldGUgZGVmZXJyZWQuY2FuY2VsOwoJCS8vIENhbGwgZ2l2ZW4gZnVuYyBpZiBhbnkKCQlpZiAoIGZ1bmMgKSB7CgkJCWZ1bmMuY2FsbCggZGVmZXJyZWQsIGRlZmVycmVkICk7CgkJfQoJCXJldHVybiBkZWZlcnJlZDsKCX0sCgoJLy8gRGVmZXJyZWQgaGVscGVyCgl3aGVuOiBmdW5jdGlvbiggb2JqZWN0ICkgewoJCXZhciBsYXN0SW5kZXggPSBhcmd1bWVudHMubGVuZ3RoLAoJCQlkZWZlcnJlZCA9IGxhc3RJbmRleCA8PSAxICYmIG9iamVjdCAmJiBqUXVlcnkuaXNGdW5jdGlvbiggb2JqZWN0LnByb21pc2UgKSA/CgkJCQlvYmplY3QgOgoJCQkJalF1ZXJ5LkRlZmVycmVkKCksCgkJCXByb21pc2UgPSBkZWZlcnJlZC5wcm9taXNlKCk7CgoJCWlmICggbGFzdEluZGV4ID4gMSApIHsKCQkJdmFyIGFycmF5ID0gc2xpY2UuY2FsbCggYXJndW1lbnRzLCAwICksCgkJCQljb3VudCA9IGxhc3RJbmRleCwKCQkJCWlDYWxsYmFjayA9IGZ1bmN0aW9uKCBpbmRleCApIHsKCQkJCQlyZXR1cm4gZnVuY3Rpb24oIHZhbHVlICkgewoJCQkJCQlhcnJheVsgaW5kZXggXSA9IGFyZ3VtZW50cy5sZW5ndGggPiAxID8gc2xpY2UuY2FsbCggYXJndW1lbnRzLCAwICkgOiB2YWx1ZTsKCQkJCQkJaWYgKCAhKCAtLWNvdW50ICkgKSB7CgkJCQkJCQlkZWZlcnJlZC5yZXNvbHZlV2l0aCggcHJvbWlzZSwgYXJyYXkgKTsKCQkJCQkJfQoJCQkJCX07CgkJCQl9OwoJCQl3aGlsZSggKCBsYXN0SW5kZXgtLSApICkgewoJCQkJb2JqZWN0ID0gYXJyYXlbIGxhc3RJbmRleCBdOwoJCQkJaWYgKCBvYmplY3QgJiYgalF1ZXJ5LmlzRnVuY3Rpb24oIG9iamVjdC5wcm9taXNlICkgKSB7CgkJCQkJb2JqZWN0LnByb21pc2UoKS50aGVuKCBpQ2FsbGJhY2sobGFzdEluZGV4KSwgZGVmZXJyZWQucmVqZWN0ICk7CgkJCQl9IGVsc2UgewoJCQkJCS0tY291bnQ7CgkJCQl9CgkJCX0KCQkJaWYgKCAhY291bnQgKSB7CgkJCQlkZWZlcnJlZC5yZXNvbHZlV2l0aCggcHJvbWlzZSwgYXJyYXkgKTsKCQkJfQoJCX0gZWxzZSBpZiAoIGRlZmVycmVkICE9PSBvYmplY3QgKSB7CgkJCWRlZmVycmVkLnJlc29sdmUoIG9iamVjdCApOwoJCX0KCQlyZXR1cm4gcHJvbWlzZTsKCX0sCgoJLy8gVXNlIG9mIGpRdWVyeS5icm93c2VyIGlzIGZyb3duZWQgdXBvbi4KCS8vIE1vcmUgZGV0YWlsczogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9VdGlsaXRpZXMvalF1ZXJ5LmJyb3dzZXIKCXVhTWF0Y2g6IGZ1bmN0aW9uKCB1YSApIHsKCQl1YSA9IHVhLnRvTG93ZXJDYXNlKCk7CgoJCXZhciBtYXRjaCA9IHJ3ZWJraXQuZXhlYyggdWEgKSB8fAoJCQlyb3BlcmEuZXhlYyggdWEgKSB8fAoJCQlybXNpZS5leGVjKCB1YSApIHx8CgkJCXVhLmluZGV4T2YoImNvbXBhdGlibGUiKSA8IDAgJiYgcm1vemlsbGEuZXhlYyggdWEgKSB8fAoJCQlbXTsKCgkJcmV0dXJuIHsgYnJvd3NlcjogbWF0Y2hbMV0gfHwgIiIsIHZlcnNpb246IG1hdGNoWzJdIHx8ICIwIiB9OwoJfSwKCglzdWI6IGZ1bmN0aW9uKCkgewoJCWZ1bmN0aW9uIGpRdWVyeVN1YmNsYXNzKCBzZWxlY3RvciwgY29udGV4dCApIHsKCQkJcmV0dXJuIG5ldyBqUXVlcnlTdWJjbGFzcy5mbi5pbml0KCBzZWxlY3RvciwgY29udGV4dCApOwoJCX0KCQlqUXVlcnkuZXh0ZW5kKCB0cnVlLCBqUXVlcnlTdWJjbGFzcywgdGhpcyApOwoJCWpRdWVyeVN1YmNsYXNzLnN1cGVyY2xhc3MgPSB0aGlzOwoJCWpRdWVyeVN1YmNsYXNzLmZuID0galF1ZXJ5U3ViY2xhc3MucHJvdG90eXBlID0gdGhpcygpOwoJCWpRdWVyeVN1YmNsYXNzLmZuLmNvbnN0cnVjdG9yID0galF1ZXJ5U3ViY2xhc3M7CgkJalF1ZXJ5U3ViY2xhc3Muc3ViY2xhc3MgPSB0aGlzLnN1YmNsYXNzOwoJCWpRdWVyeVN1YmNsYXNzLmZuLmluaXQgPSBmdW5jdGlvbiBpbml0KCBzZWxlY3RvciwgY29udGV4dCApIHsKCQkJaWYgKCBjb250ZXh0ICYmIGNvbnRleHQgaW5zdGFuY2VvZiBqUXVlcnkgJiYgIShjb250ZXh0IGluc3RhbmNlb2YgalF1ZXJ5U3ViY2xhc3MpICkgewoJCQkJY29udGV4dCA9IGpRdWVyeVN1YmNsYXNzKGNvbnRleHQpOwoJCQl9CgoJCQlyZXR1cm4galF1ZXJ5LmZuLmluaXQuY2FsbCggdGhpcywgc2VsZWN0b3IsIGNvbnRleHQsIHJvb3RqUXVlcnlTdWJjbGFzcyApOwoJCX07CgkJalF1ZXJ5U3ViY2xhc3MuZm4uaW5pdC5wcm90b3R5cGUgPSBqUXVlcnlTdWJjbGFzcy5mbjsKCQl2YXIgcm9vdGpRdWVyeVN1YmNsYXNzID0galF1ZXJ5U3ViY2xhc3MoZG9jdW1lbnQpOwoJCXJldHVybiBqUXVlcnlTdWJjbGFzczsKCX0sCgoJYnJvd3Nlcjoge30KfSk7CgovLyBDcmVhdGUgcmVhZHlMaXN0IGRlZmVycmVkCnJlYWR5TGlzdCA9IGpRdWVyeS5fRGVmZXJyZWQoKTsKCi8vIFBvcHVsYXRlIHRoZSBjbGFzczJ0eXBlIG1hcApqUXVlcnkuZWFjaCgiQm9vbGVhbiBOdW1iZXIgU3RyaW5nIEZ1bmN0aW9uIEFycmF5IERhdGUgUmVnRXhwIE9iamVjdCIuc3BsaXQoIiAiKSwgZnVuY3Rpb24oaSwgbmFtZSkgewoJY2xhc3MydHlwZVsgIltvYmplY3QgIiArIG5hbWUgKyAiXSIgXSA9IG5hbWUudG9Mb3dlckNhc2UoKTsKfSk7Cgpicm93c2VyTWF0Y2ggPSBqUXVlcnkudWFNYXRjaCggdXNlckFnZW50ICk7CmlmICggYnJvd3Nlck1hdGNoLmJyb3dzZXIgKSB7CglqUXVlcnkuYnJvd3NlclsgYnJvd3Nlck1hdGNoLmJyb3dzZXIgXSA9IHRydWU7CglqUXVlcnkuYnJvd3Nlci52ZXJzaW9uID0gYnJvd3Nlck1hdGNoLnZlcnNpb247Cn0KCi8vIERlcHJlY2F0ZWQsIHVzZSBqUXVlcnkuYnJvd3Nlci53ZWJraXQgaW5zdGVhZAppZiAoIGpRdWVyeS5icm93c2VyLndlYmtpdCApIHsKCWpRdWVyeS5icm93c2VyLnNhZmFyaSA9IHRydWU7Cn0KCmlmICggaW5kZXhPZiApIHsKCWpRdWVyeS5pbkFycmF5ID0gZnVuY3Rpb24oIGVsZW0sIGFycmF5ICkgewoJCXJldHVybiBpbmRleE9mLmNhbGwoIGFycmF5LCBlbGVtICk7Cgl9Owp9CgovLyBJRSBkb2Vzbid0IG1hdGNoIG5vbi1icmVha2luZyBzcGFjZXMgd2l0aCBccwppZiAoIHJub3R3aGl0ZS50ZXN0KCAiXHhBMCIgKSApIHsKCXRyaW1MZWZ0ID0gL15bXHNceEEwXSsvOwoJdHJpbVJpZ2h0ID0gL1tcc1x4QTBdKyQvOwp9CgovLyBBbGwgalF1ZXJ5IG9iamVjdHMgc2hvdWxkIHBvaW50IGJhY2sgdG8gdGhlc2UKcm9vdGpRdWVyeSA9IGpRdWVyeShkb2N1bWVudCk7CgovLyBDbGVhbnVwIGZ1bmN0aW9ucyBmb3IgdGhlIGRvY3VtZW50IHJlYWR5IG1ldGhvZAppZiAoIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIgKSB7CglET01Db250ZW50TG9hZGVkID0gZnVuY3Rpb24oKSB7CgkJZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lciggIkRPTUNvbnRlbnRMb2FkZWQiLCBET01Db250ZW50TG9hZGVkLCBmYWxzZSApOwoJCWpRdWVyeS5yZWFkeSgpOwoJfTsKCn0gZWxzZSBpZiAoIGRvY3VtZW50LmF0dGFjaEV2ZW50ICkgewoJRE9NQ29udGVudExvYWRlZCA9IGZ1bmN0aW9uKCkgewoJCS8vIE1ha2Ugc3VyZSBib2R5IGV4aXN0cywgYXQgbGVhc3QsIGluIGNhc2UgSUUgZ2V0cyBhIGxpdHRsZSBvdmVyemVhbG91cyAodGlja2V0ICM1NDQzKS4KCQlpZiAoIGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICJjb21wbGV0ZSIgKSB7CgkJCWRvY3VtZW50LmRldGFjaEV2ZW50KCAib25yZWFkeXN0YXRlY2hhbmdlIiwgRE9NQ29udGVudExvYWRlZCApOwoJCQlqUXVlcnkucmVhZHkoKTsKCQl9Cgl9Owp9CgovLyBUaGUgRE9NIHJlYWR5IGNoZWNrIGZvciBJbnRlcm5ldCBFeHBsb3JlcgpmdW5jdGlvbiBkb1Njcm9sbENoZWNrKCkgewoJaWYgKCBqUXVlcnkuaXNSZWFkeSApIHsKCQlyZXR1cm47Cgl9CgoJdHJ5IHsKCQkvLyBJZiBJRSBpcyB1c2VkLCB1c2UgdGhlIHRyaWNrIGJ5IERpZWdvIFBlcmluaQoJCS8vIGh0dHA6Ly9qYXZhc2NyaXB0Lm53Ym94LmNvbS9JRUNvbnRlbnRMb2FkZWQvCgkJZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsKCJsZWZ0Iik7Cgl9IGNhdGNoKGUpIHsKCQlzZXRUaW1lb3V0KCBkb1Njcm9sbENoZWNrLCAxICk7CgkJcmV0dXJuOwoJfQoKCS8vIGFuZCBleGVjdXRlIGFueSB3YWl0aW5nIGZ1bmN0aW9ucwoJalF1ZXJ5LnJlYWR5KCk7Cn0KCi8vIEV4cG9zZSBqUXVlcnkgdG8gdGhlIGdsb2JhbCBvYmplY3QKcmV0dXJuIGpRdWVyeTsKCn0pKCk7CgoKKGZ1bmN0aW9uKCkgewoKCWpRdWVyeS5zdXBwb3J0ID0ge307CgoJdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwoKCWRpdi5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwoJZGl2LmlubmVySFRNTCA9ICIgICA8bGluay8+PHRhYmxlPjwvdGFibGU+PGEgaHJlZj0nL2EnIHN0eWxlPSdjb2xvcjpyZWQ7ZmxvYXQ6bGVmdDtvcGFjaXR5Oi41NTsnPmE8L2E+PGlucHV0IHR5cGU9J2NoZWNrYm94Jy8+IjsKCgl2YXIgYWxsID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIiksCgkJYSA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYSIpWzBdLAoJCXNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpLAoJCW9wdCA9IHNlbGVjdC5hcHBlbmRDaGlsZCggZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib3B0aW9uIikgKSwKCQlpbnB1dCA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXTsKCgkvLyBDYW4ndCBnZXQgYmFzaWMgdGVzdCBzdXBwb3J0CglpZiAoICFhbGwgfHwgIWFsbC5sZW5ndGggfHwgIWEgKSB7CgkJcmV0dXJuOwoJfQoKCWpRdWVyeS5zdXBwb3J0ID0gewoJCS8vIElFIHN0cmlwcyBsZWFkaW5nIHdoaXRlc3BhY2Ugd2hlbiAuaW5uZXJIVE1MIGlzIHVzZWQKCQlsZWFkaW5nV2hpdGVzcGFjZTogZGl2LmZpcnN0Q2hpbGQubm9kZVR5cGUgPT09IDMsCgoJCS8vIE1ha2Ugc3VyZSB0aGF0IHRib2R5IGVsZW1lbnRzIGFyZW4ndCBhdXRvbWF0aWNhbGx5IGluc2VydGVkCgkJLy8gSUUgd2lsbCBpbnNlcnQgdGhlbSBpbnRvIGVtcHR5IHRhYmxlcwoJCXRib2R5OiAhZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpLmxlbmd0aCwKCgkJLy8gTWFrZSBzdXJlIHRoYXQgbGluayBlbGVtZW50cyBnZXQgc2VyaWFsaXplZCBjb3JyZWN0bHkgYnkgaW5uZXJIVE1MCgkJLy8gVGhpcyByZXF1aXJlcyBhIHdyYXBwZXIgZWxlbWVudCBpbiBJRQoJCWh0bWxTZXJpYWxpemU6ICEhZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsaW5rIikubGVuZ3RoLAoKCQkvLyBHZXQgdGhlIHN0eWxlIGluZm9ybWF0aW9uIGZyb20gZ2V0QXR0cmlidXRlCgkJLy8gKElFIHVzZXMgLmNzc1RleHQgaW5zdGVkKQoJCXN0eWxlOiAvcmVkLy50ZXN0KCBhLmdldEF0dHJpYnV0ZSgic3R5bGUiKSApLAoKCQkvLyBNYWtlIHN1cmUgdGhhdCBVUkxzIGFyZW4ndCBtYW5pcHVsYXRlZAoJCS8vIChJRSBub3JtYWxpemVzIGl0IGJ5IGRlZmF1bHQpCgkJaHJlZk5vcm1hbGl6ZWQ6IGEuZ2V0QXR0cmlidXRlKCJocmVmIikgPT09ICIvYSIsCgoJCS8vIE1ha2Ugc3VyZSB0aGF0IGVsZW1lbnQgb3BhY2l0eSBleGlzdHMKCQkvLyAoSUUgdXNlcyBmaWx0ZXIgaW5zdGVhZCkKCQkvLyBVc2UgYSByZWdleCB0byB3b3JrIGFyb3VuZCBhIFdlYktpdCBpc3N1ZS4gU2VlICM1MTQ1CgkJb3BhY2l0eTogL14wLjU1JC8udGVzdCggYS5zdHlsZS5vcGFjaXR5ICksCgoJCS8vIFZlcmlmeSBzdHlsZSBmbG9hdCBleGlzdGVuY2UKCQkvLyAoSUUgdXNlcyBzdHlsZUZsb2F0IGluc3RlYWQgb2YgY3NzRmxvYXQpCgkJY3NzRmxvYXQ6ICEhYS5zdHlsZS5jc3NGbG9hdCwKCgkJLy8gTWFrZSBzdXJlIHRoYXQgaWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkIGZvciBhIGNoZWNrYm94CgkJLy8gdGhhdCBpdCBkZWZhdWx0cyB0byAib24iLgoJCS8vIChXZWJLaXQgZGVmYXVsdHMgdG8gIiIgaW5zdGVhZCkKCQljaGVja09uOiBpbnB1dC52YWx1ZSA9PT0gIm9uIiwKCgkJLy8gTWFrZSBzdXJlIHRoYXQgYSBzZWxlY3RlZC1ieS1kZWZhdWx0IG9wdGlvbiBoYXMgYSB3b3JraW5nIHNlbGVjdGVkIHByb3BlcnR5LgoJCS8vIChXZWJLaXQgZGVmYXVsdHMgdG8gZmFsc2UgaW5zdGVhZCBvZiB0cnVlLCBJRSB0b28sIGlmIGl0J3MgaW4gYW4gb3B0Z3JvdXApCgkJb3B0U2VsZWN0ZWQ6IG9wdC5zZWxlY3RlZCwKCgkJLy8gV2lsbCBiZSBkZWZpbmVkIGxhdGVyCgkJZGVsZXRlRXhwYW5kbzogdHJ1ZSwKCQlvcHREaXNhYmxlZDogZmFsc2UsCgkJY2hlY2tDbG9uZTogZmFsc2UsCgkJbm9DbG9uZUV2ZW50OiB0cnVlLAoJCW5vQ2xvbmVDaGVja2VkOiB0cnVlLAoJCWJveE1vZGVsOiBudWxsLAoJCWlubGluZUJsb2NrTmVlZHNMYXlvdXQ6IGZhbHNlLAoJCXNocmlua1dyYXBCbG9ja3M6IGZhbHNlLAoJCXJlbGlhYmxlSGlkZGVuT2Zmc2V0czogdHJ1ZQoJfTsKCglpbnB1dC5jaGVja2VkID0gdHJ1ZTsKCWpRdWVyeS5zdXBwb3J0Lm5vQ2xvbmVDaGVja2VkID0gaW5wdXQuY2xvbmVOb2RlKCB0cnVlICkuY2hlY2tlZDsKCgkvLyBNYWtlIHN1cmUgdGhhdCB0aGUgb3B0aW9ucyBpbnNpZGUgZGlzYWJsZWQgc2VsZWN0cyBhcmVuJ3QgbWFya2VkIGFzIGRpc2FibGVkCgkvLyAoV2ViS2l0IG1hcmtzIHRoZW0gYXMgZGlhYmxlZCkKCXNlbGVjdC5kaXNhYmxlZCA9IHRydWU7CglqUXVlcnkuc3VwcG9ydC5vcHREaXNhYmxlZCA9ICFvcHQuZGlzYWJsZWQ7CgoJdmFyIF9zY3JpcHRFdmFsID0gbnVsbDsKCWpRdWVyeS5zdXBwb3J0LnNjcmlwdEV2YWwgPSBmdW5jdGlvbigpIHsKCQlpZiAoIF9zY3JpcHRFdmFsID09PSBudWxsICkgewoJCQl2YXIgcm9vdCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwKCQkJCXNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpLAoJCQkJaWQgPSAic2NyaXB0IiArIGpRdWVyeS5ub3coKTsKCgkJCXRyeSB7CgkJCQlzY3JpcHQuYXBwZW5kQ2hpbGQoIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCAid2luZG93LiIgKyBpZCArICI9MTsiICkgKTsKCQkJfSBjYXRjaChlKSB7fQoKCQkJcm9vdC5pbnNlcnRCZWZvcmUoIHNjcmlwdCwgcm9vdC5maXJzdENoaWxkICk7CgoJCQkvLyBNYWtlIHN1cmUgdGhhdCB0aGUgZXhlY3V0aW9uIG9mIGNvZGUgd29ya3MgYnkgaW5qZWN0aW5nIGEgc2NyaXB0CgkJCS8vIHRhZyB3aXRoIGFwcGVuZENoaWxkL2NyZWF0ZVRleHROb2RlCgkJCS8vIChJRSBkb2Vzbid0IHN1cHBvcnQgdGhpcywgZmFpbHMsIGFuZCB1c2VzIC50ZXh0IGluc3RlYWQpCgkJCWlmICggd2luZG93WyBpZCBdICkgewoJCQkJX3NjcmlwdEV2YWwgPSB0cnVlOwoJCQkJZGVsZXRlIHdpbmRvd1sgaWQgXTsKCQkJfSBlbHNlIHsKCQkJCV9zY3JpcHRFdmFsID0gZmFsc2U7CgkJCX0KCgkJCXJvb3QucmVtb3ZlQ2hpbGQoIHNjcmlwdCApOwoJCQkvLyByZWxlYXNlIG1lbW9yeSBpbiBJRQoJCQlyb290ID0gc2NyaXB0ID0gaWQgID0gbnVsbDsKCQl9CgoJCXJldHVybiBfc2NyaXB0RXZhbDsKCX07CgoJLy8gVGVzdCB0byBzZWUgaWYgaXQncyBwb3NzaWJsZSB0byBkZWxldGUgYW4gZXhwYW5kbyBmcm9tIGFuIGVsZW1lbnQKCS8vIEZhaWxzIGluIEludGVybmV0IEV4cGxvcmVyCgl0cnkgewoJCWRlbGV0ZSBkaXYudGVzdDsKCgl9IGNhdGNoKGUpIHsKCQlqUXVlcnkuc3VwcG9ydC5kZWxldGVFeHBhbmRvID0gZmFsc2U7Cgl9CgoJaWYgKCAhZGl2LmFkZEV2ZW50TGlzdGVuZXIgJiYgZGl2LmF0dGFjaEV2ZW50ICYmIGRpdi5maXJlRXZlbnQgKSB7CgkJZGl2LmF0dGFjaEV2ZW50KCJvbmNsaWNrIiwgZnVuY3Rpb24gY2xpY2soKSB7CgkJCS8vIENsb25pbmcgYSBub2RlIHNob3VsZG4ndCBjb3B5IG92ZXIgYW55CgkJCS8vIGJvdW5kIGV2ZW50IGhhbmRsZXJzIChJRSBkb2VzIHRoaXMpCgkJCWpRdWVyeS5zdXBwb3J0Lm5vQ2xvbmVFdmVudCA9IGZhbHNlOwoJCQlkaXYuZGV0YWNoRXZlbnQoIm9uY2xpY2siLCBjbGljayk7CgkJfSk7CgkJZGl2LmNsb25lTm9kZSh0cnVlKS5maXJlRXZlbnQoIm9uY2xpY2siKTsKCX0KCglkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKCWRpdi5pbm5lckhUTUwgPSAiPGlucHV0IHR5cGU9J3JhZGlvJyBuYW1lPSdyYWRpb3Rlc3QnIGNoZWNrZWQ9J2NoZWNrZWQnLz4iOwoKCXZhciBmcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKCWZyYWdtZW50LmFwcGVuZENoaWxkKCBkaXYuZmlyc3RDaGlsZCApOwoKCS8vIFdlYktpdCBkb2Vzbid0IGNsb25lIGNoZWNrZWQgc3RhdGUgY29ycmVjdGx5IGluIGZyYWdtZW50cwoJalF1ZXJ5LnN1cHBvcnQuY2hlY2tDbG9uZSA9IGZyYWdtZW50LmNsb25lTm9kZSh0cnVlKS5jbG9uZU5vZGUodHJ1ZSkubGFzdENoaWxkLmNoZWNrZWQ7CgoJLy8gRmlndXJlIG91dCBpZiB0aGUgVzNDIGJveCBtb2RlbCB3b3JrcyBhcyBleHBlY3RlZAoJLy8gZG9jdW1lbnQuYm9keSBtdXN0IGV4aXN0IGJlZm9yZSB3ZSBjYW4gZG8gdGhpcwoJalF1ZXJ5KGZ1bmN0aW9uKCkgewoJCXZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSwKCQkJYm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF07CgoJCS8vIEZyYW1lc2V0IGRvY3VtZW50cyB3aXRoIG5vIGJvZHkgc2hvdWxkIG5vdCBydW4gdGhpcyBjb2RlCgkJaWYgKCAhYm9keSApIHsKCQkJcmV0dXJuOwoJCX0KCgkJZGl2LnN0eWxlLndpZHRoID0gZGl2LnN0eWxlLnBhZGRpbmdMZWZ0ID0gIjFweCI7CgkJYm9keS5hcHBlbmRDaGlsZCggZGl2ICk7CgkJalF1ZXJ5LmJveE1vZGVsID0galF1ZXJ5LnN1cHBvcnQuYm94TW9kZWwgPSBkaXYub2Zmc2V0V2lkdGggPT09IDI7CgoJCWlmICggInpvb20iIGluIGRpdi5zdHlsZSApIHsKCQkJLy8gQ2hlY2sgaWYgbmF0aXZlbHkgYmxvY2stbGV2ZWwgZWxlbWVudHMgYWN0IGxpa2UgaW5saW5lLWJsb2NrCgkJCS8vIGVsZW1lbnRzIHdoZW4gc2V0dGluZyB0aGVpciBkaXNwbGF5IHRvICdpbmxpbmUnIGFuZCBnaXZpbmcKCQkJLy8gdGhlbSBsYXlvdXQKCQkJLy8gKElFIDwgOCBkb2VzIHRoaXMpCgkJCWRpdi5zdHlsZS5kaXNwbGF5ID0gImlubGluZSI7CgkJCWRpdi5zdHlsZS56b29tID0gMTsKCQkJalF1ZXJ5LnN1cHBvcnQuaW5saW5lQmxvY2tOZWVkc0xheW91dCA9IGRpdi5vZmZzZXRXaWR0aCA9PT0gMjsKCgkJCS8vIENoZWNrIGlmIGVsZW1lbnRzIHdpdGggbGF5b3V0IHNocmluay13cmFwIHRoZWlyIGNoaWxkcmVuCgkJCS8vIChJRSA2IGRvZXMgdGhpcykKCQkJZGl2LnN0eWxlLmRpc3BsYXkgPSAiIjsKCQkJZGl2LmlubmVySFRNTCA9ICI8ZGl2IHN0eWxlPSd3aWR0aDo0cHg7Jz48L2Rpdj4iOwoJCQlqUXVlcnkuc3VwcG9ydC5zaHJpbmtXcmFwQmxvY2tzID0gZGl2Lm9mZnNldFdpZHRoICE9PSAyOwoJCX0KCgkJZGl2LmlubmVySFRNTCA9ICI8dGFibGU+PHRyPjx0ZCBzdHlsZT0ncGFkZGluZzowO2JvcmRlcjowO2Rpc3BsYXk6bm9uZSc+PC90ZD48dGQ+dDwvdGQ+PC90cj48L3RhYmxlPiI7CgkJdmFyIHRkcyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGQiKTsKCgkJLy8gQ2hlY2sgaWYgdGFibGUgY2VsbHMgc3RpbGwgaGF2ZSBvZmZzZXRXaWR0aC9IZWlnaHQgd2hlbiB0aGV5IGFyZSBzZXQKCQkvLyB0byBkaXNwbGF5Om5vbmUgYW5kIHRoZXJlIGFyZSBzdGlsbCBvdGhlciB2aXNpYmxlIHRhYmxlIGNlbGxzIGluIGEKCQkvLyB0YWJsZSByb3c7IGlmIHNvLCBvZmZzZXRXaWR0aC9IZWlnaHQgYXJlIG5vdCByZWxpYWJsZSBmb3IgdXNlIHdoZW4KCQkvLyBkZXRlcm1pbmluZyBpZiBhbiBlbGVtZW50IGhhcyBiZWVuIGhpZGRlbiBkaXJlY3RseSB1c2luZwoJCS8vIGRpc3BsYXk6bm9uZSAoaXQgaXMgc3RpbGwgc2FmZSB0byB1c2Ugb2Zmc2V0cyBpZiBhIHBhcmVudCBlbGVtZW50IGlzCgkJLy8gaGlkZGVuOyBkb24gc2FmZXR5IGdvZ2dsZXMgYW5kIHNlZSBidWcgIzQ1MTIgZm9yIG1vcmUgaW5mb3JtYXRpb24pLgoJCS8vIChvbmx5IElFIDggZmFpbHMgdGhpcyB0ZXN0KQoJCWpRdWVyeS5zdXBwb3J0LnJlbGlhYmxlSGlkZGVuT2Zmc2V0cyA9IHRkc1swXS5vZmZzZXRIZWlnaHQgPT09IDA7CgoJCXRkc1swXS5zdHlsZS5kaXNwbGF5ID0gIiI7CgkJdGRzWzFdLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CgoJCS8vIENoZWNrIGlmIGVtcHR5IHRhYmxlIGNlbGxzIHN0aWxsIGhhdmUgb2Zmc2V0V2lkdGgvSGVpZ2h0CgkJLy8gKElFIDwgOCBmYWlsIHRoaXMgdGVzdCkKCQlqUXVlcnkuc3VwcG9ydC5yZWxpYWJsZUhpZGRlbk9mZnNldHMgPSBqUXVlcnkuc3VwcG9ydC5yZWxpYWJsZUhpZGRlbk9mZnNldHMgJiYgdGRzWzBdLm9mZnNldEhlaWdodCA9PT0gMDsKCQlkaXYuaW5uZXJIVE1MID0gIiI7CgoJCWJvZHkucmVtb3ZlQ2hpbGQoIGRpdiApLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CgkJZGl2ID0gdGRzID0gbnVsbDsKCX0pOwoKCS8vIFRlY2huaXF1ZSBmcm9tIEp1cml5IFpheXRzZXYKCS8vIGh0dHA6Ly90aGlua3dlYjIuY29tL3Byb2plY3RzL3Byb3RvdHlwZS9kZXRlY3RpbmctZXZlbnQtc3VwcG9ydC13aXRob3V0LWJyb3dzZXItc25pZmZpbmcvCgl2YXIgZXZlbnRTdXBwb3J0ZWQgPSBmdW5jdGlvbiggZXZlbnROYW1lICkgewoJCXZhciBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwoJCWV2ZW50TmFtZSA9ICJvbiIgKyBldmVudE5hbWU7CgoJCS8vIFdlIG9ubHkgY2FyZSBhYm91dCB0aGUgY2FzZSB3aGVyZSBub24tc3RhbmRhcmQgZXZlbnQgc3lzdGVtcwoJCS8vIGFyZSB1c2VkLCBuYW1lbHkgaW4gSUUuIFNob3J0LWNpcmN1aXRpbmcgaGVyZSBoZWxwcyB1cyB0bwoJCS8vIGF2b2lkIGFuIGV2YWwgY2FsbCAoaW4gc2V0QXR0cmlidXRlKSB3aGljaCBjYW4gY2F1c2UgQ1NQCgkJLy8gdG8gZ28gaGF5d2lyZS4gU2VlOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi9TZWN1cml0eS9DU1AKCQlpZiAoICFlbC5hdHRhY2hFdmVudCApIHsKCQkJcmV0dXJuIHRydWU7CgkJfQoKCQl2YXIgaXNTdXBwb3J0ZWQgPSAoZXZlbnROYW1lIGluIGVsKTsKCQlpZiAoICFpc1N1cHBvcnRlZCApIHsKCQkJZWwuc2V0QXR0cmlidXRlKGV2ZW50TmFtZSwgInJldHVybjsiKTsKCQkJaXNTdXBwb3J0ZWQgPSB0eXBlb2YgZWxbZXZlbnROYW1lXSA9PT0gImZ1bmN0aW9uIjsKCQl9CgkJZWwgPSBudWxsOwoKCQlyZXR1cm4gaXNTdXBwb3J0ZWQ7Cgl9OwoKCWpRdWVyeS5zdXBwb3J0LnN1Ym1pdEJ1YmJsZXMgPSBldmVudFN1cHBvcnRlZCgic3VibWl0Iik7CglqUXVlcnkuc3VwcG9ydC5jaGFuZ2VCdWJibGVzID0gZXZlbnRTdXBwb3J0ZWQoImNoYW5nZSIpOwoKCS8vIHJlbGVhc2UgbWVtb3J5IGluIElFCglkaXYgPSBhbGwgPSBhID0gbnVsbDsKfSkoKTsKCgoKdmFyIHJicmFjZSA9IC9eKD86XHsuKlx9fFxbLipcXSkkLzsKCmpRdWVyeS5leHRlbmQoewoJY2FjaGU6IHt9LAoKCS8vIFBsZWFzZSB1c2Ugd2l0aCBjYXV0aW9uCgl1dWlkOiAwLAoKCS8vIFVuaXF1ZSBmb3IgZWFjaCBjb3B5IG9mIGpRdWVyeSBvbiB0aGUgcGFnZQoJLy8gTm9uLWRpZ2l0cyByZW1vdmVkIHRvIG1hdGNoIHJpbmxpbmVqUXVlcnkKCWV4cGFuZG86ICJqUXVlcnkiICsgKCBqUXVlcnkuZm4uanF1ZXJ5ICsgTWF0aC5yYW5kb20oKSApLnJlcGxhY2UoIC9cRC9nLCAiIiApLAoKCS8vIFRoZSBmb2xsb3dpbmcgZWxlbWVudHMgdGhyb3cgdW5jYXRjaGFibGUgZXhjZXB0aW9ucyBpZiB5b3UKCS8vIGF0dGVtcHQgdG8gYWRkIGV4cGFuZG8gcHJvcGVydGllcyB0byB0aGVtLgoJbm9EYXRhOiB7CgkJImVtYmVkIjogdHJ1ZSwKCQkvLyBCYW4gYWxsIG9iamVjdHMgZXhjZXB0IGZvciBGbGFzaCAod2hpY2ggaGFuZGxlIGV4cGFuZG9zKQoJCSJvYmplY3QiOiAiY2xzaWQ6RDI3Q0RCNkUtQUU2RC0xMWNmLTk2QjgtNDQ0NTUzNTQwMDAwIiwKCQkiYXBwbGV0IjogdHJ1ZQoJfSwKCgloYXNEYXRhOiBmdW5jdGlvbiggZWxlbSApIHsKCQllbGVtID0gZWxlbS5ub2RlVHlwZSA/IGpRdWVyeS5jYWNoZVsgZWxlbVtqUXVlcnkuZXhwYW5kb10gXSA6IGVsZW1bIGpRdWVyeS5leHBhbmRvIF07CgoJCXJldHVybiAhIWVsZW0gJiYgIWlzRW1wdHlEYXRhT2JqZWN0KCBlbGVtICk7Cgl9LAoKCWRhdGE6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCBkYXRhLCBwdnQgLyogSW50ZXJuYWwgVXNlIE9ubHkgKi8gKSB7CgkJaWYgKCAhalF1ZXJ5LmFjY2VwdERhdGEoIGVsZW0gKSApIHsKCQkJcmV0dXJuOwoJCX0KCgkJdmFyIGludGVybmFsS2V5ID0galF1ZXJ5LmV4cGFuZG8sIGdldEJ5TmFtZSA9IHR5cGVvZiBuYW1lID09PSAic3RyaW5nIiwgdGhpc0NhY2hlLAoKCQkJLy8gV2UgaGF2ZSB0byBoYW5kbGUgRE9NIG5vZGVzIGFuZCBKUyBvYmplY3RzIGRpZmZlcmVudGx5IGJlY2F1c2UgSUU2LTcKCQkJLy8gY2FuJ3QgR0Mgb2JqZWN0IHJlZmVyZW5jZXMgcHJvcGVybHkgYWNyb3NzIHRoZSBET00tSlMgYm91bmRhcnkKCQkJaXNOb2RlID0gZWxlbS5ub2RlVHlwZSwKCgkJCS8vIE9ubHkgRE9NIG5vZGVzIG5lZWQgdGhlIGdsb2JhbCBqUXVlcnkgY2FjaGU7IEpTIG9iamVjdCBkYXRhIGlzCgkJCS8vIGF0dGFjaGVkIGRpcmVjdGx5IHRvIHRoZSBvYmplY3Qgc28gR0MgY2FuIG9jY3VyIGF1dG9tYXRpY2FsbHkKCQkJY2FjaGUgPSBpc05vZGUgPyBqUXVlcnkuY2FjaGUgOiBlbGVtLAoKCQkJLy8gT25seSBkZWZpbmluZyBhbiBJRCBmb3IgSlMgb2JqZWN0cyBpZiBpdHMgY2FjaGUgYWxyZWFkeSBleGlzdHMgYWxsb3dzCgkJCS8vIHRoZSBjb2RlIHRvIHNob3J0Y3V0IG9uIHRoZSBzYW1lIHBhdGggYXMgYSBET00gbm9kZSB3aXRoIG5vIGNhY2hlCgkJCWlkID0gaXNOb2RlID8gZWxlbVsgalF1ZXJ5LmV4cGFuZG8gXSA6IGVsZW1bIGpRdWVyeS5leHBhbmRvIF0gJiYgalF1ZXJ5LmV4cGFuZG87CgoJCS8vIEF2b2lkIGRvaW5nIGFueSBtb3JlIHdvcmsgdGhhbiB3ZSBuZWVkIHRvIHdoZW4gdHJ5aW5nIHRvIGdldCBkYXRhIG9uIGFuCgkJLy8gb2JqZWN0IHRoYXQgaGFzIG5vIGRhdGEgYXQgYWxsCgkJaWYgKCAoIWlkIHx8IChwdnQgJiYgaWQgJiYgIWNhY2hlWyBpZCBdWyBpbnRlcm5hbEtleSBdKSkgJiYgZ2V0QnlOYW1lICYmIGRhdGEgPT09IHVuZGVmaW5lZCApIHsKCQkJcmV0dXJuOwoJCX0KCgkJaWYgKCAhaWQgKSB7CgkJCS8vIE9ubHkgRE9NIG5vZGVzIG5lZWQgYSBuZXcgdW5pcXVlIElEIGZvciBlYWNoIGVsZW1lbnQgc2luY2UgdGhlaXIgZGF0YQoJCQkvLyBlbmRzIHVwIGluIHRoZSBnbG9iYWwgY2FjaGUKCQkJaWYgKCBpc05vZGUgKSB7CgkJCQllbGVtWyBqUXVlcnkuZXhwYW5kbyBdID0gaWQgPSArK2pRdWVyeS51dWlkOwoJCQl9IGVsc2UgewoJCQkJaWQgPSBqUXVlcnkuZXhwYW5kbzsKCQkJfQoJCX0KCgkJaWYgKCAhY2FjaGVbIGlkIF0gKSB7CgkJCWNhY2hlWyBpZCBdID0ge307CgoJCQkvLyBUT0RPOiBUaGlzIGlzIGEgaGFjayBmb3IgMS41IE9OTFkuIEF2b2lkcyBleHBvc2luZyBqUXVlcnkKCQkJLy8gbWV0YWRhdGEgb24gcGxhaW4gSlMgb2JqZWN0cyB3aGVuIHRoZSBvYmplY3QgaXMgc2VyaWFsaXplZCB1c2luZwoJCQkvLyBKU09OLnN0cmluZ2lmeQoJCQlpZiAoICFpc05vZGUgKSB7CgkJCQljYWNoZVsgaWQgXS50b0pTT04gPSBqUXVlcnkubm9vcDsKCQkJfQoJCX0KCgkJLy8gQW4gb2JqZWN0IGNhbiBiZSBwYXNzZWQgdG8galF1ZXJ5LmRhdGEgaW5zdGVhZCBvZiBhIGtleS92YWx1ZSBwYWlyOyB0aGlzIGdldHMKCQkvLyBzaGFsbG93IGNvcGllZCBvdmVyIG9udG8gdGhlIGV4aXN0aW5nIGNhY2hlCgkJaWYgKCB0eXBlb2YgbmFtZSA9PT0gIm9iamVjdCIgfHwgdHlwZW9mIG5hbWUgPT09ICJmdW5jdGlvbiIgKSB7CgkJCWlmICggcHZ0ICkgewoJCQkJY2FjaGVbIGlkIF1bIGludGVybmFsS2V5IF0gPSBqUXVlcnkuZXh0ZW5kKGNhY2hlWyBpZCBdWyBpbnRlcm5hbEtleSBdLCBuYW1lKTsKCQkJfSBlbHNlIHsKCQkJCWNhY2hlWyBpZCBdID0galF1ZXJ5LmV4dGVuZChjYWNoZVsgaWQgXSwgbmFtZSk7CgkJCX0KCQl9CgoJCXRoaXNDYWNoZSA9IGNhY2hlWyBpZCBdOwoKCQkvLyBJbnRlcm5hbCBqUXVlcnkgZGF0YSBpcyBzdG9yZWQgaW4gYSBzZXBhcmF0ZSBvYmplY3QgaW5zaWRlIHRoZSBvYmplY3QncyBkYXRhCgkJLy8gY2FjaGUgaW4gb3JkZXIgdG8gYXZvaWQga2V5IGNvbGxpc2lvbnMgYmV0d2VlbiBpbnRlcm5hbCBkYXRhIGFuZCB1c2VyLWRlZmluZWQKCQkvLyBkYXRhCgkJaWYgKCBwdnQgKSB7CgkJCWlmICggIXRoaXNDYWNoZVsgaW50ZXJuYWxLZXkgXSApIHsKCQkJCXRoaXNDYWNoZVsgaW50ZXJuYWxLZXkgXSA9IHt9OwoJCQl9CgoJCQl0aGlzQ2FjaGUgPSB0aGlzQ2FjaGVbIGludGVybmFsS2V5IF07CgkJfQoKCQlpZiAoIGRhdGEgIT09IHVuZGVmaW5lZCApIHsKCQkJdGhpc0NhY2hlWyBuYW1lIF0gPSBkYXRhOwoJCX0KCgkJLy8gVE9ETzogVGhpcyBpcyBhIGhhY2sgZm9yIDEuNSBPTkxZLiBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gMS42LiBVc2VycyBzaG91bGQKCQkvLyBub3QgYXR0ZW1wdCB0byBpbnNwZWN0IHRoZSBpbnRlcm5hbCBldmVudHMgb2JqZWN0IHVzaW5nIGpRdWVyeS5kYXRhLCBhcyB0aGlzCgkJLy8gaW50ZXJuYWwgZGF0YSBvYmplY3QgaXMgdW5kb2N1bWVudGVkIGFuZCBzdWJqZWN0IHRvIGNoYW5nZS4KCQlpZiAoIG5hbWUgPT09ICJldmVudHMiICYmICF0aGlzQ2FjaGVbbmFtZV0gKSB7CgkJCXJldHVybiB0aGlzQ2FjaGVbIGludGVybmFsS2V5IF0gJiYgdGhpc0NhY2hlWyBpbnRlcm5hbEtleSBdLmV2ZW50czsKCQl9CgoJCXJldHVybiBnZXRCeU5hbWUgPyB0aGlzQ2FjaGVbIG5hbWUgXSA6IHRoaXNDYWNoZTsKCX0sCgoJcmVtb3ZlRGF0YTogZnVuY3Rpb24oIGVsZW0sIG5hbWUsIHB2dCAvKiBJbnRlcm5hbCBVc2UgT25seSAqLyApIHsKCQlpZiAoICFqUXVlcnkuYWNjZXB0RGF0YSggZWxlbSApICkgewoJCQlyZXR1cm47CgkJfQoKCQl2YXIgaW50ZXJuYWxLZXkgPSBqUXVlcnkuZXhwYW5kbywgaXNOb2RlID0gZWxlbS5ub2RlVHlwZSwKCgkJCS8vIFNlZSBqUXVlcnkuZGF0YSBmb3IgbW9yZSBpbmZvcm1hdGlvbgoJCQljYWNoZSA9IGlzTm9kZSA/IGpRdWVyeS5jYWNoZSA6IGVsZW0sCgoJCQkvLyBTZWUgalF1ZXJ5LmRhdGEgZm9yIG1vcmUgaW5mb3JtYXRpb24KCQkJaWQgPSBpc05vZGUgPyBlbGVtWyBqUXVlcnkuZXhwYW5kbyBdIDogalF1ZXJ5LmV4cGFuZG87CgoJCS8vIElmIHRoZXJlIGlzIGFscmVhZHkgbm8gY2FjaGUgZW50cnkgZm9yIHRoaXMgb2JqZWN0LCB0aGVyZSBpcyBubwoJCS8vIHB1cnBvc2UgaW4gY29udGludWluZwoJCWlmICggIWNhY2hlWyBpZCBdICkgewoJCQlyZXR1cm47CgkJfQoKCQlpZiAoIG5hbWUgKSB7CgkJCXZhciB0aGlzQ2FjaGUgPSBwdnQgPyBjYWNoZVsgaWQgXVsgaW50ZXJuYWxLZXkgXSA6IGNhY2hlWyBpZCBdOwoKCQkJaWYgKCB0aGlzQ2FjaGUgKSB7CgkJCQlkZWxldGUgdGhpc0NhY2hlWyBuYW1lIF07CgoJCQkJLy8gSWYgdGhlcmUgaXMgbm8gZGF0YSBsZWZ0IGluIHRoZSBjYWNoZSwgd2Ugd2FudCB0byBjb250aW51ZQoJCQkJLy8gYW5kIGxldCB0aGUgY2FjaGUgb2JqZWN0IGl0c2VsZiBnZXQgZGVzdHJveWVkCgkJCQlpZiAoICFpc0VtcHR5RGF0YU9iamVjdCh0aGlzQ2FjaGUpICkgewoJCQkJCXJldHVybjsKCQkJCX0KCQkJfQoJCX0KCgkJLy8gU2VlIGpRdWVyeS5kYXRhIGZvciBtb3JlIGluZm9ybWF0aW9uCgkJaWYgKCBwdnQgKSB7CgkJCWRlbGV0ZSBjYWNoZVsgaWQgXVsgaW50ZXJuYWxLZXkgXTsKCgkJCS8vIERvbid0IGRlc3Ryb3kgdGhlIHBhcmVudCBjYWNoZSB1bmxlc3MgdGhlIGludGVybmFsIGRhdGEgb2JqZWN0CgkJCS8vIGhhZCBiZWVuIHRoZSBvbmx5IHRoaW5nIGxlZnQgaW4gaXQKCQkJaWYgKCAhaXNFbXB0eURhdGFPYmplY3QoY2FjaGVbIGlkIF0pICkgewoJCQkJcmV0dXJuOwoJCQl9CgkJfQoKCQl2YXIgaW50ZXJuYWxDYWNoZSA9IGNhY2hlWyBpZCBdWyBpbnRlcm5hbEtleSBdOwoKCQkvLyBCcm93c2VycyB0aGF0IGZhaWwgZXhwYW5kbyBkZWxldGlvbiBhbHNvIHJlZnVzZSB0byBkZWxldGUgZXhwYW5kb3Mgb24KCQkvLyB0aGUgd2luZG93LCBidXQgaXQgd2lsbCBhbGxvdyBpdCBvbiBhbGwgb3RoZXIgSlMgb2JqZWN0czsgb3RoZXIgYnJvd3NlcnMKCQkvLyBkb24ndCBjYXJlCgkJaWYgKCBqUXVlcnkuc3VwcG9ydC5kZWxldGVFeHBhbmRvIHx8IGNhY2hlICE9IHdpbmRvdyApIHsKCQkJZGVsZXRlIGNhY2hlWyBpZCBdOwoJCX0gZWxzZSB7CgkJCWNhY2hlWyBpZCBdID0gbnVsbDsKCQl9CgoJCS8vIFdlIGRlc3Ryb3llZCB0aGUgZW50aXJlIHVzZXIgY2FjaGUgYXQgb25jZSBiZWNhdXNlIGl0J3MgZmFzdGVyIHRoYW4KCQkvLyBpdGVyYXRpbmcgdGhyb3VnaCBlYWNoIGtleSwgYnV0IHdlIG5lZWQgdG8gY29udGludWUgdG8gcGVyc2lzdCBpbnRlcm5hbAoJCS8vIGRhdGEgaWYgaXQgZXhpc3RlZAoJCWlmICggaW50ZXJuYWxDYWNoZSApIHsKCQkJY2FjaGVbIGlkIF0gPSB7fTsKCQkJLy8gVE9ETzogVGhpcyBpcyBhIGhhY2sgZm9yIDEuNSBPTkxZLiBBdm9pZHMgZXhwb3NpbmcgalF1ZXJ5CgkJCS8vIG1ldGFkYXRhIG9uIHBsYWluIEpTIG9iamVjdHMgd2hlbiB0aGUgb2JqZWN0IGlzIHNlcmlhbGl6ZWQgdXNpbmcKCQkJLy8gSlNPTi5zdHJpbmdpZnkKCQkJaWYgKCAhaXNOb2RlICkgewoJCQkJY2FjaGVbIGlkIF0udG9KU09OID0galF1ZXJ5Lm5vb3A7CgkJCX0KCgkJCWNhY2hlWyBpZCBdWyBpbnRlcm5hbEtleSBdID0gaW50ZXJuYWxDYWNoZTsKCgkJLy8gT3RoZXJ3aXNlLCB3ZSBuZWVkIHRvIGVsaW1pbmF0ZSB0aGUgZXhwYW5kbyBvbiB0aGUgbm9kZSB0byBhdm9pZAoJCS8vIGZhbHNlIGxvb2t1cHMgaW4gdGhlIGNhY2hlIGZvciBlbnRyaWVzIHRoYXQgbm8gbG9uZ2VyIGV4aXN0CgkJfSBlbHNlIGlmICggaXNOb2RlICkgewoJCQkvLyBJRSBkb2VzIG5vdCBhbGxvdyB1cyB0byBkZWxldGUgZXhwYW5kbyBwcm9wZXJ0aWVzIGZyb20gbm9kZXMsCgkJCS8vIG5vciBkb2VzIGl0IGhhdmUgYSByZW1vdmVBdHRyaWJ1dGUgZnVuY3Rpb24gb24gRG9jdW1lbnQgbm9kZXM7CgkJCS8vIHdlIG11c3QgaGFuZGxlIGFsbCBvZiB0aGVzZSBjYXNlcwoJCQlpZiAoIGpRdWVyeS5zdXBwb3J0LmRlbGV0ZUV4cGFuZG8gKSB7CgkJCQlkZWxldGUgZWxlbVsgalF1ZXJ5LmV4cGFuZG8gXTsKCQkJfSBlbHNlIGlmICggZWxlbS5yZW1vdmVBdHRyaWJ1dGUgKSB7CgkJCQllbGVtLnJlbW92ZUF0dHJpYnV0ZSggalF1ZXJ5LmV4cGFuZG8gKTsKCQkJfSBlbHNlIHsKCQkJCWVsZW1bIGpRdWVyeS5leHBhbmRvIF0gPSBudWxsOwoJCQl9CgkJfQoJfSwKCgkvLyBGb3IgaW50ZXJuYWwgdXNlIG9ubHkuCglfZGF0YTogZnVuY3Rpb24oIGVsZW0sIG5hbWUsIGRhdGEgKSB7CgkJcmV0dXJuIGpRdWVyeS5kYXRhKCBlbGVtLCBuYW1lLCBkYXRhLCB0cnVlICk7Cgl9LAoKCS8vIEEgbWV0aG9kIGZvciBkZXRlcm1pbmluZyBpZiBhIERPTSBub2RlIGNhbiBoYW5kbGUgdGhlIGRhdGEgZXhwYW5kbwoJYWNjZXB0RGF0YTogZnVuY3Rpb24oIGVsZW0gKSB7CgkJaWYgKCBlbGVtLm5vZGVOYW1lICkgewoJCQl2YXIgbWF0Y2ggPSBqUXVlcnkubm9EYXRhWyBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgXTsKCgkJCWlmICggbWF0Y2ggKSB7CgkJCQlyZXR1cm4gIShtYXRjaCA9PT0gdHJ1ZSB8fCBlbGVtLmdldEF0dHJpYnV0ZSgiY2xhc3NpZCIpICE9PSBtYXRjaCk7CgkJCX0KCQl9CgoJCXJldHVybiB0cnVlOwoJfQp9KTsKCmpRdWVyeS5mbi5leHRlbmQoewoJZGF0YTogZnVuY3Rpb24oIGtleSwgdmFsdWUgKSB7CgkJdmFyIGRhdGEgPSBudWxsOwoKCQlpZiAoIHR5cGVvZiBrZXkgPT09ICJ1bmRlZmluZWQiICkgewoJCQlpZiAoIHRoaXMubGVuZ3RoICkgewoJCQkJZGF0YSA9IGpRdWVyeS5kYXRhKCB0aGlzWzBdICk7CgoJCQkJaWYgKCB0aGlzWzBdLm5vZGVUeXBlID09PSAxICkgewoJCQkJCXZhciBhdHRyID0gdGhpc1swXS5hdHRyaWJ1dGVzLCBuYW1lOwoJCQkJCWZvciAoIHZhciBpID0gMCwgbCA9IGF0dHIubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCQkJCQluYW1lID0gYXR0cltpXS5uYW1lOwoKCQkJCQkJaWYgKCBuYW1lLmluZGV4T2YoICJkYXRhLSIgKSA9PT0gMCApIHsKCQkJCQkJCW5hbWUgPSBuYW1lLnN1YnN0ciggNSApOwoJCQkJCQkJZGF0YUF0dHIoIHRoaXNbMF0sIG5hbWUsIGRhdGFbIG5hbWUgXSApOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9CgoJCQlyZXR1cm4gZGF0YTsKCgkJfSBlbHNlIGlmICggdHlwZW9mIGtleSA9PT0gIm9iamVjdCIgKSB7CgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCQlqUXVlcnkuZGF0YSggdGhpcywga2V5ICk7CgkJCX0pOwoJCX0KCgkJdmFyIHBhcnRzID0ga2V5LnNwbGl0KCIuIik7CgkJcGFydHNbMV0gPSBwYXJ0c1sxXSA/ICIuIiArIHBhcnRzWzFdIDogIiI7CgoJCWlmICggdmFsdWUgPT09IHVuZGVmaW5lZCApIHsKCQkJZGF0YSA9IHRoaXMudHJpZ2dlckhhbmRsZXIoImdldERhdGEiICsgcGFydHNbMV0gKyAiISIsIFtwYXJ0c1swXV0pOwoKCQkJLy8gVHJ5IHRvIGZldGNoIGFueSBpbnRlcm5hbGx5IHN0b3JlZCBkYXRhIGZpcnN0CgkJCWlmICggZGF0YSA9PT0gdW5kZWZpbmVkICYmIHRoaXMubGVuZ3RoICkgewoJCQkJZGF0YSA9IGpRdWVyeS5kYXRhKCB0aGlzWzBdLCBrZXkgKTsKCQkJCWRhdGEgPSBkYXRhQXR0ciggdGhpc1swXSwga2V5LCBkYXRhICk7CgkJCX0KCgkJCXJldHVybiBkYXRhID09PSB1bmRlZmluZWQgJiYgcGFydHNbMV0gPwoJCQkJdGhpcy5kYXRhKCBwYXJ0c1swXSApIDoKCQkJCWRhdGE7CgoJCX0gZWxzZSB7CgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCQl2YXIgJHRoaXMgPSBqUXVlcnkoIHRoaXMgKSwKCQkJCQlhcmdzID0gWyBwYXJ0c1swXSwgdmFsdWUgXTsKCgkJCQkkdGhpcy50cmlnZ2VySGFuZGxlciggInNldERhdGEiICsgcGFydHNbMV0gKyAiISIsIGFyZ3MgKTsKCQkJCWpRdWVyeS5kYXRhKCB0aGlzLCBrZXksIHZhbHVlICk7CgkJCQkkdGhpcy50cmlnZ2VySGFuZGxlciggImNoYW5nZURhdGEiICsgcGFydHNbMV0gKyAiISIsIGFyZ3MgKTsKCQkJfSk7CgkJfQoJfSwKCglyZW1vdmVEYXRhOiBmdW5jdGlvbigga2V5ICkgewoJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCWpRdWVyeS5yZW1vdmVEYXRhKCB0aGlzLCBrZXkgKTsKCQl9KTsKCX0KfSk7CgpmdW5jdGlvbiBkYXRhQXR0ciggZWxlbSwga2V5LCBkYXRhICkgewoJLy8gSWYgbm90aGluZyB3YXMgZm91bmQgaW50ZXJuYWxseSwgdHJ5IHRvIGZldGNoIGFueQoJLy8gZGF0YSBmcm9tIHRoZSBIVE1MNSBkYXRhLSogYXR0cmlidXRlCglpZiAoIGRhdGEgPT09IHVuZGVmaW5lZCAmJiBlbGVtLm5vZGVUeXBlID09PSAxICkgewoJCWRhdGEgPSBlbGVtLmdldEF0dHJpYnV0ZSggImRhdGEtIiArIGtleSApOwoKCQlpZiAoIHR5cGVvZiBkYXRhID09PSAic3RyaW5nIiApIHsKCQkJdHJ5IHsKCQkJCWRhdGEgPSBkYXRhID09PSAidHJ1ZSIgPyB0cnVlIDoKCQkJCWRhdGEgPT09ICJmYWxzZSIgPyBmYWxzZSA6CgkJCQlkYXRhID09PSAibnVsbCIgPyBudWxsIDoKCQkJCSFqUXVlcnkuaXNOYU4oIGRhdGEgKSA/IHBhcnNlRmxvYXQoIGRhdGEgKSA6CgkJCQkJcmJyYWNlLnRlc3QoIGRhdGEgKSA/IGpRdWVyeS5wYXJzZUpTT04oIGRhdGEgKSA6CgkJCQkJZGF0YTsKCQkJfSBjYXRjaCggZSApIHt9CgoJCQkvLyBNYWtlIHN1cmUgd2Ugc2V0IHRoZSBkYXRhIHNvIGl0IGlzbid0IGNoYW5nZWQgbGF0ZXIKCQkJalF1ZXJ5LmRhdGEoIGVsZW0sIGtleSwgZGF0YSApOwoKCQl9IGVsc2UgewoJCQlkYXRhID0gdW5kZWZpbmVkOwoJCX0KCX0KCglyZXR1cm4gZGF0YTsKfQoKLy8gVE9ETzogVGhpcyBpcyBhIGhhY2sgZm9yIDEuNSBPTkxZIHRvIGFsbG93IG9iamVjdHMgd2l0aCBhIHNpbmdsZSB0b0pTT04KLy8gcHJvcGVydHkgdG8gYmUgY29uc2lkZXJlZCBlbXB0eSBvYmplY3RzOyB0aGlzIHByb3BlcnR5IGFsd2F5cyBleGlzdHMgaW4KLy8gb3JkZXIgdG8gbWFrZSBzdXJlIEpTT04uc3RyaW5naWZ5IGRvZXMgbm90IGV4cG9zZSBpbnRlcm5hbCBtZXRhZGF0YQpmdW5jdGlvbiBpc0VtcHR5RGF0YU9iamVjdCggb2JqICkgewoJZm9yICggdmFyIG5hbWUgaW4gb2JqICkgewoJCWlmICggbmFtZSAhPT0gInRvSlNPTiIgKSB7CgkJCXJldHVybiBmYWxzZTsKCQl9Cgl9CgoJcmV0dXJuIHRydWU7Cn0KCgoKCmpRdWVyeS5leHRlbmQoewoJcXVldWU6IGZ1bmN0aW9uKCBlbGVtLCB0eXBlLCBkYXRhICkgewoJCWlmICggIWVsZW0gKSB7CgkJCXJldHVybjsKCQl9CgoJCXR5cGUgPSAodHlwZSB8fCAiZngiKSArICJxdWV1ZSI7CgkJdmFyIHEgPSBqUXVlcnkuX2RhdGEoIGVsZW0sIHR5cGUgKTsKCgkJLy8gU3BlZWQgdXAgZGVxdWV1ZSBieSBnZXR0aW5nIG91dCBxdWlja2x5IGlmIHRoaXMgaXMganVzdCBhIGxvb2t1cAoJCWlmICggIWRhdGEgKSB7CgkJCXJldHVybiBxIHx8IFtdOwoJCX0KCgkJaWYgKCAhcSB8fCBqUXVlcnkuaXNBcnJheShkYXRhKSApIHsKCQkJcSA9IGpRdWVyeS5fZGF0YSggZWxlbSwgdHlwZSwgalF1ZXJ5Lm1ha2VBcnJheShkYXRhKSApOwoKCQl9IGVsc2UgewoJCQlxLnB1c2goIGRhdGEgKTsKCQl9CgoJCXJldHVybiBxOwoJfSwKCglkZXF1ZXVlOiBmdW5jdGlvbiggZWxlbSwgdHlwZSApIHsKCQl0eXBlID0gdHlwZSB8fCAiZngiOwoKCQl2YXIgcXVldWUgPSBqUXVlcnkucXVldWUoIGVsZW0sIHR5cGUgKSwKCQkJZm4gPSBxdWV1ZS5zaGlmdCgpOwoKCQkvLyBJZiB0aGUgZnggcXVldWUgaXMgZGVxdWV1ZWQsIGFsd2F5cyByZW1vdmUgdGhlIHByb2dyZXNzIHNlbnRpbmVsCgkJaWYgKCBmbiA9PT0gImlucHJvZ3Jlc3MiICkgewoJCQlmbiA9IHF1ZXVlLnNoaWZ0KCk7CgkJfQoKCQlpZiAoIGZuICkgewoJCQkvLyBBZGQgYSBwcm9ncmVzcyBzZW50aW5lbCB0byBwcmV2ZW50IHRoZSBmeCBxdWV1ZSBmcm9tIGJlaW5nCgkJCS8vIGF1dG9tYXRpY2FsbHkgZGVxdWV1ZWQKCQkJaWYgKCB0eXBlID09PSAiZngiICkgewoJCQkJcXVldWUudW5zaGlmdCgiaW5wcm9ncmVzcyIpOwoJCQl9CgoJCQlmbi5jYWxsKGVsZW0sIGZ1bmN0aW9uKCkgewoJCQkJalF1ZXJ5LmRlcXVldWUoZWxlbSwgdHlwZSk7CgkJCX0pOwoJCX0KCgkJaWYgKCAhcXVldWUubGVuZ3RoICkgewoJCQlqUXVlcnkucmVtb3ZlRGF0YSggZWxlbSwgdHlwZSArICJxdWV1ZSIsIHRydWUgKTsKCQl9Cgl9Cn0pOwoKalF1ZXJ5LmZuLmV4dGVuZCh7CglxdWV1ZTogZnVuY3Rpb24oIHR5cGUsIGRhdGEgKSB7CgkJaWYgKCB0eXBlb2YgdHlwZSAhPT0gInN0cmluZyIgKSB7CgkJCWRhdGEgPSB0eXBlOwoJCQl0eXBlID0gImZ4IjsKCQl9CgoJCWlmICggZGF0YSA9PT0gdW5kZWZpbmVkICkgewoJCQlyZXR1cm4galF1ZXJ5LnF1ZXVlKCB0aGlzWzBdLCB0eXBlICk7CgkJfQoJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oIGkgKSB7CgkJCXZhciBxdWV1ZSA9IGpRdWVyeS5xdWV1ZSggdGhpcywgdHlwZSwgZGF0YSApOwoKCQkJaWYgKCB0eXBlID09PSAiZngiICYmIHF1ZXVlWzBdICE9PSAiaW5wcm9ncmVzcyIgKSB7CgkJCQlqUXVlcnkuZGVxdWV1ZSggdGhpcywgdHlwZSApOwoJCQl9CgkJfSk7Cgl9LAoJZGVxdWV1ZTogZnVuY3Rpb24oIHR5cGUgKSB7CgkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJalF1ZXJ5LmRlcXVldWUoIHRoaXMsIHR5cGUgKTsKCQl9KTsKCX0sCgoJLy8gQmFzZWQgb2ZmIG9mIHRoZSBwbHVnaW4gYnkgQ2xpbnQgSGVsZmVycywgd2l0aCBwZXJtaXNzaW9uLgoJLy8gaHR0cDovL2JsaW5kc2lnbmFscy5jb20vaW5kZXgucGhwLzIwMDkvMDcvanF1ZXJ5LWRlbGF5LwoJZGVsYXk6IGZ1bmN0aW9uKCB0aW1lLCB0eXBlICkgewoJCXRpbWUgPSBqUXVlcnkuZnggPyBqUXVlcnkuZnguc3BlZWRzW3RpbWVdIHx8IHRpbWUgOiB0aW1lOwoJCXR5cGUgPSB0eXBlIHx8ICJmeCI7CgoJCXJldHVybiB0aGlzLnF1ZXVlKCB0eXBlLCBmdW5jdGlvbigpIHsKCQkJdmFyIGVsZW0gPSB0aGlzOwoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewoJCQkJalF1ZXJ5LmRlcXVldWUoIGVsZW0sIHR5cGUgKTsKCQkJfSwgdGltZSApOwoJCX0pOwoJfSwKCgljbGVhclF1ZXVlOiBmdW5jdGlvbiggdHlwZSApIHsKCQlyZXR1cm4gdGhpcy5xdWV1ZSggdHlwZSB8fCAiZngiLCBbXSApOwoJfQp9KTsKCgoKCnZhciByY2xhc3MgPSAvW1xuXHRccl0vZywKCXJzcGFjZXMgPSAvXHMrLywKCXJyZXR1cm4gPSAvXHIvZywKCXJzcGVjaWFsdXJsID0gL14oPzpocmVmfHNyY3xzdHlsZSkkLywKCXJ0eXBlID0gL14oPzpidXR0b258aW5wdXQpJC9pLAoJcmZvY3VzYWJsZSA9IC9eKD86YnV0dG9ufGlucHV0fG9iamVjdHxzZWxlY3R8dGV4dGFyZWEpJC9pLAoJcmNsaWNrYWJsZSA9IC9eYSg/OnJlYSk/JC9pLAoJcnJhZGlvY2hlY2sgPSAvXig/OnJhZGlvfGNoZWNrYm94KSQvaTsKCmpRdWVyeS5wcm9wcyA9IHsKCSJmb3IiOiAiaHRtbEZvciIsCgkiY2xhc3MiOiAiY2xhc3NOYW1lIiwKCXJlYWRvbmx5OiAicmVhZE9ubHkiLAoJbWF4bGVuZ3RoOiAibWF4TGVuZ3RoIiwKCWNlbGxzcGFjaW5nOiAiY2VsbFNwYWNpbmciLAoJcm93c3BhbjogInJvd1NwYW4iLAoJY29sc3BhbjogImNvbFNwYW4iLAoJdGFiaW5kZXg6ICJ0YWJJbmRleCIsCgl1c2VtYXA6ICJ1c2VNYXAiLAoJZnJhbWVib3JkZXI6ICJmcmFtZUJvcmRlciIKfTsKCmpRdWVyeS5mbi5leHRlbmQoewoJYXR0cjogZnVuY3Rpb24oIG5hbWUsIHZhbHVlICkgewoJCXJldHVybiBqUXVlcnkuYWNjZXNzKCB0aGlzLCBuYW1lLCB2YWx1ZSwgdHJ1ZSwgalF1ZXJ5LmF0dHIgKTsKCX0sCgoJcmVtb3ZlQXR0cjogZnVuY3Rpb24oIG5hbWUsIGZuICkgewoJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXsKCQkJalF1ZXJ5LmF0dHIoIHRoaXMsIG5hbWUsICIiICk7CgkJCWlmICggdGhpcy5ub2RlVHlwZSA9PT0gMSApIHsKCQkJCXRoaXMucmVtb3ZlQXR0cmlidXRlKCBuYW1lICk7CgkJCX0KCQl9KTsKCX0sCgoJYWRkQ2xhc3M6IGZ1bmN0aW9uKCB2YWx1ZSApIHsKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKHZhbHVlKSApIHsKCQkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihpKSB7CgkJCQl2YXIgc2VsZiA9IGpRdWVyeSh0aGlzKTsKCQkJCXNlbGYuYWRkQ2xhc3MoIHZhbHVlLmNhbGwodGhpcywgaSwgc2VsZi5hdHRyKCJjbGFzcyIpKSApOwoJCQl9KTsKCQl9CgoJCWlmICggdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAic3RyaW5nIiApIHsKCQkJdmFyIGNsYXNzTmFtZXMgPSAodmFsdWUgfHwgIiIpLnNwbGl0KCByc3BhY2VzICk7CgoJCQlmb3IgKCB2YXIgaSA9IDAsIGwgPSB0aGlzLmxlbmd0aDsgaSA8IGw7IGkrKyApIHsKCQkJCXZhciBlbGVtID0gdGhpc1tpXTsKCgkJCQlpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7CgkJCQkJaWYgKCAhZWxlbS5jbGFzc05hbWUgKSB7CgkJCQkJCWVsZW0uY2xhc3NOYW1lID0gdmFsdWU7CgoJCQkJCX0gZWxzZSB7CgkJCQkJCXZhciBjbGFzc05hbWUgPSAiICIgKyBlbGVtLmNsYXNzTmFtZSArICIgIiwKCQkJCQkJCXNldENsYXNzID0gZWxlbS5jbGFzc05hbWU7CgoJCQkJCQlmb3IgKCB2YXIgYyA9IDAsIGNsID0gY2xhc3NOYW1lcy5sZW5ndGg7IGMgPCBjbDsgYysrICkgewoJCQkJCQkJaWYgKCBjbGFzc05hbWUuaW5kZXhPZiggIiAiICsgY2xhc3NOYW1lc1tjXSArICIgIiApIDwgMCApIHsKCQkJCQkJCQlzZXRDbGFzcyArPSAiICIgKyBjbGFzc05hbWVzW2NdOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJCWVsZW0uY2xhc3NOYW1lID0galF1ZXJ5LnRyaW0oIHNldENsYXNzICk7CgkJCQkJfQoJCQkJfQoJCQl9CgkJfQoKCQlyZXR1cm4gdGhpczsKCX0sCgoJcmVtb3ZlQ2xhc3M6IGZ1bmN0aW9uKCB2YWx1ZSApIHsKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKHZhbHVlKSApIHsKCQkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihpKSB7CgkJCQl2YXIgc2VsZiA9IGpRdWVyeSh0aGlzKTsKCQkJCXNlbGYucmVtb3ZlQ2xhc3MoIHZhbHVlLmNhbGwodGhpcywgaSwgc2VsZi5hdHRyKCJjbGFzcyIpKSApOwoJCQl9KTsKCQl9CgoJCWlmICggKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gInN0cmluZyIpIHx8IHZhbHVlID09PSB1bmRlZmluZWQgKSB7CgkJCXZhciBjbGFzc05hbWVzID0gKHZhbHVlIHx8ICIiKS5zcGxpdCggcnNwYWNlcyApOwoKCQkJZm9yICggdmFyIGkgPSAwLCBsID0gdGhpcy5sZW5ndGg7IGkgPCBsOyBpKysgKSB7CgkJCQl2YXIgZWxlbSA9IHRoaXNbaV07CgoJCQkJaWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICYmIGVsZW0uY2xhc3NOYW1lICkgewoJCQkJCWlmICggdmFsdWUgKSB7CgkJCQkJCXZhciBjbGFzc05hbWUgPSAoIiAiICsgZWxlbS5jbGFzc05hbWUgKyAiICIpLnJlcGxhY2UocmNsYXNzLCAiICIpOwoJCQkJCQlmb3IgKCB2YXIgYyA9IDAsIGNsID0gY2xhc3NOYW1lcy5sZW5ndGg7IGMgPCBjbDsgYysrICkgewoJCQkJCQkJY2xhc3NOYW1lID0gY2xhc3NOYW1lLnJlcGxhY2UoIiAiICsgY2xhc3NOYW1lc1tjXSArICIgIiwgIiAiKTsKCQkJCQkJfQoJCQkJCQllbGVtLmNsYXNzTmFtZSA9IGpRdWVyeS50cmltKCBjbGFzc05hbWUgKTsKCgkJCQkJfSBlbHNlIHsKCQkJCQkJZWxlbS5jbGFzc05hbWUgPSAiIjsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgoJCXJldHVybiB0aGlzOwoJfSwKCgl0b2dnbGVDbGFzczogZnVuY3Rpb24oIHZhbHVlLCBzdGF0ZVZhbCApIHsKCQl2YXIgdHlwZSA9IHR5cGVvZiB2YWx1ZSwKCQkJaXNCb29sID0gdHlwZW9mIHN0YXRlVmFsID09PSAiYm9vbGVhbiI7CgoJCWlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHZhbHVlICkgKSB7CgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oaSkgewoJCQkJdmFyIHNlbGYgPSBqUXVlcnkodGhpcyk7CgkJCQlzZWxmLnRvZ2dsZUNsYXNzKCB2YWx1ZS5jYWxsKHRoaXMsIGksIHNlbGYuYXR0cigiY2xhc3MiKSwgc3RhdGVWYWwpLCBzdGF0ZVZhbCApOwoJCQl9KTsKCQl9CgoJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCWlmICggdHlwZSA9PT0gInN0cmluZyIgKSB7CgkJCQkvLyB0b2dnbGUgaW5kaXZpZHVhbCBjbGFzcyBuYW1lcwoJCQkJdmFyIGNsYXNzTmFtZSwKCQkJCQlpID0gMCwKCQkJCQlzZWxmID0galF1ZXJ5KCB0aGlzICksCgkJCQkJc3RhdGUgPSBzdGF0ZVZhbCwKCQkJCQljbGFzc05hbWVzID0gdmFsdWUuc3BsaXQoIHJzcGFjZXMgKTsKCgkJCQl3aGlsZSAoIChjbGFzc05hbWUgPSBjbGFzc05hbWVzWyBpKysgXSkgKSB7CgkJCQkJLy8gY2hlY2sgZWFjaCBjbGFzc05hbWUgZ2l2ZW4sIHNwYWNlIHNlcGVyYXRlZCBsaXN0CgkJCQkJc3RhdGUgPSBpc0Jvb2wgPyBzdGF0ZSA6ICFzZWxmLmhhc0NsYXNzKCBjbGFzc05hbWUgKTsKCQkJCQlzZWxmWyBzdGF0ZSA/ICJhZGRDbGFzcyIgOiAicmVtb3ZlQ2xhc3MiIF0oIGNsYXNzTmFtZSApOwoJCQkJfQoKCQkJfSBlbHNlIGlmICggdHlwZSA9PT0gInVuZGVmaW5lZCIgfHwgdHlwZSA9PT0gImJvb2xlYW4iICkgewoJCQkJaWYgKCB0aGlzLmNsYXNzTmFtZSApIHsKCQkJCQkvLyBzdG9yZSBjbGFzc05hbWUgaWYgc2V0CgkJCQkJalF1ZXJ5Ll9kYXRhKCB0aGlzLCAiX19jbGFzc05hbWVfXyIsIHRoaXMuY2xhc3NOYW1lICk7CgkJCQl9CgoJCQkJLy8gdG9nZ2xlIHdob2xlIGNsYXNzTmFtZQoJCQkJdGhpcy5jbGFzc05hbWUgPSB0aGlzLmNsYXNzTmFtZSB8fCB2YWx1ZSA9PT0gZmFsc2UgPyAiIiA6IGpRdWVyeS5fZGF0YSggdGhpcywgIl9fY2xhc3NOYW1lX18iICkgfHwgIiI7CgkJCX0KCQl9KTsKCX0sCgoJaGFzQ2xhc3M6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHsKCQl2YXIgY2xhc3NOYW1lID0gIiAiICsgc2VsZWN0b3IgKyAiICI7CgkJZm9yICggdmFyIGkgPSAwLCBsID0gdGhpcy5sZW5ndGg7IGkgPCBsOyBpKysgKSB7CgkJCWlmICggKCIgIiArIHRoaXNbaV0uY2xhc3NOYW1lICsgIiAiKS5yZXBsYWNlKHJjbGFzcywgIiAiKS5pbmRleE9mKCBjbGFzc05hbWUgKSA+IC0xICkgewoJCQkJcmV0dXJuIHRydWU7CgkJCX0KCQl9CgoJCXJldHVybiBmYWxzZTsKCX0sCgoJdmFsOiBmdW5jdGlvbiggdmFsdWUgKSB7CgkJaWYgKCAhYXJndW1lbnRzLmxlbmd0aCApIHsKCQkJdmFyIGVsZW0gPSB0aGlzWzBdOwoKCQkJaWYgKCBlbGVtICkgewoJCQkJaWYgKCBqUXVlcnkubm9kZU5hbWUoIGVsZW0sICJvcHRpb24iICkgKSB7CgkJCQkJLy8gYXR0cmlidXRlcy52YWx1ZSBpcyB1bmRlZmluZWQgaW4gQmxhY2tiZXJyeSA0LjcgYnV0CgkJCQkJLy8gdXNlcyAudmFsdWUuIFNlZSAjNjkzMgoJCQkJCXZhciB2YWwgPSBlbGVtLmF0dHJpYnV0ZXMudmFsdWU7CgkJCQkJcmV0dXJuICF2YWwgfHwgdmFsLnNwZWNpZmllZCA/IGVsZW0udmFsdWUgOiBlbGVtLnRleHQ7CgkJCQl9CgoJCQkJLy8gV2UgbmVlZCB0byBoYW5kbGUgc2VsZWN0IGJveGVzIHNwZWNpYWwKCQkJCWlmICggalF1ZXJ5Lm5vZGVOYW1lKCBlbGVtLCAic2VsZWN0IiApICkgewoJCQkJCXZhciBpbmRleCA9IGVsZW0uc2VsZWN0ZWRJbmRleCwKCQkJCQkJdmFsdWVzID0gW10sCgkJCQkJCW9wdGlvbnMgPSBlbGVtLm9wdGlvbnMsCgkJCQkJCW9uZSA9IGVsZW0udHlwZSA9PT0gInNlbGVjdC1vbmUiOwoKCQkJCQkvLyBOb3RoaW5nIHdhcyBzZWxlY3RlZAoJCQkJCWlmICggaW5kZXggPCAwICkgewoJCQkJCQlyZXR1cm4gbnVsbDsKCQkJCQl9CgoJCQkJCS8vIExvb3AgdGhyb3VnaCBhbGwgdGhlIHNlbGVjdGVkIG9wdGlvbnMKCQkJCQlmb3IgKCB2YXIgaSA9IG9uZSA/IGluZGV4IDogMCwgbWF4ID0gb25lID8gaW5kZXggKyAxIDogb3B0aW9ucy5sZW5ndGg7IGkgPCBtYXg7IGkrKyApIHsKCQkJCQkJdmFyIG9wdGlvbiA9IG9wdGlvbnNbIGkgXTsKCgkJCQkJCS8vIERvbid0IHJldHVybiBvcHRpb25zIHRoYXQgYXJlIGRpc2FibGVkIG9yIGluIGEgZGlzYWJsZWQgb3B0Z3JvdXAKCQkJCQkJaWYgKCBvcHRpb24uc2VsZWN0ZWQgJiYgKGpRdWVyeS5zdXBwb3J0Lm9wdERpc2FibGVkID8gIW9wdGlvbi5kaXNhYmxlZCA6IG9wdGlvbi5nZXRBdHRyaWJ1dGUoImRpc2FibGVkIikgPT09IG51bGwpICYmCgkJCQkJCQkJKCFvcHRpb24ucGFyZW50Tm9kZS5kaXNhYmxlZCB8fCAhalF1ZXJ5Lm5vZGVOYW1lKCBvcHRpb24ucGFyZW50Tm9kZSwgIm9wdGdyb3VwIiApKSApIHsKCgkJCQkJCQkvLyBHZXQgdGhlIHNwZWNpZmljIHZhbHVlIGZvciB0aGUgb3B0aW9uCgkJCQkJCQl2YWx1ZSA9IGpRdWVyeShvcHRpb24pLnZhbCgpOwoKCQkJCQkJCS8vIFdlIGRvbid0IG5lZWQgYW4gYXJyYXkgZm9yIG9uZSBzZWxlY3RzCgkJCQkJCQlpZiAoIG9uZSApIHsKCQkJCQkJCQlyZXR1cm4gdmFsdWU7CgkJCQkJCQl9CgoJCQkJCQkJLy8gTXVsdGktU2VsZWN0cyByZXR1cm4gYW4gYXJyYXkKCQkJCQkJCXZhbHVlcy5wdXNoKCB2YWx1ZSApOwoJCQkJCQl9CgkJCQkJfQoKCQkJCQkvLyBGaXhlcyBCdWcgIzI1NTEgLS0gc2VsZWN0LnZhbCgpIGJyb2tlbiBpbiBJRSBhZnRlciBmb3JtLnJlc2V0KCkKCQkJCQlpZiAoIG9uZSAmJiAhdmFsdWVzLmxlbmd0aCAmJiBvcHRpb25zLmxlbmd0aCApIHsKCQkJCQkJcmV0dXJuIGpRdWVyeSggb3B0aW9uc1sgaW5kZXggXSApLnZhbCgpOwoJCQkJCX0KCgkJCQkJcmV0dXJuIHZhbHVlczsKCQkJCX0KCgkJCQkvLyBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgaW4gV2Via2l0ICIiIGlzIHJldHVybmVkIGluc3RlYWQgb2YgIm9uIiBpZiBhIHZhbHVlIGlzbid0IHNwZWNpZmllZAoJCQkJaWYgKCBycmFkaW9jaGVjay50ZXN0KCBlbGVtLnR5cGUgKSAmJiAhalF1ZXJ5LnN1cHBvcnQuY2hlY2tPbiApIHsKCQkJCQlyZXR1cm4gZWxlbS5nZXRBdHRyaWJ1dGUoInZhbHVlIikgPT09IG51bGwgPyAib24iIDogZWxlbS52YWx1ZTsKCQkJCX0KCgkJCQkvLyBFdmVyeXRoaW5nIGVsc2UsIHdlIGp1c3QgZ3JhYiB0aGUgdmFsdWUKCQkJCXJldHVybiAoZWxlbS52YWx1ZSB8fCAiIikucmVwbGFjZShycmV0dXJuLCAiIik7CgoJCQl9CgoJCQlyZXR1cm4gdW5kZWZpbmVkOwoJCX0KCgkJdmFyIGlzRnVuY3Rpb24gPSBqUXVlcnkuaXNGdW5jdGlvbih2YWx1ZSk7CgoJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oaSkgewoJCQl2YXIgc2VsZiA9IGpRdWVyeSh0aGlzKSwgdmFsID0gdmFsdWU7CgoJCQlpZiAoIHRoaXMubm9kZVR5cGUgIT09IDEgKSB7CgkJCQlyZXR1cm47CgkJCX0KCgkJCWlmICggaXNGdW5jdGlvbiApIHsKCQkJCXZhbCA9IHZhbHVlLmNhbGwodGhpcywgaSwgc2VsZi52YWwoKSk7CgkJCX0KCgkJCS8vIFRyZWF0IG51bGwvdW5kZWZpbmVkIGFzICIiOyBjb252ZXJ0IG51bWJlcnMgdG8gc3RyaW5nCgkJCWlmICggdmFsID09IG51bGwgKSB7CgkJCQl2YWwgPSAiIjsKCQkJfSBlbHNlIGlmICggdHlwZW9mIHZhbCA9PT0gIm51bWJlciIgKSB7CgkJCQl2YWwgKz0gIiI7CgkJCX0gZWxzZSBpZiAoIGpRdWVyeS5pc0FycmF5KHZhbCkgKSB7CgkJCQl2YWwgPSBqUXVlcnkubWFwKHZhbCwgZnVuY3Rpb24gKHZhbHVlKSB7CgkJCQkJcmV0dXJuIHZhbHVlID09IG51bGwgPyAiIiA6IHZhbHVlICsgIiI7CgkJCQl9KTsKCQkJfQoKCQkJaWYgKCBqUXVlcnkuaXNBcnJheSh2YWwpICYmIHJyYWRpb2NoZWNrLnRlc3QoIHRoaXMudHlwZSApICkgewoJCQkJdGhpcy5jaGVja2VkID0galF1ZXJ5LmluQXJyYXkoIHNlbGYudmFsKCksIHZhbCApID49IDA7CgoJCQl9IGVsc2UgaWYgKCBqUXVlcnkubm9kZU5hbWUoIHRoaXMsICJzZWxlY3QiICkgKSB7CgkJCQl2YXIgdmFsdWVzID0galF1ZXJ5Lm1ha2VBcnJheSh2YWwpOwoKCQkJCWpRdWVyeSggIm9wdGlvbiIsIHRoaXMgKS5lYWNoKGZ1bmN0aW9uKCkgewoJCQkJCXRoaXMuc2VsZWN0ZWQgPSBqUXVlcnkuaW5BcnJheSggalF1ZXJ5KHRoaXMpLnZhbCgpLCB2YWx1ZXMgKSA+PSAwOwoJCQkJfSk7CgoJCQkJaWYgKCAhdmFsdWVzLmxlbmd0aCApIHsKCQkJCQl0aGlzLnNlbGVjdGVkSW5kZXggPSAtMTsKCQkJCX0KCgkJCX0gZWxzZSB7CgkJCQl0aGlzLnZhbHVlID0gdmFsOwoJCQl9CgkJfSk7Cgl9Cn0pOwoKalF1ZXJ5LmV4dGVuZCh7CglhdHRyRm46IHsKCQl2YWw6IHRydWUsCgkJY3NzOiB0cnVlLAoJCWh0bWw6IHRydWUsCgkJdGV4dDogdHJ1ZSwKCQlkYXRhOiB0cnVlLAoJCXdpZHRoOiB0cnVlLAoJCWhlaWdodDogdHJ1ZSwKCQlvZmZzZXQ6IHRydWUKCX0sCgoJYXR0cjogZnVuY3Rpb24oIGVsZW0sIG5hbWUsIHZhbHVlLCBwYXNzICkgewoJCS8vIGRvbid0IGdldC9zZXQgYXR0cmlidXRlcyBvbiB0ZXh0LCBjb21tZW50IGFuZCBhdHRyaWJ1dGUgbm9kZXMKCQlpZiAoICFlbGVtIHx8IGVsZW0ubm9kZVR5cGUgPT09IDMgfHwgZWxlbS5ub2RlVHlwZSA9PT0gOCB8fCBlbGVtLm5vZGVUeXBlID09PSAyICkgewoJCQlyZXR1cm4gdW5kZWZpbmVkOwoJCX0KCgkJaWYgKCBwYXNzICYmIG5hbWUgaW4galF1ZXJ5LmF0dHJGbiApIHsKCQkJcmV0dXJuIGpRdWVyeShlbGVtKVtuYW1lXSh2YWx1ZSk7CgkJfQoKCQl2YXIgbm90eG1sID0gZWxlbS5ub2RlVHlwZSAhPT0gMSB8fCAhalF1ZXJ5LmlzWE1MRG9jKCBlbGVtICksCgkJCS8vIFdoZXRoZXIgd2UgYXJlIHNldHRpbmcgKG9yIGdldHRpbmcpCgkJCXNldCA9IHZhbHVlICE9PSB1bmRlZmluZWQ7CgoJCS8vIFRyeSB0byBub3JtYWxpemUvZml4IHRoZSBuYW1lCgkJbmFtZSA9IG5vdHhtbCAmJiBqUXVlcnkucHJvcHNbIG5hbWUgXSB8fCBuYW1lOwoKCQkvLyBPbmx5IGRvIGFsbCB0aGUgZm9sbG93aW5nIGlmIHRoaXMgaXMgYSBub2RlIChmYXN0ZXIgZm9yIHN0eWxlKQoJCWlmICggZWxlbS5ub2RlVHlwZSA9PT0gMSApIHsKCQkJLy8gVGhlc2UgYXR0cmlidXRlcyByZXF1aXJlIHNwZWNpYWwgdHJlYXRtZW50CgkJCXZhciBzcGVjaWFsID0gcnNwZWNpYWx1cmwudGVzdCggbmFtZSApOwoKCQkJLy8gU2FmYXJpIG1pcy1yZXBvcnRzIHRoZSBkZWZhdWx0IHNlbGVjdGVkIHByb3BlcnR5IG9mIGFuIG9wdGlvbgoJCQkvLyBBY2Nlc3NpbmcgdGhlIHBhcmVudCdzIHNlbGVjdGVkSW5kZXggcHJvcGVydHkgZml4ZXMgaXQKCQkJaWYgKCBuYW1lID09PSAic2VsZWN0ZWQiICYmICFqUXVlcnkuc3VwcG9ydC5vcHRTZWxlY3RlZCApIHsKCQkJCXZhciBwYXJlbnQgPSBlbGVtLnBhcmVudE5vZGU7CgkJCQlpZiAoIHBhcmVudCApIHsKCQkJCQlwYXJlbnQuc2VsZWN0ZWRJbmRleDsKCgkJCQkJLy8gTWFrZSBzdXJlIHRoYXQgaXQgYWxzbyB3b3JrcyB3aXRoIG9wdGdyb3Vwcywgc2VlICM1NzAxCgkJCQkJaWYgKCBwYXJlbnQucGFyZW50Tm9kZSApIHsKCQkJCQkJcGFyZW50LnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleDsKCQkJCQl9CgkJCQl9CgkJCX0KCgkJCS8vIElmIGFwcGxpY2FibGUsIGFjY2VzcyB0aGUgYXR0cmlidXRlIHZpYSB0aGUgRE9NIDAgd2F5CgkJCS8vICdpbicgY2hlY2tzIGZhaWwgaW4gQmxhY2tiZXJyeSA0LjcgIzY5MzEKCQkJaWYgKCAobmFtZSBpbiBlbGVtIHx8IGVsZW1bIG5hbWUgXSAhPT0gdW5kZWZpbmVkKSAmJiBub3R4bWwgJiYgIXNwZWNpYWwgKSB7CgkJCQlpZiAoIHNldCApIHsKCQkJCQkvLyBXZSBjYW4ndCBhbGxvdyB0aGUgdHlwZSBwcm9wZXJ0eSB0byBiZSBjaGFuZ2VkIChzaW5jZSBpdCBjYXVzZXMgcHJvYmxlbXMgaW4gSUUpCgkJCQkJaWYgKCBuYW1lID09PSAidHlwZSIgJiYgcnR5cGUudGVzdCggZWxlbS5ub2RlTmFtZSApICYmIGVsZW0ucGFyZW50Tm9kZSApIHsKCQkJCQkJalF1ZXJ5LmVycm9yKCAidHlwZSBwcm9wZXJ0eSBjYW4ndCBiZSBjaGFuZ2VkIiApOwoJCQkJCX0KCgkJCQkJaWYgKCB2YWx1ZSA9PT0gbnVsbCApIHsKCQkJCQkJaWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICkgewoJCQkJCQkJZWxlbS5yZW1vdmVBdHRyaWJ1dGUoIG5hbWUgKTsKCQkJCQkJfQoKCQkJCQl9IGVsc2UgewoJCQkJCQllbGVtWyBuYW1lIF0gPSB2YWx1ZTsKCQkJCQl9CgkJCQl9CgoJCQkJLy8gYnJvd3NlcnMgaW5kZXggZWxlbWVudHMgYnkgaWQvbmFtZSBvbiBmb3JtcywgZ2l2ZSBwcmlvcml0eSB0byBhdHRyaWJ1dGVzLgoJCQkJaWYgKCBqUXVlcnkubm9kZU5hbWUoIGVsZW0sICJmb3JtIiApICYmIGVsZW0uZ2V0QXR0cmlidXRlTm9kZShuYW1lKSApIHsKCQkJCQlyZXR1cm4gZWxlbS5nZXRBdHRyaWJ1dGVOb2RlKCBuYW1lICkubm9kZVZhbHVlOwoJCQkJfQoKCQkJCS8vIGVsZW0udGFiSW5kZXggZG9lc24ndCBhbHdheXMgcmV0dXJuIHRoZSBjb3JyZWN0IHZhbHVlIHdoZW4gaXQgaGFzbid0IGJlZW4gZXhwbGljaXRseSBzZXQKCQkJCS8vIGh0dHA6Ly9mbHVpZHByb2plY3Qub3JnL2Jsb2cvMjAwOC8wMS8wOS9nZXR0aW5nLXNldHRpbmctYW5kLXJlbW92aW5nLXRhYmluZGV4LXZhbHVlcy13aXRoLWphdmFzY3JpcHQvCgkJCQlpZiAoIG5hbWUgPT09ICJ0YWJJbmRleCIgKSB7CgkJCQkJdmFyIGF0dHJpYnV0ZU5vZGUgPSBlbGVtLmdldEF0dHJpYnV0ZU5vZGUoICJ0YWJJbmRleCIgKTsKCgkJCQkJcmV0dXJuIGF0dHJpYnV0ZU5vZGUgJiYgYXR0cmlidXRlTm9kZS5zcGVjaWZpZWQgPwoJCQkJCQlhdHRyaWJ1dGVOb2RlLnZhbHVlIDoKCQkJCQkJcmZvY3VzYWJsZS50ZXN0KCBlbGVtLm5vZGVOYW1lICkgfHwgcmNsaWNrYWJsZS50ZXN0KCBlbGVtLm5vZGVOYW1lICkgJiYgZWxlbS5ocmVmID8KCQkJCQkJCTAgOgoJCQkJCQkJdW5kZWZpbmVkOwoJCQkJfQoKCQkJCXJldHVybiBlbGVtWyBuYW1lIF07CgkJCX0KCgkJCWlmICggIWpRdWVyeS5zdXBwb3J0LnN0eWxlICYmIG5vdHhtbCAmJiBuYW1lID09PSAic3R5bGUiICkgewoJCQkJaWYgKCBzZXQgKSB7CgkJCQkJZWxlbS5zdHlsZS5jc3NUZXh0ID0gIiIgKyB2YWx1ZTsKCQkJCX0KCgkJCQlyZXR1cm4gZWxlbS5zdHlsZS5jc3NUZXh0OwoJCQl9CgoJCQlpZiAoIHNldCApIHsKCQkJCS8vIGNvbnZlcnQgdGhlIHZhbHVlIHRvIGEgc3RyaW5nIChhbGwgYnJvd3NlcnMgZG8gdGhpcyBidXQgSUUpIHNlZSAjMTA3MAoJCQkJZWxlbS5zZXRBdHRyaWJ1dGUoIG5hbWUsICIiICsgdmFsdWUgKTsKCQkJfQoKCQkJLy8gRW5zdXJlIHRoYXQgbWlzc2luZyBhdHRyaWJ1dGVzIHJldHVybiB1bmRlZmluZWQKCQkJLy8gQmxhY2tiZXJyeSA0LjcgcmV0dXJucyAiIiBmcm9tIGdldEF0dHJpYnV0ZSAjNjkzOAoJCQlpZiAoICFlbGVtLmF0dHJpYnV0ZXNbIG5hbWUgXSAmJiAoZWxlbS5oYXNBdHRyaWJ1dGUgJiYgIWVsZW0uaGFzQXR0cmlidXRlKCBuYW1lICkpICkgewoJCQkJcmV0dXJuIHVuZGVmaW5lZDsKCQkJfQoKCQkJdmFyIGF0dHIgPSAhalF1ZXJ5LnN1cHBvcnQuaHJlZk5vcm1hbGl6ZWQgJiYgbm90eG1sICYmIHNwZWNpYWwgPwoJCQkJCS8vIFNvbWUgYXR0cmlidXRlcyByZXF1aXJlIGEgc3BlY2lhbCBjYWxsIG9uIElFCgkJCQkJZWxlbS5nZXRBdHRyaWJ1dGUoIG5hbWUsIDIgKSA6CgkJCQkJZWxlbS5nZXRBdHRyaWJ1dGUoIG5hbWUgKTsKCgkJCS8vIE5vbi1leGlzdGVudCBhdHRyaWJ1dGVzIHJldHVybiBudWxsLCB3ZSBub3JtYWxpemUgdG8gdW5kZWZpbmVkCgkJCXJldHVybiBhdHRyID09PSBudWxsID8gdW5kZWZpbmVkIDogYXR0cjsKCQl9CgkJLy8gSGFuZGxlIGV2ZXJ5dGhpbmcgd2hpY2ggaXNuJ3QgYSBET00gZWxlbWVudCBub2RlCgkJaWYgKCBzZXQgKSB7CgkJCWVsZW1bIG5hbWUgXSA9IHZhbHVlOwoJCX0KCQlyZXR1cm4gZWxlbVsgbmFtZSBdOwoJfQp9KTsKCgoKCnZhciBybmFtZXNwYWNlcyA9IC9cLiguKikkLywKCXJmb3JtRWxlbXMgPSAvXig/OnRleHRhcmVhfGlucHV0fHNlbGVjdCkkL2ksCglycGVyaW9kID0gL1wuL2csCglyc3BhY2UgPSAvIC9nLAoJcmVzY2FwZSA9IC9bXlx3XHMufGBdL2csCglmY2xlYW51cCA9IGZ1bmN0aW9uKCBubSApIHsKCQlyZXR1cm4gbm0ucmVwbGFjZShyZXNjYXBlLCAiXFwkJiIpOwoJfTsKCi8qCiAqIEEgbnVtYmVyIG9mIGhlbHBlciBmdW5jdGlvbnMgdXNlZCBmb3IgbWFuYWdpbmcgZXZlbnRzLgogKiBNYW55IG9mIHRoZSBpZGVhcyBiZWhpbmQgdGhpcyBjb2RlIG9yaWdpbmF0ZWQgZnJvbQogKiBEZWFuIEVkd2FyZHMnIGFkZEV2ZW50IGxpYnJhcnkuCiAqLwpqUXVlcnkuZXZlbnQgPSB7CgoJLy8gQmluZCBhbiBldmVudCB0byBhbiBlbGVtZW50CgkvLyBPcmlnaW5hbCBieSBEZWFuIEVkd2FyZHMKCWFkZDogZnVuY3Rpb24oIGVsZW0sIHR5cGVzLCBoYW5kbGVyLCBkYXRhICkgewoJCWlmICggZWxlbS5ub2RlVHlwZSA9PT0gMyB8fCBlbGVtLm5vZGVUeXBlID09PSA4ICkgewoJCQlyZXR1cm47CgkJfQoKCQkvLyBUT0RPIDo6IFVzZSBhIHRyeS9jYXRjaCB1bnRpbCBpdCdzIHNhZmUgdG8gcHVsbCB0aGlzIG91dCAobGlrZWx5IDEuNikKCQkvLyBNaW5vciByZWxlYXNlIGZpeCBmb3IgYnVnICM4MDE4CgkJdHJ5IHsKCQkJLy8gRm9yIHdoYXRldmVyIHJlYXNvbiwgSUUgaGFzIHRyb3VibGUgcGFzc2luZyB0aGUgd2luZG93IG9iamVjdAoJCQkvLyBhcm91bmQsIGNhdXNpbmcgaXQgdG8gYmUgY2xvbmVkIGluIHRoZSBwcm9jZXNzCgkJCWlmICggalF1ZXJ5LmlzV2luZG93KCBlbGVtICkgJiYgKCBlbGVtICE9PSB3aW5kb3cgJiYgIWVsZW0uZnJhbWVFbGVtZW50ICkgKSB7CgkJCQllbGVtID0gd2luZG93OwoJCQl9CgkJfQoJCWNhdGNoICggZSApIHt9CgoJCWlmICggaGFuZGxlciA9PT0gZmFsc2UgKSB7CgkJCWhhbmRsZXIgPSByZXR1cm5GYWxzZTsKCQl9IGVsc2UgaWYgKCAhaGFuZGxlciApIHsKCQkJLy8gRml4ZXMgYnVnICM3MjI5LiBGaXggcmVjb21tZW5kZWQgYnkgamRhbHRvbgoJCQlyZXR1cm47CgkJfQoKCQl2YXIgaGFuZGxlT2JqSW4sIGhhbmRsZU9iajsKCgkJaWYgKCBoYW5kbGVyLmhhbmRsZXIgKSB7CgkJCWhhbmRsZU9iakluID0gaGFuZGxlcjsKCQkJaGFuZGxlciA9IGhhbmRsZU9iakluLmhhbmRsZXI7CgkJfQoKCQkvLyBNYWtlIHN1cmUgdGhhdCB0aGUgZnVuY3Rpb24gYmVpbmcgZXhlY3V0ZWQgaGFzIGEgdW5pcXVlIElECgkJaWYgKCAhaGFuZGxlci5ndWlkICkgewoJCQloYW5kbGVyLmd1aWQgPSBqUXVlcnkuZ3VpZCsrOwoJCX0KCgkJLy8gSW5pdCB0aGUgZWxlbWVudCdzIGV2ZW50IHN0cnVjdHVyZQoJCXZhciBlbGVtRGF0YSA9IGpRdWVyeS5fZGF0YSggZWxlbSApOwoKCQkvLyBJZiBubyBlbGVtRGF0YSBpcyBmb3VuZCB0aGVuIHdlIG11c3QgYmUgdHJ5aW5nIHRvIGJpbmQgdG8gb25lIG9mIHRoZQoJCS8vIGJhbm5lZCBub0RhdGEgZWxlbWVudHMKCQlpZiAoICFlbGVtRGF0YSApIHsKCQkJcmV0dXJuOwoJCX0KCgkJdmFyIGV2ZW50cyA9IGVsZW1EYXRhLmV2ZW50cywKCQkJZXZlbnRIYW5kbGUgPSBlbGVtRGF0YS5oYW5kbGU7CgoJCWlmICggIWV2ZW50cyApIHsKCQkJZWxlbURhdGEuZXZlbnRzID0gZXZlbnRzID0ge307CgkJfQoKCQlpZiAoICFldmVudEhhbmRsZSApIHsKCQkJZWxlbURhdGEuaGFuZGxlID0gZXZlbnRIYW5kbGUgPSBmdW5jdGlvbigpIHsKCQkJCS8vIEhhbmRsZSB0aGUgc2Vjb25kIGV2ZW50IG9mIGEgdHJpZ2dlciBhbmQgd2hlbgoJCQkJLy8gYW4gZXZlbnQgaXMgY2FsbGVkIGFmdGVyIGEgcGFnZSBoYXMgdW5sb2FkZWQKCQkJCXJldHVybiB0eXBlb2YgalF1ZXJ5ICE9PSAidW5kZWZpbmVkIiAmJiAhalF1ZXJ5LmV2ZW50LnRyaWdnZXJlZCA/CgkJCQkJalF1ZXJ5LmV2ZW50LmhhbmRsZS5hcHBseSggZXZlbnRIYW5kbGUuZWxlbSwgYXJndW1lbnRzICkgOgoJCQkJCXVuZGVmaW5lZDsKCQkJfTsKCQl9CgoJCS8vIEFkZCBlbGVtIGFzIGEgcHJvcGVydHkgb2YgdGhlIGhhbmRsZSBmdW5jdGlvbgoJCS8vIFRoaXMgaXMgdG8gcHJldmVudCBhIG1lbW9yeSBsZWFrIHdpdGggbm9uLW5hdGl2ZSBldmVudHMgaW4gSUUuCgkJZXZlbnRIYW5kbGUuZWxlbSA9IGVsZW07CgoJCS8vIEhhbmRsZSBtdWx0aXBsZSBldmVudHMgc2VwYXJhdGVkIGJ5IGEgc3BhY2UKCQkvLyBqUXVlcnkoLi4uKS5iaW5kKCJtb3VzZW92ZXIgbW91c2VvdXQiLCBmbik7CgkJdHlwZXMgPSB0eXBlcy5zcGxpdCgiICIpOwoKCQl2YXIgdHlwZSwgaSA9IDAsIG5hbWVzcGFjZXM7CgoJCXdoaWxlICggKHR5cGUgPSB0eXBlc1sgaSsrIF0pICkgewoJCQloYW5kbGVPYmogPSBoYW5kbGVPYmpJbiA/CgkJCQlqUXVlcnkuZXh0ZW5kKHt9LCBoYW5kbGVPYmpJbikgOgoJCQkJeyBoYW5kbGVyOiBoYW5kbGVyLCBkYXRhOiBkYXRhIH07CgoJCQkvLyBOYW1lc3BhY2VkIGV2ZW50IGhhbmRsZXJzCgkJCWlmICggdHlwZS5pbmRleE9mKCIuIikgPiAtMSApIHsKCQkJCW5hbWVzcGFjZXMgPSB0eXBlLnNwbGl0KCIuIik7CgkJCQl0eXBlID0gbmFtZXNwYWNlcy5zaGlmdCgpOwoJCQkJaGFuZGxlT2JqLm5hbWVzcGFjZSA9IG5hbWVzcGFjZXMuc2xpY2UoMCkuc29ydCgpLmpvaW4oIi4iKTsKCgkJCX0gZWxzZSB7CgkJCQluYW1lc3BhY2VzID0gW107CgkJCQloYW5kbGVPYmoubmFtZXNwYWNlID0gIiI7CgkJCX0KCgkJCWhhbmRsZU9iai50eXBlID0gdHlwZTsKCQkJaWYgKCAhaGFuZGxlT2JqLmd1aWQgKSB7CgkJCQloYW5kbGVPYmouZ3VpZCA9IGhhbmRsZXIuZ3VpZDsKCQkJfQoKCQkJLy8gR2V0IHRoZSBjdXJyZW50IGxpc3Qgb2YgZnVuY3Rpb25zIGJvdW5kIHRvIHRoaXMgZXZlbnQKCQkJdmFyIGhhbmRsZXJzID0gZXZlbnRzWyB0eXBlIF0sCgkJCQlzcGVjaWFsID0galF1ZXJ5LmV2ZW50LnNwZWNpYWxbIHR5cGUgXSB8fCB7fTsKCgkJCS8vIEluaXQgdGhlIGV2ZW50IGhhbmRsZXIgcXVldWUKCQkJaWYgKCAhaGFuZGxlcnMgKSB7CgkJCQloYW5kbGVycyA9IGV2ZW50c1sgdHlwZSBdID0gW107CgoJCQkJLy8gQ2hlY2sgZm9yIGEgc3BlY2lhbCBldmVudCBoYW5kbGVyCgkJCQkvLyBPbmx5IHVzZSBhZGRFdmVudExpc3RlbmVyL2F0dGFjaEV2ZW50IGlmIHRoZSBzcGVjaWFsCgkJCQkvLyBldmVudHMgaGFuZGxlciByZXR1cm5zIGZhbHNlCgkJCQlpZiAoICFzcGVjaWFsLnNldHVwIHx8IHNwZWNpYWwuc2V0dXAuY2FsbCggZWxlbSwgZGF0YSwgbmFtZXNwYWNlcywgZXZlbnRIYW5kbGUgKSA9PT0gZmFsc2UgKSB7CgkJCQkJLy8gQmluZCB0aGUgZ2xvYmFsIGV2ZW50IGhhbmRsZXIgdG8gdGhlIGVsZW1lbnQKCQkJCQlpZiAoIGVsZW0uYWRkRXZlbnRMaXN0ZW5lciApIHsKCQkJCQkJZWxlbS5hZGRFdmVudExpc3RlbmVyKCB0eXBlLCBldmVudEhhbmRsZSwgZmFsc2UgKTsKCgkJCQkJfSBlbHNlIGlmICggZWxlbS5hdHRhY2hFdmVudCApIHsKCQkJCQkJZWxlbS5hdHRhY2hFdmVudCggIm9uIiArIHR5cGUsIGV2ZW50SGFuZGxlICk7CgkJCQkJfQoJCQkJfQoJCQl9CgoJCQlpZiAoIHNwZWNpYWwuYWRkICkgewoJCQkJc3BlY2lhbC5hZGQuY2FsbCggZWxlbSwgaGFuZGxlT2JqICk7CgoJCQkJaWYgKCAhaGFuZGxlT2JqLmhhbmRsZXIuZ3VpZCApIHsKCQkJCQloYW5kbGVPYmouaGFuZGxlci5ndWlkID0gaGFuZGxlci5ndWlkOwoJCQkJfQoJCQl9CgoJCQkvLyBBZGQgdGhlIGZ1bmN0aW9uIHRvIHRoZSBlbGVtZW50J3MgaGFuZGxlciBsaXN0CgkJCWhhbmRsZXJzLnB1c2goIGhhbmRsZU9iaiApOwoKCQkJLy8gS2VlcCB0cmFjayBvZiB3aGljaCBldmVudHMgaGF2ZSBiZWVuIHVzZWQsIGZvciBnbG9iYWwgdHJpZ2dlcmluZwoJCQlqUXVlcnkuZXZlbnQuZ2xvYmFsWyB0eXBlIF0gPSB0cnVlOwoJCX0KCgkJLy8gTnVsbGlmeSBlbGVtIHRvIHByZXZlbnQgbWVtb3J5IGxlYWtzIGluIElFCgkJZWxlbSA9IG51bGw7Cgl9LAoKCWdsb2JhbDoge30sCgoJLy8gRGV0YWNoIGFuIGV2ZW50IG9yIHNldCBvZiBldmVudHMgZnJvbSBhbiBlbGVtZW50CglyZW1vdmU6IGZ1bmN0aW9uKCBlbGVtLCB0eXBlcywgaGFuZGxlciwgcG9zICkgewoJCS8vIGRvbid0IGRvIGV2ZW50cyBvbiB0ZXh0IGFuZCBjb21tZW50IG5vZGVzCgkJaWYgKCBlbGVtLm5vZGVUeXBlID09PSAzIHx8IGVsZW0ubm9kZVR5cGUgPT09IDggKSB7CgkJCXJldHVybjsKCQl9CgoJCWlmICggaGFuZGxlciA9PT0gZmFsc2UgKSB7CgkJCWhhbmRsZXIgPSByZXR1cm5GYWxzZTsKCQl9CgoJCXZhciByZXQsIHR5cGUsIGZuLCBqLCBpID0gMCwgYWxsLCBuYW1lc3BhY2VzLCBuYW1lc3BhY2UsIHNwZWNpYWwsIGV2ZW50VHlwZSwgaGFuZGxlT2JqLCBvcmlnVHlwZSwKCQkJZWxlbURhdGEgPSBqUXVlcnkuaGFzRGF0YSggZWxlbSApICYmIGpRdWVyeS5fZGF0YSggZWxlbSApLAoJCQlldmVudHMgPSBlbGVtRGF0YSAmJiBlbGVtRGF0YS5ldmVudHM7CgoJCWlmICggIWVsZW1EYXRhIHx8ICFldmVudHMgKSB7CgkJCXJldHVybjsKCQl9CgoJCS8vIHR5cGVzIGlzIGFjdHVhbGx5IGFuIGV2ZW50IG9iamVjdCBoZXJlCgkJaWYgKCB0eXBlcyAmJiB0eXBlcy50eXBlICkgewoJCQloYW5kbGVyID0gdHlwZXMuaGFuZGxlcjsKCQkJdHlwZXMgPSB0eXBlcy50eXBlOwoJCX0KCgkJLy8gVW5iaW5kIGFsbCBldmVudHMgZm9yIHRoZSBlbGVtZW50CgkJaWYgKCAhdHlwZXMgfHwgdHlwZW9mIHR5cGVzID09PSAic3RyaW5nIiAmJiB0eXBlcy5jaGFyQXQoMCkgPT09ICIuIiApIHsKCQkJdHlwZXMgPSB0eXBlcyB8fCAiIjsKCgkJCWZvciAoIHR5cGUgaW4gZXZlbnRzICkgewoJCQkJalF1ZXJ5LmV2ZW50LnJlbW92ZSggZWxlbSwgdHlwZSArIHR5cGVzICk7CgkJCX0KCgkJCXJldHVybjsKCQl9CgoJCS8vIEhhbmRsZSBtdWx0aXBsZSBldmVudHMgc2VwYXJhdGVkIGJ5IGEgc3BhY2UKCQkvLyBqUXVlcnkoLi4uKS51bmJpbmQoIm1vdXNlb3ZlciBtb3VzZW91dCIsIGZuKTsKCQl0eXBlcyA9IHR5cGVzLnNwbGl0KCIgIik7CgoJCXdoaWxlICggKHR5cGUgPSB0eXBlc1sgaSsrIF0pICkgewoJCQlvcmlnVHlwZSA9IHR5cGU7CgkJCWhhbmRsZU9iaiA9IG51bGw7CgkJCWFsbCA9IHR5cGUuaW5kZXhPZigiLiIpIDwgMDsKCQkJbmFtZXNwYWNlcyA9IFtdOwoKCQkJaWYgKCAhYWxsICkgewoJCQkJLy8gTmFtZXNwYWNlZCBldmVudCBoYW5kbGVycwoJCQkJbmFtZXNwYWNlcyA9IHR5cGUuc3BsaXQoIi4iKTsKCQkJCXR5cGUgPSBuYW1lc3BhY2VzLnNoaWZ0KCk7CgoJCQkJbmFtZXNwYWNlID0gbmV3IFJlZ0V4cCgiKF58XFwuKSIgKwoJCQkJCWpRdWVyeS5tYXAoIG5hbWVzcGFjZXMuc2xpY2UoMCkuc29ydCgpLCBmY2xlYW51cCApLmpvaW4oIlxcLig/Oi4qXFwuKT8iKSArICIoXFwufCQpIik7CgkJCX0KCgkJCWV2ZW50VHlwZSA9IGV2ZW50c1sgdHlwZSBdOwoKCQkJaWYgKCAhZXZlbnRUeXBlICkgewoJCQkJY29udGludWU7CgkJCX0KCgkJCWlmICggIWhhbmRsZXIgKSB7CgkJCQlmb3IgKCBqID0gMDsgaiA8IGV2ZW50VHlwZS5sZW5ndGg7IGorKyApIHsKCQkJCQloYW5kbGVPYmogPSBldmVudFR5cGVbIGogXTsKCgkJCQkJaWYgKCBhbGwgfHwgbmFtZXNwYWNlLnRlc3QoIGhhbmRsZU9iai5uYW1lc3BhY2UgKSApIHsKCQkJCQkJalF1ZXJ5LmV2ZW50LnJlbW92ZSggZWxlbSwgb3JpZ1R5cGUsIGhhbmRsZU9iai5oYW5kbGVyLCBqICk7CgkJCQkJCWV2ZW50VHlwZS5zcGxpY2UoIGotLSwgMSApOwoJCQkJCX0KCQkJCX0KCgkJCQljb250aW51ZTsKCQkJfQoKCQkJc3BlY2lhbCA9IGpRdWVyeS5ldmVudC5zcGVjaWFsWyB0eXBlIF0gfHwge307CgoJCQlmb3IgKCBqID0gcG9zIHx8IDA7IGogPCBldmVudFR5cGUubGVuZ3RoOyBqKysgKSB7CgkJCQloYW5kbGVPYmogPSBldmVudFR5cGVbIGogXTsKCgkJCQlpZiAoIGhhbmRsZXIuZ3VpZCA9PT0gaGFuZGxlT2JqLmd1aWQgKSB7CgkJCQkJLy8gcmVtb3ZlIHRoZSBnaXZlbiBoYW5kbGVyIGZvciB0aGUgZ2l2ZW4gdHlwZQoJCQkJCWlmICggYWxsIHx8IG5hbWVzcGFjZS50ZXN0KCBoYW5kbGVPYmoubmFtZXNwYWNlICkgKSB7CgkJCQkJCWlmICggcG9zID09IG51bGwgKSB7CgkJCQkJCQlldmVudFR5cGUuc3BsaWNlKCBqLS0sIDEgKTsKCQkJCQkJfQoKCQkJCQkJaWYgKCBzcGVjaWFsLnJlbW92ZSApIHsKCQkJCQkJCXNwZWNpYWwucmVtb3ZlLmNhbGwoIGVsZW0sIGhhbmRsZU9iaiApOwoJCQkJCQl9CgkJCQkJfQoKCQkJCQlpZiAoIHBvcyAhPSBudWxsICkgewoJCQkJCQlicmVhazsKCQkJCQl9CgkJCQl9CgkJCX0KCgkJCS8vIHJlbW92ZSBnZW5lcmljIGV2ZW50IGhhbmRsZXIgaWYgbm8gbW9yZSBoYW5kbGVycyBleGlzdAoJCQlpZiAoIGV2ZW50VHlwZS5sZW5ndGggPT09IDAgfHwgcG9zICE9IG51bGwgJiYgZXZlbnRUeXBlLmxlbmd0aCA9PT0gMSApIHsKCQkJCWlmICggIXNwZWNpYWwudGVhcmRvd24gfHwgc3BlY2lhbC50ZWFyZG93bi5jYWxsKCBlbGVtLCBuYW1lc3BhY2VzICkgPT09IGZhbHNlICkgewoJCQkJCWpRdWVyeS5yZW1vdmVFdmVudCggZWxlbSwgdHlwZSwgZWxlbURhdGEuaGFuZGxlICk7CgkJCQl9CgoJCQkJcmV0ID0gbnVsbDsKCQkJCWRlbGV0ZSBldmVudHNbIHR5cGUgXTsKCQkJfQoJCX0KCgkJLy8gUmVtb3ZlIHRoZSBleHBhbmRvIGlmIGl0J3Mgbm8gbG9uZ2VyIHVzZWQKCQlpZiAoIGpRdWVyeS5pc0VtcHR5T2JqZWN0KCBldmVudHMgKSApIHsKCQkJdmFyIGhhbmRsZSA9IGVsZW1EYXRhLmhhbmRsZTsKCQkJaWYgKCBoYW5kbGUgKSB7CgkJCQloYW5kbGUuZWxlbSA9IG51bGw7CgkJCX0KCgkJCWRlbGV0ZSBlbGVtRGF0YS5ldmVudHM7CgkJCWRlbGV0ZSBlbGVtRGF0YS5oYW5kbGU7CgoJCQlpZiAoIGpRdWVyeS5pc0VtcHR5T2JqZWN0KCBlbGVtRGF0YSApICkgewoJCQkJalF1ZXJ5LnJlbW92ZURhdGEoIGVsZW0sIHVuZGVmaW5lZCwgdHJ1ZSApOwoJCQl9CgkJfQoJfSwKCgkvLyBidWJibGluZyBpcyBpbnRlcm5hbAoJdHJpZ2dlcjogZnVuY3Rpb24oIGV2ZW50LCBkYXRhLCBlbGVtIC8qLCBidWJibGluZyAqLyApIHsKCQkvLyBFdmVudCBvYmplY3Qgb3IgZXZlbnQgdHlwZQoJCXZhciB0eXBlID0gZXZlbnQudHlwZSB8fCBldmVudCwKCQkJYnViYmxpbmcgPSBhcmd1bWVudHNbM107CgoJCWlmICggIWJ1YmJsaW5nICkgewoJCQlldmVudCA9IHR5cGVvZiBldmVudCA9PT0gIm9iamVjdCIgPwoJCQkJLy8galF1ZXJ5LkV2ZW50IG9iamVjdAoJCQkJZXZlbnRbIGpRdWVyeS5leHBhbmRvIF0gPyBldmVudCA6CgkJCQkvLyBPYmplY3QgbGl0ZXJhbAoJCQkJalF1ZXJ5LmV4dGVuZCggalF1ZXJ5LkV2ZW50KHR5cGUpLCBldmVudCApIDoKCQkJCS8vIEp1c3QgdGhlIGV2ZW50IHR5cGUgKHN0cmluZykKCQkJCWpRdWVyeS5FdmVudCh0eXBlKTsKCgkJCWlmICggdHlwZS5pbmRleE9mKCIhIikgPj0gMCApIHsKCQkJCWV2ZW50LnR5cGUgPSB0eXBlID0gdHlwZS5zbGljZSgwLCAtMSk7CgkJCQlldmVudC5leGNsdXNpdmUgPSB0cnVlOwoJCQl9CgoJCQkvLyBIYW5kbGUgYSBnbG9iYWwgdHJpZ2dlcgoJCQlpZiAoICFlbGVtICkgewoJCQkJLy8gRG9uJ3QgYnViYmxlIGN1c3RvbSBldmVudHMgd2hlbiBnbG9iYWwgKHRvIGF2b2lkIHRvbyBtdWNoIG92ZXJoZWFkKQoJCQkJZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CgoJCQkJLy8gT25seSB0cmlnZ2VyIGlmIHdlJ3ZlIGV2ZXIgYm91bmQgYW4gZXZlbnQgZm9yIGl0CgkJCQlpZiAoIGpRdWVyeS5ldmVudC5nbG9iYWxbIHR5cGUgXSApIHsKCQkJCQkvLyBYWFggVGhpcyBjb2RlIHNtZWxscyB0ZXJyaWJsZS4gZXZlbnQuanMgc2hvdWxkIG5vdCBiZSBkaXJlY3RseQoJCQkJCS8vIGluc3BlY3RpbmcgdGhlIGRhdGEgY2FjaGUKCQkJCQlqUXVlcnkuZWFjaCggalF1ZXJ5LmNhY2hlLCBmdW5jdGlvbigpIHsKCQkJCQkJLy8gaW50ZXJuYWxLZXkgdmFyaWFibGUgaXMganVzdCB1c2VkIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGZpbmQKCQkJCQkJLy8gYW5kIHBvdGVudGlhbGx5IGNoYW5nZSB0aGlzIHN0dWZmIGxhdGVyOyBjdXJyZW50bHkgaXQganVzdAoJCQkJCQkvLyBwb2ludHMgdG8galF1ZXJ5LmV4cGFuZG8KCQkJCQkJdmFyIGludGVybmFsS2V5ID0galF1ZXJ5LmV4cGFuZG8sCgkJCQkJCQlpbnRlcm5hbENhY2hlID0gdGhpc1sgaW50ZXJuYWxLZXkgXTsKCQkJCQkJaWYgKCBpbnRlcm5hbENhY2hlICYmIGludGVybmFsQ2FjaGUuZXZlbnRzICYmIGludGVybmFsQ2FjaGUuZXZlbnRzWyB0eXBlIF0gKSB7CgkJCQkJCQlqUXVlcnkuZXZlbnQudHJpZ2dlciggZXZlbnQsIGRhdGEsIGludGVybmFsQ2FjaGUuaGFuZGxlLmVsZW0gKTsKCQkJCQkJfQoJCQkJCX0pOwoJCQkJfQoJCQl9CgoJCQkvLyBIYW5kbGUgdHJpZ2dlcmluZyBhIHNpbmdsZSBlbGVtZW50CgoJCQkvLyBkb24ndCBkbyBldmVudHMgb24gdGV4dCBhbmQgY29tbWVudCBub2RlcwoJCQlpZiAoICFlbGVtIHx8IGVsZW0ubm9kZVR5cGUgPT09IDMgfHwgZWxlbS5ub2RlVHlwZSA9PT0gOCApIHsKCQkJCXJldHVybiB1bmRlZmluZWQ7CgkJCX0KCgkJCS8vIENsZWFuIHVwIGluIGNhc2UgaXQgaXMgcmV1c2VkCgkJCWV2ZW50LnJlc3VsdCA9IHVuZGVmaW5lZDsKCQkJZXZlbnQudGFyZ2V0ID0gZWxlbTsKCgkJCS8vIENsb25lIHRoZSBpbmNvbWluZyBkYXRhLCBpZiBhbnkKCQkJZGF0YSA9IGpRdWVyeS5tYWtlQXJyYXkoIGRhdGEgKTsKCQkJZGF0YS51bnNoaWZ0KCBldmVudCApOwoJCX0KCgkJZXZlbnQuY3VycmVudFRhcmdldCA9IGVsZW07CgoJCS8vIFRyaWdnZXIgdGhlIGV2ZW50LCBpdCBpcyBhc3N1bWVkIHRoYXQgImhhbmRsZSIgaXMgYSBmdW5jdGlvbgoJCXZhciBoYW5kbGUgPSBqUXVlcnkuX2RhdGEoIGVsZW0sICJoYW5kbGUiICk7CgoJCWlmICggaGFuZGxlICkgewoJCQloYW5kbGUuYXBwbHkoIGVsZW0sIGRhdGEgKTsKCQl9CgoJCXZhciBwYXJlbnQgPSBlbGVtLnBhcmVudE5vZGUgfHwgZWxlbS5vd25lckRvY3VtZW50OwoKCQkvLyBUcmlnZ2VyIGFuIGlubGluZSBib3VuZCBzY3JpcHQKCQl0cnkgewoJCQlpZiAoICEoZWxlbSAmJiBlbGVtLm5vZGVOYW1lICYmIGpRdWVyeS5ub0RhdGFbZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSkgKSB7CgkJCQlpZiAoIGVsZW1bICJvbiIgKyB0eXBlIF0gJiYgZWxlbVsgIm9uIiArIHR5cGUgXS5hcHBseSggZWxlbSwgZGF0YSApID09PSBmYWxzZSApIHsKCQkJCQlldmVudC5yZXN1bHQgPSBmYWxzZTsKCQkJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOwoJCQkJfQoJCQl9CgoJCS8vIHByZXZlbnQgSUUgZnJvbSB0aHJvd2luZyBhbiBlcnJvciBmb3Igc29tZSBlbGVtZW50cyB3aXRoIHNvbWUgZXZlbnQgdHlwZXMsIHNlZSAjMzUzMwoJCX0gY2F0Y2ggKGlubGluZUVycm9yKSB7fQoKCQlpZiAoICFldmVudC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpICYmIHBhcmVudCApIHsKCQkJalF1ZXJ5LmV2ZW50LnRyaWdnZXIoIGV2ZW50LCBkYXRhLCBwYXJlbnQsIHRydWUgKTsKCgkJfSBlbHNlIGlmICggIWV2ZW50LmlzRGVmYXVsdFByZXZlbnRlZCgpICkgewoJCQl2YXIgb2xkLAoJCQkJdGFyZ2V0ID0gZXZlbnQudGFyZ2V0LAoJCQkJdGFyZ2V0VHlwZSA9IHR5cGUucmVwbGFjZSggcm5hbWVzcGFjZXMsICIiICksCgkJCQlpc0NsaWNrID0galF1ZXJ5Lm5vZGVOYW1lKCB0YXJnZXQsICJhIiApICYmIHRhcmdldFR5cGUgPT09ICJjbGljayIsCgkJCQlzcGVjaWFsID0galF1ZXJ5LmV2ZW50LnNwZWNpYWxbIHRhcmdldFR5cGUgXSB8fCB7fTsKCgkJCWlmICggKCFzcGVjaWFsLl9kZWZhdWx0IHx8IHNwZWNpYWwuX2RlZmF1bHQuY2FsbCggZWxlbSwgZXZlbnQgKSA9PT0gZmFsc2UpICYmCgkJCQkhaXNDbGljayAmJiAhKHRhcmdldCAmJiB0YXJnZXQubm9kZU5hbWUgJiYgalF1ZXJ5Lm5vRGF0YVt0YXJnZXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pICkgewoKCQkJCXRyeSB7CgkJCQkJaWYgKCB0YXJnZXRbIHRhcmdldFR5cGUgXSApIHsKCQkJCQkJLy8gTWFrZSBzdXJlIHRoYXQgd2UgZG9uJ3QgYWNjaWRlbnRhbGx5IHJlLXRyaWdnZXIgdGhlIG9uRk9PIGV2ZW50cwoJCQkJCQlvbGQgPSB0YXJnZXRbICJvbiIgKyB0YXJnZXRUeXBlIF07CgoJCQkJCQlpZiAoIG9sZCApIHsKCQkJCQkJCXRhcmdldFsgIm9uIiArIHRhcmdldFR5cGUgXSA9IG51bGw7CgkJCQkJCX0KCgkJCQkJCWpRdWVyeS5ldmVudC50cmlnZ2VyZWQgPSB0cnVlOwoJCQkJCQl0YXJnZXRbIHRhcmdldFR5cGUgXSgpOwoJCQkJCX0KCgkJCQkvLyBwcmV2ZW50IElFIGZyb20gdGhyb3dpbmcgYW4gZXJyb3IgZm9yIHNvbWUgZWxlbWVudHMgd2l0aCBzb21lIGV2ZW50IHR5cGVzLCBzZWUgIzM1MzMKCQkJCX0gY2F0Y2ggKHRyaWdnZXJFcnJvcikge30KCgkJCQlpZiAoIG9sZCApIHsKCQkJCQl0YXJnZXRbICJvbiIgKyB0YXJnZXRUeXBlIF0gPSBvbGQ7CgkJCQl9CgoJCQkJalF1ZXJ5LmV2ZW50LnRyaWdnZXJlZCA9IGZhbHNlOwoJCQl9CgkJfQoJfSwKCgloYW5kbGU6IGZ1bmN0aW9uKCBldmVudCApIHsKCQl2YXIgYWxsLCBoYW5kbGVycywgbmFtZXNwYWNlcywgbmFtZXNwYWNlX3JlLCBldmVudHMsCgkJCW5hbWVzcGFjZV9zb3J0ID0gW10sCgkJCWFyZ3MgPSBqUXVlcnkubWFrZUFycmF5KCBhcmd1bWVudHMgKTsKCgkJZXZlbnQgPSBhcmdzWzBdID0galF1ZXJ5LmV2ZW50LmZpeCggZXZlbnQgfHwgd2luZG93LmV2ZW50ICk7CgkJZXZlbnQuY3VycmVudFRhcmdldCA9IHRoaXM7CgoJCS8vIE5hbWVzcGFjZWQgZXZlbnQgaGFuZGxlcnMKCQlhbGwgPSBldmVudC50eXBlLmluZGV4T2YoIi4iKSA8IDAgJiYgIWV2ZW50LmV4Y2x1c2l2ZTsKCgkJaWYgKCAhYWxsICkgewoJCQluYW1lc3BhY2VzID0gZXZlbnQudHlwZS5zcGxpdCgiLiIpOwoJCQlldmVudC50eXBlID0gbmFtZXNwYWNlcy5zaGlmdCgpOwoJCQluYW1lc3BhY2Vfc29ydCA9IG5hbWVzcGFjZXMuc2xpY2UoMCkuc29ydCgpOwoJCQluYW1lc3BhY2VfcmUgPSBuZXcgUmVnRXhwKCIoXnxcXC4pIiArIG5hbWVzcGFjZV9zb3J0LmpvaW4oIlxcLig/Oi4qXFwuKT8iKSArICIoXFwufCQpIik7CgkJfQoKCQlldmVudC5uYW1lc3BhY2UgPSBldmVudC5uYW1lc3BhY2UgfHwgbmFtZXNwYWNlX3NvcnQuam9pbigiLiIpOwoKCQlldmVudHMgPSBqUXVlcnkuX2RhdGEodGhpcywgImV2ZW50cyIpOwoKCQloYW5kbGVycyA9IChldmVudHMgfHwge30pWyBldmVudC50eXBlIF07CgoJCWlmICggZXZlbnRzICYmIGhhbmRsZXJzICkgewoJCQkvLyBDbG9uZSB0aGUgaGFuZGxlcnMgdG8gcHJldmVudCBtYW5pcHVsYXRpb24KCQkJaGFuZGxlcnMgPSBoYW5kbGVycy5zbGljZSgwKTsKCgkJCWZvciAoIHZhciBqID0gMCwgbCA9IGhhbmRsZXJzLmxlbmd0aDsgaiA8IGw7IGorKyApIHsKCQkJCXZhciBoYW5kbGVPYmogPSBoYW5kbGVyc1sgaiBdOwoKCQkJCS8vIEZpbHRlciB0aGUgZnVuY3Rpb25zIGJ5IGNsYXNzCgkJCQlpZiAoIGFsbCB8fCBuYW1lc3BhY2VfcmUudGVzdCggaGFuZGxlT2JqLm5hbWVzcGFjZSApICkgewoJCQkJCS8vIFBhc3MgaW4gYSByZWZlcmVuY2UgdG8gdGhlIGhhbmRsZXIgZnVuY3Rpb24gaXRzZWxmCgkJCQkJLy8gU28gdGhhdCB3ZSBjYW4gbGF0ZXIgcmVtb3ZlIGl0CgkJCQkJZXZlbnQuaGFuZGxlciA9IGhhbmRsZU9iai5oYW5kbGVyOwoJCQkJCWV2ZW50LmRhdGEgPSBoYW5kbGVPYmouZGF0YTsKCQkJCQlldmVudC5oYW5kbGVPYmogPSBoYW5kbGVPYmo7CgoJCQkJCXZhciByZXQgPSBoYW5kbGVPYmouaGFuZGxlci5hcHBseSggdGhpcywgYXJncyApOwoKCQkJCQlpZiAoIHJldCAhPT0gdW5kZWZpbmVkICkgewoJCQkJCQlldmVudC5yZXN1bHQgPSByZXQ7CgkJCQkJCWlmICggcmV0ID09PSBmYWxzZSApIHsKCQkJCQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7CgkJCQkJCQlldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKCQkJCQkJfQoJCQkJCX0KCgkJCQkJaWYgKCBldmVudC5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpICkgewoJCQkJCQlicmVhazsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgoJCXJldHVybiBldmVudC5yZXN1bHQ7Cgl9LAoKCXByb3BzOiAiYWx0S2V5IGF0dHJDaGFuZ2UgYXR0ck5hbWUgYnViYmxlcyBidXR0b24gY2FuY2VsYWJsZSBjaGFyQ29kZSBjbGllbnRYIGNsaWVudFkgY3RybEtleSBjdXJyZW50VGFyZ2V0IGRhdGEgZGV0YWlsIGV2ZW50UGhhc2UgZnJvbUVsZW1lbnQgaGFuZGxlciBrZXlDb2RlIGxheWVyWCBsYXllclkgbWV0YUtleSBuZXdWYWx1ZSBvZmZzZXRYIG9mZnNldFkgcGFnZVggcGFnZVkgcHJldlZhbHVlIHJlbGF0ZWROb2RlIHJlbGF0ZWRUYXJnZXQgc2NyZWVuWCBzY3JlZW5ZIHNoaWZ0S2V5IHNyY0VsZW1lbnQgdGFyZ2V0IHRvRWxlbWVudCB2aWV3IHdoZWVsRGVsdGEgd2hpY2giLnNwbGl0KCIgIiksCgoJZml4OiBmdW5jdGlvbiggZXZlbnQgKSB7CgkJaWYgKCBldmVudFsgalF1ZXJ5LmV4cGFuZG8gXSApIHsKCQkJcmV0dXJuIGV2ZW50OwoJCX0KCgkJLy8gc3RvcmUgYSBjb3B5IG9mIHRoZSBvcmlnaW5hbCBldmVudCBvYmplY3QKCQkvLyBhbmQgImNsb25lIiB0byBzZXQgcmVhZC1vbmx5IHByb3BlcnRpZXMKCQl2YXIgb3JpZ2luYWxFdmVudCA9IGV2ZW50OwoJCWV2ZW50ID0galF1ZXJ5LkV2ZW50KCBvcmlnaW5hbEV2ZW50ICk7CgoJCWZvciAoIHZhciBpID0gdGhpcy5wcm9wcy5sZW5ndGgsIHByb3A7IGk7ICkgewoJCQlwcm9wID0gdGhpcy5wcm9wc1sgLS1pIF07CgkJCWV2ZW50WyBwcm9wIF0gPSBvcmlnaW5hbEV2ZW50WyBwcm9wIF07CgkJfQoKCQkvLyBGaXggdGFyZ2V0IHByb3BlcnR5LCBpZiBuZWNlc3NhcnkKCQlpZiAoICFldmVudC50YXJnZXQgKSB7CgkJCS8vIEZpeGVzICMxOTI1IHdoZXJlIHNyY0VsZW1lbnQgbWlnaHQgbm90IGJlIGRlZmluZWQgZWl0aGVyCgkJCWV2ZW50LnRhcmdldCA9IGV2ZW50LnNyY0VsZW1lbnQgfHwgZG9jdW1lbnQ7CgkJfQoKCQkvLyBjaGVjayBpZiB0YXJnZXQgaXMgYSB0ZXh0bm9kZSAoc2FmYXJpKQoJCWlmICggZXZlbnQudGFyZ2V0Lm5vZGVUeXBlID09PSAzICkgewoJCQlldmVudC50YXJnZXQgPSBldmVudC50YXJnZXQucGFyZW50Tm9kZTsKCQl9CgoJCS8vIEFkZCByZWxhdGVkVGFyZ2V0LCBpZiBuZWNlc3NhcnkKCQlpZiAoICFldmVudC5yZWxhdGVkVGFyZ2V0ICYmIGV2ZW50LmZyb21FbGVtZW50ICkgewoJCQlldmVudC5yZWxhdGVkVGFyZ2V0ID0gZXZlbnQuZnJvbUVsZW1lbnQgPT09IGV2ZW50LnRhcmdldCA/IGV2ZW50LnRvRWxlbWVudCA6IGV2ZW50LmZyb21FbGVtZW50OwoJCX0KCgkJLy8gQ2FsY3VsYXRlIHBhZ2VYL1kgaWYgbWlzc2luZyBhbmQgY2xpZW50WC9ZIGF2YWlsYWJsZQoJCWlmICggZXZlbnQucGFnZVggPT0gbnVsbCAmJiBldmVudC5jbGllbnRYICE9IG51bGwgKSB7CgkJCXZhciBkb2MgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsCgkJCQlib2R5ID0gZG9jdW1lbnQuYm9keTsKCgkJCWV2ZW50LnBhZ2VYID0gZXZlbnQuY2xpZW50WCArIChkb2MgJiYgZG9jLnNjcm9sbExlZnQgfHwgYm9keSAmJiBib2R5LnNjcm9sbExlZnQgfHwgMCkgLSAoZG9jICYmIGRvYy5jbGllbnRMZWZ0IHx8IGJvZHkgJiYgYm9keS5jbGllbnRMZWZ0IHx8IDApOwoJCQlldmVudC5wYWdlWSA9IGV2ZW50LmNsaWVudFkgKyAoZG9jICYmIGRvYy5zY3JvbGxUb3AgIHx8IGJvZHkgJiYgYm9keS5zY3JvbGxUb3AgIHx8IDApIC0gKGRvYyAmJiBkb2MuY2xpZW50VG9wICB8fCBib2R5ICYmIGJvZHkuY2xpZW50VG9wICB8fCAwKTsKCQl9CgoJCS8vIEFkZCB3aGljaCBmb3Iga2V5IGV2ZW50cwoJCWlmICggZXZlbnQud2hpY2ggPT0gbnVsbCAmJiAoZXZlbnQuY2hhckNvZGUgIT0gbnVsbCB8fCBldmVudC5rZXlDb2RlICE9IG51bGwpICkgewoJCQlldmVudC53aGljaCA9IGV2ZW50LmNoYXJDb2RlICE9IG51bGwgPyBldmVudC5jaGFyQ29kZSA6IGV2ZW50LmtleUNvZGU7CgkJfQoKCQkvLyBBZGQgbWV0YUtleSB0byBub24tTWFjIGJyb3dzZXJzICh1c2UgY3RybCBmb3IgUEMncyBhbmQgTWV0YSBmb3IgTWFjcykKCQlpZiAoICFldmVudC5tZXRhS2V5ICYmIGV2ZW50LmN0cmxLZXkgKSB7CgkJCWV2ZW50Lm1ldGFLZXkgPSBldmVudC5jdHJsS2V5OwoJCX0KCgkJLy8gQWRkIHdoaWNoIGZvciBjbGljazogMSA9PT0gbGVmdDsgMiA9PT0gbWlkZGxlOyAzID09PSByaWdodAoJCS8vIE5vdGU6IGJ1dHRvbiBpcyBub3Qgbm9ybWFsaXplZCwgc28gZG9uJ3QgdXNlIGl0CgkJaWYgKCAhZXZlbnQud2hpY2ggJiYgZXZlbnQuYnV0dG9uICE9PSB1bmRlZmluZWQgKSB7CgkJCWV2ZW50LndoaWNoID0gKGV2ZW50LmJ1dHRvbiAmIDEgPyAxIDogKCBldmVudC5idXR0b24gJiAyID8gMyA6ICggZXZlbnQuYnV0dG9uICYgNCA/IDIgOiAwICkgKSk7CgkJfQoKCQlyZXR1cm4gZXZlbnQ7Cgl9LAoKCS8vIERlcHJlY2F0ZWQsIHVzZSBqUXVlcnkuZ3VpZCBpbnN0ZWFkCglndWlkOiAxRTgsCgoJLy8gRGVwcmVjYXRlZCwgdXNlIGpRdWVyeS5wcm94eSBpbnN0ZWFkCglwcm94eTogalF1ZXJ5LnByb3h5LAoKCXNwZWNpYWw6IHsKCQlyZWFkeTogewoJCQkvLyBNYWtlIHN1cmUgdGhlIHJlYWR5IGV2ZW50IGlzIHNldHVwCgkJCXNldHVwOiBqUXVlcnkuYmluZFJlYWR5LAoJCQl0ZWFyZG93bjogalF1ZXJ5Lm5vb3AKCQl9LAoKCQlsaXZlOiB7CgkJCWFkZDogZnVuY3Rpb24oIGhhbmRsZU9iaiApIHsKCQkJCWpRdWVyeS5ldmVudC5hZGQoIHRoaXMsCgkJCQkJbGl2ZUNvbnZlcnQoIGhhbmRsZU9iai5vcmlnVHlwZSwgaGFuZGxlT2JqLnNlbGVjdG9yICksCgkJCQkJalF1ZXJ5LmV4dGVuZCh7fSwgaGFuZGxlT2JqLCB7aGFuZGxlcjogbGl2ZUhhbmRsZXIsIGd1aWQ6IGhhbmRsZU9iai5oYW5kbGVyLmd1aWR9KSApOwoJCQl9LAoKCQkJcmVtb3ZlOiBmdW5jdGlvbiggaGFuZGxlT2JqICkgewoJCQkJalF1ZXJ5LmV2ZW50LnJlbW92ZSggdGhpcywgbGl2ZUNvbnZlcnQoIGhhbmRsZU9iai5vcmlnVHlwZSwgaGFuZGxlT2JqLnNlbGVjdG9yICksIGhhbmRsZU9iaiApOwoJCQl9CgkJfSwKCgkJYmVmb3JldW5sb2FkOiB7CgkJCXNldHVwOiBmdW5jdGlvbiggZGF0YSwgbmFtZXNwYWNlcywgZXZlbnRIYW5kbGUgKSB7CgkJCQkvLyBXZSBvbmx5IHdhbnQgdG8gZG8gdGhpcyBzcGVjaWFsIGNhc2Ugb24gd2luZG93cwoJCQkJaWYgKCBqUXVlcnkuaXNXaW5kb3coIHRoaXMgKSApIHsKCQkJCQl0aGlzLm9uYmVmb3JldW5sb2FkID0gZXZlbnRIYW5kbGU7CgkJCQl9CgkJCX0sCgoJCQl0ZWFyZG93bjogZnVuY3Rpb24oIG5hbWVzcGFjZXMsIGV2ZW50SGFuZGxlICkgewoJCQkJaWYgKCB0aGlzLm9uYmVmb3JldW5sb2FkID09PSBldmVudEhhbmRsZSApIHsKCQkJCQl0aGlzLm9uYmVmb3JldW5sb2FkID0gbnVsbDsKCQkJCX0KCQkJfQoJCX0KCX0KfTsKCmpRdWVyeS5yZW1vdmVFdmVudCA9IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIgPwoJZnVuY3Rpb24oIGVsZW0sIHR5cGUsIGhhbmRsZSApIHsKCQlpZiAoIGVsZW0ucmVtb3ZlRXZlbnRMaXN0ZW5lciApIHsKCQkJZWxlbS5yZW1vdmVFdmVudExpc3RlbmVyKCB0eXBlLCBoYW5kbGUsIGZhbHNlICk7CgkJfQoJfSA6CglmdW5jdGlvbiggZWxlbSwgdHlwZSwgaGFuZGxlICkgewoJCWlmICggZWxlbS5kZXRhY2hFdmVudCApIHsKCQkJZWxlbS5kZXRhY2hFdmVudCggIm9uIiArIHR5cGUsIGhhbmRsZSApOwoJCX0KCX07CgpqUXVlcnkuRXZlbnQgPSBmdW5jdGlvbiggc3JjICkgewoJLy8gQWxsb3cgaW5zdGFudGlhdGlvbiB3aXRob3V0IHRoZSAnbmV3JyBrZXl3b3JkCglpZiAoICF0aGlzLnByZXZlbnREZWZhdWx0ICkgewoJCXJldHVybiBuZXcgalF1ZXJ5LkV2ZW50KCBzcmMgKTsKCX0KCgkvLyBFdmVudCBvYmplY3QKCWlmICggc3JjICYmIHNyYy50eXBlICkgewoJCXRoaXMub3JpZ2luYWxFdmVudCA9IHNyYzsKCQl0aGlzLnR5cGUgPSBzcmMudHlwZTsKCgkJLy8gRXZlbnRzIGJ1YmJsaW5nIHVwIHRoZSBkb2N1bWVudCBtYXkgaGF2ZSBiZWVuIG1hcmtlZCBhcyBwcmV2ZW50ZWQKCQkvLyBieSBhIGhhbmRsZXIgbG93ZXIgZG93biB0aGUgdHJlZTsgcmVmbGVjdCB0aGUgY29ycmVjdCB2YWx1ZS4KCQl0aGlzLmlzRGVmYXVsdFByZXZlbnRlZCA9IChzcmMuZGVmYXVsdFByZXZlbnRlZCB8fCBzcmMucmV0dXJuVmFsdWUgPT09IGZhbHNlIHx8CgkJCXNyYy5nZXRQcmV2ZW50RGVmYXVsdCAmJiBzcmMuZ2V0UHJldmVudERlZmF1bHQoKSkgPyByZXR1cm5UcnVlIDogcmV0dXJuRmFsc2U7CgoJLy8gRXZlbnQgdHlwZQoJfSBlbHNlIHsKCQl0aGlzLnR5cGUgPSBzcmM7Cgl9CgoJLy8gdGltZVN0YW1wIGlzIGJ1Z2d5IGZvciBzb21lIGV2ZW50cyBvbiBGaXJlZm94KCMzODQzKQoJLy8gU28gd2Ugd29uJ3QgcmVseSBvbiB0aGUgbmF0aXZlIHZhbHVlCgl0aGlzLnRpbWVTdGFtcCA9IGpRdWVyeS5ub3coKTsKCgkvLyBNYXJrIGl0IGFzIGZpeGVkCgl0aGlzWyBqUXVlcnkuZXhwYW5kbyBdID0gdHJ1ZTsKfTsKCmZ1bmN0aW9uIHJldHVybkZhbHNlKCkgewoJcmV0dXJuIGZhbHNlOwp9CmZ1bmN0aW9uIHJldHVyblRydWUoKSB7CglyZXR1cm4gdHJ1ZTsKfQoKLy8galF1ZXJ5LkV2ZW50IGlzIGJhc2VkIG9uIERPTTMgRXZlbnRzIGFzIHNwZWNpZmllZCBieSB0aGUgRUNNQVNjcmlwdCBMYW5ndWFnZSBCaW5kaW5nCi8vIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDMvV0QtRE9NLUxldmVsLTMtRXZlbnRzLTIwMDMwMzMxL2VjbWEtc2NyaXB0LWJpbmRpbmcuaHRtbApqUXVlcnkuRXZlbnQucHJvdG90eXBlID0gewoJcHJldmVudERlZmF1bHQ6IGZ1bmN0aW9uKCkgewoJCXRoaXMuaXNEZWZhdWx0UHJldmVudGVkID0gcmV0dXJuVHJ1ZTsKCgkJdmFyIGUgPSB0aGlzLm9yaWdpbmFsRXZlbnQ7CgkJaWYgKCAhZSApIHsKCQkJcmV0dXJuOwoJCX0KCgkJLy8gaWYgcHJldmVudERlZmF1bHQgZXhpc3RzIHJ1biBpdCBvbiB0aGUgb3JpZ2luYWwgZXZlbnQKCQlpZiAoIGUucHJldmVudERlZmF1bHQgKSB7CgkJCWUucHJldmVudERlZmF1bHQoKTsKCgkJLy8gb3RoZXJ3aXNlIHNldCB0aGUgcmV0dXJuVmFsdWUgcHJvcGVydHkgb2YgdGhlIG9yaWdpbmFsIGV2ZW50IHRvIGZhbHNlIChJRSkKCQl9IGVsc2UgewoJCQllLnJldHVyblZhbHVlID0gZmFsc2U7CgkJfQoJfSwKCXN0b3BQcm9wYWdhdGlvbjogZnVuY3Rpb24oKSB7CgkJdGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZCA9IHJldHVyblRydWU7CgoJCXZhciBlID0gdGhpcy5vcmlnaW5hbEV2ZW50OwoJCWlmICggIWUgKSB7CgkJCXJldHVybjsKCQl9CgkJLy8gaWYgc3RvcFByb3BhZ2F0aW9uIGV4aXN0cyBydW4gaXQgb24gdGhlIG9yaWdpbmFsIGV2ZW50CgkJaWYgKCBlLnN0b3BQcm9wYWdhdGlvbiApIHsKCQkJZS5zdG9wUHJvcGFnYXRpb24oKTsKCQl9CgkJLy8gb3RoZXJ3aXNlIHNldCB0aGUgY2FuY2VsQnViYmxlIHByb3BlcnR5IG9mIHRoZSBvcmlnaW5hbCBldmVudCB0byB0cnVlIChJRSkKCQllLmNhbmNlbEJ1YmJsZSA9IHRydWU7Cgl9LAoJc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOiBmdW5jdGlvbigpIHsKCQl0aGlzLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkID0gcmV0dXJuVHJ1ZTsKCQl0aGlzLnN0b3BQcm9wYWdhdGlvbigpOwoJfSwKCWlzRGVmYXVsdFByZXZlbnRlZDogcmV0dXJuRmFsc2UsCglpc1Byb3BhZ2F0aW9uU3RvcHBlZDogcmV0dXJuRmFsc2UsCglpc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZDogcmV0dXJuRmFsc2UKfTsKCi8vIENoZWNrcyBpZiBhbiBldmVudCBoYXBwZW5lZCBvbiBhbiBlbGVtZW50IHdpdGhpbiBhbm90aGVyIGVsZW1lbnQKLy8gVXNlZCBpbiBqUXVlcnkuZXZlbnQuc3BlY2lhbC5tb3VzZWVudGVyIGFuZCBtb3VzZWxlYXZlIGhhbmRsZXJzCnZhciB3aXRoaW5FbGVtZW50ID0gZnVuY3Rpb24oIGV2ZW50ICkgewoJLy8gQ2hlY2sgaWYgbW91c2Uob3ZlcnxvdXQpIGFyZSBzdGlsbCB3aXRoaW4gdGhlIHNhbWUgcGFyZW50IGVsZW1lbnQKCXZhciBwYXJlbnQgPSBldmVudC5yZWxhdGVkVGFyZ2V0OwoKCS8vIEZpcmVmb3ggc29tZXRpbWVzIGFzc2lnbnMgcmVsYXRlZFRhcmdldCBhIFhVTCBlbGVtZW50CgkvLyB3aGljaCB3ZSBjYW5ub3QgYWNjZXNzIHRoZSBwYXJlbnROb2RlIHByb3BlcnR5IG9mCgl0cnkgewoKCQkvLyBDaHJvbWUgZG9lcyBzb21ldGhpbmcgc2ltaWxhciwgdGhlIHBhcmVudE5vZGUgcHJvcGVydHkKCQkvLyBjYW4gYmUgYWNjZXNzZWQgYnV0IGlzIG51bGwuCgkJaWYgKCBwYXJlbnQgIT09IGRvY3VtZW50ICYmICFwYXJlbnQucGFyZW50Tm9kZSApIHsKCQkJcmV0dXJuOwoJCX0KCQkvLyBUcmF2ZXJzZSB1cCB0aGUgdHJlZQoJCXdoaWxlICggcGFyZW50ICYmIHBhcmVudCAhPT0gdGhpcyApIHsKCQkJcGFyZW50ID0gcGFyZW50LnBhcmVudE5vZGU7CgkJfQoKCQlpZiAoIHBhcmVudCAhPT0gdGhpcyApIHsKCQkJLy8gc2V0IHRoZSBjb3JyZWN0IGV2ZW50IHR5cGUKCQkJZXZlbnQudHlwZSA9IGV2ZW50LmRhdGE7CgoJCQkvLyBoYW5kbGUgZXZlbnQgaWYgd2UgYWN0dWFsbHkganVzdCBtb3VzZWQgb24gdG8gYSBub24gc3ViLWVsZW1lbnQKCQkJalF1ZXJ5LmV2ZW50LmhhbmRsZS5hcHBseSggdGhpcywgYXJndW1lbnRzICk7CgkJfQoKCS8vIGFzc3VtaW5nIHdlJ3ZlIGxlZnQgdGhlIGVsZW1lbnQgc2luY2Ugd2UgbW9zdCBsaWtlbHkgbW91c2Vkb3ZlciBhIHh1bCBlbGVtZW50Cgl9IGNhdGNoKGUpIHsgfQp9LAoKLy8gSW4gY2FzZSBvZiBldmVudCBkZWxlZ2F0aW9uLCB3ZSBvbmx5IG5lZWQgdG8gcmVuYW1lIHRoZSBldmVudC50eXBlLAovLyBsaXZlSGFuZGxlciB3aWxsIHRha2UgY2FyZSBvZiB0aGUgcmVzdC4KZGVsZWdhdGUgPSBmdW5jdGlvbiggZXZlbnQgKSB7CglldmVudC50eXBlID0gZXZlbnQuZGF0YTsKCWpRdWVyeS5ldmVudC5oYW5kbGUuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApOwp9OwoKLy8gQ3JlYXRlIG1vdXNlZW50ZXIgYW5kIG1vdXNlbGVhdmUgZXZlbnRzCmpRdWVyeS5lYWNoKHsKCW1vdXNlZW50ZXI6ICJtb3VzZW92ZXIiLAoJbW91c2VsZWF2ZTogIm1vdXNlb3V0Igp9LCBmdW5jdGlvbiggb3JpZywgZml4ICkgewoJalF1ZXJ5LmV2ZW50LnNwZWNpYWxbIG9yaWcgXSA9IHsKCQlzZXR1cDogZnVuY3Rpb24oIGRhdGEgKSB7CgkJCWpRdWVyeS5ldmVudC5hZGQoIHRoaXMsIGZpeCwgZGF0YSAmJiBkYXRhLnNlbGVjdG9yID8gZGVsZWdhdGUgOiB3aXRoaW5FbGVtZW50LCBvcmlnICk7CgkJfSwKCQl0ZWFyZG93bjogZnVuY3Rpb24oIGRhdGEgKSB7CgkJCWpRdWVyeS5ldmVudC5yZW1vdmUoIHRoaXMsIGZpeCwgZGF0YSAmJiBkYXRhLnNlbGVjdG9yID8gZGVsZWdhdGUgOiB3aXRoaW5FbGVtZW50ICk7CgkJfQoJfTsKfSk7CgovLyBzdWJtaXQgZGVsZWdhdGlvbgppZiAoICFqUXVlcnkuc3VwcG9ydC5zdWJtaXRCdWJibGVzICkgewoKCWpRdWVyeS5ldmVudC5zcGVjaWFsLnN1Ym1pdCA9IHsKCQlzZXR1cDogZnVuY3Rpb24oIGRhdGEsIG5hbWVzcGFjZXMgKSB7CgkJCWlmICggdGhpcy5ub2RlTmFtZSAmJiB0aGlzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgIT09ICJmb3JtIiApIHsKCQkJCWpRdWVyeS5ldmVudC5hZGQodGhpcywgImNsaWNrLnNwZWNpYWxTdWJtaXQiLCBmdW5jdGlvbiggZSApIHsKCQkJCQl2YXIgZWxlbSA9IGUudGFyZ2V0LAoJCQkJCQl0eXBlID0gZWxlbS50eXBlOwoKCQkJCQlpZiAoICh0eXBlID09PSAic3VibWl0IiB8fCB0eXBlID09PSAiaW1hZ2UiKSAmJiBqUXVlcnkoIGVsZW0gKS5jbG9zZXN0KCJmb3JtIikubGVuZ3RoICkgewoJCQkJCQl0cmlnZ2VyKCAic3VibWl0IiwgdGhpcywgYXJndW1lbnRzICk7CgkJCQkJfQoJCQkJfSk7CgoJCQkJalF1ZXJ5LmV2ZW50LmFkZCh0aGlzLCAia2V5cHJlc3Muc3BlY2lhbFN1Ym1pdCIsIGZ1bmN0aW9uKCBlICkgewoJCQkJCXZhciBlbGVtID0gZS50YXJnZXQsCgkJCQkJCXR5cGUgPSBlbGVtLnR5cGU7CgoJCQkJCWlmICggKHR5cGUgPT09ICJ0ZXh0IiB8fCB0eXBlID09PSAicGFzc3dvcmQiKSAmJiBqUXVlcnkoIGVsZW0gKS5jbG9zZXN0KCJmb3JtIikubGVuZ3RoICYmIGUua2V5Q29kZSA9PT0gMTMgKSB7CgkJCQkJCXRyaWdnZXIoICJzdWJtaXQiLCB0aGlzLCBhcmd1bWVudHMgKTsKCQkJCQl9CgkJCQl9KTsKCgkJCX0gZWxzZSB7CgkJCQlyZXR1cm4gZmFsc2U7CgkJCX0KCQl9LAoKCQl0ZWFyZG93bjogZnVuY3Rpb24oIG5hbWVzcGFjZXMgKSB7CgkJCWpRdWVyeS5ldmVudC5yZW1vdmUoIHRoaXMsICIuc3BlY2lhbFN1Ym1pdCIgKTsKCQl9Cgl9OwoKfQoKLy8gY2hhbmdlIGRlbGVnYXRpb24sIGhhcHBlbnMgaGVyZSBzbyB3ZSBoYXZlIGJpbmQuCmlmICggIWpRdWVyeS5zdXBwb3J0LmNoYW5nZUJ1YmJsZXMgKSB7CgoJdmFyIGNoYW5nZUZpbHRlcnMsCgoJZ2V0VmFsID0gZnVuY3Rpb24oIGVsZW0gKSB7CgkJdmFyIHR5cGUgPSBlbGVtLnR5cGUsIHZhbCA9IGVsZW0udmFsdWU7CgoJCWlmICggdHlwZSA9PT0gInJhZGlvIiB8fCB0eXBlID09PSAiY2hlY2tib3giICkgewoJCQl2YWwgPSBlbGVtLmNoZWNrZWQ7CgoJCX0gZWxzZSBpZiAoIHR5cGUgPT09ICJzZWxlY3QtbXVsdGlwbGUiICkgewoJCQl2YWwgPSBlbGVtLnNlbGVjdGVkSW5kZXggPiAtMSA/CgkJCQlqUXVlcnkubWFwKCBlbGVtLm9wdGlvbnMsIGZ1bmN0aW9uKCBlbGVtICkgewoJCQkJCXJldHVybiBlbGVtLnNlbGVjdGVkOwoJCQkJfSkuam9pbigiLSIpIDoKCQkJCSIiOwoKCQl9IGVsc2UgaWYgKCBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICJzZWxlY3QiICkgewoJCQl2YWwgPSBlbGVtLnNlbGVjdGVkSW5kZXg7CgkJfQoKCQlyZXR1cm4gdmFsOwoJfSwKCgl0ZXN0Q2hhbmdlID0gZnVuY3Rpb24gdGVzdENoYW5nZSggZSApIHsKCQl2YXIgZWxlbSA9IGUudGFyZ2V0LCBkYXRhLCB2YWw7CgoJCWlmICggIXJmb3JtRWxlbXMudGVzdCggZWxlbS5ub2RlTmFtZSApIHx8IGVsZW0ucmVhZE9ubHkgKSB7CgkJCXJldHVybjsKCQl9CgoJCWRhdGEgPSBqUXVlcnkuX2RhdGEoIGVsZW0sICJfY2hhbmdlX2RhdGEiICk7CgkJdmFsID0gZ2V0VmFsKGVsZW0pOwoKCQkvLyB0aGUgY3VycmVudCBkYXRhIHdpbGwgYmUgYWxzbyByZXRyaWV2ZWQgYnkgYmVmb3JlYWN0aXZhdGUKCQlpZiAoIGUudHlwZSAhPT0gImZvY3Vzb3V0IiB8fCBlbGVtLnR5cGUgIT09ICJyYWRpbyIgKSB7CgkJCWpRdWVyeS5fZGF0YSggZWxlbSwgIl9jaGFuZ2VfZGF0YSIsIHZhbCApOwoJCX0KCgkJaWYgKCBkYXRhID09PSB1bmRlZmluZWQgfHwgdmFsID09PSBkYXRhICkgewoJCQlyZXR1cm47CgkJfQoKCQlpZiAoIGRhdGEgIT0gbnVsbCB8fCB2YWwgKSB7CgkJCWUudHlwZSA9ICJjaGFuZ2UiOwoJCQllLmxpdmVGaXJlZCA9IHVuZGVmaW5lZDsKCQkJalF1ZXJ5LmV2ZW50LnRyaWdnZXIoIGUsIGFyZ3VtZW50c1sxXSwgZWxlbSApOwoJCX0KCX07CgoJalF1ZXJ5LmV2ZW50LnNwZWNpYWwuY2hhbmdlID0gewoJCWZpbHRlcnM6IHsKCQkJZm9jdXNvdXQ6IHRlc3RDaGFuZ2UsCgoJCQliZWZvcmVkZWFjdGl2YXRlOiB0ZXN0Q2hhbmdlLAoKCQkJY2xpY2s6IGZ1bmN0aW9uKCBlICkgewoJCQkJdmFyIGVsZW0gPSBlLnRhcmdldCwgdHlwZSA9IGVsZW0udHlwZTsKCgkJCQlpZiAoIHR5cGUgPT09ICJyYWRpbyIgfHwgdHlwZSA9PT0gImNoZWNrYm94IiB8fCBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICJzZWxlY3QiICkgewoJCQkJCXRlc3RDaGFuZ2UuY2FsbCggdGhpcywgZSApOwoJCQkJfQoJCQl9LAoKCQkJLy8gQ2hhbmdlIGhhcyB0byBiZSBjYWxsZWQgYmVmb3JlIHN1Ym1pdAoJCQkvLyBLZXlkb3duIHdpbGwgYmUgY2FsbGVkIGJlZm9yZSBrZXlwcmVzcywgd2hpY2ggaXMgdXNlZCBpbiBzdWJtaXQtZXZlbnQgZGVsZWdhdGlvbgoJCQlrZXlkb3duOiBmdW5jdGlvbiggZSApIHsKCQkJCXZhciBlbGVtID0gZS50YXJnZXQsIHR5cGUgPSBlbGVtLnR5cGU7CgoJCQkJaWYgKCAoZS5rZXlDb2RlID09PSAxMyAmJiBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgIT09ICJ0ZXh0YXJlYSIpIHx8CgkJCQkJKGUua2V5Q29kZSA9PT0gMzIgJiYgKHR5cGUgPT09ICJjaGVja2JveCIgfHwgdHlwZSA9PT0gInJhZGlvIikpIHx8CgkJCQkJdHlwZSA9PT0gInNlbGVjdC1tdWx0aXBsZSIgKSB7CgkJCQkJdGVzdENoYW5nZS5jYWxsKCB0aGlzLCBlICk7CgkJCQl9CgkJCX0sCgoJCQkvLyBCZWZvcmVhY3RpdmF0ZSBoYXBwZW5zIGFsc28gYmVmb3JlIHRoZSBwcmV2aW91cyBlbGVtZW50IGlzIGJsdXJyZWQKCQkJLy8gd2l0aCB0aGlzIGV2ZW50IHlvdSBjYW4ndCB0cmlnZ2VyIGEgY2hhbmdlIGV2ZW50LCBidXQgeW91IGNhbiBzdG9yZQoJCQkvLyBpbmZvcm1hdGlvbgoJCQliZWZvcmVhY3RpdmF0ZTogZnVuY3Rpb24oIGUgKSB7CgkJCQl2YXIgZWxlbSA9IGUudGFyZ2V0OwoJCQkJalF1ZXJ5Ll9kYXRhKCBlbGVtLCAiX2NoYW5nZV9kYXRhIiwgZ2V0VmFsKGVsZW0pICk7CgkJCX0KCQl9LAoKCQlzZXR1cDogZnVuY3Rpb24oIGRhdGEsIG5hbWVzcGFjZXMgKSB7CgkJCWlmICggdGhpcy50eXBlID09PSAiZmlsZSIgKSB7CgkJCQlyZXR1cm4gZmFsc2U7CgkJCX0KCgkJCWZvciAoIHZhciB0eXBlIGluIGNoYW5nZUZpbHRlcnMgKSB7CgkJCQlqUXVlcnkuZXZlbnQuYWRkKCB0aGlzLCB0eXBlICsgIi5zcGVjaWFsQ2hhbmdlIiwgY2hhbmdlRmlsdGVyc1t0eXBlXSApOwoJCQl9CgoJCQlyZXR1cm4gcmZvcm1FbGVtcy50ZXN0KCB0aGlzLm5vZGVOYW1lICk7CgkJfSwKCgkJdGVhcmRvd246IGZ1bmN0aW9uKCBuYW1lc3BhY2VzICkgewoJCQlqUXVlcnkuZXZlbnQucmVtb3ZlKCB0aGlzLCAiLnNwZWNpYWxDaGFuZ2UiICk7CgoJCQlyZXR1cm4gcmZvcm1FbGVtcy50ZXN0KCB0aGlzLm5vZGVOYW1lICk7CgkJfQoJfTsKCgljaGFuZ2VGaWx0ZXJzID0galF1ZXJ5LmV2ZW50LnNwZWNpYWwuY2hhbmdlLmZpbHRlcnM7CgoJLy8gSGFuZGxlIHdoZW4gdGhlIGlucHV0IGlzIC5mb2N1cygpJ2QKCWNoYW5nZUZpbHRlcnMuZm9jdXMgPSBjaGFuZ2VGaWx0ZXJzLmJlZm9yZWFjdGl2YXRlOwp9CgpmdW5jdGlvbiB0cmlnZ2VyKCB0eXBlLCBlbGVtLCBhcmdzICkgewoJLy8gUGlnZ3liYWNrIG9uIGEgZG9ub3IgZXZlbnQgdG8gc2ltdWxhdGUgYSBkaWZmZXJlbnQgb25lLgoJLy8gRmFrZSBvcmlnaW5hbEV2ZW50IHRvIGF2b2lkIGRvbm9yJ3Mgc3RvcFByb3BhZ2F0aW9uLCBidXQgaWYgdGhlCgkvLyBzaW11bGF0ZWQgZXZlbnQgcHJldmVudHMgZGVmYXVsdCB0aGVuIHdlIGRvIHRoZSBzYW1lIG9uIHRoZSBkb25vci4KCS8vIERvbid0IHBhc3MgYXJncyBvciByZW1lbWJlciBsaXZlRmlyZWQ7IHRoZXkgYXBwbHkgdG8gdGhlIGRvbm9yIGV2ZW50LgoJdmFyIGV2ZW50ID0galF1ZXJ5LmV4dGVuZCgge30sIGFyZ3NbIDAgXSApOwoJZXZlbnQudHlwZSA9IHR5cGU7CglldmVudC5vcmlnaW5hbEV2ZW50ID0ge307CglldmVudC5saXZlRmlyZWQgPSB1bmRlZmluZWQ7CglqUXVlcnkuZXZlbnQuaGFuZGxlLmNhbGwoIGVsZW0sIGV2ZW50ICk7CglpZiAoIGV2ZW50LmlzRGVmYXVsdFByZXZlbnRlZCgpICkgewoJCWFyZ3NbIDAgXS5wcmV2ZW50RGVmYXVsdCgpOwoJfQp9CgovLyBDcmVhdGUgImJ1YmJsaW5nIiBmb2N1cyBhbmQgYmx1ciBldmVudHMKaWYgKCBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyICkgewoJalF1ZXJ5LmVhY2goeyBmb2N1czogImZvY3VzaW4iLCBibHVyOiAiZm9jdXNvdXQiIH0sIGZ1bmN0aW9uKCBvcmlnLCBmaXggKSB7CgkJalF1ZXJ5LmV2ZW50LnNwZWNpYWxbIGZpeCBdID0gewoJCQlzZXR1cDogZnVuY3Rpb24oKSB7CgkJCQl0aGlzLmFkZEV2ZW50TGlzdGVuZXIoIG9yaWcsIGhhbmRsZXIsIHRydWUgKTsKCQkJfSwKCQkJdGVhcmRvd246IGZ1bmN0aW9uKCkgewoJCQkJdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKCBvcmlnLCBoYW5kbGVyLCB0cnVlICk7CgkJCX0KCQl9OwoKCQlmdW5jdGlvbiBoYW5kbGVyKCBlICkgewoJCQllID0galF1ZXJ5LmV2ZW50LmZpeCggZSApOwoJCQllLnR5cGUgPSBmaXg7CgkJCXJldHVybiBqUXVlcnkuZXZlbnQuaGFuZGxlLmNhbGwoIHRoaXMsIGUgKTsKCQl9Cgl9KTsKfQoKalF1ZXJ5LmVhY2goWyJiaW5kIiwgIm9uZSJdLCBmdW5jdGlvbiggaSwgbmFtZSApIHsKCWpRdWVyeS5mblsgbmFtZSBdID0gZnVuY3Rpb24oIHR5cGUsIGRhdGEsIGZuICkgewoJCS8vIEhhbmRsZSBvYmplY3QgbGl0ZXJhbHMKCQlpZiAoIHR5cGVvZiB0eXBlID09PSAib2JqZWN0IiApIHsKCQkJZm9yICggdmFyIGtleSBpbiB0eXBlICkgewoJCQkJdGhpc1sgbmFtZSBdKGtleSwgZGF0YSwgdHlwZVtrZXldLCBmbik7CgkJCX0KCQkJcmV0dXJuIHRoaXM7CgkJfQoKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCBkYXRhICkgfHwgZGF0YSA9PT0gZmFsc2UgKSB7CgkJCWZuID0gZGF0YTsKCQkJZGF0YSA9IHVuZGVmaW5lZDsKCQl9CgoJCXZhciBoYW5kbGVyID0gbmFtZSA9PT0gIm9uZSIgPyBqUXVlcnkucHJveHkoIGZuLCBmdW5jdGlvbiggZXZlbnQgKSB7CgkJCWpRdWVyeSggdGhpcyApLnVuYmluZCggZXZlbnQsIGhhbmRsZXIgKTsKCQkJcmV0dXJuIGZuLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTsKCQl9KSA6IGZuOwoKCQlpZiAoIHR5cGUgPT09ICJ1bmxvYWQiICYmIG5hbWUgIT09ICJvbmUiICkgewoJCQl0aGlzLm9uZSggdHlwZSwgZGF0YSwgZm4gKTsKCgkJfSBlbHNlIHsKCQkJZm9yICggdmFyIGkgPSAwLCBsID0gdGhpcy5sZW5ndGg7IGkgPCBsOyBpKysgKSB7CgkJCQlqUXVlcnkuZXZlbnQuYWRkKCB0aGlzW2ldLCB0eXBlLCBoYW5kbGVyLCBkYXRhICk7CgkJCX0KCQl9CgoJCXJldHVybiB0aGlzOwoJfTsKfSk7CgpqUXVlcnkuZm4uZXh0ZW5kKHsKCXVuYmluZDogZnVuY3Rpb24oIHR5cGUsIGZuICkgewoJCS8vIEhhbmRsZSBvYmplY3QgbGl0ZXJhbHMKCQlpZiAoIHR5cGVvZiB0eXBlID09PSAib2JqZWN0IiAmJiAhdHlwZS5wcmV2ZW50RGVmYXVsdCApIHsKCQkJZm9yICggdmFyIGtleSBpbiB0eXBlICkgewoJCQkJdGhpcy51bmJpbmQoa2V5LCB0eXBlW2tleV0pOwoJCQl9CgoJCX0gZWxzZSB7CgkJCWZvciAoIHZhciBpID0gMCwgbCA9IHRoaXMubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCQkJalF1ZXJ5LmV2ZW50LnJlbW92ZSggdGhpc1tpXSwgdHlwZSwgZm4gKTsKCQkJfQoJCX0KCgkJcmV0dXJuIHRoaXM7Cgl9LAoKCWRlbGVnYXRlOiBmdW5jdGlvbiggc2VsZWN0b3IsIHR5cGVzLCBkYXRhLCBmbiApIHsKCQlyZXR1cm4gdGhpcy5saXZlKCB0eXBlcywgZGF0YSwgZm4sIHNlbGVjdG9yICk7Cgl9LAoKCXVuZGVsZWdhdGU6IGZ1bmN0aW9uKCBzZWxlY3RvciwgdHlwZXMsIGZuICkgewoJCWlmICggYXJndW1lbnRzLmxlbmd0aCA9PT0gMCApIHsKCQkJCXJldHVybiB0aGlzLnVuYmluZCggImxpdmUiICk7CgoJCX0gZWxzZSB7CgkJCXJldHVybiB0aGlzLmRpZSggdHlwZXMsIG51bGwsIGZuLCBzZWxlY3RvciApOwoJCX0KCX0sCgoJdHJpZ2dlcjogZnVuY3Rpb24oIHR5cGUsIGRhdGEgKSB7CgkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJalF1ZXJ5LmV2ZW50LnRyaWdnZXIoIHR5cGUsIGRhdGEsIHRoaXMgKTsKCQl9KTsKCX0sCgoJdHJpZ2dlckhhbmRsZXI6IGZ1bmN0aW9uKCB0eXBlLCBkYXRhICkgewoJCWlmICggdGhpc1swXSApIHsKCQkJdmFyIGV2ZW50ID0galF1ZXJ5LkV2ZW50KCB0eXBlICk7CgkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7CgkJCWV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwoJCQlqUXVlcnkuZXZlbnQudHJpZ2dlciggZXZlbnQsIGRhdGEsIHRoaXNbMF0gKTsKCQkJcmV0dXJuIGV2ZW50LnJlc3VsdDsKCQl9Cgl9LAoKCXRvZ2dsZTogZnVuY3Rpb24oIGZuICkgewoJCS8vIFNhdmUgcmVmZXJlbmNlIHRvIGFyZ3VtZW50cyBmb3IgYWNjZXNzIGluIGNsb3N1cmUKCQl2YXIgYXJncyA9IGFyZ3VtZW50cywKCQkJaSA9IDE7CgoJCS8vIGxpbmsgYWxsIHRoZSBmdW5jdGlvbnMsIHNvIGFueSBvZiB0aGVtIGNhbiB1bmJpbmQgdGhpcyBjbGljayBoYW5kbGVyCgkJd2hpbGUgKCBpIDwgYXJncy5sZW5ndGggKSB7CgkJCWpRdWVyeS5wcm94eSggZm4sIGFyZ3NbIGkrKyBdICk7CgkJfQoKCQlyZXR1cm4gdGhpcy5jbGljayggalF1ZXJ5LnByb3h5KCBmbiwgZnVuY3Rpb24oIGV2ZW50ICkgewoJCQkvLyBGaWd1cmUgb3V0IHdoaWNoIGZ1bmN0aW9uIHRvIGV4ZWN1dGUKCQkJdmFyIGxhc3RUb2dnbGUgPSAoIGpRdWVyeS5fZGF0YSggdGhpcywgImxhc3RUb2dnbGUiICsgZm4uZ3VpZCApIHx8IDAgKSAlIGk7CgkJCWpRdWVyeS5fZGF0YSggdGhpcywgImxhc3RUb2dnbGUiICsgZm4uZ3VpZCwgbGFzdFRvZ2dsZSArIDEgKTsKCgkJCS8vIE1ha2Ugc3VyZSB0aGF0IGNsaWNrcyBzdG9wCgkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7CgoJCQkvLyBhbmQgZXhlY3V0ZSB0aGUgZnVuY3Rpb24KCQkJcmV0dXJuIGFyZ3NbIGxhc3RUb2dnbGUgXS5hcHBseSggdGhpcywgYXJndW1lbnRzICkgfHwgZmFsc2U7CgkJfSkpOwoJfSwKCglob3ZlcjogZnVuY3Rpb24oIGZuT3ZlciwgZm5PdXQgKSB7CgkJcmV0dXJuIHRoaXMubW91c2VlbnRlciggZm5PdmVyICkubW91c2VsZWF2ZSggZm5PdXQgfHwgZm5PdmVyICk7Cgl9Cn0pOwoKdmFyIGxpdmVNYXAgPSB7Cglmb2N1czogImZvY3VzaW4iLAoJYmx1cjogImZvY3Vzb3V0IiwKCW1vdXNlZW50ZXI6ICJtb3VzZW92ZXIiLAoJbW91c2VsZWF2ZTogIm1vdXNlb3V0Igp9OwoKalF1ZXJ5LmVhY2goWyJsaXZlIiwgImRpZSJdLCBmdW5jdGlvbiggaSwgbmFtZSApIHsKCWpRdWVyeS5mblsgbmFtZSBdID0gZnVuY3Rpb24oIHR5cGVzLCBkYXRhLCBmbiwgb3JpZ1NlbGVjdG9yIC8qIEludGVybmFsIFVzZSBPbmx5ICovICkgewoJCXZhciB0eXBlLCBpID0gMCwgbWF0Y2gsIG5hbWVzcGFjZXMsIHByZVR5cGUsCgkJCXNlbGVjdG9yID0gb3JpZ1NlbGVjdG9yIHx8IHRoaXMuc2VsZWN0b3IsCgkJCWNvbnRleHQgPSBvcmlnU2VsZWN0b3IgPyB0aGlzIDogalF1ZXJ5KCB0aGlzLmNvbnRleHQgKTsKCgkJaWYgKCB0eXBlb2YgdHlwZXMgPT09ICJvYmplY3QiICYmICF0eXBlcy5wcmV2ZW50RGVmYXVsdCApIHsKCQkJZm9yICggdmFyIGtleSBpbiB0eXBlcyApIHsKCQkJCWNvbnRleHRbIG5hbWUgXSgga2V5LCBkYXRhLCB0eXBlc1trZXldLCBzZWxlY3RvciApOwoJCQl9CgoJCQlyZXR1cm4gdGhpczsKCQl9CgoJCWlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIGRhdGEgKSApIHsKCQkJZm4gPSBkYXRhOwoJCQlkYXRhID0gdW5kZWZpbmVkOwoJCX0KCgkJdHlwZXMgPSAodHlwZXMgfHwgIiIpLnNwbGl0KCIgIik7CgoJCXdoaWxlICggKHR5cGUgPSB0eXBlc1sgaSsrIF0pICE9IG51bGwgKSB7CgkJCW1hdGNoID0gcm5hbWVzcGFjZXMuZXhlYyggdHlwZSApOwoJCQluYW1lc3BhY2VzID0gIiI7CgoJCQlpZiAoIG1hdGNoICkgIHsKCQkJCW5hbWVzcGFjZXMgPSBtYXRjaFswXTsKCQkJCXR5cGUgPSB0eXBlLnJlcGxhY2UoIHJuYW1lc3BhY2VzLCAiIiApOwoJCQl9CgoJCQlpZiAoIHR5cGUgPT09ICJob3ZlciIgKSB7CgkJCQl0eXBlcy5wdXNoKCAibW91c2VlbnRlciIgKyBuYW1lc3BhY2VzLCAibW91c2VsZWF2ZSIgKyBuYW1lc3BhY2VzICk7CgkJCQljb250aW51ZTsKCQkJfQoKCQkJcHJlVHlwZSA9IHR5cGU7CgoJCQlpZiAoIHR5cGUgPT09ICJmb2N1cyIgfHwgdHlwZSA9PT0gImJsdXIiICkgewoJCQkJdHlwZXMucHVzaCggbGl2ZU1hcFsgdHlwZSBdICsgbmFtZXNwYWNlcyApOwoJCQkJdHlwZSA9IHR5cGUgKyBuYW1lc3BhY2VzOwoKCQkJfSBlbHNlIHsKCQkJCXR5cGUgPSAobGl2ZU1hcFsgdHlwZSBdIHx8IHR5cGUpICsgbmFtZXNwYWNlczsKCQkJfQoKCQkJaWYgKCBuYW1lID09PSAibGl2ZSIgKSB7CgkJCQkvLyBiaW5kIGxpdmUgaGFuZGxlcgoJCQkJZm9yICggdmFyIGogPSAwLCBsID0gY29udGV4dC5sZW5ndGg7IGogPCBsOyBqKysgKSB7CgkJCQkJalF1ZXJ5LmV2ZW50LmFkZCggY29udGV4dFtqXSwgImxpdmUuIiArIGxpdmVDb252ZXJ0KCB0eXBlLCBzZWxlY3RvciApLAoJCQkJCQl7IGRhdGE6IGRhdGEsIHNlbGVjdG9yOiBzZWxlY3RvciwgaGFuZGxlcjogZm4sIG9yaWdUeXBlOiB0eXBlLCBvcmlnSGFuZGxlcjogZm4sIHByZVR5cGU6IHByZVR5cGUgfSApOwoJCQkJfQoKCQkJfSBlbHNlIHsKCQkJCS8vIHVuYmluZCBsaXZlIGhhbmRsZXIKCQkJCWNvbnRleHQudW5iaW5kKCAibGl2ZS4iICsgbGl2ZUNvbnZlcnQoIHR5cGUsIHNlbGVjdG9yICksIGZuICk7CgkJCX0KCQl9CgoJCXJldHVybiB0aGlzOwoJfTsKfSk7CgpmdW5jdGlvbiBsaXZlSGFuZGxlciggZXZlbnQgKSB7Cgl2YXIgc3RvcCwgbWF4TGV2ZWwsIHJlbGF0ZWQsIG1hdGNoLCBoYW5kbGVPYmosIGVsZW0sIGosIGksIGwsIGRhdGEsIGNsb3NlLCBuYW1lc3BhY2UsIHJldCwKCQllbGVtcyA9IFtdLAoJCXNlbGVjdG9ycyA9IFtdLAoJCWV2ZW50cyA9IGpRdWVyeS5fZGF0YSggdGhpcywgImV2ZW50cyIgKTsKCgkvLyBNYWtlIHN1cmUgd2UgYXZvaWQgbm9uLWxlZnQtY2xpY2sgYnViYmxpbmcgaW4gRmlyZWZveCAoIzM4NjEpIGFuZCBkaXNhYmxlZCBlbGVtZW50cyBpbiBJRSAoIzY5MTEpCglpZiAoIGV2ZW50LmxpdmVGaXJlZCA9PT0gdGhpcyB8fCAhZXZlbnRzIHx8ICFldmVudHMubGl2ZSB8fCBldmVudC50YXJnZXQuZGlzYWJsZWQgfHwgZXZlbnQuYnV0dG9uICYmIGV2ZW50LnR5cGUgPT09ICJjbGljayIgKSB7CgkJcmV0dXJuOwoJfQoKCWlmICggZXZlbnQubmFtZXNwYWNlICkgewoJCW5hbWVzcGFjZSA9IG5ldyBSZWdFeHAoIihefFxcLikiICsgZXZlbnQubmFtZXNwYWNlLnNwbGl0KCIuIikuam9pbigiXFwuKD86LipcXC4pPyIpICsgIihcXC58JCkiKTsKCX0KCglldmVudC5saXZlRmlyZWQgPSB0aGlzOwoKCXZhciBsaXZlID0gZXZlbnRzLmxpdmUuc2xpY2UoMCk7CgoJZm9yICggaiA9IDA7IGogPCBsaXZlLmxlbmd0aDsgaisrICkgewoJCWhhbmRsZU9iaiA9IGxpdmVbal07CgoJCWlmICggaGFuZGxlT2JqLm9yaWdUeXBlLnJlcGxhY2UoIHJuYW1lc3BhY2VzLCAiIiApID09PSBldmVudC50eXBlICkgewoJCQlzZWxlY3RvcnMucHVzaCggaGFuZGxlT2JqLnNlbGVjdG9yICk7CgoJCX0gZWxzZSB7CgkJCWxpdmUuc3BsaWNlKCBqLS0sIDEgKTsKCQl9Cgl9CgoJbWF0Y2ggPSBqUXVlcnkoIGV2ZW50LnRhcmdldCApLmNsb3Nlc3QoIHNlbGVjdG9ycywgZXZlbnQuY3VycmVudFRhcmdldCApOwoKCWZvciAoIGkgPSAwLCBsID0gbWF0Y2gubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCWNsb3NlID0gbWF0Y2hbaV07CgoJCWZvciAoIGogPSAwOyBqIDwgbGl2ZS5sZW5ndGg7IGorKyApIHsKCQkJaGFuZGxlT2JqID0gbGl2ZVtqXTsKCgkJCWlmICggY2xvc2Uuc2VsZWN0b3IgPT09IGhhbmRsZU9iai5zZWxlY3RvciAmJiAoIW5hbWVzcGFjZSB8fCBuYW1lc3BhY2UudGVzdCggaGFuZGxlT2JqLm5hbWVzcGFjZSApKSAmJiAhY2xvc2UuZWxlbS5kaXNhYmxlZCApIHsKCQkJCWVsZW0gPSBjbG9zZS5lbGVtOwoJCQkJcmVsYXRlZCA9IG51bGw7CgoJCQkJLy8gVGhvc2UgdHdvIGV2ZW50cyByZXF1aXJlIGFkZGl0aW9uYWwgY2hlY2tpbmcKCQkJCWlmICggaGFuZGxlT2JqLnByZVR5cGUgPT09ICJtb3VzZWVudGVyIiB8fCBoYW5kbGVPYmoucHJlVHlwZSA9PT0gIm1vdXNlbGVhdmUiICkgewoJCQkJCWV2ZW50LnR5cGUgPSBoYW5kbGVPYmoucHJlVHlwZTsKCQkJCQlyZWxhdGVkID0galF1ZXJ5KCBldmVudC5yZWxhdGVkVGFyZ2V0ICkuY2xvc2VzdCggaGFuZGxlT2JqLnNlbGVjdG9yIClbMF07CgkJCQl9CgoJCQkJaWYgKCAhcmVsYXRlZCB8fCByZWxhdGVkICE9PSBlbGVtICkgewoJCQkJCWVsZW1zLnB1c2goeyBlbGVtOiBlbGVtLCBoYW5kbGVPYmo6IGhhbmRsZU9iaiwgbGV2ZWw6IGNsb3NlLmxldmVsIH0pOwoJCQkJfQoJCQl9CgkJfQoJfQoKCWZvciAoIGkgPSAwLCBsID0gZWxlbXMubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCW1hdGNoID0gZWxlbXNbaV07CgoJCWlmICggbWF4TGV2ZWwgJiYgbWF0Y2gubGV2ZWwgPiBtYXhMZXZlbCApIHsKCQkJYnJlYWs7CgkJfQoKCQlldmVudC5jdXJyZW50VGFyZ2V0ID0gbWF0Y2guZWxlbTsKCQlldmVudC5kYXRhID0gbWF0Y2guaGFuZGxlT2JqLmRhdGE7CgkJZXZlbnQuaGFuZGxlT2JqID0gbWF0Y2guaGFuZGxlT2JqOwoKCQlyZXQgPSBtYXRjaC5oYW5kbGVPYmoub3JpZ0hhbmRsZXIuYXBwbHkoIG1hdGNoLmVsZW0sIGFyZ3VtZW50cyApOwoKCQlpZiAoIHJldCA9PT0gZmFsc2UgfHwgZXZlbnQuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSApIHsKCQkJbWF4TGV2ZWwgPSBtYXRjaC5sZXZlbDsKCgkJCWlmICggcmV0ID09PSBmYWxzZSApIHsKCQkJCXN0b3AgPSBmYWxzZTsKCQkJfQoJCQlpZiAoIGV2ZW50LmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkKCkgKSB7CgkJCQlicmVhazsKCQkJfQoJCX0KCX0KCglyZXR1cm4gc3RvcDsKfQoKZnVuY3Rpb24gbGl2ZUNvbnZlcnQoIHR5cGUsIHNlbGVjdG9yICkgewoJcmV0dXJuICh0eXBlICYmIHR5cGUgIT09ICIqIiA/IHR5cGUgKyAiLiIgOiAiIikgKyBzZWxlY3Rvci5yZXBsYWNlKHJwZXJpb2QsICJgIikucmVwbGFjZShyc3BhY2UsICImIik7Cn0KCmpRdWVyeS5lYWNoKCAoImJsdXIgZm9jdXMgZm9jdXNpbiBmb2N1c291dCBsb2FkIHJlc2l6ZSBzY3JvbGwgdW5sb2FkIGNsaWNrIGRibGNsaWNrICIgKwoJIm1vdXNlZG93biBtb3VzZXVwIG1vdXNlbW92ZSBtb3VzZW92ZXIgbW91c2VvdXQgbW91c2VlbnRlciBtb3VzZWxlYXZlICIgKwoJImNoYW5nZSBzZWxlY3Qgc3VibWl0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgZXJyb3IiKS5zcGxpdCgiICIpLCBmdW5jdGlvbiggaSwgbmFtZSApIHsKCgkvLyBIYW5kbGUgZXZlbnQgYmluZGluZwoJalF1ZXJ5LmZuWyBuYW1lIF0gPSBmdW5jdGlvbiggZGF0YSwgZm4gKSB7CgkJaWYgKCBmbiA9PSBudWxsICkgewoJCQlmbiA9IGRhdGE7CgkJCWRhdGEgPSBudWxsOwoJCX0KCgkJcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPiAwID8KCQkJdGhpcy5iaW5kKCBuYW1lLCBkYXRhLCBmbiApIDoKCQkJdGhpcy50cmlnZ2VyKCBuYW1lICk7Cgl9OwoKCWlmICggalF1ZXJ5LmF0dHJGbiApIHsKCQlqUXVlcnkuYXR0ckZuWyBuYW1lIF0gPSB0cnVlOwoJfQp9KTsKCgovKiEKICogU2l6emxlIENTUyBTZWxlY3RvciBFbmdpbmUKICogIENvcHlyaWdodCAyMDExLCBUaGUgRG9qbyBGb3VuZGF0aW9uCiAqICBSZWxlYXNlZCB1bmRlciB0aGUgTUlULCBCU0QsIGFuZCBHUEwgTGljZW5zZXMuCiAqICBNb3JlIGluZm9ybWF0aW9uOiBodHRwOi8vc2l6emxlanMuY29tLwogKi8KKGZ1bmN0aW9uKCl7Cgp2YXIgY2h1bmtlciA9IC8oKD86XCgoPzpcKFteKCldK1wpfFteKCldKykrXCl8XFsoPzpcW1teXFtcXV0qXF18WyciXVteJyJdKlsnIl18W15cW1xdJyJdKykrXF18XFwufFteID4rfiwoXFtcXF0rKSt8Wz4rfl0pKFxzKixccyopPygoPzoufFxyfFxuKSopL2csCglkb25lID0gMCwKCXRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZywKCWhhc0R1cGxpY2F0ZSA9IGZhbHNlLAoJYmFzZUhhc0R1cGxpY2F0ZSA9IHRydWUsCglyQmFja3NsYXNoID0gL1xcL2csCglyTm9uV29yZCA9IC9cVy87CgovLyBIZXJlIHdlIGNoZWNrIGlmIHRoZSBKYXZhU2NyaXB0IGVuZ2luZSBpcyB1c2luZyBzb21lIHNvcnQgb2YKLy8gb3B0aW1pemF0aW9uIHdoZXJlIGl0IGRvZXMgbm90IGFsd2F5cyBjYWxsIG91ciBjb21wYXJpc2lvbgovLyBmdW5jdGlvbi4gSWYgdGhhdCBpcyB0aGUgY2FzZSwgZGlzY2FyZCB0aGUgaGFzRHVwbGljYXRlIHZhbHVlLgovLyAgIFRodXMgZmFyIHRoYXQgaW5jbHVkZXMgR29vZ2xlIENocm9tZS4KWzAsIDBdLnNvcnQoZnVuY3Rpb24oKSB7CgliYXNlSGFzRHVwbGljYXRlID0gZmFsc2U7CglyZXR1cm4gMDsKfSk7Cgp2YXIgU2l6emxlID0gZnVuY3Rpb24oIHNlbGVjdG9yLCBjb250ZXh0LCByZXN1bHRzLCBzZWVkICkgewoJcmVzdWx0cyA9IHJlc3VsdHMgfHwgW107Cgljb250ZXh0ID0gY29udGV4dCB8fCBkb2N1bWVudDsKCgl2YXIgb3JpZ0NvbnRleHQgPSBjb250ZXh0OwoKCWlmICggY29udGV4dC5ub2RlVHlwZSAhPT0gMSAmJiBjb250ZXh0Lm5vZGVUeXBlICE9PSA5ICkgewoJCXJldHVybiBbXTsKCX0KCQoJaWYgKCAhc2VsZWN0b3IgfHwgdHlwZW9mIHNlbGVjdG9yICE9PSAic3RyaW5nIiApIHsKCQlyZXR1cm4gcmVzdWx0czsKCX0KCgl2YXIgbSwgc2V0LCBjaGVja1NldCwgZXh0cmEsIHJldCwgY3VyLCBwb3AsIGksCgkJcHJ1bmUgPSB0cnVlLAoJCWNvbnRleHRYTUwgPSBTaXp6bGUuaXNYTUwoIGNvbnRleHQgKSwKCQlwYXJ0cyA9IFtdLAoJCXNvRmFyID0gc2VsZWN0b3I7CgkKCS8vIFJlc2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgY2h1bmtlciByZWdleHAgKHN0YXJ0IGZyb20gaGVhZCkKCWRvIHsKCQljaHVua2VyLmV4ZWMoICIiICk7CgkJbSA9IGNodW5rZXIuZXhlYyggc29GYXIgKTsKCgkJaWYgKCBtICkgewoJCQlzb0ZhciA9IG1bM107CgkJCgkJCXBhcnRzLnB1c2goIG1bMV0gKTsKCQkKCQkJaWYgKCBtWzJdICkgewoJCQkJZXh0cmEgPSBtWzNdOwoJCQkJYnJlYWs7CgkJCX0KCQl9Cgl9IHdoaWxlICggbSApOwoKCWlmICggcGFydHMubGVuZ3RoID4gMSAmJiBvcmlnUE9TLmV4ZWMoIHNlbGVjdG9yICkgKSB7CgoJCWlmICggcGFydHMubGVuZ3RoID09PSAyICYmIEV4cHIucmVsYXRpdmVbIHBhcnRzWzBdIF0gKSB7CgkJCXNldCA9IHBvc1Byb2Nlc3MoIHBhcnRzWzBdICsgcGFydHNbMV0sIGNvbnRleHQgKTsKCgkJfSBlbHNlIHsKCQkJc2V0ID0gRXhwci5yZWxhdGl2ZVsgcGFydHNbMF0gXSA/CgkJCQlbIGNvbnRleHQgXSA6CgkJCQlTaXp6bGUoIHBhcnRzLnNoaWZ0KCksIGNvbnRleHQgKTsKCgkJCXdoaWxlICggcGFydHMubGVuZ3RoICkgewoJCQkJc2VsZWN0b3IgPSBwYXJ0cy5zaGlmdCgpOwoKCQkJCWlmICggRXhwci5yZWxhdGl2ZVsgc2VsZWN0b3IgXSApIHsKCQkJCQlzZWxlY3RvciArPSBwYXJ0cy5zaGlmdCgpOwoJCQkJfQoJCQkJCgkJCQlzZXQgPSBwb3NQcm9jZXNzKCBzZWxlY3Rvciwgc2V0ICk7CgkJCX0KCQl9CgoJfSBlbHNlIHsKCQkvLyBUYWtlIGEgc2hvcnRjdXQgYW5kIHNldCB0aGUgY29udGV4dCBpZiB0aGUgcm9vdCBzZWxlY3RvciBpcyBhbiBJRAoJCS8vIChidXQgbm90IGlmIGl0J2xsIGJlIGZhc3RlciBpZiB0aGUgaW5uZXIgc2VsZWN0b3IgaXMgYW4gSUQpCgkJaWYgKCAhc2VlZCAmJiBwYXJ0cy5sZW5ndGggPiAxICYmIGNvbnRleHQubm9kZVR5cGUgPT09IDkgJiYgIWNvbnRleHRYTUwgJiYKCQkJCUV4cHIubWF0Y2guSUQudGVzdChwYXJ0c1swXSkgJiYgIUV4cHIubWF0Y2guSUQudGVzdChwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXSkgKSB7CgoJCQlyZXQgPSBTaXp6bGUuZmluZCggcGFydHMuc2hpZnQoKSwgY29udGV4dCwgY29udGV4dFhNTCApOwoJCQljb250ZXh0ID0gcmV0LmV4cHIgPwoJCQkJU2l6emxlLmZpbHRlciggcmV0LmV4cHIsIHJldC5zZXQgKVswXSA6CgkJCQlyZXQuc2V0WzBdOwoJCX0KCgkJaWYgKCBjb250ZXh0ICkgewoJCQlyZXQgPSBzZWVkID8KCQkJCXsgZXhwcjogcGFydHMucG9wKCksIHNldDogbWFrZUFycmF5KHNlZWQpIH0gOgoJCQkJU2l6emxlLmZpbmQoIHBhcnRzLnBvcCgpLCBwYXJ0cy5sZW5ndGggPT09IDEgJiYgKHBhcnRzWzBdID09PSAifiIgfHwgcGFydHNbMF0gPT09ICIrIikgJiYgY29udGV4dC5wYXJlbnROb2RlID8gY29udGV4dC5wYXJlbnROb2RlIDogY29udGV4dCwgY29udGV4dFhNTCApOwoKCQkJc2V0ID0gcmV0LmV4cHIgPwoJCQkJU2l6emxlLmZpbHRlciggcmV0LmV4cHIsIHJldC5zZXQgKSA6CgkJCQlyZXQuc2V0OwoKCQkJaWYgKCBwYXJ0cy5sZW5ndGggPiAwICkgewoJCQkJY2hlY2tTZXQgPSBtYWtlQXJyYXkoIHNldCApOwoKCQkJfSBlbHNlIHsKCQkJCXBydW5lID0gZmFsc2U7CgkJCX0KCgkJCXdoaWxlICggcGFydHMubGVuZ3RoICkgewoJCQkJY3VyID0gcGFydHMucG9wKCk7CgkJCQlwb3AgPSBjdXI7CgoJCQkJaWYgKCAhRXhwci5yZWxhdGl2ZVsgY3VyIF0gKSB7CgkJCQkJY3VyID0gIiI7CgkJCQl9IGVsc2UgewoJCQkJCXBvcCA9IHBhcnRzLnBvcCgpOwoJCQkJfQoKCQkJCWlmICggcG9wID09IG51bGwgKSB7CgkJCQkJcG9wID0gY29udGV4dDsKCQkJCX0KCgkJCQlFeHByLnJlbGF0aXZlWyBjdXIgXSggY2hlY2tTZXQsIHBvcCwgY29udGV4dFhNTCApOwoJCQl9CgoJCX0gZWxzZSB7CgkJCWNoZWNrU2V0ID0gcGFydHMgPSBbXTsKCQl9Cgl9CgoJaWYgKCAhY2hlY2tTZXQgKSB7CgkJY2hlY2tTZXQgPSBzZXQ7Cgl9CgoJaWYgKCAhY2hlY2tTZXQgKSB7CgkJU2l6emxlLmVycm9yKCBjdXIgfHwgc2VsZWN0b3IgKTsKCX0KCglpZiAoIHRvU3RyaW5nLmNhbGwoY2hlY2tTZXQpID09PSAiW29iamVjdCBBcnJheV0iICkgewoJCWlmICggIXBydW5lICkgewoJCQlyZXN1bHRzLnB1c2guYXBwbHkoIHJlc3VsdHMsIGNoZWNrU2V0ICk7CgoJCX0gZWxzZSBpZiAoIGNvbnRleHQgJiYgY29udGV4dC5ub2RlVHlwZSA9PT0gMSApIHsKCQkJZm9yICggaSA9IDA7IGNoZWNrU2V0W2ldICE9IG51bGw7IGkrKyApIHsKCQkJCWlmICggY2hlY2tTZXRbaV0gJiYgKGNoZWNrU2V0W2ldID09PSB0cnVlIHx8IGNoZWNrU2V0W2ldLm5vZGVUeXBlID09PSAxICYmIFNpenpsZS5jb250YWlucyhjb250ZXh0LCBjaGVja1NldFtpXSkpICkgewoJCQkJCXJlc3VsdHMucHVzaCggc2V0W2ldICk7CgkJCQl9CgkJCX0KCgkJfSBlbHNlIHsKCQkJZm9yICggaSA9IDA7IGNoZWNrU2V0W2ldICE9IG51bGw7IGkrKyApIHsKCQkJCWlmICggY2hlY2tTZXRbaV0gJiYgY2hlY2tTZXRbaV0ubm9kZVR5cGUgPT09IDEgKSB7CgkJCQkJcmVzdWx0cy5wdXNoKCBzZXRbaV0gKTsKCQkJCX0KCQkJfQoJCX0KCgl9IGVsc2UgewoJCW1ha2VBcnJheSggY2hlY2tTZXQsIHJlc3VsdHMgKTsKCX0KCglpZiAoIGV4dHJhICkgewoJCVNpenpsZSggZXh0cmEsIG9yaWdDb250ZXh0LCByZXN1bHRzLCBzZWVkICk7CgkJU2l6emxlLnVuaXF1ZVNvcnQoIHJlc3VsdHMgKTsKCX0KCglyZXR1cm4gcmVzdWx0czsKfTsKClNpenpsZS51bmlxdWVTb3J0ID0gZnVuY3Rpb24oIHJlc3VsdHMgKSB7CglpZiAoIHNvcnRPcmRlciApIHsKCQloYXNEdXBsaWNhdGUgPSBiYXNlSGFzRHVwbGljYXRlOwoJCXJlc3VsdHMuc29ydCggc29ydE9yZGVyICk7CgoJCWlmICggaGFzRHVwbGljYXRlICkgewoJCQlmb3IgKCB2YXIgaSA9IDE7IGkgPCByZXN1bHRzLmxlbmd0aDsgaSsrICkgewoJCQkJaWYgKCByZXN1bHRzW2ldID09PSByZXN1bHRzWyBpIC0gMSBdICkgewoJCQkJCXJlc3VsdHMuc3BsaWNlKCBpLS0sIDEgKTsKCQkJCX0KCQkJfQoJCX0KCX0KCglyZXR1cm4gcmVzdWx0czsKfTsKClNpenpsZS5tYXRjaGVzID0gZnVuY3Rpb24oIGV4cHIsIHNldCApIHsKCXJldHVybiBTaXp6bGUoIGV4cHIsIG51bGwsIG51bGwsIHNldCApOwp9OwoKU2l6emxlLm1hdGNoZXNTZWxlY3RvciA9IGZ1bmN0aW9uKCBub2RlLCBleHByICkgewoJcmV0dXJuIFNpenpsZSggZXhwciwgbnVsbCwgbnVsbCwgW25vZGVdICkubGVuZ3RoID4gMDsKfTsKClNpenpsZS5maW5kID0gZnVuY3Rpb24oIGV4cHIsIGNvbnRleHQsIGlzWE1MICkgewoJdmFyIHNldDsKCglpZiAoICFleHByICkgewoJCXJldHVybiBbXTsKCX0KCglmb3IgKCB2YXIgaSA9IDAsIGwgPSBFeHByLm9yZGVyLmxlbmd0aDsgaSA8IGw7IGkrKyApIHsKCQl2YXIgbWF0Y2gsCgkJCXR5cGUgPSBFeHByLm9yZGVyW2ldOwoJCQoJCWlmICggKG1hdGNoID0gRXhwci5sZWZ0TWF0Y2hbIHR5cGUgXS5leGVjKCBleHByICkpICkgewoJCQl2YXIgbGVmdCA9IG1hdGNoWzFdOwoJCQltYXRjaC5zcGxpY2UoIDEsIDEgKTsKCgkJCWlmICggbGVmdC5zdWJzdHIoIGxlZnQubGVuZ3RoIC0gMSApICE9PSAiXFwiICkgewoJCQkJbWF0Y2hbMV0gPSAobWF0Y2hbMV0gfHwgIiIpLnJlcGxhY2UoIHJCYWNrc2xhc2gsICIiICk7CgkJCQlzZXQgPSBFeHByLmZpbmRbIHR5cGUgXSggbWF0Y2gsIGNvbnRleHQsIGlzWE1MICk7CgoJCQkJaWYgKCBzZXQgIT0gbnVsbCApIHsKCQkJCQlleHByID0gZXhwci5yZXBsYWNlKCBFeHByLm1hdGNoWyB0eXBlIF0sICIiICk7CgkJCQkJYnJlYWs7CgkJCQl9CgkJCX0KCQl9Cgl9CgoJaWYgKCAhc2V0ICkgewoJCXNldCA9IHR5cGVvZiBjb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lICE9PSAidW5kZWZpbmVkIiA/CgkJCWNvbnRleHQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoICIqIiApIDoKCQkJW107Cgl9CgoJcmV0dXJuIHsgc2V0OiBzZXQsIGV4cHI6IGV4cHIgfTsKfTsKClNpenpsZS5maWx0ZXIgPSBmdW5jdGlvbiggZXhwciwgc2V0LCBpbnBsYWNlLCBub3QgKSB7Cgl2YXIgbWF0Y2gsIGFueUZvdW5kLAoJCW9sZCA9IGV4cHIsCgkJcmVzdWx0ID0gW10sCgkJY3VyTG9vcCA9IHNldCwKCQlpc1hNTEZpbHRlciA9IHNldCAmJiBzZXRbMF0gJiYgU2l6emxlLmlzWE1MKCBzZXRbMF0gKTsKCgl3aGlsZSAoIGV4cHIgJiYgc2V0Lmxlbmd0aCApIHsKCQlmb3IgKCB2YXIgdHlwZSBpbiBFeHByLmZpbHRlciApIHsKCQkJaWYgKCAobWF0Y2ggPSBFeHByLmxlZnRNYXRjaFsgdHlwZSBdLmV4ZWMoIGV4cHIgKSkgIT0gbnVsbCAmJiBtYXRjaFsyXSApIHsKCQkJCXZhciBmb3VuZCwgaXRlbSwKCQkJCQlmaWx0ZXIgPSBFeHByLmZpbHRlclsgdHlwZSBdLAoJCQkJCWxlZnQgPSBtYXRjaFsxXTsKCgkJCQlhbnlGb3VuZCA9IGZhbHNlOwoKCQkJCW1hdGNoLnNwbGljZSgxLDEpOwoKCQkJCWlmICggbGVmdC5zdWJzdHIoIGxlZnQubGVuZ3RoIC0gMSApID09PSAiXFwiICkgewoJCQkJCWNvbnRpbnVlOwoJCQkJfQoKCQkJCWlmICggY3VyTG9vcCA9PT0gcmVzdWx0ICkgewoJCQkJCXJlc3VsdCA9IFtdOwoJCQkJfQoKCQkJCWlmICggRXhwci5wcmVGaWx0ZXJbIHR5cGUgXSApIHsKCQkJCQltYXRjaCA9IEV4cHIucHJlRmlsdGVyWyB0eXBlIF0oIG1hdGNoLCBjdXJMb29wLCBpbnBsYWNlLCByZXN1bHQsIG5vdCwgaXNYTUxGaWx0ZXIgKTsKCgkJCQkJaWYgKCAhbWF0Y2ggKSB7CgkJCQkJCWFueUZvdW5kID0gZm91bmQgPSB0cnVlOwoKCQkJCQl9IGVsc2UgaWYgKCBtYXRjaCA9PT0gdHJ1ZSApIHsKCQkJCQkJY29udGludWU7CgkJCQkJfQoJCQkJfQoKCQkJCWlmICggbWF0Y2ggKSB7CgkJCQkJZm9yICggdmFyIGkgPSAwOyAoaXRlbSA9IGN1ckxvb3BbaV0pICE9IG51bGw7IGkrKyApIHsKCQkJCQkJaWYgKCBpdGVtICkgewoJCQkJCQkJZm91bmQgPSBmaWx0ZXIoIGl0ZW0sIG1hdGNoLCBpLCBjdXJMb29wICk7CgkJCQkJCQl2YXIgcGFzcyA9IG5vdCBeICEhZm91bmQ7CgoJCQkJCQkJaWYgKCBpbnBsYWNlICYmIGZvdW5kICE9IG51bGwgKSB7CgkJCQkJCQkJaWYgKCBwYXNzICkgewoJCQkJCQkJCQlhbnlGb3VuZCA9IHRydWU7CgoJCQkJCQkJCX0gZWxzZSB7CgkJCQkJCQkJCWN1ckxvb3BbaV0gPSBmYWxzZTsKCQkJCQkJCQl9CgoJCQkJCQkJfSBlbHNlIGlmICggcGFzcyApIHsKCQkJCQkJCQlyZXN1bHQucHVzaCggaXRlbSApOwoJCQkJCQkJCWFueUZvdW5kID0gdHJ1ZTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCX0KCQkJCX0KCgkJCQlpZiAoIGZvdW5kICE9PSB1bmRlZmluZWQgKSB7CgkJCQkJaWYgKCAhaW5wbGFjZSApIHsKCQkJCQkJY3VyTG9vcCA9IHJlc3VsdDsKCQkJCQl9CgoJCQkJCWV4cHIgPSBleHByLnJlcGxhY2UoIEV4cHIubWF0Y2hbIHR5cGUgXSwgIiIgKTsKCgkJCQkJaWYgKCAhYW55Rm91bmQgKSB7CgkJCQkJCXJldHVybiBbXTsKCQkJCQl9CgoJCQkJCWJyZWFrOwoJCQkJfQoJCQl9CgkJfQoKCQkvLyBJbXByb3BlciBleHByZXNzaW9uCgkJaWYgKCBleHByID09PSBvbGQgKSB7CgkJCWlmICggYW55Rm91bmQgPT0gbnVsbCApIHsKCQkJCVNpenpsZS5lcnJvciggZXhwciApOwoKCQkJfSBlbHNlIHsKCQkJCWJyZWFrOwoJCQl9CgkJfQoKCQlvbGQgPSBleHByOwoJfQoKCXJldHVybiBjdXJMb29wOwp9OwoKU2l6emxlLmVycm9yID0gZnVuY3Rpb24oIG1zZyApIHsKCXRocm93ICJTeW50YXggZXJyb3IsIHVucmVjb2duaXplZCBleHByZXNzaW9uOiAiICsgbXNnOwp9OwoKdmFyIEV4cHIgPSBTaXp6bGUuc2VsZWN0b3JzID0gewoJb3JkZXI6IFsgIklEIiwgIk5BTUUiLCAiVEFHIiBdLAoKCW1hdGNoOiB7CgkJSUQ6IC8jKCg/Oltcd1x1MDBjMC1cdUZGRkZcLV18XFwuKSspLywKCQlDTEFTUzogL1wuKCg/Oltcd1x1MDBjMC1cdUZGRkZcLV18XFwuKSspLywKCQlOQU1FOiAvXFtuYW1lPVsnIl0qKCg/Oltcd1x1MDBjMC1cdUZGRkZcLV18XFwuKSspWyciXSpcXS8sCgkJQVRUUjogL1xbXHMqKCg/Oltcd1x1MDBjMC1cdUZGRkZcLV18XFwuKSspXHMqKD86KFxTPz0pXHMqKD86KFsnIl0pKC4qPylcM3woIz8oPzpbXHdcdTAwYzAtXHVGRkZGXC1dfFxcLikqKXwpfClccypcXS8sCgkJVEFHOiAvXigoPzpbXHdcdTAwYzAtXHVGRkZGXCpcLV18XFwuKSspLywKCQlDSElMRDogLzoob25seXxudGh8bGFzdHxmaXJzdCktY2hpbGQoPzpcKFxzKihldmVufG9kZHwoPzpbK1wtXT9cZCt8KD86WytcLV0/XGQqKT9uXHMqKD86WytcLV1ccypcZCspPykpXHMqXCkpPy8sCgkJUE9TOiAvOihudGh8ZXF8Z3R8bHR8Zmlyc3R8bGFzdHxldmVufG9kZCkoPzpcKChcZCopXCkpPyg/PVteXC1dfCQpLywKCQlQU0VVRE86IC86KCg/Oltcd1x1MDBjMC1cdUZGRkZcLV18XFwuKSspKD86XCgoWyciXT8pKCg/OlwoW15cKV0rXCl8W15cKFwpXSopKylcMlwpKT8vCgl9LAoKCWxlZnRNYXRjaDoge30sCgoJYXR0ck1hcDogewoJCSJjbGFzcyI6ICJjbGFzc05hbWUiLAoJCSJmb3IiOiAiaHRtbEZvciIKCX0sCgoJYXR0ckhhbmRsZTogewoJCWhyZWY6IGZ1bmN0aW9uKCBlbGVtICkgewoJCQlyZXR1cm4gZWxlbS5nZXRBdHRyaWJ1dGUoICJocmVmIiApOwoJCX0sCgkJdHlwZTogZnVuY3Rpb24oIGVsZW0gKSB7CgkJCXJldHVybiBlbGVtLmdldEF0dHJpYnV0ZSggInR5cGUiICk7CgkJfQoJfSwKCglyZWxhdGl2ZTogewoJCSIrIjogZnVuY3Rpb24oY2hlY2tTZXQsIHBhcnQpewoJCQl2YXIgaXNQYXJ0U3RyID0gdHlwZW9mIHBhcnQgPT09ICJzdHJpbmciLAoJCQkJaXNUYWcgPSBpc1BhcnRTdHIgJiYgIXJOb25Xb3JkLnRlc3QoIHBhcnQgKSwKCQkJCWlzUGFydFN0ck5vdFRhZyA9IGlzUGFydFN0ciAmJiAhaXNUYWc7CgoJCQlpZiAoIGlzVGFnICkgewoJCQkJcGFydCA9IHBhcnQudG9Mb3dlckNhc2UoKTsKCQkJfQoKCQkJZm9yICggdmFyIGkgPSAwLCBsID0gY2hlY2tTZXQubGVuZ3RoLCBlbGVtOyBpIDwgbDsgaSsrICkgewoJCQkJaWYgKCAoZWxlbSA9IGNoZWNrU2V0W2ldKSApIHsKCQkJCQl3aGlsZSAoIChlbGVtID0gZWxlbS5wcmV2aW91c1NpYmxpbmcpICYmIGVsZW0ubm9kZVR5cGUgIT09IDEgKSB7fQoKCQkJCQljaGVja1NldFtpXSA9IGlzUGFydFN0ck5vdFRhZyB8fCBlbGVtICYmIGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gcGFydCA/CgkJCQkJCWVsZW0gfHwgZmFsc2UgOgoJCQkJCQllbGVtID09PSBwYXJ0OwoJCQkJfQoJCQl9CgoJCQlpZiAoIGlzUGFydFN0ck5vdFRhZyApIHsKCQkJCVNpenpsZS5maWx0ZXIoIHBhcnQsIGNoZWNrU2V0LCB0cnVlICk7CgkJCX0KCQl9LAoKCQkiPiI6IGZ1bmN0aW9uKCBjaGVja1NldCwgcGFydCApIHsKCQkJdmFyIGVsZW0sCgkJCQlpc1BhcnRTdHIgPSB0eXBlb2YgcGFydCA9PT0gInN0cmluZyIsCgkJCQlpID0gMCwKCQkJCWwgPSBjaGVja1NldC5sZW5ndGg7CgoJCQlpZiAoIGlzUGFydFN0ciAmJiAhck5vbldvcmQudGVzdCggcGFydCApICkgewoJCQkJcGFydCA9IHBhcnQudG9Mb3dlckNhc2UoKTsKCgkJCQlmb3IgKCA7IGkgPCBsOyBpKysgKSB7CgkJCQkJZWxlbSA9IGNoZWNrU2V0W2ldOwoKCQkJCQlpZiAoIGVsZW0gKSB7CgkJCQkJCXZhciBwYXJlbnQgPSBlbGVtLnBhcmVudE5vZGU7CgkJCQkJCWNoZWNrU2V0W2ldID0gcGFyZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09IHBhcnQgPyBwYXJlbnQgOiBmYWxzZTsKCQkJCQl9CgkJCQl9CgoJCQl9IGVsc2UgewoJCQkJZm9yICggOyBpIDwgbDsgaSsrICkgewoJCQkJCWVsZW0gPSBjaGVja1NldFtpXTsKCgkJCQkJaWYgKCBlbGVtICkgewoJCQkJCQljaGVja1NldFtpXSA9IGlzUGFydFN0ciA/CgkJCQkJCQllbGVtLnBhcmVudE5vZGUgOgoJCQkJCQkJZWxlbS5wYXJlbnROb2RlID09PSBwYXJ0OwoJCQkJCX0KCQkJCX0KCgkJCQlpZiAoIGlzUGFydFN0ciApIHsKCQkJCQlTaXp6bGUuZmlsdGVyKCBwYXJ0LCBjaGVja1NldCwgdHJ1ZSApOwoJCQkJfQoJCQl9CgkJfSwKCgkJIiI6IGZ1bmN0aW9uKGNoZWNrU2V0LCBwYXJ0LCBpc1hNTCl7CgkJCXZhciBub2RlQ2hlY2ssCgkJCQlkb25lTmFtZSA9IGRvbmUrKywKCQkJCWNoZWNrRm4gPSBkaXJDaGVjazsKCgkJCWlmICggdHlwZW9mIHBhcnQgPT09ICJzdHJpbmciICYmICFyTm9uV29yZC50ZXN0KCBwYXJ0ICkgKSB7CgkJCQlwYXJ0ID0gcGFydC50b0xvd2VyQ2FzZSgpOwoJCQkJbm9kZUNoZWNrID0gcGFydDsKCQkJCWNoZWNrRm4gPSBkaXJOb2RlQ2hlY2s7CgkJCX0KCgkJCWNoZWNrRm4oICJwYXJlbnROb2RlIiwgcGFydCwgZG9uZU5hbWUsIGNoZWNrU2V0LCBub2RlQ2hlY2ssIGlzWE1MICk7CgkJfSwKCgkJIn4iOiBmdW5jdGlvbiggY2hlY2tTZXQsIHBhcnQsIGlzWE1MICkgewoJCQl2YXIgbm9kZUNoZWNrLAoJCQkJZG9uZU5hbWUgPSBkb25lKyssCgkJCQljaGVja0ZuID0gZGlyQ2hlY2s7CgoJCQlpZiAoIHR5cGVvZiBwYXJ0ID09PSAic3RyaW5nIiAmJiAhck5vbldvcmQudGVzdCggcGFydCApICkgewoJCQkJcGFydCA9IHBhcnQudG9Mb3dlckNhc2UoKTsKCQkJCW5vZGVDaGVjayA9IHBhcnQ7CgkJCQljaGVja0ZuID0gZGlyTm9kZUNoZWNrOwoJCQl9CgoJCQljaGVja0ZuKCAicHJldmlvdXNTaWJsaW5nIiwgcGFydCwgZG9uZU5hbWUsIGNoZWNrU2V0LCBub2RlQ2hlY2ssIGlzWE1MICk7CgkJfQoJfSwKCglmaW5kOiB7CgkJSUQ6IGZ1bmN0aW9uKCBtYXRjaCwgY29udGV4dCwgaXNYTUwgKSB7CgkJCWlmICggdHlwZW9mIGNvbnRleHQuZ2V0RWxlbWVudEJ5SWQgIT09ICJ1bmRlZmluZWQiICYmICFpc1hNTCApIHsKCQkJCXZhciBtID0gY29udGV4dC5nZXRFbGVtZW50QnlJZChtYXRjaFsxXSk7CgkJCQkvLyBDaGVjayBwYXJlbnROb2RlIHRvIGNhdGNoIHdoZW4gQmxhY2tiZXJyeSA0LjYgcmV0dXJucwoJCQkJLy8gbm9kZXMgdGhhdCBhcmUgbm8gbG9uZ2VyIGluIHRoZSBkb2N1bWVudCAjNjk2MwoJCQkJcmV0dXJuIG0gJiYgbS5wYXJlbnROb2RlID8gW21dIDogW107CgkJCX0KCQl9LAoKCQlOQU1FOiBmdW5jdGlvbiggbWF0Y2gsIGNvbnRleHQgKSB7CgkJCWlmICggdHlwZW9mIGNvbnRleHQuZ2V0RWxlbWVudHNCeU5hbWUgIT09ICJ1bmRlZmluZWQiICkgewoJCQkJdmFyIHJldCA9IFtdLAoJCQkJCXJlc3VsdHMgPSBjb250ZXh0LmdldEVsZW1lbnRzQnlOYW1lKCBtYXRjaFsxXSApOwoKCQkJCWZvciAoIHZhciBpID0gMCwgbCA9IHJlc3VsdHMubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCQkJCWlmICggcmVzdWx0c1tpXS5nZXRBdHRyaWJ1dGUoIm5hbWUiKSA9PT0gbWF0Y2hbMV0gKSB7CgkJCQkJCXJldC5wdXNoKCByZXN1bHRzW2ldICk7CgkJCQkJfQoJCQkJfQoKCQkJCXJldHVybiByZXQubGVuZ3RoID09PSAwID8gbnVsbCA6IHJldDsKCQkJfQoJCX0sCgoJCVRBRzogZnVuY3Rpb24oIG1hdGNoLCBjb250ZXh0ICkgewoJCQlpZiAoIHR5cGVvZiBjb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lICE9PSAidW5kZWZpbmVkIiApIHsKCQkJCXJldHVybiBjb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCBtYXRjaFsxXSApOwoJCQl9CgkJfQoJfSwKCXByZUZpbHRlcjogewoJCUNMQVNTOiBmdW5jdGlvbiggbWF0Y2gsIGN1ckxvb3AsIGlucGxhY2UsIHJlc3VsdCwgbm90LCBpc1hNTCApIHsKCQkJbWF0Y2ggPSAiICIgKyBtYXRjaFsxXS5yZXBsYWNlKCByQmFja3NsYXNoLCAiIiApICsgIiAiOwoKCQkJaWYgKCBpc1hNTCApIHsKCQkJCXJldHVybiBtYXRjaDsKCQkJfQoKCQkJZm9yICggdmFyIGkgPSAwLCBlbGVtOyAoZWxlbSA9IGN1ckxvb3BbaV0pICE9IG51bGw7IGkrKyApIHsKCQkJCWlmICggZWxlbSApIHsKCQkJCQlpZiAoIG5vdCBeIChlbGVtLmNsYXNzTmFtZSAmJiAoIiAiICsgZWxlbS5jbGFzc05hbWUgKyAiICIpLnJlcGxhY2UoL1tcdFxuXHJdL2csICIgIikuaW5kZXhPZihtYXRjaCkgPj0gMCkgKSB7CgkJCQkJCWlmICggIWlucGxhY2UgKSB7CgkJCQkJCQlyZXN1bHQucHVzaCggZWxlbSApOwoJCQkJCQl9CgoJCQkJCX0gZWxzZSBpZiAoIGlucGxhY2UgKSB7CgkJCQkJCWN1ckxvb3BbaV0gPSBmYWxzZTsKCQkJCQl9CgkJCQl9CgkJCX0KCgkJCXJldHVybiBmYWxzZTsKCQl9LAoKCQlJRDogZnVuY3Rpb24oIG1hdGNoICkgewoJCQlyZXR1cm4gbWF0Y2hbMV0ucmVwbGFjZSggckJhY2tzbGFzaCwgIiIgKTsKCQl9LAoKCQlUQUc6IGZ1bmN0aW9uKCBtYXRjaCwgY3VyTG9vcCApIHsKCQkJcmV0dXJuIG1hdGNoWzFdLnJlcGxhY2UoIHJCYWNrc2xhc2gsICIiICkudG9Mb3dlckNhc2UoKTsKCQl9LAoKCQlDSElMRDogZnVuY3Rpb24oIG1hdGNoICkgewoJCQlpZiAoIG1hdGNoWzFdID09PSAibnRoIiApIHsKCQkJCWlmICggIW1hdGNoWzJdICkgewoJCQkJCVNpenpsZS5lcnJvciggbWF0Y2hbMF0gKTsKCQkJCX0KCgkJCQltYXRjaFsyXSA9IG1hdGNoWzJdLnJlcGxhY2UoL15cK3xccyovZywgJycpOwoKCQkJCS8vIHBhcnNlIGVxdWF0aW9ucyBsaWtlICdldmVuJywgJ29kZCcsICc1JywgJzJuJywgJzNuKzInLCAnNG4tMScsICctbis2JwoJCQkJdmFyIHRlc3QgPSAvKC0/KShcZCopKD86bihbK1wtXT9cZCopKT8vLmV4ZWMoCgkJCQkJbWF0Y2hbMl0gPT09ICJldmVuIiAmJiAiMm4iIHx8IG1hdGNoWzJdID09PSAib2RkIiAmJiAiMm4rMSIgfHwKCQkJCQkhL1xELy50ZXN0KCBtYXRjaFsyXSApICYmICIwbisiICsgbWF0Y2hbMl0gfHwgbWF0Y2hbMl0pOwoKCQkJCS8vIGNhbGN1bGF0ZSB0aGUgbnVtYmVycyAoZmlyc3QpbisobGFzdCkgaW5jbHVkaW5nIGlmIHRoZXkgYXJlIG5lZ2F0aXZlCgkJCQltYXRjaFsyXSA9ICh0ZXN0WzFdICsgKHRlc3RbMl0gfHwgMSkpIC0gMDsKCQkJCW1hdGNoWzNdID0gdGVzdFszXSAtIDA7CgkJCX0KCQkJZWxzZSBpZiAoIG1hdGNoWzJdICkgewoJCQkJU2l6emxlLmVycm9yKCBtYXRjaFswXSApOwoJCQl9CgoJCQkvLyBUT0RPOiBNb3ZlIHRvIG5vcm1hbCBjYWNoaW5nIHN5c3RlbQoJCQltYXRjaFswXSA9IGRvbmUrKzsKCgkJCXJldHVybiBtYXRjaDsKCQl9LAoKCQlBVFRSOiBmdW5jdGlvbiggbWF0Y2gsIGN1ckxvb3AsIGlucGxhY2UsIHJlc3VsdCwgbm90LCBpc1hNTCApIHsKCQkJdmFyIG5hbWUgPSBtYXRjaFsxXSA9IG1hdGNoWzFdLnJlcGxhY2UoIHJCYWNrc2xhc2gsICIiICk7CgkJCQoJCQlpZiAoICFpc1hNTCAmJiBFeHByLmF0dHJNYXBbbmFtZV0gKSB7CgkJCQltYXRjaFsxXSA9IEV4cHIuYXR0ck1hcFtuYW1lXTsKCQkJfQoKCQkJLy8gSGFuZGxlIGlmIGFuIHVuLXF1b3RlZCB2YWx1ZSB3YXMgdXNlZAoJCQltYXRjaFs0XSA9ICggbWF0Y2hbNF0gfHwgbWF0Y2hbNV0gfHwgIiIgKS5yZXBsYWNlKCByQmFja3NsYXNoLCAiIiApOwoKCQkJaWYgKCBtYXRjaFsyXSA9PT0gIn49IiApIHsKCQkJCW1hdGNoWzRdID0gIiAiICsgbWF0Y2hbNF0gKyAiICI7CgkJCX0KCgkJCXJldHVybiBtYXRjaDsKCQl9LAoKCQlQU0VVRE86IGZ1bmN0aW9uKCBtYXRjaCwgY3VyTG9vcCwgaW5wbGFjZSwgcmVzdWx0LCBub3QgKSB7CgkJCWlmICggbWF0Y2hbMV0gPT09ICJub3QiICkgewoJCQkJLy8gSWYgd2UncmUgZGVhbGluZyB3aXRoIGEgY29tcGxleCBleHByZXNzaW9uLCBvciBhIHNpbXBsZSBvbmUKCQkJCWlmICggKCBjaHVua2VyLmV4ZWMobWF0Y2hbM10pIHx8ICIiICkubGVuZ3RoID4gMSB8fCAvXlx3Ly50ZXN0KG1hdGNoWzNdKSApIHsKCQkJCQltYXRjaFszXSA9IFNpenpsZShtYXRjaFszXSwgbnVsbCwgbnVsbCwgY3VyTG9vcCk7CgoJCQkJfSBlbHNlIHsKCQkJCQl2YXIgcmV0ID0gU2l6emxlLmZpbHRlcihtYXRjaFszXSwgY3VyTG9vcCwgaW5wbGFjZSwgdHJ1ZSBeIG5vdCk7CgoJCQkJCWlmICggIWlucGxhY2UgKSB7CgkJCQkJCXJlc3VsdC5wdXNoLmFwcGx5KCByZXN1bHQsIHJldCApOwoJCQkJCX0KCgkJCQkJcmV0dXJuIGZhbHNlOwoJCQkJfQoKCQkJfSBlbHNlIGlmICggRXhwci5tYXRjaC5QT1MudGVzdCggbWF0Y2hbMF0gKSB8fCBFeHByLm1hdGNoLkNISUxELnRlc3QoIG1hdGNoWzBdICkgKSB7CgkJCQlyZXR1cm4gdHJ1ZTsKCQkJfQoJCQkKCQkJcmV0dXJuIG1hdGNoOwoJCX0sCgoJCVBPUzogZnVuY3Rpb24oIG1hdGNoICkgewoJCQltYXRjaC51bnNoaWZ0KCB0cnVlICk7CgoJCQlyZXR1cm4gbWF0Y2g7CgkJfQoJfSwKCQoJZmlsdGVyczogewoJCWVuYWJsZWQ6IGZ1bmN0aW9uKCBlbGVtICkgewoJCQlyZXR1cm4gZWxlbS5kaXNhYmxlZCA9PT0gZmFsc2UgJiYgZWxlbS50eXBlICE9PSAiaGlkZGVuIjsKCQl9LAoKCQlkaXNhYmxlZDogZnVuY3Rpb24oIGVsZW0gKSB7CgkJCXJldHVybiBlbGVtLmRpc2FibGVkID09PSB0cnVlOwoJCX0sCgoJCWNoZWNrZWQ6IGZ1bmN0aW9uKCBlbGVtICkgewoJCQlyZXR1cm4gZWxlbS5jaGVja2VkID09PSB0cnVlOwoJCX0sCgkJCgkJc2VsZWN0ZWQ6IGZ1bmN0aW9uKCBlbGVtICkgewoJCQkvLyBBY2Nlc3NpbmcgdGhpcyBwcm9wZXJ0eSBtYWtlcyBzZWxlY3RlZC1ieS1kZWZhdWx0CgkJCS8vIG9wdGlvbnMgaW4gU2FmYXJpIHdvcmsgcHJvcGVybHkKCQkJaWYgKCBlbGVtLnBhcmVudE5vZGUgKSB7CgkJCQllbGVtLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleDsKCQkJfQoJCQkKCQkJcmV0dXJuIGVsZW0uc2VsZWN0ZWQgPT09IHRydWU7CgkJfSwKCgkJcGFyZW50OiBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuICEhZWxlbS5maXJzdENoaWxkOwoJCX0sCgoJCWVtcHR5OiBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuICFlbGVtLmZpcnN0Q2hpbGQ7CgkJfSwKCgkJaGFzOiBmdW5jdGlvbiggZWxlbSwgaSwgbWF0Y2ggKSB7CgkJCXJldHVybiAhIVNpenpsZSggbWF0Y2hbM10sIGVsZW0gKS5sZW5ndGg7CgkJfSwKCgkJaGVhZGVyOiBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuICgvaFxkL2kpLnRlc3QoIGVsZW0ubm9kZU5hbWUgKTsKCQl9LAoKCQl0ZXh0OiBmdW5jdGlvbiggZWxlbSApIHsKCQkJLy8gSUU2IGFuZCA3IHdpbGwgbWFwIGVsZW0udHlwZSB0byAndGV4dCcgZm9yIG5ldyBIVE1MNSB0eXBlcyAoc2VhcmNoLCBldGMpIAoJCQkvLyB1c2UgZ2V0QXR0cmlidXRlIGluc3RlYWQgdG8gdGVzdCB0aGlzIGNhc2UKCQkJcmV0dXJuICJ0ZXh0IiA9PT0gZWxlbS5nZXRBdHRyaWJ1dGUoICd0eXBlJyApOwoJCX0sCgkJcmFkaW86IGZ1bmN0aW9uKCBlbGVtICkgewoJCQlyZXR1cm4gInJhZGlvIiA9PT0gZWxlbS50eXBlOwoJCX0sCgoJCWNoZWNrYm94OiBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuICJjaGVja2JveCIgPT09IGVsZW0udHlwZTsKCQl9LAoKCQlmaWxlOiBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuICJmaWxlIiA9PT0gZWxlbS50eXBlOwoJCX0sCgkJcGFzc3dvcmQ6IGZ1bmN0aW9uKCBlbGVtICkgewoJCQlyZXR1cm4gInBhc3N3b3JkIiA9PT0gZWxlbS50eXBlOwoJCX0sCgoJCXN1Ym1pdDogZnVuY3Rpb24oIGVsZW0gKSB7CgkJCXJldHVybiAic3VibWl0IiA9PT0gZWxlbS50eXBlOwoJCX0sCgoJCWltYWdlOiBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuICJpbWFnZSIgPT09IGVsZW0udHlwZTsKCQl9LAoKCQlyZXNldDogZnVuY3Rpb24oIGVsZW0gKSB7CgkJCXJldHVybiAicmVzZXQiID09PSBlbGVtLnR5cGU7CgkJfSwKCgkJYnV0dG9uOiBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuICJidXR0b24iID09PSBlbGVtLnR5cGUgfHwgZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAiYnV0dG9uIjsKCQl9LAoKCQlpbnB1dDogZnVuY3Rpb24oIGVsZW0gKSB7CgkJCXJldHVybiAoL2lucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24vaSkudGVzdCggZWxlbS5ub2RlTmFtZSApOwoJCX0KCX0sCglzZXRGaWx0ZXJzOiB7CgkJZmlyc3Q6IGZ1bmN0aW9uKCBlbGVtLCBpICkgewoJCQlyZXR1cm4gaSA9PT0gMDsKCQl9LAoKCQlsYXN0OiBmdW5jdGlvbiggZWxlbSwgaSwgbWF0Y2gsIGFycmF5ICkgewoJCQlyZXR1cm4gaSA9PT0gYXJyYXkubGVuZ3RoIC0gMTsKCQl9LAoKCQlldmVuOiBmdW5jdGlvbiggZWxlbSwgaSApIHsKCQkJcmV0dXJuIGkgJSAyID09PSAwOwoJCX0sCgoJCW9kZDogZnVuY3Rpb24oIGVsZW0sIGkgKSB7CgkJCXJldHVybiBpICUgMiA9PT0gMTsKCQl9LAoKCQlsdDogZnVuY3Rpb24oIGVsZW0sIGksIG1hdGNoICkgewoJCQlyZXR1cm4gaSA8IG1hdGNoWzNdIC0gMDsKCQl9LAoKCQlndDogZnVuY3Rpb24oIGVsZW0sIGksIG1hdGNoICkgewoJCQlyZXR1cm4gaSA+IG1hdGNoWzNdIC0gMDsKCQl9LAoKCQludGg6IGZ1bmN0aW9uKCBlbGVtLCBpLCBtYXRjaCApIHsKCQkJcmV0dXJuIG1hdGNoWzNdIC0gMCA9PT0gaTsKCQl9LAoKCQllcTogZnVuY3Rpb24oIGVsZW0sIGksIG1hdGNoICkgewoJCQlyZXR1cm4gbWF0Y2hbM10gLSAwID09PSBpOwoJCX0KCX0sCglmaWx0ZXI6IHsKCQlQU0VVRE86IGZ1bmN0aW9uKCBlbGVtLCBtYXRjaCwgaSwgYXJyYXkgKSB7CgkJCXZhciBuYW1lID0gbWF0Y2hbMV0sCgkJCQlmaWx0ZXIgPSBFeHByLmZpbHRlcnNbIG5hbWUgXTsKCgkJCWlmICggZmlsdGVyICkgewoJCQkJcmV0dXJuIGZpbHRlciggZWxlbSwgaSwgbWF0Y2gsIGFycmF5ICk7CgoJCQl9IGVsc2UgaWYgKCBuYW1lID09PSAiY29udGFpbnMiICkgewoJCQkJcmV0dXJuIChlbGVtLnRleHRDb250ZW50IHx8IGVsZW0uaW5uZXJUZXh0IHx8IFNpenpsZS5nZXRUZXh0KFsgZWxlbSBdKSB8fCAiIikuaW5kZXhPZihtYXRjaFszXSkgPj0gMDsKCgkJCX0gZWxzZSBpZiAoIG5hbWUgPT09ICJub3QiICkgewoJCQkJdmFyIG5vdCA9IG1hdGNoWzNdOwoKCQkJCWZvciAoIHZhciBqID0gMCwgbCA9IG5vdC5sZW5ndGg7IGogPCBsOyBqKysgKSB7CgkJCQkJaWYgKCBub3Rbal0gPT09IGVsZW0gKSB7CgkJCQkJCXJldHVybiBmYWxzZTsKCQkJCQl9CgkJCQl9CgoJCQkJcmV0dXJuIHRydWU7CgoJCQl9IGVsc2UgewoJCQkJU2l6emxlLmVycm9yKCBuYW1lICk7CgkJCX0KCQl9LAoKCQlDSElMRDogZnVuY3Rpb24oIGVsZW0sIG1hdGNoICkgewoJCQl2YXIgdHlwZSA9IG1hdGNoWzFdLAoJCQkJbm9kZSA9IGVsZW07CgoJCQlzd2l0Y2ggKCB0eXBlICkgewoJCQkJY2FzZSAib25seSI6CgkJCQljYXNlICJmaXJzdCI6CgkJCQkJd2hpbGUgKCAobm9kZSA9IG5vZGUucHJldmlvdXNTaWJsaW5nKSApCSB7CgkJCQkJCWlmICggbm9kZS5ub2RlVHlwZSA9PT0gMSApIHsgCgkJCQkJCQlyZXR1cm4gZmFsc2U7IAoJCQkJCQl9CgkJCQkJfQoKCQkJCQlpZiAoIHR5cGUgPT09ICJmaXJzdCIgKSB7IAoJCQkJCQlyZXR1cm4gdHJ1ZTsgCgkJCQkJfQoKCQkJCQlub2RlID0gZWxlbTsKCgkJCQljYXNlICJsYXN0IjoKCQkJCQl3aGlsZSAoIChub2RlID0gbm9kZS5uZXh0U2libGluZykgKQkgewoJCQkJCQlpZiAoIG5vZGUubm9kZVR5cGUgPT09IDEgKSB7IAoJCQkJCQkJcmV0dXJuIGZhbHNlOyAKCQkJCQkJfQoJCQkJCX0KCgkJCQkJcmV0dXJuIHRydWU7CgoJCQkJY2FzZSAibnRoIjoKCQkJCQl2YXIgZmlyc3QgPSBtYXRjaFsyXSwKCQkJCQkJbGFzdCA9IG1hdGNoWzNdOwoKCQkJCQlpZiAoIGZpcnN0ID09PSAxICYmIGxhc3QgPT09IDAgKSB7CgkJCQkJCXJldHVybiB0cnVlOwoJCQkJCX0KCQkJCQkKCQkJCQl2YXIgZG9uZU5hbWUgPSBtYXRjaFswXSwKCQkJCQkJcGFyZW50ID0gZWxlbS5wYXJlbnROb2RlOwoJCgkJCQkJaWYgKCBwYXJlbnQgJiYgKHBhcmVudC5zaXpjYWNoZSAhPT0gZG9uZU5hbWUgfHwgIWVsZW0ubm9kZUluZGV4KSApIHsKCQkJCQkJdmFyIGNvdW50ID0gMDsKCQkJCQkJCgkJCQkJCWZvciAoIG5vZGUgPSBwYXJlbnQuZmlyc3RDaGlsZDsgbm9kZTsgbm9kZSA9IG5vZGUubmV4dFNpYmxpbmcgKSB7CgkJCQkJCQlpZiAoIG5vZGUubm9kZVR5cGUgPT09IDEgKSB7CgkJCQkJCQkJbm9kZS5ub2RlSW5kZXggPSArK2NvdW50OwoJCQkJCQkJfQoJCQkJCQl9IAoKCQkJCQkJcGFyZW50LnNpemNhY2hlID0gZG9uZU5hbWU7CgkJCQkJfQoJCQkJCQoJCQkJCXZhciBkaWZmID0gZWxlbS5ub2RlSW5kZXggLSBsYXN0OwoKCQkJCQlpZiAoIGZpcnN0ID09PSAwICkgewoJCQkJCQlyZXR1cm4gZGlmZiA9PT0gMDsKCgkJCQkJfSBlbHNlIHsKCQkJCQkJcmV0dXJuICggZGlmZiAlIGZpcnN0ID09PSAwICYmIGRpZmYgLyBmaXJzdCA+PSAwICk7CgkJCQkJfQoJCQl9CgkJfSwKCgkJSUQ6IGZ1bmN0aW9uKCBlbGVtLCBtYXRjaCApIHsKCQkJcmV0dXJuIGVsZW0ubm9kZVR5cGUgPT09IDEgJiYgZWxlbS5nZXRBdHRyaWJ1dGUoImlkIikgPT09IG1hdGNoOwoJCX0sCgoJCVRBRzogZnVuY3Rpb24oIGVsZW0sIG1hdGNoICkgewoJCQlyZXR1cm4gKG1hdGNoID09PSAiKiIgJiYgZWxlbS5ub2RlVHlwZSA9PT0gMSkgfHwgZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSBtYXRjaDsKCQl9LAoJCQoJCUNMQVNTOiBmdW5jdGlvbiggZWxlbSwgbWF0Y2ggKSB7CgkJCXJldHVybiAoIiAiICsgKGVsZW0uY2xhc3NOYW1lIHx8IGVsZW0uZ2V0QXR0cmlidXRlKCJjbGFzcyIpKSArICIgIikKCQkJCS5pbmRleE9mKCBtYXRjaCApID4gLTE7CgkJfSwKCgkJQVRUUjogZnVuY3Rpb24oIGVsZW0sIG1hdGNoICkgewoJCQl2YXIgbmFtZSA9IG1hdGNoWzFdLAoJCQkJcmVzdWx0ID0gRXhwci5hdHRySGFuZGxlWyBuYW1lIF0gPwoJCQkJCUV4cHIuYXR0ckhhbmRsZVsgbmFtZSBdKCBlbGVtICkgOgoJCQkJCWVsZW1bIG5hbWUgXSAhPSBudWxsID8KCQkJCQkJZWxlbVsgbmFtZSBdIDoKCQkJCQkJZWxlbS5nZXRBdHRyaWJ1dGUoIG5hbWUgKSwKCQkJCXZhbHVlID0gcmVzdWx0ICsgIiIsCgkJCQl0eXBlID0gbWF0Y2hbMl0sCgkJCQljaGVjayA9IG1hdGNoWzRdOwoKCQkJcmV0dXJuIHJlc3VsdCA9PSBudWxsID8KCQkJCXR5cGUgPT09ICIhPSIgOgoJCQkJdHlwZSA9PT0gIj0iID8KCQkJCXZhbHVlID09PSBjaGVjayA6CgkJCQl0eXBlID09PSAiKj0iID8KCQkJCXZhbHVlLmluZGV4T2YoY2hlY2spID49IDAgOgoJCQkJdHlwZSA9PT0gIn49IiA/CgkJCQkoIiAiICsgdmFsdWUgKyAiICIpLmluZGV4T2YoY2hlY2spID49IDAgOgoJCQkJIWNoZWNrID8KCQkJCXZhbHVlICYmIHJlc3VsdCAhPT0gZmFsc2UgOgoJCQkJdHlwZSA9PT0gIiE9IiA/CgkJCQl2YWx1ZSAhPT0gY2hlY2sgOgoJCQkJdHlwZSA9PT0gIl49IiA/CgkJCQl2YWx1ZS5pbmRleE9mKGNoZWNrKSA9PT0gMCA6CgkJCQl0eXBlID09PSAiJD0iID8KCQkJCXZhbHVlLnN1YnN0cih2YWx1ZS5sZW5ndGggLSBjaGVjay5sZW5ndGgpID09PSBjaGVjayA6CgkJCQl0eXBlID09PSAifD0iID8KCQkJCXZhbHVlID09PSBjaGVjayB8fCB2YWx1ZS5zdWJzdHIoMCwgY2hlY2subGVuZ3RoICsgMSkgPT09IGNoZWNrICsgIi0iIDoKCQkJCWZhbHNlOwoJCX0sCgoJCVBPUzogZnVuY3Rpb24oIGVsZW0sIG1hdGNoLCBpLCBhcnJheSApIHsKCQkJdmFyIG5hbWUgPSBtYXRjaFsyXSwKCQkJCWZpbHRlciA9IEV4cHIuc2V0RmlsdGVyc1sgbmFtZSBdOwoKCQkJaWYgKCBmaWx0ZXIgKSB7CgkJCQlyZXR1cm4gZmlsdGVyKCBlbGVtLCBpLCBtYXRjaCwgYXJyYXkgKTsKCQkJfQoJCX0KCX0KfTsKCnZhciBvcmlnUE9TID0gRXhwci5tYXRjaC5QT1MsCglmZXNjYXBlID0gZnVuY3Rpb24oYWxsLCBudW0pewoJCXJldHVybiAiXFwiICsgKG51bSAtIDAgKyAxKTsKCX07Cgpmb3IgKCB2YXIgdHlwZSBpbiBFeHByLm1hdGNoICkgewoJRXhwci5tYXRjaFsgdHlwZSBdID0gbmV3IFJlZ0V4cCggRXhwci5tYXRjaFsgdHlwZSBdLnNvdXJjZSArICgvKD8hW15cW10qXF0pKD8hW15cKF0qXCkpLy5zb3VyY2UpICk7CglFeHByLmxlZnRNYXRjaFsgdHlwZSBdID0gbmV3IFJlZ0V4cCggLyheKD86LnxccnxcbikqPykvLnNvdXJjZSArIEV4cHIubWF0Y2hbIHR5cGUgXS5zb3VyY2UucmVwbGFjZSgvXFwoXGQrKS9nLCBmZXNjYXBlKSApOwp9Cgp2YXIgbWFrZUFycmF5ID0gZnVuY3Rpb24oIGFycmF5LCByZXN1bHRzICkgewoJYXJyYXkgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCggYXJyYXksIDAgKTsKCglpZiAoIHJlc3VsdHMgKSB7CgkJcmVzdWx0cy5wdXNoLmFwcGx5KCByZXN1bHRzLCBhcnJheSApOwoJCXJldHVybiByZXN1bHRzOwoJfQoJCglyZXR1cm4gYXJyYXk7Cn07CgovLyBQZXJmb3JtIGEgc2ltcGxlIGNoZWNrIHRvIGRldGVybWluZSBpZiB0aGUgYnJvd3NlciBpcyBjYXBhYmxlIG9mCi8vIGNvbnZlcnRpbmcgYSBOb2RlTGlzdCB0byBhbiBhcnJheSB1c2luZyBidWlsdGluIG1ldGhvZHMuCi8vIEFsc28gdmVyaWZpZXMgdGhhdCB0aGUgcmV0dXJuZWQgYXJyYXkgaG9sZHMgRE9NIG5vZGVzCi8vICh3aGljaCBpcyBub3QgdGhlIGNhc2UgaW4gdGhlIEJsYWNrYmVycnkgYnJvd3NlcikKdHJ5IHsKCUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2hpbGROb2RlcywgMCApWzBdLm5vZGVUeXBlOwoKLy8gUHJvdmlkZSBhIGZhbGxiYWNrIG1ldGhvZCBpZiBpdCBkb2VzIG5vdCB3b3JrCn0gY2F0Y2goIGUgKSB7CgltYWtlQXJyYXkgPSBmdW5jdGlvbiggYXJyYXksIHJlc3VsdHMgKSB7CgkJdmFyIGkgPSAwLAoJCQlyZXQgPSByZXN1bHRzIHx8IFtdOwoKCQlpZiAoIHRvU3RyaW5nLmNhbGwoYXJyYXkpID09PSAiW29iamVjdCBBcnJheV0iICkgewoJCQlBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseSggcmV0LCBhcnJheSApOwoKCQl9IGVsc2UgewoJCQlpZiAoIHR5cGVvZiBhcnJheS5sZW5ndGggPT09ICJudW1iZXIiICkgewoJCQkJZm9yICggdmFyIGwgPSBhcnJheS5sZW5ndGg7IGkgPCBsOyBpKysgKSB7CgkJCQkJcmV0LnB1c2goIGFycmF5W2ldICk7CgkJCQl9CgoJCQl9IGVsc2UgewoJCQkJZm9yICggOyBhcnJheVtpXTsgaSsrICkgewoJCQkJCXJldC5wdXNoKCBhcnJheVtpXSApOwoJCQkJfQoJCQl9CgkJfQoKCQlyZXR1cm4gcmV0OwoJfTsKfQoKdmFyIHNvcnRPcmRlciwgc2libGluZ0NoZWNrOwoKaWYgKCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY29tcGFyZURvY3VtZW50UG9zaXRpb24gKSB7Cglzb3J0T3JkZXIgPSBmdW5jdGlvbiggYSwgYiApIHsKCQlpZiAoIGEgPT09IGIgKSB7CgkJCWhhc0R1cGxpY2F0ZSA9IHRydWU7CgkJCXJldHVybiAwOwoJCX0KCgkJaWYgKCAhYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiB8fCAhYi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiApIHsKCQkJcmV0dXJuIGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24gPyAtMSA6IDE7CgkJfQoKCQlyZXR1cm4gYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKSAmIDQgPyAtMSA6IDE7Cgl9OwoKfSBlbHNlIHsKCXNvcnRPcmRlciA9IGZ1bmN0aW9uKCBhLCBiICkgewoJCXZhciBhbCwgYmwsCgkJCWFwID0gW10sCgkJCWJwID0gW10sCgkJCWF1cCA9IGEucGFyZW50Tm9kZSwKCQkJYnVwID0gYi5wYXJlbnROb2RlLAoJCQljdXIgPSBhdXA7CgoJCS8vIFRoZSBub2RlcyBhcmUgaWRlbnRpY2FsLCB3ZSBjYW4gZXhpdCBlYXJseQoJCWlmICggYSA9PT0gYiApIHsKCQkJaGFzRHVwbGljYXRlID0gdHJ1ZTsKCQkJcmV0dXJuIDA7CgoJCS8vIElmIHRoZSBub2RlcyBhcmUgc2libGluZ3MgKG9yIGlkZW50aWNhbCkgd2UgY2FuIGRvIGEgcXVpY2sgY2hlY2sKCQl9IGVsc2UgaWYgKCBhdXAgPT09IGJ1cCApIHsKCQkJcmV0dXJuIHNpYmxpbmdDaGVjayggYSwgYiApOwoKCQkvLyBJZiBubyBwYXJlbnRzIHdlcmUgZm91bmQgdGhlbiB0aGUgbm9kZXMgYXJlIGRpc2Nvbm5lY3RlZAoJCX0gZWxzZSBpZiAoICFhdXAgKSB7CgkJCXJldHVybiAtMTsKCgkJfSBlbHNlIGlmICggIWJ1cCApIHsKCQkJcmV0dXJuIDE7CgkJfQoKCQkvLyBPdGhlcndpc2UgdGhleSdyZSBzb21ld2hlcmUgZWxzZSBpbiB0aGUgdHJlZSBzbyB3ZSBuZWVkCgkJLy8gdG8gYnVpbGQgdXAgYSBmdWxsIGxpc3Qgb2YgdGhlIHBhcmVudE5vZGVzIGZvciBjb21wYXJpc29uCgkJd2hpbGUgKCBjdXIgKSB7CgkJCWFwLnVuc2hpZnQoIGN1ciApOwoJCQljdXIgPSBjdXIucGFyZW50Tm9kZTsKCQl9CgoJCWN1ciA9IGJ1cDsKCgkJd2hpbGUgKCBjdXIgKSB7CgkJCWJwLnVuc2hpZnQoIGN1ciApOwoJCQljdXIgPSBjdXIucGFyZW50Tm9kZTsKCQl9CgoJCWFsID0gYXAubGVuZ3RoOwoJCWJsID0gYnAubGVuZ3RoOwoKCQkvLyBTdGFydCB3YWxraW5nIGRvd24gdGhlIHRyZWUgbG9va2luZyBmb3IgYSBkaXNjcmVwYW5jeQoJCWZvciAoIHZhciBpID0gMDsgaSA8IGFsICYmIGkgPCBibDsgaSsrICkgewoJCQlpZiAoIGFwW2ldICE9PSBicFtpXSApIHsKCQkJCXJldHVybiBzaWJsaW5nQ2hlY2soIGFwW2ldLCBicFtpXSApOwoJCQl9CgkJfQoKCQkvLyBXZSBlbmRlZCBzb21lcGxhY2UgdXAgdGhlIHRyZWUgc28gZG8gYSBzaWJsaW5nIGNoZWNrCgkJcmV0dXJuIGkgPT09IGFsID8KCQkJc2libGluZ0NoZWNrKCBhLCBicFtpXSwgLTEgKSA6CgkJCXNpYmxpbmdDaGVjayggYXBbaV0sIGIsIDEgKTsKCX07CgoJc2libGluZ0NoZWNrID0gZnVuY3Rpb24oIGEsIGIsIHJldCApIHsKCQlpZiAoIGEgPT09IGIgKSB7CgkJCXJldHVybiByZXQ7CgkJfQoKCQl2YXIgY3VyID0gYS5uZXh0U2libGluZzsKCgkJd2hpbGUgKCBjdXIgKSB7CgkJCWlmICggY3VyID09PSBiICkgewoJCQkJcmV0dXJuIC0xOwoJCQl9CgoJCQljdXIgPSBjdXIubmV4dFNpYmxpbmc7CgkJfQoKCQlyZXR1cm4gMTsKCX07Cn0KCi8vIFV0aWxpdHkgZnVuY3Rpb24gZm9yIHJldHJlaXZpbmcgdGhlIHRleHQgdmFsdWUgb2YgYW4gYXJyYXkgb2YgRE9NIG5vZGVzClNpenpsZS5nZXRUZXh0ID0gZnVuY3Rpb24oIGVsZW1zICkgewoJdmFyIHJldCA9ICIiLCBlbGVtOwoKCWZvciAoIHZhciBpID0gMDsgZWxlbXNbaV07IGkrKyApIHsKCQllbGVtID0gZWxlbXNbaV07CgoJCS8vIEdldCB0aGUgdGV4dCBmcm9tIHRleHQgbm9kZXMgYW5kIENEQVRBIG5vZGVzCgkJaWYgKCBlbGVtLm5vZGVUeXBlID09PSAzIHx8IGVsZW0ubm9kZVR5cGUgPT09IDQgKSB7CgkJCXJldCArPSBlbGVtLm5vZGVWYWx1ZTsKCgkJLy8gVHJhdmVyc2UgZXZlcnl0aGluZyBlbHNlLCBleGNlcHQgY29tbWVudCBub2RlcwoJCX0gZWxzZSBpZiAoIGVsZW0ubm9kZVR5cGUgIT09IDggKSB7CgkJCXJldCArPSBTaXp6bGUuZ2V0VGV4dCggZWxlbS5jaGlsZE5vZGVzICk7CgkJfQoJfQoKCXJldHVybiByZXQ7Cn07CgovLyBDaGVjayB0byBzZWUgaWYgdGhlIGJyb3dzZXIgcmV0dXJucyBlbGVtZW50cyBieSBuYW1lIHdoZW4KLy8gcXVlcnlpbmcgYnkgZ2V0RWxlbWVudEJ5SWQgKGFuZCBwcm92aWRlIGEgd29ya2Fyb3VuZCkKKGZ1bmN0aW9uKCl7CgkvLyBXZSdyZSBnb2luZyB0byBpbmplY3QgYSBmYWtlIGlucHV0IGVsZW1lbnQgd2l0aCBhIHNwZWNpZmllZCBuYW1lCgl2YXIgZm9ybSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLAoJCWlkID0gInNjcmlwdCIgKyAobmV3IERhdGUoKSkuZ2V0VGltZSgpLAoJCXJvb3QgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CgoJZm9ybS5pbm5lckhUTUwgPSAiPGEgbmFtZT0nIiArIGlkICsgIicvPiI7CgoJLy8gSW5qZWN0IGl0IGludG8gdGhlIHJvb3QgZWxlbWVudCwgY2hlY2sgaXRzIHN0YXR1cywgYW5kIHJlbW92ZSBpdCBxdWlja2x5Cglyb290Lmluc2VydEJlZm9yZSggZm9ybSwgcm9vdC5maXJzdENoaWxkICk7CgoJLy8gVGhlIHdvcmthcm91bmQgaGFzIHRvIGRvIGFkZGl0aW9uYWwgY2hlY2tzIGFmdGVyIGEgZ2V0RWxlbWVudEJ5SWQKCS8vIFdoaWNoIHNsb3dzIHRoaW5ncyBkb3duIGZvciBvdGhlciBicm93c2VycyAoaGVuY2UgdGhlIGJyYW5jaGluZykKCWlmICggZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIGlkICkgKSB7CgkJRXhwci5maW5kLklEID0gZnVuY3Rpb24oIG1hdGNoLCBjb250ZXh0LCBpc1hNTCApIHsKCQkJaWYgKCB0eXBlb2YgY29udGV4dC5nZXRFbGVtZW50QnlJZCAhPT0gInVuZGVmaW5lZCIgJiYgIWlzWE1MICkgewoJCQkJdmFyIG0gPSBjb250ZXh0LmdldEVsZW1lbnRCeUlkKG1hdGNoWzFdKTsKCgkJCQlyZXR1cm4gbSA/CgkJCQkJbS5pZCA9PT0gbWF0Y2hbMV0gfHwgdHlwZW9mIG0uZ2V0QXR0cmlidXRlTm9kZSAhPT0gInVuZGVmaW5lZCIgJiYgbS5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpLm5vZGVWYWx1ZSA9PT0gbWF0Y2hbMV0gPwoJCQkJCQlbbV0gOgoJCQkJCQl1bmRlZmluZWQgOgoJCQkJCVtdOwoJCQl9CgkJfTsKCgkJRXhwci5maWx0ZXIuSUQgPSBmdW5jdGlvbiggZWxlbSwgbWF0Y2ggKSB7CgkJCXZhciBub2RlID0gdHlwZW9mIGVsZW0uZ2V0QXR0cmlidXRlTm9kZSAhPT0gInVuZGVmaW5lZCIgJiYgZWxlbS5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpOwoKCQkJcmV0dXJuIGVsZW0ubm9kZVR5cGUgPT09IDEgJiYgbm9kZSAmJiBub2RlLm5vZGVWYWx1ZSA9PT0gbWF0Y2g7CgkJfTsKCX0KCglyb290LnJlbW92ZUNoaWxkKCBmb3JtICk7CgoJLy8gcmVsZWFzZSBtZW1vcnkgaW4gSUUKCXJvb3QgPSBmb3JtID0gbnVsbDsKfSkoKTsKCihmdW5jdGlvbigpewoJLy8gQ2hlY2sgdG8gc2VlIGlmIHRoZSBicm93c2VyIHJldHVybnMgb25seSBlbGVtZW50cwoJLy8gd2hlbiBkb2luZyBnZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpCgoJLy8gQ3JlYXRlIGEgZmFrZSBlbGVtZW50Cgl2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CglkaXYuYXBwZW5kQ2hpbGQoIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoIiIpICk7CgoJLy8gTWFrZSBzdXJlIG5vIGNvbW1lbnRzIGFyZSBmb3VuZAoJaWYgKCBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKS5sZW5ndGggPiAwICkgewoJCUV4cHIuZmluZC5UQUcgPSBmdW5jdGlvbiggbWF0Y2gsIGNvbnRleHQgKSB7CgkJCXZhciByZXN1bHRzID0gY29udGV4dC5nZXRFbGVtZW50c0J5VGFnTmFtZSggbWF0Y2hbMV0gKTsKCgkJCS8vIEZpbHRlciBvdXQgcG9zc2libGUgY29tbWVudHMKCQkJaWYgKCBtYXRjaFsxXSA9PT0gIioiICkgewoJCQkJdmFyIHRtcCA9IFtdOwoKCQkJCWZvciAoIHZhciBpID0gMDsgcmVzdWx0c1tpXTsgaSsrICkgewoJCQkJCWlmICggcmVzdWx0c1tpXS5ub2RlVHlwZSA9PT0gMSApIHsKCQkJCQkJdG1wLnB1c2goIHJlc3VsdHNbaV0gKTsKCQkJCQl9CgkJCQl9CgoJCQkJcmVzdWx0cyA9IHRtcDsKCQkJfQoKCQkJcmV0dXJuIHJlc3VsdHM7CgkJfTsKCX0KCgkvLyBDaGVjayB0byBzZWUgaWYgYW4gYXR0cmlidXRlIHJldHVybnMgbm9ybWFsaXplZCBocmVmIGF0dHJpYnV0ZXMKCWRpdi5pbm5lckhUTUwgPSAiPGEgaHJlZj0nIyc+PC9hPiI7CgoJaWYgKCBkaXYuZmlyc3RDaGlsZCAmJiB0eXBlb2YgZGl2LmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlICE9PSAidW5kZWZpbmVkIiAmJgoJCQlkaXYuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoImhyZWYiKSAhPT0gIiMiICkgewoKCQlFeHByLmF0dHJIYW5kbGUuaHJlZiA9IGZ1bmN0aW9uKCBlbGVtICkgewoJCQlyZXR1cm4gZWxlbS5nZXRBdHRyaWJ1dGUoICJocmVmIiwgMiApOwoJCX07Cgl9CgoJLy8gcmVsZWFzZSBtZW1vcnkgaW4gSUUKCWRpdiA9IG51bGw7Cn0pKCk7CgppZiAoIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgKSB7CgkoZnVuY3Rpb24oKXsKCQl2YXIgb2xkU2l6emxlID0gU2l6emxlLAoJCQlkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSwKCQkJaWQgPSAiX19zaXp6bGVfXyI7CgoJCWRpdi5pbm5lckhUTUwgPSAiPHAgY2xhc3M9J1RFU1QnPjwvcD4iOwoKCQkvLyBTYWZhcmkgY2FuJ3QgaGFuZGxlIHVwcGVyY2FzZSBvciB1bmljb2RlIGNoYXJhY3RlcnMgd2hlbgoJCS8vIGluIHF1aXJrcyBtb2RlLgoJCWlmICggZGl2LnF1ZXJ5U2VsZWN0b3JBbGwgJiYgZGl2LnF1ZXJ5U2VsZWN0b3JBbGwoIi5URVNUIikubGVuZ3RoID09PSAwICkgewoJCQlyZXR1cm47CgkJfQoJCgkJU2l6emxlID0gZnVuY3Rpb24oIHF1ZXJ5LCBjb250ZXh0LCBleHRyYSwgc2VlZCApIHsKCQkJY29udGV4dCA9IGNvbnRleHQgfHwgZG9jdW1lbnQ7CgoJCQkvLyBPbmx5IHVzZSBxdWVyeVNlbGVjdG9yQWxsIG9uIG5vbi1YTUwgZG9jdW1lbnRzCgkJCS8vIChJRCBzZWxlY3RvcnMgZG9uJ3Qgd29yayBpbiBub24tSFRNTCBkb2N1bWVudHMpCgkJCWlmICggIXNlZWQgJiYgIVNpenpsZS5pc1hNTChjb250ZXh0KSApIHsKCQkJCS8vIFNlZSBpZiB3ZSBmaW5kIGEgc2VsZWN0b3IgdG8gc3BlZWQgdXAKCQkJCXZhciBtYXRjaCA9IC9eKFx3KyQpfF5cLihbXHdcLV0rJCl8XiMoW1x3XC1dKyQpLy5leGVjKCBxdWVyeSApOwoJCQkJCgkJCQlpZiAoIG1hdGNoICYmIChjb250ZXh0Lm5vZGVUeXBlID09PSAxIHx8IGNvbnRleHQubm9kZVR5cGUgPT09IDkpICkgewoJCQkJCS8vIFNwZWVkLXVwOiBTaXp6bGUoIlRBRyIpCgkJCQkJaWYgKCBtYXRjaFsxXSApIHsKCQkJCQkJcmV0dXJuIG1ha2VBcnJheSggY29udGV4dC5nZXRFbGVtZW50c0J5VGFnTmFtZSggcXVlcnkgKSwgZXh0cmEgKTsKCQkJCQkKCQkJCQkvLyBTcGVlZC11cDogU2l6emxlKCIuQ0xBU1MiKQoJCQkJCX0gZWxzZSBpZiAoIG1hdGNoWzJdICYmIEV4cHIuZmluZC5DTEFTUyAmJiBjb250ZXh0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUgKSB7CgkJCQkJCXJldHVybiBtYWtlQXJyYXkoIGNvbnRleHQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSggbWF0Y2hbMl0gKSwgZXh0cmEgKTsKCQkJCQl9CgkJCQl9CgkJCQkKCQkJCWlmICggY29udGV4dC5ub2RlVHlwZSA9PT0gOSApIHsKCQkJCQkvLyBTcGVlZC11cDogU2l6emxlKCJib2R5IikKCQkJCQkvLyBUaGUgYm9keSBlbGVtZW50IG9ubHkgZXhpc3RzIG9uY2UsIG9wdGltaXplIGZpbmRpbmcgaXQKCQkJCQlpZiAoIHF1ZXJ5ID09PSAiYm9keSIgJiYgY29udGV4dC5ib2R5ICkgewoJCQkJCQlyZXR1cm4gbWFrZUFycmF5KCBbIGNvbnRleHQuYm9keSBdLCBleHRyYSApOwoJCQkJCQkKCQkJCQkvLyBTcGVlZC11cDogU2l6emxlKCIjSUQiKQoJCQkJCX0gZWxzZSBpZiAoIG1hdGNoICYmIG1hdGNoWzNdICkgewoJCQkJCQl2YXIgZWxlbSA9IGNvbnRleHQuZ2V0RWxlbWVudEJ5SWQoIG1hdGNoWzNdICk7CgoJCQkJCQkvLyBDaGVjayBwYXJlbnROb2RlIHRvIGNhdGNoIHdoZW4gQmxhY2tiZXJyeSA0LjYgcmV0dXJucwoJCQkJCQkvLyBub2RlcyB0aGF0IGFyZSBubyBsb25nZXIgaW4gdGhlIGRvY3VtZW50ICM2OTYzCgkJCQkJCWlmICggZWxlbSAmJiBlbGVtLnBhcmVudE5vZGUgKSB7CgkJCQkJCQkvLyBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgSUUgYW5kIE9wZXJhIHJldHVybiBpdGVtcwoJCQkJCQkJLy8gYnkgbmFtZSBpbnN0ZWFkIG9mIElECgkJCQkJCQlpZiAoIGVsZW0uaWQgPT09IG1hdGNoWzNdICkgewoJCQkJCQkJCXJldHVybiBtYWtlQXJyYXkoIFsgZWxlbSBdLCBleHRyYSApOwoJCQkJCQkJfQoJCQkJCQkJCgkJCQkJCX0gZWxzZSB7CgkJCQkJCQlyZXR1cm4gbWFrZUFycmF5KCBbXSwgZXh0cmEgKTsKCQkJCQkJfQoJCQkJCX0KCQkJCQkKCQkJCQl0cnkgewoJCQkJCQlyZXR1cm4gbWFrZUFycmF5KCBjb250ZXh0LnF1ZXJ5U2VsZWN0b3JBbGwocXVlcnkpLCBleHRyYSApOwoJCQkJCX0gY2F0Y2gocXNhRXJyb3IpIHt9CgoJCQkJLy8gcVNBIHdvcmtzIHN0cmFuZ2VseSBvbiBFbGVtZW50LXJvb3RlZCBxdWVyaWVzCgkJCQkvLyBXZSBjYW4gd29yayBhcm91bmQgdGhpcyBieSBzcGVjaWZ5aW5nIGFuIGV4dHJhIElEIG9uIHRoZSByb290CgkJCQkvLyBhbmQgd29ya2luZyB1cCBmcm9tIHRoZXJlIChUaGFua3MgdG8gQW5kcmV3IER1cG9udCBmb3IgdGhlIHRlY2huaXF1ZSkKCQkJCS8vIElFIDggZG9lc24ndCB3b3JrIG9uIG9iamVjdCBlbGVtZW50cwoJCQkJfSBlbHNlIGlmICggY29udGV4dC5ub2RlVHlwZSA9PT0gMSAmJiBjb250ZXh0Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgIT09ICJvYmplY3QiICkgewoJCQkJCXZhciBvbGRDb250ZXh0ID0gY29udGV4dCwKCQkJCQkJb2xkID0gY29udGV4dC5nZXRBdHRyaWJ1dGUoICJpZCIgKSwKCQkJCQkJbmlkID0gb2xkIHx8IGlkLAoJCQkJCQloYXNQYXJlbnQgPSBjb250ZXh0LnBhcmVudE5vZGUsCgkJCQkJCXJlbGF0aXZlSGllcmFyY2h5U2VsZWN0b3IgPSAvXlxzKlsrfl0vLnRlc3QoIHF1ZXJ5ICk7CgoJCQkJCWlmICggIW9sZCApIHsKCQkJCQkJY29udGV4dC5zZXRBdHRyaWJ1dGUoICJpZCIsIG5pZCApOwoJCQkJCX0gZWxzZSB7CgkJCQkJCW5pZCA9IG5pZC5yZXBsYWNlKCAvJy9nLCAiXFwkJiIgKTsKCQkJCQl9CgkJCQkJaWYgKCByZWxhdGl2ZUhpZXJhcmNoeVNlbGVjdG9yICYmIGhhc1BhcmVudCApIHsKCQkJCQkJY29udGV4dCA9IGNvbnRleHQucGFyZW50Tm9kZTsKCQkJCQl9CgoJCQkJCXRyeSB7CgkJCQkJCWlmICggIXJlbGF0aXZlSGllcmFyY2h5U2VsZWN0b3IgfHwgaGFzUGFyZW50ICkgewoJCQkJCQkJcmV0dXJuIG1ha2VBcnJheSggY29udGV4dC5xdWVyeVNlbGVjdG9yQWxsKCAiW2lkPSciICsgbmlkICsgIiddICIgKyBxdWVyeSApLCBleHRyYSApOwoJCQkJCQl9CgoJCQkJCX0gY2F0Y2gocHNldWRvRXJyb3IpIHsKCQkJCQl9IGZpbmFsbHkgewoJCQkJCQlpZiAoICFvbGQgKSB7CgkJCQkJCQlvbGRDb250ZXh0LnJlbW92ZUF0dHJpYnV0ZSggImlkIiApOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9CgkJCgkJCXJldHVybiBvbGRTaXp6bGUocXVlcnksIGNvbnRleHQsIGV4dHJhLCBzZWVkKTsKCQl9OwoKCQlmb3IgKCB2YXIgcHJvcCBpbiBvbGRTaXp6bGUgKSB7CgkJCVNpenpsZVsgcHJvcCBdID0gb2xkU2l6emxlWyBwcm9wIF07CgkJfQoKCQkvLyByZWxlYXNlIG1lbW9yeSBpbiBJRQoJCWRpdiA9IG51bGw7Cgl9KSgpOwp9CgooZnVuY3Rpb24oKXsKCXZhciBodG1sID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LAoJCW1hdGNoZXMgPSBodG1sLm1hdGNoZXNTZWxlY3RvciB8fCBodG1sLm1vek1hdGNoZXNTZWxlY3RvciB8fCBodG1sLndlYmtpdE1hdGNoZXNTZWxlY3RvciB8fCBodG1sLm1zTWF0Y2hlc1NlbGVjdG9yLAoJCXBzZXVkb1dvcmtzID0gZmFsc2U7CgoJdHJ5IHsKCQkvLyBUaGlzIHNob3VsZCBmYWlsIHdpdGggYW4gZXhjZXB0aW9uCgkJLy8gR2Vja28gZG9lcyBub3QgZXJyb3IsIHJldHVybnMgZmFsc2UgaW5zdGVhZAoJCW1hdGNoZXMuY2FsbCggZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCAiW3Rlc3QhPScnXTpzaXp6bGUiICk7CgkKCX0gY2F0Y2goIHBzZXVkb0Vycm9yICkgewoJCXBzZXVkb1dvcmtzID0gdHJ1ZTsKCX0KCglpZiAoIG1hdGNoZXMgKSB7CgkJU2l6emxlLm1hdGNoZXNTZWxlY3RvciA9IGZ1bmN0aW9uKCBub2RlLCBleHByICkgewoJCQkvLyBNYWtlIHN1cmUgdGhhdCBhdHRyaWJ1dGUgc2VsZWN0b3JzIGFyZSBxdW90ZWQKCQkJZXhwciA9IGV4cHIucmVwbGFjZSgvXD1ccyooW14nIlxdXSopXHMqXF0vZywgIj0nJDEnXSIpOwoKCQkJaWYgKCAhU2l6emxlLmlzWE1MKCBub2RlICkgKSB7CgkJCQl0cnkgeyAKCQkJCQlpZiAoIHBzZXVkb1dvcmtzIHx8ICFFeHByLm1hdGNoLlBTRVVETy50ZXN0KCBleHByICkgJiYgIS8hPS8udGVzdCggZXhwciApICkgewoJCQkJCQlyZXR1cm4gbWF0Y2hlcy5jYWxsKCBub2RlLCBleHByICk7CgkJCQkJfQoJCQkJfSBjYXRjaChlKSB7fQoJCQl9CgoJCQlyZXR1cm4gU2l6emxlKGV4cHIsIG51bGwsIG51bGwsIFtub2RlXSkubGVuZ3RoID4gMDsKCQl9OwoJfQp9KSgpOwoKKGZ1bmN0aW9uKCl7Cgl2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CgoJZGl2LmlubmVySFRNTCA9ICI8ZGl2IGNsYXNzPSd0ZXN0IGUnPjwvZGl2PjxkaXYgY2xhc3M9J3Rlc3QnPjwvZGl2PiI7CgoJLy8gT3BlcmEgY2FuJ3QgZmluZCBhIHNlY29uZCBjbGFzc25hbWUgKGluIDkuNikKCS8vIEFsc28sIG1ha2Ugc3VyZSB0aGF0IGdldEVsZW1lbnRzQnlDbGFzc05hbWUgYWN0dWFsbHkgZXhpc3RzCglpZiAoICFkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSB8fCBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiZSIpLmxlbmd0aCA9PT0gMCApIHsKCQlyZXR1cm47Cgl9CgoJLy8gU2FmYXJpIGNhY2hlcyBjbGFzcyBhdHRyaWJ1dGVzLCBkb2Vzbid0IGNhdGNoIGNoYW5nZXMgKGluIDMuMikKCWRpdi5sYXN0Q2hpbGQuY2xhc3NOYW1lID0gImUiOwoKCWlmICggZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImUiKS5sZW5ndGggPT09IDEgKSB7CgkJcmV0dXJuOwoJfQoJCglFeHByLm9yZGVyLnNwbGljZSgxLCAwLCAiQ0xBU1MiKTsKCUV4cHIuZmluZC5DTEFTUyA9IGZ1bmN0aW9uKCBtYXRjaCwgY29udGV4dCwgaXNYTUwgKSB7CgkJaWYgKCB0eXBlb2YgY29udGV4dC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lICE9PSAidW5kZWZpbmVkIiAmJiAhaXNYTUwgKSB7CgkJCXJldHVybiBjb250ZXh0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUobWF0Y2hbMV0pOwoJCX0KCX07CgoJLy8gcmVsZWFzZSBtZW1vcnkgaW4gSUUKCWRpdiA9IG51bGw7Cn0pKCk7CgpmdW5jdGlvbiBkaXJOb2RlQ2hlY2soIGRpciwgY3VyLCBkb25lTmFtZSwgY2hlY2tTZXQsIG5vZGVDaGVjaywgaXNYTUwgKSB7Cglmb3IgKCB2YXIgaSA9IDAsIGwgPSBjaGVja1NldC5sZW5ndGg7IGkgPCBsOyBpKysgKSB7CgkJdmFyIGVsZW0gPSBjaGVja1NldFtpXTsKCgkJaWYgKCBlbGVtICkgewoJCQl2YXIgbWF0Y2ggPSBmYWxzZTsKCgkJCWVsZW0gPSBlbGVtW2Rpcl07CgoJCQl3aGlsZSAoIGVsZW0gKSB7CgkJCQlpZiAoIGVsZW0uc2l6Y2FjaGUgPT09IGRvbmVOYW1lICkgewoJCQkJCW1hdGNoID0gY2hlY2tTZXRbZWxlbS5zaXpzZXRdOwoJCQkJCWJyZWFrOwoJCQkJfQoKCQkJCWlmICggZWxlbS5ub2RlVHlwZSA9PT0gMSAmJiAhaXNYTUwgKXsKCQkJCQllbGVtLnNpemNhY2hlID0gZG9uZU5hbWU7CgkJCQkJZWxlbS5zaXpzZXQgPSBpOwoJCQkJfQoKCQkJCWlmICggZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSBjdXIgKSB7CgkJCQkJbWF0Y2ggPSBlbGVtOwoJCQkJCWJyZWFrOwoJCQkJfQoKCQkJCWVsZW0gPSBlbGVtW2Rpcl07CgkJCX0KCgkJCWNoZWNrU2V0W2ldID0gbWF0Y2g7CgkJfQoJfQp9CgpmdW5jdGlvbiBkaXJDaGVjayggZGlyLCBjdXIsIGRvbmVOYW1lLCBjaGVja1NldCwgbm9kZUNoZWNrLCBpc1hNTCApIHsKCWZvciAoIHZhciBpID0gMCwgbCA9IGNoZWNrU2V0Lmxlbmd0aDsgaSA8IGw7IGkrKyApIHsKCQl2YXIgZWxlbSA9IGNoZWNrU2V0W2ldOwoKCQlpZiAoIGVsZW0gKSB7CgkJCXZhciBtYXRjaCA9IGZhbHNlOwoJCQkKCQkJZWxlbSA9IGVsZW1bZGlyXTsKCgkJCXdoaWxlICggZWxlbSApIHsKCQkJCWlmICggZWxlbS5zaXpjYWNoZSA9PT0gZG9uZU5hbWUgKSB7CgkJCQkJbWF0Y2ggPSBjaGVja1NldFtlbGVtLnNpenNldF07CgkJCQkJYnJlYWs7CgkJCQl9CgoJCQkJaWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICkgewoJCQkJCWlmICggIWlzWE1MICkgewoJCQkJCQllbGVtLnNpemNhY2hlID0gZG9uZU5hbWU7CgkJCQkJCWVsZW0uc2l6c2V0ID0gaTsKCQkJCQl9CgoJCQkJCWlmICggdHlwZW9mIGN1ciAhPT0gInN0cmluZyIgKSB7CgkJCQkJCWlmICggZWxlbSA9PT0gY3VyICkgewoJCQkJCQkJbWF0Y2ggPSB0cnVlOwoJCQkJCQkJYnJlYWs7CgkJCQkJCX0KCgkJCQkJfSBlbHNlIGlmICggU2l6emxlLmZpbHRlciggY3VyLCBbZWxlbV0gKS5sZW5ndGggPiAwICkgewoJCQkJCQltYXRjaCA9IGVsZW07CgkJCQkJCWJyZWFrOwoJCQkJCX0KCQkJCX0KCgkJCQllbGVtID0gZWxlbVtkaXJdOwoJCQl9CgoJCQljaGVja1NldFtpXSA9IG1hdGNoOwoJCX0KCX0KfQoKaWYgKCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY29udGFpbnMgKSB7CglTaXp6bGUuY29udGFpbnMgPSBmdW5jdGlvbiggYSwgYiApIHsKCQlyZXR1cm4gYSAhPT0gYiAmJiAoYS5jb250YWlucyA/IGEuY29udGFpbnMoYikgOiB0cnVlKTsKCX07Cgp9IGVsc2UgaWYgKCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY29tcGFyZURvY3VtZW50UG9zaXRpb24gKSB7CglTaXp6bGUuY29udGFpbnMgPSBmdW5jdGlvbiggYSwgYiApIHsKCQlyZXR1cm4gISEoYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKSAmIDE2KTsKCX07Cgp9IGVsc2UgewoJU2l6emxlLmNvbnRhaW5zID0gZnVuY3Rpb24oKSB7CgkJcmV0dXJuIGZhbHNlOwoJfTsKfQoKU2l6emxlLmlzWE1MID0gZnVuY3Rpb24oIGVsZW0gKSB7CgkvLyBkb2N1bWVudEVsZW1lbnQgaXMgdmVyaWZpZWQgZm9yIGNhc2VzIHdoZXJlIGl0IGRvZXNuJ3QgeWV0IGV4aXN0CgkvLyAoc3VjaCBhcyBsb2FkaW5nIGlmcmFtZXMgaW4gSUUgLSAjNDgzMykgCgl2YXIgZG9jdW1lbnRFbGVtZW50ID0gKGVsZW0gPyBlbGVtLm93bmVyRG9jdW1lbnQgfHwgZWxlbSA6IDApLmRvY3VtZW50RWxlbWVudDsKCglyZXR1cm4gZG9jdW1lbnRFbGVtZW50ID8gZG9jdW1lbnRFbGVtZW50Lm5vZGVOYW1lICE9PSAiSFRNTCIgOiBmYWxzZTsKfTsKCnZhciBwb3NQcm9jZXNzID0gZnVuY3Rpb24oIHNlbGVjdG9yLCBjb250ZXh0ICkgewoJdmFyIG1hdGNoLAoJCXRtcFNldCA9IFtdLAoJCWxhdGVyID0gIiIsCgkJcm9vdCA9IGNvbnRleHQubm9kZVR5cGUgPyBbY29udGV4dF0gOiBjb250ZXh0OwoKCS8vIFBvc2l0aW9uIHNlbGVjdG9ycyBtdXN0IGJlIGRvbmUgYWZ0ZXIgdGhlIGZpbHRlcgoJLy8gQW5kIHNvIG11c3QgOm5vdChwb3NpdGlvbmFsKSBzbyB3ZSBtb3ZlIGFsbCBQU0VVRE9zIHRvIHRoZSBlbmQKCXdoaWxlICggKG1hdGNoID0gRXhwci5tYXRjaC5QU0VVRE8uZXhlYyggc2VsZWN0b3IgKSkgKSB7CgkJbGF0ZXIgKz0gbWF0Y2hbMF07CgkJc2VsZWN0b3IgPSBzZWxlY3Rvci5yZXBsYWNlKCBFeHByLm1hdGNoLlBTRVVETywgIiIgKTsKCX0KCglzZWxlY3RvciA9IEV4cHIucmVsYXRpdmVbc2VsZWN0b3JdID8gc2VsZWN0b3IgKyAiKiIgOiBzZWxlY3RvcjsKCglmb3IgKCB2YXIgaSA9IDAsIGwgPSByb290Lmxlbmd0aDsgaSA8IGw7IGkrKyApIHsKCQlTaXp6bGUoIHNlbGVjdG9yLCByb290W2ldLCB0bXBTZXQgKTsKCX0KCglyZXR1cm4gU2l6emxlLmZpbHRlciggbGF0ZXIsIHRtcFNldCApOwp9OwoKLy8gRVhQT1NFCmpRdWVyeS5maW5kID0gU2l6emxlOwpqUXVlcnkuZXhwciA9IFNpenpsZS5zZWxlY3RvcnM7CmpRdWVyeS5leHByWyI6Il0gPSBqUXVlcnkuZXhwci5maWx0ZXJzOwpqUXVlcnkudW5pcXVlID0gU2l6emxlLnVuaXF1ZVNvcnQ7CmpRdWVyeS50ZXh0ID0gU2l6emxlLmdldFRleHQ7CmpRdWVyeS5pc1hNTERvYyA9IFNpenpsZS5pc1hNTDsKalF1ZXJ5LmNvbnRhaW5zID0gU2l6emxlLmNvbnRhaW5zOwoKCn0pKCk7CgoKdmFyIHJ1bnRpbCA9IC9VbnRpbCQvLAoJcnBhcmVudHNwcmV2ID0gL14oPzpwYXJlbnRzfHByZXZVbnRpbHxwcmV2QWxsKS8sCgkvLyBOb3RlOiBUaGlzIFJlZ0V4cCBzaG91bGQgYmUgaW1wcm92ZWQsIG9yIGxpa2VseSBwdWxsZWQgZnJvbSBTaXp6bGUKCXJtdWx0aXNlbGVjdG9yID0gLywvLAoJaXNTaW1wbGUgPSAvXi5bXjojXFtcLixdKiQvLAoJc2xpY2UgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UsCglQT1MgPSBqUXVlcnkuZXhwci5tYXRjaC5QT1MsCgkvLyBtZXRob2RzIGd1YXJhbnRlZWQgdG8gcHJvZHVjZSBhIHVuaXF1ZSBzZXQgd2hlbiBzdGFydGluZyBmcm9tIGEgdW5pcXVlIHNldAoJZ3VhcmFudGVlZFVuaXF1ZSA9IHsKCQljaGlsZHJlbjogdHJ1ZSwKCQljb250ZW50czogdHJ1ZSwKCQluZXh0OiB0cnVlLAoJCXByZXY6IHRydWUKCX07CgpqUXVlcnkuZm4uZXh0ZW5kKHsKCWZpbmQ6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHsKCQl2YXIgcmV0ID0gdGhpcy5wdXNoU3RhY2soICIiLCAiZmluZCIsIHNlbGVjdG9yICksCgkJCWxlbmd0aCA9IDA7CgoJCWZvciAoIHZhciBpID0gMCwgbCA9IHRoaXMubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCQlsZW5ndGggPSByZXQubGVuZ3RoOwoJCQlqUXVlcnkuZmluZCggc2VsZWN0b3IsIHRoaXNbaV0sIHJldCApOwoKCQkJaWYgKCBpID4gMCApIHsKCQkJCS8vIE1ha2Ugc3VyZSB0aGF0IHRoZSByZXN1bHRzIGFyZSB1bmlxdWUKCQkJCWZvciAoIHZhciBuID0gbGVuZ3RoOyBuIDwgcmV0Lmxlbmd0aDsgbisrICkgewoJCQkJCWZvciAoIHZhciByID0gMDsgciA8IGxlbmd0aDsgcisrICkgewoJCQkJCQlpZiAoIHJldFtyXSA9PT0gcmV0W25dICkgewoJCQkJCQkJcmV0LnNwbGljZShuLS0sIDEpOwoJCQkJCQkJYnJlYWs7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgoJCXJldHVybiByZXQ7Cgl9LAoKCWhhczogZnVuY3Rpb24oIHRhcmdldCApIHsKCQl2YXIgdGFyZ2V0cyA9IGpRdWVyeSggdGFyZ2V0ICk7CgkJcmV0dXJuIHRoaXMuZmlsdGVyKGZ1bmN0aW9uKCkgewoJCQlmb3IgKCB2YXIgaSA9IDAsIGwgPSB0YXJnZXRzLmxlbmd0aDsgaSA8IGw7IGkrKyApIHsKCQkJCWlmICggalF1ZXJ5LmNvbnRhaW5zKCB0aGlzLCB0YXJnZXRzW2ldICkgKSB7CgkJCQkJcmV0dXJuIHRydWU7CgkJCQl9CgkJCX0KCQl9KTsKCX0sCgoJbm90OiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7CgkJcmV0dXJuIHRoaXMucHVzaFN0YWNrKCB3aW5ub3codGhpcywgc2VsZWN0b3IsIGZhbHNlKSwgIm5vdCIsIHNlbGVjdG9yKTsKCX0sCgoJZmlsdGVyOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7CgkJcmV0dXJuIHRoaXMucHVzaFN0YWNrKCB3aW5ub3codGhpcywgc2VsZWN0b3IsIHRydWUpLCAiZmlsdGVyIiwgc2VsZWN0b3IgKTsKCX0sCgoJaXM6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHsKCQlyZXR1cm4gISFzZWxlY3RvciAmJiBqUXVlcnkuZmlsdGVyKCBzZWxlY3RvciwgdGhpcyApLmxlbmd0aCA+IDA7Cgl9LAoKCWNsb3Nlc3Q6IGZ1bmN0aW9uKCBzZWxlY3RvcnMsIGNvbnRleHQgKSB7CgkJdmFyIHJldCA9IFtdLCBpLCBsLCBjdXIgPSB0aGlzWzBdOwoKCQlpZiAoIGpRdWVyeS5pc0FycmF5KCBzZWxlY3RvcnMgKSApIHsKCQkJdmFyIG1hdGNoLCBzZWxlY3RvciwKCQkJCW1hdGNoZXMgPSB7fSwKCQkJCWxldmVsID0gMTsKCgkJCWlmICggY3VyICYmIHNlbGVjdG9ycy5sZW5ndGggKSB7CgkJCQlmb3IgKCBpID0gMCwgbCA9IHNlbGVjdG9ycy5sZW5ndGg7IGkgPCBsOyBpKysgKSB7CgkJCQkJc2VsZWN0b3IgPSBzZWxlY3RvcnNbaV07CgoJCQkJCWlmICggIW1hdGNoZXNbc2VsZWN0b3JdICkgewoJCQkJCQltYXRjaGVzW3NlbGVjdG9yXSA9IGpRdWVyeS5leHByLm1hdGNoLlBPUy50ZXN0KCBzZWxlY3RvciApID8KCQkJCQkJCWpRdWVyeSggc2VsZWN0b3IsIGNvbnRleHQgfHwgdGhpcy5jb250ZXh0ICkgOgoJCQkJCQkJc2VsZWN0b3I7CgkJCQkJfQoJCQkJfQoKCQkJCXdoaWxlICggY3VyICYmIGN1ci5vd25lckRvY3VtZW50ICYmIGN1ciAhPT0gY29udGV4dCApIHsKCQkJCQlmb3IgKCBzZWxlY3RvciBpbiBtYXRjaGVzICkgewoJCQkJCQltYXRjaCA9IG1hdGNoZXNbc2VsZWN0b3JdOwoKCQkJCQkJaWYgKCBtYXRjaC5qcXVlcnkgPyBtYXRjaC5pbmRleChjdXIpID4gLTEgOiBqUXVlcnkoY3VyKS5pcyhtYXRjaCkgKSB7CgkJCQkJCQlyZXQucHVzaCh7IHNlbGVjdG9yOiBzZWxlY3RvciwgZWxlbTogY3VyLCBsZXZlbDogbGV2ZWwgfSk7CgkJCQkJCX0KCQkJCQl9CgoJCQkJCWN1ciA9IGN1ci5wYXJlbnROb2RlOwoJCQkJCWxldmVsKys7CgkJCQl9CgkJCX0KCgkJCXJldHVybiByZXQ7CgkJfQoKCQl2YXIgcG9zID0gUE9TLnRlc3QoIHNlbGVjdG9ycyApID8KCQkJalF1ZXJ5KCBzZWxlY3RvcnMsIGNvbnRleHQgfHwgdGhpcy5jb250ZXh0ICkgOiBudWxsOwoKCQlmb3IgKCBpID0gMCwgbCA9IHRoaXMubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCQljdXIgPSB0aGlzW2ldOwoKCQkJd2hpbGUgKCBjdXIgKSB7CgkJCQlpZiAoIHBvcyA/IHBvcy5pbmRleChjdXIpID4gLTEgOiBqUXVlcnkuZmluZC5tYXRjaGVzU2VsZWN0b3IoY3VyLCBzZWxlY3RvcnMpICkgewoJCQkJCXJldC5wdXNoKCBjdXIgKTsKCQkJCQlicmVhazsKCgkJCQl9IGVsc2UgewoJCQkJCWN1ciA9IGN1ci5wYXJlbnROb2RlOwoJCQkJCWlmICggIWN1ciB8fCAhY3VyLm93bmVyRG9jdW1lbnQgfHwgY3VyID09PSBjb250ZXh0ICkgewoJCQkJCQlicmVhazsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgoJCXJldCA9IHJldC5sZW5ndGggPiAxID8galF1ZXJ5LnVuaXF1ZShyZXQpIDogcmV0OwoKCQlyZXR1cm4gdGhpcy5wdXNoU3RhY2soIHJldCwgImNsb3Nlc3QiLCBzZWxlY3RvcnMgKTsKCX0sCgoJLy8gRGV0ZXJtaW5lIHRoZSBwb3NpdGlvbiBvZiBhbiBlbGVtZW50IHdpdGhpbgoJLy8gdGhlIG1hdGNoZWQgc2V0IG9mIGVsZW1lbnRzCglpbmRleDogZnVuY3Rpb24oIGVsZW0gKSB7CgkJaWYgKCAhZWxlbSB8fCB0eXBlb2YgZWxlbSA9PT0gInN0cmluZyIgKSB7CgkJCXJldHVybiBqUXVlcnkuaW5BcnJheSggdGhpc1swXSwKCQkJCS8vIElmIGl0IHJlY2VpdmVzIGEgc3RyaW5nLCB0aGUgc2VsZWN0b3IgaXMgdXNlZAoJCQkJLy8gSWYgaXQgcmVjZWl2ZXMgbm90aGluZywgdGhlIHNpYmxpbmdzIGFyZSB1c2VkCgkJCQllbGVtID8galF1ZXJ5KCBlbGVtICkgOiB0aGlzLnBhcmVudCgpLmNoaWxkcmVuKCkgKTsKCQl9CgkJLy8gTG9jYXRlIHRoZSBwb3NpdGlvbiBvZiB0aGUgZGVzaXJlZCBlbGVtZW50CgkJcmV0dXJuIGpRdWVyeS5pbkFycmF5KAoJCQkvLyBJZiBpdCByZWNlaXZlcyBhIGpRdWVyeSBvYmplY3QsIHRoZSBmaXJzdCBlbGVtZW50IGlzIHVzZWQKCQkJZWxlbS5qcXVlcnkgPyBlbGVtWzBdIDogZWxlbSwgdGhpcyApOwoJfSwKCglhZGQ6IGZ1bmN0aW9uKCBzZWxlY3RvciwgY29udGV4dCApIHsKCQl2YXIgc2V0ID0gdHlwZW9mIHNlbGVjdG9yID09PSAic3RyaW5nIiA/CgkJCQlqUXVlcnkoIHNlbGVjdG9yLCBjb250ZXh0ICkgOgoJCQkJalF1ZXJ5Lm1ha2VBcnJheSggc2VsZWN0b3IgKSwKCQkJYWxsID0galF1ZXJ5Lm1lcmdlKCB0aGlzLmdldCgpLCBzZXQgKTsKCgkJcmV0dXJuIHRoaXMucHVzaFN0YWNrKCBpc0Rpc2Nvbm5lY3RlZCggc2V0WzBdICkgfHwgaXNEaXNjb25uZWN0ZWQoIGFsbFswXSApID8KCQkJYWxsIDoKCQkJalF1ZXJ5LnVuaXF1ZSggYWxsICkgKTsKCX0sCgoJYW5kU2VsZjogZnVuY3Rpb24oKSB7CgkJcmV0dXJuIHRoaXMuYWRkKCB0aGlzLnByZXZPYmplY3QgKTsKCX0KfSk7CgovLyBBIHBhaW5mdWxseSBzaW1wbGUgY2hlY2sgdG8gc2VlIGlmIGFuIGVsZW1lbnQgaXMgZGlzY29ubmVjdGVkCi8vIGZyb20gYSBkb2N1bWVudCAoc2hvdWxkIGJlIGltcHJvdmVkLCB3aGVyZSBmZWFzaWJsZSkuCmZ1bmN0aW9uIGlzRGlzY29ubmVjdGVkKCBub2RlICkgewoJcmV0dXJuICFub2RlIHx8ICFub2RlLnBhcmVudE5vZGUgfHwgbm9kZS5wYXJlbnROb2RlLm5vZGVUeXBlID09PSAxMTsKfQoKalF1ZXJ5LmVhY2goewoJcGFyZW50OiBmdW5jdGlvbiggZWxlbSApIHsKCQl2YXIgcGFyZW50ID0gZWxlbS5wYXJlbnROb2RlOwoJCXJldHVybiBwYXJlbnQgJiYgcGFyZW50Lm5vZGVUeXBlICE9PSAxMSA/IHBhcmVudCA6IG51bGw7Cgl9LAoJcGFyZW50czogZnVuY3Rpb24oIGVsZW0gKSB7CgkJcmV0dXJuIGpRdWVyeS5kaXIoIGVsZW0sICJwYXJlbnROb2RlIiApOwoJfSwKCXBhcmVudHNVbnRpbDogZnVuY3Rpb24oIGVsZW0sIGksIHVudGlsICkgewoJCXJldHVybiBqUXVlcnkuZGlyKCBlbGVtLCAicGFyZW50Tm9kZSIsIHVudGlsICk7Cgl9LAoJbmV4dDogZnVuY3Rpb24oIGVsZW0gKSB7CgkJcmV0dXJuIGpRdWVyeS5udGgoIGVsZW0sIDIsICJuZXh0U2libGluZyIgKTsKCX0sCglwcmV2OiBmdW5jdGlvbiggZWxlbSApIHsKCQlyZXR1cm4galF1ZXJ5Lm50aCggZWxlbSwgMiwgInByZXZpb3VzU2libGluZyIgKTsKCX0sCgluZXh0QWxsOiBmdW5jdGlvbiggZWxlbSApIHsKCQlyZXR1cm4galF1ZXJ5LmRpciggZWxlbSwgIm5leHRTaWJsaW5nIiApOwoJfSwKCXByZXZBbGw6IGZ1bmN0aW9uKCBlbGVtICkgewoJCXJldHVybiBqUXVlcnkuZGlyKCBlbGVtLCAicHJldmlvdXNTaWJsaW5nIiApOwoJfSwKCW5leHRVbnRpbDogZnVuY3Rpb24oIGVsZW0sIGksIHVudGlsICkgewoJCXJldHVybiBqUXVlcnkuZGlyKCBlbGVtLCAibmV4dFNpYmxpbmciLCB1bnRpbCApOwoJfSwKCXByZXZVbnRpbDogZnVuY3Rpb24oIGVsZW0sIGksIHVudGlsICkgewoJCXJldHVybiBqUXVlcnkuZGlyKCBlbGVtLCAicHJldmlvdXNTaWJsaW5nIiwgdW50aWwgKTsKCX0sCglzaWJsaW5nczogZnVuY3Rpb24oIGVsZW0gKSB7CgkJcmV0dXJuIGpRdWVyeS5zaWJsaW5nKCBlbGVtLnBhcmVudE5vZGUuZmlyc3RDaGlsZCwgZWxlbSApOwoJfSwKCWNoaWxkcmVuOiBmdW5jdGlvbiggZWxlbSApIHsKCQlyZXR1cm4galF1ZXJ5LnNpYmxpbmcoIGVsZW0uZmlyc3RDaGlsZCApOwoJfSwKCWNvbnRlbnRzOiBmdW5jdGlvbiggZWxlbSApIHsKCQlyZXR1cm4galF1ZXJ5Lm5vZGVOYW1lKCBlbGVtLCAiaWZyYW1lIiApID8KCQkJZWxlbS5jb250ZW50RG9jdW1lbnQgfHwgZWxlbS5jb250ZW50V2luZG93LmRvY3VtZW50IDoKCQkJalF1ZXJ5Lm1ha2VBcnJheSggZWxlbS5jaGlsZE5vZGVzICk7Cgl9Cn0sIGZ1bmN0aW9uKCBuYW1lLCBmbiApIHsKCWpRdWVyeS5mblsgbmFtZSBdID0gZnVuY3Rpb24oIHVudGlsLCBzZWxlY3RvciApIHsKCQl2YXIgcmV0ID0galF1ZXJ5Lm1hcCggdGhpcywgZm4sIHVudGlsICksCgkJCS8vIFRoZSB2YXJpYWJsZSAnYXJncycgd2FzIGludHJvZHVjZWQgaW4KCQkJLy8gaHR0cHM6Ly9naXRodWIuY29tL2pxdWVyeS9qcXVlcnkvY29tbWl0LzUyYTAyMzgKCQkJLy8gdG8gd29yayBhcm91bmQgYSBidWcgaW4gQ2hyb21lIDEwIChEZXYpIGFuZCBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIHRoZSBidWcgaXMgZml4ZWQuCgkJCS8vIGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTEwNTAKCQkJYXJncyA9IHNsaWNlLmNhbGwoYXJndW1lbnRzKTsKCgkJaWYgKCAhcnVudGlsLnRlc3QoIG5hbWUgKSApIHsKCQkJc2VsZWN0b3IgPSB1bnRpbDsKCQl9CgoJCWlmICggc2VsZWN0b3IgJiYgdHlwZW9mIHNlbGVjdG9yID09PSAic3RyaW5nIiApIHsKCQkJcmV0ID0galF1ZXJ5LmZpbHRlciggc2VsZWN0b3IsIHJldCApOwoJCX0KCgkJcmV0ID0gdGhpcy5sZW5ndGggPiAxICYmICFndWFyYW50ZWVkVW5pcXVlWyBuYW1lIF0gPyBqUXVlcnkudW5pcXVlKCByZXQgKSA6IHJldDsKCgkJaWYgKCAodGhpcy5sZW5ndGggPiAxIHx8IHJtdWx0aXNlbGVjdG9yLnRlc3QoIHNlbGVjdG9yICkpICYmIHJwYXJlbnRzcHJldi50ZXN0KCBuYW1lICkgKSB7CgkJCXJldCA9IHJldC5yZXZlcnNlKCk7CgkJfQoKCQlyZXR1cm4gdGhpcy5wdXNoU3RhY2soIHJldCwgbmFtZSwgYXJncy5qb2luKCIsIikgKTsKCX07Cn0pOwoKalF1ZXJ5LmV4dGVuZCh7CglmaWx0ZXI6IGZ1bmN0aW9uKCBleHByLCBlbGVtcywgbm90ICkgewoJCWlmICggbm90ICkgewoJCQlleHByID0gIjpub3QoIiArIGV4cHIgKyAiKSI7CgkJfQoKCQlyZXR1cm4gZWxlbXMubGVuZ3RoID09PSAxID8KCQkJalF1ZXJ5LmZpbmQubWF0Y2hlc1NlbGVjdG9yKGVsZW1zWzBdLCBleHByKSA/IFsgZWxlbXNbMF0gXSA6IFtdIDoKCQkJalF1ZXJ5LmZpbmQubWF0Y2hlcyhleHByLCBlbGVtcyk7Cgl9LAoKCWRpcjogZnVuY3Rpb24oIGVsZW0sIGRpciwgdW50aWwgKSB7CgkJdmFyIG1hdGNoZWQgPSBbXSwKCQkJY3VyID0gZWxlbVsgZGlyIF07CgoJCXdoaWxlICggY3VyICYmIGN1ci5ub2RlVHlwZSAhPT0gOSAmJiAodW50aWwgPT09IHVuZGVmaW5lZCB8fCBjdXIubm9kZVR5cGUgIT09IDEgfHwgIWpRdWVyeSggY3VyICkuaXMoIHVudGlsICkpICkgewoJCQlpZiAoIGN1ci5ub2RlVHlwZSA9PT0gMSApIHsKCQkJCW1hdGNoZWQucHVzaCggY3VyICk7CgkJCX0KCQkJY3VyID0gY3VyW2Rpcl07CgkJfQoJCXJldHVybiBtYXRjaGVkOwoJfSwKCgludGg6IGZ1bmN0aW9uKCBjdXIsIHJlc3VsdCwgZGlyLCBlbGVtICkgewoJCXJlc3VsdCA9IHJlc3VsdCB8fCAxOwoJCXZhciBudW0gPSAwOwoKCQlmb3IgKCA7IGN1cjsgY3VyID0gY3VyW2Rpcl0gKSB7CgkJCWlmICggY3VyLm5vZGVUeXBlID09PSAxICYmICsrbnVtID09PSByZXN1bHQgKSB7CgkJCQlicmVhazsKCQkJfQoJCX0KCgkJcmV0dXJuIGN1cjsKCX0sCgoJc2libGluZzogZnVuY3Rpb24oIG4sIGVsZW0gKSB7CgkJdmFyIHIgPSBbXTsKCgkJZm9yICggOyBuOyBuID0gbi5uZXh0U2libGluZyApIHsKCQkJaWYgKCBuLm5vZGVUeXBlID09PSAxICYmIG4gIT09IGVsZW0gKSB7CgkJCQlyLnB1c2goIG4gKTsKCQkJfQoJCX0KCgkJcmV0dXJuIHI7Cgl9Cn0pOwoKLy8gSW1wbGVtZW50IHRoZSBpZGVudGljYWwgZnVuY3Rpb25hbGl0eSBmb3IgZmlsdGVyIGFuZCBub3QKZnVuY3Rpb24gd2lubm93KCBlbGVtZW50cywgcXVhbGlmaWVyLCBrZWVwICkgewoJaWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggcXVhbGlmaWVyICkgKSB7CgkJcmV0dXJuIGpRdWVyeS5ncmVwKGVsZW1lbnRzLCBmdW5jdGlvbiggZWxlbSwgaSApIHsKCQkJdmFyIHJldFZhbCA9ICEhcXVhbGlmaWVyLmNhbGwoIGVsZW0sIGksIGVsZW0gKTsKCQkJcmV0dXJuIHJldFZhbCA9PT0ga2VlcDsKCQl9KTsKCgl9IGVsc2UgaWYgKCBxdWFsaWZpZXIubm9kZVR5cGUgKSB7CgkJcmV0dXJuIGpRdWVyeS5ncmVwKGVsZW1lbnRzLCBmdW5jdGlvbiggZWxlbSwgaSApIHsKCQkJcmV0dXJuIChlbGVtID09PSBxdWFsaWZpZXIpID09PSBrZWVwOwoJCX0pOwoKCX0gZWxzZSBpZiAoIHR5cGVvZiBxdWFsaWZpZXIgPT09ICJzdHJpbmciICkgewoJCXZhciBmaWx0ZXJlZCA9IGpRdWVyeS5ncmVwKGVsZW1lbnRzLCBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuIGVsZW0ubm9kZVR5cGUgPT09IDE7CgkJfSk7CgoJCWlmICggaXNTaW1wbGUudGVzdCggcXVhbGlmaWVyICkgKSB7CgkJCXJldHVybiBqUXVlcnkuZmlsdGVyKHF1YWxpZmllciwgZmlsdGVyZWQsICFrZWVwKTsKCQl9IGVsc2UgewoJCQlxdWFsaWZpZXIgPSBqUXVlcnkuZmlsdGVyKCBxdWFsaWZpZXIsIGZpbHRlcmVkICk7CgkJfQoJfQoKCXJldHVybiBqUXVlcnkuZ3JlcChlbGVtZW50cywgZnVuY3Rpb24oIGVsZW0sIGkgKSB7CgkJcmV0dXJuIChqUXVlcnkuaW5BcnJheSggZWxlbSwgcXVhbGlmaWVyICkgPj0gMCkgPT09IGtlZXA7Cgl9KTsKfQoKCgoKdmFyIHJpbmxpbmVqUXVlcnkgPSAvIGpRdWVyeVxkKz0iKD86XGQrfG51bGwpIi9nLAoJcmxlYWRpbmdXaGl0ZXNwYWNlID0gL15ccysvLAoJcnhodG1sVGFnID0gLzwoPyFhcmVhfGJyfGNvbHxlbWJlZHxocnxpbWd8aW5wdXR8bGlua3xtZXRhfHBhcmFtKSgoW1x3Ol0rKVtePl0qKVwvPi9pZywKCXJ0YWdOYW1lID0gLzwoW1x3Ol0rKS8sCglydGJvZHkgPSAvPHRib2R5L2ksCglyaHRtbCA9IC88fCYjP1x3KzsvLAoJcm5vY2FjaGUgPSAvPCg/OnNjcmlwdHxvYmplY3R8ZW1iZWR8b3B0aW9ufHN0eWxlKS9pLAoJLy8gY2hlY2tlZD0iY2hlY2tlZCIgb3IgY2hlY2tlZAoJcmNoZWNrZWQgPSAvY2hlY2tlZFxzKig/OltePV18PVxzKi5jaGVja2VkLikvaSwKCXdyYXBNYXAgPSB7CgkJb3B0aW9uOiBbIDEsICI8c2VsZWN0IG11bHRpcGxlPSdtdWx0aXBsZSc+IiwgIjwvc2VsZWN0PiIgXSwKCQlsZWdlbmQ6IFsgMSwgIjxmaWVsZHNldD4iLCAiPC9maWVsZHNldD4iIF0sCgkJdGhlYWQ6IFsgMSwgIjx0YWJsZT4iLCAiPC90YWJsZT4iIF0sCgkJdHI6IFsgMiwgIjx0YWJsZT48dGJvZHk+IiwgIjwvdGJvZHk+PC90YWJsZT4iIF0sCgkJdGQ6IFsgMywgIjx0YWJsZT48dGJvZHk+PHRyPiIsICI8L3RyPjwvdGJvZHk+PC90YWJsZT4iIF0sCgkJY29sOiBbIDIsICI8dGFibGU+PHRib2R5PjwvdGJvZHk+PGNvbGdyb3VwPiIsICI8L2NvbGdyb3VwPjwvdGFibGU+IiBdLAoJCWFyZWE6IFsgMSwgIjxtYXA+IiwgIjwvbWFwPiIgXSwKCQlfZGVmYXVsdDogWyAwLCAiIiwgIiIgXQoJfTsKCndyYXBNYXAub3B0Z3JvdXAgPSB3cmFwTWFwLm9wdGlvbjsKd3JhcE1hcC50Ym9keSA9IHdyYXBNYXAudGZvb3QgPSB3cmFwTWFwLmNvbGdyb3VwID0gd3JhcE1hcC5jYXB0aW9uID0gd3JhcE1hcC50aGVhZDsKd3JhcE1hcC50aCA9IHdyYXBNYXAudGQ7CgovLyBJRSBjYW4ndCBzZXJpYWxpemUgPGxpbms+IGFuZCA8c2NyaXB0PiB0YWdzIG5vcm1hbGx5CmlmICggIWpRdWVyeS5zdXBwb3J0Lmh0bWxTZXJpYWxpemUgKSB7Cgl3cmFwTWFwLl9kZWZhdWx0ID0gWyAxLCAiZGl2PGRpdj4iLCAiPC9kaXY+IiBdOwp9CgpqUXVlcnkuZm4uZXh0ZW5kKHsKCXRleHQ6IGZ1bmN0aW9uKCB0ZXh0ICkgewoJCWlmICggalF1ZXJ5LmlzRnVuY3Rpb24odGV4dCkgKSB7CgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oaSkgewoJCQkJdmFyIHNlbGYgPSBqUXVlcnkoIHRoaXMgKTsKCgkJCQlzZWxmLnRleHQoIHRleHQuY2FsbCh0aGlzLCBpLCBzZWxmLnRleHQoKSkgKTsKCQkJfSk7CgkJfQoKCQlpZiAoIHR5cGVvZiB0ZXh0ICE9PSAib2JqZWN0IiAmJiB0ZXh0ICE9PSB1bmRlZmluZWQgKSB7CgkJCXJldHVybiB0aGlzLmVtcHR5KCkuYXBwZW5kKCAodGhpc1swXSAmJiB0aGlzWzBdLm93bmVyRG9jdW1lbnQgfHwgZG9jdW1lbnQpLmNyZWF0ZVRleHROb2RlKCB0ZXh0ICkgKTsKCQl9CgoJCXJldHVybiBqUXVlcnkudGV4dCggdGhpcyApOwoJfSwKCgl3cmFwQWxsOiBmdW5jdGlvbiggaHRtbCApIHsKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCBodG1sICkgKSB7CgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oaSkgewoJCQkJalF1ZXJ5KHRoaXMpLndyYXBBbGwoIGh0bWwuY2FsbCh0aGlzLCBpKSApOwoJCQl9KTsKCQl9CgoJCWlmICggdGhpc1swXSApIHsKCQkJLy8gVGhlIGVsZW1lbnRzIHRvIHdyYXAgdGhlIHRhcmdldCBhcm91bmQKCQkJdmFyIHdyYXAgPSBqUXVlcnkoIGh0bWwsIHRoaXNbMF0ub3duZXJEb2N1bWVudCApLmVxKDApLmNsb25lKHRydWUpOwoKCQkJaWYgKCB0aGlzWzBdLnBhcmVudE5vZGUgKSB7CgkJCQl3cmFwLmluc2VydEJlZm9yZSggdGhpc1swXSApOwoJCQl9CgoJCQl3cmFwLm1hcChmdW5jdGlvbigpIHsKCQkJCXZhciBlbGVtID0gdGhpczsKCgkJCQl3aGlsZSAoIGVsZW0uZmlyc3RDaGlsZCAmJiBlbGVtLmZpcnN0Q2hpbGQubm9kZVR5cGUgPT09IDEgKSB7CgkJCQkJZWxlbSA9IGVsZW0uZmlyc3RDaGlsZDsKCQkJCX0KCgkJCQlyZXR1cm4gZWxlbTsKCQkJfSkuYXBwZW5kKHRoaXMpOwoJCX0KCgkJcmV0dXJuIHRoaXM7Cgl9LAoKCXdyYXBJbm5lcjogZnVuY3Rpb24oIGh0bWwgKSB7CgkJaWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggaHRtbCApICkgewoJCQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGkpIHsKCQkJCWpRdWVyeSh0aGlzKS53cmFwSW5uZXIoIGh0bWwuY2FsbCh0aGlzLCBpKSApOwoJCQl9KTsKCQl9CgoJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCXZhciBzZWxmID0galF1ZXJ5KCB0aGlzICksCgkJCQljb250ZW50cyA9IHNlbGYuY29udGVudHMoKTsKCgkJCWlmICggY29udGVudHMubGVuZ3RoICkgewoJCQkJY29udGVudHMud3JhcEFsbCggaHRtbCApOwoKCQkJfSBlbHNlIHsKCQkJCXNlbGYuYXBwZW5kKCBodG1sICk7CgkJCX0KCQl9KTsKCX0sCgoJd3JhcDogZnVuY3Rpb24oIGh0bWwgKSB7CgkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJalF1ZXJ5KCB0aGlzICkud3JhcEFsbCggaHRtbCApOwoJCX0pOwoJfSwKCgl1bndyYXA6IGZ1bmN0aW9uKCkgewoJCXJldHVybiB0aGlzLnBhcmVudCgpLmVhY2goZnVuY3Rpb24oKSB7CgkJCWlmICggIWpRdWVyeS5ub2RlTmFtZSggdGhpcywgImJvZHkiICkgKSB7CgkJCQlqUXVlcnkoIHRoaXMgKS5yZXBsYWNlV2l0aCggdGhpcy5jaGlsZE5vZGVzICk7CgkJCX0KCQl9KS5lbmQoKTsKCX0sCgoJYXBwZW5kOiBmdW5jdGlvbigpIHsKCQlyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsIHRydWUsIGZ1bmN0aW9uKCBlbGVtICkgewoJCQlpZiAoIHRoaXMubm9kZVR5cGUgPT09IDEgKSB7CgkJCQl0aGlzLmFwcGVuZENoaWxkKCBlbGVtICk7CgkJCX0KCQl9KTsKCX0sCgoJcHJlcGVuZDogZnVuY3Rpb24oKSB7CgkJcmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLCB0cnVlLCBmdW5jdGlvbiggZWxlbSApIHsKCQkJaWYgKCB0aGlzLm5vZGVUeXBlID09PSAxICkgewoJCQkJdGhpcy5pbnNlcnRCZWZvcmUoIGVsZW0sIHRoaXMuZmlyc3RDaGlsZCApOwoJCQl9CgkJfSk7Cgl9LAoKCWJlZm9yZTogZnVuY3Rpb24oKSB7CgkJaWYgKCB0aGlzWzBdICYmIHRoaXNbMF0ucGFyZW50Tm9kZSApIHsKCQkJcmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLCBmYWxzZSwgZnVuY3Rpb24oIGVsZW0gKSB7CgkJCQl0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKCBlbGVtLCB0aGlzICk7CgkJCX0pOwoJCX0gZWxzZSBpZiAoIGFyZ3VtZW50cy5sZW5ndGggKSB7CgkJCXZhciBzZXQgPSBqUXVlcnkoYXJndW1lbnRzWzBdKTsKCQkJc2V0LnB1c2guYXBwbHkoIHNldCwgdGhpcy50b0FycmF5KCkgKTsKCQkJcmV0dXJuIHRoaXMucHVzaFN0YWNrKCBzZXQsICJiZWZvcmUiLCBhcmd1bWVudHMgKTsKCQl9Cgl9LAoKCWFmdGVyOiBmdW5jdGlvbigpIHsKCQlpZiAoIHRoaXNbMF0gJiYgdGhpc1swXS5wYXJlbnROb2RlICkgewoJCQlyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsIGZhbHNlLCBmdW5jdGlvbiggZWxlbSApIHsKCQkJCXRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoIGVsZW0sIHRoaXMubmV4dFNpYmxpbmcgKTsKCQkJfSk7CgkJfSBlbHNlIGlmICggYXJndW1lbnRzLmxlbmd0aCApIHsKCQkJdmFyIHNldCA9IHRoaXMucHVzaFN0YWNrKCB0aGlzLCAiYWZ0ZXIiLCBhcmd1bWVudHMgKTsKCQkJc2V0LnB1c2guYXBwbHkoIHNldCwgalF1ZXJ5KGFyZ3VtZW50c1swXSkudG9BcnJheSgpICk7CgkJCXJldHVybiBzZXQ7CgkJfQoJfSwKCgkvLyBrZWVwRGF0YSBpcyBmb3IgaW50ZXJuYWwgdXNlIG9ubHktLWRvIG5vdCBkb2N1bWVudAoJcmVtb3ZlOiBmdW5jdGlvbiggc2VsZWN0b3IsIGtlZXBEYXRhICkgewoJCWZvciAoIHZhciBpID0gMCwgZWxlbTsgKGVsZW0gPSB0aGlzW2ldKSAhPSBudWxsOyBpKysgKSB7CgkJCWlmICggIXNlbGVjdG9yIHx8IGpRdWVyeS5maWx0ZXIoIHNlbGVjdG9yLCBbIGVsZW0gXSApLmxlbmd0aCApIHsKCQkJCWlmICggIWtlZXBEYXRhICYmIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7CgkJCQkJalF1ZXJ5LmNsZWFuRGF0YSggZWxlbS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpICk7CgkJCQkJalF1ZXJ5LmNsZWFuRGF0YSggWyBlbGVtIF0gKTsKCQkJCX0KCgkJCQlpZiAoIGVsZW0ucGFyZW50Tm9kZSApIHsKCQkJCQllbGVtLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoIGVsZW0gKTsKCQkJCX0KCQkJfQoJCX0KCgkJcmV0dXJuIHRoaXM7Cgl9LAoKCWVtcHR5OiBmdW5jdGlvbigpIHsKCQlmb3IgKCB2YXIgaSA9IDAsIGVsZW07IChlbGVtID0gdGhpc1tpXSkgIT0gbnVsbDsgaSsrICkgewoJCQkvLyBSZW1vdmUgZWxlbWVudCBub2RlcyBhbmQgcHJldmVudCBtZW1vcnkgbGVha3MKCQkJaWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICkgewoJCQkJalF1ZXJ5LmNsZWFuRGF0YSggZWxlbS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpICk7CgkJCX0KCgkJCS8vIFJlbW92ZSBhbnkgcmVtYWluaW5nIG5vZGVzCgkJCXdoaWxlICggZWxlbS5maXJzdENoaWxkICkgewoJCQkJZWxlbS5yZW1vdmVDaGlsZCggZWxlbS5maXJzdENoaWxkICk7CgkJCX0KCQl9CgoJCXJldHVybiB0aGlzOwoJfSwKCgljbG9uZTogZnVuY3Rpb24oIGRhdGFBbmRFdmVudHMsIGRlZXBEYXRhQW5kRXZlbnRzICkgewoJCWRhdGFBbmRFdmVudHMgPSBkYXRhQW5kRXZlbnRzID09IG51bGwgPyBmYWxzZSA6IGRhdGFBbmRFdmVudHM7CgkJZGVlcERhdGFBbmRFdmVudHMgPSBkZWVwRGF0YUFuZEV2ZW50cyA9PSBudWxsID8gZGF0YUFuZEV2ZW50cyA6IGRlZXBEYXRhQW5kRXZlbnRzOwoKCQlyZXR1cm4gdGhpcy5tYXAoIGZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuIGpRdWVyeS5jbG9uZSggdGhpcywgZGF0YUFuZEV2ZW50cywgZGVlcERhdGFBbmRFdmVudHMgKTsKCQl9KTsKCX0sCgoJaHRtbDogZnVuY3Rpb24oIHZhbHVlICkgewoJCWlmICggdmFsdWUgPT09IHVuZGVmaW5lZCApIHsKCQkJcmV0dXJuIHRoaXNbMF0gJiYgdGhpc1swXS5ub2RlVHlwZSA9PT0gMSA/CgkJCQl0aGlzWzBdLmlubmVySFRNTC5yZXBsYWNlKHJpbmxpbmVqUXVlcnksICIiKSA6CgkJCQludWxsOwoKCQkvLyBTZWUgaWYgd2UgY2FuIHRha2UgYSBzaG9ydGN1dCBhbmQganVzdCB1c2UgaW5uZXJIVE1MCgkJfSBlbHNlIGlmICggdHlwZW9mIHZhbHVlID09PSAic3RyaW5nIiAmJiAhcm5vY2FjaGUudGVzdCggdmFsdWUgKSAmJgoJCQkoalF1ZXJ5LnN1cHBvcnQubGVhZGluZ1doaXRlc3BhY2UgfHwgIXJsZWFkaW5nV2hpdGVzcGFjZS50ZXN0KCB2YWx1ZSApKSAmJgoJCQkhd3JhcE1hcFsgKHJ0YWdOYW1lLmV4ZWMoIHZhbHVlICkgfHwgWyIiLCAiIl0pWzFdLnRvTG93ZXJDYXNlKCkgXSApIHsKCgkJCXZhbHVlID0gdmFsdWUucmVwbGFjZShyeGh0bWxUYWcsICI8JDE+PC8kMj4iKTsKCgkJCXRyeSB7CgkJCQlmb3IgKCB2YXIgaSA9IDAsIGwgPSB0aGlzLmxlbmd0aDsgaSA8IGw7IGkrKyApIHsKCQkJCQkvLyBSZW1vdmUgZWxlbWVudCBub2RlcyBhbmQgcHJldmVudCBtZW1vcnkgbGVha3MKCQkJCQlpZiAoIHRoaXNbaV0ubm9kZVR5cGUgPT09IDEgKSB7CgkJCQkJCWpRdWVyeS5jbGVhbkRhdGEoIHRoaXNbaV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSApOwoJCQkJCQl0aGlzW2ldLmlubmVySFRNTCA9IHZhbHVlOwoJCQkJCX0KCQkJCX0KCgkJCS8vIElmIHVzaW5nIGlubmVySFRNTCB0aHJvd3MgYW4gZXhjZXB0aW9uLCB1c2UgdGhlIGZhbGxiYWNrIG1ldGhvZAoJCQl9IGNhdGNoKGUpIHsKCQkJCXRoaXMuZW1wdHkoKS5hcHBlbmQoIHZhbHVlICk7CgkJCX0KCgkJfSBlbHNlIGlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHZhbHVlICkgKSB7CgkJCXRoaXMuZWFjaChmdW5jdGlvbihpKXsKCQkJCXZhciBzZWxmID0galF1ZXJ5KCB0aGlzICk7CgoJCQkJc2VsZi5odG1sKCB2YWx1ZS5jYWxsKHRoaXMsIGksIHNlbGYuaHRtbCgpKSApOwoJCQl9KTsKCgkJfSBlbHNlIHsKCQkJdGhpcy5lbXB0eSgpLmFwcGVuZCggdmFsdWUgKTsKCQl9CgoJCXJldHVybiB0aGlzOwoJfSwKCglyZXBsYWNlV2l0aDogZnVuY3Rpb24oIHZhbHVlICkgewoJCWlmICggdGhpc1swXSAmJiB0aGlzWzBdLnBhcmVudE5vZGUgKSB7CgkJCS8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBlbGVtZW50cyBhcmUgcmVtb3ZlZCBmcm9tIHRoZSBET00gYmVmb3JlIHRoZXkgYXJlIGluc2VydGVkCgkJCS8vIHRoaXMgY2FuIGhlbHAgZml4IHJlcGxhY2luZyBhIHBhcmVudCB3aXRoIGNoaWxkIGVsZW1lbnRzCgkJCWlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHZhbHVlICkgKSB7CgkJCQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGkpIHsKCQkJCQl2YXIgc2VsZiA9IGpRdWVyeSh0aGlzKSwgb2xkID0gc2VsZi5odG1sKCk7CgkJCQkJc2VsZi5yZXBsYWNlV2l0aCggdmFsdWUuY2FsbCggdGhpcywgaSwgb2xkICkgKTsKCQkJCX0pOwoJCQl9CgoJCQlpZiAoIHR5cGVvZiB2YWx1ZSAhPT0gInN0cmluZyIgKSB7CgkJCQl2YWx1ZSA9IGpRdWVyeSggdmFsdWUgKS5kZXRhY2goKTsKCQkJfQoKCQkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJCXZhciBuZXh0ID0gdGhpcy5uZXh0U2libGluZywKCQkJCQlwYXJlbnQgPSB0aGlzLnBhcmVudE5vZGU7CgoJCQkJalF1ZXJ5KCB0aGlzICkucmVtb3ZlKCk7CgoJCQkJaWYgKCBuZXh0ICkgewoJCQkJCWpRdWVyeShuZXh0KS5iZWZvcmUoIHZhbHVlICk7CgkJCQl9IGVsc2UgewoJCQkJCWpRdWVyeShwYXJlbnQpLmFwcGVuZCggdmFsdWUgKTsKCQkJCX0KCQkJfSk7CgkJfSBlbHNlIHsKCQkJcmV0dXJuIHRoaXMucHVzaFN0YWNrKCBqUXVlcnkoalF1ZXJ5LmlzRnVuY3Rpb24odmFsdWUpID8gdmFsdWUoKSA6IHZhbHVlKSwgInJlcGxhY2VXaXRoIiwgdmFsdWUgKTsKCQl9Cgl9LAoKCWRldGFjaDogZnVuY3Rpb24oIHNlbGVjdG9yICkgewoJCXJldHVybiB0aGlzLnJlbW92ZSggc2VsZWN0b3IsIHRydWUgKTsKCX0sCgoJZG9tTWFuaXA6IGZ1bmN0aW9uKCBhcmdzLCB0YWJsZSwgY2FsbGJhY2sgKSB7CgkJdmFyIHJlc3VsdHMsIGZpcnN0LCBmcmFnbWVudCwgcGFyZW50LAoJCQl2YWx1ZSA9IGFyZ3NbMF0sCgkJCXNjcmlwdHMgPSBbXTsKCgkJLy8gV2UgY2FuJ3QgY2xvbmVOb2RlIGZyYWdtZW50cyB0aGF0IGNvbnRhaW4gY2hlY2tlZCwgaW4gV2ViS2l0CgkJaWYgKCAhalF1ZXJ5LnN1cHBvcnQuY2hlY2tDbG9uZSAmJiBhcmd1bWVudHMubGVuZ3RoID09PSAzICYmIHR5cGVvZiB2YWx1ZSA9PT0gInN0cmluZyIgJiYgcmNoZWNrZWQudGVzdCggdmFsdWUgKSApIHsKCQkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJCWpRdWVyeSh0aGlzKS5kb21NYW5pcCggYXJncywgdGFibGUsIGNhbGxiYWNrLCB0cnVlICk7CgkJCX0pOwoJCX0KCgkJaWYgKCBqUXVlcnkuaXNGdW5jdGlvbih2YWx1ZSkgKSB7CgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oaSkgewoJCQkJdmFyIHNlbGYgPSBqUXVlcnkodGhpcyk7CgkJCQlhcmdzWzBdID0gdmFsdWUuY2FsbCh0aGlzLCBpLCB0YWJsZSA/IHNlbGYuaHRtbCgpIDogdW5kZWZpbmVkKTsKCQkJCXNlbGYuZG9tTWFuaXAoIGFyZ3MsIHRhYmxlLCBjYWxsYmFjayApOwoJCQl9KTsKCQl9CgoJCWlmICggdGhpc1swXSApIHsKCQkJcGFyZW50ID0gdmFsdWUgJiYgdmFsdWUucGFyZW50Tm9kZTsKCgkJCS8vIElmIHdlJ3JlIGluIGEgZnJhZ21lbnQsIGp1c3QgdXNlIHRoYXQgaW5zdGVhZCBvZiBidWlsZGluZyBhIG5ldyBvbmUKCQkJaWYgKCBqUXVlcnkuc3VwcG9ydC5wYXJlbnROb2RlICYmIHBhcmVudCAmJiBwYXJlbnQubm9kZVR5cGUgPT09IDExICYmIHBhcmVudC5jaGlsZE5vZGVzLmxlbmd0aCA9PT0gdGhpcy5sZW5ndGggKSB7CgkJCQlyZXN1bHRzID0geyBmcmFnbWVudDogcGFyZW50IH07CgoJCQl9IGVsc2UgewoJCQkJcmVzdWx0cyA9IGpRdWVyeS5idWlsZEZyYWdtZW50KCBhcmdzLCB0aGlzLCBzY3JpcHRzICk7CgkJCX0KCgkJCWZyYWdtZW50ID0gcmVzdWx0cy5mcmFnbWVudDsKCgkJCWlmICggZnJhZ21lbnQuY2hpbGROb2Rlcy5sZW5ndGggPT09IDEgKSB7CgkJCQlmaXJzdCA9IGZyYWdtZW50ID0gZnJhZ21lbnQuZmlyc3RDaGlsZDsKCQkJfSBlbHNlIHsKCQkJCWZpcnN0ID0gZnJhZ21lbnQuZmlyc3RDaGlsZDsKCQkJfQoKCQkJaWYgKCBmaXJzdCApIHsKCQkJCXRhYmxlID0gdGFibGUgJiYgalF1ZXJ5Lm5vZGVOYW1lKCBmaXJzdCwgInRyIiApOwoKCQkJCWZvciAoIHZhciBpID0gMCwgbCA9IHRoaXMubGVuZ3RoLCBsYXN0SW5kZXggPSBsIC0gMTsgaSA8IGw7IGkrKyApIHsKCQkJCQljYWxsYmFjay5jYWxsKAoJCQkJCQl0YWJsZSA/CgkJCQkJCQlyb290KHRoaXNbaV0sIGZpcnN0KSA6CgkJCQkJCQl0aGlzW2ldLAoJCQkJCQkvLyBNYWtlIHN1cmUgdGhhdCB3ZSBkbyBub3QgbGVhayBtZW1vcnkgYnkgaW5hZHZlcnRlbnRseSBkaXNjYXJkaW5nCgkJCQkJCS8vIHRoZSBvcmlnaW5hbCBmcmFnbWVudCAod2hpY2ggbWlnaHQgaGF2ZSBhdHRhY2hlZCBkYXRhKSBpbnN0ZWFkIG9mCgkJCQkJCS8vIHVzaW5nIGl0OyBpbiBhZGRpdGlvbiwgdXNlIHRoZSBvcmlnaW5hbCBmcmFnbWVudCBvYmplY3QgZm9yIHRoZSBsYXN0CgkJCQkJCS8vIGl0ZW0gaW5zdGVhZCBvZiBmaXJzdCBiZWNhdXNlIGl0IGNhbiBlbmQgdXAgYmVpbmcgZW1wdGllZCBpbmNvcnJlY3RseQoJCQkJCQkvLyBpbiBjZXJ0YWluIHNpdHVhdGlvbnMgKEJ1ZyAjODA3MCkuCgkJCQkJCS8vIEZyYWdtZW50cyBmcm9tIHRoZSBmcmFnbWVudCBjYWNoZSBtdXN0IGFsd2F5cyBiZSBjbG9uZWQgYW5kIG5ldmVyIHVzZWQKCQkJCQkJLy8gaW4gcGxhY2UuCgkJCQkJCXJlc3VsdHMuY2FjaGVhYmxlIHx8IChsID4gMSAmJiBpIDwgbGFzdEluZGV4KSA/CgkJCQkJCQlqUXVlcnkuY2xvbmUoIGZyYWdtZW50LCB0cnVlLCB0cnVlICkgOgoJCQkJCQkJZnJhZ21lbnQKCQkJCQkpOwoJCQkJfQoJCQl9CgoJCQlpZiAoIHNjcmlwdHMubGVuZ3RoICkgewoJCQkJalF1ZXJ5LmVhY2goIHNjcmlwdHMsIGV2YWxTY3JpcHQgKTsKCQkJfQoJCX0KCgkJcmV0dXJuIHRoaXM7Cgl9Cn0pOwoKZnVuY3Rpb24gcm9vdCggZWxlbSwgY3VyICkgewoJcmV0dXJuIGpRdWVyeS5ub2RlTmFtZShlbGVtLCAidGFibGUiKSA/CgkJKGVsZW0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRib2R5IilbMF0gfHwKCQllbGVtLmFwcGVuZENoaWxkKGVsZW0ub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0Ym9keSIpKSkgOgoJCWVsZW07Cn0KCmZ1bmN0aW9uIGNsb25lQ29weUV2ZW50KCBzcmMsIGRlc3QgKSB7CgoJaWYgKCBkZXN0Lm5vZGVUeXBlICE9PSAxIHx8ICFqUXVlcnkuaGFzRGF0YSggc3JjICkgKSB7CgkJcmV0dXJuOwoJfQoKCXZhciBpbnRlcm5hbEtleSA9IGpRdWVyeS5leHBhbmRvLAoJCW9sZERhdGEgPSBqUXVlcnkuZGF0YSggc3JjICksCgkJY3VyRGF0YSA9IGpRdWVyeS5kYXRhKCBkZXN0LCBvbGREYXRhICk7CgoJLy8gU3dpdGNoIHRvIHVzZSB0aGUgaW50ZXJuYWwgZGF0YSBvYmplY3QsIGlmIGl0IGV4aXN0cywgZm9yIHRoZSBuZXh0CgkvLyBzdGFnZSBvZiBkYXRhIGNvcHlpbmcKCWlmICggKG9sZERhdGEgPSBvbGREYXRhWyBpbnRlcm5hbEtleSBdKSApIHsKCQl2YXIgZXZlbnRzID0gb2xkRGF0YS5ldmVudHM7CgkJCQljdXJEYXRhID0gY3VyRGF0YVsgaW50ZXJuYWxLZXkgXSA9IGpRdWVyeS5leHRlbmQoe30sIG9sZERhdGEpOwoKCQlpZiAoIGV2ZW50cyApIHsKCQkJZGVsZXRlIGN1ckRhdGEuaGFuZGxlOwoJCQljdXJEYXRhLmV2ZW50cyA9IHt9OwoKCQkJZm9yICggdmFyIHR5cGUgaW4gZXZlbnRzICkgewoJCQkJZm9yICggdmFyIGkgPSAwLCBsID0gZXZlbnRzWyB0eXBlIF0ubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCQkJCWpRdWVyeS5ldmVudC5hZGQoIGRlc3QsIHR5cGUgKyAoIGV2ZW50c1sgdHlwZSBdWyBpIF0ubmFtZXNwYWNlID8gIi4iIDogIiIgKSArIGV2ZW50c1sgdHlwZSBdWyBpIF0ubmFtZXNwYWNlLCBldmVudHNbIHR5cGUgXVsgaSBdLCBldmVudHNbIHR5cGUgXVsgaSBdLmRhdGEgKTsKCQkJCX0KCQkJfQoJCX0KCX0KfQoKZnVuY3Rpb24gY2xvbmVGaXhBdHRyaWJ1dGVzKHNyYywgZGVzdCkgewoJLy8gV2UgZG8gbm90IG5lZWQgdG8gZG8gYW55dGhpbmcgZm9yIG5vbi1FbGVtZW50cwoJaWYgKCBkZXN0Lm5vZGVUeXBlICE9PSAxICkgewoJCXJldHVybjsKCX0KCgl2YXIgbm9kZU5hbWUgPSBkZXN0Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7CgoJLy8gY2xlYXJBdHRyaWJ1dGVzIHJlbW92ZXMgdGhlIGF0dHJpYnV0ZXMsIHdoaWNoIHdlIGRvbid0IHdhbnQsCgkvLyBidXQgYWxzbyByZW1vdmVzIHRoZSBhdHRhY2hFdmVudCBldmVudHMsIHdoaWNoIHdlICpkbyogd2FudAoJZGVzdC5jbGVhckF0dHJpYnV0ZXMoKTsKCgkvLyBtZXJnZUF0dHJpYnV0ZXMsIGluIGNvbnRyYXN0LCBvbmx5IG1lcmdlcyBiYWNrIG9uIHRoZQoJLy8gb3JpZ2luYWwgYXR0cmlidXRlcywgbm90IHRoZSBldmVudHMKCWRlc3QubWVyZ2VBdHRyaWJ1dGVzKHNyYyk7CgoJLy8gSUU2LTggZmFpbCB0byBjbG9uZSBjaGlsZHJlbiBpbnNpZGUgb2JqZWN0IGVsZW1lbnRzIHRoYXQgdXNlCgkvLyB0aGUgcHJvcHJpZXRhcnkgY2xhc3NpZCBhdHRyaWJ1dGUgdmFsdWUgKHJhdGhlciB0aGFuIHRoZSB0eXBlCgkvLyBhdHRyaWJ1dGUpIHRvIGlkZW50aWZ5IHRoZSB0eXBlIG9mIGNvbnRlbnQgdG8gZGlzcGxheQoJaWYgKCBub2RlTmFtZSA9PT0gIm9iamVjdCIgKSB7CgkJZGVzdC5vdXRlckhUTUwgPSBzcmMub3V0ZXJIVE1MOwoKCX0gZWxzZSBpZiAoIG5vZGVOYW1lID09PSAiaW5wdXQiICYmIChzcmMudHlwZSA9PT0gImNoZWNrYm94IiB8fCBzcmMudHlwZSA9PT0gInJhZGlvIikgKSB7CgkJLy8gSUU2LTggZmFpbHMgdG8gcGVyc2lzdCB0aGUgY2hlY2tlZCBzdGF0ZSBvZiBhIGNsb25lZCBjaGVja2JveAoJCS8vIG9yIHJhZGlvIGJ1dHRvbi4gV29yc2UsIElFNi03IGZhaWwgdG8gZ2l2ZSB0aGUgY2xvbmVkIGVsZW1lbnQKCQkvLyBhIGNoZWNrZWQgYXBwZWFyYW5jZSBpZiB0aGUgZGVmYXVsdENoZWNrZWQgdmFsdWUgaXNuJ3QgYWxzbyBzZXQKCQlpZiAoIHNyYy5jaGVja2VkICkgewoJCQlkZXN0LmRlZmF1bHRDaGVja2VkID0gZGVzdC5jaGVja2VkID0gc3JjLmNoZWNrZWQ7CgkJfQoKCQkvLyBJRTYtNyBnZXQgY29uZnVzZWQgYW5kIGVuZCB1cCBzZXR0aW5nIHRoZSB2YWx1ZSBvZiBhIGNsb25lZAoJCS8vIGNoZWNrYm94L3JhZGlvIGJ1dHRvbiB0byBhbiBlbXB0eSBzdHJpbmcgaW5zdGVhZCBvZiAib24iCgkJaWYgKCBkZXN0LnZhbHVlICE9PSBzcmMudmFsdWUgKSB7CgkJCWRlc3QudmFsdWUgPSBzcmMudmFsdWU7CgkJfQoKCS8vIElFNi04IGZhaWxzIHRvIHJldHVybiB0aGUgc2VsZWN0ZWQgb3B0aW9uIHRvIHRoZSBkZWZhdWx0IHNlbGVjdGVkCgkvLyBzdGF0ZSB3aGVuIGNsb25pbmcgb3B0aW9ucwoJfSBlbHNlIGlmICggbm9kZU5hbWUgPT09ICJvcHRpb24iICkgewoJCWRlc3Quc2VsZWN0ZWQgPSBzcmMuZGVmYXVsdFNlbGVjdGVkOwoKCS8vIElFNi04IGZhaWxzIHRvIHNldCB0aGUgZGVmYXVsdFZhbHVlIHRvIHRoZSBjb3JyZWN0IHZhbHVlIHdoZW4KCS8vIGNsb25pbmcgb3RoZXIgdHlwZXMgb2YgaW5wdXQgZmllbGRzCgl9IGVsc2UgaWYgKCBub2RlTmFtZSA9PT0gImlucHV0IiB8fCBub2RlTmFtZSA9PT0gInRleHRhcmVhIiApIHsKCQlkZXN0LmRlZmF1bHRWYWx1ZSA9IHNyYy5kZWZhdWx0VmFsdWU7Cgl9CgoJLy8gRXZlbnQgZGF0YSBnZXRzIHJlZmVyZW5jZWQgaW5zdGVhZCBvZiBjb3BpZWQgaWYgdGhlIGV4cGFuZG8KCS8vIGdldHMgY29waWVkIHRvbwoJZGVzdC5yZW1vdmVBdHRyaWJ1dGUoIGpRdWVyeS5leHBhbmRvICk7Cn0KCmpRdWVyeS5idWlsZEZyYWdtZW50ID0gZnVuY3Rpb24oIGFyZ3MsIG5vZGVzLCBzY3JpcHRzICkgewoJdmFyIGZyYWdtZW50LCBjYWNoZWFibGUsIGNhY2hlcmVzdWx0cywKCQlkb2MgPSAobm9kZXMgJiYgbm9kZXNbMF0gPyBub2Rlc1swXS5vd25lckRvY3VtZW50IHx8IG5vZGVzWzBdIDogZG9jdW1lbnQpOwoKCS8vIE9ubHkgY2FjaGUgInNtYWxsIiAoMS8yIEtCKSBIVE1MIHN0cmluZ3MgdGhhdCBhcmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBtYWluIGRvY3VtZW50CgkvLyBDbG9uaW5nIG9wdGlvbnMgbG9zZXMgdGhlIHNlbGVjdGVkIHN0YXRlLCBzbyBkb24ndCBjYWNoZSB0aGVtCgkvLyBJRSA2IGRvZXNuJ3QgbGlrZSBpdCB3aGVuIHlvdSBwdXQgPG9iamVjdD4gb3IgPGVtYmVkPiBlbGVtZW50cyBpbiBhIGZyYWdtZW50CgkvLyBBbHNvLCBXZWJLaXQgZG9lcyBub3QgY2xvbmUgJ2NoZWNrZWQnIGF0dHJpYnV0ZXMgb24gY2xvbmVOb2RlLCBzbyBkb24ndCBjYWNoZQoJaWYgKCBhcmdzLmxlbmd0aCA9PT0gMSAmJiB0eXBlb2YgYXJnc1swXSA9PT0gInN0cmluZyIgJiYgYXJnc1swXS5sZW5ndGggPCA1MTIgJiYgZG9jID09PSBkb2N1bWVudCAmJgoJCWFyZ3NbMF0uY2hhckF0KDApID09PSAiPCIgJiYgIXJub2NhY2hlLnRlc3QoIGFyZ3NbMF0gKSAmJiAoalF1ZXJ5LnN1cHBvcnQuY2hlY2tDbG9uZSB8fCAhcmNoZWNrZWQudGVzdCggYXJnc1swXSApKSApIHsKCgkJY2FjaGVhYmxlID0gdHJ1ZTsKCQljYWNoZXJlc3VsdHMgPSBqUXVlcnkuZnJhZ21lbnRzWyBhcmdzWzBdIF07CgkJaWYgKCBjYWNoZXJlc3VsdHMgKSB7CgkJCWlmICggY2FjaGVyZXN1bHRzICE9PSAxICkgewoJCQkJZnJhZ21lbnQgPSBjYWNoZXJlc3VsdHM7CgkJCX0KCQl9Cgl9CgoJaWYgKCAhZnJhZ21lbnQgKSB7CgkJZnJhZ21lbnQgPSBkb2MuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwoJCWpRdWVyeS5jbGVhbiggYXJncywgZG9jLCBmcmFnbWVudCwgc2NyaXB0cyApOwoJfQoKCWlmICggY2FjaGVhYmxlICkgewoJCWpRdWVyeS5mcmFnbWVudHNbIGFyZ3NbMF0gXSA9IGNhY2hlcmVzdWx0cyA/IGZyYWdtZW50IDogMTsKCX0KCglyZXR1cm4geyBmcmFnbWVudDogZnJhZ21lbnQsIGNhY2hlYWJsZTogY2FjaGVhYmxlIH07Cn07CgpqUXVlcnkuZnJhZ21lbnRzID0ge307CgpqUXVlcnkuZWFjaCh7CglhcHBlbmRUbzogImFwcGVuZCIsCglwcmVwZW5kVG86ICJwcmVwZW5kIiwKCWluc2VydEJlZm9yZTogImJlZm9yZSIsCglpbnNlcnRBZnRlcjogImFmdGVyIiwKCXJlcGxhY2VBbGw6ICJyZXBsYWNlV2l0aCIKfSwgZnVuY3Rpb24oIG5hbWUsIG9yaWdpbmFsICkgewoJalF1ZXJ5LmZuWyBuYW1lIF0gPSBmdW5jdGlvbiggc2VsZWN0b3IgKSB7CgkJdmFyIHJldCA9IFtdLAoJCQlpbnNlcnQgPSBqUXVlcnkoIHNlbGVjdG9yICksCgkJCXBhcmVudCA9IHRoaXMubGVuZ3RoID09PSAxICYmIHRoaXNbMF0ucGFyZW50Tm9kZTsKCgkJaWYgKCBwYXJlbnQgJiYgcGFyZW50Lm5vZGVUeXBlID09PSAxMSAmJiBwYXJlbnQuY2hpbGROb2Rlcy5sZW5ndGggPT09IDEgJiYgaW5zZXJ0Lmxlbmd0aCA9PT0gMSApIHsKCQkJaW5zZXJ0WyBvcmlnaW5hbCBdKCB0aGlzWzBdICk7CgkJCXJldHVybiB0aGlzOwoKCQl9IGVsc2UgewoJCQlmb3IgKCB2YXIgaSA9IDAsIGwgPSBpbnNlcnQubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCQkJdmFyIGVsZW1zID0gKGkgPiAwID8gdGhpcy5jbG9uZSh0cnVlKSA6IHRoaXMpLmdldCgpOwoJCQkJalF1ZXJ5KCBpbnNlcnRbaV0gKVsgb3JpZ2luYWwgXSggZWxlbXMgKTsKCQkJCXJldCA9IHJldC5jb25jYXQoIGVsZW1zICk7CgkJCX0KCgkJCXJldHVybiB0aGlzLnB1c2hTdGFjayggcmV0LCBuYW1lLCBpbnNlcnQuc2VsZWN0b3IgKTsKCQl9Cgl9Owp9KTsKCmZ1bmN0aW9uIGdldEFsbCggZWxlbSApIHsKCWlmICggImdldEVsZW1lbnRzQnlUYWdOYW1lIiBpbiBlbGVtICkgewoJCXJldHVybiBlbGVtLmdldEVsZW1lbnRzQnlUYWdOYW1lKCAiKiIgKTsKCQoJfSBlbHNlIGlmICggInF1ZXJ5U2VsZWN0b3JBbGwiIGluIGVsZW0gKSB7CgkJcmV0dXJuIGVsZW0ucXVlcnlTZWxlY3RvckFsbCggIioiICk7CgoJfSBlbHNlIHsKCQlyZXR1cm4gW107Cgl9Cn0KCmpRdWVyeS5leHRlbmQoewoJY2xvbmU6IGZ1bmN0aW9uKCBlbGVtLCBkYXRhQW5kRXZlbnRzLCBkZWVwRGF0YUFuZEV2ZW50cyApIHsKCQl2YXIgY2xvbmUgPSBlbGVtLmNsb25lTm9kZSh0cnVlKSwKCQkJCXNyY0VsZW1lbnRzLAoJCQkJZGVzdEVsZW1lbnRzLAoJCQkJaTsKCgkJaWYgKCAoIWpRdWVyeS5zdXBwb3J0Lm5vQ2xvbmVFdmVudCB8fCAhalF1ZXJ5LnN1cHBvcnQubm9DbG9uZUNoZWNrZWQpICYmCgkJCQkoZWxlbS5ub2RlVHlwZSA9PT0gMSB8fCBlbGVtLm5vZGVUeXBlID09PSAxMSkgJiYgIWpRdWVyeS5pc1hNTERvYyhlbGVtKSApIHsKCQkJLy8gSUUgY29waWVzIGV2ZW50cyBib3VuZCB2aWEgYXR0YWNoRXZlbnQgd2hlbiB1c2luZyBjbG9uZU5vZGUuCgkJCS8vIENhbGxpbmcgZGV0YWNoRXZlbnQgb24gdGhlIGNsb25lIHdpbGwgYWxzbyByZW1vdmUgdGhlIGV2ZW50cwoJCQkvLyBmcm9tIHRoZSBvcmlnaW5hbC4gSW4gb3JkZXIgdG8gZ2V0IGFyb3VuZCB0aGlzLCB3ZSB1c2Ugc29tZQoJCQkvLyBwcm9wcmlldGFyeSBtZXRob2RzIHRvIGNsZWFyIHRoZSBldmVudHMuIFRoYW5rcyB0byBNb29Ub29scwoJCQkvLyBndXlzIGZvciB0aGlzIGhvdG5lc3MuCgoJCQljbG9uZUZpeEF0dHJpYnV0ZXMoIGVsZW0sIGNsb25lICk7CgoJCQkvLyBVc2luZyBTaXp6bGUgaGVyZSBpcyBjcmF6eSBzbG93LCBzbyB3ZSB1c2UgZ2V0RWxlbWVudHNCeVRhZ05hbWUKCQkJLy8gaW5zdGVhZAoJCQlzcmNFbGVtZW50cyA9IGdldEFsbCggZWxlbSApOwoJCQlkZXN0RWxlbWVudHMgPSBnZXRBbGwoIGNsb25lICk7CgoJCQkvLyBXZWlyZCBpdGVyYXRpb24gYmVjYXVzZSBJRSB3aWxsIHJlcGxhY2UgdGhlIGxlbmd0aCBwcm9wZXJ0eQoJCQkvLyB3aXRoIGFuIGVsZW1lbnQgaWYgeW91IGFyZSBjbG9uaW5nIHRoZSBib2R5IGFuZCBvbmUgb2YgdGhlCgkJCS8vIGVsZW1lbnRzIG9uIHRoZSBwYWdlIGhhcyBhIG5hbWUgb3IgaWQgb2YgImxlbmd0aCIKCQkJZm9yICggaSA9IDA7IHNyY0VsZW1lbnRzW2ldOyArK2kgKSB7CgkJCQljbG9uZUZpeEF0dHJpYnV0ZXMoIHNyY0VsZW1lbnRzW2ldLCBkZXN0RWxlbWVudHNbaV0gKTsKCQkJfQoJCX0KCgkJLy8gQ29weSB0aGUgZXZlbnRzIGZyb20gdGhlIG9yaWdpbmFsIHRvIHRoZSBjbG9uZQoJCWlmICggZGF0YUFuZEV2ZW50cyApIHsKCQkJY2xvbmVDb3B5RXZlbnQoIGVsZW0sIGNsb25lICk7CgoJCQlpZiAoIGRlZXBEYXRhQW5kRXZlbnRzICkgewoJCQkJc3JjRWxlbWVudHMgPSBnZXRBbGwoIGVsZW0gKTsKCQkJCWRlc3RFbGVtZW50cyA9IGdldEFsbCggY2xvbmUgKTsKCgkJCQlmb3IgKCBpID0gMDsgc3JjRWxlbWVudHNbaV07ICsraSApIHsKCQkJCQljbG9uZUNvcHlFdmVudCggc3JjRWxlbWVudHNbaV0sIGRlc3RFbGVtZW50c1tpXSApOwoJCQkJfQoJCQl9CgkJfQoKCQkvLyBSZXR1cm4gdGhlIGNsb25lZCBzZXQKCQlyZXR1cm4gY2xvbmU7Cn0sCgljbGVhbjogZnVuY3Rpb24oIGVsZW1zLCBjb250ZXh0LCBmcmFnbWVudCwgc2NyaXB0cyApIHsKCQljb250ZXh0ID0gY29udGV4dCB8fCBkb2N1bWVudDsKCgkJLy8gIWNvbnRleHQuY3JlYXRlRWxlbWVudCBmYWlscyBpbiBJRSB3aXRoIGFuIGVycm9yIGJ1dCByZXR1cm5zIHR5cGVvZiAnb2JqZWN0JwoJCWlmICggdHlwZW9mIGNvbnRleHQuY3JlYXRlRWxlbWVudCA9PT0gInVuZGVmaW5lZCIgKSB7CgkJCWNvbnRleHQgPSBjb250ZXh0Lm93bmVyRG9jdW1lbnQgfHwgY29udGV4dFswXSAmJiBjb250ZXh0WzBdLm93bmVyRG9jdW1lbnQgfHwgZG9jdW1lbnQ7CgkJfQoKCQl2YXIgcmV0ID0gW107CgoJCWZvciAoIHZhciBpID0gMCwgZWxlbTsgKGVsZW0gPSBlbGVtc1tpXSkgIT0gbnVsbDsgaSsrICkgewoJCQlpZiAoIHR5cGVvZiBlbGVtID09PSAibnVtYmVyIiApIHsKCQkJCWVsZW0gKz0gIiI7CgkJCX0KCgkJCWlmICggIWVsZW0gKSB7CgkJCQljb250aW51ZTsKCQkJfQoKCQkJLy8gQ29udmVydCBodG1sIHN0cmluZyBpbnRvIERPTSBub2RlcwoJCQlpZiAoIHR5cGVvZiBlbGVtID09PSAic3RyaW5nIiAmJiAhcmh0bWwudGVzdCggZWxlbSApICkgewoJCQkJZWxlbSA9IGNvbnRleHQuY3JlYXRlVGV4dE5vZGUoIGVsZW0gKTsKCgkJCX0gZWxzZSBpZiAoIHR5cGVvZiBlbGVtID09PSAic3RyaW5nIiApIHsKCQkJCS8vIEZpeCAiWEhUTUwiLXN0eWxlIHRhZ3MgaW4gYWxsIGJyb3dzZXJzCgkJCQllbGVtID0gZWxlbS5yZXBsYWNlKHJ4aHRtbFRhZywgIjwkMT48LyQyPiIpOwoKCQkJCS8vIFRyaW0gd2hpdGVzcGFjZSwgb3RoZXJ3aXNlIGluZGV4T2Ygd29uJ3Qgd29yayBhcyBleHBlY3RlZAoJCQkJdmFyIHRhZyA9IChydGFnTmFtZS5leGVjKCBlbGVtICkgfHwgWyIiLCAiIl0pWzFdLnRvTG93ZXJDYXNlKCksCgkJCQkJd3JhcCA9IHdyYXBNYXBbIHRhZyBdIHx8IHdyYXBNYXAuX2RlZmF1bHQsCgkJCQkJZGVwdGggPSB3cmFwWzBdLAoJCQkJCWRpdiA9IGNvbnRleHQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CgoJCQkJLy8gR28gdG8gaHRtbCBhbmQgYmFjaywgdGhlbiBwZWVsIG9mZiBleHRyYSB3cmFwcGVycwoJCQkJZGl2LmlubmVySFRNTCA9IHdyYXBbMV0gKyBlbGVtICsgd3JhcFsyXTsKCgkJCQkvLyBNb3ZlIHRvIHRoZSByaWdodCBkZXB0aAoJCQkJd2hpbGUgKCBkZXB0aC0tICkgewoJCQkJCWRpdiA9IGRpdi5sYXN0Q2hpbGQ7CgkJCQl9CgoJCQkJLy8gUmVtb3ZlIElFJ3MgYXV0b2luc2VydGVkIDx0Ym9keT4gZnJvbSB0YWJsZSBmcmFnbWVudHMKCQkJCWlmICggIWpRdWVyeS5zdXBwb3J0LnRib2R5ICkgewoKCQkJCQkvLyBTdHJpbmcgd2FzIGEgPHRhYmxlPiwgKm1heSogaGF2ZSBzcHVyaW91cyA8dGJvZHk+CgkJCQkJdmFyIGhhc0JvZHkgPSBydGJvZHkudGVzdChlbGVtKSwKCQkJCQkJdGJvZHkgPSB0YWcgPT09ICJ0YWJsZSIgJiYgIWhhc0JvZHkgPwoJCQkJCQkJZGl2LmZpcnN0Q2hpbGQgJiYgZGl2LmZpcnN0Q2hpbGQuY2hpbGROb2RlcyA6CgoJCQkJCQkJLy8gU3RyaW5nIHdhcyBhIGJhcmUgPHRoZWFkPiBvciA8dGZvb3Q+CgkJCQkJCQl3cmFwWzFdID09PSAiPHRhYmxlPiIgJiYgIWhhc0JvZHkgPwoJCQkJCQkJCWRpdi5jaGlsZE5vZGVzIDoKCQkJCQkJCQlbXTsKCgkJCQkJZm9yICggdmFyIGogPSB0Ym9keS5sZW5ndGggLSAxOyBqID49IDAgOyAtLWogKSB7CgkJCQkJCWlmICggalF1ZXJ5Lm5vZGVOYW1lKCB0Ym9keVsgaiBdLCAidGJvZHkiICkgJiYgIXRib2R5WyBqIF0uY2hpbGROb2Rlcy5sZW5ndGggKSB7CgkJCQkJCQl0Ym9keVsgaiBdLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoIHRib2R5WyBqIF0gKTsKCQkJCQkJfQoJCQkJCX0KCgkJCQl9CgoJCQkJLy8gSUUgY29tcGxldGVseSBraWxscyBsZWFkaW5nIHdoaXRlc3BhY2Ugd2hlbiBpbm5lckhUTUwgaXMgdXNlZAoJCQkJaWYgKCAhalF1ZXJ5LnN1cHBvcnQubGVhZGluZ1doaXRlc3BhY2UgJiYgcmxlYWRpbmdXaGl0ZXNwYWNlLnRlc3QoIGVsZW0gKSApIHsKCQkJCQlkaXYuaW5zZXJ0QmVmb3JlKCBjb250ZXh0LmNyZWF0ZVRleHROb2RlKCBybGVhZGluZ1doaXRlc3BhY2UuZXhlYyhlbGVtKVswXSApLCBkaXYuZmlyc3RDaGlsZCApOwoJCQkJfQoKCQkJCWVsZW0gPSBkaXYuY2hpbGROb2RlczsKCQkJfQoKCQkJaWYgKCBlbGVtLm5vZGVUeXBlICkgewoJCQkJcmV0LnB1c2goIGVsZW0gKTsKCQkJfSBlbHNlIHsKCQkJCXJldCA9IGpRdWVyeS5tZXJnZSggcmV0LCBlbGVtICk7CgkJCX0KCQl9CgoJCWlmICggZnJhZ21lbnQgKSB7CgkJCWZvciAoIGkgPSAwOyByZXRbaV07IGkrKyApIHsKCQkJCWlmICggc2NyaXB0cyAmJiBqUXVlcnkubm9kZU5hbWUoIHJldFtpXSwgInNjcmlwdCIgKSAmJiAoIXJldFtpXS50eXBlIHx8IHJldFtpXS50eXBlLnRvTG93ZXJDYXNlKCkgPT09ICJ0ZXh0L2phdmFzY3JpcHQiKSApIHsKCQkJCQlzY3JpcHRzLnB1c2goIHJldFtpXS5wYXJlbnROb2RlID8gcmV0W2ldLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoIHJldFtpXSApIDogcmV0W2ldICk7CgoJCQkJfSBlbHNlIHsKCQkJCQlpZiAoIHJldFtpXS5ub2RlVHlwZSA9PT0gMSApIHsKCQkJCQkJcmV0LnNwbGljZS5hcHBseSggcmV0LCBbaSArIDEsIDBdLmNvbmNhdChqUXVlcnkubWFrZUFycmF5KHJldFtpXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IikpKSApOwoJCQkJCX0KCQkJCQlmcmFnbWVudC5hcHBlbmRDaGlsZCggcmV0W2ldICk7CgkJCQl9CgkJCX0KCQl9CgoJCXJldHVybiByZXQ7Cgl9LAoKCWNsZWFuRGF0YTogZnVuY3Rpb24oIGVsZW1zICkgewoJCXZhciBkYXRhLCBpZCwgY2FjaGUgPSBqUXVlcnkuY2FjaGUsIGludGVybmFsS2V5ID0galF1ZXJ5LmV4cGFuZG8sIHNwZWNpYWwgPSBqUXVlcnkuZXZlbnQuc3BlY2lhbCwKCQkJZGVsZXRlRXhwYW5kbyA9IGpRdWVyeS5zdXBwb3J0LmRlbGV0ZUV4cGFuZG87CgoJCWZvciAoIHZhciBpID0gMCwgZWxlbTsgKGVsZW0gPSBlbGVtc1tpXSkgIT0gbnVsbDsgaSsrICkgewoJCQlpZiAoIGVsZW0ubm9kZU5hbWUgJiYgalF1ZXJ5Lm5vRGF0YVtlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldICkgewoJCQkJY29udGludWU7CgkJCX0KCgkJCWlkID0gZWxlbVsgalF1ZXJ5LmV4cGFuZG8gXTsKCgkJCWlmICggaWQgKSB7CgkJCQlkYXRhID0gY2FjaGVbIGlkIF0gJiYgY2FjaGVbIGlkIF1bIGludGVybmFsS2V5IF07CgoJCQkJaWYgKCBkYXRhICYmIGRhdGEuZXZlbnRzICkgewoJCQkJCWZvciAoIHZhciB0eXBlIGluIGRhdGEuZXZlbnRzICkgewoJCQkJCQlpZiAoIHNwZWNpYWxbIHR5cGUgXSApIHsKCQkJCQkJCWpRdWVyeS5ldmVudC5yZW1vdmUoIGVsZW0sIHR5cGUgKTsKCgkJCQkJCS8vIFRoaXMgaXMgYSBzaG9ydGN1dCB0byBhdm9pZCBqUXVlcnkuZXZlbnQucmVtb3ZlJ3Mgb3ZlcmhlYWQKCQkJCQkJfSBlbHNlIHsKCQkJCQkJCWpRdWVyeS5yZW1vdmVFdmVudCggZWxlbSwgdHlwZSwgZGF0YS5oYW5kbGUgKTsKCQkJCQkJfQoJCQkJCX0KCgkJCQkJLy8gTnVsbCB0aGUgRE9NIHJlZmVyZW5jZSB0byBhdm9pZCBJRTYvNy84IGxlYWsgKCM3MDU0KQoJCQkJCWlmICggZGF0YS5oYW5kbGUgKSB7CgkJCQkJCWRhdGEuaGFuZGxlLmVsZW0gPSBudWxsOwoJCQkJCX0KCQkJCX0KCgkJCQlpZiAoIGRlbGV0ZUV4cGFuZG8gKSB7CgkJCQkJZGVsZXRlIGVsZW1bIGpRdWVyeS5leHBhbmRvIF07CgoJCQkJfSBlbHNlIGlmICggZWxlbS5yZW1vdmVBdHRyaWJ1dGUgKSB7CgkJCQkJZWxlbS5yZW1vdmVBdHRyaWJ1dGUoIGpRdWVyeS5leHBhbmRvICk7CgkJCQl9CgoJCQkJZGVsZXRlIGNhY2hlWyBpZCBdOwoJCQl9CgkJfQoJfQp9KTsKCmZ1bmN0aW9uIGV2YWxTY3JpcHQoIGksIGVsZW0gKSB7CglpZiAoIGVsZW0uc3JjICkgewoJCWpRdWVyeS5hamF4KHsKCQkJdXJsOiBlbGVtLnNyYywKCQkJYXN5bmM6IGZhbHNlLAoJCQlkYXRhVHlwZTogInNjcmlwdCIKCQl9KTsKCX0gZWxzZSB7CgkJalF1ZXJ5Lmdsb2JhbEV2YWwoIGVsZW0udGV4dCB8fCBlbGVtLnRleHRDb250ZW50IHx8IGVsZW0uaW5uZXJIVE1MIHx8ICIiICk7Cgl9CgoJaWYgKCBlbGVtLnBhcmVudE5vZGUgKSB7CgkJZWxlbS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKCBlbGVtICk7Cgl9Cn0KCgoKCnZhciByYWxwaGEgPSAvYWxwaGFcKFteKV0qXCkvaSwKCXJvcGFjaXR5ID0gL29wYWNpdHk9KFteKV0qKS8sCglyZGFzaEFscGhhID0gLy0oW2Etel0pL2lnLAoJcnVwcGVyID0gLyhbQS1aXSkvZywKCXJudW1weCA9IC9eLT9cZCsoPzpweCk/JC9pLAoJcm51bSA9IC9eLT9cZC8sCgoJY3NzU2hvdyA9IHsgcG9zaXRpb246ICJhYnNvbHV0ZSIsIHZpc2liaWxpdHk6ICJoaWRkZW4iLCBkaXNwbGF5OiAiYmxvY2siIH0sCgljc3NXaWR0aCA9IFsgIkxlZnQiLCAiUmlnaHQiIF0sCgljc3NIZWlnaHQgPSBbICJUb3AiLCAiQm90dG9tIiBdLAoJY3VyQ1NTLAoKCWdldENvbXB1dGVkU3R5bGUsCgljdXJyZW50U3R5bGUsCgoJZmNhbWVsQ2FzZSA9IGZ1bmN0aW9uKCBhbGwsIGxldHRlciApIHsKCQlyZXR1cm4gbGV0dGVyLnRvVXBwZXJDYXNlKCk7Cgl9OwoKalF1ZXJ5LmZuLmNzcyA9IGZ1bmN0aW9uKCBuYW1lLCB2YWx1ZSApIHsKCS8vIFNldHRpbmcgJ3VuZGVmaW5lZCcgaXMgYSBuby1vcAoJaWYgKCBhcmd1bWVudHMubGVuZ3RoID09PSAyICYmIHZhbHVlID09PSB1bmRlZmluZWQgKSB7CgkJcmV0dXJuIHRoaXM7Cgl9CgoJcmV0dXJuIGpRdWVyeS5hY2Nlc3MoIHRoaXMsIG5hbWUsIHZhbHVlLCB0cnVlLCBmdW5jdGlvbiggZWxlbSwgbmFtZSwgdmFsdWUgKSB7CgkJcmV0dXJuIHZhbHVlICE9PSB1bmRlZmluZWQgPwoJCQlqUXVlcnkuc3R5bGUoIGVsZW0sIG5hbWUsIHZhbHVlICkgOgoJCQlqUXVlcnkuY3NzKCBlbGVtLCBuYW1lICk7Cgl9KTsKfTsKCmpRdWVyeS5leHRlbmQoewoJLy8gQWRkIGluIHN0eWxlIHByb3BlcnR5IGhvb2tzIGZvciBvdmVycmlkaW5nIHRoZSBkZWZhdWx0CgkvLyBiZWhhdmlvciBvZiBnZXR0aW5nIGFuZCBzZXR0aW5nIGEgc3R5bGUgcHJvcGVydHkKCWNzc0hvb2tzOiB7CgkJb3BhY2l0eTogewoJCQlnZXQ6IGZ1bmN0aW9uKCBlbGVtLCBjb21wdXRlZCApIHsKCQkJCWlmICggY29tcHV0ZWQgKSB7CgkJCQkJLy8gV2Ugc2hvdWxkIGFsd2F5cyBnZXQgYSBudW1iZXIgYmFjayBmcm9tIG9wYWNpdHkKCQkJCQl2YXIgcmV0ID0gY3VyQ1NTKCBlbGVtLCAib3BhY2l0eSIsICJvcGFjaXR5IiApOwoJCQkJCXJldHVybiByZXQgPT09ICIiID8gIjEiIDogcmV0OwoKCQkJCX0gZWxzZSB7CgkJCQkJcmV0dXJuIGVsZW0uc3R5bGUub3BhY2l0eTsKCQkJCX0KCQkJfQoJCX0KCX0sCgoJLy8gRXhjbHVkZSB0aGUgZm9sbG93aW5nIGNzcyBwcm9wZXJ0aWVzIHRvIGFkZCBweAoJY3NzTnVtYmVyOiB7CgkJInpJbmRleCI6IHRydWUsCgkJImZvbnRXZWlnaHQiOiB0cnVlLAoJCSJvcGFjaXR5IjogdHJ1ZSwKCQkiem9vbSI6IHRydWUsCgkJImxpbmVIZWlnaHQiOiB0cnVlCgl9LAoKCS8vIEFkZCBpbiBwcm9wZXJ0aWVzIHdob3NlIG5hbWVzIHlvdSB3aXNoIHRvIGZpeCBiZWZvcmUKCS8vIHNldHRpbmcgb3IgZ2V0dGluZyB0aGUgdmFsdWUKCWNzc1Byb3BzOiB7CgkJLy8gbm9ybWFsaXplIGZsb2F0IGNzcyBwcm9wZXJ0eQoJCSJmbG9hdCI6IGpRdWVyeS5zdXBwb3J0LmNzc0Zsb2F0ID8gImNzc0Zsb2F0IiA6ICJzdHlsZUZsb2F0IgoJfSwKCgkvLyBHZXQgYW5kIHNldCB0aGUgc3R5bGUgcHJvcGVydHkgb24gYSBET00gTm9kZQoJc3R5bGU6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCB2YWx1ZSwgZXh0cmEgKSB7CgkJLy8gRG9uJ3Qgc2V0IHN0eWxlcyBvbiB0ZXh0IGFuZCBjb21tZW50IG5vZGVzCgkJaWYgKCAhZWxlbSB8fCBlbGVtLm5vZGVUeXBlID09PSAzIHx8IGVsZW0ubm9kZVR5cGUgPT09IDggfHwgIWVsZW0uc3R5bGUgKSB7CgkJCXJldHVybjsKCQl9CgoJCS8vIE1ha2Ugc3VyZSB0aGF0IHdlJ3JlIHdvcmtpbmcgd2l0aCB0aGUgcmlnaHQgbmFtZQoJCXZhciByZXQsIG9yaWdOYW1lID0galF1ZXJ5LmNhbWVsQ2FzZSggbmFtZSApLAoJCQlzdHlsZSA9IGVsZW0uc3R5bGUsIGhvb2tzID0galF1ZXJ5LmNzc0hvb2tzWyBvcmlnTmFtZSBdOwoKCQluYW1lID0galF1ZXJ5LmNzc1Byb3BzWyBvcmlnTmFtZSBdIHx8IG9yaWdOYW1lOwoKCQkvLyBDaGVjayBpZiB3ZSdyZSBzZXR0aW5nIGEgdmFsdWUKCQlpZiAoIHZhbHVlICE9PSB1bmRlZmluZWQgKSB7CgkJCS8vIE1ha2Ugc3VyZSB0aGF0IE5hTiBhbmQgbnVsbCB2YWx1ZXMgYXJlbid0IHNldC4gU2VlOiAjNzExNgoJCQlpZiAoIHR5cGVvZiB2YWx1ZSA9PT0gIm51bWJlciIgJiYgaXNOYU4oIHZhbHVlICkgfHwgdmFsdWUgPT0gbnVsbCApIHsKCQkJCXJldHVybjsKCQkJfQoKCQkJLy8gSWYgYSBudW1iZXIgd2FzIHBhc3NlZCBpbiwgYWRkICdweCcgdG8gdGhlIChleGNlcHQgZm9yIGNlcnRhaW4gQ1NTIHByb3BlcnRpZXMpCgkJCWlmICggdHlwZW9mIHZhbHVlID09PSAibnVtYmVyIiAmJiAhalF1ZXJ5LmNzc051bWJlclsgb3JpZ05hbWUgXSApIHsKCQkJCXZhbHVlICs9ICJweCI7CgkJCX0KCgkJCS8vIElmIGEgaG9vayB3YXMgcHJvdmlkZWQsIHVzZSB0aGF0IHZhbHVlLCBvdGhlcndpc2UganVzdCBzZXQgdGhlIHNwZWNpZmllZCB2YWx1ZQoJCQlpZiAoICFob29rcyB8fCAhKCJzZXQiIGluIGhvb2tzKSB8fCAodmFsdWUgPSBob29rcy5zZXQoIGVsZW0sIHZhbHVlICkpICE9PSB1bmRlZmluZWQgKSB7CgkJCQkvLyBXcmFwcGVkIHRvIHByZXZlbnQgSUUgZnJvbSB0aHJvd2luZyBlcnJvcnMgd2hlbiAnaW52YWxpZCcgdmFsdWVzIGFyZSBwcm92aWRlZAoJCQkJLy8gRml4ZXMgYnVnICM1NTA5CgkJCQl0cnkgewoJCQkJCXN0eWxlWyBuYW1lIF0gPSB2YWx1ZTsKCQkJCX0gY2F0Y2goZSkge30KCQkJfQoKCQl9IGVsc2UgewoJCQkvLyBJZiBhIGhvb2sgd2FzIHByb3ZpZGVkIGdldCB0aGUgbm9uLWNvbXB1dGVkIHZhbHVlIGZyb20gdGhlcmUKCQkJaWYgKCBob29rcyAmJiAiZ2V0IiBpbiBob29rcyAmJiAocmV0ID0gaG9va3MuZ2V0KCBlbGVtLCBmYWxzZSwgZXh0cmEgKSkgIT09IHVuZGVmaW5lZCApIHsKCQkJCXJldHVybiByZXQ7CgkJCX0KCgkJCS8vIE90aGVyd2lzZSBqdXN0IGdldCB0aGUgdmFsdWUgZnJvbSB0aGUgc3R5bGUgb2JqZWN0CgkJCXJldHVybiBzdHlsZVsgbmFtZSBdOwoJCX0KCX0sCgoJY3NzOiBmdW5jdGlvbiggZWxlbSwgbmFtZSwgZXh0cmEgKSB7CgkJLy8gTWFrZSBzdXJlIHRoYXQgd2UncmUgd29ya2luZyB3aXRoIHRoZSByaWdodCBuYW1lCgkJdmFyIHJldCwgb3JpZ05hbWUgPSBqUXVlcnkuY2FtZWxDYXNlKCBuYW1lICksCgkJCWhvb2tzID0galF1ZXJ5LmNzc0hvb2tzWyBvcmlnTmFtZSBdOwoKCQluYW1lID0galF1ZXJ5LmNzc1Byb3BzWyBvcmlnTmFtZSBdIHx8IG9yaWdOYW1lOwoKCQkvLyBJZiBhIGhvb2sgd2FzIHByb3ZpZGVkIGdldCB0aGUgY29tcHV0ZWQgdmFsdWUgZnJvbSB0aGVyZQoJCWlmICggaG9va3MgJiYgImdldCIgaW4gaG9va3MgJiYgKHJldCA9IGhvb2tzLmdldCggZWxlbSwgdHJ1ZSwgZXh0cmEgKSkgIT09IHVuZGVmaW5lZCApIHsKCQkJcmV0dXJuIHJldDsKCgkJLy8gT3RoZXJ3aXNlLCBpZiBhIHdheSB0byBnZXQgdGhlIGNvbXB1dGVkIHZhbHVlIGV4aXN0cywgdXNlIHRoYXQKCQl9IGVsc2UgaWYgKCBjdXJDU1MgKSB7CgkJCXJldHVybiBjdXJDU1MoIGVsZW0sIG5hbWUsIG9yaWdOYW1lICk7CgkJfQoJfSwKCgkvLyBBIG1ldGhvZCBmb3IgcXVpY2tseSBzd2FwcGluZyBpbi9vdXQgQ1NTIHByb3BlcnRpZXMgdG8gZ2V0IGNvcnJlY3QgY2FsY3VsYXRpb25zCglzd2FwOiBmdW5jdGlvbiggZWxlbSwgb3B0aW9ucywgY2FsbGJhY2sgKSB7CgkJdmFyIG9sZCA9IHt9OwoKCQkvLyBSZW1lbWJlciB0aGUgb2xkIHZhbHVlcywgYW5kIGluc2VydCB0aGUgbmV3IG9uZXMKCQlmb3IgKCB2YXIgbmFtZSBpbiBvcHRpb25zICkgewoJCQlvbGRbIG5hbWUgXSA9IGVsZW0uc3R5bGVbIG5hbWUgXTsKCQkJZWxlbS5zdHlsZVsgbmFtZSBdID0gb3B0aW9uc1sgbmFtZSBdOwoJCX0KCgkJY2FsbGJhY2suY2FsbCggZWxlbSApOwoKCQkvLyBSZXZlcnQgdGhlIG9sZCB2YWx1ZXMKCQlmb3IgKCBuYW1lIGluIG9wdGlvbnMgKSB7CgkJCWVsZW0uc3R5bGVbIG5hbWUgXSA9IG9sZFsgbmFtZSBdOwoJCX0KCX0sCgoJY2FtZWxDYXNlOiBmdW5jdGlvbiggc3RyaW5nICkgewoJCXJldHVybiBzdHJpbmcucmVwbGFjZSggcmRhc2hBbHBoYSwgZmNhbWVsQ2FzZSApOwoJfQp9KTsKCi8vIERFUFJFQ0FURUQsIFVzZSBqUXVlcnkuY3NzKCkgaW5zdGVhZApqUXVlcnkuY3VyQ1NTID0galF1ZXJ5LmNzczsKCmpRdWVyeS5lYWNoKFsiaGVpZ2h0IiwgIndpZHRoIl0sIGZ1bmN0aW9uKCBpLCBuYW1lICkgewoJalF1ZXJ5LmNzc0hvb2tzWyBuYW1lIF0gPSB7CgkJZ2V0OiBmdW5jdGlvbiggZWxlbSwgY29tcHV0ZWQsIGV4dHJhICkgewoJCQl2YXIgdmFsOwoKCQkJaWYgKCBjb21wdXRlZCApIHsKCQkJCWlmICggZWxlbS5vZmZzZXRXaWR0aCAhPT0gMCApIHsKCQkJCQl2YWwgPSBnZXRXSCggZWxlbSwgbmFtZSwgZXh0cmEgKTsKCgkJCQl9IGVsc2UgewoJCQkJCWpRdWVyeS5zd2FwKCBlbGVtLCBjc3NTaG93LCBmdW5jdGlvbigpIHsKCQkJCQkJdmFsID0gZ2V0V0goIGVsZW0sIG5hbWUsIGV4dHJhICk7CgkJCQkJfSk7CgkJCQl9CgoJCQkJaWYgKCB2YWwgPD0gMCApIHsKCQkJCQl2YWwgPSBjdXJDU1MoIGVsZW0sIG5hbWUsIG5hbWUgKTsKCgkJCQkJaWYgKCB2YWwgPT09ICIwcHgiICYmIGN1cnJlbnRTdHlsZSApIHsKCQkJCQkJdmFsID0gY3VycmVudFN0eWxlKCBlbGVtLCBuYW1lLCBuYW1lICk7CgkJCQkJfQoKCQkJCQlpZiAoIHZhbCAhPSBudWxsICkgewoJCQkJCQkvLyBTaG91bGQgcmV0dXJuICJhdXRvIiBpbnN0ZWFkIG9mIDAsIHVzZSAwIGZvcgoJCQkJCQkvLyB0ZW1wb3JhcnkgYmFja3dhcmRzLWNvbXBhdAoJCQkJCQlyZXR1cm4gdmFsID09PSAiIiB8fCB2YWwgPT09ICJhdXRvIiA/ICIwcHgiIDogdmFsOwoJCQkJCX0KCQkJCX0KCgkJCQlpZiAoIHZhbCA8IDAgfHwgdmFsID09IG51bGwgKSB7CgkJCQkJdmFsID0gZWxlbS5zdHlsZVsgbmFtZSBdOwoKCQkJCQkvLyBTaG91bGQgcmV0dXJuICJhdXRvIiBpbnN0ZWFkIG9mIDAsIHVzZSAwIGZvcgoJCQkJCS8vIHRlbXBvcmFyeSBiYWNrd2FyZHMtY29tcGF0CgkJCQkJcmV0dXJuIHZhbCA9PT0gIiIgfHwgdmFsID09PSAiYXV0byIgPyAiMHB4IiA6IHZhbDsKCQkJCX0KCgkJCQlyZXR1cm4gdHlwZW9mIHZhbCA9PT0gInN0cmluZyIgPyB2YWwgOiB2YWwgKyAicHgiOwoJCQl9CgkJfSwKCgkJc2V0OiBmdW5jdGlvbiggZWxlbSwgdmFsdWUgKSB7CgkJCWlmICggcm51bXB4LnRlc3QoIHZhbHVlICkgKSB7CgkJCQkvLyBpZ25vcmUgbmVnYXRpdmUgd2lkdGggYW5kIGhlaWdodCB2YWx1ZXMgIzE1OTkKCQkJCXZhbHVlID0gcGFyc2VGbG9hdCh2YWx1ZSk7CgoJCQkJaWYgKCB2YWx1ZSA+PSAwICkgewoJCQkJCXJldHVybiB2YWx1ZSArICJweCI7CgkJCQl9CgoJCQl9IGVsc2UgewoJCQkJcmV0dXJuIHZhbHVlOwoJCQl9CgkJfQoJfTsKfSk7CgppZiAoICFqUXVlcnkuc3VwcG9ydC5vcGFjaXR5ICkgewoJalF1ZXJ5LmNzc0hvb2tzLm9wYWNpdHkgPSB7CgkJZ2V0OiBmdW5jdGlvbiggZWxlbSwgY29tcHV0ZWQgKSB7CgkJCS8vIElFIHVzZXMgZmlsdGVycyBmb3Igb3BhY2l0eQoJCQlyZXR1cm4gcm9wYWNpdHkudGVzdCgoY29tcHV0ZWQgJiYgZWxlbS5jdXJyZW50U3R5bGUgPyBlbGVtLmN1cnJlbnRTdHlsZS5maWx0ZXIgOiBlbGVtLnN0eWxlLmZpbHRlcikgfHwgIiIpID8KCQkJCShwYXJzZUZsb2F0KFJlZ0V4cC4kMSkgLyAxMDApICsgIiIgOgoJCQkJY29tcHV0ZWQgPyAiMSIgOiAiIjsKCQl9LAoKCQlzZXQ6IGZ1bmN0aW9uKCBlbGVtLCB2YWx1ZSApIHsKCQkJdmFyIHN0eWxlID0gZWxlbS5zdHlsZTsKCgkJCS8vIElFIGhhcyB0cm91YmxlIHdpdGggb3BhY2l0eSBpZiBpdCBkb2VzIG5vdCBoYXZlIGxheW91dAoJCQkvLyBGb3JjZSBpdCBieSBzZXR0aW5nIHRoZSB6b29tIGxldmVsCgkJCXN0eWxlLnpvb20gPSAxOwoKCQkJLy8gU2V0IHRoZSBhbHBoYSBmaWx0ZXIgdG8gc2V0IHRoZSBvcGFjaXR5CgkJCXZhciBvcGFjaXR5ID0galF1ZXJ5LmlzTmFOKHZhbHVlKSA/CgkJCQkiIiA6CgkJCQkiYWxwaGEob3BhY2l0eT0iICsgdmFsdWUgKiAxMDAgKyAiKSIsCgkJCQlmaWx0ZXIgPSBzdHlsZS5maWx0ZXIgfHwgIiI7CgoJCQlzdHlsZS5maWx0ZXIgPSByYWxwaGEudGVzdChmaWx0ZXIpID8KCQkJCWZpbHRlci5yZXBsYWNlKHJhbHBoYSwgb3BhY2l0eSkgOgoJCQkJc3R5bGUuZmlsdGVyICsgJyAnICsgb3BhY2l0eTsKCQl9Cgl9Owp9CgppZiAoIGRvY3VtZW50LmRlZmF1bHRWaWV3ICYmIGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUgKSB7CglnZXRDb21wdXRlZFN0eWxlID0gZnVuY3Rpb24oIGVsZW0sIG5ld05hbWUsIG5hbWUgKSB7CgkJdmFyIHJldCwgZGVmYXVsdFZpZXcsIGNvbXB1dGVkU3R5bGU7CgoJCW5hbWUgPSBuYW1lLnJlcGxhY2UoIHJ1cHBlciwgIi0kMSIgKS50b0xvd2VyQ2FzZSgpOwoKCQlpZiAoICEoZGVmYXVsdFZpZXcgPSBlbGVtLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcpICkgewoJCQlyZXR1cm4gdW5kZWZpbmVkOwoJCX0KCgkJaWYgKCAoY29tcHV0ZWRTdHlsZSA9IGRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoIGVsZW0sIG51bGwgKSkgKSB7CgkJCXJldCA9IGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSggbmFtZSApOwoJCQlpZiAoIHJldCA9PT0gIiIgJiYgIWpRdWVyeS5jb250YWlucyggZWxlbS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgZWxlbSApICkgewoJCQkJcmV0ID0galF1ZXJ5LnN0eWxlKCBlbGVtLCBuYW1lICk7CgkJCX0KCQl9CgoJCXJldHVybiByZXQ7Cgl9Owp9CgppZiAoIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jdXJyZW50U3R5bGUgKSB7CgljdXJyZW50U3R5bGUgPSBmdW5jdGlvbiggZWxlbSwgbmFtZSApIHsKCQl2YXIgbGVmdCwKCQkJcmV0ID0gZWxlbS5jdXJyZW50U3R5bGUgJiYgZWxlbS5jdXJyZW50U3R5bGVbIG5hbWUgXSwKCQkJcnNMZWZ0ID0gZWxlbS5ydW50aW1lU3R5bGUgJiYgZWxlbS5ydW50aW1lU3R5bGVbIG5hbWUgXSwKCQkJc3R5bGUgPSBlbGVtLnN0eWxlOwoKCQkvLyBGcm9tIHRoZSBhd2Vzb21lIGhhY2sgYnkgRGVhbiBFZHdhcmRzCgkJLy8gaHR0cDovL2VyaWsuZWFlLm5ldC9hcmNoaXZlcy8yMDA3LzA3LzI3LzE4LjU0LjE1LyNjb21tZW50LTEwMjI5MQoKCQkvLyBJZiB3ZSdyZSBub3QgZGVhbGluZyB3aXRoIGEgcmVndWxhciBwaXhlbCBudW1iZXIKCQkvLyBidXQgYSBudW1iZXIgdGhhdCBoYXMgYSB3ZWlyZCBlbmRpbmcsIHdlIG5lZWQgdG8gY29udmVydCBpdCB0byBwaXhlbHMKCQlpZiAoICFybnVtcHgudGVzdCggcmV0ICkgJiYgcm51bS50ZXN0KCByZXQgKSApIHsKCQkJLy8gUmVtZW1iZXIgdGhlIG9yaWdpbmFsIHZhbHVlcwoJCQlsZWZ0ID0gc3R5bGUubGVmdDsKCgkJCS8vIFB1dCBpbiB0aGUgbmV3IHZhbHVlcyB0byBnZXQgYSBjb21wdXRlZCB2YWx1ZSBvdXQKCQkJaWYgKCByc0xlZnQgKSB7CgkJCQllbGVtLnJ1bnRpbWVTdHlsZS5sZWZ0ID0gZWxlbS5jdXJyZW50U3R5bGUubGVmdDsKCQkJfQoJCQlzdHlsZS5sZWZ0ID0gbmFtZSA9PT0gImZvbnRTaXplIiA/ICIxZW0iIDogKHJldCB8fCAwKTsKCQkJcmV0ID0gc3R5bGUucGl4ZWxMZWZ0ICsgInB4IjsKCgkJCS8vIFJldmVydCB0aGUgY2hhbmdlZCB2YWx1ZXMKCQkJc3R5bGUubGVmdCA9IGxlZnQ7CgkJCWlmICggcnNMZWZ0ICkgewoJCQkJZWxlbS5ydW50aW1lU3R5bGUubGVmdCA9IHJzTGVmdDsKCQkJfQoJCX0KCgkJcmV0dXJuIHJldCA9PT0gIiIgPyAiYXV0byIgOiByZXQ7Cgl9Owp9CgpjdXJDU1MgPSBnZXRDb21wdXRlZFN0eWxlIHx8IGN1cnJlbnRTdHlsZTsKCmZ1bmN0aW9uIGdldFdIKCBlbGVtLCBuYW1lLCBleHRyYSApIHsKCXZhciB3aGljaCA9IG5hbWUgPT09ICJ3aWR0aCIgPyBjc3NXaWR0aCA6IGNzc0hlaWdodCwKCQl2YWwgPSBuYW1lID09PSAid2lkdGgiID8gZWxlbS5vZmZzZXRXaWR0aCA6IGVsZW0ub2Zmc2V0SGVpZ2h0OwoKCWlmICggZXh0cmEgPT09ICJib3JkZXIiICkgewoJCXJldHVybiB2YWw7Cgl9CgoJalF1ZXJ5LmVhY2goIHdoaWNoLCBmdW5jdGlvbigpIHsKCQlpZiAoICFleHRyYSApIHsKCQkJdmFsIC09IHBhcnNlRmxvYXQoalF1ZXJ5LmNzcyggZWxlbSwgInBhZGRpbmciICsgdGhpcyApKSB8fCAwOwoJCX0KCgkJaWYgKCBleHRyYSA9PT0gIm1hcmdpbiIgKSB7CgkJCXZhbCArPSBwYXJzZUZsb2F0KGpRdWVyeS5jc3MoIGVsZW0sICJtYXJnaW4iICsgdGhpcyApKSB8fCAwOwoKCQl9IGVsc2UgewoJCQl2YWwgLT0gcGFyc2VGbG9hdChqUXVlcnkuY3NzKCBlbGVtLCAiYm9yZGVyIiArIHRoaXMgKyAiV2lkdGgiICkpIHx8IDA7CgkJfQoJfSk7CgoJcmV0dXJuIHZhbDsKfQoKaWYgKCBqUXVlcnkuZXhwciAmJiBqUXVlcnkuZXhwci5maWx0ZXJzICkgewoJalF1ZXJ5LmV4cHIuZmlsdGVycy5oaWRkZW4gPSBmdW5jdGlvbiggZWxlbSApIHsKCQl2YXIgd2lkdGggPSBlbGVtLm9mZnNldFdpZHRoLAoJCQloZWlnaHQgPSBlbGVtLm9mZnNldEhlaWdodDsKCgkJcmV0dXJuICh3aWR0aCA9PT0gMCAmJiBoZWlnaHQgPT09IDApIHx8ICghalF1ZXJ5LnN1cHBvcnQucmVsaWFibGVIaWRkZW5PZmZzZXRzICYmIChlbGVtLnN0eWxlLmRpc3BsYXkgfHwgalF1ZXJ5LmNzcyggZWxlbSwgImRpc3BsYXkiICkpID09PSAibm9uZSIpOwoJfTsKCglqUXVlcnkuZXhwci5maWx0ZXJzLnZpc2libGUgPSBmdW5jdGlvbiggZWxlbSApIHsKCQlyZXR1cm4gIWpRdWVyeS5leHByLmZpbHRlcnMuaGlkZGVuKCBlbGVtICk7Cgl9Owp9CgoKCgp2YXIgcjIwID0gLyUyMC9nLAoJcmJyYWNrZXQgPSAvXFtcXSQvLAoJckNSTEYgPSAvXHI/XG4vZywKCXJoYXNoID0gLyMuKiQvLAoJcmhlYWRlcnMgPSAvXiguKj8pOlsgXHRdKihbXlxyXG5dKilccj8kL21nLCAvLyBJRSBsZWF2ZXMgYW4gXHIgY2hhcmFjdGVyIGF0IEVPTAoJcmlucHV0ID0gL14oPzpjb2xvcnxkYXRlfGRhdGV0aW1lfGVtYWlsfGhpZGRlbnxtb250aHxudW1iZXJ8cGFzc3dvcmR8cmFuZ2V8c2VhcmNofHRlbHx0ZXh0fHRpbWV8dXJsfHdlZWspJC9pLAoJLy8gIzc2NTMsICM4MTI1LCAjODE1MjogbG9jYWwgcHJvdG9jb2wgZGV0ZWN0aW9uCglybG9jYWxQcm90b2NvbCA9IC8oPzpeZmlsZXxed2lkZ2V0fFwtZXh0ZW5zaW9uKTokLywKCXJub0NvbnRlbnQgPSAvXig/OkdFVHxIRUFEKSQvLAoJcnByb3RvY29sID0gL15cL1wvLywKCXJxdWVyeSA9IC9cPy8sCglyc2NyaXB0ID0gLzxzY3JpcHRcYltePF0qKD86KD8hPFwvc2NyaXB0Pik8W148XSopKjxcL3NjcmlwdD4vZ2ksCglyc2VsZWN0VGV4dGFyZWEgPSAvXig/OnNlbGVjdHx0ZXh0YXJlYSkvaSwKCXJzcGFjZXNBamF4ID0gL1xzKy8sCglydHMgPSAvKFs/Jl0pXz1bXiZdKi8sCglydWNIZWFkZXJzID0gLyhefFwtKShbYS16XSkvZywKCXJ1Y0hlYWRlcnNGdW5jID0gZnVuY3Rpb24oIF8sICQxLCAkMiApIHsKCQlyZXR1cm4gJDEgKyAkMi50b1VwcGVyQ2FzZSgpOwoJfSwKCXJ1cmwgPSAvXihbXHdcK1wuXC1dKzopXC9cLyhbXlwvPyM6XSopKD86OihcZCspKT8vLAoKCS8vIEtlZXAgYSBjb3B5IG9mIHRoZSBvbGQgbG9hZCBtZXRob2QKCV9sb2FkID0galF1ZXJ5LmZuLmxvYWQsCgoJLyogUHJlZmlsdGVycwoJICogMSkgVGhleSBhcmUgdXNlZnVsIHRvIGludHJvZHVjZSBjdXN0b20gZGF0YVR5cGVzIChzZWUgYWpheC9qc29ucC5qcyBmb3IgYW4gZXhhbXBsZSkKCSAqIDIpIFRoZXNlIGFyZSBjYWxsZWQ6CgkgKiAgICAtIEJFRk9SRSBhc2tpbmcgZm9yIGEgdHJhbnNwb3J0CgkgKiAgICAtIEFGVEVSIHBhcmFtIHNlcmlhbGl6YXRpb24gKHMuZGF0YSBpcyBhIHN0cmluZyBpZiBzLnByb2Nlc3NEYXRhIGlzIHRydWUpCgkgKiAzKSBrZXkgaXMgdGhlIGRhdGFUeXBlCgkgKiA0KSB0aGUgY2F0Y2hhbGwgc3ltYm9sICIqIiBjYW4gYmUgdXNlZAoJICogNSkgZXhlY3V0aW9uIHdpbGwgc3RhcnQgd2l0aCB0cmFuc3BvcnQgZGF0YVR5cGUgYW5kIFRIRU4gY29udGludWUgZG93biB0byAiKiIgaWYgbmVlZGVkCgkgKi8KCXByZWZpbHRlcnMgPSB7fSwKCgkvKiBUcmFuc3BvcnRzIGJpbmRpbmdzCgkgKiAxKSBrZXkgaXMgdGhlIGRhdGFUeXBlCgkgKiAyKSB0aGUgY2F0Y2hhbGwgc3ltYm9sICIqIiBjYW4gYmUgdXNlZAoJICogMykgc2VsZWN0aW9uIHdpbGwgc3RhcnQgd2l0aCB0cmFuc3BvcnQgZGF0YVR5cGUgYW5kIFRIRU4gZ28gdG8gIioiIGlmIG5lZWRlZAoJICovCgl0cmFuc3BvcnRzID0ge30sCgoJLy8gRG9jdW1lbnQgbG9jYXRpb24KCWFqYXhMb2NhdGlvbiwKCgkvLyBEb2N1bWVudCBsb2NhdGlvbiBzZWdtZW50cwoJYWpheExvY1BhcnRzOwoKLy8gIzgxMzgsIElFIG1heSB0aHJvdyBhbiBleGNlcHRpb24gd2hlbiBhY2Nlc3NpbmcKLy8gYSBmaWVsZCBmcm9tIGRvY3VtZW50LmxvY2F0aW9uIGlmIGRvY3VtZW50LmRvbWFpbiBoYXMgYmVlbiBzZXQKdHJ5IHsKCWFqYXhMb2NhdGlvbiA9IGRvY3VtZW50LmxvY2F0aW9uLmhyZWY7Cn0gY2F0Y2goIGUgKSB7CgkvLyBVc2UgdGhlIGhyZWYgYXR0cmlidXRlIG9mIGFuIEEgZWxlbWVudAoJLy8gc2luY2UgSUUgd2lsbCBtb2RpZnkgaXQgZ2l2ZW4gZG9jdW1lbnQubG9jYXRpb24KCWFqYXhMb2NhdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICJhIiApOwoJYWpheExvY2F0aW9uLmhyZWYgPSAiIjsKCWFqYXhMb2NhdGlvbiA9IGFqYXhMb2NhdGlvbi5ocmVmOwp9CgovLyBTZWdtZW50IGxvY2F0aW9uIGludG8gcGFydHMKYWpheExvY1BhcnRzID0gcnVybC5leGVjKCBhamF4TG9jYXRpb24udG9Mb3dlckNhc2UoKSApOwoKLy8gQmFzZSAiY29uc3RydWN0b3IiIGZvciBqUXVlcnkuYWpheFByZWZpbHRlciBhbmQgalF1ZXJ5LmFqYXhUcmFuc3BvcnQKZnVuY3Rpb24gYWRkVG9QcmVmaWx0ZXJzT3JUcmFuc3BvcnRzKCBzdHJ1Y3R1cmUgKSB7CgoJLy8gZGF0YVR5cGVFeHByZXNzaW9uIGlzIG9wdGlvbmFsIGFuZCBkZWZhdWx0cyB0byAiKiIKCXJldHVybiBmdW5jdGlvbiggZGF0YVR5cGVFeHByZXNzaW9uLCBmdW5jICkgewoKCQlpZiAoIHR5cGVvZiBkYXRhVHlwZUV4cHJlc3Npb24gIT09ICJzdHJpbmciICkgewoJCQlmdW5jID0gZGF0YVR5cGVFeHByZXNzaW9uOwoJCQlkYXRhVHlwZUV4cHJlc3Npb24gPSAiKiI7CgkJfQoKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCBmdW5jICkgKSB7CgkJCXZhciBkYXRhVHlwZXMgPSBkYXRhVHlwZUV4cHJlc3Npb24udG9Mb3dlckNhc2UoKS5zcGxpdCggcnNwYWNlc0FqYXggKSwKCQkJCWkgPSAwLAoJCQkJbGVuZ3RoID0gZGF0YVR5cGVzLmxlbmd0aCwKCQkJCWRhdGFUeXBlLAoJCQkJbGlzdCwKCQkJCXBsYWNlQmVmb3JlOwoKCQkJLy8gRm9yIGVhY2ggZGF0YVR5cGUgaW4gdGhlIGRhdGFUeXBlRXhwcmVzc2lvbgoJCQlmb3IoOyBpIDwgbGVuZ3RoOyBpKysgKSB7CgkJCQlkYXRhVHlwZSA9IGRhdGFUeXBlc1sgaSBdOwoJCQkJLy8gV2UgY29udHJvbCBpZiB3ZSdyZSBhc2tlZCB0byBhZGQgYmVmb3JlCgkJCQkvLyBhbnkgZXhpc3RpbmcgZWxlbWVudAoJCQkJcGxhY2VCZWZvcmUgPSAvXlwrLy50ZXN0KCBkYXRhVHlwZSApOwoJCQkJaWYgKCBwbGFjZUJlZm9yZSApIHsKCQkJCQlkYXRhVHlwZSA9IGRhdGFUeXBlLnN1YnN0ciggMSApIHx8ICIqIjsKCQkJCX0KCQkJCWxpc3QgPSBzdHJ1Y3R1cmVbIGRhdGFUeXBlIF0gPSBzdHJ1Y3R1cmVbIGRhdGFUeXBlIF0gfHwgW107CgkJCQkvLyB0aGVuIHdlIGFkZCB0byB0aGUgc3RydWN0dXJlIGFjY29yZGluZ2x5CgkJCQlsaXN0WyBwbGFjZUJlZm9yZSA/ICJ1bnNoaWZ0IiA6ICJwdXNoIiBdKCBmdW5jICk7CgkJCX0KCQl9Cgl9Owp9CgovL0Jhc2UgaW5zcGVjdGlvbiBmdW5jdGlvbiBmb3IgcHJlZmlsdGVycyBhbmQgdHJhbnNwb3J0cwpmdW5jdGlvbiBpbnNwZWN0UHJlZmlsdGVyc09yVHJhbnNwb3J0cyggc3RydWN0dXJlLCBvcHRpb25zLCBvcmlnaW5hbE9wdGlvbnMsIGpxWEhSLAoJCWRhdGFUeXBlIC8qIGludGVybmFsICovLCBpbnNwZWN0ZWQgLyogaW50ZXJuYWwgKi8gKSB7CgoJZGF0YVR5cGUgPSBkYXRhVHlwZSB8fCBvcHRpb25zLmRhdGFUeXBlc1sgMCBdOwoJaW5zcGVjdGVkID0gaW5zcGVjdGVkIHx8IHt9OwoKCWluc3BlY3RlZFsgZGF0YVR5cGUgXSA9IHRydWU7CgoJdmFyIGxpc3QgPSBzdHJ1Y3R1cmVbIGRhdGFUeXBlIF0sCgkJaSA9IDAsCgkJbGVuZ3RoID0gbGlzdCA/IGxpc3QubGVuZ3RoIDogMCwKCQlleGVjdXRlT25seSA9ICggc3RydWN0dXJlID09PSBwcmVmaWx0ZXJzICksCgkJc2VsZWN0aW9uOwoKCWZvcig7IGkgPCBsZW5ndGggJiYgKCBleGVjdXRlT25seSB8fCAhc2VsZWN0aW9uICk7IGkrKyApIHsKCQlzZWxlY3Rpb24gPSBsaXN0WyBpIF0oIG9wdGlvbnMsIG9yaWdpbmFsT3B0aW9ucywganFYSFIgKTsKCQkvLyBJZiB3ZSBnb3QgcmVkaXJlY3RlZCB0byBhbm90aGVyIGRhdGFUeXBlCgkJLy8gd2UgdHJ5IHRoZXJlIGlmIGV4ZWN1dGluZyBvbmx5IGFuZCBub3QgZG9uZSBhbHJlYWR5CgkJaWYgKCB0eXBlb2Ygc2VsZWN0aW9uID09PSAic3RyaW5nIiApIHsKCQkJaWYgKCAhZXhlY3V0ZU9ubHkgfHwgaW5zcGVjdGVkWyBzZWxlY3Rpb24gXSApIHsKCQkJCXNlbGVjdGlvbiA9IHVuZGVmaW5lZDsKCQkJfSBlbHNlIHsKCQkJCW9wdGlvbnMuZGF0YVR5cGVzLnVuc2hpZnQoIHNlbGVjdGlvbiApOwoJCQkJc2VsZWN0aW9uID0gaW5zcGVjdFByZWZpbHRlcnNPclRyYW5zcG9ydHMoCgkJCQkJCXN0cnVjdHVyZSwgb3B0aW9ucywgb3JpZ2luYWxPcHRpb25zLCBqcVhIUiwgc2VsZWN0aW9uLCBpbnNwZWN0ZWQgKTsKCQkJfQoJCX0KCX0KCS8vIElmIHdlJ3JlIG9ubHkgZXhlY3V0aW5nIG9yIG5vdGhpbmcgd2FzIHNlbGVjdGVkCgkvLyB3ZSB0cnkgdGhlIGNhdGNoYWxsIGRhdGFUeXBlIGlmIG5vdCBkb25lIGFscmVhZHkKCWlmICggKCBleGVjdXRlT25seSB8fCAhc2VsZWN0aW9uICkgJiYgIWluc3BlY3RlZFsgIioiIF0gKSB7CgkJc2VsZWN0aW9uID0gaW5zcGVjdFByZWZpbHRlcnNPclRyYW5zcG9ydHMoCgkJCQlzdHJ1Y3R1cmUsIG9wdGlvbnMsIG9yaWdpbmFsT3B0aW9ucywganFYSFIsICIqIiwgaW5zcGVjdGVkICk7Cgl9CgkvLyB1bm5lY2Vzc2FyeSB3aGVuIG9ubHkgZXhlY3V0aW5nIChwcmVmaWx0ZXJzKQoJLy8gYnV0IGl0J2xsIGJlIGlnbm9yZWQgYnkgdGhlIGNhbGxlciBpbiB0aGF0IGNhc2UKCXJldHVybiBzZWxlY3Rpb247Cn0KCmpRdWVyeS5mbi5leHRlbmQoewoJbG9hZDogZnVuY3Rpb24oIHVybCwgcGFyYW1zLCBjYWxsYmFjayApIHsKCQlpZiAoIHR5cGVvZiB1cmwgIT09ICJzdHJpbmciICYmIF9sb2FkICkgewoJCQlyZXR1cm4gX2xvYWQuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApOwoKCQkvLyBEb24ndCBkbyBhIHJlcXVlc3QgaWYgbm8gZWxlbWVudHMgYXJlIGJlaW5nIHJlcXVlc3RlZAoJCX0gZWxzZSBpZiAoICF0aGlzLmxlbmd0aCApIHsKCQkJcmV0dXJuIHRoaXM7CgkJfQoKCQl2YXIgb2ZmID0gdXJsLmluZGV4T2YoICIgIiApOwoJCWlmICggb2ZmID49IDAgKSB7CgkJCXZhciBzZWxlY3RvciA9IHVybC5zbGljZSggb2ZmLCB1cmwubGVuZ3RoICk7CgkJCXVybCA9IHVybC5zbGljZSggMCwgb2ZmICk7CgkJfQoKCQkvLyBEZWZhdWx0IHRvIGEgR0VUIHJlcXVlc3QKCQl2YXIgdHlwZSA9ICJHRVQiOwoKCQkvLyBJZiB0aGUgc2Vjb25kIHBhcmFtZXRlciB3YXMgcHJvdmlkZWQKCQlpZiAoIHBhcmFtcyApIHsKCQkJLy8gSWYgaXQncyBhIGZ1bmN0aW9uCgkJCWlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHBhcmFtcyApICkgewoJCQkJLy8gV2UgYXNzdW1lIHRoYXQgaXQncyB0aGUgY2FsbGJhY2sKCQkJCWNhbGxiYWNrID0gcGFyYW1zOwoJCQkJcGFyYW1zID0gdW5kZWZpbmVkOwoKCQkJLy8gT3RoZXJ3aXNlLCBidWlsZCBhIHBhcmFtIHN0cmluZwoJCQl9IGVsc2UgaWYgKCB0eXBlb2YgcGFyYW1zID09PSAib2JqZWN0IiApIHsKCQkJCXBhcmFtcyA9IGpRdWVyeS5wYXJhbSggcGFyYW1zLCBqUXVlcnkuYWpheFNldHRpbmdzLnRyYWRpdGlvbmFsICk7CgkJCQl0eXBlID0gIlBPU1QiOwoJCQl9CgkJfQoKCQl2YXIgc2VsZiA9IHRoaXM7CgoJCS8vIFJlcXVlc3QgdGhlIHJlbW90ZSBkb2N1bWVudAoJCWpRdWVyeS5hamF4KHsKCQkJdXJsOiB1cmwsCgkJCXR5cGU6IHR5cGUsCgkJCWRhdGFUeXBlOiAiaHRtbCIsCgkJCWRhdGE6IHBhcmFtcywKCQkJLy8gQ29tcGxldGUgY2FsbGJhY2sgKHJlc3BvbnNlVGV4dCBpcyB1c2VkIGludGVybmFsbHkpCgkJCWNvbXBsZXRlOiBmdW5jdGlvbigganFYSFIsIHN0YXR1cywgcmVzcG9uc2VUZXh0ICkgewoJCQkJLy8gU3RvcmUgdGhlIHJlc3BvbnNlIGFzIHNwZWNpZmllZCBieSB0aGUganFYSFIgb2JqZWN0CgkJCQlyZXNwb25zZVRleHQgPSBqcVhIUi5yZXNwb25zZVRleHQ7CgkJCQkvLyBJZiBzdWNjZXNzZnVsLCBpbmplY3QgdGhlIEhUTUwgaW50byBhbGwgdGhlIG1hdGNoZWQgZWxlbWVudHMKCQkJCWlmICgganFYSFIuaXNSZXNvbHZlZCgpICkgewoJCQkJCS8vICM0ODI1OiBHZXQgdGhlIGFjdHVhbCByZXNwb25zZSBpbiBjYXNlCgkJCQkJLy8gYSBkYXRhRmlsdGVyIGlzIHByZXNlbnQgaW4gYWpheFNldHRpbmdzCgkJCQkJanFYSFIuZG9uZShmdW5jdGlvbiggciApIHsKCQkJCQkJcmVzcG9uc2VUZXh0ID0gcjsKCQkJCQl9KTsKCQkJCQkvLyBTZWUgaWYgYSBzZWxlY3RvciB3YXMgc3BlY2lmaWVkCgkJCQkJc2VsZi5odG1sKCBzZWxlY3RvciA/CgkJCQkJCS8vIENyZWF0ZSBhIGR1bW15IGRpdiB0byBob2xkIHRoZSByZXN1bHRzCgkJCQkJCWpRdWVyeSgiPGRpdj4iKQoJCQkJCQkJLy8gaW5qZWN0IHRoZSBjb250ZW50cyBvZiB0aGUgZG9jdW1lbnQgaW4sIHJlbW92aW5nIHRoZSBzY3JpcHRzCgkJCQkJCQkvLyB0byBhdm9pZCBhbnkgJ1Blcm1pc3Npb24gRGVuaWVkJyBlcnJvcnMgaW4gSUUKCQkJCQkJCS5hcHBlbmQocmVzcG9uc2VUZXh0LnJlcGxhY2UocnNjcmlwdCwgIiIpKQoKCQkJCQkJCS8vIExvY2F0ZSB0aGUgc3BlY2lmaWVkIGVsZW1lbnRzCgkJCQkJCQkuZmluZChzZWxlY3RvcikgOgoKCQkJCQkJLy8gSWYgbm90LCBqdXN0IGluamVjdCB0aGUgZnVsbCByZXN1bHQKCQkJCQkJcmVzcG9uc2VUZXh0ICk7CgkJCQl9CgoJCQkJaWYgKCBjYWxsYmFjayApIHsKCQkJCQlzZWxmLmVhY2goIGNhbGxiYWNrLCBbIHJlc3BvbnNlVGV4dCwgc3RhdHVzLCBqcVhIUiBdICk7CgkJCQl9CgkJCX0KCQl9KTsKCgkJcmV0dXJuIHRoaXM7Cgl9LAoKCXNlcmlhbGl6ZTogZnVuY3Rpb24oKSB7CgkJcmV0dXJuIGpRdWVyeS5wYXJhbSggdGhpcy5zZXJpYWxpemVBcnJheSgpICk7Cgl9LAoKCXNlcmlhbGl6ZUFycmF5OiBmdW5jdGlvbigpIHsKCQlyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXsKCQkJcmV0dXJuIHRoaXMuZWxlbWVudHMgPyBqUXVlcnkubWFrZUFycmF5KCB0aGlzLmVsZW1lbnRzICkgOiB0aGlzOwoJCX0pCgkJLmZpbHRlcihmdW5jdGlvbigpewoJCQlyZXR1cm4gdGhpcy5uYW1lICYmICF0aGlzLmRpc2FibGVkICYmCgkJCQkoIHRoaXMuY2hlY2tlZCB8fCByc2VsZWN0VGV4dGFyZWEudGVzdCggdGhpcy5ub2RlTmFtZSApIHx8CgkJCQkJcmlucHV0LnRlc3QoIHRoaXMudHlwZSApICk7CgkJfSkKCQkubWFwKGZ1bmN0aW9uKCBpLCBlbGVtICl7CgkJCXZhciB2YWwgPSBqUXVlcnkoIHRoaXMgKS52YWwoKTsKCgkJCXJldHVybiB2YWwgPT0gbnVsbCA/CgkJCQludWxsIDoKCQkJCWpRdWVyeS5pc0FycmF5KCB2YWwgKSA/CgkJCQkJalF1ZXJ5Lm1hcCggdmFsLCBmdW5jdGlvbiggdmFsLCBpICl7CgkJCQkJCXJldHVybiB7IG5hbWU6IGVsZW0ubmFtZSwgdmFsdWU6IHZhbC5yZXBsYWNlKCByQ1JMRiwgIlxyXG4iICkgfTsKCQkJCQl9KSA6CgkJCQkJeyBuYW1lOiBlbGVtLm5hbWUsIHZhbHVlOiB2YWwucmVwbGFjZSggckNSTEYsICJcclxuIiApIH07CgkJfSkuZ2V0KCk7Cgl9Cn0pOwoKLy8gQXR0YWNoIGEgYnVuY2ggb2YgZnVuY3Rpb25zIGZvciBoYW5kbGluZyBjb21tb24gQUpBWCBldmVudHMKalF1ZXJ5LmVhY2goICJhamF4U3RhcnQgYWpheFN0b3AgYWpheENvbXBsZXRlIGFqYXhFcnJvciBhamF4U3VjY2VzcyBhamF4U2VuZCIuc3BsaXQoICIgIiApLCBmdW5jdGlvbiggaSwgbyApewoJalF1ZXJ5LmZuWyBvIF0gPSBmdW5jdGlvbiggZiApewoJCXJldHVybiB0aGlzLmJpbmQoIG8sIGYgKTsKCX07Cn0gKTsKCmpRdWVyeS5lYWNoKCBbICJnZXQiLCAicG9zdCIgXSwgZnVuY3Rpb24oIGksIG1ldGhvZCApIHsKCWpRdWVyeVsgbWV0aG9kIF0gPSBmdW5jdGlvbiggdXJsLCBkYXRhLCBjYWxsYmFjaywgdHlwZSApIHsKCQkvLyBzaGlmdCBhcmd1bWVudHMgaWYgZGF0YSBhcmd1bWVudCB3YXMgb21pdHRlZAoJCWlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIGRhdGEgKSApIHsKCQkJdHlwZSA9IHR5cGUgfHwgY2FsbGJhY2s7CgkJCWNhbGxiYWNrID0gZGF0YTsKCQkJZGF0YSA9IHVuZGVmaW5lZDsKCQl9CgoJCXJldHVybiBqUXVlcnkuYWpheCh7CgkJCXR5cGU6IG1ldGhvZCwKCQkJdXJsOiB1cmwsCgkJCWRhdGE6IGRhdGEsCgkJCXN1Y2Nlc3M6IGNhbGxiYWNrLAoJCQlkYXRhVHlwZTogdHlwZQoJCX0pOwoJfTsKfSApOwoKalF1ZXJ5LmV4dGVuZCh7CgoJZ2V0U2NyaXB0OiBmdW5jdGlvbiggdXJsLCBjYWxsYmFjayApIHsKCQlyZXR1cm4galF1ZXJ5LmdldCggdXJsLCB1bmRlZmluZWQsIGNhbGxiYWNrLCAic2NyaXB0IiApOwoJfSwKCglnZXRKU09OOiBmdW5jdGlvbiggdXJsLCBkYXRhLCBjYWxsYmFjayApIHsKCQlyZXR1cm4galF1ZXJ5LmdldCggdXJsLCBkYXRhLCBjYWxsYmFjaywgImpzb24iICk7Cgl9LAoKCS8vIENyZWF0ZXMgYSBmdWxsIGZsZWRnZWQgc2V0dGluZ3Mgb2JqZWN0IGludG8gdGFyZ2V0CgkvLyB3aXRoIGJvdGggYWpheFNldHRpbmdzIGFuZCBzZXR0aW5ncyBmaWVsZHMuCgkvLyBJZiB0YXJnZXQgaXMgb21pdHRlZCwgd3JpdGVzIGludG8gYWpheFNldHRpbmdzLgoJYWpheFNldHVwOiBmdW5jdGlvbiAoIHRhcmdldCwgc2V0dGluZ3MgKSB7CgkJaWYgKCAhc2V0dGluZ3MgKSB7CgkJCS8vIE9ubHkgb25lIHBhcmFtZXRlciwgd2UgZXh0ZW5kIGFqYXhTZXR0aW5ncwoJCQlzZXR0aW5ncyA9IHRhcmdldDsKCQkJdGFyZ2V0ID0galF1ZXJ5LmV4dGVuZCggdHJ1ZSwgalF1ZXJ5LmFqYXhTZXR0aW5ncywgc2V0dGluZ3MgKTsKCQl9IGVsc2UgewoJCQkvLyB0YXJnZXQgd2FzIHByb3ZpZGVkLCB3ZSBleHRlbmQgaW50byBpdAoJCQlqUXVlcnkuZXh0ZW5kKCB0cnVlLCB0YXJnZXQsIGpRdWVyeS5hamF4U2V0dGluZ3MsIHNldHRpbmdzICk7CgkJfQoJCS8vIEZsYXR0ZW4gZmllbGRzIHdlIGRvbid0IHdhbnQgZGVlcCBleHRlbmRlZAoJCWZvciggdmFyIGZpZWxkIGluIHsgY29udGV4dDogMSwgdXJsOiAxIH0gKSB7CgkJCWlmICggZmllbGQgaW4gc2V0dGluZ3MgKSB7CgkJCQl0YXJnZXRbIGZpZWxkIF0gPSBzZXR0aW5nc1sgZmllbGQgXTsKCQkJfSBlbHNlIGlmKCBmaWVsZCBpbiBqUXVlcnkuYWpheFNldHRpbmdzICkgewoJCQkJdGFyZ2V0WyBmaWVsZCBdID0galF1ZXJ5LmFqYXhTZXR0aW5nc1sgZmllbGQgXTsKCQkJfQoJCX0KCQlyZXR1cm4gdGFyZ2V0OwoJfSwKCglhamF4U2V0dGluZ3M6IHsKCQl1cmw6IGFqYXhMb2NhdGlvbiwKCQlpc0xvY2FsOiBybG9jYWxQcm90b2NvbC50ZXN0KCBhamF4TG9jUGFydHNbIDEgXSApLAoJCWdsb2JhbDogdHJ1ZSwKCQl0eXBlOiAiR0VUIiwKCQljb250ZW50VHlwZTogImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIsCgkJcHJvY2Vzc0RhdGE6IHRydWUsCgkJYXN5bmM6IHRydWUsCgkJLyoKCQl0aW1lb3V0OiAwLAoJCWRhdGE6IG51bGwsCgkJZGF0YVR5cGU6IG51bGwsCgkJdXNlcm5hbWU6IG51bGwsCgkJcGFzc3dvcmQ6IG51bGwsCgkJY2FjaGU6IG51bGwsCgkJdHJhZGl0aW9uYWw6IGZhbHNlLAoJCWhlYWRlcnM6IHt9LAoJCWNyb3NzRG9tYWluOiBudWxsLAoJCSovCgoJCWFjY2VwdHM6IHsKCQkJeG1sOiAiYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbCIsCgkJCWh0bWw6ICJ0ZXh0L2h0bWwiLAoJCQl0ZXh0OiAidGV4dC9wbGFpbiIsCgkJCWpzb246ICJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L2phdmFzY3JpcHQiLAoJCQkiKiI6ICIqLyoiCgkJfSwKCgkJY29udGVudHM6IHsKCQkJeG1sOiAveG1sLywKCQkJaHRtbDogL2h0bWwvLAoJCQlqc29uOiAvanNvbi8KCQl9LAoKCQlyZXNwb25zZUZpZWxkczogewoJCQl4bWw6ICJyZXNwb25zZVhNTCIsCgkJCXRleHQ6ICJyZXNwb25zZVRleHQiCgkJfSwKCgkJLy8gTGlzdCBvZiBkYXRhIGNvbnZlcnRlcnMKCQkvLyAxKSBrZXkgZm9ybWF0IGlzICJzb3VyY2VfdHlwZSBkZXN0aW5hdGlvbl90eXBlIiAoYSBzaW5nbGUgc3BhY2UgaW4tYmV0d2VlbikKCQkvLyAyKSB0aGUgY2F0Y2hhbGwgc3ltYm9sICIqIiBjYW4gYmUgdXNlZCBmb3Igc291cmNlX3R5cGUKCQljb252ZXJ0ZXJzOiB7CgoJCQkvLyBDb252ZXJ0IGFueXRoaW5nIHRvIHRleHQKCQkJIiogdGV4dCI6IHdpbmRvdy5TdHJpbmcsCgoJCQkvLyBUZXh0IHRvIGh0bWwgKHRydWUgPSBubyB0cmFuc2Zvcm1hdGlvbikKCQkJInRleHQgaHRtbCI6IHRydWUsCgoJCQkvLyBFdmFsdWF0ZSB0ZXh0IGFzIGEganNvbiBleHByZXNzaW9uCgkJCSJ0ZXh0IGpzb24iOiBqUXVlcnkucGFyc2VKU09OLAoKCQkJLy8gUGFyc2UgdGV4dCBhcyB4bWwKCQkJInRleHQgeG1sIjogalF1ZXJ5LnBhcnNlWE1MCgkJfQoJfSwKCglhamF4UHJlZmlsdGVyOiBhZGRUb1ByZWZpbHRlcnNPclRyYW5zcG9ydHMoIHByZWZpbHRlcnMgKSwKCWFqYXhUcmFuc3BvcnQ6IGFkZFRvUHJlZmlsdGVyc09yVHJhbnNwb3J0cyggdHJhbnNwb3J0cyApLAoKCS8vIE1haW4gbWV0aG9kCglhamF4OiBmdW5jdGlvbiggdXJsLCBvcHRpb25zICkgewoKCQkvLyBJZiB1cmwgaXMgYW4gb2JqZWN0LCBzaW11bGF0ZSBwcmUtMS41IHNpZ25hdHVyZQoJCWlmICggdHlwZW9mIHVybCA9PT0gIm9iamVjdCIgKSB7CgkJCW9wdGlvbnMgPSB1cmw7CgkJCXVybCA9IHVuZGVmaW5lZDsKCQl9CgoJCS8vIEZvcmNlIG9wdGlvbnMgdG8gYmUgYW4gb2JqZWN0CgkJb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CgoJCXZhciAvLyBDcmVhdGUgdGhlIGZpbmFsIG9wdGlvbnMgb2JqZWN0CgkJCXMgPSBqUXVlcnkuYWpheFNldHVwKCB7fSwgb3B0aW9ucyApLAoJCQkvLyBDYWxsYmFja3MgY29udGV4dAoJCQljYWxsYmFja0NvbnRleHQgPSBzLmNvbnRleHQgfHwgcywKCQkJLy8gQ29udGV4dCBmb3IgZ2xvYmFsIGV2ZW50cwoJCQkvLyBJdCdzIHRoZSBjYWxsYmFja0NvbnRleHQgaWYgb25lIHdhcyBwcm92aWRlZCBpbiB0aGUgb3B0aW9ucwoJCQkvLyBhbmQgaWYgaXQncyBhIERPTSBub2RlIG9yIGEgalF1ZXJ5IGNvbGxlY3Rpb24KCQkJZ2xvYmFsRXZlbnRDb250ZXh0ID0gY2FsbGJhY2tDb250ZXh0ICE9PSBzICYmCgkJCQkoIGNhbGxiYWNrQ29udGV4dC5ub2RlVHlwZSB8fCBjYWxsYmFja0NvbnRleHQgaW5zdGFuY2VvZiBqUXVlcnkgKSA/CgkJCQkJCWpRdWVyeSggY2FsbGJhY2tDb250ZXh0ICkgOiBqUXVlcnkuZXZlbnQsCgkJCS8vIERlZmVycmVkcwoJCQlkZWZlcnJlZCA9IGpRdWVyeS5EZWZlcnJlZCgpLAoJCQljb21wbGV0ZURlZmVycmVkID0galF1ZXJ5Ll9EZWZlcnJlZCgpLAoJCQkvLyBTdGF0dXMtZGVwZW5kZW50IGNhbGxiYWNrcwoJCQlzdGF0dXNDb2RlID0gcy5zdGF0dXNDb2RlIHx8IHt9LAoJCQkvLyBpZk1vZGlmaWVkIGtleQoJCQlpZk1vZGlmaWVkS2V5LAoJCQkvLyBIZWFkZXJzICh0aGV5IGFyZSBzZW50IGFsbCBhdCBvbmNlKQoJCQlyZXF1ZXN0SGVhZGVycyA9IHt9LAoJCQkvLyBSZXNwb25zZSBoZWFkZXJzCgkJCXJlc3BvbnNlSGVhZGVyc1N0cmluZywKCQkJcmVzcG9uc2VIZWFkZXJzLAoJCQkvLyB0cmFuc3BvcnQKCQkJdHJhbnNwb3J0LAoJCQkvLyB0aW1lb3V0IGhhbmRsZQoJCQl0aW1lb3V0VGltZXIsCgkJCS8vIENyb3NzLWRvbWFpbiBkZXRlY3Rpb24gdmFycwoJCQlwYXJ0cywKCQkJLy8gVGhlIGpxWEhSIHN0YXRlCgkJCXN0YXRlID0gMCwKCQkJLy8gVG8ga25vdyBpZiBnbG9iYWwgZXZlbnRzIGFyZSB0byBiZSBkaXNwYXRjaGVkCgkJCWZpcmVHbG9iYWxzLAoJCQkvLyBMb29wIHZhcmlhYmxlCgkJCWksCgkJCS8vIEZha2UgeGhyCgkJCWpxWEhSID0gewoKCQkJCXJlYWR5U3RhdGU6IDAsCgoJCQkJLy8gQ2FjaGVzIHRoZSBoZWFkZXIKCQkJCXNldFJlcXVlc3RIZWFkZXI6IGZ1bmN0aW9uKCBuYW1lLCB2YWx1ZSApIHsKCQkJCQlpZiAoICFzdGF0ZSApIHsKCQkJCQkJcmVxdWVzdEhlYWRlcnNbIG5hbWUudG9Mb3dlckNhc2UoKS5yZXBsYWNlKCBydWNIZWFkZXJzLCBydWNIZWFkZXJzRnVuYyApIF0gPSB2YWx1ZTsKCQkJCQl9CgkJCQkJcmV0dXJuIHRoaXM7CgkJCQl9LAoKCQkJCS8vIFJhdyBzdHJpbmcKCQkJCWdldEFsbFJlc3BvbnNlSGVhZGVyczogZnVuY3Rpb24oKSB7CgkJCQkJcmV0dXJuIHN0YXRlID09PSAyID8gcmVzcG9uc2VIZWFkZXJzU3RyaW5nIDogbnVsbDsKCQkJCX0sCgoJCQkJLy8gQnVpbGRzIGhlYWRlcnMgaGFzaHRhYmxlIGlmIG5lZWRlZAoJCQkJZ2V0UmVzcG9uc2VIZWFkZXI6IGZ1bmN0aW9uKCBrZXkgKSB7CgkJCQkJdmFyIG1hdGNoOwoJCQkJCWlmICggc3RhdGUgPT09IDIgKSB7CgkJCQkJCWlmICggIXJlc3BvbnNlSGVhZGVycyApIHsKCQkJCQkJCXJlc3BvbnNlSGVhZGVycyA9IHt9OwoJCQkJCQkJd2hpbGUoICggbWF0Y2ggPSByaGVhZGVycy5leGVjKCByZXNwb25zZUhlYWRlcnNTdHJpbmcgKSApICkgewoJCQkJCQkJCXJlc3BvbnNlSGVhZGVyc1sgbWF0Y2hbMV0udG9Mb3dlckNhc2UoKSBdID0gbWF0Y2hbIDIgXTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCQltYXRjaCA9IHJlc3BvbnNlSGVhZGVyc1sga2V5LnRvTG93ZXJDYXNlKCkgXTsKCQkJCQl9CgkJCQkJcmV0dXJuIG1hdGNoID09PSB1bmRlZmluZWQgPyBudWxsIDogbWF0Y2g7CgkJCQl9LAoKCQkJCS8vIE92ZXJyaWRlcyByZXNwb25zZSBjb250ZW50LXR5cGUgaGVhZGVyCgkJCQlvdmVycmlkZU1pbWVUeXBlOiBmdW5jdGlvbiggdHlwZSApIHsKCQkJCQlpZiAoICFzdGF0ZSApIHsKCQkJCQkJcy5taW1lVHlwZSA9IHR5cGU7CgkJCQkJfQoJCQkJCXJldHVybiB0aGlzOwoJCQkJfSwKCgkJCQkvLyBDYW5jZWwgdGhlIHJlcXVlc3QKCQkJCWFib3J0OiBmdW5jdGlvbiggc3RhdHVzVGV4dCApIHsKCQkJCQlzdGF0dXNUZXh0ID0gc3RhdHVzVGV4dCB8fCAiYWJvcnQiOwoJCQkJCWlmICggdHJhbnNwb3J0ICkgewoJCQkJCQl0cmFuc3BvcnQuYWJvcnQoIHN0YXR1c1RleHQgKTsKCQkJCQl9CgkJCQkJZG9uZSggMCwgc3RhdHVzVGV4dCApOwoJCQkJCXJldHVybiB0aGlzOwoJCQkJfQoJCQl9OwoKCQkvLyBDYWxsYmFjayBmb3Igd2hlbiBldmVyeXRoaW5nIGlzIGRvbmUKCQkvLyBJdCBpcyBkZWZpbmVkIGhlcmUgYmVjYXVzZSBqc2xpbnQgY29tcGxhaW5zIGlmIGl0IGlzIGRlY2xhcmVkCgkJLy8gYXQgdGhlIGVuZCBvZiB0aGUgZnVuY3Rpb24gKHdoaWNoIHdvdWxkIGJlIG1vcmUgbG9naWNhbCBhbmQgcmVhZGFibGUpCgkJZnVuY3Rpb24gZG9uZSggc3RhdHVzLCBzdGF0dXNUZXh0LCByZXNwb25zZXMsIGhlYWRlcnMgKSB7CgoJCQkvLyBDYWxsZWQgb25jZQoJCQlpZiAoIHN0YXRlID09PSAyICkgewoJCQkJcmV0dXJuOwoJCQl9CgoJCQkvLyBTdGF0ZSBpcyAiZG9uZSIgbm93CgkJCXN0YXRlID0gMjsKCgkJCS8vIENsZWFyIHRpbWVvdXQgaWYgaXQgZXhpc3RzCgkJCWlmICggdGltZW91dFRpbWVyICkgewoJCQkJY2xlYXJUaW1lb3V0KCB0aW1lb3V0VGltZXIgKTsKCQkJfQoKCQkJLy8gRGVyZWZlcmVuY2UgdHJhbnNwb3J0IGZvciBlYXJseSBnYXJiYWdlIGNvbGxlY3Rpb24KCQkJLy8gKG5vIG1hdHRlciBob3cgbG9uZyB0aGUganFYSFIgb2JqZWN0IHdpbGwgYmUgdXNlZCkKCQkJdHJhbnNwb3J0ID0gdW5kZWZpbmVkOwoKCQkJLy8gQ2FjaGUgcmVzcG9uc2UgaGVhZGVycwoJCQlyZXNwb25zZUhlYWRlcnNTdHJpbmcgPSBoZWFkZXJzIHx8ICIiOwoKCQkJLy8gU2V0IHJlYWR5U3RhdGUKCQkJanFYSFIucmVhZHlTdGF0ZSA9IHN0YXR1cyA/IDQgOiAwOwoKCQkJdmFyIGlzU3VjY2VzcywKCQkJCXN1Y2Nlc3MsCgkJCQllcnJvciwKCQkJCXJlc3BvbnNlID0gcmVzcG9uc2VzID8gYWpheEhhbmRsZVJlc3BvbnNlcyggcywganFYSFIsIHJlc3BvbnNlcyApIDogdW5kZWZpbmVkLAoJCQkJbGFzdE1vZGlmaWVkLAoJCQkJZXRhZzsKCgkJCS8vIElmIHN1Y2Nlc3NmdWwsIGhhbmRsZSB0eXBlIGNoYWluaW5nCgkJCWlmICggc3RhdHVzID49IDIwMCAmJiBzdGF0dXMgPCAzMDAgfHwgc3RhdHVzID09PSAzMDQgKSB7CgoJCQkJLy8gU2V0IHRoZSBJZi1Nb2RpZmllZC1TaW5jZSBhbmQvb3IgSWYtTm9uZS1NYXRjaCBoZWFkZXIsIGlmIGluIGlmTW9kaWZpZWQgbW9kZS4KCQkJCWlmICggcy5pZk1vZGlmaWVkICkgewoKCQkJCQlpZiAoICggbGFzdE1vZGlmaWVkID0ganFYSFIuZ2V0UmVzcG9uc2VIZWFkZXIoICJMYXN0LU1vZGlmaWVkIiApICkgKSB7CgkJCQkJCWpRdWVyeS5sYXN0TW9kaWZpZWRbIGlmTW9kaWZpZWRLZXkgXSA9IGxhc3RNb2RpZmllZDsKCQkJCQl9CgkJCQkJaWYgKCAoIGV0YWcgPSBqcVhIUi5nZXRSZXNwb25zZUhlYWRlciggIkV0YWciICkgKSApIHsKCQkJCQkJalF1ZXJ5LmV0YWdbIGlmTW9kaWZpZWRLZXkgXSA9IGV0YWc7CgkJCQkJfQoJCQkJfQoKCQkJCS8vIElmIG5vdCBtb2RpZmllZAoJCQkJaWYgKCBzdGF0dXMgPT09IDMwNCApIHsKCgkJCQkJc3RhdHVzVGV4dCA9ICJub3Rtb2RpZmllZCI7CgkJCQkJaXNTdWNjZXNzID0gdHJ1ZTsKCgkJCQkvLyBJZiB3ZSBoYXZlIGRhdGEKCQkJCX0gZWxzZSB7CgoJCQkJCXRyeSB7CgkJCQkJCXN1Y2Nlc3MgPSBhamF4Q29udmVydCggcywgcmVzcG9uc2UgKTsKCQkJCQkJc3RhdHVzVGV4dCA9ICJzdWNjZXNzIjsKCQkJCQkJaXNTdWNjZXNzID0gdHJ1ZTsKCQkJCQl9IGNhdGNoKGUpIHsKCQkJCQkJLy8gV2UgaGF2ZSBhIHBhcnNlcmVycm9yCgkJCQkJCXN0YXR1c1RleHQgPSAicGFyc2VyZXJyb3IiOwoJCQkJCQllcnJvciA9IGU7CgkJCQkJfQoJCQkJfQoJCQl9IGVsc2UgewoJCQkJLy8gV2UgZXh0cmFjdCBlcnJvciBmcm9tIHN0YXR1c1RleHQKCQkJCS8vIHRoZW4gbm9ybWFsaXplIHN0YXR1c1RleHQgYW5kIHN0YXR1cyBmb3Igbm9uLWFib3J0cwoJCQkJZXJyb3IgPSBzdGF0dXNUZXh0OwoJCQkJaWYoICFzdGF0dXNUZXh0IHx8IHN0YXR1cyApIHsKCQkJCQlzdGF0dXNUZXh0ID0gImVycm9yIjsKCQkJCQlpZiAoIHN0YXR1cyA8IDAgKSB7CgkJCQkJCXN0YXR1cyA9IDA7CgkJCQkJfQoJCQkJfQoJCQl9CgoJCQkvLyBTZXQgZGF0YSBmb3IgdGhlIGZha2UgeGhyIG9iamVjdAoJCQlqcVhIUi5zdGF0dXMgPSBzdGF0dXM7CgkJCWpxWEhSLnN0YXR1c1RleHQgPSBzdGF0dXNUZXh0OwoKCQkJLy8gU3VjY2Vzcy9FcnJvcgoJCQlpZiAoIGlzU3VjY2VzcyApIHsKCQkJCWRlZmVycmVkLnJlc29sdmVXaXRoKCBjYWxsYmFja0NvbnRleHQsIFsgc3VjY2Vzcywgc3RhdHVzVGV4dCwganFYSFIgXSApOwoJCQl9IGVsc2UgewoJCQkJZGVmZXJyZWQucmVqZWN0V2l0aCggY2FsbGJhY2tDb250ZXh0LCBbIGpxWEhSLCBzdGF0dXNUZXh0LCBlcnJvciBdICk7CgkJCX0KCgkJCS8vIFN0YXR1cy1kZXBlbmRlbnQgY2FsbGJhY2tzCgkJCWpxWEhSLnN0YXR1c0NvZGUoIHN0YXR1c0NvZGUgKTsKCQkJc3RhdHVzQ29kZSA9IHVuZGVmaW5lZDsKCgkJCWlmICggZmlyZUdsb2JhbHMgKSB7CgkJCQlnbG9iYWxFdmVudENvbnRleHQudHJpZ2dlciggImFqYXgiICsgKCBpc1N1Y2Nlc3MgPyAiU3VjY2VzcyIgOiAiRXJyb3IiICksCgkJCQkJCVsganFYSFIsIHMsIGlzU3VjY2VzcyA/IHN1Y2Nlc3MgOiBlcnJvciBdICk7CgkJCX0KCgkJCS8vIENvbXBsZXRlCgkJCWNvbXBsZXRlRGVmZXJyZWQucmVzb2x2ZVdpdGgoIGNhbGxiYWNrQ29udGV4dCwgWyBqcVhIUiwgc3RhdHVzVGV4dCBdICk7CgoJCQlpZiAoIGZpcmVHbG9iYWxzICkgewoJCQkJZ2xvYmFsRXZlbnRDb250ZXh0LnRyaWdnZXIoICJhamF4Q29tcGxldGUiLCBbIGpxWEhSLCBzXSApOwoJCQkJLy8gSGFuZGxlIHRoZSBnbG9iYWwgQUpBWCBjb3VudGVyCgkJCQlpZiAoICEoIC0talF1ZXJ5LmFjdGl2ZSApICkgewoJCQkJCWpRdWVyeS5ldmVudC50cmlnZ2VyKCAiYWpheFN0b3AiICk7CgkJCQl9CgkJCX0KCQl9CgoJCS8vIEF0dGFjaCBkZWZlcnJlZHMKCQlkZWZlcnJlZC5wcm9taXNlKCBqcVhIUiApOwoJCWpxWEhSLnN1Y2Nlc3MgPSBqcVhIUi5kb25lOwoJCWpxWEhSLmVycm9yID0ganFYSFIuZmFpbDsKCQlqcVhIUi5jb21wbGV0ZSA9IGNvbXBsZXRlRGVmZXJyZWQuZG9uZTsKCgkJLy8gU3RhdHVzLWRlcGVuZGVudCBjYWxsYmFja3MKCQlqcVhIUi5zdGF0dXNDb2RlID0gZnVuY3Rpb24oIG1hcCApIHsKCQkJaWYgKCBtYXAgKSB7CgkJCQl2YXIgdG1wOwoJCQkJaWYgKCBzdGF0ZSA8IDIgKSB7CgkJCQkJZm9yKCB0bXAgaW4gbWFwICkgewoJCQkJCQlzdGF0dXNDb2RlWyB0bXAgXSA9IFsgc3RhdHVzQ29kZVt0bXBdLCBtYXBbdG1wXSBdOwoJCQkJCX0KCQkJCX0gZWxzZSB7CgkJCQkJdG1wID0gbWFwWyBqcVhIUi5zdGF0dXMgXTsKCQkJCQlqcVhIUi50aGVuKCB0bXAsIHRtcCApOwoJCQkJfQoJCQl9CgkJCXJldHVybiB0aGlzOwoJCX07CgoJCS8vIFJlbW92ZSBoYXNoIGNoYXJhY3RlciAoIzc1MzE6IGFuZCBzdHJpbmcgcHJvbW90aW9uKQoJCS8vIEFkZCBwcm90b2NvbCBpZiBub3QgcHJvdmlkZWQgKCM1ODY2OiBJRTcgaXNzdWUgd2l0aCBwcm90b2NvbC1sZXNzIHVybHMpCgkJLy8gV2UgYWxzbyB1c2UgdGhlIHVybCBwYXJhbWV0ZXIgaWYgYXZhaWxhYmxlCgkJcy51cmwgPSAoICggdXJsIHx8IHMudXJsICkgKyAiIiApLnJlcGxhY2UoIHJoYXNoLCAiIiApLnJlcGxhY2UoIHJwcm90b2NvbCwgYWpheExvY1BhcnRzWyAxIF0gKyAiLy8iICk7CgoJCS8vIEV4dHJhY3QgZGF0YVR5cGVzIGxpc3QKCQlzLmRhdGFUeXBlcyA9IGpRdWVyeS50cmltKCBzLmRhdGFUeXBlIHx8ICIqIiApLnRvTG93ZXJDYXNlKCkuc3BsaXQoIHJzcGFjZXNBamF4ICk7CgoJCS8vIERldGVybWluZSBpZiBhIGNyb3NzLWRvbWFpbiByZXF1ZXN0IGlzIGluIG9yZGVyCgkJaWYgKCAhcy5jcm9zc0RvbWFpbiApIHsKCQkJcGFydHMgPSBydXJsLmV4ZWMoIHMudXJsLnRvTG93ZXJDYXNlKCkgKTsKCQkJcy5jcm9zc0RvbWFpbiA9ICEhKCBwYXJ0cyAmJgoJCQkJKCBwYXJ0c1sgMSBdICE9IGFqYXhMb2NQYXJ0c1sgMSBdIHx8IHBhcnRzWyAyIF0gIT0gYWpheExvY1BhcnRzWyAyIF0gfHwKCQkJCQkoIHBhcnRzWyAzIF0gfHwgKCBwYXJ0c1sgMSBdID09PSAiaHR0cDoiID8gODAgOiA0NDMgKSApICE9CgkJCQkJCSggYWpheExvY1BhcnRzWyAzIF0gfHwgKCBhamF4TG9jUGFydHNbIDEgXSA9PT0gImh0dHA6IiA/IDgwIDogNDQzICkgKSApCgkJCSk7CgkJfQoKCQkvLyBDb252ZXJ0IGRhdGEgaWYgbm90IGFscmVhZHkgYSBzdHJpbmcKCQlpZiAoIHMuZGF0YSAmJiBzLnByb2Nlc3NEYXRhICYmIHR5cGVvZiBzLmRhdGEgIT09ICJzdHJpbmciICkgewoJCQlzLmRhdGEgPSBqUXVlcnkucGFyYW0oIHMuZGF0YSwgcy50cmFkaXRpb25hbCApOwoJCX0KCgkJLy8gQXBwbHkgcHJlZmlsdGVycwoJCWluc3BlY3RQcmVmaWx0ZXJzT3JUcmFuc3BvcnRzKCBwcmVmaWx0ZXJzLCBzLCBvcHRpb25zLCBqcVhIUiApOwoKCQkvLyBJZiByZXF1ZXN0IHdhcyBhYm9ydGVkIGluc2lkZSBhIHByZWZpbGVyLCBzdG9wIHRoZXJlCgkJaWYgKCBzdGF0ZSA9PT0gMiApIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCgkJLy8gV2UgY2FuIGZpcmUgZ2xvYmFsIGV2ZW50cyBhcyBvZiBub3cgaWYgYXNrZWQgdG8KCQlmaXJlR2xvYmFscyA9IHMuZ2xvYmFsOwoKCQkvLyBVcHBlcmNhc2UgdGhlIHR5cGUKCQlzLnR5cGUgPSBzLnR5cGUudG9VcHBlckNhc2UoKTsKCgkJLy8gRGV0ZXJtaW5lIGlmIHJlcXVlc3QgaGFzIGNvbnRlbnQKCQlzLmhhc0NvbnRlbnQgPSAhcm5vQ29udGVudC50ZXN0KCBzLnR5cGUgKTsKCgkJLy8gV2F0Y2ggZm9yIGEgbmV3IHNldCBvZiByZXF1ZXN0cwoJCWlmICggZmlyZUdsb2JhbHMgJiYgalF1ZXJ5LmFjdGl2ZSsrID09PSAwICkgewoJCQlqUXVlcnkuZXZlbnQudHJpZ2dlciggImFqYXhTdGFydCIgKTsKCQl9CgoJCS8vIE1vcmUgb3B0aW9ucyBoYW5kbGluZyBmb3IgcmVxdWVzdHMgd2l0aCBubyBjb250ZW50CgkJaWYgKCAhcy5oYXNDb250ZW50ICkgewoKCQkJLy8gSWYgZGF0YSBpcyBhdmFpbGFibGUsIGFwcGVuZCBkYXRhIHRvIHVybAoJCQlpZiAoIHMuZGF0YSApIHsKCQkJCXMudXJsICs9ICggcnF1ZXJ5LnRlc3QoIHMudXJsICkgPyAiJiIgOiAiPyIgKSArIHMuZGF0YTsKCQkJfQoKCQkJLy8gR2V0IGlmTW9kaWZpZWRLZXkgYmVmb3JlIGFkZGluZyB0aGUgYW50aS1jYWNoZSBwYXJhbWV0ZXIKCQkJaWZNb2RpZmllZEtleSA9IHMudXJsOwoKCQkJLy8gQWRkIGFudGktY2FjaGUgaW4gdXJsIGlmIG5lZWRlZAoJCQlpZiAoIHMuY2FjaGUgPT09IGZhbHNlICkgewoKCQkJCXZhciB0cyA9IGpRdWVyeS5ub3coKSwKCQkJCQkvLyB0cnkgcmVwbGFjaW5nIF89IGlmIGl0IGlzIHRoZXJlCgkJCQkJcmV0ID0gcy51cmwucmVwbGFjZSggcnRzLCAiJDFfPSIgKyB0cyApOwoKCQkJCS8vIGlmIG5vdGhpbmcgd2FzIHJlcGxhY2VkLCBhZGQgdGltZXN0YW1wIHRvIHRoZSBlbmQKCQkJCXMudXJsID0gcmV0ICsgKCAocmV0ID09PSBzLnVybCApID8gKCBycXVlcnkudGVzdCggcy51cmwgKSA/ICImIiA6ICI/IiApICsgIl89IiArIHRzIDogIiIgKTsKCQkJfQoJCX0KCgkJLy8gU2V0IHRoZSBjb3JyZWN0IGhlYWRlciwgaWYgZGF0YSBpcyBiZWluZyBzZW50CgkJaWYgKCBzLmRhdGEgJiYgcy5oYXNDb250ZW50ICYmIHMuY29udGVudFR5cGUgIT09IGZhbHNlIHx8IG9wdGlvbnMuY29udGVudFR5cGUgKSB7CgkJCXJlcXVlc3RIZWFkZXJzWyAiQ29udGVudC1UeXBlIiBdID0gcy5jb250ZW50VHlwZTsKCQl9CgoJCS8vIFNldCB0aGUgSWYtTW9kaWZpZWQtU2luY2UgYW5kL29yIElmLU5vbmUtTWF0Y2ggaGVhZGVyLCBpZiBpbiBpZk1vZGlmaWVkIG1vZGUuCgkJaWYgKCBzLmlmTW9kaWZpZWQgKSB7CgkJCWlmTW9kaWZpZWRLZXkgPSBpZk1vZGlmaWVkS2V5IHx8IHMudXJsOwoJCQlpZiAoIGpRdWVyeS5sYXN0TW9kaWZpZWRbIGlmTW9kaWZpZWRLZXkgXSApIHsKCQkJCXJlcXVlc3RIZWFkZXJzWyAiSWYtTW9kaWZpZWQtU2luY2UiIF0gPSBqUXVlcnkubGFzdE1vZGlmaWVkWyBpZk1vZGlmaWVkS2V5IF07CgkJCX0KCQkJaWYgKCBqUXVlcnkuZXRhZ1sgaWZNb2RpZmllZEtleSBdICkgewoJCQkJcmVxdWVzdEhlYWRlcnNbICJJZi1Ob25lLU1hdGNoIiBdID0galF1ZXJ5LmV0YWdbIGlmTW9kaWZpZWRLZXkgXTsKCQkJfQoJCX0KCgkJLy8gU2V0IHRoZSBBY2NlcHRzIGhlYWRlciBmb3IgdGhlIHNlcnZlciwgZGVwZW5kaW5nIG9uIHRoZSBkYXRhVHlwZQoJCXJlcXVlc3RIZWFkZXJzLkFjY2VwdCA9IHMuZGF0YVR5cGVzWyAwIF0gJiYgcy5hY2NlcHRzWyBzLmRhdGFUeXBlc1swXSBdID8KCQkJcy5hY2NlcHRzWyBzLmRhdGFUeXBlc1swXSBdICsgKCBzLmRhdGFUeXBlc1sgMCBdICE9PSAiKiIgPyAiLCAqLyo7IHE9MC4wMSIgOiAiIiApIDoKCQkJcy5hY2NlcHRzWyAiKiIgXTsKCgkJLy8gQ2hlY2sgZm9yIGhlYWRlcnMgb3B0aW9uCgkJZm9yICggaSBpbiBzLmhlYWRlcnMgKSB7CgkJCWpxWEhSLnNldFJlcXVlc3RIZWFkZXIoIGksIHMuaGVhZGVyc1sgaSBdICk7CgkJfQoKCQkvLyBBbGxvdyBjdXN0b20gaGVhZGVycy9taW1ldHlwZXMgYW5kIGVhcmx5IGFib3J0CgkJaWYgKCBzLmJlZm9yZVNlbmQgJiYgKCBzLmJlZm9yZVNlbmQuY2FsbCggY2FsbGJhY2tDb250ZXh0LCBqcVhIUiwgcyApID09PSBmYWxzZSB8fCBzdGF0ZSA9PT0gMiApICkgewoJCQkJLy8gQWJvcnQgaWYgbm90IGRvbmUgYWxyZWFkeQoJCQkJanFYSFIuYWJvcnQoKTsKCQkJCXJldHVybiBmYWxzZTsKCgkJfQoKCQkvLyBJbnN0YWxsIGNhbGxiYWNrcyBvbiBkZWZlcnJlZHMKCQlmb3IgKCBpIGluIHsgc3VjY2VzczogMSwgZXJyb3I6IDEsIGNvbXBsZXRlOiAxIH0gKSB7CgkJCWpxWEhSWyBpIF0oIHNbIGkgXSApOwoJCX0KCgkJLy8gR2V0IHRyYW5zcG9ydAoJCXRyYW5zcG9ydCA9IGluc3BlY3RQcmVmaWx0ZXJzT3JUcmFuc3BvcnRzKCB0cmFuc3BvcnRzLCBzLCBvcHRpb25zLCBqcVhIUiApOwoKCQkvLyBJZiBubyB0cmFuc3BvcnQsIHdlIGF1dG8tYWJvcnQKCQlpZiAoICF0cmFuc3BvcnQgKSB7CgkJCWRvbmUoIC0xLCAiTm8gVHJhbnNwb3J0IiApOwoJCX0gZWxzZSB7CgkJCWpxWEhSLnJlYWR5U3RhdGUgPSAxOwoJCQkvLyBTZW5kIGdsb2JhbCBldmVudAoJCQlpZiAoIGZpcmVHbG9iYWxzICkgewoJCQkJZ2xvYmFsRXZlbnRDb250ZXh0LnRyaWdnZXIoICJhamF4U2VuZCIsIFsganFYSFIsIHMgXSApOwoJCQl9CgkJCS8vIFRpbWVvdXQKCQkJaWYgKCBzLmFzeW5jICYmIHMudGltZW91dCA+IDAgKSB7CgkJCQl0aW1lb3V0VGltZXIgPSBzZXRUaW1lb3V0KCBmdW5jdGlvbigpewoJCQkJCWpxWEhSLmFib3J0KCAidGltZW91dCIgKTsKCQkJCX0sIHMudGltZW91dCApOwoJCQl9CgoJCQl0cnkgewoJCQkJc3RhdGUgPSAxOwoJCQkJdHJhbnNwb3J0LnNlbmQoIHJlcXVlc3RIZWFkZXJzLCBkb25lICk7CgkJCX0gY2F0Y2ggKGUpIHsKCQkJCS8vIFByb3BhZ2F0ZSBleGNlcHRpb24gYXMgZXJyb3IgaWYgbm90IGRvbmUKCQkJCWlmICggc3RhdHVzIDwgMiApIHsKCQkJCQlkb25lKCAtMSwgZSApOwoJCQkJLy8gU2ltcGx5IHJldGhyb3cgb3RoZXJ3aXNlCgkJCQl9IGVsc2UgewoJCQkJCWpRdWVyeS5lcnJvciggZSApOwoJCQkJfQoJCQl9CgkJfQoKCQlyZXR1cm4ganFYSFI7Cgl9LAoKCS8vIFNlcmlhbGl6ZSBhbiBhcnJheSBvZiBmb3JtIGVsZW1lbnRzIG9yIGEgc2V0IG9mCgkvLyBrZXkvdmFsdWVzIGludG8gYSBxdWVyeSBzdHJpbmcKCXBhcmFtOiBmdW5jdGlvbiggYSwgdHJhZGl0aW9uYWwgKSB7CgkJdmFyIHMgPSBbXSwKCQkJYWRkID0gZnVuY3Rpb24oIGtleSwgdmFsdWUgKSB7CgkJCQkvLyBJZiB2YWx1ZSBpcyBhIGZ1bmN0aW9uLCBpbnZva2UgaXQgYW5kIHJldHVybiBpdHMgdmFsdWUKCQkJCXZhbHVlID0galF1ZXJ5LmlzRnVuY3Rpb24oIHZhbHVlICkgPyB2YWx1ZSgpIDogdmFsdWU7CgkJCQlzWyBzLmxlbmd0aCBdID0gZW5jb2RlVVJJQ29tcG9uZW50KCBrZXkgKSArICI9IiArIGVuY29kZVVSSUNvbXBvbmVudCggdmFsdWUgKTsKCQkJfTsKCgkJLy8gU2V0IHRyYWRpdGlvbmFsIHRvIHRydWUgZm9yIGpRdWVyeSA8PSAxLjMuMiBiZWhhdmlvci4KCQlpZiAoIHRyYWRpdGlvbmFsID09PSB1bmRlZmluZWQgKSB7CgkJCXRyYWRpdGlvbmFsID0galF1ZXJ5LmFqYXhTZXR0aW5ncy50cmFkaXRpb25hbDsKCQl9CgoJCS8vIElmIGFuIGFycmF5IHdhcyBwYXNzZWQgaW4sIGFzc3VtZSB0aGF0IGl0IGlzIGFuIGFycmF5IG9mIGZvcm0gZWxlbWVudHMuCgkJaWYgKCBqUXVlcnkuaXNBcnJheSggYSApIHx8ICggYS5qcXVlcnkgJiYgIWpRdWVyeS5pc1BsYWluT2JqZWN0KCBhICkgKSApIHsKCQkJLy8gU2VyaWFsaXplIHRoZSBmb3JtIGVsZW1lbnRzCgkJCWpRdWVyeS5lYWNoKCBhLCBmdW5jdGlvbigpIHsKCQkJCWFkZCggdGhpcy5uYW1lLCB0aGlzLnZhbHVlICk7CgkJCX0gKTsKCgkJfSBlbHNlIHsKCQkJLy8gSWYgdHJhZGl0aW9uYWwsIGVuY29kZSB0aGUgIm9sZCIgd2F5ICh0aGUgd2F5IDEuMy4yIG9yIG9sZGVyCgkJCS8vIGRpZCBpdCksIG90aGVyd2lzZSBlbmNvZGUgcGFyYW1zIHJlY3Vyc2l2ZWx5LgoJCQlmb3IgKCB2YXIgcHJlZml4IGluIGEgKSB7CgkJCQlidWlsZFBhcmFtcyggcHJlZml4LCBhWyBwcmVmaXggXSwgdHJhZGl0aW9uYWwsIGFkZCApOwoJCQl9CgkJfQoKCQkvLyBSZXR1cm4gdGhlIHJlc3VsdGluZyBzZXJpYWxpemF0aW9uCgkJcmV0dXJuIHMuam9pbiggIiYiICkucmVwbGFjZSggcjIwLCAiKyIgKTsKCX0KfSk7CgpmdW5jdGlvbiBidWlsZFBhcmFtcyggcHJlZml4LCBvYmosIHRyYWRpdGlvbmFsLCBhZGQgKSB7CglpZiAoIGpRdWVyeS5pc0FycmF5KCBvYmogKSAmJiBvYmoubGVuZ3RoICkgewoJCS8vIFNlcmlhbGl6ZSBhcnJheSBpdGVtLgoJCWpRdWVyeS5lYWNoKCBvYmosIGZ1bmN0aW9uKCBpLCB2ICkgewoJCQlpZiAoIHRyYWRpdGlvbmFsIHx8IHJicmFja2V0LnRlc3QoIHByZWZpeCApICkgewoJCQkJLy8gVHJlYXQgZWFjaCBhcnJheSBpdGVtIGFzIGEgc2NhbGFyLgoJCQkJYWRkKCBwcmVmaXgsIHYgKTsKCgkJCX0gZWxzZSB7CgkJCQkvLyBJZiBhcnJheSBpdGVtIGlzIG5vbi1zY2FsYXIgKGFycmF5IG9yIG9iamVjdCksIGVuY29kZSBpdHMKCQkJCS8vIG51bWVyaWMgaW5kZXggdG8gcmVzb2x2ZSBkZXNlcmlhbGl6YXRpb24gYW1iaWd1aXR5IGlzc3Vlcy4KCQkJCS8vIE5vdGUgdGhhdCByYWNrIChhcyBvZiAxLjAuMCkgY2FuJ3QgY3VycmVudGx5IGRlc2VyaWFsaXplCgkJCQkvLyBuZXN0ZWQgYXJyYXlzIHByb3Blcmx5LCBhbmQgYXR0ZW1wdGluZyB0byBkbyBzbyBtYXkgY2F1c2UKCQkJCS8vIGEgc2VydmVyIGVycm9yLiBQb3NzaWJsZSBmaXhlcyBhcmUgdG8gbW9kaWZ5IHJhY2sncwoJCQkJLy8gZGVzZXJpYWxpemF0aW9uIGFsZ29yaXRobSBvciB0byBwcm92aWRlIGFuIG9wdGlvbiBvciBmbGFnCgkJCQkvLyB0byBmb3JjZSBhcnJheSBzZXJpYWxpemF0aW9uIHRvIGJlIHNoYWxsb3cuCgkJCQlidWlsZFBhcmFtcyggcHJlZml4ICsgIlsiICsgKCB0eXBlb2YgdiA9PT0gIm9iamVjdCIgfHwgalF1ZXJ5LmlzQXJyYXkodikgPyBpIDogIiIgKSArICJdIiwgdiwgdHJhZGl0aW9uYWwsIGFkZCApOwoJCQl9CgkJfSk7CgoJfSBlbHNlIGlmICggIXRyYWRpdGlvbmFsICYmIG9iaiAhPSBudWxsICYmIHR5cGVvZiBvYmogPT09ICJvYmplY3QiICkgewoJCS8vIElmIHdlIHNlZSBhbiBhcnJheSBoZXJlLCBpdCBpcyBlbXB0eSBhbmQgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYW4gZW1wdHkKCQkvLyBvYmplY3QKCQlpZiAoIGpRdWVyeS5pc0FycmF5KCBvYmogKSB8fCBqUXVlcnkuaXNFbXB0eU9iamVjdCggb2JqICkgKSB7CgkJCWFkZCggcHJlZml4LCAiIiApOwoKCQkvLyBTZXJpYWxpemUgb2JqZWN0IGl0ZW0uCgkJfSBlbHNlIHsKCQkJZm9yICggdmFyIG5hbWUgaW4gb2JqICkgewoJCQkJYnVpbGRQYXJhbXMoIHByZWZpeCArICJbIiArIG5hbWUgKyAiXSIsIG9ialsgbmFtZSBdLCB0cmFkaXRpb25hbCwgYWRkICk7CgkJCX0KCQl9CgoJfSBlbHNlIHsKCQkvLyBTZXJpYWxpemUgc2NhbGFyIGl0ZW0uCgkJYWRkKCBwcmVmaXgsIG9iaiApOwoJfQp9CgovLyBUaGlzIGlzIHN0aWxsIG9uIHRoZSBqUXVlcnkgb2JqZWN0Li4uIGZvciBub3cKLy8gV2FudCB0byBtb3ZlIHRoaXMgdG8galF1ZXJ5LmFqYXggc29tZSBkYXkKalF1ZXJ5LmV4dGVuZCh7CgoJLy8gQ291bnRlciBmb3IgaG9sZGluZyB0aGUgbnVtYmVyIG9mIGFjdGl2ZSBxdWVyaWVzCglhY3RpdmU6IDAsCgoJLy8gTGFzdC1Nb2RpZmllZCBoZWFkZXIgY2FjaGUgZm9yIG5leHQgcmVxdWVzdAoJbGFzdE1vZGlmaWVkOiB7fSwKCWV0YWc6IHt9Cgp9KTsKCi8qIEhhbmRsZXMgcmVzcG9uc2VzIHRvIGFuIGFqYXggcmVxdWVzdDoKICogLSBzZXRzIGFsbCByZXNwb25zZVhYWCBmaWVsZHMgYWNjb3JkaW5nbHkKICogLSBmaW5kcyB0aGUgcmlnaHQgZGF0YVR5cGUgKG1lZGlhdGVzIGJldHdlZW4gY29udGVudC10eXBlIGFuZCBleHBlY3RlZCBkYXRhVHlwZSkKICogLSByZXR1cm5zIHRoZSBjb3JyZXNwb25kaW5nIHJlc3BvbnNlCiAqLwpmdW5jdGlvbiBhamF4SGFuZGxlUmVzcG9uc2VzKCBzLCBqcVhIUiwgcmVzcG9uc2VzICkgewoKCXZhciBjb250ZW50cyA9IHMuY29udGVudHMsCgkJZGF0YVR5cGVzID0gcy5kYXRhVHlwZXMsCgkJcmVzcG9uc2VGaWVsZHMgPSBzLnJlc3BvbnNlRmllbGRzLAoJCWN0LAoJCXR5cGUsCgkJZmluYWxEYXRhVHlwZSwKCQlmaXJzdERhdGFUeXBlOwoKCS8vIEZpbGwgcmVzcG9uc2VYWFggZmllbGRzCglmb3IoIHR5cGUgaW4gcmVzcG9uc2VGaWVsZHMgKSB7CgkJaWYgKCB0eXBlIGluIHJlc3BvbnNlcyApIHsKCQkJanFYSFJbIHJlc3BvbnNlRmllbGRzW3R5cGVdIF0gPSByZXNwb25zZXNbIHR5cGUgXTsKCQl9Cgl9CgoJLy8gUmVtb3ZlIGF1dG8gZGF0YVR5cGUgYW5kIGdldCBjb250ZW50LXR5cGUgaW4gdGhlIHByb2Nlc3MKCXdoaWxlKCBkYXRhVHlwZXNbIDAgXSA9PT0gIioiICkgewoJCWRhdGFUeXBlcy5zaGlmdCgpOwoJCWlmICggY3QgPT09IHVuZGVmaW5lZCApIHsKCQkJY3QgPSBzLm1pbWVUeXBlIHx8IGpxWEhSLmdldFJlc3BvbnNlSGVhZGVyKCAiY29udGVudC10eXBlIiApOwoJCX0KCX0KCgkvLyBDaGVjayBpZiB3ZSdyZSBkZWFsaW5nIHdpdGggYSBrbm93biBjb250ZW50LXR5cGUKCWlmICggY3QgKSB7CgkJZm9yICggdHlwZSBpbiBjb250ZW50cyApIHsKCQkJaWYgKCBjb250ZW50c1sgdHlwZSBdICYmIGNvbnRlbnRzWyB0eXBlIF0udGVzdCggY3QgKSApIHsKCQkJCWRhdGFUeXBlcy51bnNoaWZ0KCB0eXBlICk7CgkJCQlicmVhazsKCQkJfQoJCX0KCX0KCgkvLyBDaGVjayB0byBzZWUgaWYgd2UgaGF2ZSBhIHJlc3BvbnNlIGZvciB0aGUgZXhwZWN0ZWQgZGF0YVR5cGUKCWlmICggZGF0YVR5cGVzWyAwIF0gaW4gcmVzcG9uc2VzICkgewoJCWZpbmFsRGF0YVR5cGUgPSBkYXRhVHlwZXNbIDAgXTsKCX0gZWxzZSB7CgkJLy8gVHJ5IGNvbnZlcnRpYmxlIGRhdGFUeXBlcwoJCWZvciAoIHR5cGUgaW4gcmVzcG9uc2VzICkgewoJCQlpZiAoICFkYXRhVHlwZXNbIDAgXSB8fCBzLmNvbnZlcnRlcnNbIHR5cGUgKyAiICIgKyBkYXRhVHlwZXNbMF0gXSApIHsKCQkJCWZpbmFsRGF0YVR5cGUgPSB0eXBlOwoJCQkJYnJlYWs7CgkJCX0KCQkJaWYgKCAhZmlyc3REYXRhVHlwZSApIHsKCQkJCWZpcnN0RGF0YVR5cGUgPSB0eXBlOwoJCQl9CgkJfQoJCS8vIE9yIGp1c3QgdXNlIGZpcnN0IG9uZQoJCWZpbmFsRGF0YVR5cGUgPSBmaW5hbERhdGFUeXBlIHx8IGZpcnN0RGF0YVR5cGU7Cgl9CgoJLy8gSWYgd2UgZm91bmQgYSBkYXRhVHlwZQoJLy8gV2UgYWRkIHRoZSBkYXRhVHlwZSB0byB0aGUgbGlzdCBpZiBuZWVkZWQKCS8vIGFuZCByZXR1cm4gdGhlIGNvcnJlc3BvbmRpbmcgcmVzcG9uc2UKCWlmICggZmluYWxEYXRhVHlwZSApIHsKCQlpZiAoIGZpbmFsRGF0YVR5cGUgIT09IGRhdGFUeXBlc1sgMCBdICkgewoJCQlkYXRhVHlwZXMudW5zaGlmdCggZmluYWxEYXRhVHlwZSApOwoJCX0KCQlyZXR1cm4gcmVzcG9uc2VzWyBmaW5hbERhdGFUeXBlIF07Cgl9Cn0KCi8vIENoYWluIGNvbnZlcnNpb25zIGdpdmVuIHRoZSByZXF1ZXN0IGFuZCB0aGUgb3JpZ2luYWwgcmVzcG9uc2UKZnVuY3Rpb24gYWpheENvbnZlcnQoIHMsIHJlc3BvbnNlICkgewoKCS8vIEFwcGx5IHRoZSBkYXRhRmlsdGVyIGlmIHByb3ZpZGVkCglpZiAoIHMuZGF0YUZpbHRlciApIHsKCQlyZXNwb25zZSA9IHMuZGF0YUZpbHRlciggcmVzcG9uc2UsIHMuZGF0YVR5cGUgKTsKCX0KCgl2YXIgZGF0YVR5cGVzID0gcy5kYXRhVHlwZXMsCgkJY29udmVydGVycyA9IHt9LAoJCWksCgkJa2V5LAoJCWxlbmd0aCA9IGRhdGFUeXBlcy5sZW5ndGgsCgkJdG1wLAoJCS8vIEN1cnJlbnQgYW5kIHByZXZpb3VzIGRhdGFUeXBlcwoJCWN1cnJlbnQgPSBkYXRhVHlwZXNbIDAgXSwKCQlwcmV2LAoJCS8vIENvbnZlcnNpb24gZXhwcmVzc2lvbgoJCWNvbnZlcnNpb24sCgkJLy8gQ29udmVyc2lvbiBmdW5jdGlvbgoJCWNvbnYsCgkJLy8gQ29udmVyc2lvbiBmdW5jdGlvbnMgKHRyYW5zaXRpdmUgY29udmVyc2lvbikKCQljb252MSwKCQljb252MjsKCgkvLyBGb3IgZWFjaCBkYXRhVHlwZSBpbiB0aGUgY2hhaW4KCWZvciggaSA9IDE7IGkgPCBsZW5ndGg7IGkrKyApIHsKCgkJLy8gQ3JlYXRlIGNvbnZlcnRlcnMgbWFwCgkJLy8gd2l0aCBsb3dlcmNhc2VkIGtleXMKCQlpZiAoIGkgPT09IDEgKSB7CgkJCWZvcigga2V5IGluIHMuY29udmVydGVycyApIHsKCQkJCWlmKCB0eXBlb2Yga2V5ID09PSAic3RyaW5nIiApIHsKCQkJCQljb252ZXJ0ZXJzWyBrZXkudG9Mb3dlckNhc2UoKSBdID0gcy5jb252ZXJ0ZXJzWyBrZXkgXTsKCQkJCX0KCQkJfQoJCX0KCgkJLy8gR2V0IHRoZSBkYXRhVHlwZXMKCQlwcmV2ID0gY3VycmVudDsKCQljdXJyZW50ID0gZGF0YVR5cGVzWyBpIF07CgoJCS8vIElmIGN1cnJlbnQgaXMgYXV0byBkYXRhVHlwZSwgdXBkYXRlIGl0IHRvIHByZXYKCQlpZiggY3VycmVudCA9PT0gIioiICkgewoJCQljdXJyZW50ID0gcHJldjsKCQkvLyBJZiBubyBhdXRvIGFuZCBkYXRhVHlwZXMgYXJlIGFjdHVhbGx5IGRpZmZlcmVudAoJCX0gZWxzZSBpZiAoIHByZXYgIT09ICIqIiAmJiBwcmV2ICE9PSBjdXJyZW50ICkgewoKCQkJLy8gR2V0IHRoZSBjb252ZXJ0ZXIKCQkJY29udmVyc2lvbiA9IHByZXYgKyAiICIgKyBjdXJyZW50OwoJCQljb252ID0gY29udmVydGVyc1sgY29udmVyc2lvbiBdIHx8IGNvbnZlcnRlcnNbICIqICIgKyBjdXJyZW50IF07CgoJCQkvLyBJZiB0aGVyZSBpcyBubyBkaXJlY3QgY29udmVydGVyLCBzZWFyY2ggdHJhbnNpdGl2ZWx5CgkJCWlmICggIWNvbnYgKSB7CgkJCQljb252MiA9IHVuZGVmaW5lZDsKCQkJCWZvciggY29udjEgaW4gY29udmVydGVycyApIHsKCQkJCQl0bXAgPSBjb252MS5zcGxpdCggIiAiICk7CgkJCQkJaWYgKCB0bXBbIDAgXSA9PT0gcHJldiB8fCB0bXBbIDAgXSA9PT0gIioiICkgewoJCQkJCQljb252MiA9IGNvbnZlcnRlcnNbIHRtcFsxXSArICIgIiArIGN1cnJlbnQgXTsKCQkJCQkJaWYgKCBjb252MiApIHsKCQkJCQkJCWNvbnYxID0gY29udmVydGVyc1sgY29udjEgXTsKCQkJCQkJCWlmICggY29udjEgPT09IHRydWUgKSB7CgkJCQkJCQkJY29udiA9IGNvbnYyOwoJCQkJCQkJfSBlbHNlIGlmICggY29udjIgPT09IHRydWUgKSB7CgkJCQkJCQkJY29udiA9IGNvbnYxOwoJCQkJCQkJfQoJCQkJCQkJYnJlYWs7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCX0KCQkJLy8gSWYgd2UgZm91bmQgbm8gY29udmVydGVyLCBkaXNwYXRjaCBhbiBlcnJvcgoJCQlpZiAoICEoIGNvbnYgfHwgY29udjIgKSApIHsKCQkJCWpRdWVyeS5lcnJvciggIk5vIGNvbnZlcnNpb24gZnJvbSAiICsgY29udmVyc2lvbi5yZXBsYWNlKCIgIiwiIHRvICIpICk7CgkJCX0KCQkJLy8gSWYgZm91bmQgY29udmVydGVyIGlzIG5vdCBhbiBlcXVpdmFsZW5jZQoJCQlpZiAoIGNvbnYgIT09IHRydWUgKSB7CgkJCQkvLyBDb252ZXJ0IHdpdGggMSBvciAyIGNvbnZlcnRlcnMgYWNjb3JkaW5nbHkKCQkJCXJlc3BvbnNlID0gY29udiA/IGNvbnYoIHJlc3BvbnNlICkgOiBjb252MiggY29udjEocmVzcG9uc2UpICk7CgkJCX0KCQl9Cgl9CglyZXR1cm4gcmVzcG9uc2U7Cn0KCgoKCnZhciBqc2MgPSBqUXVlcnkubm93KCksCglqc3JlID0gLyhcPSlcPygmfCQpfCgpXD9cPygpL2k7CgovLyBEZWZhdWx0IGpzb25wIHNldHRpbmdzCmpRdWVyeS5hamF4U2V0dXAoewoJanNvbnA6ICJjYWxsYmFjayIsCglqc29ucENhbGxiYWNrOiBmdW5jdGlvbigpIHsKCQlyZXR1cm4galF1ZXJ5LmV4cGFuZG8gKyAiXyIgKyAoIGpzYysrICk7Cgl9Cn0pOwoKLy8gRGV0ZWN0LCBub3JtYWxpemUgb3B0aW9ucyBhbmQgaW5zdGFsbCBjYWxsYmFja3MgZm9yIGpzb25wIHJlcXVlc3RzCmpRdWVyeS5hamF4UHJlZmlsdGVyKCAianNvbiBqc29ucCIsIGZ1bmN0aW9uKCBzLCBvcmlnaW5hbFNldHRpbmdzLCBqcVhIUiApIHsKCgl2YXIgZGF0YUlzU3RyaW5nID0gKCB0eXBlb2Ygcy5kYXRhID09PSAic3RyaW5nIiApOwoKCWlmICggcy5kYXRhVHlwZXNbIDAgXSA9PT0gImpzb25wIiB8fAoJCW9yaWdpbmFsU2V0dGluZ3MuanNvbnBDYWxsYmFjayB8fAoJCW9yaWdpbmFsU2V0dGluZ3MuanNvbnAgIT0gbnVsbCB8fAoJCXMuanNvbnAgIT09IGZhbHNlICYmICgganNyZS50ZXN0KCBzLnVybCApIHx8CgkJCQlkYXRhSXNTdHJpbmcgJiYganNyZS50ZXN0KCBzLmRhdGEgKSApICkgewoKCQl2YXIgcmVzcG9uc2VDb250YWluZXIsCgkJCWpzb25wQ2FsbGJhY2sgPSBzLmpzb25wQ2FsbGJhY2sgPQoJCQkJalF1ZXJ5LmlzRnVuY3Rpb24oIHMuanNvbnBDYWxsYmFjayApID8gcy5qc29ucENhbGxiYWNrKCkgOiBzLmpzb25wQ2FsbGJhY2ssCgkJCXByZXZpb3VzID0gd2luZG93WyBqc29ucENhbGxiYWNrIF0sCgkJCXVybCA9IHMudXJsLAoJCQlkYXRhID0gcy5kYXRhLAoJCQlyZXBsYWNlID0gIiQxIiArIGpzb25wQ2FsbGJhY2sgKyAiJDIiLAoJCQljbGVhblVwID0gZnVuY3Rpb24oKSB7CgkJCQkvLyBTZXQgY2FsbGJhY2sgYmFjayB0byBwcmV2aW91cyB2YWx1ZQoJCQkJd2luZG93WyBqc29ucENhbGxiYWNrIF0gPSBwcmV2aW91czsKCQkJCS8vIENhbGwgaWYgaXQgd2FzIGEgZnVuY3Rpb24gYW5kIHdlIGhhdmUgYSByZXNwb25zZQoJCQkJaWYgKCByZXNwb25zZUNvbnRhaW5lciAmJiBqUXVlcnkuaXNGdW5jdGlvbiggcHJldmlvdXMgKSApIHsKCQkJCQl3aW5kb3dbIGpzb25wQ2FsbGJhY2sgXSggcmVzcG9uc2VDb250YWluZXJbIDAgXSApOwoJCQkJfQoJCQl9OwoKCQlpZiAoIHMuanNvbnAgIT09IGZhbHNlICkgewoJCQl1cmwgPSB1cmwucmVwbGFjZSgganNyZSwgcmVwbGFjZSApOwoJCQlpZiAoIHMudXJsID09PSB1cmwgKSB7CgkJCQlpZiAoIGRhdGFJc1N0cmluZyApIHsKCQkJCQlkYXRhID0gZGF0YS5yZXBsYWNlKCBqc3JlLCByZXBsYWNlICk7CgkJCQl9CgkJCQlpZiAoIHMuZGF0YSA9PT0gZGF0YSApIHsKCQkJCQkvLyBBZGQgY2FsbGJhY2sgbWFudWFsbHkKCQkJCQl1cmwgKz0gKC9cPy8udGVzdCggdXJsICkgPyAiJiIgOiAiPyIpICsgcy5qc29ucCArICI9IiArIGpzb25wQ2FsbGJhY2s7CgkJCQl9CgkJCX0KCQl9CgoJCXMudXJsID0gdXJsOwoJCXMuZGF0YSA9IGRhdGE7CgoJCS8vIEluc3RhbGwgY2FsbGJhY2sKCQl3aW5kb3dbIGpzb25wQ2FsbGJhY2sgXSA9IGZ1bmN0aW9uKCByZXNwb25zZSApIHsKCQkJcmVzcG9uc2VDb250YWluZXIgPSBbIHJlc3BvbnNlIF07CgkJfTsKCgkJLy8gSW5zdGFsbCBjbGVhblVwIGZ1bmN0aW9uCgkJanFYSFIudGhlbiggY2xlYW5VcCwgY2xlYW5VcCApOwoKCQkvLyBVc2UgZGF0YSBjb252ZXJ0ZXIgdG8gcmV0cmlldmUganNvbiBhZnRlciBzY3JpcHQgZXhlY3V0aW9uCgkJcy5jb252ZXJ0ZXJzWyJzY3JpcHQganNvbiJdID0gZnVuY3Rpb24oKSB7CgkJCWlmICggIXJlc3BvbnNlQ29udGFpbmVyICkgewoJCQkJalF1ZXJ5LmVycm9yKCBqc29ucENhbGxiYWNrICsgIiB3YXMgbm90IGNhbGxlZCIgKTsKCQkJfQoJCQlyZXR1cm4gcmVzcG9uc2VDb250YWluZXJbIDAgXTsKCQl9OwoKCQkvLyBmb3JjZSBqc29uIGRhdGFUeXBlCgkJcy5kYXRhVHlwZXNbIDAgXSA9ICJqc29uIjsKCgkJLy8gRGVsZWdhdGUgdG8gc2NyaXB0CgkJcmV0dXJuICJzY3JpcHQiOwoJfQp9ICk7CgoKCgovLyBJbnN0YWxsIHNjcmlwdCBkYXRhVHlwZQpqUXVlcnkuYWpheFNldHVwKHsKCWFjY2VwdHM6IHsKCQlzY3JpcHQ6ICJ0ZXh0L2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2VjbWFzY3JpcHQsIGFwcGxpY2F0aW9uL3gtZWNtYXNjcmlwdCIKCX0sCgljb250ZW50czogewoJCXNjcmlwdDogL2phdmFzY3JpcHR8ZWNtYXNjcmlwdC8KCX0sCgljb252ZXJ0ZXJzOiB7CgkJInRleHQgc2NyaXB0IjogZnVuY3Rpb24oIHRleHQgKSB7CgkJCWpRdWVyeS5nbG9iYWxFdmFsKCB0ZXh0ICk7CgkJCXJldHVybiB0ZXh0OwoJCX0KCX0KfSk7CgovLyBIYW5kbGUgY2FjaGUncyBzcGVjaWFsIGNhc2UgYW5kIGdsb2JhbApqUXVlcnkuYWpheFByZWZpbHRlciggInNjcmlwdCIsIGZ1bmN0aW9uKCBzICkgewoJaWYgKCBzLmNhY2hlID09PSB1bmRlZmluZWQgKSB7CgkJcy5jYWNoZSA9IGZhbHNlOwoJfQoJaWYgKCBzLmNyb3NzRG9tYWluICkgewoJCXMudHlwZSA9ICJHRVQiOwoJCXMuZ2xvYmFsID0gZmFsc2U7Cgl9Cn0gKTsKCi8vIEJpbmQgc2NyaXB0IHRhZyBoYWNrIHRyYW5zcG9ydApqUXVlcnkuYWpheFRyYW5zcG9ydCggInNjcmlwdCIsIGZ1bmN0aW9uKHMpIHsKCgkvLyBUaGlzIHRyYW5zcG9ydCBvbmx5IGRlYWxzIHdpdGggY3Jvc3MgZG9tYWluIHJlcXVlc3RzCglpZiAoIHMuY3Jvc3NEb21haW4gKSB7CgoJCXZhciBzY3JpcHQsCgkJCWhlYWQgPSBkb2N1bWVudC5oZWFkIHx8IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCAiaGVhZCIgKVswXSB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CgoJCXJldHVybiB7CgoJCQlzZW5kOiBmdW5jdGlvbiggXywgY2FsbGJhY2sgKSB7CgoJCQkJc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggInNjcmlwdCIgKTsKCgkJCQlzY3JpcHQuYXN5bmMgPSAiYXN5bmMiOwoKCQkJCWlmICggcy5zY3JpcHRDaGFyc2V0ICkgewoJCQkJCXNjcmlwdC5jaGFyc2V0ID0gcy5zY3JpcHRDaGFyc2V0OwoJCQkJfQoKCQkJCXNjcmlwdC5zcmMgPSBzLnVybDsKCgkJCQkvLyBBdHRhY2ggaGFuZGxlcnMgZm9yIGFsbCBicm93c2VycwoJCQkJc2NyaXB0Lm9ubG9hZCA9IHNjcmlwdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiggXywgaXNBYm9ydCApIHsKCgkJCQkJaWYgKCAhc2NyaXB0LnJlYWR5U3RhdGUgfHwgL2xvYWRlZHxjb21wbGV0ZS8udGVzdCggc2NyaXB0LnJlYWR5U3RhdGUgKSApIHsKCgkJCQkJCS8vIEhhbmRsZSBtZW1vcnkgbGVhayBpbiBJRQoJCQkJCQlzY3JpcHQub25sb2FkID0gc2NyaXB0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IG51bGw7CgoJCQkJCQkvLyBSZW1vdmUgdGhlIHNjcmlwdAoJCQkJCQlpZiAoIGhlYWQgJiYgc2NyaXB0LnBhcmVudE5vZGUgKSB7CgkJCQkJCQloZWFkLnJlbW92ZUNoaWxkKCBzY3JpcHQgKTsKCQkJCQkJfQoKCQkJCQkJLy8gRGVyZWZlcmVuY2UgdGhlIHNjcmlwdAoJCQkJCQlzY3JpcHQgPSB1bmRlZmluZWQ7CgoJCQkJCQkvLyBDYWxsYmFjayBpZiBub3QgYWJvcnQKCQkJCQkJaWYgKCAhaXNBYm9ydCApIHsKCQkJCQkJCWNhbGxiYWNrKCAyMDAsICJzdWNjZXNzIiApOwoJCQkJCQl9CgkJCQkJfQoJCQkJfTsKCQkJCS8vIFVzZSBpbnNlcnRCZWZvcmUgaW5zdGVhZCBvZiBhcHBlbmRDaGlsZCAgdG8gY2lyY3VtdmVudCBhbiBJRTYgYnVnLgoJCQkJLy8gVGhpcyBhcmlzZXMgd2hlbiBhIGJhc2Ugbm9kZSBpcyB1c2VkICgjMjcwOSBhbmQgIzQzNzgpLgoJCQkJaGVhZC5pbnNlcnRCZWZvcmUoIHNjcmlwdCwgaGVhZC5maXJzdENoaWxkICk7CgkJCX0sCgoJCQlhYm9ydDogZnVuY3Rpb24oKSB7CgkJCQlpZiAoIHNjcmlwdCApIHsKCQkJCQlzY3JpcHQub25sb2FkKCAwLCAxICk7CgkJCQl9CgkJCX0KCQl9OwoJfQp9ICk7CgoKCgp2YXIgLy8gIzUyODA6IG5leHQgYWN0aXZlIHhociBpZCBhbmQgbGlzdCBvZiBhY3RpdmUgeGhycycgY2FsbGJhY2tzCgl4aHJJZCA9IGpRdWVyeS5ub3coKSwKCXhockNhbGxiYWNrcywKCgkvLyBYSFIgdXNlZCB0byBkZXRlcm1pbmUgc3VwcG9ydHMgcHJvcGVydGllcwoJdGVzdFhIUjsKCi8vICM1MjgwOiBJbnRlcm5ldCBFeHBsb3JlciB3aWxsIGtlZXAgY29ubmVjdGlvbnMgYWxpdmUgaWYgd2UgZG9uJ3QgYWJvcnQgb24gdW5sb2FkCmZ1bmN0aW9uIHhock9uVW5sb2FkQWJvcnQoKSB7CglqUXVlcnkoIHdpbmRvdyApLnVubG9hZChmdW5jdGlvbigpIHsKCQkvLyBBYm9ydCBhbGwgcGVuZGluZyByZXF1ZXN0cwoJCWZvciAoIHZhciBrZXkgaW4geGhyQ2FsbGJhY2tzICkgewoJCQl4aHJDYWxsYmFja3NbIGtleSBdKCAwLCAxICk7CgkJfQoJfSk7Cn0KCi8vIEZ1bmN0aW9ucyB0byBjcmVhdGUgeGhycwpmdW5jdGlvbiBjcmVhdGVTdGFuZGFyZFhIUigpIHsKCXRyeSB7CgkJcmV0dXJuIG5ldyB3aW5kb3cuWE1MSHR0cFJlcXVlc3QoKTsKCX0gY2F0Y2goIGUgKSB7fQp9CgpmdW5jdGlvbiBjcmVhdGVBY3RpdmVYSFIoKSB7Cgl0cnkgewoJCXJldHVybiBuZXcgd2luZG93LkFjdGl2ZVhPYmplY3QoICJNaWNyb3NvZnQuWE1MSFRUUCIgKTsKCX0gY2F0Y2goIGUgKSB7fQp9CgovLyBDcmVhdGUgdGhlIHJlcXVlc3Qgb2JqZWN0Ci8vIChUaGlzIGlzIHN0aWxsIGF0dGFjaGVkIHRvIGFqYXhTZXR0aW5ncyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSkKalF1ZXJ5LmFqYXhTZXR0aW5ncy54aHIgPSB3aW5kb3cuQWN0aXZlWE9iamVjdCA/CgkvKiBNaWNyb3NvZnQgZmFpbGVkIHRvIHByb3Blcmx5CgkgKiBpbXBsZW1lbnQgdGhlIFhNTEh0dHBSZXF1ZXN0IGluIElFNyAoY2FuJ3QgcmVxdWVzdCBsb2NhbCBmaWxlcyksCgkgKiBzbyB3ZSB1c2UgdGhlIEFjdGl2ZVhPYmplY3Qgd2hlbiBpdCBpcyBhdmFpbGFibGUKCSAqIEFkZGl0aW9uYWxseSBYTUxIdHRwUmVxdWVzdCBjYW4gYmUgZGlzYWJsZWQgaW4gSUU3L0lFOCBzbwoJICogd2UgbmVlZCBhIGZhbGxiYWNrLgoJICovCglmdW5jdGlvbigpIHsKCQlyZXR1cm4gIXRoaXMuaXNMb2NhbCAmJiBjcmVhdGVTdGFuZGFyZFhIUigpIHx8IGNyZWF0ZUFjdGl2ZVhIUigpOwoJfSA6CgkvLyBGb3IgYWxsIG90aGVyIGJyb3dzZXJzLCB1c2UgdGhlIHN0YW5kYXJkIFhNTEh0dHBSZXF1ZXN0IG9iamVjdAoJY3JlYXRlU3RhbmRhcmRYSFI7CgovLyBUZXN0IGlmIHdlIGNhbiBjcmVhdGUgYW4geGhyIG9iamVjdAp0ZXN0WEhSID0galF1ZXJ5LmFqYXhTZXR0aW5ncy54aHIoKTsKalF1ZXJ5LnN1cHBvcnQuYWpheCA9ICEhdGVzdFhIUjsKCi8vIERvZXMgdGhpcyBicm93c2VyIHN1cHBvcnQgY3Jvc3NEb21haW4gWEhSIHJlcXVlc3RzCmpRdWVyeS5zdXBwb3J0LmNvcnMgPSB0ZXN0WEhSICYmICggIndpdGhDcmVkZW50aWFscyIgaW4gdGVzdFhIUiApOwoKLy8gTm8gbmVlZCBmb3IgdGhlIHRlbXBvcmFyeSB4aHIgYW55bW9yZQp0ZXN0WEhSID0gdW5kZWZpbmVkOwoKLy8gQ3JlYXRlIHRyYW5zcG9ydCBpZiB0aGUgYnJvd3NlciBjYW4gcHJvdmlkZSBhbiB4aHIKaWYgKCBqUXVlcnkuc3VwcG9ydC5hamF4ICkgewoKCWpRdWVyeS5hamF4VHJhbnNwb3J0KGZ1bmN0aW9uKCBzICkgewoJCS8vIENyb3NzIGRvbWFpbiBvbmx5IGFsbG93ZWQgaWYgc3VwcG9ydGVkIHRocm91Z2ggWE1MSHR0cFJlcXVlc3QKCQlpZiAoICFzLmNyb3NzRG9tYWluIHx8IGpRdWVyeS5zdXBwb3J0LmNvcnMgKSB7CgoJCQl2YXIgY2FsbGJhY2s7CgoJCQlyZXR1cm4gewoJCQkJc2VuZDogZnVuY3Rpb24oIGhlYWRlcnMsIGNvbXBsZXRlICkgewoKCQkJCQkvLyBHZXQgYSBuZXcgeGhyCgkJCQkJdmFyIHhociA9IHMueGhyKCksCgkJCQkJCWhhbmRsZSwKCQkJCQkJaTsKCgkJCQkJLy8gT3BlbiB0aGUgc29ja2V0CgkJCQkJLy8gUGFzc2luZyBudWxsIHVzZXJuYW1lLCBnZW5lcmF0ZXMgYSBsb2dpbiBwb3B1cCBvbiBPcGVyYSAoIzI4NjUpCgkJCQkJaWYgKCBzLnVzZXJuYW1lICkgewoJCQkJCQl4aHIub3Blbiggcy50eXBlLCBzLnVybCwgcy5hc3luYywgcy51c2VybmFtZSwgcy5wYXNzd29yZCApOwoJCQkJCX0gZWxzZSB7CgkJCQkJCXhoci5vcGVuKCBzLnR5cGUsIHMudXJsLCBzLmFzeW5jICk7CgkJCQkJfQoKCQkJCQkvLyBBcHBseSBjdXN0b20gZmllbGRzIGlmIHByb3ZpZGVkCgkJCQkJaWYgKCBzLnhockZpZWxkcyApIHsKCQkJCQkJZm9yICggaSBpbiBzLnhockZpZWxkcyApIHsKCQkJCQkJCXhoclsgaSBdID0gcy54aHJGaWVsZHNbIGkgXTsKCQkJCQkJfQoJCQkJCX0KCgkJCQkJLy8gT3ZlcnJpZGUgbWltZSB0eXBlIGlmIG5lZWRlZAoJCQkJCWlmICggcy5taW1lVHlwZSAmJiB4aHIub3ZlcnJpZGVNaW1lVHlwZSApIHsKCQkJCQkJeGhyLm92ZXJyaWRlTWltZVR5cGUoIHMubWltZVR5cGUgKTsKCQkJCQl9CgoJCQkJCS8vIFJlcXVlc3RlZC1XaXRoIGhlYWRlcgoJCQkJCS8vIE5vdCBzZXQgZm9yIGNyb3NzRG9tYWluIHJlcXVlc3RzIHdpdGggbm8gY29udGVudAoJCQkJCS8vIChzZWUgd2h5IGF0IGh0dHA6Ly90cmFjLmRvam90b29sa2l0Lm9yZy90aWNrZXQvOTQ4NikKCQkJCQkvLyBXb24ndCBjaGFuZ2UgaGVhZGVyIGlmIGFscmVhZHkgcHJvdmlkZWQKCQkJCQlpZiAoICEoIHMuY3Jvc3NEb21haW4gJiYgIXMuaGFzQ29udGVudCApICYmICFoZWFkZXJzWyJYLVJlcXVlc3RlZC1XaXRoIl0gKSB7CgkJCQkJCWhlYWRlcnNbICJYLVJlcXVlc3RlZC1XaXRoIiBdID0gIlhNTEh0dHBSZXF1ZXN0IjsKCQkJCQl9CgoJCQkJCS8vIE5lZWQgYW4gZXh0cmEgdHJ5L2NhdGNoIGZvciBjcm9zcyBkb21haW4gcmVxdWVzdHMgaW4gRmlyZWZveCAzCgkJCQkJdHJ5IHsKCQkJCQkJZm9yICggaSBpbiBoZWFkZXJzICkgewoJCQkJCQkJeGhyLnNldFJlcXVlc3RIZWFkZXIoIGksIGhlYWRlcnNbIGkgXSApOwoJCQkJCQl9CgkJCQkJfSBjYXRjaCggXyApIHt9CgoJCQkJCS8vIERvIHNlbmQgdGhlIHJlcXVlc3QKCQkJCQkvLyBUaGlzIG1heSByYWlzZSBhbiBleGNlcHRpb24gd2hpY2ggaXMgYWN0dWFsbHkKCQkJCQkvLyBoYW5kbGVkIGluIGpRdWVyeS5hamF4IChzbyBubyB0cnkvY2F0Y2ggaGVyZSkKCQkJCQl4aHIuc2VuZCggKCBzLmhhc0NvbnRlbnQgJiYgcy5kYXRhICkgfHwgbnVsbCApOwoKCQkJCQkvLyBMaXN0ZW5lcgoJCQkJCWNhbGxiYWNrID0gZnVuY3Rpb24oIF8sIGlzQWJvcnQgKSB7CgoJCQkJCQl2YXIgc3RhdHVzLAoJCQkJCQkJc3RhdHVzVGV4dCwKCQkJCQkJCXJlc3BvbnNlSGVhZGVycywKCQkJCQkJCXJlc3BvbnNlcywKCQkJCQkJCXhtbDsKCgkJCQkJCS8vIEZpcmVmb3ggdGhyb3dzIGV4Y2VwdGlvbnMgd2hlbiBhY2Nlc3NpbmcgcHJvcGVydGllcwoJCQkJCQkvLyBvZiBhbiB4aHIgd2hlbiBhIG5ldHdvcmsgZXJyb3Igb2NjdXJlZAoJCQkJCQkvLyBodHRwOi8vaGVscGZ1bC5rbm9icy1kaWFscy5jb20vaW5kZXgucGhwL0NvbXBvbmVudF9yZXR1cm5lZF9mYWlsdXJlX2NvZGU6XzB4ODAwNDAxMTFfKE5TX0VSUk9SX05PVF9BVkFJTEFCTEUpCgkJCQkJCXRyeSB7CgoJCQkJCQkJLy8gV2FzIG5ldmVyIGNhbGxlZCBhbmQgaXMgYWJvcnRlZCBvciBjb21wbGV0ZQoJCQkJCQkJaWYgKCBjYWxsYmFjayAmJiAoIGlzQWJvcnQgfHwgeGhyLnJlYWR5U3RhdGUgPT09IDQgKSApIHsKCgkJCQkJCQkJLy8gT25seSBjYWxsZWQgb25jZQoJCQkJCQkJCWNhbGxiYWNrID0gdW5kZWZpbmVkOwoKCQkJCQkJCQkvLyBEbyBub3Qga2VlcCBhcyBhY3RpdmUgYW55bW9yZQoJCQkJCQkJCWlmICggaGFuZGxlICkgewoJCQkJCQkJCQl4aHIub25yZWFkeXN0YXRlY2hhbmdlID0galF1ZXJ5Lm5vb3A7CgkJCQkJCQkJCWRlbGV0ZSB4aHJDYWxsYmFja3NbIGhhbmRsZSBdOwoJCQkJCQkJCX0KCgkJCQkJCQkJLy8gSWYgaXQncyBhbiBhYm9ydAoJCQkJCQkJCWlmICggaXNBYm9ydCApIHsKCQkJCQkJCQkJLy8gQWJvcnQgaXQgbWFudWFsbHkgaWYgbmVlZGVkCgkJCQkJCQkJCWlmICggeGhyLnJlYWR5U3RhdGUgIT09IDQgKSB7CgkJCQkJCQkJCQl4aHIuYWJvcnQoKTsKCQkJCQkJCQkJfQoJCQkJCQkJCX0gZWxzZSB7CgkJCQkJCQkJCXN0YXR1cyA9IHhoci5zdGF0dXM7CgkJCQkJCQkJCXJlc3BvbnNlSGVhZGVycyA9IHhoci5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKTsKCQkJCQkJCQkJcmVzcG9uc2VzID0ge307CgkJCQkJCQkJCXhtbCA9IHhoci5yZXNwb25zZVhNTDsKCgkJCQkJCQkJCS8vIENvbnN0cnVjdCByZXNwb25zZSBsaXN0CgkJCQkJCQkJCWlmICggeG1sICYmIHhtbC5kb2N1bWVudEVsZW1lbnQgLyogIzQ5NTggKi8gKSB7CgkJCQkJCQkJCQlyZXNwb25zZXMueG1sID0geG1sOwoJCQkJCQkJCQl9CgkJCQkJCQkJCXJlc3BvbnNlcy50ZXh0ID0geGhyLnJlc3BvbnNlVGV4dDsKCgkJCQkJCQkJCS8vIEZpcmVmb3ggdGhyb3dzIGFuIGV4Y2VwdGlvbiB3aGVuIGFjY2Vzc2luZwoJCQkJCQkJCQkvLyBzdGF0dXNUZXh0IGZvciBmYXVsdHkgY3Jvc3MtZG9tYWluIHJlcXVlc3RzCgkJCQkJCQkJCXRyeSB7CgkJCQkJCQkJCQlzdGF0dXNUZXh0ID0geGhyLnN0YXR1c1RleHQ7CgkJCQkJCQkJCX0gY2F0Y2goIGUgKSB7CgkJCQkJCQkJCQkvLyBXZSBub3JtYWxpemUgd2l0aCBXZWJraXQgZ2l2aW5nIGFuIGVtcHR5IHN0YXR1c1RleHQKCQkJCQkJCQkJCXN0YXR1c1RleHQgPSAiIjsKCQkJCQkJCQkJfQoKCQkJCQkJCQkJLy8gRmlsdGVyIHN0YXR1cyBmb3Igbm9uIHN0YW5kYXJkIGJlaGF2aW9ycwoKCQkJCQkJCQkJLy8gSWYgdGhlIHJlcXVlc3QgaXMgbG9jYWwgYW5kIHdlIGhhdmUgZGF0YTogYXNzdW1lIGEgc3VjY2VzcwoJCQkJCQkJCQkvLyAoc3VjY2VzcyB3aXRoIG5vIGRhdGEgd29uJ3QgZ2V0IG5vdGlmaWVkLCB0aGF0J3MgdGhlIGJlc3Qgd2UKCQkJCQkJCQkJLy8gY2FuIGRvIGdpdmVuIGN1cnJlbnQgaW1wbGVtZW50YXRpb25zKQoJCQkJCQkJCQlpZiAoICFzdGF0dXMgJiYgcy5pc0xvY2FsICYmICFzLmNyb3NzRG9tYWluICkgewoJCQkJCQkJCQkJc3RhdHVzID0gcmVzcG9uc2VzLnRleHQgPyAyMDAgOiA0MDQ7CgkJCQkJCQkJCS8vIElFIC0gIzE0NTA6IHNvbWV0aW1lcyByZXR1cm5zIDEyMjMgd2hlbiBpdCBzaG91bGQgYmUgMjA0CgkJCQkJCQkJCX0gZWxzZSBpZiAoIHN0YXR1cyA9PT0gMTIyMyApIHsKCQkJCQkJCQkJCXN0YXR1cyA9IDIwNDsKCQkJCQkJCQkJfQoJCQkJCQkJCX0KCQkJCQkJCX0KCQkJCQkJfSBjYXRjaCggZmlyZWZveEFjY2Vzc0V4Y2VwdGlvbiApIHsKCQkJCQkJCWlmICggIWlzQWJvcnQgKSB7CgkJCQkJCQkJY29tcGxldGUoIC0xLCBmaXJlZm94QWNjZXNzRXhjZXB0aW9uICk7CgkJCQkJCQl9CgkJCQkJCX0KCgkJCQkJCS8vIENhbGwgY29tcGxldGUgaWYgbmVlZGVkCgkJCQkJCWlmICggcmVzcG9uc2VzICkgewoJCQkJCQkJY29tcGxldGUoIHN0YXR1cywgc3RhdHVzVGV4dCwgcmVzcG9uc2VzLCByZXNwb25zZUhlYWRlcnMgKTsKCQkJCQkJfQoJCQkJCX07CgoJCQkJCS8vIGlmIHdlJ3JlIGluIHN5bmMgbW9kZSBvciBpdCdzIGluIGNhY2hlCgkJCQkJLy8gYW5kIGhhcyBiZWVuIHJldHJpZXZlZCBkaXJlY3RseSAoSUU2ICYgSUU3KQoJCQkJCS8vIHdlIG5lZWQgdG8gbWFudWFsbHkgZmlyZSB0aGUgY2FsbGJhY2sKCQkJCQlpZiAoICFzLmFzeW5jIHx8IHhoci5yZWFkeVN0YXRlID09PSA0ICkgewoJCQkJCQljYWxsYmFjaygpOwoJCQkJCX0gZWxzZSB7CgkJCQkJCS8vIENyZWF0ZSB0aGUgYWN0aXZlIHhocnMgY2FsbGJhY2tzIGxpc3QgaWYgbmVlZGVkCgkJCQkJCS8vIGFuZCBhdHRhY2ggdGhlIHVubG9hZCBoYW5kbGVyCgkJCQkJCWlmICggIXhockNhbGxiYWNrcyApIHsKCQkJCQkJCXhockNhbGxiYWNrcyA9IHt9OwoJCQkJCQkJeGhyT25VbmxvYWRBYm9ydCgpOwoJCQkJCQl9CgkJCQkJCS8vIEFkZCB0byBsaXN0IG9mIGFjdGl2ZSB4aHJzIGNhbGxiYWNrcwoJCQkJCQloYW5kbGUgPSB4aHJJZCsrOwoJCQkJCQl4aHIub25yZWFkeXN0YXRlY2hhbmdlID0geGhyQ2FsbGJhY2tzWyBoYW5kbGUgXSA9IGNhbGxiYWNrOwoJCQkJCX0KCQkJCX0sCgoJCQkJYWJvcnQ6IGZ1bmN0aW9uKCkgewoJCQkJCWlmICggY2FsbGJhY2sgKSB7CgkJCQkJCWNhbGxiYWNrKDAsMSk7CgkJCQkJfQoJCQkJfQoJCQl9OwoJCX0KCX0pOwp9CgoKCgp2YXIgZWxlbWRpc3BsYXkgPSB7fSwKCXJmeHR5cGVzID0gL14oPzp0b2dnbGV8c2hvd3xoaWRlKSQvLAoJcmZ4bnVtID0gL14oWytcLV09KT8oW1xkKy5cLV0rKShbYS16JV0qKSQvaSwKCXRpbWVySWQsCglmeEF0dHJzID0gWwoJCS8vIGhlaWdodCBhbmltYXRpb25zCgkJWyAiaGVpZ2h0IiwgIm1hcmdpblRvcCIsICJtYXJnaW5Cb3R0b20iLCAicGFkZGluZ1RvcCIsICJwYWRkaW5nQm90dG9tIiBdLAoJCS8vIHdpZHRoIGFuaW1hdGlvbnMKCQlbICJ3aWR0aCIsICJtYXJnaW5MZWZ0IiwgIm1hcmdpblJpZ2h0IiwgInBhZGRpbmdMZWZ0IiwgInBhZGRpbmdSaWdodCIgXSwKCQkvLyBvcGFjaXR5IGFuaW1hdGlvbnMKCQlbICJvcGFjaXR5IiBdCgldOwoKalF1ZXJ5LmZuLmV4dGVuZCh7CglzaG93OiBmdW5jdGlvbiggc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSB7CgkJdmFyIGVsZW0sIGRpc3BsYXk7CgoJCWlmICggc3BlZWQgfHwgc3BlZWQgPT09IDAgKSB7CgkJCXJldHVybiB0aGlzLmFuaW1hdGUoIGdlbkZ4KCJzaG93IiwgMyksIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrKTsKCgkJfSBlbHNlIHsKCQkJZm9yICggdmFyIGkgPSAwLCBqID0gdGhpcy5sZW5ndGg7IGkgPCBqOyBpKysgKSB7CgkJCQllbGVtID0gdGhpc1tpXTsKCQkJCWRpc3BsYXkgPSBlbGVtLnN0eWxlLmRpc3BsYXk7CgoJCQkJLy8gUmVzZXQgdGhlIGlubGluZSBkaXNwbGF5IG9mIHRoaXMgZWxlbWVudCB0byBsZWFybiBpZiBpdCBpcwoJCQkJLy8gYmVpbmcgaGlkZGVuIGJ5IGNhc2NhZGVkIHJ1bGVzIG9yIG5vdAoJCQkJaWYgKCAhalF1ZXJ5Ll9kYXRhKGVsZW0sICJvbGRkaXNwbGF5IikgJiYgZGlzcGxheSA9PT0gIm5vbmUiICkgewoJCQkJCWRpc3BsYXkgPSBlbGVtLnN0eWxlLmRpc3BsYXkgPSAiIjsKCQkJCX0KCgkJCQkvLyBTZXQgZWxlbWVudHMgd2hpY2ggaGF2ZSBiZWVuIG92ZXJyaWRkZW4gd2l0aCBkaXNwbGF5OiBub25lCgkJCQkvLyBpbiBhIHN0eWxlc2hlZXQgdG8gd2hhdGV2ZXIgdGhlIGRlZmF1bHQgYnJvd3NlciBzdHlsZSBpcwoJCQkJLy8gZm9yIHN1Y2ggYW4gZWxlbWVudAoJCQkJaWYgKCBkaXNwbGF5ID09PSAiIiAmJiBqUXVlcnkuY3NzKCBlbGVtLCAiZGlzcGxheSIgKSA9PT0gIm5vbmUiICkgewoJCQkJCWpRdWVyeS5fZGF0YShlbGVtLCAib2xkZGlzcGxheSIsIGRlZmF1bHREaXNwbGF5KGVsZW0ubm9kZU5hbWUpKTsKCQkJCX0KCQkJfQoKCQkJLy8gU2V0IHRoZSBkaXNwbGF5IG9mIG1vc3Qgb2YgdGhlIGVsZW1lbnRzIGluIGEgc2Vjb25kIGxvb3AKCQkJLy8gdG8gYXZvaWQgdGhlIGNvbnN0YW50IHJlZmxvdwoJCQlmb3IgKCBpID0gMDsgaSA8IGo7IGkrKyApIHsKCQkJCWVsZW0gPSB0aGlzW2ldOwoJCQkJZGlzcGxheSA9IGVsZW0uc3R5bGUuZGlzcGxheTsKCgkJCQlpZiAoIGRpc3BsYXkgPT09ICIiIHx8IGRpc3BsYXkgPT09ICJub25lIiApIHsKCQkJCQllbGVtLnN0eWxlLmRpc3BsYXkgPSBqUXVlcnkuX2RhdGEoZWxlbSwgIm9sZGRpc3BsYXkiKSB8fCAiIjsKCQkJCX0KCQkJfQoKCQkJcmV0dXJuIHRoaXM7CgkJfQoJfSwKCgloaWRlOiBmdW5jdGlvbiggc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSB7CgkJaWYgKCBzcGVlZCB8fCBzcGVlZCA9PT0gMCApIHsKCQkJcmV0dXJuIHRoaXMuYW5pbWF0ZSggZ2VuRngoImhpZGUiLCAzKSwgc3BlZWQsIGVhc2luZywgY2FsbGJhY2spOwoKCQl9IGVsc2UgewoJCQlmb3IgKCB2YXIgaSA9IDAsIGogPSB0aGlzLmxlbmd0aDsgaSA8IGo7IGkrKyApIHsKCQkJCXZhciBkaXNwbGF5ID0galF1ZXJ5LmNzcyggdGhpc1tpXSwgImRpc3BsYXkiICk7CgoJCQkJaWYgKCBkaXNwbGF5ICE9PSAibm9uZSIgJiYgIWpRdWVyeS5fZGF0YSggdGhpc1tpXSwgIm9sZGRpc3BsYXkiICkgKSB7CgkJCQkJalF1ZXJ5Ll9kYXRhKCB0aGlzW2ldLCAib2xkZGlzcGxheSIsIGRpc3BsYXkgKTsKCQkJCX0KCQkJfQoKCQkJLy8gU2V0IHRoZSBkaXNwbGF5IG9mIHRoZSBlbGVtZW50cyBpbiBhIHNlY29uZCBsb29wCgkJCS8vIHRvIGF2b2lkIHRoZSBjb25zdGFudCByZWZsb3cKCQkJZm9yICggaSA9IDA7IGkgPCBqOyBpKysgKSB7CgkJCQl0aGlzW2ldLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CgkJCX0KCgkJCXJldHVybiB0aGlzOwoJCX0KCX0sCgoJLy8gU2F2ZSB0aGUgb2xkIHRvZ2dsZSBmdW5jdGlvbgoJX3RvZ2dsZTogalF1ZXJ5LmZuLnRvZ2dsZSwKCgl0b2dnbGU6IGZ1bmN0aW9uKCBmbiwgZm4yLCBjYWxsYmFjayApIHsKCQl2YXIgYm9vbCA9IHR5cGVvZiBmbiA9PT0gImJvb2xlYW4iOwoKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKGZuKSAmJiBqUXVlcnkuaXNGdW5jdGlvbihmbjIpICkgewoJCQl0aGlzLl90b2dnbGUuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApOwoKCQl9IGVsc2UgaWYgKCBmbiA9PSBudWxsIHx8IGJvb2wgKSB7CgkJCXRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJCXZhciBzdGF0ZSA9IGJvb2wgPyBmbiA6IGpRdWVyeSh0aGlzKS5pcygiOmhpZGRlbiIpOwoJCQkJalF1ZXJ5KHRoaXMpWyBzdGF0ZSA/ICJzaG93IiA6ICJoaWRlIiBdKCk7CgkJCX0pOwoKCQl9IGVsc2UgewoJCQl0aGlzLmFuaW1hdGUoZ2VuRngoInRvZ2dsZSIsIDMpLCBmbiwgZm4yLCBjYWxsYmFjayk7CgkJfQoKCQlyZXR1cm4gdGhpczsKCX0sCgoJZmFkZVRvOiBmdW5jdGlvbiggc3BlZWQsIHRvLCBlYXNpbmcsIGNhbGxiYWNrICkgewoJCXJldHVybiB0aGlzLmZpbHRlcigiOmhpZGRlbiIpLmNzcygib3BhY2l0eSIsIDApLnNob3coKS5lbmQoKQoJCQkJCS5hbmltYXRlKHtvcGFjaXR5OiB0b30sIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrKTsKCX0sCgoJYW5pbWF0ZTogZnVuY3Rpb24oIHByb3AsIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrICkgewoJCXZhciBvcHRhbGwgPSBqUXVlcnkuc3BlZWQoc3BlZWQsIGVhc2luZywgY2FsbGJhY2spOwoKCQlpZiAoIGpRdWVyeS5pc0VtcHR5T2JqZWN0KCBwcm9wICkgKSB7CgkJCXJldHVybiB0aGlzLmVhY2goIG9wdGFsbC5jb21wbGV0ZSApOwoJCX0KCgkJcmV0dXJuIHRoaXNbIG9wdGFsbC5xdWV1ZSA9PT0gZmFsc2UgPyAiZWFjaCIgOiAicXVldWUiIF0oZnVuY3Rpb24oKSB7CgkJCS8vIFhYWCAndGhpcycgZG9lcyBub3QgYWx3YXlzIGhhdmUgYSBub2RlTmFtZSB3aGVuIHJ1bm5pbmcgdGhlCgkJCS8vIHRlc3Qgc3VpdGUKCgkJCXZhciBvcHQgPSBqUXVlcnkuZXh0ZW5kKHt9LCBvcHRhbGwpLCBwLAoJCQkJaXNFbGVtZW50ID0gdGhpcy5ub2RlVHlwZSA9PT0gMSwKCQkJCWhpZGRlbiA9IGlzRWxlbWVudCAmJiBqUXVlcnkodGhpcykuaXMoIjpoaWRkZW4iKSwKCQkJCXNlbGYgPSB0aGlzOwoKCQkJZm9yICggcCBpbiBwcm9wICkgewoJCQkJdmFyIG5hbWUgPSBqUXVlcnkuY2FtZWxDYXNlKCBwICk7CgoJCQkJaWYgKCBwICE9PSBuYW1lICkgewoJCQkJCXByb3BbIG5hbWUgXSA9IHByb3BbIHAgXTsKCQkJCQlkZWxldGUgcHJvcFsgcCBdOwoJCQkJCXAgPSBuYW1lOwoJCQkJfQoKCQkJCWlmICggcHJvcFtwXSA9PT0gImhpZGUiICYmIGhpZGRlbiB8fCBwcm9wW3BdID09PSAic2hvdyIgJiYgIWhpZGRlbiApIHsKCQkJCQlyZXR1cm4gb3B0LmNvbXBsZXRlLmNhbGwodGhpcyk7CgkJCQl9CgoJCQkJaWYgKCBpc0VsZW1lbnQgJiYgKCBwID09PSAiaGVpZ2h0IiB8fCBwID09PSAid2lkdGgiICkgKSB7CgkJCQkJLy8gTWFrZSBzdXJlIHRoYXQgbm90aGluZyBzbmVha3Mgb3V0CgkJCQkJLy8gUmVjb3JkIGFsbCAzIG92ZXJmbG93IGF0dHJpYnV0ZXMgYmVjYXVzZSBJRSBkb2VzIG5vdAoJCQkJCS8vIGNoYW5nZSB0aGUgb3ZlcmZsb3cgYXR0cmlidXRlIHdoZW4gb3ZlcmZsb3dYIGFuZAoJCQkJCS8vIG92ZXJmbG93WSBhcmUgc2V0IHRvIHRoZSBzYW1lIHZhbHVlCgkJCQkJb3B0Lm92ZXJmbG93ID0gWyB0aGlzLnN0eWxlLm92ZXJmbG93LCB0aGlzLnN0eWxlLm92ZXJmbG93WCwgdGhpcy5zdHlsZS5vdmVyZmxvd1kgXTsKCgkJCQkJLy8gU2V0IGRpc3BsYXkgcHJvcGVydHkgdG8gaW5saW5lLWJsb2NrIGZvciBoZWlnaHQvd2lkdGgKCQkJCQkvLyBhbmltYXRpb25zIG9uIGlubGluZSBlbGVtZW50cyB0aGF0IGFyZSBoYXZpbmcgd2lkdGgvaGVpZ2h0CgkJCQkJLy8gYW5pbWF0ZWQKCQkJCQlpZiAoIGpRdWVyeS5jc3MoIHRoaXMsICJkaXNwbGF5IiApID09PSAiaW5saW5lIiAmJgoJCQkJCQkJalF1ZXJ5LmNzcyggdGhpcywgImZsb2F0IiApID09PSAibm9uZSIgKSB7CgkJCQkJCWlmICggIWpRdWVyeS5zdXBwb3J0LmlubGluZUJsb2NrTmVlZHNMYXlvdXQgKSB7CgkJCQkJCQl0aGlzLnN0eWxlLmRpc3BsYXkgPSAiaW5saW5lLWJsb2NrIjsKCgkJCQkJCX0gZWxzZSB7CgkJCQkJCQl2YXIgZGlzcGxheSA9IGRlZmF1bHREaXNwbGF5KHRoaXMubm9kZU5hbWUpOwoKCQkJCQkJCS8vIGlubGluZS1sZXZlbCBlbGVtZW50cyBhY2NlcHQgaW5saW5lLWJsb2NrOwoJCQkJCQkJLy8gYmxvY2stbGV2ZWwgZWxlbWVudHMgbmVlZCB0byBiZSBpbmxpbmUgd2l0aCBsYXlvdXQKCQkJCQkJCWlmICggZGlzcGxheSA9PT0gImlubGluZSIgKSB7CgkJCQkJCQkJdGhpcy5zdHlsZS5kaXNwbGF5ID0gImlubGluZS1ibG9jayI7CgoJCQkJCQkJfSBlbHNlIHsKCQkJCQkJCQl0aGlzLnN0eWxlLmRpc3BsYXkgPSAiaW5saW5lIjsKCQkJCQkJCQl0aGlzLnN0eWxlLnpvb20gPSAxOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfQoJCQkJfQoKCQkJCWlmICggalF1ZXJ5LmlzQXJyYXkoIHByb3BbcF0gKSApIHsKCQkJCQkvLyBDcmVhdGUgKGlmIG5lZWRlZCkgYW5kIGFkZCB0byBzcGVjaWFsRWFzaW5nCgkJCQkJKG9wdC5zcGVjaWFsRWFzaW5nID0gb3B0LnNwZWNpYWxFYXNpbmcgfHwge30pW3BdID0gcHJvcFtwXVsxXTsKCQkJCQlwcm9wW3BdID0gcHJvcFtwXVswXTsKCQkJCX0KCQkJfQoKCQkJaWYgKCBvcHQub3ZlcmZsb3cgIT0gbnVsbCApIHsKCQkJCXRoaXMuc3R5bGUub3ZlcmZsb3cgPSAiaGlkZGVuIjsKCQkJfQoKCQkJb3B0LmN1ckFuaW0gPSBqUXVlcnkuZXh0ZW5kKHt9LCBwcm9wKTsKCgkJCWpRdWVyeS5lYWNoKCBwcm9wLCBmdW5jdGlvbiggbmFtZSwgdmFsICkgewoJCQkJdmFyIGUgPSBuZXcgalF1ZXJ5LmZ4KCBzZWxmLCBvcHQsIG5hbWUgKTsKCgkJCQlpZiAoIHJmeHR5cGVzLnRlc3QodmFsKSApIHsKCQkJCQllWyB2YWwgPT09ICJ0b2dnbGUiID8gaGlkZGVuID8gInNob3ciIDogImhpZGUiIDogdmFsIF0oIHByb3AgKTsKCgkJCQl9IGVsc2UgewoJCQkJCXZhciBwYXJ0cyA9IHJmeG51bS5leGVjKHZhbCksCgkJCQkJCXN0YXJ0ID0gZS5jdXIoKTsKCgkJCQkJaWYgKCBwYXJ0cyApIHsKCQkJCQkJdmFyIGVuZCA9IHBhcnNlRmxvYXQoIHBhcnRzWzJdICksCgkJCQkJCQl1bml0ID0gcGFydHNbM10gfHwgKCBqUXVlcnkuY3NzTnVtYmVyWyBuYW1lIF0gPyAiIiA6ICJweCIgKTsKCgkJCQkJCS8vIFdlIG5lZWQgdG8gY29tcHV0ZSBzdGFydGluZyB2YWx1ZQoJCQkJCQlpZiAoIHVuaXQgIT09ICJweCIgKSB7CgkJCQkJCQlqUXVlcnkuc3R5bGUoIHNlbGYsIG5hbWUsIChlbmQgfHwgMSkgKyB1bml0KTsKCQkJCQkJCXN0YXJ0ID0gKChlbmQgfHwgMSkgLyBlLmN1cigpKSAqIHN0YXJ0OwoJCQkJCQkJalF1ZXJ5LnN0eWxlKCBzZWxmLCBuYW1lLCBzdGFydCArIHVuaXQpOwoJCQkJCQl9CgoJCQkJCQkvLyBJZiBhICs9Ly09IHRva2VuIHdhcyBwcm92aWRlZCwgd2UncmUgZG9pbmcgYSByZWxhdGl2ZSBhbmltYXRpb24KCQkJCQkJaWYgKCBwYXJ0c1sxXSApIHsKCQkJCQkJCWVuZCA9ICgocGFydHNbMV0gPT09ICItPSIgPyAtMSA6IDEpICogZW5kKSArIHN0YXJ0OwoJCQkJCQl9CgoJCQkJCQllLmN1c3RvbSggc3RhcnQsIGVuZCwgdW5pdCApOwoKCQkJCQl9IGVsc2UgewoJCQkJCQllLmN1c3RvbSggc3RhcnQsIHZhbCwgIiIgKTsKCQkJCQl9CgkJCQl9CgkJCX0pOwoKCQkJLy8gRm9yIEpTIHN0cmljdCBjb21wbGlhbmNlCgkJCXJldHVybiB0cnVlOwoJCX0pOwoJfSwKCglzdG9wOiBmdW5jdGlvbiggY2xlYXJRdWV1ZSwgZ290b0VuZCApIHsKCQl2YXIgdGltZXJzID0galF1ZXJ5LnRpbWVyczsKCgkJaWYgKCBjbGVhclF1ZXVlICkgewoJCQl0aGlzLnF1ZXVlKFtdKTsKCQl9CgoJCXRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJLy8gZ28gaW4gcmV2ZXJzZSBvcmRlciBzbyBhbnl0aGluZyBhZGRlZCB0byB0aGUgcXVldWUgZHVyaW5nIHRoZSBsb29wIGlzIGlnbm9yZWQKCQkJZm9yICggdmFyIGkgPSB0aW1lcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0gKSB7CgkJCQlpZiAoIHRpbWVyc1tpXS5lbGVtID09PSB0aGlzICkgewoJCQkJCWlmIChnb3RvRW5kKSB7CgkJCQkJCS8vIGZvcmNlIHRoZSBuZXh0IHN0ZXAgdG8gYmUgdGhlIGxhc3QKCQkJCQkJdGltZXJzW2ldKHRydWUpOwoJCQkJCX0KCgkJCQkJdGltZXJzLnNwbGljZShpLCAxKTsKCQkJCX0KCQkJfQoJCX0pOwoKCQkvLyBzdGFydCB0aGUgbmV4dCBpbiB0aGUgcXVldWUgaWYgdGhlIGxhc3Qgc3RlcCB3YXNuJ3QgZm9yY2VkCgkJaWYgKCAhZ290b0VuZCApIHsKCQkJdGhpcy5kZXF1ZXVlKCk7CgkJfQoKCQlyZXR1cm4gdGhpczsKCX0KCn0pOwoKZnVuY3Rpb24gZ2VuRngoIHR5cGUsIG51bSApIHsKCXZhciBvYmogPSB7fTsKCglqUXVlcnkuZWFjaCggZnhBdHRycy5jb25jYXQuYXBwbHkoW10sIGZ4QXR0cnMuc2xpY2UoMCxudW0pKSwgZnVuY3Rpb24oKSB7CgkJb2JqWyB0aGlzIF0gPSB0eXBlOwoJfSk7CgoJcmV0dXJuIG9iajsKfQoKLy8gR2VuZXJhdGUgc2hvcnRjdXRzIGZvciBjdXN0b20gYW5pbWF0aW9ucwpqUXVlcnkuZWFjaCh7CglzbGlkZURvd246IGdlbkZ4KCJzaG93IiwgMSksCglzbGlkZVVwOiBnZW5GeCgiaGlkZSIsIDEpLAoJc2xpZGVUb2dnbGU6IGdlbkZ4KCJ0b2dnbGUiLCAxKSwKCWZhZGVJbjogeyBvcGFjaXR5OiAic2hvdyIgfSwKCWZhZGVPdXQ6IHsgb3BhY2l0eTogImhpZGUiIH0sCglmYWRlVG9nZ2xlOiB7IG9wYWNpdHk6ICJ0b2dnbGUiIH0KfSwgZnVuY3Rpb24oIG5hbWUsIHByb3BzICkgewoJalF1ZXJ5LmZuWyBuYW1lIF0gPSBmdW5jdGlvbiggc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSB7CgkJcmV0dXJuIHRoaXMuYW5pbWF0ZSggcHJvcHMsIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrICk7Cgl9Owp9KTsKCmpRdWVyeS5leHRlbmQoewoJc3BlZWQ6IGZ1bmN0aW9uKCBzcGVlZCwgZWFzaW5nLCBmbiApIHsKCQl2YXIgb3B0ID0gc3BlZWQgJiYgdHlwZW9mIHNwZWVkID09PSAib2JqZWN0IiA/IGpRdWVyeS5leHRlbmQoe30sIHNwZWVkKSA6IHsKCQkJY29tcGxldGU6IGZuIHx8ICFmbiAmJiBlYXNpbmcgfHwKCQkJCWpRdWVyeS5pc0Z1bmN0aW9uKCBzcGVlZCApICYmIHNwZWVkLAoJCQlkdXJhdGlvbjogc3BlZWQsCgkJCWVhc2luZzogZm4gJiYgZWFzaW5nIHx8IGVhc2luZyAmJiAhalF1ZXJ5LmlzRnVuY3Rpb24oZWFzaW5nKSAmJiBlYXNpbmcKCQl9OwoKCQlvcHQuZHVyYXRpb24gPSBqUXVlcnkuZngub2ZmID8gMCA6IHR5cGVvZiBvcHQuZHVyYXRpb24gPT09ICJudW1iZXIiID8gb3B0LmR1cmF0aW9uIDoKCQkJb3B0LmR1cmF0aW9uIGluIGpRdWVyeS5meC5zcGVlZHMgPyBqUXVlcnkuZnguc3BlZWRzW29wdC5kdXJhdGlvbl0gOiBqUXVlcnkuZnguc3BlZWRzLl9kZWZhdWx0OwoKCQkvLyBRdWV1ZWluZwoJCW9wdC5vbGQgPSBvcHQuY29tcGxldGU7CgkJb3B0LmNvbXBsZXRlID0gZnVuY3Rpb24oKSB7CgkJCWlmICggb3B0LnF1ZXVlICE9PSBmYWxzZSApIHsKCQkJCWpRdWVyeSh0aGlzKS5kZXF1ZXVlKCk7CgkJCX0KCQkJaWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggb3B0Lm9sZCApICkgewoJCQkJb3B0Lm9sZC5jYWxsKCB0aGlzICk7CgkJCX0KCQl9OwoKCQlyZXR1cm4gb3B0OwoJfSwKCgllYXNpbmc6IHsKCQlsaW5lYXI6IGZ1bmN0aW9uKCBwLCBuLCBmaXJzdE51bSwgZGlmZiApIHsKCQkJcmV0dXJuIGZpcnN0TnVtICsgZGlmZiAqIHA7CgkJfSwKCQlzd2luZzogZnVuY3Rpb24oIHAsIG4sIGZpcnN0TnVtLCBkaWZmICkgewoJCQlyZXR1cm4gKCgtTWF0aC5jb3MocCpNYXRoLlBJKS8yKSArIDAuNSkgKiBkaWZmICsgZmlyc3ROdW07CgkJfQoJfSwKCgl0aW1lcnM6IFtdLAoKCWZ4OiBmdW5jdGlvbiggZWxlbSwgb3B0aW9ucywgcHJvcCApIHsKCQl0aGlzLm9wdGlvbnMgPSBvcHRpb25zOwoJCXRoaXMuZWxlbSA9IGVsZW07CgkJdGhpcy5wcm9wID0gcHJvcDsKCgkJaWYgKCAhb3B0aW9ucy5vcmlnICkgewoJCQlvcHRpb25zLm9yaWcgPSB7fTsKCQl9Cgl9Cgp9KTsKCmpRdWVyeS5meC5wcm90b3R5cGUgPSB7CgkvLyBTaW1wbGUgZnVuY3Rpb24gZm9yIHNldHRpbmcgYSBzdHlsZSB2YWx1ZQoJdXBkYXRlOiBmdW5jdGlvbigpIHsKCQlpZiAoIHRoaXMub3B0aW9ucy5zdGVwICkgewoJCQl0aGlzLm9wdGlvbnMuc3RlcC5jYWxsKCB0aGlzLmVsZW0sIHRoaXMubm93LCB0aGlzICk7CgkJfQoKCQkoalF1ZXJ5LmZ4LnN0ZXBbdGhpcy5wcm9wXSB8fCBqUXVlcnkuZnguc3RlcC5fZGVmYXVsdCkoIHRoaXMgKTsKCX0sCgoJLy8gR2V0IHRoZSBjdXJyZW50IHNpemUKCWN1cjogZnVuY3Rpb24oKSB7CgkJaWYgKCB0aGlzLmVsZW1bdGhpcy5wcm9wXSAhPSBudWxsICYmICghdGhpcy5lbGVtLnN0eWxlIHx8IHRoaXMuZWxlbS5zdHlsZVt0aGlzLnByb3BdID09IG51bGwpICkgewoJCQlyZXR1cm4gdGhpcy5lbGVtWyB0aGlzLnByb3AgXTsKCQl9CgoJCXZhciBwYXJzZWQsCgkJCXIgPSBqUXVlcnkuY3NzKCB0aGlzLmVsZW0sIHRoaXMucHJvcCApOwoJCS8vIEVtcHR5IHN0cmluZ3MsIG51bGwsIHVuZGVmaW5lZCBhbmQgImF1dG8iIGFyZSBjb252ZXJ0ZWQgdG8gMCwKCQkvLyBjb21wbGV4IHZhbHVlcyBzdWNoIGFzICJyb3RhdGUoMXJhZCkiIGFyZSByZXR1cm5lZCBhcyBpcywKCQkvLyBzaW1wbGUgdmFsdWVzIHN1Y2ggYXMgIjEwcHgiIGFyZSBwYXJzZWQgdG8gRmxvYXQuCgkJcmV0dXJuIGlzTmFOKCBwYXJzZWQgPSBwYXJzZUZsb2F0KCByICkgKSA/ICFyIHx8IHIgPT09ICJhdXRvIiA/IDAgOiByIDogcGFyc2VkOwoJfSwKCgkvLyBTdGFydCBhbiBhbmltYXRpb24gZnJvbSBvbmUgbnVtYmVyIHRvIGFub3RoZXIKCWN1c3RvbTogZnVuY3Rpb24oIGZyb20sIHRvLCB1bml0ICkgewoJCXZhciBzZWxmID0gdGhpcywKCQkJZnggPSBqUXVlcnkuZng7CgoJCXRoaXMuc3RhcnRUaW1lID0galF1ZXJ5Lm5vdygpOwoJCXRoaXMuc3RhcnQgPSBmcm9tOwoJCXRoaXMuZW5kID0gdG87CgkJdGhpcy51bml0ID0gdW5pdCB8fCB0aGlzLnVuaXQgfHwgKCBqUXVlcnkuY3NzTnVtYmVyWyB0aGlzLnByb3AgXSA/ICIiIDogInB4IiApOwoJCXRoaXMubm93ID0gdGhpcy5zdGFydDsKCQl0aGlzLnBvcyA9IHRoaXMuc3RhdGUgPSAwOwoKCQlmdW5jdGlvbiB0KCBnb3RvRW5kICkgewoJCQlyZXR1cm4gc2VsZi5zdGVwKGdvdG9FbmQpOwoJCX0KCgkJdC5lbGVtID0gdGhpcy5lbGVtOwoKCQlpZiAoIHQoKSAmJiBqUXVlcnkudGltZXJzLnB1c2godCkgJiYgIXRpbWVySWQgKSB7CgkJCXRpbWVySWQgPSBzZXRJbnRlcnZhbChmeC50aWNrLCBmeC5pbnRlcnZhbCk7CgkJfQoJfSwKCgkvLyBTaW1wbGUgJ3Nob3cnIGZ1bmN0aW9uCglzaG93OiBmdW5jdGlvbigpIHsKCQkvLyBSZW1lbWJlciB3aGVyZSB3ZSBzdGFydGVkLCBzbyB0aGF0IHdlIGNhbiBnbyBiYWNrIHRvIGl0IGxhdGVyCgkJdGhpcy5vcHRpb25zLm9yaWdbdGhpcy5wcm9wXSA9IGpRdWVyeS5zdHlsZSggdGhpcy5lbGVtLCB0aGlzLnByb3AgKTsKCQl0aGlzLm9wdGlvbnMuc2hvdyA9IHRydWU7CgoJCS8vIEJlZ2luIHRoZSBhbmltYXRpb24KCQkvLyBNYWtlIHN1cmUgdGhhdCB3ZSBzdGFydCBhdCBhIHNtYWxsIHdpZHRoL2hlaWdodCB0byBhdm9pZCBhbnkKCQkvLyBmbGFzaCBvZiBjb250ZW50CgkJdGhpcy5jdXN0b20odGhpcy5wcm9wID09PSAid2lkdGgiIHx8IHRoaXMucHJvcCA9PT0gImhlaWdodCIgPyAxIDogMCwgdGhpcy5jdXIoKSk7CgoJCS8vIFN0YXJ0IGJ5IHNob3dpbmcgdGhlIGVsZW1lbnQKCQlqUXVlcnkoIHRoaXMuZWxlbSApLnNob3coKTsKCX0sCgoJLy8gU2ltcGxlICdoaWRlJyBmdW5jdGlvbgoJaGlkZTogZnVuY3Rpb24oKSB7CgkJLy8gUmVtZW1iZXIgd2hlcmUgd2Ugc3RhcnRlZCwgc28gdGhhdCB3ZSBjYW4gZ28gYmFjayB0byBpdCBsYXRlcgoJCXRoaXMub3B0aW9ucy5vcmlnW3RoaXMucHJvcF0gPSBqUXVlcnkuc3R5bGUoIHRoaXMuZWxlbSwgdGhpcy5wcm9wICk7CgkJdGhpcy5vcHRpb25zLmhpZGUgPSB0cnVlOwoKCQkvLyBCZWdpbiB0aGUgYW5pbWF0aW9uCgkJdGhpcy5jdXN0b20odGhpcy5jdXIoKSwgMCk7Cgl9LAoKCS8vIEVhY2ggc3RlcCBvZiBhbiBhbmltYXRpb24KCXN0ZXA6IGZ1bmN0aW9uKCBnb3RvRW5kICkgewoJCXZhciB0ID0galF1ZXJ5Lm5vdygpLCBkb25lID0gdHJ1ZTsKCgkJaWYgKCBnb3RvRW5kIHx8IHQgPj0gdGhpcy5vcHRpb25zLmR1cmF0aW9uICsgdGhpcy5zdGFydFRpbWUgKSB7CgkJCXRoaXMubm93ID0gdGhpcy5lbmQ7CgkJCXRoaXMucG9zID0gdGhpcy5zdGF0ZSA9IDE7CgkJCXRoaXMudXBkYXRlKCk7CgoJCQl0aGlzLm9wdGlvbnMuY3VyQW5pbVsgdGhpcy5wcm9wIF0gPSB0cnVlOwoKCQkJZm9yICggdmFyIGkgaW4gdGhpcy5vcHRpb25zLmN1ckFuaW0gKSB7CgkJCQlpZiAoIHRoaXMub3B0aW9ucy5jdXJBbmltW2ldICE9PSB0cnVlICkgewoJCQkJCWRvbmUgPSBmYWxzZTsKCQkJCX0KCQkJfQoKCQkJaWYgKCBkb25lICkgewoJCQkJLy8gUmVzZXQgdGhlIG92ZXJmbG93CgkJCQlpZiAoIHRoaXMub3B0aW9ucy5vdmVyZmxvdyAhPSBudWxsICYmICFqUXVlcnkuc3VwcG9ydC5zaHJpbmtXcmFwQmxvY2tzICkgewoJCQkJCXZhciBlbGVtID0gdGhpcy5lbGVtLAoJCQkJCQlvcHRpb25zID0gdGhpcy5vcHRpb25zOwoKCQkJCQlqUXVlcnkuZWFjaCggWyAiIiwgIlgiLCAiWSIgXSwgZnVuY3Rpb24gKGluZGV4LCB2YWx1ZSkgewoJCQkJCQllbGVtLnN0eWxlWyAib3ZlcmZsb3ciICsgdmFsdWUgXSA9IG9wdGlvbnMub3ZlcmZsb3dbaW5kZXhdOwoJCQkJCX0gKTsKCQkJCX0KCgkJCQkvLyBIaWRlIHRoZSBlbGVtZW50IGlmIHRoZSAiaGlkZSIgb3BlcmF0aW9uIHdhcyBkb25lCgkJCQlpZiAoIHRoaXMub3B0aW9ucy5oaWRlICkgewoJCQkJCWpRdWVyeSh0aGlzLmVsZW0pLmhpZGUoKTsKCQkJCX0KCgkJCQkvLyBSZXNldCB0aGUgcHJvcGVydGllcywgaWYgdGhlIGl0ZW0gaGFzIGJlZW4gaGlkZGVuIG9yIHNob3duCgkJCQlpZiAoIHRoaXMub3B0aW9ucy5oaWRlIHx8IHRoaXMub3B0aW9ucy5zaG93ICkgewoJCQkJCWZvciAoIHZhciBwIGluIHRoaXMub3B0aW9ucy5jdXJBbmltICkgewoJCQkJCQlqUXVlcnkuc3R5bGUoIHRoaXMuZWxlbSwgcCwgdGhpcy5vcHRpb25zLm9yaWdbcF0gKTsKCQkJCQl9CgkJCQl9CgoJCQkJLy8gRXhlY3V0ZSB0aGUgY29tcGxldGUgZnVuY3Rpb24KCQkJCXRoaXMub3B0aW9ucy5jb21wbGV0ZS5jYWxsKCB0aGlzLmVsZW0gKTsKCQkJfQoKCQkJcmV0dXJuIGZhbHNlOwoKCQl9IGVsc2UgewoJCQl2YXIgbiA9IHQgLSB0aGlzLnN0YXJ0VGltZTsKCQkJdGhpcy5zdGF0ZSA9IG4gLyB0aGlzLm9wdGlvbnMuZHVyYXRpb247CgoJCQkvLyBQZXJmb3JtIHRoZSBlYXNpbmcgZnVuY3Rpb24sIGRlZmF1bHRzIHRvIHN3aW5nCgkJCXZhciBzcGVjaWFsRWFzaW5nID0gdGhpcy5vcHRpb25zLnNwZWNpYWxFYXNpbmcgJiYgdGhpcy5vcHRpb25zLnNwZWNpYWxFYXNpbmdbdGhpcy5wcm9wXTsKCQkJdmFyIGRlZmF1bHRFYXNpbmcgPSB0aGlzLm9wdGlvbnMuZWFzaW5nIHx8IChqUXVlcnkuZWFzaW5nLnN3aW5nID8gInN3aW5nIiA6ICJsaW5lYXIiKTsKCQkJdGhpcy5wb3MgPSBqUXVlcnkuZWFzaW5nW3NwZWNpYWxFYXNpbmcgfHwgZGVmYXVsdEVhc2luZ10odGhpcy5zdGF0ZSwgbiwgMCwgMSwgdGhpcy5vcHRpb25zLmR1cmF0aW9uKTsKCQkJdGhpcy5ub3cgPSB0aGlzLnN0YXJ0ICsgKCh0aGlzLmVuZCAtIHRoaXMuc3RhcnQpICogdGhpcy5wb3MpOwoKCQkJLy8gUGVyZm9ybSB0aGUgbmV4dCBzdGVwIG9mIHRoZSBhbmltYXRpb24KCQkJdGhpcy51cGRhdGUoKTsKCQl9CgoJCXJldHVybiB0cnVlOwoJfQp9OwoKalF1ZXJ5LmV4dGVuZCggalF1ZXJ5LmZ4LCB7Cgl0aWNrOiBmdW5jdGlvbigpIHsKCQl2YXIgdGltZXJzID0galF1ZXJ5LnRpbWVyczsKCgkJZm9yICggdmFyIGkgPSAwOyBpIDwgdGltZXJzLmxlbmd0aDsgaSsrICkgewoJCQlpZiAoICF0aW1lcnNbaV0oKSApIHsKCQkJCXRpbWVycy5zcGxpY2UoaS0tLCAxKTsKCQkJfQoJCX0KCgkJaWYgKCAhdGltZXJzLmxlbmd0aCApIHsKCQkJalF1ZXJ5LmZ4LnN0b3AoKTsKCQl9Cgl9LAoKCWludGVydmFsOiAxMywKCglzdG9wOiBmdW5jdGlvbigpIHsKCQljbGVhckludGVydmFsKCB0aW1lcklkICk7CgkJdGltZXJJZCA9IG51bGw7Cgl9LAoKCXNwZWVkczogewoJCXNsb3c6IDYwMCwKCQlmYXN0OiAyMDAsCgkJLy8gRGVmYXVsdCBzcGVlZAoJCV9kZWZhdWx0OiA0MDAKCX0sCgoJc3RlcDogewoJCW9wYWNpdHk6IGZ1bmN0aW9uKCBmeCApIHsKCQkJalF1ZXJ5LnN0eWxlKCBmeC5lbGVtLCAib3BhY2l0eSIsIGZ4Lm5vdyApOwoJCX0sCgoJCV9kZWZhdWx0OiBmdW5jdGlvbiggZnggKSB7CgkJCWlmICggZnguZWxlbS5zdHlsZSAmJiBmeC5lbGVtLnN0eWxlWyBmeC5wcm9wIF0gIT0gbnVsbCApIHsKCQkJCWZ4LmVsZW0uc3R5bGVbIGZ4LnByb3AgXSA9IChmeC5wcm9wID09PSAid2lkdGgiIHx8IGZ4LnByb3AgPT09ICJoZWlnaHQiID8gTWF0aC5tYXgoMCwgZngubm93KSA6IGZ4Lm5vdykgKyBmeC51bml0OwoJCQl9IGVsc2UgewoJCQkJZnguZWxlbVsgZngucHJvcCBdID0gZngubm93OwoJCQl9CgkJfQoJfQp9KTsKCmlmICggalF1ZXJ5LmV4cHIgJiYgalF1ZXJ5LmV4cHIuZmlsdGVycyApIHsKCWpRdWVyeS5leHByLmZpbHRlcnMuYW5pbWF0ZWQgPSBmdW5jdGlvbiggZWxlbSApIHsKCQlyZXR1cm4galF1ZXJ5LmdyZXAoalF1ZXJ5LnRpbWVycywgZnVuY3Rpb24oIGZuICkgewoJCQlyZXR1cm4gZWxlbSA9PT0gZm4uZWxlbTsKCQl9KS5sZW5ndGg7Cgl9Owp9CgpmdW5jdGlvbiBkZWZhdWx0RGlzcGxheSggbm9kZU5hbWUgKSB7CglpZiAoICFlbGVtZGlzcGxheVsgbm9kZU5hbWUgXSApIHsKCQl2YXIgZWxlbSA9IGpRdWVyeSgiPCIgKyBub2RlTmFtZSArICI+IikuYXBwZW5kVG8oImJvZHkiKSwKCQkJZGlzcGxheSA9IGVsZW0uY3NzKCJkaXNwbGF5Iik7CgoJCWVsZW0ucmVtb3ZlKCk7CgoJCWlmICggZGlzcGxheSA9PT0gIm5vbmUiIHx8IGRpc3BsYXkgPT09ICIiICkgewoJCQlkaXNwbGF5ID0gImJsb2NrIjsKCQl9CgoJCWVsZW1kaXNwbGF5WyBub2RlTmFtZSBdID0gZGlzcGxheTsKCX0KCglyZXR1cm4gZWxlbWRpc3BsYXlbIG5vZGVOYW1lIF07Cn0KCgoKCnZhciBydGFibGUgPSAvXnQoPzphYmxlfGR8aCkkL2ksCglycm9vdCA9IC9eKD86Ym9keXxodG1sKSQvaTsKCmlmICggImdldEJvdW5kaW5nQ2xpZW50UmVjdCIgaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICkgewoJalF1ZXJ5LmZuLm9mZnNldCA9IGZ1bmN0aW9uKCBvcHRpb25zICkgewoJCXZhciBlbGVtID0gdGhpc1swXSwgYm94OwoKCQlpZiAoIG9wdGlvbnMgKSB7CgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oIGkgKSB7CgkJCQlqUXVlcnkub2Zmc2V0LnNldE9mZnNldCggdGhpcywgb3B0aW9ucywgaSApOwoJCQl9KTsKCQl9CgoJCWlmICggIWVsZW0gfHwgIWVsZW0ub3duZXJEb2N1bWVudCApIHsKCQkJcmV0dXJuIG51bGw7CgkJfQoKCQlpZiAoIGVsZW0gPT09IGVsZW0ub3duZXJEb2N1bWVudC5ib2R5ICkgewoJCQlyZXR1cm4galF1ZXJ5Lm9mZnNldC5ib2R5T2Zmc2V0KCBlbGVtICk7CgkJfQoKCQl0cnkgewoJCQlib3ggPSBlbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwoJCX0gY2F0Y2goZSkge30KCgkJdmFyIGRvYyA9IGVsZW0ub3duZXJEb2N1bWVudCwKCQkJZG9jRWxlbSA9IGRvYy5kb2N1bWVudEVsZW1lbnQ7CgoJCS8vIE1ha2Ugc3VyZSB3ZSdyZSBub3QgZGVhbGluZyB3aXRoIGEgZGlzY29ubmVjdGVkIERPTSBub2RlCgkJaWYgKCAhYm94IHx8ICFqUXVlcnkuY29udGFpbnMoIGRvY0VsZW0sIGVsZW0gKSApIHsKCQkJcmV0dXJuIGJveCA/IHsgdG9wOiBib3gudG9wLCBsZWZ0OiBib3gubGVmdCB9IDogeyB0b3A6IDAsIGxlZnQ6IDAgfTsKCQl9CgoJCXZhciBib2R5ID0gZG9jLmJvZHksCgkJCXdpbiA9IGdldFdpbmRvdyhkb2MpLAoJCQljbGllbnRUb3AgID0gZG9jRWxlbS5jbGllbnRUb3AgIHx8IGJvZHkuY2xpZW50VG9wICB8fCAwLAoJCQljbGllbnRMZWZ0ID0gZG9jRWxlbS5jbGllbnRMZWZ0IHx8IGJvZHkuY2xpZW50TGVmdCB8fCAwLAoJCQlzY3JvbGxUb3AgID0gKHdpbi5wYWdlWU9mZnNldCB8fCBqUXVlcnkuc3VwcG9ydC5ib3hNb2RlbCAmJiBkb2NFbGVtLnNjcm9sbFRvcCAgfHwgYm9keS5zY3JvbGxUb3AgKSwKCQkJc2Nyb2xsTGVmdCA9ICh3aW4ucGFnZVhPZmZzZXQgfHwgalF1ZXJ5LnN1cHBvcnQuYm94TW9kZWwgJiYgZG9jRWxlbS5zY3JvbGxMZWZ0IHx8IGJvZHkuc2Nyb2xsTGVmdCksCgkJCXRvcCAgPSBib3gudG9wICArIHNjcm9sbFRvcCAgLSBjbGllbnRUb3AsCgkJCWxlZnQgPSBib3gubGVmdCArIHNjcm9sbExlZnQgLSBjbGllbnRMZWZ0OwoKCQlyZXR1cm4geyB0b3A6IHRvcCwgbGVmdDogbGVmdCB9OwoJfTsKCn0gZWxzZSB7CglqUXVlcnkuZm4ub2Zmc2V0ID0gZnVuY3Rpb24oIG9wdGlvbnMgKSB7CgkJdmFyIGVsZW0gPSB0aGlzWzBdOwoKCQlpZiAoIG9wdGlvbnMgKSB7CgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oIGkgKSB7CgkJCQlqUXVlcnkub2Zmc2V0LnNldE9mZnNldCggdGhpcywgb3B0aW9ucywgaSApOwoJCQl9KTsKCQl9CgoJCWlmICggIWVsZW0gfHwgIWVsZW0ub3duZXJEb2N1bWVudCApIHsKCQkJcmV0dXJuIG51bGw7CgkJfQoKCQlpZiAoIGVsZW0gPT09IGVsZW0ub3duZXJEb2N1bWVudC5ib2R5ICkgewoJCQlyZXR1cm4galF1ZXJ5Lm9mZnNldC5ib2R5T2Zmc2V0KCBlbGVtICk7CgkJfQoKCQlqUXVlcnkub2Zmc2V0LmluaXRpYWxpemUoKTsKCgkJdmFyIGNvbXB1dGVkU3R5bGUsCgkJCW9mZnNldFBhcmVudCA9IGVsZW0ub2Zmc2V0UGFyZW50LAoJCQlwcmV2T2Zmc2V0UGFyZW50ID0gZWxlbSwKCQkJZG9jID0gZWxlbS5vd25lckRvY3VtZW50LAoJCQlkb2NFbGVtID0gZG9jLmRvY3VtZW50RWxlbWVudCwKCQkJYm9keSA9IGRvYy5ib2R5LAoJCQlkZWZhdWx0VmlldyA9IGRvYy5kZWZhdWx0VmlldywKCQkJcHJldkNvbXB1dGVkU3R5bGUgPSBkZWZhdWx0VmlldyA/IGRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoIGVsZW0sIG51bGwgKSA6IGVsZW0uY3VycmVudFN0eWxlLAoJCQl0b3AgPSBlbGVtLm9mZnNldFRvcCwKCQkJbGVmdCA9IGVsZW0ub2Zmc2V0TGVmdDsKCgkJd2hpbGUgKCAoZWxlbSA9IGVsZW0ucGFyZW50Tm9kZSkgJiYgZWxlbSAhPT0gYm9keSAmJiBlbGVtICE9PSBkb2NFbGVtICkgewoJCQlpZiAoIGpRdWVyeS5vZmZzZXQuc3VwcG9ydHNGaXhlZFBvc2l0aW9uICYmIHByZXZDb21wdXRlZFN0eWxlLnBvc2l0aW9uID09PSAiZml4ZWQiICkgewoJCQkJYnJlYWs7CgkJCX0KCgkJCWNvbXB1dGVkU3R5bGUgPSBkZWZhdWx0VmlldyA/IGRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZWxlbSwgbnVsbCkgOiBlbGVtLmN1cnJlbnRTdHlsZTsKCQkJdG9wICAtPSBlbGVtLnNjcm9sbFRvcDsKCQkJbGVmdCAtPSBlbGVtLnNjcm9sbExlZnQ7CgoJCQlpZiAoIGVsZW0gPT09IG9mZnNldFBhcmVudCApIHsKCQkJCXRvcCAgKz0gZWxlbS5vZmZzZXRUb3A7CgkJCQlsZWZ0ICs9IGVsZW0ub2Zmc2V0TGVmdDsKCgkJCQlpZiAoIGpRdWVyeS5vZmZzZXQuZG9lc05vdEFkZEJvcmRlciAmJiAhKGpRdWVyeS5vZmZzZXQuZG9lc0FkZEJvcmRlckZvclRhYmxlQW5kQ2VsbHMgJiYgcnRhYmxlLnRlc3QoZWxlbS5ub2RlTmFtZSkpICkgewoJCQkJCXRvcCAgKz0gcGFyc2VGbG9hdCggY29tcHV0ZWRTdHlsZS5ib3JkZXJUb3BXaWR0aCAgKSB8fCAwOwoJCQkJCWxlZnQgKz0gcGFyc2VGbG9hdCggY29tcHV0ZWRTdHlsZS5ib3JkZXJMZWZ0V2lkdGggKSB8fCAwOwoJCQkJfQoKCQkJCXByZXZPZmZzZXRQYXJlbnQgPSBvZmZzZXRQYXJlbnQ7CgkJCQlvZmZzZXRQYXJlbnQgPSBlbGVtLm9mZnNldFBhcmVudDsKCQkJfQoKCQkJaWYgKCBqUXVlcnkub2Zmc2V0LnN1YnRyYWN0c0JvcmRlckZvck92ZXJmbG93Tm90VmlzaWJsZSAmJiBjb21wdXRlZFN0eWxlLm92ZXJmbG93ICE9PSAidmlzaWJsZSIgKSB7CgkJCQl0b3AgICs9IHBhcnNlRmxvYXQoIGNvbXB1dGVkU3R5bGUuYm9yZGVyVG9wV2lkdGggICkgfHwgMDsKCQkJCWxlZnQgKz0gcGFyc2VGbG9hdCggY29tcHV0ZWRTdHlsZS5ib3JkZXJMZWZ0V2lkdGggKSB8fCAwOwoJCQl9CgoJCQlwcmV2Q29tcHV0ZWRTdHlsZSA9IGNvbXB1dGVkU3R5bGU7CgkJfQoKCQlpZiAoIHByZXZDb21wdXRlZFN0eWxlLnBvc2l0aW9uID09PSAicmVsYXRpdmUiIHx8IHByZXZDb21wdXRlZFN0eWxlLnBvc2l0aW9uID09PSAic3RhdGljIiApIHsKCQkJdG9wICArPSBib2R5Lm9mZnNldFRvcDsKCQkJbGVmdCArPSBib2R5Lm9mZnNldExlZnQ7CgkJfQoKCQlpZiAoIGpRdWVyeS5vZmZzZXQuc3VwcG9ydHNGaXhlZFBvc2l0aW9uICYmIHByZXZDb21wdXRlZFN0eWxlLnBvc2l0aW9uID09PSAiZml4ZWQiICkgewoJCQl0b3AgICs9IE1hdGgubWF4KCBkb2NFbGVtLnNjcm9sbFRvcCwgYm9keS5zY3JvbGxUb3AgKTsKCQkJbGVmdCArPSBNYXRoLm1heCggZG9jRWxlbS5zY3JvbGxMZWZ0LCBib2R5LnNjcm9sbExlZnQgKTsKCQl9CgoJCXJldHVybiB7IHRvcDogdG9wLCBsZWZ0OiBsZWZ0IH07Cgl9Owp9CgpqUXVlcnkub2Zmc2V0ID0gewoJaW5pdGlhbGl6ZTogZnVuY3Rpb24oKSB7CgkJdmFyIGJvZHkgPSBkb2N1bWVudC5ib2R5LCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSwgaW5uZXJEaXYsIGNoZWNrRGl2LCB0YWJsZSwgdGQsIGJvZHlNYXJnaW5Ub3AgPSBwYXJzZUZsb2F0KCBqUXVlcnkuY3NzKGJvZHksICJtYXJnaW5Ub3AiKSApIHx8IDAsCgkJCWh0bWwgPSAiPGRpdiBzdHlsZT0ncG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO21hcmdpbjowO2JvcmRlcjo1cHggc29saWQgIzAwMDtwYWRkaW5nOjA7d2lkdGg6MXB4O2hlaWdodDoxcHg7Jz48ZGl2PjwvZGl2PjwvZGl2Pjx0YWJsZSBzdHlsZT0ncG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO21hcmdpbjowO2JvcmRlcjo1cHggc29saWQgIzAwMDtwYWRkaW5nOjA7d2lkdGg6MXB4O2hlaWdodDoxcHg7JyBjZWxscGFkZGluZz0nMCcgY2VsbHNwYWNpbmc9JzAnPjx0cj48dGQ+PC90ZD48L3RyPjwvdGFibGU+IjsKCgkJalF1ZXJ5LmV4dGVuZCggY29udGFpbmVyLnN0eWxlLCB7IHBvc2l0aW9uOiAiYWJzb2x1dGUiLCB0b3A6IDAsIGxlZnQ6IDAsIG1hcmdpbjogMCwgYm9yZGVyOiAwLCB3aWR0aDogIjFweCIsIGhlaWdodDogIjFweCIsIHZpc2liaWxpdHk6ICJoaWRkZW4iIH0gKTsKCgkJY29udGFpbmVyLmlubmVySFRNTCA9IGh0bWw7CgkJYm9keS5pbnNlcnRCZWZvcmUoIGNvbnRhaW5lciwgYm9keS5maXJzdENoaWxkICk7CgkJaW5uZXJEaXYgPSBjb250YWluZXIuZmlyc3RDaGlsZDsKCQljaGVja0RpdiA9IGlubmVyRGl2LmZpcnN0Q2hpbGQ7CgkJdGQgPSBpbm5lckRpdi5uZXh0U2libGluZy5maXJzdENoaWxkLmZpcnN0Q2hpbGQ7CgoJCXRoaXMuZG9lc05vdEFkZEJvcmRlciA9IChjaGVja0Rpdi5vZmZzZXRUb3AgIT09IDUpOwoJCXRoaXMuZG9lc0FkZEJvcmRlckZvclRhYmxlQW5kQ2VsbHMgPSAodGQub2Zmc2V0VG9wID09PSA1KTsKCgkJY2hlY2tEaXYuc3R5bGUucG9zaXRpb24gPSAiZml4ZWQiOwoJCWNoZWNrRGl2LnN0eWxlLnRvcCA9ICIyMHB4IjsKCgkJLy8gc2FmYXJpIHN1YnRyYWN0cyBwYXJlbnQgYm9yZGVyIHdpZHRoIGhlcmUgd2hpY2ggaXMgNXB4CgkJdGhpcy5zdXBwb3J0c0ZpeGVkUG9zaXRpb24gPSAoY2hlY2tEaXYub2Zmc2V0VG9wID09PSAyMCB8fCBjaGVja0Rpdi5vZmZzZXRUb3AgPT09IDE1KTsKCQljaGVja0Rpdi5zdHlsZS5wb3NpdGlvbiA9IGNoZWNrRGl2LnN0eWxlLnRvcCA9ICIiOwoKCQlpbm5lckRpdi5zdHlsZS5vdmVyZmxvdyA9ICJoaWRkZW4iOwoJCWlubmVyRGl2LnN0eWxlLnBvc2l0aW9uID0gInJlbGF0aXZlIjsKCgkJdGhpcy5zdWJ0cmFjdHNCb3JkZXJGb3JPdmVyZmxvd05vdFZpc2libGUgPSAoY2hlY2tEaXYub2Zmc2V0VG9wID09PSAtNSk7CgoJCXRoaXMuZG9lc05vdEluY2x1ZGVNYXJnaW5JbkJvZHlPZmZzZXQgPSAoYm9keS5vZmZzZXRUb3AgIT09IGJvZHlNYXJnaW5Ub3ApOwoKCQlib2R5LnJlbW92ZUNoaWxkKCBjb250YWluZXIgKTsKCQlib2R5ID0gY29udGFpbmVyID0gaW5uZXJEaXYgPSBjaGVja0RpdiA9IHRhYmxlID0gdGQgPSBudWxsOwoJCWpRdWVyeS5vZmZzZXQuaW5pdGlhbGl6ZSA9IGpRdWVyeS5ub29wOwoJfSwKCglib2R5T2Zmc2V0OiBmdW5jdGlvbiggYm9keSApIHsKCQl2YXIgdG9wID0gYm9keS5vZmZzZXRUb3AsCgkJCWxlZnQgPSBib2R5Lm9mZnNldExlZnQ7CgoJCWpRdWVyeS5vZmZzZXQuaW5pdGlhbGl6ZSgpOwoKCQlpZiAoIGpRdWVyeS5vZmZzZXQuZG9lc05vdEluY2x1ZGVNYXJnaW5JbkJvZHlPZmZzZXQgKSB7CgkJCXRvcCAgKz0gcGFyc2VGbG9hdCggalF1ZXJ5LmNzcyhib2R5LCAibWFyZ2luVG9wIikgKSB8fCAwOwoJCQlsZWZ0ICs9IHBhcnNlRmxvYXQoIGpRdWVyeS5jc3MoYm9keSwgIm1hcmdpbkxlZnQiKSApIHx8IDA7CgkJfQoKCQlyZXR1cm4geyB0b3A6IHRvcCwgbGVmdDogbGVmdCB9OwoJfSwKCglzZXRPZmZzZXQ6IGZ1bmN0aW9uKCBlbGVtLCBvcHRpb25zLCBpICkgewoJCXZhciBwb3NpdGlvbiA9IGpRdWVyeS5jc3MoIGVsZW0sICJwb3NpdGlvbiIgKTsKCgkJLy8gc2V0IHBvc2l0aW9uIGZpcnN0LCBpbi1jYXNlIHRvcC9sZWZ0IGFyZSBzZXQgZXZlbiBvbiBzdGF0aWMgZWxlbQoJCWlmICggcG9zaXRpb24gPT09ICJzdGF0aWMiICkgewoJCQllbGVtLnN0eWxlLnBvc2l0aW9uID0gInJlbGF0aXZlIjsKCQl9CgoJCXZhciBjdXJFbGVtID0galF1ZXJ5KCBlbGVtICksCgkJCWN1ck9mZnNldCA9IGN1ckVsZW0ub2Zmc2V0KCksCgkJCWN1ckNTU1RvcCA9IGpRdWVyeS5jc3MoIGVsZW0sICJ0b3AiICksCgkJCWN1ckNTU0xlZnQgPSBqUXVlcnkuY3NzKCBlbGVtLCAibGVmdCIgKSwKCQkJY2FsY3VsYXRlUG9zaXRpb24gPSAocG9zaXRpb24gPT09ICJhYnNvbHV0ZSIgJiYgalF1ZXJ5LmluQXJyYXkoJ2F1dG8nLCBbY3VyQ1NTVG9wLCBjdXJDU1NMZWZ0XSkgPiAtMSksCgkJCXByb3BzID0ge30sIGN1clBvc2l0aW9uID0ge30sIGN1clRvcCwgY3VyTGVmdDsKCgkJLy8gbmVlZCB0byBiZSBhYmxlIHRvIGNhbGN1bGF0ZSBwb3NpdGlvbiBpZiBlaXRoZXIgdG9wIG9yIGxlZnQgaXMgYXV0byBhbmQgcG9zaXRpb24gaXMgYWJzb2x1dGUKCQlpZiAoIGNhbGN1bGF0ZVBvc2l0aW9uICkgewoJCQljdXJQb3NpdGlvbiA9IGN1ckVsZW0ucG9zaXRpb24oKTsKCQl9CgoJCWN1clRvcCAgPSBjYWxjdWxhdGVQb3NpdGlvbiA/IGN1clBvc2l0aW9uLnRvcCAgOiBwYXJzZUludCggY3VyQ1NTVG9wLCAgMTAgKSB8fCAwOwoJCWN1ckxlZnQgPSBjYWxjdWxhdGVQb3NpdGlvbiA/IGN1clBvc2l0aW9uLmxlZnQgOiBwYXJzZUludCggY3VyQ1NTTGVmdCwgMTAgKSB8fCAwOwoKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCBvcHRpb25zICkgKSB7CgkJCW9wdGlvbnMgPSBvcHRpb25zLmNhbGwoIGVsZW0sIGksIGN1ck9mZnNldCApOwoJCX0KCgkJaWYgKG9wdGlvbnMudG9wICE9IG51bGwpIHsKCQkJcHJvcHMudG9wID0gKG9wdGlvbnMudG9wIC0gY3VyT2Zmc2V0LnRvcCkgKyBjdXJUb3A7CgkJfQoJCWlmIChvcHRpb25zLmxlZnQgIT0gbnVsbCkgewoJCQlwcm9wcy5sZWZ0ID0gKG9wdGlvbnMubGVmdCAtIGN1ck9mZnNldC5sZWZ0KSArIGN1ckxlZnQ7CgkJfQoKCQlpZiAoICJ1c2luZyIgaW4gb3B0aW9ucyApIHsKCQkJb3B0aW9ucy51c2luZy5jYWxsKCBlbGVtLCBwcm9wcyApOwoJCX0gZWxzZSB7CgkJCWN1ckVsZW0uY3NzKCBwcm9wcyApOwoJCX0KCX0KfTsKCgpqUXVlcnkuZm4uZXh0ZW5kKHsKCXBvc2l0aW9uOiBmdW5jdGlvbigpIHsKCQlpZiAoICF0aGlzWzBdICkgewoJCQlyZXR1cm4gbnVsbDsKCQl9CgoJCXZhciBlbGVtID0gdGhpc1swXSwKCgkJLy8gR2V0ICpyZWFsKiBvZmZzZXRQYXJlbnQKCQlvZmZzZXRQYXJlbnQgPSB0aGlzLm9mZnNldFBhcmVudCgpLAoKCQkvLyBHZXQgY29ycmVjdCBvZmZzZXRzCgkJb2Zmc2V0ICAgICAgID0gdGhpcy5vZmZzZXQoKSwKCQlwYXJlbnRPZmZzZXQgPSBycm9vdC50ZXN0KG9mZnNldFBhcmVudFswXS5ub2RlTmFtZSkgPyB7IHRvcDogMCwgbGVmdDogMCB9IDogb2Zmc2V0UGFyZW50Lm9mZnNldCgpOwoKCQkvLyBTdWJ0cmFjdCBlbGVtZW50IG1hcmdpbnMKCQkvLyBub3RlOiB3aGVuIGFuIGVsZW1lbnQgaGFzIG1hcmdpbjogYXV0byB0aGUgb2Zmc2V0TGVmdCBhbmQgbWFyZ2luTGVmdAoJCS8vIGFyZSB0aGUgc2FtZSBpbiBTYWZhcmkgY2F1c2luZyBvZmZzZXQubGVmdCB0byBpbmNvcnJlY3RseSBiZSAwCgkJb2Zmc2V0LnRvcCAgLT0gcGFyc2VGbG9hdCggalF1ZXJ5LmNzcyhlbGVtLCAibWFyZ2luVG9wIikgKSB8fCAwOwoJCW9mZnNldC5sZWZ0IC09IHBhcnNlRmxvYXQoIGpRdWVyeS5jc3MoZWxlbSwgIm1hcmdpbkxlZnQiKSApIHx8IDA7CgoJCS8vIEFkZCBvZmZzZXRQYXJlbnQgYm9yZGVycwoJCXBhcmVudE9mZnNldC50b3AgICs9IHBhcnNlRmxvYXQoIGpRdWVyeS5jc3Mob2Zmc2V0UGFyZW50WzBdLCAiYm9yZGVyVG9wV2lkdGgiKSApIHx8IDA7CgkJcGFyZW50T2Zmc2V0LmxlZnQgKz0gcGFyc2VGbG9hdCggalF1ZXJ5LmNzcyhvZmZzZXRQYXJlbnRbMF0sICJib3JkZXJMZWZ0V2lkdGgiKSApIHx8IDA7CgoJCS8vIFN1YnRyYWN0IHRoZSB0d28gb2Zmc2V0cwoJCXJldHVybiB7CgkJCXRvcDogIG9mZnNldC50b3AgIC0gcGFyZW50T2Zmc2V0LnRvcCwKCQkJbGVmdDogb2Zmc2V0LmxlZnQgLSBwYXJlbnRPZmZzZXQubGVmdAoJCX07Cgl9LAoKCW9mZnNldFBhcmVudDogZnVuY3Rpb24oKSB7CgkJcmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCkgewoJCQl2YXIgb2Zmc2V0UGFyZW50ID0gdGhpcy5vZmZzZXRQYXJlbnQgfHwgZG9jdW1lbnQuYm9keTsKCQkJd2hpbGUgKCBvZmZzZXRQYXJlbnQgJiYgKCFycm9vdC50ZXN0KG9mZnNldFBhcmVudC5ub2RlTmFtZSkgJiYgalF1ZXJ5LmNzcyhvZmZzZXRQYXJlbnQsICJwb3NpdGlvbiIpID09PSAic3RhdGljIikgKSB7CgkJCQlvZmZzZXRQYXJlbnQgPSBvZmZzZXRQYXJlbnQub2Zmc2V0UGFyZW50OwoJCQl9CgkJCXJldHVybiBvZmZzZXRQYXJlbnQ7CgkJfSk7Cgl9Cn0pOwoKCi8vIENyZWF0ZSBzY3JvbGxMZWZ0IGFuZCBzY3JvbGxUb3AgbWV0aG9kcwpqUXVlcnkuZWFjaCggWyJMZWZ0IiwgIlRvcCJdLCBmdW5jdGlvbiggaSwgbmFtZSApIHsKCXZhciBtZXRob2QgPSAic2Nyb2xsIiArIG5hbWU7CgoJalF1ZXJ5LmZuWyBtZXRob2QgXSA9IGZ1bmN0aW9uKHZhbCkgewoJCXZhciBlbGVtID0gdGhpc1swXSwgd2luOwoKCQlpZiAoICFlbGVtICkgewoJCQlyZXR1cm4gbnVsbDsKCQl9CgoJCWlmICggdmFsICE9PSB1bmRlZmluZWQgKSB7CgkJCS8vIFNldCB0aGUgc2Nyb2xsIG9mZnNldAoJCQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkgewoJCQkJd2luID0gZ2V0V2luZG93KCB0aGlzICk7CgoJCQkJaWYgKCB3aW4gKSB7CgkJCQkJd2luLnNjcm9sbFRvKAoJCQkJCQkhaSA/IHZhbCA6IGpRdWVyeSh3aW4pLnNjcm9sbExlZnQoKSwKCQkJCQkJaSA/IHZhbCA6IGpRdWVyeSh3aW4pLnNjcm9sbFRvcCgpCgkJCQkJKTsKCgkJCQl9IGVsc2UgewoJCQkJCXRoaXNbIG1ldGhvZCBdID0gdmFsOwoJCQkJfQoJCQl9KTsKCQl9IGVsc2UgewoJCQl3aW4gPSBnZXRXaW5kb3coIGVsZW0gKTsKCgkJCS8vIFJldHVybiB0aGUgc2Nyb2xsIG9mZnNldAoJCQlyZXR1cm4gd2luID8gKCJwYWdlWE9mZnNldCIgaW4gd2luKSA/IHdpblsgaSA/ICJwYWdlWU9mZnNldCIgOiAicGFnZVhPZmZzZXQiIF0gOgoJCQkJalF1ZXJ5LnN1cHBvcnQuYm94TW9kZWwgJiYgd2luLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFsgbWV0aG9kIF0gfHwKCQkJCQl3aW4uZG9jdW1lbnQuYm9keVsgbWV0aG9kIF0gOgoJCQkJZWxlbVsgbWV0aG9kIF07CgkJfQoJfTsKfSk7CgpmdW5jdGlvbiBnZXRXaW5kb3coIGVsZW0gKSB7CglyZXR1cm4galF1ZXJ5LmlzV2luZG93KCBlbGVtICkgPwoJCWVsZW0gOgoJCWVsZW0ubm9kZVR5cGUgPT09IDkgPwoJCQllbGVtLmRlZmF1bHRWaWV3IHx8IGVsZW0ucGFyZW50V2luZG93IDoKCQkJZmFsc2U7Cn0KCgoKCi8vIENyZWF0ZSBpbm5lckhlaWdodCwgaW5uZXJXaWR0aCwgb3V0ZXJIZWlnaHQgYW5kIG91dGVyV2lkdGggbWV0aG9kcwpqUXVlcnkuZWFjaChbICJIZWlnaHQiLCAiV2lkdGgiIF0sIGZ1bmN0aW9uKCBpLCBuYW1lICkgewoKCXZhciB0eXBlID0gbmFtZS50b0xvd2VyQ2FzZSgpOwoKCS8vIGlubmVySGVpZ2h0IGFuZCBpbm5lcldpZHRoCglqUXVlcnkuZm5bImlubmVyIiArIG5hbWVdID0gZnVuY3Rpb24oKSB7CgkJcmV0dXJuIHRoaXNbMF0gPwoJCQlwYXJzZUZsb2F0KCBqUXVlcnkuY3NzKCB0aGlzWzBdLCB0eXBlLCAicGFkZGluZyIgKSApIDoKCQkJbnVsbDsKCX07CgoJLy8gb3V0ZXJIZWlnaHQgYW5kIG91dGVyV2lkdGgKCWpRdWVyeS5mblsib3V0ZXIiICsgbmFtZV0gPSBmdW5jdGlvbiggbWFyZ2luICkgewoJCXJldHVybiB0aGlzWzBdID8KCQkJcGFyc2VGbG9hdCggalF1ZXJ5LmNzcyggdGhpc1swXSwgdHlwZSwgbWFyZ2luID8gIm1hcmdpbiIgOiAiYm9yZGVyIiApICkgOgoJCQludWxsOwoJfTsKCglqUXVlcnkuZm5bIHR5cGUgXSA9IGZ1bmN0aW9uKCBzaXplICkgewoJCS8vIEdldCB3aW5kb3cgd2lkdGggb3IgaGVpZ2h0CgkJdmFyIGVsZW0gPSB0aGlzWzBdOwoJCWlmICggIWVsZW0gKSB7CgkJCXJldHVybiBzaXplID09IG51bGwgPyBudWxsIDogdGhpczsKCQl9CgoJCWlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHNpemUgKSApIHsKCQkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiggaSApIHsKCQkJCXZhciBzZWxmID0galF1ZXJ5KCB0aGlzICk7CgkJCQlzZWxmWyB0eXBlIF0oIHNpemUuY2FsbCggdGhpcywgaSwgc2VsZlsgdHlwZSBdKCkgKSApOwoJCQl9KTsKCQl9CgoJCWlmICggalF1ZXJ5LmlzV2luZG93KCBlbGVtICkgKSB7CgkJCS8vIEV2ZXJ5b25lIGVsc2UgdXNlIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCBvciBkb2N1bWVudC5ib2R5IGRlcGVuZGluZyBvbiBRdWlya3MgdnMgU3RhbmRhcmRzIG1vZGUKCQkJLy8gM3JkIGNvbmRpdGlvbiBhbGxvd3MgTm9raWEgc3VwcG9ydCwgYXMgaXQgc3VwcG9ydHMgdGhlIGRvY0VsZW0gcHJvcCBidXQgbm90IENTUzFDb21wYXQKCQkJdmFyIGRvY0VsZW1Qcm9wID0gZWxlbS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbICJjbGllbnQiICsgbmFtZSBdOwoJCQlyZXR1cm4gZWxlbS5kb2N1bWVudC5jb21wYXRNb2RlID09PSAiQ1NTMUNvbXBhdCIgJiYgZG9jRWxlbVByb3AgfHwKCQkJCWVsZW0uZG9jdW1lbnQuYm9keVsgImNsaWVudCIgKyBuYW1lIF0gfHwgZG9jRWxlbVByb3A7CgoJCS8vIEdldCBkb2N1bWVudCB3aWR0aCBvciBoZWlnaHQKCQl9IGVsc2UgaWYgKCBlbGVtLm5vZGVUeXBlID09PSA5ICkgewoJCQkvLyBFaXRoZXIgc2Nyb2xsW1dpZHRoL0hlaWdodF0gb3Igb2Zmc2V0W1dpZHRoL0hlaWdodF0sIHdoaWNoZXZlciBpcyBncmVhdGVyCgkJCXJldHVybiBNYXRoLm1heCgKCQkJCWVsZW0uZG9jdW1lbnRFbGVtZW50WyJjbGllbnQiICsgbmFtZV0sCgkJCQllbGVtLmJvZHlbInNjcm9sbCIgKyBuYW1lXSwgZWxlbS5kb2N1bWVudEVsZW1lbnRbInNjcm9sbCIgKyBuYW1lXSwKCQkJCWVsZW0uYm9keVsib2Zmc2V0IiArIG5hbWVdLCBlbGVtLmRvY3VtZW50RWxlbWVudFsib2Zmc2V0IiArIG5hbWVdCgkJCSk7CgoJCS8vIEdldCBvciBzZXQgd2lkdGggb3IgaGVpZ2h0IG9uIHRoZSBlbGVtZW50CgkJfSBlbHNlIGlmICggc2l6ZSA9PT0gdW5kZWZpbmVkICkgewoJCQl2YXIgb3JpZyA9IGpRdWVyeS5jc3MoIGVsZW0sIHR5cGUgKSwKCQkJCXJldCA9IHBhcnNlRmxvYXQoIG9yaWcgKTsKCgkJCXJldHVybiBqUXVlcnkuaXNOYU4oIHJldCApID8gb3JpZyA6IHJldDsKCgkJLy8gU2V0IHRoZSB3aWR0aCBvciBoZWlnaHQgb24gdGhlIGVsZW1lbnQgKGRlZmF1bHQgdG8gcGl4ZWxzIGlmIHZhbHVlIGlzIHVuaXRsZXNzKQoJCX0gZWxzZSB7CgkJCXJldHVybiB0aGlzLmNzcyggdHlwZSwgdHlwZW9mIHNpemUgPT09ICJzdHJpbmciID8gc2l6ZSA6IHNpemUgKyAicHgiICk7CgkJfQoJfTsKCn0pOwoKCndpbmRvdy5qUXVlcnkgPSB3aW5kb3cuJCA9IGpRdWVyeTsKfSkod2luZG93KTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/docs/media/js/shBrushJScript.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIFN5bnRheEhpZ2hsaWdodGVyCiAqIGh0dHA6Ly9hbGV4Z29yYmF0Y2hldi5jb20vU3ludGF4SGlnaGxpZ2h0ZXIKICoKICogU3ludGF4SGlnaGxpZ2h0ZXIgaXMgZG9uYXRpb253YXJlLiBJZiB5b3UgYXJlIHVzaW5nIGl0LCBwbGVhc2UgZG9uYXRlLgogKiBodHRwOi8vYWxleGdvcmJhdGNoZXYuY29tL1N5bnRheEhpZ2hsaWdodGVyL2RvbmF0ZS5odG1sCiAqCiAqIEB2ZXJzaW9uCiAqIDMuMC44MyAoSnVseSAwMiAyMDEwKQogKiAKICogQGNvcHlyaWdodAogKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMCBBbGV4IEdvcmJhdGNoZXYuCiAqCiAqIEBsaWNlbnNlCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzLgogKi8KOyhmdW5jdGlvbigpCnsKCS8vIENvbW1vbkpTCgl0eXBlb2YocmVxdWlyZSkgIT0gJ3VuZGVmaW5lZCcgPyBTeW50YXhIaWdobGlnaHRlciA9IHJlcXVpcmUoJ3NoQ29yZScpLlN5bnRheEhpZ2hsaWdodGVyIDogbnVsbDsKCglmdW5jdGlvbiBCcnVzaCgpCgl7CgkJdmFyIGtleXdvcmRzID0JJ2JyZWFrIGNhc2UgY2F0Y2ggY29udGludWUgJyArCgkJCQkJCSdkZWZhdWx0IGRlbGV0ZSBkbyBlbHNlIGZhbHNlICAnICsKCQkJCQkJJ2ZvciBmdW5jdGlvbiBpZiBpbiBpbnN0YW5jZW9mICcgKwoJCQkJCQknbmV3IG51bGwgcmV0dXJuIHN1cGVyIHN3aXRjaCAnICsKCQkJCQkJJ3RoaXMgdGhyb3cgdHJ1ZSB0cnkgdHlwZW9mIHZhciB3aGlsZSB3aXRoJwoJCQkJCQk7CgoJCXZhciByID0gU3ludGF4SGlnaGxpZ2h0ZXIucmVnZXhMaWI7CgkJCgkJdGhpcy5yZWdleExpc3QgPSBbCgkJCXsgcmVnZXg6IHIubXVsdGlMaW5lRG91YmxlUXVvdGVkU3RyaW5nLAkJCQkJY3NzOiAnc3RyaW5nJyB9LAkJCS8vIGRvdWJsZSBxdW90ZWQgc3RyaW5ncwoJCQl7IHJlZ2V4OiByLm11bHRpTGluZVNpbmdsZVF1b3RlZFN0cmluZywJCQkJCWNzczogJ3N0cmluZycgfSwJCQkvLyBzaW5nbGUgcXVvdGVkIHN0cmluZ3MKCQkJeyByZWdleDogci5zaW5nbGVMaW5lQ0NvbW1lbnRzLAkJCQkJCQljc3M6ICdjb21tZW50cycgfSwJCQkvLyBvbmUgbGluZSBjb21tZW50cwoJCQl7IHJlZ2V4OiByLm11bHRpTGluZUNDb21tZW50cywJCQkJCQkJY3NzOiAnY29tbWVudHMnIH0sCQkJLy8gbXVsdGlsaW5lIGNvbW1lbnRzCgkJCXsgcmVnZXg6IC9ccyojLiovZ20sCQkJCQkJCQkJY3NzOiAncHJlcHJvY2Vzc29yJyB9LAkJLy8gcHJlcHJvY2Vzc29yIHRhZ3MgbGlrZSAjcmVnaW9uIGFuZCAjZW5kcmVnaW9uCgkJCXsgcmVnZXg6IG5ldyBSZWdFeHAodGhpcy5nZXRLZXl3b3JkcyhrZXl3b3JkcyksICdnbScpLAljc3M6ICdrZXl3b3JkJyB9CQkJLy8ga2V5d29yZHMKCQkJXTsKCQoJCXRoaXMuZm9ySHRtbFNjcmlwdChyLnNjcmlwdFNjcmlwdFRhZ3MpOwoJfTsKCglCcnVzaC5wcm90b3R5cGUJPSBuZXcgU3ludGF4SGlnaGxpZ2h0ZXIuSGlnaGxpZ2h0ZXIoKTsKCUJydXNoLmFsaWFzZXMJPSBbJ2pzJywgJ2pzY3JpcHQnLCAnamF2YXNjcmlwdCddOwoKCVN5bnRheEhpZ2hsaWdodGVyLmJydXNoZXMuSlNjcmlwdCA9IEJydXNoOwoKCS8vIENvbW1vbkpTCgl0eXBlb2YoZXhwb3J0cykgIT0gJ3VuZGVmaW5lZCcgPyBleHBvcnRzLkJydXNoID0gQnJ1c2ggOiBudWxsOwp9KSgpOwo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/docs/media/js/shCore.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIFN5bnRheEhpZ2hsaWdodGVyCiAqIGh0dHA6Ly9hbGV4Z29yYmF0Y2hldi5jb20vU3ludGF4SGlnaGxpZ2h0ZXIKICoKICogU3ludGF4SGlnaGxpZ2h0ZXIgaXMgZG9uYXRpb253YXJlLiBJZiB5b3UgYXJlIHVzaW5nIGl0LCBwbGVhc2UgZG9uYXRlLgogKiBodHRwOi8vYWxleGdvcmJhdGNoZXYuY29tL1N5bnRheEhpZ2hsaWdodGVyL2RvbmF0ZS5odG1sCiAqCiAqIEB2ZXJzaW9uCiAqIDMuMC44MyAoSnVseSAwMiAyMDEwKQogKiAKICogQGNvcHlyaWdodAogKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMCBBbGV4IEdvcmJhdGNoZXYuCiAqCiAqIEBsaWNlbnNlCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzLgogKi8KZXZhbChmdW5jdGlvbihwLGEsYyxrLGUsZCl7ZT1mdW5jdGlvbihjKXtyZXR1cm4oYzxhPycnOmUocGFyc2VJbnQoYy9hKSkpKygoYz1jJWEpPjM1P1N0cmluZy5mcm9tQ2hhckNvZGUoYysyOSk6Yy50b1N0cmluZygzNikpfTtpZighJycucmVwbGFjZSgvXi8sU3RyaW5nKSl7d2hpbGUoYy0tKXtkW2UoYyldPWtbY118fGUoYyl9az1bZnVuY3Rpb24oZSl7cmV0dXJuIGRbZV19XTtlPWZ1bmN0aW9uKCl7cmV0dXJuJ1xcdysnfTtjPTF9O3doaWxlKGMtLSl7aWYoa1tjXSl7cD1wLnJlcGxhY2UobmV3IFJlZ0V4cCgnXFxiJytlKGMpKydcXGInLCdnJyksa1tjXSl9fXJldHVybiBwfSgnSyBNO0koTSkxUyAyVSgiMmFcJ3QgNGsgTSA0SyAyZyAzbCA0RyA0SCIpOyg2KCl7NiByKGYsZSl7SSghTS4xUihmKSkxUyAzbSgiM3MgMTUgNFIiKTtLIGE9Zi4xdztmPU0oZi4xbSx0KGYpKyhlfHwiIikpO0koYSlmLjF3PXsxbTphLjFtLDE5OmEuMTk/YS4xOS4xYSgwKTpOfTtIIGZ9NiB0KGYpe0goZi4xSj8iZyI6IiIpKyhmLjRzPyJpIjoiIikrKGYuNHA/Im0iOiIiKSsoZi40dj8ieCI6IiIpKyhmLjNuPyJ5IjoiIil9NiBCKGYsZSxhLGIpe0sgYz11LkwsZCxoLGc7dj1SOzVLe08oO2MtLTspe2c9dVtjXTtJKGEmZy4zciYmKCFnLjJwfHxnLjJwLlcoYikpKXtnLjJxLjEyPWU7SSgoaD1nLjJxLlgoZikpJiZoLlA9PT1lKXtkPXszazpnLjJiLlcoYixoLGEpLDFDOmh9OzFOfX19fTV2KGkpezFTIGl9NXF7dj0xMX1IIGR9NiBwKGYsZSxhKXtJKDNiLlouMWkpSCBmLjFpKGUsYSk7TyhhPWF8fDA7YTxmLkw7YSsrKUkoZlthXT09PWUpSCBhO0gtMX1NPTYoZixlKXtLIGE9W10sYj1NLjFCLGM9MCxkLGg7SShNLjFSKGYpKXtJKGUhPT0xZCkxUyAzbSgiMmFcJ3QgNXIgNUkgNUYgNUIgNUMgMTUgNUUgNXAiKTtIIHIoZil9SSh2KTFTIDJVKCIyYVwndCBXIDNsIE0gNTkgNW0gNWcgNXggNWkiKTtlPWV8fCIiO08oZD17Mk46MTEsMTk6W10sMks6NihnKXtIIGUuMWkoZyk+LTF9LDNkOjYoZyl7ZSs9Z319O2M8Zi5MOylJKGg9QihmLGMsYixkKSl7YS5VKGguM2spO2MrPWguMUNbMF0uTHx8MX1ZIEkoaD1uLlguVyh6W2JdLGYuMWEoYykpKXthLlUoaFswXSk7Yys9aFswXS5MfVl7aD1mLjNhKGMpO0koaD09PSJbIiliPU0uMkk7WSBJKGg9PT0iXSIpYj1NLjFCO2EuVShoKTtjKyt9YT0xNShhLjFLKCIiKSxuLlEuVyhlLHcsIiIpKTthLjF3PXsxbTpmLDE5OmQuMk4/ZC4xOTpOfTtIIGF9O00uM3Y9IjEuNS4wIjtNLjJJPTE7TS4xQj0yO0sgQz0vXFwkKD86KFxcZFxcZD98WyQmYFwnXSl8eyhbJFxcd10rKX0pL2csdz0vW141aF0rfChbXFxzXFxTXSkoPz1bXFxzXFxTXSpcXDEpL2csQT0vXig/Ols/KitdfHtcXGQrKD86LFxcZCopP30pXFw/Py8sdj0xMSx1PVtdLG49e1g6MTUuWi5YLDFBOjE1LlouMUEsMUM6MXIuWi4xQyxROjFyLlouUSwxZToxci5aLjFlfSx4PW4uWC5XKC8oKT8/LywiIilbMV09PT0xZCxEPTYoKXtLIGY9L14vZztuLjFBLlcoZiwiIik7SCFmLjEyfSgpLHk9Nigpe0sgZj0veC9nO24uUS5XKCJ4IixmLCIiKTtIIWYuMTJ9KCksRT0xNS5aLjNuIT09MWQsej17fTt6W00uMkldPS9eKD86XFxcXCg/OlswLTNdWzAtN117MCwyfXxbNC03XVswLTddP3x4W1xcMjktMjYtZl17Mn18dVtcXDI5LTI2LWZdezR9fGNbQS0zby16XXxbXFxzXFxTXSkpLzt6W00uMUJdPS9eKD86XFxcXCg/OjAoPzpbMC0zXVswLTddezAsMn18WzQtN11bMC03XT8pP3xbMS05XVxcZCp8eFtcXDI5LTI2LWZdezJ9fHVbXFwyOS0yNi1mXXs0fXxjW0EtM28tel18W1xcc1xcU10pfFxcKFxcP1s6PSFdfFs/KitdXFw/fHtcXGQrKD86LFxcZCopP31cXD8/KS87TS4xaD02KGYsZSxhLGIpe3UuVSh7MnE6cihmLCJnIisoRT8ieSI6IiIpKSwyYjplLDNyOmF8fE0uMUIsMnA6Ynx8Tn0pfTtNLjJuPTYoZixlKXtLIGE9ZisiLyIrKGV8fCIiKTtIIE0uMm5bYV18fChNLjJuW2FdPU0oZixlKSl9O00uM2M9NihmKXtIIHIoZiwiZyIpfTtNLjVsPTYoZil7SCBmLlEoL1stW1xcXXt9KCkqKz8uLFxcXFxeJHwjXFxzXS9nLCJcXFxcJCYiKX07TS41ZT02KGYsZSxhLGIpe2U9cihlLCJnIisoYiYmRT8ieSI6IiIpKTtlLjEyPWE9YXx8MDtmPWUuWChmKTtIIGI/ZiYmZi5QPT09YT9mOk46Zn07TS4zcT02KCl7TS4xaD02KCl7MVMgMlUoIjJhXCd0IDU1IDFoIDU0IDNxIil9fTtNLjFSPTYoZil7SCA1My5aLjFxLlcoZik9PT0iWzJtIDE1XSJ9O00uM3A9NihmLGUsYSxiKXtPKEsgYz1yKGUsImciKSxkPS0xLGg7aD1jLlgoZik7KXthLlcoYixoLCsrZCxmLGMpO2MuMTI9PT1oLlAmJmMuMTIrK31JKGUuMUopZS4xMj0wfTtNLjU3PTYoZixlKXtIIDYgYShiLGMpe0sgZD1lW2NdLjFJP2VbY106ezFJOmVbY119LGg9cihkLjFJLCJnIiksZz1bXSxpO08oaT0wO2k8Yi5MO2krKylNLjNwKGJbaV0saCw2KGspe2cuVShkLjNqP2tbZC4zal18fCIiOmtbMF0pfSk7SCBjPT09ZS5MLTF8fCFnLkw/ZzphKGcsYysxKX0oW2ZdLDApfTsxNS5aLjFwPTYoZixlKXtIIEouWChlWzBdKX07MTUuWi5XPTYoZixlKXtIIEouWChlKX07MTUuWi5YPTYoZil7SyBlPW4uWC4xcChKLDE0KSxhO0koZSl7SSgheCYmZS5MPjEmJnAoZSwiIik+LTEpe2E9MTUoSi4xbSxuLlEuVyh0KEopLCJnIiwiIikpO24uUS5XKGYuMWEoZS5QKSxhLDYoKXtPKEsgYz0xO2M8MTQuTC0yO2MrKylJKDE0W2NdPT09MWQpZVtjXT0xZH0pfUkoSi4xdyYmSi4xdy4xOSlPKEsgYj0xO2I8ZS5MO2IrKylJKGE9Si4xdy4xOVtiLTFdKWVbYV09ZVtiXTshRCYmSi4xSiYmIWVbMF0uTCYmSi4xMj5lLlAmJkouMTItLX1IIGV9O0koIUQpMTUuWi4xQT02KGYpeyhmPW4uWC5XKEosZikpJiZKLjFKJiYhZlswXS5MJiZKLjEyPmYuUCYmSi4xMi0tO0ghIWZ9OzFyLlouMUM9NihmKXtNLjFSKGYpfHwoZj0xNShmKSk7SShmLjFKKXtLIGU9bi4xQy4xcChKLDE0KTtmLjEyPTA7SCBlfUggZi5YKEopfTsxci5aLlE9NihmLGUpe0sgYT1NLjFSKGYpLGIsYztJKGEmJjFqIGUuNTgoKT09PSIzZiImJmUuMWkoIiR7Iik9PT0tMSYmeSlIIG4uUS4xcChKLDE0KTtJKGEpe0koZi4xdyliPWYuMXcuMTl9WSBmKz0iIjtJKDFqIGU9PT0iNiIpYz1uLlEuVyhKLGYsNigpe0koYil7MTRbMF09MWYgMXIoMTRbMF0pO08oSyBkPTA7ZDxiLkw7ZCsrKUkoYltkXSkxNFswXVtiW2RdXT0xNFtkKzFdfUkoYSYmZi4xSilmLjEyPTE0WzE0LkwtMl0rMTRbMF0uTDtIIGUuMXAoTiwxNCl9KTtZe2M9SisiIjtjPW4uUS5XKGMsZiw2KCl7SyBkPTE0O0ggbi5RLlcoZSxDLDYoaCxnLGkpe0koZyk1YihnKXsyNCIkIjpIIiQiOzI0IiYiOkggZFswXTsyNCJgIjpIIGRbZC5MLTFdLjFhKDAsZFtkLkwtMl0pOzI0IlwnIjpIIGRbZC5MLTFdLjFhKGRbZC5MLTJdK2RbMF0uTCk7NWE6aT0iIjtnPStnO0koIWcpSCBoO08oO2c+ZC5MLTM7KXtpPTFyLlouMWEuVyhnLC0xKStpO2c9MVEuM2koZy8xMCl9SChnP2RbZ118fCIiOiIkIikraX1Ze2c9K2k7SShnPD1kLkwtMylIIGRbZ107Zz1iP3AoYixpKTotMTtIIGc+LTE/ZFtnKzFdOmh9fSl9KX1JKGEmJmYuMUopZi4xMj0wO0ggY307MXIuWi4xZT02KGYsZSl7SSghTS4xUihmKSlIIG4uMWUuMXAoSiwxNCk7SyBhPUorIiIsYj1bXSxjPTAsZCxoO0koZT09PTFkfHwrZTwwKWU9NUQ7WXtlPTFRLjNpKCtlKTtJKCFlKUhbXX1PKGY9TS4zYyhmKTtkPWYuWChhKTspe0koZi4xMj5jKXtiLlUoYS4xYShjLGQuUCkpO2QuTD4xJiZkLlA8YS5MJiYzYi5aLlUuMXAoYixkLjFhKDEpKTtoPWRbMF0uTDtjPWYuMTI7SShiLkw+PWUpMU59Zi4xMj09PWQuUCYmZi4xMisrfUkoYz09PWEuTCl7SSghbi4xQS5XKGYsIiIpfHxoKWIuVSgiIil9WSBiLlUoYS4xYShjKSk7SCBiLkw+ZT9iLjFhKDAsZSk6Yn07TS4xaCgvXFwoXFw/I1teKV0qXFwpLyw2KGYpe0ggbi4xQS5XKEEsZi4yUy4xYShmLlArZlswXS5MKSk/IiI6Iig/OikifSk7TS4xaCgvXFwoKD8hXFw/KS8sNigpe0ouMTkuVShOKTtIIigifSk7TS4xaCgvXFwoXFw/PChbJFxcd10rKT4vLDYoZil7Si4xOS5VKGZbMV0pO0ouMk49UjtIIigifSk7TS4xaCgvXFxcXGs8KFtcXHckXSspPi8sNihmKXtLIGU9cChKLjE5LGZbMV0pO0ggZT4tMT8iXFxcXCIrKGUrMSkrKDNSKGYuMlMuM2EoZi5QK2ZbMF0uTCkpPyIiOiIoPzopIik6ZlswXX0pO00uMWgoL1xcW1xcXj9dLyw2KGYpe0ggZlswXT09PSJbXSI/IlxcXFxiXFxcXEIiOiJbXFxcXHNcXFxcU10ifSk7TS4xaCgvXlxcKFxcPyhbNUFdKylcXCkvLDYoZil7Si4zZChmWzFdKTtIIiJ9KTtNLjFoKC8oPzpcXHMrfCMuKikrLyw2KGYpe0ggbi4xQS5XKEEsZi4yUy4xYShmLlArZlswXS5MKSk/IiI6Iig/OikifSxNLjFCLDYoKXtIIEouMksoIngiKX0pO00uMWgoL1xcLi8sNigpe0giW1xcXFxzXFxcXFNdIn0sTS4xQiw2KCl7SCBKLjJLKCJzIil9KX0pKCk7MWogMmUhPSIxZCImJigyZS5NPU0pO0sgMXY9NigpezYgcihhLGIpe2EuMWwuMWkoYikhPS0xfHwoYS4xbCs9IiAiK2IpfTYgdChhKXtIIGEuMWkoIjNlIik9PTA/YToiM2UiK2F9NiBCKGEpe0ggZS4xWS4yQVt0KGEpXX02IHAoYSxiLGMpe0koYT09TilIIE47SyBkPWMhPVI/YS4zRzpbYS4yR10saD17IiMiOiIxYyIsIi4iOiIxbCJ9W2IuMW8oMCwxKV18fCIzaCIsZyxpO2c9aCE9IjNoIj9iLjFvKDEpOmIuNXUoKTtJKChhW2hdfHwiIikuMWkoZykhPS0xKUggYTtPKGE9MDtkJiZhPGQuTCYmaT09TjthKyspaT1wKGRbYV0sYixjKTtIIGl9NiBDKGEsYil7SyBjPXt9LGQ7TyhkIDJnIGEpY1tkXT1hW2RdO08oZCAyZyBiKWNbZF09YltkXTtIIGN9NiB3KGEsYixjLGQpezYgaChnKXtnPWd8fDFQLjV5O0koIWcuMUYpe2cuMUY9Zy41MjtnLjNOPTYoKXtKLjV3PTExfX1jLlcoZHx8MVAsZyl9YS4zZz9hLjNnKCI0VSIrYixoKTphLjR5KGIsaCwxMSl9NiBBKGEsYil7SyBjPWUuMVkuMmosZD1OO0koYz09Til7Yz17fTtPKEsgaCAyZyBlLjFVKXtLIGc9ZS4xVVtoXTtkPWcuNHg7SShkIT1OKXtnLjFWPWguNHcoKTtPKGc9MDtnPGQuTDtnKyspY1tkW2ddXT1ofX1lLjFZLjJqPWN9ZD1lLjFVW2NbYV1dO2Q9PU4mJmIhPTExJiYxUC4xWChlLjEzLjF4LjFYKyhlLjEzLjF4LjNFK2EpKTtIIGR9NiB2KGEsYil7TyhLIGM9YS4xZSgiXFxuIiksZD0wO2Q8Yy5MO2QrKyljW2RdPWIoY1tkXSxkKTtIIGMuMUsoIlxcbiIpfTYgdShhLGIpe0koYT09Tnx8YS5MPT0wfHxhPT0iXFxuIilIIGE7YT1hLlEoLzwvZywiJjF5OyIpO2E9YS5RKC8gezIsfS9nLDYoYyl7TyhLIGQ9IiIsaD0wO2g8Yy5MLTE7aCsrKWQrPWUuMTMuMVc7SCBkKyIgIn0pO0koYiE9TilhPXYoYSw2KGMpe0koYy5MPT0wKUgiIjtLIGQ9IiI7Yz1jLlEoL14oJjJzO3wgKSsvLDYoaCl7ZD1oO0giIn0pO0koYy5MPT0wKUggZDtIIGQrXCc8MTcgMWc9IlwnK2IrXCciPlwnK2MrIjwvMTc+In0pO0ggYX02IG4oYSxiKXthLjFlKCJcXG4iKTtPKEsgYz0iIixkPTA7ZDw1MDtkKyspYys9IiAgICAgICAgICAgICAgICAgICAgIjtIIGE9dihhLDYoaCl7SShoLjFpKCJcXHQiKT09LTEpSCBoO08oSyBnPTA7KGc9aC4xaSgiXFx0IikpIT0tMTspaD1oLjFvKDAsZykrYy4xbygwLGItZyViKStoLjFvKGcrMSxoLkwpO0ggaH0pfTYgeChhKXtIIGEuUSgvXlxccyt8XFxzKyQvZywiIil9NiBEKGEsYil7SShhLlA8Yi5QKUgtMTtZIEkoYS5QPmIuUClIIDE7WSBJKGEuTDxiLkwpSC0xO1kgSShhLkw+Yi5MKUggMTtIIDB9NiB5KGEsYil7NiBjKGspe0gga1swXX1PKEsgZD1OLGg9W10sZz1iLjJEP2IuMkQ6YzsoZD1iLjFJLlgoYSkpIT1OOyl7SyBpPWcoZCxiKTtJKDFqIGk9PSIzZiIpaT1bMWYgZS4yTChpLGQuUCxiLjIzKV07aD1oLjFPKGkpfUggaH02IEUoYSl7SyBiPS8oLiopKCgmMUc7fCYxeTspLiopLztIIGEuUShlLjNBLjNNLDYoYyl7SyBkPSIiLGg9TjtJKGg9Yi5YKGMpKXtjPWhbMV07ZD1oWzJdfUhcJzxhIDJoPSJcJytjK1wnIj5cJytjKyI8L2E+IitkfSl9NiB6KCl7TyhLIGE9MUUuMzYoIjFrIiksYj1bXSxjPTA7YzxhLkw7YysrKWFbY10uM3M9PSIyMCImJmIuVShhW2NdKTtIIGJ9NiBmKGEpe2E9YS4xRjtLIGI9cChhLCIuMjAiLFIpO2E9cChhLCIuM08iLFIpO0sgYz0xRS40aSgiM3QiKTtJKCEoIWF8fCFifHxwKGEsIjN0IikpKXtCKGIuMWMpO3IoYiwiMW0iKTtPKEsgZD1hLjNHLGg9W10sZz0wO2c8ZC5MO2crKyloLlUoZFtnXS40enx8ZFtnXS40QSk7aD1oLjFLKCJcXHIiKTtjLjM5KDFFLjREKGgpKTthLjM5KGMpO2MuMkMoKTtjLjRDKCk7dyhjLCI0dSIsNigpe2MuMkcuNEUoYyk7Yi4xbD1iLjFsLlEoIjFtIiwiIil9KX19SSgxaiAzRiE9IjFkIiYmMWogTT09IjFkIilNPTNGKCJNIikuTTtLIGU9ezJ2OnsiMWctMjciOiIiLCIyaS0xcyI6MSwiMnotMXMtMnQiOjExLDFNOk4sMXQ6TiwiNDItNDUiOlIsIjQzLTIyIjo0LDF1OlIsMTY6UiwiM1YtMTciOlIsMmw6MTEsIjQxLTQwIjpSLDJrOjExLCIxei0xayI6MTF9LDEzOnsxVzoiJjJzOyIsMk06Uiw0NjoxMSw0NDoxMSwzNDoiNG4iLDF4OnsyMToiNG8gMW0iLDJQOiI/IiwxWDoiMXZcXG5cXG4iLDNFOiI0clwndCA0dCAxRCBPOiAiLDRnOiI0bSA0QlwndCA1MSBPIDF6LTFrIDRGOiAiLDM3OlwnPCE0VCAxeiA0UyAiLS8vNFYvLzNIIDRXIDEuMCA0Wi8vNFkiICIxWjovLzJ5LjNMLjNLLzRYLzNJLzNILzNJLTRQLjRKIj48MXogNEk9IjFaOi8vMnkuM0wuM0svNEwvNUwiPjwzSj48NE4gMVotNE09IjVHLTVNIiA2Sz0iMk8vMXo7IDZKPTZJLTgiIC8+PDF0PjZMIDF2PC8xdD48LzNKPjwzQiAxTD0iMjUtNk06NlEsNlAsNk8sNk4tNkY7NnktMmY6IzZ4OzJmOiM2dzsyNS0yMjo2djsyTy0zRDozQzsiPjxUIDFMPSIyTy0zRDozQzszdy0zMjoxLjZ6OyI+PFQgMUw9IjI1LTIyOjZBLTZFOyI+MXY8L1Q+PFQgMUw9IjI1LTIyOi42Qzszdy02Qjo2UjsiPjxUPjN2IDMuMC43NiAoNzIgNzMgM3gpPC9UPjxUPjxhIDJoPSIxWjovLzN1LjJ3LzF2IiAxRj0iMzgiIDFMPSIyZjojM3kiPjFaOi8vM3UuMncvMXY8L2E+PC9UPjxUPjcwIDE3IDZVIDcxLjwvVD48VD42VCA2WC0zeCA2WSA2RC48L1Q+PC9UPjxUPjZ0IDYxIDYwIEogMWssIDVaIDxhIDJoPSI2dTovLzJ5LjYyLjJ3LzYzLTY2LzY1PzY0PTVYLTVXJjVQPTVPIiAxTD0iMmY6IzN5Ij41UjwvYT4gNVYgPDJSLz41VSA1VCA1UyE8L1Q+PC9UPjwvM0I+PC8xej5cJ319LDFZOnsyajpOLDJBOnt9fSwxVTp7fSwzQTp7Nm46L1xcL1xcKltcXHNcXFNdKj9cXCpcXC8vMmMsNm06L1xcL1xcLy4qJC8yYyw2bDovIy4qJC8yYyw2azovIihbXlxcXFwiXFxuXXxcXFxcLikqIi9nLDZvOi9cJyhbXlxcXFxcJ1xcbl18XFxcXC4pKlwnL2csNnA6MWYgTShcJyIoW15cXFxcXFxcXCJdfFxcXFxcXFxcLikqIlwnLCIzeiIpLDZzOjFmIE0oIlwnKFteXFxcXFxcXFxcJ118XFxcXFxcXFwuKSpcJyIsIjN6IiksNnE6LygmMXk7fDwpIS0tW1xcc1xcU10qPy0tKCYxRzt8PikvMmMsM006L1xcdys6XFwvXFwvW1xcdy0uXFwvPyUmPTpAO10qL2csNmE6ezE4Oi8oJjF5O3w8KVxcPz0/L2csMWI6L1xcPygmMUc7fD4pL2d9LDY5OnsxODovKCYxeTt8PCklPT8vZywxYjovJSgmMUc7fD4pL2d9LDZkOnsxODovKCYxeTt8PClcXHMqMWsuKj8oJjFHO3w+KS8yVCwxYjovKCYxeTt8PClcXC9cXHMqMWtcXHMqKCYxRzt8PikvMlR9fSwxNjp7MUg6NihhKXs2IGIoaSxrKXtIIGUuMTYuMm8oaSxrLGUuMTMuMXhba10pfU8oSyBjPVwnPFQgMWc9IjE2Ij5cJyxkPWUuMTYuMngsaD1kLjJYLGc9MDtnPGguTDtnKyspYys9KGRbaFtnXV0uMUh8fGIpKGEsaFtnXSk7Yys9IjwvVD4iO0ggY30sMm86NihhLGIsYyl7SFwnPDJXPjxhIDJoPSIjIiAxZz0iNmUgNmhcJytiKyIgIitiK1wnIj5cJytjKyI8L2E+PC8yVz4ifSwyYjo2KGEpe0sgYj1hLjFGLGM9Yi4xbHx8IiI7Yj1CKHAoYiwiLjIwIixSKS4xYyk7SyBkPTYoaCl7SChoPTE1KGgrIjZmKFxcXFx3KykiKS5YKGMpKT9oWzFdOk59KCI2ZyIpO2ImJmQmJmUuMTYuMnhbZF0uMkIoYik7YS4zTigpfSwyeDp7Mlg6WyIyMSIsIjJQIl0sMjE6ezFIOjYoYSl7SShhLlYoIjJsIikhPVIpSCIiO0sgYj1hLlYoIjF0Iik7SCBlLjE2LjJvKGEsIjIxIixiP2I6ZS4xMy4xeC4yMSl9LDJCOjYoYSl7YT0xRS42aih0KGEuMWMpKTthLjFsPWEuMWwuUSgiNDciLCIiKX19LDJQOnsyQjo2KCl7SyBhPSI2OD0wIjthKz0iLCAxOD0iKygzMS4zMC0zMykvMisiLCAzMj0iKygzMS4yWi0yWSkvMisiLCAzMD0zMywgMlo9MlkiO2E9YS5RKC9eLC8sIiIpO2E9MVAuNlooIiIsIjM4IixhKTthLjJDKCk7SyBiPWEuMUU7Yi42VyhlLjEzLjF4LjM3KTtiLjZWKCk7YS4yQygpfX19fSwzNTo2KGEsYil7SyBjO0koYiljPVtiXTtZe2M9MUUuMzYoZS4xMy4zNCk7TyhLIGQ9W10saD0wO2g8Yy5MO2grKylkLlUoY1toXSk7Yz1kfWM9YztkPVtdO0koZS4xMy4yTSljPWMuMU8oeigpKTtJKGMuTD09PTApSCBkO08oaD0wO2g8Yy5MO2grKyl7TyhLIGc9Y1toXSxpPWEsaz1jW2hdLjFsLGo9M1cgMCxsPXt9LG09MWYgTSgiXlxcXFxbKD88MlY+KC4qPykpXFxcXF0kIikscz0xZiBNKCIoPzwyNz5bXFxcXHctXSspXFxcXHMqOlxcXFxzKig/PDFUPltcXFxcdy0lI10rfFxcXFxbLio/XFxcXF18XFwiLio/XFwifFwnLio/XCcpXFxcXHMqOz8iLCJnIik7KGo9cy5YKGspKSE9Tjspe0sgbz1qLjFULlEoL15bXCciXXxbXCciXSQvZywiIik7SShvIT1OJiZtLjFBKG8pKXtvPW0uWChvKTtvPW8uMlYuTD4wP28uMlYuMWUoL1xccyosXFxzKi8pOltdfWxbai4yN109b31nPXsxRjpnLDFuOkMoaSxsKX07Zy4xbi4xRCE9TiYmZC5VKGcpfUggZH0sMU06NihhLGIpe0sgYz1KLjM1KGEsYiksZD1OLGg9ZS4xMztJKGMuTCE9PTApTyhLIGc9MDtnPGMuTDtnKyspe2I9Y1tnXTtLIGk9Yi4xRixrPWIuMW4saj1rLjFELGw7SShqIT1OKXtJKGtbIjF6LTFrIl09PSJSInx8ZS4ydlsiMXotMWsiXT09Uil7ZD0xZiBlLjRsKGopO2o9IjRPIn1ZIEkoZD1BKGopKWQ9MWYgZDtZIDZIO2w9aS4zWDtJKGguMk0pe2w9bDtLIG09eChsKSxzPTExO0kobS4xaSgiPCFbNkdbIik9PTApe209bS40aCg5KTtzPVJ9SyBvPW0uTDtJKG0uMWkoIl1dXFw+Iik9PW8tMyl7bT1tLjRoKDAsby0zKTtzPVJ9bD1zP206bH1JKChpLjF0fHwiIikhPSIiKWsuMXQ9aS4xdDtrLjFEPWo7ZC4yUShrKTtiPWQuMkYobCk7SSgoaS4xY3x8IiIpIT0iIiliLjFjPWkuMWM7aS4yRy43NChiLGkpfX19LDJFOjYoYSl7dygxUCwiNGsiLDYoKXtlLjFNKGEpfSl9fTtlLjJFPWUuMkU7ZS4xTT1lLjFNO2UuMkw9NihhLGIsYyl7Si4xVD1hO0ouUD1iO0ouTD1hLkw7Si4yMz1jO0ouMVY9Tn07ZS4yTC5aLjFxPTYoKXtIIEouMVR9O2UuNGw9NihhKXs2IGIoaixsKXtPKEsgbT0wO208ai5MO20rKylqW21dLlArPWx9SyBjPUEoYSksZCxoPTFmIGUuMVUuNVksZz1KLGk9IjJGIDFIIDJRIi4xZSgiICIpO0koYyE9Til7ZD0xZiBjO08oSyBrPTA7azxpLkw7aysrKSg2KCl7SyBqPWlba107Z1tqXT02KCl7SCBoW2pdLjFwKGgsMTQpfX0pKCk7ZC4yOD09Tj8xUC4xWChlLjEzLjF4LjFYKyhlLjEzLjF4LjRnK2EpKTpoLjJKLlUoezFJOmQuMjguMTcsMkQ6NihqKXtPKEsgbD1qLjE3LG09W10scz1kLjJKLG89ai5QK2ouMTguTCxGPWQuMjgscSxHPTA7RzxzLkw7RysrKXtxPXkobCxzW0ddKTtiKHEsbyk7bT1tLjFPKHEpfUkoRi4xOCE9TiYmai4xOCE9Til7cT15KGouMTgsRi4xOCk7YihxLGouUCk7bT1tLjFPKHEpfUkoRi4xYiE9TiYmai4xYiE9Til7cT15KGouMWIsRi4xYik7YihxLGouUCtqWzBdLjVRKGouMWIpKTttPW0uMU8ocSl9TyhqPTA7ajxtLkw7aisrKW1bal0uMVY9Yy4xVjtIIG19fSl9fTtlLjRqPTYoKXt9O2UuNGouWj17Vjo2KGEsYil7SyBjPUouMW5bYV07Yz1jPT1OP2I6YztLIGQ9eyJSIjpSLCIxMSI6MTF9W2NdO0ggZD09Tj9jOmR9LDNZOjYoYSl7SCAxRS40aShhKX0sNGM6NihhLGIpe0sgYz1bXTtJKGEhPU4pTyhLIGQ9MDtkPGEuTDtkKyspSSgxaiBhW2RdPT0iMm0iKWM9Yy4xTyh5KGIsYVtkXSkpO0ggSi40ZShjLjZiKEQpKX0sNGU6NihhKXtPKEsgYj0wO2I8YS5MO2IrKylJKGFbYl0hPT1OKU8oSyBjPWFbYl0sZD1jLlArYy5MLGg9YisxO2g8YS5MJiZhW2JdIT09TjtoKyspe0sgZz1hW2hdO0koZyE9PU4pSShnLlA+ZCkxTjtZIEkoZy5QPT1jLlAmJmcuTD5jLkwpYVtiXT1OO1kgSShnLlA+PWMuUCYmZy5QPGQpYVtoXT1OfUggYX0sNGQ6NihhKXtLIGI9W10sYz0ydShKLlYoIjJpLTFzIikpO3YoYSw2KGQsaCl7Yi5VKGgrYyl9KTtIIGJ9LDNVOjYoYSl7SyBiPUouVigiMU0iLFtdKTtJKDFqIGIhPSIybSImJmIuVT09TiliPVtiXTthOnthPWEuMXEoKTtLIGM9M1cgMDtPKGM9Yz0xUS42YyhjfHwwLDApO2M8Yi5MO2MrKylJKGJbY109PWEpe2I9YzsxTiBhfWI9LTF9SCBiIT0tMX0sMnI6NihhLGIsYyl7YT1bIjFzIiwiNmkiK2IsIlAiK2EsIjZyIisoYiUyPT0wPzE6MikuMXEoKV07Si4zVShiKSYmYS5VKCI2NyIpO2I9PTAmJmEuVSgiMU4iKTtIXCc8VCAxZz0iXCcrYS4xSygiICIpK1wnIj5cJytjKyI8L1Q+In0sM1E6NihhLGIpe0sgYz0iIixkPWEuMWUoIlxcbiIpLkwsaD0ydShKLlYoIjJpLTFzIikpLGc9Si5WKCIyei0xcy0ydCIpO0koZz09UilnPShoK2QtMSkuMXEoKS5MO1kgSSgzUihnKT09UilnPTA7TyhLIGk9MDtpPGQ7aSsrKXtLIGs9Yj9iW2ldOmgraSxqO0koaz09MClqPWUuMTMuMVc7WXtqPWc7TyhLIGw9ay4xcSgpO2wuTDxqOylsPSIwIitsO2o9bH1hPWo7Yys9Si4ycihpLGssYSl9SCBjfSw0OTo2KGEsYil7YT14KGEpO0sgYz1hLjFlKCJcXG4iKTtKLlYoIjJ6LTFzLTJ0Iik7SyBkPTJ1KEouVigiMmktMXMiKSk7YT0iIjtPKEsgaD1KLlYoIjFEIiksZz0wO2c8Yy5MO2crKyl7SyBpPWNbZ10saz0vXigmMnM7fFxccykrLy5YKGkpLGo9TixsPWI/YltnXTpkK2c7SShrIT1OKXtqPWtbMF0uMXEoKTtpPWkuMW8oai5MKTtqPWouUSgiICIsZS4xMy4xVyl9aT14KGkpO0koaS5MPT0wKWk9ZS4xMy4xVzthKz1KLjJyKGcsbCwoaiE9Tj9cJzwxNyAxZz0iXCcraCtcJyA1TiI+XCcraisiPC8xNz4iOiIiKStpKX1IIGF9LDRmOjYoYSl7SCBhPyI8NGE+IithKyI8LzRhPiI6IiJ9LDRiOjYoYSxiKXs2IGMobCl7SChsPWw/bC4xVnx8ZzpnKT9sKyIgIjoiIn1PKEsgZD0wLGg9IiIsZz1KLlYoIjFEIiwiIiksaT0wO2k8Yi5MO2krKyl7SyBrPWJbaV0sajtJKCEoaz09PU58fGsuTD09PTApKXtqPWMoayk7aCs9dShhLjFvKGQsay5QLWQpLGorIjQ4IikrdShrLjFULGoray4yMyk7ZD1rLlAray5MKyhrLjc1fHwwKX19aCs9dShhLjFvKGQpLGMoKSsiNDgiKTtIIGh9LDFIOjYoYSl7SyBiPSIiLGM9WyIyMCJdLGQ7SShKLlYoIjJrIik9PVIpSi4xbi4xNj1KLjFuLjF1PTExOzFsPSIyMCI7Si5WKCIybCIpPT1SJiZjLlUoIjQ3Iik7SSgoMXU9Si5WKCIxdSIpKT09MTEpYy5VKCI2UyIpO2MuVShKLlYoIjFnLTI3IikpO2MuVShKLlYoIjFEIikpO2E9YS5RKC9eWyBdKltcXG5dK3xbXFxuXSpbIF0qJC9nLCIiKS5RKC9cXHIvZywiICIpO2I9Si5WKCI0My0yMiIpO0koSi5WKCI0Mi00NSIpPT1SKWE9bihhLGIpO1l7TyhLIGg9IiIsZz0wO2c8YjtnKyspaCs9IiAiO2E9YS5RKC9cXHQvZyxoKX1hPWE7YTp7Yj1hPWE7aD0vPDJSXFxzKlxcLz8+fCYxeTsyUlxccypcXC8/JjFHOy8yVDtJKGUuMTMuNDY9PVIpYj1iLlEoaCwiXFxuIik7SShlLjEzLjQ0PT1SKWI9Yi5RKGgsIiIpO2I9Yi4xZSgiXFxuIik7aD0vXlxccyovO2c9NFE7TyhLIGk9MDtpPGIuTCYmZz4wO2krKyl7SyBrPWJbaV07SSh4KGspLkwhPTApe2s9aC5YKGspO0koaz09Til7YT1hOzFOIGF9Zz0xUS40cShrWzBdLkwsZyl9fUkoZz4wKU8oaT0wO2k8Yi5MO2krKyliW2ldPWJbaV0uMW8oZyk7YT1iLjFLKCJcXG4iKX1JKDF1KWQ9Si40ZChhKTtiPUouNGMoSi4ySixhKTtiPUouNGIoYSxiKTtiPUouNDkoYixkKTtJKEouVigiNDEtNDAiKSliPUUoYik7MWogMkghPSIxZCImJjJILjNTJiYySC4zUy4xQygvNXMvKSYmYy5VKCI1dCIpO0ggYj1cJzxUIDFjPSJcJyt0KEouMWMpK1wnIiAxZz0iXCcrYy4xSygiICIpK1wnIj5cJysoSi5WKCIxNiIpP2UuMTYuMUgoSik6IiIpK1wnPDNaIDV6PSIwIiA1SD0iMCIgNUo9IjAiPlwnK0ouNGYoSi5WKCIxdCIpKSsiPDNUPjwzUD4iKygxdT9cJzwyZCAxZz0iMXUiPlwnK0ouM1EoYSkrIjwvMmQ+IjoiIikrXCc8MmQgMWc9IjE3Ij48VCAxZz0iM08iPlwnK2IrIjwvVD48LzJkPjwvM1A+PC8zVD48LzNaPjwvVD4ifSwyRjo2KGEpe0koYT09PU4pYT0iIjtKLjE3PWE7SyBiPUouM1koIlQiKTtiLjNYPUouMUgoYSk7Si5WKCIxNiIpJiZ3KHAoYiwiLjE2IiksIjVjIixlLjE2LjJiKTtKLlYoIjNWLTE3IikmJncocChiLCIuMTciKSwiNTYiLGYpO0ggYn0sMlE6NihhKXtKLjFjPSIiKzFRLjVkKDFRLjVuKCkqNWspLjFxKCk7ZS4xWS4yQVt0KEouMWMpXT1KO0ouMW49QyhlLjJ2LGF8fHt9KTtJKEouVigiMmsiKT09UilKLjFuLjE2PUouMW4uMXU9MTF9LDVqOjYoYSl7YT1hLlEoL15cXHMrfFxccyskL2csIiIpLlEoL1xccysvZywifCIpO0giXFxcXGIoPzoiK2ErIilcXFxcYiJ9LDVmOjYoYSl7Si4yOD17MTg6ezFJOmEuMTgsMjM6IjFrIn0sMWI6ezFJOmEuMWIsMjM6IjFrIn0sMTc6MWYgTSgiKD88MTg+IithLjE4LjFtKyIpKD88MTc+Lio/KSg/PDFiPiIrYS4xYi4xbSsiKSIsIjVvIil9fX07SCBlfSgpOzFqIDJlIT0iMWQiJiYoMmUuMXY9MXYpOycsNjIsNDQxLCd8fHx8fHxmdW5jdGlvbnx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHxyZXR1cm58aWZ8dGhpc3x2YXJ8bGVuZ3RofFhSZWdFeHB8bnVsbHxmb3J8aW5kZXh8cmVwbGFjZXx0cnVlfHxkaXZ8cHVzaHxnZXRQYXJhbXxjYWxsfGV4ZWN8ZWxzZXxwcm90b3R5cGV8fGZhbHNlfGxhc3RJbmRleHxjb25maWd8YXJndW1lbnRzfFJlZ0V4cHx0b29sYmFyfGNvZGV8bGVmdHxjYXB0dXJlTmFtZXN8c2xpY2V8cmlnaHR8aWR8dW5kZWZpbmVkfHNwbGl0fG5ld3xjbGFzc3xhZGRUb2tlbnxpbmRleE9mfHR5cGVvZnxzY3JpcHR8Y2xhc3NOYW1lfHNvdXJjZXxwYXJhbXN8c3Vic3RyfGFwcGx5fHRvU3RyaW5nfFN0cmluZ3xsaW5lfHRpdGxlfGd1dHRlcnxTeW50YXhIaWdobGlnaHRlcnxfeHJlZ2V4cHxzdHJpbmdzfGx0fGh0bWx8dGVzdHxPVVRTSURFX0NMQVNTfG1hdGNofGJydXNofGRvY3VtZW50fHRhcmdldHxndHxnZXRIdG1sfHJlZ2V4fGdsb2JhbHxqb2lufHN0eWxlfGhpZ2hsaWdodHxicmVha3xjb25jYXR8d2luZG93fE1hdGh8aXNSZWdFeHB8dGhyb3d8dmFsdWV8YnJ1c2hlc3xicnVzaE5hbWV8c3BhY2V8YWxlcnR8dmFyc3xodHRwfHN5bnRheGhpZ2hsaWdodGVyfGV4cGFuZFNvdXJjZXxzaXplfGNzc3xjYXNlfGZvbnR8RmF8bmFtZXxodG1sU2NyaXB0fGRBfGNhbnxoYW5kbGVyfGdtfHRkfGV4cG9ydHN8Y29sb3J8aW58aHJlZnxmaXJzdHxkaXNjb3ZlcmVkQnJ1c2hlc3xsaWdodHxjb2xsYXBzZXxvYmplY3R8Y2FjaGV8Z2V0QnV0dG9uSHRtbHx0cmlnZ2VyfHBhdHRlcm58Z2V0TGluZUh0bWx8bmJzcHxudW1iZXJzfHBhcnNlSW50fGRlZmF1bHRzfGNvbXxpdGVtc3x3d3d8cGFkfGhpZ2hsaWdodGVyc3xleGVjdXRlfGZvY3VzfGZ1bmN8YWxsfGdldERpdnxwYXJlbnROb2RlfG5hdmlnYXRvcnxJTlNJREVfQ0xBU1N8cmVnZXhMaXN0fGhhc0ZsYWd8TWF0Y2h8dXNlU2NyaXB0VGFnc3xoYXNOYW1lZENhcHR1cmV8dGV4dHxoZWxwfGluaXR8YnJ8aW5wdXR8Z2l8RXJyb3J8dmFsdWVzfHNwYW58bGlzdHwyNTB8aGVpZ2h0fHdpZHRofHNjcmVlbnx0b3B8NTAwfHRhZ05hbWV8ZmluZEVsZW1lbnRzfGdldEVsZW1lbnRzQnlUYWdOYW1lfGFib3V0RGlhbG9nfF9ibGFua3xhcHBlbmRDaGlsZHxjaGFyQXR8QXJyYXl8Y29weUFzR2xvYmFsfHNldEZsYWd8aGlnaGxpZ2h0ZXJffHN0cmluZ3xhdHRhY2hFdmVudHxub2RlTmFtZXxmbG9vcnxiYWNrcmVmfG91dHB1dHx0aGV8VHlwZUVycm9yfHN0aWNreXxaYXxpdGVyYXRlfGZyZWV6ZVRva2Vuc3xzY29wZXx0eXBlfHRleHRhcmVhfGFsZXhnb3JiYXRjaGV2fHZlcnNpb258bWFyZ2lufDIwMTB8MDA1ODk2fGdzfHJlZ2V4TGlifGJvZHl8Y2VudGVyfGFsaWdufG5vQnJ1c2h8cmVxdWlyZXxjaGlsZE5vZGVzfERURHx4aHRtbDF8aGVhZHxvcmd8dzN8dXJsfHByZXZlbnREZWZhdWx0fGNvbnRhaW5lcnx0cnxnZXRMaW5lTnVtYmVyc0h0bWx8aXNOYU58dXNlckFnZW50fHRib2R5fGlzTGluZUhpZ2hsaWdodGVkfHF1aWNrfHZvaWR8aW5uZXJIVE1MfGNyZWF0ZXx0YWJsZXxsaW5rc3xhdXRvfHNtYXJ0fHRhYnxzdHJpcEJyc3x0YWJzfGJsb2dnZXJNb2RlfGNvbGxhcHNlZHxwbGFpbnxnZXRDb2RlTGluZXNIdG1sfGNhcHRpb258Z2V0TWF0Y2hlc0h0bWx8ZmluZE1hdGNoZXN8ZmlndXJlT3V0TGluZU51bWJlcnN8cmVtb3ZlTmVzdGVkTWF0Y2hlc3xnZXRUaXRsZUh0bWx8YnJ1c2hOb3RIdG1sU2NyaXB0fHN1YnN0cmluZ3xjcmVhdGVFbGVtZW50fEhpZ2hsaWdodGVyfGxvYWR8SHRtbFNjcmlwdHxCcnVzaHxwcmV8ZXhwYW5kfG11bHRpbGluZXxtaW58Q2FufGlnbm9yZUNhc2V8ZmluZHxibHVyfGV4dGVuZGVkfHRvTG93ZXJDYXNlfGFsaWFzZXN8YWRkRXZlbnRMaXN0ZW5lcnxpbm5lclRleHR8dGV4dENvbnRlbnR8d2FzbnxzZWxlY3R8Y3JlYXRlVGV4dE5vZGV8cmVtb3ZlQ2hpbGR8b3B0aW9ufHNhbWV8ZnJhbWV8eG1sbnN8ZHRkfHR3aWNlfDE5OTl8ZXF1aXZ8bWV0YXxodG1sc2NyaXB0fHRyYW5zaXRpb25hbHwxRTN8ZXhwZWN0ZWR8UFVCTElDfERPQ1RZUEV8b258VzNDfFhIVE1MfFRSfEVOfFRyYW5zaXRpb25hbHx8Y29uZmlndXJlZHxzcmNFbGVtZW50fE9iamVjdHxhZnRlcnxydW58ZGJsY2xpY2t8bWF0Y2hDaGFpbnx2YWx1ZU9mfGNvbnN0cnVjdG9yfGRlZmF1bHR8c3dpdGNofGNsaWNrfHJvdW5kfGV4ZWNBdHxmb3JIdG1sU2NyaXB0fHRva2VufGdpbXl8ZnVuY3Rpb25zfGdldEtleXdvcmRzfDFFNnxlc2NhcGV8d2l0aGlufHJhbmRvbXxzZ2l8YW5vdGhlcnxmaW5hbGx5fHN1cHBseXxNU0lFfGllfHRvVXBwZXJDYXNlfGNhdGNofHJldHVyblZhbHVlfGRlZmluaXRpb258ZXZlbnR8Ym9yZGVyfGltc3h8Y29uc3RydWN0aW5nfG9uZXxJbmZpbml0eXxmcm9tfHdoZW58Q29udGVudHxjZWxscGFkZGluZ3xmbGFnc3xjZWxsc3BhY2luZ3x0cnl8eGh0bWx8VHlwZXxzcGFjZXN8MjkzMDQwMnxob3N0ZWRfYnV0dG9uX2lkfGxhc3RJbmRleE9mfGRvbmF0ZXxhY3RpdmV8ZGV2ZWxvcG1lbnR8a2VlcHx0b3x4Y2xpY2t8X3N8WG1sfHBsZWFzZXxsaWtlfHlvdXxwYXlwYWx8Y2dpfGNtZHx3ZWJzY3J8YmlufGhpZ2hsaWdodGVkfHNjcm9sbGJhcnN8YXNwU2NyaXB0VGFnc3xwaHBTY3JpcHRUYWdzfHNvcnR8bWF4fHNjcmlwdFNjcmlwdFRhZ3N8dG9vbGJhcl9pdGVtfF98Y29tbWFuZHxjb21tYW5kX3xudW1iZXJ8Z2V0RWxlbWVudEJ5SWR8ZG91YmxlUXVvdGVkU3RyaW5nfHNpbmdsZUxpbmVQZXJsQ29tbWVudHN8c2luZ2xlTGluZUNDb21tZW50c3xtdWx0aUxpbmVDQ29tbWVudHN8c2luZ2xlUXVvdGVkU3RyaW5nfG11bHRpTGluZURvdWJsZVF1b3RlZFN0cmluZ3x4bWxDb21tZW50c3xhbHR8bXVsdGlMaW5lU2luZ2xlUXVvdGVkU3RyaW5nfElmfGh0dHBzfDFlbXwwMDB8ZmZmfGJhY2tncm91bmR8NWVtfHh4fGJvdHRvbXw3NWVtfEdvcmJhdGNoZXZ8bGFyZ2V8c2VyaWZ8Q0RBVEF8Y29udGludWV8dXRmfGNoYXJzZXR8Y29udGVudHxBYm91dHxmYW1pbHl8c2Fuc3xIZWx2ZXRpY2F8QXJpYWx8R2VuZXZhfDNlbXxub2d1dHRlcnxDb3B5cmlnaHR8c3ludGF4fGNsb3NlfHdyaXRlfDIwMDR8QWxleHxvcGVufEphdmFTY3JpcHR8aGlnaGxpZ2h0ZXJ8SnVseXwwMnxyZXBsYWNlQ2hpbGR8b2Zmc2V0fDgzJy5zcGxpdCgnfCcpLDAse30pKQo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/docs/media/license/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/docs/media/license/Syntax Highlighter</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Q29weXJpZ2h0IChjKSAyMDAzLCAyMDA0IEppbSBXZWlyaWNoCgpQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcKYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCiJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLApkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8KcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCnRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKClRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlCmluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgoKVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCkVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgpNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORApOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFCkxJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04KT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OCldJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/images/filler.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAAH6Nf8rAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NkUwMDc4MTVCMUY2MTFERjhEMjBGNzg0ODkzNjBEOTEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NkUwMDc4MTZCMUY2MTFERjhEMjBGNzg0ODkzNjBEOTEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2RTAwNzgxM0IxRjYxMURGOEQyMEY3ODQ4OTM2MEQ5MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2RTAwNzgxNEIxRjYxMURGOEQyMEY3ODQ4OTM2MEQ5MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pm3Qvy4AAACESURBVHjaYmBABv///2cACCAwzQJiAQQQI0TkP1gKIIDgShjhQlD6P0AAwTlQmf9wzTAJRkZGsCKAAIIbAtcGBEzI5sHYLGh2gxlYzQRpZ0TyAIjNCBBgjMi+Aar8j8SGKQKzGZFdgqYJxclYAwMdgDQxQRVD3IFkCpSNkEPTjG40XB4A9lxP7TAiBWwAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/js/AutoFill.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogRmlsZTogICAgICAgIEF1dG9GaWxsLmpzCiAqIFZlcnNpb246ICAgICAxLjEuMgogKiBDVlM6ICAgICAgICAgJElkJAogKiBEZXNjcmlwdGlvbjogQXV0b0ZpbGwgZm9yIERhdGFUYWJsZXMKICogQXV0aG9yOiAgICAgIEFsbGFuIEphcmRpbmUgKHd3dy5zcHJ5bWVkaWEuY28udWspCiAqIENyZWF0ZWQ6ICAgICBNb24gIDYgU2VwIDIwMTAgMTY6NTQ6NDEgQlNUCiAqIE1vZGlmaWVkOiAgICAkRGF0ZSQgYnkgJEF1dGhvciQKICogTGFuZ3VhZ2U6ICAgIEphdmFzY3JpcHQKICogTGljZW5zZTogICAgIEdQTCB2MiBvciBCU0QgMyBwb2ludAogKiBQcm9qZWN0OiAgICAgRGF0YVRhYmxlcwogKiBDb250YWN0OiAgICAgd3d3LnNwcnltZWRpYS5jby51ay9jb250YWN0CiAqIAogKiBDb3B5cmlnaHQgMjAxMC0yMDExIEFsbGFuIEphcmRpbmUsIGFsbCByaWdodHMgcmVzZXJ2ZWQuCiAqCiAqIFRoaXMgc291cmNlIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZSwgdW5kZXIgZWl0aGVyIHRoZSBHUEwgdjIgbGljZW5zZSBvciBhCiAqIEJTRCBzdHlsZSBsaWNlbnNlLCBhdmFpbGFibGUgYXQ6CiAqICAgaHR0cDovL2RhdGF0YWJsZXMubmV0L2xpY2Vuc2VfZ3BsMgogKiAgIGh0dHA6Ly9kYXRhdGFibGVzLm5ldC9saWNlbnNlX2JzZAogKgogKi8KCi8qIEdsb2JhbCBzY29wZSBmb3IgQXV0b0ZpbGwgKi8KdmFyIEF1dG9GaWxsOwoKKGZ1bmN0aW9uKCQpIHsKCi8qKiAKICogQXV0b0ZpbGwgcHJvdmlkZXMgRXhjZWwgbGlrZSBhdXRvIGZpbGwgZmVhdHVyZXMgZm9yIGEgRGF0YVRhYmxlCiAqIEBjbGFzcyBBdXRvRmlsbAogKiBAY29uc3RydWN0b3IKICogQHBhcmFtIHtvYmplY3R9IERhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CiAqIEBwYXJhbSB7b2JqZWN0fSBDb25maWd1cmF0aW9uIG9iamVjdCBmb3IgQXV0b0ZpbGwKICovCkF1dG9GaWxsID0gZnVuY3Rpb24oIG9EVCwgb0NvbmZpZyApCnsKCS8qIFNhbnRpeSBjaGVjayB0aGF0IHdlIGFyZSBhIG5ldyBpbnN0YW5jZSAqLwoJaWYgKCAhdGhpcy5DTEFTUyB8fCB0aGlzLkNMQVNTICE9ICJBdXRvRmlsbCIgKQoJewoJCWFsZXJ0KCAiV2FybmluZzogQXV0b0ZpbGwgbXVzdCBiZSBpbml0aWFsaXNlZCB3aXRoIHRoZSBrZXl3b3JkICduZXcnIiApOwoJCXJldHVybjsKCX0KCglpZiAoICEkLmZuLmRhdGFUYWJsZUV4dC5mblZlcnNpb25DaGVjaygnMS43LjAnKSApCgl7CgkJYWxlcnQoICJXYXJuaW5nOiBBdXRvRmlsbCByZXF1aXJlcyBEYXRhVGFibGVzIDEuNyBvciBncmVhdGVyIC0gd3d3LmRhdGF0YWJsZXMubmV0L2Rvd25sb2FkIik7CgkJcmV0dXJuOwoJfQoJCgkKCS8qICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICoKCSAqIFB1YmxpYyBjbGFzcyB2YXJpYWJsZXMKCSAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICovCgkKCS8qKgoJICogQG5hbWVzcGFjZSBTZXR0aW5ncyBvYmplY3Qgd2hpY2ggY29udGFpbnMgY3VzdG9taXNhYmxlIGluZm9ybWF0aW9uIGZvciBBdXRvRmlsbCBpbnN0YW5jZQoJICovCgl0aGlzLnMgPSB7CgkJLyoqCgkJICogQG5hbWVzcGFjZSBDYWNoZWQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGxpdHRsZSBkcmFnZ2luZyBpY29uICh0aGUgZmlsbGVyKQoJCSAqLwoJCSJmaWxsZXIiOiB7CgkJCSJoZWlnaHQiOiAwLAoJCQkid2lkdGgiOiAwCgkJfSwKCQkKCQkvKioKCQkgKiBAbmFtZXNwYWNlIENhY2hlZCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYm9yZGVyIGRpc3BsYXkKCQkgKi8KCQkiYm9yZGVyIjogewoJCQkid2lkdGgiOiAyCgkJfSwKCQkKCQkvKioKCQkgKiBAbmFtZXNwYWNlIFN0b3JlIGZvciBsaXZlIGluZm9ybWF0aW9uIGZvciB0aGUgY3VycmVudCBkcmFnCgkJICovCgkJImRyYWciOiB7CgkJCSJzdGFydFgiOiAtMSwKCQkJInN0YXJ0WSI6IC0xLAoJCQkic3RhcnRUZCI6IG51bGwsCgkJCSJlbmRUZCI6IG51bGwsCgkJCSJkcmFnZ2luZyI6IGZhbHNlCgkJfSwKCQkKCQkvKioKCQkgKiBAbmFtZXNwYWNlIERhdGEgY2FjaGUgZm9yIGluZm9ybWF0aW9uIHRoYXQgd2UgbmVlZCBmb3Igc2Nyb2xsaW5nIHRoZSBzY3JlZW4gd2hlbiB3ZSBuZWFyCgkJICogICB0aGUgZWRnZXMKCQkgKi8KCQkic2NyZWVuIjogewoJCQkiaW50ZXJ2YWwiOiBudWxsLAoJCQkieSI6IDAsCgkJCSJoZWlnaHQiOiAwLAoJCQkic2Nyb2xsVG9wIjogMAoJCX0sCgkJCgkJLyoqCgkJICogQG5hbWVzcGFjZSBEYXRhIGNhY2hlIGZvciB0aGUgcG9zaXRpb24gb2YgdGhlIERhdGFUYWJsZXMgc2Nyb2xsaW5nIGVsZW1lbnQgKHdoZW4gc2Nyb2xsaW5nCgkJICogICBpcyBlbmFibGVkKQoJCSAqLwoJCSJzY3JvbGxlciI6IHsKCQkJInRvcCI6IDAsCgkJCSJib3R0b20iOiAwCgkJfSwKCQkKCQkKCQkvKioKCQkgKiBAbmFtZXNwYWNlIEluZm9ybWF0aW9uIHN0b3JlZCBmb3IgZWFjaCBjb2x1bW4uIEFuIGFycmF5IG9mIG9iamVjdHMKCQkgKi8KCQkiY29sdW1ucyI6IFtdCgl9OwoJCgkKCS8qKgoJICogQG5hbWVzcGFjZSBDb21tb24gYW5kIHVzZWZ1bCBET00gZWxlbWVudHMgZm9yIHRoZSBjbGFzcyBpbnN0YW5jZQoJICovCgl0aGlzLmRvbSA9IHsKCQkidGFibGUiOiBudWxsLAoJCSJmaWxsZXIiOiBudWxsLAoJCSJib3JkZXJUb3AiOiBudWxsLAoJCSJib3JkZXJSaWdodCI6IG51bGwsCgkJImJvcmRlckJvdHRvbSI6IG51bGwsCgkJImJvcmRlckxlZnQiOiBudWxsLAoJCSJjdXJyZW50VGFyZ2V0IjogbnVsbAoJfTsKCQoJCgkKCS8qICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICoKCSAqIFB1YmxpYyBjbGFzcyBtZXRob2RzCgkgKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqLwoJCgkvKioKCSAqIFJldHJlaWV2ZSB0aGUgc2V0dGluZ3Mgb2JqZWN0IGZyb20gYW4gaW5zdGFuY2UKCSAqICBAbWV0aG9kIGZuU2V0dGluZ3MKCSAqICBAcmV0dXJucyB7b2JqZWN0fSBBdXRvRmlsbCBzZXR0aW5ncyBvYmplY3QKCSAqLwoJdGhpcy5mblNldHRpbmdzID0gZnVuY3Rpb24gKCkgewoJCXJldHVybiB0aGlzLnM7Cgl9OwoJCgkKCS8qIENvbnN0cnVjdG9yIGxvZ2ljICovCgl0aGlzLl9mbkluaXQoIG9EVCwgb0NvbmZpZyApOwoJcmV0dXJuIHRoaXM7Cn07CgoKCkF1dG9GaWxsLnByb3RvdHlwZSA9IHsKCS8qICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICoKCSAqIFByaXZhdGUgbWV0aG9kcyAodGhleSBhcmUgb2YgY291cnNlIHB1YmxpYyBpbiBKUywgYnV0IHJlY29tbWVuZGVkIGFzIHByaXZhdGUpCgkgKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqLwoJCgkvKioKCSAqIEluaXRpYWxpc2F0aW9uCgkgKiAgQG1ldGhvZCBfZm5Jbml0CiAJICogIEBwYXJhbSB7b2JqZWN0fSBvRFQgRGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKIAkgKiAgQHBhcmFtIHtvYmplY3R9IG9Db25maWcgQ29uZmlndXJhdGlvbiBvYmplY3QgZm9yIEF1dG9GaWxsCgkgKiAgQHJldHVybnMgdm9pZAoJICovCgkiX2ZuSW5pdCI6IGZ1bmN0aW9uICggb0RULCBvQ29uZmlnICkKCXsKCQl2YXIKCQkJdGhhdCA9IHRoaXMsCgkJCWksIGlMZW47CgkJCgkJLyoKCQkgKiBTZXR0aW5ncwoJCSAqLwoJCXRoaXMucy5kdCA9IG9EVC5mblNldHRpbmdzKCk7CgkJCgkJdGhpcy5kb20udGFibGUgPSB0aGlzLnMuZHQublRhYmxlOwoJCQoJCS8qIEFkZCBhbmQgY29uZmlndXJlIHRoZSBjb2x1bW5zICovCgkJZm9yICggaT0wLCBpTGVuPXRoaXMucy5kdC5hb0NvbHVtbnMubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQl7CgkJCXRoaXMuX2ZuQWRkQ29sdW1uKCBpICk7CgkJfQoJCQoJCWlmICggdHlwZW9mIG9Db25maWcgIT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIG9Db25maWcuYW9Db2x1bW5EZWZzICE9ICd1bmRlZmluZWQnICkKCQl7CgkJCXRoaXMuX2ZuQ29sdW1uRGVmcyggb0NvbmZpZy5hb0NvbHVtbkRlZnMgKTsKCQl9CgkJCgkJaWYgKCB0eXBlb2Ygb0NvbmZpZyAhPSAndW5kZWZpbmVkJyAmJiB0eXBlb2Ygb0NvbmZpZy5hb0NvbHVtbnMgIT0gJ3VuZGVmaW5lZCcgKQoJCXsKCQkJdGhpcy5fZm5Db2x1bW5zQWxsKCBvQ29uZmlnLmFvQ29sdW1ucyApOwoJCX0KCQkKCQkKCQkvKgoJCSAqIERPTQoJCSAqLwoJCQoJCS8qIEF1dG8gRmlsbCBjbGljayBhbmQgZHJhZyBpY29uICovCgkJdmFyIGZpbGxlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwoJCWZpbGxlci5jbGFzc05hbWUgPSAiQXV0b0ZpbGxfZmlsbGVyIjsKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKCBmaWxsZXIgKTsKCQl0aGlzLmRvbS5maWxsZXIgPSBmaWxsZXI7CgkJCgkJZmlsbGVyLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOwoJCXRoaXMucy5maWxsZXIuaGVpZ2h0ID0gJChmaWxsZXIpLmhlaWdodCgpOwoJCXRoaXMucy5maWxsZXIud2lkdGggPSAkKGZpbGxlcikud2lkdGgoKTsKCQlmaWxsZXIuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKCQkKCQkvKiBCb3JkZXIgZGlzcGxheSAtIG9uZSBkaXYgZm9yIGVhY2ggc2lkZS4gV2UgY2FuJ3QganVzdCB1c2UgYSBzaW5nbGUgb25lIHdpdGggYSBib3JkZXIsIGFzCgkJICogd2Ugd2FudCB0aGUgZXZlbnRzIHRvIGVmZmVjdGl2ZWx5IHBhc3MgdGhyb3VnaCB0aGUgdHJhbnNwYXJlbnQgYml0IG9mIHRoZSBib3gKCQkgKi8KCQl2YXIgYm9yZGVyOwoJCXZhciBhcHBlbmRlciA9IGRvY3VtZW50LmJvZHk7CgkJaWYgKCB0aGF0LnMuZHQub1Njcm9sbC5zWSAhPT0gIiIgKQoJCXsKCQkJdGhhdC5zLmR0Lm5UYWJsZS5wYXJlbnROb2RlLnN0eWxlLnBvc2l0aW9uID0gInJlbGF0aXZlIjsKCQkJYXBwZW5kZXIgPSB0aGF0LnMuZHQublRhYmxlLnBhcmVudE5vZGU7CgkJfQoJCQoJCWJvcmRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwoJCWJvcmRlci5jbGFzc05hbWUgPSAiQXV0b0ZpbGxfYm9yZGVyIjsKCQlhcHBlbmRlci5hcHBlbmRDaGlsZCggYm9yZGVyICk7CgkJdGhpcy5kb20uYm9yZGVyVG9wID0gYm9yZGVyOwoJCQoJCWJvcmRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwoJCWJvcmRlci5jbGFzc05hbWUgPSAiQXV0b0ZpbGxfYm9yZGVyIjsKCQlhcHBlbmRlci5hcHBlbmRDaGlsZCggYm9yZGVyICk7CgkJdGhpcy5kb20uYm9yZGVyUmlnaHQgPSBib3JkZXI7CgkJCgkJYm9yZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CgkJYm9yZGVyLmNsYXNzTmFtZSA9ICJBdXRvRmlsbF9ib3JkZXIiOwoJCWFwcGVuZGVyLmFwcGVuZENoaWxkKCBib3JkZXIgKTsKCQl0aGlzLmRvbS5ib3JkZXJCb3R0b20gPSBib3JkZXI7CgkJCgkJYm9yZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CgkJYm9yZGVyLmNsYXNzTmFtZSA9ICJBdXRvRmlsbF9ib3JkZXIiOwoJCWFwcGVuZGVyLmFwcGVuZENoaWxkKCBib3JkZXIgKTsKCQl0aGlzLmRvbS5ib3JkZXJMZWZ0ID0gYm9yZGVyOwoJCQoJCS8qCgkJICogRXZlbnRzCgkJICovCgkJCgkJJChmaWxsZXIpLm1vdXNlZG93biggZnVuY3Rpb24gKGUpIHsKCQkJdGhpcy5vbnNlbGVjdHN0YXJ0ID0gZnVuY3Rpb24oKSB7IHJldHVybiBmYWxzZTsgfTsKCQkJdGhhdC5fZm5GaWxsZXJEcmFnU3RhcnQuY2FsbCggdGhhdCwgZSApOwoJCQlyZXR1cm4gZmFsc2U7CgkJfSApOwoJCQoJCSQoJ3Rib2R5PnRyPnRkJywgdGhpcy5kb20udGFibGUpLmxpdmUoICdtb3VzZW92ZXIgbW91c2VvdXQnLCBmdW5jdGlvbiAoZSkgewoJCQl0aGF0Ll9mbkZpbGxlckRpc3BsYXkuY2FsbCggdGhhdCwgZSApOwoJCX0gKTsKCX0sCgkKCQoJIl9mbkNvbHVtbkRlZnMiOiBmdW5jdGlvbiAoIGFvQ29sdW1uRGVmcyApCgl7CgkJdmFyCgkJCWksIGosIGssIGlMZW4sIGpMZW4sIGtMZW4sCgkJCWFUYXJnZXRzOwoJCQoJCS8qIExvb3Agb3ZlciB0aGUgY29sdW1uIGRlZnMgYXJyYXkgLSBsb29wIGluIHJldmVyc2Ugc28gZmlyc3QgaW5zdGFjZSBoYXMgcHJpb3JpdHkgKi8KCQlmb3IgKCBpPWFvQ29sdW1uRGVmcy5sZW5ndGgtMSA7IGk+PTAgOyBpLS0gKQoJCXsKCQkJLyogRWFjaCBjb2x1bW4gZGVmIGNhbiB0YXJnZXQgbXVsdGlwbGUgY29sdW1ucywgYXMgaXQgaXMgYW4gYXJyYXkgKi8KCQkJYVRhcmdldHMgPSBhb0NvbHVtbkRlZnNbaV0uYVRhcmdldHM7CgkJCWZvciAoIGo9MCwgakxlbj1hVGFyZ2V0cy5sZW5ndGggOyBqPGpMZW4gOyBqKysgKQoJCQl7CgkJCQlpZiAoIHR5cGVvZiBhVGFyZ2V0c1tqXSA9PSAnbnVtYmVyJyAmJiBhVGFyZ2V0c1tqXSA+PSAwICkKCQkJCXsKCQkJCQkvKiAwKyBpbnRlZ2VyLCBsZWZ0IHRvIHJpZ2h0IGNvbHVtbiBjb3VudGluZy4gKi8KCQkJCQl0aGlzLl9mbkNvbHVtbk9wdGlvbnMoIGFUYXJnZXRzW2pdLCBhb0NvbHVtbkRlZnNbaV0gKTsKCQkJCX0KCQkJCWVsc2UgaWYgKCB0eXBlb2YgYVRhcmdldHNbal0gPT0gJ251bWJlcicgJiYgYVRhcmdldHNbal0gPCAwICkKCQkJCXsKCQkJCQkvKiBOZWdhdGl2ZSBpbnRlZ2VyLCByaWdodCB0byBsZWZ0IGNvbHVtbiBjb3VudGluZyAqLwoJCQkJCXRoaXMuX2ZuQ29sdW1uT3B0aW9ucyggdGhpcy5zLmR0LmFvQ29sdW1ucy5sZW5ndGgrYVRhcmdldHNbal0sIGFvQ29sdW1uRGVmc1tpXSApOwoJCQkJfQoJCQkJZWxzZSBpZiAoIHR5cGVvZiBhVGFyZ2V0c1tqXSA9PSAnc3RyaW5nJyApCgkJCQl7CgkJCQkJLyogQ2xhc3MgbmFtZSBtYXRjaGluZyBvbiBUSCBlbGVtZW50ICovCgkJCQkJZm9yICggaz0wLCBrTGVuPXRoaXMucy5kdC5hb0NvbHVtbnMubGVuZ3RoIDsgazxrTGVuIDsgaysrICkKCQkJCQl7CgkJCQkJCWlmICggYVRhcmdldHNbal0gPT0gIl9hbGwiIHx8CgkJCQkJCSAgICAgdGhpcy5zLmR0LmFvQ29sdW1uc1trXS5uVGguY2xhc3NOYW1lLmluZGV4T2YoIGFUYXJnZXRzW2pdICkgIT0gLTEgKQoJCQkJCQl7CgkJCQkJCQl0aGlzLl9mbkNvbHVtbk9wdGlvbnMoIGssIGFvQ29sdW1uRGVmc1tpXSApOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9CgkJfQoJfSwKCQkKCQkKCSJfZm5Db2x1bW5zQWxsIjogZnVuY3Rpb24gKCBhb0NvbHVtbnMgKQoJewoJCWZvciAoIHZhciBpPTAsIGlMZW49dGhpcy5zLmR0LmFvQ29sdW1ucy5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCXsKCQkJdGhpcy5fZm5Db2x1bW5PcHRpb25zKCBpLCBhb0NvbHVtbnNbaV0gKTsKCQl9Cgl9LAoJCgkKCSJfZm5BZGRDb2x1bW4iOiBmdW5jdGlvbiAoIGkgKQoJewoJCXRoaXMucy5jb2x1bW5zW2ldID0gewoJCQkiZW5hYmxlIjogdHJ1ZSwKCQkJInJlYWQiOiB0aGlzLl9mblJlYWRDZWxsLAoJCQkid3JpdGUiOiB0aGlzLl9mbldyaXRlQ2VsbCwKCQkJInN0ZXAiOiB0aGlzLl9mblN0ZXAsCgkJCSJjb21wbGV0ZSI6IG51bGwKCQl9OwoJfSwKCQoJIl9mbkNvbHVtbk9wdGlvbnMiOiBmdW5jdGlvbiAoIGksIG9wdHMgKQoJewoJCWlmICggdHlwZW9mIG9wdHMuYkVuYWJsZSAhPSAndW5kZWZpbmVkJyApCgkJewoJCQl0aGlzLnMuY29sdW1uc1tpXS5lbmFibGUgPSBvcHRzLmJFbmFibGU7CgkJfQoJCQoJCWlmICggdHlwZW9mIG9wdHMuZm5SZWFkICE9ICd1bmRlZmluZWQnICkKCQl7CgkJCXRoaXMucy5jb2x1bW5zW2ldLnJlYWQgPSBvcHRzLmZuUmVhZDsKCQl9CgkJCgkJaWYgKCB0eXBlb2Ygb3B0cy5mbldyaXRlICE9ICd1bmRlZmluZWQnICkKCQl7CgkJCXRoaXMucy5jb2x1bW5zW2ldLndyaXRlID0gb3B0cy5mbldyaXRlOwoJCX0KCQkKCQlpZiAoIHR5cGVvZiBvcHRzLmZuU3RlcCAhPSAndW5kZWZpbmVkJyApCgkJewoJCQl0aGlzLnMuY29sdW1uc1tpXS5zdGVwID0gb3B0cy5mblN0ZXA7CgkJfQoJCQoJCWlmICggdHlwZW9mIG9wdHMuZm5DYWxsYmFjayAhPSAndW5kZWZpbmVkJyApCgkJewoJCQl0aGlzLnMuY29sdW1uc1tpXS5jb21wbGV0ZSA9IG9wdHMuZm5DYWxsYmFjazsKCQl9Cgl9LAoJCgkKCS8qKgoJICogRmluZCBvdXQgdGhlIGNvb3JkaW5hdGVzIG9mIGEgZ2l2ZW4gVEQgY2VsbCBpbiBhIHRhYmxlCgkgKiAgQG1ldGhvZCAgX2ZuVGFyZ2V0Q29vcmRzCgkgKiAgQHBhcmFtICAge05vZGV9IG5UZAoJICogIEByZXR1cm5zIHtPYmplY3R9IHggYW5kIHkgcHJvcGVydGllcywgZm9yIHRoZSBwb3NpdGlvbiBvZiB0aGUgY2VsbCBpbiB0aGUgdGFibGVzIERPTQoJICovCgkiX2ZuVGFyZ2V0Q29vcmRzIjogZnVuY3Rpb24gKCBuVGQgKQoJewoJCXZhciBuVHIgPSAkKG5UZCkucGFyZW50cygndHInKVswXTsKCQkKCQlyZXR1cm4gewoJCQkieCI6ICQoJ3RkJywgblRyKS5pbmRleChuVGQpLAoJCQkieSI6ICQoJ3RyJywgblRyLnBhcmVudE5vZGUpLmluZGV4KG5UcikKCQl9OwoJfSwKCQoJCgkvKioKCSAqIERpc3BsYXkgdGhlIGJvcmRlciBhcm91bmQgb25lIG9yIG1vcmUgY2VsbHMgKGZyb20gc3RhcnQgdG8gZW5kKQoJICogIEBtZXRob2QgIF9mblVwZGF0ZUJvcmRlcgoJICogIEBwYXJhbSAgIHtOb2RlfSBuU3RhcnQgU3RhcnRpbmcgY2VsbAoJICogIEBwYXJhbSAgIHtOb2RlfSBuRW5kIEVuZGluZyBjZWxsCgkgKiAgQHJldHVybnMgdm9pZAoJICovCgkiX2ZuVXBkYXRlQm9yZGVyIjogZnVuY3Rpb24gKCBuU3RhcnQsIG5FbmQgKQoJewoJCXZhcgoJCQlib3JkZXIgPSB0aGlzLnMuYm9yZGVyLndpZHRoLAoJCQlvZmZzZXRTdGFydCA9ICQoblN0YXJ0KS5vZmZzZXQoKSwKCQkJb2Zmc2V0RW5kID0gJChuRW5kKS5vZmZzZXQoKSwKCQkJeDEgPSBvZmZzZXRTdGFydC5sZWZ0IC0gYm9yZGVyLAoJCQl4MiA9IG9mZnNldEVuZC5sZWZ0ICsgJChuRW5kKS5vdXRlcldpZHRoKCksCgkJCXkxID0gb2Zmc2V0U3RhcnQudG9wIC0gYm9yZGVyLAoJCQl5MiA9IG9mZnNldEVuZC50b3AgKyAkKG5FbmQpLm91dGVySGVpZ2h0KCksCgkJCXdpZHRoID0gb2Zmc2V0RW5kLmxlZnQgKyAkKG5FbmQpLm91dGVyV2lkdGgoKSAtIG9mZnNldFN0YXJ0LmxlZnQgKyAoMipib3JkZXIpLAoJCQloZWlnaHQgPSBvZmZzZXRFbmQudG9wICsgJChuRW5kKS5vdXRlckhlaWdodCgpIC0gb2Zmc2V0U3RhcnQudG9wICsgKDIqYm9yZGVyKSwKCQkJb1N0eWxlOwoJCQoJCWlmICggdGhpcy5zLmR0Lm9TY3JvbGwuc1kgIT09ICIiICkKCQl7CgkJCS8qIFRoZSBib3JkZXIgZWxlbWVudHMgYXJlIGluc2lkZSB0aGUgRFQgc2Nyb2xsZXIgLSBzbyBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGF0ICovCgkJCXZhcgoJCQkJb2Zmc2V0U2Nyb2xsID0gJCh0aGlzLnMuZHQublRhYmxlLnBhcmVudE5vZGUpLm9mZnNldCgpLAoJCQkJc2Nyb2xsVG9wID0gJCh0aGlzLnMuZHQublRhYmxlLnBhcmVudE5vZGUpLnNjcm9sbFRvcCgpLAoJCQkJc2Nyb2xsTGVmdCA9ICQodGhpcy5zLmR0Lm5UYWJsZS5wYXJlbnROb2RlKS5zY3JvbGxMZWZ0KCk7CgkJCQoJCQl4MSAtPSBvZmZzZXRTY3JvbGwubGVmdCAtIHNjcm9sbExlZnQ7CgkJCXgyIC09IG9mZnNldFNjcm9sbC5sZWZ0IC0gc2Nyb2xsTGVmdDsKCQkJeTEgLT0gb2Zmc2V0U2Nyb2xsLnRvcCAtIHNjcm9sbFRvcDsKCQkJeTIgLT0gb2Zmc2V0U2Nyb2xsLnRvcCAtIHNjcm9sbFRvcDsKCQl9CgkJCgkJLyogVG9wICovCgkJb1N0eWxlID0gdGhpcy5kb20uYm9yZGVyVG9wLnN0eWxlOwoJCW9TdHlsZS50b3AgPSB5MSsicHgiOwoJCW9TdHlsZS5sZWZ0ID0geDErInB4IjsKCQlvU3R5bGUuaGVpZ2h0ID0gdGhpcy5zLmJvcmRlci53aWR0aCsicHgiOwoJCW9TdHlsZS53aWR0aCA9IHdpZHRoKyJweCI7CgkJCgkJLyogQm90dG9tICovCgkJb1N0eWxlID0gdGhpcy5kb20uYm9yZGVyQm90dG9tLnN0eWxlOwoJCW9TdHlsZS50b3AgPSB5MisicHgiOwoJCW9TdHlsZS5sZWZ0ID0geDErInB4IjsKCQlvU3R5bGUuaGVpZ2h0ID0gdGhpcy5zLmJvcmRlci53aWR0aCsicHgiOwoJCW9TdHlsZS53aWR0aCA9IHdpZHRoKyJweCI7CgkJCgkJLyogTGVmdCAqLwoJCW9TdHlsZSA9IHRoaXMuZG9tLmJvcmRlckxlZnQuc3R5bGU7CgkJb1N0eWxlLnRvcCA9IHkxKyJweCI7CgkJb1N0eWxlLmxlZnQgPSB4MSsicHgiOwoJCW9TdHlsZS5oZWlnaHQgPSBoZWlnaHQrInB4IjsKCQlvU3R5bGUud2lkdGggPSB0aGlzLnMuYm9yZGVyLndpZHRoKyJweCI7CgkJCgkJLyogUmlnaHQgKi8KCQlvU3R5bGUgPSB0aGlzLmRvbS5ib3JkZXJSaWdodC5zdHlsZTsKCQlvU3R5bGUudG9wID0geTErInB4IjsKCQlvU3R5bGUubGVmdCA9IHgyKyJweCI7CgkJb1N0eWxlLmhlaWdodCA9IGhlaWdodCsicHgiOwoJCW9TdHlsZS53aWR0aCA9IHRoaXMucy5ib3JkZXIud2lkdGgrInB4IjsKCX0sCgkKCQoJLyoqCgkgKiBNb3VzZSBkb3duIGV2ZW50IGhhbmRsZXIgZm9yIHN0YXJ0aW5nIGEgZHJhZwoJICogIEBtZXRob2QgIF9mbkZpbGxlckRyYWdTdGFydAoJICogIEBwYXJhbSAgIHtPYmplY3R9IGUgRXZlbnQgb2JqZWN0CgkgKiAgQHJldHVybnMgdm9pZAoJICovCgkiX2ZuRmlsbGVyRHJhZ1N0YXJ0IjogZnVuY3Rpb24gKGUpCgl7CgkJdmFyIHRoYXQgPSB0aGlzOwoJCXZhciBzdGFydGluZ1RkID0gdGhpcy5kb20uY3VycmVudFRhcmdldDsKCQkKCQl0aGlzLnMuZHJhZy5kcmFnZ2luZyA9IHRydWU7CgkJCgkJdGhhdC5kb20uYm9yZGVyVG9wLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOwoJCXRoYXQuZG9tLmJvcmRlclJpZ2h0LnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOwoJCXRoYXQuZG9tLmJvcmRlckJvdHRvbS5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKCQl0aGF0LmRvbS5ib3JkZXJMZWZ0LnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOwoJCQoJCXZhciBjb29yZHMgPSB0aGlzLl9mblRhcmdldENvb3Jkcyggc3RhcnRpbmdUZCApOwoJCXRoaXMucy5kcmFnLnN0YXJ0WCA9IGNvb3Jkcy54OwoJCXRoaXMucy5kcmFnLnN0YXJ0WSA9IGNvb3Jkcy55OwoJCQoJCXRoaXMucy5kcmFnLnN0YXJ0VGQgPSBzdGFydGluZ1RkOwoJCXRoaXMucy5kcmFnLmVuZFRkID0gc3RhcnRpbmdUZDsKCQkKCQl0aGlzLl9mblVwZGF0ZUJvcmRlciggc3RhcnRpbmdUZCwgc3RhcnRpbmdUZCApOwoJCQoJCSQoZG9jdW1lbnQpLmJpbmQoJ21vdXNlbW92ZS5BdXRvRmlsbCcsIGZ1bmN0aW9uIChlKSB7CgkJCXRoYXQuX2ZuRmlsbGVyRHJhZ01vdmUuY2FsbCggdGhhdCwgZSApOwoJCX0gKTsKCQkKCQkkKGRvY3VtZW50KS5iaW5kKCdtb3VzZXVwLkF1dG9GaWxsJywgZnVuY3Rpb24gKGUpIHsKCQkJdGhhdC5fZm5GaWxsZXJGaW5pc2guY2FsbCggdGhhdCwgZSApOwoJCX0gKTsKCQkKCQkvKiBTY3JvbGxpbmcgaW5mb3JtYXRpb24gY2FjaGUgKi8KCQl0aGlzLnMuc2NyZWVuLnkgPSBlLnBhZ2VZOwoJCXRoaXMucy5zY3JlZW4uaGVpZ2h0ID0gJCh3aW5kb3cpLmhlaWdodCgpOwoJCXRoaXMucy5zY3JlZW4uc2Nyb2xsVG9wID0gJChkb2N1bWVudCkuc2Nyb2xsVG9wKCk7CgkJCgkJaWYgKCB0aGlzLnMuZHQub1Njcm9sbC5zWSAhPT0gIiIgKQoJCXsKCQkJdGhpcy5zLnNjcm9sbGVyLnRvcCA9ICQodGhpcy5zLmR0Lm5UYWJsZS5wYXJlbnROb2RlKS5vZmZzZXQoKS50b3A7CgkJCXRoaXMucy5zY3JvbGxlci5ib3R0b20gPSB0aGlzLnMuc2Nyb2xsZXIudG9wICsgJCh0aGlzLnMuZHQublRhYmxlLnBhcmVudE5vZGUpLmhlaWdodCgpOwoJCX0KCQkKCQkvKiBTY3JvbGxpbmcgaGFuZGxlciAtIHdlIHNldCBhbiBpbnRlcnZhbCAod2hpY2ggaXMgY2FuY2VsbGVkIG9uIG1vdXNlIHVwKSB3aGljaCB3aWxsIGZpcmUKCQkgKiByZWd1bGFybHkgYW5kIHNlZSBpZiB3ZSBuZWVkIHRvIGRvIGFueSBzY3JvbGxpbmcKCQkgKi8KCQl0aGlzLnMuc2NyZWVuLmludGVydmFsID0gc2V0SW50ZXJ2YWwoIGZ1bmN0aW9uICgpIHsKCQkJdmFyIGlTY3JvbGxUb3AgPSAkKGRvY3VtZW50KS5zY3JvbGxUb3AoKTsKCQkJdmFyIGlTY3JvbGxEZWx0YSA9IGlTY3JvbGxUb3AgLSB0aGF0LnMuc2NyZWVuLnNjcm9sbFRvcDsKCQkJdGhhdC5zLnNjcmVlbi55ICs9IGlTY3JvbGxEZWx0YTsKCQkJCgkJCWlmICggdGhhdC5zLnNjcmVlbi5oZWlnaHQgLSB0aGF0LnMuc2NyZWVuLnkgKyBpU2Nyb2xsVG9wIDwgNTAgKQoJCQl7CgkJCQkkKCdodG1sLCBib2R5JykuYW5pbWF0ZSggewoJCQkJCSJzY3JvbGxUb3AiOiBpU2Nyb2xsVG9wICsgNTAKCQkJCX0sIDI0MCwgJ2xpbmVhcicgKTsKCQkJfQoJCQllbHNlIGlmICggdGhhdC5zLnNjcmVlbi55IC0gaVNjcm9sbFRvcCA8IDUwICkKCQkJewoJCQkJJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoIHsKCQkJCQkic2Nyb2xsVG9wIjogaVNjcm9sbFRvcCAtIDUwCgkJCQl9LCAyNDAsICdsaW5lYXInICk7CgkJCX0KCQkJCgkJCWlmICggdGhhdC5zLmR0Lm9TY3JvbGwuc1kgIT09ICIiICkKCQkJewoJCQkJaWYgKCB0aGF0LnMuc2NyZWVuLnkgPiB0aGF0LnMuc2Nyb2xsZXIuYm90dG9tIC0gNTAgKQoJCQkJewoJCQkJCSQodGhhdC5zLmR0Lm5UYWJsZS5wYXJlbnROb2RlKS5hbmltYXRlKCB7CgkJCQkJCSJzY3JvbGxUb3AiOiAkKHRoYXQucy5kdC5uVGFibGUucGFyZW50Tm9kZSkuc2Nyb2xsVG9wKCkgKyA1MAoJCQkJCX0sIDI0MCwgJ2xpbmVhcicgKTsKCQkJCX0KCQkJCWVsc2UgaWYgKCB0aGF0LnMuc2NyZWVuLnkgPCB0aGF0LnMuc2Nyb2xsZXIudG9wICsgNTAgKQoJCQkJewoJCQkJCSQodGhhdC5zLmR0Lm5UYWJsZS5wYXJlbnROb2RlKS5hbmltYXRlKCB7CgkJCQkJCSJzY3JvbGxUb3AiOiAkKHRoYXQucy5kdC5uVGFibGUucGFyZW50Tm9kZSkuc2Nyb2xsVG9wKCkgLSA1MAoJCQkJCX0sIDI0MCwgJ2xpbmVhcicgKTsKCQkJCX0KCQkJfQoJCX0sIDI1MCApOwoJfSwKCQoJCgkvKioKCSAqIE1vdXNlIG1vdmUgZXZlbnQgaGFuZGxlciBmb3IgZHVyaW5nIGEgbW92ZS4gU2VlIGlmIHdlIHdhbnQgdG8gdXBkYXRlIHRoZSBkaXNwbGF5IGJhc2VkIG9uIHRoZQoJICogbmV3IGN1cnNvciBwb3NpdGlvbgoJICogIEBtZXRob2QgIF9mbkZpbGxlckRyYWdNb3ZlCgkgKiAgQHBhcmFtICAge09iamVjdH0gZSBFdmVudCBvYmplY3QKCSAqICBAcmV0dXJucyB2b2lkCgkgKi8KCSJfZm5GaWxsZXJEcmFnTW92ZSI6IGZ1bmN0aW9uIChlKQoJewoJCWlmICggZS50YXJnZXQgJiYgZS50YXJnZXQubm9kZU5hbWUudG9VcHBlckNhc2UoKSA9PSAiVEQiICYmCgkJIAllLnRhcmdldCAhPSB0aGlzLnMuZHJhZy5lbmRUZCApCgkJewoJCQl2YXIgY29vcmRzID0gdGhpcy5fZm5UYXJnZXRDb29yZHMoIGUudGFyZ2V0ICk7CgkJCQoJCQlpZiAoIGNvb3Jkcy54ICE9IHRoaXMucy5kcmFnLnN0YXJ0WCApCgkJCXsKCQkJCWUudGFyZ2V0ID0gJCgndGJvZHk+dHI6ZXEoJytjb29yZHMueSsnKT50ZDplcSgnK3RoaXMucy5kcmFnLnN0YXJ0WCsnKScsIHRoaXMuZG9tLnRhYmxlKVswXTsKCQkJIAljb29yZHMgPSB0aGlzLl9mblRhcmdldENvb3JkcyggZS50YXJnZXQgKTsKCQkJfQoJCQkKCQkJaWYgKCBjb29yZHMueCA9PSB0aGlzLnMuZHJhZy5zdGFydFggKQoJCQl7CgkJCQl2YXIgZHJhZyA9IHRoaXMucy5kcmFnOwoJCQkJZHJhZy5lbmRUZCA9IGUudGFyZ2V0OwoJCQkJCgkJCQlpZiAoIGNvb3Jkcy55ID49IHRoaXMucy5kcmFnLnN0YXJ0WSApCgkJCQl7CgkJCQkJdGhpcy5fZm5VcGRhdGVCb3JkZXIoIGRyYWcuc3RhcnRUZCwgZHJhZy5lbmRUZCApOwoJCQkJfQoJCQkJZWxzZQoJCQkJewoJCQkJCXRoaXMuX2ZuVXBkYXRlQm9yZGVyKCBkcmFnLmVuZFRkLCBkcmFnLnN0YXJ0VGQgKTsKCQkJCX0KCQkJCXRoaXMuX2ZuRmlsbGVyUG9zaXRpb24oIGUudGFyZ2V0ICk7CgkJCX0KCQl9CgkJCgkJLyogVXBkYXRlIHRoZSBzY3JlZW4gaW5mb3JtYXRpb24gc28gd2UgY2FuIHBlcmZvcm0gc2Nyb2xsaW5nICovCgkJdGhpcy5zLnNjcmVlbi55ID0gZS5wYWdlWTsKCQl0aGlzLnMuc2NyZWVuLnNjcm9sbFRvcCA9ICQoZG9jdW1lbnQpLnNjcm9sbFRvcCgpOwoJCQoJCWlmICggdGhpcy5zLmR0Lm9TY3JvbGwuc1kgIT09ICIiICkKCQl7CgkJCXRoaXMucy5zY3JvbGxlci5zY3JvbGxUb3AgPSAkKHRoaXMucy5kdC5uVGFibGUucGFyZW50Tm9kZSkuc2Nyb2xsVG9wKCk7CgkJCXRoaXMucy5zY3JvbGxlci50b3AgPSAkKHRoaXMucy5kdC5uVGFibGUucGFyZW50Tm9kZSkub2Zmc2V0KCkudG9wOwoJCQl0aGlzLnMuc2Nyb2xsZXIuYm90dG9tID0gdGhpcy5zLnNjcm9sbGVyLnRvcCArICQodGhpcy5zLmR0Lm5UYWJsZS5wYXJlbnROb2RlKS5oZWlnaHQoKTsKCQl9Cgl9LAoJCgkKCS8qKgoJICogTW91c2UgcmVsZWFzZSBoYW5kbGVyIC0gZW5kIHRoZSBkcmFnIGFuZCB0YWtlIGFjdGlvbiB0byB1cGRhdGUgdGhlIGNlbGxzIHdpdGggdGhlIG5lZWRlZCB2YWx1ZXMKCSAqICBAbWV0aG9kICBfZm5GaWxsZXJGaW5pc2gKCSAqICBAcGFyYW0gICB7T2JqZWN0fSBlIEV2ZW50IG9iamVjdAoJICogIEByZXR1cm5zIHZvaWQKCSAqLwoJIl9mbkZpbGxlckZpbmlzaCI6IGZ1bmN0aW9uIChlKQoJewoJCXZhciB0aGF0ID0gdGhpczsKCQkKCQkkKGRvY3VtZW50KS51bmJpbmQoJ21vdXNlbW92ZS5BdXRvRmlsbCcpOwoJCSQoZG9jdW1lbnQpLnVuYmluZCgnbW91c2V1cC5BdXRvRmlsbCcpOwoJCQoJCXRoaXMuZG9tLmJvcmRlclRvcC5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwoJCXRoaXMuZG9tLmJvcmRlclJpZ2h0LnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CgkJdGhpcy5kb20uYm9yZGVyQm90dG9tLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CgkJdGhpcy5kb20uYm9yZGVyTGVmdC5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwoJCQoJCXRoaXMucy5kcmFnLmRyYWdnaW5nID0gZmFsc2U7CgkJCgkJY2xlYXJJbnRlcnZhbCggdGhpcy5zLnNjcmVlbi5pbnRlcnZhbCApOwoJCQoJCXZhciBjb29yZHNTdGFydCA9IHRoaXMuX2ZuVGFyZ2V0Q29vcmRzKCB0aGlzLnMuZHJhZy5zdGFydFRkICk7CgkJdmFyIGNvb3Jkc0VuZCA9IHRoaXMuX2ZuVGFyZ2V0Q29vcmRzKCB0aGlzLnMuZHJhZy5lbmRUZCApOwoJCXZhciBhVGRzID0gW107CgkJdmFyIGJJbmNyZW1lbnQ7CgkJCgkJaWYgKCBjb29yZHNTdGFydC55IDw9IGNvb3Jkc0VuZC55ICkKCQl7CgkJCWJJbmNyZW1lbnQgPSB0cnVlOwoJCQlmb3IgKCBpPWNvb3Jkc1N0YXJ0LnkgOyBpPD1jb29yZHNFbmQueSA7IGkrKyApCgkJCXsKCQkJCWFUZHMucHVzaCggJCgndGJvZHk+dHI6ZXEoJytpKycpPnRkOmVxKCcrY29vcmRzU3RhcnQueCsnKScsIHRoaXMuZG9tLnRhYmxlKVswXSApOwoJCQl9CgkJfQoJCWVsc2UKCQl7CgkJCWJJbmNyZW1lbnQgPSBmYWxzZTsKCQkJZm9yICggaT1jb29yZHNTdGFydC55IDsgaT49Y29vcmRzRW5kLnkgOyBpLS0gKQoJCQl7CgkJCQlhVGRzLnB1c2goICQoJ3Rib2R5PnRyOmVxKCcraSsnKT50ZDplcSgnK2Nvb3Jkc1N0YXJ0LngrJyknLCB0aGlzLmRvbS50YWJsZSlbMF0gKTsKCQkJfQoJCX0KCQkKCQkKCQl2YXIgaUNvbHVtbiA9IGNvb3Jkc1N0YXJ0Lng7CgkJdmFyIGJMYXN0ID0gZmFsc2U7CgkJdmFyIGFvRWRpdGVkID0gW107CgkJdmFyIHNTdGFydCA9IHRoaXMucy5jb2x1bW5zW2lDb2x1bW5dLnJlYWQuY2FsbCggdGhpcywgdGhpcy5zLmRyYWcuc3RhcnRUZCApOwoJCXZhciBvUHJlcHBlZCA9IHRoaXMuX2ZuUHJlcCggc1N0YXJ0ICk7CgkJCgkJZm9yICggaT0wLCBpTGVuPWFUZHMubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQl7CgkJCWlmICggaT09aUxlbi0xICkKCQkJewoJCQkJYkxhc3QgPSB0cnVlOwoJCQl9CgkJCQoJCQl2YXIgb3JpZ2luYWwgPSB0aGlzLnMuY29sdW1uc1tpQ29sdW1uXS5yZWFkLmNhbGwoIHRoaXMsIGFUZHNbaV0gKTsKCQkJdmFyIHN0ZXAgPSB0aGlzLnMuY29sdW1uc1tpQ29sdW1uXS5zdGVwLmNhbGwoIHRoaXMsIGFUZHNbaV0sIG9QcmVwcGVkLCBpLCBiSW5jcmVtZW50LCAKCQkJCSdTUFJZTUVESUFfQVVUT0ZJTExfU1RFUFBFUicgKTsKCQkJdGhpcy5zLmNvbHVtbnNbaUNvbHVtbl0ud3JpdGUuY2FsbCggdGhpcywgYVRkc1tpXSwgc3RlcCwgYkxhc3QgKTsKCQkJCgkJCWFvRWRpdGVkLnB1c2goIHsKCQkJCSJ0ZCI6IGFUZHNbaV0sCgkJCQkibmV3VmFsdWUiOiBzdGVwLAoJCQkJIm9sZFZhbHVlIjogb3JpZ2luYWwKCQkJfSApOwoJCX0KCQkKCQlpZiAoIHRoaXMucy5jb2x1bW5zW2lDb2x1bW5dLmNvbXBsZXRlICE9PSBudWxsICkKCQl7CgkJCXRoaXMucy5jb2x1bW5zW2lDb2x1bW5dLmNvbXBsZXRlLmNhbGwoIHRoaXMsIGFvRWRpdGVkICk7CgkJfQoJfSwKCQoJCgkvKioKCSAqIENodW5rIGEgc3RyaW5nIHN1Y2ggdGhhdCBpdCBjYW4gYmUgZmlsbGVkIGluIGJ5IHRoZSBzdGVwcGVyIGZ1bmN0aW9uCgkgKiAgQG1ldGhvZCAgX2ZuUHJlcAoJICogIEBwYXJhbSAgIHtTdHJpbmd9IHNTdHIgU3RyaW5nIHRvIHByZXAKCSAqICBAcmV0dXJucyB7T2JqZWN0fSB3aXRoIHBhcmFtZXRlcnMsIGlTdGFydCwgc1N0ciBhbmQgc1Bvc3RGaXgKCSAqLwoJIl9mblByZXAiOiBmdW5jdGlvbiAoIHNTdHIgKQoJewoJCXZhciBhTWF0Y2ggPSBzU3RyLm1hdGNoKC9bXGRcLl0rL2cpOwoJCWlmICggIWFNYXRjaCB8fCBhTWF0Y2gubGVuZ3RoID09PSAwICkKCQl7CgkJCXJldHVybiB7CgkJCQkiaVN0YXJ0IjogMCwKCQkJCSJzU3RyIjogc1N0ciwKCQkJCSJzUG9zdEZpeCI6ICIiCgkJCX07CgkJfQoJCQoJCXZhciBzTGFzdCA9IGFNYXRjaFsgYU1hdGNoLmxlbmd0aC0xIF07CgkJdmFyIG51bSA9IHBhcnNlSW50KHNMYXN0LCAxMCk7CgkJdmFyIHJlZ2V4ID0gbmV3IFJlZ0V4cCggJ14oLiopJytzTGFzdCsnKC4qPykkJyApOwoJCXZhciBkZWNpbWFsID0gc0xhc3QubWF0Y2goL1wuLykgPyAiLiIrc0xhc3Quc3BsaXQoJy4nKVsxXSA6ICIiOwoJCQoJCXJldHVybiB7CgkJCSJpU3RhcnQiOiBudW0sCgkJCSJzU3RyIjogc1N0ci5yZXBsYWNlKHJlZ2V4LCAiJDFTUFJZTUVESUFfQVVUT0ZJTExfU1RFUFBFUiQyIiksCgkJCSJzUG9zdEZpeCI6IGRlY2ltYWwKCQl9OwoJfSwKCQoJCgkvKioKCSAqIFJlbmRlciBhIHN0cmluZyBmb3IgaXQncyBwb3NpdGlvbiBpbiB0aGUgdGFibGUgYWZ0ZXIgdGhlIGRyYWcgKGluY3JlbWVtdCBudW1iZXJzKQoJICogIEBtZXRob2QgIF9mblN0ZXAKCSAqICBAcGFyYW0gICB7Tm9kZX0gblRkIENlbGwgYmVpbmcgd3JpdHRlbiB0bwoJICogIEBwYXJhbSAgIHtPYmplY3R9IG9QcmVwcGVkIFByZXBhcmVkIG9iamVjdCBmb3IgdGhlIHN0ZXBwZXIgKGZyb20gX2ZuUHJlcCkKCSAqICBAcGFyYW0gICB7SW50fSBpRGlmZiBTdGVwIGRpZmZlcmVuY2UKCSAqICBAcGFyYW0gICB7Qm9vbGVhbn0gYkluY3JlbWVudCBJbmNyZW1lbnQgKHRydWUpIG9yIGRlY3JpbWVudCAoZmFsc2UpCgkgKiAgQHBhcmFtICAge1N0cmluZ30gc1Rva2VuIFRva2VuIHRvIHJlcGxhY2UKCSAqICBAcmV0dXJucyB7U3RyaW5nfSBSZW5kZXJlZCBpbmZvcm1hdGlvbgoJICovCgkiX2ZuU3RlcCI6IGZ1bmN0aW9uICggblRkLCBvUHJlcHBlZCwgaURpZmYsIGJJbmNyZW1lbnQsIHNUb2tlbiApCgl7CgkJdmFyIGlSZXBsYWNlID0gYkluY3JlbWVudCA/IChvUHJlcHBlZC5pU3RhcnQraURpZmYpIDogKG9QcmVwcGVkLmlTdGFydC1pRGlmZik7CgkJaWYgKCBpc05hTihpUmVwbGFjZSkgKQoJCXsKCQkJaVJlcGxhY2UgPSAiIjsKCQl9CgkJcmV0dXJuIG9QcmVwcGVkLnNTdHIucmVwbGFjZSggc1Rva2VuLCBpUmVwbGFjZStvUHJlcHBlZC5zUG9zdEZpeCApOwoJfSwKCQoJCgkvKioKCSAqIFJlYWQgaW5mb3JtYWl0b24gZnJvbSBhIGNlbGwsIHBvc3NpYmx5IHVzaW5nIGxpdmUgRE9NIGVsZW1lbnRzIGlmIHN1aXRhYmxlCgkgKiAgQG1ldGhvZCAgX2ZuUmVhZENlbGwKCSAqICBAcGFyYW0gICB7Tm9kZX0gblRkIENlbGwgdG8gcmVhZAoJICogIEByZXR1cm5zIHtTdHJpbmd9IFJlYWQgdmFsdWUKCSAqLwoJIl9mblJlYWRDZWxsIjogZnVuY3Rpb24gKCBuVGQgKQoJewoJCXZhciBqcSA9ICQoJ2lucHV0JywgblRkKTsKCQlpZiAoIGpxLmxlbmd0aCA+IDAgKQoJCXsKCQkJcmV0dXJuICQoanEpLnZhbCgpOwoJCX0KCQkKCQlqcSA9ICQoJ3NlbGVjdCcsIG5UZCk7CgkJaWYgKCBqcS5sZW5ndGggPiAwICkKCQl7CgkJCXJldHVybiAkKGpxKS52YWwoKTsKCQl9CgkJCgkJcmV0dXJuIG5UZC5pbm5lckhUTUw7Cgl9LAoJCgkKCS8qKgoJICogV3JpdGUgaW5mb3JtYWl0b24gdG8gYSBjZWxsLCBwb3NzaWJseSB1c2luZyBsaXZlIERPTSBlbGVtZW50cyBpZiBzdWl0YWJsZQoJICogIEBtZXRob2QgIF9mbldyaXRlQ2VsbAoJICogIEBwYXJhbSAgIHtOb2RlfSBuVGQgQ2VsbCB0byB3cml0ZQoJICogIEBwYXJhbSAgIHtTdHJpbmd9IHNWYWwgVmFsdWUgdG8gd3JpdGUKCSAqICBAcGFyYW0gICB7Qm9vbGVhbn0gYkxhc3QgRmxhZyB0byBzaG93IGlmIHRoaXMgaXMgdGhhdCBsYXN0IHVwZGF0ZQoJICogIEByZXR1cm5zIHZvaWQKCSAqLwoJIl9mbldyaXRlQ2VsbCI6IGZ1bmN0aW9uICggblRkLCBzVmFsLCBiTGFzdCApCgl7CgkJdmFyIGpxID0gJCgnaW5wdXQnLCBuVGQpOwoJCWlmICgganEubGVuZ3RoID4gMCApCgkJewoJCQkkKGpxKS52YWwoIHNWYWwgKTsKCQkJcmV0dXJuOwoJCX0KCQkKCQlqcSA9ICQoJ3NlbGVjdCcsIG5UZCk7CgkJaWYgKCBqcS5sZW5ndGggPiAwICkKCQl7CgkJCSQoanEpLnZhbCggc1ZhbCApOwoJCQlyZXR1cm47CgkJfQoJCQoJCXZhciBwb3MgPSB0aGlzLnMuZHQub0luc3RhbmNlLmZuR2V0UG9zaXRpb24oIG5UZCApOwoJCXRoaXMucy5kdC5vSW5zdGFuY2UuZm5VcGRhdGUoIHNWYWwsIHBvc1swXSwgcG9zWzJdLCBiTGFzdCApOwoJfSwKCQoJCgkvKioKCSAqIERpc3BsYXkgdGhlIGRyYWcgaGFuZGxlIG9uIG1vdXNlIG92ZXIgY2VsbAoJICogIEBtZXRob2QgIF9mbkZpbGxlckRpc3BsYXkKCSAqICBAcGFyYW0gICB7T2JqZWN0fSBlIEV2ZW50IG9iamVjdAoJICogIEByZXR1cm5zIHZvaWQKCSAqLwoJIl9mbkZpbGxlckRpc3BsYXkiOiBmdW5jdGlvbiAoZSkKCXsKCQkvKiBEb24ndCBkaXNwbGF5IGF1dG9tYXRpY2FsbHkgd2hlbiBkcmFnZ2luZyAqLwoJCWlmICggdGhpcy5zLmRyYWcuZHJhZ2dpbmcpCgkJewoJCQlyZXR1cm47CgkJfQoJCQoJCS8qIENoZWNrIHRoYXQgd2UgYXJlIGFsbG93ZWQgdG8gQXV0b0ZpbGwgdGhpcyBjb2x1bW4gb3Igbm90ICovCgkJdmFyIG5UZCA9IChlLnRhcmdldC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09ICd0ZCcpID8gZS50YXJnZXQgOiAkKGUudGFyZ2V0KS5wYXJlbnRzKCd0ZCcpWzBdOwoJCXZhciBpWCA9IHRoaXMuX2ZuVGFyZ2V0Q29vcmRzKG5UZCkueDsKCQlpZiAoICF0aGlzLnMuY29sdW1uc1tpWF0uZW5hYmxlICkKCQl7CgkJCXJldHVybjsKCQl9CgkJCgkJdmFyIGZpbGxlciA9IHRoaXMuZG9tLmZpbGxlcjsKCQlpZiAoZS50eXBlID09ICdtb3VzZW92ZXInKQoJCXsKCQkJdGhpcy5kb20uY3VycmVudFRhcmdldCA9IG5UZDsKCQkJdGhpcy5fZm5GaWxsZXJQb3NpdGlvbiggblRkICk7CgkJCQoJCQlmaWxsZXIuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CgkJfQoJCWVsc2UgaWYgKCAhZS5yZWxhdGVkVGFyZ2V0IHx8ICFlLnJlbGF0ZWRUYXJnZXQuY2xhc3NOYW1lLm1hdGNoKC9BdXRvRmlsbC8pICkKCQl7CgkJCWZpbGxlci5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwoJCX0KCX0sCgkKCQoJLyoqCgkgKiBQb3NpdGlvbiB0aGUgZmlsbGVyIGljb24gb3ZlciBhIGNlbGwKCSAqICBAbWV0aG9kICBfZm5GaWxsZXJQb3NpdGlvbgoJICogIEBwYXJhbSAgIHtOb2RlfSBuVGQgQ2VsbCB0byBwb3NpdGlvbiBmaWxsZXIgaWNvbiBvdmVyCgkgKiAgQHJldHVybnMgdm9pZAoJICovCgkiX2ZuRmlsbGVyUG9zaXRpb24iOiBmdW5jdGlvbiAoIG5UZCApCgl7CgkJdmFyIG9mZnNldCA9ICQoblRkKS5vZmZzZXQoKTsKCQl2YXIgZmlsbGVyID0gdGhpcy5kb20uZmlsbGVyOwoJCWZpbGxlci5zdHlsZS50b3AgPSAob2Zmc2V0LnRvcCAtICh0aGlzLnMuZmlsbGVyLmhlaWdodCAvIDIpLTEgKyAkKG5UZCkub3V0ZXJIZWlnaHQoKSkrInB4IjsKCQlmaWxsZXIuc3R5bGUubGVmdCA9IChvZmZzZXQubGVmdCAtICh0aGlzLnMuZmlsbGVyLndpZHRoIC8gMiktMSArICQoblRkKS5vdXRlcldpZHRoKCkpKyJweCI7Cgl9Cn07CgoKCgovKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICoKICogQ29uc3RhbnRzCiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKi8KCi8qKgogKiBOYW1lIG9mIHRoaXMgY2xhc3MKICogIEBjb25zdGFudCBDTEFTUwogKiAgQHR5cGUgICAgIFN0cmluZwogKiAgQGRlZmF1bHQgIEF1dG9GaWxsCiAqLwpBdXRvRmlsbC5wcm90b3R5cGUuQ0xBU1MgPSAiQXV0b0ZpbGwiOwoKCi8qKgogKiBBdXRvRmlsbCB2ZXJzaW9uCiAqICBAY29uc3RhbnQgIFZFUlNJT04KICogIEB0eXBlICAgICAgU3RyaW5nCiAqICBAZGVmYXVsdCAgIDEuMS4yCiAqLwpBdXRvRmlsbC5WRVJTSU9OID0gIjEuMS4yIjsKQXV0b0ZpbGwucHJvdG90eXBlLlZFUlNJT04gPSBBdXRvRmlsbC5WRVJTSU9OOwoKCn0pKGpRdWVyeSk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/js/AutoFill.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogRmlsZTogICAgICAgIEF1dG9GaWxsLm1pbi5qcwogKiBWZXJzaW9uOiAgICAgMS4xLjIKICogQXV0aG9yOiAgICAgIEFsbGFuIEphcmRpbmUgKHd3dy5zcHJ5bWVkaWEuY28udWspCiAqIAogKiBDb3B5cmlnaHQgMjAxMC0yMDExIEFsbGFuIEphcmRpbmUsIGFsbCByaWdodHMgcmVzZXJ2ZWQuCiAqCiAqIFRoaXMgc291cmNlIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZSwgdW5kZXIgZWl0aGVyIHRoZSBHUEwgdjIgbGljZW5zZSBvciBhCiAqIEJTRCAoMyBwb2ludCkgc3R5bGUgbGljZW5zZSwgYXMgc3VwcGxpZWQgd2l0aCB0aGlzIHNvZnR3YXJlLgogKiAKICogVGhpcyBzb3VyY2UgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgCiAqIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIAogKiBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBsaWNlbnNlIGZpbGVzIGZvciBkZXRhaWxzLgogKi8KdmFyIEF1dG9GaWxsOwooZnVuY3Rpb24oZSl7QXV0b0ZpbGw9ZnVuY3Rpb24oYixhKXtpZighdGhpcy5DTEFTU3x8IkF1dG9GaWxsIiE9dGhpcy5DTEFTUylhbGVydCgiV2FybmluZzogQXV0b0ZpbGwgbXVzdCBiZSBpbml0aWFsaXNlZCB3aXRoIHRoZSBrZXl3b3JkICduZXcnIik7ZWxzZXtpZihlLmZuLmRhdGFUYWJsZUV4dC5mblZlcnNpb25DaGVjaygiMS43LjAiKSlyZXR1cm4gdGhpcy5zPXtmaWxsZXI6e2hlaWdodDowLHdpZHRoOjB9LGJvcmRlcjp7d2lkdGg6Mn0sZHJhZzp7c3RhcnRYOi0xLHN0YXJ0WTotMSxzdGFydFRkOm51bGwsZW5kVGQ6bnVsbCxkcmFnZ2luZzohMX0sc2NyZWVuOntpbnRlcnZhbDpudWxsLHk6MCxoZWlnaHQ6MCxzY3JvbGxUb3A6MH0sc2Nyb2xsZXI6e3RvcDowLGJvdHRvbTowfSxjb2x1bW5zOltdfSx0aGlzLmRvbT17dGFibGU6bnVsbCxmaWxsZXI6bnVsbCxib3JkZXJUb3A6bnVsbCxib3JkZXJSaWdodDpudWxsLGJvcmRlckJvdHRvbTpudWxsLGJvcmRlckxlZnQ6bnVsbCxjdXJyZW50VGFyZ2V0Om51bGx9LAp0aGlzLmZuU2V0dGluZ3M9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zfSx0aGlzLl9mbkluaXQoYixhKSx0aGlzO2FsZXJ0KCJXYXJuaW5nOiBBdXRvRmlsbCByZXF1aXJlcyBEYXRhVGFibGVzIDEuNyBvciBncmVhdGVyIC0gd3d3LmRhdGF0YWJsZXMubmV0L2Rvd25sb2FkIil9fTtBdXRvRmlsbC5wcm90b3R5cGU9e19mbkluaXQ6ZnVuY3Rpb24oYixhKXt2YXIgYz10aGlzLGQsZjt0aGlzLnMuZHQ9Yi5mblNldHRpbmdzKCk7dGhpcy5kb20udGFibGU9dGhpcy5zLmR0Lm5UYWJsZTtkPTA7Zm9yKGY9dGhpcy5zLmR0LmFvQ29sdW1ucy5sZW5ndGg7ZDxmO2QrKyl0aGlzLl9mbkFkZENvbHVtbihkKTsidW5kZWZpbmVkIiE9dHlwZW9mIGEmJiJ1bmRlZmluZWQiIT10eXBlb2YgYS5hb0NvbHVtbkRlZnMmJnRoaXMuX2ZuQ29sdW1uRGVmcyhhLmFvQ29sdW1uRGVmcyk7InVuZGVmaW5lZCIhPXR5cGVvZiBhJiYidW5kZWZpbmVkIiE9dHlwZW9mIGEuYW9Db2x1bW5zJiZ0aGlzLl9mbkNvbHVtbnNBbGwoYS5hb0NvbHVtbnMpOwpkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2QuY2xhc3NOYW1lPSJBdXRvRmlsbF9maWxsZXIiO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZCk7dGhpcy5kb20uZmlsbGVyPWQ7ZC5zdHlsZS5kaXNwbGF5PSJibG9jayI7dGhpcy5zLmZpbGxlci5oZWlnaHQ9ZShkKS5oZWlnaHQoKTt0aGlzLnMuZmlsbGVyLndpZHRoPWUoZCkud2lkdGgoKTtkLnN0eWxlLmRpc3BsYXk9Im5vbmUiO3ZhciBnPWRvY3VtZW50LmJvZHk7IiIhPT1jLnMuZHQub1Njcm9sbC5zWSYmKGMucy5kdC5uVGFibGUucGFyZW50Tm9kZS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiLGc9Yy5zLmR0Lm5UYWJsZS5wYXJlbnROb2RlKTtmPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2YuY2xhc3NOYW1lPSJBdXRvRmlsbF9ib3JkZXIiO2cuYXBwZW5kQ2hpbGQoZik7dGhpcy5kb20uYm9yZGVyVG9wPWY7Zj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtmLmNsYXNzTmFtZT0iQXV0b0ZpbGxfYm9yZGVyIjsKZy5hcHBlbmRDaGlsZChmKTt0aGlzLmRvbS5ib3JkZXJSaWdodD1mO2Y9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Zi5jbGFzc05hbWU9IkF1dG9GaWxsX2JvcmRlciI7Zy5hcHBlbmRDaGlsZChmKTt0aGlzLmRvbS5ib3JkZXJCb3R0b209ZjtmPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2YuY2xhc3NOYW1lPSJBdXRvRmlsbF9ib3JkZXIiO2cuYXBwZW5kQ2hpbGQoZik7dGhpcy5kb20uYm9yZGVyTGVmdD1mO2UoZCkubW91c2Vkb3duKGZ1bmN0aW9uKGEpe3RoaXMub25zZWxlY3RzdGFydD1mdW5jdGlvbigpe3JldHVybiBmYWxzZX07Yy5fZm5GaWxsZXJEcmFnU3RhcnQuY2FsbChjLGEpO3JldHVybiBmYWxzZX0pO2UoInRib2R5PnRyPnRkIix0aGlzLmRvbS50YWJsZSkubGl2ZSgibW91c2VvdmVyIG1vdXNlb3V0IixmdW5jdGlvbihhKXtjLl9mbkZpbGxlckRpc3BsYXkuY2FsbChjLGEpfSl9LF9mbkNvbHVtbkRlZnM6ZnVuY3Rpb24oYil7dmFyIGEsYyxkLGUsCmcsaDtmb3IoYT1iLmxlbmd0aC0xOzA8PWE7YS0tKXtoPWJbYV0uYVRhcmdldHM7Yz0wO2ZvcihlPWgubGVuZ3RoO2M8ZTtjKyspaWYoIm51bWJlciI9PXR5cGVvZiBoW2NdJiYwPD1oW2NdKXRoaXMuX2ZuQ29sdW1uT3B0aW9ucyhoW2NdLGJbYV0pO2Vsc2UgaWYoIm51bWJlciI9PXR5cGVvZiBoW2NdJiYwPmhbY10pdGhpcy5fZm5Db2x1bW5PcHRpb25zKHRoaXMucy5kdC5hb0NvbHVtbnMubGVuZ3RoK2hbY10sYlthXSk7ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIGhbY10pe2Q9MDtmb3IoZz10aGlzLnMuZHQuYW9Db2x1bW5zLmxlbmd0aDtkPGc7ZCsrKSgiX2FsbCI9PWhbY118fC0xIT10aGlzLnMuZHQuYW9Db2x1bW5zW2RdLm5UaC5jbGFzc05hbWUuaW5kZXhPZihoW2NdKSkmJnRoaXMuX2ZuQ29sdW1uT3B0aW9ucyhkLGJbYV0pfX19LF9mbkNvbHVtbnNBbGw6ZnVuY3Rpb24oYil7Zm9yKHZhciBhPTAsYz10aGlzLnMuZHQuYW9Db2x1bW5zLmxlbmd0aDthPGM7YSsrKXRoaXMuX2ZuQ29sdW1uT3B0aW9ucyhhLApiW2FdKX0sX2ZuQWRkQ29sdW1uOmZ1bmN0aW9uKGIpe3RoaXMucy5jb2x1bW5zW2JdPXtlbmFibGU6ITAscmVhZDp0aGlzLl9mblJlYWRDZWxsLHdyaXRlOnRoaXMuX2ZuV3JpdGVDZWxsLHN0ZXA6dGhpcy5fZm5TdGVwLGNvbXBsZXRlOm51bGx9fSxfZm5Db2x1bW5PcHRpb25zOmZ1bmN0aW9uKGIsYSl7InVuZGVmaW5lZCIhPXR5cGVvZiBhLmJFbmFibGUmJih0aGlzLnMuY29sdW1uc1tiXS5lbmFibGU9YS5iRW5hYmxlKTsidW5kZWZpbmVkIiE9dHlwZW9mIGEuZm5SZWFkJiYodGhpcy5zLmNvbHVtbnNbYl0ucmVhZD1hLmZuUmVhZCk7InVuZGVmaW5lZCIhPXR5cGVvZiBhLmZuV3JpdGUmJih0aGlzLnMuY29sdW1uc1tiXS53cml0ZT1hLmZuV3JpdGUpOyJ1bmRlZmluZWQiIT10eXBlb2YgYS5mblN0ZXAmJih0aGlzLnMuY29sdW1uc1tiXS5zdGVwPWEuZm5TdGVwKTsidW5kZWZpbmVkIiE9dHlwZW9mIGEuZm5DYWxsYmFjayYmKHRoaXMucy5jb2x1bW5zW2JdLmNvbXBsZXRlPWEuZm5DYWxsYmFjayl9LApfZm5UYXJnZXRDb29yZHM6ZnVuY3Rpb24oYil7dmFyIGE9ZShiKS5wYXJlbnRzKCJ0ciIpWzBdO3JldHVybnt4OmUoInRkIixhKS5pbmRleChiKSx5OmUoInRyIixhLnBhcmVudE5vZGUpLmluZGV4KGEpfX0sX2ZuVXBkYXRlQm9yZGVyOmZ1bmN0aW9uKGIsYSl7dmFyIGM9dGhpcy5zLmJvcmRlci53aWR0aCxkPWUoYikub2Zmc2V0KCksZj1lKGEpLm9mZnNldCgpLGc9ZC5sZWZ0LWMsaD1mLmxlZnQrZShhKS5vdXRlcldpZHRoKCksaj1kLnRvcC1jLGs9Zi50b3ArZShhKS5vdXRlckhlaWdodCgpLGw9Zi5sZWZ0K2UoYSkub3V0ZXJXaWR0aCgpLWQubGVmdCsyKmMsYz1mLnRvcCtlKGEpLm91dGVySGVpZ2h0KCktZC50b3ArMipjO2lmKCIiIT09dGhpcy5zLmR0Lm9TY3JvbGwuc1kpdmFyIGQ9ZSh0aGlzLnMuZHQublRhYmxlLnBhcmVudE5vZGUpLm9mZnNldCgpLGY9ZSh0aGlzLnMuZHQublRhYmxlLnBhcmVudE5vZGUpLnNjcm9sbFRvcCgpLG09ZSh0aGlzLnMuZHQublRhYmxlLnBhcmVudE5vZGUpLnNjcm9sbExlZnQoKSwKZz1nLShkLmxlZnQtbSksaD1oLShkLmxlZnQtbSksaj1qLShkLnRvcC1mKSxrPWstKGQudG9wLWYpO2Q9dGhpcy5kb20uYm9yZGVyVG9wLnN0eWxlO2QudG9wPWorInB4IjtkLmxlZnQ9ZysicHgiO2QuaGVpZ2h0PXRoaXMucy5ib3JkZXIud2lkdGgrInB4IjtkLndpZHRoPWwrInB4IjtkPXRoaXMuZG9tLmJvcmRlckJvdHRvbS5zdHlsZTtkLnRvcD1rKyJweCI7ZC5sZWZ0PWcrInB4IjtkLmhlaWdodD10aGlzLnMuYm9yZGVyLndpZHRoKyJweCI7ZC53aWR0aD1sKyJweCI7ZD10aGlzLmRvbS5ib3JkZXJMZWZ0LnN0eWxlO2QudG9wPWorInB4IjtkLmxlZnQ9ZysicHgiO2QuaGVpZ2h0PWMrInB4IjtkLndpZHRoPXRoaXMucy5ib3JkZXIud2lkdGgrInB4IjtkPXRoaXMuZG9tLmJvcmRlclJpZ2h0LnN0eWxlO2QudG9wPWorInB4IjtkLmxlZnQ9aCsicHgiO2QuaGVpZ2h0PWMrInB4IjtkLndpZHRoPXRoaXMucy5ib3JkZXIud2lkdGgrInB4In0sX2ZuRmlsbGVyRHJhZ1N0YXJ0OmZ1bmN0aW9uKGIpe3ZhciBhPQp0aGlzLGM9dGhpcy5kb20uY3VycmVudFRhcmdldDt0aGlzLnMuZHJhZy5kcmFnZ2luZz0hMDthLmRvbS5ib3JkZXJUb3Auc3R5bGUuZGlzcGxheT0iYmxvY2siO2EuZG9tLmJvcmRlclJpZ2h0LnN0eWxlLmRpc3BsYXk9ImJsb2NrIjthLmRvbS5ib3JkZXJCb3R0b20uc3R5bGUuZGlzcGxheT0iYmxvY2siO2EuZG9tLmJvcmRlckxlZnQuc3R5bGUuZGlzcGxheT0iYmxvY2siO3ZhciBkPXRoaXMuX2ZuVGFyZ2V0Q29vcmRzKGMpO3RoaXMucy5kcmFnLnN0YXJ0WD1kLng7dGhpcy5zLmRyYWcuc3RhcnRZPWQueTt0aGlzLnMuZHJhZy5zdGFydFRkPWM7dGhpcy5zLmRyYWcuZW5kVGQ9Yzt0aGlzLl9mblVwZGF0ZUJvcmRlcihjLGMpO2UoZG9jdW1lbnQpLmJpbmQoIm1vdXNlbW92ZS5BdXRvRmlsbCIsZnVuY3Rpb24oYil7YS5fZm5GaWxsZXJEcmFnTW92ZS5jYWxsKGEsYil9KTtlKGRvY3VtZW50KS5iaW5kKCJtb3VzZXVwLkF1dG9GaWxsIixmdW5jdGlvbihiKXthLl9mbkZpbGxlckZpbmlzaC5jYWxsKGEsCmIpfSk7dGhpcy5zLnNjcmVlbi55PWIucGFnZVk7dGhpcy5zLnNjcmVlbi5oZWlnaHQ9ZSh3aW5kb3cpLmhlaWdodCgpO3RoaXMucy5zY3JlZW4uc2Nyb2xsVG9wPWUoZG9jdW1lbnQpLnNjcm9sbFRvcCgpOyIiIT09dGhpcy5zLmR0Lm9TY3JvbGwuc1kmJih0aGlzLnMuc2Nyb2xsZXIudG9wPWUodGhpcy5zLmR0Lm5UYWJsZS5wYXJlbnROb2RlKS5vZmZzZXQoKS50b3AsdGhpcy5zLnNjcm9sbGVyLmJvdHRvbT10aGlzLnMuc2Nyb2xsZXIudG9wK2UodGhpcy5zLmR0Lm5UYWJsZS5wYXJlbnROb2RlKS5oZWlnaHQoKSk7dGhpcy5zLnNjcmVlbi5pbnRlcnZhbD1zZXRJbnRlcnZhbChmdW5jdGlvbigpe3ZhciBiPWUoZG9jdW1lbnQpLnNjcm9sbFRvcCgpO2Eucy5zY3JlZW4ueT1hLnMuc2NyZWVuLnkrKGItYS5zLnNjcmVlbi5zY3JvbGxUb3ApO2Eucy5zY3JlZW4uaGVpZ2h0LWEucy5zY3JlZW4ueStiPDUwP2UoImh0bWwsIGJvZHkiKS5hbmltYXRlKHtzY3JvbGxUb3A6Yis1MH0sMjQwLAoibGluZWFyIik6YS5zLnNjcmVlbi55LWI8NTAmJmUoImh0bWwsIGJvZHkiKS5hbmltYXRlKHtzY3JvbGxUb3A6Yi01MH0sMjQwLCJsaW5lYXIiKTthLnMuZHQub1Njcm9sbC5zWSE9PSIiJiYoYS5zLnNjcmVlbi55PmEucy5zY3JvbGxlci5ib3R0b20tNTA/ZShhLnMuZHQublRhYmxlLnBhcmVudE5vZGUpLmFuaW1hdGUoe3Njcm9sbFRvcDplKGEucy5kdC5uVGFibGUucGFyZW50Tm9kZSkuc2Nyb2xsVG9wKCkrNTB9LDI0MCwibGluZWFyIik6YS5zLnNjcmVlbi55PGEucy5zY3JvbGxlci50b3ArNTAmJmUoYS5zLmR0Lm5UYWJsZS5wYXJlbnROb2RlKS5hbmltYXRlKHtzY3JvbGxUb3A6ZShhLnMuZHQublRhYmxlLnBhcmVudE5vZGUpLnNjcm9sbFRvcCgpLTUwfSwyNDAsImxpbmVhciIpKX0sMjUwKX0sX2ZuRmlsbGVyRHJhZ01vdmU6ZnVuY3Rpb24oYil7aWYoYi50YXJnZXQmJiJURCI9PWIudGFyZ2V0Lm5vZGVOYW1lLnRvVXBwZXJDYXNlKCkmJmIudGFyZ2V0IT10aGlzLnMuZHJhZy5lbmRUZCl7dmFyIGE9CnRoaXMuX2ZuVGFyZ2V0Q29vcmRzKGIudGFyZ2V0KTthLnghPXRoaXMucy5kcmFnLnN0YXJ0WCYmKGIudGFyZ2V0PWUoInRib2R5PnRyOmVxKCIrYS55KyIpPnRkOmVxKCIrdGhpcy5zLmRyYWcuc3RhcnRYKyIpIix0aGlzLmRvbS50YWJsZSlbMF0sYT10aGlzLl9mblRhcmdldENvb3JkcyhiLnRhcmdldCkpO2lmKGEueD09dGhpcy5zLmRyYWcuc3RhcnRYKXt2YXIgYz10aGlzLnMuZHJhZztjLmVuZFRkPWIudGFyZ2V0O2EueT49dGhpcy5zLmRyYWcuc3RhcnRZP3RoaXMuX2ZuVXBkYXRlQm9yZGVyKGMuc3RhcnRUZCxjLmVuZFRkKTp0aGlzLl9mblVwZGF0ZUJvcmRlcihjLmVuZFRkLGMuc3RhcnRUZCk7dGhpcy5fZm5GaWxsZXJQb3NpdGlvbihiLnRhcmdldCl9fXRoaXMucy5zY3JlZW4ueT1iLnBhZ2VZO3RoaXMucy5zY3JlZW4uc2Nyb2xsVG9wPWUoZG9jdW1lbnQpLnNjcm9sbFRvcCgpOyIiIT09dGhpcy5zLmR0Lm9TY3JvbGwuc1kmJih0aGlzLnMuc2Nyb2xsZXIuc2Nyb2xsVG9wPQplKHRoaXMucy5kdC5uVGFibGUucGFyZW50Tm9kZSkuc2Nyb2xsVG9wKCksdGhpcy5zLnNjcm9sbGVyLnRvcD1lKHRoaXMucy5kdC5uVGFibGUucGFyZW50Tm9kZSkub2Zmc2V0KCkudG9wLHRoaXMucy5zY3JvbGxlci5ib3R0b209dGhpcy5zLnNjcm9sbGVyLnRvcCtlKHRoaXMucy5kdC5uVGFibGUucGFyZW50Tm9kZSkuaGVpZ2h0KCkpfSxfZm5GaWxsZXJGaW5pc2g6ZnVuY3Rpb24oKXtlKGRvY3VtZW50KS51bmJpbmQoIm1vdXNlbW92ZS5BdXRvRmlsbCIpO2UoZG9jdW1lbnQpLnVuYmluZCgibW91c2V1cC5BdXRvRmlsbCIpO3RoaXMuZG9tLmJvcmRlclRvcC5zdHlsZS5kaXNwbGF5PSJub25lIjt0aGlzLmRvbS5ib3JkZXJSaWdodC5zdHlsZS5kaXNwbGF5PSJub25lIjt0aGlzLmRvbS5ib3JkZXJCb3R0b20uc3R5bGUuZGlzcGxheT0ibm9uZSI7dGhpcy5kb20uYm9yZGVyTGVmdC5zdHlsZS5kaXNwbGF5PSJub25lIjt0aGlzLnMuZHJhZy5kcmFnZ2luZz0hMTtjbGVhckludGVydmFsKHRoaXMucy5zY3JlZW4uaW50ZXJ2YWwpOwp2YXIgYj10aGlzLl9mblRhcmdldENvb3Jkcyh0aGlzLnMuZHJhZy5zdGFydFRkKSxhPXRoaXMuX2ZuVGFyZ2V0Q29vcmRzKHRoaXMucy5kcmFnLmVuZFRkKSxjPVtdLGQ7aWYoYi55PD1hLnkpe2Q9ITA7Zm9yKGk9Yi55O2k8PWEueTtpKyspYy5wdXNoKGUoInRib2R5PnRyOmVxKCIraSsiKT50ZDplcSgiK2IueCsiKSIsdGhpcy5kb20udGFibGUpWzBdKX1lbHNle2Q9ITE7Zm9yKGk9Yi55O2k+PWEueTtpLS0pYy5wdXNoKGUoInRib2R5PnRyOmVxKCIraSsiKT50ZDplcSgiK2IueCsiKSIsdGhpcy5kb20udGFibGUpWzBdKX12YXIgYj1iLngsYT0hMSxmPVtdLGc9dGhpcy5zLmNvbHVtbnNbYl0ucmVhZC5jYWxsKHRoaXMsdGhpcy5zLmRyYWcuc3RhcnRUZCksZz10aGlzLl9mblByZXAoZyk7aT0wO2ZvcihpTGVuPWMubGVuZ3RoO2k8aUxlbjtpKyspe2k9PWlMZW4tMSYmKGE9ITApO3ZhciBoPXRoaXMucy5jb2x1bW5zW2JdLnJlYWQuY2FsbCh0aGlzLGNbaV0pLGo9dGhpcy5zLmNvbHVtbnNbYl0uc3RlcC5jYWxsKHRoaXMsCmNbaV0sZyxpLGQsIlNQUllNRURJQV9BVVRPRklMTF9TVEVQUEVSIik7dGhpcy5zLmNvbHVtbnNbYl0ud3JpdGUuY2FsbCh0aGlzLGNbaV0saixhKTtmLnB1c2goe3RkOmNbaV0sbmV3VmFsdWU6aixvbGRWYWx1ZTpofSl9bnVsbCE9PXRoaXMucy5jb2x1bW5zW2JdLmNvbXBsZXRlJiZ0aGlzLnMuY29sdW1uc1tiXS5jb21wbGV0ZS5jYWxsKHRoaXMsZil9LF9mblByZXA6ZnVuY3Rpb24oYil7dmFyIGE9Yi5tYXRjaCgvW1xkXC5dKy9nKTtpZighYXx8MD09PWEubGVuZ3RoKXJldHVybntpU3RhcnQ6MCxzU3RyOmIsc1Bvc3RGaXg6IiJ9O3ZhciBjPWFbYS5sZW5ndGgtMV0sYT1wYXJzZUludChjLDEwKSxkPVJlZ0V4cCgiXiguKikiK2MrIiguKj8pJCIpLGM9Yy5tYXRjaCgvXC4vKT8iLiIrYy5zcGxpdCgiLiIpWzFdOiIiO3JldHVybntpU3RhcnQ6YSxzU3RyOmIucmVwbGFjZShkLCIkMVNQUllNRURJQV9BVVRPRklMTF9TVEVQUEVSJDIiKSxzUG9zdEZpeDpjfX0sX2ZuU3RlcDpmdW5jdGlvbihiLAphLGMsZCxlKXtiPWQ/YS5pU3RhcnQrYzphLmlTdGFydC1jO2lzTmFOKGIpJiYoYj0iIik7cmV0dXJuIGEuc1N0ci5yZXBsYWNlKGUsYithLnNQb3N0Rml4KX0sX2ZuUmVhZENlbGw6ZnVuY3Rpb24oYil7dmFyIGE9ZSgiaW5wdXQiLGIpO2lmKDA8YS5sZW5ndGgpcmV0dXJuIGUoYSkudmFsKCk7YT1lKCJzZWxlY3QiLGIpO3JldHVybiAwPGEubGVuZ3RoP2UoYSkudmFsKCk6Yi5pbm5lckhUTUx9LF9mbldyaXRlQ2VsbDpmdW5jdGlvbihiLGEsYyl7dmFyIGQ9ZSgiaW5wdXQiLGIpOzA8ZC5sZW5ndGg/ZShkKS52YWwoYSk6KGQ9ZSgic2VsZWN0IixiKSwwPGQubGVuZ3RoP2UoZCkudmFsKGEpOihiPXRoaXMucy5kdC5vSW5zdGFuY2UuZm5HZXRQb3NpdGlvbihiKSx0aGlzLnMuZHQub0luc3RhbmNlLmZuVXBkYXRlKGEsYlswXSxiWzJdLGMpKSl9LF9mbkZpbGxlckRpc3BsYXk6ZnVuY3Rpb24oYil7aWYoIXRoaXMucy5kcmFnLmRyYWdnaW5nKXt2YXIgYT0idGQiPT1iLnRhcmdldC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPwpiLnRhcmdldDplKGIudGFyZ2V0KS5wYXJlbnRzKCJ0ZCIpWzBdLGM9dGhpcy5fZm5UYXJnZXRDb29yZHMoYSkueDtpZih0aGlzLnMuY29sdW1uc1tjXS5lbmFibGUpaWYoYz10aGlzLmRvbS5maWxsZXIsIm1vdXNlb3ZlciI9PWIudHlwZSl0aGlzLmRvbS5jdXJyZW50VGFyZ2V0PWEsdGhpcy5fZm5GaWxsZXJQb3NpdGlvbihhKSxjLnN0eWxlLmRpc3BsYXk9ImJsb2NrIjtlbHNlIGlmKCFiLnJlbGF0ZWRUYXJnZXR8fCFiLnJlbGF0ZWRUYXJnZXQuY2xhc3NOYW1lLm1hdGNoKC9BdXRvRmlsbC8pKWMuc3R5bGUuZGlzcGxheT0ibm9uZSJ9fSxfZm5GaWxsZXJQb3NpdGlvbjpmdW5jdGlvbihiKXt2YXIgYT1lKGIpLm9mZnNldCgpLGM9dGhpcy5kb20uZmlsbGVyO2Muc3R5bGUudG9wPWEudG9wLXRoaXMucy5maWxsZXIuaGVpZ2h0LzItMStlKGIpLm91dGVySGVpZ2h0KCkrInB4IjtjLnN0eWxlLmxlZnQ9YS5sZWZ0LXRoaXMucy5maWxsZXIud2lkdGgvMi0xK2UoYikub3V0ZXJXaWR0aCgpKwoicHgifX07QXV0b0ZpbGwucHJvdG90eXBlLkNMQVNTPSJBdXRvRmlsbCI7QXV0b0ZpbGwuVkVSU0lPTj0iMS4xLjIiO0F1dG9GaWxsLnByb3RvdHlwZS5WRVJTSU9OPUF1dG9GaWxsLlZFUlNJT059KShqUXVlcnkpOwo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/media/js/AutoFill.min.js.gz</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/AutoFill/scrolling.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5BdXRvRmlsbCBleGFtcGxlPC90aXRsZT4KCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJjdXJyZW50U3R5bGUiPgoJCQlAaW1wb3J0ICIuLi8uLi9tZWRpYS9jc3MvZGVtb19wYWdlLmNzcyI7CgkJCUBpbXBvcnQgIi4uLy4uL21lZGlhL2Nzcy9kZW1vX3RhYmxlLmNzcyI7CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9BdXRvRmlsbC5jc3MiOwoJCTwvc3R5bGU+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5kYXRhVGFibGVzLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiIHNyYz0ibWVkaWEvanMvQXV0b0ZpbGwuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CgkJCSQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkJCQl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoewoJCQkJCSJzU2Nyb2xsWSI6IDIwMCwKCQkJCQkiYlNjcm9sbENvbGxhcHNlIjogdHJ1ZSwKCQkJCQkiYlBhZ2luYXRlIjogZmFsc2UKCQkJCX0pOwoJCQkJbmV3IEF1dG9GaWxsKCBvVGFibGUgKTsKCQkJfSApOwoJCTwvc2NyaXB0PgoJPC9oZWFkPgoJPGJvZHkgaWQ9ImR0X2V4YW1wbGUiPgoJCTxkaXYgaWQ9ImNvbnRhaW5lciI+CgkJCTxkaXYgY2xhc3M9ImZ1bGxfd2lkdGggYmlnIj4KCQkJCUF1dG9GaWxsIGV4YW1wbGUgd2l0aCBzY3JvbGxpbmcKCQkJPC9kaXY+CgkJCQoJCQk8aDE+UHJlYW1ibGU8L2gxPgoJCQk8cD4KCQkJCVdoZW4gZHJhZ2dpbmcgYW4gQXV0b0ZpbGwgaGFuZGxlLCB0aGUgdGFibGUgKGlmIERhdGFUYWJsZXMgc2Nyb2xsaW5nIGlzIGVuYWJsZWQpIG9yIHRoZSB3aW5kb3cgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IHNjcm9sbGVkLCBhcyB5b3UgYXBwcm9hY2ggdGhlIGVkZ2Ugb2YgdGhlIHNjcm9sbGluZyBjb21wb25lbnQuIFRoZSBleGFtcGxlIGJlbG93IHNob3dzIHRoZSBlZmZlY3Qgd2l0aCBEYXRhVGFibGVzIHNjcm9sbGluZyAoYW5kIGFsc28gd2luZG93IGlmIG5lZWRlZCkuCgkJCTwvcD4KCQkJCgkJCQoJCQkKCQkJPGgxPkxpdmUgZXhhbXBsZTwvaDE+CgkJCTxmb3JtPgoJCQk8ZGl2IGlkPSJkZW1vIj4KPHRhYmxlIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgYm9yZGVyPSIwIiBjbGFzcz0iZGlzcGxheSIgaWQ9ImV4YW1wbGUiPgoJPHRoZWFkPgoJCTx0cj4KCQkJPHRoPlJlbmRlcmluZyBlbmdpbmU8L3RoPgoJCQk8dGg+QnJvd3NlcjwvdGg+CgkJCTx0aD5QbGF0Zm9ybShzKTwvdGg+CgkJCTx0aD5FbmdpbmUgdmVyc2lvbjwvdGg+CgkJCTx0aD5DU1MgZ3JhZGU8L3RoPgoJCTwvdHI+Cgk8L3RoZWFkPgoJPHRmb290PgoJCTx0cj4KCQkJPHRoPlJlbmRlcmluZyBlbmdpbmU8L3RoPgoJCQk8dGg+QnJvd3NlcjwvdGg+CgkJCTx0aD5QbGF0Zm9ybShzKTwvdGg+CgkJCTx0aD5FbmdpbmUgdmVyc2lvbjwvdGg+CgkJCTx0aD5DU1MgZ3JhZGU8L3RoPgoJCTwvdHI+Cgk8L3Rmb290PgoJPHRib2R5PgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlWCI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDQuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIChFbnRpdHk6ICZhbXA7KTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQyI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjU8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNjwvdGQ+CgkJCTx0ZD5XaW4gOTgrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA3PC90ZD4KCQkJPHRkPldpbiBYUCBTUDIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+QU9MIGJyb3dzZXIgKEFPTCBkZXNrdG9wKTwvdGQ+CgkJCTx0ZD5XaW4gWFA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbyAoVVRGLTg6ICTCouKCrCk8L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjA8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMS41PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMi4wPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDMuMDwvdGQ+CgkJCTx0ZD5XaW4gMmsrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5DYW1pbm8gMS4wPC90ZD4KCQkJPHRkPk9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkNhbWlubyAxLjU8L3RkPgoJCQk8dGQ+T1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSA3LjI8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE1hYyBPUyA4LjYtOS4yPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgQnJvd3NlciA4PC90ZD4KCQkJPHRkPldpbiA5OFNFKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgTmF2aWdhdG9yIDk8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjI8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjI8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjM8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS40PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS40PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNzwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjg8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+U2VhbW9ua2V5IDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RXBpcGhhbnkgMi4yMDwvdGQ+CgkJCTx0ZD5Hbm9tZTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjI8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTI1LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMS4zPC90ZD4KCQkJPHRkPk9TWC4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMxMi44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMi4wPC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTkuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAzLjA8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUyMi4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5PbW5pV2ViIDUuNTwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+aVBvZCBUb3VjaCAvIGlQaG9uZTwvdGQ+CgkJCTx0ZD5pUG9kPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQyMC4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TNjA8L3RkPgoJCQk8dGQ+UzYwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQxMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDcuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDcuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA4LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA4LjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS4yPC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuNTwvdGQ+CgkJCTx0ZD5XaW4gODgrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIGZvciBXaWk8L3RkPgoJCQk8dGQ+V2lpPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5Ob2tpYSBOODAwPC90ZD4KCQkJPHRkPk44MDA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+TmludGVuZG8gRFMgYnJvd3NlcjwvdGQ+CgkJCTx0ZD5OaW50ZW5kbyBEUzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj44LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+Qy9BPHN1cD4xPC9zdXA+PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUMiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjE8L3RkPgoJCQk8dGQ+S0RFIDMuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjM8L3RkPgoJCQk8dGQ+S0RFIDMuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy41PC90ZD4KCQkJPHRkPktERSAzLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVYIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA0LjU8L3RkPgoJCQk8dGQ+TWFjIE9TIDgtOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQyI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4xPC90ZD4KCQkJPHRkPk1hYyBPUyA3LjYtOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVDIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjI8L3RkPgoJCQk8dGQ+TWFjIE9TIDgtWDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPk5ldEZyb250IDMuMTwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5OZXRGcm9udCAzLjQ8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkRpbGxvIDAuODwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5MaW5rczwvdGQ+CgkJCTx0ZD5UZXh0IG9ubHk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5MeW54PC90ZD4KCQkJPHRkPlRleHQgb25seTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVDIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+SUUgTW9iaWxlPC90ZD4KCQkJPHRkPldpbmRvd3MgTW9iaWxlIDY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUMiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5QU1AgYnJvd3NlcjwvdGQ+CgkJCTx0ZD5QU1A8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlVSI+CgkJCTx0ZD5PdGhlciBicm93c2VyczwvdGQ+CgkJCTx0ZD5BbGwgb3RoZXJzPC90ZD4KCQkJPHRkPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5VPC90ZD4KCQk8L3RyPgoJPC90Ym9keT4KPC90YWJsZT4KCQkJPC9kaXY+CgkJPC9mb3JtPgoJCQk8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgoJCQkKCQkJCgkJCTxoMT5FeGFtcGxlczwvaDE+CgkJCTx1bD4KCQkJCTxsaT48YSBocmVmPSJpbmRleC5odG1sIj5CYXNpYyBpbml0aWFsaXNhdGlvbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImNvbHVtbnMuaHRtbCI+U2VsZWN0aW5nIHdoaWNoIGNvbHVtbnMgdG8gcHJvdmlkZSBBdXRvRmlsbCBvbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InNjcm9sbGluZy5odG1sIj5TY3JvbGxpbmcgYSBEYXRhVGFibGUgdXNpbmcgZmlsbDwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImlucHV0cy5odG1sIj5Vc2luZyB3aXRoIGlucHV0IGVsZW1lbnRzPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iY2FsbGJhY2tzLmh0bWwiPkN1c3RvbWlzYXRpb24gdXNpbmcgY2FsbGJhY2sgZnVuY3Rpb25zPC9hPjwvbGk+CgkJCTwvdWw+CgkJCQoJCQkKCQkJPGgxPkluaXRpYWxpc2F0aW9uIGNvZGU8L2gxPgoJCQk8cHJlPiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoewoJCSJzU2Nyb2xsWSI6IDIwMCwKCQkiYlNjcm9sbENvbGxhcHNlIjogdHJ1ZSwKCQkiYlBhZ2luYXRlIjogZmFsc2UKCX0pOwoJbmV3IEF1dG9GaWxsKCBvVGFibGUgKTsKfSApOzwvcHJlPgoJCQkKCQkJPGRpdiBpZD0iZm9vdGVyIiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7Ij4KCQkJCTxzcGFuIHN0eWxlPSJmb250LXNpemU6MTBweDsiPgoJCQkJCUF1dG9GaWxsIGFuZCBEYXRhVGFibGVzICZjb3B5OyBBbGxhbiBKYXJkaW5lIDIwMDktMjAxMC48YnI+CgkJCQk8L3NwYW4+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/alt_insert.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5Db2xSZW9yZGVyIGV4YW1wbGU8L3RpdGxlPgoJCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9ImN1cnJlbnRTdHlsZSI+CgkJCUBpbXBvcnQgIi4uLy4uL21lZGlhL2Nzcy9kZW1vX3BhZ2UuY3NzIjsKCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fdGFibGUuY3NzIjsKCQkJQGltcG9ydCAibWVkaWEvY3NzL0NvbFJlb3JkZXIuY3NzIjsKCQk8L3N0eWxlPgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIuLi8uLi9tZWRpYS9qcy9qcXVlcnkuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIuLi8uLi9tZWRpYS9qcy9qcXVlcnkuZGF0YVRhYmxlcy5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Im1lZGlhL2pzL0NvbFJlb3JkZXIuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CgkJCSQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkJCQl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCQkic0RvbSI6ICdSbGZydGlwJwoJCQkJfSApOwoJCQl9ICk7CgkJPC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keSBpZD0iZHRfZXhhbXBsZSIgY2xhc3M9ImFsdCI+CgkJPGRpdiBpZD0iY29udGFpbmVyIj4KCQkJPGRpdiBjbGFzcz0iZnVsbF93aWR0aCBiaWciPgoJCQkJQ29sUmVvcmRlciBleGFtcGxlIHdpdGggYWx0ZXJuYXRpdmUgaW5zZXJ0IHN0eWxpbmcKCQkJPC9kaXY+CgkJCQoJCQk8aDE+UHJlYW1ibGU8L2gxPgoJCQk8cD5Vc2luZyBDU1MgaXQgaXMgcmVsYXRpdmVseSBlYXN5IHRvIG1vZGlmeSB0aGUgaW5zZXJ0IGJhciB0byBzdWl0IHlvdXIgd2ViLXNpdGUuIFRoaXMKCQkJCWV4YW1wbGUgc2hvd3MgaG93IGFuIGFycm93IGNhbiBiZSB1c2VkIHRvIHNob3cgdGhlIGluc2VydCBwb2ludCByYXRoZXIgdGhhbiB0aGUgc3RyYWlnaHQKCQkJCWJhciB1c2VkIGluIHRoZSBvdGhlciBleGFtcGxlcy48L3A+CgkJCQoJCQk8aDE+TGl2ZSBleGFtcGxlPC9oMT4KCQkJPGZvcm0+CgkJCTxkaXYgaWQ9ImRlbW8iPgo8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIGNsYXNzPSJkaXNwbGF5IiBpZD0iZXhhbXBsZSI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGZvb3Q+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGZvb3Q+Cgk8dGJvZHk+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVYIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNC4wPC90ZD4KCQkJPHRkPldpbiA5NSsgKEVudGl0eTogJmFtcDspPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVDIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4wPC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA2PC90ZD4KCQkJPHRkPldpbiA5OCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDc8L3RkPgoJCQk8dGQ+V2luIFhQIFNQMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5BT0wgYnJvd3NlciAoQU9MIGRlc2t0b3ApPC90ZD4KCQkJPHRkPldpbiBYUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvIChVVEYtODogJMKi4oKsKTwvdGQ+CgkJCTx0ZD5GaXJlZm94IDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjU8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAyLjA8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMy4wPC90ZD4KCQkJPHRkPldpbiAyaysgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS45PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkNhbWlubyAxLjA8L3RkPgoJCQk8dGQ+T1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuNTwvdGQ+CgkJCTx0ZD5PU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIDcuMjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gTWFjIE9TIDguNi05LjI8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSBCcm93c2VyIDg8L3RkPgoJCQk8dGQ+V2luIDk4U0UrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSBOYXZpZ2F0b3IgOTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4xPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMzwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjQ8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS42PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS43PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuODwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5TZWFtb25rZXkgMS4xPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5FcGlwaGFueSAyLjIwPC90ZD4KCQkJPHRkPkdub21lPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDEuMjwvdGQ+CgkJCTx0ZD5PU1guMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xMjUuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjM8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MzEyLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAyLjA8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQxOS4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDMuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTIyLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPk9tbmlXZWIgNS41PC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MjA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5pUG9kIFRvdWNoIC8gaVBob25lPC90ZD4KCQkJPHRkPmlQb2Q8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlM2MDwvdGQ+CgkJCTx0ZD5TNjA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDEzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgNy4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgNy41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDguMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDguNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjI8L3RkPgoJCQk8dGQ+V2luIDg4KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS41PC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgZm9yIFdpaTwvdGQ+CgkJCTx0ZD5XaWk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5va2lhIE44MDA8L3RkPgoJCQk8dGQ+TjgwMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5OaW50ZW5kbyBEUyBicm93c2VyPC90ZD4KCQkJPHRkPk5pbnRlbmRvIERTPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjguNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DL0E8c3VwPjE8L3N1cD48L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQyI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuMTwvdGQ+CgkJCTx0ZD5LREUgMy4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuMzwvdGQ+CgkJCTx0ZD5LREUgMy4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjU8L3RkPgoJCQk8dGQ+S0RFIDMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZVgiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDQuNTwvdGQ+CgkJCTx0ZD5NYWMgT1MgOC05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVDIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjE8L3RkPgoJCQk8dGQ+TWFjIE9TIDcuNi05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUMiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMjwvdGQ+CgkJCTx0ZD5NYWMgT1MgOC1YPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy4xPC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPk5ldEZyb250IDMuNDwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+RGlsbG8gMC44PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkxpbmtzPC90ZD4KCQkJPHRkPlRleHQgb25seTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkx5bng8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUMiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5JRSBNb2JpbGU8L3RkPgoJCQk8dGQ+V2luZG93cyBNb2JpbGUgNjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQyI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPlBTUCBicm93c2VyPC90ZD4KCQkJPHRkPlBTUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVVIj4KCQkJPHRkPk90aGVyIGJyb3dzZXJzPC90ZD4KCQkJPHRkPkFsbCBvdGhlcnM8L3RkPgoJCQk8dGQ+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlU8L3RkPgoJCTwvdHI+Cgk8L3Rib2R5Pgo8L3RhYmxlPgoJCQk8L2Rpdj4KCQk8L2Zvcm0+CgkJCTxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CgkJCQoJCQkKCQkJPGgxPkV4YW1wbGVzPC9oMT4KCQkJPHVsPgoJCQkJPGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkJhc2ljIGluaXRpYWxpc2F0aW9uPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iYWx0X2luc2VydC5odG1sIj5TdHlsaW5nIHRoZSBpbnNlcnQgY3Vyc29yPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iY29sX2ZpbHRlci5odG1sIj5JbmRpdmlkdWFsIGNvbHVtbiBmaWx0ZXJpbmc8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJjb2x2aXMuaHRtbCI+SW50ZWdyYXRpb24gd2l0aCBEYXRhVGFibGVzJyBDb2xWaXMgcGx1Zy1pbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImZpeGVkY29sdW1ucy5odG1sIj5JbnRlZ3JhdGlvbiB3aXRoIERhdGFUYWJsZXMnIEZpeGVkQ29sdW1ucyBwbHVnLWluPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iZml4ZWRoZWFkZXIuaHRtbCI+SW50ZWdyYXRpb24gd2l0aCBEYXRhVGFibGVzJyBGaXhlZEhlYWRlciBwbHVnLWluPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0icHJlZGVmaW5lZC5odG1sIj5Vc2luZyBhIHByZWRlZmluZWQgY29sdW1uIG9yZGVyIHNldDwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InJlc2V0Lmh0bWwiPlByb3ZpZGluZyBhIHVzZXIgY29udHJvbCB0byByZXNldCB0aGUgY29sdW1uIG9yZGVyPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ic2Nyb2xsaW5nLmh0bWwiPkNvbHVtbiByZW9yZGVyaW5nIHNob3duIHdpdGggc2Nyb2xsaW5nIGluIERhdGFUYWJsZXM8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJzZXJ2ZXJfc2lkZS5odG1sIj5TZXJ2ZXItc2lkZSBwcm9jZXNzaW5nIHN1cHBvcnQ8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJzdGF0ZV9zYXZlLmh0bWwiPlN0YXRlIHNhdmluZyBvZiB0aGUgY29sdW1uIHBvc2l0aW9uPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0idGhlbWUuaHRtbCI+alF1ZXJ5IFVJIHRoZW1lIGludGVncmF0aW9uPC9hPjwvbGk+CgkJCTwvdWw+CgkJCQoJCQkKCQkJPGgxPkluaXRpYWxpc2F0aW9uIGNvZGU8L2gxPgoJCQk8cHJlPiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0RvbSI6ICdSbGZydGlwJwoJfSApOwp9ICk7PC9wcmU+CgkJCQoJCQk8ZGl2IGlkPSJmb290ZXIiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjsiPgoJCQkJPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMHB4OyI+CgkJCQkJQ29sUmVvcmRlciBhbmQgRGF0YVRhYmxlcyAmY29weTsgQWxsYW4gSmFyZGluZSAyMDEwCgkJCQk8L3NwYW4+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/colvis.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5Db2xSZW9yZGVyIGV4YW1wbGU8L3RpdGxlPgoJCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9ImN1cnJlbnRTdHlsZSI+CgkJCUBpbXBvcnQgIi4uLy4uL21lZGlhL2Nzcy9kZW1vX3BhZ2UuY3NzIjsKCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fdGFibGUuY3NzIjsKCQkJQGltcG9ydCAibWVkaWEvY3NzL0NvbFJlb3JkZXIuY3NzIjsKCQkJQGltcG9ydCAiLi4vQ29sVmlzL21lZGlhL2Nzcy9Db2xWaXMuY3NzIjsKCQk8L3N0eWxlPgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIuLi8uLi9tZWRpYS9qcy9qcXVlcnkuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIuLi8uLi9tZWRpYS9qcy9qcXVlcnkuZGF0YVRhYmxlcy5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Im1lZGlhL2pzL0NvbFJlb3JkZXIuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIuLi9Db2xWaXMvbWVkaWEvanMvQ29sVmlzLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgoJCQkkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJCQkJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkJInNEb20iOiAnUkM8ImNsZWFyIj5sZnJ0aXAnLAoJCQkJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCQkJCXsgImJWaXNpYmxlIjogZmFsc2UsICJhVGFyZ2V0cyI6IFsgMSBdIH0KCQkJCQldCgkJCQl9ICk7CgkJCX0gKTsKCQk8L3NjcmlwdD4KCTwvaGVhZD4KCTxib2R5IGlkPSJkdF9leGFtcGxlIj4KCQk8ZGl2IGlkPSJjb250YWluZXIiPgoJCQk8ZGl2IGNsYXNzPSJmdWxsX3dpZHRoIGJpZyI+CgkJCQlDb2xSZW9yZGVyIGV4YW1wbGUgd2l0aCBDb2xWaXMKCQkJPC9kaXY+CgkJCQoJCQk8aDE+UHJlYW1ibGU8L2gxPgoJCQk8cD5UaGUgQ29sUmVvcmRlciBwbHVnLWluIGludGVyYWN0cyB3aXRoIHRoZSBDb2xWaXMgcGx1Zy1pbiBmb3IgRGF0YVRhYmxlcyBieSB1cGRhdGluZyB0aGUKCQkJCW9yZGVyIG9mIHRoZSBsaXN0IG9mIGNvbHVtbnMgd2hlbmV2ZXIgYSByZW9yZGVyIGlzIGRvbmUuIFRoaXMgaXMgc2hvd24gaW4gdGhlIGV4YW1wbGUKCQkJCWJlbG93LCB3aGVyZSBvbmUgY29sdW1uIGhhcyBiZWVuIGhpZGRlbiBieSBkZWZhdWx0IHRvIGFkZCBleHRyYSBlbXBoYXNpcyB0byBDb2xWaXMuPC9wPgoJCQkKCQkJPGgxPkxpdmUgZXhhbXBsZTwvaDE+CgkJCTxmb3JtPgoJCQk8ZGl2IGlkPSJkZW1vIj4KPHRhYmxlIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgYm9yZGVyPSIwIiBjbGFzcz0iZGlzcGxheSIgaWQ9ImV4YW1wbGUiPgoJPHRoZWFkPgoJCTx0cj4KCQkJPHRoPlJlbmRlcmluZyBlbmdpbmU8L3RoPgoJCQk8dGg+QnJvd3NlcjwvdGg+CgkJCTx0aD5QbGF0Zm9ybShzKTwvdGg+CgkJCTx0aD5FbmdpbmUgdmVyc2lvbjwvdGg+CgkJCTx0aD5DU1MgZ3JhZGU8L3RoPgoJCTwvdHI+Cgk8L3RoZWFkPgoJPHRmb290PgoJCTx0cj4KCQkJPHRoPlJlbmRlcmluZyBlbmdpbmU8L3RoPgoJCQk8dGg+QnJvd3NlcjwvdGg+CgkJCTx0aD5QbGF0Zm9ybShzKTwvdGg+CgkJCTx0aD5FbmdpbmUgdmVyc2lvbjwvdGg+CgkJCTx0aD5DU1MgZ3JhZGU8L3RoPgoJCTwvdHI+Cgk8L3Rmb290PgoJPHRib2R5PgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlWCI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDQuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIChFbnRpdHk6ICZhbXA7KTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQyI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjU8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNjwvdGQ+CgkJCTx0ZD5XaW4gOTgrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA3PC90ZD4KCQkJPHRkPldpbiBYUCBTUDIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+QU9MIGJyb3dzZXIgKEFPTCBkZXNrdG9wKTwvdGQ+CgkJCTx0ZD5XaW4gWFA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbyAoVVRGLTg6ICTCouKCrCk8L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjA8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMS41PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMi4wPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDMuMDwvdGQ+CgkJCTx0ZD5XaW4gMmsrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5DYW1pbm8gMS4wPC90ZD4KCQkJPHRkPk9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkNhbWlubyAxLjU8L3RkPgoJCQk8dGQ+T1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSA3LjI8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE1hYyBPUyA4LjYtOS4yPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgQnJvd3NlciA4PC90ZD4KCQkJPHRkPldpbiA5OFNFKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgTmF2aWdhdG9yIDk8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjI8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjI8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjM8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS40PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS40PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNzwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjg8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+U2VhbW9ua2V5IDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RXBpcGhhbnkgMi4yMDwvdGQ+CgkJCTx0ZD5Hbm9tZTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjI8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTI1LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMS4zPC90ZD4KCQkJPHRkPk9TWC4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMxMi44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMi4wPC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTkuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAzLjA8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUyMi4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5PbW5pV2ViIDUuNTwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+aVBvZCBUb3VjaCAvIGlQaG9uZTwvdGQ+CgkJCTx0ZD5pUG9kPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQyMC4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TNjA8L3RkPgoJCQk8dGQ+UzYwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQxMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDcuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDcuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA4LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA4LjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS4yPC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuNTwvdGQ+CgkJCTx0ZD5XaW4gODgrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIGZvciBXaWk8L3RkPgoJCQk8dGQ+V2lpPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5Ob2tpYSBOODAwPC90ZD4KCQkJPHRkPk44MDA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+TmludGVuZG8gRFMgYnJvd3NlcjwvdGQ+CgkJCTx0ZD5OaW50ZW5kbyBEUzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj44LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+Qy9BPHN1cD4xPC9zdXA+PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUMiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjE8L3RkPgoJCQk8dGQ+S0RFIDMuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjM8L3RkPgoJCQk8dGQ+S0RFIDMuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy41PC90ZD4KCQkJPHRkPktERSAzLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVYIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA0LjU8L3RkPgoJCQk8dGQ+TWFjIE9TIDgtOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQyI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4xPC90ZD4KCQkJPHRkPk1hYyBPUyA3LjYtOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVDIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjI8L3RkPgoJCQk8dGQ+TWFjIE9TIDgtWDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPk5ldEZyb250IDMuMTwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5OZXRGcm9udCAzLjQ8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkRpbGxvIDAuODwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5MaW5rczwvdGQ+CgkJCTx0ZD5UZXh0IG9ubHk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5MeW54PC90ZD4KCQkJPHRkPlRleHQgb25seTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVDIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+SUUgTW9iaWxlPC90ZD4KCQkJPHRkPldpbmRvd3MgTW9iaWxlIDY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUMiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5QU1AgYnJvd3NlcjwvdGQ+CgkJCTx0ZD5QU1A8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlVSI+CgkJCTx0ZD5PdGhlciBicm93c2VyczwvdGQ+CgkJCTx0ZD5BbGwgb3RoZXJzPC90ZD4KCQkJPHRkPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5VPC90ZD4KCQk8L3RyPgoJPC90Ym9keT4KPC90YWJsZT4KCQkJPC9kaXY+CgkJPC9mb3JtPgoJCQk8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgoJCQkKCQkJCgkJCTxoMT5FeGFtcGxlczwvaDE+CgkJCTx1bD4KCQkJCTxsaT48YSBocmVmPSJpbmRleC5odG1sIj5CYXNpYyBpbml0aWFsaXNhdGlvbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImFsdF9pbnNlcnQuaHRtbCI+U3R5bGluZyB0aGUgaW5zZXJ0IGN1cnNvcjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImNvbF9maWx0ZXIuaHRtbCI+SW5kaXZpZHVhbCBjb2x1bW4gZmlsdGVyaW5nPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iY29sdmlzLmh0bWwiPkludGVncmF0aW9uIHdpdGggRGF0YVRhYmxlcycgQ29sVmlzIHBsdWctaW48L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJmaXhlZGNvbHVtbnMuaHRtbCI+SW50ZWdyYXRpb24gd2l0aCBEYXRhVGFibGVzJyBGaXhlZENvbHVtbnMgcGx1Zy1pbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImZpeGVkaGVhZGVyLmh0bWwiPkludGVncmF0aW9uIHdpdGggRGF0YVRhYmxlcycgRml4ZWRIZWFkZXIgcGx1Zy1pbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InByZWRlZmluZWQuaHRtbCI+VXNpbmcgYSBwcmVkZWZpbmVkIGNvbHVtbiBvcmRlciBzZXQ8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJyZXNldC5odG1sIj5Qcm92aWRpbmcgYSB1c2VyIGNvbnRyb2wgdG8gcmVzZXQgdGhlIGNvbHVtbiBvcmRlcjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InNjcm9sbGluZy5odG1sIj5Db2x1bW4gcmVvcmRlcmluZyBzaG93biB3aXRoIHNjcm9sbGluZyBpbiBEYXRhVGFibGVzPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ic2VydmVyX3NpZGUuaHRtbCI+U2VydmVyLXNpZGUgcHJvY2Vzc2luZyBzdXBwb3J0PC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ic3RhdGVfc2F2ZS5odG1sIj5TdGF0ZSBzYXZpbmcgb2YgdGhlIGNvbHVtbiBwb3NpdGlvbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InRoZW1lLmh0bWwiPmpRdWVyeSBVSSB0aGVtZSBpbnRlZ3JhdGlvbjwvYT48L2xpPgoJCQk8L3VsPgoJCQkKCQkJCgkJCTxoMT5Jbml0aWFsaXNhdGlvbiBjb2RlPC9oMT4KCQkJPHByZT4kKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNEb20iOiAnUkMmbHQ7ImNsZWFyIiZndDtsZnJ0aXAnLAoJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCXsgImJWaXNpYmxlIjogZmFsc2UsICJhVGFyZ2V0cyI6IFsgMSBdIH0KCQldCgl9ICk7Cn0gKTs8L3ByZT4KCQkJCgkJCTxkaXYgaWQ9ImZvb3RlciIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyOyI+CgkJCQk8c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwcHg7Ij4KCQkJCQlDb2xSZW9yZGVyIGFuZCBEYXRhVGFibGVzICZjb3B5OyBBbGxhbiBKYXJkaW5lIDIwMTAKCQkJCTwvc3Bhbj4KCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2JvZHk+CjwvaHRtbD4=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/col_filter.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5Db2xSZW9yZGVyIGV4YW1wbGU8L3RpdGxlPgoJCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9ImN1cnJlbnRTdHlsZSI+CgkJCUBpbXBvcnQgIi4uLy4uL21lZGlhL2Nzcy9kZW1vX3BhZ2UuY3NzIjsKCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fdGFibGUuY3NzIjsKCQkJQGltcG9ydCAibWVkaWEvY3NzL0NvbFJlb3JkZXIuY3NzIjsKCQkJQGltcG9ydCAiLi4vQ29sVmlzL21lZGlhL2Nzcy9Db2xWaXMuY3NzIjsKCQkJdGhlYWQgaW5wdXQgeyB3aWR0aDogMTAwJSB9CgkJCWlucHV0LnNlYXJjaF9pbml0IHsgY29sb3I6ICM5OTkgfQoJCTwvc3R5bGU+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5kYXRhVGFibGVzLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiIHNyYz0ibWVkaWEvanMvQ29sUmVvcmRlci5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uL0NvbFZpcy9tZWRpYS9qcy9Db2xWaXMuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CgkJCSQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgewoJCQkJdmFyIG9UYWJsZTsKCQkJCQoJCQkJLyogQWRkIHRoZSBldmVudHMgZXRjIGJlZm9yZSBEYXRhVGFibGVzIGhpZGVzIGEgY29sdW1uICovCgkJCQkkKCJ0aGVhZCBpbnB1dCIpLmtleXVwKCBmdW5jdGlvbiAoKSB7CgkJCQkJLyogRmlsdGVyIG9uIHRoZSBjb2x1bW4gKHRoZSBpbmRleCkgb2YgdGhpcyBlbGVtZW50ICovCgkJCQkJb1RhYmxlLmZuRmlsdGVyKCB0aGlzLnZhbHVlLCBvVGFibGUub0FwaS5fZm5WaXNpYmxlVG9Db2x1bW5JbmRleCggCgkJCQkJCW9UYWJsZS5mblNldHRpbmdzKCksICQoInRoZWFkIGlucHV0IikuaW5kZXgodGhpcykgKSApOwoJCQkJfSApOwoJCQkJCgkJCQkvKgoJCQkJICogU3VwcG9ydCBmdW5jdGlvbnMgdG8gcHJvdmlkZSBhIGxpdHRsZSBiaXQgb2YgJ3VzZXIgZnJpZW5kbHluZXNzJyB0byB0aGUgdGV4dGJveGVzCgkJCQkgKi8KCQkJCSQoInRoZWFkIGlucHV0IikuZWFjaCggZnVuY3Rpb24gKGkpIHsKCQkJCQl0aGlzLmluaXRWYWwgPSB0aGlzLnZhbHVlOwoJCQkJfSApOwoJCQkJCgkJCQkkKCJ0aGVhZCBpbnB1dCIpLmZvY3VzKCBmdW5jdGlvbiAoKSB7CgkJCQkJaWYgKCB0aGlzLmNsYXNzTmFtZSA9PSAic2VhcmNoX2luaXQiICkKCQkJCQl7CgkJCQkJCXRoaXMuY2xhc3NOYW1lID0gIiI7CgkJCQkJCXRoaXMudmFsdWUgPSAiIjsKCQkJCQl9CgkJCQl9ICk7CgkJCQkKCQkJCSQoInRoZWFkIGlucHV0IikuYmx1ciggZnVuY3Rpb24gKGkpIHsKCQkJCQlpZiAoIHRoaXMudmFsdWUgPT0gIiIgKQoJCQkJCXsKCQkJCQkJdGhpcy5jbGFzc05hbWUgPSAic2VhcmNoX2luaXQiOwoJCQkJCQl0aGlzLnZhbHVlID0gdGhpcy5pbml0VmFsOwoJCQkJCX0KCQkJCX0gKTsKCQkJCQoJCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCQkic0RvbSI6ICdSQzwiY2xlYXIiPmxmcnRpcCcsCgkJCQkJImFvQ29sdW1uRGVmcyI6IFsKCQkJCQkJeyAiYlZpc2libGUiOiBmYWxzZSwgImFUYXJnZXRzIjogWyAyIF0gfQoJCQkJCV0sCgkJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkJInNTZWFyY2giOiAiU2VhcmNoIGFsbCBjb2x1bW5zOiIKCQkJCQl9LAoJCQkJCSJiU29ydENlbGxzVG9wIjogdHJ1ZQoJCQkJfSApOwoJCQl9ICk7CgkJPC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keSBpZD0iZHRfZXhhbXBsZSI+CgkJPGRpdiBpZD0iY29udGFpbmVyIj4KCQkJPGRpdiBjbGFzcz0iZnVsbF93aWR0aCBiaWciPgoJCQkJQ29sUmVvcmRlciBleGFtcGxlIHdpdGggaW5kaXZpZHVhbCBjb2x1bW4gZmlsdGVyaW5nCgkJCTwvZGl2PgoJCQkKCQkJPGgxPlByZWFtYmxlPC9oMT4KCQkJPHA+VGhpcyBleGFtcGxlIG9mIGhvdyB0byB1c2UgQ29sUmVvcmRlciBzaG93cyBxdWl0ZSBhIG51bWJlciBvZiBkaWZmZXJlbnQgaW50ZXJlc3RpbmcgCgkJCQlwcm9wZXJ0aWVzLiBGaXJzdGx5LCB0aGVyZSBpcyBpbnRlZ3JhdGlvbiB3aXRoIENvbFZpcywgdGhlbiB0aGVyZSBpcyB0aGUgZmFjdCB0aGF0IHRoZXJlCgkJCQlpcyBtb3JlIHRoYW4gb25lIHJvdyBpbiB0aGUgdGFibGUgaGVhZGVyIHdpdGggdGhlIHNlY29uZCBiZWluZyB1c2VkIGZvciB0aGUgaW5wdXQKCQkJCWVsZW1lbnRzLCBhbmQgZmluYWxseSBvZiBjb3Vyc2UgdGhlIGZpbHRlcmluZyBpdHNlbGYuIE5vdGUgdGhhdCBpdCBpcyBpbXBvcnRhbnQgdG8gdXNlCgkJCQl0aGUgX2ZuVmlzaWJsZVRvQ29sdW1uSW5kZXgoKSBpbnRlcm5hbCBmdW5jdGlvbiB0byBjYWxjdWxhdGUgd2hpY2ggY29sdW1uIGluZGV4IHNob3VsZAoJCQkJYmUgZ2l2ZW4gdG8gZm5GaWx0ZXIgKG9yIHlvdSBjb3VsZCBlbXBsb3kgeW91ciBvd24gbWV0aG9kcykuPC9wPgoJCQk8cD5QbGVhc2Ugbm90ZSB0aGF0IHRoaXMgZGVtbyByZXF1aXJlcyBEYXRhVGFibGVzIDEuOCBvciBsYXRlci48L3A+CgkJCQoJCQk8aDE+TGl2ZSBleGFtcGxlPC9oMT4KCQkJPGZvcm0+CgkJCTxkaXYgaWQ9ImRlbW8iPgo8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIGNsYXNzPSJkaXNwbGF5IiBpZD0iZXhhbXBsZSI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ic2VhcmNoX2VuZ2luZSIgdmFsdWU9IlNlYXJjaCBlbmdpbmVzIiBjbGFzcz0ic2VhcmNoX2luaXQiIC8+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJzZWFyY2hfYnJvd3NlciIgdmFsdWU9IlNlYXJjaCBicm93c2VycyIgY2xhc3M9InNlYXJjaF9pbml0IiAvPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ic2VhcmNoX3BsYXRmb3JtIiB2YWx1ZT0iU2VhcmNoIHBsYXRmb3JtcyIgY2xhc3M9InNlYXJjaF9pbml0IiAvPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ic2VhcmNoX3ZlcnNpb24iIHZhbHVlPSJTZWFyY2ggdmVyc2lvbnMiIGNsYXNzPSJzZWFyY2hfaW5pdCIgLz48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InNlYXJjaF9ncmFkZSIgdmFsdWU9IlNlYXJjaCBncmFkZXMiIGNsYXNzPSJzZWFyY2hfaW5pdCIgLz48L3RkPgoJCTwvdHI+Cgk8L3RoZWFkPgoJPHRmb290PgoJCTx0cj4KCQkJPHRoPlJlbmRlcmluZyBlbmdpbmU8L3RoPgoJCQk8dGg+QnJvd3NlcjwvdGg+CgkJCTx0aD5QbGF0Zm9ybShzKTwvdGg+CgkJCTx0aD5FbmdpbmUgdmVyc2lvbjwvdGg+CgkJCTx0aD5DU1MgZ3JhZGU8L3RoPgoJCTwvdHI+Cgk8L3Rmb290PgoJPHRib2R5PgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlWCI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDQuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIChFbnRpdHk6ICZhbXA7KTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQyI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjU8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNjwvdGQ+CgkJCTx0ZD5XaW4gOTgrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA3PC90ZD4KCQkJPHRkPldpbiBYUCBTUDIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+QU9MIGJyb3dzZXIgKEFPTCBkZXNrdG9wKTwvdGQ+CgkJCTx0ZD5XaW4gWFA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbyAoVVRGLTg6ICTCouKCrCk8L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjA8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMS41PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMi4wPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDMuMDwvdGQ+CgkJCTx0ZD5XaW4gMmsrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5DYW1pbm8gMS4wPC90ZD4KCQkJPHRkPk9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkNhbWlubyAxLjU8L3RkPgoJCQk8dGQ+T1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSA3LjI8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE1hYyBPUyA4LjYtOS4yPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgQnJvd3NlciA4PC90ZD4KCQkJPHRkPldpbiA5OFNFKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgTmF2aWdhdG9yIDk8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjI8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjI8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjM8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS40PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS40PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNzwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjg8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+U2VhbW9ua2V5IDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RXBpcGhhbnkgMi4yMDwvdGQ+CgkJCTx0ZD5Hbm9tZTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjI8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTI1LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMS4zPC90ZD4KCQkJPHRkPk9TWC4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMxMi44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMi4wPC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTkuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAzLjA8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUyMi4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5PbW5pV2ViIDUuNTwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+aVBvZCBUb3VjaCAvIGlQaG9uZTwvdGQ+CgkJCTx0ZD5pUG9kPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQyMC4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TNjA8L3RkPgoJCQk8dGQ+UzYwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQxMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDcuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDcuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA4LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA4LjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS4yPC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuNTwvdGQ+CgkJCTx0ZD5XaW4gODgrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIGZvciBXaWk8L3RkPgoJCQk8dGQ+V2lpPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5Ob2tpYSBOODAwPC90ZD4KCQkJPHRkPk44MDA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+TmludGVuZG8gRFMgYnJvd3NlcjwvdGQ+CgkJCTx0ZD5OaW50ZW5kbyBEUzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj44LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+Qy9BPHN1cD4xPC9zdXA+PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUMiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjE8L3RkPgoJCQk8dGQ+S0RFIDMuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjM8L3RkPgoJCQk8dGQ+S0RFIDMuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy41PC90ZD4KCQkJPHRkPktERSAzLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVYIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA0LjU8L3RkPgoJCQk8dGQ+TWFjIE9TIDgtOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQyI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4xPC90ZD4KCQkJPHRkPk1hYyBPUyA3LjYtOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVDIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjI8L3RkPgoJCQk8dGQ+TWFjIE9TIDgtWDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPk5ldEZyb250IDMuMTwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5OZXRGcm9udCAzLjQ8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkRpbGxvIDAuODwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5MaW5rczwvdGQ+CgkJCTx0ZD5UZXh0IG9ubHk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5MeW54PC90ZD4KCQkJPHRkPlRleHQgb25seTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVDIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+SUUgTW9iaWxlPC90ZD4KCQkJPHRkPldpbmRvd3MgTW9iaWxlIDY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUMiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5QU1AgYnJvd3NlcjwvdGQ+CgkJCTx0ZD5QU1A8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlVSI+CgkJCTx0ZD5PdGhlciBicm93c2VyczwvdGQ+CgkJCTx0ZD5BbGwgb3RoZXJzPC90ZD4KCQkJPHRkPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5VPC90ZD4KCQk8L3RyPgoJPC90Ym9keT4KPC90YWJsZT4KCQkJPC9kaXY+CgkJPC9mb3JtPgoJCQk8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgoJCQkKCQkJCgkJCTxoMT5FeGFtcGxlczwvaDE+CgkJCTx1bD4KCQkJCTxsaT48YSBocmVmPSJpbmRleC5odG1sIj5CYXNpYyBpbml0aWFsaXNhdGlvbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImFsdF9pbnNlcnQuaHRtbCI+U3R5bGluZyB0aGUgaW5zZXJ0IGN1cnNvcjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImNvbF9maWx0ZXIuaHRtbCI+SW5kaXZpZHVhbCBjb2x1bW4gZmlsdGVyaW5nPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iY29sdmlzLmh0bWwiPkludGVncmF0aW9uIHdpdGggRGF0YVRhYmxlcycgQ29sVmlzIHBsdWctaW48L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJmaXhlZGNvbHVtbnMuaHRtbCI+SW50ZWdyYXRpb24gd2l0aCBEYXRhVGFibGVzJyBGaXhlZENvbHVtbnMgcGx1Zy1pbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImZpeGVkaGVhZGVyLmh0bWwiPkludGVncmF0aW9uIHdpdGggRGF0YVRhYmxlcycgRml4ZWRIZWFkZXIgcGx1Zy1pbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InByZWRlZmluZWQuaHRtbCI+VXNpbmcgYSBwcmVkZWZpbmVkIGNvbHVtbiBvcmRlciBzZXQ8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJyZXNldC5odG1sIj5Qcm92aWRpbmcgYSB1c2VyIGNvbnRyb2wgdG8gcmVzZXQgdGhlIGNvbHVtbiBvcmRlcjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InNjcm9sbGluZy5odG1sIj5Db2x1bW4gcmVvcmRlcmluZyBzaG93biB3aXRoIHNjcm9sbGluZyBpbiBEYXRhVGFibGVzPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ic2VydmVyX3NpZGUuaHRtbCI+U2VydmVyLXNpZGUgcHJvY2Vzc2luZyBzdXBwb3J0PC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ic3RhdGVfc2F2ZS5odG1sIj5TdGF0ZSBzYXZpbmcgb2YgdGhlIGNvbHVtbiBwb3NpdGlvbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InRoZW1lLmh0bWwiPmpRdWVyeSBVSSB0aGVtZSBpbnRlZ3JhdGlvbjwvYT48L2xpPgoJCQk8L3VsPgoJCQkKCQkJCgkJCTxoMT5Jbml0aWFsaXNhdGlvbiBjb2RlPC9oMT4KCQkJPHByZT4kKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKCXZhciBvVGFibGU7CgkKCS8qIEFkZCB0aGUgZXZlbnRzIGV0YyBiZWZvcmUgRGF0YVRhYmxlcyBoaWRlcyBhIGNvbHVtbiAqLwoJJCgidGhlYWQgaW5wdXQiKS5rZXl1cCggZnVuY3Rpb24gKCkgewoJCS8qIEZpbHRlciBvbiB0aGUgY29sdW1uICh0aGUgaW5kZXgpIG9mIHRoaXMgZWxlbWVudCAqLwoJCW9UYWJsZS5mbkZpbHRlciggdGhpcy52YWx1ZSwgb1RhYmxlLm9BcGkuX2ZuVmlzaWJsZVRvQ29sdW1uSW5kZXgoIAoJCQlvVGFibGUuZm5TZXR0aW5ncygpLCAkKCJ0aGVhZCBpbnB1dCIpLmluZGV4KHRoaXMpICkgKTsKCX0gKTsKCQoJLyoKCSAqIFN1cHBvcnQgZnVuY3Rpb25zIHRvIHByb3ZpZGUgYSBsaXR0bGUgYml0IG9mICd1c2VyIGZyaWVuZGx5bmVzcycgdG8gdGhlIHRleHRib3hlcwoJICovCgkkKCJ0aGVhZCBpbnB1dCIpLmVhY2goIGZ1bmN0aW9uIChpKSB7CgkJdGhpcy5pbml0VmFsID0gdGhpcy52YWx1ZTsKCX0gKTsKCQoJJCgidGhlYWQgaW5wdXQiKS5mb2N1cyggZnVuY3Rpb24gKCkgewoJCWlmICggdGhpcy5jbGFzc05hbWUgPT0gInNlYXJjaF9pbml0IiApCgkJewoJCQl0aGlzLmNsYXNzTmFtZSA9ICIiOwoJCQl0aGlzLnZhbHVlID0gIiI7CgkJfQoJfSApOwoJCgkkKCJ0aGVhZCBpbnB1dCIpLmJsdXIoIGZ1bmN0aW9uIChpKSB7CgkJaWYgKCB0aGlzLnZhbHVlID09ICIiICkKCQl7CgkJCXRoaXMuY2xhc3NOYW1lID0gInNlYXJjaF9pbml0IjsKCQkJdGhpcy52YWx1ZSA9IHRoaXMuaW5pdFZhbDsKCQl9Cgl9ICk7CgkKCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNEb20iOiAnUkMmbHQ7ImNsZWFyIiZndDtsZnJ0aXAnLAoJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCXsgImJWaXNpYmxlIjogZmFsc2UsICJhVGFyZ2V0cyI6IFsgMiBdIH0KCQldLAoJCSJvTGFuZ3VhZ2UiOiB7CgkJCSJzU2VhcmNoIjogIlNlYXJjaCBhbGwgY29sdW1uczoiCgkJfSwKCQkiYlNvcnRDZWxsc1RvcCI6IHRydWUKCX0gKTsKfSApOzwvcHJlPgoJCQkKCQkJPGRpdiBpZD0iZm9vdGVyIiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7Ij4KCQkJCTxzcGFuIHN0eWxlPSJmb250LXNpemU6MTBweDsiPgoJCQkJCUNvbFJlb3JkZXIgYW5kIERhdGFUYWJsZXMgJmNvcHk7IEFsbGFuIEphcmRpbmUgMjAxMAoJCQkJPC9zcGFuPgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/fixedcolumns.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5Db2xSZW9yZGVyIGV4YW1wbGU8L3RpdGxlPgoJCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9ImN1cnJlbnRTdHlsZSI+CgkJCUBpbXBvcnQgIi4uLy4uL21lZGlhL2Nzcy9kZW1vX3BhZ2UuY3NzIjsKCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fdGFibGUuY3NzIjsKCQkJQGltcG9ydCAibWVkaWEvY3NzL0NvbFJlb3JkZXIuY3NzIjsKCQkJLkZpeGVkQ29sdW1uc19DbG9uZWQgdGggeyBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgfQoJCQl0ZC5pbmRleCB7IGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCBibGFjazsgfQoJCQl0YWJsZS5kaXNwbGF5IHRoLnNvcnRpbmdfZGlzYWJsZWQgeyBib3JkZXItYm90dG9tOiAxcHggc29saWQgd2hpdGU7IH0KCQk8L3N0eWxlPgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIuLi8uLi9tZWRpYS9qcy9qcXVlcnkuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIuLi8uLi9tZWRpYS9qcy9qcXVlcnkuZGF0YVRhYmxlcy5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Im1lZGlhL2pzL0NvbFJlb3JkZXIuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIuLi9GaXhlZENvbHVtbnMvbWVkaWEvanMvRml4ZWRDb2x1bW5zLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgoJCQkkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJCQkJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkJInNEb20iOiAnUmxmcnRpcCcsCgkJCQkJInNTY3JvbGxYIjogIjEwMCUiLAoJCQkJCSJzU2Nyb2xsWElubmVyIjogIjE1MCUiLAoJCQkJCSJiU2Nyb2xsQ29sbGFwc2UiOiB0cnVlLAoJCQkJCSJmbkRyYXdDYWxsYmFjayI6IGZ1bmN0aW9uICggb1NldHRpbmdzICkgewoJCQkJCQkvKiBOZWVkIHRvIHJlZG8gdGhlIGNvdW50ZXJzIGlmIGZpbHRlcmVkIG9yIHNvcnRlZCAqLwoJCQkJCQlpZiAoIG9TZXR0aW5ncy5iU29ydGVkIHx8IG9TZXR0aW5ncy5iRmlsdGVyZWQgKSB7CgkJCQkJCQlmb3IgKCB2YXIgaT0wLCBpTGVuPW9TZXR0aW5ncy5haURpc3BsYXkubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkgewoJCQkJCQkJCSQoJ3RkOmVxKDApJywgb1NldHRpbmdzLmFvRGF0YVsgb1NldHRpbmdzLmFpRGlzcGxheVtpXSBdLm5UciApLmh0bWwoIGkrMSApOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfSwKCQkJCQkiYW9Db2x1bW5EZWZzIjogWwoJCQkJCQl7ICJiU29ydGFibGUiOiBmYWxzZSwgInNDbGFzcyI6ICJpbmRleCIsICJhVGFyZ2V0cyI6IFsgMCBdIH0KCQkJCQldLAoJCQkJCSJhYVNvcnRpbmciOiBbWyAxLCAnYXNjJyBdXSwKCQkJCQkib0NvbFJlb3JkZXIiOiB7CgkJCQkJCSJpRml4ZWRDb2x1bW5zIjogMQoJCQkJCX0KCQkJCX0gKTsKCQkJCW5ldyBGaXhlZENvbHVtbnMoIG9UYWJsZSApOwoJCQl9ICk7CgkJPC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keSBpZD0iZHRfZXhhbXBsZSI+CgkJPGRpdiBpZD0iY29udGFpbmVyIj4KCQkJPGRpdiBjbGFzcz0iZnVsbF93aWR0aCBiaWciPgoJCQkJQ29sUmVvcmRlciBleGFtcGxlIHdpdGggRml4ZWRDb2x1bW5zCgkJCTwvZGl2PgoJCQkKCQkJPGgxPlByZWFtYmxlPC9oMT4KCQkJPHA+V2hpbGUgQ29sUmVvcmRlciB3b3JrcyBncmVhdCB3aXRoIHNjcm9sbGluZyBpbiBEYXRhVGFibGVzIChhbmQgdGh1cyBGaXhlZENvbHVtbnMpLCAKCQkJCWl0IGFsc28gcHJlc2VudHMgYW4gYWRkaXRpb25hbCBvcHRpb24gY2FsbGVkICdpRml4ZWRDb2x1bW5zJyB3aGljaCBhbGxvd3MgeW91IHRvIG5vdAoJCQkJbGV0IHRoZSB1c2VyIHJlb3JkZXIgY2VydGFpbiBjb2x1bW5zIChzcGVjaWZpYyB0aGUgbnVtYmVyIGdpdmVuLCBjb3VudGluZyBsZWZ0IHRvCgkJCQlyaWdodCkuIFNvIGluIHRoZSBjYXNlIG9mIEZpeGVkQ29sdW1ucyB0aGlzIGlzIHVzZWZ1bCBiZWNhdXNlIHlvdSB0eXBpY2FsbHkgd29uJ3Qgd2FudAoJCQkJdG8gbGV0IHlvdXIgZml4ZWQgY29sdW1uIGJlIHJlb3JkZXJlZC4gVGhpcyBpcyBzaG93biBiZWxvdyBpbiB0aGUgRml4ZWRDb2x1bW5zIGluZGV4IGNvbHVtbgoJCQkJZXhhbXBsZS48L3A+CgkJCQoJCQk8aDE+TGl2ZSBleGFtcGxlPC9oMT4KCQkJPGZvcm0+CgkJCTxkaXYgaWQ9ImRlbW8iPgo8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIGNsYXNzPSJkaXNwbGF5IiBpZD0iZXhhbXBsZSI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGggd2lkdGg9IjMlIj4mbmJzcDs8L3RoPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGJvZHk+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNC4wPC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjI8L3RkPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDUuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zPC90ZD4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA1LjU8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40PC90ZD4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA2PC90ZD4KCQkJPHRkPldpbiA5OCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjU8L3RkPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA3PC90ZD4KCQkJPHRkPldpbiBYUCBTUDIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj42PC90ZD4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+QU9MIGJyb3dzZXIgKEFPTCBkZXNrdG9wKTwvdGQ+CgkJCTx0ZD5XaW4gWFA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjc8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjA8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj44PC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMS41PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+OTwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDIuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEwPC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMy4wPC90ZD4KCQkJPHRkPldpbiAyaysgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS45PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTE8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuMDwvdGQ+CgkJCTx0ZD5PU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTI8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuNTwvdGQ+CgkJCTx0ZD5PU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTM8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgNy4yPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBNYWMgT1MgOC42LTkuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xNDwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSBCcm93c2VyIDg8L3RkPgoJCQk8dGQ+V2luIDk4U0UrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE1PC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIE5hdmlnYXRvciA5PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTY8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTc8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjE8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xODwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE5PC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4zPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MjA8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjQ8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4yMTwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjIyPC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS42PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MjM8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjc8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4yNDwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuODwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjI1PC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPlNlYW1vbmtleSAxLjE8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4yNjwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5FcGlwaGFueSAyLjIwPC90ZD4KCQkJPHRkPkdub21lPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjI3PC90ZD4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMS4yPC90ZD4KCQkJPHRkPk9TWC4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEyNS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+Mjg8L3RkPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjM8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MzEyLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4yOTwvdGQ+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDIuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDE5LjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zMDwvdGQ+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDMuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTIyLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zMTwvdGQ+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+T21uaVdlYiA1LjU8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQyMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMyPC90ZD4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5pUG9kIFRvdWNoIC8gaVBob25lPC90ZD4KCQkJPHRkPmlQb2Q8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zMzwvdGQ+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+UzYwPC90ZD4KCQkJPHRkPlM2MDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zNDwvdGQ+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgNy4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjM1PC90ZD4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA3LjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MzY8L3RkPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDguMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zNzwvdGQ+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOC41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjM4PC90ZD4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+Mzk8L3RkPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuMjwvdGQ+CgkJCTx0ZD5XaW4gODgrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MDwvdGQ+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS41PC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQxPC90ZD4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSBmb3IgV2lpPC90ZD4KCQkJPHRkPldpaTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDI8L3RkPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5va2lhIE44MDA8L3RkPgoJCQk8dGQ+TjgwMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDM8L3RkPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5pbnRlbmRvIERTIGJyb3dzZXI8L3RkPgoJCQk8dGQ+TmludGVuZG8gRFM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+OC41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkMvQTxzdXA+MTwvc3VwPjwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40NDwvdGQ+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuMTwvdGQ+CgkJCTx0ZD5LREUgMy4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQ1PC90ZD4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy4zPC90ZD4KCQkJPHRkPktERSAzLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDY8L3RkPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjU8L3RkPgoJCQk8dGQ+S0RFIDMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40NzwvdGQ+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNC41PC90ZD4KCQkJPHRkPk1hYyBPUyA4LTk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQ4PC90ZD4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjE8L3RkPgoJCQk8dGQ+TWFjIE9TIDcuNi05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40OTwvdGQ+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4yPC90ZD4KCQkJPHRkPk1hYyBPUyA4LVg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUwPC90ZD4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy4xPC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUxPC90ZD4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy40PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUyPC90ZD4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+RGlsbG8gMC44PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUzPC90ZD4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TGlua3M8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41NDwvdGQ+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkx5bng8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41NTwvdGQ+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPklFIE1vYmlsZTwvdGQ+CgkJCTx0ZD5XaW5kb3dzIE1vYmlsZSA2PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41NjwvdGQ+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPlBTUCBicm93c2VyPC90ZD4KCQkJPHRkPlBTUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVUiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTc8L3RkPgoJCQk8dGQ+T3RoZXIgYnJvd3NlcnM8L3RkPgoJCQk8dGQ+QWxsIG90aGVyczwvdGQ+CgkJCTx0ZD4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+VTwvdGQ+CgkJPC90cj4KCTwvdGJvZHk+Cgk8dGZvb3Q+CgkJPHRyPgoJCQk8dGg+Jm5ic3A7PC90aD4KCQkJPHRoPlJlbmRlcmluZyBlbmdpbmU8L3RoPgoJCQk8dGg+QnJvd3NlcjwvdGg+CgkJCTx0aD5QbGF0Zm9ybShzKTwvdGg+CgkJCTx0aD5FbmdpbmUgdmVyc2lvbjwvdGg+CgkJCTx0aD5DU1MgZ3JhZGU8L3RoPgoJCTwvdHI+Cgk8L3Rmb290Pgo8L3RhYmxlPgoJCQk8L2Rpdj4KCQk8L2Zvcm0+CgkJCTxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CgkJCQoJCQkKCQkJPGgxPkV4YW1wbGVzPC9oMT4KCQkJPHVsPgoJCQkJPGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkJhc2ljIGluaXRpYWxpc2F0aW9uPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iYWx0X2luc2VydC5odG1sIj5TdHlsaW5nIHRoZSBpbnNlcnQgY3Vyc29yPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iY29sX2ZpbHRlci5odG1sIj5JbmRpdmlkdWFsIGNvbHVtbiBmaWx0ZXJpbmc8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJjb2x2aXMuaHRtbCI+SW50ZWdyYXRpb24gd2l0aCBEYXRhVGFibGVzJyBDb2xWaXMgcGx1Zy1pbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImZpeGVkY29sdW1ucy5odG1sIj5JbnRlZ3JhdGlvbiB3aXRoIERhdGFUYWJsZXMnIEZpeGVkQ29sdW1ucyBwbHVnLWluPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iZml4ZWRoZWFkZXIuaHRtbCI+SW50ZWdyYXRpb24gd2l0aCBEYXRhVGFibGVzJyBGaXhlZEhlYWRlciBwbHVnLWluPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0icHJlZGVmaW5lZC5odG1sIj5Vc2luZyBhIHByZWRlZmluZWQgY29sdW1uIG9yZGVyIHNldDwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InJlc2V0Lmh0bWwiPlByb3ZpZGluZyBhIHVzZXIgY29udHJvbCB0byByZXNldCB0aGUgY29sdW1uIG9yZGVyPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ic2Nyb2xsaW5nLmh0bWwiPkNvbHVtbiByZW9yZGVyaW5nIHNob3duIHdpdGggc2Nyb2xsaW5nIGluIERhdGFUYWJsZXM8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJzZXJ2ZXJfc2lkZS5odG1sIj5TZXJ2ZXItc2lkZSBwcm9jZXNzaW5nIHN1cHBvcnQ8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJzdGF0ZV9zYXZlLmh0bWwiPlN0YXRlIHNhdmluZyBvZiB0aGUgY29sdW1uIHBvc2l0aW9uPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0idGhlbWUuaHRtbCI+alF1ZXJ5IFVJIHRoZW1lIGludGVncmF0aW9uPC9hPjwvbGk+CgkJCTwvdWw+CgkJCQoJCQkKCQkJPGgxPkluaXRpYWxpc2F0aW9uIGNvZGU8L2gxPgoJCQk8cHJlPiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0RvbSI6ICdSbGZydGlwJywKCQkic1Njcm9sbFgiOiAiMTAwJSIsCgkJInNTY3JvbGxYSW5uZXIiOiAiMTUwJSIsCgkJImJTY3JvbGxDb2xsYXBzZSI6IHRydWUsCgkJImZuRHJhd0NhbGxiYWNrIjogZnVuY3Rpb24gKCBvU2V0dGluZ3MgKSB7CgkJCS8qIE5lZWQgdG8gcmVkbyB0aGUgY291bnRlcnMgaWYgZmlsdGVyZWQgb3Igc29ydGVkICovCgkJCWlmICggb1NldHRpbmdzLmJTb3J0ZWQgfHwgb1NldHRpbmdzLmJGaWx0ZXJlZCApIHsKCQkJCWZvciAoIHZhciBpPTAsIGlMZW49b1NldHRpbmdzLmFpRGlzcGxheS5sZW5ndGggOyBpJmx0O2lMZW4gOyBpKysgKSB7CgkJCQkJJCgndGQ6ZXEoMCknLCBvU2V0dGluZ3MuYW9EYXRhWyBvU2V0dGluZ3MuYWlEaXNwbGF5W2ldIF0ublRyICkuaHRtbCggaSsxICk7CgkJCQl9CgkJCX0KCQl9LAoJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCXsgImJTb3J0YWJsZSI6IGZhbHNlLCAic0NsYXNzIjogImluZGV4IiwgImFUYXJnZXRzIjogWyAwIF0gfQoJCV0sCgkJImFhU29ydGluZyI6IFtbIDEsICdhc2MnIF1dLAoJCSJvQ29sUmVvcmRlciI6IHsKCQkJImlGaXhlZENvbHVtbnMiOiAxCgkJfQoJfSApOwoJbmV3IEZpeGVkQ29sdW1ucyggb1RhYmxlICk7Cn0gKTs8L3ByZT4KCQkJCgkJCTxkaXYgaWQ9ImZvb3RlciIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyOyI+CgkJCQk8c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwcHg7Ij4KCQkJCQlDb2xSZW9yZGVyIGFuZCBEYXRhVGFibGVzICZjb3B5OyBBbGxhbiBKYXJkaW5lIDIwMTAKCQkJCTwvc3Bhbj4KCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2JvZHk+CjwvaHRtbD4=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/fixedheader.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5Db2xSZW9yZGVyIGV4YW1wbGU8L3RpdGxlPgoJCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9ImN1cnJlbnRTdHlsZSI+CgkJCUBpbXBvcnQgIi4uLy4uL21lZGlhL2Nzcy9kZW1vX3BhZ2UuY3NzIjsKCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fdGFibGUuY3NzIjsKCQkJQGltcG9ydCAibWVkaWEvY3NzL0NvbFJlb3JkZXIuY3NzIjsKCQkJLkZpeGVkSGVhZGVyX0Nsb25lZCB0aCB7IGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyB9CgkJPC9zdHlsZT4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiIHNyYz0iLi4vLi4vbWVkaWEvanMvanF1ZXJ5LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiIHNyYz0iLi4vLi4vbWVkaWEvanMvanF1ZXJ5LmRhdGFUYWJsZXMuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSJtZWRpYS9qcy9Db2xSZW9yZGVyLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiIHNyYz0iLi4vRml4ZWRIZWFkZXIvanMvRml4ZWRIZWFkZXIuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CgkJCSQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkJCQl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCQkgInNEb20iOiAnUkM8ImNsZWFyIj5sZnJ0aXAnCgkJCQl9ICk7CgkJCQluZXcgRml4ZWRIZWFkZXIoIG9UYWJsZSApOwoJCQl9ICk7CgkJPC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keSBpZD0iZHRfZXhhbXBsZSI+CgkJPGRpdiBpZD0iY29udGFpbmVyIj4KCQkJPGRpdiBjbGFzcz0iZnVsbF93aWR0aCBiaWciPgoJCQkJQ29sUmVvcmRlciBleGFtcGxlIHdpdGggRml4ZWRIZWFkZXIKCQkJPC9kaXY+CgkJCQoJCQk8aDE+UHJlYW1ibGU8L2gxPgoJCQk8cD5GaXhlZEhlYWRlciBpcyBhIHBhcnRpY3VsYXJseSB1c2VmdWwgcGx1Zy1pbiBmb3IgRGF0YVRhYmxlcywgYWxsb3dpbmcgYSB0YWJsZSBoZWFkZXIKCQkJCXRvIGZsb2F0IGF0IHRoZSB0b3Agb2YgYSBzY3JvbGxpbmcgd2luZG93LiBDb2xSZW9yZGVyIHdvcmtzIHdlbGwgd2l0aCBGaXhlZEhlYWRlciwgYWxsb3dpbmcKCQkJCXlvdSB0byByZW9yZGVyIGNvbHVtbnMgZXZlbiB1c2luZyB0aGUgZmxvYXRpbmcgaGVhZGVyLCBhcyBzaG93biBpbiB0aGUgZXhhbXBsZSBiZWxvdy48L3A+CgkJCQoJCQk8aDE+TGl2ZSBleGFtcGxlPC9oMT4KCQkJPGZvcm0+CgkJCTxkaXYgaWQ9ImRlbW8iPgo8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIGNsYXNzPSJkaXNwbGF5IiBpZD0iZXhhbXBsZSI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGZvb3Q+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGZvb3Q+Cgk8dGJvZHk+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVYIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNC4wPC90ZD4KCQkJPHRkPldpbiA5NSsgKEVudGl0eTogJmFtcDspPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVDIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4wPC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA2PC90ZD4KCQkJPHRkPldpbiA5OCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDc8L3RkPgoJCQk8dGQ+V2luIFhQIFNQMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5BT0wgYnJvd3NlciAoQU9MIGRlc2t0b3ApPC90ZD4KCQkJPHRkPldpbiBYUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvIChVVEYtODogJMKi4oKsKTwvdGQ+CgkJCTx0ZD5GaXJlZm94IDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjU8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAyLjA8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMy4wPC90ZD4KCQkJPHRkPldpbiAyaysgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS45PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkNhbWlubyAxLjA8L3RkPgoJCQk8dGQ+T1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuNTwvdGQ+CgkJCTx0ZD5PU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIDcuMjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gTWFjIE9TIDguNi05LjI8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSBCcm93c2VyIDg8L3RkPgoJCQk8dGQ+V2luIDk4U0UrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSBOYXZpZ2F0b3IgOTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4xPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMzwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjQ8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS42PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS43PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuODwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5TZWFtb25rZXkgMS4xPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5FcGlwaGFueSAyLjIwPC90ZD4KCQkJPHRkPkdub21lPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDEuMjwvdGQ+CgkJCTx0ZD5PU1guMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xMjUuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjM8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MzEyLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAyLjA8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQxOS4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDMuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTIyLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPk9tbmlXZWIgNS41PC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MjA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5pUG9kIFRvdWNoIC8gaVBob25lPC90ZD4KCQkJPHRkPmlQb2Q8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlM2MDwvdGQ+CgkJCTx0ZD5TNjA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDEzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgNy4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgNy41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDguMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDguNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjI8L3RkPgoJCQk8dGQ+V2luIDg4KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS41PC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgZm9yIFdpaTwvdGQ+CgkJCTx0ZD5XaWk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5va2lhIE44MDA8L3RkPgoJCQk8dGQ+TjgwMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5OaW50ZW5kbyBEUyBicm93c2VyPC90ZD4KCQkJPHRkPk5pbnRlbmRvIERTPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjguNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DL0E8c3VwPjE8L3N1cD48L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQyI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuMTwvdGQ+CgkJCTx0ZD5LREUgMy4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuMzwvdGQ+CgkJCTx0ZD5LREUgMy4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjU8L3RkPgoJCQk8dGQ+S0RFIDMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZVgiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDQuNTwvdGQ+CgkJCTx0ZD5NYWMgT1MgOC05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVDIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjE8L3RkPgoJCQk8dGQ+TWFjIE9TIDcuNi05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUMiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMjwvdGQ+CgkJCTx0ZD5NYWMgT1MgOC1YPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy4xPC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPk5ldEZyb250IDMuNDwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+RGlsbG8gMC44PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkxpbmtzPC90ZD4KCQkJPHRkPlRleHQgb25seTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkx5bng8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUMiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5JRSBNb2JpbGU8L3RkPgoJCQk8dGQ+V2luZG93cyBNb2JpbGUgNjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQyI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPlBTUCBicm93c2VyPC90ZD4KCQkJPHRkPlBTUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVVIj4KCQkJPHRkPk90aGVyIGJyb3dzZXJzPC90ZD4KCQkJPHRkPkFsbCBvdGhlcnM8L3RkPgoJCQk8dGQ+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlU8L3RkPgoJCTwvdHI+Cgk8L3Rib2R5Pgo8L3RhYmxlPgoJCQk8L2Rpdj4KCQk8L2Zvcm0+CgkJCTxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CgkJCQoJCQkKCQkJPGgxPkV4YW1wbGVzPC9oMT4KCQkJPHVsPgoJCQkJPGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkJhc2ljIGluaXRpYWxpc2F0aW9uPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iYWx0X2luc2VydC5odG1sIj5TdHlsaW5nIHRoZSBpbnNlcnQgY3Vyc29yPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iY29sX2ZpbHRlci5odG1sIj5JbmRpdmlkdWFsIGNvbHVtbiBmaWx0ZXJpbmc8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJjb2x2aXMuaHRtbCI+SW50ZWdyYXRpb24gd2l0aCBEYXRhVGFibGVzJyBDb2xWaXMgcGx1Zy1pbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImZpeGVkY29sdW1ucy5odG1sIj5JbnRlZ3JhdGlvbiB3aXRoIERhdGFUYWJsZXMnIEZpeGVkQ29sdW1ucyBwbHVnLWluPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iZml4ZWRoZWFkZXIuaHRtbCI+SW50ZWdyYXRpb24gd2l0aCBEYXRhVGFibGVzJyBGaXhlZEhlYWRlciBwbHVnLWluPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0icHJlZGVmaW5lZC5odG1sIj5Vc2luZyBhIHByZWRlZmluZWQgY29sdW1uIG9yZGVyIHNldDwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InJlc2V0Lmh0bWwiPlByb3ZpZGluZyBhIHVzZXIgY29udHJvbCB0byByZXNldCB0aGUgY29sdW1uIG9yZGVyPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ic2Nyb2xsaW5nLmh0bWwiPkNvbHVtbiByZW9yZGVyaW5nIHNob3duIHdpdGggc2Nyb2xsaW5nIGluIERhdGFUYWJsZXM8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJzZXJ2ZXJfc2lkZS5odG1sIj5TZXJ2ZXItc2lkZSBwcm9jZXNzaW5nIHN1cHBvcnQ8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJzdGF0ZV9zYXZlLmh0bWwiPlN0YXRlIHNhdmluZyBvZiB0aGUgY29sdW1uIHBvc2l0aW9uPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0idGhlbWUuaHRtbCI+alF1ZXJ5IFVJIHRoZW1lIGludGVncmF0aW9uPC9hPjwvbGk+CgkJCTwvdWw+CgkJCQoJCQkKCQkJPGgxPkluaXRpYWxpc2F0aW9uIGNvZGU8L2gxPgoJCQk8cHJlPiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgInNEb20iOiAnUkMmbHQ7ImNsZWFyIiZndDtsZnJ0aXAnCgl9ICk7CgluZXcgRml4ZWRIZWFkZXIoIG9UYWJsZSApOwp9ICk7PC9wcmU+CgkJCQoJCQk8ZGl2IGlkPSJmb290ZXIiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjsiPgoJCQkJPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMHB4OyI+CgkJCQkJQ29sUmVvcmRlciBhbmQgRGF0YVRhYmxlcyAmY29weTsgQWxsYW4gSmFyZGluZSAyMDEwCgkJCQk8L3NwYW4+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5Db2xSZW9yZGVyIGV4YW1wbGU8L3RpdGxlPgoJCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9ImN1cnJlbnRTdHlsZSI+CgkJCUBpbXBvcnQgIi4uLy4uL21lZGlhL2Nzcy9kZW1vX3BhZ2UuY3NzIjsKCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fdGFibGUuY3NzIjsKCQkJQGltcG9ydCAibWVkaWEvY3NzL0NvbFJlb3JkZXIuY3NzIjsKCQk8L3N0eWxlPgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIuLi8uLi9tZWRpYS9qcy9qcXVlcnkuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIuLi8uLi9tZWRpYS9qcy9qcXVlcnkuZGF0YVRhYmxlcy5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Im1lZGlhL2pzL0NvbFJlb3JkZXIuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CgkJCSQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkJCQl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCQkic0RvbSI6ICdSbGZydGlwJwoJCQkJfSApOwoJCQl9ICk7CgkJPC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keSBpZD0iZHRfZXhhbXBsZSI+CgkJPGRpdiBpZD0iY29udGFpbmVyIj4KCQkJPGRpdiBjbGFzcz0iZnVsbF93aWR0aCBiaWciPgoJCQkJQ29sUmVvcmRlciBleGFtcGxlCgkJCTwvZGl2PgoJCQkKCQkJPGgxPlByZWFtYmxlPC9oMT4KCQkJPHA+VGhpcyBleGFtcGxlIHNob3dzIHRoZSBiYXNpYyB1c2UgY2FzZSBvZiB0aGUgQ29sUmVvcmRlciBwbHVnLWluLiBXaXRoIENvbFJlb3JkZXIgZW5hYmxlZAoJCQkJZm9yIGEgdGFibGUsIHRoZSB1c2VyIGhhcyB0aGUgYWJpbGl0eSB0byBjbGljayBhbmQgZHJhZyBhbnkgdGFibGUgaGVhZGVyIGNlbGwsIGFuZCBkcm9wIAoJCQkJaXQgd2hlcmUgdGhleSB3aXNoIHRoZSBjb2x1bW4gdG8gYmUgaW5zZXJ0ZWQuIFRoZSBpbnNlcnQgcG9pbnQgaXMgc2hvd24gdmlzdWFsbHksIGFuZAoJCQkJdGhlIGNvbHVtbiByZW9yZGVyaW5nIGlzIGRvbmUgYXMgc29vbiBhcyB0aGUgbW91c2UgYnV0dG9uIGlzIHJlbGVhc2VkLjwvcD4KCQkJCgkJCTxoMT5MaXZlIGV4YW1wbGU8L2gxPgoJCQk8Zm9ybT4KCQkJPGRpdiBpZD0iZGVtbyI+Cjx0YWJsZSBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIGJvcmRlcj0iMCIgY2xhc3M9ImRpc3BsYXkiIGlkPSJleGFtcGxlIj4KCTx0aGVhZD4KCQk8dHI+CgkJCTx0aD5SZW5kZXJpbmcgZW5naW5lPC90aD4KCQkJPHRoPkJyb3dzZXI8L3RoPgoJCQk8dGg+UGxhdGZvcm0ocyk8L3RoPgoJCQk8dGg+RW5naW5lIHZlcnNpb248L3RoPgoJCQk8dGg+Q1NTIGdyYWRlPC90aD4KCQk8L3RyPgoJPC90aGVhZD4KCTx0Zm9vdD4KCQk8dHI+CgkJCTx0aD5SZW5kZXJpbmcgZW5naW5lPC90aD4KCQkJPHRoPkJyb3dzZXI8L3RoPgoJCQk8dGg+UGxhdGZvcm0ocyk8L3RoPgoJCQk8dGg+RW5naW5lIHZlcnNpb248L3RoPgoJCQk8dGg+Q1NTIGdyYWRlPC90aD4KCQk8L3RyPgoJPC90Zm9vdD4KCTx0Ym9keT4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZVgiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA0LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAoRW50aXR5OiAmYW1wOyk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUMiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjA8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS41PC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDY8L3RkPgoJCQk8dGQ+V2luIDk4KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNzwvdGQ+CgkJCTx0ZD5XaW4gWFAgU1AyKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkFPTCBicm93c2VyIChBT0wgZGVza3RvcCk8L3RkPgoJCQk8dGQ+V2luIFhQPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja28gKFVURi04OiAkwqLigqwpPC90ZD4KCQkJPHRkPkZpcmVmb3ggMS4wPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDEuNTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDIuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAzLjA8L3RkPgoJCQk8dGQ+V2luIDJrKyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuMDwvdGQ+CgkJCTx0ZD5PU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5DYW1pbm8gMS41PC90ZD4KCQkJPHRkPk9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgNy4yPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBNYWMgT1MgOC42LTkuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIEJyb3dzZXIgODwvdGQ+CgkJCTx0ZD5XaW4gOThTRSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIE5hdmlnYXRvciA5PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjE8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4yPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4yPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4zPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjY8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjc8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS44PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPlNlYW1vbmtleSAxLjE8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkVwaXBoYW55IDIuMjA8L3RkPgoJCQk8dGQ+R25vbWU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMS4yPC90ZD4KCQkJPHRkPk9TWC4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEyNS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDEuMzwvdGQ+CgkJCTx0ZD5PU1guMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zMTIuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDIuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDE5LjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMy4wPC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41MjIuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+T21uaVdlYiA1LjU8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQyMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPmlQb2QgVG91Y2ggLyBpUGhvbmU8L3RkPgoJCQk8dGQ+aVBvZDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MjAuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+UzYwPC90ZD4KCQkJPHRkPlM2MDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA3LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA3LjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOC4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOC41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuMjwvdGQ+CgkJCTx0ZD5XaW4gODgrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjU8L3RkPgoJCQk8dGQ+V2luIDg4KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSBmb3IgV2lpPC90ZD4KCQkJPHRkPldpaTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+Tm9raWEgTjgwMDwvdGQ+CgkJCTx0ZD5OODAwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5pbnRlbmRvIERTIGJyb3dzZXI8L3RkPgoJCQk8dGQ+TmludGVuZG8gRFM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+OC41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkMvQTxzdXA+MTwvc3VwPjwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVDIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy4xPC90ZD4KCQkJPHRkPktERSAzLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy4zPC90ZD4KCQkJPHRkPktERSAzLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuNTwvdGQ+CgkJCTx0ZD5LREUgMy41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlWCI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNC41PC90ZD4KCQkJPHRkPk1hYyBPUyA4LTk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUMiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMTwvdGQ+CgkJCTx0ZD5NYWMgT1MgNy42LTk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQyI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4yPC90ZD4KCQkJPHRkPk1hYyBPUyA4LVg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5OZXRGcm9udCAzLjE8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy40PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5EaWxsbyAwLjg8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TGlua3M8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+THlueDwvdGQ+CgkJCTx0ZD5UZXh0IG9ubHk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQyI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPklFIE1vYmlsZTwvdGQ+CgkJCTx0ZD5XaW5kb3dzIE1vYmlsZSA2PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVDIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+UFNQIGJyb3dzZXI8L3RkPgoJCQk8dGQ+UFNQPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZVUiPgoJCQk8dGQ+T3RoZXIgYnJvd3NlcnM8L3RkPgoJCQk8dGQ+QWxsIG90aGVyczwvdGQ+CgkJCTx0ZD4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+VTwvdGQ+CgkJPC90cj4KCTwvdGJvZHk+CjwvdGFibGU+CgkJCTwvZGl2PgoJCTwvZm9ybT4KCQkJPGRpdiBjbGFzcz0ic3BhY2VyIj48L2Rpdj4KCQkJCgkJCQoJCQk8aDE+RXhhbXBsZXM8L2gxPgoJCQk8dWw+CgkJCQk8bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+QmFzaWMgaW5pdGlhbGlzYXRpb248L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJhbHRfaW5zZXJ0Lmh0bWwiPlN0eWxpbmcgdGhlIGluc2VydCBjdXJzb3I8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJjb2xfZmlsdGVyLmh0bWwiPkluZGl2aWR1YWwgY29sdW1uIGZpbHRlcmluZzwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImNvbHZpcy5odG1sIj5JbnRlZ3JhdGlvbiB3aXRoIERhdGFUYWJsZXMnIENvbFZpcyBwbHVnLWluPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iZml4ZWRjb2x1bW5zLmh0bWwiPkludGVncmF0aW9uIHdpdGggRGF0YVRhYmxlcycgRml4ZWRDb2x1bW5zIHBsdWctaW48L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJmaXhlZGhlYWRlci5odG1sIj5JbnRlZ3JhdGlvbiB3aXRoIERhdGFUYWJsZXMnIEZpeGVkSGVhZGVyIHBsdWctaW48L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJwcmVkZWZpbmVkLmh0bWwiPlVzaW5nIGEgcHJlZGVmaW5lZCBjb2x1bW4gb3JkZXIgc2V0PC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0icmVzZXQuaHRtbCI+UHJvdmlkaW5nIGEgdXNlciBjb250cm9sIHRvIHJlc2V0IHRoZSBjb2x1bW4gb3JkZXI8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJzY3JvbGxpbmcuaHRtbCI+Q29sdW1uIHJlb3JkZXJpbmcgc2hvd24gd2l0aCBzY3JvbGxpbmcgaW4gRGF0YVRhYmxlczwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InNlcnZlcl9zaWRlLmh0bWwiPlNlcnZlci1zaWRlIHByb2Nlc3Npbmcgc3VwcG9ydDwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InN0YXRlX3NhdmUuaHRtbCI+U3RhdGUgc2F2aW5nIG9mIHRoZSBjb2x1bW4gcG9zaXRpb248L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJ0aGVtZS5odG1sIj5qUXVlcnkgVUkgdGhlbWUgaW50ZWdyYXRpb248L2E+PC9saT4KCQkJPC91bD4KCQkJCgkJCQoJCQk8aDE+SW5pdGlhbGlzYXRpb24gY29kZTwvaDE+CgkJCTxwcmU+JChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzRG9tIjogJ1JsZnJ0aXAnCgl9ICk7Cn0gKTs8L3ByZT4KCQkJCgkJCTxkaXYgaWQ9ImZvb3RlciIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyOyI+CgkJCQk8c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwcHg7Ij4KCQkJCQlDb2xSZW9yZGVyIGFuZCBEYXRhVGFibGVzICZjb3B5OyBBbGxhbiBKYXJkaW5lIDIwMTAKCQkJCTwvc3Bhbj4KCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2JvZHk+CjwvaHRtbD4=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/media/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/media/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/media/css/ColReorder.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogTmFtZXNwYWNlIERUQ1IgLSAiRGF0YVRhYmxlcyBDb2xSZW9yZGVyIiBwbHVnLWluCiAqLwoKdGFibGUuRFRDUl9jbG9uZWRUYWJsZSB7CgliYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKCXotaW5kZXg6IDIwMjsKfQoKZGl2LkRUQ1JfcG9pbnRlciB7Cgl3aWR0aDogMXB4OwoJYmFja2dyb3VuZC1jb2xvcjogIzAyNTlDNDsKCXotaW5kZXg6IDIwMTsKfQoKYm9keS5hbHQgZGl2LkRUQ1JfcG9pbnRlciB7CgltYXJnaW4tdG9wOiAtMTVweDsKCW1hcmdpbi1sZWZ0OiAtOXB4OwoJd2lkdGg6IDE4cHg7CgliYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9pbnNlcnQucG5nJykgbm8tcmVwZWF0IHRvcCBsZWZ0Owp9]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/media/docs/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/media/docs/4f1246032c.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTx0aXRsZT5OYW1lc3BhY2U6IEluZm9ybWF0aW9uIHVzZWQgZm9yIHRoZSBtb3VzZSBkcmFnIC0gZG9jdW1lbnRhdGlvbjwvdGl0bGU+CiAgCgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KCQkJQGltcG9ydCAibWVkaWEvY3NzL2RvYy5jc3MiOwoJCQlAaW1wb3J0ICJtZWRpYS9jc3Mvc2hDb3JlLmNzcyI7CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9zaFRoZW1lRGF0YVRhYmxlcy5jc3MiOwoJCTwvc3R5bGU+CgkKCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9zaENvcmUuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL3NoQnJ1c2hKU2NyaXB0LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9qcXVlcnkuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL2RvYy5qcyI+PC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keT4KCQk8ZGl2IGNsYXNzPSJmd19jb250YWluZXIiPgoJCQkKCQkJCTxhIG5hbWU9InRvcCI+PC9hPgoJCQkJPGRpdiBjbGFzcz0iZndfaGVhZGVyIj4KCQkJCQk8aDEgY2xhc3M9InBhZ2UtdGl0bGUiPk5hbWVzcGFjZTogSW5mb3JtYXRpb24gdXNlZCBmb3IgdGhlIG1vdXNlIGRyYWc8L2gxPgoJCQkJCQoJCQkJCTxkaXYgY2xhc3M9InBhZ2UtaW5mbyI+CgkJCQkJCQoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgoJCQkJCgoJCQkJPGRpdiBjbGFzcz0iZndfbmF2Ij4KCQkJCQk8aDI+TmF2aWdhdGlvbjwvaDI+CgkJCQkJPHVsPgoJCQkJCTxsaT48YSBocmVmPSIjdG9wIj5PdmVydmlldzwvYT48L2xpPgoJCQkJCTxsaT48YSBocmVmPSIjc3VtbWFyeSI+U3VtbWFyeTwvYT48ZGl2PjwvZGl2PjwvbGk+PGxpPjxhIGhyZWY9IiNkZXRhaWxzIj5EZXRhaWxzPC9hPjxkaXY+PC9kaXY+PC9saT48L3VsPgoJCQkJCTxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDEwcHg7Ij4KCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2hvd19wcml2YXRlIiB2YWx1ZT0iMCI+CgkJCQkJCTxzcGFuIGlkPSJwcml2YXRlX2xhYmVsIj5IaWRpbmc8L3NwYW4+IHByaXZhdGUgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9InByaXZhdGVfdG9nZ2xlIiBocmVmPSIiPnRvZ2dsZTwvYT4pCgkJCQkJCTwvc3Bhbj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2PgoJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzaG93X2V4dGVuZGVkIiB2YWx1ZT0iMSI+CgkJCQkJCTxzcGFuIGlkPSJleHRlbmRlZF9sYWJlbCI+U2hvd2luZzwvc3Bhbj4gZXh0ZW5kZWQgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9ImV4dGVuZGVkX3RvZ2dsZSIgaHJlZj0iIj50b2dnbGU8L2E+KQoJCQkJCQk8L3NwYW4+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCgkJCQk8ZGl2IGNsYXNzPSJmd19jb250ZW50Ij4KCQkJCQk8YSBuYW1lPSJvdmVydmlldyI+PC9hPgoJCQkJCTxkaXYgY2xhc3M9ImRvY19vdmVydmlldyI+CgkJCQkJCTxkaXYgY2xhc3M9Im5hdl9ibG9ja2VyIj48L2Rpdj4KCQkJCQkJPGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgoKCQkJCQk8L2Rpdj4KCgkJCQkJCgoKCQkJCQkKCQk8L2Rpdj4KCgkJPGRpdiBjbGFzcz0iZndfZm9vdGVyIj4KCQkJCgoJCQlEb2N1bWVudGF0aW9uIGdlbmVyYXRlZCBieSA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbWljbWF0aC9KU0RvYyI+SlNEb2MgMzwvYT4gb24KCQkJOHRoIEF1ZyAyMDEyIC0gMjI6NTQKCQkJd2l0aCB0aGUgPGEgaHJlZj0iaHR0cDovL2RhdGF0YWJsZXMubmV0LyI+RGF0YVRhYmxlczwvYT4gdGVtcGxhdGUuCgkJPC9kaXY+Cgk8L2JvZHk+CjwvaHRtbD4=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/media/docs/46848f6f3b.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTx0aXRsZT5OYW1lc3BhY2U6IFNldHRpbmdzIG9iamVjdCB3aGljaCBjb250YWlucyBjdXN0b21pc2FibGUgaW5mb3JtYXRpb24gZm9yIENvbFJlb3JkZXIgaW5zdGFuY2UgLSBkb2N1bWVudGF0aW9uPC90aXRsZT4KICAKCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgoJCQlAaW1wb3J0ICJtZWRpYS9jc3MvZG9jLmNzcyI7CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9zaENvcmUuY3NzIjsKCQkJQGltcG9ydCAibWVkaWEvY3NzL3NoVGhlbWVEYXRhVGFibGVzLmNzcyI7CgkJPC9zdHlsZT4KCQoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL3NoQ29yZS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvc2hCcnVzaEpTY3JpcHQuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvZG9jLmpzIj48L3NjcmlwdD4KCTwvaGVhZD4KCTxib2R5PgoJCTxkaXYgY2xhc3M9ImZ3X2NvbnRhaW5lciI+CgkJCQoJCQkJPGEgbmFtZT0idG9wIj48L2E+CgkJCQk8ZGl2IGNsYXNzPSJmd19oZWFkZXIiPgoJCQkJCTxoMSBjbGFzcz0icGFnZS10aXRsZSI+TmFtZXNwYWNlOiBTZXR0aW5ncyBvYmplY3Qgd2hpY2ggY29udGFpbnMgY3VzdG9taXNhYmxlIGluZm9ybWF0aW9uIGZvciBDb2xSZW9yZGVyIGluc3RhbmNlPC9oMT4KCQkJCQkKCQkJCQk8ZGl2IGNsYXNzPSJwYWdlLWluZm8iPgoJCQkJCQkKCQkJCQk8L2Rpdj4KCQkJCTwvZGl2PgoKCQkJCQoKCQkJCTxkaXYgY2xhc3M9ImZ3X25hdiI+CgkJCQkJPGgyPk5hdmlnYXRpb248L2gyPgoJCQkJCTx1bD4KCQkJCQk8bGk+PGEgaHJlZj0iI3RvcCI+T3ZlcnZpZXc8L2E+PC9saT4KCQkJCQk8bGk+PGEgaHJlZj0iI3N1bW1hcnkiPlN1bW1hcnk8L2E+PGRpdj48L2Rpdj48L2xpPjxsaT48YSBocmVmPSIjZGV0YWlscyI+RGV0YWlsczwvYT48ZGl2PjwvZGl2PjwvbGk+PC91bD4KCQkJCQk8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAxMHB4OyI+CgkJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNob3dfcHJpdmF0ZSIgdmFsdWU9IjAiPgoJCQkJCQk8c3BhbiBpZD0icHJpdmF0ZV9sYWJlbCI+SGlkaW5nPC9zcGFuPiBwcml2YXRlIGVsZW1lbnRzIAoJCQkJCQkJKDxhIGlkPSJwcml2YXRlX3RvZ2dsZSIgaHJlZj0iIj50b2dnbGU8L2E+KQoJCQkJCQk8L3NwYW4+CgkJCQkJPC9kaXY+CgkJCQkJPGRpdj4KCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2hvd19leHRlbmRlZCIgdmFsdWU9IjEiPgoJCQkJCQk8c3BhbiBpZD0iZXh0ZW5kZWRfbGFiZWwiPlNob3dpbmc8L3NwYW4+IGV4dGVuZGVkIGVsZW1lbnRzIAoJCQkJCQkJKDxhIGlkPSJleHRlbmRlZF90b2dnbGUiIGhyZWY9IiI+dG9nZ2xlPC9hPikKCQkJCQkJPC9zcGFuPgoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgoJCQkJPGRpdiBjbGFzcz0iZndfY29udGVudCI+CgkJCQkJPGEgbmFtZT0ib3ZlcnZpZXciPjwvYT4KCQkJCQk8ZGl2IGNsYXNzPSJkb2Nfb3ZlcnZpZXciPgoJCQkJCQk8ZGl2IGNsYXNzPSJuYXZfYmxvY2tlciI+PC9kaXY+CgkJCQkJCTxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KCgkJCQkJPC9kaXY+CgoJCQkJCQoKCgkJCQkJCgkJPC9kaXY+CgoJCTxkaXYgY2xhc3M9ImZ3X2Zvb3RlciI+CgkJCQoKCQkJRG9jdW1lbnRhdGlvbiBnZW5lcmF0ZWQgYnkgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL21pY21hdGgvSlNEb2MiPkpTRG9jIDM8L2E+IG9uCgkJCTh0aCBBdWcgMjAxMiAtIDIyOjU0CgkJCXdpdGggdGhlIDxhIGhyZWY9Imh0dHA6Ly9kYXRhdGFibGVzLm5ldC8iPkRhdGFUYWJsZXM8L2E+IHRlbXBsYXRlLgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/media/docs/a69b02bcf2.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTx0aXRsZT5OYW1lc3BhY2U6IENvbW1vbiBhbmQgdXNlZnVsIERPTSBlbGVtZW50cyBmb3IgdGhlIGNsYXNzIGluc3RhbmNlIC0gZG9jdW1lbnRhdGlvbjwvdGl0bGU+CiAgCgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KCQkJQGltcG9ydCAibWVkaWEvY3NzL2RvYy5jc3MiOwoJCQlAaW1wb3J0ICJtZWRpYS9jc3Mvc2hDb3JlLmNzcyI7CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9zaFRoZW1lRGF0YVRhYmxlcy5jc3MiOwoJCTwvc3R5bGU+CgkKCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9zaENvcmUuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL3NoQnJ1c2hKU2NyaXB0LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9qcXVlcnkuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL2RvYy5qcyI+PC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keT4KCQk8ZGl2IGNsYXNzPSJmd19jb250YWluZXIiPgoJCQkKCQkJCTxhIG5hbWU9InRvcCI+PC9hPgoJCQkJPGRpdiBjbGFzcz0iZndfaGVhZGVyIj4KCQkJCQk8aDEgY2xhc3M9InBhZ2UtdGl0bGUiPk5hbWVzcGFjZTogQ29tbW9uIGFuZCB1c2VmdWwgRE9NIGVsZW1lbnRzIGZvciB0aGUgY2xhc3MgaW5zdGFuY2U8L2gxPgoJCQkJCQoJCQkJCTxkaXYgY2xhc3M9InBhZ2UtaW5mbyI+CgkJCQkJCQoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgoJCQkJCgoJCQkJPGRpdiBjbGFzcz0iZndfbmF2Ij4KCQkJCQk8aDI+TmF2aWdhdGlvbjwvaDI+CgkJCQkJPHVsPgoJCQkJCTxsaT48YSBocmVmPSIjdG9wIj5PdmVydmlldzwvYT48L2xpPgoJCQkJCTxsaT48YSBocmVmPSIjc3VtbWFyeSI+U3VtbWFyeTwvYT48ZGl2PjwvZGl2PjwvbGk+PGxpPjxhIGhyZWY9IiNkZXRhaWxzIj5EZXRhaWxzPC9hPjxkaXY+PC9kaXY+PC9saT48L3VsPgoJCQkJCTxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDEwcHg7Ij4KCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2hvd19wcml2YXRlIiB2YWx1ZT0iMCI+CgkJCQkJCTxzcGFuIGlkPSJwcml2YXRlX2xhYmVsIj5IaWRpbmc8L3NwYW4+IHByaXZhdGUgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9InByaXZhdGVfdG9nZ2xlIiBocmVmPSIiPnRvZ2dsZTwvYT4pCgkJCQkJCTwvc3Bhbj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2PgoJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzaG93X2V4dGVuZGVkIiB2YWx1ZT0iMSI+CgkJCQkJCTxzcGFuIGlkPSJleHRlbmRlZF9sYWJlbCI+U2hvd2luZzwvc3Bhbj4gZXh0ZW5kZWQgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9ImV4dGVuZGVkX3RvZ2dsZSIgaHJlZj0iIj50b2dnbGU8L2E+KQoJCQkJCQk8L3NwYW4+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCgkJCQk8ZGl2IGNsYXNzPSJmd19jb250ZW50Ij4KCQkJCQk8YSBuYW1lPSJvdmVydmlldyI+PC9hPgoJCQkJCTxkaXYgY2xhc3M9ImRvY19vdmVydmlldyI+CgkJCQkJCTxkaXYgY2xhc3M9Im5hdl9ibG9ja2VyIj48L2Rpdj4KCQkJCQkJPGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgoKCQkJCQk8L2Rpdj4KCgkJCQkJCgoKCQkJCQkKCQk8L2Rpdj4KCgkJPGRpdiBjbGFzcz0iZndfZm9vdGVyIj4KCQkJCgoJCQlEb2N1bWVudGF0aW9uIGdlbmVyYXRlZCBieSA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbWljbWF0aC9KU0RvYyI+SlNEb2MgMzwvYT4gb24KCQkJOHRoIEF1ZyAyMDEyIC0gMjI6NTQKCQkJd2l0aCB0aGUgPGEgaHJlZj0iaHR0cDovL2RhdGF0YWJsZXMubmV0LyI+RGF0YVRhYmxlczwvYT4gdGVtcGxhdGUuCgkJPC9kaXY+Cgk8L2JvZHk+CjwvaHRtbD4=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/media/docs/ColReorder.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTx0aXRsZT5DbGFzczogQ29sUmVvcmRlciAtIGRvY3VtZW50YXRpb248L3RpdGxlPgogIAoJCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9kb2MuY3NzIjsKCQkJQGltcG9ydCAibWVkaWEvY3NzL3NoQ29yZS5jc3MiOwoJCQlAaW1wb3J0ICJtZWRpYS9jc3Mvc2hUaGVtZURhdGFUYWJsZXMuY3NzIjsKCQk8L3N0eWxlPgoJCgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvc2hDb3JlLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9zaEJydXNoSlNjcmlwdC5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvanF1ZXJ5LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9kb2MuanMiPjwvc2NyaXB0PgoJPC9oZWFkPgoJPGJvZHk+CgkJPGRpdiBjbGFzcz0iZndfY29udGFpbmVyIj4KCQkJCgkJCQk8YSBuYW1lPSJ0b3AiPjwvYT4KCQkJCTxkaXYgY2xhc3M9ImZ3X2hlYWRlciI+CgkJCQkJPGgxIGNsYXNzPSJwYWdlLXRpdGxlIj5DbGFzczogQ29sUmVvcmRlcjwvaDE+CgkJCQkJPHAgY2xhc3M9ImNsYXNzLWRlc2NyaXB0aW9uIj5Db2xSZW9yZGVyPC9wPgoJCQkJCTxkaXYgY2xhc3M9InBhZ2UtaW5mbyI+CgkJCQkJCQoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgoJCQkJCgoJCQkJPGRpdiBjbGFzcz0iZndfbmF2Ij4KCQkJCQk8aDI+TmF2aWdhdGlvbjwvaDI+CgkJCQkJPHVsPgoJCQkJCTxsaT48YSBocmVmPSIjdG9wIj5PdmVydmlldzwvYT48L2xpPgoJCQkJCTxsaT48YSBocmVmPSIjc3VtbWFyeSI+U3VtbWFyeTwvYT48ZGl2PjxhIGhyZWY9IiNzdW1tYXJ5X3Byb3BlcnRpZXMiPlByb3BlcnRpZXM8L2E+IHwgPGEgaHJlZj0iI3N1bW1hcnlfbWV0aG9kcyI+TWV0aG9kczwvYT48L2Rpdj48L2xpPjxsaT48YSBocmVmPSIjZGV0YWlscyI+RGV0YWlsczwvYT48ZGl2PjxhIGhyZWY9IiNkZXRhaWxzX3Byb3BlcnRpZXMiPlByb3BlcnRpZXM8L2E+IHwgPGEgaHJlZj0iI2RldGFpbHNfbWV0aG9kcyI+TWV0aG9kczwvYT48L2Rpdj48L2xpPjwvdWw+CgkJCQkJPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogMTBweDsiPgoJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzaG93X3ByaXZhdGUiIHZhbHVlPSIwIj4KCQkJCQkJPHNwYW4gaWQ9InByaXZhdGVfbGFiZWwiPkhpZGluZzwvc3Bhbj4gcHJpdmF0ZSBlbGVtZW50cyAKCQkJCQkJCSg8YSBpZD0icHJpdmF0ZV90b2dnbGUiIGhyZWY9IiI+dG9nZ2xlPC9hPikKCQkJCQkJPC9zcGFuPgoJCQkJCTwvZGl2PgoJCQkJCTxkaXY+CgkJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNob3dfZXh0ZW5kZWQiIHZhbHVlPSIxIj4KCQkJCQkJPHNwYW4gaWQ9ImV4dGVuZGVkX2xhYmVsIj5TaG93aW5nPC9zcGFuPiBleHRlbmRlZCBlbGVtZW50cyAKCQkJCQkJCSg8YSBpZD0iZXh0ZW5kZWRfdG9nZ2xlIiBocmVmPSIiPnRvZ2dsZTwvYT4pCgkJCQkJCTwvc3Bhbj4KCQkJCQk8L2Rpdj4KCQkJCTwvZGl2PgoKCQkJCTxkaXYgY2xhc3M9ImZ3X2NvbnRlbnQiPgoJCQkJCTxhIG5hbWU9Im92ZXJ2aWV3Ij48L2E+CgkJCQkJPGRpdiBjbGFzcz0iZG9jX292ZXJ2aWV3Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibmF2X2Jsb2NrZXIiPjwvZGl2PgoJCQkJCQk8ZGw+PGR0IGlkPSJDb2xSZW9yZGVyIiBjbGFzcz0iIGV2ZW4iPjxhIG5hbWU9IkNvbFJlb3JkZXIiPjwvYT48YSBuYW1lPSJDb2xSZW9yZGVyX2RldGFpbHMiPjwvYT48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPjwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGE+bmV3IENvbFJlb3JkZXI8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InNpZ25hdHVyZSI+KERhdGFUYWJsZXMsIENvbFJlb3JkZXIpPC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+PC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiBldmVuIj48cCBjbGFzcz0iZGVzY3JpcHRpb24iPkNvbFJlb3JkZXIgcHJvdmlkZXMgY29sdW1uIHZpc2libGl0eSBjb250cm9sIGZvciBEYXRhVGFibGVzPC9wPjxkaXYgY2xhc3M9ImNvbGxhcHNlX2RldGFpbHMiPjxoMz5Db25zdHJ1Y3RvcjwvaDM+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8aDU+UGFyYW1ldGVyczo8L2g1PgoKPHRhYmxlIGNsYXNzPSJwYXJhbXMiPgogICAgPHRoZWFkPgoJPHRyPgogICAgICAgIDx0aCB3aWR0aD0iMjAiPjwvdGg+CiAgICAgICAgPHRoIHdpZHRoPSIxMiUiIGNsYXNzPSJib3R0b21fYm9yZGVyIG5hbWUiPk5hbWU8L3RoPgoJCTx0aCB3aWR0aD0iMTAlIiBjbGFzcz0iYm90dG9tX2JvcmRlciI+VHlwZTwvdGg+CgkJPHRoIHdpZHRoPSIxMCUiIGNsYXNzPSJib3R0b21fYm9yZGVyIj5BdHRyaWJ1dGVzPC90aD4KCQk8dGggd2lkdGg9IjEwJSIgY2xhc3M9ImJvdHRvbV9ib3JkZXIiPkRlZmF1bHQ8L3RoPgoJCTx0aCBjbGFzcz0ibGFzdCBib3R0b21fYm9yZGVyIj5EZXNjcmlwdGlvbjwvdGg+Cgk8L3RyPgoJPC90aGVhZD4KCQoJPHRib2R5PgoJPHRyIGNsYXNzPSJldmVuIj48dGQgY2xhc3M9Im51bWJlciByaWdodF9ib3JkZXIiPjxkaXY+MTwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJuYW1lIj5EYXRhVGFibGVzPC90ZD48dGQgY2xhc3M9InR5cGUgdHlwZS1wYXJhbSI+b2JqZWN0PC90ZD48dGQgY2xhc3M9ImF0dHJpYnV0ZXMiPjwvdGQ+PHRkIGNsYXNzPSJkZWZhdWx0Ij48L3RkPjx0ZCBjbGFzcz0iZGVzY3JpcHRpb24gbGFzdCI+b2JqZWN0PC90ZD48L3RyPjx0ciBjbGFzcz0ib2RkIj48dGQgY2xhc3M9Im51bWJlciByaWdodF9ib3JkZXIiPjxkaXY+MjwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJuYW1lIj5Db2xSZW9yZGVyPC90ZD48dGQgY2xhc3M9InR5cGUgdHlwZS1wYXJhbSI+b2JqZWN0PC90ZD48dGQgY2xhc3M9ImF0dHJpYnV0ZXMiPjwvdGQ+PHRkIGNsYXNzPSJkZWZhdWx0Ij48L3RkPjx0ZCBjbGFzcz0iZGVzY3JpcHRpb24gbGFzdCI+b3B0aW9uczwvdGQ+PC90cj4KCTwvdGJvZHk+CjwvdGFibGU+PC9kaXY+CjwvZGw+CgkJCQkJPC9kaXY+CgoJCQkJCQoJCQkJCTxkaXYgY2xhc3M9ImRvY19zdW1tYXJ5Ij4KCQkJCQkJPGEgbmFtZT0ic3VtbWFyeSI+PC9hPgoJCQkJCQk8aDI+U3VtbWFyeTwvaDI+CgoJCQkJCQk8ZGl2IGNsYXNzPSJkb2NfZ3JvdXAiPjxhIG5hbWU9InN1bW1hcnlfcHJvcGVydGllcyI+PC9hPjxoMyBjbGFzcz0ic3Vic2VjdGlvbi10aXRsZSI+UHJvcGVydGllczwvaDM+Cgo8ZGw+CiAgICA8ZHQgY2xhc3M9IiAgZXZlbiI+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4mbHQ7c3RhdGljPiA8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNhb0luc3RhbmNlcyI+YW9JbnN0YW5jZXM8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gOmFycmF5PC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iICBldmVuIj5BcnJheSBvZiBhbGwgQ29sUmVvcmRlciBpbnN0YW5jZXMgZm9yIGxhdGVyIHJlZmVyZW5jZTwvZGQ+CjwvZGw+PC9kaXY+PGRpdiBjbGFzcz0iZG9jX2dyb3VwIj48YSBuYW1lPSJzdW1tYXJ5X21ldGhvZHMiPjwvYT48aDMgY2xhc3M9InN1YnNlY3Rpb24tdGl0bGUiPk1ldGhvZHM8L2gzPgoKPGRsPgogICAgPGR0IGNsYXNzPSIgZXZlbiI+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4mbHQ7c3RhdGljPiA8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNmblJlc2V0Ij5mblJlc2V0PC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJzaWduYXR1cmUiPihvYmplY3QpPC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+PC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iIGV2ZW4iPlJlc2V0IHRoZSBjb2x1bW4gb3JkZXJpbmcgZm9yIGEgRGF0YVRhYmxlcyBpbnN0YW5jZTwvZGQ+CjwvZGw+CjwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJCQoKCgkJCQkJCgkJCQkJPGRpdiBjbGFzcz0iZG9jX2RldGFpbHMiPgoJCQkJCQk8YSBuYW1lPSJkZXRhaWxzIj48L2E+CgkJCQkJCTxoMj5EZXRhaWxzPC9oMj4KCQkJCQkJPGRpdiBjbGFzcz0iZG9jX2dyb3VwIj48YSBuYW1lPSJkZXRhaWxzX3Byb3BlcnRpZXMiPjwvYT48aDMgY2xhc3M9InN1YnNlY3Rpb24tdGl0bGUiPlByb3BlcnRpZXM8L2gzPgo8ZGw+CiAgICA8ZHQgY2xhc3M9IiAgZXZlbiI+PGEgbmFtZT0iYW9JbnN0YW5jZXMiPjwvYT48YSBuYW1lPSJhb0luc3RhbmNlc19kZXRhaWxzIj48L2E+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4mbHQ7c3RhdGljPiA8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNhb0luc3RhbmNlcyI+YW9JbnN0YW5jZXM8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gOmFycmF5PC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iICBldmVuIj48cCBjbGFzcz0iZGVzY3JpcHRpb24iPkFycmF5IG9mIGFsbCBDb2xSZW9yZGVyIGluc3RhbmNlcyBmb3IgbGF0ZXIgcmVmZXJlbmNlPC9wPjxkaXYgY2xhc3M9ImNvbGxhcHNlX2RldGFpbHMiPjxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KPC9kaXY+PC9kZD4KPC9kbD48L2Rpdj48ZGl2IGNsYXNzPSJkb2NfZ3JvdXAiPjxhIG5hbWU9ImRldGFpbHNfbWV0aG9kcyI+PC9hPjxoMyBjbGFzcz0ic3Vic2VjdGlvbi10aXRsZSI+TWV0aG9kczwvaDM+CjxkbD4KICAgIDxkdCBpZD0iQ29sUmVvcmRlci5mblJlc2V0IiBjbGFzcz0iIGV2ZW4iPjxhIG5hbWU9ImZuUmVzZXQiPjwvYT48YSBuYW1lPSJmblJlc2V0X2RldGFpbHMiPjwvYT48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGE+Zm5SZXNldDwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0ic2lnbmF0dXJlIj4ob2JqZWN0KTwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgZXZlbiI+PHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5SZXNldCB0aGUgY29sdW1uIG9yZGVyaW5nIGZvciBhIERhdGFUYWJsZXMgaW5zdGFuY2U8L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8aDU+UGFyYW1ldGVyczo8L2g1PgoKPHRhYmxlIGNsYXNzPSJwYXJhbXMiPgogICAgPHRoZWFkPgoJPHRyPgogICAgICAgIDx0aCB3aWR0aD0iMjAiPjwvdGg+CiAgICAgICAgPHRoIHdpZHRoPSIxMiUiIGNsYXNzPSJib3R0b21fYm9yZGVyIG5hbWUiPk5hbWU8L3RoPgoJCTx0aCB3aWR0aD0iMTAlIiBjbGFzcz0iYm90dG9tX2JvcmRlciI+VHlwZTwvdGg+CgkJPHRoIHdpZHRoPSIxMCUiIGNsYXNzPSJib3R0b21fYm9yZGVyIj5BdHRyaWJ1dGVzPC90aD4KCQk8dGggd2lkdGg9IjEwJSIgY2xhc3M9ImJvdHRvbV9ib3JkZXIiPkRlZmF1bHQ8L3RoPgoJCTx0aCBjbGFzcz0ibGFzdCBib3R0b21fYm9yZGVyIj5EZXNjcmlwdGlvbjwvdGg+Cgk8L3RyPgoJPC90aGVhZD4KCQoJPHRib2R5PgoJPHRyIGNsYXNzPSJldmVuIj48dGQgY2xhc3M9Im51bWJlciByaWdodF9ib3JkZXIiPjxkaXY+MTwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJuYW1lIj5vYmplY3Q8L3RkPjx0ZCBjbGFzcz0idHlwZSB0eXBlLXBhcmFtIj48L3RkPjx0ZCBjbGFzcz0iYXR0cmlidXRlcyI+PC90ZD48dGQgY2xhc3M9ImRlZmF1bHQiPjwvdGQ+PHRkIGNsYXNzPSJkZXNjcmlwdGlvbiBsYXN0Ij5vVGFibGUgRGF0YVRhYmxlcyBpbnN0YW5jZSB0byBjb25zaWRlcjwvdGQ+PC90cj4KCTwvdGJvZHk+CjwvdGFibGU+PGg1PlJldHVybnM6PC9oNT48cCBjbGFzcz0icmV0dXJucyI+dm9pZDwvcD48L2Rpdj4KCjwvZGQ+CjwvZGl2PgogICAJCQkJCTwvZGl2PgoJCQkJCgkJPC9kaXY+CgoJCTxkaXYgY2xhc3M9ImZ3X2Zvb3RlciI+CgkJCQoKCQkJRG9jdW1lbnRhdGlvbiBnZW5lcmF0ZWQgYnkgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL21pY21hdGgvSlNEb2MiPkpTRG9jIDM8L2E+IG9uCgkJCTh0aCBBdWcgMjAxMiAtIDIyOjU0CgkJCXdpdGggdGhlIDxhIGhyZWY9Imh0dHA6Ly9kYXRhdGFibGVzLm5ldC8iPkRhdGFUYWJsZXM8L2E+IHRlbXBsYXRlLgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/media/docs/global.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTx0aXRsZT5HbG9iYWwgLSBkb2N1bWVudGF0aW9uPC90aXRsZT4KICAKCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgoJCQlAaW1wb3J0ICJtZWRpYS9jc3MvZG9jLmNzcyI7CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9zaENvcmUuY3NzIjsKCQkJQGltcG9ydCAibWVkaWEvY3NzL3NoVGhlbWVEYXRhVGFibGVzLmNzcyI7CgkJPC9zdHlsZT4KCQoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL3NoQ29yZS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvc2hCcnVzaEpTY3JpcHQuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvZG9jLmpzIj48L3NjcmlwdD4KCTwvaGVhZD4KCTxib2R5PgoJCTxkaXYgY2xhc3M9ImZ3X2NvbnRhaW5lciI+CgkJCQoJCQkJPGEgbmFtZT0idG9wIj48L2E+CgkJCQk8ZGl2IGNsYXNzPSJmd19oZWFkZXIiPgoJCQkJCTxoMSBjbGFzcz0icGFnZS10aXRsZSI+R2xvYmFsPC9oMT4KCQkJCQkKCQkJCQk8ZGl2IGNsYXNzPSJwYWdlLWluZm8iPgoJCQkJCQkKCQkJCQk8L2Rpdj4KCQkJCTwvZGl2PgoKCQkJCQoKCQkJCTxkaXYgY2xhc3M9ImZ3X25hdiI+CgkJCQkJPGgyPk5hdmlnYXRpb248L2gyPgoJCQkJCTx1bD4KCQkJCQk8bGk+PGEgaHJlZj0iI3RvcCI+T3ZlcnZpZXc8L2E+PC9saT4KCQkJCQk8bGk+PGEgaHJlZj0iI3N1bW1hcnkiPlN1bW1hcnk8L2E+PGRpdj48YSBocmVmPSIjc3VtbWFyeV9wcm9wZXJ0aWVzIj5Qcm9wZXJ0aWVzPC9hPiB8IDxhIGhyZWY9IiNzdW1tYXJ5X21ldGhvZHMiPk1ldGhvZHM8L2E+PC9kaXY+PC9saT48bGk+PGEgaHJlZj0iI2RldGFpbHMiPkRldGFpbHM8L2E+PGRpdj48YSBocmVmPSIjZGV0YWlsc19wcm9wZXJ0aWVzIj5Qcm9wZXJ0aWVzPC9hPiB8IDxhIGhyZWY9IiNkZXRhaWxzX21ldGhvZHMiPk1ldGhvZHM8L2E+PC9kaXY+PC9saT48L3VsPgoJCQkJCTxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDEwcHg7Ij4KCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2hvd19wcml2YXRlIiB2YWx1ZT0iMCI+CgkJCQkJCTxzcGFuIGlkPSJwcml2YXRlX2xhYmVsIj5IaWRpbmc8L3NwYW4+IHByaXZhdGUgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9InByaXZhdGVfdG9nZ2xlIiBocmVmPSIiPnRvZ2dsZTwvYT4pCgkJCQkJCTwvc3Bhbj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2PgoJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzaG93X2V4dGVuZGVkIiB2YWx1ZT0iMSI+CgkJCQkJCTxzcGFuIGlkPSJleHRlbmRlZF9sYWJlbCI+U2hvd2luZzwvc3Bhbj4gZXh0ZW5kZWQgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9ImV4dGVuZGVkX3RvZ2dsZSIgaHJlZj0iIj50b2dnbGU8L2E+KQoJCQkJCQk8L3NwYW4+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCgkJCQk8ZGl2IGNsYXNzPSJmd19jb250ZW50Ij4KCQkJCQk8YSBuYW1lPSJvdmVydmlldyI+PC9hPgoJCQkJCTxkaXYgY2xhc3M9ImRvY19vdmVydmlldyI+CgkJCQkJCTxkaXYgY2xhc3M9Im5hdl9ibG9ja2VyIj48L2Rpdj4KCQkJCQkJPGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgoKCQkJCQk8L2Rpdj4KCgkJCQkJCgkJCQkJPGRpdiBjbGFzcz0iZG9jX3N1bW1hcnkiPgoJCQkJCQk8YSBuYW1lPSJzdW1tYXJ5Ij48L2E+CgkJCQkJCTxoMj5TdW1tYXJ5PC9oMj4KCgkJCQkJCTxkaXYgY2xhc3M9ImRvY19ncm91cCI+PGEgbmFtZT0ic3VtbWFyeV9wcm9wZXJ0aWVzIj48L2E+PGgzIGNsYXNzPSJzdWJzZWN0aW9uLXRpdGxlIj5Qcm9wZXJ0aWVzPC9oMz4KCjxkbD4KICAgIDxkdCBjbGFzcz0iICBldmVuIj48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtjb25zdGFudD4gPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjQ0xBU1MiPkNMQVNTPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDpTdHJpbmc8L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgIGV2ZW4iPk5hbWUgb2YgdGhpcyBjbGFzczwvZGQ+PGR0IGNsYXNzPSIgIG9kZCI+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4mbHQ7Y29uc3RhbnQ+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI1ZFUlNJT04iPlZFUlNJT048L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gOlN0cmluZzwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiAgb2RkIj5Db2xSZW9yZGVyIHZlcnNpb248L2RkPgo8L2RsPjwvZGl2PjxkaXYgY2xhc3M9ImRvY19ncm91cCI+PGEgbmFtZT0ic3VtbWFyeV9tZXRob2RzIj48L2E+PGgzIGNsYXNzPSJzdWJzZWN0aW9uLXRpdGxlIj5NZXRob2RzPC9oMz4KCjxkbD4KICAgIDxkdCBjbGFzcz0iIGV2ZW4iPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjZm5BcnJheVN3aXRjaCI+Zm5BcnJheVN3aXRjaDwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0ic2lnbmF0dXJlIj4oYXJyYXksIGludCwgaW50KTwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPjwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiBldmVuIj5Nb2RpZnkgYW4gYXJyYXkgYnkgc3dpdGNoaW5nIHRoZSBwb3NpdGlvbiBvZiB0d28gZWxlbWVudHM8L2RkPjxkdCBjbGFzcz0iIG9kZCI+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj48L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNmbkRvbVN3aXRjaCI+Zm5Eb21Td2l0Y2g8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InNpZ25hdHVyZSI+KHN0cmluZywgaW50LCBpbnQpPC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+PC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iIG9kZCI+U3dpdGNoIHRoZSBwb3NpdGlvbnMgb2Ygbm9kZXMgaW4gYSBwYXJlbnQgbm9kZSAobm90ZSB0aGlzIGlzIHNwZWNpZmljYWxseSBkZXNpZ25lZCBmb3IgCnRhYmxlIHJvd3MpLiBOb3RlIHRoaXMgZnVuY3Rpb24gY29uc2lkZXJzIGFsbCBlbGVtZW50IG5vZGVzIHVuZGVyIHRoZSBwYXJlbnQhPC9kZD48ZHQgY2xhc3M9IiBldmVuIj48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPjwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI2ZuSW52ZXJ0S2V5VmFsdWVzIj5mbkludmVydEtleVZhbHVlczwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0ic2lnbmF0dXJlIj4oYXJyYXkpPC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+PC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iIGV2ZW4iPlN3aXRjaCB0aGUga2V5IHZhbHVlIHBhaXJpbmcgb2YgYW4gaW5kZXggYXJyYXkgdG8gYmUgdmFsdWUga2V5IChpLmUuIHRoZSBvbGQgdmFsdWUgaXMgbm93IHRoZQprZXkpLiBGb3IgZXhhbXBsZSBjb25zaWRlciBbIDIsIDAsIDEgXSB0aGlzIHdvdWxkIGJlIHJldHVybmVkIGFzIFsgMSwgMiwgMCBdLjwvZGQ+CjwvZGw+CjwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJCQoKCgkJCQkJCgkJCQkJPGRpdiBjbGFzcz0iZG9jX2RldGFpbHMiPgoJCQkJCQk8YSBuYW1lPSJkZXRhaWxzIj48L2E+CgkJCQkJCTxoMj5EZXRhaWxzPC9oMj4KCQkJCQkJPGRpdiBjbGFzcz0iZG9jX2dyb3VwIj48YSBuYW1lPSJkZXRhaWxzX3Byb3BlcnRpZXMiPjwvYT48aDMgY2xhc3M9InN1YnNlY3Rpb24tdGl0bGUiPlByb3BlcnRpZXM8L2gzPgo8ZGw+CiAgICA8ZHQgY2xhc3M9IiAgZXZlbiI+PGEgbmFtZT0iQ0xBU1MiPjwvYT48YSBuYW1lPSJDTEFTU19kZXRhaWxzIj48L2E+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4mbHQ7Y29uc3RhbnQ+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI0NMQVNTIj5DTEFTUzwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6U3RyaW5nPC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iICBldmVuIj48cCBjbGFzcz0iZGVzY3JpcHRpb24iPk5hbWUgb2YgdGhpcyBjbGFzczwvcD48ZGl2IGNsYXNzPSJjb2xsYXBzZV9kZXRhaWxzIj48ZGwgY2xhc3M9ImRldGFpbHMiPgoJCjwvZGw+CjwvZGl2PjwvZGQ+PGR0IGNsYXNzPSIgIG9kZCI+PGEgbmFtZT0iVkVSU0lPTiI+PC9hPjxhIG5hbWU9IlZFUlNJT05fZGV0YWlscyI+PC9hPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+Jmx0O2NvbnN0YW50PiA8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNWRVJTSU9OIj5WRVJTSU9OPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDpTdHJpbmc8L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgIG9kZCI+PHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5Db2xSZW9yZGVyIHZlcnNpb248L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8L2Rpdj48L2RkPgo8L2RsPjwvZGl2PjxkaXYgY2xhc3M9ImRvY19ncm91cCI+PGEgbmFtZT0iZGV0YWlsc19tZXRob2RzIj48L2E+PGgzIGNsYXNzPSJzdWJzZWN0aW9uLXRpdGxlIj5NZXRob2RzPC9oMz4KPGRsPgogICAgPGR0IGlkPSJmbkFycmF5U3dpdGNoIiBjbGFzcz0iIGV2ZW4iPjxhIG5hbWU9ImZuQXJyYXlTd2l0Y2giPjwvYT48YSBuYW1lPSJmbkFycmF5U3dpdGNoX2RldGFpbHMiPjwvYT48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPjwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGE+Zm5BcnJheVN3aXRjaDwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0ic2lnbmF0dXJlIj4oYXJyYXksIGludCwgaW50KTwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgZXZlbiI+PHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5Nb2RpZnkgYW4gYXJyYXkgYnkgc3dpdGNoaW5nIHRoZSBwb3NpdGlvbiBvZiB0d28gZWxlbWVudHM8L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8aDU+UGFyYW1ldGVyczo8L2g1PgoKPHRhYmxlIGNsYXNzPSJwYXJhbXMiPgogICAgPHRoZWFkPgoJPHRyPgogICAgICAgIDx0aCB3aWR0aD0iMjAiPjwvdGg+CiAgICAgICAgPHRoIHdpZHRoPSIxMiUiIGNsYXNzPSJib3R0b21fYm9yZGVyIG5hbWUiPk5hbWU8L3RoPgoJCTx0aCB3aWR0aD0iMTAlIiBjbGFzcz0iYm90dG9tX2JvcmRlciI+VHlwZTwvdGg+CgkJPHRoIHdpZHRoPSIxMCUiIGNsYXNzPSJib3R0b21fYm9yZGVyIj5BdHRyaWJ1dGVzPC90aD4KCQk8dGggd2lkdGg9IjEwJSIgY2xhc3M9ImJvdHRvbV9ib3JkZXIiPkRlZmF1bHQ8L3RoPgoJCTx0aCBjbGFzcz0ibGFzdCBib3R0b21fYm9yZGVyIj5EZXNjcmlwdGlvbjwvdGg+Cgk8L3RyPgoJPC90aGVhZD4KCQoJPHRib2R5PgoJPHRyIGNsYXNzPSJldmVuIj48dGQgY2xhc3M9Im51bWJlciByaWdodF9ib3JkZXIiPjxkaXY+MTwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJuYW1lIj5hcnJheTwvdGQ+PHRkIGNsYXNzPSJ0eXBlIHR5cGUtcGFyYW0iPjwvdGQ+PHRkIGNsYXNzPSJhdHRyaWJ1dGVzIj48L3RkPjx0ZCBjbGFzcz0iZGVmYXVsdCI+PC90ZD48dGQgY2xhc3M9ImRlc2NyaXB0aW9uIGxhc3QiPmFBcnJheSBBcnJheSB0byBjb25zaWRlciwgd2lsbCBiZSBtb2RpZmllZCBieSByZWZlcmVuY2UgKGkuZS4gbm8gcmV0dXJuKTwvdGQ+PC90cj48dHIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJudW1iZXIgcmlnaHRfYm9yZGVyIj48ZGl2PjI8L2Rpdj48L3RkPjx0ZCBjbGFzcz0ibmFtZSI+aW50PC90ZD48dGQgY2xhc3M9InR5cGUgdHlwZS1wYXJhbSI+PC90ZD48dGQgY2xhc3M9ImF0dHJpYnV0ZXMiPjwvdGQ+PHRkIGNsYXNzPSJkZWZhdWx0Ij48L3RkPjx0ZCBjbGFzcz0iZGVzY3JpcHRpb24gbGFzdCI+aUZyb20gRnJvbSBwb2ludDwvdGQ+PC90cj48dHIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0ibnVtYmVyIHJpZ2h0X2JvcmRlciI+PGRpdj4zPC9kaXY+PC90ZD48dGQgY2xhc3M9Im5hbWUiPmludDwvdGQ+PHRkIGNsYXNzPSJ0eXBlIHR5cGUtcGFyYW0iPjwvdGQ+PHRkIGNsYXNzPSJhdHRyaWJ1dGVzIj48L3RkPjx0ZCBjbGFzcz0iZGVmYXVsdCI+PC90ZD48dGQgY2xhc3M9ImRlc2NyaXB0aW9uIGxhc3QiPmlUbyBJbnNlcnQgcG9pbnQ8L3RkPjwvdHI+Cgk8L3Rib2R5Pgo8L3RhYmxlPjxoNT5SZXR1cm5zOjwvaDU+PHAgY2xhc3M9InJldHVybnMiPnZvaWQ8L3A+PC9kaXY+CjxkdCBpZD0iZm5Eb21Td2l0Y2giIGNsYXNzPSIgb2RkIj48YSBuYW1lPSJmbkRvbVN3aXRjaCI+PC9hPjxhIG5hbWU9ImZuRG9tU3dpdGNoX2RldGFpbHMiPjwvYT48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPjwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGE+Zm5Eb21Td2l0Y2g8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InNpZ25hdHVyZSI+KHN0cmluZywgaW50LCBpbnQpPC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+PC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiBvZGQiPjxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+U3dpdGNoIHRoZSBwb3NpdGlvbnMgb2Ygbm9kZXMgaW4gYSBwYXJlbnQgbm9kZSAobm90ZSB0aGlzIGlzIHNwZWNpZmljYWxseSBkZXNpZ25lZCBmb3IgCnRhYmxlIHJvd3MpLiBOb3RlIHRoaXMgZnVuY3Rpb24gY29uc2lkZXJzIGFsbCBlbGVtZW50IG5vZGVzIHVuZGVyIHRoZSBwYXJlbnQhPC9wPjxkaXYgY2xhc3M9ImNvbGxhcHNlX2RldGFpbHMiPjxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KPGg1PlBhcmFtZXRlcnM6PC9oNT4KCjx0YWJsZSBjbGFzcz0icGFyYW1zIj4KICAgIDx0aGVhZD4KCTx0cj4KICAgICAgICA8dGggd2lkdGg9IjIwIj48L3RoPgogICAgICAgIDx0aCB3aWR0aD0iMTIlIiBjbGFzcz0iYm90dG9tX2JvcmRlciBuYW1lIj5OYW1lPC90aD4KCQk8dGggd2lkdGg9IjEwJSIgY2xhc3M9ImJvdHRvbV9ib3JkZXIiPlR5cGU8L3RoPgoJCTx0aCB3aWR0aD0iMTAlIiBjbGFzcz0iYm90dG9tX2JvcmRlciI+QXR0cmlidXRlczwvdGg+CgkJPHRoIHdpZHRoPSIxMCUiIGNsYXNzPSJib3R0b21fYm9yZGVyIj5EZWZhdWx0PC90aD4KCQk8dGggY2xhc3M9Imxhc3QgYm90dG9tX2JvcmRlciI+RGVzY3JpcHRpb248L3RoPgoJPC90cj4KCTwvdGhlYWQ+CgkKCTx0Ym9keT4KCTx0ciBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJudW1iZXIgcmlnaHRfYm9yZGVyIj48ZGl2PjE8L2Rpdj48L3RkPjx0ZCBjbGFzcz0ibmFtZSI+c3RyaW5nPC90ZD48dGQgY2xhc3M9InR5cGUgdHlwZS1wYXJhbSI+PC90ZD48dGQgY2xhc3M9ImF0dHJpYnV0ZXMiPjwvdGQ+PHRkIGNsYXNzPSJkZWZhdWx0Ij48L3RkPjx0ZCBjbGFzcz0iZGVzY3JpcHRpb24gbGFzdCI+c1RhZyBUYWcgdG8gY29uc2lkZXI8L3RkPjwvdHI+PHRyIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0ibnVtYmVyIHJpZ2h0X2JvcmRlciI+PGRpdj4yPC9kaXY+PC90ZD48dGQgY2xhc3M9Im5hbWUiPmludDwvdGQ+PHRkIGNsYXNzPSJ0eXBlIHR5cGUtcGFyYW0iPjwvdGQ+PHRkIGNsYXNzPSJhdHRyaWJ1dGVzIj48L3RkPjx0ZCBjbGFzcz0iZGVmYXVsdCI+PC90ZD48dGQgY2xhc3M9ImRlc2NyaXB0aW9uIGxhc3QiPmlGcm9tIEVsZW1lbnQgdG8gbW92ZTwvdGQ+PC90cj48dHIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0ibnVtYmVyIHJpZ2h0X2JvcmRlciI+PGRpdj4zPC9kaXY+PC90ZD48dGQgY2xhc3M9Im5hbWUiPmludDwvdGQ+PHRkIGNsYXNzPSJ0eXBlIHR5cGUtcGFyYW0iPjwvdGQ+PHRkIGNsYXNzPSJhdHRyaWJ1dGVzIj48L3RkPjx0ZCBjbGFzcz0iZGVmYXVsdCI+PC90ZD48dGQgY2xhc3M9ImRlc2NyaXB0aW9uIGxhc3QiPlBvaW50IHRvIGVsZW1lbnQgdGhlIGVsZW1lbnQgdG8gKGJlZm9yZSB0aGlzIHBvaW50KSwgY2FuIGJlIG51bGwgZm9yIGFwcGVuZDwvdGQ+PC90cj4KCTwvdGJvZHk+CjwvdGFibGU+PGg1PlJldHVybnM6PC9oNT48cCBjbGFzcz0icmV0dXJucyI+dm9pZDwvcD48L2Rpdj4KPGR0IGlkPSJmbkludmVydEtleVZhbHVlcyIgY2xhc3M9IiBldmVuIj48YSBuYW1lPSJmbkludmVydEtleVZhbHVlcyI+PC9hPjxhIG5hbWU9ImZuSW52ZXJ0S2V5VmFsdWVzX2RldGFpbHMiPjwvYT48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPjwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGE+Zm5JbnZlcnRLZXlWYWx1ZXM8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InNpZ25hdHVyZSI+KGFycmF5KTwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgZXZlbiI+PHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5Td2l0Y2ggdGhlIGtleSB2YWx1ZSBwYWlyaW5nIG9mIGFuIGluZGV4IGFycmF5IHRvIGJlIHZhbHVlIGtleSAoaS5lLiB0aGUgb2xkIHZhbHVlIGlzIG5vdyB0aGUKa2V5KS4gRm9yIGV4YW1wbGUgY29uc2lkZXIgWyAyLCAwLCAxIF0gdGhpcyB3b3VsZCBiZSByZXR1cm5lZCBhcyBbIDEsIDIsIDAgXS48L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8aDU+UGFyYW1ldGVyczo8L2g1PgoKPHRhYmxlIGNsYXNzPSJwYXJhbXMiPgogICAgPHRoZWFkPgoJPHRyPgogICAgICAgIDx0aCB3aWR0aD0iMjAiPjwvdGg+CiAgICAgICAgPHRoIHdpZHRoPSIxMiUiIGNsYXNzPSJib3R0b21fYm9yZGVyIG5hbWUiPk5hbWU8L3RoPgoJCTx0aCB3aWR0aD0iMTAlIiBjbGFzcz0iYm90dG9tX2JvcmRlciI+VHlwZTwvdGg+CgkJPHRoIHdpZHRoPSIxMCUiIGNsYXNzPSJib3R0b21fYm9yZGVyIj5BdHRyaWJ1dGVzPC90aD4KCQk8dGggd2lkdGg9IjEwJSIgY2xhc3M9ImJvdHRvbV9ib3JkZXIiPkRlZmF1bHQ8L3RoPgoJCTx0aCBjbGFzcz0ibGFzdCBib3R0b21fYm9yZGVyIj5EZXNjcmlwdGlvbjwvdGg+Cgk8L3RyPgoJPC90aGVhZD4KCQoJPHRib2R5PgoJPHRyIGNsYXNzPSJldmVuIj48dGQgY2xhc3M9Im51bWJlciByaWdodF9ib3JkZXIiPjxkaXY+MTwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJuYW1lIj5hcnJheTwvdGQ+PHRkIGNsYXNzPSJ0eXBlIHR5cGUtcGFyYW0iPjwvdGQ+PHRkIGNsYXNzPSJhdHRyaWJ1dGVzIj48L3RkPjx0ZCBjbGFzcz0iZGVmYXVsdCI+PC90ZD48dGQgY2xhc3M9ImRlc2NyaXB0aW9uIGxhc3QiPmFJbiBBcnJheSB0byBzd2l0Y2ggYXJvdW5kPC90ZD48L3RyPgoJPC90Ym9keT4KPC90YWJsZT48aDU+UmV0dXJuczo8L2g1PjxwIGNsYXNzPSJyZXR1cm5zIj5hcnJheTwvcD48L2Rpdj4KCjwvZGQ+CjwvZGl2PgogICAJCQkJCTwvZGl2PgoJCQkJCgkJPC9kaXY+CgoJCTxkaXYgY2xhc3M9ImZ3X2Zvb3RlciI+CgkJCQoKCQkJRG9jdW1lbnRhdGlvbiBnZW5lcmF0ZWQgYnkgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL21pY21hdGgvSlNEb2MiPkpTRG9jIDM8L2E+IG9uCgkJCTh0aCBBdWcgMjAxMiAtIDIyOjU0CgkJCXdpdGggdGhlIDxhIGhyZWY9Imh0dHA6Ly9kYXRhdGFibGVzLm5ldC8iPkRhdGFUYWJsZXM8L2E+IHRlbXBsYXRlLgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/media/docs/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTx0aXRsZT5UYWJsZSBvZiBDb250ZW50cyAtIGRvY3VtZW50YXRpb248L3RpdGxlPgogIAoJCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9kb2MuY3NzIjsKCQkJQGltcG9ydCAibWVkaWEvY3NzL3NoQ29yZS5jc3MiOwoJCQlAaW1wb3J0ICJtZWRpYS9jc3Mvc2hUaGVtZURhdGFUYWJsZXMuY3NzIjsKCQk8L3N0eWxlPgoJCgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvc2hDb3JlLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9zaEJydXNoSlNjcmlwdC5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvanF1ZXJ5LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9kb2MuanMiPjwvc2NyaXB0PgoJPC9oZWFkPgoJPGJvZHk+CgkJPGRpdiBjbGFzcz0iZndfY29udGFpbmVyIj4KCQkJPGEgbmFtZT0idG9wIj48L2E+CgkJCTxkaXYgY2xhc3M9ImZ3X2hlYWRlciI+CgkJCTwvZGl2PgoKCQkJPGRpdiBjbGFzcz0iZndfY29udGVudCI+CgkJCQk8aDMgY2xhc3M9InN1YnNlY3Rpb24tdGl0bGUiPlRhYmxlIG9mIENvbnRlbnRzPC9oMz4KCQkJCTxkbD4KCQkJCQk8ZHQ+PGEgaHJlZj0iQ29sUmVvcmRlci5odG1sIj5Db2xSZW9yZGVyPC9hPjwvZHQ+PGRkPkNvbFJlb3JkZXIgcHJvdmlkZXMgY29sdW1uIHZpc2libGl0eSBjb250cm9sIGZvciBEYXRhVGFibGVzPC9kZD4KCQkJCTwvZGw+CiAgIAkJCTwvZGl2PgoJCTwvZGl2PgoKCQk8ZGl2IGNsYXNzPSJmd19mb290ZXIiPgoJCQkKCgkJCURvY3VtZW50YXRpb24gZ2VuZXJhdGVkIGJ5IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9taWNtYXRoL0pTRG9jIj5KU0RvYyAzPC9hPiBvbgoJCQk4dGggQXVnIDIwMTIgLSAyMjo1NAoJCQl3aXRoIHRoZSA8YSBocmVmPSJodHRwOi8vZGF0YXRhYmxlcy5uZXQvIj5EYXRhVGFibGVzPC9hPiB0ZW1wbGF0ZS4KCQk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/media/docs/media/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/media/docs/media/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/media/docs/media/css/doc.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKQ29weXJpZ2h0IChjKSAyMDA2LCBZYWhvbyEgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpDb2RlIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0QgTGljZW5zZToKaHR0cDovL2RldmVsb3Blci55YWhvby5uZXQveXVpL2xpY2Vuc2UudHh0CnZlcnNpb246IDAuMTIuMAoqLwpib2R5LGRpdixkbCxkdCxkZCx1bCxvbCxsaSxoMSxoMixoMyxoNCxoNSxoNixwcmUsZm9ybSxmaWVsZHNldCxpbnB1dCx0ZXh0YXJlYSxwLGJsb2NrcXVvdGUsdGgsdGR7bWFyZ2luOjA7cGFkZGluZzowO30KdGFibGV7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO2JvcmRlci1zcGFjaW5nOjA7fQpmaWVsZHNldCxpbWd7Ym9yZGVyOjA7fQphZGRyZXNzLGNhcHRpb24sY2l0ZSxjb2RlLGRmbixlbSxzdHJvbmcsdGgsdmFye2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDt9Cm9sLHVsIHtsaXN0LXN0eWxlOm5vbmU7fQpjYXB0aW9uLHRoIHt0ZXh0LWFsaWduOmxlZnQ7fQpoMSxoMixoMyxoNCxoNSxoNntmb250LXNpemU6MTAwJTtmb250LXdlaWdodDpub3JtYWw7fQpxOmJlZm9yZSxxOmFmdGVye2NvbnRlbnQ6Jyc7fQphYmJyLGFjcm9ueW0ge2JvcmRlcjowO30KCgpodG1sLCBib2R5IHsKCW1hcmdpbjogMDsKCXBhZGRpbmc6IDA7Cgl3aWR0aDogMTAwJTsKCWZvbnQ6IDE0cHgvMS40NWVtICJMdWNpZGEgR3JhbmRlIiwgVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsKCWNvbG9yOiAjMTExOwp9CgpkaXYuZndfY29udGFpbmVyIHsKCXdpZHRoOiA5ODBweDsKCXBhZGRpbmctdG9wOiAyZW07CgltYXJnaW46IDAgYXV0bzsKfQoKZGl2LmZ3X2hlYWRlciB7Cglwb3NpdGlvbjogcmVsYXRpdmU7Cn0KCmRpdi5md19jb250ZW50IHsKCXBhZGRpbmctdG9wOiAyZW07Cn0KCmRpdi5md19mb290ZXIgewoJcGFkZGluZy10b3A6IDRlbTsKCWZvbnQtc2l6ZTogNzUlOwoJdGV4dC1hbGlnbjogY2VudGVyOwp9CgoKCi50eXBlLXBhcmFtIHsKCQp9CgoudHlwZS1hdHRyIHsKCWZsb2F0OiByaWdodDsKCWNvbG9yOiAjOTk5Owp9CgoudHlwZS1uYW1lIHsKCWZvbnQtd2VpZ2h0OiBib2xkOwp9CgoudHlwZS1zaWcgewoJY29sb3I6ICM5OTk7Cn0KCi50eXBlLXBhcmFtIHsKCWNvbG9yOiAjRkY5OTk5Owp9CgoudHlwZS1yZXR1cm4gewoJY29sb3I6ICNGRjgwODA7Cn0KCi50eXBlLWJyYWNlIHsKCWNvbG9yOiAjMTExOwp9CgouZXhhbXBsZS1jb2RlIHsKCW1hcmdpbi1sZWZ0OiAzMHB4Owp9Ci5leGFtcGxlLWNvZGUgdGQuY29kZSB7Cglib3JkZXItdG9wOiAxcHggc29saWQgIzRFNkNBMyAhaW1wb3J0YW50Owp9CgoudHlwZS1hdWdtZW50ZWQgewoJcG9zaXRpb246IGFic29sdXRlOwoJbGVmdDogOHB4OwoJdG9wOiAwOwp9CgpkdCwgZGQgewoJcGFkZGluZzogMC40ZW0gMTBweDsKfQoKZHQgewoJcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDsKfQoKZGQgewoJcG9zaXRpb246IHJlbGF0aXZlOwoJcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDsKCXBhZGRpbmctbGVmdDogM2VtOwp9CgpkdC5ldmVuLCBkZC5ldmVuIHsKCWJhY2tncm91bmQtY29sb3I6IHdoaXRlOwp9CgpkdC5vZGQsIGRkLm9kZCB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjRjJGMkYyOwp9CgpkaXYuZG9jX292ZXJ2aWV3IGRkLCBkaXYuZG9jX292ZXJ2aWV3IGR0IHsKCXBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50Owp9CgoKCi5kb2NfZGV0YWlscyBkdCwgLmRvY19kZXRhaWxzIGRkIHsKCXBhZGRpbmc6IDFlbSAxMHB4Owp9CgoucmlnaHRfYm9yZGVyIGRpdiB7Cgl3aWR0aDogMjBweDsKCXBhZGRpbmc6IDJweCAwLjVlbSAycHggMWVtOwoJdGV4dC1hbGlnbjogcmlnaHQ7Cn0KLnJpZ2h0X2JvcmRlciB7Cglib3JkZXItcmlnaHQ6IDNweCBzb2xpZCAjNEU2Q0EzOwp9Ci5ib3R0b21fYm9yZGVyIHsKCWJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNEU2Q0EzOwp9CgoKYSB7Cgl0ZXh0LWRlY29yYXRpb246IG5vbmU7Cgljb2xvcjogIzRFNkNBMzsKfQoKYTpob3ZlciB7Cgl0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKCWN1cnNvcjogcG9pbnRlcjsKCSpjdXJzb3I6IGhhbmQ7Cn0KCmRpdi5md19jb250ZW50IHVsIHsKCWxpc3Qtc3R5bGUtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2Fycm93LmpwZycpOwoJcGFkZGluZzogMC41ZW0gMCAwLjVlbSAyZW07Cn0KCi8qCmgyIHsKCWZvbnQtc2l6ZTogMS40ZW07CgltYXJnaW4tdG9wOiAyZW07Cglib3JkZXItYm90dG9tOiAzcHggc29saWQgIzgyOWFjNjsKCXBhZGRpbmctbGVmdDogNXB4Owp9CgpoMyB7Cglmb250LXNpemU6IDEuMmVtOwoJbWFyZ2luLXRvcDogMWVtOwoJYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNBNEI1RDU7CglwYWRkaW5nLWxlZnQ6IDVweDsKfQoqLwoKaDEgewoJZm9udC1zaXplOiAyZW07Cn0KCmgyIHsKCWZvbnQtc2l6ZTogMS42ZW07CglwYWRkaW5nLXRvcDogNXB4Owp9CgpoMi5hbmNlc3RvcnMgewoJZm9udC1zaXplOiAxNHB4OwoJbWFyZ2luOiAwOwp9CgpoMyB7Cglmb250LXNpemU6IDEuM2VtOwoJcGFkZGluZy10b3A6IDVweDsKCW1hcmdpbi1ib3R0b206IDVweDsKfQoKaDUgewoJcGFkZGluZy10b3A6IDZweDsKfQoKZGl2LmRvY19zdW1tYXJ5LCBkaXYuZG9jX2RldGFpbHMgewoJbWFyZ2luLXRvcDogMmVtOwoJY2xlYXI6IGJvdGg7Cn0KCmRpdi5kb2NfZ3JvdXAgewoJbWFyZ2luLXRvcDogMWVtOwoJYm9yZGVyLXRvcDogMXB4IHNvbGlkICNBNEI1RDU7Cglib3JkZXItbGVmdDogMXB4IHNvbGlkICNBNEI1RDU7CglwYWRkaW5nLWxlZnQ6IDEwcHg7Cn0KCmRpdi5leHRlbmRlZCB7CgltYXJnaW4tbGVmdDogMzBweDsKfQoKdGFibGUucGFyYW1zIHsKCW1hcmdpbi1sZWZ0OiAzMHB4OwoJd2lkdGg6IDk3JTsKfQoKdHIub2RkIHsKCWJhY2tncm91bmQtY29sb3I6IHdoaXRlOwp9Cgp0ci5ldmVuIHsKCWJhY2tncm91bmQtY29sb3I6ICNGOEY4Rjg7Cn0KCnRoLm5hbWUsCnRkLm5hbWUgewoJcGFkZGluZy1sZWZ0OiAxM3B4Owp9Cgp0ZC5udW1iZXIgewoJYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7Cgljb2xvcjogIzVDNUM1QzsKfQoKZGQub2RkIHRkLm51bWJlciB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjRjJGMkYyOwp9CgpwLnJldHVybnMgewoJbWFyZ2luLWxlZnQ6IDUlOwp9CgpkaXYucGFnZS1pbmZvIHsKCXBvc2l0aW9uOiBhYnNvbHV0ZTsKCXRvcDogMDsKCXJpZ2h0OiAwOwp9CgoKLnByaXZhdGUgewoJZGlzcGxheTogbm9uZTsKfQoKCgoKZGl2LmZ3X25hdiB7Cglwb3NpdGlvbjogZml4ZWQ7Cgl0b3A6IDYwcHg7CglyaWdodDogMzBweDsKCXdpZHRoOiAyNTBweDsKCWJvcmRlcjogMXB4IHNvbGlkICNBNEI1RDU7CgliYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKCXBhZGRpbmc6IDEwcHg7Cgl6LWluZGV4OiAxMDAxOwoJZm9udC1zaXplOiAxMnB4OwoJb3ZlcmZsb3c6IGhpZGRlbjsKfQoKZGl2LmZ3X25hdiBoMiB7CgltYXJnaW46IC0xMHB4IDAgMTBweCAtMTBweDsKCXdpZHRoOiAyNTBweDsKCXBhZGRpbmc6IDVweCAxMHB4OwoJYmFja2dyb3VuZC1jb2xvcjogI0E0QjVENTsKCWZvbnQtc2l6ZTogMTJweDsKCWN1cnNvcjogcG9pbnRlcjsKCSpjdXJzb3I6IGhhbmQ7Cn0KCmRpdi5md19uYXYgdWw+bGk+ZGl2IHsKCXBhZGRpbmc6IDAgMCAwIDFlbTsKfQoKZGl2Lm5hdl9ibG9ja2VyIHsKCWZsb2F0OiByaWdodDsKfQoKCgoKCgoKLmNzc19jbGVhciB7CgljbGVhcjogYm90aDsKCWhlaWdodDogMDsKCWxpbmUtaGVpZ2h0OiAwOwoJdmlzaWJpbGl0eTogaGlkZGVuOwp9CgouY3NzX3JpZ2h0IHsKCXRleHQtYWxpZ246IHJpZ2h0Owp9CgouY3NzX2NlbnRlciB7Cgl0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCi5jc3Nfc3BhY2luZyB7CgltYXJnaW4tdG9wOiAxLjVlbTsKfQoKLmNzc19zbWFsbCB7Cglmb250LXNpemU6IDc1JTsKCWxpbmUtaGVpZ2h0OiAxLjQ1ZW07Cn0KCi5jc3NfdnNtYWxsIHsKCWZvbnQtc2l6ZTogNjUlOwoJbGluZS1oZWlnaHQ6IDEuNDVlbTsKfQo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/media/docs/media/css/shCore.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIFN5bnRheEhpZ2hsaWdodGVyCiAqIGh0dHA6Ly9hbGV4Z29yYmF0Y2hldi5jb20vU3ludGF4SGlnaGxpZ2h0ZXIKICoKICogU3ludGF4SGlnaGxpZ2h0ZXIgaXMgZG9uYXRpb253YXJlLiBJZiB5b3UgYXJlIHVzaW5nIGl0LCBwbGVhc2UgZG9uYXRlLgogKiBodHRwOi8vYWxleGdvcmJhdGNoZXYuY29tL1N5bnRheEhpZ2hsaWdodGVyL2RvbmF0ZS5odG1sCiAqCiAqIEB2ZXJzaW9uCiAqIDMuMC44MyAoSnVseSAwMiAyMDEwKQogKiAKICogQGNvcHlyaWdodAogKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMCBBbGV4IEdvcmJhdGNoZXYuCiAqCiAqIEBsaWNlbnNlCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzLgogKi8KLnN5bnRheGhpZ2hsaWdodGVyIGEsCi5zeW50YXhoaWdobGlnaHRlciBkaXYsCi5zeW50YXhoaWdobGlnaHRlciBjb2RlLAouc3ludGF4aGlnaGxpZ2h0ZXIgdGFibGUsCi5zeW50YXhoaWdobGlnaHRlciB0YWJsZSB0ZCwKLnN5bnRheGhpZ2hsaWdodGVyIHRhYmxlIHRyLAouc3ludGF4aGlnaGxpZ2h0ZXIgdGFibGUgdGJvZHksCi5zeW50YXhoaWdobGlnaHRlciB0YWJsZSB0aGVhZCwKLnN5bnRheGhpZ2hsaWdodGVyIHRhYmxlIGNhcHRpb24sCi5zeW50YXhoaWdobGlnaHRlciB0ZXh0YXJlYSB7CiAgLW1vei1ib3JkZXItcmFkaXVzOiAwIDAgMCAwICFpbXBvcnRhbnQ7CiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwIDAgMCAwICFpbXBvcnRhbnQ7CiAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50OwogIGJvcmRlcjogMCAhaW1wb3J0YW50OwogIGJvdHRvbTogYXV0byAhaW1wb3J0YW50OwogIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7CiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7CiAgbGVmdDogYXV0byAhaW1wb3J0YW50OwogIGxpbmUtaGVpZ2h0OiAxLjFlbSAhaW1wb3J0YW50OwogIG1hcmdpbjogMCAhaW1wb3J0YW50OwogIG91dGxpbmU6IDAgIWltcG9ydGFudDsKICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50OwogIHBhZGRpbmc6IDAgIWltcG9ydGFudDsKICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7CiAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDsKICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7CiAgdG9wOiBhdXRvICFpbXBvcnRhbnQ7CiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lICFpbXBvcnRhbnQ7CiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDsKICBib3gtc2l6aW5nOiBjb250ZW50LWJveCAhaW1wb3J0YW50OwogIGZvbnQtZmFtaWx5OiAiQ29uc29sYXMiLCJNb25hY28iLCJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8iLCJDb3VyaWVyIE5ldyIsQ291cmllcixtb25vc3BhY2UgIWltcG9ydGFudDsKICBmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7CiAgZm9udC1zdHlsZTogbm9ybWFsICFpbXBvcnRhbnQ7CiAgZm9udC1zaXplOiAxZW0gIWltcG9ydGFudDsKICBtaW4taGVpZ2h0OiBpbmhlcml0ICFpbXBvcnRhbnQ7CiAgbWluLWhlaWdodDogYXV0byAhaW1wb3J0YW50Owp9Cgouc3ludGF4aGlnaGxpZ2h0ZXIgewogIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CiAgbWFyZ2luOiAxZW0gMCAxZW0gMCAhaW1wb3J0YW50OwogIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50OwogIG92ZXJmbG93OiBhdXRvICFpbXBvcnRhbnQ7CiAgZm9udC1zaXplOiAxZW0gIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIuc291cmNlIHsKICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC5ib2xkIHsKICBmb250LXdlaWdodDogYm9sZCAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuaXRhbGljIHsKICBmb250LXN0eWxlOiBpdGFsaWMgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgLmxpbmUgewogIHdoaXRlLXNwYWNlOiBwcmUgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgdGFibGUgewogIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIHRhYmxlIGNhcHRpb24gewogIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsKICBwYWRkaW5nOiAuNWVtIDAgMC41ZW0gMWVtICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIHRhYmxlIHRkLmNvZGUgewogIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIHRhYmxlIHRkLmNvZGUgLmNvbnRhaW5lciB7CiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIHRhYmxlIHRkLmNvZGUgLmNvbnRhaW5lciB0ZXh0YXJlYSB7CiAgYm94LXNpemluZzogYm9yZGVyLWJveCAhaW1wb3J0YW50OwogIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50OwogIGxlZnQ6IDAgIWltcG9ydGFudDsKICB0b3A6IDAgIWltcG9ydGFudDsKICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OwogIGhlaWdodDogMTAwJSAhaW1wb3J0YW50OwogIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50OwogIGJhY2tncm91bmQ6IHdoaXRlICFpbXBvcnRhbnQ7CiAgcGFkZGluZy1sZWZ0OiAxZW0gIWltcG9ydGFudDsKICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7CiAgd2hpdGUtc3BhY2U6IHByZSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciB0YWJsZSB0ZC5ndXR0ZXIgLmxpbmUgewogIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7CiAgcGFkZGluZzogMnB4IDAuNWVtIDJweCAxZW0gIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgdGFibGUgdGQuY29kZSAubGluZSB7CiAgcGFkZGluZzogMnB4IDFlbSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5ub2d1dHRlciB0ZC5jb2RlIC5jb250YWluZXIgdGV4dGFyZWEsIC5zeW50YXhoaWdobGlnaHRlci5ub2d1dHRlciB0ZC5jb2RlIC5saW5lIHsKICBwYWRkaW5nLWxlZnQ6IDBlbSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5zaG93IHsKICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5jb2xsYXBzZWQgdGFibGUgewogIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIuY29sbGFwc2VkIC50b29sYmFyIHsKICBwYWRkaW5nOiAwLjFlbSAwLjhlbSAwZW0gMC44ZW0gIWltcG9ydGFudDsKICBmb250LXNpemU6IDFlbSAhaW1wb3J0YW50OwogIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDsKICB3aWR0aDogYXV0byAhaW1wb3J0YW50OwogIGhlaWdodDogYXV0byAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5jb2xsYXBzZWQgLnRvb2xiYXIgc3BhbiB7CiAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7CiAgbWFyZ2luLXJpZ2h0OiAxZW0gIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIuY29sbGFwc2VkIC50b29sYmFyIHNwYW4gYSB7CiAgcGFkZGluZzogMCAhaW1wb3J0YW50OwogIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIuY29sbGFwc2VkIC50b29sYmFyIHNwYW4gYS5leHBhbmRTb3VyY2UgewogIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAudG9vbGJhciB7CiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7CiAgcmlnaHQ6IDFweCAhaW1wb3J0YW50OwogIHRvcDogMXB4ICFpbXBvcnRhbnQ7CiAgd2lkdGg6IDExcHggIWltcG9ydGFudDsKICBoZWlnaHQ6IDExcHggIWltcG9ydGFudDsKICBmb250LXNpemU6IDEwcHggIWltcG9ydGFudDsKICB6LWluZGV4OiAxMCAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAudG9vbGJhciBzcGFuLnRpdGxlIHsKICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgLnRvb2xiYXIgYSB7CiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsKICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsKICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsKICBwYWRkaW5nLXRvcDogMXB4ICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC50b29sYmFyIGEuZXhwYW5kU291cmNlIHsKICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLmllIHsKICBmb250LXNpemU6IC45ZW0gIWltcG9ydGFudDsKICBwYWRkaW5nOiAxcHggMCAxcHggMCAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5pZSAudG9vbGJhciB7CiAgbGluZS1oZWlnaHQ6IDhweCAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5pZSAudG9vbGJhciBhIHsKICBwYWRkaW5nLXRvcDogMHB4ICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5saW5lLmFsdDEgLmNvbnRlbnQsCi5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAubGluZS5hbHQyIC5jb250ZW50LAouc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLmxpbmUuaGlnaGxpZ2h0ZWQgLm51bWJlciwKLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5saW5lLmhpZ2hsaWdodGVkLmFsdDEgLmNvbnRlbnQsCi5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAubGluZS5oaWdobGlnaHRlZC5hbHQyIC5jb250ZW50IHsKICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5saW5lIC5udW1iZXIgewogIGNvbG9yOiAjYmJiYmJiICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5saW5lIC5jb250ZW50IHsKICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLnRvb2xiYXIgewogIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgYSB7CiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5wbGFpbiwgLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5wbGFpbiBhIHsKICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLmNvbW1lbnRzLCAuc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLmNvbW1lbnRzIGEgewogIGNvbG9yOiAjMDA4MjAwICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5zdHJpbmcsIC5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAuc3RyaW5nIGEgewogIGNvbG9yOiBibHVlICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5rZXl3b3JkIHsKICBjb2xvcjogIzAwNjY5OSAhaW1wb3J0YW50OwogIGZvbnQtd2VpZ2h0OiBib2xkICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5wcmVwcm9jZXNzb3IgewogIGNvbG9yOiBncmF5ICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC52YXJpYWJsZSB7CiAgY29sb3I6ICNhYTc3MDAgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLnZhbHVlIHsKICBjb2xvcjogIzAwOTkwMCAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAuZnVuY3Rpb25zIHsKICBjb2xvcjogI2ZmMTQ5MyAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAuY29uc3RhbnRzIHsKICBjb2xvcjogIzAwNjZjYyAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAuc2NyaXB0IHsKICBmb250LXdlaWdodDogYm9sZCAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAuY29sb3IxLCAuc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLmNvbG9yMSBhIHsKICBjb2xvcjogZ3JheSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAuY29sb3IyLCAuc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLmNvbG9yMiBhIHsKICBjb2xvcjogI2ZmMTQ5MyAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAuY29sb3IzLCAuc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLmNvbG9yMyBhIHsKICBjb2xvcjogcmVkICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5icmVhaywgLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5icmVhayBhIHsKICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsKfQo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/media/docs/media/css/shThemeDataTables.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIFN5bnRheEhpZ2hsaWdodGVyCiAqIGh0dHA6Ly9hbGV4Z29yYmF0Y2hldi5jb20vU3ludGF4SGlnaGxpZ2h0ZXIKICoKICogU3ludGF4SGlnaGxpZ2h0ZXIgaXMgZG9uYXRpb253YXJlLiBJZiB5b3UgYXJlIHVzaW5nIGl0LCBwbGVhc2UgZG9uYXRlLgogKiBodHRwOi8vYWxleGdvcmJhdGNoZXYuY29tL1N5bnRheEhpZ2hsaWdodGVyL2RvbmF0ZS5odG1sCiAqCiAqIEB2ZXJzaW9uCiAqIDMuMC44MyAoSnVseSAwMiAyMDEwKQogKiAKICogQGNvcHlyaWdodAogKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMCBBbGV4IEdvcmJhdGNoZXYuCiAqCiAqIEBsaWNlbnNlCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzLgogKi8KLnN5bnRheGhpZ2hsaWdodGVyIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50OwogIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50OwogIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC5saW5lLmFsdDEgewogIGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC5saW5lLmFsdDIgewogIGJhY2tncm91bmQtY29sb3I6ICNGOEY4RjggIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgLmxpbmUuaGlnaGxpZ2h0ZWQuYWx0MSwgLnN5bnRheGhpZ2hsaWdodGVyIC5saW5lLmhpZ2hsaWdodGVkLmFsdDIgewogIGJhY2tncm91bmQtY29sb3I6ICNlMGUwZTAgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgLmxpbmUuaGlnaGxpZ2h0ZWQubnVtYmVyIHsKICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgdGFibGUgY2FwdGlvbiB7CiAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC5ndXR0ZXIgewp9Ci5zeW50YXhoaWdobGlnaHRlciAuZ3V0dGVyIGRpdiB7CiAgY29sb3I6ICM1QzVDNUMgIWltcG9ydGFudDsKICB3aWR0aDogMjBweCAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuZ3V0dGVyIC5saW5lLmFsdDEsIC5zeW50YXhoaWdobGlnaHRlciAgLmd1dHRlciAubGluZS5hbHQyIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50Owp9Ci5vZGQgLnN5bnRheGhpZ2hsaWdodGVyIC5ndXR0ZXIgLmxpbmUuYWx0MSwgLm9kZCAuc3ludGF4aGlnaGxpZ2h0ZXIgIC5ndXR0ZXIgLmxpbmUuYWx0MiB7CiAgYmFja2dyb3VuZC1jb2xvcjogI0YyRjJGMiAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuZ3V0dGVyIC5saW5lIHsKICBib3JkZXItcmlnaHQ6IDNweCBzb2xpZCAjNEU2Q0EzICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC5ndXR0ZXIgLmxpbmUuaGlnaGxpZ2h0ZWQgewogIGJhY2tncm91bmQtY29sb3I6ICM0RTZDQTMgIWltcG9ydGFudDsKICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLmxpbmUgLmNvbnRlbnQgewogIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5jb2xsYXBzZWQgewogIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLmNvbGxhcHNlZCAudG9vbGJhciB7CiAgY29sb3I6IGJsdWUgIWltcG9ydGFudDsKICBiYWNrZ3JvdW5kOiB3aGl0ZSAhaW1wb3J0YW50OwogIGJvcmRlcjogMXB4IHNvbGlkICM0RTZDQTMgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIuY29sbGFwc2VkIC50b29sYmFyIGEgewogIGNvbG9yOiBibHVlICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLmNvbGxhcHNlZCAudG9vbGJhciBhOmhvdmVyIHsKICBjb2xvcjogcmVkICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC50b29sYmFyIHsKICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDsKICBiYWNrZ3JvdW5kOiAjNEU2Q0EzICFpbXBvcnRhbnQ7CiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC50b29sYmFyIGEgewogIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAudG9vbGJhciBhOmhvdmVyIHsKICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgLnBsYWluLCAuc3ludGF4aGlnaGxpZ2h0ZXIgLnBsYWluIGEgewogIGNvbG9yOiBibGFjayAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuY29tbWVudHMsIC5zeW50YXhoaWdobGlnaHRlciAuY29tbWVudHMgYSB7CiAgY29sb3I6ICMwMDgyMDAgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgLnN0cmluZywgLnN5bnRheGhpZ2hsaWdodGVyIC5zdHJpbmcgYSB7CiAgY29sb3I6IGJsdWUgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgLmtleXdvcmQgewogIGNvbG9yOiAjMDA2Njk5ICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC5wcmVwcm9jZXNzb3IgewogIGNvbG9yOiBncmF5ICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC52YXJpYWJsZSB7CiAgY29sb3I6ICNhYTc3MDAgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgLnZhbHVlIHsKICBjb2xvcjogIzAwOTkwMCAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuZnVuY3Rpb25zIHsKICBjb2xvcjogI2ZmMTQ5MyAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuY29uc3RhbnRzIHsKICBjb2xvcjogIzAwNjZjYyAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuc2NyaXB0IHsKICBmb250LXdlaWdodDogYm9sZCAhaW1wb3J0YW50OwogIGNvbG9yOiAjMDA2Njk5ICFpbXBvcnRhbnQ7CiAgYmFja2dyb3VuZC1jb2xvcjogbm9uZSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuY29sb3IxLCAuc3ludGF4aGlnaGxpZ2h0ZXIgLmNvbG9yMSBhIHsKICBjb2xvcjogZ3JheSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuY29sb3IyLCAuc3ludGF4aGlnaGxpZ2h0ZXIgLmNvbG9yMiBhIHsKICBjb2xvcjogI2ZmMTQ5MyAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuY29sb3IzLCAuc3ludGF4aGlnaGxpZ2h0ZXIgLmNvbG9yMyBhIHsKICBjb2xvcjogcmVkICFpbXBvcnRhbnQ7Cn0KCi5zeW50YXhoaWdobGlnaHRlciAua2V5d29yZCB7CiAgZm9udC13ZWlnaHQ6IGJvbGQgIWltcG9ydGFudDsKfQo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/media/docs/media/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/media/docs/media/images/arrow.jpg</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAZAAA/+4ADkFkb2JlAGTAAAAAAf/bAIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMDAwMDAwMDAwEBAQEBAQECAQECAgIBAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD/8AAEQgABwAIAwERAAIRAQMRAf/EAGYAAQAAAAAAAAAAAAAAAAAAAAoBAQEAAAAAAAAAAAAAAAAAAAUHEAABAgYDAQAAAAAAAAAAAAAFAhYDEwQUBgcREhUXEQABAwQBBAMAAAAAAAAAAAABAhIDESETBCNBIkJSQxQG/9oADAMBAAIRAxEAPwBitOH3pEsWqvIhlzuSoLapc+QwijU1Qjo+/q0utW7MGySZGbANFwYG3Q/kjRyU+dRVzfng/wC6Il00gnZxobk2fhOvbjmRTnltFJSTiU45H1q0w/MEnsAkbZy/Ex+qhQuN0q6oFTT/2Q==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/media/docs/media/images/extended.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAFoTx1HAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NEZGQzY2NkQ1MDJDMTFFMEI1RDE5NDU4MEJERUNCNjciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NEZGQzY2NkU1MDJDMTFFMEI1RDE5NDU4MEJERUNCNjciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowNkRFRjRFQzUwMDIxMUUwQjVEMTk0NTgwQkRFQ0I2NyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0RkZDNjY2QzUwMkMxMUUwQjVEMTk0NTgwQkRFQ0I2NyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PlMwMW8AAAEZSURBVHjaYvz//z8DCDCBiN7e3v8AAcQIF5k/fz6YBRBADCCRXbt2/c/Pz/8PYoPVPnnyhEFWVhasACCA4HpQTIJzUGRgACCAwKbCcFNT039kPthAkP3v3r0DK7558ybYttraWka4bcgKiouLGUE0QAChOAUdwB0QFRX1H4SRJcE6Qe4WEhJiuHfvHliwubkZbCzT7t27/yspKcFVs7GxMYDEULwyb968/zU1NSheYWLAA/BKAgQYSggh48jIyP+45OChhwyAvvgvIyPDAAqsDx8+oPgMIwhgIaupqcnw+fNncETDNIL4MDBhwgRGDI0wAEs7MI0CAgLwKCI+AMgOOTyABV0A5MTHjx8zfPv2jeHLly8MIH9jAwDul9vYyKpTggAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/media/docs/media/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/media/docs/media/js/doc.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CihmdW5jdGlvbigpIHsKCnZhciBzaG93aW5nTmF2ID0gdHJ1ZTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIganFOYXYgPSAkKCdkaXYuZndfbmF2Jyk7CglqcU5hdi5jc3MoJ3JpZ2h0JywgKCQod2luZG93KS53aWR0aCgpIC0gJCgnZGl2LmZ3X2NvbnRhaW5lcicpLndpZHRoKCkpIC8yKTsKCgl2YXIgbiA9ICQoJ2Rpdi5uYXZfYmxvY2tlcicpWzBdOwoJbi5zdHlsZS5oZWlnaHQgPSAkKGpxTmF2KS5vdXRlckhlaWdodCgpKyJweCI7CgluLnN0eWxlLndpZHRoID0gKCQoanFOYXYpLm91dGVyV2lkdGgoKSsyMCkrInB4IjsKCglTeW50YXhIaWdobGlnaHRlci5oaWdobGlnaHQoKTsKCgkkKCcjcHJpdmF0ZV90b2dnbGUnKS5jbGljayggZnVuY3Rpb24gKCkgewoJCWlmICggJCgnaW5wdXRbbmFtZT1zaG93X3ByaXZhdGVdJykudmFsKCkgPT0gMCApIHsKCQkJJCgnaW5wdXRbbmFtZT1zaG93X3ByaXZhdGVdJykudmFsKCAxICk7CgkJCSQoJyNwcml2YXRlX2xhYmVsJykuaHRtbCgnU2hvd2luZycpOwoJCQkkKCcucHJpdmF0ZScpLmNzcygnZGlzcGxheScsICdibG9jaycpOwoJCX0gZWxzZSB7CgkJCSQoJ2lucHV0W25hbWU9c2hvd19wcml2YXRlXScpLnZhbCggMCApOwoJCQkkKCcjcHJpdmF0ZV9sYWJlbCcpLmh0bWwoJ0hpZGluZycpOwoJCQkkKCcucHJpdmF0ZScpLmNzcygnZGlzcGxheScsICdub25lJyk7CgkJfQoJCWZuV3JpdGVDb29raWUoKTsKCQlyZXR1cm4gZmFsc2U7Cgl9ICk7CgoJJCgnI2V4dGVuZGVkX3RvZ2dsZScpLmNsaWNrKCBmdW5jdGlvbiAoKSB7CgkJaWYgKCAkKCdpbnB1dFtuYW1lPXNob3dfZXh0ZW5kZWRdJykudmFsKCkgPT0gMCApIHsKCQkJJCgnaW5wdXRbbmFtZT1zaG93X2V4dGVuZGVkXScpLnZhbCggMSApOwoJCQkkKCcjZXh0ZW5kZWRfbGFiZWwnKS5odG1sKCdTaG93aW5nJyk7CgkJCSQoJy5hdWdtZW50ZWQnKS5jc3MoJ2Rpc3BsYXknLCAnYmxvY2snKTsKCQl9IGVsc2UgewoJCQkkKCdpbnB1dFtuYW1lPXNob3dfZXh0ZW5kZWRdJykudmFsKCAwICk7CgkJCSQoJyNleHRlbmRlZF9sYWJlbCcpLmh0bWwoJ0hpZGluZycpOwoJCQkkKCcuYXVnbWVudGVkJykuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTsKCQl9CgkJZm5Xcml0ZUNvb2tpZSgpOwoJCXJldHVybiBmYWxzZTsKCX0gKTsKCgl2YXIgc2F2ZWRIZWlnaHQgPSAkKGpxTmF2KS5oZWlnaHQoKTsKCSQoJ2Rpdi5md19uYXYgaDInKS5jbGljayggZnVuY3Rpb24gKCkgewoJCWlmICggc2hvd2luZ05hdiApIHsKCQkJJCgnZGl2LmZ3X25hdicpLmFuaW1hdGUoIHsKCQkJCSJoZWlnaHQiOiAxMCwKCQkJCSJvcGFjaXR5IjogMC4zCgkJCX0gKTsKCQkJc2hvd2luZ05hdiA9IGZhbHNlOwoJCX0gZWxzZSB7CgkJCSQoJ2Rpdi5md19uYXYnKS5hbmltYXRlKCB7CgkJCQkiaGVpZ2h0Ijogc2F2ZWRIZWlnaHQsCgkJCQkib3BhY2l0eSI6IDEKCQkJfSApOwoJCQlzaG93aW5nTmF2ID0gdHJ1ZTsKCQl9CgkJZm5Xcml0ZUNvb2tpZSgpOwoJfSApOwoKCXZhciBjb29raWUgPSBmblJlYWRDb29raWUoICdTcHJ5TWVkaWFfSlNEb2MnICk7CglpZiAoIGNvb2tpZSAhPSBudWxsICkgewoJCXZhciBhID0gY29va2llLnNwbGl0KCctJyk7CgkJaWYgKCBhWzBdID09IDEgKSB7CgkJCSQoJyNwcml2YXRlX3RvZ2dsZScpLmNsaWNrKCk7CgkJfQoJCWlmICggYVsxXSA9PSAwICkgewoJCQkkKCcjZXh0ZW5kZWRfdG9nZ2xlJykuY2xpY2soKTsKCQl9CgkJaWYgKCBhWzJdID09ICdmYWxzZScgKSB7CgkJCSQoJ2Rpdi5md19uYXYnKS5jc3MoJ2hlaWdodCcsIDEwKS5jc3MoJ29wYWNpdHknLCAwLjMpOwoJCQlzaG93aW5nTmF2ID0gZmFsc2U7CgkJfQoJfQp9ICk7CgoKZnVuY3Rpb24gZm5Xcml0ZUNvb2tpZSgpCnsKCXZhciBzVmFsID0gCgkJJCgnaW5wdXRbbmFtZT1zaG93X3ByaXZhdGVdJykudmFsKCkrJy0nKwoJCSQoJ2lucHV0W25hbWU9c2hvd19leHRlbmRlZF0nKS52YWwoKSsnLScrCgkJc2hvd2luZ05hdjsKCQoJZm5DcmVhdGVDb29raWUoICdTcHJ5TWVkaWFfSlNEb2MnLCBzVmFsICk7Cn0KCgpmdW5jdGlvbiBmbkNyZWF0ZUNvb2tpZSggc05hbWUsIHNWYWx1ZSApCnsKCXZhciBpRGF5cyA9IDM2NTsKCXZhciBkYXRlID0gbmV3IERhdGUoKTsKCWRhdGUuc2V0VGltZSggZGF0ZS5nZXRUaW1lKCkrKGlEYXlzKjI0KjYwKjYwKjEwMDApICk7Cgl2YXIgc0V4cGlyZXMgPSAiOyBleHBpcmVzPSIrZGF0ZS50b0dNVFN0cmluZygpOwoJCglkb2N1bWVudC5jb29raWUgPSBzTmFtZSsiPSIrc1ZhbHVlK3NFeHBpcmVzKyI7IHBhdGg9LyI7Cn0KCgpmdW5jdGlvbiBmblJlYWRDb29raWUoIHNOYW1lICkKewoJdmFyIHNOYW1lRVEgPSBzTmFtZSArICI9IjsKCXZhciBzQ29va2llQ29udGVudHMgPSBkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKTsKCQoJZm9yKCB2YXIgaT0wIDsgaTxzQ29va2llQ29udGVudHMubGVuZ3RoIDsgaSsrICkgewoJCXZhciBjID0gc0Nvb2tpZUNvbnRlbnRzW2ldOwoJCQoJCXdoaWxlIChjLmNoYXJBdCgwKT09JyAnKSB7CgkJCWMgPSBjLnN1YnN0cmluZygxLGMubGVuZ3RoKTsKCQl9CgkJCgkJaWYgKGMuaW5kZXhPZihzTmFtZUVRKSA9PSAwKSB7CgkJCXJldHVybiBjLnN1YnN0cmluZyhzTmFtZUVRLmxlbmd0aCxjLmxlbmd0aCk7CgkJfQoJfQoJCglyZXR1cm4gbnVsbDsKfQoKfSkoKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/media/docs/media/js/jquery.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohCiAqIGpRdWVyeSBKYXZhU2NyaXB0IExpYnJhcnkgdjEuNS4xCiAqIGh0dHA6Ly9qcXVlcnkuY29tLwogKgogKiBDb3B5cmlnaHQgMjAxMSwgSm9obiBSZXNpZwogKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQogKgogKiBJbmNsdWRlcyBTaXp6bGUuanMKICogaHR0cDovL3NpenpsZWpzLmNvbS8KICogQ29weXJpZ2h0IDIwMTEsIFRoZSBEb2pvIEZvdW5kYXRpb24KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCwgQlNELCBhbmQgR1BMIExpY2Vuc2VzLgogKgogKiBEYXRlOiBXZWQgRmViIDIzIDEzOjU1OjI5IDIwMTEgLTA1MDAKICovCihmdW5jdGlvbiggd2luZG93LCB1bmRlZmluZWQgKSB7CgovLyBVc2UgdGhlIGNvcnJlY3QgZG9jdW1lbnQgYWNjb3JkaW5nbHkgd2l0aCB3aW5kb3cgYXJndW1lbnQgKHNhbmRib3gpCnZhciBkb2N1bWVudCA9IHdpbmRvdy5kb2N1bWVudDsKdmFyIGpRdWVyeSA9IChmdW5jdGlvbigpIHsKCi8vIERlZmluZSBhIGxvY2FsIGNvcHkgb2YgalF1ZXJ5CnZhciBqUXVlcnkgPSBmdW5jdGlvbiggc2VsZWN0b3IsIGNvbnRleHQgKSB7CgkJLy8gVGhlIGpRdWVyeSBvYmplY3QgaXMgYWN0dWFsbHkganVzdCB0aGUgaW5pdCBjb25zdHJ1Y3RvciAnZW5oYW5jZWQnCgkJcmV0dXJuIG5ldyBqUXVlcnkuZm4uaW5pdCggc2VsZWN0b3IsIGNvbnRleHQsIHJvb3RqUXVlcnkgKTsKCX0sCgoJLy8gTWFwIG92ZXIgalF1ZXJ5IGluIGNhc2Ugb2Ygb3ZlcndyaXRlCglfalF1ZXJ5ID0gd2luZG93LmpRdWVyeSwKCgkvLyBNYXAgb3ZlciB0aGUgJCBpbiBjYXNlIG9mIG92ZXJ3cml0ZQoJXyQgPSB3aW5kb3cuJCwKCgkvLyBBIGNlbnRyYWwgcmVmZXJlbmNlIHRvIHRoZSByb290IGpRdWVyeShkb2N1bWVudCkKCXJvb3RqUXVlcnksCgoJLy8gQSBzaW1wbGUgd2F5IHRvIGNoZWNrIGZvciBIVE1MIHN0cmluZ3Mgb3IgSUQgc3RyaW5ncwoJLy8gKGJvdGggb2Ygd2hpY2ggd2Ugb3B0aW1pemUgZm9yKQoJcXVpY2tFeHByID0gL14oPzpbXjxdKig8W1x3XFddKz4pW14+XSokfCMoW1x3XC1dKykkKS8sCgoJLy8gQ2hlY2sgaWYgYSBzdHJpbmcgaGFzIGEgbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVyIGluIGl0Cglybm90d2hpdGUgPSAvXFMvLAoKCS8vIFVzZWQgZm9yIHRyaW1taW5nIHdoaXRlc3BhY2UKCXRyaW1MZWZ0ID0gL15ccysvLAoJdHJpbVJpZ2h0ID0gL1xzKyQvLAoKCS8vIENoZWNrIGZvciBkaWdpdHMKCXJkaWdpdCA9IC9cZC8sCgoJLy8gTWF0Y2ggYSBzdGFuZGFsb25lIHRhZwoJcnNpbmdsZVRhZyA9IC9ePChcdyspXHMqXC8/Pig/OjxcL1wxPik/JC8sCgoJLy8gSlNPTiBSZWdFeHAKCXJ2YWxpZGNoYXJzID0gL15bXF0sOnt9XHNdKiQvLAoJcnZhbGlkZXNjYXBlID0gL1xcKD86WyJcXFwvYmZucnRdfHVbMC05YS1mQS1GXXs0fSkvZywKCXJ2YWxpZHRva2VucyA9IC8iW14iXFxcblxyXSoifHRydWV8ZmFsc2V8bnVsbHwtP1xkKyg/OlwuXGQqKT8oPzpbZUVdWytcLV0/XGQrKT8vZywKCXJ2YWxpZGJyYWNlcyA9IC8oPzpefDp8LCkoPzpccypcWykrL2csCgoJLy8gVXNlcmFnZW50IFJlZ0V4cAoJcndlYmtpdCA9IC8od2Via2l0KVsgXC9dKFtcdy5dKykvLAoJcm9wZXJhID0gLyhvcGVyYSkoPzouKnZlcnNpb24pP1sgXC9dKFtcdy5dKykvLAoJcm1zaWUgPSAvKG1zaWUpIChbXHcuXSspLywKCXJtb3ppbGxhID0gLyhtb3ppbGxhKSg/Oi4qPyBydjooW1x3Ll0rKSk/LywKCgkvLyBLZWVwIGEgVXNlckFnZW50IHN0cmluZyBmb3IgdXNlIHdpdGggalF1ZXJ5LmJyb3dzZXIKCXVzZXJBZ2VudCA9IG5hdmlnYXRvci51c2VyQWdlbnQsCgoJLy8gRm9yIG1hdGNoaW5nIHRoZSBlbmdpbmUgYW5kIHZlcnNpb24gb2YgdGhlIGJyb3dzZXIKCWJyb3dzZXJNYXRjaCwKCgkvLyBIYXMgdGhlIHJlYWR5IGV2ZW50cyBhbHJlYWR5IGJlZW4gYm91bmQ/CglyZWFkeUJvdW5kID0gZmFsc2UsCgoJLy8gVGhlIGRlZmVycmVkIHVzZWQgb24gRE9NIHJlYWR5CglyZWFkeUxpc3QsCgoJLy8gUHJvbWlzZSBtZXRob2RzCglwcm9taXNlTWV0aG9kcyA9ICJ0aGVuIGRvbmUgZmFpbCBpc1Jlc29sdmVkIGlzUmVqZWN0ZWQgcHJvbWlzZSIuc3BsaXQoICIgIiApLAoKCS8vIFRoZSByZWFkeSBldmVudCBoYW5kbGVyCglET01Db250ZW50TG9hZGVkLAoKCS8vIFNhdmUgYSByZWZlcmVuY2UgdG8gc29tZSBjb3JlIG1ldGhvZHMKCXRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZywKCWhhc093biA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksCglwdXNoID0gQXJyYXkucHJvdG90eXBlLnB1c2gsCglzbGljZSA9IEFycmF5LnByb3RvdHlwZS5zbGljZSwKCXRyaW0gPSBTdHJpbmcucHJvdG90eXBlLnRyaW0sCglpbmRleE9mID0gQXJyYXkucHJvdG90eXBlLmluZGV4T2YsCgoJLy8gW1tDbGFzc11dIC0+IHR5cGUgcGFpcnMKCWNsYXNzMnR5cGUgPSB7fTsKCmpRdWVyeS5mbiA9IGpRdWVyeS5wcm90b3R5cGUgPSB7Cgljb25zdHJ1Y3RvcjogalF1ZXJ5LAoJaW5pdDogZnVuY3Rpb24oIHNlbGVjdG9yLCBjb250ZXh0LCByb290alF1ZXJ5ICkgewoJCXZhciBtYXRjaCwgZWxlbSwgcmV0LCBkb2M7CgoJCS8vIEhhbmRsZSAkKCIiKSwgJChudWxsKSwgb3IgJCh1bmRlZmluZWQpCgkJaWYgKCAhc2VsZWN0b3IgKSB7CgkJCXJldHVybiB0aGlzOwoJCX0KCgkJLy8gSGFuZGxlICQoRE9NRWxlbWVudCkKCQlpZiAoIHNlbGVjdG9yLm5vZGVUeXBlICkgewoJCQl0aGlzLmNvbnRleHQgPSB0aGlzWzBdID0gc2VsZWN0b3I7CgkJCXRoaXMubGVuZ3RoID0gMTsKCQkJcmV0dXJuIHRoaXM7CgkJfQoKCQkvLyBUaGUgYm9keSBlbGVtZW50IG9ubHkgZXhpc3RzIG9uY2UsIG9wdGltaXplIGZpbmRpbmcgaXQKCQlpZiAoIHNlbGVjdG9yID09PSAiYm9keSIgJiYgIWNvbnRleHQgJiYgZG9jdW1lbnQuYm9keSApIHsKCQkJdGhpcy5jb250ZXh0ID0gZG9jdW1lbnQ7CgkJCXRoaXNbMF0gPSBkb2N1bWVudC5ib2R5OwoJCQl0aGlzLnNlbGVjdG9yID0gImJvZHkiOwoJCQl0aGlzLmxlbmd0aCA9IDE7CgkJCXJldHVybiB0aGlzOwoJCX0KCgkJLy8gSGFuZGxlIEhUTUwgc3RyaW5ncwoJCWlmICggdHlwZW9mIHNlbGVjdG9yID09PSAic3RyaW5nIiApIHsKCQkJLy8gQXJlIHdlIGRlYWxpbmcgd2l0aCBIVE1MIHN0cmluZyBvciBhbiBJRD8KCQkJbWF0Y2ggPSBxdWlja0V4cHIuZXhlYyggc2VsZWN0b3IgKTsKCgkJCS8vIFZlcmlmeSBhIG1hdGNoLCBhbmQgdGhhdCBubyBjb250ZXh0IHdhcyBzcGVjaWZpZWQgZm9yICNpZAoJCQlpZiAoIG1hdGNoICYmIChtYXRjaFsxXSB8fCAhY29udGV4dCkgKSB7CgoJCQkJLy8gSEFORExFOiAkKGh0bWwpIC0+ICQoYXJyYXkpCgkJCQlpZiAoIG1hdGNoWzFdICkgewoJCQkJCWNvbnRleHQgPSBjb250ZXh0IGluc3RhbmNlb2YgalF1ZXJ5ID8gY29udGV4dFswXSA6IGNvbnRleHQ7CgkJCQkJZG9jID0gKGNvbnRleHQgPyBjb250ZXh0Lm93bmVyRG9jdW1lbnQgfHwgY29udGV4dCA6IGRvY3VtZW50KTsKCgkJCQkJLy8gSWYgYSBzaW5nbGUgc3RyaW5nIGlzIHBhc3NlZCBpbiBhbmQgaXQncyBhIHNpbmdsZSB0YWcKCQkJCQkvLyBqdXN0IGRvIGEgY3JlYXRlRWxlbWVudCBhbmQgc2tpcCB0aGUgcmVzdAoJCQkJCXJldCA9IHJzaW5nbGVUYWcuZXhlYyggc2VsZWN0b3IgKTsKCgkJCQkJaWYgKCByZXQgKSB7CgkJCQkJCWlmICggalF1ZXJ5LmlzUGxhaW5PYmplY3QoIGNvbnRleHQgKSApIHsKCQkJCQkJCXNlbGVjdG9yID0gWyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCByZXRbMV0gKSBdOwoJCQkJCQkJalF1ZXJ5LmZuLmF0dHIuY2FsbCggc2VsZWN0b3IsIGNvbnRleHQsIHRydWUgKTsKCgkJCQkJCX0gZWxzZSB7CgkJCQkJCQlzZWxlY3RvciA9IFsgZG9jLmNyZWF0ZUVsZW1lbnQoIHJldFsxXSApIF07CgkJCQkJCX0KCgkJCQkJfSBlbHNlIHsKCQkJCQkJcmV0ID0galF1ZXJ5LmJ1aWxkRnJhZ21lbnQoIFsgbWF0Y2hbMV0gXSwgWyBkb2MgXSApOwoJCQkJCQlzZWxlY3RvciA9IChyZXQuY2FjaGVhYmxlID8galF1ZXJ5LmNsb25lKHJldC5mcmFnbWVudCkgOiByZXQuZnJhZ21lbnQpLmNoaWxkTm9kZXM7CgkJCQkJfQoKCQkJCQlyZXR1cm4galF1ZXJ5Lm1lcmdlKCB0aGlzLCBzZWxlY3RvciApOwoKCQkJCS8vIEhBTkRMRTogJCgiI2lkIikKCQkJCX0gZWxzZSB7CgkJCQkJZWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCBtYXRjaFsyXSApOwoKCQkJCQkvLyBDaGVjayBwYXJlbnROb2RlIHRvIGNhdGNoIHdoZW4gQmxhY2tiZXJyeSA0LjYgcmV0dXJucwoJCQkJCS8vIG5vZGVzIHRoYXQgYXJlIG5vIGxvbmdlciBpbiB0aGUgZG9jdW1lbnQgIzY5NjMKCQkJCQlpZiAoIGVsZW0gJiYgZWxlbS5wYXJlbnROb2RlICkgewoJCQkJCQkvLyBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgSUUgYW5kIE9wZXJhIHJldHVybiBpdGVtcwoJCQkJCQkvLyBieSBuYW1lIGluc3RlYWQgb2YgSUQKCQkJCQkJaWYgKCBlbGVtLmlkICE9PSBtYXRjaFsyXSApIHsKCQkJCQkJCXJldHVybiByb290alF1ZXJ5LmZpbmQoIHNlbGVjdG9yICk7CgkJCQkJCX0KCgkJCQkJCS8vIE90aGVyd2lzZSwgd2UgaW5qZWN0IHRoZSBlbGVtZW50IGRpcmVjdGx5IGludG8gdGhlIGpRdWVyeSBvYmplY3QKCQkJCQkJdGhpcy5sZW5ndGggPSAxOwoJCQkJCQl0aGlzWzBdID0gZWxlbTsKCQkJCQl9CgoJCQkJCXRoaXMuY29udGV4dCA9IGRvY3VtZW50OwoJCQkJCXRoaXMuc2VsZWN0b3IgPSBzZWxlY3RvcjsKCQkJCQlyZXR1cm4gdGhpczsKCQkJCX0KCgkJCS8vIEhBTkRMRTogJChleHByLCAkKC4uLikpCgkJCX0gZWxzZSBpZiAoICFjb250ZXh0IHx8IGNvbnRleHQuanF1ZXJ5ICkgewoJCQkJcmV0dXJuIChjb250ZXh0IHx8IHJvb3RqUXVlcnkpLmZpbmQoIHNlbGVjdG9yICk7CgoJCQkvLyBIQU5ETEU6ICQoZXhwciwgY29udGV4dCkKCQkJLy8gKHdoaWNoIGlzIGp1c3QgZXF1aXZhbGVudCB0bzogJChjb250ZXh0KS5maW5kKGV4cHIpCgkJCX0gZWxzZSB7CgkJCQlyZXR1cm4gdGhpcy5jb25zdHJ1Y3RvciggY29udGV4dCApLmZpbmQoIHNlbGVjdG9yICk7CgkJCX0KCgkJLy8gSEFORExFOiAkKGZ1bmN0aW9uKQoJCS8vIFNob3J0Y3V0IGZvciBkb2N1bWVudCByZWFkeQoJCX0gZWxzZSBpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCBzZWxlY3RvciApICkgewoJCQlyZXR1cm4gcm9vdGpRdWVyeS5yZWFkeSggc2VsZWN0b3IgKTsKCQl9CgoJCWlmIChzZWxlY3Rvci5zZWxlY3RvciAhPT0gdW5kZWZpbmVkKSB7CgkJCXRoaXMuc2VsZWN0b3IgPSBzZWxlY3Rvci5zZWxlY3RvcjsKCQkJdGhpcy5jb250ZXh0ID0gc2VsZWN0b3IuY29udGV4dDsKCQl9CgoJCXJldHVybiBqUXVlcnkubWFrZUFycmF5KCBzZWxlY3RvciwgdGhpcyApOwoJfSwKCgkvLyBTdGFydCB3aXRoIGFuIGVtcHR5IHNlbGVjdG9yCglzZWxlY3RvcjogIiIsCgoJLy8gVGhlIGN1cnJlbnQgdmVyc2lvbiBvZiBqUXVlcnkgYmVpbmcgdXNlZAoJanF1ZXJ5OiAiMS41LjEiLAoKCS8vIFRoZSBkZWZhdWx0IGxlbmd0aCBvZiBhIGpRdWVyeSBvYmplY3QgaXMgMAoJbGVuZ3RoOiAwLAoKCS8vIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgY29udGFpbmVkIGluIHRoZSBtYXRjaGVkIGVsZW1lbnQgc2V0CglzaXplOiBmdW5jdGlvbigpIHsKCQlyZXR1cm4gdGhpcy5sZW5ndGg7Cgl9LAoKCXRvQXJyYXk6IGZ1bmN0aW9uKCkgewoJCXJldHVybiBzbGljZS5jYWxsKCB0aGlzLCAwICk7Cgl9LAoKCS8vIEdldCB0aGUgTnRoIGVsZW1lbnQgaW4gdGhlIG1hdGNoZWQgZWxlbWVudCBzZXQgT1IKCS8vIEdldCB0aGUgd2hvbGUgbWF0Y2hlZCBlbGVtZW50IHNldCBhcyBhIGNsZWFuIGFycmF5CglnZXQ6IGZ1bmN0aW9uKCBudW0gKSB7CgkJcmV0dXJuIG51bSA9PSBudWxsID8KCgkJCS8vIFJldHVybiBhICdjbGVhbicgYXJyYXkKCQkJdGhpcy50b0FycmF5KCkgOgoKCQkJLy8gUmV0dXJuIGp1c3QgdGhlIG9iamVjdAoJCQkoIG51bSA8IDAgPyB0aGlzWyB0aGlzLmxlbmd0aCArIG51bSBdIDogdGhpc1sgbnVtIF0gKTsKCX0sCgoJLy8gVGFrZSBhbiBhcnJheSBvZiBlbGVtZW50cyBhbmQgcHVzaCBpdCBvbnRvIHRoZSBzdGFjawoJLy8gKHJldHVybmluZyB0aGUgbmV3IG1hdGNoZWQgZWxlbWVudCBzZXQpCglwdXNoU3RhY2s6IGZ1bmN0aW9uKCBlbGVtcywgbmFtZSwgc2VsZWN0b3IgKSB7CgkJLy8gQnVpbGQgYSBuZXcgalF1ZXJ5IG1hdGNoZWQgZWxlbWVudCBzZXQKCQl2YXIgcmV0ID0gdGhpcy5jb25zdHJ1Y3RvcigpOwoKCQlpZiAoIGpRdWVyeS5pc0FycmF5KCBlbGVtcyApICkgewoJCQlwdXNoLmFwcGx5KCByZXQsIGVsZW1zICk7CgoJCX0gZWxzZSB7CgkJCWpRdWVyeS5tZXJnZSggcmV0LCBlbGVtcyApOwoJCX0KCgkJLy8gQWRkIHRoZSBvbGQgb2JqZWN0IG9udG8gdGhlIHN0YWNrIChhcyBhIHJlZmVyZW5jZSkKCQlyZXQucHJldk9iamVjdCA9IHRoaXM7CgoJCXJldC5jb250ZXh0ID0gdGhpcy5jb250ZXh0OwoKCQlpZiAoIG5hbWUgPT09ICJmaW5kIiApIHsKCQkJcmV0LnNlbGVjdG9yID0gdGhpcy5zZWxlY3RvciArICh0aGlzLnNlbGVjdG9yID8gIiAiIDogIiIpICsgc2VsZWN0b3I7CgkJfSBlbHNlIGlmICggbmFtZSApIHsKCQkJcmV0LnNlbGVjdG9yID0gdGhpcy5zZWxlY3RvciArICIuIiArIG5hbWUgKyAiKCIgKyBzZWxlY3RvciArICIpIjsKCQl9CgoJCS8vIFJldHVybiB0aGUgbmV3bHktZm9ybWVkIGVsZW1lbnQgc2V0CgkJcmV0dXJuIHJldDsKCX0sCgoJLy8gRXhlY3V0ZSBhIGNhbGxiYWNrIGZvciBldmVyeSBlbGVtZW50IGluIHRoZSBtYXRjaGVkIHNldC4KCS8vIChZb3UgY2FuIHNlZWQgdGhlIGFyZ3VtZW50cyB3aXRoIGFuIGFycmF5IG9mIGFyZ3MsIGJ1dCB0aGlzIGlzCgkvLyBvbmx5IHVzZWQgaW50ZXJuYWxseS4pCgllYWNoOiBmdW5jdGlvbiggY2FsbGJhY2ssIGFyZ3MgKSB7CgkJcmV0dXJuIGpRdWVyeS5lYWNoKCB0aGlzLCBjYWxsYmFjaywgYXJncyApOwoJfSwKCglyZWFkeTogZnVuY3Rpb24oIGZuICkgewoJCS8vIEF0dGFjaCB0aGUgbGlzdGVuZXJzCgkJalF1ZXJ5LmJpbmRSZWFkeSgpOwoKCQkvLyBBZGQgdGhlIGNhbGxiYWNrCgkJcmVhZHlMaXN0LmRvbmUoIGZuICk7CgoJCXJldHVybiB0aGlzOwoJfSwKCgllcTogZnVuY3Rpb24oIGkgKSB7CgkJcmV0dXJuIGkgPT09IC0xID8KCQkJdGhpcy5zbGljZSggaSApIDoKCQkJdGhpcy5zbGljZSggaSwgK2kgKyAxICk7Cgl9LAoKCWZpcnN0OiBmdW5jdGlvbigpIHsKCQlyZXR1cm4gdGhpcy5lcSggMCApOwoJfSwKCglsYXN0OiBmdW5jdGlvbigpIHsKCQlyZXR1cm4gdGhpcy5lcSggLTEgKTsKCX0sCgoJc2xpY2U6IGZ1bmN0aW9uKCkgewoJCXJldHVybiB0aGlzLnB1c2hTdGFjayggc2xpY2UuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApLAoJCQkic2xpY2UiLCBzbGljZS5jYWxsKGFyZ3VtZW50cykuam9pbigiLCIpICk7Cgl9LAoKCW1hcDogZnVuY3Rpb24oIGNhbGxiYWNrICkgewoJCXJldHVybiB0aGlzLnB1c2hTdGFjayggalF1ZXJ5Lm1hcCh0aGlzLCBmdW5jdGlvbiggZWxlbSwgaSApIHsKCQkJcmV0dXJuIGNhbGxiYWNrLmNhbGwoIGVsZW0sIGksIGVsZW0gKTsKCQl9KSk7Cgl9LAoKCWVuZDogZnVuY3Rpb24oKSB7CgkJcmV0dXJuIHRoaXMucHJldk9iamVjdCB8fCB0aGlzLmNvbnN0cnVjdG9yKG51bGwpOwoJfSwKCgkvLyBGb3IgaW50ZXJuYWwgdXNlIG9ubHkuCgkvLyBCZWhhdmVzIGxpa2UgYW4gQXJyYXkncyBtZXRob2QsIG5vdCBsaWtlIGEgalF1ZXJ5IG1ldGhvZC4KCXB1c2g6IHB1c2gsCglzb3J0OiBbXS5zb3J0LAoJc3BsaWNlOiBbXS5zcGxpY2UKfTsKCi8vIEdpdmUgdGhlIGluaXQgZnVuY3Rpb24gdGhlIGpRdWVyeSBwcm90b3R5cGUgZm9yIGxhdGVyIGluc3RhbnRpYXRpb24KalF1ZXJ5LmZuLmluaXQucHJvdG90eXBlID0galF1ZXJ5LmZuOwoKalF1ZXJ5LmV4dGVuZCA9IGpRdWVyeS5mbi5leHRlbmQgPSBmdW5jdGlvbigpIHsKCXZhciBvcHRpb25zLCBuYW1lLCBzcmMsIGNvcHksIGNvcHlJc0FycmF5LCBjbG9uZSwKCQl0YXJnZXQgPSBhcmd1bWVudHNbMF0gfHwge30sCgkJaSA9IDEsCgkJbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aCwKCQlkZWVwID0gZmFsc2U7CgoJLy8gSGFuZGxlIGEgZGVlcCBjb3B5IHNpdHVhdGlvbgoJaWYgKCB0eXBlb2YgdGFyZ2V0ID09PSAiYm9vbGVhbiIgKSB7CgkJZGVlcCA9IHRhcmdldDsKCQl0YXJnZXQgPSBhcmd1bWVudHNbMV0gfHwge307CgkJLy8gc2tpcCB0aGUgYm9vbGVhbiBhbmQgdGhlIHRhcmdldAoJCWkgPSAyOwoJfQoKCS8vIEhhbmRsZSBjYXNlIHdoZW4gdGFyZ2V0IGlzIGEgc3RyaW5nIG9yIHNvbWV0aGluZyAocG9zc2libGUgaW4gZGVlcCBjb3B5KQoJaWYgKCB0eXBlb2YgdGFyZ2V0ICE9PSAib2JqZWN0IiAmJiAhalF1ZXJ5LmlzRnVuY3Rpb24odGFyZ2V0KSApIHsKCQl0YXJnZXQgPSB7fTsKCX0KCgkvLyBleHRlbmQgalF1ZXJ5IGl0c2VsZiBpZiBvbmx5IG9uZSBhcmd1bWVudCBpcyBwYXNzZWQKCWlmICggbGVuZ3RoID09PSBpICkgewoJCXRhcmdldCA9IHRoaXM7CgkJLS1pOwoJfQoKCWZvciAoIDsgaSA8IGxlbmd0aDsgaSsrICkgewoJCS8vIE9ubHkgZGVhbCB3aXRoIG5vbi1udWxsL3VuZGVmaW5lZCB2YWx1ZXMKCQlpZiAoIChvcHRpb25zID0gYXJndW1lbnRzWyBpIF0pICE9IG51bGwgKSB7CgkJCS8vIEV4dGVuZCB0aGUgYmFzZSBvYmplY3QKCQkJZm9yICggbmFtZSBpbiBvcHRpb25zICkgewoJCQkJc3JjID0gdGFyZ2V0WyBuYW1lIF07CgkJCQljb3B5ID0gb3B0aW9uc1sgbmFtZSBdOwoKCQkJCS8vIFByZXZlbnQgbmV2ZXItZW5kaW5nIGxvb3AKCQkJCWlmICggdGFyZ2V0ID09PSBjb3B5ICkgewoJCQkJCWNvbnRpbnVlOwoJCQkJfQoKCQkJCS8vIFJlY3Vyc2UgaWYgd2UncmUgbWVyZ2luZyBwbGFpbiBvYmplY3RzIG9yIGFycmF5cwoJCQkJaWYgKCBkZWVwICYmIGNvcHkgJiYgKCBqUXVlcnkuaXNQbGFpbk9iamVjdChjb3B5KSB8fCAoY29weUlzQXJyYXkgPSBqUXVlcnkuaXNBcnJheShjb3B5KSkgKSApIHsKCQkJCQlpZiAoIGNvcHlJc0FycmF5ICkgewoJCQkJCQljb3B5SXNBcnJheSA9IGZhbHNlOwoJCQkJCQljbG9uZSA9IHNyYyAmJiBqUXVlcnkuaXNBcnJheShzcmMpID8gc3JjIDogW107CgoJCQkJCX0gZWxzZSB7CgkJCQkJCWNsb25lID0gc3JjICYmIGpRdWVyeS5pc1BsYWluT2JqZWN0KHNyYykgPyBzcmMgOiB7fTsKCQkJCQl9CgoJCQkJCS8vIE5ldmVyIG1vdmUgb3JpZ2luYWwgb2JqZWN0cywgY2xvbmUgdGhlbQoJCQkJCXRhcmdldFsgbmFtZSBdID0galF1ZXJ5LmV4dGVuZCggZGVlcCwgY2xvbmUsIGNvcHkgKTsKCgkJCQkvLyBEb24ndCBicmluZyBpbiB1bmRlZmluZWQgdmFsdWVzCgkJCQl9IGVsc2UgaWYgKCBjb3B5ICE9PSB1bmRlZmluZWQgKSB7CgkJCQkJdGFyZ2V0WyBuYW1lIF0gPSBjb3B5OwoJCQkJfQoJCQl9CgkJfQoJfQoKCS8vIFJldHVybiB0aGUgbW9kaWZpZWQgb2JqZWN0CglyZXR1cm4gdGFyZ2V0Owp9OwoKalF1ZXJ5LmV4dGVuZCh7Cglub0NvbmZsaWN0OiBmdW5jdGlvbiggZGVlcCApIHsKCQl3aW5kb3cuJCA9IF8kOwoKCQlpZiAoIGRlZXAgKSB7CgkJCXdpbmRvdy5qUXVlcnkgPSBfalF1ZXJ5OwoJCX0KCgkJcmV0dXJuIGpRdWVyeTsKCX0sCgoJLy8gSXMgdGhlIERPTSByZWFkeSB0byBiZSB1c2VkPyBTZXQgdG8gdHJ1ZSBvbmNlIGl0IG9jY3Vycy4KCWlzUmVhZHk6IGZhbHNlLAoKCS8vIEEgY291bnRlciB0byB0cmFjayBob3cgbWFueSBpdGVtcyB0byB3YWl0IGZvciBiZWZvcmUKCS8vIHRoZSByZWFkeSBldmVudCBmaXJlcy4gU2VlICM2NzgxCglyZWFkeVdhaXQ6IDEsCgoJLy8gSGFuZGxlIHdoZW4gdGhlIERPTSBpcyByZWFkeQoJcmVhZHk6IGZ1bmN0aW9uKCB3YWl0ICkgewoJCS8vIEEgdGhpcmQtcGFydHkgaXMgcHVzaGluZyB0aGUgcmVhZHkgZXZlbnQgZm9yd2FyZHMKCQlpZiAoIHdhaXQgPT09IHRydWUgKSB7CgkJCWpRdWVyeS5yZWFkeVdhaXQtLTsKCQl9CgoJCS8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBET00gaXMgbm90IGFscmVhZHkgbG9hZGVkCgkJaWYgKCAhalF1ZXJ5LnJlYWR5V2FpdCB8fCAod2FpdCAhPT0gdHJ1ZSAmJiAhalF1ZXJ5LmlzUmVhZHkpICkgewoJCQkvLyBNYWtlIHN1cmUgYm9keSBleGlzdHMsIGF0IGxlYXN0LCBpbiBjYXNlIElFIGdldHMgYSBsaXR0bGUgb3ZlcnplYWxvdXMgKHRpY2tldCAjNTQ0MykuCgkJCWlmICggIWRvY3VtZW50LmJvZHkgKSB7CgkJCQlyZXR1cm4gc2V0VGltZW91dCggalF1ZXJ5LnJlYWR5LCAxICk7CgkJCX0KCgkJCS8vIFJlbWVtYmVyIHRoYXQgdGhlIERPTSBpcyByZWFkeQoJCQlqUXVlcnkuaXNSZWFkeSA9IHRydWU7CgoJCQkvLyBJZiBhIG5vcm1hbCBET00gUmVhZHkgZXZlbnQgZmlyZWQsIGRlY3JlbWVudCwgYW5kIHdhaXQgaWYgbmVlZCBiZQoJCQlpZiAoIHdhaXQgIT09IHRydWUgJiYgLS1qUXVlcnkucmVhZHlXYWl0ID4gMCApIHsKCQkJCXJldHVybjsKCQkJfQoKCQkJLy8gSWYgdGhlcmUgYXJlIGZ1bmN0aW9ucyBib3VuZCwgdG8gZXhlY3V0ZQoJCQlyZWFkeUxpc3QucmVzb2x2ZVdpdGgoIGRvY3VtZW50LCBbIGpRdWVyeSBdICk7CgoJCQkvLyBUcmlnZ2VyIGFueSBib3VuZCByZWFkeSBldmVudHMKCQkJaWYgKCBqUXVlcnkuZm4udHJpZ2dlciApIHsKCQkJCWpRdWVyeSggZG9jdW1lbnQgKS50cmlnZ2VyKCAicmVhZHkiICkudW5iaW5kKCAicmVhZHkiICk7CgkJCX0KCQl9Cgl9LAoKCWJpbmRSZWFkeTogZnVuY3Rpb24oKSB7CgkJaWYgKCByZWFkeUJvdW5kICkgewoJCQlyZXR1cm47CgkJfQoKCQlyZWFkeUJvdW5kID0gdHJ1ZTsKCgkJLy8gQ2F0Y2ggY2FzZXMgd2hlcmUgJChkb2N1bWVudCkucmVhZHkoKSBpcyBjYWxsZWQgYWZ0ZXIgdGhlCgkJLy8gYnJvd3NlciBldmVudCBoYXMgYWxyZWFkeSBvY2N1cnJlZC4KCQlpZiAoIGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICJjb21wbGV0ZSIgKSB7CgkJCS8vIEhhbmRsZSBpdCBhc3luY2hyb25vdXNseSB0byBhbGxvdyBzY3JpcHRzIHRoZSBvcHBvcnR1bml0eSB0byBkZWxheSByZWFkeQoJCQlyZXR1cm4gc2V0VGltZW91dCggalF1ZXJ5LnJlYWR5LCAxICk7CgkJfQoKCQkvLyBNb3ppbGxhLCBPcGVyYSBhbmQgd2Via2l0IG5pZ2h0bGllcyBjdXJyZW50bHkgc3VwcG9ydCB0aGlzIGV2ZW50CgkJaWYgKCBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyICkgewoJCQkvLyBVc2UgdGhlIGhhbmR5IGV2ZW50IGNhbGxiYWNrCgkJCWRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoICJET01Db250ZW50TG9hZGVkIiwgRE9NQ29udGVudExvYWRlZCwgZmFsc2UgKTsKCgkJCS8vIEEgZmFsbGJhY2sgdG8gd2luZG93Lm9ubG9hZCwgdGhhdCB3aWxsIGFsd2F5cyB3b3JrCgkJCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCAibG9hZCIsIGpRdWVyeS5yZWFkeSwgZmFsc2UgKTsKCgkJLy8gSWYgSUUgZXZlbnQgbW9kZWwgaXMgdXNlZAoJCX0gZWxzZSBpZiAoIGRvY3VtZW50LmF0dGFjaEV2ZW50ICkgewoJCQkvLyBlbnN1cmUgZmlyaW5nIGJlZm9yZSBvbmxvYWQsCgkJCS8vIG1heWJlIGxhdGUgYnV0IHNhZmUgYWxzbyBmb3IgaWZyYW1lcwoJCQlkb2N1bWVudC5hdHRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIiwgRE9NQ29udGVudExvYWRlZCk7CgoJCQkvLyBBIGZhbGxiYWNrIHRvIHdpbmRvdy5vbmxvYWQsIHRoYXQgd2lsbCBhbHdheXMgd29yawoJCQl3aW5kb3cuYXR0YWNoRXZlbnQoICJvbmxvYWQiLCBqUXVlcnkucmVhZHkgKTsKCgkJCS8vIElmIElFIGFuZCBub3QgYSBmcmFtZQoJCQkvLyBjb250aW51YWxseSBjaGVjayB0byBzZWUgaWYgdGhlIGRvY3VtZW50IGlzIHJlYWR5CgkJCXZhciB0b3BsZXZlbCA9IGZhbHNlOwoKCQkJdHJ5IHsKCQkJCXRvcGxldmVsID0gd2luZG93LmZyYW1lRWxlbWVudCA9PSBudWxsOwoJCQl9IGNhdGNoKGUpIHt9CgoJCQlpZiAoIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5kb1Njcm9sbCAmJiB0b3BsZXZlbCApIHsKCQkJCWRvU2Nyb2xsQ2hlY2soKTsKCQkJfQoJCX0KCX0sCgoJLy8gU2VlIHRlc3QvdW5pdC9jb3JlLmpzIGZvciBkZXRhaWxzIGNvbmNlcm5pbmcgaXNGdW5jdGlvbi4KCS8vIFNpbmNlIHZlcnNpb24gMS4zLCBET00gbWV0aG9kcyBhbmQgZnVuY3Rpb25zIGxpa2UgYWxlcnQKCS8vIGFyZW4ndCBzdXBwb3J0ZWQuIFRoZXkgcmV0dXJuIGZhbHNlIG9uIElFICgjMjk2OCkuCglpc0Z1bmN0aW9uOiBmdW5jdGlvbiggb2JqICkgewoJCXJldHVybiBqUXVlcnkudHlwZShvYmopID09PSAiZnVuY3Rpb24iOwoJfSwKCglpc0FycmF5OiBBcnJheS5pc0FycmF5IHx8IGZ1bmN0aW9uKCBvYmogKSB7CgkJcmV0dXJuIGpRdWVyeS50eXBlKG9iaikgPT09ICJhcnJheSI7Cgl9LAoKCS8vIEEgY3J1ZGUgd2F5IG9mIGRldGVybWluaW5nIGlmIGFuIG9iamVjdCBpcyBhIHdpbmRvdwoJaXNXaW5kb3c6IGZ1bmN0aW9uKCBvYmogKSB7CgkJcmV0dXJuIG9iaiAmJiB0eXBlb2Ygb2JqID09PSAib2JqZWN0IiAmJiAic2V0SW50ZXJ2YWwiIGluIG9iajsKCX0sCgoJaXNOYU46IGZ1bmN0aW9uKCBvYmogKSB7CgkJcmV0dXJuIG9iaiA9PSBudWxsIHx8ICFyZGlnaXQudGVzdCggb2JqICkgfHwgaXNOYU4oIG9iaiApOwoJfSwKCgl0eXBlOiBmdW5jdGlvbiggb2JqICkgewoJCXJldHVybiBvYmogPT0gbnVsbCA/CgkJCVN0cmluZyggb2JqICkgOgoJCQljbGFzczJ0eXBlWyB0b1N0cmluZy5jYWxsKG9iaikgXSB8fCAib2JqZWN0IjsKCX0sCgoJaXNQbGFpbk9iamVjdDogZnVuY3Rpb24oIG9iaiApIHsKCQkvLyBNdXN0IGJlIGFuIE9iamVjdC4KCQkvLyBCZWNhdXNlIG9mIElFLCB3ZSBhbHNvIGhhdmUgdG8gY2hlY2sgdGhlIHByZXNlbmNlIG9mIHRoZSBjb25zdHJ1Y3RvciBwcm9wZXJ0eS4KCQkvLyBNYWtlIHN1cmUgdGhhdCBET00gbm9kZXMgYW5kIHdpbmRvdyBvYmplY3RzIGRvbid0IHBhc3MgdGhyb3VnaCwgYXMgd2VsbAoJCWlmICggIW9iaiB8fCBqUXVlcnkudHlwZShvYmopICE9PSAib2JqZWN0IiB8fCBvYmoubm9kZVR5cGUgfHwgalF1ZXJ5LmlzV2luZG93KCBvYmogKSApIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCgkJLy8gTm90IG93biBjb25zdHJ1Y3RvciBwcm9wZXJ0eSBtdXN0IGJlIE9iamVjdAoJCWlmICggb2JqLmNvbnN0cnVjdG9yICYmCgkJCSFoYXNPd24uY2FsbChvYmosICJjb25zdHJ1Y3RvciIpICYmCgkJCSFoYXNPd24uY2FsbChvYmouY29uc3RydWN0b3IucHJvdG90eXBlLCAiaXNQcm90b3R5cGVPZiIpICkgewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoKCQkvLyBPd24gcHJvcGVydGllcyBhcmUgZW51bWVyYXRlZCBmaXJzdGx5LCBzbyB0byBzcGVlZCB1cCwKCQkvLyBpZiBsYXN0IG9uZSBpcyBvd24sIHRoZW4gYWxsIHByb3BlcnRpZXMgYXJlIG93bi4KCgkJdmFyIGtleTsKCQlmb3IgKCBrZXkgaW4gb2JqICkge30KCgkJcmV0dXJuIGtleSA9PT0gdW5kZWZpbmVkIHx8IGhhc093bi5jYWxsKCBvYmosIGtleSApOwoJfSwKCglpc0VtcHR5T2JqZWN0OiBmdW5jdGlvbiggb2JqICkgewoJCWZvciAoIHZhciBuYW1lIGluIG9iaiApIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQlyZXR1cm4gdHJ1ZTsKCX0sCgoJZXJyb3I6IGZ1bmN0aW9uKCBtc2cgKSB7CgkJdGhyb3cgbXNnOwoJfSwKCglwYXJzZUpTT046IGZ1bmN0aW9uKCBkYXRhICkgewoJCWlmICggdHlwZW9mIGRhdGEgIT09ICJzdHJpbmciIHx8ICFkYXRhICkgewoJCQlyZXR1cm4gbnVsbDsKCQl9CgoJCS8vIE1ha2Ugc3VyZSBsZWFkaW5nL3RyYWlsaW5nIHdoaXRlc3BhY2UgaXMgcmVtb3ZlZCAoSUUgY2FuJ3QgaGFuZGxlIGl0KQoJCWRhdGEgPSBqUXVlcnkudHJpbSggZGF0YSApOwoKCQkvLyBNYWtlIHN1cmUgdGhlIGluY29taW5nIGRhdGEgaXMgYWN0dWFsIEpTT04KCQkvLyBMb2dpYyBib3Jyb3dlZCBmcm9tIGh0dHA6Ly9qc29uLm9yZy9qc29uMi5qcwoJCWlmICggcnZhbGlkY2hhcnMudGVzdChkYXRhLnJlcGxhY2UocnZhbGlkZXNjYXBlLCAiQCIpCgkJCS5yZXBsYWNlKHJ2YWxpZHRva2VucywgIl0iKQoJCQkucmVwbGFjZShydmFsaWRicmFjZXMsICIiKSkgKSB7CgoJCQkvLyBUcnkgdG8gdXNlIHRoZSBuYXRpdmUgSlNPTiBwYXJzZXIgZmlyc3QKCQkJcmV0dXJuIHdpbmRvdy5KU09OICYmIHdpbmRvdy5KU09OLnBhcnNlID8KCQkJCXdpbmRvdy5KU09OLnBhcnNlKCBkYXRhICkgOgoJCQkJKG5ldyBGdW5jdGlvbigicmV0dXJuICIgKyBkYXRhKSkoKTsKCgkJfSBlbHNlIHsKCQkJalF1ZXJ5LmVycm9yKCAiSW52YWxpZCBKU09OOiAiICsgZGF0YSApOwoJCX0KCX0sCgoJLy8gQ3Jvc3MtYnJvd3NlciB4bWwgcGFyc2luZwoJLy8gKHhtbCAmIHRtcCB1c2VkIGludGVybmFsbHkpCglwYXJzZVhNTDogZnVuY3Rpb24oIGRhdGEgLCB4bWwgLCB0bXAgKSB7CgoJCWlmICggd2luZG93LkRPTVBhcnNlciApIHsgLy8gU3RhbmRhcmQKCQkJdG1wID0gbmV3IERPTVBhcnNlcigpOwoJCQl4bWwgPSB0bXAucGFyc2VGcm9tU3RyaW5nKCBkYXRhICwgInRleHQveG1sIiApOwoJCX0gZWxzZSB7IC8vIElFCgkJCXhtbCA9IG5ldyBBY3RpdmVYT2JqZWN0KCAiTWljcm9zb2Z0LlhNTERPTSIgKTsKCQkJeG1sLmFzeW5jID0gImZhbHNlIjsKCQkJeG1sLmxvYWRYTUwoIGRhdGEgKTsKCQl9CgoJCXRtcCA9IHhtbC5kb2N1bWVudEVsZW1lbnQ7CgoJCWlmICggISB0bXAgfHwgISB0bXAubm9kZU5hbWUgfHwgdG1wLm5vZGVOYW1lID09PSAicGFyc2VyZXJyb3IiICkgewoJCQlqUXVlcnkuZXJyb3IoICJJbnZhbGlkIFhNTDogIiArIGRhdGEgKTsKCQl9CgoJCXJldHVybiB4bWw7Cgl9LAoKCW5vb3A6IGZ1bmN0aW9uKCkge30sCgoJLy8gRXZhbHVsYXRlcyBhIHNjcmlwdCBpbiBhIGdsb2JhbCBjb250ZXh0CglnbG9iYWxFdmFsOiBmdW5jdGlvbiggZGF0YSApIHsKCQlpZiAoIGRhdGEgJiYgcm5vdHdoaXRlLnRlc3QoZGF0YSkgKSB7CgkJCS8vIEluc3BpcmVkIGJ5IGNvZGUgYnkgQW5kcmVhIEdpYW1tYXJjaGkKCQkJLy8gaHR0cDovL3dlYnJlZmxlY3Rpb24uYmxvZ3Nwb3QuY29tLzIwMDcvMDgvZ2xvYmFsLXNjb3BlLWV2YWx1YXRpb24tYW5kLWRvbS5odG1sCgkJCXZhciBoZWFkID0gZG9jdW1lbnQuaGVhZCB8fCBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSggImhlYWQiIClbMF0gfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LAoJCQkJc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggInNjcmlwdCIgKTsKCgkJCWlmICggalF1ZXJ5LnN1cHBvcnQuc2NyaXB0RXZhbCgpICkgewoJCQkJc2NyaXB0LmFwcGVuZENoaWxkKCBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSggZGF0YSApICk7CgkJCX0gZWxzZSB7CgkJCQlzY3JpcHQudGV4dCA9IGRhdGE7CgkJCX0KCgkJCS8vIFVzZSBpbnNlcnRCZWZvcmUgaW5zdGVhZCBvZiBhcHBlbmRDaGlsZCB0byBjaXJjdW12ZW50IGFuIElFNiBidWcuCgkJCS8vIFRoaXMgYXJpc2VzIHdoZW4gYSBiYXNlIG5vZGUgaXMgdXNlZCAoIzI3MDkpLgoJCQloZWFkLmluc2VydEJlZm9yZSggc2NyaXB0LCBoZWFkLmZpcnN0Q2hpbGQgKTsKCQkJaGVhZC5yZW1vdmVDaGlsZCggc2NyaXB0ICk7CgkJfQoJfSwKCglub2RlTmFtZTogZnVuY3Rpb24oIGVsZW0sIG5hbWUgKSB7CgkJcmV0dXJuIGVsZW0ubm9kZU5hbWUgJiYgZWxlbS5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpID09PSBuYW1lLnRvVXBwZXJDYXNlKCk7Cgl9LAoKCS8vIGFyZ3MgaXMgZm9yIGludGVybmFsIHVzYWdlIG9ubHkKCWVhY2g6IGZ1bmN0aW9uKCBvYmplY3QsIGNhbGxiYWNrLCBhcmdzICkgewoJCXZhciBuYW1lLCBpID0gMCwKCQkJbGVuZ3RoID0gb2JqZWN0Lmxlbmd0aCwKCQkJaXNPYmogPSBsZW5ndGggPT09IHVuZGVmaW5lZCB8fCBqUXVlcnkuaXNGdW5jdGlvbihvYmplY3QpOwoKCQlpZiAoIGFyZ3MgKSB7CgkJCWlmICggaXNPYmogKSB7CgkJCQlmb3IgKCBuYW1lIGluIG9iamVjdCApIHsKCQkJCQlpZiAoIGNhbGxiYWNrLmFwcGx5KCBvYmplY3RbIG5hbWUgXSwgYXJncyApID09PSBmYWxzZSApIHsKCQkJCQkJYnJlYWs7CgkJCQkJfQoJCQkJfQoJCQl9IGVsc2UgewoJCQkJZm9yICggOyBpIDwgbGVuZ3RoOyApIHsKCQkJCQlpZiAoIGNhbGxiYWNrLmFwcGx5KCBvYmplY3RbIGkrKyBdLCBhcmdzICkgPT09IGZhbHNlICkgewoJCQkJCQlicmVhazsKCQkJCQl9CgkJCQl9CgkJCX0KCgkJLy8gQSBzcGVjaWFsLCBmYXN0LCBjYXNlIGZvciB0aGUgbW9zdCBjb21tb24gdXNlIG9mIGVhY2gKCQl9IGVsc2UgewoJCQlpZiAoIGlzT2JqICkgewoJCQkJZm9yICggbmFtZSBpbiBvYmplY3QgKSB7CgkJCQkJaWYgKCBjYWxsYmFjay5jYWxsKCBvYmplY3RbIG5hbWUgXSwgbmFtZSwgb2JqZWN0WyBuYW1lIF0gKSA9PT0gZmFsc2UgKSB7CgkJCQkJCWJyZWFrOwoJCQkJCX0KCQkJCX0KCQkJfSBlbHNlIHsKCQkJCWZvciAoIHZhciB2YWx1ZSA9IG9iamVjdFswXTsKCQkJCQlpIDwgbGVuZ3RoICYmIGNhbGxiYWNrLmNhbGwoIHZhbHVlLCBpLCB2YWx1ZSApICE9PSBmYWxzZTsgdmFsdWUgPSBvYmplY3RbKytpXSApIHt9CgkJCX0KCQl9CgoJCXJldHVybiBvYmplY3Q7Cgl9LAoKCS8vIFVzZSBuYXRpdmUgU3RyaW5nLnRyaW0gZnVuY3Rpb24gd2hlcmV2ZXIgcG9zc2libGUKCXRyaW06IHRyaW0gPwoJCWZ1bmN0aW9uKCB0ZXh0ICkgewoJCQlyZXR1cm4gdGV4dCA9PSBudWxsID8KCQkJCSIiIDoKCQkJCXRyaW0uY2FsbCggdGV4dCApOwoJCX0gOgoKCQkvLyBPdGhlcndpc2UgdXNlIG91ciBvd24gdHJpbW1pbmcgZnVuY3Rpb25hbGl0eQoJCWZ1bmN0aW9uKCB0ZXh0ICkgewoJCQlyZXR1cm4gdGV4dCA9PSBudWxsID8KCQkJCSIiIDoKCQkJCXRleHQudG9TdHJpbmcoKS5yZXBsYWNlKCB0cmltTGVmdCwgIiIgKS5yZXBsYWNlKCB0cmltUmlnaHQsICIiICk7CgkJfSwKCgkvLyByZXN1bHRzIGlzIGZvciBpbnRlcm5hbCB1c2FnZSBvbmx5CgltYWtlQXJyYXk6IGZ1bmN0aW9uKCBhcnJheSwgcmVzdWx0cyApIHsKCQl2YXIgcmV0ID0gcmVzdWx0cyB8fCBbXTsKCgkJaWYgKCBhcnJheSAhPSBudWxsICkgewoJCQkvLyBUaGUgd2luZG93LCBzdHJpbmdzIChhbmQgZnVuY3Rpb25zKSBhbHNvIGhhdmUgJ2xlbmd0aCcKCQkJLy8gVGhlIGV4dHJhIHR5cGVvZiBmdW5jdGlvbiBjaGVjayBpcyB0byBwcmV2ZW50IGNyYXNoZXMKCQkJLy8gaW4gU2FmYXJpIDIgKFNlZTogIzMwMzkpCgkJCS8vIFR3ZWFrZWQgbG9naWMgc2xpZ2h0bHkgdG8gaGFuZGxlIEJsYWNrYmVycnkgNC43IFJlZ0V4cCBpc3N1ZXMgIzY5MzAKCQkJdmFyIHR5cGUgPSBqUXVlcnkudHlwZShhcnJheSk7CgoJCQlpZiAoIGFycmF5Lmxlbmd0aCA9PSBudWxsIHx8IHR5cGUgPT09ICJzdHJpbmciIHx8IHR5cGUgPT09ICJmdW5jdGlvbiIgfHwgdHlwZSA9PT0gInJlZ2V4cCIgfHwgalF1ZXJ5LmlzV2luZG93KCBhcnJheSApICkgewoJCQkJcHVzaC5jYWxsKCByZXQsIGFycmF5ICk7CgkJCX0gZWxzZSB7CgkJCQlqUXVlcnkubWVyZ2UoIHJldCwgYXJyYXkgKTsKCQkJfQoJCX0KCgkJcmV0dXJuIHJldDsKCX0sCgoJaW5BcnJheTogZnVuY3Rpb24oIGVsZW0sIGFycmF5ICkgewoJCWlmICggYXJyYXkuaW5kZXhPZiApIHsKCQkJcmV0dXJuIGFycmF5LmluZGV4T2YoIGVsZW0gKTsKCQl9CgoJCWZvciAoIHZhciBpID0gMCwgbGVuZ3RoID0gYXJyYXkubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKysgKSB7CgkJCWlmICggYXJyYXlbIGkgXSA9PT0gZWxlbSApIHsKCQkJCXJldHVybiBpOwoJCQl9CgkJfQoKCQlyZXR1cm4gLTE7Cgl9LAoKCW1lcmdlOiBmdW5jdGlvbiggZmlyc3QsIHNlY29uZCApIHsKCQl2YXIgaSA9IGZpcnN0Lmxlbmd0aCwKCQkJaiA9IDA7CgoJCWlmICggdHlwZW9mIHNlY29uZC5sZW5ndGggPT09ICJudW1iZXIiICkgewoJCQlmb3IgKCB2YXIgbCA9IHNlY29uZC5sZW5ndGg7IGogPCBsOyBqKysgKSB7CgkJCQlmaXJzdFsgaSsrIF0gPSBzZWNvbmRbIGogXTsKCQkJfQoKCQl9IGVsc2UgewoJCQl3aGlsZSAoIHNlY29uZFtqXSAhPT0gdW5kZWZpbmVkICkgewoJCQkJZmlyc3RbIGkrKyBdID0gc2Vjb25kWyBqKysgXTsKCQkJfQoJCX0KCgkJZmlyc3QubGVuZ3RoID0gaTsKCgkJcmV0dXJuIGZpcnN0OwoJfSwKCglncmVwOiBmdW5jdGlvbiggZWxlbXMsIGNhbGxiYWNrLCBpbnYgKSB7CgkJdmFyIHJldCA9IFtdLCByZXRWYWw7CgkJaW52ID0gISFpbnY7CgoJCS8vIEdvIHRocm91Z2ggdGhlIGFycmF5LCBvbmx5IHNhdmluZyB0aGUgaXRlbXMKCQkvLyB0aGF0IHBhc3MgdGhlIHZhbGlkYXRvciBmdW5jdGlvbgoJCWZvciAoIHZhciBpID0gMCwgbGVuZ3RoID0gZWxlbXMubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKysgKSB7CgkJCXJldFZhbCA9ICEhY2FsbGJhY2soIGVsZW1zWyBpIF0sIGkgKTsKCQkJaWYgKCBpbnYgIT09IHJldFZhbCApIHsKCQkJCXJldC5wdXNoKCBlbGVtc1sgaSBdICk7CgkJCX0KCQl9CgoJCXJldHVybiByZXQ7Cgl9LAoKCS8vIGFyZyBpcyBmb3IgaW50ZXJuYWwgdXNhZ2Ugb25seQoJbWFwOiBmdW5jdGlvbiggZWxlbXMsIGNhbGxiYWNrLCBhcmcgKSB7CgkJdmFyIHJldCA9IFtdLCB2YWx1ZTsKCgkJLy8gR28gdGhyb3VnaCB0aGUgYXJyYXksIHRyYW5zbGF0aW5nIGVhY2ggb2YgdGhlIGl0ZW1zIHRvIHRoZWlyCgkJLy8gbmV3IHZhbHVlIChvciB2YWx1ZXMpLgoJCWZvciAoIHZhciBpID0gMCwgbGVuZ3RoID0gZWxlbXMubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKysgKSB7CgkJCXZhbHVlID0gY2FsbGJhY2soIGVsZW1zWyBpIF0sIGksIGFyZyApOwoKCQkJaWYgKCB2YWx1ZSAhPSBudWxsICkgewoJCQkJcmV0WyByZXQubGVuZ3RoIF0gPSB2YWx1ZTsKCQkJfQoJCX0KCgkJLy8gRmxhdHRlbiBhbnkgbmVzdGVkIGFycmF5cwoJCXJldHVybiByZXQuY29uY2F0LmFwcGx5KCBbXSwgcmV0ICk7Cgl9LAoKCS8vIEEgZ2xvYmFsIEdVSUQgY291bnRlciBmb3Igb2JqZWN0cwoJZ3VpZDogMSwKCglwcm94eTogZnVuY3Rpb24oIGZuLCBwcm94eSwgdGhpc09iamVjdCApIHsKCQlpZiAoIGFyZ3VtZW50cy5sZW5ndGggPT09IDIgKSB7CgkJCWlmICggdHlwZW9mIHByb3h5ID09PSAic3RyaW5nIiApIHsKCQkJCXRoaXNPYmplY3QgPSBmbjsKCQkJCWZuID0gdGhpc09iamVjdFsgcHJveHkgXTsKCQkJCXByb3h5ID0gdW5kZWZpbmVkOwoKCQkJfSBlbHNlIGlmICggcHJveHkgJiYgIWpRdWVyeS5pc0Z1bmN0aW9uKCBwcm94eSApICkgewoJCQkJdGhpc09iamVjdCA9IHByb3h5OwoJCQkJcHJveHkgPSB1bmRlZmluZWQ7CgkJCX0KCQl9CgoJCWlmICggIXByb3h5ICYmIGZuICkgewoJCQlwcm94eSA9IGZ1bmN0aW9uKCkgewoJCQkJcmV0dXJuIGZuLmFwcGx5KCB0aGlzT2JqZWN0IHx8IHRoaXMsIGFyZ3VtZW50cyApOwoJCQl9OwoJCX0KCgkJLy8gU2V0IHRoZSBndWlkIG9mIHVuaXF1ZSBoYW5kbGVyIHRvIHRoZSBzYW1lIG9mIG9yaWdpbmFsIGhhbmRsZXIsIHNvIGl0IGNhbiBiZSByZW1vdmVkCgkJaWYgKCBmbiApIHsKCQkJcHJveHkuZ3VpZCA9IGZuLmd1aWQgPSBmbi5ndWlkIHx8IHByb3h5Lmd1aWQgfHwgalF1ZXJ5Lmd1aWQrKzsKCQl9CgoJCS8vIFNvIHByb3h5IGNhbiBiZSBkZWNsYXJlZCBhcyBhbiBhcmd1bWVudAoJCXJldHVybiBwcm94eTsKCX0sCgoJLy8gTXV0aWZ1bmN0aW9uYWwgbWV0aG9kIHRvIGdldCBhbmQgc2V0IHZhbHVlcyB0byBhIGNvbGxlY3Rpb24KCS8vIFRoZSB2YWx1ZS9zIGNhbiBiZSBvcHRpb25hbGx5IGJ5IGV4ZWN1dGVkIGlmIGl0cyBhIGZ1bmN0aW9uCglhY2Nlc3M6IGZ1bmN0aW9uKCBlbGVtcywga2V5LCB2YWx1ZSwgZXhlYywgZm4sIHBhc3MgKSB7CgkJdmFyIGxlbmd0aCA9IGVsZW1zLmxlbmd0aDsKCgkJLy8gU2V0dGluZyBtYW55IGF0dHJpYnV0ZXMKCQlpZiAoIHR5cGVvZiBrZXkgPT09ICJvYmplY3QiICkgewoJCQlmb3IgKCB2YXIgayBpbiBrZXkgKSB7CgkJCQlqUXVlcnkuYWNjZXNzKCBlbGVtcywgaywga2V5W2tdLCBleGVjLCBmbiwgdmFsdWUgKTsKCQkJfQoJCQlyZXR1cm4gZWxlbXM7CgkJfQoKCQkvLyBTZXR0aW5nIG9uZSBhdHRyaWJ1dGUKCQlpZiAoIHZhbHVlICE9PSB1bmRlZmluZWQgKSB7CgkJCS8vIE9wdGlvbmFsbHksIGZ1bmN0aW9uIHZhbHVlcyBnZXQgZXhlY3V0ZWQgaWYgZXhlYyBpcyB0cnVlCgkJCWV4ZWMgPSAhcGFzcyAmJiBleGVjICYmIGpRdWVyeS5pc0Z1bmN0aW9uKHZhbHVlKTsKCgkJCWZvciAoIHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrICkgewoJCQkJZm4oIGVsZW1zW2ldLCBrZXksIGV4ZWMgPyB2YWx1ZS5jYWxsKCBlbGVtc1tpXSwgaSwgZm4oIGVsZW1zW2ldLCBrZXkgKSApIDogdmFsdWUsIHBhc3MgKTsKCQkJfQoKCQkJcmV0dXJuIGVsZW1zOwoJCX0KCgkJLy8gR2V0dGluZyBhbiBhdHRyaWJ1dGUKCQlyZXR1cm4gbGVuZ3RoID8gZm4oIGVsZW1zWzBdLCBrZXkgKSA6IHVuZGVmaW5lZDsKCX0sCgoJbm93OiBmdW5jdGlvbigpIHsKCQlyZXR1cm4gKG5ldyBEYXRlKCkpLmdldFRpbWUoKTsKCX0sCgoJLy8gQ3JlYXRlIGEgc2ltcGxlIGRlZmVycmVkIChvbmUgY2FsbGJhY2tzIGxpc3QpCglfRGVmZXJyZWQ6IGZ1bmN0aW9uKCkgewoJCXZhciAvLyBjYWxsYmFja3MgbGlzdAoJCQljYWxsYmFja3MgPSBbXSwKCQkJLy8gc3RvcmVkIFsgY29udGV4dCAsIGFyZ3MgXQoJCQlmaXJlZCwKCQkJLy8gdG8gYXZvaWQgZmlyaW5nIHdoZW4gYWxyZWFkeSBkb2luZyBzbwoJCQlmaXJpbmcsCgkJCS8vIGZsYWcgdG8ga25vdyBpZiB0aGUgZGVmZXJyZWQgaGFzIGJlZW4gY2FuY2VsbGVkCgkJCWNhbmNlbGxlZCwKCQkJLy8gdGhlIGRlZmVycmVkIGl0c2VsZgoJCQlkZWZlcnJlZCAgPSB7CgoJCQkJLy8gZG9uZSggZjEsIGYyLCAuLi4pCgkJCQlkb25lOiBmdW5jdGlvbigpIHsKCQkJCQlpZiAoICFjYW5jZWxsZWQgKSB7CgkJCQkJCXZhciBhcmdzID0gYXJndW1lbnRzLAoJCQkJCQkJaSwKCQkJCQkJCWxlbmd0aCwKCQkJCQkJCWVsZW0sCgkJCQkJCQl0eXBlLAoJCQkJCQkJX2ZpcmVkOwoJCQkJCQlpZiAoIGZpcmVkICkgewoJCQkJCQkJX2ZpcmVkID0gZmlyZWQ7CgkJCQkJCQlmaXJlZCA9IDA7CgkJCQkJCX0KCQkJCQkJZm9yICggaSA9IDAsIGxlbmd0aCA9IGFyZ3MubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKysgKSB7CgkJCQkJCQllbGVtID0gYXJnc1sgaSBdOwoJCQkJCQkJdHlwZSA9IGpRdWVyeS50eXBlKCBlbGVtICk7CgkJCQkJCQlpZiAoIHR5cGUgPT09ICJhcnJheSIgKSB7CgkJCQkJCQkJZGVmZXJyZWQuZG9uZS5hcHBseSggZGVmZXJyZWQsIGVsZW0gKTsKCQkJCQkJCX0gZWxzZSBpZiAoIHR5cGUgPT09ICJmdW5jdGlvbiIgKSB7CgkJCQkJCQkJY2FsbGJhY2tzLnB1c2goIGVsZW0gKTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCQlpZiAoIF9maXJlZCApIHsKCQkJCQkJCWRlZmVycmVkLnJlc29sdmVXaXRoKCBfZmlyZWRbIDAgXSwgX2ZpcmVkWyAxIF0gKTsKCQkJCQkJfQoJCQkJCX0KCQkJCQlyZXR1cm4gdGhpczsKCQkJCX0sCgoJCQkJLy8gcmVzb2x2ZSB3aXRoIGdpdmVuIGNvbnRleHQgYW5kIGFyZ3MKCQkJCXJlc29sdmVXaXRoOiBmdW5jdGlvbiggY29udGV4dCwgYXJncyApIHsKCQkJCQlpZiAoICFjYW5jZWxsZWQgJiYgIWZpcmVkICYmICFmaXJpbmcgKSB7CgkJCQkJCWZpcmluZyA9IDE7CgkJCQkJCXRyeSB7CgkJCQkJCQl3aGlsZSggY2FsbGJhY2tzWyAwIF0gKSB7CgkJCQkJCQkJY2FsbGJhY2tzLnNoaWZ0KCkuYXBwbHkoIGNvbnRleHQsIGFyZ3MgKTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCQkvLyBXZSBoYXZlIHRvIGFkZCBhIGNhdGNoIGJsb2NrIGZvcgoJCQkJCQkvLyBJRSBwcmlvciB0byA4IG9yIGVsc2UgdGhlIGZpbmFsbHkKCQkJCQkJLy8gYmxvY2sgd2lsbCBuZXZlciBnZXQgZXhlY3V0ZWQKCQkJCQkJY2F0Y2ggKGUpIHsKCQkJCQkJCXRocm93IGU7CgkJCQkJCX0KCQkJCQkJZmluYWxseSB7CgkJCQkJCQlmaXJlZCA9IFsgY29udGV4dCwgYXJncyBdOwoJCQkJCQkJZmlyaW5nID0gMDsKCQkJCQkJfQoJCQkJCX0KCQkJCQlyZXR1cm4gdGhpczsKCQkJCX0sCgoJCQkJLy8gcmVzb2x2ZSB3aXRoIHRoaXMgYXMgY29udGV4dCBhbmQgZ2l2ZW4gYXJndW1lbnRzCgkJCQlyZXNvbHZlOiBmdW5jdGlvbigpIHsKCQkJCQlkZWZlcnJlZC5yZXNvbHZlV2l0aCggalF1ZXJ5LmlzRnVuY3Rpb24oIHRoaXMucHJvbWlzZSApID8gdGhpcy5wcm9taXNlKCkgOiB0aGlzLCBhcmd1bWVudHMgKTsKCQkJCQlyZXR1cm4gdGhpczsKCQkJCX0sCgoJCQkJLy8gSGFzIHRoaXMgZGVmZXJyZWQgYmVlbiByZXNvbHZlZD8KCQkJCWlzUmVzb2x2ZWQ6IGZ1bmN0aW9uKCkgewoJCQkJCXJldHVybiAhISggZmlyaW5nIHx8IGZpcmVkICk7CgkJCQl9LAoKCQkJCS8vIENhbmNlbAoJCQkJY2FuY2VsOiBmdW5jdGlvbigpIHsKCQkJCQljYW5jZWxsZWQgPSAxOwoJCQkJCWNhbGxiYWNrcyA9IFtdOwoJCQkJCXJldHVybiB0aGlzOwoJCQkJfQoJCQl9OwoKCQlyZXR1cm4gZGVmZXJyZWQ7Cgl9LAoKCS8vIEZ1bGwgZmxlZGdlZCBkZWZlcnJlZCAodHdvIGNhbGxiYWNrcyBsaXN0KQoJRGVmZXJyZWQ6IGZ1bmN0aW9uKCBmdW5jICkgewoJCXZhciBkZWZlcnJlZCA9IGpRdWVyeS5fRGVmZXJyZWQoKSwKCQkJZmFpbERlZmVycmVkID0galF1ZXJ5Ll9EZWZlcnJlZCgpLAoJCQlwcm9taXNlOwoJCS8vIEFkZCBlcnJvckRlZmVycmVkIG1ldGhvZHMsIHRoZW4gYW5kIHByb21pc2UKCQlqUXVlcnkuZXh0ZW5kKCBkZWZlcnJlZCwgewoJCQl0aGVuOiBmdW5jdGlvbiggZG9uZUNhbGxiYWNrcywgZmFpbENhbGxiYWNrcyApIHsKCQkJCWRlZmVycmVkLmRvbmUoIGRvbmVDYWxsYmFja3MgKS5mYWlsKCBmYWlsQ2FsbGJhY2tzICk7CgkJCQlyZXR1cm4gdGhpczsKCQkJfSwKCQkJZmFpbDogZmFpbERlZmVycmVkLmRvbmUsCgkJCXJlamVjdFdpdGg6IGZhaWxEZWZlcnJlZC5yZXNvbHZlV2l0aCwKCQkJcmVqZWN0OiBmYWlsRGVmZXJyZWQucmVzb2x2ZSwKCQkJaXNSZWplY3RlZDogZmFpbERlZmVycmVkLmlzUmVzb2x2ZWQsCgkJCS8vIEdldCBhIHByb21pc2UgZm9yIHRoaXMgZGVmZXJyZWQKCQkJLy8gSWYgb2JqIGlzIHByb3ZpZGVkLCB0aGUgcHJvbWlzZSBhc3BlY3QgaXMgYWRkZWQgdG8gdGhlIG9iamVjdAoJCQlwcm9taXNlOiBmdW5jdGlvbiggb2JqICkgewoJCQkJaWYgKCBvYmogPT0gbnVsbCApIHsKCQkJCQlpZiAoIHByb21pc2UgKSB7CgkJCQkJCXJldHVybiBwcm9taXNlOwoJCQkJCX0KCQkJCQlwcm9taXNlID0gb2JqID0ge307CgkJCQl9CgkJCQl2YXIgaSA9IHByb21pc2VNZXRob2RzLmxlbmd0aDsKCQkJCXdoaWxlKCBpLS0gKSB7CgkJCQkJb2JqWyBwcm9taXNlTWV0aG9kc1tpXSBdID0gZGVmZXJyZWRbIHByb21pc2VNZXRob2RzW2ldIF07CgkJCQl9CgkJCQlyZXR1cm4gb2JqOwoJCQl9CgkJfSApOwoJCS8vIE1ha2Ugc3VyZSBvbmx5IG9uZSBjYWxsYmFjayBsaXN0IHdpbGwgYmUgdXNlZAoJCWRlZmVycmVkLmRvbmUoIGZhaWxEZWZlcnJlZC5jYW5jZWwgKS5mYWlsKCBkZWZlcnJlZC5jYW5jZWwgKTsKCQkvLyBVbmV4cG9zZSBjYW5jZWwKCQlkZWxldGUgZGVmZXJyZWQuY2FuY2VsOwoJCS8vIENhbGwgZ2l2ZW4gZnVuYyBpZiBhbnkKCQlpZiAoIGZ1bmMgKSB7CgkJCWZ1bmMuY2FsbCggZGVmZXJyZWQsIGRlZmVycmVkICk7CgkJfQoJCXJldHVybiBkZWZlcnJlZDsKCX0sCgoJLy8gRGVmZXJyZWQgaGVscGVyCgl3aGVuOiBmdW5jdGlvbiggb2JqZWN0ICkgewoJCXZhciBsYXN0SW5kZXggPSBhcmd1bWVudHMubGVuZ3RoLAoJCQlkZWZlcnJlZCA9IGxhc3RJbmRleCA8PSAxICYmIG9iamVjdCAmJiBqUXVlcnkuaXNGdW5jdGlvbiggb2JqZWN0LnByb21pc2UgKSA/CgkJCQlvYmplY3QgOgoJCQkJalF1ZXJ5LkRlZmVycmVkKCksCgkJCXByb21pc2UgPSBkZWZlcnJlZC5wcm9taXNlKCk7CgoJCWlmICggbGFzdEluZGV4ID4gMSApIHsKCQkJdmFyIGFycmF5ID0gc2xpY2UuY2FsbCggYXJndW1lbnRzLCAwICksCgkJCQljb3VudCA9IGxhc3RJbmRleCwKCQkJCWlDYWxsYmFjayA9IGZ1bmN0aW9uKCBpbmRleCApIHsKCQkJCQlyZXR1cm4gZnVuY3Rpb24oIHZhbHVlICkgewoJCQkJCQlhcnJheVsgaW5kZXggXSA9IGFyZ3VtZW50cy5sZW5ndGggPiAxID8gc2xpY2UuY2FsbCggYXJndW1lbnRzLCAwICkgOiB2YWx1ZTsKCQkJCQkJaWYgKCAhKCAtLWNvdW50ICkgKSB7CgkJCQkJCQlkZWZlcnJlZC5yZXNvbHZlV2l0aCggcHJvbWlzZSwgYXJyYXkgKTsKCQkJCQkJfQoJCQkJCX07CgkJCQl9OwoJCQl3aGlsZSggKCBsYXN0SW5kZXgtLSApICkgewoJCQkJb2JqZWN0ID0gYXJyYXlbIGxhc3RJbmRleCBdOwoJCQkJaWYgKCBvYmplY3QgJiYgalF1ZXJ5LmlzRnVuY3Rpb24oIG9iamVjdC5wcm9taXNlICkgKSB7CgkJCQkJb2JqZWN0LnByb21pc2UoKS50aGVuKCBpQ2FsbGJhY2sobGFzdEluZGV4KSwgZGVmZXJyZWQucmVqZWN0ICk7CgkJCQl9IGVsc2UgewoJCQkJCS0tY291bnQ7CgkJCQl9CgkJCX0KCQkJaWYgKCAhY291bnQgKSB7CgkJCQlkZWZlcnJlZC5yZXNvbHZlV2l0aCggcHJvbWlzZSwgYXJyYXkgKTsKCQkJfQoJCX0gZWxzZSBpZiAoIGRlZmVycmVkICE9PSBvYmplY3QgKSB7CgkJCWRlZmVycmVkLnJlc29sdmUoIG9iamVjdCApOwoJCX0KCQlyZXR1cm4gcHJvbWlzZTsKCX0sCgoJLy8gVXNlIG9mIGpRdWVyeS5icm93c2VyIGlzIGZyb3duZWQgdXBvbi4KCS8vIE1vcmUgZGV0YWlsczogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9VdGlsaXRpZXMvalF1ZXJ5LmJyb3dzZXIKCXVhTWF0Y2g6IGZ1bmN0aW9uKCB1YSApIHsKCQl1YSA9IHVhLnRvTG93ZXJDYXNlKCk7CgoJCXZhciBtYXRjaCA9IHJ3ZWJraXQuZXhlYyggdWEgKSB8fAoJCQlyb3BlcmEuZXhlYyggdWEgKSB8fAoJCQlybXNpZS5leGVjKCB1YSApIHx8CgkJCXVhLmluZGV4T2YoImNvbXBhdGlibGUiKSA8IDAgJiYgcm1vemlsbGEuZXhlYyggdWEgKSB8fAoJCQlbXTsKCgkJcmV0dXJuIHsgYnJvd3NlcjogbWF0Y2hbMV0gfHwgIiIsIHZlcnNpb246IG1hdGNoWzJdIHx8ICIwIiB9OwoJfSwKCglzdWI6IGZ1bmN0aW9uKCkgewoJCWZ1bmN0aW9uIGpRdWVyeVN1YmNsYXNzKCBzZWxlY3RvciwgY29udGV4dCApIHsKCQkJcmV0dXJuIG5ldyBqUXVlcnlTdWJjbGFzcy5mbi5pbml0KCBzZWxlY3RvciwgY29udGV4dCApOwoJCX0KCQlqUXVlcnkuZXh0ZW5kKCB0cnVlLCBqUXVlcnlTdWJjbGFzcywgdGhpcyApOwoJCWpRdWVyeVN1YmNsYXNzLnN1cGVyY2xhc3MgPSB0aGlzOwoJCWpRdWVyeVN1YmNsYXNzLmZuID0galF1ZXJ5U3ViY2xhc3MucHJvdG90eXBlID0gdGhpcygpOwoJCWpRdWVyeVN1YmNsYXNzLmZuLmNvbnN0cnVjdG9yID0galF1ZXJ5U3ViY2xhc3M7CgkJalF1ZXJ5U3ViY2xhc3Muc3ViY2xhc3MgPSB0aGlzLnN1YmNsYXNzOwoJCWpRdWVyeVN1YmNsYXNzLmZuLmluaXQgPSBmdW5jdGlvbiBpbml0KCBzZWxlY3RvciwgY29udGV4dCApIHsKCQkJaWYgKCBjb250ZXh0ICYmIGNvbnRleHQgaW5zdGFuY2VvZiBqUXVlcnkgJiYgIShjb250ZXh0IGluc3RhbmNlb2YgalF1ZXJ5U3ViY2xhc3MpICkgewoJCQkJY29udGV4dCA9IGpRdWVyeVN1YmNsYXNzKGNvbnRleHQpOwoJCQl9CgoJCQlyZXR1cm4galF1ZXJ5LmZuLmluaXQuY2FsbCggdGhpcywgc2VsZWN0b3IsIGNvbnRleHQsIHJvb3RqUXVlcnlTdWJjbGFzcyApOwoJCX07CgkJalF1ZXJ5U3ViY2xhc3MuZm4uaW5pdC5wcm90b3R5cGUgPSBqUXVlcnlTdWJjbGFzcy5mbjsKCQl2YXIgcm9vdGpRdWVyeVN1YmNsYXNzID0galF1ZXJ5U3ViY2xhc3MoZG9jdW1lbnQpOwoJCXJldHVybiBqUXVlcnlTdWJjbGFzczsKCX0sCgoJYnJvd3Nlcjoge30KfSk7CgovLyBDcmVhdGUgcmVhZHlMaXN0IGRlZmVycmVkCnJlYWR5TGlzdCA9IGpRdWVyeS5fRGVmZXJyZWQoKTsKCi8vIFBvcHVsYXRlIHRoZSBjbGFzczJ0eXBlIG1hcApqUXVlcnkuZWFjaCgiQm9vbGVhbiBOdW1iZXIgU3RyaW5nIEZ1bmN0aW9uIEFycmF5IERhdGUgUmVnRXhwIE9iamVjdCIuc3BsaXQoIiAiKSwgZnVuY3Rpb24oaSwgbmFtZSkgewoJY2xhc3MydHlwZVsgIltvYmplY3QgIiArIG5hbWUgKyAiXSIgXSA9IG5hbWUudG9Mb3dlckNhc2UoKTsKfSk7Cgpicm93c2VyTWF0Y2ggPSBqUXVlcnkudWFNYXRjaCggdXNlckFnZW50ICk7CmlmICggYnJvd3Nlck1hdGNoLmJyb3dzZXIgKSB7CglqUXVlcnkuYnJvd3NlclsgYnJvd3Nlck1hdGNoLmJyb3dzZXIgXSA9IHRydWU7CglqUXVlcnkuYnJvd3Nlci52ZXJzaW9uID0gYnJvd3Nlck1hdGNoLnZlcnNpb247Cn0KCi8vIERlcHJlY2F0ZWQsIHVzZSBqUXVlcnkuYnJvd3Nlci53ZWJraXQgaW5zdGVhZAppZiAoIGpRdWVyeS5icm93c2VyLndlYmtpdCApIHsKCWpRdWVyeS5icm93c2VyLnNhZmFyaSA9IHRydWU7Cn0KCmlmICggaW5kZXhPZiApIHsKCWpRdWVyeS5pbkFycmF5ID0gZnVuY3Rpb24oIGVsZW0sIGFycmF5ICkgewoJCXJldHVybiBpbmRleE9mLmNhbGwoIGFycmF5LCBlbGVtICk7Cgl9Owp9CgovLyBJRSBkb2Vzbid0IG1hdGNoIG5vbi1icmVha2luZyBzcGFjZXMgd2l0aCBccwppZiAoIHJub3R3aGl0ZS50ZXN0KCAiXHhBMCIgKSApIHsKCXRyaW1MZWZ0ID0gL15bXHNceEEwXSsvOwoJdHJpbVJpZ2h0ID0gL1tcc1x4QTBdKyQvOwp9CgovLyBBbGwgalF1ZXJ5IG9iamVjdHMgc2hvdWxkIHBvaW50IGJhY2sgdG8gdGhlc2UKcm9vdGpRdWVyeSA9IGpRdWVyeShkb2N1bWVudCk7CgovLyBDbGVhbnVwIGZ1bmN0aW9ucyBmb3IgdGhlIGRvY3VtZW50IHJlYWR5IG1ldGhvZAppZiAoIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIgKSB7CglET01Db250ZW50TG9hZGVkID0gZnVuY3Rpb24oKSB7CgkJZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lciggIkRPTUNvbnRlbnRMb2FkZWQiLCBET01Db250ZW50TG9hZGVkLCBmYWxzZSApOwoJCWpRdWVyeS5yZWFkeSgpOwoJfTsKCn0gZWxzZSBpZiAoIGRvY3VtZW50LmF0dGFjaEV2ZW50ICkgewoJRE9NQ29udGVudExvYWRlZCA9IGZ1bmN0aW9uKCkgewoJCS8vIE1ha2Ugc3VyZSBib2R5IGV4aXN0cywgYXQgbGVhc3QsIGluIGNhc2UgSUUgZ2V0cyBhIGxpdHRsZSBvdmVyemVhbG91cyAodGlja2V0ICM1NDQzKS4KCQlpZiAoIGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICJjb21wbGV0ZSIgKSB7CgkJCWRvY3VtZW50LmRldGFjaEV2ZW50KCAib25yZWFkeXN0YXRlY2hhbmdlIiwgRE9NQ29udGVudExvYWRlZCApOwoJCQlqUXVlcnkucmVhZHkoKTsKCQl9Cgl9Owp9CgovLyBUaGUgRE9NIHJlYWR5IGNoZWNrIGZvciBJbnRlcm5ldCBFeHBsb3JlcgpmdW5jdGlvbiBkb1Njcm9sbENoZWNrKCkgewoJaWYgKCBqUXVlcnkuaXNSZWFkeSApIHsKCQlyZXR1cm47Cgl9CgoJdHJ5IHsKCQkvLyBJZiBJRSBpcyB1c2VkLCB1c2UgdGhlIHRyaWNrIGJ5IERpZWdvIFBlcmluaQoJCS8vIGh0dHA6Ly9qYXZhc2NyaXB0Lm53Ym94LmNvbS9JRUNvbnRlbnRMb2FkZWQvCgkJZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsKCJsZWZ0Iik7Cgl9IGNhdGNoKGUpIHsKCQlzZXRUaW1lb3V0KCBkb1Njcm9sbENoZWNrLCAxICk7CgkJcmV0dXJuOwoJfQoKCS8vIGFuZCBleGVjdXRlIGFueSB3YWl0aW5nIGZ1bmN0aW9ucwoJalF1ZXJ5LnJlYWR5KCk7Cn0KCi8vIEV4cG9zZSBqUXVlcnkgdG8gdGhlIGdsb2JhbCBvYmplY3QKcmV0dXJuIGpRdWVyeTsKCn0pKCk7CgoKKGZ1bmN0aW9uKCkgewoKCWpRdWVyeS5zdXBwb3J0ID0ge307CgoJdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwoKCWRpdi5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwoJZGl2LmlubmVySFRNTCA9ICIgICA8bGluay8+PHRhYmxlPjwvdGFibGU+PGEgaHJlZj0nL2EnIHN0eWxlPSdjb2xvcjpyZWQ7ZmxvYXQ6bGVmdDtvcGFjaXR5Oi41NTsnPmE8L2E+PGlucHV0IHR5cGU9J2NoZWNrYm94Jy8+IjsKCgl2YXIgYWxsID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIiksCgkJYSA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYSIpWzBdLAoJCXNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpLAoJCW9wdCA9IHNlbGVjdC5hcHBlbmRDaGlsZCggZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib3B0aW9uIikgKSwKCQlpbnB1dCA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXTsKCgkvLyBDYW4ndCBnZXQgYmFzaWMgdGVzdCBzdXBwb3J0CglpZiAoICFhbGwgfHwgIWFsbC5sZW5ndGggfHwgIWEgKSB7CgkJcmV0dXJuOwoJfQoKCWpRdWVyeS5zdXBwb3J0ID0gewoJCS8vIElFIHN0cmlwcyBsZWFkaW5nIHdoaXRlc3BhY2Ugd2hlbiAuaW5uZXJIVE1MIGlzIHVzZWQKCQlsZWFkaW5nV2hpdGVzcGFjZTogZGl2LmZpcnN0Q2hpbGQubm9kZVR5cGUgPT09IDMsCgoJCS8vIE1ha2Ugc3VyZSB0aGF0IHRib2R5IGVsZW1lbnRzIGFyZW4ndCBhdXRvbWF0aWNhbGx5IGluc2VydGVkCgkJLy8gSUUgd2lsbCBpbnNlcnQgdGhlbSBpbnRvIGVtcHR5IHRhYmxlcwoJCXRib2R5OiAhZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpLmxlbmd0aCwKCgkJLy8gTWFrZSBzdXJlIHRoYXQgbGluayBlbGVtZW50cyBnZXQgc2VyaWFsaXplZCBjb3JyZWN0bHkgYnkgaW5uZXJIVE1MCgkJLy8gVGhpcyByZXF1aXJlcyBhIHdyYXBwZXIgZWxlbWVudCBpbiBJRQoJCWh0bWxTZXJpYWxpemU6ICEhZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsaW5rIikubGVuZ3RoLAoKCQkvLyBHZXQgdGhlIHN0eWxlIGluZm9ybWF0aW9uIGZyb20gZ2V0QXR0cmlidXRlCgkJLy8gKElFIHVzZXMgLmNzc1RleHQgaW5zdGVkKQoJCXN0eWxlOiAvcmVkLy50ZXN0KCBhLmdldEF0dHJpYnV0ZSgic3R5bGUiKSApLAoKCQkvLyBNYWtlIHN1cmUgdGhhdCBVUkxzIGFyZW4ndCBtYW5pcHVsYXRlZAoJCS8vIChJRSBub3JtYWxpemVzIGl0IGJ5IGRlZmF1bHQpCgkJaHJlZk5vcm1hbGl6ZWQ6IGEuZ2V0QXR0cmlidXRlKCJocmVmIikgPT09ICIvYSIsCgoJCS8vIE1ha2Ugc3VyZSB0aGF0IGVsZW1lbnQgb3BhY2l0eSBleGlzdHMKCQkvLyAoSUUgdXNlcyBmaWx0ZXIgaW5zdGVhZCkKCQkvLyBVc2UgYSByZWdleCB0byB3b3JrIGFyb3VuZCBhIFdlYktpdCBpc3N1ZS4gU2VlICM1MTQ1CgkJb3BhY2l0eTogL14wLjU1JC8udGVzdCggYS5zdHlsZS5vcGFjaXR5ICksCgoJCS8vIFZlcmlmeSBzdHlsZSBmbG9hdCBleGlzdGVuY2UKCQkvLyAoSUUgdXNlcyBzdHlsZUZsb2F0IGluc3RlYWQgb2YgY3NzRmxvYXQpCgkJY3NzRmxvYXQ6ICEhYS5zdHlsZS5jc3NGbG9hdCwKCgkJLy8gTWFrZSBzdXJlIHRoYXQgaWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkIGZvciBhIGNoZWNrYm94CgkJLy8gdGhhdCBpdCBkZWZhdWx0cyB0byAib24iLgoJCS8vIChXZWJLaXQgZGVmYXVsdHMgdG8gIiIgaW5zdGVhZCkKCQljaGVja09uOiBpbnB1dC52YWx1ZSA9PT0gIm9uIiwKCgkJLy8gTWFrZSBzdXJlIHRoYXQgYSBzZWxlY3RlZC1ieS1kZWZhdWx0IG9wdGlvbiBoYXMgYSB3b3JraW5nIHNlbGVjdGVkIHByb3BlcnR5LgoJCS8vIChXZWJLaXQgZGVmYXVsdHMgdG8gZmFsc2UgaW5zdGVhZCBvZiB0cnVlLCBJRSB0b28sIGlmIGl0J3MgaW4gYW4gb3B0Z3JvdXApCgkJb3B0U2VsZWN0ZWQ6IG9wdC5zZWxlY3RlZCwKCgkJLy8gV2lsbCBiZSBkZWZpbmVkIGxhdGVyCgkJZGVsZXRlRXhwYW5kbzogdHJ1ZSwKCQlvcHREaXNhYmxlZDogZmFsc2UsCgkJY2hlY2tDbG9uZTogZmFsc2UsCgkJbm9DbG9uZUV2ZW50OiB0cnVlLAoJCW5vQ2xvbmVDaGVja2VkOiB0cnVlLAoJCWJveE1vZGVsOiBudWxsLAoJCWlubGluZUJsb2NrTmVlZHNMYXlvdXQ6IGZhbHNlLAoJCXNocmlua1dyYXBCbG9ja3M6IGZhbHNlLAoJCXJlbGlhYmxlSGlkZGVuT2Zmc2V0czogdHJ1ZQoJfTsKCglpbnB1dC5jaGVja2VkID0gdHJ1ZTsKCWpRdWVyeS5zdXBwb3J0Lm5vQ2xvbmVDaGVja2VkID0gaW5wdXQuY2xvbmVOb2RlKCB0cnVlICkuY2hlY2tlZDsKCgkvLyBNYWtlIHN1cmUgdGhhdCB0aGUgb3B0aW9ucyBpbnNpZGUgZGlzYWJsZWQgc2VsZWN0cyBhcmVuJ3QgbWFya2VkIGFzIGRpc2FibGVkCgkvLyAoV2ViS2l0IG1hcmtzIHRoZW0gYXMgZGlhYmxlZCkKCXNlbGVjdC5kaXNhYmxlZCA9IHRydWU7CglqUXVlcnkuc3VwcG9ydC5vcHREaXNhYmxlZCA9ICFvcHQuZGlzYWJsZWQ7CgoJdmFyIF9zY3JpcHRFdmFsID0gbnVsbDsKCWpRdWVyeS5zdXBwb3J0LnNjcmlwdEV2YWwgPSBmdW5jdGlvbigpIHsKCQlpZiAoIF9zY3JpcHRFdmFsID09PSBudWxsICkgewoJCQl2YXIgcm9vdCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwKCQkJCXNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpLAoJCQkJaWQgPSAic2NyaXB0IiArIGpRdWVyeS5ub3coKTsKCgkJCXRyeSB7CgkJCQlzY3JpcHQuYXBwZW5kQ2hpbGQoIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCAid2luZG93LiIgKyBpZCArICI9MTsiICkgKTsKCQkJfSBjYXRjaChlKSB7fQoKCQkJcm9vdC5pbnNlcnRCZWZvcmUoIHNjcmlwdCwgcm9vdC5maXJzdENoaWxkICk7CgoJCQkvLyBNYWtlIHN1cmUgdGhhdCB0aGUgZXhlY3V0aW9uIG9mIGNvZGUgd29ya3MgYnkgaW5qZWN0aW5nIGEgc2NyaXB0CgkJCS8vIHRhZyB3aXRoIGFwcGVuZENoaWxkL2NyZWF0ZVRleHROb2RlCgkJCS8vIChJRSBkb2Vzbid0IHN1cHBvcnQgdGhpcywgZmFpbHMsIGFuZCB1c2VzIC50ZXh0IGluc3RlYWQpCgkJCWlmICggd2luZG93WyBpZCBdICkgewoJCQkJX3NjcmlwdEV2YWwgPSB0cnVlOwoJCQkJZGVsZXRlIHdpbmRvd1sgaWQgXTsKCQkJfSBlbHNlIHsKCQkJCV9zY3JpcHRFdmFsID0gZmFsc2U7CgkJCX0KCgkJCXJvb3QucmVtb3ZlQ2hpbGQoIHNjcmlwdCApOwoJCQkvLyByZWxlYXNlIG1lbW9yeSBpbiBJRQoJCQlyb290ID0gc2NyaXB0ID0gaWQgID0gbnVsbDsKCQl9CgoJCXJldHVybiBfc2NyaXB0RXZhbDsKCX07CgoJLy8gVGVzdCB0byBzZWUgaWYgaXQncyBwb3NzaWJsZSB0byBkZWxldGUgYW4gZXhwYW5kbyBmcm9tIGFuIGVsZW1lbnQKCS8vIEZhaWxzIGluIEludGVybmV0IEV4cGxvcmVyCgl0cnkgewoJCWRlbGV0ZSBkaXYudGVzdDsKCgl9IGNhdGNoKGUpIHsKCQlqUXVlcnkuc3VwcG9ydC5kZWxldGVFeHBhbmRvID0gZmFsc2U7Cgl9CgoJaWYgKCAhZGl2LmFkZEV2ZW50TGlzdGVuZXIgJiYgZGl2LmF0dGFjaEV2ZW50ICYmIGRpdi5maXJlRXZlbnQgKSB7CgkJZGl2LmF0dGFjaEV2ZW50KCJvbmNsaWNrIiwgZnVuY3Rpb24gY2xpY2soKSB7CgkJCS8vIENsb25pbmcgYSBub2RlIHNob3VsZG4ndCBjb3B5IG92ZXIgYW55CgkJCS8vIGJvdW5kIGV2ZW50IGhhbmRsZXJzIChJRSBkb2VzIHRoaXMpCgkJCWpRdWVyeS5zdXBwb3J0Lm5vQ2xvbmVFdmVudCA9IGZhbHNlOwoJCQlkaXYuZGV0YWNoRXZlbnQoIm9uY2xpY2siLCBjbGljayk7CgkJfSk7CgkJZGl2LmNsb25lTm9kZSh0cnVlKS5maXJlRXZlbnQoIm9uY2xpY2siKTsKCX0KCglkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKCWRpdi5pbm5lckhUTUwgPSAiPGlucHV0IHR5cGU9J3JhZGlvJyBuYW1lPSdyYWRpb3Rlc3QnIGNoZWNrZWQ9J2NoZWNrZWQnLz4iOwoKCXZhciBmcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKCWZyYWdtZW50LmFwcGVuZENoaWxkKCBkaXYuZmlyc3RDaGlsZCApOwoKCS8vIFdlYktpdCBkb2Vzbid0IGNsb25lIGNoZWNrZWQgc3RhdGUgY29ycmVjdGx5IGluIGZyYWdtZW50cwoJalF1ZXJ5LnN1cHBvcnQuY2hlY2tDbG9uZSA9IGZyYWdtZW50LmNsb25lTm9kZSh0cnVlKS5jbG9uZU5vZGUodHJ1ZSkubGFzdENoaWxkLmNoZWNrZWQ7CgoJLy8gRmlndXJlIG91dCBpZiB0aGUgVzNDIGJveCBtb2RlbCB3b3JrcyBhcyBleHBlY3RlZAoJLy8gZG9jdW1lbnQuYm9keSBtdXN0IGV4aXN0IGJlZm9yZSB3ZSBjYW4gZG8gdGhpcwoJalF1ZXJ5KGZ1bmN0aW9uKCkgewoJCXZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSwKCQkJYm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF07CgoJCS8vIEZyYW1lc2V0IGRvY3VtZW50cyB3aXRoIG5vIGJvZHkgc2hvdWxkIG5vdCBydW4gdGhpcyBjb2RlCgkJaWYgKCAhYm9keSApIHsKCQkJcmV0dXJuOwoJCX0KCgkJZGl2LnN0eWxlLndpZHRoID0gZGl2LnN0eWxlLnBhZGRpbmdMZWZ0ID0gIjFweCI7CgkJYm9keS5hcHBlbmRDaGlsZCggZGl2ICk7CgkJalF1ZXJ5LmJveE1vZGVsID0galF1ZXJ5LnN1cHBvcnQuYm94TW9kZWwgPSBkaXYub2Zmc2V0V2lkdGggPT09IDI7CgoJCWlmICggInpvb20iIGluIGRpdi5zdHlsZSApIHsKCQkJLy8gQ2hlY2sgaWYgbmF0aXZlbHkgYmxvY2stbGV2ZWwgZWxlbWVudHMgYWN0IGxpa2UgaW5saW5lLWJsb2NrCgkJCS8vIGVsZW1lbnRzIHdoZW4gc2V0dGluZyB0aGVpciBkaXNwbGF5IHRvICdpbmxpbmUnIGFuZCBnaXZpbmcKCQkJLy8gdGhlbSBsYXlvdXQKCQkJLy8gKElFIDwgOCBkb2VzIHRoaXMpCgkJCWRpdi5zdHlsZS5kaXNwbGF5ID0gImlubGluZSI7CgkJCWRpdi5zdHlsZS56b29tID0gMTsKCQkJalF1ZXJ5LnN1cHBvcnQuaW5saW5lQmxvY2tOZWVkc0xheW91dCA9IGRpdi5vZmZzZXRXaWR0aCA9PT0gMjsKCgkJCS8vIENoZWNrIGlmIGVsZW1lbnRzIHdpdGggbGF5b3V0IHNocmluay13cmFwIHRoZWlyIGNoaWxkcmVuCgkJCS8vIChJRSA2IGRvZXMgdGhpcykKCQkJZGl2LnN0eWxlLmRpc3BsYXkgPSAiIjsKCQkJZGl2LmlubmVySFRNTCA9ICI8ZGl2IHN0eWxlPSd3aWR0aDo0cHg7Jz48L2Rpdj4iOwoJCQlqUXVlcnkuc3VwcG9ydC5zaHJpbmtXcmFwQmxvY2tzID0gZGl2Lm9mZnNldFdpZHRoICE9PSAyOwoJCX0KCgkJZGl2LmlubmVySFRNTCA9ICI8dGFibGU+PHRyPjx0ZCBzdHlsZT0ncGFkZGluZzowO2JvcmRlcjowO2Rpc3BsYXk6bm9uZSc+PC90ZD48dGQ+dDwvdGQ+PC90cj48L3RhYmxlPiI7CgkJdmFyIHRkcyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGQiKTsKCgkJLy8gQ2hlY2sgaWYgdGFibGUgY2VsbHMgc3RpbGwgaGF2ZSBvZmZzZXRXaWR0aC9IZWlnaHQgd2hlbiB0aGV5IGFyZSBzZXQKCQkvLyB0byBkaXNwbGF5Om5vbmUgYW5kIHRoZXJlIGFyZSBzdGlsbCBvdGhlciB2aXNpYmxlIHRhYmxlIGNlbGxzIGluIGEKCQkvLyB0YWJsZSByb3c7IGlmIHNvLCBvZmZzZXRXaWR0aC9IZWlnaHQgYXJlIG5vdCByZWxpYWJsZSBmb3IgdXNlIHdoZW4KCQkvLyBkZXRlcm1pbmluZyBpZiBhbiBlbGVtZW50IGhhcyBiZWVuIGhpZGRlbiBkaXJlY3RseSB1c2luZwoJCS8vIGRpc3BsYXk6bm9uZSAoaXQgaXMgc3RpbGwgc2FmZSB0byB1c2Ugb2Zmc2V0cyBpZiBhIHBhcmVudCBlbGVtZW50IGlzCgkJLy8gaGlkZGVuOyBkb24gc2FmZXR5IGdvZ2dsZXMgYW5kIHNlZSBidWcgIzQ1MTIgZm9yIG1vcmUgaW5mb3JtYXRpb24pLgoJCS8vIChvbmx5IElFIDggZmFpbHMgdGhpcyB0ZXN0KQoJCWpRdWVyeS5zdXBwb3J0LnJlbGlhYmxlSGlkZGVuT2Zmc2V0cyA9IHRkc1swXS5vZmZzZXRIZWlnaHQgPT09IDA7CgoJCXRkc1swXS5zdHlsZS5kaXNwbGF5ID0gIiI7CgkJdGRzWzFdLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CgoJCS8vIENoZWNrIGlmIGVtcHR5IHRhYmxlIGNlbGxzIHN0aWxsIGhhdmUgb2Zmc2V0V2lkdGgvSGVpZ2h0CgkJLy8gKElFIDwgOCBmYWlsIHRoaXMgdGVzdCkKCQlqUXVlcnkuc3VwcG9ydC5yZWxpYWJsZUhpZGRlbk9mZnNldHMgPSBqUXVlcnkuc3VwcG9ydC5yZWxpYWJsZUhpZGRlbk9mZnNldHMgJiYgdGRzWzBdLm9mZnNldEhlaWdodCA9PT0gMDsKCQlkaXYuaW5uZXJIVE1MID0gIiI7CgoJCWJvZHkucmVtb3ZlQ2hpbGQoIGRpdiApLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CgkJZGl2ID0gdGRzID0gbnVsbDsKCX0pOwoKCS8vIFRlY2huaXF1ZSBmcm9tIEp1cml5IFpheXRzZXYKCS8vIGh0dHA6Ly90aGlua3dlYjIuY29tL3Byb2plY3RzL3Byb3RvdHlwZS9kZXRlY3RpbmctZXZlbnQtc3VwcG9ydC13aXRob3V0LWJyb3dzZXItc25pZmZpbmcvCgl2YXIgZXZlbnRTdXBwb3J0ZWQgPSBmdW5jdGlvbiggZXZlbnROYW1lICkgewoJCXZhciBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwoJCWV2ZW50TmFtZSA9ICJvbiIgKyBldmVudE5hbWU7CgoJCS8vIFdlIG9ubHkgY2FyZSBhYm91dCB0aGUgY2FzZSB3aGVyZSBub24tc3RhbmRhcmQgZXZlbnQgc3lzdGVtcwoJCS8vIGFyZSB1c2VkLCBuYW1lbHkgaW4gSUUuIFNob3J0LWNpcmN1aXRpbmcgaGVyZSBoZWxwcyB1cyB0bwoJCS8vIGF2b2lkIGFuIGV2YWwgY2FsbCAoaW4gc2V0QXR0cmlidXRlKSB3aGljaCBjYW4gY2F1c2UgQ1NQCgkJLy8gdG8gZ28gaGF5d2lyZS4gU2VlOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi9TZWN1cml0eS9DU1AKCQlpZiAoICFlbC5hdHRhY2hFdmVudCApIHsKCQkJcmV0dXJuIHRydWU7CgkJfQoKCQl2YXIgaXNTdXBwb3J0ZWQgPSAoZXZlbnROYW1lIGluIGVsKTsKCQlpZiAoICFpc1N1cHBvcnRlZCApIHsKCQkJZWwuc2V0QXR0cmlidXRlKGV2ZW50TmFtZSwgInJldHVybjsiKTsKCQkJaXNTdXBwb3J0ZWQgPSB0eXBlb2YgZWxbZXZlbnROYW1lXSA9PT0gImZ1bmN0aW9uIjsKCQl9CgkJZWwgPSBudWxsOwoKCQlyZXR1cm4gaXNTdXBwb3J0ZWQ7Cgl9OwoKCWpRdWVyeS5zdXBwb3J0LnN1Ym1pdEJ1YmJsZXMgPSBldmVudFN1cHBvcnRlZCgic3VibWl0Iik7CglqUXVlcnkuc3VwcG9ydC5jaGFuZ2VCdWJibGVzID0gZXZlbnRTdXBwb3J0ZWQoImNoYW5nZSIpOwoKCS8vIHJlbGVhc2UgbWVtb3J5IGluIElFCglkaXYgPSBhbGwgPSBhID0gbnVsbDsKfSkoKTsKCgoKdmFyIHJicmFjZSA9IC9eKD86XHsuKlx9fFxbLipcXSkkLzsKCmpRdWVyeS5leHRlbmQoewoJY2FjaGU6IHt9LAoKCS8vIFBsZWFzZSB1c2Ugd2l0aCBjYXV0aW9uCgl1dWlkOiAwLAoKCS8vIFVuaXF1ZSBmb3IgZWFjaCBjb3B5IG9mIGpRdWVyeSBvbiB0aGUgcGFnZQoJLy8gTm9uLWRpZ2l0cyByZW1vdmVkIHRvIG1hdGNoIHJpbmxpbmVqUXVlcnkKCWV4cGFuZG86ICJqUXVlcnkiICsgKCBqUXVlcnkuZm4uanF1ZXJ5ICsgTWF0aC5yYW5kb20oKSApLnJlcGxhY2UoIC9cRC9nLCAiIiApLAoKCS8vIFRoZSBmb2xsb3dpbmcgZWxlbWVudHMgdGhyb3cgdW5jYXRjaGFibGUgZXhjZXB0aW9ucyBpZiB5b3UKCS8vIGF0dGVtcHQgdG8gYWRkIGV4cGFuZG8gcHJvcGVydGllcyB0byB0aGVtLgoJbm9EYXRhOiB7CgkJImVtYmVkIjogdHJ1ZSwKCQkvLyBCYW4gYWxsIG9iamVjdHMgZXhjZXB0IGZvciBGbGFzaCAod2hpY2ggaGFuZGxlIGV4cGFuZG9zKQoJCSJvYmplY3QiOiAiY2xzaWQ6RDI3Q0RCNkUtQUU2RC0xMWNmLTk2QjgtNDQ0NTUzNTQwMDAwIiwKCQkiYXBwbGV0IjogdHJ1ZQoJfSwKCgloYXNEYXRhOiBmdW5jdGlvbiggZWxlbSApIHsKCQllbGVtID0gZWxlbS5ub2RlVHlwZSA/IGpRdWVyeS5jYWNoZVsgZWxlbVtqUXVlcnkuZXhwYW5kb10gXSA6IGVsZW1bIGpRdWVyeS5leHBhbmRvIF07CgoJCXJldHVybiAhIWVsZW0gJiYgIWlzRW1wdHlEYXRhT2JqZWN0KCBlbGVtICk7Cgl9LAoKCWRhdGE6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCBkYXRhLCBwdnQgLyogSW50ZXJuYWwgVXNlIE9ubHkgKi8gKSB7CgkJaWYgKCAhalF1ZXJ5LmFjY2VwdERhdGEoIGVsZW0gKSApIHsKCQkJcmV0dXJuOwoJCX0KCgkJdmFyIGludGVybmFsS2V5ID0galF1ZXJ5LmV4cGFuZG8sIGdldEJ5TmFtZSA9IHR5cGVvZiBuYW1lID09PSAic3RyaW5nIiwgdGhpc0NhY2hlLAoKCQkJLy8gV2UgaGF2ZSB0byBoYW5kbGUgRE9NIG5vZGVzIGFuZCBKUyBvYmplY3RzIGRpZmZlcmVudGx5IGJlY2F1c2UgSUU2LTcKCQkJLy8gY2FuJ3QgR0Mgb2JqZWN0IHJlZmVyZW5jZXMgcHJvcGVybHkgYWNyb3NzIHRoZSBET00tSlMgYm91bmRhcnkKCQkJaXNOb2RlID0gZWxlbS5ub2RlVHlwZSwKCgkJCS8vIE9ubHkgRE9NIG5vZGVzIG5lZWQgdGhlIGdsb2JhbCBqUXVlcnkgY2FjaGU7IEpTIG9iamVjdCBkYXRhIGlzCgkJCS8vIGF0dGFjaGVkIGRpcmVjdGx5IHRvIHRoZSBvYmplY3Qgc28gR0MgY2FuIG9jY3VyIGF1dG9tYXRpY2FsbHkKCQkJY2FjaGUgPSBpc05vZGUgPyBqUXVlcnkuY2FjaGUgOiBlbGVtLAoKCQkJLy8gT25seSBkZWZpbmluZyBhbiBJRCBmb3IgSlMgb2JqZWN0cyBpZiBpdHMgY2FjaGUgYWxyZWFkeSBleGlzdHMgYWxsb3dzCgkJCS8vIHRoZSBjb2RlIHRvIHNob3J0Y3V0IG9uIHRoZSBzYW1lIHBhdGggYXMgYSBET00gbm9kZSB3aXRoIG5vIGNhY2hlCgkJCWlkID0gaXNOb2RlID8gZWxlbVsgalF1ZXJ5LmV4cGFuZG8gXSA6IGVsZW1bIGpRdWVyeS5leHBhbmRvIF0gJiYgalF1ZXJ5LmV4cGFuZG87CgoJCS8vIEF2b2lkIGRvaW5nIGFueSBtb3JlIHdvcmsgdGhhbiB3ZSBuZWVkIHRvIHdoZW4gdHJ5aW5nIHRvIGdldCBkYXRhIG9uIGFuCgkJLy8gb2JqZWN0IHRoYXQgaGFzIG5vIGRhdGEgYXQgYWxsCgkJaWYgKCAoIWlkIHx8IChwdnQgJiYgaWQgJiYgIWNhY2hlWyBpZCBdWyBpbnRlcm5hbEtleSBdKSkgJiYgZ2V0QnlOYW1lICYmIGRhdGEgPT09IHVuZGVmaW5lZCApIHsKCQkJcmV0dXJuOwoJCX0KCgkJaWYgKCAhaWQgKSB7CgkJCS8vIE9ubHkgRE9NIG5vZGVzIG5lZWQgYSBuZXcgdW5pcXVlIElEIGZvciBlYWNoIGVsZW1lbnQgc2luY2UgdGhlaXIgZGF0YQoJCQkvLyBlbmRzIHVwIGluIHRoZSBnbG9iYWwgY2FjaGUKCQkJaWYgKCBpc05vZGUgKSB7CgkJCQllbGVtWyBqUXVlcnkuZXhwYW5kbyBdID0gaWQgPSArK2pRdWVyeS51dWlkOwoJCQl9IGVsc2UgewoJCQkJaWQgPSBqUXVlcnkuZXhwYW5kbzsKCQkJfQoJCX0KCgkJaWYgKCAhY2FjaGVbIGlkIF0gKSB7CgkJCWNhY2hlWyBpZCBdID0ge307CgoJCQkvLyBUT0RPOiBUaGlzIGlzIGEgaGFjayBmb3IgMS41IE9OTFkuIEF2b2lkcyBleHBvc2luZyBqUXVlcnkKCQkJLy8gbWV0YWRhdGEgb24gcGxhaW4gSlMgb2JqZWN0cyB3aGVuIHRoZSBvYmplY3QgaXMgc2VyaWFsaXplZCB1c2luZwoJCQkvLyBKU09OLnN0cmluZ2lmeQoJCQlpZiAoICFpc05vZGUgKSB7CgkJCQljYWNoZVsgaWQgXS50b0pTT04gPSBqUXVlcnkubm9vcDsKCQkJfQoJCX0KCgkJLy8gQW4gb2JqZWN0IGNhbiBiZSBwYXNzZWQgdG8galF1ZXJ5LmRhdGEgaW5zdGVhZCBvZiBhIGtleS92YWx1ZSBwYWlyOyB0aGlzIGdldHMKCQkvLyBzaGFsbG93IGNvcGllZCBvdmVyIG9udG8gdGhlIGV4aXN0aW5nIGNhY2hlCgkJaWYgKCB0eXBlb2YgbmFtZSA9PT0gIm9iamVjdCIgfHwgdHlwZW9mIG5hbWUgPT09ICJmdW5jdGlvbiIgKSB7CgkJCWlmICggcHZ0ICkgewoJCQkJY2FjaGVbIGlkIF1bIGludGVybmFsS2V5IF0gPSBqUXVlcnkuZXh0ZW5kKGNhY2hlWyBpZCBdWyBpbnRlcm5hbEtleSBdLCBuYW1lKTsKCQkJfSBlbHNlIHsKCQkJCWNhY2hlWyBpZCBdID0galF1ZXJ5LmV4dGVuZChjYWNoZVsgaWQgXSwgbmFtZSk7CgkJCX0KCQl9CgoJCXRoaXNDYWNoZSA9IGNhY2hlWyBpZCBdOwoKCQkvLyBJbnRlcm5hbCBqUXVlcnkgZGF0YSBpcyBzdG9yZWQgaW4gYSBzZXBhcmF0ZSBvYmplY3QgaW5zaWRlIHRoZSBvYmplY3QncyBkYXRhCgkJLy8gY2FjaGUgaW4gb3JkZXIgdG8gYXZvaWQga2V5IGNvbGxpc2lvbnMgYmV0d2VlbiBpbnRlcm5hbCBkYXRhIGFuZCB1c2VyLWRlZmluZWQKCQkvLyBkYXRhCgkJaWYgKCBwdnQgKSB7CgkJCWlmICggIXRoaXNDYWNoZVsgaW50ZXJuYWxLZXkgXSApIHsKCQkJCXRoaXNDYWNoZVsgaW50ZXJuYWxLZXkgXSA9IHt9OwoJCQl9CgoJCQl0aGlzQ2FjaGUgPSB0aGlzQ2FjaGVbIGludGVybmFsS2V5IF07CgkJfQoKCQlpZiAoIGRhdGEgIT09IHVuZGVmaW5lZCApIHsKCQkJdGhpc0NhY2hlWyBuYW1lIF0gPSBkYXRhOwoJCX0KCgkJLy8gVE9ETzogVGhpcyBpcyBhIGhhY2sgZm9yIDEuNSBPTkxZLiBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gMS42LiBVc2VycyBzaG91bGQKCQkvLyBub3QgYXR0ZW1wdCB0byBpbnNwZWN0IHRoZSBpbnRlcm5hbCBldmVudHMgb2JqZWN0IHVzaW5nIGpRdWVyeS5kYXRhLCBhcyB0aGlzCgkJLy8gaW50ZXJuYWwgZGF0YSBvYmplY3QgaXMgdW5kb2N1bWVudGVkIGFuZCBzdWJqZWN0IHRvIGNoYW5nZS4KCQlpZiAoIG5hbWUgPT09ICJldmVudHMiICYmICF0aGlzQ2FjaGVbbmFtZV0gKSB7CgkJCXJldHVybiB0aGlzQ2FjaGVbIGludGVybmFsS2V5IF0gJiYgdGhpc0NhY2hlWyBpbnRlcm5hbEtleSBdLmV2ZW50czsKCQl9CgoJCXJldHVybiBnZXRCeU5hbWUgPyB0aGlzQ2FjaGVbIG5hbWUgXSA6IHRoaXNDYWNoZTsKCX0sCgoJcmVtb3ZlRGF0YTogZnVuY3Rpb24oIGVsZW0sIG5hbWUsIHB2dCAvKiBJbnRlcm5hbCBVc2UgT25seSAqLyApIHsKCQlpZiAoICFqUXVlcnkuYWNjZXB0RGF0YSggZWxlbSApICkgewoJCQlyZXR1cm47CgkJfQoKCQl2YXIgaW50ZXJuYWxLZXkgPSBqUXVlcnkuZXhwYW5kbywgaXNOb2RlID0gZWxlbS5ub2RlVHlwZSwKCgkJCS8vIFNlZSBqUXVlcnkuZGF0YSBmb3IgbW9yZSBpbmZvcm1hdGlvbgoJCQljYWNoZSA9IGlzTm9kZSA/IGpRdWVyeS5jYWNoZSA6IGVsZW0sCgoJCQkvLyBTZWUgalF1ZXJ5LmRhdGEgZm9yIG1vcmUgaW5mb3JtYXRpb24KCQkJaWQgPSBpc05vZGUgPyBlbGVtWyBqUXVlcnkuZXhwYW5kbyBdIDogalF1ZXJ5LmV4cGFuZG87CgoJCS8vIElmIHRoZXJlIGlzIGFscmVhZHkgbm8gY2FjaGUgZW50cnkgZm9yIHRoaXMgb2JqZWN0LCB0aGVyZSBpcyBubwoJCS8vIHB1cnBvc2UgaW4gY29udGludWluZwoJCWlmICggIWNhY2hlWyBpZCBdICkgewoJCQlyZXR1cm47CgkJfQoKCQlpZiAoIG5hbWUgKSB7CgkJCXZhciB0aGlzQ2FjaGUgPSBwdnQgPyBjYWNoZVsgaWQgXVsgaW50ZXJuYWxLZXkgXSA6IGNhY2hlWyBpZCBdOwoKCQkJaWYgKCB0aGlzQ2FjaGUgKSB7CgkJCQlkZWxldGUgdGhpc0NhY2hlWyBuYW1lIF07CgoJCQkJLy8gSWYgdGhlcmUgaXMgbm8gZGF0YSBsZWZ0IGluIHRoZSBjYWNoZSwgd2Ugd2FudCB0byBjb250aW51ZQoJCQkJLy8gYW5kIGxldCB0aGUgY2FjaGUgb2JqZWN0IGl0c2VsZiBnZXQgZGVzdHJveWVkCgkJCQlpZiAoICFpc0VtcHR5RGF0YU9iamVjdCh0aGlzQ2FjaGUpICkgewoJCQkJCXJldHVybjsKCQkJCX0KCQkJfQoJCX0KCgkJLy8gU2VlIGpRdWVyeS5kYXRhIGZvciBtb3JlIGluZm9ybWF0aW9uCgkJaWYgKCBwdnQgKSB7CgkJCWRlbGV0ZSBjYWNoZVsgaWQgXVsgaW50ZXJuYWxLZXkgXTsKCgkJCS8vIERvbid0IGRlc3Ryb3kgdGhlIHBhcmVudCBjYWNoZSB1bmxlc3MgdGhlIGludGVybmFsIGRhdGEgb2JqZWN0CgkJCS8vIGhhZCBiZWVuIHRoZSBvbmx5IHRoaW5nIGxlZnQgaW4gaXQKCQkJaWYgKCAhaXNFbXB0eURhdGFPYmplY3QoY2FjaGVbIGlkIF0pICkgewoJCQkJcmV0dXJuOwoJCQl9CgkJfQoKCQl2YXIgaW50ZXJuYWxDYWNoZSA9IGNhY2hlWyBpZCBdWyBpbnRlcm5hbEtleSBdOwoKCQkvLyBCcm93c2VycyB0aGF0IGZhaWwgZXhwYW5kbyBkZWxldGlvbiBhbHNvIHJlZnVzZSB0byBkZWxldGUgZXhwYW5kb3Mgb24KCQkvLyB0aGUgd2luZG93LCBidXQgaXQgd2lsbCBhbGxvdyBpdCBvbiBhbGwgb3RoZXIgSlMgb2JqZWN0czsgb3RoZXIgYnJvd3NlcnMKCQkvLyBkb24ndCBjYXJlCgkJaWYgKCBqUXVlcnkuc3VwcG9ydC5kZWxldGVFeHBhbmRvIHx8IGNhY2hlICE9IHdpbmRvdyApIHsKCQkJZGVsZXRlIGNhY2hlWyBpZCBdOwoJCX0gZWxzZSB7CgkJCWNhY2hlWyBpZCBdID0gbnVsbDsKCQl9CgoJCS8vIFdlIGRlc3Ryb3llZCB0aGUgZW50aXJlIHVzZXIgY2FjaGUgYXQgb25jZSBiZWNhdXNlIGl0J3MgZmFzdGVyIHRoYW4KCQkvLyBpdGVyYXRpbmcgdGhyb3VnaCBlYWNoIGtleSwgYnV0IHdlIG5lZWQgdG8gY29udGludWUgdG8gcGVyc2lzdCBpbnRlcm5hbAoJCS8vIGRhdGEgaWYgaXQgZXhpc3RlZAoJCWlmICggaW50ZXJuYWxDYWNoZSApIHsKCQkJY2FjaGVbIGlkIF0gPSB7fTsKCQkJLy8gVE9ETzogVGhpcyBpcyBhIGhhY2sgZm9yIDEuNSBPTkxZLiBBdm9pZHMgZXhwb3NpbmcgalF1ZXJ5CgkJCS8vIG1ldGFkYXRhIG9uIHBsYWluIEpTIG9iamVjdHMgd2hlbiB0aGUgb2JqZWN0IGlzIHNlcmlhbGl6ZWQgdXNpbmcKCQkJLy8gSlNPTi5zdHJpbmdpZnkKCQkJaWYgKCAhaXNOb2RlICkgewoJCQkJY2FjaGVbIGlkIF0udG9KU09OID0galF1ZXJ5Lm5vb3A7CgkJCX0KCgkJCWNhY2hlWyBpZCBdWyBpbnRlcm5hbEtleSBdID0gaW50ZXJuYWxDYWNoZTsKCgkJLy8gT3RoZXJ3aXNlLCB3ZSBuZWVkIHRvIGVsaW1pbmF0ZSB0aGUgZXhwYW5kbyBvbiB0aGUgbm9kZSB0byBhdm9pZAoJCS8vIGZhbHNlIGxvb2t1cHMgaW4gdGhlIGNhY2hlIGZvciBlbnRyaWVzIHRoYXQgbm8gbG9uZ2VyIGV4aXN0CgkJfSBlbHNlIGlmICggaXNOb2RlICkgewoJCQkvLyBJRSBkb2VzIG5vdCBhbGxvdyB1cyB0byBkZWxldGUgZXhwYW5kbyBwcm9wZXJ0aWVzIGZyb20gbm9kZXMsCgkJCS8vIG5vciBkb2VzIGl0IGhhdmUgYSByZW1vdmVBdHRyaWJ1dGUgZnVuY3Rpb24gb24gRG9jdW1lbnQgbm9kZXM7CgkJCS8vIHdlIG11c3QgaGFuZGxlIGFsbCBvZiB0aGVzZSBjYXNlcwoJCQlpZiAoIGpRdWVyeS5zdXBwb3J0LmRlbGV0ZUV4cGFuZG8gKSB7CgkJCQlkZWxldGUgZWxlbVsgalF1ZXJ5LmV4cGFuZG8gXTsKCQkJfSBlbHNlIGlmICggZWxlbS5yZW1vdmVBdHRyaWJ1dGUgKSB7CgkJCQllbGVtLnJlbW92ZUF0dHJpYnV0ZSggalF1ZXJ5LmV4cGFuZG8gKTsKCQkJfSBlbHNlIHsKCQkJCWVsZW1bIGpRdWVyeS5leHBhbmRvIF0gPSBudWxsOwoJCQl9CgkJfQoJfSwKCgkvLyBGb3IgaW50ZXJuYWwgdXNlIG9ubHkuCglfZGF0YTogZnVuY3Rpb24oIGVsZW0sIG5hbWUsIGRhdGEgKSB7CgkJcmV0dXJuIGpRdWVyeS5kYXRhKCBlbGVtLCBuYW1lLCBkYXRhLCB0cnVlICk7Cgl9LAoKCS8vIEEgbWV0aG9kIGZvciBkZXRlcm1pbmluZyBpZiBhIERPTSBub2RlIGNhbiBoYW5kbGUgdGhlIGRhdGEgZXhwYW5kbwoJYWNjZXB0RGF0YTogZnVuY3Rpb24oIGVsZW0gKSB7CgkJaWYgKCBlbGVtLm5vZGVOYW1lICkgewoJCQl2YXIgbWF0Y2ggPSBqUXVlcnkubm9EYXRhWyBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgXTsKCgkJCWlmICggbWF0Y2ggKSB7CgkJCQlyZXR1cm4gIShtYXRjaCA9PT0gdHJ1ZSB8fCBlbGVtLmdldEF0dHJpYnV0ZSgiY2xhc3NpZCIpICE9PSBtYXRjaCk7CgkJCX0KCQl9CgoJCXJldHVybiB0cnVlOwoJfQp9KTsKCmpRdWVyeS5mbi5leHRlbmQoewoJZGF0YTogZnVuY3Rpb24oIGtleSwgdmFsdWUgKSB7CgkJdmFyIGRhdGEgPSBudWxsOwoKCQlpZiAoIHR5cGVvZiBrZXkgPT09ICJ1bmRlZmluZWQiICkgewoJCQlpZiAoIHRoaXMubGVuZ3RoICkgewoJCQkJZGF0YSA9IGpRdWVyeS5kYXRhKCB0aGlzWzBdICk7CgoJCQkJaWYgKCB0aGlzWzBdLm5vZGVUeXBlID09PSAxICkgewoJCQkJCXZhciBhdHRyID0gdGhpc1swXS5hdHRyaWJ1dGVzLCBuYW1lOwoJCQkJCWZvciAoIHZhciBpID0gMCwgbCA9IGF0dHIubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCQkJCQluYW1lID0gYXR0cltpXS5uYW1lOwoKCQkJCQkJaWYgKCBuYW1lLmluZGV4T2YoICJkYXRhLSIgKSA9PT0gMCApIHsKCQkJCQkJCW5hbWUgPSBuYW1lLnN1YnN0ciggNSApOwoJCQkJCQkJZGF0YUF0dHIoIHRoaXNbMF0sIG5hbWUsIGRhdGFbIG5hbWUgXSApOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9CgoJCQlyZXR1cm4gZGF0YTsKCgkJfSBlbHNlIGlmICggdHlwZW9mIGtleSA9PT0gIm9iamVjdCIgKSB7CgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCQlqUXVlcnkuZGF0YSggdGhpcywga2V5ICk7CgkJCX0pOwoJCX0KCgkJdmFyIHBhcnRzID0ga2V5LnNwbGl0KCIuIik7CgkJcGFydHNbMV0gPSBwYXJ0c1sxXSA/ICIuIiArIHBhcnRzWzFdIDogIiI7CgoJCWlmICggdmFsdWUgPT09IHVuZGVmaW5lZCApIHsKCQkJZGF0YSA9IHRoaXMudHJpZ2dlckhhbmRsZXIoImdldERhdGEiICsgcGFydHNbMV0gKyAiISIsIFtwYXJ0c1swXV0pOwoKCQkJLy8gVHJ5IHRvIGZldGNoIGFueSBpbnRlcm5hbGx5IHN0b3JlZCBkYXRhIGZpcnN0CgkJCWlmICggZGF0YSA9PT0gdW5kZWZpbmVkICYmIHRoaXMubGVuZ3RoICkgewoJCQkJZGF0YSA9IGpRdWVyeS5kYXRhKCB0aGlzWzBdLCBrZXkgKTsKCQkJCWRhdGEgPSBkYXRhQXR0ciggdGhpc1swXSwga2V5LCBkYXRhICk7CgkJCX0KCgkJCXJldHVybiBkYXRhID09PSB1bmRlZmluZWQgJiYgcGFydHNbMV0gPwoJCQkJdGhpcy5kYXRhKCBwYXJ0c1swXSApIDoKCQkJCWRhdGE7CgoJCX0gZWxzZSB7CgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCQl2YXIgJHRoaXMgPSBqUXVlcnkoIHRoaXMgKSwKCQkJCQlhcmdzID0gWyBwYXJ0c1swXSwgdmFsdWUgXTsKCgkJCQkkdGhpcy50cmlnZ2VySGFuZGxlciggInNldERhdGEiICsgcGFydHNbMV0gKyAiISIsIGFyZ3MgKTsKCQkJCWpRdWVyeS5kYXRhKCB0aGlzLCBrZXksIHZhbHVlICk7CgkJCQkkdGhpcy50cmlnZ2VySGFuZGxlciggImNoYW5nZURhdGEiICsgcGFydHNbMV0gKyAiISIsIGFyZ3MgKTsKCQkJfSk7CgkJfQoJfSwKCglyZW1vdmVEYXRhOiBmdW5jdGlvbigga2V5ICkgewoJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCWpRdWVyeS5yZW1vdmVEYXRhKCB0aGlzLCBrZXkgKTsKCQl9KTsKCX0KfSk7CgpmdW5jdGlvbiBkYXRhQXR0ciggZWxlbSwga2V5LCBkYXRhICkgewoJLy8gSWYgbm90aGluZyB3YXMgZm91bmQgaW50ZXJuYWxseSwgdHJ5IHRvIGZldGNoIGFueQoJLy8gZGF0YSBmcm9tIHRoZSBIVE1MNSBkYXRhLSogYXR0cmlidXRlCglpZiAoIGRhdGEgPT09IHVuZGVmaW5lZCAmJiBlbGVtLm5vZGVUeXBlID09PSAxICkgewoJCWRhdGEgPSBlbGVtLmdldEF0dHJpYnV0ZSggImRhdGEtIiArIGtleSApOwoKCQlpZiAoIHR5cGVvZiBkYXRhID09PSAic3RyaW5nIiApIHsKCQkJdHJ5IHsKCQkJCWRhdGEgPSBkYXRhID09PSAidHJ1ZSIgPyB0cnVlIDoKCQkJCWRhdGEgPT09ICJmYWxzZSIgPyBmYWxzZSA6CgkJCQlkYXRhID09PSAibnVsbCIgPyBudWxsIDoKCQkJCSFqUXVlcnkuaXNOYU4oIGRhdGEgKSA/IHBhcnNlRmxvYXQoIGRhdGEgKSA6CgkJCQkJcmJyYWNlLnRlc3QoIGRhdGEgKSA/IGpRdWVyeS5wYXJzZUpTT04oIGRhdGEgKSA6CgkJCQkJZGF0YTsKCQkJfSBjYXRjaCggZSApIHt9CgoJCQkvLyBNYWtlIHN1cmUgd2Ugc2V0IHRoZSBkYXRhIHNvIGl0IGlzbid0IGNoYW5nZWQgbGF0ZXIKCQkJalF1ZXJ5LmRhdGEoIGVsZW0sIGtleSwgZGF0YSApOwoKCQl9IGVsc2UgewoJCQlkYXRhID0gdW5kZWZpbmVkOwoJCX0KCX0KCglyZXR1cm4gZGF0YTsKfQoKLy8gVE9ETzogVGhpcyBpcyBhIGhhY2sgZm9yIDEuNSBPTkxZIHRvIGFsbG93IG9iamVjdHMgd2l0aCBhIHNpbmdsZSB0b0pTT04KLy8gcHJvcGVydHkgdG8gYmUgY29uc2lkZXJlZCBlbXB0eSBvYmplY3RzOyB0aGlzIHByb3BlcnR5IGFsd2F5cyBleGlzdHMgaW4KLy8gb3JkZXIgdG8gbWFrZSBzdXJlIEpTT04uc3RyaW5naWZ5IGRvZXMgbm90IGV4cG9zZSBpbnRlcm5hbCBtZXRhZGF0YQpmdW5jdGlvbiBpc0VtcHR5RGF0YU9iamVjdCggb2JqICkgewoJZm9yICggdmFyIG5hbWUgaW4gb2JqICkgewoJCWlmICggbmFtZSAhPT0gInRvSlNPTiIgKSB7CgkJCXJldHVybiBmYWxzZTsKCQl9Cgl9CgoJcmV0dXJuIHRydWU7Cn0KCgoKCmpRdWVyeS5leHRlbmQoewoJcXVldWU6IGZ1bmN0aW9uKCBlbGVtLCB0eXBlLCBkYXRhICkgewoJCWlmICggIWVsZW0gKSB7CgkJCXJldHVybjsKCQl9CgoJCXR5cGUgPSAodHlwZSB8fCAiZngiKSArICJxdWV1ZSI7CgkJdmFyIHEgPSBqUXVlcnkuX2RhdGEoIGVsZW0sIHR5cGUgKTsKCgkJLy8gU3BlZWQgdXAgZGVxdWV1ZSBieSBnZXR0aW5nIG91dCBxdWlja2x5IGlmIHRoaXMgaXMganVzdCBhIGxvb2t1cAoJCWlmICggIWRhdGEgKSB7CgkJCXJldHVybiBxIHx8IFtdOwoJCX0KCgkJaWYgKCAhcSB8fCBqUXVlcnkuaXNBcnJheShkYXRhKSApIHsKCQkJcSA9IGpRdWVyeS5fZGF0YSggZWxlbSwgdHlwZSwgalF1ZXJ5Lm1ha2VBcnJheShkYXRhKSApOwoKCQl9IGVsc2UgewoJCQlxLnB1c2goIGRhdGEgKTsKCQl9CgoJCXJldHVybiBxOwoJfSwKCglkZXF1ZXVlOiBmdW5jdGlvbiggZWxlbSwgdHlwZSApIHsKCQl0eXBlID0gdHlwZSB8fCAiZngiOwoKCQl2YXIgcXVldWUgPSBqUXVlcnkucXVldWUoIGVsZW0sIHR5cGUgKSwKCQkJZm4gPSBxdWV1ZS5zaGlmdCgpOwoKCQkvLyBJZiB0aGUgZnggcXVldWUgaXMgZGVxdWV1ZWQsIGFsd2F5cyByZW1vdmUgdGhlIHByb2dyZXNzIHNlbnRpbmVsCgkJaWYgKCBmbiA9PT0gImlucHJvZ3Jlc3MiICkgewoJCQlmbiA9IHF1ZXVlLnNoaWZ0KCk7CgkJfQoKCQlpZiAoIGZuICkgewoJCQkvLyBBZGQgYSBwcm9ncmVzcyBzZW50aW5lbCB0byBwcmV2ZW50IHRoZSBmeCBxdWV1ZSBmcm9tIGJlaW5nCgkJCS8vIGF1dG9tYXRpY2FsbHkgZGVxdWV1ZWQKCQkJaWYgKCB0eXBlID09PSAiZngiICkgewoJCQkJcXVldWUudW5zaGlmdCgiaW5wcm9ncmVzcyIpOwoJCQl9CgoJCQlmbi5jYWxsKGVsZW0sIGZ1bmN0aW9uKCkgewoJCQkJalF1ZXJ5LmRlcXVldWUoZWxlbSwgdHlwZSk7CgkJCX0pOwoJCX0KCgkJaWYgKCAhcXVldWUubGVuZ3RoICkgewoJCQlqUXVlcnkucmVtb3ZlRGF0YSggZWxlbSwgdHlwZSArICJxdWV1ZSIsIHRydWUgKTsKCQl9Cgl9Cn0pOwoKalF1ZXJ5LmZuLmV4dGVuZCh7CglxdWV1ZTogZnVuY3Rpb24oIHR5cGUsIGRhdGEgKSB7CgkJaWYgKCB0eXBlb2YgdHlwZSAhPT0gInN0cmluZyIgKSB7CgkJCWRhdGEgPSB0eXBlOwoJCQl0eXBlID0gImZ4IjsKCQl9CgoJCWlmICggZGF0YSA9PT0gdW5kZWZpbmVkICkgewoJCQlyZXR1cm4galF1ZXJ5LnF1ZXVlKCB0aGlzWzBdLCB0eXBlICk7CgkJfQoJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oIGkgKSB7CgkJCXZhciBxdWV1ZSA9IGpRdWVyeS5xdWV1ZSggdGhpcywgdHlwZSwgZGF0YSApOwoKCQkJaWYgKCB0eXBlID09PSAiZngiICYmIHF1ZXVlWzBdICE9PSAiaW5wcm9ncmVzcyIgKSB7CgkJCQlqUXVlcnkuZGVxdWV1ZSggdGhpcywgdHlwZSApOwoJCQl9CgkJfSk7Cgl9LAoJZGVxdWV1ZTogZnVuY3Rpb24oIHR5cGUgKSB7CgkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJalF1ZXJ5LmRlcXVldWUoIHRoaXMsIHR5cGUgKTsKCQl9KTsKCX0sCgoJLy8gQmFzZWQgb2ZmIG9mIHRoZSBwbHVnaW4gYnkgQ2xpbnQgSGVsZmVycywgd2l0aCBwZXJtaXNzaW9uLgoJLy8gaHR0cDovL2JsaW5kc2lnbmFscy5jb20vaW5kZXgucGhwLzIwMDkvMDcvanF1ZXJ5LWRlbGF5LwoJZGVsYXk6IGZ1bmN0aW9uKCB0aW1lLCB0eXBlICkgewoJCXRpbWUgPSBqUXVlcnkuZnggPyBqUXVlcnkuZnguc3BlZWRzW3RpbWVdIHx8IHRpbWUgOiB0aW1lOwoJCXR5cGUgPSB0eXBlIHx8ICJmeCI7CgoJCXJldHVybiB0aGlzLnF1ZXVlKCB0eXBlLCBmdW5jdGlvbigpIHsKCQkJdmFyIGVsZW0gPSB0aGlzOwoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewoJCQkJalF1ZXJ5LmRlcXVldWUoIGVsZW0sIHR5cGUgKTsKCQkJfSwgdGltZSApOwoJCX0pOwoJfSwKCgljbGVhclF1ZXVlOiBmdW5jdGlvbiggdHlwZSApIHsKCQlyZXR1cm4gdGhpcy5xdWV1ZSggdHlwZSB8fCAiZngiLCBbXSApOwoJfQp9KTsKCgoKCnZhciByY2xhc3MgPSAvW1xuXHRccl0vZywKCXJzcGFjZXMgPSAvXHMrLywKCXJyZXR1cm4gPSAvXHIvZywKCXJzcGVjaWFsdXJsID0gL14oPzpocmVmfHNyY3xzdHlsZSkkLywKCXJ0eXBlID0gL14oPzpidXR0b258aW5wdXQpJC9pLAoJcmZvY3VzYWJsZSA9IC9eKD86YnV0dG9ufGlucHV0fG9iamVjdHxzZWxlY3R8dGV4dGFyZWEpJC9pLAoJcmNsaWNrYWJsZSA9IC9eYSg/OnJlYSk/JC9pLAoJcnJhZGlvY2hlY2sgPSAvXig/OnJhZGlvfGNoZWNrYm94KSQvaTsKCmpRdWVyeS5wcm9wcyA9IHsKCSJmb3IiOiAiaHRtbEZvciIsCgkiY2xhc3MiOiAiY2xhc3NOYW1lIiwKCXJlYWRvbmx5OiAicmVhZE9ubHkiLAoJbWF4bGVuZ3RoOiAibWF4TGVuZ3RoIiwKCWNlbGxzcGFjaW5nOiAiY2VsbFNwYWNpbmciLAoJcm93c3BhbjogInJvd1NwYW4iLAoJY29sc3BhbjogImNvbFNwYW4iLAoJdGFiaW5kZXg6ICJ0YWJJbmRleCIsCgl1c2VtYXA6ICJ1c2VNYXAiLAoJZnJhbWVib3JkZXI6ICJmcmFtZUJvcmRlciIKfTsKCmpRdWVyeS5mbi5leHRlbmQoewoJYXR0cjogZnVuY3Rpb24oIG5hbWUsIHZhbHVlICkgewoJCXJldHVybiBqUXVlcnkuYWNjZXNzKCB0aGlzLCBuYW1lLCB2YWx1ZSwgdHJ1ZSwgalF1ZXJ5LmF0dHIgKTsKCX0sCgoJcmVtb3ZlQXR0cjogZnVuY3Rpb24oIG5hbWUsIGZuICkgewoJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXsKCQkJalF1ZXJ5LmF0dHIoIHRoaXMsIG5hbWUsICIiICk7CgkJCWlmICggdGhpcy5ub2RlVHlwZSA9PT0gMSApIHsKCQkJCXRoaXMucmVtb3ZlQXR0cmlidXRlKCBuYW1lICk7CgkJCX0KCQl9KTsKCX0sCgoJYWRkQ2xhc3M6IGZ1bmN0aW9uKCB2YWx1ZSApIHsKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKHZhbHVlKSApIHsKCQkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihpKSB7CgkJCQl2YXIgc2VsZiA9IGpRdWVyeSh0aGlzKTsKCQkJCXNlbGYuYWRkQ2xhc3MoIHZhbHVlLmNhbGwodGhpcywgaSwgc2VsZi5hdHRyKCJjbGFzcyIpKSApOwoJCQl9KTsKCQl9CgoJCWlmICggdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAic3RyaW5nIiApIHsKCQkJdmFyIGNsYXNzTmFtZXMgPSAodmFsdWUgfHwgIiIpLnNwbGl0KCByc3BhY2VzICk7CgoJCQlmb3IgKCB2YXIgaSA9IDAsIGwgPSB0aGlzLmxlbmd0aDsgaSA8IGw7IGkrKyApIHsKCQkJCXZhciBlbGVtID0gdGhpc1tpXTsKCgkJCQlpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7CgkJCQkJaWYgKCAhZWxlbS5jbGFzc05hbWUgKSB7CgkJCQkJCWVsZW0uY2xhc3NOYW1lID0gdmFsdWU7CgoJCQkJCX0gZWxzZSB7CgkJCQkJCXZhciBjbGFzc05hbWUgPSAiICIgKyBlbGVtLmNsYXNzTmFtZSArICIgIiwKCQkJCQkJCXNldENsYXNzID0gZWxlbS5jbGFzc05hbWU7CgoJCQkJCQlmb3IgKCB2YXIgYyA9IDAsIGNsID0gY2xhc3NOYW1lcy5sZW5ndGg7IGMgPCBjbDsgYysrICkgewoJCQkJCQkJaWYgKCBjbGFzc05hbWUuaW5kZXhPZiggIiAiICsgY2xhc3NOYW1lc1tjXSArICIgIiApIDwgMCApIHsKCQkJCQkJCQlzZXRDbGFzcyArPSAiICIgKyBjbGFzc05hbWVzW2NdOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJCWVsZW0uY2xhc3NOYW1lID0galF1ZXJ5LnRyaW0oIHNldENsYXNzICk7CgkJCQkJfQoJCQkJfQoJCQl9CgkJfQoKCQlyZXR1cm4gdGhpczsKCX0sCgoJcmVtb3ZlQ2xhc3M6IGZ1bmN0aW9uKCB2YWx1ZSApIHsKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKHZhbHVlKSApIHsKCQkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihpKSB7CgkJCQl2YXIgc2VsZiA9IGpRdWVyeSh0aGlzKTsKCQkJCXNlbGYucmVtb3ZlQ2xhc3MoIHZhbHVlLmNhbGwodGhpcywgaSwgc2VsZi5hdHRyKCJjbGFzcyIpKSApOwoJCQl9KTsKCQl9CgoJCWlmICggKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gInN0cmluZyIpIHx8IHZhbHVlID09PSB1bmRlZmluZWQgKSB7CgkJCXZhciBjbGFzc05hbWVzID0gKHZhbHVlIHx8ICIiKS5zcGxpdCggcnNwYWNlcyApOwoKCQkJZm9yICggdmFyIGkgPSAwLCBsID0gdGhpcy5sZW5ndGg7IGkgPCBsOyBpKysgKSB7CgkJCQl2YXIgZWxlbSA9IHRoaXNbaV07CgoJCQkJaWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICYmIGVsZW0uY2xhc3NOYW1lICkgewoJCQkJCWlmICggdmFsdWUgKSB7CgkJCQkJCXZhciBjbGFzc05hbWUgPSAoIiAiICsgZWxlbS5jbGFzc05hbWUgKyAiICIpLnJlcGxhY2UocmNsYXNzLCAiICIpOwoJCQkJCQlmb3IgKCB2YXIgYyA9IDAsIGNsID0gY2xhc3NOYW1lcy5sZW5ndGg7IGMgPCBjbDsgYysrICkgewoJCQkJCQkJY2xhc3NOYW1lID0gY2xhc3NOYW1lLnJlcGxhY2UoIiAiICsgY2xhc3NOYW1lc1tjXSArICIgIiwgIiAiKTsKCQkJCQkJfQoJCQkJCQllbGVtLmNsYXNzTmFtZSA9IGpRdWVyeS50cmltKCBjbGFzc05hbWUgKTsKCgkJCQkJfSBlbHNlIHsKCQkJCQkJZWxlbS5jbGFzc05hbWUgPSAiIjsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgoJCXJldHVybiB0aGlzOwoJfSwKCgl0b2dnbGVDbGFzczogZnVuY3Rpb24oIHZhbHVlLCBzdGF0ZVZhbCApIHsKCQl2YXIgdHlwZSA9IHR5cGVvZiB2YWx1ZSwKCQkJaXNCb29sID0gdHlwZW9mIHN0YXRlVmFsID09PSAiYm9vbGVhbiI7CgoJCWlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHZhbHVlICkgKSB7CgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oaSkgewoJCQkJdmFyIHNlbGYgPSBqUXVlcnkodGhpcyk7CgkJCQlzZWxmLnRvZ2dsZUNsYXNzKCB2YWx1ZS5jYWxsKHRoaXMsIGksIHNlbGYuYXR0cigiY2xhc3MiKSwgc3RhdGVWYWwpLCBzdGF0ZVZhbCApOwoJCQl9KTsKCQl9CgoJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCWlmICggdHlwZSA9PT0gInN0cmluZyIgKSB7CgkJCQkvLyB0b2dnbGUgaW5kaXZpZHVhbCBjbGFzcyBuYW1lcwoJCQkJdmFyIGNsYXNzTmFtZSwKCQkJCQlpID0gMCwKCQkJCQlzZWxmID0galF1ZXJ5KCB0aGlzICksCgkJCQkJc3RhdGUgPSBzdGF0ZVZhbCwKCQkJCQljbGFzc05hbWVzID0gdmFsdWUuc3BsaXQoIHJzcGFjZXMgKTsKCgkJCQl3aGlsZSAoIChjbGFzc05hbWUgPSBjbGFzc05hbWVzWyBpKysgXSkgKSB7CgkJCQkJLy8gY2hlY2sgZWFjaCBjbGFzc05hbWUgZ2l2ZW4sIHNwYWNlIHNlcGVyYXRlZCBsaXN0CgkJCQkJc3RhdGUgPSBpc0Jvb2wgPyBzdGF0ZSA6ICFzZWxmLmhhc0NsYXNzKCBjbGFzc05hbWUgKTsKCQkJCQlzZWxmWyBzdGF0ZSA/ICJhZGRDbGFzcyIgOiAicmVtb3ZlQ2xhc3MiIF0oIGNsYXNzTmFtZSApOwoJCQkJfQoKCQkJfSBlbHNlIGlmICggdHlwZSA9PT0gInVuZGVmaW5lZCIgfHwgdHlwZSA9PT0gImJvb2xlYW4iICkgewoJCQkJaWYgKCB0aGlzLmNsYXNzTmFtZSApIHsKCQkJCQkvLyBzdG9yZSBjbGFzc05hbWUgaWYgc2V0CgkJCQkJalF1ZXJ5Ll9kYXRhKCB0aGlzLCAiX19jbGFzc05hbWVfXyIsIHRoaXMuY2xhc3NOYW1lICk7CgkJCQl9CgoJCQkJLy8gdG9nZ2xlIHdob2xlIGNsYXNzTmFtZQoJCQkJdGhpcy5jbGFzc05hbWUgPSB0aGlzLmNsYXNzTmFtZSB8fCB2YWx1ZSA9PT0gZmFsc2UgPyAiIiA6IGpRdWVyeS5fZGF0YSggdGhpcywgIl9fY2xhc3NOYW1lX18iICkgfHwgIiI7CgkJCX0KCQl9KTsKCX0sCgoJaGFzQ2xhc3M6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHsKCQl2YXIgY2xhc3NOYW1lID0gIiAiICsgc2VsZWN0b3IgKyAiICI7CgkJZm9yICggdmFyIGkgPSAwLCBsID0gdGhpcy5sZW5ndGg7IGkgPCBsOyBpKysgKSB7CgkJCWlmICggKCIgIiArIHRoaXNbaV0uY2xhc3NOYW1lICsgIiAiKS5yZXBsYWNlKHJjbGFzcywgIiAiKS5pbmRleE9mKCBjbGFzc05hbWUgKSA+IC0xICkgewoJCQkJcmV0dXJuIHRydWU7CgkJCX0KCQl9CgoJCXJldHVybiBmYWxzZTsKCX0sCgoJdmFsOiBmdW5jdGlvbiggdmFsdWUgKSB7CgkJaWYgKCAhYXJndW1lbnRzLmxlbmd0aCApIHsKCQkJdmFyIGVsZW0gPSB0aGlzWzBdOwoKCQkJaWYgKCBlbGVtICkgewoJCQkJaWYgKCBqUXVlcnkubm9kZU5hbWUoIGVsZW0sICJvcHRpb24iICkgKSB7CgkJCQkJLy8gYXR0cmlidXRlcy52YWx1ZSBpcyB1bmRlZmluZWQgaW4gQmxhY2tiZXJyeSA0LjcgYnV0CgkJCQkJLy8gdXNlcyAudmFsdWUuIFNlZSAjNjkzMgoJCQkJCXZhciB2YWwgPSBlbGVtLmF0dHJpYnV0ZXMudmFsdWU7CgkJCQkJcmV0dXJuICF2YWwgfHwgdmFsLnNwZWNpZmllZCA/IGVsZW0udmFsdWUgOiBlbGVtLnRleHQ7CgkJCQl9CgoJCQkJLy8gV2UgbmVlZCB0byBoYW5kbGUgc2VsZWN0IGJveGVzIHNwZWNpYWwKCQkJCWlmICggalF1ZXJ5Lm5vZGVOYW1lKCBlbGVtLCAic2VsZWN0IiApICkgewoJCQkJCXZhciBpbmRleCA9IGVsZW0uc2VsZWN0ZWRJbmRleCwKCQkJCQkJdmFsdWVzID0gW10sCgkJCQkJCW9wdGlvbnMgPSBlbGVtLm9wdGlvbnMsCgkJCQkJCW9uZSA9IGVsZW0udHlwZSA9PT0gInNlbGVjdC1vbmUiOwoKCQkJCQkvLyBOb3RoaW5nIHdhcyBzZWxlY3RlZAoJCQkJCWlmICggaW5kZXggPCAwICkgewoJCQkJCQlyZXR1cm4gbnVsbDsKCQkJCQl9CgoJCQkJCS8vIExvb3AgdGhyb3VnaCBhbGwgdGhlIHNlbGVjdGVkIG9wdGlvbnMKCQkJCQlmb3IgKCB2YXIgaSA9IG9uZSA/IGluZGV4IDogMCwgbWF4ID0gb25lID8gaW5kZXggKyAxIDogb3B0aW9ucy5sZW5ndGg7IGkgPCBtYXg7IGkrKyApIHsKCQkJCQkJdmFyIG9wdGlvbiA9IG9wdGlvbnNbIGkgXTsKCgkJCQkJCS8vIERvbid0IHJldHVybiBvcHRpb25zIHRoYXQgYXJlIGRpc2FibGVkIG9yIGluIGEgZGlzYWJsZWQgb3B0Z3JvdXAKCQkJCQkJaWYgKCBvcHRpb24uc2VsZWN0ZWQgJiYgKGpRdWVyeS5zdXBwb3J0Lm9wdERpc2FibGVkID8gIW9wdGlvbi5kaXNhYmxlZCA6IG9wdGlvbi5nZXRBdHRyaWJ1dGUoImRpc2FibGVkIikgPT09IG51bGwpICYmCgkJCQkJCQkJKCFvcHRpb24ucGFyZW50Tm9kZS5kaXNhYmxlZCB8fCAhalF1ZXJ5Lm5vZGVOYW1lKCBvcHRpb24ucGFyZW50Tm9kZSwgIm9wdGdyb3VwIiApKSApIHsKCgkJCQkJCQkvLyBHZXQgdGhlIHNwZWNpZmljIHZhbHVlIGZvciB0aGUgb3B0aW9uCgkJCQkJCQl2YWx1ZSA9IGpRdWVyeShvcHRpb24pLnZhbCgpOwoKCQkJCQkJCS8vIFdlIGRvbid0IG5lZWQgYW4gYXJyYXkgZm9yIG9uZSBzZWxlY3RzCgkJCQkJCQlpZiAoIG9uZSApIHsKCQkJCQkJCQlyZXR1cm4gdmFsdWU7CgkJCQkJCQl9CgoJCQkJCQkJLy8gTXVsdGktU2VsZWN0cyByZXR1cm4gYW4gYXJyYXkKCQkJCQkJCXZhbHVlcy5wdXNoKCB2YWx1ZSApOwoJCQkJCQl9CgkJCQkJfQoKCQkJCQkvLyBGaXhlcyBCdWcgIzI1NTEgLS0gc2VsZWN0LnZhbCgpIGJyb2tlbiBpbiBJRSBhZnRlciBmb3JtLnJlc2V0KCkKCQkJCQlpZiAoIG9uZSAmJiAhdmFsdWVzLmxlbmd0aCAmJiBvcHRpb25zLmxlbmd0aCApIHsKCQkJCQkJcmV0dXJuIGpRdWVyeSggb3B0aW9uc1sgaW5kZXggXSApLnZhbCgpOwoJCQkJCX0KCgkJCQkJcmV0dXJuIHZhbHVlczsKCQkJCX0KCgkJCQkvLyBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgaW4gV2Via2l0ICIiIGlzIHJldHVybmVkIGluc3RlYWQgb2YgIm9uIiBpZiBhIHZhbHVlIGlzbid0IHNwZWNpZmllZAoJCQkJaWYgKCBycmFkaW9jaGVjay50ZXN0KCBlbGVtLnR5cGUgKSAmJiAhalF1ZXJ5LnN1cHBvcnQuY2hlY2tPbiApIHsKCQkJCQlyZXR1cm4gZWxlbS5nZXRBdHRyaWJ1dGUoInZhbHVlIikgPT09IG51bGwgPyAib24iIDogZWxlbS52YWx1ZTsKCQkJCX0KCgkJCQkvLyBFdmVyeXRoaW5nIGVsc2UsIHdlIGp1c3QgZ3JhYiB0aGUgdmFsdWUKCQkJCXJldHVybiAoZWxlbS52YWx1ZSB8fCAiIikucmVwbGFjZShycmV0dXJuLCAiIik7CgoJCQl9CgoJCQlyZXR1cm4gdW5kZWZpbmVkOwoJCX0KCgkJdmFyIGlzRnVuY3Rpb24gPSBqUXVlcnkuaXNGdW5jdGlvbih2YWx1ZSk7CgoJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oaSkgewoJCQl2YXIgc2VsZiA9IGpRdWVyeSh0aGlzKSwgdmFsID0gdmFsdWU7CgoJCQlpZiAoIHRoaXMubm9kZVR5cGUgIT09IDEgKSB7CgkJCQlyZXR1cm47CgkJCX0KCgkJCWlmICggaXNGdW5jdGlvbiApIHsKCQkJCXZhbCA9IHZhbHVlLmNhbGwodGhpcywgaSwgc2VsZi52YWwoKSk7CgkJCX0KCgkJCS8vIFRyZWF0IG51bGwvdW5kZWZpbmVkIGFzICIiOyBjb252ZXJ0IG51bWJlcnMgdG8gc3RyaW5nCgkJCWlmICggdmFsID09IG51bGwgKSB7CgkJCQl2YWwgPSAiIjsKCQkJfSBlbHNlIGlmICggdHlwZW9mIHZhbCA9PT0gIm51bWJlciIgKSB7CgkJCQl2YWwgKz0gIiI7CgkJCX0gZWxzZSBpZiAoIGpRdWVyeS5pc0FycmF5KHZhbCkgKSB7CgkJCQl2YWwgPSBqUXVlcnkubWFwKHZhbCwgZnVuY3Rpb24gKHZhbHVlKSB7CgkJCQkJcmV0dXJuIHZhbHVlID09IG51bGwgPyAiIiA6IHZhbHVlICsgIiI7CgkJCQl9KTsKCQkJfQoKCQkJaWYgKCBqUXVlcnkuaXNBcnJheSh2YWwpICYmIHJyYWRpb2NoZWNrLnRlc3QoIHRoaXMudHlwZSApICkgewoJCQkJdGhpcy5jaGVja2VkID0galF1ZXJ5LmluQXJyYXkoIHNlbGYudmFsKCksIHZhbCApID49IDA7CgoJCQl9IGVsc2UgaWYgKCBqUXVlcnkubm9kZU5hbWUoIHRoaXMsICJzZWxlY3QiICkgKSB7CgkJCQl2YXIgdmFsdWVzID0galF1ZXJ5Lm1ha2VBcnJheSh2YWwpOwoKCQkJCWpRdWVyeSggIm9wdGlvbiIsIHRoaXMgKS5lYWNoKGZ1bmN0aW9uKCkgewoJCQkJCXRoaXMuc2VsZWN0ZWQgPSBqUXVlcnkuaW5BcnJheSggalF1ZXJ5KHRoaXMpLnZhbCgpLCB2YWx1ZXMgKSA+PSAwOwoJCQkJfSk7CgoJCQkJaWYgKCAhdmFsdWVzLmxlbmd0aCApIHsKCQkJCQl0aGlzLnNlbGVjdGVkSW5kZXggPSAtMTsKCQkJCX0KCgkJCX0gZWxzZSB7CgkJCQl0aGlzLnZhbHVlID0gdmFsOwoJCQl9CgkJfSk7Cgl9Cn0pOwoKalF1ZXJ5LmV4dGVuZCh7CglhdHRyRm46IHsKCQl2YWw6IHRydWUsCgkJY3NzOiB0cnVlLAoJCWh0bWw6IHRydWUsCgkJdGV4dDogdHJ1ZSwKCQlkYXRhOiB0cnVlLAoJCXdpZHRoOiB0cnVlLAoJCWhlaWdodDogdHJ1ZSwKCQlvZmZzZXQ6IHRydWUKCX0sCgoJYXR0cjogZnVuY3Rpb24oIGVsZW0sIG5hbWUsIHZhbHVlLCBwYXNzICkgewoJCS8vIGRvbid0IGdldC9zZXQgYXR0cmlidXRlcyBvbiB0ZXh0LCBjb21tZW50IGFuZCBhdHRyaWJ1dGUgbm9kZXMKCQlpZiAoICFlbGVtIHx8IGVsZW0ubm9kZVR5cGUgPT09IDMgfHwgZWxlbS5ub2RlVHlwZSA9PT0gOCB8fCBlbGVtLm5vZGVUeXBlID09PSAyICkgewoJCQlyZXR1cm4gdW5kZWZpbmVkOwoJCX0KCgkJaWYgKCBwYXNzICYmIG5hbWUgaW4galF1ZXJ5LmF0dHJGbiApIHsKCQkJcmV0dXJuIGpRdWVyeShlbGVtKVtuYW1lXSh2YWx1ZSk7CgkJfQoKCQl2YXIgbm90eG1sID0gZWxlbS5ub2RlVHlwZSAhPT0gMSB8fCAhalF1ZXJ5LmlzWE1MRG9jKCBlbGVtICksCgkJCS8vIFdoZXRoZXIgd2UgYXJlIHNldHRpbmcgKG9yIGdldHRpbmcpCgkJCXNldCA9IHZhbHVlICE9PSB1bmRlZmluZWQ7CgoJCS8vIFRyeSB0byBub3JtYWxpemUvZml4IHRoZSBuYW1lCgkJbmFtZSA9IG5vdHhtbCAmJiBqUXVlcnkucHJvcHNbIG5hbWUgXSB8fCBuYW1lOwoKCQkvLyBPbmx5IGRvIGFsbCB0aGUgZm9sbG93aW5nIGlmIHRoaXMgaXMgYSBub2RlIChmYXN0ZXIgZm9yIHN0eWxlKQoJCWlmICggZWxlbS5ub2RlVHlwZSA9PT0gMSApIHsKCQkJLy8gVGhlc2UgYXR0cmlidXRlcyByZXF1aXJlIHNwZWNpYWwgdHJlYXRtZW50CgkJCXZhciBzcGVjaWFsID0gcnNwZWNpYWx1cmwudGVzdCggbmFtZSApOwoKCQkJLy8gU2FmYXJpIG1pcy1yZXBvcnRzIHRoZSBkZWZhdWx0IHNlbGVjdGVkIHByb3BlcnR5IG9mIGFuIG9wdGlvbgoJCQkvLyBBY2Nlc3NpbmcgdGhlIHBhcmVudCdzIHNlbGVjdGVkSW5kZXggcHJvcGVydHkgZml4ZXMgaXQKCQkJaWYgKCBuYW1lID09PSAic2VsZWN0ZWQiICYmICFqUXVlcnkuc3VwcG9ydC5vcHRTZWxlY3RlZCApIHsKCQkJCXZhciBwYXJlbnQgPSBlbGVtLnBhcmVudE5vZGU7CgkJCQlpZiAoIHBhcmVudCApIHsKCQkJCQlwYXJlbnQuc2VsZWN0ZWRJbmRleDsKCgkJCQkJLy8gTWFrZSBzdXJlIHRoYXQgaXQgYWxzbyB3b3JrcyB3aXRoIG9wdGdyb3Vwcywgc2VlICM1NzAxCgkJCQkJaWYgKCBwYXJlbnQucGFyZW50Tm9kZSApIHsKCQkJCQkJcGFyZW50LnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleDsKCQkJCQl9CgkJCQl9CgkJCX0KCgkJCS8vIElmIGFwcGxpY2FibGUsIGFjY2VzcyB0aGUgYXR0cmlidXRlIHZpYSB0aGUgRE9NIDAgd2F5CgkJCS8vICdpbicgY2hlY2tzIGZhaWwgaW4gQmxhY2tiZXJyeSA0LjcgIzY5MzEKCQkJaWYgKCAobmFtZSBpbiBlbGVtIHx8IGVsZW1bIG5hbWUgXSAhPT0gdW5kZWZpbmVkKSAmJiBub3R4bWwgJiYgIXNwZWNpYWwgKSB7CgkJCQlpZiAoIHNldCApIHsKCQkJCQkvLyBXZSBjYW4ndCBhbGxvdyB0aGUgdHlwZSBwcm9wZXJ0eSB0byBiZSBjaGFuZ2VkIChzaW5jZSBpdCBjYXVzZXMgcHJvYmxlbXMgaW4gSUUpCgkJCQkJaWYgKCBuYW1lID09PSAidHlwZSIgJiYgcnR5cGUudGVzdCggZWxlbS5ub2RlTmFtZSApICYmIGVsZW0ucGFyZW50Tm9kZSApIHsKCQkJCQkJalF1ZXJ5LmVycm9yKCAidHlwZSBwcm9wZXJ0eSBjYW4ndCBiZSBjaGFuZ2VkIiApOwoJCQkJCX0KCgkJCQkJaWYgKCB2YWx1ZSA9PT0gbnVsbCApIHsKCQkJCQkJaWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICkgewoJCQkJCQkJZWxlbS5yZW1vdmVBdHRyaWJ1dGUoIG5hbWUgKTsKCQkJCQkJfQoKCQkJCQl9IGVsc2UgewoJCQkJCQllbGVtWyBuYW1lIF0gPSB2YWx1ZTsKCQkJCQl9CgkJCQl9CgoJCQkJLy8gYnJvd3NlcnMgaW5kZXggZWxlbWVudHMgYnkgaWQvbmFtZSBvbiBmb3JtcywgZ2l2ZSBwcmlvcml0eSB0byBhdHRyaWJ1dGVzLgoJCQkJaWYgKCBqUXVlcnkubm9kZU5hbWUoIGVsZW0sICJmb3JtIiApICYmIGVsZW0uZ2V0QXR0cmlidXRlTm9kZShuYW1lKSApIHsKCQkJCQlyZXR1cm4gZWxlbS5nZXRBdHRyaWJ1dGVOb2RlKCBuYW1lICkubm9kZVZhbHVlOwoJCQkJfQoKCQkJCS8vIGVsZW0udGFiSW5kZXggZG9lc24ndCBhbHdheXMgcmV0dXJuIHRoZSBjb3JyZWN0IHZhbHVlIHdoZW4gaXQgaGFzbid0IGJlZW4gZXhwbGljaXRseSBzZXQKCQkJCS8vIGh0dHA6Ly9mbHVpZHByb2plY3Qub3JnL2Jsb2cvMjAwOC8wMS8wOS9nZXR0aW5nLXNldHRpbmctYW5kLXJlbW92aW5nLXRhYmluZGV4LXZhbHVlcy13aXRoLWphdmFzY3JpcHQvCgkJCQlpZiAoIG5hbWUgPT09ICJ0YWJJbmRleCIgKSB7CgkJCQkJdmFyIGF0dHJpYnV0ZU5vZGUgPSBlbGVtLmdldEF0dHJpYnV0ZU5vZGUoICJ0YWJJbmRleCIgKTsKCgkJCQkJcmV0dXJuIGF0dHJpYnV0ZU5vZGUgJiYgYXR0cmlidXRlTm9kZS5zcGVjaWZpZWQgPwoJCQkJCQlhdHRyaWJ1dGVOb2RlLnZhbHVlIDoKCQkJCQkJcmZvY3VzYWJsZS50ZXN0KCBlbGVtLm5vZGVOYW1lICkgfHwgcmNsaWNrYWJsZS50ZXN0KCBlbGVtLm5vZGVOYW1lICkgJiYgZWxlbS5ocmVmID8KCQkJCQkJCTAgOgoJCQkJCQkJdW5kZWZpbmVkOwoJCQkJfQoKCQkJCXJldHVybiBlbGVtWyBuYW1lIF07CgkJCX0KCgkJCWlmICggIWpRdWVyeS5zdXBwb3J0LnN0eWxlICYmIG5vdHhtbCAmJiBuYW1lID09PSAic3R5bGUiICkgewoJCQkJaWYgKCBzZXQgKSB7CgkJCQkJZWxlbS5zdHlsZS5jc3NUZXh0ID0gIiIgKyB2YWx1ZTsKCQkJCX0KCgkJCQlyZXR1cm4gZWxlbS5zdHlsZS5jc3NUZXh0OwoJCQl9CgoJCQlpZiAoIHNldCApIHsKCQkJCS8vIGNvbnZlcnQgdGhlIHZhbHVlIHRvIGEgc3RyaW5nIChhbGwgYnJvd3NlcnMgZG8gdGhpcyBidXQgSUUpIHNlZSAjMTA3MAoJCQkJZWxlbS5zZXRBdHRyaWJ1dGUoIG5hbWUsICIiICsgdmFsdWUgKTsKCQkJfQoKCQkJLy8gRW5zdXJlIHRoYXQgbWlzc2luZyBhdHRyaWJ1dGVzIHJldHVybiB1bmRlZmluZWQKCQkJLy8gQmxhY2tiZXJyeSA0LjcgcmV0dXJucyAiIiBmcm9tIGdldEF0dHJpYnV0ZSAjNjkzOAoJCQlpZiAoICFlbGVtLmF0dHJpYnV0ZXNbIG5hbWUgXSAmJiAoZWxlbS5oYXNBdHRyaWJ1dGUgJiYgIWVsZW0uaGFzQXR0cmlidXRlKCBuYW1lICkpICkgewoJCQkJcmV0dXJuIHVuZGVmaW5lZDsKCQkJfQoKCQkJdmFyIGF0dHIgPSAhalF1ZXJ5LnN1cHBvcnQuaHJlZk5vcm1hbGl6ZWQgJiYgbm90eG1sICYmIHNwZWNpYWwgPwoJCQkJCS8vIFNvbWUgYXR0cmlidXRlcyByZXF1aXJlIGEgc3BlY2lhbCBjYWxsIG9uIElFCgkJCQkJZWxlbS5nZXRBdHRyaWJ1dGUoIG5hbWUsIDIgKSA6CgkJCQkJZWxlbS5nZXRBdHRyaWJ1dGUoIG5hbWUgKTsKCgkJCS8vIE5vbi1leGlzdGVudCBhdHRyaWJ1dGVzIHJldHVybiBudWxsLCB3ZSBub3JtYWxpemUgdG8gdW5kZWZpbmVkCgkJCXJldHVybiBhdHRyID09PSBudWxsID8gdW5kZWZpbmVkIDogYXR0cjsKCQl9CgkJLy8gSGFuZGxlIGV2ZXJ5dGhpbmcgd2hpY2ggaXNuJ3QgYSBET00gZWxlbWVudCBub2RlCgkJaWYgKCBzZXQgKSB7CgkJCWVsZW1bIG5hbWUgXSA9IHZhbHVlOwoJCX0KCQlyZXR1cm4gZWxlbVsgbmFtZSBdOwoJfQp9KTsKCgoKCnZhciBybmFtZXNwYWNlcyA9IC9cLiguKikkLywKCXJmb3JtRWxlbXMgPSAvXig/OnRleHRhcmVhfGlucHV0fHNlbGVjdCkkL2ksCglycGVyaW9kID0gL1wuL2csCglyc3BhY2UgPSAvIC9nLAoJcmVzY2FwZSA9IC9bXlx3XHMufGBdL2csCglmY2xlYW51cCA9IGZ1bmN0aW9uKCBubSApIHsKCQlyZXR1cm4gbm0ucmVwbGFjZShyZXNjYXBlLCAiXFwkJiIpOwoJfTsKCi8qCiAqIEEgbnVtYmVyIG9mIGhlbHBlciBmdW5jdGlvbnMgdXNlZCBmb3IgbWFuYWdpbmcgZXZlbnRzLgogKiBNYW55IG9mIHRoZSBpZGVhcyBiZWhpbmQgdGhpcyBjb2RlIG9yaWdpbmF0ZWQgZnJvbQogKiBEZWFuIEVkd2FyZHMnIGFkZEV2ZW50IGxpYnJhcnkuCiAqLwpqUXVlcnkuZXZlbnQgPSB7CgoJLy8gQmluZCBhbiBldmVudCB0byBhbiBlbGVtZW50CgkvLyBPcmlnaW5hbCBieSBEZWFuIEVkd2FyZHMKCWFkZDogZnVuY3Rpb24oIGVsZW0sIHR5cGVzLCBoYW5kbGVyLCBkYXRhICkgewoJCWlmICggZWxlbS5ub2RlVHlwZSA9PT0gMyB8fCBlbGVtLm5vZGVUeXBlID09PSA4ICkgewoJCQlyZXR1cm47CgkJfQoKCQkvLyBUT0RPIDo6IFVzZSBhIHRyeS9jYXRjaCB1bnRpbCBpdCdzIHNhZmUgdG8gcHVsbCB0aGlzIG91dCAobGlrZWx5IDEuNikKCQkvLyBNaW5vciByZWxlYXNlIGZpeCBmb3IgYnVnICM4MDE4CgkJdHJ5IHsKCQkJLy8gRm9yIHdoYXRldmVyIHJlYXNvbiwgSUUgaGFzIHRyb3VibGUgcGFzc2luZyB0aGUgd2luZG93IG9iamVjdAoJCQkvLyBhcm91bmQsIGNhdXNpbmcgaXQgdG8gYmUgY2xvbmVkIGluIHRoZSBwcm9jZXNzCgkJCWlmICggalF1ZXJ5LmlzV2luZG93KCBlbGVtICkgJiYgKCBlbGVtICE9PSB3aW5kb3cgJiYgIWVsZW0uZnJhbWVFbGVtZW50ICkgKSB7CgkJCQllbGVtID0gd2luZG93OwoJCQl9CgkJfQoJCWNhdGNoICggZSApIHt9CgoJCWlmICggaGFuZGxlciA9PT0gZmFsc2UgKSB7CgkJCWhhbmRsZXIgPSByZXR1cm5GYWxzZTsKCQl9IGVsc2UgaWYgKCAhaGFuZGxlciApIHsKCQkJLy8gRml4ZXMgYnVnICM3MjI5LiBGaXggcmVjb21tZW5kZWQgYnkgamRhbHRvbgoJCQlyZXR1cm47CgkJfQoKCQl2YXIgaGFuZGxlT2JqSW4sIGhhbmRsZU9iajsKCgkJaWYgKCBoYW5kbGVyLmhhbmRsZXIgKSB7CgkJCWhhbmRsZU9iakluID0gaGFuZGxlcjsKCQkJaGFuZGxlciA9IGhhbmRsZU9iakluLmhhbmRsZXI7CgkJfQoKCQkvLyBNYWtlIHN1cmUgdGhhdCB0aGUgZnVuY3Rpb24gYmVpbmcgZXhlY3V0ZWQgaGFzIGEgdW5pcXVlIElECgkJaWYgKCAhaGFuZGxlci5ndWlkICkgewoJCQloYW5kbGVyLmd1aWQgPSBqUXVlcnkuZ3VpZCsrOwoJCX0KCgkJLy8gSW5pdCB0aGUgZWxlbWVudCdzIGV2ZW50IHN0cnVjdHVyZQoJCXZhciBlbGVtRGF0YSA9IGpRdWVyeS5fZGF0YSggZWxlbSApOwoKCQkvLyBJZiBubyBlbGVtRGF0YSBpcyBmb3VuZCB0aGVuIHdlIG11c3QgYmUgdHJ5aW5nIHRvIGJpbmQgdG8gb25lIG9mIHRoZQoJCS8vIGJhbm5lZCBub0RhdGEgZWxlbWVudHMKCQlpZiAoICFlbGVtRGF0YSApIHsKCQkJcmV0dXJuOwoJCX0KCgkJdmFyIGV2ZW50cyA9IGVsZW1EYXRhLmV2ZW50cywKCQkJZXZlbnRIYW5kbGUgPSBlbGVtRGF0YS5oYW5kbGU7CgoJCWlmICggIWV2ZW50cyApIHsKCQkJZWxlbURhdGEuZXZlbnRzID0gZXZlbnRzID0ge307CgkJfQoKCQlpZiAoICFldmVudEhhbmRsZSApIHsKCQkJZWxlbURhdGEuaGFuZGxlID0gZXZlbnRIYW5kbGUgPSBmdW5jdGlvbigpIHsKCQkJCS8vIEhhbmRsZSB0aGUgc2Vjb25kIGV2ZW50IG9mIGEgdHJpZ2dlciBhbmQgd2hlbgoJCQkJLy8gYW4gZXZlbnQgaXMgY2FsbGVkIGFmdGVyIGEgcGFnZSBoYXMgdW5sb2FkZWQKCQkJCXJldHVybiB0eXBlb2YgalF1ZXJ5ICE9PSAidW5kZWZpbmVkIiAmJiAhalF1ZXJ5LmV2ZW50LnRyaWdnZXJlZCA/CgkJCQkJalF1ZXJ5LmV2ZW50LmhhbmRsZS5hcHBseSggZXZlbnRIYW5kbGUuZWxlbSwgYXJndW1lbnRzICkgOgoJCQkJCXVuZGVmaW5lZDsKCQkJfTsKCQl9CgoJCS8vIEFkZCBlbGVtIGFzIGEgcHJvcGVydHkgb2YgdGhlIGhhbmRsZSBmdW5jdGlvbgoJCS8vIFRoaXMgaXMgdG8gcHJldmVudCBhIG1lbW9yeSBsZWFrIHdpdGggbm9uLW5hdGl2ZSBldmVudHMgaW4gSUUuCgkJZXZlbnRIYW5kbGUuZWxlbSA9IGVsZW07CgoJCS8vIEhhbmRsZSBtdWx0aXBsZSBldmVudHMgc2VwYXJhdGVkIGJ5IGEgc3BhY2UKCQkvLyBqUXVlcnkoLi4uKS5iaW5kKCJtb3VzZW92ZXIgbW91c2VvdXQiLCBmbik7CgkJdHlwZXMgPSB0eXBlcy5zcGxpdCgiICIpOwoKCQl2YXIgdHlwZSwgaSA9IDAsIG5hbWVzcGFjZXM7CgoJCXdoaWxlICggKHR5cGUgPSB0eXBlc1sgaSsrIF0pICkgewoJCQloYW5kbGVPYmogPSBoYW5kbGVPYmpJbiA/CgkJCQlqUXVlcnkuZXh0ZW5kKHt9LCBoYW5kbGVPYmpJbikgOgoJCQkJeyBoYW5kbGVyOiBoYW5kbGVyLCBkYXRhOiBkYXRhIH07CgoJCQkvLyBOYW1lc3BhY2VkIGV2ZW50IGhhbmRsZXJzCgkJCWlmICggdHlwZS5pbmRleE9mKCIuIikgPiAtMSApIHsKCQkJCW5hbWVzcGFjZXMgPSB0eXBlLnNwbGl0KCIuIik7CgkJCQl0eXBlID0gbmFtZXNwYWNlcy5zaGlmdCgpOwoJCQkJaGFuZGxlT2JqLm5hbWVzcGFjZSA9IG5hbWVzcGFjZXMuc2xpY2UoMCkuc29ydCgpLmpvaW4oIi4iKTsKCgkJCX0gZWxzZSB7CgkJCQluYW1lc3BhY2VzID0gW107CgkJCQloYW5kbGVPYmoubmFtZXNwYWNlID0gIiI7CgkJCX0KCgkJCWhhbmRsZU9iai50eXBlID0gdHlwZTsKCQkJaWYgKCAhaGFuZGxlT2JqLmd1aWQgKSB7CgkJCQloYW5kbGVPYmouZ3VpZCA9IGhhbmRsZXIuZ3VpZDsKCQkJfQoKCQkJLy8gR2V0IHRoZSBjdXJyZW50IGxpc3Qgb2YgZnVuY3Rpb25zIGJvdW5kIHRvIHRoaXMgZXZlbnQKCQkJdmFyIGhhbmRsZXJzID0gZXZlbnRzWyB0eXBlIF0sCgkJCQlzcGVjaWFsID0galF1ZXJ5LmV2ZW50LnNwZWNpYWxbIHR5cGUgXSB8fCB7fTsKCgkJCS8vIEluaXQgdGhlIGV2ZW50IGhhbmRsZXIgcXVldWUKCQkJaWYgKCAhaGFuZGxlcnMgKSB7CgkJCQloYW5kbGVycyA9IGV2ZW50c1sgdHlwZSBdID0gW107CgoJCQkJLy8gQ2hlY2sgZm9yIGEgc3BlY2lhbCBldmVudCBoYW5kbGVyCgkJCQkvLyBPbmx5IHVzZSBhZGRFdmVudExpc3RlbmVyL2F0dGFjaEV2ZW50IGlmIHRoZSBzcGVjaWFsCgkJCQkvLyBldmVudHMgaGFuZGxlciByZXR1cm5zIGZhbHNlCgkJCQlpZiAoICFzcGVjaWFsLnNldHVwIHx8IHNwZWNpYWwuc2V0dXAuY2FsbCggZWxlbSwgZGF0YSwgbmFtZXNwYWNlcywgZXZlbnRIYW5kbGUgKSA9PT0gZmFsc2UgKSB7CgkJCQkJLy8gQmluZCB0aGUgZ2xvYmFsIGV2ZW50IGhhbmRsZXIgdG8gdGhlIGVsZW1lbnQKCQkJCQlpZiAoIGVsZW0uYWRkRXZlbnRMaXN0ZW5lciApIHsKCQkJCQkJZWxlbS5hZGRFdmVudExpc3RlbmVyKCB0eXBlLCBldmVudEhhbmRsZSwgZmFsc2UgKTsKCgkJCQkJfSBlbHNlIGlmICggZWxlbS5hdHRhY2hFdmVudCApIHsKCQkJCQkJZWxlbS5hdHRhY2hFdmVudCggIm9uIiArIHR5cGUsIGV2ZW50SGFuZGxlICk7CgkJCQkJfQoJCQkJfQoJCQl9CgoJCQlpZiAoIHNwZWNpYWwuYWRkICkgewoJCQkJc3BlY2lhbC5hZGQuY2FsbCggZWxlbSwgaGFuZGxlT2JqICk7CgoJCQkJaWYgKCAhaGFuZGxlT2JqLmhhbmRsZXIuZ3VpZCApIHsKCQkJCQloYW5kbGVPYmouaGFuZGxlci5ndWlkID0gaGFuZGxlci5ndWlkOwoJCQkJfQoJCQl9CgoJCQkvLyBBZGQgdGhlIGZ1bmN0aW9uIHRvIHRoZSBlbGVtZW50J3MgaGFuZGxlciBsaXN0CgkJCWhhbmRsZXJzLnB1c2goIGhhbmRsZU9iaiApOwoKCQkJLy8gS2VlcCB0cmFjayBvZiB3aGljaCBldmVudHMgaGF2ZSBiZWVuIHVzZWQsIGZvciBnbG9iYWwgdHJpZ2dlcmluZwoJCQlqUXVlcnkuZXZlbnQuZ2xvYmFsWyB0eXBlIF0gPSB0cnVlOwoJCX0KCgkJLy8gTnVsbGlmeSBlbGVtIHRvIHByZXZlbnQgbWVtb3J5IGxlYWtzIGluIElFCgkJZWxlbSA9IG51bGw7Cgl9LAoKCWdsb2JhbDoge30sCgoJLy8gRGV0YWNoIGFuIGV2ZW50IG9yIHNldCBvZiBldmVudHMgZnJvbSBhbiBlbGVtZW50CglyZW1vdmU6IGZ1bmN0aW9uKCBlbGVtLCB0eXBlcywgaGFuZGxlciwgcG9zICkgewoJCS8vIGRvbid0IGRvIGV2ZW50cyBvbiB0ZXh0IGFuZCBjb21tZW50IG5vZGVzCgkJaWYgKCBlbGVtLm5vZGVUeXBlID09PSAzIHx8IGVsZW0ubm9kZVR5cGUgPT09IDggKSB7CgkJCXJldHVybjsKCQl9CgoJCWlmICggaGFuZGxlciA9PT0gZmFsc2UgKSB7CgkJCWhhbmRsZXIgPSByZXR1cm5GYWxzZTsKCQl9CgoJCXZhciByZXQsIHR5cGUsIGZuLCBqLCBpID0gMCwgYWxsLCBuYW1lc3BhY2VzLCBuYW1lc3BhY2UsIHNwZWNpYWwsIGV2ZW50VHlwZSwgaGFuZGxlT2JqLCBvcmlnVHlwZSwKCQkJZWxlbURhdGEgPSBqUXVlcnkuaGFzRGF0YSggZWxlbSApICYmIGpRdWVyeS5fZGF0YSggZWxlbSApLAoJCQlldmVudHMgPSBlbGVtRGF0YSAmJiBlbGVtRGF0YS5ldmVudHM7CgoJCWlmICggIWVsZW1EYXRhIHx8ICFldmVudHMgKSB7CgkJCXJldHVybjsKCQl9CgoJCS8vIHR5cGVzIGlzIGFjdHVhbGx5IGFuIGV2ZW50IG9iamVjdCBoZXJlCgkJaWYgKCB0eXBlcyAmJiB0eXBlcy50eXBlICkgewoJCQloYW5kbGVyID0gdHlwZXMuaGFuZGxlcjsKCQkJdHlwZXMgPSB0eXBlcy50eXBlOwoJCX0KCgkJLy8gVW5iaW5kIGFsbCBldmVudHMgZm9yIHRoZSBlbGVtZW50CgkJaWYgKCAhdHlwZXMgfHwgdHlwZW9mIHR5cGVzID09PSAic3RyaW5nIiAmJiB0eXBlcy5jaGFyQXQoMCkgPT09ICIuIiApIHsKCQkJdHlwZXMgPSB0eXBlcyB8fCAiIjsKCgkJCWZvciAoIHR5cGUgaW4gZXZlbnRzICkgewoJCQkJalF1ZXJ5LmV2ZW50LnJlbW92ZSggZWxlbSwgdHlwZSArIHR5cGVzICk7CgkJCX0KCgkJCXJldHVybjsKCQl9CgoJCS8vIEhhbmRsZSBtdWx0aXBsZSBldmVudHMgc2VwYXJhdGVkIGJ5IGEgc3BhY2UKCQkvLyBqUXVlcnkoLi4uKS51bmJpbmQoIm1vdXNlb3ZlciBtb3VzZW91dCIsIGZuKTsKCQl0eXBlcyA9IHR5cGVzLnNwbGl0KCIgIik7CgoJCXdoaWxlICggKHR5cGUgPSB0eXBlc1sgaSsrIF0pICkgewoJCQlvcmlnVHlwZSA9IHR5cGU7CgkJCWhhbmRsZU9iaiA9IG51bGw7CgkJCWFsbCA9IHR5cGUuaW5kZXhPZigiLiIpIDwgMDsKCQkJbmFtZXNwYWNlcyA9IFtdOwoKCQkJaWYgKCAhYWxsICkgewoJCQkJLy8gTmFtZXNwYWNlZCBldmVudCBoYW5kbGVycwoJCQkJbmFtZXNwYWNlcyA9IHR5cGUuc3BsaXQoIi4iKTsKCQkJCXR5cGUgPSBuYW1lc3BhY2VzLnNoaWZ0KCk7CgoJCQkJbmFtZXNwYWNlID0gbmV3IFJlZ0V4cCgiKF58XFwuKSIgKwoJCQkJCWpRdWVyeS5tYXAoIG5hbWVzcGFjZXMuc2xpY2UoMCkuc29ydCgpLCBmY2xlYW51cCApLmpvaW4oIlxcLig/Oi4qXFwuKT8iKSArICIoXFwufCQpIik7CgkJCX0KCgkJCWV2ZW50VHlwZSA9IGV2ZW50c1sgdHlwZSBdOwoKCQkJaWYgKCAhZXZlbnRUeXBlICkgewoJCQkJY29udGludWU7CgkJCX0KCgkJCWlmICggIWhhbmRsZXIgKSB7CgkJCQlmb3IgKCBqID0gMDsgaiA8IGV2ZW50VHlwZS5sZW5ndGg7IGorKyApIHsKCQkJCQloYW5kbGVPYmogPSBldmVudFR5cGVbIGogXTsKCgkJCQkJaWYgKCBhbGwgfHwgbmFtZXNwYWNlLnRlc3QoIGhhbmRsZU9iai5uYW1lc3BhY2UgKSApIHsKCQkJCQkJalF1ZXJ5LmV2ZW50LnJlbW92ZSggZWxlbSwgb3JpZ1R5cGUsIGhhbmRsZU9iai5oYW5kbGVyLCBqICk7CgkJCQkJCWV2ZW50VHlwZS5zcGxpY2UoIGotLSwgMSApOwoJCQkJCX0KCQkJCX0KCgkJCQljb250aW51ZTsKCQkJfQoKCQkJc3BlY2lhbCA9IGpRdWVyeS5ldmVudC5zcGVjaWFsWyB0eXBlIF0gfHwge307CgoJCQlmb3IgKCBqID0gcG9zIHx8IDA7IGogPCBldmVudFR5cGUubGVuZ3RoOyBqKysgKSB7CgkJCQloYW5kbGVPYmogPSBldmVudFR5cGVbIGogXTsKCgkJCQlpZiAoIGhhbmRsZXIuZ3VpZCA9PT0gaGFuZGxlT2JqLmd1aWQgKSB7CgkJCQkJLy8gcmVtb3ZlIHRoZSBnaXZlbiBoYW5kbGVyIGZvciB0aGUgZ2l2ZW4gdHlwZQoJCQkJCWlmICggYWxsIHx8IG5hbWVzcGFjZS50ZXN0KCBoYW5kbGVPYmoubmFtZXNwYWNlICkgKSB7CgkJCQkJCWlmICggcG9zID09IG51bGwgKSB7CgkJCQkJCQlldmVudFR5cGUuc3BsaWNlKCBqLS0sIDEgKTsKCQkJCQkJfQoKCQkJCQkJaWYgKCBzcGVjaWFsLnJlbW92ZSApIHsKCQkJCQkJCXNwZWNpYWwucmVtb3ZlLmNhbGwoIGVsZW0sIGhhbmRsZU9iaiApOwoJCQkJCQl9CgkJCQkJfQoKCQkJCQlpZiAoIHBvcyAhPSBudWxsICkgewoJCQkJCQlicmVhazsKCQkJCQl9CgkJCQl9CgkJCX0KCgkJCS8vIHJlbW92ZSBnZW5lcmljIGV2ZW50IGhhbmRsZXIgaWYgbm8gbW9yZSBoYW5kbGVycyBleGlzdAoJCQlpZiAoIGV2ZW50VHlwZS5sZW5ndGggPT09IDAgfHwgcG9zICE9IG51bGwgJiYgZXZlbnRUeXBlLmxlbmd0aCA9PT0gMSApIHsKCQkJCWlmICggIXNwZWNpYWwudGVhcmRvd24gfHwgc3BlY2lhbC50ZWFyZG93bi5jYWxsKCBlbGVtLCBuYW1lc3BhY2VzICkgPT09IGZhbHNlICkgewoJCQkJCWpRdWVyeS5yZW1vdmVFdmVudCggZWxlbSwgdHlwZSwgZWxlbURhdGEuaGFuZGxlICk7CgkJCQl9CgoJCQkJcmV0ID0gbnVsbDsKCQkJCWRlbGV0ZSBldmVudHNbIHR5cGUgXTsKCQkJfQoJCX0KCgkJLy8gUmVtb3ZlIHRoZSBleHBhbmRvIGlmIGl0J3Mgbm8gbG9uZ2VyIHVzZWQKCQlpZiAoIGpRdWVyeS5pc0VtcHR5T2JqZWN0KCBldmVudHMgKSApIHsKCQkJdmFyIGhhbmRsZSA9IGVsZW1EYXRhLmhhbmRsZTsKCQkJaWYgKCBoYW5kbGUgKSB7CgkJCQloYW5kbGUuZWxlbSA9IG51bGw7CgkJCX0KCgkJCWRlbGV0ZSBlbGVtRGF0YS5ldmVudHM7CgkJCWRlbGV0ZSBlbGVtRGF0YS5oYW5kbGU7CgoJCQlpZiAoIGpRdWVyeS5pc0VtcHR5T2JqZWN0KCBlbGVtRGF0YSApICkgewoJCQkJalF1ZXJ5LnJlbW92ZURhdGEoIGVsZW0sIHVuZGVmaW5lZCwgdHJ1ZSApOwoJCQl9CgkJfQoJfSwKCgkvLyBidWJibGluZyBpcyBpbnRlcm5hbAoJdHJpZ2dlcjogZnVuY3Rpb24oIGV2ZW50LCBkYXRhLCBlbGVtIC8qLCBidWJibGluZyAqLyApIHsKCQkvLyBFdmVudCBvYmplY3Qgb3IgZXZlbnQgdHlwZQoJCXZhciB0eXBlID0gZXZlbnQudHlwZSB8fCBldmVudCwKCQkJYnViYmxpbmcgPSBhcmd1bWVudHNbM107CgoJCWlmICggIWJ1YmJsaW5nICkgewoJCQlldmVudCA9IHR5cGVvZiBldmVudCA9PT0gIm9iamVjdCIgPwoJCQkJLy8galF1ZXJ5LkV2ZW50IG9iamVjdAoJCQkJZXZlbnRbIGpRdWVyeS5leHBhbmRvIF0gPyBldmVudCA6CgkJCQkvLyBPYmplY3QgbGl0ZXJhbAoJCQkJalF1ZXJ5LmV4dGVuZCggalF1ZXJ5LkV2ZW50KHR5cGUpLCBldmVudCApIDoKCQkJCS8vIEp1c3QgdGhlIGV2ZW50IHR5cGUgKHN0cmluZykKCQkJCWpRdWVyeS5FdmVudCh0eXBlKTsKCgkJCWlmICggdHlwZS5pbmRleE9mKCIhIikgPj0gMCApIHsKCQkJCWV2ZW50LnR5cGUgPSB0eXBlID0gdHlwZS5zbGljZSgwLCAtMSk7CgkJCQlldmVudC5leGNsdXNpdmUgPSB0cnVlOwoJCQl9CgoJCQkvLyBIYW5kbGUgYSBnbG9iYWwgdHJpZ2dlcgoJCQlpZiAoICFlbGVtICkgewoJCQkJLy8gRG9uJ3QgYnViYmxlIGN1c3RvbSBldmVudHMgd2hlbiBnbG9iYWwgKHRvIGF2b2lkIHRvbyBtdWNoIG92ZXJoZWFkKQoJCQkJZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CgoJCQkJLy8gT25seSB0cmlnZ2VyIGlmIHdlJ3ZlIGV2ZXIgYm91bmQgYW4gZXZlbnQgZm9yIGl0CgkJCQlpZiAoIGpRdWVyeS5ldmVudC5nbG9iYWxbIHR5cGUgXSApIHsKCQkJCQkvLyBYWFggVGhpcyBjb2RlIHNtZWxscyB0ZXJyaWJsZS4gZXZlbnQuanMgc2hvdWxkIG5vdCBiZSBkaXJlY3RseQoJCQkJCS8vIGluc3BlY3RpbmcgdGhlIGRhdGEgY2FjaGUKCQkJCQlqUXVlcnkuZWFjaCggalF1ZXJ5LmNhY2hlLCBmdW5jdGlvbigpIHsKCQkJCQkJLy8gaW50ZXJuYWxLZXkgdmFyaWFibGUgaXMganVzdCB1c2VkIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGZpbmQKCQkJCQkJLy8gYW5kIHBvdGVudGlhbGx5IGNoYW5nZSB0aGlzIHN0dWZmIGxhdGVyOyBjdXJyZW50bHkgaXQganVzdAoJCQkJCQkvLyBwb2ludHMgdG8galF1ZXJ5LmV4cGFuZG8KCQkJCQkJdmFyIGludGVybmFsS2V5ID0galF1ZXJ5LmV4cGFuZG8sCgkJCQkJCQlpbnRlcm5hbENhY2hlID0gdGhpc1sgaW50ZXJuYWxLZXkgXTsKCQkJCQkJaWYgKCBpbnRlcm5hbENhY2hlICYmIGludGVybmFsQ2FjaGUuZXZlbnRzICYmIGludGVybmFsQ2FjaGUuZXZlbnRzWyB0eXBlIF0gKSB7CgkJCQkJCQlqUXVlcnkuZXZlbnQudHJpZ2dlciggZXZlbnQsIGRhdGEsIGludGVybmFsQ2FjaGUuaGFuZGxlLmVsZW0gKTsKCQkJCQkJfQoJCQkJCX0pOwoJCQkJfQoJCQl9CgoJCQkvLyBIYW5kbGUgdHJpZ2dlcmluZyBhIHNpbmdsZSBlbGVtZW50CgoJCQkvLyBkb24ndCBkbyBldmVudHMgb24gdGV4dCBhbmQgY29tbWVudCBub2RlcwoJCQlpZiAoICFlbGVtIHx8IGVsZW0ubm9kZVR5cGUgPT09IDMgfHwgZWxlbS5ub2RlVHlwZSA9PT0gOCApIHsKCQkJCXJldHVybiB1bmRlZmluZWQ7CgkJCX0KCgkJCS8vIENsZWFuIHVwIGluIGNhc2UgaXQgaXMgcmV1c2VkCgkJCWV2ZW50LnJlc3VsdCA9IHVuZGVmaW5lZDsKCQkJZXZlbnQudGFyZ2V0ID0gZWxlbTsKCgkJCS8vIENsb25lIHRoZSBpbmNvbWluZyBkYXRhLCBpZiBhbnkKCQkJZGF0YSA9IGpRdWVyeS5tYWtlQXJyYXkoIGRhdGEgKTsKCQkJZGF0YS51bnNoaWZ0KCBldmVudCApOwoJCX0KCgkJZXZlbnQuY3VycmVudFRhcmdldCA9IGVsZW07CgoJCS8vIFRyaWdnZXIgdGhlIGV2ZW50LCBpdCBpcyBhc3N1bWVkIHRoYXQgImhhbmRsZSIgaXMgYSBmdW5jdGlvbgoJCXZhciBoYW5kbGUgPSBqUXVlcnkuX2RhdGEoIGVsZW0sICJoYW5kbGUiICk7CgoJCWlmICggaGFuZGxlICkgewoJCQloYW5kbGUuYXBwbHkoIGVsZW0sIGRhdGEgKTsKCQl9CgoJCXZhciBwYXJlbnQgPSBlbGVtLnBhcmVudE5vZGUgfHwgZWxlbS5vd25lckRvY3VtZW50OwoKCQkvLyBUcmlnZ2VyIGFuIGlubGluZSBib3VuZCBzY3JpcHQKCQl0cnkgewoJCQlpZiAoICEoZWxlbSAmJiBlbGVtLm5vZGVOYW1lICYmIGpRdWVyeS5ub0RhdGFbZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSkgKSB7CgkJCQlpZiAoIGVsZW1bICJvbiIgKyB0eXBlIF0gJiYgZWxlbVsgIm9uIiArIHR5cGUgXS5hcHBseSggZWxlbSwgZGF0YSApID09PSBmYWxzZSApIHsKCQkJCQlldmVudC5yZXN1bHQgPSBmYWxzZTsKCQkJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOwoJCQkJfQoJCQl9CgoJCS8vIHByZXZlbnQgSUUgZnJvbSB0aHJvd2luZyBhbiBlcnJvciBmb3Igc29tZSBlbGVtZW50cyB3aXRoIHNvbWUgZXZlbnQgdHlwZXMsIHNlZSAjMzUzMwoJCX0gY2F0Y2ggKGlubGluZUVycm9yKSB7fQoKCQlpZiAoICFldmVudC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpICYmIHBhcmVudCApIHsKCQkJalF1ZXJ5LmV2ZW50LnRyaWdnZXIoIGV2ZW50LCBkYXRhLCBwYXJlbnQsIHRydWUgKTsKCgkJfSBlbHNlIGlmICggIWV2ZW50LmlzRGVmYXVsdFByZXZlbnRlZCgpICkgewoJCQl2YXIgb2xkLAoJCQkJdGFyZ2V0ID0gZXZlbnQudGFyZ2V0LAoJCQkJdGFyZ2V0VHlwZSA9IHR5cGUucmVwbGFjZSggcm5hbWVzcGFjZXMsICIiICksCgkJCQlpc0NsaWNrID0galF1ZXJ5Lm5vZGVOYW1lKCB0YXJnZXQsICJhIiApICYmIHRhcmdldFR5cGUgPT09ICJjbGljayIsCgkJCQlzcGVjaWFsID0galF1ZXJ5LmV2ZW50LnNwZWNpYWxbIHRhcmdldFR5cGUgXSB8fCB7fTsKCgkJCWlmICggKCFzcGVjaWFsLl9kZWZhdWx0IHx8IHNwZWNpYWwuX2RlZmF1bHQuY2FsbCggZWxlbSwgZXZlbnQgKSA9PT0gZmFsc2UpICYmCgkJCQkhaXNDbGljayAmJiAhKHRhcmdldCAmJiB0YXJnZXQubm9kZU5hbWUgJiYgalF1ZXJ5Lm5vRGF0YVt0YXJnZXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pICkgewoKCQkJCXRyeSB7CgkJCQkJaWYgKCB0YXJnZXRbIHRhcmdldFR5cGUgXSApIHsKCQkJCQkJLy8gTWFrZSBzdXJlIHRoYXQgd2UgZG9uJ3QgYWNjaWRlbnRhbGx5IHJlLXRyaWdnZXIgdGhlIG9uRk9PIGV2ZW50cwoJCQkJCQlvbGQgPSB0YXJnZXRbICJvbiIgKyB0YXJnZXRUeXBlIF07CgoJCQkJCQlpZiAoIG9sZCApIHsKCQkJCQkJCXRhcmdldFsgIm9uIiArIHRhcmdldFR5cGUgXSA9IG51bGw7CgkJCQkJCX0KCgkJCQkJCWpRdWVyeS5ldmVudC50cmlnZ2VyZWQgPSB0cnVlOwoJCQkJCQl0YXJnZXRbIHRhcmdldFR5cGUgXSgpOwoJCQkJCX0KCgkJCQkvLyBwcmV2ZW50IElFIGZyb20gdGhyb3dpbmcgYW4gZXJyb3IgZm9yIHNvbWUgZWxlbWVudHMgd2l0aCBzb21lIGV2ZW50IHR5cGVzLCBzZWUgIzM1MzMKCQkJCX0gY2F0Y2ggKHRyaWdnZXJFcnJvcikge30KCgkJCQlpZiAoIG9sZCApIHsKCQkJCQl0YXJnZXRbICJvbiIgKyB0YXJnZXRUeXBlIF0gPSBvbGQ7CgkJCQl9CgoJCQkJalF1ZXJ5LmV2ZW50LnRyaWdnZXJlZCA9IGZhbHNlOwoJCQl9CgkJfQoJfSwKCgloYW5kbGU6IGZ1bmN0aW9uKCBldmVudCApIHsKCQl2YXIgYWxsLCBoYW5kbGVycywgbmFtZXNwYWNlcywgbmFtZXNwYWNlX3JlLCBldmVudHMsCgkJCW5hbWVzcGFjZV9zb3J0ID0gW10sCgkJCWFyZ3MgPSBqUXVlcnkubWFrZUFycmF5KCBhcmd1bWVudHMgKTsKCgkJZXZlbnQgPSBhcmdzWzBdID0galF1ZXJ5LmV2ZW50LmZpeCggZXZlbnQgfHwgd2luZG93LmV2ZW50ICk7CgkJZXZlbnQuY3VycmVudFRhcmdldCA9IHRoaXM7CgoJCS8vIE5hbWVzcGFjZWQgZXZlbnQgaGFuZGxlcnMKCQlhbGwgPSBldmVudC50eXBlLmluZGV4T2YoIi4iKSA8IDAgJiYgIWV2ZW50LmV4Y2x1c2l2ZTsKCgkJaWYgKCAhYWxsICkgewoJCQluYW1lc3BhY2VzID0gZXZlbnQudHlwZS5zcGxpdCgiLiIpOwoJCQlldmVudC50eXBlID0gbmFtZXNwYWNlcy5zaGlmdCgpOwoJCQluYW1lc3BhY2Vfc29ydCA9IG5hbWVzcGFjZXMuc2xpY2UoMCkuc29ydCgpOwoJCQluYW1lc3BhY2VfcmUgPSBuZXcgUmVnRXhwKCIoXnxcXC4pIiArIG5hbWVzcGFjZV9zb3J0LmpvaW4oIlxcLig/Oi4qXFwuKT8iKSArICIoXFwufCQpIik7CgkJfQoKCQlldmVudC5uYW1lc3BhY2UgPSBldmVudC5uYW1lc3BhY2UgfHwgbmFtZXNwYWNlX3NvcnQuam9pbigiLiIpOwoKCQlldmVudHMgPSBqUXVlcnkuX2RhdGEodGhpcywgImV2ZW50cyIpOwoKCQloYW5kbGVycyA9IChldmVudHMgfHwge30pWyBldmVudC50eXBlIF07CgoJCWlmICggZXZlbnRzICYmIGhhbmRsZXJzICkgewoJCQkvLyBDbG9uZSB0aGUgaGFuZGxlcnMgdG8gcHJldmVudCBtYW5pcHVsYXRpb24KCQkJaGFuZGxlcnMgPSBoYW5kbGVycy5zbGljZSgwKTsKCgkJCWZvciAoIHZhciBqID0gMCwgbCA9IGhhbmRsZXJzLmxlbmd0aDsgaiA8IGw7IGorKyApIHsKCQkJCXZhciBoYW5kbGVPYmogPSBoYW5kbGVyc1sgaiBdOwoKCQkJCS8vIEZpbHRlciB0aGUgZnVuY3Rpb25zIGJ5IGNsYXNzCgkJCQlpZiAoIGFsbCB8fCBuYW1lc3BhY2VfcmUudGVzdCggaGFuZGxlT2JqLm5hbWVzcGFjZSApICkgewoJCQkJCS8vIFBhc3MgaW4gYSByZWZlcmVuY2UgdG8gdGhlIGhhbmRsZXIgZnVuY3Rpb24gaXRzZWxmCgkJCQkJLy8gU28gdGhhdCB3ZSBjYW4gbGF0ZXIgcmVtb3ZlIGl0CgkJCQkJZXZlbnQuaGFuZGxlciA9IGhhbmRsZU9iai5oYW5kbGVyOwoJCQkJCWV2ZW50LmRhdGEgPSBoYW5kbGVPYmouZGF0YTsKCQkJCQlldmVudC5oYW5kbGVPYmogPSBoYW5kbGVPYmo7CgoJCQkJCXZhciByZXQgPSBoYW5kbGVPYmouaGFuZGxlci5hcHBseSggdGhpcywgYXJncyApOwoKCQkJCQlpZiAoIHJldCAhPT0gdW5kZWZpbmVkICkgewoJCQkJCQlldmVudC5yZXN1bHQgPSByZXQ7CgkJCQkJCWlmICggcmV0ID09PSBmYWxzZSApIHsKCQkJCQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7CgkJCQkJCQlldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKCQkJCQkJfQoJCQkJCX0KCgkJCQkJaWYgKCBldmVudC5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpICkgewoJCQkJCQlicmVhazsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgoJCXJldHVybiBldmVudC5yZXN1bHQ7Cgl9LAoKCXByb3BzOiAiYWx0S2V5IGF0dHJDaGFuZ2UgYXR0ck5hbWUgYnViYmxlcyBidXR0b24gY2FuY2VsYWJsZSBjaGFyQ29kZSBjbGllbnRYIGNsaWVudFkgY3RybEtleSBjdXJyZW50VGFyZ2V0IGRhdGEgZGV0YWlsIGV2ZW50UGhhc2UgZnJvbUVsZW1lbnQgaGFuZGxlciBrZXlDb2RlIGxheWVyWCBsYXllclkgbWV0YUtleSBuZXdWYWx1ZSBvZmZzZXRYIG9mZnNldFkgcGFnZVggcGFnZVkgcHJldlZhbHVlIHJlbGF0ZWROb2RlIHJlbGF0ZWRUYXJnZXQgc2NyZWVuWCBzY3JlZW5ZIHNoaWZ0S2V5IHNyY0VsZW1lbnQgdGFyZ2V0IHRvRWxlbWVudCB2aWV3IHdoZWVsRGVsdGEgd2hpY2giLnNwbGl0KCIgIiksCgoJZml4OiBmdW5jdGlvbiggZXZlbnQgKSB7CgkJaWYgKCBldmVudFsgalF1ZXJ5LmV4cGFuZG8gXSApIHsKCQkJcmV0dXJuIGV2ZW50OwoJCX0KCgkJLy8gc3RvcmUgYSBjb3B5IG9mIHRoZSBvcmlnaW5hbCBldmVudCBvYmplY3QKCQkvLyBhbmQgImNsb25lIiB0byBzZXQgcmVhZC1vbmx5IHByb3BlcnRpZXMKCQl2YXIgb3JpZ2luYWxFdmVudCA9IGV2ZW50OwoJCWV2ZW50ID0galF1ZXJ5LkV2ZW50KCBvcmlnaW5hbEV2ZW50ICk7CgoJCWZvciAoIHZhciBpID0gdGhpcy5wcm9wcy5sZW5ndGgsIHByb3A7IGk7ICkgewoJCQlwcm9wID0gdGhpcy5wcm9wc1sgLS1pIF07CgkJCWV2ZW50WyBwcm9wIF0gPSBvcmlnaW5hbEV2ZW50WyBwcm9wIF07CgkJfQoKCQkvLyBGaXggdGFyZ2V0IHByb3BlcnR5LCBpZiBuZWNlc3NhcnkKCQlpZiAoICFldmVudC50YXJnZXQgKSB7CgkJCS8vIEZpeGVzICMxOTI1IHdoZXJlIHNyY0VsZW1lbnQgbWlnaHQgbm90IGJlIGRlZmluZWQgZWl0aGVyCgkJCWV2ZW50LnRhcmdldCA9IGV2ZW50LnNyY0VsZW1lbnQgfHwgZG9jdW1lbnQ7CgkJfQoKCQkvLyBjaGVjayBpZiB0YXJnZXQgaXMgYSB0ZXh0bm9kZSAoc2FmYXJpKQoJCWlmICggZXZlbnQudGFyZ2V0Lm5vZGVUeXBlID09PSAzICkgewoJCQlldmVudC50YXJnZXQgPSBldmVudC50YXJnZXQucGFyZW50Tm9kZTsKCQl9CgoJCS8vIEFkZCByZWxhdGVkVGFyZ2V0LCBpZiBuZWNlc3NhcnkKCQlpZiAoICFldmVudC5yZWxhdGVkVGFyZ2V0ICYmIGV2ZW50LmZyb21FbGVtZW50ICkgewoJCQlldmVudC5yZWxhdGVkVGFyZ2V0ID0gZXZlbnQuZnJvbUVsZW1lbnQgPT09IGV2ZW50LnRhcmdldCA/IGV2ZW50LnRvRWxlbWVudCA6IGV2ZW50LmZyb21FbGVtZW50OwoJCX0KCgkJLy8gQ2FsY3VsYXRlIHBhZ2VYL1kgaWYgbWlzc2luZyBhbmQgY2xpZW50WC9ZIGF2YWlsYWJsZQoJCWlmICggZXZlbnQucGFnZVggPT0gbnVsbCAmJiBldmVudC5jbGllbnRYICE9IG51bGwgKSB7CgkJCXZhciBkb2MgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsCgkJCQlib2R5ID0gZG9jdW1lbnQuYm9keTsKCgkJCWV2ZW50LnBhZ2VYID0gZXZlbnQuY2xpZW50WCArIChkb2MgJiYgZG9jLnNjcm9sbExlZnQgfHwgYm9keSAmJiBib2R5LnNjcm9sbExlZnQgfHwgMCkgLSAoZG9jICYmIGRvYy5jbGllbnRMZWZ0IHx8IGJvZHkgJiYgYm9keS5jbGllbnRMZWZ0IHx8IDApOwoJCQlldmVudC5wYWdlWSA9IGV2ZW50LmNsaWVudFkgKyAoZG9jICYmIGRvYy5zY3JvbGxUb3AgIHx8IGJvZHkgJiYgYm9keS5zY3JvbGxUb3AgIHx8IDApIC0gKGRvYyAmJiBkb2MuY2xpZW50VG9wICB8fCBib2R5ICYmIGJvZHkuY2xpZW50VG9wICB8fCAwKTsKCQl9CgoJCS8vIEFkZCB3aGljaCBmb3Iga2V5IGV2ZW50cwoJCWlmICggZXZlbnQud2hpY2ggPT0gbnVsbCAmJiAoZXZlbnQuY2hhckNvZGUgIT0gbnVsbCB8fCBldmVudC5rZXlDb2RlICE9IG51bGwpICkgewoJCQlldmVudC53aGljaCA9IGV2ZW50LmNoYXJDb2RlICE9IG51bGwgPyBldmVudC5jaGFyQ29kZSA6IGV2ZW50LmtleUNvZGU7CgkJfQoKCQkvLyBBZGQgbWV0YUtleSB0byBub24tTWFjIGJyb3dzZXJzICh1c2UgY3RybCBmb3IgUEMncyBhbmQgTWV0YSBmb3IgTWFjcykKCQlpZiAoICFldmVudC5tZXRhS2V5ICYmIGV2ZW50LmN0cmxLZXkgKSB7CgkJCWV2ZW50Lm1ldGFLZXkgPSBldmVudC5jdHJsS2V5OwoJCX0KCgkJLy8gQWRkIHdoaWNoIGZvciBjbGljazogMSA9PT0gbGVmdDsgMiA9PT0gbWlkZGxlOyAzID09PSByaWdodAoJCS8vIE5vdGU6IGJ1dHRvbiBpcyBub3Qgbm9ybWFsaXplZCwgc28gZG9uJ3QgdXNlIGl0CgkJaWYgKCAhZXZlbnQud2hpY2ggJiYgZXZlbnQuYnV0dG9uICE9PSB1bmRlZmluZWQgKSB7CgkJCWV2ZW50LndoaWNoID0gKGV2ZW50LmJ1dHRvbiAmIDEgPyAxIDogKCBldmVudC5idXR0b24gJiAyID8gMyA6ICggZXZlbnQuYnV0dG9uICYgNCA/IDIgOiAwICkgKSk7CgkJfQoKCQlyZXR1cm4gZXZlbnQ7Cgl9LAoKCS8vIERlcHJlY2F0ZWQsIHVzZSBqUXVlcnkuZ3VpZCBpbnN0ZWFkCglndWlkOiAxRTgsCgoJLy8gRGVwcmVjYXRlZCwgdXNlIGpRdWVyeS5wcm94eSBpbnN0ZWFkCglwcm94eTogalF1ZXJ5LnByb3h5LAoKCXNwZWNpYWw6IHsKCQlyZWFkeTogewoJCQkvLyBNYWtlIHN1cmUgdGhlIHJlYWR5IGV2ZW50IGlzIHNldHVwCgkJCXNldHVwOiBqUXVlcnkuYmluZFJlYWR5LAoJCQl0ZWFyZG93bjogalF1ZXJ5Lm5vb3AKCQl9LAoKCQlsaXZlOiB7CgkJCWFkZDogZnVuY3Rpb24oIGhhbmRsZU9iaiApIHsKCQkJCWpRdWVyeS5ldmVudC5hZGQoIHRoaXMsCgkJCQkJbGl2ZUNvbnZlcnQoIGhhbmRsZU9iai5vcmlnVHlwZSwgaGFuZGxlT2JqLnNlbGVjdG9yICksCgkJCQkJalF1ZXJ5LmV4dGVuZCh7fSwgaGFuZGxlT2JqLCB7aGFuZGxlcjogbGl2ZUhhbmRsZXIsIGd1aWQ6IGhhbmRsZU9iai5oYW5kbGVyLmd1aWR9KSApOwoJCQl9LAoKCQkJcmVtb3ZlOiBmdW5jdGlvbiggaGFuZGxlT2JqICkgewoJCQkJalF1ZXJ5LmV2ZW50LnJlbW92ZSggdGhpcywgbGl2ZUNvbnZlcnQoIGhhbmRsZU9iai5vcmlnVHlwZSwgaGFuZGxlT2JqLnNlbGVjdG9yICksIGhhbmRsZU9iaiApOwoJCQl9CgkJfSwKCgkJYmVmb3JldW5sb2FkOiB7CgkJCXNldHVwOiBmdW5jdGlvbiggZGF0YSwgbmFtZXNwYWNlcywgZXZlbnRIYW5kbGUgKSB7CgkJCQkvLyBXZSBvbmx5IHdhbnQgdG8gZG8gdGhpcyBzcGVjaWFsIGNhc2Ugb24gd2luZG93cwoJCQkJaWYgKCBqUXVlcnkuaXNXaW5kb3coIHRoaXMgKSApIHsKCQkJCQl0aGlzLm9uYmVmb3JldW5sb2FkID0gZXZlbnRIYW5kbGU7CgkJCQl9CgkJCX0sCgoJCQl0ZWFyZG93bjogZnVuY3Rpb24oIG5hbWVzcGFjZXMsIGV2ZW50SGFuZGxlICkgewoJCQkJaWYgKCB0aGlzLm9uYmVmb3JldW5sb2FkID09PSBldmVudEhhbmRsZSApIHsKCQkJCQl0aGlzLm9uYmVmb3JldW5sb2FkID0gbnVsbDsKCQkJCX0KCQkJfQoJCX0KCX0KfTsKCmpRdWVyeS5yZW1vdmVFdmVudCA9IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIgPwoJZnVuY3Rpb24oIGVsZW0sIHR5cGUsIGhhbmRsZSApIHsKCQlpZiAoIGVsZW0ucmVtb3ZlRXZlbnRMaXN0ZW5lciApIHsKCQkJZWxlbS5yZW1vdmVFdmVudExpc3RlbmVyKCB0eXBlLCBoYW5kbGUsIGZhbHNlICk7CgkJfQoJfSA6CglmdW5jdGlvbiggZWxlbSwgdHlwZSwgaGFuZGxlICkgewoJCWlmICggZWxlbS5kZXRhY2hFdmVudCApIHsKCQkJZWxlbS5kZXRhY2hFdmVudCggIm9uIiArIHR5cGUsIGhhbmRsZSApOwoJCX0KCX07CgpqUXVlcnkuRXZlbnQgPSBmdW5jdGlvbiggc3JjICkgewoJLy8gQWxsb3cgaW5zdGFudGlhdGlvbiB3aXRob3V0IHRoZSAnbmV3JyBrZXl3b3JkCglpZiAoICF0aGlzLnByZXZlbnREZWZhdWx0ICkgewoJCXJldHVybiBuZXcgalF1ZXJ5LkV2ZW50KCBzcmMgKTsKCX0KCgkvLyBFdmVudCBvYmplY3QKCWlmICggc3JjICYmIHNyYy50eXBlICkgewoJCXRoaXMub3JpZ2luYWxFdmVudCA9IHNyYzsKCQl0aGlzLnR5cGUgPSBzcmMudHlwZTsKCgkJLy8gRXZlbnRzIGJ1YmJsaW5nIHVwIHRoZSBkb2N1bWVudCBtYXkgaGF2ZSBiZWVuIG1hcmtlZCBhcyBwcmV2ZW50ZWQKCQkvLyBieSBhIGhhbmRsZXIgbG93ZXIgZG93biB0aGUgdHJlZTsgcmVmbGVjdCB0aGUgY29ycmVjdCB2YWx1ZS4KCQl0aGlzLmlzRGVmYXVsdFByZXZlbnRlZCA9IChzcmMuZGVmYXVsdFByZXZlbnRlZCB8fCBzcmMucmV0dXJuVmFsdWUgPT09IGZhbHNlIHx8CgkJCXNyYy5nZXRQcmV2ZW50RGVmYXVsdCAmJiBzcmMuZ2V0UHJldmVudERlZmF1bHQoKSkgPyByZXR1cm5UcnVlIDogcmV0dXJuRmFsc2U7CgoJLy8gRXZlbnQgdHlwZQoJfSBlbHNlIHsKCQl0aGlzLnR5cGUgPSBzcmM7Cgl9CgoJLy8gdGltZVN0YW1wIGlzIGJ1Z2d5IGZvciBzb21lIGV2ZW50cyBvbiBGaXJlZm94KCMzODQzKQoJLy8gU28gd2Ugd29uJ3QgcmVseSBvbiB0aGUgbmF0aXZlIHZhbHVlCgl0aGlzLnRpbWVTdGFtcCA9IGpRdWVyeS5ub3coKTsKCgkvLyBNYXJrIGl0IGFzIGZpeGVkCgl0aGlzWyBqUXVlcnkuZXhwYW5kbyBdID0gdHJ1ZTsKfTsKCmZ1bmN0aW9uIHJldHVybkZhbHNlKCkgewoJcmV0dXJuIGZhbHNlOwp9CmZ1bmN0aW9uIHJldHVyblRydWUoKSB7CglyZXR1cm4gdHJ1ZTsKfQoKLy8galF1ZXJ5LkV2ZW50IGlzIGJhc2VkIG9uIERPTTMgRXZlbnRzIGFzIHNwZWNpZmllZCBieSB0aGUgRUNNQVNjcmlwdCBMYW5ndWFnZSBCaW5kaW5nCi8vIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDMvV0QtRE9NLUxldmVsLTMtRXZlbnRzLTIwMDMwMzMxL2VjbWEtc2NyaXB0LWJpbmRpbmcuaHRtbApqUXVlcnkuRXZlbnQucHJvdG90eXBlID0gewoJcHJldmVudERlZmF1bHQ6IGZ1bmN0aW9uKCkgewoJCXRoaXMuaXNEZWZhdWx0UHJldmVudGVkID0gcmV0dXJuVHJ1ZTsKCgkJdmFyIGUgPSB0aGlzLm9yaWdpbmFsRXZlbnQ7CgkJaWYgKCAhZSApIHsKCQkJcmV0dXJuOwoJCX0KCgkJLy8gaWYgcHJldmVudERlZmF1bHQgZXhpc3RzIHJ1biBpdCBvbiB0aGUgb3JpZ2luYWwgZXZlbnQKCQlpZiAoIGUucHJldmVudERlZmF1bHQgKSB7CgkJCWUucHJldmVudERlZmF1bHQoKTsKCgkJLy8gb3RoZXJ3aXNlIHNldCB0aGUgcmV0dXJuVmFsdWUgcHJvcGVydHkgb2YgdGhlIG9yaWdpbmFsIGV2ZW50IHRvIGZhbHNlIChJRSkKCQl9IGVsc2UgewoJCQllLnJldHVyblZhbHVlID0gZmFsc2U7CgkJfQoJfSwKCXN0b3BQcm9wYWdhdGlvbjogZnVuY3Rpb24oKSB7CgkJdGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZCA9IHJldHVyblRydWU7CgoJCXZhciBlID0gdGhpcy5vcmlnaW5hbEV2ZW50OwoJCWlmICggIWUgKSB7CgkJCXJldHVybjsKCQl9CgkJLy8gaWYgc3RvcFByb3BhZ2F0aW9uIGV4aXN0cyBydW4gaXQgb24gdGhlIG9yaWdpbmFsIGV2ZW50CgkJaWYgKCBlLnN0b3BQcm9wYWdhdGlvbiApIHsKCQkJZS5zdG9wUHJvcGFnYXRpb24oKTsKCQl9CgkJLy8gb3RoZXJ3aXNlIHNldCB0aGUgY2FuY2VsQnViYmxlIHByb3BlcnR5IG9mIHRoZSBvcmlnaW5hbCBldmVudCB0byB0cnVlIChJRSkKCQllLmNhbmNlbEJ1YmJsZSA9IHRydWU7Cgl9LAoJc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOiBmdW5jdGlvbigpIHsKCQl0aGlzLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkID0gcmV0dXJuVHJ1ZTsKCQl0aGlzLnN0b3BQcm9wYWdhdGlvbigpOwoJfSwKCWlzRGVmYXVsdFByZXZlbnRlZDogcmV0dXJuRmFsc2UsCglpc1Byb3BhZ2F0aW9uU3RvcHBlZDogcmV0dXJuRmFsc2UsCglpc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZDogcmV0dXJuRmFsc2UKfTsKCi8vIENoZWNrcyBpZiBhbiBldmVudCBoYXBwZW5lZCBvbiBhbiBlbGVtZW50IHdpdGhpbiBhbm90aGVyIGVsZW1lbnQKLy8gVXNlZCBpbiBqUXVlcnkuZXZlbnQuc3BlY2lhbC5tb3VzZWVudGVyIGFuZCBtb3VzZWxlYXZlIGhhbmRsZXJzCnZhciB3aXRoaW5FbGVtZW50ID0gZnVuY3Rpb24oIGV2ZW50ICkgewoJLy8gQ2hlY2sgaWYgbW91c2Uob3ZlcnxvdXQpIGFyZSBzdGlsbCB3aXRoaW4gdGhlIHNhbWUgcGFyZW50IGVsZW1lbnQKCXZhciBwYXJlbnQgPSBldmVudC5yZWxhdGVkVGFyZ2V0OwoKCS8vIEZpcmVmb3ggc29tZXRpbWVzIGFzc2lnbnMgcmVsYXRlZFRhcmdldCBhIFhVTCBlbGVtZW50CgkvLyB3aGljaCB3ZSBjYW5ub3QgYWNjZXNzIHRoZSBwYXJlbnROb2RlIHByb3BlcnR5IG9mCgl0cnkgewoKCQkvLyBDaHJvbWUgZG9lcyBzb21ldGhpbmcgc2ltaWxhciwgdGhlIHBhcmVudE5vZGUgcHJvcGVydHkKCQkvLyBjYW4gYmUgYWNjZXNzZWQgYnV0IGlzIG51bGwuCgkJaWYgKCBwYXJlbnQgIT09IGRvY3VtZW50ICYmICFwYXJlbnQucGFyZW50Tm9kZSApIHsKCQkJcmV0dXJuOwoJCX0KCQkvLyBUcmF2ZXJzZSB1cCB0aGUgdHJlZQoJCXdoaWxlICggcGFyZW50ICYmIHBhcmVudCAhPT0gdGhpcyApIHsKCQkJcGFyZW50ID0gcGFyZW50LnBhcmVudE5vZGU7CgkJfQoKCQlpZiAoIHBhcmVudCAhPT0gdGhpcyApIHsKCQkJLy8gc2V0IHRoZSBjb3JyZWN0IGV2ZW50IHR5cGUKCQkJZXZlbnQudHlwZSA9IGV2ZW50LmRhdGE7CgoJCQkvLyBoYW5kbGUgZXZlbnQgaWYgd2UgYWN0dWFsbHkganVzdCBtb3VzZWQgb24gdG8gYSBub24gc3ViLWVsZW1lbnQKCQkJalF1ZXJ5LmV2ZW50LmhhbmRsZS5hcHBseSggdGhpcywgYXJndW1lbnRzICk7CgkJfQoKCS8vIGFzc3VtaW5nIHdlJ3ZlIGxlZnQgdGhlIGVsZW1lbnQgc2luY2Ugd2UgbW9zdCBsaWtlbHkgbW91c2Vkb3ZlciBhIHh1bCBlbGVtZW50Cgl9IGNhdGNoKGUpIHsgfQp9LAoKLy8gSW4gY2FzZSBvZiBldmVudCBkZWxlZ2F0aW9uLCB3ZSBvbmx5IG5lZWQgdG8gcmVuYW1lIHRoZSBldmVudC50eXBlLAovLyBsaXZlSGFuZGxlciB3aWxsIHRha2UgY2FyZSBvZiB0aGUgcmVzdC4KZGVsZWdhdGUgPSBmdW5jdGlvbiggZXZlbnQgKSB7CglldmVudC50eXBlID0gZXZlbnQuZGF0YTsKCWpRdWVyeS5ldmVudC5oYW5kbGUuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApOwp9OwoKLy8gQ3JlYXRlIG1vdXNlZW50ZXIgYW5kIG1vdXNlbGVhdmUgZXZlbnRzCmpRdWVyeS5lYWNoKHsKCW1vdXNlZW50ZXI6ICJtb3VzZW92ZXIiLAoJbW91c2VsZWF2ZTogIm1vdXNlb3V0Igp9LCBmdW5jdGlvbiggb3JpZywgZml4ICkgewoJalF1ZXJ5LmV2ZW50LnNwZWNpYWxbIG9yaWcgXSA9IHsKCQlzZXR1cDogZnVuY3Rpb24oIGRhdGEgKSB7CgkJCWpRdWVyeS5ldmVudC5hZGQoIHRoaXMsIGZpeCwgZGF0YSAmJiBkYXRhLnNlbGVjdG9yID8gZGVsZWdhdGUgOiB3aXRoaW5FbGVtZW50LCBvcmlnICk7CgkJfSwKCQl0ZWFyZG93bjogZnVuY3Rpb24oIGRhdGEgKSB7CgkJCWpRdWVyeS5ldmVudC5yZW1vdmUoIHRoaXMsIGZpeCwgZGF0YSAmJiBkYXRhLnNlbGVjdG9yID8gZGVsZWdhdGUgOiB3aXRoaW5FbGVtZW50ICk7CgkJfQoJfTsKfSk7CgovLyBzdWJtaXQgZGVsZWdhdGlvbgppZiAoICFqUXVlcnkuc3VwcG9ydC5zdWJtaXRCdWJibGVzICkgewoKCWpRdWVyeS5ldmVudC5zcGVjaWFsLnN1Ym1pdCA9IHsKCQlzZXR1cDogZnVuY3Rpb24oIGRhdGEsIG5hbWVzcGFjZXMgKSB7CgkJCWlmICggdGhpcy5ub2RlTmFtZSAmJiB0aGlzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgIT09ICJmb3JtIiApIHsKCQkJCWpRdWVyeS5ldmVudC5hZGQodGhpcywgImNsaWNrLnNwZWNpYWxTdWJtaXQiLCBmdW5jdGlvbiggZSApIHsKCQkJCQl2YXIgZWxlbSA9IGUudGFyZ2V0LAoJCQkJCQl0eXBlID0gZWxlbS50eXBlOwoKCQkJCQlpZiAoICh0eXBlID09PSAic3VibWl0IiB8fCB0eXBlID09PSAiaW1hZ2UiKSAmJiBqUXVlcnkoIGVsZW0gKS5jbG9zZXN0KCJmb3JtIikubGVuZ3RoICkgewoJCQkJCQl0cmlnZ2VyKCAic3VibWl0IiwgdGhpcywgYXJndW1lbnRzICk7CgkJCQkJfQoJCQkJfSk7CgoJCQkJalF1ZXJ5LmV2ZW50LmFkZCh0aGlzLCAia2V5cHJlc3Muc3BlY2lhbFN1Ym1pdCIsIGZ1bmN0aW9uKCBlICkgewoJCQkJCXZhciBlbGVtID0gZS50YXJnZXQsCgkJCQkJCXR5cGUgPSBlbGVtLnR5cGU7CgoJCQkJCWlmICggKHR5cGUgPT09ICJ0ZXh0IiB8fCB0eXBlID09PSAicGFzc3dvcmQiKSAmJiBqUXVlcnkoIGVsZW0gKS5jbG9zZXN0KCJmb3JtIikubGVuZ3RoICYmIGUua2V5Q29kZSA9PT0gMTMgKSB7CgkJCQkJCXRyaWdnZXIoICJzdWJtaXQiLCB0aGlzLCBhcmd1bWVudHMgKTsKCQkJCQl9CgkJCQl9KTsKCgkJCX0gZWxzZSB7CgkJCQlyZXR1cm4gZmFsc2U7CgkJCX0KCQl9LAoKCQl0ZWFyZG93bjogZnVuY3Rpb24oIG5hbWVzcGFjZXMgKSB7CgkJCWpRdWVyeS5ldmVudC5yZW1vdmUoIHRoaXMsICIuc3BlY2lhbFN1Ym1pdCIgKTsKCQl9Cgl9OwoKfQoKLy8gY2hhbmdlIGRlbGVnYXRpb24sIGhhcHBlbnMgaGVyZSBzbyB3ZSBoYXZlIGJpbmQuCmlmICggIWpRdWVyeS5zdXBwb3J0LmNoYW5nZUJ1YmJsZXMgKSB7CgoJdmFyIGNoYW5nZUZpbHRlcnMsCgoJZ2V0VmFsID0gZnVuY3Rpb24oIGVsZW0gKSB7CgkJdmFyIHR5cGUgPSBlbGVtLnR5cGUsIHZhbCA9IGVsZW0udmFsdWU7CgoJCWlmICggdHlwZSA9PT0gInJhZGlvIiB8fCB0eXBlID09PSAiY2hlY2tib3giICkgewoJCQl2YWwgPSBlbGVtLmNoZWNrZWQ7CgoJCX0gZWxzZSBpZiAoIHR5cGUgPT09ICJzZWxlY3QtbXVsdGlwbGUiICkgewoJCQl2YWwgPSBlbGVtLnNlbGVjdGVkSW5kZXggPiAtMSA/CgkJCQlqUXVlcnkubWFwKCBlbGVtLm9wdGlvbnMsIGZ1bmN0aW9uKCBlbGVtICkgewoJCQkJCXJldHVybiBlbGVtLnNlbGVjdGVkOwoJCQkJfSkuam9pbigiLSIpIDoKCQkJCSIiOwoKCQl9IGVsc2UgaWYgKCBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICJzZWxlY3QiICkgewoJCQl2YWwgPSBlbGVtLnNlbGVjdGVkSW5kZXg7CgkJfQoKCQlyZXR1cm4gdmFsOwoJfSwKCgl0ZXN0Q2hhbmdlID0gZnVuY3Rpb24gdGVzdENoYW5nZSggZSApIHsKCQl2YXIgZWxlbSA9IGUudGFyZ2V0LCBkYXRhLCB2YWw7CgoJCWlmICggIXJmb3JtRWxlbXMudGVzdCggZWxlbS5ub2RlTmFtZSApIHx8IGVsZW0ucmVhZE9ubHkgKSB7CgkJCXJldHVybjsKCQl9CgoJCWRhdGEgPSBqUXVlcnkuX2RhdGEoIGVsZW0sICJfY2hhbmdlX2RhdGEiICk7CgkJdmFsID0gZ2V0VmFsKGVsZW0pOwoKCQkvLyB0aGUgY3VycmVudCBkYXRhIHdpbGwgYmUgYWxzbyByZXRyaWV2ZWQgYnkgYmVmb3JlYWN0aXZhdGUKCQlpZiAoIGUudHlwZSAhPT0gImZvY3Vzb3V0IiB8fCBlbGVtLnR5cGUgIT09ICJyYWRpbyIgKSB7CgkJCWpRdWVyeS5fZGF0YSggZWxlbSwgIl9jaGFuZ2VfZGF0YSIsIHZhbCApOwoJCX0KCgkJaWYgKCBkYXRhID09PSB1bmRlZmluZWQgfHwgdmFsID09PSBkYXRhICkgewoJCQlyZXR1cm47CgkJfQoKCQlpZiAoIGRhdGEgIT0gbnVsbCB8fCB2YWwgKSB7CgkJCWUudHlwZSA9ICJjaGFuZ2UiOwoJCQllLmxpdmVGaXJlZCA9IHVuZGVmaW5lZDsKCQkJalF1ZXJ5LmV2ZW50LnRyaWdnZXIoIGUsIGFyZ3VtZW50c1sxXSwgZWxlbSApOwoJCX0KCX07CgoJalF1ZXJ5LmV2ZW50LnNwZWNpYWwuY2hhbmdlID0gewoJCWZpbHRlcnM6IHsKCQkJZm9jdXNvdXQ6IHRlc3RDaGFuZ2UsCgoJCQliZWZvcmVkZWFjdGl2YXRlOiB0ZXN0Q2hhbmdlLAoKCQkJY2xpY2s6IGZ1bmN0aW9uKCBlICkgewoJCQkJdmFyIGVsZW0gPSBlLnRhcmdldCwgdHlwZSA9IGVsZW0udHlwZTsKCgkJCQlpZiAoIHR5cGUgPT09ICJyYWRpbyIgfHwgdHlwZSA9PT0gImNoZWNrYm94IiB8fCBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICJzZWxlY3QiICkgewoJCQkJCXRlc3RDaGFuZ2UuY2FsbCggdGhpcywgZSApOwoJCQkJfQoJCQl9LAoKCQkJLy8gQ2hhbmdlIGhhcyB0byBiZSBjYWxsZWQgYmVmb3JlIHN1Ym1pdAoJCQkvLyBLZXlkb3duIHdpbGwgYmUgY2FsbGVkIGJlZm9yZSBrZXlwcmVzcywgd2hpY2ggaXMgdXNlZCBpbiBzdWJtaXQtZXZlbnQgZGVsZWdhdGlvbgoJCQlrZXlkb3duOiBmdW5jdGlvbiggZSApIHsKCQkJCXZhciBlbGVtID0gZS50YXJnZXQsIHR5cGUgPSBlbGVtLnR5cGU7CgoJCQkJaWYgKCAoZS5rZXlDb2RlID09PSAxMyAmJiBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgIT09ICJ0ZXh0YXJlYSIpIHx8CgkJCQkJKGUua2V5Q29kZSA9PT0gMzIgJiYgKHR5cGUgPT09ICJjaGVja2JveCIgfHwgdHlwZSA9PT0gInJhZGlvIikpIHx8CgkJCQkJdHlwZSA9PT0gInNlbGVjdC1tdWx0aXBsZSIgKSB7CgkJCQkJdGVzdENoYW5nZS5jYWxsKCB0aGlzLCBlICk7CgkJCQl9CgkJCX0sCgoJCQkvLyBCZWZvcmVhY3RpdmF0ZSBoYXBwZW5zIGFsc28gYmVmb3JlIHRoZSBwcmV2aW91cyBlbGVtZW50IGlzIGJsdXJyZWQKCQkJLy8gd2l0aCB0aGlzIGV2ZW50IHlvdSBjYW4ndCB0cmlnZ2VyIGEgY2hhbmdlIGV2ZW50LCBidXQgeW91IGNhbiBzdG9yZQoJCQkvLyBpbmZvcm1hdGlvbgoJCQliZWZvcmVhY3RpdmF0ZTogZnVuY3Rpb24oIGUgKSB7CgkJCQl2YXIgZWxlbSA9IGUudGFyZ2V0OwoJCQkJalF1ZXJ5Ll9kYXRhKCBlbGVtLCAiX2NoYW5nZV9kYXRhIiwgZ2V0VmFsKGVsZW0pICk7CgkJCX0KCQl9LAoKCQlzZXR1cDogZnVuY3Rpb24oIGRhdGEsIG5hbWVzcGFjZXMgKSB7CgkJCWlmICggdGhpcy50eXBlID09PSAiZmlsZSIgKSB7CgkJCQlyZXR1cm4gZmFsc2U7CgkJCX0KCgkJCWZvciAoIHZhciB0eXBlIGluIGNoYW5nZUZpbHRlcnMgKSB7CgkJCQlqUXVlcnkuZXZlbnQuYWRkKCB0aGlzLCB0eXBlICsgIi5zcGVjaWFsQ2hhbmdlIiwgY2hhbmdlRmlsdGVyc1t0eXBlXSApOwoJCQl9CgoJCQlyZXR1cm4gcmZvcm1FbGVtcy50ZXN0KCB0aGlzLm5vZGVOYW1lICk7CgkJfSwKCgkJdGVhcmRvd246IGZ1bmN0aW9uKCBuYW1lc3BhY2VzICkgewoJCQlqUXVlcnkuZXZlbnQucmVtb3ZlKCB0aGlzLCAiLnNwZWNpYWxDaGFuZ2UiICk7CgoJCQlyZXR1cm4gcmZvcm1FbGVtcy50ZXN0KCB0aGlzLm5vZGVOYW1lICk7CgkJfQoJfTsKCgljaGFuZ2VGaWx0ZXJzID0galF1ZXJ5LmV2ZW50LnNwZWNpYWwuY2hhbmdlLmZpbHRlcnM7CgoJLy8gSGFuZGxlIHdoZW4gdGhlIGlucHV0IGlzIC5mb2N1cygpJ2QKCWNoYW5nZUZpbHRlcnMuZm9jdXMgPSBjaGFuZ2VGaWx0ZXJzLmJlZm9yZWFjdGl2YXRlOwp9CgpmdW5jdGlvbiB0cmlnZ2VyKCB0eXBlLCBlbGVtLCBhcmdzICkgewoJLy8gUGlnZ3liYWNrIG9uIGEgZG9ub3IgZXZlbnQgdG8gc2ltdWxhdGUgYSBkaWZmZXJlbnQgb25lLgoJLy8gRmFrZSBvcmlnaW5hbEV2ZW50IHRvIGF2b2lkIGRvbm9yJ3Mgc3RvcFByb3BhZ2F0aW9uLCBidXQgaWYgdGhlCgkvLyBzaW11bGF0ZWQgZXZlbnQgcHJldmVudHMgZGVmYXVsdCB0aGVuIHdlIGRvIHRoZSBzYW1lIG9uIHRoZSBkb25vci4KCS8vIERvbid0IHBhc3MgYXJncyBvciByZW1lbWJlciBsaXZlRmlyZWQ7IHRoZXkgYXBwbHkgdG8gdGhlIGRvbm9yIGV2ZW50LgoJdmFyIGV2ZW50ID0galF1ZXJ5LmV4dGVuZCgge30sIGFyZ3NbIDAgXSApOwoJZXZlbnQudHlwZSA9IHR5cGU7CglldmVudC5vcmlnaW5hbEV2ZW50ID0ge307CglldmVudC5saXZlRmlyZWQgPSB1bmRlZmluZWQ7CglqUXVlcnkuZXZlbnQuaGFuZGxlLmNhbGwoIGVsZW0sIGV2ZW50ICk7CglpZiAoIGV2ZW50LmlzRGVmYXVsdFByZXZlbnRlZCgpICkgewoJCWFyZ3NbIDAgXS5wcmV2ZW50RGVmYXVsdCgpOwoJfQp9CgovLyBDcmVhdGUgImJ1YmJsaW5nIiBmb2N1cyBhbmQgYmx1ciBldmVudHMKaWYgKCBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyICkgewoJalF1ZXJ5LmVhY2goeyBmb2N1czogImZvY3VzaW4iLCBibHVyOiAiZm9jdXNvdXQiIH0sIGZ1bmN0aW9uKCBvcmlnLCBmaXggKSB7CgkJalF1ZXJ5LmV2ZW50LnNwZWNpYWxbIGZpeCBdID0gewoJCQlzZXR1cDogZnVuY3Rpb24oKSB7CgkJCQl0aGlzLmFkZEV2ZW50TGlzdGVuZXIoIG9yaWcsIGhhbmRsZXIsIHRydWUgKTsKCQkJfSwKCQkJdGVhcmRvd246IGZ1bmN0aW9uKCkgewoJCQkJdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKCBvcmlnLCBoYW5kbGVyLCB0cnVlICk7CgkJCX0KCQl9OwoKCQlmdW5jdGlvbiBoYW5kbGVyKCBlICkgewoJCQllID0galF1ZXJ5LmV2ZW50LmZpeCggZSApOwoJCQllLnR5cGUgPSBmaXg7CgkJCXJldHVybiBqUXVlcnkuZXZlbnQuaGFuZGxlLmNhbGwoIHRoaXMsIGUgKTsKCQl9Cgl9KTsKfQoKalF1ZXJ5LmVhY2goWyJiaW5kIiwgIm9uZSJdLCBmdW5jdGlvbiggaSwgbmFtZSApIHsKCWpRdWVyeS5mblsgbmFtZSBdID0gZnVuY3Rpb24oIHR5cGUsIGRhdGEsIGZuICkgewoJCS8vIEhhbmRsZSBvYmplY3QgbGl0ZXJhbHMKCQlpZiAoIHR5cGVvZiB0eXBlID09PSAib2JqZWN0IiApIHsKCQkJZm9yICggdmFyIGtleSBpbiB0eXBlICkgewoJCQkJdGhpc1sgbmFtZSBdKGtleSwgZGF0YSwgdHlwZVtrZXldLCBmbik7CgkJCX0KCQkJcmV0dXJuIHRoaXM7CgkJfQoKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCBkYXRhICkgfHwgZGF0YSA9PT0gZmFsc2UgKSB7CgkJCWZuID0gZGF0YTsKCQkJZGF0YSA9IHVuZGVmaW5lZDsKCQl9CgoJCXZhciBoYW5kbGVyID0gbmFtZSA9PT0gIm9uZSIgPyBqUXVlcnkucHJveHkoIGZuLCBmdW5jdGlvbiggZXZlbnQgKSB7CgkJCWpRdWVyeSggdGhpcyApLnVuYmluZCggZXZlbnQsIGhhbmRsZXIgKTsKCQkJcmV0dXJuIGZuLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTsKCQl9KSA6IGZuOwoKCQlpZiAoIHR5cGUgPT09ICJ1bmxvYWQiICYmIG5hbWUgIT09ICJvbmUiICkgewoJCQl0aGlzLm9uZSggdHlwZSwgZGF0YSwgZm4gKTsKCgkJfSBlbHNlIHsKCQkJZm9yICggdmFyIGkgPSAwLCBsID0gdGhpcy5sZW5ndGg7IGkgPCBsOyBpKysgKSB7CgkJCQlqUXVlcnkuZXZlbnQuYWRkKCB0aGlzW2ldLCB0eXBlLCBoYW5kbGVyLCBkYXRhICk7CgkJCX0KCQl9CgoJCXJldHVybiB0aGlzOwoJfTsKfSk7CgpqUXVlcnkuZm4uZXh0ZW5kKHsKCXVuYmluZDogZnVuY3Rpb24oIHR5cGUsIGZuICkgewoJCS8vIEhhbmRsZSBvYmplY3QgbGl0ZXJhbHMKCQlpZiAoIHR5cGVvZiB0eXBlID09PSAib2JqZWN0IiAmJiAhdHlwZS5wcmV2ZW50RGVmYXVsdCApIHsKCQkJZm9yICggdmFyIGtleSBpbiB0eXBlICkgewoJCQkJdGhpcy51bmJpbmQoa2V5LCB0eXBlW2tleV0pOwoJCQl9CgoJCX0gZWxzZSB7CgkJCWZvciAoIHZhciBpID0gMCwgbCA9IHRoaXMubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCQkJalF1ZXJ5LmV2ZW50LnJlbW92ZSggdGhpc1tpXSwgdHlwZSwgZm4gKTsKCQkJfQoJCX0KCgkJcmV0dXJuIHRoaXM7Cgl9LAoKCWRlbGVnYXRlOiBmdW5jdGlvbiggc2VsZWN0b3IsIHR5cGVzLCBkYXRhLCBmbiApIHsKCQlyZXR1cm4gdGhpcy5saXZlKCB0eXBlcywgZGF0YSwgZm4sIHNlbGVjdG9yICk7Cgl9LAoKCXVuZGVsZWdhdGU6IGZ1bmN0aW9uKCBzZWxlY3RvciwgdHlwZXMsIGZuICkgewoJCWlmICggYXJndW1lbnRzLmxlbmd0aCA9PT0gMCApIHsKCQkJCXJldHVybiB0aGlzLnVuYmluZCggImxpdmUiICk7CgoJCX0gZWxzZSB7CgkJCXJldHVybiB0aGlzLmRpZSggdHlwZXMsIG51bGwsIGZuLCBzZWxlY3RvciApOwoJCX0KCX0sCgoJdHJpZ2dlcjogZnVuY3Rpb24oIHR5cGUsIGRhdGEgKSB7CgkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJalF1ZXJ5LmV2ZW50LnRyaWdnZXIoIHR5cGUsIGRhdGEsIHRoaXMgKTsKCQl9KTsKCX0sCgoJdHJpZ2dlckhhbmRsZXI6IGZ1bmN0aW9uKCB0eXBlLCBkYXRhICkgewoJCWlmICggdGhpc1swXSApIHsKCQkJdmFyIGV2ZW50ID0galF1ZXJ5LkV2ZW50KCB0eXBlICk7CgkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7CgkJCWV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwoJCQlqUXVlcnkuZXZlbnQudHJpZ2dlciggZXZlbnQsIGRhdGEsIHRoaXNbMF0gKTsKCQkJcmV0dXJuIGV2ZW50LnJlc3VsdDsKCQl9Cgl9LAoKCXRvZ2dsZTogZnVuY3Rpb24oIGZuICkgewoJCS8vIFNhdmUgcmVmZXJlbmNlIHRvIGFyZ3VtZW50cyBmb3IgYWNjZXNzIGluIGNsb3N1cmUKCQl2YXIgYXJncyA9IGFyZ3VtZW50cywKCQkJaSA9IDE7CgoJCS8vIGxpbmsgYWxsIHRoZSBmdW5jdGlvbnMsIHNvIGFueSBvZiB0aGVtIGNhbiB1bmJpbmQgdGhpcyBjbGljayBoYW5kbGVyCgkJd2hpbGUgKCBpIDwgYXJncy5sZW5ndGggKSB7CgkJCWpRdWVyeS5wcm94eSggZm4sIGFyZ3NbIGkrKyBdICk7CgkJfQoKCQlyZXR1cm4gdGhpcy5jbGljayggalF1ZXJ5LnByb3h5KCBmbiwgZnVuY3Rpb24oIGV2ZW50ICkgewoJCQkvLyBGaWd1cmUgb3V0IHdoaWNoIGZ1bmN0aW9uIHRvIGV4ZWN1dGUKCQkJdmFyIGxhc3RUb2dnbGUgPSAoIGpRdWVyeS5fZGF0YSggdGhpcywgImxhc3RUb2dnbGUiICsgZm4uZ3VpZCApIHx8IDAgKSAlIGk7CgkJCWpRdWVyeS5fZGF0YSggdGhpcywgImxhc3RUb2dnbGUiICsgZm4uZ3VpZCwgbGFzdFRvZ2dsZSArIDEgKTsKCgkJCS8vIE1ha2Ugc3VyZSB0aGF0IGNsaWNrcyBzdG9wCgkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7CgoJCQkvLyBhbmQgZXhlY3V0ZSB0aGUgZnVuY3Rpb24KCQkJcmV0dXJuIGFyZ3NbIGxhc3RUb2dnbGUgXS5hcHBseSggdGhpcywgYXJndW1lbnRzICkgfHwgZmFsc2U7CgkJfSkpOwoJfSwKCglob3ZlcjogZnVuY3Rpb24oIGZuT3ZlciwgZm5PdXQgKSB7CgkJcmV0dXJuIHRoaXMubW91c2VlbnRlciggZm5PdmVyICkubW91c2VsZWF2ZSggZm5PdXQgfHwgZm5PdmVyICk7Cgl9Cn0pOwoKdmFyIGxpdmVNYXAgPSB7Cglmb2N1czogImZvY3VzaW4iLAoJYmx1cjogImZvY3Vzb3V0IiwKCW1vdXNlZW50ZXI6ICJtb3VzZW92ZXIiLAoJbW91c2VsZWF2ZTogIm1vdXNlb3V0Igp9OwoKalF1ZXJ5LmVhY2goWyJsaXZlIiwgImRpZSJdLCBmdW5jdGlvbiggaSwgbmFtZSApIHsKCWpRdWVyeS5mblsgbmFtZSBdID0gZnVuY3Rpb24oIHR5cGVzLCBkYXRhLCBmbiwgb3JpZ1NlbGVjdG9yIC8qIEludGVybmFsIFVzZSBPbmx5ICovICkgewoJCXZhciB0eXBlLCBpID0gMCwgbWF0Y2gsIG5hbWVzcGFjZXMsIHByZVR5cGUsCgkJCXNlbGVjdG9yID0gb3JpZ1NlbGVjdG9yIHx8IHRoaXMuc2VsZWN0b3IsCgkJCWNvbnRleHQgPSBvcmlnU2VsZWN0b3IgPyB0aGlzIDogalF1ZXJ5KCB0aGlzLmNvbnRleHQgKTsKCgkJaWYgKCB0eXBlb2YgdHlwZXMgPT09ICJvYmplY3QiICYmICF0eXBlcy5wcmV2ZW50RGVmYXVsdCApIHsKCQkJZm9yICggdmFyIGtleSBpbiB0eXBlcyApIHsKCQkJCWNvbnRleHRbIG5hbWUgXSgga2V5LCBkYXRhLCB0eXBlc1trZXldLCBzZWxlY3RvciApOwoJCQl9CgoJCQlyZXR1cm4gdGhpczsKCQl9CgoJCWlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIGRhdGEgKSApIHsKCQkJZm4gPSBkYXRhOwoJCQlkYXRhID0gdW5kZWZpbmVkOwoJCX0KCgkJdHlwZXMgPSAodHlwZXMgfHwgIiIpLnNwbGl0KCIgIik7CgoJCXdoaWxlICggKHR5cGUgPSB0eXBlc1sgaSsrIF0pICE9IG51bGwgKSB7CgkJCW1hdGNoID0gcm5hbWVzcGFjZXMuZXhlYyggdHlwZSApOwoJCQluYW1lc3BhY2VzID0gIiI7CgoJCQlpZiAoIG1hdGNoICkgIHsKCQkJCW5hbWVzcGFjZXMgPSBtYXRjaFswXTsKCQkJCXR5cGUgPSB0eXBlLnJlcGxhY2UoIHJuYW1lc3BhY2VzLCAiIiApOwoJCQl9CgoJCQlpZiAoIHR5cGUgPT09ICJob3ZlciIgKSB7CgkJCQl0eXBlcy5wdXNoKCAibW91c2VlbnRlciIgKyBuYW1lc3BhY2VzLCAibW91c2VsZWF2ZSIgKyBuYW1lc3BhY2VzICk7CgkJCQljb250aW51ZTsKCQkJfQoKCQkJcHJlVHlwZSA9IHR5cGU7CgoJCQlpZiAoIHR5cGUgPT09ICJmb2N1cyIgfHwgdHlwZSA9PT0gImJsdXIiICkgewoJCQkJdHlwZXMucHVzaCggbGl2ZU1hcFsgdHlwZSBdICsgbmFtZXNwYWNlcyApOwoJCQkJdHlwZSA9IHR5cGUgKyBuYW1lc3BhY2VzOwoKCQkJfSBlbHNlIHsKCQkJCXR5cGUgPSAobGl2ZU1hcFsgdHlwZSBdIHx8IHR5cGUpICsgbmFtZXNwYWNlczsKCQkJfQoKCQkJaWYgKCBuYW1lID09PSAibGl2ZSIgKSB7CgkJCQkvLyBiaW5kIGxpdmUgaGFuZGxlcgoJCQkJZm9yICggdmFyIGogPSAwLCBsID0gY29udGV4dC5sZW5ndGg7IGogPCBsOyBqKysgKSB7CgkJCQkJalF1ZXJ5LmV2ZW50LmFkZCggY29udGV4dFtqXSwgImxpdmUuIiArIGxpdmVDb252ZXJ0KCB0eXBlLCBzZWxlY3RvciApLAoJCQkJCQl7IGRhdGE6IGRhdGEsIHNlbGVjdG9yOiBzZWxlY3RvciwgaGFuZGxlcjogZm4sIG9yaWdUeXBlOiB0eXBlLCBvcmlnSGFuZGxlcjogZm4sIHByZVR5cGU6IHByZVR5cGUgfSApOwoJCQkJfQoKCQkJfSBlbHNlIHsKCQkJCS8vIHVuYmluZCBsaXZlIGhhbmRsZXIKCQkJCWNvbnRleHQudW5iaW5kKCAibGl2ZS4iICsgbGl2ZUNvbnZlcnQoIHR5cGUsIHNlbGVjdG9yICksIGZuICk7CgkJCX0KCQl9CgoJCXJldHVybiB0aGlzOwoJfTsKfSk7CgpmdW5jdGlvbiBsaXZlSGFuZGxlciggZXZlbnQgKSB7Cgl2YXIgc3RvcCwgbWF4TGV2ZWwsIHJlbGF0ZWQsIG1hdGNoLCBoYW5kbGVPYmosIGVsZW0sIGosIGksIGwsIGRhdGEsIGNsb3NlLCBuYW1lc3BhY2UsIHJldCwKCQllbGVtcyA9IFtdLAoJCXNlbGVjdG9ycyA9IFtdLAoJCWV2ZW50cyA9IGpRdWVyeS5fZGF0YSggdGhpcywgImV2ZW50cyIgKTsKCgkvLyBNYWtlIHN1cmUgd2UgYXZvaWQgbm9uLWxlZnQtY2xpY2sgYnViYmxpbmcgaW4gRmlyZWZveCAoIzM4NjEpIGFuZCBkaXNhYmxlZCBlbGVtZW50cyBpbiBJRSAoIzY5MTEpCglpZiAoIGV2ZW50LmxpdmVGaXJlZCA9PT0gdGhpcyB8fCAhZXZlbnRzIHx8ICFldmVudHMubGl2ZSB8fCBldmVudC50YXJnZXQuZGlzYWJsZWQgfHwgZXZlbnQuYnV0dG9uICYmIGV2ZW50LnR5cGUgPT09ICJjbGljayIgKSB7CgkJcmV0dXJuOwoJfQoKCWlmICggZXZlbnQubmFtZXNwYWNlICkgewoJCW5hbWVzcGFjZSA9IG5ldyBSZWdFeHAoIihefFxcLikiICsgZXZlbnQubmFtZXNwYWNlLnNwbGl0KCIuIikuam9pbigiXFwuKD86LipcXC4pPyIpICsgIihcXC58JCkiKTsKCX0KCglldmVudC5saXZlRmlyZWQgPSB0aGlzOwoKCXZhciBsaXZlID0gZXZlbnRzLmxpdmUuc2xpY2UoMCk7CgoJZm9yICggaiA9IDA7IGogPCBsaXZlLmxlbmd0aDsgaisrICkgewoJCWhhbmRsZU9iaiA9IGxpdmVbal07CgoJCWlmICggaGFuZGxlT2JqLm9yaWdUeXBlLnJlcGxhY2UoIHJuYW1lc3BhY2VzLCAiIiApID09PSBldmVudC50eXBlICkgewoJCQlzZWxlY3RvcnMucHVzaCggaGFuZGxlT2JqLnNlbGVjdG9yICk7CgoJCX0gZWxzZSB7CgkJCWxpdmUuc3BsaWNlKCBqLS0sIDEgKTsKCQl9Cgl9CgoJbWF0Y2ggPSBqUXVlcnkoIGV2ZW50LnRhcmdldCApLmNsb3Nlc3QoIHNlbGVjdG9ycywgZXZlbnQuY3VycmVudFRhcmdldCApOwoKCWZvciAoIGkgPSAwLCBsID0gbWF0Y2gubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCWNsb3NlID0gbWF0Y2hbaV07CgoJCWZvciAoIGogPSAwOyBqIDwgbGl2ZS5sZW5ndGg7IGorKyApIHsKCQkJaGFuZGxlT2JqID0gbGl2ZVtqXTsKCgkJCWlmICggY2xvc2Uuc2VsZWN0b3IgPT09IGhhbmRsZU9iai5zZWxlY3RvciAmJiAoIW5hbWVzcGFjZSB8fCBuYW1lc3BhY2UudGVzdCggaGFuZGxlT2JqLm5hbWVzcGFjZSApKSAmJiAhY2xvc2UuZWxlbS5kaXNhYmxlZCApIHsKCQkJCWVsZW0gPSBjbG9zZS5lbGVtOwoJCQkJcmVsYXRlZCA9IG51bGw7CgoJCQkJLy8gVGhvc2UgdHdvIGV2ZW50cyByZXF1aXJlIGFkZGl0aW9uYWwgY2hlY2tpbmcKCQkJCWlmICggaGFuZGxlT2JqLnByZVR5cGUgPT09ICJtb3VzZWVudGVyIiB8fCBoYW5kbGVPYmoucHJlVHlwZSA9PT0gIm1vdXNlbGVhdmUiICkgewoJCQkJCWV2ZW50LnR5cGUgPSBoYW5kbGVPYmoucHJlVHlwZTsKCQkJCQlyZWxhdGVkID0galF1ZXJ5KCBldmVudC5yZWxhdGVkVGFyZ2V0ICkuY2xvc2VzdCggaGFuZGxlT2JqLnNlbGVjdG9yIClbMF07CgkJCQl9CgoJCQkJaWYgKCAhcmVsYXRlZCB8fCByZWxhdGVkICE9PSBlbGVtICkgewoJCQkJCWVsZW1zLnB1c2goeyBlbGVtOiBlbGVtLCBoYW5kbGVPYmo6IGhhbmRsZU9iaiwgbGV2ZWw6IGNsb3NlLmxldmVsIH0pOwoJCQkJfQoJCQl9CgkJfQoJfQoKCWZvciAoIGkgPSAwLCBsID0gZWxlbXMubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCW1hdGNoID0gZWxlbXNbaV07CgoJCWlmICggbWF4TGV2ZWwgJiYgbWF0Y2gubGV2ZWwgPiBtYXhMZXZlbCApIHsKCQkJYnJlYWs7CgkJfQoKCQlldmVudC5jdXJyZW50VGFyZ2V0ID0gbWF0Y2guZWxlbTsKCQlldmVudC5kYXRhID0gbWF0Y2guaGFuZGxlT2JqLmRhdGE7CgkJZXZlbnQuaGFuZGxlT2JqID0gbWF0Y2guaGFuZGxlT2JqOwoKCQlyZXQgPSBtYXRjaC5oYW5kbGVPYmoub3JpZ0hhbmRsZXIuYXBwbHkoIG1hdGNoLmVsZW0sIGFyZ3VtZW50cyApOwoKCQlpZiAoIHJldCA9PT0gZmFsc2UgfHwgZXZlbnQuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSApIHsKCQkJbWF4TGV2ZWwgPSBtYXRjaC5sZXZlbDsKCgkJCWlmICggcmV0ID09PSBmYWxzZSApIHsKCQkJCXN0b3AgPSBmYWxzZTsKCQkJfQoJCQlpZiAoIGV2ZW50LmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkKCkgKSB7CgkJCQlicmVhazsKCQkJfQoJCX0KCX0KCglyZXR1cm4gc3RvcDsKfQoKZnVuY3Rpb24gbGl2ZUNvbnZlcnQoIHR5cGUsIHNlbGVjdG9yICkgewoJcmV0dXJuICh0eXBlICYmIHR5cGUgIT09ICIqIiA/IHR5cGUgKyAiLiIgOiAiIikgKyBzZWxlY3Rvci5yZXBsYWNlKHJwZXJpb2QsICJgIikucmVwbGFjZShyc3BhY2UsICImIik7Cn0KCmpRdWVyeS5lYWNoKCAoImJsdXIgZm9jdXMgZm9jdXNpbiBmb2N1c291dCBsb2FkIHJlc2l6ZSBzY3JvbGwgdW5sb2FkIGNsaWNrIGRibGNsaWNrICIgKwoJIm1vdXNlZG93biBtb3VzZXVwIG1vdXNlbW92ZSBtb3VzZW92ZXIgbW91c2VvdXQgbW91c2VlbnRlciBtb3VzZWxlYXZlICIgKwoJImNoYW5nZSBzZWxlY3Qgc3VibWl0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgZXJyb3IiKS5zcGxpdCgiICIpLCBmdW5jdGlvbiggaSwgbmFtZSApIHsKCgkvLyBIYW5kbGUgZXZlbnQgYmluZGluZwoJalF1ZXJ5LmZuWyBuYW1lIF0gPSBmdW5jdGlvbiggZGF0YSwgZm4gKSB7CgkJaWYgKCBmbiA9PSBudWxsICkgewoJCQlmbiA9IGRhdGE7CgkJCWRhdGEgPSBudWxsOwoJCX0KCgkJcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPiAwID8KCQkJdGhpcy5iaW5kKCBuYW1lLCBkYXRhLCBmbiApIDoKCQkJdGhpcy50cmlnZ2VyKCBuYW1lICk7Cgl9OwoKCWlmICggalF1ZXJ5LmF0dHJGbiApIHsKCQlqUXVlcnkuYXR0ckZuWyBuYW1lIF0gPSB0cnVlOwoJfQp9KTsKCgovKiEKICogU2l6emxlIENTUyBTZWxlY3RvciBFbmdpbmUKICogIENvcHlyaWdodCAyMDExLCBUaGUgRG9qbyBGb3VuZGF0aW9uCiAqICBSZWxlYXNlZCB1bmRlciB0aGUgTUlULCBCU0QsIGFuZCBHUEwgTGljZW5zZXMuCiAqICBNb3JlIGluZm9ybWF0aW9uOiBodHRwOi8vc2l6emxlanMuY29tLwogKi8KKGZ1bmN0aW9uKCl7Cgp2YXIgY2h1bmtlciA9IC8oKD86XCgoPzpcKFteKCldK1wpfFteKCldKykrXCl8XFsoPzpcW1teXFtcXV0qXF18WyciXVteJyJdKlsnIl18W15cW1xdJyJdKykrXF18XFwufFteID4rfiwoXFtcXF0rKSt8Wz4rfl0pKFxzKixccyopPygoPzoufFxyfFxuKSopL2csCglkb25lID0gMCwKCXRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZywKCWhhc0R1cGxpY2F0ZSA9IGZhbHNlLAoJYmFzZUhhc0R1cGxpY2F0ZSA9IHRydWUsCglyQmFja3NsYXNoID0gL1xcL2csCglyTm9uV29yZCA9IC9cVy87CgovLyBIZXJlIHdlIGNoZWNrIGlmIHRoZSBKYXZhU2NyaXB0IGVuZ2luZSBpcyB1c2luZyBzb21lIHNvcnQgb2YKLy8gb3B0aW1pemF0aW9uIHdoZXJlIGl0IGRvZXMgbm90IGFsd2F5cyBjYWxsIG91ciBjb21wYXJpc2lvbgovLyBmdW5jdGlvbi4gSWYgdGhhdCBpcyB0aGUgY2FzZSwgZGlzY2FyZCB0aGUgaGFzRHVwbGljYXRlIHZhbHVlLgovLyAgIFRodXMgZmFyIHRoYXQgaW5jbHVkZXMgR29vZ2xlIENocm9tZS4KWzAsIDBdLnNvcnQoZnVuY3Rpb24oKSB7CgliYXNlSGFzRHVwbGljYXRlID0gZmFsc2U7CglyZXR1cm4gMDsKfSk7Cgp2YXIgU2l6emxlID0gZnVuY3Rpb24oIHNlbGVjdG9yLCBjb250ZXh0LCByZXN1bHRzLCBzZWVkICkgewoJcmVzdWx0cyA9IHJlc3VsdHMgfHwgW107Cgljb250ZXh0ID0gY29udGV4dCB8fCBkb2N1bWVudDsKCgl2YXIgb3JpZ0NvbnRleHQgPSBjb250ZXh0OwoKCWlmICggY29udGV4dC5ub2RlVHlwZSAhPT0gMSAmJiBjb250ZXh0Lm5vZGVUeXBlICE9PSA5ICkgewoJCXJldHVybiBbXTsKCX0KCQoJaWYgKCAhc2VsZWN0b3IgfHwgdHlwZW9mIHNlbGVjdG9yICE9PSAic3RyaW5nIiApIHsKCQlyZXR1cm4gcmVzdWx0czsKCX0KCgl2YXIgbSwgc2V0LCBjaGVja1NldCwgZXh0cmEsIHJldCwgY3VyLCBwb3AsIGksCgkJcHJ1bmUgPSB0cnVlLAoJCWNvbnRleHRYTUwgPSBTaXp6bGUuaXNYTUwoIGNvbnRleHQgKSwKCQlwYXJ0cyA9IFtdLAoJCXNvRmFyID0gc2VsZWN0b3I7CgkKCS8vIFJlc2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgY2h1bmtlciByZWdleHAgKHN0YXJ0IGZyb20gaGVhZCkKCWRvIHsKCQljaHVua2VyLmV4ZWMoICIiICk7CgkJbSA9IGNodW5rZXIuZXhlYyggc29GYXIgKTsKCgkJaWYgKCBtICkgewoJCQlzb0ZhciA9IG1bM107CgkJCgkJCXBhcnRzLnB1c2goIG1bMV0gKTsKCQkKCQkJaWYgKCBtWzJdICkgewoJCQkJZXh0cmEgPSBtWzNdOwoJCQkJYnJlYWs7CgkJCX0KCQl9Cgl9IHdoaWxlICggbSApOwoKCWlmICggcGFydHMubGVuZ3RoID4gMSAmJiBvcmlnUE9TLmV4ZWMoIHNlbGVjdG9yICkgKSB7CgoJCWlmICggcGFydHMubGVuZ3RoID09PSAyICYmIEV4cHIucmVsYXRpdmVbIHBhcnRzWzBdIF0gKSB7CgkJCXNldCA9IHBvc1Byb2Nlc3MoIHBhcnRzWzBdICsgcGFydHNbMV0sIGNvbnRleHQgKTsKCgkJfSBlbHNlIHsKCQkJc2V0ID0gRXhwci5yZWxhdGl2ZVsgcGFydHNbMF0gXSA/CgkJCQlbIGNvbnRleHQgXSA6CgkJCQlTaXp6bGUoIHBhcnRzLnNoaWZ0KCksIGNvbnRleHQgKTsKCgkJCXdoaWxlICggcGFydHMubGVuZ3RoICkgewoJCQkJc2VsZWN0b3IgPSBwYXJ0cy5zaGlmdCgpOwoKCQkJCWlmICggRXhwci5yZWxhdGl2ZVsgc2VsZWN0b3IgXSApIHsKCQkJCQlzZWxlY3RvciArPSBwYXJ0cy5zaGlmdCgpOwoJCQkJfQoJCQkJCgkJCQlzZXQgPSBwb3NQcm9jZXNzKCBzZWxlY3Rvciwgc2V0ICk7CgkJCX0KCQl9CgoJfSBlbHNlIHsKCQkvLyBUYWtlIGEgc2hvcnRjdXQgYW5kIHNldCB0aGUgY29udGV4dCBpZiB0aGUgcm9vdCBzZWxlY3RvciBpcyBhbiBJRAoJCS8vIChidXQgbm90IGlmIGl0J2xsIGJlIGZhc3RlciBpZiB0aGUgaW5uZXIgc2VsZWN0b3IgaXMgYW4gSUQpCgkJaWYgKCAhc2VlZCAmJiBwYXJ0cy5sZW5ndGggPiAxICYmIGNvbnRleHQubm9kZVR5cGUgPT09IDkgJiYgIWNvbnRleHRYTUwgJiYKCQkJCUV4cHIubWF0Y2guSUQudGVzdChwYXJ0c1swXSkgJiYgIUV4cHIubWF0Y2guSUQudGVzdChwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXSkgKSB7CgoJCQlyZXQgPSBTaXp6bGUuZmluZCggcGFydHMuc2hpZnQoKSwgY29udGV4dCwgY29udGV4dFhNTCApOwoJCQljb250ZXh0ID0gcmV0LmV4cHIgPwoJCQkJU2l6emxlLmZpbHRlciggcmV0LmV4cHIsIHJldC5zZXQgKVswXSA6CgkJCQlyZXQuc2V0WzBdOwoJCX0KCgkJaWYgKCBjb250ZXh0ICkgewoJCQlyZXQgPSBzZWVkID8KCQkJCXsgZXhwcjogcGFydHMucG9wKCksIHNldDogbWFrZUFycmF5KHNlZWQpIH0gOgoJCQkJU2l6emxlLmZpbmQoIHBhcnRzLnBvcCgpLCBwYXJ0cy5sZW5ndGggPT09IDEgJiYgKHBhcnRzWzBdID09PSAifiIgfHwgcGFydHNbMF0gPT09ICIrIikgJiYgY29udGV4dC5wYXJlbnROb2RlID8gY29udGV4dC5wYXJlbnROb2RlIDogY29udGV4dCwgY29udGV4dFhNTCApOwoKCQkJc2V0ID0gcmV0LmV4cHIgPwoJCQkJU2l6emxlLmZpbHRlciggcmV0LmV4cHIsIHJldC5zZXQgKSA6CgkJCQlyZXQuc2V0OwoKCQkJaWYgKCBwYXJ0cy5sZW5ndGggPiAwICkgewoJCQkJY2hlY2tTZXQgPSBtYWtlQXJyYXkoIHNldCApOwoKCQkJfSBlbHNlIHsKCQkJCXBydW5lID0gZmFsc2U7CgkJCX0KCgkJCXdoaWxlICggcGFydHMubGVuZ3RoICkgewoJCQkJY3VyID0gcGFydHMucG9wKCk7CgkJCQlwb3AgPSBjdXI7CgoJCQkJaWYgKCAhRXhwci5yZWxhdGl2ZVsgY3VyIF0gKSB7CgkJCQkJY3VyID0gIiI7CgkJCQl9IGVsc2UgewoJCQkJCXBvcCA9IHBhcnRzLnBvcCgpOwoJCQkJfQoKCQkJCWlmICggcG9wID09IG51bGwgKSB7CgkJCQkJcG9wID0gY29udGV4dDsKCQkJCX0KCgkJCQlFeHByLnJlbGF0aXZlWyBjdXIgXSggY2hlY2tTZXQsIHBvcCwgY29udGV4dFhNTCApOwoJCQl9CgoJCX0gZWxzZSB7CgkJCWNoZWNrU2V0ID0gcGFydHMgPSBbXTsKCQl9Cgl9CgoJaWYgKCAhY2hlY2tTZXQgKSB7CgkJY2hlY2tTZXQgPSBzZXQ7Cgl9CgoJaWYgKCAhY2hlY2tTZXQgKSB7CgkJU2l6emxlLmVycm9yKCBjdXIgfHwgc2VsZWN0b3IgKTsKCX0KCglpZiAoIHRvU3RyaW5nLmNhbGwoY2hlY2tTZXQpID09PSAiW29iamVjdCBBcnJheV0iICkgewoJCWlmICggIXBydW5lICkgewoJCQlyZXN1bHRzLnB1c2guYXBwbHkoIHJlc3VsdHMsIGNoZWNrU2V0ICk7CgoJCX0gZWxzZSBpZiAoIGNvbnRleHQgJiYgY29udGV4dC5ub2RlVHlwZSA9PT0gMSApIHsKCQkJZm9yICggaSA9IDA7IGNoZWNrU2V0W2ldICE9IG51bGw7IGkrKyApIHsKCQkJCWlmICggY2hlY2tTZXRbaV0gJiYgKGNoZWNrU2V0W2ldID09PSB0cnVlIHx8IGNoZWNrU2V0W2ldLm5vZGVUeXBlID09PSAxICYmIFNpenpsZS5jb250YWlucyhjb250ZXh0LCBjaGVja1NldFtpXSkpICkgewoJCQkJCXJlc3VsdHMucHVzaCggc2V0W2ldICk7CgkJCQl9CgkJCX0KCgkJfSBlbHNlIHsKCQkJZm9yICggaSA9IDA7IGNoZWNrU2V0W2ldICE9IG51bGw7IGkrKyApIHsKCQkJCWlmICggY2hlY2tTZXRbaV0gJiYgY2hlY2tTZXRbaV0ubm9kZVR5cGUgPT09IDEgKSB7CgkJCQkJcmVzdWx0cy5wdXNoKCBzZXRbaV0gKTsKCQkJCX0KCQkJfQoJCX0KCgl9IGVsc2UgewoJCW1ha2VBcnJheSggY2hlY2tTZXQsIHJlc3VsdHMgKTsKCX0KCglpZiAoIGV4dHJhICkgewoJCVNpenpsZSggZXh0cmEsIG9yaWdDb250ZXh0LCByZXN1bHRzLCBzZWVkICk7CgkJU2l6emxlLnVuaXF1ZVNvcnQoIHJlc3VsdHMgKTsKCX0KCglyZXR1cm4gcmVzdWx0czsKfTsKClNpenpsZS51bmlxdWVTb3J0ID0gZnVuY3Rpb24oIHJlc3VsdHMgKSB7CglpZiAoIHNvcnRPcmRlciApIHsKCQloYXNEdXBsaWNhdGUgPSBiYXNlSGFzRHVwbGljYXRlOwoJCXJlc3VsdHMuc29ydCggc29ydE9yZGVyICk7CgoJCWlmICggaGFzRHVwbGljYXRlICkgewoJCQlmb3IgKCB2YXIgaSA9IDE7IGkgPCByZXN1bHRzLmxlbmd0aDsgaSsrICkgewoJCQkJaWYgKCByZXN1bHRzW2ldID09PSByZXN1bHRzWyBpIC0gMSBdICkgewoJCQkJCXJlc3VsdHMuc3BsaWNlKCBpLS0sIDEgKTsKCQkJCX0KCQkJfQoJCX0KCX0KCglyZXR1cm4gcmVzdWx0czsKfTsKClNpenpsZS5tYXRjaGVzID0gZnVuY3Rpb24oIGV4cHIsIHNldCApIHsKCXJldHVybiBTaXp6bGUoIGV4cHIsIG51bGwsIG51bGwsIHNldCApOwp9OwoKU2l6emxlLm1hdGNoZXNTZWxlY3RvciA9IGZ1bmN0aW9uKCBub2RlLCBleHByICkgewoJcmV0dXJuIFNpenpsZSggZXhwciwgbnVsbCwgbnVsbCwgW25vZGVdICkubGVuZ3RoID4gMDsKfTsKClNpenpsZS5maW5kID0gZnVuY3Rpb24oIGV4cHIsIGNvbnRleHQsIGlzWE1MICkgewoJdmFyIHNldDsKCglpZiAoICFleHByICkgewoJCXJldHVybiBbXTsKCX0KCglmb3IgKCB2YXIgaSA9IDAsIGwgPSBFeHByLm9yZGVyLmxlbmd0aDsgaSA8IGw7IGkrKyApIHsKCQl2YXIgbWF0Y2gsCgkJCXR5cGUgPSBFeHByLm9yZGVyW2ldOwoJCQoJCWlmICggKG1hdGNoID0gRXhwci5sZWZ0TWF0Y2hbIHR5cGUgXS5leGVjKCBleHByICkpICkgewoJCQl2YXIgbGVmdCA9IG1hdGNoWzFdOwoJCQltYXRjaC5zcGxpY2UoIDEsIDEgKTsKCgkJCWlmICggbGVmdC5zdWJzdHIoIGxlZnQubGVuZ3RoIC0gMSApICE9PSAiXFwiICkgewoJCQkJbWF0Y2hbMV0gPSAobWF0Y2hbMV0gfHwgIiIpLnJlcGxhY2UoIHJCYWNrc2xhc2gsICIiICk7CgkJCQlzZXQgPSBFeHByLmZpbmRbIHR5cGUgXSggbWF0Y2gsIGNvbnRleHQsIGlzWE1MICk7CgoJCQkJaWYgKCBzZXQgIT0gbnVsbCApIHsKCQkJCQlleHByID0gZXhwci5yZXBsYWNlKCBFeHByLm1hdGNoWyB0eXBlIF0sICIiICk7CgkJCQkJYnJlYWs7CgkJCQl9CgkJCX0KCQl9Cgl9CgoJaWYgKCAhc2V0ICkgewoJCXNldCA9IHR5cGVvZiBjb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lICE9PSAidW5kZWZpbmVkIiA/CgkJCWNvbnRleHQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoICIqIiApIDoKCQkJW107Cgl9CgoJcmV0dXJuIHsgc2V0OiBzZXQsIGV4cHI6IGV4cHIgfTsKfTsKClNpenpsZS5maWx0ZXIgPSBmdW5jdGlvbiggZXhwciwgc2V0LCBpbnBsYWNlLCBub3QgKSB7Cgl2YXIgbWF0Y2gsIGFueUZvdW5kLAoJCW9sZCA9IGV4cHIsCgkJcmVzdWx0ID0gW10sCgkJY3VyTG9vcCA9IHNldCwKCQlpc1hNTEZpbHRlciA9IHNldCAmJiBzZXRbMF0gJiYgU2l6emxlLmlzWE1MKCBzZXRbMF0gKTsKCgl3aGlsZSAoIGV4cHIgJiYgc2V0Lmxlbmd0aCApIHsKCQlmb3IgKCB2YXIgdHlwZSBpbiBFeHByLmZpbHRlciApIHsKCQkJaWYgKCAobWF0Y2ggPSBFeHByLmxlZnRNYXRjaFsgdHlwZSBdLmV4ZWMoIGV4cHIgKSkgIT0gbnVsbCAmJiBtYXRjaFsyXSApIHsKCQkJCXZhciBmb3VuZCwgaXRlbSwKCQkJCQlmaWx0ZXIgPSBFeHByLmZpbHRlclsgdHlwZSBdLAoJCQkJCWxlZnQgPSBtYXRjaFsxXTsKCgkJCQlhbnlGb3VuZCA9IGZhbHNlOwoKCQkJCW1hdGNoLnNwbGljZSgxLDEpOwoKCQkJCWlmICggbGVmdC5zdWJzdHIoIGxlZnQubGVuZ3RoIC0gMSApID09PSAiXFwiICkgewoJCQkJCWNvbnRpbnVlOwoJCQkJfQoKCQkJCWlmICggY3VyTG9vcCA9PT0gcmVzdWx0ICkgewoJCQkJCXJlc3VsdCA9IFtdOwoJCQkJfQoKCQkJCWlmICggRXhwci5wcmVGaWx0ZXJbIHR5cGUgXSApIHsKCQkJCQltYXRjaCA9IEV4cHIucHJlRmlsdGVyWyB0eXBlIF0oIG1hdGNoLCBjdXJMb29wLCBpbnBsYWNlLCByZXN1bHQsIG5vdCwgaXNYTUxGaWx0ZXIgKTsKCgkJCQkJaWYgKCAhbWF0Y2ggKSB7CgkJCQkJCWFueUZvdW5kID0gZm91bmQgPSB0cnVlOwoKCQkJCQl9IGVsc2UgaWYgKCBtYXRjaCA9PT0gdHJ1ZSApIHsKCQkJCQkJY29udGludWU7CgkJCQkJfQoJCQkJfQoKCQkJCWlmICggbWF0Y2ggKSB7CgkJCQkJZm9yICggdmFyIGkgPSAwOyAoaXRlbSA9IGN1ckxvb3BbaV0pICE9IG51bGw7IGkrKyApIHsKCQkJCQkJaWYgKCBpdGVtICkgewoJCQkJCQkJZm91bmQgPSBmaWx0ZXIoIGl0ZW0sIG1hdGNoLCBpLCBjdXJMb29wICk7CgkJCQkJCQl2YXIgcGFzcyA9IG5vdCBeICEhZm91bmQ7CgoJCQkJCQkJaWYgKCBpbnBsYWNlICYmIGZvdW5kICE9IG51bGwgKSB7CgkJCQkJCQkJaWYgKCBwYXNzICkgewoJCQkJCQkJCQlhbnlGb3VuZCA9IHRydWU7CgoJCQkJCQkJCX0gZWxzZSB7CgkJCQkJCQkJCWN1ckxvb3BbaV0gPSBmYWxzZTsKCQkJCQkJCQl9CgoJCQkJCQkJfSBlbHNlIGlmICggcGFzcyApIHsKCQkJCQkJCQlyZXN1bHQucHVzaCggaXRlbSApOwoJCQkJCQkJCWFueUZvdW5kID0gdHJ1ZTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCX0KCQkJCX0KCgkJCQlpZiAoIGZvdW5kICE9PSB1bmRlZmluZWQgKSB7CgkJCQkJaWYgKCAhaW5wbGFjZSApIHsKCQkJCQkJY3VyTG9vcCA9IHJlc3VsdDsKCQkJCQl9CgoJCQkJCWV4cHIgPSBleHByLnJlcGxhY2UoIEV4cHIubWF0Y2hbIHR5cGUgXSwgIiIgKTsKCgkJCQkJaWYgKCAhYW55Rm91bmQgKSB7CgkJCQkJCXJldHVybiBbXTsKCQkJCQl9CgoJCQkJCWJyZWFrOwoJCQkJfQoJCQl9CgkJfQoKCQkvLyBJbXByb3BlciBleHByZXNzaW9uCgkJaWYgKCBleHByID09PSBvbGQgKSB7CgkJCWlmICggYW55Rm91bmQgPT0gbnVsbCApIHsKCQkJCVNpenpsZS5lcnJvciggZXhwciApOwoKCQkJfSBlbHNlIHsKCQkJCWJyZWFrOwoJCQl9CgkJfQoKCQlvbGQgPSBleHByOwoJfQoKCXJldHVybiBjdXJMb29wOwp9OwoKU2l6emxlLmVycm9yID0gZnVuY3Rpb24oIG1zZyApIHsKCXRocm93ICJTeW50YXggZXJyb3IsIHVucmVjb2duaXplZCBleHByZXNzaW9uOiAiICsgbXNnOwp9OwoKdmFyIEV4cHIgPSBTaXp6bGUuc2VsZWN0b3JzID0gewoJb3JkZXI6IFsgIklEIiwgIk5BTUUiLCAiVEFHIiBdLAoKCW1hdGNoOiB7CgkJSUQ6IC8jKCg/Oltcd1x1MDBjMC1cdUZGRkZcLV18XFwuKSspLywKCQlDTEFTUzogL1wuKCg/Oltcd1x1MDBjMC1cdUZGRkZcLV18XFwuKSspLywKCQlOQU1FOiAvXFtuYW1lPVsnIl0qKCg/Oltcd1x1MDBjMC1cdUZGRkZcLV18XFwuKSspWyciXSpcXS8sCgkJQVRUUjogL1xbXHMqKCg/Oltcd1x1MDBjMC1cdUZGRkZcLV18XFwuKSspXHMqKD86KFxTPz0pXHMqKD86KFsnIl0pKC4qPylcM3woIz8oPzpbXHdcdTAwYzAtXHVGRkZGXC1dfFxcLikqKXwpfClccypcXS8sCgkJVEFHOiAvXigoPzpbXHdcdTAwYzAtXHVGRkZGXCpcLV18XFwuKSspLywKCQlDSElMRDogLzoob25seXxudGh8bGFzdHxmaXJzdCktY2hpbGQoPzpcKFxzKihldmVufG9kZHwoPzpbK1wtXT9cZCt8KD86WytcLV0/XGQqKT9uXHMqKD86WytcLV1ccypcZCspPykpXHMqXCkpPy8sCgkJUE9TOiAvOihudGh8ZXF8Z3R8bHR8Zmlyc3R8bGFzdHxldmVufG9kZCkoPzpcKChcZCopXCkpPyg/PVteXC1dfCQpLywKCQlQU0VVRE86IC86KCg/Oltcd1x1MDBjMC1cdUZGRkZcLV18XFwuKSspKD86XCgoWyciXT8pKCg/OlwoW15cKV0rXCl8W15cKFwpXSopKylcMlwpKT8vCgl9LAoKCWxlZnRNYXRjaDoge30sCgoJYXR0ck1hcDogewoJCSJjbGFzcyI6ICJjbGFzc05hbWUiLAoJCSJmb3IiOiAiaHRtbEZvciIKCX0sCgoJYXR0ckhhbmRsZTogewoJCWhyZWY6IGZ1bmN0aW9uKCBlbGVtICkgewoJCQlyZXR1cm4gZWxlbS5nZXRBdHRyaWJ1dGUoICJocmVmIiApOwoJCX0sCgkJdHlwZTogZnVuY3Rpb24oIGVsZW0gKSB7CgkJCXJldHVybiBlbGVtLmdldEF0dHJpYnV0ZSggInR5cGUiICk7CgkJfQoJfSwKCglyZWxhdGl2ZTogewoJCSIrIjogZnVuY3Rpb24oY2hlY2tTZXQsIHBhcnQpewoJCQl2YXIgaXNQYXJ0U3RyID0gdHlwZW9mIHBhcnQgPT09ICJzdHJpbmciLAoJCQkJaXNUYWcgPSBpc1BhcnRTdHIgJiYgIXJOb25Xb3JkLnRlc3QoIHBhcnQgKSwKCQkJCWlzUGFydFN0ck5vdFRhZyA9IGlzUGFydFN0ciAmJiAhaXNUYWc7CgoJCQlpZiAoIGlzVGFnICkgewoJCQkJcGFydCA9IHBhcnQudG9Mb3dlckNhc2UoKTsKCQkJfQoKCQkJZm9yICggdmFyIGkgPSAwLCBsID0gY2hlY2tTZXQubGVuZ3RoLCBlbGVtOyBpIDwgbDsgaSsrICkgewoJCQkJaWYgKCAoZWxlbSA9IGNoZWNrU2V0W2ldKSApIHsKCQkJCQl3aGlsZSAoIChlbGVtID0gZWxlbS5wcmV2aW91c1NpYmxpbmcpICYmIGVsZW0ubm9kZVR5cGUgIT09IDEgKSB7fQoKCQkJCQljaGVja1NldFtpXSA9IGlzUGFydFN0ck5vdFRhZyB8fCBlbGVtICYmIGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gcGFydCA/CgkJCQkJCWVsZW0gfHwgZmFsc2UgOgoJCQkJCQllbGVtID09PSBwYXJ0OwoJCQkJfQoJCQl9CgoJCQlpZiAoIGlzUGFydFN0ck5vdFRhZyApIHsKCQkJCVNpenpsZS5maWx0ZXIoIHBhcnQsIGNoZWNrU2V0LCB0cnVlICk7CgkJCX0KCQl9LAoKCQkiPiI6IGZ1bmN0aW9uKCBjaGVja1NldCwgcGFydCApIHsKCQkJdmFyIGVsZW0sCgkJCQlpc1BhcnRTdHIgPSB0eXBlb2YgcGFydCA9PT0gInN0cmluZyIsCgkJCQlpID0gMCwKCQkJCWwgPSBjaGVja1NldC5sZW5ndGg7CgoJCQlpZiAoIGlzUGFydFN0ciAmJiAhck5vbldvcmQudGVzdCggcGFydCApICkgewoJCQkJcGFydCA9IHBhcnQudG9Mb3dlckNhc2UoKTsKCgkJCQlmb3IgKCA7IGkgPCBsOyBpKysgKSB7CgkJCQkJZWxlbSA9IGNoZWNrU2V0W2ldOwoKCQkJCQlpZiAoIGVsZW0gKSB7CgkJCQkJCXZhciBwYXJlbnQgPSBlbGVtLnBhcmVudE5vZGU7CgkJCQkJCWNoZWNrU2V0W2ldID0gcGFyZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09IHBhcnQgPyBwYXJlbnQgOiBmYWxzZTsKCQkJCQl9CgkJCQl9CgoJCQl9IGVsc2UgewoJCQkJZm9yICggOyBpIDwgbDsgaSsrICkgewoJCQkJCWVsZW0gPSBjaGVja1NldFtpXTsKCgkJCQkJaWYgKCBlbGVtICkgewoJCQkJCQljaGVja1NldFtpXSA9IGlzUGFydFN0ciA/CgkJCQkJCQllbGVtLnBhcmVudE5vZGUgOgoJCQkJCQkJZWxlbS5wYXJlbnROb2RlID09PSBwYXJ0OwoJCQkJCX0KCQkJCX0KCgkJCQlpZiAoIGlzUGFydFN0ciApIHsKCQkJCQlTaXp6bGUuZmlsdGVyKCBwYXJ0LCBjaGVja1NldCwgdHJ1ZSApOwoJCQkJfQoJCQl9CgkJfSwKCgkJIiI6IGZ1bmN0aW9uKGNoZWNrU2V0LCBwYXJ0LCBpc1hNTCl7CgkJCXZhciBub2RlQ2hlY2ssCgkJCQlkb25lTmFtZSA9IGRvbmUrKywKCQkJCWNoZWNrRm4gPSBkaXJDaGVjazsKCgkJCWlmICggdHlwZW9mIHBhcnQgPT09ICJzdHJpbmciICYmICFyTm9uV29yZC50ZXN0KCBwYXJ0ICkgKSB7CgkJCQlwYXJ0ID0gcGFydC50b0xvd2VyQ2FzZSgpOwoJCQkJbm9kZUNoZWNrID0gcGFydDsKCQkJCWNoZWNrRm4gPSBkaXJOb2RlQ2hlY2s7CgkJCX0KCgkJCWNoZWNrRm4oICJwYXJlbnROb2RlIiwgcGFydCwgZG9uZU5hbWUsIGNoZWNrU2V0LCBub2RlQ2hlY2ssIGlzWE1MICk7CgkJfSwKCgkJIn4iOiBmdW5jdGlvbiggY2hlY2tTZXQsIHBhcnQsIGlzWE1MICkgewoJCQl2YXIgbm9kZUNoZWNrLAoJCQkJZG9uZU5hbWUgPSBkb25lKyssCgkJCQljaGVja0ZuID0gZGlyQ2hlY2s7CgoJCQlpZiAoIHR5cGVvZiBwYXJ0ID09PSAic3RyaW5nIiAmJiAhck5vbldvcmQudGVzdCggcGFydCApICkgewoJCQkJcGFydCA9IHBhcnQudG9Mb3dlckNhc2UoKTsKCQkJCW5vZGVDaGVjayA9IHBhcnQ7CgkJCQljaGVja0ZuID0gZGlyTm9kZUNoZWNrOwoJCQl9CgoJCQljaGVja0ZuKCAicHJldmlvdXNTaWJsaW5nIiwgcGFydCwgZG9uZU5hbWUsIGNoZWNrU2V0LCBub2RlQ2hlY2ssIGlzWE1MICk7CgkJfQoJfSwKCglmaW5kOiB7CgkJSUQ6IGZ1bmN0aW9uKCBtYXRjaCwgY29udGV4dCwgaXNYTUwgKSB7CgkJCWlmICggdHlwZW9mIGNvbnRleHQuZ2V0RWxlbWVudEJ5SWQgIT09ICJ1bmRlZmluZWQiICYmICFpc1hNTCApIHsKCQkJCXZhciBtID0gY29udGV4dC5nZXRFbGVtZW50QnlJZChtYXRjaFsxXSk7CgkJCQkvLyBDaGVjayBwYXJlbnROb2RlIHRvIGNhdGNoIHdoZW4gQmxhY2tiZXJyeSA0LjYgcmV0dXJucwoJCQkJLy8gbm9kZXMgdGhhdCBhcmUgbm8gbG9uZ2VyIGluIHRoZSBkb2N1bWVudCAjNjk2MwoJCQkJcmV0dXJuIG0gJiYgbS5wYXJlbnROb2RlID8gW21dIDogW107CgkJCX0KCQl9LAoKCQlOQU1FOiBmdW5jdGlvbiggbWF0Y2gsIGNvbnRleHQgKSB7CgkJCWlmICggdHlwZW9mIGNvbnRleHQuZ2V0RWxlbWVudHNCeU5hbWUgIT09ICJ1bmRlZmluZWQiICkgewoJCQkJdmFyIHJldCA9IFtdLAoJCQkJCXJlc3VsdHMgPSBjb250ZXh0LmdldEVsZW1lbnRzQnlOYW1lKCBtYXRjaFsxXSApOwoKCQkJCWZvciAoIHZhciBpID0gMCwgbCA9IHJlc3VsdHMubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCQkJCWlmICggcmVzdWx0c1tpXS5nZXRBdHRyaWJ1dGUoIm5hbWUiKSA9PT0gbWF0Y2hbMV0gKSB7CgkJCQkJCXJldC5wdXNoKCByZXN1bHRzW2ldICk7CgkJCQkJfQoJCQkJfQoKCQkJCXJldHVybiByZXQubGVuZ3RoID09PSAwID8gbnVsbCA6IHJldDsKCQkJfQoJCX0sCgoJCVRBRzogZnVuY3Rpb24oIG1hdGNoLCBjb250ZXh0ICkgewoJCQlpZiAoIHR5cGVvZiBjb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lICE9PSAidW5kZWZpbmVkIiApIHsKCQkJCXJldHVybiBjb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCBtYXRjaFsxXSApOwoJCQl9CgkJfQoJfSwKCXByZUZpbHRlcjogewoJCUNMQVNTOiBmdW5jdGlvbiggbWF0Y2gsIGN1ckxvb3AsIGlucGxhY2UsIHJlc3VsdCwgbm90LCBpc1hNTCApIHsKCQkJbWF0Y2ggPSAiICIgKyBtYXRjaFsxXS5yZXBsYWNlKCByQmFja3NsYXNoLCAiIiApICsgIiAiOwoKCQkJaWYgKCBpc1hNTCApIHsKCQkJCXJldHVybiBtYXRjaDsKCQkJfQoKCQkJZm9yICggdmFyIGkgPSAwLCBlbGVtOyAoZWxlbSA9IGN1ckxvb3BbaV0pICE9IG51bGw7IGkrKyApIHsKCQkJCWlmICggZWxlbSApIHsKCQkJCQlpZiAoIG5vdCBeIChlbGVtLmNsYXNzTmFtZSAmJiAoIiAiICsgZWxlbS5jbGFzc05hbWUgKyAiICIpLnJlcGxhY2UoL1tcdFxuXHJdL2csICIgIikuaW5kZXhPZihtYXRjaCkgPj0gMCkgKSB7CgkJCQkJCWlmICggIWlucGxhY2UgKSB7CgkJCQkJCQlyZXN1bHQucHVzaCggZWxlbSApOwoJCQkJCQl9CgoJCQkJCX0gZWxzZSBpZiAoIGlucGxhY2UgKSB7CgkJCQkJCWN1ckxvb3BbaV0gPSBmYWxzZTsKCQkJCQl9CgkJCQl9CgkJCX0KCgkJCXJldHVybiBmYWxzZTsKCQl9LAoKCQlJRDogZnVuY3Rpb24oIG1hdGNoICkgewoJCQlyZXR1cm4gbWF0Y2hbMV0ucmVwbGFjZSggckJhY2tzbGFzaCwgIiIgKTsKCQl9LAoKCQlUQUc6IGZ1bmN0aW9uKCBtYXRjaCwgY3VyTG9vcCApIHsKCQkJcmV0dXJuIG1hdGNoWzFdLnJlcGxhY2UoIHJCYWNrc2xhc2gsICIiICkudG9Mb3dlckNhc2UoKTsKCQl9LAoKCQlDSElMRDogZnVuY3Rpb24oIG1hdGNoICkgewoJCQlpZiAoIG1hdGNoWzFdID09PSAibnRoIiApIHsKCQkJCWlmICggIW1hdGNoWzJdICkgewoJCQkJCVNpenpsZS5lcnJvciggbWF0Y2hbMF0gKTsKCQkJCX0KCgkJCQltYXRjaFsyXSA9IG1hdGNoWzJdLnJlcGxhY2UoL15cK3xccyovZywgJycpOwoKCQkJCS8vIHBhcnNlIGVxdWF0aW9ucyBsaWtlICdldmVuJywgJ29kZCcsICc1JywgJzJuJywgJzNuKzInLCAnNG4tMScsICctbis2JwoJCQkJdmFyIHRlc3QgPSAvKC0/KShcZCopKD86bihbK1wtXT9cZCopKT8vLmV4ZWMoCgkJCQkJbWF0Y2hbMl0gPT09ICJldmVuIiAmJiAiMm4iIHx8IG1hdGNoWzJdID09PSAib2RkIiAmJiAiMm4rMSIgfHwKCQkJCQkhL1xELy50ZXN0KCBtYXRjaFsyXSApICYmICIwbisiICsgbWF0Y2hbMl0gfHwgbWF0Y2hbMl0pOwoKCQkJCS8vIGNhbGN1bGF0ZSB0aGUgbnVtYmVycyAoZmlyc3QpbisobGFzdCkgaW5jbHVkaW5nIGlmIHRoZXkgYXJlIG5lZ2F0aXZlCgkJCQltYXRjaFsyXSA9ICh0ZXN0WzFdICsgKHRlc3RbMl0gfHwgMSkpIC0gMDsKCQkJCW1hdGNoWzNdID0gdGVzdFszXSAtIDA7CgkJCX0KCQkJZWxzZSBpZiAoIG1hdGNoWzJdICkgewoJCQkJU2l6emxlLmVycm9yKCBtYXRjaFswXSApOwoJCQl9CgoJCQkvLyBUT0RPOiBNb3ZlIHRvIG5vcm1hbCBjYWNoaW5nIHN5c3RlbQoJCQltYXRjaFswXSA9IGRvbmUrKzsKCgkJCXJldHVybiBtYXRjaDsKCQl9LAoKCQlBVFRSOiBmdW5jdGlvbiggbWF0Y2gsIGN1ckxvb3AsIGlucGxhY2UsIHJlc3VsdCwgbm90LCBpc1hNTCApIHsKCQkJdmFyIG5hbWUgPSBtYXRjaFsxXSA9IG1hdGNoWzFdLnJlcGxhY2UoIHJCYWNrc2xhc2gsICIiICk7CgkJCQoJCQlpZiAoICFpc1hNTCAmJiBFeHByLmF0dHJNYXBbbmFtZV0gKSB7CgkJCQltYXRjaFsxXSA9IEV4cHIuYXR0ck1hcFtuYW1lXTsKCQkJfQoKCQkJLy8gSGFuZGxlIGlmIGFuIHVuLXF1b3RlZCB2YWx1ZSB3YXMgdXNlZAoJCQltYXRjaFs0XSA9ICggbWF0Y2hbNF0gfHwgbWF0Y2hbNV0gfHwgIiIgKS5yZXBsYWNlKCByQmFja3NsYXNoLCAiIiApOwoKCQkJaWYgKCBtYXRjaFsyXSA9PT0gIn49IiApIHsKCQkJCW1hdGNoWzRdID0gIiAiICsgbWF0Y2hbNF0gKyAiICI7CgkJCX0KCgkJCXJldHVybiBtYXRjaDsKCQl9LAoKCQlQU0VVRE86IGZ1bmN0aW9uKCBtYXRjaCwgY3VyTG9vcCwgaW5wbGFjZSwgcmVzdWx0LCBub3QgKSB7CgkJCWlmICggbWF0Y2hbMV0gPT09ICJub3QiICkgewoJCQkJLy8gSWYgd2UncmUgZGVhbGluZyB3aXRoIGEgY29tcGxleCBleHByZXNzaW9uLCBvciBhIHNpbXBsZSBvbmUKCQkJCWlmICggKCBjaHVua2VyLmV4ZWMobWF0Y2hbM10pIHx8ICIiICkubGVuZ3RoID4gMSB8fCAvXlx3Ly50ZXN0KG1hdGNoWzNdKSApIHsKCQkJCQltYXRjaFszXSA9IFNpenpsZShtYXRjaFszXSwgbnVsbCwgbnVsbCwgY3VyTG9vcCk7CgoJCQkJfSBlbHNlIHsKCQkJCQl2YXIgcmV0ID0gU2l6emxlLmZpbHRlcihtYXRjaFszXSwgY3VyTG9vcCwgaW5wbGFjZSwgdHJ1ZSBeIG5vdCk7CgoJCQkJCWlmICggIWlucGxhY2UgKSB7CgkJCQkJCXJlc3VsdC5wdXNoLmFwcGx5KCByZXN1bHQsIHJldCApOwoJCQkJCX0KCgkJCQkJcmV0dXJuIGZhbHNlOwoJCQkJfQoKCQkJfSBlbHNlIGlmICggRXhwci5tYXRjaC5QT1MudGVzdCggbWF0Y2hbMF0gKSB8fCBFeHByLm1hdGNoLkNISUxELnRlc3QoIG1hdGNoWzBdICkgKSB7CgkJCQlyZXR1cm4gdHJ1ZTsKCQkJfQoJCQkKCQkJcmV0dXJuIG1hdGNoOwoJCX0sCgoJCVBPUzogZnVuY3Rpb24oIG1hdGNoICkgewoJCQltYXRjaC51bnNoaWZ0KCB0cnVlICk7CgoJCQlyZXR1cm4gbWF0Y2g7CgkJfQoJfSwKCQoJZmlsdGVyczogewoJCWVuYWJsZWQ6IGZ1bmN0aW9uKCBlbGVtICkgewoJCQlyZXR1cm4gZWxlbS5kaXNhYmxlZCA9PT0gZmFsc2UgJiYgZWxlbS50eXBlICE9PSAiaGlkZGVuIjsKCQl9LAoKCQlkaXNhYmxlZDogZnVuY3Rpb24oIGVsZW0gKSB7CgkJCXJldHVybiBlbGVtLmRpc2FibGVkID09PSB0cnVlOwoJCX0sCgoJCWNoZWNrZWQ6IGZ1bmN0aW9uKCBlbGVtICkgewoJCQlyZXR1cm4gZWxlbS5jaGVja2VkID09PSB0cnVlOwoJCX0sCgkJCgkJc2VsZWN0ZWQ6IGZ1bmN0aW9uKCBlbGVtICkgewoJCQkvLyBBY2Nlc3NpbmcgdGhpcyBwcm9wZXJ0eSBtYWtlcyBzZWxlY3RlZC1ieS1kZWZhdWx0CgkJCS8vIG9wdGlvbnMgaW4gU2FmYXJpIHdvcmsgcHJvcGVybHkKCQkJaWYgKCBlbGVtLnBhcmVudE5vZGUgKSB7CgkJCQllbGVtLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleDsKCQkJfQoJCQkKCQkJcmV0dXJuIGVsZW0uc2VsZWN0ZWQgPT09IHRydWU7CgkJfSwKCgkJcGFyZW50OiBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuICEhZWxlbS5maXJzdENoaWxkOwoJCX0sCgoJCWVtcHR5OiBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuICFlbGVtLmZpcnN0Q2hpbGQ7CgkJfSwKCgkJaGFzOiBmdW5jdGlvbiggZWxlbSwgaSwgbWF0Y2ggKSB7CgkJCXJldHVybiAhIVNpenpsZSggbWF0Y2hbM10sIGVsZW0gKS5sZW5ndGg7CgkJfSwKCgkJaGVhZGVyOiBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuICgvaFxkL2kpLnRlc3QoIGVsZW0ubm9kZU5hbWUgKTsKCQl9LAoKCQl0ZXh0OiBmdW5jdGlvbiggZWxlbSApIHsKCQkJLy8gSUU2IGFuZCA3IHdpbGwgbWFwIGVsZW0udHlwZSB0byAndGV4dCcgZm9yIG5ldyBIVE1MNSB0eXBlcyAoc2VhcmNoLCBldGMpIAoJCQkvLyB1c2UgZ2V0QXR0cmlidXRlIGluc3RlYWQgdG8gdGVzdCB0aGlzIGNhc2UKCQkJcmV0dXJuICJ0ZXh0IiA9PT0gZWxlbS5nZXRBdHRyaWJ1dGUoICd0eXBlJyApOwoJCX0sCgkJcmFkaW86IGZ1bmN0aW9uKCBlbGVtICkgewoJCQlyZXR1cm4gInJhZGlvIiA9PT0gZWxlbS50eXBlOwoJCX0sCgoJCWNoZWNrYm94OiBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuICJjaGVja2JveCIgPT09IGVsZW0udHlwZTsKCQl9LAoKCQlmaWxlOiBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuICJmaWxlIiA9PT0gZWxlbS50eXBlOwoJCX0sCgkJcGFzc3dvcmQ6IGZ1bmN0aW9uKCBlbGVtICkgewoJCQlyZXR1cm4gInBhc3N3b3JkIiA9PT0gZWxlbS50eXBlOwoJCX0sCgoJCXN1Ym1pdDogZnVuY3Rpb24oIGVsZW0gKSB7CgkJCXJldHVybiAic3VibWl0IiA9PT0gZWxlbS50eXBlOwoJCX0sCgoJCWltYWdlOiBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuICJpbWFnZSIgPT09IGVsZW0udHlwZTsKCQl9LAoKCQlyZXNldDogZnVuY3Rpb24oIGVsZW0gKSB7CgkJCXJldHVybiAicmVzZXQiID09PSBlbGVtLnR5cGU7CgkJfSwKCgkJYnV0dG9uOiBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuICJidXR0b24iID09PSBlbGVtLnR5cGUgfHwgZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAiYnV0dG9uIjsKCQl9LAoKCQlpbnB1dDogZnVuY3Rpb24oIGVsZW0gKSB7CgkJCXJldHVybiAoL2lucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24vaSkudGVzdCggZWxlbS5ub2RlTmFtZSApOwoJCX0KCX0sCglzZXRGaWx0ZXJzOiB7CgkJZmlyc3Q6IGZ1bmN0aW9uKCBlbGVtLCBpICkgewoJCQlyZXR1cm4gaSA9PT0gMDsKCQl9LAoKCQlsYXN0OiBmdW5jdGlvbiggZWxlbSwgaSwgbWF0Y2gsIGFycmF5ICkgewoJCQlyZXR1cm4gaSA9PT0gYXJyYXkubGVuZ3RoIC0gMTsKCQl9LAoKCQlldmVuOiBmdW5jdGlvbiggZWxlbSwgaSApIHsKCQkJcmV0dXJuIGkgJSAyID09PSAwOwoJCX0sCgoJCW9kZDogZnVuY3Rpb24oIGVsZW0sIGkgKSB7CgkJCXJldHVybiBpICUgMiA9PT0gMTsKCQl9LAoKCQlsdDogZnVuY3Rpb24oIGVsZW0sIGksIG1hdGNoICkgewoJCQlyZXR1cm4gaSA8IG1hdGNoWzNdIC0gMDsKCQl9LAoKCQlndDogZnVuY3Rpb24oIGVsZW0sIGksIG1hdGNoICkgewoJCQlyZXR1cm4gaSA+IG1hdGNoWzNdIC0gMDsKCQl9LAoKCQludGg6IGZ1bmN0aW9uKCBlbGVtLCBpLCBtYXRjaCApIHsKCQkJcmV0dXJuIG1hdGNoWzNdIC0gMCA9PT0gaTsKCQl9LAoKCQllcTogZnVuY3Rpb24oIGVsZW0sIGksIG1hdGNoICkgewoJCQlyZXR1cm4gbWF0Y2hbM10gLSAwID09PSBpOwoJCX0KCX0sCglmaWx0ZXI6IHsKCQlQU0VVRE86IGZ1bmN0aW9uKCBlbGVtLCBtYXRjaCwgaSwgYXJyYXkgKSB7CgkJCXZhciBuYW1lID0gbWF0Y2hbMV0sCgkJCQlmaWx0ZXIgPSBFeHByLmZpbHRlcnNbIG5hbWUgXTsKCgkJCWlmICggZmlsdGVyICkgewoJCQkJcmV0dXJuIGZpbHRlciggZWxlbSwgaSwgbWF0Y2gsIGFycmF5ICk7CgoJCQl9IGVsc2UgaWYgKCBuYW1lID09PSAiY29udGFpbnMiICkgewoJCQkJcmV0dXJuIChlbGVtLnRleHRDb250ZW50IHx8IGVsZW0uaW5uZXJUZXh0IHx8IFNpenpsZS5nZXRUZXh0KFsgZWxlbSBdKSB8fCAiIikuaW5kZXhPZihtYXRjaFszXSkgPj0gMDsKCgkJCX0gZWxzZSBpZiAoIG5hbWUgPT09ICJub3QiICkgewoJCQkJdmFyIG5vdCA9IG1hdGNoWzNdOwoKCQkJCWZvciAoIHZhciBqID0gMCwgbCA9IG5vdC5sZW5ndGg7IGogPCBsOyBqKysgKSB7CgkJCQkJaWYgKCBub3Rbal0gPT09IGVsZW0gKSB7CgkJCQkJCXJldHVybiBmYWxzZTsKCQkJCQl9CgkJCQl9CgoJCQkJcmV0dXJuIHRydWU7CgoJCQl9IGVsc2UgewoJCQkJU2l6emxlLmVycm9yKCBuYW1lICk7CgkJCX0KCQl9LAoKCQlDSElMRDogZnVuY3Rpb24oIGVsZW0sIG1hdGNoICkgewoJCQl2YXIgdHlwZSA9IG1hdGNoWzFdLAoJCQkJbm9kZSA9IGVsZW07CgoJCQlzd2l0Y2ggKCB0eXBlICkgewoJCQkJY2FzZSAib25seSI6CgkJCQljYXNlICJmaXJzdCI6CgkJCQkJd2hpbGUgKCAobm9kZSA9IG5vZGUucHJldmlvdXNTaWJsaW5nKSApCSB7CgkJCQkJCWlmICggbm9kZS5ub2RlVHlwZSA9PT0gMSApIHsgCgkJCQkJCQlyZXR1cm4gZmFsc2U7IAoJCQkJCQl9CgkJCQkJfQoKCQkJCQlpZiAoIHR5cGUgPT09ICJmaXJzdCIgKSB7IAoJCQkJCQlyZXR1cm4gdHJ1ZTsgCgkJCQkJfQoKCQkJCQlub2RlID0gZWxlbTsKCgkJCQljYXNlICJsYXN0IjoKCQkJCQl3aGlsZSAoIChub2RlID0gbm9kZS5uZXh0U2libGluZykgKQkgewoJCQkJCQlpZiAoIG5vZGUubm9kZVR5cGUgPT09IDEgKSB7IAoJCQkJCQkJcmV0dXJuIGZhbHNlOyAKCQkJCQkJfQoJCQkJCX0KCgkJCQkJcmV0dXJuIHRydWU7CgoJCQkJY2FzZSAibnRoIjoKCQkJCQl2YXIgZmlyc3QgPSBtYXRjaFsyXSwKCQkJCQkJbGFzdCA9IG1hdGNoWzNdOwoKCQkJCQlpZiAoIGZpcnN0ID09PSAxICYmIGxhc3QgPT09IDAgKSB7CgkJCQkJCXJldHVybiB0cnVlOwoJCQkJCX0KCQkJCQkKCQkJCQl2YXIgZG9uZU5hbWUgPSBtYXRjaFswXSwKCQkJCQkJcGFyZW50ID0gZWxlbS5wYXJlbnROb2RlOwoJCgkJCQkJaWYgKCBwYXJlbnQgJiYgKHBhcmVudC5zaXpjYWNoZSAhPT0gZG9uZU5hbWUgfHwgIWVsZW0ubm9kZUluZGV4KSApIHsKCQkJCQkJdmFyIGNvdW50ID0gMDsKCQkJCQkJCgkJCQkJCWZvciAoIG5vZGUgPSBwYXJlbnQuZmlyc3RDaGlsZDsgbm9kZTsgbm9kZSA9IG5vZGUubmV4dFNpYmxpbmcgKSB7CgkJCQkJCQlpZiAoIG5vZGUubm9kZVR5cGUgPT09IDEgKSB7CgkJCQkJCQkJbm9kZS5ub2RlSW5kZXggPSArK2NvdW50OwoJCQkJCQkJfQoJCQkJCQl9IAoKCQkJCQkJcGFyZW50LnNpemNhY2hlID0gZG9uZU5hbWU7CgkJCQkJfQoJCQkJCQoJCQkJCXZhciBkaWZmID0gZWxlbS5ub2RlSW5kZXggLSBsYXN0OwoKCQkJCQlpZiAoIGZpcnN0ID09PSAwICkgewoJCQkJCQlyZXR1cm4gZGlmZiA9PT0gMDsKCgkJCQkJfSBlbHNlIHsKCQkJCQkJcmV0dXJuICggZGlmZiAlIGZpcnN0ID09PSAwICYmIGRpZmYgLyBmaXJzdCA+PSAwICk7CgkJCQkJfQoJCQl9CgkJfSwKCgkJSUQ6IGZ1bmN0aW9uKCBlbGVtLCBtYXRjaCApIHsKCQkJcmV0dXJuIGVsZW0ubm9kZVR5cGUgPT09IDEgJiYgZWxlbS5nZXRBdHRyaWJ1dGUoImlkIikgPT09IG1hdGNoOwoJCX0sCgoJCVRBRzogZnVuY3Rpb24oIGVsZW0sIG1hdGNoICkgewoJCQlyZXR1cm4gKG1hdGNoID09PSAiKiIgJiYgZWxlbS5ub2RlVHlwZSA9PT0gMSkgfHwgZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSBtYXRjaDsKCQl9LAoJCQoJCUNMQVNTOiBmdW5jdGlvbiggZWxlbSwgbWF0Y2ggKSB7CgkJCXJldHVybiAoIiAiICsgKGVsZW0uY2xhc3NOYW1lIHx8IGVsZW0uZ2V0QXR0cmlidXRlKCJjbGFzcyIpKSArICIgIikKCQkJCS5pbmRleE9mKCBtYXRjaCApID4gLTE7CgkJfSwKCgkJQVRUUjogZnVuY3Rpb24oIGVsZW0sIG1hdGNoICkgewoJCQl2YXIgbmFtZSA9IG1hdGNoWzFdLAoJCQkJcmVzdWx0ID0gRXhwci5hdHRySGFuZGxlWyBuYW1lIF0gPwoJCQkJCUV4cHIuYXR0ckhhbmRsZVsgbmFtZSBdKCBlbGVtICkgOgoJCQkJCWVsZW1bIG5hbWUgXSAhPSBudWxsID8KCQkJCQkJZWxlbVsgbmFtZSBdIDoKCQkJCQkJZWxlbS5nZXRBdHRyaWJ1dGUoIG5hbWUgKSwKCQkJCXZhbHVlID0gcmVzdWx0ICsgIiIsCgkJCQl0eXBlID0gbWF0Y2hbMl0sCgkJCQljaGVjayA9IG1hdGNoWzRdOwoKCQkJcmV0dXJuIHJlc3VsdCA9PSBudWxsID8KCQkJCXR5cGUgPT09ICIhPSIgOgoJCQkJdHlwZSA9PT0gIj0iID8KCQkJCXZhbHVlID09PSBjaGVjayA6CgkJCQl0eXBlID09PSAiKj0iID8KCQkJCXZhbHVlLmluZGV4T2YoY2hlY2spID49IDAgOgoJCQkJdHlwZSA9PT0gIn49IiA/CgkJCQkoIiAiICsgdmFsdWUgKyAiICIpLmluZGV4T2YoY2hlY2spID49IDAgOgoJCQkJIWNoZWNrID8KCQkJCXZhbHVlICYmIHJlc3VsdCAhPT0gZmFsc2UgOgoJCQkJdHlwZSA9PT0gIiE9IiA/CgkJCQl2YWx1ZSAhPT0gY2hlY2sgOgoJCQkJdHlwZSA9PT0gIl49IiA/CgkJCQl2YWx1ZS5pbmRleE9mKGNoZWNrKSA9PT0gMCA6CgkJCQl0eXBlID09PSAiJD0iID8KCQkJCXZhbHVlLnN1YnN0cih2YWx1ZS5sZW5ndGggLSBjaGVjay5sZW5ndGgpID09PSBjaGVjayA6CgkJCQl0eXBlID09PSAifD0iID8KCQkJCXZhbHVlID09PSBjaGVjayB8fCB2YWx1ZS5zdWJzdHIoMCwgY2hlY2subGVuZ3RoICsgMSkgPT09IGNoZWNrICsgIi0iIDoKCQkJCWZhbHNlOwoJCX0sCgoJCVBPUzogZnVuY3Rpb24oIGVsZW0sIG1hdGNoLCBpLCBhcnJheSApIHsKCQkJdmFyIG5hbWUgPSBtYXRjaFsyXSwKCQkJCWZpbHRlciA9IEV4cHIuc2V0RmlsdGVyc1sgbmFtZSBdOwoKCQkJaWYgKCBmaWx0ZXIgKSB7CgkJCQlyZXR1cm4gZmlsdGVyKCBlbGVtLCBpLCBtYXRjaCwgYXJyYXkgKTsKCQkJfQoJCX0KCX0KfTsKCnZhciBvcmlnUE9TID0gRXhwci5tYXRjaC5QT1MsCglmZXNjYXBlID0gZnVuY3Rpb24oYWxsLCBudW0pewoJCXJldHVybiAiXFwiICsgKG51bSAtIDAgKyAxKTsKCX07Cgpmb3IgKCB2YXIgdHlwZSBpbiBFeHByLm1hdGNoICkgewoJRXhwci5tYXRjaFsgdHlwZSBdID0gbmV3IFJlZ0V4cCggRXhwci5tYXRjaFsgdHlwZSBdLnNvdXJjZSArICgvKD8hW15cW10qXF0pKD8hW15cKF0qXCkpLy5zb3VyY2UpICk7CglFeHByLmxlZnRNYXRjaFsgdHlwZSBdID0gbmV3IFJlZ0V4cCggLyheKD86LnxccnxcbikqPykvLnNvdXJjZSArIEV4cHIubWF0Y2hbIHR5cGUgXS5zb3VyY2UucmVwbGFjZSgvXFwoXGQrKS9nLCBmZXNjYXBlKSApOwp9Cgp2YXIgbWFrZUFycmF5ID0gZnVuY3Rpb24oIGFycmF5LCByZXN1bHRzICkgewoJYXJyYXkgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCggYXJyYXksIDAgKTsKCglpZiAoIHJlc3VsdHMgKSB7CgkJcmVzdWx0cy5wdXNoLmFwcGx5KCByZXN1bHRzLCBhcnJheSApOwoJCXJldHVybiByZXN1bHRzOwoJfQoJCglyZXR1cm4gYXJyYXk7Cn07CgovLyBQZXJmb3JtIGEgc2ltcGxlIGNoZWNrIHRvIGRldGVybWluZSBpZiB0aGUgYnJvd3NlciBpcyBjYXBhYmxlIG9mCi8vIGNvbnZlcnRpbmcgYSBOb2RlTGlzdCB0byBhbiBhcnJheSB1c2luZyBidWlsdGluIG1ldGhvZHMuCi8vIEFsc28gdmVyaWZpZXMgdGhhdCB0aGUgcmV0dXJuZWQgYXJyYXkgaG9sZHMgRE9NIG5vZGVzCi8vICh3aGljaCBpcyBub3QgdGhlIGNhc2UgaW4gdGhlIEJsYWNrYmVycnkgYnJvd3NlcikKdHJ5IHsKCUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2hpbGROb2RlcywgMCApWzBdLm5vZGVUeXBlOwoKLy8gUHJvdmlkZSBhIGZhbGxiYWNrIG1ldGhvZCBpZiBpdCBkb2VzIG5vdCB3b3JrCn0gY2F0Y2goIGUgKSB7CgltYWtlQXJyYXkgPSBmdW5jdGlvbiggYXJyYXksIHJlc3VsdHMgKSB7CgkJdmFyIGkgPSAwLAoJCQlyZXQgPSByZXN1bHRzIHx8IFtdOwoKCQlpZiAoIHRvU3RyaW5nLmNhbGwoYXJyYXkpID09PSAiW29iamVjdCBBcnJheV0iICkgewoJCQlBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseSggcmV0LCBhcnJheSApOwoKCQl9IGVsc2UgewoJCQlpZiAoIHR5cGVvZiBhcnJheS5sZW5ndGggPT09ICJudW1iZXIiICkgewoJCQkJZm9yICggdmFyIGwgPSBhcnJheS5sZW5ndGg7IGkgPCBsOyBpKysgKSB7CgkJCQkJcmV0LnB1c2goIGFycmF5W2ldICk7CgkJCQl9CgoJCQl9IGVsc2UgewoJCQkJZm9yICggOyBhcnJheVtpXTsgaSsrICkgewoJCQkJCXJldC5wdXNoKCBhcnJheVtpXSApOwoJCQkJfQoJCQl9CgkJfQoKCQlyZXR1cm4gcmV0OwoJfTsKfQoKdmFyIHNvcnRPcmRlciwgc2libGluZ0NoZWNrOwoKaWYgKCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY29tcGFyZURvY3VtZW50UG9zaXRpb24gKSB7Cglzb3J0T3JkZXIgPSBmdW5jdGlvbiggYSwgYiApIHsKCQlpZiAoIGEgPT09IGIgKSB7CgkJCWhhc0R1cGxpY2F0ZSA9IHRydWU7CgkJCXJldHVybiAwOwoJCX0KCgkJaWYgKCAhYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiB8fCAhYi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiApIHsKCQkJcmV0dXJuIGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24gPyAtMSA6IDE7CgkJfQoKCQlyZXR1cm4gYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKSAmIDQgPyAtMSA6IDE7Cgl9OwoKfSBlbHNlIHsKCXNvcnRPcmRlciA9IGZ1bmN0aW9uKCBhLCBiICkgewoJCXZhciBhbCwgYmwsCgkJCWFwID0gW10sCgkJCWJwID0gW10sCgkJCWF1cCA9IGEucGFyZW50Tm9kZSwKCQkJYnVwID0gYi5wYXJlbnROb2RlLAoJCQljdXIgPSBhdXA7CgoJCS8vIFRoZSBub2RlcyBhcmUgaWRlbnRpY2FsLCB3ZSBjYW4gZXhpdCBlYXJseQoJCWlmICggYSA9PT0gYiApIHsKCQkJaGFzRHVwbGljYXRlID0gdHJ1ZTsKCQkJcmV0dXJuIDA7CgoJCS8vIElmIHRoZSBub2RlcyBhcmUgc2libGluZ3MgKG9yIGlkZW50aWNhbCkgd2UgY2FuIGRvIGEgcXVpY2sgY2hlY2sKCQl9IGVsc2UgaWYgKCBhdXAgPT09IGJ1cCApIHsKCQkJcmV0dXJuIHNpYmxpbmdDaGVjayggYSwgYiApOwoKCQkvLyBJZiBubyBwYXJlbnRzIHdlcmUgZm91bmQgdGhlbiB0aGUgbm9kZXMgYXJlIGRpc2Nvbm5lY3RlZAoJCX0gZWxzZSBpZiAoICFhdXAgKSB7CgkJCXJldHVybiAtMTsKCgkJfSBlbHNlIGlmICggIWJ1cCApIHsKCQkJcmV0dXJuIDE7CgkJfQoKCQkvLyBPdGhlcndpc2UgdGhleSdyZSBzb21ld2hlcmUgZWxzZSBpbiB0aGUgdHJlZSBzbyB3ZSBuZWVkCgkJLy8gdG8gYnVpbGQgdXAgYSBmdWxsIGxpc3Qgb2YgdGhlIHBhcmVudE5vZGVzIGZvciBjb21wYXJpc29uCgkJd2hpbGUgKCBjdXIgKSB7CgkJCWFwLnVuc2hpZnQoIGN1ciApOwoJCQljdXIgPSBjdXIucGFyZW50Tm9kZTsKCQl9CgoJCWN1ciA9IGJ1cDsKCgkJd2hpbGUgKCBjdXIgKSB7CgkJCWJwLnVuc2hpZnQoIGN1ciApOwoJCQljdXIgPSBjdXIucGFyZW50Tm9kZTsKCQl9CgoJCWFsID0gYXAubGVuZ3RoOwoJCWJsID0gYnAubGVuZ3RoOwoKCQkvLyBTdGFydCB3YWxraW5nIGRvd24gdGhlIHRyZWUgbG9va2luZyBmb3IgYSBkaXNjcmVwYW5jeQoJCWZvciAoIHZhciBpID0gMDsgaSA8IGFsICYmIGkgPCBibDsgaSsrICkgewoJCQlpZiAoIGFwW2ldICE9PSBicFtpXSApIHsKCQkJCXJldHVybiBzaWJsaW5nQ2hlY2soIGFwW2ldLCBicFtpXSApOwoJCQl9CgkJfQoKCQkvLyBXZSBlbmRlZCBzb21lcGxhY2UgdXAgdGhlIHRyZWUgc28gZG8gYSBzaWJsaW5nIGNoZWNrCgkJcmV0dXJuIGkgPT09IGFsID8KCQkJc2libGluZ0NoZWNrKCBhLCBicFtpXSwgLTEgKSA6CgkJCXNpYmxpbmdDaGVjayggYXBbaV0sIGIsIDEgKTsKCX07CgoJc2libGluZ0NoZWNrID0gZnVuY3Rpb24oIGEsIGIsIHJldCApIHsKCQlpZiAoIGEgPT09IGIgKSB7CgkJCXJldHVybiByZXQ7CgkJfQoKCQl2YXIgY3VyID0gYS5uZXh0U2libGluZzsKCgkJd2hpbGUgKCBjdXIgKSB7CgkJCWlmICggY3VyID09PSBiICkgewoJCQkJcmV0dXJuIC0xOwoJCQl9CgoJCQljdXIgPSBjdXIubmV4dFNpYmxpbmc7CgkJfQoKCQlyZXR1cm4gMTsKCX07Cn0KCi8vIFV0aWxpdHkgZnVuY3Rpb24gZm9yIHJldHJlaXZpbmcgdGhlIHRleHQgdmFsdWUgb2YgYW4gYXJyYXkgb2YgRE9NIG5vZGVzClNpenpsZS5nZXRUZXh0ID0gZnVuY3Rpb24oIGVsZW1zICkgewoJdmFyIHJldCA9ICIiLCBlbGVtOwoKCWZvciAoIHZhciBpID0gMDsgZWxlbXNbaV07IGkrKyApIHsKCQllbGVtID0gZWxlbXNbaV07CgoJCS8vIEdldCB0aGUgdGV4dCBmcm9tIHRleHQgbm9kZXMgYW5kIENEQVRBIG5vZGVzCgkJaWYgKCBlbGVtLm5vZGVUeXBlID09PSAzIHx8IGVsZW0ubm9kZVR5cGUgPT09IDQgKSB7CgkJCXJldCArPSBlbGVtLm5vZGVWYWx1ZTsKCgkJLy8gVHJhdmVyc2UgZXZlcnl0aGluZyBlbHNlLCBleGNlcHQgY29tbWVudCBub2RlcwoJCX0gZWxzZSBpZiAoIGVsZW0ubm9kZVR5cGUgIT09IDggKSB7CgkJCXJldCArPSBTaXp6bGUuZ2V0VGV4dCggZWxlbS5jaGlsZE5vZGVzICk7CgkJfQoJfQoKCXJldHVybiByZXQ7Cn07CgovLyBDaGVjayB0byBzZWUgaWYgdGhlIGJyb3dzZXIgcmV0dXJucyBlbGVtZW50cyBieSBuYW1lIHdoZW4KLy8gcXVlcnlpbmcgYnkgZ2V0RWxlbWVudEJ5SWQgKGFuZCBwcm92aWRlIGEgd29ya2Fyb3VuZCkKKGZ1bmN0aW9uKCl7CgkvLyBXZSdyZSBnb2luZyB0byBpbmplY3QgYSBmYWtlIGlucHV0IGVsZW1lbnQgd2l0aCBhIHNwZWNpZmllZCBuYW1lCgl2YXIgZm9ybSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLAoJCWlkID0gInNjcmlwdCIgKyAobmV3IERhdGUoKSkuZ2V0VGltZSgpLAoJCXJvb3QgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CgoJZm9ybS5pbm5lckhUTUwgPSAiPGEgbmFtZT0nIiArIGlkICsgIicvPiI7CgoJLy8gSW5qZWN0IGl0IGludG8gdGhlIHJvb3QgZWxlbWVudCwgY2hlY2sgaXRzIHN0YXR1cywgYW5kIHJlbW92ZSBpdCBxdWlja2x5Cglyb290Lmluc2VydEJlZm9yZSggZm9ybSwgcm9vdC5maXJzdENoaWxkICk7CgoJLy8gVGhlIHdvcmthcm91bmQgaGFzIHRvIGRvIGFkZGl0aW9uYWwgY2hlY2tzIGFmdGVyIGEgZ2V0RWxlbWVudEJ5SWQKCS8vIFdoaWNoIHNsb3dzIHRoaW5ncyBkb3duIGZvciBvdGhlciBicm93c2VycyAoaGVuY2UgdGhlIGJyYW5jaGluZykKCWlmICggZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIGlkICkgKSB7CgkJRXhwci5maW5kLklEID0gZnVuY3Rpb24oIG1hdGNoLCBjb250ZXh0LCBpc1hNTCApIHsKCQkJaWYgKCB0eXBlb2YgY29udGV4dC5nZXRFbGVtZW50QnlJZCAhPT0gInVuZGVmaW5lZCIgJiYgIWlzWE1MICkgewoJCQkJdmFyIG0gPSBjb250ZXh0LmdldEVsZW1lbnRCeUlkKG1hdGNoWzFdKTsKCgkJCQlyZXR1cm4gbSA/CgkJCQkJbS5pZCA9PT0gbWF0Y2hbMV0gfHwgdHlwZW9mIG0uZ2V0QXR0cmlidXRlTm9kZSAhPT0gInVuZGVmaW5lZCIgJiYgbS5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpLm5vZGVWYWx1ZSA9PT0gbWF0Y2hbMV0gPwoJCQkJCQlbbV0gOgoJCQkJCQl1bmRlZmluZWQgOgoJCQkJCVtdOwoJCQl9CgkJfTsKCgkJRXhwci5maWx0ZXIuSUQgPSBmdW5jdGlvbiggZWxlbSwgbWF0Y2ggKSB7CgkJCXZhciBub2RlID0gdHlwZW9mIGVsZW0uZ2V0QXR0cmlidXRlTm9kZSAhPT0gInVuZGVmaW5lZCIgJiYgZWxlbS5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpOwoKCQkJcmV0dXJuIGVsZW0ubm9kZVR5cGUgPT09IDEgJiYgbm9kZSAmJiBub2RlLm5vZGVWYWx1ZSA9PT0gbWF0Y2g7CgkJfTsKCX0KCglyb290LnJlbW92ZUNoaWxkKCBmb3JtICk7CgoJLy8gcmVsZWFzZSBtZW1vcnkgaW4gSUUKCXJvb3QgPSBmb3JtID0gbnVsbDsKfSkoKTsKCihmdW5jdGlvbigpewoJLy8gQ2hlY2sgdG8gc2VlIGlmIHRoZSBicm93c2VyIHJldHVybnMgb25seSBlbGVtZW50cwoJLy8gd2hlbiBkb2luZyBnZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpCgoJLy8gQ3JlYXRlIGEgZmFrZSBlbGVtZW50Cgl2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CglkaXYuYXBwZW5kQ2hpbGQoIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoIiIpICk7CgoJLy8gTWFrZSBzdXJlIG5vIGNvbW1lbnRzIGFyZSBmb3VuZAoJaWYgKCBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKS5sZW5ndGggPiAwICkgewoJCUV4cHIuZmluZC5UQUcgPSBmdW5jdGlvbiggbWF0Y2gsIGNvbnRleHQgKSB7CgkJCXZhciByZXN1bHRzID0gY29udGV4dC5nZXRFbGVtZW50c0J5VGFnTmFtZSggbWF0Y2hbMV0gKTsKCgkJCS8vIEZpbHRlciBvdXQgcG9zc2libGUgY29tbWVudHMKCQkJaWYgKCBtYXRjaFsxXSA9PT0gIioiICkgewoJCQkJdmFyIHRtcCA9IFtdOwoKCQkJCWZvciAoIHZhciBpID0gMDsgcmVzdWx0c1tpXTsgaSsrICkgewoJCQkJCWlmICggcmVzdWx0c1tpXS5ub2RlVHlwZSA9PT0gMSApIHsKCQkJCQkJdG1wLnB1c2goIHJlc3VsdHNbaV0gKTsKCQkJCQl9CgkJCQl9CgoJCQkJcmVzdWx0cyA9IHRtcDsKCQkJfQoKCQkJcmV0dXJuIHJlc3VsdHM7CgkJfTsKCX0KCgkvLyBDaGVjayB0byBzZWUgaWYgYW4gYXR0cmlidXRlIHJldHVybnMgbm9ybWFsaXplZCBocmVmIGF0dHJpYnV0ZXMKCWRpdi5pbm5lckhUTUwgPSAiPGEgaHJlZj0nIyc+PC9hPiI7CgoJaWYgKCBkaXYuZmlyc3RDaGlsZCAmJiB0eXBlb2YgZGl2LmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlICE9PSAidW5kZWZpbmVkIiAmJgoJCQlkaXYuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoImhyZWYiKSAhPT0gIiMiICkgewoKCQlFeHByLmF0dHJIYW5kbGUuaHJlZiA9IGZ1bmN0aW9uKCBlbGVtICkgewoJCQlyZXR1cm4gZWxlbS5nZXRBdHRyaWJ1dGUoICJocmVmIiwgMiApOwoJCX07Cgl9CgoJLy8gcmVsZWFzZSBtZW1vcnkgaW4gSUUKCWRpdiA9IG51bGw7Cn0pKCk7CgppZiAoIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgKSB7CgkoZnVuY3Rpb24oKXsKCQl2YXIgb2xkU2l6emxlID0gU2l6emxlLAoJCQlkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSwKCQkJaWQgPSAiX19zaXp6bGVfXyI7CgoJCWRpdi5pbm5lckhUTUwgPSAiPHAgY2xhc3M9J1RFU1QnPjwvcD4iOwoKCQkvLyBTYWZhcmkgY2FuJ3QgaGFuZGxlIHVwcGVyY2FzZSBvciB1bmljb2RlIGNoYXJhY3RlcnMgd2hlbgoJCS8vIGluIHF1aXJrcyBtb2RlLgoJCWlmICggZGl2LnF1ZXJ5U2VsZWN0b3JBbGwgJiYgZGl2LnF1ZXJ5U2VsZWN0b3JBbGwoIi5URVNUIikubGVuZ3RoID09PSAwICkgewoJCQlyZXR1cm47CgkJfQoJCgkJU2l6emxlID0gZnVuY3Rpb24oIHF1ZXJ5LCBjb250ZXh0LCBleHRyYSwgc2VlZCApIHsKCQkJY29udGV4dCA9IGNvbnRleHQgfHwgZG9jdW1lbnQ7CgoJCQkvLyBPbmx5IHVzZSBxdWVyeVNlbGVjdG9yQWxsIG9uIG5vbi1YTUwgZG9jdW1lbnRzCgkJCS8vIChJRCBzZWxlY3RvcnMgZG9uJ3Qgd29yayBpbiBub24tSFRNTCBkb2N1bWVudHMpCgkJCWlmICggIXNlZWQgJiYgIVNpenpsZS5pc1hNTChjb250ZXh0KSApIHsKCQkJCS8vIFNlZSBpZiB3ZSBmaW5kIGEgc2VsZWN0b3IgdG8gc3BlZWQgdXAKCQkJCXZhciBtYXRjaCA9IC9eKFx3KyQpfF5cLihbXHdcLV0rJCl8XiMoW1x3XC1dKyQpLy5leGVjKCBxdWVyeSApOwoJCQkJCgkJCQlpZiAoIG1hdGNoICYmIChjb250ZXh0Lm5vZGVUeXBlID09PSAxIHx8IGNvbnRleHQubm9kZVR5cGUgPT09IDkpICkgewoJCQkJCS8vIFNwZWVkLXVwOiBTaXp6bGUoIlRBRyIpCgkJCQkJaWYgKCBtYXRjaFsxXSApIHsKCQkJCQkJcmV0dXJuIG1ha2VBcnJheSggY29udGV4dC5nZXRFbGVtZW50c0J5VGFnTmFtZSggcXVlcnkgKSwgZXh0cmEgKTsKCQkJCQkKCQkJCQkvLyBTcGVlZC11cDogU2l6emxlKCIuQ0xBU1MiKQoJCQkJCX0gZWxzZSBpZiAoIG1hdGNoWzJdICYmIEV4cHIuZmluZC5DTEFTUyAmJiBjb250ZXh0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUgKSB7CgkJCQkJCXJldHVybiBtYWtlQXJyYXkoIGNvbnRleHQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSggbWF0Y2hbMl0gKSwgZXh0cmEgKTsKCQkJCQl9CgkJCQl9CgkJCQkKCQkJCWlmICggY29udGV4dC5ub2RlVHlwZSA9PT0gOSApIHsKCQkJCQkvLyBTcGVlZC11cDogU2l6emxlKCJib2R5IikKCQkJCQkvLyBUaGUgYm9keSBlbGVtZW50IG9ubHkgZXhpc3RzIG9uY2UsIG9wdGltaXplIGZpbmRpbmcgaXQKCQkJCQlpZiAoIHF1ZXJ5ID09PSAiYm9keSIgJiYgY29udGV4dC5ib2R5ICkgewoJCQkJCQlyZXR1cm4gbWFrZUFycmF5KCBbIGNvbnRleHQuYm9keSBdLCBleHRyYSApOwoJCQkJCQkKCQkJCQkvLyBTcGVlZC11cDogU2l6emxlKCIjSUQiKQoJCQkJCX0gZWxzZSBpZiAoIG1hdGNoICYmIG1hdGNoWzNdICkgewoJCQkJCQl2YXIgZWxlbSA9IGNvbnRleHQuZ2V0RWxlbWVudEJ5SWQoIG1hdGNoWzNdICk7CgoJCQkJCQkvLyBDaGVjayBwYXJlbnROb2RlIHRvIGNhdGNoIHdoZW4gQmxhY2tiZXJyeSA0LjYgcmV0dXJucwoJCQkJCQkvLyBub2RlcyB0aGF0IGFyZSBubyBsb25nZXIgaW4gdGhlIGRvY3VtZW50ICM2OTYzCgkJCQkJCWlmICggZWxlbSAmJiBlbGVtLnBhcmVudE5vZGUgKSB7CgkJCQkJCQkvLyBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgSUUgYW5kIE9wZXJhIHJldHVybiBpdGVtcwoJCQkJCQkJLy8gYnkgbmFtZSBpbnN0ZWFkIG9mIElECgkJCQkJCQlpZiAoIGVsZW0uaWQgPT09IG1hdGNoWzNdICkgewoJCQkJCQkJCXJldHVybiBtYWtlQXJyYXkoIFsgZWxlbSBdLCBleHRyYSApOwoJCQkJCQkJfQoJCQkJCQkJCgkJCQkJCX0gZWxzZSB7CgkJCQkJCQlyZXR1cm4gbWFrZUFycmF5KCBbXSwgZXh0cmEgKTsKCQkJCQkJfQoJCQkJCX0KCQkJCQkKCQkJCQl0cnkgewoJCQkJCQlyZXR1cm4gbWFrZUFycmF5KCBjb250ZXh0LnF1ZXJ5U2VsZWN0b3JBbGwocXVlcnkpLCBleHRyYSApOwoJCQkJCX0gY2F0Y2gocXNhRXJyb3IpIHt9CgoJCQkJLy8gcVNBIHdvcmtzIHN0cmFuZ2VseSBvbiBFbGVtZW50LXJvb3RlZCBxdWVyaWVzCgkJCQkvLyBXZSBjYW4gd29yayBhcm91bmQgdGhpcyBieSBzcGVjaWZ5aW5nIGFuIGV4dHJhIElEIG9uIHRoZSByb290CgkJCQkvLyBhbmQgd29ya2luZyB1cCBmcm9tIHRoZXJlIChUaGFua3MgdG8gQW5kcmV3IER1cG9udCBmb3IgdGhlIHRlY2huaXF1ZSkKCQkJCS8vIElFIDggZG9lc24ndCB3b3JrIG9uIG9iamVjdCBlbGVtZW50cwoJCQkJfSBlbHNlIGlmICggY29udGV4dC5ub2RlVHlwZSA9PT0gMSAmJiBjb250ZXh0Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgIT09ICJvYmplY3QiICkgewoJCQkJCXZhciBvbGRDb250ZXh0ID0gY29udGV4dCwKCQkJCQkJb2xkID0gY29udGV4dC5nZXRBdHRyaWJ1dGUoICJpZCIgKSwKCQkJCQkJbmlkID0gb2xkIHx8IGlkLAoJCQkJCQloYXNQYXJlbnQgPSBjb250ZXh0LnBhcmVudE5vZGUsCgkJCQkJCXJlbGF0aXZlSGllcmFyY2h5U2VsZWN0b3IgPSAvXlxzKlsrfl0vLnRlc3QoIHF1ZXJ5ICk7CgoJCQkJCWlmICggIW9sZCApIHsKCQkJCQkJY29udGV4dC5zZXRBdHRyaWJ1dGUoICJpZCIsIG5pZCApOwoJCQkJCX0gZWxzZSB7CgkJCQkJCW5pZCA9IG5pZC5yZXBsYWNlKCAvJy9nLCAiXFwkJiIgKTsKCQkJCQl9CgkJCQkJaWYgKCByZWxhdGl2ZUhpZXJhcmNoeVNlbGVjdG9yICYmIGhhc1BhcmVudCApIHsKCQkJCQkJY29udGV4dCA9IGNvbnRleHQucGFyZW50Tm9kZTsKCQkJCQl9CgoJCQkJCXRyeSB7CgkJCQkJCWlmICggIXJlbGF0aXZlSGllcmFyY2h5U2VsZWN0b3IgfHwgaGFzUGFyZW50ICkgewoJCQkJCQkJcmV0dXJuIG1ha2VBcnJheSggY29udGV4dC5xdWVyeVNlbGVjdG9yQWxsKCAiW2lkPSciICsgbmlkICsgIiddICIgKyBxdWVyeSApLCBleHRyYSApOwoJCQkJCQl9CgoJCQkJCX0gY2F0Y2gocHNldWRvRXJyb3IpIHsKCQkJCQl9IGZpbmFsbHkgewoJCQkJCQlpZiAoICFvbGQgKSB7CgkJCQkJCQlvbGRDb250ZXh0LnJlbW92ZUF0dHJpYnV0ZSggImlkIiApOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9CgkJCgkJCXJldHVybiBvbGRTaXp6bGUocXVlcnksIGNvbnRleHQsIGV4dHJhLCBzZWVkKTsKCQl9OwoKCQlmb3IgKCB2YXIgcHJvcCBpbiBvbGRTaXp6bGUgKSB7CgkJCVNpenpsZVsgcHJvcCBdID0gb2xkU2l6emxlWyBwcm9wIF07CgkJfQoKCQkvLyByZWxlYXNlIG1lbW9yeSBpbiBJRQoJCWRpdiA9IG51bGw7Cgl9KSgpOwp9CgooZnVuY3Rpb24oKXsKCXZhciBodG1sID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LAoJCW1hdGNoZXMgPSBodG1sLm1hdGNoZXNTZWxlY3RvciB8fCBodG1sLm1vek1hdGNoZXNTZWxlY3RvciB8fCBodG1sLndlYmtpdE1hdGNoZXNTZWxlY3RvciB8fCBodG1sLm1zTWF0Y2hlc1NlbGVjdG9yLAoJCXBzZXVkb1dvcmtzID0gZmFsc2U7CgoJdHJ5IHsKCQkvLyBUaGlzIHNob3VsZCBmYWlsIHdpdGggYW4gZXhjZXB0aW9uCgkJLy8gR2Vja28gZG9lcyBub3QgZXJyb3IsIHJldHVybnMgZmFsc2UgaW5zdGVhZAoJCW1hdGNoZXMuY2FsbCggZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCAiW3Rlc3QhPScnXTpzaXp6bGUiICk7CgkKCX0gY2F0Y2goIHBzZXVkb0Vycm9yICkgewoJCXBzZXVkb1dvcmtzID0gdHJ1ZTsKCX0KCglpZiAoIG1hdGNoZXMgKSB7CgkJU2l6emxlLm1hdGNoZXNTZWxlY3RvciA9IGZ1bmN0aW9uKCBub2RlLCBleHByICkgewoJCQkvLyBNYWtlIHN1cmUgdGhhdCBhdHRyaWJ1dGUgc2VsZWN0b3JzIGFyZSBxdW90ZWQKCQkJZXhwciA9IGV4cHIucmVwbGFjZSgvXD1ccyooW14nIlxdXSopXHMqXF0vZywgIj0nJDEnXSIpOwoKCQkJaWYgKCAhU2l6emxlLmlzWE1MKCBub2RlICkgKSB7CgkJCQl0cnkgeyAKCQkJCQlpZiAoIHBzZXVkb1dvcmtzIHx8ICFFeHByLm1hdGNoLlBTRVVETy50ZXN0KCBleHByICkgJiYgIS8hPS8udGVzdCggZXhwciApICkgewoJCQkJCQlyZXR1cm4gbWF0Y2hlcy5jYWxsKCBub2RlLCBleHByICk7CgkJCQkJfQoJCQkJfSBjYXRjaChlKSB7fQoJCQl9CgoJCQlyZXR1cm4gU2l6emxlKGV4cHIsIG51bGwsIG51bGwsIFtub2RlXSkubGVuZ3RoID4gMDsKCQl9OwoJfQp9KSgpOwoKKGZ1bmN0aW9uKCl7Cgl2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CgoJZGl2LmlubmVySFRNTCA9ICI8ZGl2IGNsYXNzPSd0ZXN0IGUnPjwvZGl2PjxkaXYgY2xhc3M9J3Rlc3QnPjwvZGl2PiI7CgoJLy8gT3BlcmEgY2FuJ3QgZmluZCBhIHNlY29uZCBjbGFzc25hbWUgKGluIDkuNikKCS8vIEFsc28sIG1ha2Ugc3VyZSB0aGF0IGdldEVsZW1lbnRzQnlDbGFzc05hbWUgYWN0dWFsbHkgZXhpc3RzCglpZiAoICFkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSB8fCBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiZSIpLmxlbmd0aCA9PT0gMCApIHsKCQlyZXR1cm47Cgl9CgoJLy8gU2FmYXJpIGNhY2hlcyBjbGFzcyBhdHRyaWJ1dGVzLCBkb2Vzbid0IGNhdGNoIGNoYW5nZXMgKGluIDMuMikKCWRpdi5sYXN0Q2hpbGQuY2xhc3NOYW1lID0gImUiOwoKCWlmICggZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImUiKS5sZW5ndGggPT09IDEgKSB7CgkJcmV0dXJuOwoJfQoJCglFeHByLm9yZGVyLnNwbGljZSgxLCAwLCAiQ0xBU1MiKTsKCUV4cHIuZmluZC5DTEFTUyA9IGZ1bmN0aW9uKCBtYXRjaCwgY29udGV4dCwgaXNYTUwgKSB7CgkJaWYgKCB0eXBlb2YgY29udGV4dC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lICE9PSAidW5kZWZpbmVkIiAmJiAhaXNYTUwgKSB7CgkJCXJldHVybiBjb250ZXh0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUobWF0Y2hbMV0pOwoJCX0KCX07CgoJLy8gcmVsZWFzZSBtZW1vcnkgaW4gSUUKCWRpdiA9IG51bGw7Cn0pKCk7CgpmdW5jdGlvbiBkaXJOb2RlQ2hlY2soIGRpciwgY3VyLCBkb25lTmFtZSwgY2hlY2tTZXQsIG5vZGVDaGVjaywgaXNYTUwgKSB7Cglmb3IgKCB2YXIgaSA9IDAsIGwgPSBjaGVja1NldC5sZW5ndGg7IGkgPCBsOyBpKysgKSB7CgkJdmFyIGVsZW0gPSBjaGVja1NldFtpXTsKCgkJaWYgKCBlbGVtICkgewoJCQl2YXIgbWF0Y2ggPSBmYWxzZTsKCgkJCWVsZW0gPSBlbGVtW2Rpcl07CgoJCQl3aGlsZSAoIGVsZW0gKSB7CgkJCQlpZiAoIGVsZW0uc2l6Y2FjaGUgPT09IGRvbmVOYW1lICkgewoJCQkJCW1hdGNoID0gY2hlY2tTZXRbZWxlbS5zaXpzZXRdOwoJCQkJCWJyZWFrOwoJCQkJfQoKCQkJCWlmICggZWxlbS5ub2RlVHlwZSA9PT0gMSAmJiAhaXNYTUwgKXsKCQkJCQllbGVtLnNpemNhY2hlID0gZG9uZU5hbWU7CgkJCQkJZWxlbS5zaXpzZXQgPSBpOwoJCQkJfQoKCQkJCWlmICggZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSBjdXIgKSB7CgkJCQkJbWF0Y2ggPSBlbGVtOwoJCQkJCWJyZWFrOwoJCQkJfQoKCQkJCWVsZW0gPSBlbGVtW2Rpcl07CgkJCX0KCgkJCWNoZWNrU2V0W2ldID0gbWF0Y2g7CgkJfQoJfQp9CgpmdW5jdGlvbiBkaXJDaGVjayggZGlyLCBjdXIsIGRvbmVOYW1lLCBjaGVja1NldCwgbm9kZUNoZWNrLCBpc1hNTCApIHsKCWZvciAoIHZhciBpID0gMCwgbCA9IGNoZWNrU2V0Lmxlbmd0aDsgaSA8IGw7IGkrKyApIHsKCQl2YXIgZWxlbSA9IGNoZWNrU2V0W2ldOwoKCQlpZiAoIGVsZW0gKSB7CgkJCXZhciBtYXRjaCA9IGZhbHNlOwoJCQkKCQkJZWxlbSA9IGVsZW1bZGlyXTsKCgkJCXdoaWxlICggZWxlbSApIHsKCQkJCWlmICggZWxlbS5zaXpjYWNoZSA9PT0gZG9uZU5hbWUgKSB7CgkJCQkJbWF0Y2ggPSBjaGVja1NldFtlbGVtLnNpenNldF07CgkJCQkJYnJlYWs7CgkJCQl9CgoJCQkJaWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICkgewoJCQkJCWlmICggIWlzWE1MICkgewoJCQkJCQllbGVtLnNpemNhY2hlID0gZG9uZU5hbWU7CgkJCQkJCWVsZW0uc2l6c2V0ID0gaTsKCQkJCQl9CgoJCQkJCWlmICggdHlwZW9mIGN1ciAhPT0gInN0cmluZyIgKSB7CgkJCQkJCWlmICggZWxlbSA9PT0gY3VyICkgewoJCQkJCQkJbWF0Y2ggPSB0cnVlOwoJCQkJCQkJYnJlYWs7CgkJCQkJCX0KCgkJCQkJfSBlbHNlIGlmICggU2l6emxlLmZpbHRlciggY3VyLCBbZWxlbV0gKS5sZW5ndGggPiAwICkgewoJCQkJCQltYXRjaCA9IGVsZW07CgkJCQkJCWJyZWFrOwoJCQkJCX0KCQkJCX0KCgkJCQllbGVtID0gZWxlbVtkaXJdOwoJCQl9CgoJCQljaGVja1NldFtpXSA9IG1hdGNoOwoJCX0KCX0KfQoKaWYgKCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY29udGFpbnMgKSB7CglTaXp6bGUuY29udGFpbnMgPSBmdW5jdGlvbiggYSwgYiApIHsKCQlyZXR1cm4gYSAhPT0gYiAmJiAoYS5jb250YWlucyA/IGEuY29udGFpbnMoYikgOiB0cnVlKTsKCX07Cgp9IGVsc2UgaWYgKCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY29tcGFyZURvY3VtZW50UG9zaXRpb24gKSB7CglTaXp6bGUuY29udGFpbnMgPSBmdW5jdGlvbiggYSwgYiApIHsKCQlyZXR1cm4gISEoYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKSAmIDE2KTsKCX07Cgp9IGVsc2UgewoJU2l6emxlLmNvbnRhaW5zID0gZnVuY3Rpb24oKSB7CgkJcmV0dXJuIGZhbHNlOwoJfTsKfQoKU2l6emxlLmlzWE1MID0gZnVuY3Rpb24oIGVsZW0gKSB7CgkvLyBkb2N1bWVudEVsZW1lbnQgaXMgdmVyaWZpZWQgZm9yIGNhc2VzIHdoZXJlIGl0IGRvZXNuJ3QgeWV0IGV4aXN0CgkvLyAoc3VjaCBhcyBsb2FkaW5nIGlmcmFtZXMgaW4gSUUgLSAjNDgzMykgCgl2YXIgZG9jdW1lbnRFbGVtZW50ID0gKGVsZW0gPyBlbGVtLm93bmVyRG9jdW1lbnQgfHwgZWxlbSA6IDApLmRvY3VtZW50RWxlbWVudDsKCglyZXR1cm4gZG9jdW1lbnRFbGVtZW50ID8gZG9jdW1lbnRFbGVtZW50Lm5vZGVOYW1lICE9PSAiSFRNTCIgOiBmYWxzZTsKfTsKCnZhciBwb3NQcm9jZXNzID0gZnVuY3Rpb24oIHNlbGVjdG9yLCBjb250ZXh0ICkgewoJdmFyIG1hdGNoLAoJCXRtcFNldCA9IFtdLAoJCWxhdGVyID0gIiIsCgkJcm9vdCA9IGNvbnRleHQubm9kZVR5cGUgPyBbY29udGV4dF0gOiBjb250ZXh0OwoKCS8vIFBvc2l0aW9uIHNlbGVjdG9ycyBtdXN0IGJlIGRvbmUgYWZ0ZXIgdGhlIGZpbHRlcgoJLy8gQW5kIHNvIG11c3QgOm5vdChwb3NpdGlvbmFsKSBzbyB3ZSBtb3ZlIGFsbCBQU0VVRE9zIHRvIHRoZSBlbmQKCXdoaWxlICggKG1hdGNoID0gRXhwci5tYXRjaC5QU0VVRE8uZXhlYyggc2VsZWN0b3IgKSkgKSB7CgkJbGF0ZXIgKz0gbWF0Y2hbMF07CgkJc2VsZWN0b3IgPSBzZWxlY3Rvci5yZXBsYWNlKCBFeHByLm1hdGNoLlBTRVVETywgIiIgKTsKCX0KCglzZWxlY3RvciA9IEV4cHIucmVsYXRpdmVbc2VsZWN0b3JdID8gc2VsZWN0b3IgKyAiKiIgOiBzZWxlY3RvcjsKCglmb3IgKCB2YXIgaSA9IDAsIGwgPSByb290Lmxlbmd0aDsgaSA8IGw7IGkrKyApIHsKCQlTaXp6bGUoIHNlbGVjdG9yLCByb290W2ldLCB0bXBTZXQgKTsKCX0KCglyZXR1cm4gU2l6emxlLmZpbHRlciggbGF0ZXIsIHRtcFNldCApOwp9OwoKLy8gRVhQT1NFCmpRdWVyeS5maW5kID0gU2l6emxlOwpqUXVlcnkuZXhwciA9IFNpenpsZS5zZWxlY3RvcnM7CmpRdWVyeS5leHByWyI6Il0gPSBqUXVlcnkuZXhwci5maWx0ZXJzOwpqUXVlcnkudW5pcXVlID0gU2l6emxlLnVuaXF1ZVNvcnQ7CmpRdWVyeS50ZXh0ID0gU2l6emxlLmdldFRleHQ7CmpRdWVyeS5pc1hNTERvYyA9IFNpenpsZS5pc1hNTDsKalF1ZXJ5LmNvbnRhaW5zID0gU2l6emxlLmNvbnRhaW5zOwoKCn0pKCk7CgoKdmFyIHJ1bnRpbCA9IC9VbnRpbCQvLAoJcnBhcmVudHNwcmV2ID0gL14oPzpwYXJlbnRzfHByZXZVbnRpbHxwcmV2QWxsKS8sCgkvLyBOb3RlOiBUaGlzIFJlZ0V4cCBzaG91bGQgYmUgaW1wcm92ZWQsIG9yIGxpa2VseSBwdWxsZWQgZnJvbSBTaXp6bGUKCXJtdWx0aXNlbGVjdG9yID0gLywvLAoJaXNTaW1wbGUgPSAvXi5bXjojXFtcLixdKiQvLAoJc2xpY2UgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UsCglQT1MgPSBqUXVlcnkuZXhwci5tYXRjaC5QT1MsCgkvLyBtZXRob2RzIGd1YXJhbnRlZWQgdG8gcHJvZHVjZSBhIHVuaXF1ZSBzZXQgd2hlbiBzdGFydGluZyBmcm9tIGEgdW5pcXVlIHNldAoJZ3VhcmFudGVlZFVuaXF1ZSA9IHsKCQljaGlsZHJlbjogdHJ1ZSwKCQljb250ZW50czogdHJ1ZSwKCQluZXh0OiB0cnVlLAoJCXByZXY6IHRydWUKCX07CgpqUXVlcnkuZm4uZXh0ZW5kKHsKCWZpbmQ6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHsKCQl2YXIgcmV0ID0gdGhpcy5wdXNoU3RhY2soICIiLCAiZmluZCIsIHNlbGVjdG9yICksCgkJCWxlbmd0aCA9IDA7CgoJCWZvciAoIHZhciBpID0gMCwgbCA9IHRoaXMubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCQlsZW5ndGggPSByZXQubGVuZ3RoOwoJCQlqUXVlcnkuZmluZCggc2VsZWN0b3IsIHRoaXNbaV0sIHJldCApOwoKCQkJaWYgKCBpID4gMCApIHsKCQkJCS8vIE1ha2Ugc3VyZSB0aGF0IHRoZSByZXN1bHRzIGFyZSB1bmlxdWUKCQkJCWZvciAoIHZhciBuID0gbGVuZ3RoOyBuIDwgcmV0Lmxlbmd0aDsgbisrICkgewoJCQkJCWZvciAoIHZhciByID0gMDsgciA8IGxlbmd0aDsgcisrICkgewoJCQkJCQlpZiAoIHJldFtyXSA9PT0gcmV0W25dICkgewoJCQkJCQkJcmV0LnNwbGljZShuLS0sIDEpOwoJCQkJCQkJYnJlYWs7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgoJCXJldHVybiByZXQ7Cgl9LAoKCWhhczogZnVuY3Rpb24oIHRhcmdldCApIHsKCQl2YXIgdGFyZ2V0cyA9IGpRdWVyeSggdGFyZ2V0ICk7CgkJcmV0dXJuIHRoaXMuZmlsdGVyKGZ1bmN0aW9uKCkgewoJCQlmb3IgKCB2YXIgaSA9IDAsIGwgPSB0YXJnZXRzLmxlbmd0aDsgaSA8IGw7IGkrKyApIHsKCQkJCWlmICggalF1ZXJ5LmNvbnRhaW5zKCB0aGlzLCB0YXJnZXRzW2ldICkgKSB7CgkJCQkJcmV0dXJuIHRydWU7CgkJCQl9CgkJCX0KCQl9KTsKCX0sCgoJbm90OiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7CgkJcmV0dXJuIHRoaXMucHVzaFN0YWNrKCB3aW5ub3codGhpcywgc2VsZWN0b3IsIGZhbHNlKSwgIm5vdCIsIHNlbGVjdG9yKTsKCX0sCgoJZmlsdGVyOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7CgkJcmV0dXJuIHRoaXMucHVzaFN0YWNrKCB3aW5ub3codGhpcywgc2VsZWN0b3IsIHRydWUpLCAiZmlsdGVyIiwgc2VsZWN0b3IgKTsKCX0sCgoJaXM6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHsKCQlyZXR1cm4gISFzZWxlY3RvciAmJiBqUXVlcnkuZmlsdGVyKCBzZWxlY3RvciwgdGhpcyApLmxlbmd0aCA+IDA7Cgl9LAoKCWNsb3Nlc3Q6IGZ1bmN0aW9uKCBzZWxlY3RvcnMsIGNvbnRleHQgKSB7CgkJdmFyIHJldCA9IFtdLCBpLCBsLCBjdXIgPSB0aGlzWzBdOwoKCQlpZiAoIGpRdWVyeS5pc0FycmF5KCBzZWxlY3RvcnMgKSApIHsKCQkJdmFyIG1hdGNoLCBzZWxlY3RvciwKCQkJCW1hdGNoZXMgPSB7fSwKCQkJCWxldmVsID0gMTsKCgkJCWlmICggY3VyICYmIHNlbGVjdG9ycy5sZW5ndGggKSB7CgkJCQlmb3IgKCBpID0gMCwgbCA9IHNlbGVjdG9ycy5sZW5ndGg7IGkgPCBsOyBpKysgKSB7CgkJCQkJc2VsZWN0b3IgPSBzZWxlY3RvcnNbaV07CgoJCQkJCWlmICggIW1hdGNoZXNbc2VsZWN0b3JdICkgewoJCQkJCQltYXRjaGVzW3NlbGVjdG9yXSA9IGpRdWVyeS5leHByLm1hdGNoLlBPUy50ZXN0KCBzZWxlY3RvciApID8KCQkJCQkJCWpRdWVyeSggc2VsZWN0b3IsIGNvbnRleHQgfHwgdGhpcy5jb250ZXh0ICkgOgoJCQkJCQkJc2VsZWN0b3I7CgkJCQkJfQoJCQkJfQoKCQkJCXdoaWxlICggY3VyICYmIGN1ci5vd25lckRvY3VtZW50ICYmIGN1ciAhPT0gY29udGV4dCApIHsKCQkJCQlmb3IgKCBzZWxlY3RvciBpbiBtYXRjaGVzICkgewoJCQkJCQltYXRjaCA9IG1hdGNoZXNbc2VsZWN0b3JdOwoKCQkJCQkJaWYgKCBtYXRjaC5qcXVlcnkgPyBtYXRjaC5pbmRleChjdXIpID4gLTEgOiBqUXVlcnkoY3VyKS5pcyhtYXRjaCkgKSB7CgkJCQkJCQlyZXQucHVzaCh7IHNlbGVjdG9yOiBzZWxlY3RvciwgZWxlbTogY3VyLCBsZXZlbDogbGV2ZWwgfSk7CgkJCQkJCX0KCQkJCQl9CgoJCQkJCWN1ciA9IGN1ci5wYXJlbnROb2RlOwoJCQkJCWxldmVsKys7CgkJCQl9CgkJCX0KCgkJCXJldHVybiByZXQ7CgkJfQoKCQl2YXIgcG9zID0gUE9TLnRlc3QoIHNlbGVjdG9ycyApID8KCQkJalF1ZXJ5KCBzZWxlY3RvcnMsIGNvbnRleHQgfHwgdGhpcy5jb250ZXh0ICkgOiBudWxsOwoKCQlmb3IgKCBpID0gMCwgbCA9IHRoaXMubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCQljdXIgPSB0aGlzW2ldOwoKCQkJd2hpbGUgKCBjdXIgKSB7CgkJCQlpZiAoIHBvcyA/IHBvcy5pbmRleChjdXIpID4gLTEgOiBqUXVlcnkuZmluZC5tYXRjaGVzU2VsZWN0b3IoY3VyLCBzZWxlY3RvcnMpICkgewoJCQkJCXJldC5wdXNoKCBjdXIgKTsKCQkJCQlicmVhazsKCgkJCQl9IGVsc2UgewoJCQkJCWN1ciA9IGN1ci5wYXJlbnROb2RlOwoJCQkJCWlmICggIWN1ciB8fCAhY3VyLm93bmVyRG9jdW1lbnQgfHwgY3VyID09PSBjb250ZXh0ICkgewoJCQkJCQlicmVhazsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgoJCXJldCA9IHJldC5sZW5ndGggPiAxID8galF1ZXJ5LnVuaXF1ZShyZXQpIDogcmV0OwoKCQlyZXR1cm4gdGhpcy5wdXNoU3RhY2soIHJldCwgImNsb3Nlc3QiLCBzZWxlY3RvcnMgKTsKCX0sCgoJLy8gRGV0ZXJtaW5lIHRoZSBwb3NpdGlvbiBvZiBhbiBlbGVtZW50IHdpdGhpbgoJLy8gdGhlIG1hdGNoZWQgc2V0IG9mIGVsZW1lbnRzCglpbmRleDogZnVuY3Rpb24oIGVsZW0gKSB7CgkJaWYgKCAhZWxlbSB8fCB0eXBlb2YgZWxlbSA9PT0gInN0cmluZyIgKSB7CgkJCXJldHVybiBqUXVlcnkuaW5BcnJheSggdGhpc1swXSwKCQkJCS8vIElmIGl0IHJlY2VpdmVzIGEgc3RyaW5nLCB0aGUgc2VsZWN0b3IgaXMgdXNlZAoJCQkJLy8gSWYgaXQgcmVjZWl2ZXMgbm90aGluZywgdGhlIHNpYmxpbmdzIGFyZSB1c2VkCgkJCQllbGVtID8galF1ZXJ5KCBlbGVtICkgOiB0aGlzLnBhcmVudCgpLmNoaWxkcmVuKCkgKTsKCQl9CgkJLy8gTG9jYXRlIHRoZSBwb3NpdGlvbiBvZiB0aGUgZGVzaXJlZCBlbGVtZW50CgkJcmV0dXJuIGpRdWVyeS5pbkFycmF5KAoJCQkvLyBJZiBpdCByZWNlaXZlcyBhIGpRdWVyeSBvYmplY3QsIHRoZSBmaXJzdCBlbGVtZW50IGlzIHVzZWQKCQkJZWxlbS5qcXVlcnkgPyBlbGVtWzBdIDogZWxlbSwgdGhpcyApOwoJfSwKCglhZGQ6IGZ1bmN0aW9uKCBzZWxlY3RvciwgY29udGV4dCApIHsKCQl2YXIgc2V0ID0gdHlwZW9mIHNlbGVjdG9yID09PSAic3RyaW5nIiA/CgkJCQlqUXVlcnkoIHNlbGVjdG9yLCBjb250ZXh0ICkgOgoJCQkJalF1ZXJ5Lm1ha2VBcnJheSggc2VsZWN0b3IgKSwKCQkJYWxsID0galF1ZXJ5Lm1lcmdlKCB0aGlzLmdldCgpLCBzZXQgKTsKCgkJcmV0dXJuIHRoaXMucHVzaFN0YWNrKCBpc0Rpc2Nvbm5lY3RlZCggc2V0WzBdICkgfHwgaXNEaXNjb25uZWN0ZWQoIGFsbFswXSApID8KCQkJYWxsIDoKCQkJalF1ZXJ5LnVuaXF1ZSggYWxsICkgKTsKCX0sCgoJYW5kU2VsZjogZnVuY3Rpb24oKSB7CgkJcmV0dXJuIHRoaXMuYWRkKCB0aGlzLnByZXZPYmplY3QgKTsKCX0KfSk7CgovLyBBIHBhaW5mdWxseSBzaW1wbGUgY2hlY2sgdG8gc2VlIGlmIGFuIGVsZW1lbnQgaXMgZGlzY29ubmVjdGVkCi8vIGZyb20gYSBkb2N1bWVudCAoc2hvdWxkIGJlIGltcHJvdmVkLCB3aGVyZSBmZWFzaWJsZSkuCmZ1bmN0aW9uIGlzRGlzY29ubmVjdGVkKCBub2RlICkgewoJcmV0dXJuICFub2RlIHx8ICFub2RlLnBhcmVudE5vZGUgfHwgbm9kZS5wYXJlbnROb2RlLm5vZGVUeXBlID09PSAxMTsKfQoKalF1ZXJ5LmVhY2goewoJcGFyZW50OiBmdW5jdGlvbiggZWxlbSApIHsKCQl2YXIgcGFyZW50ID0gZWxlbS5wYXJlbnROb2RlOwoJCXJldHVybiBwYXJlbnQgJiYgcGFyZW50Lm5vZGVUeXBlICE9PSAxMSA/IHBhcmVudCA6IG51bGw7Cgl9LAoJcGFyZW50czogZnVuY3Rpb24oIGVsZW0gKSB7CgkJcmV0dXJuIGpRdWVyeS5kaXIoIGVsZW0sICJwYXJlbnROb2RlIiApOwoJfSwKCXBhcmVudHNVbnRpbDogZnVuY3Rpb24oIGVsZW0sIGksIHVudGlsICkgewoJCXJldHVybiBqUXVlcnkuZGlyKCBlbGVtLCAicGFyZW50Tm9kZSIsIHVudGlsICk7Cgl9LAoJbmV4dDogZnVuY3Rpb24oIGVsZW0gKSB7CgkJcmV0dXJuIGpRdWVyeS5udGgoIGVsZW0sIDIsICJuZXh0U2libGluZyIgKTsKCX0sCglwcmV2OiBmdW5jdGlvbiggZWxlbSApIHsKCQlyZXR1cm4galF1ZXJ5Lm50aCggZWxlbSwgMiwgInByZXZpb3VzU2libGluZyIgKTsKCX0sCgluZXh0QWxsOiBmdW5jdGlvbiggZWxlbSApIHsKCQlyZXR1cm4galF1ZXJ5LmRpciggZWxlbSwgIm5leHRTaWJsaW5nIiApOwoJfSwKCXByZXZBbGw6IGZ1bmN0aW9uKCBlbGVtICkgewoJCXJldHVybiBqUXVlcnkuZGlyKCBlbGVtLCAicHJldmlvdXNTaWJsaW5nIiApOwoJfSwKCW5leHRVbnRpbDogZnVuY3Rpb24oIGVsZW0sIGksIHVudGlsICkgewoJCXJldHVybiBqUXVlcnkuZGlyKCBlbGVtLCAibmV4dFNpYmxpbmciLCB1bnRpbCApOwoJfSwKCXByZXZVbnRpbDogZnVuY3Rpb24oIGVsZW0sIGksIHVudGlsICkgewoJCXJldHVybiBqUXVlcnkuZGlyKCBlbGVtLCAicHJldmlvdXNTaWJsaW5nIiwgdW50aWwgKTsKCX0sCglzaWJsaW5nczogZnVuY3Rpb24oIGVsZW0gKSB7CgkJcmV0dXJuIGpRdWVyeS5zaWJsaW5nKCBlbGVtLnBhcmVudE5vZGUuZmlyc3RDaGlsZCwgZWxlbSApOwoJfSwKCWNoaWxkcmVuOiBmdW5jdGlvbiggZWxlbSApIHsKCQlyZXR1cm4galF1ZXJ5LnNpYmxpbmcoIGVsZW0uZmlyc3RDaGlsZCApOwoJfSwKCWNvbnRlbnRzOiBmdW5jdGlvbiggZWxlbSApIHsKCQlyZXR1cm4galF1ZXJ5Lm5vZGVOYW1lKCBlbGVtLCAiaWZyYW1lIiApID8KCQkJZWxlbS5jb250ZW50RG9jdW1lbnQgfHwgZWxlbS5jb250ZW50V2luZG93LmRvY3VtZW50IDoKCQkJalF1ZXJ5Lm1ha2VBcnJheSggZWxlbS5jaGlsZE5vZGVzICk7Cgl9Cn0sIGZ1bmN0aW9uKCBuYW1lLCBmbiApIHsKCWpRdWVyeS5mblsgbmFtZSBdID0gZnVuY3Rpb24oIHVudGlsLCBzZWxlY3RvciApIHsKCQl2YXIgcmV0ID0galF1ZXJ5Lm1hcCggdGhpcywgZm4sIHVudGlsICksCgkJCS8vIFRoZSB2YXJpYWJsZSAnYXJncycgd2FzIGludHJvZHVjZWQgaW4KCQkJLy8gaHR0cHM6Ly9naXRodWIuY29tL2pxdWVyeS9qcXVlcnkvY29tbWl0LzUyYTAyMzgKCQkJLy8gdG8gd29yayBhcm91bmQgYSBidWcgaW4gQ2hyb21lIDEwIChEZXYpIGFuZCBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIHRoZSBidWcgaXMgZml4ZWQuCgkJCS8vIGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTEwNTAKCQkJYXJncyA9IHNsaWNlLmNhbGwoYXJndW1lbnRzKTsKCgkJaWYgKCAhcnVudGlsLnRlc3QoIG5hbWUgKSApIHsKCQkJc2VsZWN0b3IgPSB1bnRpbDsKCQl9CgoJCWlmICggc2VsZWN0b3IgJiYgdHlwZW9mIHNlbGVjdG9yID09PSAic3RyaW5nIiApIHsKCQkJcmV0ID0galF1ZXJ5LmZpbHRlciggc2VsZWN0b3IsIHJldCApOwoJCX0KCgkJcmV0ID0gdGhpcy5sZW5ndGggPiAxICYmICFndWFyYW50ZWVkVW5pcXVlWyBuYW1lIF0gPyBqUXVlcnkudW5pcXVlKCByZXQgKSA6IHJldDsKCgkJaWYgKCAodGhpcy5sZW5ndGggPiAxIHx8IHJtdWx0aXNlbGVjdG9yLnRlc3QoIHNlbGVjdG9yICkpICYmIHJwYXJlbnRzcHJldi50ZXN0KCBuYW1lICkgKSB7CgkJCXJldCA9IHJldC5yZXZlcnNlKCk7CgkJfQoKCQlyZXR1cm4gdGhpcy5wdXNoU3RhY2soIHJldCwgbmFtZSwgYXJncy5qb2luKCIsIikgKTsKCX07Cn0pOwoKalF1ZXJ5LmV4dGVuZCh7CglmaWx0ZXI6IGZ1bmN0aW9uKCBleHByLCBlbGVtcywgbm90ICkgewoJCWlmICggbm90ICkgewoJCQlleHByID0gIjpub3QoIiArIGV4cHIgKyAiKSI7CgkJfQoKCQlyZXR1cm4gZWxlbXMubGVuZ3RoID09PSAxID8KCQkJalF1ZXJ5LmZpbmQubWF0Y2hlc1NlbGVjdG9yKGVsZW1zWzBdLCBleHByKSA/IFsgZWxlbXNbMF0gXSA6IFtdIDoKCQkJalF1ZXJ5LmZpbmQubWF0Y2hlcyhleHByLCBlbGVtcyk7Cgl9LAoKCWRpcjogZnVuY3Rpb24oIGVsZW0sIGRpciwgdW50aWwgKSB7CgkJdmFyIG1hdGNoZWQgPSBbXSwKCQkJY3VyID0gZWxlbVsgZGlyIF07CgoJCXdoaWxlICggY3VyICYmIGN1ci5ub2RlVHlwZSAhPT0gOSAmJiAodW50aWwgPT09IHVuZGVmaW5lZCB8fCBjdXIubm9kZVR5cGUgIT09IDEgfHwgIWpRdWVyeSggY3VyICkuaXMoIHVudGlsICkpICkgewoJCQlpZiAoIGN1ci5ub2RlVHlwZSA9PT0gMSApIHsKCQkJCW1hdGNoZWQucHVzaCggY3VyICk7CgkJCX0KCQkJY3VyID0gY3VyW2Rpcl07CgkJfQoJCXJldHVybiBtYXRjaGVkOwoJfSwKCgludGg6IGZ1bmN0aW9uKCBjdXIsIHJlc3VsdCwgZGlyLCBlbGVtICkgewoJCXJlc3VsdCA9IHJlc3VsdCB8fCAxOwoJCXZhciBudW0gPSAwOwoKCQlmb3IgKCA7IGN1cjsgY3VyID0gY3VyW2Rpcl0gKSB7CgkJCWlmICggY3VyLm5vZGVUeXBlID09PSAxICYmICsrbnVtID09PSByZXN1bHQgKSB7CgkJCQlicmVhazsKCQkJfQoJCX0KCgkJcmV0dXJuIGN1cjsKCX0sCgoJc2libGluZzogZnVuY3Rpb24oIG4sIGVsZW0gKSB7CgkJdmFyIHIgPSBbXTsKCgkJZm9yICggOyBuOyBuID0gbi5uZXh0U2libGluZyApIHsKCQkJaWYgKCBuLm5vZGVUeXBlID09PSAxICYmIG4gIT09IGVsZW0gKSB7CgkJCQlyLnB1c2goIG4gKTsKCQkJfQoJCX0KCgkJcmV0dXJuIHI7Cgl9Cn0pOwoKLy8gSW1wbGVtZW50IHRoZSBpZGVudGljYWwgZnVuY3Rpb25hbGl0eSBmb3IgZmlsdGVyIGFuZCBub3QKZnVuY3Rpb24gd2lubm93KCBlbGVtZW50cywgcXVhbGlmaWVyLCBrZWVwICkgewoJaWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggcXVhbGlmaWVyICkgKSB7CgkJcmV0dXJuIGpRdWVyeS5ncmVwKGVsZW1lbnRzLCBmdW5jdGlvbiggZWxlbSwgaSApIHsKCQkJdmFyIHJldFZhbCA9ICEhcXVhbGlmaWVyLmNhbGwoIGVsZW0sIGksIGVsZW0gKTsKCQkJcmV0dXJuIHJldFZhbCA9PT0ga2VlcDsKCQl9KTsKCgl9IGVsc2UgaWYgKCBxdWFsaWZpZXIubm9kZVR5cGUgKSB7CgkJcmV0dXJuIGpRdWVyeS5ncmVwKGVsZW1lbnRzLCBmdW5jdGlvbiggZWxlbSwgaSApIHsKCQkJcmV0dXJuIChlbGVtID09PSBxdWFsaWZpZXIpID09PSBrZWVwOwoJCX0pOwoKCX0gZWxzZSBpZiAoIHR5cGVvZiBxdWFsaWZpZXIgPT09ICJzdHJpbmciICkgewoJCXZhciBmaWx0ZXJlZCA9IGpRdWVyeS5ncmVwKGVsZW1lbnRzLCBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuIGVsZW0ubm9kZVR5cGUgPT09IDE7CgkJfSk7CgoJCWlmICggaXNTaW1wbGUudGVzdCggcXVhbGlmaWVyICkgKSB7CgkJCXJldHVybiBqUXVlcnkuZmlsdGVyKHF1YWxpZmllciwgZmlsdGVyZWQsICFrZWVwKTsKCQl9IGVsc2UgewoJCQlxdWFsaWZpZXIgPSBqUXVlcnkuZmlsdGVyKCBxdWFsaWZpZXIsIGZpbHRlcmVkICk7CgkJfQoJfQoKCXJldHVybiBqUXVlcnkuZ3JlcChlbGVtZW50cywgZnVuY3Rpb24oIGVsZW0sIGkgKSB7CgkJcmV0dXJuIChqUXVlcnkuaW5BcnJheSggZWxlbSwgcXVhbGlmaWVyICkgPj0gMCkgPT09IGtlZXA7Cgl9KTsKfQoKCgoKdmFyIHJpbmxpbmVqUXVlcnkgPSAvIGpRdWVyeVxkKz0iKD86XGQrfG51bGwpIi9nLAoJcmxlYWRpbmdXaGl0ZXNwYWNlID0gL15ccysvLAoJcnhodG1sVGFnID0gLzwoPyFhcmVhfGJyfGNvbHxlbWJlZHxocnxpbWd8aW5wdXR8bGlua3xtZXRhfHBhcmFtKSgoW1x3Ol0rKVtePl0qKVwvPi9pZywKCXJ0YWdOYW1lID0gLzwoW1x3Ol0rKS8sCglydGJvZHkgPSAvPHRib2R5L2ksCglyaHRtbCA9IC88fCYjP1x3KzsvLAoJcm5vY2FjaGUgPSAvPCg/OnNjcmlwdHxvYmplY3R8ZW1iZWR8b3B0aW9ufHN0eWxlKS9pLAoJLy8gY2hlY2tlZD0iY2hlY2tlZCIgb3IgY2hlY2tlZAoJcmNoZWNrZWQgPSAvY2hlY2tlZFxzKig/OltePV18PVxzKi5jaGVja2VkLikvaSwKCXdyYXBNYXAgPSB7CgkJb3B0aW9uOiBbIDEsICI8c2VsZWN0IG11bHRpcGxlPSdtdWx0aXBsZSc+IiwgIjwvc2VsZWN0PiIgXSwKCQlsZWdlbmQ6IFsgMSwgIjxmaWVsZHNldD4iLCAiPC9maWVsZHNldD4iIF0sCgkJdGhlYWQ6IFsgMSwgIjx0YWJsZT4iLCAiPC90YWJsZT4iIF0sCgkJdHI6IFsgMiwgIjx0YWJsZT48dGJvZHk+IiwgIjwvdGJvZHk+PC90YWJsZT4iIF0sCgkJdGQ6IFsgMywgIjx0YWJsZT48dGJvZHk+PHRyPiIsICI8L3RyPjwvdGJvZHk+PC90YWJsZT4iIF0sCgkJY29sOiBbIDIsICI8dGFibGU+PHRib2R5PjwvdGJvZHk+PGNvbGdyb3VwPiIsICI8L2NvbGdyb3VwPjwvdGFibGU+IiBdLAoJCWFyZWE6IFsgMSwgIjxtYXA+IiwgIjwvbWFwPiIgXSwKCQlfZGVmYXVsdDogWyAwLCAiIiwgIiIgXQoJfTsKCndyYXBNYXAub3B0Z3JvdXAgPSB3cmFwTWFwLm9wdGlvbjsKd3JhcE1hcC50Ym9keSA9IHdyYXBNYXAudGZvb3QgPSB3cmFwTWFwLmNvbGdyb3VwID0gd3JhcE1hcC5jYXB0aW9uID0gd3JhcE1hcC50aGVhZDsKd3JhcE1hcC50aCA9IHdyYXBNYXAudGQ7CgovLyBJRSBjYW4ndCBzZXJpYWxpemUgPGxpbms+IGFuZCA8c2NyaXB0PiB0YWdzIG5vcm1hbGx5CmlmICggIWpRdWVyeS5zdXBwb3J0Lmh0bWxTZXJpYWxpemUgKSB7Cgl3cmFwTWFwLl9kZWZhdWx0ID0gWyAxLCAiZGl2PGRpdj4iLCAiPC9kaXY+IiBdOwp9CgpqUXVlcnkuZm4uZXh0ZW5kKHsKCXRleHQ6IGZ1bmN0aW9uKCB0ZXh0ICkgewoJCWlmICggalF1ZXJ5LmlzRnVuY3Rpb24odGV4dCkgKSB7CgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oaSkgewoJCQkJdmFyIHNlbGYgPSBqUXVlcnkoIHRoaXMgKTsKCgkJCQlzZWxmLnRleHQoIHRleHQuY2FsbCh0aGlzLCBpLCBzZWxmLnRleHQoKSkgKTsKCQkJfSk7CgkJfQoKCQlpZiAoIHR5cGVvZiB0ZXh0ICE9PSAib2JqZWN0IiAmJiB0ZXh0ICE9PSB1bmRlZmluZWQgKSB7CgkJCXJldHVybiB0aGlzLmVtcHR5KCkuYXBwZW5kKCAodGhpc1swXSAmJiB0aGlzWzBdLm93bmVyRG9jdW1lbnQgfHwgZG9jdW1lbnQpLmNyZWF0ZVRleHROb2RlKCB0ZXh0ICkgKTsKCQl9CgoJCXJldHVybiBqUXVlcnkudGV4dCggdGhpcyApOwoJfSwKCgl3cmFwQWxsOiBmdW5jdGlvbiggaHRtbCApIHsKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCBodG1sICkgKSB7CgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oaSkgewoJCQkJalF1ZXJ5KHRoaXMpLndyYXBBbGwoIGh0bWwuY2FsbCh0aGlzLCBpKSApOwoJCQl9KTsKCQl9CgoJCWlmICggdGhpc1swXSApIHsKCQkJLy8gVGhlIGVsZW1lbnRzIHRvIHdyYXAgdGhlIHRhcmdldCBhcm91bmQKCQkJdmFyIHdyYXAgPSBqUXVlcnkoIGh0bWwsIHRoaXNbMF0ub3duZXJEb2N1bWVudCApLmVxKDApLmNsb25lKHRydWUpOwoKCQkJaWYgKCB0aGlzWzBdLnBhcmVudE5vZGUgKSB7CgkJCQl3cmFwLmluc2VydEJlZm9yZSggdGhpc1swXSApOwoJCQl9CgoJCQl3cmFwLm1hcChmdW5jdGlvbigpIHsKCQkJCXZhciBlbGVtID0gdGhpczsKCgkJCQl3aGlsZSAoIGVsZW0uZmlyc3RDaGlsZCAmJiBlbGVtLmZpcnN0Q2hpbGQubm9kZVR5cGUgPT09IDEgKSB7CgkJCQkJZWxlbSA9IGVsZW0uZmlyc3RDaGlsZDsKCQkJCX0KCgkJCQlyZXR1cm4gZWxlbTsKCQkJfSkuYXBwZW5kKHRoaXMpOwoJCX0KCgkJcmV0dXJuIHRoaXM7Cgl9LAoKCXdyYXBJbm5lcjogZnVuY3Rpb24oIGh0bWwgKSB7CgkJaWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggaHRtbCApICkgewoJCQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGkpIHsKCQkJCWpRdWVyeSh0aGlzKS53cmFwSW5uZXIoIGh0bWwuY2FsbCh0aGlzLCBpKSApOwoJCQl9KTsKCQl9CgoJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCXZhciBzZWxmID0galF1ZXJ5KCB0aGlzICksCgkJCQljb250ZW50cyA9IHNlbGYuY29udGVudHMoKTsKCgkJCWlmICggY29udGVudHMubGVuZ3RoICkgewoJCQkJY29udGVudHMud3JhcEFsbCggaHRtbCApOwoKCQkJfSBlbHNlIHsKCQkJCXNlbGYuYXBwZW5kKCBodG1sICk7CgkJCX0KCQl9KTsKCX0sCgoJd3JhcDogZnVuY3Rpb24oIGh0bWwgKSB7CgkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJalF1ZXJ5KCB0aGlzICkud3JhcEFsbCggaHRtbCApOwoJCX0pOwoJfSwKCgl1bndyYXA6IGZ1bmN0aW9uKCkgewoJCXJldHVybiB0aGlzLnBhcmVudCgpLmVhY2goZnVuY3Rpb24oKSB7CgkJCWlmICggIWpRdWVyeS5ub2RlTmFtZSggdGhpcywgImJvZHkiICkgKSB7CgkJCQlqUXVlcnkoIHRoaXMgKS5yZXBsYWNlV2l0aCggdGhpcy5jaGlsZE5vZGVzICk7CgkJCX0KCQl9KS5lbmQoKTsKCX0sCgoJYXBwZW5kOiBmdW5jdGlvbigpIHsKCQlyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsIHRydWUsIGZ1bmN0aW9uKCBlbGVtICkgewoJCQlpZiAoIHRoaXMubm9kZVR5cGUgPT09IDEgKSB7CgkJCQl0aGlzLmFwcGVuZENoaWxkKCBlbGVtICk7CgkJCX0KCQl9KTsKCX0sCgoJcHJlcGVuZDogZnVuY3Rpb24oKSB7CgkJcmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLCB0cnVlLCBmdW5jdGlvbiggZWxlbSApIHsKCQkJaWYgKCB0aGlzLm5vZGVUeXBlID09PSAxICkgewoJCQkJdGhpcy5pbnNlcnRCZWZvcmUoIGVsZW0sIHRoaXMuZmlyc3RDaGlsZCApOwoJCQl9CgkJfSk7Cgl9LAoKCWJlZm9yZTogZnVuY3Rpb24oKSB7CgkJaWYgKCB0aGlzWzBdICYmIHRoaXNbMF0ucGFyZW50Tm9kZSApIHsKCQkJcmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLCBmYWxzZSwgZnVuY3Rpb24oIGVsZW0gKSB7CgkJCQl0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKCBlbGVtLCB0aGlzICk7CgkJCX0pOwoJCX0gZWxzZSBpZiAoIGFyZ3VtZW50cy5sZW5ndGggKSB7CgkJCXZhciBzZXQgPSBqUXVlcnkoYXJndW1lbnRzWzBdKTsKCQkJc2V0LnB1c2guYXBwbHkoIHNldCwgdGhpcy50b0FycmF5KCkgKTsKCQkJcmV0dXJuIHRoaXMucHVzaFN0YWNrKCBzZXQsICJiZWZvcmUiLCBhcmd1bWVudHMgKTsKCQl9Cgl9LAoKCWFmdGVyOiBmdW5jdGlvbigpIHsKCQlpZiAoIHRoaXNbMF0gJiYgdGhpc1swXS5wYXJlbnROb2RlICkgewoJCQlyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsIGZhbHNlLCBmdW5jdGlvbiggZWxlbSApIHsKCQkJCXRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoIGVsZW0sIHRoaXMubmV4dFNpYmxpbmcgKTsKCQkJfSk7CgkJfSBlbHNlIGlmICggYXJndW1lbnRzLmxlbmd0aCApIHsKCQkJdmFyIHNldCA9IHRoaXMucHVzaFN0YWNrKCB0aGlzLCAiYWZ0ZXIiLCBhcmd1bWVudHMgKTsKCQkJc2V0LnB1c2guYXBwbHkoIHNldCwgalF1ZXJ5KGFyZ3VtZW50c1swXSkudG9BcnJheSgpICk7CgkJCXJldHVybiBzZXQ7CgkJfQoJfSwKCgkvLyBrZWVwRGF0YSBpcyBmb3IgaW50ZXJuYWwgdXNlIG9ubHktLWRvIG5vdCBkb2N1bWVudAoJcmVtb3ZlOiBmdW5jdGlvbiggc2VsZWN0b3IsIGtlZXBEYXRhICkgewoJCWZvciAoIHZhciBpID0gMCwgZWxlbTsgKGVsZW0gPSB0aGlzW2ldKSAhPSBudWxsOyBpKysgKSB7CgkJCWlmICggIXNlbGVjdG9yIHx8IGpRdWVyeS5maWx0ZXIoIHNlbGVjdG9yLCBbIGVsZW0gXSApLmxlbmd0aCApIHsKCQkJCWlmICggIWtlZXBEYXRhICYmIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7CgkJCQkJalF1ZXJ5LmNsZWFuRGF0YSggZWxlbS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpICk7CgkJCQkJalF1ZXJ5LmNsZWFuRGF0YSggWyBlbGVtIF0gKTsKCQkJCX0KCgkJCQlpZiAoIGVsZW0ucGFyZW50Tm9kZSApIHsKCQkJCQllbGVtLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoIGVsZW0gKTsKCQkJCX0KCQkJfQoJCX0KCgkJcmV0dXJuIHRoaXM7Cgl9LAoKCWVtcHR5OiBmdW5jdGlvbigpIHsKCQlmb3IgKCB2YXIgaSA9IDAsIGVsZW07IChlbGVtID0gdGhpc1tpXSkgIT0gbnVsbDsgaSsrICkgewoJCQkvLyBSZW1vdmUgZWxlbWVudCBub2RlcyBhbmQgcHJldmVudCBtZW1vcnkgbGVha3MKCQkJaWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICkgewoJCQkJalF1ZXJ5LmNsZWFuRGF0YSggZWxlbS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpICk7CgkJCX0KCgkJCS8vIFJlbW92ZSBhbnkgcmVtYWluaW5nIG5vZGVzCgkJCXdoaWxlICggZWxlbS5maXJzdENoaWxkICkgewoJCQkJZWxlbS5yZW1vdmVDaGlsZCggZWxlbS5maXJzdENoaWxkICk7CgkJCX0KCQl9CgoJCXJldHVybiB0aGlzOwoJfSwKCgljbG9uZTogZnVuY3Rpb24oIGRhdGFBbmRFdmVudHMsIGRlZXBEYXRhQW5kRXZlbnRzICkgewoJCWRhdGFBbmRFdmVudHMgPSBkYXRhQW5kRXZlbnRzID09IG51bGwgPyBmYWxzZSA6IGRhdGFBbmRFdmVudHM7CgkJZGVlcERhdGFBbmRFdmVudHMgPSBkZWVwRGF0YUFuZEV2ZW50cyA9PSBudWxsID8gZGF0YUFuZEV2ZW50cyA6IGRlZXBEYXRhQW5kRXZlbnRzOwoKCQlyZXR1cm4gdGhpcy5tYXAoIGZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuIGpRdWVyeS5jbG9uZSggdGhpcywgZGF0YUFuZEV2ZW50cywgZGVlcERhdGFBbmRFdmVudHMgKTsKCQl9KTsKCX0sCgoJaHRtbDogZnVuY3Rpb24oIHZhbHVlICkgewoJCWlmICggdmFsdWUgPT09IHVuZGVmaW5lZCApIHsKCQkJcmV0dXJuIHRoaXNbMF0gJiYgdGhpc1swXS5ub2RlVHlwZSA9PT0gMSA/CgkJCQl0aGlzWzBdLmlubmVySFRNTC5yZXBsYWNlKHJpbmxpbmVqUXVlcnksICIiKSA6CgkJCQludWxsOwoKCQkvLyBTZWUgaWYgd2UgY2FuIHRha2UgYSBzaG9ydGN1dCBhbmQganVzdCB1c2UgaW5uZXJIVE1MCgkJfSBlbHNlIGlmICggdHlwZW9mIHZhbHVlID09PSAic3RyaW5nIiAmJiAhcm5vY2FjaGUudGVzdCggdmFsdWUgKSAmJgoJCQkoalF1ZXJ5LnN1cHBvcnQubGVhZGluZ1doaXRlc3BhY2UgfHwgIXJsZWFkaW5nV2hpdGVzcGFjZS50ZXN0KCB2YWx1ZSApKSAmJgoJCQkhd3JhcE1hcFsgKHJ0YWdOYW1lLmV4ZWMoIHZhbHVlICkgfHwgWyIiLCAiIl0pWzFdLnRvTG93ZXJDYXNlKCkgXSApIHsKCgkJCXZhbHVlID0gdmFsdWUucmVwbGFjZShyeGh0bWxUYWcsICI8JDE+PC8kMj4iKTsKCgkJCXRyeSB7CgkJCQlmb3IgKCB2YXIgaSA9IDAsIGwgPSB0aGlzLmxlbmd0aDsgaSA8IGw7IGkrKyApIHsKCQkJCQkvLyBSZW1vdmUgZWxlbWVudCBub2RlcyBhbmQgcHJldmVudCBtZW1vcnkgbGVha3MKCQkJCQlpZiAoIHRoaXNbaV0ubm9kZVR5cGUgPT09IDEgKSB7CgkJCQkJCWpRdWVyeS5jbGVhbkRhdGEoIHRoaXNbaV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSApOwoJCQkJCQl0aGlzW2ldLmlubmVySFRNTCA9IHZhbHVlOwoJCQkJCX0KCQkJCX0KCgkJCS8vIElmIHVzaW5nIGlubmVySFRNTCB0aHJvd3MgYW4gZXhjZXB0aW9uLCB1c2UgdGhlIGZhbGxiYWNrIG1ldGhvZAoJCQl9IGNhdGNoKGUpIHsKCQkJCXRoaXMuZW1wdHkoKS5hcHBlbmQoIHZhbHVlICk7CgkJCX0KCgkJfSBlbHNlIGlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHZhbHVlICkgKSB7CgkJCXRoaXMuZWFjaChmdW5jdGlvbihpKXsKCQkJCXZhciBzZWxmID0galF1ZXJ5KCB0aGlzICk7CgoJCQkJc2VsZi5odG1sKCB2YWx1ZS5jYWxsKHRoaXMsIGksIHNlbGYuaHRtbCgpKSApOwoJCQl9KTsKCgkJfSBlbHNlIHsKCQkJdGhpcy5lbXB0eSgpLmFwcGVuZCggdmFsdWUgKTsKCQl9CgoJCXJldHVybiB0aGlzOwoJfSwKCglyZXBsYWNlV2l0aDogZnVuY3Rpb24oIHZhbHVlICkgewoJCWlmICggdGhpc1swXSAmJiB0aGlzWzBdLnBhcmVudE5vZGUgKSB7CgkJCS8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBlbGVtZW50cyBhcmUgcmVtb3ZlZCBmcm9tIHRoZSBET00gYmVmb3JlIHRoZXkgYXJlIGluc2VydGVkCgkJCS8vIHRoaXMgY2FuIGhlbHAgZml4IHJlcGxhY2luZyBhIHBhcmVudCB3aXRoIGNoaWxkIGVsZW1lbnRzCgkJCWlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHZhbHVlICkgKSB7CgkJCQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGkpIHsKCQkJCQl2YXIgc2VsZiA9IGpRdWVyeSh0aGlzKSwgb2xkID0gc2VsZi5odG1sKCk7CgkJCQkJc2VsZi5yZXBsYWNlV2l0aCggdmFsdWUuY2FsbCggdGhpcywgaSwgb2xkICkgKTsKCQkJCX0pOwoJCQl9CgoJCQlpZiAoIHR5cGVvZiB2YWx1ZSAhPT0gInN0cmluZyIgKSB7CgkJCQl2YWx1ZSA9IGpRdWVyeSggdmFsdWUgKS5kZXRhY2goKTsKCQkJfQoKCQkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJCXZhciBuZXh0ID0gdGhpcy5uZXh0U2libGluZywKCQkJCQlwYXJlbnQgPSB0aGlzLnBhcmVudE5vZGU7CgoJCQkJalF1ZXJ5KCB0aGlzICkucmVtb3ZlKCk7CgoJCQkJaWYgKCBuZXh0ICkgewoJCQkJCWpRdWVyeShuZXh0KS5iZWZvcmUoIHZhbHVlICk7CgkJCQl9IGVsc2UgewoJCQkJCWpRdWVyeShwYXJlbnQpLmFwcGVuZCggdmFsdWUgKTsKCQkJCX0KCQkJfSk7CgkJfSBlbHNlIHsKCQkJcmV0dXJuIHRoaXMucHVzaFN0YWNrKCBqUXVlcnkoalF1ZXJ5LmlzRnVuY3Rpb24odmFsdWUpID8gdmFsdWUoKSA6IHZhbHVlKSwgInJlcGxhY2VXaXRoIiwgdmFsdWUgKTsKCQl9Cgl9LAoKCWRldGFjaDogZnVuY3Rpb24oIHNlbGVjdG9yICkgewoJCXJldHVybiB0aGlzLnJlbW92ZSggc2VsZWN0b3IsIHRydWUgKTsKCX0sCgoJZG9tTWFuaXA6IGZ1bmN0aW9uKCBhcmdzLCB0YWJsZSwgY2FsbGJhY2sgKSB7CgkJdmFyIHJlc3VsdHMsIGZpcnN0LCBmcmFnbWVudCwgcGFyZW50LAoJCQl2YWx1ZSA9IGFyZ3NbMF0sCgkJCXNjcmlwdHMgPSBbXTsKCgkJLy8gV2UgY2FuJ3QgY2xvbmVOb2RlIGZyYWdtZW50cyB0aGF0IGNvbnRhaW4gY2hlY2tlZCwgaW4gV2ViS2l0CgkJaWYgKCAhalF1ZXJ5LnN1cHBvcnQuY2hlY2tDbG9uZSAmJiBhcmd1bWVudHMubGVuZ3RoID09PSAzICYmIHR5cGVvZiB2YWx1ZSA9PT0gInN0cmluZyIgJiYgcmNoZWNrZWQudGVzdCggdmFsdWUgKSApIHsKCQkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJCWpRdWVyeSh0aGlzKS5kb21NYW5pcCggYXJncywgdGFibGUsIGNhbGxiYWNrLCB0cnVlICk7CgkJCX0pOwoJCX0KCgkJaWYgKCBqUXVlcnkuaXNGdW5jdGlvbih2YWx1ZSkgKSB7CgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oaSkgewoJCQkJdmFyIHNlbGYgPSBqUXVlcnkodGhpcyk7CgkJCQlhcmdzWzBdID0gdmFsdWUuY2FsbCh0aGlzLCBpLCB0YWJsZSA/IHNlbGYuaHRtbCgpIDogdW5kZWZpbmVkKTsKCQkJCXNlbGYuZG9tTWFuaXAoIGFyZ3MsIHRhYmxlLCBjYWxsYmFjayApOwoJCQl9KTsKCQl9CgoJCWlmICggdGhpc1swXSApIHsKCQkJcGFyZW50ID0gdmFsdWUgJiYgdmFsdWUucGFyZW50Tm9kZTsKCgkJCS8vIElmIHdlJ3JlIGluIGEgZnJhZ21lbnQsIGp1c3QgdXNlIHRoYXQgaW5zdGVhZCBvZiBidWlsZGluZyBhIG5ldyBvbmUKCQkJaWYgKCBqUXVlcnkuc3VwcG9ydC5wYXJlbnROb2RlICYmIHBhcmVudCAmJiBwYXJlbnQubm9kZVR5cGUgPT09IDExICYmIHBhcmVudC5jaGlsZE5vZGVzLmxlbmd0aCA9PT0gdGhpcy5sZW5ndGggKSB7CgkJCQlyZXN1bHRzID0geyBmcmFnbWVudDogcGFyZW50IH07CgoJCQl9IGVsc2UgewoJCQkJcmVzdWx0cyA9IGpRdWVyeS5idWlsZEZyYWdtZW50KCBhcmdzLCB0aGlzLCBzY3JpcHRzICk7CgkJCX0KCgkJCWZyYWdtZW50ID0gcmVzdWx0cy5mcmFnbWVudDsKCgkJCWlmICggZnJhZ21lbnQuY2hpbGROb2Rlcy5sZW5ndGggPT09IDEgKSB7CgkJCQlmaXJzdCA9IGZyYWdtZW50ID0gZnJhZ21lbnQuZmlyc3RDaGlsZDsKCQkJfSBlbHNlIHsKCQkJCWZpcnN0ID0gZnJhZ21lbnQuZmlyc3RDaGlsZDsKCQkJfQoKCQkJaWYgKCBmaXJzdCApIHsKCQkJCXRhYmxlID0gdGFibGUgJiYgalF1ZXJ5Lm5vZGVOYW1lKCBmaXJzdCwgInRyIiApOwoKCQkJCWZvciAoIHZhciBpID0gMCwgbCA9IHRoaXMubGVuZ3RoLCBsYXN0SW5kZXggPSBsIC0gMTsgaSA8IGw7IGkrKyApIHsKCQkJCQljYWxsYmFjay5jYWxsKAoJCQkJCQl0YWJsZSA/CgkJCQkJCQlyb290KHRoaXNbaV0sIGZpcnN0KSA6CgkJCQkJCQl0aGlzW2ldLAoJCQkJCQkvLyBNYWtlIHN1cmUgdGhhdCB3ZSBkbyBub3QgbGVhayBtZW1vcnkgYnkgaW5hZHZlcnRlbnRseSBkaXNjYXJkaW5nCgkJCQkJCS8vIHRoZSBvcmlnaW5hbCBmcmFnbWVudCAod2hpY2ggbWlnaHQgaGF2ZSBhdHRhY2hlZCBkYXRhKSBpbnN0ZWFkIG9mCgkJCQkJCS8vIHVzaW5nIGl0OyBpbiBhZGRpdGlvbiwgdXNlIHRoZSBvcmlnaW5hbCBmcmFnbWVudCBvYmplY3QgZm9yIHRoZSBsYXN0CgkJCQkJCS8vIGl0ZW0gaW5zdGVhZCBvZiBmaXJzdCBiZWNhdXNlIGl0IGNhbiBlbmQgdXAgYmVpbmcgZW1wdGllZCBpbmNvcnJlY3RseQoJCQkJCQkvLyBpbiBjZXJ0YWluIHNpdHVhdGlvbnMgKEJ1ZyAjODA3MCkuCgkJCQkJCS8vIEZyYWdtZW50cyBmcm9tIHRoZSBmcmFnbWVudCBjYWNoZSBtdXN0IGFsd2F5cyBiZSBjbG9uZWQgYW5kIG5ldmVyIHVzZWQKCQkJCQkJLy8gaW4gcGxhY2UuCgkJCQkJCXJlc3VsdHMuY2FjaGVhYmxlIHx8IChsID4gMSAmJiBpIDwgbGFzdEluZGV4KSA/CgkJCQkJCQlqUXVlcnkuY2xvbmUoIGZyYWdtZW50LCB0cnVlLCB0cnVlICkgOgoJCQkJCQkJZnJhZ21lbnQKCQkJCQkpOwoJCQkJfQoJCQl9CgoJCQlpZiAoIHNjcmlwdHMubGVuZ3RoICkgewoJCQkJalF1ZXJ5LmVhY2goIHNjcmlwdHMsIGV2YWxTY3JpcHQgKTsKCQkJfQoJCX0KCgkJcmV0dXJuIHRoaXM7Cgl9Cn0pOwoKZnVuY3Rpb24gcm9vdCggZWxlbSwgY3VyICkgewoJcmV0dXJuIGpRdWVyeS5ub2RlTmFtZShlbGVtLCAidGFibGUiKSA/CgkJKGVsZW0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRib2R5IilbMF0gfHwKCQllbGVtLmFwcGVuZENoaWxkKGVsZW0ub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0Ym9keSIpKSkgOgoJCWVsZW07Cn0KCmZ1bmN0aW9uIGNsb25lQ29weUV2ZW50KCBzcmMsIGRlc3QgKSB7CgoJaWYgKCBkZXN0Lm5vZGVUeXBlICE9PSAxIHx8ICFqUXVlcnkuaGFzRGF0YSggc3JjICkgKSB7CgkJcmV0dXJuOwoJfQoKCXZhciBpbnRlcm5hbEtleSA9IGpRdWVyeS5leHBhbmRvLAoJCW9sZERhdGEgPSBqUXVlcnkuZGF0YSggc3JjICksCgkJY3VyRGF0YSA9IGpRdWVyeS5kYXRhKCBkZXN0LCBvbGREYXRhICk7CgoJLy8gU3dpdGNoIHRvIHVzZSB0aGUgaW50ZXJuYWwgZGF0YSBvYmplY3QsIGlmIGl0IGV4aXN0cywgZm9yIHRoZSBuZXh0CgkvLyBzdGFnZSBvZiBkYXRhIGNvcHlpbmcKCWlmICggKG9sZERhdGEgPSBvbGREYXRhWyBpbnRlcm5hbEtleSBdKSApIHsKCQl2YXIgZXZlbnRzID0gb2xkRGF0YS5ldmVudHM7CgkJCQljdXJEYXRhID0gY3VyRGF0YVsgaW50ZXJuYWxLZXkgXSA9IGpRdWVyeS5leHRlbmQoe30sIG9sZERhdGEpOwoKCQlpZiAoIGV2ZW50cyApIHsKCQkJZGVsZXRlIGN1ckRhdGEuaGFuZGxlOwoJCQljdXJEYXRhLmV2ZW50cyA9IHt9OwoKCQkJZm9yICggdmFyIHR5cGUgaW4gZXZlbnRzICkgewoJCQkJZm9yICggdmFyIGkgPSAwLCBsID0gZXZlbnRzWyB0eXBlIF0ubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCQkJCWpRdWVyeS5ldmVudC5hZGQoIGRlc3QsIHR5cGUgKyAoIGV2ZW50c1sgdHlwZSBdWyBpIF0ubmFtZXNwYWNlID8gIi4iIDogIiIgKSArIGV2ZW50c1sgdHlwZSBdWyBpIF0ubmFtZXNwYWNlLCBldmVudHNbIHR5cGUgXVsgaSBdLCBldmVudHNbIHR5cGUgXVsgaSBdLmRhdGEgKTsKCQkJCX0KCQkJfQoJCX0KCX0KfQoKZnVuY3Rpb24gY2xvbmVGaXhBdHRyaWJ1dGVzKHNyYywgZGVzdCkgewoJLy8gV2UgZG8gbm90IG5lZWQgdG8gZG8gYW55dGhpbmcgZm9yIG5vbi1FbGVtZW50cwoJaWYgKCBkZXN0Lm5vZGVUeXBlICE9PSAxICkgewoJCXJldHVybjsKCX0KCgl2YXIgbm9kZU5hbWUgPSBkZXN0Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7CgoJLy8gY2xlYXJBdHRyaWJ1dGVzIHJlbW92ZXMgdGhlIGF0dHJpYnV0ZXMsIHdoaWNoIHdlIGRvbid0IHdhbnQsCgkvLyBidXQgYWxzbyByZW1vdmVzIHRoZSBhdHRhY2hFdmVudCBldmVudHMsIHdoaWNoIHdlICpkbyogd2FudAoJZGVzdC5jbGVhckF0dHJpYnV0ZXMoKTsKCgkvLyBtZXJnZUF0dHJpYnV0ZXMsIGluIGNvbnRyYXN0LCBvbmx5IG1lcmdlcyBiYWNrIG9uIHRoZQoJLy8gb3JpZ2luYWwgYXR0cmlidXRlcywgbm90IHRoZSBldmVudHMKCWRlc3QubWVyZ2VBdHRyaWJ1dGVzKHNyYyk7CgoJLy8gSUU2LTggZmFpbCB0byBjbG9uZSBjaGlsZHJlbiBpbnNpZGUgb2JqZWN0IGVsZW1lbnRzIHRoYXQgdXNlCgkvLyB0aGUgcHJvcHJpZXRhcnkgY2xhc3NpZCBhdHRyaWJ1dGUgdmFsdWUgKHJhdGhlciB0aGFuIHRoZSB0eXBlCgkvLyBhdHRyaWJ1dGUpIHRvIGlkZW50aWZ5IHRoZSB0eXBlIG9mIGNvbnRlbnQgdG8gZGlzcGxheQoJaWYgKCBub2RlTmFtZSA9PT0gIm9iamVjdCIgKSB7CgkJZGVzdC5vdXRlckhUTUwgPSBzcmMub3V0ZXJIVE1MOwoKCX0gZWxzZSBpZiAoIG5vZGVOYW1lID09PSAiaW5wdXQiICYmIChzcmMudHlwZSA9PT0gImNoZWNrYm94IiB8fCBzcmMudHlwZSA9PT0gInJhZGlvIikgKSB7CgkJLy8gSUU2LTggZmFpbHMgdG8gcGVyc2lzdCB0aGUgY2hlY2tlZCBzdGF0ZSBvZiBhIGNsb25lZCBjaGVja2JveAoJCS8vIG9yIHJhZGlvIGJ1dHRvbi4gV29yc2UsIElFNi03IGZhaWwgdG8gZ2l2ZSB0aGUgY2xvbmVkIGVsZW1lbnQKCQkvLyBhIGNoZWNrZWQgYXBwZWFyYW5jZSBpZiB0aGUgZGVmYXVsdENoZWNrZWQgdmFsdWUgaXNuJ3QgYWxzbyBzZXQKCQlpZiAoIHNyYy5jaGVja2VkICkgewoJCQlkZXN0LmRlZmF1bHRDaGVja2VkID0gZGVzdC5jaGVja2VkID0gc3JjLmNoZWNrZWQ7CgkJfQoKCQkvLyBJRTYtNyBnZXQgY29uZnVzZWQgYW5kIGVuZCB1cCBzZXR0aW5nIHRoZSB2YWx1ZSBvZiBhIGNsb25lZAoJCS8vIGNoZWNrYm94L3JhZGlvIGJ1dHRvbiB0byBhbiBlbXB0eSBzdHJpbmcgaW5zdGVhZCBvZiAib24iCgkJaWYgKCBkZXN0LnZhbHVlICE9PSBzcmMudmFsdWUgKSB7CgkJCWRlc3QudmFsdWUgPSBzcmMudmFsdWU7CgkJfQoKCS8vIElFNi04IGZhaWxzIHRvIHJldHVybiB0aGUgc2VsZWN0ZWQgb3B0aW9uIHRvIHRoZSBkZWZhdWx0IHNlbGVjdGVkCgkvLyBzdGF0ZSB3aGVuIGNsb25pbmcgb3B0aW9ucwoJfSBlbHNlIGlmICggbm9kZU5hbWUgPT09ICJvcHRpb24iICkgewoJCWRlc3Quc2VsZWN0ZWQgPSBzcmMuZGVmYXVsdFNlbGVjdGVkOwoKCS8vIElFNi04IGZhaWxzIHRvIHNldCB0aGUgZGVmYXVsdFZhbHVlIHRvIHRoZSBjb3JyZWN0IHZhbHVlIHdoZW4KCS8vIGNsb25pbmcgb3RoZXIgdHlwZXMgb2YgaW5wdXQgZmllbGRzCgl9IGVsc2UgaWYgKCBub2RlTmFtZSA9PT0gImlucHV0IiB8fCBub2RlTmFtZSA9PT0gInRleHRhcmVhIiApIHsKCQlkZXN0LmRlZmF1bHRWYWx1ZSA9IHNyYy5kZWZhdWx0VmFsdWU7Cgl9CgoJLy8gRXZlbnQgZGF0YSBnZXRzIHJlZmVyZW5jZWQgaW5zdGVhZCBvZiBjb3BpZWQgaWYgdGhlIGV4cGFuZG8KCS8vIGdldHMgY29waWVkIHRvbwoJZGVzdC5yZW1vdmVBdHRyaWJ1dGUoIGpRdWVyeS5leHBhbmRvICk7Cn0KCmpRdWVyeS5idWlsZEZyYWdtZW50ID0gZnVuY3Rpb24oIGFyZ3MsIG5vZGVzLCBzY3JpcHRzICkgewoJdmFyIGZyYWdtZW50LCBjYWNoZWFibGUsIGNhY2hlcmVzdWx0cywKCQlkb2MgPSAobm9kZXMgJiYgbm9kZXNbMF0gPyBub2Rlc1swXS5vd25lckRvY3VtZW50IHx8IG5vZGVzWzBdIDogZG9jdW1lbnQpOwoKCS8vIE9ubHkgY2FjaGUgInNtYWxsIiAoMS8yIEtCKSBIVE1MIHN0cmluZ3MgdGhhdCBhcmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBtYWluIGRvY3VtZW50CgkvLyBDbG9uaW5nIG9wdGlvbnMgbG9zZXMgdGhlIHNlbGVjdGVkIHN0YXRlLCBzbyBkb24ndCBjYWNoZSB0aGVtCgkvLyBJRSA2IGRvZXNuJ3QgbGlrZSBpdCB3aGVuIHlvdSBwdXQgPG9iamVjdD4gb3IgPGVtYmVkPiBlbGVtZW50cyBpbiBhIGZyYWdtZW50CgkvLyBBbHNvLCBXZWJLaXQgZG9lcyBub3QgY2xvbmUgJ2NoZWNrZWQnIGF0dHJpYnV0ZXMgb24gY2xvbmVOb2RlLCBzbyBkb24ndCBjYWNoZQoJaWYgKCBhcmdzLmxlbmd0aCA9PT0gMSAmJiB0eXBlb2YgYXJnc1swXSA9PT0gInN0cmluZyIgJiYgYXJnc1swXS5sZW5ndGggPCA1MTIgJiYgZG9jID09PSBkb2N1bWVudCAmJgoJCWFyZ3NbMF0uY2hhckF0KDApID09PSAiPCIgJiYgIXJub2NhY2hlLnRlc3QoIGFyZ3NbMF0gKSAmJiAoalF1ZXJ5LnN1cHBvcnQuY2hlY2tDbG9uZSB8fCAhcmNoZWNrZWQudGVzdCggYXJnc1swXSApKSApIHsKCgkJY2FjaGVhYmxlID0gdHJ1ZTsKCQljYWNoZXJlc3VsdHMgPSBqUXVlcnkuZnJhZ21lbnRzWyBhcmdzWzBdIF07CgkJaWYgKCBjYWNoZXJlc3VsdHMgKSB7CgkJCWlmICggY2FjaGVyZXN1bHRzICE9PSAxICkgewoJCQkJZnJhZ21lbnQgPSBjYWNoZXJlc3VsdHM7CgkJCX0KCQl9Cgl9CgoJaWYgKCAhZnJhZ21lbnQgKSB7CgkJZnJhZ21lbnQgPSBkb2MuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwoJCWpRdWVyeS5jbGVhbiggYXJncywgZG9jLCBmcmFnbWVudCwgc2NyaXB0cyApOwoJfQoKCWlmICggY2FjaGVhYmxlICkgewoJCWpRdWVyeS5mcmFnbWVudHNbIGFyZ3NbMF0gXSA9IGNhY2hlcmVzdWx0cyA/IGZyYWdtZW50IDogMTsKCX0KCglyZXR1cm4geyBmcmFnbWVudDogZnJhZ21lbnQsIGNhY2hlYWJsZTogY2FjaGVhYmxlIH07Cn07CgpqUXVlcnkuZnJhZ21lbnRzID0ge307CgpqUXVlcnkuZWFjaCh7CglhcHBlbmRUbzogImFwcGVuZCIsCglwcmVwZW5kVG86ICJwcmVwZW5kIiwKCWluc2VydEJlZm9yZTogImJlZm9yZSIsCglpbnNlcnRBZnRlcjogImFmdGVyIiwKCXJlcGxhY2VBbGw6ICJyZXBsYWNlV2l0aCIKfSwgZnVuY3Rpb24oIG5hbWUsIG9yaWdpbmFsICkgewoJalF1ZXJ5LmZuWyBuYW1lIF0gPSBmdW5jdGlvbiggc2VsZWN0b3IgKSB7CgkJdmFyIHJldCA9IFtdLAoJCQlpbnNlcnQgPSBqUXVlcnkoIHNlbGVjdG9yICksCgkJCXBhcmVudCA9IHRoaXMubGVuZ3RoID09PSAxICYmIHRoaXNbMF0ucGFyZW50Tm9kZTsKCgkJaWYgKCBwYXJlbnQgJiYgcGFyZW50Lm5vZGVUeXBlID09PSAxMSAmJiBwYXJlbnQuY2hpbGROb2Rlcy5sZW5ndGggPT09IDEgJiYgaW5zZXJ0Lmxlbmd0aCA9PT0gMSApIHsKCQkJaW5zZXJ0WyBvcmlnaW5hbCBdKCB0aGlzWzBdICk7CgkJCXJldHVybiB0aGlzOwoKCQl9IGVsc2UgewoJCQlmb3IgKCB2YXIgaSA9IDAsIGwgPSBpbnNlcnQubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCQkJdmFyIGVsZW1zID0gKGkgPiAwID8gdGhpcy5jbG9uZSh0cnVlKSA6IHRoaXMpLmdldCgpOwoJCQkJalF1ZXJ5KCBpbnNlcnRbaV0gKVsgb3JpZ2luYWwgXSggZWxlbXMgKTsKCQkJCXJldCA9IHJldC5jb25jYXQoIGVsZW1zICk7CgkJCX0KCgkJCXJldHVybiB0aGlzLnB1c2hTdGFjayggcmV0LCBuYW1lLCBpbnNlcnQuc2VsZWN0b3IgKTsKCQl9Cgl9Owp9KTsKCmZ1bmN0aW9uIGdldEFsbCggZWxlbSApIHsKCWlmICggImdldEVsZW1lbnRzQnlUYWdOYW1lIiBpbiBlbGVtICkgewoJCXJldHVybiBlbGVtLmdldEVsZW1lbnRzQnlUYWdOYW1lKCAiKiIgKTsKCQoJfSBlbHNlIGlmICggInF1ZXJ5U2VsZWN0b3JBbGwiIGluIGVsZW0gKSB7CgkJcmV0dXJuIGVsZW0ucXVlcnlTZWxlY3RvckFsbCggIioiICk7CgoJfSBlbHNlIHsKCQlyZXR1cm4gW107Cgl9Cn0KCmpRdWVyeS5leHRlbmQoewoJY2xvbmU6IGZ1bmN0aW9uKCBlbGVtLCBkYXRhQW5kRXZlbnRzLCBkZWVwRGF0YUFuZEV2ZW50cyApIHsKCQl2YXIgY2xvbmUgPSBlbGVtLmNsb25lTm9kZSh0cnVlKSwKCQkJCXNyY0VsZW1lbnRzLAoJCQkJZGVzdEVsZW1lbnRzLAoJCQkJaTsKCgkJaWYgKCAoIWpRdWVyeS5zdXBwb3J0Lm5vQ2xvbmVFdmVudCB8fCAhalF1ZXJ5LnN1cHBvcnQubm9DbG9uZUNoZWNrZWQpICYmCgkJCQkoZWxlbS5ub2RlVHlwZSA9PT0gMSB8fCBlbGVtLm5vZGVUeXBlID09PSAxMSkgJiYgIWpRdWVyeS5pc1hNTERvYyhlbGVtKSApIHsKCQkJLy8gSUUgY29waWVzIGV2ZW50cyBib3VuZCB2aWEgYXR0YWNoRXZlbnQgd2hlbiB1c2luZyBjbG9uZU5vZGUuCgkJCS8vIENhbGxpbmcgZGV0YWNoRXZlbnQgb24gdGhlIGNsb25lIHdpbGwgYWxzbyByZW1vdmUgdGhlIGV2ZW50cwoJCQkvLyBmcm9tIHRoZSBvcmlnaW5hbC4gSW4gb3JkZXIgdG8gZ2V0IGFyb3VuZCB0aGlzLCB3ZSB1c2Ugc29tZQoJCQkvLyBwcm9wcmlldGFyeSBtZXRob2RzIHRvIGNsZWFyIHRoZSBldmVudHMuIFRoYW5rcyB0byBNb29Ub29scwoJCQkvLyBndXlzIGZvciB0aGlzIGhvdG5lc3MuCgoJCQljbG9uZUZpeEF0dHJpYnV0ZXMoIGVsZW0sIGNsb25lICk7CgoJCQkvLyBVc2luZyBTaXp6bGUgaGVyZSBpcyBjcmF6eSBzbG93LCBzbyB3ZSB1c2UgZ2V0RWxlbWVudHNCeVRhZ05hbWUKCQkJLy8gaW5zdGVhZAoJCQlzcmNFbGVtZW50cyA9IGdldEFsbCggZWxlbSApOwoJCQlkZXN0RWxlbWVudHMgPSBnZXRBbGwoIGNsb25lICk7CgoJCQkvLyBXZWlyZCBpdGVyYXRpb24gYmVjYXVzZSBJRSB3aWxsIHJlcGxhY2UgdGhlIGxlbmd0aCBwcm9wZXJ0eQoJCQkvLyB3aXRoIGFuIGVsZW1lbnQgaWYgeW91IGFyZSBjbG9uaW5nIHRoZSBib2R5IGFuZCBvbmUgb2YgdGhlCgkJCS8vIGVsZW1lbnRzIG9uIHRoZSBwYWdlIGhhcyBhIG5hbWUgb3IgaWQgb2YgImxlbmd0aCIKCQkJZm9yICggaSA9IDA7IHNyY0VsZW1lbnRzW2ldOyArK2kgKSB7CgkJCQljbG9uZUZpeEF0dHJpYnV0ZXMoIHNyY0VsZW1lbnRzW2ldLCBkZXN0RWxlbWVudHNbaV0gKTsKCQkJfQoJCX0KCgkJLy8gQ29weSB0aGUgZXZlbnRzIGZyb20gdGhlIG9yaWdpbmFsIHRvIHRoZSBjbG9uZQoJCWlmICggZGF0YUFuZEV2ZW50cyApIHsKCQkJY2xvbmVDb3B5RXZlbnQoIGVsZW0sIGNsb25lICk7CgoJCQlpZiAoIGRlZXBEYXRhQW5kRXZlbnRzICkgewoJCQkJc3JjRWxlbWVudHMgPSBnZXRBbGwoIGVsZW0gKTsKCQkJCWRlc3RFbGVtZW50cyA9IGdldEFsbCggY2xvbmUgKTsKCgkJCQlmb3IgKCBpID0gMDsgc3JjRWxlbWVudHNbaV07ICsraSApIHsKCQkJCQljbG9uZUNvcHlFdmVudCggc3JjRWxlbWVudHNbaV0sIGRlc3RFbGVtZW50c1tpXSApOwoJCQkJfQoJCQl9CgkJfQoKCQkvLyBSZXR1cm4gdGhlIGNsb25lZCBzZXQKCQlyZXR1cm4gY2xvbmU7Cn0sCgljbGVhbjogZnVuY3Rpb24oIGVsZW1zLCBjb250ZXh0LCBmcmFnbWVudCwgc2NyaXB0cyApIHsKCQljb250ZXh0ID0gY29udGV4dCB8fCBkb2N1bWVudDsKCgkJLy8gIWNvbnRleHQuY3JlYXRlRWxlbWVudCBmYWlscyBpbiBJRSB3aXRoIGFuIGVycm9yIGJ1dCByZXR1cm5zIHR5cGVvZiAnb2JqZWN0JwoJCWlmICggdHlwZW9mIGNvbnRleHQuY3JlYXRlRWxlbWVudCA9PT0gInVuZGVmaW5lZCIgKSB7CgkJCWNvbnRleHQgPSBjb250ZXh0Lm93bmVyRG9jdW1lbnQgfHwgY29udGV4dFswXSAmJiBjb250ZXh0WzBdLm93bmVyRG9jdW1lbnQgfHwgZG9jdW1lbnQ7CgkJfQoKCQl2YXIgcmV0ID0gW107CgoJCWZvciAoIHZhciBpID0gMCwgZWxlbTsgKGVsZW0gPSBlbGVtc1tpXSkgIT0gbnVsbDsgaSsrICkgewoJCQlpZiAoIHR5cGVvZiBlbGVtID09PSAibnVtYmVyIiApIHsKCQkJCWVsZW0gKz0gIiI7CgkJCX0KCgkJCWlmICggIWVsZW0gKSB7CgkJCQljb250aW51ZTsKCQkJfQoKCQkJLy8gQ29udmVydCBodG1sIHN0cmluZyBpbnRvIERPTSBub2RlcwoJCQlpZiAoIHR5cGVvZiBlbGVtID09PSAic3RyaW5nIiAmJiAhcmh0bWwudGVzdCggZWxlbSApICkgewoJCQkJZWxlbSA9IGNvbnRleHQuY3JlYXRlVGV4dE5vZGUoIGVsZW0gKTsKCgkJCX0gZWxzZSBpZiAoIHR5cGVvZiBlbGVtID09PSAic3RyaW5nIiApIHsKCQkJCS8vIEZpeCAiWEhUTUwiLXN0eWxlIHRhZ3MgaW4gYWxsIGJyb3dzZXJzCgkJCQllbGVtID0gZWxlbS5yZXBsYWNlKHJ4aHRtbFRhZywgIjwkMT48LyQyPiIpOwoKCQkJCS8vIFRyaW0gd2hpdGVzcGFjZSwgb3RoZXJ3aXNlIGluZGV4T2Ygd29uJ3Qgd29yayBhcyBleHBlY3RlZAoJCQkJdmFyIHRhZyA9IChydGFnTmFtZS5leGVjKCBlbGVtICkgfHwgWyIiLCAiIl0pWzFdLnRvTG93ZXJDYXNlKCksCgkJCQkJd3JhcCA9IHdyYXBNYXBbIHRhZyBdIHx8IHdyYXBNYXAuX2RlZmF1bHQsCgkJCQkJZGVwdGggPSB3cmFwWzBdLAoJCQkJCWRpdiA9IGNvbnRleHQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CgoJCQkJLy8gR28gdG8gaHRtbCBhbmQgYmFjaywgdGhlbiBwZWVsIG9mZiBleHRyYSB3cmFwcGVycwoJCQkJZGl2LmlubmVySFRNTCA9IHdyYXBbMV0gKyBlbGVtICsgd3JhcFsyXTsKCgkJCQkvLyBNb3ZlIHRvIHRoZSByaWdodCBkZXB0aAoJCQkJd2hpbGUgKCBkZXB0aC0tICkgewoJCQkJCWRpdiA9IGRpdi5sYXN0Q2hpbGQ7CgkJCQl9CgoJCQkJLy8gUmVtb3ZlIElFJ3MgYXV0b2luc2VydGVkIDx0Ym9keT4gZnJvbSB0YWJsZSBmcmFnbWVudHMKCQkJCWlmICggIWpRdWVyeS5zdXBwb3J0LnRib2R5ICkgewoKCQkJCQkvLyBTdHJpbmcgd2FzIGEgPHRhYmxlPiwgKm1heSogaGF2ZSBzcHVyaW91cyA8dGJvZHk+CgkJCQkJdmFyIGhhc0JvZHkgPSBydGJvZHkudGVzdChlbGVtKSwKCQkJCQkJdGJvZHkgPSB0YWcgPT09ICJ0YWJsZSIgJiYgIWhhc0JvZHkgPwoJCQkJCQkJZGl2LmZpcnN0Q2hpbGQgJiYgZGl2LmZpcnN0Q2hpbGQuY2hpbGROb2RlcyA6CgoJCQkJCQkJLy8gU3RyaW5nIHdhcyBhIGJhcmUgPHRoZWFkPiBvciA8dGZvb3Q+CgkJCQkJCQl3cmFwWzFdID09PSAiPHRhYmxlPiIgJiYgIWhhc0JvZHkgPwoJCQkJCQkJCWRpdi5jaGlsZE5vZGVzIDoKCQkJCQkJCQlbXTsKCgkJCQkJZm9yICggdmFyIGogPSB0Ym9keS5sZW5ndGggLSAxOyBqID49IDAgOyAtLWogKSB7CgkJCQkJCWlmICggalF1ZXJ5Lm5vZGVOYW1lKCB0Ym9keVsgaiBdLCAidGJvZHkiICkgJiYgIXRib2R5WyBqIF0uY2hpbGROb2Rlcy5sZW5ndGggKSB7CgkJCQkJCQl0Ym9keVsgaiBdLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoIHRib2R5WyBqIF0gKTsKCQkJCQkJfQoJCQkJCX0KCgkJCQl9CgoJCQkJLy8gSUUgY29tcGxldGVseSBraWxscyBsZWFkaW5nIHdoaXRlc3BhY2Ugd2hlbiBpbm5lckhUTUwgaXMgdXNlZAoJCQkJaWYgKCAhalF1ZXJ5LnN1cHBvcnQubGVhZGluZ1doaXRlc3BhY2UgJiYgcmxlYWRpbmdXaGl0ZXNwYWNlLnRlc3QoIGVsZW0gKSApIHsKCQkJCQlkaXYuaW5zZXJ0QmVmb3JlKCBjb250ZXh0LmNyZWF0ZVRleHROb2RlKCBybGVhZGluZ1doaXRlc3BhY2UuZXhlYyhlbGVtKVswXSApLCBkaXYuZmlyc3RDaGlsZCApOwoJCQkJfQoKCQkJCWVsZW0gPSBkaXYuY2hpbGROb2RlczsKCQkJfQoKCQkJaWYgKCBlbGVtLm5vZGVUeXBlICkgewoJCQkJcmV0LnB1c2goIGVsZW0gKTsKCQkJfSBlbHNlIHsKCQkJCXJldCA9IGpRdWVyeS5tZXJnZSggcmV0LCBlbGVtICk7CgkJCX0KCQl9CgoJCWlmICggZnJhZ21lbnQgKSB7CgkJCWZvciAoIGkgPSAwOyByZXRbaV07IGkrKyApIHsKCQkJCWlmICggc2NyaXB0cyAmJiBqUXVlcnkubm9kZU5hbWUoIHJldFtpXSwgInNjcmlwdCIgKSAmJiAoIXJldFtpXS50eXBlIHx8IHJldFtpXS50eXBlLnRvTG93ZXJDYXNlKCkgPT09ICJ0ZXh0L2phdmFzY3JpcHQiKSApIHsKCQkJCQlzY3JpcHRzLnB1c2goIHJldFtpXS5wYXJlbnROb2RlID8gcmV0W2ldLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoIHJldFtpXSApIDogcmV0W2ldICk7CgoJCQkJfSBlbHNlIHsKCQkJCQlpZiAoIHJldFtpXS5ub2RlVHlwZSA9PT0gMSApIHsKCQkJCQkJcmV0LnNwbGljZS5hcHBseSggcmV0LCBbaSArIDEsIDBdLmNvbmNhdChqUXVlcnkubWFrZUFycmF5KHJldFtpXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IikpKSApOwoJCQkJCX0KCQkJCQlmcmFnbWVudC5hcHBlbmRDaGlsZCggcmV0W2ldICk7CgkJCQl9CgkJCX0KCQl9CgoJCXJldHVybiByZXQ7Cgl9LAoKCWNsZWFuRGF0YTogZnVuY3Rpb24oIGVsZW1zICkgewoJCXZhciBkYXRhLCBpZCwgY2FjaGUgPSBqUXVlcnkuY2FjaGUsIGludGVybmFsS2V5ID0galF1ZXJ5LmV4cGFuZG8sIHNwZWNpYWwgPSBqUXVlcnkuZXZlbnQuc3BlY2lhbCwKCQkJZGVsZXRlRXhwYW5kbyA9IGpRdWVyeS5zdXBwb3J0LmRlbGV0ZUV4cGFuZG87CgoJCWZvciAoIHZhciBpID0gMCwgZWxlbTsgKGVsZW0gPSBlbGVtc1tpXSkgIT0gbnVsbDsgaSsrICkgewoJCQlpZiAoIGVsZW0ubm9kZU5hbWUgJiYgalF1ZXJ5Lm5vRGF0YVtlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldICkgewoJCQkJY29udGludWU7CgkJCX0KCgkJCWlkID0gZWxlbVsgalF1ZXJ5LmV4cGFuZG8gXTsKCgkJCWlmICggaWQgKSB7CgkJCQlkYXRhID0gY2FjaGVbIGlkIF0gJiYgY2FjaGVbIGlkIF1bIGludGVybmFsS2V5IF07CgoJCQkJaWYgKCBkYXRhICYmIGRhdGEuZXZlbnRzICkgewoJCQkJCWZvciAoIHZhciB0eXBlIGluIGRhdGEuZXZlbnRzICkgewoJCQkJCQlpZiAoIHNwZWNpYWxbIHR5cGUgXSApIHsKCQkJCQkJCWpRdWVyeS5ldmVudC5yZW1vdmUoIGVsZW0sIHR5cGUgKTsKCgkJCQkJCS8vIFRoaXMgaXMgYSBzaG9ydGN1dCB0byBhdm9pZCBqUXVlcnkuZXZlbnQucmVtb3ZlJ3Mgb3ZlcmhlYWQKCQkJCQkJfSBlbHNlIHsKCQkJCQkJCWpRdWVyeS5yZW1vdmVFdmVudCggZWxlbSwgdHlwZSwgZGF0YS5oYW5kbGUgKTsKCQkJCQkJfQoJCQkJCX0KCgkJCQkJLy8gTnVsbCB0aGUgRE9NIHJlZmVyZW5jZSB0byBhdm9pZCBJRTYvNy84IGxlYWsgKCM3MDU0KQoJCQkJCWlmICggZGF0YS5oYW5kbGUgKSB7CgkJCQkJCWRhdGEuaGFuZGxlLmVsZW0gPSBudWxsOwoJCQkJCX0KCQkJCX0KCgkJCQlpZiAoIGRlbGV0ZUV4cGFuZG8gKSB7CgkJCQkJZGVsZXRlIGVsZW1bIGpRdWVyeS5leHBhbmRvIF07CgoJCQkJfSBlbHNlIGlmICggZWxlbS5yZW1vdmVBdHRyaWJ1dGUgKSB7CgkJCQkJZWxlbS5yZW1vdmVBdHRyaWJ1dGUoIGpRdWVyeS5leHBhbmRvICk7CgkJCQl9CgoJCQkJZGVsZXRlIGNhY2hlWyBpZCBdOwoJCQl9CgkJfQoJfQp9KTsKCmZ1bmN0aW9uIGV2YWxTY3JpcHQoIGksIGVsZW0gKSB7CglpZiAoIGVsZW0uc3JjICkgewoJCWpRdWVyeS5hamF4KHsKCQkJdXJsOiBlbGVtLnNyYywKCQkJYXN5bmM6IGZhbHNlLAoJCQlkYXRhVHlwZTogInNjcmlwdCIKCQl9KTsKCX0gZWxzZSB7CgkJalF1ZXJ5Lmdsb2JhbEV2YWwoIGVsZW0udGV4dCB8fCBlbGVtLnRleHRDb250ZW50IHx8IGVsZW0uaW5uZXJIVE1MIHx8ICIiICk7Cgl9CgoJaWYgKCBlbGVtLnBhcmVudE5vZGUgKSB7CgkJZWxlbS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKCBlbGVtICk7Cgl9Cn0KCgoKCnZhciByYWxwaGEgPSAvYWxwaGFcKFteKV0qXCkvaSwKCXJvcGFjaXR5ID0gL29wYWNpdHk9KFteKV0qKS8sCglyZGFzaEFscGhhID0gLy0oW2Etel0pL2lnLAoJcnVwcGVyID0gLyhbQS1aXSkvZywKCXJudW1weCA9IC9eLT9cZCsoPzpweCk/JC9pLAoJcm51bSA9IC9eLT9cZC8sCgoJY3NzU2hvdyA9IHsgcG9zaXRpb246ICJhYnNvbHV0ZSIsIHZpc2liaWxpdHk6ICJoaWRkZW4iLCBkaXNwbGF5OiAiYmxvY2siIH0sCgljc3NXaWR0aCA9IFsgIkxlZnQiLCAiUmlnaHQiIF0sCgljc3NIZWlnaHQgPSBbICJUb3AiLCAiQm90dG9tIiBdLAoJY3VyQ1NTLAoKCWdldENvbXB1dGVkU3R5bGUsCgljdXJyZW50U3R5bGUsCgoJZmNhbWVsQ2FzZSA9IGZ1bmN0aW9uKCBhbGwsIGxldHRlciApIHsKCQlyZXR1cm4gbGV0dGVyLnRvVXBwZXJDYXNlKCk7Cgl9OwoKalF1ZXJ5LmZuLmNzcyA9IGZ1bmN0aW9uKCBuYW1lLCB2YWx1ZSApIHsKCS8vIFNldHRpbmcgJ3VuZGVmaW5lZCcgaXMgYSBuby1vcAoJaWYgKCBhcmd1bWVudHMubGVuZ3RoID09PSAyICYmIHZhbHVlID09PSB1bmRlZmluZWQgKSB7CgkJcmV0dXJuIHRoaXM7Cgl9CgoJcmV0dXJuIGpRdWVyeS5hY2Nlc3MoIHRoaXMsIG5hbWUsIHZhbHVlLCB0cnVlLCBmdW5jdGlvbiggZWxlbSwgbmFtZSwgdmFsdWUgKSB7CgkJcmV0dXJuIHZhbHVlICE9PSB1bmRlZmluZWQgPwoJCQlqUXVlcnkuc3R5bGUoIGVsZW0sIG5hbWUsIHZhbHVlICkgOgoJCQlqUXVlcnkuY3NzKCBlbGVtLCBuYW1lICk7Cgl9KTsKfTsKCmpRdWVyeS5leHRlbmQoewoJLy8gQWRkIGluIHN0eWxlIHByb3BlcnR5IGhvb2tzIGZvciBvdmVycmlkaW5nIHRoZSBkZWZhdWx0CgkvLyBiZWhhdmlvciBvZiBnZXR0aW5nIGFuZCBzZXR0aW5nIGEgc3R5bGUgcHJvcGVydHkKCWNzc0hvb2tzOiB7CgkJb3BhY2l0eTogewoJCQlnZXQ6IGZ1bmN0aW9uKCBlbGVtLCBjb21wdXRlZCApIHsKCQkJCWlmICggY29tcHV0ZWQgKSB7CgkJCQkJLy8gV2Ugc2hvdWxkIGFsd2F5cyBnZXQgYSBudW1iZXIgYmFjayBmcm9tIG9wYWNpdHkKCQkJCQl2YXIgcmV0ID0gY3VyQ1NTKCBlbGVtLCAib3BhY2l0eSIsICJvcGFjaXR5IiApOwoJCQkJCXJldHVybiByZXQgPT09ICIiID8gIjEiIDogcmV0OwoKCQkJCX0gZWxzZSB7CgkJCQkJcmV0dXJuIGVsZW0uc3R5bGUub3BhY2l0eTsKCQkJCX0KCQkJfQoJCX0KCX0sCgoJLy8gRXhjbHVkZSB0aGUgZm9sbG93aW5nIGNzcyBwcm9wZXJ0aWVzIHRvIGFkZCBweAoJY3NzTnVtYmVyOiB7CgkJInpJbmRleCI6IHRydWUsCgkJImZvbnRXZWlnaHQiOiB0cnVlLAoJCSJvcGFjaXR5IjogdHJ1ZSwKCQkiem9vbSI6IHRydWUsCgkJImxpbmVIZWlnaHQiOiB0cnVlCgl9LAoKCS8vIEFkZCBpbiBwcm9wZXJ0aWVzIHdob3NlIG5hbWVzIHlvdSB3aXNoIHRvIGZpeCBiZWZvcmUKCS8vIHNldHRpbmcgb3IgZ2V0dGluZyB0aGUgdmFsdWUKCWNzc1Byb3BzOiB7CgkJLy8gbm9ybWFsaXplIGZsb2F0IGNzcyBwcm9wZXJ0eQoJCSJmbG9hdCI6IGpRdWVyeS5zdXBwb3J0LmNzc0Zsb2F0ID8gImNzc0Zsb2F0IiA6ICJzdHlsZUZsb2F0IgoJfSwKCgkvLyBHZXQgYW5kIHNldCB0aGUgc3R5bGUgcHJvcGVydHkgb24gYSBET00gTm9kZQoJc3R5bGU6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCB2YWx1ZSwgZXh0cmEgKSB7CgkJLy8gRG9uJ3Qgc2V0IHN0eWxlcyBvbiB0ZXh0IGFuZCBjb21tZW50IG5vZGVzCgkJaWYgKCAhZWxlbSB8fCBlbGVtLm5vZGVUeXBlID09PSAzIHx8IGVsZW0ubm9kZVR5cGUgPT09IDggfHwgIWVsZW0uc3R5bGUgKSB7CgkJCXJldHVybjsKCQl9CgoJCS8vIE1ha2Ugc3VyZSB0aGF0IHdlJ3JlIHdvcmtpbmcgd2l0aCB0aGUgcmlnaHQgbmFtZQoJCXZhciByZXQsIG9yaWdOYW1lID0galF1ZXJ5LmNhbWVsQ2FzZSggbmFtZSApLAoJCQlzdHlsZSA9IGVsZW0uc3R5bGUsIGhvb2tzID0galF1ZXJ5LmNzc0hvb2tzWyBvcmlnTmFtZSBdOwoKCQluYW1lID0galF1ZXJ5LmNzc1Byb3BzWyBvcmlnTmFtZSBdIHx8IG9yaWdOYW1lOwoKCQkvLyBDaGVjayBpZiB3ZSdyZSBzZXR0aW5nIGEgdmFsdWUKCQlpZiAoIHZhbHVlICE9PSB1bmRlZmluZWQgKSB7CgkJCS8vIE1ha2Ugc3VyZSB0aGF0IE5hTiBhbmQgbnVsbCB2YWx1ZXMgYXJlbid0IHNldC4gU2VlOiAjNzExNgoJCQlpZiAoIHR5cGVvZiB2YWx1ZSA9PT0gIm51bWJlciIgJiYgaXNOYU4oIHZhbHVlICkgfHwgdmFsdWUgPT0gbnVsbCApIHsKCQkJCXJldHVybjsKCQkJfQoKCQkJLy8gSWYgYSBudW1iZXIgd2FzIHBhc3NlZCBpbiwgYWRkICdweCcgdG8gdGhlIChleGNlcHQgZm9yIGNlcnRhaW4gQ1NTIHByb3BlcnRpZXMpCgkJCWlmICggdHlwZW9mIHZhbHVlID09PSAibnVtYmVyIiAmJiAhalF1ZXJ5LmNzc051bWJlclsgb3JpZ05hbWUgXSApIHsKCQkJCXZhbHVlICs9ICJweCI7CgkJCX0KCgkJCS8vIElmIGEgaG9vayB3YXMgcHJvdmlkZWQsIHVzZSB0aGF0IHZhbHVlLCBvdGhlcndpc2UganVzdCBzZXQgdGhlIHNwZWNpZmllZCB2YWx1ZQoJCQlpZiAoICFob29rcyB8fCAhKCJzZXQiIGluIGhvb2tzKSB8fCAodmFsdWUgPSBob29rcy5zZXQoIGVsZW0sIHZhbHVlICkpICE9PSB1bmRlZmluZWQgKSB7CgkJCQkvLyBXcmFwcGVkIHRvIHByZXZlbnQgSUUgZnJvbSB0aHJvd2luZyBlcnJvcnMgd2hlbiAnaW52YWxpZCcgdmFsdWVzIGFyZSBwcm92aWRlZAoJCQkJLy8gRml4ZXMgYnVnICM1NTA5CgkJCQl0cnkgewoJCQkJCXN0eWxlWyBuYW1lIF0gPSB2YWx1ZTsKCQkJCX0gY2F0Y2goZSkge30KCQkJfQoKCQl9IGVsc2UgewoJCQkvLyBJZiBhIGhvb2sgd2FzIHByb3ZpZGVkIGdldCB0aGUgbm9uLWNvbXB1dGVkIHZhbHVlIGZyb20gdGhlcmUKCQkJaWYgKCBob29rcyAmJiAiZ2V0IiBpbiBob29rcyAmJiAocmV0ID0gaG9va3MuZ2V0KCBlbGVtLCBmYWxzZSwgZXh0cmEgKSkgIT09IHVuZGVmaW5lZCApIHsKCQkJCXJldHVybiByZXQ7CgkJCX0KCgkJCS8vIE90aGVyd2lzZSBqdXN0IGdldCB0aGUgdmFsdWUgZnJvbSB0aGUgc3R5bGUgb2JqZWN0CgkJCXJldHVybiBzdHlsZVsgbmFtZSBdOwoJCX0KCX0sCgoJY3NzOiBmdW5jdGlvbiggZWxlbSwgbmFtZSwgZXh0cmEgKSB7CgkJLy8gTWFrZSBzdXJlIHRoYXQgd2UncmUgd29ya2luZyB3aXRoIHRoZSByaWdodCBuYW1lCgkJdmFyIHJldCwgb3JpZ05hbWUgPSBqUXVlcnkuY2FtZWxDYXNlKCBuYW1lICksCgkJCWhvb2tzID0galF1ZXJ5LmNzc0hvb2tzWyBvcmlnTmFtZSBdOwoKCQluYW1lID0galF1ZXJ5LmNzc1Byb3BzWyBvcmlnTmFtZSBdIHx8IG9yaWdOYW1lOwoKCQkvLyBJZiBhIGhvb2sgd2FzIHByb3ZpZGVkIGdldCB0aGUgY29tcHV0ZWQgdmFsdWUgZnJvbSB0aGVyZQoJCWlmICggaG9va3MgJiYgImdldCIgaW4gaG9va3MgJiYgKHJldCA9IGhvb2tzLmdldCggZWxlbSwgdHJ1ZSwgZXh0cmEgKSkgIT09IHVuZGVmaW5lZCApIHsKCQkJcmV0dXJuIHJldDsKCgkJLy8gT3RoZXJ3aXNlLCBpZiBhIHdheSB0byBnZXQgdGhlIGNvbXB1dGVkIHZhbHVlIGV4aXN0cywgdXNlIHRoYXQKCQl9IGVsc2UgaWYgKCBjdXJDU1MgKSB7CgkJCXJldHVybiBjdXJDU1MoIGVsZW0sIG5hbWUsIG9yaWdOYW1lICk7CgkJfQoJfSwKCgkvLyBBIG1ldGhvZCBmb3IgcXVpY2tseSBzd2FwcGluZyBpbi9vdXQgQ1NTIHByb3BlcnRpZXMgdG8gZ2V0IGNvcnJlY3QgY2FsY3VsYXRpb25zCglzd2FwOiBmdW5jdGlvbiggZWxlbSwgb3B0aW9ucywgY2FsbGJhY2sgKSB7CgkJdmFyIG9sZCA9IHt9OwoKCQkvLyBSZW1lbWJlciB0aGUgb2xkIHZhbHVlcywgYW5kIGluc2VydCB0aGUgbmV3IG9uZXMKCQlmb3IgKCB2YXIgbmFtZSBpbiBvcHRpb25zICkgewoJCQlvbGRbIG5hbWUgXSA9IGVsZW0uc3R5bGVbIG5hbWUgXTsKCQkJZWxlbS5zdHlsZVsgbmFtZSBdID0gb3B0aW9uc1sgbmFtZSBdOwoJCX0KCgkJY2FsbGJhY2suY2FsbCggZWxlbSApOwoKCQkvLyBSZXZlcnQgdGhlIG9sZCB2YWx1ZXMKCQlmb3IgKCBuYW1lIGluIG9wdGlvbnMgKSB7CgkJCWVsZW0uc3R5bGVbIG5hbWUgXSA9IG9sZFsgbmFtZSBdOwoJCX0KCX0sCgoJY2FtZWxDYXNlOiBmdW5jdGlvbiggc3RyaW5nICkgewoJCXJldHVybiBzdHJpbmcucmVwbGFjZSggcmRhc2hBbHBoYSwgZmNhbWVsQ2FzZSApOwoJfQp9KTsKCi8vIERFUFJFQ0FURUQsIFVzZSBqUXVlcnkuY3NzKCkgaW5zdGVhZApqUXVlcnkuY3VyQ1NTID0galF1ZXJ5LmNzczsKCmpRdWVyeS5lYWNoKFsiaGVpZ2h0IiwgIndpZHRoIl0sIGZ1bmN0aW9uKCBpLCBuYW1lICkgewoJalF1ZXJ5LmNzc0hvb2tzWyBuYW1lIF0gPSB7CgkJZ2V0OiBmdW5jdGlvbiggZWxlbSwgY29tcHV0ZWQsIGV4dHJhICkgewoJCQl2YXIgdmFsOwoKCQkJaWYgKCBjb21wdXRlZCApIHsKCQkJCWlmICggZWxlbS5vZmZzZXRXaWR0aCAhPT0gMCApIHsKCQkJCQl2YWwgPSBnZXRXSCggZWxlbSwgbmFtZSwgZXh0cmEgKTsKCgkJCQl9IGVsc2UgewoJCQkJCWpRdWVyeS5zd2FwKCBlbGVtLCBjc3NTaG93LCBmdW5jdGlvbigpIHsKCQkJCQkJdmFsID0gZ2V0V0goIGVsZW0sIG5hbWUsIGV4dHJhICk7CgkJCQkJfSk7CgkJCQl9CgoJCQkJaWYgKCB2YWwgPD0gMCApIHsKCQkJCQl2YWwgPSBjdXJDU1MoIGVsZW0sIG5hbWUsIG5hbWUgKTsKCgkJCQkJaWYgKCB2YWwgPT09ICIwcHgiICYmIGN1cnJlbnRTdHlsZSApIHsKCQkJCQkJdmFsID0gY3VycmVudFN0eWxlKCBlbGVtLCBuYW1lLCBuYW1lICk7CgkJCQkJfQoKCQkJCQlpZiAoIHZhbCAhPSBudWxsICkgewoJCQkJCQkvLyBTaG91bGQgcmV0dXJuICJhdXRvIiBpbnN0ZWFkIG9mIDAsIHVzZSAwIGZvcgoJCQkJCQkvLyB0ZW1wb3JhcnkgYmFja3dhcmRzLWNvbXBhdAoJCQkJCQlyZXR1cm4gdmFsID09PSAiIiB8fCB2YWwgPT09ICJhdXRvIiA/ICIwcHgiIDogdmFsOwoJCQkJCX0KCQkJCX0KCgkJCQlpZiAoIHZhbCA8IDAgfHwgdmFsID09IG51bGwgKSB7CgkJCQkJdmFsID0gZWxlbS5zdHlsZVsgbmFtZSBdOwoKCQkJCQkvLyBTaG91bGQgcmV0dXJuICJhdXRvIiBpbnN0ZWFkIG9mIDAsIHVzZSAwIGZvcgoJCQkJCS8vIHRlbXBvcmFyeSBiYWNrd2FyZHMtY29tcGF0CgkJCQkJcmV0dXJuIHZhbCA9PT0gIiIgfHwgdmFsID09PSAiYXV0byIgPyAiMHB4IiA6IHZhbDsKCQkJCX0KCgkJCQlyZXR1cm4gdHlwZW9mIHZhbCA9PT0gInN0cmluZyIgPyB2YWwgOiB2YWwgKyAicHgiOwoJCQl9CgkJfSwKCgkJc2V0OiBmdW5jdGlvbiggZWxlbSwgdmFsdWUgKSB7CgkJCWlmICggcm51bXB4LnRlc3QoIHZhbHVlICkgKSB7CgkJCQkvLyBpZ25vcmUgbmVnYXRpdmUgd2lkdGggYW5kIGhlaWdodCB2YWx1ZXMgIzE1OTkKCQkJCXZhbHVlID0gcGFyc2VGbG9hdCh2YWx1ZSk7CgoJCQkJaWYgKCB2YWx1ZSA+PSAwICkgewoJCQkJCXJldHVybiB2YWx1ZSArICJweCI7CgkJCQl9CgoJCQl9IGVsc2UgewoJCQkJcmV0dXJuIHZhbHVlOwoJCQl9CgkJfQoJfTsKfSk7CgppZiAoICFqUXVlcnkuc3VwcG9ydC5vcGFjaXR5ICkgewoJalF1ZXJ5LmNzc0hvb2tzLm9wYWNpdHkgPSB7CgkJZ2V0OiBmdW5jdGlvbiggZWxlbSwgY29tcHV0ZWQgKSB7CgkJCS8vIElFIHVzZXMgZmlsdGVycyBmb3Igb3BhY2l0eQoJCQlyZXR1cm4gcm9wYWNpdHkudGVzdCgoY29tcHV0ZWQgJiYgZWxlbS5jdXJyZW50U3R5bGUgPyBlbGVtLmN1cnJlbnRTdHlsZS5maWx0ZXIgOiBlbGVtLnN0eWxlLmZpbHRlcikgfHwgIiIpID8KCQkJCShwYXJzZUZsb2F0KFJlZ0V4cC4kMSkgLyAxMDApICsgIiIgOgoJCQkJY29tcHV0ZWQgPyAiMSIgOiAiIjsKCQl9LAoKCQlzZXQ6IGZ1bmN0aW9uKCBlbGVtLCB2YWx1ZSApIHsKCQkJdmFyIHN0eWxlID0gZWxlbS5zdHlsZTsKCgkJCS8vIElFIGhhcyB0cm91YmxlIHdpdGggb3BhY2l0eSBpZiBpdCBkb2VzIG5vdCBoYXZlIGxheW91dAoJCQkvLyBGb3JjZSBpdCBieSBzZXR0aW5nIHRoZSB6b29tIGxldmVsCgkJCXN0eWxlLnpvb20gPSAxOwoKCQkJLy8gU2V0IHRoZSBhbHBoYSBmaWx0ZXIgdG8gc2V0IHRoZSBvcGFjaXR5CgkJCXZhciBvcGFjaXR5ID0galF1ZXJ5LmlzTmFOKHZhbHVlKSA/CgkJCQkiIiA6CgkJCQkiYWxwaGEob3BhY2l0eT0iICsgdmFsdWUgKiAxMDAgKyAiKSIsCgkJCQlmaWx0ZXIgPSBzdHlsZS5maWx0ZXIgfHwgIiI7CgoJCQlzdHlsZS5maWx0ZXIgPSByYWxwaGEudGVzdChmaWx0ZXIpID8KCQkJCWZpbHRlci5yZXBsYWNlKHJhbHBoYSwgb3BhY2l0eSkgOgoJCQkJc3R5bGUuZmlsdGVyICsgJyAnICsgb3BhY2l0eTsKCQl9Cgl9Owp9CgppZiAoIGRvY3VtZW50LmRlZmF1bHRWaWV3ICYmIGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUgKSB7CglnZXRDb21wdXRlZFN0eWxlID0gZnVuY3Rpb24oIGVsZW0sIG5ld05hbWUsIG5hbWUgKSB7CgkJdmFyIHJldCwgZGVmYXVsdFZpZXcsIGNvbXB1dGVkU3R5bGU7CgoJCW5hbWUgPSBuYW1lLnJlcGxhY2UoIHJ1cHBlciwgIi0kMSIgKS50b0xvd2VyQ2FzZSgpOwoKCQlpZiAoICEoZGVmYXVsdFZpZXcgPSBlbGVtLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcpICkgewoJCQlyZXR1cm4gdW5kZWZpbmVkOwoJCX0KCgkJaWYgKCAoY29tcHV0ZWRTdHlsZSA9IGRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoIGVsZW0sIG51bGwgKSkgKSB7CgkJCXJldCA9IGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSggbmFtZSApOwoJCQlpZiAoIHJldCA9PT0gIiIgJiYgIWpRdWVyeS5jb250YWlucyggZWxlbS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgZWxlbSApICkgewoJCQkJcmV0ID0galF1ZXJ5LnN0eWxlKCBlbGVtLCBuYW1lICk7CgkJCX0KCQl9CgoJCXJldHVybiByZXQ7Cgl9Owp9CgppZiAoIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jdXJyZW50U3R5bGUgKSB7CgljdXJyZW50U3R5bGUgPSBmdW5jdGlvbiggZWxlbSwgbmFtZSApIHsKCQl2YXIgbGVmdCwKCQkJcmV0ID0gZWxlbS5jdXJyZW50U3R5bGUgJiYgZWxlbS5jdXJyZW50U3R5bGVbIG5hbWUgXSwKCQkJcnNMZWZ0ID0gZWxlbS5ydW50aW1lU3R5bGUgJiYgZWxlbS5ydW50aW1lU3R5bGVbIG5hbWUgXSwKCQkJc3R5bGUgPSBlbGVtLnN0eWxlOwoKCQkvLyBGcm9tIHRoZSBhd2Vzb21lIGhhY2sgYnkgRGVhbiBFZHdhcmRzCgkJLy8gaHR0cDovL2VyaWsuZWFlLm5ldC9hcmNoaXZlcy8yMDA3LzA3LzI3LzE4LjU0LjE1LyNjb21tZW50LTEwMjI5MQoKCQkvLyBJZiB3ZSdyZSBub3QgZGVhbGluZyB3aXRoIGEgcmVndWxhciBwaXhlbCBudW1iZXIKCQkvLyBidXQgYSBudW1iZXIgdGhhdCBoYXMgYSB3ZWlyZCBlbmRpbmcsIHdlIG5lZWQgdG8gY29udmVydCBpdCB0byBwaXhlbHMKCQlpZiAoICFybnVtcHgudGVzdCggcmV0ICkgJiYgcm51bS50ZXN0KCByZXQgKSApIHsKCQkJLy8gUmVtZW1iZXIgdGhlIG9yaWdpbmFsIHZhbHVlcwoJCQlsZWZ0ID0gc3R5bGUubGVmdDsKCgkJCS8vIFB1dCBpbiB0aGUgbmV3IHZhbHVlcyB0byBnZXQgYSBjb21wdXRlZCB2YWx1ZSBvdXQKCQkJaWYgKCByc0xlZnQgKSB7CgkJCQllbGVtLnJ1bnRpbWVTdHlsZS5sZWZ0ID0gZWxlbS5jdXJyZW50U3R5bGUubGVmdDsKCQkJfQoJCQlzdHlsZS5sZWZ0ID0gbmFtZSA9PT0gImZvbnRTaXplIiA/ICIxZW0iIDogKHJldCB8fCAwKTsKCQkJcmV0ID0gc3R5bGUucGl4ZWxMZWZ0ICsgInB4IjsKCgkJCS8vIFJldmVydCB0aGUgY2hhbmdlZCB2YWx1ZXMKCQkJc3R5bGUubGVmdCA9IGxlZnQ7CgkJCWlmICggcnNMZWZ0ICkgewoJCQkJZWxlbS5ydW50aW1lU3R5bGUubGVmdCA9IHJzTGVmdDsKCQkJfQoJCX0KCgkJcmV0dXJuIHJldCA9PT0gIiIgPyAiYXV0byIgOiByZXQ7Cgl9Owp9CgpjdXJDU1MgPSBnZXRDb21wdXRlZFN0eWxlIHx8IGN1cnJlbnRTdHlsZTsKCmZ1bmN0aW9uIGdldFdIKCBlbGVtLCBuYW1lLCBleHRyYSApIHsKCXZhciB3aGljaCA9IG5hbWUgPT09ICJ3aWR0aCIgPyBjc3NXaWR0aCA6IGNzc0hlaWdodCwKCQl2YWwgPSBuYW1lID09PSAid2lkdGgiID8gZWxlbS5vZmZzZXRXaWR0aCA6IGVsZW0ub2Zmc2V0SGVpZ2h0OwoKCWlmICggZXh0cmEgPT09ICJib3JkZXIiICkgewoJCXJldHVybiB2YWw7Cgl9CgoJalF1ZXJ5LmVhY2goIHdoaWNoLCBmdW5jdGlvbigpIHsKCQlpZiAoICFleHRyYSApIHsKCQkJdmFsIC09IHBhcnNlRmxvYXQoalF1ZXJ5LmNzcyggZWxlbSwgInBhZGRpbmciICsgdGhpcyApKSB8fCAwOwoJCX0KCgkJaWYgKCBleHRyYSA9PT0gIm1hcmdpbiIgKSB7CgkJCXZhbCArPSBwYXJzZUZsb2F0KGpRdWVyeS5jc3MoIGVsZW0sICJtYXJnaW4iICsgdGhpcyApKSB8fCAwOwoKCQl9IGVsc2UgewoJCQl2YWwgLT0gcGFyc2VGbG9hdChqUXVlcnkuY3NzKCBlbGVtLCAiYm9yZGVyIiArIHRoaXMgKyAiV2lkdGgiICkpIHx8IDA7CgkJfQoJfSk7CgoJcmV0dXJuIHZhbDsKfQoKaWYgKCBqUXVlcnkuZXhwciAmJiBqUXVlcnkuZXhwci5maWx0ZXJzICkgewoJalF1ZXJ5LmV4cHIuZmlsdGVycy5oaWRkZW4gPSBmdW5jdGlvbiggZWxlbSApIHsKCQl2YXIgd2lkdGggPSBlbGVtLm9mZnNldFdpZHRoLAoJCQloZWlnaHQgPSBlbGVtLm9mZnNldEhlaWdodDsKCgkJcmV0dXJuICh3aWR0aCA9PT0gMCAmJiBoZWlnaHQgPT09IDApIHx8ICghalF1ZXJ5LnN1cHBvcnQucmVsaWFibGVIaWRkZW5PZmZzZXRzICYmIChlbGVtLnN0eWxlLmRpc3BsYXkgfHwgalF1ZXJ5LmNzcyggZWxlbSwgImRpc3BsYXkiICkpID09PSAibm9uZSIpOwoJfTsKCglqUXVlcnkuZXhwci5maWx0ZXJzLnZpc2libGUgPSBmdW5jdGlvbiggZWxlbSApIHsKCQlyZXR1cm4gIWpRdWVyeS5leHByLmZpbHRlcnMuaGlkZGVuKCBlbGVtICk7Cgl9Owp9CgoKCgp2YXIgcjIwID0gLyUyMC9nLAoJcmJyYWNrZXQgPSAvXFtcXSQvLAoJckNSTEYgPSAvXHI/XG4vZywKCXJoYXNoID0gLyMuKiQvLAoJcmhlYWRlcnMgPSAvXiguKj8pOlsgXHRdKihbXlxyXG5dKilccj8kL21nLCAvLyBJRSBsZWF2ZXMgYW4gXHIgY2hhcmFjdGVyIGF0IEVPTAoJcmlucHV0ID0gL14oPzpjb2xvcnxkYXRlfGRhdGV0aW1lfGVtYWlsfGhpZGRlbnxtb250aHxudW1iZXJ8cGFzc3dvcmR8cmFuZ2V8c2VhcmNofHRlbHx0ZXh0fHRpbWV8dXJsfHdlZWspJC9pLAoJLy8gIzc2NTMsICM4MTI1LCAjODE1MjogbG9jYWwgcHJvdG9jb2wgZGV0ZWN0aW9uCglybG9jYWxQcm90b2NvbCA9IC8oPzpeZmlsZXxed2lkZ2V0fFwtZXh0ZW5zaW9uKTokLywKCXJub0NvbnRlbnQgPSAvXig/OkdFVHxIRUFEKSQvLAoJcnByb3RvY29sID0gL15cL1wvLywKCXJxdWVyeSA9IC9cPy8sCglyc2NyaXB0ID0gLzxzY3JpcHRcYltePF0qKD86KD8hPFwvc2NyaXB0Pik8W148XSopKjxcL3NjcmlwdD4vZ2ksCglyc2VsZWN0VGV4dGFyZWEgPSAvXig/OnNlbGVjdHx0ZXh0YXJlYSkvaSwKCXJzcGFjZXNBamF4ID0gL1xzKy8sCglydHMgPSAvKFs/Jl0pXz1bXiZdKi8sCglydWNIZWFkZXJzID0gLyhefFwtKShbYS16XSkvZywKCXJ1Y0hlYWRlcnNGdW5jID0gZnVuY3Rpb24oIF8sICQxLCAkMiApIHsKCQlyZXR1cm4gJDEgKyAkMi50b1VwcGVyQ2FzZSgpOwoJfSwKCXJ1cmwgPSAvXihbXHdcK1wuXC1dKzopXC9cLyhbXlwvPyM6XSopKD86OihcZCspKT8vLAoKCS8vIEtlZXAgYSBjb3B5IG9mIHRoZSBvbGQgbG9hZCBtZXRob2QKCV9sb2FkID0galF1ZXJ5LmZuLmxvYWQsCgoJLyogUHJlZmlsdGVycwoJICogMSkgVGhleSBhcmUgdXNlZnVsIHRvIGludHJvZHVjZSBjdXN0b20gZGF0YVR5cGVzIChzZWUgYWpheC9qc29ucC5qcyBmb3IgYW4gZXhhbXBsZSkKCSAqIDIpIFRoZXNlIGFyZSBjYWxsZWQ6CgkgKiAgICAtIEJFRk9SRSBhc2tpbmcgZm9yIGEgdHJhbnNwb3J0CgkgKiAgICAtIEFGVEVSIHBhcmFtIHNlcmlhbGl6YXRpb24gKHMuZGF0YSBpcyBhIHN0cmluZyBpZiBzLnByb2Nlc3NEYXRhIGlzIHRydWUpCgkgKiAzKSBrZXkgaXMgdGhlIGRhdGFUeXBlCgkgKiA0KSB0aGUgY2F0Y2hhbGwgc3ltYm9sICIqIiBjYW4gYmUgdXNlZAoJICogNSkgZXhlY3V0aW9uIHdpbGwgc3RhcnQgd2l0aCB0cmFuc3BvcnQgZGF0YVR5cGUgYW5kIFRIRU4gY29udGludWUgZG93biB0byAiKiIgaWYgbmVlZGVkCgkgKi8KCXByZWZpbHRlcnMgPSB7fSwKCgkvKiBUcmFuc3BvcnRzIGJpbmRpbmdzCgkgKiAxKSBrZXkgaXMgdGhlIGRhdGFUeXBlCgkgKiAyKSB0aGUgY2F0Y2hhbGwgc3ltYm9sICIqIiBjYW4gYmUgdXNlZAoJICogMykgc2VsZWN0aW9uIHdpbGwgc3RhcnQgd2l0aCB0cmFuc3BvcnQgZGF0YVR5cGUgYW5kIFRIRU4gZ28gdG8gIioiIGlmIG5lZWRlZAoJICovCgl0cmFuc3BvcnRzID0ge30sCgoJLy8gRG9jdW1lbnQgbG9jYXRpb24KCWFqYXhMb2NhdGlvbiwKCgkvLyBEb2N1bWVudCBsb2NhdGlvbiBzZWdtZW50cwoJYWpheExvY1BhcnRzOwoKLy8gIzgxMzgsIElFIG1heSB0aHJvdyBhbiBleGNlcHRpb24gd2hlbiBhY2Nlc3NpbmcKLy8gYSBmaWVsZCBmcm9tIGRvY3VtZW50LmxvY2F0aW9uIGlmIGRvY3VtZW50LmRvbWFpbiBoYXMgYmVlbiBzZXQKdHJ5IHsKCWFqYXhMb2NhdGlvbiA9IGRvY3VtZW50LmxvY2F0aW9uLmhyZWY7Cn0gY2F0Y2goIGUgKSB7CgkvLyBVc2UgdGhlIGhyZWYgYXR0cmlidXRlIG9mIGFuIEEgZWxlbWVudAoJLy8gc2luY2UgSUUgd2lsbCBtb2RpZnkgaXQgZ2l2ZW4gZG9jdW1lbnQubG9jYXRpb24KCWFqYXhMb2NhdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICJhIiApOwoJYWpheExvY2F0aW9uLmhyZWYgPSAiIjsKCWFqYXhMb2NhdGlvbiA9IGFqYXhMb2NhdGlvbi5ocmVmOwp9CgovLyBTZWdtZW50IGxvY2F0aW9uIGludG8gcGFydHMKYWpheExvY1BhcnRzID0gcnVybC5leGVjKCBhamF4TG9jYXRpb24udG9Mb3dlckNhc2UoKSApOwoKLy8gQmFzZSAiY29uc3RydWN0b3IiIGZvciBqUXVlcnkuYWpheFByZWZpbHRlciBhbmQgalF1ZXJ5LmFqYXhUcmFuc3BvcnQKZnVuY3Rpb24gYWRkVG9QcmVmaWx0ZXJzT3JUcmFuc3BvcnRzKCBzdHJ1Y3R1cmUgKSB7CgoJLy8gZGF0YVR5cGVFeHByZXNzaW9uIGlzIG9wdGlvbmFsIGFuZCBkZWZhdWx0cyB0byAiKiIKCXJldHVybiBmdW5jdGlvbiggZGF0YVR5cGVFeHByZXNzaW9uLCBmdW5jICkgewoKCQlpZiAoIHR5cGVvZiBkYXRhVHlwZUV4cHJlc3Npb24gIT09ICJzdHJpbmciICkgewoJCQlmdW5jID0gZGF0YVR5cGVFeHByZXNzaW9uOwoJCQlkYXRhVHlwZUV4cHJlc3Npb24gPSAiKiI7CgkJfQoKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCBmdW5jICkgKSB7CgkJCXZhciBkYXRhVHlwZXMgPSBkYXRhVHlwZUV4cHJlc3Npb24udG9Mb3dlckNhc2UoKS5zcGxpdCggcnNwYWNlc0FqYXggKSwKCQkJCWkgPSAwLAoJCQkJbGVuZ3RoID0gZGF0YVR5cGVzLmxlbmd0aCwKCQkJCWRhdGFUeXBlLAoJCQkJbGlzdCwKCQkJCXBsYWNlQmVmb3JlOwoKCQkJLy8gRm9yIGVhY2ggZGF0YVR5cGUgaW4gdGhlIGRhdGFUeXBlRXhwcmVzc2lvbgoJCQlmb3IoOyBpIDwgbGVuZ3RoOyBpKysgKSB7CgkJCQlkYXRhVHlwZSA9IGRhdGFUeXBlc1sgaSBdOwoJCQkJLy8gV2UgY29udHJvbCBpZiB3ZSdyZSBhc2tlZCB0byBhZGQgYmVmb3JlCgkJCQkvLyBhbnkgZXhpc3RpbmcgZWxlbWVudAoJCQkJcGxhY2VCZWZvcmUgPSAvXlwrLy50ZXN0KCBkYXRhVHlwZSApOwoJCQkJaWYgKCBwbGFjZUJlZm9yZSApIHsKCQkJCQlkYXRhVHlwZSA9IGRhdGFUeXBlLnN1YnN0ciggMSApIHx8ICIqIjsKCQkJCX0KCQkJCWxpc3QgPSBzdHJ1Y3R1cmVbIGRhdGFUeXBlIF0gPSBzdHJ1Y3R1cmVbIGRhdGFUeXBlIF0gfHwgW107CgkJCQkvLyB0aGVuIHdlIGFkZCB0byB0aGUgc3RydWN0dXJlIGFjY29yZGluZ2x5CgkJCQlsaXN0WyBwbGFjZUJlZm9yZSA/ICJ1bnNoaWZ0IiA6ICJwdXNoIiBdKCBmdW5jICk7CgkJCX0KCQl9Cgl9Owp9CgovL0Jhc2UgaW5zcGVjdGlvbiBmdW5jdGlvbiBmb3IgcHJlZmlsdGVycyBhbmQgdHJhbnNwb3J0cwpmdW5jdGlvbiBpbnNwZWN0UHJlZmlsdGVyc09yVHJhbnNwb3J0cyggc3RydWN0dXJlLCBvcHRpb25zLCBvcmlnaW5hbE9wdGlvbnMsIGpxWEhSLAoJCWRhdGFUeXBlIC8qIGludGVybmFsICovLCBpbnNwZWN0ZWQgLyogaW50ZXJuYWwgKi8gKSB7CgoJZGF0YVR5cGUgPSBkYXRhVHlwZSB8fCBvcHRpb25zLmRhdGFUeXBlc1sgMCBdOwoJaW5zcGVjdGVkID0gaW5zcGVjdGVkIHx8IHt9OwoKCWluc3BlY3RlZFsgZGF0YVR5cGUgXSA9IHRydWU7CgoJdmFyIGxpc3QgPSBzdHJ1Y3R1cmVbIGRhdGFUeXBlIF0sCgkJaSA9IDAsCgkJbGVuZ3RoID0gbGlzdCA/IGxpc3QubGVuZ3RoIDogMCwKCQlleGVjdXRlT25seSA9ICggc3RydWN0dXJlID09PSBwcmVmaWx0ZXJzICksCgkJc2VsZWN0aW9uOwoKCWZvcig7IGkgPCBsZW5ndGggJiYgKCBleGVjdXRlT25seSB8fCAhc2VsZWN0aW9uICk7IGkrKyApIHsKCQlzZWxlY3Rpb24gPSBsaXN0WyBpIF0oIG9wdGlvbnMsIG9yaWdpbmFsT3B0aW9ucywganFYSFIgKTsKCQkvLyBJZiB3ZSBnb3QgcmVkaXJlY3RlZCB0byBhbm90aGVyIGRhdGFUeXBlCgkJLy8gd2UgdHJ5IHRoZXJlIGlmIGV4ZWN1dGluZyBvbmx5IGFuZCBub3QgZG9uZSBhbHJlYWR5CgkJaWYgKCB0eXBlb2Ygc2VsZWN0aW9uID09PSAic3RyaW5nIiApIHsKCQkJaWYgKCAhZXhlY3V0ZU9ubHkgfHwgaW5zcGVjdGVkWyBzZWxlY3Rpb24gXSApIHsKCQkJCXNlbGVjdGlvbiA9IHVuZGVmaW5lZDsKCQkJfSBlbHNlIHsKCQkJCW9wdGlvbnMuZGF0YVR5cGVzLnVuc2hpZnQoIHNlbGVjdGlvbiApOwoJCQkJc2VsZWN0aW9uID0gaW5zcGVjdFByZWZpbHRlcnNPclRyYW5zcG9ydHMoCgkJCQkJCXN0cnVjdHVyZSwgb3B0aW9ucywgb3JpZ2luYWxPcHRpb25zLCBqcVhIUiwgc2VsZWN0aW9uLCBpbnNwZWN0ZWQgKTsKCQkJfQoJCX0KCX0KCS8vIElmIHdlJ3JlIG9ubHkgZXhlY3V0aW5nIG9yIG5vdGhpbmcgd2FzIHNlbGVjdGVkCgkvLyB3ZSB0cnkgdGhlIGNhdGNoYWxsIGRhdGFUeXBlIGlmIG5vdCBkb25lIGFscmVhZHkKCWlmICggKCBleGVjdXRlT25seSB8fCAhc2VsZWN0aW9uICkgJiYgIWluc3BlY3RlZFsgIioiIF0gKSB7CgkJc2VsZWN0aW9uID0gaW5zcGVjdFByZWZpbHRlcnNPclRyYW5zcG9ydHMoCgkJCQlzdHJ1Y3R1cmUsIG9wdGlvbnMsIG9yaWdpbmFsT3B0aW9ucywganFYSFIsICIqIiwgaW5zcGVjdGVkICk7Cgl9CgkvLyB1bm5lY2Vzc2FyeSB3aGVuIG9ubHkgZXhlY3V0aW5nIChwcmVmaWx0ZXJzKQoJLy8gYnV0IGl0J2xsIGJlIGlnbm9yZWQgYnkgdGhlIGNhbGxlciBpbiB0aGF0IGNhc2UKCXJldHVybiBzZWxlY3Rpb247Cn0KCmpRdWVyeS5mbi5leHRlbmQoewoJbG9hZDogZnVuY3Rpb24oIHVybCwgcGFyYW1zLCBjYWxsYmFjayApIHsKCQlpZiAoIHR5cGVvZiB1cmwgIT09ICJzdHJpbmciICYmIF9sb2FkICkgewoJCQlyZXR1cm4gX2xvYWQuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApOwoKCQkvLyBEb24ndCBkbyBhIHJlcXVlc3QgaWYgbm8gZWxlbWVudHMgYXJlIGJlaW5nIHJlcXVlc3RlZAoJCX0gZWxzZSBpZiAoICF0aGlzLmxlbmd0aCApIHsKCQkJcmV0dXJuIHRoaXM7CgkJfQoKCQl2YXIgb2ZmID0gdXJsLmluZGV4T2YoICIgIiApOwoJCWlmICggb2ZmID49IDAgKSB7CgkJCXZhciBzZWxlY3RvciA9IHVybC5zbGljZSggb2ZmLCB1cmwubGVuZ3RoICk7CgkJCXVybCA9IHVybC5zbGljZSggMCwgb2ZmICk7CgkJfQoKCQkvLyBEZWZhdWx0IHRvIGEgR0VUIHJlcXVlc3QKCQl2YXIgdHlwZSA9ICJHRVQiOwoKCQkvLyBJZiB0aGUgc2Vjb25kIHBhcmFtZXRlciB3YXMgcHJvdmlkZWQKCQlpZiAoIHBhcmFtcyApIHsKCQkJLy8gSWYgaXQncyBhIGZ1bmN0aW9uCgkJCWlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHBhcmFtcyApICkgewoJCQkJLy8gV2UgYXNzdW1lIHRoYXQgaXQncyB0aGUgY2FsbGJhY2sKCQkJCWNhbGxiYWNrID0gcGFyYW1zOwoJCQkJcGFyYW1zID0gdW5kZWZpbmVkOwoKCQkJLy8gT3RoZXJ3aXNlLCBidWlsZCBhIHBhcmFtIHN0cmluZwoJCQl9IGVsc2UgaWYgKCB0eXBlb2YgcGFyYW1zID09PSAib2JqZWN0IiApIHsKCQkJCXBhcmFtcyA9IGpRdWVyeS5wYXJhbSggcGFyYW1zLCBqUXVlcnkuYWpheFNldHRpbmdzLnRyYWRpdGlvbmFsICk7CgkJCQl0eXBlID0gIlBPU1QiOwoJCQl9CgkJfQoKCQl2YXIgc2VsZiA9IHRoaXM7CgoJCS8vIFJlcXVlc3QgdGhlIHJlbW90ZSBkb2N1bWVudAoJCWpRdWVyeS5hamF4KHsKCQkJdXJsOiB1cmwsCgkJCXR5cGU6IHR5cGUsCgkJCWRhdGFUeXBlOiAiaHRtbCIsCgkJCWRhdGE6IHBhcmFtcywKCQkJLy8gQ29tcGxldGUgY2FsbGJhY2sgKHJlc3BvbnNlVGV4dCBpcyB1c2VkIGludGVybmFsbHkpCgkJCWNvbXBsZXRlOiBmdW5jdGlvbigganFYSFIsIHN0YXR1cywgcmVzcG9uc2VUZXh0ICkgewoJCQkJLy8gU3RvcmUgdGhlIHJlc3BvbnNlIGFzIHNwZWNpZmllZCBieSB0aGUganFYSFIgb2JqZWN0CgkJCQlyZXNwb25zZVRleHQgPSBqcVhIUi5yZXNwb25zZVRleHQ7CgkJCQkvLyBJZiBzdWNjZXNzZnVsLCBpbmplY3QgdGhlIEhUTUwgaW50byBhbGwgdGhlIG1hdGNoZWQgZWxlbWVudHMKCQkJCWlmICgganFYSFIuaXNSZXNvbHZlZCgpICkgewoJCQkJCS8vICM0ODI1OiBHZXQgdGhlIGFjdHVhbCByZXNwb25zZSBpbiBjYXNlCgkJCQkJLy8gYSBkYXRhRmlsdGVyIGlzIHByZXNlbnQgaW4gYWpheFNldHRpbmdzCgkJCQkJanFYSFIuZG9uZShmdW5jdGlvbiggciApIHsKCQkJCQkJcmVzcG9uc2VUZXh0ID0gcjsKCQkJCQl9KTsKCQkJCQkvLyBTZWUgaWYgYSBzZWxlY3RvciB3YXMgc3BlY2lmaWVkCgkJCQkJc2VsZi5odG1sKCBzZWxlY3RvciA/CgkJCQkJCS8vIENyZWF0ZSBhIGR1bW15IGRpdiB0byBob2xkIHRoZSByZXN1bHRzCgkJCQkJCWpRdWVyeSgiPGRpdj4iKQoJCQkJCQkJLy8gaW5qZWN0IHRoZSBjb250ZW50cyBvZiB0aGUgZG9jdW1lbnQgaW4sIHJlbW92aW5nIHRoZSBzY3JpcHRzCgkJCQkJCQkvLyB0byBhdm9pZCBhbnkgJ1Blcm1pc3Npb24gRGVuaWVkJyBlcnJvcnMgaW4gSUUKCQkJCQkJCS5hcHBlbmQocmVzcG9uc2VUZXh0LnJlcGxhY2UocnNjcmlwdCwgIiIpKQoKCQkJCQkJCS8vIExvY2F0ZSB0aGUgc3BlY2lmaWVkIGVsZW1lbnRzCgkJCQkJCQkuZmluZChzZWxlY3RvcikgOgoKCQkJCQkJLy8gSWYgbm90LCBqdXN0IGluamVjdCB0aGUgZnVsbCByZXN1bHQKCQkJCQkJcmVzcG9uc2VUZXh0ICk7CgkJCQl9CgoJCQkJaWYgKCBjYWxsYmFjayApIHsKCQkJCQlzZWxmLmVhY2goIGNhbGxiYWNrLCBbIHJlc3BvbnNlVGV4dCwgc3RhdHVzLCBqcVhIUiBdICk7CgkJCQl9CgkJCX0KCQl9KTsKCgkJcmV0dXJuIHRoaXM7Cgl9LAoKCXNlcmlhbGl6ZTogZnVuY3Rpb24oKSB7CgkJcmV0dXJuIGpRdWVyeS5wYXJhbSggdGhpcy5zZXJpYWxpemVBcnJheSgpICk7Cgl9LAoKCXNlcmlhbGl6ZUFycmF5OiBmdW5jdGlvbigpIHsKCQlyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXsKCQkJcmV0dXJuIHRoaXMuZWxlbWVudHMgPyBqUXVlcnkubWFrZUFycmF5KCB0aGlzLmVsZW1lbnRzICkgOiB0aGlzOwoJCX0pCgkJLmZpbHRlcihmdW5jdGlvbigpewoJCQlyZXR1cm4gdGhpcy5uYW1lICYmICF0aGlzLmRpc2FibGVkICYmCgkJCQkoIHRoaXMuY2hlY2tlZCB8fCByc2VsZWN0VGV4dGFyZWEudGVzdCggdGhpcy5ub2RlTmFtZSApIHx8CgkJCQkJcmlucHV0LnRlc3QoIHRoaXMudHlwZSApICk7CgkJfSkKCQkubWFwKGZ1bmN0aW9uKCBpLCBlbGVtICl7CgkJCXZhciB2YWwgPSBqUXVlcnkoIHRoaXMgKS52YWwoKTsKCgkJCXJldHVybiB2YWwgPT0gbnVsbCA/CgkJCQludWxsIDoKCQkJCWpRdWVyeS5pc0FycmF5KCB2YWwgKSA/CgkJCQkJalF1ZXJ5Lm1hcCggdmFsLCBmdW5jdGlvbiggdmFsLCBpICl7CgkJCQkJCXJldHVybiB7IG5hbWU6IGVsZW0ubmFtZSwgdmFsdWU6IHZhbC5yZXBsYWNlKCByQ1JMRiwgIlxyXG4iICkgfTsKCQkJCQl9KSA6CgkJCQkJeyBuYW1lOiBlbGVtLm5hbWUsIHZhbHVlOiB2YWwucmVwbGFjZSggckNSTEYsICJcclxuIiApIH07CgkJfSkuZ2V0KCk7Cgl9Cn0pOwoKLy8gQXR0YWNoIGEgYnVuY2ggb2YgZnVuY3Rpb25zIGZvciBoYW5kbGluZyBjb21tb24gQUpBWCBldmVudHMKalF1ZXJ5LmVhY2goICJhamF4U3RhcnQgYWpheFN0b3AgYWpheENvbXBsZXRlIGFqYXhFcnJvciBhamF4U3VjY2VzcyBhamF4U2VuZCIuc3BsaXQoICIgIiApLCBmdW5jdGlvbiggaSwgbyApewoJalF1ZXJ5LmZuWyBvIF0gPSBmdW5jdGlvbiggZiApewoJCXJldHVybiB0aGlzLmJpbmQoIG8sIGYgKTsKCX07Cn0gKTsKCmpRdWVyeS5lYWNoKCBbICJnZXQiLCAicG9zdCIgXSwgZnVuY3Rpb24oIGksIG1ldGhvZCApIHsKCWpRdWVyeVsgbWV0aG9kIF0gPSBmdW5jdGlvbiggdXJsLCBkYXRhLCBjYWxsYmFjaywgdHlwZSApIHsKCQkvLyBzaGlmdCBhcmd1bWVudHMgaWYgZGF0YSBhcmd1bWVudCB3YXMgb21pdHRlZAoJCWlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIGRhdGEgKSApIHsKCQkJdHlwZSA9IHR5cGUgfHwgY2FsbGJhY2s7CgkJCWNhbGxiYWNrID0gZGF0YTsKCQkJZGF0YSA9IHVuZGVmaW5lZDsKCQl9CgoJCXJldHVybiBqUXVlcnkuYWpheCh7CgkJCXR5cGU6IG1ldGhvZCwKCQkJdXJsOiB1cmwsCgkJCWRhdGE6IGRhdGEsCgkJCXN1Y2Nlc3M6IGNhbGxiYWNrLAoJCQlkYXRhVHlwZTogdHlwZQoJCX0pOwoJfTsKfSApOwoKalF1ZXJ5LmV4dGVuZCh7CgoJZ2V0U2NyaXB0OiBmdW5jdGlvbiggdXJsLCBjYWxsYmFjayApIHsKCQlyZXR1cm4galF1ZXJ5LmdldCggdXJsLCB1bmRlZmluZWQsIGNhbGxiYWNrLCAic2NyaXB0IiApOwoJfSwKCglnZXRKU09OOiBmdW5jdGlvbiggdXJsLCBkYXRhLCBjYWxsYmFjayApIHsKCQlyZXR1cm4galF1ZXJ5LmdldCggdXJsLCBkYXRhLCBjYWxsYmFjaywgImpzb24iICk7Cgl9LAoKCS8vIENyZWF0ZXMgYSBmdWxsIGZsZWRnZWQgc2V0dGluZ3Mgb2JqZWN0IGludG8gdGFyZ2V0CgkvLyB3aXRoIGJvdGggYWpheFNldHRpbmdzIGFuZCBzZXR0aW5ncyBmaWVsZHMuCgkvLyBJZiB0YXJnZXQgaXMgb21pdHRlZCwgd3JpdGVzIGludG8gYWpheFNldHRpbmdzLgoJYWpheFNldHVwOiBmdW5jdGlvbiAoIHRhcmdldCwgc2V0dGluZ3MgKSB7CgkJaWYgKCAhc2V0dGluZ3MgKSB7CgkJCS8vIE9ubHkgb25lIHBhcmFtZXRlciwgd2UgZXh0ZW5kIGFqYXhTZXR0aW5ncwoJCQlzZXR0aW5ncyA9IHRhcmdldDsKCQkJdGFyZ2V0ID0galF1ZXJ5LmV4dGVuZCggdHJ1ZSwgalF1ZXJ5LmFqYXhTZXR0aW5ncywgc2V0dGluZ3MgKTsKCQl9IGVsc2UgewoJCQkvLyB0YXJnZXQgd2FzIHByb3ZpZGVkLCB3ZSBleHRlbmQgaW50byBpdAoJCQlqUXVlcnkuZXh0ZW5kKCB0cnVlLCB0YXJnZXQsIGpRdWVyeS5hamF4U2V0dGluZ3MsIHNldHRpbmdzICk7CgkJfQoJCS8vIEZsYXR0ZW4gZmllbGRzIHdlIGRvbid0IHdhbnQgZGVlcCBleHRlbmRlZAoJCWZvciggdmFyIGZpZWxkIGluIHsgY29udGV4dDogMSwgdXJsOiAxIH0gKSB7CgkJCWlmICggZmllbGQgaW4gc2V0dGluZ3MgKSB7CgkJCQl0YXJnZXRbIGZpZWxkIF0gPSBzZXR0aW5nc1sgZmllbGQgXTsKCQkJfSBlbHNlIGlmKCBmaWVsZCBpbiBqUXVlcnkuYWpheFNldHRpbmdzICkgewoJCQkJdGFyZ2V0WyBmaWVsZCBdID0galF1ZXJ5LmFqYXhTZXR0aW5nc1sgZmllbGQgXTsKCQkJfQoJCX0KCQlyZXR1cm4gdGFyZ2V0OwoJfSwKCglhamF4U2V0dGluZ3M6IHsKCQl1cmw6IGFqYXhMb2NhdGlvbiwKCQlpc0xvY2FsOiBybG9jYWxQcm90b2NvbC50ZXN0KCBhamF4TG9jUGFydHNbIDEgXSApLAoJCWdsb2JhbDogdHJ1ZSwKCQl0eXBlOiAiR0VUIiwKCQljb250ZW50VHlwZTogImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIsCgkJcHJvY2Vzc0RhdGE6IHRydWUsCgkJYXN5bmM6IHRydWUsCgkJLyoKCQl0aW1lb3V0OiAwLAoJCWRhdGE6IG51bGwsCgkJZGF0YVR5cGU6IG51bGwsCgkJdXNlcm5hbWU6IG51bGwsCgkJcGFzc3dvcmQ6IG51bGwsCgkJY2FjaGU6IG51bGwsCgkJdHJhZGl0aW9uYWw6IGZhbHNlLAoJCWhlYWRlcnM6IHt9LAoJCWNyb3NzRG9tYWluOiBudWxsLAoJCSovCgoJCWFjY2VwdHM6IHsKCQkJeG1sOiAiYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbCIsCgkJCWh0bWw6ICJ0ZXh0L2h0bWwiLAoJCQl0ZXh0OiAidGV4dC9wbGFpbiIsCgkJCWpzb246ICJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L2phdmFzY3JpcHQiLAoJCQkiKiI6ICIqLyoiCgkJfSwKCgkJY29udGVudHM6IHsKCQkJeG1sOiAveG1sLywKCQkJaHRtbDogL2h0bWwvLAoJCQlqc29uOiAvanNvbi8KCQl9LAoKCQlyZXNwb25zZUZpZWxkczogewoJCQl4bWw6ICJyZXNwb25zZVhNTCIsCgkJCXRleHQ6ICJyZXNwb25zZVRleHQiCgkJfSwKCgkJLy8gTGlzdCBvZiBkYXRhIGNvbnZlcnRlcnMKCQkvLyAxKSBrZXkgZm9ybWF0IGlzICJzb3VyY2VfdHlwZSBkZXN0aW5hdGlvbl90eXBlIiAoYSBzaW5nbGUgc3BhY2UgaW4tYmV0d2VlbikKCQkvLyAyKSB0aGUgY2F0Y2hhbGwgc3ltYm9sICIqIiBjYW4gYmUgdXNlZCBmb3Igc291cmNlX3R5cGUKCQljb252ZXJ0ZXJzOiB7CgoJCQkvLyBDb252ZXJ0IGFueXRoaW5nIHRvIHRleHQKCQkJIiogdGV4dCI6IHdpbmRvdy5TdHJpbmcsCgoJCQkvLyBUZXh0IHRvIGh0bWwgKHRydWUgPSBubyB0cmFuc2Zvcm1hdGlvbikKCQkJInRleHQgaHRtbCI6IHRydWUsCgoJCQkvLyBFdmFsdWF0ZSB0ZXh0IGFzIGEganNvbiBleHByZXNzaW9uCgkJCSJ0ZXh0IGpzb24iOiBqUXVlcnkucGFyc2VKU09OLAoKCQkJLy8gUGFyc2UgdGV4dCBhcyB4bWwKCQkJInRleHQgeG1sIjogalF1ZXJ5LnBhcnNlWE1MCgkJfQoJfSwKCglhamF4UHJlZmlsdGVyOiBhZGRUb1ByZWZpbHRlcnNPclRyYW5zcG9ydHMoIHByZWZpbHRlcnMgKSwKCWFqYXhUcmFuc3BvcnQ6IGFkZFRvUHJlZmlsdGVyc09yVHJhbnNwb3J0cyggdHJhbnNwb3J0cyApLAoKCS8vIE1haW4gbWV0aG9kCglhamF4OiBmdW5jdGlvbiggdXJsLCBvcHRpb25zICkgewoKCQkvLyBJZiB1cmwgaXMgYW4gb2JqZWN0LCBzaW11bGF0ZSBwcmUtMS41IHNpZ25hdHVyZQoJCWlmICggdHlwZW9mIHVybCA9PT0gIm9iamVjdCIgKSB7CgkJCW9wdGlvbnMgPSB1cmw7CgkJCXVybCA9IHVuZGVmaW5lZDsKCQl9CgoJCS8vIEZvcmNlIG9wdGlvbnMgdG8gYmUgYW4gb2JqZWN0CgkJb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CgoJCXZhciAvLyBDcmVhdGUgdGhlIGZpbmFsIG9wdGlvbnMgb2JqZWN0CgkJCXMgPSBqUXVlcnkuYWpheFNldHVwKCB7fSwgb3B0aW9ucyApLAoJCQkvLyBDYWxsYmFja3MgY29udGV4dAoJCQljYWxsYmFja0NvbnRleHQgPSBzLmNvbnRleHQgfHwgcywKCQkJLy8gQ29udGV4dCBmb3IgZ2xvYmFsIGV2ZW50cwoJCQkvLyBJdCdzIHRoZSBjYWxsYmFja0NvbnRleHQgaWYgb25lIHdhcyBwcm92aWRlZCBpbiB0aGUgb3B0aW9ucwoJCQkvLyBhbmQgaWYgaXQncyBhIERPTSBub2RlIG9yIGEgalF1ZXJ5IGNvbGxlY3Rpb24KCQkJZ2xvYmFsRXZlbnRDb250ZXh0ID0gY2FsbGJhY2tDb250ZXh0ICE9PSBzICYmCgkJCQkoIGNhbGxiYWNrQ29udGV4dC5ub2RlVHlwZSB8fCBjYWxsYmFja0NvbnRleHQgaW5zdGFuY2VvZiBqUXVlcnkgKSA/CgkJCQkJCWpRdWVyeSggY2FsbGJhY2tDb250ZXh0ICkgOiBqUXVlcnkuZXZlbnQsCgkJCS8vIERlZmVycmVkcwoJCQlkZWZlcnJlZCA9IGpRdWVyeS5EZWZlcnJlZCgpLAoJCQljb21wbGV0ZURlZmVycmVkID0galF1ZXJ5Ll9EZWZlcnJlZCgpLAoJCQkvLyBTdGF0dXMtZGVwZW5kZW50IGNhbGxiYWNrcwoJCQlzdGF0dXNDb2RlID0gcy5zdGF0dXNDb2RlIHx8IHt9LAoJCQkvLyBpZk1vZGlmaWVkIGtleQoJCQlpZk1vZGlmaWVkS2V5LAoJCQkvLyBIZWFkZXJzICh0aGV5IGFyZSBzZW50IGFsbCBhdCBvbmNlKQoJCQlyZXF1ZXN0SGVhZGVycyA9IHt9LAoJCQkvLyBSZXNwb25zZSBoZWFkZXJzCgkJCXJlc3BvbnNlSGVhZGVyc1N0cmluZywKCQkJcmVzcG9uc2VIZWFkZXJzLAoJCQkvLyB0cmFuc3BvcnQKCQkJdHJhbnNwb3J0LAoJCQkvLyB0aW1lb3V0IGhhbmRsZQoJCQl0aW1lb3V0VGltZXIsCgkJCS8vIENyb3NzLWRvbWFpbiBkZXRlY3Rpb24gdmFycwoJCQlwYXJ0cywKCQkJLy8gVGhlIGpxWEhSIHN0YXRlCgkJCXN0YXRlID0gMCwKCQkJLy8gVG8ga25vdyBpZiBnbG9iYWwgZXZlbnRzIGFyZSB0byBiZSBkaXNwYXRjaGVkCgkJCWZpcmVHbG9iYWxzLAoJCQkvLyBMb29wIHZhcmlhYmxlCgkJCWksCgkJCS8vIEZha2UgeGhyCgkJCWpxWEhSID0gewoKCQkJCXJlYWR5U3RhdGU6IDAsCgoJCQkJLy8gQ2FjaGVzIHRoZSBoZWFkZXIKCQkJCXNldFJlcXVlc3RIZWFkZXI6IGZ1bmN0aW9uKCBuYW1lLCB2YWx1ZSApIHsKCQkJCQlpZiAoICFzdGF0ZSApIHsKCQkJCQkJcmVxdWVzdEhlYWRlcnNbIG5hbWUudG9Mb3dlckNhc2UoKS5yZXBsYWNlKCBydWNIZWFkZXJzLCBydWNIZWFkZXJzRnVuYyApIF0gPSB2YWx1ZTsKCQkJCQl9CgkJCQkJcmV0dXJuIHRoaXM7CgkJCQl9LAoKCQkJCS8vIFJhdyBzdHJpbmcKCQkJCWdldEFsbFJlc3BvbnNlSGVhZGVyczogZnVuY3Rpb24oKSB7CgkJCQkJcmV0dXJuIHN0YXRlID09PSAyID8gcmVzcG9uc2VIZWFkZXJzU3RyaW5nIDogbnVsbDsKCQkJCX0sCgoJCQkJLy8gQnVpbGRzIGhlYWRlcnMgaGFzaHRhYmxlIGlmIG5lZWRlZAoJCQkJZ2V0UmVzcG9uc2VIZWFkZXI6IGZ1bmN0aW9uKCBrZXkgKSB7CgkJCQkJdmFyIG1hdGNoOwoJCQkJCWlmICggc3RhdGUgPT09IDIgKSB7CgkJCQkJCWlmICggIXJlc3BvbnNlSGVhZGVycyApIHsKCQkJCQkJCXJlc3BvbnNlSGVhZGVycyA9IHt9OwoJCQkJCQkJd2hpbGUoICggbWF0Y2ggPSByaGVhZGVycy5leGVjKCByZXNwb25zZUhlYWRlcnNTdHJpbmcgKSApICkgewoJCQkJCQkJCXJlc3BvbnNlSGVhZGVyc1sgbWF0Y2hbMV0udG9Mb3dlckNhc2UoKSBdID0gbWF0Y2hbIDIgXTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCQltYXRjaCA9IHJlc3BvbnNlSGVhZGVyc1sga2V5LnRvTG93ZXJDYXNlKCkgXTsKCQkJCQl9CgkJCQkJcmV0dXJuIG1hdGNoID09PSB1bmRlZmluZWQgPyBudWxsIDogbWF0Y2g7CgkJCQl9LAoKCQkJCS8vIE92ZXJyaWRlcyByZXNwb25zZSBjb250ZW50LXR5cGUgaGVhZGVyCgkJCQlvdmVycmlkZU1pbWVUeXBlOiBmdW5jdGlvbiggdHlwZSApIHsKCQkJCQlpZiAoICFzdGF0ZSApIHsKCQkJCQkJcy5taW1lVHlwZSA9IHR5cGU7CgkJCQkJfQoJCQkJCXJldHVybiB0aGlzOwoJCQkJfSwKCgkJCQkvLyBDYW5jZWwgdGhlIHJlcXVlc3QKCQkJCWFib3J0OiBmdW5jdGlvbiggc3RhdHVzVGV4dCApIHsKCQkJCQlzdGF0dXNUZXh0ID0gc3RhdHVzVGV4dCB8fCAiYWJvcnQiOwoJCQkJCWlmICggdHJhbnNwb3J0ICkgewoJCQkJCQl0cmFuc3BvcnQuYWJvcnQoIHN0YXR1c1RleHQgKTsKCQkJCQl9CgkJCQkJZG9uZSggMCwgc3RhdHVzVGV4dCApOwoJCQkJCXJldHVybiB0aGlzOwoJCQkJfQoJCQl9OwoKCQkvLyBDYWxsYmFjayBmb3Igd2hlbiBldmVyeXRoaW5nIGlzIGRvbmUKCQkvLyBJdCBpcyBkZWZpbmVkIGhlcmUgYmVjYXVzZSBqc2xpbnQgY29tcGxhaW5zIGlmIGl0IGlzIGRlY2xhcmVkCgkJLy8gYXQgdGhlIGVuZCBvZiB0aGUgZnVuY3Rpb24gKHdoaWNoIHdvdWxkIGJlIG1vcmUgbG9naWNhbCBhbmQgcmVhZGFibGUpCgkJZnVuY3Rpb24gZG9uZSggc3RhdHVzLCBzdGF0dXNUZXh0LCByZXNwb25zZXMsIGhlYWRlcnMgKSB7CgoJCQkvLyBDYWxsZWQgb25jZQoJCQlpZiAoIHN0YXRlID09PSAyICkgewoJCQkJcmV0dXJuOwoJCQl9CgoJCQkvLyBTdGF0ZSBpcyAiZG9uZSIgbm93CgkJCXN0YXRlID0gMjsKCgkJCS8vIENsZWFyIHRpbWVvdXQgaWYgaXQgZXhpc3RzCgkJCWlmICggdGltZW91dFRpbWVyICkgewoJCQkJY2xlYXJUaW1lb3V0KCB0aW1lb3V0VGltZXIgKTsKCQkJfQoKCQkJLy8gRGVyZWZlcmVuY2UgdHJhbnNwb3J0IGZvciBlYXJseSBnYXJiYWdlIGNvbGxlY3Rpb24KCQkJLy8gKG5vIG1hdHRlciBob3cgbG9uZyB0aGUganFYSFIgb2JqZWN0IHdpbGwgYmUgdXNlZCkKCQkJdHJhbnNwb3J0ID0gdW5kZWZpbmVkOwoKCQkJLy8gQ2FjaGUgcmVzcG9uc2UgaGVhZGVycwoJCQlyZXNwb25zZUhlYWRlcnNTdHJpbmcgPSBoZWFkZXJzIHx8ICIiOwoKCQkJLy8gU2V0IHJlYWR5U3RhdGUKCQkJanFYSFIucmVhZHlTdGF0ZSA9IHN0YXR1cyA/IDQgOiAwOwoKCQkJdmFyIGlzU3VjY2VzcywKCQkJCXN1Y2Nlc3MsCgkJCQllcnJvciwKCQkJCXJlc3BvbnNlID0gcmVzcG9uc2VzID8gYWpheEhhbmRsZVJlc3BvbnNlcyggcywganFYSFIsIHJlc3BvbnNlcyApIDogdW5kZWZpbmVkLAoJCQkJbGFzdE1vZGlmaWVkLAoJCQkJZXRhZzsKCgkJCS8vIElmIHN1Y2Nlc3NmdWwsIGhhbmRsZSB0eXBlIGNoYWluaW5nCgkJCWlmICggc3RhdHVzID49IDIwMCAmJiBzdGF0dXMgPCAzMDAgfHwgc3RhdHVzID09PSAzMDQgKSB7CgoJCQkJLy8gU2V0IHRoZSBJZi1Nb2RpZmllZC1TaW5jZSBhbmQvb3IgSWYtTm9uZS1NYXRjaCBoZWFkZXIsIGlmIGluIGlmTW9kaWZpZWQgbW9kZS4KCQkJCWlmICggcy5pZk1vZGlmaWVkICkgewoKCQkJCQlpZiAoICggbGFzdE1vZGlmaWVkID0ganFYSFIuZ2V0UmVzcG9uc2VIZWFkZXIoICJMYXN0LU1vZGlmaWVkIiApICkgKSB7CgkJCQkJCWpRdWVyeS5sYXN0TW9kaWZpZWRbIGlmTW9kaWZpZWRLZXkgXSA9IGxhc3RNb2RpZmllZDsKCQkJCQl9CgkJCQkJaWYgKCAoIGV0YWcgPSBqcVhIUi5nZXRSZXNwb25zZUhlYWRlciggIkV0YWciICkgKSApIHsKCQkJCQkJalF1ZXJ5LmV0YWdbIGlmTW9kaWZpZWRLZXkgXSA9IGV0YWc7CgkJCQkJfQoJCQkJfQoKCQkJCS8vIElmIG5vdCBtb2RpZmllZAoJCQkJaWYgKCBzdGF0dXMgPT09IDMwNCApIHsKCgkJCQkJc3RhdHVzVGV4dCA9ICJub3Rtb2RpZmllZCI7CgkJCQkJaXNTdWNjZXNzID0gdHJ1ZTsKCgkJCQkvLyBJZiB3ZSBoYXZlIGRhdGEKCQkJCX0gZWxzZSB7CgoJCQkJCXRyeSB7CgkJCQkJCXN1Y2Nlc3MgPSBhamF4Q29udmVydCggcywgcmVzcG9uc2UgKTsKCQkJCQkJc3RhdHVzVGV4dCA9ICJzdWNjZXNzIjsKCQkJCQkJaXNTdWNjZXNzID0gdHJ1ZTsKCQkJCQl9IGNhdGNoKGUpIHsKCQkJCQkJLy8gV2UgaGF2ZSBhIHBhcnNlcmVycm9yCgkJCQkJCXN0YXR1c1RleHQgPSAicGFyc2VyZXJyb3IiOwoJCQkJCQllcnJvciA9IGU7CgkJCQkJfQoJCQkJfQoJCQl9IGVsc2UgewoJCQkJLy8gV2UgZXh0cmFjdCBlcnJvciBmcm9tIHN0YXR1c1RleHQKCQkJCS8vIHRoZW4gbm9ybWFsaXplIHN0YXR1c1RleHQgYW5kIHN0YXR1cyBmb3Igbm9uLWFib3J0cwoJCQkJZXJyb3IgPSBzdGF0dXNUZXh0OwoJCQkJaWYoICFzdGF0dXNUZXh0IHx8IHN0YXR1cyApIHsKCQkJCQlzdGF0dXNUZXh0ID0gImVycm9yIjsKCQkJCQlpZiAoIHN0YXR1cyA8IDAgKSB7CgkJCQkJCXN0YXR1cyA9IDA7CgkJCQkJfQoJCQkJfQoJCQl9CgoJCQkvLyBTZXQgZGF0YSBmb3IgdGhlIGZha2UgeGhyIG9iamVjdAoJCQlqcVhIUi5zdGF0dXMgPSBzdGF0dXM7CgkJCWpxWEhSLnN0YXR1c1RleHQgPSBzdGF0dXNUZXh0OwoKCQkJLy8gU3VjY2Vzcy9FcnJvcgoJCQlpZiAoIGlzU3VjY2VzcyApIHsKCQkJCWRlZmVycmVkLnJlc29sdmVXaXRoKCBjYWxsYmFja0NvbnRleHQsIFsgc3VjY2Vzcywgc3RhdHVzVGV4dCwganFYSFIgXSApOwoJCQl9IGVsc2UgewoJCQkJZGVmZXJyZWQucmVqZWN0V2l0aCggY2FsbGJhY2tDb250ZXh0LCBbIGpxWEhSLCBzdGF0dXNUZXh0LCBlcnJvciBdICk7CgkJCX0KCgkJCS8vIFN0YXR1cy1kZXBlbmRlbnQgY2FsbGJhY2tzCgkJCWpxWEhSLnN0YXR1c0NvZGUoIHN0YXR1c0NvZGUgKTsKCQkJc3RhdHVzQ29kZSA9IHVuZGVmaW5lZDsKCgkJCWlmICggZmlyZUdsb2JhbHMgKSB7CgkJCQlnbG9iYWxFdmVudENvbnRleHQudHJpZ2dlciggImFqYXgiICsgKCBpc1N1Y2Nlc3MgPyAiU3VjY2VzcyIgOiAiRXJyb3IiICksCgkJCQkJCVsganFYSFIsIHMsIGlzU3VjY2VzcyA/IHN1Y2Nlc3MgOiBlcnJvciBdICk7CgkJCX0KCgkJCS8vIENvbXBsZXRlCgkJCWNvbXBsZXRlRGVmZXJyZWQucmVzb2x2ZVdpdGgoIGNhbGxiYWNrQ29udGV4dCwgWyBqcVhIUiwgc3RhdHVzVGV4dCBdICk7CgoJCQlpZiAoIGZpcmVHbG9iYWxzICkgewoJCQkJZ2xvYmFsRXZlbnRDb250ZXh0LnRyaWdnZXIoICJhamF4Q29tcGxldGUiLCBbIGpxWEhSLCBzXSApOwoJCQkJLy8gSGFuZGxlIHRoZSBnbG9iYWwgQUpBWCBjb3VudGVyCgkJCQlpZiAoICEoIC0talF1ZXJ5LmFjdGl2ZSApICkgewoJCQkJCWpRdWVyeS5ldmVudC50cmlnZ2VyKCAiYWpheFN0b3AiICk7CgkJCQl9CgkJCX0KCQl9CgoJCS8vIEF0dGFjaCBkZWZlcnJlZHMKCQlkZWZlcnJlZC5wcm9taXNlKCBqcVhIUiApOwoJCWpxWEhSLnN1Y2Nlc3MgPSBqcVhIUi5kb25lOwoJCWpxWEhSLmVycm9yID0ganFYSFIuZmFpbDsKCQlqcVhIUi5jb21wbGV0ZSA9IGNvbXBsZXRlRGVmZXJyZWQuZG9uZTsKCgkJLy8gU3RhdHVzLWRlcGVuZGVudCBjYWxsYmFja3MKCQlqcVhIUi5zdGF0dXNDb2RlID0gZnVuY3Rpb24oIG1hcCApIHsKCQkJaWYgKCBtYXAgKSB7CgkJCQl2YXIgdG1wOwoJCQkJaWYgKCBzdGF0ZSA8IDIgKSB7CgkJCQkJZm9yKCB0bXAgaW4gbWFwICkgewoJCQkJCQlzdGF0dXNDb2RlWyB0bXAgXSA9IFsgc3RhdHVzQ29kZVt0bXBdLCBtYXBbdG1wXSBdOwoJCQkJCX0KCQkJCX0gZWxzZSB7CgkJCQkJdG1wID0gbWFwWyBqcVhIUi5zdGF0dXMgXTsKCQkJCQlqcVhIUi50aGVuKCB0bXAsIHRtcCApOwoJCQkJfQoJCQl9CgkJCXJldHVybiB0aGlzOwoJCX07CgoJCS8vIFJlbW92ZSBoYXNoIGNoYXJhY3RlciAoIzc1MzE6IGFuZCBzdHJpbmcgcHJvbW90aW9uKQoJCS8vIEFkZCBwcm90b2NvbCBpZiBub3QgcHJvdmlkZWQgKCM1ODY2OiBJRTcgaXNzdWUgd2l0aCBwcm90b2NvbC1sZXNzIHVybHMpCgkJLy8gV2UgYWxzbyB1c2UgdGhlIHVybCBwYXJhbWV0ZXIgaWYgYXZhaWxhYmxlCgkJcy51cmwgPSAoICggdXJsIHx8IHMudXJsICkgKyAiIiApLnJlcGxhY2UoIHJoYXNoLCAiIiApLnJlcGxhY2UoIHJwcm90b2NvbCwgYWpheExvY1BhcnRzWyAxIF0gKyAiLy8iICk7CgoJCS8vIEV4dHJhY3QgZGF0YVR5cGVzIGxpc3QKCQlzLmRhdGFUeXBlcyA9IGpRdWVyeS50cmltKCBzLmRhdGFUeXBlIHx8ICIqIiApLnRvTG93ZXJDYXNlKCkuc3BsaXQoIHJzcGFjZXNBamF4ICk7CgoJCS8vIERldGVybWluZSBpZiBhIGNyb3NzLWRvbWFpbiByZXF1ZXN0IGlzIGluIG9yZGVyCgkJaWYgKCAhcy5jcm9zc0RvbWFpbiApIHsKCQkJcGFydHMgPSBydXJsLmV4ZWMoIHMudXJsLnRvTG93ZXJDYXNlKCkgKTsKCQkJcy5jcm9zc0RvbWFpbiA9ICEhKCBwYXJ0cyAmJgoJCQkJKCBwYXJ0c1sgMSBdICE9IGFqYXhMb2NQYXJ0c1sgMSBdIHx8IHBhcnRzWyAyIF0gIT0gYWpheExvY1BhcnRzWyAyIF0gfHwKCQkJCQkoIHBhcnRzWyAzIF0gfHwgKCBwYXJ0c1sgMSBdID09PSAiaHR0cDoiID8gODAgOiA0NDMgKSApICE9CgkJCQkJCSggYWpheExvY1BhcnRzWyAzIF0gfHwgKCBhamF4TG9jUGFydHNbIDEgXSA9PT0gImh0dHA6IiA/IDgwIDogNDQzICkgKSApCgkJCSk7CgkJfQoKCQkvLyBDb252ZXJ0IGRhdGEgaWYgbm90IGFscmVhZHkgYSBzdHJpbmcKCQlpZiAoIHMuZGF0YSAmJiBzLnByb2Nlc3NEYXRhICYmIHR5cGVvZiBzLmRhdGEgIT09ICJzdHJpbmciICkgewoJCQlzLmRhdGEgPSBqUXVlcnkucGFyYW0oIHMuZGF0YSwgcy50cmFkaXRpb25hbCApOwoJCX0KCgkJLy8gQXBwbHkgcHJlZmlsdGVycwoJCWluc3BlY3RQcmVmaWx0ZXJzT3JUcmFuc3BvcnRzKCBwcmVmaWx0ZXJzLCBzLCBvcHRpb25zLCBqcVhIUiApOwoKCQkvLyBJZiByZXF1ZXN0IHdhcyBhYm9ydGVkIGluc2lkZSBhIHByZWZpbGVyLCBzdG9wIHRoZXJlCgkJaWYgKCBzdGF0ZSA9PT0gMiApIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCgkJLy8gV2UgY2FuIGZpcmUgZ2xvYmFsIGV2ZW50cyBhcyBvZiBub3cgaWYgYXNrZWQgdG8KCQlmaXJlR2xvYmFscyA9IHMuZ2xvYmFsOwoKCQkvLyBVcHBlcmNhc2UgdGhlIHR5cGUKCQlzLnR5cGUgPSBzLnR5cGUudG9VcHBlckNhc2UoKTsKCgkJLy8gRGV0ZXJtaW5lIGlmIHJlcXVlc3QgaGFzIGNvbnRlbnQKCQlzLmhhc0NvbnRlbnQgPSAhcm5vQ29udGVudC50ZXN0KCBzLnR5cGUgKTsKCgkJLy8gV2F0Y2ggZm9yIGEgbmV3IHNldCBvZiByZXF1ZXN0cwoJCWlmICggZmlyZUdsb2JhbHMgJiYgalF1ZXJ5LmFjdGl2ZSsrID09PSAwICkgewoJCQlqUXVlcnkuZXZlbnQudHJpZ2dlciggImFqYXhTdGFydCIgKTsKCQl9CgoJCS8vIE1vcmUgb3B0aW9ucyBoYW5kbGluZyBmb3IgcmVxdWVzdHMgd2l0aCBubyBjb250ZW50CgkJaWYgKCAhcy5oYXNDb250ZW50ICkgewoKCQkJLy8gSWYgZGF0YSBpcyBhdmFpbGFibGUsIGFwcGVuZCBkYXRhIHRvIHVybAoJCQlpZiAoIHMuZGF0YSApIHsKCQkJCXMudXJsICs9ICggcnF1ZXJ5LnRlc3QoIHMudXJsICkgPyAiJiIgOiAiPyIgKSArIHMuZGF0YTsKCQkJfQoKCQkJLy8gR2V0IGlmTW9kaWZpZWRLZXkgYmVmb3JlIGFkZGluZyB0aGUgYW50aS1jYWNoZSBwYXJhbWV0ZXIKCQkJaWZNb2RpZmllZEtleSA9IHMudXJsOwoKCQkJLy8gQWRkIGFudGktY2FjaGUgaW4gdXJsIGlmIG5lZWRlZAoJCQlpZiAoIHMuY2FjaGUgPT09IGZhbHNlICkgewoKCQkJCXZhciB0cyA9IGpRdWVyeS5ub3coKSwKCQkJCQkvLyB0cnkgcmVwbGFjaW5nIF89IGlmIGl0IGlzIHRoZXJlCgkJCQkJcmV0ID0gcy51cmwucmVwbGFjZSggcnRzLCAiJDFfPSIgKyB0cyApOwoKCQkJCS8vIGlmIG5vdGhpbmcgd2FzIHJlcGxhY2VkLCBhZGQgdGltZXN0YW1wIHRvIHRoZSBlbmQKCQkJCXMudXJsID0gcmV0ICsgKCAocmV0ID09PSBzLnVybCApID8gKCBycXVlcnkudGVzdCggcy51cmwgKSA/ICImIiA6ICI/IiApICsgIl89IiArIHRzIDogIiIgKTsKCQkJfQoJCX0KCgkJLy8gU2V0IHRoZSBjb3JyZWN0IGhlYWRlciwgaWYgZGF0YSBpcyBiZWluZyBzZW50CgkJaWYgKCBzLmRhdGEgJiYgcy5oYXNDb250ZW50ICYmIHMuY29udGVudFR5cGUgIT09IGZhbHNlIHx8IG9wdGlvbnMuY29udGVudFR5cGUgKSB7CgkJCXJlcXVlc3RIZWFkZXJzWyAiQ29udGVudC1UeXBlIiBdID0gcy5jb250ZW50VHlwZTsKCQl9CgoJCS8vIFNldCB0aGUgSWYtTW9kaWZpZWQtU2luY2UgYW5kL29yIElmLU5vbmUtTWF0Y2ggaGVhZGVyLCBpZiBpbiBpZk1vZGlmaWVkIG1vZGUuCgkJaWYgKCBzLmlmTW9kaWZpZWQgKSB7CgkJCWlmTW9kaWZpZWRLZXkgPSBpZk1vZGlmaWVkS2V5IHx8IHMudXJsOwoJCQlpZiAoIGpRdWVyeS5sYXN0TW9kaWZpZWRbIGlmTW9kaWZpZWRLZXkgXSApIHsKCQkJCXJlcXVlc3RIZWFkZXJzWyAiSWYtTW9kaWZpZWQtU2luY2UiIF0gPSBqUXVlcnkubGFzdE1vZGlmaWVkWyBpZk1vZGlmaWVkS2V5IF07CgkJCX0KCQkJaWYgKCBqUXVlcnkuZXRhZ1sgaWZNb2RpZmllZEtleSBdICkgewoJCQkJcmVxdWVzdEhlYWRlcnNbICJJZi1Ob25lLU1hdGNoIiBdID0galF1ZXJ5LmV0YWdbIGlmTW9kaWZpZWRLZXkgXTsKCQkJfQoJCX0KCgkJLy8gU2V0IHRoZSBBY2NlcHRzIGhlYWRlciBmb3IgdGhlIHNlcnZlciwgZGVwZW5kaW5nIG9uIHRoZSBkYXRhVHlwZQoJCXJlcXVlc3RIZWFkZXJzLkFjY2VwdCA9IHMuZGF0YVR5cGVzWyAwIF0gJiYgcy5hY2NlcHRzWyBzLmRhdGFUeXBlc1swXSBdID8KCQkJcy5hY2NlcHRzWyBzLmRhdGFUeXBlc1swXSBdICsgKCBzLmRhdGFUeXBlc1sgMCBdICE9PSAiKiIgPyAiLCAqLyo7IHE9MC4wMSIgOiAiIiApIDoKCQkJcy5hY2NlcHRzWyAiKiIgXTsKCgkJLy8gQ2hlY2sgZm9yIGhlYWRlcnMgb3B0aW9uCgkJZm9yICggaSBpbiBzLmhlYWRlcnMgKSB7CgkJCWpxWEhSLnNldFJlcXVlc3RIZWFkZXIoIGksIHMuaGVhZGVyc1sgaSBdICk7CgkJfQoKCQkvLyBBbGxvdyBjdXN0b20gaGVhZGVycy9taW1ldHlwZXMgYW5kIGVhcmx5IGFib3J0CgkJaWYgKCBzLmJlZm9yZVNlbmQgJiYgKCBzLmJlZm9yZVNlbmQuY2FsbCggY2FsbGJhY2tDb250ZXh0LCBqcVhIUiwgcyApID09PSBmYWxzZSB8fCBzdGF0ZSA9PT0gMiApICkgewoJCQkJLy8gQWJvcnQgaWYgbm90IGRvbmUgYWxyZWFkeQoJCQkJanFYSFIuYWJvcnQoKTsKCQkJCXJldHVybiBmYWxzZTsKCgkJfQoKCQkvLyBJbnN0YWxsIGNhbGxiYWNrcyBvbiBkZWZlcnJlZHMKCQlmb3IgKCBpIGluIHsgc3VjY2VzczogMSwgZXJyb3I6IDEsIGNvbXBsZXRlOiAxIH0gKSB7CgkJCWpxWEhSWyBpIF0oIHNbIGkgXSApOwoJCX0KCgkJLy8gR2V0IHRyYW5zcG9ydAoJCXRyYW5zcG9ydCA9IGluc3BlY3RQcmVmaWx0ZXJzT3JUcmFuc3BvcnRzKCB0cmFuc3BvcnRzLCBzLCBvcHRpb25zLCBqcVhIUiApOwoKCQkvLyBJZiBubyB0cmFuc3BvcnQsIHdlIGF1dG8tYWJvcnQKCQlpZiAoICF0cmFuc3BvcnQgKSB7CgkJCWRvbmUoIC0xLCAiTm8gVHJhbnNwb3J0IiApOwoJCX0gZWxzZSB7CgkJCWpxWEhSLnJlYWR5U3RhdGUgPSAxOwoJCQkvLyBTZW5kIGdsb2JhbCBldmVudAoJCQlpZiAoIGZpcmVHbG9iYWxzICkgewoJCQkJZ2xvYmFsRXZlbnRDb250ZXh0LnRyaWdnZXIoICJhamF4U2VuZCIsIFsganFYSFIsIHMgXSApOwoJCQl9CgkJCS8vIFRpbWVvdXQKCQkJaWYgKCBzLmFzeW5jICYmIHMudGltZW91dCA+IDAgKSB7CgkJCQl0aW1lb3V0VGltZXIgPSBzZXRUaW1lb3V0KCBmdW5jdGlvbigpewoJCQkJCWpxWEhSLmFib3J0KCAidGltZW91dCIgKTsKCQkJCX0sIHMudGltZW91dCApOwoJCQl9CgoJCQl0cnkgewoJCQkJc3RhdGUgPSAxOwoJCQkJdHJhbnNwb3J0LnNlbmQoIHJlcXVlc3RIZWFkZXJzLCBkb25lICk7CgkJCX0gY2F0Y2ggKGUpIHsKCQkJCS8vIFByb3BhZ2F0ZSBleGNlcHRpb24gYXMgZXJyb3IgaWYgbm90IGRvbmUKCQkJCWlmICggc3RhdHVzIDwgMiApIHsKCQkJCQlkb25lKCAtMSwgZSApOwoJCQkJLy8gU2ltcGx5IHJldGhyb3cgb3RoZXJ3aXNlCgkJCQl9IGVsc2UgewoJCQkJCWpRdWVyeS5lcnJvciggZSApOwoJCQkJfQoJCQl9CgkJfQoKCQlyZXR1cm4ganFYSFI7Cgl9LAoKCS8vIFNlcmlhbGl6ZSBhbiBhcnJheSBvZiBmb3JtIGVsZW1lbnRzIG9yIGEgc2V0IG9mCgkvLyBrZXkvdmFsdWVzIGludG8gYSBxdWVyeSBzdHJpbmcKCXBhcmFtOiBmdW5jdGlvbiggYSwgdHJhZGl0aW9uYWwgKSB7CgkJdmFyIHMgPSBbXSwKCQkJYWRkID0gZnVuY3Rpb24oIGtleSwgdmFsdWUgKSB7CgkJCQkvLyBJZiB2YWx1ZSBpcyBhIGZ1bmN0aW9uLCBpbnZva2UgaXQgYW5kIHJldHVybiBpdHMgdmFsdWUKCQkJCXZhbHVlID0galF1ZXJ5LmlzRnVuY3Rpb24oIHZhbHVlICkgPyB2YWx1ZSgpIDogdmFsdWU7CgkJCQlzWyBzLmxlbmd0aCBdID0gZW5jb2RlVVJJQ29tcG9uZW50KCBrZXkgKSArICI9IiArIGVuY29kZVVSSUNvbXBvbmVudCggdmFsdWUgKTsKCQkJfTsKCgkJLy8gU2V0IHRyYWRpdGlvbmFsIHRvIHRydWUgZm9yIGpRdWVyeSA8PSAxLjMuMiBiZWhhdmlvci4KCQlpZiAoIHRyYWRpdGlvbmFsID09PSB1bmRlZmluZWQgKSB7CgkJCXRyYWRpdGlvbmFsID0galF1ZXJ5LmFqYXhTZXR0aW5ncy50cmFkaXRpb25hbDsKCQl9CgoJCS8vIElmIGFuIGFycmF5IHdhcyBwYXNzZWQgaW4sIGFzc3VtZSB0aGF0IGl0IGlzIGFuIGFycmF5IG9mIGZvcm0gZWxlbWVudHMuCgkJaWYgKCBqUXVlcnkuaXNBcnJheSggYSApIHx8ICggYS5qcXVlcnkgJiYgIWpRdWVyeS5pc1BsYWluT2JqZWN0KCBhICkgKSApIHsKCQkJLy8gU2VyaWFsaXplIHRoZSBmb3JtIGVsZW1lbnRzCgkJCWpRdWVyeS5lYWNoKCBhLCBmdW5jdGlvbigpIHsKCQkJCWFkZCggdGhpcy5uYW1lLCB0aGlzLnZhbHVlICk7CgkJCX0gKTsKCgkJfSBlbHNlIHsKCQkJLy8gSWYgdHJhZGl0aW9uYWwsIGVuY29kZSB0aGUgIm9sZCIgd2F5ICh0aGUgd2F5IDEuMy4yIG9yIG9sZGVyCgkJCS8vIGRpZCBpdCksIG90aGVyd2lzZSBlbmNvZGUgcGFyYW1zIHJlY3Vyc2l2ZWx5LgoJCQlmb3IgKCB2YXIgcHJlZml4IGluIGEgKSB7CgkJCQlidWlsZFBhcmFtcyggcHJlZml4LCBhWyBwcmVmaXggXSwgdHJhZGl0aW9uYWwsIGFkZCApOwoJCQl9CgkJfQoKCQkvLyBSZXR1cm4gdGhlIHJlc3VsdGluZyBzZXJpYWxpemF0aW9uCgkJcmV0dXJuIHMuam9pbiggIiYiICkucmVwbGFjZSggcjIwLCAiKyIgKTsKCX0KfSk7CgpmdW5jdGlvbiBidWlsZFBhcmFtcyggcHJlZml4LCBvYmosIHRyYWRpdGlvbmFsLCBhZGQgKSB7CglpZiAoIGpRdWVyeS5pc0FycmF5KCBvYmogKSAmJiBvYmoubGVuZ3RoICkgewoJCS8vIFNlcmlhbGl6ZSBhcnJheSBpdGVtLgoJCWpRdWVyeS5lYWNoKCBvYmosIGZ1bmN0aW9uKCBpLCB2ICkgewoJCQlpZiAoIHRyYWRpdGlvbmFsIHx8IHJicmFja2V0LnRlc3QoIHByZWZpeCApICkgewoJCQkJLy8gVHJlYXQgZWFjaCBhcnJheSBpdGVtIGFzIGEgc2NhbGFyLgoJCQkJYWRkKCBwcmVmaXgsIHYgKTsKCgkJCX0gZWxzZSB7CgkJCQkvLyBJZiBhcnJheSBpdGVtIGlzIG5vbi1zY2FsYXIgKGFycmF5IG9yIG9iamVjdCksIGVuY29kZSBpdHMKCQkJCS8vIG51bWVyaWMgaW5kZXggdG8gcmVzb2x2ZSBkZXNlcmlhbGl6YXRpb24gYW1iaWd1aXR5IGlzc3Vlcy4KCQkJCS8vIE5vdGUgdGhhdCByYWNrIChhcyBvZiAxLjAuMCkgY2FuJ3QgY3VycmVudGx5IGRlc2VyaWFsaXplCgkJCQkvLyBuZXN0ZWQgYXJyYXlzIHByb3Blcmx5LCBhbmQgYXR0ZW1wdGluZyB0byBkbyBzbyBtYXkgY2F1c2UKCQkJCS8vIGEgc2VydmVyIGVycm9yLiBQb3NzaWJsZSBmaXhlcyBhcmUgdG8gbW9kaWZ5IHJhY2sncwoJCQkJLy8gZGVzZXJpYWxpemF0aW9uIGFsZ29yaXRobSBvciB0byBwcm92aWRlIGFuIG9wdGlvbiBvciBmbGFnCgkJCQkvLyB0byBmb3JjZSBhcnJheSBzZXJpYWxpemF0aW9uIHRvIGJlIHNoYWxsb3cuCgkJCQlidWlsZFBhcmFtcyggcHJlZml4ICsgIlsiICsgKCB0eXBlb2YgdiA9PT0gIm9iamVjdCIgfHwgalF1ZXJ5LmlzQXJyYXkodikgPyBpIDogIiIgKSArICJdIiwgdiwgdHJhZGl0aW9uYWwsIGFkZCApOwoJCQl9CgkJfSk7CgoJfSBlbHNlIGlmICggIXRyYWRpdGlvbmFsICYmIG9iaiAhPSBudWxsICYmIHR5cGVvZiBvYmogPT09ICJvYmplY3QiICkgewoJCS8vIElmIHdlIHNlZSBhbiBhcnJheSBoZXJlLCBpdCBpcyBlbXB0eSBhbmQgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYW4gZW1wdHkKCQkvLyBvYmplY3QKCQlpZiAoIGpRdWVyeS5pc0FycmF5KCBvYmogKSB8fCBqUXVlcnkuaXNFbXB0eU9iamVjdCggb2JqICkgKSB7CgkJCWFkZCggcHJlZml4LCAiIiApOwoKCQkvLyBTZXJpYWxpemUgb2JqZWN0IGl0ZW0uCgkJfSBlbHNlIHsKCQkJZm9yICggdmFyIG5hbWUgaW4gb2JqICkgewoJCQkJYnVpbGRQYXJhbXMoIHByZWZpeCArICJbIiArIG5hbWUgKyAiXSIsIG9ialsgbmFtZSBdLCB0cmFkaXRpb25hbCwgYWRkICk7CgkJCX0KCQl9CgoJfSBlbHNlIHsKCQkvLyBTZXJpYWxpemUgc2NhbGFyIGl0ZW0uCgkJYWRkKCBwcmVmaXgsIG9iaiApOwoJfQp9CgovLyBUaGlzIGlzIHN0aWxsIG9uIHRoZSBqUXVlcnkgb2JqZWN0Li4uIGZvciBub3cKLy8gV2FudCB0byBtb3ZlIHRoaXMgdG8galF1ZXJ5LmFqYXggc29tZSBkYXkKalF1ZXJ5LmV4dGVuZCh7CgoJLy8gQ291bnRlciBmb3IgaG9sZGluZyB0aGUgbnVtYmVyIG9mIGFjdGl2ZSBxdWVyaWVzCglhY3RpdmU6IDAsCgoJLy8gTGFzdC1Nb2RpZmllZCBoZWFkZXIgY2FjaGUgZm9yIG5leHQgcmVxdWVzdAoJbGFzdE1vZGlmaWVkOiB7fSwKCWV0YWc6IHt9Cgp9KTsKCi8qIEhhbmRsZXMgcmVzcG9uc2VzIHRvIGFuIGFqYXggcmVxdWVzdDoKICogLSBzZXRzIGFsbCByZXNwb25zZVhYWCBmaWVsZHMgYWNjb3JkaW5nbHkKICogLSBmaW5kcyB0aGUgcmlnaHQgZGF0YVR5cGUgKG1lZGlhdGVzIGJldHdlZW4gY29udGVudC10eXBlIGFuZCBleHBlY3RlZCBkYXRhVHlwZSkKICogLSByZXR1cm5zIHRoZSBjb3JyZXNwb25kaW5nIHJlc3BvbnNlCiAqLwpmdW5jdGlvbiBhamF4SGFuZGxlUmVzcG9uc2VzKCBzLCBqcVhIUiwgcmVzcG9uc2VzICkgewoKCXZhciBjb250ZW50cyA9IHMuY29udGVudHMsCgkJZGF0YVR5cGVzID0gcy5kYXRhVHlwZXMsCgkJcmVzcG9uc2VGaWVsZHMgPSBzLnJlc3BvbnNlRmllbGRzLAoJCWN0LAoJCXR5cGUsCgkJZmluYWxEYXRhVHlwZSwKCQlmaXJzdERhdGFUeXBlOwoKCS8vIEZpbGwgcmVzcG9uc2VYWFggZmllbGRzCglmb3IoIHR5cGUgaW4gcmVzcG9uc2VGaWVsZHMgKSB7CgkJaWYgKCB0eXBlIGluIHJlc3BvbnNlcyApIHsKCQkJanFYSFJbIHJlc3BvbnNlRmllbGRzW3R5cGVdIF0gPSByZXNwb25zZXNbIHR5cGUgXTsKCQl9Cgl9CgoJLy8gUmVtb3ZlIGF1dG8gZGF0YVR5cGUgYW5kIGdldCBjb250ZW50LXR5cGUgaW4gdGhlIHByb2Nlc3MKCXdoaWxlKCBkYXRhVHlwZXNbIDAgXSA9PT0gIioiICkgewoJCWRhdGFUeXBlcy5zaGlmdCgpOwoJCWlmICggY3QgPT09IHVuZGVmaW5lZCApIHsKCQkJY3QgPSBzLm1pbWVUeXBlIHx8IGpxWEhSLmdldFJlc3BvbnNlSGVhZGVyKCAiY29udGVudC10eXBlIiApOwoJCX0KCX0KCgkvLyBDaGVjayBpZiB3ZSdyZSBkZWFsaW5nIHdpdGggYSBrbm93biBjb250ZW50LXR5cGUKCWlmICggY3QgKSB7CgkJZm9yICggdHlwZSBpbiBjb250ZW50cyApIHsKCQkJaWYgKCBjb250ZW50c1sgdHlwZSBdICYmIGNvbnRlbnRzWyB0eXBlIF0udGVzdCggY3QgKSApIHsKCQkJCWRhdGFUeXBlcy51bnNoaWZ0KCB0eXBlICk7CgkJCQlicmVhazsKCQkJfQoJCX0KCX0KCgkvLyBDaGVjayB0byBzZWUgaWYgd2UgaGF2ZSBhIHJlc3BvbnNlIGZvciB0aGUgZXhwZWN0ZWQgZGF0YVR5cGUKCWlmICggZGF0YVR5cGVzWyAwIF0gaW4gcmVzcG9uc2VzICkgewoJCWZpbmFsRGF0YVR5cGUgPSBkYXRhVHlwZXNbIDAgXTsKCX0gZWxzZSB7CgkJLy8gVHJ5IGNvbnZlcnRpYmxlIGRhdGFUeXBlcwoJCWZvciAoIHR5cGUgaW4gcmVzcG9uc2VzICkgewoJCQlpZiAoICFkYXRhVHlwZXNbIDAgXSB8fCBzLmNvbnZlcnRlcnNbIHR5cGUgKyAiICIgKyBkYXRhVHlwZXNbMF0gXSApIHsKCQkJCWZpbmFsRGF0YVR5cGUgPSB0eXBlOwoJCQkJYnJlYWs7CgkJCX0KCQkJaWYgKCAhZmlyc3REYXRhVHlwZSApIHsKCQkJCWZpcnN0RGF0YVR5cGUgPSB0eXBlOwoJCQl9CgkJfQoJCS8vIE9yIGp1c3QgdXNlIGZpcnN0IG9uZQoJCWZpbmFsRGF0YVR5cGUgPSBmaW5hbERhdGFUeXBlIHx8IGZpcnN0RGF0YVR5cGU7Cgl9CgoJLy8gSWYgd2UgZm91bmQgYSBkYXRhVHlwZQoJLy8gV2UgYWRkIHRoZSBkYXRhVHlwZSB0byB0aGUgbGlzdCBpZiBuZWVkZWQKCS8vIGFuZCByZXR1cm4gdGhlIGNvcnJlc3BvbmRpbmcgcmVzcG9uc2UKCWlmICggZmluYWxEYXRhVHlwZSApIHsKCQlpZiAoIGZpbmFsRGF0YVR5cGUgIT09IGRhdGFUeXBlc1sgMCBdICkgewoJCQlkYXRhVHlwZXMudW5zaGlmdCggZmluYWxEYXRhVHlwZSApOwoJCX0KCQlyZXR1cm4gcmVzcG9uc2VzWyBmaW5hbERhdGFUeXBlIF07Cgl9Cn0KCi8vIENoYWluIGNvbnZlcnNpb25zIGdpdmVuIHRoZSByZXF1ZXN0IGFuZCB0aGUgb3JpZ2luYWwgcmVzcG9uc2UKZnVuY3Rpb24gYWpheENvbnZlcnQoIHMsIHJlc3BvbnNlICkgewoKCS8vIEFwcGx5IHRoZSBkYXRhRmlsdGVyIGlmIHByb3ZpZGVkCglpZiAoIHMuZGF0YUZpbHRlciApIHsKCQlyZXNwb25zZSA9IHMuZGF0YUZpbHRlciggcmVzcG9uc2UsIHMuZGF0YVR5cGUgKTsKCX0KCgl2YXIgZGF0YVR5cGVzID0gcy5kYXRhVHlwZXMsCgkJY29udmVydGVycyA9IHt9LAoJCWksCgkJa2V5LAoJCWxlbmd0aCA9IGRhdGFUeXBlcy5sZW5ndGgsCgkJdG1wLAoJCS8vIEN1cnJlbnQgYW5kIHByZXZpb3VzIGRhdGFUeXBlcwoJCWN1cnJlbnQgPSBkYXRhVHlwZXNbIDAgXSwKCQlwcmV2LAoJCS8vIENvbnZlcnNpb24gZXhwcmVzc2lvbgoJCWNvbnZlcnNpb24sCgkJLy8gQ29udmVyc2lvbiBmdW5jdGlvbgoJCWNvbnYsCgkJLy8gQ29udmVyc2lvbiBmdW5jdGlvbnMgKHRyYW5zaXRpdmUgY29udmVyc2lvbikKCQljb252MSwKCQljb252MjsKCgkvLyBGb3IgZWFjaCBkYXRhVHlwZSBpbiB0aGUgY2hhaW4KCWZvciggaSA9IDE7IGkgPCBsZW5ndGg7IGkrKyApIHsKCgkJLy8gQ3JlYXRlIGNvbnZlcnRlcnMgbWFwCgkJLy8gd2l0aCBsb3dlcmNhc2VkIGtleXMKCQlpZiAoIGkgPT09IDEgKSB7CgkJCWZvcigga2V5IGluIHMuY29udmVydGVycyApIHsKCQkJCWlmKCB0eXBlb2Yga2V5ID09PSAic3RyaW5nIiApIHsKCQkJCQljb252ZXJ0ZXJzWyBrZXkudG9Mb3dlckNhc2UoKSBdID0gcy5jb252ZXJ0ZXJzWyBrZXkgXTsKCQkJCX0KCQkJfQoJCX0KCgkJLy8gR2V0IHRoZSBkYXRhVHlwZXMKCQlwcmV2ID0gY3VycmVudDsKCQljdXJyZW50ID0gZGF0YVR5cGVzWyBpIF07CgoJCS8vIElmIGN1cnJlbnQgaXMgYXV0byBkYXRhVHlwZSwgdXBkYXRlIGl0IHRvIHByZXYKCQlpZiggY3VycmVudCA9PT0gIioiICkgewoJCQljdXJyZW50ID0gcHJldjsKCQkvLyBJZiBubyBhdXRvIGFuZCBkYXRhVHlwZXMgYXJlIGFjdHVhbGx5IGRpZmZlcmVudAoJCX0gZWxzZSBpZiAoIHByZXYgIT09ICIqIiAmJiBwcmV2ICE9PSBjdXJyZW50ICkgewoKCQkJLy8gR2V0IHRoZSBjb252ZXJ0ZXIKCQkJY29udmVyc2lvbiA9IHByZXYgKyAiICIgKyBjdXJyZW50OwoJCQljb252ID0gY29udmVydGVyc1sgY29udmVyc2lvbiBdIHx8IGNvbnZlcnRlcnNbICIqICIgKyBjdXJyZW50IF07CgoJCQkvLyBJZiB0aGVyZSBpcyBubyBkaXJlY3QgY29udmVydGVyLCBzZWFyY2ggdHJhbnNpdGl2ZWx5CgkJCWlmICggIWNvbnYgKSB7CgkJCQljb252MiA9IHVuZGVmaW5lZDsKCQkJCWZvciggY29udjEgaW4gY29udmVydGVycyApIHsKCQkJCQl0bXAgPSBjb252MS5zcGxpdCggIiAiICk7CgkJCQkJaWYgKCB0bXBbIDAgXSA9PT0gcHJldiB8fCB0bXBbIDAgXSA9PT0gIioiICkgewoJCQkJCQljb252MiA9IGNvbnZlcnRlcnNbIHRtcFsxXSArICIgIiArIGN1cnJlbnQgXTsKCQkJCQkJaWYgKCBjb252MiApIHsKCQkJCQkJCWNvbnYxID0gY29udmVydGVyc1sgY29udjEgXTsKCQkJCQkJCWlmICggY29udjEgPT09IHRydWUgKSB7CgkJCQkJCQkJY29udiA9IGNvbnYyOwoJCQkJCQkJfSBlbHNlIGlmICggY29udjIgPT09IHRydWUgKSB7CgkJCQkJCQkJY29udiA9IGNvbnYxOwoJCQkJCQkJfQoJCQkJCQkJYnJlYWs7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCX0KCQkJLy8gSWYgd2UgZm91bmQgbm8gY29udmVydGVyLCBkaXNwYXRjaCBhbiBlcnJvcgoJCQlpZiAoICEoIGNvbnYgfHwgY29udjIgKSApIHsKCQkJCWpRdWVyeS5lcnJvciggIk5vIGNvbnZlcnNpb24gZnJvbSAiICsgY29udmVyc2lvbi5yZXBsYWNlKCIgIiwiIHRvICIpICk7CgkJCX0KCQkJLy8gSWYgZm91bmQgY29udmVydGVyIGlzIG5vdCBhbiBlcXVpdmFsZW5jZQoJCQlpZiAoIGNvbnYgIT09IHRydWUgKSB7CgkJCQkvLyBDb252ZXJ0IHdpdGggMSBvciAyIGNvbnZlcnRlcnMgYWNjb3JkaW5nbHkKCQkJCXJlc3BvbnNlID0gY29udiA/IGNvbnYoIHJlc3BvbnNlICkgOiBjb252MiggY29udjEocmVzcG9uc2UpICk7CgkJCX0KCQl9Cgl9CglyZXR1cm4gcmVzcG9uc2U7Cn0KCgoKCnZhciBqc2MgPSBqUXVlcnkubm93KCksCglqc3JlID0gLyhcPSlcPygmfCQpfCgpXD9cPygpL2k7CgovLyBEZWZhdWx0IGpzb25wIHNldHRpbmdzCmpRdWVyeS5hamF4U2V0dXAoewoJanNvbnA6ICJjYWxsYmFjayIsCglqc29ucENhbGxiYWNrOiBmdW5jdGlvbigpIHsKCQlyZXR1cm4galF1ZXJ5LmV4cGFuZG8gKyAiXyIgKyAoIGpzYysrICk7Cgl9Cn0pOwoKLy8gRGV0ZWN0LCBub3JtYWxpemUgb3B0aW9ucyBhbmQgaW5zdGFsbCBjYWxsYmFja3MgZm9yIGpzb25wIHJlcXVlc3RzCmpRdWVyeS5hamF4UHJlZmlsdGVyKCAianNvbiBqc29ucCIsIGZ1bmN0aW9uKCBzLCBvcmlnaW5hbFNldHRpbmdzLCBqcVhIUiApIHsKCgl2YXIgZGF0YUlzU3RyaW5nID0gKCB0eXBlb2Ygcy5kYXRhID09PSAic3RyaW5nIiApOwoKCWlmICggcy5kYXRhVHlwZXNbIDAgXSA9PT0gImpzb25wIiB8fAoJCW9yaWdpbmFsU2V0dGluZ3MuanNvbnBDYWxsYmFjayB8fAoJCW9yaWdpbmFsU2V0dGluZ3MuanNvbnAgIT0gbnVsbCB8fAoJCXMuanNvbnAgIT09IGZhbHNlICYmICgganNyZS50ZXN0KCBzLnVybCApIHx8CgkJCQlkYXRhSXNTdHJpbmcgJiYganNyZS50ZXN0KCBzLmRhdGEgKSApICkgewoKCQl2YXIgcmVzcG9uc2VDb250YWluZXIsCgkJCWpzb25wQ2FsbGJhY2sgPSBzLmpzb25wQ2FsbGJhY2sgPQoJCQkJalF1ZXJ5LmlzRnVuY3Rpb24oIHMuanNvbnBDYWxsYmFjayApID8gcy5qc29ucENhbGxiYWNrKCkgOiBzLmpzb25wQ2FsbGJhY2ssCgkJCXByZXZpb3VzID0gd2luZG93WyBqc29ucENhbGxiYWNrIF0sCgkJCXVybCA9IHMudXJsLAoJCQlkYXRhID0gcy5kYXRhLAoJCQlyZXBsYWNlID0gIiQxIiArIGpzb25wQ2FsbGJhY2sgKyAiJDIiLAoJCQljbGVhblVwID0gZnVuY3Rpb24oKSB7CgkJCQkvLyBTZXQgY2FsbGJhY2sgYmFjayB0byBwcmV2aW91cyB2YWx1ZQoJCQkJd2luZG93WyBqc29ucENhbGxiYWNrIF0gPSBwcmV2aW91czsKCQkJCS8vIENhbGwgaWYgaXQgd2FzIGEgZnVuY3Rpb24gYW5kIHdlIGhhdmUgYSByZXNwb25zZQoJCQkJaWYgKCByZXNwb25zZUNvbnRhaW5lciAmJiBqUXVlcnkuaXNGdW5jdGlvbiggcHJldmlvdXMgKSApIHsKCQkJCQl3aW5kb3dbIGpzb25wQ2FsbGJhY2sgXSggcmVzcG9uc2VDb250YWluZXJbIDAgXSApOwoJCQkJfQoJCQl9OwoKCQlpZiAoIHMuanNvbnAgIT09IGZhbHNlICkgewoJCQl1cmwgPSB1cmwucmVwbGFjZSgganNyZSwgcmVwbGFjZSApOwoJCQlpZiAoIHMudXJsID09PSB1cmwgKSB7CgkJCQlpZiAoIGRhdGFJc1N0cmluZyApIHsKCQkJCQlkYXRhID0gZGF0YS5yZXBsYWNlKCBqc3JlLCByZXBsYWNlICk7CgkJCQl9CgkJCQlpZiAoIHMuZGF0YSA9PT0gZGF0YSApIHsKCQkJCQkvLyBBZGQgY2FsbGJhY2sgbWFudWFsbHkKCQkJCQl1cmwgKz0gKC9cPy8udGVzdCggdXJsICkgPyAiJiIgOiAiPyIpICsgcy5qc29ucCArICI9IiArIGpzb25wQ2FsbGJhY2s7CgkJCQl9CgkJCX0KCQl9CgoJCXMudXJsID0gdXJsOwoJCXMuZGF0YSA9IGRhdGE7CgoJCS8vIEluc3RhbGwgY2FsbGJhY2sKCQl3aW5kb3dbIGpzb25wQ2FsbGJhY2sgXSA9IGZ1bmN0aW9uKCByZXNwb25zZSApIHsKCQkJcmVzcG9uc2VDb250YWluZXIgPSBbIHJlc3BvbnNlIF07CgkJfTsKCgkJLy8gSW5zdGFsbCBjbGVhblVwIGZ1bmN0aW9uCgkJanFYSFIudGhlbiggY2xlYW5VcCwgY2xlYW5VcCApOwoKCQkvLyBVc2UgZGF0YSBjb252ZXJ0ZXIgdG8gcmV0cmlldmUganNvbiBhZnRlciBzY3JpcHQgZXhlY3V0aW9uCgkJcy5jb252ZXJ0ZXJzWyJzY3JpcHQganNvbiJdID0gZnVuY3Rpb24oKSB7CgkJCWlmICggIXJlc3BvbnNlQ29udGFpbmVyICkgewoJCQkJalF1ZXJ5LmVycm9yKCBqc29ucENhbGxiYWNrICsgIiB3YXMgbm90IGNhbGxlZCIgKTsKCQkJfQoJCQlyZXR1cm4gcmVzcG9uc2VDb250YWluZXJbIDAgXTsKCQl9OwoKCQkvLyBmb3JjZSBqc29uIGRhdGFUeXBlCgkJcy5kYXRhVHlwZXNbIDAgXSA9ICJqc29uIjsKCgkJLy8gRGVsZWdhdGUgdG8gc2NyaXB0CgkJcmV0dXJuICJzY3JpcHQiOwoJfQp9ICk7CgoKCgovLyBJbnN0YWxsIHNjcmlwdCBkYXRhVHlwZQpqUXVlcnkuYWpheFNldHVwKHsKCWFjY2VwdHM6IHsKCQlzY3JpcHQ6ICJ0ZXh0L2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2VjbWFzY3JpcHQsIGFwcGxpY2F0aW9uL3gtZWNtYXNjcmlwdCIKCX0sCgljb250ZW50czogewoJCXNjcmlwdDogL2phdmFzY3JpcHR8ZWNtYXNjcmlwdC8KCX0sCgljb252ZXJ0ZXJzOiB7CgkJInRleHQgc2NyaXB0IjogZnVuY3Rpb24oIHRleHQgKSB7CgkJCWpRdWVyeS5nbG9iYWxFdmFsKCB0ZXh0ICk7CgkJCXJldHVybiB0ZXh0OwoJCX0KCX0KfSk7CgovLyBIYW5kbGUgY2FjaGUncyBzcGVjaWFsIGNhc2UgYW5kIGdsb2JhbApqUXVlcnkuYWpheFByZWZpbHRlciggInNjcmlwdCIsIGZ1bmN0aW9uKCBzICkgewoJaWYgKCBzLmNhY2hlID09PSB1bmRlZmluZWQgKSB7CgkJcy5jYWNoZSA9IGZhbHNlOwoJfQoJaWYgKCBzLmNyb3NzRG9tYWluICkgewoJCXMudHlwZSA9ICJHRVQiOwoJCXMuZ2xvYmFsID0gZmFsc2U7Cgl9Cn0gKTsKCi8vIEJpbmQgc2NyaXB0IHRhZyBoYWNrIHRyYW5zcG9ydApqUXVlcnkuYWpheFRyYW5zcG9ydCggInNjcmlwdCIsIGZ1bmN0aW9uKHMpIHsKCgkvLyBUaGlzIHRyYW5zcG9ydCBvbmx5IGRlYWxzIHdpdGggY3Jvc3MgZG9tYWluIHJlcXVlc3RzCglpZiAoIHMuY3Jvc3NEb21haW4gKSB7CgoJCXZhciBzY3JpcHQsCgkJCWhlYWQgPSBkb2N1bWVudC5oZWFkIHx8IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCAiaGVhZCIgKVswXSB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CgoJCXJldHVybiB7CgoJCQlzZW5kOiBmdW5jdGlvbiggXywgY2FsbGJhY2sgKSB7CgoJCQkJc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggInNjcmlwdCIgKTsKCgkJCQlzY3JpcHQuYXN5bmMgPSAiYXN5bmMiOwoKCQkJCWlmICggcy5zY3JpcHRDaGFyc2V0ICkgewoJCQkJCXNjcmlwdC5jaGFyc2V0ID0gcy5zY3JpcHRDaGFyc2V0OwoJCQkJfQoKCQkJCXNjcmlwdC5zcmMgPSBzLnVybDsKCgkJCQkvLyBBdHRhY2ggaGFuZGxlcnMgZm9yIGFsbCBicm93c2VycwoJCQkJc2NyaXB0Lm9ubG9hZCA9IHNjcmlwdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiggXywgaXNBYm9ydCApIHsKCgkJCQkJaWYgKCAhc2NyaXB0LnJlYWR5U3RhdGUgfHwgL2xvYWRlZHxjb21wbGV0ZS8udGVzdCggc2NyaXB0LnJlYWR5U3RhdGUgKSApIHsKCgkJCQkJCS8vIEhhbmRsZSBtZW1vcnkgbGVhayBpbiBJRQoJCQkJCQlzY3JpcHQub25sb2FkID0gc2NyaXB0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IG51bGw7CgoJCQkJCQkvLyBSZW1vdmUgdGhlIHNjcmlwdAoJCQkJCQlpZiAoIGhlYWQgJiYgc2NyaXB0LnBhcmVudE5vZGUgKSB7CgkJCQkJCQloZWFkLnJlbW92ZUNoaWxkKCBzY3JpcHQgKTsKCQkJCQkJfQoKCQkJCQkJLy8gRGVyZWZlcmVuY2UgdGhlIHNjcmlwdAoJCQkJCQlzY3JpcHQgPSB1bmRlZmluZWQ7CgoJCQkJCQkvLyBDYWxsYmFjayBpZiBub3QgYWJvcnQKCQkJCQkJaWYgKCAhaXNBYm9ydCApIHsKCQkJCQkJCWNhbGxiYWNrKCAyMDAsICJzdWNjZXNzIiApOwoJCQkJCQl9CgkJCQkJfQoJCQkJfTsKCQkJCS8vIFVzZSBpbnNlcnRCZWZvcmUgaW5zdGVhZCBvZiBhcHBlbmRDaGlsZCAgdG8gY2lyY3VtdmVudCBhbiBJRTYgYnVnLgoJCQkJLy8gVGhpcyBhcmlzZXMgd2hlbiBhIGJhc2Ugbm9kZSBpcyB1c2VkICgjMjcwOSBhbmQgIzQzNzgpLgoJCQkJaGVhZC5pbnNlcnRCZWZvcmUoIHNjcmlwdCwgaGVhZC5maXJzdENoaWxkICk7CgkJCX0sCgoJCQlhYm9ydDogZnVuY3Rpb24oKSB7CgkJCQlpZiAoIHNjcmlwdCApIHsKCQkJCQlzY3JpcHQub25sb2FkKCAwLCAxICk7CgkJCQl9CgkJCX0KCQl9OwoJfQp9ICk7CgoKCgp2YXIgLy8gIzUyODA6IG5leHQgYWN0aXZlIHhociBpZCBhbmQgbGlzdCBvZiBhY3RpdmUgeGhycycgY2FsbGJhY2tzCgl4aHJJZCA9IGpRdWVyeS5ub3coKSwKCXhockNhbGxiYWNrcywKCgkvLyBYSFIgdXNlZCB0byBkZXRlcm1pbmUgc3VwcG9ydHMgcHJvcGVydGllcwoJdGVzdFhIUjsKCi8vICM1MjgwOiBJbnRlcm5ldCBFeHBsb3JlciB3aWxsIGtlZXAgY29ubmVjdGlvbnMgYWxpdmUgaWYgd2UgZG9uJ3QgYWJvcnQgb24gdW5sb2FkCmZ1bmN0aW9uIHhock9uVW5sb2FkQWJvcnQoKSB7CglqUXVlcnkoIHdpbmRvdyApLnVubG9hZChmdW5jdGlvbigpIHsKCQkvLyBBYm9ydCBhbGwgcGVuZGluZyByZXF1ZXN0cwoJCWZvciAoIHZhciBrZXkgaW4geGhyQ2FsbGJhY2tzICkgewoJCQl4aHJDYWxsYmFja3NbIGtleSBdKCAwLCAxICk7CgkJfQoJfSk7Cn0KCi8vIEZ1bmN0aW9ucyB0byBjcmVhdGUgeGhycwpmdW5jdGlvbiBjcmVhdGVTdGFuZGFyZFhIUigpIHsKCXRyeSB7CgkJcmV0dXJuIG5ldyB3aW5kb3cuWE1MSHR0cFJlcXVlc3QoKTsKCX0gY2F0Y2goIGUgKSB7fQp9CgpmdW5jdGlvbiBjcmVhdGVBY3RpdmVYSFIoKSB7Cgl0cnkgewoJCXJldHVybiBuZXcgd2luZG93LkFjdGl2ZVhPYmplY3QoICJNaWNyb3NvZnQuWE1MSFRUUCIgKTsKCX0gY2F0Y2goIGUgKSB7fQp9CgovLyBDcmVhdGUgdGhlIHJlcXVlc3Qgb2JqZWN0Ci8vIChUaGlzIGlzIHN0aWxsIGF0dGFjaGVkIHRvIGFqYXhTZXR0aW5ncyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSkKalF1ZXJ5LmFqYXhTZXR0aW5ncy54aHIgPSB3aW5kb3cuQWN0aXZlWE9iamVjdCA/CgkvKiBNaWNyb3NvZnQgZmFpbGVkIHRvIHByb3Blcmx5CgkgKiBpbXBsZW1lbnQgdGhlIFhNTEh0dHBSZXF1ZXN0IGluIElFNyAoY2FuJ3QgcmVxdWVzdCBsb2NhbCBmaWxlcyksCgkgKiBzbyB3ZSB1c2UgdGhlIEFjdGl2ZVhPYmplY3Qgd2hlbiBpdCBpcyBhdmFpbGFibGUKCSAqIEFkZGl0aW9uYWxseSBYTUxIdHRwUmVxdWVzdCBjYW4gYmUgZGlzYWJsZWQgaW4gSUU3L0lFOCBzbwoJICogd2UgbmVlZCBhIGZhbGxiYWNrLgoJICovCglmdW5jdGlvbigpIHsKCQlyZXR1cm4gIXRoaXMuaXNMb2NhbCAmJiBjcmVhdGVTdGFuZGFyZFhIUigpIHx8IGNyZWF0ZUFjdGl2ZVhIUigpOwoJfSA6CgkvLyBGb3IgYWxsIG90aGVyIGJyb3dzZXJzLCB1c2UgdGhlIHN0YW5kYXJkIFhNTEh0dHBSZXF1ZXN0IG9iamVjdAoJY3JlYXRlU3RhbmRhcmRYSFI7CgovLyBUZXN0IGlmIHdlIGNhbiBjcmVhdGUgYW4geGhyIG9iamVjdAp0ZXN0WEhSID0galF1ZXJ5LmFqYXhTZXR0aW5ncy54aHIoKTsKalF1ZXJ5LnN1cHBvcnQuYWpheCA9ICEhdGVzdFhIUjsKCi8vIERvZXMgdGhpcyBicm93c2VyIHN1cHBvcnQgY3Jvc3NEb21haW4gWEhSIHJlcXVlc3RzCmpRdWVyeS5zdXBwb3J0LmNvcnMgPSB0ZXN0WEhSICYmICggIndpdGhDcmVkZW50aWFscyIgaW4gdGVzdFhIUiApOwoKLy8gTm8gbmVlZCBmb3IgdGhlIHRlbXBvcmFyeSB4aHIgYW55bW9yZQp0ZXN0WEhSID0gdW5kZWZpbmVkOwoKLy8gQ3JlYXRlIHRyYW5zcG9ydCBpZiB0aGUgYnJvd3NlciBjYW4gcHJvdmlkZSBhbiB4aHIKaWYgKCBqUXVlcnkuc3VwcG9ydC5hamF4ICkgewoKCWpRdWVyeS5hamF4VHJhbnNwb3J0KGZ1bmN0aW9uKCBzICkgewoJCS8vIENyb3NzIGRvbWFpbiBvbmx5IGFsbG93ZWQgaWYgc3VwcG9ydGVkIHRocm91Z2ggWE1MSHR0cFJlcXVlc3QKCQlpZiAoICFzLmNyb3NzRG9tYWluIHx8IGpRdWVyeS5zdXBwb3J0LmNvcnMgKSB7CgoJCQl2YXIgY2FsbGJhY2s7CgoJCQlyZXR1cm4gewoJCQkJc2VuZDogZnVuY3Rpb24oIGhlYWRlcnMsIGNvbXBsZXRlICkgewoKCQkJCQkvLyBHZXQgYSBuZXcgeGhyCgkJCQkJdmFyIHhociA9IHMueGhyKCksCgkJCQkJCWhhbmRsZSwKCQkJCQkJaTsKCgkJCQkJLy8gT3BlbiB0aGUgc29ja2V0CgkJCQkJLy8gUGFzc2luZyBudWxsIHVzZXJuYW1lLCBnZW5lcmF0ZXMgYSBsb2dpbiBwb3B1cCBvbiBPcGVyYSAoIzI4NjUpCgkJCQkJaWYgKCBzLnVzZXJuYW1lICkgewoJCQkJCQl4aHIub3Blbiggcy50eXBlLCBzLnVybCwgcy5hc3luYywgcy51c2VybmFtZSwgcy5wYXNzd29yZCApOwoJCQkJCX0gZWxzZSB7CgkJCQkJCXhoci5vcGVuKCBzLnR5cGUsIHMudXJsLCBzLmFzeW5jICk7CgkJCQkJfQoKCQkJCQkvLyBBcHBseSBjdXN0b20gZmllbGRzIGlmIHByb3ZpZGVkCgkJCQkJaWYgKCBzLnhockZpZWxkcyApIHsKCQkJCQkJZm9yICggaSBpbiBzLnhockZpZWxkcyApIHsKCQkJCQkJCXhoclsgaSBdID0gcy54aHJGaWVsZHNbIGkgXTsKCQkJCQkJfQoJCQkJCX0KCgkJCQkJLy8gT3ZlcnJpZGUgbWltZSB0eXBlIGlmIG5lZWRlZAoJCQkJCWlmICggcy5taW1lVHlwZSAmJiB4aHIub3ZlcnJpZGVNaW1lVHlwZSApIHsKCQkJCQkJeGhyLm92ZXJyaWRlTWltZVR5cGUoIHMubWltZVR5cGUgKTsKCQkJCQl9CgoJCQkJCS8vIFJlcXVlc3RlZC1XaXRoIGhlYWRlcgoJCQkJCS8vIE5vdCBzZXQgZm9yIGNyb3NzRG9tYWluIHJlcXVlc3RzIHdpdGggbm8gY29udGVudAoJCQkJCS8vIChzZWUgd2h5IGF0IGh0dHA6Ly90cmFjLmRvam90b29sa2l0Lm9yZy90aWNrZXQvOTQ4NikKCQkJCQkvLyBXb24ndCBjaGFuZ2UgaGVhZGVyIGlmIGFscmVhZHkgcHJvdmlkZWQKCQkJCQlpZiAoICEoIHMuY3Jvc3NEb21haW4gJiYgIXMuaGFzQ29udGVudCApICYmICFoZWFkZXJzWyJYLVJlcXVlc3RlZC1XaXRoIl0gKSB7CgkJCQkJCWhlYWRlcnNbICJYLVJlcXVlc3RlZC1XaXRoIiBdID0gIlhNTEh0dHBSZXF1ZXN0IjsKCQkJCQl9CgoJCQkJCS8vIE5lZWQgYW4gZXh0cmEgdHJ5L2NhdGNoIGZvciBjcm9zcyBkb21haW4gcmVxdWVzdHMgaW4gRmlyZWZveCAzCgkJCQkJdHJ5IHsKCQkJCQkJZm9yICggaSBpbiBoZWFkZXJzICkgewoJCQkJCQkJeGhyLnNldFJlcXVlc3RIZWFkZXIoIGksIGhlYWRlcnNbIGkgXSApOwoJCQkJCQl9CgkJCQkJfSBjYXRjaCggXyApIHt9CgoJCQkJCS8vIERvIHNlbmQgdGhlIHJlcXVlc3QKCQkJCQkvLyBUaGlzIG1heSByYWlzZSBhbiBleGNlcHRpb24gd2hpY2ggaXMgYWN0dWFsbHkKCQkJCQkvLyBoYW5kbGVkIGluIGpRdWVyeS5hamF4IChzbyBubyB0cnkvY2F0Y2ggaGVyZSkKCQkJCQl4aHIuc2VuZCggKCBzLmhhc0NvbnRlbnQgJiYgcy5kYXRhICkgfHwgbnVsbCApOwoKCQkJCQkvLyBMaXN0ZW5lcgoJCQkJCWNhbGxiYWNrID0gZnVuY3Rpb24oIF8sIGlzQWJvcnQgKSB7CgoJCQkJCQl2YXIgc3RhdHVzLAoJCQkJCQkJc3RhdHVzVGV4dCwKCQkJCQkJCXJlc3BvbnNlSGVhZGVycywKCQkJCQkJCXJlc3BvbnNlcywKCQkJCQkJCXhtbDsKCgkJCQkJCS8vIEZpcmVmb3ggdGhyb3dzIGV4Y2VwdGlvbnMgd2hlbiBhY2Nlc3NpbmcgcHJvcGVydGllcwoJCQkJCQkvLyBvZiBhbiB4aHIgd2hlbiBhIG5ldHdvcmsgZXJyb3Igb2NjdXJlZAoJCQkJCQkvLyBodHRwOi8vaGVscGZ1bC5rbm9icy1kaWFscy5jb20vaW5kZXgucGhwL0NvbXBvbmVudF9yZXR1cm5lZF9mYWlsdXJlX2NvZGU6XzB4ODAwNDAxMTFfKE5TX0VSUk9SX05PVF9BVkFJTEFCTEUpCgkJCQkJCXRyeSB7CgoJCQkJCQkJLy8gV2FzIG5ldmVyIGNhbGxlZCBhbmQgaXMgYWJvcnRlZCBvciBjb21wbGV0ZQoJCQkJCQkJaWYgKCBjYWxsYmFjayAmJiAoIGlzQWJvcnQgfHwgeGhyLnJlYWR5U3RhdGUgPT09IDQgKSApIHsKCgkJCQkJCQkJLy8gT25seSBjYWxsZWQgb25jZQoJCQkJCQkJCWNhbGxiYWNrID0gdW5kZWZpbmVkOwoKCQkJCQkJCQkvLyBEbyBub3Qga2VlcCBhcyBhY3RpdmUgYW55bW9yZQoJCQkJCQkJCWlmICggaGFuZGxlICkgewoJCQkJCQkJCQl4aHIub25yZWFkeXN0YXRlY2hhbmdlID0galF1ZXJ5Lm5vb3A7CgkJCQkJCQkJCWRlbGV0ZSB4aHJDYWxsYmFja3NbIGhhbmRsZSBdOwoJCQkJCQkJCX0KCgkJCQkJCQkJLy8gSWYgaXQncyBhbiBhYm9ydAoJCQkJCQkJCWlmICggaXNBYm9ydCApIHsKCQkJCQkJCQkJLy8gQWJvcnQgaXQgbWFudWFsbHkgaWYgbmVlZGVkCgkJCQkJCQkJCWlmICggeGhyLnJlYWR5U3RhdGUgIT09IDQgKSB7CgkJCQkJCQkJCQl4aHIuYWJvcnQoKTsKCQkJCQkJCQkJfQoJCQkJCQkJCX0gZWxzZSB7CgkJCQkJCQkJCXN0YXR1cyA9IHhoci5zdGF0dXM7CgkJCQkJCQkJCXJlc3BvbnNlSGVhZGVycyA9IHhoci5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKTsKCQkJCQkJCQkJcmVzcG9uc2VzID0ge307CgkJCQkJCQkJCXhtbCA9IHhoci5yZXNwb25zZVhNTDsKCgkJCQkJCQkJCS8vIENvbnN0cnVjdCByZXNwb25zZSBsaXN0CgkJCQkJCQkJCWlmICggeG1sICYmIHhtbC5kb2N1bWVudEVsZW1lbnQgLyogIzQ5NTggKi8gKSB7CgkJCQkJCQkJCQlyZXNwb25zZXMueG1sID0geG1sOwoJCQkJCQkJCQl9CgkJCQkJCQkJCXJlc3BvbnNlcy50ZXh0ID0geGhyLnJlc3BvbnNlVGV4dDsKCgkJCQkJCQkJCS8vIEZpcmVmb3ggdGhyb3dzIGFuIGV4Y2VwdGlvbiB3aGVuIGFjY2Vzc2luZwoJCQkJCQkJCQkvLyBzdGF0dXNUZXh0IGZvciBmYXVsdHkgY3Jvc3MtZG9tYWluIHJlcXVlc3RzCgkJCQkJCQkJCXRyeSB7CgkJCQkJCQkJCQlzdGF0dXNUZXh0ID0geGhyLnN0YXR1c1RleHQ7CgkJCQkJCQkJCX0gY2F0Y2goIGUgKSB7CgkJCQkJCQkJCQkvLyBXZSBub3JtYWxpemUgd2l0aCBXZWJraXQgZ2l2aW5nIGFuIGVtcHR5IHN0YXR1c1RleHQKCQkJCQkJCQkJCXN0YXR1c1RleHQgPSAiIjsKCQkJCQkJCQkJfQoKCQkJCQkJCQkJLy8gRmlsdGVyIHN0YXR1cyBmb3Igbm9uIHN0YW5kYXJkIGJlaGF2aW9ycwoKCQkJCQkJCQkJLy8gSWYgdGhlIHJlcXVlc3QgaXMgbG9jYWwgYW5kIHdlIGhhdmUgZGF0YTogYXNzdW1lIGEgc3VjY2VzcwoJCQkJCQkJCQkvLyAoc3VjY2VzcyB3aXRoIG5vIGRhdGEgd29uJ3QgZ2V0IG5vdGlmaWVkLCB0aGF0J3MgdGhlIGJlc3Qgd2UKCQkJCQkJCQkJLy8gY2FuIGRvIGdpdmVuIGN1cnJlbnQgaW1wbGVtZW50YXRpb25zKQoJCQkJCQkJCQlpZiAoICFzdGF0dXMgJiYgcy5pc0xvY2FsICYmICFzLmNyb3NzRG9tYWluICkgewoJCQkJCQkJCQkJc3RhdHVzID0gcmVzcG9uc2VzLnRleHQgPyAyMDAgOiA0MDQ7CgkJCQkJCQkJCS8vIElFIC0gIzE0NTA6IHNvbWV0aW1lcyByZXR1cm5zIDEyMjMgd2hlbiBpdCBzaG91bGQgYmUgMjA0CgkJCQkJCQkJCX0gZWxzZSBpZiAoIHN0YXR1cyA9PT0gMTIyMyApIHsKCQkJCQkJCQkJCXN0YXR1cyA9IDIwNDsKCQkJCQkJCQkJfQoJCQkJCQkJCX0KCQkJCQkJCX0KCQkJCQkJfSBjYXRjaCggZmlyZWZveEFjY2Vzc0V4Y2VwdGlvbiApIHsKCQkJCQkJCWlmICggIWlzQWJvcnQgKSB7CgkJCQkJCQkJY29tcGxldGUoIC0xLCBmaXJlZm94QWNjZXNzRXhjZXB0aW9uICk7CgkJCQkJCQl9CgkJCQkJCX0KCgkJCQkJCS8vIENhbGwgY29tcGxldGUgaWYgbmVlZGVkCgkJCQkJCWlmICggcmVzcG9uc2VzICkgewoJCQkJCQkJY29tcGxldGUoIHN0YXR1cywgc3RhdHVzVGV4dCwgcmVzcG9uc2VzLCByZXNwb25zZUhlYWRlcnMgKTsKCQkJCQkJfQoJCQkJCX07CgoJCQkJCS8vIGlmIHdlJ3JlIGluIHN5bmMgbW9kZSBvciBpdCdzIGluIGNhY2hlCgkJCQkJLy8gYW5kIGhhcyBiZWVuIHJldHJpZXZlZCBkaXJlY3RseSAoSUU2ICYgSUU3KQoJCQkJCS8vIHdlIG5lZWQgdG8gbWFudWFsbHkgZmlyZSB0aGUgY2FsbGJhY2sKCQkJCQlpZiAoICFzLmFzeW5jIHx8IHhoci5yZWFkeVN0YXRlID09PSA0ICkgewoJCQkJCQljYWxsYmFjaygpOwoJCQkJCX0gZWxzZSB7CgkJCQkJCS8vIENyZWF0ZSB0aGUgYWN0aXZlIHhocnMgY2FsbGJhY2tzIGxpc3QgaWYgbmVlZGVkCgkJCQkJCS8vIGFuZCBhdHRhY2ggdGhlIHVubG9hZCBoYW5kbGVyCgkJCQkJCWlmICggIXhockNhbGxiYWNrcyApIHsKCQkJCQkJCXhockNhbGxiYWNrcyA9IHt9OwoJCQkJCQkJeGhyT25VbmxvYWRBYm9ydCgpOwoJCQkJCQl9CgkJCQkJCS8vIEFkZCB0byBsaXN0IG9mIGFjdGl2ZSB4aHJzIGNhbGxiYWNrcwoJCQkJCQloYW5kbGUgPSB4aHJJZCsrOwoJCQkJCQl4aHIub25yZWFkeXN0YXRlY2hhbmdlID0geGhyQ2FsbGJhY2tzWyBoYW5kbGUgXSA9IGNhbGxiYWNrOwoJCQkJCX0KCQkJCX0sCgoJCQkJYWJvcnQ6IGZ1bmN0aW9uKCkgewoJCQkJCWlmICggY2FsbGJhY2sgKSB7CgkJCQkJCWNhbGxiYWNrKDAsMSk7CgkJCQkJfQoJCQkJfQoJCQl9OwoJCX0KCX0pOwp9CgoKCgp2YXIgZWxlbWRpc3BsYXkgPSB7fSwKCXJmeHR5cGVzID0gL14oPzp0b2dnbGV8c2hvd3xoaWRlKSQvLAoJcmZ4bnVtID0gL14oWytcLV09KT8oW1xkKy5cLV0rKShbYS16JV0qKSQvaSwKCXRpbWVySWQsCglmeEF0dHJzID0gWwoJCS8vIGhlaWdodCBhbmltYXRpb25zCgkJWyAiaGVpZ2h0IiwgIm1hcmdpblRvcCIsICJtYXJnaW5Cb3R0b20iLCAicGFkZGluZ1RvcCIsICJwYWRkaW5nQm90dG9tIiBdLAoJCS8vIHdpZHRoIGFuaW1hdGlvbnMKCQlbICJ3aWR0aCIsICJtYXJnaW5MZWZ0IiwgIm1hcmdpblJpZ2h0IiwgInBhZGRpbmdMZWZ0IiwgInBhZGRpbmdSaWdodCIgXSwKCQkvLyBvcGFjaXR5IGFuaW1hdGlvbnMKCQlbICJvcGFjaXR5IiBdCgldOwoKalF1ZXJ5LmZuLmV4dGVuZCh7CglzaG93OiBmdW5jdGlvbiggc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSB7CgkJdmFyIGVsZW0sIGRpc3BsYXk7CgoJCWlmICggc3BlZWQgfHwgc3BlZWQgPT09IDAgKSB7CgkJCXJldHVybiB0aGlzLmFuaW1hdGUoIGdlbkZ4KCJzaG93IiwgMyksIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrKTsKCgkJfSBlbHNlIHsKCQkJZm9yICggdmFyIGkgPSAwLCBqID0gdGhpcy5sZW5ndGg7IGkgPCBqOyBpKysgKSB7CgkJCQllbGVtID0gdGhpc1tpXTsKCQkJCWRpc3BsYXkgPSBlbGVtLnN0eWxlLmRpc3BsYXk7CgoJCQkJLy8gUmVzZXQgdGhlIGlubGluZSBkaXNwbGF5IG9mIHRoaXMgZWxlbWVudCB0byBsZWFybiBpZiBpdCBpcwoJCQkJLy8gYmVpbmcgaGlkZGVuIGJ5IGNhc2NhZGVkIHJ1bGVzIG9yIG5vdAoJCQkJaWYgKCAhalF1ZXJ5Ll9kYXRhKGVsZW0sICJvbGRkaXNwbGF5IikgJiYgZGlzcGxheSA9PT0gIm5vbmUiICkgewoJCQkJCWRpc3BsYXkgPSBlbGVtLnN0eWxlLmRpc3BsYXkgPSAiIjsKCQkJCX0KCgkJCQkvLyBTZXQgZWxlbWVudHMgd2hpY2ggaGF2ZSBiZWVuIG92ZXJyaWRkZW4gd2l0aCBkaXNwbGF5OiBub25lCgkJCQkvLyBpbiBhIHN0eWxlc2hlZXQgdG8gd2hhdGV2ZXIgdGhlIGRlZmF1bHQgYnJvd3NlciBzdHlsZSBpcwoJCQkJLy8gZm9yIHN1Y2ggYW4gZWxlbWVudAoJCQkJaWYgKCBkaXNwbGF5ID09PSAiIiAmJiBqUXVlcnkuY3NzKCBlbGVtLCAiZGlzcGxheSIgKSA9PT0gIm5vbmUiICkgewoJCQkJCWpRdWVyeS5fZGF0YShlbGVtLCAib2xkZGlzcGxheSIsIGRlZmF1bHREaXNwbGF5KGVsZW0ubm9kZU5hbWUpKTsKCQkJCX0KCQkJfQoKCQkJLy8gU2V0IHRoZSBkaXNwbGF5IG9mIG1vc3Qgb2YgdGhlIGVsZW1lbnRzIGluIGEgc2Vjb25kIGxvb3AKCQkJLy8gdG8gYXZvaWQgdGhlIGNvbnN0YW50IHJlZmxvdwoJCQlmb3IgKCBpID0gMDsgaSA8IGo7IGkrKyApIHsKCQkJCWVsZW0gPSB0aGlzW2ldOwoJCQkJZGlzcGxheSA9IGVsZW0uc3R5bGUuZGlzcGxheTsKCgkJCQlpZiAoIGRpc3BsYXkgPT09ICIiIHx8IGRpc3BsYXkgPT09ICJub25lIiApIHsKCQkJCQllbGVtLnN0eWxlLmRpc3BsYXkgPSBqUXVlcnkuX2RhdGEoZWxlbSwgIm9sZGRpc3BsYXkiKSB8fCAiIjsKCQkJCX0KCQkJfQoKCQkJcmV0dXJuIHRoaXM7CgkJfQoJfSwKCgloaWRlOiBmdW5jdGlvbiggc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSB7CgkJaWYgKCBzcGVlZCB8fCBzcGVlZCA9PT0gMCApIHsKCQkJcmV0dXJuIHRoaXMuYW5pbWF0ZSggZ2VuRngoImhpZGUiLCAzKSwgc3BlZWQsIGVhc2luZywgY2FsbGJhY2spOwoKCQl9IGVsc2UgewoJCQlmb3IgKCB2YXIgaSA9IDAsIGogPSB0aGlzLmxlbmd0aDsgaSA8IGo7IGkrKyApIHsKCQkJCXZhciBkaXNwbGF5ID0galF1ZXJ5LmNzcyggdGhpc1tpXSwgImRpc3BsYXkiICk7CgoJCQkJaWYgKCBkaXNwbGF5ICE9PSAibm9uZSIgJiYgIWpRdWVyeS5fZGF0YSggdGhpc1tpXSwgIm9sZGRpc3BsYXkiICkgKSB7CgkJCQkJalF1ZXJ5Ll9kYXRhKCB0aGlzW2ldLCAib2xkZGlzcGxheSIsIGRpc3BsYXkgKTsKCQkJCX0KCQkJfQoKCQkJLy8gU2V0IHRoZSBkaXNwbGF5IG9mIHRoZSBlbGVtZW50cyBpbiBhIHNlY29uZCBsb29wCgkJCS8vIHRvIGF2b2lkIHRoZSBjb25zdGFudCByZWZsb3cKCQkJZm9yICggaSA9IDA7IGkgPCBqOyBpKysgKSB7CgkJCQl0aGlzW2ldLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CgkJCX0KCgkJCXJldHVybiB0aGlzOwoJCX0KCX0sCgoJLy8gU2F2ZSB0aGUgb2xkIHRvZ2dsZSBmdW5jdGlvbgoJX3RvZ2dsZTogalF1ZXJ5LmZuLnRvZ2dsZSwKCgl0b2dnbGU6IGZ1bmN0aW9uKCBmbiwgZm4yLCBjYWxsYmFjayApIHsKCQl2YXIgYm9vbCA9IHR5cGVvZiBmbiA9PT0gImJvb2xlYW4iOwoKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKGZuKSAmJiBqUXVlcnkuaXNGdW5jdGlvbihmbjIpICkgewoJCQl0aGlzLl90b2dnbGUuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApOwoKCQl9IGVsc2UgaWYgKCBmbiA9PSBudWxsIHx8IGJvb2wgKSB7CgkJCXRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJCXZhciBzdGF0ZSA9IGJvb2wgPyBmbiA6IGpRdWVyeSh0aGlzKS5pcygiOmhpZGRlbiIpOwoJCQkJalF1ZXJ5KHRoaXMpWyBzdGF0ZSA/ICJzaG93IiA6ICJoaWRlIiBdKCk7CgkJCX0pOwoKCQl9IGVsc2UgewoJCQl0aGlzLmFuaW1hdGUoZ2VuRngoInRvZ2dsZSIsIDMpLCBmbiwgZm4yLCBjYWxsYmFjayk7CgkJfQoKCQlyZXR1cm4gdGhpczsKCX0sCgoJZmFkZVRvOiBmdW5jdGlvbiggc3BlZWQsIHRvLCBlYXNpbmcsIGNhbGxiYWNrICkgewoJCXJldHVybiB0aGlzLmZpbHRlcigiOmhpZGRlbiIpLmNzcygib3BhY2l0eSIsIDApLnNob3coKS5lbmQoKQoJCQkJCS5hbmltYXRlKHtvcGFjaXR5OiB0b30sIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrKTsKCX0sCgoJYW5pbWF0ZTogZnVuY3Rpb24oIHByb3AsIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrICkgewoJCXZhciBvcHRhbGwgPSBqUXVlcnkuc3BlZWQoc3BlZWQsIGVhc2luZywgY2FsbGJhY2spOwoKCQlpZiAoIGpRdWVyeS5pc0VtcHR5T2JqZWN0KCBwcm9wICkgKSB7CgkJCXJldHVybiB0aGlzLmVhY2goIG9wdGFsbC5jb21wbGV0ZSApOwoJCX0KCgkJcmV0dXJuIHRoaXNbIG9wdGFsbC5xdWV1ZSA9PT0gZmFsc2UgPyAiZWFjaCIgOiAicXVldWUiIF0oZnVuY3Rpb24oKSB7CgkJCS8vIFhYWCAndGhpcycgZG9lcyBub3QgYWx3YXlzIGhhdmUgYSBub2RlTmFtZSB3aGVuIHJ1bm5pbmcgdGhlCgkJCS8vIHRlc3Qgc3VpdGUKCgkJCXZhciBvcHQgPSBqUXVlcnkuZXh0ZW5kKHt9LCBvcHRhbGwpLCBwLAoJCQkJaXNFbGVtZW50ID0gdGhpcy5ub2RlVHlwZSA9PT0gMSwKCQkJCWhpZGRlbiA9IGlzRWxlbWVudCAmJiBqUXVlcnkodGhpcykuaXMoIjpoaWRkZW4iKSwKCQkJCXNlbGYgPSB0aGlzOwoKCQkJZm9yICggcCBpbiBwcm9wICkgewoJCQkJdmFyIG5hbWUgPSBqUXVlcnkuY2FtZWxDYXNlKCBwICk7CgoJCQkJaWYgKCBwICE9PSBuYW1lICkgewoJCQkJCXByb3BbIG5hbWUgXSA9IHByb3BbIHAgXTsKCQkJCQlkZWxldGUgcHJvcFsgcCBdOwoJCQkJCXAgPSBuYW1lOwoJCQkJfQoKCQkJCWlmICggcHJvcFtwXSA9PT0gImhpZGUiICYmIGhpZGRlbiB8fCBwcm9wW3BdID09PSAic2hvdyIgJiYgIWhpZGRlbiApIHsKCQkJCQlyZXR1cm4gb3B0LmNvbXBsZXRlLmNhbGwodGhpcyk7CgkJCQl9CgoJCQkJaWYgKCBpc0VsZW1lbnQgJiYgKCBwID09PSAiaGVpZ2h0IiB8fCBwID09PSAid2lkdGgiICkgKSB7CgkJCQkJLy8gTWFrZSBzdXJlIHRoYXQgbm90aGluZyBzbmVha3Mgb3V0CgkJCQkJLy8gUmVjb3JkIGFsbCAzIG92ZXJmbG93IGF0dHJpYnV0ZXMgYmVjYXVzZSBJRSBkb2VzIG5vdAoJCQkJCS8vIGNoYW5nZSB0aGUgb3ZlcmZsb3cgYXR0cmlidXRlIHdoZW4gb3ZlcmZsb3dYIGFuZAoJCQkJCS8vIG92ZXJmbG93WSBhcmUgc2V0IHRvIHRoZSBzYW1lIHZhbHVlCgkJCQkJb3B0Lm92ZXJmbG93ID0gWyB0aGlzLnN0eWxlLm92ZXJmbG93LCB0aGlzLnN0eWxlLm92ZXJmbG93WCwgdGhpcy5zdHlsZS5vdmVyZmxvd1kgXTsKCgkJCQkJLy8gU2V0IGRpc3BsYXkgcHJvcGVydHkgdG8gaW5saW5lLWJsb2NrIGZvciBoZWlnaHQvd2lkdGgKCQkJCQkvLyBhbmltYXRpb25zIG9uIGlubGluZSBlbGVtZW50cyB0aGF0IGFyZSBoYXZpbmcgd2lkdGgvaGVpZ2h0CgkJCQkJLy8gYW5pbWF0ZWQKCQkJCQlpZiAoIGpRdWVyeS5jc3MoIHRoaXMsICJkaXNwbGF5IiApID09PSAiaW5saW5lIiAmJgoJCQkJCQkJalF1ZXJ5LmNzcyggdGhpcywgImZsb2F0IiApID09PSAibm9uZSIgKSB7CgkJCQkJCWlmICggIWpRdWVyeS5zdXBwb3J0LmlubGluZUJsb2NrTmVlZHNMYXlvdXQgKSB7CgkJCQkJCQl0aGlzLnN0eWxlLmRpc3BsYXkgPSAiaW5saW5lLWJsb2NrIjsKCgkJCQkJCX0gZWxzZSB7CgkJCQkJCQl2YXIgZGlzcGxheSA9IGRlZmF1bHREaXNwbGF5KHRoaXMubm9kZU5hbWUpOwoKCQkJCQkJCS8vIGlubGluZS1sZXZlbCBlbGVtZW50cyBhY2NlcHQgaW5saW5lLWJsb2NrOwoJCQkJCQkJLy8gYmxvY2stbGV2ZWwgZWxlbWVudHMgbmVlZCB0byBiZSBpbmxpbmUgd2l0aCBsYXlvdXQKCQkJCQkJCWlmICggZGlzcGxheSA9PT0gImlubGluZSIgKSB7CgkJCQkJCQkJdGhpcy5zdHlsZS5kaXNwbGF5ID0gImlubGluZS1ibG9jayI7CgoJCQkJCQkJfSBlbHNlIHsKCQkJCQkJCQl0aGlzLnN0eWxlLmRpc3BsYXkgPSAiaW5saW5lIjsKCQkJCQkJCQl0aGlzLnN0eWxlLnpvb20gPSAxOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfQoJCQkJfQoKCQkJCWlmICggalF1ZXJ5LmlzQXJyYXkoIHByb3BbcF0gKSApIHsKCQkJCQkvLyBDcmVhdGUgKGlmIG5lZWRlZCkgYW5kIGFkZCB0byBzcGVjaWFsRWFzaW5nCgkJCQkJKG9wdC5zcGVjaWFsRWFzaW5nID0gb3B0LnNwZWNpYWxFYXNpbmcgfHwge30pW3BdID0gcHJvcFtwXVsxXTsKCQkJCQlwcm9wW3BdID0gcHJvcFtwXVswXTsKCQkJCX0KCQkJfQoKCQkJaWYgKCBvcHQub3ZlcmZsb3cgIT0gbnVsbCApIHsKCQkJCXRoaXMuc3R5bGUub3ZlcmZsb3cgPSAiaGlkZGVuIjsKCQkJfQoKCQkJb3B0LmN1ckFuaW0gPSBqUXVlcnkuZXh0ZW5kKHt9LCBwcm9wKTsKCgkJCWpRdWVyeS5lYWNoKCBwcm9wLCBmdW5jdGlvbiggbmFtZSwgdmFsICkgewoJCQkJdmFyIGUgPSBuZXcgalF1ZXJ5LmZ4KCBzZWxmLCBvcHQsIG5hbWUgKTsKCgkJCQlpZiAoIHJmeHR5cGVzLnRlc3QodmFsKSApIHsKCQkJCQllWyB2YWwgPT09ICJ0b2dnbGUiID8gaGlkZGVuID8gInNob3ciIDogImhpZGUiIDogdmFsIF0oIHByb3AgKTsKCgkJCQl9IGVsc2UgewoJCQkJCXZhciBwYXJ0cyA9IHJmeG51bS5leGVjKHZhbCksCgkJCQkJCXN0YXJ0ID0gZS5jdXIoKTsKCgkJCQkJaWYgKCBwYXJ0cyApIHsKCQkJCQkJdmFyIGVuZCA9IHBhcnNlRmxvYXQoIHBhcnRzWzJdICksCgkJCQkJCQl1bml0ID0gcGFydHNbM10gfHwgKCBqUXVlcnkuY3NzTnVtYmVyWyBuYW1lIF0gPyAiIiA6ICJweCIgKTsKCgkJCQkJCS8vIFdlIG5lZWQgdG8gY29tcHV0ZSBzdGFydGluZyB2YWx1ZQoJCQkJCQlpZiAoIHVuaXQgIT09ICJweCIgKSB7CgkJCQkJCQlqUXVlcnkuc3R5bGUoIHNlbGYsIG5hbWUsIChlbmQgfHwgMSkgKyB1bml0KTsKCQkJCQkJCXN0YXJ0ID0gKChlbmQgfHwgMSkgLyBlLmN1cigpKSAqIHN0YXJ0OwoJCQkJCQkJalF1ZXJ5LnN0eWxlKCBzZWxmLCBuYW1lLCBzdGFydCArIHVuaXQpOwoJCQkJCQl9CgoJCQkJCQkvLyBJZiBhICs9Ly09IHRva2VuIHdhcyBwcm92aWRlZCwgd2UncmUgZG9pbmcgYSByZWxhdGl2ZSBhbmltYXRpb24KCQkJCQkJaWYgKCBwYXJ0c1sxXSApIHsKCQkJCQkJCWVuZCA9ICgocGFydHNbMV0gPT09ICItPSIgPyAtMSA6IDEpICogZW5kKSArIHN0YXJ0OwoJCQkJCQl9CgoJCQkJCQllLmN1c3RvbSggc3RhcnQsIGVuZCwgdW5pdCApOwoKCQkJCQl9IGVsc2UgewoJCQkJCQllLmN1c3RvbSggc3RhcnQsIHZhbCwgIiIgKTsKCQkJCQl9CgkJCQl9CgkJCX0pOwoKCQkJLy8gRm9yIEpTIHN0cmljdCBjb21wbGlhbmNlCgkJCXJldHVybiB0cnVlOwoJCX0pOwoJfSwKCglzdG9wOiBmdW5jdGlvbiggY2xlYXJRdWV1ZSwgZ290b0VuZCApIHsKCQl2YXIgdGltZXJzID0galF1ZXJ5LnRpbWVyczsKCgkJaWYgKCBjbGVhclF1ZXVlICkgewoJCQl0aGlzLnF1ZXVlKFtdKTsKCQl9CgoJCXRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJLy8gZ28gaW4gcmV2ZXJzZSBvcmRlciBzbyBhbnl0aGluZyBhZGRlZCB0byB0aGUgcXVldWUgZHVyaW5nIHRoZSBsb29wIGlzIGlnbm9yZWQKCQkJZm9yICggdmFyIGkgPSB0aW1lcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0gKSB7CgkJCQlpZiAoIHRpbWVyc1tpXS5lbGVtID09PSB0aGlzICkgewoJCQkJCWlmIChnb3RvRW5kKSB7CgkJCQkJCS8vIGZvcmNlIHRoZSBuZXh0IHN0ZXAgdG8gYmUgdGhlIGxhc3QKCQkJCQkJdGltZXJzW2ldKHRydWUpOwoJCQkJCX0KCgkJCQkJdGltZXJzLnNwbGljZShpLCAxKTsKCQkJCX0KCQkJfQoJCX0pOwoKCQkvLyBzdGFydCB0aGUgbmV4dCBpbiB0aGUgcXVldWUgaWYgdGhlIGxhc3Qgc3RlcCB3YXNuJ3QgZm9yY2VkCgkJaWYgKCAhZ290b0VuZCApIHsKCQkJdGhpcy5kZXF1ZXVlKCk7CgkJfQoKCQlyZXR1cm4gdGhpczsKCX0KCn0pOwoKZnVuY3Rpb24gZ2VuRngoIHR5cGUsIG51bSApIHsKCXZhciBvYmogPSB7fTsKCglqUXVlcnkuZWFjaCggZnhBdHRycy5jb25jYXQuYXBwbHkoW10sIGZ4QXR0cnMuc2xpY2UoMCxudW0pKSwgZnVuY3Rpb24oKSB7CgkJb2JqWyB0aGlzIF0gPSB0eXBlOwoJfSk7CgoJcmV0dXJuIG9iajsKfQoKLy8gR2VuZXJhdGUgc2hvcnRjdXRzIGZvciBjdXN0b20gYW5pbWF0aW9ucwpqUXVlcnkuZWFjaCh7CglzbGlkZURvd246IGdlbkZ4KCJzaG93IiwgMSksCglzbGlkZVVwOiBnZW5GeCgiaGlkZSIsIDEpLAoJc2xpZGVUb2dnbGU6IGdlbkZ4KCJ0b2dnbGUiLCAxKSwKCWZhZGVJbjogeyBvcGFjaXR5OiAic2hvdyIgfSwKCWZhZGVPdXQ6IHsgb3BhY2l0eTogImhpZGUiIH0sCglmYWRlVG9nZ2xlOiB7IG9wYWNpdHk6ICJ0b2dnbGUiIH0KfSwgZnVuY3Rpb24oIG5hbWUsIHByb3BzICkgewoJalF1ZXJ5LmZuWyBuYW1lIF0gPSBmdW5jdGlvbiggc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSB7CgkJcmV0dXJuIHRoaXMuYW5pbWF0ZSggcHJvcHMsIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrICk7Cgl9Owp9KTsKCmpRdWVyeS5leHRlbmQoewoJc3BlZWQ6IGZ1bmN0aW9uKCBzcGVlZCwgZWFzaW5nLCBmbiApIHsKCQl2YXIgb3B0ID0gc3BlZWQgJiYgdHlwZW9mIHNwZWVkID09PSAib2JqZWN0IiA/IGpRdWVyeS5leHRlbmQoe30sIHNwZWVkKSA6IHsKCQkJY29tcGxldGU6IGZuIHx8ICFmbiAmJiBlYXNpbmcgfHwKCQkJCWpRdWVyeS5pc0Z1bmN0aW9uKCBzcGVlZCApICYmIHNwZWVkLAoJCQlkdXJhdGlvbjogc3BlZWQsCgkJCWVhc2luZzogZm4gJiYgZWFzaW5nIHx8IGVhc2luZyAmJiAhalF1ZXJ5LmlzRnVuY3Rpb24oZWFzaW5nKSAmJiBlYXNpbmcKCQl9OwoKCQlvcHQuZHVyYXRpb24gPSBqUXVlcnkuZngub2ZmID8gMCA6IHR5cGVvZiBvcHQuZHVyYXRpb24gPT09ICJudW1iZXIiID8gb3B0LmR1cmF0aW9uIDoKCQkJb3B0LmR1cmF0aW9uIGluIGpRdWVyeS5meC5zcGVlZHMgPyBqUXVlcnkuZnguc3BlZWRzW29wdC5kdXJhdGlvbl0gOiBqUXVlcnkuZnguc3BlZWRzLl9kZWZhdWx0OwoKCQkvLyBRdWV1ZWluZwoJCW9wdC5vbGQgPSBvcHQuY29tcGxldGU7CgkJb3B0LmNvbXBsZXRlID0gZnVuY3Rpb24oKSB7CgkJCWlmICggb3B0LnF1ZXVlICE9PSBmYWxzZSApIHsKCQkJCWpRdWVyeSh0aGlzKS5kZXF1ZXVlKCk7CgkJCX0KCQkJaWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggb3B0Lm9sZCApICkgewoJCQkJb3B0Lm9sZC5jYWxsKCB0aGlzICk7CgkJCX0KCQl9OwoKCQlyZXR1cm4gb3B0OwoJfSwKCgllYXNpbmc6IHsKCQlsaW5lYXI6IGZ1bmN0aW9uKCBwLCBuLCBmaXJzdE51bSwgZGlmZiApIHsKCQkJcmV0dXJuIGZpcnN0TnVtICsgZGlmZiAqIHA7CgkJfSwKCQlzd2luZzogZnVuY3Rpb24oIHAsIG4sIGZpcnN0TnVtLCBkaWZmICkgewoJCQlyZXR1cm4gKCgtTWF0aC5jb3MocCpNYXRoLlBJKS8yKSArIDAuNSkgKiBkaWZmICsgZmlyc3ROdW07CgkJfQoJfSwKCgl0aW1lcnM6IFtdLAoKCWZ4OiBmdW5jdGlvbiggZWxlbSwgb3B0aW9ucywgcHJvcCApIHsKCQl0aGlzLm9wdGlvbnMgPSBvcHRpb25zOwoJCXRoaXMuZWxlbSA9IGVsZW07CgkJdGhpcy5wcm9wID0gcHJvcDsKCgkJaWYgKCAhb3B0aW9ucy5vcmlnICkgewoJCQlvcHRpb25zLm9yaWcgPSB7fTsKCQl9Cgl9Cgp9KTsKCmpRdWVyeS5meC5wcm90b3R5cGUgPSB7CgkvLyBTaW1wbGUgZnVuY3Rpb24gZm9yIHNldHRpbmcgYSBzdHlsZSB2YWx1ZQoJdXBkYXRlOiBmdW5jdGlvbigpIHsKCQlpZiAoIHRoaXMub3B0aW9ucy5zdGVwICkgewoJCQl0aGlzLm9wdGlvbnMuc3RlcC5jYWxsKCB0aGlzLmVsZW0sIHRoaXMubm93LCB0aGlzICk7CgkJfQoKCQkoalF1ZXJ5LmZ4LnN0ZXBbdGhpcy5wcm9wXSB8fCBqUXVlcnkuZnguc3RlcC5fZGVmYXVsdCkoIHRoaXMgKTsKCX0sCgoJLy8gR2V0IHRoZSBjdXJyZW50IHNpemUKCWN1cjogZnVuY3Rpb24oKSB7CgkJaWYgKCB0aGlzLmVsZW1bdGhpcy5wcm9wXSAhPSBudWxsICYmICghdGhpcy5lbGVtLnN0eWxlIHx8IHRoaXMuZWxlbS5zdHlsZVt0aGlzLnByb3BdID09IG51bGwpICkgewoJCQlyZXR1cm4gdGhpcy5lbGVtWyB0aGlzLnByb3AgXTsKCQl9CgoJCXZhciBwYXJzZWQsCgkJCXIgPSBqUXVlcnkuY3NzKCB0aGlzLmVsZW0sIHRoaXMucHJvcCApOwoJCS8vIEVtcHR5IHN0cmluZ3MsIG51bGwsIHVuZGVmaW5lZCBhbmQgImF1dG8iIGFyZSBjb252ZXJ0ZWQgdG8gMCwKCQkvLyBjb21wbGV4IHZhbHVlcyBzdWNoIGFzICJyb3RhdGUoMXJhZCkiIGFyZSByZXR1cm5lZCBhcyBpcywKCQkvLyBzaW1wbGUgdmFsdWVzIHN1Y2ggYXMgIjEwcHgiIGFyZSBwYXJzZWQgdG8gRmxvYXQuCgkJcmV0dXJuIGlzTmFOKCBwYXJzZWQgPSBwYXJzZUZsb2F0KCByICkgKSA/ICFyIHx8IHIgPT09ICJhdXRvIiA/IDAgOiByIDogcGFyc2VkOwoJfSwKCgkvLyBTdGFydCBhbiBhbmltYXRpb24gZnJvbSBvbmUgbnVtYmVyIHRvIGFub3RoZXIKCWN1c3RvbTogZnVuY3Rpb24oIGZyb20sIHRvLCB1bml0ICkgewoJCXZhciBzZWxmID0gdGhpcywKCQkJZnggPSBqUXVlcnkuZng7CgoJCXRoaXMuc3RhcnRUaW1lID0galF1ZXJ5Lm5vdygpOwoJCXRoaXMuc3RhcnQgPSBmcm9tOwoJCXRoaXMuZW5kID0gdG87CgkJdGhpcy51bml0ID0gdW5pdCB8fCB0aGlzLnVuaXQgfHwgKCBqUXVlcnkuY3NzTnVtYmVyWyB0aGlzLnByb3AgXSA/ICIiIDogInB4IiApOwoJCXRoaXMubm93ID0gdGhpcy5zdGFydDsKCQl0aGlzLnBvcyA9IHRoaXMuc3RhdGUgPSAwOwoKCQlmdW5jdGlvbiB0KCBnb3RvRW5kICkgewoJCQlyZXR1cm4gc2VsZi5zdGVwKGdvdG9FbmQpOwoJCX0KCgkJdC5lbGVtID0gdGhpcy5lbGVtOwoKCQlpZiAoIHQoKSAmJiBqUXVlcnkudGltZXJzLnB1c2godCkgJiYgIXRpbWVySWQgKSB7CgkJCXRpbWVySWQgPSBzZXRJbnRlcnZhbChmeC50aWNrLCBmeC5pbnRlcnZhbCk7CgkJfQoJfSwKCgkvLyBTaW1wbGUgJ3Nob3cnIGZ1bmN0aW9uCglzaG93OiBmdW5jdGlvbigpIHsKCQkvLyBSZW1lbWJlciB3aGVyZSB3ZSBzdGFydGVkLCBzbyB0aGF0IHdlIGNhbiBnbyBiYWNrIHRvIGl0IGxhdGVyCgkJdGhpcy5vcHRpb25zLm9yaWdbdGhpcy5wcm9wXSA9IGpRdWVyeS5zdHlsZSggdGhpcy5lbGVtLCB0aGlzLnByb3AgKTsKCQl0aGlzLm9wdGlvbnMuc2hvdyA9IHRydWU7CgoJCS8vIEJlZ2luIHRoZSBhbmltYXRpb24KCQkvLyBNYWtlIHN1cmUgdGhhdCB3ZSBzdGFydCBhdCBhIHNtYWxsIHdpZHRoL2hlaWdodCB0byBhdm9pZCBhbnkKCQkvLyBmbGFzaCBvZiBjb250ZW50CgkJdGhpcy5jdXN0b20odGhpcy5wcm9wID09PSAid2lkdGgiIHx8IHRoaXMucHJvcCA9PT0gImhlaWdodCIgPyAxIDogMCwgdGhpcy5jdXIoKSk7CgoJCS8vIFN0YXJ0IGJ5IHNob3dpbmcgdGhlIGVsZW1lbnQKCQlqUXVlcnkoIHRoaXMuZWxlbSApLnNob3coKTsKCX0sCgoJLy8gU2ltcGxlICdoaWRlJyBmdW5jdGlvbgoJaGlkZTogZnVuY3Rpb24oKSB7CgkJLy8gUmVtZW1iZXIgd2hlcmUgd2Ugc3RhcnRlZCwgc28gdGhhdCB3ZSBjYW4gZ28gYmFjayB0byBpdCBsYXRlcgoJCXRoaXMub3B0aW9ucy5vcmlnW3RoaXMucHJvcF0gPSBqUXVlcnkuc3R5bGUoIHRoaXMuZWxlbSwgdGhpcy5wcm9wICk7CgkJdGhpcy5vcHRpb25zLmhpZGUgPSB0cnVlOwoKCQkvLyBCZWdpbiB0aGUgYW5pbWF0aW9uCgkJdGhpcy5jdXN0b20odGhpcy5jdXIoKSwgMCk7Cgl9LAoKCS8vIEVhY2ggc3RlcCBvZiBhbiBhbmltYXRpb24KCXN0ZXA6IGZ1bmN0aW9uKCBnb3RvRW5kICkgewoJCXZhciB0ID0galF1ZXJ5Lm5vdygpLCBkb25lID0gdHJ1ZTsKCgkJaWYgKCBnb3RvRW5kIHx8IHQgPj0gdGhpcy5vcHRpb25zLmR1cmF0aW9uICsgdGhpcy5zdGFydFRpbWUgKSB7CgkJCXRoaXMubm93ID0gdGhpcy5lbmQ7CgkJCXRoaXMucG9zID0gdGhpcy5zdGF0ZSA9IDE7CgkJCXRoaXMudXBkYXRlKCk7CgoJCQl0aGlzLm9wdGlvbnMuY3VyQW5pbVsgdGhpcy5wcm9wIF0gPSB0cnVlOwoKCQkJZm9yICggdmFyIGkgaW4gdGhpcy5vcHRpb25zLmN1ckFuaW0gKSB7CgkJCQlpZiAoIHRoaXMub3B0aW9ucy5jdXJBbmltW2ldICE9PSB0cnVlICkgewoJCQkJCWRvbmUgPSBmYWxzZTsKCQkJCX0KCQkJfQoKCQkJaWYgKCBkb25lICkgewoJCQkJLy8gUmVzZXQgdGhlIG92ZXJmbG93CgkJCQlpZiAoIHRoaXMub3B0aW9ucy5vdmVyZmxvdyAhPSBudWxsICYmICFqUXVlcnkuc3VwcG9ydC5zaHJpbmtXcmFwQmxvY2tzICkgewoJCQkJCXZhciBlbGVtID0gdGhpcy5lbGVtLAoJCQkJCQlvcHRpb25zID0gdGhpcy5vcHRpb25zOwoKCQkJCQlqUXVlcnkuZWFjaCggWyAiIiwgIlgiLCAiWSIgXSwgZnVuY3Rpb24gKGluZGV4LCB2YWx1ZSkgewoJCQkJCQllbGVtLnN0eWxlWyAib3ZlcmZsb3ciICsgdmFsdWUgXSA9IG9wdGlvbnMub3ZlcmZsb3dbaW5kZXhdOwoJCQkJCX0gKTsKCQkJCX0KCgkJCQkvLyBIaWRlIHRoZSBlbGVtZW50IGlmIHRoZSAiaGlkZSIgb3BlcmF0aW9uIHdhcyBkb25lCgkJCQlpZiAoIHRoaXMub3B0aW9ucy5oaWRlICkgewoJCQkJCWpRdWVyeSh0aGlzLmVsZW0pLmhpZGUoKTsKCQkJCX0KCgkJCQkvLyBSZXNldCB0aGUgcHJvcGVydGllcywgaWYgdGhlIGl0ZW0gaGFzIGJlZW4gaGlkZGVuIG9yIHNob3duCgkJCQlpZiAoIHRoaXMub3B0aW9ucy5oaWRlIHx8IHRoaXMub3B0aW9ucy5zaG93ICkgewoJCQkJCWZvciAoIHZhciBwIGluIHRoaXMub3B0aW9ucy5jdXJBbmltICkgewoJCQkJCQlqUXVlcnkuc3R5bGUoIHRoaXMuZWxlbSwgcCwgdGhpcy5vcHRpb25zLm9yaWdbcF0gKTsKCQkJCQl9CgkJCQl9CgoJCQkJLy8gRXhlY3V0ZSB0aGUgY29tcGxldGUgZnVuY3Rpb24KCQkJCXRoaXMub3B0aW9ucy5jb21wbGV0ZS5jYWxsKCB0aGlzLmVsZW0gKTsKCQkJfQoKCQkJcmV0dXJuIGZhbHNlOwoKCQl9IGVsc2UgewoJCQl2YXIgbiA9IHQgLSB0aGlzLnN0YXJ0VGltZTsKCQkJdGhpcy5zdGF0ZSA9IG4gLyB0aGlzLm9wdGlvbnMuZHVyYXRpb247CgoJCQkvLyBQZXJmb3JtIHRoZSBlYXNpbmcgZnVuY3Rpb24sIGRlZmF1bHRzIHRvIHN3aW5nCgkJCXZhciBzcGVjaWFsRWFzaW5nID0gdGhpcy5vcHRpb25zLnNwZWNpYWxFYXNpbmcgJiYgdGhpcy5vcHRpb25zLnNwZWNpYWxFYXNpbmdbdGhpcy5wcm9wXTsKCQkJdmFyIGRlZmF1bHRFYXNpbmcgPSB0aGlzLm9wdGlvbnMuZWFzaW5nIHx8IChqUXVlcnkuZWFzaW5nLnN3aW5nID8gInN3aW5nIiA6ICJsaW5lYXIiKTsKCQkJdGhpcy5wb3MgPSBqUXVlcnkuZWFzaW5nW3NwZWNpYWxFYXNpbmcgfHwgZGVmYXVsdEVhc2luZ10odGhpcy5zdGF0ZSwgbiwgMCwgMSwgdGhpcy5vcHRpb25zLmR1cmF0aW9uKTsKCQkJdGhpcy5ub3cgPSB0aGlzLnN0YXJ0ICsgKCh0aGlzLmVuZCAtIHRoaXMuc3RhcnQpICogdGhpcy5wb3MpOwoKCQkJLy8gUGVyZm9ybSB0aGUgbmV4dCBzdGVwIG9mIHRoZSBhbmltYXRpb24KCQkJdGhpcy51cGRhdGUoKTsKCQl9CgoJCXJldHVybiB0cnVlOwoJfQp9OwoKalF1ZXJ5LmV4dGVuZCggalF1ZXJ5LmZ4LCB7Cgl0aWNrOiBmdW5jdGlvbigpIHsKCQl2YXIgdGltZXJzID0galF1ZXJ5LnRpbWVyczsKCgkJZm9yICggdmFyIGkgPSAwOyBpIDwgdGltZXJzLmxlbmd0aDsgaSsrICkgewoJCQlpZiAoICF0aW1lcnNbaV0oKSApIHsKCQkJCXRpbWVycy5zcGxpY2UoaS0tLCAxKTsKCQkJfQoJCX0KCgkJaWYgKCAhdGltZXJzLmxlbmd0aCApIHsKCQkJalF1ZXJ5LmZ4LnN0b3AoKTsKCQl9Cgl9LAoKCWludGVydmFsOiAxMywKCglzdG9wOiBmdW5jdGlvbigpIHsKCQljbGVhckludGVydmFsKCB0aW1lcklkICk7CgkJdGltZXJJZCA9IG51bGw7Cgl9LAoKCXNwZWVkczogewoJCXNsb3c6IDYwMCwKCQlmYXN0OiAyMDAsCgkJLy8gRGVmYXVsdCBzcGVlZAoJCV9kZWZhdWx0OiA0MDAKCX0sCgoJc3RlcDogewoJCW9wYWNpdHk6IGZ1bmN0aW9uKCBmeCApIHsKCQkJalF1ZXJ5LnN0eWxlKCBmeC5lbGVtLCAib3BhY2l0eSIsIGZ4Lm5vdyApOwoJCX0sCgoJCV9kZWZhdWx0OiBmdW5jdGlvbiggZnggKSB7CgkJCWlmICggZnguZWxlbS5zdHlsZSAmJiBmeC5lbGVtLnN0eWxlWyBmeC5wcm9wIF0gIT0gbnVsbCApIHsKCQkJCWZ4LmVsZW0uc3R5bGVbIGZ4LnByb3AgXSA9IChmeC5wcm9wID09PSAid2lkdGgiIHx8IGZ4LnByb3AgPT09ICJoZWlnaHQiID8gTWF0aC5tYXgoMCwgZngubm93KSA6IGZ4Lm5vdykgKyBmeC51bml0OwoJCQl9IGVsc2UgewoJCQkJZnguZWxlbVsgZngucHJvcCBdID0gZngubm93OwoJCQl9CgkJfQoJfQp9KTsKCmlmICggalF1ZXJ5LmV4cHIgJiYgalF1ZXJ5LmV4cHIuZmlsdGVycyApIHsKCWpRdWVyeS5leHByLmZpbHRlcnMuYW5pbWF0ZWQgPSBmdW5jdGlvbiggZWxlbSApIHsKCQlyZXR1cm4galF1ZXJ5LmdyZXAoalF1ZXJ5LnRpbWVycywgZnVuY3Rpb24oIGZuICkgewoJCQlyZXR1cm4gZWxlbSA9PT0gZm4uZWxlbTsKCQl9KS5sZW5ndGg7Cgl9Owp9CgpmdW5jdGlvbiBkZWZhdWx0RGlzcGxheSggbm9kZU5hbWUgKSB7CglpZiAoICFlbGVtZGlzcGxheVsgbm9kZU5hbWUgXSApIHsKCQl2YXIgZWxlbSA9IGpRdWVyeSgiPCIgKyBub2RlTmFtZSArICI+IikuYXBwZW5kVG8oImJvZHkiKSwKCQkJZGlzcGxheSA9IGVsZW0uY3NzKCJkaXNwbGF5Iik7CgoJCWVsZW0ucmVtb3ZlKCk7CgoJCWlmICggZGlzcGxheSA9PT0gIm5vbmUiIHx8IGRpc3BsYXkgPT09ICIiICkgewoJCQlkaXNwbGF5ID0gImJsb2NrIjsKCQl9CgoJCWVsZW1kaXNwbGF5WyBub2RlTmFtZSBdID0gZGlzcGxheTsKCX0KCglyZXR1cm4gZWxlbWRpc3BsYXlbIG5vZGVOYW1lIF07Cn0KCgoKCnZhciBydGFibGUgPSAvXnQoPzphYmxlfGR8aCkkL2ksCglycm9vdCA9IC9eKD86Ym9keXxodG1sKSQvaTsKCmlmICggImdldEJvdW5kaW5nQ2xpZW50UmVjdCIgaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICkgewoJalF1ZXJ5LmZuLm9mZnNldCA9IGZ1bmN0aW9uKCBvcHRpb25zICkgewoJCXZhciBlbGVtID0gdGhpc1swXSwgYm94OwoKCQlpZiAoIG9wdGlvbnMgKSB7CgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oIGkgKSB7CgkJCQlqUXVlcnkub2Zmc2V0LnNldE9mZnNldCggdGhpcywgb3B0aW9ucywgaSApOwoJCQl9KTsKCQl9CgoJCWlmICggIWVsZW0gfHwgIWVsZW0ub3duZXJEb2N1bWVudCApIHsKCQkJcmV0dXJuIG51bGw7CgkJfQoKCQlpZiAoIGVsZW0gPT09IGVsZW0ub3duZXJEb2N1bWVudC5ib2R5ICkgewoJCQlyZXR1cm4galF1ZXJ5Lm9mZnNldC5ib2R5T2Zmc2V0KCBlbGVtICk7CgkJfQoKCQl0cnkgewoJCQlib3ggPSBlbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwoJCX0gY2F0Y2goZSkge30KCgkJdmFyIGRvYyA9IGVsZW0ub3duZXJEb2N1bWVudCwKCQkJZG9jRWxlbSA9IGRvYy5kb2N1bWVudEVsZW1lbnQ7CgoJCS8vIE1ha2Ugc3VyZSB3ZSdyZSBub3QgZGVhbGluZyB3aXRoIGEgZGlzY29ubmVjdGVkIERPTSBub2RlCgkJaWYgKCAhYm94IHx8ICFqUXVlcnkuY29udGFpbnMoIGRvY0VsZW0sIGVsZW0gKSApIHsKCQkJcmV0dXJuIGJveCA/IHsgdG9wOiBib3gudG9wLCBsZWZ0OiBib3gubGVmdCB9IDogeyB0b3A6IDAsIGxlZnQ6IDAgfTsKCQl9CgoJCXZhciBib2R5ID0gZG9jLmJvZHksCgkJCXdpbiA9IGdldFdpbmRvdyhkb2MpLAoJCQljbGllbnRUb3AgID0gZG9jRWxlbS5jbGllbnRUb3AgIHx8IGJvZHkuY2xpZW50VG9wICB8fCAwLAoJCQljbGllbnRMZWZ0ID0gZG9jRWxlbS5jbGllbnRMZWZ0IHx8IGJvZHkuY2xpZW50TGVmdCB8fCAwLAoJCQlzY3JvbGxUb3AgID0gKHdpbi5wYWdlWU9mZnNldCB8fCBqUXVlcnkuc3VwcG9ydC5ib3hNb2RlbCAmJiBkb2NFbGVtLnNjcm9sbFRvcCAgfHwgYm9keS5zY3JvbGxUb3AgKSwKCQkJc2Nyb2xsTGVmdCA9ICh3aW4ucGFnZVhPZmZzZXQgfHwgalF1ZXJ5LnN1cHBvcnQuYm94TW9kZWwgJiYgZG9jRWxlbS5zY3JvbGxMZWZ0IHx8IGJvZHkuc2Nyb2xsTGVmdCksCgkJCXRvcCAgPSBib3gudG9wICArIHNjcm9sbFRvcCAgLSBjbGllbnRUb3AsCgkJCWxlZnQgPSBib3gubGVmdCArIHNjcm9sbExlZnQgLSBjbGllbnRMZWZ0OwoKCQlyZXR1cm4geyB0b3A6IHRvcCwgbGVmdDogbGVmdCB9OwoJfTsKCn0gZWxzZSB7CglqUXVlcnkuZm4ub2Zmc2V0ID0gZnVuY3Rpb24oIG9wdGlvbnMgKSB7CgkJdmFyIGVsZW0gPSB0aGlzWzBdOwoKCQlpZiAoIG9wdGlvbnMgKSB7CgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oIGkgKSB7CgkJCQlqUXVlcnkub2Zmc2V0LnNldE9mZnNldCggdGhpcywgb3B0aW9ucywgaSApOwoJCQl9KTsKCQl9CgoJCWlmICggIWVsZW0gfHwgIWVsZW0ub3duZXJEb2N1bWVudCApIHsKCQkJcmV0dXJuIG51bGw7CgkJfQoKCQlpZiAoIGVsZW0gPT09IGVsZW0ub3duZXJEb2N1bWVudC5ib2R5ICkgewoJCQlyZXR1cm4galF1ZXJ5Lm9mZnNldC5ib2R5T2Zmc2V0KCBlbGVtICk7CgkJfQoKCQlqUXVlcnkub2Zmc2V0LmluaXRpYWxpemUoKTsKCgkJdmFyIGNvbXB1dGVkU3R5bGUsCgkJCW9mZnNldFBhcmVudCA9IGVsZW0ub2Zmc2V0UGFyZW50LAoJCQlwcmV2T2Zmc2V0UGFyZW50ID0gZWxlbSwKCQkJZG9jID0gZWxlbS5vd25lckRvY3VtZW50LAoJCQlkb2NFbGVtID0gZG9jLmRvY3VtZW50RWxlbWVudCwKCQkJYm9keSA9IGRvYy5ib2R5LAoJCQlkZWZhdWx0VmlldyA9IGRvYy5kZWZhdWx0VmlldywKCQkJcHJldkNvbXB1dGVkU3R5bGUgPSBkZWZhdWx0VmlldyA/IGRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoIGVsZW0sIG51bGwgKSA6IGVsZW0uY3VycmVudFN0eWxlLAoJCQl0b3AgPSBlbGVtLm9mZnNldFRvcCwKCQkJbGVmdCA9IGVsZW0ub2Zmc2V0TGVmdDsKCgkJd2hpbGUgKCAoZWxlbSA9IGVsZW0ucGFyZW50Tm9kZSkgJiYgZWxlbSAhPT0gYm9keSAmJiBlbGVtICE9PSBkb2NFbGVtICkgewoJCQlpZiAoIGpRdWVyeS5vZmZzZXQuc3VwcG9ydHNGaXhlZFBvc2l0aW9uICYmIHByZXZDb21wdXRlZFN0eWxlLnBvc2l0aW9uID09PSAiZml4ZWQiICkgewoJCQkJYnJlYWs7CgkJCX0KCgkJCWNvbXB1dGVkU3R5bGUgPSBkZWZhdWx0VmlldyA/IGRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZWxlbSwgbnVsbCkgOiBlbGVtLmN1cnJlbnRTdHlsZTsKCQkJdG9wICAtPSBlbGVtLnNjcm9sbFRvcDsKCQkJbGVmdCAtPSBlbGVtLnNjcm9sbExlZnQ7CgoJCQlpZiAoIGVsZW0gPT09IG9mZnNldFBhcmVudCApIHsKCQkJCXRvcCAgKz0gZWxlbS5vZmZzZXRUb3A7CgkJCQlsZWZ0ICs9IGVsZW0ub2Zmc2V0TGVmdDsKCgkJCQlpZiAoIGpRdWVyeS5vZmZzZXQuZG9lc05vdEFkZEJvcmRlciAmJiAhKGpRdWVyeS5vZmZzZXQuZG9lc0FkZEJvcmRlckZvclRhYmxlQW5kQ2VsbHMgJiYgcnRhYmxlLnRlc3QoZWxlbS5ub2RlTmFtZSkpICkgewoJCQkJCXRvcCAgKz0gcGFyc2VGbG9hdCggY29tcHV0ZWRTdHlsZS5ib3JkZXJUb3BXaWR0aCAgKSB8fCAwOwoJCQkJCWxlZnQgKz0gcGFyc2VGbG9hdCggY29tcHV0ZWRTdHlsZS5ib3JkZXJMZWZ0V2lkdGggKSB8fCAwOwoJCQkJfQoKCQkJCXByZXZPZmZzZXRQYXJlbnQgPSBvZmZzZXRQYXJlbnQ7CgkJCQlvZmZzZXRQYXJlbnQgPSBlbGVtLm9mZnNldFBhcmVudDsKCQkJfQoKCQkJaWYgKCBqUXVlcnkub2Zmc2V0LnN1YnRyYWN0c0JvcmRlckZvck92ZXJmbG93Tm90VmlzaWJsZSAmJiBjb21wdXRlZFN0eWxlLm92ZXJmbG93ICE9PSAidmlzaWJsZSIgKSB7CgkJCQl0b3AgICs9IHBhcnNlRmxvYXQoIGNvbXB1dGVkU3R5bGUuYm9yZGVyVG9wV2lkdGggICkgfHwgMDsKCQkJCWxlZnQgKz0gcGFyc2VGbG9hdCggY29tcHV0ZWRTdHlsZS5ib3JkZXJMZWZ0V2lkdGggKSB8fCAwOwoJCQl9CgoJCQlwcmV2Q29tcHV0ZWRTdHlsZSA9IGNvbXB1dGVkU3R5bGU7CgkJfQoKCQlpZiAoIHByZXZDb21wdXRlZFN0eWxlLnBvc2l0aW9uID09PSAicmVsYXRpdmUiIHx8IHByZXZDb21wdXRlZFN0eWxlLnBvc2l0aW9uID09PSAic3RhdGljIiApIHsKCQkJdG9wICArPSBib2R5Lm9mZnNldFRvcDsKCQkJbGVmdCArPSBib2R5Lm9mZnNldExlZnQ7CgkJfQoKCQlpZiAoIGpRdWVyeS5vZmZzZXQuc3VwcG9ydHNGaXhlZFBvc2l0aW9uICYmIHByZXZDb21wdXRlZFN0eWxlLnBvc2l0aW9uID09PSAiZml4ZWQiICkgewoJCQl0b3AgICs9IE1hdGgubWF4KCBkb2NFbGVtLnNjcm9sbFRvcCwgYm9keS5zY3JvbGxUb3AgKTsKCQkJbGVmdCArPSBNYXRoLm1heCggZG9jRWxlbS5zY3JvbGxMZWZ0LCBib2R5LnNjcm9sbExlZnQgKTsKCQl9CgoJCXJldHVybiB7IHRvcDogdG9wLCBsZWZ0OiBsZWZ0IH07Cgl9Owp9CgpqUXVlcnkub2Zmc2V0ID0gewoJaW5pdGlhbGl6ZTogZnVuY3Rpb24oKSB7CgkJdmFyIGJvZHkgPSBkb2N1bWVudC5ib2R5LCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSwgaW5uZXJEaXYsIGNoZWNrRGl2LCB0YWJsZSwgdGQsIGJvZHlNYXJnaW5Ub3AgPSBwYXJzZUZsb2F0KCBqUXVlcnkuY3NzKGJvZHksICJtYXJnaW5Ub3AiKSApIHx8IDAsCgkJCWh0bWwgPSAiPGRpdiBzdHlsZT0ncG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO21hcmdpbjowO2JvcmRlcjo1cHggc29saWQgIzAwMDtwYWRkaW5nOjA7d2lkdGg6MXB4O2hlaWdodDoxcHg7Jz48ZGl2PjwvZGl2PjwvZGl2Pjx0YWJsZSBzdHlsZT0ncG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO21hcmdpbjowO2JvcmRlcjo1cHggc29saWQgIzAwMDtwYWRkaW5nOjA7d2lkdGg6MXB4O2hlaWdodDoxcHg7JyBjZWxscGFkZGluZz0nMCcgY2VsbHNwYWNpbmc9JzAnPjx0cj48dGQ+PC90ZD48L3RyPjwvdGFibGU+IjsKCgkJalF1ZXJ5LmV4dGVuZCggY29udGFpbmVyLnN0eWxlLCB7IHBvc2l0aW9uOiAiYWJzb2x1dGUiLCB0b3A6IDAsIGxlZnQ6IDAsIG1hcmdpbjogMCwgYm9yZGVyOiAwLCB3aWR0aDogIjFweCIsIGhlaWdodDogIjFweCIsIHZpc2liaWxpdHk6ICJoaWRkZW4iIH0gKTsKCgkJY29udGFpbmVyLmlubmVySFRNTCA9IGh0bWw7CgkJYm9keS5pbnNlcnRCZWZvcmUoIGNvbnRhaW5lciwgYm9keS5maXJzdENoaWxkICk7CgkJaW5uZXJEaXYgPSBjb250YWluZXIuZmlyc3RDaGlsZDsKCQljaGVja0RpdiA9IGlubmVyRGl2LmZpcnN0Q2hpbGQ7CgkJdGQgPSBpbm5lckRpdi5uZXh0U2libGluZy5maXJzdENoaWxkLmZpcnN0Q2hpbGQ7CgoJCXRoaXMuZG9lc05vdEFkZEJvcmRlciA9IChjaGVja0Rpdi5vZmZzZXRUb3AgIT09IDUpOwoJCXRoaXMuZG9lc0FkZEJvcmRlckZvclRhYmxlQW5kQ2VsbHMgPSAodGQub2Zmc2V0VG9wID09PSA1KTsKCgkJY2hlY2tEaXYuc3R5bGUucG9zaXRpb24gPSAiZml4ZWQiOwoJCWNoZWNrRGl2LnN0eWxlLnRvcCA9ICIyMHB4IjsKCgkJLy8gc2FmYXJpIHN1YnRyYWN0cyBwYXJlbnQgYm9yZGVyIHdpZHRoIGhlcmUgd2hpY2ggaXMgNXB4CgkJdGhpcy5zdXBwb3J0c0ZpeGVkUG9zaXRpb24gPSAoY2hlY2tEaXYub2Zmc2V0VG9wID09PSAyMCB8fCBjaGVja0Rpdi5vZmZzZXRUb3AgPT09IDE1KTsKCQljaGVja0Rpdi5zdHlsZS5wb3NpdGlvbiA9IGNoZWNrRGl2LnN0eWxlLnRvcCA9ICIiOwoKCQlpbm5lckRpdi5zdHlsZS5vdmVyZmxvdyA9ICJoaWRkZW4iOwoJCWlubmVyRGl2LnN0eWxlLnBvc2l0aW9uID0gInJlbGF0aXZlIjsKCgkJdGhpcy5zdWJ0cmFjdHNCb3JkZXJGb3JPdmVyZmxvd05vdFZpc2libGUgPSAoY2hlY2tEaXYub2Zmc2V0VG9wID09PSAtNSk7CgoJCXRoaXMuZG9lc05vdEluY2x1ZGVNYXJnaW5JbkJvZHlPZmZzZXQgPSAoYm9keS5vZmZzZXRUb3AgIT09IGJvZHlNYXJnaW5Ub3ApOwoKCQlib2R5LnJlbW92ZUNoaWxkKCBjb250YWluZXIgKTsKCQlib2R5ID0gY29udGFpbmVyID0gaW5uZXJEaXYgPSBjaGVja0RpdiA9IHRhYmxlID0gdGQgPSBudWxsOwoJCWpRdWVyeS5vZmZzZXQuaW5pdGlhbGl6ZSA9IGpRdWVyeS5ub29wOwoJfSwKCglib2R5T2Zmc2V0OiBmdW5jdGlvbiggYm9keSApIHsKCQl2YXIgdG9wID0gYm9keS5vZmZzZXRUb3AsCgkJCWxlZnQgPSBib2R5Lm9mZnNldExlZnQ7CgoJCWpRdWVyeS5vZmZzZXQuaW5pdGlhbGl6ZSgpOwoKCQlpZiAoIGpRdWVyeS5vZmZzZXQuZG9lc05vdEluY2x1ZGVNYXJnaW5JbkJvZHlPZmZzZXQgKSB7CgkJCXRvcCAgKz0gcGFyc2VGbG9hdCggalF1ZXJ5LmNzcyhib2R5LCAibWFyZ2luVG9wIikgKSB8fCAwOwoJCQlsZWZ0ICs9IHBhcnNlRmxvYXQoIGpRdWVyeS5jc3MoYm9keSwgIm1hcmdpbkxlZnQiKSApIHx8IDA7CgkJfQoKCQlyZXR1cm4geyB0b3A6IHRvcCwgbGVmdDogbGVmdCB9OwoJfSwKCglzZXRPZmZzZXQ6IGZ1bmN0aW9uKCBlbGVtLCBvcHRpb25zLCBpICkgewoJCXZhciBwb3NpdGlvbiA9IGpRdWVyeS5jc3MoIGVsZW0sICJwb3NpdGlvbiIgKTsKCgkJLy8gc2V0IHBvc2l0aW9uIGZpcnN0LCBpbi1jYXNlIHRvcC9sZWZ0IGFyZSBzZXQgZXZlbiBvbiBzdGF0aWMgZWxlbQoJCWlmICggcG9zaXRpb24gPT09ICJzdGF0aWMiICkgewoJCQllbGVtLnN0eWxlLnBvc2l0aW9uID0gInJlbGF0aXZlIjsKCQl9CgoJCXZhciBjdXJFbGVtID0galF1ZXJ5KCBlbGVtICksCgkJCWN1ck9mZnNldCA9IGN1ckVsZW0ub2Zmc2V0KCksCgkJCWN1ckNTU1RvcCA9IGpRdWVyeS5jc3MoIGVsZW0sICJ0b3AiICksCgkJCWN1ckNTU0xlZnQgPSBqUXVlcnkuY3NzKCBlbGVtLCAibGVmdCIgKSwKCQkJY2FsY3VsYXRlUG9zaXRpb24gPSAocG9zaXRpb24gPT09ICJhYnNvbHV0ZSIgJiYgalF1ZXJ5LmluQXJyYXkoJ2F1dG8nLCBbY3VyQ1NTVG9wLCBjdXJDU1NMZWZ0XSkgPiAtMSksCgkJCXByb3BzID0ge30sIGN1clBvc2l0aW9uID0ge30sIGN1clRvcCwgY3VyTGVmdDsKCgkJLy8gbmVlZCB0byBiZSBhYmxlIHRvIGNhbGN1bGF0ZSBwb3NpdGlvbiBpZiBlaXRoZXIgdG9wIG9yIGxlZnQgaXMgYXV0byBhbmQgcG9zaXRpb24gaXMgYWJzb2x1dGUKCQlpZiAoIGNhbGN1bGF0ZVBvc2l0aW9uICkgewoJCQljdXJQb3NpdGlvbiA9IGN1ckVsZW0ucG9zaXRpb24oKTsKCQl9CgoJCWN1clRvcCAgPSBjYWxjdWxhdGVQb3NpdGlvbiA/IGN1clBvc2l0aW9uLnRvcCAgOiBwYXJzZUludCggY3VyQ1NTVG9wLCAgMTAgKSB8fCAwOwoJCWN1ckxlZnQgPSBjYWxjdWxhdGVQb3NpdGlvbiA/IGN1clBvc2l0aW9uLmxlZnQgOiBwYXJzZUludCggY3VyQ1NTTGVmdCwgMTAgKSB8fCAwOwoKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCBvcHRpb25zICkgKSB7CgkJCW9wdGlvbnMgPSBvcHRpb25zLmNhbGwoIGVsZW0sIGksIGN1ck9mZnNldCApOwoJCX0KCgkJaWYgKG9wdGlvbnMudG9wICE9IG51bGwpIHsKCQkJcHJvcHMudG9wID0gKG9wdGlvbnMudG9wIC0gY3VyT2Zmc2V0LnRvcCkgKyBjdXJUb3A7CgkJfQoJCWlmIChvcHRpb25zLmxlZnQgIT0gbnVsbCkgewoJCQlwcm9wcy5sZWZ0ID0gKG9wdGlvbnMubGVmdCAtIGN1ck9mZnNldC5sZWZ0KSArIGN1ckxlZnQ7CgkJfQoKCQlpZiAoICJ1c2luZyIgaW4gb3B0aW9ucyApIHsKCQkJb3B0aW9ucy51c2luZy5jYWxsKCBlbGVtLCBwcm9wcyApOwoJCX0gZWxzZSB7CgkJCWN1ckVsZW0uY3NzKCBwcm9wcyApOwoJCX0KCX0KfTsKCgpqUXVlcnkuZm4uZXh0ZW5kKHsKCXBvc2l0aW9uOiBmdW5jdGlvbigpIHsKCQlpZiAoICF0aGlzWzBdICkgewoJCQlyZXR1cm4gbnVsbDsKCQl9CgoJCXZhciBlbGVtID0gdGhpc1swXSwKCgkJLy8gR2V0ICpyZWFsKiBvZmZzZXRQYXJlbnQKCQlvZmZzZXRQYXJlbnQgPSB0aGlzLm9mZnNldFBhcmVudCgpLAoKCQkvLyBHZXQgY29ycmVjdCBvZmZzZXRzCgkJb2Zmc2V0ICAgICAgID0gdGhpcy5vZmZzZXQoKSwKCQlwYXJlbnRPZmZzZXQgPSBycm9vdC50ZXN0KG9mZnNldFBhcmVudFswXS5ub2RlTmFtZSkgPyB7IHRvcDogMCwgbGVmdDogMCB9IDogb2Zmc2V0UGFyZW50Lm9mZnNldCgpOwoKCQkvLyBTdWJ0cmFjdCBlbGVtZW50IG1hcmdpbnMKCQkvLyBub3RlOiB3aGVuIGFuIGVsZW1lbnQgaGFzIG1hcmdpbjogYXV0byB0aGUgb2Zmc2V0TGVmdCBhbmQgbWFyZ2luTGVmdAoJCS8vIGFyZSB0aGUgc2FtZSBpbiBTYWZhcmkgY2F1c2luZyBvZmZzZXQubGVmdCB0byBpbmNvcnJlY3RseSBiZSAwCgkJb2Zmc2V0LnRvcCAgLT0gcGFyc2VGbG9hdCggalF1ZXJ5LmNzcyhlbGVtLCAibWFyZ2luVG9wIikgKSB8fCAwOwoJCW9mZnNldC5sZWZ0IC09IHBhcnNlRmxvYXQoIGpRdWVyeS5jc3MoZWxlbSwgIm1hcmdpbkxlZnQiKSApIHx8IDA7CgoJCS8vIEFkZCBvZmZzZXRQYXJlbnQgYm9yZGVycwoJCXBhcmVudE9mZnNldC50b3AgICs9IHBhcnNlRmxvYXQoIGpRdWVyeS5jc3Mob2Zmc2V0UGFyZW50WzBdLCAiYm9yZGVyVG9wV2lkdGgiKSApIHx8IDA7CgkJcGFyZW50T2Zmc2V0LmxlZnQgKz0gcGFyc2VGbG9hdCggalF1ZXJ5LmNzcyhvZmZzZXRQYXJlbnRbMF0sICJib3JkZXJMZWZ0V2lkdGgiKSApIHx8IDA7CgoJCS8vIFN1YnRyYWN0IHRoZSB0d28gb2Zmc2V0cwoJCXJldHVybiB7CgkJCXRvcDogIG9mZnNldC50b3AgIC0gcGFyZW50T2Zmc2V0LnRvcCwKCQkJbGVmdDogb2Zmc2V0LmxlZnQgLSBwYXJlbnRPZmZzZXQubGVmdAoJCX07Cgl9LAoKCW9mZnNldFBhcmVudDogZnVuY3Rpb24oKSB7CgkJcmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCkgewoJCQl2YXIgb2Zmc2V0UGFyZW50ID0gdGhpcy5vZmZzZXRQYXJlbnQgfHwgZG9jdW1lbnQuYm9keTsKCQkJd2hpbGUgKCBvZmZzZXRQYXJlbnQgJiYgKCFycm9vdC50ZXN0KG9mZnNldFBhcmVudC5ub2RlTmFtZSkgJiYgalF1ZXJ5LmNzcyhvZmZzZXRQYXJlbnQsICJwb3NpdGlvbiIpID09PSAic3RhdGljIikgKSB7CgkJCQlvZmZzZXRQYXJlbnQgPSBvZmZzZXRQYXJlbnQub2Zmc2V0UGFyZW50OwoJCQl9CgkJCXJldHVybiBvZmZzZXRQYXJlbnQ7CgkJfSk7Cgl9Cn0pOwoKCi8vIENyZWF0ZSBzY3JvbGxMZWZ0IGFuZCBzY3JvbGxUb3AgbWV0aG9kcwpqUXVlcnkuZWFjaCggWyJMZWZ0IiwgIlRvcCJdLCBmdW5jdGlvbiggaSwgbmFtZSApIHsKCXZhciBtZXRob2QgPSAic2Nyb2xsIiArIG5hbWU7CgoJalF1ZXJ5LmZuWyBtZXRob2QgXSA9IGZ1bmN0aW9uKHZhbCkgewoJCXZhciBlbGVtID0gdGhpc1swXSwgd2luOwoKCQlpZiAoICFlbGVtICkgewoJCQlyZXR1cm4gbnVsbDsKCQl9CgoJCWlmICggdmFsICE9PSB1bmRlZmluZWQgKSB7CgkJCS8vIFNldCB0aGUgc2Nyb2xsIG9mZnNldAoJCQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkgewoJCQkJd2luID0gZ2V0V2luZG93KCB0aGlzICk7CgoJCQkJaWYgKCB3aW4gKSB7CgkJCQkJd2luLnNjcm9sbFRvKAoJCQkJCQkhaSA/IHZhbCA6IGpRdWVyeSh3aW4pLnNjcm9sbExlZnQoKSwKCQkJCQkJaSA/IHZhbCA6IGpRdWVyeSh3aW4pLnNjcm9sbFRvcCgpCgkJCQkJKTsKCgkJCQl9IGVsc2UgewoJCQkJCXRoaXNbIG1ldGhvZCBdID0gdmFsOwoJCQkJfQoJCQl9KTsKCQl9IGVsc2UgewoJCQl3aW4gPSBnZXRXaW5kb3coIGVsZW0gKTsKCgkJCS8vIFJldHVybiB0aGUgc2Nyb2xsIG9mZnNldAoJCQlyZXR1cm4gd2luID8gKCJwYWdlWE9mZnNldCIgaW4gd2luKSA/IHdpblsgaSA/ICJwYWdlWU9mZnNldCIgOiAicGFnZVhPZmZzZXQiIF0gOgoJCQkJalF1ZXJ5LnN1cHBvcnQuYm94TW9kZWwgJiYgd2luLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFsgbWV0aG9kIF0gfHwKCQkJCQl3aW4uZG9jdW1lbnQuYm9keVsgbWV0aG9kIF0gOgoJCQkJZWxlbVsgbWV0aG9kIF07CgkJfQoJfTsKfSk7CgpmdW5jdGlvbiBnZXRXaW5kb3coIGVsZW0gKSB7CglyZXR1cm4galF1ZXJ5LmlzV2luZG93KCBlbGVtICkgPwoJCWVsZW0gOgoJCWVsZW0ubm9kZVR5cGUgPT09IDkgPwoJCQllbGVtLmRlZmF1bHRWaWV3IHx8IGVsZW0ucGFyZW50V2luZG93IDoKCQkJZmFsc2U7Cn0KCgoKCi8vIENyZWF0ZSBpbm5lckhlaWdodCwgaW5uZXJXaWR0aCwgb3V0ZXJIZWlnaHQgYW5kIG91dGVyV2lkdGggbWV0aG9kcwpqUXVlcnkuZWFjaChbICJIZWlnaHQiLCAiV2lkdGgiIF0sIGZ1bmN0aW9uKCBpLCBuYW1lICkgewoKCXZhciB0eXBlID0gbmFtZS50b0xvd2VyQ2FzZSgpOwoKCS8vIGlubmVySGVpZ2h0IGFuZCBpbm5lcldpZHRoCglqUXVlcnkuZm5bImlubmVyIiArIG5hbWVdID0gZnVuY3Rpb24oKSB7CgkJcmV0dXJuIHRoaXNbMF0gPwoJCQlwYXJzZUZsb2F0KCBqUXVlcnkuY3NzKCB0aGlzWzBdLCB0eXBlLCAicGFkZGluZyIgKSApIDoKCQkJbnVsbDsKCX07CgoJLy8gb3V0ZXJIZWlnaHQgYW5kIG91dGVyV2lkdGgKCWpRdWVyeS5mblsib3V0ZXIiICsgbmFtZV0gPSBmdW5jdGlvbiggbWFyZ2luICkgewoJCXJldHVybiB0aGlzWzBdID8KCQkJcGFyc2VGbG9hdCggalF1ZXJ5LmNzcyggdGhpc1swXSwgdHlwZSwgbWFyZ2luID8gIm1hcmdpbiIgOiAiYm9yZGVyIiApICkgOgoJCQludWxsOwoJfTsKCglqUXVlcnkuZm5bIHR5cGUgXSA9IGZ1bmN0aW9uKCBzaXplICkgewoJCS8vIEdldCB3aW5kb3cgd2lkdGggb3IgaGVpZ2h0CgkJdmFyIGVsZW0gPSB0aGlzWzBdOwoJCWlmICggIWVsZW0gKSB7CgkJCXJldHVybiBzaXplID09IG51bGwgPyBudWxsIDogdGhpczsKCQl9CgoJCWlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHNpemUgKSApIHsKCQkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiggaSApIHsKCQkJCXZhciBzZWxmID0galF1ZXJ5KCB0aGlzICk7CgkJCQlzZWxmWyB0eXBlIF0oIHNpemUuY2FsbCggdGhpcywgaSwgc2VsZlsgdHlwZSBdKCkgKSApOwoJCQl9KTsKCQl9CgoJCWlmICggalF1ZXJ5LmlzV2luZG93KCBlbGVtICkgKSB7CgkJCS8vIEV2ZXJ5b25lIGVsc2UgdXNlIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCBvciBkb2N1bWVudC5ib2R5IGRlcGVuZGluZyBvbiBRdWlya3MgdnMgU3RhbmRhcmRzIG1vZGUKCQkJLy8gM3JkIGNvbmRpdGlvbiBhbGxvd3MgTm9raWEgc3VwcG9ydCwgYXMgaXQgc3VwcG9ydHMgdGhlIGRvY0VsZW0gcHJvcCBidXQgbm90IENTUzFDb21wYXQKCQkJdmFyIGRvY0VsZW1Qcm9wID0gZWxlbS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbICJjbGllbnQiICsgbmFtZSBdOwoJCQlyZXR1cm4gZWxlbS5kb2N1bWVudC5jb21wYXRNb2RlID09PSAiQ1NTMUNvbXBhdCIgJiYgZG9jRWxlbVByb3AgfHwKCQkJCWVsZW0uZG9jdW1lbnQuYm9keVsgImNsaWVudCIgKyBuYW1lIF0gfHwgZG9jRWxlbVByb3A7CgoJCS8vIEdldCBkb2N1bWVudCB3aWR0aCBvciBoZWlnaHQKCQl9IGVsc2UgaWYgKCBlbGVtLm5vZGVUeXBlID09PSA5ICkgewoJCQkvLyBFaXRoZXIgc2Nyb2xsW1dpZHRoL0hlaWdodF0gb3Igb2Zmc2V0W1dpZHRoL0hlaWdodF0sIHdoaWNoZXZlciBpcyBncmVhdGVyCgkJCXJldHVybiBNYXRoLm1heCgKCQkJCWVsZW0uZG9jdW1lbnRFbGVtZW50WyJjbGllbnQiICsgbmFtZV0sCgkJCQllbGVtLmJvZHlbInNjcm9sbCIgKyBuYW1lXSwgZWxlbS5kb2N1bWVudEVsZW1lbnRbInNjcm9sbCIgKyBuYW1lXSwKCQkJCWVsZW0uYm9keVsib2Zmc2V0IiArIG5hbWVdLCBlbGVtLmRvY3VtZW50RWxlbWVudFsib2Zmc2V0IiArIG5hbWVdCgkJCSk7CgoJCS8vIEdldCBvciBzZXQgd2lkdGggb3IgaGVpZ2h0IG9uIHRoZSBlbGVtZW50CgkJfSBlbHNlIGlmICggc2l6ZSA9PT0gdW5kZWZpbmVkICkgewoJCQl2YXIgb3JpZyA9IGpRdWVyeS5jc3MoIGVsZW0sIHR5cGUgKSwKCQkJCXJldCA9IHBhcnNlRmxvYXQoIG9yaWcgKTsKCgkJCXJldHVybiBqUXVlcnkuaXNOYU4oIHJldCApID8gb3JpZyA6IHJldDsKCgkJLy8gU2V0IHRoZSB3aWR0aCBvciBoZWlnaHQgb24gdGhlIGVsZW1lbnQgKGRlZmF1bHQgdG8gcGl4ZWxzIGlmIHZhbHVlIGlzIHVuaXRsZXNzKQoJCX0gZWxzZSB7CgkJCXJldHVybiB0aGlzLmNzcyggdHlwZSwgdHlwZW9mIHNpemUgPT09ICJzdHJpbmciID8gc2l6ZSA6IHNpemUgKyAicHgiICk7CgkJfQoJfTsKCn0pOwoKCndpbmRvdy5qUXVlcnkgPSB3aW5kb3cuJCA9IGpRdWVyeTsKfSkod2luZG93KTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/media/docs/media/js/shBrushJScript.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIFN5bnRheEhpZ2hsaWdodGVyCiAqIGh0dHA6Ly9hbGV4Z29yYmF0Y2hldi5jb20vU3ludGF4SGlnaGxpZ2h0ZXIKICoKICogU3ludGF4SGlnaGxpZ2h0ZXIgaXMgZG9uYXRpb253YXJlLiBJZiB5b3UgYXJlIHVzaW5nIGl0LCBwbGVhc2UgZG9uYXRlLgogKiBodHRwOi8vYWxleGdvcmJhdGNoZXYuY29tL1N5bnRheEhpZ2hsaWdodGVyL2RvbmF0ZS5odG1sCiAqCiAqIEB2ZXJzaW9uCiAqIDMuMC44MyAoSnVseSAwMiAyMDEwKQogKiAKICogQGNvcHlyaWdodAogKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMCBBbGV4IEdvcmJhdGNoZXYuCiAqCiAqIEBsaWNlbnNlCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzLgogKi8KOyhmdW5jdGlvbigpCnsKCS8vIENvbW1vbkpTCgl0eXBlb2YocmVxdWlyZSkgIT0gJ3VuZGVmaW5lZCcgPyBTeW50YXhIaWdobGlnaHRlciA9IHJlcXVpcmUoJ3NoQ29yZScpLlN5bnRheEhpZ2hsaWdodGVyIDogbnVsbDsKCglmdW5jdGlvbiBCcnVzaCgpCgl7CgkJdmFyIGtleXdvcmRzID0JJ2JyZWFrIGNhc2UgY2F0Y2ggY29udGludWUgJyArCgkJCQkJCSdkZWZhdWx0IGRlbGV0ZSBkbyBlbHNlIGZhbHNlICAnICsKCQkJCQkJJ2ZvciBmdW5jdGlvbiBpZiBpbiBpbnN0YW5jZW9mICcgKwoJCQkJCQknbmV3IG51bGwgcmV0dXJuIHN1cGVyIHN3aXRjaCAnICsKCQkJCQkJJ3RoaXMgdGhyb3cgdHJ1ZSB0cnkgdHlwZW9mIHZhciB3aGlsZSB3aXRoJwoJCQkJCQk7CgoJCXZhciByID0gU3ludGF4SGlnaGxpZ2h0ZXIucmVnZXhMaWI7CgkJCgkJdGhpcy5yZWdleExpc3QgPSBbCgkJCXsgcmVnZXg6IHIubXVsdGlMaW5lRG91YmxlUXVvdGVkU3RyaW5nLAkJCQkJY3NzOiAnc3RyaW5nJyB9LAkJCS8vIGRvdWJsZSBxdW90ZWQgc3RyaW5ncwoJCQl7IHJlZ2V4OiByLm11bHRpTGluZVNpbmdsZVF1b3RlZFN0cmluZywJCQkJCWNzczogJ3N0cmluZycgfSwJCQkvLyBzaW5nbGUgcXVvdGVkIHN0cmluZ3MKCQkJeyByZWdleDogci5zaW5nbGVMaW5lQ0NvbW1lbnRzLAkJCQkJCQljc3M6ICdjb21tZW50cycgfSwJCQkvLyBvbmUgbGluZSBjb21tZW50cwoJCQl7IHJlZ2V4OiByLm11bHRpTGluZUNDb21tZW50cywJCQkJCQkJY3NzOiAnY29tbWVudHMnIH0sCQkJLy8gbXVsdGlsaW5lIGNvbW1lbnRzCgkJCXsgcmVnZXg6IC9ccyojLiovZ20sCQkJCQkJCQkJY3NzOiAncHJlcHJvY2Vzc29yJyB9LAkJLy8gcHJlcHJvY2Vzc29yIHRhZ3MgbGlrZSAjcmVnaW9uIGFuZCAjZW5kcmVnaW9uCgkJCXsgcmVnZXg6IG5ldyBSZWdFeHAodGhpcy5nZXRLZXl3b3JkcyhrZXl3b3JkcyksICdnbScpLAljc3M6ICdrZXl3b3JkJyB9CQkJLy8ga2V5d29yZHMKCQkJXTsKCQoJCXRoaXMuZm9ySHRtbFNjcmlwdChyLnNjcmlwdFNjcmlwdFRhZ3MpOwoJfTsKCglCcnVzaC5wcm90b3R5cGUJPSBuZXcgU3ludGF4SGlnaGxpZ2h0ZXIuSGlnaGxpZ2h0ZXIoKTsKCUJydXNoLmFsaWFzZXMJPSBbJ2pzJywgJ2pzY3JpcHQnLCAnamF2YXNjcmlwdCddOwoKCVN5bnRheEhpZ2hsaWdodGVyLmJydXNoZXMuSlNjcmlwdCA9IEJydXNoOwoKCS8vIENvbW1vbkpTCgl0eXBlb2YoZXhwb3J0cykgIT0gJ3VuZGVmaW5lZCcgPyBleHBvcnRzLkJydXNoID0gQnJ1c2ggOiBudWxsOwp9KSgpOwo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/media/docs/media/js/shCore.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIFN5bnRheEhpZ2hsaWdodGVyCiAqIGh0dHA6Ly9hbGV4Z29yYmF0Y2hldi5jb20vU3ludGF4SGlnaGxpZ2h0ZXIKICoKICogU3ludGF4SGlnaGxpZ2h0ZXIgaXMgZG9uYXRpb253YXJlLiBJZiB5b3UgYXJlIHVzaW5nIGl0LCBwbGVhc2UgZG9uYXRlLgogKiBodHRwOi8vYWxleGdvcmJhdGNoZXYuY29tL1N5bnRheEhpZ2hsaWdodGVyL2RvbmF0ZS5odG1sCiAqCiAqIEB2ZXJzaW9uCiAqIDMuMC44MyAoSnVseSAwMiAyMDEwKQogKiAKICogQGNvcHlyaWdodAogKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMCBBbGV4IEdvcmJhdGNoZXYuCiAqCiAqIEBsaWNlbnNlCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzLgogKi8KZXZhbChmdW5jdGlvbihwLGEsYyxrLGUsZCl7ZT1mdW5jdGlvbihjKXtyZXR1cm4oYzxhPycnOmUocGFyc2VJbnQoYy9hKSkpKygoYz1jJWEpPjM1P1N0cmluZy5mcm9tQ2hhckNvZGUoYysyOSk6Yy50b1N0cmluZygzNikpfTtpZighJycucmVwbGFjZSgvXi8sU3RyaW5nKSl7d2hpbGUoYy0tKXtkW2UoYyldPWtbY118fGUoYyl9az1bZnVuY3Rpb24oZSl7cmV0dXJuIGRbZV19XTtlPWZ1bmN0aW9uKCl7cmV0dXJuJ1xcdysnfTtjPTF9O3doaWxlKGMtLSl7aWYoa1tjXSl7cD1wLnJlcGxhY2UobmV3IFJlZ0V4cCgnXFxiJytlKGMpKydcXGInLCdnJyksa1tjXSl9fXJldHVybiBwfSgnSyBNO0koTSkxUyAyVSgiMmFcJ3QgNGsgTSA0SyAyZyAzbCA0RyA0SCIpOyg2KCl7NiByKGYsZSl7SSghTS4xUihmKSkxUyAzbSgiM3MgMTUgNFIiKTtLIGE9Zi4xdztmPU0oZi4xbSx0KGYpKyhlfHwiIikpO0koYSlmLjF3PXsxbTphLjFtLDE5OmEuMTk/YS4xOS4xYSgwKTpOfTtIIGZ9NiB0KGYpe0goZi4xSj8iZyI6IiIpKyhmLjRzPyJpIjoiIikrKGYuNHA/Im0iOiIiKSsoZi40dj8ieCI6IiIpKyhmLjNuPyJ5IjoiIil9NiBCKGYsZSxhLGIpe0sgYz11LkwsZCxoLGc7dj1SOzVLe08oO2MtLTspe2c9dVtjXTtJKGEmZy4zciYmKCFnLjJwfHxnLjJwLlcoYikpKXtnLjJxLjEyPWU7SSgoaD1nLjJxLlgoZikpJiZoLlA9PT1lKXtkPXszazpnLjJiLlcoYixoLGEpLDFDOmh9OzFOfX19fTV2KGkpezFTIGl9NXF7dj0xMX1IIGR9NiBwKGYsZSxhKXtJKDNiLlouMWkpSCBmLjFpKGUsYSk7TyhhPWF8fDA7YTxmLkw7YSsrKUkoZlthXT09PWUpSCBhO0gtMX1NPTYoZixlKXtLIGE9W10sYj1NLjFCLGM9MCxkLGg7SShNLjFSKGYpKXtJKGUhPT0xZCkxUyAzbSgiMmFcJ3QgNXIgNUkgNUYgNUIgNUMgMTUgNUUgNXAiKTtIIHIoZil9SSh2KTFTIDJVKCIyYVwndCBXIDNsIE0gNTkgNW0gNWcgNXggNWkiKTtlPWV8fCIiO08oZD17Mk46MTEsMTk6W10sMks6NihnKXtIIGUuMWkoZyk+LTF9LDNkOjYoZyl7ZSs9Z319O2M8Zi5MOylJKGg9QihmLGMsYixkKSl7YS5VKGguM2spO2MrPWguMUNbMF0uTHx8MX1ZIEkoaD1uLlguVyh6W2JdLGYuMWEoYykpKXthLlUoaFswXSk7Yys9aFswXS5MfVl7aD1mLjNhKGMpO0koaD09PSJbIiliPU0uMkk7WSBJKGg9PT0iXSIpYj1NLjFCO2EuVShoKTtjKyt9YT0xNShhLjFLKCIiKSxuLlEuVyhlLHcsIiIpKTthLjF3PXsxbTpmLDE5OmQuMk4/ZC4xOTpOfTtIIGF9O00uM3Y9IjEuNS4wIjtNLjJJPTE7TS4xQj0yO0sgQz0vXFwkKD86KFxcZFxcZD98WyQmYFwnXSl8eyhbJFxcd10rKX0pL2csdz0vW141aF0rfChbXFxzXFxTXSkoPz1bXFxzXFxTXSpcXDEpL2csQT0vXig/Ols/KitdfHtcXGQrKD86LFxcZCopP30pXFw/Py8sdj0xMSx1PVtdLG49e1g6MTUuWi5YLDFBOjE1LlouMUEsMUM6MXIuWi4xQyxROjFyLlouUSwxZToxci5aLjFlfSx4PW4uWC5XKC8oKT8/LywiIilbMV09PT0xZCxEPTYoKXtLIGY9L14vZztuLjFBLlcoZiwiIik7SCFmLjEyfSgpLHk9Nigpe0sgZj0veC9nO24uUS5XKCJ4IixmLCIiKTtIIWYuMTJ9KCksRT0xNS5aLjNuIT09MWQsej17fTt6W00uMkldPS9eKD86XFxcXCg/OlswLTNdWzAtN117MCwyfXxbNC03XVswLTddP3x4W1xcMjktMjYtZl17Mn18dVtcXDI5LTI2LWZdezR9fGNbQS0zby16XXxbXFxzXFxTXSkpLzt6W00uMUJdPS9eKD86XFxcXCg/OjAoPzpbMC0zXVswLTddezAsMn18WzQtN11bMC03XT8pP3xbMS05XVxcZCp8eFtcXDI5LTI2LWZdezJ9fHVbXFwyOS0yNi1mXXs0fXxjW0EtM28tel18W1xcc1xcU10pfFxcKFxcP1s6PSFdfFs/KitdXFw/fHtcXGQrKD86LFxcZCopP31cXD8/KS87TS4xaD02KGYsZSxhLGIpe3UuVSh7MnE6cihmLCJnIisoRT8ieSI6IiIpKSwyYjplLDNyOmF8fE0uMUIsMnA6Ynx8Tn0pfTtNLjJuPTYoZixlKXtLIGE9ZisiLyIrKGV8fCIiKTtIIE0uMm5bYV18fChNLjJuW2FdPU0oZixlKSl9O00uM2M9NihmKXtIIHIoZiwiZyIpfTtNLjVsPTYoZil7SCBmLlEoL1stW1xcXXt9KCkqKz8uLFxcXFxeJHwjXFxzXS9nLCJcXFxcJCYiKX07TS41ZT02KGYsZSxhLGIpe2U9cihlLCJnIisoYiYmRT8ieSI6IiIpKTtlLjEyPWE9YXx8MDtmPWUuWChmKTtIIGI/ZiYmZi5QPT09YT9mOk46Zn07TS4zcT02KCl7TS4xaD02KCl7MVMgMlUoIjJhXCd0IDU1IDFoIDU0IDNxIil9fTtNLjFSPTYoZil7SCA1My5aLjFxLlcoZik9PT0iWzJtIDE1XSJ9O00uM3A9NihmLGUsYSxiKXtPKEsgYz1yKGUsImciKSxkPS0xLGg7aD1jLlgoZik7KXthLlcoYixoLCsrZCxmLGMpO2MuMTI9PT1oLlAmJmMuMTIrK31JKGUuMUopZS4xMj0wfTtNLjU3PTYoZixlKXtIIDYgYShiLGMpe0sgZD1lW2NdLjFJP2VbY106ezFJOmVbY119LGg9cihkLjFJLCJnIiksZz1bXSxpO08oaT0wO2k8Yi5MO2krKylNLjNwKGJbaV0saCw2KGspe2cuVShkLjNqP2tbZC4zal18fCIiOmtbMF0pfSk7SCBjPT09ZS5MLTF8fCFnLkw/ZzphKGcsYysxKX0oW2ZdLDApfTsxNS5aLjFwPTYoZixlKXtIIEouWChlWzBdKX07MTUuWi5XPTYoZixlKXtIIEouWChlKX07MTUuWi5YPTYoZil7SyBlPW4uWC4xcChKLDE0KSxhO0koZSl7SSgheCYmZS5MPjEmJnAoZSwiIik+LTEpe2E9MTUoSi4xbSxuLlEuVyh0KEopLCJnIiwiIikpO24uUS5XKGYuMWEoZS5QKSxhLDYoKXtPKEsgYz0xO2M8MTQuTC0yO2MrKylJKDE0W2NdPT09MWQpZVtjXT0xZH0pfUkoSi4xdyYmSi4xdy4xOSlPKEsgYj0xO2I8ZS5MO2IrKylJKGE9Si4xdy4xOVtiLTFdKWVbYV09ZVtiXTshRCYmSi4xSiYmIWVbMF0uTCYmSi4xMj5lLlAmJkouMTItLX1IIGV9O0koIUQpMTUuWi4xQT02KGYpeyhmPW4uWC5XKEosZikpJiZKLjFKJiYhZlswXS5MJiZKLjEyPmYuUCYmSi4xMi0tO0ghIWZ9OzFyLlouMUM9NihmKXtNLjFSKGYpfHwoZj0xNShmKSk7SShmLjFKKXtLIGU9bi4xQy4xcChKLDE0KTtmLjEyPTA7SCBlfUggZi5YKEopfTsxci5aLlE9NihmLGUpe0sgYT1NLjFSKGYpLGIsYztJKGEmJjFqIGUuNTgoKT09PSIzZiImJmUuMWkoIiR7Iik9PT0tMSYmeSlIIG4uUS4xcChKLDE0KTtJKGEpe0koZi4xdyliPWYuMXcuMTl9WSBmKz0iIjtJKDFqIGU9PT0iNiIpYz1uLlEuVyhKLGYsNigpe0koYil7MTRbMF09MWYgMXIoMTRbMF0pO08oSyBkPTA7ZDxiLkw7ZCsrKUkoYltkXSkxNFswXVtiW2RdXT0xNFtkKzFdfUkoYSYmZi4xSilmLjEyPTE0WzE0LkwtMl0rMTRbMF0uTDtIIGUuMXAoTiwxNCl9KTtZe2M9SisiIjtjPW4uUS5XKGMsZiw2KCl7SyBkPTE0O0ggbi5RLlcoZSxDLDYoaCxnLGkpe0koZyk1YihnKXsyNCIkIjpIIiQiOzI0IiYiOkggZFswXTsyNCJgIjpIIGRbZC5MLTFdLjFhKDAsZFtkLkwtMl0pOzI0IlwnIjpIIGRbZC5MLTFdLjFhKGRbZC5MLTJdK2RbMF0uTCk7NWE6aT0iIjtnPStnO0koIWcpSCBoO08oO2c+ZC5MLTM7KXtpPTFyLlouMWEuVyhnLC0xKStpO2c9MVEuM2koZy8xMCl9SChnP2RbZ118fCIiOiIkIikraX1Ze2c9K2k7SShnPD1kLkwtMylIIGRbZ107Zz1iP3AoYixpKTotMTtIIGc+LTE/ZFtnKzFdOmh9fSl9KX1JKGEmJmYuMUopZi4xMj0wO0ggY307MXIuWi4xZT02KGYsZSl7SSghTS4xUihmKSlIIG4uMWUuMXAoSiwxNCk7SyBhPUorIiIsYj1bXSxjPTAsZCxoO0koZT09PTFkfHwrZTwwKWU9NUQ7WXtlPTFRLjNpKCtlKTtJKCFlKUhbXX1PKGY9TS4zYyhmKTtkPWYuWChhKTspe0koZi4xMj5jKXtiLlUoYS4xYShjLGQuUCkpO2QuTD4xJiZkLlA8YS5MJiYzYi5aLlUuMXAoYixkLjFhKDEpKTtoPWRbMF0uTDtjPWYuMTI7SShiLkw+PWUpMU59Zi4xMj09PWQuUCYmZi4xMisrfUkoYz09PWEuTCl7SSghbi4xQS5XKGYsIiIpfHxoKWIuVSgiIil9WSBiLlUoYS4xYShjKSk7SCBiLkw+ZT9iLjFhKDAsZSk6Yn07TS4xaCgvXFwoXFw/I1teKV0qXFwpLyw2KGYpe0ggbi4xQS5XKEEsZi4yUy4xYShmLlArZlswXS5MKSk/IiI6Iig/OikifSk7TS4xaCgvXFwoKD8hXFw/KS8sNigpe0ouMTkuVShOKTtIIigifSk7TS4xaCgvXFwoXFw/PChbJFxcd10rKT4vLDYoZil7Si4xOS5VKGZbMV0pO0ouMk49UjtIIigifSk7TS4xaCgvXFxcXGs8KFtcXHckXSspPi8sNihmKXtLIGU9cChKLjE5LGZbMV0pO0ggZT4tMT8iXFxcXCIrKGUrMSkrKDNSKGYuMlMuM2EoZi5QK2ZbMF0uTCkpPyIiOiIoPzopIik6ZlswXX0pO00uMWgoL1xcW1xcXj9dLyw2KGYpe0ggZlswXT09PSJbXSI/IlxcXFxiXFxcXEIiOiJbXFxcXHNcXFxcU10ifSk7TS4xaCgvXlxcKFxcPyhbNUFdKylcXCkvLDYoZil7Si4zZChmWzFdKTtIIiJ9KTtNLjFoKC8oPzpcXHMrfCMuKikrLyw2KGYpe0ggbi4xQS5XKEEsZi4yUy4xYShmLlArZlswXS5MKSk/IiI6Iig/OikifSxNLjFCLDYoKXtIIEouMksoIngiKX0pO00uMWgoL1xcLi8sNigpe0giW1xcXFxzXFxcXFNdIn0sTS4xQiw2KCl7SCBKLjJLKCJzIil9KX0pKCk7MWogMmUhPSIxZCImJigyZS5NPU0pO0sgMXY9NigpezYgcihhLGIpe2EuMWwuMWkoYikhPS0xfHwoYS4xbCs9IiAiK2IpfTYgdChhKXtIIGEuMWkoIjNlIik9PTA/YToiM2UiK2F9NiBCKGEpe0ggZS4xWS4yQVt0KGEpXX02IHAoYSxiLGMpe0koYT09TilIIE47SyBkPWMhPVI/YS4zRzpbYS4yR10saD17IiMiOiIxYyIsIi4iOiIxbCJ9W2IuMW8oMCwxKV18fCIzaCIsZyxpO2c9aCE9IjNoIj9iLjFvKDEpOmIuNXUoKTtJKChhW2hdfHwiIikuMWkoZykhPS0xKUggYTtPKGE9MDtkJiZhPGQuTCYmaT09TjthKyspaT1wKGRbYV0sYixjKTtIIGl9NiBDKGEsYil7SyBjPXt9LGQ7TyhkIDJnIGEpY1tkXT1hW2RdO08oZCAyZyBiKWNbZF09YltkXTtIIGN9NiB3KGEsYixjLGQpezYgaChnKXtnPWd8fDFQLjV5O0koIWcuMUYpe2cuMUY9Zy41MjtnLjNOPTYoKXtKLjV3PTExfX1jLlcoZHx8MVAsZyl9YS4zZz9hLjNnKCI0VSIrYixoKTphLjR5KGIsaCwxMSl9NiBBKGEsYil7SyBjPWUuMVkuMmosZD1OO0koYz09Til7Yz17fTtPKEsgaCAyZyBlLjFVKXtLIGc9ZS4xVVtoXTtkPWcuNHg7SShkIT1OKXtnLjFWPWguNHcoKTtPKGc9MDtnPGQuTDtnKyspY1tkW2ddXT1ofX1lLjFZLjJqPWN9ZD1lLjFVW2NbYV1dO2Q9PU4mJmIhPTExJiYxUC4xWChlLjEzLjF4LjFYKyhlLjEzLjF4LjNFK2EpKTtIIGR9NiB2KGEsYil7TyhLIGM9YS4xZSgiXFxuIiksZD0wO2Q8Yy5MO2QrKyljW2RdPWIoY1tkXSxkKTtIIGMuMUsoIlxcbiIpfTYgdShhLGIpe0koYT09Tnx8YS5MPT0wfHxhPT0iXFxuIilIIGE7YT1hLlEoLzwvZywiJjF5OyIpO2E9YS5RKC8gezIsfS9nLDYoYyl7TyhLIGQ9IiIsaD0wO2g8Yy5MLTE7aCsrKWQrPWUuMTMuMVc7SCBkKyIgIn0pO0koYiE9TilhPXYoYSw2KGMpe0koYy5MPT0wKUgiIjtLIGQ9IiI7Yz1jLlEoL14oJjJzO3wgKSsvLDYoaCl7ZD1oO0giIn0pO0koYy5MPT0wKUggZDtIIGQrXCc8MTcgMWc9IlwnK2IrXCciPlwnK2MrIjwvMTc+In0pO0ggYX02IG4oYSxiKXthLjFlKCJcXG4iKTtPKEsgYz0iIixkPTA7ZDw1MDtkKyspYys9IiAgICAgICAgICAgICAgICAgICAgIjtIIGE9dihhLDYoaCl7SShoLjFpKCJcXHQiKT09LTEpSCBoO08oSyBnPTA7KGc9aC4xaSgiXFx0IikpIT0tMTspaD1oLjFvKDAsZykrYy4xbygwLGItZyViKStoLjFvKGcrMSxoLkwpO0ggaH0pfTYgeChhKXtIIGEuUSgvXlxccyt8XFxzKyQvZywiIil9NiBEKGEsYil7SShhLlA8Yi5QKUgtMTtZIEkoYS5QPmIuUClIIDE7WSBJKGEuTDxiLkwpSC0xO1kgSShhLkw+Yi5MKUggMTtIIDB9NiB5KGEsYil7NiBjKGspe0gga1swXX1PKEsgZD1OLGg9W10sZz1iLjJEP2IuMkQ6YzsoZD1iLjFJLlgoYSkpIT1OOyl7SyBpPWcoZCxiKTtJKDFqIGk9PSIzZiIpaT1bMWYgZS4yTChpLGQuUCxiLjIzKV07aD1oLjFPKGkpfUggaH02IEUoYSl7SyBiPS8oLiopKCgmMUc7fCYxeTspLiopLztIIGEuUShlLjNBLjNNLDYoYyl7SyBkPSIiLGg9TjtJKGg9Yi5YKGMpKXtjPWhbMV07ZD1oWzJdfUhcJzxhIDJoPSJcJytjK1wnIj5cJytjKyI8L2E+IitkfSl9NiB6KCl7TyhLIGE9MUUuMzYoIjFrIiksYj1bXSxjPTA7YzxhLkw7YysrKWFbY10uM3M9PSIyMCImJmIuVShhW2NdKTtIIGJ9NiBmKGEpe2E9YS4xRjtLIGI9cChhLCIuMjAiLFIpO2E9cChhLCIuM08iLFIpO0sgYz0xRS40aSgiM3QiKTtJKCEoIWF8fCFifHxwKGEsIjN0IikpKXtCKGIuMWMpO3IoYiwiMW0iKTtPKEsgZD1hLjNHLGg9W10sZz0wO2c8ZC5MO2crKyloLlUoZFtnXS40enx8ZFtnXS40QSk7aD1oLjFLKCJcXHIiKTtjLjM5KDFFLjREKGgpKTthLjM5KGMpO2MuMkMoKTtjLjRDKCk7dyhjLCI0dSIsNigpe2MuMkcuNEUoYyk7Yi4xbD1iLjFsLlEoIjFtIiwiIil9KX19SSgxaiAzRiE9IjFkIiYmMWogTT09IjFkIilNPTNGKCJNIikuTTtLIGU9ezJ2OnsiMWctMjciOiIiLCIyaS0xcyI6MSwiMnotMXMtMnQiOjExLDFNOk4sMXQ6TiwiNDItNDUiOlIsIjQzLTIyIjo0LDF1OlIsMTY6UiwiM1YtMTciOlIsMmw6MTEsIjQxLTQwIjpSLDJrOjExLCIxei0xayI6MTF9LDEzOnsxVzoiJjJzOyIsMk06Uiw0NjoxMSw0NDoxMSwzNDoiNG4iLDF4OnsyMToiNG8gMW0iLDJQOiI/IiwxWDoiMXZcXG5cXG4iLDNFOiI0clwndCA0dCAxRCBPOiAiLDRnOiI0bSA0QlwndCA1MSBPIDF6LTFrIDRGOiAiLDM3OlwnPCE0VCAxeiA0UyAiLS8vNFYvLzNIIDRXIDEuMCA0Wi8vNFkiICIxWjovLzJ5LjNMLjNLLzRYLzNJLzNILzNJLTRQLjRKIj48MXogNEk9IjFaOi8vMnkuM0wuM0svNEwvNUwiPjwzSj48NE4gMVotNE09IjVHLTVNIiA2Sz0iMk8vMXo7IDZKPTZJLTgiIC8+PDF0PjZMIDF2PC8xdD48LzNKPjwzQiAxTD0iMjUtNk06NlEsNlAsNk8sNk4tNkY7NnktMmY6IzZ4OzJmOiM2dzsyNS0yMjo2djsyTy0zRDozQzsiPjxUIDFMPSIyTy0zRDozQzszdy0zMjoxLjZ6OyI+PFQgMUw9IjI1LTIyOjZBLTZFOyI+MXY8L1Q+PFQgMUw9IjI1LTIyOi42Qzszdy02Qjo2UjsiPjxUPjN2IDMuMC43NiAoNzIgNzMgM3gpPC9UPjxUPjxhIDJoPSIxWjovLzN1LjJ3LzF2IiAxRj0iMzgiIDFMPSIyZjojM3kiPjFaOi8vM3UuMncvMXY8L2E+PC9UPjxUPjcwIDE3IDZVIDcxLjwvVD48VD42VCA2WC0zeCA2WSA2RC48L1Q+PC9UPjxUPjZ0IDYxIDYwIEogMWssIDVaIDxhIDJoPSI2dTovLzJ5LjYyLjJ3LzYzLTY2LzY1PzY0PTVYLTVXJjVQPTVPIiAxTD0iMmY6IzN5Ij41UjwvYT4gNVYgPDJSLz41VSA1VCA1UyE8L1Q+PC9UPjwvM0I+PC8xej5cJ319LDFZOnsyajpOLDJBOnt9fSwxVTp7fSwzQTp7Nm46L1xcL1xcKltcXHNcXFNdKj9cXCpcXC8vMmMsNm06L1xcL1xcLy4qJC8yYyw2bDovIy4qJC8yYyw2azovIihbXlxcXFwiXFxuXXxcXFxcLikqIi9nLDZvOi9cJyhbXlxcXFxcJ1xcbl18XFxcXC4pKlwnL2csNnA6MWYgTShcJyIoW15cXFxcXFxcXCJdfFxcXFxcXFxcLikqIlwnLCIzeiIpLDZzOjFmIE0oIlwnKFteXFxcXFxcXFxcJ118XFxcXFxcXFwuKSpcJyIsIjN6IiksNnE6LygmMXk7fDwpIS0tW1xcc1xcU10qPy0tKCYxRzt8PikvMmMsM006L1xcdys6XFwvXFwvW1xcdy0uXFwvPyUmPTpAO10qL2csNmE6ezE4Oi8oJjF5O3w8KVxcPz0/L2csMWI6L1xcPygmMUc7fD4pL2d9LDY5OnsxODovKCYxeTt8PCklPT8vZywxYjovJSgmMUc7fD4pL2d9LDZkOnsxODovKCYxeTt8PClcXHMqMWsuKj8oJjFHO3w+KS8yVCwxYjovKCYxeTt8PClcXC9cXHMqMWtcXHMqKCYxRzt8PikvMlR9fSwxNjp7MUg6NihhKXs2IGIoaSxrKXtIIGUuMTYuMm8oaSxrLGUuMTMuMXhba10pfU8oSyBjPVwnPFQgMWc9IjE2Ij5cJyxkPWUuMTYuMngsaD1kLjJYLGc9MDtnPGguTDtnKyspYys9KGRbaFtnXV0uMUh8fGIpKGEsaFtnXSk7Yys9IjwvVD4iO0ggY30sMm86NihhLGIsYyl7SFwnPDJXPjxhIDJoPSIjIiAxZz0iNmUgNmhcJytiKyIgIitiK1wnIj5cJytjKyI8L2E+PC8yVz4ifSwyYjo2KGEpe0sgYj1hLjFGLGM9Yi4xbHx8IiI7Yj1CKHAoYiwiLjIwIixSKS4xYyk7SyBkPTYoaCl7SChoPTE1KGgrIjZmKFxcXFx3KykiKS5YKGMpKT9oWzFdOk59KCI2ZyIpO2ImJmQmJmUuMTYuMnhbZF0uMkIoYik7YS4zTigpfSwyeDp7Mlg6WyIyMSIsIjJQIl0sMjE6ezFIOjYoYSl7SShhLlYoIjJsIikhPVIpSCIiO0sgYj1hLlYoIjF0Iik7SCBlLjE2LjJvKGEsIjIxIixiP2I6ZS4xMy4xeC4yMSl9LDJCOjYoYSl7YT0xRS42aih0KGEuMWMpKTthLjFsPWEuMWwuUSgiNDciLCIiKX19LDJQOnsyQjo2KCl7SyBhPSI2OD0wIjthKz0iLCAxOD0iKygzMS4zMC0zMykvMisiLCAzMj0iKygzMS4yWi0yWSkvMisiLCAzMD0zMywgMlo9MlkiO2E9YS5RKC9eLC8sIiIpO2E9MVAuNlooIiIsIjM4IixhKTthLjJDKCk7SyBiPWEuMUU7Yi42VyhlLjEzLjF4LjM3KTtiLjZWKCk7YS4yQygpfX19fSwzNTo2KGEsYil7SyBjO0koYiljPVtiXTtZe2M9MUUuMzYoZS4xMy4zNCk7TyhLIGQ9W10saD0wO2g8Yy5MO2grKylkLlUoY1toXSk7Yz1kfWM9YztkPVtdO0koZS4xMy4yTSljPWMuMU8oeigpKTtJKGMuTD09PTApSCBkO08oaD0wO2g8Yy5MO2grKyl7TyhLIGc9Y1toXSxpPWEsaz1jW2hdLjFsLGo9M1cgMCxsPXt9LG09MWYgTSgiXlxcXFxbKD88MlY+KC4qPykpXFxcXF0kIikscz0xZiBNKCIoPzwyNz5bXFxcXHctXSspXFxcXHMqOlxcXFxzKig/PDFUPltcXFxcdy0lI10rfFxcXFxbLio/XFxcXF18XFwiLio/XFwifFwnLio/XCcpXFxcXHMqOz8iLCJnIik7KGo9cy5YKGspKSE9Tjspe0sgbz1qLjFULlEoL15bXCciXXxbXCciXSQvZywiIik7SShvIT1OJiZtLjFBKG8pKXtvPW0uWChvKTtvPW8uMlYuTD4wP28uMlYuMWUoL1xccyosXFxzKi8pOltdfWxbai4yN109b31nPXsxRjpnLDFuOkMoaSxsKX07Zy4xbi4xRCE9TiYmZC5VKGcpfUggZH0sMU06NihhLGIpe0sgYz1KLjM1KGEsYiksZD1OLGg9ZS4xMztJKGMuTCE9PTApTyhLIGc9MDtnPGMuTDtnKyspe2I9Y1tnXTtLIGk9Yi4xRixrPWIuMW4saj1rLjFELGw7SShqIT1OKXtJKGtbIjF6LTFrIl09PSJSInx8ZS4ydlsiMXotMWsiXT09Uil7ZD0xZiBlLjRsKGopO2o9IjRPIn1ZIEkoZD1BKGopKWQ9MWYgZDtZIDZIO2w9aS4zWDtJKGguMk0pe2w9bDtLIG09eChsKSxzPTExO0kobS4xaSgiPCFbNkdbIik9PTApe209bS40aCg5KTtzPVJ9SyBvPW0uTDtJKG0uMWkoIl1dXFw+Iik9PW8tMyl7bT1tLjRoKDAsby0zKTtzPVJ9bD1zP206bH1JKChpLjF0fHwiIikhPSIiKWsuMXQ9aS4xdDtrLjFEPWo7ZC4yUShrKTtiPWQuMkYobCk7SSgoaS4xY3x8IiIpIT0iIiliLjFjPWkuMWM7aS4yRy43NChiLGkpfX19LDJFOjYoYSl7dygxUCwiNGsiLDYoKXtlLjFNKGEpfSl9fTtlLjJFPWUuMkU7ZS4xTT1lLjFNO2UuMkw9NihhLGIsYyl7Si4xVD1hO0ouUD1iO0ouTD1hLkw7Si4yMz1jO0ouMVY9Tn07ZS4yTC5aLjFxPTYoKXtIIEouMVR9O2UuNGw9NihhKXs2IGIoaixsKXtPKEsgbT0wO208ai5MO20rKylqW21dLlArPWx9SyBjPUEoYSksZCxoPTFmIGUuMVUuNVksZz1KLGk9IjJGIDFIIDJRIi4xZSgiICIpO0koYyE9Til7ZD0xZiBjO08oSyBrPTA7azxpLkw7aysrKSg2KCl7SyBqPWlba107Z1tqXT02KCl7SCBoW2pdLjFwKGgsMTQpfX0pKCk7ZC4yOD09Tj8xUC4xWChlLjEzLjF4LjFYKyhlLjEzLjF4LjRnK2EpKTpoLjJKLlUoezFJOmQuMjguMTcsMkQ6NihqKXtPKEsgbD1qLjE3LG09W10scz1kLjJKLG89ai5QK2ouMTguTCxGPWQuMjgscSxHPTA7RzxzLkw7RysrKXtxPXkobCxzW0ddKTtiKHEsbyk7bT1tLjFPKHEpfUkoRi4xOCE9TiYmai4xOCE9Til7cT15KGouMTgsRi4xOCk7YihxLGouUCk7bT1tLjFPKHEpfUkoRi4xYiE9TiYmai4xYiE9Til7cT15KGouMWIsRi4xYik7YihxLGouUCtqWzBdLjVRKGouMWIpKTttPW0uMU8ocSl9TyhqPTA7ajxtLkw7aisrKW1bal0uMVY9Yy4xVjtIIG19fSl9fTtlLjRqPTYoKXt9O2UuNGouWj17Vjo2KGEsYil7SyBjPUouMW5bYV07Yz1jPT1OP2I6YztLIGQ9eyJSIjpSLCIxMSI6MTF9W2NdO0ggZD09Tj9jOmR9LDNZOjYoYSl7SCAxRS40aShhKX0sNGM6NihhLGIpe0sgYz1bXTtJKGEhPU4pTyhLIGQ9MDtkPGEuTDtkKyspSSgxaiBhW2RdPT0iMm0iKWM9Yy4xTyh5KGIsYVtkXSkpO0ggSi40ZShjLjZiKEQpKX0sNGU6NihhKXtPKEsgYj0wO2I8YS5MO2IrKylJKGFbYl0hPT1OKU8oSyBjPWFbYl0sZD1jLlArYy5MLGg9YisxO2g8YS5MJiZhW2JdIT09TjtoKyspe0sgZz1hW2hdO0koZyE9PU4pSShnLlA+ZCkxTjtZIEkoZy5QPT1jLlAmJmcuTD5jLkwpYVtiXT1OO1kgSShnLlA+PWMuUCYmZy5QPGQpYVtoXT1OfUggYX0sNGQ6NihhKXtLIGI9W10sYz0ydShKLlYoIjJpLTFzIikpO3YoYSw2KGQsaCl7Yi5VKGgrYyl9KTtIIGJ9LDNVOjYoYSl7SyBiPUouVigiMU0iLFtdKTtJKDFqIGIhPSIybSImJmIuVT09TiliPVtiXTthOnthPWEuMXEoKTtLIGM9M1cgMDtPKGM9Yz0xUS42YyhjfHwwLDApO2M8Yi5MO2MrKylJKGJbY109PWEpe2I9YzsxTiBhfWI9LTF9SCBiIT0tMX0sMnI6NihhLGIsYyl7YT1bIjFzIiwiNmkiK2IsIlAiK2EsIjZyIisoYiUyPT0wPzE6MikuMXEoKV07Si4zVShiKSYmYS5VKCI2NyIpO2I9PTAmJmEuVSgiMU4iKTtIXCc8VCAxZz0iXCcrYS4xSygiICIpK1wnIj5cJytjKyI8L1Q+In0sM1E6NihhLGIpe0sgYz0iIixkPWEuMWUoIlxcbiIpLkwsaD0ydShKLlYoIjJpLTFzIikpLGc9Si5WKCIyei0xcy0ydCIpO0koZz09UilnPShoK2QtMSkuMXEoKS5MO1kgSSgzUihnKT09UilnPTA7TyhLIGk9MDtpPGQ7aSsrKXtLIGs9Yj9iW2ldOmgraSxqO0koaz09MClqPWUuMTMuMVc7WXtqPWc7TyhLIGw9ay4xcSgpO2wuTDxqOylsPSIwIitsO2o9bH1hPWo7Yys9Si4ycihpLGssYSl9SCBjfSw0OTo2KGEsYil7YT14KGEpO0sgYz1hLjFlKCJcXG4iKTtKLlYoIjJ6LTFzLTJ0Iik7SyBkPTJ1KEouVigiMmktMXMiKSk7YT0iIjtPKEsgaD1KLlYoIjFEIiksZz0wO2c8Yy5MO2crKyl7SyBpPWNbZ10saz0vXigmMnM7fFxccykrLy5YKGkpLGo9TixsPWI/YltnXTpkK2c7SShrIT1OKXtqPWtbMF0uMXEoKTtpPWkuMW8oai5MKTtqPWouUSgiICIsZS4xMy4xVyl9aT14KGkpO0koaS5MPT0wKWk9ZS4xMy4xVzthKz1KLjJyKGcsbCwoaiE9Tj9cJzwxNyAxZz0iXCcraCtcJyA1TiI+XCcraisiPC8xNz4iOiIiKStpKX1IIGF9LDRmOjYoYSl7SCBhPyI8NGE+IithKyI8LzRhPiI6IiJ9LDRiOjYoYSxiKXs2IGMobCl7SChsPWw/bC4xVnx8ZzpnKT9sKyIgIjoiIn1PKEsgZD0wLGg9IiIsZz1KLlYoIjFEIiwiIiksaT0wO2k8Yi5MO2krKyl7SyBrPWJbaV0sajtJKCEoaz09PU58fGsuTD09PTApKXtqPWMoayk7aCs9dShhLjFvKGQsay5QLWQpLGorIjQ4IikrdShrLjFULGoray4yMyk7ZD1rLlAray5MKyhrLjc1fHwwKX19aCs9dShhLjFvKGQpLGMoKSsiNDgiKTtIIGh9LDFIOjYoYSl7SyBiPSIiLGM9WyIyMCJdLGQ7SShKLlYoIjJrIik9PVIpSi4xbi4xNj1KLjFuLjF1PTExOzFsPSIyMCI7Si5WKCIybCIpPT1SJiZjLlUoIjQ3Iik7SSgoMXU9Si5WKCIxdSIpKT09MTEpYy5VKCI2UyIpO2MuVShKLlYoIjFnLTI3IikpO2MuVShKLlYoIjFEIikpO2E9YS5RKC9eWyBdKltcXG5dK3xbXFxuXSpbIF0qJC9nLCIiKS5RKC9cXHIvZywiICIpO2I9Si5WKCI0My0yMiIpO0koSi5WKCI0Mi00NSIpPT1SKWE9bihhLGIpO1l7TyhLIGg9IiIsZz0wO2c8YjtnKyspaCs9IiAiO2E9YS5RKC9cXHQvZyxoKX1hPWE7YTp7Yj1hPWE7aD0vPDJSXFxzKlxcLz8+fCYxeTsyUlxccypcXC8/JjFHOy8yVDtJKGUuMTMuNDY9PVIpYj1iLlEoaCwiXFxuIik7SShlLjEzLjQ0PT1SKWI9Yi5RKGgsIiIpO2I9Yi4xZSgiXFxuIik7aD0vXlxccyovO2c9NFE7TyhLIGk9MDtpPGIuTCYmZz4wO2krKyl7SyBrPWJbaV07SSh4KGspLkwhPTApe2s9aC5YKGspO0koaz09Til7YT1hOzFOIGF9Zz0xUS40cShrWzBdLkwsZyl9fUkoZz4wKU8oaT0wO2k8Yi5MO2krKyliW2ldPWJbaV0uMW8oZyk7YT1iLjFLKCJcXG4iKX1JKDF1KWQ9Si40ZChhKTtiPUouNGMoSi4ySixhKTtiPUouNGIoYSxiKTtiPUouNDkoYixkKTtJKEouVigiNDEtNDAiKSliPUUoYik7MWogMkghPSIxZCImJjJILjNTJiYySC4zUy4xQygvNXMvKSYmYy5VKCI1dCIpO0ggYj1cJzxUIDFjPSJcJyt0KEouMWMpK1wnIiAxZz0iXCcrYy4xSygiICIpK1wnIj5cJysoSi5WKCIxNiIpP2UuMTYuMUgoSik6IiIpK1wnPDNaIDV6PSIwIiA1SD0iMCIgNUo9IjAiPlwnK0ouNGYoSi5WKCIxdCIpKSsiPDNUPjwzUD4iKygxdT9cJzwyZCAxZz0iMXUiPlwnK0ouM1EoYSkrIjwvMmQ+IjoiIikrXCc8MmQgMWc9IjE3Ij48VCAxZz0iM08iPlwnK2IrIjwvVD48LzJkPjwvM1A+PC8zVD48LzNaPjwvVD4ifSwyRjo2KGEpe0koYT09PU4pYT0iIjtKLjE3PWE7SyBiPUouM1koIlQiKTtiLjNYPUouMUgoYSk7Si5WKCIxNiIpJiZ3KHAoYiwiLjE2IiksIjVjIixlLjE2LjJiKTtKLlYoIjNWLTE3IikmJncocChiLCIuMTciKSwiNTYiLGYpO0ggYn0sMlE6NihhKXtKLjFjPSIiKzFRLjVkKDFRLjVuKCkqNWspLjFxKCk7ZS4xWS4yQVt0KEouMWMpXT1KO0ouMW49QyhlLjJ2LGF8fHt9KTtJKEouVigiMmsiKT09UilKLjFuLjE2PUouMW4uMXU9MTF9LDVqOjYoYSl7YT1hLlEoL15cXHMrfFxccyskL2csIiIpLlEoL1xccysvZywifCIpO0giXFxcXGIoPzoiK2ErIilcXFxcYiJ9LDVmOjYoYSl7Si4yOD17MTg6ezFJOmEuMTgsMjM6IjFrIn0sMWI6ezFJOmEuMWIsMjM6IjFrIn0sMTc6MWYgTSgiKD88MTg+IithLjE4LjFtKyIpKD88MTc+Lio/KSg/PDFiPiIrYS4xYi4xbSsiKSIsIjVvIil9fX07SCBlfSgpOzFqIDJlIT0iMWQiJiYoMmUuMXY9MXYpOycsNjIsNDQxLCd8fHx8fHxmdW5jdGlvbnx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHxyZXR1cm58aWZ8dGhpc3x2YXJ8bGVuZ3RofFhSZWdFeHB8bnVsbHxmb3J8aW5kZXh8cmVwbGFjZXx0cnVlfHxkaXZ8cHVzaHxnZXRQYXJhbXxjYWxsfGV4ZWN8ZWxzZXxwcm90b3R5cGV8fGZhbHNlfGxhc3RJbmRleHxjb25maWd8YXJndW1lbnRzfFJlZ0V4cHx0b29sYmFyfGNvZGV8bGVmdHxjYXB0dXJlTmFtZXN8c2xpY2V8cmlnaHR8aWR8dW5kZWZpbmVkfHNwbGl0fG5ld3xjbGFzc3xhZGRUb2tlbnxpbmRleE9mfHR5cGVvZnxzY3JpcHR8Y2xhc3NOYW1lfHNvdXJjZXxwYXJhbXN8c3Vic3RyfGFwcGx5fHRvU3RyaW5nfFN0cmluZ3xsaW5lfHRpdGxlfGd1dHRlcnxTeW50YXhIaWdobGlnaHRlcnxfeHJlZ2V4cHxzdHJpbmdzfGx0fGh0bWx8dGVzdHxPVVRTSURFX0NMQVNTfG1hdGNofGJydXNofGRvY3VtZW50fHRhcmdldHxndHxnZXRIdG1sfHJlZ2V4fGdsb2JhbHxqb2lufHN0eWxlfGhpZ2hsaWdodHxicmVha3xjb25jYXR8d2luZG93fE1hdGh8aXNSZWdFeHB8dGhyb3d8dmFsdWV8YnJ1c2hlc3xicnVzaE5hbWV8c3BhY2V8YWxlcnR8dmFyc3xodHRwfHN5bnRheGhpZ2hsaWdodGVyfGV4cGFuZFNvdXJjZXxzaXplfGNzc3xjYXNlfGZvbnR8RmF8bmFtZXxodG1sU2NyaXB0fGRBfGNhbnxoYW5kbGVyfGdtfHRkfGV4cG9ydHN8Y29sb3J8aW58aHJlZnxmaXJzdHxkaXNjb3ZlcmVkQnJ1c2hlc3xsaWdodHxjb2xsYXBzZXxvYmplY3R8Y2FjaGV8Z2V0QnV0dG9uSHRtbHx0cmlnZ2VyfHBhdHRlcm58Z2V0TGluZUh0bWx8bmJzcHxudW1iZXJzfHBhcnNlSW50fGRlZmF1bHRzfGNvbXxpdGVtc3x3d3d8cGFkfGhpZ2hsaWdodGVyc3xleGVjdXRlfGZvY3VzfGZ1bmN8YWxsfGdldERpdnxwYXJlbnROb2RlfG5hdmlnYXRvcnxJTlNJREVfQ0xBU1N8cmVnZXhMaXN0fGhhc0ZsYWd8TWF0Y2h8dXNlU2NyaXB0VGFnc3xoYXNOYW1lZENhcHR1cmV8dGV4dHxoZWxwfGluaXR8YnJ8aW5wdXR8Z2l8RXJyb3J8dmFsdWVzfHNwYW58bGlzdHwyNTB8aGVpZ2h0fHdpZHRofHNjcmVlbnx0b3B8NTAwfHRhZ05hbWV8ZmluZEVsZW1lbnRzfGdldEVsZW1lbnRzQnlUYWdOYW1lfGFib3V0RGlhbG9nfF9ibGFua3xhcHBlbmRDaGlsZHxjaGFyQXR8QXJyYXl8Y29weUFzR2xvYmFsfHNldEZsYWd8aGlnaGxpZ2h0ZXJffHN0cmluZ3xhdHRhY2hFdmVudHxub2RlTmFtZXxmbG9vcnxiYWNrcmVmfG91dHB1dHx0aGV8VHlwZUVycm9yfHN0aWNreXxaYXxpdGVyYXRlfGZyZWV6ZVRva2Vuc3xzY29wZXx0eXBlfHRleHRhcmVhfGFsZXhnb3JiYXRjaGV2fHZlcnNpb258bWFyZ2lufDIwMTB8MDA1ODk2fGdzfHJlZ2V4TGlifGJvZHl8Y2VudGVyfGFsaWdufG5vQnJ1c2h8cmVxdWlyZXxjaGlsZE5vZGVzfERURHx4aHRtbDF8aGVhZHxvcmd8dzN8dXJsfHByZXZlbnREZWZhdWx0fGNvbnRhaW5lcnx0cnxnZXRMaW5lTnVtYmVyc0h0bWx8aXNOYU58dXNlckFnZW50fHRib2R5fGlzTGluZUhpZ2hsaWdodGVkfHF1aWNrfHZvaWR8aW5uZXJIVE1MfGNyZWF0ZXx0YWJsZXxsaW5rc3xhdXRvfHNtYXJ0fHRhYnxzdHJpcEJyc3x0YWJzfGJsb2dnZXJNb2RlfGNvbGxhcHNlZHxwbGFpbnxnZXRDb2RlTGluZXNIdG1sfGNhcHRpb258Z2V0TWF0Y2hlc0h0bWx8ZmluZE1hdGNoZXN8ZmlndXJlT3V0TGluZU51bWJlcnN8cmVtb3ZlTmVzdGVkTWF0Y2hlc3xnZXRUaXRsZUh0bWx8YnJ1c2hOb3RIdG1sU2NyaXB0fHN1YnN0cmluZ3xjcmVhdGVFbGVtZW50fEhpZ2hsaWdodGVyfGxvYWR8SHRtbFNjcmlwdHxCcnVzaHxwcmV8ZXhwYW5kfG11bHRpbGluZXxtaW58Q2FufGlnbm9yZUNhc2V8ZmluZHxibHVyfGV4dGVuZGVkfHRvTG93ZXJDYXNlfGFsaWFzZXN8YWRkRXZlbnRMaXN0ZW5lcnxpbm5lclRleHR8dGV4dENvbnRlbnR8d2FzbnxzZWxlY3R8Y3JlYXRlVGV4dE5vZGV8cmVtb3ZlQ2hpbGR8b3B0aW9ufHNhbWV8ZnJhbWV8eG1sbnN8ZHRkfHR3aWNlfDE5OTl8ZXF1aXZ8bWV0YXxodG1sc2NyaXB0fHRyYW5zaXRpb25hbHwxRTN8ZXhwZWN0ZWR8UFVCTElDfERPQ1RZUEV8b258VzNDfFhIVE1MfFRSfEVOfFRyYW5zaXRpb25hbHx8Y29uZmlndXJlZHxzcmNFbGVtZW50fE9iamVjdHxhZnRlcnxydW58ZGJsY2xpY2t8bWF0Y2hDaGFpbnx2YWx1ZU9mfGNvbnN0cnVjdG9yfGRlZmF1bHR8c3dpdGNofGNsaWNrfHJvdW5kfGV4ZWNBdHxmb3JIdG1sU2NyaXB0fHRva2VufGdpbXl8ZnVuY3Rpb25zfGdldEtleXdvcmRzfDFFNnxlc2NhcGV8d2l0aGlufHJhbmRvbXxzZ2l8YW5vdGhlcnxmaW5hbGx5fHN1cHBseXxNU0lFfGllfHRvVXBwZXJDYXNlfGNhdGNofHJldHVyblZhbHVlfGRlZmluaXRpb258ZXZlbnR8Ym9yZGVyfGltc3h8Y29uc3RydWN0aW5nfG9uZXxJbmZpbml0eXxmcm9tfHdoZW58Q29udGVudHxjZWxscGFkZGluZ3xmbGFnc3xjZWxsc3BhY2luZ3x0cnl8eGh0bWx8VHlwZXxzcGFjZXN8MjkzMDQwMnxob3N0ZWRfYnV0dG9uX2lkfGxhc3RJbmRleE9mfGRvbmF0ZXxhY3RpdmV8ZGV2ZWxvcG1lbnR8a2VlcHx0b3x4Y2xpY2t8X3N8WG1sfHBsZWFzZXxsaWtlfHlvdXxwYXlwYWx8Y2dpfGNtZHx3ZWJzY3J8YmlufGhpZ2hsaWdodGVkfHNjcm9sbGJhcnN8YXNwU2NyaXB0VGFnc3xwaHBTY3JpcHRUYWdzfHNvcnR8bWF4fHNjcmlwdFNjcmlwdFRhZ3N8dG9vbGJhcl9pdGVtfF98Y29tbWFuZHxjb21tYW5kX3xudW1iZXJ8Z2V0RWxlbWVudEJ5SWR8ZG91YmxlUXVvdGVkU3RyaW5nfHNpbmdsZUxpbmVQZXJsQ29tbWVudHN8c2luZ2xlTGluZUNDb21tZW50c3xtdWx0aUxpbmVDQ29tbWVudHN8c2luZ2xlUXVvdGVkU3RyaW5nfG11bHRpTGluZURvdWJsZVF1b3RlZFN0cmluZ3x4bWxDb21tZW50c3xhbHR8bXVsdGlMaW5lU2luZ2xlUXVvdGVkU3RyaW5nfElmfGh0dHBzfDFlbXwwMDB8ZmZmfGJhY2tncm91bmR8NWVtfHh4fGJvdHRvbXw3NWVtfEdvcmJhdGNoZXZ8bGFyZ2V8c2VyaWZ8Q0RBVEF8Y29udGludWV8dXRmfGNoYXJzZXR8Y29udGVudHxBYm91dHxmYW1pbHl8c2Fuc3xIZWx2ZXRpY2F8QXJpYWx8R2VuZXZhfDNlbXxub2d1dHRlcnxDb3B5cmlnaHR8c3ludGF4fGNsb3NlfHdyaXRlfDIwMDR8QWxleHxvcGVufEphdmFTY3JpcHR8aGlnaGxpZ2h0ZXJ8SnVseXwwMnxyZXBsYWNlQ2hpbGR8b2Zmc2V0fDgzJy5zcGxpdCgnfCcpLDAse30pKQo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/media/docs/media/license/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/media/docs/media/license/Syntax Highlighter</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Q29weXJpZ2h0IChjKSAyMDAzLCAyMDA0IEppbSBXZWlyaWNoCgpQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcKYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCiJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLApkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8KcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCnRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKClRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlCmluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgoKVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCkVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgpNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORApOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFCkxJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04KT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OCldJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/media/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/media/images/insert.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABIAAAAQCAYAAAFsAR/KAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MUQyQTUxRDVEQjlGMTFERkIzRkRDN0MyRTEwNDA5MUEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MUQyQTUxRDZEQjlGMTFERkIzRkRDN0MyRTEwNDA5MUEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxRDJBNTFEM0RCOUYxMURGQjNGREM3QzJFMTA0MDkxQSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxRDJBNTFENERCOUYxMURGQjNGREM3QzJFMTA0MDkxQSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PjdrxQIAAAPRSURBVHjaYlBxmMHQturGf1XHGQxMf/79ZfjNysrw99dfDoAAYgzN33yMU17ckuHck2//k6df/A8QQIwgNc4Oqkck9RSsGf7+Y1gyZS8j058/fxm27bxhw8jIyDC3Z7v9v3//GQACiAFk6rbTz/+nTzn7X8l2qgATBzszw6e/TAwcPJwMv37/+8HEwsqy8B/DfwYQMPMx/M708eO3+G1brnzUV+BjuLjrMiNAADGqAW1jZGZisLJSOuHsqWN+69kXhg+ffzH8Adq8Y8FBEaAJb1l+/PpTNn9qaAcnKxPj/Y9/GZiZGBmADmGwUOFneO2s/erxg7cMjIq2UxlAVmloSZ5JybAzvvLwI8ObDz8Zfv76zbBz4WEZFhbmpxBFQAByPtD/DAlptv8XzT9WwMzIMJGJiQksBxBAjCB/ff/xW2DxrPD3D19+Y7gENOnDl18M10/fO/722XsrBqDVLCysTAxMvxiZ/7KyMXz+/4OBkYOdgYuRhYGdk42JEei+/0ArmFiA5v779+8rLycL3NH/gRDI//MXGKQgwOLmrP7XxkyOgY2RAQ7+/PnH4GivbM0gxPfvxoFrFUzLVp/nZmZnZXoO9BEMsADD7fLr3wx3T95eDOR2MXGys/xIz10t8xdo939IqDOwsjIzXDlw7eyvb7/jQWJgP3JysD7NSFtmz8vNxsDDycpw7/z9j++evTOBmcwEY7CyMh2qL19b8PfdR4aLJ+8KMCC5ESBA3eQP00QUx/Hvu3tXrvYcpDUk6iAJIRYXEtNEGrcm2goLRolxYGNxligLu9GJzREXF8OEpm4wdXAwYrSxIRLStNoWuLTcvR7355XfI1DSqC+5u+m+v+/38/s+Pp57A1UIdVzhp/L30h+fLmQz7cMj/LbV42GfuHlHVLiwh4jmfy9VPlfLtfs8xvdOflSWFCuDM2infJiEdNwADQprk4DjhbTGCBFRiaIIcR1Ei8mTmPSSVJYeiXPSe0IaCcLvE98LQwaSlxIGavtdDByaIyUwfsXCL1NPCuHPWVZM6JoeU2HYtdsrWuqy9XL5xd1nU7euot4UaLU9HDgBbHK2RxXtiABhIOGTK0bTDVq2oO+fqo3tUuW1L/zn7DoVTllz3TB+Iz2ytrSYy1sXTdRa4p9CqiJOR+DrRrnYabYf6AbvKir95p5BIx4T2Ttj648eZ0YPSKRB7mzXh8k1xQabn77t7P6sz3DOfwwkHxA6vQoyVADxcHp28m2hcDM+nOBYffelW/ywNU937r1Gy2Hnrfi/EPrNk4iZ5ivJegi9YFFTEcgV0/CX0DEErblCk0wougAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/media/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/media/js/ColReorder.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogRmlsZTogICAgICAgIENvbFJlb3JkZXIuanMKICogVmVyc2lvbjogICAgIDEuMC42CiAqIENWUzogICAgICAgICAkSWQkCiAqIERlc2NyaXB0aW9uOiBDb250cm9scyBmb3IgY29sdW1uIHZpc2libGl0eSBpbiBEYXRhVGFibGVzCiAqIEF1dGhvcjogICAgICBBbGxhbiBKYXJkaW5lICh3d3cuc3ByeW1lZGlhLmNvLnVrKQogKiBDcmVhdGVkOiAgICAgV2VkIFNlcCAxNSAxODoyMzoyOSBCU1QgMjAxMAogKiBNb2RpZmllZDogICAgJERhdGUkIGJ5ICRBdXRob3IkCiAqIExhbmd1YWdlOiAgICBKYXZhc2NyaXB0CiAqIExpY2Vuc2U6ICAgICBHUEwgdjIgb3IgQlNEIDMgcG9pbnQgc3R5bGUKICogUHJvamVjdDogICAgIERhdGFUYWJsZXMKICogQ29udGFjdDogICAgIHd3dy5zcHJ5bWVkaWEuY28udWsvY29udGFjdAogKiAKICogQ29weXJpZ2h0IDIwMTAtMjAxMSBBbGxhbiBKYXJkaW5lLCBhbGwgcmlnaHRzIHJlc2VydmVkLgogKgogKiBUaGlzIHNvdXJjZSBmaWxlIGlzIGZyZWUgc29mdHdhcmUsIHVuZGVyIGVpdGhlciB0aGUgR1BMIHYyIGxpY2Vuc2Ugb3IgYQogKiBCU0Qgc3R5bGUgbGljZW5zZSwgYXZhaWxhYmxlIGF0OgogKiAgIGh0dHA6Ly9kYXRhdGFibGVzLm5ldC9saWNlbnNlX2dwbDIKICogICBodHRwOi8vZGF0YXRhYmxlcy5uZXQvbGljZW5zZV9ic2QKICoKICovCgoKKGZ1bmN0aW9uKCQsIHdpbmRvdywgZG9jdW1lbnQpIHsKCgovKioKICogU3dpdGNoIHRoZSBrZXkgdmFsdWUgcGFpcmluZyBvZiBhbiBpbmRleCBhcnJheSB0byBiZSB2YWx1ZSBrZXkgKGkuZS4gdGhlIG9sZCB2YWx1ZSBpcyBub3cgdGhlCiAqIGtleSkuIEZvciBleGFtcGxlIGNvbnNpZGVyIFsgMiwgMCwgMSBdIHRoaXMgd291bGQgYmUgcmV0dXJuZWQgYXMgWyAxLCAyLCAwIF0uCiAqICBAbWV0aG9kICBmbkludmVydEtleVZhbHVlcwogKiAgQHBhcmFtICAgYXJyYXkgYUluIEFycmF5IHRvIHN3aXRjaCBhcm91bmQKICogIEByZXR1cm5zIGFycmF5CiAqLwpmdW5jdGlvbiBmbkludmVydEtleVZhbHVlcyggYUluICkKewoJdmFyIGFSZXQ9W107Cglmb3IgKCB2YXIgaT0wLCBpTGVuPWFJbi5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJewoJCWFSZXRbIGFJbltpXSBdID0gaTsKCX0KCXJldHVybiBhUmV0Owp9CgoKLyoqCiAqIE1vZGlmeSBhbiBhcnJheSBieSBzd2l0Y2hpbmcgdGhlIHBvc2l0aW9uIG9mIHR3byBlbGVtZW50cwogKiAgQG1ldGhvZCAgZm5BcnJheVN3aXRjaAogKiAgQHBhcmFtICAgYXJyYXkgYUFycmF5IEFycmF5IHRvIGNvbnNpZGVyLCB3aWxsIGJlIG1vZGlmaWVkIGJ5IHJlZmVyZW5jZSAoaS5lLiBubyByZXR1cm4pCiAqICBAcGFyYW0gICBpbnQgaUZyb20gRnJvbSBwb2ludAogKiAgQHBhcmFtICAgaW50IGlUbyBJbnNlcnQgcG9pbnQKICogIEByZXR1cm5zIHZvaWQKICovCmZ1bmN0aW9uIGZuQXJyYXlTd2l0Y2goIGFBcnJheSwgaUZyb20sIGlUbyApCnsKCXZhciBtU3RvcmUgPSBhQXJyYXkuc3BsaWNlKCBpRnJvbSwgMSApWzBdOwoJYUFycmF5LnNwbGljZSggaVRvLCAwLCBtU3RvcmUgKTsKfQoKCi8qKgogKiBTd2l0Y2ggdGhlIHBvc2l0aW9ucyBvZiBub2RlcyBpbiBhIHBhcmVudCBub2RlIChub3RlIHRoaXMgaXMgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIGZvciAKICogdGFibGUgcm93cykuIE5vdGUgdGhpcyBmdW5jdGlvbiBjb25zaWRlcnMgYWxsIGVsZW1lbnQgbm9kZXMgdW5kZXIgdGhlIHBhcmVudCEKICogIEBtZXRob2QgIGZuRG9tU3dpdGNoCiAqICBAcGFyYW0gICBzdHJpbmcgc1RhZyBUYWcgdG8gY29uc2lkZXIKICogIEBwYXJhbSAgIGludCBpRnJvbSBFbGVtZW50IHRvIG1vdmUKICogIEBwYXJhbSAgIGludCBQb2ludCB0byBlbGVtZW50IHRoZSBlbGVtZW50IHRvIChiZWZvcmUgdGhpcyBwb2ludCksIGNhbiBiZSBudWxsIGZvciBhcHBlbmQKICogIEByZXR1cm5zIHZvaWQKICovCmZ1bmN0aW9uIGZuRG9tU3dpdGNoKCBuUGFyZW50LCBpRnJvbSwgaVRvICkKewoJdmFyIGFuVGFncyA9IFtdOwoJZm9yICggdmFyIGk9MCwgaUxlbj1uUGFyZW50LmNoaWxkTm9kZXMubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCXsKCQlpZiAoIG5QYXJlbnQuY2hpbGROb2Rlc1tpXS5ub2RlVHlwZSA9PSAxICkKCQl7CgkJCWFuVGFncy5wdXNoKCBuUGFyZW50LmNoaWxkTm9kZXNbaV0gKTsKCQl9Cgl9Cgl2YXIgblN0b3JlID0gYW5UYWdzWyBpRnJvbSBdOwoJCglpZiAoIGlUbyAhPT0gbnVsbCApCgl7CgkJblBhcmVudC5pbnNlcnRCZWZvcmUoIG5TdG9yZSwgYW5UYWdzW2lUb10gKTsKCX0KCWVsc2UKCXsKCQluUGFyZW50LmFwcGVuZENoaWxkKCBuU3RvcmUgKTsKCX0KfQoKCgovKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqCiAqIERhdGFUYWJsZXMgcGx1Zy1pbiBBUEkgZnVuY3Rpb25zCiAqCiAqIFRoaXMgYXJlIHJlcXVpcmVkIGJ5IENvbFJlb3JkZXIgaW4gb3JkZXIgdG8gcGVyZm9ybSB0aGUgdGFza3MgcmVxdWlyZWQsIGFuZCBhbHNvIGtlZXAgdGhpcwogKiBjb2RlIHBvcnRhYmxlLCB0byBiZSB1c2VkIGZvciBvdGhlciBjb2x1bW4gcmVvcmRlcmluZyBwcm9qZWN0cyB3aXRoIERhdGFUYWJsZXMsIGlmIG5lZWRlZC4KICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKi8KCgovKioKICogUGx1Zy1pbiBmb3IgRGF0YVRhYmxlcyB3aGljaCB3aWxsIHJlb3JkZXIgdGhlIGludGVybmFsIGNvbHVtbiBzdHJ1Y3R1cmUgYnkgdGFraW5nIHRoZSBjb2x1bW4KICogZnJvbSBvbmUgcG9zaXRpb24gKGlGcm9tKSBhbmQgaW5zZXJ0IGl0IGludG8gYSBnaXZlbiBwb2ludCAoaVRvKS4KICogIEBtZXRob2QgICQuZm4uZGF0YVRhYmxlRXh0Lm9BcGkuZm5Db2xSZW9yZGVyCiAqICBAcGFyYW0gICBvYmplY3Qgb1NldHRpbmdzIERhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0IC0gYXV0b21hdGljYWxseSBhZGRlZCBieSBEYXRhVGFibGVzISAKICogIEBwYXJhbSAgIGludCBpRnJvbSBUYWtlIHRoZSBjb2x1bW4gdG8gYmUgcmVwb3NpdGlvbmVkIGZyb20gdGhpcyBwb2ludAogKiAgQHBhcmFtICAgaW50IGlUbyBhbmQgaW5zZXJ0IGl0IGludG8gdGhpcyBwb2ludAogKiAgQHJldHVybnMgdm9pZAogKi8KJC5mbi5kYXRhVGFibGVFeHQub0FwaS5mbkNvbFJlb3JkZXIgPSBmdW5jdGlvbiAoIG9TZXR0aW5ncywgaUZyb20sIGlUbyApCnsKCXZhciBpLCBpTGVuLCBqLCBqTGVuLCBpQ29scz1vU2V0dGluZ3MuYW9Db2x1bW5zLmxlbmd0aCwgblRycywgb0NvbDsKCQoJLyogU2FuaXR5IGNoZWNrIGluIHRoZSBpbnB1dCAqLwoJaWYgKCBpRnJvbSA9PSBpVG8gKQoJewoJCS8qIFBvaW50bGVzcyByZW9yZGVyICovCgkJcmV0dXJuOwoJfQoJCglpZiAoIGlGcm9tIDwgMCB8fCBpRnJvbSA+PSBpQ29scyApCgl7CgkJdGhpcy5vQXBpLl9mbkxvZyggb1NldHRpbmdzLCAxLCAiQ29sUmVvcmRlciAnZnJvbScgaW5kZXggaXMgb3V0IG9mIGJvdW5kczogIitpRnJvbSApOwoJCXJldHVybjsKCX0KCQoJaWYgKCBpVG8gPCAwIHx8IGlUbyA+PSBpQ29scyApCgl7CgkJdGhpcy5vQXBpLl9mbkxvZyggb1NldHRpbmdzLCAxLCAiQ29sUmVvcmRlciAndG8nIGluZGV4IGlzIG91dCBvZiBib3VuZHM6ICIraVRvICk7CgkJcmV0dXJuOwoJfQoJCgkvKgoJICogQ2FsY3VsYXRlIHRoZSBuZXcgY29sdW1uIGFycmF5IGluZGV4LCBzbyB3ZSBoYXZlIGEgbWFwcGluZyBiZXR3ZWVuIHRoZSBvbGQgYW5kIG5ldwoJICovCgl2YXIgYWlNYXBwaW5nID0gW107Cglmb3IgKCBpPTAsIGlMZW49aUNvbHMgOyBpPGlMZW4gOyBpKysgKQoJewoJCWFpTWFwcGluZ1tpXSA9IGk7Cgl9CglmbkFycmF5U3dpdGNoKCBhaU1hcHBpbmcsIGlGcm9tLCBpVG8gKTsKCXZhciBhaUludmVydE1hcHBpbmcgPSBmbkludmVydEtleVZhbHVlcyggYWlNYXBwaW5nICk7CgkKCQoJLyoKCSAqIENvbnZlcnQgYWxsIGludGVybmFsIGluZGV4aW5nIHRvIHRoZSBuZXcgY29sdW1uIG9yZGVyIGluZGV4ZXMKCSAqLwoJLyogU29ydGluZyAqLwoJZm9yICggaT0wLCBpTGVuPW9TZXR0aW5ncy5hYVNvcnRpbmcubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCXsKCQlvU2V0dGluZ3MuYWFTb3J0aW5nW2ldWzBdID0gYWlJbnZlcnRNYXBwaW5nWyBvU2V0dGluZ3MuYWFTb3J0aW5nW2ldWzBdIF07Cgl9CgkKCS8qIEZpeGVkIHNvcnRpbmcgKi8KCWlmICggb1NldHRpbmdzLmFhU29ydGluZ0ZpeGVkICE9PSBudWxsICkKCXsKCQlmb3IgKCBpPTAsIGlMZW49b1NldHRpbmdzLmFhU29ydGluZ0ZpeGVkLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJewoJCQlvU2V0dGluZ3MuYWFTb3J0aW5nRml4ZWRbaV1bMF0gPSBhaUludmVydE1hcHBpbmdbIG9TZXR0aW5ncy5hYVNvcnRpbmdGaXhlZFtpXVswXSBdOwoJCX0KCX0KCQoJLyogRGF0YSBjb2x1bW4gc29ydGluZyAodGhlIGNvbHVtbiB3aGljaCB0aGUgc29ydCBmb3IgYSBnaXZlbiBjb2x1bW4gc2hvdWxkIHRha2UgcGxhY2Ugb24pICovCglmb3IgKCBpPTAsIGlMZW49aUNvbHMgOyBpPGlMZW4gOyBpKysgKQoJewoJCW9Db2wgPSBvU2V0dGluZ3MuYW9Db2x1bW5zW2ldOwoJCWZvciAoIGo9MCwgakxlbj1vQ29sLmFEYXRhU29ydC5sZW5ndGggOyBqPGpMZW4gOyBqKysgKQoJCXsKCQkJb0NvbC5hRGF0YVNvcnRbal0gPSBhaUludmVydE1hcHBpbmdbIG9Db2wuYURhdGFTb3J0W2pdIF07CgkJfQoJfQoJCgkvKiBVcGRhdGUgdGhlIEdldCBhbmQgU2V0IGZ1bmN0aW9ucyBmb3IgZWFjaCBjb2x1bW4gKi8KCWZvciAoIGk9MCwgaUxlbj1pQ29scyA7IGk8aUxlbiA7IGkrKyApCgl7CgkJb0NvbCA9IG9TZXR0aW5ncy5hb0NvbHVtbnNbaV07CgkJaWYgKCB0eXBlb2Ygb0NvbC5tRGF0YVByb3AgPT0gJ251bWJlcicgKSB7CgkJCW9Db2wubURhdGFQcm9wID0gYWlJbnZlcnRNYXBwaW5nWyBvQ29sLm1EYXRhUHJvcCBdOwoJCQlvQ29sLmZuR2V0RGF0YSA9IG9TZXR0aW5ncy5vQXBpLl9mbkdldE9iamVjdERhdGFGbiggb0NvbC5tRGF0YVByb3AgKTsKCQkJb0NvbC5mblNldERhdGEgPSBvU2V0dGluZ3Mub0FwaS5fZm5TZXRPYmplY3REYXRhRm4oIG9Db2wubURhdGFQcm9wICk7CgkJfQoJfQoJCgkKCS8qCgkgKiBNb3ZlIHRoZSBET00gZWxlbWVudHMKCSAqLwoJaWYgKCBvU2V0dGluZ3MuYW9Db2x1bW5zW2lGcm9tXS5iVmlzaWJsZSApCgl7CgkJLyogQ2FsY3VsYXRlIHRoZSBjdXJyZW50IHZpc2libGUgaW5kZXggYW5kIHRoZSBwb2ludCB0byBpbnNlcnQgdGhlIG5vZGUgYmVmb3JlLiBUaGUgaW5zZXJ0CgkJICogYmVmb3JlIG5lZWRzIHRvIHRha2UgaW50byBhY2NvdW50IHRoYXQgdGhlcmUgbWlnaHQgbm90IGJlIGFuIGVsZW1lbnQgdG8gaW5zZXJ0IGJlZm9yZSwKCQkgKiBpbiB3aGljaCBjYXNlIGl0IHdpbGwgYmUgbnVsbCwgYW5kIGFuIGFwcGVuZENoaWxkIHNob3VsZCBiZSB1c2VkCgkJICovCgkJdmFyIGlWaXNpYmxlSW5kZXggPSB0aGlzLm9BcGkuX2ZuQ29sdW1uSW5kZXhUb1Zpc2libGUoIG9TZXR0aW5ncywgaUZyb20gKTsKCQl2YXIgaUluc2VydEJlZm9yZUluZGV4ID0gbnVsbDsKCQkKCQlpID0gaVRvIDwgaUZyb20gPyBpVG8gOiBpVG8gKyAxOwoJCXdoaWxlICggaUluc2VydEJlZm9yZUluZGV4ID09PSBudWxsICYmIGkgPCBpQ29scyApCgkJewoJCQlpSW5zZXJ0QmVmb3JlSW5kZXggPSB0aGlzLm9BcGkuX2ZuQ29sdW1uSW5kZXhUb1Zpc2libGUoIG9TZXR0aW5ncywgaSApOwoJCQlpKys7CgkJfQoJCQoJCS8qIEhlYWRlciAqLwoJCW5UcnMgPSBvU2V0dGluZ3MublRIZWFkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0cicpOwoJCWZvciAoIGk9MCwgaUxlbj1uVHJzLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJewoJCQlmbkRvbVN3aXRjaCggblRyc1tpXSwgaVZpc2libGVJbmRleCwgaUluc2VydEJlZm9yZUluZGV4ICk7CgkJfQoJCQoJCS8qIEZvb3RlciAqLwoJCWlmICggb1NldHRpbmdzLm5URm9vdCAhPT0gbnVsbCApCgkJewoJCQluVHJzID0gb1NldHRpbmdzLm5URm9vdC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndHInKTsKCQkJZm9yICggaT0wLCBpTGVuPW5UcnMubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQkJewoJCQkJZm5Eb21Td2l0Y2goIG5UcnNbaV0sIGlWaXNpYmxlSW5kZXgsIGlJbnNlcnRCZWZvcmVJbmRleCApOwoJCQl9CgkJfQoJCQoJCS8qIEJvZHkgKi8KCQlmb3IgKCBpPTAsIGlMZW49b1NldHRpbmdzLmFvRGF0YS5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCXsKCQkJaWYgKCBvU2V0dGluZ3MuYW9EYXRhW2ldLm5UciAhPT0gbnVsbCApCgkJCXsKCQkJCWZuRG9tU3dpdGNoKCBvU2V0dGluZ3MuYW9EYXRhW2ldLm5UciwgaVZpc2libGVJbmRleCwgaUluc2VydEJlZm9yZUluZGV4ICk7CgkJCX0KCQl9Cgl9CgkKCQoJLyogCgkgKiBNb3ZlIHRoZSBpbnRlcm5hbCBhcnJheSBlbGVtZW50cwoJICovCgkvKiBDb2x1bW5zICovCglmbkFycmF5U3dpdGNoKCBvU2V0dGluZ3MuYW9Db2x1bW5zLCBpRnJvbSwgaVRvICk7CgkKCS8qIFNlYXJjaCBjb2x1bW5zICovCglmbkFycmF5U3dpdGNoKCBvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzLCBpRnJvbSwgaVRvICk7CgkKCS8qIEFycmF5IGFycmF5IC0gaW50ZXJuYWwgZGF0YSBhbm9kZXMgY2FjaGUgKi8KCWZvciAoIGk9MCwgaUxlbj1vU2V0dGluZ3MuYW9EYXRhLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgl7CgkJaWYgKCAkLmlzQXJyYXkoIG9TZXR0aW5ncy5hb0RhdGFbaV0uX2FEYXRhICkgKSB7CgkJICBmbkFycmF5U3dpdGNoKCBvU2V0dGluZ3MuYW9EYXRhW2ldLl9hRGF0YSwgaUZyb20sIGlUbyApOwoJCX0KCQlmbkFycmF5U3dpdGNoKCBvU2V0dGluZ3MuYW9EYXRhW2ldLl9hbkhpZGRlbiwgaUZyb20sIGlUbyApOwoJfQoJCgkvKiBSZXBvc2l0aW9uIHRoZSBoZWFkZXIgZWxlbWVudHMgaW4gdGhlIGhlYWRlciBsYXlvdXQgYXJyYXkgKi8KCWZvciAoIGk9MCwgaUxlbj1vU2V0dGluZ3MuYW9IZWFkZXIubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCXsKCQlmbkFycmF5U3dpdGNoKCBvU2V0dGluZ3MuYW9IZWFkZXJbaV0sIGlGcm9tLCBpVG8gKTsKCX0KCQoJaWYgKCBvU2V0dGluZ3MuYW9Gb290ZXIgIT09IG51bGwgKQoJewoJCWZvciAoIGk9MCwgaUxlbj1vU2V0dGluZ3MuYW9Gb290ZXIubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQl7CgkJCWZuQXJyYXlTd2l0Y2goIG9TZXR0aW5ncy5hb0Zvb3RlcltpXSwgaUZyb20sIGlUbyApOwoJCX0KCX0KCQoJCgkvKgoJICogVXBkYXRlIERhdGFUYWJsZXMnIGV2ZW50IGhhbmRsZXJzCgkgKi8KCQoJLyogU29ydCBsaXN0ZW5lciAqLwoJZm9yICggaT0wLCBpTGVuPWlDb2xzIDsgaTxpTGVuIDsgaSsrICkKCXsKCQkkKG9TZXR0aW5ncy5hb0NvbHVtbnNbaV0ublRoKS51bmJpbmQoJ2NsaWNrJyk7CgkJdGhpcy5vQXBpLl9mblNvcnRBdHRhY2hMaXN0ZW5lciggb1NldHRpbmdzLCBvU2V0dGluZ3MuYW9Db2x1bW5zW2ldLm5UaCwgaSApOwoJfQoJCgkKCS8qIEZpcmUgYW4gZXZlbnQgc28gb3RoZXIgcGx1Zy1pbnMgY2FuIHVwZGF0ZSAqLwoJJChvU2V0dGluZ3Mub0luc3RhbmNlKS50cmlnZ2VyKCAnY29sdW1uLXJlb3JkZXInLCBbIG9TZXR0aW5ncywgewoJCSJpRnJvbSI6IGlGcm9tLAoJCSJpVG8iOiBpVG8sCgkJImFpSW52ZXJ0TWFwcGluZyI6IGFpSW52ZXJ0TWFwcGluZwoJfSBdICk7CgkKCWlmICggdHlwZW9mIG9TZXR0aW5ncy5vSW5zdGFuY2UuX29QbHVnaW5GaXhlZEhlYWRlciAhPSAndW5kZWZpbmVkJyApCgl7CgkJb1NldHRpbmdzLm9JbnN0YW5jZS5fb1BsdWdpbkZpeGVkSGVhZGVyLmZuVXBkYXRlKCk7Cgl9Cn07CgoKCgovKiogCiAqIENvbFJlb3JkZXIgcHJvdmlkZXMgY29sdW1uIHZpc2libGl0eSBjb250cm9sIGZvciBEYXRhVGFibGVzCiAqIEBjbGFzcyBDb2xSZW9yZGVyCiAqIEBjb25zdHJ1Y3RvcgogKiBAcGFyYW0ge29iamVjdH0gRGF0YVRhYmxlcyBvYmplY3QKICogQHBhcmFtIHtvYmplY3R9IENvbFJlb3JkZXIgb3B0aW9ucwogKi8KQ29sUmVvcmRlciA9IGZ1bmN0aW9uKCBvVGFibGUsIG9PcHRzICkKewoJLyogU2FudGl5IGNoZWNrIHRoYXQgd2UgYXJlIGEgbmV3IGluc3RhbmNlICovCglpZiAoICF0aGlzLkNMQVNTIHx8IHRoaXMuQ0xBU1MgIT0gIkNvbFJlb3JkZXIiICkKCXsKCQlhbGVydCggIldhcm5pbmc6IENvbFJlb3JkZXIgbXVzdCBiZSBpbml0aWFsaXNlZCB3aXRoIHRoZSBrZXl3b3JkICduZXcnIiApOwoJfQoJCglpZiAoIHR5cGVvZiBvT3B0cyA9PSAndW5kZWZpbmVkJyApCgl7CgkJb09wdHMgPSB7fTsKCX0KCQoJCgkvKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqCgkgKiBQdWJsaWMgY2xhc3MgdmFyaWFibGVzCgkgKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqLwoJCgkvKioKCSAqIEBuYW1lc3BhY2UgU2V0dGluZ3Mgb2JqZWN0IHdoaWNoIGNvbnRhaW5zIGN1c3RvbWlzYWJsZSBpbmZvcm1hdGlvbiBmb3IgQ29sUmVvcmRlciBpbnN0YW5jZQoJICovCgl0aGlzLnMgPSB7CgkJLyoqCgkJICogRGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCQkgKiAgQHByb3BlcnR5IGR0CgkJICogIEB0eXBlICAgICBPYmplY3QKCQkgKiAgQGRlZmF1bHQgIG51bGwKCQkgKi8KCQkiZHQiOiBudWxsLAoJCQoJCS8qKgoJCSAqIEluaXRpYWxpc2F0aW9uIG9iamVjdCB1c2VkIGZvciB0aGlzIGluc3RhbmNlCgkJICogIEBwcm9wZXJ0eSBpbml0CgkJICogIEB0eXBlICAgICBvYmplY3QKCQkgKiAgQGRlZmF1bHQgIHt9CgkJICovCgkJImluaXQiOiBvT3B0cywKCQkKCQkvKioKCQkgKiBOdW1iZXIgb2YgY29sdW1ucyB0byBmaXggKG5vdCBhbGxvdyB0byBiZSByZW9yZGVyZWQpCgkJICogIEBwcm9wZXJ0eSBmaXhlZAoJCSAqICBAdHlwZSAgICAgaW50CgkJICogIEBkZWZhdWx0ICAwCgkJICovCgkJImZpeGVkIjogMCwKCQkKCQkvKioKCQkgKiBDYWxsYmFjayBmdW5jdGlvbiBmb3Igb25jZSB0aGUgcmVvcmRlciBoYXMgYmVlbiBkb25lCgkJICogIEBwcm9wZXJ0eSBkcm9wY2FsbGJhY2sKCQkgKiAgQHR5cGUgICAgIGZ1bmN0aW9uCgkJICogIEBkZWZhdWx0ICBudWxsCgkJICovCgkJImRyb3BDYWxsYmFjayI6IG51bGwsCgkJCgkJLyoqCgkJICogQG5hbWVzcGFjZSBJbmZvcm1hdGlvbiB1c2VkIGZvciB0aGUgbW91c2UgZHJhZwoJCSAqLwoJCSJtb3VzZSI6IHsKCQkJInN0YXJ0WCI6IC0xLAoJCQkic3RhcnRZIjogLTEsCgkJCSJvZmZzZXRYIjogLTEsCgkJCSJvZmZzZXRZIjogLTEsCgkJCSJ0YXJnZXQiOiAtMSwKCQkJInRhcmdldEluZGV4IjogLTEsCgkJCSJmcm9tSW5kZXgiOiAtMQoJCX0sCgkJCgkJLyoqCgkJICogSW5mb3JtYXRpb24gd2hpY2ggaXMgdXNlZCBmb3IgcG9zaXRpb25pbmcgdGhlIGluc2VydCBjdXNvciBhbmQga25vd2luZyB3aGVyZSB0byBkbyB0aGUKCQkgKiBpbnNlcnQuIEFycmF5IG9mIG9iamVjdHMgd2l0aCB0aGUgcHJvcGVydGllczoKCQkgKiAgIHg6IHgtYXhpcyBwb3NpdGlvbgoJCSAqICAgdG86IGluc2VydCBwb2ludAoJCSAqICBAcHJvcGVydHkgYW9UYXJnZXRzCgkJICogIEB0eXBlICAgICBhcnJheQoJCSAqICBAZGVmYXVsdCAgW10KCQkgKi8KCQkiYW9UYXJnZXRzIjogW10KCX07CgkKCQoJLyoqCgkgKiBAbmFtZXNwYWNlIENvbW1vbiBhbmQgdXNlZnVsIERPTSBlbGVtZW50cyBmb3IgdGhlIGNsYXNzIGluc3RhbmNlCgkgKi8KCXRoaXMuZG9tID0gewoJCS8qKgoJCSAqIERyYWdnaW5nIGVsZW1lbnQgKHRoZSBvbmUgdGhlIG1vdXNlIGlzIG1vdmluZykKCQkgKiAgQHByb3BlcnR5IGRyYWcKCQkgKiAgQHR5cGUgICAgIGVsZW1lbnQKCQkgKiAgQGRlZmF1bHQgIG51bGwKCQkgKi8KCQkiZHJhZyI6IG51bGwsCgkJCgkJLyoqCgkJICogVGhlIGluc2VydCBjdXJzb3IKCQkgKiAgQHByb3BlcnR5IHBvaW50ZXIKCQkgKiAgQHR5cGUgICAgIGVsZW1lbnQKCQkgKiAgQGRlZmF1bHQgIG51bGwKCQkgKi8KCQkicG9pbnRlciI6IG51bGwKCX07CgkKCQoJLyogQ29uc3RydWN0b3IgbG9naWMgKi8KCXRoaXMucy5kdCA9IG9UYWJsZS5mblNldHRpbmdzKCk7Cgl0aGlzLl9mbkNvbnN0cnVjdCgpOwoJCgkvKiBTdG9yZSB0aGUgaW5zdGFuY2UgZm9yIGxhdGVyIHVzZSAqLwoJQ29sUmVvcmRlci5hb0luc3RhbmNlcy5wdXNoKCB0aGlzICk7CglyZXR1cm4gdGhpczsKfTsKCgoKQ29sUmVvcmRlci5wcm90b3R5cGUgPSB7CgkvKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqCgkgKiBQdWJsaWMgbWV0aG9kcwoJICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKi8KCQoJImZuUmVzZXQiOiBmdW5jdGlvbiAoKQoJewoJCXZhciBhID0gW107CgkJZm9yICggdmFyIGk9MCwgaUxlbj10aGlzLnMuZHQuYW9Db2x1bW5zLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJewoJCQlhLnB1c2goIHRoaXMucy5kdC5hb0NvbHVtbnNbaV0uX0NvbFJlb3JkZXJfaU9yaWdDb2wgKTsKCQl9CgkJCgkJdGhpcy5fZm5PcmRlckNvbHVtbnMoIGEgKTsKCX0sCgkKCQoJLyogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKgoJICogUHJpdmF0ZSBtZXRob2RzICh0aGV5IGFyZSBvZiBjb3Vyc2UgcHVibGljIGluIEpTLCBidXQgcmVjb21tZW5kZWQgYXMgcHJpdmF0ZSkKCSAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICovCgkKCS8qKgoJICogQ29uc3RydWN0b3IgbG9naWMKCSAqICBAbWV0aG9kICBfZm5Db25zdHJ1Y3QKCSAqICBAcmV0dXJucyB2b2lkCgkgKiAgQHByaXZhdGUgCgkgKi8KCSJfZm5Db25zdHJ1Y3QiOiBmdW5jdGlvbiAoKQoJewoJCXZhciB0aGF0ID0gdGhpczsKCQl2YXIgaSwgaUxlbjsKCQkKCQkvKiBDb2x1bW5zIGRpc2NvdW50ZWQgZnJvbSByZW9yZGVyaW5nIC0gY291bnRpbmcgbGVmdCB0byByaWdodCAqLwoJCWlmICggdHlwZW9mIHRoaXMucy5pbml0LmlGaXhlZENvbHVtbnMgIT0gJ3VuZGVmaW5lZCcgKQoJCXsKCQkJdGhpcy5zLmZpeGVkID0gdGhpcy5zLmluaXQuaUZpeGVkQ29sdW1uczsKCQl9CgkJCgkJLyogRHJvcCBjYWxsYmFjayBpbml0aWFsaXNhdGlvbiBvcHRpb24gKi8KCQlpZiAoIHR5cGVvZiB0aGlzLnMuaW5pdC5mblJlb3JkZXJDYWxsYmFjayAhPSAndW5kZWZpbmVkJyApCgkJewoJCQl0aGlzLnMuZHJvcENhbGxiYWNrID0gdGhpcy5zLmluaXQuZm5SZW9yZGVyQ2FsbGJhY2s7CgkJfQoJCQoJCS8qIEFkZCBldmVudCBoYW5kbGVycyBmb3IgdGhlIGRyYWcgYW5kIGRyb3AsIGFuZCBhbHNvIG1hcmsgdGhlIG9yaWdpbmFsIGNvbHVtbiBvcmRlciAqLwoJCWZvciAoIGk9MCwgaUxlbj10aGlzLnMuZHQuYW9Db2x1bW5zLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJewoJCQlpZiAoIGkgPiB0aGlzLnMuZml4ZWQtMSApCgkJCXsKCQkJCXRoaXMuX2ZuTW91c2VMaXN0ZW5lciggaSwgdGhpcy5zLmR0LmFvQ29sdW1uc1tpXS5uVGggKTsKCQkJfQoJCQkKCQkJLyogTWFyayB0aGUgb3JpZ2luYWwgY29sdW1uIG9yZGVyIGZvciBsYXRlciByZWZlcmVuY2UgKi8KCQkJdGhpcy5zLmR0LmFvQ29sdW1uc1tpXS5fQ29sUmVvcmRlcl9pT3JpZ0NvbCA9IGk7CgkJfQoJCQoJCS8qIFN0YXRlIHNhdmluZyAqLwoJCXRoaXMucy5kdC5vQXBpLl9mbkNhbGxiYWNrUmVnKCB0aGlzLnMuZHQsICdhb1N0YXRlU2F2ZVBhcmFtcycsIGZ1bmN0aW9uIChvUywgb0RhdGEpIHsKCQkJdGhhdC5fZm5TdGF0ZVNhdmUuY2FsbCggdGhhdCwgb0RhdGEgKTsKCQl9LCAiQ29sUmVvcmRlcl9TdGF0ZSIgKTsKCQkKCQkvKiBBbiBpbml0aWFsIGNvbHVtbiBvcmRlciBoYXMgYmVlbiBzcGVjaWZpZWQgKi8KCQl2YXIgYWlPcmRlciA9IG51bGw7CgkJaWYgKCB0eXBlb2YgdGhpcy5zLmluaXQuYWlPcmRlciAhPSAndW5kZWZpbmVkJyApCgkJewoJCQlhaU9yZGVyID0gdGhpcy5zLmluaXQuYWlPcmRlci5zbGljZSgpOwoJCX0KCQkKCQkvKiBTdGF0ZSBsb2FkaW5nLCBvdmVycmlkZXMgdGhlIGNvbHVtbiBvcmRlciBnaXZlbiAqLwoJCWlmICggdGhpcy5zLmR0Lm9Mb2FkZWRTdGF0ZSAmJiB0eXBlb2YgdGhpcy5zLmR0Lm9Mb2FkZWRTdGF0ZS5Db2xSZW9yZGVyICE9ICd1bmRlZmluZWQnICYmCgkJICB0aGlzLnMuZHQub0xvYWRlZFN0YXRlLkNvbFJlb3JkZXIubGVuZ3RoID09IHRoaXMucy5kdC5hb0NvbHVtbnMubGVuZ3RoICkKCQl7CgkJCWFpT3JkZXIgPSB0aGlzLnMuZHQub0xvYWRlZFN0YXRlLkNvbFJlb3JkZXI7CgkJfQoJCQoJCS8qIElmIHdlIGhhdmUgYW4gb3JkZXIgdG8gYXBwbHkgLSBkbyBzbyAqLwoJCWlmICggYWlPcmRlciApCgkJewoJCQkvKiBXZSBtaWdodCBiZSBjYWxsZWQgZHVyaW5nIG9yIGFmdGVyIHRoZSBEYXRhVGFibGVzIGluaXRpYWxpc2F0aW9uLiBJZiBiZWZvcmUsIHRoZW4gd2UgbmVlZAoJCQkgKiB0byB3YWl0IHVudGlsIHRoZSBkcmF3IGlzIGRvbmUsIGlmIGFmdGVyLCB0aGVuIGRvIHdoYXQgd2UgbmVlZCB0byBkbyByaWdodCBhd2F5CgkJCSAqLwoJCQlpZiAoICF0aGF0LnMuZHQuX2JJbml0Q29tcGxldGUgKQoJCQl7CgkJCQl2YXIgYkRvbmUgPSBmYWxzZTsKCQkJCXRoaXMucy5kdC5hb0RyYXdDYWxsYmFjay5wdXNoKCB7CgkJCQkJImZuIjogZnVuY3Rpb24gKCkgewoJCQkJCQlpZiAoICF0aGF0LnMuZHQuX2JJbml0Q29tcGxldGUgJiYgIWJEb25lICkKCQkJCQkJewoJCQkJCQkJYkRvbmUgPSB0cnVlOwoJCQkJCQkJdmFyIHJlc29ydCA9IGZuSW52ZXJ0S2V5VmFsdWVzKCBhaU9yZGVyICk7CgkJCQkJCQl0aGF0Ll9mbk9yZGVyQ29sdW1ucy5jYWxsKCB0aGF0LCByZXNvcnQgKTsKCQkJCQkJfQoJCQkJCX0sCgkJCQkJInNOYW1lIjogIkNvbFJlb3JkZXJfUHJlIgoJCQkJfSApOwoJCQl9CgkJCWVsc2UKCQkJewoJCQkJdmFyIHJlc29ydCA9IGZuSW52ZXJ0S2V5VmFsdWVzKCBhaU9yZGVyICk7CgkJCQl0aGF0Ll9mbk9yZGVyQ29sdW1ucy5jYWxsKCB0aGF0LCByZXNvcnQgKTsKCQkJfQoJCX0KCX0sCgkKCQoJLyoqCgkgKiBTZXQgdGhlIGNvbHVtbiBvcmRlciBmcm9tIGFuIGFycmF5CgkgKiAgQG1ldGhvZCAgX2ZuT3JkZXJDb2x1bW5zCgkgKiAgQHBhcmFtICAgYXJyYXkgYSBBbiBhcnJheSBvZiBpbnRlZ2VycyB3aGljaCBkaWN0YXRlIHRoZSBjb2x1bW4gb3JkZXIgdGhhdCBzaG91bGQgYmUgYXBwbGllZAoJICogIEByZXR1cm5zIHZvaWQKCSAqICBAcHJpdmF0ZSAKCSAqLwoJIl9mbk9yZGVyQ29sdW1ucyI6IGZ1bmN0aW9uICggYSApCgl7CgkJaWYgKCBhLmxlbmd0aCAhPSB0aGlzLnMuZHQuYW9Db2x1bW5zLmxlbmd0aCApCgkJewoJCQl0aGlzLnMuZHQub0luc3RhbmNlLm9BcGkuX2ZuTG9nKCB0aGlzLnMuZHQsIDEsICJDb2xSZW9yZGVyIC0gYXJyYXkgcmVvcmRlciBkb2VzIG5vdCAiKwoJCQkgCSJtYXRjaCBrbm93biBudW1iZXIgb2YgY29sdW1ucy4gU2tpcHBpbmcuIiApOwoJCQlyZXR1cm47CgkJfQoJCQoJCWZvciAoIHZhciBpPTAsIGlMZW49YS5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCXsKCQkJdmFyIGN1cnJJbmRleCA9ICQuaW5BcnJheSggaSwgYSApOwoJCQlpZiAoIGkgIT0gY3VyckluZGV4ICkKCQkJewoJCQkJLyogUmVvcmRlciBvdXIgc3dpdGNoaW5nIGFycmF5ICovCgkJCQlmbkFycmF5U3dpdGNoKCBhLCBjdXJySW5kZXgsIGkgKTsKCQkJCQoJCQkJLyogRG8gdGhlIGNvbHVtbiByZW9yZGVyIGluIHRoZSB0YWJsZSAqLwoJCQkJdGhpcy5zLmR0Lm9JbnN0YW5jZS5mbkNvbFJlb3JkZXIoIGN1cnJJbmRleCwgaSApOwoJCQl9CgkJfQoJCQoJCS8qIFdoZW4gc2Nyb2xsaW5nIHdlIG5lZWQgdG8gcmVjYWxjdWxhdGUgdGhlIGNvbHVtbiBzaXplcyB0byBhbGxvdyBmb3IgdGhlIHNoaWZ0ICovCgkJaWYgKCB0aGlzLnMuZHQub1Njcm9sbC5zWCAhPT0gIiIgfHwgdGhpcy5zLmR0Lm9TY3JvbGwuc1kgIT09ICIiICkKCQl7CgkJCXRoaXMucy5kdC5vSW5zdGFuY2UuZm5BZGp1c3RDb2x1bW5TaXppbmcoKTsKCQl9CgkJCQoJCS8qIFNhdmUgdGhlIHN0YXRlICovCgkJdGhpcy5zLmR0Lm9JbnN0YW5jZS5vQXBpLl9mblNhdmVTdGF0ZSggdGhpcy5zLmR0ICk7Cgl9LAoJCgkKCS8qKgoJICogQmVjYXVzZSB3ZSBjaGFuZ2UgdGhlIGluZGV4ZXMgb2YgY29sdW1ucyBpbiB0aGUgdGFibGUsIHJlbGF0aXZlIHRvIHRoZWlyIHN0YXJ0aW5nIHBvaW50CgkgKiB3ZSBuZWVkIHRvIHJlb3JkZXIgdGhlIHN0YXRlIGNvbHVtbnMgdG8gd2hhdCB0aGV5IGFyZSBhdCB0aGUgc3RhcnRpbmcgcG9pbnQgc28gd2UgY2FuCgkgKiB0aGVuIHJlYXJyYW5nZSB0aGVtIGFnYWluIG9uIHN0YXRlIGxvYWQhCgkgKiAgQG1ldGhvZCAgX2ZuU3RhdGVTYXZlCgkgKiAgQHBhcmFtICAgb2JqZWN0IG9TdGF0ZSBEYXRhVGFibGVzIHN0YXRlIAoJICogIEByZXR1cm5zIHN0cmluZyBKU09OIGVuY29kZWQgY29va2llIHN0cmluZyBmb3IgRGF0YVRhYmxlcwoJICogIEBwcml2YXRlIAoJICovCgkiX2ZuU3RhdGVTYXZlIjogZnVuY3Rpb24gKCBvU3RhdGUgKQoJewoJCXZhciBpLCBpTGVuLCBhQ29weSwgaU9yaWdDb2x1bW47CgkJdmFyIG9TZXR0aW5ncyA9IHRoaXMucy5kdDsKCgkJLyogU29ydGluZyAqLwoJCWZvciAoIGk9MCA7IGk8b1N0YXRlLmFhU29ydGluZy5sZW5ndGggOyBpKysgKQoJCXsKCQkJb1N0YXRlLmFhU29ydGluZ1tpXVswXSA9IG9TZXR0aW5ncy5hb0NvbHVtbnNbIG9TdGF0ZS5hYVNvcnRpbmdbaV1bMF0gXS5fQ29sUmVvcmRlcl9pT3JpZ0NvbDsKCQl9CgoJCWFTZWFyY2hDb3B5ID0gJC5leHRlbmQoIHRydWUsIFtdLCBvU3RhdGUuYW9TZWFyY2hDb2xzICk7CgkJb1N0YXRlLkNvbFJlb3JkZXIgPSBbXTsKCgkJZm9yICggaT0wLCBpTGVuPW9TZXR0aW5ncy5hb0NvbHVtbnMubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQl7CgkJCWlPcmlnQ29sdW1uID0gb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5fQ29sUmVvcmRlcl9pT3JpZ0NvbDsKCgkJCS8qIENvbHVtbiBmaWx0ZXIgKi8KCQkJb1N0YXRlLmFvU2VhcmNoQ29sc1sgaU9yaWdDb2x1bW4gXSA9IGFTZWFyY2hDb3B5W2ldOwoKCQkJLyogVmlzaWJpbGl0eSAqLwoJCQlvU3RhdGUuYWJWaXNDb2xzWyBpT3JpZ0NvbHVtbiBdID0gb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5iVmlzaWJsZTsKCQkKCQkJLyogQ29sdW1uIHJlb3JkZXJpbmcgKi8KCQkJb1N0YXRlLkNvbFJlb3JkZXIucHVzaCggaU9yaWdDb2x1bW4gKTsKCQl9Cgl9LAoJCgkKCS8qICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICoKCSAqIE1vdXNlIGRyb3AgYW5kIGRyYWcKCSAqLwoJCgkvKioKCSAqIEFkZCBhIG1vdXNlIGRvd24gbGlzdGVuZXIgdG8gYSBwYXJ0aWNsdWFyIFRIIGVsZW1lbnQKCSAqICBAbWV0aG9kICBfZm5Nb3VzZUxpc3RlbmVyCgkgKiAgQHBhcmFtICAgaW50IGkgQ29sdW1uIGluZGV4CgkgKiAgQHBhcmFtICAgZWxlbWVudCBuVGggVEggZWxlbWVudCBjbGlja2VkIG9uCgkgKiAgQHJldHVybnMgdm9pZAoJICogIEBwcml2YXRlIAoJICovCgkiX2ZuTW91c2VMaXN0ZW5lciI6IGZ1bmN0aW9uICggaSwgblRoICkKCXsKCQl2YXIgdGhhdCA9IHRoaXM7CgkJJChuVGgpLmJpbmQoICdtb3VzZWRvd24uQ29sUmVvcmRlcicsIGZ1bmN0aW9uIChlKSB7CgkJCWUucHJldmVudERlZmF1bHQoKTsKCQkJdGhhdC5fZm5Nb3VzZURvd24uY2FsbCggdGhhdCwgZSwgblRoICk7CgkJfSApOwoJfSwKCQoJCgkvKioKCSAqIE1vdXNlIGRvd24gb24gYSBUSCBlbGVtZW50IGluIHRoZSB0YWJsZSBoZWFkZXIKCSAqICBAbWV0aG9kICBfZm5Nb3VzZURvd24KCSAqICBAcGFyYW0gICBldmVudCBlIE1vdXNlIGV2ZW50CgkgKiAgQHBhcmFtICAgZWxlbWVudCBuVGggVEggZWxlbWVudCB0byBiZSBkcmFnZ2VkCgkgKiAgQHJldHVybnMgdm9pZAoJICogIEBwcml2YXRlIAoJICovCgkiX2ZuTW91c2VEb3duIjogZnVuY3Rpb24gKCBlLCBuVGggKQoJewoJCXZhcgoJCQl0aGF0ID0gdGhpcywKCQkJYW9Db2x1bW5zID0gdGhpcy5zLmR0LmFvQ29sdW1uczsKCQkKCQkvKiBTdG9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbW91c2UgcG9zaXRpb24gKi8KCQl2YXIgblRoVGFyZ2V0ID0gZS50YXJnZXQubm9kZU5hbWUgPT0gIlRIIiA/IGUudGFyZ2V0IDogJChlLnRhcmdldCkucGFyZW50cygnVEgnKVswXTsKCQl2YXIgb2Zmc2V0ID0gJChuVGhUYXJnZXQpLm9mZnNldCgpOwoJCXRoaXMucy5tb3VzZS5zdGFydFggPSBlLnBhZ2VYOwoJCXRoaXMucy5tb3VzZS5zdGFydFkgPSBlLnBhZ2VZOwoJCXRoaXMucy5tb3VzZS5vZmZzZXRYID0gZS5wYWdlWCAtIG9mZnNldC5sZWZ0OwoJCXRoaXMucy5tb3VzZS5vZmZzZXRZID0gZS5wYWdlWSAtIG9mZnNldC50b3A7CgkJdGhpcy5zLm1vdXNlLnRhcmdldCA9IG5UaDsKCQl0aGlzLnMubW91c2UudGFyZ2V0SW5kZXggPSAkKCd0aCcsIG5UaC5wYXJlbnROb2RlKS5pbmRleCggblRoICk7CgkJdGhpcy5zLm1vdXNlLmZyb21JbmRleCA9IHRoaXMucy5kdC5vSW5zdGFuY2Uub0FwaS5fZm5WaXNpYmxlVG9Db2x1bW5JbmRleCggdGhpcy5zLmR0LCAKCQkJdGhpcy5zLm1vdXNlLnRhcmdldEluZGV4ICk7CgkJCgkJLyogQ2FsY3VsYXRlIGEgY2FjaGVkIGFycmF5IHdpdGggdGhlIHBvaW50cyBvZiB0aGUgY29sdW1uIGluc2VydHMsIGFuZCB0aGUgJ3RvJyBwb2ludHMgKi8KCQl0aGlzLnMuYW9UYXJnZXRzLnNwbGljZSggMCwgdGhpcy5zLmFvVGFyZ2V0cy5sZW5ndGggKTsKCQkKCQl0aGlzLnMuYW9UYXJnZXRzLnB1c2goIHsKCQkJIngiOiAgJCh0aGlzLnMuZHQublRhYmxlKS5vZmZzZXQoKS5sZWZ0LAoJCQkidG8iOiAwCgkJfSApOwoJCQoJCXZhciBpVG9Qb2ludCA9IDA7CgkJZm9yICggdmFyIGk9MCwgaUxlbj1hb0NvbHVtbnMubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQl7CgkJCS8qIEZvciB0aGUgY29sdW1uIC8gaGVhZGVyIGluIHF1ZXN0aW9uLCB3ZSB3YW50IGl0J3MgcG9zaXRpb24gdG8gcmVtYWluIHRoZSBzYW1lIGlmIHRoZSAKCQkJICogcG9zaXRpb24gaXMganVzdCB0byBpdCdzIGltbWVkaWF0ZSBsZWZ0IG9yIHJpZ2h0LCBzbyB3ZSBvbmx5IGluY3JlbWVtZW50IHRoZSBjb3VudGVyIGZvcgoJCQkgKiBvdGhlciBjb2x1bW5zCgkJCSAqLwoJCQlpZiAoIGkgIT0gdGhpcy5zLm1vdXNlLmZyb21JbmRleCApCgkJCXsKCQkJCWlUb1BvaW50Kys7CgkJCX0KCQkJCgkJCWlmICggYW9Db2x1bW5zW2ldLmJWaXNpYmxlICkKCQkJewoJCQkJdGhpcy5zLmFvVGFyZ2V0cy5wdXNoKCB7CgkJCQkJIngiOiAgJChhb0NvbHVtbnNbaV0ublRoKS5vZmZzZXQoKS5sZWZ0ICsgJChhb0NvbHVtbnNbaV0ublRoKS5vdXRlcldpZHRoKCksCgkJCQkJInRvIjogaVRvUG9pbnQKCQkJCX0gKTsKCQkJfQoJCX0KCQkKCQkvKiBEaXNhbGxvdyBjb2x1bW5zIGZvciBiZWluZyByZW9yZGVyZWQgYnkgZHJhZyBhbmQgZHJvcCwgY291bnRpbmcgbGVmdCB0byByaWdodCAqLwoJCWlmICggdGhpcy5zLmZpeGVkICE9PSAwICkKCQl7CgkJCXRoaXMucy5hb1RhcmdldHMuc3BsaWNlKCAwLCB0aGlzLnMuZml4ZWQgKTsKCQl9CgkJCgkJLyogQWRkIGV2ZW50IGhhbmRsZXJzIHRvIHRoZSBkb2N1bWVudCAqLwoJCSQoZG9jdW1lbnQpLmJpbmQoICdtb3VzZW1vdmUuQ29sUmVvcmRlcicsIGZ1bmN0aW9uIChlKSB7CgkJCXRoYXQuX2ZuTW91c2VNb3ZlLmNhbGwoIHRoYXQsIGUgKTsKCQl9ICk7CgkJCgkJJChkb2N1bWVudCkuYmluZCggJ21vdXNldXAuQ29sUmVvcmRlcicsIGZ1bmN0aW9uIChlKSB7CgkJCXRoYXQuX2ZuTW91c2VVcC5jYWxsKCB0aGF0LCBlICk7CgkJfSApOwoJfSwKCQoJCgkvKioKCSAqIERlYWwgd2l0aCBhIG1vdXNlIG1vdmUgZXZlbnQgd2hpbGUgZHJhZ2dpbmcgYSBub2RlCgkgKiAgQG1ldGhvZCAgX2ZuTW91c2VNb3ZlCgkgKiAgQHBhcmFtICAgZXZlbnQgZSBNb3VzZSBldmVudAoJICogIEByZXR1cm5zIHZvaWQKCSAqICBAcHJpdmF0ZSAKCSAqLwoJIl9mbk1vdXNlTW92ZSI6IGZ1bmN0aW9uICggZSApCgl7CgkJdmFyIHRoYXQgPSB0aGlzOwoJCQoJCWlmICggdGhpcy5kb20uZHJhZyA9PT0gbnVsbCApCgkJewoJCQkvKiBPbmx5IGNyZWF0ZSB0aGUgZHJhZyBlbGVtZW50IGlmIHRoZSBtb3VzZSBoYXMgbW92ZWQgYSBzcGVjaWZpYyBkaXN0YW5jZSBmcm9tIHRoZSBzdGFydAoJCQkgKiBwb2ludCAtIHRoaXMgYWxsb3dzIHRoZSB1c2VyIHRvIG1ha2Ugc21hbGwgbW91c2UgbW92ZW1lbnRzIHdoZW4gc29ydGluZyBhbmQgbm90IGhhdmUgYQoJCQkgKiBwb3NzaWJseSBjb25mdXNpbmcgZHJhZyBlbGVtZW50IHNob3dpbmcgdXAKCQkJICovCgkJCWlmICggTWF0aC5wb3coCgkJCQlNYXRoLnBvdyhlLnBhZ2VYIC0gdGhpcy5zLm1vdXNlLnN0YXJ0WCwgMikgKyAKCQkJCU1hdGgucG93KGUucGFnZVkgLSB0aGlzLnMubW91c2Uuc3RhcnRZLCAyKSwgMC41ICkgPCA1ICkKCQkJewoJCQkJcmV0dXJuOwoJCQl9CgkJCXRoaXMuX2ZuQ3JlYXRlRHJhZ05vZGUoKTsKCQl9CgkJCgkJLyogUG9zaXRpb24gdGhlIGVsZW1lbnQgLSB3ZSByZXNwZWN0IHdoZXJlIGluIHRoZSBlbGVtZW50IHRoZSBjbGljayBvY2N1cmVkICovCgkJdGhpcy5kb20uZHJhZy5zdHlsZS5sZWZ0ID0gKGUucGFnZVggLSB0aGlzLnMubW91c2Uub2Zmc2V0WCkgKyAicHgiOwoJCXRoaXMuZG9tLmRyYWcuc3R5bGUudG9wID0gKGUucGFnZVkgLSB0aGlzLnMubW91c2Uub2Zmc2V0WSkgKyAicHgiOwoJCQoJCS8qIEJhc2VkIG9uIHRoZSBjdXJyZW50IG1vdXNlIHBvc2l0aW9uLCBjYWxjdWxhdGUgd2hlcmUgdGhlIGluc2VydCBzaG91bGQgZ28gKi8KCQl2YXIgYlNldCA9IGZhbHNlOwoJCWZvciAoIHZhciBpPTEsIGlMZW49dGhpcy5zLmFvVGFyZ2V0cy5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCXsKCQkJaWYgKCBlLnBhZ2VYIDwgdGhpcy5zLmFvVGFyZ2V0c1tpLTFdLnggKyAoKHRoaXMucy5hb1RhcmdldHNbaV0ueC10aGlzLnMuYW9UYXJnZXRzW2ktMV0ueCkvMikgKQoJCQl7CgkJCQl0aGlzLmRvbS5wb2ludGVyLnN0eWxlLmxlZnQgPSB0aGlzLnMuYW9UYXJnZXRzW2ktMV0ueCArInB4IjsKCQkJCXRoaXMucy5tb3VzZS50b0luZGV4ID0gdGhpcy5zLmFvVGFyZ2V0c1tpLTFdLnRvOwoJCQkJYlNldCA9IHRydWU7CgkJCQlicmVhazsKCQkJfQoJCX0KCQkKCQkvKiBUaGUgaW5zZXJ0IGVsZW1lbnQgd2Fzbid0IHBvc2l0aW9uZWQgaW4gdGhlIGFycmF5IChsZXNzIHRoYW4gb3BlcmF0b3IpLCBzbyB3ZSBwdXQgaXQgYXQgCgkJICogdGhlIGVuZAoJCSAqLwoJCWlmICggIWJTZXQgKQoJCXsKCQkJdGhpcy5kb20ucG9pbnRlci5zdHlsZS5sZWZ0ID0gdGhpcy5zLmFvVGFyZ2V0c1t0aGlzLnMuYW9UYXJnZXRzLmxlbmd0aC0xXS54ICsicHgiOwoJCQl0aGlzLnMubW91c2UudG9JbmRleCA9IHRoaXMucy5hb1RhcmdldHNbdGhpcy5zLmFvVGFyZ2V0cy5sZW5ndGgtMV0udG87CgkJfQoJfSwKCQoJCgkvKioKCSAqIEZpbmlzaCBvZmYgdGhlIG1vdXNlIGRyYWcgYW5kIGluc2VydCB0aGUgY29sdW1uIHdoZXJlIG5lZWRlZAoJICogIEBtZXRob2QgIF9mbk1vdXNlVXAKCSAqICBAcGFyYW0gICBldmVudCBlIE1vdXNlIGV2ZW50CgkgKiAgQHJldHVybnMgdm9pZAoJICogIEBwcml2YXRlIAoJICovCgkiX2ZuTW91c2VVcCI6IGZ1bmN0aW9uICggZSApCgl7CgkJdmFyIHRoYXQgPSB0aGlzOwoJCQoJCSQoZG9jdW1lbnQpLnVuYmluZCggJ21vdXNlbW92ZS5Db2xSZW9yZGVyJyApOwoJCSQoZG9jdW1lbnQpLnVuYmluZCggJ21vdXNldXAuQ29sUmVvcmRlcicgKTsKCQkKCQlpZiAoIHRoaXMuZG9tLmRyYWcgIT09IG51bGwgKQoJCXsKCQkJLyogUmVtb3ZlIHRoZSBndWlkZSBlbGVtZW50cyAqLwoJCQlkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKCB0aGlzLmRvbS5kcmFnICk7CgkJCWRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoIHRoaXMuZG9tLnBvaW50ZXIgKTsKCQkJdGhpcy5kb20uZHJhZyA9IG51bGw7CgkJCXRoaXMuZG9tLnBvaW50ZXIgPSBudWxsOwoJCQkKCQkJLyogQWN0dWFsbHkgZG8gdGhlIHJlb3JkZXIgKi8KCQkJdGhpcy5zLmR0Lm9JbnN0YW5jZS5mbkNvbFJlb3JkZXIoIHRoaXMucy5tb3VzZS5mcm9tSW5kZXgsIHRoaXMucy5tb3VzZS50b0luZGV4ICk7CgkJCQoJCQkvKiBXaGVuIHNjcm9sbGluZyB3ZSBuZWVkIHRvIHJlY2FsY3VsYXRlIHRoZSBjb2x1bW4gc2l6ZXMgdG8gYWxsb3cgZm9yIHRoZSBzaGlmdCAqLwoJCQlpZiAoIHRoaXMucy5kdC5vU2Nyb2xsLnNYICE9PSAiIiB8fCB0aGlzLnMuZHQub1Njcm9sbC5zWSAhPT0gIiIgKQoJCQl7CgkJCQl0aGlzLnMuZHQub0luc3RhbmNlLmZuQWRqdXN0Q29sdW1uU2l6aW5nKCk7CgkJCX0KCQkJCgkJCWlmICggdGhpcy5zLmRyb3BDYWxsYmFjayAhPT0gbnVsbCApCgkJCXsKCQkJCXRoaXMucy5kcm9wQ2FsbGJhY2suY2FsbCggdGhpcyApOwoJCQl9CgkJCQoJCQkvKiBTYXZlIHRoZSBzdGF0ZSAqLwoJCQl0aGlzLnMuZHQub0luc3RhbmNlLm9BcGkuX2ZuU2F2ZVN0YXRlKCB0aGlzLnMuZHQgKTsKCQl9Cgl9LAoJCgkKCS8qKgoJICogQ29weSB0aGUgVEggZWxlbWVudCB0aGF0IGlzIGJlaW5nIGRyYWdzIHNvIHRoZSB1c2VyIGhhcyB0aGUgaWRlYSB0aGF0IHRoZXkgYXJlIGFjdHVhbGx5IAoJICogbW92aW5nIGl0IGFyb3VuZCB0aGUgcGFnZS4KCSAqICBAbWV0aG9kICBfZm5DcmVhdGVEcmFnTm9kZQoJICogIEByZXR1cm5zIHZvaWQKCSAqICBAcHJpdmF0ZSAKCSAqLwoJIl9mbkNyZWF0ZURyYWdOb2RlIjogZnVuY3Rpb24gKCkKCXsKCQl2YXIgdGhhdCA9IHRoaXM7CgkJCgkJdGhpcy5kb20uZHJhZyA9ICQodGhpcy5zLmR0Lm5USGVhZC5wYXJlbnROb2RlKS5jbG9uZSh0cnVlKVswXTsKCQl0aGlzLmRvbS5kcmFnLmNsYXNzTmFtZSArPSAiIERUQ1JfY2xvbmVkVGFibGUiOwoJCXdoaWxlICggdGhpcy5kb20uZHJhZy5nZXRFbGVtZW50c0J5VGFnTmFtZSgnY2FwdGlvbicpLmxlbmd0aCA+IDAgKQoJCXsKCQkJdGhpcy5kb20uZHJhZy5yZW1vdmVDaGlsZCggdGhpcy5kb20uZHJhZy5nZXRFbGVtZW50c0J5VGFnTmFtZSgnY2FwdGlvbicpWzBdICk7CgkJfQoJCXdoaWxlICggdGhpcy5kb20uZHJhZy5nZXRFbGVtZW50c0J5VGFnTmFtZSgndGJvZHknKS5sZW5ndGggPiAwICkKCQl7CgkJCXRoaXMuZG9tLmRyYWcucmVtb3ZlQ2hpbGQoIHRoaXMuZG9tLmRyYWcuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3Rib2R5JylbMF0gKTsKCQl9CgkJd2hpbGUgKCB0aGlzLmRvbS5kcmFnLmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0Zm9vdCcpLmxlbmd0aCA+IDAgKQoJCXsKCQkJdGhpcy5kb20uZHJhZy5yZW1vdmVDaGlsZCggdGhpcy5kb20uZHJhZy5nZXRFbGVtZW50c0J5VGFnTmFtZSgndGZvb3QnKVswXSApOwoJCX0KCQkKCQkkKCd0aGVhZCB0cjplcSgwKScsIHRoaXMuZG9tLmRyYWcpLmVhY2goIGZ1bmN0aW9uICgpIHsKCQkJJCgndGg6bm90KDplcSgnK3RoYXQucy5tb3VzZS50YXJnZXRJbmRleCsnKSknLCB0aGlzKS5yZW1vdmUoKTsKCQl9ICk7CgkJJCgndHInLCB0aGlzLmRvbS5kcmFnKS5oZWlnaHQoICQoJ3RyOmVxKDApJywgdGhhdC5zLmR0Lm5USGVhZCkuaGVpZ2h0KCkgKTsKCQkKCQkkKCd0aGVhZCB0cjpndCgwKScsIHRoaXMuZG9tLmRyYWcpLnJlbW92ZSgpOwoJCQoJCSQoJ3RoZWFkIHRoOmVxKDApJywgdGhpcy5kb20uZHJhZykuZWFjaCggZnVuY3Rpb24gKGkpIHsKCQkJdGhpcy5zdHlsZS53aWR0aCA9ICQoJ3RoOmVxKCcrdGhhdC5zLm1vdXNlLnRhcmdldEluZGV4KycpJywgdGhhdC5zLmR0Lm5USGVhZCkud2lkdGgoKSsicHgiOwoJCX0gKTsKCQkKCQl0aGlzLmRvbS5kcmFnLnN0eWxlLnBvc2l0aW9uID0gImFic29sdXRlIjsKCQl0aGlzLmRvbS5kcmFnLnN0eWxlLnRvcCA9ICIwcHgiOwoJCXRoaXMuZG9tLmRyYWcuc3R5bGUubGVmdCA9ICIwcHgiOwoJCXRoaXMuZG9tLmRyYWcuc3R5bGUud2lkdGggPSAkKCd0aDplcSgnK3RoYXQucy5tb3VzZS50YXJnZXRJbmRleCsnKScsIHRoYXQucy5kdC5uVEhlYWQpLm91dGVyV2lkdGgoKSsicHgiOwoJCQoJCQoJCXRoaXMuZG9tLnBvaW50ZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCAnZGl2JyApOwoJCXRoaXMuZG9tLnBvaW50ZXIuY2xhc3NOYW1lID0gIkRUQ1JfcG9pbnRlciI7CgkJdGhpcy5kb20ucG9pbnRlci5zdHlsZS5wb3NpdGlvbiA9ICJhYnNvbHV0ZSI7CgkJCgkJaWYgKCB0aGlzLnMuZHQub1Njcm9sbC5zWCA9PT0gIiIgJiYgdGhpcy5zLmR0Lm9TY3JvbGwuc1kgPT09ICIiICkKCQl7CgkJCXRoaXMuZG9tLnBvaW50ZXIuc3R5bGUudG9wID0gJCh0aGlzLnMuZHQublRhYmxlKS5vZmZzZXQoKS50b3ArInB4IjsKCQkJdGhpcy5kb20ucG9pbnRlci5zdHlsZS5oZWlnaHQgPSAkKHRoaXMucy5kdC5uVGFibGUpLmhlaWdodCgpKyJweCI7CgkJfQoJCWVsc2UKCQl7CgkJCXRoaXMuZG9tLnBvaW50ZXIuc3R5bGUudG9wID0gJCgnZGl2LmRhdGFUYWJsZXNfc2Nyb2xsJywgdGhpcy5zLmR0Lm5UYWJsZVdyYXBwZXIpLm9mZnNldCgpLnRvcCsicHgiOwoJCQl0aGlzLmRvbS5wb2ludGVyLnN0eWxlLmhlaWdodCA9ICQoJ2Rpdi5kYXRhVGFibGVzX3Njcm9sbCcsIHRoaXMucy5kdC5uVGFibGVXcmFwcGVyKS5oZWlnaHQoKSsicHgiOwoJCX0KCQoJCWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoIHRoaXMuZG9tLnBvaW50ZXIgKTsKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKCB0aGlzLmRvbS5kcmFnICk7Cgl9Cn07CgoKCgoKLyogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqCiAqIFN0YXRpYyBwYXJhbWV0ZXJzCiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKi8KCi8qKgogKiBBcnJheSBvZiBhbGwgQ29sUmVvcmRlciBpbnN0YW5jZXMgZm9yIGxhdGVyIHJlZmVyZW5jZQogKiAgQHByb3BlcnR5IENvbFJlb3JkZXIuYW9JbnN0YW5jZXMKICogIEB0eXBlICAgICBhcnJheQogKiAgQGRlZmF1bHQgIFtdCiAqICBAc3RhdGljCiAqLwpDb2xSZW9yZGVyLmFvSW5zdGFuY2VzID0gW107CgoKCgoKLyogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqCiAqIFN0YXRpYyBmdW5jdGlvbnMKICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqLwoKLyoqCiAqIFJlc2V0IHRoZSBjb2x1bW4gb3JkZXJpbmcgZm9yIGEgRGF0YVRhYmxlcyBpbnN0YW5jZQogKiAgQG1ldGhvZCAgQ29sUmVvcmRlci5mblJlc2V0CiAqICBAcGFyYW0gICBvYmplY3Qgb1RhYmxlIERhdGFUYWJsZXMgaW5zdGFuY2UgdG8gY29uc2lkZXIKICogIEByZXR1cm5zIHZvaWQKICogIEBzdGF0aWMKICovCkNvbFJlb3JkZXIuZm5SZXNldCA9IGZ1bmN0aW9uICggb1RhYmxlICkKewoJZm9yICggdmFyIGk9MCwgaUxlbj1Db2xSZW9yZGVyLmFvSW5zdGFuY2VzLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgl7CgkJaWYgKCBDb2xSZW9yZGVyLmFvSW5zdGFuY2VzW2ldLnMuZHQub0luc3RhbmNlID09IG9UYWJsZSApCgkJewoJCQlDb2xSZW9yZGVyLmFvSW5zdGFuY2VzW2ldLmZuUmVzZXQoKTsKCQl9Cgl9Cn07CgoKCgoKLyogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqCiAqIENvbnN0YW50cwogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICovCgovKioKICogTmFtZSBvZiB0aGlzIGNsYXNzCiAqICBAY29uc3RhbnQgQ0xBU1MKICogIEB0eXBlICAgICBTdHJpbmcKICogIEBkZWZhdWx0ICBDb2xSZW9yZGVyCiAqLwpDb2xSZW9yZGVyLnByb3RvdHlwZS5DTEFTUyA9ICJDb2xSZW9yZGVyIjsKCgovKioKICogQ29sUmVvcmRlciB2ZXJzaW9uCiAqICBAY29uc3RhbnQgIFZFUlNJT04KICogIEB0eXBlICAgICAgU3RyaW5nCiAqICBAZGVmYXVsdCAgIEFzIGNvZGUKICovCkNvbFJlb3JkZXIuVkVSU0lPTiA9ICIxLjAuNiI7CkNvbFJlb3JkZXIucHJvdG90eXBlLlZFUlNJT04gPSBDb2xSZW9yZGVyLlZFUlNJT047CgoKCgoKLyogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqCiAqIEluaXRpYWxpc2F0aW9uCiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKi8KCi8qCiAqIFJlZ2lzdGVyIGEgbmV3IGZlYXR1cmUgd2l0aCBEYXRhVGFibGVzCiAqLwppZiAoIHR5cGVvZiAkLmZuLmRhdGFUYWJsZSA9PSAiZnVuY3Rpb24iICYmCiAgICAgdHlwZW9mICQuZm4uZGF0YVRhYmxlRXh0LmZuVmVyc2lvbkNoZWNrID09ICJmdW5jdGlvbiIgJiYKICAgICAkLmZuLmRhdGFUYWJsZUV4dC5mblZlcnNpb25DaGVjaygnMS45LjAnKSApCnsKCSQuZm4uZGF0YVRhYmxlRXh0LmFvRmVhdHVyZXMucHVzaCggewoJCSJmbkluaXQiOiBmdW5jdGlvbiggb0RUU2V0dGluZ3MgKSB7CgkJCXZhciBvVGFibGUgPSBvRFRTZXR0aW5ncy5vSW5zdGFuY2U7CgkJCWlmICggdHlwZW9mIG9UYWJsZS5fb1BsdWdpbkNvbFJlb3JkZXIgPT0gJ3VuZGVmaW5lZCcgKSB7CgkJCQl2YXIgb3B0cyA9IHR5cGVvZiBvRFRTZXR0aW5ncy5vSW5pdC5vQ29sUmVvcmRlciAhPSAndW5kZWZpbmVkJyA/IAoJCQkJCW9EVFNldHRpbmdzLm9Jbml0Lm9Db2xSZW9yZGVyIDoge307CgkJCQlvVGFibGUuX29QbHVnaW5Db2xSZW9yZGVyID0gbmV3IENvbFJlb3JkZXIoIG9EVFNldHRpbmdzLm9JbnN0YW5jZSwgb3B0cyApOwoJCQl9IGVsc2UgewoJCQkJb1RhYmxlLm9BcGkuX2ZuTG9nKCBvRFRTZXR0aW5ncywgMSwgIkNvbFJlb3JkZXIgYXR0ZW1wdGVkIHRvIGluaXRpYWxpc2UgdHdpY2UuIElnbm9yaW5nIHNlY29uZCIgKTsKCQkJfQoJCQkKCQkJcmV0dXJuIG51bGw7IC8qIE5vIG5vZGUgdG8gaW5zZXJ0ICovCgkJfSwKCQkiY0ZlYXR1cmUiOiAiUiIsCgkJInNGZWF0dXJlIjogIkNvbFJlb3JkZXIiCgl9ICk7Cn0KZWxzZQp7CglhbGVydCggIldhcm5pbmc6IENvbFJlb3JkZXIgcmVxdWlyZXMgRGF0YVRhYmxlcyAxLjkuMCBvciBncmVhdGVyIC0gd3d3LmRhdGF0YWJsZXMubmV0L2Rvd25sb2FkIik7Cn0KCn0pKGpRdWVyeSwgd2luZG93LCBkb2N1bWVudCk7Cg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/media/js/ColReorder.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogRmlsZTogICAgICAgIENvbFJlb3JkZXIubWluLmpzCiAqIFZlcnNpb246ICAgICAxLjAuNgogKiBBdXRob3I6ICAgICAgQWxsYW4gSmFyZGluZSAod3d3LnNwcnltZWRpYS5jby51aykKICogCiAqIENvcHlyaWdodCAyMDEwLTIwMTIgQWxsYW4gSmFyZGluZSwgYWxsIHJpZ2h0cyByZXNlcnZlZC4KICoKICogVGhpcyBzb3VyY2UgZmlsZSBpcyBmcmVlIHNvZnR3YXJlLCB1bmRlciBlaXRoZXIgdGhlIEdQTCB2MiBsaWNlbnNlIG9yIGEKICogQlNEICgzIHBvaW50KSBzdHlsZSBsaWNlbnNlLCBhcyBzdXBwbGllZCB3aXRoIHRoaXMgc29mdHdhcmUuCiAqIAogKiBUaGlzIHNvdXJjZSBmaWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCAKICogV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgCiAqIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIGxpY2Vuc2UgZmlsZXMgZm9yIGRldGFpbHMuCiAqLwooZnVuY3Rpb24oZixvLGcpe2Z1bmN0aW9uIG0oYSl7Zm9yKHZhciBjPVtdLGQ9MCxiPWEubGVuZ3RoO2Q8YjtkKyspY1thW2RdXT1kO3JldHVybiBjfWZ1bmN0aW9uIGooYSxjLGQpe2M9YS5zcGxpY2UoYywxKVswXTthLnNwbGljZShkLDAsYyl9ZnVuY3Rpb24gbihhLGMsZCl7Zm9yKHZhciBiPVtdLGU9MCxmPWEuY2hpbGROb2Rlcy5sZW5ndGg7ZTxmO2UrKykxPT1hLmNoaWxkTm9kZXNbZV0ubm9kZVR5cGUmJmIucHVzaChhLmNoaWxkTm9kZXNbZV0pO2M9YltjXTtudWxsIT09ZD9hLmluc2VydEJlZm9yZShjLGJbZF0pOmEuYXBwZW5kQ2hpbGQoYyl9Zi5mbi5kYXRhVGFibGVFeHQub0FwaS5mbkNvbFJlb3JkZXI9ZnVuY3Rpb24oYSxjLGQpe3ZhciBiLGUsaCxsLGs9YS5hb0NvbHVtbnMubGVuZ3RoLGk7aWYoYyE9ZClpZigwPmN8fGM+PWspdGhpcy5vQXBpLl9mbkxvZyhhLDEsIkNvbFJlb3JkZXIgJ2Zyb20nIGluZGV4IGlzIG91dCBvZiBib3VuZHM6ICIrYyk7ZWxzZSBpZigwPmR8fApkPj1rKXRoaXMub0FwaS5fZm5Mb2coYSwxLCJDb2xSZW9yZGVyICd0bycgaW5kZXggaXMgb3V0IG9mIGJvdW5kczogIitkKTtlbHNle3ZhciBnPVtdO2I9MDtmb3IoZT1rO2I8ZTtiKyspZ1tiXT1iO2ooZyxjLGQpO2c9bShnKTtiPTA7Zm9yKGU9YS5hYVNvcnRpbmcubGVuZ3RoO2I8ZTtiKyspYS5hYVNvcnRpbmdbYl1bMF09Z1thLmFhU29ydGluZ1tiXVswXV07aWYobnVsbCE9PWEuYWFTb3J0aW5nRml4ZWQpe2I9MDtmb3IoZT1hLmFhU29ydGluZ0ZpeGVkLmxlbmd0aDtiPGU7YisrKWEuYWFTb3J0aW5nRml4ZWRbYl1bMF09Z1thLmFhU29ydGluZ0ZpeGVkW2JdWzBdXX1iPTA7Zm9yKGU9aztiPGU7YisrKXtpPWEuYW9Db2x1bW5zW2JdO2g9MDtmb3IobD1pLmFEYXRhU29ydC5sZW5ndGg7aDxsO2grKylpLmFEYXRhU29ydFtoXT1nW2kuYURhdGFTb3J0W2hdXX1iPTA7Zm9yKGU9aztiPGU7YisrKWk9YS5hb0NvbHVtbnNbYl0sIm51bWJlciI9PXR5cGVvZiBpLm1EYXRhUHJvcCYmKGkubURhdGFQcm9wPQpnW2kubURhdGFQcm9wXSxpLmZuR2V0RGF0YT1hLm9BcGkuX2ZuR2V0T2JqZWN0RGF0YUZuKGkubURhdGFQcm9wKSxpLmZuU2V0RGF0YT1hLm9BcGkuX2ZuU2V0T2JqZWN0RGF0YUZuKGkubURhdGFQcm9wKSk7aWYoYS5hb0NvbHVtbnNbY10uYlZpc2libGUpe2w9dGhpcy5vQXBpLl9mbkNvbHVtbkluZGV4VG9WaXNpYmxlKGEsYyk7aT1udWxsO2ZvcihiPWQ8Yz9kOmQrMTtudWxsPT09aSYmYjxrOylpPXRoaXMub0FwaS5fZm5Db2x1bW5JbmRleFRvVmlzaWJsZShhLGIpLGIrKztoPWEublRIZWFkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0ciIpO2I9MDtmb3IoZT1oLmxlbmd0aDtiPGU7YisrKW4oaFtiXSxsLGkpO2lmKG51bGwhPT1hLm5URm9vdCl7aD1hLm5URm9vdC5nZXRFbGVtZW50c0J5VGFnTmFtZSgidHIiKTtiPTA7Zm9yKGU9aC5sZW5ndGg7YjxlO2IrKyluKGhbYl0sbCxpKX1iPTA7Zm9yKGU9YS5hb0RhdGEubGVuZ3RoO2I8ZTtiKyspbnVsbCE9PWEuYW9EYXRhW2JdLm5UciYmCm4oYS5hb0RhdGFbYl0ublRyLGwsaSl9aihhLmFvQ29sdW1ucyxjLGQpO2ooYS5hb1ByZVNlYXJjaENvbHMsYyxkKTtiPTA7Zm9yKGU9YS5hb0RhdGEubGVuZ3RoO2I8ZTtiKyspZi5pc0FycmF5KGEuYW9EYXRhW2JdLl9hRGF0YSkmJmooYS5hb0RhdGFbYl0uX2FEYXRhLGMsZCksaihhLmFvRGF0YVtiXS5fYW5IaWRkZW4sYyxkKTtiPTA7Zm9yKGU9YS5hb0hlYWRlci5sZW5ndGg7YjxlO2IrKylqKGEuYW9IZWFkZXJbYl0sYyxkKTtpZihudWxsIT09YS5hb0Zvb3Rlcil7Yj0wO2ZvcihlPWEuYW9Gb290ZXIubGVuZ3RoO2I8ZTtiKyspaihhLmFvRm9vdGVyW2JdLGMsZCl9Yj0wO2ZvcihlPWs7YjxlO2IrKylmKGEuYW9Db2x1bW5zW2JdLm5UaCkudW5iaW5kKCJjbGljayIpLHRoaXMub0FwaS5fZm5Tb3J0QXR0YWNoTGlzdGVuZXIoYSxhLmFvQ29sdW1uc1tiXS5uVGgsYik7ZihhLm9JbnN0YW5jZSkudHJpZ2dlcigiY29sdW1uLXJlb3JkZXIiLFthLHtpRnJvbTpjLGlUbzpkLGFpSW52ZXJ0TWFwcGluZzpnfV0pOwoidW5kZWZpbmVkIiE9dHlwZW9mIGEub0luc3RhbmNlLl9vUGx1Z2luRml4ZWRIZWFkZXImJmEub0luc3RhbmNlLl9vUGx1Z2luRml4ZWRIZWFkZXIuZm5VcGRhdGUoKX19O0NvbFJlb3JkZXI9ZnVuY3Rpb24oYSxjKXsoIXRoaXMuQ0xBU1N8fCJDb2xSZW9yZGVyIiE9dGhpcy5DTEFTUykmJmFsZXJ0KCJXYXJuaW5nOiBDb2xSZW9yZGVyIG11c3QgYmUgaW5pdGlhbGlzZWQgd2l0aCB0aGUga2V5d29yZCAnbmV3JyIpOyJ1bmRlZmluZWQiPT10eXBlb2YgYyYmKGM9e30pO3RoaXMucz17ZHQ6bnVsbCxpbml0OmMsZml4ZWQ6MCxkcm9wQ2FsbGJhY2s6bnVsbCxtb3VzZTp7c3RhcnRYOi0xLHN0YXJ0WTotMSxvZmZzZXRYOi0xLG9mZnNldFk6LTEsdGFyZ2V0Oi0xLHRhcmdldEluZGV4Oi0xLGZyb21JbmRleDotMX0sYW9UYXJnZXRzOltdfTt0aGlzLmRvbT17ZHJhZzpudWxsLHBvaW50ZXI6bnVsbH07dGhpcy5zLmR0PWEuZm5TZXR0aW5ncygpO3RoaXMuX2ZuQ29uc3RydWN0KCk7Q29sUmVvcmRlci5hb0luc3RhbmNlcy5wdXNoKHRoaXMpOwpyZXR1cm4gdGhpc307Q29sUmVvcmRlci5wcm90b3R5cGU9e2ZuUmVzZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIGE9W10sYz0wLGQ9dGhpcy5zLmR0LmFvQ29sdW1ucy5sZW5ndGg7YzxkO2MrKylhLnB1c2godGhpcy5zLmR0LmFvQ29sdW1uc1tjXS5fQ29sUmVvcmRlcl9pT3JpZ0NvbCk7dGhpcy5fZm5PcmRlckNvbHVtbnMoYSl9LF9mbkNvbnN0cnVjdDpmdW5jdGlvbigpe3ZhciBhPXRoaXMsYyxkOyJ1bmRlZmluZWQiIT10eXBlb2YgdGhpcy5zLmluaXQuaUZpeGVkQ29sdW1ucyYmKHRoaXMucy5maXhlZD10aGlzLnMuaW5pdC5pRml4ZWRDb2x1bW5zKTsidW5kZWZpbmVkIiE9dHlwZW9mIHRoaXMucy5pbml0LmZuUmVvcmRlckNhbGxiYWNrJiYodGhpcy5zLmRyb3BDYWxsYmFjaz10aGlzLnMuaW5pdC5mblJlb3JkZXJDYWxsYmFjayk7Yz0wO2ZvcihkPXRoaXMucy5kdC5hb0NvbHVtbnMubGVuZ3RoO2M8ZDtjKyspYz50aGlzLnMuZml4ZWQtMSYmdGhpcy5fZm5Nb3VzZUxpc3RlbmVyKGMsCnRoaXMucy5kdC5hb0NvbHVtbnNbY10ublRoKSx0aGlzLnMuZHQuYW9Db2x1bW5zW2NdLl9Db2xSZW9yZGVyX2lPcmlnQ29sPWM7dGhpcy5zLmR0Lm9BcGkuX2ZuQ2FsbGJhY2tSZWcodGhpcy5zLmR0LCJhb1N0YXRlU2F2ZVBhcmFtcyIsZnVuY3Rpb24oYixjKXthLl9mblN0YXRlU2F2ZS5jYWxsKGEsYyl9LCJDb2xSZW9yZGVyX1N0YXRlIik7dmFyIGI9bnVsbDsidW5kZWZpbmVkIiE9dHlwZW9mIHRoaXMucy5pbml0LmFpT3JkZXImJihiPXRoaXMucy5pbml0LmFpT3JkZXIuc2xpY2UoKSk7dGhpcy5zLmR0Lm9Mb2FkZWRTdGF0ZSYmKCJ1bmRlZmluZWQiIT10eXBlb2YgdGhpcy5zLmR0Lm9Mb2FkZWRTdGF0ZS5Db2xSZW9yZGVyJiZ0aGlzLnMuZHQub0xvYWRlZFN0YXRlLkNvbFJlb3JkZXIubGVuZ3RoPT10aGlzLnMuZHQuYW9Db2x1bW5zLmxlbmd0aCkmJihiPXRoaXMucy5kdC5vTG9hZGVkU3RhdGUuQ29sUmVvcmRlcik7aWYoYilpZihhLnMuZHQuX2JJbml0Q29tcGxldGUpYz1tKGIpLAphLl9mbk9yZGVyQ29sdW1ucy5jYWxsKGEsYyk7ZWxzZXt2YXIgZT0hMTt0aGlzLnMuZHQuYW9EcmF3Q2FsbGJhY2sucHVzaCh7Zm46ZnVuY3Rpb24oKXtpZighYS5zLmR0Ll9iSW5pdENvbXBsZXRlJiYhZSl7ZT10cnVlO3ZhciBjPW0oYik7YS5fZm5PcmRlckNvbHVtbnMuY2FsbChhLGMpfX0sc05hbWU6IkNvbFJlb3JkZXJfUHJlIn0pfX0sX2ZuT3JkZXJDb2x1bW5zOmZ1bmN0aW9uKGEpe2lmKGEubGVuZ3RoIT10aGlzLnMuZHQuYW9Db2x1bW5zLmxlbmd0aCl0aGlzLnMuZHQub0luc3RhbmNlLm9BcGkuX2ZuTG9nKHRoaXMucy5kdCwxLCJDb2xSZW9yZGVyIC0gYXJyYXkgcmVvcmRlciBkb2VzIG5vdCBtYXRjaCBrbm93biBudW1iZXIgb2YgY29sdW1ucy4gU2tpcHBpbmcuIik7ZWxzZXtmb3IodmFyIGM9MCxkPWEubGVuZ3RoO2M8ZDtjKyspe3ZhciBiPWYuaW5BcnJheShjLGEpO2MhPWImJihqKGEsYixjKSx0aGlzLnMuZHQub0luc3RhbmNlLmZuQ29sUmVvcmRlcihiLGMpKX0oIiIhPT0KdGhpcy5zLmR0Lm9TY3JvbGwuc1h8fCIiIT09dGhpcy5zLmR0Lm9TY3JvbGwuc1kpJiZ0aGlzLnMuZHQub0luc3RhbmNlLmZuQWRqdXN0Q29sdW1uU2l6aW5nKCk7dGhpcy5zLmR0Lm9JbnN0YW5jZS5vQXBpLl9mblNhdmVTdGF0ZSh0aGlzLnMuZHQpfX0sX2ZuU3RhdGVTYXZlOmZ1bmN0aW9uKGEpe3ZhciBjLGQsYixlPXRoaXMucy5kdDtmb3IoYz0wO2M8YS5hYVNvcnRpbmcubGVuZ3RoO2MrKylhLmFhU29ydGluZ1tjXVswXT1lLmFvQ29sdW1uc1thLmFhU29ydGluZ1tjXVswXV0uX0NvbFJlb3JkZXJfaU9yaWdDb2w7YVNlYXJjaENvcHk9Zi5leHRlbmQoITAsW10sYS5hb1NlYXJjaENvbHMpO2EuQ29sUmVvcmRlcj1bXTtjPTA7Zm9yKGQ9ZS5hb0NvbHVtbnMubGVuZ3RoO2M8ZDtjKyspYj1lLmFvQ29sdW1uc1tjXS5fQ29sUmVvcmRlcl9pT3JpZ0NvbCxhLmFvU2VhcmNoQ29sc1tiXT1hU2VhcmNoQ29weVtjXSxhLmFiVmlzQ29sc1tiXT1lLmFvQ29sdW1uc1tjXS5iVmlzaWJsZSxhLkNvbFJlb3JkZXIucHVzaChiKX0sCl9mbk1vdXNlTGlzdGVuZXI6ZnVuY3Rpb24oYSxjKXt2YXIgZD10aGlzO2YoYykuYmluZCgibW91c2Vkb3duLkNvbFJlb3JkZXIiLGZ1bmN0aW9uKGEpe2EucHJldmVudERlZmF1bHQoKTtkLl9mbk1vdXNlRG93bi5jYWxsKGQsYSxjKX0pfSxfZm5Nb3VzZURvd246ZnVuY3Rpb24oYSxjKXt2YXIgZD10aGlzLGI9dGhpcy5zLmR0LmFvQ29sdW1ucyxlPSJUSCI9PWEudGFyZ2V0Lm5vZGVOYW1lP2EudGFyZ2V0OmYoYS50YXJnZXQpLnBhcmVudHMoIlRIIilbMF0sZT1mKGUpLm9mZnNldCgpO3RoaXMucy5tb3VzZS5zdGFydFg9YS5wYWdlWDt0aGlzLnMubW91c2Uuc3RhcnRZPWEucGFnZVk7dGhpcy5zLm1vdXNlLm9mZnNldFg9YS5wYWdlWC1lLmxlZnQ7dGhpcy5zLm1vdXNlLm9mZnNldFk9YS5wYWdlWS1lLnRvcDt0aGlzLnMubW91c2UudGFyZ2V0PWM7dGhpcy5zLm1vdXNlLnRhcmdldEluZGV4PWYoInRoIixjLnBhcmVudE5vZGUpLmluZGV4KGMpO3RoaXMucy5tb3VzZS5mcm9tSW5kZXg9CnRoaXMucy5kdC5vSW5zdGFuY2Uub0FwaS5fZm5WaXNpYmxlVG9Db2x1bW5JbmRleCh0aGlzLnMuZHQsdGhpcy5zLm1vdXNlLnRhcmdldEluZGV4KTt0aGlzLnMuYW9UYXJnZXRzLnNwbGljZSgwLHRoaXMucy5hb1RhcmdldHMubGVuZ3RoKTt0aGlzLnMuYW9UYXJnZXRzLnB1c2goe3g6Zih0aGlzLnMuZHQublRhYmxlKS5vZmZzZXQoKS5sZWZ0LHRvOjB9KTtmb3IodmFyIGg9ZT0wLGo9Yi5sZW5ndGg7aDxqO2grKyloIT10aGlzLnMubW91c2UuZnJvbUluZGV4JiZlKyssYltoXS5iVmlzaWJsZSYmdGhpcy5zLmFvVGFyZ2V0cy5wdXNoKHt4OmYoYltoXS5uVGgpLm9mZnNldCgpLmxlZnQrZihiW2hdLm5UaCkub3V0ZXJXaWR0aCgpLHRvOmV9KTswIT09dGhpcy5zLmZpeGVkJiZ0aGlzLnMuYW9UYXJnZXRzLnNwbGljZSgwLHRoaXMucy5maXhlZCk7ZihnKS5iaW5kKCJtb3VzZW1vdmUuQ29sUmVvcmRlciIsZnVuY3Rpb24oYSl7ZC5fZm5Nb3VzZU1vdmUuY2FsbChkLGEpfSk7ZihnKS5iaW5kKCJtb3VzZXVwLkNvbFJlb3JkZXIiLApmdW5jdGlvbihhKXtkLl9mbk1vdXNlVXAuY2FsbChkLGEpfSl9LF9mbk1vdXNlTW92ZTpmdW5jdGlvbihhKXtpZihudWxsPT09dGhpcy5kb20uZHJhZyl7aWYoNT5NYXRoLnBvdyhNYXRoLnBvdyhhLnBhZ2VYLXRoaXMucy5tb3VzZS5zdGFydFgsMikrTWF0aC5wb3coYS5wYWdlWS10aGlzLnMubW91c2Uuc3RhcnRZLDIpLDAuNSkpcmV0dXJuO3RoaXMuX2ZuQ3JlYXRlRHJhZ05vZGUoKX10aGlzLmRvbS5kcmFnLnN0eWxlLmxlZnQ9YS5wYWdlWC10aGlzLnMubW91c2Uub2Zmc2V0WCsicHgiO3RoaXMuZG9tLmRyYWcuc3R5bGUudG9wPWEucGFnZVktdGhpcy5zLm1vdXNlLm9mZnNldFkrInB4Ijtmb3IodmFyIGM9ITEsZD0xLGI9dGhpcy5zLmFvVGFyZ2V0cy5sZW5ndGg7ZDxiO2QrKylpZihhLnBhZ2VYPHRoaXMucy5hb1RhcmdldHNbZC0xXS54Kyh0aGlzLnMuYW9UYXJnZXRzW2RdLngtdGhpcy5zLmFvVGFyZ2V0c1tkLTFdLngpLzIpe3RoaXMuZG9tLnBvaW50ZXIuc3R5bGUubGVmdD0KdGhpcy5zLmFvVGFyZ2V0c1tkLTFdLngrInB4Ijt0aGlzLnMubW91c2UudG9JbmRleD10aGlzLnMuYW9UYXJnZXRzW2QtMV0udG87Yz0hMDticmVha31jfHwodGhpcy5kb20ucG9pbnRlci5zdHlsZS5sZWZ0PXRoaXMucy5hb1RhcmdldHNbdGhpcy5zLmFvVGFyZ2V0cy5sZW5ndGgtMV0ueCsicHgiLHRoaXMucy5tb3VzZS50b0luZGV4PXRoaXMucy5hb1RhcmdldHNbdGhpcy5zLmFvVGFyZ2V0cy5sZW5ndGgtMV0udG8pfSxfZm5Nb3VzZVVwOmZ1bmN0aW9uKCl7ZihnKS51bmJpbmQoIm1vdXNlbW92ZS5Db2xSZW9yZGVyIik7ZihnKS51bmJpbmQoIm1vdXNldXAuQ29sUmVvcmRlciIpO251bGwhPT10aGlzLmRvbS5kcmFnJiYoZy5ib2R5LnJlbW92ZUNoaWxkKHRoaXMuZG9tLmRyYWcpLGcuYm9keS5yZW1vdmVDaGlsZCh0aGlzLmRvbS5wb2ludGVyKSx0aGlzLmRvbS5kcmFnPW51bGwsdGhpcy5kb20ucG9pbnRlcj1udWxsLHRoaXMucy5kdC5vSW5zdGFuY2UuZm5Db2xSZW9yZGVyKHRoaXMucy5tb3VzZS5mcm9tSW5kZXgsCnRoaXMucy5tb3VzZS50b0luZGV4KSwoIiIhPT10aGlzLnMuZHQub1Njcm9sbC5zWHx8IiIhPT10aGlzLnMuZHQub1Njcm9sbC5zWSkmJnRoaXMucy5kdC5vSW5zdGFuY2UuZm5BZGp1c3RDb2x1bW5TaXppbmcoKSxudWxsIT09dGhpcy5zLmRyb3BDYWxsYmFjayYmdGhpcy5zLmRyb3BDYWxsYmFjay5jYWxsKHRoaXMpLHRoaXMucy5kdC5vSW5zdGFuY2Uub0FwaS5fZm5TYXZlU3RhdGUodGhpcy5zLmR0KSl9LF9mbkNyZWF0ZURyYWdOb2RlOmZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLmRvbS5kcmFnPWYodGhpcy5zLmR0Lm5USGVhZC5wYXJlbnROb2RlKS5jbG9uZSghMClbMF07Zm9yKHRoaXMuZG9tLmRyYWcuY2xhc3NOYW1lKz0iIERUQ1JfY2xvbmVkVGFibGUiOzA8dGhpcy5kb20uZHJhZy5nZXRFbGVtZW50c0J5VGFnTmFtZSgiY2FwdGlvbiIpLmxlbmd0aDspdGhpcy5kb20uZHJhZy5yZW1vdmVDaGlsZCh0aGlzLmRvbS5kcmFnLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJjYXB0aW9uIilbMF0pOwpmb3IoOzA8dGhpcy5kb20uZHJhZy5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJvZHkiKS5sZW5ndGg7KXRoaXMuZG9tLmRyYWcucmVtb3ZlQ2hpbGQodGhpcy5kb20uZHJhZy5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJvZHkiKVswXSk7Zm9yKDswPHRoaXMuZG9tLmRyYWcuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRmb290IikubGVuZ3RoOyl0aGlzLmRvbS5kcmFnLnJlbW92ZUNoaWxkKHRoaXMuZG9tLmRyYWcuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRmb290IilbMF0pO2YoInRoZWFkIHRyOmVxKDApIix0aGlzLmRvbS5kcmFnKS5lYWNoKGZ1bmN0aW9uKCl7ZigidGg6bm90KDplcSgiK2Eucy5tb3VzZS50YXJnZXRJbmRleCsiKSkiLHRoaXMpLnJlbW92ZSgpfSk7ZigidHIiLHRoaXMuZG9tLmRyYWcpLmhlaWdodChmKCJ0cjplcSgwKSIsYS5zLmR0Lm5USGVhZCkuaGVpZ2h0KCkpO2YoInRoZWFkIHRyOmd0KDApIix0aGlzLmRvbS5kcmFnKS5yZW1vdmUoKTtmKCJ0aGVhZCB0aDplcSgwKSIsCnRoaXMuZG9tLmRyYWcpLmVhY2goZnVuY3Rpb24oKXt0aGlzLnN0eWxlLndpZHRoPWYoInRoOmVxKCIrYS5zLm1vdXNlLnRhcmdldEluZGV4KyIpIixhLnMuZHQublRIZWFkKS53aWR0aCgpKyJweCJ9KTt0aGlzLmRvbS5kcmFnLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSI7dGhpcy5kb20uZHJhZy5zdHlsZS50b3A9IjBweCI7dGhpcy5kb20uZHJhZy5zdHlsZS5sZWZ0PSIwcHgiO3RoaXMuZG9tLmRyYWcuc3R5bGUud2lkdGg9ZigidGg6ZXEoIithLnMubW91c2UudGFyZ2V0SW5kZXgrIikiLGEucy5kdC5uVEhlYWQpLm91dGVyV2lkdGgoKSsicHgiO3RoaXMuZG9tLnBvaW50ZXI9Zy5jcmVhdGVFbGVtZW50KCJkaXYiKTt0aGlzLmRvbS5wb2ludGVyLmNsYXNzTmFtZT0iRFRDUl9wb2ludGVyIjt0aGlzLmRvbS5wb2ludGVyLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSI7IiI9PT10aGlzLnMuZHQub1Njcm9sbC5zWCYmIiI9PT10aGlzLnMuZHQub1Njcm9sbC5zWT8odGhpcy5kb20ucG9pbnRlci5zdHlsZS50b3A9CmYodGhpcy5zLmR0Lm5UYWJsZSkub2Zmc2V0KCkudG9wKyJweCIsdGhpcy5kb20ucG9pbnRlci5zdHlsZS5oZWlnaHQ9Zih0aGlzLnMuZHQublRhYmxlKS5oZWlnaHQoKSsicHgiKToodGhpcy5kb20ucG9pbnRlci5zdHlsZS50b3A9ZigiZGl2LmRhdGFUYWJsZXNfc2Nyb2xsIix0aGlzLnMuZHQublRhYmxlV3JhcHBlcikub2Zmc2V0KCkudG9wKyJweCIsdGhpcy5kb20ucG9pbnRlci5zdHlsZS5oZWlnaHQ9ZigiZGl2LmRhdGFUYWJsZXNfc2Nyb2xsIix0aGlzLnMuZHQublRhYmxlV3JhcHBlcikuaGVpZ2h0KCkrInB4Iik7Zy5ib2R5LmFwcGVuZENoaWxkKHRoaXMuZG9tLnBvaW50ZXIpO2cuYm9keS5hcHBlbmRDaGlsZCh0aGlzLmRvbS5kcmFnKX19O0NvbFJlb3JkZXIuYW9JbnN0YW5jZXM9W107Q29sUmVvcmRlci5mblJlc2V0PWZ1bmN0aW9uKGEpe2Zvcih2YXIgYz0wLGQ9Q29sUmVvcmRlci5hb0luc3RhbmNlcy5sZW5ndGg7YzxkO2MrKylDb2xSZW9yZGVyLmFvSW5zdGFuY2VzW2NdLnMuZHQub0luc3RhbmNlPT0KYSYmQ29sUmVvcmRlci5hb0luc3RhbmNlc1tjXS5mblJlc2V0KCl9O0NvbFJlb3JkZXIucHJvdG90eXBlLkNMQVNTPSJDb2xSZW9yZGVyIjtDb2xSZW9yZGVyLlZFUlNJT049IjEuMC42IjtDb2xSZW9yZGVyLnByb3RvdHlwZS5WRVJTSU9OPUNvbFJlb3JkZXIuVkVSU0lPTjsiZnVuY3Rpb24iPT10eXBlb2YgZi5mbi5kYXRhVGFibGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBmLmZuLmRhdGFUYWJsZUV4dC5mblZlcnNpb25DaGVjayYmZi5mbi5kYXRhVGFibGVFeHQuZm5WZXJzaW9uQ2hlY2soIjEuOS4wIik/Zi5mbi5kYXRhVGFibGVFeHQuYW9GZWF0dXJlcy5wdXNoKHtmbkluaXQ6ZnVuY3Rpb24oYSl7dmFyIGM9YS5vSW5zdGFuY2U7InVuZGVmaW5lZCI9PXR5cGVvZiBjLl9vUGx1Z2luQ29sUmVvcmRlcj9jLl9vUGx1Z2luQ29sUmVvcmRlcj1uZXcgQ29sUmVvcmRlcihhLm9JbnN0YW5jZSwidW5kZWZpbmVkIiE9dHlwZW9mIGEub0luaXQub0NvbFJlb3JkZXI/YS5vSW5pdC5vQ29sUmVvcmRlcjoKe30pOmMub0FwaS5fZm5Mb2coYSwxLCJDb2xSZW9yZGVyIGF0dGVtcHRlZCB0byBpbml0aWFsaXNlIHR3aWNlLiBJZ25vcmluZyBzZWNvbmQiKTtyZXR1cm4gbnVsbH0sY0ZlYXR1cmU6IlIiLHNGZWF0dXJlOiJDb2xSZW9yZGVyIn0pOmFsZXJ0KCJXYXJuaW5nOiBDb2xSZW9yZGVyIHJlcXVpcmVzIERhdGFUYWJsZXMgMS45LjAgb3IgZ3JlYXRlciAtIHd3dy5kYXRhdGFibGVzLm5ldC9kb3dubG9hZCIpfSkoalF1ZXJ5LHdpbmRvdyxkb2N1bWVudCk7Cg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/media/js/ColReorder.min.js.gz</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/predefined.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5Db2xSZW9yZGVyIGV4YW1wbGU8L3RpdGxlPgoJCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9ImN1cnJlbnRTdHlsZSI+CgkJCUBpbXBvcnQgIi4uLy4uL21lZGlhL2Nzcy9kZW1vX3BhZ2UuY3NzIjsKCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fdGFibGUuY3NzIjsKCQkJQGltcG9ydCAibWVkaWEvY3NzL0NvbFJlb3JkZXIuY3NzIjsKCQk8L3N0eWxlPgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIuLi8uLi9tZWRpYS9qcy9qcXVlcnkuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIuLi8uLi9tZWRpYS9qcy9qcXVlcnkuZGF0YVRhYmxlcy5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Im1lZGlhL2pzL0NvbFJlb3JkZXIuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CgkJCSQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkJCQl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCQkic0RvbSI6ICdSbGZydGlwJywKCQkJCQkib0NvbFJlb3JkZXIiOiB7CgkJCQkJCSJhaU9yZGVyIjogWyA0LCAzLCAyLCAxLCAwIF0KCQkJCQl9CgkJCQl9ICk7CgkJCX0gKTsKCQk8L3NjcmlwdD4KCTwvaGVhZD4KCTxib2R5IGlkPSJkdF9leGFtcGxlIj4KCQk8ZGl2IGlkPSJjb250YWluZXIiPgoJCQk8ZGl2IGNsYXNzPSJmdWxsX3dpZHRoIGJpZyI+CgkJCQlDb2xSZW9yZGVyIGV4YW1wbGUgd2l0aCBwcmVkZWZpbmVkIGNvbHVtbiBvcmRlcmluZwoJCQk8L2Rpdj4KCQkJCgkJCTxoMT5QcmVhbWJsZTwvaDE+CgkJCTxwPkNvbFJlb3JkZXIgcHJvdmlkZXMgdGhlIGFiaWxpdHkgdG8gc3BlY2lmeSBhIGNvbHVtbiBvcmRlcmluZyB3aGljaCBpcyBub3QgdGhhdCBvZiB0aGUKCQkJCUhUTUwgKHdoaWNoIHR5cGljYWxseSB5b3Ugd2lsbCB3YW50KSB0aHJvdWdoIHRoZSBwYXJhbWV0ZXIgb0NvbFJlb3JkZXIuYWlPcmRlci4gVGhpcyBpcwoJCQkJYW4gYXJyYXkgb2YgaW50ZWdlcnMgd2l0aCB0aGUgY29sdW1uIG9yZGVyaW5nIHlvdSB3YW50LjwvcD4KCQkJCgkJCTxoMT5MaXZlIGV4YW1wbGU8L2gxPgoJCQk8Zm9ybT4KCQkJPGRpdiBpZD0iZGVtbyI+Cjx0YWJsZSBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIGJvcmRlcj0iMCIgY2xhc3M9ImRpc3BsYXkiIGlkPSJleGFtcGxlIj4KCTx0aGVhZD4KCQk8dHI+CgkJCTx0aD5SZW5kZXJpbmcgZW5naW5lPC90aD4KCQkJPHRoPkJyb3dzZXI8L3RoPgoJCQk8dGg+UGxhdGZvcm0ocyk8L3RoPgoJCQk8dGg+RW5naW5lIHZlcnNpb248L3RoPgoJCQk8dGg+Q1NTIGdyYWRlPC90aD4KCQk8L3RyPgoJPC90aGVhZD4KCTx0Zm9vdD4KCQk8dHI+CgkJCTx0aD5SZW5kZXJpbmcgZW5naW5lPC90aD4KCQkJPHRoPkJyb3dzZXI8L3RoPgoJCQk8dGg+UGxhdGZvcm0ocyk8L3RoPgoJCQk8dGg+RW5naW5lIHZlcnNpb248L3RoPgoJCQk8dGg+Q1NTIGdyYWRlPC90aD4KCQk8L3RyPgoJPC90Zm9vdD4KCTx0Ym9keT4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZVgiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA0LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAoRW50aXR5OiAmYW1wOyk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUMiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjA8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS41PC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDY8L3RkPgoJCQk8dGQ+V2luIDk4KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNzwvdGQ+CgkJCTx0ZD5XaW4gWFAgU1AyKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkFPTCBicm93c2VyIChBT0wgZGVza3RvcCk8L3RkPgoJCQk8dGQ+V2luIFhQPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja28gKFVURi04OiAkwqLigqwpPC90ZD4KCQkJPHRkPkZpcmVmb3ggMS4wPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDEuNTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDIuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAzLjA8L3RkPgoJCQk8dGQ+V2luIDJrKyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuMDwvdGQ+CgkJCTx0ZD5PU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5DYW1pbm8gMS41PC90ZD4KCQkJPHRkPk9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgNy4yPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBNYWMgT1MgOC42LTkuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIEJyb3dzZXIgODwvdGQ+CgkJCTx0ZD5XaW4gOThTRSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIE5hdmlnYXRvciA5PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjE8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4yPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4yPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4zPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjY8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjc8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS44PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPlNlYW1vbmtleSAxLjE8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkVwaXBoYW55IDIuMjA8L3RkPgoJCQk8dGQ+R25vbWU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMS4yPC90ZD4KCQkJPHRkPk9TWC4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEyNS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDEuMzwvdGQ+CgkJCTx0ZD5PU1guMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zMTIuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDIuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDE5LjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMy4wPC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41MjIuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+T21uaVdlYiA1LjU8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQyMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPmlQb2QgVG91Y2ggLyBpUGhvbmU8L3RkPgoJCQk8dGQ+aVBvZDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MjAuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+UzYwPC90ZD4KCQkJPHRkPlM2MDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA3LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA3LjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOC4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOC41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuMjwvdGQ+CgkJCTx0ZD5XaW4gODgrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjU8L3RkPgoJCQk8dGQ+V2luIDg4KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSBmb3IgV2lpPC90ZD4KCQkJPHRkPldpaTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+Tm9raWEgTjgwMDwvdGQ+CgkJCTx0ZD5OODAwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5pbnRlbmRvIERTIGJyb3dzZXI8L3RkPgoJCQk8dGQ+TmludGVuZG8gRFM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+OC41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkMvQTxzdXA+MTwvc3VwPjwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVDIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy4xPC90ZD4KCQkJPHRkPktERSAzLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy4zPC90ZD4KCQkJPHRkPktERSAzLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuNTwvdGQ+CgkJCTx0ZD5LREUgMy41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlWCI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNC41PC90ZD4KCQkJPHRkPk1hYyBPUyA4LTk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUMiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMTwvdGQ+CgkJCTx0ZD5NYWMgT1MgNy42LTk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQyI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4yPC90ZD4KCQkJPHRkPk1hYyBPUyA4LVg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5OZXRGcm9udCAzLjE8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy40PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5EaWxsbyAwLjg8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TGlua3M8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+THlueDwvdGQ+CgkJCTx0ZD5UZXh0IG9ubHk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQyI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPklFIE1vYmlsZTwvdGQ+CgkJCTx0ZD5XaW5kb3dzIE1vYmlsZSA2PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVDIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+UFNQIGJyb3dzZXI8L3RkPgoJCQk8dGQ+UFNQPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZVUiPgoJCQk8dGQ+T3RoZXIgYnJvd3NlcnM8L3RkPgoJCQk8dGQ+QWxsIG90aGVyczwvdGQ+CgkJCTx0ZD4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+VTwvdGQ+CgkJPC90cj4KCTwvdGJvZHk+CjwvdGFibGU+CgkJCTwvZGl2PgoJCTwvZm9ybT4KCQkJPGRpdiBjbGFzcz0ic3BhY2VyIj48L2Rpdj4KCQkJCgkJCQoJCQk8aDE+RXhhbXBsZXM8L2gxPgoJCQk8dWw+CgkJCQk8bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+QmFzaWMgaW5pdGlhbGlzYXRpb248L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJhbHRfaW5zZXJ0Lmh0bWwiPlN0eWxpbmcgdGhlIGluc2VydCBjdXJzb3I8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJjb2xfZmlsdGVyLmh0bWwiPkluZGl2aWR1YWwgY29sdW1uIGZpbHRlcmluZzwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImNvbHZpcy5odG1sIj5JbnRlZ3JhdGlvbiB3aXRoIERhdGFUYWJsZXMnIENvbFZpcyBwbHVnLWluPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iZml4ZWRjb2x1bW5zLmh0bWwiPkludGVncmF0aW9uIHdpdGggRGF0YVRhYmxlcycgRml4ZWRDb2x1bW5zIHBsdWctaW48L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJmaXhlZGhlYWRlci5odG1sIj5JbnRlZ3JhdGlvbiB3aXRoIERhdGFUYWJsZXMnIEZpeGVkSGVhZGVyIHBsdWctaW48L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJwcmVkZWZpbmVkLmh0bWwiPlVzaW5nIGEgcHJlZGVmaW5lZCBjb2x1bW4gb3JkZXIgc2V0PC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0icmVzZXQuaHRtbCI+UHJvdmlkaW5nIGEgdXNlciBjb250cm9sIHRvIHJlc2V0IHRoZSBjb2x1bW4gb3JkZXI8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJzY3JvbGxpbmcuaHRtbCI+Q29sdW1uIHJlb3JkZXJpbmcgc2hvd24gd2l0aCBzY3JvbGxpbmcgaW4gRGF0YVRhYmxlczwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InNlcnZlcl9zaWRlLmh0bWwiPlNlcnZlci1zaWRlIHByb2Nlc3Npbmcgc3VwcG9ydDwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InN0YXRlX3NhdmUuaHRtbCI+U3RhdGUgc2F2aW5nIG9mIHRoZSBjb2x1bW4gcG9zaXRpb248L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJ0aGVtZS5odG1sIj5qUXVlcnkgVUkgdGhlbWUgaW50ZWdyYXRpb248L2E+PC9saT4KCQkJPC91bD4KCQkJCgkJCQoJCQk8aDE+SW5pdGlhbGlzYXRpb24gY29kZTwvaDE+CgkJCTxwcmU+JChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzRG9tIjogJ1JsZnJ0aXAnLAoJCSJvQ29sUmVvcmRlciI6IHsKCQkJImFpT3JkZXIiOiBbIDQsIDMsIDIsIDEsIDAgXQoJCX0KCX0gKTsKfSApOzwvcHJlPgoJCQkKCQkJPGRpdiBpZD0iZm9vdGVyIiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7Ij4KCQkJCTxzcGFuIHN0eWxlPSJmb250LXNpemU6MTBweDsiPgoJCQkJCUNvbFJlb3JkZXIgYW5kIERhdGFUYWJsZXMgJmNvcHk7IEFsbGFuIEphcmRpbmUgMjAxMAoJCQkJPC9zcGFuPgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/reset.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5Db2xSZW9yZGVyIGV4YW1wbGU8L3RpdGxlPgoJCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9ImN1cnJlbnRTdHlsZSI+CgkJCUBpbXBvcnQgIi4uLy4uL21lZGlhL2Nzcy9kZW1vX3BhZ2UuY3NzIjsKCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fdGFibGUuY3NzIjsKCQkJQGltcG9ydCAibWVkaWEvY3NzL0NvbFJlb3JkZXIuY3NzIjsKCQk8L3N0eWxlPgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIuLi8uLi9tZWRpYS9qcy9qcXVlcnkuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIuLi8uLi9tZWRpYS9qcy9qcXVlcnkuZGF0YVRhYmxlcy5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Im1lZGlhL2pzL0NvbFJlb3JkZXIuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CgkJCSQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkJCQl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCQkic0RvbSI6ICdSbGZydGlwJywKCQkJCQkib0NvbFJlb3JkZXIiOiB7CgkJCQkJCSJhaU9yZGVyIjogWyA0LCAzLCAyLCAxLCAwIF0KCQkJCQl9CgkJCQl9ICk7CgkJCQkKCQkJCSQoJyNyZXNldCcpLmNsaWNrKCBmdW5jdGlvbiAoKSB7CgkJCQkJQ29sUmVvcmRlci5mblJlc2V0KCBvVGFibGUgKTsKCQkJCQlyZXR1cm4gZmFsc2U7CgkJCQl9ICk7CgkJCX0gKTsKCQkJCgkJCS8qCgkJCSAqIEFsdGVybmF0aXZlIGludGlhbGlzYXRpb24gdXNpbmcgJ25ldycKCQkJCgkJCSQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkJCQl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCQkJCXZhciBjb2xyZW9yZGVyID0gbmV3IENvbFJlb3JkZXIoIG9UYWJsZSwgewoJCQkJCSJhaU9yZGVyIjogWyA0LCAzLCAyLCAxLCAwIF0KCQkJCX0gKTsKCQkJCQoJCQkJJCgnI3Jlc2V0JykuY2xpY2soIGZ1bmN0aW9uICgpIHsKCQkJCQljb2xyZW9yZGVyLmZuUmVzZXQoKTsKCQkJCQlyZXR1cm4gZmFsc2U7CgkJCQl9ICk7CgkJCX0gKTsKCQkJCgkJCSAqCgkJCSAqLwoJCTwvc2NyaXB0PgoJPC9oZWFkPgoJPGJvZHkgaWQ9ImR0X2V4YW1wbGUiPgoJCTxkaXYgaWQ9ImNvbnRhaW5lciI+CgkJCTxkaXYgY2xhc3M9ImZ1bGxfd2lkdGggYmlnIj4KCQkJCUNvbFJlb3JkZXIgZXhhbXBsZSB3aXRoIHRoZSBhYmlsaXR5IHRvIHJlc2V0IHRoZSBvcmRlcmluZwoJCQk8L2Rpdj4KCQkJCgkJCTxoMT5QcmVhbWJsZTwvaDE+CgkJCTxwPk9uZSB1c2VmdWwgY29udHJvbCBvcHRpb24gdG8gcHJlc2VudCB0aGUgZW5kIHVzZXIgd2hlbiB1c2luZyBDb2xSZW9yZGVyIGlzIHRoZSBhYmlsaXR5CgkJCQl0byByZXNldCB0aGUgY29sdW1uIG9yZGVyaW5nIHRvIHRoYXQgd2hpY2ggd2FzIGZvdW5kIGluIHRoZSBIVE1MLiBUaGlzIGNhbiBiZSBkb25lIGJ5CgkJCQljYWxsaW5nIHRoZSBmblJlc2V0IEFQSSBmdW5jdGlvbi4gV2hpbGUgQ29sUmVvcmRlciBkb2VzIG5vdCBwcm92aWRlIGEgdmlzdWFsIGVsZW1lbnQgZm9yCgkJCQl0aGlzIGl0c2VsZiAoaW4gb3JkZXIgdG8gcHJvdmlkZSBtYXhpbXVtIGZsZXhpYmlsaXR5KSBpdCBpcyBlYXN5IHRvIGhvb2sgdG8gYW4gZXZlbnQKCQkJCWhhbmRsZXIsIGFzIHNob3duIGluIHRoaXMgZXhhbXBsZS48L3A+CgkJCQoJCQk8aDE+TGl2ZSBleGFtcGxlPC9oMT4KCQkJPGZvcm0+CgkJCTxkaXYgaWQ9ImRlbW8iPgo8YnV0dG9uIGlkPSJyZXNldCI+UmVzZXQgdG8gb3JpZ2luYWwgSFRNTCBvcmRlcjwvYnV0dG9uPjxicj48YnI+Cgo8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIGNsYXNzPSJkaXNwbGF5IiBpZD0iZXhhbXBsZSI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGZvb3Q+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGZvb3Q+Cgk8dGJvZHk+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVYIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNC4wPC90ZD4KCQkJPHRkPldpbiA5NSsgKEVudGl0eTogJmFtcDspPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVDIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4wPC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA2PC90ZD4KCQkJPHRkPldpbiA5OCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDc8L3RkPgoJCQk8dGQ+V2luIFhQIFNQMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5BT0wgYnJvd3NlciAoQU9MIGRlc2t0b3ApPC90ZD4KCQkJPHRkPldpbiBYUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvIChVVEYtODogJMKi4oKsKTwvdGQ+CgkJCTx0ZD5GaXJlZm94IDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjU8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAyLjA8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMy4wPC90ZD4KCQkJPHRkPldpbiAyaysgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS45PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkNhbWlubyAxLjA8L3RkPgoJCQk8dGQ+T1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuNTwvdGQ+CgkJCTx0ZD5PU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIDcuMjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gTWFjIE9TIDguNi05LjI8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSBCcm93c2VyIDg8L3RkPgoJCQk8dGQ+V2luIDk4U0UrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSBOYXZpZ2F0b3IgOTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4xPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMzwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjQ8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS42PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS43PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuODwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5TZWFtb25rZXkgMS4xPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5FcGlwaGFueSAyLjIwPC90ZD4KCQkJPHRkPkdub21lPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDEuMjwvdGQ+CgkJCTx0ZD5PU1guMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xMjUuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjM8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MzEyLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAyLjA8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQxOS4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDMuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTIyLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPk9tbmlXZWIgNS41PC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MjA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5pUG9kIFRvdWNoIC8gaVBob25lPC90ZD4KCQkJPHRkPmlQb2Q8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlM2MDwvdGQ+CgkJCTx0ZD5TNjA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDEzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgNy4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgNy41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDguMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDguNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjI8L3RkPgoJCQk8dGQ+V2luIDg4KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS41PC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgZm9yIFdpaTwvdGQ+CgkJCTx0ZD5XaWk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5va2lhIE44MDA8L3RkPgoJCQk8dGQ+TjgwMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5OaW50ZW5kbyBEUyBicm93c2VyPC90ZD4KCQkJPHRkPk5pbnRlbmRvIERTPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjguNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DL0E8c3VwPjE8L3N1cD48L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQyI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuMTwvdGQ+CgkJCTx0ZD5LREUgMy4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuMzwvdGQ+CgkJCTx0ZD5LREUgMy4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjU8L3RkPgoJCQk8dGQ+S0RFIDMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZVgiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDQuNTwvdGQ+CgkJCTx0ZD5NYWMgT1MgOC05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVDIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjE8L3RkPgoJCQk8dGQ+TWFjIE9TIDcuNi05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUMiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMjwvdGQ+CgkJCTx0ZD5NYWMgT1MgOC1YPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy4xPC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPk5ldEZyb250IDMuNDwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+RGlsbG8gMC44PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkxpbmtzPC90ZD4KCQkJPHRkPlRleHQgb25seTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkx5bng8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUMiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5JRSBNb2JpbGU8L3RkPgoJCQk8dGQ+V2luZG93cyBNb2JpbGUgNjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQyI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPlBTUCBicm93c2VyPC90ZD4KCQkJPHRkPlBTUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVVIj4KCQkJPHRkPk90aGVyIGJyb3dzZXJzPC90ZD4KCQkJPHRkPkFsbCBvdGhlcnM8L3RkPgoJCQk8dGQ+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlU8L3RkPgoJCTwvdHI+Cgk8L3Rib2R5Pgo8L3RhYmxlPgoJCQk8L2Rpdj4KCQk8L2Zvcm0+CgkJCTxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CgkJCQoJCQkKCQkJPGgxPkV4YW1wbGVzPC9oMT4KCQkJPHVsPgoJCQkJPGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkJhc2ljIGluaXRpYWxpc2F0aW9uPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iYWx0X2luc2VydC5odG1sIj5TdHlsaW5nIHRoZSBpbnNlcnQgY3Vyc29yPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iY29sX2ZpbHRlci5odG1sIj5JbmRpdmlkdWFsIGNvbHVtbiBmaWx0ZXJpbmc8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJjb2x2aXMuaHRtbCI+SW50ZWdyYXRpb24gd2l0aCBEYXRhVGFibGVzJyBDb2xWaXMgcGx1Zy1pbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImZpeGVkY29sdW1ucy5odG1sIj5JbnRlZ3JhdGlvbiB3aXRoIERhdGFUYWJsZXMnIEZpeGVkQ29sdW1ucyBwbHVnLWluPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iZml4ZWRoZWFkZXIuaHRtbCI+SW50ZWdyYXRpb24gd2l0aCBEYXRhVGFibGVzJyBGaXhlZEhlYWRlciBwbHVnLWluPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0icHJlZGVmaW5lZC5odG1sIj5Vc2luZyBhIHByZWRlZmluZWQgY29sdW1uIG9yZGVyIHNldDwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InJlc2V0Lmh0bWwiPlByb3ZpZGluZyBhIHVzZXIgY29udHJvbCB0byByZXNldCB0aGUgY29sdW1uIG9yZGVyPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ic2Nyb2xsaW5nLmh0bWwiPkNvbHVtbiByZW9yZGVyaW5nIHNob3duIHdpdGggc2Nyb2xsaW5nIGluIERhdGFUYWJsZXM8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJzZXJ2ZXJfc2lkZS5odG1sIj5TZXJ2ZXItc2lkZSBwcm9jZXNzaW5nIHN1cHBvcnQ8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJzdGF0ZV9zYXZlLmh0bWwiPlN0YXRlIHNhdmluZyBvZiB0aGUgY29sdW1uIHBvc2l0aW9uPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0idGhlbWUuaHRtbCI+alF1ZXJ5IFVJIHRoZW1lIGludGVncmF0aW9uPC9hPjwvbGk+CgkJCTwvdWw+CgkJCQoJCQkKCQkJPGgxPkluaXRpYWxpc2F0aW9uIGNvZGU8L2gxPgoJCQk8cHJlPiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0RvbSI6ICdSbGZydGlwJywKCQkib0NvbFJlb3JkZXIiOiB7CgkJCSJhaU9yZGVyIjogWyA0LCAzLCAyLCAxLCAwIF0KCQl9Cgl9ICk7CgkKCSQoJyNyZXNldCcpLmNsaWNrKCBmdW5jdGlvbiAoKSB7CgkJQ29sUmVvcmRlci5mblJlc2V0KCBvVGFibGUgKTsKCQlyZXR1cm4gZmFsc2U7Cgl9ICk7Cn0gKTs8L3ByZT4KCQkJCgkJCTxkaXYgaWQ9ImZvb3RlciIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyOyI+CgkJCQk8c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwcHg7Ij4KCQkJCQlDb2xSZW9yZGVyIGFuZCBEYXRhVGFibGVzICZjb3B5OyBBbGxhbiBKYXJkaW5lIDIwMTAKCQkJCTwvc3Bhbj4KCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2JvZHk+CjwvaHRtbD4=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/scrolling.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5Db2xSZW9yZGVyIGV4YW1wbGU8L3RpdGxlPgoJCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9ImN1cnJlbnRTdHlsZSI+CgkJCUBpbXBvcnQgIi4uLy4uL21lZGlhL2Nzcy9kZW1vX3BhZ2UuY3NzIjsKCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fdGFibGUuY3NzIjsKCQkJQGltcG9ydCAibWVkaWEvY3NzL0NvbFJlb3JkZXIuY3NzIjsKCQk8L3N0eWxlPgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIuLi8uLi9tZWRpYS9qcy9qcXVlcnkuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIuLi8uLi9tZWRpYS9qcy9qcXVlcnkuZGF0YVRhYmxlcy5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Im1lZGlhL2pzL0NvbFJlb3JkZXIuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CgkJCSQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkJCQl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCQkic0RvbSI6ICdSbGZydGlwJywKCQkJCQkic1Njcm9sbFkiOiAiMjAwcHgiLAoJCQkJCSJiUGFnaW5hdGUiOiBmYWxzZQoJCQkJfSApOwoJCQl9ICk7CgkJPC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keSBpZD0iZHRfZXhhbXBsZSI+CgkJPGRpdiBpZD0iY29udGFpbmVyIj4KCQkJPGRpdiBjbGFzcz0iZnVsbF93aWR0aCBiaWciPgoJCQkJQ29sUmVvcmRlciBleGFtcGxlIHdpdGggc2Nyb2xsaW5nCgkJCTwvZGl2PgoJCQkKCQkJPGgxPlByZWFtYmxlPC9oMT4KCQkJPHA+VGhpcyBpcyBhIHNpbXBsZSBleGFtcGxlIHRvIHNob3cgQ29sUmVvcmRlciB3b3JraW5nIHdpdGggRGF0YVRhYmxlcyBzY3JvbGxpbmcuPC9wPgoJCQkKCQkJPGgxPkxpdmUgZXhhbXBsZTwvaDE+CgkJCTxmb3JtPgoJCQk8ZGl2IGlkPSJkZW1vIj4KPHRhYmxlIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgYm9yZGVyPSIwIiBjbGFzcz0iZGlzcGxheSIgaWQ9ImV4YW1wbGUiPgoJPHRoZWFkPgoJCTx0cj4KCQkJPHRoPlJlbmRlcmluZyBlbmdpbmU8L3RoPgoJCQk8dGg+QnJvd3NlcjwvdGg+CgkJCTx0aD5QbGF0Zm9ybShzKTwvdGg+CgkJCTx0aD5FbmdpbmUgdmVyc2lvbjwvdGg+CgkJCTx0aD5DU1MgZ3JhZGU8L3RoPgoJCTwvdHI+Cgk8L3RoZWFkPgoJPHRmb290PgoJCTx0cj4KCQkJPHRoPlJlbmRlcmluZyBlbmdpbmU8L3RoPgoJCQk8dGg+QnJvd3NlcjwvdGg+CgkJCTx0aD5QbGF0Zm9ybShzKTwvdGg+CgkJCTx0aD5FbmdpbmUgdmVyc2lvbjwvdGg+CgkJCTx0aD5DU1MgZ3JhZGU8L3RoPgoJCTwvdHI+Cgk8L3Rmb290PgoJPHRib2R5PgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlWCI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDQuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIChFbnRpdHk6ICZhbXA7KTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQyI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjU8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNjwvdGQ+CgkJCTx0ZD5XaW4gOTgrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA3PC90ZD4KCQkJPHRkPldpbiBYUCBTUDIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+QU9MIGJyb3dzZXIgKEFPTCBkZXNrdG9wKTwvdGQ+CgkJCTx0ZD5XaW4gWFA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbyAoVVRGLTg6ICTCouKCrCk8L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjA8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMS41PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMi4wPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDMuMDwvdGQ+CgkJCTx0ZD5XaW4gMmsrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5DYW1pbm8gMS4wPC90ZD4KCQkJPHRkPk9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkNhbWlubyAxLjU8L3RkPgoJCQk8dGQ+T1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSA3LjI8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE1hYyBPUyA4LjYtOS4yPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgQnJvd3NlciA4PC90ZD4KCQkJPHRkPldpbiA5OFNFKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgTmF2aWdhdG9yIDk8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjI8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjI8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjM8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS40PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS40PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNzwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjg8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+U2VhbW9ua2V5IDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RXBpcGhhbnkgMi4yMDwvdGQ+CgkJCTx0ZD5Hbm9tZTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjI8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTI1LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMS4zPC90ZD4KCQkJPHRkPk9TWC4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMxMi44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMi4wPC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTkuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAzLjA8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUyMi4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5PbW5pV2ViIDUuNTwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+aVBvZCBUb3VjaCAvIGlQaG9uZTwvdGQ+CgkJCTx0ZD5pUG9kPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQyMC4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TNjA8L3RkPgoJCQk8dGQ+UzYwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQxMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDcuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDcuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA4LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA4LjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS4yPC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuNTwvdGQ+CgkJCTx0ZD5XaW4gODgrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIGZvciBXaWk8L3RkPgoJCQk8dGQ+V2lpPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5Ob2tpYSBOODAwPC90ZD4KCQkJPHRkPk44MDA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+TmludGVuZG8gRFMgYnJvd3NlcjwvdGQ+CgkJCTx0ZD5OaW50ZW5kbyBEUzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj44LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+Qy9BPHN1cD4xPC9zdXA+PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUMiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjE8L3RkPgoJCQk8dGQ+S0RFIDMuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjM8L3RkPgoJCQk8dGQ+S0RFIDMuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy41PC90ZD4KCQkJPHRkPktERSAzLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVYIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA0LjU8L3RkPgoJCQk8dGQ+TWFjIE9TIDgtOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQyI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4xPC90ZD4KCQkJPHRkPk1hYyBPUyA3LjYtOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVDIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjI8L3RkPgoJCQk8dGQ+TWFjIE9TIDgtWDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPk5ldEZyb250IDMuMTwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5OZXRGcm9udCAzLjQ8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkRpbGxvIDAuODwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5MaW5rczwvdGQ+CgkJCTx0ZD5UZXh0IG9ubHk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5MeW54PC90ZD4KCQkJPHRkPlRleHQgb25seTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVDIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+SUUgTW9iaWxlPC90ZD4KCQkJPHRkPldpbmRvd3MgTW9iaWxlIDY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUMiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5QU1AgYnJvd3NlcjwvdGQ+CgkJCTx0ZD5QU1A8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlVSI+CgkJCTx0ZD5PdGhlciBicm93c2VyczwvdGQ+CgkJCTx0ZD5BbGwgb3RoZXJzPC90ZD4KCQkJPHRkPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5VPC90ZD4KCQk8L3RyPgoJPC90Ym9keT4KPC90YWJsZT4KCQkJPC9kaXY+CgkJPC9mb3JtPgoJCQk8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgoJCQkKCQkJCgkJCTxoMT5FeGFtcGxlczwvaDE+CgkJCTx1bD4KCQkJCTxsaT48YSBocmVmPSJpbmRleC5odG1sIj5CYXNpYyBpbml0aWFsaXNhdGlvbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImFsdF9pbnNlcnQuaHRtbCI+U3R5bGluZyB0aGUgaW5zZXJ0IGN1cnNvcjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImNvbF9maWx0ZXIuaHRtbCI+SW5kaXZpZHVhbCBjb2x1bW4gZmlsdGVyaW5nPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iY29sdmlzLmh0bWwiPkludGVncmF0aW9uIHdpdGggRGF0YVRhYmxlcycgQ29sVmlzIHBsdWctaW48L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJmaXhlZGNvbHVtbnMuaHRtbCI+SW50ZWdyYXRpb24gd2l0aCBEYXRhVGFibGVzJyBGaXhlZENvbHVtbnMgcGx1Zy1pbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImZpeGVkaGVhZGVyLmh0bWwiPkludGVncmF0aW9uIHdpdGggRGF0YVRhYmxlcycgRml4ZWRIZWFkZXIgcGx1Zy1pbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InByZWRlZmluZWQuaHRtbCI+VXNpbmcgYSBwcmVkZWZpbmVkIGNvbHVtbiBvcmRlciBzZXQ8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJyZXNldC5odG1sIj5Qcm92aWRpbmcgYSB1c2VyIGNvbnRyb2wgdG8gcmVzZXQgdGhlIGNvbHVtbiBvcmRlcjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InNjcm9sbGluZy5odG1sIj5Db2x1bW4gcmVvcmRlcmluZyBzaG93biB3aXRoIHNjcm9sbGluZyBpbiBEYXRhVGFibGVzPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ic2VydmVyX3NpZGUuaHRtbCI+U2VydmVyLXNpZGUgcHJvY2Vzc2luZyBzdXBwb3J0PC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ic3RhdGVfc2F2ZS5odG1sIj5TdGF0ZSBzYXZpbmcgb2YgdGhlIGNvbHVtbiBwb3NpdGlvbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InRoZW1lLmh0bWwiPmpRdWVyeSBVSSB0aGVtZSBpbnRlZ3JhdGlvbjwvYT48L2xpPgoJCQk8L3VsPgoJCQkKCQkJCgkJCTxoMT5Jbml0aWFsaXNhdGlvbiBjb2RlPC9oMT4KCQkJPHByZT4kKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNEb20iOiAnUmxmcnRpcCcsCgkJInNTY3JvbGxZIjogIjIwMHB4IiwKCQkiYlBhZ2luYXRlIjogZmFsc2UKCX0gKTsKfSApOzwvcHJlPgoJCQkKCQkJPGRpdiBpZD0iZm9vdGVyIiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7Ij4KCQkJCTxzcGFuIHN0eWxlPSJmb250LXNpemU6MTBweDsiPgoJCQkJCUNvbFJlb3JkZXIgYW5kIERhdGFUYWJsZXMgJmNvcHk7IEFsbGFuIEphcmRpbmUgMjAxMAoJCQkJPC9zcGFuPgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/server_side.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5Db2xSZW9yZGVyIGV4YW1wbGU8L3RpdGxlPgoJCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9ImN1cnJlbnRTdHlsZSI+CgkJCUBpbXBvcnQgIi4uLy4uL21lZGlhL2Nzcy9kZW1vX3BhZ2UuY3NzIjsKCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fdGFibGUuY3NzIjsKCQkJQGltcG9ydCAibWVkaWEvY3NzL0NvbFJlb3JkZXIuY3NzIjsKCQk8L3N0eWxlPgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIuLi8uLi9tZWRpYS9qcy9qcXVlcnkuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIuLi8uLi9tZWRpYS9qcy9qcXVlcnkuZGF0YVRhYmxlcy5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Im1lZGlhL2pzL0NvbFJlb3JkZXIuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CgkJCSQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkJCQl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCQkic0RvbSI6ICdSbGZydGlwJywKCQkJCQkiYlByb2Nlc3NpbmciOiB0cnVlLAoJCQkJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJCQkJInNBamF4U291cmNlIjogIi4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvb2JqZWN0cy5waHAiLAoJCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJCXsgIm1EYXRhUHJvcCI6ICJlbmdpbmUiIH0sCgkJCQkJCXsgIm1EYXRhUHJvcCI6ICJicm93c2VyIiB9LAoJCQkJCQl7ICJtRGF0YVByb3AiOiAicGxhdGZvcm0iIH0sCgkJCQkJCXsgIm1EYXRhUHJvcCI6ICJ2ZXJzaW9uIiB9LAoJCQkJCQl7ICJtRGF0YVByb3AiOiAiZ3JhZGUiIH0KCQkJCQldCgkJCQl9ICk7CgkJCX0gKTsKCQk8L3NjcmlwdD4KCTwvaGVhZD4KCTxib2R5IGlkPSJkdF9leGFtcGxlIj4KCQk8ZGl2IGlkPSJjb250YWluZXIiPgoJCQk8ZGl2IGNsYXNzPSJmdWxsX3dpZHRoIGJpZyI+CgkJCQlDb2xSZW9yZGVyIGV4YW1wbGUgd2l0aCBzZXJ2ZXItc2lkZSBwcm9jZXNzaW5nCgkJCTwvZGl2PgoJCQkKCQkJPGgxPlByZWFtYmxlPC9oMT4KCQkJPHA+U2VydmVyLXNpZGUgcHJvY2Vzc2luZyBjYW4gYmUgZXhjZXB0aW9uYWxseSB1c2VmdWwgaW4gRGF0YVRhYmxlcyB3aGVuIGRlYWxpbmcgd2l0aCAKCQkJCW1hc3NpdmUgZGF0YSBzZXRzLCBhbmQgQ29sUmVvcmRlciB3b3JrcyB3aXRoIHRoaXMgYXMgd291bGQgYmUgZXhwZWN0ZWQuIFRoZXJlIG11c3QgYmUKCQkJCXNwZWNpYWwgY29uc2lkZXJhdGlvbiBmb3IgdGhlIGNvbHVtbiBvcmRlcmluZyBvbiB0aGUgc2VydmVyLXNpZGUgc2NyaXB0IHNpbmNlIHRoZSAKCQkJCWNvbHVtbnMgY2FuIGJlIGluIGFuIHVuZXhwZWN0ZWQgb3JkZXIuIEZvciB0aGlzIHlvdSBjYW4gZWl0aGVyIGNob29zZSB0byB1c2UgdGhlIAoJCQkJPGk+c05hbWU8L2k+IHBhcmFtZXRlciBmb3IgZWFjaCBjb2x1bW4gYW5kIHRha2UgdGhpcyBpbnRvIGFjY291bnQgaW4gdGhlIHNlcnZlci1zaWRlCgkJCQlzY3JpcHQgKHRoZSBwYXJhbWV0ZXIgJ3NDb2x1bW5zJyBpcyBhIGNvbW1hIHNlcGFyYXRlZCBzdHJpbmcgb2YgdGhlc2Ugc05hbWUgcGFyYW1ldGVycykuPC9wPgoJCQkKCQkJPC9wPkFsdGVybmF0aXZlbHkgdXNlIHRoZSBtb3JlIGZsZXhpYmxlIDxhIGhyZWY9Imh0dHA6Ly9kYXRhdGFibGVzLm5ldC91c2FnZS9jb2x1bW5zI21EYXRhUHJvcCI+bURhdGFQcm9wPC9hPgoJCQkJb3B0aW9uIGZvciBlYWNoIGNvbHVtbi4gVGhpcyBhbGxvd3MgeW91IHRvIHVzZSBKU09OIG9iamVjdHMgd2hpY2ggRGF0YVRhYmxlcywgc28gb3JkZXIgZG9lc24ndAoJCQkJbWF0dGVyIGxpa2UgaXQgd291bGQgZG8gaW4gYW4gYXJyYXkuIEFnYWluIHRoZSBzZXJ2ZXItc2lkZSBzY3JpcHQgbXVzdCB0YWtlIHRoaXMgaW50byBhY2NvdW50CgkJCQl0aHJvdWdoIHRoZSA8aT5tRGF0YVByb3Bfe2l9PC9pPiB3aGljaCBpcyBzZW50IGZvciBlYWNoIGNvbHVtbiAoc28gdGhlIHNlcnZlciBrbm93cyB3aGljaAoJCQkJY29sdW1uIGlzIHRvIGJlIHNvcnRlZCBvbikuPC9wPgoJCQkJCgkJCQoJCQk8aDE+TGl2ZSBleGFtcGxlPC9oMT4KCQkJPGZvcm0+CgkJCTxkaXYgaWQ9ImRlbW8iPgo8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIGNsYXNzPSJkaXNwbGF5IiBpZD0iZXhhbXBsZSI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGZvb3Q+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGZvb3Q+Cgk8dGJvZHk+Cgk8L3Rib2R5Pgo8L3RhYmxlPgoJCQk8L2Rpdj4KCQk8L2Zvcm0+CgkJCTxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CgkJCQoJCQkKCQkJPGgxPkV4YW1wbGVzPC9oMT4KCQkJPHVsPgoJCQkJPGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkJhc2ljIGluaXRpYWxpc2F0aW9uPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iYWx0X2luc2VydC5odG1sIj5TdHlsaW5nIHRoZSBpbnNlcnQgY3Vyc29yPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iY29sX2ZpbHRlci5odG1sIj5JbmRpdmlkdWFsIGNvbHVtbiBmaWx0ZXJpbmc8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJjb2x2aXMuaHRtbCI+SW50ZWdyYXRpb24gd2l0aCBEYXRhVGFibGVzJyBDb2xWaXMgcGx1Zy1pbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImZpeGVkY29sdW1ucy5odG1sIj5JbnRlZ3JhdGlvbiB3aXRoIERhdGFUYWJsZXMnIEZpeGVkQ29sdW1ucyBwbHVnLWluPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iZml4ZWRoZWFkZXIuaHRtbCI+SW50ZWdyYXRpb24gd2l0aCBEYXRhVGFibGVzJyBGaXhlZEhlYWRlciBwbHVnLWluPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0icHJlZGVmaW5lZC5odG1sIj5Vc2luZyBhIHByZWRlZmluZWQgY29sdW1uIG9yZGVyIHNldDwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InJlc2V0Lmh0bWwiPlByb3ZpZGluZyBhIHVzZXIgY29udHJvbCB0byByZXNldCB0aGUgY29sdW1uIG9yZGVyPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ic2Nyb2xsaW5nLmh0bWwiPkNvbHVtbiByZW9yZGVyaW5nIHNob3duIHdpdGggc2Nyb2xsaW5nIGluIERhdGFUYWJsZXM8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJzZXJ2ZXJfc2lkZS5odG1sIj5TZXJ2ZXItc2lkZSBwcm9jZXNzaW5nIHN1cHBvcnQ8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJzdGF0ZV9zYXZlLmh0bWwiPlN0YXRlIHNhdmluZyBvZiB0aGUgY29sdW1uIHBvc2l0aW9uPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0idGhlbWUuaHRtbCI+alF1ZXJ5IFVJIHRoZW1lIGludGVncmF0aW9uPC9hPjwvbGk+CgkJCTwvdWw+CgkJCQoJCQkKCQkJPGgxPkluaXRpYWxpc2F0aW9uIGNvZGU8L2gxPgoJCQk8cHJlPiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0RvbSI6ICdSbGZydGlwJywKCQkiYlByb2Nlc3NpbmciOiB0cnVlLAoJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvb2JqZWN0cy5waHAiLAoJCSJhb0NvbHVtbnMiOiBbCgkJCXsgIm1EYXRhUHJvcCI6ICJlbmdpbmUiIH0sCgkJCXsgIm1EYXRhUHJvcCI6ICJicm93c2VyIiB9LAoJCQl7ICJtRGF0YVByb3AiOiAicGxhdGZvcm0iIH0sCgkJCXsgIm1EYXRhUHJvcCI6ICJ2ZXJzaW9uIiB9LAoJCQl7ICJtRGF0YVByb3AiOiAiZ3JhZGUiIH0KCQldCgl9ICk7Cn0gKTs8L3ByZT4KCiAgICAgIDxoMT5FeGFtcGxlIEpTT04gcmV0dXJuIGZyb20gdGhlIHNlcnZlcjwvaDE+CiAgICAgIDxwcmU+ewoic0VjaG8iOiAxLAoiaVRvdGFsUmVjb3JkcyI6ICI1NyIsCiJpVG90YWxEaXNwbGF5UmVjb3JkcyI6ICI1NyIsCiJhYURhdGEiOiBbCiAgICB7CiAgICAgICAgImVuZ2luZSI6ICJHZWNrbyIsCiAgICAgICAgImJyb3dzZXIiOiAiRmlyZWZveCAxLjAiLAogICAgICAgICJwbGF0Zm9ybSI6ICJXaW4gOTgrIC8gT1NYLjIrIiwKICAgICAgICAidmVyc2lvbiI6ICIxLjciLAogICAgICAgICJncmFkZSI6ICJBIgogICAgfSwKICAgIHsKICAgICAgICAiZW5naW5lIjogIkdlY2tvIiwKICAgICAgICAiYnJvd3NlciI6ICJGaXJlZm94IDEuNSIsCiAgICAgICAgInBsYXRmb3JtIjogIldpbiA5OCsgLyBPU1guMisiLAogICAgICAgICJ2ZXJzaW9uIjogIjEuOCIsCiAgICAgICAgImdyYWRlIjogIkEiCiAgICB9LAogICAgLi4uCiAgXQp9PC9wcmU+CgkJCQoJCQk8ZGl2IGlkPSJmb290ZXIiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjsiPgoJCQkJPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMHB4OyI+CgkJCQkJQ29sUmVvcmRlciBhbmQgRGF0YVRhYmxlcyAmY29weTsgQWxsYW4gSmFyZGluZSAyMDEwCgkJCQk8L3NwYW4+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/state_save.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5Db2xSZW9yZGVyIGV4YW1wbGU8L3RpdGxlPgoJCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9ImN1cnJlbnRTdHlsZSI+CgkJCUBpbXBvcnQgIi4uLy4uL21lZGlhL2Nzcy9kZW1vX3BhZ2UuY3NzIjsKCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fdGFibGUuY3NzIjsKCQkJQGltcG9ydCAibWVkaWEvY3NzL0NvbFJlb3JkZXIuY3NzIjsKCQk8L3N0eWxlPgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIuLi8uLi9tZWRpYS9qcy9qcXVlcnkuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIuLi8uLi9tZWRpYS9qcy9qcXVlcnkuZGF0YVRhYmxlcy5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Im1lZGlhL2pzL0NvbFJlb3JkZXIuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CgkJCSQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkJCQl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCQkic0RvbSI6ICdSbGZydGlwJywKCQkJCQkiYlN0YXRlU2F2ZSI6IHRydWUKCQkJCX0gKTsKCQkJfSApOwoJCTwvc2NyaXB0PgoJPC9oZWFkPgoJPGJvZHkgaWQ9ImR0X2V4YW1wbGUiPgoJCTxkaXYgaWQ9ImNvbnRhaW5lciI+CgkJCTxkaXYgY2xhc3M9ImZ1bGxfd2lkdGggYmlnIj4KCQkJCUNvbFJlb3JkZXIgZXhhbXBsZSB3aXRoIHN0YXRlIHNhdmluZwoJCQk8L2Rpdj4KCQkJCgkJCTxoMT5QcmVhbWJsZTwvaDE+CgkJCTxwPkEgdXNlZnVsIGludGVyYWN0aW9uIHBhdHRlcm4gdG8gdXNlIGluIERhdGFUYWJsZXMgaXMgc3RhdGUgc2F2aW5nLCBzbyB3aGVuIHRoZSBlbmQgdXNlcgoJCQkJcmVsb2FkcyBvciByZXZpc2l0cyBhIHBhZ2UgaXRzIHByZXZpb3VzIHN0YXRlIGlzIHJldGFpbmVkLiBDb2xSZW9yZGVyIHdvcmtzIHNlYW1sZXNzbHkKCQkJCXdpdGggc3RhdGUgc2F2aW5nIGluIERhdGFUYWJsZXMsIHJlbWVtYmVyaW5nIGFuZCByZXN0b3JpbmcgdGhlIGNvbHVtbiBwb3NpdGlvbnMsIGFzIHdlbGwKCQkJCWFzIGV2ZXJ5dGhpbmcgZWxzZSBzdWNoIGFzIHNvcnRpbmcgYW5kIGZpbHRlcmluZy48L3A+CgkJCQoJCQk8aDE+TGl2ZSBleGFtcGxlPC9oMT4KCQkJPGZvcm0+CgkJCTxkaXYgaWQ9ImRlbW8iPgo8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIGNsYXNzPSJkaXNwbGF5IiBpZD0iZXhhbXBsZSI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGZvb3Q+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGZvb3Q+Cgk8dGJvZHk+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVYIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNC4wPC90ZD4KCQkJPHRkPldpbiA5NSsgKEVudGl0eTogJmFtcDspPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVDIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4wPC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA2PC90ZD4KCQkJPHRkPldpbiA5OCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDc8L3RkPgoJCQk8dGQ+V2luIFhQIFNQMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5BT0wgYnJvd3NlciAoQU9MIGRlc2t0b3ApPC90ZD4KCQkJPHRkPldpbiBYUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvIChVVEYtODogJMKi4oKsKTwvdGQ+CgkJCTx0ZD5GaXJlZm94IDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjU8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAyLjA8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMy4wPC90ZD4KCQkJPHRkPldpbiAyaysgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS45PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkNhbWlubyAxLjA8L3RkPgoJCQk8dGQ+T1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuNTwvdGQ+CgkJCTx0ZD5PU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIDcuMjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gTWFjIE9TIDguNi05LjI8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSBCcm93c2VyIDg8L3RkPgoJCQk8dGQ+V2luIDk4U0UrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSBOYXZpZ2F0b3IgOTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4xPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMzwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjQ8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS42PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS43PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuODwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5TZWFtb25rZXkgMS4xPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5FcGlwaGFueSAyLjIwPC90ZD4KCQkJPHRkPkdub21lPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDEuMjwvdGQ+CgkJCTx0ZD5PU1guMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xMjUuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjM8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MzEyLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAyLjA8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQxOS4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDMuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTIyLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPk9tbmlXZWIgNS41PC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MjA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5pUG9kIFRvdWNoIC8gaVBob25lPC90ZD4KCQkJPHRkPmlQb2Q8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlM2MDwvdGQ+CgkJCTx0ZD5TNjA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDEzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgNy4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgNy41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDguMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDguNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjI8L3RkPgoJCQk8dGQ+V2luIDg4KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS41PC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgZm9yIFdpaTwvdGQ+CgkJCTx0ZD5XaWk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5va2lhIE44MDA8L3RkPgoJCQk8dGQ+TjgwMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5OaW50ZW5kbyBEUyBicm93c2VyPC90ZD4KCQkJPHRkPk5pbnRlbmRvIERTPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjguNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DL0E8c3VwPjE8L3N1cD48L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQyI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuMTwvdGQ+CgkJCTx0ZD5LREUgMy4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuMzwvdGQ+CgkJCTx0ZD5LREUgMy4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjU8L3RkPgoJCQk8dGQ+S0RFIDMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZVgiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDQuNTwvdGQ+CgkJCTx0ZD5NYWMgT1MgOC05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVDIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjE8L3RkPgoJCQk8dGQ+TWFjIE9TIDcuNi05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUMiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMjwvdGQ+CgkJCTx0ZD5NYWMgT1MgOC1YPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy4xPC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPk5ldEZyb250IDMuNDwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+RGlsbG8gMC44PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkxpbmtzPC90ZD4KCQkJPHRkPlRleHQgb25seTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkx5bng8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUMiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5JRSBNb2JpbGU8L3RkPgoJCQk8dGQ+V2luZG93cyBNb2JpbGUgNjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQyI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPlBTUCBicm93c2VyPC90ZD4KCQkJPHRkPlBTUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVVIj4KCQkJPHRkPk90aGVyIGJyb3dzZXJzPC90ZD4KCQkJPHRkPkFsbCBvdGhlcnM8L3RkPgoJCQk8dGQ+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlU8L3RkPgoJCTwvdHI+Cgk8L3Rib2R5Pgo8L3RhYmxlPgoJCQk8L2Rpdj4KCQk8L2Zvcm0+CgkJCTxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CgkJCQoJCQkKCQkJPGgxPkV4YW1wbGVzPC9oMT4KCQkJPHVsPgoJCQkJPGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkJhc2ljIGluaXRpYWxpc2F0aW9uPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iYWx0X2luc2VydC5odG1sIj5TdHlsaW5nIHRoZSBpbnNlcnQgY3Vyc29yPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iY29sX2ZpbHRlci5odG1sIj5JbmRpdmlkdWFsIGNvbHVtbiBmaWx0ZXJpbmc8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJjb2x2aXMuaHRtbCI+SW50ZWdyYXRpb24gd2l0aCBEYXRhVGFibGVzJyBDb2xWaXMgcGx1Zy1pbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImZpeGVkY29sdW1ucy5odG1sIj5JbnRlZ3JhdGlvbiB3aXRoIERhdGFUYWJsZXMnIEZpeGVkQ29sdW1ucyBwbHVnLWluPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iZml4ZWRoZWFkZXIuaHRtbCI+SW50ZWdyYXRpb24gd2l0aCBEYXRhVGFibGVzJyBGaXhlZEhlYWRlciBwbHVnLWluPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0icHJlZGVmaW5lZC5odG1sIj5Vc2luZyBhIHByZWRlZmluZWQgY29sdW1uIG9yZGVyIHNldDwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InJlc2V0Lmh0bWwiPlByb3ZpZGluZyBhIHVzZXIgY29udHJvbCB0byByZXNldCB0aGUgY29sdW1uIG9yZGVyPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ic2Nyb2xsaW5nLmh0bWwiPkNvbHVtbiByZW9yZGVyaW5nIHNob3duIHdpdGggc2Nyb2xsaW5nIGluIERhdGFUYWJsZXM8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJzZXJ2ZXJfc2lkZS5odG1sIj5TZXJ2ZXItc2lkZSBwcm9jZXNzaW5nIHN1cHBvcnQ8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJzdGF0ZV9zYXZlLmh0bWwiPlN0YXRlIHNhdmluZyBvZiB0aGUgY29sdW1uIHBvc2l0aW9uPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0idGhlbWUuaHRtbCI+alF1ZXJ5IFVJIHRoZW1lIGludGVncmF0aW9uPC9hPjwvbGk+CgkJCTwvdWw+CgkJCQoJCQkKCQkJPGgxPkluaXRpYWxpc2F0aW9uIGNvZGU8L2gxPgoJCQk8cHJlPiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0RvbSI6ICdSbGZydGlwJywKCQkiYlN0YXRlU2F2ZSI6IHRydWUKCX0gKTsKfSApOzwvcHJlPgoJCQkKCQkJPGRpdiBpZD0iZm9vdGVyIiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7Ij4KCQkJCTxzcGFuIHN0eWxlPSJmb250LXNpemU6MTBweDsiPgoJCQkJCUNvbFJlb3JkZXIgYW5kIERhdGFUYWJsZXMgJmNvcHk7IEFsbGFuIEphcmRpbmUgMjAxMAoJCQkJPC9zcGFuPgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColReorder/theme.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5Db2xSZW9yZGVyIGV4YW1wbGU8L3RpdGxlPgoJCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9ImN1cnJlbnRTdHlsZSI+CgkJCUBpbXBvcnQgIi4uLy4uL21lZGlhL2Nzcy9kZW1vX3BhZ2UuY3NzIjsKCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fdGFibGVfanVpLmNzcyI7CgkJCUBpbXBvcnQgIi4uLy4uL2V4YW1wbGVzL2V4YW1wbGVzX3N1cHBvcnQvdGhlbWVzL3Ntb290aG5lc3MvanF1ZXJ5LXVpLTEuOC40LmN1c3RvbS5jc3MiOwoJCQlAaW1wb3J0ICJtZWRpYS9jc3MvQ29sUmVvcmRlci5jc3MiOwoJCTwvc3R5bGU+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5kYXRhVGFibGVzLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiIHNyYz0ibWVkaWEvanMvQ29sUmVvcmRlci5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KCQkJJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCQkJCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJCSJzRG9tIjogJ1I8IkgibGZyPnQ8IkYiaXA+JywKCQkJCQkiYkpRdWVyeVVJIjogdHJ1ZSwKCQkJCQkic1BhZ2luYXRpb25UeXBlIjogImZ1bGxfbnVtYmVycyIKCQkJCX0gKTsKCQkJfSApOwoJCTwvc2NyaXB0PgoJPC9oZWFkPgoJPGJvZHkgaWQ9ImR0X2V4YW1wbGUiPgoJCTxkaXYgaWQ9ImNvbnRhaW5lciI+CgkJCTxkaXYgY2xhc3M9ImZ1bGxfd2lkdGggYmlnIj4KCQkJCUNvbFJlb3JkZXIgZXhhbXBsZSB3aXRoIGpRdWVyeSBVSSB0aGVtaW5nCgkJCTwvZGl2PgoJCQkKCQkJPGgxPlByZWFtYmxlPC9oMT4KCQkJPHA+VGhpcyBleGFtcGxlIHNob3dzIGhvdyB0aGUgalF1ZXJ5IFVJIFRoZW1lUm9sbGVyIG9wdGlvbiBpbiBEYXRhVGFibGVzIGNhbiBiZSB1c2VkIAoJCQkJd2l0aCBDb2xSZW9yZGVyLiBUaGUgaW1wb3J0YW50IHRoaW5nIHRvIG5vZGUgaGVyZSBpcyBob3cgc0RvbSBpcyBzZXQgdXAgaW4gb3JkZXIgdG8gCgkJCQlpbmNsdWRlIHRoZSByZXF1aXJlZCBjbGFzc2VzIGFuZCBlbGVtZW50cy48L3A+CgkJCQoJCQk8aDE+TGl2ZSBleGFtcGxlPC9oMT4KCQkJPGZvcm0+CgkJCTxkaXYgaWQ9ImRlbW8iPgo8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIGNsYXNzPSJkaXNwbGF5IiBpZD0iZXhhbXBsZSI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGZvb3Q+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGZvb3Q+Cgk8dGJvZHk+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVYIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNC4wPC90ZD4KCQkJPHRkPldpbiA5NSsgKEVudGl0eTogJmFtcDspPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVDIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4wPC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA2PC90ZD4KCQkJPHRkPldpbiA5OCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDc8L3RkPgoJCQk8dGQ+V2luIFhQIFNQMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5BT0wgYnJvd3NlciAoQU9MIGRlc2t0b3ApPC90ZD4KCQkJPHRkPldpbiBYUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvIChVVEYtODogJMKi4oKsKTwvdGQ+CgkJCTx0ZD5GaXJlZm94IDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjU8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAyLjA8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMy4wPC90ZD4KCQkJPHRkPldpbiAyaysgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS45PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkNhbWlubyAxLjA8L3RkPgoJCQk8dGQ+T1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuNTwvdGQ+CgkJCTx0ZD5PU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIDcuMjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gTWFjIE9TIDguNi05LjI8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSBCcm93c2VyIDg8L3RkPgoJCQk8dGQ+V2luIDk4U0UrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSBOYXZpZ2F0b3IgOTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4xPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMzwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjQ8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS42PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS43PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuODwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5TZWFtb25rZXkgMS4xPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5FcGlwaGFueSAyLjIwPC90ZD4KCQkJPHRkPkdub21lPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDEuMjwvdGQ+CgkJCTx0ZD5PU1guMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xMjUuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjM8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MzEyLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAyLjA8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQxOS4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDMuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTIyLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPk9tbmlXZWIgNS41PC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MjA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5pUG9kIFRvdWNoIC8gaVBob25lPC90ZD4KCQkJPHRkPmlQb2Q8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlM2MDwvdGQ+CgkJCTx0ZD5TNjA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDEzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgNy4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgNy41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDguMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDguNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjI8L3RkPgoJCQk8dGQ+V2luIDg4KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS41PC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgZm9yIFdpaTwvdGQ+CgkJCTx0ZD5XaWk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5va2lhIE44MDA8L3RkPgoJCQk8dGQ+TjgwMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5OaW50ZW5kbyBEUyBicm93c2VyPC90ZD4KCQkJPHRkPk5pbnRlbmRvIERTPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjguNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DL0E8c3VwPjE8L3N1cD48L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQyI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuMTwvdGQ+CgkJCTx0ZD5LREUgMy4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuMzwvdGQ+CgkJCTx0ZD5LREUgMy4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjU8L3RkPgoJCQk8dGQ+S0RFIDMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZVgiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDQuNTwvdGQ+CgkJCTx0ZD5NYWMgT1MgOC05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVDIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjE8L3RkPgoJCQk8dGQ+TWFjIE9TIDcuNi05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUMiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMjwvdGQ+CgkJCTx0ZD5NYWMgT1MgOC1YPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy4xPC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPk5ldEZyb250IDMuNDwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+RGlsbG8gMC44PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkxpbmtzPC90ZD4KCQkJPHRkPlRleHQgb25seTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkx5bng8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUMiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5JRSBNb2JpbGU8L3RkPgoJCQk8dGQ+V2luZG93cyBNb2JpbGUgNjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQyI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPlBTUCBicm93c2VyPC90ZD4KCQkJPHRkPlBTUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVVIj4KCQkJPHRkPk90aGVyIGJyb3dzZXJzPC90ZD4KCQkJPHRkPkFsbCBvdGhlcnM8L3RkPgoJCQk8dGQ+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlU8L3RkPgoJCTwvdHI+Cgk8L3Rib2R5Pgo8L3RhYmxlPgoJCQk8L2Rpdj4KCQk8L2Zvcm0+CgkJCTxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CgkJCQoJCQkKCQkJPGgxPkV4YW1wbGVzPC9oMT4KCQkJPHVsPgoJCQkJPGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkJhc2ljIGluaXRpYWxpc2F0aW9uPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iYWx0X2luc2VydC5odG1sIj5TdHlsaW5nIHRoZSBpbnNlcnQgY3Vyc29yPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iY29sX2ZpbHRlci5odG1sIj5JbmRpdmlkdWFsIGNvbHVtbiBmaWx0ZXJpbmc8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJjb2x2aXMuaHRtbCI+SW50ZWdyYXRpb24gd2l0aCBEYXRhVGFibGVzJyBDb2xWaXMgcGx1Zy1pbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImZpeGVkY29sdW1ucy5odG1sIj5JbnRlZ3JhdGlvbiB3aXRoIERhdGFUYWJsZXMnIEZpeGVkQ29sdW1ucyBwbHVnLWluPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iZml4ZWRoZWFkZXIuaHRtbCI+SW50ZWdyYXRpb24gd2l0aCBEYXRhVGFibGVzJyBGaXhlZEhlYWRlciBwbHVnLWluPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0icHJlZGVmaW5lZC5odG1sIj5Vc2luZyBhIHByZWRlZmluZWQgY29sdW1uIG9yZGVyIHNldDwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InJlc2V0Lmh0bWwiPlByb3ZpZGluZyBhIHVzZXIgY29udHJvbCB0byByZXNldCB0aGUgY29sdW1uIG9yZGVyPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ic2Nyb2xsaW5nLmh0bWwiPkNvbHVtbiByZW9yZGVyaW5nIHNob3duIHdpdGggc2Nyb2xsaW5nIGluIERhdGFUYWJsZXM8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJzZXJ2ZXJfc2lkZS5odG1sIj5TZXJ2ZXItc2lkZSBwcm9jZXNzaW5nIHN1cHBvcnQ8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJzdGF0ZV9zYXZlLmh0bWwiPlN0YXRlIHNhdmluZyBvZiB0aGUgY29sdW1uIHBvc2l0aW9uPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0idGhlbWUuaHRtbCI+alF1ZXJ5IFVJIHRoZW1lIGludGVncmF0aW9uPC9hPjwvbGk+CgkJCTwvdWw+CgkJCQoJCQkKCQkJPGgxPkluaXRpYWxpc2F0aW9uIGNvZGU8L2gxPgoJCQk8cHJlPiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0RvbSI6ICdSJmx0OyJIImxmciZndDt0Jmx0OyJGImlwJmd0OycsCgkJImJKUXVlcnlVSSI6IHRydWUsCgkJInNQYWdpbmF0aW9uVHlwZSI6ICJmdWxsX251bWJlcnMiCgl9ICk7Cn0gKTs8L3ByZT4KCQkJCgkJCTxkaXYgaWQ9ImZvb3RlciIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyOyI+CgkJCQk8c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwcHg7Ij4KCQkJCQlDb2xSZW9yZGVyIGFuZCBEYXRhVGFibGVzICZjb3B5OyBBbGxhbiBKYXJkaW5lIDIwMTAKCQkJCTwvc3Bhbj4KCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2JvZHk+CjwvaHRtbD4=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColVis/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColVis/media/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColVis/media/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/ColVis/media/js/ColVis.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogRmlsZTogICAgICAgIENvbFZpcy5taW4uanMKICogVmVyc2lvbjogICAgIDEuMC44CiAqIEF1dGhvcjogICAgICBBbGxhbiBKYXJkaW5lICh3d3cuc3ByeW1lZGlhLmNvLnVrKQogKiAKICogQ29weXJpZ2h0IDIwMTAtMjAxMiBBbGxhbiBKYXJkaW5lLCBhbGwgcmlnaHRzIHJlc2VydmVkLgogKgogKiBUaGlzIHNvdXJjZSBmaWxlIGlzIGZyZWUgc29mdHdhcmUsIHVuZGVyIGVpdGhlciB0aGUgR1BMIHYyIGxpY2Vuc2Ugb3IgYQogKiBCU0QgKDMgcG9pbnQpIHN0eWxlIGxpY2Vuc2UsIGFzIHN1cHBsaWVkIHdpdGggdGhpcyBzb2Z0d2FyZS4KICogCiAqIFRoaXMgc291cmNlIGZpbGUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IAogKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSAKICogb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgbGljZW5zZSBmaWxlcyBmb3IgZGV0YWlscy4KICovCihmdW5jdGlvbihkKXtDb2xWaXM9ZnVuY3Rpb24oYSxiKXsoIXRoaXMuQ0xBU1N8fCJDb2xWaXMiIT10aGlzLkNMQVNTKSYmYWxlcnQoIldhcm5pbmc6IENvbFZpcyBtdXN0IGJlIGluaXRpYWxpc2VkIHdpdGggdGhlIGtleXdvcmQgJ25ldyciKTsidW5kZWZpbmVkIj09dHlwZW9mIGImJihiPXt9KTt0aGlzLnM9e2R0Om51bGwsb0luaXQ6YixmblN0YXRlQ2hhbmdlOm51bGwsYWN0aXZhdGU6ImNsaWNrIixzQWxpZ246ImxlZnQiLGJ1dHRvblRleHQ6IlNob3cgLyBoaWRlIGNvbHVtbnMiLGhpZGRlbjohMCxhaUV4Y2x1ZGU6W10sYWJPcmlnaW5hbDpbXSxiU2hvd0FsbDohMSxzU2hvd0FsbDoiU2hvdyBBbGwiLGJSZXN0b3JlOiExLHNSZXN0b3JlOiJSZXN0b3JlIG9yaWdpbmFsIixpT3ZlcmxheUZhZGU6NTAwLGZuTGFiZWw6bnVsbCxzU2l6ZToiYXV0byIsYkNzc1Bvc2l0aW9uOiExfTt0aGlzLmRvbT17d3JhcHBlcjpudWxsLGJ1dHRvbjpudWxsLGNvbGxlY3Rpb246bnVsbCxiYWNrZ3JvdW5kOm51bGwsCmNhdGNoZXI6bnVsbCxidXR0b25zOltdLHJlc3RvcmU6bnVsbH07Q29sVmlzLmFJbnN0YW5jZXMucHVzaCh0aGlzKTt0aGlzLnMuZHQ9YTt0aGlzLl9mbkNvbnN0cnVjdCgpO3JldHVybiB0aGlzfTtDb2xWaXMucHJvdG90eXBlPXtmblJlYnVpbGQ6ZnVuY3Rpb24oKXtmb3IodmFyIGE9dGhpcy5kb20uYnV0dG9ucy5sZW5ndGgtMTswPD1hO2EtLSludWxsIT09dGhpcy5kb20uYnV0dG9uc1thXSYmdGhpcy5kb20uY29sbGVjdGlvbi5yZW1vdmVDaGlsZCh0aGlzLmRvbS5idXR0b25zW2FdKTt0aGlzLmRvbS5idXR0b25zLnNwbGljZSgwLHRoaXMuZG9tLmJ1dHRvbnMubGVuZ3RoKTt0aGlzLmRvbS5yZXN0b3JlJiZ0aGlzLmRvbS5yZXN0b3JlLnBhcmVudE5vZGUodGhpcy5kb20ucmVzdG9yZSk7dGhpcy5fZm5BZGRCdXR0b25zKCk7dGhpcy5fZm5EcmF3Q2FsbGJhY2soKX0sX2ZuQ29uc3RydWN0OmZ1bmN0aW9uKCl7dGhpcy5fZm5BcHBseUN1c3RvbWlzYXRpb24oKTt2YXIgYT10aGlzLApiLGM7dGhpcy5kb20ud3JhcHBlcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0aGlzLmRvbS53cmFwcGVyLmNsYXNzTmFtZT0iQ29sVmlzIFRhYmxlVG9vbHMiO3RoaXMuZG9tLmJ1dHRvbj10aGlzLl9mbkRvbUJhc2VCdXR0b24odGhpcy5zLmJ1dHRvblRleHQpO3RoaXMuZG9tLmJ1dHRvbi5jbGFzc05hbWUrPSIgQ29sVmlzX01hc3RlckJ1dHRvbiI7dGhpcy5kb20ud3JhcHBlci5hcHBlbmRDaGlsZCh0aGlzLmRvbS5idXR0b24pO3RoaXMuZG9tLmNhdGNoZXI9dGhpcy5fZm5Eb21DYXRjaGVyKCk7dGhpcy5kb20uY29sbGVjdGlvbj10aGlzLl9mbkRvbUNvbGxlY3Rpb24oKTt0aGlzLmRvbS5iYWNrZ3JvdW5kPXRoaXMuX2ZuRG9tQmFja2dyb3VuZCgpO3RoaXMuX2ZuQWRkQnV0dG9ucygpO2I9MDtmb3IoYz10aGlzLnMuZHQuYW9Db2x1bW5zLmxlbmd0aDtiPGM7YisrKXRoaXMucy5hYk9yaWdpbmFsLnB1c2godGhpcy5zLmR0LmFvQ29sdW1uc1tiXS5iVmlzaWJsZSk7dGhpcy5zLmR0LmFvRHJhd0NhbGxiYWNrLnB1c2goe2ZuOmZ1bmN0aW9uKCl7YS5fZm5EcmF3Q2FsbGJhY2suY2FsbChhKX0sCnNOYW1lOiJDb2xWaXMifSk7ZCh0aGlzLnMuZHQub0luc3RhbmNlKS5iaW5kKCJjb2x1bW4tcmVvcmRlciIsZnVuY3Rpb24oZCxnLGYpe2I9MDtmb3IoYz1hLnMuYWlFeGNsdWRlLmxlbmd0aDtiPGM7YisrKWEucy5haUV4Y2x1ZGVbYl09Zi5haUludmVydE1hcHBpbmdbYS5zLmFpRXhjbHVkZVtiXV07ZD1hLnMuYWJPcmlnaW5hbC5zcGxpY2UoZi5pRnJvbSwxKVswXTthLnMuYWJPcmlnaW5hbC5zcGxpY2UoZi5pVG8sMCxkKTthLmZuUmVidWlsZCgpfSl9LF9mbkFwcGx5Q3VzdG9taXNhdGlvbjpmdW5jdGlvbigpe3ZhciBhPXRoaXMucy5vSW5pdDsidW5kZWZpbmVkIiE9dHlwZW9mIGEuYWN0aXZhdGUmJih0aGlzLnMuYWN0aXZhdGU9YS5hY3RpdmF0ZSk7InVuZGVmaW5lZCIhPXR5cGVvZiBhLmJ1dHRvblRleHQmJih0aGlzLnMuYnV0dG9uVGV4dD1hLmJ1dHRvblRleHQpOyJ1bmRlZmluZWQiIT10eXBlb2YgYS5haUV4Y2x1ZGUmJih0aGlzLnMuYWlFeGNsdWRlPWEuYWlFeGNsdWRlKTsKInVuZGVmaW5lZCIhPXR5cGVvZiBhLmJSZXN0b3JlJiYodGhpcy5zLmJSZXN0b3JlPWEuYlJlc3RvcmUpOyJ1bmRlZmluZWQiIT10eXBlb2YgYS5zUmVzdG9yZSYmKHRoaXMucy5zUmVzdG9yZT1hLnNSZXN0b3JlKTsidW5kZWZpbmVkIiE9dHlwZW9mIGEuYlNob3dBbGwmJih0aGlzLnMuYlNob3dBbGw9YS5iU2hvd0FsbCk7InVuZGVmaW5lZCIhPXR5cGVvZiBhLnNTaG93QWxsJiYodGhpcy5zLnNTaG93QWxsPWEuc1Nob3dBbGwpOyJ1bmRlZmluZWQiIT10eXBlb2YgYS5zQWxpZ24mJih0aGlzLnMuc0FsaWduPWEuc0FsaWduKTsidW5kZWZpbmVkIiE9dHlwZW9mIGEuZm5TdGF0ZUNoYW5nZSYmKHRoaXMucy5mblN0YXRlQ2hhbmdlPWEuZm5TdGF0ZUNoYW5nZSk7InVuZGVmaW5lZCIhPXR5cGVvZiBhLmlPdmVybGF5RmFkZSYmKHRoaXMucy5pT3ZlcmxheUZhZGU9YS5pT3ZlcmxheUZhZGUpOyJ1bmRlZmluZWQiIT10eXBlb2YgYS5mbkxhYmVsJiYodGhpcy5zLmZuTGFiZWw9YS5mbkxhYmVsKTsKInVuZGVmaW5lZCIhPXR5cGVvZiBhLnNTaXplJiYodGhpcy5zLnNTaXplPWEuc1NpemUpOyJ1bmRlZmluZWQiIT10eXBlb2YgYS5iQ3NzUG9zaXRpb24mJih0aGlzLnMuYkNzc1Bvc2l0aW9uPWEuYkNzc1Bvc2l0aW9uKX0sX2ZuRHJhd0NhbGxiYWNrOmZ1bmN0aW9uKCl7Zm9yKHZhciBhPXRoaXMucy5kdC5hb0NvbHVtbnMsYj0wLGM9YS5sZW5ndGg7YjxjO2IrKyludWxsIT09dGhpcy5kb20uYnV0dG9uc1tiXSYmKGFbYl0uYlZpc2libGU/ZCgiaW5wdXQiLHRoaXMuZG9tLmJ1dHRvbnNbYl0pLmF0dHIoImNoZWNrZWQiLCJjaGVja2VkIik6ZCgiaW5wdXQiLHRoaXMuZG9tLmJ1dHRvbnNbYl0pLnJlbW92ZUF0dHIoImNoZWNrZWQiKSl9LF9mbkFkZEJ1dHRvbnM6ZnVuY3Rpb24oKXtmb3IodmFyIGEsYj0iLCIrdGhpcy5zLmFpRXhjbHVkZS5qb2luKCIsIikrIiwiLGM9MCxkPXRoaXMucy5kdC5hb0NvbHVtbnMubGVuZ3RoO2M8ZDtjKyspLTE9PWIuaW5kZXhPZigiLCIrYysiLCIpPyhhPQp0aGlzLl9mbkRvbUNvbHVtbkJ1dHRvbihjKSx0aGlzLmRvbS5idXR0b25zLnB1c2goYSksdGhpcy5kb20uY29sbGVjdGlvbi5hcHBlbmRDaGlsZChhKSk6dGhpcy5kb20uYnV0dG9ucy5wdXNoKG51bGwpO3RoaXMucy5iUmVzdG9yZSYmKGE9dGhpcy5fZm5Eb21SZXN0b3JlQnV0dG9uKCksYS5jbGFzc05hbWUrPSIgQ29sVmlzX1Jlc3RvcmUiLHRoaXMuZG9tLmJ1dHRvbnMucHVzaChhKSx0aGlzLmRvbS5jb2xsZWN0aW9uLmFwcGVuZENoaWxkKGEpKTt0aGlzLnMuYlNob3dBbGwmJihhPXRoaXMuX2ZuRG9tU2hvd0FsbEJ1dHRvbigpLGEuY2xhc3NOYW1lKz0iIENvbFZpc19TaG93QWxsIix0aGlzLmRvbS5idXR0b25zLnB1c2goYSksdGhpcy5kb20uY29sbGVjdGlvbi5hcHBlbmRDaGlsZChhKSl9LF9mbkRvbVJlc3RvcmVCdXR0b246ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIiksYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CmIuY2xhc3NOYW1lPSF0aGlzLnMuZHQuYkpVST8iQ29sVmlzX0J1dHRvbiBUYWJsZVRvb2xzX0J1dHRvbiI6IkNvbFZpc19CdXR0b24gVGFibGVUb29sc19CdXR0b24gdWktYnV0dG9uIHVpLXN0YXRlLWRlZmF1bHQiO2IuYXBwZW5kQ2hpbGQoYyk7ZChjKS5odG1sKCc8c3BhbiBjbGFzcz0iQ29sVmlzX3RpdGxlIj4nK3RoaXMucy5zUmVzdG9yZSsiPC9zcGFuPiIpO2QoYikuY2xpY2soZnVuY3Rpb24oKXtmb3IodmFyIGI9MCxjPWEucy5hYk9yaWdpbmFsLmxlbmd0aDtiPGM7YisrKWEucy5kdC5vSW5zdGFuY2UuZm5TZXRDb2x1bW5WaXMoYixhLnMuYWJPcmlnaW5hbFtiXSwhMSk7YS5fZm5BZGp1c3RPcGVuUm93cygpO2Eucy5kdC5vSW5zdGFuY2UuZm5BZGp1c3RDb2x1bW5TaXppbmcoITEpO2Eucy5kdC5vSW5zdGFuY2UuZm5EcmF3KCExKX0pO3JldHVybiBifSxfZm5Eb21TaG93QWxsQnV0dG9uOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpLApjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtiLmNsYXNzTmFtZT0hdGhpcy5zLmR0LmJKVUk/IkNvbFZpc19CdXR0b24gVGFibGVUb29sc19CdXR0b24iOiJDb2xWaXNfQnV0dG9uIFRhYmxlVG9vbHNfQnV0dG9uIHVpLWJ1dHRvbiB1aS1zdGF0ZS1kZWZhdWx0IjtiLmFwcGVuZENoaWxkKGMpO2QoYykuaHRtbCgnPHNwYW4gY2xhc3M9IkNvbFZpc190aXRsZSI+Jyt0aGlzLnMuc1Nob3dBbGwrIjwvc3Bhbj4iKTtkKGIpLmNsaWNrKGZ1bmN0aW9uKCl7Zm9yKHZhciBiPTAsYz1hLnMuYWJPcmlnaW5hbC5sZW5ndGg7YjxjO2IrKyktMT09PWEucy5haUV4Y2x1ZGUuaW5kZXhPZihiKSYmYS5zLmR0Lm9JbnN0YW5jZS5mblNldENvbHVtblZpcyhiLCEwLCExKTthLl9mbkFkanVzdE9wZW5Sb3dzKCk7YS5zLmR0Lm9JbnN0YW5jZS5mbkFkanVzdENvbHVtblNpemluZyghMSk7YS5zLmR0Lm9JbnN0YW5jZS5mbkRyYXcoITEpfSk7cmV0dXJuIGJ9LF9mbkRvbUNvbHVtbkJ1dHRvbjpmdW5jdGlvbihhKXt2YXIgYj0KdGhpcyxjPXRoaXMucy5kdC5hb0NvbHVtbnNbYV0sZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKSxnPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSxmPXRoaXMucy5kdDtlLmNsYXNzTmFtZT0hZi5iSlVJPyJDb2xWaXNfQnV0dG9uIFRhYmxlVG9vbHNfQnV0dG9uIjoiQ29sVmlzX0J1dHRvbiBUYWJsZVRvb2xzX0J1dHRvbiB1aS1idXR0b24gdWktc3RhdGUtZGVmYXVsdCI7ZS5hcHBlbmRDaGlsZChnKTtjPW51bGw9PT10aGlzLnMuZm5MYWJlbD9jLnNUaXRsZTp0aGlzLnMuZm5MYWJlbChhLGMuc1RpdGxlLGMublRoKTtkKGcpLmh0bWwoJzxzcGFuIGNsYXNzPSJDb2xWaXNfcmFkaW8iPjxpbnB1dCB0eXBlPSJjaGVja2JveCIvPjwvc3Bhbj48c3BhbiBjbGFzcz0iQ29sVmlzX3RpdGxlIj4nK2MrIjwvc3Bhbj4iKTtkKGUpLmNsaWNrKGZ1bmN0aW9uKGMpe3ZhciBlPSFkKCJpbnB1dCIsdGhpcykuaXMoIjpjaGVja2VkIik7ImlucHV0Ij09Yy50YXJnZXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmCihlPWQoImlucHV0Iix0aGlzKS5pcygiOmNoZWNrZWQiKSk7Yz1kLmZuLmRhdGFUYWJsZUV4dC5pQXBpSW5kZXg7ZC5mbi5kYXRhVGFibGVFeHQuaUFwaUluZGV4PWIuX2ZuRGF0YVRhYmxlc0FwaUluZGV4LmNhbGwoYik7Zi5vRmVhdHVyZXMuYlNlcnZlclNpZGUmJigiIiE9PWYub1Njcm9sbC5zWHx8IiIhPT1mLm9TY3JvbGwuc1kpPyhiLnMuZHQub0luc3RhbmNlLmZuU2V0Q29sdW1uVmlzKGEsZSwhMSksYi5zLmR0Lm9JbnN0YW5jZS5mbkFkanVzdENvbHVtblNpemluZyghMSksYi5zLmR0Lm9JbnN0YW5jZS5vQXBpLl9mblNjcm9sbERyYXcoYi5zLmR0KSxiLl9mbkRyYXdDYWxsYmFjaygpKTpiLnMuZHQub0luc3RhbmNlLmZuU2V0Q29sdW1uVmlzKGEsZSk7ZC5mbi5kYXRhVGFibGVFeHQuaUFwaUluZGV4PWM7bnVsbCE9PWIucy5mblN0YXRlQ2hhbmdlJiZiLnMuZm5TdGF0ZUNoYW5nZS5jYWxsKGIsYSxlKX0pO3JldHVybiBlfSxfZm5EYXRhVGFibGVzQXBpSW5kZXg6ZnVuY3Rpb24oKXtmb3IodmFyIGE9CjAsYj10aGlzLnMuZHQub0luc3RhbmNlLmxlbmd0aDthPGI7YSsrKWlmKHRoaXMucy5kdC5vSW5zdGFuY2VbYV09PXRoaXMucy5kdC5uVGFibGUpcmV0dXJuIGE7cmV0dXJuIDB9LF9mbkRvbUJhc2VCdXR0b246ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpLGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpLGc9Im1vdXNlb3ZlciI9PXRoaXMucy5hY3RpdmF0ZT8ibW91c2VvdmVyIjoiY2xpY2siO2MuY2xhc3NOYW1lPSF0aGlzLnMuZHQuYkpVST8iQ29sVmlzX0J1dHRvbiBUYWJsZVRvb2xzX0J1dHRvbiI6IkNvbFZpc19CdXR0b24gVGFibGVUb29sc19CdXR0b24gdWktYnV0dG9uIHVpLXN0YXRlLWRlZmF1bHQiO2MuYXBwZW5kQ2hpbGQoZSk7ZS5pbm5lckhUTUw9YTtkKGMpLmJpbmQoZyxmdW5jdGlvbihhKXtiLl9mbkNvbGxlY3Rpb25TaG93KCk7YS5wcmV2ZW50RGVmYXVsdCgpfSk7cmV0dXJuIGN9LF9mbkRvbUNvbGxlY3Rpb246ZnVuY3Rpb24oKXt2YXIgYT0KZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7YS5zdHlsZS5kaXNwbGF5PSJub25lIjthLmNsYXNzTmFtZT0hdGhpcy5zLmR0LmJKVUk/IkNvbFZpc19jb2xsZWN0aW9uIFRhYmxlVG9vbHNfY29sbGVjdGlvbiI6IkNvbFZpc19jb2xsZWN0aW9uIFRhYmxlVG9vbHNfY29sbGVjdGlvbiB1aS1idXR0b25zZXQgdWktYnV0dG9uc2V0LW11bHRpIjt0aGlzLnMuYkNzc1Bvc2l0aW9ufHwoYS5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiKTtkKGEpLmNzcygib3BhY2l0eSIsMCk7cmV0dXJuIGF9LF9mbkRvbUNhdGNoZXI6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Yi5jbGFzc05hbWU9IkNvbFZpc19jYXRjaGVyIFRhYmxlVG9vbHNfY2F0Y2hlciI7ZChiKS5jbGljayhmdW5jdGlvbigpe2EuX2ZuQ29sbGVjdGlvbkhpZGUuY2FsbChhLG51bGwsbnVsbCl9KTtyZXR1cm4gYn0sX2ZuRG9tQmFja2dyb3VuZDpmdW5jdGlvbigpe3ZhciBhPQp0aGlzLGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Yi5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO2Iuc3R5bGUubGVmdD0iMHB4IjtiLnN0eWxlLnRvcD0iMHB4IjtiLmNsYXNzTmFtZT0iQ29sVmlzX2NvbGxlY3Rpb25CYWNrZ3JvdW5kIFRhYmxlVG9vbHNfY29sbGVjdGlvbkJhY2tncm91bmQiO2QoYikuY3NzKCJvcGFjaXR5IiwwKTtkKGIpLmNsaWNrKGZ1bmN0aW9uKCl7YS5fZm5Db2xsZWN0aW9uSGlkZS5jYWxsKGEsbnVsbCxudWxsKX0pOyJtb3VzZW92ZXIiPT10aGlzLnMuYWN0aXZhdGUmJmQoYikubW91c2VvdmVyKGZ1bmN0aW9uKCl7YS5zLm92ZXJjb2xsZWN0aW9uPSExO2EuX2ZuQ29sbGVjdGlvbkhpZGUuY2FsbChhLG51bGwsbnVsbCl9KTtyZXR1cm4gYn0sX2ZuQ29sbGVjdGlvblNob3c6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGIsYztiPWQodGhpcy5kb20uYnV0dG9uKS5vZmZzZXQoKTt2YXIgZT10aGlzLmRvbS5jb2xsZWN0aW9uLGc9dGhpcy5kb20uYmFja2dyb3VuZCwKZj1wYXJzZUludChiLmxlZnQsMTApLGg9cGFyc2VJbnQoYi50b3ArZCh0aGlzLmRvbS5idXR0b24pLm91dGVySGVpZ2h0KCksMTApO3RoaXMucy5iQ3NzUG9zaXRpb258fChlLnN0eWxlLnRvcD1oKyJweCIsZS5zdHlsZS5sZWZ0PWYrInB4Iik7ZS5zdHlsZS5kaXNwbGF5PSJibG9jayI7ZChlKS5jc3MoIm9wYWNpdHkiLDApO2M9ZCh3aW5kb3cpLmhlaWdodCgpO3ZhciBpPWQoZG9jdW1lbnQpLmhlaWdodCgpLGo9ZCh3aW5kb3cpLndpZHRoKCksaD1kKGRvY3VtZW50KS53aWR0aCgpO2cuc3R5bGUuaGVpZ2h0PShjPmk/YzppKSsicHgiO2cuc3R5bGUud2lkdGg9KGo8aD9qOmgpKyJweCI7Yz10aGlzLmRvbS5jYXRjaGVyLnN0eWxlO2MuaGVpZ2h0PWQodGhpcy5kb20uYnV0dG9uKS5vdXRlckhlaWdodCgpKyJweCI7Yy53aWR0aD1kKHRoaXMuZG9tLmJ1dHRvbikub3V0ZXJXaWR0aCgpKyJweCI7Yy50b3A9Yi50b3ArInB4IjtjLmxlZnQ9ZisicHgiO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZyk7CmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZSk7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLmRvbS5jYXRjaGVyKTtpZigiYXV0byI9PXRoaXMucy5zU2l6ZSl7aT1bXTt0aGlzLmRvbS5jb2xsZWN0aW9uLnN0eWxlLndpZHRoPSJhdXRvIjtiPTA7Zm9yKGM9dGhpcy5kb20uYnV0dG9ucy5sZW5ndGg7YjxjO2IrKyludWxsIT09dGhpcy5kb20uYnV0dG9uc1tiXSYmKHRoaXMuZG9tLmJ1dHRvbnNbYl0uc3R5bGUud2lkdGg9ImF1dG8iLGkucHVzaChkKHRoaXMuZG9tLmJ1dHRvbnNbYl0pLm91dGVyV2lkdGgoKSkpO2lNYXg9TWF0aC5tYXguYXBwbHkod2luZG93LGkpO2I9MDtmb3IoYz10aGlzLmRvbS5idXR0b25zLmxlbmd0aDtiPGM7YisrKW51bGwhPT10aGlzLmRvbS5idXR0b25zW2JdJiYodGhpcy5kb20uYnV0dG9uc1tiXS5zdHlsZS53aWR0aD1pTWF4KyJweCIpO3RoaXMuZG9tLmNvbGxlY3Rpb24uc3R5bGUud2lkdGg9aU1heCsicHgifXRoaXMucy5iQ3NzUG9zaXRpb258fAooZS5zdHlsZS5sZWZ0PSJsZWZ0Ij09dGhpcy5zLnNBbGlnbj9mKyJweCI6Zi1kKGUpLm91dGVyV2lkdGgoKStkKHRoaXMuZG9tLmJ1dHRvbikub3V0ZXJXaWR0aCgpKyJweCIsYj1kKGUpLm91dGVyV2lkdGgoKSxkKGUpLm91dGVySGVpZ2h0KCksZitiPmgmJihlLnN0eWxlLmxlZnQ9aC1iKyJweCIpKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZChlKS5hbmltYXRlKHtvcGFjaXR5OjF9LGEucy5pT3ZlcmxheUZhZGUpO2QoZykuYW5pbWF0ZSh7b3BhY2l0eTowLjF9LGEucy5pT3ZlcmxheUZhZGUsImxpbmVhciIsZnVuY3Rpb24oKXtqUXVlcnkuYnJvd3Nlci5tc2llJiZqUXVlcnkuYnJvd3Nlci52ZXJzaW9uPT0iNi4wIiYmYS5fZm5EcmF3Q2FsbGJhY2soKX0pfSwxMCk7dGhpcy5zLmhpZGRlbj0hMX0sX2ZuQ29sbGVjdGlvbkhpZGU6ZnVuY3Rpb24oKXt2YXIgYT10aGlzOyF0aGlzLnMuaGlkZGVuJiZudWxsIT09dGhpcy5kb20uY29sbGVjdGlvbiYmKHRoaXMucy5oaWRkZW49ITAsZCh0aGlzLmRvbS5jb2xsZWN0aW9uKS5hbmltYXRlKHtvcGFjaXR5OjB9LAphLnMuaU92ZXJsYXlGYWRlLGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5kaXNwbGF5PSJub25lIn0pLGQodGhpcy5kb20uYmFja2dyb3VuZCkuYW5pbWF0ZSh7b3BhY2l0eTowfSxhLnMuaU92ZXJsYXlGYWRlLGZ1bmN0aW9uKCl7ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChhLmRvbS5iYWNrZ3JvdW5kKTtkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGEuZG9tLmNhdGNoZXIpfSkpfSxfZm5BZGp1c3RPcGVuUm93czpmdW5jdGlvbigpe2Zvcih2YXIgYT10aGlzLnMuZHQuYW9PcGVuUm93cyxiPXRoaXMucy5kdC5vQXBpLl9mblZpc2JsZUNvbHVtbnModGhpcy5zLmR0KSxjPTAsZD1hLmxlbmd0aDtjPGQ7YysrKWFbY10ublRyLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0ZCIpWzBdLmNvbFNwYW49Yn19O0NvbFZpcy5mblJlYnVpbGQ9ZnVuY3Rpb24oYSl7dmFyIGI9bnVsbDsidW5kZWZpbmVkIiE9dHlwZW9mIGEmJihiPWEuZm5TZXR0aW5ncygpLm5UYWJsZSk7Zm9yKHZhciBjPTAsZD1Db2xWaXMuYUluc3RhbmNlcy5sZW5ndGg7YzwKZDtjKyspKCJ1bmRlZmluZWQiPT10eXBlb2YgYXx8Yj09Q29sVmlzLmFJbnN0YW5jZXNbY10ucy5kdC5uVGFibGUpJiZDb2xWaXMuYUluc3RhbmNlc1tjXS5mblJlYnVpbGQoKX07Q29sVmlzLmFJbnN0YW5jZXM9W107Q29sVmlzLnByb3RvdHlwZS5DTEFTUz0iQ29sVmlzIjtDb2xWaXMuVkVSU0lPTj0iMS4wLjgiO0NvbFZpcy5wcm90b3R5cGUuVkVSU0lPTj1Db2xWaXMuVkVSU0lPTjsiZnVuY3Rpb24iPT10eXBlb2YgZC5mbi5kYXRhVGFibGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBkLmZuLmRhdGFUYWJsZUV4dC5mblZlcnNpb25DaGVjayYmZC5mbi5kYXRhVGFibGVFeHQuZm5WZXJzaW9uQ2hlY2soIjEuNy4wIik/ZC5mbi5kYXRhVGFibGVFeHQuYW9GZWF0dXJlcy5wdXNoKHtmbkluaXQ6ZnVuY3Rpb24oYSl7cmV0dXJuKG5ldyBDb2xWaXMoYSwidW5kZWZpbmVkIj09dHlwZW9mIGEub0luaXQub0NvbFZpcz97fTphLm9Jbml0Lm9Db2xWaXMpKS5kb20ud3JhcHBlcn0sY0ZlYXR1cmU6IkMiLApzRmVhdHVyZToiQ29sVmlzIn0pOmFsZXJ0KCJXYXJuaW5nOiBDb2xWaXMgcmVxdWlyZXMgRGF0YVRhYmxlcyAxLjcgb3IgZ3JlYXRlciAtIHd3dy5kYXRhdGFibGVzLm5ldC9kb3dubG9hZCIpfSkoalF1ZXJ5KTsK]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/col_filter.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5Db2xSZW9yZGVyIGV4YW1wbGU8L3RpdGxlPgoJCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9ImN1cnJlbnRTdHlsZSI+CgkJCUBpbXBvcnQgIi4uLy4uL21lZGlhL2Nzcy9kZW1vX3BhZ2UuY3NzIjsKCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fdGFibGUuY3NzIjsKCQkJdGhlYWQgaW5wdXQgeyB3aWR0aDogMTAwJSB9CgkJCWlucHV0LnNlYXJjaF9pbml0IHsgY29sb3I6ICM5OTkgfQoJCTwvc3R5bGU+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5kYXRhVGFibGVzLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiIHNyYz0ibWVkaWEvanMvRml4ZWRDb2x1bW5zLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgoJCQkkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKCQkJCXZhciBvVGFibGU7CgkJCQkKCQkJCS8qIFVzZSB0aGUgZWxlbWVudHMgdG8gc3RvcmUgdGhlaXIgb3duIGluZGV4ICovCgkJCQkkKCJ0aGVhZCBpbnB1dCIpLmVhY2goIGZ1bmN0aW9uIChpKSB7CgkJCQkJdGhpcy52aXNpYmxlSW5kZXggPSBpOwoJCQkJfSApOwoJCQkJCgkJCQkkKCJ0aGVhZCBpbnB1dCIpLmtleXVwKCBmdW5jdGlvbiAoKSB7CgkJCQkJLyogSWYgdGhlcmUgaXMgbm8gdmlzaWJsZSBpbmRleCB0aGVuIHdlIGFyZSBpbiB0aGUgY2xvbmVkIG5vZGUgKi8KCQkJCQl2YXIgdmlzSW5kZXggPSB0eXBlb2YgdGhpcy52aXNpYmxlSW5kZXggPT0gJ3VuZGVmaW5lZCcgPyAwIDogdGhpcy52aXNpYmxlSW5kZXg7CgkJCQkJCgkJCQkJLyogRmlsdGVyIG9uIHRoZSBjb2x1bW4gKHRoZSBpbmRleCkgb2YgdGhpcyBlbGVtZW50ICovCgkJCQkJb1RhYmxlLmZuRmlsdGVyKCB0aGlzLnZhbHVlLCB2aXNJbmRleCApOwoJCQkJfSApOwoJCQkJCgkJCQkvKgoJCQkJICogU3VwcG9ydCBmdW5jdGlvbnMgdG8gcHJvdmlkZSBhIGxpdHRsZSBiaXQgb2YgJ3VzZXIgZnJpZW5kbHluZXNzJyB0byB0aGUgdGV4dGJveGVzCgkJCQkgKi8KCQkJCSQoInRoZWFkIGlucHV0IikuZWFjaCggZnVuY3Rpb24gKGkpIHsKCQkJCQl0aGlzLmluaXRWYWwgPSB0aGlzLnZhbHVlOwoJCQkJfSApOwoJCQkJCgkJCQkkKCJ0aGVhZCBpbnB1dCIpLmZvY3VzKCBmdW5jdGlvbiAoKSB7CgkJCQkJaWYgKCB0aGlzLmNsYXNzTmFtZSA9PSAic2VhcmNoX2luaXQiICkKCQkJCQl7CgkJCQkJCXRoaXMuY2xhc3NOYW1lID0gIiI7CgkJCQkJCXRoaXMudmFsdWUgPSAiIjsKCQkJCQl9CgkJCQl9ICk7CgkJCQkKCQkJCSQoInRoZWFkIGlucHV0IikuYmx1ciggZnVuY3Rpb24gKGkpIHsKCQkJCQlpZiAoIHRoaXMudmFsdWUgPT0gIiIgKQoJCQkJCXsKCQkJCQkJdGhpcy5jbGFzc05hbWUgPSAic2VhcmNoX2luaXQiOwoJCQkJCQl0aGlzLnZhbHVlID0gdGhpcy5pbml0VmFsOwoJCQkJCX0KCQkJCX0gKTsKCQkJCQoJCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCQkic1Njcm9sbFgiOiAiMTAwJSIsCgkJCQkJInNTY3JvbGxYSW5uZXIiOiAiMTUwJSIsCgkJCQkJImJTY3JvbGxDb2xsYXBzZSI6IHRydWUsCgkJCQkJInNEb20iOiAnQzwiY2xlYXIiPmxmcnRpcCcsCgkJCQkJImFvQ29sdW1uRGVmcyI6IFsKCQkJCQkJeyAiYlZpc2libGUiOiBmYWxzZSwgImFUYXJnZXRzIjogWyAyIF0gfQoJCQkJCV0sCgkJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkJInNTZWFyY2giOiAiU2VhcmNoIGFsbCBjb2x1bW5zOiIKCQkJCQl9CgkJCQl9ICk7CgkJCQluZXcgRml4ZWRDb2x1bW5zKCBvVGFibGUgKTsKCQkJfSApOwoJCTwvc2NyaXB0PgoJPC9oZWFkPgoJPGJvZHkgaWQ9ImR0X2V4YW1wbGUiPgoJCTxkaXYgaWQ9ImNvbnRhaW5lciI+CgkJCTxkaXYgY2xhc3M9ImZ1bGxfd2lkdGggYmlnIj4KCQkJCUZpeGVkQ29sdW1ucyBleGFtcGxlIC0gaW5kaXZpZHVhbCBjb2x1bW4gZmlsdGVyaW5nCgkJCTwvZGl2PgoJCQkKCQkJPGgxPlByZWFtYmxlPC9oMT4KCQkJPHA+VGhpcyBleGFtcGxlIHNob3dzIGEgZmFpcmx5IGNvbXBsZXggZXhhbXBsZSBvZiBGaXhlZENvbHVtbnMgaW4gYWN0aW9uLiBQcmltYXJpbHkgaXQgc2hvd3MKCQkJCWhvdyBtdWx0aXBsZSByb3dzIGNhbiBiZSB1c2VkIGluIHRoZSBUSEVBRCBvciBURk9PVCBlbGVtZW50IG9mIHRoZSB0YWJsZSBzdWNoIHRoYXQgeW91IGNhbgoJCQkJcHJvdmlkZSBleHRyYSBpbmZvcm1hdGlvbi4gSW4gdGhpcyBjYXNlIGl0IHNob3dzIGhvdyBhIGNvbHVtbiBmaWx0ZXIgY291bGQgYmUgaW1wbGVtZW50ZWQuPC9wPgoJCQkKCQkJPGgxPkxpdmUgZXhhbXBsZTwvaDE+CgkJCTxmb3JtPgoJCQk8ZGl2IGlkPSJkZW1vIj4KPHRhYmxlIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgYm9yZGVyPSIwIiBjbGFzcz0iZGlzcGxheSIgaWQ9ImV4YW1wbGUiPgoJPHRoZWFkPgoJCTx0cj4KCQkJPHRoPlJlbmRlcmluZyBlbmdpbmU8L3RoPgoJCQk8dGg+QnJvd3NlcjwvdGg+CgkJCTx0aD5QbGF0Zm9ybShzKTwvdGg+CgkJCTx0aD5FbmdpbmUgdmVyc2lvbjwvdGg+CgkJCTx0aD5DU1MgZ3JhZGU8L3RoPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InNlYXJjaF9lbmdpbmUiIHZhbHVlPSJTZWFyY2ggZW5naW5lcyIgY2xhc3M9InNlYXJjaF9pbml0IiAvPjwvdGQ+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ic2VhcmNoX2Jyb3dzZXIiIHZhbHVlPSJTZWFyY2ggYnJvd3NlcnMiIGNsYXNzPSJzZWFyY2hfaW5pdCIgLz48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InNlYXJjaF9wbGF0Zm9ybSIgdmFsdWU9IlNlYXJjaCBwbGF0Zm9ybXMiIGNsYXNzPSJzZWFyY2hfaW5pdCIgLz48L3RkPgoJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InNlYXJjaF92ZXJzaW9uIiB2YWx1ZT0iU2VhcmNoIHZlcnNpb25zIiBjbGFzcz0ic2VhcmNoX2luaXQiIC8+PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJzZWFyY2hfZ3JhZGUiIHZhbHVlPSJTZWFyY2ggZ3JhZGVzIiBjbGFzcz0ic2VhcmNoX2luaXQiIC8+PC90ZD4KCQk8L3RyPgoJPC90aGVhZD4KCTx0Zm9vdD4KCQk8dHI+CgkJCTx0aD5SZW5kZXJpbmcgZW5naW5lPC90aD4KCQkJPHRoPkJyb3dzZXI8L3RoPgoJCQk8dGg+UGxhdGZvcm0ocyk8L3RoPgoJCQk8dGg+RW5naW5lIHZlcnNpb248L3RoPgoJCQk8dGg+Q1NTIGdyYWRlPC90aD4KCQk8L3RyPgoJPC90Zm9vdD4KCTx0Ym9keT4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZVgiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA0LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAoRW50aXR5OiAmYW1wOyk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUMiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjA8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS41PC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDY8L3RkPgoJCQk8dGQ+V2luIDk4KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNzwvdGQ+CgkJCTx0ZD5XaW4gWFAgU1AyKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkFPTCBicm93c2VyIChBT0wgZGVza3RvcCk8L3RkPgoJCQk8dGQ+V2luIFhQPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja28gKFVURi04OiAkwqLigqwpPC90ZD4KCQkJPHRkPkZpcmVmb3ggMS4wPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDEuNTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDIuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAzLjA8L3RkPgoJCQk8dGQ+V2luIDJrKyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuMDwvdGQ+CgkJCTx0ZD5PU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5DYW1pbm8gMS41PC90ZD4KCQkJPHRkPk9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgNy4yPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBNYWMgT1MgOC42LTkuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIEJyb3dzZXIgODwvdGQ+CgkJCTx0ZD5XaW4gOThTRSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIE5hdmlnYXRvciA5PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjE8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4yPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4yPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4zPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjY8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjc8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS44PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPlNlYW1vbmtleSAxLjE8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkVwaXBoYW55IDIuMjA8L3RkPgoJCQk8dGQ+R25vbWU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMS4yPC90ZD4KCQkJPHRkPk9TWC4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEyNS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDEuMzwvdGQ+CgkJCTx0ZD5PU1guMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zMTIuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDIuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDE5LjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMy4wPC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41MjIuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+T21uaVdlYiA1LjU8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQyMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPmlQb2QgVG91Y2ggLyBpUGhvbmU8L3RkPgoJCQk8dGQ+aVBvZDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MjAuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+UzYwPC90ZD4KCQkJPHRkPlM2MDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA3LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA3LjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOC4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOC41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuMjwvdGQ+CgkJCTx0ZD5XaW4gODgrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjU8L3RkPgoJCQk8dGQ+V2luIDg4KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSBmb3IgV2lpPC90ZD4KCQkJPHRkPldpaTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+Tm9raWEgTjgwMDwvdGQ+CgkJCTx0ZD5OODAwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5pbnRlbmRvIERTIGJyb3dzZXI8L3RkPgoJCQk8dGQ+TmludGVuZG8gRFM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+OC41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkMvQTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVDIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy4xPC90ZD4KCQkJPHRkPktERSAzLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy4zPC90ZD4KCQkJPHRkPktERSAzLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJldmVuX2dyYWRlQSI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuNTwvdGQ+CgkJCTx0ZD5LREUgMy41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlWCI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNC41PC90ZD4KCQkJPHRkPk1hYyBPUyA4LTk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUMiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMTwvdGQ+CgkJCTx0ZD5NYWMgT1MgNy42LTk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQyI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4yPC90ZD4KCQkJPHRkPk1hYyBPUyA4LVg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZUEiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5OZXRGcm9udCAzLjE8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVBIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy40PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZXZlbl9ncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5EaWxsbyAwLjg8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJvZGRfZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TGlua3M8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+THlueDwvdGQ+CgkJCTx0ZD5UZXh0IG9ubHk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0ib2RkX2dyYWRlQyI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPklFIE1vYmlsZTwvdGQ+CgkJCTx0ZD5XaW5kb3dzIE1vYmlsZSA2PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImV2ZW5fZ3JhZGVDIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+UFNQIGJyb3dzZXI8L3RkPgoJCQk8dGQ+UFNQPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9Im9kZF9ncmFkZVUiPgoJCQk8dGQ+T3RoZXIgYnJvd3NlcnM8L3RkPgoJCQk8dGQ+QWxsIG90aGVyczwvdGQ+CgkJCTx0ZD4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+VTwvdGQ+CgkJPC90cj4KCTwvdGJvZHk+CjwvdGFibGU+CgkJCTwvZGl2PgoJCTwvZm9ybT4KCQkJPGRpdiBjbGFzcz0ic3BhY2VyIj48L2Rpdj4KCQkJCgkJCQoJCQk8aDE+SW5pdGlhbGlzYXRpb24gY29kZTwvaDE+CgkJCTxwcmU+JChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7Cgl2YXIgb1RhYmxlOwoJCgkvKiBVc2UgdGhlIGVsZW1lbnRzIHRvIHN0b3JlIHRoZWlyIG93biBpbmRleCAqLwoJJCgidGhlYWQgaW5wdXQiKS5lYWNoKCBmdW5jdGlvbiAoaSkgewoJCXRoaXMudmlzaWJsZUluZGV4ID0gaTsKCX0gKTsKCQoJJCgidGhlYWQgaW5wdXQiKS5rZXl1cCggZnVuY3Rpb24gKCkgewoJCS8qIElmIHRoZXJlIGlzIG5vIHZpc2libGUgaW5kZXggdGhlbiB3ZSBhcmUgaW4gdGhlIGNsb25lZCBub2RlICovCgkJdmFyIHZpc0luZGV4ID0gdHlwZW9mIHRoaXMudmlzaWJsZUluZGV4ID09ICd1bmRlZmluZWQnID8gMCA6IHRoaXMudmlzaWJsZUluZGV4OwoJCQoJCS8qIEZpbHRlciBvbiB0aGUgY29sdW1uICh0aGUgaW5kZXgpIG9mIHRoaXMgZWxlbWVudCAqLwoJCW9UYWJsZS5mbkZpbHRlciggdGhpcy52YWx1ZSwgdmlzSW5kZXggKTsKCX0gKTsKCQoJLyoKCSAqIFN1cHBvcnQgZnVuY3Rpb25zIHRvIHByb3ZpZGUgYSBsaXR0bGUgYml0IG9mICd1c2VyIGZyaWVuZGx5bmVzcycgdG8gdGhlIHRleHRib3hlcwoJICovCgkkKCJ0aGVhZCBpbnB1dCIpLmVhY2goIGZ1bmN0aW9uIChpKSB7CgkJdGhpcy5pbml0VmFsID0gdGhpcy52YWx1ZTsKCX0gKTsKCQoJJCgidGhlYWQgaW5wdXQiKS5mb2N1cyggZnVuY3Rpb24gKCkgewoJCWlmICggdGhpcy5jbGFzc05hbWUgPT0gInNlYXJjaF9pbml0IiApCgkJewoJCQl0aGlzLmNsYXNzTmFtZSA9ICIiOwoJCQl0aGlzLnZhbHVlID0gIiI7CgkJfQoJfSApOwoJCgkkKCJ0aGVhZCBpbnB1dCIpLmJsdXIoIGZ1bmN0aW9uIChpKSB7CgkJaWYgKCB0aGlzLnZhbHVlID09ICIiICkKCQl7CgkJCXRoaXMuY2xhc3NOYW1lID0gInNlYXJjaF9pbml0IjsKCQkJdGhpcy52YWx1ZSA9IHRoaXMuaW5pdFZhbDsKCQl9Cgl9ICk7CgkKCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNTY3JvbGxYIjogIjEwMCUiLAoJCSJzU2Nyb2xsWElubmVyIjogIjE1MCUiLAoJCSJiU2Nyb2xsQ29sbGFwc2UiOiB0cnVlLAoJCSJzRG9tIjogJ0MmbHQ7ImNsZWFyIiZndDtsZnJ0aXAnLAoJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCXsgImJWaXNpYmxlIjogZmFsc2UsICJhVGFyZ2V0cyI6IFsgMiBdIH0KCQldLAoJCSJvTGFuZ3VhZ2UiOiB7CgkJCSJzU2VhcmNoIjogIlNlYXJjaCBhbGwgY29sdW1uczoiCgkJfQoJfSApOwoJbmV3IEZpeGVkQ29sdW1ucyggb1RhYmxlICk7Cn0gKTs8L3ByZT4KCgoJCQk8aDE+RG9jdW1lbnRhdGlvbjwvaDE+CgkJCTx1bD4KCQkJCTxsaT48YSBocmVmPSJodHRwOi8vZGF0YXRhYmxlcy5uZXQvZXh0cmFzL2ZpeGVkY29sdW1ucyI+VXNhZ2U8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJodHRwOi8vZGF0YXRhYmxlcy5uZXQvZG9jcy9GaXhlZENvbHVtbnMiPkFQSSAvIHBhcmFtZXRlcnM8L2E+PC9saT4KCQkJPC91bD4KCgkJCTxoMT5CYXNpYyBleGFtcGxlczwvaDE+CgkJCTx1bD4KCQkJCTxsaT48YSBocmVmPSJpbmRleC5odG1sIj5CYXNpYyBkZW1vIG9mIEZpeGVkQ29sdW1ucyB3aXRoIHplcm8gaW5pdGlhbGlzYXRpb248L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJsZWZ0X3JpZ2h0X2NvbHVtbnMuaHRtbCI+Rml4IHRoZSBsZWZ0IGFuZCByaWdodCBjb2x1bW5zIGluIHBsYWNlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iaW5kZXhfY29sdW1uLmh0bWwiPkluZGV4IGNvbHVtbiBhdHRhY2hlZCB0byBzaWRlIG9mIHRoZSB0YWJsZTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InhfeV9zY3JvbGxpbmcuaHRtbCI+SW5kZXggY29sdW1uLCBidXQgd2l0aCBZIHNjcm9sbGluZyBhbmQgbm8gcGFnaW5hdGlvbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InR3b19jb2x1bW5zLmh0bWwiPlR3byBjb2x1bW5zIGZpeGVkIGluIHBsYWNlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0icmlnaHRfY29sdW1uLmh0bWwiPkZpeCB0aGUgcmlnaHQgY29sdW1uIGluIHBsYWNlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iY3NzX3NpemUuaHRtbCI+U3BlZWRpbmcgdXAgcm93IGhlaWdodCBtYXRjaGluZyB3aXRoIENTUzwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InRoZW1lZC5odG1sIj5qUXVlcnkgVUkgdGhlbWVkIHRhYmxlIHdpdGggRml4ZWRDb2x1bW5zPC9hPjwvbGk+CgkJCTwvdWw+CgkJCQoJCQk8aDE+QWR2YW5jZWQgZXhhbXBsZXM8L2gxPgoJCQk8dWw+CgkJCQk8bGk+PGEgaHJlZj0icm93c3Bhbi5odG1sIj5Vc2luZyBST1dTUEFOIHdpdGggRml4ZWRDb2x1bW5zPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ic2VydmVyLXNpZGUtcHJvY2Vzc2luZy5odG1sIj5TZXJ2ZXItc2lkZSBwcm9jZXNzaW5nIHdpdGggRml4ZWRDb2x1bW5zPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iY29sX2ZpbHRlci5odG1sIj5JbmRpdmlkdWFsIGNvbHVtbiBmaWx0ZXJpbmc8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJzY2FsZV9maXhlZC5odG1sIj5TZXR0aW5nIHRoZSBmaXhlZCBjb2x1bW4gd2lkdGggYW5kIHJlc2l6aW5nIHRoZSB0YWJsZTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InNjYWxlX3JlbGF0aXZlLmh0bWwiPlNldHRpbmcgdGhlIGZpeGVkIGNvbHVtbiB3aWR0aCB3aXRoIHJlbGF0aXZlIHNpemluZzwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InJvd19ncm91cGluZ19oZWlnaHQuaHRtbCI+Um93IGdyb3VwaW5nIGJ5IGdyb3VwaW5nIGxpa2Ugcm93cyBpbiB0aGUgZml4ZWQgY29sdW1uPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0icm93X2dyb3VwaW5nLmh0bWwiPlJvdyBncm91cGluZyBieSBpbnNlcnRpbmcgYSBncm91cGluZyByb3c8L2E+PC9saT4KCQkJPHVsPgoJCQkKCQkJCgkJCTxkaXYgaWQ9ImZvb3RlciIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyOyI+CgkJCQk8c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwcHg7Ij4KCQkJCQlGaXhlZENvbHVtbnMgYW5kIERhdGFUYWJsZXMgJmNvcHk7IEFsbGFuIEphcmRpbmUgMjAxMS48YnI+CgkJCQk8L3NwYW4+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/css_size.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5GaXhlZENvbHVtbnMgZXhhbXBsZTwvdGl0bGU+CgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iY3VycmVudFN0eWxlIj4KCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fcGFnZS5jc3MiOwoJCQlAaW1wb3J0ICIuLi8uLi9tZWRpYS9jc3MvZGVtb190YWJsZS5jc3MiOwoJCQl0ciB7IGhlaWdodDogNTBweDsgfQoJCTwvc3R5bGU+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5kYXRhVGFibGVzLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiIHNyYz0ibWVkaWEvanMvRml4ZWRDb2x1bW5zLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgoJCQkkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJCQkJdmFyIGlTdGFydCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOwoJCQkJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkJInNTY3JvbGxZIjogIjMwMHB4IiwKCQkJCQkic1Njcm9sbFgiOiAiMTAwJSIsCgkJCQkJInNTY3JvbGxYSW5uZXIiOiAiMTUwJSIsCgkJCQkJImJTY3JvbGxDb2xsYXBzZSI6IHRydWUsCgkJCQkJImJQYWdpbmF0ZSI6IGZhbHNlCgkJCQl9ICk7CgkJCQluZXcgRml4ZWRDb2x1bW5zKCBvVGFibGUsIHsKCQkJCQkic0hlaWdodE1hdGNoIjogIm5vbmUiCgkJCQl9ICk7CgkJCX0gKTsKCQk8L3NjcmlwdD4KCTwvaGVhZD4KCTxib2R5IGlkPSJkdF9leGFtcGxlIj4KCQk8ZGl2IGlkPSJjb250YWluZXIiPgoJCQk8ZGl2IGNsYXNzPSJmdWxsX3dpZHRoIGJpZyI+CgkJCQlGaXhlZENvbHVtbnMgZXhhbXBsZSAtIENTUyByb3cgc2l6aW5nCgkJCTwvZGl2PgoJCQkKCQkJPGgxPlByZWFtYmxlPC9oMT4KCQkJPHA+QmVjYXVzZSBvZiB0aGUgbWV0aG9kIEZpeGVkQ29sdW1ucyB1c2VzIHRvIGRpc3BsYXkgdGhlIGZpeGVkIGNvbHVtbnMsIGFuIGltcG9ydGFudCBjb25zaWRlcmF0aW9uIGlzIHRoZSBhbGlnbm1lbnQgb2YgdGhlIHJvd3MgZHVlIHRvIGRpZmZlcmVudCBoZWlnaHRzIGluIHRoZSBpbmRpdmlkdWFsIHJvd3Mgb2YgdGhlIHRhYmxlLiBUaGVyZSBhcmUgdHdvIGRpZmZlcmVudCBhbGdvcml0aG1zIGluIEZpeGVkQ29sdW1ucyB3aGljaCBjYW4gYmUgdXNlZCwgb3IgeW91IGNhbiBzd2l0Y2ggb2ZmIGF1dG9tYXRpYyByb3cgc2l6aW5nIGFsbCB0b2dldGhlci4gVGhpcyBpcyBjb250cm9sbGVkIHRocm91Z2ggdGhlIDxpPnNIZWlnaHRNYXRjaDwvaT4gcGFyYW1ldGVyLiBJZiBjYW4gdGFrZSB0aGUgZm9sbG93aW5nIHZhbHVlczo8L3A+CgoJCQk8dWw+CgkJCQk8bGk+Im5vbmUiIC0gbm8gYXV0b21hdGljIHJvdyBoZWlnaHQgbWF0Y2hpbmcgaXMgcGVyZm9ybWVkLiBDU1MgY2FuIGJlIHVzZWQgaW4gdGhpcyBjYXNlIGFuZCBpcyB1c2VmdWwgd2hlbiBzcGVlZCBpcyBvZiBwcmltYXJ5IGltcG9ydGFuY2UuPC9saT4KCQkJCTxsaT4ic2VtaWF1dG8iIChkZWZhdWx0KSAtIHRoZSBoZWlnaHQgY2FsY3VsYXRpb24gd2lsbCBiZSBwZXJmb3JtZWQgb25jZSwgYW5kIHRoZSByZXN1bHQgY2FjaGVkIHRvIGJlIHVzZWQgYWdhaW4gKGZuUmVjYWxjdWxhdGVIZWlnaHQgY2FuIGJlIHVzZWQgdG8gZm9yY2UgcmVjYWxjdWxhdGlvbik8L2xpPgoJCQkJPGxpPiJhdXRvIiAtIGhlaWdodCBtYXRjaGluZyBpcyBwZXJmb3JtZWQgb24gZXZlcnkgZHJhdyAoc2xvd2VzdCBidXQgbXVzdCBhY2N1cmF0ZSk8L2xpPgoJCQk8L3VsPgoJCQkKCQkJPHA+VGhpcyBleGFtcGxlIHNob3dzIHJvdyBoZWlnaHQgbWF0Y2hpbmcgc3dpdGNoZWQgb2ZmIGJ1dCB0aGVyZSBpcyBhIENTUyBzdGF0ZW1lbnQgb2YgdHIgeyBoZWlnaHQ6IDUwcHggfSB0byBmb3JjZSBhbGwgcm93cyB0byB0aGUgc2FtZSBoZWlnaHQuPC9wPgoJCQkKCQkJPGgxPkxpdmUgZXhhbXBsZTwvaDE+CgkJCTxkaXYgaWQ9ImRlbW8iPgo8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIGNsYXNzPSJkaXNwbGF5IiBpZD0iZXhhbXBsZSI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGZvb3Q+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGZvb3Q+Cgk8dGJvZHk+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDQuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNS4wPC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA1LjU8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNjwvdGQ+CgkJCTx0ZD5XaW4gOTgrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDc8L3RkPgoJCQk8dGQ+V2luIFhQIFNQMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+QU9MIGJyb3dzZXIgKEFPTCBkZXNrdG9wKTwvdGQ+CgkJCTx0ZD5XaW4gWFA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMS4wPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCA8YnI+MS41PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAyLjA8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDMuMDwvdGQ+CgkJCTx0ZD5XaW4gMmsrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkNhbWlubyAxLjA8L3RkPgoJCQk8dGQ+T1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkNhbWlubyAxLjU8L3RkPgoJCQk8dGQ+T1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIDcuMjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gTWFjIE9TIDguNi05LjI8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgQnJvd3NlciA4PC90ZD4KCQkJPHRkPldpbiA5OFNFKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSBOYXZpZ2F0b3IgOTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4xPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjI8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjI8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMzwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS40PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS40PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS43PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjg8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5TZWFtb25rZXkgMS4xPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RXBpcGhhbnkgMi4yMDwvdGQ+CgkJCTx0ZD5Hbm9tZTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDEuMjwvdGQ+CgkJCTx0ZD5PU1guMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xMjUuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMS4zPC90ZD4KCQkJPHRkPk9TWC4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMxMi44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAyLjA8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQxOS4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAzLjA8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUyMi4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPk9tbmlXZWIgNS41PC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MjA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+aVBvZCBUb3VjaCAvIGlQaG9uZTwvdGQ+CgkJCTx0ZD5pUG9kPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQyMC4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlM2MDwvdGQ+CgkJCTx0ZD5TNjA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDEzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDcuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgNy41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA4LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDguNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjI8L3RkPgoJCQk8dGQ+V2luIDg4KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuNTwvdGQ+CgkJCTx0ZD5XaW4gODgrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgZm9yIFdpaTwvdGQ+CgkJCTx0ZD5XaWk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5Ob2tpYSBOODAwPC90ZD4KCQkJPHRkPk44MDA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5OaW50ZW5kbyBEUyBicm93c2VyPC90ZD4KCQkJPHRkPk5pbnRlbmRvIERTPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjguNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DL0E8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjE8L3RkPgoJCQk8dGQ+S0RFIDMuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuMzwvdGQ+CgkJCTx0ZD5LREUgMy4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy41PC90ZD4KCQkJPHRkPktERSAzLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDQuNTwvdGQ+CgkJCTx0ZD5NYWMgT1MgOC05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4xPC90ZD4KCQkJPHRkPk1hYyBPUyA3LjYtOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMjwvdGQ+CgkJCTx0ZD5NYWMgT1MgOC1YPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPk5ldEZyb250IDMuMTwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPk5ldEZyb250IDMuNDwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkRpbGxvIDAuODwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkxpbmtzPC90ZD4KCQkJPHRkPlRleHQgb25seTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5MeW54PC90ZD4KCQkJPHRkPlRleHQgb25seTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5JRSBNb2JpbGU8L3RkPgoJCQk8dGQ+V2luZG93cyBNb2JpbGUgNjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5QU1AgYnJvd3NlcjwvdGQ+CgkJCTx0ZD5QU1A8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVVIj4KCQkJPHRkPk90aGVyIGJyb3dzZXJzPC90ZD4KCQkJPHRkPkFsbCBvdGhlcnM8L3RkPgoJCQk8dGQ+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlU8L3RkPgoJCTwvdHI+Cgk8L3Rib2R5Pgo8L3RhYmxlPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0ic3BhY2VyIj48L2Rpdj4KCQkJCgkJCQoJCQk8aDE+SW5pdGlhbGlzYXRpb24gY29kZTwvaDE+CgkJCTxwcmU+JChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzU2Nyb2xsWCI6ICIxMDAlIiwKCQkic1Njcm9sbFhJbm5lciI6ICIxNTAlIiwKCQkiYlNjcm9sbENvbGxhcHNlIjogdHJ1ZQoJfSApOwoJbmV3IEZpeGVkQ29sdW1ucyggb1RhYmxlICk7Cn0gKTs8L3ByZT4KCgoJCQk8aDE+RG9jdW1lbnRhdGlvbjwvaDE+CgkJCTx1bD4KCQkJCTxsaT48YSBocmVmPSJodHRwOi8vZGF0YXRhYmxlcy5uZXQvZXh0cmFzL2ZpeGVkY29sdW1ucyI+VXNhZ2U8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJodHRwOi8vZGF0YXRhYmxlcy5uZXQvZG9jcy9GaXhlZENvbHVtbnMiPkFQSSAvIHBhcmFtZXRlcnM8L2E+PC9saT4KCQkJPC91bD4KCgkJCTxoMT5CYXNpYyBleGFtcGxlczwvaDE+CgkJCTx1bD4KCQkJCTxsaT48YSBocmVmPSJpbmRleC5odG1sIj5CYXNpYyBkZW1vIG9mIEZpeGVkQ29sdW1ucyB3aXRoIHplcm8gaW5pdGlhbGlzYXRpb248L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJsZWZ0X3JpZ2h0X2NvbHVtbnMuaHRtbCI+Rml4IHRoZSBsZWZ0IGFuZCByaWdodCBjb2x1bW5zIGluIHBsYWNlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iaW5kZXhfY29sdW1uLmh0bWwiPkluZGV4IGNvbHVtbiBhdHRhY2hlZCB0byBzaWRlIG9mIHRoZSB0YWJsZTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InhfeV9zY3JvbGxpbmcuaHRtbCI+SW5kZXggY29sdW1uLCBidXQgd2l0aCBZIHNjcm9sbGluZyBhbmQgbm8gcGFnaW5hdGlvbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InR3b19jb2x1bW5zLmh0bWwiPlR3byBjb2x1bW5zIGZpeGVkIGluIHBsYWNlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0icmlnaHRfY29sdW1uLmh0bWwiPkZpeCB0aGUgcmlnaHQgY29sdW1uIGluIHBsYWNlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iY3NzX3NpemUuaHRtbCI+U3BlZWRpbmcgdXAgcm93IGhlaWdodCBtYXRjaGluZyB3aXRoIENTUzwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InRoZW1lZC5odG1sIj5qUXVlcnkgVUkgdGhlbWVkIHRhYmxlIHdpdGggRml4ZWRDb2x1bW5zPC9hPjwvbGk+CgkJCTwvdWw+CgkJCQoJCQk8aDE+QWR2YW5jZWQgZXhhbXBsZXM8L2gxPgoJCQk8dWw+CgkJCQk8bGk+PGEgaHJlZj0icm93c3Bhbi5odG1sIj5Vc2luZyBST1dTUEFOIHdpdGggRml4ZWRDb2x1bW5zPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ic2VydmVyLXNpZGUtcHJvY2Vzc2luZy5odG1sIj5TZXJ2ZXItc2lkZSBwcm9jZXNzaW5nIHdpdGggRml4ZWRDb2x1bW5zPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iY29sX2ZpbHRlci5odG1sIj5JbmRpdmlkdWFsIGNvbHVtbiBmaWx0ZXJpbmc8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJzY2FsZV9maXhlZC5odG1sIj5TZXR0aW5nIHRoZSBmaXhlZCBjb2x1bW4gd2lkdGggYW5kIHJlc2l6aW5nIHRoZSB0YWJsZTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InNjYWxlX3JlbGF0aXZlLmh0bWwiPlNldHRpbmcgdGhlIGZpeGVkIGNvbHVtbiB3aWR0aCB3aXRoIHJlbGF0aXZlIHNpemluZzwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InJvd19ncm91cGluZ19oZWlnaHQuaHRtbCI+Um93IGdyb3VwaW5nIGJ5IGdyb3VwaW5nIGxpa2Ugcm93cyBpbiB0aGUgZml4ZWQgY29sdW1uPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0icm93X2dyb3VwaW5nLmh0bWwiPlJvdyBncm91cGluZyBieSBpbnNlcnRpbmcgYSBncm91cGluZyByb3c8L2E+PC9saT4KCQkJPHVsPgoJCQkKCQkJCgkJCTxkaXYgaWQ9ImZvb3RlciIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyOyI+CgkJCQk8c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwcHg7Ij4KCQkJCQlGaXhlZENvbHVtbnMgYW5kIERhdGFUYWJsZXMgJmNvcHk7IEFsbGFuIEphcmRpbmUgMjAxMS48YnI+CgkJCQk8L3NwYW4+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/docs/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/docs/070023b890.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTx0aXRsZT5OYW1lc3BhY2U6IGxlZnQgLSBkb2N1bWVudGF0aW9uPC90aXRsZT4KICAKCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgoJCQlAaW1wb3J0ICJtZWRpYS9jc3MvZG9jLmNzcyI7CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9zaENvcmUuY3NzIjsKCQkJQGltcG9ydCAibWVkaWEvY3NzL3NoVGhlbWVEYXRhVGFibGVzLmNzcyI7CgkJPC9zdHlsZT4KCQoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL3NoQ29yZS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvc2hCcnVzaEpTY3JpcHQuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvZG9jLmpzIj48L3NjcmlwdD4KCTwvaGVhZD4KCTxib2R5PgoJCTxkaXYgY2xhc3M9ImZ3X2NvbnRhaW5lciI+CgkJCQoJCQkJPGEgbmFtZT0idG9wIj48L2E+CgkJCQk8ZGl2IGNsYXNzPSJmd19oZWFkZXIiPgoJCQkJCTxoMSBjbGFzcz0icGFnZS10aXRsZSI+TmFtZXNwYWNlOiBsZWZ0PC9oMT4KCQkJCQk8aDIgY2xhc3M9ImFuY2VzdG9ycyI+QW5jZXN0cnk6IDxzcGFuIGNsYXNzPSJhbmNlc3RvcnMiPjxhIGhyZWY9IkZpeGVkQ29sdW1ucy5odG1sIj5GaXhlZENvbHVtbnM8L2E+IMK7IDxhIGhyZWY9ImQzODkwYmE3YzQuaHRtbCI+I2RvbTwvYT4gwrsgPGEgaHJlZj0iNTI2Zjg3MjIwNy5odG1sIj4uZ3JpZDwvYT4uPC9zcGFuPiDCuyBsZWZ0PC9oMj4KCQkJCQk8ZGl2IGNsYXNzPSJwYWdlLWluZm8iPgoJCQkJCQlGaXhlZENvbHVtbnMgdjIuMC4zIGRvY3VtZW50YXRpb24KCQkJCQk8L2Rpdj4KCQkJCTwvZGl2PgoKCQkJCQoKCQkJCTxkaXYgY2xhc3M9ImZ3X25hdiI+CgkJCQkJPGgyPk5hdmlnYXRpb248L2gyPgoJCQkJCTx1bD4KCQkJCQk8bGk+PGEgaHJlZj0iI3RvcCI+T3ZlcnZpZXc8L2E+PC9saT4KCQkJCQk8bGk+PGEgaHJlZj0iI3N1bW1hcnkiPlN1bW1hcnk8L2E+PGRpdj48L2Rpdj48L2xpPjxsaT48YSBocmVmPSIjZGV0YWlscyI+RGV0YWlsczwvYT48ZGl2PjwvZGl2PjwvbGk+PC91bD4KCQkJCQk8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAxMHB4OyI+CgkJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNob3dfcHJpdmF0ZSIgdmFsdWU9IjAiPgoJCQkJCQk8c3BhbiBpZD0icHJpdmF0ZV9sYWJlbCI+SGlkaW5nPC9zcGFuPiBwcml2YXRlIGVsZW1lbnRzIAoJCQkJCQkJKDxhIGlkPSJwcml2YXRlX3RvZ2dsZSIgaHJlZj0iIj50b2dnbGU8L2E+KQoJCQkJCQk8L3NwYW4+CgkJCQkJPC9kaXY+CgkJCQkJPGRpdj4KCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2hvd19leHRlbmRlZCIgdmFsdWU9IjEiPgoJCQkJCQk8c3BhbiBpZD0iZXh0ZW5kZWRfbGFiZWwiPlNob3dpbmc8L3NwYW4+IGV4dGVuZGVkIGVsZW1lbnRzIAoJCQkJCQkJKDxhIGlkPSJleHRlbmRlZF90b2dnbGUiIGhyZWY9IiI+dG9nZ2xlPC9hPikKCQkJCQkJPC9zcGFuPgoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgoJCQkJPGRpdiBjbGFzcz0iZndfY29udGVudCI+CgkJCQkJPGEgbmFtZT0ib3ZlcnZpZXciPjwvYT4KCQkJCQk8ZGl2IGNsYXNzPSJkb2Nfb3ZlcnZpZXciPgoJCQkJCQk8ZGl2IGNsYXNzPSJuYXZfYmxvY2tlciI+PC9kaXY+CgkJCQkJCTxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+TGVmdCBmaXhlZCBjb2x1bW4gZ3JpZCBjb21wb25lbnRzPC9wPjxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KCgkJCQkJPC9kaXY+CgoJCQkJCQoKCgkJCQkJCgkJPC9kaXY+CgoJCTxkaXYgY2xhc3M9ImZ3X2Zvb3RlciI+CgkJCUZpeGVkQ29sdW1uczogQ29weXJpZ2h0IDIwMTAtMjAxMSBBbGxhbiBKYXJkaW5lLCBhbGwgcmlnaHRzIHJlc2VydmVkPGJyPgoKCQkJRG9jdW1lbnRhdGlvbiBnZW5lcmF0ZWQgYnkgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL21pY21hdGgvSlNEb2MiPkpTRG9jIDM8L2E+IG9uCgkJCTh0aCBBdWcgMjAxMiAtIDIyOjUzCgkJCXdpdGggdGhlIDxhIGhyZWY9Imh0dHA6Ly9kYXRhdGFibGVzLm5ldC8iPkRhdGFUYWJsZXM8L2E+IHRlbXBsYXRlLgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/docs/91bce7c4ad.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTx0aXRsZT5OYW1lc3BhY2U6IHMgLSBkb2N1bWVudGF0aW9uPC90aXRsZT4KICAKCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgoJCQlAaW1wb3J0ICJtZWRpYS9jc3MvZG9jLmNzcyI7CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9zaENvcmUuY3NzIjsKCQkJQGltcG9ydCAibWVkaWEvY3NzL3NoVGhlbWVEYXRhVGFibGVzLmNzcyI7CgkJPC9zdHlsZT4KCQoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL3NoQ29yZS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvc2hCcnVzaEpTY3JpcHQuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvZG9jLmpzIj48L3NjcmlwdD4KCTwvaGVhZD4KCTxib2R5PgoJCTxkaXYgY2xhc3M9ImZ3X2NvbnRhaW5lciI+CgkJCQoJCQkJPGEgbmFtZT0idG9wIj48L2E+CgkJCQk8ZGl2IGNsYXNzPSJmd19oZWFkZXIiPgoJCQkJCTxoMSBjbGFzcz0icGFnZS10aXRsZSI+TmFtZXNwYWNlOiBzPC9oMT4KCQkJCQk8aDIgY2xhc3M9ImFuY2VzdG9ycyI+QW5jZXN0cnk6IDxzcGFuIGNsYXNzPSJhbmNlc3RvcnMiPjxhIGhyZWY9IkZpeGVkQ29sdW1ucy5odG1sIj5GaXhlZENvbHVtbnM8L2E+Izwvc3Bhbj4gwrsgczwvaDI+CgkJCQkJPGRpdiBjbGFzcz0icGFnZS1pbmZvIj4KCQkJCQkJRml4ZWRDb2x1bW5zIHYyLjAuMyBkb2N1bWVudGF0aW9uCgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCgkJCQkKCgkJCQk8ZGl2IGNsYXNzPSJmd19uYXYiPgoJCQkJCTxoMj5OYXZpZ2F0aW9uPC9oMj4KCQkJCQk8dWw+CgkJCQkJPGxpPjxhIGhyZWY9IiN0b3AiPk92ZXJ2aWV3PC9hPjwvbGk+CgkJCQkJPGxpPjxhIGhyZWY9IiNzdW1tYXJ5Ij5TdW1tYXJ5PC9hPjxkaXY+PGEgaHJlZj0iI3N1bW1hcnlfcHJvcGVydGllcyI+UHJvcGVydGllczwvYT48L2Rpdj48L2xpPjxsaT48YSBocmVmPSIjZGV0YWlscyI+RGV0YWlsczwvYT48ZGl2PjxhIGhyZWY9IiNkZXRhaWxzX3Byb3BlcnRpZXMiPlByb3BlcnRpZXM8L2E+PC9kaXY+PC9saT48L3VsPgoJCQkJCTxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDEwcHg7Ij4KCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2hvd19wcml2YXRlIiB2YWx1ZT0iMCI+CgkJCQkJCTxzcGFuIGlkPSJwcml2YXRlX2xhYmVsIj5IaWRpbmc8L3NwYW4+IHByaXZhdGUgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9InByaXZhdGVfdG9nZ2xlIiBocmVmPSIiPnRvZ2dsZTwvYT4pCgkJCQkJCTwvc3Bhbj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2PgoJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzaG93X2V4dGVuZGVkIiB2YWx1ZT0iMSI+CgkJCQkJCTxzcGFuIGlkPSJleHRlbmRlZF9sYWJlbCI+U2hvd2luZzwvc3Bhbj4gZXh0ZW5kZWQgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9ImV4dGVuZGVkX3RvZ2dsZSIgaHJlZj0iIj50b2dnbGU8L2E+KQoJCQkJCQk8L3NwYW4+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCgkJCQk8ZGl2IGNsYXNzPSJmd19jb250ZW50Ij4KCQkJCQk8YSBuYW1lPSJvdmVydmlldyI+PC9hPgoJCQkJCTxkaXYgY2xhc3M9ImRvY19vdmVydmlldyI+CgkJCQkJCTxkaXYgY2xhc3M9Im5hdl9ibG9ja2VyIj48L2Rpdj4KCQkJCQkJPHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5TZXR0aW5ncyBvYmplY3Qgd2hpY2ggY29udGFpbnMgY3VzdG9taXNhYmxlIGluZm9ybWF0aW9uIGZvciBGaXhlZENvbHVtbnMgaW5zdGFuY2U8L3A+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8aDMgY2xhc3M9InN1YnNlY3Rpb24tdGl0bGUiPkV4dGVuZHM8L2gzPgo8dWw+Cgk8bGk+PGEgaHJlZj0iRml4ZWRDb2x1bW5zLmRlZmF1bHRzLmh0bWwiPkZpeGVkQ29sdW1ucy5kZWZhdWx0czwvYT48L2xpPgo8L3VsPgoKCQkJCQk8L2Rpdj4KCgkJCQkJCgkJCQkJPGRpdiBjbGFzcz0iZG9jX3N1bW1hcnkiPgoJCQkJCQk8YSBuYW1lPSJzdW1tYXJ5Ij48L2E+CgkJCQkJCTxoMj5TdW1tYXJ5PC9oMj4KCgkJCQkJCTxkaXYgY2xhc3M9ImRvY19ncm91cCI+PGEgbmFtZT0ic3VtbWFyeV9wcm9wZXJ0aWVzIj48L2E+PGgzIGNsYXNzPSJzdWJzZWN0aW9uLXRpdGxlIj5Qcm9wZXJ0aWVzPC9oMz4KCjxkbD4KICAgIDxkdCBjbGFzcz0iICBldmVuIj48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI2FpV2lkdGhzIj5haVdpZHRoczwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6YXJyYXkuJmx0O2ludD48L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgIGV2ZW4iPk9yaWdpbmFsIHdpZHRocyBvZiB0aGUgY29sdW1ucyBhcyByZW5kZXJlZCBieSBEYXRhVGFibGVzPC9kZD48ZHQgY2xhc3M9IiAgb2RkIj48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWMsIHJlYWRvbmx5PiA8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNiT2xkSUUiPmJPbGRJRTwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6Ym9vbGVhbjwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiAgb2RkIj5GbGFnIHRvIGluZGljYXRlIGlmIHdlIGFyZSBkZWFsaW5nIHdpdGggSUU2LzcgYXMgdGhlc2UgYnJvd3NlcnMgbmVlZCBhIGxpdHRsZSBoYWNrCmluIHRoZSBvZGQgcGxhY2U8L2RkPjxkdCBjbGFzcz0iICBldmVuIj48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI2R0Ij5kdDwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6b2JqZWN0PC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iICBldmVuIj5EYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdHM8L2RkPjxkdCBjbGFzcz0iIGF1Z21lbnRlZCBvZGQiPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+Jmx0O3N0YXRpYz4gPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjZm5EcmF3Q2FsbGJhY2siPmZuRHJhd0NhbGxiYWNrPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDpmdW5jdGlvbihvYmplY3QsIG9iamVjdCk6dm9pZDwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiBhdWdtZW50ZWQgb2RkIj48ZGl2IGNsYXNzPSJ0eXBlLWF1Z21lbnRlZCIgdGl0bGU9IkV4dGVuZGVkIGZyb20gRml4ZWRDb2x1bW5zLmRlZmF1bHRzIj48YSBocmVmPSJGaXhlZENvbHVtbnMuZGVmYXVsdHMuaHRtbCNmbkRyYXdDYWxsYmFjayI+PGltZyBzcmM9Im1lZGlhL2ltYWdlcy9leHRlbmRlZC5wbmciPjwvYT48L2Rpdj5EcmF3IGNhbGxiYWNrIGZ1bmN0aW9uIHdoaWNoIGlzIGNhbGxlZCB3aGVuIEZpeGVkQ29sdW1ucyBoYXMgcmVkcmF3biB0aGUgZml4ZWQgYXNzZXRzPC9kZD48ZHQgY2xhc3M9IiBhdWdtZW50ZWQgZXZlbiI+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4mbHQ7c3RhdGljPiA8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNpTGVmdENvbHVtbnMiPmlMZWZ0Q29sdW1uczwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6aW50PC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iIGF1Z21lbnRlZCBldmVuIj48ZGl2IGNsYXNzPSJ0eXBlLWF1Z21lbnRlZCIgdGl0bGU9IkV4dGVuZGVkIGZyb20gRml4ZWRDb2x1bW5zLmRlZmF1bHRzIj48YSBocmVmPSJGaXhlZENvbHVtbnMuZGVmYXVsdHMuaHRtbCNpTGVmdENvbHVtbnMiPjxpbWcgc3JjPSJtZWRpYS9pbWFnZXMvZXh0ZW5kZWQucG5nIj48L2E+PC9kaXY+TnVtYmVyIG9mIGxlZnQgaGFuZCBjb2x1bW5zIHRvIGZpeCBpbiBwb3NpdGlvbjwvZGQ+PGR0IGNsYXNzPSIgYXVnbWVudGVkIG9kZCI+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4mbHQ7c3RhdGljPiA8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNpTGVmdFdpZHRoIj5pTGVmdFdpZHRoPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDppbnQ8L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgYXVnbWVudGVkIG9kZCI+PGRpdiBjbGFzcz0idHlwZS1hdWdtZW50ZWQiIHRpdGxlPSJFeHRlbmRlZCBmcm9tIEZpeGVkQ29sdW1ucy5kZWZhdWx0cyI+PGEgaHJlZj0iRml4ZWRDb2x1bW5zLmRlZmF1bHRzLmh0bWwjaUxlZnRXaWR0aCI+PGltZyBzcmM9Im1lZGlhL2ltYWdlcy9leHRlbmRlZC5wbmciPjwvYT48L2Rpdj5XaWR0aCB0byBzZXQgZm9yIHRoZSB3aWR0aCBvZiB0aGUgbGVmdCBmaXhlZCBjb2x1bW4ocykgLSBub3RlIHRoYXQgdGhlIGJlaGF2aW91ciBvZiB0aGlzCnByb3BlcnR5IGlzIGRpcmVjdGx5IGVmZmVjdGVkIGJ5IHRoZSBzTGVmdFdpZHRoIHByb3BlcnR5LiBJZiBub3QgZGVmaW5lZCB0aGVuIHRoaXMgcHJvcGVydHkKaXMgY2FsY3VsYXRlZCBhdXRvbWF0aWNhbGx5IGZyb20gd2hhdCBoYXMgYmVlbiBhc3NpZ25lZCBieSBEYXRhVGFibGVzLjwvZGQ+PGR0IGNsYXNzPSIgYXVnbWVudGVkIGV2ZW4iPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+Jmx0O3N0YXRpYz4gPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjaVJpZ2h0Q29sdW1ucyI+aVJpZ2h0Q29sdW1uczwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6aW50PC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iIGF1Z21lbnRlZCBldmVuIj48ZGl2IGNsYXNzPSJ0eXBlLWF1Z21lbnRlZCIgdGl0bGU9IkV4dGVuZGVkIGZyb20gRml4ZWRDb2x1bW5zLmRlZmF1bHRzIj48YSBocmVmPSJGaXhlZENvbHVtbnMuZGVmYXVsdHMuaHRtbCNpUmlnaHRDb2x1bW5zIj48aW1nIHNyYz0ibWVkaWEvaW1hZ2VzL2V4dGVuZGVkLnBuZyI+PC9hPjwvZGl2Pk51bWJlciBvZiByaWdodCBoYW5kIGNvbHVtbnMgdG8gZml4IGluIHBvc2l0aW9uPC9kZD48ZHQgY2xhc3M9IiBhdWdtZW50ZWQgb2RkIj48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI2lSaWdodFdpZHRoIj5pUmlnaHRXaWR0aDwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6aW50PC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iIGF1Z21lbnRlZCBvZGQiPjxkaXYgY2xhc3M9InR5cGUtYXVnbWVudGVkIiB0aXRsZT0iRXh0ZW5kZWQgZnJvbSBGaXhlZENvbHVtbnMuZGVmYXVsdHMiPjxhIGhyZWY9IkZpeGVkQ29sdW1ucy5kZWZhdWx0cy5odG1sI2lSaWdodFdpZHRoIj48aW1nIHNyYz0ibWVkaWEvaW1hZ2VzL2V4dGVuZGVkLnBuZyI+PC9hPjwvZGl2PldpZHRoIHRvIHNldCBmb3IgdGhlIHdpZHRoIG9mIHRoZSByaWdodCBmaXhlZCBjb2x1bW4ocykgLSBub3RlIHRoYXQgdGhlIGJlaGF2aW91ciBvZiB0aGlzCnByb3BlcnR5IGlzIGRpcmVjdGx5IGVmZmVjdGVkIGJ5IHRoZSBzUmlnaHRXaWR0aCBwcm9wZXJ0eS4gSWYgbm90IGRlZmluZWQgdGhlbiB0aGlzIHByb3BlcnR5CmlzIGNhbGN1bGF0ZWQgYXV0b21hdGljYWxseSBmcm9tIHdoYXQgaGFzIGJlZW4gYXNzaWduZWQgYnkgRGF0YVRhYmxlcy48L2RkPjxkdCBjbGFzcz0iICBldmVuIj48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI2lUYWJsZUNvbHVtbnMiPmlUYWJsZUNvbHVtbnM8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gOmludDwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiAgZXZlbiI+TnVtYmVyIG9mIGNvbHVtbnMgaW4gdGhlIERhdGFUYWJsZSAtIHN0b3JlZCBmb3IgcXVpY2sgYWNjZXNzPC9kZD48ZHQgY2xhc3M9IiBhdWdtZW50ZWQgb2RkIj48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI3NIZWlnaHRNYXRjaCI+c0hlaWdodE1hdGNoPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDpzdHJpbmc8L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgYXVnbWVudGVkIG9kZCI+PGRpdiBjbGFzcz0idHlwZS1hdWdtZW50ZWQiIHRpdGxlPSJFeHRlbmRlZCBmcm9tIEZpeGVkQ29sdW1ucy5kZWZhdWx0cyI+PGEgaHJlZj0iRml4ZWRDb2x1bW5zLmRlZmF1bHRzLmh0bWwjc0hlaWdodE1hdGNoIj48aW1nIHNyYz0ibWVkaWEvaW1hZ2VzL2V4dGVuZGVkLnBuZyI+PC9hPjwvZGl2PkhlaWdodCBtYXRjaGluZyBhbGdvcnRoaW0gdG8gdXNlLiBUaGlzIGNhbiBiZSAibm9uZSIgd2hpY2ggd2lsbCByZXN1bHQgaW4gbm8gaGVpZ2h0Cm1hdGNoaW5nIGJlaW5nIGFwcGxpZWQgYnkgRml4ZWRDb2x1bW5zIChoZWlnaHQgbWF0Y2hpbmcgY291bGQgYmUgZm9yY2VkIGJ5IENTUyBpbiB0aGlzCmNhc2UpLCAic2VtaWF1dG8iIHdoZXJlYnkgdGhlIGhlaWdodCBjYWxjdWxhdGlvbiB3aWxsIGJlIHBlcmZvcm1lZCBvbmNlLCBhbmQgdGhlIHJlc3VsdApjYWNoZWQgdG8gYmUgdXNlZCBhZ2FpbiAoZm5SZWNhbGN1bGF0ZUhlaWdodCBjYW4gYmUgdXNlZCB0byBmb3JjZSByZWNhbGN1bGF0aW9uKSwgb3IKImF1dG8iIHdoZW4gaGVpZ2h0IG1hdGNoaW5nIGlzIHBlcmZvcm1lZCBvbiBldmVyeSBkcmF3IChzbG93ZXN0IGJ1dCBtdXN0IGFjY3VyYXRlKTwvZGQ+PGR0IGNsYXNzPSIgYXVnbWVudGVkIGV2ZW4iPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+Jmx0O3N0YXRpYz4gPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjc0xlZnRXaWR0aCI+c0xlZnRXaWR0aDwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6c3RyaW5nPC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iIGF1Z21lbnRlZCBldmVuIj48ZGl2IGNsYXNzPSJ0eXBlLWF1Z21lbnRlZCIgdGl0bGU9IkV4dGVuZGVkIGZyb20gRml4ZWRDb2x1bW5zLmRlZmF1bHRzIj48YSBocmVmPSJGaXhlZENvbHVtbnMuZGVmYXVsdHMuaHRtbCNzTGVmdFdpZHRoIj48aW1nIHNyYz0ibWVkaWEvaW1hZ2VzL2V4dGVuZGVkLnBuZyI+PC9hPjwvZGl2PlR5cGUgb2YgbGVmdCBjb2x1bW4gc2l6ZSBjYWxjdWxhdGlvbi4gQ2FuIHRha2UgdGhlIHZhbHVlcyBvZiAiZml4ZWQiLCB3aGVyZWJ5IHRoZSBpTGVmdFdpZHRoCnZhbHVlIHdpbGwgYmUgdHJlYXRlZCBhcyBhIHBpeGVsIHZhbHVlLCBvciAicmVsYXRpdmUiIGZvciB3aGljaCBjYXNlIGlMZWZ0V2lkdGggd2lsbCBiZQp0cmVhdGVkIGFzIGEgcGVyY2VudGFnZSB2YWx1ZS48L2RkPjxkdCBjbGFzcz0iIGF1Z21lbnRlZCBvZGQiPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+Jmx0O3N0YXRpYz4gPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjc1JpZ2h0V2lkdGgiPnNSaWdodFdpZHRoPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDpzdHJpbmc8L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgYXVnbWVudGVkIG9kZCI+PGRpdiBjbGFzcz0idHlwZS1hdWdtZW50ZWQiIHRpdGxlPSJFeHRlbmRlZCBmcm9tIEZpeGVkQ29sdW1ucy5kZWZhdWx0cyI+PGEgaHJlZj0iRml4ZWRDb2x1bW5zLmRlZmF1bHRzLmh0bWwjc1JpZ2h0V2lkdGgiPjxpbWcgc3JjPSJtZWRpYS9pbWFnZXMvZXh0ZW5kZWQucG5nIj48L2E+PC9kaXY+VHlwZSBvZiByaWdodCBjb2x1bW4gc2l6ZSBjYWxjdWxhdGlvbi4gQ2FuIHRha2UgdGhlIHZhbHVlcyBvZiAiZml4ZWQiLCB3aGVyZWJ5IHRoZSAKaVJpZ2h0V2lkdGggdmFsdWUgd2lsbCBiZSB0cmVhdGVkIGFzIGEgcGl4ZWwgdmFsdWUsIG9yICJyZWxhdGl2ZSIgZm9yIHdoaWNoIGNhc2UgCmlSaWdodFdpZHRoIHdpbGwgYmUgdHJlYXRlZCBhcyBhIHBlcmNlbnRhZ2UgdmFsdWUuPC9kZD4KPC9kbD48L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQkKCgoJCQkJCQoJCQkJCTxkaXYgY2xhc3M9ImRvY19kZXRhaWxzIj4KCQkJCQkJPGEgbmFtZT0iZGV0YWlscyI+PC9hPgoJCQkJCQk8aDI+RGV0YWlsczwvaDI+CgkJCQkJCTxkaXYgY2xhc3M9ImRvY19ncm91cCI+PGEgbmFtZT0iZGV0YWlsc19wcm9wZXJ0aWVzIj48L2E+PGgzIGNsYXNzPSJzdWJzZWN0aW9uLXRpdGxlIj5Qcm9wZXJ0aWVzPC9oMz4KPGRsPgogICAgPGR0IGNsYXNzPSIgIGV2ZW4iPjxhIG5hbWU9ImFpV2lkdGhzIj48L2E+PGEgbmFtZT0iYWlXaWR0aHNfZGV0YWlscyI+PC9hPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+Jmx0O3N0YXRpYz4gPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjYWlXaWR0aHMiPmFpV2lkdGhzPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDphcnJheS4mbHQ7aW50Pjwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiAgZXZlbiI+PHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5PcmlnaW5hbCB3aWR0aHMgb2YgdGhlIGNvbHVtbnMgYXMgcmVuZGVyZWQgYnkgRGF0YVRhYmxlczwvcD48ZGl2IGNsYXNzPSJjb2xsYXBzZV9kZXRhaWxzIj48ZGwgY2xhc3M9ImRldGFpbHMiPgoJCjwvZGw+CjwvZGl2PjwvZGQ+PGR0IGNsYXNzPSIgIG9kZCI+PGEgbmFtZT0iYk9sZElFIj48L2E+PGEgbmFtZT0iYk9sZElFX2RldGFpbHMiPjwvYT48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWMsIHJlYWRvbmx5PiA8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNiT2xkSUUiPmJPbGRJRTwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6Ym9vbGVhbjwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiAgb2RkIj48cCBjbGFzcz0iZGVzY3JpcHRpb24iPkZsYWcgdG8gaW5kaWNhdGUgaWYgd2UgYXJlIGRlYWxpbmcgd2l0aCBJRTYvNyBhcyB0aGVzZSBicm93c2VycyBuZWVkIGEgbGl0dGxlIGhhY2sKaW4gdGhlIG9kZCBwbGFjZTwvcD48ZGl2IGNsYXNzPSJjb2xsYXBzZV9kZXRhaWxzIj48ZGwgY2xhc3M9ImRldGFpbHMiPgoJCjwvZGw+CjwvZGl2PjwvZGQ+PGR0IGNsYXNzPSIgIGV2ZW4iPjxhIG5hbWU9ImR0Ij48L2E+PGEgbmFtZT0iZHRfZGV0YWlscyI+PC9hPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+Jmx0O3N0YXRpYz4gPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjZHQiPmR0PC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDpvYmplY3Q8L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgIGV2ZW4iPjxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+RGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3RzPC9wPjxkaXYgY2xhc3M9ImNvbGxhcHNlX2RldGFpbHMiPjxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KPC9kaXY+PC9kZD48ZHQgY2xhc3M9IiBhdWdtZW50ZWQgb2RkIj48YSBuYW1lPSJmbkRyYXdDYWxsYmFjayI+PC9hPjxhIG5hbWU9ImZuRHJhd0NhbGxiYWNrX2RldGFpbHMiPjwvYT48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI2ZuRHJhd0NhbGxiYWNrIj5mbkRyYXdDYWxsYmFjazwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6ZnVuY3Rpb24ob2JqZWN0LCBvYmplY3QpOnZvaWQ8L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgYXVnbWVudGVkIG9kZCI+PHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5EcmF3IGNhbGxiYWNrIGZ1bmN0aW9uIHdoaWNoIGlzIGNhbGxlZCB3aGVuIEZpeGVkQ29sdW1ucyBoYXMgcmVkcmF3biB0aGUgZml4ZWQgYXNzZXRzPC9wPjxkaXYgY2xhc3M9ImNvbGxhcHNlX2RldGFpbHMiPjxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KPGg1PkV4dGVuZGVkIGZyb206PC9oNT48ZGl2IGNsYXNzPSJleHRlbmRlZCI+PGEgaHJlZj0iRml4ZWRDb2x1bW5zLmRlZmF1bHRzLmh0bWwiPjxpbWcgc3JjPSJtZWRpYS9pbWFnZXMvZXh0ZW5kZWQucG5nIj4gRml4ZWRDb2x1bW5zLmRlZmF1bHRzPC9hPjwvZGl2PjxoNT5FeGFtcGxlPC9oNT4KICAgIDxkaXYgY2xhc3M9ImV4YW1wbGUtY29kZSI+CiAgICAJPHByZSBjbGFzcz0iYnJ1c2g6IGpzIj4gCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewogCQkic1Njcm9sbFgiOiAiMTAwJSIKIAl9ICk7CiAJbmV3IEZpeGVkQ29sdW1ucyggb1RhYmxlLCB7CiAJCSJmbkRyYXdDYWxsYmFjayI6IGZ1bmN0aW9uICgpIHsKCQkJCWFsZXJ0KCAiRml4ZWRDb2x1bW5zIHJlZHJhdyIgKTsKCQkJfQogCX0gKTs8L3ByZT4KICAgIDwvZGl2Pgo8L2Rpdj48L2RkPjxkdCBjbGFzcz0iIGF1Z21lbnRlZCBldmVuIj48YSBuYW1lPSJpTGVmdENvbHVtbnMiPjwvYT48YSBuYW1lPSJpTGVmdENvbHVtbnNfZGV0YWlscyI+PC9hPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+Jmx0O3N0YXRpYz4gPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjaUxlZnRDb2x1bW5zIj5pTGVmdENvbHVtbnM8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gOmludDwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiBhdWdtZW50ZWQgZXZlbiI+PHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5OdW1iZXIgb2YgbGVmdCBoYW5kIGNvbHVtbnMgdG8gZml4IGluIHBvc2l0aW9uPC9wPjxkaXYgY2xhc3M9ImNvbGxhcHNlX2RldGFpbHMiPjxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KPGg1PkV4dGVuZGVkIGZyb206PC9oNT48ZGl2IGNsYXNzPSJleHRlbmRlZCI+PGEgaHJlZj0iRml4ZWRDb2x1bW5zLmRlZmF1bHRzLmh0bWwiPjxpbWcgc3JjPSJtZWRpYS9pbWFnZXMvZXh0ZW5kZWQucG5nIj4gRml4ZWRDb2x1bW5zLmRlZmF1bHRzPC9hPjwvZGl2PjxoNT5FeGFtcGxlPC9oNT4KICAgIDxkaXYgY2xhc3M9ImV4YW1wbGUtY29kZSI+CiAgICAJPHByZSBjbGFzcz0iYnJ1c2g6IGpzIj4gCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewogCQkic1Njcm9sbFgiOiAiMTAwJSIKIAl9ICk7CiAJbmV3IEZpeGVkQ29sdW1ucyggb1RhYmxlLCB7CiAJCSJpTGVmdENvbHVtbnMiOiAyCiAJfSApOzwvcHJlPgogICAgPC9kaXY+CjwvZGl2PjwvZGQ+PGR0IGNsYXNzPSIgYXVnbWVudGVkIG9kZCI+PGEgbmFtZT0iaUxlZnRXaWR0aCI+PC9hPjxhIG5hbWU9ImlMZWZ0V2lkdGhfZGV0YWlscyI+PC9hPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+Jmx0O3N0YXRpYz4gPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjaUxlZnRXaWR0aCI+aUxlZnRXaWR0aDwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6aW50PC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iIGF1Z21lbnRlZCBvZGQiPjxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+V2lkdGggdG8gc2V0IGZvciB0aGUgd2lkdGggb2YgdGhlIGxlZnQgZml4ZWQgY29sdW1uKHMpIC0gbm90ZSB0aGF0IHRoZSBiZWhhdmlvdXIgb2YgdGhpcwpwcm9wZXJ0eSBpcyBkaXJlY3RseSBlZmZlY3RlZCBieSB0aGUgc0xlZnRXaWR0aCBwcm9wZXJ0eS4gSWYgbm90IGRlZmluZWQgdGhlbiB0aGlzIHByb3BlcnR5CmlzIGNhbGN1bGF0ZWQgYXV0b21hdGljYWxseSBmcm9tIHdoYXQgaGFzIGJlZW4gYXNzaWduZWQgYnkgRGF0YVRhYmxlcy48L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8aDU+RXh0ZW5kZWQgZnJvbTo8L2g1PjxkaXYgY2xhc3M9ImV4dGVuZGVkIj48YSBocmVmPSJGaXhlZENvbHVtbnMuZGVmYXVsdHMuaHRtbCI+PGltZyBzcmM9Im1lZGlhL2ltYWdlcy9leHRlbmRlZC5wbmciPiBGaXhlZENvbHVtbnMuZGVmYXVsdHM8L2E+PC9kaXY+PGg1PkV4YW1wbGU8L2g1PgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZS1jb2RlIj4KICAgIAk8cHJlIGNsYXNzPSJicnVzaDoganMiPiAJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CiAJCSJzU2Nyb2xsWCI6ICIxMDAlIgogCX0gKTsKIAluZXcgRml4ZWRDb2x1bW5zKCBvVGFibGUsIHsKIAkJImlMZWZ0V2lkdGgiOiAxMDAgLy8gcGl4ZWxzCiAJfSApOzwvcHJlPgogICAgPC9kaXY+CjwvZGl2PjwvZGQ+PGR0IGNsYXNzPSIgYXVnbWVudGVkIGV2ZW4iPjxhIG5hbWU9ImlSaWdodENvbHVtbnMiPjwvYT48YSBuYW1lPSJpUmlnaHRDb2x1bW5zX2RldGFpbHMiPjwvYT48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI2lSaWdodENvbHVtbnMiPmlSaWdodENvbHVtbnM8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gOmludDwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiBhdWdtZW50ZWQgZXZlbiI+PHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5OdW1iZXIgb2YgcmlnaHQgaGFuZCBjb2x1bW5zIHRvIGZpeCBpbiBwb3NpdGlvbjwvcD48ZGl2IGNsYXNzPSJjb2xsYXBzZV9kZXRhaWxzIj48ZGwgY2xhc3M9ImRldGFpbHMiPgoJCjwvZGw+CjxoNT5FeHRlbmRlZCBmcm9tOjwvaDU+PGRpdiBjbGFzcz0iZXh0ZW5kZWQiPjxhIGhyZWY9IkZpeGVkQ29sdW1ucy5kZWZhdWx0cy5odG1sIj48aW1nIHNyYz0ibWVkaWEvaW1hZ2VzL2V4dGVuZGVkLnBuZyI+IEZpeGVkQ29sdW1ucy5kZWZhdWx0czwvYT48L2Rpdj48aDU+RXhhbXBsZTwvaDU+CiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlLWNvZGUiPgogICAgCTxwcmUgY2xhc3M9ImJydXNoOiBqcyI+IAl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKIAkJInNTY3JvbGxYIjogIjEwMCUiCiAJfSApOwogCW5ldyBGaXhlZENvbHVtbnMoIG9UYWJsZSwgewogCQkiaVJpZ2h0Q29sdW1ucyI6IDEKIAl9ICk7PC9wcmU+CiAgICA8L2Rpdj4KPC9kaXY+PC9kZD48ZHQgY2xhc3M9IiBhdWdtZW50ZWQgb2RkIj48YSBuYW1lPSJpUmlnaHRXaWR0aCI+PC9hPjxhIG5hbWU9ImlSaWdodFdpZHRoX2RldGFpbHMiPjwvYT48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI2lSaWdodFdpZHRoIj5pUmlnaHRXaWR0aDwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6aW50PC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iIGF1Z21lbnRlZCBvZGQiPjxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+V2lkdGggdG8gc2V0IGZvciB0aGUgd2lkdGggb2YgdGhlIHJpZ2h0IGZpeGVkIGNvbHVtbihzKSAtIG5vdGUgdGhhdCB0aGUgYmVoYXZpb3VyIG9mIHRoaXMKcHJvcGVydHkgaXMgZGlyZWN0bHkgZWZmZWN0ZWQgYnkgdGhlIHNSaWdodFdpZHRoIHByb3BlcnR5LiBJZiBub3QgZGVmaW5lZCB0aGVuIHRoaXMgcHJvcGVydHkKaXMgY2FsY3VsYXRlZCBhdXRvbWF0aWNhbGx5IGZyb20gd2hhdCBoYXMgYmVlbiBhc3NpZ25lZCBieSBEYXRhVGFibGVzLjwvcD48ZGl2IGNsYXNzPSJjb2xsYXBzZV9kZXRhaWxzIj48ZGwgY2xhc3M9ImRldGFpbHMiPgoJCjwvZGw+CjxoNT5FeHRlbmRlZCBmcm9tOjwvaDU+PGRpdiBjbGFzcz0iZXh0ZW5kZWQiPjxhIGhyZWY9IkZpeGVkQ29sdW1ucy5kZWZhdWx0cy5odG1sIj48aW1nIHNyYz0ibWVkaWEvaW1hZ2VzL2V4dGVuZGVkLnBuZyI+IEZpeGVkQ29sdW1ucy5kZWZhdWx0czwvYT48L2Rpdj48aDU+RXhhbXBsZTwvaDU+CiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlLWNvZGUiPgogICAgCTxwcmUgY2xhc3M9ImJydXNoOiBqcyI+IAl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKIAkJInNTY3JvbGxYIjogIjEwMCUiCiAJfSApOwogCW5ldyBGaXhlZENvbHVtbnMoIG9UYWJsZSwgewogCQkiaVJpZ2h0V2lkdGgiOiAyMDAgLy8gcGl4ZWxzCiAJfSApOzwvcHJlPgogICAgPC9kaXY+CjwvZGl2PjwvZGQ+PGR0IGNsYXNzPSIgIGV2ZW4iPjxhIG5hbWU9ImlUYWJsZUNvbHVtbnMiPjwvYT48YSBuYW1lPSJpVGFibGVDb2x1bW5zX2RldGFpbHMiPjwvYT48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI2lUYWJsZUNvbHVtbnMiPmlUYWJsZUNvbHVtbnM8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gOmludDwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiAgZXZlbiI+PHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5OdW1iZXIgb2YgY29sdW1ucyBpbiB0aGUgRGF0YVRhYmxlIC0gc3RvcmVkIGZvciBxdWljayBhY2Nlc3M8L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8L2Rpdj48L2RkPjxkdCBjbGFzcz0iIGF1Z21lbnRlZCBvZGQiPjxhIG5hbWU9InNIZWlnaHRNYXRjaCI+PC9hPjxhIG5hbWU9InNIZWlnaHRNYXRjaF9kZXRhaWxzIj48L2E+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4mbHQ7c3RhdGljPiA8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNzSGVpZ2h0TWF0Y2giPnNIZWlnaHRNYXRjaDwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6c3RyaW5nPC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iIGF1Z21lbnRlZCBvZGQiPjxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+SGVpZ2h0IG1hdGNoaW5nIGFsZ29ydGhpbSB0byB1c2UuIFRoaXMgY2FuIGJlICJub25lIiB3aGljaCB3aWxsIHJlc3VsdCBpbiBubyBoZWlnaHQKbWF0Y2hpbmcgYmVpbmcgYXBwbGllZCBieSBGaXhlZENvbHVtbnMgKGhlaWdodCBtYXRjaGluZyBjb3VsZCBiZSBmb3JjZWQgYnkgQ1NTIGluIHRoaXMKY2FzZSksICJzZW1pYXV0byIgd2hlcmVieSB0aGUgaGVpZ2h0IGNhbGN1bGF0aW9uIHdpbGwgYmUgcGVyZm9ybWVkIG9uY2UsIGFuZCB0aGUgcmVzdWx0CmNhY2hlZCB0byBiZSB1c2VkIGFnYWluIChmblJlY2FsY3VsYXRlSGVpZ2h0IGNhbiBiZSB1c2VkIHRvIGZvcmNlIHJlY2FsY3VsYXRpb24pLCBvcgoiYXV0byIgd2hlbiBoZWlnaHQgbWF0Y2hpbmcgaXMgcGVyZm9ybWVkIG9uIGV2ZXJ5IGRyYXcgKHNsb3dlc3QgYnV0IG11c3QgYWNjdXJhdGUpPC9wPjxkaXYgY2xhc3M9ImNvbGxhcHNlX2RldGFpbHMiPjxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KPGg1PkV4dGVuZGVkIGZyb206PC9oNT48ZGl2IGNsYXNzPSJleHRlbmRlZCI+PGEgaHJlZj0iRml4ZWRDb2x1bW5zLmRlZmF1bHRzLmh0bWwiPjxpbWcgc3JjPSJtZWRpYS9pbWFnZXMvZXh0ZW5kZWQucG5nIj4gRml4ZWRDb2x1bW5zLmRlZmF1bHRzPC9hPjwvZGl2PjxoNT5FeGFtcGxlPC9oNT4KICAgIDxkaXYgY2xhc3M9ImV4YW1wbGUtY29kZSI+CiAgICAJPHByZSBjbGFzcz0iYnJ1c2g6IGpzIj4gCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewogCQkic1Njcm9sbFgiOiAiMTAwJSIKIAl9ICk7CiAJbmV3IEZpeGVkQ29sdW1ucyggb1RhYmxlLCB7CiAJCSJzSGVpZ2h0TWF0Y2giOiAiYXV0byIKIAl9ICk7PC9wcmU+CiAgICA8L2Rpdj4KPC9kaXY+PC9kZD48ZHQgY2xhc3M9IiBhdWdtZW50ZWQgZXZlbiI+PGEgbmFtZT0ic0xlZnRXaWR0aCI+PC9hPjxhIG5hbWU9InNMZWZ0V2lkdGhfZGV0YWlscyI+PC9hPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+Jmx0O3N0YXRpYz4gPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjc0xlZnRXaWR0aCI+c0xlZnRXaWR0aDwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6c3RyaW5nPC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iIGF1Z21lbnRlZCBldmVuIj48cCBjbGFzcz0iZGVzY3JpcHRpb24iPlR5cGUgb2YgbGVmdCBjb2x1bW4gc2l6ZSBjYWxjdWxhdGlvbi4gQ2FuIHRha2UgdGhlIHZhbHVlcyBvZiAiZml4ZWQiLCB3aGVyZWJ5IHRoZSBpTGVmdFdpZHRoCnZhbHVlIHdpbGwgYmUgdHJlYXRlZCBhcyBhIHBpeGVsIHZhbHVlLCBvciAicmVsYXRpdmUiIGZvciB3aGljaCBjYXNlIGlMZWZ0V2lkdGggd2lsbCBiZQp0cmVhdGVkIGFzIGEgcGVyY2VudGFnZSB2YWx1ZS48L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8aDU+RXh0ZW5kZWQgZnJvbTo8L2g1PjxkaXYgY2xhc3M9ImV4dGVuZGVkIj48YSBocmVmPSJGaXhlZENvbHVtbnMuZGVmYXVsdHMuaHRtbCI+PGltZyBzcmM9Im1lZGlhL2ltYWdlcy9leHRlbmRlZC5wbmciPiBGaXhlZENvbHVtbnMuZGVmYXVsdHM8L2E+PC9kaXY+PGg1PkV4YW1wbGU8L2g1PgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZS1jb2RlIj4KICAgIAk8cHJlIGNsYXNzPSJicnVzaDoganMiPiAJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CiAJCSJzU2Nyb2xsWCI6ICIxMDAlIgogCX0gKTsKIAluZXcgRml4ZWRDb2x1bW5zKCBvVGFibGUsIHsKIAkJInNMZWZ0V2lkdGgiOiAicmVsYXRpdmUiLAogCQkiaUxlZnRXaWR0aCI6IDEwIC8vIHBlcmNlbnRhZ2UKIAl9ICk7PC9wcmU+CiAgICA8L2Rpdj4KPC9kaXY+PC9kZD48ZHQgY2xhc3M9IiBhdWdtZW50ZWQgb2RkIj48YSBuYW1lPSJzUmlnaHRXaWR0aCI+PC9hPjxhIG5hbWU9InNSaWdodFdpZHRoX2RldGFpbHMiPjwvYT48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI3NSaWdodFdpZHRoIj5zUmlnaHRXaWR0aDwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6c3RyaW5nPC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iIGF1Z21lbnRlZCBvZGQiPjxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+VHlwZSBvZiByaWdodCBjb2x1bW4gc2l6ZSBjYWxjdWxhdGlvbi4gQ2FuIHRha2UgdGhlIHZhbHVlcyBvZiAiZml4ZWQiLCB3aGVyZWJ5IHRoZSAKaVJpZ2h0V2lkdGggdmFsdWUgd2lsbCBiZSB0cmVhdGVkIGFzIGEgcGl4ZWwgdmFsdWUsIG9yICJyZWxhdGl2ZSIgZm9yIHdoaWNoIGNhc2UgCmlSaWdodFdpZHRoIHdpbGwgYmUgdHJlYXRlZCBhcyBhIHBlcmNlbnRhZ2UgdmFsdWUuPC9wPjxkaXYgY2xhc3M9ImNvbGxhcHNlX2RldGFpbHMiPjxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KPGg1PkV4dGVuZGVkIGZyb206PC9oNT48ZGl2IGNsYXNzPSJleHRlbmRlZCI+PGEgaHJlZj0iRml4ZWRDb2x1bW5zLmRlZmF1bHRzLmh0bWwiPjxpbWcgc3JjPSJtZWRpYS9pbWFnZXMvZXh0ZW5kZWQucG5nIj4gRml4ZWRDb2x1bW5zLmRlZmF1bHRzPC9hPjwvZGl2PjxoNT5FeGFtcGxlPC9oNT4KICAgIDxkaXYgY2xhc3M9ImV4YW1wbGUtY29kZSI+CiAgICAJPHByZSBjbGFzcz0iYnJ1c2g6IGpzIj4gCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewogCQkic1Njcm9sbFgiOiAiMTAwJSIKIAl9ICk7CiAJbmV3IEZpeGVkQ29sdW1ucyggb1RhYmxlLCB7CiAJCSJzUmlnaHRXaWR0aCI6ICJyZWxhdGl2ZSIsCiAJCSJpUmlnaHRXaWR0aCI6IDEwIC8vIHBlcmNlbnRhZ2UKIAl9ICk7PC9wcmU+CiAgICA8L2Rpdj4KPC9kaXY+PC9kZD4KPC9kbD48L2Rpdj4KICAgCQkJCQk8L2Rpdj4KCQkJCQoJCTwvZGl2PgoKCQk8ZGl2IGNsYXNzPSJmd19mb290ZXIiPgoJCQlGaXhlZENvbHVtbnM6IENvcHlyaWdodCAyMDEwLTIwMTEgQWxsYW4gSmFyZGluZSwgYWxsIHJpZ2h0cyByZXNlcnZlZDxicj4KCgkJCURvY3VtZW50YXRpb24gZ2VuZXJhdGVkIGJ5IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9taWNtYXRoL0pTRG9jIj5KU0RvYyAzPC9hPiBvbgoJCQk4dGggQXVnIDIwMTIgLSAyMjo1MwoJCQl3aXRoIHRoZSA8YSBocmVmPSJodHRwOi8vZGF0YXRhYmxlcy5uZXQvIj5EYXRhVGFibGVzPC9hPiB0ZW1wbGF0ZS4KCQk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/docs/526f872207.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTx0aXRsZT5OYW1lc3BhY2U6IGdyaWQgLSBkb2N1bWVudGF0aW9uPC90aXRsZT4KICAKCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgoJCQlAaW1wb3J0ICJtZWRpYS9jc3MvZG9jLmNzcyI7CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9zaENvcmUuY3NzIjsKCQkJQGltcG9ydCAibWVkaWEvY3NzL3NoVGhlbWVEYXRhVGFibGVzLmNzcyI7CgkJPC9zdHlsZT4KCQoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL3NoQ29yZS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvc2hCcnVzaEpTY3JpcHQuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvZG9jLmpzIj48L3NjcmlwdD4KCTwvaGVhZD4KCTxib2R5PgoJCTxkaXYgY2xhc3M9ImZ3X2NvbnRhaW5lciI+CgkJCQoJCQkJPGEgbmFtZT0idG9wIj48L2E+CgkJCQk8ZGl2IGNsYXNzPSJmd19oZWFkZXIiPgoJCQkJCTxoMSBjbGFzcz0icGFnZS10aXRsZSI+TmFtZXNwYWNlOiBncmlkPC9oMT4KCQkJCQk8aDIgY2xhc3M9ImFuY2VzdG9ycyI+QW5jZXN0cnk6IDxzcGFuIGNsYXNzPSJhbmNlc3RvcnMiPjxhIGhyZWY9IkZpeGVkQ29sdW1ucy5odG1sIj5GaXhlZENvbHVtbnM8L2E+IMK7IDxhIGhyZWY9ImQzODkwYmE3YzQuaHRtbCI+I2RvbTwvYT4uPC9zcGFuPiDCuyBncmlkPC9oMj4KCQkJCQk8ZGl2IGNsYXNzPSJwYWdlLWluZm8iPgoJCQkJCQlGaXhlZENvbHVtbnMgdjIuMC4zIGRvY3VtZW50YXRpb24KCQkJCQk8L2Rpdj4KCQkJCTwvZGl2PgoKCQkJCQoKCQkJCTxkaXYgY2xhc3M9ImZ3X25hdiI+CgkJCQkJPGgyPk5hdmlnYXRpb248L2gyPgoJCQkJCTx1bD4KCQkJCQk8bGk+PGEgaHJlZj0iI3RvcCI+T3ZlcnZpZXc8L2E+PC9saT4KCQkJCQk8bGk+PGEgaHJlZj0iI3N1bW1hcnkiPlN1bW1hcnk8L2E+PGRpdj48YSBocmVmPSIjc3VtbWFyeV9uYW1lc3BhY2VzIj5OYW1lc3BhY2VzPC9hPiB8IDxhIGhyZWY9IiNzdW1tYXJ5X3Byb3BlcnRpZXMiPlByb3BlcnRpZXM8L2E+PC9kaXY+PC9saT48bGk+PGEgaHJlZj0iI2RldGFpbHMiPkRldGFpbHM8L2E+PGRpdj48YSBocmVmPSIjZGV0YWlsc19wcm9wZXJ0aWVzIj5Qcm9wZXJ0aWVzPC9hPjwvZGl2PjwvbGk+PC91bD4KCQkJCQk8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAxMHB4OyI+CgkJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNob3dfcHJpdmF0ZSIgdmFsdWU9IjAiPgoJCQkJCQk8c3BhbiBpZD0icHJpdmF0ZV9sYWJlbCI+SGlkaW5nPC9zcGFuPiBwcml2YXRlIGVsZW1lbnRzIAoJCQkJCQkJKDxhIGlkPSJwcml2YXRlX3RvZ2dsZSIgaHJlZj0iIj50b2dnbGU8L2E+KQoJCQkJCQk8L3NwYW4+CgkJCQkJPC9kaXY+CgkJCQkJPGRpdj4KCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2hvd19leHRlbmRlZCIgdmFsdWU9IjEiPgoJCQkJCQk8c3BhbiBpZD0iZXh0ZW5kZWRfbGFiZWwiPlNob3dpbmc8L3NwYW4+IGV4dGVuZGVkIGVsZW1lbnRzIAoJCQkJCQkJKDxhIGlkPSJleHRlbmRlZF90b2dnbGUiIGhyZWY9IiI+dG9nZ2xlPC9hPikKCQkJCQkJPC9zcGFuPgoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgoJCQkJPGRpdiBjbGFzcz0iZndfY29udGVudCI+CgkJCQkJPGEgbmFtZT0ib3ZlcnZpZXciPjwvYT4KCQkJCQk8ZGl2IGNsYXNzPSJkb2Nfb3ZlcnZpZXciPgoJCQkJCQk8ZGl2IGNsYXNzPSJuYXZfYmxvY2tlciI+PC9kaXY+CgkJCQkJCTxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+RGlzcGxheSBncmlkIGVsZW1lbnRzPC9wPjxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KCgkJCQkJPC9kaXY+CgoJCQkJCQoJCQkJCTxkaXYgY2xhc3M9ImRvY19zdW1tYXJ5Ij4KCQkJCQkJPGEgbmFtZT0ic3VtbWFyeSI+PC9hPgoJCQkJCQk8aDI+U3VtbWFyeTwvaDI+CgoJCQkJCQk8ZGl2IGNsYXNzPSJkb2NfZ3JvdXAiPjxhIG5hbWU9InN1bW1hcnlfbmFtZXNwYWNlcyI+PC9hPjxoMyBjbGFzcz0ic3Vic2VjdGlvbi10aXRsZSI+TmFtZXNwYWNlczwvaDM+CjxkbD4KCTxkdCBjbGFzcz0iZXZlbiI+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iMDcwMDIzYjg5MC5odG1sIj5sZWZ0PC9hPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iZXZlbiI+TGVmdCBmaXhlZCBjb2x1bW4gZ3JpZCBjb21wb25lbnRzPC9kZD48ZHQgY2xhc3M9Im9kZCI+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iNzMwOThhZjU3Yy5odG1sIj5yaWdodDwvYT48L3NwYW4+PC9kdD48ZGQgY2xhc3M9Im9kZCI+UmlnaHQgZml4ZWQgY29sdW1uIGdyaWQgY29tcG9uZW50czwvZGQ+CjwvZGw+PC9kaXY+PGRpdiBjbGFzcz0iZG9jX2dyb3VwIj48YSBuYW1lPSJzdW1tYXJ5X3Byb3BlcnRpZXMiPjwvYT48aDMgY2xhc3M9InN1YnNlY3Rpb24tdGl0bGUiPlByb3BlcnRpZXM8L2gzPgoKPGRsPgogICAgPGR0IGNsYXNzPSIgIGV2ZW4iPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+Jmx0O3N0YXRpYz4gPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjZHQiPmR0PC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDpub2RlPC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iICBldmVuIj5EYXRhVGFibGVzIHNjcm9sbGluZyBlbGVtZW50LiBUaGlzIGVsZW1lbnQgaXMgdGhlIERhdGFUYWJsZXMKY29tcG9uZW50IGluIHRoZSBkaXNwbGF5IGdyaWQgKG1ha2luZyB1cCB0aGUgbWFpbiB0YWJsZSAtIGkuZS4Kbm90IHRoZSBmaXhlZCBjb2x1bW5zKS48L2RkPjxkdCBjbGFzcz0iICBvZGQiPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+Jmx0O3N0YXRpYz4gPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjd3JhcHBlciI+d3JhcHBlcjwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6bm9kZTwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiAgb2RkIj5HcmlkIHdyYXBwZXIuIFRoaXMgaXMgdGhlIGNvbnRhaW5lciBlbGVtZW50IGZvciB0aGUgM3gzIGdyaWQ8L2RkPgo8L2RsPjwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJCQoKCgkJCQkJCgkJCQkJPGRpdiBjbGFzcz0iZG9jX2RldGFpbHMiPgoJCQkJCQk8YSBuYW1lPSJkZXRhaWxzIj48L2E+CgkJCQkJCTxoMj5EZXRhaWxzPC9oMj4KCQkJCQkJPGRpdiBjbGFzcz0iZG9jX2dyb3VwIj48YSBuYW1lPSJkZXRhaWxzX3Byb3BlcnRpZXMiPjwvYT48aDMgY2xhc3M9InN1YnNlY3Rpb24tdGl0bGUiPlByb3BlcnRpZXM8L2gzPgo8ZGw+CiAgICA8ZHQgY2xhc3M9IiAgZXZlbiI+PGEgbmFtZT0iZHQiPjwvYT48YSBuYW1lPSJkdF9kZXRhaWxzIj48L2E+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4mbHQ7c3RhdGljPiA8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNkdCI+ZHQ8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gOm5vZGU8L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgIGV2ZW4iPjxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+RGF0YVRhYmxlcyBzY3JvbGxpbmcgZWxlbWVudC4gVGhpcyBlbGVtZW50IGlzIHRoZSBEYXRhVGFibGVzCmNvbXBvbmVudCBpbiB0aGUgZGlzcGxheSBncmlkIChtYWtpbmcgdXAgdGhlIG1haW4gdGFibGUgLSBpLmUuCm5vdCB0aGUgZml4ZWQgY29sdW1ucykuPC9wPjxkaXYgY2xhc3M9ImNvbGxhcHNlX2RldGFpbHMiPjxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KPC9kaXY+PC9kZD48ZHQgY2xhc3M9IiAgb2RkIj48YSBuYW1lPSJ3cmFwcGVyIj48L2E+PGEgbmFtZT0id3JhcHBlcl9kZXRhaWxzIj48L2E+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4mbHQ7c3RhdGljPiA8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiN3cmFwcGVyIj53cmFwcGVyPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDpub2RlPC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iICBvZGQiPjxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+R3JpZCB3cmFwcGVyLiBUaGlzIGlzIHRoZSBjb250YWluZXIgZWxlbWVudCBmb3IgdGhlIDN4MyBncmlkPC9wPjxkaXYgY2xhc3M9ImNvbGxhcHNlX2RldGFpbHMiPjxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KPC9kaXY+PC9kZD4KPC9kbD48L2Rpdj4KICAgCQkJCQk8L2Rpdj4KCQkJCQoJCTwvZGl2PgoKCQk8ZGl2IGNsYXNzPSJmd19mb290ZXIiPgoJCQlGaXhlZENvbHVtbnM6IENvcHlyaWdodCAyMDEwLTIwMTEgQWxsYW4gSmFyZGluZSwgYWxsIHJpZ2h0cyByZXNlcnZlZDxicj4KCgkJCURvY3VtZW50YXRpb24gZ2VuZXJhdGVkIGJ5IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9taWNtYXRoL0pTRG9jIj5KU0RvYyAzPC9hPiBvbgoJCQk4dGggQXVnIDIwMTIgLSAyMjo1MwoJCQl3aXRoIHRoZSA8YSBocmVmPSJodHRwOi8vZGF0YXRhYmxlcy5uZXQvIj5EYXRhVGFibGVzPC9hPiB0ZW1wbGF0ZS4KCQk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/docs/73098af57c.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTx0aXRsZT5OYW1lc3BhY2U6IHJpZ2h0IC0gZG9jdW1lbnRhdGlvbjwvdGl0bGU+CiAgCgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KCQkJQGltcG9ydCAibWVkaWEvY3NzL2RvYy5jc3MiOwoJCQlAaW1wb3J0ICJtZWRpYS9jc3Mvc2hDb3JlLmNzcyI7CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9zaFRoZW1lRGF0YVRhYmxlcy5jc3MiOwoJCTwvc3R5bGU+CgkKCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9zaENvcmUuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL3NoQnJ1c2hKU2NyaXB0LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9qcXVlcnkuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL2RvYy5qcyI+PC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keT4KCQk8ZGl2IGNsYXNzPSJmd19jb250YWluZXIiPgoJCQkKCQkJCTxhIG5hbWU9InRvcCI+PC9hPgoJCQkJPGRpdiBjbGFzcz0iZndfaGVhZGVyIj4KCQkJCQk8aDEgY2xhc3M9InBhZ2UtdGl0bGUiPk5hbWVzcGFjZTogcmlnaHQ8L2gxPgoJCQkJCTxoMiBjbGFzcz0iYW5jZXN0b3JzIj5BbmNlc3RyeTogPHNwYW4gY2xhc3M9ImFuY2VzdG9ycyI+PGEgaHJlZj0iRml4ZWRDb2x1bW5zLmh0bWwiPkZpeGVkQ29sdW1uczwvYT4gwrsgPGEgaHJlZj0iZDM4OTBiYTdjNC5odG1sIj4jZG9tPC9hPiDCuyA8YSBocmVmPSI1MjZmODcyMjA3Lmh0bWwiPi5ncmlkPC9hPi48L3NwYW4+IMK7IHJpZ2h0PC9oMj4KCQkJCQk8ZGl2IGNsYXNzPSJwYWdlLWluZm8iPgoJCQkJCQlGaXhlZENvbHVtbnMgdjIuMC4zIGRvY3VtZW50YXRpb24KCQkJCQk8L2Rpdj4KCQkJCTwvZGl2PgoKCQkJCQoKCQkJCTxkaXYgY2xhc3M9ImZ3X25hdiI+CgkJCQkJPGgyPk5hdmlnYXRpb248L2gyPgoJCQkJCTx1bD4KCQkJCQk8bGk+PGEgaHJlZj0iI3RvcCI+T3ZlcnZpZXc8L2E+PC9saT4KCQkJCQk8bGk+PGEgaHJlZj0iI3N1bW1hcnkiPlN1bW1hcnk8L2E+PGRpdj48L2Rpdj48L2xpPjxsaT48YSBocmVmPSIjZGV0YWlscyI+RGV0YWlsczwvYT48ZGl2PjwvZGl2PjwvbGk+PC91bD4KCQkJCQk8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAxMHB4OyI+CgkJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNob3dfcHJpdmF0ZSIgdmFsdWU9IjAiPgoJCQkJCQk8c3BhbiBpZD0icHJpdmF0ZV9sYWJlbCI+SGlkaW5nPC9zcGFuPiBwcml2YXRlIGVsZW1lbnRzIAoJCQkJCQkJKDxhIGlkPSJwcml2YXRlX3RvZ2dsZSIgaHJlZj0iIj50b2dnbGU8L2E+KQoJCQkJCQk8L3NwYW4+CgkJCQkJPC9kaXY+CgkJCQkJPGRpdj4KCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2hvd19leHRlbmRlZCIgdmFsdWU9IjEiPgoJCQkJCQk8c3BhbiBpZD0iZXh0ZW5kZWRfbGFiZWwiPlNob3dpbmc8L3NwYW4+IGV4dGVuZGVkIGVsZW1lbnRzIAoJCQkJCQkJKDxhIGlkPSJleHRlbmRlZF90b2dnbGUiIGhyZWY9IiI+dG9nZ2xlPC9hPikKCQkJCQkJPC9zcGFuPgoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgoJCQkJPGRpdiBjbGFzcz0iZndfY29udGVudCI+CgkJCQkJPGEgbmFtZT0ib3ZlcnZpZXciPjwvYT4KCQkJCQk8ZGl2IGNsYXNzPSJkb2Nfb3ZlcnZpZXciPgoJCQkJCQk8ZGl2IGNsYXNzPSJuYXZfYmxvY2tlciI+PC9kaXY+CgkJCQkJCTxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+UmlnaHQgZml4ZWQgY29sdW1uIGdyaWQgY29tcG9uZW50czwvcD48ZGwgY2xhc3M9ImRldGFpbHMiPgoJCjwvZGw+CgoJCQkJCTwvZGl2PgoKCQkJCQkKCgoJCQkJCQoJCTwvZGl2PgoKCQk8ZGl2IGNsYXNzPSJmd19mb290ZXIiPgoJCQlGaXhlZENvbHVtbnM6IENvcHlyaWdodCAyMDEwLTIwMTEgQWxsYW4gSmFyZGluZSwgYWxsIHJpZ2h0cyByZXNlcnZlZDxicj4KCgkJCURvY3VtZW50YXRpb24gZ2VuZXJhdGVkIGJ5IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9taWNtYXRoL0pTRG9jIj5KU0RvYyAzPC9hPiBvbgoJCQk4dGggQXVnIDIwMTIgLSAyMjo1MwoJCQl3aXRoIHRoZSA8YSBocmVmPSJodHRwOi8vZGF0YXRhYmxlcy5uZXQvIj5EYXRhVGFibGVzPC9hPiB0ZW1wbGF0ZS4KCQk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/docs/889588ec06.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTx0aXRsZT5OYW1lc3BhY2U6IGxlZnQgLSBkb2N1bWVudGF0aW9uPC90aXRsZT4KICAKCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgoJCQlAaW1wb3J0ICJtZWRpYS9jc3MvZG9jLmNzcyI7CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9zaENvcmUuY3NzIjsKCQkJQGltcG9ydCAibWVkaWEvY3NzL3NoVGhlbWVEYXRhVGFibGVzLmNzcyI7CgkJPC9zdHlsZT4KCQoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL3NoQ29yZS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvc2hCcnVzaEpTY3JpcHQuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvZG9jLmpzIj48L3NjcmlwdD4KCTwvaGVhZD4KCTxib2R5PgoJCTxkaXYgY2xhc3M9ImZ3X2NvbnRhaW5lciI+CgkJCQoJCQkJPGEgbmFtZT0idG9wIj48L2E+CgkJCQk8ZGl2IGNsYXNzPSJmd19oZWFkZXIiPgoJCQkJCTxoMSBjbGFzcz0icGFnZS10aXRsZSI+TmFtZXNwYWNlOiBsZWZ0PC9oMT4KCQkJCQk8aDIgY2xhc3M9ImFuY2VzdG9ycyI+QW5jZXN0cnk6IDxzcGFuIGNsYXNzPSJhbmNlc3RvcnMiPjxhIGhyZWY9IkZpeGVkQ29sdW1ucy5odG1sIj5GaXhlZENvbHVtbnM8L2E+IMK7IDxhIGhyZWY9ImQzODkwYmE3YzQuaHRtbCI+I2RvbTwvYT4gwrsgPGEgaHJlZj0iZTIwMTA2YzU5YS5odG1sIj4uY2xvbmU8L2E+Ljwvc3Bhbj4gwrsgbGVmdDwvaDI+CgkJCQkJPGRpdiBjbGFzcz0icGFnZS1pbmZvIj4KCQkJCQkJRml4ZWRDb2x1bW5zIHYyLjAuMyBkb2N1bWVudGF0aW9uCgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCgkJCQkKCgkJCQk8ZGl2IGNsYXNzPSJmd19uYXYiPgoJCQkJCTxoMj5OYXZpZ2F0aW9uPC9oMj4KCQkJCQk8dWw+CgkJCQkJPGxpPjxhIGhyZWY9IiN0b3AiPk92ZXJ2aWV3PC9hPjwvbGk+CgkJCQkJPGxpPjxhIGhyZWY9IiNzdW1tYXJ5Ij5TdW1tYXJ5PC9hPjxkaXY+PGEgaHJlZj0iI3N1bW1hcnlfcHJvcGVydGllcyI+UHJvcGVydGllczwvYT48L2Rpdj48L2xpPjxsaT48YSBocmVmPSIjZGV0YWlscyI+RGV0YWlsczwvYT48ZGl2PjxhIGhyZWY9IiNkZXRhaWxzX3Byb3BlcnRpZXMiPlByb3BlcnRpZXM8L2E+PC9kaXY+PC9saT48L3VsPgoJCQkJCTxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDEwcHg7Ij4KCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2hvd19wcml2YXRlIiB2YWx1ZT0iMCI+CgkJCQkJCTxzcGFuIGlkPSJwcml2YXRlX2xhYmVsIj5IaWRpbmc8L3NwYW4+IHByaXZhdGUgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9InByaXZhdGVfdG9nZ2xlIiBocmVmPSIiPnRvZ2dsZTwvYT4pCgkJCQkJCTwvc3Bhbj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2PgoJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzaG93X2V4dGVuZGVkIiB2YWx1ZT0iMSI+CgkJCQkJCTxzcGFuIGlkPSJleHRlbmRlZF9sYWJlbCI+U2hvd2luZzwvc3Bhbj4gZXh0ZW5kZWQgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9ImV4dGVuZGVkX3RvZ2dsZSIgaHJlZj0iIj50b2dnbGU8L2E+KQoJCQkJCQk8L3NwYW4+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCgkJCQk8ZGl2IGNsYXNzPSJmd19jb250ZW50Ij4KCQkJCQk8YSBuYW1lPSJvdmVydmlldyI+PC9hPgoJCQkJCTxkaXYgY2xhc3M9ImRvY19vdmVydmlldyI+CgkJCQkJCTxkaXYgY2xhc3M9Im5hdl9ibG9ja2VyIj48L2Rpdj4KCQkJCQkJPHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5MZWZ0IGNvbHVtbiBjbG9uZWQgdGFibGUgbm9kZXM8L3A+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgoKCQkJCQk8L2Rpdj4KCgkJCQkJCgkJCQkJPGRpdiBjbGFzcz0iZG9jX3N1bW1hcnkiPgoJCQkJCQk8YSBuYW1lPSJzdW1tYXJ5Ij48L2E+CgkJCQkJCTxoMj5TdW1tYXJ5PC9oMj4KCgkJCQkJCTxkaXYgY2xhc3M9ImRvY19ncm91cCI+PGEgbmFtZT0ic3VtbWFyeV9wcm9wZXJ0aWVzIj48L2E+PGgzIGNsYXNzPSJzdWJzZWN0aW9uLXRpdGxlIj5Qcm9wZXJ0aWVzPC9oMz4KCjxkbD4KICAgIDxkdCBjbGFzcz0iICBldmVuIj48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI2JvZHkiPmJvZHk8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gOm5vZGU8L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgIGV2ZW4iPkNsb25lZCBib2R5IHRhYmxlPC9kZD48ZHQgY2xhc3M9IiAgb2RkIj48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI2Zvb3RlciI+Zm9vdGVyPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDpub2RlPC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iICBvZGQiPkNsb25lZCBmb290ZXIgdGFibGU8L2RkPjxkdCBjbGFzcz0iICBldmVuIj48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI2hlYWRlciI+aGVhZGVyPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDpub2RlPC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iICBldmVuIj5DbG9uZWQgaGVhZGVyIHRhYmxlPC9kZD4KPC9kbD48L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQkKCgoJCQkJCQoJCQkJCTxkaXYgY2xhc3M9ImRvY19kZXRhaWxzIj4KCQkJCQkJPGEgbmFtZT0iZGV0YWlscyI+PC9hPgoJCQkJCQk8aDI+RGV0YWlsczwvaDI+CgkJCQkJCTxkaXYgY2xhc3M9ImRvY19ncm91cCI+PGEgbmFtZT0iZGV0YWlsc19wcm9wZXJ0aWVzIj48L2E+PGgzIGNsYXNzPSJzdWJzZWN0aW9uLXRpdGxlIj5Qcm9wZXJ0aWVzPC9oMz4KPGRsPgogICAgPGR0IGNsYXNzPSIgIGV2ZW4iPjxhIG5hbWU9ImJvZHkiPjwvYT48YSBuYW1lPSJib2R5X2RldGFpbHMiPjwvYT48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI2JvZHkiPmJvZHk8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gOm5vZGU8L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgIGV2ZW4iPjxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+Q2xvbmVkIGJvZHkgdGFibGU8L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8L2Rpdj48L2RkPjxkdCBjbGFzcz0iICBvZGQiPjxhIG5hbWU9ImZvb3RlciI+PC9hPjxhIG5hbWU9ImZvb3Rlcl9kZXRhaWxzIj48L2E+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4mbHQ7c3RhdGljPiA8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNmb290ZXIiPmZvb3RlcjwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6bm9kZTwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiAgb2RkIj48cCBjbGFzcz0iZGVzY3JpcHRpb24iPkNsb25lZCBmb290ZXIgdGFibGU8L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8L2Rpdj48L2RkPjxkdCBjbGFzcz0iICBldmVuIj48YSBuYW1lPSJoZWFkZXIiPjwvYT48YSBuYW1lPSJoZWFkZXJfZGV0YWlscyI+PC9hPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+Jmx0O3N0YXRpYz4gPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjaGVhZGVyIj5oZWFkZXI8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gOm5vZGU8L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgIGV2ZW4iPjxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+Q2xvbmVkIGhlYWRlciB0YWJsZTwvcD48ZGl2IGNsYXNzPSJjb2xsYXBzZV9kZXRhaWxzIj48ZGwgY2xhc3M9ImRldGFpbHMiPgoJCjwvZGw+CjwvZGl2PjwvZGQ+CjwvZGw+PC9kaXY+CiAgIAkJCQkJPC9kaXY+CgkJCQkKCQk8L2Rpdj4KCgkJPGRpdiBjbGFzcz0iZndfZm9vdGVyIj4KCQkJRml4ZWRDb2x1bW5zOiBDb3B5cmlnaHQgMjAxMC0yMDExIEFsbGFuIEphcmRpbmUsIGFsbCByaWdodHMgcmVzZXJ2ZWQ8YnI+CgoJCQlEb2N1bWVudGF0aW9uIGdlbmVyYXRlZCBieSA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbWljbWF0aC9KU0RvYyI+SlNEb2MgMzwvYT4gb24KCQkJOHRoIEF1ZyAyMDEyIC0gMjI6NTMKCQkJd2l0aCB0aGUgPGEgaHJlZj0iaHR0cDovL2RhdGF0YWJsZXMubmV0LyI+RGF0YVRhYmxlczwvYT4gdGVtcGxhdGUuCgkJPC9kaXY+Cgk8L2JvZHk+CjwvaHRtbD4=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/docs/a6bd52f587.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTx0aXRsZT5OYW1lc3BhY2U6IHJpZ2h0IC0gZG9jdW1lbnRhdGlvbjwvdGl0bGU+CiAgCgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KCQkJQGltcG9ydCAibWVkaWEvY3NzL2RvYy5jc3MiOwoJCQlAaW1wb3J0ICJtZWRpYS9jc3Mvc2hDb3JlLmNzcyI7CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9zaFRoZW1lRGF0YVRhYmxlcy5jc3MiOwoJCTwvc3R5bGU+CgkKCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9zaENvcmUuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL3NoQnJ1c2hKU2NyaXB0LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9qcXVlcnkuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL2RvYy5qcyI+PC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keT4KCQk8ZGl2IGNsYXNzPSJmd19jb250YWluZXIiPgoJCQkKCQkJCTxhIG5hbWU9InRvcCI+PC9hPgoJCQkJPGRpdiBjbGFzcz0iZndfaGVhZGVyIj4KCQkJCQk8aDEgY2xhc3M9InBhZ2UtdGl0bGUiPk5hbWVzcGFjZTogcmlnaHQ8L2gxPgoJCQkJCTxoMiBjbGFzcz0iYW5jZXN0b3JzIj5BbmNlc3RyeTogPHNwYW4gY2xhc3M9ImFuY2VzdG9ycyI+PGEgaHJlZj0iRml4ZWRDb2x1bW5zLmh0bWwiPkZpeGVkQ29sdW1uczwvYT4gwrsgPGEgaHJlZj0iZDM4OTBiYTdjNC5odG1sIj4jZG9tPC9hPiDCuyA8YSBocmVmPSJlMjAxMDZjNTlhLmh0bWwiPi5jbG9uZTwvYT4uPC9zcGFuPiDCuyByaWdodDwvaDI+CgkJCQkJPGRpdiBjbGFzcz0icGFnZS1pbmZvIj4KCQkJCQkJRml4ZWRDb2x1bW5zIHYyLjAuMyBkb2N1bWVudGF0aW9uCgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCgkJCQkKCgkJCQk8ZGl2IGNsYXNzPSJmd19uYXYiPgoJCQkJCTxoMj5OYXZpZ2F0aW9uPC9oMj4KCQkJCQk8dWw+CgkJCQkJPGxpPjxhIGhyZWY9IiN0b3AiPk92ZXJ2aWV3PC9hPjwvbGk+CgkJCQkJPGxpPjxhIGhyZWY9IiNzdW1tYXJ5Ij5TdW1tYXJ5PC9hPjxkaXY+PGEgaHJlZj0iI3N1bW1hcnlfcHJvcGVydGllcyI+UHJvcGVydGllczwvYT48L2Rpdj48L2xpPjxsaT48YSBocmVmPSIjZGV0YWlscyI+RGV0YWlsczwvYT48ZGl2PjxhIGhyZWY9IiNkZXRhaWxzX3Byb3BlcnRpZXMiPlByb3BlcnRpZXM8L2E+PC9kaXY+PC9saT48L3VsPgoJCQkJCTxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDEwcHg7Ij4KCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2hvd19wcml2YXRlIiB2YWx1ZT0iMCI+CgkJCQkJCTxzcGFuIGlkPSJwcml2YXRlX2xhYmVsIj5IaWRpbmc8L3NwYW4+IHByaXZhdGUgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9InByaXZhdGVfdG9nZ2xlIiBocmVmPSIiPnRvZ2dsZTwvYT4pCgkJCQkJCTwvc3Bhbj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2PgoJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzaG93X2V4dGVuZGVkIiB2YWx1ZT0iMSI+CgkJCQkJCTxzcGFuIGlkPSJleHRlbmRlZF9sYWJlbCI+U2hvd2luZzwvc3Bhbj4gZXh0ZW5kZWQgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9ImV4dGVuZGVkX3RvZ2dsZSIgaHJlZj0iIj50b2dnbGU8L2E+KQoJCQkJCQk8L3NwYW4+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCgkJCQk8ZGl2IGNsYXNzPSJmd19jb250ZW50Ij4KCQkJCQk8YSBuYW1lPSJvdmVydmlldyI+PC9hPgoJCQkJCTxkaXYgY2xhc3M9ImRvY19vdmVydmlldyI+CgkJCQkJCTxkaXYgY2xhc3M9Im5hdl9ibG9ja2VyIj48L2Rpdj4KCQkJCQkJPHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5SaWdodCBjb2x1bW4gY2xvbmVkIHRhYmxlIG5vZGVzPC9wPjxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KCgkJCQkJPC9kaXY+CgoJCQkJCQoJCQkJCTxkaXYgY2xhc3M9ImRvY19zdW1tYXJ5Ij4KCQkJCQkJPGEgbmFtZT0ic3VtbWFyeSI+PC9hPgoJCQkJCQk8aDI+U3VtbWFyeTwvaDI+CgoJCQkJCQk8ZGl2IGNsYXNzPSJkb2NfZ3JvdXAiPjxhIG5hbWU9InN1bW1hcnlfcHJvcGVydGllcyI+PC9hPjxoMyBjbGFzcz0ic3Vic2VjdGlvbi10aXRsZSI+UHJvcGVydGllczwvaDM+Cgo8ZGw+CiAgICA8ZHQgY2xhc3M9IiAgZXZlbiI+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4mbHQ7c3RhdGljPiA8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNib2R5Ij5ib2R5PC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDpub2RlPC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iICBldmVuIj5DbG9uZWQgYm9keSB0YWJsZTwvZGQ+PGR0IGNsYXNzPSIgIG9kZCI+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4mbHQ7c3RhdGljPiA8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNmb290ZXIiPmZvb3RlcjwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6bm9kZTwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiAgb2RkIj5DbG9uZWQgZm9vdGVyIHRhYmxlPC9kZD48ZHQgY2xhc3M9IiAgZXZlbiI+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4mbHQ7c3RhdGljPiA8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNoZWFkZXIiPmhlYWRlcjwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6bm9kZTwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiAgZXZlbiI+Q2xvbmVkIGhlYWRlciB0YWJsZTwvZGQ+CjwvZGw+PC9kaXY+CgkJCQkJPC9kaXY+CgkJCQkJCgoKCQkJCQkKCQkJCQk8ZGl2IGNsYXNzPSJkb2NfZGV0YWlscyI+CgkJCQkJCTxhIG5hbWU9ImRldGFpbHMiPjwvYT4KCQkJCQkJPGgyPkRldGFpbHM8L2gyPgoJCQkJCQk8ZGl2IGNsYXNzPSJkb2NfZ3JvdXAiPjxhIG5hbWU9ImRldGFpbHNfcHJvcGVydGllcyI+PC9hPjxoMyBjbGFzcz0ic3Vic2VjdGlvbi10aXRsZSI+UHJvcGVydGllczwvaDM+CjxkbD4KICAgIDxkdCBjbGFzcz0iICBldmVuIj48YSBuYW1lPSJib2R5Ij48L2E+PGEgbmFtZT0iYm9keV9kZXRhaWxzIj48L2E+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4mbHQ7c3RhdGljPiA8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNib2R5Ij5ib2R5PC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDpub2RlPC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iICBldmVuIj48cCBjbGFzcz0iZGVzY3JpcHRpb24iPkNsb25lZCBib2R5IHRhYmxlPC9wPjxkaXYgY2xhc3M9ImNvbGxhcHNlX2RldGFpbHMiPjxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KPC9kaXY+PC9kZD48ZHQgY2xhc3M9IiAgb2RkIj48YSBuYW1lPSJmb290ZXIiPjwvYT48YSBuYW1lPSJmb290ZXJfZGV0YWlscyI+PC9hPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+Jmx0O3N0YXRpYz4gPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjZm9vdGVyIj5mb290ZXI8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gOm5vZGU8L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgIG9kZCI+PHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5DbG9uZWQgZm9vdGVyIHRhYmxlPC9wPjxkaXYgY2xhc3M9ImNvbGxhcHNlX2RldGFpbHMiPjxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KPC9kaXY+PC9kZD48ZHQgY2xhc3M9IiAgZXZlbiI+PGEgbmFtZT0iaGVhZGVyIj48L2E+PGEgbmFtZT0iaGVhZGVyX2RldGFpbHMiPjwvYT48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI2hlYWRlciI+aGVhZGVyPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDpub2RlPC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iICBldmVuIj48cCBjbGFzcz0iZGVzY3JpcHRpb24iPkNsb25lZCBoZWFkZXIgdGFibGU8L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8L2Rpdj48L2RkPgo8L2RsPjwvZGl2PgogICAJCQkJCTwvZGl2PgoJCQkJCgkJPC9kaXY+CgoJCTxkaXYgY2xhc3M9ImZ3X2Zvb3RlciI+CgkJCUZpeGVkQ29sdW1uczogQ29weXJpZ2h0IDIwMTAtMjAxMSBBbGxhbiBKYXJkaW5lLCBhbGwgcmlnaHRzIHJlc2VydmVkPGJyPgoKCQkJRG9jdW1lbnRhdGlvbiBnZW5lcmF0ZWQgYnkgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL21pY21hdGgvSlNEb2MiPkpTRG9jIDM8L2E+IG9uCgkJCTh0aCBBdWcgMjAxMiAtIDIyOjUzCgkJCXdpdGggdGhlIDxhIGhyZWY9Imh0dHA6Ly9kYXRhdGFibGVzLm5ldC8iPkRhdGFUYWJsZXM8L2E+IHRlbXBsYXRlLgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/docs/d3890ba7c4.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTx0aXRsZT5OYW1lc3BhY2U6IGRvbSAtIGRvY3VtZW50YXRpb248L3RpdGxlPgogIAoJCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9kb2MuY3NzIjsKCQkJQGltcG9ydCAibWVkaWEvY3NzL3NoQ29yZS5jc3MiOwoJCQlAaW1wb3J0ICJtZWRpYS9jc3Mvc2hUaGVtZURhdGFUYWJsZXMuY3NzIjsKCQk8L3N0eWxlPgoJCgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvc2hDb3JlLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9zaEJydXNoSlNjcmlwdC5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvanF1ZXJ5LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9kb2MuanMiPjwvc2NyaXB0PgoJPC9oZWFkPgoJPGJvZHk+CgkJPGRpdiBjbGFzcz0iZndfY29udGFpbmVyIj4KCQkJCgkJCQk8YSBuYW1lPSJ0b3AiPjwvYT4KCQkJCTxkaXYgY2xhc3M9ImZ3X2hlYWRlciI+CgkJCQkJPGgxIGNsYXNzPSJwYWdlLXRpdGxlIj5OYW1lc3BhY2U6IGRvbTwvaDE+CgkJCQkJPGgyIGNsYXNzPSJhbmNlc3RvcnMiPkFuY2VzdHJ5OiA8c3BhbiBjbGFzcz0iYW5jZXN0b3JzIj48YSBocmVmPSJGaXhlZENvbHVtbnMuaHRtbCI+Rml4ZWRDb2x1bW5zPC9hPiM8L3NwYW4+IMK7IGRvbTwvaDI+CgkJCQkJPGRpdiBjbGFzcz0icGFnZS1pbmZvIj4KCQkJCQkJRml4ZWRDb2x1bW5zIHYyLjAuMyBkb2N1bWVudGF0aW9uCgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCgkJCQkKCgkJCQk8ZGl2IGNsYXNzPSJmd19uYXYiPgoJCQkJCTxoMj5OYXZpZ2F0aW9uPC9oMj4KCQkJCQk8dWw+CgkJCQkJPGxpPjxhIGhyZWY9IiN0b3AiPk92ZXJ2aWV3PC9hPjwvbGk+CgkJCQkJPGxpPjxhIGhyZWY9IiNzdW1tYXJ5Ij5TdW1tYXJ5PC9hPjxkaXY+PGEgaHJlZj0iI3N1bW1hcnlfbmFtZXNwYWNlcyI+TmFtZXNwYWNlczwvYT4gfCA8YSBocmVmPSIjc3VtbWFyeV9wcm9wZXJ0aWVzIj5Qcm9wZXJ0aWVzPC9hPjwvZGl2PjwvbGk+PGxpPjxhIGhyZWY9IiNkZXRhaWxzIj5EZXRhaWxzPC9hPjxkaXY+PGEgaHJlZj0iI2RldGFpbHNfcHJvcGVydGllcyI+UHJvcGVydGllczwvYT48L2Rpdj48L2xpPjwvdWw+CgkJCQkJPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogMTBweDsiPgoJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzaG93X3ByaXZhdGUiIHZhbHVlPSIwIj4KCQkJCQkJPHNwYW4gaWQ9InByaXZhdGVfbGFiZWwiPkhpZGluZzwvc3Bhbj4gcHJpdmF0ZSBlbGVtZW50cyAKCQkJCQkJCSg8YSBpZD0icHJpdmF0ZV90b2dnbGUiIGhyZWY9IiI+dG9nZ2xlPC9hPikKCQkJCQkJPC9zcGFuPgoJCQkJCTwvZGl2PgoJCQkJCTxkaXY+CgkJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNob3dfZXh0ZW5kZWQiIHZhbHVlPSIxIj4KCQkJCQkJPHNwYW4gaWQ9ImV4dGVuZGVkX2xhYmVsIj5TaG93aW5nPC9zcGFuPiBleHRlbmRlZCBlbGVtZW50cyAKCQkJCQkJCSg8YSBpZD0iZXh0ZW5kZWRfdG9nZ2xlIiBocmVmPSIiPnRvZ2dsZTwvYT4pCgkJCQkJCTwvc3Bhbj4KCQkJCQk8L2Rpdj4KCQkJCTwvZGl2PgoKCQkJCTxkaXYgY2xhc3M9ImZ3X2NvbnRlbnQiPgoJCQkJCTxhIG5hbWU9Im92ZXJ2aWV3Ij48L2E+CgkJCQkJPGRpdiBjbGFzcz0iZG9jX292ZXJ2aWV3Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibmF2X2Jsb2NrZXIiPjwvZGl2PgoJCQkJCQk8cCBjbGFzcz0iZGVzY3JpcHRpb24iPkRPTSBlbGVtZW50cyB1c2VkIGJ5IHRoZSBjbGFzcyBpbnN0YW5jZTwvcD48ZGwgY2xhc3M9ImRldGFpbHMiPgoJCjwvZGw+CgoJCQkJCTwvZGl2PgoKCQkJCQkKCQkJCQk8ZGl2IGNsYXNzPSJkb2Nfc3VtbWFyeSI+CgkJCQkJCTxhIG5hbWU9InN1bW1hcnkiPjwvYT4KCQkJCQkJPGgyPlN1bW1hcnk8L2gyPgoKCQkJCQkJPGRpdiBjbGFzcz0iZG9jX2dyb3VwIj48YSBuYW1lPSJzdW1tYXJ5X25hbWVzcGFjZXMiPjwvYT48aDMgY2xhc3M9InN1YnNlY3Rpb24tdGl0bGUiPk5hbWVzcGFjZXM8L2gzPgo8ZGw+Cgk8ZHQgY2xhc3M9ImV2ZW4iPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9ImUyMDEwNmM1OWEuaHRtbCI+Y2xvbmU8L2E+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSJldmVuIj5DbG9uZWQgdGFibGUgbm9kZXM8L2RkPjxkdCBjbGFzcz0ib2RkIj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSI1MjZmODcyMjA3Lmh0bWwiPmdyaWQ8L2E+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSJvZGQiPkRpc3BsYXkgZ3JpZCBlbGVtZW50czwvZGQ+CjwvZGw+PC9kaXY+PGRpdiBjbGFzcz0iZG9jX2dyb3VwIj48YSBuYW1lPSJzdW1tYXJ5X3Byb3BlcnRpZXMiPjwvYT48aDMgY2xhc3M9InN1YnNlY3Rpb24tdGl0bGUiPlByb3BlcnRpZXM8L2gzPgoKPGRsPgogICAgPGR0IGNsYXNzPSIgIGV2ZW4iPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+Jmx0O3N0YXRpYz4gPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjYm9keSI+Ym9keTwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6bm9kZTwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiAgZXZlbiI+RGF0YVRhYmxlcyBib2R5IHRhYmxlPC9kZD48ZHQgY2xhc3M9IiAgb2RkIj48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI2Zvb3RlciI+Zm9vdGVyPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDpub2RlPC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iICBvZGQiPkRhdGFUYWJsZXMgZm9vdGVyIHRhYmxlPC9kZD48ZHQgY2xhc3M9IiAgZXZlbiI+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4mbHQ7c3RhdGljPiA8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNoZWFkZXIiPmhlYWRlcjwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6bm9kZTwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiAgZXZlbiI+RGF0YVRhYmxlcyBoZWFkZXIgdGFibGU8L2RkPjxkdCBjbGFzcz0iICBvZGQiPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+Jmx0O3N0YXRpYz4gPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjc2Nyb2xsZXIiPnNjcm9sbGVyPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDpub2RlPC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iICBvZGQiPkRhdGFUYWJsZXMgc2Nyb2xsaW5nIGVsZW1lbnQ8L2RkPgo8L2RsPjwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJCQoKCgkJCQkJCgkJCQkJPGRpdiBjbGFzcz0iZG9jX2RldGFpbHMiPgoJCQkJCQk8YSBuYW1lPSJkZXRhaWxzIj48L2E+CgkJCQkJCTxoMj5EZXRhaWxzPC9oMj4KCQkJCQkJPGRpdiBjbGFzcz0iZG9jX2dyb3VwIj48YSBuYW1lPSJkZXRhaWxzX3Byb3BlcnRpZXMiPjwvYT48aDMgY2xhc3M9InN1YnNlY3Rpb24tdGl0bGUiPlByb3BlcnRpZXM8L2gzPgo8ZGw+CiAgICA8ZHQgY2xhc3M9IiAgZXZlbiI+PGEgbmFtZT0iYm9keSI+PC9hPjxhIG5hbWU9ImJvZHlfZGV0YWlscyI+PC9hPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+Jmx0O3N0YXRpYz4gPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjYm9keSI+Ym9keTwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6bm9kZTwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiAgZXZlbiI+PHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5EYXRhVGFibGVzIGJvZHkgdGFibGU8L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8L2Rpdj48L2RkPjxkdCBjbGFzcz0iICBvZGQiPjxhIG5hbWU9ImZvb3RlciI+PC9hPjxhIG5hbWU9ImZvb3Rlcl9kZXRhaWxzIj48L2E+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4mbHQ7c3RhdGljPiA8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNmb290ZXIiPmZvb3RlcjwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6bm9kZTwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiAgb2RkIj48cCBjbGFzcz0iZGVzY3JpcHRpb24iPkRhdGFUYWJsZXMgZm9vdGVyIHRhYmxlPC9wPjxkaXYgY2xhc3M9ImNvbGxhcHNlX2RldGFpbHMiPjxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KPC9kaXY+PC9kZD48ZHQgY2xhc3M9IiAgZXZlbiI+PGEgbmFtZT0iaGVhZGVyIj48L2E+PGEgbmFtZT0iaGVhZGVyX2RldGFpbHMiPjwvYT48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI2hlYWRlciI+aGVhZGVyPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDpub2RlPC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iICBldmVuIj48cCBjbGFzcz0iZGVzY3JpcHRpb24iPkRhdGFUYWJsZXMgaGVhZGVyIHRhYmxlPC9wPjxkaXYgY2xhc3M9ImNvbGxhcHNlX2RldGFpbHMiPjxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KPC9kaXY+PC9kZD48ZHQgY2xhc3M9IiAgb2RkIj48YSBuYW1lPSJzY3JvbGxlciI+PC9hPjxhIG5hbWU9InNjcm9sbGVyX2RldGFpbHMiPjwvYT48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI3Njcm9sbGVyIj5zY3JvbGxlcjwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6bm9kZTwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiAgb2RkIj48cCBjbGFzcz0iZGVzY3JpcHRpb24iPkRhdGFUYWJsZXMgc2Nyb2xsaW5nIGVsZW1lbnQ8L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8L2Rpdj48L2RkPgo8L2RsPjwvZGl2PgogICAJCQkJCTwvZGl2PgoJCQkJCgkJPC9kaXY+CgoJCTxkaXYgY2xhc3M9ImZ3X2Zvb3RlciI+CgkJCUZpeGVkQ29sdW1uczogQ29weXJpZ2h0IDIwMTAtMjAxMSBBbGxhbiBKYXJkaW5lLCBhbGwgcmlnaHRzIHJlc2VydmVkPGJyPgoKCQkJRG9jdW1lbnRhdGlvbiBnZW5lcmF0ZWQgYnkgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL21pY21hdGgvSlNEb2MiPkpTRG9jIDM8L2E+IG9uCgkJCTh0aCBBdWcgMjAxMiAtIDIyOjUzCgkJCXdpdGggdGhlIDxhIGhyZWY9Imh0dHA6Ly9kYXRhdGFibGVzLm5ldC8iPkRhdGFUYWJsZXM8L2E+IHRlbXBsYXRlLgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/docs/e20106c59a.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTx0aXRsZT5OYW1lc3BhY2U6IGNsb25lIC0gZG9jdW1lbnRhdGlvbjwvdGl0bGU+CiAgCgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KCQkJQGltcG9ydCAibWVkaWEvY3NzL2RvYy5jc3MiOwoJCQlAaW1wb3J0ICJtZWRpYS9jc3Mvc2hDb3JlLmNzcyI7CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9zaFRoZW1lRGF0YVRhYmxlcy5jc3MiOwoJCTwvc3R5bGU+CgkKCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9zaENvcmUuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL3NoQnJ1c2hKU2NyaXB0LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9qcXVlcnkuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL2RvYy5qcyI+PC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keT4KCQk8ZGl2IGNsYXNzPSJmd19jb250YWluZXIiPgoJCQkKCQkJCTxhIG5hbWU9InRvcCI+PC9hPgoJCQkJPGRpdiBjbGFzcz0iZndfaGVhZGVyIj4KCQkJCQk8aDEgY2xhc3M9InBhZ2UtdGl0bGUiPk5hbWVzcGFjZTogY2xvbmU8L2gxPgoJCQkJCTxoMiBjbGFzcz0iYW5jZXN0b3JzIj5BbmNlc3RyeTogPHNwYW4gY2xhc3M9ImFuY2VzdG9ycyI+PGEgaHJlZj0iRml4ZWRDb2x1bW5zLmh0bWwiPkZpeGVkQ29sdW1uczwvYT4gwrsgPGEgaHJlZj0iZDM4OTBiYTdjNC5odG1sIj4jZG9tPC9hPi48L3NwYW4+IMK7IGNsb25lPC9oMj4KCQkJCQk8ZGl2IGNsYXNzPSJwYWdlLWluZm8iPgoJCQkJCQlGaXhlZENvbHVtbnMgdjIuMC4zIGRvY3VtZW50YXRpb24KCQkJCQk8L2Rpdj4KCQkJCTwvZGl2PgoKCQkJCQoKCQkJCTxkaXYgY2xhc3M9ImZ3X25hdiI+CgkJCQkJPGgyPk5hdmlnYXRpb248L2gyPgoJCQkJCTx1bD4KCQkJCQk8bGk+PGEgaHJlZj0iI3RvcCI+T3ZlcnZpZXc8L2E+PC9saT4KCQkJCQk8bGk+PGEgaHJlZj0iI3N1bW1hcnkiPlN1bW1hcnk8L2E+PGRpdj48YSBocmVmPSIjc3VtbWFyeV9uYW1lc3BhY2VzIj5OYW1lc3BhY2VzPC9hPjwvZGl2PjwvbGk+PGxpPjxhIGhyZWY9IiNkZXRhaWxzIj5EZXRhaWxzPC9hPjxkaXY+PC9kaXY+PC9saT48L3VsPgoJCQkJCTxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDEwcHg7Ij4KCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2hvd19wcml2YXRlIiB2YWx1ZT0iMCI+CgkJCQkJCTxzcGFuIGlkPSJwcml2YXRlX2xhYmVsIj5IaWRpbmc8L3NwYW4+IHByaXZhdGUgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9InByaXZhdGVfdG9nZ2xlIiBocmVmPSIiPnRvZ2dsZTwvYT4pCgkJCQkJCTwvc3Bhbj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2PgoJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzaG93X2V4dGVuZGVkIiB2YWx1ZT0iMSI+CgkJCQkJCTxzcGFuIGlkPSJleHRlbmRlZF9sYWJlbCI+U2hvd2luZzwvc3Bhbj4gZXh0ZW5kZWQgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9ImV4dGVuZGVkX3RvZ2dsZSIgaHJlZj0iIj50b2dnbGU8L2E+KQoJCQkJCQk8L3NwYW4+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCgkJCQk8ZGl2IGNsYXNzPSJmd19jb250ZW50Ij4KCQkJCQk8YSBuYW1lPSJvdmVydmlldyI+PC9hPgoJCQkJCTxkaXYgY2xhc3M9ImRvY19vdmVydmlldyI+CgkJCQkJCTxkaXYgY2xhc3M9Im5hdl9ibG9ja2VyIj48L2Rpdj4KCQkJCQkJPHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5DbG9uZWQgdGFibGUgbm9kZXM8L3A+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgoKCQkJCQk8L2Rpdj4KCgkJCQkJCgkJCQkJPGRpdiBjbGFzcz0iZG9jX3N1bW1hcnkiPgoJCQkJCQk8YSBuYW1lPSJzdW1tYXJ5Ij48L2E+CgkJCQkJCTxoMj5TdW1tYXJ5PC9oMj4KCgkJCQkJCTxkaXYgY2xhc3M9ImRvY19ncm91cCI+PGEgbmFtZT0ic3VtbWFyeV9uYW1lc3BhY2VzIj48L2E+PGgzIGNsYXNzPSJzdWJzZWN0aW9uLXRpdGxlIj5OYW1lc3BhY2VzPC9oMz4KPGRsPgoJPGR0IGNsYXNzPSJldmVuIj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSI4ODk1ODhlYzA2Lmh0bWwiPmxlZnQ8L2E+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSJldmVuIj5MZWZ0IGNvbHVtbiBjbG9uZWQgdGFibGUgbm9kZXM8L2RkPjxkdCBjbGFzcz0ib2RkIj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSJhNmJkNTJmNTg3Lmh0bWwiPnJpZ2h0PC9hPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0ib2RkIj5SaWdodCBjb2x1bW4gY2xvbmVkIHRhYmxlIG5vZGVzPC9kZD4KPC9kbD48L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQkKCgoJCQkJCQoJCTwvZGl2PgoKCQk8ZGl2IGNsYXNzPSJmd19mb290ZXIiPgoJCQlGaXhlZENvbHVtbnM6IENvcHlyaWdodCAyMDEwLTIwMTEgQWxsYW4gSmFyZGluZSwgYWxsIHJpZ2h0cyByZXNlcnZlZDxicj4KCgkJCURvY3VtZW50YXRpb24gZ2VuZXJhdGVkIGJ5IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9taWNtYXRoL0pTRG9jIj5KU0RvYyAzPC9hPiBvbgoJCQk4dGggQXVnIDIwMTIgLSAyMjo1MwoJCQl3aXRoIHRoZSA8YSBocmVmPSJodHRwOi8vZGF0YXRhYmxlcy5uZXQvIj5EYXRhVGFibGVzPC9hPiB0ZW1wbGF0ZS4KCQk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/docs/FixedColumns.defaults.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTx0aXRsZT5OYW1lc3BhY2U6IGRlZmF1bHRzIC0gZG9jdW1lbnRhdGlvbjwvdGl0bGU+CiAgCgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KCQkJQGltcG9ydCAibWVkaWEvY3NzL2RvYy5jc3MiOwoJCQlAaW1wb3J0ICJtZWRpYS9jc3Mvc2hDb3JlLmNzcyI7CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9zaFRoZW1lRGF0YVRhYmxlcy5jc3MiOwoJCTwvc3R5bGU+CgkKCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9zaENvcmUuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL3NoQnJ1c2hKU2NyaXB0LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9qcXVlcnkuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL2RvYy5qcyI+PC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keT4KCQk8ZGl2IGNsYXNzPSJmd19jb250YWluZXIiPgoJCQkKCQkJCTxhIG5hbWU9InRvcCI+PC9hPgoJCQkJPGRpdiBjbGFzcz0iZndfaGVhZGVyIj4KCQkJCQk8aDEgY2xhc3M9InBhZ2UtdGl0bGUiPk5hbWVzcGFjZTogZGVmYXVsdHM8L2gxPgoJCQkJCTxoMiBjbGFzcz0iYW5jZXN0b3JzIj5BbmNlc3RyeTogPHNwYW4gY2xhc3M9ImFuY2VzdG9ycyI+PGEgaHJlZj0iRml4ZWRDb2x1bW5zLmh0bWwiPkZpeGVkQ29sdW1uczwvYT4uPC9zcGFuPiDCuyBkZWZhdWx0czwvaDI+CgkJCQkJPGRpdiBjbGFzcz0icGFnZS1pbmZvIj4KCQkJCQkJRml4ZWRDb2x1bW5zIHYyLjAuMyBkb2N1bWVudGF0aW9uCgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCgkJCQkKCgkJCQk8ZGl2IGNsYXNzPSJmd19uYXYiPgoJCQkJCTxoMj5OYXZpZ2F0aW9uPC9oMj4KCQkJCQk8dWw+CgkJCQkJPGxpPjxhIGhyZWY9IiN0b3AiPk92ZXJ2aWV3PC9hPjwvbGk+CgkJCQkJPGxpPjxhIGhyZWY9IiNzdW1tYXJ5Ij5TdW1tYXJ5PC9hPjxkaXY+PGEgaHJlZj0iI3N1bW1hcnlfcHJvcGVydGllcyI+UHJvcGVydGllczwvYT48L2Rpdj48L2xpPjxsaT48YSBocmVmPSIjZGV0YWlscyI+RGV0YWlsczwvYT48ZGl2PjxhIGhyZWY9IiNkZXRhaWxzX3Byb3BlcnRpZXMiPlByb3BlcnRpZXM8L2E+PC9kaXY+PC9saT48L3VsPgoJCQkJCTxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDEwcHg7Ij4KCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2hvd19wcml2YXRlIiB2YWx1ZT0iMCI+CgkJCQkJCTxzcGFuIGlkPSJwcml2YXRlX2xhYmVsIj5IaWRpbmc8L3NwYW4+IHByaXZhdGUgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9InByaXZhdGVfdG9nZ2xlIiBocmVmPSIiPnRvZ2dsZTwvYT4pCgkJCQkJCTwvc3Bhbj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2PgoJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzaG93X2V4dGVuZGVkIiB2YWx1ZT0iMSI+CgkJCQkJCTxzcGFuIGlkPSJleHRlbmRlZF9sYWJlbCI+U2hvd2luZzwvc3Bhbj4gZXh0ZW5kZWQgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9ImV4dGVuZGVkX3RvZ2dsZSIgaHJlZj0iIj50b2dnbGU8L2E+KQoJCQkJCQk8L3NwYW4+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCgkJCQk8ZGl2IGNsYXNzPSJmd19jb250ZW50Ij4KCQkJCQk8YSBuYW1lPSJvdmVydmlldyI+PC9hPgoJCQkJCTxkaXYgY2xhc3M9ImRvY19vdmVydmlldyI+CgkJCQkJCTxkaXYgY2xhc3M9Im5hdl9ibG9ja2VyIj48L2Rpdj4KCQkJCQkJPHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5GaXhlZENvbHVtbnMgZGVmYXVsdCBzZXR0aW5ncyBmb3IgaW5pdGlhbGlzYXRpb248L3A+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgoKCQkJCQk8L2Rpdj4KCgkJCQkJCgkJCQkJPGRpdiBjbGFzcz0iZG9jX3N1bW1hcnkiPgoJCQkJCQk8YSBuYW1lPSJzdW1tYXJ5Ij48L2E+CgkJCQkJCTxoMj5TdW1tYXJ5PC9oMj4KCgkJCQkJCTxkaXYgY2xhc3M9ImRvY19ncm91cCI+PGEgbmFtZT0ic3VtbWFyeV9wcm9wZXJ0aWVzIj48L2E+PGgzIGNsYXNzPSJzdWJzZWN0aW9uLXRpdGxlIj5Qcm9wZXJ0aWVzPC9oMz4KCjxkbD4KICAgIDxkdCBjbGFzcz0iICBldmVuIj48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI2ZuRHJhd0NhbGxiYWNrIj5mbkRyYXdDYWxsYmFjazwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6ZnVuY3Rpb24ob2JqZWN0LCBvYmplY3QpOnZvaWQ8L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgIGV2ZW4iPkRyYXcgY2FsbGJhY2sgZnVuY3Rpb24gd2hpY2ggaXMgY2FsbGVkIHdoZW4gRml4ZWRDb2x1bW5zIGhhcyByZWRyYXduIHRoZSBmaXhlZCBhc3NldHM8L2RkPjxkdCBjbGFzcz0iICBvZGQiPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+Jmx0O3N0YXRpYz4gPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjaUxlZnRDb2x1bW5zIj5pTGVmdENvbHVtbnM8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gOmludDwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiAgb2RkIj5OdW1iZXIgb2YgbGVmdCBoYW5kIGNvbHVtbnMgdG8gZml4IGluIHBvc2l0aW9uPC9kZD48ZHQgY2xhc3M9IiAgZXZlbiI+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4mbHQ7c3RhdGljPiA8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNpTGVmdFdpZHRoIj5pTGVmdFdpZHRoPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDppbnQ8L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgIGV2ZW4iPldpZHRoIHRvIHNldCBmb3IgdGhlIHdpZHRoIG9mIHRoZSBsZWZ0IGZpeGVkIGNvbHVtbihzKSAtIG5vdGUgdGhhdCB0aGUgYmVoYXZpb3VyIG9mIHRoaXMKcHJvcGVydHkgaXMgZGlyZWN0bHkgZWZmZWN0ZWQgYnkgdGhlIHNMZWZ0V2lkdGggcHJvcGVydHkuIElmIG5vdCBkZWZpbmVkIHRoZW4gdGhpcyBwcm9wZXJ0eQppcyBjYWxjdWxhdGVkIGF1dG9tYXRpY2FsbHkgZnJvbSB3aGF0IGhhcyBiZWVuIGFzc2lnbmVkIGJ5IERhdGFUYWJsZXMuPC9kZD48ZHQgY2xhc3M9IiAgb2RkIj48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI2lSaWdodENvbHVtbnMiPmlSaWdodENvbHVtbnM8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gOmludDwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiAgb2RkIj5OdW1iZXIgb2YgcmlnaHQgaGFuZCBjb2x1bW5zIHRvIGZpeCBpbiBwb3NpdGlvbjwvZGQ+PGR0IGNsYXNzPSIgIGV2ZW4iPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+Jmx0O3N0YXRpYz4gPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjaVJpZ2h0V2lkdGgiPmlSaWdodFdpZHRoPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDppbnQ8L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgIGV2ZW4iPldpZHRoIHRvIHNldCBmb3IgdGhlIHdpZHRoIG9mIHRoZSByaWdodCBmaXhlZCBjb2x1bW4ocykgLSBub3RlIHRoYXQgdGhlIGJlaGF2aW91ciBvZiB0aGlzCnByb3BlcnR5IGlzIGRpcmVjdGx5IGVmZmVjdGVkIGJ5IHRoZSBzUmlnaHRXaWR0aCBwcm9wZXJ0eS4gSWYgbm90IGRlZmluZWQgdGhlbiB0aGlzIHByb3BlcnR5CmlzIGNhbGN1bGF0ZWQgYXV0b21hdGljYWxseSBmcm9tIHdoYXQgaGFzIGJlZW4gYXNzaWduZWQgYnkgRGF0YVRhYmxlcy48L2RkPjxkdCBjbGFzcz0iICBvZGQiPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+Jmx0O3N0YXRpYz4gPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjc0hlaWdodE1hdGNoIj5zSGVpZ2h0TWF0Y2g8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gOnN0cmluZzwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiAgb2RkIj5IZWlnaHQgbWF0Y2hpbmcgYWxnb3J0aGltIHRvIHVzZS4gVGhpcyBjYW4gYmUgIm5vbmUiIHdoaWNoIHdpbGwgcmVzdWx0IGluIG5vIGhlaWdodAptYXRjaGluZyBiZWluZyBhcHBsaWVkIGJ5IEZpeGVkQ29sdW1ucyAoaGVpZ2h0IG1hdGNoaW5nIGNvdWxkIGJlIGZvcmNlZCBieSBDU1MgaW4gdGhpcwpjYXNlKSwgInNlbWlhdXRvIiB3aGVyZWJ5IHRoZSBoZWlnaHQgY2FsY3VsYXRpb24gd2lsbCBiZSBwZXJmb3JtZWQgb25jZSwgYW5kIHRoZSByZXN1bHQKY2FjaGVkIHRvIGJlIHVzZWQgYWdhaW4gKGZuUmVjYWxjdWxhdGVIZWlnaHQgY2FuIGJlIHVzZWQgdG8gZm9yY2UgcmVjYWxjdWxhdGlvbiksIG9yCiJhdXRvIiB3aGVuIGhlaWdodCBtYXRjaGluZyBpcyBwZXJmb3JtZWQgb24gZXZlcnkgZHJhdyAoc2xvd2VzdCBidXQgbXVzdCBhY2N1cmF0ZSk8L2RkPjxkdCBjbGFzcz0iICBldmVuIj48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI3NMZWZ0V2lkdGgiPnNMZWZ0V2lkdGg8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gOnN0cmluZzwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiAgZXZlbiI+VHlwZSBvZiBsZWZ0IGNvbHVtbiBzaXplIGNhbGN1bGF0aW9uLiBDYW4gdGFrZSB0aGUgdmFsdWVzIG9mICJmaXhlZCIsIHdoZXJlYnkgdGhlIGlMZWZ0V2lkdGgKdmFsdWUgd2lsbCBiZSB0cmVhdGVkIGFzIGEgcGl4ZWwgdmFsdWUsIG9yICJyZWxhdGl2ZSIgZm9yIHdoaWNoIGNhc2UgaUxlZnRXaWR0aCB3aWxsIGJlCnRyZWF0ZWQgYXMgYSBwZXJjZW50YWdlIHZhbHVlLjwvZGQ+PGR0IGNsYXNzPSIgIG9kZCI+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4mbHQ7c3RhdGljPiA8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNzUmlnaHRXaWR0aCI+c1JpZ2h0V2lkdGg8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gOnN0cmluZzwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiAgb2RkIj5UeXBlIG9mIHJpZ2h0IGNvbHVtbiBzaXplIGNhbGN1bGF0aW9uLiBDYW4gdGFrZSB0aGUgdmFsdWVzIG9mICJmaXhlZCIsIHdoZXJlYnkgdGhlIAppUmlnaHRXaWR0aCB2YWx1ZSB3aWxsIGJlIHRyZWF0ZWQgYXMgYSBwaXhlbCB2YWx1ZSwgb3IgInJlbGF0aXZlIiBmb3Igd2hpY2ggY2FzZSAKaVJpZ2h0V2lkdGggd2lsbCBiZSB0cmVhdGVkIGFzIGEgcGVyY2VudGFnZSB2YWx1ZS48L2RkPgo8L2RsPjwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJCQoKCgkJCQkJCgkJCQkJPGRpdiBjbGFzcz0iZG9jX2RldGFpbHMiPgoJCQkJCQk8YSBuYW1lPSJkZXRhaWxzIj48L2E+CgkJCQkJCTxoMj5EZXRhaWxzPC9oMj4KCQkJCQkJPGRpdiBjbGFzcz0iZG9jX2dyb3VwIj48YSBuYW1lPSJkZXRhaWxzX3Byb3BlcnRpZXMiPjwvYT48aDMgY2xhc3M9InN1YnNlY3Rpb24tdGl0bGUiPlByb3BlcnRpZXM8L2gzPgo8ZGw+CiAgICA8ZHQgY2xhc3M9IiAgZXZlbiI+PGEgbmFtZT0iZm5EcmF3Q2FsbGJhY2siPjwvYT48YSBuYW1lPSJmbkRyYXdDYWxsYmFja19kZXRhaWxzIj48L2E+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4mbHQ7c3RhdGljPiA8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNmbkRyYXdDYWxsYmFjayI+Zm5EcmF3Q2FsbGJhY2s8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gOmZ1bmN0aW9uKG9iamVjdCwgb2JqZWN0KTp2b2lkPC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iICBldmVuIj48cCBjbGFzcz0iZGVzY3JpcHRpb24iPkRyYXcgY2FsbGJhY2sgZnVuY3Rpb24gd2hpY2ggaXMgY2FsbGVkIHdoZW4gRml4ZWRDb2x1bW5zIGhhcyByZWRyYXduIHRoZSBmaXhlZCBhc3NldHM8L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8aDU+RXhhbXBsZTwvaDU+CiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlLWNvZGUiPgogICAgCTxwcmUgY2xhc3M9ImJydXNoOiBqcyI+IAl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKIAkJInNTY3JvbGxYIjogIjEwMCUiCiAJfSApOwogCW5ldyBGaXhlZENvbHVtbnMoIG9UYWJsZSwgewogCQkiZm5EcmF3Q2FsbGJhY2siOiBmdW5jdGlvbiAoKSB7CgkJCQlhbGVydCggIkZpeGVkQ29sdW1ucyByZWRyYXciICk7CgkJCX0KIAl9ICk7PC9wcmU+CiAgICA8L2Rpdj4KPC9kaXY+PC9kZD48ZHQgY2xhc3M9IiAgb2RkIj48YSBuYW1lPSJpTGVmdENvbHVtbnMiPjwvYT48YSBuYW1lPSJpTGVmdENvbHVtbnNfZGV0YWlscyI+PC9hPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+Jmx0O3N0YXRpYz4gPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjaUxlZnRDb2x1bW5zIj5pTGVmdENvbHVtbnM8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gOmludDwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiAgb2RkIj48cCBjbGFzcz0iZGVzY3JpcHRpb24iPk51bWJlciBvZiBsZWZ0IGhhbmQgY29sdW1ucyB0byBmaXggaW4gcG9zaXRpb248L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8aDU+RXhhbXBsZTwvaDU+CiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlLWNvZGUiPgogICAgCTxwcmUgY2xhc3M9ImJydXNoOiBqcyI+IAl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKIAkJInNTY3JvbGxYIjogIjEwMCUiCiAJfSApOwogCW5ldyBGaXhlZENvbHVtbnMoIG9UYWJsZSwgewogCQkiaUxlZnRDb2x1bW5zIjogMgogCX0gKTs8L3ByZT4KICAgIDwvZGl2Pgo8L2Rpdj48L2RkPjxkdCBjbGFzcz0iICBldmVuIj48YSBuYW1lPSJpTGVmdFdpZHRoIj48L2E+PGEgbmFtZT0iaUxlZnRXaWR0aF9kZXRhaWxzIj48L2E+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4mbHQ7c3RhdGljPiA8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNpTGVmdFdpZHRoIj5pTGVmdFdpZHRoPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDppbnQ8L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgIGV2ZW4iPjxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+V2lkdGggdG8gc2V0IGZvciB0aGUgd2lkdGggb2YgdGhlIGxlZnQgZml4ZWQgY29sdW1uKHMpIC0gbm90ZSB0aGF0IHRoZSBiZWhhdmlvdXIgb2YgdGhpcwpwcm9wZXJ0eSBpcyBkaXJlY3RseSBlZmZlY3RlZCBieSB0aGUgc0xlZnRXaWR0aCBwcm9wZXJ0eS4gSWYgbm90IGRlZmluZWQgdGhlbiB0aGlzIHByb3BlcnR5CmlzIGNhbGN1bGF0ZWQgYXV0b21hdGljYWxseSBmcm9tIHdoYXQgaGFzIGJlZW4gYXNzaWduZWQgYnkgRGF0YVRhYmxlcy48L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8aDU+RXhhbXBsZTwvaDU+CiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlLWNvZGUiPgogICAgCTxwcmUgY2xhc3M9ImJydXNoOiBqcyI+IAl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKIAkJInNTY3JvbGxYIjogIjEwMCUiCiAJfSApOwogCW5ldyBGaXhlZENvbHVtbnMoIG9UYWJsZSwgewogCQkiaUxlZnRXaWR0aCI6IDEwMCAvLyBwaXhlbHMKIAl9ICk7PC9wcmU+CiAgICA8L2Rpdj4KPC9kaXY+PC9kZD48ZHQgY2xhc3M9IiAgb2RkIj48YSBuYW1lPSJpUmlnaHRDb2x1bW5zIj48L2E+PGEgbmFtZT0iaVJpZ2h0Q29sdW1uc19kZXRhaWxzIj48L2E+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4mbHQ7c3RhdGljPiA8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNpUmlnaHRDb2x1bW5zIj5pUmlnaHRDb2x1bW5zPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDppbnQ8L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgIG9kZCI+PHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5OdW1iZXIgb2YgcmlnaHQgaGFuZCBjb2x1bW5zIHRvIGZpeCBpbiBwb3NpdGlvbjwvcD48ZGl2IGNsYXNzPSJjb2xsYXBzZV9kZXRhaWxzIj48ZGwgY2xhc3M9ImRldGFpbHMiPgoJCjwvZGw+CjxoNT5FeGFtcGxlPC9oNT4KICAgIDxkaXYgY2xhc3M9ImV4YW1wbGUtY29kZSI+CiAgICAJPHByZSBjbGFzcz0iYnJ1c2g6IGpzIj4gCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewogCQkic1Njcm9sbFgiOiAiMTAwJSIKIAl9ICk7CiAJbmV3IEZpeGVkQ29sdW1ucyggb1RhYmxlLCB7CiAJCSJpUmlnaHRDb2x1bW5zIjogMQogCX0gKTs8L3ByZT4KICAgIDwvZGl2Pgo8L2Rpdj48L2RkPjxkdCBjbGFzcz0iICBldmVuIj48YSBuYW1lPSJpUmlnaHRXaWR0aCI+PC9hPjxhIG5hbWU9ImlSaWdodFdpZHRoX2RldGFpbHMiPjwvYT48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI2lSaWdodFdpZHRoIj5pUmlnaHRXaWR0aDwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6aW50PC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iICBldmVuIj48cCBjbGFzcz0iZGVzY3JpcHRpb24iPldpZHRoIHRvIHNldCBmb3IgdGhlIHdpZHRoIG9mIHRoZSByaWdodCBmaXhlZCBjb2x1bW4ocykgLSBub3RlIHRoYXQgdGhlIGJlaGF2aW91ciBvZiB0aGlzCnByb3BlcnR5IGlzIGRpcmVjdGx5IGVmZmVjdGVkIGJ5IHRoZSBzUmlnaHRXaWR0aCBwcm9wZXJ0eS4gSWYgbm90IGRlZmluZWQgdGhlbiB0aGlzIHByb3BlcnR5CmlzIGNhbGN1bGF0ZWQgYXV0b21hdGljYWxseSBmcm9tIHdoYXQgaGFzIGJlZW4gYXNzaWduZWQgYnkgRGF0YVRhYmxlcy48L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8aDU+RXhhbXBsZTwvaDU+CiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlLWNvZGUiPgogICAgCTxwcmUgY2xhc3M9ImJydXNoOiBqcyI+IAl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKIAkJInNTY3JvbGxYIjogIjEwMCUiCiAJfSApOwogCW5ldyBGaXhlZENvbHVtbnMoIG9UYWJsZSwgewogCQkiaVJpZ2h0V2lkdGgiOiAyMDAgLy8gcGl4ZWxzCiAJfSApOzwvcHJlPgogICAgPC9kaXY+CjwvZGl2PjwvZGQ+PGR0IGNsYXNzPSIgIG9kZCI+PGEgbmFtZT0ic0hlaWdodE1hdGNoIj48L2E+PGEgbmFtZT0ic0hlaWdodE1hdGNoX2RldGFpbHMiPjwvYT48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI3NIZWlnaHRNYXRjaCI+c0hlaWdodE1hdGNoPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDpzdHJpbmc8L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgIG9kZCI+PHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5IZWlnaHQgbWF0Y2hpbmcgYWxnb3J0aGltIHRvIHVzZS4gVGhpcyBjYW4gYmUgIm5vbmUiIHdoaWNoIHdpbGwgcmVzdWx0IGluIG5vIGhlaWdodAptYXRjaGluZyBiZWluZyBhcHBsaWVkIGJ5IEZpeGVkQ29sdW1ucyAoaGVpZ2h0IG1hdGNoaW5nIGNvdWxkIGJlIGZvcmNlZCBieSBDU1MgaW4gdGhpcwpjYXNlKSwgInNlbWlhdXRvIiB3aGVyZWJ5IHRoZSBoZWlnaHQgY2FsY3VsYXRpb24gd2lsbCBiZSBwZXJmb3JtZWQgb25jZSwgYW5kIHRoZSByZXN1bHQKY2FjaGVkIHRvIGJlIHVzZWQgYWdhaW4gKGZuUmVjYWxjdWxhdGVIZWlnaHQgY2FuIGJlIHVzZWQgdG8gZm9yY2UgcmVjYWxjdWxhdGlvbiksIG9yCiJhdXRvIiB3aGVuIGhlaWdodCBtYXRjaGluZyBpcyBwZXJmb3JtZWQgb24gZXZlcnkgZHJhdyAoc2xvd2VzdCBidXQgbXVzdCBhY2N1cmF0ZSk8L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8aDU+RXhhbXBsZTwvaDU+CiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlLWNvZGUiPgogICAgCTxwcmUgY2xhc3M9ImJydXNoOiBqcyI+IAl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKIAkJInNTY3JvbGxYIjogIjEwMCUiCiAJfSApOwogCW5ldyBGaXhlZENvbHVtbnMoIG9UYWJsZSwgewogCQkic0hlaWdodE1hdGNoIjogImF1dG8iCiAJfSApOzwvcHJlPgogICAgPC9kaXY+CjwvZGl2PjwvZGQ+PGR0IGNsYXNzPSIgIGV2ZW4iPjxhIG5hbWU9InNMZWZ0V2lkdGgiPjwvYT48YSBuYW1lPSJzTGVmdFdpZHRoX2RldGFpbHMiPjwvYT48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI3NMZWZ0V2lkdGgiPnNMZWZ0V2lkdGg8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gOnN0cmluZzwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiAgZXZlbiI+PHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5UeXBlIG9mIGxlZnQgY29sdW1uIHNpemUgY2FsY3VsYXRpb24uIENhbiB0YWtlIHRoZSB2YWx1ZXMgb2YgImZpeGVkIiwgd2hlcmVieSB0aGUgaUxlZnRXaWR0aAp2YWx1ZSB3aWxsIGJlIHRyZWF0ZWQgYXMgYSBwaXhlbCB2YWx1ZSwgb3IgInJlbGF0aXZlIiBmb3Igd2hpY2ggY2FzZSBpTGVmdFdpZHRoIHdpbGwgYmUKdHJlYXRlZCBhcyBhIHBlcmNlbnRhZ2UgdmFsdWUuPC9wPjxkaXYgY2xhc3M9ImNvbGxhcHNlX2RldGFpbHMiPjxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KPGg1PkV4YW1wbGU8L2g1PgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZS1jb2RlIj4KICAgIAk8cHJlIGNsYXNzPSJicnVzaDoganMiPiAJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CiAJCSJzU2Nyb2xsWCI6ICIxMDAlIgogCX0gKTsKIAluZXcgRml4ZWRDb2x1bW5zKCBvVGFibGUsIHsKIAkJInNMZWZ0V2lkdGgiOiAicmVsYXRpdmUiLAogCQkiaUxlZnRXaWR0aCI6IDEwIC8vIHBlcmNlbnRhZ2UKIAl9ICk7PC9wcmU+CiAgICA8L2Rpdj4KPC9kaXY+PC9kZD48ZHQgY2xhc3M9IiAgb2RkIj48YSBuYW1lPSJzUmlnaHRXaWR0aCI+PC9hPjxhIG5hbWU9InNSaWdodFdpZHRoX2RldGFpbHMiPjwvYT48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI3NSaWdodFdpZHRoIj5zUmlnaHRXaWR0aDwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6c3RyaW5nPC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iICBvZGQiPjxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+VHlwZSBvZiByaWdodCBjb2x1bW4gc2l6ZSBjYWxjdWxhdGlvbi4gQ2FuIHRha2UgdGhlIHZhbHVlcyBvZiAiZml4ZWQiLCB3aGVyZWJ5IHRoZSAKaVJpZ2h0V2lkdGggdmFsdWUgd2lsbCBiZSB0cmVhdGVkIGFzIGEgcGl4ZWwgdmFsdWUsIG9yICJyZWxhdGl2ZSIgZm9yIHdoaWNoIGNhc2UgCmlSaWdodFdpZHRoIHdpbGwgYmUgdHJlYXRlZCBhcyBhIHBlcmNlbnRhZ2UgdmFsdWUuPC9wPjxkaXYgY2xhc3M9ImNvbGxhcHNlX2RldGFpbHMiPjxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KPGg1PkV4YW1wbGU8L2g1PgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZS1jb2RlIj4KICAgIAk8cHJlIGNsYXNzPSJicnVzaDoganMiPiAJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CiAJCSJzU2Nyb2xsWCI6ICIxMDAlIgogCX0gKTsKIAluZXcgRml4ZWRDb2x1bW5zKCBvVGFibGUsIHsKIAkJInNSaWdodFdpZHRoIjogInJlbGF0aXZlIiwKIAkJImlSaWdodFdpZHRoIjogMTAgLy8gcGVyY2VudGFnZQogCX0gKTs8L3ByZT4KICAgIDwvZGl2Pgo8L2Rpdj48L2RkPgo8L2RsPjwvZGl2PgogICAJCQkJCTwvZGl2PgoJCQkJCgkJPC9kaXY+CgoJCTxkaXYgY2xhc3M9ImZ3X2Zvb3RlciI+CgkJCUZpeGVkQ29sdW1uczogQ29weXJpZ2h0IDIwMTAtMjAxMSBBbGxhbiBKYXJkaW5lLCBhbGwgcmlnaHRzIHJlc2VydmVkPGJyPgoKCQkJRG9jdW1lbnRhdGlvbiBnZW5lcmF0ZWQgYnkgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL21pY21hdGgvSlNEb2MiPkpTRG9jIDM8L2E+IG9uCgkJCTh0aCBBdWcgMjAxMiAtIDIyOjUzCgkJCXdpdGggdGhlIDxhIGhyZWY9Imh0dHA6Ly9kYXRhdGFibGVzLm5ldC8iPkRhdGFUYWJsZXM8L2E+IHRlbXBsYXRlLgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/docs/FixedColumns.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTx0aXRsZT5DbGFzczogRml4ZWRDb2x1bW5zIC0gZG9jdW1lbnRhdGlvbjwvdGl0bGU+CiAgCgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KCQkJQGltcG9ydCAibWVkaWEvY3NzL2RvYy5jc3MiOwoJCQlAaW1wb3J0ICJtZWRpYS9jc3Mvc2hDb3JlLmNzcyI7CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9zaFRoZW1lRGF0YVRhYmxlcy5jc3MiOwoJCTwvc3R5bGU+CgkKCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9zaENvcmUuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL3NoQnJ1c2hKU2NyaXB0LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9qcXVlcnkuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL2RvYy5qcyI+PC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keT4KCQk8ZGl2IGNsYXNzPSJmd19jb250YWluZXIiPgoJCQkKCQkJCTxhIG5hbWU9InRvcCI+PC9hPgoJCQkJPGRpdiBjbGFzcz0iZndfaGVhZGVyIj4KCQkJCQk8aDEgY2xhc3M9InBhZ2UtdGl0bGUiPkNsYXNzOiBGaXhlZENvbHVtbnM8L2gxPgoJCQkJCQoJCQkJCTxkaXYgY2xhc3M9InBhZ2UtaW5mbyI+CgkJCQkJCUZpeGVkQ29sdW1ucyB2Mi4wLjMgZG9jdW1lbnRhdGlvbgoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgoJCQkJCgoJCQkJPGRpdiBjbGFzcz0iZndfbmF2Ij4KCQkJCQk8aDI+TmF2aWdhdGlvbjwvaDI+CgkJCQkJPHVsPgoJCQkJCTxsaT48YSBocmVmPSIjdG9wIj5PdmVydmlldzwvYT48L2xpPgoJCQkJCTxsaT48YSBocmVmPSIjc3VtbWFyeSI+U3VtbWFyeTwvYT48ZGl2PjxhIGhyZWY9IiNzdW1tYXJ5X25hbWVzcGFjZXMiPk5hbWVzcGFjZXM8L2E+IHwgPGEgaHJlZj0iI3N1bW1hcnlfcHJvcGVydGllcyI+UHJvcGVydGllczwvYT4gfCA8YSBocmVmPSIjc3VtbWFyeV9tZXRob2RzIj5NZXRob2RzPC9hPiB8IDxhIGhyZWY9IiNzdW1tYXJ5X2V2ZW50cyI+RXZlbnRzPC9hPjwvZGl2PjwvbGk+PGxpPjxhIGhyZWY9IiNkZXRhaWxzIj5EZXRhaWxzPC9hPjxkaXY+PGEgaHJlZj0iI2RldGFpbHNfcHJvcGVydGllcyI+UHJvcGVydGllczwvYT4gfCA8YSBocmVmPSIjZGV0YWlsc19tZXRob2RzIj5NZXRob2RzPC9hPiB8IDxhIGhyZWY9IiNkZXRhaWxzX2V2ZW50cyI+RXZlbnRzPC9hPjwvZGl2PjwvbGk+PC91bD4KCQkJCQk8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAxMHB4OyI+CgkJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNob3dfcHJpdmF0ZSIgdmFsdWU9IjAiPgoJCQkJCQk8c3BhbiBpZD0icHJpdmF0ZV9sYWJlbCI+SGlkaW5nPC9zcGFuPiBwcml2YXRlIGVsZW1lbnRzIAoJCQkJCQkJKDxhIGlkPSJwcml2YXRlX3RvZ2dsZSIgaHJlZj0iIj50b2dnbGU8L2E+KQoJCQkJCQk8L3NwYW4+CgkJCQkJPC9kaXY+CgkJCQkJPGRpdj4KCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2hvd19leHRlbmRlZCIgdmFsdWU9IjEiPgoJCQkJCQk8c3BhbiBpZD0iZXh0ZW5kZWRfbGFiZWwiPlNob3dpbmc8L3NwYW4+IGV4dGVuZGVkIGVsZW1lbnRzIAoJCQkJCQkJKDxhIGlkPSJleHRlbmRlZF90b2dnbGUiIGhyZWY9IiI+dG9nZ2xlPC9hPikKCQkJCQkJPC9zcGFuPgoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgoJCQkJPGRpdiBjbGFzcz0iZndfY29udGVudCI+CgkJCQkJPGEgbmFtZT0ib3ZlcnZpZXciPjwvYT4KCQkJCQk8ZGl2IGNsYXNzPSJkb2Nfb3ZlcnZpZXciPgoJCQkJCQk8ZGl2IGNsYXNzPSJuYXZfYmxvY2tlciI+PC9kaXY+CgkJCQkJCTxkbD48ZHQgaWQ9IkZpeGVkQ29sdW1ucyIgY2xhc3M9IiBldmVuIj48YSBuYW1lPSJGaXhlZENvbHVtbnMiPjwvYT48YSBuYW1lPSJGaXhlZENvbHVtbnNfZGV0YWlscyI+PC9hPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YT5uZXcgRml4ZWRDb2x1bW5zPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJzaWduYXR1cmUiPihvRFQsIDxzcGFuIGNsYXNzPSJvcHRpb25hbCI+b0luaXQ8L3NwYW4+KTwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgZXZlbiI+PHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5XaGVuIG1ha2luZyB1c2Ugb2YgRGF0YVRhYmxlcycgeC1heGlzIHNjcm9sbGluZyBmZWF0dXJlLCB5b3UgbWF5IHdpc2ggdG8gCmZpeCB0aGUgbGVmdCBtb3N0IGNvbHVtbiBpbiBwbGFjZS4gVGhpcyBwbHVnLWluIGZvciBEYXRhVGFibGVzIHByb3ZpZGVzIApleGFjdGx5IHRoaXMgb3B0aW9uIChub3RlIGZvciBub24tc2Nyb2xsaW5nIHRhYmxlcywgcGxlYXNlIHVzZSB0aGUgIApGaXhlZEhlYWRlciBwbHVnLWluLCB3aGljaCBjYW4gZml4IGhlYWRlcnMsIGZvb3RlcnMgYW5kIGNvbHVtbnMpLiBLZXkgCmZlYXR1cmVzIGluY2x1ZGU6CiAgPHVsIGNsYXNzPSJsaW1pdF9sZW5ndGgiPgogICAgPGxpPkZyZWV6ZXMgdGhlIGxlZnQgb3IgcmlnaHQgbW9zdCBjb2x1bW5zIHRvIHRoZSBzaWRlIG9mIHRoZSB0YWJsZTwvbGk+CiAgICA8bGk+T3B0aW9uIHRvIGZyZWV6ZSB0d28gb3IgbW9yZSBjb2x1bW5zPC9saT4KICAgIDxsaT5GdWxsIGludGVncmF0aW9uIHdpdGggRGF0YVRhYmxlcycgc2Nyb2xsaW5nIG9wdGlvbnM8L2xpPgogICAgPGxpPlNwZWVkIC0gRml4ZWRDb2x1bW5zIGlzIGZhc3QgaW4gaXRzIG9wZXJhdGlvbjwvbGk+CiAgPC91bD48L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGgzPkNvbnN0cnVjdG9yPC9oMz48ZGwgY2xhc3M9ImRldGFpbHMiPgoJCjwvZGw+CjxoNT5QYXJhbWV0ZXJzOjwvaDU+Cgo8dGFibGUgY2xhc3M9InBhcmFtcyI+CiAgICA8dGhlYWQ+Cgk8dHI+CiAgICAgICAgPHRoIHdpZHRoPSIyMCI+PC90aD4KICAgICAgICA8dGggd2lkdGg9IjEyJSIgY2xhc3M9ImJvdHRvbV9ib3JkZXIgbmFtZSI+TmFtZTwvdGg+CgkJPHRoIHdpZHRoPSIxMCUiIGNsYXNzPSJib3R0b21fYm9yZGVyIj5UeXBlPC90aD4KCQk8dGggd2lkdGg9IjEwJSIgY2xhc3M9ImJvdHRvbV9ib3JkZXIiPkF0dHJpYnV0ZXM8L3RoPgoJCTx0aCB3aWR0aD0iMTAlIiBjbGFzcz0iYm90dG9tX2JvcmRlciI+RGVmYXVsdDwvdGg+CgkJPHRoIGNsYXNzPSJsYXN0IGJvdHRvbV9ib3JkZXIiPkRlc2NyaXB0aW9uPC90aD4KCTwvdHI+Cgk8L3RoZWFkPgoJCgk8dGJvZHk+Cgk8dHIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0ibnVtYmVyIHJpZ2h0X2JvcmRlciI+PGRpdj4xPC9kaXY+PC90ZD48dGQgY2xhc3M9Im5hbWUiPm9EVDwvdGQ+PHRkIGNsYXNzPSJ0eXBlIHR5cGUtcGFyYW0iPm9iamVjdDwvdGQ+PHRkIGNsYXNzPSJhdHRyaWJ1dGVzIj48L3RkPjx0ZCBjbGFzcz0iZGVmYXVsdCI+PC90ZD48dGQgY2xhc3M9ImRlc2NyaXB0aW9uIGxhc3QiPkRhdGFUYWJsZXMgaW5zdGFuY2U8L3RkPjwvdHI+PHRyIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0ibnVtYmVyIHJpZ2h0X2JvcmRlciI+PGRpdj4yPC9kaXY+PC90ZD48dGQgY2xhc3M9Im5hbWUiPm9Jbml0PC90ZD48dGQgY2xhc3M9InR5cGUgdHlwZS1wYXJhbSI+b2JqZWN0PC90ZD48dGQgY2xhc3M9ImF0dHJpYnV0ZXMiPk9wdGlvbmFsPC90ZD48dGQgY2xhc3M9ImRlZmF1bHQiPnt9PC90ZD48dGQgY2xhc3M9ImRlc2NyaXB0aW9uIGxhc3QiPkNvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciBGaXhlZENvbHVtbnMuIE9wdGlvbnMgYXJlIGRlZmluZWQgYnkgPGEgaHJlZj0iRml4ZWRDb2x1bW5zLmRlZmF1bHRzLmh0bWwiPkZpeGVkQ29sdW1ucy5kZWZhdWx0czwvYT48L3RkPjwvdHI+Cgk8L3Rib2R5Pgo8L3RhYmxlPjxoNT5FeGFtcGxlOjwvaDU+CiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlLWNvZGUiPgogICAgCTxwcmUgY2xhc3M9ImJydXNoOiBqcyI+IAl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKIAkJInNTY3JvbGxYIjogIjEwMCUiCiAJfSApOwogCW5ldyBGaXhlZENvbHVtbnMoIG9UYWJsZSApOzwvcHJlPgogICAgPC9kaXY+CjwvZGl2Pgo8L2RsPjxoMyBjbGFzcz0ic3Vic2VjdGlvbi10aXRsZSI+UmVxdWlyZXM8L2gzPgo8dWw+Cgk8bGk+alF1ZXJ5IDEuMys8L2xpPjxsaT5EYXRhVGFibGVzIDEuOC4wKzwvbGk+CjwvdWw+CgoJCQkJCTwvZGl2PgoKCQkJCQkKCQkJCQk8ZGl2IGNsYXNzPSJkb2Nfc3VtbWFyeSI+CgkJCQkJCTxhIG5hbWU9InN1bW1hcnkiPjwvYT4KCQkJCQkJPGgyPlN1bW1hcnk8L2gyPgoKCQkJCQkJPGRpdiBjbGFzcz0iZG9jX2dyb3VwIj48YSBuYW1lPSJzdW1tYXJ5X25hbWVzcGFjZXMiPjwvYT48aDMgY2xhc3M9InN1YnNlY3Rpb24tdGl0bGUiPk5hbWVzcGFjZXM8L2gzPgo8ZGw+Cgk8ZHQgY2xhc3M9ImV2ZW4iPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IkZpeGVkQ29sdW1ucy5kZWZhdWx0cy5odG1sIj5kZWZhdWx0czwvYT48L3NwYW4+PC9kdD48ZGQgY2xhc3M9ImV2ZW4iPkZpeGVkQ29sdW1ucyBkZWZhdWx0IHNldHRpbmdzIGZvciBpbml0aWFsaXNhdGlvbjwvZGQ+PGR0IGNsYXNzPSJvZGQiPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9ImQzODkwYmE3YzQuaHRtbCI+ZG9tPC9hPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0ib2RkIj5ET00gZWxlbWVudHMgdXNlZCBieSB0aGUgY2xhc3MgaW5zdGFuY2U8L2RkPjxkdCBjbGFzcz0iZXZlbiI+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iOTFiY2U3YzRhZC5odG1sIj5zPC9hPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iZXZlbiI+U2V0dGluZ3Mgb2JqZWN0IHdoaWNoIGNvbnRhaW5zIGN1c3RvbWlzYWJsZSBpbmZvcm1hdGlvbiBmb3IgRml4ZWRDb2x1bW5zIGluc3RhbmNlPC9kZD4KPC9kbD48L2Rpdj48ZGl2IGNsYXNzPSJkb2NfZ3JvdXAiPjxhIG5hbWU9InN1bW1hcnlfcHJvcGVydGllcyI+PC9hPjxoMyBjbGFzcz0ic3Vic2VjdGlvbi10aXRsZSI+UHJvcGVydGllczwvaDM+Cgo8ZGw+CiAgICA8ZHQgY2xhc3M9IiAgZXZlbiI+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4mbHQ7c3RhdGljLCBjb25zdGFudD4gPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjVkVSU0lPTiI+VkVSU0lPTjwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6U3RyaW5nPC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iICBldmVuIj5GaXhlZENvbHVtbnMgdmVyc2lvbjwvZGQ+CjwvZGw+PC9kaXY+PGRpdiBjbGFzcz0iZG9jX2dyb3VwIj48YSBuYW1lPSJzdW1tYXJ5X21ldGhvZHMiPjwvYT48aDMgY2xhc3M9InN1YnNlY3Rpb24tdGl0bGUiPk1ldGhvZHM8L2gzPgoKPGRsPgogICAgPGR0IGNsYXNzPSIgZXZlbiI+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj48L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNmblJlY2FsY3VsYXRlSGVpZ2h0Ij5mblJlY2FsY3VsYXRlSGVpZ2h0PC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJzaWduYXR1cmUiPihuVHIpPC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+ICZyYXJyOyB7dm9pZH08L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgZXZlbiI+TWFyayBhIHJvdyBzdWNoIHRoYXQgaXQncyBoZWlnaHQgc2hvdWxkIGJlIHJlY2FsY3VsYXRlZCB3aGVuIHVzaW5nICdzZW1pYXV0bycgcm93CmhlaWdodCBtYXRjaGluZy4gVGhpcyBmdW5jdGlvbiB3aWxsIGhhdmUgbm8gZWZmZWN0IHdoZW4gJ25vbmUnIG9yICdhdXRvJyByb3cgaGVpZ2h0Cm1hdGNoaW5nIGlzIHVzZWQuPC9kZD48ZHQgY2xhc3M9IiBvZGQiPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjZm5SZWRyYXdMYXlvdXQiPmZuUmVkcmF3TGF5b3V0PC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJzaWduYXR1cmUiPigpPC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+ICZyYXJyOyB7dm9pZH08L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgb2RkIj5SZWNhbGN1bGF0ZSB0aGUgcmVzaXplcyBvZiB0aGUgM3gzIGdyaWQgdGhhdCBGaXhlZENvbHVtbnMgdXNlcyBmb3IgZGlzcGxheSBvZiB0aGUgdGFibGUuClRoaXMgaXMgdXNlZnVsIGlmIHlvdSB1cGRhdGUgdGhlIHdpZHRoIG9mIHRoZSB0YWJsZSBjb250YWluZXIuIE5vdGUgdGhhdCBGaXhlZENvbHVtbnMgd2lsbApwZXJmb3JtIHRoaXMgZnVuY3Rpb24gYXV0b21hdGljYWxseSB3aGVuIHRoZSB3aW5kb3cucmVzaXplIGV2ZW50IGlzIGZpcmVkLjwvZGQ+PGR0IGNsYXNzPSIgZXZlbiI+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj48L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNmblNldFJvd0hlaWdodCI+Zm5TZXRSb3dIZWlnaHQ8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InNpZ25hdHVyZSI+KG5UYXJnZXQsIGlIZWlnaHQpPC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+ICZyYXJyOyB7dm9pZH08L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgZXZlbiI+U2V0IHRoZSBoZWlnaHQgb2YgYSBnaXZlbiByb3cgLSBwcm92aWRlcyBjcm9zcyBicm93c2VyIGNvbXBhdGliaWxpdHk8L2RkPjxkdCBjbGFzcz0iIG9kZCI+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj48L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNmblVwZGF0ZSI+Zm5VcGRhdGU8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InNpZ25hdHVyZSI+KCk8L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gJnJhcnI7IHt2b2lkfTwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiBvZGQiPlVwZGF0ZSB0aGUgZml4ZWQgY29sdW1ucyAtIGluY2x1ZGluZyBoZWFkZXJzIGFuZCBmb290ZXJzLiBOb3RlIHRoYXQgRml4ZWRDb2x1bW5zIHdpbGwKYXV0b21hdGljYWxseSB1cGRhdGUgdGhlIGRpc3BsYXkgd2hlbmV2ZXIgdGhlIGhvc3QgRGF0YVRhYmxlIHJlZHJhd3MuPC9kZD4KPC9kbD4KPC9kaXY+PGRpdiBjbGFzcz0iZG9jX2dyb3VwIj48YSBuYW1lPSJzdW1tYXJ5X2V2ZW50cyI+PC9hPjxoMyBjbGFzcz0ic3Vic2VjdGlvbi10aXRsZSI+RXZlbnRzPC9oMz4KPGRsPgogICAgPGR0IGNsYXNzPSIgZXZlbiI+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNkcmF3Ij5kcmF3PC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iIGV2ZW4iPkV2ZW50IGZpcmVkIHdoZW5ldmVyIEZpeGVkQ29sdW1ucyByZWRyYXdzIHRoZSBmaXhlZCBjb2x1bW5zIChpLmUuIGNsb25lcyB0aGUgdGFibGUgZWxlbWVudHMgZnJvbSB0aGUgbWFpbiBEYXRhVGFibGUpLiBUaGlzIHdpbGwgb2NjdXIgd2hlbmV2ZXIgdGhlIERhdGFUYWJsZSB0aGF0IHRoZSBGaXhlZENvbHVtbnMgaW5zdGFuY2UgaXMgYXR0YWNoZWQgZG9lcyBpdHMgb3duIGRyYXcuPC9kZD4KPC9kZD4KPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQkJCgoKCQkJCQkKCQkJCQk8ZGl2IGNsYXNzPSJkb2NfZGV0YWlscyI+CgkJCQkJCTxhIG5hbWU9ImRldGFpbHMiPjwvYT4KCQkJCQkJPGgyPkRldGFpbHM8L2gyPgoJCQkJCQk8ZGl2IGNsYXNzPSJkb2NfZ3JvdXAiPjxhIG5hbWU9ImRldGFpbHNfcHJvcGVydGllcyI+PC9hPjxoMyBjbGFzcz0ic3Vic2VjdGlvbi10aXRsZSI+UHJvcGVydGllczwvaDM+CjxkbD4KICAgIDxkdCBjbGFzcz0iICBldmVuIj48YSBuYW1lPSJWRVJTSU9OIj48L2E+PGEgbmFtZT0iVkVSU0lPTl9kZXRhaWxzIj48L2E+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4mbHQ7c3RhdGljLCBjb25zdGFudD4gPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjVkVSU0lPTiI+VkVSU0lPTjwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6U3RyaW5nPC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iICBldmVuIj48cCBjbGFzcz0iZGVzY3JpcHRpb24iPkZpeGVkQ29sdW1ucyB2ZXJzaW9uPC9wPjxkaXYgY2xhc3M9ImNvbGxhcHNlX2RldGFpbHMiPjxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KPC9kaXY+PC9kZD4KPC9kbD48L2Rpdj48ZGl2IGNsYXNzPSJkb2NfZ3JvdXAiPjxhIG5hbWU9ImRldGFpbHNfbWV0aG9kcyI+PC9hPjxoMyBjbGFzcz0ic3Vic2VjdGlvbi10aXRsZSI+TWV0aG9kczwvaDM+CjxkbD4KICAgIDxkdCBpZD0iRml4ZWRDb2x1bW5zI2ZuUmVjYWxjdWxhdGVIZWlnaHQiIGNsYXNzPSIgZXZlbiI+PGEgbmFtZT0iZm5SZWNhbGN1bGF0ZUhlaWdodCI+PC9hPjxhIG5hbWU9ImZuUmVjYWxjdWxhdGVIZWlnaHRfZGV0YWlscyI+PC9hPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YT5mblJlY2FsY3VsYXRlSGVpZ2h0PC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJzaWduYXR1cmUiPihuVHIpPC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+ICZyYXJyOyB7dm9pZH08L3NwYW4+PC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iIGV2ZW4iPjxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+TWFyayBhIHJvdyBzdWNoIHRoYXQgaXQncyBoZWlnaHQgc2hvdWxkIGJlIHJlY2FsY3VsYXRlZCB3aGVuIHVzaW5nICdzZW1pYXV0bycgcm93CmhlaWdodCBtYXRjaGluZy4gVGhpcyBmdW5jdGlvbiB3aWxsIGhhdmUgbm8gZWZmZWN0IHdoZW4gJ25vbmUnIG9yICdhdXRvJyByb3cgaGVpZ2h0Cm1hdGNoaW5nIGlzIHVzZWQuPC9wPjxkaXYgY2xhc3M9ImNvbGxhcHNlX2RldGFpbHMiPjxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KPGg1PlBhcmFtZXRlcnM6PC9oNT4KCjx0YWJsZSBjbGFzcz0icGFyYW1zIj4KICAgIDx0aGVhZD4KCTx0cj4KICAgICAgICA8dGggd2lkdGg9IjIwIj48L3RoPgogICAgICAgIDx0aCB3aWR0aD0iMTIlIiBjbGFzcz0iYm90dG9tX2JvcmRlciBuYW1lIj5OYW1lPC90aD4KCQk8dGggd2lkdGg9IjEwJSIgY2xhc3M9ImJvdHRvbV9ib3JkZXIiPlR5cGU8L3RoPgoJCTx0aCB3aWR0aD0iMTAlIiBjbGFzcz0iYm90dG9tX2JvcmRlciI+QXR0cmlidXRlczwvdGg+CgkJPHRoIHdpZHRoPSIxMCUiIGNsYXNzPSJib3R0b21fYm9yZGVyIj5EZWZhdWx0PC90aD4KCQk8dGggY2xhc3M9Imxhc3QgYm90dG9tX2JvcmRlciI+RGVzY3JpcHRpb248L3RoPgoJPC90cj4KCTwvdGhlYWQ+CgkKCTx0Ym9keT4KCTx0ciBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJudW1iZXIgcmlnaHRfYm9yZGVyIj48ZGl2PjE8L2Rpdj48L3RkPjx0ZCBjbGFzcz0ibmFtZSI+blRyPC90ZD48dGQgY2xhc3M9InR5cGUgdHlwZS1wYXJhbSI+Tm9kZTwvdGQ+PHRkIGNsYXNzPSJhdHRyaWJ1dGVzIj48L3RkPjx0ZCBjbGFzcz0iZGVmYXVsdCI+PC90ZD48dGQgY2xhc3M9ImRlc2NyaXB0aW9uIGxhc3QiPlRSIGVsZW1lbnQgdGhhdCBzaG91bGQgaGF2ZSBpdCdzIGhlaWdodCByZWNhbGN1bGF0ZWQ8L3RkPjwvdHI+Cgk8L3Rib2R5Pgo8L3RhYmxlPjxoNT5FeGFtcGxlOjwvaDU+CiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlLWNvZGUiPgogICAgCTxwcmUgY2xhc3M9ImJydXNoOiBqcyI+IAl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKIAkJInNTY3JvbGxYIjogIjEwMCUiCiAJfSApOwogCXZhciBvRkMgPSBuZXcgRml4ZWRDb2x1bW5zKCBvVGFibGUgKTsKIAkKIAkvLyBtYW5pcHVsYXRlIHRoZSB0YWJsZSAtIG1hcmsgdGhlIHJvdyBhcyBuZWVkaW5nIGFuIHVwZGF0ZSB0aGVuIHVwZGF0ZSB0aGUgdGFibGUKIAkvLyB0aGlzIGFsbG93cyB0aGUgcmVkcmF3IHBlcmZvcm1lZCBieSBEYXRhVGFibGVzIGZuVXBkYXRlIHRvIHJlY2FsY3VsYXRlIHRoZSByb3cKIAkvLyBoZWlnaHQKIAlvRkMuZm5SZWNhbGN1bGF0ZUhlaWdodCgpOwogCW9UYWJsZS5mblVwZGF0ZSggJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCknKVswXSwgWyJpbnNlcnQgZGF0ZSIsIDEsIDIsIDMgLi4uIF0pOzwvcHJlPgogICAgPC9kaXY+CjwvZGl2Pgo8ZHQgaWQ9IkZpeGVkQ29sdW1ucyNmblJlZHJhd0xheW91dCIgY2xhc3M9IiBvZGQiPjxhIG5hbWU9ImZuUmVkcmF3TGF5b3V0Ij48L2E+PGEgbmFtZT0iZm5SZWRyYXdMYXlvdXRfZGV0YWlscyI+PC9hPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YT5mblJlZHJhd0xheW91dDwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0ic2lnbmF0dXJlIj4oKTwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiAmcmFycjsge3ZvaWR9PC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiBvZGQiPjxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+UmVjYWxjdWxhdGUgdGhlIHJlc2l6ZXMgb2YgdGhlIDN4MyBncmlkIHRoYXQgRml4ZWRDb2x1bW5zIHVzZXMgZm9yIGRpc3BsYXkgb2YgdGhlIHRhYmxlLgpUaGlzIGlzIHVzZWZ1bCBpZiB5b3UgdXBkYXRlIHRoZSB3aWR0aCBvZiB0aGUgdGFibGUgY29udGFpbmVyLiBOb3RlIHRoYXQgRml4ZWRDb2x1bW5zIHdpbGwKcGVyZm9ybSB0aGlzIGZ1bmN0aW9uIGF1dG9tYXRpY2FsbHkgd2hlbiB0aGUgd2luZG93LnJlc2l6ZSBldmVudCBpcyBmaXJlZC48L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8aDU+RXhhbXBsZTo8L2g1PgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZS1jb2RlIj4KICAgIAk8cHJlIGNsYXNzPSJicnVzaDoganMiPiAJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CiAJCSJzU2Nyb2xsWCI6ICIxMDAlIgogCX0gKTsKIAl2YXIgb0ZDID0gbmV3IEZpeGVkQ29sdW1ucyggb1RhYmxlICk7CiAJCiAJLy8gUmVzaXplIHRoZSB0YWJsZSBjb250YWluZXIgYW5kIHRoZW4gaGF2ZSBGaXhlZENvbHVtbnMgYWRqdXN0IGl0cyBsYXlvdXQuLi4uCiAgICAgJCgnI2NvbnRlbnQnKS53aWR0aCggMTIwMCApOwogCW9GQy5mblJlZHJhd0xheW91dCgpOzwvcHJlPgogICAgPC9kaXY+CjwvZGl2Pgo8ZHQgaWQ9IkZpeGVkQ29sdW1ucyNmblNldFJvd0hlaWdodCIgY2xhc3M9IiBldmVuIj48YSBuYW1lPSJmblNldFJvd0hlaWdodCI+PC9hPjxhIG5hbWU9ImZuU2V0Um93SGVpZ2h0X2RldGFpbHMiPjwvYT48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPjwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGE+Zm5TZXRSb3dIZWlnaHQ8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InNpZ25hdHVyZSI+KG5UYXJnZXQsIGlIZWlnaHQpPC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+ICZyYXJyOyB7dm9pZH08L3NwYW4+PC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iIGV2ZW4iPjxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+U2V0IHRoZSBoZWlnaHQgb2YgYSBnaXZlbiByb3cgLSBwcm92aWRlcyBjcm9zcyBicm93c2VyIGNvbXBhdGliaWxpdHk8L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8aDU+UGFyYW1ldGVyczo8L2g1PgoKPHRhYmxlIGNsYXNzPSJwYXJhbXMiPgogICAgPHRoZWFkPgoJPHRyPgogICAgICAgIDx0aCB3aWR0aD0iMjAiPjwvdGg+CiAgICAgICAgPHRoIHdpZHRoPSIxMiUiIGNsYXNzPSJib3R0b21fYm9yZGVyIG5hbWUiPk5hbWU8L3RoPgoJCTx0aCB3aWR0aD0iMTAlIiBjbGFzcz0iYm90dG9tX2JvcmRlciI+VHlwZTwvdGg+CgkJPHRoIHdpZHRoPSIxMCUiIGNsYXNzPSJib3R0b21fYm9yZGVyIj5BdHRyaWJ1dGVzPC90aD4KCQk8dGggd2lkdGg9IjEwJSIgY2xhc3M9ImJvdHRvbV9ib3JkZXIiPkRlZmF1bHQ8L3RoPgoJCTx0aCBjbGFzcz0ibGFzdCBib3R0b21fYm9yZGVyIj5EZXNjcmlwdGlvbjwvdGg+Cgk8L3RyPgoJPC90aGVhZD4KCQoJPHRib2R5PgoJPHRyIGNsYXNzPSJldmVuIj48dGQgY2xhc3M9Im51bWJlciByaWdodF9ib3JkZXIiPjxkaXY+MTwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJuYW1lIj5uVGFyZ2V0PC90ZD48dGQgY2xhc3M9InR5cGUgdHlwZS1wYXJhbSI+Tm9kZTwvdGQ+PHRkIGNsYXNzPSJhdHRyaWJ1dGVzIj48L3RkPjx0ZCBjbGFzcz0iZGVmYXVsdCI+PC90ZD48dGQgY2xhc3M9ImRlc2NyaXB0aW9uIGxhc3QiPlRSIGVsZW1lbnQgdGhhdCBzaG91bGQgaGF2ZSBpdCdzIGhlaWdodCByZWNhbGN1bGF0ZWQ8L3RkPjwvdHI+PHRyIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0ibnVtYmVyIHJpZ2h0X2JvcmRlciI+PGRpdj4yPC9kaXY+PC90ZD48dGQgY2xhc3M9Im5hbWUiPmlIZWlnaHQ8L3RkPjx0ZCBjbGFzcz0idHlwZSB0eXBlLXBhcmFtIj5pbnQ8L3RkPjx0ZCBjbGFzcz0iYXR0cmlidXRlcyI+PC90ZD48dGQgY2xhc3M9ImRlZmF1bHQiPjwvdGQ+PHRkIGNsYXNzPSJkZXNjcmlwdGlvbiBsYXN0Ij5IZWlnaHQgaW4gcGl4ZWxzIHRvIHNldDwvdGQ+PC90cj4KCTwvdGJvZHk+CjwvdGFibGU+PGg1PkV4YW1wbGU6PC9oNT4KICAgIDxkaXYgY2xhc3M9ImV4YW1wbGUtY29kZSI+CiAgICAJPHByZSBjbGFzcz0iYnJ1c2g6IGpzIj4gCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewogCQkic1Njcm9sbFgiOiAiMTAwJSIKIAl9ICk7CiAJdmFyIG9GQyA9IG5ldyBGaXhlZENvbHVtbnMoIG9UYWJsZSApOwogCQogCS8vIFlvdSBtYXkgd2FudCB0byBkbyB0aGlzIGFmdGVyIG1hbmlwdWxhdGluZyBhIHJvdyBpbiB0aGUgZml4ZWQgY29sdW1uCiAJb0ZDLmZuU2V0Um93SGVpZ2h0KCAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKScpWzBdLCA1MCApOzwvcHJlPgogICAgPC9kaXY+CjwvZGl2Pgo8ZHQgaWQ9IkZpeGVkQ29sdW1ucyNmblVwZGF0ZSIgY2xhc3M9IiBvZGQiPjxhIG5hbWU9ImZuVXBkYXRlIj48L2E+PGEgbmFtZT0iZm5VcGRhdGVfZGV0YWlscyI+PC9hPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YT5mblVwZGF0ZTwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0ic2lnbmF0dXJlIj4oKTwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiAmcmFycjsge3ZvaWR9PC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiBvZGQiPjxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+VXBkYXRlIHRoZSBmaXhlZCBjb2x1bW5zIC0gaW5jbHVkaW5nIGhlYWRlcnMgYW5kIGZvb3RlcnMuIE5vdGUgdGhhdCBGaXhlZENvbHVtbnMgd2lsbAphdXRvbWF0aWNhbGx5IHVwZGF0ZSB0aGUgZGlzcGxheSB3aGVuZXZlciB0aGUgaG9zdCBEYXRhVGFibGUgcmVkcmF3cy48L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8aDU+RXhhbXBsZTo8L2g1PgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZS1jb2RlIj4KICAgIAk8cHJlIGNsYXNzPSJicnVzaDoganMiPiAJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CiAJCSJzU2Nyb2xsWCI6ICIxMDAlIgogCX0gKTsKIAl2YXIgb0ZDID0gbmV3IEZpeGVkQ29sdW1ucyggb1RhYmxlICk7CiAJCiAJLy8gYXQgc29tZSBsYXRlciBwb2ludCB3aGVuIHRoZSB0YWJsZSBoYXMgYmVlbiBtYW5pcHVsYXRlZC4uLi4KIAlvRkMuZm5VcGRhdGUoKTs8L3ByZT4KICAgIDwvZGl2Pgo8L2Rpdj4KCjwvZGQ+CjwvZGl2PjxkaXYgY2xhc3M9ImRvY19ncm91cCI+PGEgbmFtZT0iZGV0YWlsc19ldmVudHMiPjwvYT48aDMgY2xhc3M9InN1YnNlY3Rpb24tdGl0bGUiPkV2ZW50czwvaDM+CjxkbD4KICAgIDxkdCBpZD0iRml4ZWRDb2x1bW5zI2V2ZW50OmRyYXciIGNsYXNzPSIgZXZlbiI+PGEgbmFtZT0iZHJhdyI+PC9hPjxhIG5hbWU9ImRyYXdfZGV0YWlscyI+PC9hPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YT5kcmF3PC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiBldmVuIj48cCBjbGFzcz0iZGVzY3JpcHRpb24iPkV2ZW50IGZpcmVkIHdoZW5ldmVyIEZpeGVkQ29sdW1ucyByZWRyYXdzIHRoZSBmaXhlZCBjb2x1bW5zIChpLmUuIGNsb25lcyB0aGUgdGFibGUgZWxlbWVudHMgZnJvbSB0aGUgbWFpbiBEYXRhVGFibGUpLiBUaGlzIHdpbGwgb2NjdXIgd2hlbmV2ZXIgdGhlIERhdGFUYWJsZSB0aGF0IHRoZSBGaXhlZENvbHVtbnMgaW5zdGFuY2UgaXMgYXR0YWNoZWQgZG9lcyBpdHMgb3duIGRyYXcuPC9wPjxkaXYgY2xhc3M9ImNvbGxhcHNlX2RldGFpbHMiPjxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KPGg1PlBhcmFtZXRlcnM6PC9oNT4KCjx0YWJsZSBjbGFzcz0icGFyYW1zIj4KICAgIDx0aGVhZD4KCTx0cj4KICAgICAgICA8dGggd2lkdGg9IjIwIj48L3RoPgogICAgICAgIDx0aCB3aWR0aD0iMTIlIiBjbGFzcz0iYm90dG9tX2JvcmRlciBuYW1lIj5OYW1lPC90aD4KCQk8dGggd2lkdGg9IjEwJSIgY2xhc3M9ImJvdHRvbV9ib3JkZXIiPlR5cGU8L3RoPgoJCTx0aCB3aWR0aD0iMTAlIiBjbGFzcz0iYm90dG9tX2JvcmRlciI+QXR0cmlidXRlczwvdGg+CgkJPHRoIHdpZHRoPSIxMCUiIGNsYXNzPSJib3R0b21fYm9yZGVyIj5EZWZhdWx0PC90aD4KCQk8dGggY2xhc3M9Imxhc3QgYm90dG9tX2JvcmRlciI+RGVzY3JpcHRpb248L3RoPgoJPC90cj4KCTwvdGhlYWQ+CgkKCTx0Ym9keT4KCTx0ciBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJudW1iZXIgcmlnaHRfYm9yZGVyIj48ZGl2PjE8L2Rpdj48L3RkPjx0ZCBjbGFzcz0ibmFtZSI+ZTwvdGQ+PHRkIGNsYXNzPSJ0eXBlIHR5cGUtcGFyYW0iPmV2ZW50PC90ZD48dGQgY2xhc3M9ImF0dHJpYnV0ZXMiPjwvdGQ+PHRkIGNsYXNzPSJkZWZhdWx0Ij48L3RkPjx0ZCBjbGFzcz0iZGVzY3JpcHRpb24gbGFzdCI+alF1ZXJ5IGV2ZW50IG9iamVjdDwvdGQ+PC90cj48dHIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJudW1iZXIgcmlnaHRfYm9yZGVyIj48ZGl2PjI8L2Rpdj48L3RkPjx0ZCBjbGFzcz0ibmFtZSI+bzwvdGQ+PHRkIGNsYXNzPSJ0eXBlIHR5cGUtcGFyYW0iPm9iamVjdDwvdGQ+PHRkIGNsYXNzPSJhdHRyaWJ1dGVzIj48L3RkPjx0ZCBjbGFzcz0iZGVmYXVsdCI+PC90ZD48dGQgY2xhc3M9ImRlc2NyaXB0aW9uIGxhc3QiPkV2ZW50IHBhcmFtZXRlcnMgZnJvbSBGaXhlZENvbHVtbnM8L3RkPjwvdHI+PHRyPjx0ZCBjbGFzcz0ibnVtYmVyIHJpZ2h0X2JvcmRlciI+PC90ZD48dGQgY2xhc3M9Im5hbWUiPm8ubGVmdENsb25lPC90ZD48dGQgY2xhc3M9InR5cGUgdHlwZS1wYXJhbSI+b2JqZWN0PC90ZD48dGQgY2xhc3M9ImF0dHJpYnV0ZXMiPjwvdGQ+PHRkIGNsYXNzPSJkZWZhdWx0Ij48L3RkPjx0ZCBjbGFzcz0iZGVzY3JpcHRpb24gbGFzdCI+SW5zdGFuY2UncyBvYmplY3QgZG9tLmNsb25lLmxlZnQgZm9yIGVhc3kgcmVmZXJlbmNlLiBUaGlzIG9iamVjdCBjb250YWlucyByZWZlcmVuY2VzIHRvIHRoZSBsZWZ0IGZpeGVkIGNsdW1uIGNvbHVtbidzIG5vZGVzPC90ZD48L3RyPjx0cj48dGQgY2xhc3M9Im51bWJlciByaWdodF9ib3JkZXIiPjwvdGQ+PHRkIGNsYXNzPSJuYW1lIj5vLnJpZ2h0Q2xvbmU8L3RkPjx0ZCBjbGFzcz0idHlwZSB0eXBlLXBhcmFtIj5vYmplY3Q8L3RkPjx0ZCBjbGFzcz0iYXR0cmlidXRlcyI+PC90ZD48dGQgY2xhc3M9ImRlZmF1bHQiPjwvdGQ+PHRkIGNsYXNzPSJkZXNjcmlwdGlvbiBsYXN0Ij5JbnN0YW5jZSdzIG9iamVjdCBkb20uY2xvbmUucmlnaHQgZm9yIGVhc3kgcmVmZXJlbmNlLiBUaGlzIG9iamVjdCBjb250YWlucyByZWZlcmVuY2VzIHRvIHRoZSByaWdodCBmaXhlZCBjbHVtbiBjb2x1bW4ncyBub2RlczwvdGQ+PC90cj4KCTwvdGJvZHk+CjwvdGFibGU+PC9kaXY+Cgo8L2RkPgo8L2Rpdj4KICAgCQkJCQk8L2Rpdj4KCQkJCQoJCTwvZGl2PgoKCQk8ZGl2IGNsYXNzPSJmd19mb290ZXIiPgoJCQlGaXhlZENvbHVtbnM6IENvcHlyaWdodCAyMDEwLTIwMTEgQWxsYW4gSmFyZGluZSwgYWxsIHJpZ2h0cyByZXNlcnZlZDxicj4KCgkJCURvY3VtZW50YXRpb24gZ2VuZXJhdGVkIGJ5IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9taWNtYXRoL0pTRG9jIj5KU0RvYyAzPC9hPiBvbgoJCQk4dGggQXVnIDIwMTIgLSAyMjo1MwoJCQl3aXRoIHRoZSA8YSBocmVmPSJodHRwOi8vZGF0YXRhYmxlcy5uZXQvIj5EYXRhVGFibGVzPC9hPiB0ZW1wbGF0ZS4KCQk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/docs/global.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTx0aXRsZT5HbG9iYWwgLSBkb2N1bWVudGF0aW9uPC90aXRsZT4KICAKCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgoJCQlAaW1wb3J0ICJtZWRpYS9jc3MvZG9jLmNzcyI7CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9zaENvcmUuY3NzIjsKCQkJQGltcG9ydCAibWVkaWEvY3NzL3NoVGhlbWVEYXRhVGFibGVzLmNzcyI7CgkJPC9zdHlsZT4KCQoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL3NoQ29yZS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvc2hCcnVzaEpTY3JpcHQuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvZG9jLmpzIj48L3NjcmlwdD4KCTwvaGVhZD4KCTxib2R5PgoJCTxkaXYgY2xhc3M9ImZ3X2NvbnRhaW5lciI+CgkJCQoJCQkJPGEgbmFtZT0idG9wIj48L2E+CgkJCQk8ZGl2IGNsYXNzPSJmd19oZWFkZXIiPgoJCQkJCTxoMSBjbGFzcz0icGFnZS10aXRsZSI+R2xvYmFsPC9oMT4KCQkJCQkKCQkJCQk8ZGl2IGNsYXNzPSJwYWdlLWluZm8iPgoJCQkJCQlGaXhlZENvbHVtbnMgdjIuMC4zIGRvY3VtZW50YXRpb24KCQkJCQk8L2Rpdj4KCQkJCTwvZGl2PgoKCQkJCQoKCQkJCTxkaXYgY2xhc3M9ImZ3X25hdiI+CgkJCQkJPGgyPk5hdmlnYXRpb248L2gyPgoJCQkJCTx1bD4KCQkJCQk8bGk+PGEgaHJlZj0iI3RvcCI+T3ZlcnZpZXc8L2E+PC9saT4KCQkJCQk8bGk+PGEgaHJlZj0iI3N1bW1hcnkiPlN1bW1hcnk8L2E+PGRpdj48YSBocmVmPSIjc3VtbWFyeV9wcm9wZXJ0aWVzIj5Qcm9wZXJ0aWVzPC9hPjwvZGl2PjwvbGk+PGxpPjxhIGhyZWY9IiNkZXRhaWxzIj5EZXRhaWxzPC9hPjxkaXY+PGEgaHJlZj0iI2RldGFpbHNfcHJvcGVydGllcyI+UHJvcGVydGllczwvYT48L2Rpdj48L2xpPjwvdWw+CgkJCQkJPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogMTBweDsiPgoJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzaG93X3ByaXZhdGUiIHZhbHVlPSIwIj4KCQkJCQkJPHNwYW4gaWQ9InByaXZhdGVfbGFiZWwiPkhpZGluZzwvc3Bhbj4gcHJpdmF0ZSBlbGVtZW50cyAKCQkJCQkJCSg8YSBpZD0icHJpdmF0ZV90b2dnbGUiIGhyZWY9IiI+dG9nZ2xlPC9hPikKCQkJCQkJPC9zcGFuPgoJCQkJCTwvZGl2PgoJCQkJCTxkaXY+CgkJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNob3dfZXh0ZW5kZWQiIHZhbHVlPSIxIj4KCQkJCQkJPHNwYW4gaWQ9ImV4dGVuZGVkX2xhYmVsIj5TaG93aW5nPC9zcGFuPiBleHRlbmRlZCBlbGVtZW50cyAKCQkJCQkJCSg8YSBpZD0iZXh0ZW5kZWRfdG9nZ2xlIiBocmVmPSIiPnRvZ2dsZTwvYT4pCgkJCQkJCTwvc3Bhbj4KCQkJCQk8L2Rpdj4KCQkJCTwvZGl2PgoKCQkJCTxkaXYgY2xhc3M9ImZ3X2NvbnRlbnQiPgoJCQkJCTxhIG5hbWU9Im92ZXJ2aWV3Ij48L2E+CgkJCQkJPGRpdiBjbGFzcz0iZG9jX292ZXJ2aWV3Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibmF2X2Jsb2NrZXIiPjwvZGl2PgoJCQkJCQk8ZGwgY2xhc3M9ImRldGFpbHMiPgoJCjwvZGw+CgoJCQkJCTwvZGl2PgoKCQkJCQkKCQkJCQk8ZGl2IGNsYXNzPSJkb2Nfc3VtbWFyeSI+CgkJCQkJCTxhIG5hbWU9InN1bW1hcnkiPjwvYT4KCQkJCQkJPGgyPlN1bW1hcnk8L2gyPgoKCQkJCQkJPGRpdiBjbGFzcz0iZG9jX2dyb3VwIj48YSBuYW1lPSJzdW1tYXJ5X3Byb3BlcnRpZXMiPjwvYT48aDMgY2xhc3M9InN1YnNlY3Rpb24tdGl0bGUiPlByb3BlcnRpZXM8L2gzPgoKPGRsPgogICAgPGR0IGNsYXNzPSIgIGV2ZW4iPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+Jmx0O2NvbnN0YW50PiA8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNDTEFTUyI+Q0xBU1M8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gOlN0cmluZzwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiAgZXZlbiI+TmFtZSBvZiB0aGlzIGNsYXNzPC9kZD4KPC9kbD48L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQkKCgoJCQkJCQoJCQkJCTxkaXYgY2xhc3M9ImRvY19kZXRhaWxzIj4KCQkJCQkJPGEgbmFtZT0iZGV0YWlscyI+PC9hPgoJCQkJCQk8aDI+RGV0YWlsczwvaDI+CgkJCQkJCTxkaXYgY2xhc3M9ImRvY19ncm91cCI+PGEgbmFtZT0iZGV0YWlsc19wcm9wZXJ0aWVzIj48L2E+PGgzIGNsYXNzPSJzdWJzZWN0aW9uLXRpdGxlIj5Qcm9wZXJ0aWVzPC9oMz4KPGRsPgogICAgPGR0IGNsYXNzPSIgIGV2ZW4iPjxhIG5hbWU9IkNMQVNTIj48L2E+PGEgbmFtZT0iQ0xBU1NfZGV0YWlscyI+PC9hPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+Jmx0O2NvbnN0YW50PiA8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNDTEFTUyI+Q0xBU1M8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gOlN0cmluZzwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiAgZXZlbiI+PHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5OYW1lIG9mIHRoaXMgY2xhc3M8L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8L2Rpdj48L2RkPgo8L2RsPjwvZGl2PgogICAJCQkJCTwvZGl2PgoJCQkJCgkJPC9kaXY+CgoJCTxkaXYgY2xhc3M9ImZ3X2Zvb3RlciI+CgkJCUZpeGVkQ29sdW1uczogQ29weXJpZ2h0IDIwMTAtMjAxMSBBbGxhbiBKYXJkaW5lLCBhbGwgcmlnaHRzIHJlc2VydmVkPGJyPgoKCQkJRG9jdW1lbnRhdGlvbiBnZW5lcmF0ZWQgYnkgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL21pY21hdGgvSlNEb2MiPkpTRG9jIDM8L2E+IG9uCgkJCTh0aCBBdWcgMjAxMiAtIDIyOjUzCgkJCXdpdGggdGhlIDxhIGhyZWY9Imh0dHA6Ly9kYXRhdGFibGVzLm5ldC8iPkRhdGFUYWJsZXM8L2E+IHRlbXBsYXRlLgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/docs/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTx0aXRsZT5UYWJsZSBvZiBDb250ZW50cyAtIGRvY3VtZW50YXRpb248L3RpdGxlPgogIAoJCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9kb2MuY3NzIjsKCQkJQGltcG9ydCAibWVkaWEvY3NzL3NoQ29yZS5jc3MiOwoJCQlAaW1wb3J0ICJtZWRpYS9jc3Mvc2hUaGVtZURhdGFUYWJsZXMuY3NzIjsKCQk8L3N0eWxlPgoJCgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvc2hDb3JlLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9zaEJydXNoSlNjcmlwdC5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvanF1ZXJ5LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9kb2MuanMiPjwvc2NyaXB0PgoJPC9oZWFkPgoJPGJvZHk+CgkJPGRpdiBjbGFzcz0iZndfY29udGFpbmVyIj4KCQkJPGEgbmFtZT0idG9wIj48L2E+CgkJCTxkaXYgY2xhc3M9ImZ3X2hlYWRlciI+CgkJCTwvZGl2PgoKCQkJPGRpdiBjbGFzcz0iZndfY29udGVudCI+CgkJCQk8aDMgY2xhc3M9InN1YnNlY3Rpb24tdGl0bGUiPlRhYmxlIG9mIENvbnRlbnRzPC9oMz4KCQkJCTxkbD4KCQkJCQk8ZHQ+PGEgaHJlZj0iRml4ZWRDb2x1bW5zLmh0bWwiPkZpeGVkQ29sdW1uczwvYT48L2R0PjxkZD5XaGVuIG1ha2luZyB1c2Ugb2YgRGF0YVRhYmxlcycgeC1heGlzIHNjcm9sbGluZyBmZWF0dXJlLCB5b3UgbWF5IHdpc2ggdG8gCmZpeCB0aGUgbGVmdCBtb3N0IGNvbHVtbiBpbiBwbGFjZS4gVGhpcyBwbHVnLWluIGZvciBEYXRhVGFibGVzIHByb3ZpZGVzIApleGFjdGx5IHRoaXMgb3B0aW9uIChub3RlIGZvciBub24tc2Nyb2xsaW5nIHRhYmxlcywgcGxlYXNlIHVzZSB0aGUgIApGaXhlZEhlYWRlciBwbHVnLWluLCB3aGljaCBjYW4gZml4IGhlYWRlcnMsIGZvb3RlcnMgYW5kIGNvbHVtbnMpLiBLZXkgCmZlYXR1cmVzIGluY2x1ZGU6CiAgPHVsIGNsYXNzPSJsaW1pdF9sZW5ndGgiPgogICAgPGxpPkZyZWV6ZXMgdGhlIGxlZnQgb3IgcmlnaHQgbW9zdCBjb2x1bW5zIHRvIHRoZSBzaWRlIG9mIHRoZSB0YWJsZTwvbGk+CiAgICA8bGk+T3B0aW9uIHRvIGZyZWV6ZSB0d28gb3IgbW9yZSBjb2x1bW5zPC9saT4KICAgIDxsaT5GdWxsIGludGVncmF0aW9uIHdpdGggRGF0YVRhYmxlcycgc2Nyb2xsaW5nIG9wdGlvbnM8L2xpPgogICAgPGxpPlNwZWVkIC0gRml4ZWRDb2x1bW5zIGlzIGZhc3QgaW4gaXRzIG9wZXJhdGlvbjwvbGk+CiAgPC91bD48L2RkPgoJCQkJPC9kbD4KICAgCQkJPC9kaXY+CgkJPC9kaXY+CgoJCTxkaXYgY2xhc3M9ImZ3X2Zvb3RlciI+CgkJCUZpeGVkQ29sdW1uczogQ29weXJpZ2h0IDIwMTAtMjAxMSBBbGxhbiBKYXJkaW5lLCBhbGwgcmlnaHRzIHJlc2VydmVkPGJyPgoKCQkJRG9jdW1lbnRhdGlvbiBnZW5lcmF0ZWQgYnkgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL21pY21hdGgvSlNEb2MiPkpTRG9jIDM8L2E+IG9uCgkJCTh0aCBBdWcgMjAxMiAtIDIyOjUzCgkJCXdpdGggdGhlIDxhIGhyZWY9Imh0dHA6Ly9kYXRhdGFibGVzLm5ldC8iPkRhdGFUYWJsZXM8L2E+IHRlbXBsYXRlLgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/docs/media/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/docs/media/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/docs/media/css/doc.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKQ29weXJpZ2h0IChjKSAyMDA2LCBZYWhvbyEgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpDb2RlIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0QgTGljZW5zZToKaHR0cDovL2RldmVsb3Blci55YWhvby5uZXQveXVpL2xpY2Vuc2UudHh0CnZlcnNpb246IDAuMTIuMAoqLwpib2R5LGRpdixkbCxkdCxkZCx1bCxvbCxsaSxoMSxoMixoMyxoNCxoNSxoNixwcmUsZm9ybSxmaWVsZHNldCxpbnB1dCx0ZXh0YXJlYSxwLGJsb2NrcXVvdGUsdGgsdGR7bWFyZ2luOjA7cGFkZGluZzowO30KdGFibGV7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO2JvcmRlci1zcGFjaW5nOjA7fQpmaWVsZHNldCxpbWd7Ym9yZGVyOjA7fQphZGRyZXNzLGNhcHRpb24sY2l0ZSxjb2RlLGRmbixlbSxzdHJvbmcsdGgsdmFye2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDt9Cm9sLHVsIHtsaXN0LXN0eWxlOm5vbmU7fQpjYXB0aW9uLHRoIHt0ZXh0LWFsaWduOmxlZnQ7fQpoMSxoMixoMyxoNCxoNSxoNntmb250LXNpemU6MTAwJTtmb250LXdlaWdodDpub3JtYWw7fQpxOmJlZm9yZSxxOmFmdGVye2NvbnRlbnQ6Jyc7fQphYmJyLGFjcm9ueW0ge2JvcmRlcjowO30KCgpodG1sLCBib2R5IHsKCW1hcmdpbjogMDsKCXBhZGRpbmc6IDA7Cgl3aWR0aDogMTAwJTsKCWZvbnQ6IDE0cHgvMS40NWVtICJMdWNpZGEgR3JhbmRlIiwgVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsKCWNvbG9yOiAjMTExOwp9CgpkaXYuZndfY29udGFpbmVyIHsKCXdpZHRoOiA5ODBweDsKCXBhZGRpbmctdG9wOiAyZW07CgltYXJnaW46IDAgYXV0bzsKfQoKZGl2LmZ3X2hlYWRlciB7Cglwb3NpdGlvbjogcmVsYXRpdmU7Cn0KCmRpdi5md19jb250ZW50IHsKCXBhZGRpbmctdG9wOiAyZW07Cn0KCmRpdi5md19mb290ZXIgewoJcGFkZGluZy10b3A6IDRlbTsKCWZvbnQtc2l6ZTogNzUlOwoJdGV4dC1hbGlnbjogY2VudGVyOwp9CgoKCi50eXBlLXBhcmFtIHsKCQp9CgoudHlwZS1hdHRyIHsKCWZsb2F0OiByaWdodDsKCWNvbG9yOiAjOTk5Owp9CgoudHlwZS1uYW1lIHsKCWZvbnQtd2VpZ2h0OiBib2xkOwp9CgoudHlwZS1zaWcgewoJY29sb3I6ICM5OTk7Cn0KCi50eXBlLXBhcmFtIHsKCWNvbG9yOiAjRkY5OTk5Owp9CgoudHlwZS1yZXR1cm4gewoJY29sb3I6ICNGRjgwODA7Cn0KCi50eXBlLWJyYWNlIHsKCWNvbG9yOiAjMTExOwp9CgouZXhhbXBsZS1jb2RlIHsKCW1hcmdpbi1sZWZ0OiAzMHB4Owp9Ci5leGFtcGxlLWNvZGUgdGQuY29kZSB7Cglib3JkZXItdG9wOiAxcHggc29saWQgIzRFNkNBMyAhaW1wb3J0YW50Owp9CgoudHlwZS1hdWdtZW50ZWQgewoJcG9zaXRpb246IGFic29sdXRlOwoJbGVmdDogOHB4OwoJdG9wOiAwOwp9CgpkdCwgZGQgewoJcGFkZGluZzogMC40ZW0gMTBweDsKfQoKZHQgewoJcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDsKfQoKZGQgewoJcG9zaXRpb246IHJlbGF0aXZlOwoJcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDsKCXBhZGRpbmctbGVmdDogM2VtOwp9CgpkdC5ldmVuLCBkZC5ldmVuIHsKCWJhY2tncm91bmQtY29sb3I6IHdoaXRlOwp9CgpkdC5vZGQsIGRkLm9kZCB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjRjJGMkYyOwp9CgpkaXYuZG9jX292ZXJ2aWV3IGRkLCBkaXYuZG9jX292ZXJ2aWV3IGR0IHsKCXBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50Owp9CgoKCi5kb2NfZGV0YWlscyBkdCwgLmRvY19kZXRhaWxzIGRkIHsKCXBhZGRpbmc6IDFlbSAxMHB4Owp9CgoucmlnaHRfYm9yZGVyIGRpdiB7Cgl3aWR0aDogMjBweDsKCXBhZGRpbmc6IDJweCAwLjVlbSAycHggMWVtOwoJdGV4dC1hbGlnbjogcmlnaHQ7Cn0KLnJpZ2h0X2JvcmRlciB7Cglib3JkZXItcmlnaHQ6IDNweCBzb2xpZCAjNEU2Q0EzOwp9Ci5ib3R0b21fYm9yZGVyIHsKCWJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNEU2Q0EzOwp9CgoKYSB7Cgl0ZXh0LWRlY29yYXRpb246IG5vbmU7Cgljb2xvcjogIzRFNkNBMzsKfQoKYTpob3ZlciB7Cgl0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKCWN1cnNvcjogcG9pbnRlcjsKCSpjdXJzb3I6IGhhbmQ7Cn0KCmRpdi5md19jb250ZW50IHVsIHsKCWxpc3Qtc3R5bGUtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2Fycm93LmpwZycpOwoJcGFkZGluZzogMC41ZW0gMCAwLjVlbSAyZW07Cn0KCi8qCmgyIHsKCWZvbnQtc2l6ZTogMS40ZW07CgltYXJnaW4tdG9wOiAyZW07Cglib3JkZXItYm90dG9tOiAzcHggc29saWQgIzgyOWFjNjsKCXBhZGRpbmctbGVmdDogNXB4Owp9CgpoMyB7Cglmb250LXNpemU6IDEuMmVtOwoJbWFyZ2luLXRvcDogMWVtOwoJYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNBNEI1RDU7CglwYWRkaW5nLWxlZnQ6IDVweDsKfQoqLwoKaDEgewoJZm9udC1zaXplOiAyZW07Cn0KCmgyIHsKCWZvbnQtc2l6ZTogMS42ZW07CglwYWRkaW5nLXRvcDogNXB4Owp9CgpoMi5hbmNlc3RvcnMgewoJZm9udC1zaXplOiAxNHB4OwoJbWFyZ2luOiAwOwp9CgpoMyB7Cglmb250LXNpemU6IDEuM2VtOwoJcGFkZGluZy10b3A6IDVweDsKCW1hcmdpbi1ib3R0b206IDVweDsKfQoKaDUgewoJcGFkZGluZy10b3A6IDZweDsKfQoKZGl2LmRvY19zdW1tYXJ5LCBkaXYuZG9jX2RldGFpbHMgewoJbWFyZ2luLXRvcDogMmVtOwoJY2xlYXI6IGJvdGg7Cn0KCmRpdi5kb2NfZ3JvdXAgewoJbWFyZ2luLXRvcDogMWVtOwoJYm9yZGVyLXRvcDogMXB4IHNvbGlkICNBNEI1RDU7Cglib3JkZXItbGVmdDogMXB4IHNvbGlkICNBNEI1RDU7CglwYWRkaW5nLWxlZnQ6IDEwcHg7Cn0KCmRpdi5leHRlbmRlZCB7CgltYXJnaW4tbGVmdDogMzBweDsKfQoKdGFibGUucGFyYW1zIHsKCW1hcmdpbi1sZWZ0OiAzMHB4OwoJd2lkdGg6IDk3JTsKfQoKdHIub2RkIHsKCWJhY2tncm91bmQtY29sb3I6IHdoaXRlOwp9Cgp0ci5ldmVuIHsKCWJhY2tncm91bmQtY29sb3I6ICNGOEY4Rjg7Cn0KCnRoLm5hbWUsCnRkLm5hbWUgewoJcGFkZGluZy1sZWZ0OiAxM3B4Owp9Cgp0ZC5udW1iZXIgewoJYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7Cgljb2xvcjogIzVDNUM1QzsKfQoKZGQub2RkIHRkLm51bWJlciB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjRjJGMkYyOwp9CgpwLnJldHVybnMgewoJbWFyZ2luLWxlZnQ6IDUlOwp9CgpkaXYucGFnZS1pbmZvIHsKCXBvc2l0aW9uOiBhYnNvbHV0ZTsKCXRvcDogMDsKCXJpZ2h0OiAwOwp9CgoKLnByaXZhdGUgewoJZGlzcGxheTogbm9uZTsKfQoKCgoKZGl2LmZ3X25hdiB7Cglwb3NpdGlvbjogZml4ZWQ7Cgl0b3A6IDYwcHg7CglyaWdodDogMzBweDsKCXdpZHRoOiAyNTBweDsKCWJvcmRlcjogMXB4IHNvbGlkICNBNEI1RDU7CgliYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKCXBhZGRpbmc6IDEwcHg7Cgl6LWluZGV4OiAxMDAxOwoJZm9udC1zaXplOiAxMnB4OwoJb3ZlcmZsb3c6IGhpZGRlbjsKfQoKZGl2LmZ3X25hdiBoMiB7CgltYXJnaW46IC0xMHB4IDAgMTBweCAtMTBweDsKCXdpZHRoOiAyNTBweDsKCXBhZGRpbmc6IDVweCAxMHB4OwoJYmFja2dyb3VuZC1jb2xvcjogI0E0QjVENTsKCWZvbnQtc2l6ZTogMTJweDsKCWN1cnNvcjogcG9pbnRlcjsKCSpjdXJzb3I6IGhhbmQ7Cn0KCmRpdi5md19uYXYgdWw+bGk+ZGl2IHsKCXBhZGRpbmc6IDAgMCAwIDFlbTsKfQoKZGl2Lm5hdl9ibG9ja2VyIHsKCWZsb2F0OiByaWdodDsKfQoKCgoKCgoKLmNzc19jbGVhciB7CgljbGVhcjogYm90aDsKCWhlaWdodDogMDsKCWxpbmUtaGVpZ2h0OiAwOwoJdmlzaWJpbGl0eTogaGlkZGVuOwp9CgouY3NzX3JpZ2h0IHsKCXRleHQtYWxpZ246IHJpZ2h0Owp9CgouY3NzX2NlbnRlciB7Cgl0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCi5jc3Nfc3BhY2luZyB7CgltYXJnaW4tdG9wOiAxLjVlbTsKfQoKLmNzc19zbWFsbCB7Cglmb250LXNpemU6IDc1JTsKCWxpbmUtaGVpZ2h0OiAxLjQ1ZW07Cn0KCi5jc3NfdnNtYWxsIHsKCWZvbnQtc2l6ZTogNjUlOwoJbGluZS1oZWlnaHQ6IDEuNDVlbTsKfQo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/docs/media/css/shCore.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIFN5bnRheEhpZ2hsaWdodGVyCiAqIGh0dHA6Ly9hbGV4Z29yYmF0Y2hldi5jb20vU3ludGF4SGlnaGxpZ2h0ZXIKICoKICogU3ludGF4SGlnaGxpZ2h0ZXIgaXMgZG9uYXRpb253YXJlLiBJZiB5b3UgYXJlIHVzaW5nIGl0LCBwbGVhc2UgZG9uYXRlLgogKiBodHRwOi8vYWxleGdvcmJhdGNoZXYuY29tL1N5bnRheEhpZ2hsaWdodGVyL2RvbmF0ZS5odG1sCiAqCiAqIEB2ZXJzaW9uCiAqIDMuMC44MyAoSnVseSAwMiAyMDEwKQogKiAKICogQGNvcHlyaWdodAogKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMCBBbGV4IEdvcmJhdGNoZXYuCiAqCiAqIEBsaWNlbnNlCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzLgogKi8KLnN5bnRheGhpZ2hsaWdodGVyIGEsCi5zeW50YXhoaWdobGlnaHRlciBkaXYsCi5zeW50YXhoaWdobGlnaHRlciBjb2RlLAouc3ludGF4aGlnaGxpZ2h0ZXIgdGFibGUsCi5zeW50YXhoaWdobGlnaHRlciB0YWJsZSB0ZCwKLnN5bnRheGhpZ2hsaWdodGVyIHRhYmxlIHRyLAouc3ludGF4aGlnaGxpZ2h0ZXIgdGFibGUgdGJvZHksCi5zeW50YXhoaWdobGlnaHRlciB0YWJsZSB0aGVhZCwKLnN5bnRheGhpZ2hsaWdodGVyIHRhYmxlIGNhcHRpb24sCi5zeW50YXhoaWdobGlnaHRlciB0ZXh0YXJlYSB7CiAgLW1vei1ib3JkZXItcmFkaXVzOiAwIDAgMCAwICFpbXBvcnRhbnQ7CiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwIDAgMCAwICFpbXBvcnRhbnQ7CiAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50OwogIGJvcmRlcjogMCAhaW1wb3J0YW50OwogIGJvdHRvbTogYXV0byAhaW1wb3J0YW50OwogIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7CiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7CiAgbGVmdDogYXV0byAhaW1wb3J0YW50OwogIGxpbmUtaGVpZ2h0OiAxLjFlbSAhaW1wb3J0YW50OwogIG1hcmdpbjogMCAhaW1wb3J0YW50OwogIG91dGxpbmU6IDAgIWltcG9ydGFudDsKICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50OwogIHBhZGRpbmc6IDAgIWltcG9ydGFudDsKICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7CiAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDsKICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7CiAgdG9wOiBhdXRvICFpbXBvcnRhbnQ7CiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lICFpbXBvcnRhbnQ7CiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDsKICBib3gtc2l6aW5nOiBjb250ZW50LWJveCAhaW1wb3J0YW50OwogIGZvbnQtZmFtaWx5OiAiQ29uc29sYXMiLCJNb25hY28iLCJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8iLCJDb3VyaWVyIE5ldyIsQ291cmllcixtb25vc3BhY2UgIWltcG9ydGFudDsKICBmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7CiAgZm9udC1zdHlsZTogbm9ybWFsICFpbXBvcnRhbnQ7CiAgZm9udC1zaXplOiAxZW0gIWltcG9ydGFudDsKICBtaW4taGVpZ2h0OiBpbmhlcml0ICFpbXBvcnRhbnQ7CiAgbWluLWhlaWdodDogYXV0byAhaW1wb3J0YW50Owp9Cgouc3ludGF4aGlnaGxpZ2h0ZXIgewogIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CiAgbWFyZ2luOiAxZW0gMCAxZW0gMCAhaW1wb3J0YW50OwogIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50OwogIG92ZXJmbG93OiBhdXRvICFpbXBvcnRhbnQ7CiAgZm9udC1zaXplOiAxZW0gIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIuc291cmNlIHsKICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC5ib2xkIHsKICBmb250LXdlaWdodDogYm9sZCAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuaXRhbGljIHsKICBmb250LXN0eWxlOiBpdGFsaWMgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgLmxpbmUgewogIHdoaXRlLXNwYWNlOiBwcmUgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgdGFibGUgewogIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIHRhYmxlIGNhcHRpb24gewogIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsKICBwYWRkaW5nOiAuNWVtIDAgMC41ZW0gMWVtICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIHRhYmxlIHRkLmNvZGUgewogIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIHRhYmxlIHRkLmNvZGUgLmNvbnRhaW5lciB7CiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIHRhYmxlIHRkLmNvZGUgLmNvbnRhaW5lciB0ZXh0YXJlYSB7CiAgYm94LXNpemluZzogYm9yZGVyLWJveCAhaW1wb3J0YW50OwogIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50OwogIGxlZnQ6IDAgIWltcG9ydGFudDsKICB0b3A6IDAgIWltcG9ydGFudDsKICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OwogIGhlaWdodDogMTAwJSAhaW1wb3J0YW50OwogIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50OwogIGJhY2tncm91bmQ6IHdoaXRlICFpbXBvcnRhbnQ7CiAgcGFkZGluZy1sZWZ0OiAxZW0gIWltcG9ydGFudDsKICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7CiAgd2hpdGUtc3BhY2U6IHByZSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciB0YWJsZSB0ZC5ndXR0ZXIgLmxpbmUgewogIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7CiAgcGFkZGluZzogMnB4IDAuNWVtIDJweCAxZW0gIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgdGFibGUgdGQuY29kZSAubGluZSB7CiAgcGFkZGluZzogMnB4IDFlbSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5ub2d1dHRlciB0ZC5jb2RlIC5jb250YWluZXIgdGV4dGFyZWEsIC5zeW50YXhoaWdobGlnaHRlci5ub2d1dHRlciB0ZC5jb2RlIC5saW5lIHsKICBwYWRkaW5nLWxlZnQ6IDBlbSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5zaG93IHsKICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5jb2xsYXBzZWQgdGFibGUgewogIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIuY29sbGFwc2VkIC50b29sYmFyIHsKICBwYWRkaW5nOiAwLjFlbSAwLjhlbSAwZW0gMC44ZW0gIWltcG9ydGFudDsKICBmb250LXNpemU6IDFlbSAhaW1wb3J0YW50OwogIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDsKICB3aWR0aDogYXV0byAhaW1wb3J0YW50OwogIGhlaWdodDogYXV0byAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5jb2xsYXBzZWQgLnRvb2xiYXIgc3BhbiB7CiAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7CiAgbWFyZ2luLXJpZ2h0OiAxZW0gIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIuY29sbGFwc2VkIC50b29sYmFyIHNwYW4gYSB7CiAgcGFkZGluZzogMCAhaW1wb3J0YW50OwogIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIuY29sbGFwc2VkIC50b29sYmFyIHNwYW4gYS5leHBhbmRTb3VyY2UgewogIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAudG9vbGJhciB7CiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7CiAgcmlnaHQ6IDFweCAhaW1wb3J0YW50OwogIHRvcDogMXB4ICFpbXBvcnRhbnQ7CiAgd2lkdGg6IDExcHggIWltcG9ydGFudDsKICBoZWlnaHQ6IDExcHggIWltcG9ydGFudDsKICBmb250LXNpemU6IDEwcHggIWltcG9ydGFudDsKICB6LWluZGV4OiAxMCAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAudG9vbGJhciBzcGFuLnRpdGxlIHsKICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgLnRvb2xiYXIgYSB7CiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsKICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsKICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsKICBwYWRkaW5nLXRvcDogMXB4ICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC50b29sYmFyIGEuZXhwYW5kU291cmNlIHsKICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLmllIHsKICBmb250LXNpemU6IC45ZW0gIWltcG9ydGFudDsKICBwYWRkaW5nOiAxcHggMCAxcHggMCAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5pZSAudG9vbGJhciB7CiAgbGluZS1oZWlnaHQ6IDhweCAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5pZSAudG9vbGJhciBhIHsKICBwYWRkaW5nLXRvcDogMHB4ICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5saW5lLmFsdDEgLmNvbnRlbnQsCi5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAubGluZS5hbHQyIC5jb250ZW50LAouc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLmxpbmUuaGlnaGxpZ2h0ZWQgLm51bWJlciwKLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5saW5lLmhpZ2hsaWdodGVkLmFsdDEgLmNvbnRlbnQsCi5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAubGluZS5oaWdobGlnaHRlZC5hbHQyIC5jb250ZW50IHsKICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5saW5lIC5udW1iZXIgewogIGNvbG9yOiAjYmJiYmJiICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5saW5lIC5jb250ZW50IHsKICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLnRvb2xiYXIgewogIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgYSB7CiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5wbGFpbiwgLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5wbGFpbiBhIHsKICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLmNvbW1lbnRzLCAuc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLmNvbW1lbnRzIGEgewogIGNvbG9yOiAjMDA4MjAwICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5zdHJpbmcsIC5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAuc3RyaW5nIGEgewogIGNvbG9yOiBibHVlICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5rZXl3b3JkIHsKICBjb2xvcjogIzAwNjY5OSAhaW1wb3J0YW50OwogIGZvbnQtd2VpZ2h0OiBib2xkICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5wcmVwcm9jZXNzb3IgewogIGNvbG9yOiBncmF5ICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC52YXJpYWJsZSB7CiAgY29sb3I6ICNhYTc3MDAgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLnZhbHVlIHsKICBjb2xvcjogIzAwOTkwMCAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAuZnVuY3Rpb25zIHsKICBjb2xvcjogI2ZmMTQ5MyAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAuY29uc3RhbnRzIHsKICBjb2xvcjogIzAwNjZjYyAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAuc2NyaXB0IHsKICBmb250LXdlaWdodDogYm9sZCAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAuY29sb3IxLCAuc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLmNvbG9yMSBhIHsKICBjb2xvcjogZ3JheSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAuY29sb3IyLCAuc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLmNvbG9yMiBhIHsKICBjb2xvcjogI2ZmMTQ5MyAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAuY29sb3IzLCAuc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLmNvbG9yMyBhIHsKICBjb2xvcjogcmVkICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5icmVhaywgLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5icmVhayBhIHsKICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsKfQo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/docs/media/css/shThemeDataTables.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIFN5bnRheEhpZ2hsaWdodGVyCiAqIGh0dHA6Ly9hbGV4Z29yYmF0Y2hldi5jb20vU3ludGF4SGlnaGxpZ2h0ZXIKICoKICogU3ludGF4SGlnaGxpZ2h0ZXIgaXMgZG9uYXRpb253YXJlLiBJZiB5b3UgYXJlIHVzaW5nIGl0LCBwbGVhc2UgZG9uYXRlLgogKiBodHRwOi8vYWxleGdvcmJhdGNoZXYuY29tL1N5bnRheEhpZ2hsaWdodGVyL2RvbmF0ZS5odG1sCiAqCiAqIEB2ZXJzaW9uCiAqIDMuMC44MyAoSnVseSAwMiAyMDEwKQogKiAKICogQGNvcHlyaWdodAogKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMCBBbGV4IEdvcmJhdGNoZXYuCiAqCiAqIEBsaWNlbnNlCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzLgogKi8KLnN5bnRheGhpZ2hsaWdodGVyIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50OwogIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50OwogIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC5saW5lLmFsdDEgewogIGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC5saW5lLmFsdDIgewogIGJhY2tncm91bmQtY29sb3I6ICNGOEY4RjggIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgLmxpbmUuaGlnaGxpZ2h0ZWQuYWx0MSwgLnN5bnRheGhpZ2hsaWdodGVyIC5saW5lLmhpZ2hsaWdodGVkLmFsdDIgewogIGJhY2tncm91bmQtY29sb3I6ICNlMGUwZTAgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgLmxpbmUuaGlnaGxpZ2h0ZWQubnVtYmVyIHsKICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgdGFibGUgY2FwdGlvbiB7CiAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC5ndXR0ZXIgewp9Ci5zeW50YXhoaWdobGlnaHRlciAuZ3V0dGVyIGRpdiB7CiAgY29sb3I6ICM1QzVDNUMgIWltcG9ydGFudDsKICB3aWR0aDogMjBweCAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuZ3V0dGVyIC5saW5lLmFsdDEsIC5zeW50YXhoaWdobGlnaHRlciAgLmd1dHRlciAubGluZS5hbHQyIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50Owp9Ci5vZGQgLnN5bnRheGhpZ2hsaWdodGVyIC5ndXR0ZXIgLmxpbmUuYWx0MSwgLm9kZCAuc3ludGF4aGlnaGxpZ2h0ZXIgIC5ndXR0ZXIgLmxpbmUuYWx0MiB7CiAgYmFja2dyb3VuZC1jb2xvcjogI0YyRjJGMiAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuZ3V0dGVyIC5saW5lIHsKICBib3JkZXItcmlnaHQ6IDNweCBzb2xpZCAjNEU2Q0EzICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC5ndXR0ZXIgLmxpbmUuaGlnaGxpZ2h0ZWQgewogIGJhY2tncm91bmQtY29sb3I6ICM0RTZDQTMgIWltcG9ydGFudDsKICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLmxpbmUgLmNvbnRlbnQgewogIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5jb2xsYXBzZWQgewogIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLmNvbGxhcHNlZCAudG9vbGJhciB7CiAgY29sb3I6IGJsdWUgIWltcG9ydGFudDsKICBiYWNrZ3JvdW5kOiB3aGl0ZSAhaW1wb3J0YW50OwogIGJvcmRlcjogMXB4IHNvbGlkICM0RTZDQTMgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIuY29sbGFwc2VkIC50b29sYmFyIGEgewogIGNvbG9yOiBibHVlICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLmNvbGxhcHNlZCAudG9vbGJhciBhOmhvdmVyIHsKICBjb2xvcjogcmVkICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC50b29sYmFyIHsKICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDsKICBiYWNrZ3JvdW5kOiAjNEU2Q0EzICFpbXBvcnRhbnQ7CiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC50b29sYmFyIGEgewogIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAudG9vbGJhciBhOmhvdmVyIHsKICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgLnBsYWluLCAuc3ludGF4aGlnaGxpZ2h0ZXIgLnBsYWluIGEgewogIGNvbG9yOiBibGFjayAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuY29tbWVudHMsIC5zeW50YXhoaWdobGlnaHRlciAuY29tbWVudHMgYSB7CiAgY29sb3I6ICMwMDgyMDAgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgLnN0cmluZywgLnN5bnRheGhpZ2hsaWdodGVyIC5zdHJpbmcgYSB7CiAgY29sb3I6IGJsdWUgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgLmtleXdvcmQgewogIGNvbG9yOiAjMDA2Njk5ICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC5wcmVwcm9jZXNzb3IgewogIGNvbG9yOiBncmF5ICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC52YXJpYWJsZSB7CiAgY29sb3I6ICNhYTc3MDAgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgLnZhbHVlIHsKICBjb2xvcjogIzAwOTkwMCAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuZnVuY3Rpb25zIHsKICBjb2xvcjogI2ZmMTQ5MyAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuY29uc3RhbnRzIHsKICBjb2xvcjogIzAwNjZjYyAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuc2NyaXB0IHsKICBmb250LXdlaWdodDogYm9sZCAhaW1wb3J0YW50OwogIGNvbG9yOiAjMDA2Njk5ICFpbXBvcnRhbnQ7CiAgYmFja2dyb3VuZC1jb2xvcjogbm9uZSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuY29sb3IxLCAuc3ludGF4aGlnaGxpZ2h0ZXIgLmNvbG9yMSBhIHsKICBjb2xvcjogZ3JheSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuY29sb3IyLCAuc3ludGF4aGlnaGxpZ2h0ZXIgLmNvbG9yMiBhIHsKICBjb2xvcjogI2ZmMTQ5MyAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuY29sb3IzLCAuc3ludGF4aGlnaGxpZ2h0ZXIgLmNvbG9yMyBhIHsKICBjb2xvcjogcmVkICFpbXBvcnRhbnQ7Cn0KCi5zeW50YXhoaWdobGlnaHRlciAua2V5d29yZCB7CiAgZm9udC13ZWlnaHQ6IGJvbGQgIWltcG9ydGFudDsKfQo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/docs/media/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/docs/media/images/arrow.jpg</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAZAAA/+4ADkFkb2JlAGTAAAAAAf/bAIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMDAwMDAwMDAwEBAQEBAQECAQECAgIBAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD/8AAEQgABwAIAwERAAIRAQMRAf/EAGYAAQAAAAAAAAAAAAAAAAAAAAoBAQEAAAAAAAAAAAAAAAAAAAUHEAABAgYDAQAAAAAAAAAAAAAFAhYDEwQUBgcREhUXEQABAwQBBAMAAAAAAAAAAAABAhIDESETBCNBIkJSQxQG/9oADAMBAAIRAxEAPwBitOH3pEsWqvIhlzuSoLapc+QwijU1Qjo+/q0utW7MGySZGbANFwYG3Q/kjRyU+dRVzfng/wC6Il00gnZxobk2fhOvbjmRTnltFJSTiU45H1q0w/MEnsAkbZy/Ex+qhQuN0q6oFTT/2Q==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/docs/media/images/extended.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAFoTx1HAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NEZGQzY2NkQ1MDJDMTFFMEI1RDE5NDU4MEJERUNCNjciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NEZGQzY2NkU1MDJDMTFFMEI1RDE5NDU4MEJERUNCNjciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowNkRFRjRFQzUwMDIxMUUwQjVEMTk0NTgwQkRFQ0I2NyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0RkZDNjY2QzUwMkMxMUUwQjVEMTk0NTgwQkRFQ0I2NyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PlMwMW8AAAEZSURBVHjaYvz//z8DCDCBiN7e3v8AAcQIF5k/fz6YBRBADCCRXbt2/c/Pz/8PYoPVPnnyhEFWVhasACCA4HpQTIJzUGRgACCAwKbCcFNT039kPthAkP3v3r0DK7558ybYttraWka4bcgKiouLGUE0QAChOAUdwB0QFRX1H4SRJcE6Qe4WEhJiuHfvHliwubkZbCzT7t27/yspKcFVs7GxMYDEULwyb968/zU1NSheYWLAA/BKAgQYSggh48jIyP+45OChhwyAvvgvIyPDAAqsDx8+oPgMIwhgIaupqcnw+fNncETDNIL4MDBhwgRGDI0wAEs7MI0CAgLwKCI+AMgOOTyABV0A5MTHjx8zfPv2jeHLly8MIH9jAwDul9vYyKpTggAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/docs/media/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/docs/media/js/doc.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CihmdW5jdGlvbigpIHsKCnZhciBzaG93aW5nTmF2ID0gdHJ1ZTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIganFOYXYgPSAkKCdkaXYuZndfbmF2Jyk7CglqcU5hdi5jc3MoJ3JpZ2h0JywgKCQod2luZG93KS53aWR0aCgpIC0gJCgnZGl2LmZ3X2NvbnRhaW5lcicpLndpZHRoKCkpIC8yKTsKCgl2YXIgbiA9ICQoJ2Rpdi5uYXZfYmxvY2tlcicpWzBdOwoJbi5zdHlsZS5oZWlnaHQgPSAkKGpxTmF2KS5vdXRlckhlaWdodCgpKyJweCI7CgluLnN0eWxlLndpZHRoID0gKCQoanFOYXYpLm91dGVyV2lkdGgoKSsyMCkrInB4IjsKCglTeW50YXhIaWdobGlnaHRlci5oaWdobGlnaHQoKTsKCgkkKCcjcHJpdmF0ZV90b2dnbGUnKS5jbGljayggZnVuY3Rpb24gKCkgewoJCWlmICggJCgnaW5wdXRbbmFtZT1zaG93X3ByaXZhdGVdJykudmFsKCkgPT0gMCApIHsKCQkJJCgnaW5wdXRbbmFtZT1zaG93X3ByaXZhdGVdJykudmFsKCAxICk7CgkJCSQoJyNwcml2YXRlX2xhYmVsJykuaHRtbCgnU2hvd2luZycpOwoJCQkkKCcucHJpdmF0ZScpLmNzcygnZGlzcGxheScsICdibG9jaycpOwoJCX0gZWxzZSB7CgkJCSQoJ2lucHV0W25hbWU9c2hvd19wcml2YXRlXScpLnZhbCggMCApOwoJCQkkKCcjcHJpdmF0ZV9sYWJlbCcpLmh0bWwoJ0hpZGluZycpOwoJCQkkKCcucHJpdmF0ZScpLmNzcygnZGlzcGxheScsICdub25lJyk7CgkJfQoJCWZuV3JpdGVDb29raWUoKTsKCQlyZXR1cm4gZmFsc2U7Cgl9ICk7CgoJJCgnI2V4dGVuZGVkX3RvZ2dsZScpLmNsaWNrKCBmdW5jdGlvbiAoKSB7CgkJaWYgKCAkKCdpbnB1dFtuYW1lPXNob3dfZXh0ZW5kZWRdJykudmFsKCkgPT0gMCApIHsKCQkJJCgnaW5wdXRbbmFtZT1zaG93X2V4dGVuZGVkXScpLnZhbCggMSApOwoJCQkkKCcjZXh0ZW5kZWRfbGFiZWwnKS5odG1sKCdTaG93aW5nJyk7CgkJCSQoJy5hdWdtZW50ZWQnKS5jc3MoJ2Rpc3BsYXknLCAnYmxvY2snKTsKCQl9IGVsc2UgewoJCQkkKCdpbnB1dFtuYW1lPXNob3dfZXh0ZW5kZWRdJykudmFsKCAwICk7CgkJCSQoJyNleHRlbmRlZF9sYWJlbCcpLmh0bWwoJ0hpZGluZycpOwoJCQkkKCcuYXVnbWVudGVkJykuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTsKCQl9CgkJZm5Xcml0ZUNvb2tpZSgpOwoJCXJldHVybiBmYWxzZTsKCX0gKTsKCgl2YXIgc2F2ZWRIZWlnaHQgPSAkKGpxTmF2KS5oZWlnaHQoKTsKCSQoJ2Rpdi5md19uYXYgaDInKS5jbGljayggZnVuY3Rpb24gKCkgewoJCWlmICggc2hvd2luZ05hdiApIHsKCQkJJCgnZGl2LmZ3X25hdicpLmFuaW1hdGUoIHsKCQkJCSJoZWlnaHQiOiAxMCwKCQkJCSJvcGFjaXR5IjogMC4zCgkJCX0gKTsKCQkJc2hvd2luZ05hdiA9IGZhbHNlOwoJCX0gZWxzZSB7CgkJCSQoJ2Rpdi5md19uYXYnKS5hbmltYXRlKCB7CgkJCQkiaGVpZ2h0Ijogc2F2ZWRIZWlnaHQsCgkJCQkib3BhY2l0eSI6IDEKCQkJfSApOwoJCQlzaG93aW5nTmF2ID0gdHJ1ZTsKCQl9CgkJZm5Xcml0ZUNvb2tpZSgpOwoJfSApOwoKCXZhciBjb29raWUgPSBmblJlYWRDb29raWUoICdTcHJ5TWVkaWFfSlNEb2MnICk7CglpZiAoIGNvb2tpZSAhPSBudWxsICkgewoJCXZhciBhID0gY29va2llLnNwbGl0KCctJyk7CgkJaWYgKCBhWzBdID09IDEgKSB7CgkJCSQoJyNwcml2YXRlX3RvZ2dsZScpLmNsaWNrKCk7CgkJfQoJCWlmICggYVsxXSA9PSAwICkgewoJCQkkKCcjZXh0ZW5kZWRfdG9nZ2xlJykuY2xpY2soKTsKCQl9CgkJaWYgKCBhWzJdID09ICdmYWxzZScgKSB7CgkJCSQoJ2Rpdi5md19uYXYnKS5jc3MoJ2hlaWdodCcsIDEwKS5jc3MoJ29wYWNpdHknLCAwLjMpOwoJCQlzaG93aW5nTmF2ID0gZmFsc2U7CgkJfQoJfQp9ICk7CgoKZnVuY3Rpb24gZm5Xcml0ZUNvb2tpZSgpCnsKCXZhciBzVmFsID0gCgkJJCgnaW5wdXRbbmFtZT1zaG93X3ByaXZhdGVdJykudmFsKCkrJy0nKwoJCSQoJ2lucHV0W25hbWU9c2hvd19leHRlbmRlZF0nKS52YWwoKSsnLScrCgkJc2hvd2luZ05hdjsKCQoJZm5DcmVhdGVDb29raWUoICdTcHJ5TWVkaWFfSlNEb2MnLCBzVmFsICk7Cn0KCgpmdW5jdGlvbiBmbkNyZWF0ZUNvb2tpZSggc05hbWUsIHNWYWx1ZSApCnsKCXZhciBpRGF5cyA9IDM2NTsKCXZhciBkYXRlID0gbmV3IERhdGUoKTsKCWRhdGUuc2V0VGltZSggZGF0ZS5nZXRUaW1lKCkrKGlEYXlzKjI0KjYwKjYwKjEwMDApICk7Cgl2YXIgc0V4cGlyZXMgPSAiOyBleHBpcmVzPSIrZGF0ZS50b0dNVFN0cmluZygpOwoJCglkb2N1bWVudC5jb29raWUgPSBzTmFtZSsiPSIrc1ZhbHVlK3NFeHBpcmVzKyI7IHBhdGg9LyI7Cn0KCgpmdW5jdGlvbiBmblJlYWRDb29raWUoIHNOYW1lICkKewoJdmFyIHNOYW1lRVEgPSBzTmFtZSArICI9IjsKCXZhciBzQ29va2llQ29udGVudHMgPSBkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKTsKCQoJZm9yKCB2YXIgaT0wIDsgaTxzQ29va2llQ29udGVudHMubGVuZ3RoIDsgaSsrICkgewoJCXZhciBjID0gc0Nvb2tpZUNvbnRlbnRzW2ldOwoJCQoJCXdoaWxlIChjLmNoYXJBdCgwKT09JyAnKSB7CgkJCWMgPSBjLnN1YnN0cmluZygxLGMubGVuZ3RoKTsKCQl9CgkJCgkJaWYgKGMuaW5kZXhPZihzTmFtZUVRKSA9PSAwKSB7CgkJCXJldHVybiBjLnN1YnN0cmluZyhzTmFtZUVRLmxlbmd0aCxjLmxlbmd0aCk7CgkJfQoJfQoJCglyZXR1cm4gbnVsbDsKfQoKfSkoKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/docs/media/js/jquery.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohCiAqIGpRdWVyeSBKYXZhU2NyaXB0IExpYnJhcnkgdjEuNS4xCiAqIGh0dHA6Ly9qcXVlcnkuY29tLwogKgogKiBDb3B5cmlnaHQgMjAxMSwgSm9obiBSZXNpZwogKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQogKgogKiBJbmNsdWRlcyBTaXp6bGUuanMKICogaHR0cDovL3NpenpsZWpzLmNvbS8KICogQ29weXJpZ2h0IDIwMTEsIFRoZSBEb2pvIEZvdW5kYXRpb24KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCwgQlNELCBhbmQgR1BMIExpY2Vuc2VzLgogKgogKiBEYXRlOiBXZWQgRmViIDIzIDEzOjU1OjI5IDIwMTEgLTA1MDAKICovCihmdW5jdGlvbiggd2luZG93LCB1bmRlZmluZWQgKSB7CgovLyBVc2UgdGhlIGNvcnJlY3QgZG9jdW1lbnQgYWNjb3JkaW5nbHkgd2l0aCB3aW5kb3cgYXJndW1lbnQgKHNhbmRib3gpCnZhciBkb2N1bWVudCA9IHdpbmRvdy5kb2N1bWVudDsKdmFyIGpRdWVyeSA9IChmdW5jdGlvbigpIHsKCi8vIERlZmluZSBhIGxvY2FsIGNvcHkgb2YgalF1ZXJ5CnZhciBqUXVlcnkgPSBmdW5jdGlvbiggc2VsZWN0b3IsIGNvbnRleHQgKSB7CgkJLy8gVGhlIGpRdWVyeSBvYmplY3QgaXMgYWN0dWFsbHkganVzdCB0aGUgaW5pdCBjb25zdHJ1Y3RvciAnZW5oYW5jZWQnCgkJcmV0dXJuIG5ldyBqUXVlcnkuZm4uaW5pdCggc2VsZWN0b3IsIGNvbnRleHQsIHJvb3RqUXVlcnkgKTsKCX0sCgoJLy8gTWFwIG92ZXIgalF1ZXJ5IGluIGNhc2Ugb2Ygb3ZlcndyaXRlCglfalF1ZXJ5ID0gd2luZG93LmpRdWVyeSwKCgkvLyBNYXAgb3ZlciB0aGUgJCBpbiBjYXNlIG9mIG92ZXJ3cml0ZQoJXyQgPSB3aW5kb3cuJCwKCgkvLyBBIGNlbnRyYWwgcmVmZXJlbmNlIHRvIHRoZSByb290IGpRdWVyeShkb2N1bWVudCkKCXJvb3RqUXVlcnksCgoJLy8gQSBzaW1wbGUgd2F5IHRvIGNoZWNrIGZvciBIVE1MIHN0cmluZ3Mgb3IgSUQgc3RyaW5ncwoJLy8gKGJvdGggb2Ygd2hpY2ggd2Ugb3B0aW1pemUgZm9yKQoJcXVpY2tFeHByID0gL14oPzpbXjxdKig8W1x3XFddKz4pW14+XSokfCMoW1x3XC1dKykkKS8sCgoJLy8gQ2hlY2sgaWYgYSBzdHJpbmcgaGFzIGEgbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVyIGluIGl0Cglybm90d2hpdGUgPSAvXFMvLAoKCS8vIFVzZWQgZm9yIHRyaW1taW5nIHdoaXRlc3BhY2UKCXRyaW1MZWZ0ID0gL15ccysvLAoJdHJpbVJpZ2h0ID0gL1xzKyQvLAoKCS8vIENoZWNrIGZvciBkaWdpdHMKCXJkaWdpdCA9IC9cZC8sCgoJLy8gTWF0Y2ggYSBzdGFuZGFsb25lIHRhZwoJcnNpbmdsZVRhZyA9IC9ePChcdyspXHMqXC8/Pig/OjxcL1wxPik/JC8sCgoJLy8gSlNPTiBSZWdFeHAKCXJ2YWxpZGNoYXJzID0gL15bXF0sOnt9XHNdKiQvLAoJcnZhbGlkZXNjYXBlID0gL1xcKD86WyJcXFwvYmZucnRdfHVbMC05YS1mQS1GXXs0fSkvZywKCXJ2YWxpZHRva2VucyA9IC8iW14iXFxcblxyXSoifHRydWV8ZmFsc2V8bnVsbHwtP1xkKyg/OlwuXGQqKT8oPzpbZUVdWytcLV0/XGQrKT8vZywKCXJ2YWxpZGJyYWNlcyA9IC8oPzpefDp8LCkoPzpccypcWykrL2csCgoJLy8gVXNlcmFnZW50IFJlZ0V4cAoJcndlYmtpdCA9IC8od2Via2l0KVsgXC9dKFtcdy5dKykvLAoJcm9wZXJhID0gLyhvcGVyYSkoPzouKnZlcnNpb24pP1sgXC9dKFtcdy5dKykvLAoJcm1zaWUgPSAvKG1zaWUpIChbXHcuXSspLywKCXJtb3ppbGxhID0gLyhtb3ppbGxhKSg/Oi4qPyBydjooW1x3Ll0rKSk/LywKCgkvLyBLZWVwIGEgVXNlckFnZW50IHN0cmluZyBmb3IgdXNlIHdpdGggalF1ZXJ5LmJyb3dzZXIKCXVzZXJBZ2VudCA9IG5hdmlnYXRvci51c2VyQWdlbnQsCgoJLy8gRm9yIG1hdGNoaW5nIHRoZSBlbmdpbmUgYW5kIHZlcnNpb24gb2YgdGhlIGJyb3dzZXIKCWJyb3dzZXJNYXRjaCwKCgkvLyBIYXMgdGhlIHJlYWR5IGV2ZW50cyBhbHJlYWR5IGJlZW4gYm91bmQ/CglyZWFkeUJvdW5kID0gZmFsc2UsCgoJLy8gVGhlIGRlZmVycmVkIHVzZWQgb24gRE9NIHJlYWR5CglyZWFkeUxpc3QsCgoJLy8gUHJvbWlzZSBtZXRob2RzCglwcm9taXNlTWV0aG9kcyA9ICJ0aGVuIGRvbmUgZmFpbCBpc1Jlc29sdmVkIGlzUmVqZWN0ZWQgcHJvbWlzZSIuc3BsaXQoICIgIiApLAoKCS8vIFRoZSByZWFkeSBldmVudCBoYW5kbGVyCglET01Db250ZW50TG9hZGVkLAoKCS8vIFNhdmUgYSByZWZlcmVuY2UgdG8gc29tZSBjb3JlIG1ldGhvZHMKCXRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZywKCWhhc093biA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksCglwdXNoID0gQXJyYXkucHJvdG90eXBlLnB1c2gsCglzbGljZSA9IEFycmF5LnByb3RvdHlwZS5zbGljZSwKCXRyaW0gPSBTdHJpbmcucHJvdG90eXBlLnRyaW0sCglpbmRleE9mID0gQXJyYXkucHJvdG90eXBlLmluZGV4T2YsCgoJLy8gW1tDbGFzc11dIC0+IHR5cGUgcGFpcnMKCWNsYXNzMnR5cGUgPSB7fTsKCmpRdWVyeS5mbiA9IGpRdWVyeS5wcm90b3R5cGUgPSB7Cgljb25zdHJ1Y3RvcjogalF1ZXJ5LAoJaW5pdDogZnVuY3Rpb24oIHNlbGVjdG9yLCBjb250ZXh0LCByb290alF1ZXJ5ICkgewoJCXZhciBtYXRjaCwgZWxlbSwgcmV0LCBkb2M7CgoJCS8vIEhhbmRsZSAkKCIiKSwgJChudWxsKSwgb3IgJCh1bmRlZmluZWQpCgkJaWYgKCAhc2VsZWN0b3IgKSB7CgkJCXJldHVybiB0aGlzOwoJCX0KCgkJLy8gSGFuZGxlICQoRE9NRWxlbWVudCkKCQlpZiAoIHNlbGVjdG9yLm5vZGVUeXBlICkgewoJCQl0aGlzLmNvbnRleHQgPSB0aGlzWzBdID0gc2VsZWN0b3I7CgkJCXRoaXMubGVuZ3RoID0gMTsKCQkJcmV0dXJuIHRoaXM7CgkJfQoKCQkvLyBUaGUgYm9keSBlbGVtZW50IG9ubHkgZXhpc3RzIG9uY2UsIG9wdGltaXplIGZpbmRpbmcgaXQKCQlpZiAoIHNlbGVjdG9yID09PSAiYm9keSIgJiYgIWNvbnRleHQgJiYgZG9jdW1lbnQuYm9keSApIHsKCQkJdGhpcy5jb250ZXh0ID0gZG9jdW1lbnQ7CgkJCXRoaXNbMF0gPSBkb2N1bWVudC5ib2R5OwoJCQl0aGlzLnNlbGVjdG9yID0gImJvZHkiOwoJCQl0aGlzLmxlbmd0aCA9IDE7CgkJCXJldHVybiB0aGlzOwoJCX0KCgkJLy8gSGFuZGxlIEhUTUwgc3RyaW5ncwoJCWlmICggdHlwZW9mIHNlbGVjdG9yID09PSAic3RyaW5nIiApIHsKCQkJLy8gQXJlIHdlIGRlYWxpbmcgd2l0aCBIVE1MIHN0cmluZyBvciBhbiBJRD8KCQkJbWF0Y2ggPSBxdWlja0V4cHIuZXhlYyggc2VsZWN0b3IgKTsKCgkJCS8vIFZlcmlmeSBhIG1hdGNoLCBhbmQgdGhhdCBubyBjb250ZXh0IHdhcyBzcGVjaWZpZWQgZm9yICNpZAoJCQlpZiAoIG1hdGNoICYmIChtYXRjaFsxXSB8fCAhY29udGV4dCkgKSB7CgoJCQkJLy8gSEFORExFOiAkKGh0bWwpIC0+ICQoYXJyYXkpCgkJCQlpZiAoIG1hdGNoWzFdICkgewoJCQkJCWNvbnRleHQgPSBjb250ZXh0IGluc3RhbmNlb2YgalF1ZXJ5ID8gY29udGV4dFswXSA6IGNvbnRleHQ7CgkJCQkJZG9jID0gKGNvbnRleHQgPyBjb250ZXh0Lm93bmVyRG9jdW1lbnQgfHwgY29udGV4dCA6IGRvY3VtZW50KTsKCgkJCQkJLy8gSWYgYSBzaW5nbGUgc3RyaW5nIGlzIHBhc3NlZCBpbiBhbmQgaXQncyBhIHNpbmdsZSB0YWcKCQkJCQkvLyBqdXN0IGRvIGEgY3JlYXRlRWxlbWVudCBhbmQgc2tpcCB0aGUgcmVzdAoJCQkJCXJldCA9IHJzaW5nbGVUYWcuZXhlYyggc2VsZWN0b3IgKTsKCgkJCQkJaWYgKCByZXQgKSB7CgkJCQkJCWlmICggalF1ZXJ5LmlzUGxhaW5PYmplY3QoIGNvbnRleHQgKSApIHsKCQkJCQkJCXNlbGVjdG9yID0gWyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCByZXRbMV0gKSBdOwoJCQkJCQkJalF1ZXJ5LmZuLmF0dHIuY2FsbCggc2VsZWN0b3IsIGNvbnRleHQsIHRydWUgKTsKCgkJCQkJCX0gZWxzZSB7CgkJCQkJCQlzZWxlY3RvciA9IFsgZG9jLmNyZWF0ZUVsZW1lbnQoIHJldFsxXSApIF07CgkJCQkJCX0KCgkJCQkJfSBlbHNlIHsKCQkJCQkJcmV0ID0galF1ZXJ5LmJ1aWxkRnJhZ21lbnQoIFsgbWF0Y2hbMV0gXSwgWyBkb2MgXSApOwoJCQkJCQlzZWxlY3RvciA9IChyZXQuY2FjaGVhYmxlID8galF1ZXJ5LmNsb25lKHJldC5mcmFnbWVudCkgOiByZXQuZnJhZ21lbnQpLmNoaWxkTm9kZXM7CgkJCQkJfQoKCQkJCQlyZXR1cm4galF1ZXJ5Lm1lcmdlKCB0aGlzLCBzZWxlY3RvciApOwoKCQkJCS8vIEhBTkRMRTogJCgiI2lkIikKCQkJCX0gZWxzZSB7CgkJCQkJZWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCBtYXRjaFsyXSApOwoKCQkJCQkvLyBDaGVjayBwYXJlbnROb2RlIHRvIGNhdGNoIHdoZW4gQmxhY2tiZXJyeSA0LjYgcmV0dXJucwoJCQkJCS8vIG5vZGVzIHRoYXQgYXJlIG5vIGxvbmdlciBpbiB0aGUgZG9jdW1lbnQgIzY5NjMKCQkJCQlpZiAoIGVsZW0gJiYgZWxlbS5wYXJlbnROb2RlICkgewoJCQkJCQkvLyBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgSUUgYW5kIE9wZXJhIHJldHVybiBpdGVtcwoJCQkJCQkvLyBieSBuYW1lIGluc3RlYWQgb2YgSUQKCQkJCQkJaWYgKCBlbGVtLmlkICE9PSBtYXRjaFsyXSApIHsKCQkJCQkJCXJldHVybiByb290alF1ZXJ5LmZpbmQoIHNlbGVjdG9yICk7CgkJCQkJCX0KCgkJCQkJCS8vIE90aGVyd2lzZSwgd2UgaW5qZWN0IHRoZSBlbGVtZW50IGRpcmVjdGx5IGludG8gdGhlIGpRdWVyeSBvYmplY3QKCQkJCQkJdGhpcy5sZW5ndGggPSAxOwoJCQkJCQl0aGlzWzBdID0gZWxlbTsKCQkJCQl9CgoJCQkJCXRoaXMuY29udGV4dCA9IGRvY3VtZW50OwoJCQkJCXRoaXMuc2VsZWN0b3IgPSBzZWxlY3RvcjsKCQkJCQlyZXR1cm4gdGhpczsKCQkJCX0KCgkJCS8vIEhBTkRMRTogJChleHByLCAkKC4uLikpCgkJCX0gZWxzZSBpZiAoICFjb250ZXh0IHx8IGNvbnRleHQuanF1ZXJ5ICkgewoJCQkJcmV0dXJuIChjb250ZXh0IHx8IHJvb3RqUXVlcnkpLmZpbmQoIHNlbGVjdG9yICk7CgoJCQkvLyBIQU5ETEU6ICQoZXhwciwgY29udGV4dCkKCQkJLy8gKHdoaWNoIGlzIGp1c3QgZXF1aXZhbGVudCB0bzogJChjb250ZXh0KS5maW5kKGV4cHIpCgkJCX0gZWxzZSB7CgkJCQlyZXR1cm4gdGhpcy5jb25zdHJ1Y3RvciggY29udGV4dCApLmZpbmQoIHNlbGVjdG9yICk7CgkJCX0KCgkJLy8gSEFORExFOiAkKGZ1bmN0aW9uKQoJCS8vIFNob3J0Y3V0IGZvciBkb2N1bWVudCByZWFkeQoJCX0gZWxzZSBpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCBzZWxlY3RvciApICkgewoJCQlyZXR1cm4gcm9vdGpRdWVyeS5yZWFkeSggc2VsZWN0b3IgKTsKCQl9CgoJCWlmIChzZWxlY3Rvci5zZWxlY3RvciAhPT0gdW5kZWZpbmVkKSB7CgkJCXRoaXMuc2VsZWN0b3IgPSBzZWxlY3Rvci5zZWxlY3RvcjsKCQkJdGhpcy5jb250ZXh0ID0gc2VsZWN0b3IuY29udGV4dDsKCQl9CgoJCXJldHVybiBqUXVlcnkubWFrZUFycmF5KCBzZWxlY3RvciwgdGhpcyApOwoJfSwKCgkvLyBTdGFydCB3aXRoIGFuIGVtcHR5IHNlbGVjdG9yCglzZWxlY3RvcjogIiIsCgoJLy8gVGhlIGN1cnJlbnQgdmVyc2lvbiBvZiBqUXVlcnkgYmVpbmcgdXNlZAoJanF1ZXJ5OiAiMS41LjEiLAoKCS8vIFRoZSBkZWZhdWx0IGxlbmd0aCBvZiBhIGpRdWVyeSBvYmplY3QgaXMgMAoJbGVuZ3RoOiAwLAoKCS8vIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgY29udGFpbmVkIGluIHRoZSBtYXRjaGVkIGVsZW1lbnQgc2V0CglzaXplOiBmdW5jdGlvbigpIHsKCQlyZXR1cm4gdGhpcy5sZW5ndGg7Cgl9LAoKCXRvQXJyYXk6IGZ1bmN0aW9uKCkgewoJCXJldHVybiBzbGljZS5jYWxsKCB0aGlzLCAwICk7Cgl9LAoKCS8vIEdldCB0aGUgTnRoIGVsZW1lbnQgaW4gdGhlIG1hdGNoZWQgZWxlbWVudCBzZXQgT1IKCS8vIEdldCB0aGUgd2hvbGUgbWF0Y2hlZCBlbGVtZW50IHNldCBhcyBhIGNsZWFuIGFycmF5CglnZXQ6IGZ1bmN0aW9uKCBudW0gKSB7CgkJcmV0dXJuIG51bSA9PSBudWxsID8KCgkJCS8vIFJldHVybiBhICdjbGVhbicgYXJyYXkKCQkJdGhpcy50b0FycmF5KCkgOgoKCQkJLy8gUmV0dXJuIGp1c3QgdGhlIG9iamVjdAoJCQkoIG51bSA8IDAgPyB0aGlzWyB0aGlzLmxlbmd0aCArIG51bSBdIDogdGhpc1sgbnVtIF0gKTsKCX0sCgoJLy8gVGFrZSBhbiBhcnJheSBvZiBlbGVtZW50cyBhbmQgcHVzaCBpdCBvbnRvIHRoZSBzdGFjawoJLy8gKHJldHVybmluZyB0aGUgbmV3IG1hdGNoZWQgZWxlbWVudCBzZXQpCglwdXNoU3RhY2s6IGZ1bmN0aW9uKCBlbGVtcywgbmFtZSwgc2VsZWN0b3IgKSB7CgkJLy8gQnVpbGQgYSBuZXcgalF1ZXJ5IG1hdGNoZWQgZWxlbWVudCBzZXQKCQl2YXIgcmV0ID0gdGhpcy5jb25zdHJ1Y3RvcigpOwoKCQlpZiAoIGpRdWVyeS5pc0FycmF5KCBlbGVtcyApICkgewoJCQlwdXNoLmFwcGx5KCByZXQsIGVsZW1zICk7CgoJCX0gZWxzZSB7CgkJCWpRdWVyeS5tZXJnZSggcmV0LCBlbGVtcyApOwoJCX0KCgkJLy8gQWRkIHRoZSBvbGQgb2JqZWN0IG9udG8gdGhlIHN0YWNrIChhcyBhIHJlZmVyZW5jZSkKCQlyZXQucHJldk9iamVjdCA9IHRoaXM7CgoJCXJldC5jb250ZXh0ID0gdGhpcy5jb250ZXh0OwoKCQlpZiAoIG5hbWUgPT09ICJmaW5kIiApIHsKCQkJcmV0LnNlbGVjdG9yID0gdGhpcy5zZWxlY3RvciArICh0aGlzLnNlbGVjdG9yID8gIiAiIDogIiIpICsgc2VsZWN0b3I7CgkJfSBlbHNlIGlmICggbmFtZSApIHsKCQkJcmV0LnNlbGVjdG9yID0gdGhpcy5zZWxlY3RvciArICIuIiArIG5hbWUgKyAiKCIgKyBzZWxlY3RvciArICIpIjsKCQl9CgoJCS8vIFJldHVybiB0aGUgbmV3bHktZm9ybWVkIGVsZW1lbnQgc2V0CgkJcmV0dXJuIHJldDsKCX0sCgoJLy8gRXhlY3V0ZSBhIGNhbGxiYWNrIGZvciBldmVyeSBlbGVtZW50IGluIHRoZSBtYXRjaGVkIHNldC4KCS8vIChZb3UgY2FuIHNlZWQgdGhlIGFyZ3VtZW50cyB3aXRoIGFuIGFycmF5IG9mIGFyZ3MsIGJ1dCB0aGlzIGlzCgkvLyBvbmx5IHVzZWQgaW50ZXJuYWxseS4pCgllYWNoOiBmdW5jdGlvbiggY2FsbGJhY2ssIGFyZ3MgKSB7CgkJcmV0dXJuIGpRdWVyeS5lYWNoKCB0aGlzLCBjYWxsYmFjaywgYXJncyApOwoJfSwKCglyZWFkeTogZnVuY3Rpb24oIGZuICkgewoJCS8vIEF0dGFjaCB0aGUgbGlzdGVuZXJzCgkJalF1ZXJ5LmJpbmRSZWFkeSgpOwoKCQkvLyBBZGQgdGhlIGNhbGxiYWNrCgkJcmVhZHlMaXN0LmRvbmUoIGZuICk7CgoJCXJldHVybiB0aGlzOwoJfSwKCgllcTogZnVuY3Rpb24oIGkgKSB7CgkJcmV0dXJuIGkgPT09IC0xID8KCQkJdGhpcy5zbGljZSggaSApIDoKCQkJdGhpcy5zbGljZSggaSwgK2kgKyAxICk7Cgl9LAoKCWZpcnN0OiBmdW5jdGlvbigpIHsKCQlyZXR1cm4gdGhpcy5lcSggMCApOwoJfSwKCglsYXN0OiBmdW5jdGlvbigpIHsKCQlyZXR1cm4gdGhpcy5lcSggLTEgKTsKCX0sCgoJc2xpY2U6IGZ1bmN0aW9uKCkgewoJCXJldHVybiB0aGlzLnB1c2hTdGFjayggc2xpY2UuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApLAoJCQkic2xpY2UiLCBzbGljZS5jYWxsKGFyZ3VtZW50cykuam9pbigiLCIpICk7Cgl9LAoKCW1hcDogZnVuY3Rpb24oIGNhbGxiYWNrICkgewoJCXJldHVybiB0aGlzLnB1c2hTdGFjayggalF1ZXJ5Lm1hcCh0aGlzLCBmdW5jdGlvbiggZWxlbSwgaSApIHsKCQkJcmV0dXJuIGNhbGxiYWNrLmNhbGwoIGVsZW0sIGksIGVsZW0gKTsKCQl9KSk7Cgl9LAoKCWVuZDogZnVuY3Rpb24oKSB7CgkJcmV0dXJuIHRoaXMucHJldk9iamVjdCB8fCB0aGlzLmNvbnN0cnVjdG9yKG51bGwpOwoJfSwKCgkvLyBGb3IgaW50ZXJuYWwgdXNlIG9ubHkuCgkvLyBCZWhhdmVzIGxpa2UgYW4gQXJyYXkncyBtZXRob2QsIG5vdCBsaWtlIGEgalF1ZXJ5IG1ldGhvZC4KCXB1c2g6IHB1c2gsCglzb3J0OiBbXS5zb3J0LAoJc3BsaWNlOiBbXS5zcGxpY2UKfTsKCi8vIEdpdmUgdGhlIGluaXQgZnVuY3Rpb24gdGhlIGpRdWVyeSBwcm90b3R5cGUgZm9yIGxhdGVyIGluc3RhbnRpYXRpb24KalF1ZXJ5LmZuLmluaXQucHJvdG90eXBlID0galF1ZXJ5LmZuOwoKalF1ZXJ5LmV4dGVuZCA9IGpRdWVyeS5mbi5leHRlbmQgPSBmdW5jdGlvbigpIHsKCXZhciBvcHRpb25zLCBuYW1lLCBzcmMsIGNvcHksIGNvcHlJc0FycmF5LCBjbG9uZSwKCQl0YXJnZXQgPSBhcmd1bWVudHNbMF0gfHwge30sCgkJaSA9IDEsCgkJbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aCwKCQlkZWVwID0gZmFsc2U7CgoJLy8gSGFuZGxlIGEgZGVlcCBjb3B5IHNpdHVhdGlvbgoJaWYgKCB0eXBlb2YgdGFyZ2V0ID09PSAiYm9vbGVhbiIgKSB7CgkJZGVlcCA9IHRhcmdldDsKCQl0YXJnZXQgPSBhcmd1bWVudHNbMV0gfHwge307CgkJLy8gc2tpcCB0aGUgYm9vbGVhbiBhbmQgdGhlIHRhcmdldAoJCWkgPSAyOwoJfQoKCS8vIEhhbmRsZSBjYXNlIHdoZW4gdGFyZ2V0IGlzIGEgc3RyaW5nIG9yIHNvbWV0aGluZyAocG9zc2libGUgaW4gZGVlcCBjb3B5KQoJaWYgKCB0eXBlb2YgdGFyZ2V0ICE9PSAib2JqZWN0IiAmJiAhalF1ZXJ5LmlzRnVuY3Rpb24odGFyZ2V0KSApIHsKCQl0YXJnZXQgPSB7fTsKCX0KCgkvLyBleHRlbmQgalF1ZXJ5IGl0c2VsZiBpZiBvbmx5IG9uZSBhcmd1bWVudCBpcyBwYXNzZWQKCWlmICggbGVuZ3RoID09PSBpICkgewoJCXRhcmdldCA9IHRoaXM7CgkJLS1pOwoJfQoKCWZvciAoIDsgaSA8IGxlbmd0aDsgaSsrICkgewoJCS8vIE9ubHkgZGVhbCB3aXRoIG5vbi1udWxsL3VuZGVmaW5lZCB2YWx1ZXMKCQlpZiAoIChvcHRpb25zID0gYXJndW1lbnRzWyBpIF0pICE9IG51bGwgKSB7CgkJCS8vIEV4dGVuZCB0aGUgYmFzZSBvYmplY3QKCQkJZm9yICggbmFtZSBpbiBvcHRpb25zICkgewoJCQkJc3JjID0gdGFyZ2V0WyBuYW1lIF07CgkJCQljb3B5ID0gb3B0aW9uc1sgbmFtZSBdOwoKCQkJCS8vIFByZXZlbnQgbmV2ZXItZW5kaW5nIGxvb3AKCQkJCWlmICggdGFyZ2V0ID09PSBjb3B5ICkgewoJCQkJCWNvbnRpbnVlOwoJCQkJfQoKCQkJCS8vIFJlY3Vyc2UgaWYgd2UncmUgbWVyZ2luZyBwbGFpbiBvYmplY3RzIG9yIGFycmF5cwoJCQkJaWYgKCBkZWVwICYmIGNvcHkgJiYgKCBqUXVlcnkuaXNQbGFpbk9iamVjdChjb3B5KSB8fCAoY29weUlzQXJyYXkgPSBqUXVlcnkuaXNBcnJheShjb3B5KSkgKSApIHsKCQkJCQlpZiAoIGNvcHlJc0FycmF5ICkgewoJCQkJCQljb3B5SXNBcnJheSA9IGZhbHNlOwoJCQkJCQljbG9uZSA9IHNyYyAmJiBqUXVlcnkuaXNBcnJheShzcmMpID8gc3JjIDogW107CgoJCQkJCX0gZWxzZSB7CgkJCQkJCWNsb25lID0gc3JjICYmIGpRdWVyeS5pc1BsYWluT2JqZWN0KHNyYykgPyBzcmMgOiB7fTsKCQkJCQl9CgoJCQkJCS8vIE5ldmVyIG1vdmUgb3JpZ2luYWwgb2JqZWN0cywgY2xvbmUgdGhlbQoJCQkJCXRhcmdldFsgbmFtZSBdID0galF1ZXJ5LmV4dGVuZCggZGVlcCwgY2xvbmUsIGNvcHkgKTsKCgkJCQkvLyBEb24ndCBicmluZyBpbiB1bmRlZmluZWQgdmFsdWVzCgkJCQl9IGVsc2UgaWYgKCBjb3B5ICE9PSB1bmRlZmluZWQgKSB7CgkJCQkJdGFyZ2V0WyBuYW1lIF0gPSBjb3B5OwoJCQkJfQoJCQl9CgkJfQoJfQoKCS8vIFJldHVybiB0aGUgbW9kaWZpZWQgb2JqZWN0CglyZXR1cm4gdGFyZ2V0Owp9OwoKalF1ZXJ5LmV4dGVuZCh7Cglub0NvbmZsaWN0OiBmdW5jdGlvbiggZGVlcCApIHsKCQl3aW5kb3cuJCA9IF8kOwoKCQlpZiAoIGRlZXAgKSB7CgkJCXdpbmRvdy5qUXVlcnkgPSBfalF1ZXJ5OwoJCX0KCgkJcmV0dXJuIGpRdWVyeTsKCX0sCgoJLy8gSXMgdGhlIERPTSByZWFkeSB0byBiZSB1c2VkPyBTZXQgdG8gdHJ1ZSBvbmNlIGl0IG9jY3Vycy4KCWlzUmVhZHk6IGZhbHNlLAoKCS8vIEEgY291bnRlciB0byB0cmFjayBob3cgbWFueSBpdGVtcyB0byB3YWl0IGZvciBiZWZvcmUKCS8vIHRoZSByZWFkeSBldmVudCBmaXJlcy4gU2VlICM2NzgxCglyZWFkeVdhaXQ6IDEsCgoJLy8gSGFuZGxlIHdoZW4gdGhlIERPTSBpcyByZWFkeQoJcmVhZHk6IGZ1bmN0aW9uKCB3YWl0ICkgewoJCS8vIEEgdGhpcmQtcGFydHkgaXMgcHVzaGluZyB0aGUgcmVhZHkgZXZlbnQgZm9yd2FyZHMKCQlpZiAoIHdhaXQgPT09IHRydWUgKSB7CgkJCWpRdWVyeS5yZWFkeVdhaXQtLTsKCQl9CgoJCS8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBET00gaXMgbm90IGFscmVhZHkgbG9hZGVkCgkJaWYgKCAhalF1ZXJ5LnJlYWR5V2FpdCB8fCAod2FpdCAhPT0gdHJ1ZSAmJiAhalF1ZXJ5LmlzUmVhZHkpICkgewoJCQkvLyBNYWtlIHN1cmUgYm9keSBleGlzdHMsIGF0IGxlYXN0LCBpbiBjYXNlIElFIGdldHMgYSBsaXR0bGUgb3ZlcnplYWxvdXMgKHRpY2tldCAjNTQ0MykuCgkJCWlmICggIWRvY3VtZW50LmJvZHkgKSB7CgkJCQlyZXR1cm4gc2V0VGltZW91dCggalF1ZXJ5LnJlYWR5LCAxICk7CgkJCX0KCgkJCS8vIFJlbWVtYmVyIHRoYXQgdGhlIERPTSBpcyByZWFkeQoJCQlqUXVlcnkuaXNSZWFkeSA9IHRydWU7CgoJCQkvLyBJZiBhIG5vcm1hbCBET00gUmVhZHkgZXZlbnQgZmlyZWQsIGRlY3JlbWVudCwgYW5kIHdhaXQgaWYgbmVlZCBiZQoJCQlpZiAoIHdhaXQgIT09IHRydWUgJiYgLS1qUXVlcnkucmVhZHlXYWl0ID4gMCApIHsKCQkJCXJldHVybjsKCQkJfQoKCQkJLy8gSWYgdGhlcmUgYXJlIGZ1bmN0aW9ucyBib3VuZCwgdG8gZXhlY3V0ZQoJCQlyZWFkeUxpc3QucmVzb2x2ZVdpdGgoIGRvY3VtZW50LCBbIGpRdWVyeSBdICk7CgoJCQkvLyBUcmlnZ2VyIGFueSBib3VuZCByZWFkeSBldmVudHMKCQkJaWYgKCBqUXVlcnkuZm4udHJpZ2dlciApIHsKCQkJCWpRdWVyeSggZG9jdW1lbnQgKS50cmlnZ2VyKCAicmVhZHkiICkudW5iaW5kKCAicmVhZHkiICk7CgkJCX0KCQl9Cgl9LAoKCWJpbmRSZWFkeTogZnVuY3Rpb24oKSB7CgkJaWYgKCByZWFkeUJvdW5kICkgewoJCQlyZXR1cm47CgkJfQoKCQlyZWFkeUJvdW5kID0gdHJ1ZTsKCgkJLy8gQ2F0Y2ggY2FzZXMgd2hlcmUgJChkb2N1bWVudCkucmVhZHkoKSBpcyBjYWxsZWQgYWZ0ZXIgdGhlCgkJLy8gYnJvd3NlciBldmVudCBoYXMgYWxyZWFkeSBvY2N1cnJlZC4KCQlpZiAoIGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICJjb21wbGV0ZSIgKSB7CgkJCS8vIEhhbmRsZSBpdCBhc3luY2hyb25vdXNseSB0byBhbGxvdyBzY3JpcHRzIHRoZSBvcHBvcnR1bml0eSB0byBkZWxheSByZWFkeQoJCQlyZXR1cm4gc2V0VGltZW91dCggalF1ZXJ5LnJlYWR5LCAxICk7CgkJfQoKCQkvLyBNb3ppbGxhLCBPcGVyYSBhbmQgd2Via2l0IG5pZ2h0bGllcyBjdXJyZW50bHkgc3VwcG9ydCB0aGlzIGV2ZW50CgkJaWYgKCBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyICkgewoJCQkvLyBVc2UgdGhlIGhhbmR5IGV2ZW50IGNhbGxiYWNrCgkJCWRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoICJET01Db250ZW50TG9hZGVkIiwgRE9NQ29udGVudExvYWRlZCwgZmFsc2UgKTsKCgkJCS8vIEEgZmFsbGJhY2sgdG8gd2luZG93Lm9ubG9hZCwgdGhhdCB3aWxsIGFsd2F5cyB3b3JrCgkJCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCAibG9hZCIsIGpRdWVyeS5yZWFkeSwgZmFsc2UgKTsKCgkJLy8gSWYgSUUgZXZlbnQgbW9kZWwgaXMgdXNlZAoJCX0gZWxzZSBpZiAoIGRvY3VtZW50LmF0dGFjaEV2ZW50ICkgewoJCQkvLyBlbnN1cmUgZmlyaW5nIGJlZm9yZSBvbmxvYWQsCgkJCS8vIG1heWJlIGxhdGUgYnV0IHNhZmUgYWxzbyBmb3IgaWZyYW1lcwoJCQlkb2N1bWVudC5hdHRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIiwgRE9NQ29udGVudExvYWRlZCk7CgoJCQkvLyBBIGZhbGxiYWNrIHRvIHdpbmRvdy5vbmxvYWQsIHRoYXQgd2lsbCBhbHdheXMgd29yawoJCQl3aW5kb3cuYXR0YWNoRXZlbnQoICJvbmxvYWQiLCBqUXVlcnkucmVhZHkgKTsKCgkJCS8vIElmIElFIGFuZCBub3QgYSBmcmFtZQoJCQkvLyBjb250aW51YWxseSBjaGVjayB0byBzZWUgaWYgdGhlIGRvY3VtZW50IGlzIHJlYWR5CgkJCXZhciB0b3BsZXZlbCA9IGZhbHNlOwoKCQkJdHJ5IHsKCQkJCXRvcGxldmVsID0gd2luZG93LmZyYW1lRWxlbWVudCA9PSBudWxsOwoJCQl9IGNhdGNoKGUpIHt9CgoJCQlpZiAoIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5kb1Njcm9sbCAmJiB0b3BsZXZlbCApIHsKCQkJCWRvU2Nyb2xsQ2hlY2soKTsKCQkJfQoJCX0KCX0sCgoJLy8gU2VlIHRlc3QvdW5pdC9jb3JlLmpzIGZvciBkZXRhaWxzIGNvbmNlcm5pbmcgaXNGdW5jdGlvbi4KCS8vIFNpbmNlIHZlcnNpb24gMS4zLCBET00gbWV0aG9kcyBhbmQgZnVuY3Rpb25zIGxpa2UgYWxlcnQKCS8vIGFyZW4ndCBzdXBwb3J0ZWQuIFRoZXkgcmV0dXJuIGZhbHNlIG9uIElFICgjMjk2OCkuCglpc0Z1bmN0aW9uOiBmdW5jdGlvbiggb2JqICkgewoJCXJldHVybiBqUXVlcnkudHlwZShvYmopID09PSAiZnVuY3Rpb24iOwoJfSwKCglpc0FycmF5OiBBcnJheS5pc0FycmF5IHx8IGZ1bmN0aW9uKCBvYmogKSB7CgkJcmV0dXJuIGpRdWVyeS50eXBlKG9iaikgPT09ICJhcnJheSI7Cgl9LAoKCS8vIEEgY3J1ZGUgd2F5IG9mIGRldGVybWluaW5nIGlmIGFuIG9iamVjdCBpcyBhIHdpbmRvdwoJaXNXaW5kb3c6IGZ1bmN0aW9uKCBvYmogKSB7CgkJcmV0dXJuIG9iaiAmJiB0eXBlb2Ygb2JqID09PSAib2JqZWN0IiAmJiAic2V0SW50ZXJ2YWwiIGluIG9iajsKCX0sCgoJaXNOYU46IGZ1bmN0aW9uKCBvYmogKSB7CgkJcmV0dXJuIG9iaiA9PSBudWxsIHx8ICFyZGlnaXQudGVzdCggb2JqICkgfHwgaXNOYU4oIG9iaiApOwoJfSwKCgl0eXBlOiBmdW5jdGlvbiggb2JqICkgewoJCXJldHVybiBvYmogPT0gbnVsbCA/CgkJCVN0cmluZyggb2JqICkgOgoJCQljbGFzczJ0eXBlWyB0b1N0cmluZy5jYWxsKG9iaikgXSB8fCAib2JqZWN0IjsKCX0sCgoJaXNQbGFpbk9iamVjdDogZnVuY3Rpb24oIG9iaiApIHsKCQkvLyBNdXN0IGJlIGFuIE9iamVjdC4KCQkvLyBCZWNhdXNlIG9mIElFLCB3ZSBhbHNvIGhhdmUgdG8gY2hlY2sgdGhlIHByZXNlbmNlIG9mIHRoZSBjb25zdHJ1Y3RvciBwcm9wZXJ0eS4KCQkvLyBNYWtlIHN1cmUgdGhhdCBET00gbm9kZXMgYW5kIHdpbmRvdyBvYmplY3RzIGRvbid0IHBhc3MgdGhyb3VnaCwgYXMgd2VsbAoJCWlmICggIW9iaiB8fCBqUXVlcnkudHlwZShvYmopICE9PSAib2JqZWN0IiB8fCBvYmoubm9kZVR5cGUgfHwgalF1ZXJ5LmlzV2luZG93KCBvYmogKSApIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCgkJLy8gTm90IG93biBjb25zdHJ1Y3RvciBwcm9wZXJ0eSBtdXN0IGJlIE9iamVjdAoJCWlmICggb2JqLmNvbnN0cnVjdG9yICYmCgkJCSFoYXNPd24uY2FsbChvYmosICJjb25zdHJ1Y3RvciIpICYmCgkJCSFoYXNPd24uY2FsbChvYmouY29uc3RydWN0b3IucHJvdG90eXBlLCAiaXNQcm90b3R5cGVPZiIpICkgewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoKCQkvLyBPd24gcHJvcGVydGllcyBhcmUgZW51bWVyYXRlZCBmaXJzdGx5LCBzbyB0byBzcGVlZCB1cCwKCQkvLyBpZiBsYXN0IG9uZSBpcyBvd24sIHRoZW4gYWxsIHByb3BlcnRpZXMgYXJlIG93bi4KCgkJdmFyIGtleTsKCQlmb3IgKCBrZXkgaW4gb2JqICkge30KCgkJcmV0dXJuIGtleSA9PT0gdW5kZWZpbmVkIHx8IGhhc093bi5jYWxsKCBvYmosIGtleSApOwoJfSwKCglpc0VtcHR5T2JqZWN0OiBmdW5jdGlvbiggb2JqICkgewoJCWZvciAoIHZhciBuYW1lIGluIG9iaiApIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQlyZXR1cm4gdHJ1ZTsKCX0sCgoJZXJyb3I6IGZ1bmN0aW9uKCBtc2cgKSB7CgkJdGhyb3cgbXNnOwoJfSwKCglwYXJzZUpTT046IGZ1bmN0aW9uKCBkYXRhICkgewoJCWlmICggdHlwZW9mIGRhdGEgIT09ICJzdHJpbmciIHx8ICFkYXRhICkgewoJCQlyZXR1cm4gbnVsbDsKCQl9CgoJCS8vIE1ha2Ugc3VyZSBsZWFkaW5nL3RyYWlsaW5nIHdoaXRlc3BhY2UgaXMgcmVtb3ZlZCAoSUUgY2FuJ3QgaGFuZGxlIGl0KQoJCWRhdGEgPSBqUXVlcnkudHJpbSggZGF0YSApOwoKCQkvLyBNYWtlIHN1cmUgdGhlIGluY29taW5nIGRhdGEgaXMgYWN0dWFsIEpTT04KCQkvLyBMb2dpYyBib3Jyb3dlZCBmcm9tIGh0dHA6Ly9qc29uLm9yZy9qc29uMi5qcwoJCWlmICggcnZhbGlkY2hhcnMudGVzdChkYXRhLnJlcGxhY2UocnZhbGlkZXNjYXBlLCAiQCIpCgkJCS5yZXBsYWNlKHJ2YWxpZHRva2VucywgIl0iKQoJCQkucmVwbGFjZShydmFsaWRicmFjZXMsICIiKSkgKSB7CgoJCQkvLyBUcnkgdG8gdXNlIHRoZSBuYXRpdmUgSlNPTiBwYXJzZXIgZmlyc3QKCQkJcmV0dXJuIHdpbmRvdy5KU09OICYmIHdpbmRvdy5KU09OLnBhcnNlID8KCQkJCXdpbmRvdy5KU09OLnBhcnNlKCBkYXRhICkgOgoJCQkJKG5ldyBGdW5jdGlvbigicmV0dXJuICIgKyBkYXRhKSkoKTsKCgkJfSBlbHNlIHsKCQkJalF1ZXJ5LmVycm9yKCAiSW52YWxpZCBKU09OOiAiICsgZGF0YSApOwoJCX0KCX0sCgoJLy8gQ3Jvc3MtYnJvd3NlciB4bWwgcGFyc2luZwoJLy8gKHhtbCAmIHRtcCB1c2VkIGludGVybmFsbHkpCglwYXJzZVhNTDogZnVuY3Rpb24oIGRhdGEgLCB4bWwgLCB0bXAgKSB7CgoJCWlmICggd2luZG93LkRPTVBhcnNlciApIHsgLy8gU3RhbmRhcmQKCQkJdG1wID0gbmV3IERPTVBhcnNlcigpOwoJCQl4bWwgPSB0bXAucGFyc2VGcm9tU3RyaW5nKCBkYXRhICwgInRleHQveG1sIiApOwoJCX0gZWxzZSB7IC8vIElFCgkJCXhtbCA9IG5ldyBBY3RpdmVYT2JqZWN0KCAiTWljcm9zb2Z0LlhNTERPTSIgKTsKCQkJeG1sLmFzeW5jID0gImZhbHNlIjsKCQkJeG1sLmxvYWRYTUwoIGRhdGEgKTsKCQl9CgoJCXRtcCA9IHhtbC5kb2N1bWVudEVsZW1lbnQ7CgoJCWlmICggISB0bXAgfHwgISB0bXAubm9kZU5hbWUgfHwgdG1wLm5vZGVOYW1lID09PSAicGFyc2VyZXJyb3IiICkgewoJCQlqUXVlcnkuZXJyb3IoICJJbnZhbGlkIFhNTDogIiArIGRhdGEgKTsKCQl9CgoJCXJldHVybiB4bWw7Cgl9LAoKCW5vb3A6IGZ1bmN0aW9uKCkge30sCgoJLy8gRXZhbHVsYXRlcyBhIHNjcmlwdCBpbiBhIGdsb2JhbCBjb250ZXh0CglnbG9iYWxFdmFsOiBmdW5jdGlvbiggZGF0YSApIHsKCQlpZiAoIGRhdGEgJiYgcm5vdHdoaXRlLnRlc3QoZGF0YSkgKSB7CgkJCS8vIEluc3BpcmVkIGJ5IGNvZGUgYnkgQW5kcmVhIEdpYW1tYXJjaGkKCQkJLy8gaHR0cDovL3dlYnJlZmxlY3Rpb24uYmxvZ3Nwb3QuY29tLzIwMDcvMDgvZ2xvYmFsLXNjb3BlLWV2YWx1YXRpb24tYW5kLWRvbS5odG1sCgkJCXZhciBoZWFkID0gZG9jdW1lbnQuaGVhZCB8fCBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSggImhlYWQiIClbMF0gfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LAoJCQkJc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggInNjcmlwdCIgKTsKCgkJCWlmICggalF1ZXJ5LnN1cHBvcnQuc2NyaXB0RXZhbCgpICkgewoJCQkJc2NyaXB0LmFwcGVuZENoaWxkKCBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSggZGF0YSApICk7CgkJCX0gZWxzZSB7CgkJCQlzY3JpcHQudGV4dCA9IGRhdGE7CgkJCX0KCgkJCS8vIFVzZSBpbnNlcnRCZWZvcmUgaW5zdGVhZCBvZiBhcHBlbmRDaGlsZCB0byBjaXJjdW12ZW50IGFuIElFNiBidWcuCgkJCS8vIFRoaXMgYXJpc2VzIHdoZW4gYSBiYXNlIG5vZGUgaXMgdXNlZCAoIzI3MDkpLgoJCQloZWFkLmluc2VydEJlZm9yZSggc2NyaXB0LCBoZWFkLmZpcnN0Q2hpbGQgKTsKCQkJaGVhZC5yZW1vdmVDaGlsZCggc2NyaXB0ICk7CgkJfQoJfSwKCglub2RlTmFtZTogZnVuY3Rpb24oIGVsZW0sIG5hbWUgKSB7CgkJcmV0dXJuIGVsZW0ubm9kZU5hbWUgJiYgZWxlbS5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpID09PSBuYW1lLnRvVXBwZXJDYXNlKCk7Cgl9LAoKCS8vIGFyZ3MgaXMgZm9yIGludGVybmFsIHVzYWdlIG9ubHkKCWVhY2g6IGZ1bmN0aW9uKCBvYmplY3QsIGNhbGxiYWNrLCBhcmdzICkgewoJCXZhciBuYW1lLCBpID0gMCwKCQkJbGVuZ3RoID0gb2JqZWN0Lmxlbmd0aCwKCQkJaXNPYmogPSBsZW5ndGggPT09IHVuZGVmaW5lZCB8fCBqUXVlcnkuaXNGdW5jdGlvbihvYmplY3QpOwoKCQlpZiAoIGFyZ3MgKSB7CgkJCWlmICggaXNPYmogKSB7CgkJCQlmb3IgKCBuYW1lIGluIG9iamVjdCApIHsKCQkJCQlpZiAoIGNhbGxiYWNrLmFwcGx5KCBvYmplY3RbIG5hbWUgXSwgYXJncyApID09PSBmYWxzZSApIHsKCQkJCQkJYnJlYWs7CgkJCQkJfQoJCQkJfQoJCQl9IGVsc2UgewoJCQkJZm9yICggOyBpIDwgbGVuZ3RoOyApIHsKCQkJCQlpZiAoIGNhbGxiYWNrLmFwcGx5KCBvYmplY3RbIGkrKyBdLCBhcmdzICkgPT09IGZhbHNlICkgewoJCQkJCQlicmVhazsKCQkJCQl9CgkJCQl9CgkJCX0KCgkJLy8gQSBzcGVjaWFsLCBmYXN0LCBjYXNlIGZvciB0aGUgbW9zdCBjb21tb24gdXNlIG9mIGVhY2gKCQl9IGVsc2UgewoJCQlpZiAoIGlzT2JqICkgewoJCQkJZm9yICggbmFtZSBpbiBvYmplY3QgKSB7CgkJCQkJaWYgKCBjYWxsYmFjay5jYWxsKCBvYmplY3RbIG5hbWUgXSwgbmFtZSwgb2JqZWN0WyBuYW1lIF0gKSA9PT0gZmFsc2UgKSB7CgkJCQkJCWJyZWFrOwoJCQkJCX0KCQkJCX0KCQkJfSBlbHNlIHsKCQkJCWZvciAoIHZhciB2YWx1ZSA9IG9iamVjdFswXTsKCQkJCQlpIDwgbGVuZ3RoICYmIGNhbGxiYWNrLmNhbGwoIHZhbHVlLCBpLCB2YWx1ZSApICE9PSBmYWxzZTsgdmFsdWUgPSBvYmplY3RbKytpXSApIHt9CgkJCX0KCQl9CgoJCXJldHVybiBvYmplY3Q7Cgl9LAoKCS8vIFVzZSBuYXRpdmUgU3RyaW5nLnRyaW0gZnVuY3Rpb24gd2hlcmV2ZXIgcG9zc2libGUKCXRyaW06IHRyaW0gPwoJCWZ1bmN0aW9uKCB0ZXh0ICkgewoJCQlyZXR1cm4gdGV4dCA9PSBudWxsID8KCQkJCSIiIDoKCQkJCXRyaW0uY2FsbCggdGV4dCApOwoJCX0gOgoKCQkvLyBPdGhlcndpc2UgdXNlIG91ciBvd24gdHJpbW1pbmcgZnVuY3Rpb25hbGl0eQoJCWZ1bmN0aW9uKCB0ZXh0ICkgewoJCQlyZXR1cm4gdGV4dCA9PSBudWxsID8KCQkJCSIiIDoKCQkJCXRleHQudG9TdHJpbmcoKS5yZXBsYWNlKCB0cmltTGVmdCwgIiIgKS5yZXBsYWNlKCB0cmltUmlnaHQsICIiICk7CgkJfSwKCgkvLyByZXN1bHRzIGlzIGZvciBpbnRlcm5hbCB1c2FnZSBvbmx5CgltYWtlQXJyYXk6IGZ1bmN0aW9uKCBhcnJheSwgcmVzdWx0cyApIHsKCQl2YXIgcmV0ID0gcmVzdWx0cyB8fCBbXTsKCgkJaWYgKCBhcnJheSAhPSBudWxsICkgewoJCQkvLyBUaGUgd2luZG93LCBzdHJpbmdzIChhbmQgZnVuY3Rpb25zKSBhbHNvIGhhdmUgJ2xlbmd0aCcKCQkJLy8gVGhlIGV4dHJhIHR5cGVvZiBmdW5jdGlvbiBjaGVjayBpcyB0byBwcmV2ZW50IGNyYXNoZXMKCQkJLy8gaW4gU2FmYXJpIDIgKFNlZTogIzMwMzkpCgkJCS8vIFR3ZWFrZWQgbG9naWMgc2xpZ2h0bHkgdG8gaGFuZGxlIEJsYWNrYmVycnkgNC43IFJlZ0V4cCBpc3N1ZXMgIzY5MzAKCQkJdmFyIHR5cGUgPSBqUXVlcnkudHlwZShhcnJheSk7CgoJCQlpZiAoIGFycmF5Lmxlbmd0aCA9PSBudWxsIHx8IHR5cGUgPT09ICJzdHJpbmciIHx8IHR5cGUgPT09ICJmdW5jdGlvbiIgfHwgdHlwZSA9PT0gInJlZ2V4cCIgfHwgalF1ZXJ5LmlzV2luZG93KCBhcnJheSApICkgewoJCQkJcHVzaC5jYWxsKCByZXQsIGFycmF5ICk7CgkJCX0gZWxzZSB7CgkJCQlqUXVlcnkubWVyZ2UoIHJldCwgYXJyYXkgKTsKCQkJfQoJCX0KCgkJcmV0dXJuIHJldDsKCX0sCgoJaW5BcnJheTogZnVuY3Rpb24oIGVsZW0sIGFycmF5ICkgewoJCWlmICggYXJyYXkuaW5kZXhPZiApIHsKCQkJcmV0dXJuIGFycmF5LmluZGV4T2YoIGVsZW0gKTsKCQl9CgoJCWZvciAoIHZhciBpID0gMCwgbGVuZ3RoID0gYXJyYXkubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKysgKSB7CgkJCWlmICggYXJyYXlbIGkgXSA9PT0gZWxlbSApIHsKCQkJCXJldHVybiBpOwoJCQl9CgkJfQoKCQlyZXR1cm4gLTE7Cgl9LAoKCW1lcmdlOiBmdW5jdGlvbiggZmlyc3QsIHNlY29uZCApIHsKCQl2YXIgaSA9IGZpcnN0Lmxlbmd0aCwKCQkJaiA9IDA7CgoJCWlmICggdHlwZW9mIHNlY29uZC5sZW5ndGggPT09ICJudW1iZXIiICkgewoJCQlmb3IgKCB2YXIgbCA9IHNlY29uZC5sZW5ndGg7IGogPCBsOyBqKysgKSB7CgkJCQlmaXJzdFsgaSsrIF0gPSBzZWNvbmRbIGogXTsKCQkJfQoKCQl9IGVsc2UgewoJCQl3aGlsZSAoIHNlY29uZFtqXSAhPT0gdW5kZWZpbmVkICkgewoJCQkJZmlyc3RbIGkrKyBdID0gc2Vjb25kWyBqKysgXTsKCQkJfQoJCX0KCgkJZmlyc3QubGVuZ3RoID0gaTsKCgkJcmV0dXJuIGZpcnN0OwoJfSwKCglncmVwOiBmdW5jdGlvbiggZWxlbXMsIGNhbGxiYWNrLCBpbnYgKSB7CgkJdmFyIHJldCA9IFtdLCByZXRWYWw7CgkJaW52ID0gISFpbnY7CgoJCS8vIEdvIHRocm91Z2ggdGhlIGFycmF5LCBvbmx5IHNhdmluZyB0aGUgaXRlbXMKCQkvLyB0aGF0IHBhc3MgdGhlIHZhbGlkYXRvciBmdW5jdGlvbgoJCWZvciAoIHZhciBpID0gMCwgbGVuZ3RoID0gZWxlbXMubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKysgKSB7CgkJCXJldFZhbCA9ICEhY2FsbGJhY2soIGVsZW1zWyBpIF0sIGkgKTsKCQkJaWYgKCBpbnYgIT09IHJldFZhbCApIHsKCQkJCXJldC5wdXNoKCBlbGVtc1sgaSBdICk7CgkJCX0KCQl9CgoJCXJldHVybiByZXQ7Cgl9LAoKCS8vIGFyZyBpcyBmb3IgaW50ZXJuYWwgdXNhZ2Ugb25seQoJbWFwOiBmdW5jdGlvbiggZWxlbXMsIGNhbGxiYWNrLCBhcmcgKSB7CgkJdmFyIHJldCA9IFtdLCB2YWx1ZTsKCgkJLy8gR28gdGhyb3VnaCB0aGUgYXJyYXksIHRyYW5zbGF0aW5nIGVhY2ggb2YgdGhlIGl0ZW1zIHRvIHRoZWlyCgkJLy8gbmV3IHZhbHVlIChvciB2YWx1ZXMpLgoJCWZvciAoIHZhciBpID0gMCwgbGVuZ3RoID0gZWxlbXMubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKysgKSB7CgkJCXZhbHVlID0gY2FsbGJhY2soIGVsZW1zWyBpIF0sIGksIGFyZyApOwoKCQkJaWYgKCB2YWx1ZSAhPSBudWxsICkgewoJCQkJcmV0WyByZXQubGVuZ3RoIF0gPSB2YWx1ZTsKCQkJfQoJCX0KCgkJLy8gRmxhdHRlbiBhbnkgbmVzdGVkIGFycmF5cwoJCXJldHVybiByZXQuY29uY2F0LmFwcGx5KCBbXSwgcmV0ICk7Cgl9LAoKCS8vIEEgZ2xvYmFsIEdVSUQgY291bnRlciBmb3Igb2JqZWN0cwoJZ3VpZDogMSwKCglwcm94eTogZnVuY3Rpb24oIGZuLCBwcm94eSwgdGhpc09iamVjdCApIHsKCQlpZiAoIGFyZ3VtZW50cy5sZW5ndGggPT09IDIgKSB7CgkJCWlmICggdHlwZW9mIHByb3h5ID09PSAic3RyaW5nIiApIHsKCQkJCXRoaXNPYmplY3QgPSBmbjsKCQkJCWZuID0gdGhpc09iamVjdFsgcHJveHkgXTsKCQkJCXByb3h5ID0gdW5kZWZpbmVkOwoKCQkJfSBlbHNlIGlmICggcHJveHkgJiYgIWpRdWVyeS5pc0Z1bmN0aW9uKCBwcm94eSApICkgewoJCQkJdGhpc09iamVjdCA9IHByb3h5OwoJCQkJcHJveHkgPSB1bmRlZmluZWQ7CgkJCX0KCQl9CgoJCWlmICggIXByb3h5ICYmIGZuICkgewoJCQlwcm94eSA9IGZ1bmN0aW9uKCkgewoJCQkJcmV0dXJuIGZuLmFwcGx5KCB0aGlzT2JqZWN0IHx8IHRoaXMsIGFyZ3VtZW50cyApOwoJCQl9OwoJCX0KCgkJLy8gU2V0IHRoZSBndWlkIG9mIHVuaXF1ZSBoYW5kbGVyIHRvIHRoZSBzYW1lIG9mIG9yaWdpbmFsIGhhbmRsZXIsIHNvIGl0IGNhbiBiZSByZW1vdmVkCgkJaWYgKCBmbiApIHsKCQkJcHJveHkuZ3VpZCA9IGZuLmd1aWQgPSBmbi5ndWlkIHx8IHByb3h5Lmd1aWQgfHwgalF1ZXJ5Lmd1aWQrKzsKCQl9CgoJCS8vIFNvIHByb3h5IGNhbiBiZSBkZWNsYXJlZCBhcyBhbiBhcmd1bWVudAoJCXJldHVybiBwcm94eTsKCX0sCgoJLy8gTXV0aWZ1bmN0aW9uYWwgbWV0aG9kIHRvIGdldCBhbmQgc2V0IHZhbHVlcyB0byBhIGNvbGxlY3Rpb24KCS8vIFRoZSB2YWx1ZS9zIGNhbiBiZSBvcHRpb25hbGx5IGJ5IGV4ZWN1dGVkIGlmIGl0cyBhIGZ1bmN0aW9uCglhY2Nlc3M6IGZ1bmN0aW9uKCBlbGVtcywga2V5LCB2YWx1ZSwgZXhlYywgZm4sIHBhc3MgKSB7CgkJdmFyIGxlbmd0aCA9IGVsZW1zLmxlbmd0aDsKCgkJLy8gU2V0dGluZyBtYW55IGF0dHJpYnV0ZXMKCQlpZiAoIHR5cGVvZiBrZXkgPT09ICJvYmplY3QiICkgewoJCQlmb3IgKCB2YXIgayBpbiBrZXkgKSB7CgkJCQlqUXVlcnkuYWNjZXNzKCBlbGVtcywgaywga2V5W2tdLCBleGVjLCBmbiwgdmFsdWUgKTsKCQkJfQoJCQlyZXR1cm4gZWxlbXM7CgkJfQoKCQkvLyBTZXR0aW5nIG9uZSBhdHRyaWJ1dGUKCQlpZiAoIHZhbHVlICE9PSB1bmRlZmluZWQgKSB7CgkJCS8vIE9wdGlvbmFsbHksIGZ1bmN0aW9uIHZhbHVlcyBnZXQgZXhlY3V0ZWQgaWYgZXhlYyBpcyB0cnVlCgkJCWV4ZWMgPSAhcGFzcyAmJiBleGVjICYmIGpRdWVyeS5pc0Z1bmN0aW9uKHZhbHVlKTsKCgkJCWZvciAoIHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrICkgewoJCQkJZm4oIGVsZW1zW2ldLCBrZXksIGV4ZWMgPyB2YWx1ZS5jYWxsKCBlbGVtc1tpXSwgaSwgZm4oIGVsZW1zW2ldLCBrZXkgKSApIDogdmFsdWUsIHBhc3MgKTsKCQkJfQoKCQkJcmV0dXJuIGVsZW1zOwoJCX0KCgkJLy8gR2V0dGluZyBhbiBhdHRyaWJ1dGUKCQlyZXR1cm4gbGVuZ3RoID8gZm4oIGVsZW1zWzBdLCBrZXkgKSA6IHVuZGVmaW5lZDsKCX0sCgoJbm93OiBmdW5jdGlvbigpIHsKCQlyZXR1cm4gKG5ldyBEYXRlKCkpLmdldFRpbWUoKTsKCX0sCgoJLy8gQ3JlYXRlIGEgc2ltcGxlIGRlZmVycmVkIChvbmUgY2FsbGJhY2tzIGxpc3QpCglfRGVmZXJyZWQ6IGZ1bmN0aW9uKCkgewoJCXZhciAvLyBjYWxsYmFja3MgbGlzdAoJCQljYWxsYmFja3MgPSBbXSwKCQkJLy8gc3RvcmVkIFsgY29udGV4dCAsIGFyZ3MgXQoJCQlmaXJlZCwKCQkJLy8gdG8gYXZvaWQgZmlyaW5nIHdoZW4gYWxyZWFkeSBkb2luZyBzbwoJCQlmaXJpbmcsCgkJCS8vIGZsYWcgdG8ga25vdyBpZiB0aGUgZGVmZXJyZWQgaGFzIGJlZW4gY2FuY2VsbGVkCgkJCWNhbmNlbGxlZCwKCQkJLy8gdGhlIGRlZmVycmVkIGl0c2VsZgoJCQlkZWZlcnJlZCAgPSB7CgoJCQkJLy8gZG9uZSggZjEsIGYyLCAuLi4pCgkJCQlkb25lOiBmdW5jdGlvbigpIHsKCQkJCQlpZiAoICFjYW5jZWxsZWQgKSB7CgkJCQkJCXZhciBhcmdzID0gYXJndW1lbnRzLAoJCQkJCQkJaSwKCQkJCQkJCWxlbmd0aCwKCQkJCQkJCWVsZW0sCgkJCQkJCQl0eXBlLAoJCQkJCQkJX2ZpcmVkOwoJCQkJCQlpZiAoIGZpcmVkICkgewoJCQkJCQkJX2ZpcmVkID0gZmlyZWQ7CgkJCQkJCQlmaXJlZCA9IDA7CgkJCQkJCX0KCQkJCQkJZm9yICggaSA9IDAsIGxlbmd0aCA9IGFyZ3MubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKysgKSB7CgkJCQkJCQllbGVtID0gYXJnc1sgaSBdOwoJCQkJCQkJdHlwZSA9IGpRdWVyeS50eXBlKCBlbGVtICk7CgkJCQkJCQlpZiAoIHR5cGUgPT09ICJhcnJheSIgKSB7CgkJCQkJCQkJZGVmZXJyZWQuZG9uZS5hcHBseSggZGVmZXJyZWQsIGVsZW0gKTsKCQkJCQkJCX0gZWxzZSBpZiAoIHR5cGUgPT09ICJmdW5jdGlvbiIgKSB7CgkJCQkJCQkJY2FsbGJhY2tzLnB1c2goIGVsZW0gKTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCQlpZiAoIF9maXJlZCApIHsKCQkJCQkJCWRlZmVycmVkLnJlc29sdmVXaXRoKCBfZmlyZWRbIDAgXSwgX2ZpcmVkWyAxIF0gKTsKCQkJCQkJfQoJCQkJCX0KCQkJCQlyZXR1cm4gdGhpczsKCQkJCX0sCgoJCQkJLy8gcmVzb2x2ZSB3aXRoIGdpdmVuIGNvbnRleHQgYW5kIGFyZ3MKCQkJCXJlc29sdmVXaXRoOiBmdW5jdGlvbiggY29udGV4dCwgYXJncyApIHsKCQkJCQlpZiAoICFjYW5jZWxsZWQgJiYgIWZpcmVkICYmICFmaXJpbmcgKSB7CgkJCQkJCWZpcmluZyA9IDE7CgkJCQkJCXRyeSB7CgkJCQkJCQl3aGlsZSggY2FsbGJhY2tzWyAwIF0gKSB7CgkJCQkJCQkJY2FsbGJhY2tzLnNoaWZ0KCkuYXBwbHkoIGNvbnRleHQsIGFyZ3MgKTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCQkvLyBXZSBoYXZlIHRvIGFkZCBhIGNhdGNoIGJsb2NrIGZvcgoJCQkJCQkvLyBJRSBwcmlvciB0byA4IG9yIGVsc2UgdGhlIGZpbmFsbHkKCQkJCQkJLy8gYmxvY2sgd2lsbCBuZXZlciBnZXQgZXhlY3V0ZWQKCQkJCQkJY2F0Y2ggKGUpIHsKCQkJCQkJCXRocm93IGU7CgkJCQkJCX0KCQkJCQkJZmluYWxseSB7CgkJCQkJCQlmaXJlZCA9IFsgY29udGV4dCwgYXJncyBdOwoJCQkJCQkJZmlyaW5nID0gMDsKCQkJCQkJfQoJCQkJCX0KCQkJCQlyZXR1cm4gdGhpczsKCQkJCX0sCgoJCQkJLy8gcmVzb2x2ZSB3aXRoIHRoaXMgYXMgY29udGV4dCBhbmQgZ2l2ZW4gYXJndW1lbnRzCgkJCQlyZXNvbHZlOiBmdW5jdGlvbigpIHsKCQkJCQlkZWZlcnJlZC5yZXNvbHZlV2l0aCggalF1ZXJ5LmlzRnVuY3Rpb24oIHRoaXMucHJvbWlzZSApID8gdGhpcy5wcm9taXNlKCkgOiB0aGlzLCBhcmd1bWVudHMgKTsKCQkJCQlyZXR1cm4gdGhpczsKCQkJCX0sCgoJCQkJLy8gSGFzIHRoaXMgZGVmZXJyZWQgYmVlbiByZXNvbHZlZD8KCQkJCWlzUmVzb2x2ZWQ6IGZ1bmN0aW9uKCkgewoJCQkJCXJldHVybiAhISggZmlyaW5nIHx8IGZpcmVkICk7CgkJCQl9LAoKCQkJCS8vIENhbmNlbAoJCQkJY2FuY2VsOiBmdW5jdGlvbigpIHsKCQkJCQljYW5jZWxsZWQgPSAxOwoJCQkJCWNhbGxiYWNrcyA9IFtdOwoJCQkJCXJldHVybiB0aGlzOwoJCQkJfQoJCQl9OwoKCQlyZXR1cm4gZGVmZXJyZWQ7Cgl9LAoKCS8vIEZ1bGwgZmxlZGdlZCBkZWZlcnJlZCAodHdvIGNhbGxiYWNrcyBsaXN0KQoJRGVmZXJyZWQ6IGZ1bmN0aW9uKCBmdW5jICkgewoJCXZhciBkZWZlcnJlZCA9IGpRdWVyeS5fRGVmZXJyZWQoKSwKCQkJZmFpbERlZmVycmVkID0galF1ZXJ5Ll9EZWZlcnJlZCgpLAoJCQlwcm9taXNlOwoJCS8vIEFkZCBlcnJvckRlZmVycmVkIG1ldGhvZHMsIHRoZW4gYW5kIHByb21pc2UKCQlqUXVlcnkuZXh0ZW5kKCBkZWZlcnJlZCwgewoJCQl0aGVuOiBmdW5jdGlvbiggZG9uZUNhbGxiYWNrcywgZmFpbENhbGxiYWNrcyApIHsKCQkJCWRlZmVycmVkLmRvbmUoIGRvbmVDYWxsYmFja3MgKS5mYWlsKCBmYWlsQ2FsbGJhY2tzICk7CgkJCQlyZXR1cm4gdGhpczsKCQkJfSwKCQkJZmFpbDogZmFpbERlZmVycmVkLmRvbmUsCgkJCXJlamVjdFdpdGg6IGZhaWxEZWZlcnJlZC5yZXNvbHZlV2l0aCwKCQkJcmVqZWN0OiBmYWlsRGVmZXJyZWQucmVzb2x2ZSwKCQkJaXNSZWplY3RlZDogZmFpbERlZmVycmVkLmlzUmVzb2x2ZWQsCgkJCS8vIEdldCBhIHByb21pc2UgZm9yIHRoaXMgZGVmZXJyZWQKCQkJLy8gSWYgb2JqIGlzIHByb3ZpZGVkLCB0aGUgcHJvbWlzZSBhc3BlY3QgaXMgYWRkZWQgdG8gdGhlIG9iamVjdAoJCQlwcm9taXNlOiBmdW5jdGlvbiggb2JqICkgewoJCQkJaWYgKCBvYmogPT0gbnVsbCApIHsKCQkJCQlpZiAoIHByb21pc2UgKSB7CgkJCQkJCXJldHVybiBwcm9taXNlOwoJCQkJCX0KCQkJCQlwcm9taXNlID0gb2JqID0ge307CgkJCQl9CgkJCQl2YXIgaSA9IHByb21pc2VNZXRob2RzLmxlbmd0aDsKCQkJCXdoaWxlKCBpLS0gKSB7CgkJCQkJb2JqWyBwcm9taXNlTWV0aG9kc1tpXSBdID0gZGVmZXJyZWRbIHByb21pc2VNZXRob2RzW2ldIF07CgkJCQl9CgkJCQlyZXR1cm4gb2JqOwoJCQl9CgkJfSApOwoJCS8vIE1ha2Ugc3VyZSBvbmx5IG9uZSBjYWxsYmFjayBsaXN0IHdpbGwgYmUgdXNlZAoJCWRlZmVycmVkLmRvbmUoIGZhaWxEZWZlcnJlZC5jYW5jZWwgKS5mYWlsKCBkZWZlcnJlZC5jYW5jZWwgKTsKCQkvLyBVbmV4cG9zZSBjYW5jZWwKCQlkZWxldGUgZGVmZXJyZWQuY2FuY2VsOwoJCS8vIENhbGwgZ2l2ZW4gZnVuYyBpZiBhbnkKCQlpZiAoIGZ1bmMgKSB7CgkJCWZ1bmMuY2FsbCggZGVmZXJyZWQsIGRlZmVycmVkICk7CgkJfQoJCXJldHVybiBkZWZlcnJlZDsKCX0sCgoJLy8gRGVmZXJyZWQgaGVscGVyCgl3aGVuOiBmdW5jdGlvbiggb2JqZWN0ICkgewoJCXZhciBsYXN0SW5kZXggPSBhcmd1bWVudHMubGVuZ3RoLAoJCQlkZWZlcnJlZCA9IGxhc3RJbmRleCA8PSAxICYmIG9iamVjdCAmJiBqUXVlcnkuaXNGdW5jdGlvbiggb2JqZWN0LnByb21pc2UgKSA/CgkJCQlvYmplY3QgOgoJCQkJalF1ZXJ5LkRlZmVycmVkKCksCgkJCXByb21pc2UgPSBkZWZlcnJlZC5wcm9taXNlKCk7CgoJCWlmICggbGFzdEluZGV4ID4gMSApIHsKCQkJdmFyIGFycmF5ID0gc2xpY2UuY2FsbCggYXJndW1lbnRzLCAwICksCgkJCQljb3VudCA9IGxhc3RJbmRleCwKCQkJCWlDYWxsYmFjayA9IGZ1bmN0aW9uKCBpbmRleCApIHsKCQkJCQlyZXR1cm4gZnVuY3Rpb24oIHZhbHVlICkgewoJCQkJCQlhcnJheVsgaW5kZXggXSA9IGFyZ3VtZW50cy5sZW5ndGggPiAxID8gc2xpY2UuY2FsbCggYXJndW1lbnRzLCAwICkgOiB2YWx1ZTsKCQkJCQkJaWYgKCAhKCAtLWNvdW50ICkgKSB7CgkJCQkJCQlkZWZlcnJlZC5yZXNvbHZlV2l0aCggcHJvbWlzZSwgYXJyYXkgKTsKCQkJCQkJfQoJCQkJCX07CgkJCQl9OwoJCQl3aGlsZSggKCBsYXN0SW5kZXgtLSApICkgewoJCQkJb2JqZWN0ID0gYXJyYXlbIGxhc3RJbmRleCBdOwoJCQkJaWYgKCBvYmplY3QgJiYgalF1ZXJ5LmlzRnVuY3Rpb24oIG9iamVjdC5wcm9taXNlICkgKSB7CgkJCQkJb2JqZWN0LnByb21pc2UoKS50aGVuKCBpQ2FsbGJhY2sobGFzdEluZGV4KSwgZGVmZXJyZWQucmVqZWN0ICk7CgkJCQl9IGVsc2UgewoJCQkJCS0tY291bnQ7CgkJCQl9CgkJCX0KCQkJaWYgKCAhY291bnQgKSB7CgkJCQlkZWZlcnJlZC5yZXNvbHZlV2l0aCggcHJvbWlzZSwgYXJyYXkgKTsKCQkJfQoJCX0gZWxzZSBpZiAoIGRlZmVycmVkICE9PSBvYmplY3QgKSB7CgkJCWRlZmVycmVkLnJlc29sdmUoIG9iamVjdCApOwoJCX0KCQlyZXR1cm4gcHJvbWlzZTsKCX0sCgoJLy8gVXNlIG9mIGpRdWVyeS5icm93c2VyIGlzIGZyb3duZWQgdXBvbi4KCS8vIE1vcmUgZGV0YWlsczogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9VdGlsaXRpZXMvalF1ZXJ5LmJyb3dzZXIKCXVhTWF0Y2g6IGZ1bmN0aW9uKCB1YSApIHsKCQl1YSA9IHVhLnRvTG93ZXJDYXNlKCk7CgoJCXZhciBtYXRjaCA9IHJ3ZWJraXQuZXhlYyggdWEgKSB8fAoJCQlyb3BlcmEuZXhlYyggdWEgKSB8fAoJCQlybXNpZS5leGVjKCB1YSApIHx8CgkJCXVhLmluZGV4T2YoImNvbXBhdGlibGUiKSA8IDAgJiYgcm1vemlsbGEuZXhlYyggdWEgKSB8fAoJCQlbXTsKCgkJcmV0dXJuIHsgYnJvd3NlcjogbWF0Y2hbMV0gfHwgIiIsIHZlcnNpb246IG1hdGNoWzJdIHx8ICIwIiB9OwoJfSwKCglzdWI6IGZ1bmN0aW9uKCkgewoJCWZ1bmN0aW9uIGpRdWVyeVN1YmNsYXNzKCBzZWxlY3RvciwgY29udGV4dCApIHsKCQkJcmV0dXJuIG5ldyBqUXVlcnlTdWJjbGFzcy5mbi5pbml0KCBzZWxlY3RvciwgY29udGV4dCApOwoJCX0KCQlqUXVlcnkuZXh0ZW5kKCB0cnVlLCBqUXVlcnlTdWJjbGFzcywgdGhpcyApOwoJCWpRdWVyeVN1YmNsYXNzLnN1cGVyY2xhc3MgPSB0aGlzOwoJCWpRdWVyeVN1YmNsYXNzLmZuID0galF1ZXJ5U3ViY2xhc3MucHJvdG90eXBlID0gdGhpcygpOwoJCWpRdWVyeVN1YmNsYXNzLmZuLmNvbnN0cnVjdG9yID0galF1ZXJ5U3ViY2xhc3M7CgkJalF1ZXJ5U3ViY2xhc3Muc3ViY2xhc3MgPSB0aGlzLnN1YmNsYXNzOwoJCWpRdWVyeVN1YmNsYXNzLmZuLmluaXQgPSBmdW5jdGlvbiBpbml0KCBzZWxlY3RvciwgY29udGV4dCApIHsKCQkJaWYgKCBjb250ZXh0ICYmIGNvbnRleHQgaW5zdGFuY2VvZiBqUXVlcnkgJiYgIShjb250ZXh0IGluc3RhbmNlb2YgalF1ZXJ5U3ViY2xhc3MpICkgewoJCQkJY29udGV4dCA9IGpRdWVyeVN1YmNsYXNzKGNvbnRleHQpOwoJCQl9CgoJCQlyZXR1cm4galF1ZXJ5LmZuLmluaXQuY2FsbCggdGhpcywgc2VsZWN0b3IsIGNvbnRleHQsIHJvb3RqUXVlcnlTdWJjbGFzcyApOwoJCX07CgkJalF1ZXJ5U3ViY2xhc3MuZm4uaW5pdC5wcm90b3R5cGUgPSBqUXVlcnlTdWJjbGFzcy5mbjsKCQl2YXIgcm9vdGpRdWVyeVN1YmNsYXNzID0galF1ZXJ5U3ViY2xhc3MoZG9jdW1lbnQpOwoJCXJldHVybiBqUXVlcnlTdWJjbGFzczsKCX0sCgoJYnJvd3Nlcjoge30KfSk7CgovLyBDcmVhdGUgcmVhZHlMaXN0IGRlZmVycmVkCnJlYWR5TGlzdCA9IGpRdWVyeS5fRGVmZXJyZWQoKTsKCi8vIFBvcHVsYXRlIHRoZSBjbGFzczJ0eXBlIG1hcApqUXVlcnkuZWFjaCgiQm9vbGVhbiBOdW1iZXIgU3RyaW5nIEZ1bmN0aW9uIEFycmF5IERhdGUgUmVnRXhwIE9iamVjdCIuc3BsaXQoIiAiKSwgZnVuY3Rpb24oaSwgbmFtZSkgewoJY2xhc3MydHlwZVsgIltvYmplY3QgIiArIG5hbWUgKyAiXSIgXSA9IG5hbWUudG9Mb3dlckNhc2UoKTsKfSk7Cgpicm93c2VyTWF0Y2ggPSBqUXVlcnkudWFNYXRjaCggdXNlckFnZW50ICk7CmlmICggYnJvd3Nlck1hdGNoLmJyb3dzZXIgKSB7CglqUXVlcnkuYnJvd3NlclsgYnJvd3Nlck1hdGNoLmJyb3dzZXIgXSA9IHRydWU7CglqUXVlcnkuYnJvd3Nlci52ZXJzaW9uID0gYnJvd3Nlck1hdGNoLnZlcnNpb247Cn0KCi8vIERlcHJlY2F0ZWQsIHVzZSBqUXVlcnkuYnJvd3Nlci53ZWJraXQgaW5zdGVhZAppZiAoIGpRdWVyeS5icm93c2VyLndlYmtpdCApIHsKCWpRdWVyeS5icm93c2VyLnNhZmFyaSA9IHRydWU7Cn0KCmlmICggaW5kZXhPZiApIHsKCWpRdWVyeS5pbkFycmF5ID0gZnVuY3Rpb24oIGVsZW0sIGFycmF5ICkgewoJCXJldHVybiBpbmRleE9mLmNhbGwoIGFycmF5LCBlbGVtICk7Cgl9Owp9CgovLyBJRSBkb2Vzbid0IG1hdGNoIG5vbi1icmVha2luZyBzcGFjZXMgd2l0aCBccwppZiAoIHJub3R3aGl0ZS50ZXN0KCAiXHhBMCIgKSApIHsKCXRyaW1MZWZ0ID0gL15bXHNceEEwXSsvOwoJdHJpbVJpZ2h0ID0gL1tcc1x4QTBdKyQvOwp9CgovLyBBbGwgalF1ZXJ5IG9iamVjdHMgc2hvdWxkIHBvaW50IGJhY2sgdG8gdGhlc2UKcm9vdGpRdWVyeSA9IGpRdWVyeShkb2N1bWVudCk7CgovLyBDbGVhbnVwIGZ1bmN0aW9ucyBmb3IgdGhlIGRvY3VtZW50IHJlYWR5IG1ldGhvZAppZiAoIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIgKSB7CglET01Db250ZW50TG9hZGVkID0gZnVuY3Rpb24oKSB7CgkJZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lciggIkRPTUNvbnRlbnRMb2FkZWQiLCBET01Db250ZW50TG9hZGVkLCBmYWxzZSApOwoJCWpRdWVyeS5yZWFkeSgpOwoJfTsKCn0gZWxzZSBpZiAoIGRvY3VtZW50LmF0dGFjaEV2ZW50ICkgewoJRE9NQ29udGVudExvYWRlZCA9IGZ1bmN0aW9uKCkgewoJCS8vIE1ha2Ugc3VyZSBib2R5IGV4aXN0cywgYXQgbGVhc3QsIGluIGNhc2UgSUUgZ2V0cyBhIGxpdHRsZSBvdmVyemVhbG91cyAodGlja2V0ICM1NDQzKS4KCQlpZiAoIGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICJjb21wbGV0ZSIgKSB7CgkJCWRvY3VtZW50LmRldGFjaEV2ZW50KCAib25yZWFkeXN0YXRlY2hhbmdlIiwgRE9NQ29udGVudExvYWRlZCApOwoJCQlqUXVlcnkucmVhZHkoKTsKCQl9Cgl9Owp9CgovLyBUaGUgRE9NIHJlYWR5IGNoZWNrIGZvciBJbnRlcm5ldCBFeHBsb3JlcgpmdW5jdGlvbiBkb1Njcm9sbENoZWNrKCkgewoJaWYgKCBqUXVlcnkuaXNSZWFkeSApIHsKCQlyZXR1cm47Cgl9CgoJdHJ5IHsKCQkvLyBJZiBJRSBpcyB1c2VkLCB1c2UgdGhlIHRyaWNrIGJ5IERpZWdvIFBlcmluaQoJCS8vIGh0dHA6Ly9qYXZhc2NyaXB0Lm53Ym94LmNvbS9JRUNvbnRlbnRMb2FkZWQvCgkJZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsKCJsZWZ0Iik7Cgl9IGNhdGNoKGUpIHsKCQlzZXRUaW1lb3V0KCBkb1Njcm9sbENoZWNrLCAxICk7CgkJcmV0dXJuOwoJfQoKCS8vIGFuZCBleGVjdXRlIGFueSB3YWl0aW5nIGZ1bmN0aW9ucwoJalF1ZXJ5LnJlYWR5KCk7Cn0KCi8vIEV4cG9zZSBqUXVlcnkgdG8gdGhlIGdsb2JhbCBvYmplY3QKcmV0dXJuIGpRdWVyeTsKCn0pKCk7CgoKKGZ1bmN0aW9uKCkgewoKCWpRdWVyeS5zdXBwb3J0ID0ge307CgoJdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwoKCWRpdi5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwoJZGl2LmlubmVySFRNTCA9ICIgICA8bGluay8+PHRhYmxlPjwvdGFibGU+PGEgaHJlZj0nL2EnIHN0eWxlPSdjb2xvcjpyZWQ7ZmxvYXQ6bGVmdDtvcGFjaXR5Oi41NTsnPmE8L2E+PGlucHV0IHR5cGU9J2NoZWNrYm94Jy8+IjsKCgl2YXIgYWxsID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIiksCgkJYSA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYSIpWzBdLAoJCXNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpLAoJCW9wdCA9IHNlbGVjdC5hcHBlbmRDaGlsZCggZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib3B0aW9uIikgKSwKCQlpbnB1dCA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXTsKCgkvLyBDYW4ndCBnZXQgYmFzaWMgdGVzdCBzdXBwb3J0CglpZiAoICFhbGwgfHwgIWFsbC5sZW5ndGggfHwgIWEgKSB7CgkJcmV0dXJuOwoJfQoKCWpRdWVyeS5zdXBwb3J0ID0gewoJCS8vIElFIHN0cmlwcyBsZWFkaW5nIHdoaXRlc3BhY2Ugd2hlbiAuaW5uZXJIVE1MIGlzIHVzZWQKCQlsZWFkaW5nV2hpdGVzcGFjZTogZGl2LmZpcnN0Q2hpbGQubm9kZVR5cGUgPT09IDMsCgoJCS8vIE1ha2Ugc3VyZSB0aGF0IHRib2R5IGVsZW1lbnRzIGFyZW4ndCBhdXRvbWF0aWNhbGx5IGluc2VydGVkCgkJLy8gSUUgd2lsbCBpbnNlcnQgdGhlbSBpbnRvIGVtcHR5IHRhYmxlcwoJCXRib2R5OiAhZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpLmxlbmd0aCwKCgkJLy8gTWFrZSBzdXJlIHRoYXQgbGluayBlbGVtZW50cyBnZXQgc2VyaWFsaXplZCBjb3JyZWN0bHkgYnkgaW5uZXJIVE1MCgkJLy8gVGhpcyByZXF1aXJlcyBhIHdyYXBwZXIgZWxlbWVudCBpbiBJRQoJCWh0bWxTZXJpYWxpemU6ICEhZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsaW5rIikubGVuZ3RoLAoKCQkvLyBHZXQgdGhlIHN0eWxlIGluZm9ybWF0aW9uIGZyb20gZ2V0QXR0cmlidXRlCgkJLy8gKElFIHVzZXMgLmNzc1RleHQgaW5zdGVkKQoJCXN0eWxlOiAvcmVkLy50ZXN0KCBhLmdldEF0dHJpYnV0ZSgic3R5bGUiKSApLAoKCQkvLyBNYWtlIHN1cmUgdGhhdCBVUkxzIGFyZW4ndCBtYW5pcHVsYXRlZAoJCS8vIChJRSBub3JtYWxpemVzIGl0IGJ5IGRlZmF1bHQpCgkJaHJlZk5vcm1hbGl6ZWQ6IGEuZ2V0QXR0cmlidXRlKCJocmVmIikgPT09ICIvYSIsCgoJCS8vIE1ha2Ugc3VyZSB0aGF0IGVsZW1lbnQgb3BhY2l0eSBleGlzdHMKCQkvLyAoSUUgdXNlcyBmaWx0ZXIgaW5zdGVhZCkKCQkvLyBVc2UgYSByZWdleCB0byB3b3JrIGFyb3VuZCBhIFdlYktpdCBpc3N1ZS4gU2VlICM1MTQ1CgkJb3BhY2l0eTogL14wLjU1JC8udGVzdCggYS5zdHlsZS5vcGFjaXR5ICksCgoJCS8vIFZlcmlmeSBzdHlsZSBmbG9hdCBleGlzdGVuY2UKCQkvLyAoSUUgdXNlcyBzdHlsZUZsb2F0IGluc3RlYWQgb2YgY3NzRmxvYXQpCgkJY3NzRmxvYXQ6ICEhYS5zdHlsZS5jc3NGbG9hdCwKCgkJLy8gTWFrZSBzdXJlIHRoYXQgaWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkIGZvciBhIGNoZWNrYm94CgkJLy8gdGhhdCBpdCBkZWZhdWx0cyB0byAib24iLgoJCS8vIChXZWJLaXQgZGVmYXVsdHMgdG8gIiIgaW5zdGVhZCkKCQljaGVja09uOiBpbnB1dC52YWx1ZSA9PT0gIm9uIiwKCgkJLy8gTWFrZSBzdXJlIHRoYXQgYSBzZWxlY3RlZC1ieS1kZWZhdWx0IG9wdGlvbiBoYXMgYSB3b3JraW5nIHNlbGVjdGVkIHByb3BlcnR5LgoJCS8vIChXZWJLaXQgZGVmYXVsdHMgdG8gZmFsc2UgaW5zdGVhZCBvZiB0cnVlLCBJRSB0b28sIGlmIGl0J3MgaW4gYW4gb3B0Z3JvdXApCgkJb3B0U2VsZWN0ZWQ6IG9wdC5zZWxlY3RlZCwKCgkJLy8gV2lsbCBiZSBkZWZpbmVkIGxhdGVyCgkJZGVsZXRlRXhwYW5kbzogdHJ1ZSwKCQlvcHREaXNhYmxlZDogZmFsc2UsCgkJY2hlY2tDbG9uZTogZmFsc2UsCgkJbm9DbG9uZUV2ZW50OiB0cnVlLAoJCW5vQ2xvbmVDaGVja2VkOiB0cnVlLAoJCWJveE1vZGVsOiBudWxsLAoJCWlubGluZUJsb2NrTmVlZHNMYXlvdXQ6IGZhbHNlLAoJCXNocmlua1dyYXBCbG9ja3M6IGZhbHNlLAoJCXJlbGlhYmxlSGlkZGVuT2Zmc2V0czogdHJ1ZQoJfTsKCglpbnB1dC5jaGVja2VkID0gdHJ1ZTsKCWpRdWVyeS5zdXBwb3J0Lm5vQ2xvbmVDaGVja2VkID0gaW5wdXQuY2xvbmVOb2RlKCB0cnVlICkuY2hlY2tlZDsKCgkvLyBNYWtlIHN1cmUgdGhhdCB0aGUgb3B0aW9ucyBpbnNpZGUgZGlzYWJsZWQgc2VsZWN0cyBhcmVuJ3QgbWFya2VkIGFzIGRpc2FibGVkCgkvLyAoV2ViS2l0IG1hcmtzIHRoZW0gYXMgZGlhYmxlZCkKCXNlbGVjdC5kaXNhYmxlZCA9IHRydWU7CglqUXVlcnkuc3VwcG9ydC5vcHREaXNhYmxlZCA9ICFvcHQuZGlzYWJsZWQ7CgoJdmFyIF9zY3JpcHRFdmFsID0gbnVsbDsKCWpRdWVyeS5zdXBwb3J0LnNjcmlwdEV2YWwgPSBmdW5jdGlvbigpIHsKCQlpZiAoIF9zY3JpcHRFdmFsID09PSBudWxsICkgewoJCQl2YXIgcm9vdCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwKCQkJCXNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpLAoJCQkJaWQgPSAic2NyaXB0IiArIGpRdWVyeS5ub3coKTsKCgkJCXRyeSB7CgkJCQlzY3JpcHQuYXBwZW5kQ2hpbGQoIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCAid2luZG93LiIgKyBpZCArICI9MTsiICkgKTsKCQkJfSBjYXRjaChlKSB7fQoKCQkJcm9vdC5pbnNlcnRCZWZvcmUoIHNjcmlwdCwgcm9vdC5maXJzdENoaWxkICk7CgoJCQkvLyBNYWtlIHN1cmUgdGhhdCB0aGUgZXhlY3V0aW9uIG9mIGNvZGUgd29ya3MgYnkgaW5qZWN0aW5nIGEgc2NyaXB0CgkJCS8vIHRhZyB3aXRoIGFwcGVuZENoaWxkL2NyZWF0ZVRleHROb2RlCgkJCS8vIChJRSBkb2Vzbid0IHN1cHBvcnQgdGhpcywgZmFpbHMsIGFuZCB1c2VzIC50ZXh0IGluc3RlYWQpCgkJCWlmICggd2luZG93WyBpZCBdICkgewoJCQkJX3NjcmlwdEV2YWwgPSB0cnVlOwoJCQkJZGVsZXRlIHdpbmRvd1sgaWQgXTsKCQkJfSBlbHNlIHsKCQkJCV9zY3JpcHRFdmFsID0gZmFsc2U7CgkJCX0KCgkJCXJvb3QucmVtb3ZlQ2hpbGQoIHNjcmlwdCApOwoJCQkvLyByZWxlYXNlIG1lbW9yeSBpbiBJRQoJCQlyb290ID0gc2NyaXB0ID0gaWQgID0gbnVsbDsKCQl9CgoJCXJldHVybiBfc2NyaXB0RXZhbDsKCX07CgoJLy8gVGVzdCB0byBzZWUgaWYgaXQncyBwb3NzaWJsZSB0byBkZWxldGUgYW4gZXhwYW5kbyBmcm9tIGFuIGVsZW1lbnQKCS8vIEZhaWxzIGluIEludGVybmV0IEV4cGxvcmVyCgl0cnkgewoJCWRlbGV0ZSBkaXYudGVzdDsKCgl9IGNhdGNoKGUpIHsKCQlqUXVlcnkuc3VwcG9ydC5kZWxldGVFeHBhbmRvID0gZmFsc2U7Cgl9CgoJaWYgKCAhZGl2LmFkZEV2ZW50TGlzdGVuZXIgJiYgZGl2LmF0dGFjaEV2ZW50ICYmIGRpdi5maXJlRXZlbnQgKSB7CgkJZGl2LmF0dGFjaEV2ZW50KCJvbmNsaWNrIiwgZnVuY3Rpb24gY2xpY2soKSB7CgkJCS8vIENsb25pbmcgYSBub2RlIHNob3VsZG4ndCBjb3B5IG92ZXIgYW55CgkJCS8vIGJvdW5kIGV2ZW50IGhhbmRsZXJzIChJRSBkb2VzIHRoaXMpCgkJCWpRdWVyeS5zdXBwb3J0Lm5vQ2xvbmVFdmVudCA9IGZhbHNlOwoJCQlkaXYuZGV0YWNoRXZlbnQoIm9uY2xpY2siLCBjbGljayk7CgkJfSk7CgkJZGl2LmNsb25lTm9kZSh0cnVlKS5maXJlRXZlbnQoIm9uY2xpY2siKTsKCX0KCglkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKCWRpdi5pbm5lckhUTUwgPSAiPGlucHV0IHR5cGU9J3JhZGlvJyBuYW1lPSdyYWRpb3Rlc3QnIGNoZWNrZWQ9J2NoZWNrZWQnLz4iOwoKCXZhciBmcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKCWZyYWdtZW50LmFwcGVuZENoaWxkKCBkaXYuZmlyc3RDaGlsZCApOwoKCS8vIFdlYktpdCBkb2Vzbid0IGNsb25lIGNoZWNrZWQgc3RhdGUgY29ycmVjdGx5IGluIGZyYWdtZW50cwoJalF1ZXJ5LnN1cHBvcnQuY2hlY2tDbG9uZSA9IGZyYWdtZW50LmNsb25lTm9kZSh0cnVlKS5jbG9uZU5vZGUodHJ1ZSkubGFzdENoaWxkLmNoZWNrZWQ7CgoJLy8gRmlndXJlIG91dCBpZiB0aGUgVzNDIGJveCBtb2RlbCB3b3JrcyBhcyBleHBlY3RlZAoJLy8gZG9jdW1lbnQuYm9keSBtdXN0IGV4aXN0IGJlZm9yZSB3ZSBjYW4gZG8gdGhpcwoJalF1ZXJ5KGZ1bmN0aW9uKCkgewoJCXZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSwKCQkJYm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF07CgoJCS8vIEZyYW1lc2V0IGRvY3VtZW50cyB3aXRoIG5vIGJvZHkgc2hvdWxkIG5vdCBydW4gdGhpcyBjb2RlCgkJaWYgKCAhYm9keSApIHsKCQkJcmV0dXJuOwoJCX0KCgkJZGl2LnN0eWxlLndpZHRoID0gZGl2LnN0eWxlLnBhZGRpbmdMZWZ0ID0gIjFweCI7CgkJYm9keS5hcHBlbmRDaGlsZCggZGl2ICk7CgkJalF1ZXJ5LmJveE1vZGVsID0galF1ZXJ5LnN1cHBvcnQuYm94TW9kZWwgPSBkaXYub2Zmc2V0V2lkdGggPT09IDI7CgoJCWlmICggInpvb20iIGluIGRpdi5zdHlsZSApIHsKCQkJLy8gQ2hlY2sgaWYgbmF0aXZlbHkgYmxvY2stbGV2ZWwgZWxlbWVudHMgYWN0IGxpa2UgaW5saW5lLWJsb2NrCgkJCS8vIGVsZW1lbnRzIHdoZW4gc2V0dGluZyB0aGVpciBkaXNwbGF5IHRvICdpbmxpbmUnIGFuZCBnaXZpbmcKCQkJLy8gdGhlbSBsYXlvdXQKCQkJLy8gKElFIDwgOCBkb2VzIHRoaXMpCgkJCWRpdi5zdHlsZS5kaXNwbGF5ID0gImlubGluZSI7CgkJCWRpdi5zdHlsZS56b29tID0gMTsKCQkJalF1ZXJ5LnN1cHBvcnQuaW5saW5lQmxvY2tOZWVkc0xheW91dCA9IGRpdi5vZmZzZXRXaWR0aCA9PT0gMjsKCgkJCS8vIENoZWNrIGlmIGVsZW1lbnRzIHdpdGggbGF5b3V0IHNocmluay13cmFwIHRoZWlyIGNoaWxkcmVuCgkJCS8vIChJRSA2IGRvZXMgdGhpcykKCQkJZGl2LnN0eWxlLmRpc3BsYXkgPSAiIjsKCQkJZGl2LmlubmVySFRNTCA9ICI8ZGl2IHN0eWxlPSd3aWR0aDo0cHg7Jz48L2Rpdj4iOwoJCQlqUXVlcnkuc3VwcG9ydC5zaHJpbmtXcmFwQmxvY2tzID0gZGl2Lm9mZnNldFdpZHRoICE9PSAyOwoJCX0KCgkJZGl2LmlubmVySFRNTCA9ICI8dGFibGU+PHRyPjx0ZCBzdHlsZT0ncGFkZGluZzowO2JvcmRlcjowO2Rpc3BsYXk6bm9uZSc+PC90ZD48dGQ+dDwvdGQ+PC90cj48L3RhYmxlPiI7CgkJdmFyIHRkcyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGQiKTsKCgkJLy8gQ2hlY2sgaWYgdGFibGUgY2VsbHMgc3RpbGwgaGF2ZSBvZmZzZXRXaWR0aC9IZWlnaHQgd2hlbiB0aGV5IGFyZSBzZXQKCQkvLyB0byBkaXNwbGF5Om5vbmUgYW5kIHRoZXJlIGFyZSBzdGlsbCBvdGhlciB2aXNpYmxlIHRhYmxlIGNlbGxzIGluIGEKCQkvLyB0YWJsZSByb3c7IGlmIHNvLCBvZmZzZXRXaWR0aC9IZWlnaHQgYXJlIG5vdCByZWxpYWJsZSBmb3IgdXNlIHdoZW4KCQkvLyBkZXRlcm1pbmluZyBpZiBhbiBlbGVtZW50IGhhcyBiZWVuIGhpZGRlbiBkaXJlY3RseSB1c2luZwoJCS8vIGRpc3BsYXk6bm9uZSAoaXQgaXMgc3RpbGwgc2FmZSB0byB1c2Ugb2Zmc2V0cyBpZiBhIHBhcmVudCBlbGVtZW50IGlzCgkJLy8gaGlkZGVuOyBkb24gc2FmZXR5IGdvZ2dsZXMgYW5kIHNlZSBidWcgIzQ1MTIgZm9yIG1vcmUgaW5mb3JtYXRpb24pLgoJCS8vIChvbmx5IElFIDggZmFpbHMgdGhpcyB0ZXN0KQoJCWpRdWVyeS5zdXBwb3J0LnJlbGlhYmxlSGlkZGVuT2Zmc2V0cyA9IHRkc1swXS5vZmZzZXRIZWlnaHQgPT09IDA7CgoJCXRkc1swXS5zdHlsZS5kaXNwbGF5ID0gIiI7CgkJdGRzWzFdLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CgoJCS8vIENoZWNrIGlmIGVtcHR5IHRhYmxlIGNlbGxzIHN0aWxsIGhhdmUgb2Zmc2V0V2lkdGgvSGVpZ2h0CgkJLy8gKElFIDwgOCBmYWlsIHRoaXMgdGVzdCkKCQlqUXVlcnkuc3VwcG9ydC5yZWxpYWJsZUhpZGRlbk9mZnNldHMgPSBqUXVlcnkuc3VwcG9ydC5yZWxpYWJsZUhpZGRlbk9mZnNldHMgJiYgdGRzWzBdLm9mZnNldEhlaWdodCA9PT0gMDsKCQlkaXYuaW5uZXJIVE1MID0gIiI7CgoJCWJvZHkucmVtb3ZlQ2hpbGQoIGRpdiApLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CgkJZGl2ID0gdGRzID0gbnVsbDsKCX0pOwoKCS8vIFRlY2huaXF1ZSBmcm9tIEp1cml5IFpheXRzZXYKCS8vIGh0dHA6Ly90aGlua3dlYjIuY29tL3Byb2plY3RzL3Byb3RvdHlwZS9kZXRlY3RpbmctZXZlbnQtc3VwcG9ydC13aXRob3V0LWJyb3dzZXItc25pZmZpbmcvCgl2YXIgZXZlbnRTdXBwb3J0ZWQgPSBmdW5jdGlvbiggZXZlbnROYW1lICkgewoJCXZhciBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwoJCWV2ZW50TmFtZSA9ICJvbiIgKyBldmVudE5hbWU7CgoJCS8vIFdlIG9ubHkgY2FyZSBhYm91dCB0aGUgY2FzZSB3aGVyZSBub24tc3RhbmRhcmQgZXZlbnQgc3lzdGVtcwoJCS8vIGFyZSB1c2VkLCBuYW1lbHkgaW4gSUUuIFNob3J0LWNpcmN1aXRpbmcgaGVyZSBoZWxwcyB1cyB0bwoJCS8vIGF2b2lkIGFuIGV2YWwgY2FsbCAoaW4gc2V0QXR0cmlidXRlKSB3aGljaCBjYW4gY2F1c2UgQ1NQCgkJLy8gdG8gZ28gaGF5d2lyZS4gU2VlOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi9TZWN1cml0eS9DU1AKCQlpZiAoICFlbC5hdHRhY2hFdmVudCApIHsKCQkJcmV0dXJuIHRydWU7CgkJfQoKCQl2YXIgaXNTdXBwb3J0ZWQgPSAoZXZlbnROYW1lIGluIGVsKTsKCQlpZiAoICFpc1N1cHBvcnRlZCApIHsKCQkJZWwuc2V0QXR0cmlidXRlKGV2ZW50TmFtZSwgInJldHVybjsiKTsKCQkJaXNTdXBwb3J0ZWQgPSB0eXBlb2YgZWxbZXZlbnROYW1lXSA9PT0gImZ1bmN0aW9uIjsKCQl9CgkJZWwgPSBudWxsOwoKCQlyZXR1cm4gaXNTdXBwb3J0ZWQ7Cgl9OwoKCWpRdWVyeS5zdXBwb3J0LnN1Ym1pdEJ1YmJsZXMgPSBldmVudFN1cHBvcnRlZCgic3VibWl0Iik7CglqUXVlcnkuc3VwcG9ydC5jaGFuZ2VCdWJibGVzID0gZXZlbnRTdXBwb3J0ZWQoImNoYW5nZSIpOwoKCS8vIHJlbGVhc2UgbWVtb3J5IGluIElFCglkaXYgPSBhbGwgPSBhID0gbnVsbDsKfSkoKTsKCgoKdmFyIHJicmFjZSA9IC9eKD86XHsuKlx9fFxbLipcXSkkLzsKCmpRdWVyeS5leHRlbmQoewoJY2FjaGU6IHt9LAoKCS8vIFBsZWFzZSB1c2Ugd2l0aCBjYXV0aW9uCgl1dWlkOiAwLAoKCS8vIFVuaXF1ZSBmb3IgZWFjaCBjb3B5IG9mIGpRdWVyeSBvbiB0aGUgcGFnZQoJLy8gTm9uLWRpZ2l0cyByZW1vdmVkIHRvIG1hdGNoIHJpbmxpbmVqUXVlcnkKCWV4cGFuZG86ICJqUXVlcnkiICsgKCBqUXVlcnkuZm4uanF1ZXJ5ICsgTWF0aC5yYW5kb20oKSApLnJlcGxhY2UoIC9cRC9nLCAiIiApLAoKCS8vIFRoZSBmb2xsb3dpbmcgZWxlbWVudHMgdGhyb3cgdW5jYXRjaGFibGUgZXhjZXB0aW9ucyBpZiB5b3UKCS8vIGF0dGVtcHQgdG8gYWRkIGV4cGFuZG8gcHJvcGVydGllcyB0byB0aGVtLgoJbm9EYXRhOiB7CgkJImVtYmVkIjogdHJ1ZSwKCQkvLyBCYW4gYWxsIG9iamVjdHMgZXhjZXB0IGZvciBGbGFzaCAod2hpY2ggaGFuZGxlIGV4cGFuZG9zKQoJCSJvYmplY3QiOiAiY2xzaWQ6RDI3Q0RCNkUtQUU2RC0xMWNmLTk2QjgtNDQ0NTUzNTQwMDAwIiwKCQkiYXBwbGV0IjogdHJ1ZQoJfSwKCgloYXNEYXRhOiBmdW5jdGlvbiggZWxlbSApIHsKCQllbGVtID0gZWxlbS5ub2RlVHlwZSA/IGpRdWVyeS5jYWNoZVsgZWxlbVtqUXVlcnkuZXhwYW5kb10gXSA6IGVsZW1bIGpRdWVyeS5leHBhbmRvIF07CgoJCXJldHVybiAhIWVsZW0gJiYgIWlzRW1wdHlEYXRhT2JqZWN0KCBlbGVtICk7Cgl9LAoKCWRhdGE6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCBkYXRhLCBwdnQgLyogSW50ZXJuYWwgVXNlIE9ubHkgKi8gKSB7CgkJaWYgKCAhalF1ZXJ5LmFjY2VwdERhdGEoIGVsZW0gKSApIHsKCQkJcmV0dXJuOwoJCX0KCgkJdmFyIGludGVybmFsS2V5ID0galF1ZXJ5LmV4cGFuZG8sIGdldEJ5TmFtZSA9IHR5cGVvZiBuYW1lID09PSAic3RyaW5nIiwgdGhpc0NhY2hlLAoKCQkJLy8gV2UgaGF2ZSB0byBoYW5kbGUgRE9NIG5vZGVzIGFuZCBKUyBvYmplY3RzIGRpZmZlcmVudGx5IGJlY2F1c2UgSUU2LTcKCQkJLy8gY2FuJ3QgR0Mgb2JqZWN0IHJlZmVyZW5jZXMgcHJvcGVybHkgYWNyb3NzIHRoZSBET00tSlMgYm91bmRhcnkKCQkJaXNOb2RlID0gZWxlbS5ub2RlVHlwZSwKCgkJCS8vIE9ubHkgRE9NIG5vZGVzIG5lZWQgdGhlIGdsb2JhbCBqUXVlcnkgY2FjaGU7IEpTIG9iamVjdCBkYXRhIGlzCgkJCS8vIGF0dGFjaGVkIGRpcmVjdGx5IHRvIHRoZSBvYmplY3Qgc28gR0MgY2FuIG9jY3VyIGF1dG9tYXRpY2FsbHkKCQkJY2FjaGUgPSBpc05vZGUgPyBqUXVlcnkuY2FjaGUgOiBlbGVtLAoKCQkJLy8gT25seSBkZWZpbmluZyBhbiBJRCBmb3IgSlMgb2JqZWN0cyBpZiBpdHMgY2FjaGUgYWxyZWFkeSBleGlzdHMgYWxsb3dzCgkJCS8vIHRoZSBjb2RlIHRvIHNob3J0Y3V0IG9uIHRoZSBzYW1lIHBhdGggYXMgYSBET00gbm9kZSB3aXRoIG5vIGNhY2hlCgkJCWlkID0gaXNOb2RlID8gZWxlbVsgalF1ZXJ5LmV4cGFuZG8gXSA6IGVsZW1bIGpRdWVyeS5leHBhbmRvIF0gJiYgalF1ZXJ5LmV4cGFuZG87CgoJCS8vIEF2b2lkIGRvaW5nIGFueSBtb3JlIHdvcmsgdGhhbiB3ZSBuZWVkIHRvIHdoZW4gdHJ5aW5nIHRvIGdldCBkYXRhIG9uIGFuCgkJLy8gb2JqZWN0IHRoYXQgaGFzIG5vIGRhdGEgYXQgYWxsCgkJaWYgKCAoIWlkIHx8IChwdnQgJiYgaWQgJiYgIWNhY2hlWyBpZCBdWyBpbnRlcm5hbEtleSBdKSkgJiYgZ2V0QnlOYW1lICYmIGRhdGEgPT09IHVuZGVmaW5lZCApIHsKCQkJcmV0dXJuOwoJCX0KCgkJaWYgKCAhaWQgKSB7CgkJCS8vIE9ubHkgRE9NIG5vZGVzIG5lZWQgYSBuZXcgdW5pcXVlIElEIGZvciBlYWNoIGVsZW1lbnQgc2luY2UgdGhlaXIgZGF0YQoJCQkvLyBlbmRzIHVwIGluIHRoZSBnbG9iYWwgY2FjaGUKCQkJaWYgKCBpc05vZGUgKSB7CgkJCQllbGVtWyBqUXVlcnkuZXhwYW5kbyBdID0gaWQgPSArK2pRdWVyeS51dWlkOwoJCQl9IGVsc2UgewoJCQkJaWQgPSBqUXVlcnkuZXhwYW5kbzsKCQkJfQoJCX0KCgkJaWYgKCAhY2FjaGVbIGlkIF0gKSB7CgkJCWNhY2hlWyBpZCBdID0ge307CgoJCQkvLyBUT0RPOiBUaGlzIGlzIGEgaGFjayBmb3IgMS41IE9OTFkuIEF2b2lkcyBleHBvc2luZyBqUXVlcnkKCQkJLy8gbWV0YWRhdGEgb24gcGxhaW4gSlMgb2JqZWN0cyB3aGVuIHRoZSBvYmplY3QgaXMgc2VyaWFsaXplZCB1c2luZwoJCQkvLyBKU09OLnN0cmluZ2lmeQoJCQlpZiAoICFpc05vZGUgKSB7CgkJCQljYWNoZVsgaWQgXS50b0pTT04gPSBqUXVlcnkubm9vcDsKCQkJfQoJCX0KCgkJLy8gQW4gb2JqZWN0IGNhbiBiZSBwYXNzZWQgdG8galF1ZXJ5LmRhdGEgaW5zdGVhZCBvZiBhIGtleS92YWx1ZSBwYWlyOyB0aGlzIGdldHMKCQkvLyBzaGFsbG93IGNvcGllZCBvdmVyIG9udG8gdGhlIGV4aXN0aW5nIGNhY2hlCgkJaWYgKCB0eXBlb2YgbmFtZSA9PT0gIm9iamVjdCIgfHwgdHlwZW9mIG5hbWUgPT09ICJmdW5jdGlvbiIgKSB7CgkJCWlmICggcHZ0ICkgewoJCQkJY2FjaGVbIGlkIF1bIGludGVybmFsS2V5IF0gPSBqUXVlcnkuZXh0ZW5kKGNhY2hlWyBpZCBdWyBpbnRlcm5hbEtleSBdLCBuYW1lKTsKCQkJfSBlbHNlIHsKCQkJCWNhY2hlWyBpZCBdID0galF1ZXJ5LmV4dGVuZChjYWNoZVsgaWQgXSwgbmFtZSk7CgkJCX0KCQl9CgoJCXRoaXNDYWNoZSA9IGNhY2hlWyBpZCBdOwoKCQkvLyBJbnRlcm5hbCBqUXVlcnkgZGF0YSBpcyBzdG9yZWQgaW4gYSBzZXBhcmF0ZSBvYmplY3QgaW5zaWRlIHRoZSBvYmplY3QncyBkYXRhCgkJLy8gY2FjaGUgaW4gb3JkZXIgdG8gYXZvaWQga2V5IGNvbGxpc2lvbnMgYmV0d2VlbiBpbnRlcm5hbCBkYXRhIGFuZCB1c2VyLWRlZmluZWQKCQkvLyBkYXRhCgkJaWYgKCBwdnQgKSB7CgkJCWlmICggIXRoaXNDYWNoZVsgaW50ZXJuYWxLZXkgXSApIHsKCQkJCXRoaXNDYWNoZVsgaW50ZXJuYWxLZXkgXSA9IHt9OwoJCQl9CgoJCQl0aGlzQ2FjaGUgPSB0aGlzQ2FjaGVbIGludGVybmFsS2V5IF07CgkJfQoKCQlpZiAoIGRhdGEgIT09IHVuZGVmaW5lZCApIHsKCQkJdGhpc0NhY2hlWyBuYW1lIF0gPSBkYXRhOwoJCX0KCgkJLy8gVE9ETzogVGhpcyBpcyBhIGhhY2sgZm9yIDEuNSBPTkxZLiBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gMS42LiBVc2VycyBzaG91bGQKCQkvLyBub3QgYXR0ZW1wdCB0byBpbnNwZWN0IHRoZSBpbnRlcm5hbCBldmVudHMgb2JqZWN0IHVzaW5nIGpRdWVyeS5kYXRhLCBhcyB0aGlzCgkJLy8gaW50ZXJuYWwgZGF0YSBvYmplY3QgaXMgdW5kb2N1bWVudGVkIGFuZCBzdWJqZWN0IHRvIGNoYW5nZS4KCQlpZiAoIG5hbWUgPT09ICJldmVudHMiICYmICF0aGlzQ2FjaGVbbmFtZV0gKSB7CgkJCXJldHVybiB0aGlzQ2FjaGVbIGludGVybmFsS2V5IF0gJiYgdGhpc0NhY2hlWyBpbnRlcm5hbEtleSBdLmV2ZW50czsKCQl9CgoJCXJldHVybiBnZXRCeU5hbWUgPyB0aGlzQ2FjaGVbIG5hbWUgXSA6IHRoaXNDYWNoZTsKCX0sCgoJcmVtb3ZlRGF0YTogZnVuY3Rpb24oIGVsZW0sIG5hbWUsIHB2dCAvKiBJbnRlcm5hbCBVc2UgT25seSAqLyApIHsKCQlpZiAoICFqUXVlcnkuYWNjZXB0RGF0YSggZWxlbSApICkgewoJCQlyZXR1cm47CgkJfQoKCQl2YXIgaW50ZXJuYWxLZXkgPSBqUXVlcnkuZXhwYW5kbywgaXNOb2RlID0gZWxlbS5ub2RlVHlwZSwKCgkJCS8vIFNlZSBqUXVlcnkuZGF0YSBmb3IgbW9yZSBpbmZvcm1hdGlvbgoJCQljYWNoZSA9IGlzTm9kZSA/IGpRdWVyeS5jYWNoZSA6IGVsZW0sCgoJCQkvLyBTZWUgalF1ZXJ5LmRhdGEgZm9yIG1vcmUgaW5mb3JtYXRpb24KCQkJaWQgPSBpc05vZGUgPyBlbGVtWyBqUXVlcnkuZXhwYW5kbyBdIDogalF1ZXJ5LmV4cGFuZG87CgoJCS8vIElmIHRoZXJlIGlzIGFscmVhZHkgbm8gY2FjaGUgZW50cnkgZm9yIHRoaXMgb2JqZWN0LCB0aGVyZSBpcyBubwoJCS8vIHB1cnBvc2UgaW4gY29udGludWluZwoJCWlmICggIWNhY2hlWyBpZCBdICkgewoJCQlyZXR1cm47CgkJfQoKCQlpZiAoIG5hbWUgKSB7CgkJCXZhciB0aGlzQ2FjaGUgPSBwdnQgPyBjYWNoZVsgaWQgXVsgaW50ZXJuYWxLZXkgXSA6IGNhY2hlWyBpZCBdOwoKCQkJaWYgKCB0aGlzQ2FjaGUgKSB7CgkJCQlkZWxldGUgdGhpc0NhY2hlWyBuYW1lIF07CgoJCQkJLy8gSWYgdGhlcmUgaXMgbm8gZGF0YSBsZWZ0IGluIHRoZSBjYWNoZSwgd2Ugd2FudCB0byBjb250aW51ZQoJCQkJLy8gYW5kIGxldCB0aGUgY2FjaGUgb2JqZWN0IGl0c2VsZiBnZXQgZGVzdHJveWVkCgkJCQlpZiAoICFpc0VtcHR5RGF0YU9iamVjdCh0aGlzQ2FjaGUpICkgewoJCQkJCXJldHVybjsKCQkJCX0KCQkJfQoJCX0KCgkJLy8gU2VlIGpRdWVyeS5kYXRhIGZvciBtb3JlIGluZm9ybWF0aW9uCgkJaWYgKCBwdnQgKSB7CgkJCWRlbGV0ZSBjYWNoZVsgaWQgXVsgaW50ZXJuYWxLZXkgXTsKCgkJCS8vIERvbid0IGRlc3Ryb3kgdGhlIHBhcmVudCBjYWNoZSB1bmxlc3MgdGhlIGludGVybmFsIGRhdGEgb2JqZWN0CgkJCS8vIGhhZCBiZWVuIHRoZSBvbmx5IHRoaW5nIGxlZnQgaW4gaXQKCQkJaWYgKCAhaXNFbXB0eURhdGFPYmplY3QoY2FjaGVbIGlkIF0pICkgewoJCQkJcmV0dXJuOwoJCQl9CgkJfQoKCQl2YXIgaW50ZXJuYWxDYWNoZSA9IGNhY2hlWyBpZCBdWyBpbnRlcm5hbEtleSBdOwoKCQkvLyBCcm93c2VycyB0aGF0IGZhaWwgZXhwYW5kbyBkZWxldGlvbiBhbHNvIHJlZnVzZSB0byBkZWxldGUgZXhwYW5kb3Mgb24KCQkvLyB0aGUgd2luZG93LCBidXQgaXQgd2lsbCBhbGxvdyBpdCBvbiBhbGwgb3RoZXIgSlMgb2JqZWN0czsgb3RoZXIgYnJvd3NlcnMKCQkvLyBkb24ndCBjYXJlCgkJaWYgKCBqUXVlcnkuc3VwcG9ydC5kZWxldGVFeHBhbmRvIHx8IGNhY2hlICE9IHdpbmRvdyApIHsKCQkJZGVsZXRlIGNhY2hlWyBpZCBdOwoJCX0gZWxzZSB7CgkJCWNhY2hlWyBpZCBdID0gbnVsbDsKCQl9CgoJCS8vIFdlIGRlc3Ryb3llZCB0aGUgZW50aXJlIHVzZXIgY2FjaGUgYXQgb25jZSBiZWNhdXNlIGl0J3MgZmFzdGVyIHRoYW4KCQkvLyBpdGVyYXRpbmcgdGhyb3VnaCBlYWNoIGtleSwgYnV0IHdlIG5lZWQgdG8gY29udGludWUgdG8gcGVyc2lzdCBpbnRlcm5hbAoJCS8vIGRhdGEgaWYgaXQgZXhpc3RlZAoJCWlmICggaW50ZXJuYWxDYWNoZSApIHsKCQkJY2FjaGVbIGlkIF0gPSB7fTsKCQkJLy8gVE9ETzogVGhpcyBpcyBhIGhhY2sgZm9yIDEuNSBPTkxZLiBBdm9pZHMgZXhwb3NpbmcgalF1ZXJ5CgkJCS8vIG1ldGFkYXRhIG9uIHBsYWluIEpTIG9iamVjdHMgd2hlbiB0aGUgb2JqZWN0IGlzIHNlcmlhbGl6ZWQgdXNpbmcKCQkJLy8gSlNPTi5zdHJpbmdpZnkKCQkJaWYgKCAhaXNOb2RlICkgewoJCQkJY2FjaGVbIGlkIF0udG9KU09OID0galF1ZXJ5Lm5vb3A7CgkJCX0KCgkJCWNhY2hlWyBpZCBdWyBpbnRlcm5hbEtleSBdID0gaW50ZXJuYWxDYWNoZTsKCgkJLy8gT3RoZXJ3aXNlLCB3ZSBuZWVkIHRvIGVsaW1pbmF0ZSB0aGUgZXhwYW5kbyBvbiB0aGUgbm9kZSB0byBhdm9pZAoJCS8vIGZhbHNlIGxvb2t1cHMgaW4gdGhlIGNhY2hlIGZvciBlbnRyaWVzIHRoYXQgbm8gbG9uZ2VyIGV4aXN0CgkJfSBlbHNlIGlmICggaXNOb2RlICkgewoJCQkvLyBJRSBkb2VzIG5vdCBhbGxvdyB1cyB0byBkZWxldGUgZXhwYW5kbyBwcm9wZXJ0aWVzIGZyb20gbm9kZXMsCgkJCS8vIG5vciBkb2VzIGl0IGhhdmUgYSByZW1vdmVBdHRyaWJ1dGUgZnVuY3Rpb24gb24gRG9jdW1lbnQgbm9kZXM7CgkJCS8vIHdlIG11c3QgaGFuZGxlIGFsbCBvZiB0aGVzZSBjYXNlcwoJCQlpZiAoIGpRdWVyeS5zdXBwb3J0LmRlbGV0ZUV4cGFuZG8gKSB7CgkJCQlkZWxldGUgZWxlbVsgalF1ZXJ5LmV4cGFuZG8gXTsKCQkJfSBlbHNlIGlmICggZWxlbS5yZW1vdmVBdHRyaWJ1dGUgKSB7CgkJCQllbGVtLnJlbW92ZUF0dHJpYnV0ZSggalF1ZXJ5LmV4cGFuZG8gKTsKCQkJfSBlbHNlIHsKCQkJCWVsZW1bIGpRdWVyeS5leHBhbmRvIF0gPSBudWxsOwoJCQl9CgkJfQoJfSwKCgkvLyBGb3IgaW50ZXJuYWwgdXNlIG9ubHkuCglfZGF0YTogZnVuY3Rpb24oIGVsZW0sIG5hbWUsIGRhdGEgKSB7CgkJcmV0dXJuIGpRdWVyeS5kYXRhKCBlbGVtLCBuYW1lLCBkYXRhLCB0cnVlICk7Cgl9LAoKCS8vIEEgbWV0aG9kIGZvciBkZXRlcm1pbmluZyBpZiBhIERPTSBub2RlIGNhbiBoYW5kbGUgdGhlIGRhdGEgZXhwYW5kbwoJYWNjZXB0RGF0YTogZnVuY3Rpb24oIGVsZW0gKSB7CgkJaWYgKCBlbGVtLm5vZGVOYW1lICkgewoJCQl2YXIgbWF0Y2ggPSBqUXVlcnkubm9EYXRhWyBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgXTsKCgkJCWlmICggbWF0Y2ggKSB7CgkJCQlyZXR1cm4gIShtYXRjaCA9PT0gdHJ1ZSB8fCBlbGVtLmdldEF0dHJpYnV0ZSgiY2xhc3NpZCIpICE9PSBtYXRjaCk7CgkJCX0KCQl9CgoJCXJldHVybiB0cnVlOwoJfQp9KTsKCmpRdWVyeS5mbi5leHRlbmQoewoJZGF0YTogZnVuY3Rpb24oIGtleSwgdmFsdWUgKSB7CgkJdmFyIGRhdGEgPSBudWxsOwoKCQlpZiAoIHR5cGVvZiBrZXkgPT09ICJ1bmRlZmluZWQiICkgewoJCQlpZiAoIHRoaXMubGVuZ3RoICkgewoJCQkJZGF0YSA9IGpRdWVyeS5kYXRhKCB0aGlzWzBdICk7CgoJCQkJaWYgKCB0aGlzWzBdLm5vZGVUeXBlID09PSAxICkgewoJCQkJCXZhciBhdHRyID0gdGhpc1swXS5hdHRyaWJ1dGVzLCBuYW1lOwoJCQkJCWZvciAoIHZhciBpID0gMCwgbCA9IGF0dHIubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCQkJCQluYW1lID0gYXR0cltpXS5uYW1lOwoKCQkJCQkJaWYgKCBuYW1lLmluZGV4T2YoICJkYXRhLSIgKSA9PT0gMCApIHsKCQkJCQkJCW5hbWUgPSBuYW1lLnN1YnN0ciggNSApOwoJCQkJCQkJZGF0YUF0dHIoIHRoaXNbMF0sIG5hbWUsIGRhdGFbIG5hbWUgXSApOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9CgoJCQlyZXR1cm4gZGF0YTsKCgkJfSBlbHNlIGlmICggdHlwZW9mIGtleSA9PT0gIm9iamVjdCIgKSB7CgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCQlqUXVlcnkuZGF0YSggdGhpcywga2V5ICk7CgkJCX0pOwoJCX0KCgkJdmFyIHBhcnRzID0ga2V5LnNwbGl0KCIuIik7CgkJcGFydHNbMV0gPSBwYXJ0c1sxXSA/ICIuIiArIHBhcnRzWzFdIDogIiI7CgoJCWlmICggdmFsdWUgPT09IHVuZGVmaW5lZCApIHsKCQkJZGF0YSA9IHRoaXMudHJpZ2dlckhhbmRsZXIoImdldERhdGEiICsgcGFydHNbMV0gKyAiISIsIFtwYXJ0c1swXV0pOwoKCQkJLy8gVHJ5IHRvIGZldGNoIGFueSBpbnRlcm5hbGx5IHN0b3JlZCBkYXRhIGZpcnN0CgkJCWlmICggZGF0YSA9PT0gdW5kZWZpbmVkICYmIHRoaXMubGVuZ3RoICkgewoJCQkJZGF0YSA9IGpRdWVyeS5kYXRhKCB0aGlzWzBdLCBrZXkgKTsKCQkJCWRhdGEgPSBkYXRhQXR0ciggdGhpc1swXSwga2V5LCBkYXRhICk7CgkJCX0KCgkJCXJldHVybiBkYXRhID09PSB1bmRlZmluZWQgJiYgcGFydHNbMV0gPwoJCQkJdGhpcy5kYXRhKCBwYXJ0c1swXSApIDoKCQkJCWRhdGE7CgoJCX0gZWxzZSB7CgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCQl2YXIgJHRoaXMgPSBqUXVlcnkoIHRoaXMgKSwKCQkJCQlhcmdzID0gWyBwYXJ0c1swXSwgdmFsdWUgXTsKCgkJCQkkdGhpcy50cmlnZ2VySGFuZGxlciggInNldERhdGEiICsgcGFydHNbMV0gKyAiISIsIGFyZ3MgKTsKCQkJCWpRdWVyeS5kYXRhKCB0aGlzLCBrZXksIHZhbHVlICk7CgkJCQkkdGhpcy50cmlnZ2VySGFuZGxlciggImNoYW5nZURhdGEiICsgcGFydHNbMV0gKyAiISIsIGFyZ3MgKTsKCQkJfSk7CgkJfQoJfSwKCglyZW1vdmVEYXRhOiBmdW5jdGlvbigga2V5ICkgewoJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCWpRdWVyeS5yZW1vdmVEYXRhKCB0aGlzLCBrZXkgKTsKCQl9KTsKCX0KfSk7CgpmdW5jdGlvbiBkYXRhQXR0ciggZWxlbSwga2V5LCBkYXRhICkgewoJLy8gSWYgbm90aGluZyB3YXMgZm91bmQgaW50ZXJuYWxseSwgdHJ5IHRvIGZldGNoIGFueQoJLy8gZGF0YSBmcm9tIHRoZSBIVE1MNSBkYXRhLSogYXR0cmlidXRlCglpZiAoIGRhdGEgPT09IHVuZGVmaW5lZCAmJiBlbGVtLm5vZGVUeXBlID09PSAxICkgewoJCWRhdGEgPSBlbGVtLmdldEF0dHJpYnV0ZSggImRhdGEtIiArIGtleSApOwoKCQlpZiAoIHR5cGVvZiBkYXRhID09PSAic3RyaW5nIiApIHsKCQkJdHJ5IHsKCQkJCWRhdGEgPSBkYXRhID09PSAidHJ1ZSIgPyB0cnVlIDoKCQkJCWRhdGEgPT09ICJmYWxzZSIgPyBmYWxzZSA6CgkJCQlkYXRhID09PSAibnVsbCIgPyBudWxsIDoKCQkJCSFqUXVlcnkuaXNOYU4oIGRhdGEgKSA/IHBhcnNlRmxvYXQoIGRhdGEgKSA6CgkJCQkJcmJyYWNlLnRlc3QoIGRhdGEgKSA/IGpRdWVyeS5wYXJzZUpTT04oIGRhdGEgKSA6CgkJCQkJZGF0YTsKCQkJfSBjYXRjaCggZSApIHt9CgoJCQkvLyBNYWtlIHN1cmUgd2Ugc2V0IHRoZSBkYXRhIHNvIGl0IGlzbid0IGNoYW5nZWQgbGF0ZXIKCQkJalF1ZXJ5LmRhdGEoIGVsZW0sIGtleSwgZGF0YSApOwoKCQl9IGVsc2UgewoJCQlkYXRhID0gdW5kZWZpbmVkOwoJCX0KCX0KCglyZXR1cm4gZGF0YTsKfQoKLy8gVE9ETzogVGhpcyBpcyBhIGhhY2sgZm9yIDEuNSBPTkxZIHRvIGFsbG93IG9iamVjdHMgd2l0aCBhIHNpbmdsZSB0b0pTT04KLy8gcHJvcGVydHkgdG8gYmUgY29uc2lkZXJlZCBlbXB0eSBvYmplY3RzOyB0aGlzIHByb3BlcnR5IGFsd2F5cyBleGlzdHMgaW4KLy8gb3JkZXIgdG8gbWFrZSBzdXJlIEpTT04uc3RyaW5naWZ5IGRvZXMgbm90IGV4cG9zZSBpbnRlcm5hbCBtZXRhZGF0YQpmdW5jdGlvbiBpc0VtcHR5RGF0YU9iamVjdCggb2JqICkgewoJZm9yICggdmFyIG5hbWUgaW4gb2JqICkgewoJCWlmICggbmFtZSAhPT0gInRvSlNPTiIgKSB7CgkJCXJldHVybiBmYWxzZTsKCQl9Cgl9CgoJcmV0dXJuIHRydWU7Cn0KCgoKCmpRdWVyeS5leHRlbmQoewoJcXVldWU6IGZ1bmN0aW9uKCBlbGVtLCB0eXBlLCBkYXRhICkgewoJCWlmICggIWVsZW0gKSB7CgkJCXJldHVybjsKCQl9CgoJCXR5cGUgPSAodHlwZSB8fCAiZngiKSArICJxdWV1ZSI7CgkJdmFyIHEgPSBqUXVlcnkuX2RhdGEoIGVsZW0sIHR5cGUgKTsKCgkJLy8gU3BlZWQgdXAgZGVxdWV1ZSBieSBnZXR0aW5nIG91dCBxdWlja2x5IGlmIHRoaXMgaXMganVzdCBhIGxvb2t1cAoJCWlmICggIWRhdGEgKSB7CgkJCXJldHVybiBxIHx8IFtdOwoJCX0KCgkJaWYgKCAhcSB8fCBqUXVlcnkuaXNBcnJheShkYXRhKSApIHsKCQkJcSA9IGpRdWVyeS5fZGF0YSggZWxlbSwgdHlwZSwgalF1ZXJ5Lm1ha2VBcnJheShkYXRhKSApOwoKCQl9IGVsc2UgewoJCQlxLnB1c2goIGRhdGEgKTsKCQl9CgoJCXJldHVybiBxOwoJfSwKCglkZXF1ZXVlOiBmdW5jdGlvbiggZWxlbSwgdHlwZSApIHsKCQl0eXBlID0gdHlwZSB8fCAiZngiOwoKCQl2YXIgcXVldWUgPSBqUXVlcnkucXVldWUoIGVsZW0sIHR5cGUgKSwKCQkJZm4gPSBxdWV1ZS5zaGlmdCgpOwoKCQkvLyBJZiB0aGUgZnggcXVldWUgaXMgZGVxdWV1ZWQsIGFsd2F5cyByZW1vdmUgdGhlIHByb2dyZXNzIHNlbnRpbmVsCgkJaWYgKCBmbiA9PT0gImlucHJvZ3Jlc3MiICkgewoJCQlmbiA9IHF1ZXVlLnNoaWZ0KCk7CgkJfQoKCQlpZiAoIGZuICkgewoJCQkvLyBBZGQgYSBwcm9ncmVzcyBzZW50aW5lbCB0byBwcmV2ZW50IHRoZSBmeCBxdWV1ZSBmcm9tIGJlaW5nCgkJCS8vIGF1dG9tYXRpY2FsbHkgZGVxdWV1ZWQKCQkJaWYgKCB0eXBlID09PSAiZngiICkgewoJCQkJcXVldWUudW5zaGlmdCgiaW5wcm9ncmVzcyIpOwoJCQl9CgoJCQlmbi5jYWxsKGVsZW0sIGZ1bmN0aW9uKCkgewoJCQkJalF1ZXJ5LmRlcXVldWUoZWxlbSwgdHlwZSk7CgkJCX0pOwoJCX0KCgkJaWYgKCAhcXVldWUubGVuZ3RoICkgewoJCQlqUXVlcnkucmVtb3ZlRGF0YSggZWxlbSwgdHlwZSArICJxdWV1ZSIsIHRydWUgKTsKCQl9Cgl9Cn0pOwoKalF1ZXJ5LmZuLmV4dGVuZCh7CglxdWV1ZTogZnVuY3Rpb24oIHR5cGUsIGRhdGEgKSB7CgkJaWYgKCB0eXBlb2YgdHlwZSAhPT0gInN0cmluZyIgKSB7CgkJCWRhdGEgPSB0eXBlOwoJCQl0eXBlID0gImZ4IjsKCQl9CgoJCWlmICggZGF0YSA9PT0gdW5kZWZpbmVkICkgewoJCQlyZXR1cm4galF1ZXJ5LnF1ZXVlKCB0aGlzWzBdLCB0eXBlICk7CgkJfQoJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oIGkgKSB7CgkJCXZhciBxdWV1ZSA9IGpRdWVyeS5xdWV1ZSggdGhpcywgdHlwZSwgZGF0YSApOwoKCQkJaWYgKCB0eXBlID09PSAiZngiICYmIHF1ZXVlWzBdICE9PSAiaW5wcm9ncmVzcyIgKSB7CgkJCQlqUXVlcnkuZGVxdWV1ZSggdGhpcywgdHlwZSApOwoJCQl9CgkJfSk7Cgl9LAoJZGVxdWV1ZTogZnVuY3Rpb24oIHR5cGUgKSB7CgkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJalF1ZXJ5LmRlcXVldWUoIHRoaXMsIHR5cGUgKTsKCQl9KTsKCX0sCgoJLy8gQmFzZWQgb2ZmIG9mIHRoZSBwbHVnaW4gYnkgQ2xpbnQgSGVsZmVycywgd2l0aCBwZXJtaXNzaW9uLgoJLy8gaHR0cDovL2JsaW5kc2lnbmFscy5jb20vaW5kZXgucGhwLzIwMDkvMDcvanF1ZXJ5LWRlbGF5LwoJZGVsYXk6IGZ1bmN0aW9uKCB0aW1lLCB0eXBlICkgewoJCXRpbWUgPSBqUXVlcnkuZnggPyBqUXVlcnkuZnguc3BlZWRzW3RpbWVdIHx8IHRpbWUgOiB0aW1lOwoJCXR5cGUgPSB0eXBlIHx8ICJmeCI7CgoJCXJldHVybiB0aGlzLnF1ZXVlKCB0eXBlLCBmdW5jdGlvbigpIHsKCQkJdmFyIGVsZW0gPSB0aGlzOwoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewoJCQkJalF1ZXJ5LmRlcXVldWUoIGVsZW0sIHR5cGUgKTsKCQkJfSwgdGltZSApOwoJCX0pOwoJfSwKCgljbGVhclF1ZXVlOiBmdW5jdGlvbiggdHlwZSApIHsKCQlyZXR1cm4gdGhpcy5xdWV1ZSggdHlwZSB8fCAiZngiLCBbXSApOwoJfQp9KTsKCgoKCnZhciByY2xhc3MgPSAvW1xuXHRccl0vZywKCXJzcGFjZXMgPSAvXHMrLywKCXJyZXR1cm4gPSAvXHIvZywKCXJzcGVjaWFsdXJsID0gL14oPzpocmVmfHNyY3xzdHlsZSkkLywKCXJ0eXBlID0gL14oPzpidXR0b258aW5wdXQpJC9pLAoJcmZvY3VzYWJsZSA9IC9eKD86YnV0dG9ufGlucHV0fG9iamVjdHxzZWxlY3R8dGV4dGFyZWEpJC9pLAoJcmNsaWNrYWJsZSA9IC9eYSg/OnJlYSk/JC9pLAoJcnJhZGlvY2hlY2sgPSAvXig/OnJhZGlvfGNoZWNrYm94KSQvaTsKCmpRdWVyeS5wcm9wcyA9IHsKCSJmb3IiOiAiaHRtbEZvciIsCgkiY2xhc3MiOiAiY2xhc3NOYW1lIiwKCXJlYWRvbmx5OiAicmVhZE9ubHkiLAoJbWF4bGVuZ3RoOiAibWF4TGVuZ3RoIiwKCWNlbGxzcGFjaW5nOiAiY2VsbFNwYWNpbmciLAoJcm93c3BhbjogInJvd1NwYW4iLAoJY29sc3BhbjogImNvbFNwYW4iLAoJdGFiaW5kZXg6ICJ0YWJJbmRleCIsCgl1c2VtYXA6ICJ1c2VNYXAiLAoJZnJhbWVib3JkZXI6ICJmcmFtZUJvcmRlciIKfTsKCmpRdWVyeS5mbi5leHRlbmQoewoJYXR0cjogZnVuY3Rpb24oIG5hbWUsIHZhbHVlICkgewoJCXJldHVybiBqUXVlcnkuYWNjZXNzKCB0aGlzLCBuYW1lLCB2YWx1ZSwgdHJ1ZSwgalF1ZXJ5LmF0dHIgKTsKCX0sCgoJcmVtb3ZlQXR0cjogZnVuY3Rpb24oIG5hbWUsIGZuICkgewoJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXsKCQkJalF1ZXJ5LmF0dHIoIHRoaXMsIG5hbWUsICIiICk7CgkJCWlmICggdGhpcy5ub2RlVHlwZSA9PT0gMSApIHsKCQkJCXRoaXMucmVtb3ZlQXR0cmlidXRlKCBuYW1lICk7CgkJCX0KCQl9KTsKCX0sCgoJYWRkQ2xhc3M6IGZ1bmN0aW9uKCB2YWx1ZSApIHsKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKHZhbHVlKSApIHsKCQkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihpKSB7CgkJCQl2YXIgc2VsZiA9IGpRdWVyeSh0aGlzKTsKCQkJCXNlbGYuYWRkQ2xhc3MoIHZhbHVlLmNhbGwodGhpcywgaSwgc2VsZi5hdHRyKCJjbGFzcyIpKSApOwoJCQl9KTsKCQl9CgoJCWlmICggdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAic3RyaW5nIiApIHsKCQkJdmFyIGNsYXNzTmFtZXMgPSAodmFsdWUgfHwgIiIpLnNwbGl0KCByc3BhY2VzICk7CgoJCQlmb3IgKCB2YXIgaSA9IDAsIGwgPSB0aGlzLmxlbmd0aDsgaSA8IGw7IGkrKyApIHsKCQkJCXZhciBlbGVtID0gdGhpc1tpXTsKCgkJCQlpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7CgkJCQkJaWYgKCAhZWxlbS5jbGFzc05hbWUgKSB7CgkJCQkJCWVsZW0uY2xhc3NOYW1lID0gdmFsdWU7CgoJCQkJCX0gZWxzZSB7CgkJCQkJCXZhciBjbGFzc05hbWUgPSAiICIgKyBlbGVtLmNsYXNzTmFtZSArICIgIiwKCQkJCQkJCXNldENsYXNzID0gZWxlbS5jbGFzc05hbWU7CgoJCQkJCQlmb3IgKCB2YXIgYyA9IDAsIGNsID0gY2xhc3NOYW1lcy5sZW5ndGg7IGMgPCBjbDsgYysrICkgewoJCQkJCQkJaWYgKCBjbGFzc05hbWUuaW5kZXhPZiggIiAiICsgY2xhc3NOYW1lc1tjXSArICIgIiApIDwgMCApIHsKCQkJCQkJCQlzZXRDbGFzcyArPSAiICIgKyBjbGFzc05hbWVzW2NdOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJCWVsZW0uY2xhc3NOYW1lID0galF1ZXJ5LnRyaW0oIHNldENsYXNzICk7CgkJCQkJfQoJCQkJfQoJCQl9CgkJfQoKCQlyZXR1cm4gdGhpczsKCX0sCgoJcmVtb3ZlQ2xhc3M6IGZ1bmN0aW9uKCB2YWx1ZSApIHsKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKHZhbHVlKSApIHsKCQkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihpKSB7CgkJCQl2YXIgc2VsZiA9IGpRdWVyeSh0aGlzKTsKCQkJCXNlbGYucmVtb3ZlQ2xhc3MoIHZhbHVlLmNhbGwodGhpcywgaSwgc2VsZi5hdHRyKCJjbGFzcyIpKSApOwoJCQl9KTsKCQl9CgoJCWlmICggKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gInN0cmluZyIpIHx8IHZhbHVlID09PSB1bmRlZmluZWQgKSB7CgkJCXZhciBjbGFzc05hbWVzID0gKHZhbHVlIHx8ICIiKS5zcGxpdCggcnNwYWNlcyApOwoKCQkJZm9yICggdmFyIGkgPSAwLCBsID0gdGhpcy5sZW5ndGg7IGkgPCBsOyBpKysgKSB7CgkJCQl2YXIgZWxlbSA9IHRoaXNbaV07CgoJCQkJaWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICYmIGVsZW0uY2xhc3NOYW1lICkgewoJCQkJCWlmICggdmFsdWUgKSB7CgkJCQkJCXZhciBjbGFzc05hbWUgPSAoIiAiICsgZWxlbS5jbGFzc05hbWUgKyAiICIpLnJlcGxhY2UocmNsYXNzLCAiICIpOwoJCQkJCQlmb3IgKCB2YXIgYyA9IDAsIGNsID0gY2xhc3NOYW1lcy5sZW5ndGg7IGMgPCBjbDsgYysrICkgewoJCQkJCQkJY2xhc3NOYW1lID0gY2xhc3NOYW1lLnJlcGxhY2UoIiAiICsgY2xhc3NOYW1lc1tjXSArICIgIiwgIiAiKTsKCQkJCQkJfQoJCQkJCQllbGVtLmNsYXNzTmFtZSA9IGpRdWVyeS50cmltKCBjbGFzc05hbWUgKTsKCgkJCQkJfSBlbHNlIHsKCQkJCQkJZWxlbS5jbGFzc05hbWUgPSAiIjsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgoJCXJldHVybiB0aGlzOwoJfSwKCgl0b2dnbGVDbGFzczogZnVuY3Rpb24oIHZhbHVlLCBzdGF0ZVZhbCApIHsKCQl2YXIgdHlwZSA9IHR5cGVvZiB2YWx1ZSwKCQkJaXNCb29sID0gdHlwZW9mIHN0YXRlVmFsID09PSAiYm9vbGVhbiI7CgoJCWlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHZhbHVlICkgKSB7CgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oaSkgewoJCQkJdmFyIHNlbGYgPSBqUXVlcnkodGhpcyk7CgkJCQlzZWxmLnRvZ2dsZUNsYXNzKCB2YWx1ZS5jYWxsKHRoaXMsIGksIHNlbGYuYXR0cigiY2xhc3MiKSwgc3RhdGVWYWwpLCBzdGF0ZVZhbCApOwoJCQl9KTsKCQl9CgoJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCWlmICggdHlwZSA9PT0gInN0cmluZyIgKSB7CgkJCQkvLyB0b2dnbGUgaW5kaXZpZHVhbCBjbGFzcyBuYW1lcwoJCQkJdmFyIGNsYXNzTmFtZSwKCQkJCQlpID0gMCwKCQkJCQlzZWxmID0galF1ZXJ5KCB0aGlzICksCgkJCQkJc3RhdGUgPSBzdGF0ZVZhbCwKCQkJCQljbGFzc05hbWVzID0gdmFsdWUuc3BsaXQoIHJzcGFjZXMgKTsKCgkJCQl3aGlsZSAoIChjbGFzc05hbWUgPSBjbGFzc05hbWVzWyBpKysgXSkgKSB7CgkJCQkJLy8gY2hlY2sgZWFjaCBjbGFzc05hbWUgZ2l2ZW4sIHNwYWNlIHNlcGVyYXRlZCBsaXN0CgkJCQkJc3RhdGUgPSBpc0Jvb2wgPyBzdGF0ZSA6ICFzZWxmLmhhc0NsYXNzKCBjbGFzc05hbWUgKTsKCQkJCQlzZWxmWyBzdGF0ZSA/ICJhZGRDbGFzcyIgOiAicmVtb3ZlQ2xhc3MiIF0oIGNsYXNzTmFtZSApOwoJCQkJfQoKCQkJfSBlbHNlIGlmICggdHlwZSA9PT0gInVuZGVmaW5lZCIgfHwgdHlwZSA9PT0gImJvb2xlYW4iICkgewoJCQkJaWYgKCB0aGlzLmNsYXNzTmFtZSApIHsKCQkJCQkvLyBzdG9yZSBjbGFzc05hbWUgaWYgc2V0CgkJCQkJalF1ZXJ5Ll9kYXRhKCB0aGlzLCAiX19jbGFzc05hbWVfXyIsIHRoaXMuY2xhc3NOYW1lICk7CgkJCQl9CgoJCQkJLy8gdG9nZ2xlIHdob2xlIGNsYXNzTmFtZQoJCQkJdGhpcy5jbGFzc05hbWUgPSB0aGlzLmNsYXNzTmFtZSB8fCB2YWx1ZSA9PT0gZmFsc2UgPyAiIiA6IGpRdWVyeS5fZGF0YSggdGhpcywgIl9fY2xhc3NOYW1lX18iICkgfHwgIiI7CgkJCX0KCQl9KTsKCX0sCgoJaGFzQ2xhc3M6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHsKCQl2YXIgY2xhc3NOYW1lID0gIiAiICsgc2VsZWN0b3IgKyAiICI7CgkJZm9yICggdmFyIGkgPSAwLCBsID0gdGhpcy5sZW5ndGg7IGkgPCBsOyBpKysgKSB7CgkJCWlmICggKCIgIiArIHRoaXNbaV0uY2xhc3NOYW1lICsgIiAiKS5yZXBsYWNlKHJjbGFzcywgIiAiKS5pbmRleE9mKCBjbGFzc05hbWUgKSA+IC0xICkgewoJCQkJcmV0dXJuIHRydWU7CgkJCX0KCQl9CgoJCXJldHVybiBmYWxzZTsKCX0sCgoJdmFsOiBmdW5jdGlvbiggdmFsdWUgKSB7CgkJaWYgKCAhYXJndW1lbnRzLmxlbmd0aCApIHsKCQkJdmFyIGVsZW0gPSB0aGlzWzBdOwoKCQkJaWYgKCBlbGVtICkgewoJCQkJaWYgKCBqUXVlcnkubm9kZU5hbWUoIGVsZW0sICJvcHRpb24iICkgKSB7CgkJCQkJLy8gYXR0cmlidXRlcy52YWx1ZSBpcyB1bmRlZmluZWQgaW4gQmxhY2tiZXJyeSA0LjcgYnV0CgkJCQkJLy8gdXNlcyAudmFsdWUuIFNlZSAjNjkzMgoJCQkJCXZhciB2YWwgPSBlbGVtLmF0dHJpYnV0ZXMudmFsdWU7CgkJCQkJcmV0dXJuICF2YWwgfHwgdmFsLnNwZWNpZmllZCA/IGVsZW0udmFsdWUgOiBlbGVtLnRleHQ7CgkJCQl9CgoJCQkJLy8gV2UgbmVlZCB0byBoYW5kbGUgc2VsZWN0IGJveGVzIHNwZWNpYWwKCQkJCWlmICggalF1ZXJ5Lm5vZGVOYW1lKCBlbGVtLCAic2VsZWN0IiApICkgewoJCQkJCXZhciBpbmRleCA9IGVsZW0uc2VsZWN0ZWRJbmRleCwKCQkJCQkJdmFsdWVzID0gW10sCgkJCQkJCW9wdGlvbnMgPSBlbGVtLm9wdGlvbnMsCgkJCQkJCW9uZSA9IGVsZW0udHlwZSA9PT0gInNlbGVjdC1vbmUiOwoKCQkJCQkvLyBOb3RoaW5nIHdhcyBzZWxlY3RlZAoJCQkJCWlmICggaW5kZXggPCAwICkgewoJCQkJCQlyZXR1cm4gbnVsbDsKCQkJCQl9CgoJCQkJCS8vIExvb3AgdGhyb3VnaCBhbGwgdGhlIHNlbGVjdGVkIG9wdGlvbnMKCQkJCQlmb3IgKCB2YXIgaSA9IG9uZSA/IGluZGV4IDogMCwgbWF4ID0gb25lID8gaW5kZXggKyAxIDogb3B0aW9ucy5sZW5ndGg7IGkgPCBtYXg7IGkrKyApIHsKCQkJCQkJdmFyIG9wdGlvbiA9IG9wdGlvbnNbIGkgXTsKCgkJCQkJCS8vIERvbid0IHJldHVybiBvcHRpb25zIHRoYXQgYXJlIGRpc2FibGVkIG9yIGluIGEgZGlzYWJsZWQgb3B0Z3JvdXAKCQkJCQkJaWYgKCBvcHRpb24uc2VsZWN0ZWQgJiYgKGpRdWVyeS5zdXBwb3J0Lm9wdERpc2FibGVkID8gIW9wdGlvbi5kaXNhYmxlZCA6IG9wdGlvbi5nZXRBdHRyaWJ1dGUoImRpc2FibGVkIikgPT09IG51bGwpICYmCgkJCQkJCQkJKCFvcHRpb24ucGFyZW50Tm9kZS5kaXNhYmxlZCB8fCAhalF1ZXJ5Lm5vZGVOYW1lKCBvcHRpb24ucGFyZW50Tm9kZSwgIm9wdGdyb3VwIiApKSApIHsKCgkJCQkJCQkvLyBHZXQgdGhlIHNwZWNpZmljIHZhbHVlIGZvciB0aGUgb3B0aW9uCgkJCQkJCQl2YWx1ZSA9IGpRdWVyeShvcHRpb24pLnZhbCgpOwoKCQkJCQkJCS8vIFdlIGRvbid0IG5lZWQgYW4gYXJyYXkgZm9yIG9uZSBzZWxlY3RzCgkJCQkJCQlpZiAoIG9uZSApIHsKCQkJCQkJCQlyZXR1cm4gdmFsdWU7CgkJCQkJCQl9CgoJCQkJCQkJLy8gTXVsdGktU2VsZWN0cyByZXR1cm4gYW4gYXJyYXkKCQkJCQkJCXZhbHVlcy5wdXNoKCB2YWx1ZSApOwoJCQkJCQl9CgkJCQkJfQoKCQkJCQkvLyBGaXhlcyBCdWcgIzI1NTEgLS0gc2VsZWN0LnZhbCgpIGJyb2tlbiBpbiBJRSBhZnRlciBmb3JtLnJlc2V0KCkKCQkJCQlpZiAoIG9uZSAmJiAhdmFsdWVzLmxlbmd0aCAmJiBvcHRpb25zLmxlbmd0aCApIHsKCQkJCQkJcmV0dXJuIGpRdWVyeSggb3B0aW9uc1sgaW5kZXggXSApLnZhbCgpOwoJCQkJCX0KCgkJCQkJcmV0dXJuIHZhbHVlczsKCQkJCX0KCgkJCQkvLyBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgaW4gV2Via2l0ICIiIGlzIHJldHVybmVkIGluc3RlYWQgb2YgIm9uIiBpZiBhIHZhbHVlIGlzbid0IHNwZWNpZmllZAoJCQkJaWYgKCBycmFkaW9jaGVjay50ZXN0KCBlbGVtLnR5cGUgKSAmJiAhalF1ZXJ5LnN1cHBvcnQuY2hlY2tPbiApIHsKCQkJCQlyZXR1cm4gZWxlbS5nZXRBdHRyaWJ1dGUoInZhbHVlIikgPT09IG51bGwgPyAib24iIDogZWxlbS52YWx1ZTsKCQkJCX0KCgkJCQkvLyBFdmVyeXRoaW5nIGVsc2UsIHdlIGp1c3QgZ3JhYiB0aGUgdmFsdWUKCQkJCXJldHVybiAoZWxlbS52YWx1ZSB8fCAiIikucmVwbGFjZShycmV0dXJuLCAiIik7CgoJCQl9CgoJCQlyZXR1cm4gdW5kZWZpbmVkOwoJCX0KCgkJdmFyIGlzRnVuY3Rpb24gPSBqUXVlcnkuaXNGdW5jdGlvbih2YWx1ZSk7CgoJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oaSkgewoJCQl2YXIgc2VsZiA9IGpRdWVyeSh0aGlzKSwgdmFsID0gdmFsdWU7CgoJCQlpZiAoIHRoaXMubm9kZVR5cGUgIT09IDEgKSB7CgkJCQlyZXR1cm47CgkJCX0KCgkJCWlmICggaXNGdW5jdGlvbiApIHsKCQkJCXZhbCA9IHZhbHVlLmNhbGwodGhpcywgaSwgc2VsZi52YWwoKSk7CgkJCX0KCgkJCS8vIFRyZWF0IG51bGwvdW5kZWZpbmVkIGFzICIiOyBjb252ZXJ0IG51bWJlcnMgdG8gc3RyaW5nCgkJCWlmICggdmFsID09IG51bGwgKSB7CgkJCQl2YWwgPSAiIjsKCQkJfSBlbHNlIGlmICggdHlwZW9mIHZhbCA9PT0gIm51bWJlciIgKSB7CgkJCQl2YWwgKz0gIiI7CgkJCX0gZWxzZSBpZiAoIGpRdWVyeS5pc0FycmF5KHZhbCkgKSB7CgkJCQl2YWwgPSBqUXVlcnkubWFwKHZhbCwgZnVuY3Rpb24gKHZhbHVlKSB7CgkJCQkJcmV0dXJuIHZhbHVlID09IG51bGwgPyAiIiA6IHZhbHVlICsgIiI7CgkJCQl9KTsKCQkJfQoKCQkJaWYgKCBqUXVlcnkuaXNBcnJheSh2YWwpICYmIHJyYWRpb2NoZWNrLnRlc3QoIHRoaXMudHlwZSApICkgewoJCQkJdGhpcy5jaGVja2VkID0galF1ZXJ5LmluQXJyYXkoIHNlbGYudmFsKCksIHZhbCApID49IDA7CgoJCQl9IGVsc2UgaWYgKCBqUXVlcnkubm9kZU5hbWUoIHRoaXMsICJzZWxlY3QiICkgKSB7CgkJCQl2YXIgdmFsdWVzID0galF1ZXJ5Lm1ha2VBcnJheSh2YWwpOwoKCQkJCWpRdWVyeSggIm9wdGlvbiIsIHRoaXMgKS5lYWNoKGZ1bmN0aW9uKCkgewoJCQkJCXRoaXMuc2VsZWN0ZWQgPSBqUXVlcnkuaW5BcnJheSggalF1ZXJ5KHRoaXMpLnZhbCgpLCB2YWx1ZXMgKSA+PSAwOwoJCQkJfSk7CgoJCQkJaWYgKCAhdmFsdWVzLmxlbmd0aCApIHsKCQkJCQl0aGlzLnNlbGVjdGVkSW5kZXggPSAtMTsKCQkJCX0KCgkJCX0gZWxzZSB7CgkJCQl0aGlzLnZhbHVlID0gdmFsOwoJCQl9CgkJfSk7Cgl9Cn0pOwoKalF1ZXJ5LmV4dGVuZCh7CglhdHRyRm46IHsKCQl2YWw6IHRydWUsCgkJY3NzOiB0cnVlLAoJCWh0bWw6IHRydWUsCgkJdGV4dDogdHJ1ZSwKCQlkYXRhOiB0cnVlLAoJCXdpZHRoOiB0cnVlLAoJCWhlaWdodDogdHJ1ZSwKCQlvZmZzZXQ6IHRydWUKCX0sCgoJYXR0cjogZnVuY3Rpb24oIGVsZW0sIG5hbWUsIHZhbHVlLCBwYXNzICkgewoJCS8vIGRvbid0IGdldC9zZXQgYXR0cmlidXRlcyBvbiB0ZXh0LCBjb21tZW50IGFuZCBhdHRyaWJ1dGUgbm9kZXMKCQlpZiAoICFlbGVtIHx8IGVsZW0ubm9kZVR5cGUgPT09IDMgfHwgZWxlbS5ub2RlVHlwZSA9PT0gOCB8fCBlbGVtLm5vZGVUeXBlID09PSAyICkgewoJCQlyZXR1cm4gdW5kZWZpbmVkOwoJCX0KCgkJaWYgKCBwYXNzICYmIG5hbWUgaW4galF1ZXJ5LmF0dHJGbiApIHsKCQkJcmV0dXJuIGpRdWVyeShlbGVtKVtuYW1lXSh2YWx1ZSk7CgkJfQoKCQl2YXIgbm90eG1sID0gZWxlbS5ub2RlVHlwZSAhPT0gMSB8fCAhalF1ZXJ5LmlzWE1MRG9jKCBlbGVtICksCgkJCS8vIFdoZXRoZXIgd2UgYXJlIHNldHRpbmcgKG9yIGdldHRpbmcpCgkJCXNldCA9IHZhbHVlICE9PSB1bmRlZmluZWQ7CgoJCS8vIFRyeSB0byBub3JtYWxpemUvZml4IHRoZSBuYW1lCgkJbmFtZSA9IG5vdHhtbCAmJiBqUXVlcnkucHJvcHNbIG5hbWUgXSB8fCBuYW1lOwoKCQkvLyBPbmx5IGRvIGFsbCB0aGUgZm9sbG93aW5nIGlmIHRoaXMgaXMgYSBub2RlIChmYXN0ZXIgZm9yIHN0eWxlKQoJCWlmICggZWxlbS5ub2RlVHlwZSA9PT0gMSApIHsKCQkJLy8gVGhlc2UgYXR0cmlidXRlcyByZXF1aXJlIHNwZWNpYWwgdHJlYXRtZW50CgkJCXZhciBzcGVjaWFsID0gcnNwZWNpYWx1cmwudGVzdCggbmFtZSApOwoKCQkJLy8gU2FmYXJpIG1pcy1yZXBvcnRzIHRoZSBkZWZhdWx0IHNlbGVjdGVkIHByb3BlcnR5IG9mIGFuIG9wdGlvbgoJCQkvLyBBY2Nlc3NpbmcgdGhlIHBhcmVudCdzIHNlbGVjdGVkSW5kZXggcHJvcGVydHkgZml4ZXMgaXQKCQkJaWYgKCBuYW1lID09PSAic2VsZWN0ZWQiICYmICFqUXVlcnkuc3VwcG9ydC5vcHRTZWxlY3RlZCApIHsKCQkJCXZhciBwYXJlbnQgPSBlbGVtLnBhcmVudE5vZGU7CgkJCQlpZiAoIHBhcmVudCApIHsKCQkJCQlwYXJlbnQuc2VsZWN0ZWRJbmRleDsKCgkJCQkJLy8gTWFrZSBzdXJlIHRoYXQgaXQgYWxzbyB3b3JrcyB3aXRoIG9wdGdyb3Vwcywgc2VlICM1NzAxCgkJCQkJaWYgKCBwYXJlbnQucGFyZW50Tm9kZSApIHsKCQkJCQkJcGFyZW50LnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleDsKCQkJCQl9CgkJCQl9CgkJCX0KCgkJCS8vIElmIGFwcGxpY2FibGUsIGFjY2VzcyB0aGUgYXR0cmlidXRlIHZpYSB0aGUgRE9NIDAgd2F5CgkJCS8vICdpbicgY2hlY2tzIGZhaWwgaW4gQmxhY2tiZXJyeSA0LjcgIzY5MzEKCQkJaWYgKCAobmFtZSBpbiBlbGVtIHx8IGVsZW1bIG5hbWUgXSAhPT0gdW5kZWZpbmVkKSAmJiBub3R4bWwgJiYgIXNwZWNpYWwgKSB7CgkJCQlpZiAoIHNldCApIHsKCQkJCQkvLyBXZSBjYW4ndCBhbGxvdyB0aGUgdHlwZSBwcm9wZXJ0eSB0byBiZSBjaGFuZ2VkIChzaW5jZSBpdCBjYXVzZXMgcHJvYmxlbXMgaW4gSUUpCgkJCQkJaWYgKCBuYW1lID09PSAidHlwZSIgJiYgcnR5cGUudGVzdCggZWxlbS5ub2RlTmFtZSApICYmIGVsZW0ucGFyZW50Tm9kZSApIHsKCQkJCQkJalF1ZXJ5LmVycm9yKCAidHlwZSBwcm9wZXJ0eSBjYW4ndCBiZSBjaGFuZ2VkIiApOwoJCQkJCX0KCgkJCQkJaWYgKCB2YWx1ZSA9PT0gbnVsbCApIHsKCQkJCQkJaWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICkgewoJCQkJCQkJZWxlbS5yZW1vdmVBdHRyaWJ1dGUoIG5hbWUgKTsKCQkJCQkJfQoKCQkJCQl9IGVsc2UgewoJCQkJCQllbGVtWyBuYW1lIF0gPSB2YWx1ZTsKCQkJCQl9CgkJCQl9CgoJCQkJLy8gYnJvd3NlcnMgaW5kZXggZWxlbWVudHMgYnkgaWQvbmFtZSBvbiBmb3JtcywgZ2l2ZSBwcmlvcml0eSB0byBhdHRyaWJ1dGVzLgoJCQkJaWYgKCBqUXVlcnkubm9kZU5hbWUoIGVsZW0sICJmb3JtIiApICYmIGVsZW0uZ2V0QXR0cmlidXRlTm9kZShuYW1lKSApIHsKCQkJCQlyZXR1cm4gZWxlbS5nZXRBdHRyaWJ1dGVOb2RlKCBuYW1lICkubm9kZVZhbHVlOwoJCQkJfQoKCQkJCS8vIGVsZW0udGFiSW5kZXggZG9lc24ndCBhbHdheXMgcmV0dXJuIHRoZSBjb3JyZWN0IHZhbHVlIHdoZW4gaXQgaGFzbid0IGJlZW4gZXhwbGljaXRseSBzZXQKCQkJCS8vIGh0dHA6Ly9mbHVpZHByb2plY3Qub3JnL2Jsb2cvMjAwOC8wMS8wOS9nZXR0aW5nLXNldHRpbmctYW5kLXJlbW92aW5nLXRhYmluZGV4LXZhbHVlcy13aXRoLWphdmFzY3JpcHQvCgkJCQlpZiAoIG5hbWUgPT09ICJ0YWJJbmRleCIgKSB7CgkJCQkJdmFyIGF0dHJpYnV0ZU5vZGUgPSBlbGVtLmdldEF0dHJpYnV0ZU5vZGUoICJ0YWJJbmRleCIgKTsKCgkJCQkJcmV0dXJuIGF0dHJpYnV0ZU5vZGUgJiYgYXR0cmlidXRlTm9kZS5zcGVjaWZpZWQgPwoJCQkJCQlhdHRyaWJ1dGVOb2RlLnZhbHVlIDoKCQkJCQkJcmZvY3VzYWJsZS50ZXN0KCBlbGVtLm5vZGVOYW1lICkgfHwgcmNsaWNrYWJsZS50ZXN0KCBlbGVtLm5vZGVOYW1lICkgJiYgZWxlbS5ocmVmID8KCQkJCQkJCTAgOgoJCQkJCQkJdW5kZWZpbmVkOwoJCQkJfQoKCQkJCXJldHVybiBlbGVtWyBuYW1lIF07CgkJCX0KCgkJCWlmICggIWpRdWVyeS5zdXBwb3J0LnN0eWxlICYmIG5vdHhtbCAmJiBuYW1lID09PSAic3R5bGUiICkgewoJCQkJaWYgKCBzZXQgKSB7CgkJCQkJZWxlbS5zdHlsZS5jc3NUZXh0ID0gIiIgKyB2YWx1ZTsKCQkJCX0KCgkJCQlyZXR1cm4gZWxlbS5zdHlsZS5jc3NUZXh0OwoJCQl9CgoJCQlpZiAoIHNldCApIHsKCQkJCS8vIGNvbnZlcnQgdGhlIHZhbHVlIHRvIGEgc3RyaW5nIChhbGwgYnJvd3NlcnMgZG8gdGhpcyBidXQgSUUpIHNlZSAjMTA3MAoJCQkJZWxlbS5zZXRBdHRyaWJ1dGUoIG5hbWUsICIiICsgdmFsdWUgKTsKCQkJfQoKCQkJLy8gRW5zdXJlIHRoYXQgbWlzc2luZyBhdHRyaWJ1dGVzIHJldHVybiB1bmRlZmluZWQKCQkJLy8gQmxhY2tiZXJyeSA0LjcgcmV0dXJucyAiIiBmcm9tIGdldEF0dHJpYnV0ZSAjNjkzOAoJCQlpZiAoICFlbGVtLmF0dHJpYnV0ZXNbIG5hbWUgXSAmJiAoZWxlbS5oYXNBdHRyaWJ1dGUgJiYgIWVsZW0uaGFzQXR0cmlidXRlKCBuYW1lICkpICkgewoJCQkJcmV0dXJuIHVuZGVmaW5lZDsKCQkJfQoKCQkJdmFyIGF0dHIgPSAhalF1ZXJ5LnN1cHBvcnQuaHJlZk5vcm1hbGl6ZWQgJiYgbm90eG1sICYmIHNwZWNpYWwgPwoJCQkJCS8vIFNvbWUgYXR0cmlidXRlcyByZXF1aXJlIGEgc3BlY2lhbCBjYWxsIG9uIElFCgkJCQkJZWxlbS5nZXRBdHRyaWJ1dGUoIG5hbWUsIDIgKSA6CgkJCQkJZWxlbS5nZXRBdHRyaWJ1dGUoIG5hbWUgKTsKCgkJCS8vIE5vbi1leGlzdGVudCBhdHRyaWJ1dGVzIHJldHVybiBudWxsLCB3ZSBub3JtYWxpemUgdG8gdW5kZWZpbmVkCgkJCXJldHVybiBhdHRyID09PSBudWxsID8gdW5kZWZpbmVkIDogYXR0cjsKCQl9CgkJLy8gSGFuZGxlIGV2ZXJ5dGhpbmcgd2hpY2ggaXNuJ3QgYSBET00gZWxlbWVudCBub2RlCgkJaWYgKCBzZXQgKSB7CgkJCWVsZW1bIG5hbWUgXSA9IHZhbHVlOwoJCX0KCQlyZXR1cm4gZWxlbVsgbmFtZSBdOwoJfQp9KTsKCgoKCnZhciBybmFtZXNwYWNlcyA9IC9cLiguKikkLywKCXJmb3JtRWxlbXMgPSAvXig/OnRleHRhcmVhfGlucHV0fHNlbGVjdCkkL2ksCglycGVyaW9kID0gL1wuL2csCglyc3BhY2UgPSAvIC9nLAoJcmVzY2FwZSA9IC9bXlx3XHMufGBdL2csCglmY2xlYW51cCA9IGZ1bmN0aW9uKCBubSApIHsKCQlyZXR1cm4gbm0ucmVwbGFjZShyZXNjYXBlLCAiXFwkJiIpOwoJfTsKCi8qCiAqIEEgbnVtYmVyIG9mIGhlbHBlciBmdW5jdGlvbnMgdXNlZCBmb3IgbWFuYWdpbmcgZXZlbnRzLgogKiBNYW55IG9mIHRoZSBpZGVhcyBiZWhpbmQgdGhpcyBjb2RlIG9yaWdpbmF0ZWQgZnJvbQogKiBEZWFuIEVkd2FyZHMnIGFkZEV2ZW50IGxpYnJhcnkuCiAqLwpqUXVlcnkuZXZlbnQgPSB7CgoJLy8gQmluZCBhbiBldmVudCB0byBhbiBlbGVtZW50CgkvLyBPcmlnaW5hbCBieSBEZWFuIEVkd2FyZHMKCWFkZDogZnVuY3Rpb24oIGVsZW0sIHR5cGVzLCBoYW5kbGVyLCBkYXRhICkgewoJCWlmICggZWxlbS5ub2RlVHlwZSA9PT0gMyB8fCBlbGVtLm5vZGVUeXBlID09PSA4ICkgewoJCQlyZXR1cm47CgkJfQoKCQkvLyBUT0RPIDo6IFVzZSBhIHRyeS9jYXRjaCB1bnRpbCBpdCdzIHNhZmUgdG8gcHVsbCB0aGlzIG91dCAobGlrZWx5IDEuNikKCQkvLyBNaW5vciByZWxlYXNlIGZpeCBmb3IgYnVnICM4MDE4CgkJdHJ5IHsKCQkJLy8gRm9yIHdoYXRldmVyIHJlYXNvbiwgSUUgaGFzIHRyb3VibGUgcGFzc2luZyB0aGUgd2luZG93IG9iamVjdAoJCQkvLyBhcm91bmQsIGNhdXNpbmcgaXQgdG8gYmUgY2xvbmVkIGluIHRoZSBwcm9jZXNzCgkJCWlmICggalF1ZXJ5LmlzV2luZG93KCBlbGVtICkgJiYgKCBlbGVtICE9PSB3aW5kb3cgJiYgIWVsZW0uZnJhbWVFbGVtZW50ICkgKSB7CgkJCQllbGVtID0gd2luZG93OwoJCQl9CgkJfQoJCWNhdGNoICggZSApIHt9CgoJCWlmICggaGFuZGxlciA9PT0gZmFsc2UgKSB7CgkJCWhhbmRsZXIgPSByZXR1cm5GYWxzZTsKCQl9IGVsc2UgaWYgKCAhaGFuZGxlciApIHsKCQkJLy8gRml4ZXMgYnVnICM3MjI5LiBGaXggcmVjb21tZW5kZWQgYnkgamRhbHRvbgoJCQlyZXR1cm47CgkJfQoKCQl2YXIgaGFuZGxlT2JqSW4sIGhhbmRsZU9iajsKCgkJaWYgKCBoYW5kbGVyLmhhbmRsZXIgKSB7CgkJCWhhbmRsZU9iakluID0gaGFuZGxlcjsKCQkJaGFuZGxlciA9IGhhbmRsZU9iakluLmhhbmRsZXI7CgkJfQoKCQkvLyBNYWtlIHN1cmUgdGhhdCB0aGUgZnVuY3Rpb24gYmVpbmcgZXhlY3V0ZWQgaGFzIGEgdW5pcXVlIElECgkJaWYgKCAhaGFuZGxlci5ndWlkICkgewoJCQloYW5kbGVyLmd1aWQgPSBqUXVlcnkuZ3VpZCsrOwoJCX0KCgkJLy8gSW5pdCB0aGUgZWxlbWVudCdzIGV2ZW50IHN0cnVjdHVyZQoJCXZhciBlbGVtRGF0YSA9IGpRdWVyeS5fZGF0YSggZWxlbSApOwoKCQkvLyBJZiBubyBlbGVtRGF0YSBpcyBmb3VuZCB0aGVuIHdlIG11c3QgYmUgdHJ5aW5nIHRvIGJpbmQgdG8gb25lIG9mIHRoZQoJCS8vIGJhbm5lZCBub0RhdGEgZWxlbWVudHMKCQlpZiAoICFlbGVtRGF0YSApIHsKCQkJcmV0dXJuOwoJCX0KCgkJdmFyIGV2ZW50cyA9IGVsZW1EYXRhLmV2ZW50cywKCQkJZXZlbnRIYW5kbGUgPSBlbGVtRGF0YS5oYW5kbGU7CgoJCWlmICggIWV2ZW50cyApIHsKCQkJZWxlbURhdGEuZXZlbnRzID0gZXZlbnRzID0ge307CgkJfQoKCQlpZiAoICFldmVudEhhbmRsZSApIHsKCQkJZWxlbURhdGEuaGFuZGxlID0gZXZlbnRIYW5kbGUgPSBmdW5jdGlvbigpIHsKCQkJCS8vIEhhbmRsZSB0aGUgc2Vjb25kIGV2ZW50IG9mIGEgdHJpZ2dlciBhbmQgd2hlbgoJCQkJLy8gYW4gZXZlbnQgaXMgY2FsbGVkIGFmdGVyIGEgcGFnZSBoYXMgdW5sb2FkZWQKCQkJCXJldHVybiB0eXBlb2YgalF1ZXJ5ICE9PSAidW5kZWZpbmVkIiAmJiAhalF1ZXJ5LmV2ZW50LnRyaWdnZXJlZCA/CgkJCQkJalF1ZXJ5LmV2ZW50LmhhbmRsZS5hcHBseSggZXZlbnRIYW5kbGUuZWxlbSwgYXJndW1lbnRzICkgOgoJCQkJCXVuZGVmaW5lZDsKCQkJfTsKCQl9CgoJCS8vIEFkZCBlbGVtIGFzIGEgcHJvcGVydHkgb2YgdGhlIGhhbmRsZSBmdW5jdGlvbgoJCS8vIFRoaXMgaXMgdG8gcHJldmVudCBhIG1lbW9yeSBsZWFrIHdpdGggbm9uLW5hdGl2ZSBldmVudHMgaW4gSUUuCgkJZXZlbnRIYW5kbGUuZWxlbSA9IGVsZW07CgoJCS8vIEhhbmRsZSBtdWx0aXBsZSBldmVudHMgc2VwYXJhdGVkIGJ5IGEgc3BhY2UKCQkvLyBqUXVlcnkoLi4uKS5iaW5kKCJtb3VzZW92ZXIgbW91c2VvdXQiLCBmbik7CgkJdHlwZXMgPSB0eXBlcy5zcGxpdCgiICIpOwoKCQl2YXIgdHlwZSwgaSA9IDAsIG5hbWVzcGFjZXM7CgoJCXdoaWxlICggKHR5cGUgPSB0eXBlc1sgaSsrIF0pICkgewoJCQloYW5kbGVPYmogPSBoYW5kbGVPYmpJbiA/CgkJCQlqUXVlcnkuZXh0ZW5kKHt9LCBoYW5kbGVPYmpJbikgOgoJCQkJeyBoYW5kbGVyOiBoYW5kbGVyLCBkYXRhOiBkYXRhIH07CgoJCQkvLyBOYW1lc3BhY2VkIGV2ZW50IGhhbmRsZXJzCgkJCWlmICggdHlwZS5pbmRleE9mKCIuIikgPiAtMSApIHsKCQkJCW5hbWVzcGFjZXMgPSB0eXBlLnNwbGl0KCIuIik7CgkJCQl0eXBlID0gbmFtZXNwYWNlcy5zaGlmdCgpOwoJCQkJaGFuZGxlT2JqLm5hbWVzcGFjZSA9IG5hbWVzcGFjZXMuc2xpY2UoMCkuc29ydCgpLmpvaW4oIi4iKTsKCgkJCX0gZWxzZSB7CgkJCQluYW1lc3BhY2VzID0gW107CgkJCQloYW5kbGVPYmoubmFtZXNwYWNlID0gIiI7CgkJCX0KCgkJCWhhbmRsZU9iai50eXBlID0gdHlwZTsKCQkJaWYgKCAhaGFuZGxlT2JqLmd1aWQgKSB7CgkJCQloYW5kbGVPYmouZ3VpZCA9IGhhbmRsZXIuZ3VpZDsKCQkJfQoKCQkJLy8gR2V0IHRoZSBjdXJyZW50IGxpc3Qgb2YgZnVuY3Rpb25zIGJvdW5kIHRvIHRoaXMgZXZlbnQKCQkJdmFyIGhhbmRsZXJzID0gZXZlbnRzWyB0eXBlIF0sCgkJCQlzcGVjaWFsID0galF1ZXJ5LmV2ZW50LnNwZWNpYWxbIHR5cGUgXSB8fCB7fTsKCgkJCS8vIEluaXQgdGhlIGV2ZW50IGhhbmRsZXIgcXVldWUKCQkJaWYgKCAhaGFuZGxlcnMgKSB7CgkJCQloYW5kbGVycyA9IGV2ZW50c1sgdHlwZSBdID0gW107CgoJCQkJLy8gQ2hlY2sgZm9yIGEgc3BlY2lhbCBldmVudCBoYW5kbGVyCgkJCQkvLyBPbmx5IHVzZSBhZGRFdmVudExpc3RlbmVyL2F0dGFjaEV2ZW50IGlmIHRoZSBzcGVjaWFsCgkJCQkvLyBldmVudHMgaGFuZGxlciByZXR1cm5zIGZhbHNlCgkJCQlpZiAoICFzcGVjaWFsLnNldHVwIHx8IHNwZWNpYWwuc2V0dXAuY2FsbCggZWxlbSwgZGF0YSwgbmFtZXNwYWNlcywgZXZlbnRIYW5kbGUgKSA9PT0gZmFsc2UgKSB7CgkJCQkJLy8gQmluZCB0aGUgZ2xvYmFsIGV2ZW50IGhhbmRsZXIgdG8gdGhlIGVsZW1lbnQKCQkJCQlpZiAoIGVsZW0uYWRkRXZlbnRMaXN0ZW5lciApIHsKCQkJCQkJZWxlbS5hZGRFdmVudExpc3RlbmVyKCB0eXBlLCBldmVudEhhbmRsZSwgZmFsc2UgKTsKCgkJCQkJfSBlbHNlIGlmICggZWxlbS5hdHRhY2hFdmVudCApIHsKCQkJCQkJZWxlbS5hdHRhY2hFdmVudCggIm9uIiArIHR5cGUsIGV2ZW50SGFuZGxlICk7CgkJCQkJfQoJCQkJfQoJCQl9CgoJCQlpZiAoIHNwZWNpYWwuYWRkICkgewoJCQkJc3BlY2lhbC5hZGQuY2FsbCggZWxlbSwgaGFuZGxlT2JqICk7CgoJCQkJaWYgKCAhaGFuZGxlT2JqLmhhbmRsZXIuZ3VpZCApIHsKCQkJCQloYW5kbGVPYmouaGFuZGxlci5ndWlkID0gaGFuZGxlci5ndWlkOwoJCQkJfQoJCQl9CgoJCQkvLyBBZGQgdGhlIGZ1bmN0aW9uIHRvIHRoZSBlbGVtZW50J3MgaGFuZGxlciBsaXN0CgkJCWhhbmRsZXJzLnB1c2goIGhhbmRsZU9iaiApOwoKCQkJLy8gS2VlcCB0cmFjayBvZiB3aGljaCBldmVudHMgaGF2ZSBiZWVuIHVzZWQsIGZvciBnbG9iYWwgdHJpZ2dlcmluZwoJCQlqUXVlcnkuZXZlbnQuZ2xvYmFsWyB0eXBlIF0gPSB0cnVlOwoJCX0KCgkJLy8gTnVsbGlmeSBlbGVtIHRvIHByZXZlbnQgbWVtb3J5IGxlYWtzIGluIElFCgkJZWxlbSA9IG51bGw7Cgl9LAoKCWdsb2JhbDoge30sCgoJLy8gRGV0YWNoIGFuIGV2ZW50IG9yIHNldCBvZiBldmVudHMgZnJvbSBhbiBlbGVtZW50CglyZW1vdmU6IGZ1bmN0aW9uKCBlbGVtLCB0eXBlcywgaGFuZGxlciwgcG9zICkgewoJCS8vIGRvbid0IGRvIGV2ZW50cyBvbiB0ZXh0IGFuZCBjb21tZW50IG5vZGVzCgkJaWYgKCBlbGVtLm5vZGVUeXBlID09PSAzIHx8IGVsZW0ubm9kZVR5cGUgPT09IDggKSB7CgkJCXJldHVybjsKCQl9CgoJCWlmICggaGFuZGxlciA9PT0gZmFsc2UgKSB7CgkJCWhhbmRsZXIgPSByZXR1cm5GYWxzZTsKCQl9CgoJCXZhciByZXQsIHR5cGUsIGZuLCBqLCBpID0gMCwgYWxsLCBuYW1lc3BhY2VzLCBuYW1lc3BhY2UsIHNwZWNpYWwsIGV2ZW50VHlwZSwgaGFuZGxlT2JqLCBvcmlnVHlwZSwKCQkJZWxlbURhdGEgPSBqUXVlcnkuaGFzRGF0YSggZWxlbSApICYmIGpRdWVyeS5fZGF0YSggZWxlbSApLAoJCQlldmVudHMgPSBlbGVtRGF0YSAmJiBlbGVtRGF0YS5ldmVudHM7CgoJCWlmICggIWVsZW1EYXRhIHx8ICFldmVudHMgKSB7CgkJCXJldHVybjsKCQl9CgoJCS8vIHR5cGVzIGlzIGFjdHVhbGx5IGFuIGV2ZW50IG9iamVjdCBoZXJlCgkJaWYgKCB0eXBlcyAmJiB0eXBlcy50eXBlICkgewoJCQloYW5kbGVyID0gdHlwZXMuaGFuZGxlcjsKCQkJdHlwZXMgPSB0eXBlcy50eXBlOwoJCX0KCgkJLy8gVW5iaW5kIGFsbCBldmVudHMgZm9yIHRoZSBlbGVtZW50CgkJaWYgKCAhdHlwZXMgfHwgdHlwZW9mIHR5cGVzID09PSAic3RyaW5nIiAmJiB0eXBlcy5jaGFyQXQoMCkgPT09ICIuIiApIHsKCQkJdHlwZXMgPSB0eXBlcyB8fCAiIjsKCgkJCWZvciAoIHR5cGUgaW4gZXZlbnRzICkgewoJCQkJalF1ZXJ5LmV2ZW50LnJlbW92ZSggZWxlbSwgdHlwZSArIHR5cGVzICk7CgkJCX0KCgkJCXJldHVybjsKCQl9CgoJCS8vIEhhbmRsZSBtdWx0aXBsZSBldmVudHMgc2VwYXJhdGVkIGJ5IGEgc3BhY2UKCQkvLyBqUXVlcnkoLi4uKS51bmJpbmQoIm1vdXNlb3ZlciBtb3VzZW91dCIsIGZuKTsKCQl0eXBlcyA9IHR5cGVzLnNwbGl0KCIgIik7CgoJCXdoaWxlICggKHR5cGUgPSB0eXBlc1sgaSsrIF0pICkgewoJCQlvcmlnVHlwZSA9IHR5cGU7CgkJCWhhbmRsZU9iaiA9IG51bGw7CgkJCWFsbCA9IHR5cGUuaW5kZXhPZigiLiIpIDwgMDsKCQkJbmFtZXNwYWNlcyA9IFtdOwoKCQkJaWYgKCAhYWxsICkgewoJCQkJLy8gTmFtZXNwYWNlZCBldmVudCBoYW5kbGVycwoJCQkJbmFtZXNwYWNlcyA9IHR5cGUuc3BsaXQoIi4iKTsKCQkJCXR5cGUgPSBuYW1lc3BhY2VzLnNoaWZ0KCk7CgoJCQkJbmFtZXNwYWNlID0gbmV3IFJlZ0V4cCgiKF58XFwuKSIgKwoJCQkJCWpRdWVyeS5tYXAoIG5hbWVzcGFjZXMuc2xpY2UoMCkuc29ydCgpLCBmY2xlYW51cCApLmpvaW4oIlxcLig/Oi4qXFwuKT8iKSArICIoXFwufCQpIik7CgkJCX0KCgkJCWV2ZW50VHlwZSA9IGV2ZW50c1sgdHlwZSBdOwoKCQkJaWYgKCAhZXZlbnRUeXBlICkgewoJCQkJY29udGludWU7CgkJCX0KCgkJCWlmICggIWhhbmRsZXIgKSB7CgkJCQlmb3IgKCBqID0gMDsgaiA8IGV2ZW50VHlwZS5sZW5ndGg7IGorKyApIHsKCQkJCQloYW5kbGVPYmogPSBldmVudFR5cGVbIGogXTsKCgkJCQkJaWYgKCBhbGwgfHwgbmFtZXNwYWNlLnRlc3QoIGhhbmRsZU9iai5uYW1lc3BhY2UgKSApIHsKCQkJCQkJalF1ZXJ5LmV2ZW50LnJlbW92ZSggZWxlbSwgb3JpZ1R5cGUsIGhhbmRsZU9iai5oYW5kbGVyLCBqICk7CgkJCQkJCWV2ZW50VHlwZS5zcGxpY2UoIGotLSwgMSApOwoJCQkJCX0KCQkJCX0KCgkJCQljb250aW51ZTsKCQkJfQoKCQkJc3BlY2lhbCA9IGpRdWVyeS5ldmVudC5zcGVjaWFsWyB0eXBlIF0gfHwge307CgoJCQlmb3IgKCBqID0gcG9zIHx8IDA7IGogPCBldmVudFR5cGUubGVuZ3RoOyBqKysgKSB7CgkJCQloYW5kbGVPYmogPSBldmVudFR5cGVbIGogXTsKCgkJCQlpZiAoIGhhbmRsZXIuZ3VpZCA9PT0gaGFuZGxlT2JqLmd1aWQgKSB7CgkJCQkJLy8gcmVtb3ZlIHRoZSBnaXZlbiBoYW5kbGVyIGZvciB0aGUgZ2l2ZW4gdHlwZQoJCQkJCWlmICggYWxsIHx8IG5hbWVzcGFjZS50ZXN0KCBoYW5kbGVPYmoubmFtZXNwYWNlICkgKSB7CgkJCQkJCWlmICggcG9zID09IG51bGwgKSB7CgkJCQkJCQlldmVudFR5cGUuc3BsaWNlKCBqLS0sIDEgKTsKCQkJCQkJfQoKCQkJCQkJaWYgKCBzcGVjaWFsLnJlbW92ZSApIHsKCQkJCQkJCXNwZWNpYWwucmVtb3ZlLmNhbGwoIGVsZW0sIGhhbmRsZU9iaiApOwoJCQkJCQl9CgkJCQkJfQoKCQkJCQlpZiAoIHBvcyAhPSBudWxsICkgewoJCQkJCQlicmVhazsKCQkJCQl9CgkJCQl9CgkJCX0KCgkJCS8vIHJlbW92ZSBnZW5lcmljIGV2ZW50IGhhbmRsZXIgaWYgbm8gbW9yZSBoYW5kbGVycyBleGlzdAoJCQlpZiAoIGV2ZW50VHlwZS5sZW5ndGggPT09IDAgfHwgcG9zICE9IG51bGwgJiYgZXZlbnRUeXBlLmxlbmd0aCA9PT0gMSApIHsKCQkJCWlmICggIXNwZWNpYWwudGVhcmRvd24gfHwgc3BlY2lhbC50ZWFyZG93bi5jYWxsKCBlbGVtLCBuYW1lc3BhY2VzICkgPT09IGZhbHNlICkgewoJCQkJCWpRdWVyeS5yZW1vdmVFdmVudCggZWxlbSwgdHlwZSwgZWxlbURhdGEuaGFuZGxlICk7CgkJCQl9CgoJCQkJcmV0ID0gbnVsbDsKCQkJCWRlbGV0ZSBldmVudHNbIHR5cGUgXTsKCQkJfQoJCX0KCgkJLy8gUmVtb3ZlIHRoZSBleHBhbmRvIGlmIGl0J3Mgbm8gbG9uZ2VyIHVzZWQKCQlpZiAoIGpRdWVyeS5pc0VtcHR5T2JqZWN0KCBldmVudHMgKSApIHsKCQkJdmFyIGhhbmRsZSA9IGVsZW1EYXRhLmhhbmRsZTsKCQkJaWYgKCBoYW5kbGUgKSB7CgkJCQloYW5kbGUuZWxlbSA9IG51bGw7CgkJCX0KCgkJCWRlbGV0ZSBlbGVtRGF0YS5ldmVudHM7CgkJCWRlbGV0ZSBlbGVtRGF0YS5oYW5kbGU7CgoJCQlpZiAoIGpRdWVyeS5pc0VtcHR5T2JqZWN0KCBlbGVtRGF0YSApICkgewoJCQkJalF1ZXJ5LnJlbW92ZURhdGEoIGVsZW0sIHVuZGVmaW5lZCwgdHJ1ZSApOwoJCQl9CgkJfQoJfSwKCgkvLyBidWJibGluZyBpcyBpbnRlcm5hbAoJdHJpZ2dlcjogZnVuY3Rpb24oIGV2ZW50LCBkYXRhLCBlbGVtIC8qLCBidWJibGluZyAqLyApIHsKCQkvLyBFdmVudCBvYmplY3Qgb3IgZXZlbnQgdHlwZQoJCXZhciB0eXBlID0gZXZlbnQudHlwZSB8fCBldmVudCwKCQkJYnViYmxpbmcgPSBhcmd1bWVudHNbM107CgoJCWlmICggIWJ1YmJsaW5nICkgewoJCQlldmVudCA9IHR5cGVvZiBldmVudCA9PT0gIm9iamVjdCIgPwoJCQkJLy8galF1ZXJ5LkV2ZW50IG9iamVjdAoJCQkJZXZlbnRbIGpRdWVyeS5leHBhbmRvIF0gPyBldmVudCA6CgkJCQkvLyBPYmplY3QgbGl0ZXJhbAoJCQkJalF1ZXJ5LmV4dGVuZCggalF1ZXJ5LkV2ZW50KHR5cGUpLCBldmVudCApIDoKCQkJCS8vIEp1c3QgdGhlIGV2ZW50IHR5cGUgKHN0cmluZykKCQkJCWpRdWVyeS5FdmVudCh0eXBlKTsKCgkJCWlmICggdHlwZS5pbmRleE9mKCIhIikgPj0gMCApIHsKCQkJCWV2ZW50LnR5cGUgPSB0eXBlID0gdHlwZS5zbGljZSgwLCAtMSk7CgkJCQlldmVudC5leGNsdXNpdmUgPSB0cnVlOwoJCQl9CgoJCQkvLyBIYW5kbGUgYSBnbG9iYWwgdHJpZ2dlcgoJCQlpZiAoICFlbGVtICkgewoJCQkJLy8gRG9uJ3QgYnViYmxlIGN1c3RvbSBldmVudHMgd2hlbiBnbG9iYWwgKHRvIGF2b2lkIHRvbyBtdWNoIG92ZXJoZWFkKQoJCQkJZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CgoJCQkJLy8gT25seSB0cmlnZ2VyIGlmIHdlJ3ZlIGV2ZXIgYm91bmQgYW4gZXZlbnQgZm9yIGl0CgkJCQlpZiAoIGpRdWVyeS5ldmVudC5nbG9iYWxbIHR5cGUgXSApIHsKCQkJCQkvLyBYWFggVGhpcyBjb2RlIHNtZWxscyB0ZXJyaWJsZS4gZXZlbnQuanMgc2hvdWxkIG5vdCBiZSBkaXJlY3RseQoJCQkJCS8vIGluc3BlY3RpbmcgdGhlIGRhdGEgY2FjaGUKCQkJCQlqUXVlcnkuZWFjaCggalF1ZXJ5LmNhY2hlLCBmdW5jdGlvbigpIHsKCQkJCQkJLy8gaW50ZXJuYWxLZXkgdmFyaWFibGUgaXMganVzdCB1c2VkIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGZpbmQKCQkJCQkJLy8gYW5kIHBvdGVudGlhbGx5IGNoYW5nZSB0aGlzIHN0dWZmIGxhdGVyOyBjdXJyZW50bHkgaXQganVzdAoJCQkJCQkvLyBwb2ludHMgdG8galF1ZXJ5LmV4cGFuZG8KCQkJCQkJdmFyIGludGVybmFsS2V5ID0galF1ZXJ5LmV4cGFuZG8sCgkJCQkJCQlpbnRlcm5hbENhY2hlID0gdGhpc1sgaW50ZXJuYWxLZXkgXTsKCQkJCQkJaWYgKCBpbnRlcm5hbENhY2hlICYmIGludGVybmFsQ2FjaGUuZXZlbnRzICYmIGludGVybmFsQ2FjaGUuZXZlbnRzWyB0eXBlIF0gKSB7CgkJCQkJCQlqUXVlcnkuZXZlbnQudHJpZ2dlciggZXZlbnQsIGRhdGEsIGludGVybmFsQ2FjaGUuaGFuZGxlLmVsZW0gKTsKCQkJCQkJfQoJCQkJCX0pOwoJCQkJfQoJCQl9CgoJCQkvLyBIYW5kbGUgdHJpZ2dlcmluZyBhIHNpbmdsZSBlbGVtZW50CgoJCQkvLyBkb24ndCBkbyBldmVudHMgb24gdGV4dCBhbmQgY29tbWVudCBub2RlcwoJCQlpZiAoICFlbGVtIHx8IGVsZW0ubm9kZVR5cGUgPT09IDMgfHwgZWxlbS5ub2RlVHlwZSA9PT0gOCApIHsKCQkJCXJldHVybiB1bmRlZmluZWQ7CgkJCX0KCgkJCS8vIENsZWFuIHVwIGluIGNhc2UgaXQgaXMgcmV1c2VkCgkJCWV2ZW50LnJlc3VsdCA9IHVuZGVmaW5lZDsKCQkJZXZlbnQudGFyZ2V0ID0gZWxlbTsKCgkJCS8vIENsb25lIHRoZSBpbmNvbWluZyBkYXRhLCBpZiBhbnkKCQkJZGF0YSA9IGpRdWVyeS5tYWtlQXJyYXkoIGRhdGEgKTsKCQkJZGF0YS51bnNoaWZ0KCBldmVudCApOwoJCX0KCgkJZXZlbnQuY3VycmVudFRhcmdldCA9IGVsZW07CgoJCS8vIFRyaWdnZXIgdGhlIGV2ZW50LCBpdCBpcyBhc3N1bWVkIHRoYXQgImhhbmRsZSIgaXMgYSBmdW5jdGlvbgoJCXZhciBoYW5kbGUgPSBqUXVlcnkuX2RhdGEoIGVsZW0sICJoYW5kbGUiICk7CgoJCWlmICggaGFuZGxlICkgewoJCQloYW5kbGUuYXBwbHkoIGVsZW0sIGRhdGEgKTsKCQl9CgoJCXZhciBwYXJlbnQgPSBlbGVtLnBhcmVudE5vZGUgfHwgZWxlbS5vd25lckRvY3VtZW50OwoKCQkvLyBUcmlnZ2VyIGFuIGlubGluZSBib3VuZCBzY3JpcHQKCQl0cnkgewoJCQlpZiAoICEoZWxlbSAmJiBlbGVtLm5vZGVOYW1lICYmIGpRdWVyeS5ub0RhdGFbZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSkgKSB7CgkJCQlpZiAoIGVsZW1bICJvbiIgKyB0eXBlIF0gJiYgZWxlbVsgIm9uIiArIHR5cGUgXS5hcHBseSggZWxlbSwgZGF0YSApID09PSBmYWxzZSApIHsKCQkJCQlldmVudC5yZXN1bHQgPSBmYWxzZTsKCQkJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOwoJCQkJfQoJCQl9CgoJCS8vIHByZXZlbnQgSUUgZnJvbSB0aHJvd2luZyBhbiBlcnJvciBmb3Igc29tZSBlbGVtZW50cyB3aXRoIHNvbWUgZXZlbnQgdHlwZXMsIHNlZSAjMzUzMwoJCX0gY2F0Y2ggKGlubGluZUVycm9yKSB7fQoKCQlpZiAoICFldmVudC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpICYmIHBhcmVudCApIHsKCQkJalF1ZXJ5LmV2ZW50LnRyaWdnZXIoIGV2ZW50LCBkYXRhLCBwYXJlbnQsIHRydWUgKTsKCgkJfSBlbHNlIGlmICggIWV2ZW50LmlzRGVmYXVsdFByZXZlbnRlZCgpICkgewoJCQl2YXIgb2xkLAoJCQkJdGFyZ2V0ID0gZXZlbnQudGFyZ2V0LAoJCQkJdGFyZ2V0VHlwZSA9IHR5cGUucmVwbGFjZSggcm5hbWVzcGFjZXMsICIiICksCgkJCQlpc0NsaWNrID0galF1ZXJ5Lm5vZGVOYW1lKCB0YXJnZXQsICJhIiApICYmIHRhcmdldFR5cGUgPT09ICJjbGljayIsCgkJCQlzcGVjaWFsID0galF1ZXJ5LmV2ZW50LnNwZWNpYWxbIHRhcmdldFR5cGUgXSB8fCB7fTsKCgkJCWlmICggKCFzcGVjaWFsLl9kZWZhdWx0IHx8IHNwZWNpYWwuX2RlZmF1bHQuY2FsbCggZWxlbSwgZXZlbnQgKSA9PT0gZmFsc2UpICYmCgkJCQkhaXNDbGljayAmJiAhKHRhcmdldCAmJiB0YXJnZXQubm9kZU5hbWUgJiYgalF1ZXJ5Lm5vRGF0YVt0YXJnZXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pICkgewoKCQkJCXRyeSB7CgkJCQkJaWYgKCB0YXJnZXRbIHRhcmdldFR5cGUgXSApIHsKCQkJCQkJLy8gTWFrZSBzdXJlIHRoYXQgd2UgZG9uJ3QgYWNjaWRlbnRhbGx5IHJlLXRyaWdnZXIgdGhlIG9uRk9PIGV2ZW50cwoJCQkJCQlvbGQgPSB0YXJnZXRbICJvbiIgKyB0YXJnZXRUeXBlIF07CgoJCQkJCQlpZiAoIG9sZCApIHsKCQkJCQkJCXRhcmdldFsgIm9uIiArIHRhcmdldFR5cGUgXSA9IG51bGw7CgkJCQkJCX0KCgkJCQkJCWpRdWVyeS5ldmVudC50cmlnZ2VyZWQgPSB0cnVlOwoJCQkJCQl0YXJnZXRbIHRhcmdldFR5cGUgXSgpOwoJCQkJCX0KCgkJCQkvLyBwcmV2ZW50IElFIGZyb20gdGhyb3dpbmcgYW4gZXJyb3IgZm9yIHNvbWUgZWxlbWVudHMgd2l0aCBzb21lIGV2ZW50IHR5cGVzLCBzZWUgIzM1MzMKCQkJCX0gY2F0Y2ggKHRyaWdnZXJFcnJvcikge30KCgkJCQlpZiAoIG9sZCApIHsKCQkJCQl0YXJnZXRbICJvbiIgKyB0YXJnZXRUeXBlIF0gPSBvbGQ7CgkJCQl9CgoJCQkJalF1ZXJ5LmV2ZW50LnRyaWdnZXJlZCA9IGZhbHNlOwoJCQl9CgkJfQoJfSwKCgloYW5kbGU6IGZ1bmN0aW9uKCBldmVudCApIHsKCQl2YXIgYWxsLCBoYW5kbGVycywgbmFtZXNwYWNlcywgbmFtZXNwYWNlX3JlLCBldmVudHMsCgkJCW5hbWVzcGFjZV9zb3J0ID0gW10sCgkJCWFyZ3MgPSBqUXVlcnkubWFrZUFycmF5KCBhcmd1bWVudHMgKTsKCgkJZXZlbnQgPSBhcmdzWzBdID0galF1ZXJ5LmV2ZW50LmZpeCggZXZlbnQgfHwgd2luZG93LmV2ZW50ICk7CgkJZXZlbnQuY3VycmVudFRhcmdldCA9IHRoaXM7CgoJCS8vIE5hbWVzcGFjZWQgZXZlbnQgaGFuZGxlcnMKCQlhbGwgPSBldmVudC50eXBlLmluZGV4T2YoIi4iKSA8IDAgJiYgIWV2ZW50LmV4Y2x1c2l2ZTsKCgkJaWYgKCAhYWxsICkgewoJCQluYW1lc3BhY2VzID0gZXZlbnQudHlwZS5zcGxpdCgiLiIpOwoJCQlldmVudC50eXBlID0gbmFtZXNwYWNlcy5zaGlmdCgpOwoJCQluYW1lc3BhY2Vfc29ydCA9IG5hbWVzcGFjZXMuc2xpY2UoMCkuc29ydCgpOwoJCQluYW1lc3BhY2VfcmUgPSBuZXcgUmVnRXhwKCIoXnxcXC4pIiArIG5hbWVzcGFjZV9zb3J0LmpvaW4oIlxcLig/Oi4qXFwuKT8iKSArICIoXFwufCQpIik7CgkJfQoKCQlldmVudC5uYW1lc3BhY2UgPSBldmVudC5uYW1lc3BhY2UgfHwgbmFtZXNwYWNlX3NvcnQuam9pbigiLiIpOwoKCQlldmVudHMgPSBqUXVlcnkuX2RhdGEodGhpcywgImV2ZW50cyIpOwoKCQloYW5kbGVycyA9IChldmVudHMgfHwge30pWyBldmVudC50eXBlIF07CgoJCWlmICggZXZlbnRzICYmIGhhbmRsZXJzICkgewoJCQkvLyBDbG9uZSB0aGUgaGFuZGxlcnMgdG8gcHJldmVudCBtYW5pcHVsYXRpb24KCQkJaGFuZGxlcnMgPSBoYW5kbGVycy5zbGljZSgwKTsKCgkJCWZvciAoIHZhciBqID0gMCwgbCA9IGhhbmRsZXJzLmxlbmd0aDsgaiA8IGw7IGorKyApIHsKCQkJCXZhciBoYW5kbGVPYmogPSBoYW5kbGVyc1sgaiBdOwoKCQkJCS8vIEZpbHRlciB0aGUgZnVuY3Rpb25zIGJ5IGNsYXNzCgkJCQlpZiAoIGFsbCB8fCBuYW1lc3BhY2VfcmUudGVzdCggaGFuZGxlT2JqLm5hbWVzcGFjZSApICkgewoJCQkJCS8vIFBhc3MgaW4gYSByZWZlcmVuY2UgdG8gdGhlIGhhbmRsZXIgZnVuY3Rpb24gaXRzZWxmCgkJCQkJLy8gU28gdGhhdCB3ZSBjYW4gbGF0ZXIgcmVtb3ZlIGl0CgkJCQkJZXZlbnQuaGFuZGxlciA9IGhhbmRsZU9iai5oYW5kbGVyOwoJCQkJCWV2ZW50LmRhdGEgPSBoYW5kbGVPYmouZGF0YTsKCQkJCQlldmVudC5oYW5kbGVPYmogPSBoYW5kbGVPYmo7CgoJCQkJCXZhciByZXQgPSBoYW5kbGVPYmouaGFuZGxlci5hcHBseSggdGhpcywgYXJncyApOwoKCQkJCQlpZiAoIHJldCAhPT0gdW5kZWZpbmVkICkgewoJCQkJCQlldmVudC5yZXN1bHQgPSByZXQ7CgkJCQkJCWlmICggcmV0ID09PSBmYWxzZSApIHsKCQkJCQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7CgkJCQkJCQlldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKCQkJCQkJfQoJCQkJCX0KCgkJCQkJaWYgKCBldmVudC5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpICkgewoJCQkJCQlicmVhazsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgoJCXJldHVybiBldmVudC5yZXN1bHQ7Cgl9LAoKCXByb3BzOiAiYWx0S2V5IGF0dHJDaGFuZ2UgYXR0ck5hbWUgYnViYmxlcyBidXR0b24gY2FuY2VsYWJsZSBjaGFyQ29kZSBjbGllbnRYIGNsaWVudFkgY3RybEtleSBjdXJyZW50VGFyZ2V0IGRhdGEgZGV0YWlsIGV2ZW50UGhhc2UgZnJvbUVsZW1lbnQgaGFuZGxlciBrZXlDb2RlIGxheWVyWCBsYXllclkgbWV0YUtleSBuZXdWYWx1ZSBvZmZzZXRYIG9mZnNldFkgcGFnZVggcGFnZVkgcHJldlZhbHVlIHJlbGF0ZWROb2RlIHJlbGF0ZWRUYXJnZXQgc2NyZWVuWCBzY3JlZW5ZIHNoaWZ0S2V5IHNyY0VsZW1lbnQgdGFyZ2V0IHRvRWxlbWVudCB2aWV3IHdoZWVsRGVsdGEgd2hpY2giLnNwbGl0KCIgIiksCgoJZml4OiBmdW5jdGlvbiggZXZlbnQgKSB7CgkJaWYgKCBldmVudFsgalF1ZXJ5LmV4cGFuZG8gXSApIHsKCQkJcmV0dXJuIGV2ZW50OwoJCX0KCgkJLy8gc3RvcmUgYSBjb3B5IG9mIHRoZSBvcmlnaW5hbCBldmVudCBvYmplY3QKCQkvLyBhbmQgImNsb25lIiB0byBzZXQgcmVhZC1vbmx5IHByb3BlcnRpZXMKCQl2YXIgb3JpZ2luYWxFdmVudCA9IGV2ZW50OwoJCWV2ZW50ID0galF1ZXJ5LkV2ZW50KCBvcmlnaW5hbEV2ZW50ICk7CgoJCWZvciAoIHZhciBpID0gdGhpcy5wcm9wcy5sZW5ndGgsIHByb3A7IGk7ICkgewoJCQlwcm9wID0gdGhpcy5wcm9wc1sgLS1pIF07CgkJCWV2ZW50WyBwcm9wIF0gPSBvcmlnaW5hbEV2ZW50WyBwcm9wIF07CgkJfQoKCQkvLyBGaXggdGFyZ2V0IHByb3BlcnR5LCBpZiBuZWNlc3NhcnkKCQlpZiAoICFldmVudC50YXJnZXQgKSB7CgkJCS8vIEZpeGVzICMxOTI1IHdoZXJlIHNyY0VsZW1lbnQgbWlnaHQgbm90IGJlIGRlZmluZWQgZWl0aGVyCgkJCWV2ZW50LnRhcmdldCA9IGV2ZW50LnNyY0VsZW1lbnQgfHwgZG9jdW1lbnQ7CgkJfQoKCQkvLyBjaGVjayBpZiB0YXJnZXQgaXMgYSB0ZXh0bm9kZSAoc2FmYXJpKQoJCWlmICggZXZlbnQudGFyZ2V0Lm5vZGVUeXBlID09PSAzICkgewoJCQlldmVudC50YXJnZXQgPSBldmVudC50YXJnZXQucGFyZW50Tm9kZTsKCQl9CgoJCS8vIEFkZCByZWxhdGVkVGFyZ2V0LCBpZiBuZWNlc3NhcnkKCQlpZiAoICFldmVudC5yZWxhdGVkVGFyZ2V0ICYmIGV2ZW50LmZyb21FbGVtZW50ICkgewoJCQlldmVudC5yZWxhdGVkVGFyZ2V0ID0gZXZlbnQuZnJvbUVsZW1lbnQgPT09IGV2ZW50LnRhcmdldCA/IGV2ZW50LnRvRWxlbWVudCA6IGV2ZW50LmZyb21FbGVtZW50OwoJCX0KCgkJLy8gQ2FsY3VsYXRlIHBhZ2VYL1kgaWYgbWlzc2luZyBhbmQgY2xpZW50WC9ZIGF2YWlsYWJsZQoJCWlmICggZXZlbnQucGFnZVggPT0gbnVsbCAmJiBldmVudC5jbGllbnRYICE9IG51bGwgKSB7CgkJCXZhciBkb2MgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsCgkJCQlib2R5ID0gZG9jdW1lbnQuYm9keTsKCgkJCWV2ZW50LnBhZ2VYID0gZXZlbnQuY2xpZW50WCArIChkb2MgJiYgZG9jLnNjcm9sbExlZnQgfHwgYm9keSAmJiBib2R5LnNjcm9sbExlZnQgfHwgMCkgLSAoZG9jICYmIGRvYy5jbGllbnRMZWZ0IHx8IGJvZHkgJiYgYm9keS5jbGllbnRMZWZ0IHx8IDApOwoJCQlldmVudC5wYWdlWSA9IGV2ZW50LmNsaWVudFkgKyAoZG9jICYmIGRvYy5zY3JvbGxUb3AgIHx8IGJvZHkgJiYgYm9keS5zY3JvbGxUb3AgIHx8IDApIC0gKGRvYyAmJiBkb2MuY2xpZW50VG9wICB8fCBib2R5ICYmIGJvZHkuY2xpZW50VG9wICB8fCAwKTsKCQl9CgoJCS8vIEFkZCB3aGljaCBmb3Iga2V5IGV2ZW50cwoJCWlmICggZXZlbnQud2hpY2ggPT0gbnVsbCAmJiAoZXZlbnQuY2hhckNvZGUgIT0gbnVsbCB8fCBldmVudC5rZXlDb2RlICE9IG51bGwpICkgewoJCQlldmVudC53aGljaCA9IGV2ZW50LmNoYXJDb2RlICE9IG51bGwgPyBldmVudC5jaGFyQ29kZSA6IGV2ZW50LmtleUNvZGU7CgkJfQoKCQkvLyBBZGQgbWV0YUtleSB0byBub24tTWFjIGJyb3dzZXJzICh1c2UgY3RybCBmb3IgUEMncyBhbmQgTWV0YSBmb3IgTWFjcykKCQlpZiAoICFldmVudC5tZXRhS2V5ICYmIGV2ZW50LmN0cmxLZXkgKSB7CgkJCWV2ZW50Lm1ldGFLZXkgPSBldmVudC5jdHJsS2V5OwoJCX0KCgkJLy8gQWRkIHdoaWNoIGZvciBjbGljazogMSA9PT0gbGVmdDsgMiA9PT0gbWlkZGxlOyAzID09PSByaWdodAoJCS8vIE5vdGU6IGJ1dHRvbiBpcyBub3Qgbm9ybWFsaXplZCwgc28gZG9uJ3QgdXNlIGl0CgkJaWYgKCAhZXZlbnQud2hpY2ggJiYgZXZlbnQuYnV0dG9uICE9PSB1bmRlZmluZWQgKSB7CgkJCWV2ZW50LndoaWNoID0gKGV2ZW50LmJ1dHRvbiAmIDEgPyAxIDogKCBldmVudC5idXR0b24gJiAyID8gMyA6ICggZXZlbnQuYnV0dG9uICYgNCA/IDIgOiAwICkgKSk7CgkJfQoKCQlyZXR1cm4gZXZlbnQ7Cgl9LAoKCS8vIERlcHJlY2F0ZWQsIHVzZSBqUXVlcnkuZ3VpZCBpbnN0ZWFkCglndWlkOiAxRTgsCgoJLy8gRGVwcmVjYXRlZCwgdXNlIGpRdWVyeS5wcm94eSBpbnN0ZWFkCglwcm94eTogalF1ZXJ5LnByb3h5LAoKCXNwZWNpYWw6IHsKCQlyZWFkeTogewoJCQkvLyBNYWtlIHN1cmUgdGhlIHJlYWR5IGV2ZW50IGlzIHNldHVwCgkJCXNldHVwOiBqUXVlcnkuYmluZFJlYWR5LAoJCQl0ZWFyZG93bjogalF1ZXJ5Lm5vb3AKCQl9LAoKCQlsaXZlOiB7CgkJCWFkZDogZnVuY3Rpb24oIGhhbmRsZU9iaiApIHsKCQkJCWpRdWVyeS5ldmVudC5hZGQoIHRoaXMsCgkJCQkJbGl2ZUNvbnZlcnQoIGhhbmRsZU9iai5vcmlnVHlwZSwgaGFuZGxlT2JqLnNlbGVjdG9yICksCgkJCQkJalF1ZXJ5LmV4dGVuZCh7fSwgaGFuZGxlT2JqLCB7aGFuZGxlcjogbGl2ZUhhbmRsZXIsIGd1aWQ6IGhhbmRsZU9iai5oYW5kbGVyLmd1aWR9KSApOwoJCQl9LAoKCQkJcmVtb3ZlOiBmdW5jdGlvbiggaGFuZGxlT2JqICkgewoJCQkJalF1ZXJ5LmV2ZW50LnJlbW92ZSggdGhpcywgbGl2ZUNvbnZlcnQoIGhhbmRsZU9iai5vcmlnVHlwZSwgaGFuZGxlT2JqLnNlbGVjdG9yICksIGhhbmRsZU9iaiApOwoJCQl9CgkJfSwKCgkJYmVmb3JldW5sb2FkOiB7CgkJCXNldHVwOiBmdW5jdGlvbiggZGF0YSwgbmFtZXNwYWNlcywgZXZlbnRIYW5kbGUgKSB7CgkJCQkvLyBXZSBvbmx5IHdhbnQgdG8gZG8gdGhpcyBzcGVjaWFsIGNhc2Ugb24gd2luZG93cwoJCQkJaWYgKCBqUXVlcnkuaXNXaW5kb3coIHRoaXMgKSApIHsKCQkJCQl0aGlzLm9uYmVmb3JldW5sb2FkID0gZXZlbnRIYW5kbGU7CgkJCQl9CgkJCX0sCgoJCQl0ZWFyZG93bjogZnVuY3Rpb24oIG5hbWVzcGFjZXMsIGV2ZW50SGFuZGxlICkgewoJCQkJaWYgKCB0aGlzLm9uYmVmb3JldW5sb2FkID09PSBldmVudEhhbmRsZSApIHsKCQkJCQl0aGlzLm9uYmVmb3JldW5sb2FkID0gbnVsbDsKCQkJCX0KCQkJfQoJCX0KCX0KfTsKCmpRdWVyeS5yZW1vdmVFdmVudCA9IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIgPwoJZnVuY3Rpb24oIGVsZW0sIHR5cGUsIGhhbmRsZSApIHsKCQlpZiAoIGVsZW0ucmVtb3ZlRXZlbnRMaXN0ZW5lciApIHsKCQkJZWxlbS5yZW1vdmVFdmVudExpc3RlbmVyKCB0eXBlLCBoYW5kbGUsIGZhbHNlICk7CgkJfQoJfSA6CglmdW5jdGlvbiggZWxlbSwgdHlwZSwgaGFuZGxlICkgewoJCWlmICggZWxlbS5kZXRhY2hFdmVudCApIHsKCQkJZWxlbS5kZXRhY2hFdmVudCggIm9uIiArIHR5cGUsIGhhbmRsZSApOwoJCX0KCX07CgpqUXVlcnkuRXZlbnQgPSBmdW5jdGlvbiggc3JjICkgewoJLy8gQWxsb3cgaW5zdGFudGlhdGlvbiB3aXRob3V0IHRoZSAnbmV3JyBrZXl3b3JkCglpZiAoICF0aGlzLnByZXZlbnREZWZhdWx0ICkgewoJCXJldHVybiBuZXcgalF1ZXJ5LkV2ZW50KCBzcmMgKTsKCX0KCgkvLyBFdmVudCBvYmplY3QKCWlmICggc3JjICYmIHNyYy50eXBlICkgewoJCXRoaXMub3JpZ2luYWxFdmVudCA9IHNyYzsKCQl0aGlzLnR5cGUgPSBzcmMudHlwZTsKCgkJLy8gRXZlbnRzIGJ1YmJsaW5nIHVwIHRoZSBkb2N1bWVudCBtYXkgaGF2ZSBiZWVuIG1hcmtlZCBhcyBwcmV2ZW50ZWQKCQkvLyBieSBhIGhhbmRsZXIgbG93ZXIgZG93biB0aGUgdHJlZTsgcmVmbGVjdCB0aGUgY29ycmVjdCB2YWx1ZS4KCQl0aGlzLmlzRGVmYXVsdFByZXZlbnRlZCA9IChzcmMuZGVmYXVsdFByZXZlbnRlZCB8fCBzcmMucmV0dXJuVmFsdWUgPT09IGZhbHNlIHx8CgkJCXNyYy5nZXRQcmV2ZW50RGVmYXVsdCAmJiBzcmMuZ2V0UHJldmVudERlZmF1bHQoKSkgPyByZXR1cm5UcnVlIDogcmV0dXJuRmFsc2U7CgoJLy8gRXZlbnQgdHlwZQoJfSBlbHNlIHsKCQl0aGlzLnR5cGUgPSBzcmM7Cgl9CgoJLy8gdGltZVN0YW1wIGlzIGJ1Z2d5IGZvciBzb21lIGV2ZW50cyBvbiBGaXJlZm94KCMzODQzKQoJLy8gU28gd2Ugd29uJ3QgcmVseSBvbiB0aGUgbmF0aXZlIHZhbHVlCgl0aGlzLnRpbWVTdGFtcCA9IGpRdWVyeS5ub3coKTsKCgkvLyBNYXJrIGl0IGFzIGZpeGVkCgl0aGlzWyBqUXVlcnkuZXhwYW5kbyBdID0gdHJ1ZTsKfTsKCmZ1bmN0aW9uIHJldHVybkZhbHNlKCkgewoJcmV0dXJuIGZhbHNlOwp9CmZ1bmN0aW9uIHJldHVyblRydWUoKSB7CglyZXR1cm4gdHJ1ZTsKfQoKLy8galF1ZXJ5LkV2ZW50IGlzIGJhc2VkIG9uIERPTTMgRXZlbnRzIGFzIHNwZWNpZmllZCBieSB0aGUgRUNNQVNjcmlwdCBMYW5ndWFnZSBCaW5kaW5nCi8vIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDMvV0QtRE9NLUxldmVsLTMtRXZlbnRzLTIwMDMwMzMxL2VjbWEtc2NyaXB0LWJpbmRpbmcuaHRtbApqUXVlcnkuRXZlbnQucHJvdG90eXBlID0gewoJcHJldmVudERlZmF1bHQ6IGZ1bmN0aW9uKCkgewoJCXRoaXMuaXNEZWZhdWx0UHJldmVudGVkID0gcmV0dXJuVHJ1ZTsKCgkJdmFyIGUgPSB0aGlzLm9yaWdpbmFsRXZlbnQ7CgkJaWYgKCAhZSApIHsKCQkJcmV0dXJuOwoJCX0KCgkJLy8gaWYgcHJldmVudERlZmF1bHQgZXhpc3RzIHJ1biBpdCBvbiB0aGUgb3JpZ2luYWwgZXZlbnQKCQlpZiAoIGUucHJldmVudERlZmF1bHQgKSB7CgkJCWUucHJldmVudERlZmF1bHQoKTsKCgkJLy8gb3RoZXJ3aXNlIHNldCB0aGUgcmV0dXJuVmFsdWUgcHJvcGVydHkgb2YgdGhlIG9yaWdpbmFsIGV2ZW50IHRvIGZhbHNlIChJRSkKCQl9IGVsc2UgewoJCQllLnJldHVyblZhbHVlID0gZmFsc2U7CgkJfQoJfSwKCXN0b3BQcm9wYWdhdGlvbjogZnVuY3Rpb24oKSB7CgkJdGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZCA9IHJldHVyblRydWU7CgoJCXZhciBlID0gdGhpcy5vcmlnaW5hbEV2ZW50OwoJCWlmICggIWUgKSB7CgkJCXJldHVybjsKCQl9CgkJLy8gaWYgc3RvcFByb3BhZ2F0aW9uIGV4aXN0cyBydW4gaXQgb24gdGhlIG9yaWdpbmFsIGV2ZW50CgkJaWYgKCBlLnN0b3BQcm9wYWdhdGlvbiApIHsKCQkJZS5zdG9wUHJvcGFnYXRpb24oKTsKCQl9CgkJLy8gb3RoZXJ3aXNlIHNldCB0aGUgY2FuY2VsQnViYmxlIHByb3BlcnR5IG9mIHRoZSBvcmlnaW5hbCBldmVudCB0byB0cnVlIChJRSkKCQllLmNhbmNlbEJ1YmJsZSA9IHRydWU7Cgl9LAoJc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOiBmdW5jdGlvbigpIHsKCQl0aGlzLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkID0gcmV0dXJuVHJ1ZTsKCQl0aGlzLnN0b3BQcm9wYWdhdGlvbigpOwoJfSwKCWlzRGVmYXVsdFByZXZlbnRlZDogcmV0dXJuRmFsc2UsCglpc1Byb3BhZ2F0aW9uU3RvcHBlZDogcmV0dXJuRmFsc2UsCglpc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZDogcmV0dXJuRmFsc2UKfTsKCi8vIENoZWNrcyBpZiBhbiBldmVudCBoYXBwZW5lZCBvbiBhbiBlbGVtZW50IHdpdGhpbiBhbm90aGVyIGVsZW1lbnQKLy8gVXNlZCBpbiBqUXVlcnkuZXZlbnQuc3BlY2lhbC5tb3VzZWVudGVyIGFuZCBtb3VzZWxlYXZlIGhhbmRsZXJzCnZhciB3aXRoaW5FbGVtZW50ID0gZnVuY3Rpb24oIGV2ZW50ICkgewoJLy8gQ2hlY2sgaWYgbW91c2Uob3ZlcnxvdXQpIGFyZSBzdGlsbCB3aXRoaW4gdGhlIHNhbWUgcGFyZW50IGVsZW1lbnQKCXZhciBwYXJlbnQgPSBldmVudC5yZWxhdGVkVGFyZ2V0OwoKCS8vIEZpcmVmb3ggc29tZXRpbWVzIGFzc2lnbnMgcmVsYXRlZFRhcmdldCBhIFhVTCBlbGVtZW50CgkvLyB3aGljaCB3ZSBjYW5ub3QgYWNjZXNzIHRoZSBwYXJlbnROb2RlIHByb3BlcnR5IG9mCgl0cnkgewoKCQkvLyBDaHJvbWUgZG9lcyBzb21ldGhpbmcgc2ltaWxhciwgdGhlIHBhcmVudE5vZGUgcHJvcGVydHkKCQkvLyBjYW4gYmUgYWNjZXNzZWQgYnV0IGlzIG51bGwuCgkJaWYgKCBwYXJlbnQgIT09IGRvY3VtZW50ICYmICFwYXJlbnQucGFyZW50Tm9kZSApIHsKCQkJcmV0dXJuOwoJCX0KCQkvLyBUcmF2ZXJzZSB1cCB0aGUgdHJlZQoJCXdoaWxlICggcGFyZW50ICYmIHBhcmVudCAhPT0gdGhpcyApIHsKCQkJcGFyZW50ID0gcGFyZW50LnBhcmVudE5vZGU7CgkJfQoKCQlpZiAoIHBhcmVudCAhPT0gdGhpcyApIHsKCQkJLy8gc2V0IHRoZSBjb3JyZWN0IGV2ZW50IHR5cGUKCQkJZXZlbnQudHlwZSA9IGV2ZW50LmRhdGE7CgoJCQkvLyBoYW5kbGUgZXZlbnQgaWYgd2UgYWN0dWFsbHkganVzdCBtb3VzZWQgb24gdG8gYSBub24gc3ViLWVsZW1lbnQKCQkJalF1ZXJ5LmV2ZW50LmhhbmRsZS5hcHBseSggdGhpcywgYXJndW1lbnRzICk7CgkJfQoKCS8vIGFzc3VtaW5nIHdlJ3ZlIGxlZnQgdGhlIGVsZW1lbnQgc2luY2Ugd2UgbW9zdCBsaWtlbHkgbW91c2Vkb3ZlciBhIHh1bCBlbGVtZW50Cgl9IGNhdGNoKGUpIHsgfQp9LAoKLy8gSW4gY2FzZSBvZiBldmVudCBkZWxlZ2F0aW9uLCB3ZSBvbmx5IG5lZWQgdG8gcmVuYW1lIHRoZSBldmVudC50eXBlLAovLyBsaXZlSGFuZGxlciB3aWxsIHRha2UgY2FyZSBvZiB0aGUgcmVzdC4KZGVsZWdhdGUgPSBmdW5jdGlvbiggZXZlbnQgKSB7CglldmVudC50eXBlID0gZXZlbnQuZGF0YTsKCWpRdWVyeS5ldmVudC5oYW5kbGUuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApOwp9OwoKLy8gQ3JlYXRlIG1vdXNlZW50ZXIgYW5kIG1vdXNlbGVhdmUgZXZlbnRzCmpRdWVyeS5lYWNoKHsKCW1vdXNlZW50ZXI6ICJtb3VzZW92ZXIiLAoJbW91c2VsZWF2ZTogIm1vdXNlb3V0Igp9LCBmdW5jdGlvbiggb3JpZywgZml4ICkgewoJalF1ZXJ5LmV2ZW50LnNwZWNpYWxbIG9yaWcgXSA9IHsKCQlzZXR1cDogZnVuY3Rpb24oIGRhdGEgKSB7CgkJCWpRdWVyeS5ldmVudC5hZGQoIHRoaXMsIGZpeCwgZGF0YSAmJiBkYXRhLnNlbGVjdG9yID8gZGVsZWdhdGUgOiB3aXRoaW5FbGVtZW50LCBvcmlnICk7CgkJfSwKCQl0ZWFyZG93bjogZnVuY3Rpb24oIGRhdGEgKSB7CgkJCWpRdWVyeS5ldmVudC5yZW1vdmUoIHRoaXMsIGZpeCwgZGF0YSAmJiBkYXRhLnNlbGVjdG9yID8gZGVsZWdhdGUgOiB3aXRoaW5FbGVtZW50ICk7CgkJfQoJfTsKfSk7CgovLyBzdWJtaXQgZGVsZWdhdGlvbgppZiAoICFqUXVlcnkuc3VwcG9ydC5zdWJtaXRCdWJibGVzICkgewoKCWpRdWVyeS5ldmVudC5zcGVjaWFsLnN1Ym1pdCA9IHsKCQlzZXR1cDogZnVuY3Rpb24oIGRhdGEsIG5hbWVzcGFjZXMgKSB7CgkJCWlmICggdGhpcy5ub2RlTmFtZSAmJiB0aGlzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgIT09ICJmb3JtIiApIHsKCQkJCWpRdWVyeS5ldmVudC5hZGQodGhpcywgImNsaWNrLnNwZWNpYWxTdWJtaXQiLCBmdW5jdGlvbiggZSApIHsKCQkJCQl2YXIgZWxlbSA9IGUudGFyZ2V0LAoJCQkJCQl0eXBlID0gZWxlbS50eXBlOwoKCQkJCQlpZiAoICh0eXBlID09PSAic3VibWl0IiB8fCB0eXBlID09PSAiaW1hZ2UiKSAmJiBqUXVlcnkoIGVsZW0gKS5jbG9zZXN0KCJmb3JtIikubGVuZ3RoICkgewoJCQkJCQl0cmlnZ2VyKCAic3VibWl0IiwgdGhpcywgYXJndW1lbnRzICk7CgkJCQkJfQoJCQkJfSk7CgoJCQkJalF1ZXJ5LmV2ZW50LmFkZCh0aGlzLCAia2V5cHJlc3Muc3BlY2lhbFN1Ym1pdCIsIGZ1bmN0aW9uKCBlICkgewoJCQkJCXZhciBlbGVtID0gZS50YXJnZXQsCgkJCQkJCXR5cGUgPSBlbGVtLnR5cGU7CgoJCQkJCWlmICggKHR5cGUgPT09ICJ0ZXh0IiB8fCB0eXBlID09PSAicGFzc3dvcmQiKSAmJiBqUXVlcnkoIGVsZW0gKS5jbG9zZXN0KCJmb3JtIikubGVuZ3RoICYmIGUua2V5Q29kZSA9PT0gMTMgKSB7CgkJCQkJCXRyaWdnZXIoICJzdWJtaXQiLCB0aGlzLCBhcmd1bWVudHMgKTsKCQkJCQl9CgkJCQl9KTsKCgkJCX0gZWxzZSB7CgkJCQlyZXR1cm4gZmFsc2U7CgkJCX0KCQl9LAoKCQl0ZWFyZG93bjogZnVuY3Rpb24oIG5hbWVzcGFjZXMgKSB7CgkJCWpRdWVyeS5ldmVudC5yZW1vdmUoIHRoaXMsICIuc3BlY2lhbFN1Ym1pdCIgKTsKCQl9Cgl9OwoKfQoKLy8gY2hhbmdlIGRlbGVnYXRpb24sIGhhcHBlbnMgaGVyZSBzbyB3ZSBoYXZlIGJpbmQuCmlmICggIWpRdWVyeS5zdXBwb3J0LmNoYW5nZUJ1YmJsZXMgKSB7CgoJdmFyIGNoYW5nZUZpbHRlcnMsCgoJZ2V0VmFsID0gZnVuY3Rpb24oIGVsZW0gKSB7CgkJdmFyIHR5cGUgPSBlbGVtLnR5cGUsIHZhbCA9IGVsZW0udmFsdWU7CgoJCWlmICggdHlwZSA9PT0gInJhZGlvIiB8fCB0eXBlID09PSAiY2hlY2tib3giICkgewoJCQl2YWwgPSBlbGVtLmNoZWNrZWQ7CgoJCX0gZWxzZSBpZiAoIHR5cGUgPT09ICJzZWxlY3QtbXVsdGlwbGUiICkgewoJCQl2YWwgPSBlbGVtLnNlbGVjdGVkSW5kZXggPiAtMSA/CgkJCQlqUXVlcnkubWFwKCBlbGVtLm9wdGlvbnMsIGZ1bmN0aW9uKCBlbGVtICkgewoJCQkJCXJldHVybiBlbGVtLnNlbGVjdGVkOwoJCQkJfSkuam9pbigiLSIpIDoKCQkJCSIiOwoKCQl9IGVsc2UgaWYgKCBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICJzZWxlY3QiICkgewoJCQl2YWwgPSBlbGVtLnNlbGVjdGVkSW5kZXg7CgkJfQoKCQlyZXR1cm4gdmFsOwoJfSwKCgl0ZXN0Q2hhbmdlID0gZnVuY3Rpb24gdGVzdENoYW5nZSggZSApIHsKCQl2YXIgZWxlbSA9IGUudGFyZ2V0LCBkYXRhLCB2YWw7CgoJCWlmICggIXJmb3JtRWxlbXMudGVzdCggZWxlbS5ub2RlTmFtZSApIHx8IGVsZW0ucmVhZE9ubHkgKSB7CgkJCXJldHVybjsKCQl9CgoJCWRhdGEgPSBqUXVlcnkuX2RhdGEoIGVsZW0sICJfY2hhbmdlX2RhdGEiICk7CgkJdmFsID0gZ2V0VmFsKGVsZW0pOwoKCQkvLyB0aGUgY3VycmVudCBkYXRhIHdpbGwgYmUgYWxzbyByZXRyaWV2ZWQgYnkgYmVmb3JlYWN0aXZhdGUKCQlpZiAoIGUudHlwZSAhPT0gImZvY3Vzb3V0IiB8fCBlbGVtLnR5cGUgIT09ICJyYWRpbyIgKSB7CgkJCWpRdWVyeS5fZGF0YSggZWxlbSwgIl9jaGFuZ2VfZGF0YSIsIHZhbCApOwoJCX0KCgkJaWYgKCBkYXRhID09PSB1bmRlZmluZWQgfHwgdmFsID09PSBkYXRhICkgewoJCQlyZXR1cm47CgkJfQoKCQlpZiAoIGRhdGEgIT0gbnVsbCB8fCB2YWwgKSB7CgkJCWUudHlwZSA9ICJjaGFuZ2UiOwoJCQllLmxpdmVGaXJlZCA9IHVuZGVmaW5lZDsKCQkJalF1ZXJ5LmV2ZW50LnRyaWdnZXIoIGUsIGFyZ3VtZW50c1sxXSwgZWxlbSApOwoJCX0KCX07CgoJalF1ZXJ5LmV2ZW50LnNwZWNpYWwuY2hhbmdlID0gewoJCWZpbHRlcnM6IHsKCQkJZm9jdXNvdXQ6IHRlc3RDaGFuZ2UsCgoJCQliZWZvcmVkZWFjdGl2YXRlOiB0ZXN0Q2hhbmdlLAoKCQkJY2xpY2s6IGZ1bmN0aW9uKCBlICkgewoJCQkJdmFyIGVsZW0gPSBlLnRhcmdldCwgdHlwZSA9IGVsZW0udHlwZTsKCgkJCQlpZiAoIHR5cGUgPT09ICJyYWRpbyIgfHwgdHlwZSA9PT0gImNoZWNrYm94IiB8fCBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICJzZWxlY3QiICkgewoJCQkJCXRlc3RDaGFuZ2UuY2FsbCggdGhpcywgZSApOwoJCQkJfQoJCQl9LAoKCQkJLy8gQ2hhbmdlIGhhcyB0byBiZSBjYWxsZWQgYmVmb3JlIHN1Ym1pdAoJCQkvLyBLZXlkb3duIHdpbGwgYmUgY2FsbGVkIGJlZm9yZSBrZXlwcmVzcywgd2hpY2ggaXMgdXNlZCBpbiBzdWJtaXQtZXZlbnQgZGVsZWdhdGlvbgoJCQlrZXlkb3duOiBmdW5jdGlvbiggZSApIHsKCQkJCXZhciBlbGVtID0gZS50YXJnZXQsIHR5cGUgPSBlbGVtLnR5cGU7CgoJCQkJaWYgKCAoZS5rZXlDb2RlID09PSAxMyAmJiBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgIT09ICJ0ZXh0YXJlYSIpIHx8CgkJCQkJKGUua2V5Q29kZSA9PT0gMzIgJiYgKHR5cGUgPT09ICJjaGVja2JveCIgfHwgdHlwZSA9PT0gInJhZGlvIikpIHx8CgkJCQkJdHlwZSA9PT0gInNlbGVjdC1tdWx0aXBsZSIgKSB7CgkJCQkJdGVzdENoYW5nZS5jYWxsKCB0aGlzLCBlICk7CgkJCQl9CgkJCX0sCgoJCQkvLyBCZWZvcmVhY3RpdmF0ZSBoYXBwZW5zIGFsc28gYmVmb3JlIHRoZSBwcmV2aW91cyBlbGVtZW50IGlzIGJsdXJyZWQKCQkJLy8gd2l0aCB0aGlzIGV2ZW50IHlvdSBjYW4ndCB0cmlnZ2VyIGEgY2hhbmdlIGV2ZW50LCBidXQgeW91IGNhbiBzdG9yZQoJCQkvLyBpbmZvcm1hdGlvbgoJCQliZWZvcmVhY3RpdmF0ZTogZnVuY3Rpb24oIGUgKSB7CgkJCQl2YXIgZWxlbSA9IGUudGFyZ2V0OwoJCQkJalF1ZXJ5Ll9kYXRhKCBlbGVtLCAiX2NoYW5nZV9kYXRhIiwgZ2V0VmFsKGVsZW0pICk7CgkJCX0KCQl9LAoKCQlzZXR1cDogZnVuY3Rpb24oIGRhdGEsIG5hbWVzcGFjZXMgKSB7CgkJCWlmICggdGhpcy50eXBlID09PSAiZmlsZSIgKSB7CgkJCQlyZXR1cm4gZmFsc2U7CgkJCX0KCgkJCWZvciAoIHZhciB0eXBlIGluIGNoYW5nZUZpbHRlcnMgKSB7CgkJCQlqUXVlcnkuZXZlbnQuYWRkKCB0aGlzLCB0eXBlICsgIi5zcGVjaWFsQ2hhbmdlIiwgY2hhbmdlRmlsdGVyc1t0eXBlXSApOwoJCQl9CgoJCQlyZXR1cm4gcmZvcm1FbGVtcy50ZXN0KCB0aGlzLm5vZGVOYW1lICk7CgkJfSwKCgkJdGVhcmRvd246IGZ1bmN0aW9uKCBuYW1lc3BhY2VzICkgewoJCQlqUXVlcnkuZXZlbnQucmVtb3ZlKCB0aGlzLCAiLnNwZWNpYWxDaGFuZ2UiICk7CgoJCQlyZXR1cm4gcmZvcm1FbGVtcy50ZXN0KCB0aGlzLm5vZGVOYW1lICk7CgkJfQoJfTsKCgljaGFuZ2VGaWx0ZXJzID0galF1ZXJ5LmV2ZW50LnNwZWNpYWwuY2hhbmdlLmZpbHRlcnM7CgoJLy8gSGFuZGxlIHdoZW4gdGhlIGlucHV0IGlzIC5mb2N1cygpJ2QKCWNoYW5nZUZpbHRlcnMuZm9jdXMgPSBjaGFuZ2VGaWx0ZXJzLmJlZm9yZWFjdGl2YXRlOwp9CgpmdW5jdGlvbiB0cmlnZ2VyKCB0eXBlLCBlbGVtLCBhcmdzICkgewoJLy8gUGlnZ3liYWNrIG9uIGEgZG9ub3IgZXZlbnQgdG8gc2ltdWxhdGUgYSBkaWZmZXJlbnQgb25lLgoJLy8gRmFrZSBvcmlnaW5hbEV2ZW50IHRvIGF2b2lkIGRvbm9yJ3Mgc3RvcFByb3BhZ2F0aW9uLCBidXQgaWYgdGhlCgkvLyBzaW11bGF0ZWQgZXZlbnQgcHJldmVudHMgZGVmYXVsdCB0aGVuIHdlIGRvIHRoZSBzYW1lIG9uIHRoZSBkb25vci4KCS8vIERvbid0IHBhc3MgYXJncyBvciByZW1lbWJlciBsaXZlRmlyZWQ7IHRoZXkgYXBwbHkgdG8gdGhlIGRvbm9yIGV2ZW50LgoJdmFyIGV2ZW50ID0galF1ZXJ5LmV4dGVuZCgge30sIGFyZ3NbIDAgXSApOwoJZXZlbnQudHlwZSA9IHR5cGU7CglldmVudC5vcmlnaW5hbEV2ZW50ID0ge307CglldmVudC5saXZlRmlyZWQgPSB1bmRlZmluZWQ7CglqUXVlcnkuZXZlbnQuaGFuZGxlLmNhbGwoIGVsZW0sIGV2ZW50ICk7CglpZiAoIGV2ZW50LmlzRGVmYXVsdFByZXZlbnRlZCgpICkgewoJCWFyZ3NbIDAgXS5wcmV2ZW50RGVmYXVsdCgpOwoJfQp9CgovLyBDcmVhdGUgImJ1YmJsaW5nIiBmb2N1cyBhbmQgYmx1ciBldmVudHMKaWYgKCBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyICkgewoJalF1ZXJ5LmVhY2goeyBmb2N1czogImZvY3VzaW4iLCBibHVyOiAiZm9jdXNvdXQiIH0sIGZ1bmN0aW9uKCBvcmlnLCBmaXggKSB7CgkJalF1ZXJ5LmV2ZW50LnNwZWNpYWxbIGZpeCBdID0gewoJCQlzZXR1cDogZnVuY3Rpb24oKSB7CgkJCQl0aGlzLmFkZEV2ZW50TGlzdGVuZXIoIG9yaWcsIGhhbmRsZXIsIHRydWUgKTsKCQkJfSwKCQkJdGVhcmRvd246IGZ1bmN0aW9uKCkgewoJCQkJdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKCBvcmlnLCBoYW5kbGVyLCB0cnVlICk7CgkJCX0KCQl9OwoKCQlmdW5jdGlvbiBoYW5kbGVyKCBlICkgewoJCQllID0galF1ZXJ5LmV2ZW50LmZpeCggZSApOwoJCQllLnR5cGUgPSBmaXg7CgkJCXJldHVybiBqUXVlcnkuZXZlbnQuaGFuZGxlLmNhbGwoIHRoaXMsIGUgKTsKCQl9Cgl9KTsKfQoKalF1ZXJ5LmVhY2goWyJiaW5kIiwgIm9uZSJdLCBmdW5jdGlvbiggaSwgbmFtZSApIHsKCWpRdWVyeS5mblsgbmFtZSBdID0gZnVuY3Rpb24oIHR5cGUsIGRhdGEsIGZuICkgewoJCS8vIEhhbmRsZSBvYmplY3QgbGl0ZXJhbHMKCQlpZiAoIHR5cGVvZiB0eXBlID09PSAib2JqZWN0IiApIHsKCQkJZm9yICggdmFyIGtleSBpbiB0eXBlICkgewoJCQkJdGhpc1sgbmFtZSBdKGtleSwgZGF0YSwgdHlwZVtrZXldLCBmbik7CgkJCX0KCQkJcmV0dXJuIHRoaXM7CgkJfQoKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCBkYXRhICkgfHwgZGF0YSA9PT0gZmFsc2UgKSB7CgkJCWZuID0gZGF0YTsKCQkJZGF0YSA9IHVuZGVmaW5lZDsKCQl9CgoJCXZhciBoYW5kbGVyID0gbmFtZSA9PT0gIm9uZSIgPyBqUXVlcnkucHJveHkoIGZuLCBmdW5jdGlvbiggZXZlbnQgKSB7CgkJCWpRdWVyeSggdGhpcyApLnVuYmluZCggZXZlbnQsIGhhbmRsZXIgKTsKCQkJcmV0dXJuIGZuLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTsKCQl9KSA6IGZuOwoKCQlpZiAoIHR5cGUgPT09ICJ1bmxvYWQiICYmIG5hbWUgIT09ICJvbmUiICkgewoJCQl0aGlzLm9uZSggdHlwZSwgZGF0YSwgZm4gKTsKCgkJfSBlbHNlIHsKCQkJZm9yICggdmFyIGkgPSAwLCBsID0gdGhpcy5sZW5ndGg7IGkgPCBsOyBpKysgKSB7CgkJCQlqUXVlcnkuZXZlbnQuYWRkKCB0aGlzW2ldLCB0eXBlLCBoYW5kbGVyLCBkYXRhICk7CgkJCX0KCQl9CgoJCXJldHVybiB0aGlzOwoJfTsKfSk7CgpqUXVlcnkuZm4uZXh0ZW5kKHsKCXVuYmluZDogZnVuY3Rpb24oIHR5cGUsIGZuICkgewoJCS8vIEhhbmRsZSBvYmplY3QgbGl0ZXJhbHMKCQlpZiAoIHR5cGVvZiB0eXBlID09PSAib2JqZWN0IiAmJiAhdHlwZS5wcmV2ZW50RGVmYXVsdCApIHsKCQkJZm9yICggdmFyIGtleSBpbiB0eXBlICkgewoJCQkJdGhpcy51bmJpbmQoa2V5LCB0eXBlW2tleV0pOwoJCQl9CgoJCX0gZWxzZSB7CgkJCWZvciAoIHZhciBpID0gMCwgbCA9IHRoaXMubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCQkJalF1ZXJ5LmV2ZW50LnJlbW92ZSggdGhpc1tpXSwgdHlwZSwgZm4gKTsKCQkJfQoJCX0KCgkJcmV0dXJuIHRoaXM7Cgl9LAoKCWRlbGVnYXRlOiBmdW5jdGlvbiggc2VsZWN0b3IsIHR5cGVzLCBkYXRhLCBmbiApIHsKCQlyZXR1cm4gdGhpcy5saXZlKCB0eXBlcywgZGF0YSwgZm4sIHNlbGVjdG9yICk7Cgl9LAoKCXVuZGVsZWdhdGU6IGZ1bmN0aW9uKCBzZWxlY3RvciwgdHlwZXMsIGZuICkgewoJCWlmICggYXJndW1lbnRzLmxlbmd0aCA9PT0gMCApIHsKCQkJCXJldHVybiB0aGlzLnVuYmluZCggImxpdmUiICk7CgoJCX0gZWxzZSB7CgkJCXJldHVybiB0aGlzLmRpZSggdHlwZXMsIG51bGwsIGZuLCBzZWxlY3RvciApOwoJCX0KCX0sCgoJdHJpZ2dlcjogZnVuY3Rpb24oIHR5cGUsIGRhdGEgKSB7CgkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJalF1ZXJ5LmV2ZW50LnRyaWdnZXIoIHR5cGUsIGRhdGEsIHRoaXMgKTsKCQl9KTsKCX0sCgoJdHJpZ2dlckhhbmRsZXI6IGZ1bmN0aW9uKCB0eXBlLCBkYXRhICkgewoJCWlmICggdGhpc1swXSApIHsKCQkJdmFyIGV2ZW50ID0galF1ZXJ5LkV2ZW50KCB0eXBlICk7CgkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7CgkJCWV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwoJCQlqUXVlcnkuZXZlbnQudHJpZ2dlciggZXZlbnQsIGRhdGEsIHRoaXNbMF0gKTsKCQkJcmV0dXJuIGV2ZW50LnJlc3VsdDsKCQl9Cgl9LAoKCXRvZ2dsZTogZnVuY3Rpb24oIGZuICkgewoJCS8vIFNhdmUgcmVmZXJlbmNlIHRvIGFyZ3VtZW50cyBmb3IgYWNjZXNzIGluIGNsb3N1cmUKCQl2YXIgYXJncyA9IGFyZ3VtZW50cywKCQkJaSA9IDE7CgoJCS8vIGxpbmsgYWxsIHRoZSBmdW5jdGlvbnMsIHNvIGFueSBvZiB0aGVtIGNhbiB1bmJpbmQgdGhpcyBjbGljayBoYW5kbGVyCgkJd2hpbGUgKCBpIDwgYXJncy5sZW5ndGggKSB7CgkJCWpRdWVyeS5wcm94eSggZm4sIGFyZ3NbIGkrKyBdICk7CgkJfQoKCQlyZXR1cm4gdGhpcy5jbGljayggalF1ZXJ5LnByb3h5KCBmbiwgZnVuY3Rpb24oIGV2ZW50ICkgewoJCQkvLyBGaWd1cmUgb3V0IHdoaWNoIGZ1bmN0aW9uIHRvIGV4ZWN1dGUKCQkJdmFyIGxhc3RUb2dnbGUgPSAoIGpRdWVyeS5fZGF0YSggdGhpcywgImxhc3RUb2dnbGUiICsgZm4uZ3VpZCApIHx8IDAgKSAlIGk7CgkJCWpRdWVyeS5fZGF0YSggdGhpcywgImxhc3RUb2dnbGUiICsgZm4uZ3VpZCwgbGFzdFRvZ2dsZSArIDEgKTsKCgkJCS8vIE1ha2Ugc3VyZSB0aGF0IGNsaWNrcyBzdG9wCgkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7CgoJCQkvLyBhbmQgZXhlY3V0ZSB0aGUgZnVuY3Rpb24KCQkJcmV0dXJuIGFyZ3NbIGxhc3RUb2dnbGUgXS5hcHBseSggdGhpcywgYXJndW1lbnRzICkgfHwgZmFsc2U7CgkJfSkpOwoJfSwKCglob3ZlcjogZnVuY3Rpb24oIGZuT3ZlciwgZm5PdXQgKSB7CgkJcmV0dXJuIHRoaXMubW91c2VlbnRlciggZm5PdmVyICkubW91c2VsZWF2ZSggZm5PdXQgfHwgZm5PdmVyICk7Cgl9Cn0pOwoKdmFyIGxpdmVNYXAgPSB7Cglmb2N1czogImZvY3VzaW4iLAoJYmx1cjogImZvY3Vzb3V0IiwKCW1vdXNlZW50ZXI6ICJtb3VzZW92ZXIiLAoJbW91c2VsZWF2ZTogIm1vdXNlb3V0Igp9OwoKalF1ZXJ5LmVhY2goWyJsaXZlIiwgImRpZSJdLCBmdW5jdGlvbiggaSwgbmFtZSApIHsKCWpRdWVyeS5mblsgbmFtZSBdID0gZnVuY3Rpb24oIHR5cGVzLCBkYXRhLCBmbiwgb3JpZ1NlbGVjdG9yIC8qIEludGVybmFsIFVzZSBPbmx5ICovICkgewoJCXZhciB0eXBlLCBpID0gMCwgbWF0Y2gsIG5hbWVzcGFjZXMsIHByZVR5cGUsCgkJCXNlbGVjdG9yID0gb3JpZ1NlbGVjdG9yIHx8IHRoaXMuc2VsZWN0b3IsCgkJCWNvbnRleHQgPSBvcmlnU2VsZWN0b3IgPyB0aGlzIDogalF1ZXJ5KCB0aGlzLmNvbnRleHQgKTsKCgkJaWYgKCB0eXBlb2YgdHlwZXMgPT09ICJvYmplY3QiICYmICF0eXBlcy5wcmV2ZW50RGVmYXVsdCApIHsKCQkJZm9yICggdmFyIGtleSBpbiB0eXBlcyApIHsKCQkJCWNvbnRleHRbIG5hbWUgXSgga2V5LCBkYXRhLCB0eXBlc1trZXldLCBzZWxlY3RvciApOwoJCQl9CgoJCQlyZXR1cm4gdGhpczsKCQl9CgoJCWlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIGRhdGEgKSApIHsKCQkJZm4gPSBkYXRhOwoJCQlkYXRhID0gdW5kZWZpbmVkOwoJCX0KCgkJdHlwZXMgPSAodHlwZXMgfHwgIiIpLnNwbGl0KCIgIik7CgoJCXdoaWxlICggKHR5cGUgPSB0eXBlc1sgaSsrIF0pICE9IG51bGwgKSB7CgkJCW1hdGNoID0gcm5hbWVzcGFjZXMuZXhlYyggdHlwZSApOwoJCQluYW1lc3BhY2VzID0gIiI7CgoJCQlpZiAoIG1hdGNoICkgIHsKCQkJCW5hbWVzcGFjZXMgPSBtYXRjaFswXTsKCQkJCXR5cGUgPSB0eXBlLnJlcGxhY2UoIHJuYW1lc3BhY2VzLCAiIiApOwoJCQl9CgoJCQlpZiAoIHR5cGUgPT09ICJob3ZlciIgKSB7CgkJCQl0eXBlcy5wdXNoKCAibW91c2VlbnRlciIgKyBuYW1lc3BhY2VzLCAibW91c2VsZWF2ZSIgKyBuYW1lc3BhY2VzICk7CgkJCQljb250aW51ZTsKCQkJfQoKCQkJcHJlVHlwZSA9IHR5cGU7CgoJCQlpZiAoIHR5cGUgPT09ICJmb2N1cyIgfHwgdHlwZSA9PT0gImJsdXIiICkgewoJCQkJdHlwZXMucHVzaCggbGl2ZU1hcFsgdHlwZSBdICsgbmFtZXNwYWNlcyApOwoJCQkJdHlwZSA9IHR5cGUgKyBuYW1lc3BhY2VzOwoKCQkJfSBlbHNlIHsKCQkJCXR5cGUgPSAobGl2ZU1hcFsgdHlwZSBdIHx8IHR5cGUpICsgbmFtZXNwYWNlczsKCQkJfQoKCQkJaWYgKCBuYW1lID09PSAibGl2ZSIgKSB7CgkJCQkvLyBiaW5kIGxpdmUgaGFuZGxlcgoJCQkJZm9yICggdmFyIGogPSAwLCBsID0gY29udGV4dC5sZW5ndGg7IGogPCBsOyBqKysgKSB7CgkJCQkJalF1ZXJ5LmV2ZW50LmFkZCggY29udGV4dFtqXSwgImxpdmUuIiArIGxpdmVDb252ZXJ0KCB0eXBlLCBzZWxlY3RvciApLAoJCQkJCQl7IGRhdGE6IGRhdGEsIHNlbGVjdG9yOiBzZWxlY3RvciwgaGFuZGxlcjogZm4sIG9yaWdUeXBlOiB0eXBlLCBvcmlnSGFuZGxlcjogZm4sIHByZVR5cGU6IHByZVR5cGUgfSApOwoJCQkJfQoKCQkJfSBlbHNlIHsKCQkJCS8vIHVuYmluZCBsaXZlIGhhbmRsZXIKCQkJCWNvbnRleHQudW5iaW5kKCAibGl2ZS4iICsgbGl2ZUNvbnZlcnQoIHR5cGUsIHNlbGVjdG9yICksIGZuICk7CgkJCX0KCQl9CgoJCXJldHVybiB0aGlzOwoJfTsKfSk7CgpmdW5jdGlvbiBsaXZlSGFuZGxlciggZXZlbnQgKSB7Cgl2YXIgc3RvcCwgbWF4TGV2ZWwsIHJlbGF0ZWQsIG1hdGNoLCBoYW5kbGVPYmosIGVsZW0sIGosIGksIGwsIGRhdGEsIGNsb3NlLCBuYW1lc3BhY2UsIHJldCwKCQllbGVtcyA9IFtdLAoJCXNlbGVjdG9ycyA9IFtdLAoJCWV2ZW50cyA9IGpRdWVyeS5fZGF0YSggdGhpcywgImV2ZW50cyIgKTsKCgkvLyBNYWtlIHN1cmUgd2UgYXZvaWQgbm9uLWxlZnQtY2xpY2sgYnViYmxpbmcgaW4gRmlyZWZveCAoIzM4NjEpIGFuZCBkaXNhYmxlZCBlbGVtZW50cyBpbiBJRSAoIzY5MTEpCglpZiAoIGV2ZW50LmxpdmVGaXJlZCA9PT0gdGhpcyB8fCAhZXZlbnRzIHx8ICFldmVudHMubGl2ZSB8fCBldmVudC50YXJnZXQuZGlzYWJsZWQgfHwgZXZlbnQuYnV0dG9uICYmIGV2ZW50LnR5cGUgPT09ICJjbGljayIgKSB7CgkJcmV0dXJuOwoJfQoKCWlmICggZXZlbnQubmFtZXNwYWNlICkgewoJCW5hbWVzcGFjZSA9IG5ldyBSZWdFeHAoIihefFxcLikiICsgZXZlbnQubmFtZXNwYWNlLnNwbGl0KCIuIikuam9pbigiXFwuKD86LipcXC4pPyIpICsgIihcXC58JCkiKTsKCX0KCglldmVudC5saXZlRmlyZWQgPSB0aGlzOwoKCXZhciBsaXZlID0gZXZlbnRzLmxpdmUuc2xpY2UoMCk7CgoJZm9yICggaiA9IDA7IGogPCBsaXZlLmxlbmd0aDsgaisrICkgewoJCWhhbmRsZU9iaiA9IGxpdmVbal07CgoJCWlmICggaGFuZGxlT2JqLm9yaWdUeXBlLnJlcGxhY2UoIHJuYW1lc3BhY2VzLCAiIiApID09PSBldmVudC50eXBlICkgewoJCQlzZWxlY3RvcnMucHVzaCggaGFuZGxlT2JqLnNlbGVjdG9yICk7CgoJCX0gZWxzZSB7CgkJCWxpdmUuc3BsaWNlKCBqLS0sIDEgKTsKCQl9Cgl9CgoJbWF0Y2ggPSBqUXVlcnkoIGV2ZW50LnRhcmdldCApLmNsb3Nlc3QoIHNlbGVjdG9ycywgZXZlbnQuY3VycmVudFRhcmdldCApOwoKCWZvciAoIGkgPSAwLCBsID0gbWF0Y2gubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCWNsb3NlID0gbWF0Y2hbaV07CgoJCWZvciAoIGogPSAwOyBqIDwgbGl2ZS5sZW5ndGg7IGorKyApIHsKCQkJaGFuZGxlT2JqID0gbGl2ZVtqXTsKCgkJCWlmICggY2xvc2Uuc2VsZWN0b3IgPT09IGhhbmRsZU9iai5zZWxlY3RvciAmJiAoIW5hbWVzcGFjZSB8fCBuYW1lc3BhY2UudGVzdCggaGFuZGxlT2JqLm5hbWVzcGFjZSApKSAmJiAhY2xvc2UuZWxlbS5kaXNhYmxlZCApIHsKCQkJCWVsZW0gPSBjbG9zZS5lbGVtOwoJCQkJcmVsYXRlZCA9IG51bGw7CgoJCQkJLy8gVGhvc2UgdHdvIGV2ZW50cyByZXF1aXJlIGFkZGl0aW9uYWwgY2hlY2tpbmcKCQkJCWlmICggaGFuZGxlT2JqLnByZVR5cGUgPT09ICJtb3VzZWVudGVyIiB8fCBoYW5kbGVPYmoucHJlVHlwZSA9PT0gIm1vdXNlbGVhdmUiICkgewoJCQkJCWV2ZW50LnR5cGUgPSBoYW5kbGVPYmoucHJlVHlwZTsKCQkJCQlyZWxhdGVkID0galF1ZXJ5KCBldmVudC5yZWxhdGVkVGFyZ2V0ICkuY2xvc2VzdCggaGFuZGxlT2JqLnNlbGVjdG9yIClbMF07CgkJCQl9CgoJCQkJaWYgKCAhcmVsYXRlZCB8fCByZWxhdGVkICE9PSBlbGVtICkgewoJCQkJCWVsZW1zLnB1c2goeyBlbGVtOiBlbGVtLCBoYW5kbGVPYmo6IGhhbmRsZU9iaiwgbGV2ZWw6IGNsb3NlLmxldmVsIH0pOwoJCQkJfQoJCQl9CgkJfQoJfQoKCWZvciAoIGkgPSAwLCBsID0gZWxlbXMubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCW1hdGNoID0gZWxlbXNbaV07CgoJCWlmICggbWF4TGV2ZWwgJiYgbWF0Y2gubGV2ZWwgPiBtYXhMZXZlbCApIHsKCQkJYnJlYWs7CgkJfQoKCQlldmVudC5jdXJyZW50VGFyZ2V0ID0gbWF0Y2guZWxlbTsKCQlldmVudC5kYXRhID0gbWF0Y2guaGFuZGxlT2JqLmRhdGE7CgkJZXZlbnQuaGFuZGxlT2JqID0gbWF0Y2guaGFuZGxlT2JqOwoKCQlyZXQgPSBtYXRjaC5oYW5kbGVPYmoub3JpZ0hhbmRsZXIuYXBwbHkoIG1hdGNoLmVsZW0sIGFyZ3VtZW50cyApOwoKCQlpZiAoIHJldCA9PT0gZmFsc2UgfHwgZXZlbnQuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSApIHsKCQkJbWF4TGV2ZWwgPSBtYXRjaC5sZXZlbDsKCgkJCWlmICggcmV0ID09PSBmYWxzZSApIHsKCQkJCXN0b3AgPSBmYWxzZTsKCQkJfQoJCQlpZiAoIGV2ZW50LmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkKCkgKSB7CgkJCQlicmVhazsKCQkJfQoJCX0KCX0KCglyZXR1cm4gc3RvcDsKfQoKZnVuY3Rpb24gbGl2ZUNvbnZlcnQoIHR5cGUsIHNlbGVjdG9yICkgewoJcmV0dXJuICh0eXBlICYmIHR5cGUgIT09ICIqIiA/IHR5cGUgKyAiLiIgOiAiIikgKyBzZWxlY3Rvci5yZXBsYWNlKHJwZXJpb2QsICJgIikucmVwbGFjZShyc3BhY2UsICImIik7Cn0KCmpRdWVyeS5lYWNoKCAoImJsdXIgZm9jdXMgZm9jdXNpbiBmb2N1c291dCBsb2FkIHJlc2l6ZSBzY3JvbGwgdW5sb2FkIGNsaWNrIGRibGNsaWNrICIgKwoJIm1vdXNlZG93biBtb3VzZXVwIG1vdXNlbW92ZSBtb3VzZW92ZXIgbW91c2VvdXQgbW91c2VlbnRlciBtb3VzZWxlYXZlICIgKwoJImNoYW5nZSBzZWxlY3Qgc3VibWl0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgZXJyb3IiKS5zcGxpdCgiICIpLCBmdW5jdGlvbiggaSwgbmFtZSApIHsKCgkvLyBIYW5kbGUgZXZlbnQgYmluZGluZwoJalF1ZXJ5LmZuWyBuYW1lIF0gPSBmdW5jdGlvbiggZGF0YSwgZm4gKSB7CgkJaWYgKCBmbiA9PSBudWxsICkgewoJCQlmbiA9IGRhdGE7CgkJCWRhdGEgPSBudWxsOwoJCX0KCgkJcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPiAwID8KCQkJdGhpcy5iaW5kKCBuYW1lLCBkYXRhLCBmbiApIDoKCQkJdGhpcy50cmlnZ2VyKCBuYW1lICk7Cgl9OwoKCWlmICggalF1ZXJ5LmF0dHJGbiApIHsKCQlqUXVlcnkuYXR0ckZuWyBuYW1lIF0gPSB0cnVlOwoJfQp9KTsKCgovKiEKICogU2l6emxlIENTUyBTZWxlY3RvciBFbmdpbmUKICogIENvcHlyaWdodCAyMDExLCBUaGUgRG9qbyBGb3VuZGF0aW9uCiAqICBSZWxlYXNlZCB1bmRlciB0aGUgTUlULCBCU0QsIGFuZCBHUEwgTGljZW5zZXMuCiAqICBNb3JlIGluZm9ybWF0aW9uOiBodHRwOi8vc2l6emxlanMuY29tLwogKi8KKGZ1bmN0aW9uKCl7Cgp2YXIgY2h1bmtlciA9IC8oKD86XCgoPzpcKFteKCldK1wpfFteKCldKykrXCl8XFsoPzpcW1teXFtcXV0qXF18WyciXVteJyJdKlsnIl18W15cW1xdJyJdKykrXF18XFwufFteID4rfiwoXFtcXF0rKSt8Wz4rfl0pKFxzKixccyopPygoPzoufFxyfFxuKSopL2csCglkb25lID0gMCwKCXRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZywKCWhhc0R1cGxpY2F0ZSA9IGZhbHNlLAoJYmFzZUhhc0R1cGxpY2F0ZSA9IHRydWUsCglyQmFja3NsYXNoID0gL1xcL2csCglyTm9uV29yZCA9IC9cVy87CgovLyBIZXJlIHdlIGNoZWNrIGlmIHRoZSBKYXZhU2NyaXB0IGVuZ2luZSBpcyB1c2luZyBzb21lIHNvcnQgb2YKLy8gb3B0aW1pemF0aW9uIHdoZXJlIGl0IGRvZXMgbm90IGFsd2F5cyBjYWxsIG91ciBjb21wYXJpc2lvbgovLyBmdW5jdGlvbi4gSWYgdGhhdCBpcyB0aGUgY2FzZSwgZGlzY2FyZCB0aGUgaGFzRHVwbGljYXRlIHZhbHVlLgovLyAgIFRodXMgZmFyIHRoYXQgaW5jbHVkZXMgR29vZ2xlIENocm9tZS4KWzAsIDBdLnNvcnQoZnVuY3Rpb24oKSB7CgliYXNlSGFzRHVwbGljYXRlID0gZmFsc2U7CglyZXR1cm4gMDsKfSk7Cgp2YXIgU2l6emxlID0gZnVuY3Rpb24oIHNlbGVjdG9yLCBjb250ZXh0LCByZXN1bHRzLCBzZWVkICkgewoJcmVzdWx0cyA9IHJlc3VsdHMgfHwgW107Cgljb250ZXh0ID0gY29udGV4dCB8fCBkb2N1bWVudDsKCgl2YXIgb3JpZ0NvbnRleHQgPSBjb250ZXh0OwoKCWlmICggY29udGV4dC5ub2RlVHlwZSAhPT0gMSAmJiBjb250ZXh0Lm5vZGVUeXBlICE9PSA5ICkgewoJCXJldHVybiBbXTsKCX0KCQoJaWYgKCAhc2VsZWN0b3IgfHwgdHlwZW9mIHNlbGVjdG9yICE9PSAic3RyaW5nIiApIHsKCQlyZXR1cm4gcmVzdWx0czsKCX0KCgl2YXIgbSwgc2V0LCBjaGVja1NldCwgZXh0cmEsIHJldCwgY3VyLCBwb3AsIGksCgkJcHJ1bmUgPSB0cnVlLAoJCWNvbnRleHRYTUwgPSBTaXp6bGUuaXNYTUwoIGNvbnRleHQgKSwKCQlwYXJ0cyA9IFtdLAoJCXNvRmFyID0gc2VsZWN0b3I7CgkKCS8vIFJlc2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgY2h1bmtlciByZWdleHAgKHN0YXJ0IGZyb20gaGVhZCkKCWRvIHsKCQljaHVua2VyLmV4ZWMoICIiICk7CgkJbSA9IGNodW5rZXIuZXhlYyggc29GYXIgKTsKCgkJaWYgKCBtICkgewoJCQlzb0ZhciA9IG1bM107CgkJCgkJCXBhcnRzLnB1c2goIG1bMV0gKTsKCQkKCQkJaWYgKCBtWzJdICkgewoJCQkJZXh0cmEgPSBtWzNdOwoJCQkJYnJlYWs7CgkJCX0KCQl9Cgl9IHdoaWxlICggbSApOwoKCWlmICggcGFydHMubGVuZ3RoID4gMSAmJiBvcmlnUE9TLmV4ZWMoIHNlbGVjdG9yICkgKSB7CgoJCWlmICggcGFydHMubGVuZ3RoID09PSAyICYmIEV4cHIucmVsYXRpdmVbIHBhcnRzWzBdIF0gKSB7CgkJCXNldCA9IHBvc1Byb2Nlc3MoIHBhcnRzWzBdICsgcGFydHNbMV0sIGNvbnRleHQgKTsKCgkJfSBlbHNlIHsKCQkJc2V0ID0gRXhwci5yZWxhdGl2ZVsgcGFydHNbMF0gXSA/CgkJCQlbIGNvbnRleHQgXSA6CgkJCQlTaXp6bGUoIHBhcnRzLnNoaWZ0KCksIGNvbnRleHQgKTsKCgkJCXdoaWxlICggcGFydHMubGVuZ3RoICkgewoJCQkJc2VsZWN0b3IgPSBwYXJ0cy5zaGlmdCgpOwoKCQkJCWlmICggRXhwci5yZWxhdGl2ZVsgc2VsZWN0b3IgXSApIHsKCQkJCQlzZWxlY3RvciArPSBwYXJ0cy5zaGlmdCgpOwoJCQkJfQoJCQkJCgkJCQlzZXQgPSBwb3NQcm9jZXNzKCBzZWxlY3Rvciwgc2V0ICk7CgkJCX0KCQl9CgoJfSBlbHNlIHsKCQkvLyBUYWtlIGEgc2hvcnRjdXQgYW5kIHNldCB0aGUgY29udGV4dCBpZiB0aGUgcm9vdCBzZWxlY3RvciBpcyBhbiBJRAoJCS8vIChidXQgbm90IGlmIGl0J2xsIGJlIGZhc3RlciBpZiB0aGUgaW5uZXIgc2VsZWN0b3IgaXMgYW4gSUQpCgkJaWYgKCAhc2VlZCAmJiBwYXJ0cy5sZW5ndGggPiAxICYmIGNvbnRleHQubm9kZVR5cGUgPT09IDkgJiYgIWNvbnRleHRYTUwgJiYKCQkJCUV4cHIubWF0Y2guSUQudGVzdChwYXJ0c1swXSkgJiYgIUV4cHIubWF0Y2guSUQudGVzdChwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXSkgKSB7CgoJCQlyZXQgPSBTaXp6bGUuZmluZCggcGFydHMuc2hpZnQoKSwgY29udGV4dCwgY29udGV4dFhNTCApOwoJCQljb250ZXh0ID0gcmV0LmV4cHIgPwoJCQkJU2l6emxlLmZpbHRlciggcmV0LmV4cHIsIHJldC5zZXQgKVswXSA6CgkJCQlyZXQuc2V0WzBdOwoJCX0KCgkJaWYgKCBjb250ZXh0ICkgewoJCQlyZXQgPSBzZWVkID8KCQkJCXsgZXhwcjogcGFydHMucG9wKCksIHNldDogbWFrZUFycmF5KHNlZWQpIH0gOgoJCQkJU2l6emxlLmZpbmQoIHBhcnRzLnBvcCgpLCBwYXJ0cy5sZW5ndGggPT09IDEgJiYgKHBhcnRzWzBdID09PSAifiIgfHwgcGFydHNbMF0gPT09ICIrIikgJiYgY29udGV4dC5wYXJlbnROb2RlID8gY29udGV4dC5wYXJlbnROb2RlIDogY29udGV4dCwgY29udGV4dFhNTCApOwoKCQkJc2V0ID0gcmV0LmV4cHIgPwoJCQkJU2l6emxlLmZpbHRlciggcmV0LmV4cHIsIHJldC5zZXQgKSA6CgkJCQlyZXQuc2V0OwoKCQkJaWYgKCBwYXJ0cy5sZW5ndGggPiAwICkgewoJCQkJY2hlY2tTZXQgPSBtYWtlQXJyYXkoIHNldCApOwoKCQkJfSBlbHNlIHsKCQkJCXBydW5lID0gZmFsc2U7CgkJCX0KCgkJCXdoaWxlICggcGFydHMubGVuZ3RoICkgewoJCQkJY3VyID0gcGFydHMucG9wKCk7CgkJCQlwb3AgPSBjdXI7CgoJCQkJaWYgKCAhRXhwci5yZWxhdGl2ZVsgY3VyIF0gKSB7CgkJCQkJY3VyID0gIiI7CgkJCQl9IGVsc2UgewoJCQkJCXBvcCA9IHBhcnRzLnBvcCgpOwoJCQkJfQoKCQkJCWlmICggcG9wID09IG51bGwgKSB7CgkJCQkJcG9wID0gY29udGV4dDsKCQkJCX0KCgkJCQlFeHByLnJlbGF0aXZlWyBjdXIgXSggY2hlY2tTZXQsIHBvcCwgY29udGV4dFhNTCApOwoJCQl9CgoJCX0gZWxzZSB7CgkJCWNoZWNrU2V0ID0gcGFydHMgPSBbXTsKCQl9Cgl9CgoJaWYgKCAhY2hlY2tTZXQgKSB7CgkJY2hlY2tTZXQgPSBzZXQ7Cgl9CgoJaWYgKCAhY2hlY2tTZXQgKSB7CgkJU2l6emxlLmVycm9yKCBjdXIgfHwgc2VsZWN0b3IgKTsKCX0KCglpZiAoIHRvU3RyaW5nLmNhbGwoY2hlY2tTZXQpID09PSAiW29iamVjdCBBcnJheV0iICkgewoJCWlmICggIXBydW5lICkgewoJCQlyZXN1bHRzLnB1c2guYXBwbHkoIHJlc3VsdHMsIGNoZWNrU2V0ICk7CgoJCX0gZWxzZSBpZiAoIGNvbnRleHQgJiYgY29udGV4dC5ub2RlVHlwZSA9PT0gMSApIHsKCQkJZm9yICggaSA9IDA7IGNoZWNrU2V0W2ldICE9IG51bGw7IGkrKyApIHsKCQkJCWlmICggY2hlY2tTZXRbaV0gJiYgKGNoZWNrU2V0W2ldID09PSB0cnVlIHx8IGNoZWNrU2V0W2ldLm5vZGVUeXBlID09PSAxICYmIFNpenpsZS5jb250YWlucyhjb250ZXh0LCBjaGVja1NldFtpXSkpICkgewoJCQkJCXJlc3VsdHMucHVzaCggc2V0W2ldICk7CgkJCQl9CgkJCX0KCgkJfSBlbHNlIHsKCQkJZm9yICggaSA9IDA7IGNoZWNrU2V0W2ldICE9IG51bGw7IGkrKyApIHsKCQkJCWlmICggY2hlY2tTZXRbaV0gJiYgY2hlY2tTZXRbaV0ubm9kZVR5cGUgPT09IDEgKSB7CgkJCQkJcmVzdWx0cy5wdXNoKCBzZXRbaV0gKTsKCQkJCX0KCQkJfQoJCX0KCgl9IGVsc2UgewoJCW1ha2VBcnJheSggY2hlY2tTZXQsIHJlc3VsdHMgKTsKCX0KCglpZiAoIGV4dHJhICkgewoJCVNpenpsZSggZXh0cmEsIG9yaWdDb250ZXh0LCByZXN1bHRzLCBzZWVkICk7CgkJU2l6emxlLnVuaXF1ZVNvcnQoIHJlc3VsdHMgKTsKCX0KCglyZXR1cm4gcmVzdWx0czsKfTsKClNpenpsZS51bmlxdWVTb3J0ID0gZnVuY3Rpb24oIHJlc3VsdHMgKSB7CglpZiAoIHNvcnRPcmRlciApIHsKCQloYXNEdXBsaWNhdGUgPSBiYXNlSGFzRHVwbGljYXRlOwoJCXJlc3VsdHMuc29ydCggc29ydE9yZGVyICk7CgoJCWlmICggaGFzRHVwbGljYXRlICkgewoJCQlmb3IgKCB2YXIgaSA9IDE7IGkgPCByZXN1bHRzLmxlbmd0aDsgaSsrICkgewoJCQkJaWYgKCByZXN1bHRzW2ldID09PSByZXN1bHRzWyBpIC0gMSBdICkgewoJCQkJCXJlc3VsdHMuc3BsaWNlKCBpLS0sIDEgKTsKCQkJCX0KCQkJfQoJCX0KCX0KCglyZXR1cm4gcmVzdWx0czsKfTsKClNpenpsZS5tYXRjaGVzID0gZnVuY3Rpb24oIGV4cHIsIHNldCApIHsKCXJldHVybiBTaXp6bGUoIGV4cHIsIG51bGwsIG51bGwsIHNldCApOwp9OwoKU2l6emxlLm1hdGNoZXNTZWxlY3RvciA9IGZ1bmN0aW9uKCBub2RlLCBleHByICkgewoJcmV0dXJuIFNpenpsZSggZXhwciwgbnVsbCwgbnVsbCwgW25vZGVdICkubGVuZ3RoID4gMDsKfTsKClNpenpsZS5maW5kID0gZnVuY3Rpb24oIGV4cHIsIGNvbnRleHQsIGlzWE1MICkgewoJdmFyIHNldDsKCglpZiAoICFleHByICkgewoJCXJldHVybiBbXTsKCX0KCglmb3IgKCB2YXIgaSA9IDAsIGwgPSBFeHByLm9yZGVyLmxlbmd0aDsgaSA8IGw7IGkrKyApIHsKCQl2YXIgbWF0Y2gsCgkJCXR5cGUgPSBFeHByLm9yZGVyW2ldOwoJCQoJCWlmICggKG1hdGNoID0gRXhwci5sZWZ0TWF0Y2hbIHR5cGUgXS5leGVjKCBleHByICkpICkgewoJCQl2YXIgbGVmdCA9IG1hdGNoWzFdOwoJCQltYXRjaC5zcGxpY2UoIDEsIDEgKTsKCgkJCWlmICggbGVmdC5zdWJzdHIoIGxlZnQubGVuZ3RoIC0gMSApICE9PSAiXFwiICkgewoJCQkJbWF0Y2hbMV0gPSAobWF0Y2hbMV0gfHwgIiIpLnJlcGxhY2UoIHJCYWNrc2xhc2gsICIiICk7CgkJCQlzZXQgPSBFeHByLmZpbmRbIHR5cGUgXSggbWF0Y2gsIGNvbnRleHQsIGlzWE1MICk7CgoJCQkJaWYgKCBzZXQgIT0gbnVsbCApIHsKCQkJCQlleHByID0gZXhwci5yZXBsYWNlKCBFeHByLm1hdGNoWyB0eXBlIF0sICIiICk7CgkJCQkJYnJlYWs7CgkJCQl9CgkJCX0KCQl9Cgl9CgoJaWYgKCAhc2V0ICkgewoJCXNldCA9IHR5cGVvZiBjb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lICE9PSAidW5kZWZpbmVkIiA/CgkJCWNvbnRleHQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoICIqIiApIDoKCQkJW107Cgl9CgoJcmV0dXJuIHsgc2V0OiBzZXQsIGV4cHI6IGV4cHIgfTsKfTsKClNpenpsZS5maWx0ZXIgPSBmdW5jdGlvbiggZXhwciwgc2V0LCBpbnBsYWNlLCBub3QgKSB7Cgl2YXIgbWF0Y2gsIGFueUZvdW5kLAoJCW9sZCA9IGV4cHIsCgkJcmVzdWx0ID0gW10sCgkJY3VyTG9vcCA9IHNldCwKCQlpc1hNTEZpbHRlciA9IHNldCAmJiBzZXRbMF0gJiYgU2l6emxlLmlzWE1MKCBzZXRbMF0gKTsKCgl3aGlsZSAoIGV4cHIgJiYgc2V0Lmxlbmd0aCApIHsKCQlmb3IgKCB2YXIgdHlwZSBpbiBFeHByLmZpbHRlciApIHsKCQkJaWYgKCAobWF0Y2ggPSBFeHByLmxlZnRNYXRjaFsgdHlwZSBdLmV4ZWMoIGV4cHIgKSkgIT0gbnVsbCAmJiBtYXRjaFsyXSApIHsKCQkJCXZhciBmb3VuZCwgaXRlbSwKCQkJCQlmaWx0ZXIgPSBFeHByLmZpbHRlclsgdHlwZSBdLAoJCQkJCWxlZnQgPSBtYXRjaFsxXTsKCgkJCQlhbnlGb3VuZCA9IGZhbHNlOwoKCQkJCW1hdGNoLnNwbGljZSgxLDEpOwoKCQkJCWlmICggbGVmdC5zdWJzdHIoIGxlZnQubGVuZ3RoIC0gMSApID09PSAiXFwiICkgewoJCQkJCWNvbnRpbnVlOwoJCQkJfQoKCQkJCWlmICggY3VyTG9vcCA9PT0gcmVzdWx0ICkgewoJCQkJCXJlc3VsdCA9IFtdOwoJCQkJfQoKCQkJCWlmICggRXhwci5wcmVGaWx0ZXJbIHR5cGUgXSApIHsKCQkJCQltYXRjaCA9IEV4cHIucHJlRmlsdGVyWyB0eXBlIF0oIG1hdGNoLCBjdXJMb29wLCBpbnBsYWNlLCByZXN1bHQsIG5vdCwgaXNYTUxGaWx0ZXIgKTsKCgkJCQkJaWYgKCAhbWF0Y2ggKSB7CgkJCQkJCWFueUZvdW5kID0gZm91bmQgPSB0cnVlOwoKCQkJCQl9IGVsc2UgaWYgKCBtYXRjaCA9PT0gdHJ1ZSApIHsKCQkJCQkJY29udGludWU7CgkJCQkJfQoJCQkJfQoKCQkJCWlmICggbWF0Y2ggKSB7CgkJCQkJZm9yICggdmFyIGkgPSAwOyAoaXRlbSA9IGN1ckxvb3BbaV0pICE9IG51bGw7IGkrKyApIHsKCQkJCQkJaWYgKCBpdGVtICkgewoJCQkJCQkJZm91bmQgPSBmaWx0ZXIoIGl0ZW0sIG1hdGNoLCBpLCBjdXJMb29wICk7CgkJCQkJCQl2YXIgcGFzcyA9IG5vdCBeICEhZm91bmQ7CgoJCQkJCQkJaWYgKCBpbnBsYWNlICYmIGZvdW5kICE9IG51bGwgKSB7CgkJCQkJCQkJaWYgKCBwYXNzICkgewoJCQkJCQkJCQlhbnlGb3VuZCA9IHRydWU7CgoJCQkJCQkJCX0gZWxzZSB7CgkJCQkJCQkJCWN1ckxvb3BbaV0gPSBmYWxzZTsKCQkJCQkJCQl9CgoJCQkJCQkJfSBlbHNlIGlmICggcGFzcyApIHsKCQkJCQkJCQlyZXN1bHQucHVzaCggaXRlbSApOwoJCQkJCQkJCWFueUZvdW5kID0gdHJ1ZTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCX0KCQkJCX0KCgkJCQlpZiAoIGZvdW5kICE9PSB1bmRlZmluZWQgKSB7CgkJCQkJaWYgKCAhaW5wbGFjZSApIHsKCQkJCQkJY3VyTG9vcCA9IHJlc3VsdDsKCQkJCQl9CgoJCQkJCWV4cHIgPSBleHByLnJlcGxhY2UoIEV4cHIubWF0Y2hbIHR5cGUgXSwgIiIgKTsKCgkJCQkJaWYgKCAhYW55Rm91bmQgKSB7CgkJCQkJCXJldHVybiBbXTsKCQkJCQl9CgoJCQkJCWJyZWFrOwoJCQkJfQoJCQl9CgkJfQoKCQkvLyBJbXByb3BlciBleHByZXNzaW9uCgkJaWYgKCBleHByID09PSBvbGQgKSB7CgkJCWlmICggYW55Rm91bmQgPT0gbnVsbCApIHsKCQkJCVNpenpsZS5lcnJvciggZXhwciApOwoKCQkJfSBlbHNlIHsKCQkJCWJyZWFrOwoJCQl9CgkJfQoKCQlvbGQgPSBleHByOwoJfQoKCXJldHVybiBjdXJMb29wOwp9OwoKU2l6emxlLmVycm9yID0gZnVuY3Rpb24oIG1zZyApIHsKCXRocm93ICJTeW50YXggZXJyb3IsIHVucmVjb2duaXplZCBleHByZXNzaW9uOiAiICsgbXNnOwp9OwoKdmFyIEV4cHIgPSBTaXp6bGUuc2VsZWN0b3JzID0gewoJb3JkZXI6IFsgIklEIiwgIk5BTUUiLCAiVEFHIiBdLAoKCW1hdGNoOiB7CgkJSUQ6IC8jKCg/Oltcd1x1MDBjMC1cdUZGRkZcLV18XFwuKSspLywKCQlDTEFTUzogL1wuKCg/Oltcd1x1MDBjMC1cdUZGRkZcLV18XFwuKSspLywKCQlOQU1FOiAvXFtuYW1lPVsnIl0qKCg/Oltcd1x1MDBjMC1cdUZGRkZcLV18XFwuKSspWyciXSpcXS8sCgkJQVRUUjogL1xbXHMqKCg/Oltcd1x1MDBjMC1cdUZGRkZcLV18XFwuKSspXHMqKD86KFxTPz0pXHMqKD86KFsnIl0pKC4qPylcM3woIz8oPzpbXHdcdTAwYzAtXHVGRkZGXC1dfFxcLikqKXwpfClccypcXS8sCgkJVEFHOiAvXigoPzpbXHdcdTAwYzAtXHVGRkZGXCpcLV18XFwuKSspLywKCQlDSElMRDogLzoob25seXxudGh8bGFzdHxmaXJzdCktY2hpbGQoPzpcKFxzKihldmVufG9kZHwoPzpbK1wtXT9cZCt8KD86WytcLV0/XGQqKT9uXHMqKD86WytcLV1ccypcZCspPykpXHMqXCkpPy8sCgkJUE9TOiAvOihudGh8ZXF8Z3R8bHR8Zmlyc3R8bGFzdHxldmVufG9kZCkoPzpcKChcZCopXCkpPyg/PVteXC1dfCQpLywKCQlQU0VVRE86IC86KCg/Oltcd1x1MDBjMC1cdUZGRkZcLV18XFwuKSspKD86XCgoWyciXT8pKCg/OlwoW15cKV0rXCl8W15cKFwpXSopKylcMlwpKT8vCgl9LAoKCWxlZnRNYXRjaDoge30sCgoJYXR0ck1hcDogewoJCSJjbGFzcyI6ICJjbGFzc05hbWUiLAoJCSJmb3IiOiAiaHRtbEZvciIKCX0sCgoJYXR0ckhhbmRsZTogewoJCWhyZWY6IGZ1bmN0aW9uKCBlbGVtICkgewoJCQlyZXR1cm4gZWxlbS5nZXRBdHRyaWJ1dGUoICJocmVmIiApOwoJCX0sCgkJdHlwZTogZnVuY3Rpb24oIGVsZW0gKSB7CgkJCXJldHVybiBlbGVtLmdldEF0dHJpYnV0ZSggInR5cGUiICk7CgkJfQoJfSwKCglyZWxhdGl2ZTogewoJCSIrIjogZnVuY3Rpb24oY2hlY2tTZXQsIHBhcnQpewoJCQl2YXIgaXNQYXJ0U3RyID0gdHlwZW9mIHBhcnQgPT09ICJzdHJpbmciLAoJCQkJaXNUYWcgPSBpc1BhcnRTdHIgJiYgIXJOb25Xb3JkLnRlc3QoIHBhcnQgKSwKCQkJCWlzUGFydFN0ck5vdFRhZyA9IGlzUGFydFN0ciAmJiAhaXNUYWc7CgoJCQlpZiAoIGlzVGFnICkgewoJCQkJcGFydCA9IHBhcnQudG9Mb3dlckNhc2UoKTsKCQkJfQoKCQkJZm9yICggdmFyIGkgPSAwLCBsID0gY2hlY2tTZXQubGVuZ3RoLCBlbGVtOyBpIDwgbDsgaSsrICkgewoJCQkJaWYgKCAoZWxlbSA9IGNoZWNrU2V0W2ldKSApIHsKCQkJCQl3aGlsZSAoIChlbGVtID0gZWxlbS5wcmV2aW91c1NpYmxpbmcpICYmIGVsZW0ubm9kZVR5cGUgIT09IDEgKSB7fQoKCQkJCQljaGVja1NldFtpXSA9IGlzUGFydFN0ck5vdFRhZyB8fCBlbGVtICYmIGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gcGFydCA/CgkJCQkJCWVsZW0gfHwgZmFsc2UgOgoJCQkJCQllbGVtID09PSBwYXJ0OwoJCQkJfQoJCQl9CgoJCQlpZiAoIGlzUGFydFN0ck5vdFRhZyApIHsKCQkJCVNpenpsZS5maWx0ZXIoIHBhcnQsIGNoZWNrU2V0LCB0cnVlICk7CgkJCX0KCQl9LAoKCQkiPiI6IGZ1bmN0aW9uKCBjaGVja1NldCwgcGFydCApIHsKCQkJdmFyIGVsZW0sCgkJCQlpc1BhcnRTdHIgPSB0eXBlb2YgcGFydCA9PT0gInN0cmluZyIsCgkJCQlpID0gMCwKCQkJCWwgPSBjaGVja1NldC5sZW5ndGg7CgoJCQlpZiAoIGlzUGFydFN0ciAmJiAhck5vbldvcmQudGVzdCggcGFydCApICkgewoJCQkJcGFydCA9IHBhcnQudG9Mb3dlckNhc2UoKTsKCgkJCQlmb3IgKCA7IGkgPCBsOyBpKysgKSB7CgkJCQkJZWxlbSA9IGNoZWNrU2V0W2ldOwoKCQkJCQlpZiAoIGVsZW0gKSB7CgkJCQkJCXZhciBwYXJlbnQgPSBlbGVtLnBhcmVudE5vZGU7CgkJCQkJCWNoZWNrU2V0W2ldID0gcGFyZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09IHBhcnQgPyBwYXJlbnQgOiBmYWxzZTsKCQkJCQl9CgkJCQl9CgoJCQl9IGVsc2UgewoJCQkJZm9yICggOyBpIDwgbDsgaSsrICkgewoJCQkJCWVsZW0gPSBjaGVja1NldFtpXTsKCgkJCQkJaWYgKCBlbGVtICkgewoJCQkJCQljaGVja1NldFtpXSA9IGlzUGFydFN0ciA/CgkJCQkJCQllbGVtLnBhcmVudE5vZGUgOgoJCQkJCQkJZWxlbS5wYXJlbnROb2RlID09PSBwYXJ0OwoJCQkJCX0KCQkJCX0KCgkJCQlpZiAoIGlzUGFydFN0ciApIHsKCQkJCQlTaXp6bGUuZmlsdGVyKCBwYXJ0LCBjaGVja1NldCwgdHJ1ZSApOwoJCQkJfQoJCQl9CgkJfSwKCgkJIiI6IGZ1bmN0aW9uKGNoZWNrU2V0LCBwYXJ0LCBpc1hNTCl7CgkJCXZhciBub2RlQ2hlY2ssCgkJCQlkb25lTmFtZSA9IGRvbmUrKywKCQkJCWNoZWNrRm4gPSBkaXJDaGVjazsKCgkJCWlmICggdHlwZW9mIHBhcnQgPT09ICJzdHJpbmciICYmICFyTm9uV29yZC50ZXN0KCBwYXJ0ICkgKSB7CgkJCQlwYXJ0ID0gcGFydC50b0xvd2VyQ2FzZSgpOwoJCQkJbm9kZUNoZWNrID0gcGFydDsKCQkJCWNoZWNrRm4gPSBkaXJOb2RlQ2hlY2s7CgkJCX0KCgkJCWNoZWNrRm4oICJwYXJlbnROb2RlIiwgcGFydCwgZG9uZU5hbWUsIGNoZWNrU2V0LCBub2RlQ2hlY2ssIGlzWE1MICk7CgkJfSwKCgkJIn4iOiBmdW5jdGlvbiggY2hlY2tTZXQsIHBhcnQsIGlzWE1MICkgewoJCQl2YXIgbm9kZUNoZWNrLAoJCQkJZG9uZU5hbWUgPSBkb25lKyssCgkJCQljaGVja0ZuID0gZGlyQ2hlY2s7CgoJCQlpZiAoIHR5cGVvZiBwYXJ0ID09PSAic3RyaW5nIiAmJiAhck5vbldvcmQudGVzdCggcGFydCApICkgewoJCQkJcGFydCA9IHBhcnQudG9Mb3dlckNhc2UoKTsKCQkJCW5vZGVDaGVjayA9IHBhcnQ7CgkJCQljaGVja0ZuID0gZGlyTm9kZUNoZWNrOwoJCQl9CgoJCQljaGVja0ZuKCAicHJldmlvdXNTaWJsaW5nIiwgcGFydCwgZG9uZU5hbWUsIGNoZWNrU2V0LCBub2RlQ2hlY2ssIGlzWE1MICk7CgkJfQoJfSwKCglmaW5kOiB7CgkJSUQ6IGZ1bmN0aW9uKCBtYXRjaCwgY29udGV4dCwgaXNYTUwgKSB7CgkJCWlmICggdHlwZW9mIGNvbnRleHQuZ2V0RWxlbWVudEJ5SWQgIT09ICJ1bmRlZmluZWQiICYmICFpc1hNTCApIHsKCQkJCXZhciBtID0gY29udGV4dC5nZXRFbGVtZW50QnlJZChtYXRjaFsxXSk7CgkJCQkvLyBDaGVjayBwYXJlbnROb2RlIHRvIGNhdGNoIHdoZW4gQmxhY2tiZXJyeSA0LjYgcmV0dXJucwoJCQkJLy8gbm9kZXMgdGhhdCBhcmUgbm8gbG9uZ2VyIGluIHRoZSBkb2N1bWVudCAjNjk2MwoJCQkJcmV0dXJuIG0gJiYgbS5wYXJlbnROb2RlID8gW21dIDogW107CgkJCX0KCQl9LAoKCQlOQU1FOiBmdW5jdGlvbiggbWF0Y2gsIGNvbnRleHQgKSB7CgkJCWlmICggdHlwZW9mIGNvbnRleHQuZ2V0RWxlbWVudHNCeU5hbWUgIT09ICJ1bmRlZmluZWQiICkgewoJCQkJdmFyIHJldCA9IFtdLAoJCQkJCXJlc3VsdHMgPSBjb250ZXh0LmdldEVsZW1lbnRzQnlOYW1lKCBtYXRjaFsxXSApOwoKCQkJCWZvciAoIHZhciBpID0gMCwgbCA9IHJlc3VsdHMubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCQkJCWlmICggcmVzdWx0c1tpXS5nZXRBdHRyaWJ1dGUoIm5hbWUiKSA9PT0gbWF0Y2hbMV0gKSB7CgkJCQkJCXJldC5wdXNoKCByZXN1bHRzW2ldICk7CgkJCQkJfQoJCQkJfQoKCQkJCXJldHVybiByZXQubGVuZ3RoID09PSAwID8gbnVsbCA6IHJldDsKCQkJfQoJCX0sCgoJCVRBRzogZnVuY3Rpb24oIG1hdGNoLCBjb250ZXh0ICkgewoJCQlpZiAoIHR5cGVvZiBjb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lICE9PSAidW5kZWZpbmVkIiApIHsKCQkJCXJldHVybiBjb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCBtYXRjaFsxXSApOwoJCQl9CgkJfQoJfSwKCXByZUZpbHRlcjogewoJCUNMQVNTOiBmdW5jdGlvbiggbWF0Y2gsIGN1ckxvb3AsIGlucGxhY2UsIHJlc3VsdCwgbm90LCBpc1hNTCApIHsKCQkJbWF0Y2ggPSAiICIgKyBtYXRjaFsxXS5yZXBsYWNlKCByQmFja3NsYXNoLCAiIiApICsgIiAiOwoKCQkJaWYgKCBpc1hNTCApIHsKCQkJCXJldHVybiBtYXRjaDsKCQkJfQoKCQkJZm9yICggdmFyIGkgPSAwLCBlbGVtOyAoZWxlbSA9IGN1ckxvb3BbaV0pICE9IG51bGw7IGkrKyApIHsKCQkJCWlmICggZWxlbSApIHsKCQkJCQlpZiAoIG5vdCBeIChlbGVtLmNsYXNzTmFtZSAmJiAoIiAiICsgZWxlbS5jbGFzc05hbWUgKyAiICIpLnJlcGxhY2UoL1tcdFxuXHJdL2csICIgIikuaW5kZXhPZihtYXRjaCkgPj0gMCkgKSB7CgkJCQkJCWlmICggIWlucGxhY2UgKSB7CgkJCQkJCQlyZXN1bHQucHVzaCggZWxlbSApOwoJCQkJCQl9CgoJCQkJCX0gZWxzZSBpZiAoIGlucGxhY2UgKSB7CgkJCQkJCWN1ckxvb3BbaV0gPSBmYWxzZTsKCQkJCQl9CgkJCQl9CgkJCX0KCgkJCXJldHVybiBmYWxzZTsKCQl9LAoKCQlJRDogZnVuY3Rpb24oIG1hdGNoICkgewoJCQlyZXR1cm4gbWF0Y2hbMV0ucmVwbGFjZSggckJhY2tzbGFzaCwgIiIgKTsKCQl9LAoKCQlUQUc6IGZ1bmN0aW9uKCBtYXRjaCwgY3VyTG9vcCApIHsKCQkJcmV0dXJuIG1hdGNoWzFdLnJlcGxhY2UoIHJCYWNrc2xhc2gsICIiICkudG9Mb3dlckNhc2UoKTsKCQl9LAoKCQlDSElMRDogZnVuY3Rpb24oIG1hdGNoICkgewoJCQlpZiAoIG1hdGNoWzFdID09PSAibnRoIiApIHsKCQkJCWlmICggIW1hdGNoWzJdICkgewoJCQkJCVNpenpsZS5lcnJvciggbWF0Y2hbMF0gKTsKCQkJCX0KCgkJCQltYXRjaFsyXSA9IG1hdGNoWzJdLnJlcGxhY2UoL15cK3xccyovZywgJycpOwoKCQkJCS8vIHBhcnNlIGVxdWF0aW9ucyBsaWtlICdldmVuJywgJ29kZCcsICc1JywgJzJuJywgJzNuKzInLCAnNG4tMScsICctbis2JwoJCQkJdmFyIHRlc3QgPSAvKC0/KShcZCopKD86bihbK1wtXT9cZCopKT8vLmV4ZWMoCgkJCQkJbWF0Y2hbMl0gPT09ICJldmVuIiAmJiAiMm4iIHx8IG1hdGNoWzJdID09PSAib2RkIiAmJiAiMm4rMSIgfHwKCQkJCQkhL1xELy50ZXN0KCBtYXRjaFsyXSApICYmICIwbisiICsgbWF0Y2hbMl0gfHwgbWF0Y2hbMl0pOwoKCQkJCS8vIGNhbGN1bGF0ZSB0aGUgbnVtYmVycyAoZmlyc3QpbisobGFzdCkgaW5jbHVkaW5nIGlmIHRoZXkgYXJlIG5lZ2F0aXZlCgkJCQltYXRjaFsyXSA9ICh0ZXN0WzFdICsgKHRlc3RbMl0gfHwgMSkpIC0gMDsKCQkJCW1hdGNoWzNdID0gdGVzdFszXSAtIDA7CgkJCX0KCQkJZWxzZSBpZiAoIG1hdGNoWzJdICkgewoJCQkJU2l6emxlLmVycm9yKCBtYXRjaFswXSApOwoJCQl9CgoJCQkvLyBUT0RPOiBNb3ZlIHRvIG5vcm1hbCBjYWNoaW5nIHN5c3RlbQoJCQltYXRjaFswXSA9IGRvbmUrKzsKCgkJCXJldHVybiBtYXRjaDsKCQl9LAoKCQlBVFRSOiBmdW5jdGlvbiggbWF0Y2gsIGN1ckxvb3AsIGlucGxhY2UsIHJlc3VsdCwgbm90LCBpc1hNTCApIHsKCQkJdmFyIG5hbWUgPSBtYXRjaFsxXSA9IG1hdGNoWzFdLnJlcGxhY2UoIHJCYWNrc2xhc2gsICIiICk7CgkJCQoJCQlpZiAoICFpc1hNTCAmJiBFeHByLmF0dHJNYXBbbmFtZV0gKSB7CgkJCQltYXRjaFsxXSA9IEV4cHIuYXR0ck1hcFtuYW1lXTsKCQkJfQoKCQkJLy8gSGFuZGxlIGlmIGFuIHVuLXF1b3RlZCB2YWx1ZSB3YXMgdXNlZAoJCQltYXRjaFs0XSA9ICggbWF0Y2hbNF0gfHwgbWF0Y2hbNV0gfHwgIiIgKS5yZXBsYWNlKCByQmFja3NsYXNoLCAiIiApOwoKCQkJaWYgKCBtYXRjaFsyXSA9PT0gIn49IiApIHsKCQkJCW1hdGNoWzRdID0gIiAiICsgbWF0Y2hbNF0gKyAiICI7CgkJCX0KCgkJCXJldHVybiBtYXRjaDsKCQl9LAoKCQlQU0VVRE86IGZ1bmN0aW9uKCBtYXRjaCwgY3VyTG9vcCwgaW5wbGFjZSwgcmVzdWx0LCBub3QgKSB7CgkJCWlmICggbWF0Y2hbMV0gPT09ICJub3QiICkgewoJCQkJLy8gSWYgd2UncmUgZGVhbGluZyB3aXRoIGEgY29tcGxleCBleHByZXNzaW9uLCBvciBhIHNpbXBsZSBvbmUKCQkJCWlmICggKCBjaHVua2VyLmV4ZWMobWF0Y2hbM10pIHx8ICIiICkubGVuZ3RoID4gMSB8fCAvXlx3Ly50ZXN0KG1hdGNoWzNdKSApIHsKCQkJCQltYXRjaFszXSA9IFNpenpsZShtYXRjaFszXSwgbnVsbCwgbnVsbCwgY3VyTG9vcCk7CgoJCQkJfSBlbHNlIHsKCQkJCQl2YXIgcmV0ID0gU2l6emxlLmZpbHRlcihtYXRjaFszXSwgY3VyTG9vcCwgaW5wbGFjZSwgdHJ1ZSBeIG5vdCk7CgoJCQkJCWlmICggIWlucGxhY2UgKSB7CgkJCQkJCXJlc3VsdC5wdXNoLmFwcGx5KCByZXN1bHQsIHJldCApOwoJCQkJCX0KCgkJCQkJcmV0dXJuIGZhbHNlOwoJCQkJfQoKCQkJfSBlbHNlIGlmICggRXhwci5tYXRjaC5QT1MudGVzdCggbWF0Y2hbMF0gKSB8fCBFeHByLm1hdGNoLkNISUxELnRlc3QoIG1hdGNoWzBdICkgKSB7CgkJCQlyZXR1cm4gdHJ1ZTsKCQkJfQoJCQkKCQkJcmV0dXJuIG1hdGNoOwoJCX0sCgoJCVBPUzogZnVuY3Rpb24oIG1hdGNoICkgewoJCQltYXRjaC51bnNoaWZ0KCB0cnVlICk7CgoJCQlyZXR1cm4gbWF0Y2g7CgkJfQoJfSwKCQoJZmlsdGVyczogewoJCWVuYWJsZWQ6IGZ1bmN0aW9uKCBlbGVtICkgewoJCQlyZXR1cm4gZWxlbS5kaXNhYmxlZCA9PT0gZmFsc2UgJiYgZWxlbS50eXBlICE9PSAiaGlkZGVuIjsKCQl9LAoKCQlkaXNhYmxlZDogZnVuY3Rpb24oIGVsZW0gKSB7CgkJCXJldHVybiBlbGVtLmRpc2FibGVkID09PSB0cnVlOwoJCX0sCgoJCWNoZWNrZWQ6IGZ1bmN0aW9uKCBlbGVtICkgewoJCQlyZXR1cm4gZWxlbS5jaGVja2VkID09PSB0cnVlOwoJCX0sCgkJCgkJc2VsZWN0ZWQ6IGZ1bmN0aW9uKCBlbGVtICkgewoJCQkvLyBBY2Nlc3NpbmcgdGhpcyBwcm9wZXJ0eSBtYWtlcyBzZWxlY3RlZC1ieS1kZWZhdWx0CgkJCS8vIG9wdGlvbnMgaW4gU2FmYXJpIHdvcmsgcHJvcGVybHkKCQkJaWYgKCBlbGVtLnBhcmVudE5vZGUgKSB7CgkJCQllbGVtLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleDsKCQkJfQoJCQkKCQkJcmV0dXJuIGVsZW0uc2VsZWN0ZWQgPT09IHRydWU7CgkJfSwKCgkJcGFyZW50OiBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuICEhZWxlbS5maXJzdENoaWxkOwoJCX0sCgoJCWVtcHR5OiBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuICFlbGVtLmZpcnN0Q2hpbGQ7CgkJfSwKCgkJaGFzOiBmdW5jdGlvbiggZWxlbSwgaSwgbWF0Y2ggKSB7CgkJCXJldHVybiAhIVNpenpsZSggbWF0Y2hbM10sIGVsZW0gKS5sZW5ndGg7CgkJfSwKCgkJaGVhZGVyOiBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuICgvaFxkL2kpLnRlc3QoIGVsZW0ubm9kZU5hbWUgKTsKCQl9LAoKCQl0ZXh0OiBmdW5jdGlvbiggZWxlbSApIHsKCQkJLy8gSUU2IGFuZCA3IHdpbGwgbWFwIGVsZW0udHlwZSB0byAndGV4dCcgZm9yIG5ldyBIVE1MNSB0eXBlcyAoc2VhcmNoLCBldGMpIAoJCQkvLyB1c2UgZ2V0QXR0cmlidXRlIGluc3RlYWQgdG8gdGVzdCB0aGlzIGNhc2UKCQkJcmV0dXJuICJ0ZXh0IiA9PT0gZWxlbS5nZXRBdHRyaWJ1dGUoICd0eXBlJyApOwoJCX0sCgkJcmFkaW86IGZ1bmN0aW9uKCBlbGVtICkgewoJCQlyZXR1cm4gInJhZGlvIiA9PT0gZWxlbS50eXBlOwoJCX0sCgoJCWNoZWNrYm94OiBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuICJjaGVja2JveCIgPT09IGVsZW0udHlwZTsKCQl9LAoKCQlmaWxlOiBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuICJmaWxlIiA9PT0gZWxlbS50eXBlOwoJCX0sCgkJcGFzc3dvcmQ6IGZ1bmN0aW9uKCBlbGVtICkgewoJCQlyZXR1cm4gInBhc3N3b3JkIiA9PT0gZWxlbS50eXBlOwoJCX0sCgoJCXN1Ym1pdDogZnVuY3Rpb24oIGVsZW0gKSB7CgkJCXJldHVybiAic3VibWl0IiA9PT0gZWxlbS50eXBlOwoJCX0sCgoJCWltYWdlOiBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuICJpbWFnZSIgPT09IGVsZW0udHlwZTsKCQl9LAoKCQlyZXNldDogZnVuY3Rpb24oIGVsZW0gKSB7CgkJCXJldHVybiAicmVzZXQiID09PSBlbGVtLnR5cGU7CgkJfSwKCgkJYnV0dG9uOiBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuICJidXR0b24iID09PSBlbGVtLnR5cGUgfHwgZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAiYnV0dG9uIjsKCQl9LAoKCQlpbnB1dDogZnVuY3Rpb24oIGVsZW0gKSB7CgkJCXJldHVybiAoL2lucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24vaSkudGVzdCggZWxlbS5ub2RlTmFtZSApOwoJCX0KCX0sCglzZXRGaWx0ZXJzOiB7CgkJZmlyc3Q6IGZ1bmN0aW9uKCBlbGVtLCBpICkgewoJCQlyZXR1cm4gaSA9PT0gMDsKCQl9LAoKCQlsYXN0OiBmdW5jdGlvbiggZWxlbSwgaSwgbWF0Y2gsIGFycmF5ICkgewoJCQlyZXR1cm4gaSA9PT0gYXJyYXkubGVuZ3RoIC0gMTsKCQl9LAoKCQlldmVuOiBmdW5jdGlvbiggZWxlbSwgaSApIHsKCQkJcmV0dXJuIGkgJSAyID09PSAwOwoJCX0sCgoJCW9kZDogZnVuY3Rpb24oIGVsZW0sIGkgKSB7CgkJCXJldHVybiBpICUgMiA9PT0gMTsKCQl9LAoKCQlsdDogZnVuY3Rpb24oIGVsZW0sIGksIG1hdGNoICkgewoJCQlyZXR1cm4gaSA8IG1hdGNoWzNdIC0gMDsKCQl9LAoKCQlndDogZnVuY3Rpb24oIGVsZW0sIGksIG1hdGNoICkgewoJCQlyZXR1cm4gaSA+IG1hdGNoWzNdIC0gMDsKCQl9LAoKCQludGg6IGZ1bmN0aW9uKCBlbGVtLCBpLCBtYXRjaCApIHsKCQkJcmV0dXJuIG1hdGNoWzNdIC0gMCA9PT0gaTsKCQl9LAoKCQllcTogZnVuY3Rpb24oIGVsZW0sIGksIG1hdGNoICkgewoJCQlyZXR1cm4gbWF0Y2hbM10gLSAwID09PSBpOwoJCX0KCX0sCglmaWx0ZXI6IHsKCQlQU0VVRE86IGZ1bmN0aW9uKCBlbGVtLCBtYXRjaCwgaSwgYXJyYXkgKSB7CgkJCXZhciBuYW1lID0gbWF0Y2hbMV0sCgkJCQlmaWx0ZXIgPSBFeHByLmZpbHRlcnNbIG5hbWUgXTsKCgkJCWlmICggZmlsdGVyICkgewoJCQkJcmV0dXJuIGZpbHRlciggZWxlbSwgaSwgbWF0Y2gsIGFycmF5ICk7CgoJCQl9IGVsc2UgaWYgKCBuYW1lID09PSAiY29udGFpbnMiICkgewoJCQkJcmV0dXJuIChlbGVtLnRleHRDb250ZW50IHx8IGVsZW0uaW5uZXJUZXh0IHx8IFNpenpsZS5nZXRUZXh0KFsgZWxlbSBdKSB8fCAiIikuaW5kZXhPZihtYXRjaFszXSkgPj0gMDsKCgkJCX0gZWxzZSBpZiAoIG5hbWUgPT09ICJub3QiICkgewoJCQkJdmFyIG5vdCA9IG1hdGNoWzNdOwoKCQkJCWZvciAoIHZhciBqID0gMCwgbCA9IG5vdC5sZW5ndGg7IGogPCBsOyBqKysgKSB7CgkJCQkJaWYgKCBub3Rbal0gPT09IGVsZW0gKSB7CgkJCQkJCXJldHVybiBmYWxzZTsKCQkJCQl9CgkJCQl9CgoJCQkJcmV0dXJuIHRydWU7CgoJCQl9IGVsc2UgewoJCQkJU2l6emxlLmVycm9yKCBuYW1lICk7CgkJCX0KCQl9LAoKCQlDSElMRDogZnVuY3Rpb24oIGVsZW0sIG1hdGNoICkgewoJCQl2YXIgdHlwZSA9IG1hdGNoWzFdLAoJCQkJbm9kZSA9IGVsZW07CgoJCQlzd2l0Y2ggKCB0eXBlICkgewoJCQkJY2FzZSAib25seSI6CgkJCQljYXNlICJmaXJzdCI6CgkJCQkJd2hpbGUgKCAobm9kZSA9IG5vZGUucHJldmlvdXNTaWJsaW5nKSApCSB7CgkJCQkJCWlmICggbm9kZS5ub2RlVHlwZSA9PT0gMSApIHsgCgkJCQkJCQlyZXR1cm4gZmFsc2U7IAoJCQkJCQl9CgkJCQkJfQoKCQkJCQlpZiAoIHR5cGUgPT09ICJmaXJzdCIgKSB7IAoJCQkJCQlyZXR1cm4gdHJ1ZTsgCgkJCQkJfQoKCQkJCQlub2RlID0gZWxlbTsKCgkJCQljYXNlICJsYXN0IjoKCQkJCQl3aGlsZSAoIChub2RlID0gbm9kZS5uZXh0U2libGluZykgKQkgewoJCQkJCQlpZiAoIG5vZGUubm9kZVR5cGUgPT09IDEgKSB7IAoJCQkJCQkJcmV0dXJuIGZhbHNlOyAKCQkJCQkJfQoJCQkJCX0KCgkJCQkJcmV0dXJuIHRydWU7CgoJCQkJY2FzZSAibnRoIjoKCQkJCQl2YXIgZmlyc3QgPSBtYXRjaFsyXSwKCQkJCQkJbGFzdCA9IG1hdGNoWzNdOwoKCQkJCQlpZiAoIGZpcnN0ID09PSAxICYmIGxhc3QgPT09IDAgKSB7CgkJCQkJCXJldHVybiB0cnVlOwoJCQkJCX0KCQkJCQkKCQkJCQl2YXIgZG9uZU5hbWUgPSBtYXRjaFswXSwKCQkJCQkJcGFyZW50ID0gZWxlbS5wYXJlbnROb2RlOwoJCgkJCQkJaWYgKCBwYXJlbnQgJiYgKHBhcmVudC5zaXpjYWNoZSAhPT0gZG9uZU5hbWUgfHwgIWVsZW0ubm9kZUluZGV4KSApIHsKCQkJCQkJdmFyIGNvdW50ID0gMDsKCQkJCQkJCgkJCQkJCWZvciAoIG5vZGUgPSBwYXJlbnQuZmlyc3RDaGlsZDsgbm9kZTsgbm9kZSA9IG5vZGUubmV4dFNpYmxpbmcgKSB7CgkJCQkJCQlpZiAoIG5vZGUubm9kZVR5cGUgPT09IDEgKSB7CgkJCQkJCQkJbm9kZS5ub2RlSW5kZXggPSArK2NvdW50OwoJCQkJCQkJfQoJCQkJCQl9IAoKCQkJCQkJcGFyZW50LnNpemNhY2hlID0gZG9uZU5hbWU7CgkJCQkJfQoJCQkJCQoJCQkJCXZhciBkaWZmID0gZWxlbS5ub2RlSW5kZXggLSBsYXN0OwoKCQkJCQlpZiAoIGZpcnN0ID09PSAwICkgewoJCQkJCQlyZXR1cm4gZGlmZiA9PT0gMDsKCgkJCQkJfSBlbHNlIHsKCQkJCQkJcmV0dXJuICggZGlmZiAlIGZpcnN0ID09PSAwICYmIGRpZmYgLyBmaXJzdCA+PSAwICk7CgkJCQkJfQoJCQl9CgkJfSwKCgkJSUQ6IGZ1bmN0aW9uKCBlbGVtLCBtYXRjaCApIHsKCQkJcmV0dXJuIGVsZW0ubm9kZVR5cGUgPT09IDEgJiYgZWxlbS5nZXRBdHRyaWJ1dGUoImlkIikgPT09IG1hdGNoOwoJCX0sCgoJCVRBRzogZnVuY3Rpb24oIGVsZW0sIG1hdGNoICkgewoJCQlyZXR1cm4gKG1hdGNoID09PSAiKiIgJiYgZWxlbS5ub2RlVHlwZSA9PT0gMSkgfHwgZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSBtYXRjaDsKCQl9LAoJCQoJCUNMQVNTOiBmdW5jdGlvbiggZWxlbSwgbWF0Y2ggKSB7CgkJCXJldHVybiAoIiAiICsgKGVsZW0uY2xhc3NOYW1lIHx8IGVsZW0uZ2V0QXR0cmlidXRlKCJjbGFzcyIpKSArICIgIikKCQkJCS5pbmRleE9mKCBtYXRjaCApID4gLTE7CgkJfSwKCgkJQVRUUjogZnVuY3Rpb24oIGVsZW0sIG1hdGNoICkgewoJCQl2YXIgbmFtZSA9IG1hdGNoWzFdLAoJCQkJcmVzdWx0ID0gRXhwci5hdHRySGFuZGxlWyBuYW1lIF0gPwoJCQkJCUV4cHIuYXR0ckhhbmRsZVsgbmFtZSBdKCBlbGVtICkgOgoJCQkJCWVsZW1bIG5hbWUgXSAhPSBudWxsID8KCQkJCQkJZWxlbVsgbmFtZSBdIDoKCQkJCQkJZWxlbS5nZXRBdHRyaWJ1dGUoIG5hbWUgKSwKCQkJCXZhbHVlID0gcmVzdWx0ICsgIiIsCgkJCQl0eXBlID0gbWF0Y2hbMl0sCgkJCQljaGVjayA9IG1hdGNoWzRdOwoKCQkJcmV0dXJuIHJlc3VsdCA9PSBudWxsID8KCQkJCXR5cGUgPT09ICIhPSIgOgoJCQkJdHlwZSA9PT0gIj0iID8KCQkJCXZhbHVlID09PSBjaGVjayA6CgkJCQl0eXBlID09PSAiKj0iID8KCQkJCXZhbHVlLmluZGV4T2YoY2hlY2spID49IDAgOgoJCQkJdHlwZSA9PT0gIn49IiA/CgkJCQkoIiAiICsgdmFsdWUgKyAiICIpLmluZGV4T2YoY2hlY2spID49IDAgOgoJCQkJIWNoZWNrID8KCQkJCXZhbHVlICYmIHJlc3VsdCAhPT0gZmFsc2UgOgoJCQkJdHlwZSA9PT0gIiE9IiA/CgkJCQl2YWx1ZSAhPT0gY2hlY2sgOgoJCQkJdHlwZSA9PT0gIl49IiA/CgkJCQl2YWx1ZS5pbmRleE9mKGNoZWNrKSA9PT0gMCA6CgkJCQl0eXBlID09PSAiJD0iID8KCQkJCXZhbHVlLnN1YnN0cih2YWx1ZS5sZW5ndGggLSBjaGVjay5sZW5ndGgpID09PSBjaGVjayA6CgkJCQl0eXBlID09PSAifD0iID8KCQkJCXZhbHVlID09PSBjaGVjayB8fCB2YWx1ZS5zdWJzdHIoMCwgY2hlY2subGVuZ3RoICsgMSkgPT09IGNoZWNrICsgIi0iIDoKCQkJCWZhbHNlOwoJCX0sCgoJCVBPUzogZnVuY3Rpb24oIGVsZW0sIG1hdGNoLCBpLCBhcnJheSApIHsKCQkJdmFyIG5hbWUgPSBtYXRjaFsyXSwKCQkJCWZpbHRlciA9IEV4cHIuc2V0RmlsdGVyc1sgbmFtZSBdOwoKCQkJaWYgKCBmaWx0ZXIgKSB7CgkJCQlyZXR1cm4gZmlsdGVyKCBlbGVtLCBpLCBtYXRjaCwgYXJyYXkgKTsKCQkJfQoJCX0KCX0KfTsKCnZhciBvcmlnUE9TID0gRXhwci5tYXRjaC5QT1MsCglmZXNjYXBlID0gZnVuY3Rpb24oYWxsLCBudW0pewoJCXJldHVybiAiXFwiICsgKG51bSAtIDAgKyAxKTsKCX07Cgpmb3IgKCB2YXIgdHlwZSBpbiBFeHByLm1hdGNoICkgewoJRXhwci5tYXRjaFsgdHlwZSBdID0gbmV3IFJlZ0V4cCggRXhwci5tYXRjaFsgdHlwZSBdLnNvdXJjZSArICgvKD8hW15cW10qXF0pKD8hW15cKF0qXCkpLy5zb3VyY2UpICk7CglFeHByLmxlZnRNYXRjaFsgdHlwZSBdID0gbmV3IFJlZ0V4cCggLyheKD86LnxccnxcbikqPykvLnNvdXJjZSArIEV4cHIubWF0Y2hbIHR5cGUgXS5zb3VyY2UucmVwbGFjZSgvXFwoXGQrKS9nLCBmZXNjYXBlKSApOwp9Cgp2YXIgbWFrZUFycmF5ID0gZnVuY3Rpb24oIGFycmF5LCByZXN1bHRzICkgewoJYXJyYXkgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCggYXJyYXksIDAgKTsKCglpZiAoIHJlc3VsdHMgKSB7CgkJcmVzdWx0cy5wdXNoLmFwcGx5KCByZXN1bHRzLCBhcnJheSApOwoJCXJldHVybiByZXN1bHRzOwoJfQoJCglyZXR1cm4gYXJyYXk7Cn07CgovLyBQZXJmb3JtIGEgc2ltcGxlIGNoZWNrIHRvIGRldGVybWluZSBpZiB0aGUgYnJvd3NlciBpcyBjYXBhYmxlIG9mCi8vIGNvbnZlcnRpbmcgYSBOb2RlTGlzdCB0byBhbiBhcnJheSB1c2luZyBidWlsdGluIG1ldGhvZHMuCi8vIEFsc28gdmVyaWZpZXMgdGhhdCB0aGUgcmV0dXJuZWQgYXJyYXkgaG9sZHMgRE9NIG5vZGVzCi8vICh3aGljaCBpcyBub3QgdGhlIGNhc2UgaW4gdGhlIEJsYWNrYmVycnkgYnJvd3NlcikKdHJ5IHsKCUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2hpbGROb2RlcywgMCApWzBdLm5vZGVUeXBlOwoKLy8gUHJvdmlkZSBhIGZhbGxiYWNrIG1ldGhvZCBpZiBpdCBkb2VzIG5vdCB3b3JrCn0gY2F0Y2goIGUgKSB7CgltYWtlQXJyYXkgPSBmdW5jdGlvbiggYXJyYXksIHJlc3VsdHMgKSB7CgkJdmFyIGkgPSAwLAoJCQlyZXQgPSByZXN1bHRzIHx8IFtdOwoKCQlpZiAoIHRvU3RyaW5nLmNhbGwoYXJyYXkpID09PSAiW29iamVjdCBBcnJheV0iICkgewoJCQlBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseSggcmV0LCBhcnJheSApOwoKCQl9IGVsc2UgewoJCQlpZiAoIHR5cGVvZiBhcnJheS5sZW5ndGggPT09ICJudW1iZXIiICkgewoJCQkJZm9yICggdmFyIGwgPSBhcnJheS5sZW5ndGg7IGkgPCBsOyBpKysgKSB7CgkJCQkJcmV0LnB1c2goIGFycmF5W2ldICk7CgkJCQl9CgoJCQl9IGVsc2UgewoJCQkJZm9yICggOyBhcnJheVtpXTsgaSsrICkgewoJCQkJCXJldC5wdXNoKCBhcnJheVtpXSApOwoJCQkJfQoJCQl9CgkJfQoKCQlyZXR1cm4gcmV0OwoJfTsKfQoKdmFyIHNvcnRPcmRlciwgc2libGluZ0NoZWNrOwoKaWYgKCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY29tcGFyZURvY3VtZW50UG9zaXRpb24gKSB7Cglzb3J0T3JkZXIgPSBmdW5jdGlvbiggYSwgYiApIHsKCQlpZiAoIGEgPT09IGIgKSB7CgkJCWhhc0R1cGxpY2F0ZSA9IHRydWU7CgkJCXJldHVybiAwOwoJCX0KCgkJaWYgKCAhYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiB8fCAhYi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiApIHsKCQkJcmV0dXJuIGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24gPyAtMSA6IDE7CgkJfQoKCQlyZXR1cm4gYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKSAmIDQgPyAtMSA6IDE7Cgl9OwoKfSBlbHNlIHsKCXNvcnRPcmRlciA9IGZ1bmN0aW9uKCBhLCBiICkgewoJCXZhciBhbCwgYmwsCgkJCWFwID0gW10sCgkJCWJwID0gW10sCgkJCWF1cCA9IGEucGFyZW50Tm9kZSwKCQkJYnVwID0gYi5wYXJlbnROb2RlLAoJCQljdXIgPSBhdXA7CgoJCS8vIFRoZSBub2RlcyBhcmUgaWRlbnRpY2FsLCB3ZSBjYW4gZXhpdCBlYXJseQoJCWlmICggYSA9PT0gYiApIHsKCQkJaGFzRHVwbGljYXRlID0gdHJ1ZTsKCQkJcmV0dXJuIDA7CgoJCS8vIElmIHRoZSBub2RlcyBhcmUgc2libGluZ3MgKG9yIGlkZW50aWNhbCkgd2UgY2FuIGRvIGEgcXVpY2sgY2hlY2sKCQl9IGVsc2UgaWYgKCBhdXAgPT09IGJ1cCApIHsKCQkJcmV0dXJuIHNpYmxpbmdDaGVjayggYSwgYiApOwoKCQkvLyBJZiBubyBwYXJlbnRzIHdlcmUgZm91bmQgdGhlbiB0aGUgbm9kZXMgYXJlIGRpc2Nvbm5lY3RlZAoJCX0gZWxzZSBpZiAoICFhdXAgKSB7CgkJCXJldHVybiAtMTsKCgkJfSBlbHNlIGlmICggIWJ1cCApIHsKCQkJcmV0dXJuIDE7CgkJfQoKCQkvLyBPdGhlcndpc2UgdGhleSdyZSBzb21ld2hlcmUgZWxzZSBpbiB0aGUgdHJlZSBzbyB3ZSBuZWVkCgkJLy8gdG8gYnVpbGQgdXAgYSBmdWxsIGxpc3Qgb2YgdGhlIHBhcmVudE5vZGVzIGZvciBjb21wYXJpc29uCgkJd2hpbGUgKCBjdXIgKSB7CgkJCWFwLnVuc2hpZnQoIGN1ciApOwoJCQljdXIgPSBjdXIucGFyZW50Tm9kZTsKCQl9CgoJCWN1ciA9IGJ1cDsKCgkJd2hpbGUgKCBjdXIgKSB7CgkJCWJwLnVuc2hpZnQoIGN1ciApOwoJCQljdXIgPSBjdXIucGFyZW50Tm9kZTsKCQl9CgoJCWFsID0gYXAubGVuZ3RoOwoJCWJsID0gYnAubGVuZ3RoOwoKCQkvLyBTdGFydCB3YWxraW5nIGRvd24gdGhlIHRyZWUgbG9va2luZyBmb3IgYSBkaXNjcmVwYW5jeQoJCWZvciAoIHZhciBpID0gMDsgaSA8IGFsICYmIGkgPCBibDsgaSsrICkgewoJCQlpZiAoIGFwW2ldICE9PSBicFtpXSApIHsKCQkJCXJldHVybiBzaWJsaW5nQ2hlY2soIGFwW2ldLCBicFtpXSApOwoJCQl9CgkJfQoKCQkvLyBXZSBlbmRlZCBzb21lcGxhY2UgdXAgdGhlIHRyZWUgc28gZG8gYSBzaWJsaW5nIGNoZWNrCgkJcmV0dXJuIGkgPT09IGFsID8KCQkJc2libGluZ0NoZWNrKCBhLCBicFtpXSwgLTEgKSA6CgkJCXNpYmxpbmdDaGVjayggYXBbaV0sIGIsIDEgKTsKCX07CgoJc2libGluZ0NoZWNrID0gZnVuY3Rpb24oIGEsIGIsIHJldCApIHsKCQlpZiAoIGEgPT09IGIgKSB7CgkJCXJldHVybiByZXQ7CgkJfQoKCQl2YXIgY3VyID0gYS5uZXh0U2libGluZzsKCgkJd2hpbGUgKCBjdXIgKSB7CgkJCWlmICggY3VyID09PSBiICkgewoJCQkJcmV0dXJuIC0xOwoJCQl9CgoJCQljdXIgPSBjdXIubmV4dFNpYmxpbmc7CgkJfQoKCQlyZXR1cm4gMTsKCX07Cn0KCi8vIFV0aWxpdHkgZnVuY3Rpb24gZm9yIHJldHJlaXZpbmcgdGhlIHRleHQgdmFsdWUgb2YgYW4gYXJyYXkgb2YgRE9NIG5vZGVzClNpenpsZS5nZXRUZXh0ID0gZnVuY3Rpb24oIGVsZW1zICkgewoJdmFyIHJldCA9ICIiLCBlbGVtOwoKCWZvciAoIHZhciBpID0gMDsgZWxlbXNbaV07IGkrKyApIHsKCQllbGVtID0gZWxlbXNbaV07CgoJCS8vIEdldCB0aGUgdGV4dCBmcm9tIHRleHQgbm9kZXMgYW5kIENEQVRBIG5vZGVzCgkJaWYgKCBlbGVtLm5vZGVUeXBlID09PSAzIHx8IGVsZW0ubm9kZVR5cGUgPT09IDQgKSB7CgkJCXJldCArPSBlbGVtLm5vZGVWYWx1ZTsKCgkJLy8gVHJhdmVyc2UgZXZlcnl0aGluZyBlbHNlLCBleGNlcHQgY29tbWVudCBub2RlcwoJCX0gZWxzZSBpZiAoIGVsZW0ubm9kZVR5cGUgIT09IDggKSB7CgkJCXJldCArPSBTaXp6bGUuZ2V0VGV4dCggZWxlbS5jaGlsZE5vZGVzICk7CgkJfQoJfQoKCXJldHVybiByZXQ7Cn07CgovLyBDaGVjayB0byBzZWUgaWYgdGhlIGJyb3dzZXIgcmV0dXJucyBlbGVtZW50cyBieSBuYW1lIHdoZW4KLy8gcXVlcnlpbmcgYnkgZ2V0RWxlbWVudEJ5SWQgKGFuZCBwcm92aWRlIGEgd29ya2Fyb3VuZCkKKGZ1bmN0aW9uKCl7CgkvLyBXZSdyZSBnb2luZyB0byBpbmplY3QgYSBmYWtlIGlucHV0IGVsZW1lbnQgd2l0aCBhIHNwZWNpZmllZCBuYW1lCgl2YXIgZm9ybSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLAoJCWlkID0gInNjcmlwdCIgKyAobmV3IERhdGUoKSkuZ2V0VGltZSgpLAoJCXJvb3QgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CgoJZm9ybS5pbm5lckhUTUwgPSAiPGEgbmFtZT0nIiArIGlkICsgIicvPiI7CgoJLy8gSW5qZWN0IGl0IGludG8gdGhlIHJvb3QgZWxlbWVudCwgY2hlY2sgaXRzIHN0YXR1cywgYW5kIHJlbW92ZSBpdCBxdWlja2x5Cglyb290Lmluc2VydEJlZm9yZSggZm9ybSwgcm9vdC5maXJzdENoaWxkICk7CgoJLy8gVGhlIHdvcmthcm91bmQgaGFzIHRvIGRvIGFkZGl0aW9uYWwgY2hlY2tzIGFmdGVyIGEgZ2V0RWxlbWVudEJ5SWQKCS8vIFdoaWNoIHNsb3dzIHRoaW5ncyBkb3duIGZvciBvdGhlciBicm93c2VycyAoaGVuY2UgdGhlIGJyYW5jaGluZykKCWlmICggZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIGlkICkgKSB7CgkJRXhwci5maW5kLklEID0gZnVuY3Rpb24oIG1hdGNoLCBjb250ZXh0LCBpc1hNTCApIHsKCQkJaWYgKCB0eXBlb2YgY29udGV4dC5nZXRFbGVtZW50QnlJZCAhPT0gInVuZGVmaW5lZCIgJiYgIWlzWE1MICkgewoJCQkJdmFyIG0gPSBjb250ZXh0LmdldEVsZW1lbnRCeUlkKG1hdGNoWzFdKTsKCgkJCQlyZXR1cm4gbSA/CgkJCQkJbS5pZCA9PT0gbWF0Y2hbMV0gfHwgdHlwZW9mIG0uZ2V0QXR0cmlidXRlTm9kZSAhPT0gInVuZGVmaW5lZCIgJiYgbS5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpLm5vZGVWYWx1ZSA9PT0gbWF0Y2hbMV0gPwoJCQkJCQlbbV0gOgoJCQkJCQl1bmRlZmluZWQgOgoJCQkJCVtdOwoJCQl9CgkJfTsKCgkJRXhwci5maWx0ZXIuSUQgPSBmdW5jdGlvbiggZWxlbSwgbWF0Y2ggKSB7CgkJCXZhciBub2RlID0gdHlwZW9mIGVsZW0uZ2V0QXR0cmlidXRlTm9kZSAhPT0gInVuZGVmaW5lZCIgJiYgZWxlbS5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpOwoKCQkJcmV0dXJuIGVsZW0ubm9kZVR5cGUgPT09IDEgJiYgbm9kZSAmJiBub2RlLm5vZGVWYWx1ZSA9PT0gbWF0Y2g7CgkJfTsKCX0KCglyb290LnJlbW92ZUNoaWxkKCBmb3JtICk7CgoJLy8gcmVsZWFzZSBtZW1vcnkgaW4gSUUKCXJvb3QgPSBmb3JtID0gbnVsbDsKfSkoKTsKCihmdW5jdGlvbigpewoJLy8gQ2hlY2sgdG8gc2VlIGlmIHRoZSBicm93c2VyIHJldHVybnMgb25seSBlbGVtZW50cwoJLy8gd2hlbiBkb2luZyBnZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpCgoJLy8gQ3JlYXRlIGEgZmFrZSBlbGVtZW50Cgl2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CglkaXYuYXBwZW5kQ2hpbGQoIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoIiIpICk7CgoJLy8gTWFrZSBzdXJlIG5vIGNvbW1lbnRzIGFyZSBmb3VuZAoJaWYgKCBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKS5sZW5ndGggPiAwICkgewoJCUV4cHIuZmluZC5UQUcgPSBmdW5jdGlvbiggbWF0Y2gsIGNvbnRleHQgKSB7CgkJCXZhciByZXN1bHRzID0gY29udGV4dC5nZXRFbGVtZW50c0J5VGFnTmFtZSggbWF0Y2hbMV0gKTsKCgkJCS8vIEZpbHRlciBvdXQgcG9zc2libGUgY29tbWVudHMKCQkJaWYgKCBtYXRjaFsxXSA9PT0gIioiICkgewoJCQkJdmFyIHRtcCA9IFtdOwoKCQkJCWZvciAoIHZhciBpID0gMDsgcmVzdWx0c1tpXTsgaSsrICkgewoJCQkJCWlmICggcmVzdWx0c1tpXS5ub2RlVHlwZSA9PT0gMSApIHsKCQkJCQkJdG1wLnB1c2goIHJlc3VsdHNbaV0gKTsKCQkJCQl9CgkJCQl9CgoJCQkJcmVzdWx0cyA9IHRtcDsKCQkJfQoKCQkJcmV0dXJuIHJlc3VsdHM7CgkJfTsKCX0KCgkvLyBDaGVjayB0byBzZWUgaWYgYW4gYXR0cmlidXRlIHJldHVybnMgbm9ybWFsaXplZCBocmVmIGF0dHJpYnV0ZXMKCWRpdi5pbm5lckhUTUwgPSAiPGEgaHJlZj0nIyc+PC9hPiI7CgoJaWYgKCBkaXYuZmlyc3RDaGlsZCAmJiB0eXBlb2YgZGl2LmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlICE9PSAidW5kZWZpbmVkIiAmJgoJCQlkaXYuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoImhyZWYiKSAhPT0gIiMiICkgewoKCQlFeHByLmF0dHJIYW5kbGUuaHJlZiA9IGZ1bmN0aW9uKCBlbGVtICkgewoJCQlyZXR1cm4gZWxlbS5nZXRBdHRyaWJ1dGUoICJocmVmIiwgMiApOwoJCX07Cgl9CgoJLy8gcmVsZWFzZSBtZW1vcnkgaW4gSUUKCWRpdiA9IG51bGw7Cn0pKCk7CgppZiAoIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgKSB7CgkoZnVuY3Rpb24oKXsKCQl2YXIgb2xkU2l6emxlID0gU2l6emxlLAoJCQlkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSwKCQkJaWQgPSAiX19zaXp6bGVfXyI7CgoJCWRpdi5pbm5lckhUTUwgPSAiPHAgY2xhc3M9J1RFU1QnPjwvcD4iOwoKCQkvLyBTYWZhcmkgY2FuJ3QgaGFuZGxlIHVwcGVyY2FzZSBvciB1bmljb2RlIGNoYXJhY3RlcnMgd2hlbgoJCS8vIGluIHF1aXJrcyBtb2RlLgoJCWlmICggZGl2LnF1ZXJ5U2VsZWN0b3JBbGwgJiYgZGl2LnF1ZXJ5U2VsZWN0b3JBbGwoIi5URVNUIikubGVuZ3RoID09PSAwICkgewoJCQlyZXR1cm47CgkJfQoJCgkJU2l6emxlID0gZnVuY3Rpb24oIHF1ZXJ5LCBjb250ZXh0LCBleHRyYSwgc2VlZCApIHsKCQkJY29udGV4dCA9IGNvbnRleHQgfHwgZG9jdW1lbnQ7CgoJCQkvLyBPbmx5IHVzZSBxdWVyeVNlbGVjdG9yQWxsIG9uIG5vbi1YTUwgZG9jdW1lbnRzCgkJCS8vIChJRCBzZWxlY3RvcnMgZG9uJ3Qgd29yayBpbiBub24tSFRNTCBkb2N1bWVudHMpCgkJCWlmICggIXNlZWQgJiYgIVNpenpsZS5pc1hNTChjb250ZXh0KSApIHsKCQkJCS8vIFNlZSBpZiB3ZSBmaW5kIGEgc2VsZWN0b3IgdG8gc3BlZWQgdXAKCQkJCXZhciBtYXRjaCA9IC9eKFx3KyQpfF5cLihbXHdcLV0rJCl8XiMoW1x3XC1dKyQpLy5leGVjKCBxdWVyeSApOwoJCQkJCgkJCQlpZiAoIG1hdGNoICYmIChjb250ZXh0Lm5vZGVUeXBlID09PSAxIHx8IGNvbnRleHQubm9kZVR5cGUgPT09IDkpICkgewoJCQkJCS8vIFNwZWVkLXVwOiBTaXp6bGUoIlRBRyIpCgkJCQkJaWYgKCBtYXRjaFsxXSApIHsKCQkJCQkJcmV0dXJuIG1ha2VBcnJheSggY29udGV4dC5nZXRFbGVtZW50c0J5VGFnTmFtZSggcXVlcnkgKSwgZXh0cmEgKTsKCQkJCQkKCQkJCQkvLyBTcGVlZC11cDogU2l6emxlKCIuQ0xBU1MiKQoJCQkJCX0gZWxzZSBpZiAoIG1hdGNoWzJdICYmIEV4cHIuZmluZC5DTEFTUyAmJiBjb250ZXh0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUgKSB7CgkJCQkJCXJldHVybiBtYWtlQXJyYXkoIGNvbnRleHQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSggbWF0Y2hbMl0gKSwgZXh0cmEgKTsKCQkJCQl9CgkJCQl9CgkJCQkKCQkJCWlmICggY29udGV4dC5ub2RlVHlwZSA9PT0gOSApIHsKCQkJCQkvLyBTcGVlZC11cDogU2l6emxlKCJib2R5IikKCQkJCQkvLyBUaGUgYm9keSBlbGVtZW50IG9ubHkgZXhpc3RzIG9uY2UsIG9wdGltaXplIGZpbmRpbmcgaXQKCQkJCQlpZiAoIHF1ZXJ5ID09PSAiYm9keSIgJiYgY29udGV4dC5ib2R5ICkgewoJCQkJCQlyZXR1cm4gbWFrZUFycmF5KCBbIGNvbnRleHQuYm9keSBdLCBleHRyYSApOwoJCQkJCQkKCQkJCQkvLyBTcGVlZC11cDogU2l6emxlKCIjSUQiKQoJCQkJCX0gZWxzZSBpZiAoIG1hdGNoICYmIG1hdGNoWzNdICkgewoJCQkJCQl2YXIgZWxlbSA9IGNvbnRleHQuZ2V0RWxlbWVudEJ5SWQoIG1hdGNoWzNdICk7CgoJCQkJCQkvLyBDaGVjayBwYXJlbnROb2RlIHRvIGNhdGNoIHdoZW4gQmxhY2tiZXJyeSA0LjYgcmV0dXJucwoJCQkJCQkvLyBub2RlcyB0aGF0IGFyZSBubyBsb25nZXIgaW4gdGhlIGRvY3VtZW50ICM2OTYzCgkJCQkJCWlmICggZWxlbSAmJiBlbGVtLnBhcmVudE5vZGUgKSB7CgkJCQkJCQkvLyBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgSUUgYW5kIE9wZXJhIHJldHVybiBpdGVtcwoJCQkJCQkJLy8gYnkgbmFtZSBpbnN0ZWFkIG9mIElECgkJCQkJCQlpZiAoIGVsZW0uaWQgPT09IG1hdGNoWzNdICkgewoJCQkJCQkJCXJldHVybiBtYWtlQXJyYXkoIFsgZWxlbSBdLCBleHRyYSApOwoJCQkJCQkJfQoJCQkJCQkJCgkJCQkJCX0gZWxzZSB7CgkJCQkJCQlyZXR1cm4gbWFrZUFycmF5KCBbXSwgZXh0cmEgKTsKCQkJCQkJfQoJCQkJCX0KCQkJCQkKCQkJCQl0cnkgewoJCQkJCQlyZXR1cm4gbWFrZUFycmF5KCBjb250ZXh0LnF1ZXJ5U2VsZWN0b3JBbGwocXVlcnkpLCBleHRyYSApOwoJCQkJCX0gY2F0Y2gocXNhRXJyb3IpIHt9CgoJCQkJLy8gcVNBIHdvcmtzIHN0cmFuZ2VseSBvbiBFbGVtZW50LXJvb3RlZCBxdWVyaWVzCgkJCQkvLyBXZSBjYW4gd29yayBhcm91bmQgdGhpcyBieSBzcGVjaWZ5aW5nIGFuIGV4dHJhIElEIG9uIHRoZSByb290CgkJCQkvLyBhbmQgd29ya2luZyB1cCBmcm9tIHRoZXJlIChUaGFua3MgdG8gQW5kcmV3IER1cG9udCBmb3IgdGhlIHRlY2huaXF1ZSkKCQkJCS8vIElFIDggZG9lc24ndCB3b3JrIG9uIG9iamVjdCBlbGVtZW50cwoJCQkJfSBlbHNlIGlmICggY29udGV4dC5ub2RlVHlwZSA9PT0gMSAmJiBjb250ZXh0Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgIT09ICJvYmplY3QiICkgewoJCQkJCXZhciBvbGRDb250ZXh0ID0gY29udGV4dCwKCQkJCQkJb2xkID0gY29udGV4dC5nZXRBdHRyaWJ1dGUoICJpZCIgKSwKCQkJCQkJbmlkID0gb2xkIHx8IGlkLAoJCQkJCQloYXNQYXJlbnQgPSBjb250ZXh0LnBhcmVudE5vZGUsCgkJCQkJCXJlbGF0aXZlSGllcmFyY2h5U2VsZWN0b3IgPSAvXlxzKlsrfl0vLnRlc3QoIHF1ZXJ5ICk7CgoJCQkJCWlmICggIW9sZCApIHsKCQkJCQkJY29udGV4dC5zZXRBdHRyaWJ1dGUoICJpZCIsIG5pZCApOwoJCQkJCX0gZWxzZSB7CgkJCQkJCW5pZCA9IG5pZC5yZXBsYWNlKCAvJy9nLCAiXFwkJiIgKTsKCQkJCQl9CgkJCQkJaWYgKCByZWxhdGl2ZUhpZXJhcmNoeVNlbGVjdG9yICYmIGhhc1BhcmVudCApIHsKCQkJCQkJY29udGV4dCA9IGNvbnRleHQucGFyZW50Tm9kZTsKCQkJCQl9CgoJCQkJCXRyeSB7CgkJCQkJCWlmICggIXJlbGF0aXZlSGllcmFyY2h5U2VsZWN0b3IgfHwgaGFzUGFyZW50ICkgewoJCQkJCQkJcmV0dXJuIG1ha2VBcnJheSggY29udGV4dC5xdWVyeVNlbGVjdG9yQWxsKCAiW2lkPSciICsgbmlkICsgIiddICIgKyBxdWVyeSApLCBleHRyYSApOwoJCQkJCQl9CgoJCQkJCX0gY2F0Y2gocHNldWRvRXJyb3IpIHsKCQkJCQl9IGZpbmFsbHkgewoJCQkJCQlpZiAoICFvbGQgKSB7CgkJCQkJCQlvbGRDb250ZXh0LnJlbW92ZUF0dHJpYnV0ZSggImlkIiApOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9CgkJCgkJCXJldHVybiBvbGRTaXp6bGUocXVlcnksIGNvbnRleHQsIGV4dHJhLCBzZWVkKTsKCQl9OwoKCQlmb3IgKCB2YXIgcHJvcCBpbiBvbGRTaXp6bGUgKSB7CgkJCVNpenpsZVsgcHJvcCBdID0gb2xkU2l6emxlWyBwcm9wIF07CgkJfQoKCQkvLyByZWxlYXNlIG1lbW9yeSBpbiBJRQoJCWRpdiA9IG51bGw7Cgl9KSgpOwp9CgooZnVuY3Rpb24oKXsKCXZhciBodG1sID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LAoJCW1hdGNoZXMgPSBodG1sLm1hdGNoZXNTZWxlY3RvciB8fCBodG1sLm1vek1hdGNoZXNTZWxlY3RvciB8fCBodG1sLndlYmtpdE1hdGNoZXNTZWxlY3RvciB8fCBodG1sLm1zTWF0Y2hlc1NlbGVjdG9yLAoJCXBzZXVkb1dvcmtzID0gZmFsc2U7CgoJdHJ5IHsKCQkvLyBUaGlzIHNob3VsZCBmYWlsIHdpdGggYW4gZXhjZXB0aW9uCgkJLy8gR2Vja28gZG9lcyBub3QgZXJyb3IsIHJldHVybnMgZmFsc2UgaW5zdGVhZAoJCW1hdGNoZXMuY2FsbCggZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCAiW3Rlc3QhPScnXTpzaXp6bGUiICk7CgkKCX0gY2F0Y2goIHBzZXVkb0Vycm9yICkgewoJCXBzZXVkb1dvcmtzID0gdHJ1ZTsKCX0KCglpZiAoIG1hdGNoZXMgKSB7CgkJU2l6emxlLm1hdGNoZXNTZWxlY3RvciA9IGZ1bmN0aW9uKCBub2RlLCBleHByICkgewoJCQkvLyBNYWtlIHN1cmUgdGhhdCBhdHRyaWJ1dGUgc2VsZWN0b3JzIGFyZSBxdW90ZWQKCQkJZXhwciA9IGV4cHIucmVwbGFjZSgvXD1ccyooW14nIlxdXSopXHMqXF0vZywgIj0nJDEnXSIpOwoKCQkJaWYgKCAhU2l6emxlLmlzWE1MKCBub2RlICkgKSB7CgkJCQl0cnkgeyAKCQkJCQlpZiAoIHBzZXVkb1dvcmtzIHx8ICFFeHByLm1hdGNoLlBTRVVETy50ZXN0KCBleHByICkgJiYgIS8hPS8udGVzdCggZXhwciApICkgewoJCQkJCQlyZXR1cm4gbWF0Y2hlcy5jYWxsKCBub2RlLCBleHByICk7CgkJCQkJfQoJCQkJfSBjYXRjaChlKSB7fQoJCQl9CgoJCQlyZXR1cm4gU2l6emxlKGV4cHIsIG51bGwsIG51bGwsIFtub2RlXSkubGVuZ3RoID4gMDsKCQl9OwoJfQp9KSgpOwoKKGZ1bmN0aW9uKCl7Cgl2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CgoJZGl2LmlubmVySFRNTCA9ICI8ZGl2IGNsYXNzPSd0ZXN0IGUnPjwvZGl2PjxkaXYgY2xhc3M9J3Rlc3QnPjwvZGl2PiI7CgoJLy8gT3BlcmEgY2FuJ3QgZmluZCBhIHNlY29uZCBjbGFzc25hbWUgKGluIDkuNikKCS8vIEFsc28sIG1ha2Ugc3VyZSB0aGF0IGdldEVsZW1lbnRzQnlDbGFzc05hbWUgYWN0dWFsbHkgZXhpc3RzCglpZiAoICFkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSB8fCBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiZSIpLmxlbmd0aCA9PT0gMCApIHsKCQlyZXR1cm47Cgl9CgoJLy8gU2FmYXJpIGNhY2hlcyBjbGFzcyBhdHRyaWJ1dGVzLCBkb2Vzbid0IGNhdGNoIGNoYW5nZXMgKGluIDMuMikKCWRpdi5sYXN0Q2hpbGQuY2xhc3NOYW1lID0gImUiOwoKCWlmICggZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImUiKS5sZW5ndGggPT09IDEgKSB7CgkJcmV0dXJuOwoJfQoJCglFeHByLm9yZGVyLnNwbGljZSgxLCAwLCAiQ0xBU1MiKTsKCUV4cHIuZmluZC5DTEFTUyA9IGZ1bmN0aW9uKCBtYXRjaCwgY29udGV4dCwgaXNYTUwgKSB7CgkJaWYgKCB0eXBlb2YgY29udGV4dC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lICE9PSAidW5kZWZpbmVkIiAmJiAhaXNYTUwgKSB7CgkJCXJldHVybiBjb250ZXh0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUobWF0Y2hbMV0pOwoJCX0KCX07CgoJLy8gcmVsZWFzZSBtZW1vcnkgaW4gSUUKCWRpdiA9IG51bGw7Cn0pKCk7CgpmdW5jdGlvbiBkaXJOb2RlQ2hlY2soIGRpciwgY3VyLCBkb25lTmFtZSwgY2hlY2tTZXQsIG5vZGVDaGVjaywgaXNYTUwgKSB7Cglmb3IgKCB2YXIgaSA9IDAsIGwgPSBjaGVja1NldC5sZW5ndGg7IGkgPCBsOyBpKysgKSB7CgkJdmFyIGVsZW0gPSBjaGVja1NldFtpXTsKCgkJaWYgKCBlbGVtICkgewoJCQl2YXIgbWF0Y2ggPSBmYWxzZTsKCgkJCWVsZW0gPSBlbGVtW2Rpcl07CgoJCQl3aGlsZSAoIGVsZW0gKSB7CgkJCQlpZiAoIGVsZW0uc2l6Y2FjaGUgPT09IGRvbmVOYW1lICkgewoJCQkJCW1hdGNoID0gY2hlY2tTZXRbZWxlbS5zaXpzZXRdOwoJCQkJCWJyZWFrOwoJCQkJfQoKCQkJCWlmICggZWxlbS5ub2RlVHlwZSA9PT0gMSAmJiAhaXNYTUwgKXsKCQkJCQllbGVtLnNpemNhY2hlID0gZG9uZU5hbWU7CgkJCQkJZWxlbS5zaXpzZXQgPSBpOwoJCQkJfQoKCQkJCWlmICggZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSBjdXIgKSB7CgkJCQkJbWF0Y2ggPSBlbGVtOwoJCQkJCWJyZWFrOwoJCQkJfQoKCQkJCWVsZW0gPSBlbGVtW2Rpcl07CgkJCX0KCgkJCWNoZWNrU2V0W2ldID0gbWF0Y2g7CgkJfQoJfQp9CgpmdW5jdGlvbiBkaXJDaGVjayggZGlyLCBjdXIsIGRvbmVOYW1lLCBjaGVja1NldCwgbm9kZUNoZWNrLCBpc1hNTCApIHsKCWZvciAoIHZhciBpID0gMCwgbCA9IGNoZWNrU2V0Lmxlbmd0aDsgaSA8IGw7IGkrKyApIHsKCQl2YXIgZWxlbSA9IGNoZWNrU2V0W2ldOwoKCQlpZiAoIGVsZW0gKSB7CgkJCXZhciBtYXRjaCA9IGZhbHNlOwoJCQkKCQkJZWxlbSA9IGVsZW1bZGlyXTsKCgkJCXdoaWxlICggZWxlbSApIHsKCQkJCWlmICggZWxlbS5zaXpjYWNoZSA9PT0gZG9uZU5hbWUgKSB7CgkJCQkJbWF0Y2ggPSBjaGVja1NldFtlbGVtLnNpenNldF07CgkJCQkJYnJlYWs7CgkJCQl9CgoJCQkJaWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICkgewoJCQkJCWlmICggIWlzWE1MICkgewoJCQkJCQllbGVtLnNpemNhY2hlID0gZG9uZU5hbWU7CgkJCQkJCWVsZW0uc2l6c2V0ID0gaTsKCQkJCQl9CgoJCQkJCWlmICggdHlwZW9mIGN1ciAhPT0gInN0cmluZyIgKSB7CgkJCQkJCWlmICggZWxlbSA9PT0gY3VyICkgewoJCQkJCQkJbWF0Y2ggPSB0cnVlOwoJCQkJCQkJYnJlYWs7CgkJCQkJCX0KCgkJCQkJfSBlbHNlIGlmICggU2l6emxlLmZpbHRlciggY3VyLCBbZWxlbV0gKS5sZW5ndGggPiAwICkgewoJCQkJCQltYXRjaCA9IGVsZW07CgkJCQkJCWJyZWFrOwoJCQkJCX0KCQkJCX0KCgkJCQllbGVtID0gZWxlbVtkaXJdOwoJCQl9CgoJCQljaGVja1NldFtpXSA9IG1hdGNoOwoJCX0KCX0KfQoKaWYgKCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY29udGFpbnMgKSB7CglTaXp6bGUuY29udGFpbnMgPSBmdW5jdGlvbiggYSwgYiApIHsKCQlyZXR1cm4gYSAhPT0gYiAmJiAoYS5jb250YWlucyA/IGEuY29udGFpbnMoYikgOiB0cnVlKTsKCX07Cgp9IGVsc2UgaWYgKCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY29tcGFyZURvY3VtZW50UG9zaXRpb24gKSB7CglTaXp6bGUuY29udGFpbnMgPSBmdW5jdGlvbiggYSwgYiApIHsKCQlyZXR1cm4gISEoYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKSAmIDE2KTsKCX07Cgp9IGVsc2UgewoJU2l6emxlLmNvbnRhaW5zID0gZnVuY3Rpb24oKSB7CgkJcmV0dXJuIGZhbHNlOwoJfTsKfQoKU2l6emxlLmlzWE1MID0gZnVuY3Rpb24oIGVsZW0gKSB7CgkvLyBkb2N1bWVudEVsZW1lbnQgaXMgdmVyaWZpZWQgZm9yIGNhc2VzIHdoZXJlIGl0IGRvZXNuJ3QgeWV0IGV4aXN0CgkvLyAoc3VjaCBhcyBsb2FkaW5nIGlmcmFtZXMgaW4gSUUgLSAjNDgzMykgCgl2YXIgZG9jdW1lbnRFbGVtZW50ID0gKGVsZW0gPyBlbGVtLm93bmVyRG9jdW1lbnQgfHwgZWxlbSA6IDApLmRvY3VtZW50RWxlbWVudDsKCglyZXR1cm4gZG9jdW1lbnRFbGVtZW50ID8gZG9jdW1lbnRFbGVtZW50Lm5vZGVOYW1lICE9PSAiSFRNTCIgOiBmYWxzZTsKfTsKCnZhciBwb3NQcm9jZXNzID0gZnVuY3Rpb24oIHNlbGVjdG9yLCBjb250ZXh0ICkgewoJdmFyIG1hdGNoLAoJCXRtcFNldCA9IFtdLAoJCWxhdGVyID0gIiIsCgkJcm9vdCA9IGNvbnRleHQubm9kZVR5cGUgPyBbY29udGV4dF0gOiBjb250ZXh0OwoKCS8vIFBvc2l0aW9uIHNlbGVjdG9ycyBtdXN0IGJlIGRvbmUgYWZ0ZXIgdGhlIGZpbHRlcgoJLy8gQW5kIHNvIG11c3QgOm5vdChwb3NpdGlvbmFsKSBzbyB3ZSBtb3ZlIGFsbCBQU0VVRE9zIHRvIHRoZSBlbmQKCXdoaWxlICggKG1hdGNoID0gRXhwci5tYXRjaC5QU0VVRE8uZXhlYyggc2VsZWN0b3IgKSkgKSB7CgkJbGF0ZXIgKz0gbWF0Y2hbMF07CgkJc2VsZWN0b3IgPSBzZWxlY3Rvci5yZXBsYWNlKCBFeHByLm1hdGNoLlBTRVVETywgIiIgKTsKCX0KCglzZWxlY3RvciA9IEV4cHIucmVsYXRpdmVbc2VsZWN0b3JdID8gc2VsZWN0b3IgKyAiKiIgOiBzZWxlY3RvcjsKCglmb3IgKCB2YXIgaSA9IDAsIGwgPSByb290Lmxlbmd0aDsgaSA8IGw7IGkrKyApIHsKCQlTaXp6bGUoIHNlbGVjdG9yLCByb290W2ldLCB0bXBTZXQgKTsKCX0KCglyZXR1cm4gU2l6emxlLmZpbHRlciggbGF0ZXIsIHRtcFNldCApOwp9OwoKLy8gRVhQT1NFCmpRdWVyeS5maW5kID0gU2l6emxlOwpqUXVlcnkuZXhwciA9IFNpenpsZS5zZWxlY3RvcnM7CmpRdWVyeS5leHByWyI6Il0gPSBqUXVlcnkuZXhwci5maWx0ZXJzOwpqUXVlcnkudW5pcXVlID0gU2l6emxlLnVuaXF1ZVNvcnQ7CmpRdWVyeS50ZXh0ID0gU2l6emxlLmdldFRleHQ7CmpRdWVyeS5pc1hNTERvYyA9IFNpenpsZS5pc1hNTDsKalF1ZXJ5LmNvbnRhaW5zID0gU2l6emxlLmNvbnRhaW5zOwoKCn0pKCk7CgoKdmFyIHJ1bnRpbCA9IC9VbnRpbCQvLAoJcnBhcmVudHNwcmV2ID0gL14oPzpwYXJlbnRzfHByZXZVbnRpbHxwcmV2QWxsKS8sCgkvLyBOb3RlOiBUaGlzIFJlZ0V4cCBzaG91bGQgYmUgaW1wcm92ZWQsIG9yIGxpa2VseSBwdWxsZWQgZnJvbSBTaXp6bGUKCXJtdWx0aXNlbGVjdG9yID0gLywvLAoJaXNTaW1wbGUgPSAvXi5bXjojXFtcLixdKiQvLAoJc2xpY2UgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UsCglQT1MgPSBqUXVlcnkuZXhwci5tYXRjaC5QT1MsCgkvLyBtZXRob2RzIGd1YXJhbnRlZWQgdG8gcHJvZHVjZSBhIHVuaXF1ZSBzZXQgd2hlbiBzdGFydGluZyBmcm9tIGEgdW5pcXVlIHNldAoJZ3VhcmFudGVlZFVuaXF1ZSA9IHsKCQljaGlsZHJlbjogdHJ1ZSwKCQljb250ZW50czogdHJ1ZSwKCQluZXh0OiB0cnVlLAoJCXByZXY6IHRydWUKCX07CgpqUXVlcnkuZm4uZXh0ZW5kKHsKCWZpbmQ6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHsKCQl2YXIgcmV0ID0gdGhpcy5wdXNoU3RhY2soICIiLCAiZmluZCIsIHNlbGVjdG9yICksCgkJCWxlbmd0aCA9IDA7CgoJCWZvciAoIHZhciBpID0gMCwgbCA9IHRoaXMubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCQlsZW5ndGggPSByZXQubGVuZ3RoOwoJCQlqUXVlcnkuZmluZCggc2VsZWN0b3IsIHRoaXNbaV0sIHJldCApOwoKCQkJaWYgKCBpID4gMCApIHsKCQkJCS8vIE1ha2Ugc3VyZSB0aGF0IHRoZSByZXN1bHRzIGFyZSB1bmlxdWUKCQkJCWZvciAoIHZhciBuID0gbGVuZ3RoOyBuIDwgcmV0Lmxlbmd0aDsgbisrICkgewoJCQkJCWZvciAoIHZhciByID0gMDsgciA8IGxlbmd0aDsgcisrICkgewoJCQkJCQlpZiAoIHJldFtyXSA9PT0gcmV0W25dICkgewoJCQkJCQkJcmV0LnNwbGljZShuLS0sIDEpOwoJCQkJCQkJYnJlYWs7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgoJCXJldHVybiByZXQ7Cgl9LAoKCWhhczogZnVuY3Rpb24oIHRhcmdldCApIHsKCQl2YXIgdGFyZ2V0cyA9IGpRdWVyeSggdGFyZ2V0ICk7CgkJcmV0dXJuIHRoaXMuZmlsdGVyKGZ1bmN0aW9uKCkgewoJCQlmb3IgKCB2YXIgaSA9IDAsIGwgPSB0YXJnZXRzLmxlbmd0aDsgaSA8IGw7IGkrKyApIHsKCQkJCWlmICggalF1ZXJ5LmNvbnRhaW5zKCB0aGlzLCB0YXJnZXRzW2ldICkgKSB7CgkJCQkJcmV0dXJuIHRydWU7CgkJCQl9CgkJCX0KCQl9KTsKCX0sCgoJbm90OiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7CgkJcmV0dXJuIHRoaXMucHVzaFN0YWNrKCB3aW5ub3codGhpcywgc2VsZWN0b3IsIGZhbHNlKSwgIm5vdCIsIHNlbGVjdG9yKTsKCX0sCgoJZmlsdGVyOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7CgkJcmV0dXJuIHRoaXMucHVzaFN0YWNrKCB3aW5ub3codGhpcywgc2VsZWN0b3IsIHRydWUpLCAiZmlsdGVyIiwgc2VsZWN0b3IgKTsKCX0sCgoJaXM6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHsKCQlyZXR1cm4gISFzZWxlY3RvciAmJiBqUXVlcnkuZmlsdGVyKCBzZWxlY3RvciwgdGhpcyApLmxlbmd0aCA+IDA7Cgl9LAoKCWNsb3Nlc3Q6IGZ1bmN0aW9uKCBzZWxlY3RvcnMsIGNvbnRleHQgKSB7CgkJdmFyIHJldCA9IFtdLCBpLCBsLCBjdXIgPSB0aGlzWzBdOwoKCQlpZiAoIGpRdWVyeS5pc0FycmF5KCBzZWxlY3RvcnMgKSApIHsKCQkJdmFyIG1hdGNoLCBzZWxlY3RvciwKCQkJCW1hdGNoZXMgPSB7fSwKCQkJCWxldmVsID0gMTsKCgkJCWlmICggY3VyICYmIHNlbGVjdG9ycy5sZW5ndGggKSB7CgkJCQlmb3IgKCBpID0gMCwgbCA9IHNlbGVjdG9ycy5sZW5ndGg7IGkgPCBsOyBpKysgKSB7CgkJCQkJc2VsZWN0b3IgPSBzZWxlY3RvcnNbaV07CgoJCQkJCWlmICggIW1hdGNoZXNbc2VsZWN0b3JdICkgewoJCQkJCQltYXRjaGVzW3NlbGVjdG9yXSA9IGpRdWVyeS5leHByLm1hdGNoLlBPUy50ZXN0KCBzZWxlY3RvciApID8KCQkJCQkJCWpRdWVyeSggc2VsZWN0b3IsIGNvbnRleHQgfHwgdGhpcy5jb250ZXh0ICkgOgoJCQkJCQkJc2VsZWN0b3I7CgkJCQkJfQoJCQkJfQoKCQkJCXdoaWxlICggY3VyICYmIGN1ci5vd25lckRvY3VtZW50ICYmIGN1ciAhPT0gY29udGV4dCApIHsKCQkJCQlmb3IgKCBzZWxlY3RvciBpbiBtYXRjaGVzICkgewoJCQkJCQltYXRjaCA9IG1hdGNoZXNbc2VsZWN0b3JdOwoKCQkJCQkJaWYgKCBtYXRjaC5qcXVlcnkgPyBtYXRjaC5pbmRleChjdXIpID4gLTEgOiBqUXVlcnkoY3VyKS5pcyhtYXRjaCkgKSB7CgkJCQkJCQlyZXQucHVzaCh7IHNlbGVjdG9yOiBzZWxlY3RvciwgZWxlbTogY3VyLCBsZXZlbDogbGV2ZWwgfSk7CgkJCQkJCX0KCQkJCQl9CgoJCQkJCWN1ciA9IGN1ci5wYXJlbnROb2RlOwoJCQkJCWxldmVsKys7CgkJCQl9CgkJCX0KCgkJCXJldHVybiByZXQ7CgkJfQoKCQl2YXIgcG9zID0gUE9TLnRlc3QoIHNlbGVjdG9ycyApID8KCQkJalF1ZXJ5KCBzZWxlY3RvcnMsIGNvbnRleHQgfHwgdGhpcy5jb250ZXh0ICkgOiBudWxsOwoKCQlmb3IgKCBpID0gMCwgbCA9IHRoaXMubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCQljdXIgPSB0aGlzW2ldOwoKCQkJd2hpbGUgKCBjdXIgKSB7CgkJCQlpZiAoIHBvcyA/IHBvcy5pbmRleChjdXIpID4gLTEgOiBqUXVlcnkuZmluZC5tYXRjaGVzU2VsZWN0b3IoY3VyLCBzZWxlY3RvcnMpICkgewoJCQkJCXJldC5wdXNoKCBjdXIgKTsKCQkJCQlicmVhazsKCgkJCQl9IGVsc2UgewoJCQkJCWN1ciA9IGN1ci5wYXJlbnROb2RlOwoJCQkJCWlmICggIWN1ciB8fCAhY3VyLm93bmVyRG9jdW1lbnQgfHwgY3VyID09PSBjb250ZXh0ICkgewoJCQkJCQlicmVhazsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgoJCXJldCA9IHJldC5sZW5ndGggPiAxID8galF1ZXJ5LnVuaXF1ZShyZXQpIDogcmV0OwoKCQlyZXR1cm4gdGhpcy5wdXNoU3RhY2soIHJldCwgImNsb3Nlc3QiLCBzZWxlY3RvcnMgKTsKCX0sCgoJLy8gRGV0ZXJtaW5lIHRoZSBwb3NpdGlvbiBvZiBhbiBlbGVtZW50IHdpdGhpbgoJLy8gdGhlIG1hdGNoZWQgc2V0IG9mIGVsZW1lbnRzCglpbmRleDogZnVuY3Rpb24oIGVsZW0gKSB7CgkJaWYgKCAhZWxlbSB8fCB0eXBlb2YgZWxlbSA9PT0gInN0cmluZyIgKSB7CgkJCXJldHVybiBqUXVlcnkuaW5BcnJheSggdGhpc1swXSwKCQkJCS8vIElmIGl0IHJlY2VpdmVzIGEgc3RyaW5nLCB0aGUgc2VsZWN0b3IgaXMgdXNlZAoJCQkJLy8gSWYgaXQgcmVjZWl2ZXMgbm90aGluZywgdGhlIHNpYmxpbmdzIGFyZSB1c2VkCgkJCQllbGVtID8galF1ZXJ5KCBlbGVtICkgOiB0aGlzLnBhcmVudCgpLmNoaWxkcmVuKCkgKTsKCQl9CgkJLy8gTG9jYXRlIHRoZSBwb3NpdGlvbiBvZiB0aGUgZGVzaXJlZCBlbGVtZW50CgkJcmV0dXJuIGpRdWVyeS5pbkFycmF5KAoJCQkvLyBJZiBpdCByZWNlaXZlcyBhIGpRdWVyeSBvYmplY3QsIHRoZSBmaXJzdCBlbGVtZW50IGlzIHVzZWQKCQkJZWxlbS5qcXVlcnkgPyBlbGVtWzBdIDogZWxlbSwgdGhpcyApOwoJfSwKCglhZGQ6IGZ1bmN0aW9uKCBzZWxlY3RvciwgY29udGV4dCApIHsKCQl2YXIgc2V0ID0gdHlwZW9mIHNlbGVjdG9yID09PSAic3RyaW5nIiA/CgkJCQlqUXVlcnkoIHNlbGVjdG9yLCBjb250ZXh0ICkgOgoJCQkJalF1ZXJ5Lm1ha2VBcnJheSggc2VsZWN0b3IgKSwKCQkJYWxsID0galF1ZXJ5Lm1lcmdlKCB0aGlzLmdldCgpLCBzZXQgKTsKCgkJcmV0dXJuIHRoaXMucHVzaFN0YWNrKCBpc0Rpc2Nvbm5lY3RlZCggc2V0WzBdICkgfHwgaXNEaXNjb25uZWN0ZWQoIGFsbFswXSApID8KCQkJYWxsIDoKCQkJalF1ZXJ5LnVuaXF1ZSggYWxsICkgKTsKCX0sCgoJYW5kU2VsZjogZnVuY3Rpb24oKSB7CgkJcmV0dXJuIHRoaXMuYWRkKCB0aGlzLnByZXZPYmplY3QgKTsKCX0KfSk7CgovLyBBIHBhaW5mdWxseSBzaW1wbGUgY2hlY2sgdG8gc2VlIGlmIGFuIGVsZW1lbnQgaXMgZGlzY29ubmVjdGVkCi8vIGZyb20gYSBkb2N1bWVudCAoc2hvdWxkIGJlIGltcHJvdmVkLCB3aGVyZSBmZWFzaWJsZSkuCmZ1bmN0aW9uIGlzRGlzY29ubmVjdGVkKCBub2RlICkgewoJcmV0dXJuICFub2RlIHx8ICFub2RlLnBhcmVudE5vZGUgfHwgbm9kZS5wYXJlbnROb2RlLm5vZGVUeXBlID09PSAxMTsKfQoKalF1ZXJ5LmVhY2goewoJcGFyZW50OiBmdW5jdGlvbiggZWxlbSApIHsKCQl2YXIgcGFyZW50ID0gZWxlbS5wYXJlbnROb2RlOwoJCXJldHVybiBwYXJlbnQgJiYgcGFyZW50Lm5vZGVUeXBlICE9PSAxMSA/IHBhcmVudCA6IG51bGw7Cgl9LAoJcGFyZW50czogZnVuY3Rpb24oIGVsZW0gKSB7CgkJcmV0dXJuIGpRdWVyeS5kaXIoIGVsZW0sICJwYXJlbnROb2RlIiApOwoJfSwKCXBhcmVudHNVbnRpbDogZnVuY3Rpb24oIGVsZW0sIGksIHVudGlsICkgewoJCXJldHVybiBqUXVlcnkuZGlyKCBlbGVtLCAicGFyZW50Tm9kZSIsIHVudGlsICk7Cgl9LAoJbmV4dDogZnVuY3Rpb24oIGVsZW0gKSB7CgkJcmV0dXJuIGpRdWVyeS5udGgoIGVsZW0sIDIsICJuZXh0U2libGluZyIgKTsKCX0sCglwcmV2OiBmdW5jdGlvbiggZWxlbSApIHsKCQlyZXR1cm4galF1ZXJ5Lm50aCggZWxlbSwgMiwgInByZXZpb3VzU2libGluZyIgKTsKCX0sCgluZXh0QWxsOiBmdW5jdGlvbiggZWxlbSApIHsKCQlyZXR1cm4galF1ZXJ5LmRpciggZWxlbSwgIm5leHRTaWJsaW5nIiApOwoJfSwKCXByZXZBbGw6IGZ1bmN0aW9uKCBlbGVtICkgewoJCXJldHVybiBqUXVlcnkuZGlyKCBlbGVtLCAicHJldmlvdXNTaWJsaW5nIiApOwoJfSwKCW5leHRVbnRpbDogZnVuY3Rpb24oIGVsZW0sIGksIHVudGlsICkgewoJCXJldHVybiBqUXVlcnkuZGlyKCBlbGVtLCAibmV4dFNpYmxpbmciLCB1bnRpbCApOwoJfSwKCXByZXZVbnRpbDogZnVuY3Rpb24oIGVsZW0sIGksIHVudGlsICkgewoJCXJldHVybiBqUXVlcnkuZGlyKCBlbGVtLCAicHJldmlvdXNTaWJsaW5nIiwgdW50aWwgKTsKCX0sCglzaWJsaW5nczogZnVuY3Rpb24oIGVsZW0gKSB7CgkJcmV0dXJuIGpRdWVyeS5zaWJsaW5nKCBlbGVtLnBhcmVudE5vZGUuZmlyc3RDaGlsZCwgZWxlbSApOwoJfSwKCWNoaWxkcmVuOiBmdW5jdGlvbiggZWxlbSApIHsKCQlyZXR1cm4galF1ZXJ5LnNpYmxpbmcoIGVsZW0uZmlyc3RDaGlsZCApOwoJfSwKCWNvbnRlbnRzOiBmdW5jdGlvbiggZWxlbSApIHsKCQlyZXR1cm4galF1ZXJ5Lm5vZGVOYW1lKCBlbGVtLCAiaWZyYW1lIiApID8KCQkJZWxlbS5jb250ZW50RG9jdW1lbnQgfHwgZWxlbS5jb250ZW50V2luZG93LmRvY3VtZW50IDoKCQkJalF1ZXJ5Lm1ha2VBcnJheSggZWxlbS5jaGlsZE5vZGVzICk7Cgl9Cn0sIGZ1bmN0aW9uKCBuYW1lLCBmbiApIHsKCWpRdWVyeS5mblsgbmFtZSBdID0gZnVuY3Rpb24oIHVudGlsLCBzZWxlY3RvciApIHsKCQl2YXIgcmV0ID0galF1ZXJ5Lm1hcCggdGhpcywgZm4sIHVudGlsICksCgkJCS8vIFRoZSB2YXJpYWJsZSAnYXJncycgd2FzIGludHJvZHVjZWQgaW4KCQkJLy8gaHR0cHM6Ly9naXRodWIuY29tL2pxdWVyeS9qcXVlcnkvY29tbWl0LzUyYTAyMzgKCQkJLy8gdG8gd29yayBhcm91bmQgYSBidWcgaW4gQ2hyb21lIDEwIChEZXYpIGFuZCBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIHRoZSBidWcgaXMgZml4ZWQuCgkJCS8vIGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTEwNTAKCQkJYXJncyA9IHNsaWNlLmNhbGwoYXJndW1lbnRzKTsKCgkJaWYgKCAhcnVudGlsLnRlc3QoIG5hbWUgKSApIHsKCQkJc2VsZWN0b3IgPSB1bnRpbDsKCQl9CgoJCWlmICggc2VsZWN0b3IgJiYgdHlwZW9mIHNlbGVjdG9yID09PSAic3RyaW5nIiApIHsKCQkJcmV0ID0galF1ZXJ5LmZpbHRlciggc2VsZWN0b3IsIHJldCApOwoJCX0KCgkJcmV0ID0gdGhpcy5sZW5ndGggPiAxICYmICFndWFyYW50ZWVkVW5pcXVlWyBuYW1lIF0gPyBqUXVlcnkudW5pcXVlKCByZXQgKSA6IHJldDsKCgkJaWYgKCAodGhpcy5sZW5ndGggPiAxIHx8IHJtdWx0aXNlbGVjdG9yLnRlc3QoIHNlbGVjdG9yICkpICYmIHJwYXJlbnRzcHJldi50ZXN0KCBuYW1lICkgKSB7CgkJCXJldCA9IHJldC5yZXZlcnNlKCk7CgkJfQoKCQlyZXR1cm4gdGhpcy5wdXNoU3RhY2soIHJldCwgbmFtZSwgYXJncy5qb2luKCIsIikgKTsKCX07Cn0pOwoKalF1ZXJ5LmV4dGVuZCh7CglmaWx0ZXI6IGZ1bmN0aW9uKCBleHByLCBlbGVtcywgbm90ICkgewoJCWlmICggbm90ICkgewoJCQlleHByID0gIjpub3QoIiArIGV4cHIgKyAiKSI7CgkJfQoKCQlyZXR1cm4gZWxlbXMubGVuZ3RoID09PSAxID8KCQkJalF1ZXJ5LmZpbmQubWF0Y2hlc1NlbGVjdG9yKGVsZW1zWzBdLCBleHByKSA/IFsgZWxlbXNbMF0gXSA6IFtdIDoKCQkJalF1ZXJ5LmZpbmQubWF0Y2hlcyhleHByLCBlbGVtcyk7Cgl9LAoKCWRpcjogZnVuY3Rpb24oIGVsZW0sIGRpciwgdW50aWwgKSB7CgkJdmFyIG1hdGNoZWQgPSBbXSwKCQkJY3VyID0gZWxlbVsgZGlyIF07CgoJCXdoaWxlICggY3VyICYmIGN1ci5ub2RlVHlwZSAhPT0gOSAmJiAodW50aWwgPT09IHVuZGVmaW5lZCB8fCBjdXIubm9kZVR5cGUgIT09IDEgfHwgIWpRdWVyeSggY3VyICkuaXMoIHVudGlsICkpICkgewoJCQlpZiAoIGN1ci5ub2RlVHlwZSA9PT0gMSApIHsKCQkJCW1hdGNoZWQucHVzaCggY3VyICk7CgkJCX0KCQkJY3VyID0gY3VyW2Rpcl07CgkJfQoJCXJldHVybiBtYXRjaGVkOwoJfSwKCgludGg6IGZ1bmN0aW9uKCBjdXIsIHJlc3VsdCwgZGlyLCBlbGVtICkgewoJCXJlc3VsdCA9IHJlc3VsdCB8fCAxOwoJCXZhciBudW0gPSAwOwoKCQlmb3IgKCA7IGN1cjsgY3VyID0gY3VyW2Rpcl0gKSB7CgkJCWlmICggY3VyLm5vZGVUeXBlID09PSAxICYmICsrbnVtID09PSByZXN1bHQgKSB7CgkJCQlicmVhazsKCQkJfQoJCX0KCgkJcmV0dXJuIGN1cjsKCX0sCgoJc2libGluZzogZnVuY3Rpb24oIG4sIGVsZW0gKSB7CgkJdmFyIHIgPSBbXTsKCgkJZm9yICggOyBuOyBuID0gbi5uZXh0U2libGluZyApIHsKCQkJaWYgKCBuLm5vZGVUeXBlID09PSAxICYmIG4gIT09IGVsZW0gKSB7CgkJCQlyLnB1c2goIG4gKTsKCQkJfQoJCX0KCgkJcmV0dXJuIHI7Cgl9Cn0pOwoKLy8gSW1wbGVtZW50IHRoZSBpZGVudGljYWwgZnVuY3Rpb25hbGl0eSBmb3IgZmlsdGVyIGFuZCBub3QKZnVuY3Rpb24gd2lubm93KCBlbGVtZW50cywgcXVhbGlmaWVyLCBrZWVwICkgewoJaWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggcXVhbGlmaWVyICkgKSB7CgkJcmV0dXJuIGpRdWVyeS5ncmVwKGVsZW1lbnRzLCBmdW5jdGlvbiggZWxlbSwgaSApIHsKCQkJdmFyIHJldFZhbCA9ICEhcXVhbGlmaWVyLmNhbGwoIGVsZW0sIGksIGVsZW0gKTsKCQkJcmV0dXJuIHJldFZhbCA9PT0ga2VlcDsKCQl9KTsKCgl9IGVsc2UgaWYgKCBxdWFsaWZpZXIubm9kZVR5cGUgKSB7CgkJcmV0dXJuIGpRdWVyeS5ncmVwKGVsZW1lbnRzLCBmdW5jdGlvbiggZWxlbSwgaSApIHsKCQkJcmV0dXJuIChlbGVtID09PSBxdWFsaWZpZXIpID09PSBrZWVwOwoJCX0pOwoKCX0gZWxzZSBpZiAoIHR5cGVvZiBxdWFsaWZpZXIgPT09ICJzdHJpbmciICkgewoJCXZhciBmaWx0ZXJlZCA9IGpRdWVyeS5ncmVwKGVsZW1lbnRzLCBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuIGVsZW0ubm9kZVR5cGUgPT09IDE7CgkJfSk7CgoJCWlmICggaXNTaW1wbGUudGVzdCggcXVhbGlmaWVyICkgKSB7CgkJCXJldHVybiBqUXVlcnkuZmlsdGVyKHF1YWxpZmllciwgZmlsdGVyZWQsICFrZWVwKTsKCQl9IGVsc2UgewoJCQlxdWFsaWZpZXIgPSBqUXVlcnkuZmlsdGVyKCBxdWFsaWZpZXIsIGZpbHRlcmVkICk7CgkJfQoJfQoKCXJldHVybiBqUXVlcnkuZ3JlcChlbGVtZW50cywgZnVuY3Rpb24oIGVsZW0sIGkgKSB7CgkJcmV0dXJuIChqUXVlcnkuaW5BcnJheSggZWxlbSwgcXVhbGlmaWVyICkgPj0gMCkgPT09IGtlZXA7Cgl9KTsKfQoKCgoKdmFyIHJpbmxpbmVqUXVlcnkgPSAvIGpRdWVyeVxkKz0iKD86XGQrfG51bGwpIi9nLAoJcmxlYWRpbmdXaGl0ZXNwYWNlID0gL15ccysvLAoJcnhodG1sVGFnID0gLzwoPyFhcmVhfGJyfGNvbHxlbWJlZHxocnxpbWd8aW5wdXR8bGlua3xtZXRhfHBhcmFtKSgoW1x3Ol0rKVtePl0qKVwvPi9pZywKCXJ0YWdOYW1lID0gLzwoW1x3Ol0rKS8sCglydGJvZHkgPSAvPHRib2R5L2ksCglyaHRtbCA9IC88fCYjP1x3KzsvLAoJcm5vY2FjaGUgPSAvPCg/OnNjcmlwdHxvYmplY3R8ZW1iZWR8b3B0aW9ufHN0eWxlKS9pLAoJLy8gY2hlY2tlZD0iY2hlY2tlZCIgb3IgY2hlY2tlZAoJcmNoZWNrZWQgPSAvY2hlY2tlZFxzKig/OltePV18PVxzKi5jaGVja2VkLikvaSwKCXdyYXBNYXAgPSB7CgkJb3B0aW9uOiBbIDEsICI8c2VsZWN0IG11bHRpcGxlPSdtdWx0aXBsZSc+IiwgIjwvc2VsZWN0PiIgXSwKCQlsZWdlbmQ6IFsgMSwgIjxmaWVsZHNldD4iLCAiPC9maWVsZHNldD4iIF0sCgkJdGhlYWQ6IFsgMSwgIjx0YWJsZT4iLCAiPC90YWJsZT4iIF0sCgkJdHI6IFsgMiwgIjx0YWJsZT48dGJvZHk+IiwgIjwvdGJvZHk+PC90YWJsZT4iIF0sCgkJdGQ6IFsgMywgIjx0YWJsZT48dGJvZHk+PHRyPiIsICI8L3RyPjwvdGJvZHk+PC90YWJsZT4iIF0sCgkJY29sOiBbIDIsICI8dGFibGU+PHRib2R5PjwvdGJvZHk+PGNvbGdyb3VwPiIsICI8L2NvbGdyb3VwPjwvdGFibGU+IiBdLAoJCWFyZWE6IFsgMSwgIjxtYXA+IiwgIjwvbWFwPiIgXSwKCQlfZGVmYXVsdDogWyAwLCAiIiwgIiIgXQoJfTsKCndyYXBNYXAub3B0Z3JvdXAgPSB3cmFwTWFwLm9wdGlvbjsKd3JhcE1hcC50Ym9keSA9IHdyYXBNYXAudGZvb3QgPSB3cmFwTWFwLmNvbGdyb3VwID0gd3JhcE1hcC5jYXB0aW9uID0gd3JhcE1hcC50aGVhZDsKd3JhcE1hcC50aCA9IHdyYXBNYXAudGQ7CgovLyBJRSBjYW4ndCBzZXJpYWxpemUgPGxpbms+IGFuZCA8c2NyaXB0PiB0YWdzIG5vcm1hbGx5CmlmICggIWpRdWVyeS5zdXBwb3J0Lmh0bWxTZXJpYWxpemUgKSB7Cgl3cmFwTWFwLl9kZWZhdWx0ID0gWyAxLCAiZGl2PGRpdj4iLCAiPC9kaXY+IiBdOwp9CgpqUXVlcnkuZm4uZXh0ZW5kKHsKCXRleHQ6IGZ1bmN0aW9uKCB0ZXh0ICkgewoJCWlmICggalF1ZXJ5LmlzRnVuY3Rpb24odGV4dCkgKSB7CgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oaSkgewoJCQkJdmFyIHNlbGYgPSBqUXVlcnkoIHRoaXMgKTsKCgkJCQlzZWxmLnRleHQoIHRleHQuY2FsbCh0aGlzLCBpLCBzZWxmLnRleHQoKSkgKTsKCQkJfSk7CgkJfQoKCQlpZiAoIHR5cGVvZiB0ZXh0ICE9PSAib2JqZWN0IiAmJiB0ZXh0ICE9PSB1bmRlZmluZWQgKSB7CgkJCXJldHVybiB0aGlzLmVtcHR5KCkuYXBwZW5kKCAodGhpc1swXSAmJiB0aGlzWzBdLm93bmVyRG9jdW1lbnQgfHwgZG9jdW1lbnQpLmNyZWF0ZVRleHROb2RlKCB0ZXh0ICkgKTsKCQl9CgoJCXJldHVybiBqUXVlcnkudGV4dCggdGhpcyApOwoJfSwKCgl3cmFwQWxsOiBmdW5jdGlvbiggaHRtbCApIHsKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCBodG1sICkgKSB7CgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oaSkgewoJCQkJalF1ZXJ5KHRoaXMpLndyYXBBbGwoIGh0bWwuY2FsbCh0aGlzLCBpKSApOwoJCQl9KTsKCQl9CgoJCWlmICggdGhpc1swXSApIHsKCQkJLy8gVGhlIGVsZW1lbnRzIHRvIHdyYXAgdGhlIHRhcmdldCBhcm91bmQKCQkJdmFyIHdyYXAgPSBqUXVlcnkoIGh0bWwsIHRoaXNbMF0ub3duZXJEb2N1bWVudCApLmVxKDApLmNsb25lKHRydWUpOwoKCQkJaWYgKCB0aGlzWzBdLnBhcmVudE5vZGUgKSB7CgkJCQl3cmFwLmluc2VydEJlZm9yZSggdGhpc1swXSApOwoJCQl9CgoJCQl3cmFwLm1hcChmdW5jdGlvbigpIHsKCQkJCXZhciBlbGVtID0gdGhpczsKCgkJCQl3aGlsZSAoIGVsZW0uZmlyc3RDaGlsZCAmJiBlbGVtLmZpcnN0Q2hpbGQubm9kZVR5cGUgPT09IDEgKSB7CgkJCQkJZWxlbSA9IGVsZW0uZmlyc3RDaGlsZDsKCQkJCX0KCgkJCQlyZXR1cm4gZWxlbTsKCQkJfSkuYXBwZW5kKHRoaXMpOwoJCX0KCgkJcmV0dXJuIHRoaXM7Cgl9LAoKCXdyYXBJbm5lcjogZnVuY3Rpb24oIGh0bWwgKSB7CgkJaWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggaHRtbCApICkgewoJCQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGkpIHsKCQkJCWpRdWVyeSh0aGlzKS53cmFwSW5uZXIoIGh0bWwuY2FsbCh0aGlzLCBpKSApOwoJCQl9KTsKCQl9CgoJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCXZhciBzZWxmID0galF1ZXJ5KCB0aGlzICksCgkJCQljb250ZW50cyA9IHNlbGYuY29udGVudHMoKTsKCgkJCWlmICggY29udGVudHMubGVuZ3RoICkgewoJCQkJY29udGVudHMud3JhcEFsbCggaHRtbCApOwoKCQkJfSBlbHNlIHsKCQkJCXNlbGYuYXBwZW5kKCBodG1sICk7CgkJCX0KCQl9KTsKCX0sCgoJd3JhcDogZnVuY3Rpb24oIGh0bWwgKSB7CgkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJalF1ZXJ5KCB0aGlzICkud3JhcEFsbCggaHRtbCApOwoJCX0pOwoJfSwKCgl1bndyYXA6IGZ1bmN0aW9uKCkgewoJCXJldHVybiB0aGlzLnBhcmVudCgpLmVhY2goZnVuY3Rpb24oKSB7CgkJCWlmICggIWpRdWVyeS5ub2RlTmFtZSggdGhpcywgImJvZHkiICkgKSB7CgkJCQlqUXVlcnkoIHRoaXMgKS5yZXBsYWNlV2l0aCggdGhpcy5jaGlsZE5vZGVzICk7CgkJCX0KCQl9KS5lbmQoKTsKCX0sCgoJYXBwZW5kOiBmdW5jdGlvbigpIHsKCQlyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsIHRydWUsIGZ1bmN0aW9uKCBlbGVtICkgewoJCQlpZiAoIHRoaXMubm9kZVR5cGUgPT09IDEgKSB7CgkJCQl0aGlzLmFwcGVuZENoaWxkKCBlbGVtICk7CgkJCX0KCQl9KTsKCX0sCgoJcHJlcGVuZDogZnVuY3Rpb24oKSB7CgkJcmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLCB0cnVlLCBmdW5jdGlvbiggZWxlbSApIHsKCQkJaWYgKCB0aGlzLm5vZGVUeXBlID09PSAxICkgewoJCQkJdGhpcy5pbnNlcnRCZWZvcmUoIGVsZW0sIHRoaXMuZmlyc3RDaGlsZCApOwoJCQl9CgkJfSk7Cgl9LAoKCWJlZm9yZTogZnVuY3Rpb24oKSB7CgkJaWYgKCB0aGlzWzBdICYmIHRoaXNbMF0ucGFyZW50Tm9kZSApIHsKCQkJcmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLCBmYWxzZSwgZnVuY3Rpb24oIGVsZW0gKSB7CgkJCQl0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKCBlbGVtLCB0aGlzICk7CgkJCX0pOwoJCX0gZWxzZSBpZiAoIGFyZ3VtZW50cy5sZW5ndGggKSB7CgkJCXZhciBzZXQgPSBqUXVlcnkoYXJndW1lbnRzWzBdKTsKCQkJc2V0LnB1c2guYXBwbHkoIHNldCwgdGhpcy50b0FycmF5KCkgKTsKCQkJcmV0dXJuIHRoaXMucHVzaFN0YWNrKCBzZXQsICJiZWZvcmUiLCBhcmd1bWVudHMgKTsKCQl9Cgl9LAoKCWFmdGVyOiBmdW5jdGlvbigpIHsKCQlpZiAoIHRoaXNbMF0gJiYgdGhpc1swXS5wYXJlbnROb2RlICkgewoJCQlyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsIGZhbHNlLCBmdW5jdGlvbiggZWxlbSApIHsKCQkJCXRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoIGVsZW0sIHRoaXMubmV4dFNpYmxpbmcgKTsKCQkJfSk7CgkJfSBlbHNlIGlmICggYXJndW1lbnRzLmxlbmd0aCApIHsKCQkJdmFyIHNldCA9IHRoaXMucHVzaFN0YWNrKCB0aGlzLCAiYWZ0ZXIiLCBhcmd1bWVudHMgKTsKCQkJc2V0LnB1c2guYXBwbHkoIHNldCwgalF1ZXJ5KGFyZ3VtZW50c1swXSkudG9BcnJheSgpICk7CgkJCXJldHVybiBzZXQ7CgkJfQoJfSwKCgkvLyBrZWVwRGF0YSBpcyBmb3IgaW50ZXJuYWwgdXNlIG9ubHktLWRvIG5vdCBkb2N1bWVudAoJcmVtb3ZlOiBmdW5jdGlvbiggc2VsZWN0b3IsIGtlZXBEYXRhICkgewoJCWZvciAoIHZhciBpID0gMCwgZWxlbTsgKGVsZW0gPSB0aGlzW2ldKSAhPSBudWxsOyBpKysgKSB7CgkJCWlmICggIXNlbGVjdG9yIHx8IGpRdWVyeS5maWx0ZXIoIHNlbGVjdG9yLCBbIGVsZW0gXSApLmxlbmd0aCApIHsKCQkJCWlmICggIWtlZXBEYXRhICYmIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7CgkJCQkJalF1ZXJ5LmNsZWFuRGF0YSggZWxlbS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpICk7CgkJCQkJalF1ZXJ5LmNsZWFuRGF0YSggWyBlbGVtIF0gKTsKCQkJCX0KCgkJCQlpZiAoIGVsZW0ucGFyZW50Tm9kZSApIHsKCQkJCQllbGVtLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoIGVsZW0gKTsKCQkJCX0KCQkJfQoJCX0KCgkJcmV0dXJuIHRoaXM7Cgl9LAoKCWVtcHR5OiBmdW5jdGlvbigpIHsKCQlmb3IgKCB2YXIgaSA9IDAsIGVsZW07IChlbGVtID0gdGhpc1tpXSkgIT0gbnVsbDsgaSsrICkgewoJCQkvLyBSZW1vdmUgZWxlbWVudCBub2RlcyBhbmQgcHJldmVudCBtZW1vcnkgbGVha3MKCQkJaWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICkgewoJCQkJalF1ZXJ5LmNsZWFuRGF0YSggZWxlbS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpICk7CgkJCX0KCgkJCS8vIFJlbW92ZSBhbnkgcmVtYWluaW5nIG5vZGVzCgkJCXdoaWxlICggZWxlbS5maXJzdENoaWxkICkgewoJCQkJZWxlbS5yZW1vdmVDaGlsZCggZWxlbS5maXJzdENoaWxkICk7CgkJCX0KCQl9CgoJCXJldHVybiB0aGlzOwoJfSwKCgljbG9uZTogZnVuY3Rpb24oIGRhdGFBbmRFdmVudHMsIGRlZXBEYXRhQW5kRXZlbnRzICkgewoJCWRhdGFBbmRFdmVudHMgPSBkYXRhQW5kRXZlbnRzID09IG51bGwgPyBmYWxzZSA6IGRhdGFBbmRFdmVudHM7CgkJZGVlcERhdGFBbmRFdmVudHMgPSBkZWVwRGF0YUFuZEV2ZW50cyA9PSBudWxsID8gZGF0YUFuZEV2ZW50cyA6IGRlZXBEYXRhQW5kRXZlbnRzOwoKCQlyZXR1cm4gdGhpcy5tYXAoIGZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuIGpRdWVyeS5jbG9uZSggdGhpcywgZGF0YUFuZEV2ZW50cywgZGVlcERhdGFBbmRFdmVudHMgKTsKCQl9KTsKCX0sCgoJaHRtbDogZnVuY3Rpb24oIHZhbHVlICkgewoJCWlmICggdmFsdWUgPT09IHVuZGVmaW5lZCApIHsKCQkJcmV0dXJuIHRoaXNbMF0gJiYgdGhpc1swXS5ub2RlVHlwZSA9PT0gMSA/CgkJCQl0aGlzWzBdLmlubmVySFRNTC5yZXBsYWNlKHJpbmxpbmVqUXVlcnksICIiKSA6CgkJCQludWxsOwoKCQkvLyBTZWUgaWYgd2UgY2FuIHRha2UgYSBzaG9ydGN1dCBhbmQganVzdCB1c2UgaW5uZXJIVE1MCgkJfSBlbHNlIGlmICggdHlwZW9mIHZhbHVlID09PSAic3RyaW5nIiAmJiAhcm5vY2FjaGUudGVzdCggdmFsdWUgKSAmJgoJCQkoalF1ZXJ5LnN1cHBvcnQubGVhZGluZ1doaXRlc3BhY2UgfHwgIXJsZWFkaW5nV2hpdGVzcGFjZS50ZXN0KCB2YWx1ZSApKSAmJgoJCQkhd3JhcE1hcFsgKHJ0YWdOYW1lLmV4ZWMoIHZhbHVlICkgfHwgWyIiLCAiIl0pWzFdLnRvTG93ZXJDYXNlKCkgXSApIHsKCgkJCXZhbHVlID0gdmFsdWUucmVwbGFjZShyeGh0bWxUYWcsICI8JDE+PC8kMj4iKTsKCgkJCXRyeSB7CgkJCQlmb3IgKCB2YXIgaSA9IDAsIGwgPSB0aGlzLmxlbmd0aDsgaSA8IGw7IGkrKyApIHsKCQkJCQkvLyBSZW1vdmUgZWxlbWVudCBub2RlcyBhbmQgcHJldmVudCBtZW1vcnkgbGVha3MKCQkJCQlpZiAoIHRoaXNbaV0ubm9kZVR5cGUgPT09IDEgKSB7CgkJCQkJCWpRdWVyeS5jbGVhbkRhdGEoIHRoaXNbaV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSApOwoJCQkJCQl0aGlzW2ldLmlubmVySFRNTCA9IHZhbHVlOwoJCQkJCX0KCQkJCX0KCgkJCS8vIElmIHVzaW5nIGlubmVySFRNTCB0aHJvd3MgYW4gZXhjZXB0aW9uLCB1c2UgdGhlIGZhbGxiYWNrIG1ldGhvZAoJCQl9IGNhdGNoKGUpIHsKCQkJCXRoaXMuZW1wdHkoKS5hcHBlbmQoIHZhbHVlICk7CgkJCX0KCgkJfSBlbHNlIGlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHZhbHVlICkgKSB7CgkJCXRoaXMuZWFjaChmdW5jdGlvbihpKXsKCQkJCXZhciBzZWxmID0galF1ZXJ5KCB0aGlzICk7CgoJCQkJc2VsZi5odG1sKCB2YWx1ZS5jYWxsKHRoaXMsIGksIHNlbGYuaHRtbCgpKSApOwoJCQl9KTsKCgkJfSBlbHNlIHsKCQkJdGhpcy5lbXB0eSgpLmFwcGVuZCggdmFsdWUgKTsKCQl9CgoJCXJldHVybiB0aGlzOwoJfSwKCglyZXBsYWNlV2l0aDogZnVuY3Rpb24oIHZhbHVlICkgewoJCWlmICggdGhpc1swXSAmJiB0aGlzWzBdLnBhcmVudE5vZGUgKSB7CgkJCS8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBlbGVtZW50cyBhcmUgcmVtb3ZlZCBmcm9tIHRoZSBET00gYmVmb3JlIHRoZXkgYXJlIGluc2VydGVkCgkJCS8vIHRoaXMgY2FuIGhlbHAgZml4IHJlcGxhY2luZyBhIHBhcmVudCB3aXRoIGNoaWxkIGVsZW1lbnRzCgkJCWlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHZhbHVlICkgKSB7CgkJCQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGkpIHsKCQkJCQl2YXIgc2VsZiA9IGpRdWVyeSh0aGlzKSwgb2xkID0gc2VsZi5odG1sKCk7CgkJCQkJc2VsZi5yZXBsYWNlV2l0aCggdmFsdWUuY2FsbCggdGhpcywgaSwgb2xkICkgKTsKCQkJCX0pOwoJCQl9CgoJCQlpZiAoIHR5cGVvZiB2YWx1ZSAhPT0gInN0cmluZyIgKSB7CgkJCQl2YWx1ZSA9IGpRdWVyeSggdmFsdWUgKS5kZXRhY2goKTsKCQkJfQoKCQkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJCXZhciBuZXh0ID0gdGhpcy5uZXh0U2libGluZywKCQkJCQlwYXJlbnQgPSB0aGlzLnBhcmVudE5vZGU7CgoJCQkJalF1ZXJ5KCB0aGlzICkucmVtb3ZlKCk7CgoJCQkJaWYgKCBuZXh0ICkgewoJCQkJCWpRdWVyeShuZXh0KS5iZWZvcmUoIHZhbHVlICk7CgkJCQl9IGVsc2UgewoJCQkJCWpRdWVyeShwYXJlbnQpLmFwcGVuZCggdmFsdWUgKTsKCQkJCX0KCQkJfSk7CgkJfSBlbHNlIHsKCQkJcmV0dXJuIHRoaXMucHVzaFN0YWNrKCBqUXVlcnkoalF1ZXJ5LmlzRnVuY3Rpb24odmFsdWUpID8gdmFsdWUoKSA6IHZhbHVlKSwgInJlcGxhY2VXaXRoIiwgdmFsdWUgKTsKCQl9Cgl9LAoKCWRldGFjaDogZnVuY3Rpb24oIHNlbGVjdG9yICkgewoJCXJldHVybiB0aGlzLnJlbW92ZSggc2VsZWN0b3IsIHRydWUgKTsKCX0sCgoJZG9tTWFuaXA6IGZ1bmN0aW9uKCBhcmdzLCB0YWJsZSwgY2FsbGJhY2sgKSB7CgkJdmFyIHJlc3VsdHMsIGZpcnN0LCBmcmFnbWVudCwgcGFyZW50LAoJCQl2YWx1ZSA9IGFyZ3NbMF0sCgkJCXNjcmlwdHMgPSBbXTsKCgkJLy8gV2UgY2FuJ3QgY2xvbmVOb2RlIGZyYWdtZW50cyB0aGF0IGNvbnRhaW4gY2hlY2tlZCwgaW4gV2ViS2l0CgkJaWYgKCAhalF1ZXJ5LnN1cHBvcnQuY2hlY2tDbG9uZSAmJiBhcmd1bWVudHMubGVuZ3RoID09PSAzICYmIHR5cGVvZiB2YWx1ZSA9PT0gInN0cmluZyIgJiYgcmNoZWNrZWQudGVzdCggdmFsdWUgKSApIHsKCQkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJCWpRdWVyeSh0aGlzKS5kb21NYW5pcCggYXJncywgdGFibGUsIGNhbGxiYWNrLCB0cnVlICk7CgkJCX0pOwoJCX0KCgkJaWYgKCBqUXVlcnkuaXNGdW5jdGlvbih2YWx1ZSkgKSB7CgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oaSkgewoJCQkJdmFyIHNlbGYgPSBqUXVlcnkodGhpcyk7CgkJCQlhcmdzWzBdID0gdmFsdWUuY2FsbCh0aGlzLCBpLCB0YWJsZSA/IHNlbGYuaHRtbCgpIDogdW5kZWZpbmVkKTsKCQkJCXNlbGYuZG9tTWFuaXAoIGFyZ3MsIHRhYmxlLCBjYWxsYmFjayApOwoJCQl9KTsKCQl9CgoJCWlmICggdGhpc1swXSApIHsKCQkJcGFyZW50ID0gdmFsdWUgJiYgdmFsdWUucGFyZW50Tm9kZTsKCgkJCS8vIElmIHdlJ3JlIGluIGEgZnJhZ21lbnQsIGp1c3QgdXNlIHRoYXQgaW5zdGVhZCBvZiBidWlsZGluZyBhIG5ldyBvbmUKCQkJaWYgKCBqUXVlcnkuc3VwcG9ydC5wYXJlbnROb2RlICYmIHBhcmVudCAmJiBwYXJlbnQubm9kZVR5cGUgPT09IDExICYmIHBhcmVudC5jaGlsZE5vZGVzLmxlbmd0aCA9PT0gdGhpcy5sZW5ndGggKSB7CgkJCQlyZXN1bHRzID0geyBmcmFnbWVudDogcGFyZW50IH07CgoJCQl9IGVsc2UgewoJCQkJcmVzdWx0cyA9IGpRdWVyeS5idWlsZEZyYWdtZW50KCBhcmdzLCB0aGlzLCBzY3JpcHRzICk7CgkJCX0KCgkJCWZyYWdtZW50ID0gcmVzdWx0cy5mcmFnbWVudDsKCgkJCWlmICggZnJhZ21lbnQuY2hpbGROb2Rlcy5sZW5ndGggPT09IDEgKSB7CgkJCQlmaXJzdCA9IGZyYWdtZW50ID0gZnJhZ21lbnQuZmlyc3RDaGlsZDsKCQkJfSBlbHNlIHsKCQkJCWZpcnN0ID0gZnJhZ21lbnQuZmlyc3RDaGlsZDsKCQkJfQoKCQkJaWYgKCBmaXJzdCApIHsKCQkJCXRhYmxlID0gdGFibGUgJiYgalF1ZXJ5Lm5vZGVOYW1lKCBmaXJzdCwgInRyIiApOwoKCQkJCWZvciAoIHZhciBpID0gMCwgbCA9IHRoaXMubGVuZ3RoLCBsYXN0SW5kZXggPSBsIC0gMTsgaSA8IGw7IGkrKyApIHsKCQkJCQljYWxsYmFjay5jYWxsKAoJCQkJCQl0YWJsZSA/CgkJCQkJCQlyb290KHRoaXNbaV0sIGZpcnN0KSA6CgkJCQkJCQl0aGlzW2ldLAoJCQkJCQkvLyBNYWtlIHN1cmUgdGhhdCB3ZSBkbyBub3QgbGVhayBtZW1vcnkgYnkgaW5hZHZlcnRlbnRseSBkaXNjYXJkaW5nCgkJCQkJCS8vIHRoZSBvcmlnaW5hbCBmcmFnbWVudCAod2hpY2ggbWlnaHQgaGF2ZSBhdHRhY2hlZCBkYXRhKSBpbnN0ZWFkIG9mCgkJCQkJCS8vIHVzaW5nIGl0OyBpbiBhZGRpdGlvbiwgdXNlIHRoZSBvcmlnaW5hbCBmcmFnbWVudCBvYmplY3QgZm9yIHRoZSBsYXN0CgkJCQkJCS8vIGl0ZW0gaW5zdGVhZCBvZiBmaXJzdCBiZWNhdXNlIGl0IGNhbiBlbmQgdXAgYmVpbmcgZW1wdGllZCBpbmNvcnJlY3RseQoJCQkJCQkvLyBpbiBjZXJ0YWluIHNpdHVhdGlvbnMgKEJ1ZyAjODA3MCkuCgkJCQkJCS8vIEZyYWdtZW50cyBmcm9tIHRoZSBmcmFnbWVudCBjYWNoZSBtdXN0IGFsd2F5cyBiZSBjbG9uZWQgYW5kIG5ldmVyIHVzZWQKCQkJCQkJLy8gaW4gcGxhY2UuCgkJCQkJCXJlc3VsdHMuY2FjaGVhYmxlIHx8IChsID4gMSAmJiBpIDwgbGFzdEluZGV4KSA/CgkJCQkJCQlqUXVlcnkuY2xvbmUoIGZyYWdtZW50LCB0cnVlLCB0cnVlICkgOgoJCQkJCQkJZnJhZ21lbnQKCQkJCQkpOwoJCQkJfQoJCQl9CgoJCQlpZiAoIHNjcmlwdHMubGVuZ3RoICkgewoJCQkJalF1ZXJ5LmVhY2goIHNjcmlwdHMsIGV2YWxTY3JpcHQgKTsKCQkJfQoJCX0KCgkJcmV0dXJuIHRoaXM7Cgl9Cn0pOwoKZnVuY3Rpb24gcm9vdCggZWxlbSwgY3VyICkgewoJcmV0dXJuIGpRdWVyeS5ub2RlTmFtZShlbGVtLCAidGFibGUiKSA/CgkJKGVsZW0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRib2R5IilbMF0gfHwKCQllbGVtLmFwcGVuZENoaWxkKGVsZW0ub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0Ym9keSIpKSkgOgoJCWVsZW07Cn0KCmZ1bmN0aW9uIGNsb25lQ29weUV2ZW50KCBzcmMsIGRlc3QgKSB7CgoJaWYgKCBkZXN0Lm5vZGVUeXBlICE9PSAxIHx8ICFqUXVlcnkuaGFzRGF0YSggc3JjICkgKSB7CgkJcmV0dXJuOwoJfQoKCXZhciBpbnRlcm5hbEtleSA9IGpRdWVyeS5leHBhbmRvLAoJCW9sZERhdGEgPSBqUXVlcnkuZGF0YSggc3JjICksCgkJY3VyRGF0YSA9IGpRdWVyeS5kYXRhKCBkZXN0LCBvbGREYXRhICk7CgoJLy8gU3dpdGNoIHRvIHVzZSB0aGUgaW50ZXJuYWwgZGF0YSBvYmplY3QsIGlmIGl0IGV4aXN0cywgZm9yIHRoZSBuZXh0CgkvLyBzdGFnZSBvZiBkYXRhIGNvcHlpbmcKCWlmICggKG9sZERhdGEgPSBvbGREYXRhWyBpbnRlcm5hbEtleSBdKSApIHsKCQl2YXIgZXZlbnRzID0gb2xkRGF0YS5ldmVudHM7CgkJCQljdXJEYXRhID0gY3VyRGF0YVsgaW50ZXJuYWxLZXkgXSA9IGpRdWVyeS5leHRlbmQoe30sIG9sZERhdGEpOwoKCQlpZiAoIGV2ZW50cyApIHsKCQkJZGVsZXRlIGN1ckRhdGEuaGFuZGxlOwoJCQljdXJEYXRhLmV2ZW50cyA9IHt9OwoKCQkJZm9yICggdmFyIHR5cGUgaW4gZXZlbnRzICkgewoJCQkJZm9yICggdmFyIGkgPSAwLCBsID0gZXZlbnRzWyB0eXBlIF0ubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCQkJCWpRdWVyeS5ldmVudC5hZGQoIGRlc3QsIHR5cGUgKyAoIGV2ZW50c1sgdHlwZSBdWyBpIF0ubmFtZXNwYWNlID8gIi4iIDogIiIgKSArIGV2ZW50c1sgdHlwZSBdWyBpIF0ubmFtZXNwYWNlLCBldmVudHNbIHR5cGUgXVsgaSBdLCBldmVudHNbIHR5cGUgXVsgaSBdLmRhdGEgKTsKCQkJCX0KCQkJfQoJCX0KCX0KfQoKZnVuY3Rpb24gY2xvbmVGaXhBdHRyaWJ1dGVzKHNyYywgZGVzdCkgewoJLy8gV2UgZG8gbm90IG5lZWQgdG8gZG8gYW55dGhpbmcgZm9yIG5vbi1FbGVtZW50cwoJaWYgKCBkZXN0Lm5vZGVUeXBlICE9PSAxICkgewoJCXJldHVybjsKCX0KCgl2YXIgbm9kZU5hbWUgPSBkZXN0Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7CgoJLy8gY2xlYXJBdHRyaWJ1dGVzIHJlbW92ZXMgdGhlIGF0dHJpYnV0ZXMsIHdoaWNoIHdlIGRvbid0IHdhbnQsCgkvLyBidXQgYWxzbyByZW1vdmVzIHRoZSBhdHRhY2hFdmVudCBldmVudHMsIHdoaWNoIHdlICpkbyogd2FudAoJZGVzdC5jbGVhckF0dHJpYnV0ZXMoKTsKCgkvLyBtZXJnZUF0dHJpYnV0ZXMsIGluIGNvbnRyYXN0LCBvbmx5IG1lcmdlcyBiYWNrIG9uIHRoZQoJLy8gb3JpZ2luYWwgYXR0cmlidXRlcywgbm90IHRoZSBldmVudHMKCWRlc3QubWVyZ2VBdHRyaWJ1dGVzKHNyYyk7CgoJLy8gSUU2LTggZmFpbCB0byBjbG9uZSBjaGlsZHJlbiBpbnNpZGUgb2JqZWN0IGVsZW1lbnRzIHRoYXQgdXNlCgkvLyB0aGUgcHJvcHJpZXRhcnkgY2xhc3NpZCBhdHRyaWJ1dGUgdmFsdWUgKHJhdGhlciB0aGFuIHRoZSB0eXBlCgkvLyBhdHRyaWJ1dGUpIHRvIGlkZW50aWZ5IHRoZSB0eXBlIG9mIGNvbnRlbnQgdG8gZGlzcGxheQoJaWYgKCBub2RlTmFtZSA9PT0gIm9iamVjdCIgKSB7CgkJZGVzdC5vdXRlckhUTUwgPSBzcmMub3V0ZXJIVE1MOwoKCX0gZWxzZSBpZiAoIG5vZGVOYW1lID09PSAiaW5wdXQiICYmIChzcmMudHlwZSA9PT0gImNoZWNrYm94IiB8fCBzcmMudHlwZSA9PT0gInJhZGlvIikgKSB7CgkJLy8gSUU2LTggZmFpbHMgdG8gcGVyc2lzdCB0aGUgY2hlY2tlZCBzdGF0ZSBvZiBhIGNsb25lZCBjaGVja2JveAoJCS8vIG9yIHJhZGlvIGJ1dHRvbi4gV29yc2UsIElFNi03IGZhaWwgdG8gZ2l2ZSB0aGUgY2xvbmVkIGVsZW1lbnQKCQkvLyBhIGNoZWNrZWQgYXBwZWFyYW5jZSBpZiB0aGUgZGVmYXVsdENoZWNrZWQgdmFsdWUgaXNuJ3QgYWxzbyBzZXQKCQlpZiAoIHNyYy5jaGVja2VkICkgewoJCQlkZXN0LmRlZmF1bHRDaGVja2VkID0gZGVzdC5jaGVja2VkID0gc3JjLmNoZWNrZWQ7CgkJfQoKCQkvLyBJRTYtNyBnZXQgY29uZnVzZWQgYW5kIGVuZCB1cCBzZXR0aW5nIHRoZSB2YWx1ZSBvZiBhIGNsb25lZAoJCS8vIGNoZWNrYm94L3JhZGlvIGJ1dHRvbiB0byBhbiBlbXB0eSBzdHJpbmcgaW5zdGVhZCBvZiAib24iCgkJaWYgKCBkZXN0LnZhbHVlICE9PSBzcmMudmFsdWUgKSB7CgkJCWRlc3QudmFsdWUgPSBzcmMudmFsdWU7CgkJfQoKCS8vIElFNi04IGZhaWxzIHRvIHJldHVybiB0aGUgc2VsZWN0ZWQgb3B0aW9uIHRvIHRoZSBkZWZhdWx0IHNlbGVjdGVkCgkvLyBzdGF0ZSB3aGVuIGNsb25pbmcgb3B0aW9ucwoJfSBlbHNlIGlmICggbm9kZU5hbWUgPT09ICJvcHRpb24iICkgewoJCWRlc3Quc2VsZWN0ZWQgPSBzcmMuZGVmYXVsdFNlbGVjdGVkOwoKCS8vIElFNi04IGZhaWxzIHRvIHNldCB0aGUgZGVmYXVsdFZhbHVlIHRvIHRoZSBjb3JyZWN0IHZhbHVlIHdoZW4KCS8vIGNsb25pbmcgb3RoZXIgdHlwZXMgb2YgaW5wdXQgZmllbGRzCgl9IGVsc2UgaWYgKCBub2RlTmFtZSA9PT0gImlucHV0IiB8fCBub2RlTmFtZSA9PT0gInRleHRhcmVhIiApIHsKCQlkZXN0LmRlZmF1bHRWYWx1ZSA9IHNyYy5kZWZhdWx0VmFsdWU7Cgl9CgoJLy8gRXZlbnQgZGF0YSBnZXRzIHJlZmVyZW5jZWQgaW5zdGVhZCBvZiBjb3BpZWQgaWYgdGhlIGV4cGFuZG8KCS8vIGdldHMgY29waWVkIHRvbwoJZGVzdC5yZW1vdmVBdHRyaWJ1dGUoIGpRdWVyeS5leHBhbmRvICk7Cn0KCmpRdWVyeS5idWlsZEZyYWdtZW50ID0gZnVuY3Rpb24oIGFyZ3MsIG5vZGVzLCBzY3JpcHRzICkgewoJdmFyIGZyYWdtZW50LCBjYWNoZWFibGUsIGNhY2hlcmVzdWx0cywKCQlkb2MgPSAobm9kZXMgJiYgbm9kZXNbMF0gPyBub2Rlc1swXS5vd25lckRvY3VtZW50IHx8IG5vZGVzWzBdIDogZG9jdW1lbnQpOwoKCS8vIE9ubHkgY2FjaGUgInNtYWxsIiAoMS8yIEtCKSBIVE1MIHN0cmluZ3MgdGhhdCBhcmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBtYWluIGRvY3VtZW50CgkvLyBDbG9uaW5nIG9wdGlvbnMgbG9zZXMgdGhlIHNlbGVjdGVkIHN0YXRlLCBzbyBkb24ndCBjYWNoZSB0aGVtCgkvLyBJRSA2IGRvZXNuJ3QgbGlrZSBpdCB3aGVuIHlvdSBwdXQgPG9iamVjdD4gb3IgPGVtYmVkPiBlbGVtZW50cyBpbiBhIGZyYWdtZW50CgkvLyBBbHNvLCBXZWJLaXQgZG9lcyBub3QgY2xvbmUgJ2NoZWNrZWQnIGF0dHJpYnV0ZXMgb24gY2xvbmVOb2RlLCBzbyBkb24ndCBjYWNoZQoJaWYgKCBhcmdzLmxlbmd0aCA9PT0gMSAmJiB0eXBlb2YgYXJnc1swXSA9PT0gInN0cmluZyIgJiYgYXJnc1swXS5sZW5ndGggPCA1MTIgJiYgZG9jID09PSBkb2N1bWVudCAmJgoJCWFyZ3NbMF0uY2hhckF0KDApID09PSAiPCIgJiYgIXJub2NhY2hlLnRlc3QoIGFyZ3NbMF0gKSAmJiAoalF1ZXJ5LnN1cHBvcnQuY2hlY2tDbG9uZSB8fCAhcmNoZWNrZWQudGVzdCggYXJnc1swXSApKSApIHsKCgkJY2FjaGVhYmxlID0gdHJ1ZTsKCQljYWNoZXJlc3VsdHMgPSBqUXVlcnkuZnJhZ21lbnRzWyBhcmdzWzBdIF07CgkJaWYgKCBjYWNoZXJlc3VsdHMgKSB7CgkJCWlmICggY2FjaGVyZXN1bHRzICE9PSAxICkgewoJCQkJZnJhZ21lbnQgPSBjYWNoZXJlc3VsdHM7CgkJCX0KCQl9Cgl9CgoJaWYgKCAhZnJhZ21lbnQgKSB7CgkJZnJhZ21lbnQgPSBkb2MuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwoJCWpRdWVyeS5jbGVhbiggYXJncywgZG9jLCBmcmFnbWVudCwgc2NyaXB0cyApOwoJfQoKCWlmICggY2FjaGVhYmxlICkgewoJCWpRdWVyeS5mcmFnbWVudHNbIGFyZ3NbMF0gXSA9IGNhY2hlcmVzdWx0cyA/IGZyYWdtZW50IDogMTsKCX0KCglyZXR1cm4geyBmcmFnbWVudDogZnJhZ21lbnQsIGNhY2hlYWJsZTogY2FjaGVhYmxlIH07Cn07CgpqUXVlcnkuZnJhZ21lbnRzID0ge307CgpqUXVlcnkuZWFjaCh7CglhcHBlbmRUbzogImFwcGVuZCIsCglwcmVwZW5kVG86ICJwcmVwZW5kIiwKCWluc2VydEJlZm9yZTogImJlZm9yZSIsCglpbnNlcnRBZnRlcjogImFmdGVyIiwKCXJlcGxhY2VBbGw6ICJyZXBsYWNlV2l0aCIKfSwgZnVuY3Rpb24oIG5hbWUsIG9yaWdpbmFsICkgewoJalF1ZXJ5LmZuWyBuYW1lIF0gPSBmdW5jdGlvbiggc2VsZWN0b3IgKSB7CgkJdmFyIHJldCA9IFtdLAoJCQlpbnNlcnQgPSBqUXVlcnkoIHNlbGVjdG9yICksCgkJCXBhcmVudCA9IHRoaXMubGVuZ3RoID09PSAxICYmIHRoaXNbMF0ucGFyZW50Tm9kZTsKCgkJaWYgKCBwYXJlbnQgJiYgcGFyZW50Lm5vZGVUeXBlID09PSAxMSAmJiBwYXJlbnQuY2hpbGROb2Rlcy5sZW5ndGggPT09IDEgJiYgaW5zZXJ0Lmxlbmd0aCA9PT0gMSApIHsKCQkJaW5zZXJ0WyBvcmlnaW5hbCBdKCB0aGlzWzBdICk7CgkJCXJldHVybiB0aGlzOwoKCQl9IGVsc2UgewoJCQlmb3IgKCB2YXIgaSA9IDAsIGwgPSBpbnNlcnQubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCQkJdmFyIGVsZW1zID0gKGkgPiAwID8gdGhpcy5jbG9uZSh0cnVlKSA6IHRoaXMpLmdldCgpOwoJCQkJalF1ZXJ5KCBpbnNlcnRbaV0gKVsgb3JpZ2luYWwgXSggZWxlbXMgKTsKCQkJCXJldCA9IHJldC5jb25jYXQoIGVsZW1zICk7CgkJCX0KCgkJCXJldHVybiB0aGlzLnB1c2hTdGFjayggcmV0LCBuYW1lLCBpbnNlcnQuc2VsZWN0b3IgKTsKCQl9Cgl9Owp9KTsKCmZ1bmN0aW9uIGdldEFsbCggZWxlbSApIHsKCWlmICggImdldEVsZW1lbnRzQnlUYWdOYW1lIiBpbiBlbGVtICkgewoJCXJldHVybiBlbGVtLmdldEVsZW1lbnRzQnlUYWdOYW1lKCAiKiIgKTsKCQoJfSBlbHNlIGlmICggInF1ZXJ5U2VsZWN0b3JBbGwiIGluIGVsZW0gKSB7CgkJcmV0dXJuIGVsZW0ucXVlcnlTZWxlY3RvckFsbCggIioiICk7CgoJfSBlbHNlIHsKCQlyZXR1cm4gW107Cgl9Cn0KCmpRdWVyeS5leHRlbmQoewoJY2xvbmU6IGZ1bmN0aW9uKCBlbGVtLCBkYXRhQW5kRXZlbnRzLCBkZWVwRGF0YUFuZEV2ZW50cyApIHsKCQl2YXIgY2xvbmUgPSBlbGVtLmNsb25lTm9kZSh0cnVlKSwKCQkJCXNyY0VsZW1lbnRzLAoJCQkJZGVzdEVsZW1lbnRzLAoJCQkJaTsKCgkJaWYgKCAoIWpRdWVyeS5zdXBwb3J0Lm5vQ2xvbmVFdmVudCB8fCAhalF1ZXJ5LnN1cHBvcnQubm9DbG9uZUNoZWNrZWQpICYmCgkJCQkoZWxlbS5ub2RlVHlwZSA9PT0gMSB8fCBlbGVtLm5vZGVUeXBlID09PSAxMSkgJiYgIWpRdWVyeS5pc1hNTERvYyhlbGVtKSApIHsKCQkJLy8gSUUgY29waWVzIGV2ZW50cyBib3VuZCB2aWEgYXR0YWNoRXZlbnQgd2hlbiB1c2luZyBjbG9uZU5vZGUuCgkJCS8vIENhbGxpbmcgZGV0YWNoRXZlbnQgb24gdGhlIGNsb25lIHdpbGwgYWxzbyByZW1vdmUgdGhlIGV2ZW50cwoJCQkvLyBmcm9tIHRoZSBvcmlnaW5hbC4gSW4gb3JkZXIgdG8gZ2V0IGFyb3VuZCB0aGlzLCB3ZSB1c2Ugc29tZQoJCQkvLyBwcm9wcmlldGFyeSBtZXRob2RzIHRvIGNsZWFyIHRoZSBldmVudHMuIFRoYW5rcyB0byBNb29Ub29scwoJCQkvLyBndXlzIGZvciB0aGlzIGhvdG5lc3MuCgoJCQljbG9uZUZpeEF0dHJpYnV0ZXMoIGVsZW0sIGNsb25lICk7CgoJCQkvLyBVc2luZyBTaXp6bGUgaGVyZSBpcyBjcmF6eSBzbG93LCBzbyB3ZSB1c2UgZ2V0RWxlbWVudHNCeVRhZ05hbWUKCQkJLy8gaW5zdGVhZAoJCQlzcmNFbGVtZW50cyA9IGdldEFsbCggZWxlbSApOwoJCQlkZXN0RWxlbWVudHMgPSBnZXRBbGwoIGNsb25lICk7CgoJCQkvLyBXZWlyZCBpdGVyYXRpb24gYmVjYXVzZSBJRSB3aWxsIHJlcGxhY2UgdGhlIGxlbmd0aCBwcm9wZXJ0eQoJCQkvLyB3aXRoIGFuIGVsZW1lbnQgaWYgeW91IGFyZSBjbG9uaW5nIHRoZSBib2R5IGFuZCBvbmUgb2YgdGhlCgkJCS8vIGVsZW1lbnRzIG9uIHRoZSBwYWdlIGhhcyBhIG5hbWUgb3IgaWQgb2YgImxlbmd0aCIKCQkJZm9yICggaSA9IDA7IHNyY0VsZW1lbnRzW2ldOyArK2kgKSB7CgkJCQljbG9uZUZpeEF0dHJpYnV0ZXMoIHNyY0VsZW1lbnRzW2ldLCBkZXN0RWxlbWVudHNbaV0gKTsKCQkJfQoJCX0KCgkJLy8gQ29weSB0aGUgZXZlbnRzIGZyb20gdGhlIG9yaWdpbmFsIHRvIHRoZSBjbG9uZQoJCWlmICggZGF0YUFuZEV2ZW50cyApIHsKCQkJY2xvbmVDb3B5RXZlbnQoIGVsZW0sIGNsb25lICk7CgoJCQlpZiAoIGRlZXBEYXRhQW5kRXZlbnRzICkgewoJCQkJc3JjRWxlbWVudHMgPSBnZXRBbGwoIGVsZW0gKTsKCQkJCWRlc3RFbGVtZW50cyA9IGdldEFsbCggY2xvbmUgKTsKCgkJCQlmb3IgKCBpID0gMDsgc3JjRWxlbWVudHNbaV07ICsraSApIHsKCQkJCQljbG9uZUNvcHlFdmVudCggc3JjRWxlbWVudHNbaV0sIGRlc3RFbGVtZW50c1tpXSApOwoJCQkJfQoJCQl9CgkJfQoKCQkvLyBSZXR1cm4gdGhlIGNsb25lZCBzZXQKCQlyZXR1cm4gY2xvbmU7Cn0sCgljbGVhbjogZnVuY3Rpb24oIGVsZW1zLCBjb250ZXh0LCBmcmFnbWVudCwgc2NyaXB0cyApIHsKCQljb250ZXh0ID0gY29udGV4dCB8fCBkb2N1bWVudDsKCgkJLy8gIWNvbnRleHQuY3JlYXRlRWxlbWVudCBmYWlscyBpbiBJRSB3aXRoIGFuIGVycm9yIGJ1dCByZXR1cm5zIHR5cGVvZiAnb2JqZWN0JwoJCWlmICggdHlwZW9mIGNvbnRleHQuY3JlYXRlRWxlbWVudCA9PT0gInVuZGVmaW5lZCIgKSB7CgkJCWNvbnRleHQgPSBjb250ZXh0Lm93bmVyRG9jdW1lbnQgfHwgY29udGV4dFswXSAmJiBjb250ZXh0WzBdLm93bmVyRG9jdW1lbnQgfHwgZG9jdW1lbnQ7CgkJfQoKCQl2YXIgcmV0ID0gW107CgoJCWZvciAoIHZhciBpID0gMCwgZWxlbTsgKGVsZW0gPSBlbGVtc1tpXSkgIT0gbnVsbDsgaSsrICkgewoJCQlpZiAoIHR5cGVvZiBlbGVtID09PSAibnVtYmVyIiApIHsKCQkJCWVsZW0gKz0gIiI7CgkJCX0KCgkJCWlmICggIWVsZW0gKSB7CgkJCQljb250aW51ZTsKCQkJfQoKCQkJLy8gQ29udmVydCBodG1sIHN0cmluZyBpbnRvIERPTSBub2RlcwoJCQlpZiAoIHR5cGVvZiBlbGVtID09PSAic3RyaW5nIiAmJiAhcmh0bWwudGVzdCggZWxlbSApICkgewoJCQkJZWxlbSA9IGNvbnRleHQuY3JlYXRlVGV4dE5vZGUoIGVsZW0gKTsKCgkJCX0gZWxzZSBpZiAoIHR5cGVvZiBlbGVtID09PSAic3RyaW5nIiApIHsKCQkJCS8vIEZpeCAiWEhUTUwiLXN0eWxlIHRhZ3MgaW4gYWxsIGJyb3dzZXJzCgkJCQllbGVtID0gZWxlbS5yZXBsYWNlKHJ4aHRtbFRhZywgIjwkMT48LyQyPiIpOwoKCQkJCS8vIFRyaW0gd2hpdGVzcGFjZSwgb3RoZXJ3aXNlIGluZGV4T2Ygd29uJ3Qgd29yayBhcyBleHBlY3RlZAoJCQkJdmFyIHRhZyA9IChydGFnTmFtZS5leGVjKCBlbGVtICkgfHwgWyIiLCAiIl0pWzFdLnRvTG93ZXJDYXNlKCksCgkJCQkJd3JhcCA9IHdyYXBNYXBbIHRhZyBdIHx8IHdyYXBNYXAuX2RlZmF1bHQsCgkJCQkJZGVwdGggPSB3cmFwWzBdLAoJCQkJCWRpdiA9IGNvbnRleHQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CgoJCQkJLy8gR28gdG8gaHRtbCBhbmQgYmFjaywgdGhlbiBwZWVsIG9mZiBleHRyYSB3cmFwcGVycwoJCQkJZGl2LmlubmVySFRNTCA9IHdyYXBbMV0gKyBlbGVtICsgd3JhcFsyXTsKCgkJCQkvLyBNb3ZlIHRvIHRoZSByaWdodCBkZXB0aAoJCQkJd2hpbGUgKCBkZXB0aC0tICkgewoJCQkJCWRpdiA9IGRpdi5sYXN0Q2hpbGQ7CgkJCQl9CgoJCQkJLy8gUmVtb3ZlIElFJ3MgYXV0b2luc2VydGVkIDx0Ym9keT4gZnJvbSB0YWJsZSBmcmFnbWVudHMKCQkJCWlmICggIWpRdWVyeS5zdXBwb3J0LnRib2R5ICkgewoKCQkJCQkvLyBTdHJpbmcgd2FzIGEgPHRhYmxlPiwgKm1heSogaGF2ZSBzcHVyaW91cyA8dGJvZHk+CgkJCQkJdmFyIGhhc0JvZHkgPSBydGJvZHkudGVzdChlbGVtKSwKCQkJCQkJdGJvZHkgPSB0YWcgPT09ICJ0YWJsZSIgJiYgIWhhc0JvZHkgPwoJCQkJCQkJZGl2LmZpcnN0Q2hpbGQgJiYgZGl2LmZpcnN0Q2hpbGQuY2hpbGROb2RlcyA6CgoJCQkJCQkJLy8gU3RyaW5nIHdhcyBhIGJhcmUgPHRoZWFkPiBvciA8dGZvb3Q+CgkJCQkJCQl3cmFwWzFdID09PSAiPHRhYmxlPiIgJiYgIWhhc0JvZHkgPwoJCQkJCQkJCWRpdi5jaGlsZE5vZGVzIDoKCQkJCQkJCQlbXTsKCgkJCQkJZm9yICggdmFyIGogPSB0Ym9keS5sZW5ndGggLSAxOyBqID49IDAgOyAtLWogKSB7CgkJCQkJCWlmICggalF1ZXJ5Lm5vZGVOYW1lKCB0Ym9keVsgaiBdLCAidGJvZHkiICkgJiYgIXRib2R5WyBqIF0uY2hpbGROb2Rlcy5sZW5ndGggKSB7CgkJCQkJCQl0Ym9keVsgaiBdLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoIHRib2R5WyBqIF0gKTsKCQkJCQkJfQoJCQkJCX0KCgkJCQl9CgoJCQkJLy8gSUUgY29tcGxldGVseSBraWxscyBsZWFkaW5nIHdoaXRlc3BhY2Ugd2hlbiBpbm5lckhUTUwgaXMgdXNlZAoJCQkJaWYgKCAhalF1ZXJ5LnN1cHBvcnQubGVhZGluZ1doaXRlc3BhY2UgJiYgcmxlYWRpbmdXaGl0ZXNwYWNlLnRlc3QoIGVsZW0gKSApIHsKCQkJCQlkaXYuaW5zZXJ0QmVmb3JlKCBjb250ZXh0LmNyZWF0ZVRleHROb2RlKCBybGVhZGluZ1doaXRlc3BhY2UuZXhlYyhlbGVtKVswXSApLCBkaXYuZmlyc3RDaGlsZCApOwoJCQkJfQoKCQkJCWVsZW0gPSBkaXYuY2hpbGROb2RlczsKCQkJfQoKCQkJaWYgKCBlbGVtLm5vZGVUeXBlICkgewoJCQkJcmV0LnB1c2goIGVsZW0gKTsKCQkJfSBlbHNlIHsKCQkJCXJldCA9IGpRdWVyeS5tZXJnZSggcmV0LCBlbGVtICk7CgkJCX0KCQl9CgoJCWlmICggZnJhZ21lbnQgKSB7CgkJCWZvciAoIGkgPSAwOyByZXRbaV07IGkrKyApIHsKCQkJCWlmICggc2NyaXB0cyAmJiBqUXVlcnkubm9kZU5hbWUoIHJldFtpXSwgInNjcmlwdCIgKSAmJiAoIXJldFtpXS50eXBlIHx8IHJldFtpXS50eXBlLnRvTG93ZXJDYXNlKCkgPT09ICJ0ZXh0L2phdmFzY3JpcHQiKSApIHsKCQkJCQlzY3JpcHRzLnB1c2goIHJldFtpXS5wYXJlbnROb2RlID8gcmV0W2ldLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoIHJldFtpXSApIDogcmV0W2ldICk7CgoJCQkJfSBlbHNlIHsKCQkJCQlpZiAoIHJldFtpXS5ub2RlVHlwZSA9PT0gMSApIHsKCQkJCQkJcmV0LnNwbGljZS5hcHBseSggcmV0LCBbaSArIDEsIDBdLmNvbmNhdChqUXVlcnkubWFrZUFycmF5KHJldFtpXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IikpKSApOwoJCQkJCX0KCQkJCQlmcmFnbWVudC5hcHBlbmRDaGlsZCggcmV0W2ldICk7CgkJCQl9CgkJCX0KCQl9CgoJCXJldHVybiByZXQ7Cgl9LAoKCWNsZWFuRGF0YTogZnVuY3Rpb24oIGVsZW1zICkgewoJCXZhciBkYXRhLCBpZCwgY2FjaGUgPSBqUXVlcnkuY2FjaGUsIGludGVybmFsS2V5ID0galF1ZXJ5LmV4cGFuZG8sIHNwZWNpYWwgPSBqUXVlcnkuZXZlbnQuc3BlY2lhbCwKCQkJZGVsZXRlRXhwYW5kbyA9IGpRdWVyeS5zdXBwb3J0LmRlbGV0ZUV4cGFuZG87CgoJCWZvciAoIHZhciBpID0gMCwgZWxlbTsgKGVsZW0gPSBlbGVtc1tpXSkgIT0gbnVsbDsgaSsrICkgewoJCQlpZiAoIGVsZW0ubm9kZU5hbWUgJiYgalF1ZXJ5Lm5vRGF0YVtlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldICkgewoJCQkJY29udGludWU7CgkJCX0KCgkJCWlkID0gZWxlbVsgalF1ZXJ5LmV4cGFuZG8gXTsKCgkJCWlmICggaWQgKSB7CgkJCQlkYXRhID0gY2FjaGVbIGlkIF0gJiYgY2FjaGVbIGlkIF1bIGludGVybmFsS2V5IF07CgoJCQkJaWYgKCBkYXRhICYmIGRhdGEuZXZlbnRzICkgewoJCQkJCWZvciAoIHZhciB0eXBlIGluIGRhdGEuZXZlbnRzICkgewoJCQkJCQlpZiAoIHNwZWNpYWxbIHR5cGUgXSApIHsKCQkJCQkJCWpRdWVyeS5ldmVudC5yZW1vdmUoIGVsZW0sIHR5cGUgKTsKCgkJCQkJCS8vIFRoaXMgaXMgYSBzaG9ydGN1dCB0byBhdm9pZCBqUXVlcnkuZXZlbnQucmVtb3ZlJ3Mgb3ZlcmhlYWQKCQkJCQkJfSBlbHNlIHsKCQkJCQkJCWpRdWVyeS5yZW1vdmVFdmVudCggZWxlbSwgdHlwZSwgZGF0YS5oYW5kbGUgKTsKCQkJCQkJfQoJCQkJCX0KCgkJCQkJLy8gTnVsbCB0aGUgRE9NIHJlZmVyZW5jZSB0byBhdm9pZCBJRTYvNy84IGxlYWsgKCM3MDU0KQoJCQkJCWlmICggZGF0YS5oYW5kbGUgKSB7CgkJCQkJCWRhdGEuaGFuZGxlLmVsZW0gPSBudWxsOwoJCQkJCX0KCQkJCX0KCgkJCQlpZiAoIGRlbGV0ZUV4cGFuZG8gKSB7CgkJCQkJZGVsZXRlIGVsZW1bIGpRdWVyeS5leHBhbmRvIF07CgoJCQkJfSBlbHNlIGlmICggZWxlbS5yZW1vdmVBdHRyaWJ1dGUgKSB7CgkJCQkJZWxlbS5yZW1vdmVBdHRyaWJ1dGUoIGpRdWVyeS5leHBhbmRvICk7CgkJCQl9CgoJCQkJZGVsZXRlIGNhY2hlWyBpZCBdOwoJCQl9CgkJfQoJfQp9KTsKCmZ1bmN0aW9uIGV2YWxTY3JpcHQoIGksIGVsZW0gKSB7CglpZiAoIGVsZW0uc3JjICkgewoJCWpRdWVyeS5hamF4KHsKCQkJdXJsOiBlbGVtLnNyYywKCQkJYXN5bmM6IGZhbHNlLAoJCQlkYXRhVHlwZTogInNjcmlwdCIKCQl9KTsKCX0gZWxzZSB7CgkJalF1ZXJ5Lmdsb2JhbEV2YWwoIGVsZW0udGV4dCB8fCBlbGVtLnRleHRDb250ZW50IHx8IGVsZW0uaW5uZXJIVE1MIHx8ICIiICk7Cgl9CgoJaWYgKCBlbGVtLnBhcmVudE5vZGUgKSB7CgkJZWxlbS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKCBlbGVtICk7Cgl9Cn0KCgoKCnZhciByYWxwaGEgPSAvYWxwaGFcKFteKV0qXCkvaSwKCXJvcGFjaXR5ID0gL29wYWNpdHk9KFteKV0qKS8sCglyZGFzaEFscGhhID0gLy0oW2Etel0pL2lnLAoJcnVwcGVyID0gLyhbQS1aXSkvZywKCXJudW1weCA9IC9eLT9cZCsoPzpweCk/JC9pLAoJcm51bSA9IC9eLT9cZC8sCgoJY3NzU2hvdyA9IHsgcG9zaXRpb246ICJhYnNvbHV0ZSIsIHZpc2liaWxpdHk6ICJoaWRkZW4iLCBkaXNwbGF5OiAiYmxvY2siIH0sCgljc3NXaWR0aCA9IFsgIkxlZnQiLCAiUmlnaHQiIF0sCgljc3NIZWlnaHQgPSBbICJUb3AiLCAiQm90dG9tIiBdLAoJY3VyQ1NTLAoKCWdldENvbXB1dGVkU3R5bGUsCgljdXJyZW50U3R5bGUsCgoJZmNhbWVsQ2FzZSA9IGZ1bmN0aW9uKCBhbGwsIGxldHRlciApIHsKCQlyZXR1cm4gbGV0dGVyLnRvVXBwZXJDYXNlKCk7Cgl9OwoKalF1ZXJ5LmZuLmNzcyA9IGZ1bmN0aW9uKCBuYW1lLCB2YWx1ZSApIHsKCS8vIFNldHRpbmcgJ3VuZGVmaW5lZCcgaXMgYSBuby1vcAoJaWYgKCBhcmd1bWVudHMubGVuZ3RoID09PSAyICYmIHZhbHVlID09PSB1bmRlZmluZWQgKSB7CgkJcmV0dXJuIHRoaXM7Cgl9CgoJcmV0dXJuIGpRdWVyeS5hY2Nlc3MoIHRoaXMsIG5hbWUsIHZhbHVlLCB0cnVlLCBmdW5jdGlvbiggZWxlbSwgbmFtZSwgdmFsdWUgKSB7CgkJcmV0dXJuIHZhbHVlICE9PSB1bmRlZmluZWQgPwoJCQlqUXVlcnkuc3R5bGUoIGVsZW0sIG5hbWUsIHZhbHVlICkgOgoJCQlqUXVlcnkuY3NzKCBlbGVtLCBuYW1lICk7Cgl9KTsKfTsKCmpRdWVyeS5leHRlbmQoewoJLy8gQWRkIGluIHN0eWxlIHByb3BlcnR5IGhvb2tzIGZvciBvdmVycmlkaW5nIHRoZSBkZWZhdWx0CgkvLyBiZWhhdmlvciBvZiBnZXR0aW5nIGFuZCBzZXR0aW5nIGEgc3R5bGUgcHJvcGVydHkKCWNzc0hvb2tzOiB7CgkJb3BhY2l0eTogewoJCQlnZXQ6IGZ1bmN0aW9uKCBlbGVtLCBjb21wdXRlZCApIHsKCQkJCWlmICggY29tcHV0ZWQgKSB7CgkJCQkJLy8gV2Ugc2hvdWxkIGFsd2F5cyBnZXQgYSBudW1iZXIgYmFjayBmcm9tIG9wYWNpdHkKCQkJCQl2YXIgcmV0ID0gY3VyQ1NTKCBlbGVtLCAib3BhY2l0eSIsICJvcGFjaXR5IiApOwoJCQkJCXJldHVybiByZXQgPT09ICIiID8gIjEiIDogcmV0OwoKCQkJCX0gZWxzZSB7CgkJCQkJcmV0dXJuIGVsZW0uc3R5bGUub3BhY2l0eTsKCQkJCX0KCQkJfQoJCX0KCX0sCgoJLy8gRXhjbHVkZSB0aGUgZm9sbG93aW5nIGNzcyBwcm9wZXJ0aWVzIHRvIGFkZCBweAoJY3NzTnVtYmVyOiB7CgkJInpJbmRleCI6IHRydWUsCgkJImZvbnRXZWlnaHQiOiB0cnVlLAoJCSJvcGFjaXR5IjogdHJ1ZSwKCQkiem9vbSI6IHRydWUsCgkJImxpbmVIZWlnaHQiOiB0cnVlCgl9LAoKCS8vIEFkZCBpbiBwcm9wZXJ0aWVzIHdob3NlIG5hbWVzIHlvdSB3aXNoIHRvIGZpeCBiZWZvcmUKCS8vIHNldHRpbmcgb3IgZ2V0dGluZyB0aGUgdmFsdWUKCWNzc1Byb3BzOiB7CgkJLy8gbm9ybWFsaXplIGZsb2F0IGNzcyBwcm9wZXJ0eQoJCSJmbG9hdCI6IGpRdWVyeS5zdXBwb3J0LmNzc0Zsb2F0ID8gImNzc0Zsb2F0IiA6ICJzdHlsZUZsb2F0IgoJfSwKCgkvLyBHZXQgYW5kIHNldCB0aGUgc3R5bGUgcHJvcGVydHkgb24gYSBET00gTm9kZQoJc3R5bGU6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCB2YWx1ZSwgZXh0cmEgKSB7CgkJLy8gRG9uJ3Qgc2V0IHN0eWxlcyBvbiB0ZXh0IGFuZCBjb21tZW50IG5vZGVzCgkJaWYgKCAhZWxlbSB8fCBlbGVtLm5vZGVUeXBlID09PSAzIHx8IGVsZW0ubm9kZVR5cGUgPT09IDggfHwgIWVsZW0uc3R5bGUgKSB7CgkJCXJldHVybjsKCQl9CgoJCS8vIE1ha2Ugc3VyZSB0aGF0IHdlJ3JlIHdvcmtpbmcgd2l0aCB0aGUgcmlnaHQgbmFtZQoJCXZhciByZXQsIG9yaWdOYW1lID0galF1ZXJ5LmNhbWVsQ2FzZSggbmFtZSApLAoJCQlzdHlsZSA9IGVsZW0uc3R5bGUsIGhvb2tzID0galF1ZXJ5LmNzc0hvb2tzWyBvcmlnTmFtZSBdOwoKCQluYW1lID0galF1ZXJ5LmNzc1Byb3BzWyBvcmlnTmFtZSBdIHx8IG9yaWdOYW1lOwoKCQkvLyBDaGVjayBpZiB3ZSdyZSBzZXR0aW5nIGEgdmFsdWUKCQlpZiAoIHZhbHVlICE9PSB1bmRlZmluZWQgKSB7CgkJCS8vIE1ha2Ugc3VyZSB0aGF0IE5hTiBhbmQgbnVsbCB2YWx1ZXMgYXJlbid0IHNldC4gU2VlOiAjNzExNgoJCQlpZiAoIHR5cGVvZiB2YWx1ZSA9PT0gIm51bWJlciIgJiYgaXNOYU4oIHZhbHVlICkgfHwgdmFsdWUgPT0gbnVsbCApIHsKCQkJCXJldHVybjsKCQkJfQoKCQkJLy8gSWYgYSBudW1iZXIgd2FzIHBhc3NlZCBpbiwgYWRkICdweCcgdG8gdGhlIChleGNlcHQgZm9yIGNlcnRhaW4gQ1NTIHByb3BlcnRpZXMpCgkJCWlmICggdHlwZW9mIHZhbHVlID09PSAibnVtYmVyIiAmJiAhalF1ZXJ5LmNzc051bWJlclsgb3JpZ05hbWUgXSApIHsKCQkJCXZhbHVlICs9ICJweCI7CgkJCX0KCgkJCS8vIElmIGEgaG9vayB3YXMgcHJvdmlkZWQsIHVzZSB0aGF0IHZhbHVlLCBvdGhlcndpc2UganVzdCBzZXQgdGhlIHNwZWNpZmllZCB2YWx1ZQoJCQlpZiAoICFob29rcyB8fCAhKCJzZXQiIGluIGhvb2tzKSB8fCAodmFsdWUgPSBob29rcy5zZXQoIGVsZW0sIHZhbHVlICkpICE9PSB1bmRlZmluZWQgKSB7CgkJCQkvLyBXcmFwcGVkIHRvIHByZXZlbnQgSUUgZnJvbSB0aHJvd2luZyBlcnJvcnMgd2hlbiAnaW52YWxpZCcgdmFsdWVzIGFyZSBwcm92aWRlZAoJCQkJLy8gRml4ZXMgYnVnICM1NTA5CgkJCQl0cnkgewoJCQkJCXN0eWxlWyBuYW1lIF0gPSB2YWx1ZTsKCQkJCX0gY2F0Y2goZSkge30KCQkJfQoKCQl9IGVsc2UgewoJCQkvLyBJZiBhIGhvb2sgd2FzIHByb3ZpZGVkIGdldCB0aGUgbm9uLWNvbXB1dGVkIHZhbHVlIGZyb20gdGhlcmUKCQkJaWYgKCBob29rcyAmJiAiZ2V0IiBpbiBob29rcyAmJiAocmV0ID0gaG9va3MuZ2V0KCBlbGVtLCBmYWxzZSwgZXh0cmEgKSkgIT09IHVuZGVmaW5lZCApIHsKCQkJCXJldHVybiByZXQ7CgkJCX0KCgkJCS8vIE90aGVyd2lzZSBqdXN0IGdldCB0aGUgdmFsdWUgZnJvbSB0aGUgc3R5bGUgb2JqZWN0CgkJCXJldHVybiBzdHlsZVsgbmFtZSBdOwoJCX0KCX0sCgoJY3NzOiBmdW5jdGlvbiggZWxlbSwgbmFtZSwgZXh0cmEgKSB7CgkJLy8gTWFrZSBzdXJlIHRoYXQgd2UncmUgd29ya2luZyB3aXRoIHRoZSByaWdodCBuYW1lCgkJdmFyIHJldCwgb3JpZ05hbWUgPSBqUXVlcnkuY2FtZWxDYXNlKCBuYW1lICksCgkJCWhvb2tzID0galF1ZXJ5LmNzc0hvb2tzWyBvcmlnTmFtZSBdOwoKCQluYW1lID0galF1ZXJ5LmNzc1Byb3BzWyBvcmlnTmFtZSBdIHx8IG9yaWdOYW1lOwoKCQkvLyBJZiBhIGhvb2sgd2FzIHByb3ZpZGVkIGdldCB0aGUgY29tcHV0ZWQgdmFsdWUgZnJvbSB0aGVyZQoJCWlmICggaG9va3MgJiYgImdldCIgaW4gaG9va3MgJiYgKHJldCA9IGhvb2tzLmdldCggZWxlbSwgdHJ1ZSwgZXh0cmEgKSkgIT09IHVuZGVmaW5lZCApIHsKCQkJcmV0dXJuIHJldDsKCgkJLy8gT3RoZXJ3aXNlLCBpZiBhIHdheSB0byBnZXQgdGhlIGNvbXB1dGVkIHZhbHVlIGV4aXN0cywgdXNlIHRoYXQKCQl9IGVsc2UgaWYgKCBjdXJDU1MgKSB7CgkJCXJldHVybiBjdXJDU1MoIGVsZW0sIG5hbWUsIG9yaWdOYW1lICk7CgkJfQoJfSwKCgkvLyBBIG1ldGhvZCBmb3IgcXVpY2tseSBzd2FwcGluZyBpbi9vdXQgQ1NTIHByb3BlcnRpZXMgdG8gZ2V0IGNvcnJlY3QgY2FsY3VsYXRpb25zCglzd2FwOiBmdW5jdGlvbiggZWxlbSwgb3B0aW9ucywgY2FsbGJhY2sgKSB7CgkJdmFyIG9sZCA9IHt9OwoKCQkvLyBSZW1lbWJlciB0aGUgb2xkIHZhbHVlcywgYW5kIGluc2VydCB0aGUgbmV3IG9uZXMKCQlmb3IgKCB2YXIgbmFtZSBpbiBvcHRpb25zICkgewoJCQlvbGRbIG5hbWUgXSA9IGVsZW0uc3R5bGVbIG5hbWUgXTsKCQkJZWxlbS5zdHlsZVsgbmFtZSBdID0gb3B0aW9uc1sgbmFtZSBdOwoJCX0KCgkJY2FsbGJhY2suY2FsbCggZWxlbSApOwoKCQkvLyBSZXZlcnQgdGhlIG9sZCB2YWx1ZXMKCQlmb3IgKCBuYW1lIGluIG9wdGlvbnMgKSB7CgkJCWVsZW0uc3R5bGVbIG5hbWUgXSA9IG9sZFsgbmFtZSBdOwoJCX0KCX0sCgoJY2FtZWxDYXNlOiBmdW5jdGlvbiggc3RyaW5nICkgewoJCXJldHVybiBzdHJpbmcucmVwbGFjZSggcmRhc2hBbHBoYSwgZmNhbWVsQ2FzZSApOwoJfQp9KTsKCi8vIERFUFJFQ0FURUQsIFVzZSBqUXVlcnkuY3NzKCkgaW5zdGVhZApqUXVlcnkuY3VyQ1NTID0galF1ZXJ5LmNzczsKCmpRdWVyeS5lYWNoKFsiaGVpZ2h0IiwgIndpZHRoIl0sIGZ1bmN0aW9uKCBpLCBuYW1lICkgewoJalF1ZXJ5LmNzc0hvb2tzWyBuYW1lIF0gPSB7CgkJZ2V0OiBmdW5jdGlvbiggZWxlbSwgY29tcHV0ZWQsIGV4dHJhICkgewoJCQl2YXIgdmFsOwoKCQkJaWYgKCBjb21wdXRlZCApIHsKCQkJCWlmICggZWxlbS5vZmZzZXRXaWR0aCAhPT0gMCApIHsKCQkJCQl2YWwgPSBnZXRXSCggZWxlbSwgbmFtZSwgZXh0cmEgKTsKCgkJCQl9IGVsc2UgewoJCQkJCWpRdWVyeS5zd2FwKCBlbGVtLCBjc3NTaG93LCBmdW5jdGlvbigpIHsKCQkJCQkJdmFsID0gZ2V0V0goIGVsZW0sIG5hbWUsIGV4dHJhICk7CgkJCQkJfSk7CgkJCQl9CgoJCQkJaWYgKCB2YWwgPD0gMCApIHsKCQkJCQl2YWwgPSBjdXJDU1MoIGVsZW0sIG5hbWUsIG5hbWUgKTsKCgkJCQkJaWYgKCB2YWwgPT09ICIwcHgiICYmIGN1cnJlbnRTdHlsZSApIHsKCQkJCQkJdmFsID0gY3VycmVudFN0eWxlKCBlbGVtLCBuYW1lLCBuYW1lICk7CgkJCQkJfQoKCQkJCQlpZiAoIHZhbCAhPSBudWxsICkgewoJCQkJCQkvLyBTaG91bGQgcmV0dXJuICJhdXRvIiBpbnN0ZWFkIG9mIDAsIHVzZSAwIGZvcgoJCQkJCQkvLyB0ZW1wb3JhcnkgYmFja3dhcmRzLWNvbXBhdAoJCQkJCQlyZXR1cm4gdmFsID09PSAiIiB8fCB2YWwgPT09ICJhdXRvIiA/ICIwcHgiIDogdmFsOwoJCQkJCX0KCQkJCX0KCgkJCQlpZiAoIHZhbCA8IDAgfHwgdmFsID09IG51bGwgKSB7CgkJCQkJdmFsID0gZWxlbS5zdHlsZVsgbmFtZSBdOwoKCQkJCQkvLyBTaG91bGQgcmV0dXJuICJhdXRvIiBpbnN0ZWFkIG9mIDAsIHVzZSAwIGZvcgoJCQkJCS8vIHRlbXBvcmFyeSBiYWNrd2FyZHMtY29tcGF0CgkJCQkJcmV0dXJuIHZhbCA9PT0gIiIgfHwgdmFsID09PSAiYXV0byIgPyAiMHB4IiA6IHZhbDsKCQkJCX0KCgkJCQlyZXR1cm4gdHlwZW9mIHZhbCA9PT0gInN0cmluZyIgPyB2YWwgOiB2YWwgKyAicHgiOwoJCQl9CgkJfSwKCgkJc2V0OiBmdW5jdGlvbiggZWxlbSwgdmFsdWUgKSB7CgkJCWlmICggcm51bXB4LnRlc3QoIHZhbHVlICkgKSB7CgkJCQkvLyBpZ25vcmUgbmVnYXRpdmUgd2lkdGggYW5kIGhlaWdodCB2YWx1ZXMgIzE1OTkKCQkJCXZhbHVlID0gcGFyc2VGbG9hdCh2YWx1ZSk7CgoJCQkJaWYgKCB2YWx1ZSA+PSAwICkgewoJCQkJCXJldHVybiB2YWx1ZSArICJweCI7CgkJCQl9CgoJCQl9IGVsc2UgewoJCQkJcmV0dXJuIHZhbHVlOwoJCQl9CgkJfQoJfTsKfSk7CgppZiAoICFqUXVlcnkuc3VwcG9ydC5vcGFjaXR5ICkgewoJalF1ZXJ5LmNzc0hvb2tzLm9wYWNpdHkgPSB7CgkJZ2V0OiBmdW5jdGlvbiggZWxlbSwgY29tcHV0ZWQgKSB7CgkJCS8vIElFIHVzZXMgZmlsdGVycyBmb3Igb3BhY2l0eQoJCQlyZXR1cm4gcm9wYWNpdHkudGVzdCgoY29tcHV0ZWQgJiYgZWxlbS5jdXJyZW50U3R5bGUgPyBlbGVtLmN1cnJlbnRTdHlsZS5maWx0ZXIgOiBlbGVtLnN0eWxlLmZpbHRlcikgfHwgIiIpID8KCQkJCShwYXJzZUZsb2F0KFJlZ0V4cC4kMSkgLyAxMDApICsgIiIgOgoJCQkJY29tcHV0ZWQgPyAiMSIgOiAiIjsKCQl9LAoKCQlzZXQ6IGZ1bmN0aW9uKCBlbGVtLCB2YWx1ZSApIHsKCQkJdmFyIHN0eWxlID0gZWxlbS5zdHlsZTsKCgkJCS8vIElFIGhhcyB0cm91YmxlIHdpdGggb3BhY2l0eSBpZiBpdCBkb2VzIG5vdCBoYXZlIGxheW91dAoJCQkvLyBGb3JjZSBpdCBieSBzZXR0aW5nIHRoZSB6b29tIGxldmVsCgkJCXN0eWxlLnpvb20gPSAxOwoKCQkJLy8gU2V0IHRoZSBhbHBoYSBmaWx0ZXIgdG8gc2V0IHRoZSBvcGFjaXR5CgkJCXZhciBvcGFjaXR5ID0galF1ZXJ5LmlzTmFOKHZhbHVlKSA/CgkJCQkiIiA6CgkJCQkiYWxwaGEob3BhY2l0eT0iICsgdmFsdWUgKiAxMDAgKyAiKSIsCgkJCQlmaWx0ZXIgPSBzdHlsZS5maWx0ZXIgfHwgIiI7CgoJCQlzdHlsZS5maWx0ZXIgPSByYWxwaGEudGVzdChmaWx0ZXIpID8KCQkJCWZpbHRlci5yZXBsYWNlKHJhbHBoYSwgb3BhY2l0eSkgOgoJCQkJc3R5bGUuZmlsdGVyICsgJyAnICsgb3BhY2l0eTsKCQl9Cgl9Owp9CgppZiAoIGRvY3VtZW50LmRlZmF1bHRWaWV3ICYmIGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUgKSB7CglnZXRDb21wdXRlZFN0eWxlID0gZnVuY3Rpb24oIGVsZW0sIG5ld05hbWUsIG5hbWUgKSB7CgkJdmFyIHJldCwgZGVmYXVsdFZpZXcsIGNvbXB1dGVkU3R5bGU7CgoJCW5hbWUgPSBuYW1lLnJlcGxhY2UoIHJ1cHBlciwgIi0kMSIgKS50b0xvd2VyQ2FzZSgpOwoKCQlpZiAoICEoZGVmYXVsdFZpZXcgPSBlbGVtLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcpICkgewoJCQlyZXR1cm4gdW5kZWZpbmVkOwoJCX0KCgkJaWYgKCAoY29tcHV0ZWRTdHlsZSA9IGRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoIGVsZW0sIG51bGwgKSkgKSB7CgkJCXJldCA9IGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSggbmFtZSApOwoJCQlpZiAoIHJldCA9PT0gIiIgJiYgIWpRdWVyeS5jb250YWlucyggZWxlbS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgZWxlbSApICkgewoJCQkJcmV0ID0galF1ZXJ5LnN0eWxlKCBlbGVtLCBuYW1lICk7CgkJCX0KCQl9CgoJCXJldHVybiByZXQ7Cgl9Owp9CgppZiAoIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jdXJyZW50U3R5bGUgKSB7CgljdXJyZW50U3R5bGUgPSBmdW5jdGlvbiggZWxlbSwgbmFtZSApIHsKCQl2YXIgbGVmdCwKCQkJcmV0ID0gZWxlbS5jdXJyZW50U3R5bGUgJiYgZWxlbS5jdXJyZW50U3R5bGVbIG5hbWUgXSwKCQkJcnNMZWZ0ID0gZWxlbS5ydW50aW1lU3R5bGUgJiYgZWxlbS5ydW50aW1lU3R5bGVbIG5hbWUgXSwKCQkJc3R5bGUgPSBlbGVtLnN0eWxlOwoKCQkvLyBGcm9tIHRoZSBhd2Vzb21lIGhhY2sgYnkgRGVhbiBFZHdhcmRzCgkJLy8gaHR0cDovL2VyaWsuZWFlLm5ldC9hcmNoaXZlcy8yMDA3LzA3LzI3LzE4LjU0LjE1LyNjb21tZW50LTEwMjI5MQoKCQkvLyBJZiB3ZSdyZSBub3QgZGVhbGluZyB3aXRoIGEgcmVndWxhciBwaXhlbCBudW1iZXIKCQkvLyBidXQgYSBudW1iZXIgdGhhdCBoYXMgYSB3ZWlyZCBlbmRpbmcsIHdlIG5lZWQgdG8gY29udmVydCBpdCB0byBwaXhlbHMKCQlpZiAoICFybnVtcHgudGVzdCggcmV0ICkgJiYgcm51bS50ZXN0KCByZXQgKSApIHsKCQkJLy8gUmVtZW1iZXIgdGhlIG9yaWdpbmFsIHZhbHVlcwoJCQlsZWZ0ID0gc3R5bGUubGVmdDsKCgkJCS8vIFB1dCBpbiB0aGUgbmV3IHZhbHVlcyB0byBnZXQgYSBjb21wdXRlZCB2YWx1ZSBvdXQKCQkJaWYgKCByc0xlZnQgKSB7CgkJCQllbGVtLnJ1bnRpbWVTdHlsZS5sZWZ0ID0gZWxlbS5jdXJyZW50U3R5bGUubGVmdDsKCQkJfQoJCQlzdHlsZS5sZWZ0ID0gbmFtZSA9PT0gImZvbnRTaXplIiA/ICIxZW0iIDogKHJldCB8fCAwKTsKCQkJcmV0ID0gc3R5bGUucGl4ZWxMZWZ0ICsgInB4IjsKCgkJCS8vIFJldmVydCB0aGUgY2hhbmdlZCB2YWx1ZXMKCQkJc3R5bGUubGVmdCA9IGxlZnQ7CgkJCWlmICggcnNMZWZ0ICkgewoJCQkJZWxlbS5ydW50aW1lU3R5bGUubGVmdCA9IHJzTGVmdDsKCQkJfQoJCX0KCgkJcmV0dXJuIHJldCA9PT0gIiIgPyAiYXV0byIgOiByZXQ7Cgl9Owp9CgpjdXJDU1MgPSBnZXRDb21wdXRlZFN0eWxlIHx8IGN1cnJlbnRTdHlsZTsKCmZ1bmN0aW9uIGdldFdIKCBlbGVtLCBuYW1lLCBleHRyYSApIHsKCXZhciB3aGljaCA9IG5hbWUgPT09ICJ3aWR0aCIgPyBjc3NXaWR0aCA6IGNzc0hlaWdodCwKCQl2YWwgPSBuYW1lID09PSAid2lkdGgiID8gZWxlbS5vZmZzZXRXaWR0aCA6IGVsZW0ub2Zmc2V0SGVpZ2h0OwoKCWlmICggZXh0cmEgPT09ICJib3JkZXIiICkgewoJCXJldHVybiB2YWw7Cgl9CgoJalF1ZXJ5LmVhY2goIHdoaWNoLCBmdW5jdGlvbigpIHsKCQlpZiAoICFleHRyYSApIHsKCQkJdmFsIC09IHBhcnNlRmxvYXQoalF1ZXJ5LmNzcyggZWxlbSwgInBhZGRpbmciICsgdGhpcyApKSB8fCAwOwoJCX0KCgkJaWYgKCBleHRyYSA9PT0gIm1hcmdpbiIgKSB7CgkJCXZhbCArPSBwYXJzZUZsb2F0KGpRdWVyeS5jc3MoIGVsZW0sICJtYXJnaW4iICsgdGhpcyApKSB8fCAwOwoKCQl9IGVsc2UgewoJCQl2YWwgLT0gcGFyc2VGbG9hdChqUXVlcnkuY3NzKCBlbGVtLCAiYm9yZGVyIiArIHRoaXMgKyAiV2lkdGgiICkpIHx8IDA7CgkJfQoJfSk7CgoJcmV0dXJuIHZhbDsKfQoKaWYgKCBqUXVlcnkuZXhwciAmJiBqUXVlcnkuZXhwci5maWx0ZXJzICkgewoJalF1ZXJ5LmV4cHIuZmlsdGVycy5oaWRkZW4gPSBmdW5jdGlvbiggZWxlbSApIHsKCQl2YXIgd2lkdGggPSBlbGVtLm9mZnNldFdpZHRoLAoJCQloZWlnaHQgPSBlbGVtLm9mZnNldEhlaWdodDsKCgkJcmV0dXJuICh3aWR0aCA9PT0gMCAmJiBoZWlnaHQgPT09IDApIHx8ICghalF1ZXJ5LnN1cHBvcnQucmVsaWFibGVIaWRkZW5PZmZzZXRzICYmIChlbGVtLnN0eWxlLmRpc3BsYXkgfHwgalF1ZXJ5LmNzcyggZWxlbSwgImRpc3BsYXkiICkpID09PSAibm9uZSIpOwoJfTsKCglqUXVlcnkuZXhwci5maWx0ZXJzLnZpc2libGUgPSBmdW5jdGlvbiggZWxlbSApIHsKCQlyZXR1cm4gIWpRdWVyeS5leHByLmZpbHRlcnMuaGlkZGVuKCBlbGVtICk7Cgl9Owp9CgoKCgp2YXIgcjIwID0gLyUyMC9nLAoJcmJyYWNrZXQgPSAvXFtcXSQvLAoJckNSTEYgPSAvXHI/XG4vZywKCXJoYXNoID0gLyMuKiQvLAoJcmhlYWRlcnMgPSAvXiguKj8pOlsgXHRdKihbXlxyXG5dKilccj8kL21nLCAvLyBJRSBsZWF2ZXMgYW4gXHIgY2hhcmFjdGVyIGF0IEVPTAoJcmlucHV0ID0gL14oPzpjb2xvcnxkYXRlfGRhdGV0aW1lfGVtYWlsfGhpZGRlbnxtb250aHxudW1iZXJ8cGFzc3dvcmR8cmFuZ2V8c2VhcmNofHRlbHx0ZXh0fHRpbWV8dXJsfHdlZWspJC9pLAoJLy8gIzc2NTMsICM4MTI1LCAjODE1MjogbG9jYWwgcHJvdG9jb2wgZGV0ZWN0aW9uCglybG9jYWxQcm90b2NvbCA9IC8oPzpeZmlsZXxed2lkZ2V0fFwtZXh0ZW5zaW9uKTokLywKCXJub0NvbnRlbnQgPSAvXig/OkdFVHxIRUFEKSQvLAoJcnByb3RvY29sID0gL15cL1wvLywKCXJxdWVyeSA9IC9cPy8sCglyc2NyaXB0ID0gLzxzY3JpcHRcYltePF0qKD86KD8hPFwvc2NyaXB0Pik8W148XSopKjxcL3NjcmlwdD4vZ2ksCglyc2VsZWN0VGV4dGFyZWEgPSAvXig/OnNlbGVjdHx0ZXh0YXJlYSkvaSwKCXJzcGFjZXNBamF4ID0gL1xzKy8sCglydHMgPSAvKFs/Jl0pXz1bXiZdKi8sCglydWNIZWFkZXJzID0gLyhefFwtKShbYS16XSkvZywKCXJ1Y0hlYWRlcnNGdW5jID0gZnVuY3Rpb24oIF8sICQxLCAkMiApIHsKCQlyZXR1cm4gJDEgKyAkMi50b1VwcGVyQ2FzZSgpOwoJfSwKCXJ1cmwgPSAvXihbXHdcK1wuXC1dKzopXC9cLyhbXlwvPyM6XSopKD86OihcZCspKT8vLAoKCS8vIEtlZXAgYSBjb3B5IG9mIHRoZSBvbGQgbG9hZCBtZXRob2QKCV9sb2FkID0galF1ZXJ5LmZuLmxvYWQsCgoJLyogUHJlZmlsdGVycwoJICogMSkgVGhleSBhcmUgdXNlZnVsIHRvIGludHJvZHVjZSBjdXN0b20gZGF0YVR5cGVzIChzZWUgYWpheC9qc29ucC5qcyBmb3IgYW4gZXhhbXBsZSkKCSAqIDIpIFRoZXNlIGFyZSBjYWxsZWQ6CgkgKiAgICAtIEJFRk9SRSBhc2tpbmcgZm9yIGEgdHJhbnNwb3J0CgkgKiAgICAtIEFGVEVSIHBhcmFtIHNlcmlhbGl6YXRpb24gKHMuZGF0YSBpcyBhIHN0cmluZyBpZiBzLnByb2Nlc3NEYXRhIGlzIHRydWUpCgkgKiAzKSBrZXkgaXMgdGhlIGRhdGFUeXBlCgkgKiA0KSB0aGUgY2F0Y2hhbGwgc3ltYm9sICIqIiBjYW4gYmUgdXNlZAoJICogNSkgZXhlY3V0aW9uIHdpbGwgc3RhcnQgd2l0aCB0cmFuc3BvcnQgZGF0YVR5cGUgYW5kIFRIRU4gY29udGludWUgZG93biB0byAiKiIgaWYgbmVlZGVkCgkgKi8KCXByZWZpbHRlcnMgPSB7fSwKCgkvKiBUcmFuc3BvcnRzIGJpbmRpbmdzCgkgKiAxKSBrZXkgaXMgdGhlIGRhdGFUeXBlCgkgKiAyKSB0aGUgY2F0Y2hhbGwgc3ltYm9sICIqIiBjYW4gYmUgdXNlZAoJICogMykgc2VsZWN0aW9uIHdpbGwgc3RhcnQgd2l0aCB0cmFuc3BvcnQgZGF0YVR5cGUgYW5kIFRIRU4gZ28gdG8gIioiIGlmIG5lZWRlZAoJICovCgl0cmFuc3BvcnRzID0ge30sCgoJLy8gRG9jdW1lbnQgbG9jYXRpb24KCWFqYXhMb2NhdGlvbiwKCgkvLyBEb2N1bWVudCBsb2NhdGlvbiBzZWdtZW50cwoJYWpheExvY1BhcnRzOwoKLy8gIzgxMzgsIElFIG1heSB0aHJvdyBhbiBleGNlcHRpb24gd2hlbiBhY2Nlc3NpbmcKLy8gYSBmaWVsZCBmcm9tIGRvY3VtZW50LmxvY2F0aW9uIGlmIGRvY3VtZW50LmRvbWFpbiBoYXMgYmVlbiBzZXQKdHJ5IHsKCWFqYXhMb2NhdGlvbiA9IGRvY3VtZW50LmxvY2F0aW9uLmhyZWY7Cn0gY2F0Y2goIGUgKSB7CgkvLyBVc2UgdGhlIGhyZWYgYXR0cmlidXRlIG9mIGFuIEEgZWxlbWVudAoJLy8gc2luY2UgSUUgd2lsbCBtb2RpZnkgaXQgZ2l2ZW4gZG9jdW1lbnQubG9jYXRpb24KCWFqYXhMb2NhdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICJhIiApOwoJYWpheExvY2F0aW9uLmhyZWYgPSAiIjsKCWFqYXhMb2NhdGlvbiA9IGFqYXhMb2NhdGlvbi5ocmVmOwp9CgovLyBTZWdtZW50IGxvY2F0aW9uIGludG8gcGFydHMKYWpheExvY1BhcnRzID0gcnVybC5leGVjKCBhamF4TG9jYXRpb24udG9Mb3dlckNhc2UoKSApOwoKLy8gQmFzZSAiY29uc3RydWN0b3IiIGZvciBqUXVlcnkuYWpheFByZWZpbHRlciBhbmQgalF1ZXJ5LmFqYXhUcmFuc3BvcnQKZnVuY3Rpb24gYWRkVG9QcmVmaWx0ZXJzT3JUcmFuc3BvcnRzKCBzdHJ1Y3R1cmUgKSB7CgoJLy8gZGF0YVR5cGVFeHByZXNzaW9uIGlzIG9wdGlvbmFsIGFuZCBkZWZhdWx0cyB0byAiKiIKCXJldHVybiBmdW5jdGlvbiggZGF0YVR5cGVFeHByZXNzaW9uLCBmdW5jICkgewoKCQlpZiAoIHR5cGVvZiBkYXRhVHlwZUV4cHJlc3Npb24gIT09ICJzdHJpbmciICkgewoJCQlmdW5jID0gZGF0YVR5cGVFeHByZXNzaW9uOwoJCQlkYXRhVHlwZUV4cHJlc3Npb24gPSAiKiI7CgkJfQoKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCBmdW5jICkgKSB7CgkJCXZhciBkYXRhVHlwZXMgPSBkYXRhVHlwZUV4cHJlc3Npb24udG9Mb3dlckNhc2UoKS5zcGxpdCggcnNwYWNlc0FqYXggKSwKCQkJCWkgPSAwLAoJCQkJbGVuZ3RoID0gZGF0YVR5cGVzLmxlbmd0aCwKCQkJCWRhdGFUeXBlLAoJCQkJbGlzdCwKCQkJCXBsYWNlQmVmb3JlOwoKCQkJLy8gRm9yIGVhY2ggZGF0YVR5cGUgaW4gdGhlIGRhdGFUeXBlRXhwcmVzc2lvbgoJCQlmb3IoOyBpIDwgbGVuZ3RoOyBpKysgKSB7CgkJCQlkYXRhVHlwZSA9IGRhdGFUeXBlc1sgaSBdOwoJCQkJLy8gV2UgY29udHJvbCBpZiB3ZSdyZSBhc2tlZCB0byBhZGQgYmVmb3JlCgkJCQkvLyBhbnkgZXhpc3RpbmcgZWxlbWVudAoJCQkJcGxhY2VCZWZvcmUgPSAvXlwrLy50ZXN0KCBkYXRhVHlwZSApOwoJCQkJaWYgKCBwbGFjZUJlZm9yZSApIHsKCQkJCQlkYXRhVHlwZSA9IGRhdGFUeXBlLnN1YnN0ciggMSApIHx8ICIqIjsKCQkJCX0KCQkJCWxpc3QgPSBzdHJ1Y3R1cmVbIGRhdGFUeXBlIF0gPSBzdHJ1Y3R1cmVbIGRhdGFUeXBlIF0gfHwgW107CgkJCQkvLyB0aGVuIHdlIGFkZCB0byB0aGUgc3RydWN0dXJlIGFjY29yZGluZ2x5CgkJCQlsaXN0WyBwbGFjZUJlZm9yZSA/ICJ1bnNoaWZ0IiA6ICJwdXNoIiBdKCBmdW5jICk7CgkJCX0KCQl9Cgl9Owp9CgovL0Jhc2UgaW5zcGVjdGlvbiBmdW5jdGlvbiBmb3IgcHJlZmlsdGVycyBhbmQgdHJhbnNwb3J0cwpmdW5jdGlvbiBpbnNwZWN0UHJlZmlsdGVyc09yVHJhbnNwb3J0cyggc3RydWN0dXJlLCBvcHRpb25zLCBvcmlnaW5hbE9wdGlvbnMsIGpxWEhSLAoJCWRhdGFUeXBlIC8qIGludGVybmFsICovLCBpbnNwZWN0ZWQgLyogaW50ZXJuYWwgKi8gKSB7CgoJZGF0YVR5cGUgPSBkYXRhVHlwZSB8fCBvcHRpb25zLmRhdGFUeXBlc1sgMCBdOwoJaW5zcGVjdGVkID0gaW5zcGVjdGVkIHx8IHt9OwoKCWluc3BlY3RlZFsgZGF0YVR5cGUgXSA9IHRydWU7CgoJdmFyIGxpc3QgPSBzdHJ1Y3R1cmVbIGRhdGFUeXBlIF0sCgkJaSA9IDAsCgkJbGVuZ3RoID0gbGlzdCA/IGxpc3QubGVuZ3RoIDogMCwKCQlleGVjdXRlT25seSA9ICggc3RydWN0dXJlID09PSBwcmVmaWx0ZXJzICksCgkJc2VsZWN0aW9uOwoKCWZvcig7IGkgPCBsZW5ndGggJiYgKCBleGVjdXRlT25seSB8fCAhc2VsZWN0aW9uICk7IGkrKyApIHsKCQlzZWxlY3Rpb24gPSBsaXN0WyBpIF0oIG9wdGlvbnMsIG9yaWdpbmFsT3B0aW9ucywganFYSFIgKTsKCQkvLyBJZiB3ZSBnb3QgcmVkaXJlY3RlZCB0byBhbm90aGVyIGRhdGFUeXBlCgkJLy8gd2UgdHJ5IHRoZXJlIGlmIGV4ZWN1dGluZyBvbmx5IGFuZCBub3QgZG9uZSBhbHJlYWR5CgkJaWYgKCB0eXBlb2Ygc2VsZWN0aW9uID09PSAic3RyaW5nIiApIHsKCQkJaWYgKCAhZXhlY3V0ZU9ubHkgfHwgaW5zcGVjdGVkWyBzZWxlY3Rpb24gXSApIHsKCQkJCXNlbGVjdGlvbiA9IHVuZGVmaW5lZDsKCQkJfSBlbHNlIHsKCQkJCW9wdGlvbnMuZGF0YVR5cGVzLnVuc2hpZnQoIHNlbGVjdGlvbiApOwoJCQkJc2VsZWN0aW9uID0gaW5zcGVjdFByZWZpbHRlcnNPclRyYW5zcG9ydHMoCgkJCQkJCXN0cnVjdHVyZSwgb3B0aW9ucywgb3JpZ2luYWxPcHRpb25zLCBqcVhIUiwgc2VsZWN0aW9uLCBpbnNwZWN0ZWQgKTsKCQkJfQoJCX0KCX0KCS8vIElmIHdlJ3JlIG9ubHkgZXhlY3V0aW5nIG9yIG5vdGhpbmcgd2FzIHNlbGVjdGVkCgkvLyB3ZSB0cnkgdGhlIGNhdGNoYWxsIGRhdGFUeXBlIGlmIG5vdCBkb25lIGFscmVhZHkKCWlmICggKCBleGVjdXRlT25seSB8fCAhc2VsZWN0aW9uICkgJiYgIWluc3BlY3RlZFsgIioiIF0gKSB7CgkJc2VsZWN0aW9uID0gaW5zcGVjdFByZWZpbHRlcnNPclRyYW5zcG9ydHMoCgkJCQlzdHJ1Y3R1cmUsIG9wdGlvbnMsIG9yaWdpbmFsT3B0aW9ucywganFYSFIsICIqIiwgaW5zcGVjdGVkICk7Cgl9CgkvLyB1bm5lY2Vzc2FyeSB3aGVuIG9ubHkgZXhlY3V0aW5nIChwcmVmaWx0ZXJzKQoJLy8gYnV0IGl0J2xsIGJlIGlnbm9yZWQgYnkgdGhlIGNhbGxlciBpbiB0aGF0IGNhc2UKCXJldHVybiBzZWxlY3Rpb247Cn0KCmpRdWVyeS5mbi5leHRlbmQoewoJbG9hZDogZnVuY3Rpb24oIHVybCwgcGFyYW1zLCBjYWxsYmFjayApIHsKCQlpZiAoIHR5cGVvZiB1cmwgIT09ICJzdHJpbmciICYmIF9sb2FkICkgewoJCQlyZXR1cm4gX2xvYWQuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApOwoKCQkvLyBEb24ndCBkbyBhIHJlcXVlc3QgaWYgbm8gZWxlbWVudHMgYXJlIGJlaW5nIHJlcXVlc3RlZAoJCX0gZWxzZSBpZiAoICF0aGlzLmxlbmd0aCApIHsKCQkJcmV0dXJuIHRoaXM7CgkJfQoKCQl2YXIgb2ZmID0gdXJsLmluZGV4T2YoICIgIiApOwoJCWlmICggb2ZmID49IDAgKSB7CgkJCXZhciBzZWxlY3RvciA9IHVybC5zbGljZSggb2ZmLCB1cmwubGVuZ3RoICk7CgkJCXVybCA9IHVybC5zbGljZSggMCwgb2ZmICk7CgkJfQoKCQkvLyBEZWZhdWx0IHRvIGEgR0VUIHJlcXVlc3QKCQl2YXIgdHlwZSA9ICJHRVQiOwoKCQkvLyBJZiB0aGUgc2Vjb25kIHBhcmFtZXRlciB3YXMgcHJvdmlkZWQKCQlpZiAoIHBhcmFtcyApIHsKCQkJLy8gSWYgaXQncyBhIGZ1bmN0aW9uCgkJCWlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHBhcmFtcyApICkgewoJCQkJLy8gV2UgYXNzdW1lIHRoYXQgaXQncyB0aGUgY2FsbGJhY2sKCQkJCWNhbGxiYWNrID0gcGFyYW1zOwoJCQkJcGFyYW1zID0gdW5kZWZpbmVkOwoKCQkJLy8gT3RoZXJ3aXNlLCBidWlsZCBhIHBhcmFtIHN0cmluZwoJCQl9IGVsc2UgaWYgKCB0eXBlb2YgcGFyYW1zID09PSAib2JqZWN0IiApIHsKCQkJCXBhcmFtcyA9IGpRdWVyeS5wYXJhbSggcGFyYW1zLCBqUXVlcnkuYWpheFNldHRpbmdzLnRyYWRpdGlvbmFsICk7CgkJCQl0eXBlID0gIlBPU1QiOwoJCQl9CgkJfQoKCQl2YXIgc2VsZiA9IHRoaXM7CgoJCS8vIFJlcXVlc3QgdGhlIHJlbW90ZSBkb2N1bWVudAoJCWpRdWVyeS5hamF4KHsKCQkJdXJsOiB1cmwsCgkJCXR5cGU6IHR5cGUsCgkJCWRhdGFUeXBlOiAiaHRtbCIsCgkJCWRhdGE6IHBhcmFtcywKCQkJLy8gQ29tcGxldGUgY2FsbGJhY2sgKHJlc3BvbnNlVGV4dCBpcyB1c2VkIGludGVybmFsbHkpCgkJCWNvbXBsZXRlOiBmdW5jdGlvbigganFYSFIsIHN0YXR1cywgcmVzcG9uc2VUZXh0ICkgewoJCQkJLy8gU3RvcmUgdGhlIHJlc3BvbnNlIGFzIHNwZWNpZmllZCBieSB0aGUganFYSFIgb2JqZWN0CgkJCQlyZXNwb25zZVRleHQgPSBqcVhIUi5yZXNwb25zZVRleHQ7CgkJCQkvLyBJZiBzdWNjZXNzZnVsLCBpbmplY3QgdGhlIEhUTUwgaW50byBhbGwgdGhlIG1hdGNoZWQgZWxlbWVudHMKCQkJCWlmICgganFYSFIuaXNSZXNvbHZlZCgpICkgewoJCQkJCS8vICM0ODI1OiBHZXQgdGhlIGFjdHVhbCByZXNwb25zZSBpbiBjYXNlCgkJCQkJLy8gYSBkYXRhRmlsdGVyIGlzIHByZXNlbnQgaW4gYWpheFNldHRpbmdzCgkJCQkJanFYSFIuZG9uZShmdW5jdGlvbiggciApIHsKCQkJCQkJcmVzcG9uc2VUZXh0ID0gcjsKCQkJCQl9KTsKCQkJCQkvLyBTZWUgaWYgYSBzZWxlY3RvciB3YXMgc3BlY2lmaWVkCgkJCQkJc2VsZi5odG1sKCBzZWxlY3RvciA/CgkJCQkJCS8vIENyZWF0ZSBhIGR1bW15IGRpdiB0byBob2xkIHRoZSByZXN1bHRzCgkJCQkJCWpRdWVyeSgiPGRpdj4iKQoJCQkJCQkJLy8gaW5qZWN0IHRoZSBjb250ZW50cyBvZiB0aGUgZG9jdW1lbnQgaW4sIHJlbW92aW5nIHRoZSBzY3JpcHRzCgkJCQkJCQkvLyB0byBhdm9pZCBhbnkgJ1Blcm1pc3Npb24gRGVuaWVkJyBlcnJvcnMgaW4gSUUKCQkJCQkJCS5hcHBlbmQocmVzcG9uc2VUZXh0LnJlcGxhY2UocnNjcmlwdCwgIiIpKQoKCQkJCQkJCS8vIExvY2F0ZSB0aGUgc3BlY2lmaWVkIGVsZW1lbnRzCgkJCQkJCQkuZmluZChzZWxlY3RvcikgOgoKCQkJCQkJLy8gSWYgbm90LCBqdXN0IGluamVjdCB0aGUgZnVsbCByZXN1bHQKCQkJCQkJcmVzcG9uc2VUZXh0ICk7CgkJCQl9CgoJCQkJaWYgKCBjYWxsYmFjayApIHsKCQkJCQlzZWxmLmVhY2goIGNhbGxiYWNrLCBbIHJlc3BvbnNlVGV4dCwgc3RhdHVzLCBqcVhIUiBdICk7CgkJCQl9CgkJCX0KCQl9KTsKCgkJcmV0dXJuIHRoaXM7Cgl9LAoKCXNlcmlhbGl6ZTogZnVuY3Rpb24oKSB7CgkJcmV0dXJuIGpRdWVyeS5wYXJhbSggdGhpcy5zZXJpYWxpemVBcnJheSgpICk7Cgl9LAoKCXNlcmlhbGl6ZUFycmF5OiBmdW5jdGlvbigpIHsKCQlyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXsKCQkJcmV0dXJuIHRoaXMuZWxlbWVudHMgPyBqUXVlcnkubWFrZUFycmF5KCB0aGlzLmVsZW1lbnRzICkgOiB0aGlzOwoJCX0pCgkJLmZpbHRlcihmdW5jdGlvbigpewoJCQlyZXR1cm4gdGhpcy5uYW1lICYmICF0aGlzLmRpc2FibGVkICYmCgkJCQkoIHRoaXMuY2hlY2tlZCB8fCByc2VsZWN0VGV4dGFyZWEudGVzdCggdGhpcy5ub2RlTmFtZSApIHx8CgkJCQkJcmlucHV0LnRlc3QoIHRoaXMudHlwZSApICk7CgkJfSkKCQkubWFwKGZ1bmN0aW9uKCBpLCBlbGVtICl7CgkJCXZhciB2YWwgPSBqUXVlcnkoIHRoaXMgKS52YWwoKTsKCgkJCXJldHVybiB2YWwgPT0gbnVsbCA/CgkJCQludWxsIDoKCQkJCWpRdWVyeS5pc0FycmF5KCB2YWwgKSA/CgkJCQkJalF1ZXJ5Lm1hcCggdmFsLCBmdW5jdGlvbiggdmFsLCBpICl7CgkJCQkJCXJldHVybiB7IG5hbWU6IGVsZW0ubmFtZSwgdmFsdWU6IHZhbC5yZXBsYWNlKCByQ1JMRiwgIlxyXG4iICkgfTsKCQkJCQl9KSA6CgkJCQkJeyBuYW1lOiBlbGVtLm5hbWUsIHZhbHVlOiB2YWwucmVwbGFjZSggckNSTEYsICJcclxuIiApIH07CgkJfSkuZ2V0KCk7Cgl9Cn0pOwoKLy8gQXR0YWNoIGEgYnVuY2ggb2YgZnVuY3Rpb25zIGZvciBoYW5kbGluZyBjb21tb24gQUpBWCBldmVudHMKalF1ZXJ5LmVhY2goICJhamF4U3RhcnQgYWpheFN0b3AgYWpheENvbXBsZXRlIGFqYXhFcnJvciBhamF4U3VjY2VzcyBhamF4U2VuZCIuc3BsaXQoICIgIiApLCBmdW5jdGlvbiggaSwgbyApewoJalF1ZXJ5LmZuWyBvIF0gPSBmdW5jdGlvbiggZiApewoJCXJldHVybiB0aGlzLmJpbmQoIG8sIGYgKTsKCX07Cn0gKTsKCmpRdWVyeS5lYWNoKCBbICJnZXQiLCAicG9zdCIgXSwgZnVuY3Rpb24oIGksIG1ldGhvZCApIHsKCWpRdWVyeVsgbWV0aG9kIF0gPSBmdW5jdGlvbiggdXJsLCBkYXRhLCBjYWxsYmFjaywgdHlwZSApIHsKCQkvLyBzaGlmdCBhcmd1bWVudHMgaWYgZGF0YSBhcmd1bWVudCB3YXMgb21pdHRlZAoJCWlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIGRhdGEgKSApIHsKCQkJdHlwZSA9IHR5cGUgfHwgY2FsbGJhY2s7CgkJCWNhbGxiYWNrID0gZGF0YTsKCQkJZGF0YSA9IHVuZGVmaW5lZDsKCQl9CgoJCXJldHVybiBqUXVlcnkuYWpheCh7CgkJCXR5cGU6IG1ldGhvZCwKCQkJdXJsOiB1cmwsCgkJCWRhdGE6IGRhdGEsCgkJCXN1Y2Nlc3M6IGNhbGxiYWNrLAoJCQlkYXRhVHlwZTogdHlwZQoJCX0pOwoJfTsKfSApOwoKalF1ZXJ5LmV4dGVuZCh7CgoJZ2V0U2NyaXB0OiBmdW5jdGlvbiggdXJsLCBjYWxsYmFjayApIHsKCQlyZXR1cm4galF1ZXJ5LmdldCggdXJsLCB1bmRlZmluZWQsIGNhbGxiYWNrLCAic2NyaXB0IiApOwoJfSwKCglnZXRKU09OOiBmdW5jdGlvbiggdXJsLCBkYXRhLCBjYWxsYmFjayApIHsKCQlyZXR1cm4galF1ZXJ5LmdldCggdXJsLCBkYXRhLCBjYWxsYmFjaywgImpzb24iICk7Cgl9LAoKCS8vIENyZWF0ZXMgYSBmdWxsIGZsZWRnZWQgc2V0dGluZ3Mgb2JqZWN0IGludG8gdGFyZ2V0CgkvLyB3aXRoIGJvdGggYWpheFNldHRpbmdzIGFuZCBzZXR0aW5ncyBmaWVsZHMuCgkvLyBJZiB0YXJnZXQgaXMgb21pdHRlZCwgd3JpdGVzIGludG8gYWpheFNldHRpbmdzLgoJYWpheFNldHVwOiBmdW5jdGlvbiAoIHRhcmdldCwgc2V0dGluZ3MgKSB7CgkJaWYgKCAhc2V0dGluZ3MgKSB7CgkJCS8vIE9ubHkgb25lIHBhcmFtZXRlciwgd2UgZXh0ZW5kIGFqYXhTZXR0aW5ncwoJCQlzZXR0aW5ncyA9IHRhcmdldDsKCQkJdGFyZ2V0ID0galF1ZXJ5LmV4dGVuZCggdHJ1ZSwgalF1ZXJ5LmFqYXhTZXR0aW5ncywgc2V0dGluZ3MgKTsKCQl9IGVsc2UgewoJCQkvLyB0YXJnZXQgd2FzIHByb3ZpZGVkLCB3ZSBleHRlbmQgaW50byBpdAoJCQlqUXVlcnkuZXh0ZW5kKCB0cnVlLCB0YXJnZXQsIGpRdWVyeS5hamF4U2V0dGluZ3MsIHNldHRpbmdzICk7CgkJfQoJCS8vIEZsYXR0ZW4gZmllbGRzIHdlIGRvbid0IHdhbnQgZGVlcCBleHRlbmRlZAoJCWZvciggdmFyIGZpZWxkIGluIHsgY29udGV4dDogMSwgdXJsOiAxIH0gKSB7CgkJCWlmICggZmllbGQgaW4gc2V0dGluZ3MgKSB7CgkJCQl0YXJnZXRbIGZpZWxkIF0gPSBzZXR0aW5nc1sgZmllbGQgXTsKCQkJfSBlbHNlIGlmKCBmaWVsZCBpbiBqUXVlcnkuYWpheFNldHRpbmdzICkgewoJCQkJdGFyZ2V0WyBmaWVsZCBdID0galF1ZXJ5LmFqYXhTZXR0aW5nc1sgZmllbGQgXTsKCQkJfQoJCX0KCQlyZXR1cm4gdGFyZ2V0OwoJfSwKCglhamF4U2V0dGluZ3M6IHsKCQl1cmw6IGFqYXhMb2NhdGlvbiwKCQlpc0xvY2FsOiBybG9jYWxQcm90b2NvbC50ZXN0KCBhamF4TG9jUGFydHNbIDEgXSApLAoJCWdsb2JhbDogdHJ1ZSwKCQl0eXBlOiAiR0VUIiwKCQljb250ZW50VHlwZTogImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIsCgkJcHJvY2Vzc0RhdGE6IHRydWUsCgkJYXN5bmM6IHRydWUsCgkJLyoKCQl0aW1lb3V0OiAwLAoJCWRhdGE6IG51bGwsCgkJZGF0YVR5cGU6IG51bGwsCgkJdXNlcm5hbWU6IG51bGwsCgkJcGFzc3dvcmQ6IG51bGwsCgkJY2FjaGU6IG51bGwsCgkJdHJhZGl0aW9uYWw6IGZhbHNlLAoJCWhlYWRlcnM6IHt9LAoJCWNyb3NzRG9tYWluOiBudWxsLAoJCSovCgoJCWFjY2VwdHM6IHsKCQkJeG1sOiAiYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbCIsCgkJCWh0bWw6ICJ0ZXh0L2h0bWwiLAoJCQl0ZXh0OiAidGV4dC9wbGFpbiIsCgkJCWpzb246ICJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L2phdmFzY3JpcHQiLAoJCQkiKiI6ICIqLyoiCgkJfSwKCgkJY29udGVudHM6IHsKCQkJeG1sOiAveG1sLywKCQkJaHRtbDogL2h0bWwvLAoJCQlqc29uOiAvanNvbi8KCQl9LAoKCQlyZXNwb25zZUZpZWxkczogewoJCQl4bWw6ICJyZXNwb25zZVhNTCIsCgkJCXRleHQ6ICJyZXNwb25zZVRleHQiCgkJfSwKCgkJLy8gTGlzdCBvZiBkYXRhIGNvbnZlcnRlcnMKCQkvLyAxKSBrZXkgZm9ybWF0IGlzICJzb3VyY2VfdHlwZSBkZXN0aW5hdGlvbl90eXBlIiAoYSBzaW5nbGUgc3BhY2UgaW4tYmV0d2VlbikKCQkvLyAyKSB0aGUgY2F0Y2hhbGwgc3ltYm9sICIqIiBjYW4gYmUgdXNlZCBmb3Igc291cmNlX3R5cGUKCQljb252ZXJ0ZXJzOiB7CgoJCQkvLyBDb252ZXJ0IGFueXRoaW5nIHRvIHRleHQKCQkJIiogdGV4dCI6IHdpbmRvdy5TdHJpbmcsCgoJCQkvLyBUZXh0IHRvIGh0bWwgKHRydWUgPSBubyB0cmFuc2Zvcm1hdGlvbikKCQkJInRleHQgaHRtbCI6IHRydWUsCgoJCQkvLyBFdmFsdWF0ZSB0ZXh0IGFzIGEganNvbiBleHByZXNzaW9uCgkJCSJ0ZXh0IGpzb24iOiBqUXVlcnkucGFyc2VKU09OLAoKCQkJLy8gUGFyc2UgdGV4dCBhcyB4bWwKCQkJInRleHQgeG1sIjogalF1ZXJ5LnBhcnNlWE1MCgkJfQoJfSwKCglhamF4UHJlZmlsdGVyOiBhZGRUb1ByZWZpbHRlcnNPclRyYW5zcG9ydHMoIHByZWZpbHRlcnMgKSwKCWFqYXhUcmFuc3BvcnQ6IGFkZFRvUHJlZmlsdGVyc09yVHJhbnNwb3J0cyggdHJhbnNwb3J0cyApLAoKCS8vIE1haW4gbWV0aG9kCglhamF4OiBmdW5jdGlvbiggdXJsLCBvcHRpb25zICkgewoKCQkvLyBJZiB1cmwgaXMgYW4gb2JqZWN0LCBzaW11bGF0ZSBwcmUtMS41IHNpZ25hdHVyZQoJCWlmICggdHlwZW9mIHVybCA9PT0gIm9iamVjdCIgKSB7CgkJCW9wdGlvbnMgPSB1cmw7CgkJCXVybCA9IHVuZGVmaW5lZDsKCQl9CgoJCS8vIEZvcmNlIG9wdGlvbnMgdG8gYmUgYW4gb2JqZWN0CgkJb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CgoJCXZhciAvLyBDcmVhdGUgdGhlIGZpbmFsIG9wdGlvbnMgb2JqZWN0CgkJCXMgPSBqUXVlcnkuYWpheFNldHVwKCB7fSwgb3B0aW9ucyApLAoJCQkvLyBDYWxsYmFja3MgY29udGV4dAoJCQljYWxsYmFja0NvbnRleHQgPSBzLmNvbnRleHQgfHwgcywKCQkJLy8gQ29udGV4dCBmb3IgZ2xvYmFsIGV2ZW50cwoJCQkvLyBJdCdzIHRoZSBjYWxsYmFja0NvbnRleHQgaWYgb25lIHdhcyBwcm92aWRlZCBpbiB0aGUgb3B0aW9ucwoJCQkvLyBhbmQgaWYgaXQncyBhIERPTSBub2RlIG9yIGEgalF1ZXJ5IGNvbGxlY3Rpb24KCQkJZ2xvYmFsRXZlbnRDb250ZXh0ID0gY2FsbGJhY2tDb250ZXh0ICE9PSBzICYmCgkJCQkoIGNhbGxiYWNrQ29udGV4dC5ub2RlVHlwZSB8fCBjYWxsYmFja0NvbnRleHQgaW5zdGFuY2VvZiBqUXVlcnkgKSA/CgkJCQkJCWpRdWVyeSggY2FsbGJhY2tDb250ZXh0ICkgOiBqUXVlcnkuZXZlbnQsCgkJCS8vIERlZmVycmVkcwoJCQlkZWZlcnJlZCA9IGpRdWVyeS5EZWZlcnJlZCgpLAoJCQljb21wbGV0ZURlZmVycmVkID0galF1ZXJ5Ll9EZWZlcnJlZCgpLAoJCQkvLyBTdGF0dXMtZGVwZW5kZW50IGNhbGxiYWNrcwoJCQlzdGF0dXNDb2RlID0gcy5zdGF0dXNDb2RlIHx8IHt9LAoJCQkvLyBpZk1vZGlmaWVkIGtleQoJCQlpZk1vZGlmaWVkS2V5LAoJCQkvLyBIZWFkZXJzICh0aGV5IGFyZSBzZW50IGFsbCBhdCBvbmNlKQoJCQlyZXF1ZXN0SGVhZGVycyA9IHt9LAoJCQkvLyBSZXNwb25zZSBoZWFkZXJzCgkJCXJlc3BvbnNlSGVhZGVyc1N0cmluZywKCQkJcmVzcG9uc2VIZWFkZXJzLAoJCQkvLyB0cmFuc3BvcnQKCQkJdHJhbnNwb3J0LAoJCQkvLyB0aW1lb3V0IGhhbmRsZQoJCQl0aW1lb3V0VGltZXIsCgkJCS8vIENyb3NzLWRvbWFpbiBkZXRlY3Rpb24gdmFycwoJCQlwYXJ0cywKCQkJLy8gVGhlIGpxWEhSIHN0YXRlCgkJCXN0YXRlID0gMCwKCQkJLy8gVG8ga25vdyBpZiBnbG9iYWwgZXZlbnRzIGFyZSB0byBiZSBkaXNwYXRjaGVkCgkJCWZpcmVHbG9iYWxzLAoJCQkvLyBMb29wIHZhcmlhYmxlCgkJCWksCgkJCS8vIEZha2UgeGhyCgkJCWpxWEhSID0gewoKCQkJCXJlYWR5U3RhdGU6IDAsCgoJCQkJLy8gQ2FjaGVzIHRoZSBoZWFkZXIKCQkJCXNldFJlcXVlc3RIZWFkZXI6IGZ1bmN0aW9uKCBuYW1lLCB2YWx1ZSApIHsKCQkJCQlpZiAoICFzdGF0ZSApIHsKCQkJCQkJcmVxdWVzdEhlYWRlcnNbIG5hbWUudG9Mb3dlckNhc2UoKS5yZXBsYWNlKCBydWNIZWFkZXJzLCBydWNIZWFkZXJzRnVuYyApIF0gPSB2YWx1ZTsKCQkJCQl9CgkJCQkJcmV0dXJuIHRoaXM7CgkJCQl9LAoKCQkJCS8vIFJhdyBzdHJpbmcKCQkJCWdldEFsbFJlc3BvbnNlSGVhZGVyczogZnVuY3Rpb24oKSB7CgkJCQkJcmV0dXJuIHN0YXRlID09PSAyID8gcmVzcG9uc2VIZWFkZXJzU3RyaW5nIDogbnVsbDsKCQkJCX0sCgoJCQkJLy8gQnVpbGRzIGhlYWRlcnMgaGFzaHRhYmxlIGlmIG5lZWRlZAoJCQkJZ2V0UmVzcG9uc2VIZWFkZXI6IGZ1bmN0aW9uKCBrZXkgKSB7CgkJCQkJdmFyIG1hdGNoOwoJCQkJCWlmICggc3RhdGUgPT09IDIgKSB7CgkJCQkJCWlmICggIXJlc3BvbnNlSGVhZGVycyApIHsKCQkJCQkJCXJlc3BvbnNlSGVhZGVycyA9IHt9OwoJCQkJCQkJd2hpbGUoICggbWF0Y2ggPSByaGVhZGVycy5leGVjKCByZXNwb25zZUhlYWRlcnNTdHJpbmcgKSApICkgewoJCQkJCQkJCXJlc3BvbnNlSGVhZGVyc1sgbWF0Y2hbMV0udG9Mb3dlckNhc2UoKSBdID0gbWF0Y2hbIDIgXTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCQltYXRjaCA9IHJlc3BvbnNlSGVhZGVyc1sga2V5LnRvTG93ZXJDYXNlKCkgXTsKCQkJCQl9CgkJCQkJcmV0dXJuIG1hdGNoID09PSB1bmRlZmluZWQgPyBudWxsIDogbWF0Y2g7CgkJCQl9LAoKCQkJCS8vIE92ZXJyaWRlcyByZXNwb25zZSBjb250ZW50LXR5cGUgaGVhZGVyCgkJCQlvdmVycmlkZU1pbWVUeXBlOiBmdW5jdGlvbiggdHlwZSApIHsKCQkJCQlpZiAoICFzdGF0ZSApIHsKCQkJCQkJcy5taW1lVHlwZSA9IHR5cGU7CgkJCQkJfQoJCQkJCXJldHVybiB0aGlzOwoJCQkJfSwKCgkJCQkvLyBDYW5jZWwgdGhlIHJlcXVlc3QKCQkJCWFib3J0OiBmdW5jdGlvbiggc3RhdHVzVGV4dCApIHsKCQkJCQlzdGF0dXNUZXh0ID0gc3RhdHVzVGV4dCB8fCAiYWJvcnQiOwoJCQkJCWlmICggdHJhbnNwb3J0ICkgewoJCQkJCQl0cmFuc3BvcnQuYWJvcnQoIHN0YXR1c1RleHQgKTsKCQkJCQl9CgkJCQkJZG9uZSggMCwgc3RhdHVzVGV4dCApOwoJCQkJCXJldHVybiB0aGlzOwoJCQkJfQoJCQl9OwoKCQkvLyBDYWxsYmFjayBmb3Igd2hlbiBldmVyeXRoaW5nIGlzIGRvbmUKCQkvLyBJdCBpcyBkZWZpbmVkIGhlcmUgYmVjYXVzZSBqc2xpbnQgY29tcGxhaW5zIGlmIGl0IGlzIGRlY2xhcmVkCgkJLy8gYXQgdGhlIGVuZCBvZiB0aGUgZnVuY3Rpb24gKHdoaWNoIHdvdWxkIGJlIG1vcmUgbG9naWNhbCBhbmQgcmVhZGFibGUpCgkJZnVuY3Rpb24gZG9uZSggc3RhdHVzLCBzdGF0dXNUZXh0LCByZXNwb25zZXMsIGhlYWRlcnMgKSB7CgoJCQkvLyBDYWxsZWQgb25jZQoJCQlpZiAoIHN0YXRlID09PSAyICkgewoJCQkJcmV0dXJuOwoJCQl9CgoJCQkvLyBTdGF0ZSBpcyAiZG9uZSIgbm93CgkJCXN0YXRlID0gMjsKCgkJCS8vIENsZWFyIHRpbWVvdXQgaWYgaXQgZXhpc3RzCgkJCWlmICggdGltZW91dFRpbWVyICkgewoJCQkJY2xlYXJUaW1lb3V0KCB0aW1lb3V0VGltZXIgKTsKCQkJfQoKCQkJLy8gRGVyZWZlcmVuY2UgdHJhbnNwb3J0IGZvciBlYXJseSBnYXJiYWdlIGNvbGxlY3Rpb24KCQkJLy8gKG5vIG1hdHRlciBob3cgbG9uZyB0aGUganFYSFIgb2JqZWN0IHdpbGwgYmUgdXNlZCkKCQkJdHJhbnNwb3J0ID0gdW5kZWZpbmVkOwoKCQkJLy8gQ2FjaGUgcmVzcG9uc2UgaGVhZGVycwoJCQlyZXNwb25zZUhlYWRlcnNTdHJpbmcgPSBoZWFkZXJzIHx8ICIiOwoKCQkJLy8gU2V0IHJlYWR5U3RhdGUKCQkJanFYSFIucmVhZHlTdGF0ZSA9IHN0YXR1cyA/IDQgOiAwOwoKCQkJdmFyIGlzU3VjY2VzcywKCQkJCXN1Y2Nlc3MsCgkJCQllcnJvciwKCQkJCXJlc3BvbnNlID0gcmVzcG9uc2VzID8gYWpheEhhbmRsZVJlc3BvbnNlcyggcywganFYSFIsIHJlc3BvbnNlcyApIDogdW5kZWZpbmVkLAoJCQkJbGFzdE1vZGlmaWVkLAoJCQkJZXRhZzsKCgkJCS8vIElmIHN1Y2Nlc3NmdWwsIGhhbmRsZSB0eXBlIGNoYWluaW5nCgkJCWlmICggc3RhdHVzID49IDIwMCAmJiBzdGF0dXMgPCAzMDAgfHwgc3RhdHVzID09PSAzMDQgKSB7CgoJCQkJLy8gU2V0IHRoZSBJZi1Nb2RpZmllZC1TaW5jZSBhbmQvb3IgSWYtTm9uZS1NYXRjaCBoZWFkZXIsIGlmIGluIGlmTW9kaWZpZWQgbW9kZS4KCQkJCWlmICggcy5pZk1vZGlmaWVkICkgewoKCQkJCQlpZiAoICggbGFzdE1vZGlmaWVkID0ganFYSFIuZ2V0UmVzcG9uc2VIZWFkZXIoICJMYXN0LU1vZGlmaWVkIiApICkgKSB7CgkJCQkJCWpRdWVyeS5sYXN0TW9kaWZpZWRbIGlmTW9kaWZpZWRLZXkgXSA9IGxhc3RNb2RpZmllZDsKCQkJCQl9CgkJCQkJaWYgKCAoIGV0YWcgPSBqcVhIUi5nZXRSZXNwb25zZUhlYWRlciggIkV0YWciICkgKSApIHsKCQkJCQkJalF1ZXJ5LmV0YWdbIGlmTW9kaWZpZWRLZXkgXSA9IGV0YWc7CgkJCQkJfQoJCQkJfQoKCQkJCS8vIElmIG5vdCBtb2RpZmllZAoJCQkJaWYgKCBzdGF0dXMgPT09IDMwNCApIHsKCgkJCQkJc3RhdHVzVGV4dCA9ICJub3Rtb2RpZmllZCI7CgkJCQkJaXNTdWNjZXNzID0gdHJ1ZTsKCgkJCQkvLyBJZiB3ZSBoYXZlIGRhdGEKCQkJCX0gZWxzZSB7CgoJCQkJCXRyeSB7CgkJCQkJCXN1Y2Nlc3MgPSBhamF4Q29udmVydCggcywgcmVzcG9uc2UgKTsKCQkJCQkJc3RhdHVzVGV4dCA9ICJzdWNjZXNzIjsKCQkJCQkJaXNTdWNjZXNzID0gdHJ1ZTsKCQkJCQl9IGNhdGNoKGUpIHsKCQkJCQkJLy8gV2UgaGF2ZSBhIHBhcnNlcmVycm9yCgkJCQkJCXN0YXR1c1RleHQgPSAicGFyc2VyZXJyb3IiOwoJCQkJCQllcnJvciA9IGU7CgkJCQkJfQoJCQkJfQoJCQl9IGVsc2UgewoJCQkJLy8gV2UgZXh0cmFjdCBlcnJvciBmcm9tIHN0YXR1c1RleHQKCQkJCS8vIHRoZW4gbm9ybWFsaXplIHN0YXR1c1RleHQgYW5kIHN0YXR1cyBmb3Igbm9uLWFib3J0cwoJCQkJZXJyb3IgPSBzdGF0dXNUZXh0OwoJCQkJaWYoICFzdGF0dXNUZXh0IHx8IHN0YXR1cyApIHsKCQkJCQlzdGF0dXNUZXh0ID0gImVycm9yIjsKCQkJCQlpZiAoIHN0YXR1cyA8IDAgKSB7CgkJCQkJCXN0YXR1cyA9IDA7CgkJCQkJfQoJCQkJfQoJCQl9CgoJCQkvLyBTZXQgZGF0YSBmb3IgdGhlIGZha2UgeGhyIG9iamVjdAoJCQlqcVhIUi5zdGF0dXMgPSBzdGF0dXM7CgkJCWpxWEhSLnN0YXR1c1RleHQgPSBzdGF0dXNUZXh0OwoKCQkJLy8gU3VjY2Vzcy9FcnJvcgoJCQlpZiAoIGlzU3VjY2VzcyApIHsKCQkJCWRlZmVycmVkLnJlc29sdmVXaXRoKCBjYWxsYmFja0NvbnRleHQsIFsgc3VjY2Vzcywgc3RhdHVzVGV4dCwganFYSFIgXSApOwoJCQl9IGVsc2UgewoJCQkJZGVmZXJyZWQucmVqZWN0V2l0aCggY2FsbGJhY2tDb250ZXh0LCBbIGpxWEhSLCBzdGF0dXNUZXh0LCBlcnJvciBdICk7CgkJCX0KCgkJCS8vIFN0YXR1cy1kZXBlbmRlbnQgY2FsbGJhY2tzCgkJCWpxWEhSLnN0YXR1c0NvZGUoIHN0YXR1c0NvZGUgKTsKCQkJc3RhdHVzQ29kZSA9IHVuZGVmaW5lZDsKCgkJCWlmICggZmlyZUdsb2JhbHMgKSB7CgkJCQlnbG9iYWxFdmVudENvbnRleHQudHJpZ2dlciggImFqYXgiICsgKCBpc1N1Y2Nlc3MgPyAiU3VjY2VzcyIgOiAiRXJyb3IiICksCgkJCQkJCVsganFYSFIsIHMsIGlzU3VjY2VzcyA/IHN1Y2Nlc3MgOiBlcnJvciBdICk7CgkJCX0KCgkJCS8vIENvbXBsZXRlCgkJCWNvbXBsZXRlRGVmZXJyZWQucmVzb2x2ZVdpdGgoIGNhbGxiYWNrQ29udGV4dCwgWyBqcVhIUiwgc3RhdHVzVGV4dCBdICk7CgoJCQlpZiAoIGZpcmVHbG9iYWxzICkgewoJCQkJZ2xvYmFsRXZlbnRDb250ZXh0LnRyaWdnZXIoICJhamF4Q29tcGxldGUiLCBbIGpxWEhSLCBzXSApOwoJCQkJLy8gSGFuZGxlIHRoZSBnbG9iYWwgQUpBWCBjb3VudGVyCgkJCQlpZiAoICEoIC0talF1ZXJ5LmFjdGl2ZSApICkgewoJCQkJCWpRdWVyeS5ldmVudC50cmlnZ2VyKCAiYWpheFN0b3AiICk7CgkJCQl9CgkJCX0KCQl9CgoJCS8vIEF0dGFjaCBkZWZlcnJlZHMKCQlkZWZlcnJlZC5wcm9taXNlKCBqcVhIUiApOwoJCWpxWEhSLnN1Y2Nlc3MgPSBqcVhIUi5kb25lOwoJCWpxWEhSLmVycm9yID0ganFYSFIuZmFpbDsKCQlqcVhIUi5jb21wbGV0ZSA9IGNvbXBsZXRlRGVmZXJyZWQuZG9uZTsKCgkJLy8gU3RhdHVzLWRlcGVuZGVudCBjYWxsYmFja3MKCQlqcVhIUi5zdGF0dXNDb2RlID0gZnVuY3Rpb24oIG1hcCApIHsKCQkJaWYgKCBtYXAgKSB7CgkJCQl2YXIgdG1wOwoJCQkJaWYgKCBzdGF0ZSA8IDIgKSB7CgkJCQkJZm9yKCB0bXAgaW4gbWFwICkgewoJCQkJCQlzdGF0dXNDb2RlWyB0bXAgXSA9IFsgc3RhdHVzQ29kZVt0bXBdLCBtYXBbdG1wXSBdOwoJCQkJCX0KCQkJCX0gZWxzZSB7CgkJCQkJdG1wID0gbWFwWyBqcVhIUi5zdGF0dXMgXTsKCQkJCQlqcVhIUi50aGVuKCB0bXAsIHRtcCApOwoJCQkJfQoJCQl9CgkJCXJldHVybiB0aGlzOwoJCX07CgoJCS8vIFJlbW92ZSBoYXNoIGNoYXJhY3RlciAoIzc1MzE6IGFuZCBzdHJpbmcgcHJvbW90aW9uKQoJCS8vIEFkZCBwcm90b2NvbCBpZiBub3QgcHJvdmlkZWQgKCM1ODY2OiBJRTcgaXNzdWUgd2l0aCBwcm90b2NvbC1sZXNzIHVybHMpCgkJLy8gV2UgYWxzbyB1c2UgdGhlIHVybCBwYXJhbWV0ZXIgaWYgYXZhaWxhYmxlCgkJcy51cmwgPSAoICggdXJsIHx8IHMudXJsICkgKyAiIiApLnJlcGxhY2UoIHJoYXNoLCAiIiApLnJlcGxhY2UoIHJwcm90b2NvbCwgYWpheExvY1BhcnRzWyAxIF0gKyAiLy8iICk7CgoJCS8vIEV4dHJhY3QgZGF0YVR5cGVzIGxpc3QKCQlzLmRhdGFUeXBlcyA9IGpRdWVyeS50cmltKCBzLmRhdGFUeXBlIHx8ICIqIiApLnRvTG93ZXJDYXNlKCkuc3BsaXQoIHJzcGFjZXNBamF4ICk7CgoJCS8vIERldGVybWluZSBpZiBhIGNyb3NzLWRvbWFpbiByZXF1ZXN0IGlzIGluIG9yZGVyCgkJaWYgKCAhcy5jcm9zc0RvbWFpbiApIHsKCQkJcGFydHMgPSBydXJsLmV4ZWMoIHMudXJsLnRvTG93ZXJDYXNlKCkgKTsKCQkJcy5jcm9zc0RvbWFpbiA9ICEhKCBwYXJ0cyAmJgoJCQkJKCBwYXJ0c1sgMSBdICE9IGFqYXhMb2NQYXJ0c1sgMSBdIHx8IHBhcnRzWyAyIF0gIT0gYWpheExvY1BhcnRzWyAyIF0gfHwKCQkJCQkoIHBhcnRzWyAzIF0gfHwgKCBwYXJ0c1sgMSBdID09PSAiaHR0cDoiID8gODAgOiA0NDMgKSApICE9CgkJCQkJCSggYWpheExvY1BhcnRzWyAzIF0gfHwgKCBhamF4TG9jUGFydHNbIDEgXSA9PT0gImh0dHA6IiA/IDgwIDogNDQzICkgKSApCgkJCSk7CgkJfQoKCQkvLyBDb252ZXJ0IGRhdGEgaWYgbm90IGFscmVhZHkgYSBzdHJpbmcKCQlpZiAoIHMuZGF0YSAmJiBzLnByb2Nlc3NEYXRhICYmIHR5cGVvZiBzLmRhdGEgIT09ICJzdHJpbmciICkgewoJCQlzLmRhdGEgPSBqUXVlcnkucGFyYW0oIHMuZGF0YSwgcy50cmFkaXRpb25hbCApOwoJCX0KCgkJLy8gQXBwbHkgcHJlZmlsdGVycwoJCWluc3BlY3RQcmVmaWx0ZXJzT3JUcmFuc3BvcnRzKCBwcmVmaWx0ZXJzLCBzLCBvcHRpb25zLCBqcVhIUiApOwoKCQkvLyBJZiByZXF1ZXN0IHdhcyBhYm9ydGVkIGluc2lkZSBhIHByZWZpbGVyLCBzdG9wIHRoZXJlCgkJaWYgKCBzdGF0ZSA9PT0gMiApIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCgkJLy8gV2UgY2FuIGZpcmUgZ2xvYmFsIGV2ZW50cyBhcyBvZiBub3cgaWYgYXNrZWQgdG8KCQlmaXJlR2xvYmFscyA9IHMuZ2xvYmFsOwoKCQkvLyBVcHBlcmNhc2UgdGhlIHR5cGUKCQlzLnR5cGUgPSBzLnR5cGUudG9VcHBlckNhc2UoKTsKCgkJLy8gRGV0ZXJtaW5lIGlmIHJlcXVlc3QgaGFzIGNvbnRlbnQKCQlzLmhhc0NvbnRlbnQgPSAhcm5vQ29udGVudC50ZXN0KCBzLnR5cGUgKTsKCgkJLy8gV2F0Y2ggZm9yIGEgbmV3IHNldCBvZiByZXF1ZXN0cwoJCWlmICggZmlyZUdsb2JhbHMgJiYgalF1ZXJ5LmFjdGl2ZSsrID09PSAwICkgewoJCQlqUXVlcnkuZXZlbnQudHJpZ2dlciggImFqYXhTdGFydCIgKTsKCQl9CgoJCS8vIE1vcmUgb3B0aW9ucyBoYW5kbGluZyBmb3IgcmVxdWVzdHMgd2l0aCBubyBjb250ZW50CgkJaWYgKCAhcy5oYXNDb250ZW50ICkgewoKCQkJLy8gSWYgZGF0YSBpcyBhdmFpbGFibGUsIGFwcGVuZCBkYXRhIHRvIHVybAoJCQlpZiAoIHMuZGF0YSApIHsKCQkJCXMudXJsICs9ICggcnF1ZXJ5LnRlc3QoIHMudXJsICkgPyAiJiIgOiAiPyIgKSArIHMuZGF0YTsKCQkJfQoKCQkJLy8gR2V0IGlmTW9kaWZpZWRLZXkgYmVmb3JlIGFkZGluZyB0aGUgYW50aS1jYWNoZSBwYXJhbWV0ZXIKCQkJaWZNb2RpZmllZEtleSA9IHMudXJsOwoKCQkJLy8gQWRkIGFudGktY2FjaGUgaW4gdXJsIGlmIG5lZWRlZAoJCQlpZiAoIHMuY2FjaGUgPT09IGZhbHNlICkgewoKCQkJCXZhciB0cyA9IGpRdWVyeS5ub3coKSwKCQkJCQkvLyB0cnkgcmVwbGFjaW5nIF89IGlmIGl0IGlzIHRoZXJlCgkJCQkJcmV0ID0gcy51cmwucmVwbGFjZSggcnRzLCAiJDFfPSIgKyB0cyApOwoKCQkJCS8vIGlmIG5vdGhpbmcgd2FzIHJlcGxhY2VkLCBhZGQgdGltZXN0YW1wIHRvIHRoZSBlbmQKCQkJCXMudXJsID0gcmV0ICsgKCAocmV0ID09PSBzLnVybCApID8gKCBycXVlcnkudGVzdCggcy51cmwgKSA/ICImIiA6ICI/IiApICsgIl89IiArIHRzIDogIiIgKTsKCQkJfQoJCX0KCgkJLy8gU2V0IHRoZSBjb3JyZWN0IGhlYWRlciwgaWYgZGF0YSBpcyBiZWluZyBzZW50CgkJaWYgKCBzLmRhdGEgJiYgcy5oYXNDb250ZW50ICYmIHMuY29udGVudFR5cGUgIT09IGZhbHNlIHx8IG9wdGlvbnMuY29udGVudFR5cGUgKSB7CgkJCXJlcXVlc3RIZWFkZXJzWyAiQ29udGVudC1UeXBlIiBdID0gcy5jb250ZW50VHlwZTsKCQl9CgoJCS8vIFNldCB0aGUgSWYtTW9kaWZpZWQtU2luY2UgYW5kL29yIElmLU5vbmUtTWF0Y2ggaGVhZGVyLCBpZiBpbiBpZk1vZGlmaWVkIG1vZGUuCgkJaWYgKCBzLmlmTW9kaWZpZWQgKSB7CgkJCWlmTW9kaWZpZWRLZXkgPSBpZk1vZGlmaWVkS2V5IHx8IHMudXJsOwoJCQlpZiAoIGpRdWVyeS5sYXN0TW9kaWZpZWRbIGlmTW9kaWZpZWRLZXkgXSApIHsKCQkJCXJlcXVlc3RIZWFkZXJzWyAiSWYtTW9kaWZpZWQtU2luY2UiIF0gPSBqUXVlcnkubGFzdE1vZGlmaWVkWyBpZk1vZGlmaWVkS2V5IF07CgkJCX0KCQkJaWYgKCBqUXVlcnkuZXRhZ1sgaWZNb2RpZmllZEtleSBdICkgewoJCQkJcmVxdWVzdEhlYWRlcnNbICJJZi1Ob25lLU1hdGNoIiBdID0galF1ZXJ5LmV0YWdbIGlmTW9kaWZpZWRLZXkgXTsKCQkJfQoJCX0KCgkJLy8gU2V0IHRoZSBBY2NlcHRzIGhlYWRlciBmb3IgdGhlIHNlcnZlciwgZGVwZW5kaW5nIG9uIHRoZSBkYXRhVHlwZQoJCXJlcXVlc3RIZWFkZXJzLkFjY2VwdCA9IHMuZGF0YVR5cGVzWyAwIF0gJiYgcy5hY2NlcHRzWyBzLmRhdGFUeXBlc1swXSBdID8KCQkJcy5hY2NlcHRzWyBzLmRhdGFUeXBlc1swXSBdICsgKCBzLmRhdGFUeXBlc1sgMCBdICE9PSAiKiIgPyAiLCAqLyo7IHE9MC4wMSIgOiAiIiApIDoKCQkJcy5hY2NlcHRzWyAiKiIgXTsKCgkJLy8gQ2hlY2sgZm9yIGhlYWRlcnMgb3B0aW9uCgkJZm9yICggaSBpbiBzLmhlYWRlcnMgKSB7CgkJCWpxWEhSLnNldFJlcXVlc3RIZWFkZXIoIGksIHMuaGVhZGVyc1sgaSBdICk7CgkJfQoKCQkvLyBBbGxvdyBjdXN0b20gaGVhZGVycy9taW1ldHlwZXMgYW5kIGVhcmx5IGFib3J0CgkJaWYgKCBzLmJlZm9yZVNlbmQgJiYgKCBzLmJlZm9yZVNlbmQuY2FsbCggY2FsbGJhY2tDb250ZXh0LCBqcVhIUiwgcyApID09PSBmYWxzZSB8fCBzdGF0ZSA9PT0gMiApICkgewoJCQkJLy8gQWJvcnQgaWYgbm90IGRvbmUgYWxyZWFkeQoJCQkJanFYSFIuYWJvcnQoKTsKCQkJCXJldHVybiBmYWxzZTsKCgkJfQoKCQkvLyBJbnN0YWxsIGNhbGxiYWNrcyBvbiBkZWZlcnJlZHMKCQlmb3IgKCBpIGluIHsgc3VjY2VzczogMSwgZXJyb3I6IDEsIGNvbXBsZXRlOiAxIH0gKSB7CgkJCWpxWEhSWyBpIF0oIHNbIGkgXSApOwoJCX0KCgkJLy8gR2V0IHRyYW5zcG9ydAoJCXRyYW5zcG9ydCA9IGluc3BlY3RQcmVmaWx0ZXJzT3JUcmFuc3BvcnRzKCB0cmFuc3BvcnRzLCBzLCBvcHRpb25zLCBqcVhIUiApOwoKCQkvLyBJZiBubyB0cmFuc3BvcnQsIHdlIGF1dG8tYWJvcnQKCQlpZiAoICF0cmFuc3BvcnQgKSB7CgkJCWRvbmUoIC0xLCAiTm8gVHJhbnNwb3J0IiApOwoJCX0gZWxzZSB7CgkJCWpxWEhSLnJlYWR5U3RhdGUgPSAxOwoJCQkvLyBTZW5kIGdsb2JhbCBldmVudAoJCQlpZiAoIGZpcmVHbG9iYWxzICkgewoJCQkJZ2xvYmFsRXZlbnRDb250ZXh0LnRyaWdnZXIoICJhamF4U2VuZCIsIFsganFYSFIsIHMgXSApOwoJCQl9CgkJCS8vIFRpbWVvdXQKCQkJaWYgKCBzLmFzeW5jICYmIHMudGltZW91dCA+IDAgKSB7CgkJCQl0aW1lb3V0VGltZXIgPSBzZXRUaW1lb3V0KCBmdW5jdGlvbigpewoJCQkJCWpxWEhSLmFib3J0KCAidGltZW91dCIgKTsKCQkJCX0sIHMudGltZW91dCApOwoJCQl9CgoJCQl0cnkgewoJCQkJc3RhdGUgPSAxOwoJCQkJdHJhbnNwb3J0LnNlbmQoIHJlcXVlc3RIZWFkZXJzLCBkb25lICk7CgkJCX0gY2F0Y2ggKGUpIHsKCQkJCS8vIFByb3BhZ2F0ZSBleGNlcHRpb24gYXMgZXJyb3IgaWYgbm90IGRvbmUKCQkJCWlmICggc3RhdHVzIDwgMiApIHsKCQkJCQlkb25lKCAtMSwgZSApOwoJCQkJLy8gU2ltcGx5IHJldGhyb3cgb3RoZXJ3aXNlCgkJCQl9IGVsc2UgewoJCQkJCWpRdWVyeS5lcnJvciggZSApOwoJCQkJfQoJCQl9CgkJfQoKCQlyZXR1cm4ganFYSFI7Cgl9LAoKCS8vIFNlcmlhbGl6ZSBhbiBhcnJheSBvZiBmb3JtIGVsZW1lbnRzIG9yIGEgc2V0IG9mCgkvLyBrZXkvdmFsdWVzIGludG8gYSBxdWVyeSBzdHJpbmcKCXBhcmFtOiBmdW5jdGlvbiggYSwgdHJhZGl0aW9uYWwgKSB7CgkJdmFyIHMgPSBbXSwKCQkJYWRkID0gZnVuY3Rpb24oIGtleSwgdmFsdWUgKSB7CgkJCQkvLyBJZiB2YWx1ZSBpcyBhIGZ1bmN0aW9uLCBpbnZva2UgaXQgYW5kIHJldHVybiBpdHMgdmFsdWUKCQkJCXZhbHVlID0galF1ZXJ5LmlzRnVuY3Rpb24oIHZhbHVlICkgPyB2YWx1ZSgpIDogdmFsdWU7CgkJCQlzWyBzLmxlbmd0aCBdID0gZW5jb2RlVVJJQ29tcG9uZW50KCBrZXkgKSArICI9IiArIGVuY29kZVVSSUNvbXBvbmVudCggdmFsdWUgKTsKCQkJfTsKCgkJLy8gU2V0IHRyYWRpdGlvbmFsIHRvIHRydWUgZm9yIGpRdWVyeSA8PSAxLjMuMiBiZWhhdmlvci4KCQlpZiAoIHRyYWRpdGlvbmFsID09PSB1bmRlZmluZWQgKSB7CgkJCXRyYWRpdGlvbmFsID0galF1ZXJ5LmFqYXhTZXR0aW5ncy50cmFkaXRpb25hbDsKCQl9CgoJCS8vIElmIGFuIGFycmF5IHdhcyBwYXNzZWQgaW4sIGFzc3VtZSB0aGF0IGl0IGlzIGFuIGFycmF5IG9mIGZvcm0gZWxlbWVudHMuCgkJaWYgKCBqUXVlcnkuaXNBcnJheSggYSApIHx8ICggYS5qcXVlcnkgJiYgIWpRdWVyeS5pc1BsYWluT2JqZWN0KCBhICkgKSApIHsKCQkJLy8gU2VyaWFsaXplIHRoZSBmb3JtIGVsZW1lbnRzCgkJCWpRdWVyeS5lYWNoKCBhLCBmdW5jdGlvbigpIHsKCQkJCWFkZCggdGhpcy5uYW1lLCB0aGlzLnZhbHVlICk7CgkJCX0gKTsKCgkJfSBlbHNlIHsKCQkJLy8gSWYgdHJhZGl0aW9uYWwsIGVuY29kZSB0aGUgIm9sZCIgd2F5ICh0aGUgd2F5IDEuMy4yIG9yIG9sZGVyCgkJCS8vIGRpZCBpdCksIG90aGVyd2lzZSBlbmNvZGUgcGFyYW1zIHJlY3Vyc2l2ZWx5LgoJCQlmb3IgKCB2YXIgcHJlZml4IGluIGEgKSB7CgkJCQlidWlsZFBhcmFtcyggcHJlZml4LCBhWyBwcmVmaXggXSwgdHJhZGl0aW9uYWwsIGFkZCApOwoJCQl9CgkJfQoKCQkvLyBSZXR1cm4gdGhlIHJlc3VsdGluZyBzZXJpYWxpemF0aW9uCgkJcmV0dXJuIHMuam9pbiggIiYiICkucmVwbGFjZSggcjIwLCAiKyIgKTsKCX0KfSk7CgpmdW5jdGlvbiBidWlsZFBhcmFtcyggcHJlZml4LCBvYmosIHRyYWRpdGlvbmFsLCBhZGQgKSB7CglpZiAoIGpRdWVyeS5pc0FycmF5KCBvYmogKSAmJiBvYmoubGVuZ3RoICkgewoJCS8vIFNlcmlhbGl6ZSBhcnJheSBpdGVtLgoJCWpRdWVyeS5lYWNoKCBvYmosIGZ1bmN0aW9uKCBpLCB2ICkgewoJCQlpZiAoIHRyYWRpdGlvbmFsIHx8IHJicmFja2V0LnRlc3QoIHByZWZpeCApICkgewoJCQkJLy8gVHJlYXQgZWFjaCBhcnJheSBpdGVtIGFzIGEgc2NhbGFyLgoJCQkJYWRkKCBwcmVmaXgsIHYgKTsKCgkJCX0gZWxzZSB7CgkJCQkvLyBJZiBhcnJheSBpdGVtIGlzIG5vbi1zY2FsYXIgKGFycmF5IG9yIG9iamVjdCksIGVuY29kZSBpdHMKCQkJCS8vIG51bWVyaWMgaW5kZXggdG8gcmVzb2x2ZSBkZXNlcmlhbGl6YXRpb24gYW1iaWd1aXR5IGlzc3Vlcy4KCQkJCS8vIE5vdGUgdGhhdCByYWNrIChhcyBvZiAxLjAuMCkgY2FuJ3QgY3VycmVudGx5IGRlc2VyaWFsaXplCgkJCQkvLyBuZXN0ZWQgYXJyYXlzIHByb3Blcmx5LCBhbmQgYXR0ZW1wdGluZyB0byBkbyBzbyBtYXkgY2F1c2UKCQkJCS8vIGEgc2VydmVyIGVycm9yLiBQb3NzaWJsZSBmaXhlcyBhcmUgdG8gbW9kaWZ5IHJhY2sncwoJCQkJLy8gZGVzZXJpYWxpemF0aW9uIGFsZ29yaXRobSBvciB0byBwcm92aWRlIGFuIG9wdGlvbiBvciBmbGFnCgkJCQkvLyB0byBmb3JjZSBhcnJheSBzZXJpYWxpemF0aW9uIHRvIGJlIHNoYWxsb3cuCgkJCQlidWlsZFBhcmFtcyggcHJlZml4ICsgIlsiICsgKCB0eXBlb2YgdiA9PT0gIm9iamVjdCIgfHwgalF1ZXJ5LmlzQXJyYXkodikgPyBpIDogIiIgKSArICJdIiwgdiwgdHJhZGl0aW9uYWwsIGFkZCApOwoJCQl9CgkJfSk7CgoJfSBlbHNlIGlmICggIXRyYWRpdGlvbmFsICYmIG9iaiAhPSBudWxsICYmIHR5cGVvZiBvYmogPT09ICJvYmplY3QiICkgewoJCS8vIElmIHdlIHNlZSBhbiBhcnJheSBoZXJlLCBpdCBpcyBlbXB0eSBhbmQgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYW4gZW1wdHkKCQkvLyBvYmplY3QKCQlpZiAoIGpRdWVyeS5pc0FycmF5KCBvYmogKSB8fCBqUXVlcnkuaXNFbXB0eU9iamVjdCggb2JqICkgKSB7CgkJCWFkZCggcHJlZml4LCAiIiApOwoKCQkvLyBTZXJpYWxpemUgb2JqZWN0IGl0ZW0uCgkJfSBlbHNlIHsKCQkJZm9yICggdmFyIG5hbWUgaW4gb2JqICkgewoJCQkJYnVpbGRQYXJhbXMoIHByZWZpeCArICJbIiArIG5hbWUgKyAiXSIsIG9ialsgbmFtZSBdLCB0cmFkaXRpb25hbCwgYWRkICk7CgkJCX0KCQl9CgoJfSBlbHNlIHsKCQkvLyBTZXJpYWxpemUgc2NhbGFyIGl0ZW0uCgkJYWRkKCBwcmVmaXgsIG9iaiApOwoJfQp9CgovLyBUaGlzIGlzIHN0aWxsIG9uIHRoZSBqUXVlcnkgb2JqZWN0Li4uIGZvciBub3cKLy8gV2FudCB0byBtb3ZlIHRoaXMgdG8galF1ZXJ5LmFqYXggc29tZSBkYXkKalF1ZXJ5LmV4dGVuZCh7CgoJLy8gQ291bnRlciBmb3IgaG9sZGluZyB0aGUgbnVtYmVyIG9mIGFjdGl2ZSBxdWVyaWVzCglhY3RpdmU6IDAsCgoJLy8gTGFzdC1Nb2RpZmllZCBoZWFkZXIgY2FjaGUgZm9yIG5leHQgcmVxdWVzdAoJbGFzdE1vZGlmaWVkOiB7fSwKCWV0YWc6IHt9Cgp9KTsKCi8qIEhhbmRsZXMgcmVzcG9uc2VzIHRvIGFuIGFqYXggcmVxdWVzdDoKICogLSBzZXRzIGFsbCByZXNwb25zZVhYWCBmaWVsZHMgYWNjb3JkaW5nbHkKICogLSBmaW5kcyB0aGUgcmlnaHQgZGF0YVR5cGUgKG1lZGlhdGVzIGJldHdlZW4gY29udGVudC10eXBlIGFuZCBleHBlY3RlZCBkYXRhVHlwZSkKICogLSByZXR1cm5zIHRoZSBjb3JyZXNwb25kaW5nIHJlc3BvbnNlCiAqLwpmdW5jdGlvbiBhamF4SGFuZGxlUmVzcG9uc2VzKCBzLCBqcVhIUiwgcmVzcG9uc2VzICkgewoKCXZhciBjb250ZW50cyA9IHMuY29udGVudHMsCgkJZGF0YVR5cGVzID0gcy5kYXRhVHlwZXMsCgkJcmVzcG9uc2VGaWVsZHMgPSBzLnJlc3BvbnNlRmllbGRzLAoJCWN0LAoJCXR5cGUsCgkJZmluYWxEYXRhVHlwZSwKCQlmaXJzdERhdGFUeXBlOwoKCS8vIEZpbGwgcmVzcG9uc2VYWFggZmllbGRzCglmb3IoIHR5cGUgaW4gcmVzcG9uc2VGaWVsZHMgKSB7CgkJaWYgKCB0eXBlIGluIHJlc3BvbnNlcyApIHsKCQkJanFYSFJbIHJlc3BvbnNlRmllbGRzW3R5cGVdIF0gPSByZXNwb25zZXNbIHR5cGUgXTsKCQl9Cgl9CgoJLy8gUmVtb3ZlIGF1dG8gZGF0YVR5cGUgYW5kIGdldCBjb250ZW50LXR5cGUgaW4gdGhlIHByb2Nlc3MKCXdoaWxlKCBkYXRhVHlwZXNbIDAgXSA9PT0gIioiICkgewoJCWRhdGFUeXBlcy5zaGlmdCgpOwoJCWlmICggY3QgPT09IHVuZGVmaW5lZCApIHsKCQkJY3QgPSBzLm1pbWVUeXBlIHx8IGpxWEhSLmdldFJlc3BvbnNlSGVhZGVyKCAiY29udGVudC10eXBlIiApOwoJCX0KCX0KCgkvLyBDaGVjayBpZiB3ZSdyZSBkZWFsaW5nIHdpdGggYSBrbm93biBjb250ZW50LXR5cGUKCWlmICggY3QgKSB7CgkJZm9yICggdHlwZSBpbiBjb250ZW50cyApIHsKCQkJaWYgKCBjb250ZW50c1sgdHlwZSBdICYmIGNvbnRlbnRzWyB0eXBlIF0udGVzdCggY3QgKSApIHsKCQkJCWRhdGFUeXBlcy51bnNoaWZ0KCB0eXBlICk7CgkJCQlicmVhazsKCQkJfQoJCX0KCX0KCgkvLyBDaGVjayB0byBzZWUgaWYgd2UgaGF2ZSBhIHJlc3BvbnNlIGZvciB0aGUgZXhwZWN0ZWQgZGF0YVR5cGUKCWlmICggZGF0YVR5cGVzWyAwIF0gaW4gcmVzcG9uc2VzICkgewoJCWZpbmFsRGF0YVR5cGUgPSBkYXRhVHlwZXNbIDAgXTsKCX0gZWxzZSB7CgkJLy8gVHJ5IGNvbnZlcnRpYmxlIGRhdGFUeXBlcwoJCWZvciAoIHR5cGUgaW4gcmVzcG9uc2VzICkgewoJCQlpZiAoICFkYXRhVHlwZXNbIDAgXSB8fCBzLmNvbnZlcnRlcnNbIHR5cGUgKyAiICIgKyBkYXRhVHlwZXNbMF0gXSApIHsKCQkJCWZpbmFsRGF0YVR5cGUgPSB0eXBlOwoJCQkJYnJlYWs7CgkJCX0KCQkJaWYgKCAhZmlyc3REYXRhVHlwZSApIHsKCQkJCWZpcnN0RGF0YVR5cGUgPSB0eXBlOwoJCQl9CgkJfQoJCS8vIE9yIGp1c3QgdXNlIGZpcnN0IG9uZQoJCWZpbmFsRGF0YVR5cGUgPSBmaW5hbERhdGFUeXBlIHx8IGZpcnN0RGF0YVR5cGU7Cgl9CgoJLy8gSWYgd2UgZm91bmQgYSBkYXRhVHlwZQoJLy8gV2UgYWRkIHRoZSBkYXRhVHlwZSB0byB0aGUgbGlzdCBpZiBuZWVkZWQKCS8vIGFuZCByZXR1cm4gdGhlIGNvcnJlc3BvbmRpbmcgcmVzcG9uc2UKCWlmICggZmluYWxEYXRhVHlwZSApIHsKCQlpZiAoIGZpbmFsRGF0YVR5cGUgIT09IGRhdGFUeXBlc1sgMCBdICkgewoJCQlkYXRhVHlwZXMudW5zaGlmdCggZmluYWxEYXRhVHlwZSApOwoJCX0KCQlyZXR1cm4gcmVzcG9uc2VzWyBmaW5hbERhdGFUeXBlIF07Cgl9Cn0KCi8vIENoYWluIGNvbnZlcnNpb25zIGdpdmVuIHRoZSByZXF1ZXN0IGFuZCB0aGUgb3JpZ2luYWwgcmVzcG9uc2UKZnVuY3Rpb24gYWpheENvbnZlcnQoIHMsIHJlc3BvbnNlICkgewoKCS8vIEFwcGx5IHRoZSBkYXRhRmlsdGVyIGlmIHByb3ZpZGVkCglpZiAoIHMuZGF0YUZpbHRlciApIHsKCQlyZXNwb25zZSA9IHMuZGF0YUZpbHRlciggcmVzcG9uc2UsIHMuZGF0YVR5cGUgKTsKCX0KCgl2YXIgZGF0YVR5cGVzID0gcy5kYXRhVHlwZXMsCgkJY29udmVydGVycyA9IHt9LAoJCWksCgkJa2V5LAoJCWxlbmd0aCA9IGRhdGFUeXBlcy5sZW5ndGgsCgkJdG1wLAoJCS8vIEN1cnJlbnQgYW5kIHByZXZpb3VzIGRhdGFUeXBlcwoJCWN1cnJlbnQgPSBkYXRhVHlwZXNbIDAgXSwKCQlwcmV2LAoJCS8vIENvbnZlcnNpb24gZXhwcmVzc2lvbgoJCWNvbnZlcnNpb24sCgkJLy8gQ29udmVyc2lvbiBmdW5jdGlvbgoJCWNvbnYsCgkJLy8gQ29udmVyc2lvbiBmdW5jdGlvbnMgKHRyYW5zaXRpdmUgY29udmVyc2lvbikKCQljb252MSwKCQljb252MjsKCgkvLyBGb3IgZWFjaCBkYXRhVHlwZSBpbiB0aGUgY2hhaW4KCWZvciggaSA9IDE7IGkgPCBsZW5ndGg7IGkrKyApIHsKCgkJLy8gQ3JlYXRlIGNvbnZlcnRlcnMgbWFwCgkJLy8gd2l0aCBsb3dlcmNhc2VkIGtleXMKCQlpZiAoIGkgPT09IDEgKSB7CgkJCWZvcigga2V5IGluIHMuY29udmVydGVycyApIHsKCQkJCWlmKCB0eXBlb2Yga2V5ID09PSAic3RyaW5nIiApIHsKCQkJCQljb252ZXJ0ZXJzWyBrZXkudG9Mb3dlckNhc2UoKSBdID0gcy5jb252ZXJ0ZXJzWyBrZXkgXTsKCQkJCX0KCQkJfQoJCX0KCgkJLy8gR2V0IHRoZSBkYXRhVHlwZXMKCQlwcmV2ID0gY3VycmVudDsKCQljdXJyZW50ID0gZGF0YVR5cGVzWyBpIF07CgoJCS8vIElmIGN1cnJlbnQgaXMgYXV0byBkYXRhVHlwZSwgdXBkYXRlIGl0IHRvIHByZXYKCQlpZiggY3VycmVudCA9PT0gIioiICkgewoJCQljdXJyZW50ID0gcHJldjsKCQkvLyBJZiBubyBhdXRvIGFuZCBkYXRhVHlwZXMgYXJlIGFjdHVhbGx5IGRpZmZlcmVudAoJCX0gZWxzZSBpZiAoIHByZXYgIT09ICIqIiAmJiBwcmV2ICE9PSBjdXJyZW50ICkgewoKCQkJLy8gR2V0IHRoZSBjb252ZXJ0ZXIKCQkJY29udmVyc2lvbiA9IHByZXYgKyAiICIgKyBjdXJyZW50OwoJCQljb252ID0gY29udmVydGVyc1sgY29udmVyc2lvbiBdIHx8IGNvbnZlcnRlcnNbICIqICIgKyBjdXJyZW50IF07CgoJCQkvLyBJZiB0aGVyZSBpcyBubyBkaXJlY3QgY29udmVydGVyLCBzZWFyY2ggdHJhbnNpdGl2ZWx5CgkJCWlmICggIWNvbnYgKSB7CgkJCQljb252MiA9IHVuZGVmaW5lZDsKCQkJCWZvciggY29udjEgaW4gY29udmVydGVycyApIHsKCQkJCQl0bXAgPSBjb252MS5zcGxpdCggIiAiICk7CgkJCQkJaWYgKCB0bXBbIDAgXSA9PT0gcHJldiB8fCB0bXBbIDAgXSA9PT0gIioiICkgewoJCQkJCQljb252MiA9IGNvbnZlcnRlcnNbIHRtcFsxXSArICIgIiArIGN1cnJlbnQgXTsKCQkJCQkJaWYgKCBjb252MiApIHsKCQkJCQkJCWNvbnYxID0gY29udmVydGVyc1sgY29udjEgXTsKCQkJCQkJCWlmICggY29udjEgPT09IHRydWUgKSB7CgkJCQkJCQkJY29udiA9IGNvbnYyOwoJCQkJCQkJfSBlbHNlIGlmICggY29udjIgPT09IHRydWUgKSB7CgkJCQkJCQkJY29udiA9IGNvbnYxOwoJCQkJCQkJfQoJCQkJCQkJYnJlYWs7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCX0KCQkJLy8gSWYgd2UgZm91bmQgbm8gY29udmVydGVyLCBkaXNwYXRjaCBhbiBlcnJvcgoJCQlpZiAoICEoIGNvbnYgfHwgY29udjIgKSApIHsKCQkJCWpRdWVyeS5lcnJvciggIk5vIGNvbnZlcnNpb24gZnJvbSAiICsgY29udmVyc2lvbi5yZXBsYWNlKCIgIiwiIHRvICIpICk7CgkJCX0KCQkJLy8gSWYgZm91bmQgY29udmVydGVyIGlzIG5vdCBhbiBlcXVpdmFsZW5jZQoJCQlpZiAoIGNvbnYgIT09IHRydWUgKSB7CgkJCQkvLyBDb252ZXJ0IHdpdGggMSBvciAyIGNvbnZlcnRlcnMgYWNjb3JkaW5nbHkKCQkJCXJlc3BvbnNlID0gY29udiA/IGNvbnYoIHJlc3BvbnNlICkgOiBjb252MiggY29udjEocmVzcG9uc2UpICk7CgkJCX0KCQl9Cgl9CglyZXR1cm4gcmVzcG9uc2U7Cn0KCgoKCnZhciBqc2MgPSBqUXVlcnkubm93KCksCglqc3JlID0gLyhcPSlcPygmfCQpfCgpXD9cPygpL2k7CgovLyBEZWZhdWx0IGpzb25wIHNldHRpbmdzCmpRdWVyeS5hamF4U2V0dXAoewoJanNvbnA6ICJjYWxsYmFjayIsCglqc29ucENhbGxiYWNrOiBmdW5jdGlvbigpIHsKCQlyZXR1cm4galF1ZXJ5LmV4cGFuZG8gKyAiXyIgKyAoIGpzYysrICk7Cgl9Cn0pOwoKLy8gRGV0ZWN0LCBub3JtYWxpemUgb3B0aW9ucyBhbmQgaW5zdGFsbCBjYWxsYmFja3MgZm9yIGpzb25wIHJlcXVlc3RzCmpRdWVyeS5hamF4UHJlZmlsdGVyKCAianNvbiBqc29ucCIsIGZ1bmN0aW9uKCBzLCBvcmlnaW5hbFNldHRpbmdzLCBqcVhIUiApIHsKCgl2YXIgZGF0YUlzU3RyaW5nID0gKCB0eXBlb2Ygcy5kYXRhID09PSAic3RyaW5nIiApOwoKCWlmICggcy5kYXRhVHlwZXNbIDAgXSA9PT0gImpzb25wIiB8fAoJCW9yaWdpbmFsU2V0dGluZ3MuanNvbnBDYWxsYmFjayB8fAoJCW9yaWdpbmFsU2V0dGluZ3MuanNvbnAgIT0gbnVsbCB8fAoJCXMuanNvbnAgIT09IGZhbHNlICYmICgganNyZS50ZXN0KCBzLnVybCApIHx8CgkJCQlkYXRhSXNTdHJpbmcgJiYganNyZS50ZXN0KCBzLmRhdGEgKSApICkgewoKCQl2YXIgcmVzcG9uc2VDb250YWluZXIsCgkJCWpzb25wQ2FsbGJhY2sgPSBzLmpzb25wQ2FsbGJhY2sgPQoJCQkJalF1ZXJ5LmlzRnVuY3Rpb24oIHMuanNvbnBDYWxsYmFjayApID8gcy5qc29ucENhbGxiYWNrKCkgOiBzLmpzb25wQ2FsbGJhY2ssCgkJCXByZXZpb3VzID0gd2luZG93WyBqc29ucENhbGxiYWNrIF0sCgkJCXVybCA9IHMudXJsLAoJCQlkYXRhID0gcy5kYXRhLAoJCQlyZXBsYWNlID0gIiQxIiArIGpzb25wQ2FsbGJhY2sgKyAiJDIiLAoJCQljbGVhblVwID0gZnVuY3Rpb24oKSB7CgkJCQkvLyBTZXQgY2FsbGJhY2sgYmFjayB0byBwcmV2aW91cyB2YWx1ZQoJCQkJd2luZG93WyBqc29ucENhbGxiYWNrIF0gPSBwcmV2aW91czsKCQkJCS8vIENhbGwgaWYgaXQgd2FzIGEgZnVuY3Rpb24gYW5kIHdlIGhhdmUgYSByZXNwb25zZQoJCQkJaWYgKCByZXNwb25zZUNvbnRhaW5lciAmJiBqUXVlcnkuaXNGdW5jdGlvbiggcHJldmlvdXMgKSApIHsKCQkJCQl3aW5kb3dbIGpzb25wQ2FsbGJhY2sgXSggcmVzcG9uc2VDb250YWluZXJbIDAgXSApOwoJCQkJfQoJCQl9OwoKCQlpZiAoIHMuanNvbnAgIT09IGZhbHNlICkgewoJCQl1cmwgPSB1cmwucmVwbGFjZSgganNyZSwgcmVwbGFjZSApOwoJCQlpZiAoIHMudXJsID09PSB1cmwgKSB7CgkJCQlpZiAoIGRhdGFJc1N0cmluZyApIHsKCQkJCQlkYXRhID0gZGF0YS5yZXBsYWNlKCBqc3JlLCByZXBsYWNlICk7CgkJCQl9CgkJCQlpZiAoIHMuZGF0YSA9PT0gZGF0YSApIHsKCQkJCQkvLyBBZGQgY2FsbGJhY2sgbWFudWFsbHkKCQkJCQl1cmwgKz0gKC9cPy8udGVzdCggdXJsICkgPyAiJiIgOiAiPyIpICsgcy5qc29ucCArICI9IiArIGpzb25wQ2FsbGJhY2s7CgkJCQl9CgkJCX0KCQl9CgoJCXMudXJsID0gdXJsOwoJCXMuZGF0YSA9IGRhdGE7CgoJCS8vIEluc3RhbGwgY2FsbGJhY2sKCQl3aW5kb3dbIGpzb25wQ2FsbGJhY2sgXSA9IGZ1bmN0aW9uKCByZXNwb25zZSApIHsKCQkJcmVzcG9uc2VDb250YWluZXIgPSBbIHJlc3BvbnNlIF07CgkJfTsKCgkJLy8gSW5zdGFsbCBjbGVhblVwIGZ1bmN0aW9uCgkJanFYSFIudGhlbiggY2xlYW5VcCwgY2xlYW5VcCApOwoKCQkvLyBVc2UgZGF0YSBjb252ZXJ0ZXIgdG8gcmV0cmlldmUganNvbiBhZnRlciBzY3JpcHQgZXhlY3V0aW9uCgkJcy5jb252ZXJ0ZXJzWyJzY3JpcHQganNvbiJdID0gZnVuY3Rpb24oKSB7CgkJCWlmICggIXJlc3BvbnNlQ29udGFpbmVyICkgewoJCQkJalF1ZXJ5LmVycm9yKCBqc29ucENhbGxiYWNrICsgIiB3YXMgbm90IGNhbGxlZCIgKTsKCQkJfQoJCQlyZXR1cm4gcmVzcG9uc2VDb250YWluZXJbIDAgXTsKCQl9OwoKCQkvLyBmb3JjZSBqc29uIGRhdGFUeXBlCgkJcy5kYXRhVHlwZXNbIDAgXSA9ICJqc29uIjsKCgkJLy8gRGVsZWdhdGUgdG8gc2NyaXB0CgkJcmV0dXJuICJzY3JpcHQiOwoJfQp9ICk7CgoKCgovLyBJbnN0YWxsIHNjcmlwdCBkYXRhVHlwZQpqUXVlcnkuYWpheFNldHVwKHsKCWFjY2VwdHM6IHsKCQlzY3JpcHQ6ICJ0ZXh0L2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2VjbWFzY3JpcHQsIGFwcGxpY2F0aW9uL3gtZWNtYXNjcmlwdCIKCX0sCgljb250ZW50czogewoJCXNjcmlwdDogL2phdmFzY3JpcHR8ZWNtYXNjcmlwdC8KCX0sCgljb252ZXJ0ZXJzOiB7CgkJInRleHQgc2NyaXB0IjogZnVuY3Rpb24oIHRleHQgKSB7CgkJCWpRdWVyeS5nbG9iYWxFdmFsKCB0ZXh0ICk7CgkJCXJldHVybiB0ZXh0OwoJCX0KCX0KfSk7CgovLyBIYW5kbGUgY2FjaGUncyBzcGVjaWFsIGNhc2UgYW5kIGdsb2JhbApqUXVlcnkuYWpheFByZWZpbHRlciggInNjcmlwdCIsIGZ1bmN0aW9uKCBzICkgewoJaWYgKCBzLmNhY2hlID09PSB1bmRlZmluZWQgKSB7CgkJcy5jYWNoZSA9IGZhbHNlOwoJfQoJaWYgKCBzLmNyb3NzRG9tYWluICkgewoJCXMudHlwZSA9ICJHRVQiOwoJCXMuZ2xvYmFsID0gZmFsc2U7Cgl9Cn0gKTsKCi8vIEJpbmQgc2NyaXB0IHRhZyBoYWNrIHRyYW5zcG9ydApqUXVlcnkuYWpheFRyYW5zcG9ydCggInNjcmlwdCIsIGZ1bmN0aW9uKHMpIHsKCgkvLyBUaGlzIHRyYW5zcG9ydCBvbmx5IGRlYWxzIHdpdGggY3Jvc3MgZG9tYWluIHJlcXVlc3RzCglpZiAoIHMuY3Jvc3NEb21haW4gKSB7CgoJCXZhciBzY3JpcHQsCgkJCWhlYWQgPSBkb2N1bWVudC5oZWFkIHx8IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCAiaGVhZCIgKVswXSB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CgoJCXJldHVybiB7CgoJCQlzZW5kOiBmdW5jdGlvbiggXywgY2FsbGJhY2sgKSB7CgoJCQkJc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggInNjcmlwdCIgKTsKCgkJCQlzY3JpcHQuYXN5bmMgPSAiYXN5bmMiOwoKCQkJCWlmICggcy5zY3JpcHRDaGFyc2V0ICkgewoJCQkJCXNjcmlwdC5jaGFyc2V0ID0gcy5zY3JpcHRDaGFyc2V0OwoJCQkJfQoKCQkJCXNjcmlwdC5zcmMgPSBzLnVybDsKCgkJCQkvLyBBdHRhY2ggaGFuZGxlcnMgZm9yIGFsbCBicm93c2VycwoJCQkJc2NyaXB0Lm9ubG9hZCA9IHNjcmlwdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiggXywgaXNBYm9ydCApIHsKCgkJCQkJaWYgKCAhc2NyaXB0LnJlYWR5U3RhdGUgfHwgL2xvYWRlZHxjb21wbGV0ZS8udGVzdCggc2NyaXB0LnJlYWR5U3RhdGUgKSApIHsKCgkJCQkJCS8vIEhhbmRsZSBtZW1vcnkgbGVhayBpbiBJRQoJCQkJCQlzY3JpcHQub25sb2FkID0gc2NyaXB0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IG51bGw7CgoJCQkJCQkvLyBSZW1vdmUgdGhlIHNjcmlwdAoJCQkJCQlpZiAoIGhlYWQgJiYgc2NyaXB0LnBhcmVudE5vZGUgKSB7CgkJCQkJCQloZWFkLnJlbW92ZUNoaWxkKCBzY3JpcHQgKTsKCQkJCQkJfQoKCQkJCQkJLy8gRGVyZWZlcmVuY2UgdGhlIHNjcmlwdAoJCQkJCQlzY3JpcHQgPSB1bmRlZmluZWQ7CgoJCQkJCQkvLyBDYWxsYmFjayBpZiBub3QgYWJvcnQKCQkJCQkJaWYgKCAhaXNBYm9ydCApIHsKCQkJCQkJCWNhbGxiYWNrKCAyMDAsICJzdWNjZXNzIiApOwoJCQkJCQl9CgkJCQkJfQoJCQkJfTsKCQkJCS8vIFVzZSBpbnNlcnRCZWZvcmUgaW5zdGVhZCBvZiBhcHBlbmRDaGlsZCAgdG8gY2lyY3VtdmVudCBhbiBJRTYgYnVnLgoJCQkJLy8gVGhpcyBhcmlzZXMgd2hlbiBhIGJhc2Ugbm9kZSBpcyB1c2VkICgjMjcwOSBhbmQgIzQzNzgpLgoJCQkJaGVhZC5pbnNlcnRCZWZvcmUoIHNjcmlwdCwgaGVhZC5maXJzdENoaWxkICk7CgkJCX0sCgoJCQlhYm9ydDogZnVuY3Rpb24oKSB7CgkJCQlpZiAoIHNjcmlwdCApIHsKCQkJCQlzY3JpcHQub25sb2FkKCAwLCAxICk7CgkJCQl9CgkJCX0KCQl9OwoJfQp9ICk7CgoKCgp2YXIgLy8gIzUyODA6IG5leHQgYWN0aXZlIHhociBpZCBhbmQgbGlzdCBvZiBhY3RpdmUgeGhycycgY2FsbGJhY2tzCgl4aHJJZCA9IGpRdWVyeS5ub3coKSwKCXhockNhbGxiYWNrcywKCgkvLyBYSFIgdXNlZCB0byBkZXRlcm1pbmUgc3VwcG9ydHMgcHJvcGVydGllcwoJdGVzdFhIUjsKCi8vICM1MjgwOiBJbnRlcm5ldCBFeHBsb3JlciB3aWxsIGtlZXAgY29ubmVjdGlvbnMgYWxpdmUgaWYgd2UgZG9uJ3QgYWJvcnQgb24gdW5sb2FkCmZ1bmN0aW9uIHhock9uVW5sb2FkQWJvcnQoKSB7CglqUXVlcnkoIHdpbmRvdyApLnVubG9hZChmdW5jdGlvbigpIHsKCQkvLyBBYm9ydCBhbGwgcGVuZGluZyByZXF1ZXN0cwoJCWZvciAoIHZhciBrZXkgaW4geGhyQ2FsbGJhY2tzICkgewoJCQl4aHJDYWxsYmFja3NbIGtleSBdKCAwLCAxICk7CgkJfQoJfSk7Cn0KCi8vIEZ1bmN0aW9ucyB0byBjcmVhdGUgeGhycwpmdW5jdGlvbiBjcmVhdGVTdGFuZGFyZFhIUigpIHsKCXRyeSB7CgkJcmV0dXJuIG5ldyB3aW5kb3cuWE1MSHR0cFJlcXVlc3QoKTsKCX0gY2F0Y2goIGUgKSB7fQp9CgpmdW5jdGlvbiBjcmVhdGVBY3RpdmVYSFIoKSB7Cgl0cnkgewoJCXJldHVybiBuZXcgd2luZG93LkFjdGl2ZVhPYmplY3QoICJNaWNyb3NvZnQuWE1MSFRUUCIgKTsKCX0gY2F0Y2goIGUgKSB7fQp9CgovLyBDcmVhdGUgdGhlIHJlcXVlc3Qgb2JqZWN0Ci8vIChUaGlzIGlzIHN0aWxsIGF0dGFjaGVkIHRvIGFqYXhTZXR0aW5ncyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSkKalF1ZXJ5LmFqYXhTZXR0aW5ncy54aHIgPSB3aW5kb3cuQWN0aXZlWE9iamVjdCA/CgkvKiBNaWNyb3NvZnQgZmFpbGVkIHRvIHByb3Blcmx5CgkgKiBpbXBsZW1lbnQgdGhlIFhNTEh0dHBSZXF1ZXN0IGluIElFNyAoY2FuJ3QgcmVxdWVzdCBsb2NhbCBmaWxlcyksCgkgKiBzbyB3ZSB1c2UgdGhlIEFjdGl2ZVhPYmplY3Qgd2hlbiBpdCBpcyBhdmFpbGFibGUKCSAqIEFkZGl0aW9uYWxseSBYTUxIdHRwUmVxdWVzdCBjYW4gYmUgZGlzYWJsZWQgaW4gSUU3L0lFOCBzbwoJICogd2UgbmVlZCBhIGZhbGxiYWNrLgoJICovCglmdW5jdGlvbigpIHsKCQlyZXR1cm4gIXRoaXMuaXNMb2NhbCAmJiBjcmVhdGVTdGFuZGFyZFhIUigpIHx8IGNyZWF0ZUFjdGl2ZVhIUigpOwoJfSA6CgkvLyBGb3IgYWxsIG90aGVyIGJyb3dzZXJzLCB1c2UgdGhlIHN0YW5kYXJkIFhNTEh0dHBSZXF1ZXN0IG9iamVjdAoJY3JlYXRlU3RhbmRhcmRYSFI7CgovLyBUZXN0IGlmIHdlIGNhbiBjcmVhdGUgYW4geGhyIG9iamVjdAp0ZXN0WEhSID0galF1ZXJ5LmFqYXhTZXR0aW5ncy54aHIoKTsKalF1ZXJ5LnN1cHBvcnQuYWpheCA9ICEhdGVzdFhIUjsKCi8vIERvZXMgdGhpcyBicm93c2VyIHN1cHBvcnQgY3Jvc3NEb21haW4gWEhSIHJlcXVlc3RzCmpRdWVyeS5zdXBwb3J0LmNvcnMgPSB0ZXN0WEhSICYmICggIndpdGhDcmVkZW50aWFscyIgaW4gdGVzdFhIUiApOwoKLy8gTm8gbmVlZCBmb3IgdGhlIHRlbXBvcmFyeSB4aHIgYW55bW9yZQp0ZXN0WEhSID0gdW5kZWZpbmVkOwoKLy8gQ3JlYXRlIHRyYW5zcG9ydCBpZiB0aGUgYnJvd3NlciBjYW4gcHJvdmlkZSBhbiB4aHIKaWYgKCBqUXVlcnkuc3VwcG9ydC5hamF4ICkgewoKCWpRdWVyeS5hamF4VHJhbnNwb3J0KGZ1bmN0aW9uKCBzICkgewoJCS8vIENyb3NzIGRvbWFpbiBvbmx5IGFsbG93ZWQgaWYgc3VwcG9ydGVkIHRocm91Z2ggWE1MSHR0cFJlcXVlc3QKCQlpZiAoICFzLmNyb3NzRG9tYWluIHx8IGpRdWVyeS5zdXBwb3J0LmNvcnMgKSB7CgoJCQl2YXIgY2FsbGJhY2s7CgoJCQlyZXR1cm4gewoJCQkJc2VuZDogZnVuY3Rpb24oIGhlYWRlcnMsIGNvbXBsZXRlICkgewoKCQkJCQkvLyBHZXQgYSBuZXcgeGhyCgkJCQkJdmFyIHhociA9IHMueGhyKCksCgkJCQkJCWhhbmRsZSwKCQkJCQkJaTsKCgkJCQkJLy8gT3BlbiB0aGUgc29ja2V0CgkJCQkJLy8gUGFzc2luZyBudWxsIHVzZXJuYW1lLCBnZW5lcmF0ZXMgYSBsb2dpbiBwb3B1cCBvbiBPcGVyYSAoIzI4NjUpCgkJCQkJaWYgKCBzLnVzZXJuYW1lICkgewoJCQkJCQl4aHIub3Blbiggcy50eXBlLCBzLnVybCwgcy5hc3luYywgcy51c2VybmFtZSwgcy5wYXNzd29yZCApOwoJCQkJCX0gZWxzZSB7CgkJCQkJCXhoci5vcGVuKCBzLnR5cGUsIHMudXJsLCBzLmFzeW5jICk7CgkJCQkJfQoKCQkJCQkvLyBBcHBseSBjdXN0b20gZmllbGRzIGlmIHByb3ZpZGVkCgkJCQkJaWYgKCBzLnhockZpZWxkcyApIHsKCQkJCQkJZm9yICggaSBpbiBzLnhockZpZWxkcyApIHsKCQkJCQkJCXhoclsgaSBdID0gcy54aHJGaWVsZHNbIGkgXTsKCQkJCQkJfQoJCQkJCX0KCgkJCQkJLy8gT3ZlcnJpZGUgbWltZSB0eXBlIGlmIG5lZWRlZAoJCQkJCWlmICggcy5taW1lVHlwZSAmJiB4aHIub3ZlcnJpZGVNaW1lVHlwZSApIHsKCQkJCQkJeGhyLm92ZXJyaWRlTWltZVR5cGUoIHMubWltZVR5cGUgKTsKCQkJCQl9CgoJCQkJCS8vIFJlcXVlc3RlZC1XaXRoIGhlYWRlcgoJCQkJCS8vIE5vdCBzZXQgZm9yIGNyb3NzRG9tYWluIHJlcXVlc3RzIHdpdGggbm8gY29udGVudAoJCQkJCS8vIChzZWUgd2h5IGF0IGh0dHA6Ly90cmFjLmRvam90b29sa2l0Lm9yZy90aWNrZXQvOTQ4NikKCQkJCQkvLyBXb24ndCBjaGFuZ2UgaGVhZGVyIGlmIGFscmVhZHkgcHJvdmlkZWQKCQkJCQlpZiAoICEoIHMuY3Jvc3NEb21haW4gJiYgIXMuaGFzQ29udGVudCApICYmICFoZWFkZXJzWyJYLVJlcXVlc3RlZC1XaXRoIl0gKSB7CgkJCQkJCWhlYWRlcnNbICJYLVJlcXVlc3RlZC1XaXRoIiBdID0gIlhNTEh0dHBSZXF1ZXN0IjsKCQkJCQl9CgoJCQkJCS8vIE5lZWQgYW4gZXh0cmEgdHJ5L2NhdGNoIGZvciBjcm9zcyBkb21haW4gcmVxdWVzdHMgaW4gRmlyZWZveCAzCgkJCQkJdHJ5IHsKCQkJCQkJZm9yICggaSBpbiBoZWFkZXJzICkgewoJCQkJCQkJeGhyLnNldFJlcXVlc3RIZWFkZXIoIGksIGhlYWRlcnNbIGkgXSApOwoJCQkJCQl9CgkJCQkJfSBjYXRjaCggXyApIHt9CgoJCQkJCS8vIERvIHNlbmQgdGhlIHJlcXVlc3QKCQkJCQkvLyBUaGlzIG1heSByYWlzZSBhbiBleGNlcHRpb24gd2hpY2ggaXMgYWN0dWFsbHkKCQkJCQkvLyBoYW5kbGVkIGluIGpRdWVyeS5hamF4IChzbyBubyB0cnkvY2F0Y2ggaGVyZSkKCQkJCQl4aHIuc2VuZCggKCBzLmhhc0NvbnRlbnQgJiYgcy5kYXRhICkgfHwgbnVsbCApOwoKCQkJCQkvLyBMaXN0ZW5lcgoJCQkJCWNhbGxiYWNrID0gZnVuY3Rpb24oIF8sIGlzQWJvcnQgKSB7CgoJCQkJCQl2YXIgc3RhdHVzLAoJCQkJCQkJc3RhdHVzVGV4dCwKCQkJCQkJCXJlc3BvbnNlSGVhZGVycywKCQkJCQkJCXJlc3BvbnNlcywKCQkJCQkJCXhtbDsKCgkJCQkJCS8vIEZpcmVmb3ggdGhyb3dzIGV4Y2VwdGlvbnMgd2hlbiBhY2Nlc3NpbmcgcHJvcGVydGllcwoJCQkJCQkvLyBvZiBhbiB4aHIgd2hlbiBhIG5ldHdvcmsgZXJyb3Igb2NjdXJlZAoJCQkJCQkvLyBodHRwOi8vaGVscGZ1bC5rbm9icy1kaWFscy5jb20vaW5kZXgucGhwL0NvbXBvbmVudF9yZXR1cm5lZF9mYWlsdXJlX2NvZGU6XzB4ODAwNDAxMTFfKE5TX0VSUk9SX05PVF9BVkFJTEFCTEUpCgkJCQkJCXRyeSB7CgoJCQkJCQkJLy8gV2FzIG5ldmVyIGNhbGxlZCBhbmQgaXMgYWJvcnRlZCBvciBjb21wbGV0ZQoJCQkJCQkJaWYgKCBjYWxsYmFjayAmJiAoIGlzQWJvcnQgfHwgeGhyLnJlYWR5U3RhdGUgPT09IDQgKSApIHsKCgkJCQkJCQkJLy8gT25seSBjYWxsZWQgb25jZQoJCQkJCQkJCWNhbGxiYWNrID0gdW5kZWZpbmVkOwoKCQkJCQkJCQkvLyBEbyBub3Qga2VlcCBhcyBhY3RpdmUgYW55bW9yZQoJCQkJCQkJCWlmICggaGFuZGxlICkgewoJCQkJCQkJCQl4aHIub25yZWFkeXN0YXRlY2hhbmdlID0galF1ZXJ5Lm5vb3A7CgkJCQkJCQkJCWRlbGV0ZSB4aHJDYWxsYmFja3NbIGhhbmRsZSBdOwoJCQkJCQkJCX0KCgkJCQkJCQkJLy8gSWYgaXQncyBhbiBhYm9ydAoJCQkJCQkJCWlmICggaXNBYm9ydCApIHsKCQkJCQkJCQkJLy8gQWJvcnQgaXQgbWFudWFsbHkgaWYgbmVlZGVkCgkJCQkJCQkJCWlmICggeGhyLnJlYWR5U3RhdGUgIT09IDQgKSB7CgkJCQkJCQkJCQl4aHIuYWJvcnQoKTsKCQkJCQkJCQkJfQoJCQkJCQkJCX0gZWxzZSB7CgkJCQkJCQkJCXN0YXR1cyA9IHhoci5zdGF0dXM7CgkJCQkJCQkJCXJlc3BvbnNlSGVhZGVycyA9IHhoci5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKTsKCQkJCQkJCQkJcmVzcG9uc2VzID0ge307CgkJCQkJCQkJCXhtbCA9IHhoci5yZXNwb25zZVhNTDsKCgkJCQkJCQkJCS8vIENvbnN0cnVjdCByZXNwb25zZSBsaXN0CgkJCQkJCQkJCWlmICggeG1sICYmIHhtbC5kb2N1bWVudEVsZW1lbnQgLyogIzQ5NTggKi8gKSB7CgkJCQkJCQkJCQlyZXNwb25zZXMueG1sID0geG1sOwoJCQkJCQkJCQl9CgkJCQkJCQkJCXJlc3BvbnNlcy50ZXh0ID0geGhyLnJlc3BvbnNlVGV4dDsKCgkJCQkJCQkJCS8vIEZpcmVmb3ggdGhyb3dzIGFuIGV4Y2VwdGlvbiB3aGVuIGFjY2Vzc2luZwoJCQkJCQkJCQkvLyBzdGF0dXNUZXh0IGZvciBmYXVsdHkgY3Jvc3MtZG9tYWluIHJlcXVlc3RzCgkJCQkJCQkJCXRyeSB7CgkJCQkJCQkJCQlzdGF0dXNUZXh0ID0geGhyLnN0YXR1c1RleHQ7CgkJCQkJCQkJCX0gY2F0Y2goIGUgKSB7CgkJCQkJCQkJCQkvLyBXZSBub3JtYWxpemUgd2l0aCBXZWJraXQgZ2l2aW5nIGFuIGVtcHR5IHN0YXR1c1RleHQKCQkJCQkJCQkJCXN0YXR1c1RleHQgPSAiIjsKCQkJCQkJCQkJfQoKCQkJCQkJCQkJLy8gRmlsdGVyIHN0YXR1cyBmb3Igbm9uIHN0YW5kYXJkIGJlaGF2aW9ycwoKCQkJCQkJCQkJLy8gSWYgdGhlIHJlcXVlc3QgaXMgbG9jYWwgYW5kIHdlIGhhdmUgZGF0YTogYXNzdW1lIGEgc3VjY2VzcwoJCQkJCQkJCQkvLyAoc3VjY2VzcyB3aXRoIG5vIGRhdGEgd29uJ3QgZ2V0IG5vdGlmaWVkLCB0aGF0J3MgdGhlIGJlc3Qgd2UKCQkJCQkJCQkJLy8gY2FuIGRvIGdpdmVuIGN1cnJlbnQgaW1wbGVtZW50YXRpb25zKQoJCQkJCQkJCQlpZiAoICFzdGF0dXMgJiYgcy5pc0xvY2FsICYmICFzLmNyb3NzRG9tYWluICkgewoJCQkJCQkJCQkJc3RhdHVzID0gcmVzcG9uc2VzLnRleHQgPyAyMDAgOiA0MDQ7CgkJCQkJCQkJCS8vIElFIC0gIzE0NTA6IHNvbWV0aW1lcyByZXR1cm5zIDEyMjMgd2hlbiBpdCBzaG91bGQgYmUgMjA0CgkJCQkJCQkJCX0gZWxzZSBpZiAoIHN0YXR1cyA9PT0gMTIyMyApIHsKCQkJCQkJCQkJCXN0YXR1cyA9IDIwNDsKCQkJCQkJCQkJfQoJCQkJCQkJCX0KCQkJCQkJCX0KCQkJCQkJfSBjYXRjaCggZmlyZWZveEFjY2Vzc0V4Y2VwdGlvbiApIHsKCQkJCQkJCWlmICggIWlzQWJvcnQgKSB7CgkJCQkJCQkJY29tcGxldGUoIC0xLCBmaXJlZm94QWNjZXNzRXhjZXB0aW9uICk7CgkJCQkJCQl9CgkJCQkJCX0KCgkJCQkJCS8vIENhbGwgY29tcGxldGUgaWYgbmVlZGVkCgkJCQkJCWlmICggcmVzcG9uc2VzICkgewoJCQkJCQkJY29tcGxldGUoIHN0YXR1cywgc3RhdHVzVGV4dCwgcmVzcG9uc2VzLCByZXNwb25zZUhlYWRlcnMgKTsKCQkJCQkJfQoJCQkJCX07CgoJCQkJCS8vIGlmIHdlJ3JlIGluIHN5bmMgbW9kZSBvciBpdCdzIGluIGNhY2hlCgkJCQkJLy8gYW5kIGhhcyBiZWVuIHJldHJpZXZlZCBkaXJlY3RseSAoSUU2ICYgSUU3KQoJCQkJCS8vIHdlIG5lZWQgdG8gbWFudWFsbHkgZmlyZSB0aGUgY2FsbGJhY2sKCQkJCQlpZiAoICFzLmFzeW5jIHx8IHhoci5yZWFkeVN0YXRlID09PSA0ICkgewoJCQkJCQljYWxsYmFjaygpOwoJCQkJCX0gZWxzZSB7CgkJCQkJCS8vIENyZWF0ZSB0aGUgYWN0aXZlIHhocnMgY2FsbGJhY2tzIGxpc3QgaWYgbmVlZGVkCgkJCQkJCS8vIGFuZCBhdHRhY2ggdGhlIHVubG9hZCBoYW5kbGVyCgkJCQkJCWlmICggIXhockNhbGxiYWNrcyApIHsKCQkJCQkJCXhockNhbGxiYWNrcyA9IHt9OwoJCQkJCQkJeGhyT25VbmxvYWRBYm9ydCgpOwoJCQkJCQl9CgkJCQkJCS8vIEFkZCB0byBsaXN0IG9mIGFjdGl2ZSB4aHJzIGNhbGxiYWNrcwoJCQkJCQloYW5kbGUgPSB4aHJJZCsrOwoJCQkJCQl4aHIub25yZWFkeXN0YXRlY2hhbmdlID0geGhyQ2FsbGJhY2tzWyBoYW5kbGUgXSA9IGNhbGxiYWNrOwoJCQkJCX0KCQkJCX0sCgoJCQkJYWJvcnQ6IGZ1bmN0aW9uKCkgewoJCQkJCWlmICggY2FsbGJhY2sgKSB7CgkJCQkJCWNhbGxiYWNrKDAsMSk7CgkJCQkJfQoJCQkJfQoJCQl9OwoJCX0KCX0pOwp9CgoKCgp2YXIgZWxlbWRpc3BsYXkgPSB7fSwKCXJmeHR5cGVzID0gL14oPzp0b2dnbGV8c2hvd3xoaWRlKSQvLAoJcmZ4bnVtID0gL14oWytcLV09KT8oW1xkKy5cLV0rKShbYS16JV0qKSQvaSwKCXRpbWVySWQsCglmeEF0dHJzID0gWwoJCS8vIGhlaWdodCBhbmltYXRpb25zCgkJWyAiaGVpZ2h0IiwgIm1hcmdpblRvcCIsICJtYXJnaW5Cb3R0b20iLCAicGFkZGluZ1RvcCIsICJwYWRkaW5nQm90dG9tIiBdLAoJCS8vIHdpZHRoIGFuaW1hdGlvbnMKCQlbICJ3aWR0aCIsICJtYXJnaW5MZWZ0IiwgIm1hcmdpblJpZ2h0IiwgInBhZGRpbmdMZWZ0IiwgInBhZGRpbmdSaWdodCIgXSwKCQkvLyBvcGFjaXR5IGFuaW1hdGlvbnMKCQlbICJvcGFjaXR5IiBdCgldOwoKalF1ZXJ5LmZuLmV4dGVuZCh7CglzaG93OiBmdW5jdGlvbiggc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSB7CgkJdmFyIGVsZW0sIGRpc3BsYXk7CgoJCWlmICggc3BlZWQgfHwgc3BlZWQgPT09IDAgKSB7CgkJCXJldHVybiB0aGlzLmFuaW1hdGUoIGdlbkZ4KCJzaG93IiwgMyksIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrKTsKCgkJfSBlbHNlIHsKCQkJZm9yICggdmFyIGkgPSAwLCBqID0gdGhpcy5sZW5ndGg7IGkgPCBqOyBpKysgKSB7CgkJCQllbGVtID0gdGhpc1tpXTsKCQkJCWRpc3BsYXkgPSBlbGVtLnN0eWxlLmRpc3BsYXk7CgoJCQkJLy8gUmVzZXQgdGhlIGlubGluZSBkaXNwbGF5IG9mIHRoaXMgZWxlbWVudCB0byBsZWFybiBpZiBpdCBpcwoJCQkJLy8gYmVpbmcgaGlkZGVuIGJ5IGNhc2NhZGVkIHJ1bGVzIG9yIG5vdAoJCQkJaWYgKCAhalF1ZXJ5Ll9kYXRhKGVsZW0sICJvbGRkaXNwbGF5IikgJiYgZGlzcGxheSA9PT0gIm5vbmUiICkgewoJCQkJCWRpc3BsYXkgPSBlbGVtLnN0eWxlLmRpc3BsYXkgPSAiIjsKCQkJCX0KCgkJCQkvLyBTZXQgZWxlbWVudHMgd2hpY2ggaGF2ZSBiZWVuIG92ZXJyaWRkZW4gd2l0aCBkaXNwbGF5OiBub25lCgkJCQkvLyBpbiBhIHN0eWxlc2hlZXQgdG8gd2hhdGV2ZXIgdGhlIGRlZmF1bHQgYnJvd3NlciBzdHlsZSBpcwoJCQkJLy8gZm9yIHN1Y2ggYW4gZWxlbWVudAoJCQkJaWYgKCBkaXNwbGF5ID09PSAiIiAmJiBqUXVlcnkuY3NzKCBlbGVtLCAiZGlzcGxheSIgKSA9PT0gIm5vbmUiICkgewoJCQkJCWpRdWVyeS5fZGF0YShlbGVtLCAib2xkZGlzcGxheSIsIGRlZmF1bHREaXNwbGF5KGVsZW0ubm9kZU5hbWUpKTsKCQkJCX0KCQkJfQoKCQkJLy8gU2V0IHRoZSBkaXNwbGF5IG9mIG1vc3Qgb2YgdGhlIGVsZW1lbnRzIGluIGEgc2Vjb25kIGxvb3AKCQkJLy8gdG8gYXZvaWQgdGhlIGNvbnN0YW50IHJlZmxvdwoJCQlmb3IgKCBpID0gMDsgaSA8IGo7IGkrKyApIHsKCQkJCWVsZW0gPSB0aGlzW2ldOwoJCQkJZGlzcGxheSA9IGVsZW0uc3R5bGUuZGlzcGxheTsKCgkJCQlpZiAoIGRpc3BsYXkgPT09ICIiIHx8IGRpc3BsYXkgPT09ICJub25lIiApIHsKCQkJCQllbGVtLnN0eWxlLmRpc3BsYXkgPSBqUXVlcnkuX2RhdGEoZWxlbSwgIm9sZGRpc3BsYXkiKSB8fCAiIjsKCQkJCX0KCQkJfQoKCQkJcmV0dXJuIHRoaXM7CgkJfQoJfSwKCgloaWRlOiBmdW5jdGlvbiggc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSB7CgkJaWYgKCBzcGVlZCB8fCBzcGVlZCA9PT0gMCApIHsKCQkJcmV0dXJuIHRoaXMuYW5pbWF0ZSggZ2VuRngoImhpZGUiLCAzKSwgc3BlZWQsIGVhc2luZywgY2FsbGJhY2spOwoKCQl9IGVsc2UgewoJCQlmb3IgKCB2YXIgaSA9IDAsIGogPSB0aGlzLmxlbmd0aDsgaSA8IGo7IGkrKyApIHsKCQkJCXZhciBkaXNwbGF5ID0galF1ZXJ5LmNzcyggdGhpc1tpXSwgImRpc3BsYXkiICk7CgoJCQkJaWYgKCBkaXNwbGF5ICE9PSAibm9uZSIgJiYgIWpRdWVyeS5fZGF0YSggdGhpc1tpXSwgIm9sZGRpc3BsYXkiICkgKSB7CgkJCQkJalF1ZXJ5Ll9kYXRhKCB0aGlzW2ldLCAib2xkZGlzcGxheSIsIGRpc3BsYXkgKTsKCQkJCX0KCQkJfQoKCQkJLy8gU2V0IHRoZSBkaXNwbGF5IG9mIHRoZSBlbGVtZW50cyBpbiBhIHNlY29uZCBsb29wCgkJCS8vIHRvIGF2b2lkIHRoZSBjb25zdGFudCByZWZsb3cKCQkJZm9yICggaSA9IDA7IGkgPCBqOyBpKysgKSB7CgkJCQl0aGlzW2ldLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CgkJCX0KCgkJCXJldHVybiB0aGlzOwoJCX0KCX0sCgoJLy8gU2F2ZSB0aGUgb2xkIHRvZ2dsZSBmdW5jdGlvbgoJX3RvZ2dsZTogalF1ZXJ5LmZuLnRvZ2dsZSwKCgl0b2dnbGU6IGZ1bmN0aW9uKCBmbiwgZm4yLCBjYWxsYmFjayApIHsKCQl2YXIgYm9vbCA9IHR5cGVvZiBmbiA9PT0gImJvb2xlYW4iOwoKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKGZuKSAmJiBqUXVlcnkuaXNGdW5jdGlvbihmbjIpICkgewoJCQl0aGlzLl90b2dnbGUuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApOwoKCQl9IGVsc2UgaWYgKCBmbiA9PSBudWxsIHx8IGJvb2wgKSB7CgkJCXRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJCXZhciBzdGF0ZSA9IGJvb2wgPyBmbiA6IGpRdWVyeSh0aGlzKS5pcygiOmhpZGRlbiIpOwoJCQkJalF1ZXJ5KHRoaXMpWyBzdGF0ZSA/ICJzaG93IiA6ICJoaWRlIiBdKCk7CgkJCX0pOwoKCQl9IGVsc2UgewoJCQl0aGlzLmFuaW1hdGUoZ2VuRngoInRvZ2dsZSIsIDMpLCBmbiwgZm4yLCBjYWxsYmFjayk7CgkJfQoKCQlyZXR1cm4gdGhpczsKCX0sCgoJZmFkZVRvOiBmdW5jdGlvbiggc3BlZWQsIHRvLCBlYXNpbmcsIGNhbGxiYWNrICkgewoJCXJldHVybiB0aGlzLmZpbHRlcigiOmhpZGRlbiIpLmNzcygib3BhY2l0eSIsIDApLnNob3coKS5lbmQoKQoJCQkJCS5hbmltYXRlKHtvcGFjaXR5OiB0b30sIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrKTsKCX0sCgoJYW5pbWF0ZTogZnVuY3Rpb24oIHByb3AsIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrICkgewoJCXZhciBvcHRhbGwgPSBqUXVlcnkuc3BlZWQoc3BlZWQsIGVhc2luZywgY2FsbGJhY2spOwoKCQlpZiAoIGpRdWVyeS5pc0VtcHR5T2JqZWN0KCBwcm9wICkgKSB7CgkJCXJldHVybiB0aGlzLmVhY2goIG9wdGFsbC5jb21wbGV0ZSApOwoJCX0KCgkJcmV0dXJuIHRoaXNbIG9wdGFsbC5xdWV1ZSA9PT0gZmFsc2UgPyAiZWFjaCIgOiAicXVldWUiIF0oZnVuY3Rpb24oKSB7CgkJCS8vIFhYWCAndGhpcycgZG9lcyBub3QgYWx3YXlzIGhhdmUgYSBub2RlTmFtZSB3aGVuIHJ1bm5pbmcgdGhlCgkJCS8vIHRlc3Qgc3VpdGUKCgkJCXZhciBvcHQgPSBqUXVlcnkuZXh0ZW5kKHt9LCBvcHRhbGwpLCBwLAoJCQkJaXNFbGVtZW50ID0gdGhpcy5ub2RlVHlwZSA9PT0gMSwKCQkJCWhpZGRlbiA9IGlzRWxlbWVudCAmJiBqUXVlcnkodGhpcykuaXMoIjpoaWRkZW4iKSwKCQkJCXNlbGYgPSB0aGlzOwoKCQkJZm9yICggcCBpbiBwcm9wICkgewoJCQkJdmFyIG5hbWUgPSBqUXVlcnkuY2FtZWxDYXNlKCBwICk7CgoJCQkJaWYgKCBwICE9PSBuYW1lICkgewoJCQkJCXByb3BbIG5hbWUgXSA9IHByb3BbIHAgXTsKCQkJCQlkZWxldGUgcHJvcFsgcCBdOwoJCQkJCXAgPSBuYW1lOwoJCQkJfQoKCQkJCWlmICggcHJvcFtwXSA9PT0gImhpZGUiICYmIGhpZGRlbiB8fCBwcm9wW3BdID09PSAic2hvdyIgJiYgIWhpZGRlbiApIHsKCQkJCQlyZXR1cm4gb3B0LmNvbXBsZXRlLmNhbGwodGhpcyk7CgkJCQl9CgoJCQkJaWYgKCBpc0VsZW1lbnQgJiYgKCBwID09PSAiaGVpZ2h0IiB8fCBwID09PSAid2lkdGgiICkgKSB7CgkJCQkJLy8gTWFrZSBzdXJlIHRoYXQgbm90aGluZyBzbmVha3Mgb3V0CgkJCQkJLy8gUmVjb3JkIGFsbCAzIG92ZXJmbG93IGF0dHJpYnV0ZXMgYmVjYXVzZSBJRSBkb2VzIG5vdAoJCQkJCS8vIGNoYW5nZSB0aGUgb3ZlcmZsb3cgYXR0cmlidXRlIHdoZW4gb3ZlcmZsb3dYIGFuZAoJCQkJCS8vIG92ZXJmbG93WSBhcmUgc2V0IHRvIHRoZSBzYW1lIHZhbHVlCgkJCQkJb3B0Lm92ZXJmbG93ID0gWyB0aGlzLnN0eWxlLm92ZXJmbG93LCB0aGlzLnN0eWxlLm92ZXJmbG93WCwgdGhpcy5zdHlsZS5vdmVyZmxvd1kgXTsKCgkJCQkJLy8gU2V0IGRpc3BsYXkgcHJvcGVydHkgdG8gaW5saW5lLWJsb2NrIGZvciBoZWlnaHQvd2lkdGgKCQkJCQkvLyBhbmltYXRpb25zIG9uIGlubGluZSBlbGVtZW50cyB0aGF0IGFyZSBoYXZpbmcgd2lkdGgvaGVpZ2h0CgkJCQkJLy8gYW5pbWF0ZWQKCQkJCQlpZiAoIGpRdWVyeS5jc3MoIHRoaXMsICJkaXNwbGF5IiApID09PSAiaW5saW5lIiAmJgoJCQkJCQkJalF1ZXJ5LmNzcyggdGhpcywgImZsb2F0IiApID09PSAibm9uZSIgKSB7CgkJCQkJCWlmICggIWpRdWVyeS5zdXBwb3J0LmlubGluZUJsb2NrTmVlZHNMYXlvdXQgKSB7CgkJCQkJCQl0aGlzLnN0eWxlLmRpc3BsYXkgPSAiaW5saW5lLWJsb2NrIjsKCgkJCQkJCX0gZWxzZSB7CgkJCQkJCQl2YXIgZGlzcGxheSA9IGRlZmF1bHREaXNwbGF5KHRoaXMubm9kZU5hbWUpOwoKCQkJCQkJCS8vIGlubGluZS1sZXZlbCBlbGVtZW50cyBhY2NlcHQgaW5saW5lLWJsb2NrOwoJCQkJCQkJLy8gYmxvY2stbGV2ZWwgZWxlbWVudHMgbmVlZCB0byBiZSBpbmxpbmUgd2l0aCBsYXlvdXQKCQkJCQkJCWlmICggZGlzcGxheSA9PT0gImlubGluZSIgKSB7CgkJCQkJCQkJdGhpcy5zdHlsZS5kaXNwbGF5ID0gImlubGluZS1ibG9jayI7CgoJCQkJCQkJfSBlbHNlIHsKCQkJCQkJCQl0aGlzLnN0eWxlLmRpc3BsYXkgPSAiaW5saW5lIjsKCQkJCQkJCQl0aGlzLnN0eWxlLnpvb20gPSAxOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfQoJCQkJfQoKCQkJCWlmICggalF1ZXJ5LmlzQXJyYXkoIHByb3BbcF0gKSApIHsKCQkJCQkvLyBDcmVhdGUgKGlmIG5lZWRlZCkgYW5kIGFkZCB0byBzcGVjaWFsRWFzaW5nCgkJCQkJKG9wdC5zcGVjaWFsRWFzaW5nID0gb3B0LnNwZWNpYWxFYXNpbmcgfHwge30pW3BdID0gcHJvcFtwXVsxXTsKCQkJCQlwcm9wW3BdID0gcHJvcFtwXVswXTsKCQkJCX0KCQkJfQoKCQkJaWYgKCBvcHQub3ZlcmZsb3cgIT0gbnVsbCApIHsKCQkJCXRoaXMuc3R5bGUub3ZlcmZsb3cgPSAiaGlkZGVuIjsKCQkJfQoKCQkJb3B0LmN1ckFuaW0gPSBqUXVlcnkuZXh0ZW5kKHt9LCBwcm9wKTsKCgkJCWpRdWVyeS5lYWNoKCBwcm9wLCBmdW5jdGlvbiggbmFtZSwgdmFsICkgewoJCQkJdmFyIGUgPSBuZXcgalF1ZXJ5LmZ4KCBzZWxmLCBvcHQsIG5hbWUgKTsKCgkJCQlpZiAoIHJmeHR5cGVzLnRlc3QodmFsKSApIHsKCQkJCQllWyB2YWwgPT09ICJ0b2dnbGUiID8gaGlkZGVuID8gInNob3ciIDogImhpZGUiIDogdmFsIF0oIHByb3AgKTsKCgkJCQl9IGVsc2UgewoJCQkJCXZhciBwYXJ0cyA9IHJmeG51bS5leGVjKHZhbCksCgkJCQkJCXN0YXJ0ID0gZS5jdXIoKTsKCgkJCQkJaWYgKCBwYXJ0cyApIHsKCQkJCQkJdmFyIGVuZCA9IHBhcnNlRmxvYXQoIHBhcnRzWzJdICksCgkJCQkJCQl1bml0ID0gcGFydHNbM10gfHwgKCBqUXVlcnkuY3NzTnVtYmVyWyBuYW1lIF0gPyAiIiA6ICJweCIgKTsKCgkJCQkJCS8vIFdlIG5lZWQgdG8gY29tcHV0ZSBzdGFydGluZyB2YWx1ZQoJCQkJCQlpZiAoIHVuaXQgIT09ICJweCIgKSB7CgkJCQkJCQlqUXVlcnkuc3R5bGUoIHNlbGYsIG5hbWUsIChlbmQgfHwgMSkgKyB1bml0KTsKCQkJCQkJCXN0YXJ0ID0gKChlbmQgfHwgMSkgLyBlLmN1cigpKSAqIHN0YXJ0OwoJCQkJCQkJalF1ZXJ5LnN0eWxlKCBzZWxmLCBuYW1lLCBzdGFydCArIHVuaXQpOwoJCQkJCQl9CgoJCQkJCQkvLyBJZiBhICs9Ly09IHRva2VuIHdhcyBwcm92aWRlZCwgd2UncmUgZG9pbmcgYSByZWxhdGl2ZSBhbmltYXRpb24KCQkJCQkJaWYgKCBwYXJ0c1sxXSApIHsKCQkJCQkJCWVuZCA9ICgocGFydHNbMV0gPT09ICItPSIgPyAtMSA6IDEpICogZW5kKSArIHN0YXJ0OwoJCQkJCQl9CgoJCQkJCQllLmN1c3RvbSggc3RhcnQsIGVuZCwgdW5pdCApOwoKCQkJCQl9IGVsc2UgewoJCQkJCQllLmN1c3RvbSggc3RhcnQsIHZhbCwgIiIgKTsKCQkJCQl9CgkJCQl9CgkJCX0pOwoKCQkJLy8gRm9yIEpTIHN0cmljdCBjb21wbGlhbmNlCgkJCXJldHVybiB0cnVlOwoJCX0pOwoJfSwKCglzdG9wOiBmdW5jdGlvbiggY2xlYXJRdWV1ZSwgZ290b0VuZCApIHsKCQl2YXIgdGltZXJzID0galF1ZXJ5LnRpbWVyczsKCgkJaWYgKCBjbGVhclF1ZXVlICkgewoJCQl0aGlzLnF1ZXVlKFtdKTsKCQl9CgoJCXRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJLy8gZ28gaW4gcmV2ZXJzZSBvcmRlciBzbyBhbnl0aGluZyBhZGRlZCB0byB0aGUgcXVldWUgZHVyaW5nIHRoZSBsb29wIGlzIGlnbm9yZWQKCQkJZm9yICggdmFyIGkgPSB0aW1lcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0gKSB7CgkJCQlpZiAoIHRpbWVyc1tpXS5lbGVtID09PSB0aGlzICkgewoJCQkJCWlmIChnb3RvRW5kKSB7CgkJCQkJCS8vIGZvcmNlIHRoZSBuZXh0IHN0ZXAgdG8gYmUgdGhlIGxhc3QKCQkJCQkJdGltZXJzW2ldKHRydWUpOwoJCQkJCX0KCgkJCQkJdGltZXJzLnNwbGljZShpLCAxKTsKCQkJCX0KCQkJfQoJCX0pOwoKCQkvLyBzdGFydCB0aGUgbmV4dCBpbiB0aGUgcXVldWUgaWYgdGhlIGxhc3Qgc3RlcCB3YXNuJ3QgZm9yY2VkCgkJaWYgKCAhZ290b0VuZCApIHsKCQkJdGhpcy5kZXF1ZXVlKCk7CgkJfQoKCQlyZXR1cm4gdGhpczsKCX0KCn0pOwoKZnVuY3Rpb24gZ2VuRngoIHR5cGUsIG51bSApIHsKCXZhciBvYmogPSB7fTsKCglqUXVlcnkuZWFjaCggZnhBdHRycy5jb25jYXQuYXBwbHkoW10sIGZ4QXR0cnMuc2xpY2UoMCxudW0pKSwgZnVuY3Rpb24oKSB7CgkJb2JqWyB0aGlzIF0gPSB0eXBlOwoJfSk7CgoJcmV0dXJuIG9iajsKfQoKLy8gR2VuZXJhdGUgc2hvcnRjdXRzIGZvciBjdXN0b20gYW5pbWF0aW9ucwpqUXVlcnkuZWFjaCh7CglzbGlkZURvd246IGdlbkZ4KCJzaG93IiwgMSksCglzbGlkZVVwOiBnZW5GeCgiaGlkZSIsIDEpLAoJc2xpZGVUb2dnbGU6IGdlbkZ4KCJ0b2dnbGUiLCAxKSwKCWZhZGVJbjogeyBvcGFjaXR5OiAic2hvdyIgfSwKCWZhZGVPdXQ6IHsgb3BhY2l0eTogImhpZGUiIH0sCglmYWRlVG9nZ2xlOiB7IG9wYWNpdHk6ICJ0b2dnbGUiIH0KfSwgZnVuY3Rpb24oIG5hbWUsIHByb3BzICkgewoJalF1ZXJ5LmZuWyBuYW1lIF0gPSBmdW5jdGlvbiggc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSB7CgkJcmV0dXJuIHRoaXMuYW5pbWF0ZSggcHJvcHMsIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrICk7Cgl9Owp9KTsKCmpRdWVyeS5leHRlbmQoewoJc3BlZWQ6IGZ1bmN0aW9uKCBzcGVlZCwgZWFzaW5nLCBmbiApIHsKCQl2YXIgb3B0ID0gc3BlZWQgJiYgdHlwZW9mIHNwZWVkID09PSAib2JqZWN0IiA/IGpRdWVyeS5leHRlbmQoe30sIHNwZWVkKSA6IHsKCQkJY29tcGxldGU6IGZuIHx8ICFmbiAmJiBlYXNpbmcgfHwKCQkJCWpRdWVyeS5pc0Z1bmN0aW9uKCBzcGVlZCApICYmIHNwZWVkLAoJCQlkdXJhdGlvbjogc3BlZWQsCgkJCWVhc2luZzogZm4gJiYgZWFzaW5nIHx8IGVhc2luZyAmJiAhalF1ZXJ5LmlzRnVuY3Rpb24oZWFzaW5nKSAmJiBlYXNpbmcKCQl9OwoKCQlvcHQuZHVyYXRpb24gPSBqUXVlcnkuZngub2ZmID8gMCA6IHR5cGVvZiBvcHQuZHVyYXRpb24gPT09ICJudW1iZXIiID8gb3B0LmR1cmF0aW9uIDoKCQkJb3B0LmR1cmF0aW9uIGluIGpRdWVyeS5meC5zcGVlZHMgPyBqUXVlcnkuZnguc3BlZWRzW29wdC5kdXJhdGlvbl0gOiBqUXVlcnkuZnguc3BlZWRzLl9kZWZhdWx0OwoKCQkvLyBRdWV1ZWluZwoJCW9wdC5vbGQgPSBvcHQuY29tcGxldGU7CgkJb3B0LmNvbXBsZXRlID0gZnVuY3Rpb24oKSB7CgkJCWlmICggb3B0LnF1ZXVlICE9PSBmYWxzZSApIHsKCQkJCWpRdWVyeSh0aGlzKS5kZXF1ZXVlKCk7CgkJCX0KCQkJaWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggb3B0Lm9sZCApICkgewoJCQkJb3B0Lm9sZC5jYWxsKCB0aGlzICk7CgkJCX0KCQl9OwoKCQlyZXR1cm4gb3B0OwoJfSwKCgllYXNpbmc6IHsKCQlsaW5lYXI6IGZ1bmN0aW9uKCBwLCBuLCBmaXJzdE51bSwgZGlmZiApIHsKCQkJcmV0dXJuIGZpcnN0TnVtICsgZGlmZiAqIHA7CgkJfSwKCQlzd2luZzogZnVuY3Rpb24oIHAsIG4sIGZpcnN0TnVtLCBkaWZmICkgewoJCQlyZXR1cm4gKCgtTWF0aC5jb3MocCpNYXRoLlBJKS8yKSArIDAuNSkgKiBkaWZmICsgZmlyc3ROdW07CgkJfQoJfSwKCgl0aW1lcnM6IFtdLAoKCWZ4OiBmdW5jdGlvbiggZWxlbSwgb3B0aW9ucywgcHJvcCApIHsKCQl0aGlzLm9wdGlvbnMgPSBvcHRpb25zOwoJCXRoaXMuZWxlbSA9IGVsZW07CgkJdGhpcy5wcm9wID0gcHJvcDsKCgkJaWYgKCAhb3B0aW9ucy5vcmlnICkgewoJCQlvcHRpb25zLm9yaWcgPSB7fTsKCQl9Cgl9Cgp9KTsKCmpRdWVyeS5meC5wcm90b3R5cGUgPSB7CgkvLyBTaW1wbGUgZnVuY3Rpb24gZm9yIHNldHRpbmcgYSBzdHlsZSB2YWx1ZQoJdXBkYXRlOiBmdW5jdGlvbigpIHsKCQlpZiAoIHRoaXMub3B0aW9ucy5zdGVwICkgewoJCQl0aGlzLm9wdGlvbnMuc3RlcC5jYWxsKCB0aGlzLmVsZW0sIHRoaXMubm93LCB0aGlzICk7CgkJfQoKCQkoalF1ZXJ5LmZ4LnN0ZXBbdGhpcy5wcm9wXSB8fCBqUXVlcnkuZnguc3RlcC5fZGVmYXVsdCkoIHRoaXMgKTsKCX0sCgoJLy8gR2V0IHRoZSBjdXJyZW50IHNpemUKCWN1cjogZnVuY3Rpb24oKSB7CgkJaWYgKCB0aGlzLmVsZW1bdGhpcy5wcm9wXSAhPSBudWxsICYmICghdGhpcy5lbGVtLnN0eWxlIHx8IHRoaXMuZWxlbS5zdHlsZVt0aGlzLnByb3BdID09IG51bGwpICkgewoJCQlyZXR1cm4gdGhpcy5lbGVtWyB0aGlzLnByb3AgXTsKCQl9CgoJCXZhciBwYXJzZWQsCgkJCXIgPSBqUXVlcnkuY3NzKCB0aGlzLmVsZW0sIHRoaXMucHJvcCApOwoJCS8vIEVtcHR5IHN0cmluZ3MsIG51bGwsIHVuZGVmaW5lZCBhbmQgImF1dG8iIGFyZSBjb252ZXJ0ZWQgdG8gMCwKCQkvLyBjb21wbGV4IHZhbHVlcyBzdWNoIGFzICJyb3RhdGUoMXJhZCkiIGFyZSByZXR1cm5lZCBhcyBpcywKCQkvLyBzaW1wbGUgdmFsdWVzIHN1Y2ggYXMgIjEwcHgiIGFyZSBwYXJzZWQgdG8gRmxvYXQuCgkJcmV0dXJuIGlzTmFOKCBwYXJzZWQgPSBwYXJzZUZsb2F0KCByICkgKSA/ICFyIHx8IHIgPT09ICJhdXRvIiA/IDAgOiByIDogcGFyc2VkOwoJfSwKCgkvLyBTdGFydCBhbiBhbmltYXRpb24gZnJvbSBvbmUgbnVtYmVyIHRvIGFub3RoZXIKCWN1c3RvbTogZnVuY3Rpb24oIGZyb20sIHRvLCB1bml0ICkgewoJCXZhciBzZWxmID0gdGhpcywKCQkJZnggPSBqUXVlcnkuZng7CgoJCXRoaXMuc3RhcnRUaW1lID0galF1ZXJ5Lm5vdygpOwoJCXRoaXMuc3RhcnQgPSBmcm9tOwoJCXRoaXMuZW5kID0gdG87CgkJdGhpcy51bml0ID0gdW5pdCB8fCB0aGlzLnVuaXQgfHwgKCBqUXVlcnkuY3NzTnVtYmVyWyB0aGlzLnByb3AgXSA/ICIiIDogInB4IiApOwoJCXRoaXMubm93ID0gdGhpcy5zdGFydDsKCQl0aGlzLnBvcyA9IHRoaXMuc3RhdGUgPSAwOwoKCQlmdW5jdGlvbiB0KCBnb3RvRW5kICkgewoJCQlyZXR1cm4gc2VsZi5zdGVwKGdvdG9FbmQpOwoJCX0KCgkJdC5lbGVtID0gdGhpcy5lbGVtOwoKCQlpZiAoIHQoKSAmJiBqUXVlcnkudGltZXJzLnB1c2godCkgJiYgIXRpbWVySWQgKSB7CgkJCXRpbWVySWQgPSBzZXRJbnRlcnZhbChmeC50aWNrLCBmeC5pbnRlcnZhbCk7CgkJfQoJfSwKCgkvLyBTaW1wbGUgJ3Nob3cnIGZ1bmN0aW9uCglzaG93OiBmdW5jdGlvbigpIHsKCQkvLyBSZW1lbWJlciB3aGVyZSB3ZSBzdGFydGVkLCBzbyB0aGF0IHdlIGNhbiBnbyBiYWNrIHRvIGl0IGxhdGVyCgkJdGhpcy5vcHRpb25zLm9yaWdbdGhpcy5wcm9wXSA9IGpRdWVyeS5zdHlsZSggdGhpcy5lbGVtLCB0aGlzLnByb3AgKTsKCQl0aGlzLm9wdGlvbnMuc2hvdyA9IHRydWU7CgoJCS8vIEJlZ2luIHRoZSBhbmltYXRpb24KCQkvLyBNYWtlIHN1cmUgdGhhdCB3ZSBzdGFydCBhdCBhIHNtYWxsIHdpZHRoL2hlaWdodCB0byBhdm9pZCBhbnkKCQkvLyBmbGFzaCBvZiBjb250ZW50CgkJdGhpcy5jdXN0b20odGhpcy5wcm9wID09PSAid2lkdGgiIHx8IHRoaXMucHJvcCA9PT0gImhlaWdodCIgPyAxIDogMCwgdGhpcy5jdXIoKSk7CgoJCS8vIFN0YXJ0IGJ5IHNob3dpbmcgdGhlIGVsZW1lbnQKCQlqUXVlcnkoIHRoaXMuZWxlbSApLnNob3coKTsKCX0sCgoJLy8gU2ltcGxlICdoaWRlJyBmdW5jdGlvbgoJaGlkZTogZnVuY3Rpb24oKSB7CgkJLy8gUmVtZW1iZXIgd2hlcmUgd2Ugc3RhcnRlZCwgc28gdGhhdCB3ZSBjYW4gZ28gYmFjayB0byBpdCBsYXRlcgoJCXRoaXMub3B0aW9ucy5vcmlnW3RoaXMucHJvcF0gPSBqUXVlcnkuc3R5bGUoIHRoaXMuZWxlbSwgdGhpcy5wcm9wICk7CgkJdGhpcy5vcHRpb25zLmhpZGUgPSB0cnVlOwoKCQkvLyBCZWdpbiB0aGUgYW5pbWF0aW9uCgkJdGhpcy5jdXN0b20odGhpcy5jdXIoKSwgMCk7Cgl9LAoKCS8vIEVhY2ggc3RlcCBvZiBhbiBhbmltYXRpb24KCXN0ZXA6IGZ1bmN0aW9uKCBnb3RvRW5kICkgewoJCXZhciB0ID0galF1ZXJ5Lm5vdygpLCBkb25lID0gdHJ1ZTsKCgkJaWYgKCBnb3RvRW5kIHx8IHQgPj0gdGhpcy5vcHRpb25zLmR1cmF0aW9uICsgdGhpcy5zdGFydFRpbWUgKSB7CgkJCXRoaXMubm93ID0gdGhpcy5lbmQ7CgkJCXRoaXMucG9zID0gdGhpcy5zdGF0ZSA9IDE7CgkJCXRoaXMudXBkYXRlKCk7CgoJCQl0aGlzLm9wdGlvbnMuY3VyQW5pbVsgdGhpcy5wcm9wIF0gPSB0cnVlOwoKCQkJZm9yICggdmFyIGkgaW4gdGhpcy5vcHRpb25zLmN1ckFuaW0gKSB7CgkJCQlpZiAoIHRoaXMub3B0aW9ucy5jdXJBbmltW2ldICE9PSB0cnVlICkgewoJCQkJCWRvbmUgPSBmYWxzZTsKCQkJCX0KCQkJfQoKCQkJaWYgKCBkb25lICkgewoJCQkJLy8gUmVzZXQgdGhlIG92ZXJmbG93CgkJCQlpZiAoIHRoaXMub3B0aW9ucy5vdmVyZmxvdyAhPSBudWxsICYmICFqUXVlcnkuc3VwcG9ydC5zaHJpbmtXcmFwQmxvY2tzICkgewoJCQkJCXZhciBlbGVtID0gdGhpcy5lbGVtLAoJCQkJCQlvcHRpb25zID0gdGhpcy5vcHRpb25zOwoKCQkJCQlqUXVlcnkuZWFjaCggWyAiIiwgIlgiLCAiWSIgXSwgZnVuY3Rpb24gKGluZGV4LCB2YWx1ZSkgewoJCQkJCQllbGVtLnN0eWxlWyAib3ZlcmZsb3ciICsgdmFsdWUgXSA9IG9wdGlvbnMub3ZlcmZsb3dbaW5kZXhdOwoJCQkJCX0gKTsKCQkJCX0KCgkJCQkvLyBIaWRlIHRoZSBlbGVtZW50IGlmIHRoZSAiaGlkZSIgb3BlcmF0aW9uIHdhcyBkb25lCgkJCQlpZiAoIHRoaXMub3B0aW9ucy5oaWRlICkgewoJCQkJCWpRdWVyeSh0aGlzLmVsZW0pLmhpZGUoKTsKCQkJCX0KCgkJCQkvLyBSZXNldCB0aGUgcHJvcGVydGllcywgaWYgdGhlIGl0ZW0gaGFzIGJlZW4gaGlkZGVuIG9yIHNob3duCgkJCQlpZiAoIHRoaXMub3B0aW9ucy5oaWRlIHx8IHRoaXMub3B0aW9ucy5zaG93ICkgewoJCQkJCWZvciAoIHZhciBwIGluIHRoaXMub3B0aW9ucy5jdXJBbmltICkgewoJCQkJCQlqUXVlcnkuc3R5bGUoIHRoaXMuZWxlbSwgcCwgdGhpcy5vcHRpb25zLm9yaWdbcF0gKTsKCQkJCQl9CgkJCQl9CgoJCQkJLy8gRXhlY3V0ZSB0aGUgY29tcGxldGUgZnVuY3Rpb24KCQkJCXRoaXMub3B0aW9ucy5jb21wbGV0ZS5jYWxsKCB0aGlzLmVsZW0gKTsKCQkJfQoKCQkJcmV0dXJuIGZhbHNlOwoKCQl9IGVsc2UgewoJCQl2YXIgbiA9IHQgLSB0aGlzLnN0YXJ0VGltZTsKCQkJdGhpcy5zdGF0ZSA9IG4gLyB0aGlzLm9wdGlvbnMuZHVyYXRpb247CgoJCQkvLyBQZXJmb3JtIHRoZSBlYXNpbmcgZnVuY3Rpb24sIGRlZmF1bHRzIHRvIHN3aW5nCgkJCXZhciBzcGVjaWFsRWFzaW5nID0gdGhpcy5vcHRpb25zLnNwZWNpYWxFYXNpbmcgJiYgdGhpcy5vcHRpb25zLnNwZWNpYWxFYXNpbmdbdGhpcy5wcm9wXTsKCQkJdmFyIGRlZmF1bHRFYXNpbmcgPSB0aGlzLm9wdGlvbnMuZWFzaW5nIHx8IChqUXVlcnkuZWFzaW5nLnN3aW5nID8gInN3aW5nIiA6ICJsaW5lYXIiKTsKCQkJdGhpcy5wb3MgPSBqUXVlcnkuZWFzaW5nW3NwZWNpYWxFYXNpbmcgfHwgZGVmYXVsdEVhc2luZ10odGhpcy5zdGF0ZSwgbiwgMCwgMSwgdGhpcy5vcHRpb25zLmR1cmF0aW9uKTsKCQkJdGhpcy5ub3cgPSB0aGlzLnN0YXJ0ICsgKCh0aGlzLmVuZCAtIHRoaXMuc3RhcnQpICogdGhpcy5wb3MpOwoKCQkJLy8gUGVyZm9ybSB0aGUgbmV4dCBzdGVwIG9mIHRoZSBhbmltYXRpb24KCQkJdGhpcy51cGRhdGUoKTsKCQl9CgoJCXJldHVybiB0cnVlOwoJfQp9OwoKalF1ZXJ5LmV4dGVuZCggalF1ZXJ5LmZ4LCB7Cgl0aWNrOiBmdW5jdGlvbigpIHsKCQl2YXIgdGltZXJzID0galF1ZXJ5LnRpbWVyczsKCgkJZm9yICggdmFyIGkgPSAwOyBpIDwgdGltZXJzLmxlbmd0aDsgaSsrICkgewoJCQlpZiAoICF0aW1lcnNbaV0oKSApIHsKCQkJCXRpbWVycy5zcGxpY2UoaS0tLCAxKTsKCQkJfQoJCX0KCgkJaWYgKCAhdGltZXJzLmxlbmd0aCApIHsKCQkJalF1ZXJ5LmZ4LnN0b3AoKTsKCQl9Cgl9LAoKCWludGVydmFsOiAxMywKCglzdG9wOiBmdW5jdGlvbigpIHsKCQljbGVhckludGVydmFsKCB0aW1lcklkICk7CgkJdGltZXJJZCA9IG51bGw7Cgl9LAoKCXNwZWVkczogewoJCXNsb3c6IDYwMCwKCQlmYXN0OiAyMDAsCgkJLy8gRGVmYXVsdCBzcGVlZAoJCV9kZWZhdWx0OiA0MDAKCX0sCgoJc3RlcDogewoJCW9wYWNpdHk6IGZ1bmN0aW9uKCBmeCApIHsKCQkJalF1ZXJ5LnN0eWxlKCBmeC5lbGVtLCAib3BhY2l0eSIsIGZ4Lm5vdyApOwoJCX0sCgoJCV9kZWZhdWx0OiBmdW5jdGlvbiggZnggKSB7CgkJCWlmICggZnguZWxlbS5zdHlsZSAmJiBmeC5lbGVtLnN0eWxlWyBmeC5wcm9wIF0gIT0gbnVsbCApIHsKCQkJCWZ4LmVsZW0uc3R5bGVbIGZ4LnByb3AgXSA9IChmeC5wcm9wID09PSAid2lkdGgiIHx8IGZ4LnByb3AgPT09ICJoZWlnaHQiID8gTWF0aC5tYXgoMCwgZngubm93KSA6IGZ4Lm5vdykgKyBmeC51bml0OwoJCQl9IGVsc2UgewoJCQkJZnguZWxlbVsgZngucHJvcCBdID0gZngubm93OwoJCQl9CgkJfQoJfQp9KTsKCmlmICggalF1ZXJ5LmV4cHIgJiYgalF1ZXJ5LmV4cHIuZmlsdGVycyApIHsKCWpRdWVyeS5leHByLmZpbHRlcnMuYW5pbWF0ZWQgPSBmdW5jdGlvbiggZWxlbSApIHsKCQlyZXR1cm4galF1ZXJ5LmdyZXAoalF1ZXJ5LnRpbWVycywgZnVuY3Rpb24oIGZuICkgewoJCQlyZXR1cm4gZWxlbSA9PT0gZm4uZWxlbTsKCQl9KS5sZW5ndGg7Cgl9Owp9CgpmdW5jdGlvbiBkZWZhdWx0RGlzcGxheSggbm9kZU5hbWUgKSB7CglpZiAoICFlbGVtZGlzcGxheVsgbm9kZU5hbWUgXSApIHsKCQl2YXIgZWxlbSA9IGpRdWVyeSgiPCIgKyBub2RlTmFtZSArICI+IikuYXBwZW5kVG8oImJvZHkiKSwKCQkJZGlzcGxheSA9IGVsZW0uY3NzKCJkaXNwbGF5Iik7CgoJCWVsZW0ucmVtb3ZlKCk7CgoJCWlmICggZGlzcGxheSA9PT0gIm5vbmUiIHx8IGRpc3BsYXkgPT09ICIiICkgewoJCQlkaXNwbGF5ID0gImJsb2NrIjsKCQl9CgoJCWVsZW1kaXNwbGF5WyBub2RlTmFtZSBdID0gZGlzcGxheTsKCX0KCglyZXR1cm4gZWxlbWRpc3BsYXlbIG5vZGVOYW1lIF07Cn0KCgoKCnZhciBydGFibGUgPSAvXnQoPzphYmxlfGR8aCkkL2ksCglycm9vdCA9IC9eKD86Ym9keXxodG1sKSQvaTsKCmlmICggImdldEJvdW5kaW5nQ2xpZW50UmVjdCIgaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICkgewoJalF1ZXJ5LmZuLm9mZnNldCA9IGZ1bmN0aW9uKCBvcHRpb25zICkgewoJCXZhciBlbGVtID0gdGhpc1swXSwgYm94OwoKCQlpZiAoIG9wdGlvbnMgKSB7CgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oIGkgKSB7CgkJCQlqUXVlcnkub2Zmc2V0LnNldE9mZnNldCggdGhpcywgb3B0aW9ucywgaSApOwoJCQl9KTsKCQl9CgoJCWlmICggIWVsZW0gfHwgIWVsZW0ub3duZXJEb2N1bWVudCApIHsKCQkJcmV0dXJuIG51bGw7CgkJfQoKCQlpZiAoIGVsZW0gPT09IGVsZW0ub3duZXJEb2N1bWVudC5ib2R5ICkgewoJCQlyZXR1cm4galF1ZXJ5Lm9mZnNldC5ib2R5T2Zmc2V0KCBlbGVtICk7CgkJfQoKCQl0cnkgewoJCQlib3ggPSBlbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwoJCX0gY2F0Y2goZSkge30KCgkJdmFyIGRvYyA9IGVsZW0ub3duZXJEb2N1bWVudCwKCQkJZG9jRWxlbSA9IGRvYy5kb2N1bWVudEVsZW1lbnQ7CgoJCS8vIE1ha2Ugc3VyZSB3ZSdyZSBub3QgZGVhbGluZyB3aXRoIGEgZGlzY29ubmVjdGVkIERPTSBub2RlCgkJaWYgKCAhYm94IHx8ICFqUXVlcnkuY29udGFpbnMoIGRvY0VsZW0sIGVsZW0gKSApIHsKCQkJcmV0dXJuIGJveCA/IHsgdG9wOiBib3gudG9wLCBsZWZ0OiBib3gubGVmdCB9IDogeyB0b3A6IDAsIGxlZnQ6IDAgfTsKCQl9CgoJCXZhciBib2R5ID0gZG9jLmJvZHksCgkJCXdpbiA9IGdldFdpbmRvdyhkb2MpLAoJCQljbGllbnRUb3AgID0gZG9jRWxlbS5jbGllbnRUb3AgIHx8IGJvZHkuY2xpZW50VG9wICB8fCAwLAoJCQljbGllbnRMZWZ0ID0gZG9jRWxlbS5jbGllbnRMZWZ0IHx8IGJvZHkuY2xpZW50TGVmdCB8fCAwLAoJCQlzY3JvbGxUb3AgID0gKHdpbi5wYWdlWU9mZnNldCB8fCBqUXVlcnkuc3VwcG9ydC5ib3hNb2RlbCAmJiBkb2NFbGVtLnNjcm9sbFRvcCAgfHwgYm9keS5zY3JvbGxUb3AgKSwKCQkJc2Nyb2xsTGVmdCA9ICh3aW4ucGFnZVhPZmZzZXQgfHwgalF1ZXJ5LnN1cHBvcnQuYm94TW9kZWwgJiYgZG9jRWxlbS5zY3JvbGxMZWZ0IHx8IGJvZHkuc2Nyb2xsTGVmdCksCgkJCXRvcCAgPSBib3gudG9wICArIHNjcm9sbFRvcCAgLSBjbGllbnRUb3AsCgkJCWxlZnQgPSBib3gubGVmdCArIHNjcm9sbExlZnQgLSBjbGllbnRMZWZ0OwoKCQlyZXR1cm4geyB0b3A6IHRvcCwgbGVmdDogbGVmdCB9OwoJfTsKCn0gZWxzZSB7CglqUXVlcnkuZm4ub2Zmc2V0ID0gZnVuY3Rpb24oIG9wdGlvbnMgKSB7CgkJdmFyIGVsZW0gPSB0aGlzWzBdOwoKCQlpZiAoIG9wdGlvbnMgKSB7CgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oIGkgKSB7CgkJCQlqUXVlcnkub2Zmc2V0LnNldE9mZnNldCggdGhpcywgb3B0aW9ucywgaSApOwoJCQl9KTsKCQl9CgoJCWlmICggIWVsZW0gfHwgIWVsZW0ub3duZXJEb2N1bWVudCApIHsKCQkJcmV0dXJuIG51bGw7CgkJfQoKCQlpZiAoIGVsZW0gPT09IGVsZW0ub3duZXJEb2N1bWVudC5ib2R5ICkgewoJCQlyZXR1cm4galF1ZXJ5Lm9mZnNldC5ib2R5T2Zmc2V0KCBlbGVtICk7CgkJfQoKCQlqUXVlcnkub2Zmc2V0LmluaXRpYWxpemUoKTsKCgkJdmFyIGNvbXB1dGVkU3R5bGUsCgkJCW9mZnNldFBhcmVudCA9IGVsZW0ub2Zmc2V0UGFyZW50LAoJCQlwcmV2T2Zmc2V0UGFyZW50ID0gZWxlbSwKCQkJZG9jID0gZWxlbS5vd25lckRvY3VtZW50LAoJCQlkb2NFbGVtID0gZG9jLmRvY3VtZW50RWxlbWVudCwKCQkJYm9keSA9IGRvYy5ib2R5LAoJCQlkZWZhdWx0VmlldyA9IGRvYy5kZWZhdWx0VmlldywKCQkJcHJldkNvbXB1dGVkU3R5bGUgPSBkZWZhdWx0VmlldyA/IGRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoIGVsZW0sIG51bGwgKSA6IGVsZW0uY3VycmVudFN0eWxlLAoJCQl0b3AgPSBlbGVtLm9mZnNldFRvcCwKCQkJbGVmdCA9IGVsZW0ub2Zmc2V0TGVmdDsKCgkJd2hpbGUgKCAoZWxlbSA9IGVsZW0ucGFyZW50Tm9kZSkgJiYgZWxlbSAhPT0gYm9keSAmJiBlbGVtICE9PSBkb2NFbGVtICkgewoJCQlpZiAoIGpRdWVyeS5vZmZzZXQuc3VwcG9ydHNGaXhlZFBvc2l0aW9uICYmIHByZXZDb21wdXRlZFN0eWxlLnBvc2l0aW9uID09PSAiZml4ZWQiICkgewoJCQkJYnJlYWs7CgkJCX0KCgkJCWNvbXB1dGVkU3R5bGUgPSBkZWZhdWx0VmlldyA/IGRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZWxlbSwgbnVsbCkgOiBlbGVtLmN1cnJlbnRTdHlsZTsKCQkJdG9wICAtPSBlbGVtLnNjcm9sbFRvcDsKCQkJbGVmdCAtPSBlbGVtLnNjcm9sbExlZnQ7CgoJCQlpZiAoIGVsZW0gPT09IG9mZnNldFBhcmVudCApIHsKCQkJCXRvcCAgKz0gZWxlbS5vZmZzZXRUb3A7CgkJCQlsZWZ0ICs9IGVsZW0ub2Zmc2V0TGVmdDsKCgkJCQlpZiAoIGpRdWVyeS5vZmZzZXQuZG9lc05vdEFkZEJvcmRlciAmJiAhKGpRdWVyeS5vZmZzZXQuZG9lc0FkZEJvcmRlckZvclRhYmxlQW5kQ2VsbHMgJiYgcnRhYmxlLnRlc3QoZWxlbS5ub2RlTmFtZSkpICkgewoJCQkJCXRvcCAgKz0gcGFyc2VGbG9hdCggY29tcHV0ZWRTdHlsZS5ib3JkZXJUb3BXaWR0aCAgKSB8fCAwOwoJCQkJCWxlZnQgKz0gcGFyc2VGbG9hdCggY29tcHV0ZWRTdHlsZS5ib3JkZXJMZWZ0V2lkdGggKSB8fCAwOwoJCQkJfQoKCQkJCXByZXZPZmZzZXRQYXJlbnQgPSBvZmZzZXRQYXJlbnQ7CgkJCQlvZmZzZXRQYXJlbnQgPSBlbGVtLm9mZnNldFBhcmVudDsKCQkJfQoKCQkJaWYgKCBqUXVlcnkub2Zmc2V0LnN1YnRyYWN0c0JvcmRlckZvck92ZXJmbG93Tm90VmlzaWJsZSAmJiBjb21wdXRlZFN0eWxlLm92ZXJmbG93ICE9PSAidmlzaWJsZSIgKSB7CgkJCQl0b3AgICs9IHBhcnNlRmxvYXQoIGNvbXB1dGVkU3R5bGUuYm9yZGVyVG9wV2lkdGggICkgfHwgMDsKCQkJCWxlZnQgKz0gcGFyc2VGbG9hdCggY29tcHV0ZWRTdHlsZS5ib3JkZXJMZWZ0V2lkdGggKSB8fCAwOwoJCQl9CgoJCQlwcmV2Q29tcHV0ZWRTdHlsZSA9IGNvbXB1dGVkU3R5bGU7CgkJfQoKCQlpZiAoIHByZXZDb21wdXRlZFN0eWxlLnBvc2l0aW9uID09PSAicmVsYXRpdmUiIHx8IHByZXZDb21wdXRlZFN0eWxlLnBvc2l0aW9uID09PSAic3RhdGljIiApIHsKCQkJdG9wICArPSBib2R5Lm9mZnNldFRvcDsKCQkJbGVmdCArPSBib2R5Lm9mZnNldExlZnQ7CgkJfQoKCQlpZiAoIGpRdWVyeS5vZmZzZXQuc3VwcG9ydHNGaXhlZFBvc2l0aW9uICYmIHByZXZDb21wdXRlZFN0eWxlLnBvc2l0aW9uID09PSAiZml4ZWQiICkgewoJCQl0b3AgICs9IE1hdGgubWF4KCBkb2NFbGVtLnNjcm9sbFRvcCwgYm9keS5zY3JvbGxUb3AgKTsKCQkJbGVmdCArPSBNYXRoLm1heCggZG9jRWxlbS5zY3JvbGxMZWZ0LCBib2R5LnNjcm9sbExlZnQgKTsKCQl9CgoJCXJldHVybiB7IHRvcDogdG9wLCBsZWZ0OiBsZWZ0IH07Cgl9Owp9CgpqUXVlcnkub2Zmc2V0ID0gewoJaW5pdGlhbGl6ZTogZnVuY3Rpb24oKSB7CgkJdmFyIGJvZHkgPSBkb2N1bWVudC5ib2R5LCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSwgaW5uZXJEaXYsIGNoZWNrRGl2LCB0YWJsZSwgdGQsIGJvZHlNYXJnaW5Ub3AgPSBwYXJzZUZsb2F0KCBqUXVlcnkuY3NzKGJvZHksICJtYXJnaW5Ub3AiKSApIHx8IDAsCgkJCWh0bWwgPSAiPGRpdiBzdHlsZT0ncG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO21hcmdpbjowO2JvcmRlcjo1cHggc29saWQgIzAwMDtwYWRkaW5nOjA7d2lkdGg6MXB4O2hlaWdodDoxcHg7Jz48ZGl2PjwvZGl2PjwvZGl2Pjx0YWJsZSBzdHlsZT0ncG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO21hcmdpbjowO2JvcmRlcjo1cHggc29saWQgIzAwMDtwYWRkaW5nOjA7d2lkdGg6MXB4O2hlaWdodDoxcHg7JyBjZWxscGFkZGluZz0nMCcgY2VsbHNwYWNpbmc9JzAnPjx0cj48dGQ+PC90ZD48L3RyPjwvdGFibGU+IjsKCgkJalF1ZXJ5LmV4dGVuZCggY29udGFpbmVyLnN0eWxlLCB7IHBvc2l0aW9uOiAiYWJzb2x1dGUiLCB0b3A6IDAsIGxlZnQ6IDAsIG1hcmdpbjogMCwgYm9yZGVyOiAwLCB3aWR0aDogIjFweCIsIGhlaWdodDogIjFweCIsIHZpc2liaWxpdHk6ICJoaWRkZW4iIH0gKTsKCgkJY29udGFpbmVyLmlubmVySFRNTCA9IGh0bWw7CgkJYm9keS5pbnNlcnRCZWZvcmUoIGNvbnRhaW5lciwgYm9keS5maXJzdENoaWxkICk7CgkJaW5uZXJEaXYgPSBjb250YWluZXIuZmlyc3RDaGlsZDsKCQljaGVja0RpdiA9IGlubmVyRGl2LmZpcnN0Q2hpbGQ7CgkJdGQgPSBpbm5lckRpdi5uZXh0U2libGluZy5maXJzdENoaWxkLmZpcnN0Q2hpbGQ7CgoJCXRoaXMuZG9lc05vdEFkZEJvcmRlciA9IChjaGVja0Rpdi5vZmZzZXRUb3AgIT09IDUpOwoJCXRoaXMuZG9lc0FkZEJvcmRlckZvclRhYmxlQW5kQ2VsbHMgPSAodGQub2Zmc2V0VG9wID09PSA1KTsKCgkJY2hlY2tEaXYuc3R5bGUucG9zaXRpb24gPSAiZml4ZWQiOwoJCWNoZWNrRGl2LnN0eWxlLnRvcCA9ICIyMHB4IjsKCgkJLy8gc2FmYXJpIHN1YnRyYWN0cyBwYXJlbnQgYm9yZGVyIHdpZHRoIGhlcmUgd2hpY2ggaXMgNXB4CgkJdGhpcy5zdXBwb3J0c0ZpeGVkUG9zaXRpb24gPSAoY2hlY2tEaXYub2Zmc2V0VG9wID09PSAyMCB8fCBjaGVja0Rpdi5vZmZzZXRUb3AgPT09IDE1KTsKCQljaGVja0Rpdi5zdHlsZS5wb3NpdGlvbiA9IGNoZWNrRGl2LnN0eWxlLnRvcCA9ICIiOwoKCQlpbm5lckRpdi5zdHlsZS5vdmVyZmxvdyA9ICJoaWRkZW4iOwoJCWlubmVyRGl2LnN0eWxlLnBvc2l0aW9uID0gInJlbGF0aXZlIjsKCgkJdGhpcy5zdWJ0cmFjdHNCb3JkZXJGb3JPdmVyZmxvd05vdFZpc2libGUgPSAoY2hlY2tEaXYub2Zmc2V0VG9wID09PSAtNSk7CgoJCXRoaXMuZG9lc05vdEluY2x1ZGVNYXJnaW5JbkJvZHlPZmZzZXQgPSAoYm9keS5vZmZzZXRUb3AgIT09IGJvZHlNYXJnaW5Ub3ApOwoKCQlib2R5LnJlbW92ZUNoaWxkKCBjb250YWluZXIgKTsKCQlib2R5ID0gY29udGFpbmVyID0gaW5uZXJEaXYgPSBjaGVja0RpdiA9IHRhYmxlID0gdGQgPSBudWxsOwoJCWpRdWVyeS5vZmZzZXQuaW5pdGlhbGl6ZSA9IGpRdWVyeS5ub29wOwoJfSwKCglib2R5T2Zmc2V0OiBmdW5jdGlvbiggYm9keSApIHsKCQl2YXIgdG9wID0gYm9keS5vZmZzZXRUb3AsCgkJCWxlZnQgPSBib2R5Lm9mZnNldExlZnQ7CgoJCWpRdWVyeS5vZmZzZXQuaW5pdGlhbGl6ZSgpOwoKCQlpZiAoIGpRdWVyeS5vZmZzZXQuZG9lc05vdEluY2x1ZGVNYXJnaW5JbkJvZHlPZmZzZXQgKSB7CgkJCXRvcCAgKz0gcGFyc2VGbG9hdCggalF1ZXJ5LmNzcyhib2R5LCAibWFyZ2luVG9wIikgKSB8fCAwOwoJCQlsZWZ0ICs9IHBhcnNlRmxvYXQoIGpRdWVyeS5jc3MoYm9keSwgIm1hcmdpbkxlZnQiKSApIHx8IDA7CgkJfQoKCQlyZXR1cm4geyB0b3A6IHRvcCwgbGVmdDogbGVmdCB9OwoJfSwKCglzZXRPZmZzZXQ6IGZ1bmN0aW9uKCBlbGVtLCBvcHRpb25zLCBpICkgewoJCXZhciBwb3NpdGlvbiA9IGpRdWVyeS5jc3MoIGVsZW0sICJwb3NpdGlvbiIgKTsKCgkJLy8gc2V0IHBvc2l0aW9uIGZpcnN0LCBpbi1jYXNlIHRvcC9sZWZ0IGFyZSBzZXQgZXZlbiBvbiBzdGF0aWMgZWxlbQoJCWlmICggcG9zaXRpb24gPT09ICJzdGF0aWMiICkgewoJCQllbGVtLnN0eWxlLnBvc2l0aW9uID0gInJlbGF0aXZlIjsKCQl9CgoJCXZhciBjdXJFbGVtID0galF1ZXJ5KCBlbGVtICksCgkJCWN1ck9mZnNldCA9IGN1ckVsZW0ub2Zmc2V0KCksCgkJCWN1ckNTU1RvcCA9IGpRdWVyeS5jc3MoIGVsZW0sICJ0b3AiICksCgkJCWN1ckNTU0xlZnQgPSBqUXVlcnkuY3NzKCBlbGVtLCAibGVmdCIgKSwKCQkJY2FsY3VsYXRlUG9zaXRpb24gPSAocG9zaXRpb24gPT09ICJhYnNvbHV0ZSIgJiYgalF1ZXJ5LmluQXJyYXkoJ2F1dG8nLCBbY3VyQ1NTVG9wLCBjdXJDU1NMZWZ0XSkgPiAtMSksCgkJCXByb3BzID0ge30sIGN1clBvc2l0aW9uID0ge30sIGN1clRvcCwgY3VyTGVmdDsKCgkJLy8gbmVlZCB0byBiZSBhYmxlIHRvIGNhbGN1bGF0ZSBwb3NpdGlvbiBpZiBlaXRoZXIgdG9wIG9yIGxlZnQgaXMgYXV0byBhbmQgcG9zaXRpb24gaXMgYWJzb2x1dGUKCQlpZiAoIGNhbGN1bGF0ZVBvc2l0aW9uICkgewoJCQljdXJQb3NpdGlvbiA9IGN1ckVsZW0ucG9zaXRpb24oKTsKCQl9CgoJCWN1clRvcCAgPSBjYWxjdWxhdGVQb3NpdGlvbiA/IGN1clBvc2l0aW9uLnRvcCAgOiBwYXJzZUludCggY3VyQ1NTVG9wLCAgMTAgKSB8fCAwOwoJCWN1ckxlZnQgPSBjYWxjdWxhdGVQb3NpdGlvbiA/IGN1clBvc2l0aW9uLmxlZnQgOiBwYXJzZUludCggY3VyQ1NTTGVmdCwgMTAgKSB8fCAwOwoKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCBvcHRpb25zICkgKSB7CgkJCW9wdGlvbnMgPSBvcHRpb25zLmNhbGwoIGVsZW0sIGksIGN1ck9mZnNldCApOwoJCX0KCgkJaWYgKG9wdGlvbnMudG9wICE9IG51bGwpIHsKCQkJcHJvcHMudG9wID0gKG9wdGlvbnMudG9wIC0gY3VyT2Zmc2V0LnRvcCkgKyBjdXJUb3A7CgkJfQoJCWlmIChvcHRpb25zLmxlZnQgIT0gbnVsbCkgewoJCQlwcm9wcy5sZWZ0ID0gKG9wdGlvbnMubGVmdCAtIGN1ck9mZnNldC5sZWZ0KSArIGN1ckxlZnQ7CgkJfQoKCQlpZiAoICJ1c2luZyIgaW4gb3B0aW9ucyApIHsKCQkJb3B0aW9ucy51c2luZy5jYWxsKCBlbGVtLCBwcm9wcyApOwoJCX0gZWxzZSB7CgkJCWN1ckVsZW0uY3NzKCBwcm9wcyApOwoJCX0KCX0KfTsKCgpqUXVlcnkuZm4uZXh0ZW5kKHsKCXBvc2l0aW9uOiBmdW5jdGlvbigpIHsKCQlpZiAoICF0aGlzWzBdICkgewoJCQlyZXR1cm4gbnVsbDsKCQl9CgoJCXZhciBlbGVtID0gdGhpc1swXSwKCgkJLy8gR2V0ICpyZWFsKiBvZmZzZXRQYXJlbnQKCQlvZmZzZXRQYXJlbnQgPSB0aGlzLm9mZnNldFBhcmVudCgpLAoKCQkvLyBHZXQgY29ycmVjdCBvZmZzZXRzCgkJb2Zmc2V0ICAgICAgID0gdGhpcy5vZmZzZXQoKSwKCQlwYXJlbnRPZmZzZXQgPSBycm9vdC50ZXN0KG9mZnNldFBhcmVudFswXS5ub2RlTmFtZSkgPyB7IHRvcDogMCwgbGVmdDogMCB9IDogb2Zmc2V0UGFyZW50Lm9mZnNldCgpOwoKCQkvLyBTdWJ0cmFjdCBlbGVtZW50IG1hcmdpbnMKCQkvLyBub3RlOiB3aGVuIGFuIGVsZW1lbnQgaGFzIG1hcmdpbjogYXV0byB0aGUgb2Zmc2V0TGVmdCBhbmQgbWFyZ2luTGVmdAoJCS8vIGFyZSB0aGUgc2FtZSBpbiBTYWZhcmkgY2F1c2luZyBvZmZzZXQubGVmdCB0byBpbmNvcnJlY3RseSBiZSAwCgkJb2Zmc2V0LnRvcCAgLT0gcGFyc2VGbG9hdCggalF1ZXJ5LmNzcyhlbGVtLCAibWFyZ2luVG9wIikgKSB8fCAwOwoJCW9mZnNldC5sZWZ0IC09IHBhcnNlRmxvYXQoIGpRdWVyeS5jc3MoZWxlbSwgIm1hcmdpbkxlZnQiKSApIHx8IDA7CgoJCS8vIEFkZCBvZmZzZXRQYXJlbnQgYm9yZGVycwoJCXBhcmVudE9mZnNldC50b3AgICs9IHBhcnNlRmxvYXQoIGpRdWVyeS5jc3Mob2Zmc2V0UGFyZW50WzBdLCAiYm9yZGVyVG9wV2lkdGgiKSApIHx8IDA7CgkJcGFyZW50T2Zmc2V0LmxlZnQgKz0gcGFyc2VGbG9hdCggalF1ZXJ5LmNzcyhvZmZzZXRQYXJlbnRbMF0sICJib3JkZXJMZWZ0V2lkdGgiKSApIHx8IDA7CgoJCS8vIFN1YnRyYWN0IHRoZSB0d28gb2Zmc2V0cwoJCXJldHVybiB7CgkJCXRvcDogIG9mZnNldC50b3AgIC0gcGFyZW50T2Zmc2V0LnRvcCwKCQkJbGVmdDogb2Zmc2V0LmxlZnQgLSBwYXJlbnRPZmZzZXQubGVmdAoJCX07Cgl9LAoKCW9mZnNldFBhcmVudDogZnVuY3Rpb24oKSB7CgkJcmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCkgewoJCQl2YXIgb2Zmc2V0UGFyZW50ID0gdGhpcy5vZmZzZXRQYXJlbnQgfHwgZG9jdW1lbnQuYm9keTsKCQkJd2hpbGUgKCBvZmZzZXRQYXJlbnQgJiYgKCFycm9vdC50ZXN0KG9mZnNldFBhcmVudC5ub2RlTmFtZSkgJiYgalF1ZXJ5LmNzcyhvZmZzZXRQYXJlbnQsICJwb3NpdGlvbiIpID09PSAic3RhdGljIikgKSB7CgkJCQlvZmZzZXRQYXJlbnQgPSBvZmZzZXRQYXJlbnQub2Zmc2V0UGFyZW50OwoJCQl9CgkJCXJldHVybiBvZmZzZXRQYXJlbnQ7CgkJfSk7Cgl9Cn0pOwoKCi8vIENyZWF0ZSBzY3JvbGxMZWZ0IGFuZCBzY3JvbGxUb3AgbWV0aG9kcwpqUXVlcnkuZWFjaCggWyJMZWZ0IiwgIlRvcCJdLCBmdW5jdGlvbiggaSwgbmFtZSApIHsKCXZhciBtZXRob2QgPSAic2Nyb2xsIiArIG5hbWU7CgoJalF1ZXJ5LmZuWyBtZXRob2QgXSA9IGZ1bmN0aW9uKHZhbCkgewoJCXZhciBlbGVtID0gdGhpc1swXSwgd2luOwoKCQlpZiAoICFlbGVtICkgewoJCQlyZXR1cm4gbnVsbDsKCQl9CgoJCWlmICggdmFsICE9PSB1bmRlZmluZWQgKSB7CgkJCS8vIFNldCB0aGUgc2Nyb2xsIG9mZnNldAoJCQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkgewoJCQkJd2luID0gZ2V0V2luZG93KCB0aGlzICk7CgoJCQkJaWYgKCB3aW4gKSB7CgkJCQkJd2luLnNjcm9sbFRvKAoJCQkJCQkhaSA/IHZhbCA6IGpRdWVyeSh3aW4pLnNjcm9sbExlZnQoKSwKCQkJCQkJaSA/IHZhbCA6IGpRdWVyeSh3aW4pLnNjcm9sbFRvcCgpCgkJCQkJKTsKCgkJCQl9IGVsc2UgewoJCQkJCXRoaXNbIG1ldGhvZCBdID0gdmFsOwoJCQkJfQoJCQl9KTsKCQl9IGVsc2UgewoJCQl3aW4gPSBnZXRXaW5kb3coIGVsZW0gKTsKCgkJCS8vIFJldHVybiB0aGUgc2Nyb2xsIG9mZnNldAoJCQlyZXR1cm4gd2luID8gKCJwYWdlWE9mZnNldCIgaW4gd2luKSA/IHdpblsgaSA/ICJwYWdlWU9mZnNldCIgOiAicGFnZVhPZmZzZXQiIF0gOgoJCQkJalF1ZXJ5LnN1cHBvcnQuYm94TW9kZWwgJiYgd2luLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFsgbWV0aG9kIF0gfHwKCQkJCQl3aW4uZG9jdW1lbnQuYm9keVsgbWV0aG9kIF0gOgoJCQkJZWxlbVsgbWV0aG9kIF07CgkJfQoJfTsKfSk7CgpmdW5jdGlvbiBnZXRXaW5kb3coIGVsZW0gKSB7CglyZXR1cm4galF1ZXJ5LmlzV2luZG93KCBlbGVtICkgPwoJCWVsZW0gOgoJCWVsZW0ubm9kZVR5cGUgPT09IDkgPwoJCQllbGVtLmRlZmF1bHRWaWV3IHx8IGVsZW0ucGFyZW50V2luZG93IDoKCQkJZmFsc2U7Cn0KCgoKCi8vIENyZWF0ZSBpbm5lckhlaWdodCwgaW5uZXJXaWR0aCwgb3V0ZXJIZWlnaHQgYW5kIG91dGVyV2lkdGggbWV0aG9kcwpqUXVlcnkuZWFjaChbICJIZWlnaHQiLCAiV2lkdGgiIF0sIGZ1bmN0aW9uKCBpLCBuYW1lICkgewoKCXZhciB0eXBlID0gbmFtZS50b0xvd2VyQ2FzZSgpOwoKCS8vIGlubmVySGVpZ2h0IGFuZCBpbm5lcldpZHRoCglqUXVlcnkuZm5bImlubmVyIiArIG5hbWVdID0gZnVuY3Rpb24oKSB7CgkJcmV0dXJuIHRoaXNbMF0gPwoJCQlwYXJzZUZsb2F0KCBqUXVlcnkuY3NzKCB0aGlzWzBdLCB0eXBlLCAicGFkZGluZyIgKSApIDoKCQkJbnVsbDsKCX07CgoJLy8gb3V0ZXJIZWlnaHQgYW5kIG91dGVyV2lkdGgKCWpRdWVyeS5mblsib3V0ZXIiICsgbmFtZV0gPSBmdW5jdGlvbiggbWFyZ2luICkgewoJCXJldHVybiB0aGlzWzBdID8KCQkJcGFyc2VGbG9hdCggalF1ZXJ5LmNzcyggdGhpc1swXSwgdHlwZSwgbWFyZ2luID8gIm1hcmdpbiIgOiAiYm9yZGVyIiApICkgOgoJCQludWxsOwoJfTsKCglqUXVlcnkuZm5bIHR5cGUgXSA9IGZ1bmN0aW9uKCBzaXplICkgewoJCS8vIEdldCB3aW5kb3cgd2lkdGggb3IgaGVpZ2h0CgkJdmFyIGVsZW0gPSB0aGlzWzBdOwoJCWlmICggIWVsZW0gKSB7CgkJCXJldHVybiBzaXplID09IG51bGwgPyBudWxsIDogdGhpczsKCQl9CgoJCWlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHNpemUgKSApIHsKCQkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiggaSApIHsKCQkJCXZhciBzZWxmID0galF1ZXJ5KCB0aGlzICk7CgkJCQlzZWxmWyB0eXBlIF0oIHNpemUuY2FsbCggdGhpcywgaSwgc2VsZlsgdHlwZSBdKCkgKSApOwoJCQl9KTsKCQl9CgoJCWlmICggalF1ZXJ5LmlzV2luZG93KCBlbGVtICkgKSB7CgkJCS8vIEV2ZXJ5b25lIGVsc2UgdXNlIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCBvciBkb2N1bWVudC5ib2R5IGRlcGVuZGluZyBvbiBRdWlya3MgdnMgU3RhbmRhcmRzIG1vZGUKCQkJLy8gM3JkIGNvbmRpdGlvbiBhbGxvd3MgTm9raWEgc3VwcG9ydCwgYXMgaXQgc3VwcG9ydHMgdGhlIGRvY0VsZW0gcHJvcCBidXQgbm90IENTUzFDb21wYXQKCQkJdmFyIGRvY0VsZW1Qcm9wID0gZWxlbS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbICJjbGllbnQiICsgbmFtZSBdOwoJCQlyZXR1cm4gZWxlbS5kb2N1bWVudC5jb21wYXRNb2RlID09PSAiQ1NTMUNvbXBhdCIgJiYgZG9jRWxlbVByb3AgfHwKCQkJCWVsZW0uZG9jdW1lbnQuYm9keVsgImNsaWVudCIgKyBuYW1lIF0gfHwgZG9jRWxlbVByb3A7CgoJCS8vIEdldCBkb2N1bWVudCB3aWR0aCBvciBoZWlnaHQKCQl9IGVsc2UgaWYgKCBlbGVtLm5vZGVUeXBlID09PSA5ICkgewoJCQkvLyBFaXRoZXIgc2Nyb2xsW1dpZHRoL0hlaWdodF0gb3Igb2Zmc2V0W1dpZHRoL0hlaWdodF0sIHdoaWNoZXZlciBpcyBncmVhdGVyCgkJCXJldHVybiBNYXRoLm1heCgKCQkJCWVsZW0uZG9jdW1lbnRFbGVtZW50WyJjbGllbnQiICsgbmFtZV0sCgkJCQllbGVtLmJvZHlbInNjcm9sbCIgKyBuYW1lXSwgZWxlbS5kb2N1bWVudEVsZW1lbnRbInNjcm9sbCIgKyBuYW1lXSwKCQkJCWVsZW0uYm9keVsib2Zmc2V0IiArIG5hbWVdLCBlbGVtLmRvY3VtZW50RWxlbWVudFsib2Zmc2V0IiArIG5hbWVdCgkJCSk7CgoJCS8vIEdldCBvciBzZXQgd2lkdGggb3IgaGVpZ2h0IG9uIHRoZSBlbGVtZW50CgkJfSBlbHNlIGlmICggc2l6ZSA9PT0gdW5kZWZpbmVkICkgewoJCQl2YXIgb3JpZyA9IGpRdWVyeS5jc3MoIGVsZW0sIHR5cGUgKSwKCQkJCXJldCA9IHBhcnNlRmxvYXQoIG9yaWcgKTsKCgkJCXJldHVybiBqUXVlcnkuaXNOYU4oIHJldCApID8gb3JpZyA6IHJldDsKCgkJLy8gU2V0IHRoZSB3aWR0aCBvciBoZWlnaHQgb24gdGhlIGVsZW1lbnQgKGRlZmF1bHQgdG8gcGl4ZWxzIGlmIHZhbHVlIGlzIHVuaXRsZXNzKQoJCX0gZWxzZSB7CgkJCXJldHVybiB0aGlzLmNzcyggdHlwZSwgdHlwZW9mIHNpemUgPT09ICJzdHJpbmciID8gc2l6ZSA6IHNpemUgKyAicHgiICk7CgkJfQoJfTsKCn0pOwoKCndpbmRvdy5qUXVlcnkgPSB3aW5kb3cuJCA9IGpRdWVyeTsKfSkod2luZG93KTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/docs/media/js/shBrushJScript.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIFN5bnRheEhpZ2hsaWdodGVyCiAqIGh0dHA6Ly9hbGV4Z29yYmF0Y2hldi5jb20vU3ludGF4SGlnaGxpZ2h0ZXIKICoKICogU3ludGF4SGlnaGxpZ2h0ZXIgaXMgZG9uYXRpb253YXJlLiBJZiB5b3UgYXJlIHVzaW5nIGl0LCBwbGVhc2UgZG9uYXRlLgogKiBodHRwOi8vYWxleGdvcmJhdGNoZXYuY29tL1N5bnRheEhpZ2hsaWdodGVyL2RvbmF0ZS5odG1sCiAqCiAqIEB2ZXJzaW9uCiAqIDMuMC44MyAoSnVseSAwMiAyMDEwKQogKiAKICogQGNvcHlyaWdodAogKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMCBBbGV4IEdvcmJhdGNoZXYuCiAqCiAqIEBsaWNlbnNlCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzLgogKi8KOyhmdW5jdGlvbigpCnsKCS8vIENvbW1vbkpTCgl0eXBlb2YocmVxdWlyZSkgIT0gJ3VuZGVmaW5lZCcgPyBTeW50YXhIaWdobGlnaHRlciA9IHJlcXVpcmUoJ3NoQ29yZScpLlN5bnRheEhpZ2hsaWdodGVyIDogbnVsbDsKCglmdW5jdGlvbiBCcnVzaCgpCgl7CgkJdmFyIGtleXdvcmRzID0JJ2JyZWFrIGNhc2UgY2F0Y2ggY29udGludWUgJyArCgkJCQkJCSdkZWZhdWx0IGRlbGV0ZSBkbyBlbHNlIGZhbHNlICAnICsKCQkJCQkJJ2ZvciBmdW5jdGlvbiBpZiBpbiBpbnN0YW5jZW9mICcgKwoJCQkJCQknbmV3IG51bGwgcmV0dXJuIHN1cGVyIHN3aXRjaCAnICsKCQkJCQkJJ3RoaXMgdGhyb3cgdHJ1ZSB0cnkgdHlwZW9mIHZhciB3aGlsZSB3aXRoJwoJCQkJCQk7CgoJCXZhciByID0gU3ludGF4SGlnaGxpZ2h0ZXIucmVnZXhMaWI7CgkJCgkJdGhpcy5yZWdleExpc3QgPSBbCgkJCXsgcmVnZXg6IHIubXVsdGlMaW5lRG91YmxlUXVvdGVkU3RyaW5nLAkJCQkJY3NzOiAnc3RyaW5nJyB9LAkJCS8vIGRvdWJsZSBxdW90ZWQgc3RyaW5ncwoJCQl7IHJlZ2V4OiByLm11bHRpTGluZVNpbmdsZVF1b3RlZFN0cmluZywJCQkJCWNzczogJ3N0cmluZycgfSwJCQkvLyBzaW5nbGUgcXVvdGVkIHN0cmluZ3MKCQkJeyByZWdleDogci5zaW5nbGVMaW5lQ0NvbW1lbnRzLAkJCQkJCQljc3M6ICdjb21tZW50cycgfSwJCQkvLyBvbmUgbGluZSBjb21tZW50cwoJCQl7IHJlZ2V4OiByLm11bHRpTGluZUNDb21tZW50cywJCQkJCQkJY3NzOiAnY29tbWVudHMnIH0sCQkJLy8gbXVsdGlsaW5lIGNvbW1lbnRzCgkJCXsgcmVnZXg6IC9ccyojLiovZ20sCQkJCQkJCQkJY3NzOiAncHJlcHJvY2Vzc29yJyB9LAkJLy8gcHJlcHJvY2Vzc29yIHRhZ3MgbGlrZSAjcmVnaW9uIGFuZCAjZW5kcmVnaW9uCgkJCXsgcmVnZXg6IG5ldyBSZWdFeHAodGhpcy5nZXRLZXl3b3JkcyhrZXl3b3JkcyksICdnbScpLAljc3M6ICdrZXl3b3JkJyB9CQkJLy8ga2V5d29yZHMKCQkJXTsKCQoJCXRoaXMuZm9ySHRtbFNjcmlwdChyLnNjcmlwdFNjcmlwdFRhZ3MpOwoJfTsKCglCcnVzaC5wcm90b3R5cGUJPSBuZXcgU3ludGF4SGlnaGxpZ2h0ZXIuSGlnaGxpZ2h0ZXIoKTsKCUJydXNoLmFsaWFzZXMJPSBbJ2pzJywgJ2pzY3JpcHQnLCAnamF2YXNjcmlwdCddOwoKCVN5bnRheEhpZ2hsaWdodGVyLmJydXNoZXMuSlNjcmlwdCA9IEJydXNoOwoKCS8vIENvbW1vbkpTCgl0eXBlb2YoZXhwb3J0cykgIT0gJ3VuZGVmaW5lZCcgPyBleHBvcnRzLkJydXNoID0gQnJ1c2ggOiBudWxsOwp9KSgpOwo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/docs/media/js/shCore.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIFN5bnRheEhpZ2hsaWdodGVyCiAqIGh0dHA6Ly9hbGV4Z29yYmF0Y2hldi5jb20vU3ludGF4SGlnaGxpZ2h0ZXIKICoKICogU3ludGF4SGlnaGxpZ2h0ZXIgaXMgZG9uYXRpb253YXJlLiBJZiB5b3UgYXJlIHVzaW5nIGl0LCBwbGVhc2UgZG9uYXRlLgogKiBodHRwOi8vYWxleGdvcmJhdGNoZXYuY29tL1N5bnRheEhpZ2hsaWdodGVyL2RvbmF0ZS5odG1sCiAqCiAqIEB2ZXJzaW9uCiAqIDMuMC44MyAoSnVseSAwMiAyMDEwKQogKiAKICogQGNvcHlyaWdodAogKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMCBBbGV4IEdvcmJhdGNoZXYuCiAqCiAqIEBsaWNlbnNlCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzLgogKi8KZXZhbChmdW5jdGlvbihwLGEsYyxrLGUsZCl7ZT1mdW5jdGlvbihjKXtyZXR1cm4oYzxhPycnOmUocGFyc2VJbnQoYy9hKSkpKygoYz1jJWEpPjM1P1N0cmluZy5mcm9tQ2hhckNvZGUoYysyOSk6Yy50b1N0cmluZygzNikpfTtpZighJycucmVwbGFjZSgvXi8sU3RyaW5nKSl7d2hpbGUoYy0tKXtkW2UoYyldPWtbY118fGUoYyl9az1bZnVuY3Rpb24oZSl7cmV0dXJuIGRbZV19XTtlPWZ1bmN0aW9uKCl7cmV0dXJuJ1xcdysnfTtjPTF9O3doaWxlKGMtLSl7aWYoa1tjXSl7cD1wLnJlcGxhY2UobmV3IFJlZ0V4cCgnXFxiJytlKGMpKydcXGInLCdnJyksa1tjXSl9fXJldHVybiBwfSgnSyBNO0koTSkxUyAyVSgiMmFcJ3QgNGsgTSA0SyAyZyAzbCA0RyA0SCIpOyg2KCl7NiByKGYsZSl7SSghTS4xUihmKSkxUyAzbSgiM3MgMTUgNFIiKTtLIGE9Zi4xdztmPU0oZi4xbSx0KGYpKyhlfHwiIikpO0koYSlmLjF3PXsxbTphLjFtLDE5OmEuMTk/YS4xOS4xYSgwKTpOfTtIIGZ9NiB0KGYpe0goZi4xSj8iZyI6IiIpKyhmLjRzPyJpIjoiIikrKGYuNHA/Im0iOiIiKSsoZi40dj8ieCI6IiIpKyhmLjNuPyJ5IjoiIil9NiBCKGYsZSxhLGIpe0sgYz11LkwsZCxoLGc7dj1SOzVLe08oO2MtLTspe2c9dVtjXTtJKGEmZy4zciYmKCFnLjJwfHxnLjJwLlcoYikpKXtnLjJxLjEyPWU7SSgoaD1nLjJxLlgoZikpJiZoLlA9PT1lKXtkPXszazpnLjJiLlcoYixoLGEpLDFDOmh9OzFOfX19fTV2KGkpezFTIGl9NXF7dj0xMX1IIGR9NiBwKGYsZSxhKXtJKDNiLlouMWkpSCBmLjFpKGUsYSk7TyhhPWF8fDA7YTxmLkw7YSsrKUkoZlthXT09PWUpSCBhO0gtMX1NPTYoZixlKXtLIGE9W10sYj1NLjFCLGM9MCxkLGg7SShNLjFSKGYpKXtJKGUhPT0xZCkxUyAzbSgiMmFcJ3QgNXIgNUkgNUYgNUIgNUMgMTUgNUUgNXAiKTtIIHIoZil9SSh2KTFTIDJVKCIyYVwndCBXIDNsIE0gNTkgNW0gNWcgNXggNWkiKTtlPWV8fCIiO08oZD17Mk46MTEsMTk6W10sMks6NihnKXtIIGUuMWkoZyk+LTF9LDNkOjYoZyl7ZSs9Z319O2M8Zi5MOylJKGg9QihmLGMsYixkKSl7YS5VKGguM2spO2MrPWguMUNbMF0uTHx8MX1ZIEkoaD1uLlguVyh6W2JdLGYuMWEoYykpKXthLlUoaFswXSk7Yys9aFswXS5MfVl7aD1mLjNhKGMpO0koaD09PSJbIiliPU0uMkk7WSBJKGg9PT0iXSIpYj1NLjFCO2EuVShoKTtjKyt9YT0xNShhLjFLKCIiKSxuLlEuVyhlLHcsIiIpKTthLjF3PXsxbTpmLDE5OmQuMk4/ZC4xOTpOfTtIIGF9O00uM3Y9IjEuNS4wIjtNLjJJPTE7TS4xQj0yO0sgQz0vXFwkKD86KFxcZFxcZD98WyQmYFwnXSl8eyhbJFxcd10rKX0pL2csdz0vW141aF0rfChbXFxzXFxTXSkoPz1bXFxzXFxTXSpcXDEpL2csQT0vXig/Ols/KitdfHtcXGQrKD86LFxcZCopP30pXFw/Py8sdj0xMSx1PVtdLG49e1g6MTUuWi5YLDFBOjE1LlouMUEsMUM6MXIuWi4xQyxROjFyLlouUSwxZToxci5aLjFlfSx4PW4uWC5XKC8oKT8/LywiIilbMV09PT0xZCxEPTYoKXtLIGY9L14vZztuLjFBLlcoZiwiIik7SCFmLjEyfSgpLHk9Nigpe0sgZj0veC9nO24uUS5XKCJ4IixmLCIiKTtIIWYuMTJ9KCksRT0xNS5aLjNuIT09MWQsej17fTt6W00uMkldPS9eKD86XFxcXCg/OlswLTNdWzAtN117MCwyfXxbNC03XVswLTddP3x4W1xcMjktMjYtZl17Mn18dVtcXDI5LTI2LWZdezR9fGNbQS0zby16XXxbXFxzXFxTXSkpLzt6W00uMUJdPS9eKD86XFxcXCg/OjAoPzpbMC0zXVswLTddezAsMn18WzQtN11bMC03XT8pP3xbMS05XVxcZCp8eFtcXDI5LTI2LWZdezJ9fHVbXFwyOS0yNi1mXXs0fXxjW0EtM28tel18W1xcc1xcU10pfFxcKFxcP1s6PSFdfFs/KitdXFw/fHtcXGQrKD86LFxcZCopP31cXD8/KS87TS4xaD02KGYsZSxhLGIpe3UuVSh7MnE6cihmLCJnIisoRT8ieSI6IiIpKSwyYjplLDNyOmF8fE0uMUIsMnA6Ynx8Tn0pfTtNLjJuPTYoZixlKXtLIGE9ZisiLyIrKGV8fCIiKTtIIE0uMm5bYV18fChNLjJuW2FdPU0oZixlKSl9O00uM2M9NihmKXtIIHIoZiwiZyIpfTtNLjVsPTYoZil7SCBmLlEoL1stW1xcXXt9KCkqKz8uLFxcXFxeJHwjXFxzXS9nLCJcXFxcJCYiKX07TS41ZT02KGYsZSxhLGIpe2U9cihlLCJnIisoYiYmRT8ieSI6IiIpKTtlLjEyPWE9YXx8MDtmPWUuWChmKTtIIGI/ZiYmZi5QPT09YT9mOk46Zn07TS4zcT02KCl7TS4xaD02KCl7MVMgMlUoIjJhXCd0IDU1IDFoIDU0IDNxIil9fTtNLjFSPTYoZil7SCA1My5aLjFxLlcoZik9PT0iWzJtIDE1XSJ9O00uM3A9NihmLGUsYSxiKXtPKEsgYz1yKGUsImciKSxkPS0xLGg7aD1jLlgoZik7KXthLlcoYixoLCsrZCxmLGMpO2MuMTI9PT1oLlAmJmMuMTIrK31JKGUuMUopZS4xMj0wfTtNLjU3PTYoZixlKXtIIDYgYShiLGMpe0sgZD1lW2NdLjFJP2VbY106ezFJOmVbY119LGg9cihkLjFJLCJnIiksZz1bXSxpO08oaT0wO2k8Yi5MO2krKylNLjNwKGJbaV0saCw2KGspe2cuVShkLjNqP2tbZC4zal18fCIiOmtbMF0pfSk7SCBjPT09ZS5MLTF8fCFnLkw/ZzphKGcsYysxKX0oW2ZdLDApfTsxNS5aLjFwPTYoZixlKXtIIEouWChlWzBdKX07MTUuWi5XPTYoZixlKXtIIEouWChlKX07MTUuWi5YPTYoZil7SyBlPW4uWC4xcChKLDE0KSxhO0koZSl7SSgheCYmZS5MPjEmJnAoZSwiIik+LTEpe2E9MTUoSi4xbSxuLlEuVyh0KEopLCJnIiwiIikpO24uUS5XKGYuMWEoZS5QKSxhLDYoKXtPKEsgYz0xO2M8MTQuTC0yO2MrKylJKDE0W2NdPT09MWQpZVtjXT0xZH0pfUkoSi4xdyYmSi4xdy4xOSlPKEsgYj0xO2I8ZS5MO2IrKylJKGE9Si4xdy4xOVtiLTFdKWVbYV09ZVtiXTshRCYmSi4xSiYmIWVbMF0uTCYmSi4xMj5lLlAmJkouMTItLX1IIGV9O0koIUQpMTUuWi4xQT02KGYpeyhmPW4uWC5XKEosZikpJiZKLjFKJiYhZlswXS5MJiZKLjEyPmYuUCYmSi4xMi0tO0ghIWZ9OzFyLlouMUM9NihmKXtNLjFSKGYpfHwoZj0xNShmKSk7SShmLjFKKXtLIGU9bi4xQy4xcChKLDE0KTtmLjEyPTA7SCBlfUggZi5YKEopfTsxci5aLlE9NihmLGUpe0sgYT1NLjFSKGYpLGIsYztJKGEmJjFqIGUuNTgoKT09PSIzZiImJmUuMWkoIiR7Iik9PT0tMSYmeSlIIG4uUS4xcChKLDE0KTtJKGEpe0koZi4xdyliPWYuMXcuMTl9WSBmKz0iIjtJKDFqIGU9PT0iNiIpYz1uLlEuVyhKLGYsNigpe0koYil7MTRbMF09MWYgMXIoMTRbMF0pO08oSyBkPTA7ZDxiLkw7ZCsrKUkoYltkXSkxNFswXVtiW2RdXT0xNFtkKzFdfUkoYSYmZi4xSilmLjEyPTE0WzE0LkwtMl0rMTRbMF0uTDtIIGUuMXAoTiwxNCl9KTtZe2M9SisiIjtjPW4uUS5XKGMsZiw2KCl7SyBkPTE0O0ggbi5RLlcoZSxDLDYoaCxnLGkpe0koZyk1YihnKXsyNCIkIjpIIiQiOzI0IiYiOkggZFswXTsyNCJgIjpIIGRbZC5MLTFdLjFhKDAsZFtkLkwtMl0pOzI0IlwnIjpIIGRbZC5MLTFdLjFhKGRbZC5MLTJdK2RbMF0uTCk7NWE6aT0iIjtnPStnO0koIWcpSCBoO08oO2c+ZC5MLTM7KXtpPTFyLlouMWEuVyhnLC0xKStpO2c9MVEuM2koZy8xMCl9SChnP2RbZ118fCIiOiIkIikraX1Ze2c9K2k7SShnPD1kLkwtMylIIGRbZ107Zz1iP3AoYixpKTotMTtIIGc+LTE/ZFtnKzFdOmh9fSl9KX1JKGEmJmYuMUopZi4xMj0wO0ggY307MXIuWi4xZT02KGYsZSl7SSghTS4xUihmKSlIIG4uMWUuMXAoSiwxNCk7SyBhPUorIiIsYj1bXSxjPTAsZCxoO0koZT09PTFkfHwrZTwwKWU9NUQ7WXtlPTFRLjNpKCtlKTtJKCFlKUhbXX1PKGY9TS4zYyhmKTtkPWYuWChhKTspe0koZi4xMj5jKXtiLlUoYS4xYShjLGQuUCkpO2QuTD4xJiZkLlA8YS5MJiYzYi5aLlUuMXAoYixkLjFhKDEpKTtoPWRbMF0uTDtjPWYuMTI7SShiLkw+PWUpMU59Zi4xMj09PWQuUCYmZi4xMisrfUkoYz09PWEuTCl7SSghbi4xQS5XKGYsIiIpfHxoKWIuVSgiIil9WSBiLlUoYS4xYShjKSk7SCBiLkw+ZT9iLjFhKDAsZSk6Yn07TS4xaCgvXFwoXFw/I1teKV0qXFwpLyw2KGYpe0ggbi4xQS5XKEEsZi4yUy4xYShmLlArZlswXS5MKSk/IiI6Iig/OikifSk7TS4xaCgvXFwoKD8hXFw/KS8sNigpe0ouMTkuVShOKTtIIigifSk7TS4xaCgvXFwoXFw/PChbJFxcd10rKT4vLDYoZil7Si4xOS5VKGZbMV0pO0ouMk49UjtIIigifSk7TS4xaCgvXFxcXGs8KFtcXHckXSspPi8sNihmKXtLIGU9cChKLjE5LGZbMV0pO0ggZT4tMT8iXFxcXCIrKGUrMSkrKDNSKGYuMlMuM2EoZi5QK2ZbMF0uTCkpPyIiOiIoPzopIik6ZlswXX0pO00uMWgoL1xcW1xcXj9dLyw2KGYpe0ggZlswXT09PSJbXSI/IlxcXFxiXFxcXEIiOiJbXFxcXHNcXFxcU10ifSk7TS4xaCgvXlxcKFxcPyhbNUFdKylcXCkvLDYoZil7Si4zZChmWzFdKTtIIiJ9KTtNLjFoKC8oPzpcXHMrfCMuKikrLyw2KGYpe0ggbi4xQS5XKEEsZi4yUy4xYShmLlArZlswXS5MKSk/IiI6Iig/OikifSxNLjFCLDYoKXtIIEouMksoIngiKX0pO00uMWgoL1xcLi8sNigpe0giW1xcXFxzXFxcXFNdIn0sTS4xQiw2KCl7SCBKLjJLKCJzIil9KX0pKCk7MWogMmUhPSIxZCImJigyZS5NPU0pO0sgMXY9NigpezYgcihhLGIpe2EuMWwuMWkoYikhPS0xfHwoYS4xbCs9IiAiK2IpfTYgdChhKXtIIGEuMWkoIjNlIik9PTA/YToiM2UiK2F9NiBCKGEpe0ggZS4xWS4yQVt0KGEpXX02IHAoYSxiLGMpe0koYT09TilIIE47SyBkPWMhPVI/YS4zRzpbYS4yR10saD17IiMiOiIxYyIsIi4iOiIxbCJ9W2IuMW8oMCwxKV18fCIzaCIsZyxpO2c9aCE9IjNoIj9iLjFvKDEpOmIuNXUoKTtJKChhW2hdfHwiIikuMWkoZykhPS0xKUggYTtPKGE9MDtkJiZhPGQuTCYmaT09TjthKyspaT1wKGRbYV0sYixjKTtIIGl9NiBDKGEsYil7SyBjPXt9LGQ7TyhkIDJnIGEpY1tkXT1hW2RdO08oZCAyZyBiKWNbZF09YltkXTtIIGN9NiB3KGEsYixjLGQpezYgaChnKXtnPWd8fDFQLjV5O0koIWcuMUYpe2cuMUY9Zy41MjtnLjNOPTYoKXtKLjV3PTExfX1jLlcoZHx8MVAsZyl9YS4zZz9hLjNnKCI0VSIrYixoKTphLjR5KGIsaCwxMSl9NiBBKGEsYil7SyBjPWUuMVkuMmosZD1OO0koYz09Til7Yz17fTtPKEsgaCAyZyBlLjFVKXtLIGc9ZS4xVVtoXTtkPWcuNHg7SShkIT1OKXtnLjFWPWguNHcoKTtPKGc9MDtnPGQuTDtnKyspY1tkW2ddXT1ofX1lLjFZLjJqPWN9ZD1lLjFVW2NbYV1dO2Q9PU4mJmIhPTExJiYxUC4xWChlLjEzLjF4LjFYKyhlLjEzLjF4LjNFK2EpKTtIIGR9NiB2KGEsYil7TyhLIGM9YS4xZSgiXFxuIiksZD0wO2Q8Yy5MO2QrKyljW2RdPWIoY1tkXSxkKTtIIGMuMUsoIlxcbiIpfTYgdShhLGIpe0koYT09Tnx8YS5MPT0wfHxhPT0iXFxuIilIIGE7YT1hLlEoLzwvZywiJjF5OyIpO2E9YS5RKC8gezIsfS9nLDYoYyl7TyhLIGQ9IiIsaD0wO2g8Yy5MLTE7aCsrKWQrPWUuMTMuMVc7SCBkKyIgIn0pO0koYiE9TilhPXYoYSw2KGMpe0koYy5MPT0wKUgiIjtLIGQ9IiI7Yz1jLlEoL14oJjJzO3wgKSsvLDYoaCl7ZD1oO0giIn0pO0koYy5MPT0wKUggZDtIIGQrXCc8MTcgMWc9IlwnK2IrXCciPlwnK2MrIjwvMTc+In0pO0ggYX02IG4oYSxiKXthLjFlKCJcXG4iKTtPKEsgYz0iIixkPTA7ZDw1MDtkKyspYys9IiAgICAgICAgICAgICAgICAgICAgIjtIIGE9dihhLDYoaCl7SShoLjFpKCJcXHQiKT09LTEpSCBoO08oSyBnPTA7KGc9aC4xaSgiXFx0IikpIT0tMTspaD1oLjFvKDAsZykrYy4xbygwLGItZyViKStoLjFvKGcrMSxoLkwpO0ggaH0pfTYgeChhKXtIIGEuUSgvXlxccyt8XFxzKyQvZywiIil9NiBEKGEsYil7SShhLlA8Yi5QKUgtMTtZIEkoYS5QPmIuUClIIDE7WSBJKGEuTDxiLkwpSC0xO1kgSShhLkw+Yi5MKUggMTtIIDB9NiB5KGEsYil7NiBjKGspe0gga1swXX1PKEsgZD1OLGg9W10sZz1iLjJEP2IuMkQ6YzsoZD1iLjFJLlgoYSkpIT1OOyl7SyBpPWcoZCxiKTtJKDFqIGk9PSIzZiIpaT1bMWYgZS4yTChpLGQuUCxiLjIzKV07aD1oLjFPKGkpfUggaH02IEUoYSl7SyBiPS8oLiopKCgmMUc7fCYxeTspLiopLztIIGEuUShlLjNBLjNNLDYoYyl7SyBkPSIiLGg9TjtJKGg9Yi5YKGMpKXtjPWhbMV07ZD1oWzJdfUhcJzxhIDJoPSJcJytjK1wnIj5cJytjKyI8L2E+IitkfSl9NiB6KCl7TyhLIGE9MUUuMzYoIjFrIiksYj1bXSxjPTA7YzxhLkw7YysrKWFbY10uM3M9PSIyMCImJmIuVShhW2NdKTtIIGJ9NiBmKGEpe2E9YS4xRjtLIGI9cChhLCIuMjAiLFIpO2E9cChhLCIuM08iLFIpO0sgYz0xRS40aSgiM3QiKTtJKCEoIWF8fCFifHxwKGEsIjN0IikpKXtCKGIuMWMpO3IoYiwiMW0iKTtPKEsgZD1hLjNHLGg9W10sZz0wO2c8ZC5MO2crKyloLlUoZFtnXS40enx8ZFtnXS40QSk7aD1oLjFLKCJcXHIiKTtjLjM5KDFFLjREKGgpKTthLjM5KGMpO2MuMkMoKTtjLjRDKCk7dyhjLCI0dSIsNigpe2MuMkcuNEUoYyk7Yi4xbD1iLjFsLlEoIjFtIiwiIil9KX19SSgxaiAzRiE9IjFkIiYmMWogTT09IjFkIilNPTNGKCJNIikuTTtLIGU9ezJ2OnsiMWctMjciOiIiLCIyaS0xcyI6MSwiMnotMXMtMnQiOjExLDFNOk4sMXQ6TiwiNDItNDUiOlIsIjQzLTIyIjo0LDF1OlIsMTY6UiwiM1YtMTciOlIsMmw6MTEsIjQxLTQwIjpSLDJrOjExLCIxei0xayI6MTF9LDEzOnsxVzoiJjJzOyIsMk06Uiw0NjoxMSw0NDoxMSwzNDoiNG4iLDF4OnsyMToiNG8gMW0iLDJQOiI/IiwxWDoiMXZcXG5cXG4iLDNFOiI0clwndCA0dCAxRCBPOiAiLDRnOiI0bSA0QlwndCA1MSBPIDF6LTFrIDRGOiAiLDM3OlwnPCE0VCAxeiA0UyAiLS8vNFYvLzNIIDRXIDEuMCA0Wi8vNFkiICIxWjovLzJ5LjNMLjNLLzRYLzNJLzNILzNJLTRQLjRKIj48MXogNEk9IjFaOi8vMnkuM0wuM0svNEwvNUwiPjwzSj48NE4gMVotNE09IjVHLTVNIiA2Sz0iMk8vMXo7IDZKPTZJLTgiIC8+PDF0PjZMIDF2PC8xdD48LzNKPjwzQiAxTD0iMjUtNk06NlEsNlAsNk8sNk4tNkY7NnktMmY6IzZ4OzJmOiM2dzsyNS0yMjo2djsyTy0zRDozQzsiPjxUIDFMPSIyTy0zRDozQzszdy0zMjoxLjZ6OyI+PFQgMUw9IjI1LTIyOjZBLTZFOyI+MXY8L1Q+PFQgMUw9IjI1LTIyOi42Qzszdy02Qjo2UjsiPjxUPjN2IDMuMC43NiAoNzIgNzMgM3gpPC9UPjxUPjxhIDJoPSIxWjovLzN1LjJ3LzF2IiAxRj0iMzgiIDFMPSIyZjojM3kiPjFaOi8vM3UuMncvMXY8L2E+PC9UPjxUPjcwIDE3IDZVIDcxLjwvVD48VD42VCA2WC0zeCA2WSA2RC48L1Q+PC9UPjxUPjZ0IDYxIDYwIEogMWssIDVaIDxhIDJoPSI2dTovLzJ5LjYyLjJ3LzYzLTY2LzY1PzY0PTVYLTVXJjVQPTVPIiAxTD0iMmY6IzN5Ij41UjwvYT4gNVYgPDJSLz41VSA1VCA1UyE8L1Q+PC9UPjwvM0I+PC8xej5cJ319LDFZOnsyajpOLDJBOnt9fSwxVTp7fSwzQTp7Nm46L1xcL1xcKltcXHNcXFNdKj9cXCpcXC8vMmMsNm06L1xcL1xcLy4qJC8yYyw2bDovIy4qJC8yYyw2azovIihbXlxcXFwiXFxuXXxcXFxcLikqIi9nLDZvOi9cJyhbXlxcXFxcJ1xcbl18XFxcXC4pKlwnL2csNnA6MWYgTShcJyIoW15cXFxcXFxcXCJdfFxcXFxcXFxcLikqIlwnLCIzeiIpLDZzOjFmIE0oIlwnKFteXFxcXFxcXFxcJ118XFxcXFxcXFwuKSpcJyIsIjN6IiksNnE6LygmMXk7fDwpIS0tW1xcc1xcU10qPy0tKCYxRzt8PikvMmMsM006L1xcdys6XFwvXFwvW1xcdy0uXFwvPyUmPTpAO10qL2csNmE6ezE4Oi8oJjF5O3w8KVxcPz0/L2csMWI6L1xcPygmMUc7fD4pL2d9LDY5OnsxODovKCYxeTt8PCklPT8vZywxYjovJSgmMUc7fD4pL2d9LDZkOnsxODovKCYxeTt8PClcXHMqMWsuKj8oJjFHO3w+KS8yVCwxYjovKCYxeTt8PClcXC9cXHMqMWtcXHMqKCYxRzt8PikvMlR9fSwxNjp7MUg6NihhKXs2IGIoaSxrKXtIIGUuMTYuMm8oaSxrLGUuMTMuMXhba10pfU8oSyBjPVwnPFQgMWc9IjE2Ij5cJyxkPWUuMTYuMngsaD1kLjJYLGc9MDtnPGguTDtnKyspYys9KGRbaFtnXV0uMUh8fGIpKGEsaFtnXSk7Yys9IjwvVD4iO0ggY30sMm86NihhLGIsYyl7SFwnPDJXPjxhIDJoPSIjIiAxZz0iNmUgNmhcJytiKyIgIitiK1wnIj5cJytjKyI8L2E+PC8yVz4ifSwyYjo2KGEpe0sgYj1hLjFGLGM9Yi4xbHx8IiI7Yj1CKHAoYiwiLjIwIixSKS4xYyk7SyBkPTYoaCl7SChoPTE1KGgrIjZmKFxcXFx3KykiKS5YKGMpKT9oWzFdOk59KCI2ZyIpO2ImJmQmJmUuMTYuMnhbZF0uMkIoYik7YS4zTigpfSwyeDp7Mlg6WyIyMSIsIjJQIl0sMjE6ezFIOjYoYSl7SShhLlYoIjJsIikhPVIpSCIiO0sgYj1hLlYoIjF0Iik7SCBlLjE2LjJvKGEsIjIxIixiP2I6ZS4xMy4xeC4yMSl9LDJCOjYoYSl7YT0xRS42aih0KGEuMWMpKTthLjFsPWEuMWwuUSgiNDciLCIiKX19LDJQOnsyQjo2KCl7SyBhPSI2OD0wIjthKz0iLCAxOD0iKygzMS4zMC0zMykvMisiLCAzMj0iKygzMS4yWi0yWSkvMisiLCAzMD0zMywgMlo9MlkiO2E9YS5RKC9eLC8sIiIpO2E9MVAuNlooIiIsIjM4IixhKTthLjJDKCk7SyBiPWEuMUU7Yi42VyhlLjEzLjF4LjM3KTtiLjZWKCk7YS4yQygpfX19fSwzNTo2KGEsYil7SyBjO0koYiljPVtiXTtZe2M9MUUuMzYoZS4xMy4zNCk7TyhLIGQ9W10saD0wO2g8Yy5MO2grKylkLlUoY1toXSk7Yz1kfWM9YztkPVtdO0koZS4xMy4yTSljPWMuMU8oeigpKTtJKGMuTD09PTApSCBkO08oaD0wO2g8Yy5MO2grKyl7TyhLIGc9Y1toXSxpPWEsaz1jW2hdLjFsLGo9M1cgMCxsPXt9LG09MWYgTSgiXlxcXFxbKD88MlY+KC4qPykpXFxcXF0kIikscz0xZiBNKCIoPzwyNz5bXFxcXHctXSspXFxcXHMqOlxcXFxzKig/PDFUPltcXFxcdy0lI10rfFxcXFxbLio/XFxcXF18XFwiLio/XFwifFwnLio/XCcpXFxcXHMqOz8iLCJnIik7KGo9cy5YKGspKSE9Tjspe0sgbz1qLjFULlEoL15bXCciXXxbXCciXSQvZywiIik7SShvIT1OJiZtLjFBKG8pKXtvPW0uWChvKTtvPW8uMlYuTD4wP28uMlYuMWUoL1xccyosXFxzKi8pOltdfWxbai4yN109b31nPXsxRjpnLDFuOkMoaSxsKX07Zy4xbi4xRCE9TiYmZC5VKGcpfUggZH0sMU06NihhLGIpe0sgYz1KLjM1KGEsYiksZD1OLGg9ZS4xMztJKGMuTCE9PTApTyhLIGc9MDtnPGMuTDtnKyspe2I9Y1tnXTtLIGk9Yi4xRixrPWIuMW4saj1rLjFELGw7SShqIT1OKXtJKGtbIjF6LTFrIl09PSJSInx8ZS4ydlsiMXotMWsiXT09Uil7ZD0xZiBlLjRsKGopO2o9IjRPIn1ZIEkoZD1BKGopKWQ9MWYgZDtZIDZIO2w9aS4zWDtJKGguMk0pe2w9bDtLIG09eChsKSxzPTExO0kobS4xaSgiPCFbNkdbIik9PTApe209bS40aCg5KTtzPVJ9SyBvPW0uTDtJKG0uMWkoIl1dXFw+Iik9PW8tMyl7bT1tLjRoKDAsby0zKTtzPVJ9bD1zP206bH1JKChpLjF0fHwiIikhPSIiKWsuMXQ9aS4xdDtrLjFEPWo7ZC4yUShrKTtiPWQuMkYobCk7SSgoaS4xY3x8IiIpIT0iIiliLjFjPWkuMWM7aS4yRy43NChiLGkpfX19LDJFOjYoYSl7dygxUCwiNGsiLDYoKXtlLjFNKGEpfSl9fTtlLjJFPWUuMkU7ZS4xTT1lLjFNO2UuMkw9NihhLGIsYyl7Si4xVD1hO0ouUD1iO0ouTD1hLkw7Si4yMz1jO0ouMVY9Tn07ZS4yTC5aLjFxPTYoKXtIIEouMVR9O2UuNGw9NihhKXs2IGIoaixsKXtPKEsgbT0wO208ai5MO20rKylqW21dLlArPWx9SyBjPUEoYSksZCxoPTFmIGUuMVUuNVksZz1KLGk9IjJGIDFIIDJRIi4xZSgiICIpO0koYyE9Til7ZD0xZiBjO08oSyBrPTA7azxpLkw7aysrKSg2KCl7SyBqPWlba107Z1tqXT02KCl7SCBoW2pdLjFwKGgsMTQpfX0pKCk7ZC4yOD09Tj8xUC4xWChlLjEzLjF4LjFYKyhlLjEzLjF4LjRnK2EpKTpoLjJKLlUoezFJOmQuMjguMTcsMkQ6NihqKXtPKEsgbD1qLjE3LG09W10scz1kLjJKLG89ai5QK2ouMTguTCxGPWQuMjgscSxHPTA7RzxzLkw7RysrKXtxPXkobCxzW0ddKTtiKHEsbyk7bT1tLjFPKHEpfUkoRi4xOCE9TiYmai4xOCE9Til7cT15KGouMTgsRi4xOCk7YihxLGouUCk7bT1tLjFPKHEpfUkoRi4xYiE9TiYmai4xYiE9Til7cT15KGouMWIsRi4xYik7YihxLGouUCtqWzBdLjVRKGouMWIpKTttPW0uMU8ocSl9TyhqPTA7ajxtLkw7aisrKW1bal0uMVY9Yy4xVjtIIG19fSl9fTtlLjRqPTYoKXt9O2UuNGouWj17Vjo2KGEsYil7SyBjPUouMW5bYV07Yz1jPT1OP2I6YztLIGQ9eyJSIjpSLCIxMSI6MTF9W2NdO0ggZD09Tj9jOmR9LDNZOjYoYSl7SCAxRS40aShhKX0sNGM6NihhLGIpe0sgYz1bXTtJKGEhPU4pTyhLIGQ9MDtkPGEuTDtkKyspSSgxaiBhW2RdPT0iMm0iKWM9Yy4xTyh5KGIsYVtkXSkpO0ggSi40ZShjLjZiKEQpKX0sNGU6NihhKXtPKEsgYj0wO2I8YS5MO2IrKylJKGFbYl0hPT1OKU8oSyBjPWFbYl0sZD1jLlArYy5MLGg9YisxO2g8YS5MJiZhW2JdIT09TjtoKyspe0sgZz1hW2hdO0koZyE9PU4pSShnLlA+ZCkxTjtZIEkoZy5QPT1jLlAmJmcuTD5jLkwpYVtiXT1OO1kgSShnLlA+PWMuUCYmZy5QPGQpYVtoXT1OfUggYX0sNGQ6NihhKXtLIGI9W10sYz0ydShKLlYoIjJpLTFzIikpO3YoYSw2KGQsaCl7Yi5VKGgrYyl9KTtIIGJ9LDNVOjYoYSl7SyBiPUouVigiMU0iLFtdKTtJKDFqIGIhPSIybSImJmIuVT09TiliPVtiXTthOnthPWEuMXEoKTtLIGM9M1cgMDtPKGM9Yz0xUS42YyhjfHwwLDApO2M8Yi5MO2MrKylJKGJbY109PWEpe2I9YzsxTiBhfWI9LTF9SCBiIT0tMX0sMnI6NihhLGIsYyl7YT1bIjFzIiwiNmkiK2IsIlAiK2EsIjZyIisoYiUyPT0wPzE6MikuMXEoKV07Si4zVShiKSYmYS5VKCI2NyIpO2I9PTAmJmEuVSgiMU4iKTtIXCc8VCAxZz0iXCcrYS4xSygiICIpK1wnIj5cJytjKyI8L1Q+In0sM1E6NihhLGIpe0sgYz0iIixkPWEuMWUoIlxcbiIpLkwsaD0ydShKLlYoIjJpLTFzIikpLGc9Si5WKCIyei0xcy0ydCIpO0koZz09UilnPShoK2QtMSkuMXEoKS5MO1kgSSgzUihnKT09UilnPTA7TyhLIGk9MDtpPGQ7aSsrKXtLIGs9Yj9iW2ldOmgraSxqO0koaz09MClqPWUuMTMuMVc7WXtqPWc7TyhLIGw9ay4xcSgpO2wuTDxqOylsPSIwIitsO2o9bH1hPWo7Yys9Si4ycihpLGssYSl9SCBjfSw0OTo2KGEsYil7YT14KGEpO0sgYz1hLjFlKCJcXG4iKTtKLlYoIjJ6LTFzLTJ0Iik7SyBkPTJ1KEouVigiMmktMXMiKSk7YT0iIjtPKEsgaD1KLlYoIjFEIiksZz0wO2c8Yy5MO2crKyl7SyBpPWNbZ10saz0vXigmMnM7fFxccykrLy5YKGkpLGo9TixsPWI/YltnXTpkK2c7SShrIT1OKXtqPWtbMF0uMXEoKTtpPWkuMW8oai5MKTtqPWouUSgiICIsZS4xMy4xVyl9aT14KGkpO0koaS5MPT0wKWk9ZS4xMy4xVzthKz1KLjJyKGcsbCwoaiE9Tj9cJzwxNyAxZz0iXCcraCtcJyA1TiI+XCcraisiPC8xNz4iOiIiKStpKX1IIGF9LDRmOjYoYSl7SCBhPyI8NGE+IithKyI8LzRhPiI6IiJ9LDRiOjYoYSxiKXs2IGMobCl7SChsPWw/bC4xVnx8ZzpnKT9sKyIgIjoiIn1PKEsgZD0wLGg9IiIsZz1KLlYoIjFEIiwiIiksaT0wO2k8Yi5MO2krKyl7SyBrPWJbaV0sajtJKCEoaz09PU58fGsuTD09PTApKXtqPWMoayk7aCs9dShhLjFvKGQsay5QLWQpLGorIjQ4IikrdShrLjFULGoray4yMyk7ZD1rLlAray5MKyhrLjc1fHwwKX19aCs9dShhLjFvKGQpLGMoKSsiNDgiKTtIIGh9LDFIOjYoYSl7SyBiPSIiLGM9WyIyMCJdLGQ7SShKLlYoIjJrIik9PVIpSi4xbi4xNj1KLjFuLjF1PTExOzFsPSIyMCI7Si5WKCIybCIpPT1SJiZjLlUoIjQ3Iik7SSgoMXU9Si5WKCIxdSIpKT09MTEpYy5VKCI2UyIpO2MuVShKLlYoIjFnLTI3IikpO2MuVShKLlYoIjFEIikpO2E9YS5RKC9eWyBdKltcXG5dK3xbXFxuXSpbIF0qJC9nLCIiKS5RKC9cXHIvZywiICIpO2I9Si5WKCI0My0yMiIpO0koSi5WKCI0Mi00NSIpPT1SKWE9bihhLGIpO1l7TyhLIGg9IiIsZz0wO2c8YjtnKyspaCs9IiAiO2E9YS5RKC9cXHQvZyxoKX1hPWE7YTp7Yj1hPWE7aD0vPDJSXFxzKlxcLz8+fCYxeTsyUlxccypcXC8/JjFHOy8yVDtJKGUuMTMuNDY9PVIpYj1iLlEoaCwiXFxuIik7SShlLjEzLjQ0PT1SKWI9Yi5RKGgsIiIpO2I9Yi4xZSgiXFxuIik7aD0vXlxccyovO2c9NFE7TyhLIGk9MDtpPGIuTCYmZz4wO2krKyl7SyBrPWJbaV07SSh4KGspLkwhPTApe2s9aC5YKGspO0koaz09Til7YT1hOzFOIGF9Zz0xUS40cShrWzBdLkwsZyl9fUkoZz4wKU8oaT0wO2k8Yi5MO2krKyliW2ldPWJbaV0uMW8oZyk7YT1iLjFLKCJcXG4iKX1JKDF1KWQ9Si40ZChhKTtiPUouNGMoSi4ySixhKTtiPUouNGIoYSxiKTtiPUouNDkoYixkKTtJKEouVigiNDEtNDAiKSliPUUoYik7MWogMkghPSIxZCImJjJILjNTJiYySC4zUy4xQygvNXMvKSYmYy5VKCI1dCIpO0ggYj1cJzxUIDFjPSJcJyt0KEouMWMpK1wnIiAxZz0iXCcrYy4xSygiICIpK1wnIj5cJysoSi5WKCIxNiIpP2UuMTYuMUgoSik6IiIpK1wnPDNaIDV6PSIwIiA1SD0iMCIgNUo9IjAiPlwnK0ouNGYoSi5WKCIxdCIpKSsiPDNUPjwzUD4iKygxdT9cJzwyZCAxZz0iMXUiPlwnK0ouM1EoYSkrIjwvMmQ+IjoiIikrXCc8MmQgMWc9IjE3Ij48VCAxZz0iM08iPlwnK2IrIjwvVD48LzJkPjwvM1A+PC8zVD48LzNaPjwvVD4ifSwyRjo2KGEpe0koYT09PU4pYT0iIjtKLjE3PWE7SyBiPUouM1koIlQiKTtiLjNYPUouMUgoYSk7Si5WKCIxNiIpJiZ3KHAoYiwiLjE2IiksIjVjIixlLjE2LjJiKTtKLlYoIjNWLTE3IikmJncocChiLCIuMTciKSwiNTYiLGYpO0ggYn0sMlE6NihhKXtKLjFjPSIiKzFRLjVkKDFRLjVuKCkqNWspLjFxKCk7ZS4xWS4yQVt0KEouMWMpXT1KO0ouMW49QyhlLjJ2LGF8fHt9KTtJKEouVigiMmsiKT09UilKLjFuLjE2PUouMW4uMXU9MTF9LDVqOjYoYSl7YT1hLlEoL15cXHMrfFxccyskL2csIiIpLlEoL1xccysvZywifCIpO0giXFxcXGIoPzoiK2ErIilcXFxcYiJ9LDVmOjYoYSl7Si4yOD17MTg6ezFJOmEuMTgsMjM6IjFrIn0sMWI6ezFJOmEuMWIsMjM6IjFrIn0sMTc6MWYgTSgiKD88MTg+IithLjE4LjFtKyIpKD88MTc+Lio/KSg/PDFiPiIrYS4xYi4xbSsiKSIsIjVvIil9fX07SCBlfSgpOzFqIDJlIT0iMWQiJiYoMmUuMXY9MXYpOycsNjIsNDQxLCd8fHx8fHxmdW5jdGlvbnx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHxyZXR1cm58aWZ8dGhpc3x2YXJ8bGVuZ3RofFhSZWdFeHB8bnVsbHxmb3J8aW5kZXh8cmVwbGFjZXx0cnVlfHxkaXZ8cHVzaHxnZXRQYXJhbXxjYWxsfGV4ZWN8ZWxzZXxwcm90b3R5cGV8fGZhbHNlfGxhc3RJbmRleHxjb25maWd8YXJndW1lbnRzfFJlZ0V4cHx0b29sYmFyfGNvZGV8bGVmdHxjYXB0dXJlTmFtZXN8c2xpY2V8cmlnaHR8aWR8dW5kZWZpbmVkfHNwbGl0fG5ld3xjbGFzc3xhZGRUb2tlbnxpbmRleE9mfHR5cGVvZnxzY3JpcHR8Y2xhc3NOYW1lfHNvdXJjZXxwYXJhbXN8c3Vic3RyfGFwcGx5fHRvU3RyaW5nfFN0cmluZ3xsaW5lfHRpdGxlfGd1dHRlcnxTeW50YXhIaWdobGlnaHRlcnxfeHJlZ2V4cHxzdHJpbmdzfGx0fGh0bWx8dGVzdHxPVVRTSURFX0NMQVNTfG1hdGNofGJydXNofGRvY3VtZW50fHRhcmdldHxndHxnZXRIdG1sfHJlZ2V4fGdsb2JhbHxqb2lufHN0eWxlfGhpZ2hsaWdodHxicmVha3xjb25jYXR8d2luZG93fE1hdGh8aXNSZWdFeHB8dGhyb3d8dmFsdWV8YnJ1c2hlc3xicnVzaE5hbWV8c3BhY2V8YWxlcnR8dmFyc3xodHRwfHN5bnRheGhpZ2hsaWdodGVyfGV4cGFuZFNvdXJjZXxzaXplfGNzc3xjYXNlfGZvbnR8RmF8bmFtZXxodG1sU2NyaXB0fGRBfGNhbnxoYW5kbGVyfGdtfHRkfGV4cG9ydHN8Y29sb3J8aW58aHJlZnxmaXJzdHxkaXNjb3ZlcmVkQnJ1c2hlc3xsaWdodHxjb2xsYXBzZXxvYmplY3R8Y2FjaGV8Z2V0QnV0dG9uSHRtbHx0cmlnZ2VyfHBhdHRlcm58Z2V0TGluZUh0bWx8bmJzcHxudW1iZXJzfHBhcnNlSW50fGRlZmF1bHRzfGNvbXxpdGVtc3x3d3d8cGFkfGhpZ2hsaWdodGVyc3xleGVjdXRlfGZvY3VzfGZ1bmN8YWxsfGdldERpdnxwYXJlbnROb2RlfG5hdmlnYXRvcnxJTlNJREVfQ0xBU1N8cmVnZXhMaXN0fGhhc0ZsYWd8TWF0Y2h8dXNlU2NyaXB0VGFnc3xoYXNOYW1lZENhcHR1cmV8dGV4dHxoZWxwfGluaXR8YnJ8aW5wdXR8Z2l8RXJyb3J8dmFsdWVzfHNwYW58bGlzdHwyNTB8aGVpZ2h0fHdpZHRofHNjcmVlbnx0b3B8NTAwfHRhZ05hbWV8ZmluZEVsZW1lbnRzfGdldEVsZW1lbnRzQnlUYWdOYW1lfGFib3V0RGlhbG9nfF9ibGFua3xhcHBlbmRDaGlsZHxjaGFyQXR8QXJyYXl8Y29weUFzR2xvYmFsfHNldEZsYWd8aGlnaGxpZ2h0ZXJffHN0cmluZ3xhdHRhY2hFdmVudHxub2RlTmFtZXxmbG9vcnxiYWNrcmVmfG91dHB1dHx0aGV8VHlwZUVycm9yfHN0aWNreXxaYXxpdGVyYXRlfGZyZWV6ZVRva2Vuc3xzY29wZXx0eXBlfHRleHRhcmVhfGFsZXhnb3JiYXRjaGV2fHZlcnNpb258bWFyZ2lufDIwMTB8MDA1ODk2fGdzfHJlZ2V4TGlifGJvZHl8Y2VudGVyfGFsaWdufG5vQnJ1c2h8cmVxdWlyZXxjaGlsZE5vZGVzfERURHx4aHRtbDF8aGVhZHxvcmd8dzN8dXJsfHByZXZlbnREZWZhdWx0fGNvbnRhaW5lcnx0cnxnZXRMaW5lTnVtYmVyc0h0bWx8aXNOYU58dXNlckFnZW50fHRib2R5fGlzTGluZUhpZ2hsaWdodGVkfHF1aWNrfHZvaWR8aW5uZXJIVE1MfGNyZWF0ZXx0YWJsZXxsaW5rc3xhdXRvfHNtYXJ0fHRhYnxzdHJpcEJyc3x0YWJzfGJsb2dnZXJNb2RlfGNvbGxhcHNlZHxwbGFpbnxnZXRDb2RlTGluZXNIdG1sfGNhcHRpb258Z2V0TWF0Y2hlc0h0bWx8ZmluZE1hdGNoZXN8ZmlndXJlT3V0TGluZU51bWJlcnN8cmVtb3ZlTmVzdGVkTWF0Y2hlc3xnZXRUaXRsZUh0bWx8YnJ1c2hOb3RIdG1sU2NyaXB0fHN1YnN0cmluZ3xjcmVhdGVFbGVtZW50fEhpZ2hsaWdodGVyfGxvYWR8SHRtbFNjcmlwdHxCcnVzaHxwcmV8ZXhwYW5kfG11bHRpbGluZXxtaW58Q2FufGlnbm9yZUNhc2V8ZmluZHxibHVyfGV4dGVuZGVkfHRvTG93ZXJDYXNlfGFsaWFzZXN8YWRkRXZlbnRMaXN0ZW5lcnxpbm5lclRleHR8dGV4dENvbnRlbnR8d2FzbnxzZWxlY3R8Y3JlYXRlVGV4dE5vZGV8cmVtb3ZlQ2hpbGR8b3B0aW9ufHNhbWV8ZnJhbWV8eG1sbnN8ZHRkfHR3aWNlfDE5OTl8ZXF1aXZ8bWV0YXxodG1sc2NyaXB0fHRyYW5zaXRpb25hbHwxRTN8ZXhwZWN0ZWR8UFVCTElDfERPQ1RZUEV8b258VzNDfFhIVE1MfFRSfEVOfFRyYW5zaXRpb25hbHx8Y29uZmlndXJlZHxzcmNFbGVtZW50fE9iamVjdHxhZnRlcnxydW58ZGJsY2xpY2t8bWF0Y2hDaGFpbnx2YWx1ZU9mfGNvbnN0cnVjdG9yfGRlZmF1bHR8c3dpdGNofGNsaWNrfHJvdW5kfGV4ZWNBdHxmb3JIdG1sU2NyaXB0fHRva2VufGdpbXl8ZnVuY3Rpb25zfGdldEtleXdvcmRzfDFFNnxlc2NhcGV8d2l0aGlufHJhbmRvbXxzZ2l8YW5vdGhlcnxmaW5hbGx5fHN1cHBseXxNU0lFfGllfHRvVXBwZXJDYXNlfGNhdGNofHJldHVyblZhbHVlfGRlZmluaXRpb258ZXZlbnR8Ym9yZGVyfGltc3h8Y29uc3RydWN0aW5nfG9uZXxJbmZpbml0eXxmcm9tfHdoZW58Q29udGVudHxjZWxscGFkZGluZ3xmbGFnc3xjZWxsc3BhY2luZ3x0cnl8eGh0bWx8VHlwZXxzcGFjZXN8MjkzMDQwMnxob3N0ZWRfYnV0dG9uX2lkfGxhc3RJbmRleE9mfGRvbmF0ZXxhY3RpdmV8ZGV2ZWxvcG1lbnR8a2VlcHx0b3x4Y2xpY2t8X3N8WG1sfHBsZWFzZXxsaWtlfHlvdXxwYXlwYWx8Y2dpfGNtZHx3ZWJzY3J8YmlufGhpZ2hsaWdodGVkfHNjcm9sbGJhcnN8YXNwU2NyaXB0VGFnc3xwaHBTY3JpcHRUYWdzfHNvcnR8bWF4fHNjcmlwdFNjcmlwdFRhZ3N8dG9vbGJhcl9pdGVtfF98Y29tbWFuZHxjb21tYW5kX3xudW1iZXJ8Z2V0RWxlbWVudEJ5SWR8ZG91YmxlUXVvdGVkU3RyaW5nfHNpbmdsZUxpbmVQZXJsQ29tbWVudHN8c2luZ2xlTGluZUNDb21tZW50c3xtdWx0aUxpbmVDQ29tbWVudHN8c2luZ2xlUXVvdGVkU3RyaW5nfG11bHRpTGluZURvdWJsZVF1b3RlZFN0cmluZ3x4bWxDb21tZW50c3xhbHR8bXVsdGlMaW5lU2luZ2xlUXVvdGVkU3RyaW5nfElmfGh0dHBzfDFlbXwwMDB8ZmZmfGJhY2tncm91bmR8NWVtfHh4fGJvdHRvbXw3NWVtfEdvcmJhdGNoZXZ8bGFyZ2V8c2VyaWZ8Q0RBVEF8Y29udGludWV8dXRmfGNoYXJzZXR8Y29udGVudHxBYm91dHxmYW1pbHl8c2Fuc3xIZWx2ZXRpY2F8QXJpYWx8R2VuZXZhfDNlbXxub2d1dHRlcnxDb3B5cmlnaHR8c3ludGF4fGNsb3NlfHdyaXRlfDIwMDR8QWxleHxvcGVufEphdmFTY3JpcHR8aGlnaGxpZ2h0ZXJ8SnVseXwwMnxyZXBsYWNlQ2hpbGR8b2Zmc2V0fDgzJy5zcGxpdCgnfCcpLDAse30pKQo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/docs/media/license/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/docs/media/license/Syntax Highlighter</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Q29weXJpZ2h0IChjKSAyMDAzLCAyMDA0IEppbSBXZWlyaWNoCgpQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcKYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCiJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLApkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8KcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCnRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKClRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlCmluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgoKVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCkVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgpNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORApOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFCkxJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04KT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OCldJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5GaXhlZENvbHVtbnMgZXhhbXBsZTwvdGl0bGU+CgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iY3VycmVudFN0eWxlIj4KCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fcGFnZS5jc3MiOwoJCQlAaW1wb3J0ICIuLi8uLi9tZWRpYS9jc3MvZGVtb190YWJsZS5jc3MiOwoJCTwvc3R5bGU+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5kYXRhVGFibGVzLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiIHNyYz0ibWVkaWEvanMvRml4ZWRDb2x1bW5zLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgoJCQkkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJCQkJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkJInNTY3JvbGxZIjogIjMwMHB4IiwKCQkJCQkic1Njcm9sbFgiOiAiMTAwJSIsCgkJCQkJInNTY3JvbGxYSW5uZXIiOiAiMTUwJSIsCgkJCQkJImJTY3JvbGxDb2xsYXBzZSI6IHRydWUsCgkJCQkJImJQYWdpbmF0ZSI6IGZhbHNlCgkJCQl9ICk7CgkJCQluZXcgRml4ZWRDb2x1bW5zKCBvVGFibGUgKTsKCQkJfSApOwoJCTwvc2NyaXB0PgoJPC9oZWFkPgoJPGJvZHkgaWQ9ImR0X2V4YW1wbGUiPgoJCTxkaXYgaWQ9ImNvbnRhaW5lciI+CgkJCTxkaXYgY2xhc3M9ImZ1bGxfd2lkdGggYmlnIj4KCQkJCUZpeGVkQ29sdW1ucyBleGFtcGxlIC0gYmFzaWMgaW5pdGlhbGlzYXRpb24KCQkJPC9kaXY+CgkJCQoJCQk8aDE+UHJlYW1ibGU8L2gxPgoJCQk8cD5XaGVuIGRpc3BsYXlpbmcgYSB0YWJsZSB3aGljaCBzY3JvbGxzIGFsb25nIHRoZSB4LWF4aXMsIGl0IGNhbiBzb21ldGltZXMgYmUgdXNlZnVsIHRvIHRoZSBlbmQgdXNlciBmb3IgdGhlIGxlZnQgbW9zdCBjb2x1bW4gdG8gYmUgZml4ZWQgaW4gcGxhY2UsIGlmIGl0IHNob3dzIGdyb3VwaW5nLCBpbmRleCBvciBzaW1pbGFyIGluZm9ybWF0aW9uLiBUaGlzIGlzIGJhc2ljYWxseSB0aGUgc2FtZSBpZGVhIGFzICdmcmVlemUgY29sdW1ucycgaW4gRXhjZWwuIFRoaXMgY2FuIGJlIGFjaGlldmVkIHdpdGggdGhlIEZpeGVkQ29sdW1ucyBwbHVnLWluIGZvciBEYXRhVGFibGVzLCBhcyBzaG93biBiZWxvdy48L3A+CgkJCTxwPk5vdGUgdGhhdCBGaXhlZENvbHVtbnMgaXMgc3VpdGFibGUgb25seSBmb3IgdXNlIHdpdGggdGhlIHNjcm9sbGluZyBmZWF0dXJlcyBpbiA8YSBocmVmPSJodHRwOi8vZGF0YXRhYmxlcy5uZXQiPkRhdGFUYWJsZXM8L2E+LiBJZiB5b3Ugd2FudCB0byBhY2hpZXZlIGEgc2ltaWxhciBlZmZlY3Qgd2l0aG91dCBzY3JvbGxpbmcgZW5hYmxlZCwgcGxlYXNlIGNoZWNrb3V0IDxhIGhyZWY9Imh0dHA6Ly9kYXRhdGFibGVzLm5ldC9wbHVnLWlucyI+Rml4ZWRIZWFkZXI8L2E+LCBhbHNvIGZvciBEYXRhVGFibGVzLjwvcD4KCQkJCgkJCTxoMT5MaXZlIGV4YW1wbGU8L2gxPgoJCQk8ZGl2IGlkPSJkZW1vIj4KPHRhYmxlIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgYm9yZGVyPSIwIiBjbGFzcz0iZGlzcGxheSIgaWQ9ImV4YW1wbGUiPgoJPHRoZWFkPgoJCTx0cj4KCQkJPHRoPlJlbmRlcmluZyBlbmdpbmU8L3RoPgoJCQk8dGg+QnJvd3NlcjwvdGg+CgkJCTx0aD5QbGF0Zm9ybShzKTwvdGg+CgkJCTx0aD5FbmdpbmUgdmVyc2lvbjwvdGg+CgkJCTx0aD5DU1MgZ3JhZGU8L3RoPgoJCTwvdHI+Cgk8L3RoZWFkPgoJPHRmb290PgoJCTx0cj4KCQkJPHRoPlJlbmRlcmluZyBlbmdpbmU8L3RoPgoJCQk8dGg+QnJvd3NlcjwvdGg+CgkJCTx0aD5QbGF0Zm9ybShzKTwvdGg+CgkJCTx0aD5FbmdpbmUgdmVyc2lvbjwvdGg+CgkJCTx0aD5DU1MgZ3JhZGU8L3RoPgoJCTwvdHI+Cgk8L3Rmb290PgoJPHRib2R5PgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA0LjA8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDUuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNS41PC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDY8L3RkPgoJCQk8dGQ+V2luIDk4KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA3PC90ZD4KCQkJPHRkPldpbiBYUCBTUDIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkFPTCBicm93c2VyIChBT0wgZGVza3RvcCk8L3RkPgoJCQk8dGQ+V2luIFhQPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggPGJyPjEuNTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMi4wPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAzLjA8L3RkPgoJCQk8dGQ+V2luIDJrKyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5DYW1pbm8gMS4wPC90ZD4KCQkJPHRkPk9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5DYW1pbm8gMS41PC90ZD4KCQkJPHRkPk9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSA3LjI8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE1hYyBPUyA4LjYtOS4yPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIEJyb3dzZXIgODwvdGQ+CgkJCTx0ZD5XaW4gOThTRSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgTmF2aWdhdG9yIDk8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4yPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4yPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjM8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjY8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNzwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS44PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+U2VhbW9ua2V5IDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkVwaXBoYW55IDIuMjA8L3RkPgoJCQk8dGQ+R25vbWU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjI8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTI1LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDEuMzwvdGQ+CgkJCTx0ZD5PU1guMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zMTIuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMi4wPC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTkuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMy4wPC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41MjIuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5PbW5pV2ViIDUuNTwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPmlQb2QgVG91Y2ggLyBpUGhvbmU8L3RkPgoJCQk8dGQ+aVBvZDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MjAuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TNjA8L3RkPgoJCQk8dGQ+UzYwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQxMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA3LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDcuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOC4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA4LjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS4yPC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjU8L3RkPgoJCQk8dGQ+V2luIDg4KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIGZvciBXaWk8L3RkPgoJCQk8dGQ+V2lpPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+Tm9raWEgTjgwMDwvdGQ+CgkJCTx0ZD5OODAwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+TmludGVuZG8gRFMgYnJvd3NlcjwvdGQ+CgkJCTx0ZD5OaW50ZW5kbyBEUzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj44LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+Qy9BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy4xPC90ZD4KCQkJPHRkPktERSAzLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjM8L3RkPgoJCQk8dGQ+S0RFIDMuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuNTwvdGQ+CgkJCTx0ZD5LREUgMy41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA0LjU8L3RkPgoJCQk8dGQ+TWFjIE9TIDgtOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMTwvdGQ+CgkJCTx0ZD5NYWMgT1MgNy42LTk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjI8L3RkPgoJCQk8dGQ+TWFjIE9TIDgtWDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5OZXRGcm9udCAzLjE8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5OZXRGcm9udCAzLjQ8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5EaWxsbyAwLjg8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5MaW5rczwvdGQ+CgkJCTx0ZD5UZXh0IG9ubHk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+THlueDwvdGQ+CgkJCTx0ZD5UZXh0IG9ubHk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+SUUgTW9iaWxlPC90ZD4KCQkJPHRkPldpbmRvd3MgTW9iaWxlIDY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+UFNQIGJyb3dzZXI8L3RkPgoJCQk8dGQ+UFNQPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlVSI+CgkJCTx0ZD5PdGhlciBicm93c2VyczwvdGQ+CgkJCTx0ZD5BbGwgb3RoZXJzPC90ZD4KCQkJPHRkPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5VPC90ZD4KCQk8L3RyPgoJPC90Ym9keT4KPC90YWJsZT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CgkJCQoJCQkKCQkJPGgxPkluaXRpYWxpc2F0aW9uIGNvZGU8L2gxPgoJCQk8cHJlPiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic1Njcm9sbFgiOiAiMTAwJSIsCgkJInNTY3JvbGxYSW5uZXIiOiAiMTUwJSIsCgkJImJTY3JvbGxDb2xsYXBzZSI6IHRydWUKCX0gKTsKCW5ldyBGaXhlZENvbHVtbnMoIG9UYWJsZSApOwp9ICk7PC9wcmU+CgoKCQkJPGgxPkRvY3VtZW50YXRpb248L2gxPgoJCQk8dWw+CgkJCQk8bGk+PGEgaHJlZj0iaHR0cDovL2RhdGF0YWJsZXMubmV0L2V4dHJhcy9maXhlZGNvbHVtbnMiPlVzYWdlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iaHR0cDovL2RhdGF0YWJsZXMubmV0L2RvY3MvRml4ZWRDb2x1bW5zIj5BUEkgLyBwYXJhbWV0ZXJzPC9hPjwvbGk+CgkJCTwvdWw+CgoJCQk8aDE+QmFzaWMgZXhhbXBsZXM8L2gxPgoJCQk8dWw+CgkJCQk8bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+QmFzaWMgZGVtbyBvZiBGaXhlZENvbHVtbnMgd2l0aCB6ZXJvIGluaXRpYWxpc2F0aW9uPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ibGVmdF9yaWdodF9jb2x1bW5zLmh0bWwiPkZpeCB0aGUgbGVmdCBhbmQgcmlnaHQgY29sdW1ucyBpbiBwbGFjZTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImluZGV4X2NvbHVtbi5odG1sIj5JbmRleCBjb2x1bW4gYXR0YWNoZWQgdG8gc2lkZSBvZiB0aGUgdGFibGU8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJ4X3lfc2Nyb2xsaW5nLmh0bWwiPkluZGV4IGNvbHVtbiwgYnV0IHdpdGggWSBzY3JvbGxpbmcgYW5kIG5vIHBhZ2luYXRpb248L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJ0d29fY29sdW1ucy5odG1sIj5Ud28gY29sdW1ucyBmaXhlZCBpbiBwbGFjZTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InJpZ2h0X2NvbHVtbi5odG1sIj5GaXggdGhlIHJpZ2h0IGNvbHVtbiBpbiBwbGFjZTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImNzc19zaXplLmh0bWwiPlNwZWVkaW5nIHVwIHJvdyBoZWlnaHQgbWF0Y2hpbmcgd2l0aCBDU1M8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJ0aGVtZWQuaHRtbCI+alF1ZXJ5IFVJIHRoZW1lZCB0YWJsZSB3aXRoIEZpeGVkQ29sdW1uczwvYT48L2xpPgoJCQk8L3VsPgoJCQkKCQkJPGgxPkFkdmFuY2VkIGV4YW1wbGVzPC9oMT4KCQkJPHVsPgoJCQkJPGxpPjxhIGhyZWY9InJvd3NwYW4uaHRtbCI+VXNpbmcgUk9XU1BBTiB3aXRoIEZpeGVkQ29sdW1uczwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InNlcnZlci1zaWRlLXByb2Nlc3NpbmcuaHRtbCI+U2VydmVyLXNpZGUgcHJvY2Vzc2luZyB3aXRoIEZpeGVkQ29sdW1uczwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImNvbF9maWx0ZXIuaHRtbCI+SW5kaXZpZHVhbCBjb2x1bW4gZmlsdGVyaW5nPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ic2NhbGVfZml4ZWQuaHRtbCI+U2V0dGluZyB0aGUgZml4ZWQgY29sdW1uIHdpZHRoIGFuZCByZXNpemluZyB0aGUgdGFibGU8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJzY2FsZV9yZWxhdGl2ZS5odG1sIj5TZXR0aW5nIHRoZSBmaXhlZCBjb2x1bW4gd2lkdGggd2l0aCByZWxhdGl2ZSBzaXppbmc8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJyb3dfZ3JvdXBpbmdfaGVpZ2h0Lmh0bWwiPlJvdyBncm91cGluZyBieSBncm91cGluZyBsaWtlIHJvd3MgaW4gdGhlIGZpeGVkIGNvbHVtbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InJvd19ncm91cGluZy5odG1sIj5Sb3cgZ3JvdXBpbmcgYnkgaW5zZXJ0aW5nIGEgZ3JvdXBpbmcgcm93PC9hPjwvbGk+CgkJCTx1bD4KCQkJCgkJCQoJCQk8ZGl2IGlkPSJmb290ZXIiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjsiPgoJCQkJPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMHB4OyI+CgkJCQkJRml4ZWRDb2x1bW5zIGFuZCBEYXRhVGFibGVzICZjb3B5OyBBbGxhbiBKYXJkaW5lIDIwMTEuPGJyPgoJCQkJPC9zcGFuPgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/index_column.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5GaXhlZENvbHVtbnMgZXhhbXBsZTwvdGl0bGU+CgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iY3VycmVudFN0eWxlIj4KCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fcGFnZS5jc3MiOwoJCQlAaW1wb3J0ICIuLi8uLi9tZWRpYS9jc3MvZGVtb190YWJsZS5jc3MiOwoJCQl0ZC5pbmRleCwgdHIuRFRGQ19Ob0RhdGEgdGQgeyBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgYmxhY2s7IH0KCQkJZGl2LkRURkNfTGVmdEhlYWRXcmFwcGVyIHRoIHsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHdoaXRlICFpbXBvcnRhbnQ7IH0KCQkJZGl2LkRURkNfTGVmdEZvb3RXcmFwcGVyIHRoIHsgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHdoaXRlICFpbXBvcnRhbnQ7IH0KCQk8L3N0eWxlPgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIuLi8uLi9tZWRpYS9qcy9qcXVlcnkuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIuLi8uLi9tZWRpYS9qcy9qcXVlcnkuZGF0YVRhYmxlcy5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Im1lZGlhL2pzL0ZpeGVkQ29sdW1ucy5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KCQkJJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCQkJCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJCSJzU2Nyb2xsWCI6ICIxMDAlIiwKCQkJCQkic1Njcm9sbFhJbm5lciI6ICIxNTAlIiwKCQkJCQkiYlNjcm9sbENvbGxhcHNlIjogdHJ1ZSwKCQkJCQkiZm5EcmF3Q2FsbGJhY2siOiBmdW5jdGlvbiAoIG9TZXR0aW5ncyApIHsKCQkJCQkJLyogTmVlZCB0byByZWRvIHRoZSBjb3VudGVycyBpZiBmaWx0ZXJlZCBvciBzb3J0ZWQgKi8KCQkJCQkJaWYgKCBvU2V0dGluZ3MuYlNvcnRlZCB8fCBvU2V0dGluZ3MuYkZpbHRlcmVkICkgewoJCQkJCQkJZm9yICggdmFyIGk9MCwgaUxlbj1vU2V0dGluZ3MuYWlEaXNwbGF5Lmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApIHsKCQkJCQkJCQl0aGlzLmZuVXBkYXRlKCBpKzEsIG9TZXR0aW5ncy5haURpc3BsYXlbaV0sIDAsIGZhbHNlLCBmYWxzZSApOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfSwKCQkJCQkiYW9Db2x1bW5EZWZzIjogWwoJCQkJCQl7ICJiU29ydGFibGUiOiBmYWxzZSwgInNDbGFzcyI6ICJpbmRleCIsICJhVGFyZ2V0cyI6IFsgMCBdIH0KCQkJCQldLAoJCQkJCSJhYVNvcnRpbmciOiBbWyAxLCAnYXNjJyBdXQoJCQkJfSApOwoJCQkJbmV3IEZpeGVkQ29sdW1ucyggb1RhYmxlICk7CgkJCX0gKTsKCQk8L3NjcmlwdD4KCTwvaGVhZD4KCTxib2R5IGlkPSJkdF9leGFtcGxlIj4KCQk8ZGl2IGlkPSJjb250YWluZXIiPgoJCQk8ZGl2IGNsYXNzPSJmdWxsX3dpZHRoIGJpZyI+CgkJCQlGaXhlZENvbHVtbnMgZXhhbXBsZSAtIGluZGV4IGNvbHVtbgoJCQk8L2Rpdj4KCQkJCgkJCTxoMT5QcmVhbWJsZTwvaDE+CgkJCTxwPkEgdHlwaWNhbCBpbnRlcmFjdGlvbiB0byB3YW50IHRvIHBlcmZvcm0gd2l0aCBhIGZpeGVkIGNvbHVtbiwgaXMgYW4gaW5kZXggY29sdW1uLiBBIG1ldGhvZCBmb3IgaG93IHRoaXMgY2FuIGJlIGFjaGlldmVkIHdpdGggRml4ZWRDb2x1bW5zIGlzIHNob3duIGluIHRoaXMgZXhhbXBsZSwgYnVpbGRpbmcgb24gdGhlIDxhIGhyZWY9Imh0dHA6Ly9kYXRhdGFibGVzLm5ldC9leGFtcGxlcy9hcGkvY291bnRlcl9jb2x1bW4uaHRtbCI+aW5kZXggY29sdW1uPC9hPiBleGFtcGxlIGZvciBEYXRhVGFibGVzLiBBbHNvIHNob3duIGluIHRoaXMgZXhhbXBsZSBpcyBob3cgdGhlIGZpeGVkIGNvbHVtbiBjYW4gYmUgc3R5bGVkIHdpdGggQ1NTIHRvIHNob3cgaXQgbW9yZSBwcm9taW5lbnRseS48L3A+CgkJCQoJCQk8aDE+TGl2ZSBleGFtcGxlPC9oMT4KCQkJPGRpdiBpZD0iZGVtbyI+Cjx0YWJsZSBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIGJvcmRlcj0iMCIgY2xhc3M9ImRpc3BsYXkiIGlkPSJleGFtcGxlIj4KCTx0aGVhZD4KCQk8dHI+CgkJCTx0aCB3aWR0aD0iMyUiPiZuYnNwOzwvdGg+CgkJCTx0aD5SZW5kZXJpbmcgZW5naW5lPC90aD4KCQkJPHRoPkJyb3dzZXI8L3RoPgoJCQk8dGg+UGxhdGZvcm0ocyk8L3RoPgoJCQk8dGg+RW5naW5lIHZlcnNpb248L3RoPgoJCQk8dGg+Q1NTIGdyYWRlPC90aD4KCQk8L3RyPgoJPC90aGVhZD4KCTx0Ym9keT4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA0LjA8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MjwvdGQ+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNS4wPC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjM8L3RkPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDUuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQ8L3RkPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDY8L3RkPgoJCQk8dGQ+V2luIDk4KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTwvdGQ+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDc8L3RkPgoJCQk8dGQ+V2luIFhQIFNQMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjY8L3RkPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5BT0wgYnJvd3NlciAoQU9MIGRlc2t0b3ApPC90ZD4KCQkJPHRkPldpbiBYUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NzwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjg8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjU8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj45PC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMi4wPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTA8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAzLjA8L3RkPgoJCQk8dGQ+V2luIDJrKyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xMTwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5DYW1pbm8gMS4wPC90ZD4KCQkJPHRkPk9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xMjwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5DYW1pbm8gMS41PC90ZD4KCQkJPHRkPk9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xMzwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSA3LjI8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE1hYyBPUyA4LjYtOS4yPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE0PC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIEJyb3dzZXIgODwvdGQ+CgkJCTx0ZD5XaW4gOThTRSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTU8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgTmF2aWdhdG9yIDk8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xNjwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xNzwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE4PC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4yPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4yPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTk8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjM8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4yMDwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjIxPC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MjI8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjY8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4yMzwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNzwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjI0PC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS44PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MjU8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+U2VhbW9ua2V5IDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjI2PC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkVwaXBoYW55IDIuMjA8L3RkPgoJCQk8dGQ+R25vbWU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+Mjc8L3RkPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjI8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTI1LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4yODwvdGQ+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDEuMzwvdGQ+CgkJCTx0ZD5PU1guMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zMTIuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjI5PC90ZD4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMi4wPC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTkuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMwPC90ZD4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMy4wPC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41MjIuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMxPC90ZD4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5PbW5pV2ViIDUuNTwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MzI8L3RkPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPmlQb2QgVG91Y2ggLyBpUGhvbmU8L3RkPgoJCQk8dGQ+aVBvZDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MjAuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMzPC90ZD4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TNjA8L3RkPgoJCQk8dGQ+UzYwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQxMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjM0PC90ZD4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA3LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MzU8L3RkPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDcuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zNjwvdGQ+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOC4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjM3PC90ZD4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA4LjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+Mzg8L3RkPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zOTwvdGQ+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS4yPC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQwPC90ZD4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjU8L3RkPgoJCQk8dGQ+V2luIDg4KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDE8L3RkPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIGZvciBXaWk8L3RkPgoJCQk8dGQ+V2lpPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MjwvdGQ+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+Tm9raWEgTjgwMDwvdGQ+CgkJCTx0ZD5OODAwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MzwvdGQ+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+TmludGVuZG8gRFMgYnJvd3NlcjwvdGQ+CgkJCTx0ZD5OaW50ZW5kbyBEUzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj44LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+Qy9BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQ0PC90ZD4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy4xPC90ZD4KCQkJPHRkPktERSAzLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDU8L3RkPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjM8L3RkPgoJCQk8dGQ+S0RFIDMuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40NjwvdGQ+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuNTwvdGQ+CgkJCTx0ZD5LREUgMy41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQ3PC90ZD4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA0LjU8L3RkPgoJCQk8dGQ+TWFjIE9TIDgtOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDg8L3RkPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMTwvdGQ+CgkJCTx0ZD5NYWMgT1MgNy42LTk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQ5PC90ZD4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjI8L3RkPgoJCQk8dGQ+TWFjIE9TIDgtWDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTA8L3RkPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5OZXRGcm9udCAzLjE8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTE8L3RkPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5OZXRGcm9udCAzLjQ8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTI8L3RkPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5EaWxsbyAwLjg8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTM8L3RkPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5MaW5rczwvdGQ+CgkJCTx0ZD5UZXh0IG9ubHk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjU0PC90ZD4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+THlueDwvdGQ+CgkJCTx0ZD5UZXh0IG9ubHk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjU1PC90ZD4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+SUUgTW9iaWxlPC90ZD4KCQkJPHRkPldpbmRvd3MgTW9iaWxlIDY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjU2PC90ZD4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+UFNQIGJyb3dzZXI8L3RkPgoJCQk8dGQ+UFNQPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlVSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41NzwvdGQ+CgkJCTx0ZD5PdGhlciBicm93c2VyczwvdGQ+CgkJCTx0ZD5BbGwgb3RoZXJzPC90ZD4KCQkJPHRkPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5VPC90ZD4KCQk8L3RyPgoJPC90Ym9keT4KCTx0Zm9vdD4KCQk8dHI+CgkJCTx0aD4mbmJzcDs8L3RoPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGZvb3Q+CjwvdGFibGU+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgoJCQkKCQkJCgkJCTxoMT5Jbml0aWFsaXNhdGlvbiBjb2RlPC9oMT4KCQkJPHByZT4kKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNTY3JvbGxYIjogIjEwMCUiLAoJCSJzU2Nyb2xsWElubmVyIjogIjE1MCUiLAoJCSJiU2Nyb2xsQ29sbGFwc2UiOiB0cnVlLAoJCSJmbkRyYXdDYWxsYmFjayI6IGZ1bmN0aW9uICggb1NldHRpbmdzICkgewoJCQkvKiBOZWVkIHRvIHJlZG8gdGhlIGNvdW50ZXJzIGlmIGZpbHRlcmVkIG9yIHNvcnRlZCAqLwoJCQlpZiAoIG9TZXR0aW5ncy5iU29ydGVkIHx8IG9TZXR0aW5ncy5iRmlsdGVyZWQgKSB7CgkJCQlmb3IgKCB2YXIgaT0wLCBpTGVuPW9TZXR0aW5ncy5haURpc3BsYXkubGVuZ3RoIDsgaSZsdDtpTGVuIDsgaSsrICkgewoJCQkJCXRoaXMuZm5VcGRhdGUoIGkrMSwgb1NldHRpbmdzLmFpRGlzcGxheVtpXSwgMCwgZmFsc2UsIGZhbHNlICk7CgkJCQl9CgkJCX0KCQl9LAoJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCXsgImJTb3J0YWJsZSI6IGZhbHNlLCAic0NsYXNzIjogImluZGV4IiwgImFUYXJnZXRzIjogWyAwIF0gfQoJCV0sCgkJImFhU29ydGluZyI6IFtbIDEsICdhc2MnIF1dCgl9ICk7CgluZXcgRml4ZWRDb2x1bW5zKCBvVGFibGUgKTsKfSApOzwvcHJlPgoKCgkJCTxoMT5Eb2N1bWVudGF0aW9uPC9oMT4KCQkJPHVsPgoJCQkJPGxpPjxhIGhyZWY9Imh0dHA6Ly9kYXRhdGFibGVzLm5ldC9leHRyYXMvZml4ZWRjb2x1bW5zIj5Vc2FnZTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9Imh0dHA6Ly9kYXRhdGFibGVzLm5ldC9kb2NzL0ZpeGVkQ29sdW1ucyI+QVBJIC8gcGFyYW1ldGVyczwvYT48L2xpPgoJCQk8L3VsPgoKCQkJPGgxPkJhc2ljIGV4YW1wbGVzPC9oMT4KCQkJPHVsPgoJCQkJPGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkJhc2ljIGRlbW8gb2YgRml4ZWRDb2x1bW5zIHdpdGggemVybyBpbml0aWFsaXNhdGlvbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImxlZnRfcmlnaHRfY29sdW1ucy5odG1sIj5GaXggdGhlIGxlZnQgYW5kIHJpZ2h0IGNvbHVtbnMgaW4gcGxhY2U8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJpbmRleF9jb2x1bW4uaHRtbCI+SW5kZXggY29sdW1uIGF0dGFjaGVkIHRvIHNpZGUgb2YgdGhlIHRhYmxlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ieF95X3Njcm9sbGluZy5odG1sIj5JbmRleCBjb2x1bW4sIGJ1dCB3aXRoIFkgc2Nyb2xsaW5nIGFuZCBubyBwYWdpbmF0aW9uPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0idHdvX2NvbHVtbnMuaHRtbCI+VHdvIGNvbHVtbnMgZml4ZWQgaW4gcGxhY2U8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJyaWdodF9jb2x1bW4uaHRtbCI+Rml4IHRoZSByaWdodCBjb2x1bW4gaW4gcGxhY2U8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJjc3Nfc2l6ZS5odG1sIj5TcGVlZGluZyB1cCByb3cgaGVpZ2h0IG1hdGNoaW5nIHdpdGggQ1NTPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0idGhlbWVkLmh0bWwiPmpRdWVyeSBVSSB0aGVtZWQgdGFibGUgd2l0aCBGaXhlZENvbHVtbnM8L2E+PC9saT4KCQkJPC91bD4KCQkJCgkJCTxoMT5BZHZhbmNlZCBleGFtcGxlczwvaDE+CgkJCTx1bD4KCQkJCTxsaT48YSBocmVmPSJyb3dzcGFuLmh0bWwiPlVzaW5nIFJPV1NQQU4gd2l0aCBGaXhlZENvbHVtbnM8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJzZXJ2ZXItc2lkZS1wcm9jZXNzaW5nLmh0bWwiPlNlcnZlci1zaWRlIHByb2Nlc3Npbmcgd2l0aCBGaXhlZENvbHVtbnM8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJjb2xfZmlsdGVyLmh0bWwiPkluZGl2aWR1YWwgY29sdW1uIGZpbHRlcmluZzwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InNjYWxlX2ZpeGVkLmh0bWwiPlNldHRpbmcgdGhlIGZpeGVkIGNvbHVtbiB3aWR0aCBhbmQgcmVzaXppbmcgdGhlIHRhYmxlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ic2NhbGVfcmVsYXRpdmUuaHRtbCI+U2V0dGluZyB0aGUgZml4ZWQgY29sdW1uIHdpZHRoIHdpdGggcmVsYXRpdmUgc2l6aW5nPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0icm93X2dyb3VwaW5nX2hlaWdodC5odG1sIj5Sb3cgZ3JvdXBpbmcgYnkgZ3JvdXBpbmcgbGlrZSByb3dzIGluIHRoZSBmaXhlZCBjb2x1bW48L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJyb3dfZ3JvdXBpbmcuaHRtbCI+Um93IGdyb3VwaW5nIGJ5IGluc2VydGluZyBhIGdyb3VwaW5nIHJvdzwvYT48L2xpPgoJCQk8dWw+CgkJCQoJCQkKCQkJPGRpdiBpZD0iZm9vdGVyIiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7Ij4KCQkJCTxzcGFuIHN0eWxlPSJmb250LXNpemU6MTBweDsiPgoJCQkJCUZpeGVkQ29sdW1ucyBhbmQgRGF0YVRhYmxlcyAmY29weTsgQWxsYW4gSmFyZGluZSAyMDExLjxicj4KCQkJCTwvc3Bhbj4KCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2JvZHk+CjwvaHRtbD4=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/left_right_columns.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5GaXhlZENvbHVtbnMgZXhhbXBsZTwvdGl0bGU+CgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iY3VycmVudFN0eWxlIj4KCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fcGFnZS5jc3MiOwoJCQlAaW1wb3J0ICIuLi8uLi9tZWRpYS9jc3MvZGVtb190YWJsZS5jc3MiOwoJCQl0ZC5pbmRleExlZnQgeyBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgYmxhY2s7IH0KCQkJdGQuaW5kZXhSaWdodCB7IGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyBib3JkZXItbGVmdDogMXB4IHNvbGlkIGJsYWNrOyB9CgkJCWRpdi5EVEZDX0xlZnRIZWFkV3JhcHBlciB0aCwKCQkJZGl2LkRURkNfUmlnaHRIZWFkV3JhcHBlciB0aCB7CgkJCQlib3JkZXItYm90dG9tOiAxcHggc29saWQgd2hpdGUgIWltcG9ydGFudDsKCQkJfQoJCQlkaXYuRFRGQ19MZWZ0Rm9vdFdyYXBwZXIgdGgsCgkJCWRpdi5EVEZDX1JpZ2h0Rm9vdFdyYXBwZXIgdGggewoJCQkJYm9yZGVyLXRvcDogMXB4IHNvbGlkIHdoaXRlICFpbXBvcnRhbnQ7CgkJCX0KCQk8L3N0eWxlPgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIuLi8uLi9tZWRpYS9qcy9qcXVlcnkuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIuLi8uLi9tZWRpYS9qcy9qcXVlcnkuZGF0YVRhYmxlcy5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Im1lZGlhL2pzL0ZpeGVkQ29sdW1ucy5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KCQkJJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCQkJCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJCSJzU2Nyb2xsWCI6ICIxMDAlIiwKCQkJCQkic1Njcm9sbFhJbm5lciI6ICIxNTAlIiwKCQkJCQkiYlNjcm9sbENvbGxhcHNlIjogdHJ1ZSwKCQkJCQkiZm5EcmF3Q2FsbGJhY2siOiBmdW5jdGlvbiAoIG9TZXR0aW5ncyApIHsKCQkJCQkJLyogTmVlZCB0byByZWRvIHRoZSBjb3VudGVycyBpZiBmaWx0ZXJlZCBvciBzb3J0ZWQgKi8KCQkJCQkJaWYgKCBvU2V0dGluZ3MuYlNvcnRlZCB8fCBvU2V0dGluZ3MuYkZpbHRlcmVkICkgewoJCQkJCQkJZm9yICggdmFyIGk9MCwgaUxlbj1vU2V0dGluZ3MuYWlEaXNwbGF5Lmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApIHsKCQkJCQkJCQl0aGlzLmZuVXBkYXRlKCBpKzEsIG9TZXR0aW5ncy5haURpc3BsYXlbaV0sIDAsIGZhbHNlLCBmYWxzZSApOwoJCQkJCQkJCXRoaXMuZm5VcGRhdGUoIGkrMSwgb1NldHRpbmdzLmFpRGlzcGxheVtpXSwgNiwgZmFsc2UsIGZhbHNlICk7CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQl9LAoJCQkJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCQkJCXsgImJTb3J0YWJsZSI6IGZhbHNlLCAic0NsYXNzIjogImluZGV4TGVmdCIsICJhVGFyZ2V0cyI6IFsgMCBdIH0sCgkJCQkJCXsgImJTb3J0YWJsZSI6IGZhbHNlLCAic0NsYXNzIjogImluZGV4UmlnaHQiLCAiYVRhcmdldHMiOiBbIC0xIF0gfQoJCQkJCV0sCgkJCQkJImFhU29ydGluZyI6IFtbIDEsICdhc2MnIF1dCgkJCQl9ICk7CgkJCQkKCQkJCW5ldyBGaXhlZENvbHVtbnMoIG9UYWJsZSwgewoJCQkJCSJpTGVmdENvbHVtbnMiOiAxLAoJCQkJCSJpUmlnaHRDb2x1bW5zIjogMQoJCQkJfSApOwoJCQl9ICk7CgkJPC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keSBpZD0iZHRfZXhhbXBsZSI+CgkJPGRpdiBpZD0iY29udGFpbmVyIj4KCQkJPGRpdiBjbGFzcz0iZnVsbF93aWR0aCBiaWciPgoJCQkJRml4ZWRDb2x1bW5zIGV4YW1wbGUgLSBsZWZ0IGFuZCByaWdodCBjb2x1bW5zIGZpeGVkCgkJCTwvZGl2PgoJCQkKCQkJPGgxPlByZWFtYmxlPC9oMT4KCQkJPHA+Rml4ZWRDb2x1bW5zIGFsbG93cyBjb2x1bW5zIHRvIGJlIGZpeGVkIGZyb20gYm90aCB0aGUgbGVmdCBhbmQgcmlnaHQgaGFuZCBzaWRlcyBvZiB0aGUgdGFibGUuIEZpeGluZyByaWdodCBoYW5kLXNpZGUgY29sdW1ucyBpcyBkb25lIGJ5IHVzaW5nIHRoZSA8aT5pUmlnaHRDb2x1bW5zPC9pPiBpbml0aWFsaXNhdGlvbiBwYXJhbWV0ZXIsIHdoaWNoIHdvcmtzIGp1c3QgdGhlIHNhbWUgYXMgPGk+aUxlZnRDb2x1bW5zPC9pPiBkb2VzIGZvciB0aGUgbGVmdCBzaWRlIG9mIHRoZSB0YWJsZS4gVGhpcyBleGFtcGxlIHNob3dzIGJvdGggdGhlIGxlZnQgYW5kIHJpZ2h0IGNvbHVtbnMgYmVpbmcgZml4ZWQgaW4gcGxhY2UsIGFuZCBhIGJpdCBvZiBpbml0aWFsaXNhdGlvbiBvZiBEYXRhVGFibGVzIHRvIHByb3ZpZGUgaW5kZXggY29sdW1ucy48L3A+CgkJCQoJCQk8aDE+TGl2ZSBleGFtcGxlPC9oMT4KCQkJPGRpdiBpZD0iZGVtbyI+Cjx0YWJsZSBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIGJvcmRlcj0iMCIgY2xhc3M9ImRpc3BsYXkiIGlkPSJleGFtcGxlIj4KCTx0aGVhZD4KCQk8dHI+CgkJCTx0aCB3aWR0aD0iMyUiPiZuYnNwOzwvdGg+CgkJCTx0aD5SZW5kZXJpbmcgZW5naW5lPC90aD4KCQkJPHRoPkJyb3dzZXI8L3RoPgoJCQk8dGg+UGxhdGZvcm0ocyk8L3RoPgoJCQk8dGg+RW5naW5lIHZlcnNpb248L3RoPgoJCQk8dGg+Q1NTIGdyYWRlPC90aD4KCQkJPHRoIHdpZHRoPSIzJSI+Jm5ic3A7PC90aD4KCQk8L3RyPgoJPC90aGVhZD4KCTx0Zm9vdD4KCQk8dHI+CgkJCTx0aCB3aWR0aD0iMyUiPiZuYnNwOzwvdGg+CgkJCTx0aD5SZW5kZXJpbmcgZW5naW5lPC90aD4KCQkJPHRoPkJyb3dzZXI8L3RoPgoJCQk8dGg+UGxhdGZvcm0ocyk8L3RoPgoJCQk8dGg+RW5naW5lIHZlcnNpb248L3RoPgoJCQk8dGg+Q1NTIGdyYWRlPC90aD4KCQkJPHRoIHdpZHRoPSIzJSI+Jm5ic3A7PC90aD4KCQk8L3RyPgoJPC90Zm9vdD4KCTx0Ym9keT4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA0LjA8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4yPC90ZD4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA1LjA8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MjwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zPC90ZD4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA1LjU8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQ8L3RkPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDY8L3RkPgoJCQk8dGQ+V2luIDk4KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41PC90ZD4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNzwvdGQ+CgkJCTx0ZD5XaW4gWFAgU1AyKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj42PC90ZD4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+QU9MIGJyb3dzZXIgKEFPTCBkZXNrdG9wKTwvdGQ+CgkJCTx0ZD5XaW4gWFA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjY8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NzwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjc8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+ODwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDEuNTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+OTwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDIuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjk8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTA8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAzLjA8L3RkPgoJCQk8dGQ+V2luIDJrKyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xMDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xMTwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5DYW1pbm8gMS4wPC90ZD4KCQkJPHRkPk9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xMTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xMjwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5DYW1pbm8gMS41PC90ZD4KCQkJPHRkPk9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xMjwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xMzwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSA3LjI8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE1hYyBPUyA4LjYtOS4yPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEzPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE0PC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIEJyb3dzZXIgODwvdGQ+CgkJCTx0ZD5XaW4gOThTRSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTQ8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTU8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgTmF2aWdhdG9yIDk8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xNTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xNjwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xNjwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xNzwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE3PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE4PC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4yPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4yPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTk8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjM8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xOTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4yMDwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjIwPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjIxPC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MjE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MjI8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjY8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4yMjwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4yMzwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNzwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjIzPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjI0PC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS44PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MjQ8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MjU8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+U2VhbW9ua2V5IDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjI1PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjI2PC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkVwaXBoYW55IDIuMjA8L3RkPgoJCQk8dGQ+R25vbWU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MjY8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+Mjc8L3RkPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjI8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTI1LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4yNzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4yODwvdGQ+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDEuMzwvdGQ+CgkJCTx0ZD5PU1guMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zMTIuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjI4PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjI5PC90ZD4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMi4wPC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTkuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjI5PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMwPC90ZD4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMy4wPC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41MjIuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMwPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMxPC90ZD4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5PbW5pV2ViIDUuNTwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MzE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MzI8L3RkPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPmlQb2QgVG91Y2ggLyBpUGhvbmU8L3RkPgoJCQk8dGQ+aVBvZDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MjAuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMyPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMzPC90ZD4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TNjA8L3RkPgoJCQk8dGQ+UzYwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQxMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMzPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjM0PC90ZD4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA3LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MzQ8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MzU8L3RkPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDcuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zNTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zNjwvdGQ+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOC4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjM2PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjM3PC90ZD4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA4LjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+Mzc8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+Mzg8L3RkPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zODwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zOTwvdGQ+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS4yPC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjM5PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQwPC90ZD4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjU8L3RkPgoJCQk8dGQ+V2luIDg4KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDA8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDE8L3RkPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIGZvciBXaWk8L3RkPgoJCQk8dGQ+V2lpPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MjwvdGQ+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+Tm9raWEgTjgwMDwvdGQ+CgkJCTx0ZD5OODAwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MjwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MzwvdGQ+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+TmludGVuZG8gRFMgYnJvd3NlcjwvdGQ+CgkJCTx0ZD5OaW50ZW5kbyBEUzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj44LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+Qy9BPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQzPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQ0PC90ZD4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy4xPC90ZD4KCQkJPHRkPktERSAzLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDQ8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDU8L3RkPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjM8L3RkPgoJCQk8dGQ+S0RFIDMuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40NTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40NjwvdGQ+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuNTwvdGQ+CgkJCTx0ZD5LREUgMy41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQ2PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQ3PC90ZD4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA0LjU8L3RkPgoJCQk8dGQ+TWFjIE9TIDgtOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDc8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDg8L3RkPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMTwvdGQ+CgkJCTx0ZD5NYWMgT1MgNy42LTk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQ4PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQ5PC90ZD4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjI8L3RkPgoJCQk8dGQ+TWFjIE9TIDgtWDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDk8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTA8L3RkPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5OZXRGcm9udCAzLjE8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTA8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTE8L3RkPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5OZXRGcm9udCAzLjQ8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTI8L3RkPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5EaWxsbyAwLjg8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTI8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTM8L3RkPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5MaW5rczwvdGQ+CgkJCTx0ZD5UZXh0IG9ubHk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUzPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjU0PC90ZD4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+THlueDwvdGQ+CgkJCTx0ZD5UZXh0IG9ubHk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjU0PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjU1PC90ZD4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+SUUgTW9iaWxlPC90ZD4KCQkJPHRkPldpbmRvd3MgTW9iaWxlIDY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjU1PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjU2PC90ZD4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+UFNQIGJyb3dzZXI8L3RkPgoJCQk8dGQ+UFNQPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41NjwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlVSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41NzwvdGQ+CgkJCTx0ZD5PdGhlciBicm93c2VyczwvdGQ+CgkJCTx0ZD5BbGwgb3RoZXJzPC90ZD4KCQkJPHRkPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5VPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjU3PC90ZD4KCQk8L3RyPgoJPC90Ym9keT4KPC90YWJsZT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CgkJCQoJCQkKCQkJPGgxPkluaXRpYWxpc2F0aW9uIGNvZGU8L2gxPgoJCQk8cHJlPiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic1Njcm9sbFgiOiAiMTAwJSIsCgkJInNTY3JvbGxYSW5uZXIiOiAiMTUwJSIsCgkJImJTY3JvbGxDb2xsYXBzZSI6IHRydWUsCgkJImZuRHJhd0NhbGxiYWNrIjogZnVuY3Rpb24gKCBvU2V0dGluZ3MgKSB7CgkJCS8qIE5lZWQgdG8gcmVkbyB0aGUgY291bnRlcnMgaWYgZmlsdGVyZWQgb3Igc29ydGVkICovCgkJCWlmICggb1NldHRpbmdzLmJTb3J0ZWQgfHwgb1NldHRpbmdzLmJGaWx0ZXJlZCApIHsKCQkJCWZvciAoIHZhciBpPTAsIGlMZW49b1NldHRpbmdzLmFpRGlzcGxheS5sZW5ndGggOyBpJmx0O2lMZW4gOyBpKysgKSB7CgkJCQkJdGhpcy5mblVwZGF0ZSggaSsxLCBvU2V0dGluZ3MuYWlEaXNwbGF5W2ldLCAwLCBmYWxzZSwgZmFsc2UgKTsKCQkJCQl0aGlzLmZuVXBkYXRlKCBpKzEsIG9TZXR0aW5ncy5haURpc3BsYXlbaV0sIDYsIGZhbHNlLCBmYWxzZSApOwoJCQkJfQoJCQl9CgkJfSwKCQkiYW9Db2x1bW5EZWZzIjogWwoJCQl7ICJiU29ydGFibGUiOiBmYWxzZSwgInNDbGFzcyI6ICJpbmRleExlZnQiLCAiYVRhcmdldHMiOiBbIDAgXSB9LAoJCQl7ICJiU29ydGFibGUiOiBmYWxzZSwgInNDbGFzcyI6ICJpbmRleFJpZ2h0IiwgImFUYXJnZXRzIjogWyAtMSBdIH0KCQldLAoJCSJhYVNvcnRpbmciOiBbWyAxLCAnYXNjJyBdXQoJfSApOwoJCgluZXcgRml4ZWRDb2x1bW5zKCBvVGFibGUsIHsKCQkiaUxlZnRDb2x1bW5zIjogMSwKCQkiaVJpZ2h0Q29sdW1ucyI6IDEKCX0gKTsKfSApOzwvcHJlPgoKCgkJCTxoMT5Eb2N1bWVudGF0aW9uPC9oMT4KCQkJPHVsPgoJCQkJPGxpPjxhIGhyZWY9Imh0dHA6Ly9kYXRhdGFibGVzLm5ldC9leHRyYXMvZml4ZWRjb2x1bW5zIj5Vc2FnZTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9Imh0dHA6Ly9kYXRhdGFibGVzLm5ldC9kb2NzL0ZpeGVkQ29sdW1ucyI+QVBJIC8gcGFyYW1ldGVyczwvYT48L2xpPgoJCQk8L3VsPgoKCQkJPGgxPkJhc2ljIGV4YW1wbGVzPC9oMT4KCQkJPHVsPgoJCQkJPGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkJhc2ljIGRlbW8gb2YgRml4ZWRDb2x1bW5zIHdpdGggemVybyBpbml0aWFsaXNhdGlvbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImxlZnRfcmlnaHRfY29sdW1ucy5odG1sIj5GaXggdGhlIGxlZnQgYW5kIHJpZ2h0IGNvbHVtbnMgaW4gcGxhY2U8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJpbmRleF9jb2x1bW4uaHRtbCI+SW5kZXggY29sdW1uIGF0dGFjaGVkIHRvIHNpZGUgb2YgdGhlIHRhYmxlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ieF95X3Njcm9sbGluZy5odG1sIj5JbmRleCBjb2x1bW4sIGJ1dCB3aXRoIFkgc2Nyb2xsaW5nIGFuZCBubyBwYWdpbmF0aW9uPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0idHdvX2NvbHVtbnMuaHRtbCI+VHdvIGNvbHVtbnMgZml4ZWQgaW4gcGxhY2U8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJyaWdodF9jb2x1bW4uaHRtbCI+Rml4IHRoZSByaWdodCBjb2x1bW4gaW4gcGxhY2U8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJjc3Nfc2l6ZS5odG1sIj5TcGVlZGluZyB1cCByb3cgaGVpZ2h0IG1hdGNoaW5nIHdpdGggQ1NTPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0idGhlbWVkLmh0bWwiPmpRdWVyeSBVSSB0aGVtZWQgdGFibGUgd2l0aCBGaXhlZENvbHVtbnM8L2E+PC9saT4KCQkJPC91bD4KCQkJCgkJCTxoMT5BZHZhbmNlZCBleGFtcGxlczwvaDE+CgkJCTx1bD4KCQkJCTxsaT48YSBocmVmPSJyb3dzcGFuLmh0bWwiPlVzaW5nIFJPV1NQQU4gd2l0aCBGaXhlZENvbHVtbnM8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJzZXJ2ZXItc2lkZS1wcm9jZXNzaW5nLmh0bWwiPlNlcnZlci1zaWRlIHByb2Nlc3Npbmcgd2l0aCBGaXhlZENvbHVtbnM8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJjb2xfZmlsdGVyLmh0bWwiPkluZGl2aWR1YWwgY29sdW1uIGZpbHRlcmluZzwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InNjYWxlX2ZpeGVkLmh0bWwiPlNldHRpbmcgdGhlIGZpeGVkIGNvbHVtbiB3aWR0aCBhbmQgcmVzaXppbmcgdGhlIHRhYmxlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ic2NhbGVfcmVsYXRpdmUuaHRtbCI+U2V0dGluZyB0aGUgZml4ZWQgY29sdW1uIHdpZHRoIHdpdGggcmVsYXRpdmUgc2l6aW5nPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0icm93X2dyb3VwaW5nX2hlaWdodC5odG1sIj5Sb3cgZ3JvdXBpbmcgYnkgZ3JvdXBpbmcgbGlrZSByb3dzIGluIHRoZSBmaXhlZCBjb2x1bW48L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJyb3dfZ3JvdXBpbmcuaHRtbCI+Um93IGdyb3VwaW5nIGJ5IGluc2VydGluZyBhIGdyb3VwaW5nIHJvdzwvYT48L2xpPgoJCQk8dWw+CgkJCQoJCQkKCQkJPGRpdiBpZD0iZm9vdGVyIiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7Ij4KCQkJCTxzcGFuIHN0eWxlPSJmb250LXNpemU6MTBweDsiPgoJCQkJCUZpeGVkQ29sdW1ucyBhbmQgRGF0YVRhYmxlcyAmY29weTsgQWxsYW4gSmFyZGluZSAyMDExLjxicj4KCQkJCTwvc3Bhbj4KCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2JvZHk+CjwvaHRtbD4=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/media/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/media/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/media/js/FixedColumns.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIEBzdW1tYXJ5ICAgICBGaXhlZENvbHVtbnMKICogQGRlc2NyaXB0aW9uIEZyZWV6ZSBjb2x1bW5zIGluIHBsYWNlIG9uIGEgc2Nyb2xsaW5nIERhdGFUYWJsZQogKiBAZmlsZSAgICAgICAgRml4ZWRDb2x1bW5zLmpzCiAqIEB2ZXJzaW9uICAgICAyLjAuMwogKiBAYXV0aG9yICAgICAgQWxsYW4gSmFyZGluZSAod3d3LnNwcnltZWRpYS5jby51aykKICogQGxpY2Vuc2UgICAgIEdQTCB2MiBvciBCU0QgMyBwb2ludCBzdHlsZQogKiBAY29udGFjdCAgICAgd3d3LnNwcnltZWRpYS5jby51ay9jb250YWN0CiAqCiAqIEBjb3B5cmlnaHQgQ29weXJpZ2h0IDIwMTAtMjAxMSBBbGxhbiBKYXJkaW5lLCBhbGwgcmlnaHRzIHJlc2VydmVkLgogKgogKiBUaGlzIHNvdXJjZSBmaWxlIGlzIGZyZWUgc29mdHdhcmUsIHVuZGVyIGVpdGhlciB0aGUgR1BMIHYyIGxpY2Vuc2Ugb3IgYQogKiBCU0Qgc3R5bGUgbGljZW5zZSwgYXZhaWxhYmxlIGF0OgogKiAgIGh0dHA6Ly9kYXRhdGFibGVzLm5ldC9saWNlbnNlX2dwbDIKICogICBodHRwOi8vZGF0YXRhYmxlcy5uZXQvbGljZW5zZV9ic2QKICovCgoKLyogR2xvYmFsIHNjb3BlIGZvciBGaXhlZENvbHVtbnMgKi8KdmFyIEZpeGVkQ29sdW1uczsKCihmdW5jdGlvbigkLCB3aW5kb3csIGRvY3VtZW50KSB7CgoKLyoqIAogKiBXaGVuIG1ha2luZyB1c2Ugb2YgRGF0YVRhYmxlcycgeC1heGlzIHNjcm9sbGluZyBmZWF0dXJlLCB5b3UgbWF5IHdpc2ggdG8gCiAqIGZpeCB0aGUgbGVmdCBtb3N0IGNvbHVtbiBpbiBwbGFjZS4gVGhpcyBwbHVnLWluIGZvciBEYXRhVGFibGVzIHByb3ZpZGVzIAogKiBleGFjdGx5IHRoaXMgb3B0aW9uIChub3RlIGZvciBub24tc2Nyb2xsaW5nIHRhYmxlcywgcGxlYXNlIHVzZSB0aGUgIAogKiBGaXhlZEhlYWRlciBwbHVnLWluLCB3aGljaCBjYW4gZml4IGhlYWRlcnMsIGZvb3RlcnMgYW5kIGNvbHVtbnMpLiBLZXkgCiAqIGZlYXR1cmVzIGluY2x1ZGU6CiAqICAgPHVsIGNsYXNzPSJsaW1pdF9sZW5ndGgiPgogKiAgICAgPGxpPkZyZWV6ZXMgdGhlIGxlZnQgb3IgcmlnaHQgbW9zdCBjb2x1bW5zIHRvIHRoZSBzaWRlIG9mIHRoZSB0YWJsZTwvbGk+CiAqICAgICA8bGk+T3B0aW9uIHRvIGZyZWV6ZSB0d28gb3IgbW9yZSBjb2x1bW5zPC9saT4KICogICAgIDxsaT5GdWxsIGludGVncmF0aW9uIHdpdGggRGF0YVRhYmxlcycgc2Nyb2xsaW5nIG9wdGlvbnM8L2xpPgogKiAgICAgPGxpPlNwZWVkIC0gRml4ZWRDb2x1bW5zIGlzIGZhc3QgaW4gaXRzIG9wZXJhdGlvbjwvbGk+CiAqICAgPC91bD4KICoKICogIEBjbGFzcwogKiAgQGNvbnN0cnVjdG9yCiAqICBAcGFyYW0ge29iamVjdH0gb0RUIERhdGFUYWJsZXMgaW5zdGFuY2UKICogIEBwYXJhbSB7b2JqZWN0fSBbb0luaXQ9e31dIENvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciBGaXhlZENvbHVtbnMuIE9wdGlvbnMgYXJlIGRlZmluZWQgYnkge0BsaW5rIEZpeGVkQ29sdW1ucy5kZWZhdWx0c30KICogCiAqICBAcmVxdWlyZXMgalF1ZXJ5IDEuMysKICogIEByZXF1aXJlcyBEYXRhVGFibGVzIDEuOC4wKwogKiAKICogIEBleGFtcGxlCiAqICAJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CiAqICAJCSJzU2Nyb2xsWCI6ICIxMDAlIgogKiAgCX0gKTsKICogIAluZXcgRml4ZWRDb2x1bW5zKCBvVGFibGUgKTsKICovCkZpeGVkQ29sdW1ucyA9IGZ1bmN0aW9uICggb0RULCBvSW5pdCApIHsKCS8qIFNhbml0eSBjaGVjayAtIHlvdSBqdXN0IGtub3cgaXQgd2lsbCBoYXBwZW4gKi8KCWlmICggISB0aGlzIGluc3RhbmNlb2YgRml4ZWRDb2x1bW5zICkKCXsKCQlhbGVydCggIkZpeGVkQ29sdW1ucyB3YXJuaW5nOiBGaXhlZENvbHVtbnMgbXVzdCBiZSBpbml0aWFsaXNlZCB3aXRoIHRoZSAnbmV3JyBrZXl3b3JkLiIgKTsKCQlyZXR1cm47Cgl9CgkKCWlmICggdHlwZW9mIG9Jbml0ID09ICd1bmRlZmluZWQnICkKCXsKCQlvSW5pdCA9IHt9OwoJfQoJCgkvKioKCSAqIFNldHRpbmdzIG9iamVjdCB3aGljaCBjb250YWlucyBjdXN0b21pc2FibGUgaW5mb3JtYXRpb24gZm9yIEZpeGVkQ29sdW1ucyBpbnN0YW5jZQoJICogQG5hbWVzcGFjZQoJICogQGV4dGVuZHMgRml4ZWRDb2x1bW5zLmRlZmF1bHRzCgkgKi8KCXRoaXMucyA9IHsKCQkvKiogCgkJICogRGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3RzCgkJICogIEB0eXBlICAgICBvYmplY3QKCQkgKiAgQGRlZmF1bHQgIE9idGFpbmVkIGZyb20gRGF0YVRhYmxlcyBpbnN0YW5jZQoJCSAqLwoJCSJkdCI6IG9EVC5mblNldHRpbmdzKCksCgkJCgkJLyoqIAoJCSAqIE51bWJlciBvZiBjb2x1bW5zIGluIHRoZSBEYXRhVGFibGUgLSBzdG9yZWQgZm9yIHF1aWNrIGFjY2VzcwoJCSAqICBAdHlwZSAgICAgaW50CgkJICogIEBkZWZhdWx0ICBPYnRhaW5lZCBmcm9tIERhdGFUYWJsZXMgaW5zdGFuY2UKCQkgKi8KCQkiaVRhYmxlQ29sdW1ucyI6IG9EVC5mblNldHRpbmdzKCkuYW9Db2x1bW5zLmxlbmd0aCwKCQkKCQkvKiogCgkJICogT3JpZ2luYWwgd2lkdGhzIG9mIHRoZSBjb2x1bW5zIGFzIHJlbmRlcmVkIGJ5IERhdGFUYWJsZXMKCQkgKiAgQHR5cGUgICAgIGFycmF5LjxpbnQ+CgkJICogIEBkZWZhdWx0ICBbXQoJCSAqLwoJCSJhaVdpZHRocyI6IFtdLAoJCQoJCS8qKiAKCQkgKiBGbGFnIHRvIGluZGljYXRlIGlmIHdlIGFyZSBkZWFsaW5nIHdpdGggSUU2LzcgYXMgdGhlc2UgYnJvd3NlcnMgbmVlZCBhIGxpdHRsZSBoYWNrCgkJICogaW4gdGhlIG9kZCBwbGFjZQoJCSAqICBAdHlwZSAgICAgYm9vbGVhbgoJCSAqICBAZGVmYXVsdCAgQXV0b21hdGljYWxseSBjYWxjdWxhdGVkCgkJICogIEByZWFkb25seQoJCSAqLwoJCSJiT2xkSUUiOiAoJC5icm93c2VyLm1zaWUgJiYgKCQuYnJvd3Nlci52ZXJzaW9uID09ICI2LjAiIHx8ICQuYnJvd3Nlci52ZXJzaW9uID09ICI3LjAiKSkKCX07CgkKCQoJLyoqCgkgKiBET00gZWxlbWVudHMgdXNlZCBieSB0aGUgY2xhc3MgaW5zdGFuY2UKCSAqIEBuYW1lc3BhY2UKCSAqIAoJICovCgl0aGlzLmRvbSA9IHsKCQkvKioKCQkgKiBEYXRhVGFibGVzIHNjcm9sbGluZyBlbGVtZW50CgkJICogIEB0eXBlICAgICBub2RlCgkJICogIEBkZWZhdWx0ICBudWxsCgkJICovCgkJInNjcm9sbGVyIjogbnVsbCwKCQkKCQkvKioKCQkgKiBEYXRhVGFibGVzIGhlYWRlciB0YWJsZQoJCSAqICBAdHlwZSAgICAgbm9kZQoJCSAqICBAZGVmYXVsdCAgbnVsbAoJCSAqLwoJCSJoZWFkZXIiOiBudWxsLAoJCQoJCS8qKgoJCSAqIERhdGFUYWJsZXMgYm9keSB0YWJsZQoJCSAqICBAdHlwZSAgICAgbm9kZQoJCSAqICBAZGVmYXVsdCAgbnVsbAoJCSAqLwoJCSJib2R5IjogbnVsbCwKCQkKCQkvKioKCQkgKiBEYXRhVGFibGVzIGZvb3RlciB0YWJsZQoJCSAqICBAdHlwZSAgICAgbm9kZQoJCSAqICBAZGVmYXVsdCAgbnVsbAoJCSAqLwoJCSJmb290ZXIiOiBudWxsLAoKCQkvKioKCQkgKiBEaXNwbGF5IGdyaWQgZWxlbWVudHMKCQkgKiBAbmFtZXNwYWNlCgkJICovCgkJImdyaWQiOiB7CgkJCS8qKgoJCQkgKiBHcmlkIHdyYXBwZXIuIFRoaXMgaXMgdGhlIGNvbnRhaW5lciBlbGVtZW50IGZvciB0aGUgM3gzIGdyaWQKCQkJICogIEB0eXBlICAgICBub2RlCgkJCSAqICBAZGVmYXVsdCAgbnVsbAoJCQkgKi8KCQkJIndyYXBwZXIiOiBudWxsLAoKCQkJLyoqCgkJCSAqIERhdGFUYWJsZXMgc2Nyb2xsaW5nIGVsZW1lbnQuIFRoaXMgZWxlbWVudCBpcyB0aGUgRGF0YVRhYmxlcwoJCQkgKiBjb21wb25lbnQgaW4gdGhlIGRpc3BsYXkgZ3JpZCAobWFraW5nIHVwIHRoZSBtYWluIHRhYmxlIC0gaS5lLgoJCQkgKiBub3QgdGhlIGZpeGVkIGNvbHVtbnMpLgoJCQkgKiAgQHR5cGUgICAgIG5vZGUKCQkJICogIEBkZWZhdWx0ICBudWxsCgkJCSAqLwoJCQkiZHQiOiBudWxsLAoKCQkJLyoqCgkJCSAqIExlZnQgZml4ZWQgY29sdW1uIGdyaWQgY29tcG9uZW50cwoJCQkgKiBAbmFtZXNwYWNlCgkJCSAqLwoJCQkibGVmdCI6IHsKCQkJCSJ3cmFwcGVyIjogbnVsbCwKCQkJCSJoZWFkIjogbnVsbCwKCQkJCSJib2R5IjogbnVsbCwKCQkJCSJmb290IjogbnVsbAoJCQl9LAoKCQkJLyoqCgkJCSAqIFJpZ2h0IGZpeGVkIGNvbHVtbiBncmlkIGNvbXBvbmVudHMKCQkJICogQG5hbWVzcGFjZQoJCQkgKi8KCQkJInJpZ2h0IjogewoJCQkJIndyYXBwZXIiOiBudWxsLAoJCQkJImhlYWQiOiBudWxsLAoJCQkJImJvZHkiOiBudWxsLAoJCQkJImZvb3QiOiBudWxsCgkJCX0KCQl9LAoJCQoJCS8qKgoJCSAqIENsb25lZCB0YWJsZSBub2RlcwoJCSAqIEBuYW1lc3BhY2UKCQkgKi8KCQkiY2xvbmUiOiB7CgkJCS8qKgoJCQkgKiBMZWZ0IGNvbHVtbiBjbG9uZWQgdGFibGUgbm9kZXMKCQkJICogQG5hbWVzcGFjZQoJCQkgKi8KCQkJImxlZnQiOiB7CgkJCQkvKioKCQkJCSAqIENsb25lZCBoZWFkZXIgdGFibGUKCQkJCSAqICBAdHlwZSAgICAgbm9kZQoJCQkJICogIEBkZWZhdWx0ICBudWxsCgkJCQkgKi8KCQkJCSJoZWFkZXIiOiBudWxsLAoJCSAgCQoJCQkJLyoqCgkJCQkgKiBDbG9uZWQgYm9keSB0YWJsZQoJCQkJICogIEB0eXBlICAgICBub2RlCgkJCQkgKiAgQGRlZmF1bHQgIG51bGwKCQkJCSAqLwoJCQkJImJvZHkiOiBudWxsLAoJCSAgCQoJCQkJLyoqCgkJCQkgKiBDbG9uZWQgZm9vdGVyIHRhYmxlCgkJCQkgKiAgQHR5cGUgICAgIG5vZGUKCQkJCSAqICBAZGVmYXVsdCAgbnVsbAoJCQkJICovCgkJCQkiZm9vdGVyIjogbnVsbAoJCQl9LAoJCQkKCQkJLyoqCgkJCSAqIFJpZ2h0IGNvbHVtbiBjbG9uZWQgdGFibGUgbm9kZXMKCQkJICogQG5hbWVzcGFjZQoJCQkgKi8KCQkJInJpZ2h0IjogewoJCQkJLyoqCgkJCQkgKiBDbG9uZWQgaGVhZGVyIHRhYmxlCgkJCQkgKiAgQHR5cGUgICAgIG5vZGUKCQkJCSAqICBAZGVmYXVsdCAgbnVsbAoJCQkJICovCgkJCQkiaGVhZGVyIjogbnVsbCwKCQkgIAkKCQkJCS8qKgoJCQkJICogQ2xvbmVkIGJvZHkgdGFibGUKCQkJCSAqICBAdHlwZSAgICAgbm9kZQoJCQkJICogIEBkZWZhdWx0ICBudWxsCgkJCQkgKi8KCQkJCSJib2R5IjogbnVsbCwKCQkgIAkKCQkJCS8qKgoJCQkJICogQ2xvbmVkIGZvb3RlciB0YWJsZQoJCQkJICogIEB0eXBlICAgICBub2RlCgkJCQkgKiAgQGRlZmF1bHQgIG51bGwKCQkJCSAqLwoJCQkJImZvb3RlciI6IG51bGwKCQkJfQoJCX0KCX07CgoJLyogQXR0YWNoIHRoZSBpbnN0YW5jZSB0byB0aGUgRGF0YVRhYmxlcyBpbnN0YW5jZSBzbyBpdCBjYW4gYmUgYWNjZXNzZWQgZWFzaWx5ICovCgl0aGlzLnMuZHQub0ZpeGVkQ29sdW1ucyA9IHRoaXM7CgkKCS8qIExldCdzIGRvIGl0ICovCgl0aGlzLl9mbkNvbnN0cnVjdCggb0luaXQgKTsKfTsKCgoKRml4ZWRDb2x1bW5zLnByb3RvdHlwZSA9IHsKCS8qICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICoKCSAqIFB1YmxpYyBtZXRob2RzCgkgKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqLwoJCgkvKioKCSAqIFVwZGF0ZSB0aGUgZml4ZWQgY29sdW1ucyAtIGluY2x1ZGluZyBoZWFkZXJzIGFuZCBmb290ZXJzLiBOb3RlIHRoYXQgRml4ZWRDb2x1bW5zIHdpbGwKCSAqIGF1dG9tYXRpY2FsbHkgdXBkYXRlIHRoZSBkaXNwbGF5IHdoZW5ldmVyIHRoZSBob3N0IERhdGFUYWJsZSByZWRyYXdzLgoJICogIEByZXR1cm5zIHt2b2lkfQoJICogIEBleGFtcGxlCgkgKiAgCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogIAkJInNTY3JvbGxYIjogIjEwMCUiCgkgKiAgCX0gKTsKCSAqICAJdmFyIG9GQyA9IG5ldyBGaXhlZENvbHVtbnMoIG9UYWJsZSApOwoJICogIAkKCSAqICAJLy8gYXQgc29tZSBsYXRlciBwb2ludCB3aGVuIHRoZSB0YWJsZSBoYXMgYmVlbiBtYW5pcHVsYXRlZC4uLi4KCSAqICAJb0ZDLmZuVXBkYXRlKCk7CgkgKi8KCSJmblVwZGF0ZSI6IGZ1bmN0aW9uICgpCgl7CgkJdGhpcy5fZm5EcmF3KCB0cnVlICk7Cgl9LAoJCgkKCS8qKgoJICogUmVjYWxjdWxhdGUgdGhlIHJlc2l6ZXMgb2YgdGhlIDN4MyBncmlkIHRoYXQgRml4ZWRDb2x1bW5zIHVzZXMgZm9yIGRpc3BsYXkgb2YgdGhlIHRhYmxlLgoJICogVGhpcyBpcyB1c2VmdWwgaWYgeW91IHVwZGF0ZSB0aGUgd2lkdGggb2YgdGhlIHRhYmxlIGNvbnRhaW5lci4gTm90ZSB0aGF0IEZpeGVkQ29sdW1ucyB3aWxsCgkgKiBwZXJmb3JtIHRoaXMgZnVuY3Rpb24gYXV0b21hdGljYWxseSB3aGVuIHRoZSB3aW5kb3cucmVzaXplIGV2ZW50IGlzIGZpcmVkLgoJICogIEByZXR1cm5zIHt2b2lkfQoJICogIEBleGFtcGxlCgkgKiAgCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogIAkJInNTY3JvbGxYIjogIjEwMCUiCgkgKiAgCX0gKTsKCSAqICAJdmFyIG9GQyA9IG5ldyBGaXhlZENvbHVtbnMoIG9UYWJsZSApOwoJICogIAkKCSAqICAJLy8gUmVzaXplIHRoZSB0YWJsZSBjb250YWluZXIgYW5kIHRoZW4gaGF2ZSBGaXhlZENvbHVtbnMgYWRqdXN0IGl0cyBsYXlvdXQuLi4uCgkgKiAgICAgICQoJyNjb250ZW50Jykud2lkdGgoIDEyMDAgKTsKCSAqICAJb0ZDLmZuUmVkcmF3TGF5b3V0KCk7CgkgKi8KCSJmblJlZHJhd0xheW91dCI6IGZ1bmN0aW9uICgpCgl7CgkJdGhpcy5fZm5HcmlkTGF5b3V0KCk7Cgl9LAoJCgkKCS8qKgoJICogTWFyayBhIHJvdyBzdWNoIHRoYXQgaXQncyBoZWlnaHQgc2hvdWxkIGJlIHJlY2FsY3VsYXRlZCB3aGVuIHVzaW5nICdzZW1pYXV0bycgcm93CgkgKiBoZWlnaHQgbWF0Y2hpbmcuIFRoaXMgZnVuY3Rpb24gd2lsbCBoYXZlIG5vIGVmZmVjdCB3aGVuICdub25lJyBvciAnYXV0bycgcm93IGhlaWdodAoJICogbWF0Y2hpbmcgaXMgdXNlZC4KCSAqICBAcGFyYW0gICB7Tm9kZX0gblRyIFRSIGVsZW1lbnQgdGhhdCBzaG91bGQgaGF2ZSBpdCdzIGhlaWdodCByZWNhbGN1bGF0ZWQKCSAqICBAcmV0dXJucyB7dm9pZH0KCSAqICBAZXhhbXBsZQoJICogIAl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAJCSJzU2Nyb2xsWCI6ICIxMDAlIgoJICogIAl9ICk7CgkgKiAgCXZhciBvRkMgPSBuZXcgRml4ZWRDb2x1bW5zKCBvVGFibGUgKTsKCSAqICAJCgkgKiAgCS8vIG1hbmlwdWxhdGUgdGhlIHRhYmxlIC0gbWFyayB0aGUgcm93IGFzIG5lZWRpbmcgYW4gdXBkYXRlIHRoZW4gdXBkYXRlIHRoZSB0YWJsZQoJICogIAkvLyB0aGlzIGFsbG93cyB0aGUgcmVkcmF3IHBlcmZvcm1lZCBieSBEYXRhVGFibGVzIGZuVXBkYXRlIHRvIHJlY2FsY3VsYXRlIHRoZSByb3cKCSAqICAJLy8gaGVpZ2h0CgkgKiAgCW9GQy5mblJlY2FsY3VsYXRlSGVpZ2h0KCk7CgkgKiAgCW9UYWJsZS5mblVwZGF0ZSggJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCknKVswXSwgWyJpbnNlcnQgZGF0ZSIsIDEsIDIsIDMgLi4uIF0pOwoJICovCgkiZm5SZWNhbGN1bGF0ZUhlaWdodCI6IGZ1bmN0aW9uICggblRyICkKCXsKCQluVHIuX0RUVENfaUhlaWdodCA9IG51bGw7CgkJblRyLnN0eWxlLmhlaWdodCA9ICdhdXRvJzsKCX0sCgkKCQoJLyoqCgkgKiBTZXQgdGhlIGhlaWdodCBvZiBhIGdpdmVuIHJvdyAtIHByb3ZpZGVzIGNyb3NzIGJyb3dzZXIgY29tcGF0aWJpbGl0eQoJICogIEBwYXJhbSAgIHtOb2RlfSBuVGFyZ2V0IFRSIGVsZW1lbnQgdGhhdCBzaG91bGQgaGF2ZSBpdCdzIGhlaWdodCByZWNhbGN1bGF0ZWQKCSAqICBAcGFyYW0gICB7aW50fSBpSGVpZ2h0IEhlaWdodCBpbiBwaXhlbHMgdG8gc2V0CgkgKiAgQHJldHVybnMge3ZvaWR9CgkgKiAgQGV4YW1wbGUKCSAqICAJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgCQkic1Njcm9sbFgiOiAiMTAwJSIKCSAqICAJfSApOwoJICogIAl2YXIgb0ZDID0gbmV3IEZpeGVkQ29sdW1ucyggb1RhYmxlICk7CgkgKiAgCQoJICogIAkvLyBZb3UgbWF5IHdhbnQgdG8gZG8gdGhpcyBhZnRlciBtYW5pcHVsYXRpbmcgYSByb3cgaW4gdGhlIGZpeGVkIGNvbHVtbgoJICogIAlvRkMuZm5TZXRSb3dIZWlnaHQoICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApJylbMF0sIDUwICk7CgkgKi8KCSJmblNldFJvd0hlaWdodCI6IGZ1bmN0aW9uICggblRhcmdldCwgaUhlaWdodCApCgl7CgkJdmFyIGpxQm94SGFjayA9ICQoblRhcmdldCkuY2hpbGRyZW4oJzpmaXJzdCcpOwoJCXZhciBpQm94SGFjayA9IGpxQm94SGFjay5vdXRlckhlaWdodCgpIC0ganFCb3hIYWNrLmhlaWdodCgpOwoKCQkvKiBDYW4gd2UgdXNlIHNvbWUga2luZCBvZiBvYmplY3QgZGV0ZWN0aW9uIGhlcmU/ISBUaGlzIGlzIHZlcnkgbmFzdHkgLSBkYW1uIGJyb3dzZXJzICovCgkJaWYgKCAkLmJyb3dzZXIubW96aWxsYSB8fCAkLmJyb3dzZXIub3BlcmEgKQoJCXsKCQkJblRhcmdldC5zdHlsZS5oZWlnaHQgPSBpSGVpZ2h0KyJweCI7CgkJfQoJCWVsc2UKCQl7CgkJCSQoblRhcmdldCkuY2hpbGRyZW4oKS5oZWlnaHQoIGlIZWlnaHQtaUJveEhhY2sgKTsKCQl9Cgl9LAoJCgkKCQoJLyogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKgoJICogUHJpdmF0ZSBtZXRob2RzICh0aGV5IGFyZSBvZiBjb3Vyc2UgcHVibGljIGluIEpTLCBidXQgcmVjb21tZW5kZWQgYXMgcHJpdmF0ZSkKCSAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICovCgkKCS8qKgoJICogSW5pdGlhbGlzYXRpb24gZm9yIEZpeGVkQ29sdW1ucwoJICogIEBwYXJhbSAgIHtPYmplY3R9IG9Jbml0IFVzZXIgc2V0dGluZ3MgZm9yIGluaXRpYWxpc2F0aW9uCgkgKiAgQHJldHVybnMge3ZvaWR9CgkgKiAgQHByaXZhdGUKCSAqLwoJIl9mbkNvbnN0cnVjdCI6IGZ1bmN0aW9uICggb0luaXQgKQoJewoJCXZhciBpLCBpTGVuLCBpV2lkdGgsCgkJCXRoYXQgPSB0aGlzOwoJCQoJCS8qIFNhbml0eSBjaGVja2luZyAqLwoJCWlmICggdHlwZW9mIHRoaXMucy5kdC5vSW5zdGFuY2UuZm5WZXJzaW9uQ2hlY2sgIT0gJ2Z1bmN0aW9uJyB8fAoJCSAgICAgdGhpcy5zLmR0Lm9JbnN0YW5jZS5mblZlcnNpb25DaGVjayggJzEuOC4wJyApICE9PSB0cnVlICkKCQl7CgkJCWFsZXJ0KCAiRml4ZWRDb2x1bW5zICIrRml4ZWRDb2x1bW5zLlZFUlNJT04rIiByZXF1aXJlZCBEYXRhVGFibGVzIDEuOC4wIG9yIGxhdGVyLiAiKwoJCQkJIlBsZWFzZSB1cGdyYWRlIHlvdXIgRGF0YVRhYmxlcyBpbnN0YWxsYXRpb24iICk7CgkJCXJldHVybjsKCQl9CgkJCgkJaWYgKCB0aGlzLnMuZHQub1Njcm9sbC5zWCA9PT0gIiIgKQoJCXsKCQkJdGhpcy5zLmR0Lm9JbnN0YW5jZS5vQXBpLl9mbkxvZyggdGhpcy5zLmR0LCAxLCAiRml4ZWRDb2x1bW5zIGlzIG5vdCBuZWVkZWQgKG5vICIrCgkJCQkieC1zY3JvbGxpbmcgaW4gRGF0YVRhYmxlcyBlbmFibGVkKSwgc28gbm8gYWN0aW9uIHdpbGwgYmUgdGFrZW4uIFVzZSAnRml4ZWRIZWFkZXInIGZvciAiKwoJCQkJImNvbHVtbiBmaXhpbmcgd2hlbiBzY3JvbGxpbmcgaXMgbm90IGVuYWJsZWQiICk7CgkJCXJldHVybjsKCQl9CgkJCgkJLyogQXBwbHkgdGhlIHNldHRpbmdzIGZyb20gdGhlIHVzZXIgLyBkZWZhdWx0cyAqLwoJCXRoaXMucyA9ICQuZXh0ZW5kKCB0cnVlLCB0aGlzLnMsIEZpeGVkQ29sdW1ucy5kZWZhdWx0cywgb0luaXQgKTsKCgkJLyogU2V0IHVwIHRoZSBET00gYXMgd2UgbmVlZCBpdCBhbmQgY2FjaGUgbm9kZXMgKi8KCQl0aGlzLmRvbS5ncmlkLmR0ID0gJCh0aGlzLnMuZHQublRhYmxlKS5wYXJlbnRzKCdkaXYuZGF0YVRhYmxlc19zY3JvbGwnKVswXTsKCQl0aGlzLmRvbS5zY3JvbGxlciA9ICQoJ2Rpdi5kYXRhVGFibGVzX3Njcm9sbEJvZHknLCB0aGlzLmRvbS5ncmlkLmR0IClbMF07CgoJCXZhciBpU2Nyb2xsV2lkdGggPSAkKHRoaXMuZG9tLmdyaWQuZHQpLndpZHRoKCk7CgkJdmFyIGlMZWZ0V2lkdGggPSAwOwoJCXZhciBpUmlnaHRXaWR0aCA9IDA7CgoJCSQoJ3Rib2R5PnRyOmVxKDApPnRkJywgdGhpcy5zLmR0Lm5UYWJsZSkuZWFjaCggZnVuY3Rpb24gKGkpIHsKCQkJaVdpZHRoID0gJCh0aGlzKS5vdXRlcldpZHRoKCk7CgkJCXRoYXQucy5haVdpZHRocy5wdXNoKCBpV2lkdGggKTsKCQkJaWYgKCBpIDwgdGhhdC5zLmlMZWZ0Q29sdW1ucyApCgkJCXsKCQkJCWlMZWZ0V2lkdGggKz0gaVdpZHRoOwoJCQl9CgkJCWlmICggdGhhdC5zLmlUYWJsZUNvbHVtbnMtdGhhdC5zLmlSaWdodENvbHVtbnMgPD0gaSApCgkJCXsKCQkJCWlSaWdodFdpZHRoICs9IGlXaWR0aDsKCQkJfQoJCX0gKTsKCgkJaWYgKCB0aGlzLnMuaUxlZnRXaWR0aCA9PT0gbnVsbCApCgkJewoJCQl0aGlzLnMuaUxlZnRXaWR0aCA9IHRoaXMucy5zTGVmdFdpZHRoID09ICdmaXhlZCcgPwoJCQkJaUxlZnRXaWR0aCA6IChpTGVmdFdpZHRoL2lTY3JvbGxXaWR0aCkgKiAxMDA7IAoJCX0KCQkKCQlpZiAoIHRoaXMucy5pUmlnaHRXaWR0aCA9PT0gbnVsbCApCgkJewoJCQl0aGlzLnMuaVJpZ2h0V2lkdGggPSB0aGlzLnMuc1JpZ2h0V2lkdGggPT0gJ2ZpeGVkJyA/CgkJCQlpUmlnaHRXaWR0aCA6IChpUmlnaHRXaWR0aC9pU2Nyb2xsV2lkdGgpICogMTAwOwoJCX0KCQkKCQkvKiBTZXQgdXAgdGhlIERPTSB0aGF0IHdlIHdhbnQgZm9yIHRoZSBmaXhlZCBjb2x1bW4gbGF5b3V0IGdyaWQgKi8KCQl0aGlzLl9mbkdyaWRTZXR1cCgpOwoKCQkvKiBVc2UgdGhlIERhdGFUYWJsZXMgQVBJIG1ldGhvZCBmblNldENvbHVtblZpcyB0byBoaWRlIHRoZSBjb2x1bW5zIHdlIGFyZSBnb2luZyB0byBmaXggKi8KCQlmb3IgKCBpPTAgOyBpPHRoaXMucy5pTGVmdENvbHVtbnMgOyBpKysgKQoJCXsKCQkJdGhpcy5zLmR0Lm9JbnN0YW5jZS5mblNldENvbHVtblZpcyggaSwgZmFsc2UgKTsKCQl9CgkJZm9yICggaT10aGlzLnMuaVRhYmxlQ29sdW1ucyAtIHRoaXMucy5pUmlnaHRDb2x1bW5zIDsgaTx0aGlzLnMuaVRhYmxlQ29sdW1ucyA7IGkrKyApCgkJewoJCQl0aGlzLnMuZHQub0luc3RhbmNlLmZuU2V0Q29sdW1uVmlzKCBpLCBmYWxzZSApOwoJCX0KCgkJLyogRXZlbnQgaGFuZGxlcnMgKi8KCQkkKHRoaXMuZG9tLnNjcm9sbGVyKS5zY3JvbGwoIGZ1bmN0aW9uICgpIHsKCQkJdGhhdC5kb20uZ3JpZC5sZWZ0LmJvZHkuc2Nyb2xsVG9wID0gdGhhdC5kb20uc2Nyb2xsZXIuc2Nyb2xsVG9wOwoJCQlpZiAoIHRoYXQucy5pUmlnaHRDb2x1bW5zID4gMCApCgkJCXsKCQkJCXRoYXQuZG9tLmdyaWQucmlnaHQuYm9keS5zY3JvbGxUb3AgPSB0aGF0LmRvbS5zY3JvbGxlci5zY3JvbGxUb3A7CgkJCX0KCQl9ICk7CgoJCSQod2luZG93KS5yZXNpemUoIGZ1bmN0aW9uICgpIHsKCQkJdGhhdC5fZm5HcmlkTGF5b3V0LmNhbGwoIHRoYXQgKTsKCQl9ICk7CgkJCgkJdmFyIGJGaXJzdERyYXcgPSB0cnVlOwoJCXRoaXMucy5kdC5hb0RyYXdDYWxsYmFjayA9IFsgewoJCQkiZm4iOiBmdW5jdGlvbiAoKSB7CgkJCQl0aGF0Ll9mbkRyYXcuY2FsbCggdGhhdCwgYkZpcnN0RHJhdyApOwoJCQkJdGhhdC5fZm5HcmlkSGVpZ2h0KCB0aGF0ICk7CgkJCQliRmlyc3REcmF3ID0gZmFsc2U7CgkJCX0sCgkJCSJzTmFtZSI6ICJGaXhlZENvbHVtbnMiCgkJfSBdLmNvbmNhdCggdGhpcy5zLmR0LmFvRHJhd0NhbGxiYWNrICk7CgkJCgkJLyogR2V0IHRoaW5ncyByaWdodCB0byBzdGFydCB3aXRoIC0gbm90ZSB0aGF0IGR1ZSB0byBhZGp1c3RpbmcgdGhlIGNvbHVtbnMsIHRoZXJlIG11c3QgYmUKCQkgKiBhbm90aGVyIHJlZHJhdyBvZiB0aGUgbWFpbiB0YWJsZS4gSXQgZG9lc24ndCBuZWVkIHRvIGJlIGEgZnVsbCByZWRyYXcgaG93ZXZlci4KCQkgKi8KCQl0aGlzLl9mbkdyaWRMYXlvdXQoKTsKCQl0aGlzLl9mbkdyaWRIZWlnaHQoKTsKCQl0aGlzLnMuZHQub0luc3RhbmNlLmZuRHJhdyhmYWxzZSk7Cgl9LAoJCgkKCS8qKgoJICogU2V0IHVwIHRoZSBET00gZm9yIHRoZSBmaXhlZCBjb2x1bW4uIFRoZSB3YXkgdGhlIGxheW91dCB3b3JrcyBpcyB0byBjcmVhdGUgYSAxeDMgZ3JpZAoJICogZm9yIHRoZSBsZWZ0IGNvbHVtbiwgdGhlIERhdGFUYWJsZSAoZm9yIHdoaWNoIHdlIGp1c3QgcmV1c2UgdGhlIHNjcm9sbGluZyBlbGVtZW50IERhdGFUYWJsZQoJICogcHV0cyBpbnRvIHRoZSBET00pIGFuZCB0aGUgcmlnaHQgY29sdW1uLiBJbiBlYWNoIG9mIGhlIHR3byBmaXhlZCBjb2x1bW4gZWxlbWVudHMgdGhlcmUgaXMgYQoJICogZ3JvdXBpbmcgd3JhcHBlciBlbGVtZW50IGFuZCB0aGVuIGEgaGVhZCwgYm9keSBhbmQgZm9vdGVyIHdyYXBwZXIuIEluIGVhY2ggb2YgdGhlc2Ugd2UgdGhlbgoJICogcGxhY2UgdGhlIGNsb25lZCBoZWFkZXIsIGJvZHkgb3IgZm9vdGVyIHRhYmxlcy4gVGhpcyBlZmZlY3RpdmVseSBnaXZlcyBhcyAzeDMgZ3JpZCBzdHJ1Y3R1cmUuCgkgKiAgQHJldHVybnMge3ZvaWR9CgkgKiAgQHByaXZhdGUKCSAqLwoJIl9mbkdyaWRTZXR1cCI6IGZ1bmN0aW9uICgpCgl7CgkJdmFyIHRoYXQgPSB0aGlzOwoKCQl0aGlzLmRvbS5ib2R5ID0gdGhpcy5zLmR0Lm5UYWJsZTsKCQl0aGlzLmRvbS5oZWFkZXIgPSB0aGlzLnMuZHQublRIZWFkLnBhcmVudE5vZGU7CgkJdGhpcy5kb20uaGVhZGVyLnBhcmVudE5vZGUucGFyZW50Tm9kZS5zdHlsZS5wb3NpdGlvbiA9ICJyZWxhdGl2ZSI7CgkJCgkJdmFyIG5TV3JhcHBlciA9IAoJCQkkKCc8ZGl2IGNsYXNzPSJEVEZDX1Njcm9sbFdyYXBwZXIiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTsgY2xlYXI6Ym90aDsiPicrCgkJCQknPGRpdiBjbGFzcz0iRFRGQ19MZWZ0V3JhcHBlciIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDowOyI+JysKCQkJCQknPGRpdiBjbGFzcz0iRFRGQ19MZWZ0SGVhZFdyYXBwZXIiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOjA7IGxlZnQ6MDsgb3ZlcmZsb3c6aGlkZGVuOyI+PC9kaXY+JysKCQkJCQknPGRpdiBjbGFzcz0iRFRGQ19MZWZ0Qm9keVdyYXBwZXIiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOjA7IGxlZnQ6MDsgb3ZlcmZsb3c6aGlkZGVuOyI+PC9kaXY+JysKCQkJCQknPGRpdiBjbGFzcz0iRFRGQ19MZWZ0Rm9vdFdyYXBwZXIiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOjA7IGxlZnQ6MDsgb3ZlcmZsb3c6aGlkZGVuOyI+PC9kaXY+JysKCQkJICAJJzwvZGl2PicrCgkJCQknPGRpdiBjbGFzcz0iRFRGQ19SaWdodFdyYXBwZXIiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IGxlZnQ6MDsiPicrCgkJCQkJJzxkaXYgY2xhc3M9IkRURkNfUmlnaHRIZWFkV3JhcHBlciIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6MDsgbGVmdDowOyBvdmVyZmxvdzpoaWRkZW47Ij48L2Rpdj4nKwoJCQkJCSc8ZGl2IGNsYXNzPSJEVEZDX1JpZ2h0Qm9keVdyYXBwZXIiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOjA7IGxlZnQ6MDsgb3ZlcmZsb3c6aGlkZGVuOyI+PC9kaXY+JysKCQkJCQknPGRpdiBjbGFzcz0iRFRGQ19SaWdodEZvb3RXcmFwcGVyIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7IHRvcDowOyBsZWZ0OjA7IG92ZXJmbG93OmhpZGRlbjsiPjwvZGl2PicrCgkJCSAgCSc8L2Rpdj4nKwoJCQkgICc8L2Rpdj4nKVswXTsKCQluTGVmdCA9IG5TV3JhcHBlci5jaGlsZE5vZGVzWzBdOwoJCW5SaWdodCA9IG5TV3JhcHBlci5jaGlsZE5vZGVzWzFdOwoKCQl0aGlzLmRvbS5ncmlkLndyYXBwZXIgPSBuU1dyYXBwZXI7CgkJdGhpcy5kb20uZ3JpZC5sZWZ0LndyYXBwZXIgPSBuTGVmdDsKCQl0aGlzLmRvbS5ncmlkLmxlZnQuaGVhZCA9IG5MZWZ0LmNoaWxkTm9kZXNbMF07CgkJdGhpcy5kb20uZ3JpZC5sZWZ0LmJvZHkgPSBuTGVmdC5jaGlsZE5vZGVzWzFdOwoKCQlpZiAoIHRoaXMucy5pUmlnaHRDb2x1bW5zID4gMCApCgkJewoJCQl0aGlzLmRvbS5ncmlkLnJpZ2h0LndyYXBwZXIgPSBuUmlnaHQ7CgkJCXRoaXMuZG9tLmdyaWQucmlnaHQuaGVhZCA9IG5SaWdodC5jaGlsZE5vZGVzWzBdOwoJCQl0aGlzLmRvbS5ncmlkLnJpZ2h0LmJvZHkgPSBuUmlnaHQuY2hpbGROb2Rlc1sxXTsKCQl9CgkJCgkJaWYgKCB0aGlzLnMuZHQublRGb290ICkKCQl7CgkJCXRoaXMuZG9tLmZvb3RlciA9IHRoaXMucy5kdC5uVEZvb3QucGFyZW50Tm9kZTsKCQkJdGhpcy5kb20uZ3JpZC5sZWZ0LmZvb3QgPSBuTGVmdC5jaGlsZE5vZGVzWzJdOwoJCQlpZiAoIHRoaXMucy5pUmlnaHRDb2x1bW5zID4gMCApCgkJCXsKCQkJCXRoaXMuZG9tLmdyaWQucmlnaHQuZm9vdCA9IG5SaWdodC5jaGlsZE5vZGVzWzJdOwoJCQl9CgkJfQoKCQluU1dyYXBwZXIuYXBwZW5kQ2hpbGQoIG5MZWZ0ICk7CgkJdGhpcy5kb20uZ3JpZC5kdC5wYXJlbnROb2RlLmluc2VydEJlZm9yZSggblNXcmFwcGVyLCB0aGlzLmRvbS5ncmlkLmR0ICk7CgkJblNXcmFwcGVyLmFwcGVuZENoaWxkKCB0aGlzLmRvbS5ncmlkLmR0ICk7CgoJCXRoaXMuZG9tLmdyaWQuZHQuc3R5bGUucG9zaXRpb24gPSAiYWJzb2x1dGUiOwoJCXRoaXMuZG9tLmdyaWQuZHQuc3R5bGUudG9wID0gIjBweCI7CgkJdGhpcy5kb20uZ3JpZC5kdC5zdHlsZS5sZWZ0ID0gdGhpcy5zLmlMZWZ0V2lkdGgrInB4IjsKCQl0aGlzLmRvbS5ncmlkLmR0LnN0eWxlLndpZHRoID0gKCQodGhpcy5kb20uZ3JpZC5kdCkud2lkdGgoKS10aGlzLnMuaUxlZnRXaWR0aC10aGlzLnMuaVJpZ2h0V2lkdGgpKyJweCI7Cgl9LAoJCgkKCS8qKgoJICogU3R5bGUgYW5kIHBvc2l0aW9uIHRoZSBncmlkIHVzZWQgZm9yIHRoZSBGaXhlZENvbHVtbnMgbGF5b3V0IGJhc2VkIG9uIHRoZSBpbnN0YW5jZSBzZXR0aW5ncy4KCSAqIFNwZWNpZmljYWxseSBzTGVmdFdpZHRoICgnZml4ZWQnIG9yICdhYnNvbHV0ZScpLCBpTGVmdFdpZHRoIChweCBpZiBmaXhlZCwgJSBpZiBhYnNvbHV0ZSkgYW5kCgkgKiB0aGVyZSAncmlnaHQnIGNvdW50ZXJwYXJ0cy4KCSAqICBAcmV0dXJucyB7dm9pZH0KCSAqICBAcHJpdmF0ZQoJICovCgkiX2ZuR3JpZExheW91dCI6IGZ1bmN0aW9uICgpCgl7CgkJdmFyIG9HcmlkID0gdGhpcy5kb20uZ3JpZDsKCQl2YXIgaVRvdGFsID0gJChvR3JpZC53cmFwcGVyKS53aWR0aCgpOwoJCXZhciBpTGVmdCA9IDAsIGlSaWdodCA9IDAsIGlSZW1haW5kZXIgPSAwOwoKCQlpZiAoIHRoaXMucy5zTGVmdFdpZHRoID09ICdmaXhlZCcgKQoJCXsKCQkJaUxlZnQgPSB0aGlzLnMuaUxlZnRXaWR0aDsKCQl9CgkJZWxzZQoJCXsKCQkJaUxlZnQgPSAoIHRoaXMucy5pTGVmdFdpZHRoIC8gMTAwICkgKiBpVG90YWw7CgkJfQoKCQlpZiAoIHRoaXMucy5zUmlnaHRXaWR0aCA9PSAnZml4ZWQnICkKCQl7CgkJCWlSaWdodCA9IHRoaXMucy5pUmlnaHRXaWR0aDsKCQl9CgkJZWxzZQoJCXsKCQkJaVJpZ2h0ID0gKCB0aGlzLnMuaVJpZ2h0V2lkdGggLyAxMDAgKSAqIGlUb3RhbDsKCQl9CgoJCWlSZW1haW5kZXIgPSBpVG90YWwgLSBpTGVmdCAtIGlSaWdodDsKCgkJb0dyaWQubGVmdC53cmFwcGVyLnN0eWxlLndpZHRoID0gaUxlZnQrInB4IjsKCQlvR3JpZC5kdC5zdHlsZS53aWR0aCA9IGlSZW1haW5kZXIrInB4IjsKCQlvR3JpZC5kdC5zdHlsZS5sZWZ0ID0gaUxlZnQrInB4IjsKCgkJaWYgKCB0aGlzLnMuaVJpZ2h0Q29sdW1ucyA+IDAgKQoJCXsKCQkJb0dyaWQucmlnaHQud3JhcHBlci5zdHlsZS53aWR0aCA9IGlSaWdodCsicHgiOwoJCQlvR3JpZC5yaWdodC53cmFwcGVyLnN0eWxlLmxlZnQgPSAoaVRvdGFsLWlSaWdodCkrInB4IjsKCQl9Cgl9LAoJCgkKCS8qKgoJICogUmVjYWxjdWxhdGUgYW5kIHNldCB0aGUgaGVpZ2h0IG9mIHRoZSBncmlkIGNvbXBvbmVudHMgdXNlZCBmb3IgcG9zaXRpb25pbmcgb2YgdGhlIAoJICogRml4ZWRDb2x1bW4gZGlzcGxheSBncmlkLgoJICogIEByZXR1cm5zIHt2b2lkfQoJICogIEBwcml2YXRlCgkgKi8KCSJfZm5HcmlkSGVpZ2h0IjogZnVuY3Rpb24gKCkKCXsKCQl2YXIgb0dyaWQgPSB0aGlzLmRvbS5ncmlkOwoJCXZhciBpSGVpZ2h0ID0gJCh0aGlzLmRvbS5ncmlkLmR0KS5oZWlnaHQoKTsKCgkJb0dyaWQud3JhcHBlci5zdHlsZS5oZWlnaHQgPSBpSGVpZ2h0KyJweCI7CgkJb0dyaWQubGVmdC5ib2R5LnN0eWxlLmhlaWdodCA9ICQodGhpcy5kb20uc2Nyb2xsZXIpLmhlaWdodCgpKyJweCI7CgkJb0dyaWQubGVmdC53cmFwcGVyLnN0eWxlLmhlaWdodCA9IGlIZWlnaHQrInB4IjsKCQkKCQlpZiAoIHRoaXMucy5pUmlnaHRDb2x1bW5zID4gMCApCgkJewoJCQlvR3JpZC5yaWdodC53cmFwcGVyLnN0eWxlLmhlaWdodCA9IGlIZWlnaHQrInB4IjsKCQkJb0dyaWQucmlnaHQuYm9keS5zdHlsZS5oZWlnaHQgPSAkKHRoaXMuZG9tLnNjcm9sbGVyKS5oZWlnaHQoKSsicHgiOwoJCX0KCX0sCgkKCQoJLyoqCgkgKiBDbG9uZSBhbmQgcG9zaXRpb24gdGhlIGZpeGVkIGNvbHVtbnMKCSAqICBAcmV0dXJucyB7dm9pZH0KCSAqICBAcGFyYW0gICB7Qm9vbGVhbn0gYkFsbCBJbmRpY2F0ZSBpZiB0aGUgaGVhZGVyIGFuZCBmb290ZXIgc2hvdWxkIGJlIHVwZGF0ZWQgYXMgd2VsbCAodHJ1ZSkKCSAqICBAcHJpdmF0ZQoJICovCgkiX2ZuRHJhdyI6IGZ1bmN0aW9uICggYkFsbCApCgl7CgkJdGhpcy5fZm5DbG9uZUxlZnQoIGJBbGwgKTsKCQl0aGlzLl9mbkNsb25lUmlnaHQoIGJBbGwgKTsKCgkJLyogRHJhdyBjYWxsYmFjayBmdW5jdGlvbiAqLwoJCWlmICggdGhpcy5zLmZuRHJhd0NhbGxiYWNrICE9PSBudWxsICkKCQl7CgkJCXRoaXMucy5mbkRyYXdDYWxsYmFjay5jYWxsKCB0aGlzLCB0aGlzLmRvbS5jbG9uZS5sZWZ0LCB0aGlzLmRvbS5jbG9uZS5yaWdodCApOwoJCX0KCgkJLyogRXZlbnQgdHJpZ2dlcmluZyAqLwoJCSQodGhpcykudHJpZ2dlciggJ2RyYXcnLCB7IAoJCQkibGVmdENsb25lIjogdGhpcy5kb20uY2xvbmUubGVmdCwKCQkJInJpZ2h0Q2xvbmUiOiB0aGlzLmRvbS5jbG9uZS5yaWdodAoJCX0gKTsKCX0sCgkKCQoJLyoqCgkgKiBDbG9uZSB0aGUgcmlnaHQgY29sdW1ucwoJICogIEByZXR1cm5zIHt2b2lkfQoJICogIEBwYXJhbSAgIHtCb29sZWFufSBiQWxsIEluZGljYXRlIGlmIHRoZSBoZWFkZXIgYW5kIGZvb3RlciBzaG91bGQgYmUgdXBkYXRlZCBhcyB3ZWxsICh0cnVlKQoJICogIEBwcml2YXRlCgkgKi8KCSJfZm5DbG9uZVJpZ2h0IjogZnVuY3Rpb24gKCBiQWxsICkKCXsKCQlpZiAoIHRoaXMucy5pUmlnaHRDb2x1bW5zIDw9IDAgKQoJCXsKCQkJcmV0dXJuOwoJCX0KCQkKCQl2YXIgdGhhdCA9IHRoaXMsCgkJCWksIGpxLAoJCQlhaUNvbHVtbnMgPSBbXTsKCgkJZm9yICggaT10aGlzLnMuaVRhYmxlQ29sdW1ucy10aGlzLnMuaVJpZ2h0Q29sdW1ucyA7IGk8dGhpcy5zLmlUYWJsZUNvbHVtbnMgOyBpKysgKQoJCXsKCQkJYWlDb2x1bW5zLnB1c2goIGkgKTsKCQl9CgoJCXRoaXMuX2ZuQ2xvbmUoIHRoaXMuZG9tLmNsb25lLnJpZ2h0LCB0aGlzLmRvbS5ncmlkLnJpZ2h0LCBhaUNvbHVtbnMsIGJBbGwgKTsKCX0sCgkKCQoJLyoqCgkgKiBDbG9uZSB0aGUgbGVmdCBjb2x1bW5zCgkgKiAgQHJldHVybnMge3ZvaWR9CgkgKiAgQHBhcmFtICAge0Jvb2xlYW59IGJBbGwgSW5kaWNhdGUgaWYgdGhlIGhlYWRlciBhbmQgZm9vdGVyIHNob3VsZCBiZSB1cGRhdGVkIGFzIHdlbGwgKHRydWUpCgkgKiAgQHByaXZhdGUKCSAqLwoJIl9mbkNsb25lTGVmdCI6IGZ1bmN0aW9uICggYkFsbCApCgl7CgkJaWYgKCB0aGlzLnMuaUxlZnRDb2x1bW5zIDw9IDAgKQoJCXsKCQkJcmV0dXJuOwoJCX0KCQkKCQl2YXIgdGhhdCA9IHRoaXMsCgkJCWksIGpxLAoJCQlhaUNvbHVtbnMgPSBbXTsKCQkKCQlmb3IgKCBpPTAgOyBpPHRoaXMucy5pTGVmdENvbHVtbnMgOyBpKysgKQoJCXsKCQkJYWlDb2x1bW5zLnB1c2goIGkgKTsKCQl9CgoJCXRoaXMuX2ZuQ2xvbmUoIHRoaXMuZG9tLmNsb25lLmxlZnQsIHRoaXMuZG9tLmdyaWQubGVmdCwgYWlDb2x1bW5zLCBiQWxsICk7Cgl9LAoJCgkKCS8qKgoJICogTWFrZSBhIGNvcHkgb2YgdGhlIGxheW91dCBvYmplY3QgZm9yIGEgaGVhZGVyIG9yIGZvb3RlciBlbGVtZW50IGZyb20gRGF0YVRhYmxlcy4gTm90ZSB0aGF0CgkgKiB0aGlzIG1ldGhvZCB3aWxsIGNsb25lIHRoZSBub2RlcyBpbiB0aGUgbGF5b3V0IG9iamVjdC4KCSAqICBAcmV0dXJucyB7QXJyYXl9IENvcHkgb2YgdGhlIGxheW91dCBhcnJheQoJICogIEBwYXJhbSAgIHtPYmplY3R9IGFvT3JpZ2luYWwgTGF5b3V0IGFycmF5IGZyb20gRGF0YVRhYmxlcyAoYW9IZWFkZXIgb3IgYW9Gb290ZXIpCgkgKiAgQHBhcmFtICAge09iamVjdH0gYWlDb2x1bW5zIENvbHVtbnMgdG8gY29weQoJICogIEBwcml2YXRlCgkgKi8KCSJfZm5Db3B5TGF5b3V0IjogZnVuY3Rpb24gKCBhb09yaWdpbmFsLCBhaUNvbHVtbnMgKQoJewoJCXZhciBhUmV0dXJuID0gW107CgkJdmFyIGFDbG9uZXMgPSBbXTsKCQl2YXIgYUNsb25lZCA9IFtdOwoKCQlmb3IgKCB2YXIgaT0wLCBpTGVuPWFvT3JpZ2luYWwubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQl7CgkJCXZhciBhUm93ID0gW107CgkJCWFSb3cublRyID0gJChhb09yaWdpbmFsW2ldLm5UcikuY2xvbmUodHJ1ZSlbMF07CgoJCQlmb3IgKCB2YXIgaj0wLCBqTGVuPXRoaXMucy5pVGFibGVDb2x1bW5zIDsgajxqTGVuIDsgaisrICkKCQkJewoJCQkJaWYgKCAkLmluQXJyYXkoIGosIGFpQ29sdW1ucyApID09PSAtMSApCgkJCQl7CgkJCQkJY29udGludWU7CgkJCQl9CgoJCQkJdmFyIGlDbG9uZWQgPSAkLmluQXJyYXkoIGFvT3JpZ2luYWxbaV1bal0uY2VsbCwgYUNsb25lZCApOwoJCQkJaWYgKCBpQ2xvbmVkID09PSAtMSApCgkJCQl7CgkJCQkJdmFyIG5DbG9uZSA9ICQoYW9PcmlnaW5hbFtpXVtqXS5jZWxsKS5jbG9uZSh0cnVlKVswXTsKCQkJCQlhQ2xvbmVzLnB1c2goIG5DbG9uZSApOwoJCQkJCWFDbG9uZWQucHVzaCggYW9PcmlnaW5hbFtpXVtqXS5jZWxsICk7CgoJCQkJCWFSb3cucHVzaCggewoJCQkJCQkiY2VsbCI6IG5DbG9uZSwKCQkJCQkJInVuaXF1ZSI6IGFvT3JpZ2luYWxbaV1bal0udW5pcXVlCgkJCQkJfSApOwoJCQkJfQoJCQkJZWxzZQoJCQkJewoJCQkJCWFSb3cucHVzaCggewoJCQkJCQkiY2VsbCI6IGFDbG9uZXNbIGlDbG9uZWQgXSwKCQkJCQkJInVuaXF1ZSI6IGFvT3JpZ2luYWxbaV1bal0udW5pcXVlCgkJCQkJfSApOwoJCQkJfQoJCQl9CgkJCQoJCQlhUmV0dXJuLnB1c2goIGFSb3cgKTsKCQl9CgoJCXJldHVybiBhUmV0dXJuOwoJfSwKCQoJCgkvKioKCSAqIENsb25lIHRoZSBEYXRhVGFibGUgbm9kZXMgYW5kIHBsYWNlIHRoZW0gaW4gdGhlIERPTSAoc2l6ZWQgY29ycmVjdGx5KQoJICogIEByZXR1cm5zIHt2b2lkfQoJICogIEBwYXJhbSAgIHtPYmplY3R9IG9DbG9uZSBPYmplY3QgY29udGFpbmluZyB0aGUgaGVhZGVyLCBmb290ZXIgYW5kIGJvZHkgY2xvbmVkIERPTSBlbGVtZW50cwoJICogIEBwYXJhbSAgIHtPYmplY3R9IG9HcmlkIEdyaWQgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGRpc3BsYXkgZ3JpZCBlbGVtZW50cyBmb3IgdGhlIGNsb25lZCAKCSAqICAgICAgICAgICAgICAgICAgICBjb2x1bW4gKGxlZnQgb3IgcmlnaHQpCgkgKiAgQHBhcmFtICAge0FycmF5fSBhaUNvbHVtbnMgQ29sdW1uIGluZGV4ZXMgd2hpY2ggc2hvdWxkIGJlIG9wZXJhdGVkIG9uIGZyb20gdGhlIERhdGFUYWJsZQoJICogIEBwYXJhbSAgIHtCb29sZWFufSBiQWxsIEluZGljYXRlIGlmIHRoZSBoZWFkZXIgYW5kIGZvb3RlciBzaG91bGQgYmUgdXBkYXRlZCBhcyB3ZWxsICh0cnVlKQoJICogIEBwcml2YXRlCgkgKi8KCSJfZm5DbG9uZSI6IGZ1bmN0aW9uICggb0Nsb25lLCBvR3JpZCwgYWlDb2x1bW5zLCBiQWxsICkKCXsKCQl2YXIgdGhhdCA9IHRoaXMsCgkJCWksIGlMZW4sIGosIGpMZW4sIGpxLCBuVGFyZ2V0LCBpQ29sdW1uLCBuQ2xvbmUsIGlJbmRleDsKCgkJLyogCgkJICogSGVhZGVyCgkJICovCgkJaWYgKCBiQWxsICkKCQl7CgkJCWlmICggb0Nsb25lLmhlYWRlciAhPT0gbnVsbCApCgkJCXsKCQkJCW9DbG9uZS5oZWFkZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCggb0Nsb25lLmhlYWRlciApOwoJCQl9CgkJCW9DbG9uZS5oZWFkZXIgPSAkKHRoaXMuZG9tLmhlYWRlcikuY2xvbmUodHJ1ZSlbMF07CgkJCW9DbG9uZS5oZWFkZXIuY2xhc3NOYW1lICs9ICIgRFRGQ19DbG9uZWQiOwoJCQlvQ2xvbmUuaGVhZGVyLnN0eWxlLndpZHRoID0gIjEwMCUiOwoJCQlvR3JpZC5oZWFkLmFwcGVuZENoaWxkKCBvQ2xvbmUuaGVhZGVyICk7CgkJCQoJCQkvKiBDb3B5IHRoZSBEYXRhVGFibGVzIGxheW91dCBjYWNoZSBmb3IgdGhlIGhlYWRlciBmb3Igb3VyIGZsb2F0aW5nIGNvbHVtbiAqLwoJCQl2YXIgYW9DbG9uZUxheW91dCA9IHRoaXMuX2ZuQ29weUxheW91dCggdGhpcy5zLmR0LmFvSGVhZGVyLCBhaUNvbHVtbnMgKTsKCQkJdmFyIGpxQ2xvbmVUaGVhZCA9ICQoJz50aGVhZCcsIG9DbG9uZS5oZWFkZXIpOwoJCQlqcUNsb25lVGhlYWQuZW1wdHkoKTsKCgkJCS8qIEFkZCB0aGUgY3JlYXRlZCBjbG9uZWQgVFIgZWxlbWVudHMgdG8gdGhlIHRhYmxlICovCgkJCWZvciAoIGk9MCwgaUxlbj1hb0Nsb25lTGF5b3V0Lmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJCXsKCQkJCWpxQ2xvbmVUaGVhZFswXS5hcHBlbmRDaGlsZCggYW9DbG9uZUxheW91dFtpXS5uVHIgKTsKCQkJfQoKCQkJLyogVXNlIHRoZSBoYW5keSBfZm5EcmF3SGVhZCBmdW5jdGlvbiBpbiBEYXRhVGFibGVzIHRvIGRvIHRoZSByb3dzcGFuL2NvbHNwYW4KCQkJICogY2FsY3VsYXRpb25zIGZvciB1cwoJCQkgKi8KCQkJdGhpcy5zLmR0Lm9BcGkuX2ZuRHJhd0hlYWQoIHRoaXMucy5kdCwgYW9DbG9uZUxheW91dCwgdHJ1ZSApOwoJCX0KCQllbHNlCgkJewoJCQkvKiBUbyBlbnN1cmUgdGhhdCB3ZSBjb3B5IGNlbGwgY2xhc3NlcyBleGFjdGx5LCByZWdhcmRsZXNzIG9mIGNvbHNwYW4sIG11bHRpcGxlIHJvd3MKCQkJICogZXRjLCB3ZSBtYWtlIGEgY29weSBvZiB0aGUgaGVhZGVyIGZyb20gdGhlIERhdGFUYWJsZSBhZ2FpbiwgYnV0IGRvbid0IGluc2VydCB0aGUgCgkJCSAqIGNsb25lZCBjZWxscywganVzdCBjb3B5IHRoZSBjbGFzc2VzIGFjcm9zcy4gVG8gZ2V0IHRoZSBtYXRjaGluZyBsYXlvdXQgZm9yIHRoZQoJCQkgKiBmaXhlZCBjb21wb25lbnQsIHdlIHVzZSB0aGUgRGF0YVRhYmxlcyBfZm5EZXRlY3RIZWFkZXIgbWV0aG9kLCBhbGxvd2luZyAxOjEgbWFwcGluZwoJCQkgKi8KCQkJdmFyIGFvQ2xvbmVMYXlvdXQgPSB0aGlzLl9mbkNvcHlMYXlvdXQoIHRoaXMucy5kdC5hb0hlYWRlciwgYWlDb2x1bW5zICk7CgkJCXZhciBhb0N1cnJIZWFkZXI9W107CgoJCQl0aGlzLnMuZHQub0FwaS5fZm5EZXRlY3RIZWFkZXIoIGFvQ3VyckhlYWRlciwgJCgnPnRoZWFkJywgb0Nsb25lLmhlYWRlcilbMF0gKTsKCgkJCWZvciAoIGk9MCwgaUxlbj1hb0Nsb25lTGF5b3V0Lmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJCXsKCQkJCWZvciAoIGo9MCwgakxlbj1hb0Nsb25lTGF5b3V0W2ldLmxlbmd0aCA7IGo8akxlbiA7IGorKyApCgkJCQl7CgkJCQkJYW9DdXJySGVhZGVyW2ldW2pdLmNlbGwuY2xhc3NOYW1lID0gYW9DbG9uZUxheW91dFtpXVtqXS5jZWxsLmNsYXNzTmFtZTsKCgkJCQkJLy8gSWYgalF1ZXJ5IFVJIHRoZW1pbmcgaXMgdXNlZCB3ZSBuZWVkIHRvIGNvcHkgdGhvc2UgZWxlbWVudHMgYXMgd2VsbAoJCQkJCSQoJ3NwYW4uRGF0YVRhYmxlc19zb3J0X2ljb24nLCBhb0N1cnJIZWFkZXJbaV1bal0uY2VsbCkuZWFjaCggZnVuY3Rpb24gKCkgewoJCQkJCQl0aGlzLmNsYXNzTmFtZSA9ICQoJ3NwYW4uRGF0YVRhYmxlc19zb3J0X2ljb24nLCBhb0Nsb25lTGF5b3V0W2ldW2pdLmNlbGwpWzBdLmNsYXNzTmFtZTsKCQkJCQl9ICk7CgkJCQl9CgkJCX0KCQl9CgkJdGhpcy5fZm5FcXVhbGlzZUhlaWdodHMoICd0aGVhZCcsIHRoaXMuZG9tLmhlYWRlciwgb0Nsb25lLmhlYWRlciApOwoJCQoJCS8qIAoJCSAqIEJvZHkKCQkgKi8KCQlpZiAoIHRoaXMucy5zSGVpZ2h0TWF0Y2ggPT0gJ2F1dG8nICkKCQl7CgkJCS8qIFJlbW92ZSBhbnkgaGVpZ2h0cyB3aGljaCBoYXZlIGJlZW4gYXBwbGllZCBhbHJlYWR5IGFuZCBsZXQgdGhlIGJyb3dzZXIgZmlndXJlIGl0IG91dCAqLwoJCQkkKCc+dGJvZHk+dHInLCB0aGF0LmRvbS5ib2R5KS5jc3MoJ2hlaWdodCcsICdhdXRvJyk7CgkJfQoJCQoJCWlmICggb0Nsb25lLmJvZHkgIT09IG51bGwgKQoJCXsKCQkJb0Nsb25lLmJvZHkucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCggb0Nsb25lLmJvZHkgKTsKCQkJb0Nsb25lLmJvZHkgPSBudWxsOwoJCX0KCQkKCQlvQ2xvbmUuYm9keSA9ICQodGhpcy5kb20uYm9keSkuY2xvbmUodHJ1ZSlbMF07CgkJb0Nsb25lLmJvZHkuY2xhc3NOYW1lICs9ICIgRFRGQ19DbG9uZWQiOwoJCW9DbG9uZS5ib2R5LnN0eWxlLnBhZGRpbmdCb3R0b20gPSB0aGlzLnMuZHQub1Njcm9sbC5pQmFyV2lkdGgrInB4IjsKCQlvQ2xvbmUuYm9keS5zdHlsZS5tYXJnaW5Cb3R0b20gPSAodGhpcy5zLmR0Lm9TY3JvbGwuaUJhcldpZHRoKjIpKyJweCI7IC8qIEZvciBJRSAqLwoJCWlmICggb0Nsb25lLmJvZHkuZ2V0QXR0cmlidXRlKCdpZCcpICE9PSBudWxsICkKCQl7CgkJCW9DbG9uZS5ib2R5LnJlbW92ZUF0dHJpYnV0ZSgnaWQnKTsKCQl9CgkJCgkJJCgnPnRoZWFkPnRyJywgb0Nsb25lLmJvZHkpLmVtcHR5KCk7CgkJJCgnPnRmb290Jywgb0Nsb25lLmJvZHkpLnJlbW92ZSgpOwoJCQoJCXZhciBuQm9keSA9ICQoJ3Rib2R5Jywgb0Nsb25lLmJvZHkpWzBdOwoJCSQobkJvZHkpLmVtcHR5KCk7CgkJaWYgKCB0aGlzLnMuZHQuYWlEaXNwbGF5Lmxlbmd0aCA+IDAgKQoJCXsKCQkJLyogQ29weSB0aGUgRGF0YVRhYmxlcycgaGVhZGVyIGVsZW1lbnRzIHRvIGZvcmNlIHRoZSBjb2x1bW4gd2lkdGggaW4gZXhhY3RseSB0aGUKCQkJICogc2FtZSB3YXkgdGhhdCBEYXRhVGFibGVzIGRvZXMgaXQgLSBoYXZlIHRoZSBoZWFkZXIgZWxlbWVudCwgYXBwbHkgdGhlIHdpZHRoIGFuZAoJCQkgKiBjb2xhcHNlIGl0IGRvd24KCQkJICovCgkJCXZhciBuSW5uZXJUaGVhZCA9ICQoJz50aGVhZD50cicsIG9DbG9uZS5ib2R5KVswXTsKCQkJZm9yICggaUluZGV4PTAgOyBpSW5kZXg8YWlDb2x1bW5zLmxlbmd0aCA7IGlJbmRleCsrICkKCQkJewoJCQkJaUNvbHVtbiA9IGFpQ29sdW1uc1tpSW5kZXhdOwoKCQkJCW5DbG9uZSA9IHRoaXMucy5kdC5hb0NvbHVtbnNbaUNvbHVtbl0ublRoOwoJCQkJbkNsb25lLmlubmVySFRNTCA9ICIiOwoKCQkJCW9TdHlsZSA9IG5DbG9uZS5zdHlsZTsKCQkJCW9TdHlsZS5wYWRkaW5nVG9wID0gIjAiOwoJCQkJb1N0eWxlLnBhZGRpbmdCb3R0b20gPSAiMCI7CgkJCQlvU3R5bGUuYm9yZGVyVG9wV2lkdGggPSAiMCI7CgkJCQlvU3R5bGUuYm9yZGVyQm90dG9tV2lkdGggPSAiMCI7CgkJCQlvU3R5bGUuaGVpZ2h0ID0gMDsKCQkJCW9TdHlsZS53aWR0aCA9IHRoYXQucy5haVdpZHRoc1tpQ29sdW1uXSsicHgiOwoKCQkJCW5Jbm5lclRoZWFkLmFwcGVuZENoaWxkKCBuQ2xvbmUgKTsKCQkJfQoKCQkJLyogQWRkIGluIHRoZSB0Ym9keSBlbGVtZW50cywgY2xvbmluZyBmb3JtIHRoZSBtYXN0ZXIgdGFibGUgKi8KCQkJJCgnPnRib2R5PnRyJywgdGhhdC5kb20uYm9keSkuZWFjaCggZnVuY3Rpb24gKHopIHsKCQkJCXZhciBuID0gdGhpcy5jbG9uZU5vZGUoZmFsc2UpOwoJCQkJdmFyIGkgPSB0aGF0LnMuZHQub0ZlYXR1cmVzLmJTZXJ2ZXJTaWRlPT09ZmFsc2UgPwoJCQkJCXRoYXQucy5kdC5haURpc3BsYXlbIHRoYXQucy5kdC5faURpc3BsYXlTdGFydCt6IF0gOiB6OwoJCQkJZm9yICggaUluZGV4PTAgOyBpSW5kZXg8YWlDb2x1bW5zLmxlbmd0aCA7IGlJbmRleCsrICkKCQkJCXsKCQkJCQlpQ29sdW1uID0gYWlDb2x1bW5zW2lJbmRleF07CgkJCQkJaWYgKCB0eXBlb2YgdGhhdC5zLmR0LmFvRGF0YVtpXS5fYW5IaWRkZW5baUNvbHVtbl0gIT0gJ3VuZGVmaW5lZCcgKQoJCQkJCXsKCQkJCQkJbkNsb25lID0gJCh0aGF0LnMuZHQuYW9EYXRhW2ldLl9hbkhpZGRlbltpQ29sdW1uXSkuY2xvbmUodHJ1ZSlbMF07CgkJCQkJCW4uYXBwZW5kQ2hpbGQoIG5DbG9uZSApOwoJCQkJCX0KCQkJCX0KCQkJCW5Cb2R5LmFwcGVuZENoaWxkKCBuICk7CgkJCX0gKTsKCQl9CgkJZWxzZQoJCXsKCQkJJCgnPnRib2R5PnRyJywgdGhhdC5kb20uYm9keSkuZWFjaCggZnVuY3Rpb24gKHopIHsKCQkJCW5DbG9uZSA9IHRoaXMuY2xvbmVOb2RlKHRydWUpOwoJCQkJbkNsb25lLmNsYXNzTmFtZSArPSAnIERURkNfTm9EYXRhJzsKCQkJCSQoJ3RkJywgbkNsb25lKS5odG1sKCcnKTsKCQkJCW5Cb2R5LmFwcGVuZENoaWxkKCBuQ2xvbmUgKTsKCQkJfSApOwoJCX0KCQkKCQlvQ2xvbmUuYm9keS5zdHlsZS53aWR0aCA9ICIxMDAlIjsKCQlvR3JpZC5ib2R5LmFwcGVuZENoaWxkKCBvQ2xvbmUuYm9keSApOwoKCQl0aGlzLl9mbkVxdWFsaXNlSGVpZ2h0cyggJ3Rib2R5JywgdGhhdC5kb20uYm9keSwgb0Nsb25lLmJvZHkgKTsKCQkKCQkvKgoJCSAqIEZvb3RlcgoJCSAqLwoJCWlmICggdGhpcy5zLmR0Lm5URm9vdCAhPT0gbnVsbCApCgkJewoJCQlpZiAoIGJBbGwgKQoJCQl7CgkJCQlpZiAoIG9DbG9uZS5mb290ZXIgIT09IG51bGwgKQoJCQkJewoJCQkJCW9DbG9uZS5mb290ZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCggb0Nsb25lLmZvb3RlciApOwoJCQkJfQoJCQkJb0Nsb25lLmZvb3RlciA9ICQodGhpcy5kb20uZm9vdGVyKS5jbG9uZSh0cnVlKVswXTsKCQkJCW9DbG9uZS5mb290ZXIuY2xhc3NOYW1lICs9ICIgRFRGQ19DbG9uZWQiOwoJCQkJb0Nsb25lLmZvb3Rlci5zdHlsZS53aWR0aCA9ICIxMDAlIjsKCQkJCW9HcmlkLmZvb3QuYXBwZW5kQ2hpbGQoIG9DbG9uZS5mb290ZXIgKTsKCgkJCQkvKiBDb3B5IHRoZSBmb290ZXIganVzdCBsaWtlIHdlIGRvIGZvciB0aGUgaGVhZGVyICovCgkJCQl2YXIgYW9DbG9uZUxheW91dCA9IHRoaXMuX2ZuQ29weUxheW91dCggdGhpcy5zLmR0LmFvRm9vdGVyLCBhaUNvbHVtbnMgKTsKCQkJCXZhciBqcUNsb25lVGZvb3QgPSAkKCc+dGZvb3QnLCBvQ2xvbmUuZm9vdGVyKTsKCQkJCWpxQ2xvbmVUZm9vdC5lbXB0eSgpOwoJCgkJCQlmb3IgKCBpPTAsIGlMZW49YW9DbG9uZUxheW91dC5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCQkJewoJCQkJCWpxQ2xvbmVUZm9vdFswXS5hcHBlbmRDaGlsZCggYW9DbG9uZUxheW91dFtpXS5uVHIgKTsKCQkJCX0KCQkJCXRoaXMucy5kdC5vQXBpLl9mbkRyYXdIZWFkKCB0aGlzLnMuZHQsIGFvQ2xvbmVMYXlvdXQsIHRydWUgKTsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCXZhciBhb0Nsb25lTGF5b3V0ID0gdGhpcy5fZm5Db3B5TGF5b3V0KCB0aGlzLnMuZHQuYW9Gb290ZXIsIGFpQ29sdW1ucyApOwoJCQkJdmFyIGFvQ3VyckZvb3Rlcj1bXTsKCgkJCQl0aGlzLnMuZHQub0FwaS5fZm5EZXRlY3RIZWFkZXIoIGFvQ3VyckZvb3RlciwgJCgnPnRmb290Jywgb0Nsb25lLmZvb3RlcilbMF0gKTsKCgkJCQlmb3IgKCBpPTAsIGlMZW49YW9DbG9uZUxheW91dC5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCQkJewoJCQkJCWZvciAoIGo9MCwgakxlbj1hb0Nsb25lTGF5b3V0W2ldLmxlbmd0aCA7IGo8akxlbiA7IGorKyApCgkJCQkJewoJCQkJCQlhb0N1cnJGb290ZXJbaV1bal0uY2VsbC5jbGFzc05hbWUgPSBhb0Nsb25lTGF5b3V0W2ldW2pdLmNlbGwuY2xhc3NOYW1lOwoJCQkJCX0KCQkJCX0KCQkJfQoJCQl0aGlzLl9mbkVxdWFsaXNlSGVpZ2h0cyggJ3Rmb290JywgdGhpcy5kb20uZm9vdGVyLCBvQ2xvbmUuZm9vdGVyICk7CgkJfQoKCQkvKiBFcXVhbGlzZSB0aGUgY29sdW1uIHdpZHRocyBiZXR3ZWVuIHRoZSBoZWFkZXIgZm9vdGVyIGFuZCBib2R5IC0gYm9keSBnZXQncyBwcmlvcml0eSAqLwoJCXZhciBhblVuaXF1ZSA9IHRoaXMucy5kdC5vQXBpLl9mbkdldFVuaXF1ZVRocyggdGhpcy5zLmR0LCAkKCc+dGhlYWQnLCBvQ2xvbmUuaGVhZGVyKVswXSApOwoJCSQoYW5VbmlxdWUpLmVhY2goIGZ1bmN0aW9uIChpKSB7CgkJCWlDb2x1bW4gPSBhaUNvbHVtbnNbaV07CgkJCXRoaXMuc3R5bGUud2lkdGggPSB0aGF0LnMuYWlXaWR0aHNbaUNvbHVtbl0rInB4IjsKCQl9ICk7CgoJCWlmICggdGhhdC5zLmR0Lm5URm9vdCAhPT0gbnVsbCApCgkJewoJCQlhblVuaXF1ZSA9IHRoaXMucy5kdC5vQXBpLl9mbkdldFVuaXF1ZVRocyggdGhpcy5zLmR0LCAkKCc+dGZvb3QnLCBvQ2xvbmUuZm9vdGVyKVswXSApOwoJCQkkKGFuVW5pcXVlKS5lYWNoKCBmdW5jdGlvbiAoaSkgewoJCQkJaUNvbHVtbiA9IGFpQ29sdW1uc1tpXTsKCQkJCXRoaXMuc3R5bGUud2lkdGggPSB0aGF0LnMuYWlXaWR0aHNbaUNvbHVtbl0rInB4IjsKCQkJfSApOwoJCX0KCX0sCgkKCQoJLyoqCgkgKiBGcm9tIGEgZ2l2ZW4gdGFibGUgbm9kZSAoVEhFQUQgZXRjKSwgZ2V0IGEgbGlzdCBvZiBUUiBkaXJlY3QgY2hpbGQgZWxlbWVudHMKCSAqICBAcGFyYW0gICB7Tm9kZX0gbkluIFRhYmxlIGVsZW1lbnQgdG8gc2VhcmNoIGZvciBUUiBlbGVtZW50cyAoVEhFQUQsIFRCT0RZIG9yIFRGT09UIGVsZW1lbnQpCgkgKiAgQHJldHVybnMge0FycmF5fSBMaXN0IG9mIFRSIGVsZW1lbnRzIGZvdW5kCgkgKiAgQHByaXZhdGUKCSAqLwoJIl9mbkdldFRyTm9kZXMiOiBmdW5jdGlvbiAoIG5JbiApCgl7CgkJdmFyIGFPdXQgPSBbXTsKCQlmb3IgKCB2YXIgaT0wLCBpTGVuPW5Jbi5jaGlsZE5vZGVzLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJewoJCQlpZiAoIG5Jbi5jaGlsZE5vZGVzW2ldLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCkgPT0gIlRSIiApCgkJCXsKCQkJCWFPdXQucHVzaCggbkluLmNoaWxkTm9kZXNbaV0gKTsKCQkJfQoJCX0KCQlyZXR1cm4gYU91dDsKCX0sCgoJCgkvKioKCSAqIEVxdWFsaXNlIHRoZSBoZWlnaHRzIG9mIHRoZSByb3dzIGluIGEgZ2l2ZW4gdGFibGUgbm9kZSBpbiBhIGNyb3NzIGJyb3dzZXIgd2F5CgkgKiAgQHJldHVybnMge3ZvaWR9CgkgKiAgQHBhcmFtICAge1N0cmluZ30gbm9kZU5hbWUgTm9kZSB0eXBlIC0gdGhlYWQsIHRib2R5IG9yIHRmb290CgkgKiAgQHBhcmFtICAge05vZGV9IG9yaWdpbmFsIE9yaWdpbmFsIG5vZGUgdG8gdGFrZSB0aGUgaGVpZ2h0cyBmcm9tCgkgKiAgQHBhcmFtICAge05vZGV9IGNsb25lIENvcHkgdGhlIGhlaWdodHMgdG8KCSAqICBAcHJpdmF0ZQoJICovCgkiX2ZuRXF1YWxpc2VIZWlnaHRzIjogZnVuY3Rpb24gKCBub2RlTmFtZSwgb3JpZ2luYWwsIGNsb25lICkKCXsKCQlpZiAoIHRoaXMucy5zSGVpZ2h0TWF0Y2ggPT0gJ25vbmUnICYmIG5vZGVOYW1lICE9PSAndGhlYWQnICYmIG5vZGVOYW1lICE9PSAndGZvb3QnICkKCQl7CgkJCXJldHVybjsKCQl9CgkJCgkJdmFyIHRoYXQgPSB0aGlzLAoJCQlpLCBpTGVuLCBpSGVpZ2h0LCBpSGVpZ2h0MiwgaUhlaWdodE9yaWdpbmFsLCBpSGVpZ2h0Q2xvbmUsCgkJCXJvb3RPcmlnaW5hbCA9IG9yaWdpbmFsLmdldEVsZW1lbnRzQnlUYWdOYW1lKG5vZGVOYW1lKVswXSwKCQkJcm9vdENsb25lICAgID0gY2xvbmUuZ2V0RWxlbWVudHNCeVRhZ05hbWUobm9kZU5hbWUpWzBdLAoJCQlqcUJveEhhY2sgICAgPSAkKCc+Jytub2RlTmFtZSsnPnRyOmVxKDApJywgb3JpZ2luYWwpLmNoaWxkcmVuKCc6Zmlyc3QnKSwKCQkJaUJveEhhY2sgICAgID0ganFCb3hIYWNrLm91dGVySGVpZ2h0KCkgLSBqcUJveEhhY2suaGVpZ2h0KCksCgkJCWFuT3JpZ2luYWwgICA9IHRoaXMuX2ZuR2V0VHJOb2Rlcyggcm9vdE9yaWdpbmFsICksCgkJIAlhbkNsb25lICAgICAgPSB0aGlzLl9mbkdldFRyTm9kZXMoIHJvb3RDbG9uZSApOwoJCQoJCWZvciAoIGk9MCwgaUxlbj1hbkNsb25lLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJewoJCQlpZiAoIHRoaXMucy5zSGVpZ2h0TWF0Y2ggPT0gJ3NlbWlhdXRvJyAmJiB0eXBlb2YgYW5PcmlnaW5hbFtpXS5fRFRUQ19pSGVpZ2h0ICE9ICd1bmRlZmluZWQnICYmIAoJCQkJYW5PcmlnaW5hbFtpXS5fRFRUQ19pSGVpZ2h0ICE9PSBudWxsICkKCQkJewoJCQkJLyogT2RkbHkgZW5vdWdoLCBJRSAvIENocm9tZSBzZWVtIG5vdCB0byBjb3B5IHRoZSBzdHlsZSBoZWlnaHQgLSBNb3ppbGxhIGFuZCBPcGVyYSBrZWVwIGl0ICovCgkJCQlpZiAoICQuYnJvd3Nlci5tc2llICkKCQkJCXsKCQkJCQkkKGFuQ2xvbmVbaV0pLmNoaWxkcmVuKCkuaGVpZ2h0KCBhbk9yaWdpbmFsW2ldLl9EVFRDX2lIZWlnaHQtaUJveEhhY2sgKTsKCQkJCX0KCQkJCWNvbnRpbnVlOwoJCQl9CgkJCQoJCQlpSGVpZ2h0T3JpZ2luYWwgPSBhbk9yaWdpbmFsW2ldLm9mZnNldEhlaWdodDsKCQkJaUhlaWdodENsb25lID0gYW5DbG9uZVtpXS5vZmZzZXRIZWlnaHQ7CgkJCWlIZWlnaHQgPSBpSGVpZ2h0Q2xvbmUgPiBpSGVpZ2h0T3JpZ2luYWwgPyBpSGVpZ2h0Q2xvbmUgOiBpSGVpZ2h0T3JpZ2luYWw7CgkJCQoJCQlpZiAoIHRoaXMucy5zSGVpZ2h0TWF0Y2ggPT0gJ3NlbWlhdXRvJyApCgkJCXsKCQkJCWFuT3JpZ2luYWxbaV0uX0RUVENfaUhlaWdodCA9IGlIZWlnaHQ7CgkJCX0KCQkJCgkJCS8qIENhbiB3ZSB1c2Ugc29tZSBraW5kIG9mIG9iamVjdCBkZXRlY3Rpb24gaGVyZT8hIFRoaXMgaXMgdmVyeSBuYXN0eSAtIGRhbW4gYnJvd3NlcnMgKi8KCQkJaWYgKCAkLmJyb3dzZXIubXNpZSAmJiAkLmJyb3dzZXIudmVyc2lvbiA8IDggKQoJCQl7CgkJCQkkKGFuQ2xvbmVbaV0pLmNoaWxkcmVuKCkuaGVpZ2h0KCBpSGVpZ2h0LWlCb3hIYWNrICk7CgkJCQkkKGFuT3JpZ2luYWxbaV0pLmNoaWxkcmVuKCkuaGVpZ2h0KCBpSGVpZ2h0LWlCb3hIYWNrICk7CQoJCQl9CgkJCWVsc2UKCQkJewoJCQkJYW5DbG9uZVtpXS5zdHlsZS5oZWlnaHQgPSBpSGVpZ2h0KyJweCI7CgkJCQlhbk9yaWdpbmFsW2ldLnN0eWxlLmhlaWdodCA9IGlIZWlnaHQrInB4IjsKCQkJfQoJCX0KCX0KfTsKCgoKLyogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqCiAqIFN0YXRpY3MKICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqLwoKCi8qKgogKiBGaXhlZENvbHVtbnMgZGVmYXVsdCBzZXR0aW5ncyBmb3IgaW5pdGlhbGlzYXRpb24KICogIEBuYW1lc3BhY2UKICogIEBzdGF0aWMKICovCkZpeGVkQ29sdW1ucy5kZWZhdWx0cyA9IHsKCS8qKiAKCSAqIE51bWJlciBvZiBsZWZ0IGhhbmQgY29sdW1ucyB0byBmaXggaW4gcG9zaXRpb24KCSAqICBAdHlwZSAgICAgaW50CgkgKiAgQGRlZmF1bHQgIDEKCSAqICBAc3RhdGljCgkgKiAgQGV4YW1wbGUKCSAqICAJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgCQkic1Njcm9sbFgiOiAiMTAwJSIKCSAqICAJfSApOwoJICogIAluZXcgRml4ZWRDb2x1bW5zKCBvVGFibGUsIHsKCSAqICAJCSJpTGVmdENvbHVtbnMiOiAyCgkgKiAgCX0gKTsKCSAqLwoJImlMZWZ0Q29sdW1ucyI6IDEsCgkKCS8qKiAKCSAqIE51bWJlciBvZiByaWdodCBoYW5kIGNvbHVtbnMgdG8gZml4IGluIHBvc2l0aW9uCgkgKiAgQHR5cGUgICAgIGludAoJICogIEBkZWZhdWx0ICAwCgkgKiAgQHN0YXRpYwoJICogIEBleGFtcGxlCgkgKiAgCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogIAkJInNTY3JvbGxYIjogIjEwMCUiCgkgKiAgCX0gKTsKCSAqICAJbmV3IEZpeGVkQ29sdW1ucyggb1RhYmxlLCB7CgkgKiAgCQkiaVJpZ2h0Q29sdW1ucyI6IDEKCSAqICAJfSApOwoJICovCgkiaVJpZ2h0Q29sdW1ucyI6IDAsCgkKCS8qKiAKCSAqIERyYXcgY2FsbGJhY2sgZnVuY3Rpb24gd2hpY2ggaXMgY2FsbGVkIHdoZW4gRml4ZWRDb2x1bW5zIGhhcyByZWRyYXduIHRoZSBmaXhlZCBhc3NldHMKCSAqICBAdHlwZSAgICAgZnVuY3Rpb24ob2JqZWN0LCBvYmplY3QpOnZvaWQKCSAqICBAZGVmYXVsdCAgbnVsbAoJICogIEBzdGF0aWMKCSAqICBAZXhhbXBsZQoJICogIAl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAJCSJzU2Nyb2xsWCI6ICIxMDAlIgoJICogIAl9ICk7CgkgKiAgCW5ldyBGaXhlZENvbHVtbnMoIG9UYWJsZSwgewoJICogIAkJImZuRHJhd0NhbGxiYWNrIjogZnVuY3Rpb24gKCkgewoJICoJCQkJYWxlcnQoICJGaXhlZENvbHVtbnMgcmVkcmF3IiApOwoJICoJCQl9CgkgKiAgCX0gKTsKCSAqLwoJImZuRHJhd0NhbGxiYWNrIjogbnVsbCwKCQoJLyoqIAoJICogVHlwZSBvZiBsZWZ0IGNvbHVtbiBzaXplIGNhbGN1bGF0aW9uLiBDYW4gdGFrZSB0aGUgdmFsdWVzIG9mICJmaXhlZCIsIHdoZXJlYnkgdGhlIGlMZWZ0V2lkdGgKCSAqIHZhbHVlIHdpbGwgYmUgdHJlYXRlZCBhcyBhIHBpeGVsIHZhbHVlLCBvciAicmVsYXRpdmUiIGZvciB3aGljaCBjYXNlIGlMZWZ0V2lkdGggd2lsbCBiZQoJICogdHJlYXRlZCBhcyBhIHBlcmNlbnRhZ2UgdmFsdWUuCgkgKiAgQHR5cGUgICAgIHN0cmluZwoJICogIEBkZWZhdWx0ICBmaXhlZAoJICogIEBzdGF0aWMKCSAqICBAZXhhbXBsZQoJICogIAl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAJCSJzU2Nyb2xsWCI6ICIxMDAlIgoJICogIAl9ICk7CgkgKiAgCW5ldyBGaXhlZENvbHVtbnMoIG9UYWJsZSwgewoJICogIAkJInNMZWZ0V2lkdGgiOiAicmVsYXRpdmUiLAoJICogIAkJImlMZWZ0V2lkdGgiOiAxMCAvLyBwZXJjZW50YWdlCgkgKiAgCX0gKTsKCSAqLwoJInNMZWZ0V2lkdGgiOiAiZml4ZWQiLAoJCgkvKiogCgkgKiBXaWR0aCB0byBzZXQgZm9yIHRoZSB3aWR0aCBvZiB0aGUgbGVmdCBmaXhlZCBjb2x1bW4ocykgLSBub3RlIHRoYXQgdGhlIGJlaGF2aW91ciBvZiB0aGlzCgkgKiBwcm9wZXJ0eSBpcyBkaXJlY3RseSBlZmZlY3RlZCBieSB0aGUgc0xlZnRXaWR0aCBwcm9wZXJ0eS4gSWYgbm90IGRlZmluZWQgdGhlbiB0aGlzIHByb3BlcnR5CgkgKiBpcyBjYWxjdWxhdGVkIGF1dG9tYXRpY2FsbHkgZnJvbSB3aGF0IGhhcyBiZWVuIGFzc2lnbmVkIGJ5IERhdGFUYWJsZXMuCgkgKiAgQHR5cGUgICAgIGludAoJICogIEBkZWZhdWx0ICBudWxsCgkgKiAgQHN0YXRpYwoJICogIEBleGFtcGxlCgkgKiAgCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogIAkJInNTY3JvbGxYIjogIjEwMCUiCgkgKiAgCX0gKTsKCSAqICAJbmV3IEZpeGVkQ29sdW1ucyggb1RhYmxlLCB7CgkgKiAgCQkiaUxlZnRXaWR0aCI6IDEwMCAvLyBwaXhlbHMKCSAqICAJfSApOwoJICovCgkiaUxlZnRXaWR0aCI6IG51bGwsCgkKCS8qKiAKCSAqIFR5cGUgb2YgcmlnaHQgY29sdW1uIHNpemUgY2FsY3VsYXRpb24uIENhbiB0YWtlIHRoZSB2YWx1ZXMgb2YgImZpeGVkIiwgd2hlcmVieSB0aGUgCgkgKiBpUmlnaHRXaWR0aCB2YWx1ZSB3aWxsIGJlIHRyZWF0ZWQgYXMgYSBwaXhlbCB2YWx1ZSwgb3IgInJlbGF0aXZlIiBmb3Igd2hpY2ggY2FzZSAKCSAqIGlSaWdodFdpZHRoIHdpbGwgYmUgdHJlYXRlZCBhcyBhIHBlcmNlbnRhZ2UgdmFsdWUuCgkgKiAgQHR5cGUgICAgIHN0cmluZwoJICogIEBkZWZhdWx0ICBmaXhlZAoJICogIEBzdGF0aWMKCSAqICBAZXhhbXBsZQoJICogIAl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAJCSJzU2Nyb2xsWCI6ICIxMDAlIgoJICogIAl9ICk7CgkgKiAgCW5ldyBGaXhlZENvbHVtbnMoIG9UYWJsZSwgewoJICogIAkJInNSaWdodFdpZHRoIjogInJlbGF0aXZlIiwKCSAqICAJCSJpUmlnaHRXaWR0aCI6IDEwIC8vIHBlcmNlbnRhZ2UKCSAqICAJfSApOwoJICovCgkic1JpZ2h0V2lkdGgiOiAiZml4ZWQiLAoJCgkvKioKCSAqIFdpZHRoIHRvIHNldCBmb3IgdGhlIHdpZHRoIG9mIHRoZSByaWdodCBmaXhlZCBjb2x1bW4ocykgLSBub3RlIHRoYXQgdGhlIGJlaGF2aW91ciBvZiB0aGlzCgkgKiBwcm9wZXJ0eSBpcyBkaXJlY3RseSBlZmZlY3RlZCBieSB0aGUgc1JpZ2h0V2lkdGggcHJvcGVydHkuIElmIG5vdCBkZWZpbmVkIHRoZW4gdGhpcyBwcm9wZXJ0eQoJICogaXMgY2FsY3VsYXRlZCBhdXRvbWF0aWNhbGx5IGZyb20gd2hhdCBoYXMgYmVlbiBhc3NpZ25lZCBieSBEYXRhVGFibGVzLgoJICogIEB0eXBlICAgICBpbnQKCSAqICBAZGVmYXVsdCAgbnVsbAoJICogIEBzdGF0aWMKCSAqICBAZXhhbXBsZQoJICogIAl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAJCSJzU2Nyb2xsWCI6ICIxMDAlIgoJICogIAl9ICk7CgkgKiAgCW5ldyBGaXhlZENvbHVtbnMoIG9UYWJsZSwgewoJICogIAkJImlSaWdodFdpZHRoIjogMjAwIC8vIHBpeGVscwoJICogIAl9ICk7CgkgKi8KCSJpUmlnaHRXaWR0aCI6IG51bGwsCgkKCS8qKiAKCSAqIEhlaWdodCBtYXRjaGluZyBhbGdvcnRoaW0gdG8gdXNlLiBUaGlzIGNhbiBiZSAibm9uZSIgd2hpY2ggd2lsbCByZXN1bHQgaW4gbm8gaGVpZ2h0CgkgKiBtYXRjaGluZyBiZWluZyBhcHBsaWVkIGJ5IEZpeGVkQ29sdW1ucyAoaGVpZ2h0IG1hdGNoaW5nIGNvdWxkIGJlIGZvcmNlZCBieSBDU1MgaW4gdGhpcwoJICogY2FzZSksICJzZW1pYXV0byIgd2hlcmVieSB0aGUgaGVpZ2h0IGNhbGN1bGF0aW9uIHdpbGwgYmUgcGVyZm9ybWVkIG9uY2UsIGFuZCB0aGUgcmVzdWx0CgkgKiBjYWNoZWQgdG8gYmUgdXNlZCBhZ2FpbiAoZm5SZWNhbGN1bGF0ZUhlaWdodCBjYW4gYmUgdXNlZCB0byBmb3JjZSByZWNhbGN1bGF0aW9uKSwgb3IKCSAqICJhdXRvIiB3aGVuIGhlaWdodCBtYXRjaGluZyBpcyBwZXJmb3JtZWQgb24gZXZlcnkgZHJhdyAoc2xvd2VzdCBidXQgbXVzdCBhY2N1cmF0ZSkKCSAqICBAdHlwZSAgICAgc3RyaW5nCgkgKiAgQGRlZmF1bHQgIHNlbWlhdXRvCgkgKiAgQHN0YXRpYwoJICogIEBleGFtcGxlCgkgKiAgCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogIAkJInNTY3JvbGxYIjogIjEwMCUiCgkgKiAgCX0gKTsKCSAqICAJbmV3IEZpeGVkQ29sdW1ucyggb1RhYmxlLCB7CgkgKiAgCQkic0hlaWdodE1hdGNoIjogImF1dG8iCgkgKiAgCX0gKTsKCSAqLwoJInNIZWlnaHRNYXRjaCI6ICJzZW1pYXV0byIKfTsKCgoKCi8qICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKgogKiBDb25zdGFudHMKICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqLwoKCi8qKgogKiBOYW1lIG9mIHRoaXMgY2xhc3MKICogIEBjb25zdGFudCBDTEFTUwogKiAgQHR5cGUgICAgIFN0cmluZwogKiAgQGRlZmF1bHQgIEZpeGVkQ29sdW1ucwogKi8KRml4ZWRDb2x1bW5zLnByb3RvdHlwZS5DTEFTUyA9ICJGaXhlZENvbHVtbnMiOwoKCi8qKgogKiBGaXhlZENvbHVtbnMgdmVyc2lvbgogKiAgQGNvbnN0YW50ICBGaXhlZENvbHVtbnMuVkVSU0lPTgogKiAgQHR5cGUgICAgICBTdHJpbmcKICogIEBkZWZhdWx0ICAgU2VlIGNvZGUKICogIEBzdGF0aWMKICovCkZpeGVkQ29sdW1ucy5WRVJTSU9OID0gIjIuMC4zIjsKCgoKLyogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqCiAqIEZpcmVkIGV2ZW50cyAoZm9yIGRvY3VtZW50YXRpb24pCiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKi8KCgovKioKICogRXZlbnQgZmlyZWQgd2hlbmV2ZXIgRml4ZWRDb2x1bW5zIHJlZHJhd3MgdGhlIGZpeGVkIGNvbHVtbnMgKGkuZS4gY2xvbmVzIHRoZSB0YWJsZSBlbGVtZW50cyBmcm9tIHRoZSBtYWluIERhdGFUYWJsZSkuIFRoaXMgd2lsbCBvY2N1ciB3aGVuZXZlciB0aGUgRGF0YVRhYmxlIHRoYXQgdGhlIEZpeGVkQ29sdW1ucyBpbnN0YW5jZSBpcyBhdHRhY2hlZCBkb2VzIGl0cyBvd24gZHJhdy4KICogQG5hbWUgRml4ZWRDb2x1bW5zI2RyYXcKICogQGV2ZW50CiAqIEBwYXJhbSB7ZXZlbnR9IGUgalF1ZXJ5IGV2ZW50IG9iamVjdAogKiBAcGFyYW0ge29iamVjdH0gbyBFdmVudCBwYXJhbWV0ZXJzIGZyb20gRml4ZWRDb2x1bW5zCiAqIEBwYXJhbSB7b2JqZWN0fSBvLmxlZnRDbG9uZSBJbnN0YW5jZSdzIG9iamVjdCBkb20uY2xvbmUubGVmdCBmb3IgZWFzeSByZWZlcmVuY2UuIFRoaXMgb2JqZWN0IGNvbnRhaW5zIHJlZmVyZW5jZXMgdG8gdGhlIGxlZnQgZml4ZWQgY2x1bW4gY29sdW1uJ3Mgbm9kZXMKICogQHBhcmFtIHtvYmplY3R9IG8ucmlnaHRDbG9uZSBJbnN0YW5jZSdzIG9iamVjdCBkb20uY2xvbmUucmlnaHQgZm9yIGVhc3kgcmVmZXJlbmNlLiBUaGlzIG9iamVjdCBjb250YWlucyByZWZlcmVuY2VzIHRvIHRoZSByaWdodCBmaXhlZCBjbHVtbiBjb2x1bW4ncyBub2RlcwogKi8KCn0pKGpRdWVyeSwgd2luZG93LCBkb2N1bWVudCk7Cg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/media/js/FixedColumns.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogRmlsZTogICAgICAgIEZpeGVkQ29sdW1ucy5taW4uanMKICogVmVyc2lvbjogICAgIDIuMC4zCiAqIEF1dGhvcjogICAgICBBbGxhbiBKYXJkaW5lICh3d3cuc3ByeW1lZGlhLmNvLnVrKQogKiAKICogQ29weXJpZ2h0IDIwMTAtMjAxMCBBbGxhbiBKYXJkaW5lLCBhbGwgcmlnaHRzIHJlc2VydmVkLgogKgogKiBUaGlzIHNvdXJjZSBmaWxlIGlzIGZyZWUgc29mdHdhcmUsIHVuZGVyIGVpdGhlciB0aGUgR1BMIHYyIGxpY2Vuc2Ugb3IgYQogKiBCU0Qgc3R5bGUgbGljZW5zZSwgYXZhaWxhYmxlIGF0OgogKiAgIGh0dHA6Ly9kYXRhdGFibGVzLm5ldC9saWNlbnNlX2dwbDIKICogICBodHRwOi8vZGF0YXRhYmxlcy5uZXQvbGljZW5zZV9ic2QKICogCiAqIFRoaXMgc291cmNlIGZpbGUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IAogKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSAKICogb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgbGljZW5zZSBmaWxlcyBmb3IgZGV0YWlscy4KICovCi8qCiAgICAgR1BMIHYyIG9yIEJTRCAzIHBvaW50IHN0eWxlCiBAY29udGFjdCAgICAgd3d3LnNwcnltZWRpYS5jby51ay9jb250YWN0CgogQGNvcHlyaWdodCBDb3B5cmlnaHQgMjAxMC0yMDExIEFsbGFuIEphcmRpbmUsIGFsbCByaWdodHMgcmVzZXJ2ZWQuCgogVGhpcyBzb3VyY2UgZmlsZSBpcyBmcmVlIHNvZnR3YXJlLCB1bmRlciBlaXRoZXIgdGhlIEdQTCB2MiBsaWNlbnNlIG9yIGEKIEJTRCBzdHlsZSBsaWNlbnNlLCBhdmFpbGFibGUgYXQ6CiAgIGh0dHA6Ly9kYXRhdGFibGVzLm5ldC9saWNlbnNlX2dwbDIKICAgaHR0cDovL2RhdGF0YWJsZXMubmV0L2xpY2Vuc2VfYnNkCiovCnZhciBGaXhlZENvbHVtbnM7CihmdW5jdGlvbihiLHEpe0ZpeGVkQ29sdW1ucz1mdW5jdGlvbihhLGUpeyF0aGlzIGluc3RhbmNlb2YgRml4ZWRDb2x1bW5zP2FsZXJ0KCJGaXhlZENvbHVtbnMgd2FybmluZzogRml4ZWRDb2x1bW5zIG11c3QgYmUgaW5pdGlhbGlzZWQgd2l0aCB0aGUgJ25ldycga2V5d29yZC4iKTooInVuZGVmaW5lZCI9PXR5cGVvZiBlJiYoZT17fSksdGhpcy5zPXtkdDphLmZuU2V0dGluZ3MoKSxpVGFibGVDb2x1bW5zOmEuZm5TZXR0aW5ncygpLmFvQ29sdW1ucy5sZW5ndGgsYWlXaWR0aHM6W10sYk9sZElFOmIuYnJvd3Nlci5tc2llJiYoIjYuMCI9PWIuYnJvd3Nlci52ZXJzaW9ufHwiNy4wIj09Yi5icm93c2VyLnZlcnNpb24pfSx0aGlzLmRvbT17c2Nyb2xsZXI6bnVsbCxoZWFkZXI6bnVsbCxib2R5Om51bGwsZm9vdGVyOm51bGwsZ3JpZDp7d3JhcHBlcjpudWxsLGR0Om51bGwsbGVmdDp7d3JhcHBlcjpudWxsLGhlYWQ6bnVsbCxib2R5Om51bGwsZm9vdDpudWxsfSxyaWdodDp7d3JhcHBlcjpudWxsLApoZWFkOm51bGwsYm9keTpudWxsLGZvb3Q6bnVsbH19LGNsb25lOntsZWZ0OntoZWFkZXI6bnVsbCxib2R5Om51bGwsZm9vdGVyOm51bGx9LHJpZ2h0OntoZWFkZXI6bnVsbCxib2R5Om51bGwsZm9vdGVyOm51bGx9fX0sdGhpcy5zLmR0Lm9GaXhlZENvbHVtbnM9dGhpcyx0aGlzLl9mbkNvbnN0cnVjdChlKSl9O0ZpeGVkQ29sdW1ucy5wcm90b3R5cGU9e2ZuVXBkYXRlOmZ1bmN0aW9uKCl7dGhpcy5fZm5EcmF3KCEwKX0sZm5SZWRyYXdMYXlvdXQ6ZnVuY3Rpb24oKXt0aGlzLl9mbkdyaWRMYXlvdXQoKX0sZm5SZWNhbGN1bGF0ZUhlaWdodDpmdW5jdGlvbihhKXthLl9EVFRDX2lIZWlnaHQ9bnVsbDthLnN0eWxlLmhlaWdodD0iYXV0byJ9LGZuU2V0Um93SGVpZ2h0OmZ1bmN0aW9uKGEsZSl7dmFyIGM9YihhKS5jaGlsZHJlbigiOmZpcnN0IiksYz1jLm91dGVySGVpZ2h0KCktYy5oZWlnaHQoKTtiLmJyb3dzZXIubW96aWxsYXx8Yi5icm93c2VyLm9wZXJhP2Euc3R5bGUuaGVpZ2h0PWUrCiJweCI6YihhKS5jaGlsZHJlbigpLmhlaWdodChlLWMpfSxfZm5Db25zdHJ1Y3Q6ZnVuY3Rpb24oYSl7dmFyIGUsYz10aGlzO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0aGlzLnMuZHQub0luc3RhbmNlLmZuVmVyc2lvbkNoZWNrfHwhMCE9PXRoaXMucy5kdC5vSW5zdGFuY2UuZm5WZXJzaW9uQ2hlY2soIjEuOC4wIikpYWxlcnQoIkZpeGVkQ29sdW1ucyAiK0ZpeGVkQ29sdW1ucy5WRVJTSU9OKyIgcmVxdWlyZWQgRGF0YVRhYmxlcyAxLjguMCBvciBsYXRlci4gUGxlYXNlIHVwZ3JhZGUgeW91ciBEYXRhVGFibGVzIGluc3RhbGxhdGlvbiIpO2Vsc2UgaWYoIiI9PT10aGlzLnMuZHQub1Njcm9sbC5zWCl0aGlzLnMuZHQub0luc3RhbmNlLm9BcGkuX2ZuTG9nKHRoaXMucy5kdCwxLCJGaXhlZENvbHVtbnMgaXMgbm90IG5lZWRlZCAobm8geC1zY3JvbGxpbmcgaW4gRGF0YVRhYmxlcyBlbmFibGVkKSwgc28gbm8gYWN0aW9uIHdpbGwgYmUgdGFrZW4uIFVzZSAnRml4ZWRIZWFkZXInIGZvciBjb2x1bW4gZml4aW5nIHdoZW4gc2Nyb2xsaW5nIGlzIG5vdCBlbmFibGVkIik7CmVsc2V7dGhpcy5zPWIuZXh0ZW5kKCEwLHRoaXMucyxGaXhlZENvbHVtbnMuZGVmYXVsdHMsYSk7dGhpcy5kb20uZ3JpZC5kdD1iKHRoaXMucy5kdC5uVGFibGUpLnBhcmVudHMoImRpdi5kYXRhVGFibGVzX3Njcm9sbCIpWzBdO3RoaXMuZG9tLnNjcm9sbGVyPWIoImRpdi5kYXRhVGFibGVzX3Njcm9sbEJvZHkiLHRoaXMuZG9tLmdyaWQuZHQpWzBdO3ZhciBhPWIodGhpcy5kb20uZ3JpZC5kdCkud2lkdGgoKSxmPTAsZz0wO2IoInRib2R5PnRyOmVxKDApPnRkIix0aGlzLnMuZHQublRhYmxlKS5lYWNoKGZ1bmN0aW9uKGEpe2U9Yih0aGlzKS5vdXRlcldpZHRoKCk7Yy5zLmFpV2lkdGhzLnB1c2goZSk7YTxjLnMuaUxlZnRDb2x1bW5zJiYoZis9ZSk7Yy5zLmlUYWJsZUNvbHVtbnMtYy5zLmlSaWdodENvbHVtbnM8PWEmJihnKz1lKX0pO251bGw9PT10aGlzLnMuaUxlZnRXaWR0aCYmKHRoaXMucy5pTGVmdFdpZHRoPSJmaXhlZCI9PXRoaXMucy5zTGVmdFdpZHRoP2Y6MTAwKihmL2EpKTsKbnVsbD09PXRoaXMucy5pUmlnaHRXaWR0aCYmKHRoaXMucy5pUmlnaHRXaWR0aD0iZml4ZWQiPT10aGlzLnMuc1JpZ2h0V2lkdGg/ZzoxMDAqKGcvYSkpO3RoaXMuX2ZuR3JpZFNldHVwKCk7Zm9yKGE9MDthPHRoaXMucy5pTGVmdENvbHVtbnM7YSsrKXRoaXMucy5kdC5vSW5zdGFuY2UuZm5TZXRDb2x1bW5WaXMoYSwhMSk7Zm9yKGE9dGhpcy5zLmlUYWJsZUNvbHVtbnMtdGhpcy5zLmlSaWdodENvbHVtbnM7YTx0aGlzLnMuaVRhYmxlQ29sdW1uczthKyspdGhpcy5zLmR0Lm9JbnN0YW5jZS5mblNldENvbHVtblZpcyhhLCExKTtiKHRoaXMuZG9tLnNjcm9sbGVyKS5zY3JvbGwoZnVuY3Rpb24oKXtjLmRvbS5ncmlkLmxlZnQuYm9keS5zY3JvbGxUb3A9Yy5kb20uc2Nyb2xsZXIuc2Nyb2xsVG9wO2lmKGMucy5pUmlnaHRDb2x1bW5zPjApYy5kb20uZ3JpZC5yaWdodC5ib2R5LnNjcm9sbFRvcD1jLmRvbS5zY3JvbGxlci5zY3JvbGxUb3B9KTtiKHEpLnJlc2l6ZShmdW5jdGlvbigpe2MuX2ZuR3JpZExheW91dC5jYWxsKGMpfSk7CnZhciBkPSEwO3RoaXMucy5kdC5hb0RyYXdDYWxsYmFjaz1be2ZuOmZ1bmN0aW9uKCl7Yy5fZm5EcmF3LmNhbGwoYyxkKTtjLl9mbkdyaWRIZWlnaHQoYyk7ZD1mYWxzZX0sc05hbWU6IkZpeGVkQ29sdW1ucyJ9XS5jb25jYXQodGhpcy5zLmR0LmFvRHJhd0NhbGxiYWNrKTt0aGlzLl9mbkdyaWRMYXlvdXQoKTt0aGlzLl9mbkdyaWRIZWlnaHQoKTt0aGlzLnMuZHQub0luc3RhbmNlLmZuRHJhdyghMSl9fSxfZm5HcmlkU2V0dXA6ZnVuY3Rpb24oKXt0aGlzLmRvbS5ib2R5PXRoaXMucy5kdC5uVGFibGU7dGhpcy5kb20uaGVhZGVyPXRoaXMucy5kdC5uVEhlYWQucGFyZW50Tm9kZTt0aGlzLmRvbS5oZWFkZXIucGFyZW50Tm9kZS5wYXJlbnROb2RlLnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSI7dmFyIGE9YignPGRpdiBjbGFzcz0iRFRGQ19TY3JvbGxXcmFwcGVyIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7IGNsZWFyOmJvdGg7Ij48ZGl2IGNsYXNzPSJEVEZDX0xlZnRXcmFwcGVyIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBsZWZ0OjA7Ij48ZGl2IGNsYXNzPSJEVEZDX0xlZnRIZWFkV3JhcHBlciIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6MDsgbGVmdDowOyBvdmVyZmxvdzpoaWRkZW47Ij48L2Rpdj48ZGl2IGNsYXNzPSJEVEZDX0xlZnRCb2R5V3JhcHBlciIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6MDsgbGVmdDowOyBvdmVyZmxvdzpoaWRkZW47Ij48L2Rpdj48ZGl2IGNsYXNzPSJEVEZDX0xlZnRGb290V3JhcHBlciIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6MDsgbGVmdDowOyBvdmVyZmxvdzpoaWRkZW47Ij48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJEVEZDX1JpZ2h0V3JhcHBlciIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDowOyI+PGRpdiBjbGFzcz0iRFRGQ19SaWdodEhlYWRXcmFwcGVyIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7IHRvcDowOyBsZWZ0OjA7IG92ZXJmbG93OmhpZGRlbjsiPjwvZGl2PjxkaXYgY2xhc3M9IkRURkNfUmlnaHRCb2R5V3JhcHBlciIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6MDsgbGVmdDowOyBvdmVyZmxvdzpoaWRkZW47Ij48L2Rpdj48ZGl2IGNsYXNzPSJEVEZDX1JpZ2h0Rm9vdFdyYXBwZXIiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOjA7IGxlZnQ6MDsgb3ZlcmZsb3c6aGlkZGVuOyI+PC9kaXY+PC9kaXY+PC9kaXY+JylbMF07Cm5MZWZ0PWEuY2hpbGROb2Rlc1swXTtuUmlnaHQ9YS5jaGlsZE5vZGVzWzFdO3RoaXMuZG9tLmdyaWQud3JhcHBlcj1hO3RoaXMuZG9tLmdyaWQubGVmdC53cmFwcGVyPW5MZWZ0O3RoaXMuZG9tLmdyaWQubGVmdC5oZWFkPW5MZWZ0LmNoaWxkTm9kZXNbMF07dGhpcy5kb20uZ3JpZC5sZWZ0LmJvZHk9bkxlZnQuY2hpbGROb2Rlc1sxXTswPHRoaXMucy5pUmlnaHRDb2x1bW5zJiYodGhpcy5kb20uZ3JpZC5yaWdodC53cmFwcGVyPW5SaWdodCx0aGlzLmRvbS5ncmlkLnJpZ2h0LmhlYWQ9blJpZ2h0LmNoaWxkTm9kZXNbMF0sdGhpcy5kb20uZ3JpZC5yaWdodC5ib2R5PW5SaWdodC5jaGlsZE5vZGVzWzFdKTt0aGlzLnMuZHQublRGb290JiYodGhpcy5kb20uZm9vdGVyPXRoaXMucy5kdC5uVEZvb3QucGFyZW50Tm9kZSx0aGlzLmRvbS5ncmlkLmxlZnQuZm9vdD1uTGVmdC5jaGlsZE5vZGVzWzJdLDA8dGhpcy5zLmlSaWdodENvbHVtbnMmJih0aGlzLmRvbS5ncmlkLnJpZ2h0LmZvb3Q9blJpZ2h0LmNoaWxkTm9kZXNbMl0pKTsKYS5hcHBlbmRDaGlsZChuTGVmdCk7dGhpcy5kb20uZ3JpZC5kdC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLHRoaXMuZG9tLmdyaWQuZHQpO2EuYXBwZW5kQ2hpbGQodGhpcy5kb20uZ3JpZC5kdCk7dGhpcy5kb20uZ3JpZC5kdC5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO3RoaXMuZG9tLmdyaWQuZHQuc3R5bGUudG9wPSIwcHgiO3RoaXMuZG9tLmdyaWQuZHQuc3R5bGUubGVmdD10aGlzLnMuaUxlZnRXaWR0aCsicHgiO3RoaXMuZG9tLmdyaWQuZHQuc3R5bGUud2lkdGg9Yih0aGlzLmRvbS5ncmlkLmR0KS53aWR0aCgpLXRoaXMucy5pTGVmdFdpZHRoLXRoaXMucy5pUmlnaHRXaWR0aCsicHgifSxfZm5HcmlkTGF5b3V0OmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5kb20uZ3JpZCxlPWIoYS53cmFwcGVyKS53aWR0aCgpLGM9MCxmPTAsYz0iZml4ZWQiPT10aGlzLnMuc0xlZnRXaWR0aD90aGlzLnMuaUxlZnRXaWR0aDp0aGlzLnMuaUxlZnRXaWR0aC8xMDAqZSxmPSJmaXhlZCI9PXRoaXMucy5zUmlnaHRXaWR0aD8KdGhpcy5zLmlSaWdodFdpZHRoOnRoaXMucy5pUmlnaHRXaWR0aC8xMDAqZTthLmxlZnQud3JhcHBlci5zdHlsZS53aWR0aD1jKyJweCI7YS5kdC5zdHlsZS53aWR0aD1lLWMtZisicHgiO2EuZHQuc3R5bGUubGVmdD1jKyJweCI7MDx0aGlzLnMuaVJpZ2h0Q29sdW1ucyYmKGEucmlnaHQud3JhcHBlci5zdHlsZS53aWR0aD1mKyJweCIsYS5yaWdodC53cmFwcGVyLnN0eWxlLmxlZnQ9ZS1mKyJweCIpfSxfZm5HcmlkSGVpZ2h0OmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5kb20uZ3JpZCxlPWIodGhpcy5kb20uZ3JpZC5kdCkuaGVpZ2h0KCk7YS53cmFwcGVyLnN0eWxlLmhlaWdodD1lKyJweCI7YS5sZWZ0LmJvZHkuc3R5bGUuaGVpZ2h0PWIodGhpcy5kb20uc2Nyb2xsZXIpLmhlaWdodCgpKyJweCI7YS5sZWZ0LndyYXBwZXIuc3R5bGUuaGVpZ2h0PWUrInB4IjswPHRoaXMucy5pUmlnaHRDb2x1bW5zJiYoYS5yaWdodC53cmFwcGVyLnN0eWxlLmhlaWdodD1lKyJweCIsYS5yaWdodC5ib2R5LnN0eWxlLmhlaWdodD0KYih0aGlzLmRvbS5zY3JvbGxlcikuaGVpZ2h0KCkrInB4Iil9LF9mbkRyYXc6ZnVuY3Rpb24oYSl7dGhpcy5fZm5DbG9uZUxlZnQoYSk7dGhpcy5fZm5DbG9uZVJpZ2h0KGEpO251bGwhPT10aGlzLnMuZm5EcmF3Q2FsbGJhY2smJnRoaXMucy5mbkRyYXdDYWxsYmFjay5jYWxsKHRoaXMsdGhpcy5kb20uY2xvbmUubGVmdCx0aGlzLmRvbS5jbG9uZS5yaWdodCk7Yih0aGlzKS50cmlnZ2VyKCJkcmF3Iix7bGVmdENsb25lOnRoaXMuZG9tLmNsb25lLmxlZnQscmlnaHRDbG9uZTp0aGlzLmRvbS5jbG9uZS5yaWdodH0pfSxfZm5DbG9uZVJpZ2h0OmZ1bmN0aW9uKGEpe2lmKCEoMD49dGhpcy5zLmlSaWdodENvbHVtbnMpKXt2YXIgYixjPVtdO2ZvcihiPXRoaXMucy5pVGFibGVDb2x1bW5zLXRoaXMucy5pUmlnaHRDb2x1bW5zO2I8dGhpcy5zLmlUYWJsZUNvbHVtbnM7YisrKWMucHVzaChiKTt0aGlzLl9mbkNsb25lKHRoaXMuZG9tLmNsb25lLnJpZ2h0LHRoaXMuZG9tLmdyaWQucmlnaHQsCmMsYSl9fSxfZm5DbG9uZUxlZnQ6ZnVuY3Rpb24oYSl7aWYoISgwPj10aGlzLnMuaUxlZnRDb2x1bW5zKSl7dmFyIGIsYz1bXTtmb3IoYj0wO2I8dGhpcy5zLmlMZWZ0Q29sdW1ucztiKyspYy5wdXNoKGIpO3RoaXMuX2ZuQ2xvbmUodGhpcy5kb20uY2xvbmUubGVmdCx0aGlzLmRvbS5ncmlkLmxlZnQsYyxhKX19LF9mbkNvcHlMYXlvdXQ6ZnVuY3Rpb24oYSxlKXtmb3IodmFyIGM9W10sZj1bXSxnPVtdLGQ9MCxoPWEubGVuZ3RoO2Q8aDtkKyspe3ZhciBpPVtdO2kublRyPWIoYVtkXS5uVHIpLmNsb25lKCEwKVswXTtmb3IodmFyIGs9MCxtPXRoaXMucy5pVGFibGVDb2x1bW5zO2s8bTtrKyspaWYoLTEhPT1iLmluQXJyYXkoayxlKSl7dmFyIGo9Yi5pbkFycmF5KGFbZF1ba10uY2VsbCxnKTstMT09PWo/KGo9YihhW2RdW2tdLmNlbGwpLmNsb25lKCEwKVswXSxmLnB1c2goaiksZy5wdXNoKGFbZF1ba10uY2VsbCksaS5wdXNoKHtjZWxsOmosdW5pcXVlOmFbZF1ba10udW5pcXVlfSkpOgppLnB1c2goe2NlbGw6ZltqXSx1bmlxdWU6YVtkXVtrXS51bmlxdWV9KX1jLnB1c2goaSl9cmV0dXJuIGN9LF9mbkNsb25lOmZ1bmN0aW9uKGEsZSxjLGYpe3ZhciBnPXRoaXMsZCxoLGksayxtLGosbjtpZihmKXtudWxsIT09YS5oZWFkZXImJmEuaGVhZGVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYS5oZWFkZXIpO2EuaGVhZGVyPWIodGhpcy5kb20uaGVhZGVyKS5jbG9uZSghMClbMF07YS5oZWFkZXIuY2xhc3NOYW1lKz0iIERURkNfQ2xvbmVkIjthLmhlYWRlci5zdHlsZS53aWR0aD0iMTAwJSI7ZS5oZWFkLmFwcGVuZENoaWxkKGEuaGVhZGVyKTt2YXIgbD10aGlzLl9mbkNvcHlMYXlvdXQodGhpcy5zLmR0LmFvSGVhZGVyLGMpO2s9YigiPnRoZWFkIixhLmhlYWRlcik7ay5lbXB0eSgpO2Q9MDtmb3IoaD1sLmxlbmd0aDtkPGg7ZCsrKWtbMF0uYXBwZW5kQ2hpbGQobFtkXS5uVHIpO3RoaXMucy5kdC5vQXBpLl9mbkRyYXdIZWFkKHRoaXMucy5kdCxsLCEwKX1lbHNle3ZhciBsPXRoaXMuX2ZuQ29weUxheW91dCh0aGlzLnMuZHQuYW9IZWFkZXIsCmMpLG89W107dGhpcy5zLmR0Lm9BcGkuX2ZuRGV0ZWN0SGVhZGVyKG8sYigiPnRoZWFkIixhLmhlYWRlcilbMF0pO2Q9MDtmb3IoaD1sLmxlbmd0aDtkPGg7ZCsrKXtpPTA7Zm9yKGs9bFtkXS5sZW5ndGg7aTxrO2krKylvW2RdW2ldLmNlbGwuY2xhc3NOYW1lPWxbZF1baV0uY2VsbC5jbGFzc05hbWUsYigic3Bhbi5EYXRhVGFibGVzX3NvcnRfaWNvbiIsb1tkXVtpXS5jZWxsKS5lYWNoKGZ1bmN0aW9uKCl7dGhpcy5jbGFzc05hbWU9Yigic3Bhbi5EYXRhVGFibGVzX3NvcnRfaWNvbiIsbFtkXVtpXS5jZWxsKVswXS5jbGFzc05hbWV9KX19dGhpcy5fZm5FcXVhbGlzZUhlaWdodHMoInRoZWFkIix0aGlzLmRvbS5oZWFkZXIsYS5oZWFkZXIpOyJhdXRvIj09dGhpcy5zLnNIZWlnaHRNYXRjaCYmYigiPnRib2R5PnRyIixnLmRvbS5ib2R5KS5jc3MoImhlaWdodCIsImF1dG8iKTtudWxsIT09YS5ib2R5JiYoYS5ib2R5LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYS5ib2R5KSxhLmJvZHk9bnVsbCk7CmEuYm9keT1iKHRoaXMuZG9tLmJvZHkpLmNsb25lKCEwKVswXTthLmJvZHkuY2xhc3NOYW1lKz0iIERURkNfQ2xvbmVkIjthLmJvZHkuc3R5bGUucGFkZGluZ0JvdHRvbT10aGlzLnMuZHQub1Njcm9sbC5pQmFyV2lkdGgrInB4IjthLmJvZHkuc3R5bGUubWFyZ2luQm90dG9tPTIqdGhpcy5zLmR0Lm9TY3JvbGwuaUJhcldpZHRoKyJweCI7bnVsbCE9PWEuYm9keS5nZXRBdHRyaWJ1dGUoImlkIikmJmEuYm9keS5yZW1vdmVBdHRyaWJ1dGUoImlkIik7YigiPnRoZWFkPnRyIixhLmJvZHkpLmVtcHR5KCk7YigiPnRmb290IixhLmJvZHkpLnJlbW92ZSgpO3ZhciBwPWIoInRib2R5IixhLmJvZHkpWzBdO2IocCkuZW1wdHkoKTtpZigwPHRoaXMucy5kdC5haURpc3BsYXkubGVuZ3RoKXtoPWIoIj50aGVhZD50ciIsYS5ib2R5KVswXTtmb3Iobj0wO248Yy5sZW5ndGg7bisrKW09Y1tuXSxqPXRoaXMucy5kdC5hb0NvbHVtbnNbbV0ublRoLGouaW5uZXJIVE1MPSIiLG9TdHlsZT1qLnN0eWxlLApvU3R5bGUucGFkZGluZ1RvcD0iMCIsb1N0eWxlLnBhZGRpbmdCb3R0b209IjAiLG9TdHlsZS5ib3JkZXJUb3BXaWR0aD0iMCIsb1N0eWxlLmJvcmRlckJvdHRvbVdpZHRoPSIwIixvU3R5bGUuaGVpZ2h0PTAsb1N0eWxlLndpZHRoPWcucy5haVdpZHRoc1ttXSsicHgiLGguYXBwZW5kQ2hpbGQoaik7YigiPnRib2R5PnRyIixnLmRvbS5ib2R5KS5lYWNoKGZ1bmN0aW9uKGEpe3ZhciBkPXRoaXMuY2xvbmVOb2RlKGZhbHNlKSxhPWcucy5kdC5vRmVhdHVyZXMuYlNlcnZlclNpZGU9PT1mYWxzZT9nLnMuZHQuYWlEaXNwbGF5W2cucy5kdC5faURpc3BsYXlTdGFydCthXTphO2ZvcihuPTA7bjxjLmxlbmd0aDtuKyspe209Y1tuXTtpZih0eXBlb2YgZy5zLmR0LmFvRGF0YVthXS5fYW5IaWRkZW5bbV0hPSJ1bmRlZmluZWQiKXtqPWIoZy5zLmR0LmFvRGF0YVthXS5fYW5IaWRkZW5bbV0pLmNsb25lKHRydWUpWzBdO2QuYXBwZW5kQ2hpbGQoail9fXAuYXBwZW5kQ2hpbGQoZCl9KX1lbHNlIGIoIj50Ym9keT50ciIsCmcuZG9tLmJvZHkpLmVhY2goZnVuY3Rpb24oKXtqPXRoaXMuY2xvbmVOb2RlKHRydWUpO2ouY2xhc3NOYW1lPWouY2xhc3NOYW1lKyIgRFRGQ19Ob0RhdGEiO2IoInRkIixqKS5odG1sKCIiKTtwLmFwcGVuZENoaWxkKGopfSk7YS5ib2R5LnN0eWxlLndpZHRoPSIxMDAlIjtlLmJvZHkuYXBwZW5kQ2hpbGQoYS5ib2R5KTt0aGlzLl9mbkVxdWFsaXNlSGVpZ2h0cygidGJvZHkiLGcuZG9tLmJvZHksYS5ib2R5KTtpZihudWxsIT09dGhpcy5zLmR0Lm5URm9vdCl7aWYoZil7bnVsbCE9PWEuZm9vdGVyJiZhLmZvb3Rlci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGEuZm9vdGVyKTthLmZvb3Rlcj1iKHRoaXMuZG9tLmZvb3RlcikuY2xvbmUoITApWzBdO2EuZm9vdGVyLmNsYXNzTmFtZSs9IiBEVEZDX0Nsb25lZCI7YS5mb290ZXIuc3R5bGUud2lkdGg9IjEwMCUiO2UuZm9vdC5hcHBlbmRDaGlsZChhLmZvb3Rlcik7bD10aGlzLl9mbkNvcHlMYXlvdXQodGhpcy5zLmR0LmFvRm9vdGVyLGMpOwplPWIoIj50Zm9vdCIsYS5mb290ZXIpO2UuZW1wdHkoKTtkPTA7Zm9yKGg9bC5sZW5ndGg7ZDxoO2QrKyllWzBdLmFwcGVuZENoaWxkKGxbZF0ublRyKTt0aGlzLnMuZHQub0FwaS5fZm5EcmF3SGVhZCh0aGlzLnMuZHQsbCwhMCl9ZWxzZXtsPXRoaXMuX2ZuQ29weUxheW91dCh0aGlzLnMuZHQuYW9Gb290ZXIsYyk7ZT1bXTt0aGlzLnMuZHQub0FwaS5fZm5EZXRlY3RIZWFkZXIoZSxiKCI+dGZvb3QiLGEuZm9vdGVyKVswXSk7ZD0wO2ZvcihoPWwubGVuZ3RoO2Q8aDtkKyspe2k9MDtmb3Ioaz1sW2RdLmxlbmd0aDtpPGs7aSsrKWVbZF1baV0uY2VsbC5jbGFzc05hbWU9bFtkXVtpXS5jZWxsLmNsYXNzTmFtZX19dGhpcy5fZm5FcXVhbGlzZUhlaWdodHMoInRmb290Iix0aGlzLmRvbS5mb290ZXIsYS5mb290ZXIpfWg9dGhpcy5zLmR0Lm9BcGkuX2ZuR2V0VW5pcXVlVGhzKHRoaXMucy5kdCxiKCI+dGhlYWQiLGEuaGVhZGVyKVswXSk7YihoKS5lYWNoKGZ1bmN0aW9uKGEpe209Y1thXTsKdGhpcy5zdHlsZS53aWR0aD1nLnMuYWlXaWR0aHNbbV0rInB4In0pO251bGwhPT1nLnMuZHQublRGb290JiYoaD10aGlzLnMuZHQub0FwaS5fZm5HZXRVbmlxdWVUaHModGhpcy5zLmR0LGIoIj50Zm9vdCIsYS5mb290ZXIpWzBdKSxiKGgpLmVhY2goZnVuY3Rpb24oYSl7bT1jW2FdO3RoaXMuc3R5bGUud2lkdGg9Zy5zLmFpV2lkdGhzW21dKyJweCJ9KSl9LF9mbkdldFRyTm9kZXM6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVtdLGM9MCxmPWEuY2hpbGROb2Rlcy5sZW5ndGg7YzxmO2MrKykiVFIiPT1hLmNoaWxkTm9kZXNbY10ubm9kZU5hbWUudG9VcHBlckNhc2UoKSYmYi5wdXNoKGEuY2hpbGROb2Rlc1tjXSk7cmV0dXJuIGJ9LF9mbkVxdWFsaXNlSGVpZ2h0czpmdW5jdGlvbihhLGUsYyl7aWYoISgibm9uZSI9PXRoaXMucy5zSGVpZ2h0TWF0Y2gmJiJ0aGVhZCIhPT1hJiYidGZvb3QiIT09YSkpZm9yKHZhciBmLGcsZD1lLmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpWzBdLGM9Yy5nZXRFbGVtZW50c0J5VGFnTmFtZShhKVswXSwKYT1iKCI+IithKyI+dHI6ZXEoMCkiLGUpLmNoaWxkcmVuKCI6Zmlyc3QiKSxhPWEub3V0ZXJIZWlnaHQoKS1hLmhlaWdodCgpLGQ9dGhpcy5fZm5HZXRUck5vZGVzKGQpLGg9dGhpcy5fZm5HZXRUck5vZGVzKGMpLGM9MCxlPWgubGVuZ3RoO2M8ZTtjKyspInNlbWlhdXRvIj09dGhpcy5zLnNIZWlnaHRNYXRjaCYmInVuZGVmaW5lZCIhPXR5cGVvZiBkW2NdLl9EVFRDX2lIZWlnaHQmJm51bGwhPT1kW2NdLl9EVFRDX2lIZWlnaHQ/Yi5icm93c2VyLm1zaWUmJmIoaFtjXSkuY2hpbGRyZW4oKS5oZWlnaHQoZFtjXS5fRFRUQ19pSGVpZ2h0LWEpOihmPWRbY10ub2Zmc2V0SGVpZ2h0LGc9aFtjXS5vZmZzZXRIZWlnaHQsZj1nPmY/ZzpmLCJzZW1pYXV0byI9PXRoaXMucy5zSGVpZ2h0TWF0Y2gmJihkW2NdLl9EVFRDX2lIZWlnaHQ9ZiksYi5icm93c2VyLm1zaWUmJjg+Yi5icm93c2VyLnZlcnNpb24pPyhiKGhbY10pLmNoaWxkcmVuKCkuaGVpZ2h0KGYtYSksYihkW2NdKS5jaGlsZHJlbigpLmhlaWdodChmLQphKSk6KGhbY10uc3R5bGUuaGVpZ2h0PWYrInB4IixkW2NdLnN0eWxlLmhlaWdodD1mKyJweCIpfX07Rml4ZWRDb2x1bW5zLmRlZmF1bHRzPXtpTGVmdENvbHVtbnM6MSxpUmlnaHRDb2x1bW5zOjAsZm5EcmF3Q2FsbGJhY2s6bnVsbCxzTGVmdFdpZHRoOiJmaXhlZCIsaUxlZnRXaWR0aDpudWxsLHNSaWdodFdpZHRoOiJmaXhlZCIsaVJpZ2h0V2lkdGg6bnVsbCxzSGVpZ2h0TWF0Y2g6InNlbWlhdXRvIn07Rml4ZWRDb2x1bW5zLnByb3RvdHlwZS5DTEFTUz0iRml4ZWRDb2x1bW5zIjtGaXhlZENvbHVtbnMuVkVSU0lPTj0iMi4wLjMifSkoalF1ZXJ5LHdpbmRvdyxkb2N1bWVudCk7Cg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/media/js/FixedColumns.min.js.gz</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/right_column.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5GaXhlZENvbHVtbnMgZXhhbXBsZTwvdGl0bGU+CgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iY3VycmVudFN0eWxlIj4KCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fcGFnZS5jc3MiOwoJCQlAaW1wb3J0ICIuLi8uLi9tZWRpYS9jc3MvZGVtb190YWJsZS5jc3MiOwoJCTwvc3R5bGU+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5kYXRhVGFibGVzLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiIHNyYz0ibWVkaWEvanMvRml4ZWRDb2x1bW5zLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgoJCQkkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJCQkJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkJInNTY3JvbGxYIjogIjEwMCUiLAoJCQkJCSJzU2Nyb2xsWElubmVyIjogIjE1MCUiLAoJCQkJCSJiU2Nyb2xsQ29sbGFwc2UiOiB0cnVlCgkJCQl9ICk7CgkJCQluZXcgRml4ZWRDb2x1bW5zKCBvVGFibGUsIHsKCQkJCQkiaUxlZnRDb2x1bW5zIjogMCwKCQkJCQkiaVJpZ2h0Q29sdW1ucyI6IDEKCQkJCX0gKTsKCQkJfSApOwoJCTwvc2NyaXB0PgoJPC9oZWFkPgoJPGJvZHkgaWQ9ImR0X2V4YW1wbGUiPgoJCTxkaXYgaWQ9ImNvbnRhaW5lciI+CgkJCTxkaXYgY2xhc3M9ImZ1bGxfd2lkdGggYmlnIj4KCQkJCUZpeGVkQ29sdW1ucyBleGFtcGxlIC0gcmlnaHQgaGFuZCBjb2x1bW4gb25seSBmaXhlZAoJCQk8L2Rpdj4KCQkJCgkJCTxoMT5QcmVhbWJsZTwvaDE+CgkJCTxwPkZpeGVkQ29sdW1ucyBoYXMgdGhlIGFiaWxpdHkgdG8gZnJlZXplIGNvbHVtbnMgb24gYm90aCB0aGUgbGVmdCBhbmQgcmlnaHQgaGFuZCBzaWRlcyBvZiB0aGUgdGFibGUuIEJ5IGRlZmF1bHQgaXQgd2lsbCBmaXggdGhlIGZpcnN0IGNvbHVtbiBvbiB0aGUgbGVmdCwgYnV0IHVzaW5nIHRoZSBpbml0aWFsaXNhdGlvbiBwYXJhbWV0ZXJzIDxpPmlMZWZ0Q29sdW1uczwvaT4gYW5kIDxpPmlSaWdodENvbHVtbnM8L2k+IHlvdSBjYW4gYWx0ZXIgdGhpcyB0byBmaXggdGhlIGNvbHVtbnMgb24gdGhlIHJpZ2h0IGFzIHdlbGwuIFRoaXMgZXhhbXBsZSBzaG93cyBhIHNpbmdsZSBjb2x1bW4gZml4ZWQgaW4gcGxhY2UsIGluIHRoaXMgY2FzZSB0aGUgcmlnaHQgbW9zdCBjb2x1bW4uPC9wPgoJCQkKCQkJPGgxPkxpdmUgZXhhbXBsZTwvaDE+CgkJCTxkaXYgaWQ9ImRlbW8iPgo8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIGNsYXNzPSJkaXNwbGF5IiBpZD0iZXhhbXBsZSI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGJvZHk+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDQuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNS4wPC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA1LjU8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNjwvdGQ+CgkJCTx0ZD5XaW4gOTgrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDc8L3RkPgoJCQk8dGQ+V2luIFhQIFNQMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+QU9MIGJyb3dzZXIgKEFPTCBkZXNrdG9wKTwvdGQ+CgkJCTx0ZD5XaW4gWFA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMS4wPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjU8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDIuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMy4wPC90ZD4KCQkJPHRkPldpbiAyaysgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS45PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuMDwvdGQ+CgkJCTx0ZD5PU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuNTwvdGQ+CgkJCTx0ZD5PU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgNy4yPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBNYWMgT1MgOC42LTkuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSBCcm93c2VyIDg8L3RkPgoJCQk8dGQ+V2luIDk4U0UrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIE5hdmlnYXRvciA5PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjE8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4zPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjQ8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS42PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjc8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuODwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPlNlYW1vbmtleSAxLjE8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5FcGlwaGFueSAyLjIwPC90ZD4KCQkJPHRkPkdub21lPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMS4yPC90ZD4KCQkJPHRkPk9TWC4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEyNS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjM8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MzEyLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDIuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDE5LjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDMuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTIyLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+T21uaVdlYiA1LjU8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQyMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5pUG9kIFRvdWNoIC8gaVBob25lPC90ZD4KCQkJPHRkPmlQb2Q8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+UzYwPC90ZD4KCQkJPHRkPlM2MDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgNy4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA3LjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDguMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOC41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuMjwvdGQ+CgkJCTx0ZD5XaW4gODgrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS41PC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSBmb3IgV2lpPC90ZD4KCQkJPHRkPldpaTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5va2lhIE44MDA8L3RkPgoJCQk8dGQ+TjgwMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5pbnRlbmRvIERTIGJyb3dzZXI8L3RkPgoJCQk8dGQ+TmludGVuZG8gRFM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+OC41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkMvQTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuMTwvdGQ+CgkJCTx0ZD5LREUgMy4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy4zPC90ZD4KCQkJPHRkPktERSAzLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjU8L3RkPgoJCQk8dGQ+S0RFIDMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNC41PC90ZD4KCQkJPHRkPk1hYyBPUyA4LTk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjE8L3RkPgoJCQk8dGQ+TWFjIE9TIDcuNi05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4yPC90ZD4KCQkJPHRkPk1hYyBPUyA4LVg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy4xPC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy40PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+RGlsbG8gMC44PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TGlua3M8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkx5bng8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPklFIE1vYmlsZTwvdGQ+CgkJCTx0ZD5XaW5kb3dzIE1vYmlsZSA2PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPlBTUCBicm93c2VyPC90ZD4KCQkJPHRkPlBTUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVUiPgoJCQk8dGQ+T3RoZXIgYnJvd3NlcnM8L3RkPgoJCQk8dGQ+QWxsIG90aGVyczwvdGQ+CgkJCTx0ZD4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+VTwvdGQ+CgkJPC90cj4KCTwvdGJvZHk+Cgk8dGZvb3Q+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGZvb3Q+CjwvdGFibGU+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgoJCQkKCQkJCgkJCTxoMT5Jbml0aWFsaXNhdGlvbiBjb2RlPC9oMT4KCQkJPHByZT4kKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewogCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewogCQkic1Njcm9sbFgiOiAiMTAwJSIsCiAJCSJzU2Nyb2xsWElubmVyIjogIjE1MCUiLAogCQkiYlNjcm9sbENvbGxhcHNlIjogdHJ1ZQogCX0gKTsKIAluZXcgRml4ZWRDb2x1bW5zKCBvVGFibGUsIHsKCQkiaUxlZnRDb2x1bW5zIjogMCwKCQkiaVJpZ2h0Q29sdW1ucyI6IDEKIAl9ICk7CiB9ICk7PC9wcmU+CgoKCQkJPGgxPkRvY3VtZW50YXRpb248L2gxPgoJCQk8dWw+CgkJCQk8bGk+PGEgaHJlZj0iaHR0cDovL2RhdGF0YWJsZXMubmV0L2V4dHJhcy9maXhlZGNvbHVtbnMiPlVzYWdlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iaHR0cDovL2RhdGF0YWJsZXMubmV0L2RvY3MvRml4ZWRDb2x1bW5zIj5BUEkgLyBwYXJhbWV0ZXJzPC9hPjwvbGk+CgkJCTwvdWw+CgoJCQk8aDE+QmFzaWMgZXhhbXBsZXM8L2gxPgoJCQk8dWw+CgkJCQk8bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+QmFzaWMgZGVtbyBvZiBGaXhlZENvbHVtbnMgd2l0aCB6ZXJvIGluaXRpYWxpc2F0aW9uPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ibGVmdF9yaWdodF9jb2x1bW5zLmh0bWwiPkZpeCB0aGUgbGVmdCBhbmQgcmlnaHQgY29sdW1ucyBpbiBwbGFjZTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImluZGV4X2NvbHVtbi5odG1sIj5JbmRleCBjb2x1bW4gYXR0YWNoZWQgdG8gc2lkZSBvZiB0aGUgdGFibGU8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJ4X3lfc2Nyb2xsaW5nLmh0bWwiPkluZGV4IGNvbHVtbiwgYnV0IHdpdGggWSBzY3JvbGxpbmcgYW5kIG5vIHBhZ2luYXRpb248L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJ0d29fY29sdW1ucy5odG1sIj5Ud28gY29sdW1ucyBmaXhlZCBpbiBwbGFjZTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InJpZ2h0X2NvbHVtbi5odG1sIj5GaXggdGhlIHJpZ2h0IGNvbHVtbiBpbiBwbGFjZTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImNzc19zaXplLmh0bWwiPlNwZWVkaW5nIHVwIHJvdyBoZWlnaHQgbWF0Y2hpbmcgd2l0aCBDU1M8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJ0aGVtZWQuaHRtbCI+alF1ZXJ5IFVJIHRoZW1lZCB0YWJsZSB3aXRoIEZpeGVkQ29sdW1uczwvYT48L2xpPgoJCQk8L3VsPgoJCQkKCQkJPGgxPkFkdmFuY2VkIGV4YW1wbGVzPC9oMT4KCQkJPHVsPgoJCQkJPGxpPjxhIGhyZWY9InJvd3NwYW4uaHRtbCI+VXNpbmcgUk9XU1BBTiB3aXRoIEZpeGVkQ29sdW1uczwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InNlcnZlci1zaWRlLXByb2Nlc3NpbmcuaHRtbCI+U2VydmVyLXNpZGUgcHJvY2Vzc2luZyB3aXRoIEZpeGVkQ29sdW1uczwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImNvbF9maWx0ZXIuaHRtbCI+SW5kaXZpZHVhbCBjb2x1bW4gZmlsdGVyaW5nPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ic2NhbGVfZml4ZWQuaHRtbCI+U2V0dGluZyB0aGUgZml4ZWQgY29sdW1uIHdpZHRoIGFuZCByZXNpemluZyB0aGUgdGFibGU8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJzY2FsZV9yZWxhdGl2ZS5odG1sIj5TZXR0aW5nIHRoZSBmaXhlZCBjb2x1bW4gd2lkdGggd2l0aCByZWxhdGl2ZSBzaXppbmc8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJyb3dfZ3JvdXBpbmdfaGVpZ2h0Lmh0bWwiPlJvdyBncm91cGluZyBieSBncm91cGluZyBsaWtlIHJvd3MgaW4gdGhlIGZpeGVkIGNvbHVtbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InJvd19ncm91cGluZy5odG1sIj5Sb3cgZ3JvdXBpbmcgYnkgaW5zZXJ0aW5nIGEgZ3JvdXBpbmcgcm93PC9hPjwvbGk+CgkJCTx1bD4KCQkJCgkJCQoJCQk8ZGl2IGlkPSJmb290ZXIiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjsiPgoJCQkJPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMHB4OyI+CgkJCQkJRml4ZWRDb2x1bW5zIGFuZCBEYXRhVGFibGVzICZjb3B5OyBBbGxhbiBKYXJkaW5lIDIwMTEuPGJyPgoJCQkJPC9zcGFuPgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/rowspan.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5GaXhlZENvbHVtbnMgZXhhbXBsZTwvdGl0bGU+CgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iY3VycmVudFN0eWxlIj4KCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fcGFnZS5jc3MiOwoJCQlAaW1wb3J0ICIuLi8uLi9tZWRpYS9jc3MvZGVtb190YWJsZS5jc3MiOwoJCTwvc3R5bGU+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5kYXRhVGFibGVzLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiIHNyYz0ibWVkaWEvanMvRml4ZWRDb2x1bW5zLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgoJCQkkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJCQkJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkJInNTY3JvbGxZIjogIjMwMHB4IiwKCQkJCQkiYlBhZ2luYXRlIjogZmFsc2UsCgkJCQkJInNTY3JvbGxYIjogIjEwMCUiLAoJCQkJCSJzU2Nyb2xsWElubmVyIjogIjE1MCUiLAoJCQkJCSJiU2Nyb2xsQ29sbGFwc2UiOiB0cnVlCgkJCQl9ICk7CgkJCQluZXcgRml4ZWRDb2x1bW5zKCBvVGFibGUgKTsKCQkJfSApOwoJCTwvc2NyaXB0PgoJPC9oZWFkPgoJPGJvZHkgaWQ9ImR0X2V4YW1wbGUiPgoJCTxkaXYgaWQ9ImNvbnRhaW5lciI+CgkJCTxkaXYgY2xhc3M9ImZ1bGxfd2lkdGggYmlnIj4KCQkJCUZpeGVkQ29sdW1ucyBleGFtcGxlIC0gcm93c3BhbiBpbiB0aGUgaGVhZGVyCgkJCTwvZGl2PgoJCQkKCQkJPGgxPlByZWFtYmxlPC9oMT4KCQkJPHA+SWYgeW91IGFyZSB1c2luZyBtdWx0aXBsZSByb3dzIGluIHRoZSB0YWJsZSBoZWFkZXIsIGl0IGNhbiBiZSB1c2VmdWwgdG8gaGF2ZSBhIHJvd3NwYW5uaW5nIGNlbGwgb24gdGhlIGNvbHVtbihzKSB5b3UgaGF2ZSBmaXhlZCBpbiBwbGFjZSAtIGVxdWFsbHkgYXQgb3RoZXIgdGltZXMgaXQgY2FuIGJlIHVzZWZ1bCB0byBub3QgYW5kIG1ha2UgdXNlIG9mIHRoZSB0d28gb3IgbW9yZSBjZWxscyBwZXIgY29sdW1uLiBGaXhlZENvbHVtbnMgYnVpbGRzIG9uIHRoZSBjb21wbGV4IGhlYWRlciBzdXBwb3J0IGluIERhdGFUYWJsZXMgdG8gbWFrZSB0aGlzIHRyaXZpYWwgdG8gdXNlIGluIEZpeGVkQ29sdW1ucy4gSnVzdCBpbml0aWFsaXNlIHlvdXIgRml4ZWRDb2x1bW5zIGluc3RhbmNlIGFzIHlvdSBub3JtYWxseSB3b3VsZCE8L3A+CgkJCQoJCQk8aDE+TGl2ZSBleGFtcGxlPC9oMT4KCQkJPGRpdiBpZD0iZGVtbyI+Cjx0YWJsZSBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIGJvcmRlcj0iMCIgY2xhc3M9ImRpc3BsYXkiIGlkPSJleGFtcGxlIj4KCTx0aGVhZD4KCQk8dHI+CgkJCTx0aCByb3dzcGFuPSIyIj5SZW5kZXJpbmcgZW5naW5lPC90aD4KCQkJPHRoPkJyb3dzZXI8L3RoPgoJCQk8dGg+UGxhdGZvcm0ocyk8L3RoPgoJCQk8dGg+RW5naW5lIHZlcnNpb248L3RoPgoJCQk8dGg+Q1NTIGdyYWRlPC90aD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRoPk5hbWUgYW5kIHZlcnNpb248L3RoPgoJCQk8dGg+T3BlcmF0aW5nIHN5c3RlbXM8L3RoPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5TdXBwb3J0IGxldmVsPC90aD4KCQk8L3RyPgoJPC90aGVhZD4KCTx0Ym9keT4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgPGJyPjQuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNS4wPC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA1LjU8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNjwvdGQ+CgkJCTx0ZD5XaW4gOTgrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDc8L3RkPgoJCQk8dGQ+V2luIFhQIFNQMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+QU9MIGJyb3dzZXIgKEFPTCBkZXNrdG9wKTwvdGQ+CgkJCTx0ZD5XaW4gWFA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMS4wPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjU8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDIuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMy4wPC90ZD4KCQkJPHRkPldpbiAyaysgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS45PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuMDwvdGQ+CgkJCTx0ZD5PU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuNTwvdGQ+CgkJCTx0ZD5PU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgNy4yPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBNYWMgT1MgOC42LTkuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSBCcm93c2VyIDg8L3RkPgoJCQk8dGQ+V2luIDk4U0UrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIE5hdmlnYXRvciA5PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjE8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4zPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjQ8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS42PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjc8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuODwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPlNlYW1vbmtleSAxLjE8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5FcGlwaGFueSAyLjIwPC90ZD4KCQkJPHRkPkdub21lPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMS4yPC90ZD4KCQkJPHRkPk9TWC4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEyNS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjM8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MzEyLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDIuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDE5LjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDMuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTIyLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+T21uaVdlYiA1LjU8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQyMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5pUG9kIFRvdWNoIC8gaVBob25lPC90ZD4KCQkJPHRkPmlQb2Q8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+UzYwPC90ZD4KCQkJPHRkPlM2MDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgNy4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA3LjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDguMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOC41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuMjwvdGQ+CgkJCTx0ZD5XaW4gODgrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS41PC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSBmb3IgV2lpPC90ZD4KCQkJPHRkPldpaTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5va2lhIE44MDA8L3RkPgoJCQk8dGQ+TjgwMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5pbnRlbmRvIERTIGJyb3dzZXI8L3RkPgoJCQk8dGQ+TmludGVuZG8gRFM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+OC41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkMvQTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuMTwvdGQ+CgkJCTx0ZD5LREUgMy4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy4zPC90ZD4KCQkJPHRkPktERSAzLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjU8L3RkPgoJCQk8dGQ+S0RFIDMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNC41PC90ZD4KCQkJPHRkPk1hYyBPUyA4LTk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjE8L3RkPgoJCQk8dGQ+TWFjIE9TIDcuNi05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4yPC90ZD4KCQkJPHRkPk1hYyBPUyA4LVg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy4xPC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy40PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+RGlsbG8gMC44PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TGlua3M8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkx5bng8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPklFIE1vYmlsZTwvdGQ+CgkJCTx0ZD5XaW5kb3dzIE1vYmlsZSA2PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPlBTUCBicm93c2VyPC90ZD4KCQkJPHRkPlBTUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVUiPgoJCQk8dGQ+T3RoZXIgYnJvd3NlcnM8L3RkPgoJCQk8dGQ+QWxsIG90aGVyczwvdGQ+CgkJCTx0ZD4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+VTwvdGQ+CgkJPC90cj4KCTwvdGJvZHk+CjwvdGFibGU+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgoJCQkKCQkJCgkJCTxoMT5Jbml0aWFsaXNhdGlvbiBjb2RlPC9oMT4KCQkJPHByZT4kKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNTY3JvbGxZIjogIjMwMHB4IiwKCQkiYlBhZ2luYXRlIjogZmFsc2UsCgkJInNTY3JvbGxYIjogIjEwMCUiLAoJCSJzU2Nyb2xsWElubmVyIjogIjE1MCUiLAoJCSJiU2Nyb2xsQ29sbGFwc2UiOiB0cnVlCgl9ICk7CgluZXcgRml4ZWRDb2x1bW5zKCBvVGFibGUgKTsKfSApOzwvcHJlPgoKCgkJCTxoMT5Eb2N1bWVudGF0aW9uPC9oMT4KCQkJPHVsPgoJCQkJPGxpPjxhIGhyZWY9Imh0dHA6Ly9kYXRhdGFibGVzLm5ldC9leHRyYXMvZml4ZWRjb2x1bW5zIj5Vc2FnZTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9Imh0dHA6Ly9kYXRhdGFibGVzLm5ldC9kb2NzL0ZpeGVkQ29sdW1ucyI+QVBJIC8gcGFyYW1ldGVyczwvYT48L2xpPgoJCQk8L3VsPgoKCQkJPGgxPkJhc2ljIGV4YW1wbGVzPC9oMT4KCQkJPHVsPgoJCQkJPGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkJhc2ljIGRlbW8gb2YgRml4ZWRDb2x1bW5zIHdpdGggemVybyBpbml0aWFsaXNhdGlvbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImxlZnRfcmlnaHRfY29sdW1ucy5odG1sIj5GaXggdGhlIGxlZnQgYW5kIHJpZ2h0IGNvbHVtbnMgaW4gcGxhY2U8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJpbmRleF9jb2x1bW4uaHRtbCI+SW5kZXggY29sdW1uIGF0dGFjaGVkIHRvIHNpZGUgb2YgdGhlIHRhYmxlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ieF95X3Njcm9sbGluZy5odG1sIj5JbmRleCBjb2x1bW4sIGJ1dCB3aXRoIFkgc2Nyb2xsaW5nIGFuZCBubyBwYWdpbmF0aW9uPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0idHdvX2NvbHVtbnMuaHRtbCI+VHdvIGNvbHVtbnMgZml4ZWQgaW4gcGxhY2U8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJyaWdodF9jb2x1bW4uaHRtbCI+Rml4IHRoZSByaWdodCBjb2x1bW4gaW4gcGxhY2U8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJjc3Nfc2l6ZS5odG1sIj5TcGVlZGluZyB1cCByb3cgaGVpZ2h0IG1hdGNoaW5nIHdpdGggQ1NTPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0idGhlbWVkLmh0bWwiPmpRdWVyeSBVSSB0aGVtZWQgdGFibGUgd2l0aCBGaXhlZENvbHVtbnM8L2E+PC9saT4KCQkJPC91bD4KCQkJCgkJCTxoMT5BZHZhbmNlZCBleGFtcGxlczwvaDE+CgkJCTx1bD4KCQkJCTxsaT48YSBocmVmPSJyb3dzcGFuLmh0bWwiPlVzaW5nIFJPV1NQQU4gd2l0aCBGaXhlZENvbHVtbnM8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJzZXJ2ZXItc2lkZS1wcm9jZXNzaW5nLmh0bWwiPlNlcnZlci1zaWRlIHByb2Nlc3Npbmcgd2l0aCBGaXhlZENvbHVtbnM8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJjb2xfZmlsdGVyLmh0bWwiPkluZGl2aWR1YWwgY29sdW1uIGZpbHRlcmluZzwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InNjYWxlX2ZpeGVkLmh0bWwiPlNldHRpbmcgdGhlIGZpeGVkIGNvbHVtbiB3aWR0aCBhbmQgcmVzaXppbmcgdGhlIHRhYmxlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ic2NhbGVfcmVsYXRpdmUuaHRtbCI+U2V0dGluZyB0aGUgZml4ZWQgY29sdW1uIHdpZHRoIHdpdGggcmVsYXRpdmUgc2l6aW5nPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0icm93X2dyb3VwaW5nX2hlaWdodC5odG1sIj5Sb3cgZ3JvdXBpbmcgYnkgZ3JvdXBpbmcgbGlrZSByb3dzIGluIHRoZSBmaXhlZCBjb2x1bW48L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJyb3dfZ3JvdXBpbmcuaHRtbCI+Um93IGdyb3VwaW5nIGJ5IGluc2VydGluZyBhIGdyb3VwaW5nIHJvdzwvYT48L2xpPgoJCQk8dWw+CgkJCQoJCQkKCQkJPGRpdiBpZD0iZm9vdGVyIiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7Ij4KCQkJCTxzcGFuIHN0eWxlPSJmb250LXNpemU6MTBweDsiPgoJCQkJCUZpeGVkQ29sdW1ucyBhbmQgRGF0YVRhYmxlcyAmY29weTsgQWxsYW4gSmFyZGluZSAyMDExLjxicj4KCQkJCTwvc3Bhbj4KCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2JvZHk+CjwvaHRtbD4=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/row_grouping.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5GaXhlZENvbHVtbnMgZXhhbXBsZTwvdGl0bGU+CgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iY3VycmVudFN0eWxlIj4KCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fcGFnZS5jc3MiOwoJCQlAaW1wb3J0ICIuLi8uLi9tZWRpYS9jc3MvZGVtb190YWJsZS5jc3MiOwoJCQkuRml4ZWRDb2x1bW5zX0Nsb25lZCB0aCB7IGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyB9CgkJCXRkLmluZGV4IHsgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IGJvcmRlci1yaWdodDogMXB4IHNvbGlkIGJsYWNrOyB9CgkJCXRhYmxlLmRpc3BsYXkgdGguc29ydGluZ19kaXNhYmxlZCB7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB3aGl0ZTsgfQoJCTwvc3R5bGU+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5kYXRhVGFibGVzLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiIHNyYz0ibWVkaWEvanMvRml4ZWRDb2x1bW5zLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgoJCQkkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJCQkJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkJInNTY3JvbGxZIjogIjMwMHB4IiwKCQkJCQkic1Njcm9sbFgiOiAiMTAwJSIsCgkJCQkJInNTY3JvbGxYSW5uZXIiOiAiMTUwJSIsCgkJCQkJImJTY3JvbGxDb2xsYXBzZSI6IHRydWUsCgkJCQkJImJQYWdpbmF0ZSI6IGZhbHNlLAoJCQkJCSJhYVNvcnRpbmdGaXhlZCI6IFsgWzEsICdhc2MnXSBdLAoJCQkJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCQkJCXsgImJWaXNpYmxlIjogZmFsc2UsICJhVGFyZ2V0cyI6IFsxXSB9CgkJCQkJXQoJCQkJfSApOwoKCQkJCW5ldyBGaXhlZENvbHVtbnMoIG9UYWJsZSwgewoJCQkJCSJmbkRyYXdDYWxsYmFjayI6IGZ1bmN0aW9uICggbGVmdCwgcmlnaHQgKSB7CgkJCQkJCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCQkJCQlpZiAoIG9TZXR0aW5ncy5haURpc3BsYXkubGVuZ3RoID09IDAgKQoJCQkJCQl7CgkJCQkJCQlyZXR1cm47CgkJCQkJCX0KCgkJCQkJCXZhciBuR3JvdXAsIG5DZWxsLCBpSW5kZXgsIHNHcm91cDsKCQkJCQkJdmFyIHNMYXN0R3JvdXAgPSAiIiwgaUNvcnJlY3Rvcj0wOwoJCQkJCQl2YXIgblRycyA9ICQoJyNleGFtcGxlIHRib2R5IHRyJyk7CgkJCQkJCXZhciBpQ29sc3BhbiA9IG5UcnNbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RkJykubGVuZ3RoOwoKCQkJCQkJZm9yICggdmFyIGk9MCA7IGk8blRycy5sZW5ndGggOyBpKysgKQoJCQkJCQl7CgkJCQkJCQlpSW5kZXggPSBvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQgKyBpOwoJCQkJCQkJc0dyb3VwID0gb1NldHRpbmdzLmFvRGF0YVsgb1NldHRpbmdzLmFpRGlzcGxheVtpSW5kZXhdIF0uX2FEYXRhWzFdCQkJOwoJCQkJCQkJCgkJCQkJCQlpZiAoIHNHcm91cCAhPSBzTGFzdEdyb3VwICkKCQkJCQkJCXsKCQkJCQkJCQkvKiBDZWxsIHRvIGluc2VydCBpbnRvIG1haW4gdGFibGUgKi8KCQkJCQkJCQluR3JvdXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCAndHInICk7CgkJCQkJCQkJbkNlbGwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCAndGQnICk7CgkJCQkJCQkJbkNlbGwuY29sU3BhbiA9IGlDb2xzcGFuOwoJCQkJCQkJCW5DZWxsLmNsYXNzTmFtZSA9ICJncm91cCI7CgkJCQkJCQkJbkNlbGwuaW5uZXJIVE1MID0gIiZuYnNwOyI7CgkJCQkJCQkJbkdyb3VwLmFwcGVuZENoaWxkKCBuQ2VsbCApOwoJCQkJCQkJCW5UcnNbaV0ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoIG5Hcm91cCwgblRyc1tpXSApOwoKCQkJCQkJCQkvKiBDZWxsIHRvIGluc2VydCBpbnRvIHRoZSBmcm96ZW4gY29sdW1ucyAqLwoJCQkJCQkJCW5Hcm91cCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICd0cicgKTsKCQkJCQkJCQluQ2VsbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICd0ZCcgKTsKCQkJCQkJCQluQ2VsbC5jbGFzc05hbWUgPSAiZ3JvdXAiOwoJCQkJCQkJCW5DZWxsLmlubmVySFRNTCA9IHNHcm91cDsKCQkJCQkJCQluR3JvdXAuYXBwZW5kQ2hpbGQoIG5DZWxsICk7CgkJCQkJCQkJJChuR3JvdXApLmluc2VydEJlZm9yZSggJCgndGJvZHkgdHI6ZXEoJysoaStpQ29ycmVjdG9yKSsnKScsIGxlZnQuYm9keSlbMF0gKTsKCgkJCQkJCQkJaUNvcnJlY3RvcisrOwoJCQkJCQkJCXNMYXN0R3JvdXAgPSBzR3JvdXA7CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQl9CgkJCQl9ICk7CgkJCX0gKTsKCQk8L3NjcmlwdD4KCTwvaGVhZD4KCTxib2R5IGlkPSJkdF9leGFtcGxlIj4KCQk8ZGl2IGlkPSJjb250YWluZXIiPgoJCQk8ZGl2IGNsYXNzPSJmdWxsX3dpZHRoIGJpZyI+CgkJCQlGaXhlZENvbHVtbnMgZXhhbXBsZSAtIHJvdyBncm91cGluZwoJCQk8L2Rpdj4KCQkJCgkJCTxoMT5QcmVhbWJsZTwvaDE+CgkJCTxwPlRoaXMgZXhhbXBsZSBpcyBkZXNpZ25lZCB0byByZS1pbXBsZW1lbnQgdGhlIHZpc3VhbCBlZmZlY3Qgb2YgdGhlIERhdGFUYWJsZXMgPGEgaHJlZj0iaHR0cDovL2RhdGF0YWJsZXMubmV0L2V4YW1wbGVzL2FkdmFuY2VkX2luaXQvcm93X2dyb3VwaW5nLmh0bWwiPnJvdyBncm91cGluZyBleGFtcGxlPC9hPiB3aXRoIGEgZml4ZWQgY29sdW1uLiBJdCBpcyBhbHRlcm5hdGl2ZSByb3cgZ3JvdXBpbmcgc3R5bGUgdG8gdGhhdCBwcmVzZW50ZWQgaW4gdGhlIDxhIGhyZWY9Imdyb3VwaW5nLmh0bWwiPnJvdyBncm91cGluZyBieSBoZWlnaHQ8L2E+IGV4YW1wbGUuPC9wPgoJCQkKCQkJPGgxPkxpdmUgZXhhbXBsZTwvaDE+CgkJCTxkaXYgaWQ9ImRlbW8iPgo8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIGNsYXNzPSJkaXNwbGF5IiBpZD0iZXhhbXBsZSI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGg+QnJvd3NlcjwvdGg+CgkJCTx0aD5SZW5kZXJpbmcgZW5naW5lPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGJvZHk+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA0LjA8L3RkPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDUuMDwvdGQ+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNS41PC90ZD4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDY8L3RkPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5XaW4gOTgrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA3PC90ZD4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+V2luIFhQIFNQMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkFPTCBicm93c2VyIChBT0wgZGVza3RvcCk8L3RkPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5XaW4gWFA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkZpcmVmb3ggMS4wPC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+RmlyZWZveCAxLjU8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5GaXJlZm94IDIuMDwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkZpcmVmb3ggMy4wPC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPldpbiAyaysgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS45PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+Q2FtaW5vIDEuMDwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5PU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+Q2FtaW5vIDEuNTwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5PU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+TmV0c2NhcGUgNy4yPC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBNYWMgT1MgOC42LTkuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5OZXRzY2FwZSBCcm93c2VyIDg8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+V2luIDk4U0UrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPk5ldHNjYXBlIE5hdmlnYXRvciA5PC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+TW96aWxsYSAxLjA8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+TW96aWxsYSAxLjE8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5Nb3ppbGxhIDEuMjwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPk1vemlsbGEgMS4zPC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+TW96aWxsYSAxLjQ8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5Nb3ppbGxhIDEuNTwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPk1vemlsbGEgMS42PC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+TW96aWxsYSAxLjc8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5Nb3ppbGxhIDEuODwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlNlYW1vbmtleSAxLjE8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5FcGlwaGFueSAyLjIwPC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkdub21lPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlNhZmFyaSAxLjI8L3RkPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPk9TWC4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEyNS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+U2FmYXJpIDEuMzwvdGQ+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MzEyLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5TYWZhcmkgMi4wPC90ZD4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDE5LjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5TYWZhcmkgMy4wPC90ZD4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTIyLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5PbW5pV2ViIDUuNTwvdGQ+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQyMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPmlQb2QgVG91Y2ggLyBpUGhvbmU8L3RkPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPmlQb2Q8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5TNjA8L3RkPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlM2MDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5PcGVyYSA3LjA8L3RkPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPk9wZXJhIDcuNTwvdGQ+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+T3BlcmEgOC4wPC90ZD4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5PcGVyYSA4LjU8L3RkPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPk9wZXJhIDkuMDwvdGQ+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+T3BlcmEgOS4yPC90ZD4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5XaW4gODgrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5PcGVyYSA5LjU8L3RkPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPk9wZXJhIGZvciBXaWk8L3RkPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPldpaTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+Tm9raWEgTjgwMDwvdGQ+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+TjgwMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+TmludGVuZG8gRFMgYnJvd3NlcjwvdGQ+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+TmludGVuZG8gRFM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+OC41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkMvQTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuMTwvdGQ+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5LREUgMy4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPktvbnF1cmVyb3IgMy4zPC90ZD4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktERSAzLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+S29ucXVyZXJvciAzLjU8L3RkPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S0RFIDMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA0LjU8L3RkPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPk1hYyBPUyA4LTk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMTwvdGQ+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+TWFjIE9TIDcuNi05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjI8L3RkPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPk1hYyBPUyA4LVg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPk5ldEZyb250IDMuMTwvdGQ+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPk5ldEZyb250IDMuNDwvdGQ+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPkRpbGxvIDAuODwvdGQ+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPkxpbmtzPC90ZD4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5MeW54PC90ZD4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5JRSBNb2JpbGU8L3RkPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5XaW5kb3dzIE1vYmlsZSA2PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5QU1AgYnJvd3NlcjwvdGQ+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPlBTUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVUiPgoJCQk8dGQ+QWxsIG90aGVyczwvdGQ+CgkJCTx0ZD5PdGhlciBicm93c2VyczwvdGQ+CgkJCTx0ZD4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+VTwvdGQ+CgkJPC90cj4KCTwvdGJvZHk+CjwvdGFibGU+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgoJCQkKCQkJCgkJCTxoMT5Jbml0aWFsaXNhdGlvbiBjb2RlPC9oMT4KCQkJPHByZT4kKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNTY3JvbGxZIjogIjMwMHB4IiwKCQkic1Njcm9sbFgiOiAiMTAwJSIsCgkJInNTY3JvbGxYSW5uZXIiOiAiMTUwJSIsCgkJImJTY3JvbGxDb2xsYXBzZSI6IHRydWUsCgkJImJQYWdpbmF0ZSI6IGZhbHNlLAoJCSJhYVNvcnRpbmdGaXhlZCI6IFsgWzEsICdhc2MnXSBdLAoJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCXsgImJWaXNpYmxlIjogZmFsc2UsICJhVGFyZ2V0cyI6IFsxXSB9CgkJXQoJfSApOwoKCW5ldyBGaXhlZENvbHVtbnMoIG9UYWJsZSwgewoJCSJmbkRyYXdDYWxsYmFjayI6IGZ1bmN0aW9uICggbGVmdCwgcmlnaHQgKSB7CgkJCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCQlpZiAoIG9TZXR0aW5ncy5haURpc3BsYXkubGVuZ3RoID09IDAgKQoJCQl7CgkJCQlyZXR1cm47CgkJCX0KCgkJCXZhciBuR3JvdXAsIG5DZWxsLCBpSW5kZXgsIHNHcm91cDsKCQkJdmFyIHNMYXN0R3JvdXAgPSAiIiwgaUNvcnJlY3Rvcj0wOwoJCQl2YXIgblRycyA9ICQoJyNleGFtcGxlIHRib2R5IHRyJyk7CgkJCXZhciBpQ29sc3BhbiA9IG5UcnNbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RkJykubGVuZ3RoOwoKCQkJZm9yICggdmFyIGk9MCA7IGkmbHQ7blRycy5sZW5ndGggOyBpKysgKQoJCQl7CgkJCQlpSW5kZXggPSBvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQgKyBpOwoJCQkJc0dyb3VwID0gb1NldHRpbmdzLmFvRGF0YVsgb1NldHRpbmdzLmFpRGlzcGxheVtpSW5kZXhdIF0uX2FEYXRhWzFdCQkJOwoJCQkJCgkJCQlpZiAoIHNHcm91cCAhPSBzTGFzdEdyb3VwICkKCQkJCXsKCQkJCQkvKiBDZWxsIHRvIGluc2VydCBpbnRvIG1haW4gdGFibGUgKi8KCQkJCQluR3JvdXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCAndHInICk7CgkJCQkJbkNlbGwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCAndGQnICk7CgkJCQkJbkNlbGwuY29sU3BhbiA9IGlDb2xzcGFuOwoJCQkJCW5DZWxsLmNsYXNzTmFtZSA9ICJncm91cCI7CgkJCQkJbkNlbGwuaW5uZXJIVE1MID0gIiZhbXA7bmJzcDsiOwoJCQkJCW5Hcm91cC5hcHBlbmRDaGlsZCggbkNlbGwgKTsKCQkJCQluVHJzW2ldLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKCBuR3JvdXAsIG5UcnNbaV0gKTsKCgkJCQkJLyogQ2VsbCB0byBpbnNlcnQgaW50byB0aGUgZnJvemVuIGNvbHVtbnMgKi8KCQkJCQluR3JvdXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCAndHInICk7CgkJCQkJbkNlbGwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCAndGQnICk7CgkJCQkJbkNlbGwuY2xhc3NOYW1lID0gImdyb3VwIjsKCQkJCQluQ2VsbC5pbm5lckhUTUwgPSBzR3JvdXA7CgkJCQkJbkdyb3VwLmFwcGVuZENoaWxkKCBuQ2VsbCApOwoJCQkJCSQobkdyb3VwKS5pbnNlcnRCZWZvcmUoICQoJ3Rib2R5IHRyOmVxKCcrKGkraUNvcnJlY3RvcikrJyknLCBsZWZ0LmJvZHkpWzBdICk7CgoJCQkJCWlDb3JyZWN0b3IrKzsKCQkJCQlzTGFzdEdyb3VwID0gc0dyb3VwOwoJCQkJfQoJCQl9CgkJfQoJfSApOwp9ICk7PC9wcmU+CgoKCQkJPGgxPkRvY3VtZW50YXRpb248L2gxPgoJCQk8dWw+CgkJCQk8bGk+PGEgaHJlZj0iaHR0cDovL2RhdGF0YWJsZXMubmV0L2V4dHJhcy9maXhlZGNvbHVtbnMiPlVzYWdlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iaHR0cDovL2RhdGF0YWJsZXMubmV0L2RvY3MvRml4ZWRDb2x1bW5zIj5BUEkgLyBwYXJhbWV0ZXJzPC9hPjwvbGk+CgkJCTwvdWw+CgoJCQk8aDE+QmFzaWMgZXhhbXBsZXM8L2gxPgoJCQk8dWw+CgkJCQk8bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+QmFzaWMgZGVtbyBvZiBGaXhlZENvbHVtbnMgd2l0aCB6ZXJvIGluaXRpYWxpc2F0aW9uPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ibGVmdF9yaWdodF9jb2x1bW5zLmh0bWwiPkZpeCB0aGUgbGVmdCBhbmQgcmlnaHQgY29sdW1ucyBpbiBwbGFjZTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImluZGV4X2NvbHVtbi5odG1sIj5JbmRleCBjb2x1bW4gYXR0YWNoZWQgdG8gc2lkZSBvZiB0aGUgdGFibGU8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJ4X3lfc2Nyb2xsaW5nLmh0bWwiPkluZGV4IGNvbHVtbiwgYnV0IHdpdGggWSBzY3JvbGxpbmcgYW5kIG5vIHBhZ2luYXRpb248L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJ0d29fY29sdW1ucy5odG1sIj5Ud28gY29sdW1ucyBmaXhlZCBpbiBwbGFjZTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InJpZ2h0X2NvbHVtbi5odG1sIj5GaXggdGhlIHJpZ2h0IGNvbHVtbiBpbiBwbGFjZTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImNzc19zaXplLmh0bWwiPlNwZWVkaW5nIHVwIHJvdyBoZWlnaHQgbWF0Y2hpbmcgd2l0aCBDU1M8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJ0aGVtZWQuaHRtbCI+alF1ZXJ5IFVJIHRoZW1lZCB0YWJsZSB3aXRoIEZpeGVkQ29sdW1uczwvYT48L2xpPgoJCQk8L3VsPgoJCQkKCQkJPGgxPkFkdmFuY2VkIGV4YW1wbGVzPC9oMT4KCQkJPHVsPgoJCQkJPGxpPjxhIGhyZWY9InJvd3NwYW4uaHRtbCI+VXNpbmcgUk9XU1BBTiB3aXRoIEZpeGVkQ29sdW1uczwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InNlcnZlci1zaWRlLXByb2Nlc3NpbmcuaHRtbCI+U2VydmVyLXNpZGUgcHJvY2Vzc2luZyB3aXRoIEZpeGVkQ29sdW1uczwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImNvbF9maWx0ZXIuaHRtbCI+SW5kaXZpZHVhbCBjb2x1bW4gZmlsdGVyaW5nPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ic2NhbGVfZml4ZWQuaHRtbCI+U2V0dGluZyB0aGUgZml4ZWQgY29sdW1uIHdpZHRoIGFuZCByZXNpemluZyB0aGUgdGFibGU8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJzY2FsZV9yZWxhdGl2ZS5odG1sIj5TZXR0aW5nIHRoZSBmaXhlZCBjb2x1bW4gd2lkdGggd2l0aCByZWxhdGl2ZSBzaXppbmc8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJyb3dfZ3JvdXBpbmdfaGVpZ2h0Lmh0bWwiPlJvdyBncm91cGluZyBieSBncm91cGluZyBsaWtlIHJvd3MgaW4gdGhlIGZpeGVkIGNvbHVtbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InJvd19ncm91cGluZy5odG1sIj5Sb3cgZ3JvdXBpbmcgYnkgaW5zZXJ0aW5nIGEgZ3JvdXBpbmcgcm93PC9hPjwvbGk+CgkJCTx1bD4KCQkJCgkJCQoJCQk8ZGl2IGlkPSJmb290ZXIiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjsiPgoJCQkJPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMHB4OyI+CgkJCQkJRml4ZWRDb2x1bW5zIGFuZCBEYXRhVGFibGVzICZjb3B5OyBBbGxhbiBKYXJkaW5lIDIwMTEuPGJyPgoJCQkJPC9zcGFuPgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/row_grouping_height.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5GaXhlZENvbHVtbnMgZXhhbXBsZTwvdGl0bGU+CgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iY3VycmVudFN0eWxlIj4KCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fcGFnZS5jc3MiOwoJCQlAaW1wb3J0ICIuLi8uLi9tZWRpYS9jc3MvZGVtb190YWJsZS5jc3MiOwoJCTwvc3R5bGU+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5kYXRhVGFibGVzLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiIHNyYz0ibWVkaWEvanMvRml4ZWRDb2x1bW5zLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgoJCQkkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJCQkJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkJInNTY3JvbGxZIjogIjMwMHB4IiwKCQkJCQkic1Njcm9sbFgiOiAiMTAwJSIsCgkJCQkJInNTY3JvbGxYSW5uZXIiOiAiMTUwJSIsCgkJCQkJImJTY3JvbGxDb2xsYXBzZSI6IHRydWUsCgkJCQkJImJQYWdpbmF0ZSI6IGZhbHNlCgkJCQl9ICk7CgoJCQkJbmV3IEZpeGVkQ29sdW1ucyggb1RhYmxlLCB7CgkJCQkJImlMZWZ0V2lkdGgiOiAxNTAsCgkJCQkJImZuRHJhd0NhbGxiYWNrIjogZnVuY3Rpb24gKCBsZWZ0LCByaWdodCApIHsKCQkJCQkJdmFyIHRoYXQgPSB0aGlzLCBncm91cFZhbCA9IG51bGwsIG1hdGNoZXMgPSAwLCBoZWlnaHRzID0gW10sIGluZGV4ID0gLTE7CgkJCQkJCQoJCQkJCQkvKiBHZXQgdGhlIGhlaWdodHMgb2YgdGhlIGNlbGxzIGFuZCByZW1vdmUgcmVkdW5kYW50IG9uZXMgKi8KCQkJCQkJJCgndGJvZHkgdHIgdGQnLCBsZWZ0LmJvZHkpLmVhY2goIGZ1bmN0aW9uICggaSApIHsKCQkJCQkJCXZhciBjdXJyVmFsID0gdGhpcy5pbm5lckhUTUw7CgkJCQkJCQkKCQkJCQkJCS8qIFJlc2V0IHZhbHVlcyBvbiBuZXcgY2VsbCBkYXRhLiAqLwoJCQkJCQkJaWYgKGN1cnJWYWwgIT0gZ3JvdXBWYWwpIHsKCQkJCQkJCQlncm91cFZhbCA9IGN1cnJWYWw7CgkJCQkJCQkJaW5kZXgrKzsKCQkJCQkJCQloZWlnaHRzW2luZGV4XSA9IDA7CgkJCQkJCQkJbWF0Y2hlcyA9IDA7CgkJCQkJCQl9IGVsc2UgIHsKCQkJCQkJCQltYXRjaGVzKys7CgkJCQkJCQl9CgkJCQkJCQkKCQkJCQkJCWhlaWdodHNbIGluZGV4IF0gKz0gJCh0aGlzLnBhcmVudE5vZGUpLmhlaWdodCgpOwoJCQkJCQkJaWYgKCBjdXJyVmFsID09IGdyb3VwVmFsICYmIG1hdGNoZXMgPiAwICkgewoJCQkJCQkJCXRoaXMucGFyZW50Tm9kZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMucGFyZW50Tm9kZSk7CgkJCQkJCQl9CgkJCQkJCX0gKTsKCgkJCQkJCS8qIE5vdyBzZXQgdGhlIGhlaWdodCBvZiB0aGUgY2VsbHMgd2hpY2ggcmVtYWluLCBmcm9tIHRoZSBzdW1tZWQgaGVpZ2h0cyAqLwoJCQkJCQkkKCd0Ym9keSB0ciB0ZCcsIGxlZnQuYm9keSkuZWFjaCggZnVuY3Rpb24gKCBpICkgewoJCQkJCQkJdGhhdC5mblNldFJvd0hlaWdodCggdGhpcy5wYXJlbnROb2RlLCBoZWlnaHRzW2ldICk7CgkJCQkJCX0gKTsKCQkJCQl9CgkJCQl9ICk7CgkJCX0gKTsKCQk8L3NjcmlwdD4KCTwvaGVhZD4KCTxib2R5IGlkPSJkdF9leGFtcGxlIj4KCQk8ZGl2IGlkPSJjb250YWluZXIiPgoJCQk8ZGl2IGNsYXNzPSJmdWxsX3dpZHRoIGJpZyI+CgkJCQlGaXhlZENvbHVtbnMgZXhhbXBsZSAtIHJvdyBncm91cGluZyB1c2luZyB0aGUgZml4ZWQgY29sdW1uCgkJCTwvZGl2PgoJCQkKCQkJPGgxPlByZWFtYmxlPC9oMT4KCQkJPHA+VGhpcyBleGFtcGxlIHNob3dzIGhvdyBpdCBpcyBwb3NzaWJsZSB0byBtYW5pcHVsYXRlIHRoZSBET00gb2YgdGhlIGZpeGVkIGNvbHVtbiB0byBjcmVhdGUgdGhlIGVmZmVjdCBvZiByb3cgZ3JvdXBpbmcgaW4gdGhlIHRhYmxlIChvciBtb3JlIGdlbmVyYWxseSBhbnkgbWFuaXB1bGF0aW9uIHlvdSB3aXNoIHRvIG1ha2UpLiBXaGVuIG9yZGVyZWQgYnkgdGhlIGZpcnN0IGNvbHVtbiBpdCBpcyBwb3NzaWJsZSB0byBzZWUgdGhlIGdyb3VwaW5nIGluIGZ1bGwgZWZmZWN0IC0gaWYgeW91IHRoZW4gY2hhbmdlIHRoZSBvcmRlcmluZyB0byBvbmUgb2YgdGhlIG90aGVyIGNvbHVtbnMgdGhlIGdyb3VwaW5nIGlzIGR5bmFtaWNhbGx5IGNoYW5nZWQgdG8gY29tYmluZSBsaWtlIGNlbGxzLiBJdCB3b3VsZCBiZSByZWFkaWx5IHBvc3NpYmxlIHRvIGV4dGVuZCB0aGlzIGV4YW1wbGUgdG8gdXNlIHR3byBmaXhlZCBjb2x1bW5zIGFuZCBvbmx5ICdncm91cCcgcm93cyBpbiBvbmUgb2YgdGhlIGNvbHVtbnMsIHBvdGVudGlhbGx5IGFjaGlldmluZyBxdWl0ZSBhIHBvd2VyZnVsIGVmZmVjdC48L3A+CgkJCQoJCQk8aDE+TGl2ZSBleGFtcGxlPC9oMT4KCQkJPGRpdiBpZD0iZGVtbyI+Cjx0YWJsZSBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIGJvcmRlcj0iMCIgY2xhc3M9ImRpc3BsYXkiIGlkPSJleGFtcGxlIj4KCTx0aGVhZD4KCQk8dHI+CgkJCTx0aD5SZW5kZXJpbmcgZW5naW5lPC90aD4KCQkJPHRoPkJyb3dzZXI8L3RoPgoJCQk8dGg+UGxhdGZvcm0ocyk8L3RoPgoJCQk8dGg+RW5naW5lIHZlcnNpb248L3RoPgoJCQk8dGg+Q1NTIGdyYWRlPC90aD4KCQk8L3RyPgoJPC90aGVhZD4KCTx0Ym9keT4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNC4wPC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA1LjA8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDUuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA2PC90ZD4KCQkJPHRkPldpbiA5OCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNzwvdGQ+CgkJCTx0ZD5XaW4gWFAgU1AyKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5BT0wgYnJvd3NlciAoQU9MIGRlc2t0b3ApPC90ZD4KCQkJPHRkPldpbiBYUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjA8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDxicj4xLjU8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDIuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMy4wPC90ZD4KCQkJPHRkPldpbiAyaysgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS45PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuMDwvdGQ+CgkJCTx0ZD5PU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuNTwvdGQ+CgkJCTx0ZD5PU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgNy4yPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBNYWMgT1MgOC42LTkuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSBCcm93c2VyIDg8L3RkPgoJCQk8dGQ+V2luIDk4U0UrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIE5hdmlnYXRvciA5PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjE8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4zPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjQ8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS42PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjc8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuODwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPlNlYW1vbmtleSAxLjE8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5FcGlwaGFueSAyLjIwPC90ZD4KCQkJPHRkPkdub21lPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMS4yPC90ZD4KCQkJPHRkPk9TWC4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEyNS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjM8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MzEyLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDIuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDE5LjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDMuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTIyLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+T21uaVdlYiA1LjU8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQyMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5pUG9kIFRvdWNoIC8gaVBob25lPC90ZD4KCQkJPHRkPmlQb2Q8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+UzYwPC90ZD4KCQkJPHRkPlM2MDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgNy4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA3LjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDguMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOC41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuMjwvdGQ+CgkJCTx0ZD5XaW4gODgrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS41PC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSBmb3IgV2lpPC90ZD4KCQkJPHRkPldpaTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5va2lhIE44MDA8L3RkPgoJCQk8dGQ+TjgwMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5pbnRlbmRvIERTIGJyb3dzZXI8L3RkPgoJCQk8dGQ+TmludGVuZG8gRFM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+OC41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkMvQTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuMTwvdGQ+CgkJCTx0ZD5LREUgMy4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy4zPC90ZD4KCQkJPHRkPktERSAzLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjU8L3RkPgoJCQk8dGQ+S0RFIDMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNC41PC90ZD4KCQkJPHRkPk1hYyBPUyA4LTk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjE8L3RkPgoJCQk8dGQ+TWFjIE9TIDcuNi05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4yPC90ZD4KCQkJPHRkPk1hYyBPUyA4LVg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy4xPC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy40PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+RGlsbG8gMC44PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TGlua3M8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkx5bng8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPklFIE1vYmlsZTwvdGQ+CgkJCTx0ZD5XaW5kb3dzIE1vYmlsZSA2PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPlBTUCBicm93c2VyPC90ZD4KCQkJPHRkPlBTUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVUiPgoJCQk8dGQ+T3RoZXIgYnJvd3NlcnM8L3RkPgoJCQk8dGQ+QWxsIG90aGVyczwvdGQ+CgkJCTx0ZD4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+VTwvdGQ+CgkJPC90cj4KCTwvdGJvZHk+CjwvdGFibGU+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgoJCQkKCQkJCgkJCTxoMT5Jbml0aWFsaXNhdGlvbiBjb2RlPC9oMT4KCQkJPHByZT4kKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNTY3JvbGxZIjogIjMwMHB4IiwKCQkic1Njcm9sbFgiOiAiMTAwJSIsCgkJInNTY3JvbGxYSW5uZXIiOiAiMTUwJSIsCgkJImJTY3JvbGxDb2xsYXBzZSI6IHRydWUsCgkJImJQYWdpbmF0ZSI6IGZhbHNlCgl9ICk7CgoJbmV3IEZpeGVkQ29sdW1ucyggb1RhYmxlLCB7CgkJImlMZWZ0V2lkdGgiOiAxNTAsCgkJImZuRHJhd0NhbGxiYWNrIjogZnVuY3Rpb24gKCBsZWZ0LCByaWdodCApIHsKCQkJdmFyIHRoYXQgPSB0aGlzLCBncm91cFZhbCA9IG51bGwsIG1hdGNoZXMgPSAwLCBoZWlnaHRzID0gW10sIGluZGV4ID0gLTE7CgkJCQoJCQkvKiBHZXQgdGhlIGhlaWdodHMgb2YgdGhlIGNlbGxzIGFuZCByZW1vdmUgcmVkdW5kYW50IG9uZXMgKi8KCQkJJCgndGJvZHkgdHIgdGQnLCBsZWZ0LmJvZHkpLmVhY2goIGZ1bmN0aW9uICggaSApIHsKCQkJCXZhciBjdXJyVmFsID0gdGhpcy5pbm5lckhUTUw7CgkJCQkKCQkJCS8qIFJlc2V0IHZhbHVlcyBvbiBuZXcgY2VsbCBkYXRhLiAqLwoJCQkJaWYgKGN1cnJWYWwgIT0gZ3JvdXBWYWwpIHsKCQkJCQlncm91cFZhbCA9IGN1cnJWYWw7CgkJCQkJaW5kZXgrKzsKCQkJCQloZWlnaHRzW2luZGV4XSA9IDA7CgkJCQkJbWF0Y2hlcyA9IDA7CgkJCQl9IGVsc2UgIHsKCQkJCQltYXRjaGVzKys7CgkJCQl9CgkJCQkKCQkJCWhlaWdodHNbIGluZGV4IF0gKz0gJCh0aGlzLnBhcmVudE5vZGUpLmhlaWdodCgpOwoJCQkJaWYgKCBjdXJyVmFsID09IGdyb3VwVmFsICZhbXA7JmFtcDsgbWF0Y2hlcyAmZ3Q7IDAgKSB7CgkJCQkJdGhpcy5wYXJlbnROb2RlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5wYXJlbnROb2RlKTsKCQkJCX0KCQkJfSApOwoKCQkJLyogTm93IHNldCB0aGUgaGVpZ2h0IG9mIHRoZSBjZWxscyB3aGljaCByZW1haW4sIGZyb20gdGhlIHN1bW1lZCBoZWlnaHRzICovCgkJCSQoJ3Rib2R5IHRyIHRkJywgbGVmdC5ib2R5KS5lYWNoKCBmdW5jdGlvbiAoIGkgKSB7CgkJCQl0aGF0LmZuU2V0Um93SGVpZ2h0KCB0aGlzLnBhcmVudE5vZGUsIGhlaWdodHNbIGkgXSApOwoJCQl9ICk7CgkJfQoJfSApOwp9ICk7PC9wcmU+CgoKCQkJPGgxPkRvY3VtZW50YXRpb248L2gxPgoJCQk8dWw+CgkJCQk8bGk+PGEgaHJlZj0iaHR0cDovL2RhdGF0YWJsZXMubmV0L2V4dHJhcy9maXhlZGNvbHVtbnMiPlVzYWdlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iaHR0cDovL2RhdGF0YWJsZXMubmV0L2RvY3MvRml4ZWRDb2x1bW5zIj5BUEkgLyBwYXJhbWV0ZXJzPC9hPjwvbGk+CgkJCTwvdWw+CgoJCQk8aDE+QmFzaWMgZXhhbXBsZXM8L2gxPgoJCQk8dWw+CgkJCQk8bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+QmFzaWMgZGVtbyBvZiBGaXhlZENvbHVtbnMgd2l0aCB6ZXJvIGluaXRpYWxpc2F0aW9uPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ibGVmdF9yaWdodF9jb2x1bW5zLmh0bWwiPkZpeCB0aGUgbGVmdCBhbmQgcmlnaHQgY29sdW1ucyBpbiBwbGFjZTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImluZGV4X2NvbHVtbi5odG1sIj5JbmRleCBjb2x1bW4gYXR0YWNoZWQgdG8gc2lkZSBvZiB0aGUgdGFibGU8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJ4X3lfc2Nyb2xsaW5nLmh0bWwiPkluZGV4IGNvbHVtbiwgYnV0IHdpdGggWSBzY3JvbGxpbmcgYW5kIG5vIHBhZ2luYXRpb248L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJ0d29fY29sdW1ucy5odG1sIj5Ud28gY29sdW1ucyBmaXhlZCBpbiBwbGFjZTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InJpZ2h0X2NvbHVtbi5odG1sIj5GaXggdGhlIHJpZ2h0IGNvbHVtbiBpbiBwbGFjZTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImNzc19zaXplLmh0bWwiPlNwZWVkaW5nIHVwIHJvdyBoZWlnaHQgbWF0Y2hpbmcgd2l0aCBDU1M8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJ0aGVtZWQuaHRtbCI+alF1ZXJ5IFVJIHRoZW1lZCB0YWJsZSB3aXRoIEZpeGVkQ29sdW1uczwvYT48L2xpPgoJCQk8L3VsPgoJCQkKCQkJPGgxPkFkdmFuY2VkIGV4YW1wbGVzPC9oMT4KCQkJPHVsPgoJCQkJPGxpPjxhIGhyZWY9InJvd3NwYW4uaHRtbCI+VXNpbmcgUk9XU1BBTiB3aXRoIEZpeGVkQ29sdW1uczwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InNlcnZlci1zaWRlLXByb2Nlc3NpbmcuaHRtbCI+U2VydmVyLXNpZGUgcHJvY2Vzc2luZyB3aXRoIEZpeGVkQ29sdW1uczwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImNvbF9maWx0ZXIuaHRtbCI+SW5kaXZpZHVhbCBjb2x1bW4gZmlsdGVyaW5nPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ic2NhbGVfZml4ZWQuaHRtbCI+U2V0dGluZyB0aGUgZml4ZWQgY29sdW1uIHdpZHRoIGFuZCByZXNpemluZyB0aGUgdGFibGU8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJzY2FsZV9yZWxhdGl2ZS5odG1sIj5TZXR0aW5nIHRoZSBmaXhlZCBjb2x1bW4gd2lkdGggd2l0aCByZWxhdGl2ZSBzaXppbmc8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJyb3dfZ3JvdXBpbmdfaGVpZ2h0Lmh0bWwiPlJvdyBncm91cGluZyBieSBncm91cGluZyBsaWtlIHJvd3MgaW4gdGhlIGZpeGVkIGNvbHVtbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InJvd19ncm91cGluZy5odG1sIj5Sb3cgZ3JvdXBpbmcgYnkgaW5zZXJ0aW5nIGEgZ3JvdXBpbmcgcm93PC9hPjwvbGk+CgkJCTx1bD4KCQkJCgkJCQoJCQk8ZGl2IGlkPSJmb290ZXIiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjsiPgoJCQkJPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMHB4OyI+CgkJCQkJRml4ZWRDb2x1bW5zIGFuZCBEYXRhVGFibGVzICZjb3B5OyBBbGxhbiBKYXJkaW5lIDIwMTEuPGJyPgoJCQkJPC9zcGFuPgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/scale_fixed.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5GaXhlZENvbHVtbnMgZXhhbXBsZTwvdGl0bGU+CgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iY3VycmVudFN0eWxlIj4KCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fcGFnZS5jc3MiOwoJCQlAaW1wb3J0ICIuLi8uLi9tZWRpYS9jc3MvZGVtb190YWJsZS5jc3MiOwoJCQl0YWJsZS5EVEZDX0Nsb25lZCB0aCB7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH0KCQk8L3N0eWxlPgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIuLi8uLi9tZWRpYS9qcy9qcXVlcnkuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIuLi8uLi9tZWRpYS9qcy9qcXVlcnkuZGF0YVRhYmxlcy5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Im1lZGlhL2pzL0ZpeGVkQ29sdW1ucy5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KCQkJJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCQkJCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJCSJzU2Nyb2xsWSI6ICIzMDBweCIsCgkJCQkJInNTY3JvbGxYIjogIjEwMCUiLAoJCQkJCSJzU2Nyb2xsWElubmVyIjogIjEyMDBweCIsCgkJCQkJImJTY3JvbGxDb2xsYXBzZSI6IHRydWUsCgkJCQkJImJQYWdpbmF0ZSI6IGZhbHNlCgkJCQl9ICk7CgkJCQluZXcgRml4ZWRDb2x1bW5zKCBvVGFibGUsIHsKCQkJCQkiaUxlZnRXaWR0aCI6IDE1MAoJCQkJfSApOwoJCQl9ICk7CgkJPC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keSBpZD0iZHRfZXhhbXBsZSI+CgkJPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0id2lkdGg6ODAlIj4KCQkJPGRpdiBjbGFzcz0iZnVsbF93aWR0aCBiaWciPgoJCQkJRml4ZWRDb2x1bW5zIGV4YW1wbGUgLSBmaXhlZCB3aWR0aCBmaXhlZCBjb2x1bW4KCQkJPC9kaXY+CgkJCQoJCQk8aDE+UHJlYW1ibGU8L2gxPgoJCQk8cD5UaGlzIGV4YW1wbGUgc2hvd3MgaG93IHRoZSBmaXhlZCBjb2x1bW4gY2FuIGhhdmUgYSBzcGVjaWZpYyBwaXhlbCB3aWR0aCBkZWZpbmVkIGZvciBpdC4gQnkgZ2l2aW5nIHRoZSBwYXJhbWV0ZXIgPGk+aUxlZnRXaWR0aDwvaT4gdG8gRml4ZWRDb2x1bW5zLCBpdCB3aWxsIHVzZSB0aGlzIHZhbHVlIHRvIHNldCB0aGUgd2lkdGggb2YgdGhlIGZpeGVkIGNvbHVtbiAob3IgY29sdW1ucywgaWYgbXVsdGlwbGUgY29sdW1ucyBhcmUgdXNlZCkuIFJlc2l6aW5nIHRoZSB3aW5kb3cgd2lsbCBzaW1wbHkgY2F1c2UgdGhlIERhdGFUYWJsZSBzY3JvbGxpbmcgYXJlYSB0byByZXNpemUgZHluYW1pY2FsbHkuIE5vdGUgdGhhdCBzU2Nyb2xsWElubmVyIGlzIHVzZWQgdG8gZm9yY2UgdGhlIHdpZHRoIG9mIHRoZSBEYXRhVGFibGUgLSB5b3UgcHJvYmFibHkgd29uJ3Qgd2FudCBvciBuZWVkIHRoaXMuIE5vdGUgYWxzbyB0aGF0IHRoZSBzY2FsaW5nIGluIHRoaXMgZGVtbyBjb250cmFzdHMgd2l0aCB0aGUgPGEgaHJlZj0ic2NhbGVfcmVsYXRpdmUuaHRtbCI+cmVsYXRpdmUgc2NhbGluZzwvYT4gZXhhbXBsZSB3aGVyZSB0aGUgZml4ZWQgY29sdW1uIHdpZHRoIGlzIGEgcGVyY2VudGFnZSBvZiB0aGUgdmlzaWJsZSBhcmVhLjwvcD4KCQkJCgkJCTxoMT5MaXZlIGV4YW1wbGU8L2gxPgoJCQk8ZGl2IGlkPSJkZW1vIj4KPHRhYmxlIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgYm9yZGVyPSIwIiBjbGFzcz0iZGlzcGxheSIgaWQ9ImV4YW1wbGUiPgoJPHRoZWFkPgoJCTx0cj4KCQkJPHRoPlJlbmRlcmluZyBlbmdpbmU8L3RoPgoJCQk8dGg+QnJvd3NlcjwvdGg+CgkJCTx0aD5QbGF0Zm9ybShzKTwvdGg+CgkJCTx0aD5FbmdpbmUgdmVyc2lvbjwvdGg+CgkJCTx0aD5DU1MgZ3JhZGU8L3RoPgoJCTwvdHI+Cgk8L3RoZWFkPgoJPHRmb290PgoJCTx0cj4KCQkJPHRoPlJlbmRlcmluZyBlbmdpbmU8L3RoPgoJCQk8dGg+QnJvd3NlcjwvdGg+CgkJCTx0aD5QbGF0Zm9ybShzKTwvdGg+CgkJCTx0aD5FbmdpbmUgdmVyc2lvbjwvdGg+CgkJCTx0aD5DU1MgZ3JhZGU8L3RoPgoJCTwvdHI+Cgk8L3Rmb290PgoJPHRib2R5PgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA0LjA8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDUuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNS41PC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDY8L3RkPgoJCQk8dGQ+V2luIDk4KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA3PC90ZD4KCQkJPHRkPldpbiBYUCBTUDIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkFPTCBicm93c2VyIChBT0wgZGVza3RvcCk8L3RkPgoJCQk8dGQ+V2luIFhQPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggPGJyPjEuNTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMi4wPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAzLjA8L3RkPgoJCQk8dGQ+V2luIDJrKyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5DYW1pbm8gMS4wPC90ZD4KCQkJPHRkPk9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5DYW1pbm8gMS41PC90ZD4KCQkJPHRkPk9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSA3LjI8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE1hYyBPUyA4LjYtOS4yPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIEJyb3dzZXIgODwvdGQ+CgkJCTx0ZD5XaW4gOThTRSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgTmF2aWdhdG9yIDk8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4yPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4yPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjM8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjY8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNzwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS44PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+U2VhbW9ua2V5IDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkVwaXBoYW55IDIuMjA8L3RkPgoJCQk8dGQ+R25vbWU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjI8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTI1LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDEuMzwvdGQ+CgkJCTx0ZD5PU1guMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zMTIuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMi4wPC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTkuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMy4wPC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41MjIuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5PbW5pV2ViIDUuNTwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPmlQb2QgVG91Y2ggLyBpUGhvbmU8L3RkPgoJCQk8dGQ+aVBvZDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MjAuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TNjA8L3RkPgoJCQk8dGQ+UzYwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQxMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA3LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDcuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOC4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA4LjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS4yPC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjU8L3RkPgoJCQk8dGQ+V2luIDg4KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIGZvciBXaWk8L3RkPgoJCQk8dGQ+V2lpPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+Tm9raWEgTjgwMDwvdGQ+CgkJCTx0ZD5OODAwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+TmludGVuZG8gRFMgYnJvd3NlcjwvdGQ+CgkJCTx0ZD5OaW50ZW5kbyBEUzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj44LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+Qy9BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy4xPC90ZD4KCQkJPHRkPktERSAzLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjM8L3RkPgoJCQk8dGQ+S0RFIDMuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuNTwvdGQ+CgkJCTx0ZD5LREUgMy41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA0LjU8L3RkPgoJCQk8dGQ+TWFjIE9TIDgtOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMTwvdGQ+CgkJCTx0ZD5NYWMgT1MgNy42LTk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjI8L3RkPgoJCQk8dGQ+TWFjIE9TIDgtWDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5OZXRGcm9udCAzLjE8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5OZXRGcm9udCAzLjQ8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5EaWxsbyAwLjg8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5MaW5rczwvdGQ+CgkJCTx0ZD5UZXh0IG9ubHk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+THlueDwvdGQ+CgkJCTx0ZD5UZXh0IG9ubHk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+SUUgTW9iaWxlPC90ZD4KCQkJPHRkPldpbmRvd3MgTW9iaWxlIDY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+UFNQIGJyb3dzZXI8L3RkPgoJCQk8dGQ+UFNQPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlVSI+CgkJCTx0ZD5PdGhlciBicm93c2VyczwvdGQ+CgkJCTx0ZD5BbGwgb3RoZXJzPC90ZD4KCQkJPHRkPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5VPC90ZD4KCQk8L3RyPgoJPC90Ym9keT4KPC90YWJsZT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CgkJCQoJCQkKCQkJPGgxPkluaXRpYWxpc2F0aW9uIGNvZGU8L2gxPgoJCQk8cHJlPiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic1Njcm9sbFkiOiAiMzAwcHgiLAoJCSJzU2Nyb2xsWCI6ICIxMDAlIiwKCQkic1Njcm9sbFhJbm5lciI6ICIxMjAwcHgiLAoJCSJiU2Nyb2xsQ29sbGFwc2UiOiB0cnVlLAoJCSJiUGFnaW5hdGUiOiBmYWxzZQoJfSApOwoJbmV3IEZpeGVkQ29sdW1ucyggb1RhYmxlLCB7CgkJImlMZWZ0V2lkdGgiOiAxNTAKCX0gKTsKfSApOzwvcHJlPgoKCgkJCTxoMT5Eb2N1bWVudGF0aW9uPC9oMT4KCQkJPHVsPgoJCQkJPGxpPjxhIGhyZWY9Imh0dHA6Ly9kYXRhdGFibGVzLm5ldC9leHRyYXMvZml4ZWRjb2x1bW5zIj5Vc2FnZTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9Imh0dHA6Ly9kYXRhdGFibGVzLm5ldC9kb2NzL0ZpeGVkQ29sdW1ucyI+QVBJIC8gcGFyYW1ldGVyczwvYT48L2xpPgoJCQk8L3VsPgoKCQkJPGgxPkJhc2ljIGV4YW1wbGVzPC9oMT4KCQkJPHVsPgoJCQkJPGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkJhc2ljIGRlbW8gb2YgRml4ZWRDb2x1bW5zIHdpdGggemVybyBpbml0aWFsaXNhdGlvbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImxlZnRfcmlnaHRfY29sdW1ucy5odG1sIj5GaXggdGhlIGxlZnQgYW5kIHJpZ2h0IGNvbHVtbnMgaW4gcGxhY2U8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJpbmRleF9jb2x1bW4uaHRtbCI+SW5kZXggY29sdW1uIGF0dGFjaGVkIHRvIHNpZGUgb2YgdGhlIHRhYmxlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ieF95X3Njcm9sbGluZy5odG1sIj5JbmRleCBjb2x1bW4sIGJ1dCB3aXRoIFkgc2Nyb2xsaW5nIGFuZCBubyBwYWdpbmF0aW9uPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0idHdvX2NvbHVtbnMuaHRtbCI+VHdvIGNvbHVtbnMgZml4ZWQgaW4gcGxhY2U8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJyaWdodF9jb2x1bW4uaHRtbCI+Rml4IHRoZSByaWdodCBjb2x1bW4gaW4gcGxhY2U8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJjc3Nfc2l6ZS5odG1sIj5TcGVlZGluZyB1cCByb3cgaGVpZ2h0IG1hdGNoaW5nIHdpdGggQ1NTPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0idGhlbWVkLmh0bWwiPmpRdWVyeSBVSSB0aGVtZWQgdGFibGUgd2l0aCBGaXhlZENvbHVtbnM8L2E+PC9saT4KCQkJPC91bD4KCQkJCgkJCTxoMT5BZHZhbmNlZCBleGFtcGxlczwvaDE+CgkJCTx1bD4KCQkJCTxsaT48YSBocmVmPSJyb3dzcGFuLmh0bWwiPlVzaW5nIFJPV1NQQU4gd2l0aCBGaXhlZENvbHVtbnM8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJzZXJ2ZXItc2lkZS1wcm9jZXNzaW5nLmh0bWwiPlNlcnZlci1zaWRlIHByb2Nlc3Npbmcgd2l0aCBGaXhlZENvbHVtbnM8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJjb2xfZmlsdGVyLmh0bWwiPkluZGl2aWR1YWwgY29sdW1uIGZpbHRlcmluZzwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InNjYWxlX2ZpeGVkLmh0bWwiPlNldHRpbmcgdGhlIGZpeGVkIGNvbHVtbiB3aWR0aCBhbmQgcmVzaXppbmcgdGhlIHRhYmxlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ic2NhbGVfcmVsYXRpdmUuaHRtbCI+U2V0dGluZyB0aGUgZml4ZWQgY29sdW1uIHdpZHRoIHdpdGggcmVsYXRpdmUgc2l6aW5nPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0icm93X2dyb3VwaW5nX2hlaWdodC5odG1sIj5Sb3cgZ3JvdXBpbmcgYnkgZ3JvdXBpbmcgbGlrZSByb3dzIGluIHRoZSBmaXhlZCBjb2x1bW48L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJyb3dfZ3JvdXBpbmcuaHRtbCI+Um93IGdyb3VwaW5nIGJ5IGluc2VydGluZyBhIGdyb3VwaW5nIHJvdzwvYT48L2xpPgoJCQk8dWw+CgkJCQoJCQkKCQkJPGRpdiBpZD0iZm9vdGVyIiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7Ij4KCQkJCTxzcGFuIHN0eWxlPSJmb250LXNpemU6MTBweDsiPgoJCQkJCUZpeGVkQ29sdW1ucyBhbmQgRGF0YVRhYmxlcyAmY29weTsgQWxsYW4gSmFyZGluZSAyMDExLjxicj4KCQkJCTwvc3Bhbj4KCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2JvZHk+CjwvaHRtbD4=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/scale_relative.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5GaXhlZENvbHVtbnMgZXhhbXBsZTwvdGl0bGU+CgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iY3VycmVudFN0eWxlIj4KCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fcGFnZS5jc3MiOwoJCQlAaW1wb3J0ICIuLi8uLi9tZWRpYS9jc3MvZGVtb190YWJsZS5jc3MiOwoJCQl0YWJsZS5EVEZDX0Nsb25lZCB0aCB7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH0KCQk8L3N0eWxlPgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIuLi8uLi9tZWRpYS9qcy9qcXVlcnkuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIuLi8uLi9tZWRpYS9qcy9qcXVlcnkuZGF0YVRhYmxlcy5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Im1lZGlhL2pzL0ZpeGVkQ29sdW1ucy5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KCQkJJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCQkJCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJCSJzU2Nyb2xsWSI6ICIzMDBweCIsCgkJCQkJInNTY3JvbGxYIjogIjEwMCUiLAoJCQkJCSJzU2Nyb2xsWElubmVyIjogIjEyMDBweCIsCgkJCQkJImJTY3JvbGxDb2xsYXBzZSI6IHRydWUsCgkJCQkJImJQYWdpbmF0ZSI6IGZhbHNlCgkJCQl9ICk7CgkJCQluZXcgRml4ZWRDb2x1bW5zKCBvVGFibGUsIHsKCQkJCQkic0xlZnRXaWR0aCI6ICdyZWxhdGl2ZScsCgkJCQkJImlMZWZ0V2lkdGgiOiAyMAoJCQkJfSApOwoJCQl9ICk7CgkJPC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keSBpZD0iZHRfZXhhbXBsZSI+CgkJPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0id2lkdGg6ODAlIj4KCQkJPGRpdiBjbGFzcz0iZnVsbF93aWR0aCBiaWciPgoJCQkJRml4ZWRDb2x1bW5zIGV4YW1wbGUgLSByZWxhdGl2ZSB3aWR0aCBmaXhlZCBjb2x1bW5zCgkJCTwvZGl2PgoJCQkKCQkJPGgxPlByZWFtYmxlPC9oMT4KCQkJPHA+VGhpcyBleGFtcGxlIHNob3dzIGhvdyB0aGUgZml4ZWQgY29sdW1uIGNhbiBiZSBnaXZlbiBhIHJlbGF0aXZlIHdpZHRoIChyZWxhdGl2ZSB0byB0aGUgRGF0YVRhYmxlcyB2aWV3cG9ydCkuIEJ5IGdpdmluZyA8aT5zTGVmdFdpZHRoPC9pPiBhcyAncmVsYXRpdmUnICh0aGUgZGVmYXVsdCBpcyAnZml4ZWQnKSBhbmQgdXNpbmcgPGk+aUxlZnRXaWR0aDwvaT4gdG8gaW5kaWNhdGUgd2hhdCBwZXJjZW50YWdlIG9mIHRoZSB2aWV3cG9ydCB5b3Ugd2lzaCB0aGUgZml4ZWQgY29sdW1uIHRvIHRha2UsIEZpeGVkQ29sdW1ucyB3aWxsIGF1dG9tYXRpY2FsbHkgc2NhbGUgdGhlIERhdGFUYWJsZXMgZGlzcGxheS4gUmVzaXppbmcgdGhlIHdpbmRvdyB3aWxsIGNhdXNlIHRoZSBEYXRhVGFibGUgc2Nyb2xsaW5nIGFyZWEgdG8gcmVzaXplIGR5bmFtaWNhbGx5LCBpbmNsdWRpbmcgdGhlIGZpeGVkIGNvbHVtbi4gTm90ZSB0aGF0IHNTY3JvbGxYSW5uZXIgaXMgdXNlZCB0byBmb3JjZSB0aGUgd2lkdGggb2YgdGhlIERhdGFUYWJsZSAtIHlvdSBwcm9iYWJseSB3b24ndCB3YW50IG9yIG5lZWQgdGhpcy4gTm90ZSBhbHNvIHRoYXQgdGhlIHNjYWxpbmcgaW4gdGhpcyBkZW1vIGNvbnRyYXN0cyB3aXRoIHRoZSA8YSBocmVmPSJzY2FsZV9maXhlZC5odG1sIj5maXhlZCBzY2FsaW5nPC9hPiBleGFtcGxlIHdoZXJlIHRoZSBmaXhlZCBjb2x1bW4gd2lkdGggZml4ZWQgdG8gYW4gYWJzbHV0ZSBwaXhlbCB2YWx1ZS48L3A+CgkJCQoJCQk8aDE+TGl2ZSBleGFtcGxlPC9oMT4KCQkJPGRpdiBpZD0iZGVtbyI+Cjx0YWJsZSBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIGJvcmRlcj0iMCIgY2xhc3M9ImRpc3BsYXkiIGlkPSJleGFtcGxlIj4KCTx0aGVhZD4KCQk8dHI+CgkJCTx0aD5SZW5kZXJpbmcgZW5naW5lPC90aD4KCQkJPHRoPkJyb3dzZXI8L3RoPgoJCQk8dGg+UGxhdGZvcm0ocyk8L3RoPgoJCQk8dGg+RW5naW5lIHZlcnNpb248L3RoPgoJCQk8dGg+Q1NTIGdyYWRlPC90aD4KCQk8L3RyPgoJPC90aGVhZD4KCTx0Zm9vdD4KCQk8dHI+CgkJCTx0aD5SZW5kZXJpbmcgZW5naW5lPC90aD4KCQkJPHRoPkJyb3dzZXI8L3RoPgoJCQk8dGg+UGxhdGZvcm0ocyk8L3RoPgoJCQk8dGg+RW5naW5lIHZlcnNpb248L3RoPgoJCQk8dGg+Q1NTIGdyYWRlPC90aD4KCQk8L3RyPgoJPC90Zm9vdD4KCTx0Ym9keT4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNC4wPC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA1LjA8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDUuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA2PC90ZD4KCQkJPHRkPldpbiA5OCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNzwvdGQ+CgkJCTx0ZD5XaW4gWFAgU1AyKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5BT0wgYnJvd3NlciAoQU9MIGRlc2t0b3ApPC90ZD4KCQkJPHRkPldpbiBYUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjA8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDxicj4xLjU8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDIuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMy4wPC90ZD4KCQkJPHRkPldpbiAyaysgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS45PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuMDwvdGQ+CgkJCTx0ZD5PU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuNTwvdGQ+CgkJCTx0ZD5PU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgNy4yPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBNYWMgT1MgOC42LTkuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSBCcm93c2VyIDg8L3RkPgoJCQk8dGQ+V2luIDk4U0UrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIE5hdmlnYXRvciA5PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjE8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4zPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjQ8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS42PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjc8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuODwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPlNlYW1vbmtleSAxLjE8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5FcGlwaGFueSAyLjIwPC90ZD4KCQkJPHRkPkdub21lPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMS4yPC90ZD4KCQkJPHRkPk9TWC4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEyNS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjM8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MzEyLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDIuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDE5LjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDMuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTIyLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+T21uaVdlYiA1LjU8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQyMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5pUG9kIFRvdWNoIC8gaVBob25lPC90ZD4KCQkJPHRkPmlQb2Q8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+UzYwPC90ZD4KCQkJPHRkPlM2MDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgNy4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA3LjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDguMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOC41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuMjwvdGQ+CgkJCTx0ZD5XaW4gODgrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS41PC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSBmb3IgV2lpPC90ZD4KCQkJPHRkPldpaTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5va2lhIE44MDA8L3RkPgoJCQk8dGQ+TjgwMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5pbnRlbmRvIERTIGJyb3dzZXI8L3RkPgoJCQk8dGQ+TmludGVuZG8gRFM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+OC41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkMvQTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuMTwvdGQ+CgkJCTx0ZD5LREUgMy4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy4zPC90ZD4KCQkJPHRkPktERSAzLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjU8L3RkPgoJCQk8dGQ+S0RFIDMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNC41PC90ZD4KCQkJPHRkPk1hYyBPUyA4LTk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjE8L3RkPgoJCQk8dGQ+TWFjIE9TIDcuNi05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4yPC90ZD4KCQkJPHRkPk1hYyBPUyA4LVg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy4xPC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy40PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+RGlsbG8gMC44PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TGlua3M8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkx5bng8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPklFIE1vYmlsZTwvdGQ+CgkJCTx0ZD5XaW5kb3dzIE1vYmlsZSA2PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPlBTUCBicm93c2VyPC90ZD4KCQkJPHRkPlBTUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVUiPgoJCQk8dGQ+T3RoZXIgYnJvd3NlcnM8L3RkPgoJCQk8dGQ+QWxsIG90aGVyczwvdGQ+CgkJCTx0ZD4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+VTwvdGQ+CgkJPC90cj4KCTwvdGJvZHk+CjwvdGFibGU+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgoJCQkKCQkJCgkJCTxoMT5Jbml0aWFsaXNhdGlvbiBjb2RlPC9oMT4KCQkJPHByZT4kKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNTY3JvbGxZIjogIjMwMHB4IiwKCQkic1Njcm9sbFgiOiAiMTAwJSIsCgkJInNTY3JvbGxYSW5uZXIiOiAiMTIwMHB4IiwKCQkiYlNjcm9sbENvbGxhcHNlIjogdHJ1ZSwKCQkiYlBhZ2luYXRlIjogZmFsc2UKCX0gKTsKCW5ldyBGaXhlZENvbHVtbnMoIG9UYWJsZSwgewoJCSJzTGVmdFdpZHRoIjogJ3JlbGF0aXZlJywKCQkiaUxlZnRXaWR0aCI6IDIwCgl9ICk7Cn0gKTs8L3ByZT4KCgoJCQk8aDE+RG9jdW1lbnRhdGlvbjwvaDE+CgkJCTx1bD4KCQkJCTxsaT48YSBocmVmPSJodHRwOi8vZGF0YXRhYmxlcy5uZXQvZXh0cmFzL2ZpeGVkY29sdW1ucyI+VXNhZ2U8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJodHRwOi8vZGF0YXRhYmxlcy5uZXQvZG9jcy9GaXhlZENvbHVtbnMiPkFQSSAvIHBhcmFtZXRlcnM8L2E+PC9saT4KCQkJPC91bD4KCgkJCTxoMT5CYXNpYyBleGFtcGxlczwvaDE+CgkJCTx1bD4KCQkJCTxsaT48YSBocmVmPSJpbmRleC5odG1sIj5CYXNpYyBkZW1vIG9mIEZpeGVkQ29sdW1ucyB3aXRoIHplcm8gaW5pdGlhbGlzYXRpb248L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJsZWZ0X3JpZ2h0X2NvbHVtbnMuaHRtbCI+Rml4IHRoZSBsZWZ0IGFuZCByaWdodCBjb2x1bW5zIGluIHBsYWNlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iaW5kZXhfY29sdW1uLmh0bWwiPkluZGV4IGNvbHVtbiBhdHRhY2hlZCB0byBzaWRlIG9mIHRoZSB0YWJsZTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InhfeV9zY3JvbGxpbmcuaHRtbCI+SW5kZXggY29sdW1uLCBidXQgd2l0aCBZIHNjcm9sbGluZyBhbmQgbm8gcGFnaW5hdGlvbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InR3b19jb2x1bW5zLmh0bWwiPlR3byBjb2x1bW5zIGZpeGVkIGluIHBsYWNlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0icmlnaHRfY29sdW1uLmh0bWwiPkZpeCB0aGUgcmlnaHQgY29sdW1uIGluIHBsYWNlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iY3NzX3NpemUuaHRtbCI+U3BlZWRpbmcgdXAgcm93IGhlaWdodCBtYXRjaGluZyB3aXRoIENTUzwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InRoZW1lZC5odG1sIj5qUXVlcnkgVUkgdGhlbWVkIHRhYmxlIHdpdGggRml4ZWRDb2x1bW5zPC9hPjwvbGk+CgkJCTwvdWw+CgkJCQoJCQk8aDE+QWR2YW5jZWQgZXhhbXBsZXM8L2gxPgoJCQk8dWw+CgkJCQk8bGk+PGEgaHJlZj0icm93c3Bhbi5odG1sIj5Vc2luZyBST1dTUEFOIHdpdGggRml4ZWRDb2x1bW5zPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ic2VydmVyLXNpZGUtcHJvY2Vzc2luZy5odG1sIj5TZXJ2ZXItc2lkZSBwcm9jZXNzaW5nIHdpdGggRml4ZWRDb2x1bW5zPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iY29sX2ZpbHRlci5odG1sIj5JbmRpdmlkdWFsIGNvbHVtbiBmaWx0ZXJpbmc8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJzY2FsZV9maXhlZC5odG1sIj5TZXR0aW5nIHRoZSBmaXhlZCBjb2x1bW4gd2lkdGggYW5kIHJlc2l6aW5nIHRoZSB0YWJsZTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InNjYWxlX3JlbGF0aXZlLmh0bWwiPlNldHRpbmcgdGhlIGZpeGVkIGNvbHVtbiB3aWR0aCB3aXRoIHJlbGF0aXZlIHNpemluZzwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InJvd19ncm91cGluZ19oZWlnaHQuaHRtbCI+Um93IGdyb3VwaW5nIGJ5IGdyb3VwaW5nIGxpa2Ugcm93cyBpbiB0aGUgZml4ZWQgY29sdW1uPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0icm93X2dyb3VwaW5nLmh0bWwiPlJvdyBncm91cGluZyBieSBpbnNlcnRpbmcgYSBncm91cGluZyByb3c8L2E+PC9saT4KCQkJPHVsPgoJCQkKCQkJCgkJCTxkaXYgaWQ9ImZvb3RlciIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyOyI+CgkJCQk8c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwcHg7Ij4KCQkJCQlGaXhlZENvbHVtbnMgYW5kIERhdGFUYWJsZXMgJmNvcHk7IEFsbGFuIEphcmRpbmUgMjAxMS48YnI+CgkJCQk8L3NwYW4+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/server-side-processing.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5GaXhlZENvbHVtbnMgZXhhbXBsZTwvdGl0bGU+CgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iY3VycmVudFN0eWxlIj4KCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fcGFnZS5jc3MiOwoJCQlAaW1wb3J0ICIuLi8uLi9tZWRpYS9jc3MvZGVtb190YWJsZS5jc3MiOwoJCTwvc3R5bGU+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5kYXRhVGFibGVzLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiIHNyYz0ibWVkaWEvanMvRml4ZWRDb2x1bW5zLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgoJCQkkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJCQkJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkJImJQcm9jZXNzaW5nIjogdHJ1ZSwKCQkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkJInNTY3JvbGxYIjogIjEwMCUiLAoJCQkJCSJzU2Nyb2xsWElubmVyIjogIjE1MCUiLAoJCQkJCSJmbkluaXRDb21wbGV0ZSI6IGZ1bmN0aW9uICgpIHsKCQkJCQkJbmV3IEZpeGVkQ29sdW1ucyggb1RhYmxlICk7CgkJCQkJfQoJCQkJfSApOwoJCQl9ICk7CgkJPC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keSBpZD0iZHRfZXhhbXBsZSI+CgkJPGRpdiBpZD0iY29udGFpbmVyIj4KCQkJPGRpdiBjbGFzcz0iZnVsbF93aWR0aCBiaWciPgoJCQkJRml4ZWRDb2x1bW5zIGV4YW1wbGUgLSBzZXJ2ZXItc2lkZSBwcm9jZXNzaW5nCgkJCTwvZGl2PgoJCQkKCQkJPGgxPlByZWFtYmxlPC9oMT4KCQkJPHA+VGhpcyBleGFtcGxlIHNob3dzIGhvdyBGaXhlZENvbHVtbnMgY2FuIGJlIHVzZWQgd2l0aCBzZXJ2ZXItc2lkZSBwcm9jZXNzaW5nIGluIERhdGFUYWJsZXMgdG8gY29wZSB3aXRoIHZlcnkgbGFyZ2UgdGFibGVzLiBUaGUgb25seSBzcGVjaWFsIHRoaW5nIHRvIGNvbnNpZGVyIGhlcmUgaXMgdGhhdCB0aGUgRml4ZWRDb2x1bW5zIGluc3RhbmNlIG11c3QgYmUgaW5pdGlhbGlzZWQgb25jZSB0aGUgdGFibGUgaGFzIGNvbXBsZXRlZCBpdHMgZnVsbCBpbml0aWFsaXNhdGlvbiAtIHRoaXMgaXMgZG9uZSB1c2luZyA8aT5mbkluaXRDb21wbGV0ZTwvaT4uPC9wPgoJCQkKCQkJPGgxPkxpdmUgZXhhbXBsZTwvaDE+CgkJCTxkaXYgaWQ9ImRlbW8iPgo8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIGNsYXNzPSJkaXNwbGF5IiBpZD0iZXhhbXBsZSI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGZvb3Q+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGZvb3Q+Cgk8dGJvZHk+Cgk8L3Rib2R5Pgo8L3RhYmxlPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0ic3BhY2VyIj48L2Rpdj4KCQkJCgkJCQoJCQk8aDE+SW5pdGlhbGlzYXRpb24gY29kZTwvaDE+CgkJCTxwcmU+JChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJiUHJvY2Vzc2luZyI6IHRydWUsCgkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCSJzU2Nyb2xsWCI6ICIxMDAlIiwKCQkic1Njcm9sbFhJbm5lciI6ICIxNTAlIiwKCQkiZm5Jbml0Q29tcGxldGUiOiBmdW5jdGlvbiAoKSB7CgkgICAgbmV3IEZpeGVkQ29sdW1ucyggb1RhYmxlICk7CgkgIH0KCX0gKTsKfSApOzwvcHJlPgoKCgkJCTxoMT5Eb2N1bWVudGF0aW9uPC9oMT4KCQkJPHVsPgoJCQkJPGxpPjxhIGhyZWY9Imh0dHA6Ly9kYXRhdGFibGVzLm5ldC9leHRyYXMvZml4ZWRjb2x1bW5zIj5Vc2FnZTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9Imh0dHA6Ly9kYXRhdGFibGVzLm5ldC9kb2NzL0ZpeGVkQ29sdW1ucyI+QVBJIC8gcGFyYW1ldGVyczwvYT48L2xpPgoJCQk8L3VsPgoKCQkJPGgxPkJhc2ljIGV4YW1wbGVzPC9oMT4KCQkJPHVsPgoJCQkJPGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkJhc2ljIGRlbW8gb2YgRml4ZWRDb2x1bW5zIHdpdGggemVybyBpbml0aWFsaXNhdGlvbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImxlZnRfcmlnaHRfY29sdW1ucy5odG1sIj5GaXggdGhlIGxlZnQgYW5kIHJpZ2h0IGNvbHVtbnMgaW4gcGxhY2U8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJpbmRleF9jb2x1bW4uaHRtbCI+SW5kZXggY29sdW1uIGF0dGFjaGVkIHRvIHNpZGUgb2YgdGhlIHRhYmxlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ieF95X3Njcm9sbGluZy5odG1sIj5JbmRleCBjb2x1bW4sIGJ1dCB3aXRoIFkgc2Nyb2xsaW5nIGFuZCBubyBwYWdpbmF0aW9uPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0idHdvX2NvbHVtbnMuaHRtbCI+VHdvIGNvbHVtbnMgZml4ZWQgaW4gcGxhY2U8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJyaWdodF9jb2x1bW4uaHRtbCI+Rml4IHRoZSByaWdodCBjb2x1bW4gaW4gcGxhY2U8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJjc3Nfc2l6ZS5odG1sIj5TcGVlZGluZyB1cCByb3cgaGVpZ2h0IG1hdGNoaW5nIHdpdGggQ1NTPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0idGhlbWVkLmh0bWwiPmpRdWVyeSBVSSB0aGVtZWQgdGFibGUgd2l0aCBGaXhlZENvbHVtbnM8L2E+PC9saT4KCQkJPC91bD4KCQkJCgkJCTxoMT5BZHZhbmNlZCBleGFtcGxlczwvaDE+CgkJCTx1bD4KCQkJCTxsaT48YSBocmVmPSJyb3dzcGFuLmh0bWwiPlVzaW5nIFJPV1NQQU4gd2l0aCBGaXhlZENvbHVtbnM8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJzZXJ2ZXItc2lkZS1wcm9jZXNzaW5nLmh0bWwiPlNlcnZlci1zaWRlIHByb2Nlc3Npbmcgd2l0aCBGaXhlZENvbHVtbnM8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJjb2xfZmlsdGVyLmh0bWwiPkluZGl2aWR1YWwgY29sdW1uIGZpbHRlcmluZzwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InNjYWxlX2ZpeGVkLmh0bWwiPlNldHRpbmcgdGhlIGZpeGVkIGNvbHVtbiB3aWR0aCBhbmQgcmVzaXppbmcgdGhlIHRhYmxlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ic2NhbGVfcmVsYXRpdmUuaHRtbCI+U2V0dGluZyB0aGUgZml4ZWQgY29sdW1uIHdpZHRoIHdpdGggcmVsYXRpdmUgc2l6aW5nPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0icm93X2dyb3VwaW5nX2hlaWdodC5odG1sIj5Sb3cgZ3JvdXBpbmcgYnkgZ3JvdXBpbmcgbGlrZSByb3dzIGluIHRoZSBmaXhlZCBjb2x1bW48L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJyb3dfZ3JvdXBpbmcuaHRtbCI+Um93IGdyb3VwaW5nIGJ5IGluc2VydGluZyBhIGdyb3VwaW5nIHJvdzwvYT48L2xpPgoJCQk8dWw+CgkJCQoJCQkKCQkJPGRpdiBpZD0iZm9vdGVyIiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7Ij4KCQkJCTxzcGFuIHN0eWxlPSJmb250LXNpemU6MTBweDsiPgoJCQkJCUZpeGVkQ29sdW1ucyBhbmQgRGF0YVRhYmxlcyAmY29weTsgQWxsYW4gSmFyZGluZSAyMDExLjxicj4KCQkJCTwvc3Bhbj4KCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2JvZHk+CjwvaHRtbD4=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/themed.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5GaXhlZENvbHVtbnMgZXhhbXBsZTwvdGl0bGU+CgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iY3VycmVudFN0eWxlIj4KCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fcGFnZS5jc3MiOwoJCQlAaW1wb3J0ICIuLi8uLi9tZWRpYS9jc3MvZGVtb190YWJsZV9qdWkuY3NzIjsKCQkJQGltcG9ydCAiLi4vLi4vZXhhbXBsZXMvZXhhbXBsZXNfc3VwcG9ydC90aGVtZXMvc21vb3RobmVzcy9qcXVlcnktdWktMS44LjQuY3VzdG9tLmNzcyI7CgkJPC9zdHlsZT4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiIHNyYz0iLi4vLi4vbWVkaWEvanMvanF1ZXJ5LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiIHNyYz0iLi4vLi4vbWVkaWEvanMvanF1ZXJ5LmRhdGFUYWJsZXMuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSJtZWRpYS9qcy9GaXhlZENvbHVtbnMuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CgkJCSQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkJCQl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCQkiYkpRdWVyeVVJIjogdHJ1ZSwKCQkJCQkic1Njcm9sbFkiOiAiMzAwcHgiLAoJCQkJCSJzU2Nyb2xsWCI6ICIxMDAlIiwKCQkJCQkic1Njcm9sbFhJbm5lciI6ICIxNTAlIiwKCQkJCQkiYlNjcm9sbENvbGxhcHNlIjogdHJ1ZSwKCQkJCQkiYlBhZ2luYXRlIjogZmFsc2UKCQkJCX0gKTsKCQkJCW5ldyBGaXhlZENvbHVtbnMoIG9UYWJsZSApOwoJCQl9ICk7CgkJPC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keSBpZD0iZHRfZXhhbXBsZSI+CgkJPGRpdiBpZD0iY29udGFpbmVyIj4KCQkJPGRpdiBjbGFzcz0iZnVsbF93aWR0aCBiaWciPgoJCQkJRml4ZWRDb2x1bW5zIGV4YW1wbGUgLSBqUXVlcnkgVUkgdGhlbWVkIHRhYmxlCgkJCTwvZGl2PgoJCQkKCQkJPGgxPlByZWFtYmxlPC9oMT4KCQkJPHA+VGhpcyBleGFtcGxlIGlzIGJhc2ljYWxseSB0aGUgc2FtZSBhcyB0aGUgPGEgaHJlZj0iaW5kZXguaHRtbCI+bWFpbiBleGFtcGxlPC9hPiwgYnV0IGluIHRoaXMgY2FzZSB0aGUgdGFibGUgaXMgdGhlbWVkIHdpdGggalF1ZXJ5IFVJIFRoZW1lUm9sbGVyLjwvcD4KCQkJCgkJCTxoMT5MaXZlIGV4YW1wbGU8L2gxPgoJCQk8ZGl2IGlkPSJkZW1vIj4KPHRhYmxlIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgYm9yZGVyPSIwIiBjbGFzcz0iZGlzcGxheSIgaWQ9ImV4YW1wbGUiPgoJPHRoZWFkPgoJCTx0cj4KCQkJPHRoPlJlbmRlcmluZyBlbmdpbmU8L3RoPgoJCQk8dGg+QnJvd3NlcjwvdGg+CgkJCTx0aD5QbGF0Zm9ybShzKTwvdGg+CgkJCTx0aD5FbmdpbmUgdmVyc2lvbjwvdGg+CgkJCTx0aD5DU1MgZ3JhZGU8L3RoPgoJCTwvdHI+Cgk8L3RoZWFkPgoJPHRmb290PgoJCTx0cj4KCQkJPHRoPlJlbmRlcmluZyBlbmdpbmU8L3RoPgoJCQk8dGg+QnJvd3NlcjwvdGg+CgkJCTx0aD5QbGF0Zm9ybShzKTwvdGg+CgkJCTx0aD5FbmdpbmUgdmVyc2lvbjwvdGg+CgkJCTx0aD5DU1MgZ3JhZGU8L3RoPgoJCTwvdHI+Cgk8L3Rmb290PgoJPHRib2R5PgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA0LjA8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDUuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNS41PC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDY8L3RkPgoJCQk8dGQ+V2luIDk4KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA3PC90ZD4KCQkJPHRkPldpbiBYUCBTUDIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkFPTCBicm93c2VyIChBT0wgZGVza3RvcCk8L3RkPgoJCQk8dGQ+V2luIFhQPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggPGJyPjEuNTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMi4wPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAzLjA8L3RkPgoJCQk8dGQ+V2luIDJrKyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5DYW1pbm8gMS4wPC90ZD4KCQkJPHRkPk9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5DYW1pbm8gMS41PC90ZD4KCQkJPHRkPk9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSA3LjI8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE1hYyBPUyA4LjYtOS4yPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIEJyb3dzZXIgODwvdGQ+CgkJCTx0ZD5XaW4gOThTRSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgTmF2aWdhdG9yIDk8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4yPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4yPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjM8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjY8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNzwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS44PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+U2VhbW9ua2V5IDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkVwaXBoYW55IDIuMjA8L3RkPgoJCQk8dGQ+R25vbWU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjI8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTI1LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDEuMzwvdGQ+CgkJCTx0ZD5PU1guMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zMTIuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMi4wPC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTkuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMy4wPC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41MjIuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5PbW5pV2ViIDUuNTwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPmlQb2QgVG91Y2ggLyBpUGhvbmU8L3RkPgoJCQk8dGQ+aVBvZDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MjAuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TNjA8L3RkPgoJCQk8dGQ+UzYwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQxMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA3LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDcuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOC4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA4LjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS4yPC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjU8L3RkPgoJCQk8dGQ+V2luIDg4KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIGZvciBXaWk8L3RkPgoJCQk8dGQ+V2lpPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+Tm9raWEgTjgwMDwvdGQ+CgkJCTx0ZD5OODAwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+TmludGVuZG8gRFMgYnJvd3NlcjwvdGQ+CgkJCTx0ZD5OaW50ZW5kbyBEUzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj44LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+Qy9BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy4xPC90ZD4KCQkJPHRkPktERSAzLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjM8L3RkPgoJCQk8dGQ+S0RFIDMuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuNTwvdGQ+CgkJCTx0ZD5LREUgMy41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA0LjU8L3RkPgoJCQk8dGQ+TWFjIE9TIDgtOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMTwvdGQ+CgkJCTx0ZD5NYWMgT1MgNy42LTk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjI8L3RkPgoJCQk8dGQ+TWFjIE9TIDgtWDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5OZXRGcm9udCAzLjE8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5OZXRGcm9udCAzLjQ8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5EaWxsbyAwLjg8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5MaW5rczwvdGQ+CgkJCTx0ZD5UZXh0IG9ubHk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+THlueDwvdGQ+CgkJCTx0ZD5UZXh0IG9ubHk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+SUUgTW9iaWxlPC90ZD4KCQkJPHRkPldpbmRvd3MgTW9iaWxlIDY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+UFNQIGJyb3dzZXI8L3RkPgoJCQk8dGQ+UFNQPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlVSI+CgkJCTx0ZD5PdGhlciBicm93c2VyczwvdGQ+CgkJCTx0ZD5BbGwgb3RoZXJzPC90ZD4KCQkJPHRkPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5VPC90ZD4KCQk8L3RyPgoJPC90Ym9keT4KPC90YWJsZT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CgkJCQoJCQkKCQkJPGgxPkluaXRpYWxpc2F0aW9uIGNvZGU8L2gxPgoJCQk8cHJlPiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkiYkpRdWVyeVVJIjogdHJ1ZSwKCQkic1Njcm9sbFkiOiAiMzAwcHgiLAoJCSJzU2Nyb2xsWCI6ICIxMDAlIiwKCQkic1Njcm9sbFhJbm5lciI6ICIxNTAlIiwKCQkiYlNjcm9sbENvbGxhcHNlIjogdHJ1ZSwKCQkiYlBhZ2luYXRlIjogZmFsc2UKCX0gKTsKCW5ldyBGaXhlZENvbHVtbnMoIG9UYWJsZSApOwp9ICk7PC9wcmU+CgoKCQkJPGgxPkRvY3VtZW50YXRpb248L2gxPgoJCQk8dWw+CgkJCQk8bGk+PGEgaHJlZj0iaHR0cDovL2RhdGF0YWJsZXMubmV0L2V4dHJhcy9maXhlZGNvbHVtbnMiPlVzYWdlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iaHR0cDovL2RhdGF0YWJsZXMubmV0L2RvY3MvRml4ZWRDb2x1bW5zIj5BUEkgLyBwYXJhbWV0ZXJzPC9hPjwvbGk+CgkJCTwvdWw+CgoJCQk8aDE+QmFzaWMgZXhhbXBsZXM8L2gxPgoJCQk8dWw+CgkJCQk8bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+QmFzaWMgZGVtbyBvZiBGaXhlZENvbHVtbnMgd2l0aCB6ZXJvIGluaXRpYWxpc2F0aW9uPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ibGVmdF9yaWdodF9jb2x1bW5zLmh0bWwiPkZpeCB0aGUgbGVmdCBhbmQgcmlnaHQgY29sdW1ucyBpbiBwbGFjZTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImluZGV4X2NvbHVtbi5odG1sIj5JbmRleCBjb2x1bW4gYXR0YWNoZWQgdG8gc2lkZSBvZiB0aGUgdGFibGU8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJ4X3lfc2Nyb2xsaW5nLmh0bWwiPkluZGV4IGNvbHVtbiwgYnV0IHdpdGggWSBzY3JvbGxpbmcgYW5kIG5vIHBhZ2luYXRpb248L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJ0d29fY29sdW1ucy5odG1sIj5Ud28gY29sdW1ucyBmaXhlZCBpbiBwbGFjZTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InJpZ2h0X2NvbHVtbi5odG1sIj5GaXggdGhlIHJpZ2h0IGNvbHVtbiBpbiBwbGFjZTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImNzc19zaXplLmh0bWwiPlNwZWVkaW5nIHVwIHJvdyBoZWlnaHQgbWF0Y2hpbmcgd2l0aCBDU1M8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJ0aGVtZWQuaHRtbCI+alF1ZXJ5IFVJIHRoZW1lZCB0YWJsZSB3aXRoIEZpeGVkQ29sdW1uczwvYT48L2xpPgoJCQk8L3VsPgoJCQkKCQkJPGgxPkFkdmFuY2VkIGV4YW1wbGVzPC9oMT4KCQkJPHVsPgoJCQkJPGxpPjxhIGhyZWY9InJvd3NwYW4uaHRtbCI+VXNpbmcgUk9XU1BBTiB3aXRoIEZpeGVkQ29sdW1uczwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InNlcnZlci1zaWRlLXByb2Nlc3NpbmcuaHRtbCI+U2VydmVyLXNpZGUgcHJvY2Vzc2luZyB3aXRoIEZpeGVkQ29sdW1uczwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImNvbF9maWx0ZXIuaHRtbCI+SW5kaXZpZHVhbCBjb2x1bW4gZmlsdGVyaW5nPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ic2NhbGVfZml4ZWQuaHRtbCI+U2V0dGluZyB0aGUgZml4ZWQgY29sdW1uIHdpZHRoIGFuZCByZXNpemluZyB0aGUgdGFibGU8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJzY2FsZV9yZWxhdGl2ZS5odG1sIj5TZXR0aW5nIHRoZSBmaXhlZCBjb2x1bW4gd2lkdGggd2l0aCByZWxhdGl2ZSBzaXppbmc8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJyb3dfZ3JvdXBpbmdfaGVpZ2h0Lmh0bWwiPlJvdyBncm91cGluZyBieSBncm91cGluZyBsaWtlIHJvd3MgaW4gdGhlIGZpeGVkIGNvbHVtbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InJvd19ncm91cGluZy5odG1sIj5Sb3cgZ3JvdXBpbmcgYnkgaW5zZXJ0aW5nIGEgZ3JvdXBpbmcgcm93PC9hPjwvbGk+CgkJCTx1bD4KCQkJCgkJCQoJCQk8ZGl2IGlkPSJmb290ZXIiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjsiPgoJCQkJPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMHB4OyI+CgkJCQkJRml4ZWRDb2x1bW5zIGFuZCBEYXRhVGFibGVzICZjb3B5OyBBbGxhbiBKYXJkaW5lIDIwMTEuPGJyPgoJCQkJPC9zcGFuPgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/two_columns.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5GaXhlZENvbHVtbnMgZXhhbXBsZTwvdGl0bGU+CgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iY3VycmVudFN0eWxlIj4KCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fcGFnZS5jc3MiOwoJCQlAaW1wb3J0ICIuLi8uLi9tZWRpYS9jc3MvZGVtb190YWJsZS5jc3MiOwoJCTwvc3R5bGU+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5kYXRhVGFibGVzLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiIHNyYz0ibWVkaWEvanMvRml4ZWRDb2x1bW5zLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgoJCQkkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJCQkJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkJInNTY3JvbGxYIjogIjEwMCUiLAoJCQkJCSJzU2Nyb2xsWElubmVyIjogIjE0MCUiLAoJCQkJCSJiU2Nyb2xsQ29sbGFwc2UiOiB0cnVlCgkJCQl9ICk7CgkJCQluZXcgRml4ZWRDb2x1bW5zKCBvVGFibGUsIHsKCQkJCQkiaUxlZnRDb2x1bW5zIjogMiwKCQkJCQkiaUxlZnRXaWR0aCI6IDM1MAoJCQkJfSApOwoJCQl9ICk7CgkJPC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keSBpZD0iZHRfZXhhbXBsZSI+CgkJPGRpdiBpZD0iY29udGFpbmVyIj4KCQkJPGRpdiBjbGFzcz0iZnVsbF93aWR0aCBiaWciPgoJCQkJRml4ZWRDb2x1bW5zIGV4YW1wbGUgLSB0d28gY29sdW1ucyBmaXhlZAoJCQk8L2Rpdj4KCQkJCgkJCTxoMT5QcmVhbWJsZTwvaDE+CgkJCTxwPkZpeGVkQ29sdW1ucyBhbGxvd3MgbW9yZSB0aGFuIG9uZSBjb2x1bW4gdG8gYmUgZnJvemVuIGludG8gcGxhY2UgdXNpbmcgdGhlIDxpPmlMZWZ0Q29sdW1uczwvaT4gcGFyYW1ldGVyLiBUaGUgZXhhbXBsZSBiZWxvdyBzaG93cyB0d28gY29sdW1ucyBmaXhlZC48L3A+CgkJCQoJCQk8aDE+TGl2ZSBleGFtcGxlPC9oMT4KCQkJPGRpdiBpZD0iZGVtbyI+Cjx0YWJsZSBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIGJvcmRlcj0iMCIgY2xhc3M9ImRpc3BsYXkiIGlkPSJleGFtcGxlIj4KCTx0aGVhZD4KCQk8dHI+CgkJCTx0aD5SZW5kZXJpbmcgZW5naW5lPC90aD4KCQkJPHRoPkJyb3dzZXI8L3RoPgoJCQk8dGg+UGxhdGZvcm0ocyk8L3RoPgoJCQk8dGg+RW5naW5lIHZlcnNpb248L3RoPgoJCQk8dGg+Q1NTIGdyYWRlPC90aD4KCQk8L3RyPgoJPC90aGVhZD4KCTx0Ym9keT4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNC4wPC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA1LjA8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDUuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA2PC90ZD4KCQkJPHRkPldpbiA5OCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNzwvdGQ+CgkJCTx0ZD5XaW4gWFAgU1AyKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5BT0wgYnJvd3NlciAoQU9MIGRlc2t0b3ApPC90ZD4KCQkJPHRkPldpbiBYUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjA8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDEuNTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMi4wPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAzLjA8L3RkPgoJCQk8dGQ+V2luIDJrKyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5DYW1pbm8gMS4wPC90ZD4KCQkJPHRkPk9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5DYW1pbm8gMS41PC90ZD4KCQkJPHRkPk9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSA3LjI8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE1hYyBPUyA4LjYtOS4yPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIEJyb3dzZXIgODwvdGQ+CgkJCTx0ZD5XaW4gOThTRSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgTmF2aWdhdG9yIDk8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4yPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4yPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjM8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjY8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNzwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS44PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+U2VhbW9ua2V5IDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkVwaXBoYW55IDIuMjA8L3RkPgoJCQk8dGQ+R25vbWU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjI8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTI1LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDEuMzwvdGQ+CgkJCTx0ZD5PU1guMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zMTIuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMi4wPC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTkuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMy4wPC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41MjIuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5PbW5pV2ViIDUuNTwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPmlQb2QgVG91Y2ggLyBpUGhvbmU8L3RkPgoJCQk8dGQ+aVBvZDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MjAuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TNjA8L3RkPgoJCQk8dGQ+UzYwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQxMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA3LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDcuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOC4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA4LjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS4yPC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjU8L3RkPgoJCQk8dGQ+V2luIDg4KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIGZvciBXaWk8L3RkPgoJCQk8dGQ+V2lpPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+Tm9raWEgTjgwMDwvdGQ+CgkJCTx0ZD5OODAwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+TmludGVuZG8gRFMgYnJvd3NlcjwvdGQ+CgkJCTx0ZD5OaW50ZW5kbyBEUzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj44LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+Qy9BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy4xPC90ZD4KCQkJPHRkPktERSAzLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjM8L3RkPgoJCQk8dGQ+S0RFIDMuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuNTwvdGQ+CgkJCTx0ZD5LREUgMy41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA0LjU8L3RkPgoJCQk8dGQ+TWFjIE9TIDgtOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMTwvdGQ+CgkJCTx0ZD5NYWMgT1MgNy42LTk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjI8L3RkPgoJCQk8dGQ+TWFjIE9TIDgtWDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5OZXRGcm9udCAzLjE8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5OZXRGcm9udCAzLjQ8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5EaWxsbyAwLjg8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5MaW5rczwvdGQ+CgkJCTx0ZD5UZXh0IG9ubHk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+THlueDwvdGQ+CgkJCTx0ZD5UZXh0IG9ubHk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+SUUgTW9iaWxlPC90ZD4KCQkJPHRkPldpbmRvd3MgTW9iaWxlIDY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+UFNQIGJyb3dzZXI8L3RkPgoJCQk8dGQ+UFNQPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlVSI+CgkJCTx0ZD5PdGhlciBicm93c2VyczwvdGQ+CgkJCTx0ZD5BbGwgb3RoZXJzPC90ZD4KCQkJPHRkPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5VPC90ZD4KCQk8L3RyPgoJPC90Ym9keT4KCTx0Zm9vdD4KCQk8dHI+CgkJCTx0aD5SZW5kZXJpbmcgZW5naW5lPC90aD4KCQkJPHRoPkJyb3dzZXI8L3RoPgoJCQk8dGg+UGxhdGZvcm0ocyk8L3RoPgoJCQk8dGg+RW5naW5lIHZlcnNpb248L3RoPgoJCQk8dGg+Q1NTIGdyYWRlPC90aD4KCQk8L3RyPgoJPC90Zm9vdD4KPC90YWJsZT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CgkJCQoJCQkKCQkJPGgxPkluaXRpYWxpc2F0aW9uIGNvZGU8L2gxPgoJCQk8cHJlPiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CiAJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CiAJCSJzU2Nyb2xsWCI6ICIxMDAlIiwKIAkJInNTY3JvbGxYSW5uZXIiOiAiMTUwJSIsCiAJCSJiU2Nyb2xsQ29sbGFwc2UiOiB0cnVlCiAJfSApOwogCW5ldyBGaXhlZENvbHVtbnMoIG9UYWJsZSwgewogCQkiaUxlZnRDb2x1bW5zIjogMiwKCQkiaUxlZnRXaWR0aCI6IDM1MAogCX0gKTsKIH0gKTs8L3ByZT4KCgoJCQk8aDE+RG9jdW1lbnRhdGlvbjwvaDE+CgkJCTx1bD4KCQkJCTxsaT48YSBocmVmPSJodHRwOi8vZGF0YXRhYmxlcy5uZXQvZXh0cmFzL2ZpeGVkY29sdW1ucyI+VXNhZ2U8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJodHRwOi8vZGF0YXRhYmxlcy5uZXQvZG9jcy9GaXhlZENvbHVtbnMiPkFQSSAvIHBhcmFtZXRlcnM8L2E+PC9saT4KCQkJPC91bD4KCgkJCTxoMT5CYXNpYyBleGFtcGxlczwvaDE+CgkJCTx1bD4KCQkJCTxsaT48YSBocmVmPSJpbmRleC5odG1sIj5CYXNpYyBkZW1vIG9mIEZpeGVkQ29sdW1ucyB3aXRoIHplcm8gaW5pdGlhbGlzYXRpb248L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJsZWZ0X3JpZ2h0X2NvbHVtbnMuaHRtbCI+Rml4IHRoZSBsZWZ0IGFuZCByaWdodCBjb2x1bW5zIGluIHBsYWNlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iaW5kZXhfY29sdW1uLmh0bWwiPkluZGV4IGNvbHVtbiBhdHRhY2hlZCB0byBzaWRlIG9mIHRoZSB0YWJsZTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InhfeV9zY3JvbGxpbmcuaHRtbCI+SW5kZXggY29sdW1uLCBidXQgd2l0aCBZIHNjcm9sbGluZyBhbmQgbm8gcGFnaW5hdGlvbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InR3b19jb2x1bW5zLmh0bWwiPlR3byBjb2x1bW5zIGZpeGVkIGluIHBsYWNlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0icmlnaHRfY29sdW1uLmh0bWwiPkZpeCB0aGUgcmlnaHQgY29sdW1uIGluIHBsYWNlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iY3NzX3NpemUuaHRtbCI+U3BlZWRpbmcgdXAgcm93IGhlaWdodCBtYXRjaGluZyB3aXRoIENTUzwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InRoZW1lZC5odG1sIj5qUXVlcnkgVUkgdGhlbWVkIHRhYmxlIHdpdGggRml4ZWRDb2x1bW5zPC9hPjwvbGk+CgkJCTwvdWw+CgkJCQoJCQk8aDE+QWR2YW5jZWQgZXhhbXBsZXM8L2gxPgoJCQk8dWw+CgkJCQk8bGk+PGEgaHJlZj0icm93c3Bhbi5odG1sIj5Vc2luZyBST1dTUEFOIHdpdGggRml4ZWRDb2x1bW5zPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ic2VydmVyLXNpZGUtcHJvY2Vzc2luZy5odG1sIj5TZXJ2ZXItc2lkZSBwcm9jZXNzaW5nIHdpdGggRml4ZWRDb2x1bW5zPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iY29sX2ZpbHRlci5odG1sIj5JbmRpdmlkdWFsIGNvbHVtbiBmaWx0ZXJpbmc8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJzY2FsZV9maXhlZC5odG1sIj5TZXR0aW5nIHRoZSBmaXhlZCBjb2x1bW4gd2lkdGggYW5kIHJlc2l6aW5nIHRoZSB0YWJsZTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InNjYWxlX3JlbGF0aXZlLmh0bWwiPlNldHRpbmcgdGhlIGZpeGVkIGNvbHVtbiB3aWR0aCB3aXRoIHJlbGF0aXZlIHNpemluZzwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InJvd19ncm91cGluZ19oZWlnaHQuaHRtbCI+Um93IGdyb3VwaW5nIGJ5IGdyb3VwaW5nIGxpa2Ugcm93cyBpbiB0aGUgZml4ZWQgY29sdW1uPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0icm93X2dyb3VwaW5nLmh0bWwiPlJvdyBncm91cGluZyBieSBpbnNlcnRpbmcgYSBncm91cGluZyByb3c8L2E+PC9saT4KCQkJPHVsPgoJCQkKCQkJCgkJCTxkaXYgaWQ9ImZvb3RlciIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyOyI+CgkJCQk8c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwcHg7Ij4KCQkJCQlGaXhlZENvbHVtbnMgYW5kIERhdGFUYWJsZXMgJmNvcHk7IEFsbGFuIEphcmRpbmUgMjAxMS48YnI+CgkJCQk8L3NwYW4+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedColumns/x_y_scrolling.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5GaXhlZENvbHVtbnMgZXhhbXBsZTwvdGl0bGU+CgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iY3VycmVudFN0eWxlIj4KCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fcGFnZS5jc3MiOwoJCQlAaW1wb3J0ICIuLi8uLi9tZWRpYS9jc3MvZGVtb190YWJsZS5jc3MiOwoJCQl0ZC5pbmRleCB7IGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCBibGFjazsgfQoJCQl0YWJsZS5kaXNwbGF5IHRoLnNvcnRpbmdfZGlzYWJsZWQgeyBib3JkZXItYm90dG9tOiAxcHggc29saWQgd2hpdGU7IH0KCQk8L3N0eWxlPgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIuLi8uLi9tZWRpYS9qcy9qcXVlcnkuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIuLi8uLi9tZWRpYS9qcy9qcXVlcnkuZGF0YVRhYmxlcy5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Im1lZGlhL2pzL0ZpeGVkQ29sdW1ucy5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KCQkJJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCQkJCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJCSJzU2Nyb2xsWSI6ICIzMDBweCIsCgkJCQkJInNTY3JvbGxYIjogIjEwMCUiLAoJCQkJCSJzU2Nyb2xsWElubmVyIjogIjE1MCUiLAoJCQkJCSJiU2Nyb2xsQ29sbGFwc2UiOiB0cnVlLAoJCQkJCSJiUGFnaW5hdGUiOiBmYWxzZSwKCQkJCQkiZm5QcmVEcmF3Q2FsbGJhY2siOiBmdW5jdGlvbiAoIG9TZXR0aW5ncyApIHsKCQkJCQkJLyogTmVlZCB0byByZWRvIHRoZSBjb3VudGVycyBpZiBmaWx0ZXJlZCBvciBzb3J0ZWQgKi8KCQkJCQkJaWYgKCBvU2V0dGluZ3MuYlNvcnRlZCB8fCBvU2V0dGluZ3MuYkZpbHRlcmVkICkgewoJCQkJCQkJZm9yICggdmFyIGk9MCwgaUxlbj1vU2V0dGluZ3MuYWlEaXNwbGF5Lmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApIHsKCQkJCQkJCQl2YXIgblRyID0gb1NldHRpbmdzLmFvRGF0YVsgb1NldHRpbmdzLmFpRGlzcGxheVtpXSBdLm5UcjsKCgkJCQkJCQkJLy8gVXBkYXRlIHRoZSBpbmRleCBjb2x1bW4gYW5kIGRvIHNvIHdpdGhvdXQgcmVkcmF3aW5nIHRoZSB0YWJsZQoJCQkJCQkJCXRoaXMuZm5VcGRhdGUoIGkrMSwgblRyLCAwLCBmYWxzZSwgZmFsc2UgKTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCX0sCgkJCQkJImFvQ29sdW1uRGVmcyI6IFsKCQkJCQkJeyAiYlNvcnRhYmxlIjogZmFsc2UsICJzQ2xhc3MiOiAiaW5kZXgiLCAiYVRhcmdldHMiOiBbIDAgXSB9CgkJCQkJXSwKCQkJCQkiYWFTb3J0aW5nIjogW1sgMSwgJ2FzYycgXV0KCQkJCX0gKTsKCQkJCW5ldyBGaXhlZENvbHVtbnMoIG9UYWJsZSApOwoJCQl9ICk7CgkJPC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keSBpZD0iZHRfZXhhbXBsZSI+CgkJPGRpdiBpZD0iY29udGFpbmVyIj4KCQkJPGRpdiBjbGFzcz0iZnVsbF93aWR0aCBiaWciPgoJCQkJRml4ZWRDb2x1bW5zIGV4YW1wbGUgLSBYIGFuZCBZIHNjcm9sbGluZwoJCQk8L2Rpdj4KCQkJCgkJCTxoMT5QcmVhbWJsZTwvaDE+CgkJCTxwPlRoaXMgZXhhbXBsZSBpcyBiYXNpY2FsbHkgdGhlIHNhbWUgYXMgdGhlIDxhIGhyZWY9ImluZGV4X2NvbHVtbi5odG1sIj5pbmRleCBjb2x1bW4gZXhhbXBsZTwvYT4gYnV0IGluIHRoaXMgY2FzZSBzaG93cyBwYWdpbmF0aW9uIGRpc2FibGVkIGFuZCBZIHNjcm9sbGluZyBpbiB1c2UuPC9wPgoJCQkKCQkJPGgxPkxpdmUgZXhhbXBsZTwvaDE+CgkJCTxkaXYgaWQ9ImRlbW8iPgo8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIGNsYXNzPSJkaXNwbGF5IiBpZD0iZXhhbXBsZSI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGggd2lkdGg9IjMlIj4mbmJzcDs8L3RoPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGJvZHk+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNC4wPC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjI8L3RkPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDUuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zPC90ZD4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA1LjU8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40PC90ZD4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA2PC90ZD4KCQkJPHRkPldpbiA5OCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjU8L3RkPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA3PC90ZD4KCQkJPHRkPldpbiBYUCBTUDIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj42PC90ZD4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+QU9MIGJyb3dzZXIgKEFPTCBkZXNrdG9wKTwvdGQ+CgkJCTx0ZD5XaW4gWFA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjc8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjA8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj44PC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMS41PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+OTwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDIuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEwPC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMy4wPC90ZD4KCQkJPHRkPldpbiAyaysgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS45PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTE8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuMDwvdGQ+CgkJCTx0ZD5PU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTI8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuNTwvdGQ+CgkJCTx0ZD5PU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTM8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgNy4yPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBNYWMgT1MgOC42LTkuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xNDwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSBCcm93c2VyIDg8L3RkPgoJCQk8dGQ+V2luIDk4U0UrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE1PC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIE5hdmlnYXRvciA5PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTY8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTc8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjE8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xODwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE5PC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4zPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MjA8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjQ8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4yMTwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjIyPC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS42PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MjM8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjc8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4yNDwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuODwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjI1PC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPlNlYW1vbmtleSAxLjE8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4yNjwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5FcGlwaGFueSAyLjIwPC90ZD4KCQkJPHRkPkdub21lPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjI3PC90ZD4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMS4yPC90ZD4KCQkJPHRkPk9TWC4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEyNS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+Mjg8L3RkPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjM8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MzEyLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4yOTwvdGQ+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDIuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDE5LjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zMDwvdGQ+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDMuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTIyLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zMTwvdGQ+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+T21uaVdlYiA1LjU8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQyMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMyPC90ZD4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5pUG9kIFRvdWNoIC8gaVBob25lPC90ZD4KCQkJPHRkPmlQb2Q8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zMzwvdGQ+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+UzYwPC90ZD4KCQkJPHRkPlM2MDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zNDwvdGQ+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgNy4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjM1PC90ZD4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA3LjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MzY8L3RkPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDguMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zNzwvdGQ+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOC41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjM4PC90ZD4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+Mzk8L3RkPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuMjwvdGQ+CgkJCTx0ZD5XaW4gODgrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MDwvdGQ+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS41PC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQxPC90ZD4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSBmb3IgV2lpPC90ZD4KCQkJPHRkPldpaTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDI8L3RkPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5va2lhIE44MDA8L3RkPgoJCQk8dGQ+TjgwMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDM8L3RkPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5pbnRlbmRvIERTIGJyb3dzZXI8L3RkPgoJCQk8dGQ+TmludGVuZG8gRFM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+OC41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkMvQTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40NDwvdGQ+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuMTwvdGQ+CgkJCTx0ZD5LREUgMy4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQ1PC90ZD4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy4zPC90ZD4KCQkJPHRkPktERSAzLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDY8L3RkPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjU8L3RkPgoJCQk8dGQ+S0RFIDMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40NzwvdGQ+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNC41PC90ZD4KCQkJPHRkPk1hYyBPUyA4LTk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQ4PC90ZD4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjE8L3RkPgoJCQk8dGQ+TWFjIE9TIDcuNi05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40OTwvdGQ+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4yPC90ZD4KCQkJPHRkPk1hYyBPUyA4LVg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUwPC90ZD4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy4xPC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUxPC90ZD4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy40PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUyPC90ZD4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+RGlsbG8gMC44PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUzPC90ZD4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TGlua3M8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41NDwvdGQ+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkx5bng8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41NTwvdGQ+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPklFIE1vYmlsZTwvdGQ+CgkJCTx0ZD5XaW5kb3dzIE1vYmlsZSA2PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41NjwvdGQ+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPlBTUCBicm93c2VyPC90ZD4KCQkJPHRkPlBTUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVUiPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTc8L3RkPgoJCQk8dGQ+T3RoZXIgYnJvd3NlcnM8L3RkPgoJCQk8dGQ+QWxsIG90aGVyczwvdGQ+CgkJCTx0ZD4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+VTwvdGQ+CgkJPC90cj4KCTwvdGJvZHk+CjwvdGFibGU+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgoJCQkKCQkJCgkJCTxoMT5Jbml0aWFsaXNhdGlvbiBjb2RlPC9oMT4KCQkJPHByZT4kKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNTY3JvbGxZIjogIjMwMHB4IiwKCQkic1Njcm9sbFgiOiAiMTAwJSIsCgkJInNTY3JvbGxYSW5uZXIiOiAiMTUwJSIsCgkJImJTY3JvbGxDb2xsYXBzZSI6IHRydWUsCgkJImJQYWdpbmF0ZSI6IGZhbHNlLAoJCSJmbkRyYXdDYWxsYmFjayI6IGZ1bmN0aW9uICggb1NldHRpbmdzICkgewoJCQkvKiBOZWVkIHRvIHJlZG8gdGhlIGNvdW50ZXJzIGlmIGZpbHRlcmVkIG9yIHNvcnRlZCAqLwoJCQlpZiAoIG9TZXR0aW5ncy5iU29ydGVkIHx8IG9TZXR0aW5ncy5iRmlsdGVyZWQgKSB7CgkJCQlmb3IgKCB2YXIgaT0wLCBpTGVuPW9TZXR0aW5ncy5haURpc3BsYXkubGVuZ3RoIDsgaSZsdDtpTGVuIDsgaSsrICkgewoJCQkJCXZhciBuVHIgPSBvU2V0dGluZ3MuYW9EYXRhWyBvU2V0dGluZ3MuYWlEaXNwbGF5W2ldIF0ublRyOwoKCQkJCQkvLyBVcGRhdGUgdGhlIGluZGV4IGNvbHVtbiBhbmQgZG8gc28gd2l0aG91dCByZWRyYXdpbmcgdGhlIHRhYmxlCgkJCQkJdGhpcy5mblVwZGF0ZSggaSsxLCBuVHIsIDAsIGZhbHNlLCBmYWxzZSApOwoJCQkJfQoJCQl9CgkJfSwKCQkiYW9Db2x1bW5EZWZzIjogWwoJCQl7ICJiU29ydGFibGUiOiBmYWxzZSwgInNDbGFzcyI6ICJpbmRleCIsICJhVGFyZ2V0cyI6IFsgMCBdIH0KCQldLAoJCSJhYVNvcnRpbmciOiBbWyAxLCAnYXNjJyBdXQoJfSApOwoJbmV3IEZpeGVkQ29sdW1ucyggb1RhYmxlICk7Cn0gKTs8L3ByZT4KCgoJCQk8aDE+RG9jdW1lbnRhdGlvbjwvaDE+CgkJCTx1bD4KCQkJCTxsaT48YSBocmVmPSJodHRwOi8vZGF0YXRhYmxlcy5uZXQvZXh0cmFzL2ZpeGVkY29sdW1ucyI+VXNhZ2U8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJodHRwOi8vZGF0YXRhYmxlcy5uZXQvZG9jcy9GaXhlZENvbHVtbnMiPkFQSSAvIHBhcmFtZXRlcnM8L2E+PC9saT4KCQkJPC91bD4KCgkJCTxoMT5CYXNpYyBleGFtcGxlczwvaDE+CgkJCTx1bD4KCQkJCTxsaT48YSBocmVmPSJpbmRleC5odG1sIj5CYXNpYyBkZW1vIG9mIEZpeGVkQ29sdW1ucyB3aXRoIHplcm8gaW5pdGlhbGlzYXRpb248L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJsZWZ0X3JpZ2h0X2NvbHVtbnMuaHRtbCI+Rml4IHRoZSBsZWZ0IGFuZCByaWdodCBjb2x1bW5zIGluIHBsYWNlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iaW5kZXhfY29sdW1uLmh0bWwiPkluZGV4IGNvbHVtbiBhdHRhY2hlZCB0byBzaWRlIG9mIHRoZSB0YWJsZTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InhfeV9zY3JvbGxpbmcuaHRtbCI+SW5kZXggY29sdW1uLCBidXQgd2l0aCBZIHNjcm9sbGluZyBhbmQgbm8gcGFnaW5hdGlvbjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InR3b19jb2x1bW5zLmh0bWwiPlR3byBjb2x1bW5zIGZpeGVkIGluIHBsYWNlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0icmlnaHRfY29sdW1uLmh0bWwiPkZpeCB0aGUgcmlnaHQgY29sdW1uIGluIHBsYWNlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iY3NzX3NpemUuaHRtbCI+U3BlZWRpbmcgdXAgcm93IGhlaWdodCBtYXRjaGluZyB3aXRoIENTUzwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InRoZW1lZC5odG1sIj5qUXVlcnkgVUkgdGhlbWVkIHRhYmxlIHdpdGggRml4ZWRDb2x1bW5zPC9hPjwvbGk+CgkJCTwvdWw+CgkJCQoJCQk8aDE+QWR2YW5jZWQgZXhhbXBsZXM8L2gxPgoJCQk8dWw+CgkJCQk8bGk+PGEgaHJlZj0icm93c3Bhbi5odG1sIj5Vc2luZyBST1dTUEFOIHdpdGggRml4ZWRDb2x1bW5zPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0ic2VydmVyLXNpZGUtcHJvY2Vzc2luZy5odG1sIj5TZXJ2ZXItc2lkZSBwcm9jZXNzaW5nIHdpdGggRml4ZWRDb2x1bW5zPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iY29sX2ZpbHRlci5odG1sIj5JbmRpdmlkdWFsIGNvbHVtbiBmaWx0ZXJpbmc8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJzY2FsZV9maXhlZC5odG1sIj5TZXR0aW5nIHRoZSBmaXhlZCBjb2x1bW4gd2lkdGggYW5kIHJlc2l6aW5nIHRoZSB0YWJsZTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InNjYWxlX3JlbGF0aXZlLmh0bWwiPlNldHRpbmcgdGhlIGZpeGVkIGNvbHVtbiB3aWR0aCB3aXRoIHJlbGF0aXZlIHNpemluZzwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InJvd19ncm91cGluZ19oZWlnaHQuaHRtbCI+Um93IGdyb3VwaW5nIGJ5IGdyb3VwaW5nIGxpa2Ugcm93cyBpbiB0aGUgZml4ZWQgY29sdW1uPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0icm93X2dyb3VwaW5nLmh0bWwiPlJvdyBncm91cGluZyBieSBpbnNlcnRpbmcgYSBncm91cGluZyByb3c8L2E+PC9saT4KCQkJPHVsPgoJCQkKCQkJCgkJCTxkaXYgaWQ9ImZvb3RlciIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyOyI+CgkJCQk8c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwcHg7Ij4KCQkJCQlGaXhlZENvbHVtbnMgYW5kIERhdGFUYWJsZXMgJmNvcHk7IEFsbGFuIEphcmRpbmUgMjAxMS48YnI+CgkJCQk8L3NwYW4+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedHeader/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedHeader/html_table.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5GaXhlZEhlYWRlciBleGFtcGxlPC90aXRsZT4KCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJjdXJyZW50U3R5bGUiPgoJCQlAaW1wb3J0ICIuLi8uLi9tZWRpYS9jc3MvZGVtb19wYWdlLmNzcyI7CgkJCUBpbXBvcnQgIi4uLy4uL21lZGlhL2Nzcy9kZW1vX3RhYmxlLmNzcyI7CgkJCS5GaXhlZEhlYWRlcl9DbG9uZWQgdGggeyBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgfQoJCTwvc3R5bGU+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9ImpzL0ZpeGVkSGVhZGVyLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgoJCQkkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJCQkJbmV3IEZpeGVkSGVhZGVyKCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZScpICk7CgkJCX0gKTsKCQk8L3NjcmlwdD4KCTwvaGVhZD4KCTxib2R5IGlkPSJkdF9leGFtcGxlIj4KCQk8ZGl2IGlkPSJjb250YWluZXIiPgoJCQk8ZGl2IGNsYXNzPSJmdWxsX3dpZHRoIGJpZyI+CgkJCQlGaXhlZEhlYWRlciBleGFtcGxlIC0gSFRNTCB0YWJsZQoJCQk8L2Rpdj4KCQkJCgkJCTxoMT5QcmVhbWJsZTwvaDE+CgkJCTxwPkZpeGVkSGVhZGVyIHdpbGwgd29yayBzdGFuZGFsb25lIGFzIHdlbGwgKGkuZS4gd2l0aG91dCBEYXRhVGFibGVzKSwgYXMgY2FuIGJlIHNlZW4gaW4gdGhpcyBleGFtcGxlLiBUaGUgc3RhbmRhcmQgc2V0dGluZ3MgY2FuIGJlIGFwcGxpZWQgdG8gRml4ZWRIZWFkZXIgdG8gZW5oYW5jZSB0aGUgdGFibGUuPC9wPgoJCQkKCQkJPGgxPkxpdmUgZXhhbXBsZTwvaDE+CgkJCTxkaXYgaWQ9ImRlbW8iPgo8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIGNsYXNzPSJkaXNwbGF5IiBpZD0iZXhhbXBsZSI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGJvZHk+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDQuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNS4wPC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA1LjU8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNjwvdGQ+CgkJCTx0ZD5XaW4gOTgrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDc8L3RkPgoJCQk8dGQ+V2luIFhQIFNQMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+QU9MIGJyb3dzZXIgKEFPTCBkZXNrdG9wKTwvdGQ+CgkJCTx0ZD5XaW4gWFA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMS4wPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjU8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDIuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMy4wPC90ZD4KCQkJPHRkPldpbiAyaysgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS45PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuMDwvdGQ+CgkJCTx0ZD5PU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuNTwvdGQ+CgkJCTx0ZD5PU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgNy4yPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBNYWMgT1MgOC42LTkuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSBCcm93c2VyIDg8L3RkPgoJCQk8dGQ+V2luIDk4U0UrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIE5hdmlnYXRvciA5PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjE8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4zPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjQ8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS42PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjc8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuODwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPlNlYW1vbmtleSAxLjE8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5FcGlwaGFueSAyLjIwPC90ZD4KCQkJPHRkPkdub21lPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMS4yPC90ZD4KCQkJPHRkPk9TWC4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEyNS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjM8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MzEyLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDIuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDE5LjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDMuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTIyLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+T21uaVdlYiA1LjU8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQyMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5pUG9kIFRvdWNoIC8gaVBob25lPC90ZD4KCQkJPHRkPmlQb2Q8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+UzYwPC90ZD4KCQkJPHRkPlM2MDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgNy4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA3LjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDguMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOC41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuMjwvdGQ+CgkJCTx0ZD5XaW4gODgrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS41PC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSBmb3IgV2lpPC90ZD4KCQkJPHRkPldpaTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5va2lhIE44MDA8L3RkPgoJCQk8dGQ+TjgwMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5pbnRlbmRvIERTIGJyb3dzZXI8L3RkPgoJCQk8dGQ+TmludGVuZG8gRFM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+OC41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkMvQTxzdXA+MTwvc3VwPjwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuMTwvdGQ+CgkJCTx0ZD5LREUgMy4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy4zPC90ZD4KCQkJPHRkPktERSAzLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjU8L3RkPgoJCQk8dGQ+S0RFIDMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNC41PC90ZD4KCQkJPHRkPk1hYyBPUyA4LTk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjE8L3RkPgoJCQk8dGQ+TWFjIE9TIDcuNi05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4yPC90ZD4KCQkJPHRkPk1hYyBPUyA4LVg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy4xPC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy40PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+RGlsbG8gMC44PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TGlua3M8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkx5bng8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPklFIE1vYmlsZTwvdGQ+CgkJCTx0ZD5XaW5kb3dzIE1vYmlsZSA2PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPlBTUCBicm93c2VyPC90ZD4KCQkJPHRkPlBTUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVUiPgoJCQk8dGQ+T3RoZXIgYnJvd3NlcnM8L3RkPgoJCQk8dGQ+QWxsIG90aGVyczwvdGQ+CgkJCTx0ZD4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+VTwvdGQ+CgkJPC90cj4KCTwvdGJvZHk+Cgk8dGZvb3Q+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGZvb3Q+CjwvdGFibGU+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgoJCQkKCQkJCgkJCTxoMT5Jbml0aWFsaXNhdGlvbiBjb2RlPC9oMT4KCQkJPHByZT4kKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJbmV3IEZpeGVkSGVhZGVyKCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZScpICk7Cn0gKTs8L3ByZT4KCgkJCTxoMT5FeGFtcGxlczwvaDE+CgkJCTx1bD4KCQkJCTxsaT48YSBocmVmPSJpbmRleC5odG1sIj5CYXNpYyBkZW1vIHdpdGgganVzdCB0aGUgSGVhZGVyRml4ZWQ8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJodG1sX3RhYmxlLmh0bWwiPkZpeGVkSGVhZGVyIHdpdGhvdXQgcmVxdWlyaW5nIERhdGFUYWJsZXM8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJ0d29fdGFibGVzLmh0bWwiPlR3byB0YWJsZXMgd2l0aCBGaXhlZEhlYWRlcnMgb24gYSBzaW5nbGUgcGFnZTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InRvcF9ib3R0b21fbGVmdF9yaWdodC5odG1sIj5BIHNwcmVhZHNoZWV0IHN0eWxlIGxheW91dCB3aXRoIGhlYWRlciBhbmQgZm9vdGVyLCBsZWZ0IGFuZCByaWdodCBjb2x1bW5zIGFsbCBmaXhlZC48L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJ6SW5kZXhlcy5odG1sIj5DaGFuZ2UgdGhlIGRpc3BsYXkgb3JkZXIgb2YgdGhlIGZpeGVkIGVsZW1lbnRzICh6SW5kZXgpPC9hPjwvbGk+CgkJCTwvdWw+CgkJCgkJCTxwPkVtcHR5IHBhcmFncmFwaHMgdG8gZm9yY2Ugc2Nyb2xsaW5nIS4uLjwvcD4KCQkJPHAgc3R5bGU9ImhlaWdodDo1MDBweDsiPiZuYnNwOzwvcD4KCQkJCgkJCQoJCQk8ZGl2IGlkPSJmb290ZXIiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjsiPgoJCQkJPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMHB4OyI+CgkJCQkJRml4ZWRIZWFkZXIgYW5kIERhdGFUYWJsZXMgJmNvcHk7IEFsbGFuIEphcmRpbmUgMjAwOS0yMDEwLjxicj4KCQkJCTwvc3Bhbj4KCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2JvZHk+CjwvaHRtbD4=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedHeader/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5GaXhlZEhlYWRlciBleGFtcGxlPC90aXRsZT4KCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJjdXJyZW50U3R5bGUiPgoJCQlAaW1wb3J0ICIuLi8uLi9tZWRpYS9jc3MvZGVtb19wYWdlLmNzcyI7CgkJCUBpbXBvcnQgIi4uLy4uL21lZGlhL2Nzcy9kZW1vX3RhYmxlLmNzcyI7CgkJCS5GaXhlZEhlYWRlcl9DbG9uZWQgdGggeyBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgfQoJCTwvc3R5bGU+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5kYXRhVGFibGVzLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiIHNyYz0ianMvRml4ZWRIZWFkZXIuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CgkJCSQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkJCQl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCQkJCW5ldyBGaXhlZEhlYWRlciggb1RhYmxlICk7CgkJCX0gKTsKCQk8L3NjcmlwdD4KCTwvaGVhZD4KCTxib2R5IGlkPSJkdF9leGFtcGxlIj4KCQk8ZGl2IGlkPSJjb250YWluZXIiPgoJCQk8ZGl2IGNsYXNzPSJmdWxsX3dpZHRoIGJpZyI+CgkJCQlGaXhlZEhlYWRlciBleGFtcGxlCgkJCTwvZGl2PgoJCQkKCQkJPGgxPlByZWFtYmxlPC9oMT4KCQkJPHA+V2hlbiBkaXNwbGF5aW5nIGxhcmdlIGFtb3VudHMgb2YgZGF0YSBpbiBhIHRhYmxlLCBpdCBjYW4gb2Z0ZW4gYmUgdXNlZnVsIGZvciB0aGUgZW5kIHVzZXIgdG8gaGF2ZSB0aGUgY29sdW1uIHRpdGxlcyAodGhlICJ0aGVhZCIgZWxlbWVudCBhcyBhIHdob2xlIGluIGZhY3QpIGFsd2F5cyB2aXNpYmxlLiBUaGlzIGlzIHBhcnRpY3VsYXJseSB0cnVlIGlmIHVzaW5nIERhdGFUYWJsZXMgd2l0aCBwYWdpbmF0aW9uIGRpc2FibGVkLCBvciB0aGUgZGlzcGxheSBsZW5ndGggaXMgc2V0IHRvIGEgaGlnaCB2YWx1ZS48L3A+CgkJCTxwPlRoZSAiRml4ZWRIZWFkZXIiIGFkZC1vbiBmb3IgRGF0YVRhYmxlcyB3aWxsIGVuc3VyZSB0aGF0IHlvdXIgY29sdW1uIHRpdGxlcyB3aWxsIHNjcm9sbCB3aXRoIHRoZSBwYWdlLCBzaG93aW5nIGF0IHRoZSB0b3Agb2YgdGhlIHRhYmxlIGF0IGFsbCB0aW1lcy4gVHJ5IHRoZSBkZW1vIHNob3duIGJlbG93IC0geW91IG1pZ2h0IHdhbnQgdG8gdHJ5IHJlc2l6aW5nIHRoZSB3aW5kb3cgZm9yIGZ1bGwgZWZmZWN0ISBOb3RlIGFsc28gdGhhdCB0aGUgY29sdW1uIHRpdGxlcyByZW1haW4gY2xpY2thYmxlIHRvIHBlcmZvcm0gc29ydGluZyBvbiB0aGUgdGFibGUuPC9wPgoJCQkKCQkJPGgxPkxpdmUgZXhhbXBsZTwvaDE+CgkJCTxkaXYgaWQ9ImRlbW8iPgo8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIGNsYXNzPSJkaXNwbGF5IiBpZD0iZXhhbXBsZSI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGJvZHk+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDQuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNS4wPC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA1LjU8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNjwvdGQ+CgkJCTx0ZD5XaW4gOTgrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDc8L3RkPgoJCQk8dGQ+V2luIFhQIFNQMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+QU9MIGJyb3dzZXIgKEFPTCBkZXNrdG9wKTwvdGQ+CgkJCTx0ZD5XaW4gWFA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMS4wPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjU8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDIuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMy4wPC90ZD4KCQkJPHRkPldpbiAyaysgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS45PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuMDwvdGQ+CgkJCTx0ZD5PU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuNTwvdGQ+CgkJCTx0ZD5PU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgNy4yPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBNYWMgT1MgOC42LTkuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSBCcm93c2VyIDg8L3RkPgoJCQk8dGQ+V2luIDk4U0UrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIE5hdmlnYXRvciA5PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjE8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4zPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjQ8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS42PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjc8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuODwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPlNlYW1vbmtleSAxLjE8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5FcGlwaGFueSAyLjIwPC90ZD4KCQkJPHRkPkdub21lPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMS4yPC90ZD4KCQkJPHRkPk9TWC4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEyNS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjM8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MzEyLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDIuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDE5LjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDMuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTIyLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+T21uaVdlYiA1LjU8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQyMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5pUG9kIFRvdWNoIC8gaVBob25lPC90ZD4KCQkJPHRkPmlQb2Q8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+UzYwPC90ZD4KCQkJPHRkPlM2MDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgNy4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA3LjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDguMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOC41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuMjwvdGQ+CgkJCTx0ZD5XaW4gODgrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS41PC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSBmb3IgV2lpPC90ZD4KCQkJPHRkPldpaTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5va2lhIE44MDA8L3RkPgoJCQk8dGQ+TjgwMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5pbnRlbmRvIERTIGJyb3dzZXI8L3RkPgoJCQk8dGQ+TmludGVuZG8gRFM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+OC41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkMvQTxzdXA+MTwvc3VwPjwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuMTwvdGQ+CgkJCTx0ZD5LREUgMy4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy4zPC90ZD4KCQkJPHRkPktERSAzLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjU8L3RkPgoJCQk8dGQ+S0RFIDMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNC41PC90ZD4KCQkJPHRkPk1hYyBPUyA4LTk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjE8L3RkPgoJCQk8dGQ+TWFjIE9TIDcuNi05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4yPC90ZD4KCQkJPHRkPk1hYyBPUyA4LVg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy4xPC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy40PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+RGlsbG8gMC44PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TGlua3M8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkx5bng8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPklFIE1vYmlsZTwvdGQ+CgkJCTx0ZD5XaW5kb3dzIE1vYmlsZSA2PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPlBTUCBicm93c2VyPC90ZD4KCQkJPHRkPlBTUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVUiPgoJCQk8dGQ+T3RoZXIgYnJvd3NlcnM8L3RkPgoJCQk8dGQ+QWxsIG90aGVyczwvdGQ+CgkJCTx0ZD4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+VTwvdGQ+CgkJPC90cj4KCTwvdGJvZHk+Cgk8dGZvb3Q+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGZvb3Q+CjwvdGFibGU+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgoJCQkKCQkJCgkJCTxoMT5Jbml0aWFsaXNhdGlvbiBjb2RlPC9oMT4KCQkJPHByZT4kKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7CgluZXcgRml4ZWRIZWFkZXIoIG9UYWJsZSApOwp9ICk7PC9wcmU+CgoJCQk8aDE+RXhhbXBsZXM8L2gxPgoJCQk8dWw+CgkJCQk8bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+QmFzaWMgZGVtbyB3aXRoIGp1c3QgdGhlIEhlYWRlckZpeGVkPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iaHRtbF90YWJsZS5odG1sIj5GaXhlZEhlYWRlciB3aXRob3V0IHJlcXVpcmluZyBEYXRhVGFibGVzPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0idHdvX3RhYmxlcy5odG1sIj5Ud28gdGFibGVzIHdpdGggRml4ZWRIZWFkZXJzIG9uIGEgc2luZ2xlIHBhZ2U8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJ0b3BfYm90dG9tX2xlZnRfcmlnaHQuaHRtbCI+QSBzcHJlYWRzaGVldCBzdHlsZSBsYXlvdXQgd2l0aCBoZWFkZXIgYW5kIGZvb3RlciwgbGVmdCBhbmQgcmlnaHQgY29sdW1ucyBhbGwgZml4ZWQuPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iekluZGV4ZXMuaHRtbCI+Q2hhbmdlIHRoZSBkaXNwbGF5IG9yZGVyIG9mIHRoZSBmaXhlZCBlbGVtZW50cyAoekluZGV4KTwvYT48L2xpPgoJCQk8L3VsPgoJCQoJCQk8cD5FbXB0eSBwYXJhZ3JhcGhzIHRvIGZvcmNlIHNjcm9sbGluZyEuLi48L3A+CgkJCTxwIHN0eWxlPSJoZWlnaHQ6NTAwcHg7Ij4mbmJzcDs8L3A+CgkJCQoJCQkKCQkJPGRpdiBpZD0iZm9vdGVyIiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7Ij4KCQkJCTxzcGFuIHN0eWxlPSJmb250LXNpemU6MTBweDsiPgoJCQkJCUZpeGVkSGVhZGVyIGFuZCBEYXRhVGFibGVzICZjb3B5OyBBbGxhbiBKYXJkaW5lIDIwMDkuPGJyPgoJCQkJPC9zcGFuPgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedHeader/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedHeader/js/FixedHeader.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogRmlsZTogICAgICAgIEZpeGVkSGVhZGVyLmpzCiAqIFZlcnNpb246ICAgICAyLjAuNgogKiBEZXNjcmlwdGlvbjogIkZpeCIgYSBoZWFkZXIgYXQgdGhlIHRvcCBvZiB0aGUgdGFibGUsIHNvIGl0IHNjcm9sbHMgd2l0aCB0aGUgdGFibGUKICogQXV0aG9yOiAgICAgIEFsbGFuIEphcmRpbmUgKHd3dy5zcHJ5bWVkaWEuY28udWspCiAqIENyZWF0ZWQ6ICAgICBXZWQgMTYgU2VwIDIwMDkgMTk6NDY6MzAgQlNUCiAqIExhbmd1YWdlOiAgICBKYXZhc2NyaXB0CiAqIExpY2Vuc2U6ICAgICBHUEwgdjIgb3IgQlNEIDMgcG9pbnQgc3R5bGUKICogUHJvamVjdDogICAgIEp1c3QgYSBsaXR0bGUgYml0IG9mIGZ1biAtIGVuam95IDotKQogKiBDb250YWN0OiAgICAgd3d3LnNwcnltZWRpYS5jby51ay9jb250YWN0CiAqIAogKiBDb3B5cmlnaHQgMjAwOS0yMDEyIEFsbGFuIEphcmRpbmUsIGFsbCByaWdodHMgcmVzZXJ2ZWQuCiAqCiAqIFRoaXMgc291cmNlIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZSwgdW5kZXIgZWl0aGVyIHRoZSBHUEwgdjIgbGljZW5zZSBvciBhCiAqIEJTRCBzdHlsZSBsaWNlbnNlLCBhdmFpbGFibGUgYXQ6CiAqICAgaHR0cDovL2RhdGF0YWJsZXMubmV0L2xpY2Vuc2VfZ3BsMgogKiAgIGh0dHA6Ly9kYXRhdGFibGVzLm5ldC9saWNlbnNlX2JzZAogKi8KCi8qCiAqIEZ1bmN0aW9uOiBGaXhlZEhlYWRlcgogKiBQdXJwb3NlOiAgUHJvdmlkZSAnZml4ZWQnIGhlYWRlciwgZm9vdGVyIGFuZCBjb2x1bW5zIG9uIGFuIEhUTUwgdGFibGUKICogUmV0dXJuczogIG9iamVjdDpGaXhlZEhlYWRlciAtIG11c3QgYmUgY2FsbGVkIHdpdGggJ25ldycKICogSW5wdXRzOiAgIG1peGVkOm1UYWJsZSAtIHRhcmdldCB0YWJsZQogKgkJCQkJICAgMS4gRGF0YVRhYmxlIG9iamVjdCAtIHdoZW4gdXNpbmcgRml4ZWRIZWFkZXIgd2l0aCBEYXRhVGFibGVzLCBvcgogKgkJCQkJICAgMi4gSFRNTCB0YWJsZSBub2RlIC0gd2hlbiB1c2luZyBGaXhlZEhlYWRlciB3aXRob3V0IERhdGFUYWJsZXMKICogICAgICAgICAgIG9iamVjdDpvSW5pdCAtIGluaXRpYWxpc2F0aW9uIHNldHRpbmdzLCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyAoZWFjaCBvcHRpb25hbCkKICogICAgICAgICAgICAgYm9vbDp0b3AgLSAgICBmaXggdGhlIGhlYWRlciAoZGVmYXVsdCB0cnVlKQogKiAgICAgICAgICAgICBib29sOmJvdHRvbSAtIGZpeCB0aGUgZm9vdGVyIChkZWZhdWx0IGZhbHNlKQogKiAgICAgICAgICAgICBib29sOmxlZnQgLSAgIGZpeCB0aGUgbGVmdCBtb3N0IGNvbHVtbiAoZGVmYXVsdCBmYWxzZSkKICogICAgICAgICAgICAgYm9vbDpyaWdodCAtICBmaXggdGhlIHJpZ2h0IG1vc3QgY29sdW1uIChkZWZhdWx0IGZhbHNlKQogKiAgICAgICAgICAgICBpbnQ6elRvcCAtICAgIGZpeGVkIGhlYWRlciB6SW5kZXgKICogICAgICAgICAgICAgaW50OnpCb3R0b20gLSBmaXhlZCBmb290ZXIgekluZGV4CiAqICAgICAgICAgICAgIGludDp6TGVmdCAtICAgZml4ZWQgbGVmdCB6SW5kZXgKICogICAgICAgICAgICAgaW50OnpSaWdodCAtICBmaXhlZCByaWdodCB6SW5kZXgKICovCnZhciBGaXhlZEhlYWRlciA9IGZ1bmN0aW9uICggbVRhYmxlLCBvSW5pdCApIHsKCS8qIFNhbml0eSBjaGVjayAtIHlvdSBqdXN0IGtub3cgaXQgd2lsbCBoYXBwZW4gKi8KCWlmICggdHlwZW9mIHRoaXMuZm5Jbml0ICE9ICdmdW5jdGlvbicgKQoJewoJCWFsZXJ0KCAiRml4ZWRIZWFkZXIgd2FybmluZzogRml4ZWRIZWFkZXIgbXVzdCBiZSBpbml0aWFsaXNlZCB3aXRoIHRoZSAnbmV3JyBrZXl3b3JkLiIgKTsKCQlyZXR1cm47Cgl9CgkKCXZhciB0aGF0ID0gdGhpczsKCXZhciBvU2V0dGluZ3MgPSB7CgkJImFvQ2FjaGUiOiBbXSwKCQkib1NpZGVzIjogewoJCQkidG9wIjogdHJ1ZSwKCQkJImJvdHRvbSI6IGZhbHNlLAoJCQkibGVmdCI6IGZhbHNlLAoJCQkicmlnaHQiOiBmYWxzZQoJCX0sCgkJIm9aSW5kZXhlcyI6IHsKCQkJInRvcCI6IDEwNCwKCQkJImJvdHRvbSI6IDEwMywKCQkJImxlZnQiOiAxMDIsCgkJCSJyaWdodCI6IDEwMQoJCX0sCgkJIm9NZXMiOiB7CgkJCSJpVGFibGVXaWR0aCI6IDAsCgkJCSJpVGFibGVIZWlnaHQiOiAwLAoJCQkiaVRhYmxlTGVmdCI6IDAsCgkJCSJpVGFibGVSaWdodCI6IDAsIC8qIG5vdGUgdGhpcyBpcyBsZWZ0K3dpZHRoLCBub3QgYWN0dWFsbHkgInJpZ2h0IiAqLwoJCQkiaVRhYmxlVG9wIjogMCwKCQkJImlUYWJsZUJvdHRvbSI6IDAgLyogbm90ZSB0aGlzIGlzIHRvcCtoZWlnaHQsIG5vdCBhY3R1YWxseSAiYm90dG9tIiAqLwoJCX0sCgkJIm9PZmZzZXQiOiB7CgkJCSJ0b3AiOiAwCgkJfSwKCQkiblRhYmxlIjogbnVsbCwKCQkiYlVzZUFic1BvcyI6IGZhbHNlLAoJCSJiRm9vdGVyIjogZmFsc2UKCX07CgkKCS8qCgkgKiBGdW5jdGlvbjogZm5HZXRTZXR0aW5ncwoJICogUHVycG9zZTogIEdldCB0aGUgc2V0dGluZ3MgZm9yIHRoaXMgb2JqZWN0CgkgKiBSZXR1cm5zOiAgb2JqZWN0OiAtIHNldHRpbmdzIG9iamVjdAoJICogSW5wdXRzOiAgIC0KCSAqLwoJdGhpcy5mbkdldFNldHRpbmdzID0gZnVuY3Rpb24gKCkgewoJCXJldHVybiBvU2V0dGluZ3M7Cgl9OwoJCgkvKgoJICogRnVuY3Rpb246IGZuVXBkYXRlCgkgKiBQdXJwb3NlOiAgVXBkYXRlIHRoZSBwb3NpdGlvbmluZyBhbmQgY29waWVzIG9mIHRoZSBmaXhlZCBlbGVtZW50cwoJICogUmV0dXJuczogIC0KCSAqIElucHV0czogICAtCgkgKi8KCXRoaXMuZm5VcGRhdGUgPSBmdW5jdGlvbiAoKSB7CgkJdGhpcy5fZm5VcGRhdGVDbG9uZXMoKTsKCQl0aGlzLl9mblVwZGF0ZVBvc2l0aW9ucygpOwoJfTsKCQoJLyoKCSAqIEZ1bmN0aW9uOiBmblBvc2l0aW9uCgkgKiBQdXJwb3NlOiAgVXBkYXRlIHRoZSBwb3NpdGlvbmluZyBvZiB0aGUgZml4ZWQgZWxlbWVudHMKCSAqIFJldHVybnM6ICAtCgkgKiBJbnB1dHM6ICAgLQoJICovCgl0aGlzLmZuUG9zaXRpb24gPSBmdW5jdGlvbiAoKSB7CgkJdGhpcy5fZm5VcGRhdGVQb3NpdGlvbnMoKTsKCX07CgkKCS8qIExldCdzIGRvIGl0ICovCgl0aGlzLmZuSW5pdCggbVRhYmxlLCBvSW5pdCApOwoJCgkvKiBTdG9yZSB0aGUgaW5zdGFuY2Ugb24gdGhlIERhdGFUYWJsZXMgb2JqZWN0IGZvciBlYXN5IGFjY2VzcyAqLwoJaWYgKCB0eXBlb2YgbVRhYmxlLmZuU2V0dGluZ3MgPT0gJ2Z1bmN0aW9uJyApCgl7CgkJbVRhYmxlLl9vUGx1Z2luRml4ZWRIZWFkZXIgPSB0aGlzOwoJfQp9OwoKCi8qCiAqIFZhcmlhYmxlOiBGaXhlZEhlYWRlcgogKiBQdXJwb3NlOiAgUHJvdG90eXBlIGZvciBGaXhlZEhlYWRlcgogKiBTY29wZTogICAgZ2xvYmFsCiAqLwpGaXhlZEhlYWRlci5wcm90b3R5cGUgPSB7CgkvKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICoKCSAqIEluaXRpYWxpc2F0aW9uCgkgKi8KCQoJLyoKCSAqIEZ1bmN0aW9uOiBmbkluaXQKCSAqIFB1cnBvc2U6ICBUaGUgImNvbnN0cnVjdG9yIgoJICogUmV0dXJuczogIC0KCSAqIElucHV0czogICB7YXMgRml4ZWRIZWFkZXIgZnVuY3Rpb259CgkgKi8KCWZuSW5pdDogZnVuY3Rpb24gKCBvVGFibGUsIG9Jbml0ICkKCXsKCQl2YXIgcyA9IHRoaXMuZm5HZXRTZXR0aW5ncygpOwoJCXZhciB0aGF0ID0gdGhpczsKCQkKCQkvKiBSZWNvcmQgdGhlIHVzZXIgZGVmaW5hYmxlIHNldHRpbmdzICovCgkJdGhpcy5mbkluaXRTZXR0aW5ncyggcywgb0luaXQgKTsKCQkKCQkvKiBEYXRhVGFibGVzIHNwZWNpZmljIHN0dWZmICovCgkJaWYgKCB0eXBlb2Ygb1RhYmxlLmZuU2V0dGluZ3MgPT0gJ2Z1bmN0aW9uJyApCgkJewoJCQlpZiAoIHR5cGVvZiBvVGFibGUuZm5WZXJzaW9uQ2hlY2sgPT0gJ2Z1bmN0b24nICYmCgkJCSAgICAgb1RhYmxlLmZuVmVyc2lvbkNoZWNrKCAnMS42LjAnICkgIT09IHRydWUgKQoJCQl7CgkJCQlhbGVydCggIkZpeGVkSGVhZGVyIDIgcmVxdWlyZWQgRGF0YVRhYmxlcyAxLjYuMCBvciBsYXRlci4gIisKCQkJCQkiUGxlYXNlIHVwZ3JhZGUgeW91ciBEYXRhVGFibGVzIGluc3RhbGxhdGlvbiIgKTsKCQkJCXJldHVybjsKCQkJfQoJCQkKCQkJdmFyIG9EdFNldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQkJCgkJCWlmICggb0R0U2V0dGluZ3Mub1Njcm9sbC5zWCAhPSAiIiB8fCBvRHRTZXR0aW5ncy5vU2Nyb2xsLnNZICE9ICIiICkKCQkJewoJCQkJYWxlcnQoICJGaXhlZEhlYWRlciAyIGlzIG5vdCBzdXBwb3J0ZWQgd2l0aCBEYXRhVGFibGVzJyBzY3JvbGxpbmcgbW9kZSBhdCB0aGlzIHRpbWUiICk7CgkJCQlyZXR1cm47CgkJCX0KCQkJCgkJCXMublRhYmxlID0gb0R0U2V0dGluZ3MublRhYmxlOwoJCQlvRHRTZXR0aW5ncy5hb0RyYXdDYWxsYmFjay5wdXNoKCB7CgkJCQkiZm4iOiBmdW5jdGlvbiAoKSB7CgkJCQkJRml4ZWRIZWFkZXIuZm5NZWFzdXJlKCk7CgkJCQkJdGhhdC5fZm5VcGRhdGVDbG9uZXMuY2FsbCh0aGF0KTsKCQkJCQl0aGF0Ll9mblVwZGF0ZVBvc2l0aW9ucy5jYWxsKHRoYXQpOwoJCQkJfSwKCQkJCSJzTmFtZSI6ICJGaXhlZEhlYWRlciIKCQkJfSApOwoJCX0KCQllbHNlCgkJewoJCQlzLm5UYWJsZSA9IG9UYWJsZTsKCQl9CgkJCgkJcy5iRm9vdGVyID0gKCQoJz50Zm9vdCcsIHMublRhYmxlKS5sZW5ndGggPiAwKSA/IHRydWUgOiBmYWxzZTsKCQkKCQkvKiAiRGV0ZWN0IiBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgYWJzb2x1dGUgcG9zaXRpb2luZyAtIG9yIGhhdmUgYnVncyAqLwoJCXMuYlVzZUFic1BvcyA9IChqUXVlcnkuYnJvd3Nlci5tc2llICYmIChqUXVlcnkuYnJvd3Nlci52ZXJzaW9uPT0iNi4wInx8alF1ZXJ5LmJyb3dzZXIudmVyc2lvbj09IjcuMCIpKTsKCQkKCQkvKiBBZGQgdGhlICdzaWRlcycgdGhhdCBhcmUgZml4ZWQgKi8KCQlpZiAoIHMub1NpZGVzLnRvcCApCgkJewoJCQlzLmFvQ2FjaGUucHVzaCggdGhhdC5fZm5DbG9uZVRhYmxlKCAiZml4ZWRIZWFkZXIiLCAiRml4ZWRIZWFkZXJfSGVhZGVyIiwgdGhhdC5fZm5DbG9uZVRoZWFkICkgKTsKCQl9CgkJaWYgKCBzLm9TaWRlcy5ib3R0b20gKQoJCXsKCQkJcy5hb0NhY2hlLnB1c2goIHRoYXQuX2ZuQ2xvbmVUYWJsZSggImZpeGVkRm9vdGVyIiwgIkZpeGVkSGVhZGVyX0Zvb3RlciIsIHRoYXQuX2ZuQ2xvbmVUZm9vdCApICk7CgkJfQoJCWlmICggcy5vU2lkZXMubGVmdCApCgkJewoJCQlzLmFvQ2FjaGUucHVzaCggdGhhdC5fZm5DbG9uZVRhYmxlKCAiZml4ZWRMZWZ0IiwgIkZpeGVkSGVhZGVyX0xlZnQiLCB0aGF0Ll9mbkNsb25lVExlZnQgKSApOwoJCX0KCQlpZiAoIHMub1NpZGVzLnJpZ2h0ICkKCQl7CgkJCXMuYW9DYWNoZS5wdXNoKCB0aGF0Ll9mbkNsb25lVGFibGUoICJmaXhlZFJpZ2h0IiwgIkZpeGVkSGVhZGVyX1JpZ2h0IiwgdGhhdC5fZm5DbG9uZVRSaWdodCApICk7CgkJfQoJCQoJCS8qIEV2ZW50IGxpc3RlbmVycyBmb3Igd2luZG93IG1vdmVtZW50ICovCgkJRml4ZWRIZWFkZXIuYWZuU2Nyb2xsLnB1c2goIGZ1bmN0aW9uICgpIHsKCQkJdGhhdC5fZm5VcGRhdGVQb3NpdGlvbnMuY2FsbCh0aGF0KTsKCQl9ICk7CgkJCgkJalF1ZXJ5KHdpbmRvdykucmVzaXplKCBmdW5jdGlvbiAoKSB7CgkJCUZpeGVkSGVhZGVyLmZuTWVhc3VyZSgpOwoJCQl0aGF0Ll9mblVwZGF0ZUNsb25lcy5jYWxsKHRoYXQpOwoJCQl0aGF0Ll9mblVwZGF0ZVBvc2l0aW9ucy5jYWxsKHRoYXQpOwoJCX0gKTsKCQkKCQkvKiBHZXQgdGhpbmdzIHJpZ2h0IHRvIHN0YXJ0IHdpdGggKi8KCQlGaXhlZEhlYWRlci5mbk1lYXN1cmUoKTsKCQl0aGF0Ll9mblVwZGF0ZUNsb25lcygpOwoJCXRoYXQuX2ZuVXBkYXRlUG9zaXRpb25zKCk7Cgl9LAoJCgkKCS8qICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKgoJICogU3VwcG9ydCBmdW5jdGlvbnMKCSAqLwoJCgkvKgoJICogRnVuY3Rpb246IGZuSW5pdFNldHRpbmdzCgkgKiBQdXJwb3NlOiAgVGFrZSB0aGUgdXNlcidzIHNldHRpbmdzIGFuZCBjb3B5IHRoZW0gdG8gb3VyIGxvY2FsIHN0b3JlCgkgKiBSZXR1cm5zOiAgLQoJICogSW5wdXRzOiAgIG9iamVjdDpzIC0gdGhlIGxvY2FsIHNldHRpbmdzIG9iamVjdAoJICogICAgICAgICAgIG9iamVjdDpvSW5pdCAtIHRoZSB1c2VyJ3Mgc2V0dGluZ3Mgb2JqZWN0CgkgKi8KCWZuSW5pdFNldHRpbmdzOiBmdW5jdGlvbiAoIHMsIG9Jbml0ICkKCXsKCQlpZiAoIHR5cGVvZiBvSW5pdCAhPSAndW5kZWZpbmVkJyApCgkJewoJCQlpZiAoIHR5cGVvZiBvSW5pdC50b3AgIT0gJ3VuZGVmaW5lZCcgKSB7CgkJCQlzLm9TaWRlcy50b3AgPSBvSW5pdC50b3A7CgkJCX0KCQkJaWYgKCB0eXBlb2Ygb0luaXQuYm90dG9tICE9ICd1bmRlZmluZWQnICkgewoJCQkJcy5vU2lkZXMuYm90dG9tID0gb0luaXQuYm90dG9tOwoJCQl9CgkJCWlmICggdHlwZW9mIG9Jbml0LmxlZnQgIT0gJ3VuZGVmaW5lZCcgKSB7CgkJCQlzLm9TaWRlcy5sZWZ0ID0gb0luaXQubGVmdDsKCQkJfQoJCQlpZiAoIHR5cGVvZiBvSW5pdC5yaWdodCAhPSAndW5kZWZpbmVkJyApIHsKCQkJCXMub1NpZGVzLnJpZ2h0ID0gb0luaXQucmlnaHQ7CgkJCX0KCQkJCgkJCWlmICggdHlwZW9mIG9Jbml0LnpUb3AgIT0gJ3VuZGVmaW5lZCcgKSB7CgkJCQlzLm9aSW5kZXhlcy50b3AgPSBvSW5pdC56VG9wOwoJCQl9CgkJCWlmICggdHlwZW9mIG9Jbml0LnpCb3R0b20gIT0gJ3VuZGVmaW5lZCcgKSB7CgkJCQlzLm9aSW5kZXhlcy5ib3R0b20gPSBvSW5pdC56Qm90dG9tOwoJCQl9CgkJCWlmICggdHlwZW9mIG9Jbml0LnpMZWZ0ICE9ICd1bmRlZmluZWQnICkgewoJCQkJcy5vWkluZGV4ZXMubGVmdCA9IG9Jbml0LnpMZWZ0OwoJCQl9CgkJCWlmICggdHlwZW9mIG9Jbml0LnpSaWdodCAhPSAndW5kZWZpbmVkJyApIHsKCQkJCXMub1pJbmRleGVzLnJpZ2h0ID0gb0luaXQuelJpZ2h0OwoJCQl9CgoJCQlpZiAoIHR5cGVvZiBvSW5pdC5vZmZzZXRUb3AgIT0gJ3VuZGVmaW5lZCcgKSB7CgkJCQlzLm9PZmZzZXQudG9wID0gb0luaXQub2Zmc2V0VG9wOwoJCQl9CgkJfQoJCQoJCS8qIERldGVjdCBicm93c2VycyB3aGljaCBoYXZlIHBvb3IgcG9zaXRpb246Zml4ZWQgc3VwcG9ydCBzbyB3ZSBjYW4gdXNlIGFic29sdXRlIHBvc2l0aW9ucy4KCQkgKiBUaGlzIGlzIG11Y2ggc2xvd2VyIHNpbmNlIHRoZSBwb3NpdGlvbiBtdXN0IGJlIHVwZGF0ZWQgZm9yIGVhY2ggc2Nyb2xsLCBidXQgd2lkZW5zCgkJICogY29tcGF0aWJpbGl0eQoJCSAqLwoJCXMuYlVzZUFic1BvcyA9IChqUXVlcnkuYnJvd3Nlci5tc2llICYmIAoJCQkoalF1ZXJ5LmJyb3dzZXIudmVyc2lvbj09IjYuMCJ8fGpRdWVyeS5icm93c2VyLnZlcnNpb249PSI3LjAiKSk7Cgl9LAoJCgkvKgoJICogRnVuY3Rpb246IF9mbkNsb25lVGFibGUKCSAqIFB1cnBvc2U6ICBDbG9uZSB0aGUgdGFibGUgbm9kZSBhbmQgZG8gYmFzaWMgaW5pdGlhbGlzYXRpb24KCSAqIFJldHVybnM6ICAtCgkgKiBJbnB1dHM6ICAgLQoJICovCglfZm5DbG9uZVRhYmxlOiBmdW5jdGlvbiAoIHNUeXBlLCBzQ2xhc3MsIGZuQ2xvbmUgKQoJewoJCXZhciBzID0gdGhpcy5mbkdldFNldHRpbmdzKCk7CgkJdmFyIG5DVGFibGU7CgkJCgkJLyogV2Uga25vdyB0aGF0IHRoZSB0YWJsZSBfTVVTVF8gaGFzIGEgRElWIHdyYXBwZWQgYXJvdW5kIGl0LCBiZWNhdXNlIHRoaXMgaXMgc2ltcGx5IGhvdwoJCSAqIERhdGFUYWJsZXMgd29ya3MuIFRoZXJlZm9yZSwgd2UgY2FuIHNldCB0aGlzIHRvIGJlIHJlbGF0aXZlbHkgcG9zaXRpb24gKGlmIGl0IGlzIG5vdAoJCSAqIGFscmVhZHUgYWJzb2x1dGUsIGFuZCB1c2UgdGhpcyBhcyB0aGUgYmFzZSBwb2ludCBmb3IgdGhlIGNsb25lZCBoZWFkZXIKCQkgKi8KCQlpZiAoIGpRdWVyeShzLm5UYWJsZS5wYXJlbnROb2RlKS5jc3MoJ3Bvc2l0aW9uJykgIT0gImFic29sdXRlIiApCgkJewoJCQlzLm5UYWJsZS5wYXJlbnROb2RlLnN0eWxlLnBvc2l0aW9uID0gInJlbGF0aXZlIjsKCQl9CgkJCgkJLyogSnVzdCBhIHNoYWxsb3cgY2xvbmUgd2lsbCBkbyAtIHdlIG9ubHkgd2FudCB0aGUgdGFibGUgbm9kZSAqLwoJCW5DVGFibGUgPSBzLm5UYWJsZS5jbG9uZU5vZGUoIGZhbHNlICk7CgkJbkNUYWJsZS5yZW1vdmVBdHRyaWJ1dGUoICdpZCcgKTsKCQkKCQl2YXIgbkRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICdkaXYnICk7CgkJbkRpdi5zdHlsZS5wb3NpdGlvbiA9ICJhYnNvbHV0ZSI7CgkJbkRpdi5zdHlsZS50b3AgPSAiMHB4IjsKCQluRGl2LnN0eWxlLmxlZnQgPSAiMHB4IjsKCQluRGl2LmNsYXNzTmFtZSArPSAiIEZpeGVkSGVhZGVyX0Nsb25lZCAiK3NUeXBlKyIgIitzQ2xhc3M7CgkJCgkJLyogU2V0IHRoZSB6SW5kZXhlcyAqLwoJCWlmICggc1R5cGUgPT0gImZpeGVkSGVhZGVyIiApCgkJewoJCQluRGl2LnN0eWxlLnpJbmRleCA9IHMub1pJbmRleGVzLnRvcDsKCQl9CgkJaWYgKCBzVHlwZSA9PSAiZml4ZWRGb290ZXIiICkKCQl7CgkJCW5EaXYuc3R5bGUuekluZGV4ID0gcy5vWkluZGV4ZXMuYm90dG9tOwoJCX0KCQlpZiAoIHNUeXBlID09ICJmaXhlZExlZnQiICkKCQl7CgkJCW5EaXYuc3R5bGUuekluZGV4ID0gcy5vWkluZGV4ZXMubGVmdDsKCQl9CgkJZWxzZSBpZiAoIHNUeXBlID09ICJmaXhlZFJpZ2h0IiApCgkJewoJCQluRGl2LnN0eWxlLnpJbmRleCA9IHMub1pJbmRleGVzLnJpZ2h0OwoJCX0KCgkJLyogcmVtb3ZlIG1hcmdpbnMgc2luY2Ugd2UgYXJlIGdvaW5nIHRvIHBvaXN0aW9uIGl0IGFic29sdXRlbHkgKi8KCQluQ1RhYmxlLnN0eWxlLm1hcmdpbiA9ICIwIjsKCQkKCQkvKiBJbnNlcnQgdGhlIG5ld2x5IGNsb25lZCB0YWJsZSBpbnRvIHRoZSBET00sIG9uIHRvcCBvZiB0aGUgInJlYWwiIGhlYWRlciAqLwoJCW5EaXYuYXBwZW5kQ2hpbGQoIG5DVGFibGUgKTsKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKCBuRGl2ICk7CgkJCgkJcmV0dXJuIHsKCQkJIm5Ob2RlIjogbkNUYWJsZSwKCQkJIm5XcmFwcGVyIjogbkRpdiwKCQkJInNUeXBlIjogc1R5cGUsCgkJCSJzUG9zaXRpb24iOiAiIiwKCQkJInNUb3AiOiAiIiwKCQkJInNMZWZ0IjogIiIsCgkJCSJmbkNsb25lIjogZm5DbG9uZQoJCX07Cgl9LAoJCgkvKgoJICogRnVuY3Rpb246IF9mblVwZGF0ZVBvc2l0aW9ucwoJICogUHVycG9zZTogIEdldCB0aGUgY3VycmVudCBwb3NpdGlvbmluZyBvZiB0aGUgdGFibGUgaW4gdGhlIERPTQoJICogUmV0dXJuczogIC0KCSAqIElucHV0czogICAtCgkgKi8KCV9mbk1lYXN1cmU6IGZ1bmN0aW9uICgpCgl7CgkJdmFyCgkJCXMgPSB0aGlzLmZuR2V0U2V0dGluZ3MoKSwKCQkJbSA9IHMub01lcywKCQkJanFUYWJsZSA9IGpRdWVyeShzLm5UYWJsZSksCgkJCW9PZmZzZXQgPSBqcVRhYmxlLm9mZnNldCgpLAoJCQlpUGFyZW50U2Nyb2xsVG9wID0gdGhpcy5fZm5TdW1TY3JvbGwoIHMublRhYmxlLnBhcmVudE5vZGUsICdzY3JvbGxUb3AnICksCgkJCWlQYXJlbnRTY3JvbGxMZWZ0ID0gdGhpcy5fZm5TdW1TY3JvbGwoIHMublRhYmxlLnBhcmVudE5vZGUsICdzY3JvbGxMZWZ0JyApOwoJCQoJCW0uaVRhYmxlV2lkdGggPSBqcVRhYmxlLm91dGVyV2lkdGgoKTsKCQltLmlUYWJsZUhlaWdodCA9IGpxVGFibGUub3V0ZXJIZWlnaHQoKTsKCQltLmlUYWJsZUxlZnQgPSBvT2Zmc2V0LmxlZnQgKyBzLm5UYWJsZS5wYXJlbnROb2RlLnNjcm9sbExlZnQ7CgkJbS5pVGFibGVUb3AgPSBvT2Zmc2V0LnRvcCArIGlQYXJlbnRTY3JvbGxUb3A7CgkJbS5pVGFibGVSaWdodCA9IG0uaVRhYmxlTGVmdCArIG0uaVRhYmxlV2lkdGg7CgkJbS5pVGFibGVSaWdodCA9IEZpeGVkSGVhZGVyLm9Eb2MuaVdpZHRoIC0gbS5pVGFibGVMZWZ0IC0gbS5pVGFibGVXaWR0aDsKCQltLmlUYWJsZUJvdHRvbSA9IEZpeGVkSGVhZGVyLm9Eb2MuaUhlaWdodCAtIG0uaVRhYmxlVG9wIC0gbS5pVGFibGVIZWlnaHQ7Cgl9LAoJCgkvKgoJICogRnVuY3Rpb246IF9mblN1bVNjcm9sbAoJICogUHVycG9zZTogIFN1bSBub2RlIHBhcmFtZXRlcnMgYWxsIHRoZSB3YXkgdG8gdGhlIHRvcAoJICogUmV0dXJuczogIGludDogc3VtCgkgKiBJbnB1dHM6ICAgbm9kZTpuIC0gbm9kZSB0byBjb25zaWRlcgoJICogICAgICAgICAgIHN0cmluZzpzaWRlIC0gc2Nyb2xsVG9wIG9yIHNjcm9sbExlZnQKCSAqLwoJX2ZuU3VtU2Nyb2xsOiBmdW5jdGlvbiAoIG4sIHNpZGUgKQoJewoJCXZhciBpID0gbltzaWRlXTsKCQl3aGlsZSAoIG4gPSBuLnBhcmVudE5vZGUgKQoJCXsKCQkJaWYgKCBuLm5vZGVOYW1lID09ICdIVE1MJyB8fCBuLm5vZGVOYW1lID09ICdCT0RZJyApCgkJCXsKCQkJCWJyZWFrOwoJCQl9CgkJCWkgPSBuW3NpZGVdOwoJCX0KCQlyZXR1cm4gaTsKCX0sCgkKCS8qCgkgKiBGdW5jdGlvbjogX2ZuVXBkYXRlUG9zaXRpb25zCgkgKiBQdXJwb3NlOiAgTG9vcCBvdmVyIHRoZSBmaXhlZCBlbGVtZW50cyBmb3IgdGhpcyB0YWJsZSBhbmQgdXBkYXRlIHRoZWlyIHBvc2l0aW9ucwoJICogUmV0dXJuczogIC0KCSAqIElucHV0czogICAtCgkgKi8KCV9mblVwZGF0ZVBvc2l0aW9uczogZnVuY3Rpb24gKCkKCXsKCQl2YXIgcyA9IHRoaXMuZm5HZXRTZXR0aW5ncygpOwoJCXRoaXMuX2ZuTWVhc3VyZSgpOwoJCQoJCWZvciAoIHZhciBpPTAsIGlMZW49cy5hb0NhY2hlLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJewoJCQlpZiAoIHMuYW9DYWNoZVtpXS5zVHlwZSA9PSAiZml4ZWRIZWFkZXIiICkKCQkJewoJCQkJdGhpcy5fZm5TY3JvbGxGaXhlZEhlYWRlciggcy5hb0NhY2hlW2ldICk7CgkJCX0KCQkJZWxzZSBpZiAoIHMuYW9DYWNoZVtpXS5zVHlwZSA9PSAiZml4ZWRGb290ZXIiICkKCQkJewoJCQkJdGhpcy5fZm5TY3JvbGxGaXhlZEZvb3Rlciggcy5hb0NhY2hlW2ldICk7CgkJCX0KCQkJZWxzZSBpZiAoIHMuYW9DYWNoZVtpXS5zVHlwZSA9PSAiZml4ZWRMZWZ0IiApCgkJCXsKCQkJCXRoaXMuX2ZuU2Nyb2xsSG9yaXpvbnRhbExlZnQoIHMuYW9DYWNoZVtpXSApOwoJCQl9CgkJCWVsc2UKCQkJewoJCQkJdGhpcy5fZm5TY3JvbGxIb3Jpem9udGFsUmlnaHQoIHMuYW9DYWNoZVtpXSApOwoJCQl9CgkJfQoJfSwKCQoJLyoKCSAqIEZ1bmN0aW9uOiBfZm5VcGRhdGVDbG9uZXMKCSAqIFB1cnBvc2U6ICBMb29wIG92ZXIgdGhlIGZpeGVkIGVsZW1lbnRzIGZvciB0aGlzIHRhYmxlIGFuZCBjYWxsIHRoZWlyIGNsb25pbmcgZnVuY3Rpb25zCgkgKiBSZXR1cm5zOiAgLQoJICogSW5wdXRzOiAgIC0KCSAqLwoJX2ZuVXBkYXRlQ2xvbmVzOiBmdW5jdGlvbiAoKQoJewoJCXZhciBzID0gdGhpcy5mbkdldFNldHRpbmdzKCk7CgkJZm9yICggdmFyIGk9MCwgaUxlbj1zLmFvQ2FjaGUubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQl7CgkJCXMuYW9DYWNoZVtpXS5mbkNsb25lLmNhbGwoIHRoaXMsIHMuYW9DYWNoZVtpXSApOwoJCX0KCX0sCgkKCQoJLyogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqCgkgKiBTY3JvbGxpbmcgZnVuY3Rpb25zCgkgKi8KCQoJLyoKCSAqIEZ1bmN0aW9uOiBfZm5TY3JvbGxIb3Jpem9udGFsTGVmdAoJICogUHVycG9zZTogIFVwZGF0ZSB0aGUgcG9zaXRpb25pbmcgb2YgdGhlIHNjcm9sbGluZyBlbGVtZW50cwoJICogUmV0dXJuczogIC0KCSAqIElucHV0czogICBvYmplY3Q6b0NhY2hlIC0gdGhlIGNhaGNlZCB2YWx1ZXMgZm9yIHRoaXMgZml4ZWQgZWxlbWVudAoJICovCglfZm5TY3JvbGxIb3Jpem9udGFsUmlnaHQ6IGZ1bmN0aW9uICggb0NhY2hlICkKCXsKCQl2YXIKCQkJcyA9IHRoaXMuZm5HZXRTZXR0aW5ncygpLAoJCQlvTWVzID0gcy5vTWVzLAoJCQlvV2luID0gRml4ZWRIZWFkZXIub1dpbiwKCQkJb0RvYyA9IEZpeGVkSGVhZGVyLm9Eb2MsCgkJCW5UYWJsZSA9IG9DYWNoZS5uV3JhcHBlciwKCQkJaUZpeGVkV2lkdGggPSBqUXVlcnkoblRhYmxlKS5vdXRlcldpZHRoKCk7CgkJCgkJaWYgKCBvV2luLmlTY3JvbGxSaWdodCA8IG9NZXMuaVRhYmxlUmlnaHQgKQoJCXsKCQkJLyogRnVsbHkgcmlnaHQgYWxpZ25lZCAqLwoJCQl0aGlzLl9mblVwZGF0ZUNhY2hlKCBvQ2FjaGUsICdzUG9zaXRpb24nLCAnYWJzb2x1dGUnLCAncG9zaXRpb24nLCBuVGFibGUuc3R5bGUgKTsKCQkJdGhpcy5fZm5VcGRhdGVDYWNoZSggb0NhY2hlLCAnc1RvcCcsIG9NZXMuaVRhYmxlVG9wKyJweCIsICd0b3AnLCBuVGFibGUuc3R5bGUgKTsKCQkJdGhpcy5fZm5VcGRhdGVDYWNoZSggb0NhY2hlLCAnc0xlZnQnLCAob01lcy5pVGFibGVMZWZ0K29NZXMuaVRhYmxlV2lkdGgtaUZpeGVkV2lkdGgpKyJweCIsICdsZWZ0JywgblRhYmxlLnN0eWxlICk7CQoJCX0KCQllbHNlIGlmICggb01lcy5pVGFibGVMZWZ0IDwgb0RvYy5pV2lkdGgtb1dpbi5pU2Nyb2xsUmlnaHQtaUZpeGVkV2lkdGggKQoJCXsKCQkJLyogTWlkZGxlICovCgkJCWlmICggcy5iVXNlQWJzUG9zICkKCQkJewoJCQkJdGhpcy5fZm5VcGRhdGVDYWNoZSggb0NhY2hlLCAnc1Bvc2l0aW9uJywgJ2Fic29sdXRlJywgJ3Bvc2l0aW9uJywgblRhYmxlLnN0eWxlICk7CgkJCQl0aGlzLl9mblVwZGF0ZUNhY2hlKCBvQ2FjaGUsICdzVG9wJywgb01lcy5pVGFibGVUb3ArInB4IiwgJ3RvcCcsIG5UYWJsZS5zdHlsZSApOwoJCQkJdGhpcy5fZm5VcGRhdGVDYWNoZSggb0NhY2hlLCAnc0xlZnQnLCAob0RvYy5pV2lkdGgtb1dpbi5pU2Nyb2xsUmlnaHQtaUZpeGVkV2lkdGgpKyJweCIsICdsZWZ0JywgblRhYmxlLnN0eWxlICk7CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQl0aGlzLl9mblVwZGF0ZUNhY2hlKCBvQ2FjaGUsICdzUG9zaXRpb24nLCAnZml4ZWQnLCAncG9zaXRpb24nLCBuVGFibGUuc3R5bGUgKTsKCQkJCXRoaXMuX2ZuVXBkYXRlQ2FjaGUoIG9DYWNoZSwgJ3NUb3AnLCAob01lcy5pVGFibGVUb3Atb1dpbi5pU2Nyb2xsVG9wKSsicHgiLCAndG9wJywgblRhYmxlLnN0eWxlICk7CgkJCQl0aGlzLl9mblVwZGF0ZUNhY2hlKCBvQ2FjaGUsICdzTGVmdCcsIChvV2luLmlXaWR0aC1pRml4ZWRXaWR0aCkrInB4IiwgJ2xlZnQnLCBuVGFibGUuc3R5bGUgKTsKCQkJfQkKCQl9CgkJZWxzZQoJCXsKCQkJLyogRnVsbHkgbGVmdCBhbGlnbmVkICovCgkJCXRoaXMuX2ZuVXBkYXRlQ2FjaGUoIG9DYWNoZSwgJ3NQb3NpdGlvbicsICdhYnNvbHV0ZScsICdwb3NpdGlvbicsIG5UYWJsZS5zdHlsZSApOwoJCQl0aGlzLl9mblVwZGF0ZUNhY2hlKCBvQ2FjaGUsICdzVG9wJywgb01lcy5pVGFibGVUb3ArInB4IiwgJ3RvcCcsIG5UYWJsZS5zdHlsZSApOwoJCQl0aGlzLl9mblVwZGF0ZUNhY2hlKCBvQ2FjaGUsICdzTGVmdCcsIG9NZXMuaVRhYmxlTGVmdCsicHgiLCAnbGVmdCcsIG5UYWJsZS5zdHlsZSApOwkKCQl9Cgl9LAoJCgkvKgoJICogRnVuY3Rpb246IF9mblNjcm9sbEhvcml6b250YWxMZWZ0CgkgKiBQdXJwb3NlOiAgVXBkYXRlIHRoZSBwb3NpdGlvbmluZyBvZiB0aGUgc2Nyb2xsaW5nIGVsZW1lbnRzCgkgKiBSZXR1cm5zOiAgLQoJICogSW5wdXRzOiAgIG9iamVjdDpvQ2FjaGUgLSB0aGUgY2FoY2VkIHZhbHVlcyBmb3IgdGhpcyBmaXhlZCBlbGVtZW50CgkgKi8KCV9mblNjcm9sbEhvcml6b250YWxMZWZ0OiBmdW5jdGlvbiAoIG9DYWNoZSApCgl7CgkJdmFyCgkJCXMgPSB0aGlzLmZuR2V0U2V0dGluZ3MoKSwKCQkJb01lcyA9IHMub01lcywKCQkJb1dpbiA9IEZpeGVkSGVhZGVyLm9XaW4sCgkJCW9Eb2MgPSBGaXhlZEhlYWRlci5vRG9jLAoJCQluVGFibGUgPSBvQ2FjaGUubldyYXBwZXIsCgkJCWlDZWxsV2lkdGggPSBqUXVlcnkoblRhYmxlKS5vdXRlcldpZHRoKCk7CgkJCgkJaWYgKCBvV2luLmlTY3JvbGxMZWZ0IDwgb01lcy5pVGFibGVMZWZ0ICkKCQl7CgkJCS8qIEZ1bGx5IGxlZnQgYWxpZ24gKi8KCQkJdGhpcy5fZm5VcGRhdGVDYWNoZSggb0NhY2hlLCAnc1Bvc2l0aW9uJywgJ2Fic29sdXRlJywgJ3Bvc2l0aW9uJywgblRhYmxlLnN0eWxlICk7CgkJCXRoaXMuX2ZuVXBkYXRlQ2FjaGUoIG9DYWNoZSwgJ3NUb3AnLCBvTWVzLmlUYWJsZVRvcCsicHgiLCAndG9wJywgblRhYmxlLnN0eWxlICk7CgkJCXRoaXMuX2ZuVXBkYXRlQ2FjaGUoIG9DYWNoZSwgJ3NMZWZ0Jywgb01lcy5pVGFibGVMZWZ0KyJweCIsICdsZWZ0JywgblRhYmxlLnN0eWxlICk7CQoJCX0KCQllbHNlIGlmICggb1dpbi5pU2Nyb2xsTGVmdCA8IG9NZXMuaVRhYmxlTGVmdCtvTWVzLmlUYWJsZVdpZHRoLWlDZWxsV2lkdGggKQoJCXsKCQkJLyogTWlkZGxlICovCgkJCWlmICggcy5iVXNlQWJzUG9zICkKCQkJewoJCQkJdGhpcy5fZm5VcGRhdGVDYWNoZSggb0NhY2hlLCAnc1Bvc2l0aW9uJywgJ2Fic29sdXRlJywgJ3Bvc2l0aW9uJywgblRhYmxlLnN0eWxlICk7CgkJCQl0aGlzLl9mblVwZGF0ZUNhY2hlKCBvQ2FjaGUsICdzVG9wJywgb01lcy5pVGFibGVUb3ArInB4IiwgJ3RvcCcsIG5UYWJsZS5zdHlsZSApOwoJCQkJdGhpcy5fZm5VcGRhdGVDYWNoZSggb0NhY2hlLCAnc0xlZnQnLCBvV2luLmlTY3JvbGxMZWZ0KyJweCIsICdsZWZ0JywgblRhYmxlLnN0eWxlICk7CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQl0aGlzLl9mblVwZGF0ZUNhY2hlKCBvQ2FjaGUsICdzUG9zaXRpb24nLCAnZml4ZWQnLCAncG9zaXRpb24nLCBuVGFibGUuc3R5bGUgKTsKCQkJCXRoaXMuX2ZuVXBkYXRlQ2FjaGUoIG9DYWNoZSwgJ3NUb3AnLCAob01lcy5pVGFibGVUb3Atb1dpbi5pU2Nyb2xsVG9wKSsicHgiLCAndG9wJywgblRhYmxlLnN0eWxlICk7CgkJCQl0aGlzLl9mblVwZGF0ZUNhY2hlKCBvQ2FjaGUsICdzTGVmdCcsICIwcHgiLCAnbGVmdCcsIG5UYWJsZS5zdHlsZSApOwoJCQl9CQoJCX0KCQllbHNlCgkJewoJCQkvKiBGdWxseSByaWdodCBhbGlnbiAqLwoJCQl0aGlzLl9mblVwZGF0ZUNhY2hlKCBvQ2FjaGUsICdzUG9zaXRpb24nLCAnYWJzb2x1dGUnLCAncG9zaXRpb24nLCBuVGFibGUuc3R5bGUgKTsKCQkJdGhpcy5fZm5VcGRhdGVDYWNoZSggb0NhY2hlLCAnc1RvcCcsIG9NZXMuaVRhYmxlVG9wKyJweCIsICd0b3AnLCBuVGFibGUuc3R5bGUgKTsKCQkJdGhpcy5fZm5VcGRhdGVDYWNoZSggb0NhY2hlLCAnc0xlZnQnLCAob01lcy5pVGFibGVMZWZ0K29NZXMuaVRhYmxlV2lkdGgtaUNlbGxXaWR0aCkrInB4IiwgJ2xlZnQnLCBuVGFibGUuc3R5bGUgKTsJCgkJfQoJfSwKCQoJLyoKCSAqIEZ1bmN0aW9uOiBfZm5TY3JvbGxGaXhlZEZvb3RlcgoJICogUHVycG9zZTogIFVwZGF0ZSB0aGUgcG9zaXRpb25pbmcgb2YgdGhlIHNjcm9sbGluZyBlbGVtZW50cwoJICogUmV0dXJuczogIC0KCSAqIElucHV0czogICBvYmplY3Q6b0NhY2hlIC0gdGhlIGNhaGNlZCB2YWx1ZXMgZm9yIHRoaXMgZml4ZWQgZWxlbWVudAoJICovCglfZm5TY3JvbGxGaXhlZEZvb3RlcjogZnVuY3Rpb24gKCBvQ2FjaGUgKQoJewoJCXZhcgoJCQlzID0gdGhpcy5mbkdldFNldHRpbmdzKCksCgkJCW9NZXMgPSBzLm9NZXMsCgkJCW9XaW4gPSBGaXhlZEhlYWRlci5vV2luLAoJCQlvRG9jID0gRml4ZWRIZWFkZXIub0RvYywKCQkJblRhYmxlID0gb0NhY2hlLm5XcmFwcGVyLAoJCQlpVGhlYWRIZWlnaHQgPSBqUXVlcnkoInRoZWFkIiwgcy5uVGFibGUpLm91dGVySGVpZ2h0KCksCgkJCWlDZWxsSGVpZ2h0ID0galF1ZXJ5KG5UYWJsZSkub3V0ZXJIZWlnaHQoKTsKCQkKCQlpZiAoIG9XaW4uaVNjcm9sbEJvdHRvbSA8IG9NZXMuaVRhYmxlQm90dG9tICkKCQl7CgkJCS8qIEJlbG93ICovCgkJCXRoaXMuX2ZuVXBkYXRlQ2FjaGUoIG9DYWNoZSwgJ3NQb3NpdGlvbicsICdhYnNvbHV0ZScsICdwb3NpdGlvbicsIG5UYWJsZS5zdHlsZSApOwoJCQl0aGlzLl9mblVwZGF0ZUNhY2hlKCBvQ2FjaGUsICdzVG9wJywgKG9NZXMuaVRhYmxlVG9wK29NZXMuaVRhYmxlSGVpZ2h0LWlDZWxsSGVpZ2h0KSsicHgiLCAndG9wJywgblRhYmxlLnN0eWxlICk7CgkJCXRoaXMuX2ZuVXBkYXRlQ2FjaGUoIG9DYWNoZSwgJ3NMZWZ0Jywgb01lcy5pVGFibGVMZWZ0KyJweCIsICdsZWZ0JywgblRhYmxlLnN0eWxlICk7CQoJCX0KCQllbHNlIGlmICggb1dpbi5pU2Nyb2xsQm90dG9tIDwgb01lcy5pVGFibGVCb3R0b20rb01lcy5pVGFibGVIZWlnaHQtaUNlbGxIZWlnaHQtaVRoZWFkSGVpZ2h0ICkKCQl7CgkJCS8qIE1pZGRsZSAqLwoJCQlpZiAoIHMuYlVzZUFic1BvcyApCgkJCXsKCQkJCXRoaXMuX2ZuVXBkYXRlQ2FjaGUoIG9DYWNoZSwgJ3NQb3NpdGlvbicsICJhYnNvbHV0ZSIsICdwb3NpdGlvbicsIG5UYWJsZS5zdHlsZSApOwoJCQkJdGhpcy5fZm5VcGRhdGVDYWNoZSggb0NhY2hlLCAnc1RvcCcsIChvRG9jLmlIZWlnaHQtb1dpbi5pU2Nyb2xsQm90dG9tLWlDZWxsSGVpZ2h0KSsicHgiLCAndG9wJywgblRhYmxlLnN0eWxlICk7CgkJCQl0aGlzLl9mblVwZGF0ZUNhY2hlKCBvQ2FjaGUsICdzTGVmdCcsIG9NZXMuaVRhYmxlTGVmdCsicHgiLCAnbGVmdCcsIG5UYWJsZS5zdHlsZSApOwoJCQl9CgkJCWVsc2UKCQkJewoJCQkJdGhpcy5fZm5VcGRhdGVDYWNoZSggb0NhY2hlLCAnc1Bvc2l0aW9uJywgJ2ZpeGVkJywgJ3Bvc2l0aW9uJywgblRhYmxlLnN0eWxlICk7CgkJCQl0aGlzLl9mblVwZGF0ZUNhY2hlKCBvQ2FjaGUsICdzVG9wJywgKG9XaW4uaUhlaWdodC1pQ2VsbEhlaWdodCkrInB4IiwgJ3RvcCcsIG5UYWJsZS5zdHlsZSApOwoJCQkJdGhpcy5fZm5VcGRhdGVDYWNoZSggb0NhY2hlLCAnc0xlZnQnLCAob01lcy5pVGFibGVMZWZ0LW9XaW4uaVNjcm9sbExlZnQpKyJweCIsICdsZWZ0JywgblRhYmxlLnN0eWxlICk7CQoJCQl9CgkJfQoJCWVsc2UKCQl7CgkJCS8qIEFib3ZlICovCgkJCXRoaXMuX2ZuVXBkYXRlQ2FjaGUoIG9DYWNoZSwgJ3NQb3NpdGlvbicsICdhYnNvbHV0ZScsICdwb3NpdGlvbicsIG5UYWJsZS5zdHlsZSApOwoJCQl0aGlzLl9mblVwZGF0ZUNhY2hlKCBvQ2FjaGUsICdzVG9wJywgKG9NZXMuaVRhYmxlVG9wK2lDZWxsSGVpZ2h0KSsicHgiLCAndG9wJywgblRhYmxlLnN0eWxlICk7CgkJCXRoaXMuX2ZuVXBkYXRlQ2FjaGUoIG9DYWNoZSwgJ3NMZWZ0Jywgb01lcy5pVGFibGVMZWZ0KyJweCIsICdsZWZ0JywgblRhYmxlLnN0eWxlICk7CQoJCX0KCX0sCgkKCS8qCgkgKiBGdW5jdGlvbjogX2ZuU2Nyb2xsRml4ZWRIZWFkZXIKCSAqIFB1cnBvc2U6ICBVcGRhdGUgdGhlIHBvc2l0aW9uaW5nIG9mIHRoZSBzY3JvbGxpbmcgZWxlbWVudHMKCSAqIFJldHVybnM6ICAtCgkgKiBJbnB1dHM6ICAgb2JqZWN0Om9DYWNoZSAtIHRoZSBjYWhjZWQgdmFsdWVzIGZvciB0aGlzIGZpeGVkIGVsZW1lbnQKCSAqLwoJX2ZuU2Nyb2xsRml4ZWRIZWFkZXI6IGZ1bmN0aW9uICggb0NhY2hlICkKCXsKCQl2YXIKCQkJcyA9IHRoaXMuZm5HZXRTZXR0aW5ncygpLAoJCQlvTWVzID0gcy5vTWVzLAoJCQlvV2luID0gRml4ZWRIZWFkZXIub1dpbiwKCQkJb0RvYyA9IEZpeGVkSGVhZGVyLm9Eb2MsCgkJCW5UYWJsZSA9IG9DYWNoZS5uV3JhcHBlciwKCQkJaVRib2R5SGVpZ2h0ID0gMCwKCQkJYW5UYm9kaWVzID0gcy5uVGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3Rib2R5Jyk7CgoJCWZvciAodmFyIGkgPSAwOyBpIDwgYW5UYm9kaWVzLmxlbmd0aDsgKytpKSB7CgkJCWlUYm9keUhlaWdodCArPSBhblRib2RpZXNbaV0ub2Zmc2V0SGVpZ2h0OwoJCX0KCgkJaWYgKCBvTWVzLmlUYWJsZVRvcCA+IG9XaW4uaVNjcm9sbFRvcCArIHMub09mZnNldC50b3AgKQoJCXsKCQkJLyogQWJvdmUgdGhlIHRhYmxlICovCgkJCXRoaXMuX2ZuVXBkYXRlQ2FjaGUoIG9DYWNoZSwgJ3NQb3NpdGlvbicsICJhYnNvbHV0ZSIsICdwb3NpdGlvbicsIG5UYWJsZS5zdHlsZSApOwoJCQl0aGlzLl9mblVwZGF0ZUNhY2hlKCBvQ2FjaGUsICdzVG9wJywgb01lcy5pVGFibGVUb3ArInB4IiwgJ3RvcCcsIG5UYWJsZS5zdHlsZSApOwoJCQl0aGlzLl9mblVwZGF0ZUNhY2hlKCBvQ2FjaGUsICdzTGVmdCcsIG9NZXMuaVRhYmxlTGVmdCsicHgiLCAnbGVmdCcsIG5UYWJsZS5zdHlsZSApOwoJCX0KCQllbHNlIGlmICggb1dpbi5pU2Nyb2xsVG9wICsgcy5vT2Zmc2V0LnRvcCA+IG9NZXMuaVRhYmxlVG9wK2lUYm9keUhlaWdodCApCgkJewoJCQkvKiBBdCB0aGUgYm90dG9tIG9mIHRoZSB0YWJsZSAqLwoJCQl0aGlzLl9mblVwZGF0ZUNhY2hlKCBvQ2FjaGUsICdzUG9zaXRpb24nLCAiYWJzb2x1dGUiLCAncG9zaXRpb24nLCBuVGFibGUuc3R5bGUgKTsKCQkJdGhpcy5fZm5VcGRhdGVDYWNoZSggb0NhY2hlLCAnc1RvcCcsIChvTWVzLmlUYWJsZVRvcCtpVGJvZHlIZWlnaHQpKyJweCIsICd0b3AnLCBuVGFibGUuc3R5bGUgKTsKCQkJdGhpcy5fZm5VcGRhdGVDYWNoZSggb0NhY2hlLCAnc0xlZnQnLCBvTWVzLmlUYWJsZUxlZnQrInB4IiwgJ2xlZnQnLCBuVGFibGUuc3R5bGUgKTsKCQl9CgkJZWxzZQoJCXsKCQkJLyogSW4gdGhlIG1pZGRsZSBvZiB0aGUgdGFibGUgKi8KCQkJaWYgKCBzLmJVc2VBYnNQb3MgKQoJCQl7CgkJCQl0aGlzLl9mblVwZGF0ZUNhY2hlKCBvQ2FjaGUsICdzUG9zaXRpb24nLCAiYWJzb2x1dGUiLCAncG9zaXRpb24nLCBuVGFibGUuc3R5bGUgKTsKCQkJCXRoaXMuX2ZuVXBkYXRlQ2FjaGUoIG9DYWNoZSwgJ3NUb3AnLCBvV2luLmlTY3JvbGxUb3ArInB4IiwgJ3RvcCcsIG5UYWJsZS5zdHlsZSApOwoJCQkJdGhpcy5fZm5VcGRhdGVDYWNoZSggb0NhY2hlLCAnc0xlZnQnLCBvTWVzLmlUYWJsZUxlZnQrInB4IiwgJ2xlZnQnLCBuVGFibGUuc3R5bGUgKTsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCXRoaXMuX2ZuVXBkYXRlQ2FjaGUoIG9DYWNoZSwgJ3NQb3NpdGlvbicsICdmaXhlZCcsICdwb3NpdGlvbicsIG5UYWJsZS5zdHlsZSApOwoJCQkJdGhpcy5fZm5VcGRhdGVDYWNoZSggb0NhY2hlLCAnc1RvcCcsIHMub09mZnNldC50b3ArInB4IiwgJ3RvcCcsIG5UYWJsZS5zdHlsZSApOwoJCQkJdGhpcy5fZm5VcGRhdGVDYWNoZSggb0NhY2hlLCAnc0xlZnQnLCAob01lcy5pVGFibGVMZWZ0LW9XaW4uaVNjcm9sbExlZnQpKyJweCIsICdsZWZ0JywgblRhYmxlLnN0eWxlICk7CgkJCX0KCQl9Cgl9LAoJCgkvKgoJICogRnVuY3Rpb246IF9mblVwZGF0ZUNhY2hlCgkgKiBQdXJwb3NlOiAgQ2hlY2sgdGhlIGNhY2hlIGFuZCB1cGRhdGUgY2FjaGUgYW5kIHZhbHVlIGlmIG5lZWRlZAoJICogUmV0dXJuczogIC0KCSAqIElucHV0czogICBvYmplY3Q6b0NhY2hlIC0gbG9jYWwgY2FjaGUgb2JqZWN0CgkgKiAgICAgICAgICAgc3RyaW5nOnNDYWNoZSAtIGNhY2hlIHByb3BlcnR5CgkgKiAgICAgICAgICAgc3RyaW5nOnNTZXQgLSB2YWx1ZSB0byBzZXQKCSAqICAgICAgICAgICBzdHJpbmc6c1Byb3BlcnR5IC0gb2JqZWN0IHByb3BlcnR5IHRvIHNldAoJICogICAgICAgICAgIG9iamVjdDpvT2JqIC0gb2JqZWN0IHRvIHVwZGF0ZQoJICovCglfZm5VcGRhdGVDYWNoZTogZnVuY3Rpb24gKCBvQ2FjaGUsIHNDYWNoZSwgc1NldCwgc1Byb3BlcnR5LCBvT2JqICkKCXsKCQlpZiAoIG9DYWNoZVtzQ2FjaGVdICE9IHNTZXQgKQoJCXsKCQkJb09ialtzUHJvcGVydHldID0gc1NldDsKCQkJb0NhY2hlW3NDYWNoZV0gPSBzU2V0OwoJCX0KCX0sCgkKCQoJCgkvKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqCgkgKiBDbG9uaW5nIGZ1bmN0aW9ucwoJICovCgkKCS8qCgkgKiBGdW5jdGlvbjogX2ZuQ2xvbmVUaGVhZAoJICogUHVycG9zZTogIENsb25lIHRoZSB0aGVhZCBlbGVtZW50CgkgKiBSZXR1cm5zOiAgLQoJICogSW5wdXRzOiAgIG9iamVjdDpvQ2FjaGUgLSB0aGUgY2FoY2VkIHZhbHVlcyBmb3IgdGhpcyBmaXhlZCBlbGVtZW50CgkgKi8KCV9mbkNsb25lVGhlYWQ6IGZ1bmN0aW9uICggb0NhY2hlICkKCXsKCQl2YXIgcyA9IHRoaXMuZm5HZXRTZXR0aW5ncygpOwoJCXZhciBuVGFibGUgPSBvQ2FjaGUubk5vZGU7CgkJCgkJLyogU2V0IHRoZSB3cmFwcGVyIHdpZHRoIHRvIG1hdGNoIHRoYXQgb2YgdGhlIGNsb25lZCB0YWJsZSAqLwoJCW9DYWNoZS5uV3JhcHBlci5zdHlsZS53aWR0aCA9IGpRdWVyeShzLm5UYWJsZSkub3V0ZXJXaWR0aCgpKyJweCI7CgkJCgkJLyogUmVtb3ZlIGFueSBjaGlsZHJlbiB0aGUgY2xvbmVkIHRhYmxlIGhhcyAqLwoJCXdoaWxlICggblRhYmxlLmNoaWxkTm9kZXMubGVuZ3RoID4gMCApCgkJewoJCQlqUXVlcnkoJ3RoZWFkIHRoJywgblRhYmxlKS51bmJpbmQoICdjbGljaycgKTsKCQkJblRhYmxlLnJlbW92ZUNoaWxkKCBuVGFibGUuY2hpbGROb2Rlc1swXSApOwoJCX0KCQkKCQkvKiBDbG9uZSB0aGUgRGF0YVRhYmxlcyBoZWFkZXIgKi8KCQl2YXIgblRoZWFkID0galF1ZXJ5KCd0aGVhZCcsIHMublRhYmxlKS5jbG9uZSh0cnVlKVswXTsKCQluVGFibGUuYXBwZW5kQ2hpbGQoIG5UaGVhZCApOwoJCQoJCS8qIENvcHkgdGhlIHdpZHRocyBhY3Jvc3MgLSBhcHBhcmVudGx5IGEgY2xvbmUgaXNuJ3QgZ29vZCBlbm91Z2ggZm9yIHRoaXMgKi8KCQlqUXVlcnkoInRoZWFkPnRyIHRoIiwgcy5uVGFibGUpLmVhY2goIGZ1bmN0aW9uIChpKSB7CgkJCWpRdWVyeSgidGhlYWQ+dHIgdGg6ZXEoIitpKyIpIiwgblRhYmxlKS53aWR0aCggalF1ZXJ5KHRoaXMpLndpZHRoKCkgKTsKCQl9ICk7CgkJCgkJalF1ZXJ5KCJ0aGVhZD50ciB0ZCIsIHMublRhYmxlKS5lYWNoKCBmdW5jdGlvbiAoaSkgewoJCQlqUXVlcnkoInRoZWFkPnRyIHRkOmVxKCIraSsiKSIsIG5UYWJsZSkud2lkdGgoIGpRdWVyeSh0aGlzKS53aWR0aCgpICk7CgkJfSApOwoJfSwKCQoJLyoKCSAqIEZ1bmN0aW9uOiBfZm5DbG9uZVRmb290CgkgKiBQdXJwb3NlOiAgQ2xvbmUgdGhlIHRmb290IGVsZW1lbnQKCSAqIFJldHVybnM6ICAtCgkgKiBJbnB1dHM6ICAgb2JqZWN0Om9DYWNoZSAtIHRoZSBjYWhjZWQgdmFsdWVzIGZvciB0aGlzIGZpeGVkIGVsZW1lbnQKCSAqLwoJX2ZuQ2xvbmVUZm9vdDogZnVuY3Rpb24gKCBvQ2FjaGUgKQoJewoJCXZhciBzID0gdGhpcy5mbkdldFNldHRpbmdzKCk7CgkJdmFyIG5UYWJsZSA9IG9DYWNoZS5uTm9kZTsKCQkKCQkvKiBTZXQgdGhlIHdyYXBwZXIgd2lkdGggdG8gbWF0Y2ggdGhhdCBvZiB0aGUgY2xvbmVkIHRhYmxlICovCgkJb0NhY2hlLm5XcmFwcGVyLnN0eWxlLndpZHRoID0galF1ZXJ5KHMublRhYmxlKS5vdXRlcldpZHRoKCkrInB4IjsKCQkKCQkvKiBSZW1vdmUgYW55IGNoaWxkcmVuIHRoZSBjbG9uZWQgdGFibGUgaGFzICovCgkJd2hpbGUgKCBuVGFibGUuY2hpbGROb2Rlcy5sZW5ndGggPiAwICkKCQl7CgkJCW5UYWJsZS5yZW1vdmVDaGlsZCggblRhYmxlLmNoaWxkTm9kZXNbMF0gKTsKCQl9CgkJCgkJLyogQ2xvbmUgdGhlIERhdGFUYWJsZXMgZm9vdGVyICovCgkJdmFyIG5UZm9vdCA9IGpRdWVyeSgndGZvb3QnLCBzLm5UYWJsZSkuY2xvbmUodHJ1ZSlbMF07CgkJblRhYmxlLmFwcGVuZENoaWxkKCBuVGZvb3QgKTsKCQkKCQkvKiBDb3B5IHRoZSB3aWR0aHMgYWNyb3NzIC0gYXBwYXJlbnRseSBhIGNsb25lIGlzbid0IGdvb2QgZW5vdWdoIGZvciB0aGlzICovCgkJalF1ZXJ5KCJ0Zm9vdDplcSgwKT50ciB0aCIsIHMublRhYmxlKS5lYWNoKCBmdW5jdGlvbiAoaSkgewoJCQlqUXVlcnkoInRmb290OmVxKDApPnRyIHRoOmVxKCIraSsiKSIsIG5UYWJsZSkud2lkdGgoIGpRdWVyeSh0aGlzKS53aWR0aCgpICk7CgkJfSApOwoJCQoJCWpRdWVyeSgidGZvb3Q6ZXEoMCk+dHIgdGQiLCBzLm5UYWJsZSkuZWFjaCggZnVuY3Rpb24gKGkpIHsKCQkJalF1ZXJ5KCJ0Zm9vdDplcSgwKT50ciB0aDplcSgiK2krIikiLCBuVGFibGUpWzBdLnN0eWxlLndpZHRoKCBqUXVlcnkodGhpcykud2lkdGgoKSApOwoJCX0gKTsKCX0sCgkKCS8qCgkgKiBGdW5jdGlvbjogX2ZuQ2xvbmVUTGVmdAoJICogUHVycG9zZTogIENsb25lIHRoZSBsZWZ0IGNvbHVtbgoJICogUmV0dXJuczogIC0KCSAqIElucHV0czogICBvYmplY3Q6b0NhY2hlIC0gdGhlIGNhY2hlZCB2YWx1ZXMgZm9yIHRoaXMgZml4ZWQgZWxlbWVudAoJICovCglfZm5DbG9uZVRMZWZ0OiBmdW5jdGlvbiAoIG9DYWNoZSApCgl7CgkJdmFyIHMgPSB0aGlzLmZuR2V0U2V0dGluZ3MoKTsKCQl2YXIgblRhYmxlID0gb0NhY2hlLm5Ob2RlOwoJCXZhciBuQm9keSA9ICQoJ3Rib2R5Jywgcy5uVGFibGUpWzBdOwoJCXZhciBpQ29scyA9ICQoJ3Rib2R5IHRyOmVxKDApIHRkJywgcy5uVGFibGUpLmxlbmd0aDsKCQl2YXIgYlJ1YmJpc2hPbGRJRSA9ICgkLmJyb3dzZXIubXNpZSAmJiAoJC5icm93c2VyLnZlcnNpb24gPT0gIjYuMCIgfHwgJC5icm93c2VyLnZlcnNpb24gPT0gIjcuMCIpKTsKCQkKCQkvKiBSZW1vdmUgYW55IGNoaWxkcmVuIHRoZSBjbG9uZWQgdGFibGUgaGFzICovCgkJd2hpbGUgKCBuVGFibGUuY2hpbGROb2Rlcy5sZW5ndGggPiAwICkKCQl7CgkJCW5UYWJsZS5yZW1vdmVDaGlsZCggblRhYmxlLmNoaWxkTm9kZXNbMF0gKTsKCQl9CgkJCgkJLyogSXMgdGhpcyB0aGUgbW9zdCBlZmZpY2llbnQgd2F5IHRvIGRvIHRoaXMgLSBpdCBsb29rcyBob3JyaWJsZS4uLiAqLwoJCW5UYWJsZS5hcHBlbmRDaGlsZCggalF1ZXJ5KCJ0aGVhZCIsIHMublRhYmxlKS5jbG9uZSh0cnVlKVswXSApOwoJCW5UYWJsZS5hcHBlbmRDaGlsZCggalF1ZXJ5KCJ0Ym9keSIsIHMublRhYmxlKS5jbG9uZSh0cnVlKVswXSApOwoJCWlmICggcy5iRm9vdGVyICkKCQl7CgkJCW5UYWJsZS5hcHBlbmRDaGlsZCggalF1ZXJ5KCJ0Zm9vdCIsIHMublRhYmxlKS5jbG9uZSh0cnVlKVswXSApOwoJCX0KCQkKCQkvKiBSZW1vdmUgdW5uZWVkZWQgY2VsbHMgKi8KCQkkKCd0aGVhZCB0cicsIG5UYWJsZSkuZWFjaCggZnVuY3Rpb24gKGspIHsKCQkJJCgndGg6Z3QoMCknLCB0aGlzKS5yZW1vdmUoKTsKCQl9ICk7CgoJCSQoJ3Rmb290IHRyJywgblRhYmxlKS5lYWNoKCBmdW5jdGlvbiAoaykgewoJCQkkKCd0aDpndCgwKScsIHRoaXMpLnJlbW92ZSgpOwoJCX0gKTsKCgkJJCgndGJvZHkgdHInLCBuVGFibGUpLmVhY2goIGZ1bmN0aW9uIChrKSB7CgkJCSQoJ3RkOmd0KDApJywgdGhpcykucmVtb3ZlKCk7CgkJfSApOwoJCQoJCXRoaXMuZm5FcXVhbGlzZUhlaWdodHMoICd0Ym9keScsIG5Cb2R5LnBhcmVudE5vZGUsIG5UYWJsZSApOwoJCQoJCXZhciBpV2lkdGggPSBqUXVlcnkoJ3RoZWFkIHRyIHRoOmVxKDApJywgcy5uVGFibGUpLm91dGVyV2lkdGgoKTsKCQluVGFibGUuc3R5bGUud2lkdGggPSBpV2lkdGgrInB4IjsKCQlvQ2FjaGUubldyYXBwZXIuc3R5bGUud2lkdGggPSBpV2lkdGgrInB4IjsKCX0sCgkKCS8qCgkgKiBGdW5jdGlvbjogX2ZuQ2xvbmVUUmlnaHQKCSAqIFB1cnBvc2U6ICBDbG9uZSB0aGUgcmlnaHQgbW9zdCBjb2x1bgoJICogUmV0dXJuczogIC0KCSAqIElucHV0czogICBvYmplY3Q6b0NhY2hlIC0gdGhlIGNhaGNlZCB2YWx1ZXMgZm9yIHRoaXMgZml4ZWQgZWxlbWVudAoJICovCglfZm5DbG9uZVRSaWdodDogZnVuY3Rpb24gKCBvQ2FjaGUgKQoJewoJCXZhciBzID0gdGhpcy5mbkdldFNldHRpbmdzKCk7CgkJdmFyIG5Cb2R5ID0gJCgndGJvZHknLCBzLm5UYWJsZSlbMF07CgkJdmFyIG5UYWJsZSA9IG9DYWNoZS5uTm9kZTsKCQl2YXIgaUNvbHMgPSBqUXVlcnkoJ3Rib2R5IHRyOmVxKDApIHRkJywgcy5uVGFibGUpLmxlbmd0aDsKCQl2YXIgYlJ1YmJpc2hPbGRJRSA9ICgkLmJyb3dzZXIubXNpZSAmJiAoJC5icm93c2VyLnZlcnNpb24gPT0gIjYuMCIgfHwgJC5icm93c2VyLnZlcnNpb24gPT0gIjcuMCIpKTsKCQkKCQkvKiBSZW1vdmUgYW55IGNoaWxkcmVuIHRoZSBjbG9uZWQgdGFibGUgaGFzICovCgkJd2hpbGUgKCBuVGFibGUuY2hpbGROb2Rlcy5sZW5ndGggPiAwICkKCQl7CgkJCW5UYWJsZS5yZW1vdmVDaGlsZCggblRhYmxlLmNoaWxkTm9kZXNbMF0gKTsKCQl9CgkJCgkJLyogSXMgdGhpcyB0aGUgbW9zdCBlZmZpY2llbnQgd2F5IHRvIGRvIHRoaXMgLSBpdCBsb29rcyBob3JyaWJsZS4uLiAqLwoJCW5UYWJsZS5hcHBlbmRDaGlsZCggalF1ZXJ5KCJ0aGVhZCIsIHMublRhYmxlKS5jbG9uZSh0cnVlKVswXSApOwoJCW5UYWJsZS5hcHBlbmRDaGlsZCggalF1ZXJ5KCJ0Ym9keSIsIHMublRhYmxlKS5jbG9uZSh0cnVlKVswXSApOwoJCWlmICggcy5iRm9vdGVyICkKCQl7CgkJCW5UYWJsZS5hcHBlbmRDaGlsZCggalF1ZXJ5KCJ0Zm9vdCIsIHMublRhYmxlKS5jbG9uZSh0cnVlKVswXSApOwoJCX0KCQlqUXVlcnkoJ3RoZWFkIHRyIHRoOm5vdCg6bnRoLWNoaWxkKCcraUNvbHMrJ24pKScsIG5UYWJsZSkucmVtb3ZlKCk7CgkJalF1ZXJ5KCd0Zm9vdCB0ciB0aDpub3QoOm50aC1jaGlsZCgnK2lDb2xzKyduKSknLCBuVGFibGUpLnJlbW92ZSgpOwoJCQoJCS8qIFJlbW92ZSB1bm5lZWRlZCBjZWxscyAqLwoJCSQoJ3Rib2R5IHRyJywgblRhYmxlKS5lYWNoKCBmdW5jdGlvbiAoaykgewoJCQkkKCd0ZDpsdCgnKyhpQ29scy0xKSsnKScsIHRoaXMpLnJlbW92ZSgpOwoJCX0gKTsKCQkKCQl0aGlzLmZuRXF1YWxpc2VIZWlnaHRzKCAndGJvZHknLCBuQm9keS5wYXJlbnROb2RlLCBuVGFibGUgKTsKCQkKCQl2YXIgaVdpZHRoID0galF1ZXJ5KCd0aGVhZCB0ciB0aDplcSgnKyhpQ29scy0xKSsnKScsIHMublRhYmxlKS5vdXRlcldpZHRoKCk7CgkJblRhYmxlLnN0eWxlLndpZHRoID0gaVdpZHRoKyJweCI7CgkJb0NhY2hlLm5XcmFwcGVyLnN0eWxlLndpZHRoID0gaVdpZHRoKyJweCI7Cgl9LAoJCgkKCS8qKgoJICogRXF1YWxpc2UgdGhlIGhlaWdodHMgb2YgdGhlIHJvd3MgaW4gYSBnaXZlbiB0YWJsZSBub2RlIGluIGEgY3Jvc3MgYnJvd3NlciB3YXkuIE5vdGUgdGhhdCB0aGlzCgkgKiBpcyBtb3JlIG9yIGxlc3MgbGlmdGVkIGFzIGlzIGZyb20gRml4ZWRDb2x1bW5zCgkgKiAgQG1ldGhvZCAgZm5FcXVhbGlzZUhlaWdodHMKCSAqICBAcmV0dXJucyB2b2lkCgkgKiAgQHBhcmFtICAge3N0cmluZ30gcGFyZW50IE5vZGUgdHlwZSAtIHRoZWFkLCB0Ym9keSBvciB0Zm9vdAoJICogIEBwYXJhbSAgIHtlbGVtZW50fSBvcmlnaW5hbCBPcmlnaW5hbCBub2RlIHRvIHRha2UgdGhlIGhlaWdodHMgZnJvbQoJICogIEBwYXJhbSAgIHtlbGVtZW50fSBjbG9uZSBDb3B5IHRoZSBoZWlnaHRzIHRvCgkgKiAgQHByaXZhdGUKCSAqLwoJImZuRXF1YWxpc2VIZWlnaHRzIjogZnVuY3Rpb24gKCBwYXJlbnQsIG9yaWdpbmFsLCBjbG9uZSApCgl7CgkJdmFyIHRoYXQgPSB0aGlzLAoJCQlqcUJveEhhY2sgPSAkKHBhcmVudCsnIHRyOmVxKDApJywgb3JpZ2luYWwpLmNoaWxkcmVuKCc6ZXEoMCknKSwKCQkJaUJveEhhY2sgPSBqcUJveEhhY2sub3V0ZXJIZWlnaHQoKSAtIGpxQm94SGFjay5oZWlnaHQoKSwKCQkJYlJ1YmJpc2hPbGRJRSA9ICgkLmJyb3dzZXIubXNpZSAmJiAoJC5icm93c2VyLnZlcnNpb24gPT0gIjYuMCIgfHwgJC5icm93c2VyLnZlcnNpb24gPT0gIjcuMCIpKTsKCQkKCQkvKiBSZW1vdmUgY2VsbHMgd2hpY2ggYXJlIG5vdCBuZWVkZWQgYW5kIGNvcHkgdGhlIGhlaWdodCBmcm9tIHRoZSBvcmlnaW5hbCB0YWJsZSAqLwoJCSQocGFyZW50KycgdHInLCBjbG9uZSkuZWFjaCggZnVuY3Rpb24gKGspIHsKCQkJLyogQ2FuIHdlIHVzZSBzb21lIGtpbmQgb2Ygb2JqZWN0IGRldGVjdGlvbiBoZXJlPyEgVGhpcyBpcyB2ZXJ5IG5hc3R5IC0gZGFtbiBicm93c2VycyAqLwoJCQlpZiAoICQuYnJvd3Nlci5tb3ppbGxhIHx8ICQuYnJvd3Nlci5vcGVyYSApCgkJCXsKCQkJCSQodGhpcykuY2hpbGRyZW4oKS5oZWlnaHQoICQocGFyZW50KycgdHI6ZXEoJytrKycpJywgb3JpZ2luYWwpLm91dGVySGVpZ2h0KCkgKTsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCSQodGhpcykuY2hpbGRyZW4oKS5oZWlnaHQoICQocGFyZW50KycgdHI6ZXEoJytrKycpJywgb3JpZ2luYWwpLm91dGVySGVpZ2h0KCkgLSBpQm94SGFjayApOwoJCQl9CgkJCQoJCQlpZiAoICFiUnViYmlzaE9sZElFICkKCQkJewoJCQkJJChwYXJlbnQrJyB0cjplcSgnK2srJyknLCBvcmlnaW5hbCkuaGVpZ2h0KCAkKHBhcmVudCsnIHRyOmVxKCcraysnKScsIG9yaWdpbmFsKS5vdXRlckhlaWdodCgpICk7CQkKCQkJfQoJCX0gKTsKCX0KfTsKCgkKLyogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqCiAqIFN0YXRpYyBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzCiAqICAgV2UgdXNlIHRoZXNlIGZvciBzcGVlZCEgVGhpcyBpbmZvcm1hdGlvbiBpcyBjb21tb24gdG8gYWxsIGluc3RhbmNlcyBvZiBGaXhlZEhlYWRlciwgc28gbm8KICogcG9pbnQgaWYgaGF2aW5nIHRoZW0gY2FsY3VsYXRlZCBhbmQgc3RvcmVkIGZvciBlYWNoIGRpZmZlcmVudCBpbnN0YW5jZS4KICovCgovKgogKiBWYXJpYWJsZTogb1dpbgogKiBQdXJwb3NlOiAgU3RvcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHdpbmRvdyBwb3NpdGlvbmluZwogKiBTY29wZTogICAgRml4ZWRIZWFkZXIKICovCkZpeGVkSGVhZGVyLm9XaW4gPSB7CgkiaVNjcm9sbFRvcCI6IDAsCgkiaVNjcm9sbFJpZ2h0IjogMCwKCSJpU2Nyb2xsQm90dG9tIjogMCwKCSJpU2Nyb2xsTGVmdCI6IDAsCgkiaUhlaWdodCI6IDAsCgkiaVdpZHRoIjogMAp9OwoKLyoKICogVmFyaWFibGU6IG9Eb2MKICogUHVycG9zZTogIFN0b3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBkb2N1bWVudCBzaXplCiAqIFNjb3BlOiAgICBGaXhlZEhlYWRlcgogKi8KRml4ZWRIZWFkZXIub0RvYyA9IHsKCSJpSGVpZ2h0IjogMCwKCSJpV2lkdGgiOiAwCn07CgovKgogKiBWYXJpYWJsZTogYWZuU2Nyb2xsCiAqIFB1cnBvc2U6ICBBcnJheSBvZiBmdW5jdGlvbnMgdGhhdCBhcmUgdG8gYmUgdXNlZCBmb3IgdGhlIHNjcm9sbGluZyBjb21wb25lbnRzCiAqIFNjb3BlOiAgICBGaXhlZEhlYWRlcgogKi8KRml4ZWRIZWFkZXIuYWZuU2Nyb2xsID0gW107CgovKgogKiBGdW5jdGlvbjogZm5NZWFzdXJlCiAqIFB1cnBvc2U6ICBVcGRhdGUgdGhlIG1lYXN1cmVtZW50cyBmb3IgdGhlIHdpbmRvdyBhbmQgZG9jdW1lbnQKICogUmV0dXJuczogIC0KICogSW5wdXRzOiAgIC0KICovCkZpeGVkSGVhZGVyLmZuTWVhc3VyZSA9IGZ1bmN0aW9uICgpCnsKCXZhcgoJCWpxV2luID0galF1ZXJ5KHdpbmRvdyksCgkJanFEb2MgPSBqUXVlcnkoZG9jdW1lbnQpLAoJCW9XaW4gPSBGaXhlZEhlYWRlci5vV2luLAoJCW9Eb2MgPSBGaXhlZEhlYWRlci5vRG9jOwoJCglvRG9jLmlIZWlnaHQgPSBqcURvYy5oZWlnaHQoKTsKCW9Eb2MuaVdpZHRoID0ganFEb2Mud2lkdGgoKTsKCQoJb1dpbi5pSGVpZ2h0ID0ganFXaW4uaGVpZ2h0KCk7CglvV2luLmlXaWR0aCA9IGpxV2luLndpZHRoKCk7CglvV2luLmlTY3JvbGxUb3AgPSBqcVdpbi5zY3JvbGxUb3AoKTsKCW9XaW4uaVNjcm9sbExlZnQgPSBqcVdpbi5zY3JvbGxMZWZ0KCk7CglvV2luLmlTY3JvbGxSaWdodCA9IG9Eb2MuaVdpZHRoIC0gb1dpbi5pU2Nyb2xsTGVmdCAtIG9XaW4uaVdpZHRoOwoJb1dpbi5pU2Nyb2xsQm90dG9tID0gb0RvYy5pSGVpZ2h0IC0gb1dpbi5pU2Nyb2xsVG9wIC0gb1dpbi5pSGVpZ2h0Owp9OwoKCkZpeGVkSGVhZGVyLlZFUlNJT04gPSAiMi4wLjYiOwpGaXhlZEhlYWRlci5wcm90b3R5cGUuVkVSU0lPTiA9IEZpeGVkSGVhZGVyLlZFUlNJT047CgoJCi8qICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKgogKiBHbG9iYWwgcHJvY2Vzc2luZwogKi8KCi8qCiAqIEp1c3Qgb25lICdzY3JvbGwnIGV2ZW50IGhhbmRsZXIgaW4gRml4ZWRIZWFkZXIsIHdoaWNoIGNhbGxzIHRoZSByZXF1aXJlZCBjb21wb25lbnRzLiBUaGlzIGlzCiAqIGRvbmUgYXMgYW4gb3B0aW1pc2F0aW9uLCB0byByZWR1Y2UgY2FsY3VsYXRpb24gYW5kIHByb2FnYXRpb24gdGltZQogKi8KalF1ZXJ5KHdpbmRvdykuc2Nyb2xsKCBmdW5jdGlvbiAoKSB7CglGaXhlZEhlYWRlci5mbk1lYXN1cmUoKTsKCWZvciAoIHZhciBpPTAsIGlMZW49Rml4ZWRIZWFkZXIuYWZuU2Nyb2xsLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgl7CgkJRml4ZWRIZWFkZXIuYWZuU2Nyb2xsW2ldKCk7Cgl9Cn0gKTsK]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedHeader/js/FixedHeader.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogRmlsZTogICAgICAgIEZpeGVkSGVhZGVyLm1pbi5qcwogKiBWZXJzaW9uOiAgICAgMi4wLjYKICogQXV0aG9yOiAgICAgIEFsbGFuIEphcmRpbmUgKHd3dy5zcHJ5bWVkaWEuY28udWspCiAqIAogKiBDb3B5cmlnaHQgMjAwOS0yMDExIEFsbGFuIEphcmRpbmUsIGFsbCByaWdodHMgcmVzZXJ2ZWQuCiAqCiAqIFRoaXMgc291cmNlIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZSwgdW5kZXIgZWl0aGVyIHRoZSBHUEwgdjIgbGljZW5zZSBvciBhCiAqIEJTRCAoMyBwb2ludCkgc3R5bGUgbGljZW5zZSwgYXMgc3VwcGxpZWQgd2l0aCB0aGlzIHNvZnR3YXJlLgogKiAKICogVGhpcyBzb3VyY2UgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgCiAqIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIAogKiBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBsaWNlbnNlIGZpbGVzIGZvciBkZXRhaWxzLgogKi8KdmFyIEZpeGVkSGVhZGVyPWZ1bmN0aW9uKGEsYyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHRoaXMuZm5Jbml0KWFsZXJ0KCJGaXhlZEhlYWRlciB3YXJuaW5nOiBGaXhlZEhlYWRlciBtdXN0IGJlIGluaXRpYWxpc2VkIHdpdGggdGhlICduZXcnIGtleXdvcmQuIik7ZWxzZXt2YXIgYj17YW9DYWNoZTpbXSxvU2lkZXM6e3RvcDohMCxib3R0b206ITEsbGVmdDohMSxyaWdodDohMX0sb1pJbmRleGVzOnt0b3A6MTA0LGJvdHRvbToxMDMsbGVmdDoxMDIscmlnaHQ6MTAxfSxvTWVzOntpVGFibGVXaWR0aDowLGlUYWJsZUhlaWdodDowLGlUYWJsZUxlZnQ6MCxpVGFibGVSaWdodDowLGlUYWJsZVRvcDowLGlUYWJsZUJvdHRvbTowfSxvT2Zmc2V0Ont0b3A6MH0sblRhYmxlOm51bGwsYlVzZUFic1BvczohMSxiRm9vdGVyOiExfTt0aGlzLmZuR2V0U2V0dGluZ3M9ZnVuY3Rpb24oKXtyZXR1cm4gYn07dGhpcy5mblVwZGF0ZT1mdW5jdGlvbigpe3RoaXMuX2ZuVXBkYXRlQ2xvbmVzKCk7dGhpcy5fZm5VcGRhdGVQb3NpdGlvbnMoKX07CnRoaXMuZm5Qb3NpdGlvbj1mdW5jdGlvbigpe3RoaXMuX2ZuVXBkYXRlUG9zaXRpb25zKCl9O3RoaXMuZm5Jbml0KGEsYyk7ImZ1bmN0aW9uIj09dHlwZW9mIGEuZm5TZXR0aW5ncyYmKGEuX29QbHVnaW5GaXhlZEhlYWRlcj10aGlzKX19OwpGaXhlZEhlYWRlci5wcm90b3R5cGU9e2ZuSW5pdDpmdW5jdGlvbihhLGMpe3ZhciBiPXRoaXMuZm5HZXRTZXR0aW5ncygpLGQ9dGhpczt0aGlzLmZuSW5pdFNldHRpbmdzKGIsYyk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEuZm5TZXR0aW5ncyl7aWYoImZ1bmN0b24iPT10eXBlb2YgYS5mblZlcnNpb25DaGVjayYmITAhPT1hLmZuVmVyc2lvbkNoZWNrKCIxLjYuMCIpKXthbGVydCgiRml4ZWRIZWFkZXIgMiByZXF1aXJlZCBEYXRhVGFibGVzIDEuNi4wIG9yIGxhdGVyLiBQbGVhc2UgdXBncmFkZSB5b3VyIERhdGFUYWJsZXMgaW5zdGFsbGF0aW9uIik7cmV0dXJufXZhciBlPWEuZm5TZXR0aW5ncygpO2lmKCIiIT1lLm9TY3JvbGwuc1h8fCIiIT1lLm9TY3JvbGwuc1kpe2FsZXJ0KCJGaXhlZEhlYWRlciAyIGlzIG5vdCBzdXBwb3J0ZWQgd2l0aCBEYXRhVGFibGVzJyBzY3JvbGxpbmcgbW9kZSBhdCB0aGlzIHRpbWUiKTtyZXR1cm59Yi5uVGFibGU9ZS5uVGFibGU7ZS5hb0RyYXdDYWxsYmFjay5wdXNoKHtmbjpmdW5jdGlvbigpe0ZpeGVkSGVhZGVyLmZuTWVhc3VyZSgpOwpkLl9mblVwZGF0ZUNsb25lcy5jYWxsKGQpO2QuX2ZuVXBkYXRlUG9zaXRpb25zLmNhbGwoZCl9LHNOYW1lOiJGaXhlZEhlYWRlciJ9KX1lbHNlIGIublRhYmxlPWE7Yi5iRm9vdGVyPTA8JCgiPnRmb290IixiLm5UYWJsZSkubGVuZ3RoPyEwOiExO2IuYlVzZUFic1Bvcz1qUXVlcnkuYnJvd3Nlci5tc2llJiYoIjYuMCI9PWpRdWVyeS5icm93c2VyLnZlcnNpb258fCI3LjAiPT1qUXVlcnkuYnJvd3Nlci52ZXJzaW9uKTtiLm9TaWRlcy50b3AmJmIuYW9DYWNoZS5wdXNoKGQuX2ZuQ2xvbmVUYWJsZSgiZml4ZWRIZWFkZXIiLCJGaXhlZEhlYWRlcl9IZWFkZXIiLGQuX2ZuQ2xvbmVUaGVhZCkpO2Iub1NpZGVzLmJvdHRvbSYmYi5hb0NhY2hlLnB1c2goZC5fZm5DbG9uZVRhYmxlKCJmaXhlZEZvb3RlciIsIkZpeGVkSGVhZGVyX0Zvb3RlciIsZC5fZm5DbG9uZVRmb290KSk7Yi5vU2lkZXMubGVmdCYmYi5hb0NhY2hlLnB1c2goZC5fZm5DbG9uZVRhYmxlKCJmaXhlZExlZnQiLCJGaXhlZEhlYWRlcl9MZWZ0IiwKZC5fZm5DbG9uZVRMZWZ0KSk7Yi5vU2lkZXMucmlnaHQmJmIuYW9DYWNoZS5wdXNoKGQuX2ZuQ2xvbmVUYWJsZSgiZml4ZWRSaWdodCIsIkZpeGVkSGVhZGVyX1JpZ2h0IixkLl9mbkNsb25lVFJpZ2h0KSk7Rml4ZWRIZWFkZXIuYWZuU2Nyb2xsLnB1c2goZnVuY3Rpb24oKXtkLl9mblVwZGF0ZVBvc2l0aW9ucy5jYWxsKGQpfSk7alF1ZXJ5KHdpbmRvdykucmVzaXplKGZ1bmN0aW9uKCl7Rml4ZWRIZWFkZXIuZm5NZWFzdXJlKCk7ZC5fZm5VcGRhdGVDbG9uZXMuY2FsbChkKTtkLl9mblVwZGF0ZVBvc2l0aW9ucy5jYWxsKGQpfSk7Rml4ZWRIZWFkZXIuZm5NZWFzdXJlKCk7ZC5fZm5VcGRhdGVDbG9uZXMoKTtkLl9mblVwZGF0ZVBvc2l0aW9ucygpfSxmbkluaXRTZXR0aW5nczpmdW5jdGlvbihhLGMpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgYyYmKCJ1bmRlZmluZWQiIT10eXBlb2YgYy50b3AmJihhLm9TaWRlcy50b3A9Yy50b3ApLCJ1bmRlZmluZWQiIT10eXBlb2YgYy5ib3R0b20mJgooYS5vU2lkZXMuYm90dG9tPWMuYm90dG9tKSwidW5kZWZpbmVkIiE9dHlwZW9mIGMubGVmdCYmKGEub1NpZGVzLmxlZnQ9Yy5sZWZ0KSwidW5kZWZpbmVkIiE9dHlwZW9mIGMucmlnaHQmJihhLm9TaWRlcy5yaWdodD1jLnJpZ2h0KSwidW5kZWZpbmVkIiE9dHlwZW9mIGMuelRvcCYmKGEub1pJbmRleGVzLnRvcD1jLnpUb3ApLCJ1bmRlZmluZWQiIT10eXBlb2YgYy56Qm90dG9tJiYoYS5vWkluZGV4ZXMuYm90dG9tPWMuekJvdHRvbSksInVuZGVmaW5lZCIhPXR5cGVvZiBjLnpMZWZ0JiYoYS5vWkluZGV4ZXMubGVmdD1jLnpMZWZ0KSwidW5kZWZpbmVkIiE9dHlwZW9mIGMuelJpZ2h0JiYoYS5vWkluZGV4ZXMucmlnaHQ9Yy56UmlnaHQpLCJ1bmRlZmluZWQiIT10eXBlb2YgYy5vZmZzZXRUb3ApKWEub09mZnNldC50b3A9Yy5vZmZzZXRUb3A7YS5iVXNlQWJzUG9zPWpRdWVyeS5icm93c2VyLm1zaWUmJigiNi4wIj09alF1ZXJ5LmJyb3dzZXIudmVyc2lvbnx8IjcuMCI9PWpRdWVyeS5icm93c2VyLnZlcnNpb24pfSwKX2ZuQ2xvbmVUYWJsZTpmdW5jdGlvbihhLGMsYil7dmFyIGQ9dGhpcy5mbkdldFNldHRpbmdzKCksZTsiYWJzb2x1dGUiIT1qUXVlcnkoZC5uVGFibGUucGFyZW50Tm9kZSkuY3NzKCJwb3NpdGlvbiIpJiYoZC5uVGFibGUucGFyZW50Tm9kZS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiKTtlPWQublRhYmxlLmNsb25lTm9kZSghMSk7ZS5yZW1vdmVBdHRyaWJ1dGUoImlkIik7dmFyIGY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Zi5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO2Yuc3R5bGUudG9wPSIwcHgiO2Yuc3R5bGUubGVmdD0iMHB4IjtmLmNsYXNzTmFtZSs9IiBGaXhlZEhlYWRlcl9DbG9uZWQgIithKyIgIitjOyJmaXhlZEhlYWRlciI9PWEmJihmLnN0eWxlLnpJbmRleD1kLm9aSW5kZXhlcy50b3ApOyJmaXhlZEZvb3RlciI9PWEmJihmLnN0eWxlLnpJbmRleD1kLm9aSW5kZXhlcy5ib3R0b20pOyJmaXhlZExlZnQiPT1hP2Yuc3R5bGUuekluZGV4PWQub1pJbmRleGVzLmxlZnQ6CiJmaXhlZFJpZ2h0Ij09YSYmKGYuc3R5bGUuekluZGV4PWQub1pJbmRleGVzLnJpZ2h0KTtlLnN0eWxlLm1hcmdpbj0iMCI7Zi5hcHBlbmRDaGlsZChlKTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGYpO3JldHVybntuTm9kZTplLG5XcmFwcGVyOmYsc1R5cGU6YSxzUG9zaXRpb246IiIsc1RvcDoiIixzTGVmdDoiIixmbkNsb25lOmJ9fSxfZm5NZWFzdXJlOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5mbkdldFNldHRpbmdzKCksYz1hLm9NZXMsYj1qUXVlcnkoYS5uVGFibGUpLGQ9Yi5vZmZzZXQoKSxlPXRoaXMuX2ZuU3VtU2Nyb2xsKGEublRhYmxlLnBhcmVudE5vZGUsInNjcm9sbFRvcCIpO3RoaXMuX2ZuU3VtU2Nyb2xsKGEublRhYmxlLnBhcmVudE5vZGUsInNjcm9sbExlZnQiKTtjLmlUYWJsZVdpZHRoPWIub3V0ZXJXaWR0aCgpO2MuaVRhYmxlSGVpZ2h0PWIub3V0ZXJIZWlnaHQoKTtjLmlUYWJsZUxlZnQ9ZC5sZWZ0K2EublRhYmxlLnBhcmVudE5vZGUuc2Nyb2xsTGVmdDtjLmlUYWJsZVRvcD0KZC50b3ArZTtjLmlUYWJsZVJpZ2h0PWMuaVRhYmxlTGVmdCtjLmlUYWJsZVdpZHRoO2MuaVRhYmxlUmlnaHQ9Rml4ZWRIZWFkZXIub0RvYy5pV2lkdGgtYy5pVGFibGVMZWZ0LWMuaVRhYmxlV2lkdGg7Yy5pVGFibGVCb3R0b209Rml4ZWRIZWFkZXIub0RvYy5pSGVpZ2h0LWMuaVRhYmxlVG9wLWMuaVRhYmxlSGVpZ2h0fSxfZm5TdW1TY3JvbGw6ZnVuY3Rpb24oYSxjKXtmb3IodmFyIGI9YVtjXTsoYT1hLnBhcmVudE5vZGUpJiYhKCJIVE1MIj09YS5ub2RlTmFtZXx8IkJPRFkiPT1hLm5vZGVOYW1lKTspYj1hW2NdO3JldHVybiBifSxfZm5VcGRhdGVQb3NpdGlvbnM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmZuR2V0U2V0dGluZ3MoKTt0aGlzLl9mbk1lYXN1cmUoKTtmb3IodmFyIGM9MCxiPWEuYW9DYWNoZS5sZW5ndGg7YzxiO2MrKykiZml4ZWRIZWFkZXIiPT1hLmFvQ2FjaGVbY10uc1R5cGU/dGhpcy5fZm5TY3JvbGxGaXhlZEhlYWRlcihhLmFvQ2FjaGVbY10pOiJmaXhlZEZvb3RlciI9PQphLmFvQ2FjaGVbY10uc1R5cGU/dGhpcy5fZm5TY3JvbGxGaXhlZEZvb3RlcihhLmFvQ2FjaGVbY10pOiJmaXhlZExlZnQiPT1hLmFvQ2FjaGVbY10uc1R5cGU/dGhpcy5fZm5TY3JvbGxIb3Jpem9udGFsTGVmdChhLmFvQ2FjaGVbY10pOnRoaXMuX2ZuU2Nyb2xsSG9yaXpvbnRhbFJpZ2h0KGEuYW9DYWNoZVtjXSl9LF9mblVwZGF0ZUNsb25lczpmdW5jdGlvbigpe2Zvcih2YXIgYT10aGlzLmZuR2V0U2V0dGluZ3MoKSxjPTAsYj1hLmFvQ2FjaGUubGVuZ3RoO2M8YjtjKyspYS5hb0NhY2hlW2NdLmZuQ2xvbmUuY2FsbCh0aGlzLGEuYW9DYWNoZVtjXSl9LF9mblNjcm9sbEhvcml6b250YWxSaWdodDpmdW5jdGlvbihhKXt2YXIgYz10aGlzLmZuR2V0U2V0dGluZ3MoKSxiPWMub01lcyxkPUZpeGVkSGVhZGVyLm9XaW4sZT1GaXhlZEhlYWRlci5vRG9jLGY9YS5uV3JhcHBlcixnPWpRdWVyeShmKS5vdXRlcldpZHRoKCk7ZC5pU2Nyb2xsUmlnaHQ8Yi5pVGFibGVSaWdodD8odGhpcy5fZm5VcGRhdGVDYWNoZShhLAoic1Bvc2l0aW9uIiwiYWJzb2x1dGUiLCJwb3NpdGlvbiIsZi5zdHlsZSksdGhpcy5fZm5VcGRhdGVDYWNoZShhLCJzVG9wIixiLmlUYWJsZVRvcCsicHgiLCJ0b3AiLGYuc3R5bGUpLHRoaXMuX2ZuVXBkYXRlQ2FjaGUoYSwic0xlZnQiLGIuaVRhYmxlTGVmdCtiLmlUYWJsZVdpZHRoLWcrInB4IiwibGVmdCIsZi5zdHlsZSkpOmIuaVRhYmxlTGVmdDxlLmlXaWR0aC1kLmlTY3JvbGxSaWdodC1nP2MuYlVzZUFic1Bvcz8odGhpcy5fZm5VcGRhdGVDYWNoZShhLCJzUG9zaXRpb24iLCJhYnNvbHV0ZSIsInBvc2l0aW9uIixmLnN0eWxlKSx0aGlzLl9mblVwZGF0ZUNhY2hlKGEsInNUb3AiLGIuaVRhYmxlVG9wKyJweCIsInRvcCIsZi5zdHlsZSksdGhpcy5fZm5VcGRhdGVDYWNoZShhLCJzTGVmdCIsZS5pV2lkdGgtZC5pU2Nyb2xsUmlnaHQtZysicHgiLCJsZWZ0IixmLnN0eWxlKSk6KHRoaXMuX2ZuVXBkYXRlQ2FjaGUoYSwic1Bvc2l0aW9uIiwiZml4ZWQiLCJwb3NpdGlvbiIsZi5zdHlsZSksCnRoaXMuX2ZuVXBkYXRlQ2FjaGUoYSwic1RvcCIsYi5pVGFibGVUb3AtZC5pU2Nyb2xsVG9wKyJweCIsInRvcCIsZi5zdHlsZSksdGhpcy5fZm5VcGRhdGVDYWNoZShhLCJzTGVmdCIsZC5pV2lkdGgtZysicHgiLCJsZWZ0IixmLnN0eWxlKSk6KHRoaXMuX2ZuVXBkYXRlQ2FjaGUoYSwic1Bvc2l0aW9uIiwiYWJzb2x1dGUiLCJwb3NpdGlvbiIsZi5zdHlsZSksdGhpcy5fZm5VcGRhdGVDYWNoZShhLCJzVG9wIixiLmlUYWJsZVRvcCsicHgiLCJ0b3AiLGYuc3R5bGUpLHRoaXMuX2ZuVXBkYXRlQ2FjaGUoYSwic0xlZnQiLGIuaVRhYmxlTGVmdCsicHgiLCJsZWZ0IixmLnN0eWxlKSl9LF9mblNjcm9sbEhvcml6b250YWxMZWZ0OmZ1bmN0aW9uKGEpe3ZhciBjPXRoaXMuZm5HZXRTZXR0aW5ncygpLGI9Yy5vTWVzLGQ9Rml4ZWRIZWFkZXIub1dpbixlPWEubldyYXBwZXIsZj1qUXVlcnkoZSkub3V0ZXJXaWR0aCgpO2QuaVNjcm9sbExlZnQ8Yi5pVGFibGVMZWZ0Pyh0aGlzLl9mblVwZGF0ZUNhY2hlKGEsCiJzUG9zaXRpb24iLCJhYnNvbHV0ZSIsInBvc2l0aW9uIixlLnN0eWxlKSx0aGlzLl9mblVwZGF0ZUNhY2hlKGEsInNUb3AiLGIuaVRhYmxlVG9wKyJweCIsInRvcCIsZS5zdHlsZSksdGhpcy5fZm5VcGRhdGVDYWNoZShhLCJzTGVmdCIsYi5pVGFibGVMZWZ0KyJweCIsImxlZnQiLGUuc3R5bGUpKTpkLmlTY3JvbGxMZWZ0PGIuaVRhYmxlTGVmdCtiLmlUYWJsZVdpZHRoLWY/Yy5iVXNlQWJzUG9zPyh0aGlzLl9mblVwZGF0ZUNhY2hlKGEsInNQb3NpdGlvbiIsImFic29sdXRlIiwicG9zaXRpb24iLGUuc3R5bGUpLHRoaXMuX2ZuVXBkYXRlQ2FjaGUoYSwic1RvcCIsYi5pVGFibGVUb3ArInB4IiwidG9wIixlLnN0eWxlKSx0aGlzLl9mblVwZGF0ZUNhY2hlKGEsInNMZWZ0IixkLmlTY3JvbGxMZWZ0KyJweCIsImxlZnQiLGUuc3R5bGUpKToodGhpcy5fZm5VcGRhdGVDYWNoZShhLCJzUG9zaXRpb24iLCJmaXhlZCIsInBvc2l0aW9uIixlLnN0eWxlKSx0aGlzLl9mblVwZGF0ZUNhY2hlKGEsCiJzVG9wIixiLmlUYWJsZVRvcC1kLmlTY3JvbGxUb3ArInB4IiwidG9wIixlLnN0eWxlKSx0aGlzLl9mblVwZGF0ZUNhY2hlKGEsInNMZWZ0IiwiMHB4IiwibGVmdCIsZS5zdHlsZSkpOih0aGlzLl9mblVwZGF0ZUNhY2hlKGEsInNQb3NpdGlvbiIsImFic29sdXRlIiwicG9zaXRpb24iLGUuc3R5bGUpLHRoaXMuX2ZuVXBkYXRlQ2FjaGUoYSwic1RvcCIsYi5pVGFibGVUb3ArInB4IiwidG9wIixlLnN0eWxlKSx0aGlzLl9mblVwZGF0ZUNhY2hlKGEsInNMZWZ0IixiLmlUYWJsZUxlZnQrYi5pVGFibGVXaWR0aC1mKyJweCIsImxlZnQiLGUuc3R5bGUpKX0sX2ZuU2Nyb2xsRml4ZWRGb290ZXI6ZnVuY3Rpb24oYSl7dmFyIGM9dGhpcy5mbkdldFNldHRpbmdzKCksYj1jLm9NZXMsZD1GaXhlZEhlYWRlci5vV2luLGU9Rml4ZWRIZWFkZXIub0RvYyxmPWEubldyYXBwZXIsZz1qUXVlcnkoInRoZWFkIixjLm5UYWJsZSkub3V0ZXJIZWlnaHQoKSxoPWpRdWVyeShmKS5vdXRlckhlaWdodCgpOwpkLmlTY3JvbGxCb3R0b208Yi5pVGFibGVCb3R0b20/KHRoaXMuX2ZuVXBkYXRlQ2FjaGUoYSwic1Bvc2l0aW9uIiwiYWJzb2x1dGUiLCJwb3NpdGlvbiIsZi5zdHlsZSksdGhpcy5fZm5VcGRhdGVDYWNoZShhLCJzVG9wIixiLmlUYWJsZVRvcCtiLmlUYWJsZUhlaWdodC1oKyJweCIsInRvcCIsZi5zdHlsZSksdGhpcy5fZm5VcGRhdGVDYWNoZShhLCJzTGVmdCIsYi5pVGFibGVMZWZ0KyJweCIsImxlZnQiLGYuc3R5bGUpKTpkLmlTY3JvbGxCb3R0b208Yi5pVGFibGVCb3R0b20rYi5pVGFibGVIZWlnaHQtaC1nP2MuYlVzZUFic1Bvcz8odGhpcy5fZm5VcGRhdGVDYWNoZShhLCJzUG9zaXRpb24iLCJhYnNvbHV0ZSIsInBvc2l0aW9uIixmLnN0eWxlKSx0aGlzLl9mblVwZGF0ZUNhY2hlKGEsInNUb3AiLGUuaUhlaWdodC1kLmlTY3JvbGxCb3R0b20taCsicHgiLCJ0b3AiLGYuc3R5bGUpLHRoaXMuX2ZuVXBkYXRlQ2FjaGUoYSwic0xlZnQiLGIuaVRhYmxlTGVmdCsicHgiLCJsZWZ0IiwKZi5zdHlsZSkpOih0aGlzLl9mblVwZGF0ZUNhY2hlKGEsInNQb3NpdGlvbiIsImZpeGVkIiwicG9zaXRpb24iLGYuc3R5bGUpLHRoaXMuX2ZuVXBkYXRlQ2FjaGUoYSwic1RvcCIsZC5pSGVpZ2h0LWgrInB4IiwidG9wIixmLnN0eWxlKSx0aGlzLl9mblVwZGF0ZUNhY2hlKGEsInNMZWZ0IixiLmlUYWJsZUxlZnQtZC5pU2Nyb2xsTGVmdCsicHgiLCJsZWZ0IixmLnN0eWxlKSk6KHRoaXMuX2ZuVXBkYXRlQ2FjaGUoYSwic1Bvc2l0aW9uIiwiYWJzb2x1dGUiLCJwb3NpdGlvbiIsZi5zdHlsZSksdGhpcy5fZm5VcGRhdGVDYWNoZShhLCJzVG9wIixiLmlUYWJsZVRvcCtoKyJweCIsInRvcCIsZi5zdHlsZSksdGhpcy5fZm5VcGRhdGVDYWNoZShhLCJzTGVmdCIsYi5pVGFibGVMZWZ0KyJweCIsImxlZnQiLGYuc3R5bGUpKX0sX2ZuU2Nyb2xsRml4ZWRIZWFkZXI6ZnVuY3Rpb24oYSl7Zm9yKHZhciBjPXRoaXMuZm5HZXRTZXR0aW5ncygpLGI9Yy5vTWVzLGQ9Rml4ZWRIZWFkZXIub1dpbixlPQphLm5XcmFwcGVyLGY9MCxnPWMublRhYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpLGg9MDtoPGcubGVuZ3RoOysraClmKz1nW2hdLm9mZnNldEhlaWdodDtiLmlUYWJsZVRvcD5kLmlTY3JvbGxUb3ArYy5vT2Zmc2V0LnRvcD8odGhpcy5fZm5VcGRhdGVDYWNoZShhLCJzUG9zaXRpb24iLCJhYnNvbHV0ZSIsInBvc2l0aW9uIixlLnN0eWxlKSx0aGlzLl9mblVwZGF0ZUNhY2hlKGEsInNUb3AiLGIuaVRhYmxlVG9wKyJweCIsInRvcCIsZS5zdHlsZSksdGhpcy5fZm5VcGRhdGVDYWNoZShhLCJzTGVmdCIsYi5pVGFibGVMZWZ0KyJweCIsImxlZnQiLGUuc3R5bGUpKTpkLmlTY3JvbGxUb3ArYy5vT2Zmc2V0LnRvcD5iLmlUYWJsZVRvcCtmPyh0aGlzLl9mblVwZGF0ZUNhY2hlKGEsInNQb3NpdGlvbiIsImFic29sdXRlIiwicG9zaXRpb24iLGUuc3R5bGUpLHRoaXMuX2ZuVXBkYXRlQ2FjaGUoYSwic1RvcCIsYi5pVGFibGVUb3ArZisicHgiLCJ0b3AiLGUuc3R5bGUpLHRoaXMuX2ZuVXBkYXRlQ2FjaGUoYSwKInNMZWZ0IixiLmlUYWJsZUxlZnQrInB4IiwibGVmdCIsZS5zdHlsZSkpOmMuYlVzZUFic1Bvcz8odGhpcy5fZm5VcGRhdGVDYWNoZShhLCJzUG9zaXRpb24iLCJhYnNvbHV0ZSIsInBvc2l0aW9uIixlLnN0eWxlKSx0aGlzLl9mblVwZGF0ZUNhY2hlKGEsInNUb3AiLGQuaVNjcm9sbFRvcCsicHgiLCJ0b3AiLGUuc3R5bGUpLHRoaXMuX2ZuVXBkYXRlQ2FjaGUoYSwic0xlZnQiLGIuaVRhYmxlTGVmdCsicHgiLCJsZWZ0IixlLnN0eWxlKSk6KHRoaXMuX2ZuVXBkYXRlQ2FjaGUoYSwic1Bvc2l0aW9uIiwiZml4ZWQiLCJwb3NpdGlvbiIsZS5zdHlsZSksdGhpcy5fZm5VcGRhdGVDYWNoZShhLCJzVG9wIixjLm9PZmZzZXQudG9wKyJweCIsInRvcCIsZS5zdHlsZSksdGhpcy5fZm5VcGRhdGVDYWNoZShhLCJzTGVmdCIsYi5pVGFibGVMZWZ0LWQuaVNjcm9sbExlZnQrInB4IiwibGVmdCIsZS5zdHlsZSkpfSxfZm5VcGRhdGVDYWNoZTpmdW5jdGlvbihhLGMsYixkLGUpe2FbY10hPWImJihlW2RdPQpiLGFbY109Yil9LF9mbkNsb25lVGhlYWQ6ZnVuY3Rpb24oYSl7dmFyIGM9dGhpcy5mbkdldFNldHRpbmdzKCksYj1hLm5Ob2RlO2ZvcihhLm5XcmFwcGVyLnN0eWxlLndpZHRoPWpRdWVyeShjLm5UYWJsZSkub3V0ZXJXaWR0aCgpKyJweCI7MDxiLmNoaWxkTm9kZXMubGVuZ3RoOylqUXVlcnkoInRoZWFkIHRoIixiKS51bmJpbmQoImNsaWNrIiksYi5yZW1vdmVDaGlsZChiLmNoaWxkTm9kZXNbMF0pO2E9alF1ZXJ5KCJ0aGVhZCIsYy5uVGFibGUpLmNsb25lKCEwKVswXTtiLmFwcGVuZENoaWxkKGEpO2pRdWVyeSgidGhlYWQ+dHIgdGgiLGMublRhYmxlKS5lYWNoKGZ1bmN0aW9uKGEpe2pRdWVyeSgidGhlYWQ+dHIgdGg6ZXEoIithKyIpIixiKS53aWR0aChqUXVlcnkodGhpcykud2lkdGgoKSl9KTtqUXVlcnkoInRoZWFkPnRyIHRkIixjLm5UYWJsZSkuZWFjaChmdW5jdGlvbihhKXtqUXVlcnkoInRoZWFkPnRyIHRkOmVxKCIrYSsiKSIsYikud2lkdGgoalF1ZXJ5KHRoaXMpLndpZHRoKCkpfSl9LApfZm5DbG9uZVRmb290OmZ1bmN0aW9uKGEpe3ZhciBjPXRoaXMuZm5HZXRTZXR0aW5ncygpLGI9YS5uTm9kZTtmb3IoYS5uV3JhcHBlci5zdHlsZS53aWR0aD1qUXVlcnkoYy5uVGFibGUpLm91dGVyV2lkdGgoKSsicHgiOzA8Yi5jaGlsZE5vZGVzLmxlbmd0aDspYi5yZW1vdmVDaGlsZChiLmNoaWxkTm9kZXNbMF0pO2E9alF1ZXJ5KCJ0Zm9vdCIsYy5uVGFibGUpLmNsb25lKCEwKVswXTtiLmFwcGVuZENoaWxkKGEpO2pRdWVyeSgidGZvb3Q6ZXEoMCk+dHIgdGgiLGMublRhYmxlKS5lYWNoKGZ1bmN0aW9uKGEpe2pRdWVyeSgidGZvb3Q6ZXEoMCk+dHIgdGg6ZXEoIithKyIpIixiKS53aWR0aChqUXVlcnkodGhpcykud2lkdGgoKSl9KTtqUXVlcnkoInRmb290OmVxKDApPnRyIHRkIixjLm5UYWJsZSkuZWFjaChmdW5jdGlvbihhKXtqUXVlcnkoInRmb290OmVxKDApPnRyIHRoOmVxKCIrYSsiKSIsYilbMF0uc3R5bGUud2lkdGgoalF1ZXJ5KHRoaXMpLndpZHRoKCkpfSl9LF9mbkNsb25lVExlZnQ6ZnVuY3Rpb24oYSl7dmFyIGM9CnRoaXMuZm5HZXRTZXR0aW5ncygpLGI9YS5uTm9kZSxkPSQoInRib2R5IixjLm5UYWJsZSlbMF07Zm9yKCQoInRib2R5IHRyOmVxKDApIHRkIixjLm5UYWJsZSk7MDxiLmNoaWxkTm9kZXMubGVuZ3RoOyliLnJlbW92ZUNoaWxkKGIuY2hpbGROb2Rlc1swXSk7Yi5hcHBlbmRDaGlsZChqUXVlcnkoInRoZWFkIixjLm5UYWJsZSkuY2xvbmUoITApWzBdKTtiLmFwcGVuZENoaWxkKGpRdWVyeSgidGJvZHkiLGMublRhYmxlKS5jbG9uZSghMClbMF0pO2MuYkZvb3RlciYmYi5hcHBlbmRDaGlsZChqUXVlcnkoInRmb290IixjLm5UYWJsZSkuY2xvbmUoITApWzBdKTskKCJ0aGVhZCB0ciIsYikuZWFjaChmdW5jdGlvbigpeyQoInRoOmd0KDApIix0aGlzKS5yZW1vdmUoKX0pOyQoInRmb290IHRyIixiKS5lYWNoKGZ1bmN0aW9uKCl7JCgidGg6Z3QoMCkiLHRoaXMpLnJlbW92ZSgpfSk7JCgidGJvZHkgdHIiLGIpLmVhY2goZnVuY3Rpb24oKXskKCJ0ZDpndCgwKSIsdGhpcykucmVtb3ZlKCl9KTsKdGhpcy5mbkVxdWFsaXNlSGVpZ2h0cygidGJvZHkiLGQucGFyZW50Tm9kZSxiKTtjPWpRdWVyeSgidGhlYWQgdHIgdGg6ZXEoMCkiLGMublRhYmxlKS5vdXRlcldpZHRoKCk7Yi5zdHlsZS53aWR0aD1jKyJweCI7YS5uV3JhcHBlci5zdHlsZS53aWR0aD1jKyJweCJ9LF9mbkNsb25lVFJpZ2h0OmZ1bmN0aW9uKGEpe2Zvcih2YXIgYz10aGlzLmZuR2V0U2V0dGluZ3MoKSxiPSQoInRib2R5IixjLm5UYWJsZSlbMF0sZD1hLm5Ob2RlLGU9alF1ZXJ5KCJ0Ym9keSB0cjplcSgwKSB0ZCIsYy5uVGFibGUpLmxlbmd0aDswPGQuY2hpbGROb2Rlcy5sZW5ndGg7KWQucmVtb3ZlQ2hpbGQoZC5jaGlsZE5vZGVzWzBdKTtkLmFwcGVuZENoaWxkKGpRdWVyeSgidGhlYWQiLGMublRhYmxlKS5jbG9uZSghMClbMF0pO2QuYXBwZW5kQ2hpbGQoalF1ZXJ5KCJ0Ym9keSIsYy5uVGFibGUpLmNsb25lKCEwKVswXSk7Yy5iRm9vdGVyJiZkLmFwcGVuZENoaWxkKGpRdWVyeSgidGZvb3QiLGMublRhYmxlKS5jbG9uZSghMClbMF0pOwpqUXVlcnkoInRoZWFkIHRyIHRoOm5vdCg6bnRoLWNoaWxkKCIrZSsibikpIixkKS5yZW1vdmUoKTtqUXVlcnkoInRmb290IHRyIHRoOm5vdCg6bnRoLWNoaWxkKCIrZSsibikpIixkKS5yZW1vdmUoKTskKCJ0Ym9keSB0ciIsZCkuZWFjaChmdW5jdGlvbigpeyQoInRkOmx0KCIrKGUtMSkrIikiLHRoaXMpLnJlbW92ZSgpfSk7dGhpcy5mbkVxdWFsaXNlSGVpZ2h0cygidGJvZHkiLGIucGFyZW50Tm9kZSxkKTtjPWpRdWVyeSgidGhlYWQgdHIgdGg6ZXEoIisoZS0xKSsiKSIsYy5uVGFibGUpLm91dGVyV2lkdGgoKTtkLnN0eWxlLndpZHRoPWMrInB4IjthLm5XcmFwcGVyLnN0eWxlLndpZHRoPWMrInB4In0sZm5FcXVhbGlzZUhlaWdodHM6ZnVuY3Rpb24oYSxjLGIpe3ZhciBkPSQoYSsiIHRyOmVxKDApIixjKS5jaGlsZHJlbigiOmVxKDApIiksZT1kLm91dGVySGVpZ2h0KCktZC5oZWlnaHQoKSxmPSQuYnJvd3Nlci5tc2llJiYoIjYuMCI9PSQuYnJvd3Nlci52ZXJzaW9ufHwiNy4wIj09CiQuYnJvd3Nlci52ZXJzaW9uKTskKGErIiB0ciIsYikuZWFjaChmdW5jdGlvbihiKXskLmJyb3dzZXIubW96aWxsYXx8JC5icm93c2VyLm9wZXJhPyQodGhpcykuY2hpbGRyZW4oKS5oZWlnaHQoJChhKyIgdHI6ZXEoIitiKyIpIixjKS5vdXRlckhlaWdodCgpKTokKHRoaXMpLmNoaWxkcmVuKCkuaGVpZ2h0KCQoYSsiIHRyOmVxKCIrYisiKSIsYykub3V0ZXJIZWlnaHQoKS1lKTtmfHwkKGErIiB0cjplcSgiK2IrIikiLGMpLmhlaWdodCgkKGErIiB0cjplcSgiK2IrIikiLGMpLm91dGVySGVpZ2h0KCkpfSl9fTtGaXhlZEhlYWRlci5vV2luPXtpU2Nyb2xsVG9wOjAsaVNjcm9sbFJpZ2h0OjAsaVNjcm9sbEJvdHRvbTowLGlTY3JvbGxMZWZ0OjAsaUhlaWdodDowLGlXaWR0aDowfTtGaXhlZEhlYWRlci5vRG9jPXtpSGVpZ2h0OjAsaVdpZHRoOjB9O0ZpeGVkSGVhZGVyLmFmblNjcm9sbD1bXTsKRml4ZWRIZWFkZXIuZm5NZWFzdXJlPWZ1bmN0aW9uKCl7dmFyIGE9alF1ZXJ5KHdpbmRvdyksYz1qUXVlcnkoZG9jdW1lbnQpLGI9Rml4ZWRIZWFkZXIub1dpbixkPUZpeGVkSGVhZGVyLm9Eb2M7ZC5pSGVpZ2h0PWMuaGVpZ2h0KCk7ZC5pV2lkdGg9Yy53aWR0aCgpO2IuaUhlaWdodD1hLmhlaWdodCgpO2IuaVdpZHRoPWEud2lkdGgoKTtiLmlTY3JvbGxUb3A9YS5zY3JvbGxUb3AoKTtiLmlTY3JvbGxMZWZ0PWEuc2Nyb2xsTGVmdCgpO2IuaVNjcm9sbFJpZ2h0PWQuaVdpZHRoLWIuaVNjcm9sbExlZnQtYi5pV2lkdGg7Yi5pU2Nyb2xsQm90dG9tPWQuaUhlaWdodC1iLmlTY3JvbGxUb3AtYi5pSGVpZ2h0fTtGaXhlZEhlYWRlci5WRVJTSU9OPSIyLjAuNiI7Rml4ZWRIZWFkZXIucHJvdG90eXBlLlZFUlNJT049Rml4ZWRIZWFkZXIuVkVSU0lPTjsKalF1ZXJ5KHdpbmRvdykuc2Nyb2xsKGZ1bmN0aW9uKCl7Rml4ZWRIZWFkZXIuZm5NZWFzdXJlKCk7Zm9yKHZhciBhPTAsYz1GaXhlZEhlYWRlci5hZm5TY3JvbGwubGVuZ3RoO2E8YzthKyspRml4ZWRIZWFkZXIuYWZuU2Nyb2xsW2FdKCl9KTsK]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedHeader/js/FixedHeader.min.js.gz</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedHeader/top_bottom_left_right.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5GaXhlZEhlYWRlciBleGFtcGxlPC90aXRsZT4KCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJjdXJyZW50U3R5bGUiPgoJCQlAaW1wb3J0ICIuLi8uLi9tZWRpYS9jc3MvZGVtb19wYWdlLmNzcyI7CgkJCUBpbXBvcnQgIi4uLy4uL21lZGlhL2Nzcy9kZW1vX3RhYmxlLmNzcyI7CgkJCS5GaXhlZEhlYWRlcl9DbG9uZWQgdGggewoJCQkJYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7CgkJCX0KCQkJdGgsIHRkIHsKCQkJCWhlaWdodDogMzBweDsKCQkJfQoJCQkubGVmdF9jZWxsIHsKCQkJCWJhY2tncm91bmQtY29sb3I6IHdoaXRlICAhaW1wb3J0YW50OwoJCQkJYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgYmxhY2sgICFpbXBvcnRhbnQ7CgkJCQl0ZXh0LWFsaWduOiBjZW50ZXI7CgkJCX0KCQkJLnJpZ2h0X2NlbGwgewoJCQkJYmFja2dyb3VuZC1jb2xvcjogd2hpdGUgIWltcG9ydGFudDsKCQkJCWJvcmRlci1sZWZ0OiAxcHggc29saWQgYmxhY2s7CgkJCQl0ZXh0LWFsaWduOiBjZW50ZXI7CgkJCX0KCQkJI2luZm8gewoJCQkJcG9zaXRpb246IGFic29sdXRlOwoJCQkJdG9wOiAxMDBweDsKCQkJCWxlZnQ6IDEwMHB4OwoJCQkJd2lkdGg6IDMwMHB4OwoJCQkJYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7CgkJCQlib3JkZXI6IDFweCBzb2xpZCBibHVlOwoJCQkJei1pbmRleDogNTA7CgkJCQlwYWRkaW5nOiAyMHB4OwoJCQl9CgkJPC9zdHlsZT4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiIHNyYz0iLi4vLi4vbWVkaWEvanMvanF1ZXJ5LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiIHNyYz0iLi4vLi4vbWVkaWEvanMvanF1ZXJ5LmRhdGFUYWJsZXMuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSJqcy9GaXhlZEhlYWRlci5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KCQkJJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCQkJCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggeyAKCQkJCQkiaURpc3BsYXlMZW5ndGgiOiAtMSwKCQkJCQkiYkZpbHRlciI6IGZhbHNlLAoJCQkJCSJiSW5mbyI6IGZhbHNlLAoJCQkJCSJiUGFnaW5hdGUiOiBmYWxzZSwKCQkJCQkiYkxlbmd0aENoYW5nZSI6IGZhbHNlLAoJCQkJCSJmbkRyYXdDYWxsYmFjayI6IGZ1bmN0aW9uICggb1NldHRpbmdzICkgewoJCQkJCQlmb3IgKCB2YXIgaT0wLCBpTGVuPW9TZXR0aW5ncy5haURpc3BsYXkubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQkJCQkJewoJCQkJCQkJJCgndGQ6ZXEoMCksIHRkOmVxKDYpJywgb1NldHRpbmdzLmFvRGF0YVsgb1NldHRpbmdzLmFpRGlzcGxheVtpXSBdLm5UciApLmh0bWwoIGkrMSApOwoJCQkJCQl9CgkJCQkJfSwKCQkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCQl7ImJTb3J0YWJsZSI6IGZhbHNlLCAic1dpZHRoIjogIjIwcHgiIH0sCgkJCQkJCW51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIAoJCQkJCQl7ImJTb3J0YWJsZSI6IGZhbHNlLCAic1dpZHRoIjogIjIwcHgiIH0KCQkJCQldCgkJCQl9ICk7CgkJCQluZXcgRml4ZWRIZWFkZXIoIG9UYWJsZSwgeyAibGVmdCI6IHRydWUsICJyaWdodCI6IHRydWUsICJib3R0b20iOiB0cnVlIH0gKTsKCQkJfSApOwoJCTwvc2NyaXB0PgoJPC9oZWFkPgoJPGJvZHkgaWQ9ImR0X2V4YW1wbGUiPgoJCTxkaXYgaWQ9ImluZm8iPgoJCQk8aDEgc3R5bGU9Im1hcmdpbjogMDsgYm9yZGVyLXdpZHRoOjAiPkZpeGVkSGVhZGVyIGV4YW1wbGUgLSB0b3AsIGJvdHRvbSwgbGVmdCBhbmQgcmlnaHQgZml4ZWQ8L2gxPgoJCQk8cD5UaGlzIGV4YW1wbGUgc2hvd3MgaG93IEZpeGVkSGVhZGVyIGNhbiBiZSBtYWRlIHRvIGxvb2sgbW9yZSBsaWtlIGEgc3ByZWFkc2hlZXQgYXBwbGljYXRpb24uIENsaWNrICdWaWV3IHNvdXJjZScgaW4geW91ciBicm93c2VyIHRvIHNlZSB0aGUgc2V0IHVwLjwvcD4KCQk8L2Rpdj4KCQkKCQk8ZGl2IHN0eWxlPSJ3aWR0aDoyMDAwcHg7IGhlaWdodDogMjAwMHB4Ij4KPHRhYmxlIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgYm9yZGVyPSIwIiBjbGFzcz0iZGlzcGxheSIgaWQ9ImV4YW1wbGUiPgoJPHRoZWFkPgoJCTx0cj4KCQkJPHRoPjwvdGg+CgkJCTx0aD5SZW5kZXJpbmcgZW5naW5lPC90aD4KCQkJPHRoPkJyb3dzZXI8L3RoPgoJCQk8dGg+UGxhdGZvcm0ocyk8L3RoPgoJCQk8dGg+RW5naW5lIHZlcnNpb248L3RoPgoJCQk8dGg+Q1NTIGdyYWRlPC90aD4KCQkJPHRoPjwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGJvZHk+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQgY2xhc3M9ImxlZnRfY2VsbCI+IDwvdGQ+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNC4wPC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQkJPHRkIGNsYXNzPSJyaWdodF9jZWxsIj4gPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkIGNsYXNzPSJsZWZ0X2NlbGwiPiA8L3RkPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDUuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJCTx0ZCBjbGFzcz0icmlnaHRfY2VsbCI+IDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0ibGVmdF9jZWxsIj4gPC90ZD4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA1LjU8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJCTx0ZCBjbGFzcz0icmlnaHRfY2VsbCI+IDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0ibGVmdF9jZWxsIj4gPC90ZD4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA2PC90ZD4KCQkJPHRkPldpbiA5OCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQkJPHRkIGNsYXNzPSJyaWdodF9jZWxsIj4gPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJsZWZ0X2NlbGwiPiA8L3RkPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA3PC90ZD4KCQkJPHRkPldpbiBYUCBTUDIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJCTx0ZCBjbGFzcz0icmlnaHRfY2VsbCI+IDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0ibGVmdF9jZWxsIj4gPC90ZD4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+QU9MIGJyb3dzZXIgKEFPTCBkZXNrdG9wKTwvdGQ+CgkJCTx0ZD5XaW4gWFA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQkJPHRkIGNsYXNzPSJyaWdodF9jZWxsIj4gPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJsZWZ0X2NlbGwiPiA8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjA8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJCTx0ZCBjbGFzcz0icmlnaHRfY2VsbCI+IDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0ibGVmdF9jZWxsIj4gPC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMS41PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCQk8dGQgY2xhc3M9InJpZ2h0X2NlbGwiPiA8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImxlZnRfY2VsbCI+IDwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDIuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQkJPHRkIGNsYXNzPSJyaWdodF9jZWxsIj4gPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJsZWZ0X2NlbGwiPiA8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAzLjA8L3RkPgoJCQk8dGQ+V2luIDJrKyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJCTx0ZCBjbGFzcz0icmlnaHRfY2VsbCI+IDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0ibGVmdF9jZWxsIj4gPC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkNhbWlubyAxLjA8L3RkPgoJCQk8dGQ+T1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQkJPHRkIGNsYXNzPSJyaWdodF9jZWxsIj4gPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJsZWZ0X2NlbGwiPiA8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuNTwvdGQ+CgkJCTx0ZD5PU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCQk8dGQgY2xhc3M9InJpZ2h0X2NlbGwiPiA8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImxlZnRfY2VsbCI+IDwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSA3LjI8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE1hYyBPUyA4LjYtOS4yPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQkJPHRkIGNsYXNzPSJyaWdodF9jZWxsIj4gPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJsZWZ0X2NlbGwiPiA8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgQnJvd3NlciA4PC90ZD4KCQkJPHRkPldpbiA5OFNFKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJCTx0ZCBjbGFzcz0icmlnaHRfY2VsbCI+IDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0ibGVmdF9jZWxsIj4gPC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIE5hdmlnYXRvciA5PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCQk8dGQgY2xhc3M9InJpZ2h0X2NlbGwiPiA8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImxlZnRfY2VsbCI+IDwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJCTx0ZCBjbGFzcz0icmlnaHRfY2VsbCI+IDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0ibGVmdF9jZWxsIj4gPC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4xPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCQk8dGQgY2xhc3M9InJpZ2h0X2NlbGwiPiA8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImxlZnRfY2VsbCI+IDwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQkJPHRkIGNsYXNzPSJyaWdodF9jZWxsIj4gPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJsZWZ0X2NlbGwiPiA8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjM8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJCTx0ZCBjbGFzcz0icmlnaHRfY2VsbCI+IDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0ibGVmdF9jZWxsIj4gPC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS40PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS40PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCQk8dGQgY2xhc3M9InJpZ2h0X2NlbGwiPiA8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImxlZnRfY2VsbCI+IDwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQkJPHRkIGNsYXNzPSJyaWdodF9jZWxsIj4gPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJsZWZ0X2NlbGwiPiA8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjY8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJCTx0ZCBjbGFzcz0icmlnaHRfY2VsbCI+IDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0ibGVmdF9jZWxsIj4gPC90ZD4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS43PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCQk8dGQgY2xhc3M9InJpZ2h0X2NlbGwiPiA8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImxlZnRfY2VsbCI+IDwvdGQ+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuODwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQkJPHRkIGNsYXNzPSJyaWdodF9jZWxsIj4gPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJsZWZ0X2NlbGwiPiA8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+U2VhbW9ua2V5IDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQkJPHRkIGNsYXNzPSJyaWdodF9jZWxsIj4gPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJsZWZ0X2NlbGwiPiA8L3RkPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RXBpcGhhbnkgMi4yMDwvdGQ+CgkJCTx0ZD5Hbm9tZTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJCTx0ZCBjbGFzcz0icmlnaHRfY2VsbCI+IDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0ibGVmdF9jZWxsIj4gPC90ZD4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMS4yPC90ZD4KCQkJPHRkPk9TWC4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEyNS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCQk8dGQgY2xhc3M9InJpZ2h0X2NlbGwiPiA8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImxlZnRfY2VsbCI+IDwvdGQ+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDEuMzwvdGQ+CgkJCTx0ZD5PU1guMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zMTIuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQkJPHRkIGNsYXNzPSJyaWdodF9jZWxsIj4gPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJsZWZ0X2NlbGwiPiA8L3RkPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAyLjA8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQxOS4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCQk8dGQgY2xhc3M9InJpZ2h0X2NlbGwiPiA8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImxlZnRfY2VsbCI+IDwvdGQ+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDMuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTIyLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJCTx0ZCBjbGFzcz0icmlnaHRfY2VsbCI+IDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0ibGVmdF9jZWxsIj4gPC90ZD4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5PbW5pV2ViIDUuNTwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCQk8dGQgY2xhc3M9InJpZ2h0X2NlbGwiPiA8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImxlZnRfY2VsbCI+IDwvdGQ+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+aVBvZCBUb3VjaCAvIGlQaG9uZTwvdGQ+CgkJCTx0ZD5pUG9kPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQyMC4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCQk8dGQgY2xhc3M9InJpZ2h0X2NlbGwiPiA8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImxlZnRfY2VsbCI+IDwvdGQ+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+UzYwPC90ZD4KCQkJPHRkPlM2MDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJCTx0ZCBjbGFzcz0icmlnaHRfY2VsbCI+IDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0ibGVmdF9jZWxsIj4gPC90ZD4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA3LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCQk8dGQgY2xhc3M9InJpZ2h0X2NlbGwiPiA8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImxlZnRfY2VsbCI+IDwvdGQ+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgNy41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQkJPHRkIGNsYXNzPSJyaWdodF9jZWxsIj4gPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJsZWZ0X2NlbGwiPiA8L3RkPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDguMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJCTx0ZCBjbGFzcz0icmlnaHRfY2VsbCI+IDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0ibGVmdF9jZWxsIj4gPC90ZD4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA4LjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCQk8dGQgY2xhc3M9InJpZ2h0X2NlbGwiPiA8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImxlZnRfY2VsbCI+IDwvdGQ+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQkJPHRkIGNsYXNzPSJyaWdodF9jZWxsIj4gPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJsZWZ0X2NlbGwiPiA8L3RkPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuMjwvdGQ+CgkJCTx0ZD5XaW4gODgrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJCTx0ZCBjbGFzcz0icmlnaHRfY2VsbCI+IDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0ibGVmdF9jZWxsIj4gPC90ZD4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjU8L3RkPgoJCQk8dGQ+V2luIDg4KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCQk8dGQgY2xhc3M9InJpZ2h0X2NlbGwiPiA8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImxlZnRfY2VsbCI+IDwvdGQ+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgZm9yIFdpaTwvdGQ+CgkJCTx0ZD5XaWk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQkJPHRkIGNsYXNzPSJyaWdodF9jZWxsIj4gPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkIGNsYXNzPSJsZWZ0X2NlbGwiPiA8L3RkPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5va2lhIE44MDA8L3RkPgoJCQk8dGQ+TjgwMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCQk8dGQgY2xhc3M9InJpZ2h0X2NlbGwiPiA8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImxlZnRfY2VsbCI+IDwvdGQ+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+TmludGVuZG8gRFMgYnJvd3NlcjwvdGQ+CgkJCTx0ZD5OaW50ZW5kbyBEUzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj44LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+Qy9BPHN1cD4xPC9zdXA+PC90ZD4KCQkJPHRkIGNsYXNzPSJyaWdodF9jZWxsIj4gPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkIGNsYXNzPSJsZWZ0X2NlbGwiPiA8L3RkPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjE8L3RkPgoJCQk8dGQ+S0RFIDMuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJCTx0ZCBjbGFzcz0icmlnaHRfY2VsbCI+IDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0ibGVmdF9jZWxsIj4gPC90ZD4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy4zPC90ZD4KCQkJPHRkPktERSAzLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCQk8dGQgY2xhc3M9InJpZ2h0X2NlbGwiPiA8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImxlZnRfY2VsbCI+IDwvdGQ+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuNTwvdGQ+CgkJCTx0ZD5LREUgMy41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQkJPHRkIGNsYXNzPSJyaWdodF9jZWxsIj4gPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkIGNsYXNzPSJsZWZ0X2NlbGwiPiA8L3RkPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDQuNTwvdGQ+CgkJCTx0ZD5NYWMgT1MgOC05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJCTx0ZCBjbGFzcz0icmlnaHRfY2VsbCI+IDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZCBjbGFzcz0ibGVmdF9jZWxsIj4gPC90ZD4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjE8L3RkPgoJCQk8dGQ+TWFjIE9TIDcuNi05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJCTx0ZCBjbGFzcz0icmlnaHRfY2VsbCI+IDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZCBjbGFzcz0ibGVmdF9jZWxsIj4gPC90ZD4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjI8L3RkPgoJCQk8dGQ+TWFjIE9TIDgtWDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCQk8dGQgY2xhc3M9InJpZ2h0X2NlbGwiPiA8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQgY2xhc3M9ImxlZnRfY2VsbCI+IDwvdGQ+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPk5ldEZyb250IDMuMTwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJCTx0ZCBjbGFzcz0icmlnaHRfY2VsbCI+IDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZCBjbGFzcz0ibGVmdF9jZWxsIj4gPC90ZD4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy40PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQkJPHRkIGNsYXNzPSJyaWdodF9jZWxsIj4gPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkIGNsYXNzPSJsZWZ0X2NlbGwiPiA8L3RkPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5EaWxsbyAwLjg8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCQk8dGQgY2xhc3M9InJpZ2h0X2NlbGwiPiA8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQgY2xhc3M9ImxlZnRfY2VsbCI+IDwvdGQ+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkxpbmtzPC90ZD4KCQkJPHRkPlRleHQgb25seTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCQk8dGQgY2xhc3M9InJpZ2h0X2NlbGwiPiA8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQgY2xhc3M9ImxlZnRfY2VsbCI+IDwvdGQ+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkx5bng8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJCTx0ZCBjbGFzcz0icmlnaHRfY2VsbCI+IDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZCBjbGFzcz0ibGVmdF9jZWxsIj4gPC90ZD4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+SUUgTW9iaWxlPC90ZD4KCQkJPHRkPldpbmRvd3MgTW9iaWxlIDY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQkJPHRkIGNsYXNzPSJyaWdodF9jZWxsIj4gPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkIGNsYXNzPSJsZWZ0X2NlbGwiPiA8L3RkPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5QU1AgYnJvd3NlcjwvdGQ+CgkJCTx0ZD5QU1A8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQkJPHRkIGNsYXNzPSJyaWdodF9jZWxsIj4gPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVVIj4KCQkJPHRkIGNsYXNzPSJsZWZ0X2NlbGwiPiA8L3RkPgoJCQk8dGQ+T3RoZXIgYnJvd3NlcnM8L3RkPgoJCQk8dGQ+QWxsIG90aGVyczwvdGQ+CgkJCTx0ZD4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+VTwvdGQ+CgkJCTx0ZCBjbGFzcz0icmlnaHRfY2VsbCI+IDwvdGQ+CgkJPC90cj4KCTwvdGJvZHk+Cgk8dGZvb3Q+CgkJPHRyPgoJCQk8dGg+PC90aD4KCQkJPHRoPlJlbmRlcmluZyBlbmdpbmU8L3RoPgoJCQk8dGg+QnJvd3NlcjwvdGg+CgkJCTx0aD5QbGF0Zm9ybShzKTwvdGg+CgkJCTx0aD5FbmdpbmUgdmVyc2lvbjwvdGg+CgkJCTx0aD5DU1MgZ3JhZGU8L3RoPgoJCQk8dGg+PC90aD4KCQk8L3RyPgoJPC90Zm9vdD4KPC90YWJsZT4KCQk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedHeader/top_left.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5GaXhlZEhlYWRlciBleGFtcGxlPC90aXRsZT4KCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJjdXJyZW50U3R5bGUiPgoJCQlAaW1wb3J0ICIuLi8uLi9tZWRpYS9jc3MvZGVtb19wYWdlLmNzcyI7CgkJCUBpbXBvcnQgIi4uLy4uL21lZGlhL2Nzcy9kZW1vX3RhYmxlLmNzcyI7CgkJCS5GaXhlZEhlYWRlcl9DbG9uZWQgdGggeyBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgfQoJCTwvc3R5bGU+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5kYXRhVGFibGVzLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiIHNyYz0ianMvRml4ZWRIZWFkZXIuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CgkJCSQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkJCQl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCQkJCW5ldyBGaXhlZEhlYWRlciggb1RhYmxlLCB7ICJsZWZ0IjogdHJ1ZSB9ICk7CgkJCX0gKTsKCQk8L3NjcmlwdD4KCTwvaGVhZD4KCTxib2R5IGlkPSJkdF9leGFtcGxlIj4KCQk8ZGl2IGlkPSJjb250YWluZXIiPgoJCQk8ZGl2IGNsYXNzPSJmdWxsX3dpZHRoIGJpZyI+CgkJCQlGaXhlZEhlYWRlciBleGFtcGxlIC0gaGVhZGVyIGFuZCBsZWZ0IGNvbHVtbnMgZml4ZWQKCQkJPC9kaXY+CgkJCQoJCQk8aDE+UHJlYW1ibGU8L2gxPgoJCQk8cD5UaGlzIGV4YW1wbGUgc2hvd3MgaG93IHRpdmlhbCBpdCBpcyB0byBmaXggdGhlIGxlZnQgaGFuZCBjb2x1bW4gb2YgdGhlIHRhYmxlIGFzIHdlbGwgYXMgdGhlIGhlYWRlci4gSW4gZmFjdCwgdGhlIGhlYWRlciwgZm9vdGVyLCBsZWZ0IGFuZCByaWdodCBjb2x1bW5zIGNhbiBhbGwgYmUgZml4ZWQgaW4gZXhhY3RseSB0aGUgc2FtZSBtYW5uZXIuIFRoZSBoZWFkZXIgaXMgdGhlIG9ubHkgb25lIHRvIGJlIGZpeGVkIGJ5IGRlZmF1bHQuPC9wPgoJCQk8cD5Ob3RlIHRoYXQgdGhlIHdpbmRvdyBoYXMgb2YgY291cnNlIGJlZW4gbWFkZSBhcnRpZmljaWFsbHkgd2lkZSB0byBzaG93IHRoZSBmaXhlZCBsZWZ0IGNvbHVtbiBpbiBhY3Rpb24uPC9wPgoJCQkKCQkJPGgxPkxpdmUgZXhhbXBsZTwvaDE+CgkJCTxkaXYgaWQ9ImRlbW8iPgo8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIGNsYXNzPSJkaXNwbGF5IiBpZD0iZXhhbXBsZSI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGJvZHk+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDQuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNS4wPC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA1LjU8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNjwvdGQ+CgkJCTx0ZD5XaW4gOTgrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDc8L3RkPgoJCQk8dGQ+V2luIFhQIFNQMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+QU9MIGJyb3dzZXIgKEFPTCBkZXNrdG9wKTwvdGQ+CgkJCTx0ZD5XaW4gWFA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMS4wPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjU8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDIuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMy4wPC90ZD4KCQkJPHRkPldpbiAyaysgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS45PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuMDwvdGQ+CgkJCTx0ZD5PU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuNTwvdGQ+CgkJCTx0ZD5PU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgNy4yPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBNYWMgT1MgOC42LTkuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSBCcm93c2VyIDg8L3RkPgoJCQk8dGQ+V2luIDk4U0UrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIE5hdmlnYXRvciA5PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjE8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4zPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjQ8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS42PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjc8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuODwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPlNlYW1vbmtleSAxLjE8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5FcGlwaGFueSAyLjIwPC90ZD4KCQkJPHRkPkdub21lPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMS4yPC90ZD4KCQkJPHRkPk9TWC4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEyNS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjM8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MzEyLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDIuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDE5LjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDMuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTIyLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+T21uaVdlYiA1LjU8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQyMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5pUG9kIFRvdWNoIC8gaVBob25lPC90ZD4KCQkJPHRkPmlQb2Q8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+UzYwPC90ZD4KCQkJPHRkPlM2MDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgNy4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA3LjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDguMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOC41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuMjwvdGQ+CgkJCTx0ZD5XaW4gODgrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS41PC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSBmb3IgV2lpPC90ZD4KCQkJPHRkPldpaTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5va2lhIE44MDA8L3RkPgoJCQk8dGQ+TjgwMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5pbnRlbmRvIERTIGJyb3dzZXI8L3RkPgoJCQk8dGQ+TmludGVuZG8gRFM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+OC41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkMvQTxzdXA+MTwvc3VwPjwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuMTwvdGQ+CgkJCTx0ZD5LREUgMy4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy4zPC90ZD4KCQkJPHRkPktERSAzLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjU8L3RkPgoJCQk8dGQ+S0RFIDMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNC41PC90ZD4KCQkJPHRkPk1hYyBPUyA4LTk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjE8L3RkPgoJCQk8dGQ+TWFjIE9TIDcuNi05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4yPC90ZD4KCQkJPHRkPk1hYyBPUyA4LVg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy4xPC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy40PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+RGlsbG8gMC44PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TGlua3M8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkx5bng8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPklFIE1vYmlsZTwvdGQ+CgkJCTx0ZD5XaW5kb3dzIE1vYmlsZSA2PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPlBTUCBicm93c2VyPC90ZD4KCQkJPHRkPlBTUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVUiPgoJCQk8dGQ+T3RoZXIgYnJvd3NlcnM8L3RkPgoJCQk8dGQ+QWxsIG90aGVyczwvdGQ+CgkJCTx0ZD4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+VTwvdGQ+CgkJPC90cj4KCTwvdGJvZHk+Cgk8dGZvb3Q+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGZvb3Q+CjwvdGFibGU+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgoJCQkKCQkJCgkJCTxoMT5Jbml0aWFsaXNhdGlvbiBjb2RlPC9oMT4KCQkJPHByZT4kKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7CgluZXcgRml4ZWRIZWFkZXIoIG9UYWJsZSwgeyAibGVmdCI6IHRydWUgfSApOwp9ICk7PC9wcmU+CgoJCQk8aDE+RXhhbXBsZXM8L2gxPgoJCQk8dWw+CgkJCQk8bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+QmFzaWMgZGVtbyB3aXRoIGp1c3QgdGhlIEhlYWRlckZpeGVkPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iaHRtbF90YWJsZS5odG1sIj5GaXhlZEhlYWRlciB3aXRob3V0IHJlcXVpcmluZyBEYXRhVGFibGVzPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0idHdvX3RhYmxlcy5odG1sIj5Ud28gdGFibGVzIHdpdGggRml4ZWRIZWFkZXJzIG9uIGEgc2luZ2xlIHBhZ2U8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJ0b3BfYm90dG9tX2xlZnRfcmlnaHQuaHRtbCI+QSBzcHJlYWRzaGVldCBzdHlsZSBsYXlvdXQgd2l0aCBoZWFkZXIgYW5kIGZvb3RlciwgbGVmdCBhbmQgcmlnaHQgY29sdW1ucyBhbGwgZml4ZWQuPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iekluZGV4ZXMuaHRtbCI+Q2hhbmdlIHRoZSBkaXNwbGF5IG9yZGVyIG9mIHRoZSBmaXhlZCBlbGVtZW50cyAoekluZGV4KTwvYT48L2xpPgoJCQk8L3VsPgoJCQoJCQk8cD5FbXB0eSBwYXJhZ3JhcGhzIHRvIGZvcmNlIHNjcm9sbGluZyEuLi48L3A+CgkJCTxwIHN0eWxlPSJoZWlnaHQ6NTAwcHg7IHdpZHRoOjMwMDBweDsiPiZuYnNwOzwvcD4KCQkJCgkJCQoJCQk8ZGl2IGlkPSJmb290ZXIiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjsiPgoJCQkJPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMHB4OyI+CgkJCQkJRml4ZWRIZWFkZXIgYW5kIERhdGFUYWJsZXMgJmNvcHk7IEFsbGFuIEphcmRpbmUgMjAwOS48YnI+CgkJCQk8L3NwYW4+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedHeader/two_tables.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5GaXhlZEhlYWRlciBleGFtcGxlPC90aXRsZT4KCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJjdXJyZW50U3R5bGUiPgoJCQlAaW1wb3J0ICIuLi8uLi9tZWRpYS9jc3MvZGVtb19wYWdlLmNzcyI7CgkJCUBpbXBvcnQgIi4uLy4uL21lZGlhL2Nzcy9kZW1vX3RhYmxlLmNzcyI7CgkJCS5GaXhlZEhlYWRlcl9DbG9uZWQgdGggeyBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgfQoJCTwvc3R5bGU+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5kYXRhVGFibGVzLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiIHNyYz0ianMvRml4ZWRIZWFkZXIuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CgkJCSQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkJCQl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCQkJCW5ldyBGaXhlZEhlYWRlciggb1RhYmxlLCB7ICJib3R0b20iOiB0cnVlIH0gKTsKCQkJCQoJCQkJdmFyIG9UYWJsZTIgPSAkKCcjZXhhbXBsZTInKS5kYXRhVGFibGUoKTsKCQkJCW5ldyBGaXhlZEhlYWRlciggb1RhYmxlMiwgeyAiYm90dG9tIjogdHJ1ZSB9ICk7CgkJCX0gKTsKCQk8L3NjcmlwdD4KCTwvaGVhZD4KCTxib2R5IGlkPSJkdF9leGFtcGxlIj4KCQk8ZGl2IGlkPSJjb250YWluZXIiPgoJCQk8ZGl2IGNsYXNzPSJmdWxsX3dpZHRoIGJpZyI+CgkJCQlGaXhlZEhlYWRlciBleGFtcGxlIC0gdHdvIHRhYmxlcwoJCQk8L2Rpdj4KCQkJCgkJCTxoMT5QcmVhbWJsZTwvaDE+CgkJCTxwPlRoZSBmb2xsb3dpbmcgZXhhbXBsZSBzaG93cyB0d28gRGF0YVRhYmxlcyBlbmhhbmNlZCB0YWJsZXMgYm90aCB3aXRoIEZpeGVkSGVhZGVyIGVuYWJsZWQgb24gdGhlbS4gVGhlIGZvb3RlciBpcyBhbHNvIGZpeGVkIGZvciBib3RoIHRhYmxlLjwvcD4KCQkJCgkJCTxoMT5MaXZlIGV4YW1wbGU8L2gxPgoJCQk8ZGl2IGlkPSJkZW1vIj4KPHRhYmxlIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgYm9yZGVyPSIwIiBjbGFzcz0iZGlzcGxheSIgaWQ9ImV4YW1wbGUiPgoJPHRoZWFkPgoJCTx0cj4KCQkJPHRoPlJlbmRlcmluZyBlbmdpbmU8L3RoPgoJCQk8dGg+QnJvd3NlcjwvdGg+CgkJCTx0aD5QbGF0Zm9ybShzKTwvdGg+CgkJCTx0aD5FbmdpbmUgdmVyc2lvbjwvdGg+CgkJCTx0aD5DU1MgZ3JhZGU8L3RoPgoJCTwvdHI+Cgk8L3RoZWFkPgoJPHRib2R5PgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA0LjA8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDUuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNS41PC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDY8L3RkPgoJCQk8dGQ+V2luIDk4KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA3PC90ZD4KCQkJPHRkPldpbiBYUCBTUDIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkFPTCBicm93c2VyIChBT0wgZGVza3RvcCk8L3RkPgoJCQk8dGQ+V2luIFhQPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMS41PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAyLjA8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDMuMDwvdGQ+CgkJCTx0ZD5XaW4gMmsrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkNhbWlubyAxLjA8L3RkPgoJCQk8dGQ+T1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkNhbWlubyAxLjU8L3RkPgoJCQk8dGQ+T1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIDcuMjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gTWFjIE9TIDguNi05LjI8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgQnJvd3NlciA4PC90ZD4KCQkJPHRkPldpbiA5OFNFKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSBOYXZpZ2F0b3IgOTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4xPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjI8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjI8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMzwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS40PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS40PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS43PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjg8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5TZWFtb25rZXkgMS4xPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RXBpcGhhbnkgMi4yMDwvdGQ+CgkJCTx0ZD5Hbm9tZTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDEuMjwvdGQ+CgkJCTx0ZD5PU1guMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xMjUuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMS4zPC90ZD4KCQkJPHRkPk9TWC4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMxMi44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAyLjA8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQxOS4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAzLjA8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUyMi4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPk9tbmlXZWIgNS41PC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MjA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+aVBvZCBUb3VjaCAvIGlQaG9uZTwvdGQ+CgkJCTx0ZD5pUG9kPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQyMC4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlM2MDwvdGQ+CgkJCTx0ZD5TNjA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDEzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDcuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgNy41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA4LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDguNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjI8L3RkPgoJCQk8dGQ+V2luIDg4KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuNTwvdGQ+CgkJCTx0ZD5XaW4gODgrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgZm9yIFdpaTwvdGQ+CgkJCTx0ZD5XaWk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5Ob2tpYSBOODAwPC90ZD4KCQkJPHRkPk44MDA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5OaW50ZW5kbyBEUyBicm93c2VyPC90ZD4KCQkJPHRkPk5pbnRlbmRvIERTPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjguNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DL0E8c3VwPjE8L3N1cD48L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjE8L3RkPgoJCQk8dGQ+S0RFIDMuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuMzwvdGQ+CgkJCTx0ZD5LREUgMy4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy41PC90ZD4KCQkJPHRkPktERSAzLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDQuNTwvdGQ+CgkJCTx0ZD5NYWMgT1MgOC05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4xPC90ZD4KCQkJPHRkPk1hYyBPUyA3LjYtOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMjwvdGQ+CgkJCTx0ZD5NYWMgT1MgOC1YPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPk5ldEZyb250IDMuMTwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPk5ldEZyb250IDMuNDwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkRpbGxvIDAuODwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkxpbmtzPC90ZD4KCQkJPHRkPlRleHQgb25seTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5MeW54PC90ZD4KCQkJPHRkPlRleHQgb25seTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5JRSBNb2JpbGU8L3RkPgoJCQk8dGQ+V2luZG93cyBNb2JpbGUgNjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5QU1AgYnJvd3NlcjwvdGQ+CgkJCTx0ZD5QU1A8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVVIj4KCQkJPHRkPk90aGVyIGJyb3dzZXJzPC90ZD4KCQkJPHRkPkFsbCBvdGhlcnM8L3RkPgoJCQk8dGQ+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlU8L3RkPgoJCTwvdHI+Cgk8L3Rib2R5PgoJPHRmb290PgoJCTx0cj4KCQkJPHRoPlJlbmRlcmluZyBlbmdpbmU8L3RoPgoJCQk8dGg+QnJvd3NlcjwvdGg+CgkJCTx0aD5QbGF0Zm9ybShzKTwvdGg+CgkJCTx0aD5FbmdpbmUgdmVyc2lvbjwvdGg+CgkJCTx0aD5DU1MgZ3JhZGU8L3RoPgoJCTwvdHI+Cgk8L3Rmb290Pgo8L3RhYmxlPgoKPGRpdiBjbGFzcz0ic3BhY2VyIj48L2Rpdj4KCjx0YWJsZSBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIGJvcmRlcj0iMCIgY2xhc3M9ImRpc3BsYXkiIGlkPSJleGFtcGxlMiI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGJvZHk+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDQuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNS4wPC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA1LjU8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNjwvdGQ+CgkJCTx0ZD5XaW4gOTgrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IDxicj5FeHBsb3JlciA3PC90ZD4KCQkJPHRkPldpbiBYUCBTUDIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkFPTCBicm93c2VyIChBT0wgZGVza3RvcCk8L3RkPgoJCQk8dGQ+V2luIFhQPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMS41PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAyLjA8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDMuMDwvdGQ+CgkJCTx0ZD5XaW4gMmsrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkNhbWlubyAxLjA8L3RkPgoJCQk8dGQ+T1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkNhbWlubyAxLjU8L3RkPgoJCQk8dGQ+T1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIDcuMjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gTWFjIE9TIDguNi05LjI8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgQnJvd3NlciA4PC90ZD4KCQkJPHRkPldpbiA5OFNFKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSBOYXZpZ2F0b3IgOTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4xPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjI8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjI8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMzwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS40PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS40PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS43PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjg8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5TZWFtb25rZXkgMS4xPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RXBpcGhhbnkgMi4yMDwvdGQ+CgkJCTx0ZD5Hbm9tZTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDEuMjwvdGQ+CgkJCTx0ZD5PU1guMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xMjUuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMS4zPC90ZD4KCQkJPHRkPk9TWC4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMxMi44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAyLjA8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQxOS4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAzLjA8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUyMi4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPk9tbmlXZWIgNS41PC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MjA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+aVBvZCBUb3VjaCAvIGlQaG9uZTwvdGQ+CgkJCTx0ZD5pUG9kPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQyMC4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlM2MDwvdGQ+CgkJCTx0ZD5TNjA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDEzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDcuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgNy41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA4LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDguNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjI8L3RkPgoJCQk8dGQ+V2luIDg4KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuNTwvdGQ+CgkJCTx0ZD5XaW4gODgrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgZm9yIFdpaTwvdGQ+CgkJCTx0ZD5XaWk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5Ob2tpYSBOODAwPC90ZD4KCQkJPHRkPk44MDA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5OaW50ZW5kbyBEUyBicm93c2VyPC90ZD4KCQkJPHRkPk5pbnRlbmRvIERTPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjguNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DL0E8c3VwPjE8L3N1cD48L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjE8L3RkPgoJCQk8dGQ+S0RFIDMuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuMzwvdGQ+CgkJCTx0ZD5LREUgMy4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy41PC90ZD4KCQkJPHRkPktERSAzLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDQuNTwvdGQ+CgkJCTx0ZD5NYWMgT1MgOC05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4xPC90ZD4KCQkJPHRkPk1hYyBPUyA3LjYtOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMjwvdGQ+CgkJCTx0ZD5NYWMgT1MgOC1YPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPk5ldEZyb250IDMuMTwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPk5ldEZyb250IDMuNDwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkRpbGxvIDAuODwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkxpbmtzPC90ZD4KCQkJPHRkPlRleHQgb25seTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5MeW54PC90ZD4KCQkJPHRkPlRleHQgb25seTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5JRSBNb2JpbGU8L3RkPgoJCQk8dGQ+V2luZG93cyBNb2JpbGUgNjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5QU1AgYnJvd3NlcjwvdGQ+CgkJCTx0ZD5QU1A8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVVIj4KCQkJPHRkPk90aGVyIGJyb3dzZXJzPC90ZD4KCQkJPHRkPkFsbCBvdGhlcnM8L3RkPgoJCQk8dGQ+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlU8L3RkPgoJCTwvdHI+Cgk8L3Rib2R5PgoJPHRmb290PgoJCTx0cj4KCQkJPHRoPlJlbmRlcmluZyBlbmdpbmU8L3RoPgoJCQk8dGg+QnJvd3NlcjwvdGg+CgkJCTx0aD5QbGF0Zm9ybShzKTwvdGg+CgkJCTx0aD5FbmdpbmUgdmVyc2lvbjwvdGg+CgkJCTx0aD5DU1MgZ3JhZGU8L3RoPgoJCTwvdHI+Cgk8L3Rmb290Pgo8L3RhYmxlPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0ic3BhY2VyIj48L2Rpdj4KCQkJCgkJCQoJCQk8aDE+SW5pdGlhbGlzYXRpb24gY29kZTwvaDE+CgkJCTxwcmU+JChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJbmV3IEZpeGVkSGVhZGVyKCBvVGFibGUsIHsgImJvdHRvbSI6IHRydWUgfSApOwoJCgl2YXIgb1RhYmxlMiA9ICQoJyNleGFtcGxlMicpLmRhdGFUYWJsZSgpOwoJbmV3IEZpeGVkSGVhZGVyKCBvVGFibGUyLCB7ICJib3R0b20iOiB0cnVlIH0gKTsKfSApOzwvcHJlPgoKCQkJPGgxPkV4YW1wbGVzPC9oMT4KCQkJPHVsPgoJCQkJPGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkJhc2ljIGRlbW8gd2l0aCBqdXN0IHRoZSBIZWFkZXJGaXhlZDwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9Imh0bWxfdGFibGUuaHRtbCI+Rml4ZWRIZWFkZXIgd2l0aG91dCByZXF1aXJpbmcgRGF0YVRhYmxlczwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InR3b190YWJsZXMuaHRtbCI+VHdvIHRhYmxlcyB3aXRoIEZpeGVkSGVhZGVycyBvbiBhIHNpbmdsZSBwYWdlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0idG9wX2JvdHRvbV9sZWZ0X3JpZ2h0Lmh0bWwiPkEgc3ByZWFkc2hlZXQgc3R5bGUgbGF5b3V0IHdpdGggaGVhZGVyIGFuZCBmb290ZXIsIGxlZnQgYW5kIHJpZ2h0IGNvbHVtbnMgYWxsIGZpeGVkLjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InpJbmRleGVzLmh0bWwiPkNoYW5nZSB0aGUgZGlzcGxheSBvcmRlciBvZiB0aGUgZml4ZWQgZWxlbWVudHMgKHpJbmRleCk8L2E+PC9saT4KCQkJPC91bD4KCQkKCQkJPHA+RW1wdHkgcGFyYWdyYXBocyB0byBmb3JjZSBzY3JvbGxpbmchLi4uPC9wPgoJCQk8cCBzdHlsZT0iaGVpZ2h0OjUwMHB4OyI+Jm5ic3A7PC9wPgoJCQkKCQkJCgkJCTxkaXYgaWQ9ImZvb3RlciIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyOyI+CgkJCQk8c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwcHg7Ij4KCQkJCQlGaXhlZEhlYWRlciBhbmQgRGF0YVRhYmxlcyAmY29weTsgQWxsYW4gSmFyZGluZSAyMDA5LTIwMTAuPGJyPgoJCQkJPC9zcGFuPgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/FixedHeader/zIndexes.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5GaXhlZEhlYWRlciBleGFtcGxlPC90aXRsZT4KCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJjdXJyZW50U3R5bGUiPgoJCQlAaW1wb3J0ICIuLi8uLi9tZWRpYS9jc3MvZGVtb19wYWdlLmNzcyI7CgkJCUBpbXBvcnQgIi4uLy4uL21lZGlhL2Nzcy9kZW1vX3RhYmxlLmNzcyI7CgkJCS5GaXhlZEhlYWRlcl9DbG9uZWQgdGggeyBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgfQoJCTwvc3R5bGU+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5kYXRhVGFibGVzLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiIHNyYz0ianMvRml4ZWRIZWFkZXIuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CgkJCSQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkJCQl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCQkJCW5ldyBGaXhlZEhlYWRlciggb1RhYmxlLCB7ICJsZWZ0IjogdHJ1ZSwgInpMZWZ0IjogMTA1IH0gKTsKCQkJfSApOwoJCTwvc2NyaXB0PgoJPC9oZWFkPgoJPGJvZHkgaWQ9ImR0X2V4YW1wbGUiPgoJCTxkaXYgaWQ9ImNvbnRhaW5lciI+CgkJCTxkaXYgY2xhc3M9ImZ1bGxfd2lkdGggYmlnIj4KCQkJCUZpeGVkSGVhZGVyIGV4YW1wbGUgLSB6SW5kZXggZXhhbXBsZQoJCQk8L2Rpdj4KCQkJCgkJCTxoMT5QcmVhbWJsZTwvaDE+CgkJCTxwPldoZW4geW91IGhhdmUgdHdvIG9yIG1vcmUgY29sdW1ucyBmaXhlZCBvbiBhIHRhYmxlLCB0aGVyZSBtaWdodCBiZSBvY2Nhc2lvbnMgd2hlbiB5b3Ugd2hpY2ggdG8gaGF2ZSBvbmUgY29sdW1uIGZsb2F0aW5nIG9uIHRvcCBvZiBhbm90aGVyLiBUaGlzIGV4YW1wbGUgc2hvd3MgaG93IHlvdSBjYW4gZG8gdGhhdCB3aXRoIHRoZSBpbml0aWFsaXNhdGlvbiBwYXJhbWV0ZXJzIDxpPnpUb3AsIHpCb3R0b20sIHpMZWZ0PC9pPiBhbmQgPGk+elJpZ2h0PC9pPi4gSW4gdGhpcyBleGFtcGxlIHRoZSBsZWZ0IGNvbHVtbiBpcyBzZXQgdG8gZmxvYXQgb24gdG9wIG9mIHRoZSBoZWFkZXIuIFRoZSBkaWZmZXJlbmNlIGlzIHN1YnRsZSwgYnV0IGNhbiBiZSBlZmZlY3RpdmUuPC9wPgoJCQk8cD5UaGUgZGVmYXVsdCB6SW5kZXhlcyBhcmU6PC9wPgoJCQk8dWw+CgkJCQk8bGk+elRvcDogMTA0PC9saT4KCQkJCTxsaT56Qm90dG9tOiAxMDM8L2xpPgoJCQkJPGxpPnpMZWZ0OiAxMDI8L2xpPgoJCQkJPGxpPnpSaWdodDogMTAxPC9saT4KCQkJPC91bD4KCQkJCgkJCTxoMT5MaXZlIGV4YW1wbGU8L2gxPgoJCQk8ZGl2IGlkPSJkZW1vIiBzdHlsZT0id2lkdGg6MTUwMHB4OyI+Cjx0YWJsZSBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIGJvcmRlcj0iMCIgY2xhc3M9ImRpc3BsYXkiIGlkPSJleGFtcGxlIj4KCTx0aGVhZD4KCQk8dHI+CgkJCTx0aD5SZW5kZXJpbmcgZW5naW5lPC90aD4KCQkJPHRoPkJyb3dzZXI8L3RoPgoJCQk8dGg+UGxhdGZvcm0ocyk8L3RoPgoJCQk8dGg+RW5naW5lIHZlcnNpb248L3RoPgoJCQk8dGg+Q1NTIGdyYWRlPC90aD4KCQk8L3RyPgoJPC90aGVhZD4KCTx0Ym9keT4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNC4wPC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA1LjA8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDUuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA2PC90ZD4KCQkJPHRkPldpbiA5OCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNzwvdGQ+CgkJCTx0ZD5XaW4gWFAgU1AyKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5BT0wgYnJvd3NlciAoQU9MIGRlc2t0b3ApPC90ZD4KCQkJPHRkPldpbiBYUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjA8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDEuNTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMi4wPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAzLjA8L3RkPgoJCQk8dGQ+V2luIDJrKyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5DYW1pbm8gMS4wPC90ZD4KCQkJPHRkPk9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5DYW1pbm8gMS41PC90ZD4KCQkJPHRkPk9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSA3LjI8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE1hYyBPUyA4LjYtOS4yPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIEJyb3dzZXIgODwvdGQ+CgkJCTx0ZD5XaW4gOThTRSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgTmF2aWdhdG9yIDk8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4yPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4yPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjM8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjY8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNzwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS44PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+U2VhbW9ua2V5IDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkVwaXBoYW55IDIuMjA8L3RkPgoJCQk8dGQ+R25vbWU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjI8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTI1LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDEuMzwvdGQ+CgkJCTx0ZD5PU1guMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zMTIuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMi4wPC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTkuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMy4wPC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41MjIuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5PbW5pV2ViIDUuNTwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPmlQb2QgVG91Y2ggLyBpUGhvbmU8L3RkPgoJCQk8dGQ+aVBvZDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MjAuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TNjA8L3RkPgoJCQk8dGQ+UzYwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQxMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA3LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDcuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOC4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA4LjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS4yPC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjU8L3RkPgoJCQk8dGQ+V2luIDg4KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIGZvciBXaWk8L3RkPgoJCQk8dGQ+V2lpPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+Tm9raWEgTjgwMDwvdGQ+CgkJCTx0ZD5OODAwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+TmludGVuZG8gRFMgYnJvd3NlcjwvdGQ+CgkJCTx0ZD5OaW50ZW5kbyBEUzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj44LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+Qy9BPHN1cD4xPC9zdXA+PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy4xPC90ZD4KCQkJPHRkPktERSAzLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjM8L3RkPgoJCQk8dGQ+S0RFIDMuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuNTwvdGQ+CgkJCTx0ZD5LREUgMy41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA0LjU8L3RkPgoJCQk8dGQ+TWFjIE9TIDgtOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMTwvdGQ+CgkJCTx0ZD5NYWMgT1MgNy42LTk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjI8L3RkPgoJCQk8dGQ+TWFjIE9TIDgtWDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5OZXRGcm9udCAzLjE8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5OZXRGcm9udCAzLjQ8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5EaWxsbyAwLjg8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5MaW5rczwvdGQ+CgkJCTx0ZD5UZXh0IG9ubHk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+THlueDwvdGQ+CgkJCTx0ZD5UZXh0IG9ubHk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+SUUgTW9iaWxlPC90ZD4KCQkJPHRkPldpbmRvd3MgTW9iaWxlIDY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+UFNQIGJyb3dzZXI8L3RkPgoJCQk8dGQ+UFNQPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlVSI+CgkJCTx0ZD5PdGhlciBicm93c2VyczwvdGQ+CgkJCTx0ZD5BbGwgb3RoZXJzPC90ZD4KCQkJPHRkPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5VPC90ZD4KCQk8L3RyPgoJPC90Ym9keT4KCTx0Zm9vdD4KCQk8dHI+CgkJCTx0aD5SZW5kZXJpbmcgZW5naW5lPC90aD4KCQkJPHRoPkJyb3dzZXI8L3RoPgoJCQk8dGg+UGxhdGZvcm0ocyk8L3RoPgoJCQk8dGg+RW5naW5lIHZlcnNpb248L3RoPgoJCQk8dGg+Q1NTIGdyYWRlPC90aD4KCQk8L3RyPgoJPC90Zm9vdD4KPC90YWJsZT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CgkJCQoJCQkKCQkJPGgxPkluaXRpYWxpc2F0aW9uIGNvZGU8L2gxPgoJCQk8cHJlPiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCW5ldyBGaXhlZEhlYWRlciggb1RhYmxlLCB7ICJsZWZ0IjogdHJ1ZSwgInpMZWZ0IjogMTA1IH0gKTsKfSApOzwvcHJlPgoKCQkJPGgxPkV4YW1wbGVzPC9oMT4KCQkJPHVsPgoJCQkJPGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkJhc2ljIGRlbW8gd2l0aCBqdXN0IHRoZSBIZWFkZXJGaXhlZDwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9Imh0bWxfdGFibGUuaHRtbCI+Rml4ZWRIZWFkZXIgd2l0aG91dCByZXF1aXJpbmcgRGF0YVRhYmxlczwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InR3b190YWJsZXMuaHRtbCI+VHdvIHRhYmxlcyB3aXRoIEZpeGVkSGVhZGVycyBvbiBhIHNpbmdsZSBwYWdlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0idG9wX2JvdHRvbV9sZWZ0X3JpZ2h0Lmh0bWwiPkEgc3ByZWFkc2hlZXQgc3R5bGUgbGF5b3V0IHdpdGggaGVhZGVyIGFuZCBmb290ZXIsIGxlZnQgYW5kIHJpZ2h0IGNvbHVtbnMgYWxsIGZpeGVkLjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9InpJbmRleGVzLmh0bWwiPkNoYW5nZSB0aGUgZGlzcGxheSBvcmRlciBvZiB0aGUgZml4ZWQgZWxlbWVudHMgKHpJbmRleCk8L2E+PC9saT4KCQkJPC91bD4KCQkKCQkJPHA+RW1wdHkgcGFyYWdyYXBocyB0byBmb3JjZSBzY3JvbGxpbmchLi4uPC9wPgoJCQk8cCBzdHlsZT0iaGVpZ2h0OjUwMHB4OyB3aWR0aDozMDAwcHg7Ij4mbmJzcDs8L3A+CgkJCQoJCQkKCQkJPGRpdiBpZD0iZm9vdGVyIiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7Ij4KCQkJCTxzcGFuIHN0eWxlPSJmb250LXNpemU6MTBweDsiPgoJCQkJCUZpeGVkSGVhZGVyIGFuZCBEYXRhVGFibGVzICZjb3B5OyBBbGxhbiBKYXJkaW5lIDIwMDkuPGJyPgoJCQkJPC9zcGFuPgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/KeyTable/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/KeyTable/datatable.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+CgkJPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiB0eXBlPSJpbWFnZS9pY28iIGhyZWY9Imh0dHA6Ly93d3cuc3ByeW1lZGlhLmNvLnVrL21lZGlhL2ltYWdlcy9mYXZpY29uLmljbyIgLz4KCQkKCQk8dGl0bGU+S2V5VGFibGUgLyBEYXRhVGFibGVzIGV4YW1wbGU8L3RpdGxlPgoJCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9ImN1cnJlbnRTdHlsZSI+CgkJCUBpbXBvcnQgIi4uLy4uL21lZGlhL2Nzcy9kZW1vX3BhZ2UuY3NzIjsKCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fdGFibGUuY3NzIjsKCQk8L3N0eWxlPgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIuLi8uLi9tZWRpYS9qcy9qcXVlcnkuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIuLi8uLi9tZWRpYS9qcy9qcXVlcnkuZGF0YVRhYmxlcy5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9ImpzL0tleVRhYmxlLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgoJCQkkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJCQkJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7CgkJCQkKCQkJCXZhciBrZXlzID0gbmV3IEtleVRhYmxlKCB7CgkJCQkJInRhYmxlIjogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGUnKSwKCQkJCQkiZGF0YXRhYmxlIjogb1RhYmxlCgkJCQl9ICk7CgkJCX0gKTsKCQk8L3NjcmlwdD4KCTwvaGVhZD4KCTxib2R5IGlkPSJkdF9leGFtcGxlIj4KCQk8ZGl2IGlkPSJjb250YWluZXIiPgoJCQk8ZGl2IGNsYXNzPSJmdWxsX3dpZHRoIGJpZyI+CgkJCQlLZXlUYWJsZSB3aXRoIERhdGFUYWJsZXMgaW50ZWdyYXRpb24gZXhhbXBsZQoJCQk8L2Rpdj4KCQkJCgkJCTxoMT5QcmVhbWJsZTwvaDE+CgkJCTxwPktleVRhYmxlIHdpbGwgd29yayBncmVhdCB3aXRoIGFueSBwbGFpbiBIVE1MIHRhYmxlLCBidXQgaXQgYWxzbyBpbnRlZ3JhdGVzIHdpdGggPGEgaHJlZj0iaHR0cDovL3d3dy5kYXRhdGFibGVzLm5ldC8iPkRhdGFUYWJsZXM8L2E+IHBsdWctaW4gZm9yIGpRdWVyeS4gVGhpcyBhbGxvd3MgdGhlIG5hdmlnYXRpb24gdG8gdGFrZSBhY2NvdW50IG9mIHBhZ2luZywgc29ydGluZyBldGMuIFRoaXMgaXMgc2hvd24gaW4gYW4gZXhhbXBsZSBiZWxvdy48L3A+CgkJCQoJCQk8aDE+TGl2ZSBleGFtcGxlPC9oMT4KCQkJPGRpdiBpZD0iZGVtbyI+Cjx0YWJsZSBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIGJvcmRlcj0iMCIgY2xhc3M9ImRpc3BsYXkgS2V5VGFibGUiIGlkPSJleGFtcGxlIj4KCTx0aGVhZD4KCQk8dHI+CgkJCTx0aD5SZW5kZXJpbmcgZW5naW5lPC90aD4KCQkJPHRoPkJyb3dzZXI8L3RoPgoJCQk8dGg+UGxhdGZvcm0ocyk8L3RoPgoJCQk8dGg+RW5naW5lIHZlcnNpb248L3RoPgoJCQk8dGg+Q1NTIGdyYWRlPC90aD4KCQk8L3RyPgoJPC90aGVhZD4KCTx0Ym9keT4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNC4wPC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA1LjA8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDUuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA2PC90ZD4KCQkJPHRkPldpbiA5OCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNzwvdGQ+CgkJCTx0ZD5XaW4gWFAgU1AyKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5BT0wgYnJvd3NlciAoQU9MIGRlc2t0b3ApPC90ZD4KCQkJPHRkPldpbiBYUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjA8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDEuNTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMi4wPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAzLjA8L3RkPgoJCQk8dGQ+V2luIDJrKyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5DYW1pbm8gMS4wPC90ZD4KCQkJPHRkPk9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5DYW1pbm8gMS41PC90ZD4KCQkJPHRkPk9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSA3LjI8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE1hYyBPUyA4LjYtOS4yPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIEJyb3dzZXIgODwvdGQ+CgkJCTx0ZD5XaW4gOThTRSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgTmF2aWdhdG9yIDk8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4yPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4yPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjM8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjY8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNzwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS44PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+U2VhbW9ua2V5IDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkVwaXBoYW55IDIuMjA8L3RkPgoJCQk8dGQ+R25vbWU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjI8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTI1LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDEuMzwvdGQ+CgkJCTx0ZD5PU1guMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zMTIuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMi4wPC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTkuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMy4wPC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41MjIuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5PbW5pV2ViIDUuNTwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPmlQb2QgVG91Y2ggLyBpUGhvbmU8L3RkPgoJCQk8dGQ+aVBvZDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MjAuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TNjA8L3RkPgoJCQk8dGQ+UzYwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQxMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA3LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDcuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOC4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA4LjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS4yPC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjU8L3RkPgoJCQk8dGQ+V2luIDg4KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIGZvciBXaWk8L3RkPgoJCQk8dGQ+V2lpPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+Tm9raWEgTjgwMDwvdGQ+CgkJCTx0ZD5OODAwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+TmludGVuZG8gRFMgYnJvd3NlcjwvdGQ+CgkJCTx0ZD5OaW50ZW5kbyBEUzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj44LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+Qy9BPHN1cD4xPC9zdXA+PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy4xPC90ZD4KCQkJPHRkPktERSAzLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjM8L3RkPgoJCQk8dGQ+S0RFIDMuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuNTwvdGQ+CgkJCTx0ZD5LREUgMy41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA0LjU8L3RkPgoJCQk8dGQ+TWFjIE9TIDgtOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMTwvdGQ+CgkJCTx0ZD5NYWMgT1MgNy42LTk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjI8L3RkPgoJCQk8dGQ+TWFjIE9TIDgtWDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5OZXRGcm9udCAzLjE8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5OZXRGcm9udCAzLjQ8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5EaWxsbyAwLjg8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5MaW5rczwvdGQ+CgkJCTx0ZD5UZXh0IG9ubHk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+THlueDwvdGQ+CgkJCTx0ZD5UZXh0IG9ubHk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+SUUgTW9iaWxlPC90ZD4KCQkJPHRkPldpbmRvd3MgTW9iaWxlIDY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+UFNQIGJyb3dzZXI8L3RkPgoJCQk8dGQ+UFNQPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlVSI+CgkJCTx0ZD5PdGhlciBicm93c2VyczwvdGQ+CgkJCTx0ZD5BbGwgb3RoZXJzPC90ZD4KCQkJPHRkPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5VPC90ZD4KCQk8L3RyPgoJPC90Ym9keT4KCTx0Zm9vdD4KCQk8dHI+CgkJCTx0aD5SZW5kZXJpbmcgZW5naW5lPC90aD4KCQkJPHRoPkJyb3dzZXI8L3RoPgoJCQk8dGg+UGxhdGZvcm0ocyk8L3RoPgoJCQk8dGg+RW5naW5lIHZlcnNpb248L3RoPgoJCQk8dGg+Q1NTIGdyYWRlPC90aD4KCQk8L3RyPgoJPC90Zm9vdD4KPC90YWJsZT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CgkJCQoJCQkKCQkJPGgxPkluaXRpYWxpc2F0aW9uIGNvZGU8L2gxPgoJCQk8cHJlPiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCQoJdmFyIGtleXMgPSBuZXcgS2V5VGFibGUoIHsKCQkidGFibGUiOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZScpLAoJCSJkYXRhdGFibGUiOiBvVGFibGUKCX0gKTsKfSApOzwvcHJlPgoJCQkKCQkJCgkJCTxoMT5PdGhlciBleGFtcGxlczwvaDE+CgkJCTx1bD4KCQkJCTxsaT48YSBocmVmPSJpbmRleC5odG1sIj5CYXNpYyB1c2FnZTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImVkaXRpbmcuaHRtbCI+RWRpdGluZyBhIHRhYmxlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iZm9ybS5odG1sIj5JbnRlZ3JhdGlvbiB3aXRoIGFuIEhUTUwgZm9ybTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImRhdGF0YWJsZS5odG1sIj5JbnRlZ3JhdGlvbiB3aXRoIERhdGFUYWJsZXM8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJkYXRhdGFibGVfc2Nyb2xsaW5nLmh0bWwiPlVzaW5nIEtleVRhYmxlIHdpdGggc2Nyb2xsaW5nIGluIERhdGFUYWJsZXM8L2E+PC9saT4KCQkJPC91bD4KCQkJCgkJCQoJCQk8ZGl2IGlkPSJmb290ZXIiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjsiPgoJCQkJPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMHB4OyI+CgkJCQkJS2V5VGFibGUgJmNvcHk7IEFsbGFuIEphcmRpbmUgMjAwOS48YnI+CgkJCQkJSW5mb3JtYXRpb24gaW4gdGhlIHRhYmxlICZjb3B5OyA8YSBocmVmPSJodHRwOi8vd3d3LnU0ZWF0ZWNoLmNvbSI+VTRFQSBUZWNobm9sb2dpZXM8L2E+IDIwMDctMjAwOS48L3NwYW4+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/KeyTable/datatable_scrolling.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+CgkJPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiB0eXBlPSJpbWFnZS9pY28iIGhyZWY9Imh0dHA6Ly93d3cuc3ByeW1lZGlhLmNvLnVrL21lZGlhL2ltYWdlcy9mYXZpY29uLmljbyIgLz4KCQkKCQk8dGl0bGU+S2V5VGFibGUgLyBEYXRhVGFibGVzIGV4YW1wbGU8L3RpdGxlPgoJCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9ImN1cnJlbnRTdHlsZSI+CgkJCUBpbXBvcnQgIi4uLy4uL21lZGlhL2Nzcy9kZW1vX3BhZ2UuY3NzIjsKCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fdGFibGUuY3NzIjsKCQk8L3N0eWxlPgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIuLi8uLi9tZWRpYS9qcy9qcXVlcnkuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCIgc3JjPSIuLi8uLi9tZWRpYS9qcy9qcXVlcnkuZGF0YVRhYmxlcy5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9ImpzL0tleVRhYmxlLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgoJCQkkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJCQkJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkJInNTY3JvbGxZIjogMjAwLAoJCQkJCSJzU2Nyb2xsWCI6ICIxMDAlIiwKCQkJCQkic1Njcm9sbFhJbm5lciI6ICIxMTAlIgoJCQkJfSApOwoJCQkJCgkJCQl2YXIga2V5cyA9IG5ldyBLZXlUYWJsZSggewoJCQkJCSJ0YWJsZSI6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlJyksCgkJCQkJImRhdGF0YWJsZSI6IG9UYWJsZQoJCQkJfSApOwoJCQl9ICk7CgkJPC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keSBpZD0iZHRfZXhhbXBsZSI+CgkJPGRpdiBpZD0iY29udGFpbmVyIj4KCQkJPGRpdiBjbGFzcz0iZnVsbF93aWR0aCBiaWciPgoJCQkJS2V5VGFibGUgd2l0aCBEYXRhVGFibGVzICh3aGVuIHVzaW5nIHNjcm9sbGluZykgaW50ZWdyYXRpb24gZXhhbXBsZQoJCQk8L2Rpdj4KCQkJCgkJCTxoMT5QcmVhbWJsZTwvaDE+CgkJCTxwPkEgbmV3IGZlYXR1cmUgaW4gRGF0YVRhYmxlcyAxLjcgaXMgdGhlIGFiaWxpdHkgdG8gaGF2ZSB0aGUgdGFibGUgYm9keSBzY3JvbGwgaW4gdGhlIHggYW5kIHkgZGltZW5zaW9ucy4gS2V5VGFibGUgc3VwcG9ydHMgdGhpcyBjYXBhYmlsaXR5IG9mIERhdGFUYWJsZXMgIm91dCBvZiB0aGUgYm94IiAobm8gZXh0cmEgaW5pdGlhbGlzYXRpb24gaXMgbmVlZGVkKSwgYXMgc2hvd24gaW4gdGhpcyBleGFtcGxlLjwvcD4KCQkJCgkJCTxoMT5MaXZlIGV4YW1wbGU8L2gxPgoJCQk8ZGl2IGlkPSJkZW1vIj4KPHRhYmxlIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgYm9yZGVyPSIwIiBjbGFzcz0iZGlzcGxheSBLZXlUYWJsZSIgaWQ9ImV4YW1wbGUiPgoJPHRoZWFkPgoJCTx0cj4KCQkJPHRoPlJlbmRlcmluZyBlbmdpbmU8L3RoPgoJCQk8dGg+QnJvd3NlcjwvdGg+CgkJCTx0aD5QbGF0Zm9ybShzKTwvdGg+CgkJCTx0aD5FbmdpbmUgdmVyc2lvbjwvdGg+CgkJCTx0aD5DU1MgZ3JhZGU8L3RoPgoJCTwvdHI+Cgk8L3RoZWFkPgoJPHRib2R5PgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA0LjA8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDUuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNS41PC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDY8L3RkPgoJCQk8dGQ+V2luIDk4KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA3PC90ZD4KCQkJPHRkPldpbiBYUCBTUDIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkFPTCBicm93c2VyIChBT0wgZGVza3RvcCk8L3RkPgoJCQk8dGQ+V2luIFhQPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMS41PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAyLjA8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDMuMDwvdGQ+CgkJCTx0ZD5XaW4gMmsrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkNhbWlubyAxLjA8L3RkPgoJCQk8dGQ+T1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkNhbWlubyAxLjU8L3RkPgoJCQk8dGQ+T1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIDcuMjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gTWFjIE9TIDguNi05LjI8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgQnJvd3NlciA4PC90ZD4KCQkJPHRkPldpbiA5OFNFKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSBOYXZpZ2F0b3IgOTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4xPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjI8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjI8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMzwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS40PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS40PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS43PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjg8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5TZWFtb25rZXkgMS4xPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RXBpcGhhbnkgMi4yMDwvdGQ+CgkJCTx0ZD5Hbm9tZTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDEuMjwvdGQ+CgkJCTx0ZD5PU1guMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xMjUuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMS4zPC90ZD4KCQkJPHRkPk9TWC4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMxMi44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAyLjA8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQxOS4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAzLjA8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUyMi4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPk9tbmlXZWIgNS41PC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MjA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+aVBvZCBUb3VjaCAvIGlQaG9uZTwvdGQ+CgkJCTx0ZD5pUG9kPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQyMC4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlM2MDwvdGQ+CgkJCTx0ZD5TNjA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDEzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDcuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgNy41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA4LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDguNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjI8L3RkPgoJCQk8dGQ+V2luIDg4KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuNTwvdGQ+CgkJCTx0ZD5XaW4gODgrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgZm9yIFdpaTwvdGQ+CgkJCTx0ZD5XaWk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5Ob2tpYSBOODAwPC90ZD4KCQkJPHRkPk44MDA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5OaW50ZW5kbyBEUyBicm93c2VyPC90ZD4KCQkJPHRkPk5pbnRlbmRvIERTPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjguNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DL0E8c3VwPjE8L3N1cD48L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjE8L3RkPgoJCQk8dGQ+S0RFIDMuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuMzwvdGQ+CgkJCTx0ZD5LREUgMy4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy41PC90ZD4KCQkJPHRkPktERSAzLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDQuNTwvdGQ+CgkJCTx0ZD5NYWMgT1MgOC05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4xPC90ZD4KCQkJPHRkPk1hYyBPUyA3LjYtOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMjwvdGQ+CgkJCTx0ZD5NYWMgT1MgOC1YPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPk5ldEZyb250IDMuMTwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPk5ldEZyb250IDMuNDwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkRpbGxvIDAuODwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkxpbmtzPC90ZD4KCQkJPHRkPlRleHQgb25seTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5MeW54PC90ZD4KCQkJPHRkPlRleHQgb25seTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5JRSBNb2JpbGU8L3RkPgoJCQk8dGQ+V2luZG93cyBNb2JpbGUgNjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5QU1AgYnJvd3NlcjwvdGQ+CgkJCTx0ZD5QU1A8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVVIj4KCQkJPHRkPk90aGVyIGJyb3dzZXJzPC90ZD4KCQkJPHRkPkFsbCBvdGhlcnM8L3RkPgoJCQk8dGQ+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlU8L3RkPgoJCTwvdHI+Cgk8L3Rib2R5PgoJPHRmb290PgoJCTx0cj4KCQkJPHRoPlJlbmRlcmluZyBlbmdpbmU8L3RoPgoJCQk8dGg+QnJvd3NlcjwvdGg+CgkJCTx0aD5QbGF0Zm9ybShzKTwvdGg+CgkJCTx0aD5FbmdpbmUgdmVyc2lvbjwvdGg+CgkJCTx0aD5DU1MgZ3JhZGU8L3RoPgoJCTwvdHI+Cgk8L3Rmb290Pgo8L3RhYmxlPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0ic3BhY2VyIj48L2Rpdj4KCQkJCgkJCQoJCQk8aDE+SW5pdGlhbGlzYXRpb24gY29kZTwvaDE+CgkJCTxwcmU+JChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzU2Nyb2xsWSI6IDIwMCwKCQkic1Njcm9sbFgiOiAiMTAwJSIsCgkJInNTY3JvbGxYSW5uZXIiOiAiMTEwJSIKCX0gKTsKCQoJdmFyIGtleXMgPSBuZXcgS2V5VGFibGUoIHsKCQkidGFibGUiOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZScpLAoJCSJkYXRhdGFibGUiOiBvVGFibGUKCX0gKTsKfSApOzwvcHJlPgoJCQkKCQkJCgkJCTxoMT5PdGhlciBleGFtcGxlczwvaDE+CgkJCTx1bD4KCQkJCTxsaT48YSBocmVmPSJpbmRleC5odG1sIj5CYXNpYyB1c2FnZTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImVkaXRpbmcuaHRtbCI+RWRpdGluZyBhIHRhYmxlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iZm9ybS5odG1sIj5JbnRlZ3JhdGlvbiB3aXRoIGFuIEhUTUwgZm9ybTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImRhdGF0YWJsZS5odG1sIj5JbnRlZ3JhdGlvbiB3aXRoIERhdGFUYWJsZXM8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJkYXRhdGFibGVfc2Nyb2xsaW5nLmh0bWwiPlVzaW5nIEtleVRhYmxlIHdpdGggc2Nyb2xsaW5nIGluIERhdGFUYWJsZXM8L2E+PC9saT4KCQkJPC91bD4KCQkJCgkJCQoJCQk8ZGl2IGlkPSJmb290ZXIiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjsiPgoJCQkJPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMHB4OyI+CgkJCQkJS2V5VGFibGUgJmNvcHk7IEFsbGFuIEphcmRpbmUgMjAwOS48YnI+CgkJCQkJSW5mb3JtYXRpb24gaW4gdGhlIHRhYmxlICZjb3B5OyA8YSBocmVmPSJodHRwOi8vd3d3LnU0ZWF0ZWNoLmNvbSI+VTRFQSBUZWNobm9sb2dpZXM8L2E+IDIwMDctMjAwOS48L3NwYW4+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/KeyTable/editing.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+CgkJPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiB0eXBlPSJpbWFnZS9pY28iIGhyZWY9Imh0dHA6Ly93d3cuc3ByeW1lZGlhLmNvLnVrL21lZGlhL2ltYWdlcy9mYXZpY29uLmljbyIgLz4KCQkKCQk8dGl0bGU+S2V5VGFibGVzIGVkaXRpbmcgZXhhbXBsZTwvdGl0bGU+CgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iY3VycmVudFN0eWxlIj4KCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fcGFnZS5jc3MiOwoJCQlAaW1wb3J0ICIuLi8uLi9tZWRpYS9jc3MvZGVtb190YWJsZS5jc3MiOwoJCTwvc3R5bGU+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL2V4YW1wbGVzL2V4YW1wbGVzX3N1cHBvcnQvanF1ZXJ5LmplZGl0YWJsZS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9ImpzL0tleVRhYmxlLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgoJCQkkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJCQkJdmFyIGtleXMgPSBuZXcgS2V5VGFibGUoIHsKCQkJCQkidGFibGUiOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZScpCgkJCQl9ICk7CgkJCQkKCQkJCS8qIEFwcGx5IGEgcmV0dXJuIGtleSBldmVudCB0byBlYWNoIGNlbGwgaW4gdGhlIHRhYmxlICovCgkJCQlrZXlzLmV2ZW50LmFjdGlvbiggbnVsbCwgbnVsbCwgZnVuY3Rpb24gKG5DZWxsKSB7CgkJCQkJLyogQmxvY2sgS2V5VGFibGUgZnJvbSBwZXJmb3JtaW5nIGFueSBldmVudHMgd2hpbGUgakVkaXRhYmxlIGlzIGluIGVkaXQgbW9kZSAqLwoJCQkJCWtleXMuYmxvY2sgPSB0cnVlOwoJCQkJCQoJCQkJCS8qIEluaXRpYWxpc2UgdGhlIEVkaXRhYmxlIGluc3RhbmNlIGZvciB0aGlzIHRhYmxlICovCgkJCQkJJChuQ2VsbCkuZWRpdGFibGUoIGZ1bmN0aW9uIChzVmFsKSB7CgkJCQkJCS8qIFN1Ym1pdCBmdW5jdGlvbiAobG9jYWwgb25seSkgLSB1bmJsb2NrIEtleVRhYmxlICovCgkJCQkJCWtleXMuYmxvY2sgPSBmYWxzZTsKCQkJCQkJJChuQ2VsbCkuZWRpdGFibGUoJ2Rlc3Ryb3knKTsKCQkJCQkJcmV0dXJuIHNWYWw7CgkJCQkJfSwgeyAKCQkJCQkJIm9uYmx1ciI6ICdzdWJtaXQnLCAKCQkJCQkJIm9ucmVzZXQiOiBmdW5jdGlvbigpeyAKCQkJCQkJCS8qIFVuYmxvY2sgS2V5VGFibGUsIGJ1dCBvbmx5IGFmdGVyIHRoaXMgJ2VzYycga2V5IGV2ZW50IGhhcyBmaW5pc2hlZC4gT3RoZXJ3aXNlCgkJCQkJCQkgKiBpdCB3aWxsICdlc2MnIEtleVRhYmxlIGFzIHdlbGwKCQkJCQkJCSAqLwoJCQkJCQkJJChuQ2VsbCkuZWRpdGFibGUoJ2Rlc3Ryb3knKTsKCQkJCQkJCXNldFRpbWVvdXQoIGZ1bmN0aW9uICgpIHtrZXlzLmJsb2NrID0gZmFsc2U7fSwgMCk7IAoJCQkJCQl9CgkJCQkJfSApOwoJCQkJCQoJCQkJCS8qIERpc3BhdGNoIGNsaWNrIGV2ZW50IHRvIGdvIGludG8gZWRpdCBtb2RlIC0gU2FmIDQgbmVlZHMgYSB0aW1lb3V0Li4uICovCgkJCQkJc2V0VGltZW91dCggZnVuY3Rpb24gKCkgeyAkKG5DZWxsKS5jbGljaygpOyB9LCAwICk7CgkJCQl9ICk7CgkJCX0gKTsKCQk8L3NjcmlwdD4KCTwvaGVhZD4KCTxib2R5IGlkPSJkdF9leGFtcGxlIj4KCQk8ZGl2IGlkPSJjb250YWluZXIiPgoJCQk8ZGl2IGNsYXNzPSJmdWxsX3dpZHRoIGJpZyI+CgkJCQlLZXlUYWJsZSBlZGl0aW5nIGV4YW1wbGUKCQkJPC9kaXY+CgkJCQoJCQk8aDE+UHJlYW1ibGU8L2gxPgoJCQk8cD5Qb3NzaWJseSBvbmUgb2YgdGhlIG1vc3Qgb2J2aW91cyBhcHBsaWNhdGlvbnMgb2YgS2V5VGFibGUgaXMgdXNpbmcgaXQgdG8gbmF2aWdhdGUgYXJvdW5kIGEgdGFibGUsIGFsbG93aW5nIGEgdXNlciB0byBlZGl0IGRhdGEgYXMgdGhleSBnby4gVGhpcyBpcyBhbiBleGFtcGxlIG9mIGhvdyB0aGF0IG1pZ2h0IGJlIGRvbmUgdGhyb3VnaCBpbnRlZ3JhdGlvbiB3aXRoIHRoZSBleGNlbGxlbnQgPGEgaHJlZj0iaHR0cDovL3d3dy5hcHBlbHNpaW5pLm5ldC9wcm9qZWN0cy9qZWRpdGFibGUiPmpFZGl0YWJsZTwvYT4gcGx1Zy1pbiBmb3IgalF1ZXJ5LjwvcD4KCQkJPHA+VG8gZWRpdCBkYXRhIGluIHRoZSB0YWJsZSwgc2ltcGx5IG5hdmlnYXRlIHRvIHdoZXJlIHlvdSB3YW50IHRvIGVkaXQgdXNpbmcgdGhlIGFycm93IGtleXMsIGhpdCByZXR1cm4gYW5kIHRoZXkgbWFrZSB5b3VyIGVkaXQuIEhpdCByZXR1cm4gYWdhaW4gdG8gY29tcGxldGUgYW5kIHN1Ym1pdCB0aGUgZWRpdCAobm90ZSB0aGlzIGV4YW1wbGUgZG9lc24ndCBhY3R1YWxseSBzZW5kIHRoZSBkYXRhIHRvIHRoZSBzZXJ2ZXIhKSBhbmQgdGhlbiBjb250aW51ZSBuYXZpZ2F0aW5nLjwvcD4KCQkJCgkJCTxoMT5MaXZlIGV4YW1wbGU8L2gxPgoJCQk8ZGl2IGlkPSJkZW1vIj4KPHRhYmxlIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgYm9yZGVyPSIwIiBjbGFzcz0iZGlzcGxheSBLZXlUYWJsZSIgaWQ9ImV4YW1wbGUiPgoJPHRoZWFkPgoJCTx0cj4KCQkJPHRoPlJlbmRlcmluZyBlbmdpbmU8L3RoPgoJCQk8dGg+QnJvd3NlcjwvdGg+CgkJCTx0aD5QbGF0Zm9ybShzKTwvdGg+CgkJCTx0aD5FbmdpbmUgdmVyc2lvbjwvdGg+CgkJCTx0aD5DU1MgZ3JhZGU8L3RoPgoJCTwvdHI+Cgk8L3RoZWFkPgoJPHRib2R5PgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNC4wPC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4wPC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS41PC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA2PC90ZD4KCQkJPHRkPldpbiA5OCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNzwvdGQ+CgkJCTx0ZD5XaW4gWFAgU1AyKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5BT0wgYnJvd3NlciAoQU9MIGRlc2t0b3ApPC90ZD4KCQkJPHRkPldpbiBYUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjA8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDEuNTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMi4wPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAzLjA8L3RkPgoJCQk8dGQ+V2luIDJrKyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5DYW1pbm8gMS4wPC90ZD4KCQkJPHRkPk9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5DYW1pbm8gMS41PC90ZD4KCQkJPHRkPk9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSA3LjI8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE1hYyBPUyA4LjYtOS4yPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIEJyb3dzZXIgODwvdGQ+CgkJCTx0ZD5XaW4gOThTRSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgTmF2aWdhdG9yIDk8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4yPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4yPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjM8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjY8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNzwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS44PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+U2VhbW9ua2V5IDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkVwaXBoYW55IDIuMjA8L3RkPgoJCQk8dGQ+R25vbWU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjI8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTI1LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDEuMzwvdGQ+CgkJCTx0ZD5PU1guMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zMTIuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMi4wPC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTkuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMy4wPC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41MjIuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5PbW5pV2ViIDUuNTwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPmlQb2QgVG91Y2ggLyBpUGhvbmU8L3RkPgoJCQk8dGQ+aVBvZDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MjAuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TNjA8L3RkPgoJCQk8dGQ+UzYwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQxMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA3LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDcuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOC4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA4LjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS4yPC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjU8L3RkPgoJCQk8dGQ+V2luIDg4KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIGZvciBXaWk8L3RkPgoJCQk8dGQ+V2lpPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+Tm9raWEgTjgwMDwvdGQ+CgkJCTx0ZD5OODAwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+TmludGVuZG8gRFMgYnJvd3NlcjwvdGQ+CgkJCTx0ZD5OaW50ZW5kbyBEUzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj44LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+Qy9BPHN1cD4xPC9zdXA+PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy4xPC90ZD4KCQkJPHRkPktERSAzLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjM8L3RkPgoJCQk8dGQ+S0RFIDMuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuNTwvdGQ+CgkJCTx0ZD5LREUgMy41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA0LjU8L3RkPgoJCQk8dGQ+TWFjIE9TIDgtOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMTwvdGQ+CgkJCTx0ZD5NYWMgT1MgNy42LTk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjI8L3RkPgoJCQk8dGQ+TWFjIE9TIDgtWDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5OZXRGcm9udCAzLjE8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5OZXRGcm9udCAzLjQ8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5EaWxsbyAwLjg8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5MaW5rczwvdGQ+CgkJCTx0ZD5UZXh0IG9ubHk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+THlueDwvdGQ+CgkJCTx0ZD5UZXh0IG9ubHk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+SUUgTW9iaWxlPC90ZD4KCQkJPHRkPldpbmRvd3MgTW9iaWxlIDY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+UFNQIGJyb3dzZXI8L3RkPgoJCQk8dGQ+UFNQPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlVSI+CgkJCTx0ZD5PdGhlciBicm93c2VyczwvdGQ+CgkJCTx0ZD5BbGwgb3RoZXJzPC90ZD4KCQkJPHRkPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5VPC90ZD4KCQk8L3RyPgoJPC90Ym9keT4KCTx0Zm9vdD4KCQk8dHI+CgkJCTx0aD5SZW5kZXJpbmcgZW5naW5lPC90aD4KCQkJPHRoPkJyb3dzZXI8L3RoPgoJCQk8dGg+UGxhdGZvcm0ocyk8L3RoPgoJCQk8dGg+RW5naW5lIHZlcnNpb248L3RoPgoJCQk8dGg+Q1NTIGdyYWRlPC90aD4KCQk8L3RyPgoJPC90Zm9vdD4KPC90YWJsZT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CgkJCQoJCQkKCQkJPGgxPkluaXRpYWxpc2F0aW9uIGNvZGU8L2gxPgoJCQk8cHJlPiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIga2V5cyA9IG5ldyBLZXlUYWJsZSggewoJCSJ0YWJsZSI6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlJykKCX0gKTsKCQoJLyogQXBwbHkgYSByZXR1cm4ga2V5IGV2ZW50IHRvIGVhY2ggY2VsbCBpbiB0aGUgdGFibGUgKi8KCWtleXMuZXZlbnQuYWN0aW9uKCBudWxsLCBudWxsLCBmdW5jdGlvbiAobkNlbGwpIHsKCQkvKiBCbG9jayBLZXlUYWJsZSBmcm9tIHBlcmZvcm1pbmcgYW55IGV2ZW50cyB3aGlsZSBqRWRpdGFibGUgaXMgaW4gZWRpdCBtb2RlICovCgkJa2V5cy5ibG9jayA9IHRydWU7CgkJCgkJLyogSW5pdGlhbGlzZSB0aGUgRWRpdGFibGUgaW5zdGFuY2UgZm9yIHRoaXMgdGFibGUgKi8KCQkkKG5DZWxsKS5lZGl0YWJsZSggZnVuY3Rpb24gKHNWYWwpIHsKCQkJLyogU3VibWl0IGZ1bmN0aW9uIChsb2NhbCBvbmx5KSAtIHVuYmxvY2sgS2V5VGFibGUgKi8KCQkJa2V5cy5ibG9jayA9IGZhbHNlOwoJCQlyZXR1cm4gc1ZhbDsKCQl9LCB7IAoJCQkib25ibHVyIjogJ3N1Ym1pdCcsIAoJCQkib25yZXNldCI6IGZ1bmN0aW9uKCl7IAoJCQkJLyogVW5ibG9jayBLZXlUYWJsZSwgYnV0IG9ubHkgYWZ0ZXIgdGhpcyAnZXNjJyBrZXkgZXZlbnQgaGFzIGZpbmlzaGVkLiBPdGhlcndpc2UKCQkJCSAqIGl0IHdpbGwgJ2VzYycgS2V5VGFibGUgYXMgd2VsbAoJCQkJICovCgkJCQlzZXRUaW1lb3V0KCBmdW5jdGlvbiAoKSB7a2V5cy5ibG9jayA9IGZhbHNlO30sIDApOyAKCQkJfQoJCX0gKTsKCQkKCQkvKiBEaXNwYXRjaCBjbGljayBldmVudCB0byBnbyBpbnRvIGVkaXQgbW9kZSAtIFNhZiA0IG5lZWRzIGEgdGltZW91dC4uLiAqLwoJCXNldFRpbWVvdXQoIGZ1bmN0aW9uICgpIHsgJChuQ2VsbCkuY2xpY2soKTsgfSwgMCApOwoJfSApOwp9ICk7PC9wcmU+CgkJCQoJCQkKCQkJPGgxPk90aGVyIGV4YW1wbGVzPC9oMT4KCQkJPHVsPgoJCQkJPGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkJhc2ljIHVzYWdlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iZWRpdGluZy5odG1sIj5FZGl0aW5nIGEgdGFibGU8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJmb3JtLmh0bWwiPkludGVncmF0aW9uIHdpdGggYW4gSFRNTCBmb3JtPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iZGF0YXRhYmxlLmh0bWwiPkludGVncmF0aW9uIHdpdGggRGF0YVRhYmxlczwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImRhdGF0YWJsZV9zY3JvbGxpbmcuaHRtbCI+VXNpbmcgS2V5VGFibGUgd2l0aCBzY3JvbGxpbmcgaW4gRGF0YVRhYmxlczwvYT48L2xpPgoJCQk8L3VsPgoJCQkKCQkJCgkJCQoJCQk8ZGl2IGlkPSJmb290ZXIiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjsiPgoJCQkJPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMHB4OyI+CgkJCQkJS2V5VGFibGUgJmNvcHk7IEFsbGFuIEphcmRpbmUgMjAwOS48YnI+CgkJCQkJSW5mb3JtYXRpb24gaW4gdGhlIHRhYmxlICZjb3B5OyA8YSBocmVmPSJodHRwOi8vd3d3LnU0ZWF0ZWNoLmNvbSI+VTRFQSBUZWNobm9sb2dpZXM8L2E+IDIwMDctMjAwOS48L3NwYW4+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/KeyTable/form.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5LZXlUYWJsZXMgZXhhbXBsZTwvdGl0bGU+CgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iY3VycmVudFN0eWxlIj4KCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fcGFnZS5jc3MiOwoJCQlAaW1wb3J0ICIuLi8uLi9tZWRpYS9jc3MvZGVtb190YWJsZS5jc3MiOwoJCTwvc3R5bGU+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9ImpzL0tleVRhYmxlLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgoJCQkkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJCQkJdmFyIGtleXMgPSBuZXcgS2V5VGFibGUoIHsKCQkJCQkiZm9ybSI6IHRydWUKCQkJCX0gKTsKCQkJfSApOwoJCTwvc2NyaXB0PgoJPC9oZWFkPgoJPGJvZHkgaWQ9ImR0X2V4YW1wbGUiPgoJCTxkaXYgaWQ9ImNvbnRhaW5lciI+CgkJCTxkaXYgY2xhc3M9ImZ1bGxfd2lkdGggYmlnIj4KCQkJCUtleVRhYmxlIGZvcm0gaW50ZWdyYXRpb24gZXhhbXBsZQoJCQk8L2Rpdj4KCQkJCgkJCTxoMT5QcmVhbWJsZTwvaDE+CgkJCTxwPk9uZSBvZiBwb3NzaWJsZSB1c2Ugb2YgS2V5VGFibGUgaXMgdG8gdXNlIGEgdGFibGUgYXMgYSBmb3JtIGVsZW1lbnQgKGZvciBleGFtcGxlIGEgY2FsZW5kYXIgZGF0ZSBzZWxlY3RvcikuIEZvciB0aGlzIHlvdSB3YW50IHRvIGJlIHRhYmxlIHRvIHRhYiBpbnRvIGFuZCBvdXQgb2YgdGhlIHRhYmxlLCBhcyB5b3Ugd291bGQgZG8gd2l0aCBhbnkgb3RoZXIgZm9ybSBlbGVtZW50IG9uIHRoZSBwYWdlLjwvcD4KCQkJPHA+VGhlIGV4YW1wbGUgc2hvd24gYmVsb3cgYXMgYSBzbWFsbCB0YWJsZSBhcyBpdCdzIHRoaXJkIGlucHV0IGVsZW1lbnQsIGFuZCB5b3UgY2FuIHRhYiBiZXR3ZWVuIGlucHV0IGZpZWxkcy4gV2hlbiB0aGUgJ2ZvY3VzJyByZWFjaGVzIHRoZSBlbmQgb2YgdGhlIHRhYmxlLCBoaXR0aW5nIHRhYiB3aWxsIHRha2UgeW91IGludG8gdGhlIG5leHQgZmllbGQuPC9wPgoJCQkKCQkJPGgxPkxpdmUgZXhhbXBsZTwvaDE+CgkJCQoJCQk8IS0tIGJhZCB1c2Ugb2YgYSB0YWJsZSEgcXVpY2sgZXhhbXBsZSBvZiBmb3JtIHRob3VnaCAtLT4KCQkJPHRhYmxlIGNlbGxzcGFjaW5nPSIxMCIgY2VsbHBhZGRpbmc9IjAiIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiPgoJCQkJPHRyPgoJCQkJCTx0ZD5JbnB1dCAxOjwvdGQ+CgkJCQkJPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaW5wdXQxIj48L3RkPgoJCQkJPC90cj4KCQkJCTx0cj4KCQkJCQk8dGQ+SW5wdXQgMjo8L3RkPgoJCQkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImlucHV0MiI+PC90ZD4KCQkJCTwvdHI+CgkJCQk8dHI+CgkJCQkJPHRkPklucHV0IDM6PC90ZD4KCQkJCQk8dGQ+Cjx0YWJsZSBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIGJvcmRlcj0iMCIgY2xhc3M9ImRpc3BsYXkgS2V5VGFibGUiIGlkPSJleGFtcGxlIj4KCTx0aGVhZD4KCQk8dHI+CgkJCTx0aD5SZW5kZXJpbmcgZW5naW5lPC90aD4KCQkJPHRoPkJyb3dzZXI8L3RoPgoJCQk8dGg+UGxhdGZvcm0ocyk8L3RoPgoJCQk8dGg+RW5naW5lIHZlcnNpb248L3RoPgoJCQk8dGg+Q1NTIGdyYWRlPC90aD4KCQk8L3RyPgoJPC90aGVhZD4KCTx0Ym9keT4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDQuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNjwvdGQ+CgkJCTx0ZD5XaW4gOTgrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDc8L3RkPgoJCQk8dGQ+V2luIFhQIFNQMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJPC90Ym9keT4KPC90YWJsZT4KCQkJCQk8L3RkPgoJCQkJPC90cj4KCQkJCTx0cj4KCQkJCQk8dGQ+SW5wdXQgNDo8L3RkPgoJCQkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImlucHV0NCI+PC90ZD4KCQkJCTwvdHI+CgkJCQk8dHI+CgkJCQkJPHRkPklucHV0IDU6PC90ZD4KCQkJCQk8dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJpbnB1dDUiPjwvdGQ+CgkJCQk8L3RyPgoJCQk8L3RhYmxlPgoJCQk8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgoJCQkKCQkJCgkJCTxoMT5Jbml0aWFsaXNhdGlvbiBjb2RlPC9oMT4KCQkJPHByZT4kKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJdmFyIGtleXMgPSBuZXcgS2V5VGFibGUoIHsKCQkiZm9ybSI6IHRydWUKCX0gKTsKfSApOzwvcHJlPgoJCQkKCQkJCgkJCTxoMT5PdGhlciBleGFtcGxlczwvaDE+CgkJCTx1bD4KCQkJCTxsaT48YSBocmVmPSJpbmRleC5odG1sIj5CYXNpYyB1c2FnZTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImVkaXRpbmcuaHRtbCI+RWRpdGluZyBhIHRhYmxlPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iZm9ybS5odG1sIj5JbnRlZ3JhdGlvbiB3aXRoIGFuIEhUTUwgZm9ybTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImRhdGF0YWJsZS5odG1sIj5JbnRlZ3JhdGlvbiB3aXRoIERhdGFUYWJsZXM8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJkYXRhdGFibGVfc2Nyb2xsaW5nLmh0bWwiPlVzaW5nIEtleVRhYmxlIHdpdGggc2Nyb2xsaW5nIGluIERhdGFUYWJsZXM8L2E+PC9saT4KCQkJPC91bD4KCQkJCgkJCTxkaXYgaWQ9ImZvb3RlciIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyOyI+CgkJCQk8c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwcHg7Ij4KCQkJCQlLZXlUYWJsZSAmY29weTsgQWxsYW4gSmFyZGluZSAyMDA5Ljxicj4KCQkJCQlJbmZvcm1hdGlvbiBpbiB0aGUgdGFibGUgJmNvcHk7IDxhIGhyZWY9Imh0dHA6Ly93d3cudTRlYXRlY2guY29tIj5VNEVBIFRlY2hub2xvZ2llczwvYT4gMjAwNy0yMDA5Ljwvc3Bhbj4KCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2JvZHk+CjwvaHRtbD4=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/KeyTable/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iPgoJCQoJCTx0aXRsZT5LZXlUYWJsZXMgZXhhbXBsZTwvdGl0bGU+CgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iY3VycmVudFN0eWxlIj4KCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fcGFnZS5jc3MiOwoJCQlAaW1wb3J0ICIuLi8uLi9tZWRpYS9jc3MvZGVtb190YWJsZS5jc3MiOwoJCTwvc3R5bGU+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiBzcmM9ImpzL0tleVRhYmxlLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgoJCQlmdW5jdGlvbiBmbk1lc3NhZ2UgKCBzTWVzZyApCgkJCXsKCQkJCXZhciBuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2luZm8nKTsKCQkJCW4uaW5uZXJIVE1MICs9IHNNZXNnKyI8YnI+IjsKCQkJCW4uc2Nyb2xsVG9wID0gbi5zY3JvbGxIZWlnaHQ7CgkJCX0KCQkJCgkJCSQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkJCQl2YXIga2V5cyA9IG5ldyBLZXlUYWJsZSgpOwoJCQkJCgkJCQkvKiBGb2N1cyBoYW5kbGVyIGZvciBhbGwgY2VsbHMgaW4gbGFzdCBjb2x1bW4gKi8KCQkJCWtleXMuZXZlbnQuZm9jdXMoIDQsIG51bGwsIGZ1bmN0aW9uKCBuTm9kZSwgeCwgeSApIHsKCQkJCQlmbk1lc3NhZ2UoICJDZWxsICIreCsiLCIreSsiIGZvY3VzZWQgKCdsaXZlJyBldmVudCAtIGNvbHVtbikiICk7CgkJCQl9ICk7CgkJCQkKCQkJCS8qIEZvY3VzIGhhbmRsZXIgZm9yIGFsbCBjZWxscyBpbiA4dGggcm93ICovCgkJCQlrZXlzLmV2ZW50LmZvY3VzKCBudWxsLCA3LCBmdW5jdGlvbiggbk5vZGUsIHgsIHkgKSB7CgkJCQkJZm5NZXNzYWdlKCAiQ2VsbCAiK3grIiwiK3krIiBmb2N1c2VkICgnbGl2ZScgZXZlbnQgLSByb3cpIiApOwoJCQkJfSApOwoJCQkJCgkJCQkvKiBGb2N1cyB1c2luZyBjb29yZHMuICovCgkJCQlrZXlzLmV2ZW50LmZvY3VzKCAxLCAwLCBmdW5jdGlvbiggbk5vZGUgKSB7CgkJCQkJa2V5cy5ldmVudC5yZW1vdmUuZm9jdXMoIG5Ob2RlICk7CgkJCQkJZm5NZXNzYWdlKCAiQ2VsbCAxLDAgZm9jdXMgLSB0aGlzIGV2ZW50IGhhcyBub3cgYmVlbiByZW1vdmVkIiApOwoJCQkJfSApOwoJCQkJCgkJCQlrZXlzLmV2ZW50LmZvY3VzKCAxLCAzLCBmdW5jdGlvbigpIHsKCQkJCQlmbk1lc3NhZ2UoICJDZWxsIDEsMyBmb2N1cyIgKTsKCQkJCX0gKTsKCQkJCQoJCQkJLyogZm9jdXMgd2l0aCBhIG5vZGUgKi8KCQkJCWtleXMuZXZlbnQuZm9jdXMoICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDIpIHRkOmVxKDApJylbMF0sIGZ1bmN0aW9uKCkgewoJCQkJCWZuTWVzc2FnZSggIkNlbGwgMCwyIGZvY3VzIiApOwoJCQkJfSApOwoJCQkJCgkJCQkvKiBCbHVyIHVzaW5nIGEgbm9kZSAqLwoJCQkJa2V5cy5ldmVudC5ibHVyKCAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKSB0ZDplcSgyKScpWzBdLCBmdW5jdGlvbigpIHsKCQkJCQlmbk1lc3NhZ2UoICJDZWxsIDEsMiBibHVyIiApOwoJCQkJfSApOwoJCQkJCgkJCQkvKiBCbHVyIHVzaW5nIGNvb3JkcyAqLwoJCQkJa2V5cy5ldmVudC5ibHVyKCAyLCA0LCBmdW5jdGlvbigpIHsKCQkJCQlmbk1lc3NhZ2UoICJDZWxsIDIsNCBibHVyIiApOwoJCQkJfSApOwoJCQkJCgkJCQkvKiBBY3Rpb24gKi8KCQkJCWtleXMuZXZlbnQuYWN0aW9uKCAyLCAyLCBmdW5jdGlvbiggbk5vZGUgKSB7CgkJCQkJZm5NZXNzYWdlKCAiQ2VsbCAyLDIgYWN0aW9uIiApOwoJCQkJCWlmICggbk5vZGUuc3R5bGUuZm9udFdlaWdodCA9PSAiIiB8fCBuTm9kZS5zdHlsZS5mb250V2VpZ2h0ID09ICJub3JtYWwiICkgewoJCQkJCQluTm9kZS5zdHlsZS5mb250V2VpZ2h0ID0gImJvbGQiOwoJCQkJCX0gZWxzZSB7CgkJCQkJCW5Ob2RlLnN0eWxlLmZvbnRXZWlnaHQgPSAibm9ybWFsIjsKCQkJCQl9CgkJCQl9ICk7CgkJCQkKCQkJCWtleXMuZXZlbnQuYWN0aW9uKCAyLCA1LCBmdW5jdGlvbiggbk5vZGUgKSB7CgkJCQkJZm5NZXNzYWdlKCAiQ2VsbCAyLDUgYWN0aW9uIiApOwoJCQkJCWlmICggbk5vZGUuc3R5bGUuZm9udFN0eWxlID09ICIiICkgewoJCQkJCQluTm9kZS5zdHlsZS5mb250U3R5bGUgPSAiaXRhbGljIjsKCQkJCQl9IGVsc2UgewoJCQkJCQluTm9kZS5zdHlsZS5mb250U3R5bGUgPSAiIjsKCQkJCQl9CgkJCQl9ICk7CgkJCX0gKTsKCQk8L3NjcmlwdD4KCTwvaGVhZD4KCTxib2R5IGlkPSJkdF9leGFtcGxlIj4KCQk8ZGl2IGlkPSJjb250YWluZXIiPgoJCQk8ZGl2IGNsYXNzPSJmdWxsX3dpZHRoIGJpZyI+CgkJCQlLZXlUYWJsZSBleGFtcGxlCgkJCTwvZGl2PgoJCQkKCQkJPGgxPlByZWFtYmxlPC9oMT4KCQkJPHA+S2V5VGFibGUgYWxsb3dzIHlvdSB0byB1c2Uga2V5Ym9hcmQgbmF2aWdhdGlvbiBvbiBhbiBIVE1MIHRhYmxlLiBUaGUgZm9jdXNlZCBjZWxsIGlzIHNob3duIHRocm91Z2ggdGhlIENTUyBjbGFzcyAoJ2ZvY3VzJykgd2hpY2ggaW4gdGhlIGNhc2UgYmVsb3cgaXMgc2ltcGx5IGEgYmx1ZSBib3JkZXIuIEV2ZW50cyBzdWNoIGFzICdmb2N1cycsICdibHVyJywgJ2VzYycgKHRoZSBlc2NhcGUga2V5KSBhbmQgJ3JldHVybicgKHRoZSByZXR1cm4ga2V5KSBjYW4gYmUgYXNzaWduZWQgZXZlbnQgaGFuZGxpbmcgZnVuY3Rpb25zIHRob3VnaHQgdGhlIEFQSSBwcmVzZW50ZWQuPC9wPgoJCQk8cD5UaGUgZXhhbXBsZSBzaG93biBiZWxvdyBoYXMgYSBmZXcgY2VsbHMgKHNlbGVjdGVkIGF0IHJhbmRvbSwgYnV0IG5lYXIgdGhlIHRvcCkgd2l0aCBibHVyIGFuZCBmb2N1cyBldmVudHMgYXNzaWduZWQgdG8gdGhlbS4gWW91IGNhbiBhbHNvIHNlZSB0aGUgbmF2aWdhdGlvbiBhcm91bmQgdGhlIHRhYmxlIHVzaW5nIGFycm93IGtleXMuPC9wPgoJCQkKCQkJPGgxPkxpdmUgZXhhbXBsZTwvaDE+CgkJCTxkaXYgaWQ9ImluZm8iIGNsYXNzPSJib3giPgoJCQkJRXZlbnQgaW5mb3JtYXRpb246PGJyPgoJCQk8L2Rpdj4KCQkJPGRpdiBpZD0iZGVtbyI+Cjx0YWJsZSBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIGJvcmRlcj0iMCIgY2xhc3M9ImRpc3BsYXkgS2V5VGFibGUiIGlkPSJleGFtcGxlIj4KCTx0aGVhZD4KCQk8dHI+CgkJCTx0aD5SZW5kZXJpbmcgZW5naW5lPC90aD4KCQkJPHRoPkJyb3dzZXI8L3RoPgoJCQk8dGg+UGxhdGZvcm0ocyk8L3RoPgoJCQk8dGg+RW5naW5lIHZlcnNpb248L3RoPgoJCQk8dGg+Q1NTIGdyYWRlPC90aD4KCQk8L3RyPgoJPC90aGVhZD4KCTx0Ym9keT4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDQuMCAoZm9jdXMgb25jZSk8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAoYmx1cik8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQgKGZvY3VzKTwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAoYWN0aW9uL2JvbGQpPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNiAoZm9jdXMpPC90ZD4KCQkJPHRkPldpbiA5OCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNzwvdGQ+CgkJCTx0ZD5XaW4gWFAgU1AyKyAoYmx1cik8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+QU9MIGJyb3dzZXIgKEFPTCBkZXNrdG9wKTwvdGQ+CgkJCTx0ZD5XaW4gWFAgKGFjdGlvbi9pdGFsaWMpPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvIChmb2N1cyAtIHJvdyk8L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjU8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDIuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMy4wPC90ZD4KCQkJPHRkPldpbiAyaysgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS45PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuMDwvdGQ+CgkJCTx0ZD5PU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuNTwvdGQ+CgkJCTx0ZD5PU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgNy4yPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBNYWMgT1MgOC42LTkuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSBCcm93c2VyIDg8L3RkPgoJCQk8dGQ+V2luIDk4U0UrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIE5hdmlnYXRvciA5PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjE8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4zPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjQ8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS42PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjc8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuODwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPlNlYW1vbmtleSAxLjE8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5FcGlwaGFueSAyLjIwPC90ZD4KCQkJPHRkPkdub21lPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMS4yPC90ZD4KCQkJPHRkPk9TWC4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEyNS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjM8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MzEyLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDIuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDE5LjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDMuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTIyLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+T21uaVdlYiA1LjU8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQyMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5pUG9kIFRvdWNoIC8gaVBob25lPC90ZD4KCQkJPHRkPmlQb2Q8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+UzYwPC90ZD4KCQkJPHRkPlM2MDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgNy4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA3LjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDguMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOC41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuMjwvdGQ+CgkJCTx0ZD5XaW4gODgrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS41PC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSBmb3IgV2lpPC90ZD4KCQkJPHRkPldpaTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5va2lhIE44MDA8L3RkPgoJCQk8dGQ+TjgwMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5pbnRlbmRvIERTIGJyb3dzZXI8L3RkPgoJCQk8dGQ+TmludGVuZG8gRFM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+OC41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkMvQTxzdXA+MTwvc3VwPjwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuMTwvdGQ+CgkJCTx0ZD5LREUgMy4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy4zPC90ZD4KCQkJPHRkPktERSAzLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjU8L3RkPgoJCQk8dGQ+S0RFIDMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNC41PC90ZD4KCQkJPHRkPk1hYyBPUyA4LTk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjE8L3RkPgoJCQk8dGQ+TWFjIE9TIDcuNi05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4yPC90ZD4KCQkJPHRkPk1hYyBPUyA4LVg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy4xPC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy40PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+RGlsbG8gMC44PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TGlua3M8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkx5bng8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPklFIE1vYmlsZTwvdGQ+CgkJCTx0ZD5XaW5kb3dzIE1vYmlsZSA2PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPlBTUCBicm93c2VyPC90ZD4KCQkJPHRkPlBTUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVUiPgoJCQk8dGQ+T3RoZXIgYnJvd3NlcnM8L3RkPgoJCQk8dGQ+QWxsIG90aGVyczwvdGQ+CgkJCTx0ZD4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+VTwvdGQ+CgkJPC90cj4KCTwvdGJvZHk+CjwvdGFibGU+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgoJCQkKCQkJCgkJCTxoMT5Jbml0aWFsaXNhdGlvbiBjb2RlPC9oMT4KCQkJPHByZT5mdW5jdGlvbiBmbk1lc3NhZ2UgKCBzTWVzZyApCnsKCXZhciBuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2luZm8nKTsKCW4uaW5uZXJIVE1MICs9IHNNZXNnKyImbHQ7YnImZ3Q7IjsKCW4uc2Nyb2xsVG9wID0gbi5zY3JvbGxIZWlnaHQ7Cn0KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIga2V5cyA9IG5ldyBLZXlUYWJsZSgpOwoJCgkvKiBGb2N1cyBoYW5kbGVyIGZvciBhbGwgY2VsbHMgaW4gbGFzdCBjb2x1bW4gKi8KCWtleXMuZXZlbnQuZm9jdXMoIDQsIG51bGwsIGZ1bmN0aW9uKCBuTm9kZSwgeCwgeSApIHsKCQlmbk1lc3NhZ2UoICJDZWxsICIreCsiLCIreSsiIGZvY3VzZWQgKCdsaXZlJyBldmVudCAtIGNvbHVtbikiICk7Cgl9ICk7CgkKCS8qIEZvY3VzIGhhbmRsZXIgZm9yIGFsbCBjZWxscyBpbiA4dGggcm93ICovCglrZXlzLmV2ZW50LmZvY3VzKCBudWxsLCA3LCBmdW5jdGlvbiggbk5vZGUsIHgsIHkgKSB7CgkJZm5NZXNzYWdlKCAiQ2VsbCAiK3grIiwiK3krIiBmb2N1c2VkICgnbGl2ZScgZXZlbnQgLSByb3cpIiApOwoJfSApOwoJCgkvKiBGb2N1cyB1c2luZyBjb29yZHMuICovCglrZXlzLmV2ZW50LmZvY3VzKCAxLCAwLCBmdW5jdGlvbiggbk5vZGUgKSB7CgkJa2V5cy5ldmVudC5yZW1vdmUuZm9jdXMoIG5Ob2RlICk7CgkJZm5NZXNzYWdlKCAiQ2VsbCAxLDAgZm9jdXMgLSB0aGlzIGV2ZW50IGhhcyBub3cgYmVlbiByZW1vdmVkIiApOwoJfSApOwoJCglrZXlzLmV2ZW50LmZvY3VzKCAxLCAzLCBmdW5jdGlvbigpIHsKCQlmbk1lc3NhZ2UoICJDZWxsIDEsMyBmb2N1cyIgKTsKCX0gKTsKCQoJLyogZm9jdXMgd2l0aCBhIG5vZGUgKi8KCWtleXMuZXZlbnQuZm9jdXMoICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDIpIHRkOmVxKDApJylbMF0sIGZ1bmN0aW9uKCkgewoJCWZuTWVzc2FnZSggIkNlbGwgMCwyIGZvY3VzIiApOwoJfSApOwoJCgkvKiBCbHVyIHVzaW5nIGEgbm9kZSAqLwoJa2V5cy5ldmVudC5ibHVyKCAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKSB0ZDplcSgyKScpWzBdLCBmdW5jdGlvbigpIHsKCQlmbk1lc3NhZ2UoICJDZWxsIDEsMiBibHVyIiApOwoJfSApOwoJCgkvKiBCbHVyIHVzaW5nIGNvb3JkcyAqLwoJa2V5cy5ldmVudC5ibHVyKCAyLCA0LCBmdW5jdGlvbigpIHsKCQlmbk1lc3NhZ2UoICJDZWxsIDIsNCBibHVyIiApOwoJfSApOwoJCgkvKiBBY3Rpb24gKi8KCWtleXMuZXZlbnQuYWN0aW9uKCAyLCAyLCBmdW5jdGlvbiggbk5vZGUgKSB7CgkJZm5NZXNzYWdlKCAiQ2VsbCAyLDIgYWN0aW9uIiApOwoJCWlmICggbk5vZGUuc3R5bGUuZm9udFdlaWdodCA9PSAiIiB8fCBuTm9kZS5zdHlsZS5mb250V2VpZ2h0ID09ICJub3JtYWwiICkgewoJCQluTm9kZS5zdHlsZS5mb250V2VpZ2h0ID0gImJvbGQiOwoJCX0gZWxzZSB7CgkJCW5Ob2RlLnN0eWxlLmZvbnRXZWlnaHQgPSAibm9ybWFsIjsKCQl9Cgl9ICk7CgkKCWtleXMuZXZlbnQuYWN0aW9uKCAyLCA1LCBmdW5jdGlvbiggbk5vZGUgKSB7CgkJZm5NZXNzYWdlKCAiQ2VsbCAyLDUgYWN0aW9uIiApOwoJCWlmICggbk5vZGUuc3R5bGUuZm9udFN0eWxlID09ICIiICkgewoJCQluTm9kZS5zdHlsZS5mb250U3R5bGUgPSAiaXRhbGljIjsKCQl9IGVsc2UgewoJCQluTm9kZS5zdHlsZS5mb250U3R5bGUgPSAiIjsKCQl9Cgl9ICk7Cn0gKTs8L3ByZT4KCQkJCgkJCQoJCQk8aDE+T3RoZXIgZXhhbXBsZXM8L2gxPgoJCQk8dWw+CgkJCQk8bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+QmFzaWMgdXNhZ2U8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJlZGl0aW5nLmh0bWwiPkVkaXRpbmcgYSB0YWJsZTwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9ImZvcm0uaHRtbCI+SW50ZWdyYXRpb24gd2l0aCBhbiBIVE1MIGZvcm08L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJkYXRhdGFibGUuaHRtbCI+SW50ZWdyYXRpb24gd2l0aCBEYXRhVGFibGVzPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iZGF0YXRhYmxlX3Njcm9sbGluZy5odG1sIj5Vc2luZyBLZXlUYWJsZSB3aXRoIHNjcm9sbGluZyBpbiBEYXRhVGFibGVzPC9hPjwvbGk+CgkJCTwvdWw+CgkJCQoJCQk8ZGl2IGlkPSJmb290ZXIiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjsiPgoJCQkJPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMHB4OyI+CgkJCQkJS2V5VGFibGUgJmNvcHk7IEFsbGFuIEphcmRpbmUgMjAwOS48YnI+CgkJCQkJSW5mb3JtYXRpb24gaW4gdGhlIHRhYmxlICZjb3B5OyA8YSBocmVmPSJodHRwOi8vd3d3LnU0ZWF0ZWNoLmNvbSI+VTRFQSBUZWNobm9sb2dpZXM8L2E+IDIwMDctMjAwOS48L3NwYW4+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/KeyTable/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/KeyTable/js/KeyTable.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogRmlsZTogICAgICAgIEtleVRhYmxlLmpzCiAqIFZlcnNpb246ICAgICAxLjEuNwogKiBDVlM6ICAgICAgICAgJElkaiQKICogRGVzY3JpcHRpb246IEtleWJvYXJkIG5hdmlnYXRpb24gZm9yIEhUTUwgdGFibGVzCiAqIEF1dGhvcjogICAgICBBbGxhbiBKYXJkaW5lICh3d3cuc3ByeW1lZGlhLmNvLnVrKQogKiBDcmVhdGVkOiAgICAgRnJpIE1hciAxMyAyMToyNDowMiBHTVQgMjAwOQogKiBNb2RpZmllZDogICAgJERhdGUkIGJ5ICRBdXRob3IkCiAqIExhbmd1YWdlOiAgICBKYXZhc2NyaXB0CiAqIExpY2Vuc2U6ICAgICBHUEwgdjIgb3IgQlNEIDMgcG9pbnQgc3R5bGUKICogUHJvamVjdDogICAgIEp1c3QgYSBsaXR0bGUgYml0IG9mIGZ1biA6LSkKICogQ29udGFjdDogICAgIHd3dy5zcHJ5bWVkaWEuY28udWsvY29udGFjdAogKiAKICogQ29weXJpZ2h0IDIwMDktMjAxMSBBbGxhbiBKYXJkaW5lLCBhbGwgcmlnaHRzIHJlc2VydmVkLgogKgogKiBUaGlzIHNvdXJjZSBmaWxlIGlzIGZyZWUgc29mdHdhcmUsIHVuZGVyIGVpdGhlciB0aGUgR1BMIHYyIGxpY2Vuc2Ugb3IgYQogKiBCU0Qgc3R5bGUgbGljZW5zZSwgYXZhaWxhYmxlIGF0OgogKiAgIGh0dHA6Ly9kYXRhdGFibGVzLm5ldC9saWNlbnNlX2dwbDIKICogICBodHRwOi8vZGF0YXRhYmxlcy5uZXQvbGljZW5zZV9ic2QKICovCgoKZnVuY3Rpb24gS2V5VGFibGUgKCBvSW5pdCApCnsKCS8qICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICoKCSAqIEFQSSBwYXJhbWV0ZXJzCgkgKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqLwoJCgkvKgoJICogVmFyaWFibGU6IGJsb2NrCgkgKiBQdXJwb3NlOiAgRmxhZyB3aGV0aGVyIG9yIG5vdCBLZXlUYWJsZSBldmVudHMgc2hvdWxkIGJlIHByb2Nlc3NlZAoJICogU2NvcGU6ICAgIEtleVRhYmxlIC0gcHVibGljCgkgKi8KCXRoaXMuYmxvY2sgPSBmYWxzZTsKCQoJLyoKCSAqIFZhcmlhYmxlOiBldmVudAoJICogUHVycG9zZTogIENvbnRhaW5lciBmb3IgYWxsIGV2ZW50IGFwcGxpY2F0aW9uIG1ldGhvZHMKCSAqIFNjb3BlOiAgICBLZXlUYWJsZSAtIHB1YmxpYwoJICogTm90ZXM6ICAgIFRoaXMgb2JqZWN0IGNvbnRhaW5zIGFsbCB0aGUgcHVibGljIG1ldGhvZHMgZm9yIGFkZGluZyBhbmQgcmVtb3ZpbmcgZXZlbnRzIC0gdGhlc2UKCSAqICAgICAgICAgICBhcmUgZHluYW1pY2FsbHkgYWRkZWQgbGF0ZXIgb24KCSAqLwoJdGhpcy5ldmVudCA9IHsKCQkicmVtb3ZlIjoge30KCX07CgkKCQoJLyogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKgoJICogQVBJIG1ldGhvZHMKCSAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICovCgkKCS8qCgkgKiBGdW5jdGlvbjogZm5HZXRDdXJyZW50UG9zaXRpb24KCSAqIFB1cnBvc2U6ICBHZXQgdGhlIGN1cnJlbnRseSBmb2N1c2VkIGNlbGwncyBwb3NpdGlvbgoJICogUmV0dXJuczogIGFycmF5IGludDogWyB4LCB5IF0KCSAqIElucHV0czogICB2b2lkCgkgKi8KCXRoaXMuZm5HZXRDdXJyZW50UG9zaXRpb24gPSBmdW5jdGlvbiAoKQoJewoJCXJldHVybiBbIF9pT2xkWCwgX2lPbGRZIF07Cgl9OwoJCgkKCS8qCgkgKiBGdW5jdGlvbjogZm5HZXRDdXJyZW50RGF0YQoJICogUHVycG9zZTogIEdldCB0aGUgY3VycmVudGx5IGZvY3VzZWQgY2VsbCdzIGRhdGEgKGlubmVySFRNTCkKCSAqIFJldHVybnM6ICBzdHJpbmc6IC0gZGF0YSByZXF1ZXN0ZWQKCSAqIElucHV0czogICB2b2lkCgkgKi8KCXRoaXMuZm5HZXRDdXJyZW50RGF0YSA9IGZ1bmN0aW9uICgpCgl7CgkJcmV0dXJuIF9uT2xkRm9jdXMuaW5uZXJIVE1MOwoJfTsKCQoJCgkvKgoJICogRnVuY3Rpb246IGZuR2V0Q3VycmVudFRECgkgKiBQdXJwb3NlOiAgR2V0IHRoZSBjdXJyZW50bHkgZm9jdXNlZCBjZWxsCgkgKiBSZXR1cm5zOiAgbm9kZTogLSBmb2N1c2VkIGVsZW1lbnQKCSAqIElucHV0czogICB2b2lkCgkgKi8KCXRoaXMuZm5HZXRDdXJyZW50VEQgPSBmdW5jdGlvbiAoKQoJewoJCXJldHVybiBfbk9sZEZvY3VzOwoJfTsKCQoJCgkvKgoJICogRnVuY3Rpb246IGZuU2V0UG9zaXRpb24KCSAqIFB1cnBvc2U6ICBTZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSBmb2N1c2VkIGNlbGwKCSAqIFJldHVybnM6ICAtCgkgKiBJbnB1dHM6ICAgaW50OnggLSB4IGNvb3JkaW5hdGUKCSAqICAgICAgICAgICBpbnQ6eSAtIHkgY29vcmRpbmF0ZQoJICogTm90ZXM6ICAgIFRoYW5rcyB0byBSb2hhbiBEYXhpbmkgZm9yIHRoZSBiYXNpcyBvZiB0aGlzIGZ1bmN0aW9uCgkgKi8KCXRoaXMuZm5TZXRQb3NpdGlvbiA9IGZ1bmN0aW9uKCB4LCB5ICkKCXsKCQlpZiAoIHR5cGVvZiB4ID09ICdvYmplY3QnICYmIHgubm9kZU5hbWUgKQoJCXsKCQkJX2ZuU2V0Rm9jdXMoIHggKTsKCQl9CgkJZWxzZQoJCXsKCQkJX2ZuU2V0Rm9jdXMoIF9mbkNlbGxGcm9tQ29vcmRzKHgsIHkpICk7CgkJfQoJfTsKCQoJCgkvKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqCgkgKiBQcml2YXRlIHBhcmFtZXRlcnMKCSAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICovCgkKCS8qCgkgKiBWYXJpYWJsZTogX25Cb2R5CgkgKiBQdXJwb3NlOiAgQm9keSBub2RlIG9mIHRoZSB0YWJsZSAtIGNhY2hlZCBmb3IgcmVuZmVyZW5jZQoJICogU2NvcGU6ICAgIEtleVRhYmxlIC0gcHJpdmF0ZQoJICovCgl2YXIgX25Cb2R5ID0gbnVsbDsKCQoJLyoKCSAqIFZhcmlhYmxlOiAKCSAqIFB1cnBvc2U6ICAKCSAqIFNjb3BlOiAgICBLZXlUYWJsZSAtIHByaXZhdGUKCSAqLwoJdmFyIF9uT2xkRm9jdXMgPSBudWxsOwoJCgkvKgoJICogVmFyaWFibGU6IF9pT2xkWCBhbmQgX2lPbGRZCgkgKiBQdXJwb3NlOiAgWCBhbmQgWSBjb29yZHMgb2YgdGhlIG9sZCBlbGVtZXQgdGhhdCB3YXMgZm9jdXNlZCBvbgoJICogU2NvcGU6ICAgIEtleVRhYmxlIC0gcHJpdmF0ZQoJICovCgl2YXIgX2lPbGRYID0gbnVsbDsKCXZhciBfaU9sZFkgPSBudWxsOwoJCgkvKgoJICogVmFyaWFibGU6IF90aGF0CgkgKiBQdXJwb3NlOiAgU2NvcGUgc2F2aW5nIGZvciAndGhpcycgYWZ0ZXIgYSBqUXVlcnkgZXZlbnQKCSAqIFNjb3BlOiAgICBLZXlUYWJsZSAtIHByaXZhdGUKCSAqLwoJdmFyIF90aGF0ID0gbnVsbDsKCQoJLyoKCSAqIFZhcmlhYmxlOiBzRm9jdXNDbGFzcwoJICogUHVycG9zZTogIENsYXNzIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIGZvY3VzaW5nIG9uIGEgY2VsbAoJICogU2NvcGU6ICAgIEtleVRhYmxlIC0gcHJpdmF0ZQoJICovCgl2YXIgX3NGb2N1c0NsYXNzID0gImZvY3VzIjsKCQoJLyoKCSAqIFZhcmlhYmxlOiBfYktleUNhcHR1cmUKCSAqIFB1cnBvc2U6ICBGbGFnIGZvciBzaG91bGQgS2V5VGFibGUgY2FwdHVyZSBrZXkgZXZlbnRzIG9yIG5vdAoJICogU2NvcGU6ICAgIEtleVRhYmxlIC0gcHJpdmF0ZQoJICovCgl2YXIgX2JLZXlDYXB0dXJlID0gZmFsc2U7CgkKCS8qCgkgKiBWYXJpYWJsZTogX29hb0V2ZW50cwoJICogUHVycG9zZTogIEV2ZW50IGNhY2hlIG9iamVjdCwgb25lIGFycmF5IGZvciBlYWNoIHN1cHBvcnRlZCBldmVudCBmb3Igc3BlZWQgb2Ygc2VhcmNoaW5nCgkgKiBTY29wZTogICAgS2V5VGFibGUgLSBwcml2YXRlCgkgKi8KCXZhciBfb2FvRXZlbnRzID0gewoJCSJhY3Rpb24iOiBbXSwKCQkiZXNjIjogW10sCgkJImZvY3VzIjogW10sCgkJImJsdXIiOiBbXQoJfTsKCQoJLyoKCSAqIFZhcmlhYmxlOiBfb0RhdGF0YWJsZQoJICogUHVycG9zZTogIERhdGFUYWJsZXMgb2JqZWN0IGZvciBpZiB3ZSBhcmUgYWN0dWFsbHkgdXNpbmcgYSBEYXRhVGFibGVzIHRhYmxlCgkgKiBTY29wZTogICAgS2V5VGFibGUgLSBwcml2YXRlCgkgKi8KCXZhciBfb0RhdGF0YWJsZSA9IG51bGw7CgkKCXZhciBfYkZvcm07Cgl2YXIgX25JbnB1dDsKCXZhciBfYklucHV0Rm9jdXNlZCA9IGZhbHNlOwoJCgkKCS8qICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICoKCSAqIFByaXZhdGUgbWV0aG9kcwoJICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKi8KCQoJLyogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKgoJICogS2V5IHRhYmxlIGV2ZW50cwoJICovCgkKCS8qCgkgKiBGdW5jdGlvbjogX2ZuRXZlbnRBZGRUZW1wbGF0ZQoJICogUHVycG9zZTogIENyZWF0ZSBhIGZ1bmN0aW9uICh3aXRoIGNsb3N1cmUgZm9yIHNLZXkpIGV2ZW50IGFkZGl0aW9uIEFQSQoJICogUmV0dXJuczogIGZ1bmN0aW9uOiAtIHRlbXBsYXRlIGZ1bmN0aW9uCgkgKiBJbnB1dHM6ICAgc3RyaW5nOnNLZXkgLSB0eXBlIG9mIGV2ZW50IHRvIGRldGVjdAoJICovCglmdW5jdGlvbiBfZm5FdmVudEFkZFRlbXBsYXRlKCBzS2V5ICkKCXsKCQkvKgoJCSAqIEZ1bmN0aW9uOiAtCgkJICogUHVycG9zZTogIEFQSSBmdW5jdGlvbiBmb3IgYWRkaW5nIGV2ZW50IHRvIGNhY2hlCgkJICogUmV0dXJuczogIC0KCQkgKiBJbnB1dHM6ICAgMS4gbm9kZTp4IC0gdGFyZ2V0IG5vZGUgdG8gYWRkIGV2ZW50IGZvcgoJCSAqICAgICAgICAgICAyLiBmdW5jdGlvbjp5IC0gY2FsbGJhY2sgZnVuY3Rpb24gdG8gYXBwbHkKCQkgKiAgICAgICAgIG9yCgkJICogICAgICAgICAgIDEuIGludDp4IC0geCBjb29yZC4gb2YgdGFyZ2V0IGNlbGwgKGNhbiBiZSBudWxsIGZvciBsaXZlIGV2ZW50cykKCQkgKiAgICAgICAgICAgMi4gaW50OnkgLSB5IGNvb3JkLiBvZiB0YXJnZXQgY2VsbCAoY2FuIGJlIG51bGwgZm9yIGxpdmUgZXZlbnRzKQoJCSAqICAgICAgICAgICAzLiBmdW5jdGlvbjp6IC0gY2FsbGJhY2sgZnVuY3Rpb24gdG8gYXBwbHkKCQkgKiBOb3RlczogICAgVGhpcyBmdW5jdGlvbiBpcyAoaW50ZXJhbGx5KSBvdmVybG9hZGVkIChpbiBhcyBtdWNoIGFzIGphdmFzY3JpcHQgYWxsb3dzIGZvcgoJCSAqICAgICAgICAgICB0aGF0KSAtIHRoZSB0YXJnZXQgY2VsbCBjYW4gYmUgZ2l2ZW4gYnkgZWl0aGVyIG5vZGUgb3IgY29vcmRzLgoJCSAqLwoJCXJldHVybiBmdW5jdGlvbiAoIHgsIHksIHogKSB7CgkJCWlmICggKHg9PT1udWxsIHx8IHR5cGVvZiB4ID09ICJudW1iZXIiKSAmJiAKCQkJICAgICAoeT09PW51bGwgfHwgdHlwZW9mIHkgPT0gIm51bWJlciIpICYmIAoJCQkgICAgIHR5cGVvZiB6ID09ICJmdW5jdGlvbiIgKQoJCQl7CgkJCQlfZm5FdmVudEFkZCggc0tleSwgeCwgeSwgeiApOwoJCQl9CgkJCWVsc2UgaWYgKCB0eXBlb2YgeCA9PSAib2JqZWN0IiAmJiB0eXBlb2YgeSA9PSAiZnVuY3Rpb24iICkKCQkJewoJCQkJdmFyIGFDb29yZHMgPSBfZm5Db29yZHNGcm9tQ2VsbCggeCApOwoJCQkJX2ZuRXZlbnRBZGQoIHNLZXksIGFDb29yZHNbMF0sIGFDb29yZHNbMV0sIHkgKTsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCWFsZXJ0KCAiVW5oYW5kYWJsZSBldmVudCB0eXBlIHdhcyBhZGRlZDogeCIgK3grICIgIHk6IiAreSsgIiAgejoiICt6ICk7CgkJCX0KCQl9OwoJfQoJCgkKCS8qCgkgKiBGdW5jdGlvbjogX2ZuRXZlbnRSZW1vdmVUZW1wbGF0ZQoJICogUHVycG9zZTogIENyZWF0ZSBhIGZ1bmN0aW9uICh3aXRoIGNsb3N1cmUgZm9yIHNLZXkpIGV2ZW50IHJlbW92YWwgQVBJCgkgKiBSZXR1cm5zOiAgZnVuY3Rpb246IC0gdGVtcGxhdGUgZnVuY3Rpb24KCSAqIElucHV0czogICBzdHJpbmc6c0tleSAtIHR5cGUgb2YgZXZlbnQgdG8gZGV0ZWN0CgkgKi8KCWZ1bmN0aW9uIF9mbkV2ZW50UmVtb3ZlVGVtcGxhdGUoIHNLZXkgKQoJewoJCS8qCgkJICogRnVuY3Rpb246IC0KCQkgKiBQdXJwb3NlOiAgQVBJIGZ1bmN0aW9uIGZvciByZW1vdmluZyBldmVudCBmcm9tIGNhY2hlCgkJICogUmV0dXJuczogIGludDogLSBudW1iZXIgb2YgZXZlbnRzIHJlbW92ZWQKCQkgKiBJbnB1dHM6ICAgMS4gbm9kZTp4IC0gdGFyZ2V0IG5vZGUgdG8gcmVtb3ZlIGV2ZW50IGZyb20KCQkgKiAgICAgICAgICAgMi4gZnVuY3Rpb246eSAtIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGFwcGx5CgkJICogICAgICAgICBvcgoJCSAqICAgICAgICAgICAxLiBpbnQ6eCAtIHggY29vcmQuIG9mIHRhcmdldCBjZWxsIChjYW4gYmUgbnVsbCBmb3IgbGl2ZSBldmVudHMpCgkJICogICAgICAgICAgIDIuIGludDp5IC0geSBjb29yZC4gb2YgdGFyZ2V0IGNlbGwgKGNhbiBiZSBudWxsIGZvciBsaXZlIGV2ZW50cykKCQkgKiAgICAgICAgICAgMy4gZnVuY3Rpb246eiAtIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIHJlbW92ZSAtIG9wdGlvbmFsCgkJICogTm90ZXM6ICAgIFRoaXMgZnVuY3Rpb24gaXMgKGludGVyYWxseSkgb3ZlcmxvYWRlZCAoaW4gYXMgbXVjaCBhcyBqYXZhc2NyaXB0IGFsbG93cyBmb3IKCQkgKiAgICAgICAgICAgdGhhdCkgLSB0aGUgdGFyZ2V0IGNlbGwgY2FuIGJlIGdpdmVuIGJ5IGVpdGhlciBub2RlIG9yIGNvb3JkcyBhbmQgdGhlIGZ1bmN0aW9uCgkJICogICAgICAgICAgIHRvIHJlbW92ZSBpcyBvcHRpb25hbAoJCSAqLwoJCXJldHVybiBmdW5jdGlvbiAoIHgsIHksIHogKSB7CgkJCWlmICggKHg9PT1udWxsIHx8IHR5cGVvZiBhcmd1bWVudHNbMF0gPT0gIm51bWJlciIpICYmIAoJCQkgICAgICh5PT09bnVsbCB8fCB0eXBlb2YgYXJndW1lbnRzWzFdID09ICJudW1iZXIiICkgKQoJCQl7CgkJCQlpZiAoIHR5cGVvZiBhcmd1bWVudHNbMl0gPT0gImZ1bmN0aW9uIiApCgkJCQl7CgkJCQkJX2ZuRXZlbnRSZW1vdmUoIHNLZXksIHgsIHksIHogKTsKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQlfZm5FdmVudFJlbW92ZSggc0tleSwgeCwgeSApOwoJCQkJfQoJCQl9CgkJCWVsc2UgaWYgKCB0eXBlb2YgYXJndW1lbnRzWzBdID09ICJvYmplY3QiICkKCQkJewoJCQkJdmFyIGFDb29yZHMgPSBfZm5Db29yZHNGcm9tQ2VsbCggeCApOwoJCQkJaWYgKCB0eXBlb2YgYXJndW1lbnRzWzFdID09ICJmdW5jdGlvbiIgKQoJCQkJewoJCQkJCV9mbkV2ZW50UmVtb3ZlKCBzS2V5LCBhQ29vcmRzWzBdLCBhQ29vcmRzWzFdLCB5ICk7CgkJCQl9CgkJCQllbHNlCgkJCQl7CgkJCQkJX2ZuRXZlbnRSZW1vdmUoIHNLZXksIGFDb29yZHNbMF0sIGFDb29yZHNbMV0gKTsKCQkJCX0KCQkJfQoJCQllbHNlCgkJCXsKCQkJCWFsZXJ0KCAiVW5oYW5kYWJsZSBldmVudCB0eXBlIHdhcyByZW1vdmVkOiB4IiAreCsgIiAgeToiICt5KyAiICB6OiIgK3ogKTsKCQkJfQoJCX07Cgl9CgkKCS8qIFVzZSB0aGUgdGVtcGxhdGUgZnVuY3Rpb25zIHRvIGFkZCB0aGUgZXZlbnQgQVBJIGZ1bmN0aW9ucyAqLwoJZm9yICggdmFyIHNLZXkgaW4gX29hb0V2ZW50cyApCgl7CgkJaWYgKCBzS2V5ICkKCQl7CgkJCXRoaXMuZXZlbnRbc0tleV0gPSBfZm5FdmVudEFkZFRlbXBsYXRlKCBzS2V5ICk7CgkJCXRoaXMuZXZlbnQucmVtb3ZlW3NLZXldID0gX2ZuRXZlbnRSZW1vdmVUZW1wbGF0ZSggc0tleSApOwoJCX0KCX0KCQoJCgkvKgoJICogRnVuY3Rpb246IF9mbkV2ZW50QWRkCgkgKiBQdXJwb3NlOiAgQWRkIGFuIGV2ZW50IHRvIHRoZSBpbnRlcm5hbCBjYWNoZQoJICogUmV0dXJuczogIC0KCSAqIElucHV0czogICBzdHJpbmc6c1R5cGUgLSB0eXBlIG9mIGV2ZW50IHRvIGFkZCwgZ2l2ZW4gYnkgdGhlIGF2YWlsYWJsZSBlbGVtZW50cyBpbiBfb2FvRXZlbnRzCgkgKiAgICAgICAgICAgaW50OnggLSB4LWNvb3JkcyB0byBhZGQgZXZlbnQgdG8gLSBjYW4gYmUgbnVsbCBmb3IgImJsYW5rZXQiIGV2ZW50CgkgKiAgICAgICAgICAgaW50OnkgLSB5LWNvb3JkcyB0byBhZGQgZXZlbnQgdG8gLSBjYW4gYmUgbnVsbCBmb3IgImJsYW5rZXQiIGV2ZW50CgkgKiAgICAgICAgICAgZnVuY3Rpb246Zm4gLSBjYWxsYmFjayBmdW5jdGlvbiBmb3Igd2hlbiB0cmlnZ2VyZWQKCSAqLwoJZnVuY3Rpb24gX2ZuRXZlbnRBZGQoIHNUeXBlLCB4LCB5LCBmbiApCgl7CgkJX29hb0V2ZW50c1tzVHlwZV0ucHVzaCggewoJCQkieCI6IHgsCgkJCSJ5IjogeSwKCQkJImZuIjogZm4KCQl9ICk7Cgl9CgkKCQoJLyoKCSAqIEZ1bmN0aW9uOiBfZm5FdmVudFJlbW92ZQoJICogUHVycG9zZTogIFJlbW92ZSBhbiBldmVudCBmcm9tIHRoZSBldmVudCBjYWNoZQoJICogUmV0dXJuczogIGludDogLSBudW1iZXIgb2YgbWF0Y2hpbmcgZXZlbnRzIHJlbW92ZWQKCSAqIElucHV0czogICBzdHJpbmc6c1R5cGUgLSB0eXBlIG9mIGV2ZW50IHRvIGxvb2sgZm9yCgkgKiAgICAgICAgICAgbm9kZTpuVGFyZ2V0IC0gdGFyZ2V0IHRhYmxlIGNlbGwKCSAqICAgICAgICAgICBmdW5jdGlvbjpmbiAtIG9wdGlvbmFsIC0gcmVtb3ZlIHRoaXMgZnVuY3Rpb24uIElmIG5vdCBnaXZlbiBhbGwgaGFuZGxlcnMgb2YgdGhpcwoJICogICAgICAgICAgICAgdHlwZSB3aWxsIGJlIHJlbW92ZWQKCSAqLwoJZnVuY3Rpb24gX2ZuRXZlbnRSZW1vdmUoIHNUeXBlLCB4LCB5LCBmbiApCgl7CgkJdmFyIGlDb3JyZWN0b3IgPSAwOwoJCQoJCWZvciAoIHZhciBpPTAsIGlMZW49X29hb0V2ZW50c1tzVHlwZV0ubGVuZ3RoIDsgaTxpTGVuLWlDb3JyZWN0b3IgOyBpKysgKQoJCXsKCQkJaWYgKCB0eXBlb2YgZm4gIT0gJ3VuZGVmaW5lZCcgKQoJCQl7CgkJCQlpZiAoIF9vYW9FdmVudHNbc1R5cGVdW2ktaUNvcnJlY3Rvcl0ueCA9PSB4ICYmCgkJCQkgICAgIF9vYW9FdmVudHNbc1R5cGVdW2ktaUNvcnJlY3Rvcl0ueSA9PSB5ICYmCgkJCQkJICAgX29hb0V2ZW50c1tzVHlwZV1baS1pQ29ycmVjdG9yXS5mbiA9PSBmbiApCgkJCQl7CgkJCQkJX29hb0V2ZW50c1tzVHlwZV0uc3BsaWNlKCBpLWlDb3JyZWN0b3IsIDEgKTsKCQkJCQlpQ29ycmVjdG9yKys7CgkJCQl9CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQlpZiAoIF9vYW9FdmVudHNbc1R5cGVdW2ktaUNvcnJlY3Rvcl0ueCA9PSB4ICYmCgkJCQkgICAgIF9vYW9FdmVudHNbc1R5cGVdW2ktaUNvcnJlY3Rvcl0ueSA9PSB5ICkKCQkJCXsKCQkJCQlfb2FvRXZlbnRzW3NUeXBlXS5zcGxpY2UoIGksIDEgKTsKCQkJCQlyZXR1cm4gMTsKCQkJCX0KCQkJfQoJCX0KCQlyZXR1cm4gaUNvcnJlY3RvcjsKCX0KCQoJCgkvKgoJICogRnVuY3Rpb246IF9mbkV2ZW50RmlyZQoJICogUHVycG9zZTogIExvb2sgdGhvdWdodCB0aGUgZXZlbnRzIGNhY2hlIGFuZCBmaXJlIG9mZiB0aGUgZXZlbnQgb2YgaW50ZXJlc3QKCSAqIFJldHVybnM6ICBpbnQ6aUZpcmVkIC0gbnVtYmVyIG9mIGV2ZW50cyBmaXJlZAoJICogSW5wdXRzOiAgIHN0cmluZzpzVHlwZSAtIHR5cGUgb2YgZXZlbnQgdG8gbG9vayBmb3IKCSAqICAgICAgICAgICBpbnQ6eCAtIHggY29vcmQgb2YgY2VsbAoJICogICAgICAgICAgIGludDp5IC0geSBjb29yZCBvZiAgZWxsCgkgKiBOb3RlczogICAgSXQgbWlnaHQgYmUgbW9yZSBlZmZpY2llbnQgdG8gcmV0dXJuIGFmdGVyIHRoZSBmaXJzdCBldmVudCBoYXMgYmVlbiB0aXJnZ2VyZWQsCgkgKiAgICAgICAgICAgYnV0IHRoYXQgd291bGQgbWVhbiB0aGF0IG9ubHkgb25lIGZ1bmN0aW9uIG9mIGEgcGFydGljdWxhciB0eXBlIGNhbiBiZQoJICogICAgICAgICAgIHN1YnNjcmliZWQgdG8gYSBwYXJ0aWN1bGFyIG5vZGUuCgkgKi8KCWZ1bmN0aW9uIF9mbkV2ZW50RmlyZSAoIHNUeXBlLCB4LCB5ICkKCXsKCQl2YXIgaUZpcmVkID0gMDsKCQl2YXIgYUV2ZW50cyA9IF9vYW9FdmVudHNbc1R5cGVdOwoJCWZvciAoIHZhciBpPTAgOyBpPGFFdmVudHMubGVuZ3RoIDsgaSsrICkKCQl7CgkJCWlmICggKGFFdmVudHNbaV0ueCA9PSB4ICAgICAmJiBhRXZlbnRzW2ldLnkgPT0geSAgICApIHx8CgkJCSAgICAgKGFFdmVudHNbaV0ueCA9PT0gbnVsbCAmJiBhRXZlbnRzW2ldLnkgPT0geSAgICApIHx8CgkJCSAgICAgKGFFdmVudHNbaV0ueCA9PSB4ICAgICAmJiBhRXZlbnRzW2ldLnkgPT09IG51bGwgKSB8fAoJCQkgICAgIChhRXZlbnRzW2ldLnggPT09IG51bGwgJiYgYUV2ZW50c1tpXS55ID09PSBudWxsICkKCQkJKQoJCQl7CgkJCQlhRXZlbnRzW2ldLmZuKCBfZm5DZWxsRnJvbUNvb3Jkcyh4LHkpLCB4LCB5ICk7CgkJCQlpRmlyZWQrKzsKCQkJfQoJCX0KCQlyZXR1cm4gaUZpcmVkOwoJfQoJCgkKCQoJLyogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKgoJICogRm9jdXMgZnVuY3Rpb25zCgkgKi8KCQoJLyoKCSAqIEZ1bmN0aW9uOiBfZm5TZXRGb2N1cwoJICogUHVycG9zZTogIFNldCBmb2N1cyBvbiBhIG5vZGUsIGFuZCByZW1vdmUgZnJvbSBhbiBvbGQgbm9kZSBpZiBuZWVkZWQKCSAqIFJldHVybnM6ICAtCgkgKiBJbnB1dHM6ICAgbm9kZTpuVGFyZ2V0IC0gbm9kZSB3ZSB3YW50IHRvIGZvY3VzIG9uCgkgKiAgICAgICAgICAgYm9vbDpiQXV0b1Njcm9sbCAtIG9wdGlvbmFsIC0gc2hvdWxkIHdlIHNjcm9sbCB0aGUgdmlldyBwb3J0IHRvIHRoZSBkaXNwbGF5CgkgKi8KCWZ1bmN0aW9uIF9mblNldEZvY3VzKCBuVGFyZ2V0LCBiQXV0b1Njcm9sbCApCgl7CgkJLyogSWYgbm9kZSBhbHJlYWR5IGhhcyBmb2N1cywganVzdCBpZ25vcmUgdGhpcyBjYWxsICovCgkJaWYgKCBfbk9sZEZvY3VzID09IG5UYXJnZXQgKQoJCXsKCQkJcmV0dXJuOwoJCX0KCQkKCQlpZiAoIHR5cGVvZiBiQXV0b1Njcm9sbCA9PSAndW5kZWZpbmVkJyApCgkJewoJCQliQXV0b1Njcm9sbCA9IHRydWU7CgkJfQoJCQoJCS8qIFJlbW92ZSBvbGQgZm9jdXMgKHdpdGggYmx1ciBldmVudCBpZiBuZWVkZWQpICovCgkJaWYgKCBfbk9sZEZvY3VzICE9PSBudWxsICkKCQl7CgkJCV9mblJlbW92ZUZvY3VzKCBfbk9sZEZvY3VzICk7CgkJfQoJCQoJCS8qIEFkZCB0aGUgbmV3IGNsYXNzIHRvIGhpZ2hsaWdodCB0aGUgZm9jdXNlZCBjZWxsICovCgkJalF1ZXJ5KG5UYXJnZXQpLmFkZENsYXNzKCBfc0ZvY3VzQ2xhc3MgKTsKCQlqUXVlcnkoblRhcmdldCkucGFyZW50KCkuYWRkQ2xhc3MoIF9zRm9jdXNDbGFzcyApOwoJCQoJCS8qIElmIGl0J3MgYSBEYXRhVGFibGUgdGhlbiB3ZSBuZWVkIHRvIGp1bXAgdGhlIHBhZ2luZyB0byB0aGUgcmVsZXZhbnQgcGFnZSAqLwoJCXZhciBvU2V0dGluZ3M7CgkJaWYgKCBfb0RhdGF0YWJsZSApCgkJewoJCQlvU2V0dGluZ3MgPSBfb0RhdGF0YWJsZS5mblNldHRpbmdzKCk7CgkJCXZhciBpUm93ID0gX2ZuRmluZER0Q2VsbCggblRhcmdldCApWzFdOwoJCQl2YXIgYktleUNhcHR1cmVDYWNoZSA9IF9iS2V5Q2FwdHVyZTsKCQkJCgkJCS8qIFBhZ2UgZm9yd2FyZHMgKi8KCQkJd2hpbGUgKCBpUm93ID49IG9TZXR0aW5ncy5mbkRpc3BsYXlFbmQoKSApCgkJCXsKCQkJCWlmICggb1NldHRpbmdzLl9pRGlzcGxheUxlbmd0aCA+PSAwICkKCQkJCXsKCQkJCQkvKiBNYWtlIHN1cmUgd2UgYXJlIG5vdCBvdmVyIHJ1bm5pbmcgdGhlIGRpc3BsYXkgYXJyYXkgKi8KCQkJCQlpZiAoIG9TZXR0aW5ncy5faURpc3BsYXlTdGFydCArIG9TZXR0aW5ncy5faURpc3BsYXlMZW5ndGggPCBvU2V0dGluZ3MuZm5SZWNvcmRzRGlzcGxheSgpICkKCQkJCQl7CgkJCQkJCW9TZXR0aW5ncy5faURpc3BsYXlTdGFydCArPSBvU2V0dGluZ3MuX2lEaXNwbGF5TGVuZ3RoOwoJCQkJCX0KCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQlvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQgPSAwOwoJCQkJfQoJCQkJX29EYXRhdGFibGUub0FwaS5fZm5DYWxjdWxhdGVFbmQoIG9TZXR0aW5ncyApOwoJCQl9CgkJCQoJCQkvKiBQYWdlIGJhY2t3YXJkcyAqLwoJCQl3aGlsZSAoIGlSb3cgPCBvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQgKQoJCQl7CgkJCQlvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQgPSBvU2V0dGluZ3MuX2lEaXNwbGF5TGVuZ3RoPj0wID8KCQkJCQlvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQgLSBvU2V0dGluZ3MuX2lEaXNwbGF5TGVuZ3RoIDoKCQkJCQkwOwoJCQkJCQoJCQkJaWYgKCBvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQgPCAwICkKCQkJCXsKCQkJCSAgb1NldHRpbmdzLl9pRGlzcGxheVN0YXJ0ID0gMDsKCQkJCX0KCQkJCV9vRGF0YXRhYmxlLm9BcGkuX2ZuQ2FsY3VsYXRlRW5kKCBvU2V0dGluZ3MgKTsKCQkJfQoJCQkKCQkJLyogUmUtZHJhdyB0aGUgdGFibGUgKi8KCQkJX29EYXRhdGFibGUub0FwaS5fZm5EcmF3KCBvU2V0dGluZ3MgKTsKCQkJCgkJCS8qIFJlc3RvcmUgdGhlIGtleSBjYXB0dXJlICovCgkJCV9iS2V5Q2FwdHVyZSA9IGJLZXlDYXB0dXJlQ2FjaGU7CgkJfQoJCQoJCS8qIENhY2hlIHRoZSBpbmZvcm1hdGlvbiB0aGF0IHdlIGFyZSBpbnRlcmVzdGVkIGluICovCgkJdmFyIGFOZXdQb3MgPSBfZm5Db29yZHNGcm9tQ2VsbCggblRhcmdldCApOwoJCV9uT2xkRm9jdXMgPSBuVGFyZ2V0OwoJCV9pT2xkWCA9IGFOZXdQb3NbMF07CgkJX2lPbGRZID0gYU5ld1Bvc1sxXTsKCQkKCQl2YXIgaVZpZXdwb3J0SGVpZ2h0LCBpVmlld3BvcnRXaWR0aCwgaVNjcm9sbFRvcCwgaVNjcm9sbExlZnQsIGlIZWlnaHQsIGlXaWR0aCwgYWlQb3M7CgkJaWYgKCBiQXV0b1Njcm9sbCApCgkJewoJCQkvKiBTY3JvbGwgdGhlIHZpZXdwb3J0IHN1Y2ggdGhhdCB0aGUgbmV3IGNlbGwgaXMgZnVsbHkgdmlzaWJsZSBpbiB0aGUgcmVuZGVyZWQgd2luZG93ICovCgkJCWlWaWV3cG9ydEhlaWdodCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7CgkJCWlWaWV3cG9ydFdpZHRoID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoOwoJCQlpU2Nyb2xsVG9wID0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDsKCQkJaVNjcm9sbExlZnQgPSBkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQ7CgkJCWlIZWlnaHQgPSBuVGFyZ2V0Lm9mZnNldEhlaWdodDsKCQkJaVdpZHRoID0gblRhcmdldC5vZmZzZXRXaWR0aDsKCQkJYWlQb3MgPSBfZm5HZXRQb3MoIG5UYXJnZXQgKTsKCQkJCgkJCS8qIFRha2UgYWNjb3VudCBvZiBzY3JvbGxpbmcgaW4gRGF0YVRhYmxlcyAxLjcgLSByZW1vdmUgc2Nyb2xsaW5nIHNpbmNlIHRoYXQgd291bGQgYWRkIHRvCgkJCSAqIHRoZSBwb3NpdGlvbmluZyBjYWxjdWxhdGlvbgoJCQkgKi8KCQkJaWYgKCBfb0RhdGF0YWJsZSAmJiB0eXBlb2Ygb1NldHRpbmdzLm9TY3JvbGwgIT0gJ3VuZGVmaW5lZCcgJiYKCQkJICAob1NldHRpbmdzLm9TY3JvbGwuc1ggIT09ICIiIHx8IG9TZXR0aW5ncy5vU2Nyb2xsLnNZICE9PSAiIikgKQoJCQl7CgkJCQlhaVBvc1sxXSAtPSAkKG9TZXR0aW5ncy5uVGFibGUucGFyZW50Tm9kZSkuc2Nyb2xsVG9wKCk7CgkJCQlhaVBvc1swXSAtPSAkKG9TZXR0aW5ncy5uVGFibGUucGFyZW50Tm9kZSkuc2Nyb2xsTGVmdCgpOwoJCQl9CgkJCQoJCQkvKiBDb3JyZWN0IHZpZXdwb3J0IHBvc2l0aW9uaW5nIGZvciB2ZXJ0aWNhbCBzY3JvbGxpbmcgKi8KCQkJaWYgKCBhaVBvc1sxXStpSGVpZ2h0ID4gaVNjcm9sbFRvcCtpVmlld3BvcnRIZWlnaHQgKQoJCQl7CgkJCQkvKiBEaXNwbGF5ZWQgZWxlbWVudCBpZiBvZmYgdGhlIGJvdHRvbSBvZiB0aGUgdmlld3BvcnQgKi8KCQkJCV9mblNldFNjcm9sbFRvcCggYWlQb3NbMV0raUhlaWdodCAtIGlWaWV3cG9ydEhlaWdodCApOwoJCQl9CgkJCWVsc2UgaWYgKCBhaVBvc1sxXSA8IGlTY3JvbGxUb3AgKQoJCQl7CgkJCQkvKiBEaXNwbGF5ZWQgZWxlbWVudCBpZiBvZmYgdGhlIHRvcCBvZiB0aGUgdmlld3BvcnQgKi8KCQkJCV9mblNldFNjcm9sbFRvcCggYWlQb3NbMV0gKTsKCQkJfQoJCQkKCQkJLyogQ29ycmVjdCB2aWV3cG9ydCBwb3NpdGlvbmluZyBmb3IgaG9yaXpvbnRhbCBzY3JvbGxpbmcgKi8KCQkJaWYgKCBhaVBvc1swXStpV2lkdGggPiBpU2Nyb2xsTGVmdCtpVmlld3BvcnRXaWR0aCApCgkJCXsKCQkJCS8qIERpc3BsYXllZCBlbGVtZW50IGlzIG9mZiB0aGUgYm90dG9tIG9mIHRoZSB2aWV3cG9ydCAqLwoJCQkJX2ZuU2V0U2Nyb2xsTGVmdCggYWlQb3NbMF0raVdpZHRoIC0gaVZpZXdwb3J0V2lkdGggKTsKCQkJfQoJCQllbHNlIGlmICggYWlQb3NbMF0gPCBpU2Nyb2xsTGVmdCApCgkJCXsKCQkJCS8qIERpc3BsYXllZCBlbGVtZW50IGlmIG9mZiB0aGUgTGVmdCBvZiB0aGUgdmlld3BvcnQgKi8KCQkJCV9mblNldFNjcm9sbExlZnQoIGFpUG9zWzBdICk7CgkJCX0KCQl9CgkJCgkJLyogVGFrZSBhY2NvdW50IG9mIHNjcm9sbGluZyBpbiBEYXRhVGFibGVzIDEuNyAqLwoJCWlmICggX29EYXRhdGFibGUgJiYgdHlwZW9mIG9TZXR0aW5ncy5vU2Nyb2xsICE9ICd1bmRlZmluZWQnICYmCgkJICAob1NldHRpbmdzLm9TY3JvbGwuc1ggIT09ICIiIHx8IG9TZXR0aW5ncy5vU2Nyb2xsLnNZICE9PSAiIikgKQoJCXsKCQkJdmFyIGR0U2Nyb2xsQm9keSA9IG9TZXR0aW5ncy5uVGFibGUucGFyZW50Tm9kZTsKCQkJaVZpZXdwb3J0SGVpZ2h0ID0gZHRTY3JvbGxCb2R5LmNsaWVudEhlaWdodDsKCQkJaVZpZXdwb3J0V2lkdGggPSBkdFNjcm9sbEJvZHkuY2xpZW50V2lkdGg7CgkJCWlTY3JvbGxUb3AgPSBkdFNjcm9sbEJvZHkuc2Nyb2xsVG9wOwoJCQlpU2Nyb2xsTGVmdCA9IGR0U2Nyb2xsQm9keS5zY3JvbGxMZWZ0OwoJCQlpSGVpZ2h0ID0gblRhcmdldC5vZmZzZXRIZWlnaHQ7CgkJCWlXaWR0aCA9IG5UYXJnZXQub2Zmc2V0V2lkdGg7CgkJCQoJCQkvKiBDb3JyZWN0IGZvciB2ZXJ0aWNhbCBzY3JvbGxpbmcgKi8KCQkJaWYgKCBuVGFyZ2V0Lm9mZnNldFRvcCArIGlIZWlnaHQgPiBpVmlld3BvcnRIZWlnaHQraVNjcm9sbFRvcCApCgkJCXsKCQkJCWR0U2Nyb2xsQm9keS5zY3JvbGxUb3AgPSAoblRhcmdldC5vZmZzZXRUb3AgKyBpSGVpZ2h0KSAtIGlWaWV3cG9ydEhlaWdodDsKCQkJfQoJCQllbHNlIGlmICggblRhcmdldC5vZmZzZXRUb3AgPCBpU2Nyb2xsVG9wICkKCQkJewoJCQkJZHRTY3JvbGxCb2R5LnNjcm9sbFRvcCA9IG5UYXJnZXQub2Zmc2V0VG9wOwoJCQl9CgkJCQoJCQkvKiBDb3JyZWN0IGZvciBob3Jpem9udGFsIHNjcm9sbGluZyAqLwoJCQlpZiAoIG5UYXJnZXQub2Zmc2V0TGVmdCArIGlXaWR0aCA+IGlWaWV3cG9ydFdpZHRoK2lTY3JvbGxMZWZ0ICkKCQkJewoJCQkJZHRTY3JvbGxCb2R5LnNjcm9sbExlZnQgPSAoblRhcmdldC5vZmZzZXRMZWZ0ICsgaVdpZHRoKSAtIGlWaWV3cG9ydFdpZHRoOwoJCQl9CgkJCWVsc2UgaWYgKCBuVGFyZ2V0Lm9mZnNldExlZnQgPCBpU2Nyb2xsTGVmdCApCgkJCXsKCQkJCWR0U2Nyb2xsQm9keS5zY3JvbGxMZWZ0ID0gblRhcmdldC5vZmZzZXRMZWZ0OwoJCQl9CgkJfQoKCQkvKiBGb2N1c2VkIC0gc28gd2Ugd2FudCB0byBjYXB0dXJlIHRoZSBrZXlzICovCgkJX2ZuQ2FwdHVyZUtleXMoKTsKCQkKCQkvKiBGaXJlIG9mIHRoZSBmb2N1cyBldmVudCBpZiB0aGVyZSBpcyBvbmUgKi8KCQlfZm5FdmVudEZpcmUoICJmb2N1cyIsIF9pT2xkWCwgX2lPbGRZICk7Cgl9CgkKCQoJLyoKCSAqIEZ1bmN0aW9uOiBfZm5CbHVyCgkgKiBQdXJwb3NlOiAgQmx1ciBmb2N1cyBmcm9tIHRoZSB3aG9sZSB0YWJsZQoJICogUmV0dXJuczogIC0KCSAqIElucHV0czogICAtCgkgKi8KCWZ1bmN0aW9uIF9mbkJsdXIoKQoJewoJCV9mblJlbW92ZUZvY3VzKCBfbk9sZEZvY3VzICk7CgkJX2lPbGRYID0gbnVsbDsKCQlfaU9sZFkgPSBudWxsOwoJCV9uT2xkRm9jdXMgPSBudWxsOwoJCV9mblJlbGVhc2VLZXlzKCk7Cgl9CgkKCQoJLyoKCSAqIEZ1bmN0aW9uOiBfZm5SZW1vdmVGb2N1cwoJICogUHVycG9zZTogIFJlbW92ZSBmb2N1cyBmcm9tIGEgY2VsbCBhbmQgZmlyZSBhbnkgYmx1ciBldmVudHMgd2hpY2ggYXJlIGF0dGFjaGVkCgkgKiBSZXR1cm5zOiAgLQoJICogSW5wdXRzOiAgIG5vZGU6blRhcmdldCAtIGNlbGwgb2YgaW50ZXJlc3QKCSAqLwoJZnVuY3Rpb24gX2ZuUmVtb3ZlRm9jdXMoIG5UYXJnZXQgKQoJewoJCWpRdWVyeShuVGFyZ2V0KS5yZW1vdmVDbGFzcyggX3NGb2N1c0NsYXNzICk7CgkJalF1ZXJ5KG5UYXJnZXQpLnBhcmVudCgpLnJlbW92ZUNsYXNzKCBfc0ZvY3VzQ2xhc3MgKTsKCQlfZm5FdmVudEZpcmUoICJibHVyIiwgX2lPbGRYLCBfaU9sZFkgKTsKCX0KCQoJCgkvKgoJICogRnVuY3Rpb246IF9mbkNsaWNrCgkgKiBQdXJwb3NlOiAgRm9jdXMgb24gdGhlIGVsZW1lbnQgdGhhdCBoYXMgYmVlbiBjbGlja2VkIG9uIGJ5IHRoZSB1c2VyCgkgKiBSZXR1cm5zOiAgLQoJICogSW5wdXRzOiAgIGV2ZW50OmUgLSBjbGljayBldmVudAoJICovCglmdW5jdGlvbiBfZm5DbGljayAoIGUgKQoJewoJCXZhciBuVGFyZ2V0ID0gdGhpczsKCQl3aGlsZSAoIG5UYXJnZXQubm9kZU5hbWUgIT0gIlREIiApCgkJewoJCQluVGFyZ2V0ID0gblRhcmdldC5wYXJlbnROb2RlOwoJCX0KCQkKCQlfZm5TZXRGb2N1cyggblRhcmdldCApOwoJCV9mbkNhcHR1cmVLZXlzKCk7Cgl9CgkKCQoJCgkvKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqCgkgKiBLZXkgZXZlbnRzCgkgKi8KCQoJLyoKCSAqIEZ1bmN0aW9uOiBfZm5LZXkKCSAqIFB1cnBvc2U6ICBEZWFsIHdpdGggYSBrZXkgZXZlbnRzLCBiZSBpdCBtb3ZpbmcgdGhlIGZvY3VzIG9yIHJldHVybiBldGMuCgkgKiBSZXR1cm5zOiAgYm9vbDogLSBhbGxvdyBicm93c2VyIGRlZmF1bHQgYWN0aW9uCgkgKiBJbnB1dHM6ICAgZXZlbnQ6ZSAtIGtleSBldmVudAoJICovCglmdW5jdGlvbiBfZm5LZXkgKCBlICkKCXsKCQkvKiBJZiB1c2VyIG9yIHN5c3RlbSBoYXMgYmxvY2tlZCBLZXlUYWJsZSBmcm9tIGRvaW5nIGFueXRoaW5nLCBqdXN0IGlnbm9yZSB0aGlzIGV2ZW50ICovCgkJaWYgKCBfdGhhdC5ibG9jayB8fCAhX2JLZXlDYXB0dXJlICkKCQl7CgkJCXJldHVybiB0cnVlOwoJCX0KCQkKCQkvKiBJZiBhIG1vZGlmaWVyIGtleSBpcyBwcmVzc2VkIChleGFwY3Qgc2hpZnQpLCBpZ25vcmUgdGhlIGV2ZW50ICovCgkJaWYgKCBlLm1ldGFLZXkgfHwgZS5hbHRLZXkgfHwgZS5jdHJsS2V5ICkKCQl7CgkJICAgIHJldHVybiB0cnVlOwoJCX0KCQl2YXIKCQkJeCwgeSwKCQkJaVRhYmxlV2lkdGggPSBfbkJvZHkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RyJylbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RkJykubGVuZ3RoLCAKCQkJaVRhYmxlSGVpZ2h0OwoJCQoJCS8qIEdldCB0YWJsZSBoZWlnaHQgYW5kIHdpZHRoIC0gZG9uZSBoZXJlIHNvIGFzIHRvIGJlIGR5bmFtaWMgKGlmIHRhYmxlIGlzIHVwZGF0ZWQpICovCgkJaWYgKCBfb0RhdGF0YWJsZSApCgkJewoJCQkvKiAKCQkJICogTG9jYXRlIHRoZSBjdXJyZW50IG5vZGUgaW4gdGhlIERhdGFUYWJsZSBvdmVycmlkaW5nIHRoZSBvbGQgcG9zaXRpb25zIC0gdGhlIHJlYXNvbiBmb3IKCQkJICogaXMgaXMgdGhhdCB0aGVyZSBtaWdodCBoYXZlIGJlZW4gc29tZSBEYXRhVGFibGVzIGludGVyYWN0aW9uIGJldHdlZW4gdGhlIGxhc3QgZm9jdXMgYW5kCgkJCSAqIG5vdwoJCQkgKi8KCQkJdmFyIG9TZXR0aW5ncyA9IF9vRGF0YXRhYmxlLmZuU2V0dGluZ3MoKTsKCQkJaVRhYmxlSGVpZ2h0ID0gb1NldHRpbmdzLmFpRGlzcGxheS5sZW5ndGg7CgkJCQoJCQl2YXIgYUR0UG9zID0gX2ZuRmluZER0Q2VsbCggX25PbGRGb2N1cyApOwoJCQlpZiAoIGFEdFBvcyA9PT0gbnVsbCApCgkJCXsKCQkJCS8qIElmIHRoZSB0YWJsZSBoYXMgYmVlbiB1cGRhdGVkIHN1Y2ggdGhhdCB0aGUgZm9jdXNlZCBjZWxsIGNhbid0IGJlIHNlZW4gLSBkbyBub3RoaW5nICovCgkJCQlyZXR1cm47CgkJCX0KCQkJX2lPbGRYID0gYUR0UG9zWyAwIF07CgkJCV9pT2xkWSA9IGFEdFBvc1sgMSBdOwoJCX0KCQllbHNlCgkJewoJCQlpVGFibGVIZWlnaHQgPSBfbkJvZHkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RyJykubGVuZ3RoOwoJCX0KCQkKCQkvKiBDYXB0dXJlIHNoaWZ0K3RhYiB0byBtYXRjaCB0aGUgbGVmdCBhcnJvdyBrZXkgKi8KCQl2YXIgaUtleSA9IChlLmtleUNvZGUgPT0gOSAmJiBlLnNoaWZ0S2V5KSA/IC0xIDogZS5rZXlDb2RlOwoJCQoJCXN3aXRjaCggaUtleSApCgkJewoJCQljYXNlIDEzOiAvKiByZXR1cm4gKi8KCQkJIAllLnByZXZlbnREZWZhdWx0KCk7CiAJCQkJZS5zdG9wUHJvcGFnYXRpb24oKTsKCQkJCV9mbkV2ZW50RmlyZSggImFjdGlvbiIsIF9pT2xkWCwgX2lPbGRZICk7CgkJCQlyZXR1cm4gdHJ1ZTsKCQkJCQoJCQljYXNlIDI3OiAvKiBlc2MgKi8KCQkJCWlmICggIV9mbkV2ZW50RmlyZSggImVzYyIsIF9pT2xkWCwgX2lPbGRZICkgKQoJCQkJewoJCQkJCS8qIE9ubHkgbG9zZSBmb2N1cyBpZiB0aGVyZSBpc24ndCBhbiBlc2NhcGUgaGFuZGxlciBvbiB0aGUgY2VsbCAqLwoJCQkJCV9mbkJsdXIoKTsKCQkJCQlyZXR1cm47CgkJCQl9CgkJCQl4ID0gX2lPbGRYOwoJCQkJeSA9IF9pT2xkWTsKCQkJCWJyZWFrOwoJCQkKCQkJY2FzZSAtMToKCQkJY2FzZSAzNzogLyogbGVmdCBhcnJvdyAqLwoJCQkJaWYgKCBfaU9sZFggPiAwICkgewoJCQkJCXggPSBfaU9sZFggLSAxOwoJCQkJCXkgPSBfaU9sZFk7CgkJCQl9IGVsc2UgaWYgKCBfaU9sZFkgPiAwICkgewoJCQkJCXggPSBpVGFibGVXaWR0aC0xOwoJCQkJCXkgPSBfaU9sZFkgLSAxOwoJCQkJfSBlbHNlIHsKCQkJCQkvKiBhdCBzdGFydCBvZiB0YWJsZSAqLwoJCQkJCWlmICggaUtleSA9PSAtMSAmJiBfYkZvcm0gKQoJCQkJCXsKCQkJCQkJLyogSWYgd2UgYXJlIGluIGEgZm9ybSwgcmV0dXJuIGZvY3VzIHRvIHRoZSAnaW5wdXQnIGVsZW1lbnQgc3VjaCB0aGF0IHRhYmJpbmcgd2lsbAoJCQkJCQkgKiBmb2xsb3cgY29ycmVjdGx5IGluIHRoZSBicm93c2VyCgkJCQkJCSAqLwoJCQkJCQlfYklucHV0Rm9jdXNlZCA9IHRydWU7CgkJCQkJCV9uSW5wdXQuZm9jdXMoKTsKCQkJCQkJCgkJCQkJCS8qIFRoaXMgdGltZW91dCBpcyBhIGxpdHRsZSBuYXN0eSAtIGJ1dCBJRSBhcHBlYXJzIHRvIGhhdmUgc29tZSBhc3lobmMgYmVoYXZpb3VyIGZvciAKCQkJCQkJICogZm9jdXMKCQkJCQkJICovCgkJCQkJCXNldFRpbWVvdXQoIGZ1bmN0aW9uKCl7IF9iSW5wdXRGb2N1c2VkID0gZmFsc2U7IH0sIDAgKTsKCQkJCQkJX2JLZXlDYXB0dXJlID0gZmFsc2U7CgkJCQkJCV9mbkJsdXIoKTsKCQkJCQkJcmV0dXJuIHRydWU7IAoJCQkJCX0KCQkJCQllbHNlCgkJCQkJewoJCQkJCQlyZXR1cm4gZmFsc2U7CgkJCQkJfQoJCQkJfQoJCQkJYnJlYWs7CgkJCQoJCQljYXNlIDM4OiAvKiB1cCBhcnJvdyAqLwoJCQkJaWYgKCBfaU9sZFkgPiAwICkgewoJCQkJCXggPSBfaU9sZFg7CgkJCQkJeSA9IF9pT2xkWSAtIDE7CgkJCQl9IGVsc2UgewoJCQkJCXJldHVybiBmYWxzZTsKCQkJCX0KCQkJCWJyZWFrOwoJCQkKCQkJY2FzZSA5OiAvKiB0YWIgKi8KCQkJY2FzZSAzOTogLyogcmlnaHQgYXJyb3cgKi8KCQkJCWlmICggX2lPbGRYIDwgaVRhYmxlV2lkdGgtMSApIHsKCQkJCQl4ID0gX2lPbGRYICsgMTsKCQkJCQl5ID0gX2lPbGRZOwoJCQkJfSBlbHNlIGlmICggX2lPbGRZIDwgaVRhYmxlSGVpZ2h0LTEgKSB7CgkJCQkJeCA9IDA7CgkJCQkJeSA9IF9pT2xkWSArIDE7CgkJCQl9IGVsc2UgewoJCQkJCS8qIGF0IGVuZCBvZiB0YWJsZSAqLwoJCQkJCWlmICggaUtleSA9PSA5ICYmIF9iRm9ybSApCgkJCQkJewoJCQkJCQkvKiBJZiB3ZSBhcmUgaW4gYSBmb3JtLCByZXR1cm4gZm9jdXMgdG8gdGhlICdpbnB1dCcgZWxlbWVudCBzdWNoIHRoYXQgdGFiYmluZyB3aWxsCgkJCQkJCSAqIGZvbGxvdyBjb3JyZWN0bHkgaW4gdGhlIGJyb3dzZXIKCQkJCQkJICovCgkJCQkJCV9iSW5wdXRGb2N1c2VkID0gdHJ1ZTsKCQkJCQkJX25JbnB1dC5mb2N1cygpOwoJCQkJCQkKCQkJCQkJLyogVGhpcyB0aW1lb3V0IGlzIGEgbGl0dGxlIG5hc3R5IC0gYnV0IElFIGFwcGVhcnMgdG8gaGF2ZSBzb21lIGFzeWhuYyBiZWhhdmlvdXIgZm9yIAoJCQkJCQkgKiBmb2N1cwoJCQkJCQkgKi8KCQkJCQkJc2V0VGltZW91dCggZnVuY3Rpb24oKXsgX2JJbnB1dEZvY3VzZWQgPSBmYWxzZTsgfSwgMCApOwoJCQkJCQlfYktleUNhcHR1cmUgPSBmYWxzZTsKCQkJCQkJX2ZuQmx1cigpOwoJCQkJCQlyZXR1cm4gdHJ1ZTsgCgkJCQkJfQoJCQkJCWVsc2UKCQkJCQl7CgkJCQkJCXJldHVybiBmYWxzZTsKCQkJCQl9CgkJCQl9CgkJCQlicmVhazsKCQkJCgkJCWNhc2UgNDA6IC8qIGRvd24gYXJyb3cgKi8KCQkJCWlmICggX2lPbGRZIDwgaVRhYmxlSGVpZ2h0LTEgKSB7CgkJCQkJeCA9IF9pT2xkWDsKCQkJCQl5ID0gX2lPbGRZICsgMTsKCQkJCX0gZWxzZSB7CgkJCQkJcmV0dXJuIGZhbHNlOwoJCQkJfQoJCQkJYnJlYWs7CgkJCQoJCQlkZWZhdWx0OiAvKiBOb3RoaW5nIHdlIGFyZSBpbnRlcmVzdGVkIGluICovCgkJCQlyZXR1cm4gdHJ1ZTsKCQl9CgkJCgkJX2ZuU2V0Rm9jdXMoIF9mbkNlbGxGcm9tQ29vcmRzKHgsIHkpICk7CgkJcmV0dXJuIGZhbHNlOwoJfQoJCgkKCS8qCgkgKiBGdW5jdGlvbjogX2ZuQ2FwdHVyZUtleXMKCSAqIFB1cnBvc2U6ICBTdGFydCBjYXB0dXJpbmcga2V5IGV2ZW50cyBmb3IgdGhpcyB0YWJsZQoJICogUmV0dXJuczogIC0KCSAqIElucHV0czogICAtCgkgKi8KCWZ1bmN0aW9uIF9mbkNhcHR1cmVLZXlzKCApCgl7CgkJaWYgKCAhX2JLZXlDYXB0dXJlICkKCQl7CgkJCV9iS2V5Q2FwdHVyZSA9IHRydWU7CgkJfQoJfQoJCgkKCS8qCgkgKiBGdW5jdGlvbjogX2ZuUmVsZWFzZUtleXMKCSAqIFB1cnBvc2U6ICBTdG9wIGNhcHR1cmluZyBrZXkgZXZlbnRzIGZvciB0aGlzIHRhYmxlCgkgKiBSZXR1cm5zOiAgLQoJICogSW5wdXRzOiAgIC0KCSAqLwoJZnVuY3Rpb24gX2ZuUmVsZWFzZUtleXMoICkKCXsKCQlfYktleUNhcHR1cmUgPSBmYWxzZTsKCX0KCQoJCgkKCS8qICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICoKCSAqIFN1cHBvcnQgZnVuY3Rpb25zCgkgKi8KCQoJLyoKCSAqIEZ1bmN0aW9uOiBfZm5DZWxsRnJvbUNvb3JkcwoJICogUHVycG9zZTogIENhbHVsYXRlIHRoZSB0YXJnZXQgVEQgY2VsbCBmcm9tIHggYW5kIHkgY29vcmRpbmF0ZXMKCSAqIFJldHVybnM6ICBub2RlOiAtIFREIHRhcmdldAoJICogSW5wdXRzOiAgIGludDp4IC0geCBjb29yZGluYXRlCgkgKiAgICAgICAgICAgaW50OnkgLSB5IGNvb3JkaW5hdGUKCSAqLwoJZnVuY3Rpb24gX2ZuQ2VsbEZyb21Db29yZHMoIHgsIHkgKQoJewoJCWlmICggX29EYXRhdGFibGUgKQoJCXsKCQkJdmFyIG9TZXR0aW5ncyA9IF9vRGF0YXRhYmxlLmZuU2V0dGluZ3MoKTsKCQkJaWYgKCB0eXBlb2Ygb1NldHRpbmdzLmFvRGF0YVsgb1NldHRpbmdzLmFpRGlzcGxheVsgeSBdIF0gIT0gJ3VuZGVmaW5lZCcgKQoJCQl7CgkJCQlyZXR1cm4gb1NldHRpbmdzLmFvRGF0YVsgb1NldHRpbmdzLmFpRGlzcGxheVsgeSBdIF0ublRyLmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0ZCcpW3hdOwoJCQl9CgkJCWVsc2UKCQkJewoJCQkJcmV0dXJuIG51bGw7CgkJCX0KCQl9CgkJZWxzZQoJCXsKCQkJcmV0dXJuIGpRdWVyeSgndHI6ZXEoJyt5KycpPnRkOmVxKCcreCsnKScsIF9uQm9keSApWzBdOwoJCX0KCX0KCQoJCgkvKgoJICogRnVuY3Rpb246IF9mbkNvb3Jkc0Zyb21DZWxsCgkgKiBQdXJwb3NlOiAgQ2FsY3VsYXRlIHRoZSB4IGFuZCB5IHBvc2l0aW9uIGluIGEgdGFibGUgZnJvbSBhIFREIGNlbGwKCSAqIFJldHVybnM6ICBhcnJheVsyXSBpbnQ6IFt4LCB5XQoJICogSW5wdXRzOiAgIG5vZGU6biAtIFREIGNlbGwgb2YgaW50ZXJlc3QKCSAqIE5vdGVzOiAgICBOb3QgYWN0dWFsbHkgaW50ZXJlc3RlZCBpbiB0aGlzIGZvciBEYXRhVGFibGVzIHNpbmNlIGl0IG1pZ2h0IGdvIG91dCBvZiBkYXRlCgkgKi8KCWZ1bmN0aW9uIF9mbkNvb3Jkc0Zyb21DZWxsKCBuICkKCXsKCQlpZiAoIF9vRGF0YXRhYmxlICkKCQl7CgkJCXZhciBvU2V0dGluZ3MgPSBfb0RhdGF0YWJsZS5mblNldHRpbmdzKCk7CgkJCXJldHVybiBbCgkJCQlqUXVlcnkoJ3RkJywgbi5wYXJlbnROb2RlKS5pbmRleChuKSwKCQkJCWpRdWVyeSgndHInLCBuLnBhcmVudE5vZGUucGFyZW50Tm9kZSkuaW5kZXgobi5wYXJlbnROb2RlKSArIG9TZXR0aW5ncy5faURpc3BsYXlTdGFydAoJCQldOwoJCX0KCQllbHNlCgkJewoJCQlyZXR1cm4gWwoJCQkJalF1ZXJ5KCd0ZCcsIG4ucGFyZW50Tm9kZSkuaW5kZXgobiksCgkJCQlqUXVlcnkoJ3RyJywgbi5wYXJlbnROb2RlLnBhcmVudE5vZGUpLmluZGV4KG4ucGFyZW50Tm9kZSkKCQkJXTsKCQl9Cgl9CgkKCQoJLyoKCSAqIEZ1bmN0aW9uOiBfZm5TZXRTY3JvbGxUb3AKCSAqIFB1cnBvc2U6ICBTZXQgdGhlIHZlcnRpY2FsIHNjcm9sbGluZyBwb3NpdGlvbgoJICogUmV0dXJuczogIC0KCSAqIElucHV0czogICBpbnQ6aVBvcyAtIHNjcm9sbHRvcAoJICogTm90ZXM6ICAgIFRoaXMgaXMgc28gbmFzdHksIGJ1dCB3aXRob3V0IGJyb3dzZXIgZGV0ZWN0aW9uIHlvdSBjYW4ndCB0ZWxsIHdoaWNoIHlvdSBzaG91bGQgc2V0CgkgKiAgICAgICAgICAgU28gb24gYnJvd3NlcnMgdGhhdCBzdXBwb3J0IGJvdGgsIHRoZSBzY3JvbGwgdG9wIHdpbGwgYmUgc2V0IHR3aWNlLiBJIGNhbiBsaXZlIHdpdGgKCSAqICAgICAgICAgICB0aGF0IDotKQoJICovCglmdW5jdGlvbiBfZm5TZXRTY3JvbGxUb3AoIGlQb3MgKQoJewoJCWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgPSBpUG9zOwoJCWRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wID0gaVBvczsKCX0KCQoJCgkvKgoJICogRnVuY3Rpb246IF9mblNldFNjcm9sbExlZnQKCSAqIFB1cnBvc2U6ICBTZXQgdGhlIGhvcml6b250YWwgc2Nyb2xsaW5nIHBvc2l0aW9uCgkgKiBSZXR1cm5zOiAgLQoJICogSW5wdXRzOiAgIGludDppUG9zIC0gc2Nyb2xsbGVmdAoJICovCglmdW5jdGlvbiBfZm5TZXRTY3JvbGxMZWZ0KCBpUG9zICkKCXsKCQlkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdCA9IGlQb3M7CgkJZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0ID0gaVBvczsKCX0KCQoJCgkvKgoJICogRnVuY3Rpb246IF9mbkdldFBvcwoJICogUHVycG9zZTogIEdldCB0aGUgcG9zaXRpb24gb2YgYW4gb2JqZWN0IG9uIHRoZSByZW5kZXJlZCBwYWdlCgkgKiBSZXR1cm5zOiAgYXJyYXlbMl0gaW50OiBbbGVmdCwgcmlnaHRdCgkgKiBJbnB1dHM6ICAgbm9kZTpvYmogLSBlbGVtZW50IG9mIGludGVyZXN0CgkgKi8KCWZ1bmN0aW9uIF9mbkdldFBvcyAoIG9iaiApCgl7CgkJdmFyIGlMZWZ0ID0gMDsKCQl2YXIgaVRvcCA9IDA7CgkJCgkJaWYgKG9iai5vZmZzZXRQYXJlbnQpIAoJCXsKCQkJaUxlZnQgPSBvYmoub2Zmc2V0TGVmdDsKCQkJaVRvcCA9IG9iai5vZmZzZXRUb3A7CgkJCW9iaiA9IG9iai5vZmZzZXRQYXJlbnQ7CgkJCXdoaWxlIChvYmopIAoJCQl7CgkJCQlpTGVmdCArPSBvYmoub2Zmc2V0TGVmdDsKCQkJCWlUb3AgKz0gb2JqLm9mZnNldFRvcDsKCQkJCW9iaiA9IG9iai5vZmZzZXRQYXJlbnQ7CgkJCX0KCQl9CgkJcmV0dXJuIFtpTGVmdCxpVG9wXTsKCX0KCQoJCgkvKgoJICogRnVuY3Rpb246IF9mbkZpbmREdENlbGwKCSAqIFB1cnBvc2U6ICBHZXQgdGhlIGNvb3Jkcy4gb2YgYSBjZWxsIGZyb20gdGhlIERhdGFUYWJsZXMgaW50ZXJuYWwgaW5mb3JtYXRpb24KCSAqIFJldHVybnM6ICBhcnJheVsyXSBpbnQ6IFt4LCB5XSBjb29yZHMuIG9yIG51bGwgaWYgbm90IGZvdW5kCgkgKiBJbnB1dHM6ICAgbm9kZTpuVGFyZ2V0IC0gdGhlIG5vZGUgb2YgaW50ZXJlc3QKCSAqLwoJZnVuY3Rpb24gX2ZuRmluZER0Q2VsbCggblRhcmdldCApCgl7CgkJdmFyIG9TZXR0aW5ncyA9IF9vRGF0YXRhYmxlLmZuU2V0dGluZ3MoKTsKCQlmb3IgKCB2YXIgaT0wLCBpTGVuPW9TZXR0aW5ncy5haURpc3BsYXkubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQl7CgkJCXZhciBuVHIgPSBvU2V0dGluZ3MuYW9EYXRhWyBvU2V0dGluZ3MuYWlEaXNwbGF5W2ldIF0ublRyOwoJCQl2YXIgblRkcyA9IG5Uci5nZXRFbGVtZW50c0J5VGFnTmFtZSgndGQnKTsKCQkJZm9yICggdmFyIGo9MCwgakxlbj1uVGRzLmxlbmd0aCA7IGo8akxlbiA7IGorKyApCgkJCXsKCQkJCWlmICggblRkc1tqXSA9PSBuVGFyZ2V0ICkKCQkJCXsKCQkJCQlyZXR1cm4gWyBqLCBpIF07CgkJCQl9CgkJCX0KCQl9CgkJcmV0dXJuIG51bGw7Cgl9CgkKCQoJCgkvKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqCgkgKiBJbml0aWFsaXNhdGlvbgoJICovCgkKCS8qCgkgKiBGdW5jdGlvbjogX2ZuSW5pdAoJICogUHVycG9zZTogIEluaXRpYWxpc2UgdGhlIEtleVRhYmxlCgkgKiBSZXR1cm5zOiAgLQoJICogSW5wdXRzOiAgIG9iamVjdDpvSW5pdCAtIG9wdGlvbmFsIC0gSW5pdGFsaXNhdGlvbiBvYmplY3Qgd2l0aCB0aGUgZm9sbG93aW5nIHBhcmFtZXRlcnM6CgkgKiAgIGFycmF5WzJdIGludDpmb2N1cyAtIHggYW5kIHkgY29vcmRpbmF0ZXMgb2YgdGhlIGluaXRpYWwgdGFyZ2V0CgkgKiAgICAgb3IKCSAqICAgICBub2RlOmZvY3VzIC0gdGhlIG5vZGUgdG8gc2V0IGluaXRpYWwgZm9jdXMgb24KCSAqICAgbm9kZTp0YWJsZSAtIHRoZSB0YWJsZSB0byB1c2UsIGlmIG5vdCBnaXZlbiwgZmlyc3QgdGFibGUgd2l0aCBjbGFzcyAnS2V5VGFibGUnIHdpbGwgYmUgdXNlZAoJICogICBzdHJpbmc6Zm9jdXNDbGFzcyAtIGZvY3VzaW5nIGNsYXNzIHRvIGdpdmUgdG8gdGFibGUgZWxlbWVudHMKCSAqICAgICAgICAgICBvYmplY3Q6dGhhdCAtIGZvY3VzCgkgKiAgIGJvb2w6aW5pdFNjcm9sbCAtIHNjcm9sbCB0aGUgdmlldyBwb3J0IG9uIGxvYWQsIGRlZmF1bHQgdHJ1ZQoJICogICBpbnQ6dGFiSW5kZXggLSB0aGUgdGFiIGluZGV4IHRvIGdpdmUgdGhlIGhpZGRlbiBpbnB1dCBlbGVtZW50CgkgKi8KCWZ1bmN0aW9uIF9mbkluaXQoIG9Jbml0LCB0aGF0ICkKCXsKCQkvKiBTYXZlIHNjb3BlICovCgkJX3RoYXQgPSB0aGF0OwoJCQoJCS8qIENhcHR1cmUgdW5kZWZpbmVkIGluaXRpYWxpc2F0aW9uIGFuZCBhcHBseSB0aGUgZGVmYXVsdHMgKi8KCQlpZiAoIHR5cGVvZiBvSW5pdCA9PSAndW5kZWZpbmVkJyApIHsKCQkJb0luaXQgPSB7fTsKCQl9CgkJCgkJaWYgKCB0eXBlb2Ygb0luaXQuZm9jdXMgPT0gJ3VuZGVmaW5lZCcgKSB7CgkJCW9Jbml0LmZvY3VzID0gWzAsMF07CgkJfQoJCQoJCWlmICggdHlwZW9mIG9Jbml0LnRhYmxlID09ICd1bmRlZmluZWQnICkgewoJCQlvSW5pdC50YWJsZSA9IGpRdWVyeSgndGFibGUuS2V5VGFibGUnKVswXTsKCQl9IGVsc2UgewoJCQkkKG9Jbml0LnRhYmxlKS5hZGRDbGFzcygnS2V5VGFibGUnKTsKCQl9CgkJCgkJaWYgKCB0eXBlb2Ygb0luaXQuZm9jdXNDbGFzcyAhPSAndW5kZWZpbmVkJyApIHsKCQkJX3NGb2N1c0NsYXNzID0gb0luaXQuZm9jdXNDbGFzczsKCQl9CgkJCgkJaWYgKCB0eXBlb2Ygb0luaXQuZGF0YXRhYmxlICE9ICd1bmRlZmluZWQnICkgewoJCQlfb0RhdGF0YWJsZSA9IG9Jbml0LmRhdGF0YWJsZTsKCQl9CgkJCgkJaWYgKCB0eXBlb2Ygb0luaXQuaW5pdFNjcm9sbCA9PSAndW5kZWZpbmVkJyApIHsKCQkJb0luaXQuaW5pdFNjcm9sbCA9IHRydWU7CgkJfQoJCQoJCWlmICggdHlwZW9mIG9Jbml0LmZvcm0gPT0gJ3VuZGVmaW5lZCcgKSB7CgkJCW9Jbml0LmZvcm0gPSBmYWxzZTsKCQl9CgkJX2JGb3JtID0gb0luaXQuZm9ybTsKCQkKCQkvKiBDYWNoZSB0aGUgdGJvZHkgbm9kZSBvZiBpbnRlcmVzdCAqLwoJCV9uQm9keSA9IG9Jbml0LnRhYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0Ym9keScpWzBdOwoJCQoJCS8qIElmIHRoZSB0YWJsZSBpcyBpbnNpZGUgYSBmb3JtLCB0aGVuIHdlIG5lZWQgYSBoaWRkZW4gaW5wdXQgYm94IHdoaWNoIGNhbiBiZSB1c2VkIGJ5IHRoZQoJCSAqIGJyb3dzZXIgdG8gY2F0Y2ggdGhlIGJyb3dzZXIgdGFiYmluZyBmb3Igb3VyIHRhYmxlCgkJICovCgkJaWYgKCBfYkZvcm0gKQoJCXsKCQkJdmFyIG5EaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKCQkJX25JbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CgkJCW5EaXYuc3R5bGUuaGVpZ2h0ID0gIjFweCI7IC8qIE9wZXJhIHJlcXVpcmVzIGEgbGl0dGxlIHNvbWV0aGluZyAqLwoJCQluRGl2LnN0eWxlLndpZHRoID0gIjBweCI7CgkJCW5EaXYuc3R5bGUub3ZlcmZsb3cgPSAiaGlkZGVuIjsKCQkJaWYgKCB0eXBlb2Ygb0luaXQudGFiSW5kZXggIT0gJ3VuZGVmaW5lZCcgKQoJCQl7CgkJCQlfbklucHV0LnRhYkluZGV4ID0gb0luaXQudGFiSW5kZXg7CgkJCX0KCQkJbkRpdi5hcHBlbmRDaGlsZChfbklucHV0KTsKCQkJb0luaXQudGFibGUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoIG5EaXYsIG9Jbml0LnRhYmxlLm5leHRTaWJsaW5nICk7CgkJCQoJCQlqUXVlcnkoX25JbnB1dCkuZm9jdXMoIGZ1bmN0aW9uICgpIHsKCQkJCS8qIFNlZSBpZiB3ZSB3YW50IHRvICd0YWIgaW50bycgdGhlIHRhYmxlIG9yIG91dCAqLwoJCQkJaWYgKCAhX2JJbnB1dEZvY3VzZWQgKQoJCQkJewoJCQkJCV9iS2V5Q2FwdHVyZSA9IHRydWU7CgkJCQkJX2JJbnB1dEZvY3VzZWQgPSBmYWxzZTsKCQkJCQlpZiAoIHR5cGVvZiBvSW5pdC5mb2N1cy5ub2RlTmFtZSAhPSAidW5kZWZpbmVkIiApCgkJCQkJewoJCQkJCQlfZm5TZXRGb2N1cyggb0luaXQuZm9jdXMsIG9Jbml0LmluaXRTY3JvbGwgKTsKCQkJCQl9CgkJCQkJZWxzZQoJCQkJCXsKCQkJCQkJX2ZuU2V0Rm9jdXMoIF9mbkNlbGxGcm9tQ29vcmRzKCBvSW5pdC5mb2N1c1swXSwgb0luaXQuZm9jdXNbMV0pLCBvSW5pdC5pbml0U2Nyb2xsICk7CgkJCQkJfQoJCQkJCQoJCQkJCS8qIE5lZWQgdG8gaW50ZXJ1cCB0aGUgdGhyZWFkIGZvciB0aGlzIHRvIHdvcmsgKi8KCQkJCQlzZXRUaW1lb3V0KCBmdW5jdGlvbigpIHsgX25JbnB1dC5ibHVyKCk7IH0sIDAgKTsKCQkJCX0KCQkJfSApOwoJCQlfYktleUNhcHR1cmUgPSBmYWxzZTsKCQl9CgkJZWxzZQoJCXsKCQkJLyogU2V0IHRoZSBpbml0aWFsIGZvY3VzIG9uIHRoZSB0YWJsZSAqLwoJCQlpZiAoIHR5cGVvZiBvSW5pdC5mb2N1cy5ub2RlTmFtZSAhPSAidW5kZWZpbmVkIiApCgkJCXsKCQkJCV9mblNldEZvY3VzKCBvSW5pdC5mb2N1cywgb0luaXQuaW5pdFNjcm9sbCApOwoJCQl9CgkJCWVsc2UKCQkJewoJCQkJX2ZuU2V0Rm9jdXMoIF9mbkNlbGxGcm9tQ29vcmRzKCBvSW5pdC5mb2N1c1swXSwgb0luaXQuZm9jdXNbMV0pLCBvSW5pdC5pbml0U2Nyb2xsICk7CgkJCX0KCQkJX2ZuQ2FwdHVyZUtleXMoKTsKCQl9CgkJCgkJLyoKCQkgKiBBZGQgZXZlbnQgbGlzdGVuZXJzCgkJICogV2VsbCAtIEkgaGF0ZSBteXNlbGYgZm9yIGRvaW5nIHRoaXMsIGJ1dCBpdCB3b3VsZCBhcHBlYXIgdGhhdCBrZXkgZXZlbnRzIGluIGJyb3dzZXJzIGFyZQoJCSAqIGEgY29tcGxldGUgbWVzcywgcGFydGljdWxheSB3aGVuIHlvdSBjb25zaWRlciBhcnJvdyBrZXlzLCB3aGljaCBvZiBjb3Vyc2UgYXJlIG9uZSBvZiB0aGUKCQkgKiBtYWluIGFyZWFzIG9mIGludGVyZXN0IGhlcmUuIFNvIGJhc2ljYWxseSBmb3IgYXJyb3cga2V5cywgdGhlcmUgaXMgbm8ga2V5cHJlc3MgZXZlbnQgaW4KCQkgKiBTYWZhcmkgYW5kIElFLCB3aGlsZSB0aGVyZSBpcyBpbiBGaXJlZm94IGFuZCBPcGVyYS4gQnV0IEZpcmVmb3ggYW5kIE9wZXJhIGRvbid0IHJlcGVhdCB0aGUKCQkgKiBrZXlkb3duIGV2ZW50IGZvciBhbiBhcnJvdyBrZXkuIE9VQ0guIFNlZSB0aGUgZm9sbG93aW5nIHR3byBhcnRpY2xlcyBmb3IgbW9yZToKCQkgKiAgIGh0dHA6Ly93d3cucXVpcmtzbW9kZS5vcmcvZG9tL2V2ZW50cy9rZXlzLmh0bWwKCQkgKiAgIGh0dHBzOi8vbGlzdHMud2Via2l0Lm9yZy9waXBlcm1haWwvd2Via2l0LWRldi8yMDA3LURlY2VtYmVyLzAwMjk5Mi5odG1sCgkJICogICBodHRwOi8vdW5peHBhcGEuY29tL2pzL2tleS5odG1sCgkJICogUFBLIGNvbnNpZGVycyB0aGUgSUUgLyBTYWZhcmkgbWV0aG9kIGNvcnJlY3QgKGdvb2QgZW5vdWdoIGZvciBtZSEpIHNvIHdlICh1cmdoKSBkZXRlY3QKCQkgKiBNb3ppbGxhIGFuZCBPcGVyYSBhbmQgYXBwbHkga2V5cHJlc3MgZm9yIHRoZW0sIHdoaWxlIGV2ZXJ5dGhpbmcgZWxzZSBnZXRzIGtleWRvd24uIElmCgkJICogTW96aWxsYSBvciBPcGVyYSBjaGFuZ2UgdGhlaXIgaW1wbGVtZW50aW9uIGluIGZ1dHVyZSwgdGhpcyB3aWxsIG5lZWQgdG8gYmUgdXBkYXRlZC4uLiAKCQkgKiBhbHRob3VnaCBhdCB0aGUgdGltZSBvZiB3cml0aW5nICgxNHRoIE1hcmNoIDIwMDkpIE1pbmVmaWVsZCBzdGlsbCB1c2VzIHRoZSAzLjAgYmVoYXZpb3VyLgoJCSAqLwoJCWlmICggalF1ZXJ5LmJyb3dzZXIubW96aWxsYSB8fCBqUXVlcnkuYnJvd3Nlci5vcGVyYSApCgkJewoJCQlqUXVlcnkoZG9jdW1lbnQpLmJpbmQoICJrZXlwcmVzcyIsIF9mbktleSApOwoJCX0KCQllbHNlCgkJewoJCQlqUXVlcnkoZG9jdW1lbnQpLmJpbmQoICJrZXlkb3duIiwgX2ZuS2V5ICk7CgkJfQoJCQoJCWlmICggX29EYXRhdGFibGUgKQoJCXsKCQkJalF1ZXJ5KCd0Ym9keSB0ZCcsIF9vRGF0YXRhYmxlLmZuU2V0dGluZ3MoKS5uVGFibGUpLmxpdmUoICdjbGljaycsIF9mbkNsaWNrICk7CgkJfQoJCWVsc2UKCQl7CgkJCWpRdWVyeSgndGQnLCBfbkJvZHkpLmxpdmUoICdjbGljaycsIF9mbkNsaWNrICk7CgkJfQoJCQoJCS8qIExvb3NlIHRhYmxlIGZvY3VzIHdoZW4gY2xpY2sgb3V0c2lkZSB0aGUgdGFibGUgKi8KCQlqUXVlcnkoZG9jdW1lbnQpLmNsaWNrKCBmdW5jdGlvbihlKSB7CgkJCXZhciBuVGFyZ2V0ID0gZS50YXJnZXQ7CgkJCXZhciBiVGFibGVDbGljayA9IGZhbHNlOwoJCQl3aGlsZSAoIG5UYXJnZXQgKQoJCQl7CgkJCQlpZiAoIG5UYXJnZXQgPT0gb0luaXQudGFibGUgKQoJCQkJewoJCQkJCWJUYWJsZUNsaWNrID0gdHJ1ZTsKCQkJCQlicmVhazsKCQkJCX0KCQkJCW5UYXJnZXQgPSBuVGFyZ2V0LnBhcmVudE5vZGU7CgkJCX0KCQkJaWYgKCAhYlRhYmxlQ2xpY2sgKQoJCQl7CgkJCQlfZm5CbHVyKCk7CgkJCX0KCQl9ICk7Cgl9CgkKCS8qIEluaXRpYWxpc2Ugb3VyIG5ldyBvYmplY3QgKi8KCV9mbkluaXQoIG9Jbml0LCB0aGlzICk7Cn0K]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/KeyTable/js/KeyTable.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogRmlsZTogICAgICAgIEtleVRhYmxlLm1pbi5qcwogKiBWZXJzaW9uOiAgICAgMS4xLjcKICogQXV0aG9yOiAgICAgIEFsbGFuIEphcmRpbmUgKHd3dy5zcHJ5bWVkaWEuY28udWspCiAqIAogKiBDb3B5cmlnaHQgMjAwOS0yMDExIEFsbGFuIEphcmRpbmUsIGFsbCByaWdodHMgcmVzZXJ2ZWQuCiAqCiAqIFRoaXMgc291cmNlIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZSwgdW5kZXIgZWl0aGVyIHRoZSBHUEwgdjIgbGljZW5zZSBvciBhCiAqIEJTRCAoMyBwb2ludCkgc3R5bGUgbGljZW5zZSwgYXMgc3VwcGxpZWQgd2l0aCB0aGlzIHNvZnR3YXJlLgogKiAKICogVGhpcyBzb3VyY2UgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgCiAqIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIAogKiBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBsaWNlbnNlIGZpbGVzIGZvciBkZXRhaWxzLgogKi8KZnVuY3Rpb24gS2V5VGFibGUobil7ZnVuY3Rpb24gRyhhKXtyZXR1cm4gZnVuY3Rpb24oZCxjLGopeyhudWxsPT09ZHx8Im51bWJlciI9PXR5cGVvZiBkKSYmKG51bGw9PT1jfHwibnVtYmVyIj09dHlwZW9mIGMpJiYiZnVuY3Rpb24iPT10eXBlb2Ygaj9pW2FdLnB1c2goe3g6ZCx5OmMsZm46an0pOiJvYmplY3QiPT10eXBlb2YgZCYmImZ1bmN0aW9uIj09dHlwZW9mIGM/KGQ9QShkKSxpW2FdLnB1c2goe3g6ZFswXSx5OmRbMV0sZm46Y30pKTphbGVydCgiVW5oYW5kYWJsZSBldmVudCB0eXBlIHdhcyBhZGRlZDogeCIrZCsiICB5OiIrYysiICB6OiIrail9fWZ1bmN0aW9uIEgoYSl7cmV0dXJuIGZ1bmN0aW9uKGQsYyxqKXsobnVsbD09PWR8fCJudW1iZXIiPT10eXBlb2YgZCkmJihudWxsPT09Y3x8Im51bWJlciI9PXR5cGVvZiBjKT8iZnVuY3Rpb24iPT10eXBlb2Ygaj93KGEsZCxjLGopOncoYSxkLGMpOiJvYmplY3QiPT10eXBlb2YgZD8oZD1BKGQpLCJmdW5jdGlvbiI9PXR5cGVvZiBjPwp3KGEsZFswXSxkWzFdLGMpOncoYSxkWzBdLGRbMV0pKTphbGVydCgiVW5oYW5kYWJsZSBldmVudCB0eXBlIHdhcyByZW1vdmVkOiB4IitkKyIgIHk6IitjKyIgIHo6IitqKX19ZnVuY3Rpb24gdyhhLGQsYyxqKXtmb3IodmFyIGI9MCxlPTAsZz1pW2FdLmxlbmd0aDtlPGctYjtlKyspaWYoInVuZGVmaW5lZCIhPXR5cGVvZiBqKWlbYV1bZS1iXS54PT1kJiYoaVthXVtlLWJdLnk9PWMmJmlbYV1bZS1iXS5mbj09aikmJihpW2FdLnNwbGljZShlLWIsMSksYisrKTtlbHNlIGlmKGlbYV1bZS1iXS54PT1kJiZpW2FdW2UtYl0ueT09YylyZXR1cm4gaVthXS5zcGxpY2UoZSwxKSwxO3JldHVybiBifWZ1bmN0aW9uIHgoYSxkLGMpe2Zvcih2YXIgYj0wLGE9aVthXSxoPTA7aDxhLmxlbmd0aDtoKyspaWYoYVtoXS54PT1kJiZhW2hdLnk9PWN8fG51bGw9PT1hW2hdLngmJmFbaF0ueT09Y3x8YVtoXS54PT1kJiZudWxsPT09YVtoXS55fHxudWxsPT09YVtoXS54JiZudWxsPT09YVtoXS55KWFbaF0uZm4odChkLApjKSxkLGMpLGIrKztyZXR1cm4gYn1mdW5jdGlvbiBsKGEsZCl7aWYociE9YSl7InVuZGVmaW5lZCI9PXR5cGVvZiBkJiYoZD0hMCk7bnVsbCE9PXImJkIocik7alF1ZXJ5KGEpLmFkZENsYXNzKHUpO2pRdWVyeShhKS5wYXJlbnQoKS5hZGRDbGFzcyh1KTt2YXIgYztpZihrKXtjPWsuZm5TZXR0aW5ncygpO2Zvcih2YXIgYj1DKGEpWzFdLGg9bztiPj1jLmZuRGlzcGxheUVuZCgpOykwPD1jLl9pRGlzcGxheUxlbmd0aD9jLl9pRGlzcGxheVN0YXJ0K2MuX2lEaXNwbGF5TGVuZ3RoPGMuZm5SZWNvcmRzRGlzcGxheSgpJiYoYy5faURpc3BsYXlTdGFydCs9Yy5faURpc3BsYXlMZW5ndGgpOmMuX2lEaXNwbGF5U3RhcnQ9MCxrLm9BcGkuX2ZuQ2FsY3VsYXRlRW5kKGMpO2Zvcig7YjxjLl9pRGlzcGxheVN0YXJ0OyljLl9pRGlzcGxheVN0YXJ0PTA8PWMuX2lEaXNwbGF5TGVuZ3RoP2MuX2lEaXNwbGF5U3RhcnQtYy5faURpc3BsYXlMZW5ndGg6MCwwPmMuX2lEaXNwbGF5U3RhcnQmJihjLl9pRGlzcGxheVN0YXJ0PQowKSxrLm9BcGkuX2ZuQ2FsY3VsYXRlRW5kKGMpO2sub0FwaS5fZm5EcmF3KGMpO289aH1iPUEoYSk7cj1hO209YlswXTtnPWJbMV07dmFyIGUsaSxsLG4sZjtpZihkKXtlPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7Yj1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg7aT1kb2N1bWVudC5ib2R5LnNjcm9sbFRvcHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDtoPWRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQ7bD1hLm9mZnNldEhlaWdodDtuPWEub2Zmc2V0V2lkdGg7Zj1hO3ZhciBwPTAscT0wO2lmKGYub2Zmc2V0UGFyZW50KXtwPWYub2Zmc2V0TGVmdDtxPWYub2Zmc2V0VG9wO2ZvcihmPWYub2Zmc2V0UGFyZW50O2Y7KXArPWYub2Zmc2V0TGVmdCxxKz1mLm9mZnNldFRvcCxmPWYub2Zmc2V0UGFyZW50fWY9W3AscV07aWYoayYmInVuZGVmaW5lZCIhPXR5cGVvZiBjLm9TY3JvbGwmJgooIiIhPT1jLm9TY3JvbGwuc1h8fCIiIT09Yy5vU2Nyb2xsLnNZKSlmWzFdLT0kKGMublRhYmxlLnBhcmVudE5vZGUpLnNjcm9sbFRvcCgpLGZbMF0tPSQoYy5uVGFibGUucGFyZW50Tm9kZSkuc2Nyb2xsTGVmdCgpO2ZbMV0rbD5pK2U/KGU9ZlsxXStsLWUsZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcD1lLGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wPWUpOmZbMV08aSYmKGU9ZlsxXSxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wPWUsZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A9ZSk7ZlswXStuPmgrYj8oYj1mWzBdK24tYixkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdD1iLGRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdD1iKTpmWzBdPGgmJihiPWZbMF0sZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQ9Yixkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQ9Yil9aWYoayYmInVuZGVmaW5lZCIhPXR5cGVvZiBjLm9TY3JvbGwmJigiIiE9PQpjLm9TY3JvbGwuc1h8fCIiIT09Yy5vU2Nyb2xsLnNZKSkoYz1jLm5UYWJsZS5wYXJlbnROb2RlLGU9Yy5jbGllbnRIZWlnaHQsYj1jLmNsaWVudFdpZHRoLGk9Yy5zY3JvbGxUb3AsaD1jLnNjcm9sbExlZnQsbD1hLm9mZnNldEhlaWdodCxuPWEub2Zmc2V0V2lkdGgsYS5vZmZzZXRUb3ArbD5lK2k/Yy5zY3JvbGxUb3A9YS5vZmZzZXRUb3ArbC1lOmEub2Zmc2V0VG9wPGkmJihjLnNjcm9sbFRvcD1hLm9mZnNldFRvcCksYS5vZmZzZXRMZWZ0K24+YitoKT9jLnNjcm9sbExlZnQ9YS5vZmZzZXRMZWZ0K24tYjphLm9mZnNldExlZnQ8aCYmKGMuc2Nyb2xsTGVmdD1hLm9mZnNldExlZnQpO298fChvPSEwKTt4KCJmb2N1cyIsbSxnKX19ZnVuY3Rpb24geSgpe0Iocik7cj1nPW09bnVsbDtvPSExfWZ1bmN0aW9uIEIoYSl7alF1ZXJ5KGEpLnJlbW92ZUNsYXNzKHUpO2pRdWVyeShhKS5wYXJlbnQoKS5yZW1vdmVDbGFzcyh1KTt4KCJibHVyIixtLGcpfWZ1bmN0aW9uIEQoKXtmb3IodmFyIGE9CnRoaXM7IlREIiE9YS5ub2RlTmFtZTspYT1hLnBhcmVudE5vZGU7bChhKTtvfHwobz0hMCl9ZnVuY3Rpb24gRShhKXtpZihGLmJsb2NrfHwhb3x8YS5tZXRhS2V5fHxhLmFsdEtleXx8YS5jdHJsS2V5KXJldHVybiEwO3ZhciBiO2I9di5nZXRFbGVtZW50c0J5VGFnTmFtZSgidHIiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGQiKS5sZW5ndGg7dmFyIGM7aWYoayl7Yz1rLmZuU2V0dGluZ3MoKS5haURpc3BsYXkubGVuZ3RoO3ZhciBqPUMocik7aWYobnVsbD09PWopcmV0dXJuO209alswXTtnPWpbMV19ZWxzZSBjPXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRyIikubGVuZ3RoO2o9OT09YS5rZXlDb2RlJiZhLnNoaWZ0S2V5Py0xOmEua2V5Q29kZTtzd2l0Y2goail7Y2FzZSAxMzpyZXR1cm4gYS5wcmV2ZW50RGVmYXVsdCgpLGEuc3RvcFByb3BhZ2F0aW9uKCkseCgiYWN0aW9uIixtLGcpLCEwO2Nhc2UgMjc6aWYoIXgoImVzYyIsbSxnKSl7eSgpO3JldHVybn1hPW07Yj1nO2JyZWFrOwpjYXNlIC0xOmNhc2UgMzc6aWYoMDxtKWE9bS0xLGI9ZztlbHNlIGlmKDA8ZylhPWItMSxiPWctMTtlbHNlIHJldHVybi0xPT1qJiZ6PyhxPSEwLHAuZm9jdXMoKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cT0hMX0sMCksbz0hMSx5KCksITApOiExO2JyZWFrO2Nhc2UgMzg6aWYoMDxnKWE9bSxiPWctMTtlbHNlIHJldHVybiExO2JyZWFrO2Nhc2UgOTpjYXNlIDM5OmlmKG08Yi0xKWE9bSsxLGI9ZztlbHNlIGlmKGc8Yy0xKWE9MCxiPWcrMTtlbHNlIHJldHVybiA5PT1qJiZ6PyhxPSEwLHAuZm9jdXMoKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cT0hMX0sMCksbz0hMSx5KCksITApOiExO2JyZWFrO2Nhc2UgNDA6aWYoZzxjLTEpYT1tLGI9ZysxO2Vsc2UgcmV0dXJuITE7YnJlYWs7ZGVmYXVsdDpyZXR1cm4hMH1sKHQoYSxiKSk7cmV0dXJuITF9ZnVuY3Rpb24gdChhLGIpe2lmKGspe3ZhciBjPWsuZm5TZXR0aW5ncygpO3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgYy5hb0RhdGFbYy5haURpc3BsYXlbYl1dPwpjLmFvRGF0YVtjLmFpRGlzcGxheVtiXV0ublRyLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0ZCIpW2FdOm51bGx9cmV0dXJuIGpRdWVyeSgidHI6ZXEoIitiKyIpPnRkOmVxKCIrYSsiKSIsdilbMF19ZnVuY3Rpb24gQShhKXtpZihrKXt2YXIgYj1rLmZuU2V0dGluZ3MoKTtyZXR1cm5balF1ZXJ5KCJ0ZCIsYS5wYXJlbnROb2RlKS5pbmRleChhKSxqUXVlcnkoInRyIixhLnBhcmVudE5vZGUucGFyZW50Tm9kZSkuaW5kZXgoYS5wYXJlbnROb2RlKStiLl9pRGlzcGxheVN0YXJ0XX1yZXR1cm5balF1ZXJ5KCJ0ZCIsYS5wYXJlbnROb2RlKS5pbmRleChhKSxqUXVlcnkoInRyIixhLnBhcmVudE5vZGUucGFyZW50Tm9kZSkuaW5kZXgoYS5wYXJlbnROb2RlKV19ZnVuY3Rpb24gQyhhKXtmb3IodmFyIGI9ay5mblNldHRpbmdzKCksYz0wLGc9Yi5haURpc3BsYXkubGVuZ3RoO2M8ZztjKyspZm9yKHZhciBoPWIuYW9EYXRhW2IuYWlEaXNwbGF5W2NdXS5uVHIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRkIiksCmU9MCxpPWgubGVuZ3RoO2U8aTtlKyspaWYoaFtlXT09YSlyZXR1cm5bZSxjXTtyZXR1cm4gbnVsbH10aGlzLmJsb2NrPSExO3RoaXMuZXZlbnQ9e3JlbW92ZTp7fX07dGhpcy5mbkdldEN1cnJlbnRQb3NpdGlvbj1mdW5jdGlvbigpe3JldHVyblttLGddfTt0aGlzLmZuR2V0Q3VycmVudERhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gci5pbm5lckhUTUx9O3RoaXMuZm5HZXRDdXJyZW50VEQ9ZnVuY3Rpb24oKXtyZXR1cm4gcn07dGhpcy5mblNldFBvc2l0aW9uPWZ1bmN0aW9uKGEsYil7Im9iamVjdCI9PXR5cGVvZiBhJiZhLm5vZGVOYW1lP2woYSk6bCh0KGEsYikpfTt2YXIgdj1udWxsLHI9bnVsbCxtPW51bGwsZz1udWxsLEY9bnVsbCx1PSJmb2N1cyIsbz0hMSxpPXthY3Rpb246W10sZXNjOltdLGZvY3VzOltdLGJsdXI6W119LGs9bnVsbCx6LHAscT0hMSxzO2ZvcihzIGluIGkpcyYmKHRoaXMuZXZlbnRbc109RyhzKSx0aGlzLmV2ZW50LnJlbW92ZVtzXT1IKHMpKTt2YXIgYj1uLEY9dGhpczsKInVuZGVmaW5lZCI9PXR5cGVvZiBiJiYoYj17fSk7InVuZGVmaW5lZCI9PXR5cGVvZiBiLmZvY3VzJiYoYi5mb2N1cz1bMCwwXSk7InVuZGVmaW5lZCI9PXR5cGVvZiBiLnRhYmxlP2IudGFibGU9alF1ZXJ5KCJ0YWJsZS5LZXlUYWJsZSIpWzBdOiQoYi50YWJsZSkuYWRkQ2xhc3MoIktleVRhYmxlIik7InVuZGVmaW5lZCIhPXR5cGVvZiBiLmZvY3VzQ2xhc3MmJih1PWIuZm9jdXNDbGFzcyk7InVuZGVmaW5lZCIhPXR5cGVvZiBiLmRhdGF0YWJsZSYmKGs9Yi5kYXRhdGFibGUpOyJ1bmRlZmluZWQiPT10eXBlb2YgYi5pbml0U2Nyb2xsJiYoYi5pbml0U2Nyb2xsPSEwKTsidW5kZWZpbmVkIj09dHlwZW9mIGIuZm9ybSYmKGIuZm9ybT0hMSk7ej1iLmZvcm07dj1iLnRhYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpWzBdO3o/KG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikscD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLG4uc3R5bGUuaGVpZ2h0PSIxcHgiLApuLnN0eWxlLndpZHRoPSIwcHgiLG4uc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsInVuZGVmaW5lZCIhPXR5cGVvZiBiLnRhYkluZGV4JiYocC50YWJJbmRleD1iLnRhYkluZGV4KSxuLmFwcGVuZENoaWxkKHApLGIudGFibGUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobixiLnRhYmxlLm5leHRTaWJsaW5nKSxqUXVlcnkocCkuZm9jdXMoZnVuY3Rpb24oKXtpZighcSl7bz10cnVlO3E9ZmFsc2U7dHlwZW9mIGIuZm9jdXMubm9kZU5hbWUhPSJ1bmRlZmluZWQiP2woYi5mb2N1cyxiLmluaXRTY3JvbGwpOmwodChiLmZvY3VzWzBdLGIuZm9jdXNbMV0pLGIuaW5pdFNjcm9sbCk7c2V0VGltZW91dChmdW5jdGlvbigpe3AuYmx1cigpfSwwKX19KSxvPSExKTooInVuZGVmaW5lZCIhPXR5cGVvZiBiLmZvY3VzLm5vZGVOYW1lP2woYi5mb2N1cyxiLmluaXRTY3JvbGwpOmwodChiLmZvY3VzWzBdLGIuZm9jdXNbMV0pLGIuaW5pdFNjcm9sbCksb3x8KG89ITApKTtqUXVlcnkuYnJvd3Nlci5tb3ppbGxhfHwKalF1ZXJ5LmJyb3dzZXIub3BlcmE/alF1ZXJ5KGRvY3VtZW50KS5iaW5kKCJrZXlwcmVzcyIsRSk6alF1ZXJ5KGRvY3VtZW50KS5iaW5kKCJrZXlkb3duIixFKTtrP2pRdWVyeSgidGJvZHkgdGQiLGsuZm5TZXR0aW5ncygpLm5UYWJsZSkubGl2ZSgiY2xpY2siLEQpOmpRdWVyeSgidGQiLHYpLmxpdmUoImNsaWNrIixEKTtqUXVlcnkoZG9jdW1lbnQpLmNsaWNrKGZ1bmN0aW9uKGEpe2Zvcih2YXIgYT1hLnRhcmdldCxkPWZhbHNlO2E7KXtpZihhPT1iLnRhYmxlKXtkPXRydWU7YnJlYWt9YT1hLnBhcmVudE5vZGV9ZHx8eSgpfSl9Owo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/KeyTable/js/KeyTable.min.js.gz</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/api_scrolling.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+CgkJPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiB0eXBlPSJpbWFnZS9pY28iIGhyZWY9Imh0dHA6Ly93d3cuZGF0YXRhYmxlcy5uZXQvZmF2aWNvbi5pY28iIC8+CgkJCgkJPHRpdGxlPkRhdGFUYWJsZXMgZXhhbXBsZTwvdGl0bGU+CgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fcGFnZS5jc3MiOwoJCQlAaW1wb3J0ICIuLi8uLi9tZWRpYS9jc3MvZGVtb190YWJsZS5jc3MiOwoJCQlAaW1wb3J0ICJtZWRpYS9jc3MvZGF0YVRhYmxlcy5zY3JvbGxlci5jc3MiOwoJCTwvc3R5bGU+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGxhbmd1YWdlPSJqYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGxhbmd1YWdlPSJqYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5kYXRhVGFibGVzLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvZGF0YVRhYmxlcy5zY3JvbGxlci5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KCQkJJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CgkJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJCSJzU2Nyb2xsWSI6ICIyMDBweCIsCgkJCQkJInNBamF4U291cmNlIjogIm1lZGlhL2RhdGEvMjUwMC50eHQiLAoJCQkJCSJzRG9tIjogImZydGlTIiwKCQkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCQkiZm5Jbml0Q29tcGxldGUiOiBmdW5jdGlvbiAoKSB7CgkJCQkJCXRoaXMuZm5TZXR0aW5ncygpLm9TY3JvbGxlci5mblNjcm9sbFRvUm93KCAxMDAwICk7CgkJCQkJfQoJCQkJfSApOwoJCQl9ICk7CgkJPC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keSBpZD0iZHRfZXhhbXBsZSI+CgkJPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0id2lkdGg6OTgwcHgiPgoJCQk8ZGl2IGNsYXNzPSJmdWxsX3dpZHRoIGJpZyI+CgkJCQlTY3JvbGxlciBBUEkgZXhhbXBsZQoJCQk8L2Rpdj4KCQkJCgkJCTxoMT5QcmVhbWJsZTwvaDE+CgkJCTxwPlRoaXMgZXhhbXBsZSBzaG93cyBhIHRyaXZpYWwgdXNlIG9mIHRoZSBTY3JvbGxlciBBUEkgdG8gc2Nyb2xsIHRoZSB0YWJsZSB0byByb3cgMTAwMCBvbmNlIHRoZSB0YWJsZSBoYXMgYmVlbiBsb2FkZWQuIEFueSBudW1iZXIgY291bGQgYmUgdXNlZCBoZXJlLCBhbmQgYSBzbWFsbCBhbmltYXRlZCBlZmZlY3QgaXMgdXNlZCB0byBwcm92aWRlIHZpc3VhbCBmZWVkYmFjayB0byB0aGUgdXNlciAodGhpcyBjYW4gYmUgZGlzYWJsZWQgYnkgcGFzc2VkIGZhbHNlIGFzIGEgc2Vjb25kIHBhcmFtZXRlciB0byBmblNjcm9sbFRvUm93KS48L3A+CgkJCQoJCQk8aDE+TGl2ZSBleGFtcGxlPC9oMT4KCQkJPGRpdiBpZD0iZGVtbyI+Cjx0YWJsZSBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIGJvcmRlcj0iMCIgY2xhc3M9ImRpc3BsYXkiIGlkPSJleGFtcGxlIj4KCTx0aGVhZD4KCQk8dHI+CgkJCTx0aD5JRDwvdGg+CgkJCTx0aD5GaXJzdCBuYW1lPC90aD4KCQkJPHRoPkxhc3QgbmFtZTwvdGg+CgkJCTx0aD5aSVA8L3RoPgoJCQk8dGggd2lkdGg9IjMzJSI+Q291bnRyeTwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+CjwvdGFibGU+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgoJCQkKCQkJCgkJCTxoMT5Jbml0aWFsaXNhdGlvbiBjb2RlPC9oMT4KCQkJPHByZT4kKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNTY3JvbGxZIjogIjIwMHB4IiwKCQkic0FqYXhTb3VyY2UiOiAibWVkaWEvZGF0YS8yNTAwLnR4dCIsCgkJInNEb20iOiAiZnJ0aVMiLAoJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCSJmbkluaXRDb21wbGV0ZSI6IGZ1bmN0aW9uICgpIHsKCQkJdGhpcy5mblNldHRpbmdzKCkub1Njcm9sbGVyLmZuU2Nyb2xsVG9Sb3coIDEwMDAgKTsKCQl9Cgl9ICk7Cn0gKTs8L3ByZT4KCQkJCgkJCQoJCQk8aDE+T3RoZXIgZXhhbXBsZXM8L2gxPgoJCQk8ZGl2IGNsYXNzPSJkZW1vX2xpbmtzIj4KCQkJCTx1bD4KCQkJCQk8bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+QmFzaWMgaW5pdGlhbGlzYXRpb24gb2YgU2Nyb2xsZXI8L2E+PC9saT4KCQkJCQk8bGk+PGEgaHJlZj0ic3RhdGVfc2F2aW5nLmh0bWwiPlN0YXRlIHNhdmluZzwvYT48L2xpPgoJCQkJCTxsaT48YSBocmVmPSJhcGlfc2Nyb2xsaW5nLmh0bWwiPkFQSSAtIHByYWdtYXRpY2FsbHkgbW92ZSB0byBhIHJvdzwvYT48L2xpPgoJCQkJCTxsaT48YSBocmVmPSJzZXJ2ZXItc2lkZV9wcm9jZXNzaW5nLmh0bWwiPlNlcnZlci1zaWRlIHByb2Nlc3Npbmcgd2l0aCBTY3JvbGxlcjwvYT48L2xpPgoJCQkJCTxsaT48YSBocmVmPSJsYXJnZV9qc19zb3VyY2UuaHRtbCI+NTAnMDAwIHJvd3MgaW4gYSB0YWJsZSAtIGNsaWVudC1zaWRlIGdlbmVyYXRlZCBkYXRhPC9hPjwvbGk+CgkJCQk8L3VsPgoJCQk8L2Rpdj4KCQkJCgkJPC9kaXY+Cgk8L2JvZHk+CjwvaHRtbD4=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+CgkJPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiB0eXBlPSJpbWFnZS9pY28iIGhyZWY9Imh0dHA6Ly93d3cuZGF0YXRhYmxlcy5uZXQvZmF2aWNvbi5pY28iIC8+CgkJCgkJPHRpdGxlPkRhdGFUYWJsZXMgZXhhbXBsZTwvdGl0bGU+CgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fcGFnZS5jc3MiOwoJCQlAaW1wb3J0ICIuLi8uLi9tZWRpYS9jc3MvZGVtb190YWJsZS5jc3MiOwoJCQlAaW1wb3J0ICJtZWRpYS9jc3MvZGF0YVRhYmxlcy5zY3JvbGxlci5jc3MiOwoJCTwvc3R5bGU+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGxhbmd1YWdlPSJqYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGxhbmd1YWdlPSJqYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5kYXRhVGFibGVzLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvZGF0YVRhYmxlcy5zY3JvbGxlci5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KCQkJJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CgkJCQl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCQkic1Njcm9sbFkiOiAiMTkycHgiLAoJCQkJCSJzQWpheFNvdXJjZSI6ICJtZWRpYS9kYXRhLzI1MDAudHh0IiwKCQkJCQkic0RvbSI6ICJmcnRpUyIsCgkJCQkJImJEZWZlclJlbmRlciI6IHRydWUKCQkJCX0gKTsKCQkJfSApOwoJCTwvc2NyaXB0PgoJPC9oZWFkPgoJPGJvZHkgaWQ9ImR0X2V4YW1wbGUiPgoJCTxkaXYgaWQ9ImNvbnRhaW5lciIgc3R5bGU9IndpZHRoOjk4MHB4Ij4KCQkJPGRpdiBjbGFzcz0iZnVsbF93aWR0aCBiaWciPgoJCQkJU2Nyb2xsZXIgYmFzaWMgaW5pdGlhbGlzYXRpb24gZXhhbXBsZQoJCQk8L2Rpdj4KCQkJCgkJCTxoMT5QcmVhbWJsZTwvaDE+CgkJCTxwPlNjcm9sbGVyIGlzIGEgcGx1Zy1pbiBmb3IgRGF0YVRhYmxlcyB3aGljaCBlbmhhbmNlcyB0aGUgImluZmluaXRlIHNjcm9sbGluZyIgZmVhdHVyZSB0aGF0IERhdGFUYWJsZXMgaGFzIGJ1aWx0LWluIHRvIG1ha2UgdGhlIHNjcm9sbGluZyBmZWVsIG1vcmUgbmF0dXJhbC4gVGhlIHNjcm9sbGluZyBib3ggc2hvd24gb24gdGhlIHBhZ2UgaXMgdGhlIGZ1bGwgaGVpZ2h0IG9mIHRoZSBkcmF3biB0YWJsZSwgYnV0IGEgdmlydHVhbCByZW5kZXJpbmcgdGVjaG5pcXVlIGlzIHVzZWQgdG8gb25seSByZW5kZXIgdGhlIHBhcnQgb2YgdGhlIHRhYmxlIHRoYXQgaXMgYWN0dWFsbHkgdmlld2FibGUgaW4gdGhlIHNjcm9sbGluZyB2aWV3cG9ydCBpbiBvcmRlciB0byBpbmNyZWFzZSB0aGUgc3BlZWQgb2YgZHJhd2luZy48L3A+CgkJCTxwPk5vdGUgdGhhdCBTY3JvbGxlciBhc3N1bWVzIHRoYXQgYWxsIHJvd3MgYXJlIG9mIHRoZSBzYW1lIGhlaWdodCAoaW4gb3JkZXIgdG8gcHJlZm9ybSB0aGUgcmVxdWlyZWQgY2FsY3VsYXRpb25zLiBZb3UgY2FuIHVzZSAndGQgeyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9JyBpbiB5b3VyIENTUyB0byBlbnN1cmUgdGhhdCB0ZXh0IGluIHJvd3MgZG9lcyBub3Qgd3JhcC48L3A+CgkJCTxwPlRoaXMgZXhhbXBsZSBzaG93cyBob3cgU2Nyb2xsZXIgZm9yIERhdGFUYWJsZXMgY2FuIGJlIGluaXRpYWxpc2VkIGJ5IHNpbXBseSBpbmNsdWRpbmcgdGhlIGNoYXJhY3RlciAnUycgaW4gc0RvbSAobm90ZSB0aGF0IHRoZSAnUycgbXVzdCBjb21lIGFmdGVyIHRoZSAndCcgaW4gc0RvbSkuIERlZmVycmVkIHJlbmRlcmluZyBhbiBhbmQgQWpheCBkYXRhIHNvdXJjZSBhcmUgYWxzbyB1c2VkIGluIHRoaXMgZXhhbXBsZS48L3A+CgkJCQoJCQk8aDE+TGl2ZSBleGFtcGxlPC9oMT4KCQkJPGRpdiBpZD0iZGVtbyI+Cjx0YWJsZSBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIGJvcmRlcj0iMCIgY2xhc3M9ImRpc3BsYXkiIGlkPSJleGFtcGxlIj4KCTx0aGVhZD4KCQk8dHI+CgkJCTx0aD5JRDwvdGg+CgkJCTx0aD5GaXJzdCBuYW1lPC90aD4KCQkJPHRoPkxhc3QgbmFtZTwvdGg+CgkJCTx0aD5aSVA8L3RoPgoJCQk8dGggd2lkdGg9IjMzJSI+Q291bnRyeTwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+CjwvdGFibGU+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgoJCQkKCQkJCgkJCTxoMT5Jbml0aWFsaXNhdGlvbiBjb2RlPC9oMT4KCQkJPHByZT4kKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzU2Nyb2xsWSI6ICIyMDBweCIsCgkJInNBamF4U291cmNlIjogIm1lZGlhL2RhdGEvMjUwMC50eHQiLAoJCSJzRG9tIjogImZydGlTIiwKCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZQoJfSApOwp9ICk7PC9wcmU+CgkJCQoJCQkKCQkJPGgxPk90aGVyIGV4YW1wbGVzPC9oMT4KCQkJPGRpdiBjbGFzcz0iZGVtb19saW5rcyI+CgkJCQk8dWw+CgkJCQkJPGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkJhc2ljIGluaXRpYWxpc2F0aW9uIG9mIFNjcm9sbGVyPC9hPjwvbGk+CgkJCQkJPGxpPjxhIGhyZWY9InN0YXRlX3NhdmluZy5odG1sIj5TdGF0ZSBzYXZpbmc8L2E+PC9saT4KCQkJCQk8bGk+PGEgaHJlZj0iYXBpX3Njcm9sbGluZy5odG1sIj5BUEkgLSBwcmFnbWF0aWNhbGx5IG1vdmUgdG8gYSByb3c8L2E+PC9saT4KCQkJCQk8bGk+PGEgaHJlZj0ic2VydmVyLXNpZGVfcHJvY2Vzc2luZy5odG1sIj5TZXJ2ZXItc2lkZSBwcm9jZXNzaW5nIHdpdGggU2Nyb2xsZXI8L2E+PC9saT4KCQkJCQk8bGk+PGEgaHJlZj0ibGFyZ2VfanNfc291cmNlLmh0bWwiPjUwJzAwMCByb3dzIGluIGEgdGFibGUgLSBjbGllbnQtc2lkZSBnZW5lcmF0ZWQgZGF0YTwvYT48L2xpPgoJCQkJPC91bD4KCQkJPC9kaXY+CgkJCQoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/large_js_source.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+CgkJPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiB0eXBlPSJpbWFnZS9pY28iIGhyZWY9Imh0dHA6Ly93d3cuZGF0YXRhYmxlcy5uZXQvZmF2aWNvbi5pY28iIC8+CgkJCgkJPHRpdGxlPkRhdGFUYWJsZXMgZXhhbXBsZTwvdGl0bGU+CgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fcGFnZS5jc3MiOwoJCQlAaW1wb3J0ICIuLi8uLi9tZWRpYS9jc3MvZGVtb190YWJsZS5jc3MiOwoJCQlAaW1wb3J0ICJtZWRpYS9jc3MvZGF0YVRhYmxlcy5zY3JvbGxlci5jc3MiOwoJCTwvc3R5bGU+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGxhbmd1YWdlPSJqYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGxhbmd1YWdlPSJqYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5kYXRhVGFibGVzLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvZGF0YVRhYmxlcy5zY3JvbGxlci5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KCQkJJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CgkJCQl2YXIgYWFEYXRhID0gW107CgkJCQlmb3IgKCB2YXIgaT0wIDsgaTw1MDAwMCA7IGkrKyApIHsKCQkJCQlhYURhdGEucHVzaCggWyBpLCBpLCBpLCBpLCBpIF0gKTsKCQkJCX0KCQkJCQoJCQkJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkJInNTY3JvbGxZIjogIjIwMHB4IiwKCQkJCQkiYWFEYXRhIjogYWFEYXRhLAoJCQkJCSJzRG9tIjogImZydGlTIiwKCQkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZQoJCQkJfSApOwoJCQl9ICk7CgkJPC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keSBpZD0iZHRfZXhhbXBsZSI+CgkJPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0id2lkdGg6OTgwcHgiPgoJCQk8ZGl2IGNsYXNzPSJmdWxsX3dpZHRoIGJpZyI+CgkJCQlTY3JvbGxlciBleGFtcGxlIC0gNTAnMDAwIHJvd3MKCQkJPC9kaXY+CgkJCQoJCQk8aDE+UHJlYW1ibGU8L2gxPgoJCQk8cD5UaGlzIGV4YW1wbGUgaXMgY29tcGxldGVseSBhcnRpZmljaWFsIGluIHRoYXQgdGhlIGRhdGEgZ2VuZXJhdGVkIGlzIGNyZWF0ZWQgb24gdGhlIGNsaWVudC1zaWRlIGJ5IGp1c3QgbG9vcGluZyBhcm91bmQgYSBKYXZhc2NyaXB0IGFycmF5IGFuZCB0aGVuIHBhc3NpbmcgdGhhdCB0byBEYXRhVGFibGVzLiBIb3dldmVyLCBpdCBkb2VzIHNob3cgcXVpdGUgbmljZWx5IHRoYXQgRGF0YVRhYmxlcyBhbmQgU2Nyb2xsZXIgY2FuIGNvcGUgd2l0aCBsYXJnZSBhbW91bnRzIG9mIGRhdGEgb24gdGhlIGNsaWVudC1zaWRlIHF1aXRlIG5pY2VseS4gVHlwaWNhbGx5IGRhdGEgc3VjaCBhcyB0aGlzIHdvdWxkIGJlIEFqYXggc291cmNlZCBhbmQgc2VydmVyLXNpZGUgcHJvY2Vzc2luZyBzaG91bGQgYmUgY29uc2lkZXJlZC4gUGxlYXNlIGJlIGF3YXJlIHRoYXQgdGhlIHBlcmZvcm1hbmNlIG9mIHRoaXMgcGFnZSB3aWxsIGRlcGVuZCBvbiB5b3VyIGJyb3dzZXIgLSBmb3IgZXhhbXBsZSBJRTYgd2lsbCBjcmF3bCE8L3A+CgkJCQoJCQk8aDE+TGl2ZSBleGFtcGxlPC9oMT4KCQkJPGRpdiBpZD0iZGVtbyI+Cjx0YWJsZSBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIGJvcmRlcj0iMCIgY2xhc3M9ImRpc3BsYXkiIGlkPSJleGFtcGxlIj4KCTx0aGVhZD4KCQk8dHI+CgkJCTx0aD5Db2x1bW4gMTwvdGg+CgkJCTx0aD5Db2x1bW4gMjwvdGg+CgkJCTx0aD5Db2x1bW4gMzwvdGg+CgkJCTx0aD5Db2x1bW4gNDwvdGg+CgkJCTx0aD5Db2x1bW4gNTwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+CjwvdGFibGU+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgoJCQkKCQkJCgkJCTxoMT5Jbml0aWFsaXNhdGlvbiBjb2RlPC9oMT4KCQkJPHByZT4kKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKCXZhciBhYURhdGEgPSBbXTsKCWZvciAoIHZhciBpPTEgOyBpJmx0OzUwMDAwIDsgaSsrICkgewoJCWFhRGF0YS5wdXNoKCBbIGksIGksIGksIGksIGkgXSApOwoJfQoJCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic1Njcm9sbFkiOiAiMjAwcHgiLAoJCSJhYURhdGEiOiBhYURhdGEsCgkJInNEb20iOiAiZnJ0aVMiLAoJCSJiRGVmZXJSZW5kZXIiOiB0cnVlCgl9ICk7Cn0gKTs8L3ByZT4KCQkJCgkJCQoJCQk8aDE+T3RoZXIgZXhhbXBsZXM8L2gxPgoJCQk8ZGl2IGNsYXNzPSJkZW1vX2xpbmtzIj4KCQkJCTx1bD4KCQkJCQk8bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+QmFzaWMgaW5pdGlhbGlzYXRpb24gb2YgU2Nyb2xsZXI8L2E+PC9saT4KCQkJCQk8bGk+PGEgaHJlZj0ic3RhdGVfc2F2aW5nLmh0bWwiPlN0YXRlIHNhdmluZzwvYT48L2xpPgoJCQkJCTxsaT48YSBocmVmPSJhcGlfc2Nyb2xsaW5nLmh0bWwiPkFQSSAtIHByYWdtYXRpY2FsbHkgbW92ZSB0byBhIHJvdzwvYT48L2xpPgoJCQkJCTxsaT48YSBocmVmPSJzZXJ2ZXItc2lkZV9wcm9jZXNzaW5nLmh0bWwiPlNlcnZlci1zaWRlIHByb2Nlc3Npbmcgd2l0aCBTY3JvbGxlcjwvYT48L2xpPgoJCQkJCTxsaT48YSBocmVmPSJsYXJnZV9qc19zb3VyY2UuaHRtbCI+NTAnMDAwIHJvd3MgaW4gYSB0YWJsZSAtIGNsaWVudC1zaWRlIGdlbmVyYXRlZCBkYXRhPC9hPjwvbGk+CgkJCQk8L3VsPgoJCQk8L2Rpdj4KCQkJCgkJPC9kaXY+Cgk8L2JvZHk+CjwvaHRtbD4=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/media/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/media/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/media/css/dataTables.scroller.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ci8qCiAqIE5hbWVzcGFjZTogRFRTIChEYXRhVGFibGVzIFNjcm9sbGVyKQogKi8KCmRpdi5EVFMgdGJvZHkgdGgsCmRpdi5EVFMgdGJvZHkgdGQgewoJd2hpdGUtc3BhY2U6IG5vd3JhcDsKfQoKZGl2LkRUUyB0Ym9keSB0ci5ldmVuIHsKCWJhY2tncm91bmQtY29sb3I6IHdoaXRlOwp9CgpkaXYuRFRTIGRpdi5EVFNfTG9hZGluZyB7Cglwb3NpdGlvbjogYWJzb2x1dGU7Cgl0b3A6IDUwJTsKCWxlZnQ6IDUwJTsKCXdpZHRoOiAyMDBweDsKCWhlaWdodDogMjBweDsKCW1hcmdpbi10b3A6IC0yMHB4OwoJbWFyZ2luLWxlZnQ6IC0xMDBweDsKCXotaW5kZXg6IDE7CgoJYm9yZGVyOiAxcHggc29saWQgIzk5OTsKCXBhZGRpbmc6IDIwcHggMDsKCXRleHQtYWxpZ246IGNlbnRlcjsKCWJhY2tncm91bmQtY29sb3I6IHdoaXRlOwoJYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOwp9CgpkaXYuRFRTIGRpdi5kYXRhVGFibGVzX3Njcm9sbEhlYWQgewoJYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7Cn0KCmRpdi5EVFMgZGl2LmRhdGFUYWJsZXNfc2Nyb2xsQm9keSB7Cgl6LWluZGV4OiAyOwp9CgpkaXYuRFRTIGRpdi5kYXRhVGFibGVzX3Njcm9sbCB7CgliYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9sb2FkaW5nLWJhY2tncm91bmQucG5nJykgcmVwZWF0IDAgMDsKfQoK]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/media/data/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/media/data/2500.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyAiYWFEYXRhIjogWwoJWyAiMSIsICJBcm1hbmQiLCAiV2FycmVuIiwgIjU2MDQ1IiwgIlRhaXdhbiwgUHJvdmluY2Ugb2YgQ2hpbmEiIF0sCglbICIyIiwgIlhlbm9zIiwgIlNhbGFzIiwgIjcxMDkwIiwgIkxpYmVyaWEiIF0sCglbICIzIiwgIlZpcmdpbmlhIiwgIldoaXRha2VyIiwgIjYyNzIzIiwgIk5pY2FyYWd1YSIgXSwKCVsgIjQiLCAiS2F0byIsICJQYXRyaWNrIiwgIjk3NjYyIiwgIlBhbGF1IiBdLAoJWyAiNSIsICJQZW5lbG9wZSIsICJIZW5zbGV5IiwgIjc2NjM0IiwgIkdyZWVubGFuZCIgXSwKCVsgIjYiLCAiR2VvcmdpYSIsICJFcmlja3NvbiIsICI4MTM1OCIsICJCb2xpdmlhIiBdLAoJWyAiNyIsICJTaGFkIiwgIlBlbmEiLCAiMjA2MDAiLCAiUGFsZXN0aW5pYW4gVGVycml0b3J5LCBPY2N1cGllZCIgXSwKCVsgIjgiLCAiVGFuaXNoYSIsICJIdW1waHJleSIsICI5MzM3MSIsICJLZW55YSIgXSwKCVsgIjkiLCAiQ2xhaXJlIiwgIkVzcGlub3phIiwgIkk4UyAyUzgiLCAiUGFuYW1hIiBdLAoJWyAiMTAiLCAiUmF5YSIsICJUdWNrZXIiLCAiTzhEIDhXNyIsICJCb3Rzd2FuYSIgXSwKCVsgIjExIiwgIk90dG8iLCAiQnJpZ2dzIiwgIjU3NTkwIiwgIkFuZ3VpbGxhIiBdLAoJWyAiMTIiLCAiTG9nYW4iLCAiQnVydCIsICI1MzA0MSIsICJWZW5lenVlbGEiIF0sCglbICIxMyIsICJDb29wZXIiLCAiUGVubmluZ3RvbiIsICIzNjk5NCIsICJGcmFuY2UiIF0sCglbICIxNCIsICJLcmlzdGVuIiwgIlBldGVyc29uIiwgIjUyOTE3IiwgIlNhbyBUb21lIGFuZCBQcmluY2lwZSIgXSwKCVsgIjE1IiwgIkpvcmRhbiIsICJWZWxhc3F1ZXoiLCAiMDg4ODQiLCAiU3dpdHplcmxhbmQiIF0sCglbICIxNiIsICJaZWxkYSIsICJGcmVlbWFuIiwgIkY5SCAxSjkiLCAiSG9seSBTZWUgKFZhdGljYW4gQ2l0eSBTdGF0ZSkiIF0sCglbICIxNyIsICJNYXJ5IiwgIlBhY2hlY28iLCAiQTdZIDZYOSIsICJOaWdlciIgXSwKCVsgIjE4IiwgIlRpZ2VyIiwgIlJvYmxlcyIsICI0NDUzMyIsICJNYWxheXNpYSIgXSwKCVsgIjE5IiwgIlplbGVuaWEiLCAiQnVja25lciIsICJROE4gNkU1IiwgIk1hbGF3aSIgXSwKCVsgIjIwIiwgIkNvYnkiLCAiSm9obnN0b24iLCAiTjZJIDJPOSIsICJSd2FuZGEiIF0sCglbICIyMSIsICJHaWxsaWFuIiwgIlN0cmlja2xhbmQiLCAiMTIyNTgiLCAiQ29vayBJc2xhbmRzIiBdLAoJWyAiMjIiLCAiQWxmcmVkYSIsICJNY2JyaWRlIiwgIks1QSAzQjYiLCAiTmlnZXJpYSIgXSwKCVsgIjIzIiwgIkxhaXRoIiwgIkZvcmQiLCAiMTkwNzIiLCAiQ3plY2ggUmVwdWJsaWMiIF0sCglbICIyNCIsICJBdXR1bW4iLCAiQmFydG9uIiwgIlU5RCA5RjQiLCAiQW5nb2xhIiBdLAoJWyAiMjUiLCAiTmFkaW5lIiwgIkJyaXR0IiwgIkc0VSA4TDAiLCAiTGllY2h0ZW5zdGVpbiIgXSwKCVsgIjI2IiwgIlhhdmllcmEiLCAiSGFydCIsICJUMU4gN0QyIiwgIk1hbGkiIF0sCglbICIyNyIsICJOZWlsIiwgIlBhZ2UiLCAiVDNFIDlGNCIsICJLb3JlYSIgXSwKCVsgIjI4IiwgIlJvc2UiLCAiRnJlbmNoIiwgIkI3VCA4TTIiLCAiRnJlbmNoIFBvbHluZXNpYSIgXSwKCVsgIjI5IiwgIkFseXNzYSIsICJQb29sZSIsICJTMUwgMlQ1IiwgIlllbWVuIiBdLAoJWyAiMzAiLCAiQ2hhbnRhbGUiLCAiTHluY2giLCAiOTczMTYiLCAiVW5pdGVkIFN0YXRlcyIgXSwKCVsgIjMxIiwgIkplcm1haW5lIiwgIkRhd3NvbiIsICJBM0ggN0ExIiwgIkFtZXJpY2FuIFNhbW9hIiBdLAoJWyAiMzIiLCAiQW5uIiwgIkdpbGVzIiwgIjU0MjU4IiwgIktvcmVhIiBdLAoJWyAiMzMiLCAiSmVycnkiLCAiQ2FyciIsICIwNDkwMSIsICJTb3V0aCBHZW9yZ2lhIGFuZCBUaGUgU291dGggU2FuZHdpY2ggSXNsYW5kcyIgXSwKCVsgIjM0IiwgIkxpb25lbCIsICJIb29wZXIiLCAiNjc5NzAiLCAiQmFocmFpbiIgXSwKCVsgIjM1IiwgIkFseXNzYSIsICJIZXdpdHQiLCAiUjNLIDJWOCIsICJQYXJhZ3VheSIgXSwKCVsgIjM2IiwgIkxpc2FuZHJhIiwgIlNoZXBwYXJkIiwgIjcxODg2IiwgIlNleWNoZWxsZXMiIF0sCglbICIzNyIsICJLeWxhbiIsICJIYXJyaXNvbiIsICI5Njc2MyIsICJJdGFseSIgXSwKCVsgIjM4IiwgIkthaXRsaW4iLCAiTW9udGdvbWVyeSIsICJWNUsgNVU4IiwgIk5pZ2VyIiBdLAoJWyAiMzkiLCAiSGVpZGkiLCAiQm95ZCIsICJCM0MgOE05IiwgIlBhcHVhIE5ldyBHdWluZWEiIF0sCglbICI0MCIsICJSaW5haCIsICJDYXNlIiwgIlc3TSA1SzEiLCAiTWFsaSIgXSwKCVsgIjQxIiwgIlRoYWRkZXVzIiwgIk1heW5hcmQiLCAiRTRWIDZXNiIsICJFZ3lwdCIgXSwKCVsgIjQyIiwgIkxhY290YSIsICJSYXkiLCAiVDNKIDhEOCIsICJVbml0ZWQgS2luZ2RvbSIgXSwKCVsgIjQzIiwgIk9seW1waWEiLCAiQ29ydGV6IiwgIkY4QyA3STUiLCAiUGFsYXUiIF0sCglbICI0NCIsICJXZW5keSIsICJSb2phcyIsICJOOFQgNEs2IiwgIkNvb2sgSXNsYW5kcyIgXSwKCVsgIjQ1IiwgIkFyZGVuIiwgIktlbGxleSIsICJWOU4gMlQ2IiwgIkluZGlhIiBdLAoJWyAiNDYiLCAiQ29sb3JhZG8iLCAiTGluZHNleSIsICI5NjcwMyIsICJDaGFkIiBdLAoJWyAiNDciLCAiQWxpa2EiLCAiV2VhdmVyIiwgIkY2ViAxSTEiLCAiQnVsZ2FyaWEiIF0sCglbICI0OCIsICJQaG9lYmUiLCAiTWFjayIsICJFNEIgMVgyIiwgIkVsIFNhbHZhZG9yIiBdLAoJWyAiNDkiLCAiU3liaWxsIiwgIkJyaWRnZXMiLCAiWjJHIDZBMiIsICJTb21hbGlhIiBdLAoJWyAiNTAiLCAiVHJldm9yIiwgIkxhcnNlbiIsICJLMVIgM0I5IiwgIlVuaXRlZCBBcmFiIEVtaXJhdGVzIiBdLAoJWyAiNTEiLCAiTWF5YSIsICJCYXR0bGUiLCAiNzA4ODEiLCAiQXVzdHJhbGlhIiBdLAoJWyAiNTIiLCAiQ2hhcml0eSIsICJXYWx0b24iLCAiSTRJIDVSOSIsICJTd2F6aWxhbmQiIF0sCglbICI1MyIsICJMYW5lIiwgIlNsb2FuIiwgIjc5MDc2IiwgIk5hdXJ1IiBdLAoJWyAiNTQiLCAiQ2hyaXN0b3BoZXIiLCAiV2F0c29uIiwgIjM1MTE2IiwgIlN1cmluYW1lIiBdLAoJWyAiNTUiLCAiQ2xlbWVudGluZSIsICJTaGVsdG9uIiwgIjk4MjMyIiwgIlZlbmV6dWVsYSIgXSwKCVsgIjU2IiwgIkJhc2lsIiwgIkhvb2QiLCAiSjlJIDFSMiIsICJUb25nYSIgXSwKCVsgIjU3IiwgIk1lZ2hhbiIsICJQYWNoZWNvIiwgIkg1WiA2QjEiLCAiRG9taW5pY2FuIFJlcHVibGljIiBdLAoJWyAiNTgiLCAiQnJlbm5hbiIsICJQb3R0cyIsICI1MTc0MyIsICJUdXJrZXkiIF0sCglbICI1OSIsICJMYXdyZW5jZSIsICJEdXJhbiIsICI2MzI2NiIsICJVcnVndWF5IiBdLAoJWyAiNjAiLCAiSW5hIiwgIkhlYWQiLCAiUzhQIDlKNSIsICJSb21hbmlhIiBdLAoJWyAiNjEiLCAiQ2FzdG9yIiwgIkphY29ic29uIiwgIkM5RiA2QzkiLCAiQWxiYW5pYSIgXSwKCVsgIjYyIiwgIkRhcXVhbiIsICJIb2xkZW4iLCAiMzg1NzEiLCAiSXJlbGFuZCIgXSwKCVsgIjYzIiwgIkRvbm5hIiwgIlZhbGVuY2lhIiwgIko3QiAzSTAiLCAiUG9ydHVnYWwiIF0sCglbICI2NCIsICJLZXNzaWUiLCAiUGhlbHBzIiwgIjYxMDYzIiwgIkdlb3JnaWEiIF0sCglbICI2NSIsICJEaWxsb24iLCAiR2FyY2lhIiwgIjEzNjUyIiwgIkhvbHkgU2VlIChWYXRpY2FuIENpdHkgU3RhdGUpIiBdLAoJWyAiNjYiLCAiUnVzc2VsbCIsICJTd2VlbmV5IiwgIlQ4UCAyTzYiLCAiU2FpbnQgS2l0dHMgYW5kIE5ldmlzIiBdLAoJWyAiNjciLCAiWmVsZGEiLCAiQmVyZyIsICI4NDk0NiIsICJBZmdoYW5pc3RhbiIgXSwKCVsgIjY4IiwgIkRleHRlciIsICJNYW5uIiwgIjczNTk2IiwgIlRoYWlsYW5kIiBdLAoJWyAiNjkiLCAiTWFpc2llIiwgIk1pbGxlciIsICJYM00gNkMxIiwgIlNleWNoZWxsZXMiIF0sCglbICI3MCIsICJMeW5uIiwgIk1pdGNoZWxsIiwgIk41QiAzWjkiLCAiV2FsbGlzIGFuZCBGdXR1bmEiIF0sCglbICI3MSIsICJHYXkiLCAiTWVkaW5hIiwgIjY2NjkyIiwgIkdlcm1hbnkiIF0sCglbICI3MiIsICJPbGdhIiwgIkNsYXJrIiwgIk02QiA3QjYiLCAiS3V3YWl0IiBdLAoJWyAiNzMiLCAiQnJpYW5uYSIsICJPYnJpZW4iLCAiWjZaIDVSMyIsICJCYWhyYWluIiBdLAoJWyAiNzQiLCAiRGFyaWEiLCAiQnllcnMiLCAiUjlUIDRONyIsICJHaGFuYSIgXSwKCVsgIjc1IiwgIkNoaXF1aXRhIiwgIkJhcmtlciIsICIyODQzNSIsICJJcmVsYW5kIiBdLAoJWyAiNzYiLCAiR3JheSIsICJTYWxhemFyIiwgIjU4NjE4IiwgIkNoaWxlIiBdLAoJWyAiNzciLCAiRGVsaWxhaCIsICJLaXJieSIsICI0MjgxMSIsICJPbWFuIiBdLAoJWyAiNzgiLCAiWGFudGh1cyIsICJIb2xsYW5kIiwgIkI4USA5QzQiLCAiQW50aWd1YSBhbmQgQmFyYnVkYSIgXSwKCVsgIjc5IiwgIlJldWJlbiIsICJCcmVubmFuIiwgIjQ0NjkzIiwgIkN6ZWNoIFJlcHVibGljIiBdLAoJWyAiODAiLCAiQWxkZW4iLCAiTG9uZyIsICI5NDIzNiIsICJTbG92YWtpYSIgXSwKCVsgIjgxIiwgIkJseXRoZSIsICJCZW5kZXIiLCAiMDQ4MTIiLCAiR3VhbSIgXSwKCVsgIjgyIiwgIkFpbGVlbiIsICJCdXJnZXNzIiwgIjQ3OTQyIiwgIkRqaWJvdXRpIiBdLAoJWyAiODMiLCAiWmV1cyIsICJDcmFpZyIsICI0MzAwMiIsICJOaWNhcmFndWEiIF0sCglbICI4NCIsICJKYWRlIiwgIkdhcnphIiwgIkYyWCA4RjMiLCAiTmV3IFplYWxhbmQiIF0sCglbICI4NSIsICJOb2FoIiwgIkJhcnJlcmEiLCAiSzlDIDhVMCIsICJNYWxhd2kiIF0sCglbICI4NiIsICJRdXluIiwgIlJvYmVydHNvbiIsICJIM1ggNko5IiwgIkJvc25pYSBhbmQgSGVyemVnb3ZpbmEiIF0sCglbICI4NyIsICJTZXJlbmEiLCAiQ2FicmVyYSIsICI4MzY3MSIsICJTbG92ZW5pYSIgXSwKCVsgIjg4IiwgIkNoYXJpdHkiLCAiQ2hhc2UiLCAiVDlRIDdDNCIsICJTb2xvbW9uIElzbGFuZHMiIF0sCglbICI4OSIsICJBdGhlbmEiLCAiR3JpbWVzIiwgIjYyODAxIiwgIkFydWJhIiBdLAoJWyAiOTAiLCAiTWFsbG9yeSIsICJNaWRkbGV0b24iLCAiRDJWIDFNNSIsICJJdGFseSIgXSwKCVsgIjkxIiwgIlhlbm9zIiwgIkpvbmVzIiwgIjQ2NjQyIiwgIlNpbmdhcG9yZSIgXSwKCVsgIjkyIiwgIlRhdGUiLCAiR3JlZ29yeSIsICI2NjUzOCIsICJaaW1iYWJ3ZSIgXSwKCVsgIjkzIiwgIkJsYXplIiwgIlRheWxvciIsICI3MDI4MiIsICJQYXJhZ3VheSIgXSwKCVsgIjk0IiwgIkplbmEiLCAiRHVuY2FuIiwgIjYzMDU3IiwgIkNhbWJvZGlhIiBdLAoJWyAiOTUiLCAiVGhhZGRldXMiLCAiQ2hhc2UiLCAiNjY3NjIiLCAiTmV0aGVybGFuZHMgQW50aWxsZXMiIF0sCglbICI5NiIsICJHdWluZXZlcmUiLCAiTWNnZWUiLCAiTzlHIDRTMiIsICJMZWJhbm9uIiBdLAoJWyAiOTciLCAiS2VybWl0IiwgIlJhbXNleSIsICI0MTIxNCIsICJEb21pbmljYW4gUmVwdWJsaWMiIF0sCglbICI5OCIsICJKb3NlcGhpbmUiLCAiR2FsbGFnaGVyIiwgIjA0OTYwIiwgIkZyZW5jaCBTb3V0aGVybiBUZXJyaXRvcmllcyIgXSwKCVsgIjk5IiwgIkFtZWxhIiwgIk1vcmFsZXMiLCAiTTlJIDFYNSIsICJTdWRhbiIgXSwKCVsgIjEwMCIsICJSaW5hIiwgIllhdGVzIiwgIkczVCA3TTkiLCAiRG9taW5pY2EiIF0sCglbICIxMDEiLCAiT3Jzb24iLCAiTm9ycmlzIiwgIjIxNjYwIiwgIlNpZXJyYSBMZW9uZSIgXSwKCVsgIjEwMiIsICJHcmFpZGVuIiwgIlNpbHZhIiwgIjk4MTkxIiwgIlNhaW50IEx1Y2lhIiBdLAoJWyAiMTAzIiwgIkFtYXlhIiwgIkhvb2QiLCAiNDU3NzkiLCAiSW5kaWEiIF0sCglbICIxMDQiLCAiRmF0aW1hIiwgIkZpdHpwYXRyaWNrIiwgIkk0UiA5UTgiLCAiVmlldCBOYW0iIF0sCglbICIxMDUiLCAiSnVkaXRoIiwgIlN0b2tlcyIsICI5NzU5NiIsICJTdWRhbiIgXSwKCVsgIjEwNiIsICJKYXJlZCIsICJWYXVnaG4iLCAiNzU1MjEiLCAiQmVuaW4iIF0sCglbICIxMDciLCAiTWlyYSIsICJNb3JnYW4iLCAiMzUxNjkiLCAiTWFydGluaXF1ZSIgXSwKCVsgIjEwOCIsICJXYWx0ZXIiLCAiUGVya2lucyIsICIyODYxOCIsICJTYW4gTWFyaW5vIiBdLAoJWyAiMTA5IiwgIk1lZ2FuIiwgIk1heHdlbGwiLCAiSzZYIDNKNCIsICJPbWFuIiBdLAoJWyAiMTEwIiwgIkNocmlzdGluZSIsICJDaHJpc3RlbnNlbiIsICJNN1MgOEc4IiwgIk5ldGhlcmxhbmRzIEFudGlsbGVzIiBdLAoJWyAiMTExIiwgIlRhbm5lciIsICJHdWVycmEiLCAiUzNLIDZZNSIsICJGaW5sYW5kIiBdLAoJWyAiMTEyIiwgIk1lZ2hhbiIsICJSb3dsYW5kIiwgIks3VSAzQTEiLCAiUndhbmRhIiBdLAoJWyAiMTEzIiwgIlBhdHJpY2siLCAiTWl0Y2hlbGwiLCAiVjNGIDVDNCIsICJPbWFuIiBdLAoJWyAiMTE0IiwgIkphY2tzb24iLCAiU2FuZGVycyIsICI4MzIyOSIsICJHcmVlbmxhbmQiIF0sCglbICIxMTUiLCAiT21hciIsICJTYXZhZ2UiLCAiMTQwODIiLCAiS29yZWEiIF0sCglbICIxMTYiLCAiVWxsYSIsICJMYXJzZW4iLCAiUTJQIDRMOCIsICJGcmVuY2ggU291dGhlcm4gVGVycml0b3JpZXMiIF0sCglbICIxMTciLCAiSG9wIiwgIkdhdGVzIiwgIkQ5RyA5SjQiLCAiUG9sYW5kIiBdLAoJWyAiMTE4IiwgIkFzdHJhIiwgIk1lbmRvemEiLCAiUjNEIDJIOSIsICJTYWludCBWaW5jZW50IGFuZCBUaGUgR3JlbmFkaW5lcyIgXSwKCVsgIjExOSIsICJEZW5pc2UiLCAiQ2FyZGVuYXMiLCAiNzMxMzgiLCAiU2FvIFRvbWUgYW5kIFByaW5jaXBlIiBdLAoJWyAiMTIwIiwgIk1lbG9kaWUiLCAiUm9iZXJ0cyIsICJMMUcgNEgyIiwgIkluZGlhIiBdLAoJWyAiMTIxIiwgIkNlZHJpYyIsICJKb3NlcGgiLCAiTTRWIDhPOSIsICJLb3JlYSwgUmVwdWJsaWMgb2YiIF0sCglbICIxMjIiLCAiTGluZGEiLCAiSG9ybiIsICIyNDQ2NSIsICJCb3NuaWEgYW5kIEhlcnplZ292aW5hIiBdLAoJWyAiMTIzIiwgIk1hcnkiLCAiTHlvbnMiLCAiMjIzMjQiLCAiTm9yZm9sayBJc2xhbmQiIF0sCglbICIxMjQiLCAiQ2lhcmEiLCAiTWNrbmlnaHQiLCAiMzA3ODQiLCAiQW5ndWlsbGEiIF0sCglbICIxMjUiLCAiVmF1Z2hhbiIsICJTYW50aWFnbyIsICI2NTAzNyIsICJHdXlhbmEiIF0sCglbICIxMjYiLCAiTGFtYXIiLCAiU2hlcGhlcmQiLCAiNTgwNDAiLCAiRnJhbmNlIiBdLAoJWyAiMTI3IiwgIlhhdmllciIsICJXZWJzdGVyIiwgIjY4MzIxIiwgIkFmZ2hhbmlzdGFuIiBdLAoJWyAiMTI4IiwgIkFpbnNsZXkiLCAiQmFua3MiLCAiNDY5MDIiLCAiUGFraXN0YW4iIF0sCglbICIxMjkiLCAiQWxpa2EiLCAiTG92ZSIsICJMNU8gNEIzIiwgIklyYW4sIElzbGFtaWMgUmVwdWJsaWMgb2YiIF0sCglbICIxMzAiLCAiTWFpdGUiLCAiRGlja3NvbiIsICIzNzQwNSIsICJTYWludCBLaXR0cyBhbmQgTmV2aXMiIF0sCglbICIxMzEiLCAiS2ltYmVybGV5IiwgIk1vcnJvdyIsICJGN0MgN0owIiwgIkxlYmFub24iIF0sCglbICIxMzIiLCAiRXVnZW5pYSIsICJTdGFmZm9yZCIsICIzNjI4MiIsICJOaWNhcmFndWEiIF0sCglbICIxMzMiLCAiTWlyYSIsICJHaWxsIiwgIksxVCA4VTEiLCAiVXJ1Z3VheSIgXSwKCVsgIjEzNCIsICJIZXJtYW4iLCAiRnJhbmNpcyIsICJDMkcgOEc5IiwgIk5vcnRoZXJuIE1hcmlhbmEgSXNsYW5kcyIgXSwKCVsgIjEzNSIsICJWZXJvbmljYSIsICJQZXRlcnMiLCAiNzQxNDYiLCAiQ29vayBJc2xhbmRzIiBdLAoJWyAiMTM2IiwgIkF4ZWwiLCAiQ29jaHJhbiIsICIzMjI0MCIsICJDZW50cmFsIEFmcmljYW4gUmVwdWJsaWMiIF0sCglbICIxMzciLCAiRWRhbiIsICJIb3dlIiwgIjUxODYyIiwgIk1hbGkiIF0sCglbICIxMzgiLCAiSWduYWNpYSIsICJCcnVjZSIsICJROFQgNVExIiwgIlNhbyBUb21lIGFuZCBQcmluY2lwZSIgXSwKCVsgIjEzOSIsICJKYW5hIiwgIk1jZ3VpcmUiLCAiODk0MTIiLCAiQ3plY2ggUmVwdWJsaWMiIF0sCglbICIxNDAiLCAiQWxpY2UiLCAiVW5kZXJ3b29kIiwgIjc0NTM1IiwgIlNsb3Zha2lhIiBdLAoJWyAiMTQxIiwgIlRvYmlhcyIsICJLZW50IiwgIjMzNjAxIiwgIlNvdXRoIEdlb3JnaWEgYW5kIFRoZSBTb3V0aCBTYW5kd2ljaCBJc2xhbmRzIiBdLAoJWyAiMTQyIiwgIk5hc2ltIiwgIkNvbGVtYW4iLCAiMTkzNzciLCAiVW5pdGVkIFN0YXRlcyBNaW5vciBPdXRseWluZyBJc2xhbmRzIiBdLAoJWyAiMTQzIiwgIkdlb2ZmcmV5IiwgIkJ5ZXJzIiwgIjg1NzUzIiwgIk5ldGhlcmxhbmRzIEFudGlsbGVzIiBdLAoJWyAiMTQ0IiwgIk9kZXR0ZSIsICJTYXd5ZXIiLCAiNTU0MTgiLCAiVHVuaXNpYSIgXSwKCVsgIjE0NSIsICJDaGFuZXkiLCAiRmxvd2VycyIsICJGNFcgN083IiwgIk1hbGRpdmVzIiBdLAoJWyAiMTQ2IiwgIlNoZWxseSIsICJHbG92ZXIiLCAiTTVZIDRBNiIsICJUYWl3YW4sIFByb3ZpbmNlIG9mIENoaW5hIiBdLAoJWyAiMTQ3IiwgIlVyaWVsIiwgIlRob3JudG9uIiwgIlo2USA1QjciLCAiTXlhbm1hciIgXSwKCVsgIjE0OCIsICJDbGlvIiwgIk5pY2hvbHNvbiIsICJZOFMgN1AyIiwgIk1hcnRpbmlxdWUiIF0sCglbICIxNDkiLCAiSmFuYSIsICJGb2xleSIsICJCMU8gOUo1IiwgIlVuaXRlZCBBcmFiIEVtaXJhdGVzIiBdLAoJWyAiMTUwIiwgIkZ1bHRvbiIsICJSYXNtdXNzZW4iLCAiMzkxOTQiLCAiU29sb21vbiBJc2xhbmRzIiBdLAoJWyAiMTUxIiwgIkxpc2FuZHJhIiwgIkJveWQiLCAiSjJaIDJWNyIsICJGcmVuY2ggR3VpYW5hIiBdLAoJWyAiMTUyIiwgIkJyZW5uYW4iLCAiTG9wZXoiLCAiUTRNIDdZNCIsICJCdXJraW5hIEZhc28iIF0sCglbICIxNTMiLCAiTWFydGhhIiwgIldhc2hpbmd0b24iLCAiTTdTIDRVNiIsICJJcmFuLCBJc2xhbWljIFJlcHVibGljIG9mIiBdLAoJWyAiMTU0IiwgIkRhcmEiLCAiUmFtb3MiLCAiMDc3OTkiLCAiUG9ydHVnYWwiIF0sCglbICIxNTUiLCAiVmlyZ2luaWEiLCAiSGFycmlzIiwgIjAxMjQ2IiwgIkJlcm11ZGEiIF0sCglbICIxNTYiLCAiTWFyeWFtIiwgIlBhdHJpY2siLCAiWTNKIDRZMCIsICJSd2FuZGEiIF0sCglbICIxNTciLCAiU2hhbmEiLCAiTXVsbGVuIiwgIjYxMTY5IiwgIlRvZ28iIF0sCglbICIxNTgiLCAiUm93YW4iLCAiSGFobiIsICJLNkQgNVQ0IiwgIkd1aW5lYS1iaXNzYXUiIF0sCglbICIxNTkiLCAiSGVybWlvbmUiLCAiU2hlcGhlcmQiLCAiTTRGIDdUNiIsICJJcmVsYW5kIiBdLAoJWyAiMTYwIiwgIkphZGEiLCAiQnJpZ2h0IiwgIlAxWiA3RTYiLCAiRnJlbmNoIFNvdXRoZXJuIFRlcnJpdG9yaWVzIiBdLAoJWyAiMTYxIiwgIlNjYXJsZXQiLCAiQnJheSIsICI1NzE2MSIsICJBdXN0cmlhIiBdLAoJWyAiMTYyIiwgIkhhdml2YSIsICJDb25uZXIiLCAiTTRUIDhPNCIsICJCZXJtdWRhIiBdLAoJWyAiMTYzIiwgIk15cmEiLCAiQnJpZ2dzIiwgIlE0QiA2TDciLCAiS2VueWEiIF0sCglbICIxNjQiLCAiSGFsbCIsICJGbG95ZCIsICI0MDQxMSIsICJCYW5nbGFkZXNoIiBdLAoJWyAiMTY1IiwgIkt5bGUiLCAiTWFycXVleiIsICJKNFQgN0M2IiwgIkRqaWJvdXRpIiBdLAoJWyAiMTY2IiwgIkNsYXVkaWEiLCAiTG9uZyIsICJSN0IgMVQ2IiwgIk1hY2Vkb25pYSIgXSwKCVsgIjE2NyIsICJIYXNhZCIsICJDbGVtb25zIiwgIjk0MDA5IiwgIkJvc25pYSBhbmQgSGVyemVnb3ZpbmEiIF0sCglbICIxNjgiLCAiS2FtZWtvIiwgIlJlZXZlcyIsICJHNFYgNkQ1IiwgIlNpbmdhcG9yZSIgXSwKCVsgIjE2OSIsICJBbmdlbGljYSIsICJCYWlsZXkiLCAiWjNZIDdJMCIsICJNaWNyb25lc2lhIiBdLAoJWyAiMTcwIiwgIlNoZWxsZXkiLCAiSmVubmluZ3MiLCAiTzNBIDlIMCIsICJDaHJpc3RtYXMgSXNsYW5kIiBdLAoJWyAiMTcxIiwgIlJhZmFlbCIsICJSYW5kb2xwaCIsICJZNEwgOEI1IiwgIkdlcm1hbnkiIF0sCglbICIxNzIiLCAiV2ludGVyIiwgIktpbm5leSIsICJBM0sgOUE3IiwgIlNhaW50IEx1Y2lhIiBdLAoJWyAiMTczIiwgIkJyaWFuIiwgIkxhcnNlbiIsICI1Mzc1MiIsICJDb21vcm9zIiBdLAoJWyAiMTc0IiwgIk1lbHZpbiIsICJDb29wZXIiLCAiNzI0MTYiLCAiQ3plY2ggUmVwdWJsaWMiIF0sCglbICIxNzUiLCAiR2lsIiwgIlZhbGVuY2lhIiwgIjk1Nzk4IiwgIlVnYW5kYSIgXSwKCVsgIjE3NiIsICJVbWEiLCAiQ3VtbWluZ3MiLCAiODQ2NDkiLCAiSm9yZGFuIiBdLAoJWyAiMTc3IiwgIk1pY2FoIiwgIlNoYW5ub24iLCAiSDlMIDhSNiIsICJHaGFuYSIgXSwKCVsgIjE3OCIsICJBaG1lZCIsICJXZWlzcyIsICIwNTI5MSIsICJBbWVyaWNhbiBTYW1vYSIgXSwKCVsgIjE3OSIsICJIb3AiLCAiRm9zdGVyIiwgIlc5QyA3SjciLCAiUGFuYW1hIiBdLAoJWyAiMTgwIiwgIlRvZGQiLCAiQmFybmV0dCIsICJUOVIgN0o0IiwgIlNleWNoZWxsZXMiIF0sCglbICIxODEiLCAiQnlyb24iLCAiTWV5ZXJzIiwgIko0RyA5UDIiLCAiQ29uZ28iIF0sCglbICIxODIiLCAiSGFkYXNzYWgiLCAiQmFybmV0dCIsICJVMUEgOFYzIiwgIlBhcmFndWF5IiBdLAoJWyAiMTgzIiwgIkhlcm1pb25lIiwgIkx1bmEiLCAiTDRHIDJFNSIsICJOZXcgWmVhbGFuZCIgXSwKCVsgIjE4NCIsICJNYXJzZGVuIiwgIkFsdmFyYWRvIiwgIlUxViAxWTQiLCAiQXJ1YmEiIF0sCglbICIxODUiLCAiQnJpdGFubmkiLCAiR3JlZ29yeSIsICJDOE8gMlQ0IiwgIkthemFraHN0YW4iIF0sCglbICIxODYiLCAiQnJlbmRhIiwgIk9uZWlsIiwgIlI5USA5QjciLCAiR2licmFsdGFyIiBdLAoJWyAiMTg3IiwgIlJldWJlbiIsICJIb3BraW5zIiwgIkMyRCA5RDAiLCAiQmh1dGFuIiBdLAoJWyAiMTg4IiwgIlNvbmlhIiwgIlNhbmRvdmFsIiwgIlkyRyA1STAiLCAiR3VhdGVtYWxhIiBdLAoJWyAiMTg5IiwgIllhc2lyIiwgIkhvbGNvbWIiLCAiQTFIIDZZMyIsICJBbmdvbGEiIF0sCglbICIxOTAiLCAiQXJpc3RvdGxlIiwgIlJvc2EiLCAiNTE4NzAiLCAiSW5kb25lc2lhIiBdLAoJWyAiMTkxIiwgIlVyaWFoIiwgIkJsYWlyIiwgIlg4SyAxQjkiLCAiU3VyaW5hbWUiIF0sCglbICIxOTIiLCAiVmF1Z2hhbiIsICJTaGFycCIsICJMMkYgNU44IiwgIkZhcm9lIElzbGFuZHMiIF0sCglbICIxOTMiLCAiQ29vcGVyIiwgIkJlYXJkIiwgIjgwMzk5IiwgIlVuaXRlZCBTdGF0ZXMgTWlub3IgT3V0bHlpbmcgSXNsYW5kcyIgXSwKCVsgIjE5NCIsICJSaWxleSIsICJHcmVlbmUiLCAiNDQ3MjgiLCAiUnVzc2lhbiBGZWRlcmF0aW9uIiBdLAoJWyAiMTk1IiwgIlJhc2hhZCIsICJGbG93ZXJzIiwgIkw2TiA4VTciLCAiTW9uZ29saWEiIF0sCglbICIxOTYiLCAiWXZvbm5lIiwgIldpbHNvbiIsICIxODU5OSIsICJTdmFsYmFyZCBhbmQgSmFuIE1heWVuIiBdLAoJWyAiMTk3IiwgIk1hcnRlbmEiLCAiQXllcnMiLCAiQThaIDVGNyIsICJPbWFuIiBdLAoJWyAiMTk4IiwgIkVhZ2FuIiwgIkNsaW5lIiwgIlQ5UCA0TDQiLCAiU29sb21vbiBJc2xhbmRzIiBdLAoJWyAiMTk5IiwgIkRhd24iLCAiQ2FycmlsbG8iLCAiVDZPIDZFNSIsICJNYWxhd2kiIF0sCglbICIyMDAiLCAiQWxpIiwgIlNpbmdsZXRvbiIsICJHNkYgM0I0IiwgIkl0YWx5IiBdLAoJWyAiMjAxIiwgIkNocmlzdG9waGVyIiwgIkJlYWNoIiwgIjAxNjU1IiwgIlBhbGF1IiBdLAoJWyAiMjAyIiwgIkVtbWEiLCAiQ3VtbWluZ3MiLCAiVzFCIDRSNiIsICJEb21pbmljYSIgXSwKCVsgIjIwMyIsICJJc2htYWVsIiwgIkdyYXkiLCAiNzY5MjgiLCAiRWd5cHQiIF0sCglbICIyMDQiLCAiTWVnYW4iLCAiSGluZXMiLCAiRjdYIDJYNSIsICJOZXcgWmVhbGFuZCIgXSwKCVsgIjIwNSIsICJFbW1hbnVlbCIsICJTdGVlbGUiLCAiMDk3MjkiLCAiTmV0aGVybGFuZHMiIF0sCglbICIyMDYiLCAiQWxlYSIsICJCdXJyaXMiLCAiMDg0ODUiLCAiR3VhdGVtYWxhIiBdLAoJWyAiMjA3IiwgIk1hcnRpbmEiLCAiVG9kZCIsICI0Njg2MyIsICJDaHJpc3RtYXMgSXNsYW5kIiBdLAoJWyAiMjA4IiwgIkxlbiIsICJWYWxlbnRpbmUiLCAiUzZaIDVTOCIsICJTbG92ZW5pYSIgXSwKCVsgIjIwOSIsICJKb3JkZW4iLCAiU2FsYXphciIsICJVNEQgOEg2IiwgIkF1c3RyaWEiIF0sCglbICIyMTAiLCAiWXZldHRlIiwgIkJyYWRmb3JkIiwgIjE3Mjc1IiwgIkhlYXJkIElzbGFuZCBhbmQgTWNkb25hbGQgSXNsYW5kcyIgXSwKCVsgIjIxMSIsICJFbHZpcyIsICJNY21haG9uIiwgIjI3NTg2IiwgIk1hcnNoYWxsIElzbGFuZHMiIF0sCglbICIyMTIiLCAiR3JheSIsICJCb25uZXIiLCAiTjRWIDNVOSIsICJNb2xkb3ZhIiBdLAoJWyAiMjEzIiwgIllvc2hpIiwgIlNpbmdsZXRvbiIsICI4NjYwMyIsICJVbml0ZWQgS2luZ2RvbSIgXSwKCVsgIjIxNCIsICJBbWVuYSIsICJCdXJrcyIsICI5MzgyMCIsICJSZXVuaW9uIiBdLAoJWyAiMjE1IiwgIk9jZWFuIiwgIk1hbGRvbmFkbyIsICI3MjAyNiIsICJJcmVsYW5kIiBdLAoJWyAiMjE2IiwgIkFsbGVuIiwgIkZvbGV5IiwgIjc1MzYzIiwgIktpcmliYXRpIiBdLAoJWyAiMjE3IiwgIkR1bmNhbiIsICJKaW1lbmV6IiwgIkgzSCAzRzYiLCAiT21hbiIgXSwKCVsgIjIxOCIsICJJcmEiLCAiTWF4d2VsbCIsICI1MzEzNiIsICJGcmVuY2ggUG9seW5lc2lhIiBdLAoJWyAiMjE5IiwgIkFzdHJhIiwgIk1vb24iLCAiRDdXIDhHMiIsICJEb21pbmljYW4gUmVwdWJsaWMiIF0sCglbICIyMjAiLCAiT3Jzb24iLCAiTXllcnMiLCAiMDYwNDkiLCAiTWFsaSIgXSwKCVsgIjIyMSIsICJCcmFuZG9uIiwgIkVzdGVzIiwgIkQyQiA3UDIiLCAiS2VueWEiIF0sCglbICIyMjIiLCAiSGFsZWUiLCAiTHVuYSIsICI1NDczMyIsICJNb2xkb3ZhIiBdLAoJWyAiMjIzIiwgIkppbGxpYW4iLCAiR29uemFsZXoiLCAiRThXIDNMOSIsICJFY3VhZG9yIiBdLAoJWyAiMjI0IiwgIkp1bGllIiwgIkFjb3N0YSIsICJYN00gMVQyIiwgIkVxdWF0b3JpYWwgR3VpbmVhIiBdLAoJWyAiMjI1IiwgIlF1ZW1ieSIsICJGb3N0ZXIiLCAiNDg1OTYiLCAiRXJpdHJlYSIgXSwKCVsgIjIyNiIsICJFcmljaCIsICJDaGF2ZXoiLCAiVzRQIDdHOCIsICJNYXlvdHRlIiBdLAoJWyAiMjI3IiwgIlJvYXJ5IiwgIk1ja25pZ2h0IiwgIks5SyAySzQiLCAiQ2hpbGUiIF0sCglbICIyMjgiLCAiTXVmdXRhdSIsICJIZW5kZXJzb24iLCAiODEzNzciLCAiTWF5b3R0ZSIgXSwKCVsgIjIyOSIsICJIZXJtYW4iLCAiRmVyZ3Vzb24iLCAiNjk0MDUiLCAiSmFwYW4iIF0sCglbICIyMzAiLCAiQWJkdWwiLCAiRnJhbmtzIiwgIkwxViA4WDIiLCAiUG9ydHVnYWwiIF0sCglbICIyMzEiLCAiRG9taW5pYyIsICJMb2dhbiIsICI5ODc3MCIsICJTYWludCBMdWNpYSIgXSwKCVsgIjIzMiIsICJJc2Fkb3JhIiwgIlNvbGlzIiwgIlkzQSA2SDUiLCAiUG9ydHVnYWwiIF0sCglbICIyMzMiLCAiTGVzdGVyIiwgIkRhdmlzIiwgIjMwMzM5IiwgIkJyaXRpc2ggSW5kaWFuIE9jZWFuIFRlcnJpdG9yeSIgXSwKCVsgIjIzNCIsICJKb2VsIiwgIlJvamFzIiwgIk44RSA1VDkiLCAiQmFocmFpbiIgXSwKCVsgIjIzNSIsICJRdWlubGFuIiwgIkNhcnJvbGwiLCAiNTU3ODUiLCAiQXVzdHJhbGlhIiBdLAoJWyAiMjM2IiwgIkd1aW5ldmVyZSIsICJQaWNrZXR0IiwgIkE3WSAzVjMiLCAiTmV0aGVybGFuZHMgQW50aWxsZXMiIF0sCglbICIyMzciLCAiTml0YSIsICJIb3BraW5zIiwgIjg4MzcwIiwgIkFsYmFuaWEiIF0sCglbICIyMzgiLCAiSGF5bGV5IiwgIkJ1Y2tsZXkiLCAiRjFWIDdQNSIsICJUb2dvIiBdLAoJWyAiMjM5IiwgIkNvbG9yYWRvIiwgIlJleWVzIiwgIjE4Nzk4IiwgIkNvbmdvIiBdLAoJWyAiMjQwIiwgIlRhc2h5YSIsICJCYXJ0bGV0dCIsICI0ODUzNyIsICJTaWVycmEgTGVvbmUiIF0sCglbICIyNDEiLCAiSXNhYmVsbGEiLCAiS2VpdGgiLCAiNDg4NzgiLCAiS2lyaWJhdGkiIF0sCglbICIyNDIiLCAiSmVzc2ljYSIsICJOb2JsZSIsICJENkMgOVQ5IiwgIlN2YWxiYXJkIGFuZCBKYW4gTWF5ZW4iIF0sCglbICIyNDMiLCAiQ2Fpcm8iLCAiRWR3YXJkcyIsICI0MDU5OCIsICJOZXBhbCIgXSwKCVsgIjI0NCIsICJDYW1pbGxlIiwgIkJyYWRsZXkiLCAiSTRVIDhGNiIsICJGaWppIiBdLAoJWyAiMjQ1IiwgIlF1aW4iLCAiTWNnZWUiLCAiTzVEIDJQMCIsICJQb2xhbmQiIF0sCglbICIyNDYiLCAiUmluYSIsICJHdXptYW4iLCAiNDQ5NDAiLCAiQmFocmFpbiIgXSwKCVsgIjI0NyIsICJHbGVubmEiLCAiS2lya2xhbmQiLCAiWjFMIDRXMiIsICJTYW4gTWFyaW5vIiBdLAoJWyAiMjQ4IiwgIlRhcmlrIiwgIlRvZGQiLCAiNzcyMjgiLCAiVHVya3MgYW5kIENhaWNvcyBJc2xhbmRzIiBdLAoJWyAiMjQ5IiwgIllhcmRsZXkiLCAiQnVycmlzIiwgIk02VSA5RDciLCAiTmV3IENhbGVkb25pYSIgXSwKCVsgIjI1MCIsICJIYXNoaW0iLCAiQ2FzZXkiLCAiMTc3MjIiLCAiTGVzb3RobyIgXSwKCVsgIjI1MSIsICJNYWdnaWUiLCAiUmF5bW9uZCIsICI2MjU0MCIsICJVZ2FuZGEiIF0sCglbICIyNTIiLCAiQ2hyaXN0aWFuIiwgIk1jZG9uYWxkIiwgIlI4SyAyTTEiLCAiVW5pdGVkIEFyYWIgRW1pcmF0ZXMiIF0sCglbICIyNTMiLCAiQ29sdCIsICJDb2JiIiwgIjc1MzkzIiwgIk1vbGRvdmEiIF0sCglbICIyNTQiLCAiQWxpbmUiLCAiR3JhdmVzIiwgIkkxQyA5STYiLCAiSG9seSBTZWUgKFZhdGljYW4gQ2l0eSBTdGF0ZSkiIF0sCglbICIyNTUiLCAiRmFycmFoIiwgIkNhbm5vbiIsICJINVcgMlkwIiwgIkJodXRhbiIgXSwKCVsgIjI1NiIsICJXeW5uZSIsICJBeWVycyIsICJCNlggNlk4IiwgIldlc3Rlcm4gU2FoYXJhIiBdLAoJWyAiMjU3IiwgIlRlZWdhbiIsICJBdmVyeSIsICIzMzY0MyIsICJTYW4gTWFyaW5vIiBdLAoJWyAiMjU4IiwgIlNoYW5hIiwgIlNsb2FuIiwgIks5UCA5VjciLCAiR2Fib24iIF0sCglbICIyNTkiLCAiQnJpdGFubmV5IiwgIkNvb2siLCAiWTVEIDZLNyIsICJSb21hbmlhIiBdLAoJWyAiMjYwIiwgIkt1YW1lIiwgIlNjaHJvZWRlciIsICIxMjg1OSIsICJTeXJpYW4gQXJhYiBSZXB1YmxpYyIgXSwKCVsgIjI2MSIsICJWYWxlbnRpbmUiLCAiSm9zZXBoIiwgIlAyUyA2VDYiLCAiTWF5b3R0ZSIgXSwKCVsgIjI2MiIsICJKb2VsbGUiLCAiS2VsbGVyIiwgIlU2RiAzVDciLCAiRmlqaSIgXSwKCVsgIjI2MyIsICJFbGFpbmUiLCAiSGlja21hbiIsICIyODA1NiIsICJUdXZhbHUiIF0sCglbICIyNjQiLCAiSXZvciIsICJNYWxvbmUiLCAiSDJaIDVYNSIsICJWaXJnaW4gSXNsYW5kcywgQnJpdGlzaCIgXSwKCVsgIjI2NSIsICJNYXJpcyIsICJKZWZmZXJzb24iLCAiMTI0NzQiLCAiQ3plY2ggUmVwdWJsaWMiIF0sCglbICIyNjYiLCAiSm9zZXBoaW5lIiwgIlppbW1lcm1hbiIsICJaNUogMkk0IiwgIkFuZ29sYSIgXSwKCVsgIjI2NyIsICJCYWtlciIsICJXb290ZW4iLCAiWDRLIDJMOCIsICJBdXN0cmlhIiBdLAoJWyAiMjY4IiwgIkFseXNzYSIsICJNaXRjaGVsbCIsICI5NzcxMiIsICJBbnRhcmN0aWNhIiBdLAoJWyAiMjY5IiwgIkNhcmxvcyIsICJQZWFyc29uIiwgIjg1ODM4IiwgIkdhbWJpYSIgXSwKCVsgIjI3MCIsICJMdWtlIiwgIlJpY2hhcmRzb24iLCAiNzM4NjciLCAiQ2hyaXN0bWFzIElzbGFuZCIgXSwKCVsgIjI3MSIsICJEYXZpcyIsICJHYXJkbmVyIiwgIlUyRSA0RDkiLCAiQ2hpbGUiIF0sCglbICIyNzIiLCAiVGhvbWFzIiwgIkNvbm5lciIsICI5MjQ4NyIsICJNb3phbWJpcXVlIiBdLAoJWyAiMjczIiwgIktpZXJhbiIsICJCYWlyZCIsICJYOUcgNkcxIiwgIkljZWxhbmQiIF0sCglbICIyNzQiLCAiQ2hleWVubmUiLCAiTW9ycmlzIiwgIkY1ViA0UzIiLCAiR3JlZWNlIiBdLAoJWyAiMjc1IiwgIkhpbGxhcnkiLCAiUmVldmVzIiwgIjg5ODA0IiwgIlNsb3Zha2lhIiBdLAoJWyAiMjc2IiwgIlJ5ZGVyIiwgIkxvbmciLCAiMzI3MjUiLCAiTmV3IENhbGVkb25pYSIgXSwKCVsgIjI3NyIsICJBcmllbCIsICJDb2xvbiIsICI1MDY3NSIsICJFc3RvbmlhIiBdLAoJWyAiMjc4IiwgIlZhbm5hIiwgIkhlc3MiLCAiNzkwNTciLCAiU2F1ZGkgQXJhYmlhIiBdLAoJWyAiMjc5IiwgIkhheWxleSIsICJDaGVycnkiLCAiQjVFIDlYNCIsICJVbml0ZWQgU3RhdGVzIE1pbm9yIE91dGx5aW5nIElzbGFuZHMiIF0sCglbICIyODAiLCAiS25veCIsICJCbGFpciIsICI3NTYyNiIsICJDZW50cmFsIEFmcmljYW4gUmVwdWJsaWMiIF0sCglbICIyODEiLCAiQXN0cmEiLCAiTWNkYW5pZWwiLCAiMjQ0OTMiLCAiQmVybXVkYSIgXSwKCVsgIjI4MiIsICJUZWVnYW4iLCAiRm9yZCIsICJBOFUgMUs5IiwgIklyYW4sIElzbGFtaWMgUmVwdWJsaWMgb2YiIF0sCglbICIyODMiLCAiSGFycmlzb24iLCAiSmFja3NvbiIsICI0MzUxOSIsICJNYXJzaGFsbCBJc2xhbmRzIiBdLAoJWyAiMjg0IiwgIk1lbHlzc2EiLCAiTGF3c29uIiwgIk83RSA4RTYiLCAiQmVsaXplIiBdLAoJWyAiMjg1IiwgIlNoYWluZSIsICJGcmFuY2lzIiwgIlE1SyA1STQiLCAiSW5kaWEiIF0sCglbICIyODYiLCAiQXVndXN0IiwgIlJlZWQiLCAiUzlSIDFPOCIsICJHaGFuYSIgXSwKCVsgIjI4NyIsICJBcGhyb2RpdGUiLCAiWmltbWVybWFuIiwgIjI4MzM2IiwgIkxlc290aG8iIF0sCglbICIyODgiLCAiRGVjbGFuIiwgIldhbHRlcnMiLCAiMDg2NjIiLCAiUndhbmRhIiBdLAoJWyAiMjg5IiwgIkJyb2R5IiwgIlBhdGUiLCAiRzJHIDlEOSIsICJTZXJiaWEgYW5kIE1vbnRlbmVncm8iIF0sCglbICIyOTAiLCAiQnJhZGxleSIsICJPZG9tIiwgIkwyUiA2WjkiLCAiSm9yZGFuIiBdLAoJWyAiMjkxIiwgIlBoaWxsaXAiLCAiQ2xldmVsYW5kIiwgIkU0RCAxQjciLCAiUGFyYWd1YXkiIF0sCglbICIyOTIiLCAiU2lsYXMiLCAiV2lnZ2lucyIsICJGOUYgNVgzIiwgIkJhaHJhaW4iIF0sCglbICIyOTMiLCAiS2VlbHkiLCAiRG9uYWxkc29uIiwgIkI1SCA3RjIiLCAiVmFudWF0dSIgXSwKCVsgIjI5NCIsICJIYW1tZXR0IiwgIkxhbmNhc3RlciIsICJIMlAgNEU2IiwgIlN2YWxiYXJkIGFuZCBKYW4gTWF5ZW4iIF0sCglbICIyOTUiLCAiS2lhcmEiLCAiQ2xhcmtlIiwgIjUwODg1IiwgIlRoYWlsYW5kIiBdLAoJWyAiMjk2IiwgIkF5YW5uYSIsICJXaWxleSIsICIyMDc3MyIsICJNb3JvY2NvIiBdLAoJWyAiMjk3IiwgIlRhc2h5YSIsICJTdGFubGV5IiwgIkY1SiA1UjkiLCAiTmV3IENhbGVkb25pYSIgXSwKCVsgIjI5OCIsICJNYXJnYXJldCIsICJCYXJrZXIiLCAiSjVBIDlOOCIsICJNYXJzaGFsbCBJc2xhbmRzIiBdLAoJWyAiMjk5IiwgIlhhbmRyYSIsICJFbmdsaXNoIiwgIjkyMjk5IiwgIktvcmVhLCBSZXB1YmxpYyBvZiIgXSwKCVsgIjMwMCIsICJKYW5lIiwgIkJyb2NrIiwgIjg2MTQwIiwgIlllbWVuIiBdLAoJWyAiMzAxIiwgIkx1bmVhIiwgIkdhcnJldHQiLCAiOTY3MzAiLCAiTmV3IENhbGVkb25pYSIgXSwKCVsgIjMwMiIsICJTbGFkZSIsICJFdmVyZXR0IiwgIjE2MTA1IiwgIk1hbGF3aSIgXSwKCVsgIjMwMyIsICJTY290dCIsICJCb29rZXIiLCAiRzhWIDJSNCIsICJNYWNlZG9uaWEiIF0sCglbICIzMDQiLCAiQ2FuZGljZSIsICJEZWNrZXIiLCAiRTVSIDJENCIsICJDaGluYSIgXSwKCVsgIjMwNSIsICJBcm1hbmRvIiwgIkJyaWRnZXMiLCAiODc5NTkiLCAiRmFsa2xhbmQgSXNsYW5kcyAoTWFsdmluYXMpIiBdLAoJWyAiMzA2IiwgIkNsYXl0b24iLCAiV2hpdGxleSIsICJRNk8gNE03IiwgIkJyaXRpc2ggSW5kaWFuIE9jZWFuIFRlcnJpdG9yeSIgXSwKCVsgIjMwNyIsICJEcmlzY29sbCIsICJEdW5jYW4iLCAiTTJKIDlWNSIsICJBcmdlbnRpbmEiIF0sCglbICIzMDgiLCAiRGV2aW4iLCAiU3RhZmZvcmQiLCAiTDhGIDJWNyIsICJTdmFsYmFyZCBhbmQgSmFuIE1heWVuIiBdLAoJWyAiMzA5IiwgIkJlbGwiLCAiWW9yayIsICJFNUIgN1g1IiwgIkxlYmFub24iIF0sCglbICIzMTAiLCAiSGFsZXkiLCAiQmVja2VyIiwgIjE5NzU5IiwgIkJodXRhbiIgXSwKCVsgIjMxMSIsICJDaGF2YSIsICJTYW50aWFnbyIsICIwNDM5NiIsICJJc3JhZWwiIF0sCglbICIzMTIiLCAiRGF2aWQiLCAiTWNjYWxsIiwgIjYyMDg3IiwgIk5vcmZvbGsgSXNsYW5kIiBdLAoJWyAiMzEzIiwgIkNsaW50b24iLCAiSmFjb2Jzb24iLCAiMDYxNjgiLCAiR3VhbSIgXSwKCVsgIjMxNCIsICJNZWx2aW4iLCAiS2F1Zm1hbiIsICJDNEUgOU42IiwgIkdhbWJpYSIgXSwKCVsgIjMxNSIsICJEYWkiLCAiU2hlcGhlcmQiLCAiMzc0OTAiLCAiU2F1ZGkgQXJhYmlhIiBdLAoJWyAiMzE2IiwgIlphaGlyIiwgIkNoYXNlIiwgIjQ0MzQwIiwgIlR1cmtleSIgXSwKCVsgIjMxNyIsICJMZWlsYW5pIiwgIlBhcnJpc2giLCAiNjI1NzYiLCAiQ29jb3MgKEtlZWxpbmcpIElzbGFuZHMiIF0sCglbICIzMTgiLCAiT2xlZyIsICJXaWxraW5zIiwgIlo3UyA4WjQiLCAiTGF0dmlhIiBdLAoJWyAiMzE5IiwgIlBlYXJsIiwgIlBlbmEiLCAiODI1MjYiLCAiU2F1ZGkgQXJhYmlhIiBdLAoJWyAiMzIwIiwgIktlbGx5IiwgIk1vb2R5IiwgIlc3VSA1WTMiLCAiQnVydW5kaSIgXSwKCVsgIjMyMSIsICJNYXJjaWEiLCAiS2VubmVkeSIsICI4NTk1MiIsICJQYW5hbWEiIF0sCglbICIzMjIiLCAiQ2FpbGluIiwgIkJ1cm5ldHQiLCAiTTJaIDNMNSIsICJHdXlhbmEiIF0sCglbICIzMjMiLCAiQ2lhcmEiLCAiU21hbGwiLCAiWDZDIDZNNiIsICJUYW56YW5pYSwgVW5pdGVkIFJlcHVibGljIG9mIiBdLAoJWyAiMzI0IiwgIkxpbGxpYW4iLCAiTWFzc2V5IiwgIlo4QSA1VTUiLCAiQWxnZXJpYSIgXSwKCVsgIjMyNSIsICJHYXJyZXR0IiwgIkVsbGlvdHQiLCAiUjVQIDZUMCIsICJDYW5hZGEiIF0sCglbICIzMjYiLCAiSW5nYSIsICJEYW5pZWxzIiwgIjQwMTU2IiwgIkNvY29zIChLZWVsaW5nKSBJc2xhbmRzIiBdLAoJWyAiMzI3IiwgIkJhcnJ5IiwgIlBlbmEiLCAiMDM1OTMiLCAiVG9uZ2EiIF0sCglbICIzMjgiLCAiUGVuZWxvcGUiLCAiTWNpbnR5cmUiLCAiMjkyOTMiLCAiQnVya2luYSBGYXNvIiBdLAoJWyAiMzI5IiwgIkRhbnRlIiwgIktpcmsiLCAiNzQwMzgiLCAiTGVzb3RobyIgXSwKCVsgIjMzMCIsICJPd2VuIiwgIkNvbGUiLCAiMTc5NjgiLCAiUndhbmRhIiBdLAoJWyAiMzMxIiwgIkJyaXR0YW55IiwgIkVkd2FyZHMiLCAiMjQ1MDciLCAiUGFyYWd1YXkiIF0sCglbICIzMzIiLCAiWmVwaCIsICJCZW50bGV5IiwgIjEyMDAwIiwgIkd1YW0iIF0sCglbICIzMzMiLCAiUnV0aCIsICJQYWxtZXIiLCAiRThWIDlBNSIsICJHaGFuYSIgXSwKCVsgIjMzNCIsICJEcmlzY29sbCIsICJFbGxpcyIsICJYMVggMk41IiwgIkFuZ29sYSIgXSwKCVsgIjMzNSIsICJNb2hhbW1hZCIsICJHdWVycmEiLCAiWTlOIDNZNSIsICJNb25nb2xpYSIgXSwKCVsgIjMzNiIsICJDbGlvIiwgIkJhbGR3aW4iLCAiNjc1NTciLCAiTW9yb2NjbyIgXSwKCVsgIjMzNyIsICJWaXJnaW5pYSIsICJEdW5jYW4iLCAiSjhEIDRUMiIsICJIYWl0aSIgXSwKCVsgIjMzOCIsICJEaWV0ZXIiLCAiU2FuY2hleiIsICJIN0UgMkg0IiwgIlJvbWFuaWEiIF0sCglbICIzMzkiLCAiUXVpbm4iLCAiSHVyc3QiLCAiSzRFIDJYNiIsICJSZXVuaW9uIiBdLAoJWyAiMzQwIiwgIkNvYnkiLCAiS2VsbHkiLCAiUzFIIDhOMCIsICJFcXVhdG9yaWFsIEd1aW5lYSIgXSwKCVsgIjM0MSIsICJSYWphIiwgIlNvbGlzIiwgIlM1RyA5VDUiLCAiR3JlbmFkYSIgXSwKCVsgIjM0MiIsICJKb3JkYW4iLCAiUmlkZGxlIiwgIko3TSA1WDMiLCAiU3ZhbGJhcmQgYW5kIEphbiBNYXllbiIgXSwKCVsgIjM0MyIsICJEb3JhIiwgIktub3giLCAiMjUwNTQiLCAiTGlieWFuIEFyYWIgSmFtYWhpcml5YSIgXSwKCVsgIjM0NCIsICJCcmVuZGFuIiwgIlJlaWxseSIsICJVOVUgM0Y3IiwgIkFybWVuaWEiIF0sCglbICIzNDUiLCAiTWVseXNzYSIsICJSZXllcyIsICIxMTI4NSIsICJWaWV0IE5hbSIgXSwKCVsgIjM0NiIsICJLbm94IiwgIlJpdmVyYSIsICJOOFogN0owIiwgIk5lcGFsIiBdLAoJWyAiMzQ3IiwgIlF1eW5uIiwgIklyd2luIiwgIjI2NTI0IiwgIkNoaWxlIiBdLAoJWyAiMzQ4IiwgIkNvbGluIiwgIkNvbGVtYW4iLCAiMjI4MzMiLCAiVW5pdGVkIEFyYWIgRW1pcmF0ZXMiIF0sCglbICIzNDkiLCAiU3liaWwiLCAiRGVsZ2FkbyIsICI5OTk0NyIsICJCZWxpemUiIF0sCglbICIzNTAiLCAiTWFjYXVsYXkiLCAiU2FsaW5hcyIsICI0ODUyMSIsICJIZWFyZCBJc2xhbmQgYW5kIE1jZG9uYWxkIElzbGFuZHMiIF0sCglbICIzNTEiLCAiR2Fycmlzb24iLCAiSG9nYW4iLCAiNjg5NTAiLCAiSW5kaWEiIF0sCglbICIzNTIiLCAiUm9uYW4iLCAiR3VlcnJhIiwgIjU1NDQ1IiwgIkFuZ29sYSIgXSwKCVsgIjM1MyIsICJSZWdpbmEiLCAiQW5kcmV3cyIsICJIM0UgM1QwIiwgIkNlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYyIgXSwKCVsgIjM1NCIsICJDb2xvcmFkbyIsICJKb3ljZSIsICJWNlggNUs4IiwgIkFuZ3VpbGxhIiBdLAoJWyAiMzU1IiwgIkJhc2lhIiwgIkJhbmtzIiwgIjg1MDQ5IiwgIkdyZW5hZGEiIF0sCglbICIzNTYiLCAiQWRlbmEiLCAiQmVyZyIsICIwNDEzNSIsICJOZXcgQ2FsZWRvbmlhIiBdLAoJWyAiMzU3IiwgIldhZGUiLCAiUmljaGFyZHNvbiIsICJDOE0gOUozIiwgIkRvbWluaWNhbiBSZXB1YmxpYyIgXSwKCVsgIjM1OCIsICJDb2R5IiwgIk1vbnRveWEiLCAiMjIwMTgiLCAiU29sb21vbiBJc2xhbmRzIiBdLAoJWyAiMzU5IiwgIkZhaXRoIiwgIkJhcm5ldHQiLCAiNjE0NzUiLCAiQ2hpbmEiIF0sCglbICIzNjAiLCAiQ29keSIsICJXaXR0IiwgIkM4SSAyUTgiLCAiQ29uZ28iIF0sCglbICIzNjEiLCAiQnJlbmRlbiIsICJDYXJsc29uIiwgIjc0MDA3IiwgIk1hcnNoYWxsIElzbGFuZHMiIF0sCglbICIzNjIiLCAiR2lsIiwgIkJyb29rcyIsICJVNFMgNU4xIiwgIlNhaW50IFZpbmNlbnQgYW5kIFRoZSBHcmVuYWRpbmVzIiBdLAoJWyAiMzYzIiwgIktpcmVzdGluIiwgIldhdHRzIiwgIkg4SSAxRDUiLCAiTXlhbm1hciIgXSwKCVsgIjM2NCIsICJBbWVsaWEiLCAiR2lsbGlhbSIsICIxMTQ2MSIsICJDaGlsZSIgXSwKCVsgIjM2NSIsICJOb2VsYW5pIiwgIlJob2RlcyIsICI4MzMyMCIsICJDdWJhIiBdLAoJWyAiMzY2IiwgIkxlbiIsICJUcmV2aW5vIiwgIlc5RiAyVTUiLCAiQXJtZW5pYSIgXSwKCVsgIjM2NyIsICJHYWx2aW4iLCAiTWlkZGxldG9uIiwgIjg2NzA3IiwgIlRoYWlsYW5kIiBdLAoJWyAiMzY4IiwgIkdlcm1haW5lIiwgIkJyaWRnZXMiLCAiOTAyODMiLCAiSmFwYW4iIF0sCglbICIzNjkiLCAiUm9zZSIsICJIaW5lcyIsICJXN0wgN1E2IiwgIkNvbmdvIiBdLAoJWyAiMzcwIiwgIkhvcCIsICJNdWVsbGVyIiwgIkkzRSAyWDgiLCAiQW5nb2xhIiBdLAoJWyAiMzcxIiwgIklsaWFuYSIsICJXaWxsaWFtc29uIiwgIjU2NzU4IiwgIkxlYmFub24iIF0sCglbICIzNzIiLCAiUmFqYSIsICJQcmljZSIsICI0OTYwMyIsICJBcm1lbmlhIiBdLAoJWyAiMzczIiwgIkplYW5ldHRlIiwgIkhhdGZpZWxkIiwgIkUzSyA1TjUiLCAiSW5kaWEiIF0sCglbICIzNzQiLCAiQnJpdHRhbnkiLCAiQ2hyaXN0ZW5zZW4iLCAiMDQ3NTAiLCAiVXJ1Z3VheSIgXSwKCVsgIjM3NSIsICJJbmdhIiwgIlByaW5jZSIsICJENFggNko1IiwgIlN3aXR6ZXJsYW5kIiBdLAoJWyAiMzc2IiwgIkNoZXJva2VlIiwgIkJhbGxhcmQiLCAiVTFPIDFNMCIsICJSd2FuZGEiIF0sCglbICIzNzciLCAiRGVpcmRyZSIsICJXYXRzb24iLCAiNDY5ODMiLCAiU3JpIExhbmthIiBdLAoJWyAiMzc4IiwgIkFtYW5kYSIsICJQYXJyaXNoIiwgIjk5ODM4IiwgIkhvbmcgS29uZyIgXSwKCVsgIjM3OSIsICJMZW8iLCAiU2hhbm5vbiIsICJMM04gM0owIiwgIkJydW5laSBEYXJ1c3NhbGFtIiBdLAoJWyAiMzgwIiwgIktpbWJlcmx5IiwgIkNsZW1vbnMiLCAiODg3MzQiLCAiU291dGggQWZyaWNhIiBdLAoJWyAiMzgxIiwgIlNldGgiLCAiTGFuZ2xleSIsICJENkEgMVE5IiwgIkd1eWFuYSIgXSwKCVsgIjM4MiIsICJDYXJvbCIsICJCbGFua2Vuc2hpcCIsICJYNU4gMkE3IiwgIkFuZ29sYSIgXSwKCVsgIjM4MyIsICJEb3JhIiwgIkZsb3JlcyIsICJGOEYgMU81IiwgIlBvbGFuZCIgXSwKCVsgIjM4NCIsICJDaGF2YSIsICJEaWNrc29uIiwgIlA4QiA2VzYiLCAiQ29tb3JvcyIgXSwKCVsgIjM4NSIsICJUcmV2b3IiLCAiTWNkb3dlbGwiLCAiMzEzODIiLCAiU29sb21vbiBJc2xhbmRzIiBdLAoJWyAiMzg2IiwgIkFsZWMiLCAiVmFsZW50aW5lIiwgIlAyUiA0SzciLCAiR3JlZW5sYW5kIiBdLAoJWyAiMzg3IiwgIlBoaWxpcCIsICJKZW5raW5zIiwgIlE3WCA1VTUiLCAiQXJ1YmEiIF0sCglbICIzODgiLCAiS2ltIiwgIkJvd2VuIiwgIjY5ODczIiwgIlNhaW50IEtpdHRzIGFuZCBOZXZpcyIgXSwKCVsgIjM4OSIsICJBbGxlZ3JhIiwgIk9jb25ub3IiLCAiWDNZIDFYMyIsICJIb2x5IFNlZSAoVmF0aWNhbiBDaXR5IFN0YXRlKSIgXSwKCVsgIjM5MCIsICJEYXJpYSIsICJCcmlnZ3MiLCAiQTdaIDdQNCIsICJTZXJiaWEgYW5kIE1vbnRlbmVncm8iIF0sCglbICIzOTEiLCAiQW1lbGlhIiwgIldpbGV5IiwgIkQ0UyAxRzUiLCAiTW9udHNlcnJhdCIgXSwKCVsgIjM5MiIsICJFcmljYSIsICJBZ3VpcnJlIiwgIkg1TCAyTzMiLCAiQW5kb3JyYSIgXSwKCVsgIjM5MyIsICJLaWJvIiwgIlNhd3llciIsICIzMDYzOCIsICJHdXlhbmEiIF0sCglbICIzOTQiLCAiSmFja3NvbiIsICJNZXllcnMiLCAiUDROIDlENiIsICJCYW5nbGFkZXNoIiBdLAoJWyAiMzk1IiwgIktpcmsiLCAiQmF4dGVyIiwgIkYzTSA3UzYiLCAiRXN0b25pYSIgXSwKCVsgIjM5NiIsICJTeWJpbCIsICJDaHJpc3RpYW4iLCAiQjNRIDJYMCIsICJTb3V0aCBHZW9yZ2lhIGFuZCBUaGUgU291dGggU2FuZHdpY2ggSXNsYW5kcyIgXSwKCVsgIjM5NyIsICJJbmEiLCAiTWVyY2VyIiwgIk40UyAxSzgiLCAiS29yZWEiIF0sCglbICIzOTgiLCAiS2lhcmEiLCAiV2hpdGVoZWFkIiwgIjg2MDIzIiwgIk5pY2FyYWd1YSIgXSwKCVsgIjM5OSIsICJWaWVsa2EiLCAiSGF5cyIsICIyOTg0NSIsICJNYWx0YSIgXSwKCVsgIjQwMCIsICJTdGFjZXkiLCAiQ2FybHNvbiIsICI1MzIxOCIsICJDb29rIElzbGFuZHMiIF0sCglbICI0MDEiLCAiU2VsbWEiLCAiTGxveWQiLCAiNzgyNTYiLCAiVHVya2V5IiBdLAoJWyAiNDAyIiwgIlJob2RhIiwgIk1jaW50b3NoIiwgIkc4WCAxQzgiLCAiR3VhdGVtYWxhIiBdLAoJWyAiNDAzIiwgIlRlYWdhbiIsICJPY2hvYSIsICI5OTc1MiIsICJCYXJiYWRvcyIgXSwKCVsgIjQwNCIsICJSZWJlY2NhIiwgIkNhcnZlciIsICI4MjY2MSIsICJTYWludCBLaXR0cyBhbmQgTmV2aXMiIF0sCglbICI0MDUiLCAiWWFlbCIsICJXb29kd2FyZCIsICI2NjA5NSIsICJOaWdlciIgXSwKCVsgIjQwNiIsICJDYWx2aW4iLCAiSHVmZm1hbiIsICI4MjE3MiIsICJTb21hbGlhIiBdLAoJWyAiNDA3IiwgIlNvcG9saW5lIiwgIldhbHRlcnMiLCAiSzVMIDNJNyIsICJTcGFpbiIgXSwKCVsgIjQwOCIsICJIb2xsZWUiLCAiUG93ZWxsIiwgIjA1NTcyIiwgIlNhbW9hIiBdLAoJWyAiNDA5IiwgIkZpb25hIiwgIkZyYW5rIiwgIjc0NDU2IiwgIlRpbW9yLWxlc3RlIiBdLAoJWyAiNDEwIiwgIkFsYW5hIiwgIkh1YmJhcmQiLCAiNzYwMTEiLCAiTGl0aHVhbmlhIiBdLAoJWyAiNDExIiwgIkxpbGxpYW4iLCAiR2FyY2lhIiwgIko1WiAyTzUiLCAiU2llcnJhIExlb25lIiBdLAoJWyAiNDEyIiwgIlRhZCIsICJNY2xlb2QiLCAiQjZBIDhaNCIsICJBdXN0cmFsaWEiIF0sCglbICI0MTMiLCAiSGFkYXNzYWgiLCAiSGFsbCIsICI0NzQxNyIsICJDaGluYSIgXSwKCVsgIjQxNCIsICJSZWdhbiIsICJTdW1tZXJzIiwgIlg0TCA0STYiLCAiSG9uZHVyYXMiIF0sCglbICI0MTUiLCAiSGVycm9kIiwgIkVyaWNrc29uIiwgIlI4RyAzVjAiLCAiSXNyYWVsIiBdLAoJWyAiNDE2IiwgIkF1dHVtbiIsICJSb2phcyIsICIzMTIwNSIsICJDb2NvcyAoS2VlbGluZykgSXNsYW5kcyIgXSwKCVsgIjQxNyIsICJDYXN0b3IiLCAiTW9vbmV5IiwgIjkyNzM3IiwgIkdyZW5hZGEiIF0sCglbICI0MTgiLCAiV2VzbGV5IiwgIkhvbG1hbiIsICI1NzEyNSIsICJHcmVlbmxhbmQiIF0sCglbICI0MTkiLCAiS2l0cmEiLCAiV29vdGVuIiwgIlE2WCA0WTAiLCAiTW9uZ29saWEiIF0sCglbICI0MjAiLCAiQnVja21pbnN0ZXIiLCAiUmljZSIsICJVOEIgN0I4IiwgIlRva2VsYXUiIF0sCglbICI0MjEiLCAiWGF2aWVyIiwgIkhhcmRpbiIsICIxODI4MCIsICJJcmFuLCBJc2xhbWljIFJlcHVibGljIG9mIiBdLAoJWyAiNDIyIiwgIlNvcG9saW5lIiwgIkZsZW1pbmciLCAiNzg0MzciLCAiU2luZ2Fwb3JlIiBdLAoJWyAiNDIzIiwgIlN5ZG5leSIsICJTYWxpbmFzIiwgIjIzODAxIiwgIkNvb2sgSXNsYW5kcyIgXSwKCVsgIjQyNCIsICJCZXRoYW55IiwgIlJvc2FsZXMiLCAiODk2NTAiLCAiVW5pdGVkIFN0YXRlcyIgXSwKCVsgIjQyNSIsICJEZWlyZHJlIiwgIkhlbnNsZXkiLCAiRjNYIDFCNyIsICJNaWNyb25lc2lhIiBdLAoJWyAiNDI2IiwgIkJlcm5hcmQiLCAiVmFyZ2FzIiwgIlM0RCA5VDAiLCAiVXpiZWtpc3RhbiIgXSwKCVsgIjQyNyIsICJNZXJyaWxsIiwgIkNvbXB0b24iLCAiMTc3MTMiLCAiU3VyaW5hbWUiIF0sCglbICI0MjgiLCAiQ2FybHkiLCAiQmFpcmQiLCAiRDNIIDVHMyIsICJVbml0ZWQgU3RhdGVzIE1pbm9yIE91dGx5aW5nIElzbGFuZHMiIF0sCglbICI0MjkiLCAiR3JhY2UiLCAiUGhlbHBzIiwgIjY0Njk1IiwgIk5hdXJ1IiBdLAoJWyAiNDMwIiwgIkthcmVlbSIsICJTdG9uZSIsICI2NTU3MiIsICJOZXRoZXJsYW5kcyIgXSwKCVsgIjQzMSIsICJTdXNhbiIsICJOZXd0b24iLCAiMDQ2MjciLCAiQW5ndWlsbGEiIF0sCglbICI0MzIiLCAiTGF1cmEiLCAiTWlyYW5kYSIsICJFMUcgMlI3IiwgIkZpbmxhbmQiIF0sCglbICI0MzMiLCAiTWFkYWxpbmUiLCAiUHVnaCIsICJKOUEgOU01IiwgIlNlbmVnYWwiIF0sCglbICI0MzQiLCAiU29waGlhIiwgIk1lbmRleiIsICIzMzc4OSIsICJUaW1vci1sZXN0ZSIgXSwKCVsgIjQzNSIsICJSb2FyeSIsICJHcmVlbmUiLCAiNjE3NzQiLCAiQ2FuYWRhIiBdLAoJWyAiNDM2IiwgIkFtb3MiLCAiR2lsbGlhbSIsICI5NDkzMyIsICJTcmkgTGFua2EiIF0sCglbICI0MzciLCAiSXZvcnkiLCAiSm95bmVyIiwgIjE1Mzc5IiwgIlNhbiBNYXJpbm8iIF0sCglbICI0MzgiLCAiSm9yZGVuIiwgIlJvYmJpbnMiLCAiNDM0MDAiLCAiUnVzc2lhbiBGZWRlcmF0aW9uIiBdLAoJWyAiNDM5IiwgIk1lcnJpdHQiLCAiSG9sY29tYiIsICJSMUkgM0M3IiwgIkJyYXppbCIgXSwKCVsgIjQ0MCIsICJJbGlhbmEiLCAiSm9obnN0b24iLCAiVTlXIDhOMiIsICJUcmluaWRhZCBhbmQgVG9iYWdvIiBdLAoJWyAiNDQxIiwgIkl2YW5hIiwgIlBhdHRlcnNvbiIsICJHNU8gNkE1IiwgIkdlb3JnaWEiIF0sCglbICI0NDIiLCAiU3lkbmV5IiwgIk1jY3VsbG91Z2giLCAiVzlNIDJINSIsICJBbWVyaWNhbiBTYW1vYSIgXSwKCVsgIjQ0MyIsICJBbHZpbiIsICJGdWx0b24iLCAiWDhBIDhSNSIsICJBbnRpZ3VhIGFuZCBCYXJidWRhIiBdLAoJWyAiNDQ0IiwgIkFsZnJlZGEiLCAiTG9wZXoiLCAiNDI0OTkiLCAiTW9udHNlcnJhdCIgXSwKCVsgIjQ0NSIsICJFdGhhbiIsICJCaXJkIiwgIlc5QSA4TTEiLCAiQnJpdGlzaCBJbmRpYW4gT2NlYW4gVGVycml0b3J5IiBdLAoJWyAiNDQ2IiwgIlpldXMiLCAiTG9nYW4iLCAiMDE2ODIiLCAiU2FuIE1hcmlubyIgXSwKCVsgIjQ0NyIsICJOZWhydSIsICJBbmRyZXdzIiwgIlc4SiAzQzgiLCAiRG9taW5pY2FuIFJlcHVibGljIiBdLAoJWyAiNDQ4IiwgIkRvbm5hIiwgIkJvb3RoIiwgIjY0NzU0IiwgIk5lcGFsIiBdLAoJWyAiNDQ5IiwgIkNydXoiLCAiQnJ1Y2UiLCAiMTc0MjkiLCAiQnVydW5kaSIgXSwKCVsgIjQ1MCIsICJSb25hbiIsICJTYXVuZGVycyIsICI2OTk1NyIsICJTb3V0aCBBZnJpY2EiIF0sCglbICI0NTEiLCAiSm9yZGFuIiwgIkJhcm5lcyIsICJEOEsgOUw4IiwgIkRvbWluaWNhIiBdLAoJWyAiNDUyIiwgIkNhcmx5IiwgIkxvdmUiLCAiRDhaIDNQNCIsICJNYXVyaXRhbmlhIiBdLAoJWyAiNDUzIiwgIk1hcmkiLCAiR2VvcmdlIiwgIjYwMjYwIiwgIkphcGFuIiBdLAoJWyAiNDU0IiwgIkthcmx5IiwgIkhvZGdlcyIsICIxNTc5MCIsICJTb3V0aCBHZW9yZ2lhIGFuZCBUaGUgU291dGggU2FuZHdpY2ggSXNsYW5kcyIgXSwKCVsgIjQ1NSIsICJSYW5hIiwgIkxvZ2FuIiwgIk0xUiA2WTYiLCAiQm9zbmlhIGFuZCBIZXJ6ZWdvdmluYSIgXSwKCVsgIjQ1NiIsICJUaGVvZG9yZSIsICJTaW1zIiwgIkM3QSA4VDIiLCAiQmFyYmFkb3MiIF0sCglbICI0NTciLCAiUXVpbiIsICJUaG9tcHNvbiIsICIyNjg4NCIsICJCb3V2ZXQgSXNsYW5kIiBdLAoJWyAiNDU4IiwgIktpbWJlcmxleSIsICJTbG9hbiIsICJTNVQgOEUzIiwgIkNvc3RhIFJpY2EiIF0sCglbICI0NTkiLCAiVXB0b24iLCAiVmFsZW56dWVsYSIsICJaNkogNlExIiwgIk1hY2FvIiBdLAoJWyAiNDYwIiwgIkNsaW50b24iLCAiV2lsbGlhbXMiLCAiWjNPIDdDNCIsICJHZXJtYW55IiBdLAoJWyAiNDYxIiwgIlNhbXNvbiIsICJNYXRoaXMiLCAiRzFUIDFWOSIsICJTZW5lZ2FsIiBdLAoJWyAiNDYyIiwgIk1pY2hlbGxlIiwgIkZyb3N0IiwgIjg3MTEzIiwgIlNlcmJpYSBhbmQgTW9udGVuZWdybyIgXSwKCVsgIjQ2MyIsICJUeXJvbmUiLCAiQ29mZmV5IiwgIjgwNzA1IiwgIkFsYmFuaWEiIF0sCglbICI0NjQiLCAiQWxlYSIsICJEZWxhbmV5IiwgIkU0UyA0SzQiLCAiR3V5YW5hIiBdLAoJWyAiNDY1IiwgIkRvbWluaXF1ZSIsICJTY2h3YXJ0eiIsICI4MTM2OCIsICJGYWxrbGFuZCBJc2xhbmRzIChNYWx2aW5hcykiIF0sCglbICI0NjYiLCAiQmVuZWRpY3QiLCAiTm9ydG9uIiwgIkQxQyA5QzgiLCAiQ3lwcnVzIiBdLAoJWyAiNDY3IiwgIlZhdWdoYW4iLCAiU3RlaW4iLCAiUjdLIDFMOCIsICJFZ3lwdCIgXSwKCVsgIjQ2OCIsICJDaGFybGVzIiwgIkZvbGV5IiwgIjIwNDM0IiwgIkFuZ3VpbGxhIiBdLAoJWyAiNDY5IiwgIkFyZGVuIiwgIlJhbW9zIiwgIjU0MDY1IiwgIkdpYnJhbHRhciIgXSwKCVsgIjQ3MCIsICJEaWxsb24iLCAiUGF0ZWwiLCAiTDZIIDFINiIsICJMaWJlcmlhIiBdLAoJWyAiNDcxIiwgIkdyZXRjaGVuIiwgIkRhdmVucG9ydCIsICI1NzE4OCIsICJFcXVhdG9yaWFsIEd1aW5lYSIgXSwKCVsgIjQ3MiIsICJJdnkiLCAiUmFuZGFsbCIsICI1MjYxNyIsICJDb3N0YSBSaWNhIiBdLAoJWyAiNDczIiwgIkJyZXR0IiwgIkJhaXJkIiwgIjQ1NzkxIiwgIkh1bmdhcnkiIF0sCglbICI0NzQiLCAiV3lvbWluZyIsICJTcGFya3MiLCAiMTEyNjYiLCAiTHV4ZW1ib3VyZyIgXSwKCVsgIjQ3NSIsICJSYXNoYWQiLCAiUm95IiwgIjQ3MDEyIiwgIkd1YW0iIF0sCglbICI0NzYiLCAiU29wb2xpbmUiLCAiTGUiLCAiTTFHIDJQOCIsICJVbml0ZWQgQXJhYiBFbWlyYXRlcyIgXSwKCVsgIjQ3NyIsICJVcnNhIiwgIkhheW5lcyIsICI1Mzc3NCIsICJCcml0aXNoIEluZGlhbiBPY2VhbiBUZXJyaXRvcnkiIF0sCglbICI0NzgiLCAiTWFpYSIsICJWaW5jZW50IiwgIjI2NzczIiwgIk5ldyBDYWxlZG9uaWEiIF0sCglbICI0NzkiLCAiU2FsdmFkb3IiLCAiUGFjZSIsICJTOUUgMkM0IiwgIkVneXB0IiBdLAoJWyAiNDgwIiwgIkJldGhhbnkiLCAiV2lsY294IiwgIkYySCA3TjAiLCAiVXpiZWtpc3RhbiIgXSwKCVsgIjQ4MSIsICJTYXJhIiwgIkJyb29rcyIsICIwODE3NiIsICJIb2x5IFNlZSAoVmF0aWNhbiBDaXR5IFN0YXRlKSIgXSwKCVsgIjQ4MiIsICJMaWxsaXRoIiwgIlNhbXBzb24iLCAiNzU1NzYiLCAiQnJpdGlzaCBJbmRpYW4gT2NlYW4gVGVycml0b3J5IiBdLAoJWyAiNDgzIiwgIkJyeW5uZSIsICJCcm93bmluZyIsICJONEsgN1A2IiwgIlBlcnUiIF0sCglbICI0ODQiLCAiQmVjayIsICJUcmFuIiwgIjA2ODE1IiwgIkNhbWJvZGlhIiBdLAoJWyAiNDg1IiwgIlBldGVyIiwgIkh1cmxleSIsICIwNTc3MCIsICJSd2FuZGEiIF0sCglbICI0ODYiLCAiQnVmZnkiLCAiU2hhcnBlIiwgIkg4RiA4RzYiLCAiR2VvcmdpYSIgXSwKCVsgIjQ4NyIsICJIYXJyaXNvbiIsICJDcm9zcyIsICJZMUEgMVI4IiwgIlVuaXRlZCBLaW5nZG9tIiBdLAoJWyAiNDg4IiwgIlVyc2EiLCAiV29sZiIsICJKOEMgOVE4IiwgIkZyZW5jaCBQb2x5bmVzaWEiIF0sCglbICI0ODkiLCAiTmF5ZGEiLCAiVmFzcXVleiIsICIwNTUyMyIsICJUYWl3YW4sIFByb3ZpbmNlIG9mIENoaW5hIiBdLAoJWyAiNDkwIiwgIkdyZXRjaGVuIiwgIldhbHRlcnMiLCAiMjg2MjgiLCAiU2V5Y2hlbGxlcyIgXSwKCVsgIjQ5MSIsICJBZHJpYW4iLCAiSGlja21hbiIsICIxNzk1NiIsICJFbCBTYWx2YWRvciIgXSwKCVsgIjQ5MiIsICJMYXVyYSIsICJNb29uIiwgIjMyMTAzIiwgIk15YW5tYXIiIF0sCglbICI0OTMiLCAiS2VsbGllIiwgIkJhcm5ldHQiLCAiTDVaIDJVOCIsICJTYWludCBIZWxlbmEiIF0sCglbICI0OTQiLCAiSWxsYW5hIiwgIlN0YW50b24iLCAiWjVEIDJHMCIsICJBdXN0cmFsaWEiIF0sCglbICI0OTUiLCAiSmVzY2llIiwgIlNhbnRpYWdvIiwgIkQ5TCA0QjUiLCAiQ2FtYm9kaWEiIF0sCglbICI0OTYiLCAiTGF1cmEiLCAiSG9wa2lucyIsICJYNlYgOVM1IiwgIk5ldGhlcmxhbmRzIEFudGlsbGVzIiBdLAoJWyAiNDk3IiwgIlZpZWxrYSIsICJIYXJkaW5nIiwgIlU2QSA5VDIiLCAiQ2FtYm9kaWEiIF0sCglbICI0OTgiLCAiV2FsdGVyIiwgIkdlbnRyeSIsICJMM1ggOVE5IiwgIlNsb3ZlbmlhIiBdLAoJWyAiNDk5IiwgIlNhcmEiLCAiQXRraW5zb24iLCAiNjcxNDYiLCAiR3VpbmVhIiBdLAoJWyAiNTAwIiwgIllvbGFuZGEiLCAiQ2hhbWJlcnMiLCAiUThEIDNXMCIsICJaaW1iYWJ3ZSIgXSwKCVsgIjUwMSIsICJKb3NpYWgiLCAiVmlsbGFycmVhbCIsICJJMVYgNlk3IiwgIkJ1cmtpbmEgRmFzbyIgXSwKCVsgIjUwMiIsICJIYXlmYSIsICJCb3dtYW4iLCAiNzcxNDgiLCAiU2F1ZGkgQXJhYmlhIiBdLAoJWyAiNTAzIiwgIkNvbGV0dGUiLCAiQ29ubGV5IiwgIjQxMjMyIiwgIkVzdG9uaWEiIF0sCglbICI1MDQiLCAiTGFuYSIsICJEb3lsZSIsICIzMjk2MiIsICJDdWJhIiBdLAoJWyAiNTA1IiwgIktlZWdhbiIsICJHb29kd2luIiwgIk0yUCAxWDMiLCAiQ29jb3MgKEtlZWxpbmcpIElzbGFuZHMiIF0sCglbICI1MDYiLCAiTmluYSIsICJDcm9zcyIsICI0OTU4MCIsICJHZXJtYW55IiBdLAoJWyAiNTA3IiwgIlhlbm9zIiwgIkNlcnZhbnRlcyIsICJLNlggN1c4IiwgIk1hdXJpdGl1cyIgXSwKCVsgIjUwOCIsICJKYXJlZCIsICJIZXN0ZXIiLCAiMzAxNTYiLCAiVXpiZWtpc3RhbiIgXSwKCVsgIjUwOSIsICJEYW1vbiIsICJDdXJyeSIsICJVMkogMkQ4IiwgIlBpdGNhaXJuIiBdLAoJWyAiNTEwIiwgIkFtZXJ5IiwgIlNhdmFnZSIsICJPMVMgMlo0IiwgIlR1cmttZW5pc3RhbiIgXSwKCVsgIjUxMSIsICJCcmlhbiIsICJXaWxraW5zb24iLCAiSjZPIDRUMCIsICJMdXhlbWJvdXJnIiBdLAoJWyAiNTEyIiwgIkl2b3J5IiwgIk1ja2lubmV5IiwgIkwzRSA4TTIiLCAiTGl0aHVhbmlhIiBdLAoJWyAiNTEzIiwgIkVyaWMiLCAiRGFsdG9uIiwgIlkxTCA2RjQiLCAiRXRoaW9waWEiIF0sCglbICI1MTQiLCAiQnJhbmRvbiIsICJDYWxsYWhhbiIsICJLNlEgOUI0IiwgIkhhaXRpIiBdLAoJWyAiNTE1IiwgIlBoaWxsaXAiLCAiTWNsZWFuIiwgIjE4ODM2IiwgIkV0aGlvcGlhIiBdLAoJWyAiNTE2IiwgIkNhcmx5IiwgIkdyZWVyIiwgIjE2ODExIiwgIk1heW90dGUiIF0sCglbICI1MTciLCAiU3RvbmUiLCAiV2FyZSIsICI1ODc5NSIsICJNb2xkb3ZhIiBdLAoJWyAiNTE4IiwgIlhlbmEiLCAiSGF5ZGVuIiwgIjk3MTU4IiwgIkNoYWQiIF0sCglbICI1MTkiLCAiQ2F0aGVyaW5lIiwgIkxlb25hcmQiLCAiNzc4NjgiLCAiQXplcmJhaWphbiIgXSwKCVsgIjUyMCIsICJCZXJuYXJkIiwgIkhvcnRvbiIsICIwNDI3MCIsICJZZW1lbiIgXSwKCVsgIjUyMSIsICJPbGdhIiwgIlJpY2htb25kIiwgIjg5MTY5IiwgIkxlYmFub24iIF0sCglbICI1MjIiLCAiSXJpcyIsICJDdW1taW5ncyIsICI3ODgzNiIsICJGYWxrbGFuZCBJc2xhbmRzIChNYWx2aW5hcykiIF0sCglbICI1MjMiLCAiQmVhdSIsICJNY2NhbGwiLCAiNzg2MzgiLCAiTW9uYWNvIiBdLAoJWyAiNTI0IiwgIk1pY2hhZWwiLCAiSHVtcGhyZXkiLCAiUTFBIDJXOSIsICJUb2tlbGF1IiBdLAoJWyAiNTI1IiwgIk9yZW4iLCAiU3RldmVucyIsICJGNFYgOUc3IiwgIkhlYXJkIElzbGFuZCBhbmQgTWNkb25hbGQgSXNsYW5kcyIgXSwKCVsgIjUyNiIsICJJbWEiLCAiU2hlbHRvbiIsICIxOTI5NSIsICJNb3phbWJpcXVlIiBdLAoJWyAiNTI3IiwgIk1lcnJpdHQiLCAiTW9ycmlzb24iLCAiSzZXIDVSMCIsICJHZW9yZ2lhIiBdLAoJWyAiNTI4IiwgIlZlcmEiLCAiQ2hlcnJ5IiwgIjU0OTkzIiwgIkFuZ29sYSIgXSwKCVsgIjUyOSIsICJHcmFudCIsICJUdXJuZXIiLCAiQjRWIDJKMCIsICJTYWludCBIZWxlbmEiIF0sCglbICI1MzAiLCAiT2RldHRlIiwgIlNueWRlciIsICJOOUwgMlY4IiwgIkNoYWQiIF0sCglbICI1MzEiLCAiVW1hIiwgIlN0ZXdhcnQiLCAiRTlBIDZYOSIsICJCaHV0YW4iIF0sCglbICI1MzIiLCAiS3lsZWUiLCAiQmVzdCIsICIxMTM5MyIsICJNYWxheXNpYSIgXSwKCVsgIjUzMyIsICJOaWNob2xhcyIsICJNZXJjYWRvIiwgIjg1MTc5IiwgIlN3aXR6ZXJsYW5kIiBdLAoJWyAiNTM0IiwgIk5hdGhhbmllbCIsICJTdHVhcnQiLCAiTTFRIDZaNiIsICJNb25nb2xpYSIgXSwKCVsgIjUzNSIsICJSdXRoIiwgIkNvbnJhZCIsICJUN0cgOVY2IiwgIkd1YWRlbG91cGUiIF0sCglbICI1MzYiLCAiRGVhbm5hIiwgIkR1ZGxleSIsICI3OTcyMSIsICJLaXJpYmF0aSIgXSwKCVsgIjUzNyIsICJEYXZpZCIsICJUaG9ybnRvbiIsICJDNlIgMkczIiwgIk5ldGhlcmxhbmRzIEFudGlsbGVzIiBdLAoJWyAiNTM4IiwgIkphbmUiLCAiQXNobGV5IiwgIjQ4NzExIiwgIlJ3YW5kYSIgXSwKCVsgIjUzOSIsICJOZXJvIiwgIkN1cnJ5IiwgIjIwNTkwIiwgIkRlbm1hcmsiIF0sCglbICI1NDAiLCAiS2VsbGllIiwgIlBvb2xlIiwgIjQ2MDUzIiwgIk1hcnRpbmlxdWUiIF0sCglbICI1NDEiLCAiRnJleWEiLCAiQnVyY2giLCAiVzVSIDhZNSIsICJOb3J0aGVybiBNYXJpYW5hIElzbGFuZHMiIF0sCglbICI1NDIiLCAiTWF4d2VsbCIsICJNY2JyaWRlIiwgIkQ0VyA0TTMiLCAiUGFyYWd1YXkiIF0sCglbICI1NDMiLCAiRGF3biIsICJTYXJnZW50IiwgIjg1OTU2IiwgIkdpYnJhbHRhciIgXSwKCVsgIjU0NCIsICJMaWxhaCIsICJNYXR0aGV3cyIsICJKNEQgOEE5IiwgIk1vbnRzZXJyYXQiIF0sCglbICI1NDUiLCAiU2FsdmFkb3IiLCAiQnVybnMiLCAiMjgwNjciLCAiQmh1dGFuIiBdLAoJWyAiNTQ2IiwgIkV6ZWtpZWwiLCAiQXlhbGEiLCAiNjcxNTMiLCAiV2FsbGlzIGFuZCBGdXR1bmEiIF0sCglbICI1NDciLCAiRXZhbiIsICJCYXJrZXIiLCAiODMwMjYiLCAiUHVlcnRvIFJpY28iIF0sCglbICI1NDgiLCAiSmVtaW1hIiwgIkNhc2UiLCAiVTNTIDdONiIsICJHZW9yZ2lhIiBdLAoJWyAiNTQ5IiwgIkJlbGxlIiwgIk1jY29ubmVsbCIsICJINFMgOUY4IiwgIkFuZ29sYSIgXSwKCVsgIjU1MCIsICJEb3JpcyIsICJNYXlzIiwgIjU3Mzg3IiwgIlRvbmdhIiBdLAoJWyAiNTUxIiwgIkNhcnNvbiIsICJCdWNoYW5hbiIsICIyMDQ1NyIsICJHdWF0ZW1hbGEiIF0sCglbICI1NTIiLCAiQ2FsaXN0YSIsICJMYW1iIiwgIjI2ODUxIiwgIkdpYnJhbHRhciIgXSwKCVsgIjU1MyIsICJSZW1lZGlvcyIsICJIYWxleSIsICJBOUsgNU0xIiwgIlRva2VsYXUiIF0sCglbICI1NTQiLCAiT2RldHRlIiwgIk1jY2FydHkiLCAiWThCIDNWNCIsICJNYXJzaGFsbCBJc2xhbmRzIiBdLAoJWyAiNTU1IiwgIkxpYmJ5IiwgIlB1Z2giLCAiOTMyNjEiLCAiTmV0aGVybGFuZHMiIF0sCglbICI1NTYiLCAiQm8iLCAiTWFsZG9uYWRvIiwgIkMxSCAxSzciLCAiT21hbiIgXSwKCVsgIjU1NyIsICJDYW1lcm9uIiwgIkJlYXNsZXkiLCAiNDE4MjEiLCAiTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzIiBdLAoJWyAiNTU4IiwgIkNoYWR3aWNrIiwgIkNyb3NieSIsICI2Mjg1NSIsICJOZXcgQ2FsZWRvbmlhIiBdLAoJWyAiNTU5IiwgIlN0ZXZlbiIsICJCYXJyZXR0IiwgIjkyMTAyIiwgIlBha2lzdGFuIiBdLAoJWyAiNTYwIiwgIkpvbmFzIiwgIlZhbGRleiIsICJOM1YgNFI5IiwgIkJ1bGdhcmlhIiBdLAoJWyAiNTYxIiwgIkhhcmxhbiIsICJMYXJzZW4iLCAiWjhGIDZBMCIsICJDYXltYW4gSXNsYW5kcyIgXSwKCVsgIjU2MiIsICJJb2xhIiwgIkpveW5lciIsICJEMUogNEMzIiwgIkl0YWx5IiBdLAoJWyAiNTYzIiwgIkFicmEiLCAiTWVkaW5hIiwgIlE5TyA1SjIiLCAiQ2FtYm9kaWEiIF0sCglbICI1NjQiLCAiU29sb21vbiIsICJEYXZpZHNvbiIsICI5MTMxNyIsICJUdXJrbWVuaXN0YW4iIF0sCglbICI1NjUiLCAiQWxpc2EiLCAiS2ltIiwgIjMzMDM2IiwgIkF1c3RyaWEiIF0sCglbICI1NjYiLCAiRGVhY29uIiwgIlNpbHZhIiwgIlo1TCA2TTAiLCAiRGppYm91dGkiIF0sCglbICI1NjciLCAiQnJlZSIsICJMYW5kcnkiLCAiNDMxMzUiLCAiQ3plY2ggUmVwdWJsaWMiIF0sCglbICI1NjgiLCAiTW9sbHkiLCAiTGVhY2giLCAiNzE3MTQiLCAiQm90c3dhbmEiIF0sCglbICI1NjkiLCAiSWRvbmEiLCAiQ2FpbiIsICJBMkogMVI4IiwgIlNvdXRoIEdlb3JnaWEgYW5kIFRoZSBTb3V0aCBTYW5kd2ljaCBJc2xhbmRzIiBdLAoJWyAiNTcwIiwgIkFpbGVlbiIsICJTYWxpbmFzIiwgIjkwMzQ0IiwgIlV6YmVraXN0YW4iIF0sCglbICI1NzEiLCAiRG9taW5pcXVlIiwgIkNvb3BlciIsICIzMTgwMyIsICJTYW8gVG9tZSBhbmQgUHJpbmNpcGUiIF0sCglbICI1NzIiLCAiTHVuZWEiLCAiUG9sbGFyZCIsICJTOVIgN0IwIiwgIlN3ZWRlbiIgXSwKCVsgIjU3MyIsICJMZW8iLCAiQ29tYnMiLCAiVzdFIDhUNCIsICJVa3JhaW5lIiBdLAoJWyAiNTc0IiwgIklsbGlhbmEiLCAiRG9ub3ZhbiIsICJEOEsgM1I0IiwgIlBhbGF1IiBdLAoJWyAiNTc1IiwgIk9ybGFuZG8iLCAiVmF1Z2hhbiIsICJRNEkgM0UzIiwgIkJvc25pYSBhbmQgSGVyemVnb3ZpbmEiIF0sCglbICI1NzYiLCAiWXVyaSIsICJCbGFrZSIsICJJOVcgNVU1IiwgIlNleWNoZWxsZXMiIF0sCglbICI1NzciLCAiQW1hbmRhIiwgIkJhbGR3aW4iLCAiMTk3NTIiLCAiVHVya21lbmlzdGFuIiBdLAoJWyAiNTc4IiwgIkhhbm5hIiwgIkVtZXJzb24iLCAiNzMzMTYiLCAiQW50aWd1YSBhbmQgQmFyYnVkYSIgXSwKCVsgIjU3OSIsICJYeWxhIiwgIkF0a2lucyIsICIxMTE1MSIsICJVZ2FuZGEiIF0sCglbICI1ODAiLCAiTmF0aGFuaWVsIiwgIlBhdHRlcnNvbiIsICIwMDM5MSIsICJQb3J0dWdhbCIgXSwKCVsgIjU4MSIsICJOYWlkYSIsICJDb3RlIiwgIjE3NDg0IiwgIk1hdXJpdGl1cyIgXSwKCVsgIjU4MiIsICJTY2FybGV0dCIsICJMaXR0bGUiLCAiVjhOIDhBNiIsICJTYW8gVG9tZSBhbmQgUHJpbmNpcGUiIF0sCglbICI1ODMiLCAiT2Rlc3NhIiwgIktlcnIiLCAiNTY0NTYiLCAiU3dlZGVuIiBdLAoJWyAiNTg0IiwgIkthbWFsIiwgIlJpY2hhcmRzb24iLCAiRjZTIDRJMSIsICJBbGdlcmlhIiBdLAoJWyAiNTg1IiwgIkdyaWZmaXRoIiwgIk1vcnRvbiIsICJJNUggMlowIiwgIlZhbnVhdHUiIF0sCglbICI1ODYiLCAiT3JsaSIsICJTYW50YW5hIiwgIjQ4MjEzIiwgIkJ1cnVuZGkiIF0sCglbICI1ODciLCAiQ291cnRuZXkiLCAiQ29vayIsICJSM08gM0E5IiwgIkNhcGUgVmVyZGUiIF0sCglbICI1ODgiLCAiSm9sZW5lIiwgIldhbGxhY2UiLCAiRjZRIDdXOCIsICJaYW1iaWEiIF0sCglbICI1ODkiLCAiQmVydCIsICJTaGFycCIsICJYN1QgN1o4IiwgIlBhcmFndWF5IiBdLAoJWyAiNTkwIiwgIklsYSIsICJDYXJ2ZXIiLCAiRTRNIDdQNCIsICJQYXJhZ3VheSIgXSwKCVsgIjU5MSIsICJNZXJyaWxsIiwgIldhbGwiLCAiNDk0MTYiLCAiRmlqaSIgXSwKCVsgIjU5MiIsICJIYW5hZSIsICJFc3Bpbm96YSIsICJZNkQgNks4IiwgIlR1cmtleSIgXSwKCVsgIjU5MyIsICJTdGVwaGFuaWUiLCAiQm9uZCIsICJaMVEgM1AzIiwgIkFsZ2VyaWEiIF0sCglbICI1OTQiLCAiTGlvbmVsIiwgIkxlb25hcmQiLCAiVThPIDdHNiIsICJOYXVydSIgXSwKCVsgIjU5NSIsICJGYWl0aCIsICJSYW1pcmV6IiwgIjc1MTgxIiwgIlNsb3Zha2lhIiBdLAoJWyAiNTk2IiwgIkZyaXR6IiwgIkdsYXNzIiwgIjYyODc4IiwgIkVsIFNhbHZhZG9yIiBdLAoJWyAiNTk3IiwgIlJheWEiLCAiR2FyZG5lciIsICJMM0UgMkM3IiwgIkluZGlhIiBdLAoJWyAiNTk4IiwgIkJyeW5uZSIsICJQcmljZSIsICJXMVMgNk85IiwgIkxpdGh1YW5pYSIgXSwKCVsgIjU5OSIsICJLYXJlbiIsICJHcmF5IiwgIk80WCA4RjYiLCAiQWxiYW5pYSIgXSwKCVsgIjYwMCIsICJQZXJyeSIsICJHb29kd2luIiwgIjQ0MjY2IiwgIkxpYnlhbiBBcmFiIEphbWFoaXJpeWEiIF0sCglbICI2MDEiLCAiRHlsYW4iLCAiR2xvdmVyIiwgIjc2NTczIiwgIkVzdG9uaWEiIF0sCglbICI2MDIiLCAiTWVsaW5kYSIsICJIb2xsb3dheSIsICIwNzg2MSIsICJHcmVuYWRhIiBdLAoJWyAiNjAzIiwgIlJhaGltIiwgIlJvYmluc29uIiwgIkQ3TSAxRTgiLCAiTWFkYWdhc2NhciIgXSwKCVsgIjYwNCIsICJPcmkiLCAiT2Nvbm5vciIsICIxMDM4NiIsICJBbnRhcmN0aWNhIiBdLAoJWyAiNjA1IiwgIkNhbmRhY2UiLCAiUHJlc3RvbiIsICIwMzYxMCIsICJEZW5tYXJrIiBdLAoJWyAiNjA2IiwgIldpbmciLCAiSG93ZSIsICJFNlUgM0gyIiwgIkJ1cnVuZGkiIF0sCglbICI2MDciLCAiTHVjeSIsICJFYXRvbiIsICIyNjQzNiIsICJHdWluZWEiIF0sCglbICI2MDgiLCAiSWduYXRpdXMiLCAiQmxldmlucyIsICI5MzU5NyIsICJTZXJiaWEgYW5kIE1vbnRlbmVncm8iIF0sCglbICI2MDkiLCAiTmFkaW5lIiwgIkZyYW5jbyIsICI4MDA5NiIsICJUb25nYSIgXSwKCVsgIjYxMCIsICJTaG9zaGFuYSIsICJXYWx0ZXJzIiwgIlM0RiA1TzgiLCAiTWljcm9uZXNpYSIgXSwKCVsgIjYxMSIsICJSZW1lZGlvcyIsICJCdWNrbmVyIiwgIjI5MjEzIiwgIkFudGlndWEgYW5kIEJhcmJ1ZGEiIF0sCglbICI2MTIiLCAiQWRhbSIsICJIb3JuZSIsICJGOFYgMVY4IiwgIk9tYW4iIF0sCglbICI2MTMiLCAiS2llcmFuIiwgIlNhdW5kZXJzIiwgIkk3QSA3WTUiLCAiSmFwYW4iIF0sCglbICI2MTQiLCAiSXNhYmVsbGUiLCAiRmxldGNoZXIiLCAiSzJLIDNLNSIsICJOb3J3YXkiIF0sCglbICI2MTUiLCAiUnlkZXIiLCAiQmFsbGFyZCIsICIzODUxOCIsICJUYW56YW5pYSwgVW5pdGVkIFJlcHVibGljIG9mIiBdLAoJWyAiNjE2IiwgIk5pbmEiLCAiR3VlcnJlcm8iLCAiNjExNDIiLCAiU2FpbnQgS2l0dHMgYW5kIE5ldmlzIiBdLAoJWyAiNjE3IiwgIlNoZWlsYSIsICJQb29sZSIsICJFMkggNkk2IiwgIkRlbm1hcmsiIF0sCglbICI2MTgiLCAiTWVseXNzYSIsICJNY2RhbmllbCIsICIwODI0NyIsICJOZXRoZXJsYW5kcyBBbnRpbGxlcyIgXSwKCVsgIjYxOSIsICJMZWlsYSIsICJWYW5nIiwgIlE1WiAzUzEiLCAiVW5pdGVkIFN0YXRlcyBNaW5vciBPdXRseWluZyBJc2xhbmRzIiBdLAoJWyAiNjIwIiwgIkdyYWR5IiwgIkFndWlsYXIiLCAiUjFJIDhJOCIsICJTbG92ZW5pYSIgXSwKCVsgIjYyMSIsICJQbGF0byIsICJUZXJyZWxsIiwgIjIzOTE2IiwgIkt1d2FpdCIgXSwKCVsgIjYyMiIsICJSYW1hIiwgIlBlcmtpbnMiLCAiNTY1MDYiLCAiUnVzc2lhbiBGZWRlcmF0aW9uIiBdLAoJWyAiNjIzIiwgIkJvcmlzIiwgIkNoYW5leSIsICI2NjczNyIsICJBbnRpZ3VhIGFuZCBCYXJidWRhIiBdLAoJWyAiNjI0IiwgIkVkd2FyZCIsICJDbGFya2UiLCAiMzA3MjIiLCAiSXJhcSIgXSwKCVsgIjYyNSIsICJTa3lsZXIiLCAiV2lzZSIsICI1MzI0OCIsICJUYWl3YW4sIFByb3ZpbmNlIG9mIENoaW5hIiBdLAoJWyAiNjI2IiwgIlV0YSIsICJDb3giLCAiODUyNDIiLCAiTWFsYXdpIiBdLAoJWyAiNjI3IiwgIkxlc2xleSIsICJXYXRraW5zIiwgIjI2NzEwIiwgIkVzdG9uaWEiIF0sCglbICI2MjgiLCAiR3JheSIsICJIYXJyaXNvbiIsICJDNUwgOVk3IiwgIk5lcGFsIiBdLAoJWyAiNjI5IiwgIkpvYW4iLCAiRmxvcmVzIiwgIko1USAyQjkiLCAiVGFqaWtpc3RhbiIgXSwKCVsgIjYzMCIsICJSZWVjZSIsICJMb3R0IiwgIjg1MTUyIiwgIkFsZ2VyaWEiIF0sCglbICI2MzEiLCAiSmVyb21lIiwgIkZhdWxrbmVyIiwgIlYxSyAzTjIiLCAiS2lyaWJhdGkiIF0sCglbICI2MzIiLCAiSmFja3NvbiIsICJIdWRzb24iLCAiODU5MzIiLCAiQm90c3dhbmEiIF0sCglbICI2MzMiLCAiVW1hIiwgIkJvb2tlciIsICI3OTc1NSIsICJTZW5lZ2FsIiBdLAoJWyAiNjM0IiwgIkthdGVseW4iLCAiR2lsbGVzcGllIiwgIlE4UCA0VjkiLCAiRXJpdHJlYSIgXSwKCVsgIjYzNSIsICJDbGlvIiwgIlRpbGxtYW4iLCAiNjc1NTIiLCAiTGliZXJpYSIgXSwKCVsgIjYzNiIsICJBbmpvbGllIiwgIk5peG9uIiwgIjM2NjE1IiwgIkJvdHN3YW5hIiBdLAoJWyAiNjM3IiwgIk5lbGwiLCAiTGVlIiwgIlQ5UyA0UjMiLCAiRnJlbmNoIFNvdXRoZXJuIFRlcnJpdG9yaWVzIiBdLAoJWyAiNjM4IiwgIkFudGhvbnkiLCAiQWd1aXJyZSIsICI4NTQ0MyIsICJNb3JvY2NvIiBdLAoJWyAiNjM5IiwgIkFhcm9uIiwgIkdyZWVuIiwgIjkwMzI2IiwgIkZhcm9lIElzbGFuZHMiIF0sCglbICI2NDAiLCAiR2FsdmluIiwgIllhbmciLCAiQTRYIDhINiIsICJVa3JhaW5lIiBdLAoJWyAiNjQxIiwgIllvc2hpIiwgIlN0cmlja2xhbmQiLCAiNTI1MzgiLCAiQnJhemlsIiBdLAoJWyAiNjQyIiwgIkJyZW5kZW4iLCAiS2lya2xhbmQiLCAiWDdQIDhWOSIsICJUdXJrcyBhbmQgQ2FpY29zIElzbGFuZHMiIF0sCglbICI2NDMiLCAiQnJlZSIsICJTdG9uZSIsICJVNEwgMkgyIiwgIkhvbmcgS29uZyIgXSwKCVsgIjY0NCIsICJRdWluIiwgIlRhbm5lciIsICJVNEEgMVg0IiwgIkZhcm9lIElzbGFuZHMiIF0sCglbICI2NDUiLCAiQ2FtaWxsYSIsICJIZWF0aCIsICI5MTc0OSIsICJBbmRvcnJhIiBdLAoJWyAiNjQ2IiwgIlhhdmllcmEiLCAiQnVsbG9jayIsICJJNFUgN1cwIiwgIkxpYnlhbiBBcmFiIEphbWFoaXJpeWEiIF0sCglbICI2NDciLCAiS2F5IiwgIlJvd2UiLCAiNTk2ODkiLCAiSWNlbGFuZCIgXSwKCVsgIjY0OCIsICJMYW5jZSIsICJCb25kIiwgIjY2NTU4IiwgIlNwYWluIiBdLAoJWyAiNjQ5IiwgIkZyZWRlcmlja2EiLCAiTGFuZ2xleSIsICI0ODc4MiIsICJDYXltYW4gSXNsYW5kcyIgXSwKCVsgIjY1MCIsICJDaGFybGVzIiwgIkF2aWxhIiwgIjQyMDM3IiwgIlBhcHVhIE5ldyBHdWluZWEiIF0sCglbICI2NTEiLCAiUmFtb25hIiwgIlJpb3MiLCAiVDVNIDNFMSIsICJBcmdlbnRpbmEiIF0sCglbICI2NTIiLCAiRXpla2llbCIsICJZb3VuZyIsICJXOFggNFM3IiwgIkZyZW5jaCBQb2x5bmVzaWEiIF0sCglbICI2NTMiLCAiQ2VsZXN0ZSIsICJEb2Rzb24iLCAiMTkxNDAiLCAiQmVuaW4iIF0sCglbICI2NTQiLCAiRnJhbmNlcyIsICJNY2ludG9zaCIsICI5MTI0NiIsICJTd2F6aWxhbmQiIF0sCglbICI2NTUiLCAiRGVhbm5hIiwgIkh5ZGUiLCAiSjhQIDNUNSIsICJDcm9hdGlhIiBdLAoJWyAiNjU2IiwgIkRhaGxpYSIsICJCbGFpciIsICI0NTM2NCIsICJLYXpha2hzdGFuIiBdLAoJWyAiNjU3IiwgIkphZGUiLCAiSGF5ZXMiLCAiSTVRIDNTOSIsICJNYWxhd2kiIF0sCglbICI2NTgiLCAiUm9iaW4iLCAiQnVsbG9jayIsICJHOVEgMlA4IiwgIklyZWxhbmQiIF0sCglbICI2NTkiLCAiTmFzaW0iLCAiQm9uZCIsICJJMlYgOE40IiwgIk1hY2Vkb25pYSIgXSwKCVsgIjY2MCIsICJBeGVsIiwgIlBpY2tldHQiLCAiMTgzNzAiLCAiU2FpbnQgVmluY2VudCBhbmQgVGhlIEdyZW5hZGluZXMiIF0sCglbICI2NjEiLCAiUGVhcmwiLCAiTGVlIiwgIkcxUiAzUjgiLCAiUG9sYW5kIiBdLAoJWyAiNjYyIiwgIkdhcnRoIiwgIk1leWVycyIsICI5MDMwOCIsICJHZW9yZ2lhIiBdLAoJWyAiNjYzIiwgIkl2b3J5IiwgIlJpb3MiLCAiUzhGIDhSNSIsICJNZXhpY28iIF0sCglbICI2NjQiLCAiSmVyb21lIiwgIkxhbWJlcnQiLCAiTjFRIDZSOCIsICJTYWludCBMdWNpYSIgXSwKCVsgIjY2NSIsICJNZXJlZGl0aCIsICJDbGFyayIsICIyNzcyMCIsICJDb2NvcyAoS2VlbGluZykgSXNsYW5kcyIgXSwKCVsgIjY2NiIsICJBcm1hbmRvIiwgIkhvbGNvbWIiLCAiTTZEIDRYMCIsICJPbWFuIiBdLAoJWyAiNjY3IiwgIlJvd2FuIiwgIlBhZ2UiLCAiMDAzMDciLCAiTmF1cnUiIF0sCglbICI2NjgiLCAiS3lsYSIsICJCcm93biIsICJGNFcgNEM1IiwgIkhvbHkgU2VlIChWYXRpY2FuIENpdHkgU3RhdGUpIiBdLAoJWyAiNjY5IiwgIkxlaWdoIiwgIlNvc2EiLCAiMjg0OTkiLCAiVXJ1Z3VheSIgXSwKCVsgIjY3MCIsICJTaGFmaXJhIiwgIkZvcmJlcyIsICIyNjUyNiIsICJIb25kdXJhcyIgXSwKCVsgIjY3MSIsICJNYXhpbmUiLCAiTXVlbGxlciIsICI5MDkyMyIsICJLYXpha2hzdGFuIiBdLAoJWyAiNjcyIiwgIkpveSIsICJTYXJnZW50IiwgIks2VCAzVzUiLCAiTWFsYXdpIiBdLAoJWyAiNjczIiwgIkxhbWFyIiwgIlJvYmVydHMiLCAiUjVGIDlDOCIsICJQb2xhbmQiIF0sCglbICI2NzQiLCAiTWFkb25uYSIsICJMb3ZlIiwgIjE1NTE0IiwgIkN5cHJ1cyIgXSwKCVsgIjY3NSIsICJVcmllbCIsICJXYXJlIiwgIlo2ViA1SjEiLCAiU2luZ2Fwb3JlIiBdLAoJWyAiNjc2IiwgIkJldmlzIiwgIkVyaWNrc29uIiwgIk0zWCA5TTgiLCAiQnJ1bmVpIERhcnVzc2FsYW0iIF0sCglbICI2NzciLCAiR3JhbnQiLCAiVmVsYXNxdWV6IiwgIjk2OTQyIiwgIkFudGFyY3RpY2EiIF0sCglbICI2NzgiLCAiTGFycyIsICJCdWxsb2NrIiwgIjE0NzcyIiwgIkd1eWFuYSIgXSwKCVsgIjY3OSIsICJNYXJ5YW0iLCAiSm9uZXMiLCAiMDE4NTQiLCAiVG9nbyIgXSwKCVsgIjY4MCIsICJCbHl0aGUiLCAiR29vZHdpbiIsICI1MTczMSIsICJOZXcgQ2FsZWRvbmlhIiBdLAoJWyAiNjgxIiwgIkthbmUiLCAiV2lnZ2lucyIsICI1NTcyNyIsICJLaXJpYmF0aSIgXSwKCVsgIjY4MiIsICJCcmlhbiIsICJSb3NhbGVzIiwgIjI1ODk2IiwgIkNhcGUgVmVyZGUiIF0sCglbICI2ODMiLCAiQmxhemUiLCAiTGVhY2giLCAiUDZKIDNFNSIsICJOb3J0aGVybiBNYXJpYW5hIElzbGFuZHMiIF0sCglbICI2ODQiLCAiQ2FtZXJvbiIsICJOZWFsIiwgIjgyMjQ4IiwgIk1hcnNoYWxsIElzbGFuZHMiIF0sCglbICI2ODUiLCAiTHlkaWEiLCAiQ3VubmluZ2hhbSIsICJRMVYgOFA3IiwgIlNhbiBNYXJpbm8iIF0sCglbICI2ODYiLCAiVHJveSIsICJDb29rIiwgIjMyMTA2IiwgIkJyaXRpc2ggSW5kaWFuIE9jZWFuIFRlcnJpdG9yeSIgXSwKCVsgIjY4NyIsICJBbGV4YW5kZXIiLCAiVmFsZW56dWVsYSIsICJTOFogNkIyIiwgIkd1YWRlbG91cGUiIF0sCglbICI2ODgiLCAiR2FydGgiLCAiQmVjayIsICI0NjM0NCIsICJDb29rIElzbGFuZHMiIF0sCglbICI2ODkiLCAiSGlsbGFyeSIsICJOdW5leiIsICIyOTQ2MiIsICJTcmkgTGFua2EiIF0sCglbICI2OTAiLCAiSHVudGVyIiwgIlNhd3llciIsICJXOU0gNlQ0IiwgIlNhaW50IEx1Y2lhIiBdLAoJWyAiNjkxIiwgIkphcXVlbHluIiwgIkV2ZXJldHQiLCAiVDFYIDJVMiIsICJHdWluZWEtYmlzc2F1IiBdLAoJWyAiNjkyIiwgIkluZGlyYSIsICJPcnRlZ2EiLCAiNDMwNDciLCAiSXRhbHkiIF0sCglbICI2OTMiLCAiSm9zaWFoIiwgIkhpbnRvbiIsICJONUYgNVk4IiwgIkFuZG9ycmEiIF0sCglbICI2OTQiLCAiQnJ1bm8iLCAiR2F5IiwgIkUzVSAzRDkiLCAiUGFsYXUiIF0sCglbICI2OTUiLCAiTWVsaXNzYSIsICJCbGFja2J1cm4iLCAiUzRWIDFLMiIsICJWaXJnaW4gSXNsYW5kcywgVS5TLiIgXSwKCVsgIjY5NiIsICJaZXVzIiwgIkRhd3NvbiIsICJLNVMgNlo2IiwgIkJlbGdpdW0iIF0sCglbICI2OTciLCAiQ2FzdG9yIiwgIk1jbWFob24iLCAiSDNSIDFPOCIsICJDYW1ib2RpYSIgXSwKCVsgIjY5OCIsICJFbGl6YWJldGgiLCAiQmVhc2xleSIsICI5ODE3OCIsICJOb3J0aGVybiBNYXJpYW5hIElzbGFuZHMiIF0sCglbICI2OTkiLCAiSmVzY2llIiwgIkxlZSIsICIwODA1NiIsICJFcml0cmVhIiBdLAoJWyAiNzAwIiwgIkRlbm5pcyIsICJDaGFwbWFuIiwgIlQ0TyAxUTIiLCAiQmFuZ2xhZGVzaCIgXSwKCVsgIjcwMSIsICJCYXNpYSIsICJXYWxsYWNlIiwgIlUzWSA3QzEiLCAiUGl0Y2Fpcm4iIF0sCglbICI3MDIiLCAiRGFudGUiLCAiQnJld2VyIiwgIjUzNTQ0IiwgIkJvc25pYSBhbmQgSGVyemVnb3ZpbmEiIF0sCglbICI3MDMiLCAiQWRyaWVubmUiLCAiR2xlbm4iLCAiMzIzNzgiLCAiQXVzdHJpYSIgXSwKCVsgIjcwNCIsICJLZWxsaWUiLCAiQWNldmVkbyIsICI1MTcyMyIsICJJdGFseSIgXSwKCVsgIjcwNSIsICJTY2FybGV0IiwgIk1jbGF1Z2hsaW4iLCAiNDM1MDkiLCAiS2lyaWJhdGkiIF0sCglbICI3MDYiLCAiTGlsbGl0aCIsICJNdWxsaW5zIiwgIlM2TCA0WTYiLCAiS3lyZ3l6c3RhbiIgXSwKCVsgIjcwNyIsICJNYXhpbmUiLCAiQXRraW5zIiwgIlo1VCA1UjUiLCAiRGVubWFyayIgXSwKCVsgIjcwOCIsICJOaWNob2xhcyIsICJSb3NlIiwgIjQwMjg2IiwgIk1hY2Vkb25pYSIgXSwKCVsgIjcwOSIsICJaZW5pYSIsICJQdWdoIiwgIjI4NjgyIiwgIlZlbmV6dWVsYSIgXSwKCVsgIjcxMCIsICJLZWVseSIsICJUdXJuZXIiLCAiMzQ5MzkiLCAiTmV3IFplYWxhbmQiIF0sCglbICI3MTEiLCAiTWFpc2llIiwgIldhbHRvbiIsICJTNk0gNUM1IiwgIkNhbWVyb29uIiBdLAoJWyAiNzEyIiwgIk1pY2hlbGxlIiwgIlNhbGluYXMiLCAiVDdBIDlONiIsICJOaWNhcmFndWEiIF0sCglbICI3MTMiLCAiUmVlY2UiLCAiQ2xlbWVudHMiLCAiNzM5MjMiLCAiQXVzdHJpYSIgXSwKCVsgIjcxNCIsICJFbGlhbmEiLCAiRm94IiwgIlYzWSA1VDQiLCAiRGVubWFyayIgXSwKCVsgIjcxNSIsICJLZW5uZWR5IiwgIk11bGxpbnMiLCAiNDMyMTMiLCAiVmlyZ2luIElzbGFuZHMsIEJyaXRpc2giIF0sCglbICI3MTYiLCAiQWxlYSIsICJHbG92ZXIiLCAiTTZQIDNaNSIsICJUdXJrbWVuaXN0YW4iIF0sCglbICI3MTciLCAiU2NhcmxldHQiLCAiSHVudCIsICI0MTQ2MSIsICJNb250c2VycmF0IiBdLAoJWyAiNzE4IiwgIlJvb25leSIsICJLYW5lIiwgIlQ4QSAzRTIiLCAiTWFkYWdhc2NhciIgXSwKCVsgIjcxOSIsICJDYWlybyIsICJSYXkiLCAiTDZNIDFFNyIsICJDYW5hZGEiIF0sCglbICI3MjAiLCAiV2VuZHkiLCAiQnVya3MiLCAiUjhWIDhGNSIsICJWaXJnaW4gSXNsYW5kcywgVS5TLiIgXSwKCVsgIjcyMSIsICJDaHJpc3RpbmUiLCAiU3VhcmV6IiwgIjY3MzY5IiwgIkdlb3JnaWEiIF0sCglbICI3MjIiLCAiR3JhaWRlbiIsICJMZSIsICJLNE0gOVY1IiwgIk5ldyBDYWxlZG9uaWEiIF0sCglbICI3MjMiLCAiWmFuZSIsICJOdW5leiIsICI2MDU0OCIsICJIYWl0aSIgXSwKCVsgIjcyNCIsICJBbGkiLCAiQmVsbCIsICJVNFkgNEMzIiwgIlRvZ28iIF0sCglbICI3MjUiLCAiTWFyc2RlbiIsICJMZW9uIiwgIjM5Mzc0IiwgIlZlbmV6dWVsYSIgXSwKCVsgIjcyNiIsICJIb2xtZXMiLCAiS2lkZCIsICJCNksgN1E5IiwgIklyYXEiIF0sCglbICI3MjciLCAiQ2FtZXJvbiIsICJHYXJkbmVyIiwgIjg4NjI3IiwgIkJyYXppbCIgXSwKCVsgIjcyOCIsICJBdmEiLCAiR2VvcmdlIiwgIksxWiA3WTIiLCAiTW9uYWNvIiBdLAoJWyAiNzI5IiwgIkNoYW50YWxlIiwgIkhvbGxhbmQiLCAiSDFCIDlMOCIsICJBZmdoYW5pc3RhbiIgXSwKCVsgIjczMCIsICJBbGlrYSIsICJNaWRkbGV0b24iLCAiVzhYIDdPMSIsICJLb3JlYSIgXSwKCVsgIjczMSIsICJDYW1lcmFuIiwgIlppbW1lcm1hbiIsICI3ODU3NiIsICJCZW5pbiIgXSwKCVsgIjczMiIsICJCYXJyZXR0IiwgIkJsYWlyIiwgIjUxMTYxIiwgIlZpcmdpbiBJc2xhbmRzLCBVLlMuIiBdLAoJWyAiNzMzIiwgIkJyaWVsbGUiLCAiQmFsbGFyZCIsICI1OTUzOCIsICJJY2VsYW5kIiBdLAoJWyAiNzM0IiwgIlRlYWdhbiIsICJNb3JhbGVzIiwgIjQwMTA3IiwgIktlbnlhIiBdLAoJWyAiNzM1IiwgIkx1bmVhIiwgIkNhbnR1IiwgIjE0NjkwIiwgIk9tYW4iIF0sCglbICI3MzYiLCAiUm9iaW4iLCAiR2lsbW9yZSIsICIxNzk3MiIsICJOYXVydSIgXSwKCVsgIjczNyIsICJIYWxsIiwgIk1jY2FydHkiLCAiODYxNDEiLCAiQ2hpbmEiIF0sCglbICI3MzgiLCAiT2xnYSIsICJSYXNtdXNzZW4iLCAiNTgzMDkiLCAiVmlyZ2luIElzbGFuZHMsIEJyaXRpc2giIF0sCglbICI3MzkiLCAiTWFyayIsICJHcmlmZmluIiwgIjUxNTQyIiwgIkFyZ2VudGluYSIgXSwKCVsgIjc0MCIsICJNZWRnZSIsICJDYXJyaWxsbyIsICIyMzE5MiIsICJQaXRjYWlybiIgXSwKCVsgIjc0MSIsICJTdXNhbiIsICJNb3NsZXkiLCAiMzIxMjgiLCAiVHVya21lbmlzdGFuIiBdLAoJWyAiNzQyIiwgIlplbGRhIiwgIlZhbGRleiIsICI0NjgzMSIsICJOZXcgQ2FsZWRvbmlhIiBdLAoJWyAiNzQzIiwgIlJ1dGgiLCAiRG9uYWxkc29uIiwgIkY5SSA3RzciLCAiVWtyYWluZSIgXSwKCVsgIjc0NCIsICJLaXJieSIsICJXb3JrbWFuIiwgIjM2Njc5IiwgIlJ3YW5kYSIgXSwKCVsgIjc0NSIsICJBbGV4YSIsICJLaW5nIiwgIjY2NTEzIiwgIkxpYmVyaWEiIF0sCglbICI3NDYiLCAiUm9uYW4iLCAiR3Jvc3MiLCAiSzJTIDZEMCIsICJTYWludCBMdWNpYSIgXSwKCVsgIjc0NyIsICJLeWxlZSIsICJEaWxsb24iLCAiUDdZIDFJNSIsICJGYXJvZSBJc2xhbmRzIiBdLAoJWyAiNzQ4IiwgIkJyZW5kYSIsICJXZWF2ZXIiLCAiOTkzNjUiLCAiVXpiZWtpc3RhbiIgXSwKCVsgIjc0OSIsICJBcmlzdG90bGUiLCAiT3JyIiwgIjQzNDUxIiwgIkNhbmFkYSIgXSwKCVsgIjc1MCIsICJKYXF1ZWx5biIsICJUeWxlciIsICJCOVEgN1A1IiwgIkJydW5laSBEYXJ1c3NhbGFtIiBdLAoJWyAiNzUxIiwgIk1hZGVsaW5lIiwgIlN0ZXdhcnQiLCAiRDREIDJKNCIsICJaaW1iYWJ3ZSIgXSwKCVsgIjc1MiIsICJMYWNvdGEiLCAiR2xhc3MiLCAiODkxMjQiLCAiSXNyYWVsIiBdLAoJWyAiNzUzIiwgIkFkcmlhbiIsICJBc2hsZXkiLCAiTjhNIDRMMSIsICJTcmkgTGFua2EiIF0sCglbICI3NTQiLCAiSWduYXRpdXMiLCAiV2FsbGVyIiwgIjEyMDUzIiwgIlRoYWlsYW5kIiBdLAoJWyAiNzU1IiwgIlJhdmVuIiwgIlN0ZXZlbnMiLCAiODg3NjgiLCAiRXN0b25pYSIgXSwKCVsgIjc1NiIsICJDYXJseSIsICJDYW1hY2hvIiwgIjI3MDc1IiwgIlZhbnVhdHUiIF0sCglbICI3NTciLCAiTGVlIiwgIkNhbGRlcm9uIiwgIjE5NTAxIiwgIlBpdGNhaXJuIiBdLAoJWyAiNzU4IiwgIkFtb3MiLCAiQnJpZ2dzIiwgIkk2QSAzTDgiLCAiU2FpbnQgS2l0dHMgYW5kIE5ldmlzIiBdLAoJWyAiNzU5IiwgIkNoZXJ5bCIsICJWYWxlbmNpYSIsICI5MDUxNyIsICJEZW5tYXJrIiBdLAoJWyAiNzYwIiwgIktlbnlvbiIsICJGcmFuY28iLCAiQjJTIDJFMiIsICJXZXN0ZXJuIFNhaGFyYSIgXSwKCVsgIjc2MSIsICJEYW1pYW4iLCAiQWNvc3RhIiwgIkEyUyA2RDAiLCAiQmFoYW1hcyIgXSwKCVsgIjc2MiIsICJCcmVuZGEiLCAiWmFtb3JhIiwgIlQ5RSA3TDMiLCAiRmlubGFuZCIgXSwKCVsgIjc2MyIsICJDb25ub3IiLCAiQXRraW5zb24iLCAiMDM5NzUiLCAiU2llcnJhIExlb25lIiBdLAoJWyAiNzY0IiwgIkthc2VlbSIsICJXYXRlcnMiLCAiQTJLIDJYMCIsICJDaGluYSIgXSwKCVsgIjc2NSIsICJaZXBoYW5pYSIsICJXaGl0ZmllbGQiLCAiQTRaIDlQNyIsICJFcml0cmVhIiBdLAoJWyAiNzY2IiwgIkVtbWFudWVsIiwgIkJhbGxhcmQiLCAiRzFNIDZZMiIsICJGaW5sYW5kIiBdLAoJWyAiNzY3IiwgIkFtb3MiLCAiV2FsdGVycyIsICI0MzE4NCIsICJPbWFuIiBdLAoJWyAiNzY4IiwgIlVyaWVsbGUiLCAiQnJvd25pbmciLCAiMTk5NTkiLCAiUGFuYW1hIiBdLAoJWyAiNzY5IiwgIlRhU2h5YSIsICJTdW1tZXJzIiwgIkI5ViAzWTMiLCAiTWljcm9uZXNpYSIgXSwKCVsgIjc3MCIsICJKZXJtYWluZSIsICJNY2dlZSIsICJYOEEgNEUxIiwgIkNhcGUgVmVyZGUiIF0sCglbICI3NzEiLCAiQ2hhbmV5IiwgIkJlcnJ5IiwgIkcySCAyQzgiLCAiVWdhbmRhIiBdLAoJWyAiNzcyIiwgIkphaW1lIiwgIk1heSIsICI0OTcyMyIsICJFcml0cmVhIiBdLAoJWyAiNzczIiwgIk9sZ2EiLCAiQ29oZW4iLCAiMTM0MDMiLCAiTWFjYW8iIF0sCglbICI3NzQiLCAiSmFjb2IiLCAiVmF1Z2huIiwgIlU3RyAxVjUiLCAiR3JlZWNlIiBdLAoJWyAiNzc1IiwgIktlbGx5IiwgIk1jZG9uYWxkIiwgIlozQiA1RzciLCAiS2lyaWJhdGkiIF0sCglbICI3NzYiLCAiRW1pIiwgIkdpbGJlcnQiLCAiVzFMIDJNNCIsICJOaWNhcmFndWEiIF0sCglbICI3NzciLCAiRnJhbmNpcyIsICJOdW5leiIsICJLNFUgNk01IiwgIkxpdGh1YW5pYSIgXSwKCVsgIjc3OCIsICJOb2VsIiwgIk5lbHNvbiIsICJaNVQgMVkwIiwgIk5hdXJ1IiBdLAoJWyAiNzc5IiwgIk9yYSIsICJFbGxpc29uIiwgIlk1SSA0UjgiLCAiQnVydW5kaSIgXSwKCVsgIjc4MCIsICJLaXJieSIsICJHbGFzcyIsICJKNVggMkUzIiwgIkFyZ2VudGluYSIgXSwKCVsgIjc4MSIsICJIYXlsZXkiLCAiVGF0ZSIsICJWMVQgNkI2IiwgIkdyZWVjZSIgXSwKCVsgIjc4MiIsICJNb2hhbW1hZCIsICJMZWJsYW5jIiwgIkUzUyA1UjMiLCAiT21hbiIgXSwKCVsgIjc4MyIsICJMaW9uZWwiLCAiVG9kZCIsICJBMVogOUUxIiwgIk1hY2Vkb25pYSIgXSwKCVsgIjc4NCIsICJDb3VydG5leSIsICJNY2theSIsICJENEkgOFozIiwgIkZpamkiIF0sCglbICI3ODUiLCAiUmVhZ2FuIiwgIldlc3QiLCAiODQxNTkiLCAiRXF1YXRvcmlhbCBHdWluZWEiIF0sCglbICI3ODYiLCAiTm9lbCIsICJTdHJpY2tsYW5kIiwgIlE3SyA2UzMiLCAiTW96YW1iaXF1ZSIgXSwKCVsgIjc4NyIsICJMYXJhIiwgIlBvcnRlciIsICI0OTg3MiIsICJOaWdlcmlhIiBdLAoJWyAiNzg4IiwgIkt5cmEiLCAiSGFsZXkiLCAiSTlFIDJLMyIsICJEb21pbmljYW4gUmVwdWJsaWMiIF0sCglbICI3ODkiLCAiV3ludGVyIiwgIkJlYXNsZXkiLCAiNjYzMzAiLCAiSGVhcmQgSXNsYW5kIGFuZCBNY2RvbmFsZCBJc2xhbmRzIiBdLAoJWyAiNzkwIiwgIlZsYWRpbWlyIiwgIkJyaWdncyIsICI5OTUzOCIsICJCdXJraW5hIEZhc28iIF0sCglbICI3OTEiLCAiUmFmYWVsIiwgIkNhbXBiZWxsIiwgIlY4TCAyUzYiLCAiQWxnZXJpYSIgXSwKCVsgIjc5MiIsICJCdWZmeSIsICJXaWxkZXIiLCAiTjNVIDJYMCIsICJCYWhyYWluIiBdLAoJWyAiNzkzIiwgIk55c3NhIiwgIkRhd3NvbiIsICIzODQzNCIsICJTcGFpbiIgXSwKCVsgIjc5NCIsICJTeWx2aWEiLCAiU3dhbnNvbiIsICIzOTcxNCIsICJBemVyYmFpamFuIiBdLAoJWyAiNzk1IiwgIkpvbGllIiwgIkRpYXoiLCAiQTFKIDVJMSIsICJDdWJhIiBdLAoJWyAiNzk2IiwgIlJvc2FseW4iLCAiTWNkYW5pZWwiLCAiRjNUIDZFMiIsICJCZW5pbiIgXSwKCVsgIjc5NyIsICJOZWxsZSIsICJQcmluY2UiLCAiSzFNIDRVNiIsICJNYWxkaXZlcyIgXSwKCVsgIjc5OCIsICJMdWtlIiwgIktuaWdodCIsICIwNTkzMCIsICJTZXljaGVsbGVzIiBdLAoJWyAiNzk5IiwgIk1hY2F1bGF5IiwgIkNvbndheSIsICI3OTcwNyIsICJBbWVyaWNhbiBTYW1vYSIgXSwKCVsgIjgwMCIsICJGcmV5YSIsICJXZWJiIiwgIlUySCAyRDciLCAiSXJlbGFuZCIgXSwKCVsgIjgwMSIsICJDbGludG9uIiwgIk1leWVycyIsICJTOUkgN04yIiwgIk1hbHRhIiBdLAoJWyAiODAyIiwgIlJ1ZHlhcmQiLCAiQ2hhbmRsZXIiLCAiNDAzNDciLCAiQmFocmFpbiIgXSwKCVsgIjgwMyIsICJDb3VydG5leSIsICJIb292ZXIiLCAiMTIzMjUiLCAiRnJlbmNoIFBvbHluZXNpYSIgXSwKCVsgIjgwNCIsICJNZWxpc3NhIiwgIkRhdmVucG9ydCIsICJLN1AgMVM4IiwgIkNhbmFkYSIgXSwKCVsgIjgwNSIsICJOb2VsbGUiLCAiTmlldmVzIiwgIjg3NDI3IiwgIk1hcnRpbmlxdWUiIF0sCglbICI4MDYiLCAiTXlsZXMiLCAiSGFydCIsICJWNlQgMVcwIiwgIk5pdWUiIF0sCglbICI4MDciLCAiSmFzcGVyIiwgIkNhbXBvcyIsICI3ODE0MyIsICJGYXJvZSBJc2xhbmRzIiBdLAoJWyAiODA4IiwgIkFyaWFuYSIsICJWYWxlbnRpbmUiLCAiSjRYIDJENCIsICJFY3VhZG9yIiBdLAoJWyAiODA5IiwgIlZhbm5hIiwgIkZsZXRjaGVyIiwgIk00WiAxRjkiLCAiRmFyb2UgSXNsYW5kcyIgXSwKCVsgIjgxMCIsICJFbGlqYWgiLCAiSGFycGVyIiwgIlkxQiA3RTQiLCAiTmV3IFplYWxhbmQiIF0sCglbICI4MTEiLCAiTGVpbGFuaSIsICJOdW5leiIsICJLOVcgNEYwIiwgIlVuaXRlZCBBcmFiIEVtaXJhdGVzIiBdLAoJWyAiODEyIiwgIk1haWEiLCAiSHViZXIiLCAiVjRMIDhNNiIsICJVbml0ZWQgS2luZ2RvbSIgXSwKCVsgIjgxMyIsICJSaWNoYXJkIiwgIlJpZGRsZSIsICJVOEMgOFEyIiwgIk5pdWUiIF0sCglbICI4MTQiLCAiSGFycGVyIiwgIkJsYW5jaGFyZCIsICIxMDkwNCIsICJDYW1lcm9vbiIgXSwKCVsgIjgxNSIsICJBdXJlbGlhIiwgIlRydWppbGxvIiwgIjAxNjQ2IiwgIkRvbWluaWNhbiBSZXB1YmxpYyIgXSwKCVsgIjgxNiIsICJBbnRob255IiwgIk93ZW4iLCAiSjJJIDJCNCIsICJQYWxlc3RpbmlhbiBUZXJyaXRvcnksIE9jY3VwaWVkIiBdLAoJWyAiODE3IiwgIktlbHNpZSIsICJSb3kiLCAiTTNKIDZLMyIsICJNYWxkaXZlcyIgXSwKCVsgIjgxOCIsICJKYW1lcyIsICJQZWFyc29uIiwgIjk0ODEwIiwgIk1leGljbyIgXSwKCVsgIjgxOSIsICJJZ29yIiwgIk1hcnNoYWxsIiwgIlk4TSAyRDYiLCAiUGFsYXUiIF0sCglbICI4MjAiLCAiQXF1aWxhIiwgIldpbGxpcyIsICIyMDM1NCIsICJTYW1vYSIgXSwKCVsgIjgyMSIsICJSYW5kYWxsIiwgIlNoZXBwYXJkIiwgIjczNTc3IiwgIlNpZXJyYSBMZW9uZSIgXSwKCVsgIjgyMiIsICJHcmF5IiwgIk15ZXJzIiwgIjUzNjUxIiwgIkdpYnJhbHRhciIgXSwKCVsgIjgyMyIsICJEYW5hIiwgIkNhbWFjaG8iLCAiODk1NzEiLCAiUmV1bmlvbiIgXSwKCVsgIjgyNCIsICJCZXJrIiwgIkhvcHBlciIsICIxNzc5NCIsICJDb29rIElzbGFuZHMiIF0sCglbICI4MjUiLCAiU2hhbm5vbiIsICJCYXJyeSIsICI3MDUzNiIsICJCb3V2ZXQgSXNsYW5kIiBdLAoJWyAiODI2IiwgIkRhaGxpYSIsICJIZXJtYW4iLCAiRjhMIDFRMyIsICJMZXNvdGhvIiBdLAoJWyAiODI3IiwgIkdpbGxpYW4iLCAiSGF5ZXMiLCAiTzJDIDdYOCIsICJUYWppa2lzdGFuIiBdLAoJWyAiODI4IiwgIkxlbyIsICJCb2x0b24iLCAiUDZWIDZFMSIsICJEb21pbmljYSIgXSwKCVsgIjgyOSIsICJWaXZpZW4iLCAiQmVzdCIsICJFNUUgNk44IiwgIkN1YmEiIF0sCglbICI4MzAiLCAiQ2xheXRvbiIsICJCcmFkbGV5IiwgIkU3UiAzTTUiLCAiWmltYmFid2UiIF0sCglbICI4MzEiLCAiTGVzbGV5IiwgIkNvbGxpbnMiLCAiMTY1OTIiLCAiTWFsaSIgXSwKCVsgIjgzMiIsICJIb2xseSIsICJIZW5zbGV5IiwgIjQ5MDgwIiwgIlR1bmlzaWEiIF0sCglbICI4MzMiLCAiTGFyaXNzYSIsICJWZWxhenF1ZXoiLCAiNDEwNjgiLCAiSGFpdGkiIF0sCglbICI4MzQiLCAiRGVsaWxhaCIsICJNZWppYSIsICJBNUkgOVE5IiwgIkNyb2F0aWEiIF0sCglbICI4MzUiLCAiRHJldyIsICJSb2JlcnNvbiIsICJVN0UgM1IxIiwgIlNvbWFsaWEiIF0sCglbICI4MzYiLCAiSmVuZXR0ZSIsICJQYXRlbCIsICI2NDA4NCIsICJEZW5tYXJrIiBdLAoJWyAiODM3IiwgIkdpbGxpYW4iLCAiQ2xldmVsYW5kIiwgIjA1NjU5IiwgIlN5cmlhbiBBcmFiIFJlcHVibGljIiBdLAoJWyAiODM4IiwgIk5vZWxsZSIsICJMYXJhIiwgIlUxTiA2VjYiLCAiU3JpIExhbmthIiBdLAoJWyAiODM5IiwgIkNlbGVzdGUiLCAiUm9sbGlucyIsICIyNjU5MCIsICJNYXlvdHRlIiBdLAoJWyAiODQwIiwgIkVsdmlzIiwgIkZsZXRjaGVyIiwgIk04ViA2SjQiLCAiQmFoYW1hcyIgXSwKCVsgIjg0MSIsICJDYWVzYXIiLCAiSGF5cyIsICJFM0QgM1Q3IiwgIk1hbHRhIiBdLAoJWyAiODQyIiwgIlJhbWEiLCAiV2ViZXIiLCAiMjU4ODAiLCAiTWFsdGEiIF0sCglbICI4NDMiLCAiTGFlbCIsICJQYWdlIiwgIjU3MTM1IiwgIkFuZ3VpbGxhIiBdLAoJWyAiODQ0IiwgIk9tYXIiLCAiSGFtbW9uZCIsICI5MDIxMyIsICJCZWxhcnVzIiBdLAoJWyAiODQ1IiwgIlNpbW9uZSIsICJNY2ludG9zaCIsICJMNVAgMVMwIiwgIkJodXRhbiIgXSwKCVsgIjg0NiIsICJHYXkiLCAiSGFycGVyIiwgIjU2NDA0IiwgIlZpcmdpbiBJc2xhbmRzLCBVLlMuIiBdLAoJWyAiODQ3IiwgIkpvZWwiLCAiSG9sbWFuIiwgIkMxRiAxQzQiLCAiU2FpbnQgTHVjaWEiIF0sCglbICI4NDgiLCAiQ2xheXRvbiIsICJQZW5uaW5ndG9uIiwgIjU3MDAzIiwgIkthemFraHN0YW4iIF0sCglbICI4NDkiLCAiU3VzYW4iLCAiTWNrZWUiLCAiSTVVIDhGMiIsICJUYWl3YW4sIFByb3ZpbmNlIG9mIENoaW5hIiBdLAoJWyAiODUwIiwgIkplbm5hIiwgIlN0ZWluIiwgIlAySyA2TDQiLCAiUmV1bmlvbiIgXSwKCVsgIjg1MSIsICJNYWRvbm5hIiwgIkpveW5lciIsICJRNFEgNEs2IiwgIkd1YWRlbG91cGUiIF0sCglbICI4NTIiLCAiRGVpcmRyZSIsICJJbmdyYW0iLCAiTjdVIDNOOSIsICJNb25hY28iIF0sCglbICI4NTMiLCAiSnVsaWV0IiwgIkhvZGdlcyIsICJVMlEgMlQwIiwgIlV6YmVraXN0YW4iIF0sCglbICI4NTQiLCAiTmFvbWkiLCAiUmljZSIsICJPNlQgMloxIiwgIk5pY2FyYWd1YSIgXSwKCVsgIjg1NSIsICJMZWlsYSIsICJBbHZhcmFkbyIsICJaMlYgN0wzIiwgIlN1cmluYW1lIiBdLAoJWyAiODU2IiwgIkdlb3JnZSIsICJMZW9uIiwgIkw2TSAxVjIiLCAiTm9yd2F5IiBdLAoJWyAiODU3IiwgIlJhbWEiLCAiQ3J1eiIsICJZMlMgN0s2IiwgIktlbnlhIiBdLAoJWyAiODU4IiwgIkNsYXJrZSIsICJNY2tpbm5leSIsICIzNDYyMiIsICJWaWV0IE5hbSIgXSwKCVsgIjg1OSIsICJTYXZhbm5haCIsICJCYWlsZXkiLCAiTDNPIDFVNiIsICJTb2xvbW9uIElzbGFuZHMiIF0sCglbICI4NjAiLCAiTWF4d2VsbCIsICJHaWJzb24iLCAiUjlLIDlRMSIsICJWaXJnaW4gSXNsYW5kcywgQnJpdGlzaCIgXSwKCVsgIjg2MSIsICJEZXZpbiIsICJIdW1waHJleSIsICI3NDgyMSIsICJDb3N0YSBSaWNhIiBdLAoJWyAiODYyIiwgIkthZGVlbSIsICJMYXJzZW4iLCAiNDMxNzgiLCAiTHV4ZW1ib3VyZyIgXSwKCVsgIjg2MyIsICJFbHZpcyIsICJUb2RkIiwgIk8zTyAzRzkiLCAiQXplcmJhaWphbiIgXSwKCVsgIjg2NCIsICJMZXZpIiwgIk1vbnRveWEiLCAiRzFZIDFOOCIsICJWZW5lenVlbGEiIF0sCglbICI4NjUiLCAiUmlzYSIsICJCYXJuZXMiLCAiODYxMTgiLCAiQmVuaW4iIF0sCglbICI4NjYiLCAiRGlsbG9uIiwgIlJpZ2dzIiwgIk8zWSA4VjIiLCAiR3JlZW5sYW5kIiBdLAoJWyAiODY3IiwgIlN0ZXdhcnQiLCAiTWFyc2hhbGwiLCAiVjhHIDhTMiIsICJNZXhpY28iIF0sCglbICI4NjgiLCAiQ2FtZGVuIiwgIkdvZmYiLCAiTjNXIDJMMCIsICJCYWhyYWluIiBdLAoJWyAiODY5IiwgIlNoZWlsYSIsICJNZWFkb3dzIiwgIlQ2SyA3TTIiLCAiWWVtZW4iIF0sCglbICI4NzAiLCAiSG9wIiwgIkJlcmdlciIsICJROEIgOVI3IiwgIkdlcm1hbnkiIF0sCglbICI4NzEiLCAiQ2hhcmlzc2EiLCAiV2lsa2Vyc29uIiwgIjA4MDkwIiwgIkJ1cnVuZGkiIF0sCglbICI4NzIiLCAiUmFwaGFlbCIsICJDYXJleSIsICIwMzY2NyIsICJVbml0ZWQgS2luZ2RvbSIgXSwKCVsgIjg3MyIsICJNaWNhaCIsICJIb29kIiwgIlQ5TiA0VDUiLCAiR2VvcmdpYSIgXSwKCVsgIjg3NCIsICJDYXRobGVlbiIsICJNY2NhbGwiLCAiTjZIIDZOMyIsICJUYW56YW5pYSwgVW5pdGVkIFJlcHVibGljIG9mIiBdLAoJWyAiODc1IiwgIkxpc2FuZHJhIiwgIlBvb2xlIiwgIlM3TyAxSjEiLCAiR3JlZWNlIiBdLAoJWyAiODc2IiwgIlN0b25lIiwgIkJsYWNrd2VsbCIsICI5MDY1NCIsICJTZXJiaWEgYW5kIE1vbnRlbmVncm8iIF0sCglbICI4NzciLCAiU2VyZW5hIiwgIk1hbm4iLCAiMzIzMDUiLCAiVHJpbmlkYWQgYW5kIFRvYmFnbyIgXSwKCVsgIjg3OCIsICJTY2FybGV0IiwgIlR1cm5lciIsICJEN1kgOE40IiwgIk9tYW4iIF0sCglbICI4NzkiLCAiWmVuYWlkYSIsICJDYXJyaWxsbyIsICI2MDM2MSIsICJNb250c2VycmF0IiBdLAoJWyAiODgwIiwgIkphaW1lIiwgIkRhbHRvbiIsICJGNEUgNlI1IiwgIklyYXEiIF0sCglbICI4ODEiLCAiV2VzbGV5IiwgIkRyYWtlIiwgIkQ4SiA5VTIiLCAiQnVsZ2FyaWEiIF0sCglbICI4ODIiLCAiQXJtYW5kIiwgIkNoYW5kbGVyIiwgIlg4WiA5RTYiLCAiU2FpbnQgS2l0dHMgYW5kIE5ldmlzIiBdLAoJWyAiODgzIiwgIkluZXoiLCAiRGlsbGFyZCIsICI1OTk3NSIsICJFcml0cmVhIiBdLAoJWyAiODg0IiwgIlJvYW5uYSIsICJGbG95ZCIsICI2NTk1OCIsICJCb2xpdmlhIiBdLAoJWyAiODg1IiwgIlRpbW9uIiwgIkRhbHRvbiIsICJPM1EgNUI1IiwgIkNvbG9tYmlhIiBdLAoJWyAiODg2IiwgIklmZW9tYSIsICJMYW1iIiwgIko5QSA5WDAiLCAiUGFwdWEgTmV3IEd1aW5lYSIgXSwKCVsgIjg4NyIsICJCcm9keSIsICJDYXNoIiwgIjc1NTI1IiwgIkthemFraHN0YW4iIF0sCglbICI4ODgiLCAiRGF3biIsICJXaXNlIiwgIkc3WCA1SjMiLCAiU2Ftb2EiIF0sCglbICI4ODkiLCAiQ2hhbmV5IiwgIkJhcnRsZXR0IiwgIjExMTEyIiwgIkVjdWFkb3IiIF0sCglbICI4OTAiLCAiR2FsdmluIiwgIk1lcnJpdHQiLCAiNTk2MzUiLCAiQmFocmFpbiIgXSwKCVsgIjg5MSIsICJDeW50aGlhIiwgIk5hc2giLCAiVTVQIDFINCIsICJTd2l0emVybGFuZCIgXSwKCVsgIjg5MiIsICJUYXJhIiwgIkF1c3RpbiIsICJRNlggOFUwIiwgIkJ1cnVuZGkiIF0sCglbICI4OTMiLCAiUm9hbm5hIiwgIlBldHR5IiwgIjI4NTI0IiwgIk5vcnRoZXJuIE1hcmlhbmEgSXNsYW5kcyIgXSwKCVsgIjg5NCIsICJQYWxtZXIiLCAiTWNkb3dlbGwiLCAiNzgyMzQiLCAiVW5pdGVkIFN0YXRlcyBNaW5vciBPdXRseWluZyBJc2xhbmRzIiBdLAoJWyAiODk1IiwgIlNhZGUiLCAiUGF0dG9uIiwgIjI4OTg0IiwgIkN6ZWNoIFJlcHVibGljIiBdLAoJWyAiODk2IiwgIllva28iLCAiQ29tcHRvbiIsICI2MjE2NSIsICJTYWludCBLaXR0cyBhbmQgTmV2aXMiIF0sCglbICI4OTciLCAiUmVnYW4iLCAiTWNjYXJ0aHkiLCAiQzVEIDZHMCIsICJMZWJhbm9uIiBdLAoJWyAiODk4IiwgIk5vcm1hbiIsICJOaXhvbiIsICJFNEMgNEcwIiwgIlZpcmdpbiBJc2xhbmRzLCBVLlMuIiBdLAoJWyAiODk5IiwgIkpvY2VseW4iLCAiQmFsZHdpbiIsICJYOVIgMkIzIiwgIk1hY2Vkb25pYSIgXSwKCVsgIjkwMCIsICJKYXF1ZWx5biIsICJCZXJnIiwgIk42WCA2RTEiLCAiU2FpbnQgTHVjaWEiIF0sCglbICI5MDEiLCAiWmFuZSIsICJOZWxzb24iLCAiRzlQIDRKOCIsICJNYWNhbyIgXSwKCVsgIjkwMiIsICJKdWRpdGgiLCAiRWxsaW90dCIsICJSNEkgNE8zIiwgIklyYXEiIF0sCglbICI5MDMiLCAiTWFpYSIsICJFbGxpcyIsICJTOVYgNlAwIiwgIkJhaHJhaW4iIF0sCglbICI5MDQiLCAiTWVjaGVsbGUiLCAiU3RldmVucyIsICI0MzQwNiIsICJCb3V2ZXQgSXNsYW5kIiBdLAoJWyAiOTA1IiwgIlN5bHZlc3RlciIsICJEdXJhbiIsICJLNUQgOFc1IiwgIkNvc3RhIFJpY2EiIF0sCglbICI5MDYiLCAiVW5pdHkiLCAiQ29va2UiLCAiNjQzNjIiLCAiRWN1YWRvciIgXSwKCVsgIjkwNyIsICJLYXJseSIsICJWZWxhenF1ZXoiLCAiNDMyODYiLCAiR3VhbSIgXSwKCVsgIjkwOCIsICJEYW1pYW4iLCAiWWF0ZXMiLCAiODQ5MTAiLCAiVGhhaWxhbmQiIF0sCglbICI5MDkiLCAiTGludXMiLCAiR3Jvc3MiLCAiMzE4MDgiLCAiSXNyYWVsIiBdLAoJWyAiOTEwIiwgIkNvb3BlciIsICJGcmFuY28iLCAiMzY3MDAiLCAiWWVtZW4iIF0sCglbICI5MTEiLCAiR2FpbCIsICJKb25lcyIsICIwOTE1NyIsICJUdXJrZXkiIF0sCglbICI5MTIiLCAiSGF5ZmEiLCAiQmVubmV0dCIsICI1OTQyMiIsICJGcmFuY2UiIF0sCglbICI5MTMiLCAiSGVybWlvbmUiLCAiQmFyYmVyIiwgIkk2VyA4WjUiLCAiTW96YW1iaXF1ZSIgXSwKCVsgIjkxNCIsICJIZWR5IiwgIlN0ZXZlbnMiLCAiMzU1MzUiLCAiQ3ViYSIgXSwKCVsgIjkxNSIsICJHYWx2aW4iLCAiRnJlZGVyaWNrIiwgIkoyVyA5QTMiLCAiVmlyZ2luIElzbGFuZHMsIEJyaXRpc2giIF0sCglbICI5MTYiLCAiTGFtYXIiLCAiUnVzaCIsICJQNE8gM0g0IiwgIkF1c3RyaWEiIF0sCglbICI5MTciLCAiQnJlbmRhIiwgIldhbHRlciIsICJLOFEgOUg5IiwgIlRhamlraXN0YW4iIF0sCglbICI5MTgiLCAiUmlhIiwgIkd1eSIsICIxMjgwMSIsICJHaWJyYWx0YXIiIF0sCglbICI5MTkiLCAiQnJ1bm8iLCAiTHluY2giLCAiSTZVIDdEMCIsICJHcmVlbmxhbmQiIF0sCglbICI5MjAiLCAiS2lyayIsICJQZWFyc29uIiwgIjY2MjQyIiwgIkZhbGtsYW5kIElzbGFuZHMgKE1hbHZpbmFzKSIgXSwKCVsgIjkyMSIsICJPd2VuIiwgIlNvc2EiLCAiNjE0ODMiLCAiTWFydGluaXF1ZSIgXSwKCVsgIjkyMiIsICJSYWphaCIsICJNY2NhcnR5IiwgIkc5SyA2TDIiLCAiRmFyb2UgSXNsYW5kcyIgXSwKCVsgIjkyMyIsICJFcmFzbXVzIiwgIk1hbG9uZSIsICJENkggN0g1IiwgIlNpZXJyYSBMZW9uZSIgXSwKCVsgIjkyNCIsICJSYWphIiwgIkhhbGUiLCAiODU1OTAiLCAiR3VhZGVsb3VwZSIgXSwKCVsgIjkyNSIsICJMb2dhbiIsICJDaHJpc3RlbnNlbiIsICJZNkwgOFowIiwgIkd1YXRlbWFsYSIgXSwKCVsgIjkyNiIsICJLaXJlc3RpbiIsICJHcmlmZml0aCIsICI0NzkwMCIsICJNaWNyb25lc2lhIiBdLAoJWyAiOTI3IiwgIkthdG8iLCAiUmVldmVzIiwgIjkzNzc5IiwgIlVydWd1YXkiIF0sCglbICI5MjgiLCAiSm9uYWgiLCAiU3VhcmV6IiwgIjEzNzA4IiwgIlNwYWluIiBdLAoJWyAiOTI5IiwgIkFkYW0iLCAiTHlubiIsICJFMVAgMUwzIiwgIkluZG9uZXNpYSIgXSwKCVsgIjkzMCIsICJRdWlubiIsICJNY2tpbm5leSIsICI5OTY4MyIsICJGYXJvZSBJc2xhbmRzIiBdLAoJWyAiOTMxIiwgIldoaWxlbWluYSIsICJNYWNpYXMiLCAiMzIxNDUiLCAiSWNlbGFuZCIgXSwKCVsgIjkzMiIsICJHaWxsaWFuIiwgIk9zYm9ybmUiLCAiTDNMIDZHMCIsICJJdGFseSIgXSwKCVsgIjkzMyIsICJWZW51cyIsICJaYW1vcmEiLCAiMjgzMTgiLCAiQ29tb3JvcyIgXSwKCVsgIjkzNCIsICJBbGxlZ3JhIiwgIkVhdG9uIiwgIlA1WCA5UzAiLCAiQW50YXJjdGljYSIgXSwKCVsgIjkzNSIsICJEcmlzY29sbCIsICJQcmVzdG9uIiwgIlIzTCA5UjAiLCAiTml1ZSIgXSwKCVsgIjkzNiIsICJKb2VsIiwgIlNwZW5jZXIiLCAiMTIwMDYiLCAiTW9uYWNvIiBdLAoJWyAiOTM3IiwgIkx1Y2l1cyIsICJTaGFycCIsICJCOFYgNlU3IiwgIkRvbWluaWNhIiBdLAoJWyAiOTM4IiwgIkN1cnJhbiIsICJSb2JpbnNvbiIsICI4MjIxNiIsICJSb21hbmlhIiBdLAoJWyAiOTM5IiwgIktlcnJ5IiwgIkVzcGlub3phIiwgIk40QiA3UTEiLCAiR3VhdGVtYWxhIiBdLAoJWyAiOTQwIiwgIklzYWFjIiwgIktsaW5lIiwgIjg1Njc0IiwgIkNvc3RhIFJpY2EiIF0sCglbICI5NDEiLCAiTmVpbCIsICJIYXJyaXNvbiIsICJJNUEgMlMyIiwgIkdyZWVubGFuZCIgXSwKCVsgIjk0MiIsICJFenJhIiwgIlJvZHJpZ3VleiIsICJENlAgNVEzIiwgIkFuZ29sYSIgXSwKCVsgIjk0MyIsICJHYWx2aW4iLCAiSmVmZmVyc29uIiwgIkQ2SCA3RzAiLCAiTWFjZWRvbmlhIiBdLAoJWyAiOTQ0IiwgIkpvc2VwaCIsICJIYWhuIiwgIlo4ViA5QjUiLCAiVWdhbmRhIiBdLAoJWyAiOTQ1IiwgIk5haWRhIiwgIkhhbW1vbmQiLCAiNDAxMDUiLCAiUGhpbGlwcGluZXMiIF0sCglbICI5NDYiLCAiQnJlbm5hIiwgIkV2ZXJldHQiLCAiNDE3MDQiLCAiSW5kb25lc2lhIiBdLAoJWyAiOTQ3IiwgIlJhZSIsICJQYXJrcyIsICI3OTA3NyIsICJTd2VkZW4iIF0sCglbICI5NDgiLCAiSmVzc2ljYSIsICJSaWNoYXJkIiwgIlkzSSA1UjMiLCAiVWdhbmRhIiBdLAoJWyAiOTQ5IiwgIlJhY2hlbCIsICJNYXJrcyIsICIxNjE1NyIsICJDYW1lcm9vbiIgXSwKCVsgIjk1MCIsICJNYXh3ZWxsIiwgIkZlcmd1c29uIiwgIlY2QSA2TTAiLCAiVWtyYWluZSIgXSwKCVsgIjk1MSIsICJBbHlzc2EiLCAiQmVhcmQiLCAiMTM5MzYiLCAiQW50YXJjdGljYSIgXSwKCVsgIjk1MiIsICJDYW1pbGxlIiwgIkdpbGwiLCAiVjlRIDlQNyIsICJOZXcgQ2FsZWRvbmlhIiBdLAoJWyAiOTUzIiwgIkNvcmEiLCAiQm9uZCIsICJNOVggMUE0IiwgIlNleWNoZWxsZXMiIF0sCglbICI5NTQiLCAiUGV0ZXIiLCAiQWNvc3RhIiwgIjA3OTM3IiwgIkNoaWxlIiBdLAoJWyAiOTU1IiwgIkVsbGEiLCAiUG9vbGUiLCAiQTNGIDlaMSIsICJQYW5hbWEiIF0sCglbICI5NTYiLCAiQXNoZWx5IiwgIkd1ZXJyZXJvIiwgIjM3NDM2IiwgIkNlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYyIgXSwKCVsgIjk1NyIsICJNaWtheWxhIiwgIkpvaG5zdG9uIiwgIkw5VyA1VDgiLCAiQ2FtZXJvb24iIF0sCglbICI5NTgiLCAiT3JhIiwgIldlYXZlciIsICI2NTg5NyIsICJUdXJrcyBhbmQgQ2FpY29zIElzbGFuZHMiIF0sCglbICI5NTkiLCAiVGltb24iLCAiQmFybmVzIiwgIlI2SiAxSjciLCAiRGppYm91dGkiIF0sCglbICI5NjAiLCAiSmFtYWxpYSIsICJXYWRlIiwgIjIyMjExIiwgIlVuaXRlZCBTdGF0ZXMiIF0sCglbICI5NjEiLCAiQnJhZGxleSIsICJIYW5leSIsICJLMUggMVExIiwgIldlc3Rlcm4gU2FoYXJhIiBdLAoJWyAiOTYyIiwgIkxhbmNlIiwgIkxlIiwgIkg0UiA5VDciLCAiQm90c3dhbmEiIF0sCglbICI5NjMiLCAiRXRoYW4iLCAiUmljaCIsICJUOE4gMUM2IiwgIk5ldGhlcmxhbmRzIiBdLAoJWyAiOTY0IiwgIkplYW5ldHRlIiwgIkNhcnZlciIsICJHMUUgNUM4IiwgIkNvb2sgSXNsYW5kcyIgXSwKCVsgIjk2NSIsICJPY2VhbiIsICJNYXJxdWV6IiwgIjE1MDg0IiwgIlBha2lzdGFuIiBdLAoJWyAiOTY2IiwgIklmZW9tYSIsICJDbGV2ZWxhbmQiLCAiUjlEIDZNMSIsICJGcmVuY2ggR3VpYW5hIiBdLAoJWyAiOTY3IiwgIlN5bHZpYSIsICJIZXJyaW5nIiwgIlU0UiA4UDEiLCAiVGhhaWxhbmQiIF0sCglbICI5NjgiLCAiQ2xhcmUiLCAiSHVmZm1hbiIsICJRNUcgMlEwIiwgIk5pZ2VyIiBdLAoJWyAiOTY5IiwgIkNvbHRvbiIsICJMZWFjaCIsICJWM0YgOVc2IiwgIlN5cmlhbiBBcmFiIFJlcHVibGljIiBdLAoJWyAiOTcwIiwgIk1hcnlhbSIsICJIb292ZXIiLCAiWTdVIDZOMyIsICJTbG92YWtpYSIgXSwKCVsgIjk3MSIsICJOb2xhIiwgIlNuaWRlciIsICI1NDI3NSIsICJCb3NuaWEgYW5kIEhlcnplZ292aW5hIiBdLAoJWyAiOTcyIiwgIkthbWVrbyIsICJDb3RlIiwgIk0zQyA4TjAiLCAiQ2FtYm9kaWEiIF0sCglbICI5NzMiLCAiSnVsaWFuIiwgIlB1Z2giLCAiQjZFIDdKNyIsICJNYXVyaXRhbmlhIiBdLAoJWyAiOTc0IiwgIlhlbmEiLCAiTG90dCIsICI1MjI5NCIsICJFc3RvbmlhIiBdLAoJWyAiOTc1IiwgIkZ1bGxlciIsICJLaXJrIiwgIjY1Mzk2IiwgIlFhdGFyIiBdLAoJWyAiOTc2IiwgIkxhbmNlIiwgIktub3giLCAiNzgwNzQiLCAiU2VyYmlhIGFuZCBNb250ZW5lZ3JvIiBdLAoJWyAiOTc3IiwgIkhlZHdpZyIsICJCZWNrIiwgIlQ1UCA0QzgiLCAiRG9taW5pY2FuIFJlcHVibGljIiBdLAoJWyAiOTc4IiwgIk1hcnRlbmEiLCAiRGlheiIsICI2NTQyMCIsICJTYWludCBQaWVycmUgYW5kIE1pcXVlbG9uIiBdLAoJWyAiOTc5IiwgIlNoYWZpcmEiLCAiRGF2aWQiLCAiNzQ4NDMiLCAiU2VuZWdhbCIgXSwKCVsgIjk4MCIsICJTaGFmaXJhIiwgIkNsYXJrIiwgIlQ2RiA1QzciLCAiTW9uZ29saWEiIF0sCglbICI5ODEiLCAiR2VvcmdpYSIsICJCb290aCIsICIyODE4MyIsICJKYXBhbiIgXSwKCVsgIjk4MiIsICJDYW1lcm9uIiwgIkF1c3RpbiIsICJJMkogMVIxIiwgIkJhaHJhaW4iIF0sCglbICI5ODMiLCAiVmFubmEiLCAiSHlkZSIsICI4MjQzNCIsICJDcm9hdGlhIiBdLAoJWyAiOTg0IiwgIkRlYW5uYSIsICJQYXJrIiwgIjY4NDg2IiwgIlppbWJhYndlIiBdLAoJWyAiOTg1IiwgIkdyYWR5IiwgIkZyZWVtYW4iLCAiVTRPIDFROSIsICJCZWxhcnVzIiBdLAoJWyAiOTg2IiwgIlNhbmRyYSIsICJLbmFwcCIsICIzMTQxMyIsICJTdWRhbiIgXSwKCVsgIjk4NyIsICJEb3JpYW4iLCAiSm9zZXBoIiwgIjkwNzY4IiwgIkxpdGh1YW5pYSIgXSwKCVsgIjk4OCIsICJBZHJpYSIsICJCb25uZXIiLCAiMTU4OTkiLCAiTW9uZ29saWEiIF0sCglbICI5ODkiLCAiU2ViYXN0aWFuIiwgIkd1em1hbiIsICJHOUwgOUc1IiwgIlllbWVuIiBdLAoJWyAiOTkwIiwgIkFuZ2VsaWNhIiwgIlB1Y2tldHQiLCAiVzhEIDhXOCIsICJWaXJnaW4gSXNsYW5kcywgVS5TLiIgXSwKCVsgIjk5MSIsICJDb25ub3IiLCAiUGFya3MiLCAiMjYxNzUiLCAiVmlyZ2luIElzbGFuZHMsIFUuUy4iIF0sCglbICI5OTIiLCAiWWFyZGxleSIsICJHcmlmZml0aCIsICJIM0wgMlUzIiwgIlNhaW50IFBpZXJyZSBhbmQgTWlxdWVsb24iIF0sCglbICI5OTMiLCAiQ2hhcmlzc2EiLCAiQmVjayIsICIzMDYxMSIsICJaYW1iaWEiIF0sCglbICI5OTQiLCAiQ2FsdmluIiwgIlJ1c3NvIiwgIjc5OTA2IiwgIkNoaWxlIiBdLAoJWyAiOTk1IiwgIllvc2hpIiwgIkR1cmhhbSIsICJOMkogOE04IiwgIkNoaW5hIiBdLAoJWyAiOTk2IiwgIkZpbm4iLCAiQnVjayIsICJROUYgOVo4IiwgIklyYXEiIF0sCglbICI5OTciLCAiS2Vzc2llIiwgIkhvbGRlbiIsICJDNEEgMUowIiwgIlN5cmlhbiBBcmFiIFJlcHVibGljIiBdLAoJWyAiOTk4IiwgIkNobG9lIiwgIlJpY2hhcmRzIiwgIjYzMDkxIiwgIkNhbmFkYSIgXSwKCVsgIjk5OSIsICJVcmllbCIsICJTbnlkZXIiLCAiOTU0ODciLCAiUGFraXN0YW4iIF0sCglbICIxMDAwIiwgIk1haXRlIiwgIkNhc2giLCAiOTA3MDUiLCAiU3lyaWFuIEFyYWIgUmVwdWJsaWMiIF0sCglbICIxMDAxIiwgIkNhbWVyb24iLCAiU2Nod2FydHoiLCAiODI3NzgiLCAiVGFpd2FuLCBQcm92aW5jZSBvZiBDaGluYSIgXSwKCVsgIjEwMDIiLCAiRmFpdGgiLCAiSmltZW5leiIsICJKNksgMlA5IiwgIlNhaW50IFBpZXJyZSBhbmQgTWlxdWVsb24iIF0sCglbICIxMDAzIiwgIk90dG8iLCAiSGFuY29jayIsICIzNDUzNSIsICJBbmRvcnJhIiBdLAoJWyAiMTAwNCIsICJIYXJsYW4iLCAiQmxhY2t3ZWxsIiwgIk44WSA0RTYiLCAiUWF0YXIiIF0sCglbICIxMDA1IiwgIkZpdHpnZXJhbGQiLCAiR2lsbGlhbSIsICJZOUogNko1IiwgIkJ1cmtpbmEgRmFzbyIgXSwKCVsgIjEwMDYiLCAiTGV2IiwgIkJhbGxhcmQiLCAiMDE5NTYiLCAiQW1lcmljYW4gU2Ftb2EiIF0sCglbICIxMDA3IiwgIkZyZXlhIiwgIkJyb3duIiwgIjAxMTkwIiwgIlBvcnR1Z2FsIiBdLAoJWyAiMTAwOCIsICJIYXJkaW5nIiwgIk9zYm9ybiIsICIxNDgxNCIsICJTYW4gTWFyaW5vIiBdLAoJWyAiMTAwOSIsICJBbGV4YW5kZXIiLCAiSG93YXJkIiwgIjgxODQyIiwgIlJldW5pb24iIF0sCglbICIxMDEwIiwgIk9yaSIsICJNYXJzaCIsICI3NzczOCIsICJTYWludCBIZWxlbmEiIF0sCglbICIxMDExIiwgIkJyZW5uYW4iLCAiUmljaCIsICIxODY5MCIsICJDYW1ib2RpYSIgXSwKCVsgIjEwMTIiLCAiRGF3biIsICJDaHJpc3RlbnNlbiIsICJZOEYgN1IzIiwgIk1hbGkiIF0sCglbICIxMDEzIiwgIkFobWVkIiwgIlBlYXJzb24iLCAiNjIyMzAiLCAiU3VkYW4iIF0sCglbICIxMDE0IiwgIlRhbmVrIiwgIkhlYWQiLCAiMjU3NDQiLCAiS2lyaWJhdGkiIF0sCglbICIxMDE1IiwgIk1lcmVkaXRoIiwgIkNhbnR1IiwgIkU2WCAyTDEiLCAiS2VueWEiIF0sCglbICIxMDE2IiwgIkxldmkiLCAiRmlzaGVyIiwgIkk5WSA5RzIiLCAiRGppYm91dGkiIF0sCglbICIxMDE3IiwgIkthdGVsbCIsICJDYW1lcm9uIiwgIjEwMjc4IiwgIkRlbm1hcmsiIF0sCglbICIxMDE4IiwgIkluYSIsICJPcnIiLCAiUDdIIDJPMyIsICJDb25nbyIgXSwKCVsgIjEwMTkiLCAiQmVjayIsICJIYXlkZW4iLCAiMTUxMTUiLCAiU2FpbnQgTHVjaWEiIF0sCglbICIxMDIwIiwgIkNhc3NhZHkiLCAiV2FnbmVyIiwgIlI5SCA4QzUiLCAiRXN0b25pYSIgXSwKCVsgIjEwMjEiLCAiQW1lbmEiLCAiSGVycmVyYSIsICIxMzI4NiIsICJCYWhyYWluIiBdLAoJWyAiMTAyMiIsICJUYXJpayIsICJHcm9zcyIsICJDM1ggM1cwIiwgIkF6ZXJiYWlqYW4iIF0sCglbICIxMDIzIiwgIk1hcnNoYWxsIiwgIkNvbGxpZXIiLCAiMTM0MTYiLCAiRG9taW5pY2EiIF0sCglbICIxMDI0IiwgIktpcmVzdGluIiwgIkNhbGxhaGFuIiwgIjE1NDI5IiwgIk1pY3JvbmVzaWEiIF0sCglbICIxMDI1IiwgIlNhc2hhIiwgIlJpY2UiLCAiTzZIIDZYMiIsICJEZW5tYXJrIiBdLAoJWyAiMTAyNiIsICJSb3NzIiwgIkdvbnphbGV6IiwgIkQzQiAzUjUiLCAiU3VkYW4iIF0sCglbICIxMDI3IiwgIlZlZGEiLCAiQXJub2xkIiwgIjU2NjExIiwgIlN3YXppbGFuZCIgXSwKCVsgIjEwMjgiLCAiRmVyZGluYW5kIiwgIk1hY2lhcyIsICJQMVEgM0kyIiwgIkNvbG9tYmlhIiBdLAoJWyAiMTAyOSIsICJNb2hhbW1hZCIsICJSZWVkIiwgIjc0MDA1IiwgIkJodXRhbiIgXSwKCVsgIjEwMzAiLCAiUmVhZ2FuIiwgIlNhbmRvdmFsIiwgIjE5Mjc1IiwgIlBpdGNhaXJuIiBdLAoJWyAiMTAzMSIsICJEZWJyYSIsICJOZWxzb24iLCAiODU5NDUiLCAiVWtyYWluZSIgXSwKCVsgIjEwMzIiLCAiQ2xlbyIsICJSb2JlcnRzb24iLCAiODQwNzIiLCAiR3VhZGVsb3VwZSIgXSwKCVsgIjEwMzMiLCAiVGFueWEiLCAiVmFuY2UiLCAiQzFGIDdGMSIsICJSb21hbmlhIiBdLAoJWyAiMTAzNCIsICJEZXNpcmFlIiwgIldvb3RlbiIsICI3NDY1OSIsICJNb25nb2xpYSIgXSwKCVsgIjEwMzUiLCAiSGlyYW0iLCAiRXN0ZXMiLCAiUTVaIDVBMCIsICJOYW1pYmlhIiBdLAoJWyAiMTAzNiIsICJNZWRnZSIsICJXZWlzcyIsICI2NzA3OSIsICJBemVyYmFpamFuIiBdLAoJWyAiMTAzNyIsICJIdSIsICJDaGFzZSIsICI4NzU2MiIsICJDdWJhIiBdLAoJWyAiMTAzOCIsICJTaGFmaXJhIiwgIkV2ZXJldHQiLCAiMTg5ODMiLCAiR2VvcmdpYSIgXSwKCVsgIjEwMzkiLCAiTWFubml4IiwgIkxhbWIiLCAiNDU1NDIiLCAiVmVuZXp1ZWxhIiBdLAoJWyAiMTA0MCIsICJHZXJtYWluZSIsICJIYXJ2ZXkiLCAiSTlHIDFVMCIsICJGYWxrbGFuZCBJc2xhbmRzIChNYWx2aW5hcykiIF0sCglbICIxMDQxIiwgIkJyZW5uYSIsICJMZW9uYXJkIiwgIjU1NTczIiwgIk5ldyBaZWFsYW5kIiBdLAoJWyAiMTA0MiIsICJLeWxpZSIsICJSaXZhcyIsICJVOUogM085IiwgIkRqaWJvdXRpIiBdLAoJWyAiMTA0MyIsICJBbGV4YW5kcmEiLCAiUmljaCIsICJUNE8gNlM2IiwgIkN1YmEiIF0sCglbICIxMDQ0IiwgIkRvcmlhbiIsICJTcGVhcnMiLCAiMDA0NTYiLCAiQnJhemlsIiBdLAoJWyAiMTA0NSIsICJMYXVyZWwiLCAiQWJib3R0IiwgIjQ1NDQ5IiwgIlN3aXR6ZXJsYW5kIiBdLAoJWyAiMTA0NiIsICJHYWJyaWVsIiwgIkRyYWtlIiwgIlUxUyA1TzIiLCAiVHJpbmlkYWQgYW5kIFRvYmFnbyIgXSwKCVsgIjEwNDciLCAiUHJpc2NpbGxhIiwgIk1lcmNlciIsICIwMTQwMSIsICJTZXJiaWEgYW5kIE1vbnRlbmVncm8iIF0sCglbICIxMDQ4IiwgIkRhcml1cyIsICJIb2ZmbWFuIiwgIjQ5Njk0IiwgIkdyZWVjZSIgXSwKCVsgIjEwNDkiLCAiQ2Flc2FyIiwgIlBhdHRvbiIsICI0MjMyMiIsICJTdXJpbmFtZSIgXSwKCVsgIjEwNTAiLCAiU3VzYW4iLCAiQ2xheXRvbiIsICJXMUcgNUMzIiwgIk1hbGRpdmVzIiBdLAoJWyAiMTA1MSIsICJaYW5lIiwgIkR1bmxhcCIsICI3MzcyMiIsICJPbWFuIiBdLAoJWyAiMTA1MiIsICJMZWFoIiwgIkZ1ZW50ZXMiLCAiNjA0MTIiLCAiTHV4ZW1ib3VyZyIgXSwKCVsgIjEwNTMiLCAiWWFyZGxleSIsICJIYW5zZW4iLCAiMDMxOTQiLCAiTWF1cml0aXVzIiBdLAoJWyAiMTA1NCIsICJJbmdyaWQiLCAiVGFsbGV5IiwgIjM3MzE1IiwgIlNvbG9tb24gSXNsYW5kcyIgXSwKCVsgIjEwNTUiLCAiRGVtZXRyaWEiLCAiRXZhbnMiLCAiMzA1ODciLCAiVGFqaWtpc3RhbiIgXSwKCVsgIjEwNTYiLCAiSWduYWNpYSIsICJBbGZvcmQiLCAiMDEyODIiLCAiQm91dmV0IElzbGFuZCIgXSwKCVsgIjEwNTciLCAiRGVzdGlueSIsICJXYWRlIiwgIkw1UiAzVjMiLCAiVWdhbmRhIiBdLAoJWyAiMTA1OCIsICJBbGRlbiIsICJNYXNvbiIsICJWN0QgMlY2IiwgIkRvbWluaWNhbiBSZXB1YmxpYyIgXSwKCVsgIjEwNTkiLCAiUGFtZWxhIiwgIldpbGNveCIsICJMMUkgNkkxIiwgIkNhbmFkYSIgXSwKCVsgIjEwNjAiLCAiTWVsdmluIiwgIkJ1Y2tsZXkiLCAiMDU0NzgiLCAiSHVuZ2FyeSIgXSwKCVsgIjEwNjEiLCAiRXZlIiwgIkhvbGNvbWIiLCAiQjZCIDhUMSIsICJDb29rIElzbGFuZHMiIF0sCglbICIxMDYyIiwgIkFydGh1ciIsICJXZWVrcyIsICJSNVAgN1UyIiwgIkJhbmdsYWRlc2giIF0sCglbICIxMDYzIiwgIk1hcmFoIiwgIkxldmluZSIsICIxMDA3NSIsICJTb21hbGlhIiBdLAoJWyAiMTA2NCIsICJLZWlrbyIsICJGcmVlbWFuIiwgIjkwOTUwIiwgIkZhcm9lIElzbGFuZHMiIF0sCglbICIxMDY1IiwgIkRvcmlhbiIsICJSb3NlIiwgIlQ1TSA0WjAiLCAiRmlqaSIgXSwKCVsgIjEwNjYiLCAiRGVzaXJhZSIsICJWZWxleiIsICJUNEUgOEsyIiwgIkFmZ2hhbmlzdGFuIiBdLAoJWyAiMTA2NyIsICJSZWJla2FoIiwgIkx1Y2FzIiwgIlQ5QSA4VjUiLCAiVHVuaXNpYSIgXSwKCVsgIjEwNjgiLCAiU3lsdmVzdGVyIiwgIkNvcGVsYW5kIiwgIlc2UiAzQjYiLCAiSmFtYWljYSIgXSwKCVsgIjEwNjkiLCAiQWxlYSIsICJQcmVzdG9uIiwgIjMxMDUwIiwgIk5ldGhlcmxhbmRzIEFudGlsbGVzIiBdLAoJWyAiMTA3MCIsICJBcGhyb2RpdGUiLCAiR29yZG9uIiwgIlQ3QyA2VDgiLCAiU2FvIFRvbWUgYW5kIFByaW5jaXBlIiBdLAoJWyAiMTA3MSIsICJZYWVsIiwgIkRlbGFuZXkiLCAiRzlXIDlQMSIsICJNZXhpY28iIF0sCglbICIxMDcyIiwgIlNpZXJyYSIsICJQZXJleiIsICJSM08gOEgwIiwgIlNsb3ZlbmlhIiBdLAoJWyAiMTA3MyIsICJBdnJhbSIsICJCcmlnZ3MiLCAiMDUyMjEiLCAiTm9yZm9sayBJc2xhbmQiIF0sCglbICIxMDc0IiwgIlRyb3kiLCAiUG9vbGUiLCAiVzdRIDhPNSIsICJNYWx0YSIgXSwKCVsgIjEwNzUiLCAiR2F2aW4iLCAiU2FuZG92YWwiLCAiMzczNTIiLCAiR3JlZWNlIiBdLAoJWyAiMTA3NiIsICJOZXJlYSIsICJTdG9rZXMiLCAiTjJRIDZTOSIsICJVbml0ZWQgU3RhdGVzIiBdLAoJWyAiMTA3NyIsICJHZW5ldmlldmUiLCAiUmFtaXJleiIsICI1MzgyOSIsICJNYWxpIiBdLAoJWyAiMTA3OCIsICJPbGl2ZXIiLCAiQm9vbmUiLCAiTTFRIDhWOSIsICJCb2xpdmlhIiBdLAoJWyAiMTA3OSIsICJMYXJzIiwgIlJhbWlyZXoiLCAiTDJSIDZWMiIsICJCb3NuaWEgYW5kIEhlcnplZ292aW5hIiBdLAoJWyAiMTA4MCIsICJBYmJvdCIsICJIb3J0b24iLCAiUjFSIDFWOCIsICJOZXRoZXJsYW5kcyBBbnRpbGxlcyIgXSwKCVsgIjEwODEiLCAiQWJyYSIsICJBdmlsYSIsICI0MTYwOCIsICJDb25nbyIgXSwKCVsgIjEwODIiLCAiQ2FuZGljZSIsICJDaHJpc3RpYW4iLCAiMTM5MzAiLCAiRmFyb2UgSXNsYW5kcyIgXSwKCVsgIjEwODMiLCAiRmxhdmlhIiwgIk1pcmFuZGEiLCAiOTM5NjQiLCAiRXN0b25pYSIgXSwKCVsgIjEwODQiLCAiTWVkZ2UiLCAiRHJha2UiLCAiUTdDIDJFMiIsICJCZWxpemUiIF0sCglbICIxMDg1IiwgIkxlZSIsICJNb250Z29tZXJ5IiwgIkgzVCA0UTYiLCAiQ29zdGEgUmljYSIgXSwKCVsgIjEwODYiLCAiQWxpbmUiLCAiUmF0bGlmZiIsICI5OTgzOSIsICJNYWNhbyIgXSwKCVsgIjEwODciLCAiU2hhZmlyYSIsICJGb3giLCAiQTlTIDdDOCIsICJQYWxlc3RpbmlhbiBUZXJyaXRvcnksIE9jY3VwaWVkIiBdLAoJWyAiMTA4OCIsICJPcnNvbiIsICJHcmVlbmUiLCAiSzlMIDdSOCIsICJNeWFubWFyIiBdLAoJWyAiMTA4OSIsICJIZW5yeSIsICJKb3luZXIiLCAiNTU4NTMiLCAiU291dGggQWZyaWNhIiBdLAoJWyAiMTA5MCIsICJLZWVseSIsICJCb3llciIsICIwODk5NiIsICJMaWJlcmlhIiBdLAoJWyAiMTA5MSIsICJKZXJvbWUiLCAiSm9uZXMiLCAiMzE3NzAiLCAiU2FpbnQgTHVjaWEiIF0sCglbICIxMDkyIiwgIkhlcm1pb25lIiwgIkR1bmxhcCIsICJVMlIgN1IyIiwgIk1vbGRvdmEiIF0sCglbICIxMDkzIiwgIkxlbm9yZSIsICJQb3dlcnMiLCAiNzM3NzIiLCAiVHVuaXNpYSIgXSwKCVsgIjEwOTQiLCAiQWxkZW4iLCAiTmV3bWFuIiwgIlY0QyAzTzgiLCAiQmh1dGFuIiBdLAoJWyAiMTA5NSIsICJKYXNwZXIiLCAiQmxldmlucyIsICJLMkggNVcwIiwgIlBhcmFndWF5IiBdLAoJWyAiMTA5NiIsICJSb2JlcnQiLCAiQmVuZGVyIiwgIlI1RiAxSDkiLCAiUGhpbGlwcGluZXMiIF0sCglbICIxMDk3IiwgIkJvIiwgIlJpY2hhcmQiLCAiTjVSIDZUMiIsICJUcmluaWRhZCBhbmQgVG9iYWdvIiBdLAoJWyAiMTA5OCIsICJJbGlhbmEiLCAiTWNwaGVyc29uIiwgIjIzNzU4IiwgIkJhbmdsYWRlc2giIF0sCglbICIxMDk5IiwgIkFsZnJlZGEiLCAiQ2FtYWNobyIsICIzNTM4NyIsICJTYWludCBIZWxlbmEiIF0sCglbICIxMTAwIiwgIktpcnN0ZW4iLCAiR2lsZXMiLCAiMTQwNzkiLCAiUm9tYW5pYSIgXSwKCVsgIjExMDEiLCAiSGFybGFuIiwgIkNyYXdmb3JkIiwgIjg0ODQ3IiwgIkZyZW5jaCBQb2x5bmVzaWEiIF0sCglbICIxMTAyIiwgIld5bm5lIiwgIkJhdWVyIiwgIlc5RCA2RjYiLCAiS2F6YWtoc3RhbiIgXSwKCVsgIjExMDMiLCAiQ29ubm9yIiwgIk1lbHRvbiIsICJFMkYgNFEyIiwgIkFuZ29sYSIgXSwKCVsgIjExMDQiLCAiRXZlbHluIiwgIkJhcnJ5IiwgIkk5SCA4VzciLCAiVHVya21lbmlzdGFuIiBdLAoJWyAiMTEwNSIsICJCYXJyeSIsICJTdGVwaGVucyIsICIwNzgyMyIsICJHaWJyYWx0YXIiIF0sCglbICIxMTA2IiwgIkZlcnJpcyIsICJGYXJyZWxsIiwgIkk3SCA1WjYiLCAiU2FpbnQgVmluY2VudCBhbmQgVGhlIEdyZW5hZGluZXMiIF0sCglbICIxMTA3IiwgIlVyc2EiLCAiQ2FyciIsICIzMTEyNCIsICJDaGFkIiBdLAoJWyAiMTEwOCIsICJMYWl0aCIsICJKb2huc29uIiwgIjEwNDI4IiwgIkN5cHJ1cyIgXSwKCVsgIjExMDkiLCAiSGFybGFuIiwgIkZyYW5rIiwgIko2SyA3STYiLCAiR2FtYmlhIiBdLAoJWyAiMTExMCIsICJHcmVnb3J5IiwgIlJhdGxpZmYiLCAiUDFDIDhIMiIsICJDaGlsZSIgXSwKCVsgIjExMTEiLCAiUmluYSIsICJIb2xsb3dheSIsICJZN04gMUU3IiwgIkVzdG9uaWEiIF0sCglbICIxMTEyIiwgIk1hcmlzIiwgIkpveW5lciIsICJUNlIgMkg5IiwgIkZyYW5jZSIgXSwKCVsgIjExMTMiLCAiR2FsdmluIiwgIldlYnN0ZXIiLCAiVjhFIDlVNCIsICJDcm9hdGlhIiBdLAoJWyAiMTExNCIsICJGYXJyYWgiLCAiQmVhbiIsICJIMkIgOEUyIiwgIlBhbGVzdGluaWFuIFRlcnJpdG9yeSwgT2NjdXBpZWQiIF0sCglbICIxMTE1IiwgIk1hcnRoYSIsICJTY2hyb2VkZXIiLCAiMTQ0ODUiLCAiR2VvcmdpYSIgXSwKCVsgIjExMTYiLCAiTWFyaSIsICJCb29uZSIsICJENEMgMVEwIiwgIkNvbW9yb3MiIF0sCglbICIxMTE3IiwgIk5hZGluZSIsICJNZXJjYWRvIiwgIjM1MDQ2IiwgIlN5cmlhbiBBcmFiIFJlcHVibGljIiBdLAoJWyAiMTExOCIsICJJc2Fkb3JhIiwgIktlaXRoIiwgIlI1SCA4WTciLCAiTWF5b3R0ZSIgXSwKCVsgIjExMTkiLCAiUXVpbm4iLCAiV2lsbGlhbSIsICJWOFEgM1k2IiwgIkluZGlhIiBdLAoJWyAiMTEyMCIsICJKdXN0aW5hIiwgIkdpbGJlcnQiLCAiMTEyNzEiLCAiWWVtZW4iIF0sCglbICIxMTIxIiwgIkpvcmRhbiIsICJIdWxsIiwgIkY0WiA3UjgiLCAiTGVzb3RobyIgXSwKCVsgIjExMjIiLCAiTWVjaGVsbGUiLCAiRGF2ZW5wb3J0IiwgIkE5WiA4UDIiLCAiQmVybXVkYSIgXSwKCVsgIjExMjMiLCAiSXNhYmVsbGUiLCAiV2Vic3RlciIsICI2MDk3MiIsICJaaW1iYWJ3ZSIgXSwKCVsgIjExMjQiLCAiQXJtYW5kIiwgIkJ1dGxlciIsICJZM0YgNEg5IiwgIk5pY2FyYWd1YSIgXSwKCVsgIjExMjUiLCAiSGVybWFuIiwgIkJlYWNoIiwgIlE4TiA2VjMiLCAiQ2FwZSBWZXJkZSIgXSwKCVsgIjExMjYiLCAiQnJpYW5uYSIsICJMb3ZlIiwgIkQ5QiAyVzgiLCAiU2llcnJhIExlb25lIiBdLAoJWyAiMTEyNyIsICJKb3kiLCAiQnJvd24iLCAiTzdWIDdDMSIsICJEamlib3V0aSIgXSwKCVsgIjExMjgiLCAiQW1lbmEiLCAiTW9zcyIsICJQOEQgMUw5IiwgIkFuZG9ycmEiIF0sCglbICIxMTI5IiwgIlplcGgiLCAiV2hpdGVoZWFkIiwgIjAxNTEzIiwgIlRhbnphbmlhLCBVbml0ZWQgUmVwdWJsaWMgb2YiIF0sCglbICIxMTMwIiwgIkxvZ2FuIiwgIk1hdHRoZXdzIiwgIjczNTQxIiwgIkZpbmxhbmQiIF0sCglbICIxMTMxIiwgIkFtZWxhIiwgIkdyZWdvcnkiLCAiNjUzMjMiLCAiU3dhemlsYW5kIiBdLAoJWyAiMTEzMiIsICJab2UiLCAiT3dlbiIsICJWNUwgNU82IiwgIlphbWJpYSIgXSwKCVsgIjExMzMiLCAiU2VwdGVtYmVyIiwgIkhld2l0dCIsICJSOEsgNEc5IiwgIkNvbmdvIiBdLAoJWyAiMTEzNCIsICJIb2xseSIsICJXYWx0ZXIiLCAiUzJFIDNNNCIsICJTZXJiaWEgYW5kIE1vbnRlbmVncm8iIF0sCglbICIxMTM1IiwgIlplcGgiLCAiQmVhY2giLCAiSjZaIDhCNSIsICJFY3VhZG9yIiBdLAoJWyAiMTEzNiIsICJNb3JnYW4iLCAiRGVja2VyIiwgIk05SCA4STUiLCAiVXJ1Z3VheSIgXSwKCVsgIjExMzciLCAiTWFsY29sbSIsICJNYWxkb25hZG8iLCAiUzZGIDhYNiIsICJOZXRoZXJsYW5kcyIgXSwKCVsgIjExMzgiLCAiRmF5IiwgIkRheSIsICJCOVIgMVU3IiwgIlNleWNoZWxsZXMiIF0sCglbICIxMTM5IiwgIkNoYXJsZXMiLCAiSnVhcmV6IiwgIjYyNzkxIiwgIlZpcmdpbiBJc2xhbmRzLCBVLlMuIiBdLAoJWyAiMTE0MCIsICJBbWVyeSIsICJTdG91dCIsICJMOUEgMUY4IiwgIkNlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYyIgXSwKCVsgIjExNDEiLCAiSXJlbmUiLCAiRmVycmVsbCIsICI1MjY0OSIsICJOb3J3YXkiIF0sCglbICIxMTQyIiwgIkRlYW4iLCAiU3RvdXQiLCAiTjVDIDJTOCIsICJVcnVndWF5IiBdLAoJWyAiMTE0MyIsICJFcmljIiwgIkJheHRlciIsICI4MjA4MiIsICJDaGlsZSIgXSwKCVsgIjExNDQiLCAiU2hlbGxleSIsICJMYXJzZW4iLCAiWTRUIDRQMyIsICJBbnRhcmN0aWNhIiBdLAoJWyAiMTE0NSIsICJSaWdlbCIsICJFbGxpcyIsICJFM1MgNks4IiwgIlppbWJhYndlIiBdLAoJWyAiMTE0NiIsICJNYWl0ZSIsICJSb3NhIiwgIkY2QyA1UTkiLCAiWmFtYmlhIiBdLAoJWyAiMTE0NyIsICJTZXJlbmEiLCAiQmxhbmNoYXJkIiwgIjk5MzczIiwgIkVzdG9uaWEiIF0sCglbICIxMTQ4IiwgIk1lbGFuaWUiLCAiQmVyZ2VyIiwgIkM1UCA0RTIiLCAiTW96YW1iaXF1ZSIgXSwKCVsgIjExNDkiLCAiTm9haCIsICJTcGVuY2UiLCAiQjhIIDdYNyIsICJNYXJ0aW5pcXVlIiBdLAoJWyAiMTE1MCIsICJFbGxpb3R0IiwgIlBpZXJjZSIsICJXNUIgOFY3IiwgIlN3YXppbGFuZCIgXSwKCVsgIjExNTEiLCAiQWhtZWQiLCAiQ2hhbmciLCAiRTlYIDdKMCIsICJCdWxnYXJpYSIgXSwKCVsgIjExNTIiLCAiUm9zcyIsICJGaWd1ZXJvYSIsICIyMjQ1OCIsICJDaGluYSIgXSwKCVsgIjExNTMiLCAiR2FyeSIsICJDYWxkZXJvbiIsICJWM0MgNEo4IiwgIkFsZ2VyaWEiIF0sCglbICIxMTU0IiwgIk1vbnRhbmEiLCAiRnJhbmtsaW4iLCAiOTQwOTMiLCAiSGFpdGkiIF0sCglbICIxMTU1IiwgIlJhZSIsICJDdXJyeSIsICI0NTQ3NyIsICJNb3JvY2NvIiBdLAoJWyAiMTE1NiIsICJKaWxsaWFuIiwgIkhvZ2FuIiwgIk44TCA0QjUiLCAiSWNlbGFuZCIgXSwKCVsgIjExNTciLCAiTWlhIiwgIkthdWZtYW4iLCAiNTQ3NTgiLCAiQnVya2luYSBGYXNvIiBdLAoJWyAiMTE1OCIsICJSZW1lZGlvcyIsICJXaWxrZXJzb24iLCAiNzU0MjAiLCAiU2FpbnQgVmluY2VudCBhbmQgVGhlIEdyZW5hZGluZXMiIF0sCglbICIxMTU5IiwgIlhhbnRodXMiLCAiQmFsZHdpbiIsICIxMzk2MSIsICJDb25nbyIgXSwKCVsgIjExNjAiLCAiTWFkZWxpbmUiLCAiR2F0ZXMiLCAiNzYzNTEiLCAiU2FpbnQgSGVsZW5hIiBdLAoJWyAiMTE2MSIsICJMZXJveSIsICJDcmFpZyIsICIxMjc3MCIsICJGaW5sYW5kIiBdLAoJWyAiMTE2MiIsICJNZWxhbmllIiwgIkNhcnBlbnRlciIsICJDM0IgOEw0IiwgIk1heW90dGUiIF0sCglbICIxMTYzIiwgIkFzaGVseSIsICJNY25laWwiLCAiRTdFIDlLNSIsICJGcmVuY2ggU291dGhlcm4gVGVycml0b3JpZXMiIF0sCglbICIxMTY0IiwgIkthcmluYSIsICJNY25laWwiLCAiMzk5NTYiLCAiVW5pdGVkIEFyYWIgRW1pcmF0ZXMiIF0sCglbICIxMTY1IiwgIk5pbmEiLCAiTWlsbHMiLCAiOTI5MTMiLCAiU2FpbnQgS2l0dHMgYW5kIE5ldmlzIiBdLAoJWyAiMTE2NiIsICJBc2h0b24iLCAiU2luZ2xldG9uIiwgIjczODkwIiwgIkxpYnlhbiBBcmFiIEphbWFoaXJpeWEiIF0sCglbICIxMTY3IiwgIk1lZ2hhbiIsICJCbGFjayIsICIzMTgxNCIsICJBcm1lbmlhIiBdLAoJWyAiMTE2OCIsICJKb2xlbmUiLCAiUG9wZSIsICJVNksgN082IiwgIlZlbmV6dWVsYSIgXSwKCVsgIjExNjkiLCAiQWJlbCIsICJCb3lkIiwgIjM3MTEwIiwgIkJvdHN3YW5hIiBdLAoJWyAiMTE3MCIsICJUaWdlciIsICJDb2ZmZXkiLCAiWTZQIDNTNCIsICJGYXJvZSBJc2xhbmRzIiBdLAoJWyAiMTE3MSIsICJBaWxlZW4iLCAiUm93ZSIsICJGN0cgOEQ5IiwgIk5ldGhlcmxhbmRzIEFudGlsbGVzIiBdLAoJWyAiMTE3MiIsICJCcnlhciIsICJGb3JiZXMiLCAiVDJOIDVINiIsICJTYWludCBWaW5jZW50IGFuZCBUaGUgR3JlbmFkaW5lcyIgXSwKCVsgIjExNzMiLCAiVmVyYSIsICJIb2ZmbWFuIiwgIjM2Mjk5IiwgIkd1YWRlbG91cGUiIF0sCglbICIxMTc0IiwgIkhhZGFzc2FoIiwgIldyaWdodCIsICJTOEogNUIyIiwgIlBlcnUiIF0sCglbICIxMTc1IiwgIkJydWNlIiwgIkJsYWlyIiwgIlE4RSA3SzYiLCAiQ2FwZSBWZXJkZSIgXSwKCVsgIjExNzYiLCAiQnJpYW5uYSIsICJXb2xmIiwgIlY4UyA1QTYiLCAiQmFoYW1hcyIgXSwKCVsgIjExNzciLCAiS2ltYmVybGV5IiwgIlJlZWQiLCAiMTc2NTIiLCAiVGFqaWtpc3RhbiIgXSwKCVsgIjExNzgiLCAiQ29saW4iLCAiUGhlbHBzIiwgIjQyMzM0IiwgIkJydW5laSBEYXJ1c3NhbGFtIiBdLAoJWyAiMTE3OSIsICJHaWwiLCAiQnJpdHQiLCAiVTNOIDZDMiIsICJTd2F6aWxhbmQiIF0sCglbICIxMTgwIiwgIkhhc2FkIiwgIlBlbmEiLCAiMDk1MjYiLCAiVW5pdGVkIFN0YXRlcyIgXSwKCVsgIjExODEiLCAiVmlvbGV0IiwgIkRpeG9uIiwgIjQ4NjkxIiwgIk1pY3JvbmVzaWEiIF0sCglbICIxMTgyIiwgIlVyaWVsIiwgIkJvd2VuIiwgIlo3RiA3QTciLCAiVXpiZWtpc3RhbiIgXSwKCVsgIjExODMiLCAiTWFkZWxpbmUiLCAiS2VsbGVyIiwgIjE4MjI3IiwgIklyYW4sIElzbGFtaWMgUmVwdWJsaWMgb2YiIF0sCglbICIxMTg0IiwgIkJ1ZmZ5IiwgIk1ja2VlIiwgIjIzODYxIiwgIkV0aGlvcGlhIiBdLAoJWyAiMTE4NSIsICJEb3JpcyIsICJNYXJ0aW4iLCAiVjhOIDhPNyIsICJMaWJlcmlhIiBdLAoJWyAiMTE4NiIsICJNaWEiLCAiQnVya2UiLCAiNjQ1ODIiLCAiVmlyZ2luIElzbGFuZHMsIEJyaXRpc2giIF0sCglbICIxMTg3IiwgIldpbGxpYW0iLCAiS2VtcCIsICI2MzU4NyIsICJUdXZhbHUiIF0sCglbICIxMTg4IiwgIlN0YWN5IiwgIlF1aW5uIiwgIjAxMzkwIiwgIk5hdXJ1IiBdLAoJWyAiMTE4OSIsICJIYWxsYSIsICJTb2xvbW9uIiwgIjMxMTM4IiwgIlBha2lzdGFuIiBdLAoJWyAiMTE5MCIsICJLYXNpbWlyIiwgIlJvZHJpZ3VleiIsICI2NzgyMyIsICJDb3N0YSBSaWNhIiBdLAoJWyAiMTE5MSIsICJEYXZpcyIsICJMYXdyZW5jZSIsICIyNzkxOCIsICJSd2FuZGEiIF0sCglbICIxMTkyIiwgIk5pZ2VsIiwgIkJyeWFuIiwgIkw1VSAyVTkiLCAiU2V5Y2hlbGxlcyIgXSwKCVsgIjExOTMiLCAiSXZhbmEiLCAiU3RvbmUiLCAiOTQ4NjIiLCAiTml1ZSIgXSwKCVsgIjExOTQiLCAiTmFvbWkiLCAiWWFuZyIsICI2ODk4NSIsICJIYWl0aSIgXSwKCVsgIjExOTUiLCAiUm9hbm5hIiwgIkJyb3duIiwgIjUxMTk2IiwgIkluZGlhIiBdLAoJWyAiMTE5NiIsICJDb2xvcmFkbyIsICJDaGF2ZXoiLCAiNDU2MzQiLCAiQnJhemlsIiBdLAoJWyAiMTE5NyIsICJJbGxhbmEiLCAiTGV2eSIsICJWMUEgN1I4IiwgIkpvcmRhbiIgXSwKCVsgIjExOTgiLCAiQWxpIiwgIkxvd2UiLCAiTjhLIDFZNSIsICJIdW5nYXJ5IiBdLAoJWyAiMTE5OSIsICJWaXJnaW5pYSIsICJXaXR0IiwgIlkzTyA1VzgiLCAiQXplcmJhaWphbiIgXSwKCVsgIjEyMDAiLCAiSG93YXJkIiwgIkZsb3JlcyIsICJJOUMgM1E3IiwgIkZpamkiIF0sCglbICIxMjAxIiwgIldhbHRlciIsICJPZG9tIiwgIjc4NDE4IiwgIlRoYWlsYW5kIiBdLAoJWyAiMTIwMiIsICJUaG9yIiwgIkNyYWlnIiwgIjAwOTM1IiwgIkphbWFpY2EiIF0sCglbICIxMjAzIiwgIlBldHJhIiwgIkJhcnJ5IiwgIkU1TCA1SzUiLCAiRmlubGFuZCIgXSwKCVsgIjEyMDQiLCAiTGV2IiwgIkVsbGlzb24iLCAiSTZTIDFLMSIsICJNb25nb2xpYSIgXSwKCVsgIjEyMDUiLCAiUm90aCIsICJPc2Jvcm5lIiwgIjE1MDE0IiwgIlN3YXppbGFuZCIgXSwKCVsgIjEyMDYiLCAiTHVjaXVzIiwgIkJhbGR3aW4iLCAiMTI3NjYiLCAiQ2hpbmEiIF0sCglbICIxMjA3IiwgIkNhbmRpY2UiLCAiSHlkZSIsICJCNUUgNEI4IiwgIkJhaGFtYXMiIF0sCglbICIxMjA4IiwgIk1hZ2d5IiwgIkJhaWxleSIsICI3Njc4MSIsICJOb3J0aGVybiBNYXJpYW5hIElzbGFuZHMiIF0sCglbICIxMjA5IiwgIkJlYXRyaWNlIiwgIkdyZWdvcnkiLCAiUzVTIDhTNCIsICJSd2FuZGEiIF0sCglbICIxMjEwIiwgIkFkcmlhbiIsICJCb3dtYW4iLCAiNTg1MDAiLCAiVmFudWF0dSIgXSwKCVsgIjEyMTEiLCAiQnJlbmRlbiIsICJDaGFuZGxlciIsICI1MDMyNiIsICJUaGFpbGFuZCIgXSwKCVsgIjEyMTIiLCAiSmFkYSIsICJSaWNobW9uZCIsICIxNTk5MCIsICJTYWludCBWaW5jZW50IGFuZCBUaGUgR3JlbmFkaW5lcyIgXSwKCVsgIjEyMTMiLCAiU2F3eWVyIiwgIlBhZ2UiLCAiRzJXIDdSNyIsICJTb21hbGlhIiBdLAoJWyAiMTIxNCIsICJIYWxleSIsICJKb3JkYW4iLCAiVTdYIDRVMiIsICJFcXVhdG9yaWFsIEd1aW5lYSIgXSwKCVsgIjEyMTUiLCAiUnVieSIsICJXYXRzb24iLCAiMzA5OTAiLCAiUm9tYW5pYSIgXSwKCVsgIjEyMTYiLCAiSm9jZWx5biIsICJLbm93bGVzIiwgIjc4OTg3IiwgIkxlYmFub24iIF0sCglbICIxMjE3IiwgIlByZXN0b24iLCAiU3RldmVuc29uIiwgIkYzTCA5QjMiLCAiTWFsaSIgXSwKCVsgIjEyMTgiLCAiS2ltYmVybHkiLCAiTWVycml0dCIsICIzODc3OSIsICJWZW5lenVlbGEiIF0sCglbICIxMjE5IiwgIkhlcnJvZCIsICJCdXJrZSIsICI1NjIyNSIsICJGcmVuY2ggR3VpYW5hIiBdLAoJWyAiMTIyMCIsICJTb2xvbW9uIiwgIlNoYW5ub24iLCAiNjc5ODAiLCAiQ2FwZSBWZXJkZSIgXSwKCVsgIjEyMjEiLCAiQnJhZGxleSIsICJTdG9rZXMiLCAiMTAyMTMiLCAiQm90c3dhbmEiIF0sCglbICIxMjIyIiwgIkdyYWNlIiwgIktpbm5leSIsICI2NzkyMyIsICJNb250c2VycmF0IiBdLAoJWyAiMTIyMyIsICJDZWxlc3RlIiwgIkNsYXJrIiwgIlM3TSA2STIiLCAiR3VhdGVtYWxhIiBdLAoJWyAiMTIyNCIsICJQYXRyaWNpYSIsICJGcmFuayIsICIwNTYxNSIsICJWZW5lenVlbGEiIF0sCglbICIxMjI1IiwgIk1hZG9ubmEiLCAiQWxmb3JkIiwgIjEwODc4IiwgIkJydW5laSBEYXJ1c3NhbGFtIiBdLAoJWyAiMTIyNiIsICJNYXkiLCAiUmlvcyIsICJON08gMkwwIiwgIkdlb3JnaWEiIF0sCglbICIxMjI3IiwgIkRyaXNjb2xsIiwgIlJvYWNoIiwgIlk3RiA5RjgiLCAiUGFsZXN0aW5pYW4gVGVycml0b3J5LCBPY2N1cGllZCIgXSwKCVsgIjEyMjgiLCAiSWRvbmEiLCAiQ3J1eiIsICJUNlEgOEw0IiwgIklyYXEiIF0sCglbICIxMjI5IiwgIlN5ZG5leSIsICJEZWxhY3J1eiIsICI2OTUxMSIsICJVbml0ZWQgQXJhYiBFbWlyYXRlcyIgXSwKCVsgIjEyMzAiLCAiR2lsbGlhbiIsICJIdWZmIiwgIjUyNjI0IiwgIkZyZW5jaCBTb3V0aGVybiBUZXJyaXRvcmllcyIgXSwKCVsgIjEyMzEiLCAiTWluZXJ2YSIsICJSb3NhcmlvIiwgIjI5MTk1IiwgIkFuZG9ycmEiIF0sCglbICIxMjMyIiwgIktlcnJ5IiwgIkFsdmFyYWRvIiwgIkwzUSAyVjUiLCAiUG9ydHVnYWwiIF0sCglbICIxMjMzIiwgIkFtb3MiLCAiQmFzcyIsICIyNjM4OSIsICJIb2x5IFNlZSAoVmF0aWNhbiBDaXR5IFN0YXRlKSIgXSwKCVsgIjEyMzQiLCAiRGVhbm5hIiwgIlBhcmtzIiwgIjU3Mzc2IiwgIkVzdG9uaWEiIF0sCglbICIxMjM1IiwgIkZpdHpnZXJhbGQiLCAiR3JlZW4iLCAiTTNQIDlOMiIsICJTbG92ZW5pYSIgXSwKCVsgIjEyMzYiLCAiU2FkZSIsICJIaW50b24iLCAiMzU1NjEiLCAiQmFyYmFkb3MiIF0sCglbICIxMjM3IiwgIlN1a2kiLCAiUGFyc29ucyIsICI0NDU5MSIsICJTeXJpYW4gQXJhYiBSZXB1YmxpYyIgXSwKCVsgIjEyMzgiLCAiT3JsaSIsICJXZWVrcyIsICJLMlcgOUw0IiwgIlBlcnUiIF0sCglbICIxMjM5IiwgIk5pY2hvbGFzIiwgIkNvcGVsYW5kIiwgIkk1VyA3QTQiLCAiRnJlbmNoIEd1aWFuYSIgXSwKCVsgIjEyNDAiLCAiR3V5IiwgIlZhbmciLCAiMjIyNzciLCAiUGl0Y2Fpcm4iIF0sCglbICIxMjQxIiwgIkh1bnRlciIsICJHb29kbWFuIiwgIjcyMjkwIiwgIk1hbGF5c2lhIiBdLAoJWyAiMTI0MiIsICJOb2JsZSIsICJSaWNoIiwgIkkzQiA2VDkiLCAiR2licmFsdGFyIiBdLAoJWyAiMTI0MyIsICJEZWxpbGFoIiwgIlphbW9yYSIsICI5NjMyOCIsICJOZXcgWmVhbGFuZCIgXSwKCVsgIjEyNDQiLCAiU3liaWwiLCAiTWVyY2VyIiwgIjkzNjY1IiwgIk5hbWliaWEiIF0sCglbICIxMjQ1IiwgIlNjYXJsZXR0IiwgIkJyb2NrIiwgIloyRSAzSjIiLCAiQ2VudHJhbCBBZnJpY2FuIFJlcHVibGljIiBdLAoJWyAiMTI0NiIsICJDaGFubmluZyIsICJBbGV4YW5kZXIiLCAiVzVWIDhEMiIsICJTYW4gTWFyaW5vIiBdLAoJWyAiMTI0NyIsICJDYXJvbHluIiwgIkJveWxlIiwgIlE1WiA5RTYiLCAiR2Fib24iIF0sCglbICIxMjQ4IiwgIklyZW5lIiwgIkplbm5pbmdzIiwgIkYzSCA0TzYiLCAiU2FpbnQgSGVsZW5hIiBdLAoJWyAiMTI0OSIsICJCaWFuY2EiLCAiUHJhdHQiLCAiNjYzNTQiLCAiTWFsYXlzaWEiIF0sCglbICIxMjUwIiwgIkRleHRlciIsICJDb2xlIiwgIjU2MTA2IiwgIkZyZW5jaCBTb3V0aGVybiBUZXJyaXRvcmllcyIgXSwKCVsgIjEyNTEiLCAiQmVyayIsICJWZWxleiIsICIyNjc1OSIsICJMZXNvdGhvIiBdLAoJWyAiMTI1MiIsICJCYXJyZXR0IiwgIlJpY2hhcmRzb24iLCAiNTk0NDYiLCAiQ29jb3MgKEtlZWxpbmcpIElzbGFuZHMiIF0sCglbICIxMjUzIiwgIlNjYXJsZXQiLCAiSmFjb2JzIiwgIkc5QSA3TDYiLCAiRG9taW5pY2EiIF0sCglbICIxMjU0IiwgIkFpa28iLCAiQnJvb2tzIiwgIlI2UiA5RTQiLCAiTGliZXJpYSIgXSwKCVsgIjEyNTUiLCAiSmFjb2IiLCAiTW9vcmUiLCAiUDJZIDZQMyIsICJDYW1ib2RpYSIgXSwKCVsgIjEyNTYiLCAiTWFkZWxpbmUiLCAiQmlzaG9wIiwgIkQ0SSAyRTciLCAiRG9taW5pY2FuIFJlcHVibGljIiBdLAoJWyAiMTI1NyIsICJKYXJyb2QiLCAiRXZhbnMiLCAiQzlPIDdWNyIsICJUYWl3YW4sIFByb3ZpbmNlIG9mIENoaW5hIiBdLAoJWyAiMTI1OCIsICJCZXZlcmx5IiwgIldpdHQiLCAiNjQ4NTAiLCAiRGVubWFyayIgXSwKCVsgIjEyNTkiLCAiS2FyeW4iLCAiUmhvZGVzIiwgIkQ2RyA1WjMiLCAiQ2FwZSBWZXJkZSIgXSwKCVsgIjEyNjAiLCAiSW1hbmkiLCAiUXVpbm4iLCAiMDE4OTciLCAiTWFjYW8iIF0sCglbICIxMjYxIiwgIkF0aGVuYSIsICJFYXRvbiIsICIwMzU2OCIsICJTeXJpYW4gQXJhYiBSZXB1YmxpYyIgXSwKCVsgIjEyNjIiLCAiUmF5bW9uZCIsICJWYWxkZXoiLCAiMjEwMzciLCAiUm9tYW5pYSIgXSwKCVsgIjEyNjMiLCAiQ2hyaXN0b3BoZXIiLCAiRmVyZ3Vzb24iLCAiNjQ5NDUiLCAiSW5kb25lc2lhIiBdLAoJWyAiMTI2NCIsICJMYXRpZmFoIiwgIkhhcnJpcyIsICI5MTM4MSIsICJTdXJpbmFtZSIgXSwKCVsgIjEyNjUiLCAiRGFjZXkiLCAiV2FnbmVyIiwgIjgxNDgzIiwgIlFhdGFyIiBdLAoJWyAiMTI2NiIsICJTdW1tZXIiLCAiTXllcnMiLCAiSDZBIDFHNSIsICJBbmdvbGEiIF0sCglbICIxMjY3IiwgIkphc21pbmUiLCAiUml2ZXJhIiwgIlk0VyA4UDIiLCAiVmlyZ2luIElzbGFuZHMsIEJyaXRpc2giIF0sCglbICIxMjY4IiwgIkNhaXJvIiwgIk1hc3NleSIsICJRNlkgN0E3IiwgIlBvbGFuZCIgXSwKCVsgIjEyNjkiLCAiSmVuYSIsICJIaWxsIiwgIjg5NDgwIiwgIlVuaXRlZCBTdGF0ZXMgTWlub3IgT3V0bHlpbmcgSXNsYW5kcyIgXSwKCVsgIjEyNzAiLCAiQXZhIiwgIkJlbnNvbiIsICJMOUggOFYxIiwgIlNyaSBMYW5rYSIgXSwKCVsgIjEyNzEiLCAiR2lsbGlhbiIsICJNZXJjYWRvIiwgIkE5VyA2VjUiLCAiTm9yd2F5IiBdLAoJWyAiMTI3MiIsICJQZXRlciIsICJNYXJxdWV6IiwgIkk1QiAzVzkiLCAiR3V5YW5hIiBdLAoJWyAiMTI3MyIsICJQcmljZSIsICJDb2xlbWFuIiwgIlg4RyAyUzAiLCAiQnVya2luYSBGYXNvIiBdLAoJWyAiMTI3NCIsICJTaGFuYSIsICJIYXJwZXIiLCAiTDJCIDNVOSIsICJNYWxheXNpYSIgXSwKCVsgIjEyNzUiLCAiU2VyaW5hIiwgIk1hdHRoZXdzIiwgIjU4MDYxIiwgIkxpdGh1YW5pYSIgXSwKCVsgIjEyNzYiLCAiQXJldGhhIiwgIkJyeWFudCIsICJZOEogN0E1IiwgIlRvbmdhIiBdLAoJWyAiMTI3NyIsICJXZXNsZXkiLCAiQ3JhaWciLCAiMjAxNDEiLCAiQXVzdHJhbGlhIiBdLAoJWyAiMTI3OCIsICJNYXJ0ZW5hIiwgIk1lcmNlciIsICJQNlggMkw5IiwgIlN1ZGFuIiBdLAoJWyAiMTI3OSIsICJUYW1hcmEiLCAiRGVubmlzIiwgIkQzSCA5UjAiLCAiTWFsaSIgXSwKCVsgIjEyODAiLCAiUGhlbGFuIiwgIlBlbmEiLCAiRDJIIDJINyIsICJVbml0ZWQgU3RhdGVzIE1pbm9yIE91dGx5aW5nIElzbGFuZHMiIF0sCglbICIxMjgxIiwgIlJlYmVjY2EiLCAiS2lubmV5IiwgIkI1WiA5UzQiLCAiQW50YXJjdGljYSIgXSwKCVsgIjEyODIiLCAiSm9zZXBoaW5lIiwgIkRlbGdhZG8iLCAiODEwMTAiLCAiQWxnZXJpYSIgXSwKCVsgIjEyODMiLCAiS2llcmFuIiwgIkVzdGVzIiwgIjcwMDkzIiwgIkJlcm11ZGEiIF0sCglbICIxMjg0IiwgIlRhbWFyYSIsICJXaWxsaWFtc29uIiwgIjkwOTA1IiwgIkZyZW5jaCBHdWlhbmEiIF0sCglbICIxMjg1IiwgIkRvcmEiLCAiU2VycmFubyIsICJXOEsgNlI1IiwgIk5hdXJ1IiBdLAoJWyAiMTI4NiIsICJNb3JnYW4iLCAiQmFzcyIsICJCNkYgOFIyIiwgIk1hZGFnYXNjYXIiIF0sCglbICIxMjg3IiwgIk1hcmdhcmV0IiwgIkF1c3RpbiIsICJEMkMgMkMxIiwgIkJlbGdpdW0iIF0sCglbICIxMjg4IiwgIk5hc2ltIiwgIkJlcnJ5IiwgIko5WCA3TTUiLCAiSGVhcmQgSXNsYW5kIGFuZCBNY2RvbmFsZCBJc2xhbmRzIiBdLAoJWyAiMTI4OSIsICJKZWxhbmkiLCAiUnV0bGVkZ2UiLCAiMzQ1NTIiLCAiQm9saXZpYSIgXSwKCVsgIjEyOTAiLCAiQ2Fzc2FkeSIsICJIYXJkaW4iLCAiSTJLIDRINiIsICJIb25nIEtvbmciIF0sCglbICIxMjkxIiwgIkplbmV0dGUiLCAiVGhvcm50b24iLCAiNDQ5NDMiLCAiVWdhbmRhIiBdLAoJWyAiMTI5MiIsICJBbGV4YW5kcmEiLCAiU2ltcyIsICI5MzkzNyIsICJBdXN0cmFsaWEiIF0sCglbICIxMjkzIiwgIlJvc3MiLCAiSGlnZ2lucyIsICI2MTk5MyIsICJOaWNhcmFndWEiIF0sCglbICIxMjk0IiwgIlBlbmVsb3BlIiwgIkhlbnNvbiIsICI5MDM0NCIsICJUcmluaWRhZCBhbmQgVG9iYWdvIiBdLAoJWyAiMTI5NSIsICJZb3NoaSIsICJCbGFja3dlbGwiLCAiQzhEIDFUNCIsICJDb3N0YSBSaWNhIiBdLAoJWyAiMTI5NiIsICJEYXJpYSIsICJSb2RyaXF1ZXoiLCAiWDNDIDZMMCIsICJJY2VsYW5kIiBdLAoJWyAiMTI5NyIsICJXZXNsZXkiLCAiV2FsbGVyIiwgIjQzOTQ3IiwgIk15YW5tYXIiIF0sCglbICIxMjk4IiwgIkFkYW0iLCAiSGF5ZGVuIiwgIjg4OTY5IiwgIkl0YWx5IiBdLAoJWyAiMTI5OSIsICJDaGFyaXR5IiwgIldpbGxpYW0iLCAiNDY0MzkiLCAiR3JlZWNlIiBdLAoJWyAiMTMwMCIsICJSb25hbiIsICJIb3BwZXIiLCAiNTE5NTUiLCAiWmFtYmlhIiBdLAoJWyAiMTMwMSIsICJHZXJhbGRpbmUiLCAiSGF0ZmllbGQiLCAiVzlTIDdUNSIsICJMdXhlbWJvdXJnIiBdLAoJWyAiMTMwMiIsICJCYXJyeSIsICJOaWNob2xzb24iLCAiNzk2MjUiLCAiTGllY2h0ZW5zdGVpbiIgXSwKCVsgIjEzMDMiLCAiRG9ub3ZhbiIsICJPcnRpeiIsICI2ODExOSIsICJNYWNhbyIgXSwKCVsgIjEzMDQiLCAiSmVhbmV0dGUiLCAiQ29vcGVyIiwgIkQ1UCA5TDIiLCAiU3JpIExhbmthIiBdLAoJWyAiMTMwNSIsICJJc2Fkb3JhIiwgIlN0ZXBoZW5zb24iLCAiUDRYIDRINSIsICJNYXVyaXRhbmlhIiBdLAoJWyAiMTMwNiIsICJIYWxsIiwgIkhheXMiLCAiSjJaIDJIMSIsICJTdmFsYmFyZCBhbmQgSmFuIE1heWVuIiBdLAoJWyAiMTMwNyIsICJJZG9sYSIsICJSb2JlcnNvbiIsICI4OTI0OSIsICJOaXVlIiBdLAoJWyAiMTMwOCIsICJPbHltcGlhIiwgIkRlbm5pcyIsICI2OTQ5OCIsICJHdWluZWEiIF0sCglbICIxMzA5IiwgIk5haWRhIiwgIlBhbG1lciIsICIxOTg0MCIsICJHYW1iaWEiIF0sCglbICIxMzEwIiwgIk1heGluZSIsICJSb2xsaW5zIiwgIjg3ODU2IiwgIkJlbGl6ZSIgXSwKCVsgIjEzMTEiLCAiUm9vbmV5IiwgIlBoZWxwcyIsICI0ODQyNCIsICJJdGFseSIgXSwKCVsgIjEzMTIiLCAiU2hlbGx5IiwgIkVkd2FyZHMiLCAiTzdPIDFVNCIsICJNYWxpIiBdLAoJWyAiMTMxMyIsICJDYXNzaWR5IiwgIkhvbGNvbWIiLCAiOTg3ODUiLCAiQ29sb21iaWEiIF0sCglbICIxMzE0IiwgIlN5YmlsIiwgIk1vcmFuIiwgIkYzQyA2RTQiLCAiU3dpdHplcmxhbmQiIF0sCglbICIxMzE1IiwgIk11ZnV0YXUiLCAiTGFyc29uIiwgIjAwMjc2IiwgIkJyaXRpc2ggSW5kaWFuIE9jZWFuIFRlcnJpdG9yeSIgXSwKCVsgIjEzMTYiLCAiRmlvbmEiLCAiQnJ5YW50IiwgIlU3WSA3TjYiLCAiQ29jb3MgKEtlZWxpbmcpIElzbGFuZHMiIF0sCglbICIxMzE3IiwgIkxlbm9yZSIsICJCb3lsZSIsICJINUcgNlA5IiwgIlN1ZGFuIiBdLAoJWyAiMTMxOCIsICJJZ25hY2lhIiwgIkF2aWxhIiwgIlk1TSAxUzIiLCAiUm9tYW5pYSIgXSwKCVsgIjEzMTkiLCAiV2VuZHkiLCAiU3RlaW4iLCAiMjU0MjIiLCAiVGFpd2FuLCBQcm92aW5jZSBvZiBDaGluYSIgXSwKCVsgIjEzMjAiLCAiR2Fycmlzb24iLCAiQmFzcyIsICJCOUogNkQ5IiwgIlJvbWFuaWEiIF0sCglbICIxMzIxIiwgIkN1cnJhbiIsICJSb3kiLCAiWDJGIDRQMiIsICJUYWl3YW4sIFByb3ZpbmNlIG9mIENoaW5hIiBdLAoJWyAiMTMyMiIsICJPbGl2ZXIiLCAiQmVhY2giLCAiTjZKIDFDNSIsICJLYXpha2hzdGFuIiBdLAoJWyAiMTMyMyIsICJCbyIsICJEdXJhbiIsICJENUMgNUMyIiwgIkVyaXRyZWEiIF0sCglbICIxMzI0IiwgIlRhc2h5YSIsICJNb3Jyb3ciLCAiTjJKIDdPOSIsICJSd2FuZGEiIF0sCglbICIxMzI1IiwgIkNoZXJ5bCIsICJQb3dlbGwiLCAiNzI0MTMiLCAiTmlnZXIiIF0sCglbICIxMzI2IiwgIkp1c3RpbiIsICJSb3RoIiwgIjE4Nzc5IiwgIkJydW5laSBEYXJ1c3NhbGFtIiBdLAoJWyAiMTMyNyIsICJOYXRoYW5pZWwiLCAiRm9zdGVyIiwgIjA0OTU1IiwgIkJlcm11ZGEiIF0sCglbICIxMzI4IiwgIkNhbmRhY2UiLCAiTnVuZXoiLCAiRzdaIDFOMiIsICJNb2xkb3ZhIiBdLAoJWyAiMTMyOSIsICJOZXJvIiwgIldlc3QiLCAiSzNRIDZCMyIsICJNeWFubWFyIiBdLAoJWyAiMTMzMCIsICJCcmVuZGFuIiwgIk1jaW50eXJlIiwgIkM0RSA1SDciLCAiQXJnZW50aW5hIiBdLAoJWyAiMTMzMSIsICJDaGFuZXkiLCAiU3RhZmZvcmQiLCAiVjNYIDhKNCIsICJCZW5pbiIgXSwKCVsgIjEzMzIiLCAiU3lsdmlhIiwgIlZlbGV6IiwgIjk1ODUxIiwgIklyYXEiIF0sCglbICIxMzMzIiwgIkF6YWxpYSIsICJDYXN0cm8iLCAiNTU5ODYiLCAiSXNyYWVsIiBdLAoJWyAiMTMzNCIsICJFbWlseSIsICJIb2dhbiIsICI3NDY2NyIsICJCb3Rzd2FuYSIgXSwKCVsgIjEzMzUiLCAiQnVja21pbnN0ZXIiLCAiSHVyc3QiLCAiTjlDIDJYNiIsICJSZXVuaW9uIiBdLAoJWyAiMTMzNiIsICJSaW5haCIsICJSb2RyaXF1ZXoiLCAiMzE4OTYiLCAiR3VpbmVhLWJpc3NhdSIgXSwKCVsgIjEzMzciLCAiTmFzaCIsICJCYXJuZXR0IiwgIlk4WCA3SDUiLCAiQ2hpbmEiIF0sCglbICIxMzM4IiwgIlhhbnRodXMiLCAiQmFya2VyIiwgIjExMjEyIiwgIlRyaW5pZGFkIGFuZCBUb2JhZ28iIF0sCglbICIxMzM5IiwgIk1pbmVydmEiLCAiSHViZXIiLCAiTTZNIDlVMyIsICJFcXVhdG9yaWFsIEd1aW5lYSIgXSwKCVsgIjEzNDAiLCAiS2FzZWVtIiwgIlRpbGxtYW4iLCAiODY1NjUiLCAiQnVsZ2FyaWEiIF0sCglbICIxMzQxIiwgIkNhc3NpZHkiLCAiRGVqZXN1cyIsICI5MzIwNSIsICJTaWVycmEgTGVvbmUiIF0sCglbICIxMzQyIiwgIlNoZWlsYSIsICJNdW5veiIsICIyNjQ3MyIsICJCZW5pbiIgXSwKCVsgIjEzNDMiLCAiRmxvcmVuY2UiLCAiWWF0ZXMiLCAiTTVPIDFKMSIsICJSdXNzaWFuIEZlZGVyYXRpb24iIF0sCglbICIxMzQ0IiwgIklzYWRvcmEiLCAiV2FnbmVyIiwgIjg4MzgxIiwgIlBoaWxpcHBpbmVzIiBdLAoJWyAiMTM0NSIsICJIaWxlbCIsICJLcmFtZXIiLCAiRTVEIDRGNSIsICJMZWJhbm9uIiBdLAoJWyAiMTM0NiIsICJTdGV3YXJ0IiwgIkxhd3NvbiIsICI2NzMxMyIsICJNYWxheXNpYSIgXSwKCVsgIjEzNDciLCAiSXJhIiwgIkR1ZmZ5IiwgIjUyODQxIiwgIkdyZWVjZSIgXSwKCVsgIjEzNDgiLCAiSWduYXRpdXMiLCAiUm9iaW5zb24iLCAiMTAwMzUiLCAiUnVzc2lhbiBGZWRlcmF0aW9uIiBdLAoJWyAiMTM0OSIsICJCYXh0ZXIiLCAiQ2Fycm9sbCIsICI5MjI4OCIsICJBbGJhbmlhIiBdLAoJWyAiMTM1MCIsICJQYWxtZXIiLCAiSmFtZXMiLCAiTjVYIDVCMSIsICJHZXJtYW55IiBdLAoJWyAiMTM1MSIsICJBdmEiLCAiRWF0b24iLCAiNzY0OTciLCAiRWd5cHQiIF0sCglbICIxMzUyIiwgIktpb25hIiwgIlNtaXRoIiwgIjA5NDAyIiwgIkJlbGl6ZSIgXSwKCVsgIjEzNTMiLCAiQnJpYW4iLCAiQmFybG93IiwgIjAwMTU2IiwgIlBhbmFtYSIgXSwKCVsgIjEzNTQiLCAiTm9sYW4iLCAiUm9zYSIsICJKMk8gOVcyIiwgIlVydWd1YXkiIF0sCglbICIxMzU1IiwgIlRlZWdhbiIsICJCdXJuZXR0IiwgIjAyNDAxIiwgIkl0YWx5IiBdLAoJWyAiMTM1NiIsICJFcmluIiwgIktub3giLCAiOTU0OTYiLCAiRWd5cHQiIF0sCglbICIxMzU3IiwgIkFtZWxhIiwgIlNhbmZvcmQiLCAiNTk4OTAiLCAiVmlyZ2luIElzbGFuZHMsIFUuUy4iIF0sCglbICIxMzU4IiwgIlF1ZW1ieSIsICJIZW5zbGV5IiwgIjE3Njk4IiwgIlR1dmFsdSIgXSwKCVsgIjEzNTkiLCAiQXZhIiwgIllvcmsiLCAiSjFNIDFBMCIsICJOaWdlcmlhIiBdLAoJWyAiMTM2MCIsICJWaXZpZW4iLCAiV2FyZSIsICJOOVMgMVc2IiwgIkJhaGFtYXMiIF0sCglbICIxMzYxIiwgIk55c3NhIiwgIkxhbWIiLCAiOTc5NjQiLCAiRXN0b25pYSIgXSwKCVsgIjEzNjIiLCAiQnJlbm5hIiwgIlNsYXRlciIsICJMNFAgNVY2IiwgIkJyaXRpc2ggSW5kaWFuIE9jZWFuIFRlcnJpdG9yeSIgXSwKCVsgIjEzNjMiLCAiS2VubmFuIiwgIkxhcnNlbiIsICJNMkEgNFgwIiwgIkFuZ29sYSIgXSwKCVsgIjEzNjQiLCAiTGluZGEiLCAiTHVuYSIsICJQOEMgNFM4IiwgIkdhbWJpYSIgXSwKCVsgIjEzNjUiLCAiQm9yaXMiLCAiUG9vbGUiLCAiVTdKIDRHMSIsICJBcnViYSIgXSwKCVsgIjEzNjYiLCAiTHlsZSIsICJDb3RlIiwgIkY1SiAzWTIiLCAiU29tYWxpYSIgXSwKCVsgIjEzNjciLCAiT2xlZyIsICJLbmFwcCIsICJLNEMgNVQ4IiwgIkd1aW5lYSIgXSwKCVsgIjEzNjgiLCAiSGFuYWUiLCAiQnJvd24iLCAiNTEzOTUiLCAiTmVwYWwiIF0sCglbICIxMzY5IiwgIkluZGlhIiwgIkh5ZGUiLCAiRThQIDdFOCIsICJCZWxpemUiIF0sCglbICIxMzcwIiwgIk1hZGVzb24iLCAiSG9kZ2UiLCAiMjMyNjUiLCAiR2FtYmlhIiBdLAoJWyAiMTM3MSIsICJUaGFkZGV1cyIsICJIZXN0ZXIiLCAiWTdTIDVXMSIsICJTYWludCBIZWxlbmEiIF0sCglbICIxMzcyIiwgIkFhcm9uIiwgIktlbXAiLCAiQTFRIDhSMyIsICJBbGJhbmlhIiBdLAoJWyAiMTM3MyIsICJBdXJlbGlhIiwgIlRob3JudG9uIiwgIlA4VCA5RDQiLCAiU3dhemlsYW5kIiBdLAoJWyAiMTM3NCIsICJQcmVzdG9uIiwgIlNoYXJwZSIsICI5NzQ3MiIsICJOaXVlIiBdLAoJWyAiMTM3NSIsICJHcmFjZSIsICJHcmVnb3J5IiwgIjUxNzY3IiwgIkJ1cmtpbmEgRmFzbyIgXSwKCVsgIjEzNzYiLCAiTmljb2xlIiwgIkhpY2tzIiwgIjgxMDQwIiwgIkJ1cmtpbmEgRmFzbyIgXSwKCVsgIjEzNzciLCAiSGFsbCIsICJSYW5kYWxsIiwgIlgxQyA3QTgiLCAiQ2FtYm9kaWEiIF0sCglbICIxMzc4IiwgIkJ1cmtlIiwgIlNpbHZhIiwgIjU3MjE5IiwgIlJvbWFuaWEiIF0sCglbICIxMzc5IiwgIlRhbG9uIiwgIktsaW5lIiwgIjI4MjAwIiwgIkFyZ2VudGluYSIgXSwKCVsgIjEzODAiLCAiQ2Fzc2FkeSIsICJEdW5jYW4iLCAiWTJNIDhGNSIsICJLZW55YSIgXSwKCVsgIjEzODEiLCAiQnJpZWxsZSIsICJSZWVkIiwgIjA2MjU0IiwgIkdyZWVjZSIgXSwKCVsgIjEzODIiLCAiQ2xhaXJlIiwgIlN0ZWluIiwgIjUwMjg5IiwgIlZpZXQgTmFtIiBdLAoJWyAiMTM4MyIsICJGbGV1ciIsICJDYWJyZXJhIiwgIjMwMTMxIiwgIkluZG9uZXNpYSIgXSwKCVsgIjEzODQiLCAiRWxsYSIsICJFbGxpc29uIiwgIlE3USA0UjIiLCAiTmV0aGVybGFuZHMgQW50aWxsZXMiIF0sCglbICIxMzg1IiwgIlphY2hlcnkiLCAiV29sZiIsICJBOVEgNkE4IiwgIkphbWFpY2EiIF0sCglbICIxMzg2IiwgIkVtZXJzb24iLCAiQnJld2VyIiwgIlk0UiA5TTkiLCAiQm9zbmlhIGFuZCBIZXJ6ZWdvdmluYSIgXSwKCVsgIjEzODciLCAiU2FyYWgiLCAiQnJvb2tzIiwgIjI3MjgxIiwgIlBpdGNhaXJuIiBdLAoJWyAiMTM4OCIsICJLeWxhbiIsICJHYXJyaXNvbiIsICJTOEUgN0w4IiwgIkRqaWJvdXRpIiBdLAoJWyAiMTM4OSIsICJHdWluZXZlcmUiLCAiTWlsbHMiLCAiNzU2MTIiLCAiQ29tb3JvcyIgXSwKCVsgIjEzOTAiLCAiQ2xhdWRpYSIsICJTdGV2ZW5zb24iLCAiNzMzOTAiLCAiQ29sb21iaWEiIF0sCglbICIxMzkxIiwgIlZhbGVudGluZSIsICJCdXJ0b24iLCAiWjlQIDdSOCIsICJOYXVydSIgXSwKCVsgIjEzOTIiLCAiUmF5bW9uZCIsICJNY2xlYW4iLCAiTDhXIDJLNSIsICJCcnVuZWkgRGFydXNzYWxhbSIgXSwKCVsgIjEzOTMiLCAiSnVsaWV0IiwgIkNvbWJzIiwgIjg4NzEyIiwgIlNhbW9hIiBdLAoJWyAiMTM5NCIsICJMYXdyZW5jZSIsICJXaWxsaWFtc29uIiwgIjMyNTI4IiwgIk5ldGhlcmxhbmRzIEFudGlsbGVzIiBdLAoJWyAiMTM5NSIsICJJbmdhIiwgIlJpdmVycyIsICIxMjg1MCIsICJLdXdhaXQiIF0sCglbICIxMzk2IiwgIk1pcmEiLCAiWmltbWVybWFuIiwgIkQxSSAxVzIiLCAiSXJlbGFuZCIgXSwKCVsgIjEzOTciLCAiSGlsZGEiLCAiU3RhZmZvcmQiLCAiMTEwNTQiLCAiQ3ViYSIgXSwKCVsgIjEzOTgiLCAiVGFuZWsiLCAiS2ltIiwgIjg4NTkwIiwgIkNheW1hbiBJc2xhbmRzIiBdLAoJWyAiMTM5OSIsICJCcnlhciIsICJNY2ludHlyZSIsICJINkYgNFM1IiwgIlJ1c3NpYW4gRmVkZXJhdGlvbiIgXSwKCVsgIjE0MDAiLCAiU2VhbiIsICJSZWVkIiwgIlAyViA4SjkiLCAiTWFsdGEiIF0sCglbICIxNDAxIiwgIlNlcmVuYSIsICJIZW5kZXJzb24iLCAiWjVDIDhBMCIsICJNYWRhZ2FzY2FyIiBdLAoJWyAiMTQwMiIsICJIZWRsZXkiLCAiUGFya3MiLCAiTDhTIDZGNCIsICJBbmdvbGEiIF0sCglbICIxNDAzIiwgIkFsaWNlIiwgIlF1aW5uIiwgIjA2MDg0IiwgIlNlbmVnYWwiIF0sCglbICIxNDA0IiwgIkxpbmRhIiwgIkJ1cmdlc3MiLCAiSDFFIDdDMCIsICJUdXJrbWVuaXN0YW4iIF0sCglbICIxNDA1IiwgIkhpbGRhIiwgIkJ1cm5zIiwgIlE5USA0UzIiLCAiS3lyZ3l6c3RhbiIgXSwKCVsgIjE0MDYiLCAiR3JpZmZpdGgiLCAiV2F0dHMiLCAiRDRKIDdOMiIsICJVbml0ZWQgU3RhdGVzIE1pbm9yIE91dGx5aW5nIElzbGFuZHMiIF0sCglbICIxNDA3IiwgIkNhbWRlbiIsICJHbGVubiIsICIxMjkzOSIsICJSdXNzaWFuIEZlZGVyYXRpb24iIF0sCglbICIxNDA4IiwgIlRhbGx1bGFoIiwgIlJ1c2giLCAiRzlWIDNOMiIsICJUdXJrZXkiIF0sCglbICIxNDA5IiwgIkhhc2FkIiwgIlNhbGluYXMiLCAiSDNGIDdQOSIsICJDYW1lcm9vbiIgXSwKCVsgIjE0MTAiLCAiVmlvbGV0IiwgIkNoYXZleiIsICJUMkggOUM2IiwgIlZpcmdpbiBJc2xhbmRzLCBVLlMuIiBdLAoJWyAiMTQxMSIsICJEZWNsYW4iLCAiSHVybGV5IiwgIjMyNjE0IiwgIklyYW4sIElzbGFtaWMgUmVwdWJsaWMgb2YiIF0sCglbICIxNDEyIiwgIlJvYmluIiwgIkRlYW4iLCAiMzQyNjYiLCAiTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzIiBdLAoJWyAiMTQxMyIsICJNYXJpa28iLCAiQXZpbGEiLCAiQjhGIDhZNSIsICJCdXJ1bmRpIiBdLAoJWyAiMTQxNCIsICJCcmFkbGV5IiwgIlB1Z2giLCAiMTE0NTMiLCAiU3JpIExhbmthIiBdLAoJWyAiMTQxNSIsICJIZXJtYW4iLCAiSGVybmFuZGV6IiwgIkYzQyA2UzIiLCAiQ2hpbGUiIF0sCglbICIxNDE2IiwgIk1vbnRhbmEiLCAiV3lubiIsICJCM00gOE0yIiwgIkFydWJhIiBdLAoJWyAiMTQxNyIsICJFcmluIiwgIk1lbHRvbiIsICIxNzAyMiIsICJGcmFuY2UiIF0sCglbICIxNDE4IiwgIlphY2hlcnkiLCAiU21hbGwiLCAiTDVPIDdPMSIsICJGcmVuY2ggU291dGhlcm4gVGVycml0b3JpZXMiIF0sCglbICIxNDE5IiwgIk1lbGFuaWUiLCAiUml2ZXJhIiwgIjA3OTIyIiwgIktvcmVhIiBdLAoJWyAiMTQyMCIsICJCbG9zc29tIiwgIkNoYXNlIiwgIjc1NDkzIiwgIk1hdXJpdGl1cyIgXSwKCVsgIjE0MjEiLCAiU3RlcGhhbmllIiwgIlRheWxvciIsICJVOEsgM0k5IiwgIkJhaGFtYXMiIF0sCglbICIxNDIyIiwgIkNhcnRlciIsICJGdWx0b24iLCAiVDRGIDhEMSIsICJUdXJrcyBhbmQgQ2FpY29zIElzbGFuZHMiIF0sCglbICIxNDIzIiwgIkNlbGVzdGUiLCAiTWVkaW5hIiwgIjc1NjI5IiwgIkxlYmFub24iIF0sCglbICIxNDI0IiwgIkthdGVsbCIsICJHdXptYW4iLCAiMTU0MDkiLCAiVW5pdGVkIEFyYWIgRW1pcmF0ZXMiIF0sCglbICIxNDI1IiwgIkhvd2FyZCIsICJSb3dsYW5kIiwgIjI5MDAzIiwgIkxpYmVyaWEiIF0sCglbICIxNDI2IiwgIlJlZWNlIiwgIlRheWxvciIsICJXOEcgN1A3IiwgIlNhbW9hIiBdLAoJWyAiMTQyNyIsICJCcmFkbGV5IiwgIlBldGVyc29uIiwgIjUyNTY4IiwgIlNpbmdhcG9yZSIgXSwKCVsgIjE0MjgiLCAiVWxyaWMiLCAiSGFuY29jayIsICIwNzQzNyIsICJCb2xpdmlhIiBdLAoJWyAiMTQyOSIsICJGcmFuY2lzIiwgIlJvZ2VycyIsICIxNTkwNCIsICJBbGJhbmlhIiBdLAoJWyAiMTQzMCIsICJUYXRpYW5hIiwgIk1jY3JheSIsICIxOTYwNCIsICJCZWxpemUiIF0sCglbICIxNDMxIiwgIk1lcnJpbGwiLCAiUm93ZSIsICI2ODUzOSIsICJFdGhpb3BpYSIgXSwKCVsgIjE0MzIiLCAiS2lhcmEiLCAiVGF5bG9yIiwgIkY2RCA4VjciLCAiQnVya2luYSBGYXNvIiBdLAoJWyAiMTQzMyIsICJCdWZmeSIsICJTaGFubm9uIiwgIjYxODgwIiwgIktpcmliYXRpIiBdLAoJWyAiMTQzNCIsICJBbWJlciIsICJGYXJtZXIiLCAiSzVGIDFKNyIsICJCYXJiYWRvcyIgXSwKCVsgIjE0MzUiLCAiQmxha2UiLCAiV2lsa2lucyIsICJPMUwgMkcyIiwgIlZpcmdpbiBJc2xhbmRzLCBVLlMuIiBdLAoJWyAiMTQzNiIsICJBaW1lZSIsICJGdWx0b24iLCAiMTg2MjYiLCAiQ2hhZCIgXSwKCVsgIjE0MzciLCAiS2FpIiwgIk1vbnRnb21lcnkiLCAiVTZTIDRXNyIsICJDb3N0YSBSaWNhIiBdLAoJWyAiMTQzOCIsICJMYXRpZmFoIiwgIkJlbGwiLCAiNzQ1ODkiLCAiQ2hhZCIgXSwKCVsgIjE0MzkiLCAiUm9uYW4iLCAiSGVycmluZyIsICIwMTcxMCIsICJQYWxlc3RpbmlhbiBUZXJyaXRvcnksIE9jY3VwaWVkIiBdLAoJWyAiMTQ0MCIsICJNYWN5IiwgIlNraW5uZXIiLCAiNzgwNTQiLCAiR2licmFsdGFyIiBdLAoJWyAiMTQ0MSIsICJJZ25hdGl1cyIsICJCZXJnIiwgIjU5NzU2IiwgIkxpZWNodGVuc3RlaW4iIF0sCglbICIxNDQyIiwgIlByZXNjb3R0IiwgIlByYXR0IiwgIlY2SCA2UDQiLCAiS3V3YWl0IiBdLAoJWyAiMTQ0MyIsICJEZWJvcmFoIiwgIkhlYmVydCIsICIxMTQ4MCIsICJMaWJlcmlhIiBdLAoJWyAiMTQ0NCIsICJRdWVudGluIiwgIkpvbmVzIiwgIkc4VyA4VTYiLCAiU2xvdmVuaWEiIF0sCglbICIxNDQ1IiwgIkR1bmNhbiIsICJQYXJzb25zIiwgIlo5RiA1RzgiLCAiQ2FtYm9kaWEiIF0sCglbICIxNDQ2IiwgIlNoZWlsYSIsICJHZW9yZ2UiLCAiMTgwMzMiLCAiVHJpbmlkYWQgYW5kIFRvYmFnbyIgXSwKCVsgIjE0NDciLCAiQWx5c3NhIiwgIlBhZGlsbGEiLCAiVjNPIDZDMyIsICJRYXRhciIgXSwKCVsgIjE0NDgiLCAiQW1lbGlhIiwgIk9yciIsICI1MTk0MyIsICJDYW5hZGEiIF0sCglbICIxNDQ5IiwgIkJldGhhbnkiLCAiVGhvbWFzIiwgIjMzNDUxIiwgIkxpYmVyaWEiIF0sCglbICIxNDUwIiwgIktlbGxpZSIsICJQaXR0cyIsICJHNFMgMVEzIiwgIlBhbmFtYSIgXSwKCVsgIjE0NTEiLCAiU3RvbmUiLCAiU3RvdXQiLCAiTDRDIDlOMCIsICJMYXR2aWEiIF0sCglbICIxNDUyIiwgIkJyeW5uZSIsICJCYWlsZXkiLCAiQjFNIDRPMCIsICJVa3JhaW5lIiBdLAoJWyAiMTQ1MyIsICJBcXVpbGEiLCAiSHVybGV5IiwgIjQxMzEyIiwgIlVuaXRlZCBLaW5nZG9tIiBdLAoJWyAiMTQ1NCIsICJEYXZpZCIsICJCcmFkc2hhdyIsICIxMTE1MiIsICJEZW5tYXJrIiBdLAoJWyAiMTQ1NSIsICJSeWFuIiwgIkdhdGVzIiwgIlo3TyAxVTAiLCAiQXVzdHJpYSIgXSwKCVsgIjE0NTYiLCAiS3lsZSIsICJXZWJlciIsICIzOTg3MSIsICJHdXlhbmEiIF0sCglbICIxNDU3IiwgIkRlY2xhbiIsICJNb29yZSIsICJLM0IgNkwyIiwgIkdpYnJhbHRhciIgXSwKCVsgIjE0NTgiLCAiVGhlb2RvcmUiLCAiSGlja21hbiIsICJXOEUgNksxIiwgIk1hdXJpdGl1cyIgXSwKCVsgIjE0NTkiLCAiUmViZWthaCIsICJNZXJyaXR0IiwgIjQ0MDQyIiwgIk1hdXJpdGFuaWEiIF0sCglbICIxNDYwIiwgIk1lcmVkaXRoIiwgIlBvd2VsbCIsICI5ODIzOCIsICJCaHV0YW4iIF0sCglbICIxNDYxIiwgIlBha2kiLCAiU2ltbW9ucyIsICIzNDEyMiIsICJOb3J3YXkiIF0sCglbICIxNDYyIiwgIkNhcmlzc2EiLCAiQmFsbGFyZCIsICIyMDA5NSIsICJBbnRhcmN0aWNhIiBdLAoJWyAiMTQ2MyIsICJKYW1lcyIsICJXaWxzb24iLCAiOTYzNzYiLCAiVmVuZXp1ZWxhIiBdLAoJWyAiMTQ2NCIsICJQYW1lbGEiLCAiR2FtYmxlIiwgIlU3RiA3QjYiLCAiVHVya21lbmlzdGFuIiBdLAoJWyAiMTQ2NSIsICJSb2dhbiIsICJEYXZlbnBvcnQiLCAiRTZTIDRSNyIsICJGcmVuY2ggUG9seW5lc2lhIiBdLAoJWyAiMTQ2NiIsICJEYXBobmUiLCAiUGVhcnNvbiIsICJHMkggOU0wIiwgIkFtZXJpY2FuIFNhbW9hIiBdLAoJWyAiMTQ2NyIsICJNYXh3ZWxsIiwgIk5hc2giLCAiODcyMDUiLCAiR3VhZGVsb3VwZSIgXSwKCVsgIjE0NjgiLCAiSGF5ZXMiLCAiU2FsYXphciIsICI1NTcxMiIsICJBbWVyaWNhbiBTYW1vYSIgXSwKCVsgIjE0NjkiLCAiSnVzdGluIiwgIkNvbm5lciIsICIwMzkyNCIsICJVbml0ZWQgS2luZ2RvbSIgXSwKCVsgIjE0NzAiLCAiQmx5dGhlIiwgIkpveW5lciIsICJUNkggM00wIiwgIk1vbnRzZXJyYXQiIF0sCglbICIxNDcxIiwgIkhlcnJvZCIsICJTcGVhcnMiLCAiMTk0NzQiLCAiUGhpbGlwcGluZXMiIF0sCglbICIxNDcyIiwgIll2ZXR0ZSIsICJKb3ljZSIsICJSN1kgN0I4IiwgIkJvdHN3YW5hIiBdLAoJWyAiMTQ3MyIsICJDaGxvZSIsICJSZWlkIiwgIks0WSAxUjIiLCAiUGhpbGlwcGluZXMiIF0sCglbICIxNDc0IiwgIk1hY0tlbnNpZSIsICJCcmFuY2giLCAiSjVFIDNYOCIsICJTYWludCBLaXR0cyBhbmQgTmV2aXMiIF0sCglbICIxNDc1IiwgIk5hc2ltIiwgIkJ1Y2hhbmFuIiwgIk00RSA0RDIiLCAiUG9ydHVnYWwiIF0sCglbICIxNDc2IiwgIkFpbGVlbiIsICJSYXNtdXNzZW4iLCAiSDJWIDNGNCIsICJEb21pbmljYSIgXSwKCVsgIjE0NzciLCAiTmljb2xlIiwgIk11bGxpbnMiLCAiVTZRIDlYNSIsICJOZXcgQ2FsZWRvbmlhIiBdLAoJWyAiMTQ3OCIsICJEYXZpZCIsICJMdW5hIiwgIjExOTM1IiwgIlN2YWxiYXJkIGFuZCBKYW4gTWF5ZW4iIF0sCglbICIxNDc5IiwgIkdlcm1haW5lIiwgIk1hc3NleSIsICJHM04gNEM3IiwgIkNvbG9tYmlhIiBdLAoJWyAiMTQ4MCIsICJNYXR0aGV3IiwgIktub3dsZXMiLCAiVjREIDRaMCIsICJUdXJrZXkiIF0sCglbICIxNDgxIiwgIlRpbW9uIiwgIlJvd2UiLCAiMTQwMjQiLCAiTW9yb2NjbyIgXSwKCVsgIjE0ODIiLCAiR2FpbCIsICJZb3VuZyIsICI2ODI5MyIsICJCaHV0YW4iIF0sCglbICIxNDgzIiwgIk1hcmlhbSIsICJNZWppYSIsICJPM1AgNFE3IiwgIlNpbmdhcG9yZSIgXSwKCVsgIjE0ODQiLCAiQ2FybGEiLCAiTm9ycmlzIiwgIkQ3QSAzRjEiLCAiTGliZXJpYSIgXSwKCVsgIjE0ODUiLCAiQWluc2xleSIsICJEb25hbGRzb24iLCAiSDRaIDFROCIsICJUYW56YW5pYSwgVW5pdGVkIFJlcHVibGljIG9mIiBdLAoJWyAiMTQ4NiIsICJBdnllIiwgIlJheW1vbmQiLCAiNDQ4MDgiLCAiTmFtaWJpYSIgXSwKCVsgIjE0ODciLCAiQW1hbmRhIiwgIlNhcmdlbnQiLCAiTzdGIDNTNCIsICJBZmdoYW5pc3RhbiIgXSwKCVsgIjE0ODgiLCAiVGlnZXIiLCAiQ2hhbWJlcnMiLCAiSTNLIDdINCIsICJVbml0ZWQgU3RhdGVzIiBdLAoJWyAiMTQ4OSIsICJEeWxhbiIsICJGb3JkIiwgIjA0MDQzIiwgIlNvbG9tb24gSXNsYW5kcyIgXSwKCVsgIjE0OTAiLCAiS2FpdGxpbiIsICJGcmFua2xpbiIsICI5OTQ1MSIsICJOYW1pYmlhIiBdLAoJWyAiMTQ5MSIsICJIYXllcyIsICJDcmFmdCIsICJENkggNFk2IiwgIkNocmlzdG1hcyBJc2xhbmQiIF0sCglbICIxNDkyIiwgIk5vbGFuIiwgIlN1bGxpdmFuIiwgIjMxMjQ2IiwgIlVuaXRlZCBTdGF0ZXMgTWlub3IgT3V0bHlpbmcgSXNsYW5kcyIgXSwKCVsgIjE0OTMiLCAiSmVubmlmZXIiLCAiUm9tZXJvIiwgIkU3SSAxUjciLCAiTGF0dmlhIiBdLAoJWyAiMTQ5NCIsICJEZWFubmEiLCAiV2FsbCIsICIzNjEwOSIsICJOZXBhbCIgXSwKCVsgIjE0OTUiLCAiRGFyYSIsICJWYWxlbnp1ZWxhIiwgIjE4MzU5IiwgIk1hcnRpbmlxdWUiIF0sCglbICIxNDk2IiwgIklyaXMiLCAiQmxhbmNoYXJkIiwgIjg0MzkyIiwgIlR1cmtzIGFuZCBDYWljb3MgSXNsYW5kcyIgXSwKCVsgIjE0OTciLCAiUmhlYSIsICJCdXJnZXNzIiwgIlQ3WSA3QzUiLCAiTGliZXJpYSIgXSwKCVsgIjE0OTgiLCAiS2FyaW5hIiwgIlNtYWxsIiwgIkIyRiAyWDUiLCAiQmVybXVkYSIgXSwKCVsgIjE0OTkiLCAiVmljdG9yIiwgIkNhc2UiLCAiNDk0OTIiLCAiVmFudWF0dSIgXSwKCVsgIjE1MDAiLCAiUm9zZSIsICJUZXJyeSIsICJCNEcgOEkwIiwgIlRpbW9yLWxlc3RlIiBdLAoJWyAiMTUwMSIsICJXeWF0dCIsICJCZXJnIiwgIkszQiA1TjIiLCAiVmFudWF0dSIgXSwKCVsgIjE1MDIiLCAiWmVwaGFuaWEiLCAiSGVycmVyYSIsICJFNlIgMkE1IiwgIlJvbWFuaWEiIF0sCglbICIxNTAzIiwgIkZlbGl4IiwgIkpvaG5zIiwgIlg4VSAyUDEiLCAiQW5nb2xhIiBdLAoJWyAiMTUwNCIsICJNZWx5c3NhIiwgIkdlb3JnZSIsICJNNEogNVg4IiwgIlV6YmVraXN0YW4iIF0sCglbICIxNTA1IiwgIlJvYmVydCIsICJTcGVhcnMiLCAiNjEzMjIiLCAiUGFwdWEgTmV3IEd1aW5lYSIgXSwKCVsgIjE1MDYiLCAiTXlyYSIsICJXb29kIiwgIjUwNjM4IiwgIkFmZ2hhbmlzdGFuIiBdLAoJWyAiMTUwNyIsICJTZWFuIiwgIktlcnIiLCAiNDAwOTQiLCAiR3VhZGVsb3VwZSIgXSwKCVsgIjE1MDgiLCAiV2VzbGV5IiwgIk1jY2xhaW4iLCAiSDdGIDFIMyIsICJNb25nb2xpYSIgXSwKCVsgIjE1MDkiLCAiSXNobWFlbCIsICJIb292ZXIiLCAiNDI1MDMiLCAiQ3plY2ggUmVwdWJsaWMiIF0sCglbICIxNTEwIiwgIk9jZWFuIiwgIlBhcmtlciIsICJMM1ogOEcwIiwgIkd1eWFuYSIgXSwKCVsgIjE1MTEiLCAiQmVyayIsICJDbGF5IiwgIkI2USA3VjciLCAiQm90c3dhbmEiIF0sCglbICIxNTEyIiwgIkRhcXVhbiIsICJIYXJyaXNvbiIsICI3ODAwNCIsICJOaWdlciIgXSwKCVsgIjE1MTMiLCAiUmFtb25hIiwgIkJ1cnJpcyIsICI2Njk4NiIsICJQYWxhdSIgXSwKCVsgIjE1MTQiLCAiSmFkZW4iLCAiTWlyYW5kYSIsICI4MDA4NiIsICJNYWRhZ2FzY2FyIiBdLAoJWyAiMTUxNSIsICJTb2xvbW9uIiwgIktpcmsiLCAiUjdNIDNNMyIsICJTbG92ZW5pYSIgXSwKCVsgIjE1MTYiLCAiVGFuZWsiLCAiUm9zYWxlcyIsICJYNUIgNUQwIiwgIlRvbmdhIiBdLAoJWyAiMTUxNyIsICJKYWNrIiwgIkNvb2tlIiwgIjQ2MzU2IiwgIkZyZW5jaCBTb3V0aGVybiBUZXJyaXRvcmllcyIgXSwKCVsgIjE1MTgiLCAiTmFvbWkiLCAiU3lrZXMiLCAiNzY1NDEiLCAiTWFyc2hhbGwgSXNsYW5kcyIgXSwKCVsgIjE1MTkiLCAiTW9hbmEiLCAiVmluc29uIiwgIks0UiAzVTciLCAiU2FpbnQgUGllcnJlIGFuZCBNaXF1ZWxvbiIgXSwKCVsgIjE1MjAiLCAiS2F5ZSIsICJTd2VldCIsICJTNlMgMkcwIiwgIkRvbWluaWNhbiBSZXB1YmxpYyIgXSwKCVsgIjE1MjEiLCAiQnJ1bm8iLCAiQmVhcmQiLCAiMjA2ODYiLCAiSXNyYWVsIiBdLAoJWyAiMTUyMiIsICJIZWxlbiIsICJSaWNoYXJkcyIsICI2NjM5MyIsICJBcmdlbnRpbmEiIF0sCglbICIxNTIzIiwgIkdpc2VsYSIsICJPd2VucyIsICJTOFEgNEwzIiwgIkhhaXRpIiBdLAoJWyAiMTUyNCIsICJJdnkiLCAiR2FycmV0dCIsICJQNkcgOFM4IiwgIlVuaXRlZCBBcmFiIEVtaXJhdGVzIiBdLAoJWyAiMTUyNSIsICJNYWxpayIsICJPc2Jvcm5lIiwgIjc4MzMyIiwgIlRhamlraXN0YW4iIF0sCglbICIxNTI2IiwgIldob29waSIsICJGcmFuY28iLCAiVDNUIDVZMSIsICJTZXJiaWEgYW5kIE1vbnRlbmVncm8iIF0sCglbICIxNTI3IiwgIkJhc2lsIiwgIkJha2VyIiwgIjYxMjMzIiwgIkN1YmEiIF0sCglbICIxNTI4IiwgIkxpbmRhIiwgIktpbmciLCAiMzE0MTAiLCAiRmFsa2xhbmQgSXNsYW5kcyAoTWFsdmluYXMpIiBdLAoJWyAiMTUyOSIsICJBbGxlZ3JhIiwgIkhvYmJzIiwgIkYyQyA5TTgiLCAiQW5kb3JyYSIgXSwKCVsgIjE1MzAiLCAiS2lyc3RlbiIsICJFbGxpb3R0IiwgIlQ4QyA0WDMiLCAiSGFpdGkiIF0sCglbICIxNTMxIiwgIkpvc2VwaCIsICJPcnRpeiIsICI0MDE2NSIsICJGYWxrbGFuZCBJc2xhbmRzIChNYWx2aW5hcykiIF0sCglbICIxNTMyIiwgIlBlYXJsIiwgIk1jY29ybWljayIsICI5MzkxNCIsICJGYWxrbGFuZCBJc2xhbmRzIChNYWx2aW5hcykiIF0sCglbICIxNTMzIiwgIkZyaXR6IiwgIkF1c3RpbiIsICJBM1MgN0M4IiwgIkNhbmFkYSIgXSwKCVsgIjE1MzQiLCAiTHVuZWEiLCAiSGlja21hbiIsICIyNTY3NiIsICJDYW1lcm9vbiIgXSwKCVsgIjE1MzUiLCAiSW5nYSIsICJDb3J0ZXoiLCAiMTQ3MDciLCAiQ29tb3JvcyIgXSwKCVsgIjE1MzYiLCAiQ2xhdWRpYSIsICJMb25nIiwgIjc0ODc3IiwgIlRva2VsYXUiIF0sCglbICIxNTM3IiwgIkp1ZGFoIiwgIldpbGxpYW1zb24iLCAiUzlOIDZGMCIsICJQYXJhZ3VheSIgXSwKCVsgIjE1MzgiLCAiRXZlIiwgIkJlYXNsZXkiLCAiSzhaIDVINyIsICJIb25kdXJhcyIgXSwKCVsgIjE1MzkiLCAiVGFkIiwgIkxhbmciLCAiMjk1NzciLCAiRXF1YXRvcmlhbCBHdWluZWEiIF0sCglbICIxNTQwIiwgIkphY2siLCAiTGF3c29uIiwgIjQ2NjMxIiwgIkNvc3RhIFJpY2EiIF0sCglbICIxNTQxIiwgIlZhdWdoYW4iLCAiQmFycm9uIiwgIk45TCA5VDQiLCAiQ2hpbGUiIF0sCglbICIxNTQyIiwgIlNvbG9tb24iLCAiQm93bWFuIiwgIjA1NzM0IiwgIkNvY29zIChLZWVsaW5nKSBJc2xhbmRzIiBdLAoJWyAiMTU0MyIsICJOYXNoIiwgIkdpbGVzIiwgIjY0NjAwIiwgIkRlbm1hcmsiIF0sCglbICIxNTQ0IiwgIlhhbmRlciIsICJFYXRvbiIsICI4NDkzMyIsICJCb3NuaWEgYW5kIEhlcnplZ292aW5hIiBdLAoJWyAiMTU0NSIsICJIYW5uYSIsICJIdWxsIiwgIjYxMDYyIiwgIk5hbWliaWEiIF0sCglbICIxNTQ2IiwgIkxlZSIsICJHYWluZXMiLCAiVjdIIDZINyIsICJTdXJpbmFtZSIgXSwKCVsgIjE1NDciLCAiQnJpYW4iLCAiU3V0dG9uIiwgIjYwMDU1IiwgIlRpbW9yLWxlc3RlIiBdLAoJWyAiMTU0OCIsICJBemFsaWEiLCAiSGVuc29uIiwgIkQ5SiA4RTQiLCAiQW50YXJjdGljYSIgXSwKCVsgIjE1NDkiLCAiUnVzc2VsbCIsICJBdmlsYSIsICIwMTc3NCIsICJDaGluYSIgXSwKCVsgIjE1NTAiLCAiTWFyc2RlbiIsICJMZWJsYW5jIiwgIjMwMjAxIiwgIk5ldyBDYWxlZG9uaWEiIF0sCglbICIxNTUxIiwgIlRhZCIsICJOaWNob2xzIiwgIks1ViA2TjEiLCAiTW9uYWNvIiBdLAoJWyAiMTU1MiIsICJFbGlhbmEiLCAiU2F2YWdlIiwgIjA2ODA3IiwgIkNlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYyIgXSwKCVsgIjE1NTMiLCAiTWFkZWxpbmUiLCAiQ29ud2F5IiwgIjgzNTEzIiwgIkxhdHZpYSIgXSwKCVsgIjE1NTQiLCAiS2FpIiwgIkNhbGR3ZWxsIiwgIlMxSyAyUTIiLCAiSW5kb25lc2lhIiBdLAoJWyAiMTU1NSIsICJXeW5uZSIsICJHb29kbWFuIiwgIlU5WSA4UDciLCAiR2licmFsdGFyIiBdLAoJWyAiMTU1NiIsICJOb3JhIiwgIkR1ZGxleSIsICI1MjY4OCIsICJOZXRoZXJsYW5kcyBBbnRpbGxlcyIgXSwKCVsgIjE1NTciLCAiQW5hc3Rhc2lhIiwgIkdhdGVzIiwgIlQ3VCA4QzgiLCAiTW9yb2NjbyIgXSwKCVsgIjE1NTgiLCAiTGVzdGVyIiwgIkdvb2QiLCAiNzYzNzYiLCAiSGVhcmQgSXNsYW5kIGFuZCBNY2RvbmFsZCBJc2xhbmRzIiBdLAoJWyAiMTU1OSIsICJDcmFpZyIsICJTa2lubmVyIiwgIlM3QiAzWjYiLCAiTWFkYWdhc2NhciIgXSwKCVsgIjE1NjAiLCAiS2libyIsICJDcmFmdCIsICJNNUMgMkk5IiwgIkhvbmcgS29uZyIgXSwKCVsgIjE1NjEiLCAiQ2FybG9zIiwgIkJ1Y2siLCAiODkzNDMiLCAiTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzIiBdLAoJWyAiMTU2MiIsICJJdm9yIiwgIk1vb25leSIsICJNOUQgMlkzIiwgIktvcmVhIiBdLAoJWyAiMTU2MyIsICJBcm1hbmQiLCAiU2hpZWxkcyIsICJFOE8gN1g2IiwgIlV6YmVraXN0YW4iIF0sCglbICIxNTY0IiwgIkdyYWNlIiwgIldlZWtzIiwgIkc1QiAzVzUiLCAiTmljYXJhZ3VhIiBdLAoJWyAiMTU2NSIsICJSZWFnYW4iLCAiTWFubiIsICJKMkUgNUkxIiwgIlNhbiBNYXJpbm8iIF0sCglbICIxNTY2IiwgIlF1aW4iLCAiTm9sYW4iLCAiUTlFIDJRMCIsICJUdXJrZXkiIF0sCglbICIxNTY3IiwgIkthcmVlbSIsICJKZWZmZXJzb24iLCAiOTEzOTMiLCAiWmFtYmlhIiBdLAoJWyAiMTU2OCIsICJFcmljYSIsICJNY2NveSIsICJDM1AgM0wwIiwgIlZpZXQgTmFtIiBdLAoJWyAiMTU2OSIsICJTeWJpbGwiLCAiTGFyc2VuIiwgIkozVSAzTDkiLCAiU2llcnJhIExlb25lIiBdLAoJWyAiMTU3MCIsICJBbmdlbGEiLCAiV2ViZXIiLCAiNDY1NTkiLCAiQ3JvYXRpYSIgXSwKCVsgIjE1NzEiLCAiTWFubml4IiwgIk5vZWwiLCAiOTQwMjkiLCAiQmVsZ2l1bSIgXSwKCVsgIjE1NzIiLCAiTWFydGluYSIsICJUcmF2aXMiLCAiMjAwNjMiLCAiU29sb21vbiBJc2xhbmRzIiBdLAoJWyAiMTU3MyIsICJEb21pbmljIiwgIldoaXRlaGVhZCIsICI4MzU0NyIsICJHaWJyYWx0YXIiIF0sCglbICIxNTc0IiwgIlZsYWRpbWlyIiwgIkh1bnRlciIsICJMM0kgNEc3IiwgIlJldW5pb24iIF0sCglbICIxNTc1IiwgIkZhcnJhaCIsICJBbGV4YW5kZXIiLCAiMTg1MzgiLCAiQ3JvYXRpYSIgXSwKCVsgIjE1NzYiLCAiSG9wIiwgIkJ1cm5zIiwgIlgxQyA3SjYiLCAiU2FpbnQgTHVjaWEiIF0sCglbICIxNTc3IiwgIlplbGRhIiwgIlRyZXZpbm8iLCAiTDhQIDdFOSIsICJHdWluZWEiIF0sCglbICIxNTc4IiwgIk5laHJ1IiwgIkRlY2tlciIsICJRMVAgNFE5IiwgIldlc3Rlcm4gU2FoYXJhIiBdLAoJWyAiMTU3OSIsICJTaGF5IiwgIkdvZmYiLCAiNjg1NzYiLCAiU3dlZGVuIiBdLAoJWyAiMTU4MCIsICJEb21pbmljIiwgIk1hcnRpbiIsICJDMU0gOVAyIiwgIkRlbm1hcmsiIF0sCglbICIxNTgxIiwgIkhlYXRoZXIiLCAiRG95bGUiLCAiWTdSIDlIMSIsICJJcmFuLCBJc2xhbWljIFJlcHVibGljIG9mIiBdLAoJWyAiMTU4MiIsICJIb25vcmF0byIsICJSb2phcyIsICIyOTQxNCIsICJJbmRpYSIgXSwKCVsgIjE1ODMiLCAiRmxvcmVuY2UiLCAiRW5nbGFuZCIsICI2NDY2OSIsICJDaGluYSIgXSwKCVsgIjE1ODQiLCAiWmFuZSIsICJSZXllcyIsICI4NDc3MSIsICJIZWFyZCBJc2xhbmQgYW5kIE1jZG9uYWxkIElzbGFuZHMiIF0sCglbICIxNTg1IiwgIlNjYXJsZXR0IiwgIlBvb2xlIiwgIjM2OTI4IiwgIkFsZ2VyaWEiIF0sCglbICIxNTg2IiwgIkRpZXRlciIsICJCcmVubmFuIiwgIlk4ViA1TDIiLCAiQ29sb21iaWEiIF0sCglbICIxNTg3IiwgIkphbWFsIiwgIldoaXRuZXkiLCAiMzM0MjgiLCAiVHVya2V5IiBdLAoJWyAiMTU4OCIsICJFdmFuIiwgIkd1eSIsICI3MjExOSIsICJTbG92YWtpYSIgXSwKCVsgIjE1ODkiLCAiQ2FuZGFjZSIsICJCYXVlciIsICJDOEwgMVAyIiwgIk1hY2Vkb25pYSIgXSwKCVsgIjE1OTAiLCAiTmFvbWkiLCAiUGVubmluZ3RvbiIsICIxNzM1MCIsICJUb25nYSIgXSwKCVsgIjE1OTEiLCAiQ2VsZXN0ZSIsICJCYW5rcyIsICJSOFIgNEM4IiwgIkFuZ3VpbGxhIiBdLAoJWyAiMTU5MiIsICJCYXNpbCIsICJFbGxpb3R0IiwgIjgwMDY1IiwgIlNpbmdhcG9yZSIgXSwKCVsgIjE1OTMiLCAiRGFycnlsIiwgIldpc2UiLCAiMzMxNDAiLCAiQnJ1bmVpIERhcnVzc2FsYW0iIF0sCglbICIxNTk0IiwgIk1hcm55IiwgIldhbGxzIiwgIlMxSyA0VjEiLCAiV2VzdGVybiBTYWhhcmEiIF0sCglbICIxNTk1IiwgIkFuYXN0YXNpYSIsICJNZXllciIsICJaMUYgOEMyIiwgIkVsIFNhbHZhZG9yIiBdLAoJWyAiMTU5NiIsICJCcnlubmUiLCAiUml2ZXJhIiwgIjQ4MDcwIiwgIk1leGljbyIgXSwKCVsgIjE1OTciLCAiTWFjZXkiLCAiSm9obnN0b24iLCAiWDlFIDlKNSIsICJHdWFkZWxvdXBlIiBdLAoJWyAiMTU5OCIsICJCZXRoYW55IiwgIk1hcmtzIiwgIjQ2NjQ4IiwgIkJodXRhbiIgXSwKCVsgIjE1OTkiLCAiS2lheWFkYSIsICJHbGFzcyIsICIxMzY2MSIsICJDaHJpc3RtYXMgSXNsYW5kIiBdLAoJWyAiMTYwMCIsICJWZWRhIiwgIkJvd2VycyIsICJEN1MgMVM5IiwgIktvcmVhIiBdLAoJWyAiMTYwMSIsICJEYW50ZSIsICJLaXJrIiwgIjU4NDA0IiwgIkd1aW5lYSIgXSwKCVsgIjE2MDIiLCAiSnVkYWgiLCAiU2xvYW4iLCAiMDQ1MjgiLCAiQW5kb3JyYSIgXSwKCVsgIjE2MDMiLCAiU2VyZW5hIiwgIkdpbGVzIiwgIjEyMTM5IiwgIlBhcHVhIE5ldyBHdWluZWEiIF0sCglbICIxNjA0IiwgIkNoYXNlIiwgIkh1bGwiLCAiMjcyMDMiLCAiR3VpbmVhLWJpc3NhdSIgXSwKCVsgIjE2MDUiLCAiV2FsbGFjZSIsICJQb29sZSIsICI1ODkxOSIsICJDaHJpc3RtYXMgSXNsYW5kIiBdLAoJWyAiMTYwNiIsICJEZWFjb24iLCAiTHlubiIsICJaMUggOUc0IiwgIktlbnlhIiBdLAoJWyAiMTYwNyIsICJJZ29yIiwgIkR1bmNhbiIsICJYMlYgMlgxIiwgIkNocmlzdG1hcyBJc2xhbmQiIF0sCglbICIxNjA4IiwgIldhbGtlciIsICJIb3BraW5zIiwgIjY3MjU2IiwgIkJvc25pYSBhbmQgSGVyemVnb3ZpbmEiIF0sCglbICIxNjA5IiwgIlNlcmVuYSIsICJCdXJuZXR0IiwgIlE0QyA3UTAiLCAiQ2FuYWRhIiBdLAoJWyAiMTYxMCIsICJIZWR3aWciLCAiQnVyZ2VzcyIsICJPMkogN0E1IiwgIlJ3YW5kYSIgXSwKCVsgIjE2MTEiLCAiQW1hbCIsICJSaWNobW9uZCIsICIzNDUwNiIsICJBdXN0cmFsaWEiIF0sCglbICIxNjEyIiwgIlJob25hIiwgIkdvbWV6IiwgIlcyQyAzSTciLCAiT21hbiIgXSwKCVsgIjE2MTMiLCAiS2FpIiwgIkFjb3N0YSIsICJOMk8gN00yIiwgIlVnYW5kYSIgXSwKCVsgIjE2MTQiLCAiSGVucnkiLCAiUm9tYW4iLCAiNzgxMTMiLCAiR3VhZGVsb3VwZSIgXSwKCVsgIjE2MTUiLCAiQ2hlc3RlciIsICJHb29kIiwgIjg4ODA5IiwgIk5vcndheSIgXSwKCVsgIjE2MTYiLCAiQ2xlbyIsICJUYW5uZXIiLCAiNzM5MjQiLCAiVWdhbmRhIiBdLAoJWyAiMTYxNyIsICJFbWkiLCAiTGxveWQiLCAiNTk3NDYiLCAiU291dGggQWZyaWNhIiBdLAoJWyAiMTYxOCIsICJDaHJpc3RvcGhlciIsICJMb3BleiIsICI3NjI2NCIsICJMaWJ5YW4gQXJhYiBKYW1haGlyaXlhIiBdLAoJWyAiMTYxOSIsICJZdm9ubmUiLCAiTWF0aGV3cyIsICI2ODY1NSIsICJTYWludCBMdWNpYSIgXSwKCVsgIjE2MjAiLCAiS2ltYmVybHkiLCAiTXVsbGVuIiwgIkQ2SiA5RzMiLCAiVmlyZ2luIElzbGFuZHMsIEJyaXRpc2giIF0sCglbICIxNjIxIiwgIkhhbm5hIiwgIlNsYXRlciIsICJGOEYgOUs1IiwgIk1vbnRzZXJyYXQiIF0sCglbICIxNjIyIiwgIkxhdXJhIiwgIkRlbm5pcyIsICJKNlUgMkczIiwgIlZpZXQgTmFtIiBdLAoJWyAiMTYyMyIsICJSb2dhbiIsICJSaWNoYXJkcyIsICJSMUQgMUIzIiwgIkFyZ2VudGluYSIgXSwKCVsgIjE2MjQiLCAiTWlyYSIsICJSb2RyaXF1ZXoiLCAiQzNEIDNFNSIsICJHdWluZWEiIF0sCglbICIxNjI1IiwgIkV6cmEiLCAiTXllcnMiLCAiWTdaIDdYMiIsICJLdXdhaXQiIF0sCglbICIxNjI2IiwgIkpvY2VseW4iLCAiTWFydGluIiwgIkUyRiAzRjIiLCAiQWxnZXJpYSIgXSwKCVsgIjE2MjciLCAiRGVudG9uIiwgIkxlZSIsICI4MDkwMyIsICJDb25nbyIgXSwKCVsgIjE2MjgiLCAiR3JhY2UiLCAiTGVhY2giLCAiODY4NjUiLCAiU3BhaW4iIF0sCglbICIxNjI5IiwgIkNsYXJrIiwgIk1vcnJvdyIsICIxMjgzNCIsICJOb3J0aGVybiBNYXJpYW5hIElzbGFuZHMiIF0sCglbICIxNjMwIiwgIkFybWFuZG8iLCAiQ2FsaG91biIsICJJM0kgMUQ0IiwgIlNwYWluIiBdLAoJWyAiMTYzMSIsICJHZW9yZ2UiLCAiRGVja2VyIiwgIlIxQiA2UTkiLCAiTWFsaSIgXSwKCVsgIjE2MzIiLCAiSmVyb21lIiwgIlNhbGF6YXIiLCAiMDM4MzEiLCAiRmFyb2UgSXNsYW5kcyIgXSwKCVsgIjE2MzMiLCAiTG9nYW4iLCAiU2FudGlhZ28iLCAiNDYyNjkiLCAiSHVuZ2FyeSIgXSwKCVsgIjE2MzQiLCAiR2F2aW4iLCAiVGF0ZSIsICJZM0wgNkc1IiwgIkl0YWx5IiBdLAoJWyAiMTYzNSIsICJDaGxvZSIsICJKZW5uaW5ncyIsICJEOUIgMkg5IiwgIkNhbWJvZGlhIiBdLAoJWyAiMTYzNiIsICJSYXNoYWQiLCAiS25veCIsICJUMVYgNEc1IiwgIkdlcm1hbnkiIF0sCglbICIxNjM3IiwgIkppbiIsICJSb2JlcnRzIiwgIjgyOTI4IiwgIkF6ZXJiYWlqYW4iIF0sCglbICIxNjM4IiwgIkFtaXR5IiwgIkd1ZXJyZXJvIiwgIkY0RyAyTDQiLCAiVmlldCBOYW0iIF0sCglbICIxNjM5IiwgIkNhcnRlciIsICJSb2JlcnNvbiIsICI1MzY1MSIsICJOaXVlIiBdLAoJWyAiMTY0MCIsICJTbGFkZSIsICJDYXJzb24iLCAiSDlFIDFHMSIsICJHdXlhbmEiIF0sCglbICIxNjQxIiwgIkJ1Y2ttaW5zdGVyIiwgIkNocmlzdGVuc2VuIiwgIkY1SiA2VDUiLCAiQWxnZXJpYSIgXSwKCVsgIjE2NDIiLCAiRmFsbG9uIiwgIlBldGVycyIsICJEOVkgNVE0IiwgIkV0aGlvcGlhIiBdLAoJWyAiMTY0MyIsICJBbXkiLCAiQmFycnkiLCAiRDZGIDNSNCIsICJOZXcgQ2FsZWRvbmlhIiBdLAoJWyAiMTY0NCIsICJDYWx2aW4iLCAiQnVjayIsICIxODM1NCIsICJNYWNlZG9uaWEiIF0sCglbICIxNjQ1IiwgIktheWUiLCAiSGF5bmVzIiwgIkQ5SyAxWDgiLCAiSXRhbHkiIF0sCglbICIxNjQ2IiwgIlNoZWEiLCAiSGFtbW9uZCIsICJSN1AgM1g4IiwgIkd1YW0iIF0sCglbICIxNjQ3IiwgIktpYXJhIiwgIkZyYW5rcyIsICIwMTE4NSIsICJNb3phbWJpcXVlIiBdLAoJWyAiMTY0OCIsICJBcm1hbmRvIiwgIk9uZWlsIiwgIjg4OTcyIiwgIkJhaHJhaW4iIF0sCglbICIxNjQ5IiwgIkxlc2xleSIsICJBbGxlbiIsICIwNTE3MSIsICJCZWxnaXVtIiBdLAoJWyAiMTY1MCIsICJJZ25hdGl1cyIsICJCYXJyZXR0IiwgIjk0MDg0IiwgIkdlb3JnaWEiIF0sCglbICIxNjUxIiwgIkdyYWhhbSIsICJNYWxkb25hZG8iLCAiNzYzNTQiLCAiRG9taW5pY2FuIFJlcHVibGljIiBdLAoJWyAiMTY1MiIsICJCcmlhciIsICJSb21hbiIsICJQOU0gM0E5IiwgIkNheW1hbiBJc2xhbmRzIiBdLAoJWyAiMTY1MyIsICJHZXJtYW5lIiwgIkNvbG9uIiwgIlUzWCA3UzkiLCAiQnJhemlsIiBdLAoJWyAiMTY1NCIsICJBbHZpbiIsICJNY3BoZXJzb24iLCAiNTg0MTEiLCAiR3VpbmVhIiBdLAoJWyAiMTY1NSIsICJCZWxsZSIsICJTYW5kb3ZhbCIsICI4NzE3MiIsICJDeXBydXMiIF0sCglbICIxNjU2IiwgIkVyaWMiLCAiQ2FsZHdlbGwiLCAiNjMyNDYiLCAiR3VpbmVhIiBdLAoJWyAiMTY1NyIsICJOYWRpbmUiLCAiRGFsZSIsICJUNkUgNEIwIiwgIkRlbm1hcmsiIF0sCglbICIxNjU4IiwgIkRvcmEiLCAiSmltZW5leiIsICI4NTQ2MyIsICJOYXVydSIgXSwKCVsgIjE2NTkiLCAiTW9oYW1tYWQiLCAiU3RyaWNrbGFuZCIsICJIOEIgOUcyIiwgIkphcGFuIiBdLAoJWyAiMTY2MCIsICJSZWFnYW4iLCAiUHJlc3RvbiIsICJHNUUgOFM1IiwgIkhvbmR1cmFzIiBdLAoJWyAiMTY2MSIsICJUYW1la2FoIiwgIkRhbmllbCIsICJaM1ggNlE2IiwgIkJlbGFydXMiIF0sCglbICIxNjYyIiwgIkhhbGVlIiwgIk1pbGxzIiwgIjIzMzMyIiwgIk1heW90dGUiIF0sCglbICIxNjYzIiwgIkNvdXJ0bmV5IiwgIkVuZ2xhbmQiLCAiMDk3NTEiLCAiU2FpbnQgS2l0dHMgYW5kIE5ldmlzIiBdLAoJWyAiMTY2NCIsICJEYWkiLCAiQXJub2xkIiwgIkEyTiA5SjQiLCAiQXJnZW50aW5hIiBdLAoJWyAiMTY2NSIsICJQcmlzY2lsbGEiLCAiUmV5ZXMiLCAiRzJCIDVNNCIsICJBemVyYmFpamFuIiBdLAoJWyAiMTY2NiIsICJCcmVuZGEiLCAiU3RhbmxleSIsICJJNk8gM0kxIiwgIkh1bmdhcnkiIF0sCglbICIxNjY3IiwgIkthc3BlciIsICJXYXNoaW5ndG9uIiwgIkg0SyA4SzciLCAiU2VyYmlhIGFuZCBNb250ZW5lZ3JvIiBdLAoJWyAiMTY2OCIsICJTdWtpIiwgIkhlbmRyaWNrcyIsICJMMUsgNU85IiwgIk5vcndheSIgXSwKCVsgIjE2NjkiLCAiUmViZWthaCIsICJNY2Nvcm1pY2siLCAiODk1NDMiLCAiU2xvdmVuaWEiIF0sCglbICIxNjcwIiwgIk9wcmFoIiwgIlJvZHJpcXVleiIsICI5MDAzNCIsICJDb3N0YSBSaWNhIiBdLAoJWyAiMTY3MSIsICJJdm9yeSIsICJNYXR0aGV3cyIsICJUOUogMkE3IiwgIlBhbmFtYSIgXSwKCVsgIjE2NzIiLCAiRmVycmlzIiwgIkdhcm5lciIsICI5MzU4MyIsICJOaXVlIiBdLAoJWyAiMTY3MyIsICJNZWx2aW4iLCAiV2hpdGUiLCAiWDVVIDlOOCIsICJOaWdlcmlhIiBdLAoJWyAiMTY3NCIsICJIZW5yeSIsICJTd2Fuc29uIiwgIkU3ViAyQzkiLCAiTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzIiBdLAoJWyAiMTY3NSIsICJIYWRhc3NhaCIsICJFYXRvbiIsICI1Mjc5OCIsICJBbGJhbmlhIiBdLAoJWyAiMTY3NiIsICJMaXNhbmRyYSIsICJTeWtlcyIsICI5MDgzOCIsICJOYW1pYmlhIiBdLAoJWyAiMTY3NyIsICJIb25vcmF0byIsICJCcmFkc2hhdyIsICJXM0QgMVo5IiwgIlVuaXRlZCBTdGF0ZXMiIF0sCglbICIxNjc4IiwgIkF1cmVsaWEiLCAiUGF1bCIsICJaNkUgNlc5IiwgIk1hbGF5c2lhIiBdLAoJWyAiMTY3OSIsICJBcnRodXIiLCAiTWFubiIsICI3NDY3MyIsICJCaHV0YW4iIF0sCglbICIxNjgwIiwgIk1lbGlzc2EiLCAiSGVybmFuZGV6IiwgIjExNzQyIiwgIkRvbWluaWNhbiBSZXB1YmxpYyIgXSwKCVsgIjE2ODEiLCAiQmVydCIsICJNb3NsZXkiLCAiTjJLIDVVNSIsICJLdXdhaXQiIF0sCglbICIxNjgyIiwgIlNpZ291cm5leSIsICJTaGFycGUiLCAiMzAyMDQiLCAiU291dGggQWZyaWNhIiBdLAoJWyAiMTY4MyIsICJJZmVvbWEiLCAiV29vZHMiLCAiMzk4NTAiLCAiSGFpdGkiIF0sCglbICIxNjg0IiwgIlR5bGVyIiwgIk1lZGluYSIsICJLNkwgOVY4IiwgIkluZG9uZXNpYSIgXSwKCVsgIjE2ODUiLCAiS2FybGVpZ2giLCAiR3JpZmZpbiIsICJHOFogNlcyIiwgIkNhbmFkYSIgXSwKCVsgIjE2ODYiLCAiQnJpYW5uYSIsICJDb2xsaW5zIiwgIjExOTE5IiwgIk5ldyBDYWxlZG9uaWEiIF0sCglbICIxNjg3IiwgIkFsbGlzdGFpciIsICJIYW1wdG9uIiwgIk8xWCAyTjciLCAiQ29jb3MgKEtlZWxpbmcpIElzbGFuZHMiIF0sCglbICIxNjg4IiwgIkNhcmxhIiwgIk1hbm5pbmciLCAiNzY4NjYiLCAiU3ZhbGJhcmQgYW5kIEphbiBNYXllbiIgXSwKCVsgIjE2ODkiLCAiSmFrZWVtIiwgIkJyZXdlciIsICJZMVQgMUQ3IiwgIkNvbW9yb3MiIF0sCglbICIxNjkwIiwgIlByaWNlIiwgIkd1ZXJyZXJvIiwgIlM3WiA4TzEiLCAiQ2hyaXN0bWFzIElzbGFuZCIgXSwKCVsgIjE2OTEiLCAiSGFybGFuIiwgIlNhbmRvdmFsIiwgIjU4NTI3IiwgIkN6ZWNoIFJlcHVibGljIiBdLAoJWyAiMTY5MiIsICJNYXJjaWEiLCAiUm9iaW5zb24iLCAiNjQ2NjIiLCAiVWdhbmRhIiBdLAoJWyAiMTY5MyIsICJTeWx2ZXN0ZXIiLCAiSGV3aXR0IiwgIjgxNDY4IiwgIkhvbmR1cmFzIiBdLAoJWyAiMTY5NCIsICJEYXduIiwgIldvb2QiLCAiNzc3NDMiLCAiTWFsYXdpIiBdLAoJWyAiMTY5NSIsICJGYXJyYWgiLCAiTmllbHNlbiIsICJFNE4gOUE5IiwgIkNocmlzdG1hcyBJc2xhbmQiIF0sCglbICIxNjk2IiwgIlRhbmlzaGEiLCAiQmVuamFtaW4iLCAiTDJKIDNHNyIsICJDYXBlIFZlcmRlIiBdLAoJWyAiMTY5NyIsICJDaGVyb2tlZSIsICJBdGtpbnMiLCAiTDdEIDJMNSIsICJNb2xkb3ZhIiBdLAoJWyAiMTY5OCIsICJNYWRhbGluZSIsICJFbGxpb3R0IiwgIkg3SyA4UjQiLCAiQmFyYmFkb3MiIF0sCglbICIxNjk5IiwgIk9keXNzZXVzIiwgIlJveSIsICI2NTAwOCIsICJTbG92YWtpYSIgXSwKCVsgIjE3MDAiLCAiRWF0b24iLCAiU3RlaW4iLCAiWjJWIDdIMCIsICJNb2xkb3ZhIiBdLAoJWyAiMTcwMSIsICJSYWNoZWwiLCAiSHVybGV5IiwgIkw2TCAyQjIiLCAiQW50aWd1YSBhbmQgQmFyYnVkYSIgXSwKCVsgIjE3MDIiLCAiU3RhY2V5IiwgIkhhcmRpbiIsICJPOVUgMUI3IiwgIk1vbnRzZXJyYXQiIF0sCglbICIxNzAzIiwgIkdyYWR5IiwgIk1vbnRnb21lcnkiLCAiNzU4NTIiLCAiR3VpbmVhLWJpc3NhdSIgXSwKCVsgIjE3MDQiLCAiU2VyZW5hIiwgIkRvdWdsYXMiLCAiRjVNIDhaNiIsICJNYXVyaXRpdXMiIF0sCglbICIxNzA1IiwgIlJhbHBoIiwgIkR1a2UiLCAiSDdYIDNNOSIsICJUdW5pc2lhIiBdLAoJWyAiMTcwNiIsICJDaGFybGVzIiwgIk1vb2R5IiwgIjg2NDQ1IiwgIlBpdGNhaXJuIiBdLAoJWyAiMTcwNyIsICJNYXJpYW0iLCAiTGFyYSIsICIwNzk1MiIsICJVbml0ZWQgS2luZ2RvbSIgXSwKCVsgIjE3MDgiLCAiV2hpdG5leSIsICJHYXJ6YSIsICI3NDAwMSIsICJOb3Jmb2xrIElzbGFuZCIgXSwKCVsgIjE3MDkiLCAiQmV2ZXJseSIsICJUaG9ybnRvbiIsICI2OTg0NyIsICJDYW5hZGEiIF0sCglbICIxNzEwIiwgIkhlbGVuIiwgIkdlbnRyeSIsICJaOFMgN1U0IiwgIlJldW5pb24iIF0sCglbICIxNzExIiwgIkphbm5hIiwgIkdvdWxkIiwgIlc2QyA2RTEiLCAiQnVydW5kaSIgXSwKCVsgIjE3MTIiLCAiSmFuYSIsICJIb29wZXIiLCAiQTFSIDlZMCIsICJZZW1lbiIgXSwKCVsgIjE3MTMiLCAiWmFjaGFyeSIsICJOaWNob2xzb24iLCAiNDk2MTYiLCAiR2Fib24iIF0sCglbICIxNzE0IiwgIkp1bGlhbiIsICJEYXZpcyIsICIzNzYwOCIsICJBbmd1aWxsYSIgXSwKCVsgIjE3MTUiLCAiR2F5IiwgIktub3giLCAiNTE5NTIiLCAiQ3JvYXRpYSIgXSwKCVsgIjE3MTYiLCAiSW9sYSIsICJNb3NlcyIsICIxNjYwMSIsICJGcmVuY2ggUG9seW5lc2lhIiBdLAoJWyAiMTcxNyIsICJBbGxlZ3JhIiwgIkhvbGRlciIsICJDOVIgOEozIiwgIkRvbWluaWNhbiBSZXB1YmxpYyIgXSwKCVsgIjE3MTgiLCAiQ2VjaWxpYSIsICJTaGFubm9uIiwgIjYyNjI0IiwgIlJldW5pb24iIF0sCglbICIxNzE5IiwgIkNvcmEiLCAiUGV0ZXJzb24iLCAiSTlWIDVQNSIsICJDaGFkIiBdLAoJWyAiMTcyMCIsICJTdGV3YXJ0IiwgIk1hdGhld3MiLCAiQTVIIDFFMSIsICJNZXhpY28iIF0sCglbICIxNzIxIiwgIkthdGhsZWVuIiwgIkx5bm4iLCAiODI0MDgiLCAiSG9uZHVyYXMiIF0sCglbICIxNzIyIiwgIldpbGxpYW0iLCAiU2NobmVpZGVyIiwgIjI1ODIzIiwgIlRhamlraXN0YW4iIF0sCglbICIxNzIzIiwgIkFsaWNlIiwgIk1jY29ubmVsbCIsICI1MDE1NSIsICJSdXNzaWFuIEZlZGVyYXRpb24iIF0sCglbICIxNzI0IiwgIlRpbW9uIiwgIkRpbGxvbiIsICI5MzE3MSIsICJDcm9hdGlhIiBdLAoJWyAiMTcyNSIsICJUYW5layIsICJFbGxpc29uIiwgIlk3USA1QjEiLCAiTWFsYXdpIiBdLAoJWyAiMTcyNiIsICJUYW1la2FoIiwgIkN1bW1pbmdzIiwgIjAzNzY0IiwgIkFmZ2hhbmlzdGFuIiBdLAoJWyAiMTcyNyIsICJDaGFybG90dGUiLCAiQ2hhbmV5IiwgIlU3WSA3QjAiLCAiS3lyZ3l6c3RhbiIgXSwKCVsgIjE3MjgiLCAiSmFzb24iLCAiQ29ud2F5IiwgIjM3NzEzIiwgIk1hcnRpbmlxdWUiIF0sCglbICIxNzI5IiwgIkdyYWlkZW4iLCAiQ29tYnMiLCAiNDA0NTQiLCAiVHVya21lbmlzdGFuIiBdLAoJWyAiMTczMCIsICJWaXJnaW5pYSIsICJPcnRpeiIsICJLOU4gMlE0IiwgIk1hbHRhIiBdLAoJWyAiMTczMSIsICJUaG9tYXMiLCAiQ2Fubm9uIiwgIlcxSCAzVDkiLCAiQ3ViYSIgXSwKCVsgIjE3MzIiLCAiR2FsZW5hIiwgIkRvbWluZ3VleiIsICI2ODA3MiIsICJJbmRpYSIgXSwKCVsgIjE3MzMiLCAiVmF1Z2hhbiIsICJQZXR0eSIsICIxNTIwMCIsICJMZXNvdGhvIiBdLAoJWyAiMTczNCIsICJCdWZmeSIsICJTYXVuZGVycyIsICJLMVcgM0IxIiwgIkJ1cmtpbmEgRmFzbyIgXSwKCVsgIjE3MzUiLCAiQ2hhdmEiLCAiSGlsbCIsICI5MzQ2MSIsICJJcmFuLCBJc2xhbWljIFJlcHVibGljIG9mIiBdLAoJWyAiMTczNiIsICJTYWdlIiwgIkhhbXB0b24iLCAiUjhZIDhKMSIsICJNYWx0YSIgXSwKCVsgIjE3MzciLCAiTmF0aGFuaWVsIiwgIldoaXRuZXkiLCAiODkwOTciLCAiVWtyYWluZSIgXSwKCVsgIjE3MzgiLCAiSGVjdG9yIiwgIkhheWRlbiIsICI3MDc3NCIsICJOZXRoZXJsYW5kcyIgXSwKCVsgIjE3MzkiLCAiTWVyY2VkZXMiLCAiRnJlZW1hbiIsICI4MDg0OCIsICJDcm9hdGlhIiBdLAoJWyAiMTc0MCIsICJWYW5jZSIsICJTcGVuY2VyIiwgIjI1NDg0IiwgIkd1eWFuYSIgXSwKCVsgIjE3NDEiLCAiSm9zZXBoaW5lIiwgIlN0ZXZlbnMiLCAiRTREIDlEMSIsICJOZXRoZXJsYW5kcyBBbnRpbGxlcyIgXSwKCVsgIjE3NDIiLCAiQmFyYmFyYSIsICJNY2NsdXJlIiwgIjIyNjAyIiwgIkNhbWJvZGlhIiBdLAoJWyAiMTc0MyIsICJTeWRuZXkiLCAiSG9sZGVyIiwgIlg0RyAxWjciLCAiQnJpdGlzaCBJbmRpYW4gT2NlYW4gVGVycml0b3J5IiBdLAoJWyAiMTc0NCIsICJWZWxtYSIsICJFdmFucyIsICI4MzkxNCIsICJOZXcgWmVhbGFuZCIgXSwKCVsgIjE3NDUiLCAiRnJhbmNpcyIsICJMYW5lIiwgIjEyNTQ1IiwgIlNlcmJpYSBhbmQgTW9udGVuZWdybyIgXSwKCVsgIjE3NDYiLCAiR2Fycmlzb24iLCAiQnJvY2siLCAiMTk5OTMiLCAiRXJpdHJlYSIgXSwKCVsgIjE3NDciLCAiUXVlbnRpbiIsICJTYW50aWFnbyIsICIwNzA4NSIsICJOb3Jmb2xrIElzbGFuZCIgXSwKCVsgIjE3NDgiLCAiSXZvcnkiLCAiV2lsa2Vyc29uIiwgIjc5NDQwIiwgIkxpYnlhbiBBcmFiIEphbWFoaXJpeWEiIF0sCglbICIxNzQ5IiwgIkthcnluIiwgIkJ1Y2tuZXIiLCAiRDFZIDdEOCIsICJDb2NvcyAoS2VlbGluZykgSXNsYW5kcyIgXSwKCVsgIjE3NTAiLCAiTWFyaSIsICJCcmlnaHQiLCAiMjQ3MjEiLCAiUGFraXN0YW4iIF0sCglbICIxNzUxIiwgIkRleHRlciIsICJHYXJyaXNvbiIsICJYM1ggN0czIiwgIldlc3Rlcm4gU2FoYXJhIiBdLAoJWyAiMTc1MiIsICJWZW51cyIsICJBY2V2ZWRvIiwgIlYyRiA4QzAiLCAiUG9sYW5kIiBdLAoJWyAiMTc1MyIsICJOYXlkYSIsICJDYW1hY2hvIiwgIkY2SCA2SjUiLCAiTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzIiBdLAoJWyAiMTc1NCIsICJBdnllIiwgIkhhcnRtYW4iLCAiRzZWIDJIMCIsICJIb25nIEtvbmciIF0sCglbICIxNzU1IiwgIktlcnJ5IiwgIkJhaXJkIiwgIk0zUSA3QjciLCAiUnVzc2lhbiBGZWRlcmF0aW9uIiBdLAoJWyAiMTc1NiIsICJVbWEiLCAiSGVybWFuIiwgIkM5QSA0UDMiLCAiTGlieWFuIEFyYWIgSmFtYWhpcml5YSIgXSwKCVsgIjE3NTciLCAiQW1heWEiLCAiUm9tYW4iLCAiOTcxNzkiLCAiSWNlbGFuZCIgXSwKCVsgIjE3NTgiLCAiQnJ1Y2UiLCAiSm95Y2UiLCAiMTgzNDQiLCAiRGVubWFyayIgXSwKCVsgIjE3NTkiLCAiSmFycm9kIiwgIkFsdmFyZXoiLCAiNTkyNjkiLCAiTGliZXJpYSIgXSwKCVsgIjE3NjAiLCAiT2xpdmlhIiwgIlJlaWxseSIsICI5OTA1OCIsICJNYWxheXNpYSIgXSwKCVsgIjE3NjEiLCAiQmVuZWRpY3QiLCAiSGVuc2xleSIsICIyMzEwNSIsICJVZ2FuZGEiIF0sCglbICIxNzYyIiwgIkxhdmluaWEiLCAiSHVudGVyIiwgIjQ0NzI5IiwgIk1hbGRpdmVzIiBdLAoJWyAiMTc2MyIsICJCcmFkbGV5IiwgIkdvbWV6IiwgIjY1MTI1IiwgIkJlbGl6ZSIgXSwKCVsgIjE3NjQiLCAiS2VlbHkiLCAiQnVycmlzIiwgIjE4MzkwIiwgIkJydW5laSBEYXJ1c3NhbGFtIiBdLAoJWyAiMTc2NSIsICJBdXR1bW4iLCAiRW5nbGFuZCIsICJFNUQgN0E1IiwgIkt5cmd5enN0YW4iIF0sCglbICIxNzY2IiwgIkphbmUiLCAiQmxhaXIiLCAiUzFXIDRPMCIsICJCYW5nbGFkZXNoIiBdLAoJWyAiMTc2NyIsICJDaGFuY2VsbG9yIiwgIkJhcnJldHQiLCAiRTlGIDFJMSIsICJGaWppIiBdLAoJWyAiMTc2OCIsICJXaGl0bmV5IiwgIk1vcmluIiwgIkc1VCA0RTciLCAiQXJ1YmEiIF0sCglbICIxNzY5IiwgIk1hZGVsaW5lIiwgIlNwYXJrcyIsICJXN0wgN0UwIiwgIkJlbGl6ZSIgXSwKCVsgIjE3NzAiLCAiRGFsZSIsICJFc3RlcyIsICI4MjcxMiIsICJHdWFtIiBdLAoJWyAiMTc3MSIsICJIYWtlZW0iLCAiQnVjayIsICJPNksgMUk4IiwgIlNpbmdhcG9yZSIgXSwKCVsgIjE3NzIiLCAiQWxleGFuZHJhIiwgIkJ1cm5zIiwgIjEyNjk3IiwgIlBvcnR1Z2FsIiBdLAoJWyAiMTc3MyIsICJXaW5pZnJlZCIsICJHaWxsIiwgIlo4QiA4QjgiLCAiVXJ1Z3VheSIgXSwKCVsgIjE3NzQiLCAiR2FpbCIsICJHb21leiIsICJTMVYgM044IiwgIkFtZXJpY2FuIFNhbW9hIiBdLAoJWyAiMTc3NSIsICJNb2FuYSIsICJCcmFkeSIsICIxODgzNSIsICJXYWxsaXMgYW5kIEZ1dHVuYSIgXSwKCVsgIjE3NzYiLCAiTWFydGhhIiwgIk9saXZlciIsICI4MTk2MiIsICJCb2xpdmlhIiBdLAoJWyAiMTc3NyIsICJOYXlkYSIsICJXb290ZW4iLCAiMDAwNzEiLCAiUGFsYXUiIF0sCglbICIxNzc4IiwgIkJyeWFyIiwgIkNvbGxpZXIiLCAiNTA2MzEiLCAiTWV4aWNvIiBdLAoJWyAiMTc3OSIsICJQZW5lbG9wZSIsICJCcmFkc2hhdyIsICJBNkEgOU0yIiwgIkxlYmFub24iIF0sCglbICIxNzgwIiwgIld5YXR0IiwgIkxhcmEiLCAiNzU0ODYiLCAiU2xvdmVuaWEiIF0sCglbICIxNzgxIiwgIldhbmciLCAiT2Rvbm5lbGwiLCAiTjVYIDFONSIsICJCYWhhbWFzIiBdLAoJWyAiMTc4MiIsICJDaGlxdWl0YSIsICJIYXJyZWxsIiwgIjIxNjkxIiwgIkd1YWRlbG91cGUiIF0sCglbICIxNzgzIiwgIkJ5cm9uIiwgIkJsYW5rZW5zaGlwIiwgIk04QSAzTDQiLCAiU3lyaWFuIEFyYWIgUmVwdWJsaWMiIF0sCglbICIxNzg0IiwgIkhvbG1lcyIsICJTdG9rZXMiLCAiODEwMzkiLCAiTWF1cml0YW5pYSIgXSwKCVsgIjE3ODUiLCAiTmFvbWkiLCAiUGhpbGxpcHMiLCAiNTYyODciLCAiU3dpdHplcmxhbmQiIF0sCglbICIxNzg2IiwgIlF1eW4iLCAiSm9obnNvbiIsICJEMlQgNkI3IiwgIkN6ZWNoIFJlcHVibGljIiBdLAoJWyAiMTc4NyIsICJHaWxsaWFuIiwgIlNhbmRlcnMiLCAiNTA1NDIiLCAiQ29sb21iaWEiIF0sCglbICIxNzg4IiwgIkhvcGUiLCAiQmVuamFtaW4iLCAiNjc0MjMiLCAiQm9saXZpYSIgXSwKCVsgIjE3ODkiLCAiQnJ5YXIiLCAiRGVhbiIsICJVOVYgOUU1IiwgIkd1YXRlbWFsYSIgXSwKCVsgIjE3OTAiLCAiS2FyeW4iLCAiU3dhbnNvbiIsICJTNkggM1I4IiwgIklzcmFlbCIgXSwKCVsgIjE3OTEiLCAiQW1lbmEiLCAiRGF2aWQiLCAiMDIyODYiLCAiRnJlbmNoIFBvbHluZXNpYSIgXSwKCVsgIjE3OTIiLCAiSXJhIiwgIkpveW5lciIsICIzNzMzNSIsICJDYXltYW4gSXNsYW5kcyIgXSwKCVsgIjE3OTMiLCAiVGFuZWsiLCAiT25laWwiLCAiNzUwNDEiLCAiU2xvdmVuaWEiIF0sCglbICIxNzk0IiwgIkRvbGFuIiwgIk1pbGVzIiwgIks3USA5VTgiLCAiTWFsZGl2ZXMiIF0sCglbICIxNzk1IiwgIldhbmciLCAiS2VpdGgiLCAiODgxMTYiLCAiQ29uZ28iIF0sCglbICIxNzk2IiwgIld5bGllIiwgIkJyeWFudCIsICI5MzM2OSIsICJBbmRvcnJhIiBdLAoJWyAiMTc5NyIsICJIZWF0aGVyIiwgIkJyeWFudCIsICI3ODAxNSIsICJGcmVuY2ggUG9seW5lc2lhIiBdLAoJWyAiMTc5OCIsICJSZWdpbmEiLCAiV2FnbmVyIiwgIjI5MDg3IiwgIlZpcmdpbiBJc2xhbmRzLCBCcml0aXNoIiBdLAoJWyAiMTc5OSIsICJOYXRoYW4iLCAiQnVzaCIsICJKNVMgOUwwIiwgIlZpZXQgTmFtIiBdLAoJWyAiMTgwMCIsICJDaGFyaXR5IiwgIkRhd3NvbiIsICIyOTUwOCIsICJHcmVlY2UiIF0sCglbICIxODAxIiwgIlVscmljIiwgIkd1em1hbiIsICJJNlIgNlA2IiwgIk1pY3JvbmVzaWEiIF0sCglbICIxODAyIiwgIktlZWZlIiwgIlNjb3R0IiwgIkoxUiA4VDYiLCAiVXpiZWtpc3RhbiIgXSwKCVsgIjE4MDMiLCAiRmxvcmVuY2UiLCAiUHJpY2UiLCAiVTdQIDhGNiIsICJUYWl3YW4sIFByb3ZpbmNlIG9mIENoaW5hIiBdLAoJWyAiMTgwNCIsICJHcmlmZml0aCIsICJFbmdsYW5kIiwgIjkyNTU3IiwgIkNoaW5hIiBdLAoJWyAiMTgwNSIsICJLYXkiLCAiTmllbHNlbiIsICI4NTk5MSIsICJTdXJpbmFtZSIgXSwKCVsgIjE4MDYiLCAiVGFtZWthaCIsICJCbGFja2J1cm4iLCAiNDczMjQiLCAiUGFuYW1hIiBdLAoJWyAiMTgwNyIsICJJbmRpcmEiLCAiQ3Jvc2J5IiwgIjY0NDYzIiwgIlRyaW5pZGFkIGFuZCBUb2JhZ28iIF0sCglbICIxODA4IiwgIlBhbWVsYSIsICJWYXNxdWV6IiwgIksyUSA5QTEiLCAiR2hhbmEiIF0sCglbICIxODA5IiwgIlBhdHJpY2lhIiwgIkhhbGV5IiwgIjUxNTA5IiwgIkpvcmRhbiIgXSwKCVsgIjE4MTAiLCAiTmV2YWRhIiwgIlByaW5jZSIsICI0MTMxNSIsICJUb2tlbGF1IiBdLAoJWyAiMTgxMSIsICJNYXJ0aW4iLCAiV2lsa2Vyc29uIiwgIlk4WCA0WTUiLCAiUGFsZXN0aW5pYW4gVGVycml0b3J5LCBPY2N1cGllZCIgXSwKCVsgIjE4MTIiLCAiRGVpcmRyZSIsICJDYXN0YW5lZGEiLCAiWDFTIDVFMiIsICJCYWhyYWluIiBdLAoJWyAiMTgxMyIsICJDYXJhIiwgIkZseW5uIiwgIjY4MzcyIiwgIkF6ZXJiYWlqYW4iIF0sCglbICIxODE0IiwgIlN5bHZpYSIsICJBbGV4YW5kZXIiLCAiRTVGIDlNNSIsICJTdmFsYmFyZCBhbmQgSmFuIE1heWVuIiBdLAoJWyAiMTgxNSIsICJNYWNvbiIsICJTdWFyZXoiLCAiNjk4NjYiLCAiVHVuaXNpYSIgXSwKCVsgIjE4MTYiLCAiSGFtbWV0dCIsICJIYW5leSIsICIwOTc2OCIsICJCYW5nbGFkZXNoIiBdLAoJWyAiMTgxNyIsICJHZW9mZnJleSIsICJTaW1tb25zIiwgIjYxOTg2IiwgIkJ1cnVuZGkiIF0sCglbICIxODE4IiwgIkRhbmllbGxlIiwgIktlbGx5IiwgIjcxNTY4IiwgIk1hbGkiIF0sCglbICIxODE5IiwgIldpbmciLCAiQnJvd24iLCAiVTREIDZMMSIsICJVemJla2lzdGFuIiBdLAoJWyAiMTgyMCIsICJMZW4iLCAiQmFyYmVyIiwgIjQwMzExIiwgIlN1cmluYW1lIiBdLAoJWyAiMTgyMSIsICJSaWNoYXJkIiwgIldpbHNvbiIsICJXOUUgNkQ3IiwgIkZpbmxhbmQiIF0sCglbICIxODIyIiwgIktlYXRvbiIsICJIYXllcyIsICI1NTY5NiIsICJTbG92YWtpYSIgXSwKCVsgIjE4MjMiLCAiRG9yYSIsICJDaGFuZXkiLCAiNTcyOTciLCAiVW5pdGVkIFN0YXRlcyBNaW5vciBPdXRseWluZyBJc2xhbmRzIiBdLAoJWyAiMTgyNCIsICJBbGV4YW5kcmEiLCAiUHJ1aXR0IiwgIjE3MjA3IiwgIlR1cmttZW5pc3RhbiIgXSwKCVsgIjE4MjUiLCAiRGVhbm5hIiwgIkdvbWV6IiwgIkM5TSA5SzAiLCAiUGFyYWd1YXkiIF0sCglbICIxODI2IiwgIkxhdXJhIiwgIkRvd25zIiwgIjc0NDIyIiwgIkFudGlndWEgYW5kIEJhcmJ1ZGEiIF0sCglbICIxODI3IiwgIkpvbGVuZSIsICJMdWNhcyIsICJLOUUgNlU0IiwgIlRva2VsYXUiIF0sCglbICIxODI4IiwgIkx1Y3kiLCAiTWFycXVleiIsICJMMU4gNE80IiwgIkFyZ2VudGluYSIgXSwKCVsgIjE4MjkiLCAiQWJib3QiLCAiQmlzaG9wIiwgIkc4VyA3STEiLCAiR3VpbmVhLWJpc3NhdSIgXSwKCVsgIjE4MzAiLCAiQWFyb24iLCAiQm93bWFuIiwgIks4QSA1SzciLCAiR3JlZWNlIiBdLAoJWyAiMTgzMSIsICJDYW5kYWNlIiwgIkxlZSIsICI1ODkwMSIsICJUdXJrcyBhbmQgQ2FpY29zIElzbGFuZHMiIF0sCglbICIxODMyIiwgIkxhcmlzc2EiLCAiQWxsZW4iLCAiTzFJIDRYMCIsICJCZWxnaXVtIiBdLAoJWyAiMTgzMyIsICJMaW5kYSIsICJNYWxvbmUiLCAiMzEyMTEiLCAiVW5pdGVkIEFyYWIgRW1pcmF0ZXMiIF0sCglbICIxODM0IiwgIkdyYWNlIiwgIkRhdWdoZXJ0eSIsICI2MjYxMCIsICJDeXBydXMiIF0sCglbICIxODM1IiwgIkt5cmEiLCAiQmVycnkiLCAiVDJGIDNFNSIsICJOZXRoZXJsYW5kcyBBbnRpbGxlcyIgXSwKCVsgIjE4MzYiLCAiSGFkYXNzYWgiLCAiV2lsbGlzIiwgIkM3SCA1VjQiLCAiRWwgU2FsdmFkb3IiIF0sCglbICIxODM3IiwgIkt5bGUiLCAiRml0emdlcmFsZCIsICJYMVYgMlI5IiwgIkNyb2F0aWEiIF0sCglbICIxODM4IiwgIkdyYWlkZW4iLCAiQXRraW5zb24iLCAiTDlRIDZIOCIsICJUaGFpbGFuZCIgXSwKCVsgIjE4MzkiLCAiUmF5bW9uZCIsICJGbGV0Y2hlciIsICI1OTU3NCIsICJBcmdlbnRpbmEiIF0sCglbICIxODQwIiwgIktlYXRvbiIsICJCYXJuZXR0IiwgIk8yRyA2QjQiLCAiUGFwdWEgTmV3IEd1aW5lYSIgXSwKCVsgIjE4NDEiLCAiRmFycmFoIiwgIktyYW1lciIsICIyMTkyOCIsICJOZXRoZXJsYW5kcyBBbnRpbGxlcyIgXSwKCVsgIjE4NDIiLCAiQ2hyaXN0aWFuIiwgIlNlbGxlcnMiLCAiNTU1MDQiLCAiVGltb3ItbGVzdGUiIF0sCglbICIxODQzIiwgIktlaXRoIiwgIkNvaGVuIiwgIkQ5VCA3RDAiLCAiSXRhbHkiIF0sCglbICIxODQ0IiwgIkthcmxlaWdoIiwgIkJydWNlIiwgIkYyQSA1SDkiLCAiTW9udHNlcnJhdCIgXSwKCVsgIjE4NDUiLCAiSnVsaWUiLCAiQXZlcnkiLCAiVDRUIDNZNyIsICJOZXBhbCIgXSwKCVsgIjE4NDYiLCAiSG9sbGVlIiwgIkRlbGVvbiIsICI0NzUyNCIsICJPbWFuIiBdLAoJWyAiMTg0NyIsICJDaGFyaXR5IiwgIkJvb2tlciIsICI2MTA3MSIsICJDb2NvcyAoS2VlbGluZykgSXNsYW5kcyIgXSwKCVsgIjE4NDgiLCAiRmx5bm4iLCAiQm9uZCIsICJFOEwgOUQyIiwgIkFmZ2hhbmlzdGFuIiBdLAoJWyAiMTg0OSIsICJTeWJpbGwiLCAiUm90aCIsICIxNjQ1MyIsICJTYXVkaSBBcmFiaWEiIF0sCglbICIxODUwIiwgIkFseXNzYSIsICJKdWFyZXoiLCAiMDQ0NjYiLCAiU2luZ2Fwb3JlIiBdLAoJWyAiMTg1MSIsICJKZW5uaWZlciIsICJPZG9ubmVsbCIsICI1OTI3NyIsICJUdXZhbHUiIF0sCglbICIxODUyIiwgIkNhcmlzc2EiLCAiQnlyZCIsICI4MDg2MSIsICJQYWxhdSIgXSwKCVsgIjE4NTMiLCAiQ29ieSIsICJCYXJyZXR0IiwgIjA0NjY1IiwgIkNvbmdvIiBdLAoJWyAiMTg1NCIsICJCZXJ0aGEiLCAiUGF1bCIsICI0NjQ0MiIsICJBbmRvcnJhIiBdLAoJWyAiMTg1NSIsICJIYXlkZW4iLCAiRGVubmlzIiwgIks3RSAzTzEiLCAiRnJhbmNlIiBdLAoJWyAiMTg1NiIsICJLYWRlZW0iLCAiQmVycnkiLCAiMzk1NDQiLCAiVmFudWF0dSIgXSwKCVsgIjE4NTciLCAiQ2xheXRvbiIsICJCdXJucyIsICJDMkEgNlc1IiwgIkFuZG9ycmEiIF0sCglbICIxODU4IiwgIkJyZWFubmEiLCAiSGFyZHkiLCAiMTIyODQiLCAiTm9yd2F5IiBdLAoJWyAiMTg1OSIsICJZYWVsIiwgIkhlc3RlciIsICI2OTM5OSIsICJIb25nIEtvbmciIF0sCglbICIxODYwIiwgIkh1bnRlciIsICJIYXJkaW5nIiwgIk00TyA2TjUiLCAiQm9zbmlhIGFuZCBIZXJ6ZWdvdmluYSIgXSwKCVsgIjE4NjEiLCAiQnJlYW5uYSIsICJTdXR0b24iLCAiTjJDIDZLMyIsICJTaW5nYXBvcmUiIF0sCglbICIxODYyIiwgIkJvIiwgIkh1ZmZtYW4iLCAiNTQ1NTgiLCAiVGFpd2FuLCBQcm92aW5jZSBvZiBDaGluYSIgXSwKCVsgIjE4NjMiLCAiWmVuYSIsICJQb3R0cyIsICI4MDMyNiIsICJDemVjaCBSZXB1YmxpYyIgXSwKCVsgIjE4NjQiLCAiTHVjaWFuIiwgIlN5a2VzIiwgIkQ0TSA2TTUiLCAiVHJpbmlkYWQgYW5kIFRvYmFnbyIgXSwKCVsgIjE4NjUiLCAiR2FicmllbCIsICJTaGVwaGVyZCIsICI3NzYzMSIsICJCYWhyYWluIiBdLAoJWyAiMTg2NiIsICJWaXZpYW4iLCAiR291bGQiLCAiMjk1MTAiLCAiTm9yd2F5IiBdLAoJWyAiMTg2NyIsICJJbmEiLCAiU2hlcm1hbiIsICIwODEyMiIsICJQb3J0dWdhbCIgXSwKCVsgIjE4NjgiLCAiQ29uc3RhbmNlIiwgIlBhcnNvbnMiLCAiRDZFIDlKOCIsICJBcm1lbmlhIiBdLAoJWyAiMTg2OSIsICJUYWxsdWxhaCIsICJXb29kYXJkIiwgIjUxMzgwIiwgIkJhaGFtYXMiIF0sCglbICIxODcwIiwgIkFtb3MiLCAiTW9ycmlzIiwgIjM3ODQ2IiwgIlN3aXR6ZXJsYW5kIiBdLAoJWyAiMTg3MSIsICJDaGFybGVzIiwgIktpbm5leSIsICI0NTk2MSIsICJNYXJzaGFsbCBJc2xhbmRzIiBdLAoJWyAiMTg3MiIsICJDb2xieSIsICJDYW1hY2hvIiwgIjAyOTc4IiwgIk5pZ2VyIiBdLAoJWyAiMTg3MyIsICJPcmEiLCAiSGF5cyIsICJCNkYgOVo5IiwgIk1hcnRpbmlxdWUiIF0sCglbICIxODc0IiwgIkFyaWVsIiwgIkNhbm5vbiIsICIwNDU1OSIsICJCdXJ1bmRpIiBdLAoJWyAiMTg3NSIsICJCZWF0cmljZSIsICJIdWxsIiwgIjY2NTY5IiwgIlNhaW50IFBpZXJyZSBhbmQgTWlxdWVsb24iIF0sCglbICIxODc2IiwgIlN0YWNleSIsICJNb3Jyb3ciLCAiNTM3NjAiLCAiWmltYmFid2UiIF0sCglbICIxODc3IiwgIk5haWRhIiwgIlRob21hcyIsICI0MzQzNCIsICJWaXJnaW4gSXNsYW5kcywgVS5TLiIgXSwKCVsgIjE4NzgiLCAiSG9sbHkiLCAiSG9sY29tYiIsICIzMTk5NyIsICJLYXpha2hzdGFuIiBdLAoJWyAiMTg3OSIsICJMZWUiLCAiRGF2ZW5wb3J0IiwgIjk5MzU1IiwgIkNlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYyIgXSwKCVsgIjE4ODAiLCAiR2FyeSIsICJIaWdnaW5zIiwgIjE4NzAzIiwgIk5vcndheSIgXSwKCVsgIjE4ODEiLCAiS2F5IiwgIldvbGYiLCAiMjU1MDkiLCAiU3dpdHplcmxhbmQiIF0sCglbICIxODgyIiwgIkRlc3RpbnkiLCAiUGF0ZWwiLCAiUTNYIDJGOCIsICJHaGFuYSIgXSwKCVsgIjE4ODMiLCAiQ2xheXRvbiIsICJNaWRkbGV0b24iLCAiWTVDIDFJOCIsICJBbnRpZ3VhIGFuZCBCYXJidWRhIiBdLAoJWyAiMTg4NCIsICJNYXkiLCAiUml2ZXJzIiwgIjI2NzgyIiwgIlV6YmVraXN0YW4iIF0sCglbICIxODg1IiwgIkhhZGFzc2FoIiwgIkNhbGR3ZWxsIiwgIjY0NDkzIiwgIkNoaWxlIiBdLAoJWyAiMTg4NiIsICJQZW5lbG9wZSIsICJHZW50cnkiLCAiVjVOIDdBNiIsICJLeXJneXpzdGFuIiBdLAoJWyAiMTg4NyIsICJKYW1lcyIsICJCb3lsZSIsICI5NTQyMSIsICJJbmRvbmVzaWEiIF0sCglbICIxODg4IiwgIll1bGkiLCAiQ2FyZGVuYXMiLCAiVzRVIDVVMSIsICJTb2xvbW9uIElzbGFuZHMiIF0sCglbICIxODg5IiwgIkdlb3JnZSIsICJTaW1wc29uIiwgIjMwMzg1IiwgIkJyYXppbCIgXSwKCVsgIjE4OTAiLCAiVGhhZGRldXMiLCAiRmVycmVsbCIsICJFNlogMkQ0IiwgIk5vcmZvbGsgSXNsYW5kIiBdLAoJWyAiMTg5MSIsICJQaXBlciIsICJNb3Jyb3ciLCAiUzZJIDFMOCIsICJFc3RvbmlhIiBdLAoJWyAiMTg5MiIsICJYYXZpZXJhIiwgIkhlYXRoIiwgIkw4SSA1RzEiLCAiQWZnaGFuaXN0YW4iIF0sCglbICIxODkzIiwgIk9kZXR0ZSIsICJQYXR0b24iLCAiTDJTIDRJOCIsICJCb3NuaWEgYW5kIEhlcnplZ292aW5hIiBdLAoJWyAiMTg5NCIsICJTdGV3YXJ0IiwgIlBoaWxsaXBzIiwgIkU4RSA1VzYiLCAiRWwgU2FsdmFkb3IiIF0sCglbICIxODk1IiwgIktlbGxpZSIsICJDb29wZXIiLCAiNzc0MDEiLCAiQ2FwZSBWZXJkZSIgXSwKCVsgIjE4OTYiLCAiS2F0aGxlZW4iLCAiU2FsaW5hcyIsICJGM08gNFo5IiwgIlNpZXJyYSBMZW9uZSIgXSwKCVsgIjE4OTciLCAiRmFsbG9uIiwgIkJlbm5ldHQiLCAiWDNQIDdMMSIsICJNYWNlZG9uaWEiIF0sCglbICIxODk4IiwgIkplc3NlIiwgIkd1ZXJyZXJvIiwgIkkyQiAxUTAiLCAiRmlubGFuZCIgXSwKCVsgIjE4OTkiLCAiWmVuYWlkYSIsICJNY2d1aXJlIiwgIk01UiAxWDYiLCAiS2VueWEiIF0sCglbICIxOTAwIiwgIkNhcm9seW4iLCAiUmljaGFyZHMiLCAiMDMwNjAiLCAiUGFyYWd1YXkiIF0sCglbICIxOTAxIiwgIlVsbGEiLCAiQnJ1Y2UiLCAiMjA5NDAiLCAiQ2FtYm9kaWEiIF0sCglbICIxOTAyIiwgIkFkcmlhbiIsICJTaGFmZmVyIiwgIk01TyA5WTIiLCAiVGhhaWxhbmQiIF0sCglbICIxOTAzIiwgIkNhbGx1bSIsICJSdXNzbyIsICJMM1UgNVM4IiwgIkhvbHkgU2VlIChWYXRpY2FuIENpdHkgU3RhdGUpIiBdLAoJWyAiMTkwNCIsICJFY2hvIiwgIk1hdGhld3MiLCAiNDkxNTgiLCAiU3BhaW4iIF0sCglbICIxOTA1IiwgIkRyaXNjb2xsIiwgIkJ1Y2tuZXIiLCAiNzAxMTUiLCAiU29sb21vbiBJc2xhbmRzIiBdLAoJWyAiMTkwNiIsICJOYXlkYSIsICJQaGlsbGlwcyIsICJZN0QgNEE5IiwgIlNpbmdhcG9yZSIgXSwKCVsgIjE5MDciLCAiUGlwZXIiLCAiTGl2aW5nc3RvbiIsICI1MTcwMSIsICJBbmd1aWxsYSIgXSwKCVsgIjE5MDgiLCAiWm9lIiwgIkhvb3ZlciIsICJDOEQgOFcyIiwgIklyYXEiIF0sCglbICIxOTA5IiwgIlZlcm9uaWNhIiwgIk1vbnRveWEiLCAiRzZCIDlTNCIsICJFZ3lwdCIgXSwKCVsgIjE5MTAiLCAiS2F0byIsICJSaWNobW9uZCIsICI0MTI2OCIsICJTYWludCBIZWxlbmEiIF0sCglbICIxOTExIiwgIktldnluIiwgIkxhbmNhc3RlciIsICI3MTg2MyIsICJNb250c2VycmF0IiBdLAoJWyAiMTkxMiIsICJSb3dhbiIsICJDYXJyIiwgIjkwODI1IiwgIkV0aGlvcGlhIiBdLAoJWyAiMTkxMyIsICJBbGVjIiwgIldlbGxzIiwgIkM5UCA4STciLCAiTmV0aGVybGFuZHMiIF0sCglbICIxOTE0IiwgIkdyYWhhbSIsICJTaGllbGRzIiwgIlM0QiA1TzkiLCAiTm9yZm9sayBJc2xhbmQiIF0sCglbICIxOTE1IiwgIlBlYXJsIiwgIkF1c3RpbiIsICI0MzY0MiIsICJCZXJtdWRhIiBdLAoJWyAiMTkxNiIsICJEYW5hIiwgIlB1Z2giLCAiSDRDIDJBOSIsICJUdXZhbHUiIF0sCglbICIxOTE3IiwgIkx1Y3kiLCAiRWxsaXMiLCAiMzEyNzIiLCAiQ2FtZXJvb24iIF0sCglbICIxOTE4IiwgIkxvZ2FuIiwgIldyaWdodCIsICIxODY1MSIsICJIb25kdXJhcyIgXSwKCVsgIjE5MTkiLCAiQ2hhbnRhbGUiLCAiVmVsYXNxdWV6IiwgIkE1RCAzWDIiLCAiQnVydW5kaSIgXSwKCVsgIjE5MjAiLCAiTGluZGEiLCAiSW5ncmFtIiwgIlIxUCAxRzgiLCAiTXlhbm1hciIgXSwKCVsgIjE5MjEiLCAiR2luZ2VyIiwgIkhvd2VsbCIsICJRNUQgNEU2IiwgIlBha2lzdGFuIiBdLAoJWyAiMTkyMiIsICJVbml0eSIsICJMZXN0ZXIiLCAiUDdNIDdBNCIsICJHaWJyYWx0YXIiIF0sCglbICIxOTIzIiwgIkJyZXR0IiwgIlJ1dGxlZGdlIiwgIlExRSAyQjQiLCAiVGhhaWxhbmQiIF0sCglbICIxOTI0IiwgIlN0ZXdhcnQiLCAiTW9ycm93IiwgIjg0Mjk5IiwgIk1hbGkiIF0sCglbICIxOTI1IiwgIkRlY2xhbiIsICJBZ3VpbGFyIiwgIjM1NDAwIiwgIktlbnlhIiBdLAoJWyAiMTkyNiIsICJTaGFkIiwgIlNpbXBzb24iLCAiTjhFIDJVMyIsICJTYWludCBQaWVycmUgYW5kIE1pcXVlbG9uIiBdLAoJWyAiMTkyNyIsICJBbG1hIiwgIkJlbnRvbiIsICJRNkMgNUQyIiwgIlBha2lzdGFuIiBdLAoJWyAiMTkyOCIsICJIZXJtYW4iLCAiQmFpbGV5IiwgIlA1SyAyWDQiLCAiSXJlbGFuZCIgXSwKCVsgIjE5MjkiLCAiS2VlZ2FuIiwgIk1lbmRleiIsICIxOTQyMSIsICJMZXNvdGhvIiBdLAoJWyAiMTkzMCIsICJFcmFzbXVzIiwgIkZvcmVtYW4iLCAiSjlUIDFBMiIsICJQYW5hbWEiIF0sCglbICIxOTMxIiwgIlRhcmlrIiwgIk1leWVycyIsICJaOFYgNUY5IiwgIkNhcGUgVmVyZGUiIF0sCglbICIxOTMyIiwgIkRvbm92YW4iLCAiS25veCIsICJCOE4gMUc3IiwgIkljZWxhbmQiIF0sCglbICIxOTMzIiwgIkNobG9lIiwgIk1jY3JheSIsICI2NzUzNyIsICJVbml0ZWQgQXJhYiBFbWlyYXRlcyIgXSwKCVsgIjE5MzQiLCAiTWFydmluIiwgIkVkd2FyZHMiLCAiMjE4MDkiLCAiVWtyYWluZSIgXSwKCVsgIjE5MzUiLCAiRnJleWEiLCAiV2F0a2lucyIsICI4MDA5OSIsICJDZW50cmFsIEFmcmljYW4gUmVwdWJsaWMiIF0sCglbICIxOTM2IiwgIkplcnJ5IiwgIk1vcmdhbiIsICJDN1UgN0g1IiwgIkd1aW5lYSIgXSwKCVsgIjE5MzciLCAiWWFyZGxleSIsICJNYXJzaCIsICIyMzY1NCIsICJJbmRpYSIgXSwKCVsgIjE5MzgiLCAiQXZhIiwgIk11ZWxsZXIiLCAiODMzNzQiLCAiR3JlZWNlIiBdLAoJWyAiMTkzOSIsICJTaWxhcyIsICJKb3NlcGgiLCAiUDVNIDdGMiIsICJTd2VkZW4iIF0sCglbICIxOTQwIiwgIldpbmlmcmVkIiwgIlNvbGlzIiwgIjEyMzM1IiwgIlZpZXQgTmFtIiBdLAoJWyAiMTk0MSIsICJWaXJnaW5pYSIsICJDYW50dSIsICJLNEMgM1M1IiwgIlllbWVuIiBdLAoJWyAiMTk0MiIsICJTYWRlIiwgIkNvbGUiLCAiNDAyOTUiLCAiU3BhaW4iIF0sCglbICIxOTQzIiwgIkV0aGFuIiwgIkhvZGdlcyIsICJSN1cgOFgyIiwgIkNvbmdvIiBdLAoJWyAiMTk0NCIsICJCYXJiYXJhIiwgIkRheSIsICJLNkwgN1M2IiwgIk5pZ2VyaWEiIF0sCglbICIxOTQ1IiwgIkNvbmFuIiwgIlNpbW9uIiwgIjIyMTI0IiwgIkd1eWFuYSIgXSwKCVsgIjE5NDYiLCAiTGFycyIsICJQdWNrZXR0IiwgIlI2WSA0TjciLCAiVHJpbmlkYWQgYW5kIFRvYmFnbyIgXSwKCVsgIjE5NDciLCAiUXVpbiIsICJFd2luZyIsICI5OTA1MyIsICJBbWVyaWNhbiBTYW1vYSIgXSwKCVsgIjE5NDgiLCAiQWxpIiwgIkhheW5lcyIsICJONlogN1gwIiwgIkNoaW5hIiBdLAoJWyAiMTk0OSIsICJTYXJhIiwgIldhZ25lciIsICI3NDU0NCIsICJDaGFkIiBdLAoJWyAiMTk1MCIsICJHcmlmZml0aCIsICJGdWVudGVzIiwgIlIxVyA2WjkiLCAiU2xvdmVuaWEiIF0sCglbICIxOTUxIiwgIlNoYXJvbiIsICJDcmFuZSIsICJJMlogOUQ2IiwgIlBoaWxpcHBpbmVzIiBdLAoJWyAiMTk1MiIsICJNYXJzZGVuIiwgIkFjb3N0YSIsICJLNkMgOEM1IiwgIkpvcmRhbiIgXSwKCVsgIjE5NTMiLCAiV2hvb3BpIiwgIlZpbGxhcnJlYWwiLCAiRTJPIDFUNSIsICJTdmFsYmFyZCBhbmQgSmFuIE1heWVuIiBdLAoJWyAiMTk1NCIsICJCcnVubyIsICJCYWxsIiwgIjMxOTMxIiwgIkJhcmJhZG9zIiBdLAoJWyAiMTk1NSIsICJVbHJpYyIsICJZb3VuZyIsICJUNFIgM001IiwgIlNvbG9tb24gSXNsYW5kcyIgXSwKCVsgIjE5NTYiLCAiTm9haCIsICJHb256YWxleiIsICJMM08gNlY1IiwgIk1heW90dGUiIF0sCglbICIxOTU3IiwgIkNoZXJ5bCIsICJHaWxsaWFtIiwgIkY0USA0SDkiLCAiQWxiYW5pYSIgXSwKCVsgIjE5NTgiLCAiQm8iLCAiUm93ZSIsICI2NzAyMCIsICJKYW1haWNhIiBdLAoJWyAiMTk1OSIsICJLZWxseSIsICJBbGV4YW5kZXIiLCAiUDhZIDlLNSIsICJTb21hbGlhIiBdLAoJWyAiMTk2MCIsICJIb3AiLCAiTmF2YXJybyIsICJPMUcgOVI2IiwgIkNheW1hbiBJc2xhbmRzIiBdLAoJWyAiMTk2MSIsICJaYWNoZXJ5IiwgIkhvd2FyZCIsICI2NzE0NyIsICJGaWppIiBdLAoJWyAiMTk2MiIsICJFbHZpcyIsICJEYXVnaGVydHkiLCAiWDhWIDdTNyIsICJKb3JkYW4iIF0sCglbICIxOTYzIiwgIk1hbGxvcnkiLCAiSGVuc2xleSIsICJBNVMgMVU2IiwgIlN3YXppbGFuZCIgXSwKCVsgIjE5NjQiLCAiRnVsdG9uIiwgIldpbGxpYW1zIiwgIlA0QyA0TzUiLCAiVmlldCBOYW0iIF0sCglbICIxOTY1IiwgIk1hZGlzb24iLCAiUGl0dG1hbiIsICJGOEcgMVA5IiwgIkNoaWxlIiBdLAoJWyAiMTk2NiIsICJLZXJtaXQiLCAiQnJhZGZvcmQiLCAiVzJUIDZJNSIsICJVZ2FuZGEiIF0sCglbICIxOTY3IiwgIkdhYnJpZWwiLCAiQmFsbGFyZCIsICJONU0gNlcwIiwgIkFuZG9ycmEiIF0sCglbICIxOTY4IiwgIkphc21pbmUiLCAiQmFyYmVyIiwgIk0yWiA3RzUiLCAiRnJlbmNoIEd1aWFuYSIgXSwKCVsgIjE5NjkiLCAiVGhhbmUiLCAiS29jaCIsICIyMTA5NyIsICJBcm1lbmlhIiBdLAoJWyAiMTk3MCIsICJNb250YW5hIiwgIk9uZWFsIiwgIkwyQSA5UTYiLCAiU291dGggQWZyaWNhIiBdLAoJWyAiMTk3MSIsICJCcmV0dCIsICJDb2xlbWFuIiwgIjc5Mzk5IiwgIkx1eGVtYm91cmciIF0sCglbICIxOTcyIiwgIkl2eSIsICJKaW1lbmV6IiwgIjI4NTQ5IiwgIlNlbmVnYWwiIF0sCglbICIxOTczIiwgIlNoYWQiLCAiTWVsdG9uIiwgIlo4TiA0WjUiLCAiQ29vayBJc2xhbmRzIiBdLAoJWyAiMTk3NCIsICJTdWtpIiwgIlZhbmNlIiwgIkgxQSAxWjMiLCAiSXJlbGFuZCIgXSwKCVsgIjE5NzUiLCAiSmluIiwgIkhvZGdlcyIsICJMMkkgM1Q4IiwgIkZyYW5jZSIgXSwKCVsgIjE5NzYiLCAiRGlhbmEiLCAiQm9vdGgiLCAiTTNWIDFTOCIsICJJcmFuLCBJc2xhbWljIFJlcHVibGljIG9mIiBdLAoJWyAiMTk3NyIsICJNYXJ0aGEiLCAiTnVuZXoiLCAiMjc4MzciLCAiTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzIiBdLAoJWyAiMTk3OCIsICJTaWxhcyIsICJBeWVycyIsICIxNzEyMSIsICJVbml0ZWQgU3RhdGVzIiBdLAoJWyAiMTk3OSIsICJBaW5zbGV5IiwgIldoaXRha2VyIiwgIjQyNjk1IiwgIkRvbWluaWNhIiBdLAoJWyAiMTk4MCIsICJEaWxsb24iLCAiVHVja2VyIiwgIk4zUiAzUDMiLCAiQm90c3dhbmEiIF0sCglbICIxOTgxIiwgIkxpbGxpYW4iLCAiV2VzdCIsICI1NzY2NSIsICJQYWxhdSIgXSwKCVsgIjE5ODIiLCAiVGFsb24iLCAiSGFydCIsICJaNlQgNFczIiwgIlNlcmJpYSBhbmQgTW9udGVuZWdybyIgXSwKCVsgIjE5ODMiLCAiRGVzaXJlZSIsICJCb290aCIsICJRMVcgOVMxIiwgIkdhbWJpYSIgXSwKCVsgIjE5ODQiLCAiQ2hhc3RpdHkiLCAiTWVycmlsbCIsICJGM0IgOVc3IiwgIlB1ZXJ0byBSaWNvIiBdLAoJWyAiMTk4NSIsICJOaWNob2xlIiwgIkxlb24iLCAiVDdWIDVENiIsICJCZWxpemUiIF0sCglbICIxOTg2IiwgIlJhZmFlbCIsICJXYXNoaW5ndG9uIiwgIjg3Njc2IiwgIkVyaXRyZWEiIF0sCglbICIxOTg3IiwgIlNhbXNvbiIsICJNYXRoZXdzIiwgIkc3USA1VjYiLCAiQnVya2luYSBGYXNvIiBdLAoJWyAiMTk4OCIsICJKYXNwZXIiLCAiQ2FtcGJlbGwiLCAiMjM3OTEiLCAiVGhhaWxhbmQiIF0sCglbICIxOTg5IiwgIk1hc29uIiwgIkhhcnJpbmd0b24iLCAiUjlSIDVTMyIsICJOaWdlcmlhIiBdLAoJWyAiMTk5MCIsICJKYW1lc29uIiwgIkZyZWRlcmljayIsICJSMU4gNFMwIiwgIkd1eWFuYSIgXSwKCVsgIjE5OTEiLCAiQ2FkbWFuIiwgIldvb2RhcmQiLCAiNDMwODAiLCAiR2FtYmlhIiBdLAoJWyAiMTk5MiIsICJDYXRoZXJpbmUiLCAiR2lsbCIsICJXNFcgOEE0IiwgIlBoaWxpcHBpbmVzIiBdLAoJWyAiMTk5MyIsICJZYWVsIiwgIlJpY2hhcmRzIiwgIjk5NTA0IiwgIktlbnlhIiBdLAoJWyAiMTk5NCIsICJQb3J0ZXIiLCAiRmlubGV5IiwgIkM4WiA1RTAiLCAiQnJ1bmVpIERhcnVzc2FsYW0iIF0sCglbICIxOTk1IiwgIkFsZGVuIiwgIk1lcnJpdHQiLCAiUDRFIDlGMCIsICJNYWxpIiBdLAoJWyAiMTk5NiIsICJLYXllIiwgIkFuZHJld3MiLCAiSTVJIDNBNCIsICJDYXltYW4gSXNsYW5kcyIgXSwKCVsgIjE5OTciLCAiTHVrZSIsICJCcnlhbnQiLCAiRjNaIDJVMSIsICJLdXdhaXQiIF0sCglbICIxOTk4IiwgIkhlYXRoZXIiLCAiQmxhY2tidXJuIiwgIkwxVCA2QjkiLCAiTW9uZ29saWEiIF0sCglbICIxOTk5IiwgIkdhZ2UiLCAiU3lrZXMiLCAiTDlRIDdFNiIsICJQYWxlc3RpbmlhbiBUZXJyaXRvcnksIE9jY3VwaWVkIiBdLAoJWyAiMjAwMCIsICJLYXNlZW0iLCAiSGFycmlzIiwgIkI5TyAxQzMiLCAiS29yZWEiIF0sCglbICIyMDAxIiwgIlF1YWlsIiwgIkxlb25hcmQiLCAiODg3NTUiLCAiQnVya2luYSBGYXNvIiBdLAoJWyAiMjAwMiIsICJEZW5uaXMiLCAiQ3JhZnQiLCAiMTMzMDkiLCAiTmFtaWJpYSIgXSwKCVsgIjIwMDMiLCAiSXZvciIsICJGb3JiZXMiLCAiQzNQIDJFMSIsICJNYWx0YSIgXSwKCVsgIjIwMDQiLCAiQ2FkZSIsICJIZXJtYW4iLCAiUjFFIDVYOSIsICJTcmkgTGFua2EiIF0sCglbICIyMDA1IiwgIkxhcmlzc2EiLCAiU2FudGlhZ28iLCAiNTc3ODEiLCAiRG9taW5pY2EiIF0sCglbICIyMDA2IiwgIkh5YXR0IiwgIlRpbGxtYW4iLCAiNDUwNzEiLCAiR2hhbmEiIF0sCglbICIyMDA3IiwgIlRpbW90aHkiLCAiUm9kZ2VycyIsICJGOFcgOVcwIiwgIkFuZG9ycmEiIF0sCglbICIyMDA4IiwgIkhhbmFlIiwgIlBvd2VsbCIsICJGOEIgN1A3IiwgIkx1eGVtYm91cmciIF0sCglbICIyMDA5IiwgIkltYSIsICJQZW5uaW5ndG9uIiwgIlo1VyA1TjUiLCAiTGF0dmlhIiBdLAoJWyAiMjAxMCIsICJMYXVyZWwiLCAiQmVsbCIsICIxNjgwNSIsICJWZW5lenVlbGEiIF0sCglbICIyMDExIiwgIkF2eWUiLCAiTG9uZyIsICIwNDc5NCIsICJEb21pbmljYSIgXSwKCVsgIjIwMTIiLCAiTHlzYW5kcmEiLCAiUGllcmNlIiwgIkg3TyAzRjQiLCAiWmltYmFid2UiIF0sCglbICIyMDEzIiwgIkV2ZSIsICJQb2xsYXJkIiwgIkw1SyA2RTIiLCAiQWxnZXJpYSIgXSwKCVsgIjIwMTQiLCAiSW5hIiwgIk1jZG93ZWxsIiwgIjY1NzEyIiwgIlNhaW50IEx1Y2lhIiBdLAoJWyAiMjAxNSIsICJNZXJlZGl0aCIsICJTZXJyYW5vIiwgIlY4TSA2SzciLCAiTGlieWFuIEFyYWIgSmFtYWhpcml5YSIgXSwKCVsgIjIwMTYiLCAiRGFwaG5lIiwgIklyd2luIiwgIjg5OTMzIiwgIk1vbmdvbGlhIiBdLAoJWyAiMjAxNyIsICJBZGFtIiwgIkhlbnNvbiIsICJGNlUgOUQ1IiwgIkNoaWxlIiBdLAoJWyAiMjAxOCIsICJBbWVyeSIsICJIb292ZXIiLCAiMTM0MDgiLCAiTW9uZ29saWEiIF0sCglbICIyMDE5IiwgIlF1YW1hciIsICJIZW5kcmlja3MiLCAiMjAzMTAiLCAiR2FtYmlhIiBdLAoJWyAiMjAyMCIsICJPcmkiLCAiV2hlZWxlciIsICI4OTAwNSIsICJOaWdlcmlhIiBdLAoJWyAiMjAyMSIsICJaZW5hIiwgIkRvdWdsYXMiLCAiWjFPIDZGOSIsICJTZXJiaWEgYW5kIE1vbnRlbmVncm8iIF0sCglbICIyMDIyIiwgIkJ1Y2ttaW5zdGVyIiwgIkh1ZmZtYW4iLCAiUjRWIDlMMiIsICJNYWxpIiBdLAoJWyAiMjAyMyIsICJIYXJsYW4iLCAiR2FtYmxlIiwgIlU0SSA3TTQiLCAiR3V5YW5hIiBdLAoJWyAiMjAyNCIsICJEYWx0b24iLCAiQ2xpbmUiLCAiNjM4MjkiLCAiVG9uZ2EiIF0sCglbICIyMDI1IiwgIk1hcnRoYSIsICJXZWJlciIsICJaOUIgNFQwIiwgIkJhbmdsYWRlc2giIF0sCglbICIyMDI2IiwgIlZlcm5vbiIsICJGcmFuY2lzIiwgIk01QSA5WDciLCAiVG9rZWxhdSIgXSwKCVsgIjIwMjciLCAiSmFubmEiLCAiVmVsYXpxdWV6IiwgIjY3NDA2IiwgIlFhdGFyIiBdLAoJWyAiMjAyOCIsICJGdWxsZXIiLCAiS2VsbGVyIiwgIjgwODcxIiwgIkJ1cmtpbmEgRmFzbyIgXSwKCVsgIjIwMjkiLCAiSmFtYWwiLCAiU3BlYXJzIiwgIjQyMTk3IiwgIk5vcmZvbGsgSXNsYW5kIiBdLAoJWyAiMjAzMCIsICJDaHJpc3RlbiIsICJIb2xjb21iIiwgIjI5ODA2IiwgIk5vcndheSIgXSwKCVsgIjIwMzEiLCAiTWFyeSIsICJDYXJ0ZXIiLCAiQzZXIDlLOSIsICJCZWxnaXVtIiBdLAoJWyAiMjAzMiIsICJDb2xvcmFkbyIsICJBdXN0aW4iLCAiNjI5MDQiLCAiQ29vayBJc2xhbmRzIiBdLAoJWyAiMjAzMyIsICJGcml0eiIsICJIdW50IiwgIlg4RyAyVjAiLCAiTW9yb2NjbyIgXSwKCVsgIjIwMzQiLCAiSXNhYmVsbGEiLCAiQnVzaCIsICIxNzY3NiIsICJNb25hY28iIF0sCglbICIyMDM1IiwgIkFkYW0iLCAiR2lsbGlhbSIsICJIN0sgOVgzIiwgIkluZG9uZXNpYSIgXSwKCVsgIjIwMzYiLCAiSm9obiIsICJBdXN0aW4iLCAiTzdYIDRaMCIsICJDemVjaCBSZXB1YmxpYyIgXSwKCVsgIjIwMzciLCAiQ2Fzc2FkeSIsICJZYXRlcyIsICI2ODgzNSIsICJDaHJpc3RtYXMgSXNsYW5kIiBdLAoJWyAiMjAzOCIsICJPcmkiLCAiQ2FudHJlbGwiLCAiNTY5MjAiLCAiR3VpbmVhIiBdLAoJWyAiMjAzOSIsICJNYXkiLCAiSG9ybiIsICI0NzgwNSIsICJLdXdhaXQiIF0sCglbICIyMDQwIiwgIlNreWxlciIsICJDbGFya2UiLCAiNjQxMzEiLCAiTGViYW5vbiIgXSwKCVsgIjIwNDEiLCAiTGV2aSIsICJGb3N0ZXIiLCAiUzVRIDRCMiIsICJHZXJtYW55IiBdLAoJWyAiMjA0MiIsICJWZWRhIiwgIldpbGtpbnNvbiIsICJMN1ogOU04IiwgIk5pZ2VyIiBdLAoJWyAiMjA0MyIsICJCcmVuZGFuIiwgIkxldmluZSIsICJMNUIgOVA0IiwgIk5lcGFsIiBdLAoJWyAiMjA0NCIsICJDYXJzb24iLCAiU3VsbGl2YW4iLCAiOTMwNjYiLCAiVW5pdGVkIEFyYWIgRW1pcmF0ZXMiIF0sCglbICIyMDQ1IiwgIlN0ZXZlbiIsICJTcGVuY2VyIiwgIkYxViA5QTciLCAiUGl0Y2Fpcm4iIF0sCglbICIyMDQ2IiwgIkhhbGxhIiwgIk1pY2hhZWwiLCAiTjFVIDFFNyIsICJTZXljaGVsbGVzIiBdLAoJWyAiMjA0NyIsICJKYW1hbCIsICJIb2JicyIsICJHM0QgNko3IiwgIk5ldyBDYWxlZG9uaWEiIF0sCglbICIyMDQ4IiwgIlN0ZWVsIiwgIkJ1c2giLCAiVThGIDZUMiIsICJCZWxpemUiIF0sCglbICIyMDQ5IiwgIkFobWVkIiwgIkRlbm5pcyIsICJNNkUgM1AzIiwgIkFmZ2hhbmlzdGFuIiBdLAoJWyAiMjA1MCIsICJBc3BlbiIsICJFc3RlcyIsICIzMjE1NyIsICJBbWVyaWNhbiBTYW1vYSIgXSwKCVsgIjIwNTEiLCAiUGV0ZXIiLCAiS2VsbHkiLCAiOTE3NzMiLCAiTW9yb2NjbyIgXSwKCVsgIjIwNTIiLCAiWGFuZHJhIiwgIkdyaW1lcyIsICI2NjcwMiIsICJUb2tlbGF1IiBdLAoJWyAiMjA1MyIsICJNaWNoYWVsIiwgIkJhdHRsZSIsICJKMkogMk41IiwgIkhvbmR1cmFzIiBdLAoJWyAiMjA1NCIsICJTdGVlbCIsICJXaWdnaW5zIiwgIjM0NjI1IiwgIlVuaXRlZCBTdGF0ZXMgTWlub3IgT3V0bHlpbmcgSXNsYW5kcyIgXSwKCVsgIjIwNTUiLCAiSG9sbWVzIiwgIkNocmlzdGlhbiIsICI0NTQwMiIsICJMaWVjaHRlbnN0ZWluIiBdLAoJWyAiMjA1NiIsICJDaGFybGVzIiwgIkJhcnJldHQiLCAiTzROIDlOOCIsICJMZWJhbm9uIiBdLAoJWyAiMjA1NyIsICJIZXJtaW9uZSIsICJTb3RvIiwgIkM4RSA0SDgiLCAiQ29uZ28iIF0sCglbICIyMDU4IiwgIkVsdG9uIiwgIk1heHdlbGwiLCAiODkwMzMiLCAiTWFkYWdhc2NhciIgXSwKCVsgIjIwNTkiLCAiWmVsZGEiLCAiQnVya3MiLCAiQjdXIDVHNyIsICJTd2VkZW4iIF0sCglbICIyMDYwIiwgIkx5bm4iLCAiRGF2aWQiLCAiUDNEIDVLNSIsICJDaGFkIiBdLAoJWyAiMjA2MSIsICJNYXJnYXJldCIsICJOZWFsIiwgIjQ3NDM4IiwgIldlc3Rlcm4gU2FoYXJhIiBdLAoJWyAiMjA2MiIsICJEYXZpZCIsICJWYXVnaGFuIiwgIkUzTCA4RDkiLCAiVG9rZWxhdSIgXSwKCVsgIjIwNjMiLCAiVmxhZGltaXIiLCAiTWNmYXJsYW5kIiwgIlU5ViAxQjMiLCAiQmVsZ2l1bSIgXSwKCVsgIjIwNjQiLCAiVXJpYWgiLCAiSGFycmluZ3RvbiIsICI3NzA1MSIsICJVbml0ZWQgQXJhYiBFbWlyYXRlcyIgXSwKCVsgIjIwNjUiLCAiTm9lbCIsICJNZXJyaXR0IiwgIkozRyA3UzEiLCAiRG9taW5pY2FuIFJlcHVibGljIiBdLAoJWyAiMjA2NiIsICJDaHJpc3RpbmUiLCAiS2V5IiwgIjU0NTQzIiwgIk5pZ2VyIiBdLAoJWyAiMjA2NyIsICJJbGxhbmEiLCAiSGVuZHJpY2tzIiwgIjA3NTg0IiwgIk1vbnRzZXJyYXQiIF0sCglbICIyMDY4IiwgIlBlYXJsIiwgIkxld2lzIiwgIlU1RCAyVjMiLCAiTGlieWFuIEFyYWIgSmFtYWhpcml5YSIgXSwKCVsgIjIwNjkiLCAiVmljdG9yaWEiLCAiQnVsbG9jayIsICIxNzQ2MiIsICJNYXVyaXRhbmlhIiBdLAoJWyAiMjA3MCIsICJCZW5lZGljdCIsICJNYXJzaCIsICI2MTQ3OSIsICJHdXlhbmEiIF0sCglbICIyMDcxIiwgIlF1ZW1ieSIsICJXYXNoaW5ndG9uIiwgIjk5Nzc0IiwgIkZyZW5jaCBQb2x5bmVzaWEiIF0sCglbICIyMDcyIiwgIlNoZWxsZXkiLCAiTm9ibGUiLCAiVThTIDVaNCIsICJQaGlsaXBwaW5lcyIgXSwKCVsgIjIwNzMiLCAiT2xpdmlhIiwgIkJyaXR0IiwgIjcyMzQ0IiwgIkhvbHkgU2VlIChWYXRpY2FuIENpdHkgU3RhdGUpIiBdLAoJWyAiMjA3NCIsICJPbGVnIiwgIkhlbmRyaXgiLCAiNjc1NjciLCAiQ3ViYSIgXSwKCVsgIjIwNzUiLCAiSGVybWlvbmUiLCAiR3V0aWVycmV6IiwgIko1SyAySjEiLCAiTW96YW1iaXF1ZSIgXSwKCVsgIjIwNzYiLCAiTXlyYSIsICJEZWFuIiwgIjAzNDg1IiwgIkFuZG9ycmEiIF0sCglbICIyMDc3IiwgIkRlYWNvbiIsICJNb29yZSIsICIzNDUwMSIsICJUdW5pc2lhIiBdLAoJWyAiMjA3OCIsICJEYWkiLCAiQmFpcmQiLCAiQjJQIDRSMCIsICJDYW1ib2RpYSIgXSwKCVsgIjIwNzkiLCAiTGV2aSIsICJNZWx0b24iLCAiSzdUIDRCMSIsICJaaW1iYWJ3ZSIgXSwKCVsgIjIwODAiLCAiT2NlYW4iLCAiRGFsdG9uIiwgIjY2ODAxIiwgIkdhYm9uIiBdLAoJWyAiMjA4MSIsICJTZWxtYSIsICJIYXJkaW5nIiwgIkQ3TiAzSjkiLCAiS3lyZ3l6c3RhbiIgXSwKCVsgIjIwODIiLCAiTWFpc2llIiwgIkdpbGwiLCAiNTYzMjQiLCAiTW9yb2NjbyIgXSwKCVsgIjIwODMiLCAiSGlsbGFyeSIsICJIb3JuZSIsICJZNk8gNkczIiwgIkN5cHJ1cyIgXSwKCVsgIjIwODQiLCAiSm9lbCIsICJTdG9rZXMiLCAiNzc5NTIiLCAiQnVydW5kaSIgXSwKCVsgIjIwODUiLCAiQ2hhbm5pbmciLCAiUGF0dGVyc29uIiwgIkc2QiA4SDQiLCAiQ2hpbmEiIF0sCglbICIyMDg2IiwgIkVsbGlvdHQiLCAiQ2xldmVsYW5kIiwgIkgzSiA5VTkiLCAiTmFtaWJpYSIgXSwKCVsgIjIwODciLCAiUGV0cmEiLCAiR2F5IiwgIjQ0MzE0IiwgIlBhbGVzdGluaWFuIFRlcnJpdG9yeSwgT2NjdXBpZWQiIF0sCglbICIyMDg4IiwgIk1heSIsICJIYXRmaWVsZCIsICI0ODkxOCIsICJGYXJvZSBJc2xhbmRzIiBdLAoJWyAiMjA4OSIsICJKZW1pbWEiLCAiRnJhbmNpcyIsICIxNDM0NyIsICJMaWJ5YW4gQXJhYiBKYW1haGlyaXlhIiBdLAoJWyAiMjA5MCIsICJLeWxhIiwgIkhhbGUiLCAiNDYyMDAiLCAiQ29jb3MgKEtlZWxpbmcpIElzbGFuZHMiIF0sCglbICIyMDkxIiwgIlZlZGEiLCAiQnJ1Y2UiLCAiRjVXIDlBNiIsICJNYXVyaXRhbmlhIiBdLAoJWyAiMjA5MiIsICJTeWJpbGwiLCAiQXZpbGEiLCAiNTg2NjMiLCAiQW5nb2xhIiBdLAoJWyAiMjA5MyIsICJDaGFyaXNzYSIsICJTYWxhemFyIiwgIjM1MjcxIiwgIkZhcm9lIElzbGFuZHMiIF0sCglbICIyMDk0IiwgIlN0ZXZlbiIsICJBbGxpc29uIiwgIkU1TCA0QTMiLCAiV2FsbGlzIGFuZCBGdXR1bmEiIF0sCglbICIyMDk1IiwgIkthbmUiLCAiUGFya3MiLCAiRDVDIDZLNyIsICJOb3Jmb2xrIElzbGFuZCIgXSwKCVsgIjIwOTYiLCAiQWxpa2EiLCAiQmlzaG9wIiwgIlMzUCAzTzMiLCAiQ2hpbmEiIF0sCglbICIyMDk3IiwgIkphbWVzIiwgIkJvbm5lciIsICIzMzI3NyIsICJDYW5hZGEiIF0sCglbICIyMDk4IiwgIllva28iLCAiRm9zdGVyIiwgIkI1SiA2UDkiLCAiQ3JvYXRpYSIgXSwKCVsgIjIwOTkiLCAiSXZ5IiwgIlJpZ2dzIiwgIjk0NDIwIiwgIktpcmliYXRpIiBdLAoJWyAiMjEwMCIsICJVcmllbGxlIiwgIlJvc2EiLCAiVjZXIDJBMCIsICJGYWxrbGFuZCBJc2xhbmRzIChNYWx2aW5hcykiIF0sCglbICIyMTAxIiwgIkFybWFuZG8iLCAiU2hlcGhlcmQiLCAiWTVDIDVXNiIsICJQYW5hbWEiIF0sCglbICIyMTAyIiwgIkhhbGV5IiwgIkluZ3JhbSIsICJCNEggNVU1IiwgIkZpamkiIF0sCglbICIyMTAzIiwgIkJyaWVsbGUiLCAiRHllciIsICJQMlMgNEg3IiwgIk1hbGF3aSIgXSwKCVsgIjIxMDQiLCAiRnJhbmNpcyIsICJCcmFkeSIsICIyNDIzOSIsICJVcnVndWF5IiBdLAoJWyAiMjEwNSIsICJGaW9uYSIsICJXZWJzdGVyIiwgIjcyMDE1IiwgIkJlbGl6ZSIgXSwKCVsgIjIxMDYiLCAiQWlrbyIsICJTYW50b3MiLCAiSzRIIDFOMCIsICJTYWludCBWaW5jZW50IGFuZCBUaGUgR3JlbmFkaW5lcyIgXSwKCVsgIjIxMDciLCAiQW1pciIsICJSaXZhcyIsICIwMjczNyIsICJQYXB1YSBOZXcgR3VpbmVhIiBdLAoJWyAiMjEwOCIsICJNaXJhIiwgIktlcnIiLCAiVzZFIDZZMiIsICJTcmkgTGFua2EiIF0sCglbICIyMTA5IiwgIkhhcnJpc29uIiwgIkplbnNlbiIsICI1MDE5MyIsICJIZWFyZCBJc2xhbmQgYW5kIE1jZG9uYWxkIElzbGFuZHMiIF0sCglbICIyMTEwIiwgIk1lcnJpbGwiLCAiUmFuZGFsbCIsICIyMTUzNCIsICJDb2xvbWJpYSIgXSwKCVsgIjIxMTEiLCAiQmVuamFtaW4iLCAiSG93ZSIsICJOOE0gNE42IiwgIlR1cmttZW5pc3RhbiIgXSwKCVsgIjIxMTIiLCAiTWVseXNzYSIsICJLaWRkIiwgIjk3NjU3IiwgIkNhbWVyb29uIiBdLAoJWyAiMjExMyIsICJIZW5yeSIsICJNb29yZSIsICI5NTYyNiIsICJCb3Rzd2FuYSIgXSwKCVsgIjIxMTQiLCAiTmFzaCIsICJQZXRlcnMiLCAiSzNWIDlGMyIsICJXYWxsaXMgYW5kIEZ1dHVuYSIgXSwKCVsgIjIxMTUiLCAiSWxpYW5hIiwgIkhvbHQiLCAiRTlGIDJROCIsICJOZXRoZXJsYW5kcyBBbnRpbGxlcyIgXSwKCVsgIjIxMTYiLCAiTmFvbWkiLCAiSG9vZCIsICJQNkQgMkczIiwgIkFuZ3VpbGxhIiBdLAoJWyAiMjExNyIsICJBaW5zbGV5IiwgIkJhcnJvbiIsICI5NDI3MyIsICJOZXcgQ2FsZWRvbmlhIiBdLAoJWyAiMjExOCIsICJEYXBobmUiLCAiQWNldmVkbyIsICJBOUkgOUU0IiwgIkJlcm11ZGEiIF0sCglbICIyMTE5IiwgIktpb25hIiwgIktlaXRoIiwgIjYyNTIzIiwgIlNhaW50IEx1Y2lhIiBdLAoJWyAiMjEyMCIsICJLaXJzdGVuIiwgIk1jZ2VlIiwgIjk3NDgxIiwgIk1hY2Vkb25pYSIgXSwKCVsgIjIxMjEiLCAiRW1lcmFsZCIsICJGcmFua2xpbiIsICJRMkkgNkQ2IiwgIkJvdHN3YW5hIiBdLAoJWyAiMjEyMiIsICJIYWxsIiwgIlNjaHJvZWRlciIsICJJMkQgOUw3IiwgIktlbnlhIiBdLAoJWyAiMjEyMyIsICJBbWF5YSIsICJMeW5jaCIsICI1MDUzNCIsICJDb3N0YSBSaWNhIiBdLAoJWyAiMjEyNCIsICJSYW5kYWxsIiwgIkhhbnNvbiIsICJCNFIgMlMzIiwgIlVuaXRlZCBBcmFiIEVtaXJhdGVzIiBdLAoJWyAiMjEyNSIsICJTYXNoYSIsICJDbGFya2UiLCAiNTA5NzIiLCAiVW5pdGVkIFN0YXRlcyBNaW5vciBPdXRseWluZyBJc2xhbmRzIiBdLAoJWyAiMjEyNiIsICJTdXNhbiIsICJTdXR0b24iLCAiWjRUIDZLMyIsICJTb2xvbW9uIElzbGFuZHMiIF0sCglbICIyMTI3IiwgIkhpcmFtIiwgIlRvcnJlcyIsICJDOE8gNU83IiwgIkJvdHN3YW5hIiBdLAoJWyAiMjEyOCIsICJNZWxhbmllIiwgIkNhbGhvdW4iLCAiODcwOTciLCAiTmV3IFplYWxhbmQiIF0sCglbICIyMTI5IiwgIkNvdXJ0bmV5IiwgIlN1dHRvbiIsICIwNzk0NCIsICJTcGFpbiIgXSwKCVsgIjIxMzAiLCAiUmV1YmVuIiwgIkJlYXJkIiwgIlU2WiA4TjUiLCAiRmFyb2UgSXNsYW5kcyIgXSwKCVsgIjIxMzEiLCAiSmFycm9kIiwgIlBheW5lIiwgIjk0MTcxIiwgIlR1cmtleSIgXSwKCVsgIjIxMzIiLCAiVmluY2VudCIsICJQb3R0cyIsICJWNVogOUc5IiwgIk1hZGFnYXNjYXIiIF0sCglbICIyMTMzIiwgIktheWUiLCAiS2VudCIsICJPMUIgMlo5IiwgIkZpamkiIF0sCglbICIyMTM0IiwgIkNhcm9sIiwgIkdyZWVuIiwgIjc4NzE5IiwgIkNvbW9yb3MiIF0sCglbICIyMTM1IiwgIkNhaXJvIiwgIkNvbWJzIiwgIkczQyA4RjAiLCAiSW5kb25lc2lhIiBdLAoJWyAiMjEzNiIsICJFYm9ueSIsICJQYXJrZXIiLCAiNzczNzciLCAiUG9ydHVnYWwiIF0sCglbICIyMTM3IiwgIkdhcnkiLCAiU2hhZmZlciIsICJGMUIgOVc3IiwgIkZyZW5jaCBHdWlhbmEiIF0sCglbICIyMTM4IiwgIkdheSIsICJKaW1lbmV6IiwgIjA1NzI2IiwgIk5lcGFsIiBdLAoJWyAiMjEzOSIsICJQYXRpZW5jZSIsICJCcnlhbiIsICI2MDQzNyIsICJNYWNhbyIgXSwKCVsgIjIxNDAiLCAiWmVuYWlkYSIsICJCb3dlbiIsICJWM1MgMUc3IiwgIk1hdXJpdGFuaWEiIF0sCglbICIyMTQxIiwgIklzYWFjIiwgIkFndWlycmUiLCAiWDhTIDlLNCIsICJCZXJtdWRhIiBdLAoJWyAiMjE0MiIsICJMYWN5IiwgIkhhcnJlbGwiLCAiNjczNjIiLCAiQmh1dGFuIiBdLAoJWyAiMjE0MyIsICJKYWVsIiwgIkdyaW1lcyIsICI5NTYxMiIsICJBbmd1aWxsYSIgXSwKCVsgIjIxNDQiLCAiQ2F0aGVyaW5lIiwgIkdhbGxvd2F5IiwgIjQ1ODM0IiwgIlN1cmluYW1lIiBdLAoJWyAiMjE0NSIsICJEb25uYSIsICJCdXJ0IiwgIk44QyAyTTgiLCAiQnVya2luYSBGYXNvIiBdLAoJWyAiMjE0NiIsICJDb2xsZWVuIiwgIkJhbGwiLCAiTjNFIDRVOCIsICJMaWJ5YW4gQXJhYiBKYW1haGlyaXlhIiBdLAoJWyAiMjE0NyIsICJMYWVsIiwgIkJyYWR5IiwgIjAxMzY5IiwgIk1hY2Vkb25pYSIgXSwKCVsgIjIxNDgiLCAiS2VybWl0IiwgIkxvZ2FuIiwgIlk1UCA4UTgiLCAiSG9uZHVyYXMiIF0sCglbICIyMTQ5IiwgIkthdGVseW4iLCAiT3JyIiwgIlI3WCA5VzMiLCAiU3dpdHplcmxhbmQiIF0sCglbICIyMTUwIiwgIkFsaXNhIiwgIkdsZW5uIiwgIjE3ODMxIiwgIlRpbW9yLWxlc3RlIiBdLAoJWyAiMjE1MSIsICJMZWUiLCAiQmVhbiIsICI4OTQ0NSIsICJHdWFtIiBdLAoJWyAiMjE1MiIsICJNYXJ5YW0iLCAiQ290dG9uIiwgIjU3OTI0IiwgIkdhbWJpYSIgXSwKCVsgIjIxNTMiLCAiQW1lbmEiLCAiTG92ZSIsICJYMVogNkY3IiwgIlRoYWlsYW5kIiBdLAoJWyAiMjE1NCIsICJUYWxsdWxhaCIsICJDYXNlIiwgIjg3NDc3IiwgIkVjdWFkb3IiIF0sCglbICIyMTU1IiwgIkNhcmxvcyIsICJTYW5mb3JkIiwgIkY2UyA4SjYiLCAiSXJhcSIgXSwKCVsgIjIxNTYiLCAiUXVhbWFyIiwgIkRhdmlkIiwgIkQ1RiAyTTgiLCAiR2Fib24iIF0sCglbICIyMTU3IiwgIkNhc3NhZHkiLCAiTWF5cyIsICIxMjc4NiIsICJOZXRoZXJsYW5kcyIgXSwKCVsgIjIxNTgiLCAiSmVubmEiLCAiUm93bGFuZCIsICI4ODg0NSIsICJDaGluYSIgXSwKCVsgIjIxNTkiLCAiSnVzdGluIiwgIlRhbm5lciIsICI2NjA3MSIsICJOZXBhbCIgXSwKCVsgIjIxNjAiLCAiUmlsZXkiLCAiU2FudGlhZ28iLCAiRjhLIDJZNiIsICJHYWJvbiIgXSwKCVsgIjIxNjEiLCAiSXJpcyIsICJHYWxsZWdvcyIsICJLOUMgM1Q5IiwgIk5pdWUiIF0sCglbICIyMTYyIiwgIkthdG8iLCAiT3Nib3JuIiwgIk40QyAyTDgiLCAiUHVlcnRvIFJpY28iIF0sCglbICIyMTYzIiwgIkltb2dlbmUiLCAiU2Nocm9lZGVyIiwgIjc5NzEwIiwgIlVuaXRlZCBTdGF0ZXMgTWlub3IgT3V0bHlpbmcgSXNsYW5kcyIgXSwKCVsgIjIxNjQiLCAiT2x5bXBpYSIsICJIZWJlcnQiLCAiRDRXIDFMMCIsICJTYWludCBMdWNpYSIgXSwKCVsgIjIxNjUiLCAiU2t5bGVyIiwgIkJ1cm5ldHQiLCAiQjJSIDVINyIsICJBbnRhcmN0aWNhIiBdLAoJWyAiMjE2NiIsICJGYWl0aCIsICJTaW1zIiwgIjg4NDc2IiwgIkVneXB0IiBdLAoJWyAiMjE2NyIsICJFbWlseSIsICJPZG9tIiwgIlU3TyAyUDYiLCAiS3V3YWl0IiBdLAoJWyAiMjE2OCIsICJDYXJseSIsICJXYXNoaW5ndG9uIiwgIjQ2MDYzIiwgIkJlbmluIiBdLAoJWyAiMjE2OSIsICJKb2xlbmUiLCAiTWV5ZXIiLCAiQjJCIDlBNCIsICJBdXN0cmFsaWEiIF0sCglbICIyMTcwIiwgIkF5YW5uYSIsICJDb25yYWQiLCAiODQzNjAiLCAiTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzIiBdLAoJWyAiMjE3MSIsICJWaW9sZXQiLCAiQmxhbmtlbnNoaXAiLCAiVzJCIDNVMSIsICJOZXcgQ2FsZWRvbmlhIiBdLAoJWyAiMjE3MiIsICJSaG9uYSIsICJHYWxsZWdvcyIsICIxMDkzMSIsICJNb250c2VycmF0IiBdLAoJWyAiMjE3MyIsICJBbGljZSIsICJIb2RnZXMiLCAiOTYxODEiLCAiQnVya2luYSBGYXNvIiBdLAoJWyAiMjE3NCIsICJCcm9keSIsICJTYW5kb3ZhbCIsICI2ODk1OSIsICJQaXRjYWlybiIgXSwKCVsgIjIxNzUiLCAiSXNhYmVsbGEiLCAiRHVubGFwIiwgIlU4VSA3WTgiLCAiQWZnaGFuaXN0YW4iIF0sCglbICIyMTc2IiwgIkpvcmRhbiIsICJHb2xkZW4iLCAiNTUxNTIiLCAiR3VhbSIgXSwKCVsgIjIxNzciLCAiR2lsbGlhbiIsICJUaG9tYXMiLCAiNzU2MzMiLCAiRGppYm91dGkiIF0sCglbICIyMTc4IiwgIkhvbGxlZSIsICJDbGF5IiwgIjc5ODQ3IiwgIlBhbmFtYSIgXSwKCVsgIjIxNzkiLCAiRGFuZSIsICJLbmFwcCIsICI4OTUzNSIsICJBcm1lbmlhIiBdLAoJWyAiMjE4MCIsICJBdnJhbSIsICJNYXJ0aW4iLCAiVDRTIDRFMiIsICJNYWRhZ2FzY2FyIiBdLAoJWyAiMjE4MSIsICJGdWxsZXIiLCAiTmV3bWFuIiwgIjQ3MzE3IiwgIkphbWFpY2EiIF0sCglbICIyMTgyIiwgIk5pbmEiLCAiQmVycnkiLCAiODEzNjAiLCAiTW9uZ29saWEiIF0sCglbICIyMTgzIiwgIkFrZWVtIiwgIlByYXR0IiwgIjU2MjMwIiwgIkNvbG9tYmlhIiBdLAoJWyAiMjE4NCIsICJMYWN5IiwgIkhheWVzIiwgIlU3VCA0RjUiLCAiQ3lwcnVzIiBdLAoJWyAiMjE4NSIsICJBbGZvbnNvIiwgIk1jY2x1cmUiLCAiMDY3OTciLCAiU3dhemlsYW5kIiBdLAoJWyAiMjE4NiIsICJDZWRyaWMiLCAiTG92ZSIsICI2NDcyMCIsICJCZXJtdWRhIiBdLAoJWyAiMjE4NyIsICJBc3RyYSIsICJGZXJuYW5kZXoiLCAiSDNJIDFCMCIsICJNb25nb2xpYSIgXSwKCVsgIjIxODgiLCAiSWxpYW5hIiwgIkR1cmhhbSIsICJSOEMgN004IiwgIlNwYWluIiBdLAoJWyAiMjE4OSIsICJHd2VuZG9seW4iLCAiTGl2aW5nc3RvbiIsICJDN1ggNUwxIiwgIk5vcnRoZXJuIE1hcmlhbmEgSXNsYW5kcyIgXSwKCVsgIjIxOTAiLCAiQ2FsZHdlbGwiLCAiQW5kZXJzb24iLCAiNjkwOTkiLCAiS3V3YWl0IiBdLAoJWyAiMjE5MSIsICJSaXNhIiwgIk1lamlhIiwgIlA3QSA0VTciLCAiSXNyYWVsIiBdLAoJWyAiMjE5MiIsICJEb3JhIiwgIk5hdmFycm8iLCAiTDZHIDJPOCIsICJJcmVsYW5kIiBdLAoJWyAiMjE5MyIsICJLaXJrIiwgIkRlYW4iLCAiSTJUIDNFNiIsICJQaXRjYWlybiIgXSwKCVsgIjIxOTQiLCAiSmFja3NvbiIsICJIYXJ2ZXkiLCAiNTM0NjciLCAiTXlhbm1hciIgXSwKCVsgIjIxOTUiLCAiVGhhbmUiLCAiQmFsbGFyZCIsICI4NzI0MCIsICJTb2xvbW9uIElzbGFuZHMiIF0sCglbICIyMTk2IiwgIk5hZGluZSIsICJFc3RlcyIsICI2MjAwMyIsICJNYWx0YSIgXSwKCVsgIjIxOTciLCAiQ2FuZGFjZSIsICJOdW5leiIsICI1NzIyMyIsICJWaXJnaW4gSXNsYW5kcywgQnJpdGlzaCIgXSwKCVsgIjIxOTgiLCAiWmVsZGEiLCAiT2RvbSIsICJYNFYgN0Y1IiwgIk1vbmdvbGlhIiBdLAoJWyAiMjE5OSIsICJXeWxpZSIsICJBeWFsYSIsICJTNEkgNFE0IiwgIkRqaWJvdXRpIiBdLAoJWyAiMjIwMCIsICJBemFsaWEiLCAiUGFnZSIsICI1NzIzOSIsICJLb3JlYSwgUmVwdWJsaWMgb2YiIF0sCglbICIyMjAxIiwgIkpvc2h1YSIsICJCdXJjaCIsICJSN0IgMU43IiwgIlNhbW9hIiBdLAoJWyAiMjIwMiIsICJCYXNpbCIsICJSYW1vcyIsICI3MTYxNCIsICJUdW5pc2lhIiBdLAoJWyAiMjIwMyIsICJKZXNzaWNhIiwgIlNoaWVsZHMiLCAiVTJEIDRYMyIsICJTeXJpYW4gQXJhYiBSZXB1YmxpYyIgXSwKCVsgIjIyMDQiLCAiQ2xpbyIsICJTaW5nbGV0b24iLCAiSTFCIDFCMCIsICJHaGFuYSIgXSwKCVsgIjIyMDUiLCAiQXN0cmEiLCAiRG90c29uIiwgIjYyMzc4IiwgIlR1cmtzIGFuZCBDYWljb3MgSXNsYW5kcyIgXSwKCVsgIjIyMDYiLCAiSGFtaXNoIiwgIlR1Y2tlciIsICJFNFogM04zIiwgIkFuZ3VpbGxhIiBdLAoJWyAiMjIwNyIsICJSYWNoZWwiLCAiTWF0dGhld3MiLCAiVTRJIDhNMyIsICJUcmluaWRhZCBhbmQgVG9iYWdvIiBdLAoJWyAiMjIwOCIsICJDbGF5dG9uIiwgIkJhbGwiLCAiOTUzMTkiLCAiSW5kaWEiIF0sCglbICIyMjA5IiwgIlF1aW5uIiwgIldpbGtpbnNvbiIsICJZNk0gM1E3IiwgIlZpcmdpbiBJc2xhbmRzLCBVLlMuIiBdLAoJWyAiMjIxMCIsICJQaGVsYW4iLCAiVGFsbGV5IiwgIjAwNTQzIiwgIlBoaWxpcHBpbmVzIiBdLAoJWyAiMjIxMSIsICJDYXJvbCIsICJCcm9jayIsICJNNlggNEUyIiwgIkdpYnJhbHRhciIgXSwKCVsgIjIyMTIiLCAiTm9tbGFuZ2EiLCAiUm9ibGVzIiwgIjU2NTExIiwgIlZpZXQgTmFtIiBdLAoJWyAiMjIxMyIsICJBZHJpYW4iLCAiQ2xheSIsICI3OTQ3OSIsICJGcmFuY2UiIF0sCglbICIyMjE0IiwgIlNhcmEiLCAiUmlsZXkiLCAiQjlOIDVQNCIsICJQZXJ1IiBdLAoJWyAiMjIxNSIsICJDaHJpc3RpbmUiLCAiU3dlZW5leSIsICJXMVogNFM0IiwgIkZyZW5jaCBQb2x5bmVzaWEiIF0sCglbICIyMjE2IiwgIkxlaWxhbmkiLCAiSm9obnN0b24iLCAiVzFDIDhNOCIsICJBbWVyaWNhbiBTYW1vYSIgXSwKCVsgIjIyMTciLCAiTWVseXNzYSIsICJMYW1iZXJ0IiwgIlYxQiA0UDYiLCAiSXJhcSIgXSwKCVsgIjIyMTgiLCAiVGFsb24iLCAiRGVsYWNydXoiLCAiWTNOIDlSMiIsICJCdWxnYXJpYSIgXSwKCVsgIjIyMTkiLCAiR2FydGgiLCAiSmVubmluZ3MiLCAiNTk2NjciLCAiTWFsdGEiIF0sCglbICIyMjIwIiwgIk5haWRhIiwgIkNvbGVtYW4iLCAiNDU0NTYiLCAiRmlubGFuZCIgXSwKCVsgIjIyMjEiLCAiSW5kaWdvIiwgIkxvcGV6IiwgIjc3MTYwIiwgIlBpdGNhaXJuIiBdLAoJWyAiMjIyMiIsICJBc2hlciIsICJGcmVuY2giLCAiOTkwNjQiLCAiQnJpdGlzaCBJbmRpYW4gT2NlYW4gVGVycml0b3J5IiBdLAoJWyAiMjIyMyIsICJWaXZpYW4iLCAiTWNnb3dhbiIsICI0NjMxMCIsICJPbWFuIiBdLAoJWyAiMjIyNCIsICJHd2VuZG9seW4iLCAiQ2VydmFudGVzIiwgIjQ4OTA1IiwgIkNvY29zIChLZWVsaW5nKSBJc2xhbmRzIiBdLAoJWyAiMjIyNSIsICJMb2dhbiIsICJSZWlkIiwgIjg3Mzc2IiwgIkV0aGlvcGlhIiBdLAoJWyAiMjIyNiIsICJCcnlhciIsICJXb2xmZSIsICI3NTg2MCIsICJDb21vcm9zIiBdLAoJWyAiMjIyNyIsICJEZW1ldHJpdXMiLCAiSHV0Y2hpbnNvbiIsICI5NzI1MiIsICJEb21pbmljYW4gUmVwdWJsaWMiIF0sCglbICIyMjI4IiwgIkZyZXlhIiwgIkJlY2tlciIsICIwNDg3MiIsICJVbml0ZWQgU3RhdGVzIiBdLAoJWyAiMjIyOSIsICJBYmVsIiwgIkJyb29rcyIsICJJN08gMU0xIiwgIkNvbW9yb3MiIF0sCglbICIyMjMwIiwgIlNpbGFzIiwgIk1jZ3VpcmUiLCAiMDQxMDEiLCAiSW5kb25lc2lhIiBdLAoJWyAiMjIzMSIsICJRdWlubiIsICJGbGV0Y2hlciIsICJCNkUgMkIwIiwgIk5pZ2VyIiBdLAoJWyAiMjIzMiIsICJSb29uZXkiLCAiSG9sZGVuIiwgIjI5Mjk0IiwgIk1pY3JvbmVzaWEiIF0sCglbICIyMjMzIiwgIklyaXMiLCAiSGFsZSIsICJON1cgNkU5IiwgIkdyZWVubGFuZCIgXSwKCVsgIjIyMzQiLCAiQ2FuZGFjZSIsICJCYXJyeSIsICJVOEkgNUE0IiwgIkdlcm1hbnkiIF0sCglbICIyMjM1IiwgIllldHRhIiwgIkJhbGwiLCAiNjIwNTUiLCAiU3dpdHplcmxhbmQiIF0sCglbICIyMjM2IiwgIkRhaSIsICJCZW50bGV5IiwgIlAyWSA0QzUiLCAiRG9taW5pY2EiIF0sCglbICIyMjM3IiwgIkdhbm5vbiIsICJEdW5sYXAiLCAiNDU3MjgiLCAiRmlqaSIgXSwKCVsgIjIyMzgiLCAiQ2hlbHNlYSIsICJNYXlzIiwgIjM2NDk4IiwgIkd1aW5lYSIgXSwKCVsgIjIyMzkiLCAiUnV0aCIsICJNY2d1aXJlIiwgIjYyOTI0IiwgIk1hbGRpdmVzIiBdLAoJWyAiMjI0MCIsICJNZWxpc3NhIiwgIkR1cmhhbSIsICJENlMgMUEyIiwgIkFybWVuaWEiIF0sCglbICIyMjQxIiwgIkVhdG9uIiwgIlNhbGluYXMiLCAiNTM2ODkiLCAiU29tYWxpYSIgXSwKCVsgIjIyNDIiLCAiRHJpc2NvbGwiLCAiQ3VubmluZ2hhbSIsICIzMTE5NCIsICJTd2VkZW4iIF0sCglbICIyMjQzIiwgIkJldmlzIiwgIkFjb3N0YSIsICJWNE0gOVoyIiwgIkphbWFpY2EiIF0sCglbICIyMjQ0IiwgIkFuYXN0YXNpYSIsICJNY2tuaWdodCIsICIyNDg3OCIsICJTYW8gVG9tZSBhbmQgUHJpbmNpcGUiIF0sCglbICIyMjQ1IiwgIkFuaWthIiwgIlJvd2xhbmQiLCAiNDUyODciLCAiQ2hpbGUiIF0sCglbICIyMjQ2IiwgIkRleHRlciIsICJSb2xsaW5zIiwgIjAwNjg0IiwgIklyYW4sIElzbGFtaWMgUmVwdWJsaWMgb2YiIF0sCglbICIyMjQ3IiwgIkJyaWVsbGUiLCAiSXJ3aW4iLCAiVjRVIDdSMiIsICJCZWxnaXVtIiBdLAoJWyAiMjI0OCIsICJPY2VhbiIsICJGaWVsZHMiLCAiMDg1NDQiLCAiQ3JvYXRpYSIgXSwKCVsgIjIyNDkiLCAiU29uaWEiLCAiU29saXMiLCAiQzRYIDFMNSIsICJOaXVlIiBdLAoJWyAiMjI1MCIsICJKb3NlcGgiLCAiSGFuZXkiLCAiMjk1NjciLCAiQXJnZW50aW5hIiBdLAoJWyAiMjI1MSIsICJMYW1hciIsICJIZWF0aCIsICI4MTY5OSIsICJJdGFseSIgXSwKCVsgIjIyNTIiLCAiUmF5YSIsICJKb3JkYW4iLCAiUjZLIDdCMyIsICJTcGFpbiIgXSwKCVsgIjIyNTMiLCAiQnJvZHkiLCAiRnJvc3QiLCAiMzQ1NjQiLCAiRG9taW5pY2FuIFJlcHVibGljIiBdLAoJWyAiMjI1NCIsICJBbm4iLCAiSGF3a2lucyIsICJTM0EgNUs3IiwgIlllbWVuIiBdLAoJWyAiMjI1NSIsICJQaGlsbGlwIiwgIkxpbmRzYXkiLCAiODA1NDQiLCAiU2llcnJhIExlb25lIiBdLAoJWyAiMjI1NiIsICJXaWxsYSIsICJNYXluYXJkIiwgIkE2QSA0QzUiLCAiTWV4aWNvIiBdLAoJWyAiMjI1NyIsICJDYXJvbHluIiwgIk1lcmNlciIsICJWOFogMVg1IiwgIlppbWJhYndlIiBdLAoJWyAiMjI1OCIsICJKdXN0aW4iLCAiQ29sZSIsICI2ODc2NCIsICJTYWludCBWaW5jZW50IGFuZCBUaGUgR3JlbmFkaW5lcyIgXSwKCVsgIjIyNTkiLCAiRW1tYW51ZWwiLCAiUGFya3MiLCAiOTk3NjkiLCAiTGF0dmlhIiBdLAoJWyAiMjI2MCIsICJJc2FpYWgiLCAiU2FsYXphciIsICJIMUsgMVgzIiwgIlR1cmtzIGFuZCBDYWljb3MgSXNsYW5kcyIgXSwKCVsgIjIyNjEiLCAiVmFuY2UiLCAiUG9ydGVyIiwgIjQ5NjA3IiwgIkNvc3RhIFJpY2EiIF0sCglbICIyMjYyIiwgIklnb3IiLCAiS2ltIiwgIjk5NDg5IiwgIlR1cmttZW5pc3RhbiIgXSwKCVsgIjIyNjMiLCAiRW1pIiwgIkdyYXZlcyIsICJGNE0gNUw4IiwgIkVsIFNhbHZhZG9yIiBdLAoJWyAiMjI2NCIsICJHcmlmZml0aCIsICJNb25yb2UiLCAiMTE1NTAiLCAiVGFuemFuaWEsIFVuaXRlZCBSZXB1YmxpYyBvZiIgXSwKCVsgIjIyNjUiLCAiSWxpYW5hIiwgIkNvZmZleSIsICIzMDIyMCIsICJBbGJhbmlhIiBdLAoJWyAiMjI2NiIsICJKZW1pbWEiLCAiR3V0aHJpZSIsICI2OTI4MyIsICJTYWludCBQaWVycmUgYW5kIE1pcXVlbG9uIiBdLAoJWyAiMjI2NyIsICJaZW5pYSIsICJGYXJyZWxsIiwgIjkxODcyIiwgIlRhbnphbmlhLCBVbml0ZWQgUmVwdWJsaWMgb2YiIF0sCglbICIyMjY4IiwgIkx1Y2FzIiwgIkNoYW1iZXJzIiwgIkw1WiAxVzAiLCAiQm91dmV0IElzbGFuZCIgXSwKCVsgIjIyNjkiLCAiWmVuYWlkYSIsICJWYWxlbnp1ZWxhIiwgIjMxNzAwIiwgIkd1YW0iIF0sCglbICIyMjcwIiwgIkJyYWRsZXkiLCAiV3lubiIsICIyMTIyMiIsICJMaXRodWFuaWEiIF0sCglbICIyMjcxIiwgIk1haXRlIiwgIlJpY2hhcmQiLCAiSDREIDdYMCIsICJDYW1lcm9vbiIgXSwKCVsgIjIyNzIiLCAiTW9zZXMiLCAiSG91c2UiLCAiWTNaIDNLNyIsICJTYWludCBWaW5jZW50IGFuZCBUaGUgR3JlbmFkaW5lcyIgXSwKCVsgIjIyNzMiLCAiRXJpY2giLCAiUGV0ZXJzZW4iLCAiVTROIDlSNyIsICJSd2FuZGEiIF0sCglbICIyMjc0IiwgIlN0ZXBoYW5pZSIsICJaaW1tZXJtYW4iLCAiNzAwOTciLCAiTWFsYXdpIiBdLAoJWyAiMjI3NSIsICJSeWxlZSIsICJTY2huZWlkZXIiLCAiMTU2NDUiLCAiR2licmFsdGFyIiBdLAoJWyAiMjI3NiIsICJaaWEiLCAiQ3JhaWciLCAiSDFLIDFOOSIsICJOb3J3YXkiIF0sCglbICIyMjc3IiwgIkZpb25hIiwgIkNoYW5leSIsICJZNFUgN0s4IiwgIlNhbiBNYXJpbm8iIF0sCglbICIyMjc4IiwgIkdpbCIsICJTaGVybWFuIiwgIjY0NzIwIiwgIldhbGxpcyBhbmQgRnV0dW5hIiBdLAoJWyAiMjI3OSIsICJSYWphIiwgIlNhbmRvdmFsIiwgIjExMjI1IiwgIkxpdGh1YW5pYSIgXSwKCVsgIjIyODAiLCAiSWxsYW5hIiwgIld5YXR0IiwgIkEyTSA5TzIiLCAiQnJhemlsIiBdLAoJWyAiMjI4MSIsICJEZWNsYW4iLCAiSG93ZWxsIiwgIkU5ViA4SjUiLCAiU2FuIE1hcmlubyIgXSwKCVsgIjIyODIiLCAiV2FycmVuIiwgIkNvb3BlciIsICI0NzE2MCIsICJHdXlhbmEiIF0sCglbICIyMjgzIiwgIkFseXNzYSIsICJKdWFyZXoiLCAiUzdHIDhGMiIsICJTd2VkZW4iIF0sCglbICIyMjg0IiwgIlF1eW5uIiwgIkxvbmciLCAiUDFQIDVZNCIsICJNZXhpY28iIF0sCglbICIyMjg1IiwgIkRhbHRvbiIsICJCb29rZXIiLCAiSTVUIDFSMyIsICJNYXVyaXRpdXMiIF0sCglbICIyMjg2IiwgIkx1bmVhIiwgIk1jbGF1Z2hsaW4iLCAiSTNGIDZENCIsICJUb2dvIiBdLAoJWyAiMjI4NyIsICJJcmVuZSIsICJCcm9jayIsICIwNDc2MCIsICJUYWppa2lzdGFuIiBdLAoJWyAiMjI4OCIsICJSYXZlbiIsICJGbG95ZCIsICJSMk4gMlk1IiwgIlBoaWxpcHBpbmVzIiBdLAoJWyAiMjI4OSIsICJOaWNob2xlIiwgIkZhcm1lciIsICI4MTIxMyIsICJTZXljaGVsbGVzIiBdLAoJWyAiMjI5MCIsICJTb3BoaWEiLCAiTWNkb25hbGQiLCAiODYyOTEiLCAiQ2hpbGUiIF0sCglbICIyMjkxIiwgIk5laHJ1IiwgIk1hdHRoZXdzIiwgIjYwNzMyIiwgIkNlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYyIgXSwKCVsgIjIyOTIiLCAiTWFyYWgiLCAiTmVsc29uIiwgIjQ0NTMzIiwgIktlbnlhIiBdLAoJWyAiMjI5MyIsICJNYXJ2aW4iLCAiTHlvbnMiLCAiTTdZIDFRNiIsICJTb21hbGlhIiBdLAoJWyAiMjI5NCIsICJJYW4iLCAiRmVybmFuZGV6IiwgIkQ5VSA4QjYiLCAiVHVya2V5IiBdLAoJWyAiMjI5NSIsICJHcmV0Y2hlbiIsICJEb3Rzb24iLCAiNDgyOTQiLCAiQ2hpbmEiIF0sCglbICIyMjk2IiwgIkJyYWR5IiwgIldlYXZlciIsICJTNFUgNEk4IiwgIkJ1cnVuZGkiIF0sCglbICIyMjk3IiwgIkVsbGEiLCAiU2FsYXMiLCAiNzM3NzEiLCAiU2FvIFRvbWUgYW5kIFByaW5jaXBlIiBdLAoJWyAiMjI5OCIsICJNYXJ0aGEiLCAiSXJ3aW4iLCAiMDY1NTQiLCAiVGltb3ItbGVzdGUiIF0sCglbICIyMjk5IiwgIlBlbmVsb3BlIiwgIlByYXR0IiwgIlMxUiA0TDQiLCAiR2Fib24iIF0sCglbICIyMzAwIiwgIktlbnlvbiIsICJEYWxlIiwgIjY0NTQ4IiwgIlppbWJhYndlIiBdLAoJWyAiMjMwMSIsICJIZW5yeSIsICJNeWVycyIsICIwNzYxNCIsICJVbml0ZWQgQXJhYiBFbWlyYXRlcyIgXSwKCVsgIjIzMDIiLCAiQ2hhbmV5IiwgIkR1bmxhcCIsICIxODM4OCIsICJGcmVuY2ggU291dGhlcm4gVGVycml0b3JpZXMiIF0sCglbICIyMzAzIiwgIlBhbG1lciIsICJMZSIsICIxMDgwNyIsICJDb2xvbWJpYSIgXSwKCVsgIjIzMDQiLCAiS2FzZWVtIiwgIk1hZGRlbiIsICJVNEUgNkw5IiwgIkd1eWFuYSIgXSwKCVsgIjIzMDUiLCAiR3JhbnQiLCAiQW50aG9ueSIsICJGM0sgNEQ4IiwgIlRyaW5pZGFkIGFuZCBUb2JhZ28iIF0sCglbICIyMzA2IiwgIkRlbnRvbiIsICJNb29yZSIsICJJNU8gNEk1IiwgIkJlbGl6ZSIgXSwKCVsgIjIzMDciLCAiUmVnYW4iLCAiUGl0dG1hbiIsICJVOFQgOU0xIiwgIlJvbWFuaWEiIF0sCglbICIyMzA4IiwgIlZhbGVudGluZSIsICJIdW50IiwgIkU5TyA2SDYiLCAiUG9sYW5kIiBdLAoJWyAiMjMwOSIsICJBYnJhaGFtIiwgIkxvdmUiLCAiWDFUIDRLMCIsICJQaGlsaXBwaW5lcyIgXSwKCVsgIjIzMTAiLCAiTWFnZ2llIiwgIkdhaW5lcyIsICJXNVogNkw0IiwgIkNoYWQiIF0sCglbICIyMzExIiwgIkt5bHlubiIsICJTZWFycyIsICI1MzQxOSIsICJHaGFuYSIgXSwKCVsgIjIzMTIiLCAiQWJlbCIsICJIdWRzb24iLCAiTzZDIDZLNSIsICJNYWxheXNpYSIgXSwKCVsgIjIzMTMiLCAiQWxhZGRpbiIsICJCcmFkeSIsICIxNjQ2NSIsICJBbnRhcmN0aWNhIiBdLAoJWyAiMjMxNCIsICJMYXVyZWwiLCAiQnVzaCIsICI0MjI5NSIsICJLeXJneXpzdGFuIiBdLAoJWyAiMjMxNSIsICJDYW1lcm9uIiwgIlNoZXBoZXJkIiwgIlk4UiA1TDciLCAiRmlubGFuZCIgXSwKCVsgIjIzMTYiLCAiQ29saW4iLCAiQmFya2VyIiwgIkg4USA1TDAiLCAiQXJ1YmEiIF0sCglbICIyMzE3IiwgIk5pY2hvbGUiLCAiU3RlcGhlbnMiLCAiQjhQIDNENSIsICJRYXRhciIgXSwKCVsgIjIzMTgiLCAiTWFyeSIsICJEb3JzZXkiLCAiSjdEIDFFNSIsICJJY2VsYW5kIiBdLAoJWyAiMjMxOSIsICJZZXR0YSIsICJEaWxsb24iLCAiSTdYIDlEMyIsICJIb25nIEtvbmciIF0sCglbICIyMzIwIiwgIkhvcGUiLCAiTWF5IiwgIkw1VyAxVDkiLCAiVGFpd2FuLCBQcm92aW5jZSBvZiBDaGluYSIgXSwKCVsgIjIzMjEiLCAiRGFwaG5lIiwgIkJhcnIiLCAiVzJCIDlHMiIsICJLb3JlYSwgUmVwdWJsaWMgb2YiIF0sCglbICIyMzIyIiwgIk1lbGlzc2EiLCAiSGFydG1hbiIsICIxNzYwNyIsICJSZXVuaW9uIiBdLAoJWyAiMjMyMyIsICJBY3RvbiIsICJNZXJyaXR0IiwgIlU3TSAzUTUiLCAiQ2FwZSBWZXJkZSIgXSwKCVsgIjIzMjQiLCAiQWxpa2EiLCAiV2Vla3MiLCAiNDU0NzUiLCAiU2luZ2Fwb3JlIiBdLAoJWyAiMjMyNSIsICJGaXR6Z2VyYWxkIiwgIlJvd2UiLCAiWjNaIDJCNiIsICJJc3JhZWwiIF0sCglbICIyMzI2IiwgIkZyYW5jZXMiLCAiVmFsZW50aW5lIiwgIjU0MzI5IiwgIkt5cmd5enN0YW4iIF0sCglbICIyMzI3IiwgIkhvbGxlZSIsICJQb29sZSIsICI1NjEwMSIsICJTYWludCBLaXR0cyBhbmQgTmV2aXMiIF0sCglbICIyMzI4IiwgIk1lbGlzc2EiLCAiU3RhZmZvcmQiLCAiUjVDIDdWMCIsICJQaGlsaXBwaW5lcyIgXSwKCVsgIjIzMjkiLCAiUGF0aWVuY2UiLCAiSm9uZXMiLCAiNjE1MTYiLCAiTWF1cml0aXVzIiBdLAoJWyAiMjMzMCIsICJVdGEiLCAiU2xvYW4iLCAiSzFCIDlSMiIsICJUaW1vci1sZXN0ZSIgXSwKCVsgIjIzMzEiLCAiQnJlbnQiLCAiV2VzdCIsICI2OTMxMCIsICJCdXJ1bmRpIiBdLAoJWyAiMjMzMiIsICJPdHRvIiwgIk9sc2VuIiwgIjg4ODQ5IiwgIk1vbmFjbyIgXSwKCVsgIjIzMzMiLCAiQmxvc3NvbSIsICJTb3RvIiwgIkUyUSA2RTYiLCAiVWtyYWluZSIgXSwKCVsgIjIzMzQiLCAiQW5hc3Rhc2lhIiwgIlN0YW50b24iLCAiUzhEIDNVNSIsICJNZXhpY28iIF0sCglbICIyMzM1IiwgIk55c3NhIiwgIk1hc3NleSIsICJBNEcgOEc3IiwgIklyZWxhbmQiIF0sCglbICIyMzM2IiwgIkJyaWFuIiwgIk1vcmVubyIsICJUNk8gNEQ3IiwgIk15YW5tYXIiIF0sCglbICIyMzM3IiwgIkZpb25hIiwgIlByaWNlIiwgIjAzODI2IiwgIkJlbmluIiBdLAoJWyAiMjMzOCIsICJXeW9taW5nIiwgIktub3dsZXMiLCAiSTVNIDdUMyIsICJDaGFkIiBdLAoJWyAiMjMzOSIsICJJb2xhIiwgIk5vYmxlIiwgIjk1MjUxIiwgIlR1bmlzaWEiIF0sCglbICIyMzQwIiwgIkNhbWVyYW4iLCAiTW9udGdvbWVyeSIsICIzNTc0OCIsICJLb3JlYSIgXSwKCVsgIjIzNDEiLCAiV2VzbGV5IiwgIlNpbXMiLCAiSjZPIDdDMCIsICJIdW5nYXJ5IiBdLAoJWyAiMjM0MiIsICJNb25hIiwgIkdhdGVzIiwgIko2WSAzRTIiLCAiVG9rZWxhdSIgXSwKCVsgIjIzNDMiLCAiRG9taW5pcXVlIiwgIlNlbGxlcnMiLCAiRzZVIDdJMiIsICJTdWRhbiIgXSwKCVsgIjIzNDQiLCAiRGVzdGlueSIsICJGcmF6aWVyIiwgIlkyUCA1WDYiLCAiTWFkYWdhc2NhciIgXSwKCVsgIjIzNDUiLCAiS2Vsc2llIiwgIlN0b2tlcyIsICI3ODU2MSIsICJZZW1lbiIgXSwKCVsgIjIzNDYiLCAiSnVsaWUiLCAiSm9yZGFuIiwgIlU1SCA0SDAiLCAiTXlhbm1hciIgXSwKCVsgIjIzNDciLCAiWGF2aWVyYSIsICJIb2RnZSIsICIzNjQ1MiIsICJUdXJrZXkiIF0sCglbICIyMzQ4IiwgIkNhaW4iLCAiQm95ZCIsICI3NDU0MyIsICJMZWJhbm9uIiBdLAoJWyAiMjM0OSIsICJEZXZpbiIsICJCdXJjaCIsICI5NDg3OSIsICJDeXBydXMiIF0sCglbICIyMzUwIiwgIk1pY2hlbGxlIiwgIk1hbm5pbmciLCAiVjdUIDRBMyIsICJOZXcgWmVhbGFuZCIgXSwKCVsgIjIzNTEiLCAiUXVpbnRlc3NhIiwgIkNoYXBtYW4iLCAiOTUzNzkiLCAiRmFyb2UgSXNsYW5kcyIgXSwKCVsgIjIzNTIiLCAiRGFuaWVsbGUiLCAiV2VsbHMiLCAiMjc3MjIiLCAiQ29sb21iaWEiIF0sCglbICIyMzUzIiwgIkZhaXRoIiwgIkRlY2tlciIsICIwNDg4MSIsICJDYW5hZGEiIF0sCglbICIyMzU0IiwgIkdhbm5vbiIsICJDaGFwbWFuIiwgIjA3Njg3IiwgIklzcmFlbCIgXSwKCVsgIjIzNTUiLCAiSmF5bWUiLCAiQmxhY2siLCAiQTZMIDlXMSIsICJKb3JkYW4iIF0sCglbICIyMzU2IiwgIlplbmlhIiwgIkNvb2xleSIsICJBNlggMUI3IiwgIkdyZWVubGFuZCIgXSwKCVsgIjIzNTciLCAiTWFyaXMiLCAiQnVydG9uIiwgIko0RyAxWTAiLCAiRWN1YWRvciIgXSwKCVsgIjIzNTgiLCAiUmluYSIsICJWYXpxdWV6IiwgIkczViA3RzYiLCAiUnVzc2lhbiBGZWRlcmF0aW9uIiBdLAoJWyAiMjM1OSIsICJOaW5hIiwgIlN0YW50b24iLCAiRTdaIDFXMCIsICJEb21pbmljYSIgXSwKCVsgIjIzNjAiLCAiQWxleGFuZHJhIiwgIkplbmtpbnMiLCAiQzZOIDRSNCIsICJNb3JvY2NvIiBdLAoJWyAiMjM2MSIsICJKZXJvbWUiLCAiQ2hlbiIsICI2ODk1NSIsICJJc3JhZWwiIF0sCglbICIyMzYyIiwgIkNsZW1lbnRpbmUiLCAiUm9iYmlucyIsICJYN0kgN1QzIiwgIkNyb2F0aWEiIF0sCglbICIyMzYzIiwgIk5pZ2VsIiwgIkd1dGhyaWUiLCAiQTROIDZYOCIsICJGcmVuY2ggU291dGhlcm4gVGVycml0b3JpZXMiIF0sCglbICIyMzY0IiwgIlhhdmllcmEiLCAiR3JpZmZpdGgiLCAiOTA0ODkiLCAiQ3ViYSIgXSwKCVsgIjIzNjUiLCAiTWFyc2RlbiIsICJCZXN0IiwgIlU0QiA1UjciLCAiRXN0b25pYSIgXSwKCVsgIjIzNjYiLCAiRWJvbnkiLCAiQmVuc29uIiwgIkg3QyA3RjciLCAiQW5ndWlsbGEiIF0sCglbICIyMzY3IiwgIkt5bGllIiwgIkhhbnNlbiIsICIzODkzMiIsICJFcml0cmVhIiBdLAoJWyAiMjM2OCIsICJJb2xhIiwgIkNvcGVsYW5kIiwgIlA0WCA5TTQiLCAiUndhbmRhIiBdLAoJWyAiMjM2OSIsICJKb3JkZW4iLCAiR3JlZW4iLCAiNDgwMTgiLCAiTmFtaWJpYSIgXSwKCVsgIjIzNzAiLCAiSGFtaXNoIiwgIlBvcnRlciIsICJMNkYgOEwxIiwgIlRhaXdhbiwgUHJvdmluY2Ugb2YgQ2hpbmEiIF0sCglbICIyMzcxIiwgIkV6cmEiLCAiVGF5bG9yIiwgIjA5MTQ4IiwgIkZyZW5jaCBTb3V0aGVybiBUZXJyaXRvcmllcyIgXSwKCVsgIjIzNzIiLCAiRGFyYSIsICJQcmF0dCIsICIwMDU1OCIsICJTYWludCBLaXR0cyBhbmQgTmV2aXMiIF0sCglbICIyMzczIiwgIk9saXZlciIsICJIb2x0IiwgIkM0TiA1WjciLCAiVGhhaWxhbmQiIF0sCglbICIyMzc0IiwgIkthdG8iLCAiTWNnZWUiLCAiMTcwMTciLCAiTWljcm9uZXNpYSIgXSwKCVsgIjIzNzUiLCAiRnVsbGVyIiwgIlJvZ2VycyIsICJNOEYgNlk3IiwgIkZyZW5jaCBQb2x5bmVzaWEiIF0sCglbICIyMzc2IiwgIkNhcm9sIiwgIlN0dWFydCIsICI1NTk4MCIsICJTdWRhbiIgXSwKCVsgIjIzNzciLCAiV2F5bmUiLCAiTmljaG9scyIsICIzNzM0NCIsICJDaGlsZSIgXSwKCVsgIjIzNzgiLCAiTGFycyIsICJHaWxiZXJ0IiwgIjI3MDc2IiwgIk1pY3JvbmVzaWEiIF0sCglbICIyMzc5IiwgIlRvZGQiLCAiUm9sbGlucyIsICJNNEkgNFg4IiwgIlZpcmdpbiBJc2xhbmRzLCBVLlMuIiBdLAoJWyAiMjM4MCIsICJDb2xvcmFkbyIsICJKdXN0aWNlIiwgIjY4Nzk1IiwgIlllbWVuIiBdLAoJWyAiMjM4MSIsICJKb3JkYW4iLCAiQ2hhbmciLCAiMTExNDkiLCAiTWF5b3R0ZSIgXSwKCVsgIjIzODIiLCAiVHJveSIsICJIYXluZXMiLCAiTjJOIDFOOCIsICJSZXVuaW9uIiBdLAoJWyAiMjM4MyIsICJBbWl0eSIsICJTbnlkZXIiLCAiMTc3ODUiLCAiQXJnZW50aW5hIiBdLAoJWyAiMjM4NCIsICJLZW5uYW4iLCAiVHVybmVyIiwgIjMwMDQxIiwgIkJyYXppbCIgXSwKCVsgIjIzODUiLCAiRG9yb3RoeSIsICJHYXRlcyIsICJCN1ogNlY0IiwgIkdoYW5hIiBdLAoJWyAiMjM4NiIsICJBcmlhbmEiLCAiUm9qYXMiLCAiNzA3OTciLCAiRXJpdHJlYSIgXSwKCVsgIjIzODciLCAiRGVzaXJhZSIsICJKb3luZXIiLCAiNjM0OTMiLCAiTWFsZGl2ZXMiIF0sCglbICIyMzg4IiwgIk1hcnNkZW4iLCAiQmFydG9uIiwgIjM2MzQzIiwgIkNoaWxlIiBdLAoJWyAiMjM4OSIsICJHcmFoYW0iLCAiR3JlZXIiLCAiNjUxNTIiLCAiQ2F5bWFuIElzbGFuZHMiIF0sCglbICIyMzkwIiwgIkNhbWVyb24iLCAiRWR3YXJkcyIsICI4OTI3NiIsICJNb250c2VycmF0IiBdLAoJWyAiMjM5MSIsICJCcmFkbGV5IiwgIldoaXRlIiwgIjgwMzY0IiwgIlVuaXRlZCBLaW5nZG9tIiBdLAoJWyAiMjM5MiIsICJGaW5uIiwgIkNvdGUiLCAiRzlQIDFQMCIsICJHaGFuYSIgXSwKCVsgIjIzOTMiLCAiR2VvZmZyZXkiLCAiQmVja2VyIiwgIk81RyA0TDQiLCAiV2FsbGlzIGFuZCBGdXR1bmEiIF0sCglbICIyMzk0IiwgIkhheWRlbiIsICJFc3RlcyIsICJROEcgN0Y5IiwgIlRvZ28iIF0sCglbICIyMzk1IiwgIlF1aW5sYW4iLCAiR2FycmV0dCIsICJSMkMgM0U3IiwgIlVnYW5kYSIgXSwKCVsgIjIzOTYiLCAiSGF2aXZhIiwgIkhhcnJpbmd0b24iLCAiNjQxOTgiLCAiQmFoYW1hcyIgXSwKCVsgIjIzOTciLCAiQnJlbm5hbiIsICJIb2RnZSIsICIzNTMyNyIsICJQYXJhZ3VheSIgXSwKCVsgIjIzOTgiLCAiSGFsZWUiLCAiU3lrZXMiLCAiUzZKIDRTNCIsICJDb3N0YSBSaWNhIiBdLAoJWyAiMjM5OSIsICJNaWtheWxhIiwgIlJ1aXoiLCAiMjE2ODYiLCAiTWFsYXlzaWEiIF0sCglbICIyNDAwIiwgIk1hY3kiLCAiU3RhbmxleSIsICJGNkQgNkM0IiwgIkx1eGVtYm91cmciIF0sCglbICIyNDAxIiwgIlBldHJhIiwgIk1pbGVzIiwgIk83WCAyRDIiLCAiVG9rZWxhdSIgXSwKCVsgIjI0MDIiLCAiT3ByYWgiLCAiTWVuZGV6IiwgIjg4OTk0IiwgIkZyYW5jZSIgXSwKCVsgIjI0MDMiLCAiVXB0b24iLCAiU2lsdmEiLCAiMTc4NzgiLCAiRnJlbmNoIFNvdXRoZXJuIFRlcnJpdG9yaWVzIiBdLAoJWyAiMjQwNCIsICJXYWRlIiwgIlBlbm5pbmd0b24iLCAiUzhKIDNQMiIsICJNYWxheXNpYSIgXSwKCVsgIjI0MDUiLCAiR2Fubm9uIiwgIlJpZGRsZSIsICJJNEEgMkg5IiwgIlNvbWFsaWEiIF0sCglbICIyNDA2IiwgIkphbmEiLCAiTXllcnMiLCAiMDQ5ODIiLCAiUGhpbGlwcGluZXMiIF0sCglbICIyNDA3IiwgIkJyb29rZSIsICJIYWxlIiwgIjk4MjcyIiwgIkxpdGh1YW5pYSIgXSwKCVsgIjI0MDgiLCAiSGFzaGltIiwgIk1lbmRleiIsICIwMDE0NCIsICJTYWludCBIZWxlbmEiIF0sCglbICIyNDA5IiwgIkJseXRoZSIsICJIYW5zb24iLCAiVTVaIDZQNCIsICJTYWludCBIZWxlbmEiIF0sCglbICIyNDEwIiwgIk1pY2hlbGxlIiwgIk1hZGRlbiIsICJCNFIgMUk5IiwgIklyZWxhbmQiIF0sCglbICIyNDExIiwgIkRlaXJkcmUiLCAiUGF0dG9uIiwgIkI0SCAxTjciLCAiR2VvcmdpYSIgXSwKCVsgIjI0MTIiLCAiTmF0aGFuaWVsIiwgIkNoYW5kbGVyIiwgIlcxViA4UjQiLCAiU2llcnJhIExlb25lIiBdLAoJWyAiMjQxMyIsICJUYW1la2FoIiwgIk11cnJheSIsICJJOE0gMVc4IiwgIkd1YXRlbWFsYSIgXSwKCVsgIjI0MTQiLCAiTmFpZGEiLCAiQm95bGUiLCAiVjRTIDJOMiIsICJVbml0ZWQgQXJhYiBFbWlyYXRlcyIgXSwKCVsgIjI0MTUiLCAiSGlyb2tvIiwgIldpbnRlcnMiLCAiSzhHIDNSOSIsICJCYXJiYWRvcyIgXSwKCVsgIjI0MTYiLCAiUGFsbWVyIiwgIkd1eSIsICJBNEggNUwxIiwgIlNhdWRpIEFyYWJpYSIgXSwKCVsgIjI0MTciLCAiSGVybWlvbmUiLCAiTmljaG9sc29uIiwgIjc2MTQ3IiwgIk1hcnNoYWxsIElzbGFuZHMiIF0sCglbICIyNDE4IiwgIlJ1c3NlbGwiLCAiQm95ZCIsICI2NjE0OSIsICJTd2l0emVybGFuZCIgXSwKCVsgIjI0MTkiLCAiR3JldGNoZW4iLCAiUm9ibGVzIiwgIkI5TCAxSjciLCAiU3BhaW4iIF0sCglbICIyNDIwIiwgIkxlYWgiLCAiR2liYnMiLCAiMTY2ODIiLCAiVmFudWF0dSIgXSwKCVsgIjI0MjEiLCAiQW1pciIsICJDYXJsc29uIiwgIkE1QyA2RjIiLCAiTXlhbm1hciIgXSwKCVsgIjI0MjIiLCAiTWVycmlsbCIsICJSYXRsaWZmIiwgIkE2RSA5QjIiLCAiVG9uZ2EiIF0sCglbICIyNDIzIiwgIld5YXR0IiwgIkRhdmlkIiwgIlA4RyAyTTEiLCAiS2lyaWJhdGkiIF0sCglbICIyNDI0IiwgIlZpb2xldCIsICJCb3lsZSIsICJQNVggN0IwIiwgIkRlbm1hcmsiIF0sCglbICIyNDI1IiwgIkphcmVkIiwgIk15ZXJzIiwgIjIyMTMxIiwgIkt5cmd5enN0YW4iIF0sCglbICIyNDI2IiwgIkxhdmluaWEiLCAiU3RlcGhlbnNvbiIsICI1NTUzNyIsICJUdXJrcyBhbmQgQ2FpY29zIElzbGFuZHMiIF0sCglbICIyNDI3IiwgIlphY2hhcnkiLCAiVHlzb24iLCAiQzRPIDdWNCIsICJNYWNlZG9uaWEiIF0sCglbICIyNDI4IiwgIkVtbWEiLCAiQ2xhcmsiLCAiQTdaIDJaMSIsICJHdWFtIiBdLAoJWyAiMjQyOSIsICJBYXJvbiIsICJNb250b3lhIiwgIlEzVSAyWDEiLCAiQmFocmFpbiIgXSwKCVsgIjI0MzAiLCAiRHlsYW4iLCAiUm9hY2giLCAiODEyMzgiLCAiRnJlbmNoIEd1aWFuYSIgXSwKCVsgIjI0MzEiLCAiQmF4dGVyIiwgIlJvc2FyaW8iLCAiSDdCIDFSMiIsICJTdXJpbmFtZSIgXSwKCVsgIjI0MzIiLCAiU2hhZCIsICJCb2x0b24iLCAiRDFXIDVYMCIsICJCYXJiYWRvcyIgXSwKCVsgIjI0MzMiLCAiSGFzYWQiLCAiSGluZXMiLCAiRDlVIDNIMSIsICJVa3JhaW5lIiBdLAoJWyAiMjQzNCIsICJNYWdneSIsICJGcmVuY2giLCAiTTNFIDVIOCIsICJOaWNhcmFndWEiIF0sCglbICIyNDM1IiwgIkV2YW5nZWxpbmUiLCAiSmVua2lucyIsICI1NzczMiIsICJOaWdlcmlhIiBdLAoJWyAiMjQzNiIsICJFYXRvbiIsICJTaGFubm9uIiwgIjU2ODU0IiwgIk5hbWliaWEiIF0sCglbICIyNDM3IiwgIktlYXRvbiIsICJCYXJiZXIiLCAiRzVWIDdUMCIsICJTdmFsYmFyZCBhbmQgSmFuIE1heWVuIiBdLAoJWyAiMjQzOCIsICJMZXN0ZXIiLCAiTG92ZSIsICJKNVEgOEgzIiwgIlVuaXRlZCBLaW5nZG9tIiBdLAoJWyAiMjQzOSIsICJPbGl2aWEiLCAiRm9sZXkiLCAiMTYyODQiLCAiTWF5b3R0ZSIgXSwKCVsgIjI0NDAiLCAiSW5leiIsICJDcmFpZyIsICI5ODk0NyIsICJQb2xhbmQiIF0sCglbICIyNDQxIiwgIkRlc2lyYWUiLCAiSmFjb2Jzb24iLCAiMjU5NTAiLCAiRnJlbmNoIFBvbHluZXNpYSIgXSwKCVsgIjI0NDIiLCAiQW1ldGh5c3QiLCAiUm9iZXJ0c29uIiwgIjc4ODQwIiwgIlRpbW9yLWxlc3RlIiBdLAoJWyAiMjQ0MyIsICJSYWhpbSIsICJEYXkiLCAiNjE0MjAiLCAiTWFsZGl2ZXMiIF0sCglbICIyNDQ0IiwgIktldnluIiwgIk1jY2FydHkiLCAiWDdUIDhaMyIsICJHdWFtIiBdLAoJWyAiMjQ0NSIsICJMb2dhbiIsICJNYWxvbmUiLCAiQjZGIDhOMCIsICJNYWRhZ2FzY2FyIiBdLAoJWyAiMjQ0NiIsICJLYXRobGVlbiIsICJDb3RlIiwgIkw0UiA2VzkiLCAiQ29uZ28iIF0sCglbICIyNDQ3IiwgIlBvcnRlciIsICJNY2xlYW4iLCAiRzFaIDFXOSIsICJNYXVyaXRpdXMiIF0sCglbICIyNDQ4IiwgIlJlYWdhbiIsICJDaGFwbWFuIiwgIjg2MzE0IiwgIlBhbGVzdGluaWFuIFRlcnJpdG9yeSwgT2NjdXBpZWQiIF0sCglbICIyNDQ5IiwgIlZlZGEiLCAiSGFycmluZ3RvbiIsICJSN1cgMUs0IiwgIkNvbmdvIiBdLAoJWyAiMjQ1MCIsICJEb21pbmlxdWUiLCAiSGV3aXR0IiwgIlA1SyA3TDQiLCAiU2FuIE1hcmlubyIgXSwKCVsgIjI0NTEiLCAiWmVsZGEiLCAiT3JyIiwgIlo1QiA2VjEiLCAiR3JlZW5sYW5kIiBdLAoJWyAiMjQ1MiIsICJOYXRhbGllIiwgIkthbmUiLCAiMTA0OTEiLCAiQmVsZ2l1bSIgXSwKCVsgIjI0NTMiLCAiRWxpemFiZXRoIiwgIkJyaWdodCIsICJSM1YgMlI0IiwgIkJhbmdsYWRlc2giIF0sCglbICIyNDU0IiwgIkV2YW4iLCAiS25hcHAiLCAiVzNaIDNJNSIsICJNYXVyaXRpdXMiIF0sCglbICIyNDU1IiwgIlVuaXR5IiwgIkFybXN0cm9uZyIsICI4Mjk4NiIsICJLaXJpYmF0aSIgXSwKCVsgIjI0NTYiLCAiQXJkZW4iLCAiV2ludGVycyIsICJDN0QgNE0yIiwgIlN3ZWRlbiIgXSwKCVsgIjI0NTciLCAiSGF5ZmEiLCAiSGVuZGVyc29uIiwgIkI4WiAzVjMiLCAiTGF0dmlhIiBdLAoJWyAiMjQ1OCIsICJPY2VhbiIsICJEZWxhY3J1eiIsICJaM1ogMkg4IiwgIlRvbmdhIiBdLAoJWyAiMjQ1OSIsICJDYXJ0ZXIiLCAiSGFyZGluZyIsICJSMVogOEo0IiwgIklyZWxhbmQiIF0sCglbICIyNDYwIiwgIkhhcnJpZXQiLCAiU2ltbW9ucyIsICI1NDc1NyIsICJJbmRvbmVzaWEiIF0sCglbICIyNDYxIiwgIlNvcG9saW5lIiwgIkhpY2tzIiwgIkk1QSA2TzIiLCAiQXJnZW50aW5hIiBdLAoJWyAiMjQ2MiIsICJKZW5ldHRlIiwgIlJhbW9zIiwgIkk0ViAzSDYiLCAiUG9ydHVnYWwiIF0sCglbICIyNDYzIiwgIkFiaWdhaWwiLCAiQmVyZyIsICJFNlAgNkwwIiwgIlVuaXRlZCBTdGF0ZXMiIF0sCglbICIyNDY0IiwgIlN5YmlsbCIsICJGb3giLCAiMDIzMTkiLCAiU3ZhbGJhcmQgYW5kIEphbiBNYXllbiIgXSwKCVsgIjI0NjUiLCAiV3lvbWluZyIsICJKYXJ2aXMiLCAiSTFSIDdWOSIsICJQYWxlc3RpbmlhbiBUZXJyaXRvcnksIE9jY3VwaWVkIiBdLAoJWyAiMjQ2NiIsICJDeW50aGlhIiwgIkVuZ2xpc2giLCAiMTc5ODMiLCAiSXNyYWVsIiBdLAoJWyAiMjQ2NyIsICJKZXJyeSIsICJMaXR0bGUiLCAiMzM4NDYiLCAiTWF1cml0aXVzIiBdLAoJWyAiMjQ2OCIsICJRdWludGVzc2EiLCAiRG9uYWxkc29uIiwgIlY0TiAySzEiLCAiQ2hpbmEiIF0sCglbICIyNDY5IiwgIkFubmUiLCAiUG90dGVyIiwgIjc4NTk2IiwgIlVuaXRlZCBTdGF0ZXMgTWlub3IgT3V0bHlpbmcgSXNsYW5kcyIgXSwKCVsgIjI0NzAiLCAiTWFkb25uYSIsICJIYXJ0IiwgIkE0QSA0VDgiLCAiQmFocmFpbiIgXSwKCVsgIjI0NzEiLCAiTWFkZWxpbmUiLCAiV2FsbHMiLCAiWTNEIDRUMyIsICJDb21vcm9zIiBdLAoJWyAiMjQ3MiIsICJGbGV1ciIsICJCbGV2aW5zIiwgIkQxVCA5UDYiLCAiR3VpbmVhLWJpc3NhdSIgXSwKCVsgIjI0NzMiLCAiSmFkZW4iLCAiV2ViYiIsICIxMzkxNyIsICJMZXNvdGhvIiBdLAoJWyAiMjQ3NCIsICJBYmR1bCIsICJGbGVtaW5nIiwgIkE4QSAzWTMiLCAiQ2FuYWRhIiBdLAoJWyAiMjQ3NSIsICJCbGF6ZSIsICJDYXJyb2xsIiwgIjQxMDU5IiwgIk1hcnNoYWxsIElzbGFuZHMiIF0sCglbICIyNDc2IiwgIkRhdmlkIiwgIkhvb3ZlciIsICIyOTEzMiIsICJBbGdlcmlhIiBdLAoJWyAiMjQ3NyIsICJSZW5lZSIsICJOaWV2ZXMiLCAiMzU4NDMiLCAiRWd5cHQiIF0sCglbICIyNDc4IiwgIkphaW1lIiwgIk1jY2x1cmUiLCAiUjVLIDZCNSIsICJMaWVjaHRlbnN0ZWluIiBdLAoJWyAiMjQ3OSIsICJEZWJvcmFoIiwgIkZsZXRjaGVyIiwgIjcwMzk5IiwgIkVxdWF0b3JpYWwgR3VpbmVhIiBdLAoJWyAiMjQ4MCIsICJPdHRvIiwgIkxvcGV6IiwgIjcyNDE3IiwgIkJlbGFydXMiIF0sCglbICIyNDgxIiwgIkJvIiwgIldhbGxzIiwgIkY0TSA4WDgiLCAiTGF0dmlhIiBdLAoJWyAiMjQ4MiIsICJKYW1hbCIsICJBZGFtcyIsICJOOVggM0EyIiwgIlNwYWluIiBdLAoJWyAiMjQ4MyIsICJTaWxhcyIsICJHYXJkbmVyIiwgIjI1MjU5IiwgIkZyZW5jaCBHdWlhbmEiIF0sCglbICIyNDg0IiwgIkFsYWRkaW4iLCAiTW9yaW4iLCAiNDUxNzkiLCAiU3dlZGVuIiBdLAoJWyAiMjQ4NSIsICJEYXduIiwgIkdyYW50IiwgIjUzNjEzIiwgIkdyZW5hZGEiIF0sCglbICIyNDg2IiwgIkZvcnJlc3QiLCAiR2F5IiwgIjUzNjA2IiwgIkNheW1hbiBJc2xhbmRzIiBdLAoJWyAiMjQ4NyIsICJMYXZpbmlhIiwgIk11cnBoeSIsICJTNUwgNlg5IiwgIlR1cmtleSIgXSwKCVsgIjI0ODgiLCAiU3lsdmlhIiwgIldvbGZlIiwgIjM3MjgwIiwgIkluZG9uZXNpYSIgXSwKCVsgIjI0ODkiLCAiV3ludGVyIiwgIkFka2lucyIsICIzNzM5MSIsICJSdXNzaWFuIEZlZGVyYXRpb24iIF0sCglbICIyNDkwIiwgIklvbGEiLCAiRnJhbmsiLCAiSTlIIDFLNyIsICJOaWdlcmlhIiBdLAoJWyAiMjQ5MSIsICJFbW1hbnVlbCIsICJIZXN0ZXIiLCAiWjZFIDNJNCIsICJHdWluZWEiIF0sCglbICIyNDkyIiwgIkthcmluYSIsICJDaHJpc3RpYW4iLCAiVjhNIDZGMyIsICJIb25kdXJhcyIgXSwKCVsgIjI0OTMiLCAiTWFsY29sbSIsICJIb2xkZW4iLCAiSTdKIDZVNyIsICJBdXN0cmlhIiBdLAoJWyAiMjQ5NCIsICJNb2FuYSIsICJIb2xtZXMiLCAiODA0MDIiLCAiSXNyYWVsIiBdLAoJWyAiMjQ5NSIsICJSYW1vbmEiLCAiSGV3aXR0IiwgIlU2QiA3QTYiLCAiR3VhZGVsb3VwZSIgXSwKCVsgIjI0OTYiLCAiTmljaG9sYXMiLCAiVGVycnkiLCAiVjhKIDVEOSIsICJDb3N0YSBSaWNhIiBdLAoJWyAiMjQ5NyIsICJFcmljYSIsICJEdW5sYXAiLCAiOTE1OTYiLCAiS2F6YWtoc3RhbiIgXSwKCVsgIjI0OTgiLCAiTG9nYW4iLCAiSGFycGVyIiwgIlI3ViAzVDUiLCAiR3VpbmVhLWJpc3NhdSIgXSwKCVsgIjI0OTkiLCAiQmVydCIsICJPcnRlZ2EiLCAiNzQ1NTciLCAiUGFyYWd1YXkiIF0sCglbICIyNTAwIiwgIkNhbWVyb24iLCAiT3J0aXoiLCAiUDlDIDVCNiIsICJFcml0cmVhIiBdCl0gfQ==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/media/data/server_processing.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCS8qICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICoKCSAqIEVhc3kgc2V0IHZhcmlhYmxlcwoJICovCgkKCS8qIEFycmF5IG9mIGRhdGFiYXNlIGNvbHVtbnMgd2hpY2ggc2hvdWxkIGJlIHJlYWQgYW5kIHNlbnQgYmFjayB0byBEYXRhVGFibGVzLiBVc2UgYSBzcGFjZSB3aGVyZQoJICogeW91IHdhbnQgdG8gaW5zZXJ0IGEgbm9uLWRhdGFiYXNlIGZpZWxkIChmb3IgZXhhbXBsZSBhIGNvdW50ZXIgb3Igc3RhdGljIGltYWdlKQoJICovCgkkYUNvbHVtbnMgPSBhcnJheSggJ2lkJywgJ2ZpcnN0bmFtZScsICdzdXJuYW1lJywgJ3ppcCcsICdjb3VudHJ5JyApOwoJCgkvKiBJbmRleGVkIGNvbHVtbiAodXNlZCBmb3IgZmFzdCBhbmQgYWNjdXJhdGUgdGFibGUgY2FyZGluYWxpdHkpICovCgkkc0luZGV4Q29sdW1uID0gImlkIjsKCQoJLyogREIgdGFibGUgdG8gdXNlICovCgkkc1RhYmxlID0gIm1hc3NpdmUiOwoJCgkvKiBEYXRhYmFzZSBjb25uZWN0aW9uIGluZm9ybWF0aW9uICovCgkkZ2FTcWxbJ3VzZXInXSAgICAgICA9ICIiOwoJJGdhU3FsWydwYXNzd29yZCddICAgPSAiIjsKCSRnYVNxbFsnZGInXSAgICAgICAgID0gIiI7CgkkZ2FTcWxbJ3NlcnZlciddICAgICA9ICJsb2NhbGhvc3QiOwoJCgkvKiBSRU1PVkUgVEhJUyBMSU5FIChpdCBqdXN0IGluY2x1ZGVzIG15IFNRTCBjb25uZWN0aW9uIHVzZXIvcGFzcykgKi8KCWluY2x1ZGUoICRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10uIi9kYXRhdGFibGVzL215c3FsLnBocCIgKTsKCQoJCgkvKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqCgkgKiBJZiB5b3UganVzdCB3YW50IHRvIHVzZSB0aGUgYmFzaWMgY29uZmlndXJhdGlvbiBmb3IgRGF0YVRhYmxlcyB3aXRoIFBIUCBzZXJ2ZXItc2lkZSwgdGhlcmUgaXMKCSAqIG5vIG5lZWQgdG8gZWRpdCBiZWxvdyB0aGlzIGxpbmUKCSAqLwoJCgkvKiAKCSAqIE15U1FMIGNvbm5lY3Rpb24KCSAqLwoJJGdhU3FsWydsaW5rJ10gPSAgbXlzcWxfcGNvbm5lY3QoICRnYVNxbFsnc2VydmVyJ10sICRnYVNxbFsndXNlciddLCAkZ2FTcWxbJ3Bhc3N3b3JkJ10gICkgb3IKCQlkaWUoICdDb3VsZCBub3Qgb3BlbiBjb25uZWN0aW9uIHRvIHNlcnZlcicgKTsKCQoJbXlzcWxfc2VsZWN0X2RiKCAkZ2FTcWxbJ2RiJ10sICRnYVNxbFsnbGluayddICkgb3IgCgkJZGllKCAnQ291bGQgbm90IHNlbGVjdCBkYXRhYmFzZSAnLiAkZ2FTcWxbJ2RiJ10gKTsKCQoJCgkvKiAKCSAqIFBhZ2luZwoJICovCgkkc0xpbWl0ID0gIiI7CglpZiAoIGlzc2V0KCAkX0dFVFsnaURpc3BsYXlTdGFydCddICkgJiYgJF9HRVRbJ2lEaXNwbGF5TGVuZ3RoJ10gIT0gJy0xJyApCgl7CgkJJHNMaW1pdCA9ICJMSU1JVCAiLm15c3FsX3JlYWxfZXNjYXBlX3N0cmluZyggJF9HRVRbJ2lEaXNwbGF5U3RhcnQnXSApLiIsICIuCgkJCW15c3FsX3JlYWxfZXNjYXBlX3N0cmluZyggJF9HRVRbJ2lEaXNwbGF5TGVuZ3RoJ10gKTsKCX0KCQoJCgkvKgoJICogT3JkZXJpbmcKCSAqLwoJJHNPcmRlciA9ICIiOwoJaWYgKCBpc3NldCggJF9HRVRbJ2lTb3J0Q29sXzAnXSApICkKCXsKCQkkc09yZGVyID0gIk9SREVSIEJZICAiOwoJCWZvciAoICRpPTAgOyAkaTxpbnR2YWwoICRfR0VUWydpU29ydGluZ0NvbHMnXSApIDsgJGkrKyApCgkJewoJCQlpZiAoICRfR0VUWyAnYlNvcnRhYmxlXycuaW50dmFsKCRfR0VUWydpU29ydENvbF8nLiRpXSkgXSA9PSAidHJ1ZSIgKQoJCQl7CgkJCQkkc09yZGVyIC49ICRhQ29sdW1uc1sgaW50dmFsKCAkX0dFVFsnaVNvcnRDb2xfJy4kaV0gKSBdLiIKCQkJCSAJIi5teXNxbF9yZWFsX2VzY2FwZV9zdHJpbmcoICRfR0VUWydzU29ydERpcl8nLiRpXSApIC4iLCAiOwoJCQl9CgkJfQoJCQoJCSRzT3JkZXIgPSBzdWJzdHJfcmVwbGFjZSggJHNPcmRlciwgIiIsIC0yICk7CgkJaWYgKCAkc09yZGVyID09ICJPUkRFUiBCWSIgKQoJCXsKCQkJJHNPcmRlciA9ICIiOwoJCX0KCX0KCQoJCgkvKiAKCSAqIEZpbHRlcmluZwoJICogTk9URSB0aGlzIGRvZXMgbm90IG1hdGNoIHRoZSBidWlsdC1pbiBEYXRhVGFibGVzIGZpbHRlcmluZyB3aGljaCBkb2VzIGl0CgkgKiB3b3JkIGJ5IHdvcmQgb24gYW55IGZpZWxkLiBJdCdzIHBvc3NpYmxlIHRvIGRvIGhlcmUsIGJ1dCBjb25jZXJuZWQgYWJvdXQgZWZmaWNpZW5jeQoJICogb24gdmVyeSBsYXJnZSB0YWJsZXMsIGFuZCBNeVNRTCdzIHJlZ2V4IGZ1bmN0aW9uYWxpdHkgaXMgdmVyeSBsaW1pdGVkCgkgKi8KCSRzV2hlcmUgPSAiIjsKCWlmICggaXNzZXQoJF9HRVRbJ3NTZWFyY2gnXSkgJiYgJF9HRVRbJ3NTZWFyY2gnXSAhPSAiIiApCgl7CgkJJHNXaGVyZSA9ICJXSEVSRSAoIjsKCQlmb3IgKCAkaT0wIDsgJGk8Y291bnQoJGFDb2x1bW5zKSA7ICRpKysgKQoJCXsKCQkJJHNXaGVyZSAuPSAkYUNvbHVtbnNbJGldLiIgTElLRSAnJSIubXlzcWxfcmVhbF9lc2NhcGVfc3RyaW5nKCAkX0dFVFsnc1NlYXJjaCddICkuIiUnIE9SICI7CgkJfQoJCSRzV2hlcmUgPSBzdWJzdHJfcmVwbGFjZSggJHNXaGVyZSwgIiIsIC0zICk7CgkJJHNXaGVyZSAuPSAnKSc7Cgl9CgkKCS8qIEluZGl2aWR1YWwgY29sdW1uIGZpbHRlcmluZyAqLwoJZm9yICggJGk9MCA7ICRpPGNvdW50KCRhQ29sdW1ucykgOyAkaSsrICkKCXsKCQlpZiAoIGlzc2V0KCRfR0VUWydiU2VhcmNoYWJsZV8nLiRpXSkgJiYgJF9HRVRbJ2JTZWFyY2hhYmxlXycuJGldID09ICJ0cnVlIiAmJiAkX0dFVFsnc1NlYXJjaF8nLiRpXSAhPSAnJyApCgkJewoJCQlpZiAoICRzV2hlcmUgPT0gIiIgKQoJCQl7CgkJCQkkc1doZXJlID0gIldIRVJFICI7CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQkkc1doZXJlIC49ICIgQU5EICI7CgkJCX0KCQkJJHNXaGVyZSAuPSAkYUNvbHVtbnNbJGldLiIgTElLRSAnJSIubXlzcWxfcmVhbF9lc2NhcGVfc3RyaW5nKCRfR0VUWydzU2VhcmNoXycuJGldKS4iJScgIjsKCQl9Cgl9CgkKCQoJLyoKCSAqIFNRTCBxdWVyaWVzCgkgKiBHZXQgZGF0YSB0byBkaXNwbGF5CgkgKi8KCSRzUXVlcnkgPSAiCgkJU0VMRUNUIFNRTF9DQUxDX0ZPVU5EX1JPV1MgIi5zdHJfcmVwbGFjZSgiICwgIiwgIiAiLCBpbXBsb2RlKCIsICIsICRhQ29sdW1ucykpLiIKCQlGUk9NICAgJHNUYWJsZQoJCSRzV2hlcmUKCQkkc09yZGVyCgkJJHNMaW1pdAoJIjsKCSRyUmVzdWx0ID0gbXlzcWxfcXVlcnkoICRzUXVlcnksICRnYVNxbFsnbGluayddICkgb3IgZGllKG15c3FsX2Vycm9yKCkpOwoJCgkvKiBEYXRhIHNldCBsZW5ndGggYWZ0ZXIgZmlsdGVyaW5nICovCgkkc1F1ZXJ5ID0gIgoJCVNFTEVDVCBGT1VORF9ST1dTKCkKCSI7CgkkclJlc3VsdEZpbHRlclRvdGFsID0gbXlzcWxfcXVlcnkoICRzUXVlcnksICRnYVNxbFsnbGluayddICkgb3IgZGllKG15c3FsX2Vycm9yKCkpOwoJJGFSZXN1bHRGaWx0ZXJUb3RhbCA9IG15c3FsX2ZldGNoX2FycmF5KCRyUmVzdWx0RmlsdGVyVG90YWwpOwoJJGlGaWx0ZXJlZFRvdGFsID0gJGFSZXN1bHRGaWx0ZXJUb3RhbFswXTsKCQoJLyogVG90YWwgZGF0YSBzZXQgbGVuZ3RoICovCgkkc1F1ZXJ5ID0gIgoJCVNFTEVDVCBDT1VOVCgiLiRzSW5kZXhDb2x1bW4uIikKCQlGUk9NICAgJHNUYWJsZQoJIjsKCSRyUmVzdWx0VG90YWwgPSBteXNxbF9xdWVyeSggJHNRdWVyeSwgJGdhU3FsWydsaW5rJ10gKSBvciBkaWUobXlzcWxfZXJyb3IoKSk7CgkkYVJlc3VsdFRvdGFsID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJSZXN1bHRUb3RhbCk7CgkkaVRvdGFsID0gJGFSZXN1bHRUb3RhbFswXTsKCQoJCgkvKgoJICogT3V0cHV0CgkgKi8KCSRvdXRwdXQgPSBhcnJheSgKCQkic0VjaG8iID0+IGludHZhbCgkX0dFVFsnc0VjaG8nXSksCgkJImlUb3RhbFJlY29yZHMiID0+ICRpVG90YWwsCgkJImlUb3RhbERpc3BsYXlSZWNvcmRzIiA9PiAkaUZpbHRlcmVkVG90YWwsCgkJImFhRGF0YSIgPT4gYXJyYXkoKQoJKTsKCQoJd2hpbGUgKCAkYVJvdyA9IG15c3FsX2ZldGNoX2FycmF5KCAkclJlc3VsdCApICkKCXsKCQkkcm93ID0gYXJyYXkoKTsKCQlmb3IgKCAkaT0wIDsgJGk8Y291bnQoJGFDb2x1bW5zKSA7ICRpKysgKQoJCXsKCQkJaWYgKCAkYUNvbHVtbnNbJGldID09ICJ2ZXJzaW9uIiApCgkJCXsKCQkJCS8qIFNwZWNpYWwgb3V0cHV0IGZvcm1hdHRpbmcgZm9yICd2ZXJzaW9uJyBjb2x1bW4gKi8KCQkJCSRyb3dbXSA9ICgkYVJvd1sgJGFDb2x1bW5zWyRpXSBdPT0iMCIpID8gJy0nIDogJGFSb3dbICRhQ29sdW1uc1skaV0gXTsKCQkJfQoJCQllbHNlIGlmICggJGFDb2x1bW5zWyRpXSAhPSAnICcgKQoJCQl7CgkJCQkvKiBHZW5lcmFsIG91dHB1dCAqLwoJCQkJJHJvd1tdID0gJGFSb3dbICRhQ29sdW1uc1skaV0gXTsKCQkJfQoJCX0KCQkkb3V0cHV0WydhYURhdGEnXVtdID0gJHJvdzsKCX0KCQoJZWNobyBqc29uX2VuY29kZSggJG91dHB1dCApOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/media/docs/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/media/docs/baed189d4a.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTx0aXRsZT5OYW1lc3BhY2U6IHMgLSBkb2N1bWVudGF0aW9uPC90aXRsZT4KICAKCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgoJCQlAaW1wb3J0ICJtZWRpYS9jc3MvZG9jLmNzcyI7CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9zaENvcmUuY3NzIjsKCQkJQGltcG9ydCAibWVkaWEvY3NzL3NoVGhlbWVEYXRhVGFibGVzLmNzcyI7CgkJPC9zdHlsZT4KCQoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL3NoQ29yZS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvc2hCcnVzaEpTY3JpcHQuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvZG9jLmpzIj48L3NjcmlwdD4KCTwvaGVhZD4KCTxib2R5PgoJCTxkaXYgY2xhc3M9ImZ3X2NvbnRhaW5lciI+CgkJCQoJCQkJPGEgbmFtZT0idG9wIj48L2E+CgkJCQk8ZGl2IGNsYXNzPSJmd19oZWFkZXIiPgoJCQkJCTxoMSBjbGFzcz0icGFnZS10aXRsZSI+TmFtZXNwYWNlOiBzPC9oMT4KCQkJCQk8aDIgY2xhc3M9ImFuY2VzdG9ycyI+QW5jZXN0cnk6IDxzcGFuIGNsYXNzPSJhbmNlc3RvcnMiPjxhIGhyZWY9IlNjcm9sbGVyLmh0bWwiPlNjcm9sbGVyPC9hPiM8L3NwYW4+IMK7IHM8L2gyPgoJCQkJCTxkaXYgY2xhc3M9InBhZ2UtaW5mbyI+CgkJCQkJCVNjcm9sbGVyIHYxLjEuMCBkb2N1bWVudGF0aW9uCgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCgkJCQkKCgkJCQk8ZGl2IGNsYXNzPSJmd19uYXYiPgoJCQkJCTxoMj5OYXZpZ2F0aW9uPC9oMj4KCQkJCQk8dWw+CgkJCQkJPGxpPjxhIGhyZWY9IiN0b3AiPk92ZXJ2aWV3PC9hPjwvbGk+CgkJCQkJPGxpPjxhIGhyZWY9IiNzdW1tYXJ5Ij5TdW1tYXJ5PC9hPjxkaXY+PGEgaHJlZj0iI3N1bW1hcnlfcHJvcGVydGllcyI+UHJvcGVydGllczwvYT48L2Rpdj48L2xpPjxsaT48YSBocmVmPSIjZGV0YWlscyI+RGV0YWlsczwvYT48ZGl2PjxhIGhyZWY9IiNkZXRhaWxzX3Byb3BlcnRpZXMiPlByb3BlcnRpZXM8L2E+PC9kaXY+PC9saT48L3VsPgoJCQkJCTxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDEwcHg7Ij4KCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2hvd19wcml2YXRlIiB2YWx1ZT0iMCI+CgkJCQkJCTxzcGFuIGlkPSJwcml2YXRlX2xhYmVsIj5IaWRpbmc8L3NwYW4+IHByaXZhdGUgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9InByaXZhdGVfdG9nZ2xlIiBocmVmPSIiPnRvZ2dsZTwvYT4pCgkJCQkJCTwvc3Bhbj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2PgoJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzaG93X2V4dGVuZGVkIiB2YWx1ZT0iMSI+CgkJCQkJCTxzcGFuIGlkPSJleHRlbmRlZF9sYWJlbCI+U2hvd2luZzwvc3Bhbj4gZXh0ZW5kZWQgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9ImV4dGVuZGVkX3RvZ2dsZSIgaHJlZj0iIj50b2dnbGU8L2E+KQoJCQkJCQk8L3NwYW4+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCgkJCQk8ZGl2IGNsYXNzPSJmd19jb250ZW50Ij4KCQkJCQk8YSBuYW1lPSJvdmVydmlldyI+PC9hPgoJCQkJCTxkaXYgY2xhc3M9ImRvY19vdmVydmlldyI+CgkJCQkJCTxkaXYgY2xhc3M9Im5hdl9ibG9ja2VyIj48L2Rpdj4KCQkJCQkJPHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5TZXR0aW5ncyBvYmplY3Qgd2hpY2ggY29udGFpbnMgY3VzdG9taXNhYmxlIGluZm9ybWF0aW9uIGZvciB0aGUgU2Nyb2xsZXIgaW5zdGFuY2U8L3A+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8aDMgY2xhc3M9InN1YnNlY3Rpb24tdGl0bGUiPkV4dGVuZHM8L2gzPgo8dWw+Cgk8bGk+U2Nyb2xsZXIuREVGQVVMVFM8L2xpPgo8L3VsPgoKCQkJCQk8L2Rpdj4KCgkJCQkJCgkJCQkJPGRpdiBjbGFzcz0iZG9jX3N1bW1hcnkiPgoJCQkJCQk8YSBuYW1lPSJzdW1tYXJ5Ij48L2E+CgkJCQkJCTxoMj5TdW1tYXJ5PC9oMj4KCgkJCQkJCTxkaXYgY2xhc3M9ImRvY19ncm91cCI+PGEgbmFtZT0ic3VtbWFyeV9wcm9wZXJ0aWVzIj48L2E+PGgzIGNsYXNzPSJzdWJzZWN0aW9uLXRpdGxlIj5Qcm9wZXJ0aWVzPC9oMz4KCjxkbD4KICAgIDxkdCBjbGFzcz0iICBldmVuIj48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI2F1dG9IZWlnaHQiPmF1dG9IZWlnaHQ8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gOmJvb2w8L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgIGV2ZW4iPkF1dG8gcm93IGhlaWdodCBvciBub3QgaW5kaWNhdG9yPC9kZD48ZHQgY2xhc3M9IiAgb2RkIj48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI2RyYXdUTyI+ZHJhd1RPPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDppbnQ8L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgIG9kZCI+c2V0VGltZW91dCByZWZlcmVuY2UgZm9yIHRoZSByZWRyYXcsIHVzZWQgd2hlbiBzZXJ2ZXItc2lkZSBwcm9jZXNzaW5nIGlzIGVuYWJsZWQgaW4gdGhlCkRhdGFUYWJsZXMgaW4gb3JkZXIgdG8gcHJldmVudCBEb1NpbmcgdGhlIHNlcnZlcjwvZGQ+PGR0IGNsYXNzPSIgIGV2ZW4iPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+Jmx0O3N0YXRpYz4gPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjZHQiPmR0PC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDpvYmplY3Q8L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgIGV2ZW4iPkRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0PC9kZD48ZHQgY2xhc3M9IiAgb2RkIj48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI3Jvd0hlaWdodCI+cm93SGVpZ2h0PC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDppbnQ8L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgIG9kZCI+SGVpZ2h0IG9mIHJvd3MgaW4gdGhlIHRhYmxlPC9kZD48ZHQgY2xhc3M9IiAgZXZlbiI+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4mbHQ7c3RhdGljPiA8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNzdGF0ZVRPIj5zdGF0ZVRPPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDppbnQ8L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgIGV2ZW4iPnNldFRpbWVvdXQgcmVmZXJlbmNlIGZvciBzdGF0ZSBzYXZpbmcsIHVzZWQgd2hlbiBzdGF0ZSBzYXZpbmcgaXMgZW5hYmxlZCBpbiB0aGUgRGF0YVRhYmxlCmFuZCB3aGVuIHRoZSB1c2VyIHNjcm9sbHMgdGhlIHZpZXdwb3J0IGluIG9yZGVyIHRvIHN0b3AgdGhlIGNvb2tpZSBzZXQgdGFraW5nIHRvbyBtdWNoCkNQVSE8L2RkPjxkdCBjbGFzcz0iICBvZGQiPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+Jmx0O3N0YXRpYz4gPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjdGFibGVCb3R0b20iPnRhYmxlQm90dG9tPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDppbnQ8L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgIG9kZCI+UGl4ZWwgbG9jYXRpb24gb2YgdGhlIGJvdHRvbSBvZiB0aGUgZHJhd24gdGFibGUgaW4gdGhlIHZpZXdwb3J0PC9kZD48ZHQgY2xhc3M9IiAgZXZlbiI+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4mbHQ7c3RhdGljPiA8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiN0YWJsZVRvcCI+dGFibGVUb3A8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gOmludDwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiAgZXZlbiI+UGl4ZWwgbG9jYXRpb24gb2YgdGhlIHRvcCBvZiB0aGUgZHJhd24gdGFibGUgaW4gdGhlIHZpZXdwb3J0PC9kZD48ZHQgY2xhc3M9IiAgb2RkIj48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI3ZpZXdwb3J0SGVpZ2h0Ij52aWV3cG9ydEhlaWdodDwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6aW50PC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iICBvZGQiPlBpeGVsIGhlaWdodCBvZiB0aGUgdmlld3BvcnQ8L2RkPjxkdCBjbGFzcz0iICBldmVuIj48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI3ZpZXdwb3J0Um93cyI+dmlld3BvcnRSb3dzPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDppbnQ8L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgIGV2ZW4iPk51bWJlciBvZiByb3dzIGNhbGN1bGF0ZWQgYXMgdmlzaWJsZSBpbiB0aGUgdmlzaWJsZSB2aWV3cG9ydDwvZGQ+CjwvZGw+PC9kaXY+CgkJCQkJPC9kaXY+CgkJCQkJCgoKCQkJCQkKCQkJCQk8ZGl2IGNsYXNzPSJkb2NfZGV0YWlscyI+CgkJCQkJCTxhIG5hbWU9ImRldGFpbHMiPjwvYT4KCQkJCQkJPGgyPkRldGFpbHM8L2gyPgoJCQkJCQk8ZGl2IGNsYXNzPSJkb2NfZ3JvdXAiPjxhIG5hbWU9ImRldGFpbHNfcHJvcGVydGllcyI+PC9hPjxoMyBjbGFzcz0ic3Vic2VjdGlvbi10aXRsZSI+UHJvcGVydGllczwvaDM+CjxkbD4KICAgIDxkdCBjbGFzcz0iICBldmVuIj48YSBuYW1lPSJhdXRvSGVpZ2h0Ij48L2E+PGEgbmFtZT0iYXV0b0hlaWdodF9kZXRhaWxzIj48L2E+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4mbHQ7c3RhdGljPiA8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNhdXRvSGVpZ2h0Ij5hdXRvSGVpZ2h0PC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDpib29sPC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iICBldmVuIj48cCBjbGFzcz0iZGVzY3JpcHRpb24iPkF1dG8gcm93IGhlaWdodCBvciBub3QgaW5kaWNhdG9yPC9wPjxkaXYgY2xhc3M9ImNvbGxhcHNlX2RldGFpbHMiPjxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KPC9kaXY+PC9kZD48ZHQgY2xhc3M9IiAgb2RkIj48YSBuYW1lPSJkcmF3VE8iPjwvYT48YSBuYW1lPSJkcmF3VE9fZGV0YWlscyI+PC9hPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+Jmx0O3N0YXRpYz4gPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjZHJhd1RPIj5kcmF3VE88L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gOmludDwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiAgb2RkIj48cCBjbGFzcz0iZGVzY3JpcHRpb24iPnNldFRpbWVvdXQgcmVmZXJlbmNlIGZvciB0aGUgcmVkcmF3LCB1c2VkIHdoZW4gc2VydmVyLXNpZGUgcHJvY2Vzc2luZyBpcyBlbmFibGVkIGluIHRoZQpEYXRhVGFibGVzIGluIG9yZGVyIHRvIHByZXZlbnQgRG9TaW5nIHRoZSBzZXJ2ZXI8L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8L2Rpdj48L2RkPjxkdCBjbGFzcz0iICBldmVuIj48YSBuYW1lPSJkdCI+PC9hPjxhIG5hbWU9ImR0X2RldGFpbHMiPjwvYT48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI2R0Ij5kdDwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6b2JqZWN0PC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iICBldmVuIj48cCBjbGFzcz0iZGVzY3JpcHRpb24iPkRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0PC9wPjxkaXYgY2xhc3M9ImNvbGxhcHNlX2RldGFpbHMiPjxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KPC9kaXY+PC9kZD48ZHQgY2xhc3M9IiAgb2RkIj48YSBuYW1lPSJyb3dIZWlnaHQiPjwvYT48YSBuYW1lPSJyb3dIZWlnaHRfZGV0YWlscyI+PC9hPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+Jmx0O3N0YXRpYz4gPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjcm93SGVpZ2h0Ij5yb3dIZWlnaHQ8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gOmludDwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiAgb2RkIj48cCBjbGFzcz0iZGVzY3JpcHRpb24iPkhlaWdodCBvZiByb3dzIGluIHRoZSB0YWJsZTwvcD48ZGl2IGNsYXNzPSJjb2xsYXBzZV9kZXRhaWxzIj48ZGwgY2xhc3M9ImRldGFpbHMiPgoJCjwvZGw+CjwvZGl2PjwvZGQ+PGR0IGNsYXNzPSIgIGV2ZW4iPjxhIG5hbWU9InN0YXRlVE8iPjwvYT48YSBuYW1lPSJzdGF0ZVRPX2RldGFpbHMiPjwvYT48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI3N0YXRlVE8iPnN0YXRlVE88L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gOmludDwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiAgZXZlbiI+PHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5zZXRUaW1lb3V0IHJlZmVyZW5jZSBmb3Igc3RhdGUgc2F2aW5nLCB1c2VkIHdoZW4gc3RhdGUgc2F2aW5nIGlzIGVuYWJsZWQgaW4gdGhlIERhdGFUYWJsZQphbmQgd2hlbiB0aGUgdXNlciBzY3JvbGxzIHRoZSB2aWV3cG9ydCBpbiBvcmRlciB0byBzdG9wIHRoZSBjb29raWUgc2V0IHRha2luZyB0b28gbXVjaApDUFUhPC9wPjxkaXYgY2xhc3M9ImNvbGxhcHNlX2RldGFpbHMiPjxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KPC9kaXY+PC9kZD48ZHQgY2xhc3M9IiAgb2RkIj48YSBuYW1lPSJ0YWJsZUJvdHRvbSI+PC9hPjxhIG5hbWU9InRhYmxlQm90dG9tX2RldGFpbHMiPjwvYT48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI3RhYmxlQm90dG9tIj50YWJsZUJvdHRvbTwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6aW50PC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iICBvZGQiPjxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+UGl4ZWwgbG9jYXRpb24gb2YgdGhlIGJvdHRvbSBvZiB0aGUgZHJhd24gdGFibGUgaW4gdGhlIHZpZXdwb3J0PC9wPjxkaXYgY2xhc3M9ImNvbGxhcHNlX2RldGFpbHMiPjxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KPC9kaXY+PC9kZD48ZHQgY2xhc3M9IiAgZXZlbiI+PGEgbmFtZT0idGFibGVUb3AiPjwvYT48YSBuYW1lPSJ0YWJsZVRvcF9kZXRhaWxzIj48L2E+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4mbHQ7c3RhdGljPiA8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiN0YWJsZVRvcCI+dGFibGVUb3A8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gOmludDwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiAgZXZlbiI+PHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5QaXhlbCBsb2NhdGlvbiBvZiB0aGUgdG9wIG9mIHRoZSBkcmF3biB0YWJsZSBpbiB0aGUgdmlld3BvcnQ8L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8L2Rpdj48L2RkPjxkdCBjbGFzcz0iICBvZGQiPjxhIG5hbWU9InZpZXdwb3J0SGVpZ2h0Ij48L2E+PGEgbmFtZT0idmlld3BvcnRIZWlnaHRfZGV0YWlscyI+PC9hPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+Jmx0O3N0YXRpYz4gPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjdmlld3BvcnRIZWlnaHQiPnZpZXdwb3J0SGVpZ2h0PC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDppbnQ8L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgIG9kZCI+PHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5QaXhlbCBoZWlnaHQgb2YgdGhlIHZpZXdwb3J0PC9wPjxkaXYgY2xhc3M9ImNvbGxhcHNlX2RldGFpbHMiPjxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KPC9kaXY+PC9kZD48ZHQgY2xhc3M9IiAgZXZlbiI+PGEgbmFtZT0idmlld3BvcnRSb3dzIj48L2E+PGEgbmFtZT0idmlld3BvcnRSb3dzX2RldGFpbHMiPjwvYT48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI3ZpZXdwb3J0Um93cyI+dmlld3BvcnRSb3dzPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDppbnQ8L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgIGV2ZW4iPjxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+TnVtYmVyIG9mIHJvd3MgY2FsY3VsYXRlZCBhcyB2aXNpYmxlIGluIHRoZSB2aXNpYmxlIHZpZXdwb3J0PC9wPjxkaXYgY2xhc3M9ImNvbGxhcHNlX2RldGFpbHMiPjxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KPC9kaXY+PC9kZD4KPC9kbD48L2Rpdj4KICAgCQkJCQk8L2Rpdj4KCQkJCQoJCTwvZGl2PgoKCQk8ZGl2IGNsYXNzPSJmd19mb290ZXIiPgoJCQlTY3JvbGxlcjogQ29weXJpZ2h0IDIwMTEtMjAxMiBBbGxhbiBKYXJkaW5lLCBhbGwgcmlnaHRzIHJlc2VydmVkPGJyPgoKCQkJRG9jdW1lbnRhdGlvbiBnZW5lcmF0ZWQgYnkgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL21pY21hdGgvSlNEb2MiPkpTRG9jIDM8L2E+IG9uCgkJCTh0aCBBdWcgMjAxMiAtIDIyOjU0CgkJCXdpdGggdGhlIDxhIGhyZWY9Imh0dHA6Ly9kYXRhdGFibGVzLm5ldC8iPkRhdGFUYWJsZXM8L2E+IHRlbXBsYXRlLgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/media/docs/c6053fac6b.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTx0aXRsZT5OYW1lc3BhY2U6IGRvbSAtIGRvY3VtZW50YXRpb248L3RpdGxlPgogIAoJCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9kb2MuY3NzIjsKCQkJQGltcG9ydCAibWVkaWEvY3NzL3NoQ29yZS5jc3MiOwoJCQlAaW1wb3J0ICJtZWRpYS9jc3Mvc2hUaGVtZURhdGFUYWJsZXMuY3NzIjsKCQk8L3N0eWxlPgoJCgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvc2hDb3JlLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9zaEJydXNoSlNjcmlwdC5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvanF1ZXJ5LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9kb2MuanMiPjwvc2NyaXB0PgoJPC9oZWFkPgoJPGJvZHk+CgkJPGRpdiBjbGFzcz0iZndfY29udGFpbmVyIj4KCQkJCgkJCQk8YSBuYW1lPSJ0b3AiPjwvYT4KCQkJCTxkaXYgY2xhc3M9ImZ3X2hlYWRlciI+CgkJCQkJPGgxIGNsYXNzPSJwYWdlLXRpdGxlIj5OYW1lc3BhY2U6IGRvbTwvaDE+CgkJCQkJPGgyIGNsYXNzPSJhbmNlc3RvcnMiPkFuY2VzdHJ5OiA8c3BhbiBjbGFzcz0iYW5jZXN0b3JzIj48YSBocmVmPSJTY3JvbGxlci5odG1sIj5TY3JvbGxlcjwvYT4jPC9zcGFuPiDCuyBkb208L2gyPgoJCQkJCTxkaXYgY2xhc3M9InBhZ2UtaW5mbyI+CgkJCQkJCVNjcm9sbGVyIHYxLjEuMCBkb2N1bWVudGF0aW9uCgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCgkJCQkKCgkJCQk8ZGl2IGNsYXNzPSJmd19uYXYiPgoJCQkJCTxoMj5OYXZpZ2F0aW9uPC9oMj4KCQkJCQk8dWw+CgkJCQkJPGxpPjxhIGhyZWY9IiN0b3AiPk92ZXJ2aWV3PC9hPjwvbGk+CgkJCQkJPGxpPjxhIGhyZWY9IiNzdW1tYXJ5Ij5TdW1tYXJ5PC9hPjxkaXY+PC9kaXY+PC9saT48bGk+PGEgaHJlZj0iI2RldGFpbHMiPkRldGFpbHM8L2E+PGRpdj48L2Rpdj48L2xpPjwvdWw+CgkJCQkJPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogMTBweDsiPgoJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzaG93X3ByaXZhdGUiIHZhbHVlPSIwIj4KCQkJCQkJPHNwYW4gaWQ9InByaXZhdGVfbGFiZWwiPkhpZGluZzwvc3Bhbj4gcHJpdmF0ZSBlbGVtZW50cyAKCQkJCQkJCSg8YSBpZD0icHJpdmF0ZV90b2dnbGUiIGhyZWY9IiI+dG9nZ2xlPC9hPikKCQkJCQkJPC9zcGFuPgoJCQkJCTwvZGl2PgoJCQkJCTxkaXY+CgkJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNob3dfZXh0ZW5kZWQiIHZhbHVlPSIxIj4KCQkJCQkJPHNwYW4gaWQ9ImV4dGVuZGVkX2xhYmVsIj5TaG93aW5nPC9zcGFuPiBleHRlbmRlZCBlbGVtZW50cyAKCQkJCQkJCSg8YSBpZD0iZXh0ZW5kZWRfdG9nZ2xlIiBocmVmPSIiPnRvZ2dsZTwvYT4pCgkJCQkJCTwvc3Bhbj4KCQkJCQk8L2Rpdj4KCQkJCTwvZGl2PgoKCQkJCTxkaXYgY2xhc3M9ImZ3X2NvbnRlbnQiPgoJCQkJCTxhIG5hbWU9Im92ZXJ2aWV3Ij48L2E+CgkJCQkJPGRpdiBjbGFzcz0iZG9jX292ZXJ2aWV3Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibmF2X2Jsb2NrZXIiPjwvZGl2PgoJCQkJCQk8cCBjbGFzcz0iZGVzY3JpcHRpb24iPkRPTSBlbGVtZW50cyB1c2VkIGJ5IHRoZSBjbGFzcyBpbnN0YW5jZTwvcD48ZGwgY2xhc3M9ImRldGFpbHMiPgoJCjwvZGw+CgoJCQkJCTwvZGl2PgoKCQkJCQkKCgoJCQkJCQoJCTwvZGl2PgoKCQk8ZGl2IGNsYXNzPSJmd19mb290ZXIiPgoJCQlTY3JvbGxlcjogQ29weXJpZ2h0IDIwMTEtMjAxMiBBbGxhbiBKYXJkaW5lLCBhbGwgcmlnaHRzIHJlc2VydmVkPGJyPgoKCQkJRG9jdW1lbnRhdGlvbiBnZW5lcmF0ZWQgYnkgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL21pY21hdGgvSlNEb2MiPkpTRG9jIDM8L2E+IG9uCgkJCTh0aCBBdWcgMjAxMiAtIDIyOjU0CgkJCXdpdGggdGhlIDxhIGhyZWY9Imh0dHA6Ly9kYXRhdGFibGVzLm5ldC8iPkRhdGFUYWJsZXM8L2E+IHRlbXBsYXRlLgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/media/docs/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTx0aXRsZT5UYWJsZSBvZiBDb250ZW50cyAtIGRvY3VtZW50YXRpb248L3RpdGxlPgogIAoJCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9kb2MuY3NzIjsKCQkJQGltcG9ydCAibWVkaWEvY3NzL3NoQ29yZS5jc3MiOwoJCQlAaW1wb3J0ICJtZWRpYS9jc3Mvc2hUaGVtZURhdGFUYWJsZXMuY3NzIjsKCQk8L3N0eWxlPgoJCgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvc2hDb3JlLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9zaEJydXNoSlNjcmlwdC5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvanF1ZXJ5LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9kb2MuanMiPjwvc2NyaXB0PgoJPC9oZWFkPgoJPGJvZHk+CgkJPGRpdiBjbGFzcz0iZndfY29udGFpbmVyIj4KCQkJPGEgbmFtZT0idG9wIj48L2E+CgkJCTxkaXYgY2xhc3M9ImZ3X2hlYWRlciI+CgkJCTwvZGl2PgoKCQkJPGRpdiBjbGFzcz0iZndfY29udGVudCI+CgkJCQk8aDMgY2xhc3M9InN1YnNlY3Rpb24tdGl0bGUiPlRhYmxlIG9mIENvbnRlbnRzPC9oMz4KCQkJCTxkbD4KCQkJCQk8ZHQ+PGEgaHJlZj0iU2Nyb2xsZXIuaHRtbCI+U2Nyb2xsZXI8L2E+PC9kdD48ZGQ+U2Nyb2xsZXIgaXMgYSB2aXJ0dWFsIHJlbmRlcmluZyBwbHVnLWluIGZvciBEYXRhVGFibGVzIHdoaWNoIGFsbG93cyBsYXJnZQpkYXRhc2V0cyB0byBiZSBkcmF3biBvbiBzY3JlZW4gZXZlcnkgcXVpY2tseS4gV2hhdCB0aGUgdmlydHVhbCByZW5kZXJpbmcgbWVhbnMKaXMgdGhhdCBvbmx5IHRoZSB2aXNpYmxlIHBvcnRpb24gb2YgdGhlIHRhYmxlIChhbmQgYSBiaXQgdG8gZWl0aGVyIHNpZGUgdG8gbWFrZQp0aGUgc2Nyb2xsaW5nIHNtb290aCkgaXMgZHJhd24sIHdoaWxlIHRoZSBzY3JvbGxpbmcgY29udGFpbmVyIGdpdmVzIHRoZSAKdmlzdWFsIGltcHJlc3Npb24gdGhhdCB0aGUgd2hvbGUgdGFibGUgaXMgdmlzaWJsZS4gVGhpcyBpcyBkb25lIGJ5IG1ha2luZyB1c2UKb2YgdGhlIHBhZ2luYXRpb24gYWJpbGl0aWVzIG9mIERhdGFUYWJsZXMgYW5kIG1vdmluZyB0aGUgdGFibGUgYXJvdW5kIGluIHRoZQpzY3JvbGxpbmcgY29udGFpbmVyIERhdGFUYWJsZXMgYWRkcyB0byB0aGUgcGFnZS4gVGhlIHNjcm9sbGluZyBjb250YWluZXIgaXMKZm9yY2VkIHRvIHRoZSBoZWlnaHQgaXQgd291bGQgYmUgZm9yIHRoZSBmdWxsIHRhYmxlIGRpc3BsYXkgdXNpbmcgYW4gZXh0cmEgCmVsZW1lbnQuIDxicj48YnI+Tm90ZSB0aGF0IHJvd3MgaW4gdGhlIHRhYmxlIE1VU1QgYWxsIGJlIHRoZSBzYW1lIGhlaWdodC4gSW5mb3JtYXRpb24gaW4gYSBjZWxsCndoaWNoIGV4cGFuZHMgb24gdG8gbXVsdGlwbGUgbGluZXMgd2lsbCBjYXVzZSBzb21lIG9kZCBiZWhhdmlvdXIgaW4gdGhlIHNjcm9sbGluZy48YnI+PGJyPlNjcm9sbGVyIGlzIGluaXRpYWxpc2VkIGJ5IHNpbXBseSBpbmNsdWRpbmcgdGhlIGxldHRlciAnUycgaW4gdGhlIHNEb20gZm9yIHRoZQp0YWJsZSB5b3Ugd2FudCB0byBoYXZlIHRoaXMgZmVhdHVyZSBlbmFibGVkIG9uLiBOb3RlIHRoYXQgdGhlICdTJyBtdXN0IGNvbWUKQUZURVIgdGhlICd0JyBwYXJhbWV0ZXIgaW4gc0RvbS48YnI+PGJyPktleSBmZWF0dXJlcyBpbmNsdWRlOgogIDx1bCBjbGFzcz0ibGltaXRfbGVuZ3RoIj4KICAgIDxsaT5TcGVlZCEgVGhlIGFpbSBvZiBTY3JvbGxlciBmb3IgRGF0YVRhYmxlcyBpcyB0byBtYWtlIHJlbmRlcmluZyBsYXJnZSBkYXRhIHNldHMgZmFzdDwvbGk+CiAgICA8bGk+RnVsbCBjb21wYXRpYmlsaXR5IHdpdGggZGVmZXJyZWQgcmVuZGVyaW5nIGluIERhdGFUYWJsZXMgMS45IGZvciBtYXhpbXVtIHNwZWVkPC9saT4KICAgIDxsaT5Db3JyZWN0IHZpc3VhbCBzY3JvbGxpbmcgaW1wbGVtZW50YXRpb24sIHNpbWlsYXIgdG8gImluZmluaXRlIHNjcm9sbGluZyIgaW4gRGF0YVRhYmxlIGNvcmU8L2xpPgogICAgPGxpPkludGVncmF0aW9uIHdpdGggc3RhdGUgc2F2aW5nIGluIERhdGFUYWJsZXMgKHNjcm9sbGluZyBwb3NpdGlvbiBpcyBzYXZlZCk8L2xpPgogICAgPGxpPkVhc3kgdG8gdXNlPC9saT4KICA8L3VsPjwvZGQ+CgkJCQk8L2RsPgogICAJCQk8L2Rpdj4KCQk8L2Rpdj4KCgkJPGRpdiBjbGFzcz0iZndfZm9vdGVyIj4KCQkJU2Nyb2xsZXI6IENvcHlyaWdodCAyMDExLTIwMTIgQWxsYW4gSmFyZGluZSwgYWxsIHJpZ2h0cyByZXNlcnZlZDxicj4KCgkJCURvY3VtZW50YXRpb24gZ2VuZXJhdGVkIGJ5IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9taWNtYXRoL0pTRG9jIj5KU0RvYyAzPC9hPiBvbgoJCQk4dGggQXVnIDIwMTIgLSAyMjo1NAoJCQl3aXRoIHRoZSA8YSBocmVmPSJodHRwOi8vZGF0YXRhYmxlcy5uZXQvIj5EYXRhVGFibGVzPC9hPiB0ZW1wbGF0ZS4KCQk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/media/docs/media/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/media/docs/media/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/media/docs/media/css/doc.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKQ29weXJpZ2h0IChjKSAyMDA2LCBZYWhvbyEgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpDb2RlIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0QgTGljZW5zZToKaHR0cDovL2RldmVsb3Blci55YWhvby5uZXQveXVpL2xpY2Vuc2UudHh0CnZlcnNpb246IDAuMTIuMAoqLwpib2R5LGRpdixkbCxkdCxkZCx1bCxvbCxsaSxoMSxoMixoMyxoNCxoNSxoNixwcmUsZm9ybSxmaWVsZHNldCxpbnB1dCx0ZXh0YXJlYSxwLGJsb2NrcXVvdGUsdGgsdGR7bWFyZ2luOjA7cGFkZGluZzowO30KdGFibGV7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO2JvcmRlci1zcGFjaW5nOjA7fQpmaWVsZHNldCxpbWd7Ym9yZGVyOjA7fQphZGRyZXNzLGNhcHRpb24sY2l0ZSxjb2RlLGRmbixlbSxzdHJvbmcsdGgsdmFye2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDt9Cm9sLHVsIHtsaXN0LXN0eWxlOm5vbmU7fQpjYXB0aW9uLHRoIHt0ZXh0LWFsaWduOmxlZnQ7fQpoMSxoMixoMyxoNCxoNSxoNntmb250LXNpemU6MTAwJTtmb250LXdlaWdodDpub3JtYWw7fQpxOmJlZm9yZSxxOmFmdGVye2NvbnRlbnQ6Jyc7fQphYmJyLGFjcm9ueW0ge2JvcmRlcjowO30KCgpodG1sLCBib2R5IHsKCW1hcmdpbjogMDsKCXBhZGRpbmc6IDA7Cgl3aWR0aDogMTAwJTsKCWZvbnQ6IDE0cHgvMS40NWVtICJMdWNpZGEgR3JhbmRlIiwgVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsKCWNvbG9yOiAjMTExOwp9CgpkaXYuZndfY29udGFpbmVyIHsKCXdpZHRoOiA5ODBweDsKCXBhZGRpbmctdG9wOiAyZW07CgltYXJnaW46IDAgYXV0bzsKfQoKZGl2LmZ3X2hlYWRlciB7Cglwb3NpdGlvbjogcmVsYXRpdmU7Cn0KCmRpdi5md19jb250ZW50IHsKCXBhZGRpbmctdG9wOiAyZW07Cn0KCmRpdi5md19mb290ZXIgewoJcGFkZGluZy10b3A6IDRlbTsKCWZvbnQtc2l6ZTogNzUlOwoJdGV4dC1hbGlnbjogY2VudGVyOwp9CgoKCi50eXBlLXBhcmFtIHsKCQp9CgoudHlwZS1hdHRyIHsKCWZsb2F0OiByaWdodDsKCWNvbG9yOiAjOTk5Owp9CgoudHlwZS1uYW1lIHsKCWZvbnQtd2VpZ2h0OiBib2xkOwp9CgoudHlwZS1zaWcgewoJY29sb3I6ICM5OTk7Cn0KCi50eXBlLXBhcmFtIHsKCWNvbG9yOiAjRkY5OTk5Owp9CgoudHlwZS1yZXR1cm4gewoJY29sb3I6ICNGRjgwODA7Cn0KCi50eXBlLWJyYWNlIHsKCWNvbG9yOiAjMTExOwp9CgouZXhhbXBsZS1jb2RlIHsKCW1hcmdpbi1sZWZ0OiAzMHB4Owp9Ci5leGFtcGxlLWNvZGUgdGQuY29kZSB7Cglib3JkZXItdG9wOiAxcHggc29saWQgIzRFNkNBMyAhaW1wb3J0YW50Owp9CgoudHlwZS1hdWdtZW50ZWQgewoJcG9zaXRpb246IGFic29sdXRlOwoJbGVmdDogOHB4OwoJdG9wOiAwOwp9CgpkdCwgZGQgewoJcGFkZGluZzogMC40ZW0gMTBweDsKfQoKZHQgewoJcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDsKfQoKZGQgewoJcG9zaXRpb246IHJlbGF0aXZlOwoJcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDsKCXBhZGRpbmctbGVmdDogM2VtOwp9CgpkdC5ldmVuLCBkZC5ldmVuIHsKCWJhY2tncm91bmQtY29sb3I6IHdoaXRlOwp9CgpkdC5vZGQsIGRkLm9kZCB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjRjJGMkYyOwp9CgpkaXYuZG9jX292ZXJ2aWV3IGRkLCBkaXYuZG9jX292ZXJ2aWV3IGR0IHsKCXBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50Owp9CgoKCi5kb2NfZGV0YWlscyBkdCwgLmRvY19kZXRhaWxzIGRkIHsKCXBhZGRpbmc6IDFlbSAxMHB4Owp9CgoucmlnaHRfYm9yZGVyIGRpdiB7Cgl3aWR0aDogMjBweDsKCXBhZGRpbmc6IDJweCAwLjVlbSAycHggMWVtOwoJdGV4dC1hbGlnbjogcmlnaHQ7Cn0KLnJpZ2h0X2JvcmRlciB7Cglib3JkZXItcmlnaHQ6IDNweCBzb2xpZCAjNEU2Q0EzOwp9Ci5ib3R0b21fYm9yZGVyIHsKCWJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNEU2Q0EzOwp9CgoKYSB7Cgl0ZXh0LWRlY29yYXRpb246IG5vbmU7Cgljb2xvcjogIzRFNkNBMzsKfQoKYTpob3ZlciB7Cgl0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKCWN1cnNvcjogcG9pbnRlcjsKCSpjdXJzb3I6IGhhbmQ7Cn0KCmRpdi5md19jb250ZW50IHVsIHsKCWxpc3Qtc3R5bGUtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2Fycm93LmpwZycpOwoJcGFkZGluZzogMC41ZW0gMCAwLjVlbSAyZW07Cn0KCi8qCmgyIHsKCWZvbnQtc2l6ZTogMS40ZW07CgltYXJnaW4tdG9wOiAyZW07Cglib3JkZXItYm90dG9tOiAzcHggc29saWQgIzgyOWFjNjsKCXBhZGRpbmctbGVmdDogNXB4Owp9CgpoMyB7Cglmb250LXNpemU6IDEuMmVtOwoJbWFyZ2luLXRvcDogMWVtOwoJYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNBNEI1RDU7CglwYWRkaW5nLWxlZnQ6IDVweDsKfQoqLwoKaDEgewoJZm9udC1zaXplOiAyZW07Cn0KCmgyIHsKCWZvbnQtc2l6ZTogMS42ZW07CglwYWRkaW5nLXRvcDogNXB4Owp9CgpoMi5hbmNlc3RvcnMgewoJZm9udC1zaXplOiAxNHB4OwoJbWFyZ2luOiAwOwp9CgpoMyB7Cglmb250LXNpemU6IDEuM2VtOwoJcGFkZGluZy10b3A6IDVweDsKCW1hcmdpbi1ib3R0b206IDVweDsKfQoKaDUgewoJcGFkZGluZy10b3A6IDZweDsKfQoKZGl2LmRvY19zdW1tYXJ5LCBkaXYuZG9jX2RldGFpbHMgewoJbWFyZ2luLXRvcDogMmVtOwoJY2xlYXI6IGJvdGg7Cn0KCmRpdi5kb2NfZ3JvdXAgewoJbWFyZ2luLXRvcDogMWVtOwoJYm9yZGVyLXRvcDogMXB4IHNvbGlkICNBNEI1RDU7Cglib3JkZXItbGVmdDogMXB4IHNvbGlkICNBNEI1RDU7CglwYWRkaW5nLWxlZnQ6IDEwcHg7Cn0KCmRpdi5leHRlbmRlZCB7CgltYXJnaW4tbGVmdDogMzBweDsKfQoKdGFibGUucGFyYW1zIHsKCW1hcmdpbi1sZWZ0OiAzMHB4OwoJd2lkdGg6IDk3JTsKfQoKdHIub2RkIHsKCWJhY2tncm91bmQtY29sb3I6IHdoaXRlOwp9Cgp0ci5ldmVuIHsKCWJhY2tncm91bmQtY29sb3I6ICNGOEY4Rjg7Cn0KCnRoLm5hbWUsCnRkLm5hbWUgewoJcGFkZGluZy1sZWZ0OiAxM3B4Owp9Cgp0ZC5udW1iZXIgewoJYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7Cgljb2xvcjogIzVDNUM1QzsKfQoKZGQub2RkIHRkLm51bWJlciB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjRjJGMkYyOwp9CgpwLnJldHVybnMgewoJbWFyZ2luLWxlZnQ6IDUlOwp9CgpkaXYucGFnZS1pbmZvIHsKCXBvc2l0aW9uOiBhYnNvbHV0ZTsKCXRvcDogMDsKCXJpZ2h0OiAwOwp9CgoKLnByaXZhdGUgewoJZGlzcGxheTogbm9uZTsKfQoKCgoKZGl2LmZ3X25hdiB7Cglwb3NpdGlvbjogZml4ZWQ7Cgl0b3A6IDYwcHg7CglyaWdodDogMzBweDsKCXdpZHRoOiAyNTBweDsKCWJvcmRlcjogMXB4IHNvbGlkICNBNEI1RDU7CgliYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKCXBhZGRpbmc6IDEwcHg7Cgl6LWluZGV4OiAxMDAxOwoJZm9udC1zaXplOiAxMnB4OwoJb3ZlcmZsb3c6IGhpZGRlbjsKfQoKZGl2LmZ3X25hdiBoMiB7CgltYXJnaW46IC0xMHB4IDAgMTBweCAtMTBweDsKCXdpZHRoOiAyNTBweDsKCXBhZGRpbmc6IDVweCAxMHB4OwoJYmFja2dyb3VuZC1jb2xvcjogI0E0QjVENTsKCWZvbnQtc2l6ZTogMTJweDsKCWN1cnNvcjogcG9pbnRlcjsKCSpjdXJzb3I6IGhhbmQ7Cn0KCmRpdi5md19uYXYgdWw+bGk+ZGl2IHsKCXBhZGRpbmc6IDAgMCAwIDFlbTsKfQoKZGl2Lm5hdl9ibG9ja2VyIHsKCWZsb2F0OiByaWdodDsKfQoKCgoKCgoKLmNzc19jbGVhciB7CgljbGVhcjogYm90aDsKCWhlaWdodDogMDsKCWxpbmUtaGVpZ2h0OiAwOwoJdmlzaWJpbGl0eTogaGlkZGVuOwp9CgouY3NzX3JpZ2h0IHsKCXRleHQtYWxpZ246IHJpZ2h0Owp9CgouY3NzX2NlbnRlciB7Cgl0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCi5jc3Nfc3BhY2luZyB7CgltYXJnaW4tdG9wOiAxLjVlbTsKfQoKLmNzc19zbWFsbCB7Cglmb250LXNpemU6IDc1JTsKCWxpbmUtaGVpZ2h0OiAxLjQ1ZW07Cn0KCi5jc3NfdnNtYWxsIHsKCWZvbnQtc2l6ZTogNjUlOwoJbGluZS1oZWlnaHQ6IDEuNDVlbTsKfQo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/media/docs/media/css/shCore.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIFN5bnRheEhpZ2hsaWdodGVyCiAqIGh0dHA6Ly9hbGV4Z29yYmF0Y2hldi5jb20vU3ludGF4SGlnaGxpZ2h0ZXIKICoKICogU3ludGF4SGlnaGxpZ2h0ZXIgaXMgZG9uYXRpb253YXJlLiBJZiB5b3UgYXJlIHVzaW5nIGl0LCBwbGVhc2UgZG9uYXRlLgogKiBodHRwOi8vYWxleGdvcmJhdGNoZXYuY29tL1N5bnRheEhpZ2hsaWdodGVyL2RvbmF0ZS5odG1sCiAqCiAqIEB2ZXJzaW9uCiAqIDMuMC44MyAoSnVseSAwMiAyMDEwKQogKiAKICogQGNvcHlyaWdodAogKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMCBBbGV4IEdvcmJhdGNoZXYuCiAqCiAqIEBsaWNlbnNlCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzLgogKi8KLnN5bnRheGhpZ2hsaWdodGVyIGEsCi5zeW50YXhoaWdobGlnaHRlciBkaXYsCi5zeW50YXhoaWdobGlnaHRlciBjb2RlLAouc3ludGF4aGlnaGxpZ2h0ZXIgdGFibGUsCi5zeW50YXhoaWdobGlnaHRlciB0YWJsZSB0ZCwKLnN5bnRheGhpZ2hsaWdodGVyIHRhYmxlIHRyLAouc3ludGF4aGlnaGxpZ2h0ZXIgdGFibGUgdGJvZHksCi5zeW50YXhoaWdobGlnaHRlciB0YWJsZSB0aGVhZCwKLnN5bnRheGhpZ2hsaWdodGVyIHRhYmxlIGNhcHRpb24sCi5zeW50YXhoaWdobGlnaHRlciB0ZXh0YXJlYSB7CiAgLW1vei1ib3JkZXItcmFkaXVzOiAwIDAgMCAwICFpbXBvcnRhbnQ7CiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwIDAgMCAwICFpbXBvcnRhbnQ7CiAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50OwogIGJvcmRlcjogMCAhaW1wb3J0YW50OwogIGJvdHRvbTogYXV0byAhaW1wb3J0YW50OwogIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7CiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7CiAgbGVmdDogYXV0byAhaW1wb3J0YW50OwogIGxpbmUtaGVpZ2h0OiAxLjFlbSAhaW1wb3J0YW50OwogIG1hcmdpbjogMCAhaW1wb3J0YW50OwogIG91dGxpbmU6IDAgIWltcG9ydGFudDsKICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50OwogIHBhZGRpbmc6IDAgIWltcG9ydGFudDsKICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7CiAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDsKICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7CiAgdG9wOiBhdXRvICFpbXBvcnRhbnQ7CiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lICFpbXBvcnRhbnQ7CiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDsKICBib3gtc2l6aW5nOiBjb250ZW50LWJveCAhaW1wb3J0YW50OwogIGZvbnQtZmFtaWx5OiAiQ29uc29sYXMiLCJNb25hY28iLCJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8iLCJDb3VyaWVyIE5ldyIsQ291cmllcixtb25vc3BhY2UgIWltcG9ydGFudDsKICBmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7CiAgZm9udC1zdHlsZTogbm9ybWFsICFpbXBvcnRhbnQ7CiAgZm9udC1zaXplOiAxZW0gIWltcG9ydGFudDsKICBtaW4taGVpZ2h0OiBpbmhlcml0ICFpbXBvcnRhbnQ7CiAgbWluLWhlaWdodDogYXV0byAhaW1wb3J0YW50Owp9Cgouc3ludGF4aGlnaGxpZ2h0ZXIgewogIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CiAgbWFyZ2luOiAxZW0gMCAxZW0gMCAhaW1wb3J0YW50OwogIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50OwogIG92ZXJmbG93OiBhdXRvICFpbXBvcnRhbnQ7CiAgZm9udC1zaXplOiAxZW0gIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIuc291cmNlIHsKICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC5ib2xkIHsKICBmb250LXdlaWdodDogYm9sZCAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuaXRhbGljIHsKICBmb250LXN0eWxlOiBpdGFsaWMgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgLmxpbmUgewogIHdoaXRlLXNwYWNlOiBwcmUgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgdGFibGUgewogIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIHRhYmxlIGNhcHRpb24gewogIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsKICBwYWRkaW5nOiAuNWVtIDAgMC41ZW0gMWVtICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIHRhYmxlIHRkLmNvZGUgewogIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIHRhYmxlIHRkLmNvZGUgLmNvbnRhaW5lciB7CiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIHRhYmxlIHRkLmNvZGUgLmNvbnRhaW5lciB0ZXh0YXJlYSB7CiAgYm94LXNpemluZzogYm9yZGVyLWJveCAhaW1wb3J0YW50OwogIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50OwogIGxlZnQ6IDAgIWltcG9ydGFudDsKICB0b3A6IDAgIWltcG9ydGFudDsKICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OwogIGhlaWdodDogMTAwJSAhaW1wb3J0YW50OwogIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50OwogIGJhY2tncm91bmQ6IHdoaXRlICFpbXBvcnRhbnQ7CiAgcGFkZGluZy1sZWZ0OiAxZW0gIWltcG9ydGFudDsKICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7CiAgd2hpdGUtc3BhY2U6IHByZSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciB0YWJsZSB0ZC5ndXR0ZXIgLmxpbmUgewogIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7CiAgcGFkZGluZzogMnB4IDAuNWVtIDJweCAxZW0gIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgdGFibGUgdGQuY29kZSAubGluZSB7CiAgcGFkZGluZzogMnB4IDFlbSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5ub2d1dHRlciB0ZC5jb2RlIC5jb250YWluZXIgdGV4dGFyZWEsIC5zeW50YXhoaWdobGlnaHRlci5ub2d1dHRlciB0ZC5jb2RlIC5saW5lIHsKICBwYWRkaW5nLWxlZnQ6IDBlbSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5zaG93IHsKICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5jb2xsYXBzZWQgdGFibGUgewogIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIuY29sbGFwc2VkIC50b29sYmFyIHsKICBwYWRkaW5nOiAwLjFlbSAwLjhlbSAwZW0gMC44ZW0gIWltcG9ydGFudDsKICBmb250LXNpemU6IDFlbSAhaW1wb3J0YW50OwogIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDsKICB3aWR0aDogYXV0byAhaW1wb3J0YW50OwogIGhlaWdodDogYXV0byAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5jb2xsYXBzZWQgLnRvb2xiYXIgc3BhbiB7CiAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7CiAgbWFyZ2luLXJpZ2h0OiAxZW0gIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIuY29sbGFwc2VkIC50b29sYmFyIHNwYW4gYSB7CiAgcGFkZGluZzogMCAhaW1wb3J0YW50OwogIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIuY29sbGFwc2VkIC50b29sYmFyIHNwYW4gYS5leHBhbmRTb3VyY2UgewogIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAudG9vbGJhciB7CiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7CiAgcmlnaHQ6IDFweCAhaW1wb3J0YW50OwogIHRvcDogMXB4ICFpbXBvcnRhbnQ7CiAgd2lkdGg6IDExcHggIWltcG9ydGFudDsKICBoZWlnaHQ6IDExcHggIWltcG9ydGFudDsKICBmb250LXNpemU6IDEwcHggIWltcG9ydGFudDsKICB6LWluZGV4OiAxMCAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAudG9vbGJhciBzcGFuLnRpdGxlIHsKICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgLnRvb2xiYXIgYSB7CiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsKICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsKICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsKICBwYWRkaW5nLXRvcDogMXB4ICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC50b29sYmFyIGEuZXhwYW5kU291cmNlIHsKICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLmllIHsKICBmb250LXNpemU6IC45ZW0gIWltcG9ydGFudDsKICBwYWRkaW5nOiAxcHggMCAxcHggMCAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5pZSAudG9vbGJhciB7CiAgbGluZS1oZWlnaHQ6IDhweCAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5pZSAudG9vbGJhciBhIHsKICBwYWRkaW5nLXRvcDogMHB4ICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5saW5lLmFsdDEgLmNvbnRlbnQsCi5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAubGluZS5hbHQyIC5jb250ZW50LAouc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLmxpbmUuaGlnaGxpZ2h0ZWQgLm51bWJlciwKLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5saW5lLmhpZ2hsaWdodGVkLmFsdDEgLmNvbnRlbnQsCi5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAubGluZS5oaWdobGlnaHRlZC5hbHQyIC5jb250ZW50IHsKICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5saW5lIC5udW1iZXIgewogIGNvbG9yOiAjYmJiYmJiICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5saW5lIC5jb250ZW50IHsKICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLnRvb2xiYXIgewogIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgYSB7CiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5wbGFpbiwgLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5wbGFpbiBhIHsKICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLmNvbW1lbnRzLCAuc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLmNvbW1lbnRzIGEgewogIGNvbG9yOiAjMDA4MjAwICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5zdHJpbmcsIC5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAuc3RyaW5nIGEgewogIGNvbG9yOiBibHVlICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5rZXl3b3JkIHsKICBjb2xvcjogIzAwNjY5OSAhaW1wb3J0YW50OwogIGZvbnQtd2VpZ2h0OiBib2xkICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5wcmVwcm9jZXNzb3IgewogIGNvbG9yOiBncmF5ICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC52YXJpYWJsZSB7CiAgY29sb3I6ICNhYTc3MDAgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLnZhbHVlIHsKICBjb2xvcjogIzAwOTkwMCAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAuZnVuY3Rpb25zIHsKICBjb2xvcjogI2ZmMTQ5MyAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAuY29uc3RhbnRzIHsKICBjb2xvcjogIzAwNjZjYyAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAuc2NyaXB0IHsKICBmb250LXdlaWdodDogYm9sZCAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAuY29sb3IxLCAuc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLmNvbG9yMSBhIHsKICBjb2xvcjogZ3JheSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAuY29sb3IyLCAuc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLmNvbG9yMiBhIHsKICBjb2xvcjogI2ZmMTQ5MyAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5wcmludGluZyAuY29sb3IzLCAuc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLmNvbG9yMyBhIHsKICBjb2xvcjogcmVkICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5icmVhaywgLnN5bnRheGhpZ2hsaWdodGVyLnByaW50aW5nIC5icmVhayBhIHsKICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsKfQo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/media/docs/media/css/shThemeDataTables.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIFN5bnRheEhpZ2hsaWdodGVyCiAqIGh0dHA6Ly9hbGV4Z29yYmF0Y2hldi5jb20vU3ludGF4SGlnaGxpZ2h0ZXIKICoKICogU3ludGF4SGlnaGxpZ2h0ZXIgaXMgZG9uYXRpb253YXJlLiBJZiB5b3UgYXJlIHVzaW5nIGl0LCBwbGVhc2UgZG9uYXRlLgogKiBodHRwOi8vYWxleGdvcmJhdGNoZXYuY29tL1N5bnRheEhpZ2hsaWdodGVyL2RvbmF0ZS5odG1sCiAqCiAqIEB2ZXJzaW9uCiAqIDMuMC44MyAoSnVseSAwMiAyMDEwKQogKiAKICogQGNvcHlyaWdodAogKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMCBBbGV4IEdvcmJhdGNoZXYuCiAqCiAqIEBsaWNlbnNlCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzLgogKi8KLnN5bnRheGhpZ2hsaWdodGVyIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50OwogIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50OwogIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC5saW5lLmFsdDEgewogIGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC5saW5lLmFsdDIgewogIGJhY2tncm91bmQtY29sb3I6ICNGOEY4RjggIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgLmxpbmUuaGlnaGxpZ2h0ZWQuYWx0MSwgLnN5bnRheGhpZ2hsaWdodGVyIC5saW5lLmhpZ2hsaWdodGVkLmFsdDIgewogIGJhY2tncm91bmQtY29sb3I6ICNlMGUwZTAgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgLmxpbmUuaGlnaGxpZ2h0ZWQubnVtYmVyIHsKICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgdGFibGUgY2FwdGlvbiB7CiAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC5ndXR0ZXIgewp9Ci5zeW50YXhoaWdobGlnaHRlciAuZ3V0dGVyIGRpdiB7CiAgY29sb3I6ICM1QzVDNUMgIWltcG9ydGFudDsKICB3aWR0aDogMjBweCAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuZ3V0dGVyIC5saW5lLmFsdDEsIC5zeW50YXhoaWdobGlnaHRlciAgLmd1dHRlciAubGluZS5hbHQyIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50Owp9Ci5vZGQgLnN5bnRheGhpZ2hsaWdodGVyIC5ndXR0ZXIgLmxpbmUuYWx0MSwgLm9kZCAuc3ludGF4aGlnaGxpZ2h0ZXIgIC5ndXR0ZXIgLmxpbmUuYWx0MiB7CiAgYmFja2dyb3VuZC1jb2xvcjogI0YyRjJGMiAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuZ3V0dGVyIC5saW5lIHsKICBib3JkZXItcmlnaHQ6IDNweCBzb2xpZCAjNEU2Q0EzICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC5ndXR0ZXIgLmxpbmUuaGlnaGxpZ2h0ZWQgewogIGJhY2tncm91bmQtY29sb3I6ICM0RTZDQTMgIWltcG9ydGFudDsKICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIucHJpbnRpbmcgLmxpbmUgLmNvbnRlbnQgewogIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlci5jb2xsYXBzZWQgewogIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLmNvbGxhcHNlZCAudG9vbGJhciB7CiAgY29sb3I6IGJsdWUgIWltcG9ydGFudDsKICBiYWNrZ3JvdW5kOiB3aGl0ZSAhaW1wb3J0YW50OwogIGJvcmRlcjogMXB4IHNvbGlkICM0RTZDQTMgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIuY29sbGFwc2VkIC50b29sYmFyIGEgewogIGNvbG9yOiBibHVlICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyLmNvbGxhcHNlZCAudG9vbGJhciBhOmhvdmVyIHsKICBjb2xvcjogcmVkICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC50b29sYmFyIHsKICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDsKICBiYWNrZ3JvdW5kOiAjNEU2Q0EzICFpbXBvcnRhbnQ7CiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC50b29sYmFyIGEgewogIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAudG9vbGJhciBhOmhvdmVyIHsKICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgLnBsYWluLCAuc3ludGF4aGlnaGxpZ2h0ZXIgLnBsYWluIGEgewogIGNvbG9yOiBibGFjayAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuY29tbWVudHMsIC5zeW50YXhoaWdobGlnaHRlciAuY29tbWVudHMgYSB7CiAgY29sb3I6ICMwMDgyMDAgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgLnN0cmluZywgLnN5bnRheGhpZ2hsaWdodGVyIC5zdHJpbmcgYSB7CiAgY29sb3I6IGJsdWUgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgLmtleXdvcmQgewogIGNvbG9yOiAjMDA2Njk5ICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC5wcmVwcm9jZXNzb3IgewogIGNvbG9yOiBncmF5ICFpbXBvcnRhbnQ7Cn0KLnN5bnRheGhpZ2hsaWdodGVyIC52YXJpYWJsZSB7CiAgY29sb3I6ICNhYTc3MDAgIWltcG9ydGFudDsKfQouc3ludGF4aGlnaGxpZ2h0ZXIgLnZhbHVlIHsKICBjb2xvcjogIzAwOTkwMCAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuZnVuY3Rpb25zIHsKICBjb2xvcjogI2ZmMTQ5MyAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuY29uc3RhbnRzIHsKICBjb2xvcjogIzAwNjZjYyAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuc2NyaXB0IHsKICBmb250LXdlaWdodDogYm9sZCAhaW1wb3J0YW50OwogIGNvbG9yOiAjMDA2Njk5ICFpbXBvcnRhbnQ7CiAgYmFja2dyb3VuZC1jb2xvcjogbm9uZSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuY29sb3IxLCAuc3ludGF4aGlnaGxpZ2h0ZXIgLmNvbG9yMSBhIHsKICBjb2xvcjogZ3JheSAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuY29sb3IyLCAuc3ludGF4aGlnaGxpZ2h0ZXIgLmNvbG9yMiBhIHsKICBjb2xvcjogI2ZmMTQ5MyAhaW1wb3J0YW50Owp9Ci5zeW50YXhoaWdobGlnaHRlciAuY29sb3IzLCAuc3ludGF4aGlnaGxpZ2h0ZXIgLmNvbG9yMyBhIHsKICBjb2xvcjogcmVkICFpbXBvcnRhbnQ7Cn0KCi5zeW50YXhoaWdobGlnaHRlciAua2V5d29yZCB7CiAgZm9udC13ZWlnaHQ6IGJvbGQgIWltcG9ydGFudDsKfQo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/media/docs/media/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/media/docs/media/images/arrow.jpg</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAZAAA/+4ADkFkb2JlAGTAAAAAAf/bAIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMDAwMDAwMDAwEBAQEBAQECAQECAgIBAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD/8AAEQgABwAIAwERAAIRAQMRAf/EAGYAAQAAAAAAAAAAAAAAAAAAAAoBAQEAAAAAAAAAAAAAAAAAAAUHEAABAgYDAQAAAAAAAAAAAAAFAhYDEwQUBgcREhUXEQABAwQBBAMAAAAAAAAAAAABAhIDESETBCNBIkJSQxQG/9oADAMBAAIRAxEAPwBitOH3pEsWqvIhlzuSoLapc+QwijU1Qjo+/q0utW7MGySZGbANFwYG3Q/kjRyU+dRVzfng/wC6Il00gnZxobk2fhOvbjmRTnltFJSTiU45H1q0w/MEnsAkbZy/Ex+qhQuN0q6oFTT/2Q==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/media/docs/media/images/extended.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAFoTx1HAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NEZGQzY2NkQ1MDJDMTFFMEI1RDE5NDU4MEJERUNCNjciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NEZGQzY2NkU1MDJDMTFFMEI1RDE5NDU4MEJERUNCNjciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowNkRFRjRFQzUwMDIxMUUwQjVEMTk0NTgwQkRFQ0I2NyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0RkZDNjY2QzUwMkMxMUUwQjVEMTk0NTgwQkRFQ0I2NyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PlMwMW8AAAEZSURBVHjaYvz//z8DCDCBiN7e3v8AAcQIF5k/fz6YBRBADCCRXbt2/c/Pz/8PYoPVPnnyhEFWVhasACCA4HpQTIJzUGRgACCAwKbCcFNT039kPthAkP3v3r0DK7558ybYttraWka4bcgKiouLGUE0QAChOAUdwB0QFRX1H4SRJcE6Qe4WEhJiuHfvHliwubkZbCzT7t27/yspKcFVs7GxMYDEULwyb968/zU1NSheYWLAA/BKAgQYSggh48jIyP+45OChhwyAvvgvIyPDAAqsDx8+oPgMIwhgIaupqcnw+fNncETDNIL4MDBhwgRGDI0wAEs7MI0CAgLwKCI+AMgOOTyABV0A5MTHjx8zfPv2jeHLly8MIH9jAwDul9vYyKpTggAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/media/docs/media/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/media/docs/media/js/doc.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CihmdW5jdGlvbigpIHsKCnZhciBzaG93aW5nTmF2ID0gdHJ1ZTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIganFOYXYgPSAkKCdkaXYuZndfbmF2Jyk7CglqcU5hdi5jc3MoJ3JpZ2h0JywgKCQod2luZG93KS53aWR0aCgpIC0gJCgnZGl2LmZ3X2NvbnRhaW5lcicpLndpZHRoKCkpIC8yKTsKCgl2YXIgbiA9ICQoJ2Rpdi5uYXZfYmxvY2tlcicpWzBdOwoJbi5zdHlsZS5oZWlnaHQgPSAkKGpxTmF2KS5vdXRlckhlaWdodCgpKyJweCI7CgluLnN0eWxlLndpZHRoID0gKCQoanFOYXYpLm91dGVyV2lkdGgoKSsyMCkrInB4IjsKCglTeW50YXhIaWdobGlnaHRlci5oaWdobGlnaHQoKTsKCgkkKCcjcHJpdmF0ZV90b2dnbGUnKS5jbGljayggZnVuY3Rpb24gKCkgewoJCWlmICggJCgnaW5wdXRbbmFtZT1zaG93X3ByaXZhdGVdJykudmFsKCkgPT0gMCApIHsKCQkJJCgnaW5wdXRbbmFtZT1zaG93X3ByaXZhdGVdJykudmFsKCAxICk7CgkJCSQoJyNwcml2YXRlX2xhYmVsJykuaHRtbCgnU2hvd2luZycpOwoJCQkkKCcucHJpdmF0ZScpLmNzcygnZGlzcGxheScsICdibG9jaycpOwoJCX0gZWxzZSB7CgkJCSQoJ2lucHV0W25hbWU9c2hvd19wcml2YXRlXScpLnZhbCggMCApOwoJCQkkKCcjcHJpdmF0ZV9sYWJlbCcpLmh0bWwoJ0hpZGluZycpOwoJCQkkKCcucHJpdmF0ZScpLmNzcygnZGlzcGxheScsICdub25lJyk7CgkJfQoJCWZuV3JpdGVDb29raWUoKTsKCQlyZXR1cm4gZmFsc2U7Cgl9ICk7CgoJJCgnI2V4dGVuZGVkX3RvZ2dsZScpLmNsaWNrKCBmdW5jdGlvbiAoKSB7CgkJaWYgKCAkKCdpbnB1dFtuYW1lPXNob3dfZXh0ZW5kZWRdJykudmFsKCkgPT0gMCApIHsKCQkJJCgnaW5wdXRbbmFtZT1zaG93X2V4dGVuZGVkXScpLnZhbCggMSApOwoJCQkkKCcjZXh0ZW5kZWRfbGFiZWwnKS5odG1sKCdTaG93aW5nJyk7CgkJCSQoJy5hdWdtZW50ZWQnKS5jc3MoJ2Rpc3BsYXknLCAnYmxvY2snKTsKCQl9IGVsc2UgewoJCQkkKCdpbnB1dFtuYW1lPXNob3dfZXh0ZW5kZWRdJykudmFsKCAwICk7CgkJCSQoJyNleHRlbmRlZF9sYWJlbCcpLmh0bWwoJ0hpZGluZycpOwoJCQkkKCcuYXVnbWVudGVkJykuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTsKCQl9CgkJZm5Xcml0ZUNvb2tpZSgpOwoJCXJldHVybiBmYWxzZTsKCX0gKTsKCgl2YXIgc2F2ZWRIZWlnaHQgPSAkKGpxTmF2KS5oZWlnaHQoKTsKCSQoJ2Rpdi5md19uYXYgaDInKS5jbGljayggZnVuY3Rpb24gKCkgewoJCWlmICggc2hvd2luZ05hdiApIHsKCQkJJCgnZGl2LmZ3X25hdicpLmFuaW1hdGUoIHsKCQkJCSJoZWlnaHQiOiAxMCwKCQkJCSJvcGFjaXR5IjogMC4zCgkJCX0gKTsKCQkJc2hvd2luZ05hdiA9IGZhbHNlOwoJCX0gZWxzZSB7CgkJCSQoJ2Rpdi5md19uYXYnKS5hbmltYXRlKCB7CgkJCQkiaGVpZ2h0Ijogc2F2ZWRIZWlnaHQsCgkJCQkib3BhY2l0eSI6IDEKCQkJfSApOwoJCQlzaG93aW5nTmF2ID0gdHJ1ZTsKCQl9CgkJZm5Xcml0ZUNvb2tpZSgpOwoJfSApOwoKCXZhciBjb29raWUgPSBmblJlYWRDb29raWUoICdTcHJ5TWVkaWFfSlNEb2MnICk7CglpZiAoIGNvb2tpZSAhPSBudWxsICkgewoJCXZhciBhID0gY29va2llLnNwbGl0KCctJyk7CgkJaWYgKCBhWzBdID09IDEgKSB7CgkJCSQoJyNwcml2YXRlX3RvZ2dsZScpLmNsaWNrKCk7CgkJfQoJCWlmICggYVsxXSA9PSAwICkgewoJCQkkKCcjZXh0ZW5kZWRfdG9nZ2xlJykuY2xpY2soKTsKCQl9CgkJaWYgKCBhWzJdID09ICdmYWxzZScgKSB7CgkJCSQoJ2Rpdi5md19uYXYnKS5jc3MoJ2hlaWdodCcsIDEwKS5jc3MoJ29wYWNpdHknLCAwLjMpOwoJCQlzaG93aW5nTmF2ID0gZmFsc2U7CgkJfQoJfQp9ICk7CgoKZnVuY3Rpb24gZm5Xcml0ZUNvb2tpZSgpCnsKCXZhciBzVmFsID0gCgkJJCgnaW5wdXRbbmFtZT1zaG93X3ByaXZhdGVdJykudmFsKCkrJy0nKwoJCSQoJ2lucHV0W25hbWU9c2hvd19leHRlbmRlZF0nKS52YWwoKSsnLScrCgkJc2hvd2luZ05hdjsKCQoJZm5DcmVhdGVDb29raWUoICdTcHJ5TWVkaWFfSlNEb2MnLCBzVmFsICk7Cn0KCgpmdW5jdGlvbiBmbkNyZWF0ZUNvb2tpZSggc05hbWUsIHNWYWx1ZSApCnsKCXZhciBpRGF5cyA9IDM2NTsKCXZhciBkYXRlID0gbmV3IERhdGUoKTsKCWRhdGUuc2V0VGltZSggZGF0ZS5nZXRUaW1lKCkrKGlEYXlzKjI0KjYwKjYwKjEwMDApICk7Cgl2YXIgc0V4cGlyZXMgPSAiOyBleHBpcmVzPSIrZGF0ZS50b0dNVFN0cmluZygpOwoJCglkb2N1bWVudC5jb29raWUgPSBzTmFtZSsiPSIrc1ZhbHVlK3NFeHBpcmVzKyI7IHBhdGg9LyI7Cn0KCgpmdW5jdGlvbiBmblJlYWRDb29raWUoIHNOYW1lICkKewoJdmFyIHNOYW1lRVEgPSBzTmFtZSArICI9IjsKCXZhciBzQ29va2llQ29udGVudHMgPSBkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKTsKCQoJZm9yKCB2YXIgaT0wIDsgaTxzQ29va2llQ29udGVudHMubGVuZ3RoIDsgaSsrICkgewoJCXZhciBjID0gc0Nvb2tpZUNvbnRlbnRzW2ldOwoJCQoJCXdoaWxlIChjLmNoYXJBdCgwKT09JyAnKSB7CgkJCWMgPSBjLnN1YnN0cmluZygxLGMubGVuZ3RoKTsKCQl9CgkJCgkJaWYgKGMuaW5kZXhPZihzTmFtZUVRKSA9PSAwKSB7CgkJCXJldHVybiBjLnN1YnN0cmluZyhzTmFtZUVRLmxlbmd0aCxjLmxlbmd0aCk7CgkJfQoJfQoJCglyZXR1cm4gbnVsbDsKfQoKfSkoKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/media/docs/media/js/jquery.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohCiAqIGpRdWVyeSBKYXZhU2NyaXB0IExpYnJhcnkgdjEuNS4xCiAqIGh0dHA6Ly9qcXVlcnkuY29tLwogKgogKiBDb3B5cmlnaHQgMjAxMSwgSm9obiBSZXNpZwogKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQogKgogKiBJbmNsdWRlcyBTaXp6bGUuanMKICogaHR0cDovL3NpenpsZWpzLmNvbS8KICogQ29weXJpZ2h0IDIwMTEsIFRoZSBEb2pvIEZvdW5kYXRpb24KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCwgQlNELCBhbmQgR1BMIExpY2Vuc2VzLgogKgogKiBEYXRlOiBXZWQgRmViIDIzIDEzOjU1OjI5IDIwMTEgLTA1MDAKICovCihmdW5jdGlvbiggd2luZG93LCB1bmRlZmluZWQgKSB7CgovLyBVc2UgdGhlIGNvcnJlY3QgZG9jdW1lbnQgYWNjb3JkaW5nbHkgd2l0aCB3aW5kb3cgYXJndW1lbnQgKHNhbmRib3gpCnZhciBkb2N1bWVudCA9IHdpbmRvdy5kb2N1bWVudDsKdmFyIGpRdWVyeSA9IChmdW5jdGlvbigpIHsKCi8vIERlZmluZSBhIGxvY2FsIGNvcHkgb2YgalF1ZXJ5CnZhciBqUXVlcnkgPSBmdW5jdGlvbiggc2VsZWN0b3IsIGNvbnRleHQgKSB7CgkJLy8gVGhlIGpRdWVyeSBvYmplY3QgaXMgYWN0dWFsbHkganVzdCB0aGUgaW5pdCBjb25zdHJ1Y3RvciAnZW5oYW5jZWQnCgkJcmV0dXJuIG5ldyBqUXVlcnkuZm4uaW5pdCggc2VsZWN0b3IsIGNvbnRleHQsIHJvb3RqUXVlcnkgKTsKCX0sCgoJLy8gTWFwIG92ZXIgalF1ZXJ5IGluIGNhc2Ugb2Ygb3ZlcndyaXRlCglfalF1ZXJ5ID0gd2luZG93LmpRdWVyeSwKCgkvLyBNYXAgb3ZlciB0aGUgJCBpbiBjYXNlIG9mIG92ZXJ3cml0ZQoJXyQgPSB3aW5kb3cuJCwKCgkvLyBBIGNlbnRyYWwgcmVmZXJlbmNlIHRvIHRoZSByb290IGpRdWVyeShkb2N1bWVudCkKCXJvb3RqUXVlcnksCgoJLy8gQSBzaW1wbGUgd2F5IHRvIGNoZWNrIGZvciBIVE1MIHN0cmluZ3Mgb3IgSUQgc3RyaW5ncwoJLy8gKGJvdGggb2Ygd2hpY2ggd2Ugb3B0aW1pemUgZm9yKQoJcXVpY2tFeHByID0gL14oPzpbXjxdKig8W1x3XFddKz4pW14+XSokfCMoW1x3XC1dKykkKS8sCgoJLy8gQ2hlY2sgaWYgYSBzdHJpbmcgaGFzIGEgbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVyIGluIGl0Cglybm90d2hpdGUgPSAvXFMvLAoKCS8vIFVzZWQgZm9yIHRyaW1taW5nIHdoaXRlc3BhY2UKCXRyaW1MZWZ0ID0gL15ccysvLAoJdHJpbVJpZ2h0ID0gL1xzKyQvLAoKCS8vIENoZWNrIGZvciBkaWdpdHMKCXJkaWdpdCA9IC9cZC8sCgoJLy8gTWF0Y2ggYSBzdGFuZGFsb25lIHRhZwoJcnNpbmdsZVRhZyA9IC9ePChcdyspXHMqXC8/Pig/OjxcL1wxPik/JC8sCgoJLy8gSlNPTiBSZWdFeHAKCXJ2YWxpZGNoYXJzID0gL15bXF0sOnt9XHNdKiQvLAoJcnZhbGlkZXNjYXBlID0gL1xcKD86WyJcXFwvYmZucnRdfHVbMC05YS1mQS1GXXs0fSkvZywKCXJ2YWxpZHRva2VucyA9IC8iW14iXFxcblxyXSoifHRydWV8ZmFsc2V8bnVsbHwtP1xkKyg/OlwuXGQqKT8oPzpbZUVdWytcLV0/XGQrKT8vZywKCXJ2YWxpZGJyYWNlcyA9IC8oPzpefDp8LCkoPzpccypcWykrL2csCgoJLy8gVXNlcmFnZW50IFJlZ0V4cAoJcndlYmtpdCA9IC8od2Via2l0KVsgXC9dKFtcdy5dKykvLAoJcm9wZXJhID0gLyhvcGVyYSkoPzouKnZlcnNpb24pP1sgXC9dKFtcdy5dKykvLAoJcm1zaWUgPSAvKG1zaWUpIChbXHcuXSspLywKCXJtb3ppbGxhID0gLyhtb3ppbGxhKSg/Oi4qPyBydjooW1x3Ll0rKSk/LywKCgkvLyBLZWVwIGEgVXNlckFnZW50IHN0cmluZyBmb3IgdXNlIHdpdGggalF1ZXJ5LmJyb3dzZXIKCXVzZXJBZ2VudCA9IG5hdmlnYXRvci51c2VyQWdlbnQsCgoJLy8gRm9yIG1hdGNoaW5nIHRoZSBlbmdpbmUgYW5kIHZlcnNpb24gb2YgdGhlIGJyb3dzZXIKCWJyb3dzZXJNYXRjaCwKCgkvLyBIYXMgdGhlIHJlYWR5IGV2ZW50cyBhbHJlYWR5IGJlZW4gYm91bmQ/CglyZWFkeUJvdW5kID0gZmFsc2UsCgoJLy8gVGhlIGRlZmVycmVkIHVzZWQgb24gRE9NIHJlYWR5CglyZWFkeUxpc3QsCgoJLy8gUHJvbWlzZSBtZXRob2RzCglwcm9taXNlTWV0aG9kcyA9ICJ0aGVuIGRvbmUgZmFpbCBpc1Jlc29sdmVkIGlzUmVqZWN0ZWQgcHJvbWlzZSIuc3BsaXQoICIgIiApLAoKCS8vIFRoZSByZWFkeSBldmVudCBoYW5kbGVyCglET01Db250ZW50TG9hZGVkLAoKCS8vIFNhdmUgYSByZWZlcmVuY2UgdG8gc29tZSBjb3JlIG1ldGhvZHMKCXRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZywKCWhhc093biA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksCglwdXNoID0gQXJyYXkucHJvdG90eXBlLnB1c2gsCglzbGljZSA9IEFycmF5LnByb3RvdHlwZS5zbGljZSwKCXRyaW0gPSBTdHJpbmcucHJvdG90eXBlLnRyaW0sCglpbmRleE9mID0gQXJyYXkucHJvdG90eXBlLmluZGV4T2YsCgoJLy8gW1tDbGFzc11dIC0+IHR5cGUgcGFpcnMKCWNsYXNzMnR5cGUgPSB7fTsKCmpRdWVyeS5mbiA9IGpRdWVyeS5wcm90b3R5cGUgPSB7Cgljb25zdHJ1Y3RvcjogalF1ZXJ5LAoJaW5pdDogZnVuY3Rpb24oIHNlbGVjdG9yLCBjb250ZXh0LCByb290alF1ZXJ5ICkgewoJCXZhciBtYXRjaCwgZWxlbSwgcmV0LCBkb2M7CgoJCS8vIEhhbmRsZSAkKCIiKSwgJChudWxsKSwgb3IgJCh1bmRlZmluZWQpCgkJaWYgKCAhc2VsZWN0b3IgKSB7CgkJCXJldHVybiB0aGlzOwoJCX0KCgkJLy8gSGFuZGxlICQoRE9NRWxlbWVudCkKCQlpZiAoIHNlbGVjdG9yLm5vZGVUeXBlICkgewoJCQl0aGlzLmNvbnRleHQgPSB0aGlzWzBdID0gc2VsZWN0b3I7CgkJCXRoaXMubGVuZ3RoID0gMTsKCQkJcmV0dXJuIHRoaXM7CgkJfQoKCQkvLyBUaGUgYm9keSBlbGVtZW50IG9ubHkgZXhpc3RzIG9uY2UsIG9wdGltaXplIGZpbmRpbmcgaXQKCQlpZiAoIHNlbGVjdG9yID09PSAiYm9keSIgJiYgIWNvbnRleHQgJiYgZG9jdW1lbnQuYm9keSApIHsKCQkJdGhpcy5jb250ZXh0ID0gZG9jdW1lbnQ7CgkJCXRoaXNbMF0gPSBkb2N1bWVudC5ib2R5OwoJCQl0aGlzLnNlbGVjdG9yID0gImJvZHkiOwoJCQl0aGlzLmxlbmd0aCA9IDE7CgkJCXJldHVybiB0aGlzOwoJCX0KCgkJLy8gSGFuZGxlIEhUTUwgc3RyaW5ncwoJCWlmICggdHlwZW9mIHNlbGVjdG9yID09PSAic3RyaW5nIiApIHsKCQkJLy8gQXJlIHdlIGRlYWxpbmcgd2l0aCBIVE1MIHN0cmluZyBvciBhbiBJRD8KCQkJbWF0Y2ggPSBxdWlja0V4cHIuZXhlYyggc2VsZWN0b3IgKTsKCgkJCS8vIFZlcmlmeSBhIG1hdGNoLCBhbmQgdGhhdCBubyBjb250ZXh0IHdhcyBzcGVjaWZpZWQgZm9yICNpZAoJCQlpZiAoIG1hdGNoICYmIChtYXRjaFsxXSB8fCAhY29udGV4dCkgKSB7CgoJCQkJLy8gSEFORExFOiAkKGh0bWwpIC0+ICQoYXJyYXkpCgkJCQlpZiAoIG1hdGNoWzFdICkgewoJCQkJCWNvbnRleHQgPSBjb250ZXh0IGluc3RhbmNlb2YgalF1ZXJ5ID8gY29udGV4dFswXSA6IGNvbnRleHQ7CgkJCQkJZG9jID0gKGNvbnRleHQgPyBjb250ZXh0Lm93bmVyRG9jdW1lbnQgfHwgY29udGV4dCA6IGRvY3VtZW50KTsKCgkJCQkJLy8gSWYgYSBzaW5nbGUgc3RyaW5nIGlzIHBhc3NlZCBpbiBhbmQgaXQncyBhIHNpbmdsZSB0YWcKCQkJCQkvLyBqdXN0IGRvIGEgY3JlYXRlRWxlbWVudCBhbmQgc2tpcCB0aGUgcmVzdAoJCQkJCXJldCA9IHJzaW5nbGVUYWcuZXhlYyggc2VsZWN0b3IgKTsKCgkJCQkJaWYgKCByZXQgKSB7CgkJCQkJCWlmICggalF1ZXJ5LmlzUGxhaW5PYmplY3QoIGNvbnRleHQgKSApIHsKCQkJCQkJCXNlbGVjdG9yID0gWyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCByZXRbMV0gKSBdOwoJCQkJCQkJalF1ZXJ5LmZuLmF0dHIuY2FsbCggc2VsZWN0b3IsIGNvbnRleHQsIHRydWUgKTsKCgkJCQkJCX0gZWxzZSB7CgkJCQkJCQlzZWxlY3RvciA9IFsgZG9jLmNyZWF0ZUVsZW1lbnQoIHJldFsxXSApIF07CgkJCQkJCX0KCgkJCQkJfSBlbHNlIHsKCQkJCQkJcmV0ID0galF1ZXJ5LmJ1aWxkRnJhZ21lbnQoIFsgbWF0Y2hbMV0gXSwgWyBkb2MgXSApOwoJCQkJCQlzZWxlY3RvciA9IChyZXQuY2FjaGVhYmxlID8galF1ZXJ5LmNsb25lKHJldC5mcmFnbWVudCkgOiByZXQuZnJhZ21lbnQpLmNoaWxkTm9kZXM7CgkJCQkJfQoKCQkJCQlyZXR1cm4galF1ZXJ5Lm1lcmdlKCB0aGlzLCBzZWxlY3RvciApOwoKCQkJCS8vIEhBTkRMRTogJCgiI2lkIikKCQkJCX0gZWxzZSB7CgkJCQkJZWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCBtYXRjaFsyXSApOwoKCQkJCQkvLyBDaGVjayBwYXJlbnROb2RlIHRvIGNhdGNoIHdoZW4gQmxhY2tiZXJyeSA0LjYgcmV0dXJucwoJCQkJCS8vIG5vZGVzIHRoYXQgYXJlIG5vIGxvbmdlciBpbiB0aGUgZG9jdW1lbnQgIzY5NjMKCQkJCQlpZiAoIGVsZW0gJiYgZWxlbS5wYXJlbnROb2RlICkgewoJCQkJCQkvLyBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgSUUgYW5kIE9wZXJhIHJldHVybiBpdGVtcwoJCQkJCQkvLyBieSBuYW1lIGluc3RlYWQgb2YgSUQKCQkJCQkJaWYgKCBlbGVtLmlkICE9PSBtYXRjaFsyXSApIHsKCQkJCQkJCXJldHVybiByb290alF1ZXJ5LmZpbmQoIHNlbGVjdG9yICk7CgkJCQkJCX0KCgkJCQkJCS8vIE90aGVyd2lzZSwgd2UgaW5qZWN0IHRoZSBlbGVtZW50IGRpcmVjdGx5IGludG8gdGhlIGpRdWVyeSBvYmplY3QKCQkJCQkJdGhpcy5sZW5ndGggPSAxOwoJCQkJCQl0aGlzWzBdID0gZWxlbTsKCQkJCQl9CgoJCQkJCXRoaXMuY29udGV4dCA9IGRvY3VtZW50OwoJCQkJCXRoaXMuc2VsZWN0b3IgPSBzZWxlY3RvcjsKCQkJCQlyZXR1cm4gdGhpczsKCQkJCX0KCgkJCS8vIEhBTkRMRTogJChleHByLCAkKC4uLikpCgkJCX0gZWxzZSBpZiAoICFjb250ZXh0IHx8IGNvbnRleHQuanF1ZXJ5ICkgewoJCQkJcmV0dXJuIChjb250ZXh0IHx8IHJvb3RqUXVlcnkpLmZpbmQoIHNlbGVjdG9yICk7CgoJCQkvLyBIQU5ETEU6ICQoZXhwciwgY29udGV4dCkKCQkJLy8gKHdoaWNoIGlzIGp1c3QgZXF1aXZhbGVudCB0bzogJChjb250ZXh0KS5maW5kKGV4cHIpCgkJCX0gZWxzZSB7CgkJCQlyZXR1cm4gdGhpcy5jb25zdHJ1Y3RvciggY29udGV4dCApLmZpbmQoIHNlbGVjdG9yICk7CgkJCX0KCgkJLy8gSEFORExFOiAkKGZ1bmN0aW9uKQoJCS8vIFNob3J0Y3V0IGZvciBkb2N1bWVudCByZWFkeQoJCX0gZWxzZSBpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCBzZWxlY3RvciApICkgewoJCQlyZXR1cm4gcm9vdGpRdWVyeS5yZWFkeSggc2VsZWN0b3IgKTsKCQl9CgoJCWlmIChzZWxlY3Rvci5zZWxlY3RvciAhPT0gdW5kZWZpbmVkKSB7CgkJCXRoaXMuc2VsZWN0b3IgPSBzZWxlY3Rvci5zZWxlY3RvcjsKCQkJdGhpcy5jb250ZXh0ID0gc2VsZWN0b3IuY29udGV4dDsKCQl9CgoJCXJldHVybiBqUXVlcnkubWFrZUFycmF5KCBzZWxlY3RvciwgdGhpcyApOwoJfSwKCgkvLyBTdGFydCB3aXRoIGFuIGVtcHR5IHNlbGVjdG9yCglzZWxlY3RvcjogIiIsCgoJLy8gVGhlIGN1cnJlbnQgdmVyc2lvbiBvZiBqUXVlcnkgYmVpbmcgdXNlZAoJanF1ZXJ5OiAiMS41LjEiLAoKCS8vIFRoZSBkZWZhdWx0IGxlbmd0aCBvZiBhIGpRdWVyeSBvYmplY3QgaXMgMAoJbGVuZ3RoOiAwLAoKCS8vIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgY29udGFpbmVkIGluIHRoZSBtYXRjaGVkIGVsZW1lbnQgc2V0CglzaXplOiBmdW5jdGlvbigpIHsKCQlyZXR1cm4gdGhpcy5sZW5ndGg7Cgl9LAoKCXRvQXJyYXk6IGZ1bmN0aW9uKCkgewoJCXJldHVybiBzbGljZS5jYWxsKCB0aGlzLCAwICk7Cgl9LAoKCS8vIEdldCB0aGUgTnRoIGVsZW1lbnQgaW4gdGhlIG1hdGNoZWQgZWxlbWVudCBzZXQgT1IKCS8vIEdldCB0aGUgd2hvbGUgbWF0Y2hlZCBlbGVtZW50IHNldCBhcyBhIGNsZWFuIGFycmF5CglnZXQ6IGZ1bmN0aW9uKCBudW0gKSB7CgkJcmV0dXJuIG51bSA9PSBudWxsID8KCgkJCS8vIFJldHVybiBhICdjbGVhbicgYXJyYXkKCQkJdGhpcy50b0FycmF5KCkgOgoKCQkJLy8gUmV0dXJuIGp1c3QgdGhlIG9iamVjdAoJCQkoIG51bSA8IDAgPyB0aGlzWyB0aGlzLmxlbmd0aCArIG51bSBdIDogdGhpc1sgbnVtIF0gKTsKCX0sCgoJLy8gVGFrZSBhbiBhcnJheSBvZiBlbGVtZW50cyBhbmQgcHVzaCBpdCBvbnRvIHRoZSBzdGFjawoJLy8gKHJldHVybmluZyB0aGUgbmV3IG1hdGNoZWQgZWxlbWVudCBzZXQpCglwdXNoU3RhY2s6IGZ1bmN0aW9uKCBlbGVtcywgbmFtZSwgc2VsZWN0b3IgKSB7CgkJLy8gQnVpbGQgYSBuZXcgalF1ZXJ5IG1hdGNoZWQgZWxlbWVudCBzZXQKCQl2YXIgcmV0ID0gdGhpcy5jb25zdHJ1Y3RvcigpOwoKCQlpZiAoIGpRdWVyeS5pc0FycmF5KCBlbGVtcyApICkgewoJCQlwdXNoLmFwcGx5KCByZXQsIGVsZW1zICk7CgoJCX0gZWxzZSB7CgkJCWpRdWVyeS5tZXJnZSggcmV0LCBlbGVtcyApOwoJCX0KCgkJLy8gQWRkIHRoZSBvbGQgb2JqZWN0IG9udG8gdGhlIHN0YWNrIChhcyBhIHJlZmVyZW5jZSkKCQlyZXQucHJldk9iamVjdCA9IHRoaXM7CgoJCXJldC5jb250ZXh0ID0gdGhpcy5jb250ZXh0OwoKCQlpZiAoIG5hbWUgPT09ICJmaW5kIiApIHsKCQkJcmV0LnNlbGVjdG9yID0gdGhpcy5zZWxlY3RvciArICh0aGlzLnNlbGVjdG9yID8gIiAiIDogIiIpICsgc2VsZWN0b3I7CgkJfSBlbHNlIGlmICggbmFtZSApIHsKCQkJcmV0LnNlbGVjdG9yID0gdGhpcy5zZWxlY3RvciArICIuIiArIG5hbWUgKyAiKCIgKyBzZWxlY3RvciArICIpIjsKCQl9CgoJCS8vIFJldHVybiB0aGUgbmV3bHktZm9ybWVkIGVsZW1lbnQgc2V0CgkJcmV0dXJuIHJldDsKCX0sCgoJLy8gRXhlY3V0ZSBhIGNhbGxiYWNrIGZvciBldmVyeSBlbGVtZW50IGluIHRoZSBtYXRjaGVkIHNldC4KCS8vIChZb3UgY2FuIHNlZWQgdGhlIGFyZ3VtZW50cyB3aXRoIGFuIGFycmF5IG9mIGFyZ3MsIGJ1dCB0aGlzIGlzCgkvLyBvbmx5IHVzZWQgaW50ZXJuYWxseS4pCgllYWNoOiBmdW5jdGlvbiggY2FsbGJhY2ssIGFyZ3MgKSB7CgkJcmV0dXJuIGpRdWVyeS5lYWNoKCB0aGlzLCBjYWxsYmFjaywgYXJncyApOwoJfSwKCglyZWFkeTogZnVuY3Rpb24oIGZuICkgewoJCS8vIEF0dGFjaCB0aGUgbGlzdGVuZXJzCgkJalF1ZXJ5LmJpbmRSZWFkeSgpOwoKCQkvLyBBZGQgdGhlIGNhbGxiYWNrCgkJcmVhZHlMaXN0LmRvbmUoIGZuICk7CgoJCXJldHVybiB0aGlzOwoJfSwKCgllcTogZnVuY3Rpb24oIGkgKSB7CgkJcmV0dXJuIGkgPT09IC0xID8KCQkJdGhpcy5zbGljZSggaSApIDoKCQkJdGhpcy5zbGljZSggaSwgK2kgKyAxICk7Cgl9LAoKCWZpcnN0OiBmdW5jdGlvbigpIHsKCQlyZXR1cm4gdGhpcy5lcSggMCApOwoJfSwKCglsYXN0OiBmdW5jdGlvbigpIHsKCQlyZXR1cm4gdGhpcy5lcSggLTEgKTsKCX0sCgoJc2xpY2U6IGZ1bmN0aW9uKCkgewoJCXJldHVybiB0aGlzLnB1c2hTdGFjayggc2xpY2UuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApLAoJCQkic2xpY2UiLCBzbGljZS5jYWxsKGFyZ3VtZW50cykuam9pbigiLCIpICk7Cgl9LAoKCW1hcDogZnVuY3Rpb24oIGNhbGxiYWNrICkgewoJCXJldHVybiB0aGlzLnB1c2hTdGFjayggalF1ZXJ5Lm1hcCh0aGlzLCBmdW5jdGlvbiggZWxlbSwgaSApIHsKCQkJcmV0dXJuIGNhbGxiYWNrLmNhbGwoIGVsZW0sIGksIGVsZW0gKTsKCQl9KSk7Cgl9LAoKCWVuZDogZnVuY3Rpb24oKSB7CgkJcmV0dXJuIHRoaXMucHJldk9iamVjdCB8fCB0aGlzLmNvbnN0cnVjdG9yKG51bGwpOwoJfSwKCgkvLyBGb3IgaW50ZXJuYWwgdXNlIG9ubHkuCgkvLyBCZWhhdmVzIGxpa2UgYW4gQXJyYXkncyBtZXRob2QsIG5vdCBsaWtlIGEgalF1ZXJ5IG1ldGhvZC4KCXB1c2g6IHB1c2gsCglzb3J0OiBbXS5zb3J0LAoJc3BsaWNlOiBbXS5zcGxpY2UKfTsKCi8vIEdpdmUgdGhlIGluaXQgZnVuY3Rpb24gdGhlIGpRdWVyeSBwcm90b3R5cGUgZm9yIGxhdGVyIGluc3RhbnRpYXRpb24KalF1ZXJ5LmZuLmluaXQucHJvdG90eXBlID0galF1ZXJ5LmZuOwoKalF1ZXJ5LmV4dGVuZCA9IGpRdWVyeS5mbi5leHRlbmQgPSBmdW5jdGlvbigpIHsKCXZhciBvcHRpb25zLCBuYW1lLCBzcmMsIGNvcHksIGNvcHlJc0FycmF5LCBjbG9uZSwKCQl0YXJnZXQgPSBhcmd1bWVudHNbMF0gfHwge30sCgkJaSA9IDEsCgkJbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aCwKCQlkZWVwID0gZmFsc2U7CgoJLy8gSGFuZGxlIGEgZGVlcCBjb3B5IHNpdHVhdGlvbgoJaWYgKCB0eXBlb2YgdGFyZ2V0ID09PSAiYm9vbGVhbiIgKSB7CgkJZGVlcCA9IHRhcmdldDsKCQl0YXJnZXQgPSBhcmd1bWVudHNbMV0gfHwge307CgkJLy8gc2tpcCB0aGUgYm9vbGVhbiBhbmQgdGhlIHRhcmdldAoJCWkgPSAyOwoJfQoKCS8vIEhhbmRsZSBjYXNlIHdoZW4gdGFyZ2V0IGlzIGEgc3RyaW5nIG9yIHNvbWV0aGluZyAocG9zc2libGUgaW4gZGVlcCBjb3B5KQoJaWYgKCB0eXBlb2YgdGFyZ2V0ICE9PSAib2JqZWN0IiAmJiAhalF1ZXJ5LmlzRnVuY3Rpb24odGFyZ2V0KSApIHsKCQl0YXJnZXQgPSB7fTsKCX0KCgkvLyBleHRlbmQgalF1ZXJ5IGl0c2VsZiBpZiBvbmx5IG9uZSBhcmd1bWVudCBpcyBwYXNzZWQKCWlmICggbGVuZ3RoID09PSBpICkgewoJCXRhcmdldCA9IHRoaXM7CgkJLS1pOwoJfQoKCWZvciAoIDsgaSA8IGxlbmd0aDsgaSsrICkgewoJCS8vIE9ubHkgZGVhbCB3aXRoIG5vbi1udWxsL3VuZGVmaW5lZCB2YWx1ZXMKCQlpZiAoIChvcHRpb25zID0gYXJndW1lbnRzWyBpIF0pICE9IG51bGwgKSB7CgkJCS8vIEV4dGVuZCB0aGUgYmFzZSBvYmplY3QKCQkJZm9yICggbmFtZSBpbiBvcHRpb25zICkgewoJCQkJc3JjID0gdGFyZ2V0WyBuYW1lIF07CgkJCQljb3B5ID0gb3B0aW9uc1sgbmFtZSBdOwoKCQkJCS8vIFByZXZlbnQgbmV2ZXItZW5kaW5nIGxvb3AKCQkJCWlmICggdGFyZ2V0ID09PSBjb3B5ICkgewoJCQkJCWNvbnRpbnVlOwoJCQkJfQoKCQkJCS8vIFJlY3Vyc2UgaWYgd2UncmUgbWVyZ2luZyBwbGFpbiBvYmplY3RzIG9yIGFycmF5cwoJCQkJaWYgKCBkZWVwICYmIGNvcHkgJiYgKCBqUXVlcnkuaXNQbGFpbk9iamVjdChjb3B5KSB8fCAoY29weUlzQXJyYXkgPSBqUXVlcnkuaXNBcnJheShjb3B5KSkgKSApIHsKCQkJCQlpZiAoIGNvcHlJc0FycmF5ICkgewoJCQkJCQljb3B5SXNBcnJheSA9IGZhbHNlOwoJCQkJCQljbG9uZSA9IHNyYyAmJiBqUXVlcnkuaXNBcnJheShzcmMpID8gc3JjIDogW107CgoJCQkJCX0gZWxzZSB7CgkJCQkJCWNsb25lID0gc3JjICYmIGpRdWVyeS5pc1BsYWluT2JqZWN0KHNyYykgPyBzcmMgOiB7fTsKCQkJCQl9CgoJCQkJCS8vIE5ldmVyIG1vdmUgb3JpZ2luYWwgb2JqZWN0cywgY2xvbmUgdGhlbQoJCQkJCXRhcmdldFsgbmFtZSBdID0galF1ZXJ5LmV4dGVuZCggZGVlcCwgY2xvbmUsIGNvcHkgKTsKCgkJCQkvLyBEb24ndCBicmluZyBpbiB1bmRlZmluZWQgdmFsdWVzCgkJCQl9IGVsc2UgaWYgKCBjb3B5ICE9PSB1bmRlZmluZWQgKSB7CgkJCQkJdGFyZ2V0WyBuYW1lIF0gPSBjb3B5OwoJCQkJfQoJCQl9CgkJfQoJfQoKCS8vIFJldHVybiB0aGUgbW9kaWZpZWQgb2JqZWN0CglyZXR1cm4gdGFyZ2V0Owp9OwoKalF1ZXJ5LmV4dGVuZCh7Cglub0NvbmZsaWN0OiBmdW5jdGlvbiggZGVlcCApIHsKCQl3aW5kb3cuJCA9IF8kOwoKCQlpZiAoIGRlZXAgKSB7CgkJCXdpbmRvdy5qUXVlcnkgPSBfalF1ZXJ5OwoJCX0KCgkJcmV0dXJuIGpRdWVyeTsKCX0sCgoJLy8gSXMgdGhlIERPTSByZWFkeSB0byBiZSB1c2VkPyBTZXQgdG8gdHJ1ZSBvbmNlIGl0IG9jY3Vycy4KCWlzUmVhZHk6IGZhbHNlLAoKCS8vIEEgY291bnRlciB0byB0cmFjayBob3cgbWFueSBpdGVtcyB0byB3YWl0IGZvciBiZWZvcmUKCS8vIHRoZSByZWFkeSBldmVudCBmaXJlcy4gU2VlICM2NzgxCglyZWFkeVdhaXQ6IDEsCgoJLy8gSGFuZGxlIHdoZW4gdGhlIERPTSBpcyByZWFkeQoJcmVhZHk6IGZ1bmN0aW9uKCB3YWl0ICkgewoJCS8vIEEgdGhpcmQtcGFydHkgaXMgcHVzaGluZyB0aGUgcmVhZHkgZXZlbnQgZm9yd2FyZHMKCQlpZiAoIHdhaXQgPT09IHRydWUgKSB7CgkJCWpRdWVyeS5yZWFkeVdhaXQtLTsKCQl9CgoJCS8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBET00gaXMgbm90IGFscmVhZHkgbG9hZGVkCgkJaWYgKCAhalF1ZXJ5LnJlYWR5V2FpdCB8fCAod2FpdCAhPT0gdHJ1ZSAmJiAhalF1ZXJ5LmlzUmVhZHkpICkgewoJCQkvLyBNYWtlIHN1cmUgYm9keSBleGlzdHMsIGF0IGxlYXN0LCBpbiBjYXNlIElFIGdldHMgYSBsaXR0bGUgb3ZlcnplYWxvdXMgKHRpY2tldCAjNTQ0MykuCgkJCWlmICggIWRvY3VtZW50LmJvZHkgKSB7CgkJCQlyZXR1cm4gc2V0VGltZW91dCggalF1ZXJ5LnJlYWR5LCAxICk7CgkJCX0KCgkJCS8vIFJlbWVtYmVyIHRoYXQgdGhlIERPTSBpcyByZWFkeQoJCQlqUXVlcnkuaXNSZWFkeSA9IHRydWU7CgoJCQkvLyBJZiBhIG5vcm1hbCBET00gUmVhZHkgZXZlbnQgZmlyZWQsIGRlY3JlbWVudCwgYW5kIHdhaXQgaWYgbmVlZCBiZQoJCQlpZiAoIHdhaXQgIT09IHRydWUgJiYgLS1qUXVlcnkucmVhZHlXYWl0ID4gMCApIHsKCQkJCXJldHVybjsKCQkJfQoKCQkJLy8gSWYgdGhlcmUgYXJlIGZ1bmN0aW9ucyBib3VuZCwgdG8gZXhlY3V0ZQoJCQlyZWFkeUxpc3QucmVzb2x2ZVdpdGgoIGRvY3VtZW50LCBbIGpRdWVyeSBdICk7CgoJCQkvLyBUcmlnZ2VyIGFueSBib3VuZCByZWFkeSBldmVudHMKCQkJaWYgKCBqUXVlcnkuZm4udHJpZ2dlciApIHsKCQkJCWpRdWVyeSggZG9jdW1lbnQgKS50cmlnZ2VyKCAicmVhZHkiICkudW5iaW5kKCAicmVhZHkiICk7CgkJCX0KCQl9Cgl9LAoKCWJpbmRSZWFkeTogZnVuY3Rpb24oKSB7CgkJaWYgKCByZWFkeUJvdW5kICkgewoJCQlyZXR1cm47CgkJfQoKCQlyZWFkeUJvdW5kID0gdHJ1ZTsKCgkJLy8gQ2F0Y2ggY2FzZXMgd2hlcmUgJChkb2N1bWVudCkucmVhZHkoKSBpcyBjYWxsZWQgYWZ0ZXIgdGhlCgkJLy8gYnJvd3NlciBldmVudCBoYXMgYWxyZWFkeSBvY2N1cnJlZC4KCQlpZiAoIGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICJjb21wbGV0ZSIgKSB7CgkJCS8vIEhhbmRsZSBpdCBhc3luY2hyb25vdXNseSB0byBhbGxvdyBzY3JpcHRzIHRoZSBvcHBvcnR1bml0eSB0byBkZWxheSByZWFkeQoJCQlyZXR1cm4gc2V0VGltZW91dCggalF1ZXJ5LnJlYWR5LCAxICk7CgkJfQoKCQkvLyBNb3ppbGxhLCBPcGVyYSBhbmQgd2Via2l0IG5pZ2h0bGllcyBjdXJyZW50bHkgc3VwcG9ydCB0aGlzIGV2ZW50CgkJaWYgKCBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyICkgewoJCQkvLyBVc2UgdGhlIGhhbmR5IGV2ZW50IGNhbGxiYWNrCgkJCWRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoICJET01Db250ZW50TG9hZGVkIiwgRE9NQ29udGVudExvYWRlZCwgZmFsc2UgKTsKCgkJCS8vIEEgZmFsbGJhY2sgdG8gd2luZG93Lm9ubG9hZCwgdGhhdCB3aWxsIGFsd2F5cyB3b3JrCgkJCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCAibG9hZCIsIGpRdWVyeS5yZWFkeSwgZmFsc2UgKTsKCgkJLy8gSWYgSUUgZXZlbnQgbW9kZWwgaXMgdXNlZAoJCX0gZWxzZSBpZiAoIGRvY3VtZW50LmF0dGFjaEV2ZW50ICkgewoJCQkvLyBlbnN1cmUgZmlyaW5nIGJlZm9yZSBvbmxvYWQsCgkJCS8vIG1heWJlIGxhdGUgYnV0IHNhZmUgYWxzbyBmb3IgaWZyYW1lcwoJCQlkb2N1bWVudC5hdHRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIiwgRE9NQ29udGVudExvYWRlZCk7CgoJCQkvLyBBIGZhbGxiYWNrIHRvIHdpbmRvdy5vbmxvYWQsIHRoYXQgd2lsbCBhbHdheXMgd29yawoJCQl3aW5kb3cuYXR0YWNoRXZlbnQoICJvbmxvYWQiLCBqUXVlcnkucmVhZHkgKTsKCgkJCS8vIElmIElFIGFuZCBub3QgYSBmcmFtZQoJCQkvLyBjb250aW51YWxseSBjaGVjayB0byBzZWUgaWYgdGhlIGRvY3VtZW50IGlzIHJlYWR5CgkJCXZhciB0b3BsZXZlbCA9IGZhbHNlOwoKCQkJdHJ5IHsKCQkJCXRvcGxldmVsID0gd2luZG93LmZyYW1lRWxlbWVudCA9PSBudWxsOwoJCQl9IGNhdGNoKGUpIHt9CgoJCQlpZiAoIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5kb1Njcm9sbCAmJiB0b3BsZXZlbCApIHsKCQkJCWRvU2Nyb2xsQ2hlY2soKTsKCQkJfQoJCX0KCX0sCgoJLy8gU2VlIHRlc3QvdW5pdC9jb3JlLmpzIGZvciBkZXRhaWxzIGNvbmNlcm5pbmcgaXNGdW5jdGlvbi4KCS8vIFNpbmNlIHZlcnNpb24gMS4zLCBET00gbWV0aG9kcyBhbmQgZnVuY3Rpb25zIGxpa2UgYWxlcnQKCS8vIGFyZW4ndCBzdXBwb3J0ZWQuIFRoZXkgcmV0dXJuIGZhbHNlIG9uIElFICgjMjk2OCkuCglpc0Z1bmN0aW9uOiBmdW5jdGlvbiggb2JqICkgewoJCXJldHVybiBqUXVlcnkudHlwZShvYmopID09PSAiZnVuY3Rpb24iOwoJfSwKCglpc0FycmF5OiBBcnJheS5pc0FycmF5IHx8IGZ1bmN0aW9uKCBvYmogKSB7CgkJcmV0dXJuIGpRdWVyeS50eXBlKG9iaikgPT09ICJhcnJheSI7Cgl9LAoKCS8vIEEgY3J1ZGUgd2F5IG9mIGRldGVybWluaW5nIGlmIGFuIG9iamVjdCBpcyBhIHdpbmRvdwoJaXNXaW5kb3c6IGZ1bmN0aW9uKCBvYmogKSB7CgkJcmV0dXJuIG9iaiAmJiB0eXBlb2Ygb2JqID09PSAib2JqZWN0IiAmJiAic2V0SW50ZXJ2YWwiIGluIG9iajsKCX0sCgoJaXNOYU46IGZ1bmN0aW9uKCBvYmogKSB7CgkJcmV0dXJuIG9iaiA9PSBudWxsIHx8ICFyZGlnaXQudGVzdCggb2JqICkgfHwgaXNOYU4oIG9iaiApOwoJfSwKCgl0eXBlOiBmdW5jdGlvbiggb2JqICkgewoJCXJldHVybiBvYmogPT0gbnVsbCA/CgkJCVN0cmluZyggb2JqICkgOgoJCQljbGFzczJ0eXBlWyB0b1N0cmluZy5jYWxsKG9iaikgXSB8fCAib2JqZWN0IjsKCX0sCgoJaXNQbGFpbk9iamVjdDogZnVuY3Rpb24oIG9iaiApIHsKCQkvLyBNdXN0IGJlIGFuIE9iamVjdC4KCQkvLyBCZWNhdXNlIG9mIElFLCB3ZSBhbHNvIGhhdmUgdG8gY2hlY2sgdGhlIHByZXNlbmNlIG9mIHRoZSBjb25zdHJ1Y3RvciBwcm9wZXJ0eS4KCQkvLyBNYWtlIHN1cmUgdGhhdCBET00gbm9kZXMgYW5kIHdpbmRvdyBvYmplY3RzIGRvbid0IHBhc3MgdGhyb3VnaCwgYXMgd2VsbAoJCWlmICggIW9iaiB8fCBqUXVlcnkudHlwZShvYmopICE9PSAib2JqZWN0IiB8fCBvYmoubm9kZVR5cGUgfHwgalF1ZXJ5LmlzV2luZG93KCBvYmogKSApIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCgkJLy8gTm90IG93biBjb25zdHJ1Y3RvciBwcm9wZXJ0eSBtdXN0IGJlIE9iamVjdAoJCWlmICggb2JqLmNvbnN0cnVjdG9yICYmCgkJCSFoYXNPd24uY2FsbChvYmosICJjb25zdHJ1Y3RvciIpICYmCgkJCSFoYXNPd24uY2FsbChvYmouY29uc3RydWN0b3IucHJvdG90eXBlLCAiaXNQcm90b3R5cGVPZiIpICkgewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoKCQkvLyBPd24gcHJvcGVydGllcyBhcmUgZW51bWVyYXRlZCBmaXJzdGx5LCBzbyB0byBzcGVlZCB1cCwKCQkvLyBpZiBsYXN0IG9uZSBpcyBvd24sIHRoZW4gYWxsIHByb3BlcnRpZXMgYXJlIG93bi4KCgkJdmFyIGtleTsKCQlmb3IgKCBrZXkgaW4gb2JqICkge30KCgkJcmV0dXJuIGtleSA9PT0gdW5kZWZpbmVkIHx8IGhhc093bi5jYWxsKCBvYmosIGtleSApOwoJfSwKCglpc0VtcHR5T2JqZWN0OiBmdW5jdGlvbiggb2JqICkgewoJCWZvciAoIHZhciBuYW1lIGluIG9iaiApIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQlyZXR1cm4gdHJ1ZTsKCX0sCgoJZXJyb3I6IGZ1bmN0aW9uKCBtc2cgKSB7CgkJdGhyb3cgbXNnOwoJfSwKCglwYXJzZUpTT046IGZ1bmN0aW9uKCBkYXRhICkgewoJCWlmICggdHlwZW9mIGRhdGEgIT09ICJzdHJpbmciIHx8ICFkYXRhICkgewoJCQlyZXR1cm4gbnVsbDsKCQl9CgoJCS8vIE1ha2Ugc3VyZSBsZWFkaW5nL3RyYWlsaW5nIHdoaXRlc3BhY2UgaXMgcmVtb3ZlZCAoSUUgY2FuJ3QgaGFuZGxlIGl0KQoJCWRhdGEgPSBqUXVlcnkudHJpbSggZGF0YSApOwoKCQkvLyBNYWtlIHN1cmUgdGhlIGluY29taW5nIGRhdGEgaXMgYWN0dWFsIEpTT04KCQkvLyBMb2dpYyBib3Jyb3dlZCBmcm9tIGh0dHA6Ly9qc29uLm9yZy9qc29uMi5qcwoJCWlmICggcnZhbGlkY2hhcnMudGVzdChkYXRhLnJlcGxhY2UocnZhbGlkZXNjYXBlLCAiQCIpCgkJCS5yZXBsYWNlKHJ2YWxpZHRva2VucywgIl0iKQoJCQkucmVwbGFjZShydmFsaWRicmFjZXMsICIiKSkgKSB7CgoJCQkvLyBUcnkgdG8gdXNlIHRoZSBuYXRpdmUgSlNPTiBwYXJzZXIgZmlyc3QKCQkJcmV0dXJuIHdpbmRvdy5KU09OICYmIHdpbmRvdy5KU09OLnBhcnNlID8KCQkJCXdpbmRvdy5KU09OLnBhcnNlKCBkYXRhICkgOgoJCQkJKG5ldyBGdW5jdGlvbigicmV0dXJuICIgKyBkYXRhKSkoKTsKCgkJfSBlbHNlIHsKCQkJalF1ZXJ5LmVycm9yKCAiSW52YWxpZCBKU09OOiAiICsgZGF0YSApOwoJCX0KCX0sCgoJLy8gQ3Jvc3MtYnJvd3NlciB4bWwgcGFyc2luZwoJLy8gKHhtbCAmIHRtcCB1c2VkIGludGVybmFsbHkpCglwYXJzZVhNTDogZnVuY3Rpb24oIGRhdGEgLCB4bWwgLCB0bXAgKSB7CgoJCWlmICggd2luZG93LkRPTVBhcnNlciApIHsgLy8gU3RhbmRhcmQKCQkJdG1wID0gbmV3IERPTVBhcnNlcigpOwoJCQl4bWwgPSB0bXAucGFyc2VGcm9tU3RyaW5nKCBkYXRhICwgInRleHQveG1sIiApOwoJCX0gZWxzZSB7IC8vIElFCgkJCXhtbCA9IG5ldyBBY3RpdmVYT2JqZWN0KCAiTWljcm9zb2Z0LlhNTERPTSIgKTsKCQkJeG1sLmFzeW5jID0gImZhbHNlIjsKCQkJeG1sLmxvYWRYTUwoIGRhdGEgKTsKCQl9CgoJCXRtcCA9IHhtbC5kb2N1bWVudEVsZW1lbnQ7CgoJCWlmICggISB0bXAgfHwgISB0bXAubm9kZU5hbWUgfHwgdG1wLm5vZGVOYW1lID09PSAicGFyc2VyZXJyb3IiICkgewoJCQlqUXVlcnkuZXJyb3IoICJJbnZhbGlkIFhNTDogIiArIGRhdGEgKTsKCQl9CgoJCXJldHVybiB4bWw7Cgl9LAoKCW5vb3A6IGZ1bmN0aW9uKCkge30sCgoJLy8gRXZhbHVsYXRlcyBhIHNjcmlwdCBpbiBhIGdsb2JhbCBjb250ZXh0CglnbG9iYWxFdmFsOiBmdW5jdGlvbiggZGF0YSApIHsKCQlpZiAoIGRhdGEgJiYgcm5vdHdoaXRlLnRlc3QoZGF0YSkgKSB7CgkJCS8vIEluc3BpcmVkIGJ5IGNvZGUgYnkgQW5kcmVhIEdpYW1tYXJjaGkKCQkJLy8gaHR0cDovL3dlYnJlZmxlY3Rpb24uYmxvZ3Nwb3QuY29tLzIwMDcvMDgvZ2xvYmFsLXNjb3BlLWV2YWx1YXRpb24tYW5kLWRvbS5odG1sCgkJCXZhciBoZWFkID0gZG9jdW1lbnQuaGVhZCB8fCBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSggImhlYWQiIClbMF0gfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LAoJCQkJc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggInNjcmlwdCIgKTsKCgkJCWlmICggalF1ZXJ5LnN1cHBvcnQuc2NyaXB0RXZhbCgpICkgewoJCQkJc2NyaXB0LmFwcGVuZENoaWxkKCBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSggZGF0YSApICk7CgkJCX0gZWxzZSB7CgkJCQlzY3JpcHQudGV4dCA9IGRhdGE7CgkJCX0KCgkJCS8vIFVzZSBpbnNlcnRCZWZvcmUgaW5zdGVhZCBvZiBhcHBlbmRDaGlsZCB0byBjaXJjdW12ZW50IGFuIElFNiBidWcuCgkJCS8vIFRoaXMgYXJpc2VzIHdoZW4gYSBiYXNlIG5vZGUgaXMgdXNlZCAoIzI3MDkpLgoJCQloZWFkLmluc2VydEJlZm9yZSggc2NyaXB0LCBoZWFkLmZpcnN0Q2hpbGQgKTsKCQkJaGVhZC5yZW1vdmVDaGlsZCggc2NyaXB0ICk7CgkJfQoJfSwKCglub2RlTmFtZTogZnVuY3Rpb24oIGVsZW0sIG5hbWUgKSB7CgkJcmV0dXJuIGVsZW0ubm9kZU5hbWUgJiYgZWxlbS5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpID09PSBuYW1lLnRvVXBwZXJDYXNlKCk7Cgl9LAoKCS8vIGFyZ3MgaXMgZm9yIGludGVybmFsIHVzYWdlIG9ubHkKCWVhY2g6IGZ1bmN0aW9uKCBvYmplY3QsIGNhbGxiYWNrLCBhcmdzICkgewoJCXZhciBuYW1lLCBpID0gMCwKCQkJbGVuZ3RoID0gb2JqZWN0Lmxlbmd0aCwKCQkJaXNPYmogPSBsZW5ndGggPT09IHVuZGVmaW5lZCB8fCBqUXVlcnkuaXNGdW5jdGlvbihvYmplY3QpOwoKCQlpZiAoIGFyZ3MgKSB7CgkJCWlmICggaXNPYmogKSB7CgkJCQlmb3IgKCBuYW1lIGluIG9iamVjdCApIHsKCQkJCQlpZiAoIGNhbGxiYWNrLmFwcGx5KCBvYmplY3RbIG5hbWUgXSwgYXJncyApID09PSBmYWxzZSApIHsKCQkJCQkJYnJlYWs7CgkJCQkJfQoJCQkJfQoJCQl9IGVsc2UgewoJCQkJZm9yICggOyBpIDwgbGVuZ3RoOyApIHsKCQkJCQlpZiAoIGNhbGxiYWNrLmFwcGx5KCBvYmplY3RbIGkrKyBdLCBhcmdzICkgPT09IGZhbHNlICkgewoJCQkJCQlicmVhazsKCQkJCQl9CgkJCQl9CgkJCX0KCgkJLy8gQSBzcGVjaWFsLCBmYXN0LCBjYXNlIGZvciB0aGUgbW9zdCBjb21tb24gdXNlIG9mIGVhY2gKCQl9IGVsc2UgewoJCQlpZiAoIGlzT2JqICkgewoJCQkJZm9yICggbmFtZSBpbiBvYmplY3QgKSB7CgkJCQkJaWYgKCBjYWxsYmFjay5jYWxsKCBvYmplY3RbIG5hbWUgXSwgbmFtZSwgb2JqZWN0WyBuYW1lIF0gKSA9PT0gZmFsc2UgKSB7CgkJCQkJCWJyZWFrOwoJCQkJCX0KCQkJCX0KCQkJfSBlbHNlIHsKCQkJCWZvciAoIHZhciB2YWx1ZSA9IG9iamVjdFswXTsKCQkJCQlpIDwgbGVuZ3RoICYmIGNhbGxiYWNrLmNhbGwoIHZhbHVlLCBpLCB2YWx1ZSApICE9PSBmYWxzZTsgdmFsdWUgPSBvYmplY3RbKytpXSApIHt9CgkJCX0KCQl9CgoJCXJldHVybiBvYmplY3Q7Cgl9LAoKCS8vIFVzZSBuYXRpdmUgU3RyaW5nLnRyaW0gZnVuY3Rpb24gd2hlcmV2ZXIgcG9zc2libGUKCXRyaW06IHRyaW0gPwoJCWZ1bmN0aW9uKCB0ZXh0ICkgewoJCQlyZXR1cm4gdGV4dCA9PSBudWxsID8KCQkJCSIiIDoKCQkJCXRyaW0uY2FsbCggdGV4dCApOwoJCX0gOgoKCQkvLyBPdGhlcndpc2UgdXNlIG91ciBvd24gdHJpbW1pbmcgZnVuY3Rpb25hbGl0eQoJCWZ1bmN0aW9uKCB0ZXh0ICkgewoJCQlyZXR1cm4gdGV4dCA9PSBudWxsID8KCQkJCSIiIDoKCQkJCXRleHQudG9TdHJpbmcoKS5yZXBsYWNlKCB0cmltTGVmdCwgIiIgKS5yZXBsYWNlKCB0cmltUmlnaHQsICIiICk7CgkJfSwKCgkvLyByZXN1bHRzIGlzIGZvciBpbnRlcm5hbCB1c2FnZSBvbmx5CgltYWtlQXJyYXk6IGZ1bmN0aW9uKCBhcnJheSwgcmVzdWx0cyApIHsKCQl2YXIgcmV0ID0gcmVzdWx0cyB8fCBbXTsKCgkJaWYgKCBhcnJheSAhPSBudWxsICkgewoJCQkvLyBUaGUgd2luZG93LCBzdHJpbmdzIChhbmQgZnVuY3Rpb25zKSBhbHNvIGhhdmUgJ2xlbmd0aCcKCQkJLy8gVGhlIGV4dHJhIHR5cGVvZiBmdW5jdGlvbiBjaGVjayBpcyB0byBwcmV2ZW50IGNyYXNoZXMKCQkJLy8gaW4gU2FmYXJpIDIgKFNlZTogIzMwMzkpCgkJCS8vIFR3ZWFrZWQgbG9naWMgc2xpZ2h0bHkgdG8gaGFuZGxlIEJsYWNrYmVycnkgNC43IFJlZ0V4cCBpc3N1ZXMgIzY5MzAKCQkJdmFyIHR5cGUgPSBqUXVlcnkudHlwZShhcnJheSk7CgoJCQlpZiAoIGFycmF5Lmxlbmd0aCA9PSBudWxsIHx8IHR5cGUgPT09ICJzdHJpbmciIHx8IHR5cGUgPT09ICJmdW5jdGlvbiIgfHwgdHlwZSA9PT0gInJlZ2V4cCIgfHwgalF1ZXJ5LmlzV2luZG93KCBhcnJheSApICkgewoJCQkJcHVzaC5jYWxsKCByZXQsIGFycmF5ICk7CgkJCX0gZWxzZSB7CgkJCQlqUXVlcnkubWVyZ2UoIHJldCwgYXJyYXkgKTsKCQkJfQoJCX0KCgkJcmV0dXJuIHJldDsKCX0sCgoJaW5BcnJheTogZnVuY3Rpb24oIGVsZW0sIGFycmF5ICkgewoJCWlmICggYXJyYXkuaW5kZXhPZiApIHsKCQkJcmV0dXJuIGFycmF5LmluZGV4T2YoIGVsZW0gKTsKCQl9CgoJCWZvciAoIHZhciBpID0gMCwgbGVuZ3RoID0gYXJyYXkubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKysgKSB7CgkJCWlmICggYXJyYXlbIGkgXSA9PT0gZWxlbSApIHsKCQkJCXJldHVybiBpOwoJCQl9CgkJfQoKCQlyZXR1cm4gLTE7Cgl9LAoKCW1lcmdlOiBmdW5jdGlvbiggZmlyc3QsIHNlY29uZCApIHsKCQl2YXIgaSA9IGZpcnN0Lmxlbmd0aCwKCQkJaiA9IDA7CgoJCWlmICggdHlwZW9mIHNlY29uZC5sZW5ndGggPT09ICJudW1iZXIiICkgewoJCQlmb3IgKCB2YXIgbCA9IHNlY29uZC5sZW5ndGg7IGogPCBsOyBqKysgKSB7CgkJCQlmaXJzdFsgaSsrIF0gPSBzZWNvbmRbIGogXTsKCQkJfQoKCQl9IGVsc2UgewoJCQl3aGlsZSAoIHNlY29uZFtqXSAhPT0gdW5kZWZpbmVkICkgewoJCQkJZmlyc3RbIGkrKyBdID0gc2Vjb25kWyBqKysgXTsKCQkJfQoJCX0KCgkJZmlyc3QubGVuZ3RoID0gaTsKCgkJcmV0dXJuIGZpcnN0OwoJfSwKCglncmVwOiBmdW5jdGlvbiggZWxlbXMsIGNhbGxiYWNrLCBpbnYgKSB7CgkJdmFyIHJldCA9IFtdLCByZXRWYWw7CgkJaW52ID0gISFpbnY7CgoJCS8vIEdvIHRocm91Z2ggdGhlIGFycmF5LCBvbmx5IHNhdmluZyB0aGUgaXRlbXMKCQkvLyB0aGF0IHBhc3MgdGhlIHZhbGlkYXRvciBmdW5jdGlvbgoJCWZvciAoIHZhciBpID0gMCwgbGVuZ3RoID0gZWxlbXMubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKysgKSB7CgkJCXJldFZhbCA9ICEhY2FsbGJhY2soIGVsZW1zWyBpIF0sIGkgKTsKCQkJaWYgKCBpbnYgIT09IHJldFZhbCApIHsKCQkJCXJldC5wdXNoKCBlbGVtc1sgaSBdICk7CgkJCX0KCQl9CgoJCXJldHVybiByZXQ7Cgl9LAoKCS8vIGFyZyBpcyBmb3IgaW50ZXJuYWwgdXNhZ2Ugb25seQoJbWFwOiBmdW5jdGlvbiggZWxlbXMsIGNhbGxiYWNrLCBhcmcgKSB7CgkJdmFyIHJldCA9IFtdLCB2YWx1ZTsKCgkJLy8gR28gdGhyb3VnaCB0aGUgYXJyYXksIHRyYW5zbGF0aW5nIGVhY2ggb2YgdGhlIGl0ZW1zIHRvIHRoZWlyCgkJLy8gbmV3IHZhbHVlIChvciB2YWx1ZXMpLgoJCWZvciAoIHZhciBpID0gMCwgbGVuZ3RoID0gZWxlbXMubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKysgKSB7CgkJCXZhbHVlID0gY2FsbGJhY2soIGVsZW1zWyBpIF0sIGksIGFyZyApOwoKCQkJaWYgKCB2YWx1ZSAhPSBudWxsICkgewoJCQkJcmV0WyByZXQubGVuZ3RoIF0gPSB2YWx1ZTsKCQkJfQoJCX0KCgkJLy8gRmxhdHRlbiBhbnkgbmVzdGVkIGFycmF5cwoJCXJldHVybiByZXQuY29uY2F0LmFwcGx5KCBbXSwgcmV0ICk7Cgl9LAoKCS8vIEEgZ2xvYmFsIEdVSUQgY291bnRlciBmb3Igb2JqZWN0cwoJZ3VpZDogMSwKCglwcm94eTogZnVuY3Rpb24oIGZuLCBwcm94eSwgdGhpc09iamVjdCApIHsKCQlpZiAoIGFyZ3VtZW50cy5sZW5ndGggPT09IDIgKSB7CgkJCWlmICggdHlwZW9mIHByb3h5ID09PSAic3RyaW5nIiApIHsKCQkJCXRoaXNPYmplY3QgPSBmbjsKCQkJCWZuID0gdGhpc09iamVjdFsgcHJveHkgXTsKCQkJCXByb3h5ID0gdW5kZWZpbmVkOwoKCQkJfSBlbHNlIGlmICggcHJveHkgJiYgIWpRdWVyeS5pc0Z1bmN0aW9uKCBwcm94eSApICkgewoJCQkJdGhpc09iamVjdCA9IHByb3h5OwoJCQkJcHJveHkgPSB1bmRlZmluZWQ7CgkJCX0KCQl9CgoJCWlmICggIXByb3h5ICYmIGZuICkgewoJCQlwcm94eSA9IGZ1bmN0aW9uKCkgewoJCQkJcmV0dXJuIGZuLmFwcGx5KCB0aGlzT2JqZWN0IHx8IHRoaXMsIGFyZ3VtZW50cyApOwoJCQl9OwoJCX0KCgkJLy8gU2V0IHRoZSBndWlkIG9mIHVuaXF1ZSBoYW5kbGVyIHRvIHRoZSBzYW1lIG9mIG9yaWdpbmFsIGhhbmRsZXIsIHNvIGl0IGNhbiBiZSByZW1vdmVkCgkJaWYgKCBmbiApIHsKCQkJcHJveHkuZ3VpZCA9IGZuLmd1aWQgPSBmbi5ndWlkIHx8IHByb3h5Lmd1aWQgfHwgalF1ZXJ5Lmd1aWQrKzsKCQl9CgoJCS8vIFNvIHByb3h5IGNhbiBiZSBkZWNsYXJlZCBhcyBhbiBhcmd1bWVudAoJCXJldHVybiBwcm94eTsKCX0sCgoJLy8gTXV0aWZ1bmN0aW9uYWwgbWV0aG9kIHRvIGdldCBhbmQgc2V0IHZhbHVlcyB0byBhIGNvbGxlY3Rpb24KCS8vIFRoZSB2YWx1ZS9zIGNhbiBiZSBvcHRpb25hbGx5IGJ5IGV4ZWN1dGVkIGlmIGl0cyBhIGZ1bmN0aW9uCglhY2Nlc3M6IGZ1bmN0aW9uKCBlbGVtcywga2V5LCB2YWx1ZSwgZXhlYywgZm4sIHBhc3MgKSB7CgkJdmFyIGxlbmd0aCA9IGVsZW1zLmxlbmd0aDsKCgkJLy8gU2V0dGluZyBtYW55IGF0dHJpYnV0ZXMKCQlpZiAoIHR5cGVvZiBrZXkgPT09ICJvYmplY3QiICkgewoJCQlmb3IgKCB2YXIgayBpbiBrZXkgKSB7CgkJCQlqUXVlcnkuYWNjZXNzKCBlbGVtcywgaywga2V5W2tdLCBleGVjLCBmbiwgdmFsdWUgKTsKCQkJfQoJCQlyZXR1cm4gZWxlbXM7CgkJfQoKCQkvLyBTZXR0aW5nIG9uZSBhdHRyaWJ1dGUKCQlpZiAoIHZhbHVlICE9PSB1bmRlZmluZWQgKSB7CgkJCS8vIE9wdGlvbmFsbHksIGZ1bmN0aW9uIHZhbHVlcyBnZXQgZXhlY3V0ZWQgaWYgZXhlYyBpcyB0cnVlCgkJCWV4ZWMgPSAhcGFzcyAmJiBleGVjICYmIGpRdWVyeS5pc0Z1bmN0aW9uKHZhbHVlKTsKCgkJCWZvciAoIHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrICkgewoJCQkJZm4oIGVsZW1zW2ldLCBrZXksIGV4ZWMgPyB2YWx1ZS5jYWxsKCBlbGVtc1tpXSwgaSwgZm4oIGVsZW1zW2ldLCBrZXkgKSApIDogdmFsdWUsIHBhc3MgKTsKCQkJfQoKCQkJcmV0dXJuIGVsZW1zOwoJCX0KCgkJLy8gR2V0dGluZyBhbiBhdHRyaWJ1dGUKCQlyZXR1cm4gbGVuZ3RoID8gZm4oIGVsZW1zWzBdLCBrZXkgKSA6IHVuZGVmaW5lZDsKCX0sCgoJbm93OiBmdW5jdGlvbigpIHsKCQlyZXR1cm4gKG5ldyBEYXRlKCkpLmdldFRpbWUoKTsKCX0sCgoJLy8gQ3JlYXRlIGEgc2ltcGxlIGRlZmVycmVkIChvbmUgY2FsbGJhY2tzIGxpc3QpCglfRGVmZXJyZWQ6IGZ1bmN0aW9uKCkgewoJCXZhciAvLyBjYWxsYmFja3MgbGlzdAoJCQljYWxsYmFja3MgPSBbXSwKCQkJLy8gc3RvcmVkIFsgY29udGV4dCAsIGFyZ3MgXQoJCQlmaXJlZCwKCQkJLy8gdG8gYXZvaWQgZmlyaW5nIHdoZW4gYWxyZWFkeSBkb2luZyBzbwoJCQlmaXJpbmcsCgkJCS8vIGZsYWcgdG8ga25vdyBpZiB0aGUgZGVmZXJyZWQgaGFzIGJlZW4gY2FuY2VsbGVkCgkJCWNhbmNlbGxlZCwKCQkJLy8gdGhlIGRlZmVycmVkIGl0c2VsZgoJCQlkZWZlcnJlZCAgPSB7CgoJCQkJLy8gZG9uZSggZjEsIGYyLCAuLi4pCgkJCQlkb25lOiBmdW5jdGlvbigpIHsKCQkJCQlpZiAoICFjYW5jZWxsZWQgKSB7CgkJCQkJCXZhciBhcmdzID0gYXJndW1lbnRzLAoJCQkJCQkJaSwKCQkJCQkJCWxlbmd0aCwKCQkJCQkJCWVsZW0sCgkJCQkJCQl0eXBlLAoJCQkJCQkJX2ZpcmVkOwoJCQkJCQlpZiAoIGZpcmVkICkgewoJCQkJCQkJX2ZpcmVkID0gZmlyZWQ7CgkJCQkJCQlmaXJlZCA9IDA7CgkJCQkJCX0KCQkJCQkJZm9yICggaSA9IDAsIGxlbmd0aCA9IGFyZ3MubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKysgKSB7CgkJCQkJCQllbGVtID0gYXJnc1sgaSBdOwoJCQkJCQkJdHlwZSA9IGpRdWVyeS50eXBlKCBlbGVtICk7CgkJCQkJCQlpZiAoIHR5cGUgPT09ICJhcnJheSIgKSB7CgkJCQkJCQkJZGVmZXJyZWQuZG9uZS5hcHBseSggZGVmZXJyZWQsIGVsZW0gKTsKCQkJCQkJCX0gZWxzZSBpZiAoIHR5cGUgPT09ICJmdW5jdGlvbiIgKSB7CgkJCQkJCQkJY2FsbGJhY2tzLnB1c2goIGVsZW0gKTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCQlpZiAoIF9maXJlZCApIHsKCQkJCQkJCWRlZmVycmVkLnJlc29sdmVXaXRoKCBfZmlyZWRbIDAgXSwgX2ZpcmVkWyAxIF0gKTsKCQkJCQkJfQoJCQkJCX0KCQkJCQlyZXR1cm4gdGhpczsKCQkJCX0sCgoJCQkJLy8gcmVzb2x2ZSB3aXRoIGdpdmVuIGNvbnRleHQgYW5kIGFyZ3MKCQkJCXJlc29sdmVXaXRoOiBmdW5jdGlvbiggY29udGV4dCwgYXJncyApIHsKCQkJCQlpZiAoICFjYW5jZWxsZWQgJiYgIWZpcmVkICYmICFmaXJpbmcgKSB7CgkJCQkJCWZpcmluZyA9IDE7CgkJCQkJCXRyeSB7CgkJCQkJCQl3aGlsZSggY2FsbGJhY2tzWyAwIF0gKSB7CgkJCQkJCQkJY2FsbGJhY2tzLnNoaWZ0KCkuYXBwbHkoIGNvbnRleHQsIGFyZ3MgKTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCQkvLyBXZSBoYXZlIHRvIGFkZCBhIGNhdGNoIGJsb2NrIGZvcgoJCQkJCQkvLyBJRSBwcmlvciB0byA4IG9yIGVsc2UgdGhlIGZpbmFsbHkKCQkJCQkJLy8gYmxvY2sgd2lsbCBuZXZlciBnZXQgZXhlY3V0ZWQKCQkJCQkJY2F0Y2ggKGUpIHsKCQkJCQkJCXRocm93IGU7CgkJCQkJCX0KCQkJCQkJZmluYWxseSB7CgkJCQkJCQlmaXJlZCA9IFsgY29udGV4dCwgYXJncyBdOwoJCQkJCQkJZmlyaW5nID0gMDsKCQkJCQkJfQoJCQkJCX0KCQkJCQlyZXR1cm4gdGhpczsKCQkJCX0sCgoJCQkJLy8gcmVzb2x2ZSB3aXRoIHRoaXMgYXMgY29udGV4dCBhbmQgZ2l2ZW4gYXJndW1lbnRzCgkJCQlyZXNvbHZlOiBmdW5jdGlvbigpIHsKCQkJCQlkZWZlcnJlZC5yZXNvbHZlV2l0aCggalF1ZXJ5LmlzRnVuY3Rpb24oIHRoaXMucHJvbWlzZSApID8gdGhpcy5wcm9taXNlKCkgOiB0aGlzLCBhcmd1bWVudHMgKTsKCQkJCQlyZXR1cm4gdGhpczsKCQkJCX0sCgoJCQkJLy8gSGFzIHRoaXMgZGVmZXJyZWQgYmVlbiByZXNvbHZlZD8KCQkJCWlzUmVzb2x2ZWQ6IGZ1bmN0aW9uKCkgewoJCQkJCXJldHVybiAhISggZmlyaW5nIHx8IGZpcmVkICk7CgkJCQl9LAoKCQkJCS8vIENhbmNlbAoJCQkJY2FuY2VsOiBmdW5jdGlvbigpIHsKCQkJCQljYW5jZWxsZWQgPSAxOwoJCQkJCWNhbGxiYWNrcyA9IFtdOwoJCQkJCXJldHVybiB0aGlzOwoJCQkJfQoJCQl9OwoKCQlyZXR1cm4gZGVmZXJyZWQ7Cgl9LAoKCS8vIEZ1bGwgZmxlZGdlZCBkZWZlcnJlZCAodHdvIGNhbGxiYWNrcyBsaXN0KQoJRGVmZXJyZWQ6IGZ1bmN0aW9uKCBmdW5jICkgewoJCXZhciBkZWZlcnJlZCA9IGpRdWVyeS5fRGVmZXJyZWQoKSwKCQkJZmFpbERlZmVycmVkID0galF1ZXJ5Ll9EZWZlcnJlZCgpLAoJCQlwcm9taXNlOwoJCS8vIEFkZCBlcnJvckRlZmVycmVkIG1ldGhvZHMsIHRoZW4gYW5kIHByb21pc2UKCQlqUXVlcnkuZXh0ZW5kKCBkZWZlcnJlZCwgewoJCQl0aGVuOiBmdW5jdGlvbiggZG9uZUNhbGxiYWNrcywgZmFpbENhbGxiYWNrcyApIHsKCQkJCWRlZmVycmVkLmRvbmUoIGRvbmVDYWxsYmFja3MgKS5mYWlsKCBmYWlsQ2FsbGJhY2tzICk7CgkJCQlyZXR1cm4gdGhpczsKCQkJfSwKCQkJZmFpbDogZmFpbERlZmVycmVkLmRvbmUsCgkJCXJlamVjdFdpdGg6IGZhaWxEZWZlcnJlZC5yZXNvbHZlV2l0aCwKCQkJcmVqZWN0OiBmYWlsRGVmZXJyZWQucmVzb2x2ZSwKCQkJaXNSZWplY3RlZDogZmFpbERlZmVycmVkLmlzUmVzb2x2ZWQsCgkJCS8vIEdldCBhIHByb21pc2UgZm9yIHRoaXMgZGVmZXJyZWQKCQkJLy8gSWYgb2JqIGlzIHByb3ZpZGVkLCB0aGUgcHJvbWlzZSBhc3BlY3QgaXMgYWRkZWQgdG8gdGhlIG9iamVjdAoJCQlwcm9taXNlOiBmdW5jdGlvbiggb2JqICkgewoJCQkJaWYgKCBvYmogPT0gbnVsbCApIHsKCQkJCQlpZiAoIHByb21pc2UgKSB7CgkJCQkJCXJldHVybiBwcm9taXNlOwoJCQkJCX0KCQkJCQlwcm9taXNlID0gb2JqID0ge307CgkJCQl9CgkJCQl2YXIgaSA9IHByb21pc2VNZXRob2RzLmxlbmd0aDsKCQkJCXdoaWxlKCBpLS0gKSB7CgkJCQkJb2JqWyBwcm9taXNlTWV0aG9kc1tpXSBdID0gZGVmZXJyZWRbIHByb21pc2VNZXRob2RzW2ldIF07CgkJCQl9CgkJCQlyZXR1cm4gb2JqOwoJCQl9CgkJfSApOwoJCS8vIE1ha2Ugc3VyZSBvbmx5IG9uZSBjYWxsYmFjayBsaXN0IHdpbGwgYmUgdXNlZAoJCWRlZmVycmVkLmRvbmUoIGZhaWxEZWZlcnJlZC5jYW5jZWwgKS5mYWlsKCBkZWZlcnJlZC5jYW5jZWwgKTsKCQkvLyBVbmV4cG9zZSBjYW5jZWwKCQlkZWxldGUgZGVmZXJyZWQuY2FuY2VsOwoJCS8vIENhbGwgZ2l2ZW4gZnVuYyBpZiBhbnkKCQlpZiAoIGZ1bmMgKSB7CgkJCWZ1bmMuY2FsbCggZGVmZXJyZWQsIGRlZmVycmVkICk7CgkJfQoJCXJldHVybiBkZWZlcnJlZDsKCX0sCgoJLy8gRGVmZXJyZWQgaGVscGVyCgl3aGVuOiBmdW5jdGlvbiggb2JqZWN0ICkgewoJCXZhciBsYXN0SW5kZXggPSBhcmd1bWVudHMubGVuZ3RoLAoJCQlkZWZlcnJlZCA9IGxhc3RJbmRleCA8PSAxICYmIG9iamVjdCAmJiBqUXVlcnkuaXNGdW5jdGlvbiggb2JqZWN0LnByb21pc2UgKSA/CgkJCQlvYmplY3QgOgoJCQkJalF1ZXJ5LkRlZmVycmVkKCksCgkJCXByb21pc2UgPSBkZWZlcnJlZC5wcm9taXNlKCk7CgoJCWlmICggbGFzdEluZGV4ID4gMSApIHsKCQkJdmFyIGFycmF5ID0gc2xpY2UuY2FsbCggYXJndW1lbnRzLCAwICksCgkJCQljb3VudCA9IGxhc3RJbmRleCwKCQkJCWlDYWxsYmFjayA9IGZ1bmN0aW9uKCBpbmRleCApIHsKCQkJCQlyZXR1cm4gZnVuY3Rpb24oIHZhbHVlICkgewoJCQkJCQlhcnJheVsgaW5kZXggXSA9IGFyZ3VtZW50cy5sZW5ndGggPiAxID8gc2xpY2UuY2FsbCggYXJndW1lbnRzLCAwICkgOiB2YWx1ZTsKCQkJCQkJaWYgKCAhKCAtLWNvdW50ICkgKSB7CgkJCQkJCQlkZWZlcnJlZC5yZXNvbHZlV2l0aCggcHJvbWlzZSwgYXJyYXkgKTsKCQkJCQkJfQoJCQkJCX07CgkJCQl9OwoJCQl3aGlsZSggKCBsYXN0SW5kZXgtLSApICkgewoJCQkJb2JqZWN0ID0gYXJyYXlbIGxhc3RJbmRleCBdOwoJCQkJaWYgKCBvYmplY3QgJiYgalF1ZXJ5LmlzRnVuY3Rpb24oIG9iamVjdC5wcm9taXNlICkgKSB7CgkJCQkJb2JqZWN0LnByb21pc2UoKS50aGVuKCBpQ2FsbGJhY2sobGFzdEluZGV4KSwgZGVmZXJyZWQucmVqZWN0ICk7CgkJCQl9IGVsc2UgewoJCQkJCS0tY291bnQ7CgkJCQl9CgkJCX0KCQkJaWYgKCAhY291bnQgKSB7CgkJCQlkZWZlcnJlZC5yZXNvbHZlV2l0aCggcHJvbWlzZSwgYXJyYXkgKTsKCQkJfQoJCX0gZWxzZSBpZiAoIGRlZmVycmVkICE9PSBvYmplY3QgKSB7CgkJCWRlZmVycmVkLnJlc29sdmUoIG9iamVjdCApOwoJCX0KCQlyZXR1cm4gcHJvbWlzZTsKCX0sCgoJLy8gVXNlIG9mIGpRdWVyeS5icm93c2VyIGlzIGZyb3duZWQgdXBvbi4KCS8vIE1vcmUgZGV0YWlsczogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9VdGlsaXRpZXMvalF1ZXJ5LmJyb3dzZXIKCXVhTWF0Y2g6IGZ1bmN0aW9uKCB1YSApIHsKCQl1YSA9IHVhLnRvTG93ZXJDYXNlKCk7CgoJCXZhciBtYXRjaCA9IHJ3ZWJraXQuZXhlYyggdWEgKSB8fAoJCQlyb3BlcmEuZXhlYyggdWEgKSB8fAoJCQlybXNpZS5leGVjKCB1YSApIHx8CgkJCXVhLmluZGV4T2YoImNvbXBhdGlibGUiKSA8IDAgJiYgcm1vemlsbGEuZXhlYyggdWEgKSB8fAoJCQlbXTsKCgkJcmV0dXJuIHsgYnJvd3NlcjogbWF0Y2hbMV0gfHwgIiIsIHZlcnNpb246IG1hdGNoWzJdIHx8ICIwIiB9OwoJfSwKCglzdWI6IGZ1bmN0aW9uKCkgewoJCWZ1bmN0aW9uIGpRdWVyeVN1YmNsYXNzKCBzZWxlY3RvciwgY29udGV4dCApIHsKCQkJcmV0dXJuIG5ldyBqUXVlcnlTdWJjbGFzcy5mbi5pbml0KCBzZWxlY3RvciwgY29udGV4dCApOwoJCX0KCQlqUXVlcnkuZXh0ZW5kKCB0cnVlLCBqUXVlcnlTdWJjbGFzcywgdGhpcyApOwoJCWpRdWVyeVN1YmNsYXNzLnN1cGVyY2xhc3MgPSB0aGlzOwoJCWpRdWVyeVN1YmNsYXNzLmZuID0galF1ZXJ5U3ViY2xhc3MucHJvdG90eXBlID0gdGhpcygpOwoJCWpRdWVyeVN1YmNsYXNzLmZuLmNvbnN0cnVjdG9yID0galF1ZXJ5U3ViY2xhc3M7CgkJalF1ZXJ5U3ViY2xhc3Muc3ViY2xhc3MgPSB0aGlzLnN1YmNsYXNzOwoJCWpRdWVyeVN1YmNsYXNzLmZuLmluaXQgPSBmdW5jdGlvbiBpbml0KCBzZWxlY3RvciwgY29udGV4dCApIHsKCQkJaWYgKCBjb250ZXh0ICYmIGNvbnRleHQgaW5zdGFuY2VvZiBqUXVlcnkgJiYgIShjb250ZXh0IGluc3RhbmNlb2YgalF1ZXJ5U3ViY2xhc3MpICkgewoJCQkJY29udGV4dCA9IGpRdWVyeVN1YmNsYXNzKGNvbnRleHQpOwoJCQl9CgoJCQlyZXR1cm4galF1ZXJ5LmZuLmluaXQuY2FsbCggdGhpcywgc2VsZWN0b3IsIGNvbnRleHQsIHJvb3RqUXVlcnlTdWJjbGFzcyApOwoJCX07CgkJalF1ZXJ5U3ViY2xhc3MuZm4uaW5pdC5wcm90b3R5cGUgPSBqUXVlcnlTdWJjbGFzcy5mbjsKCQl2YXIgcm9vdGpRdWVyeVN1YmNsYXNzID0galF1ZXJ5U3ViY2xhc3MoZG9jdW1lbnQpOwoJCXJldHVybiBqUXVlcnlTdWJjbGFzczsKCX0sCgoJYnJvd3Nlcjoge30KfSk7CgovLyBDcmVhdGUgcmVhZHlMaXN0IGRlZmVycmVkCnJlYWR5TGlzdCA9IGpRdWVyeS5fRGVmZXJyZWQoKTsKCi8vIFBvcHVsYXRlIHRoZSBjbGFzczJ0eXBlIG1hcApqUXVlcnkuZWFjaCgiQm9vbGVhbiBOdW1iZXIgU3RyaW5nIEZ1bmN0aW9uIEFycmF5IERhdGUgUmVnRXhwIE9iamVjdCIuc3BsaXQoIiAiKSwgZnVuY3Rpb24oaSwgbmFtZSkgewoJY2xhc3MydHlwZVsgIltvYmplY3QgIiArIG5hbWUgKyAiXSIgXSA9IG5hbWUudG9Mb3dlckNhc2UoKTsKfSk7Cgpicm93c2VyTWF0Y2ggPSBqUXVlcnkudWFNYXRjaCggdXNlckFnZW50ICk7CmlmICggYnJvd3Nlck1hdGNoLmJyb3dzZXIgKSB7CglqUXVlcnkuYnJvd3NlclsgYnJvd3Nlck1hdGNoLmJyb3dzZXIgXSA9IHRydWU7CglqUXVlcnkuYnJvd3Nlci52ZXJzaW9uID0gYnJvd3Nlck1hdGNoLnZlcnNpb247Cn0KCi8vIERlcHJlY2F0ZWQsIHVzZSBqUXVlcnkuYnJvd3Nlci53ZWJraXQgaW5zdGVhZAppZiAoIGpRdWVyeS5icm93c2VyLndlYmtpdCApIHsKCWpRdWVyeS5icm93c2VyLnNhZmFyaSA9IHRydWU7Cn0KCmlmICggaW5kZXhPZiApIHsKCWpRdWVyeS5pbkFycmF5ID0gZnVuY3Rpb24oIGVsZW0sIGFycmF5ICkgewoJCXJldHVybiBpbmRleE9mLmNhbGwoIGFycmF5LCBlbGVtICk7Cgl9Owp9CgovLyBJRSBkb2Vzbid0IG1hdGNoIG5vbi1icmVha2luZyBzcGFjZXMgd2l0aCBccwppZiAoIHJub3R3aGl0ZS50ZXN0KCAiXHhBMCIgKSApIHsKCXRyaW1MZWZ0ID0gL15bXHNceEEwXSsvOwoJdHJpbVJpZ2h0ID0gL1tcc1x4QTBdKyQvOwp9CgovLyBBbGwgalF1ZXJ5IG9iamVjdHMgc2hvdWxkIHBvaW50IGJhY2sgdG8gdGhlc2UKcm9vdGpRdWVyeSA9IGpRdWVyeShkb2N1bWVudCk7CgovLyBDbGVhbnVwIGZ1bmN0aW9ucyBmb3IgdGhlIGRvY3VtZW50IHJlYWR5IG1ldGhvZAppZiAoIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIgKSB7CglET01Db250ZW50TG9hZGVkID0gZnVuY3Rpb24oKSB7CgkJZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lciggIkRPTUNvbnRlbnRMb2FkZWQiLCBET01Db250ZW50TG9hZGVkLCBmYWxzZSApOwoJCWpRdWVyeS5yZWFkeSgpOwoJfTsKCn0gZWxzZSBpZiAoIGRvY3VtZW50LmF0dGFjaEV2ZW50ICkgewoJRE9NQ29udGVudExvYWRlZCA9IGZ1bmN0aW9uKCkgewoJCS8vIE1ha2Ugc3VyZSBib2R5IGV4aXN0cywgYXQgbGVhc3QsIGluIGNhc2UgSUUgZ2V0cyBhIGxpdHRsZSBvdmVyemVhbG91cyAodGlja2V0ICM1NDQzKS4KCQlpZiAoIGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICJjb21wbGV0ZSIgKSB7CgkJCWRvY3VtZW50LmRldGFjaEV2ZW50KCAib25yZWFkeXN0YXRlY2hhbmdlIiwgRE9NQ29udGVudExvYWRlZCApOwoJCQlqUXVlcnkucmVhZHkoKTsKCQl9Cgl9Owp9CgovLyBUaGUgRE9NIHJlYWR5IGNoZWNrIGZvciBJbnRlcm5ldCBFeHBsb3JlcgpmdW5jdGlvbiBkb1Njcm9sbENoZWNrKCkgewoJaWYgKCBqUXVlcnkuaXNSZWFkeSApIHsKCQlyZXR1cm47Cgl9CgoJdHJ5IHsKCQkvLyBJZiBJRSBpcyB1c2VkLCB1c2UgdGhlIHRyaWNrIGJ5IERpZWdvIFBlcmluaQoJCS8vIGh0dHA6Ly9qYXZhc2NyaXB0Lm53Ym94LmNvbS9JRUNvbnRlbnRMb2FkZWQvCgkJZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsKCJsZWZ0Iik7Cgl9IGNhdGNoKGUpIHsKCQlzZXRUaW1lb3V0KCBkb1Njcm9sbENoZWNrLCAxICk7CgkJcmV0dXJuOwoJfQoKCS8vIGFuZCBleGVjdXRlIGFueSB3YWl0aW5nIGZ1bmN0aW9ucwoJalF1ZXJ5LnJlYWR5KCk7Cn0KCi8vIEV4cG9zZSBqUXVlcnkgdG8gdGhlIGdsb2JhbCBvYmplY3QKcmV0dXJuIGpRdWVyeTsKCn0pKCk7CgoKKGZ1bmN0aW9uKCkgewoKCWpRdWVyeS5zdXBwb3J0ID0ge307CgoJdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwoKCWRpdi5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwoJZGl2LmlubmVySFRNTCA9ICIgICA8bGluay8+PHRhYmxlPjwvdGFibGU+PGEgaHJlZj0nL2EnIHN0eWxlPSdjb2xvcjpyZWQ7ZmxvYXQ6bGVmdDtvcGFjaXR5Oi41NTsnPmE8L2E+PGlucHV0IHR5cGU9J2NoZWNrYm94Jy8+IjsKCgl2YXIgYWxsID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIiksCgkJYSA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYSIpWzBdLAoJCXNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpLAoJCW9wdCA9IHNlbGVjdC5hcHBlbmRDaGlsZCggZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib3B0aW9uIikgKSwKCQlpbnB1dCA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXTsKCgkvLyBDYW4ndCBnZXQgYmFzaWMgdGVzdCBzdXBwb3J0CglpZiAoICFhbGwgfHwgIWFsbC5sZW5ndGggfHwgIWEgKSB7CgkJcmV0dXJuOwoJfQoKCWpRdWVyeS5zdXBwb3J0ID0gewoJCS8vIElFIHN0cmlwcyBsZWFkaW5nIHdoaXRlc3BhY2Ugd2hlbiAuaW5uZXJIVE1MIGlzIHVzZWQKCQlsZWFkaW5nV2hpdGVzcGFjZTogZGl2LmZpcnN0Q2hpbGQubm9kZVR5cGUgPT09IDMsCgoJCS8vIE1ha2Ugc3VyZSB0aGF0IHRib2R5IGVsZW1lbnRzIGFyZW4ndCBhdXRvbWF0aWNhbGx5IGluc2VydGVkCgkJLy8gSUUgd2lsbCBpbnNlcnQgdGhlbSBpbnRvIGVtcHR5IHRhYmxlcwoJCXRib2R5OiAhZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpLmxlbmd0aCwKCgkJLy8gTWFrZSBzdXJlIHRoYXQgbGluayBlbGVtZW50cyBnZXQgc2VyaWFsaXplZCBjb3JyZWN0bHkgYnkgaW5uZXJIVE1MCgkJLy8gVGhpcyByZXF1aXJlcyBhIHdyYXBwZXIgZWxlbWVudCBpbiBJRQoJCWh0bWxTZXJpYWxpemU6ICEhZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsaW5rIikubGVuZ3RoLAoKCQkvLyBHZXQgdGhlIHN0eWxlIGluZm9ybWF0aW9uIGZyb20gZ2V0QXR0cmlidXRlCgkJLy8gKElFIHVzZXMgLmNzc1RleHQgaW5zdGVkKQoJCXN0eWxlOiAvcmVkLy50ZXN0KCBhLmdldEF0dHJpYnV0ZSgic3R5bGUiKSApLAoKCQkvLyBNYWtlIHN1cmUgdGhhdCBVUkxzIGFyZW4ndCBtYW5pcHVsYXRlZAoJCS8vIChJRSBub3JtYWxpemVzIGl0IGJ5IGRlZmF1bHQpCgkJaHJlZk5vcm1hbGl6ZWQ6IGEuZ2V0QXR0cmlidXRlKCJocmVmIikgPT09ICIvYSIsCgoJCS8vIE1ha2Ugc3VyZSB0aGF0IGVsZW1lbnQgb3BhY2l0eSBleGlzdHMKCQkvLyAoSUUgdXNlcyBmaWx0ZXIgaW5zdGVhZCkKCQkvLyBVc2UgYSByZWdleCB0byB3b3JrIGFyb3VuZCBhIFdlYktpdCBpc3N1ZS4gU2VlICM1MTQ1CgkJb3BhY2l0eTogL14wLjU1JC8udGVzdCggYS5zdHlsZS5vcGFjaXR5ICksCgoJCS8vIFZlcmlmeSBzdHlsZSBmbG9hdCBleGlzdGVuY2UKCQkvLyAoSUUgdXNlcyBzdHlsZUZsb2F0IGluc3RlYWQgb2YgY3NzRmxvYXQpCgkJY3NzRmxvYXQ6ICEhYS5zdHlsZS5jc3NGbG9hdCwKCgkJLy8gTWFrZSBzdXJlIHRoYXQgaWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkIGZvciBhIGNoZWNrYm94CgkJLy8gdGhhdCBpdCBkZWZhdWx0cyB0byAib24iLgoJCS8vIChXZWJLaXQgZGVmYXVsdHMgdG8gIiIgaW5zdGVhZCkKCQljaGVja09uOiBpbnB1dC52YWx1ZSA9PT0gIm9uIiwKCgkJLy8gTWFrZSBzdXJlIHRoYXQgYSBzZWxlY3RlZC1ieS1kZWZhdWx0IG9wdGlvbiBoYXMgYSB3b3JraW5nIHNlbGVjdGVkIHByb3BlcnR5LgoJCS8vIChXZWJLaXQgZGVmYXVsdHMgdG8gZmFsc2UgaW5zdGVhZCBvZiB0cnVlLCBJRSB0b28sIGlmIGl0J3MgaW4gYW4gb3B0Z3JvdXApCgkJb3B0U2VsZWN0ZWQ6IG9wdC5zZWxlY3RlZCwKCgkJLy8gV2lsbCBiZSBkZWZpbmVkIGxhdGVyCgkJZGVsZXRlRXhwYW5kbzogdHJ1ZSwKCQlvcHREaXNhYmxlZDogZmFsc2UsCgkJY2hlY2tDbG9uZTogZmFsc2UsCgkJbm9DbG9uZUV2ZW50OiB0cnVlLAoJCW5vQ2xvbmVDaGVja2VkOiB0cnVlLAoJCWJveE1vZGVsOiBudWxsLAoJCWlubGluZUJsb2NrTmVlZHNMYXlvdXQ6IGZhbHNlLAoJCXNocmlua1dyYXBCbG9ja3M6IGZhbHNlLAoJCXJlbGlhYmxlSGlkZGVuT2Zmc2V0czogdHJ1ZQoJfTsKCglpbnB1dC5jaGVja2VkID0gdHJ1ZTsKCWpRdWVyeS5zdXBwb3J0Lm5vQ2xvbmVDaGVja2VkID0gaW5wdXQuY2xvbmVOb2RlKCB0cnVlICkuY2hlY2tlZDsKCgkvLyBNYWtlIHN1cmUgdGhhdCB0aGUgb3B0aW9ucyBpbnNpZGUgZGlzYWJsZWQgc2VsZWN0cyBhcmVuJ3QgbWFya2VkIGFzIGRpc2FibGVkCgkvLyAoV2ViS2l0IG1hcmtzIHRoZW0gYXMgZGlhYmxlZCkKCXNlbGVjdC5kaXNhYmxlZCA9IHRydWU7CglqUXVlcnkuc3VwcG9ydC5vcHREaXNhYmxlZCA9ICFvcHQuZGlzYWJsZWQ7CgoJdmFyIF9zY3JpcHRFdmFsID0gbnVsbDsKCWpRdWVyeS5zdXBwb3J0LnNjcmlwdEV2YWwgPSBmdW5jdGlvbigpIHsKCQlpZiAoIF9zY3JpcHRFdmFsID09PSBudWxsICkgewoJCQl2YXIgcm9vdCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwKCQkJCXNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpLAoJCQkJaWQgPSAic2NyaXB0IiArIGpRdWVyeS5ub3coKTsKCgkJCXRyeSB7CgkJCQlzY3JpcHQuYXBwZW5kQ2hpbGQoIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCAid2luZG93LiIgKyBpZCArICI9MTsiICkgKTsKCQkJfSBjYXRjaChlKSB7fQoKCQkJcm9vdC5pbnNlcnRCZWZvcmUoIHNjcmlwdCwgcm9vdC5maXJzdENoaWxkICk7CgoJCQkvLyBNYWtlIHN1cmUgdGhhdCB0aGUgZXhlY3V0aW9uIG9mIGNvZGUgd29ya3MgYnkgaW5qZWN0aW5nIGEgc2NyaXB0CgkJCS8vIHRhZyB3aXRoIGFwcGVuZENoaWxkL2NyZWF0ZVRleHROb2RlCgkJCS8vIChJRSBkb2Vzbid0IHN1cHBvcnQgdGhpcywgZmFpbHMsIGFuZCB1c2VzIC50ZXh0IGluc3RlYWQpCgkJCWlmICggd2luZG93WyBpZCBdICkgewoJCQkJX3NjcmlwdEV2YWwgPSB0cnVlOwoJCQkJZGVsZXRlIHdpbmRvd1sgaWQgXTsKCQkJfSBlbHNlIHsKCQkJCV9zY3JpcHRFdmFsID0gZmFsc2U7CgkJCX0KCgkJCXJvb3QucmVtb3ZlQ2hpbGQoIHNjcmlwdCApOwoJCQkvLyByZWxlYXNlIG1lbW9yeSBpbiBJRQoJCQlyb290ID0gc2NyaXB0ID0gaWQgID0gbnVsbDsKCQl9CgoJCXJldHVybiBfc2NyaXB0RXZhbDsKCX07CgoJLy8gVGVzdCB0byBzZWUgaWYgaXQncyBwb3NzaWJsZSB0byBkZWxldGUgYW4gZXhwYW5kbyBmcm9tIGFuIGVsZW1lbnQKCS8vIEZhaWxzIGluIEludGVybmV0IEV4cGxvcmVyCgl0cnkgewoJCWRlbGV0ZSBkaXYudGVzdDsKCgl9IGNhdGNoKGUpIHsKCQlqUXVlcnkuc3VwcG9ydC5kZWxldGVFeHBhbmRvID0gZmFsc2U7Cgl9CgoJaWYgKCAhZGl2LmFkZEV2ZW50TGlzdGVuZXIgJiYgZGl2LmF0dGFjaEV2ZW50ICYmIGRpdi5maXJlRXZlbnQgKSB7CgkJZGl2LmF0dGFjaEV2ZW50KCJvbmNsaWNrIiwgZnVuY3Rpb24gY2xpY2soKSB7CgkJCS8vIENsb25pbmcgYSBub2RlIHNob3VsZG4ndCBjb3B5IG92ZXIgYW55CgkJCS8vIGJvdW5kIGV2ZW50IGhhbmRsZXJzIChJRSBkb2VzIHRoaXMpCgkJCWpRdWVyeS5zdXBwb3J0Lm5vQ2xvbmVFdmVudCA9IGZhbHNlOwoJCQlkaXYuZGV0YWNoRXZlbnQoIm9uY2xpY2siLCBjbGljayk7CgkJfSk7CgkJZGl2LmNsb25lTm9kZSh0cnVlKS5maXJlRXZlbnQoIm9uY2xpY2siKTsKCX0KCglkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKCWRpdi5pbm5lckhUTUwgPSAiPGlucHV0IHR5cGU9J3JhZGlvJyBuYW1lPSdyYWRpb3Rlc3QnIGNoZWNrZWQ9J2NoZWNrZWQnLz4iOwoKCXZhciBmcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKCWZyYWdtZW50LmFwcGVuZENoaWxkKCBkaXYuZmlyc3RDaGlsZCApOwoKCS8vIFdlYktpdCBkb2Vzbid0IGNsb25lIGNoZWNrZWQgc3RhdGUgY29ycmVjdGx5IGluIGZyYWdtZW50cwoJalF1ZXJ5LnN1cHBvcnQuY2hlY2tDbG9uZSA9IGZyYWdtZW50LmNsb25lTm9kZSh0cnVlKS5jbG9uZU5vZGUodHJ1ZSkubGFzdENoaWxkLmNoZWNrZWQ7CgoJLy8gRmlndXJlIG91dCBpZiB0aGUgVzNDIGJveCBtb2RlbCB3b3JrcyBhcyBleHBlY3RlZAoJLy8gZG9jdW1lbnQuYm9keSBtdXN0IGV4aXN0IGJlZm9yZSB3ZSBjYW4gZG8gdGhpcwoJalF1ZXJ5KGZ1bmN0aW9uKCkgewoJCXZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSwKCQkJYm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF07CgoJCS8vIEZyYW1lc2V0IGRvY3VtZW50cyB3aXRoIG5vIGJvZHkgc2hvdWxkIG5vdCBydW4gdGhpcyBjb2RlCgkJaWYgKCAhYm9keSApIHsKCQkJcmV0dXJuOwoJCX0KCgkJZGl2LnN0eWxlLndpZHRoID0gZGl2LnN0eWxlLnBhZGRpbmdMZWZ0ID0gIjFweCI7CgkJYm9keS5hcHBlbmRDaGlsZCggZGl2ICk7CgkJalF1ZXJ5LmJveE1vZGVsID0galF1ZXJ5LnN1cHBvcnQuYm94TW9kZWwgPSBkaXYub2Zmc2V0V2lkdGggPT09IDI7CgoJCWlmICggInpvb20iIGluIGRpdi5zdHlsZSApIHsKCQkJLy8gQ2hlY2sgaWYgbmF0aXZlbHkgYmxvY2stbGV2ZWwgZWxlbWVudHMgYWN0IGxpa2UgaW5saW5lLWJsb2NrCgkJCS8vIGVsZW1lbnRzIHdoZW4gc2V0dGluZyB0aGVpciBkaXNwbGF5IHRvICdpbmxpbmUnIGFuZCBnaXZpbmcKCQkJLy8gdGhlbSBsYXlvdXQKCQkJLy8gKElFIDwgOCBkb2VzIHRoaXMpCgkJCWRpdi5zdHlsZS5kaXNwbGF5ID0gImlubGluZSI7CgkJCWRpdi5zdHlsZS56b29tID0gMTsKCQkJalF1ZXJ5LnN1cHBvcnQuaW5saW5lQmxvY2tOZWVkc0xheW91dCA9IGRpdi5vZmZzZXRXaWR0aCA9PT0gMjsKCgkJCS8vIENoZWNrIGlmIGVsZW1lbnRzIHdpdGggbGF5b3V0IHNocmluay13cmFwIHRoZWlyIGNoaWxkcmVuCgkJCS8vIChJRSA2IGRvZXMgdGhpcykKCQkJZGl2LnN0eWxlLmRpc3BsYXkgPSAiIjsKCQkJZGl2LmlubmVySFRNTCA9ICI8ZGl2IHN0eWxlPSd3aWR0aDo0cHg7Jz48L2Rpdj4iOwoJCQlqUXVlcnkuc3VwcG9ydC5zaHJpbmtXcmFwQmxvY2tzID0gZGl2Lm9mZnNldFdpZHRoICE9PSAyOwoJCX0KCgkJZGl2LmlubmVySFRNTCA9ICI8dGFibGU+PHRyPjx0ZCBzdHlsZT0ncGFkZGluZzowO2JvcmRlcjowO2Rpc3BsYXk6bm9uZSc+PC90ZD48dGQ+dDwvdGQ+PC90cj48L3RhYmxlPiI7CgkJdmFyIHRkcyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGQiKTsKCgkJLy8gQ2hlY2sgaWYgdGFibGUgY2VsbHMgc3RpbGwgaGF2ZSBvZmZzZXRXaWR0aC9IZWlnaHQgd2hlbiB0aGV5IGFyZSBzZXQKCQkvLyB0byBkaXNwbGF5Om5vbmUgYW5kIHRoZXJlIGFyZSBzdGlsbCBvdGhlciB2aXNpYmxlIHRhYmxlIGNlbGxzIGluIGEKCQkvLyB0YWJsZSByb3c7IGlmIHNvLCBvZmZzZXRXaWR0aC9IZWlnaHQgYXJlIG5vdCByZWxpYWJsZSBmb3IgdXNlIHdoZW4KCQkvLyBkZXRlcm1pbmluZyBpZiBhbiBlbGVtZW50IGhhcyBiZWVuIGhpZGRlbiBkaXJlY3RseSB1c2luZwoJCS8vIGRpc3BsYXk6bm9uZSAoaXQgaXMgc3RpbGwgc2FmZSB0byB1c2Ugb2Zmc2V0cyBpZiBhIHBhcmVudCBlbGVtZW50IGlzCgkJLy8gaGlkZGVuOyBkb24gc2FmZXR5IGdvZ2dsZXMgYW5kIHNlZSBidWcgIzQ1MTIgZm9yIG1vcmUgaW5mb3JtYXRpb24pLgoJCS8vIChvbmx5IElFIDggZmFpbHMgdGhpcyB0ZXN0KQoJCWpRdWVyeS5zdXBwb3J0LnJlbGlhYmxlSGlkZGVuT2Zmc2V0cyA9IHRkc1swXS5vZmZzZXRIZWlnaHQgPT09IDA7CgoJCXRkc1swXS5zdHlsZS5kaXNwbGF5ID0gIiI7CgkJdGRzWzFdLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CgoJCS8vIENoZWNrIGlmIGVtcHR5IHRhYmxlIGNlbGxzIHN0aWxsIGhhdmUgb2Zmc2V0V2lkdGgvSGVpZ2h0CgkJLy8gKElFIDwgOCBmYWlsIHRoaXMgdGVzdCkKCQlqUXVlcnkuc3VwcG9ydC5yZWxpYWJsZUhpZGRlbk9mZnNldHMgPSBqUXVlcnkuc3VwcG9ydC5yZWxpYWJsZUhpZGRlbk9mZnNldHMgJiYgdGRzWzBdLm9mZnNldEhlaWdodCA9PT0gMDsKCQlkaXYuaW5uZXJIVE1MID0gIiI7CgoJCWJvZHkucmVtb3ZlQ2hpbGQoIGRpdiApLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CgkJZGl2ID0gdGRzID0gbnVsbDsKCX0pOwoKCS8vIFRlY2huaXF1ZSBmcm9tIEp1cml5IFpheXRzZXYKCS8vIGh0dHA6Ly90aGlua3dlYjIuY29tL3Byb2plY3RzL3Byb3RvdHlwZS9kZXRlY3RpbmctZXZlbnQtc3VwcG9ydC13aXRob3V0LWJyb3dzZXItc25pZmZpbmcvCgl2YXIgZXZlbnRTdXBwb3J0ZWQgPSBmdW5jdGlvbiggZXZlbnROYW1lICkgewoJCXZhciBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwoJCWV2ZW50TmFtZSA9ICJvbiIgKyBldmVudE5hbWU7CgoJCS8vIFdlIG9ubHkgY2FyZSBhYm91dCB0aGUgY2FzZSB3aGVyZSBub24tc3RhbmRhcmQgZXZlbnQgc3lzdGVtcwoJCS8vIGFyZSB1c2VkLCBuYW1lbHkgaW4gSUUuIFNob3J0LWNpcmN1aXRpbmcgaGVyZSBoZWxwcyB1cyB0bwoJCS8vIGF2b2lkIGFuIGV2YWwgY2FsbCAoaW4gc2V0QXR0cmlidXRlKSB3aGljaCBjYW4gY2F1c2UgQ1NQCgkJLy8gdG8gZ28gaGF5d2lyZS4gU2VlOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi9TZWN1cml0eS9DU1AKCQlpZiAoICFlbC5hdHRhY2hFdmVudCApIHsKCQkJcmV0dXJuIHRydWU7CgkJfQoKCQl2YXIgaXNTdXBwb3J0ZWQgPSAoZXZlbnROYW1lIGluIGVsKTsKCQlpZiAoICFpc1N1cHBvcnRlZCApIHsKCQkJZWwuc2V0QXR0cmlidXRlKGV2ZW50TmFtZSwgInJldHVybjsiKTsKCQkJaXNTdXBwb3J0ZWQgPSB0eXBlb2YgZWxbZXZlbnROYW1lXSA9PT0gImZ1bmN0aW9uIjsKCQl9CgkJZWwgPSBudWxsOwoKCQlyZXR1cm4gaXNTdXBwb3J0ZWQ7Cgl9OwoKCWpRdWVyeS5zdXBwb3J0LnN1Ym1pdEJ1YmJsZXMgPSBldmVudFN1cHBvcnRlZCgic3VibWl0Iik7CglqUXVlcnkuc3VwcG9ydC5jaGFuZ2VCdWJibGVzID0gZXZlbnRTdXBwb3J0ZWQoImNoYW5nZSIpOwoKCS8vIHJlbGVhc2UgbWVtb3J5IGluIElFCglkaXYgPSBhbGwgPSBhID0gbnVsbDsKfSkoKTsKCgoKdmFyIHJicmFjZSA9IC9eKD86XHsuKlx9fFxbLipcXSkkLzsKCmpRdWVyeS5leHRlbmQoewoJY2FjaGU6IHt9LAoKCS8vIFBsZWFzZSB1c2Ugd2l0aCBjYXV0aW9uCgl1dWlkOiAwLAoKCS8vIFVuaXF1ZSBmb3IgZWFjaCBjb3B5IG9mIGpRdWVyeSBvbiB0aGUgcGFnZQoJLy8gTm9uLWRpZ2l0cyByZW1vdmVkIHRvIG1hdGNoIHJpbmxpbmVqUXVlcnkKCWV4cGFuZG86ICJqUXVlcnkiICsgKCBqUXVlcnkuZm4uanF1ZXJ5ICsgTWF0aC5yYW5kb20oKSApLnJlcGxhY2UoIC9cRC9nLCAiIiApLAoKCS8vIFRoZSBmb2xsb3dpbmcgZWxlbWVudHMgdGhyb3cgdW5jYXRjaGFibGUgZXhjZXB0aW9ucyBpZiB5b3UKCS8vIGF0dGVtcHQgdG8gYWRkIGV4cGFuZG8gcHJvcGVydGllcyB0byB0aGVtLgoJbm9EYXRhOiB7CgkJImVtYmVkIjogdHJ1ZSwKCQkvLyBCYW4gYWxsIG9iamVjdHMgZXhjZXB0IGZvciBGbGFzaCAod2hpY2ggaGFuZGxlIGV4cGFuZG9zKQoJCSJvYmplY3QiOiAiY2xzaWQ6RDI3Q0RCNkUtQUU2RC0xMWNmLTk2QjgtNDQ0NTUzNTQwMDAwIiwKCQkiYXBwbGV0IjogdHJ1ZQoJfSwKCgloYXNEYXRhOiBmdW5jdGlvbiggZWxlbSApIHsKCQllbGVtID0gZWxlbS5ub2RlVHlwZSA/IGpRdWVyeS5jYWNoZVsgZWxlbVtqUXVlcnkuZXhwYW5kb10gXSA6IGVsZW1bIGpRdWVyeS5leHBhbmRvIF07CgoJCXJldHVybiAhIWVsZW0gJiYgIWlzRW1wdHlEYXRhT2JqZWN0KCBlbGVtICk7Cgl9LAoKCWRhdGE6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCBkYXRhLCBwdnQgLyogSW50ZXJuYWwgVXNlIE9ubHkgKi8gKSB7CgkJaWYgKCAhalF1ZXJ5LmFjY2VwdERhdGEoIGVsZW0gKSApIHsKCQkJcmV0dXJuOwoJCX0KCgkJdmFyIGludGVybmFsS2V5ID0galF1ZXJ5LmV4cGFuZG8sIGdldEJ5TmFtZSA9IHR5cGVvZiBuYW1lID09PSAic3RyaW5nIiwgdGhpc0NhY2hlLAoKCQkJLy8gV2UgaGF2ZSB0byBoYW5kbGUgRE9NIG5vZGVzIGFuZCBKUyBvYmplY3RzIGRpZmZlcmVudGx5IGJlY2F1c2UgSUU2LTcKCQkJLy8gY2FuJ3QgR0Mgb2JqZWN0IHJlZmVyZW5jZXMgcHJvcGVybHkgYWNyb3NzIHRoZSBET00tSlMgYm91bmRhcnkKCQkJaXNOb2RlID0gZWxlbS5ub2RlVHlwZSwKCgkJCS8vIE9ubHkgRE9NIG5vZGVzIG5lZWQgdGhlIGdsb2JhbCBqUXVlcnkgY2FjaGU7IEpTIG9iamVjdCBkYXRhIGlzCgkJCS8vIGF0dGFjaGVkIGRpcmVjdGx5IHRvIHRoZSBvYmplY3Qgc28gR0MgY2FuIG9jY3VyIGF1dG9tYXRpY2FsbHkKCQkJY2FjaGUgPSBpc05vZGUgPyBqUXVlcnkuY2FjaGUgOiBlbGVtLAoKCQkJLy8gT25seSBkZWZpbmluZyBhbiBJRCBmb3IgSlMgb2JqZWN0cyBpZiBpdHMgY2FjaGUgYWxyZWFkeSBleGlzdHMgYWxsb3dzCgkJCS8vIHRoZSBjb2RlIHRvIHNob3J0Y3V0IG9uIHRoZSBzYW1lIHBhdGggYXMgYSBET00gbm9kZSB3aXRoIG5vIGNhY2hlCgkJCWlkID0gaXNOb2RlID8gZWxlbVsgalF1ZXJ5LmV4cGFuZG8gXSA6IGVsZW1bIGpRdWVyeS5leHBhbmRvIF0gJiYgalF1ZXJ5LmV4cGFuZG87CgoJCS8vIEF2b2lkIGRvaW5nIGFueSBtb3JlIHdvcmsgdGhhbiB3ZSBuZWVkIHRvIHdoZW4gdHJ5aW5nIHRvIGdldCBkYXRhIG9uIGFuCgkJLy8gb2JqZWN0IHRoYXQgaGFzIG5vIGRhdGEgYXQgYWxsCgkJaWYgKCAoIWlkIHx8IChwdnQgJiYgaWQgJiYgIWNhY2hlWyBpZCBdWyBpbnRlcm5hbEtleSBdKSkgJiYgZ2V0QnlOYW1lICYmIGRhdGEgPT09IHVuZGVmaW5lZCApIHsKCQkJcmV0dXJuOwoJCX0KCgkJaWYgKCAhaWQgKSB7CgkJCS8vIE9ubHkgRE9NIG5vZGVzIG5lZWQgYSBuZXcgdW5pcXVlIElEIGZvciBlYWNoIGVsZW1lbnQgc2luY2UgdGhlaXIgZGF0YQoJCQkvLyBlbmRzIHVwIGluIHRoZSBnbG9iYWwgY2FjaGUKCQkJaWYgKCBpc05vZGUgKSB7CgkJCQllbGVtWyBqUXVlcnkuZXhwYW5kbyBdID0gaWQgPSArK2pRdWVyeS51dWlkOwoJCQl9IGVsc2UgewoJCQkJaWQgPSBqUXVlcnkuZXhwYW5kbzsKCQkJfQoJCX0KCgkJaWYgKCAhY2FjaGVbIGlkIF0gKSB7CgkJCWNhY2hlWyBpZCBdID0ge307CgoJCQkvLyBUT0RPOiBUaGlzIGlzIGEgaGFjayBmb3IgMS41IE9OTFkuIEF2b2lkcyBleHBvc2luZyBqUXVlcnkKCQkJLy8gbWV0YWRhdGEgb24gcGxhaW4gSlMgb2JqZWN0cyB3aGVuIHRoZSBvYmplY3QgaXMgc2VyaWFsaXplZCB1c2luZwoJCQkvLyBKU09OLnN0cmluZ2lmeQoJCQlpZiAoICFpc05vZGUgKSB7CgkJCQljYWNoZVsgaWQgXS50b0pTT04gPSBqUXVlcnkubm9vcDsKCQkJfQoJCX0KCgkJLy8gQW4gb2JqZWN0IGNhbiBiZSBwYXNzZWQgdG8galF1ZXJ5LmRhdGEgaW5zdGVhZCBvZiBhIGtleS92YWx1ZSBwYWlyOyB0aGlzIGdldHMKCQkvLyBzaGFsbG93IGNvcGllZCBvdmVyIG9udG8gdGhlIGV4aXN0aW5nIGNhY2hlCgkJaWYgKCB0eXBlb2YgbmFtZSA9PT0gIm9iamVjdCIgfHwgdHlwZW9mIG5hbWUgPT09ICJmdW5jdGlvbiIgKSB7CgkJCWlmICggcHZ0ICkgewoJCQkJY2FjaGVbIGlkIF1bIGludGVybmFsS2V5IF0gPSBqUXVlcnkuZXh0ZW5kKGNhY2hlWyBpZCBdWyBpbnRlcm5hbEtleSBdLCBuYW1lKTsKCQkJfSBlbHNlIHsKCQkJCWNhY2hlWyBpZCBdID0galF1ZXJ5LmV4dGVuZChjYWNoZVsgaWQgXSwgbmFtZSk7CgkJCX0KCQl9CgoJCXRoaXNDYWNoZSA9IGNhY2hlWyBpZCBdOwoKCQkvLyBJbnRlcm5hbCBqUXVlcnkgZGF0YSBpcyBzdG9yZWQgaW4gYSBzZXBhcmF0ZSBvYmplY3QgaW5zaWRlIHRoZSBvYmplY3QncyBkYXRhCgkJLy8gY2FjaGUgaW4gb3JkZXIgdG8gYXZvaWQga2V5IGNvbGxpc2lvbnMgYmV0d2VlbiBpbnRlcm5hbCBkYXRhIGFuZCB1c2VyLWRlZmluZWQKCQkvLyBkYXRhCgkJaWYgKCBwdnQgKSB7CgkJCWlmICggIXRoaXNDYWNoZVsgaW50ZXJuYWxLZXkgXSApIHsKCQkJCXRoaXNDYWNoZVsgaW50ZXJuYWxLZXkgXSA9IHt9OwoJCQl9CgoJCQl0aGlzQ2FjaGUgPSB0aGlzQ2FjaGVbIGludGVybmFsS2V5IF07CgkJfQoKCQlpZiAoIGRhdGEgIT09IHVuZGVmaW5lZCApIHsKCQkJdGhpc0NhY2hlWyBuYW1lIF0gPSBkYXRhOwoJCX0KCgkJLy8gVE9ETzogVGhpcyBpcyBhIGhhY2sgZm9yIDEuNSBPTkxZLiBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gMS42LiBVc2VycyBzaG91bGQKCQkvLyBub3QgYXR0ZW1wdCB0byBpbnNwZWN0IHRoZSBpbnRlcm5hbCBldmVudHMgb2JqZWN0IHVzaW5nIGpRdWVyeS5kYXRhLCBhcyB0aGlzCgkJLy8gaW50ZXJuYWwgZGF0YSBvYmplY3QgaXMgdW5kb2N1bWVudGVkIGFuZCBzdWJqZWN0IHRvIGNoYW5nZS4KCQlpZiAoIG5hbWUgPT09ICJldmVudHMiICYmICF0aGlzQ2FjaGVbbmFtZV0gKSB7CgkJCXJldHVybiB0aGlzQ2FjaGVbIGludGVybmFsS2V5IF0gJiYgdGhpc0NhY2hlWyBpbnRlcm5hbEtleSBdLmV2ZW50czsKCQl9CgoJCXJldHVybiBnZXRCeU5hbWUgPyB0aGlzQ2FjaGVbIG5hbWUgXSA6IHRoaXNDYWNoZTsKCX0sCgoJcmVtb3ZlRGF0YTogZnVuY3Rpb24oIGVsZW0sIG5hbWUsIHB2dCAvKiBJbnRlcm5hbCBVc2UgT25seSAqLyApIHsKCQlpZiAoICFqUXVlcnkuYWNjZXB0RGF0YSggZWxlbSApICkgewoJCQlyZXR1cm47CgkJfQoKCQl2YXIgaW50ZXJuYWxLZXkgPSBqUXVlcnkuZXhwYW5kbywgaXNOb2RlID0gZWxlbS5ub2RlVHlwZSwKCgkJCS8vIFNlZSBqUXVlcnkuZGF0YSBmb3IgbW9yZSBpbmZvcm1hdGlvbgoJCQljYWNoZSA9IGlzTm9kZSA/IGpRdWVyeS5jYWNoZSA6IGVsZW0sCgoJCQkvLyBTZWUgalF1ZXJ5LmRhdGEgZm9yIG1vcmUgaW5mb3JtYXRpb24KCQkJaWQgPSBpc05vZGUgPyBlbGVtWyBqUXVlcnkuZXhwYW5kbyBdIDogalF1ZXJ5LmV4cGFuZG87CgoJCS8vIElmIHRoZXJlIGlzIGFscmVhZHkgbm8gY2FjaGUgZW50cnkgZm9yIHRoaXMgb2JqZWN0LCB0aGVyZSBpcyBubwoJCS8vIHB1cnBvc2UgaW4gY29udGludWluZwoJCWlmICggIWNhY2hlWyBpZCBdICkgewoJCQlyZXR1cm47CgkJfQoKCQlpZiAoIG5hbWUgKSB7CgkJCXZhciB0aGlzQ2FjaGUgPSBwdnQgPyBjYWNoZVsgaWQgXVsgaW50ZXJuYWxLZXkgXSA6IGNhY2hlWyBpZCBdOwoKCQkJaWYgKCB0aGlzQ2FjaGUgKSB7CgkJCQlkZWxldGUgdGhpc0NhY2hlWyBuYW1lIF07CgoJCQkJLy8gSWYgdGhlcmUgaXMgbm8gZGF0YSBsZWZ0IGluIHRoZSBjYWNoZSwgd2Ugd2FudCB0byBjb250aW51ZQoJCQkJLy8gYW5kIGxldCB0aGUgY2FjaGUgb2JqZWN0IGl0c2VsZiBnZXQgZGVzdHJveWVkCgkJCQlpZiAoICFpc0VtcHR5RGF0YU9iamVjdCh0aGlzQ2FjaGUpICkgewoJCQkJCXJldHVybjsKCQkJCX0KCQkJfQoJCX0KCgkJLy8gU2VlIGpRdWVyeS5kYXRhIGZvciBtb3JlIGluZm9ybWF0aW9uCgkJaWYgKCBwdnQgKSB7CgkJCWRlbGV0ZSBjYWNoZVsgaWQgXVsgaW50ZXJuYWxLZXkgXTsKCgkJCS8vIERvbid0IGRlc3Ryb3kgdGhlIHBhcmVudCBjYWNoZSB1bmxlc3MgdGhlIGludGVybmFsIGRhdGEgb2JqZWN0CgkJCS8vIGhhZCBiZWVuIHRoZSBvbmx5IHRoaW5nIGxlZnQgaW4gaXQKCQkJaWYgKCAhaXNFbXB0eURhdGFPYmplY3QoY2FjaGVbIGlkIF0pICkgewoJCQkJcmV0dXJuOwoJCQl9CgkJfQoKCQl2YXIgaW50ZXJuYWxDYWNoZSA9IGNhY2hlWyBpZCBdWyBpbnRlcm5hbEtleSBdOwoKCQkvLyBCcm93c2VycyB0aGF0IGZhaWwgZXhwYW5kbyBkZWxldGlvbiBhbHNvIHJlZnVzZSB0byBkZWxldGUgZXhwYW5kb3Mgb24KCQkvLyB0aGUgd2luZG93LCBidXQgaXQgd2lsbCBhbGxvdyBpdCBvbiBhbGwgb3RoZXIgSlMgb2JqZWN0czsgb3RoZXIgYnJvd3NlcnMKCQkvLyBkb24ndCBjYXJlCgkJaWYgKCBqUXVlcnkuc3VwcG9ydC5kZWxldGVFeHBhbmRvIHx8IGNhY2hlICE9IHdpbmRvdyApIHsKCQkJZGVsZXRlIGNhY2hlWyBpZCBdOwoJCX0gZWxzZSB7CgkJCWNhY2hlWyBpZCBdID0gbnVsbDsKCQl9CgoJCS8vIFdlIGRlc3Ryb3llZCB0aGUgZW50aXJlIHVzZXIgY2FjaGUgYXQgb25jZSBiZWNhdXNlIGl0J3MgZmFzdGVyIHRoYW4KCQkvLyBpdGVyYXRpbmcgdGhyb3VnaCBlYWNoIGtleSwgYnV0IHdlIG5lZWQgdG8gY29udGludWUgdG8gcGVyc2lzdCBpbnRlcm5hbAoJCS8vIGRhdGEgaWYgaXQgZXhpc3RlZAoJCWlmICggaW50ZXJuYWxDYWNoZSApIHsKCQkJY2FjaGVbIGlkIF0gPSB7fTsKCQkJLy8gVE9ETzogVGhpcyBpcyBhIGhhY2sgZm9yIDEuNSBPTkxZLiBBdm9pZHMgZXhwb3NpbmcgalF1ZXJ5CgkJCS8vIG1ldGFkYXRhIG9uIHBsYWluIEpTIG9iamVjdHMgd2hlbiB0aGUgb2JqZWN0IGlzIHNlcmlhbGl6ZWQgdXNpbmcKCQkJLy8gSlNPTi5zdHJpbmdpZnkKCQkJaWYgKCAhaXNOb2RlICkgewoJCQkJY2FjaGVbIGlkIF0udG9KU09OID0galF1ZXJ5Lm5vb3A7CgkJCX0KCgkJCWNhY2hlWyBpZCBdWyBpbnRlcm5hbEtleSBdID0gaW50ZXJuYWxDYWNoZTsKCgkJLy8gT3RoZXJ3aXNlLCB3ZSBuZWVkIHRvIGVsaW1pbmF0ZSB0aGUgZXhwYW5kbyBvbiB0aGUgbm9kZSB0byBhdm9pZAoJCS8vIGZhbHNlIGxvb2t1cHMgaW4gdGhlIGNhY2hlIGZvciBlbnRyaWVzIHRoYXQgbm8gbG9uZ2VyIGV4aXN0CgkJfSBlbHNlIGlmICggaXNOb2RlICkgewoJCQkvLyBJRSBkb2VzIG5vdCBhbGxvdyB1cyB0byBkZWxldGUgZXhwYW5kbyBwcm9wZXJ0aWVzIGZyb20gbm9kZXMsCgkJCS8vIG5vciBkb2VzIGl0IGhhdmUgYSByZW1vdmVBdHRyaWJ1dGUgZnVuY3Rpb24gb24gRG9jdW1lbnQgbm9kZXM7CgkJCS8vIHdlIG11c3QgaGFuZGxlIGFsbCBvZiB0aGVzZSBjYXNlcwoJCQlpZiAoIGpRdWVyeS5zdXBwb3J0LmRlbGV0ZUV4cGFuZG8gKSB7CgkJCQlkZWxldGUgZWxlbVsgalF1ZXJ5LmV4cGFuZG8gXTsKCQkJfSBlbHNlIGlmICggZWxlbS5yZW1vdmVBdHRyaWJ1dGUgKSB7CgkJCQllbGVtLnJlbW92ZUF0dHJpYnV0ZSggalF1ZXJ5LmV4cGFuZG8gKTsKCQkJfSBlbHNlIHsKCQkJCWVsZW1bIGpRdWVyeS5leHBhbmRvIF0gPSBudWxsOwoJCQl9CgkJfQoJfSwKCgkvLyBGb3IgaW50ZXJuYWwgdXNlIG9ubHkuCglfZGF0YTogZnVuY3Rpb24oIGVsZW0sIG5hbWUsIGRhdGEgKSB7CgkJcmV0dXJuIGpRdWVyeS5kYXRhKCBlbGVtLCBuYW1lLCBkYXRhLCB0cnVlICk7Cgl9LAoKCS8vIEEgbWV0aG9kIGZvciBkZXRlcm1pbmluZyBpZiBhIERPTSBub2RlIGNhbiBoYW5kbGUgdGhlIGRhdGEgZXhwYW5kbwoJYWNjZXB0RGF0YTogZnVuY3Rpb24oIGVsZW0gKSB7CgkJaWYgKCBlbGVtLm5vZGVOYW1lICkgewoJCQl2YXIgbWF0Y2ggPSBqUXVlcnkubm9EYXRhWyBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgXTsKCgkJCWlmICggbWF0Y2ggKSB7CgkJCQlyZXR1cm4gIShtYXRjaCA9PT0gdHJ1ZSB8fCBlbGVtLmdldEF0dHJpYnV0ZSgiY2xhc3NpZCIpICE9PSBtYXRjaCk7CgkJCX0KCQl9CgoJCXJldHVybiB0cnVlOwoJfQp9KTsKCmpRdWVyeS5mbi5leHRlbmQoewoJZGF0YTogZnVuY3Rpb24oIGtleSwgdmFsdWUgKSB7CgkJdmFyIGRhdGEgPSBudWxsOwoKCQlpZiAoIHR5cGVvZiBrZXkgPT09ICJ1bmRlZmluZWQiICkgewoJCQlpZiAoIHRoaXMubGVuZ3RoICkgewoJCQkJZGF0YSA9IGpRdWVyeS5kYXRhKCB0aGlzWzBdICk7CgoJCQkJaWYgKCB0aGlzWzBdLm5vZGVUeXBlID09PSAxICkgewoJCQkJCXZhciBhdHRyID0gdGhpc1swXS5hdHRyaWJ1dGVzLCBuYW1lOwoJCQkJCWZvciAoIHZhciBpID0gMCwgbCA9IGF0dHIubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCQkJCQluYW1lID0gYXR0cltpXS5uYW1lOwoKCQkJCQkJaWYgKCBuYW1lLmluZGV4T2YoICJkYXRhLSIgKSA9PT0gMCApIHsKCQkJCQkJCW5hbWUgPSBuYW1lLnN1YnN0ciggNSApOwoJCQkJCQkJZGF0YUF0dHIoIHRoaXNbMF0sIG5hbWUsIGRhdGFbIG5hbWUgXSApOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9CgoJCQlyZXR1cm4gZGF0YTsKCgkJfSBlbHNlIGlmICggdHlwZW9mIGtleSA9PT0gIm9iamVjdCIgKSB7CgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCQlqUXVlcnkuZGF0YSggdGhpcywga2V5ICk7CgkJCX0pOwoJCX0KCgkJdmFyIHBhcnRzID0ga2V5LnNwbGl0KCIuIik7CgkJcGFydHNbMV0gPSBwYXJ0c1sxXSA/ICIuIiArIHBhcnRzWzFdIDogIiI7CgoJCWlmICggdmFsdWUgPT09IHVuZGVmaW5lZCApIHsKCQkJZGF0YSA9IHRoaXMudHJpZ2dlckhhbmRsZXIoImdldERhdGEiICsgcGFydHNbMV0gKyAiISIsIFtwYXJ0c1swXV0pOwoKCQkJLy8gVHJ5IHRvIGZldGNoIGFueSBpbnRlcm5hbGx5IHN0b3JlZCBkYXRhIGZpcnN0CgkJCWlmICggZGF0YSA9PT0gdW5kZWZpbmVkICYmIHRoaXMubGVuZ3RoICkgewoJCQkJZGF0YSA9IGpRdWVyeS5kYXRhKCB0aGlzWzBdLCBrZXkgKTsKCQkJCWRhdGEgPSBkYXRhQXR0ciggdGhpc1swXSwga2V5LCBkYXRhICk7CgkJCX0KCgkJCXJldHVybiBkYXRhID09PSB1bmRlZmluZWQgJiYgcGFydHNbMV0gPwoJCQkJdGhpcy5kYXRhKCBwYXJ0c1swXSApIDoKCQkJCWRhdGE7CgoJCX0gZWxzZSB7CgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCQl2YXIgJHRoaXMgPSBqUXVlcnkoIHRoaXMgKSwKCQkJCQlhcmdzID0gWyBwYXJ0c1swXSwgdmFsdWUgXTsKCgkJCQkkdGhpcy50cmlnZ2VySGFuZGxlciggInNldERhdGEiICsgcGFydHNbMV0gKyAiISIsIGFyZ3MgKTsKCQkJCWpRdWVyeS5kYXRhKCB0aGlzLCBrZXksIHZhbHVlICk7CgkJCQkkdGhpcy50cmlnZ2VySGFuZGxlciggImNoYW5nZURhdGEiICsgcGFydHNbMV0gKyAiISIsIGFyZ3MgKTsKCQkJfSk7CgkJfQoJfSwKCglyZW1vdmVEYXRhOiBmdW5jdGlvbigga2V5ICkgewoJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCWpRdWVyeS5yZW1vdmVEYXRhKCB0aGlzLCBrZXkgKTsKCQl9KTsKCX0KfSk7CgpmdW5jdGlvbiBkYXRhQXR0ciggZWxlbSwga2V5LCBkYXRhICkgewoJLy8gSWYgbm90aGluZyB3YXMgZm91bmQgaW50ZXJuYWxseSwgdHJ5IHRvIGZldGNoIGFueQoJLy8gZGF0YSBmcm9tIHRoZSBIVE1MNSBkYXRhLSogYXR0cmlidXRlCglpZiAoIGRhdGEgPT09IHVuZGVmaW5lZCAmJiBlbGVtLm5vZGVUeXBlID09PSAxICkgewoJCWRhdGEgPSBlbGVtLmdldEF0dHJpYnV0ZSggImRhdGEtIiArIGtleSApOwoKCQlpZiAoIHR5cGVvZiBkYXRhID09PSAic3RyaW5nIiApIHsKCQkJdHJ5IHsKCQkJCWRhdGEgPSBkYXRhID09PSAidHJ1ZSIgPyB0cnVlIDoKCQkJCWRhdGEgPT09ICJmYWxzZSIgPyBmYWxzZSA6CgkJCQlkYXRhID09PSAibnVsbCIgPyBudWxsIDoKCQkJCSFqUXVlcnkuaXNOYU4oIGRhdGEgKSA/IHBhcnNlRmxvYXQoIGRhdGEgKSA6CgkJCQkJcmJyYWNlLnRlc3QoIGRhdGEgKSA/IGpRdWVyeS5wYXJzZUpTT04oIGRhdGEgKSA6CgkJCQkJZGF0YTsKCQkJfSBjYXRjaCggZSApIHt9CgoJCQkvLyBNYWtlIHN1cmUgd2Ugc2V0IHRoZSBkYXRhIHNvIGl0IGlzbid0IGNoYW5nZWQgbGF0ZXIKCQkJalF1ZXJ5LmRhdGEoIGVsZW0sIGtleSwgZGF0YSApOwoKCQl9IGVsc2UgewoJCQlkYXRhID0gdW5kZWZpbmVkOwoJCX0KCX0KCglyZXR1cm4gZGF0YTsKfQoKLy8gVE9ETzogVGhpcyBpcyBhIGhhY2sgZm9yIDEuNSBPTkxZIHRvIGFsbG93IG9iamVjdHMgd2l0aCBhIHNpbmdsZSB0b0pTT04KLy8gcHJvcGVydHkgdG8gYmUgY29uc2lkZXJlZCBlbXB0eSBvYmplY3RzOyB0aGlzIHByb3BlcnR5IGFsd2F5cyBleGlzdHMgaW4KLy8gb3JkZXIgdG8gbWFrZSBzdXJlIEpTT04uc3RyaW5naWZ5IGRvZXMgbm90IGV4cG9zZSBpbnRlcm5hbCBtZXRhZGF0YQpmdW5jdGlvbiBpc0VtcHR5RGF0YU9iamVjdCggb2JqICkgewoJZm9yICggdmFyIG5hbWUgaW4gb2JqICkgewoJCWlmICggbmFtZSAhPT0gInRvSlNPTiIgKSB7CgkJCXJldHVybiBmYWxzZTsKCQl9Cgl9CgoJcmV0dXJuIHRydWU7Cn0KCgoKCmpRdWVyeS5leHRlbmQoewoJcXVldWU6IGZ1bmN0aW9uKCBlbGVtLCB0eXBlLCBkYXRhICkgewoJCWlmICggIWVsZW0gKSB7CgkJCXJldHVybjsKCQl9CgoJCXR5cGUgPSAodHlwZSB8fCAiZngiKSArICJxdWV1ZSI7CgkJdmFyIHEgPSBqUXVlcnkuX2RhdGEoIGVsZW0sIHR5cGUgKTsKCgkJLy8gU3BlZWQgdXAgZGVxdWV1ZSBieSBnZXR0aW5nIG91dCBxdWlja2x5IGlmIHRoaXMgaXMganVzdCBhIGxvb2t1cAoJCWlmICggIWRhdGEgKSB7CgkJCXJldHVybiBxIHx8IFtdOwoJCX0KCgkJaWYgKCAhcSB8fCBqUXVlcnkuaXNBcnJheShkYXRhKSApIHsKCQkJcSA9IGpRdWVyeS5fZGF0YSggZWxlbSwgdHlwZSwgalF1ZXJ5Lm1ha2VBcnJheShkYXRhKSApOwoKCQl9IGVsc2UgewoJCQlxLnB1c2goIGRhdGEgKTsKCQl9CgoJCXJldHVybiBxOwoJfSwKCglkZXF1ZXVlOiBmdW5jdGlvbiggZWxlbSwgdHlwZSApIHsKCQl0eXBlID0gdHlwZSB8fCAiZngiOwoKCQl2YXIgcXVldWUgPSBqUXVlcnkucXVldWUoIGVsZW0sIHR5cGUgKSwKCQkJZm4gPSBxdWV1ZS5zaGlmdCgpOwoKCQkvLyBJZiB0aGUgZnggcXVldWUgaXMgZGVxdWV1ZWQsIGFsd2F5cyByZW1vdmUgdGhlIHByb2dyZXNzIHNlbnRpbmVsCgkJaWYgKCBmbiA9PT0gImlucHJvZ3Jlc3MiICkgewoJCQlmbiA9IHF1ZXVlLnNoaWZ0KCk7CgkJfQoKCQlpZiAoIGZuICkgewoJCQkvLyBBZGQgYSBwcm9ncmVzcyBzZW50aW5lbCB0byBwcmV2ZW50IHRoZSBmeCBxdWV1ZSBmcm9tIGJlaW5nCgkJCS8vIGF1dG9tYXRpY2FsbHkgZGVxdWV1ZWQKCQkJaWYgKCB0eXBlID09PSAiZngiICkgewoJCQkJcXVldWUudW5zaGlmdCgiaW5wcm9ncmVzcyIpOwoJCQl9CgoJCQlmbi5jYWxsKGVsZW0sIGZ1bmN0aW9uKCkgewoJCQkJalF1ZXJ5LmRlcXVldWUoZWxlbSwgdHlwZSk7CgkJCX0pOwoJCX0KCgkJaWYgKCAhcXVldWUubGVuZ3RoICkgewoJCQlqUXVlcnkucmVtb3ZlRGF0YSggZWxlbSwgdHlwZSArICJxdWV1ZSIsIHRydWUgKTsKCQl9Cgl9Cn0pOwoKalF1ZXJ5LmZuLmV4dGVuZCh7CglxdWV1ZTogZnVuY3Rpb24oIHR5cGUsIGRhdGEgKSB7CgkJaWYgKCB0eXBlb2YgdHlwZSAhPT0gInN0cmluZyIgKSB7CgkJCWRhdGEgPSB0eXBlOwoJCQl0eXBlID0gImZ4IjsKCQl9CgoJCWlmICggZGF0YSA9PT0gdW5kZWZpbmVkICkgewoJCQlyZXR1cm4galF1ZXJ5LnF1ZXVlKCB0aGlzWzBdLCB0eXBlICk7CgkJfQoJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oIGkgKSB7CgkJCXZhciBxdWV1ZSA9IGpRdWVyeS5xdWV1ZSggdGhpcywgdHlwZSwgZGF0YSApOwoKCQkJaWYgKCB0eXBlID09PSAiZngiICYmIHF1ZXVlWzBdICE9PSAiaW5wcm9ncmVzcyIgKSB7CgkJCQlqUXVlcnkuZGVxdWV1ZSggdGhpcywgdHlwZSApOwoJCQl9CgkJfSk7Cgl9LAoJZGVxdWV1ZTogZnVuY3Rpb24oIHR5cGUgKSB7CgkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJalF1ZXJ5LmRlcXVldWUoIHRoaXMsIHR5cGUgKTsKCQl9KTsKCX0sCgoJLy8gQmFzZWQgb2ZmIG9mIHRoZSBwbHVnaW4gYnkgQ2xpbnQgSGVsZmVycywgd2l0aCBwZXJtaXNzaW9uLgoJLy8gaHR0cDovL2JsaW5kc2lnbmFscy5jb20vaW5kZXgucGhwLzIwMDkvMDcvanF1ZXJ5LWRlbGF5LwoJZGVsYXk6IGZ1bmN0aW9uKCB0aW1lLCB0eXBlICkgewoJCXRpbWUgPSBqUXVlcnkuZnggPyBqUXVlcnkuZnguc3BlZWRzW3RpbWVdIHx8IHRpbWUgOiB0aW1lOwoJCXR5cGUgPSB0eXBlIHx8ICJmeCI7CgoJCXJldHVybiB0aGlzLnF1ZXVlKCB0eXBlLCBmdW5jdGlvbigpIHsKCQkJdmFyIGVsZW0gPSB0aGlzOwoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewoJCQkJalF1ZXJ5LmRlcXVldWUoIGVsZW0sIHR5cGUgKTsKCQkJfSwgdGltZSApOwoJCX0pOwoJfSwKCgljbGVhclF1ZXVlOiBmdW5jdGlvbiggdHlwZSApIHsKCQlyZXR1cm4gdGhpcy5xdWV1ZSggdHlwZSB8fCAiZngiLCBbXSApOwoJfQp9KTsKCgoKCnZhciByY2xhc3MgPSAvW1xuXHRccl0vZywKCXJzcGFjZXMgPSAvXHMrLywKCXJyZXR1cm4gPSAvXHIvZywKCXJzcGVjaWFsdXJsID0gL14oPzpocmVmfHNyY3xzdHlsZSkkLywKCXJ0eXBlID0gL14oPzpidXR0b258aW5wdXQpJC9pLAoJcmZvY3VzYWJsZSA9IC9eKD86YnV0dG9ufGlucHV0fG9iamVjdHxzZWxlY3R8dGV4dGFyZWEpJC9pLAoJcmNsaWNrYWJsZSA9IC9eYSg/OnJlYSk/JC9pLAoJcnJhZGlvY2hlY2sgPSAvXig/OnJhZGlvfGNoZWNrYm94KSQvaTsKCmpRdWVyeS5wcm9wcyA9IHsKCSJmb3IiOiAiaHRtbEZvciIsCgkiY2xhc3MiOiAiY2xhc3NOYW1lIiwKCXJlYWRvbmx5OiAicmVhZE9ubHkiLAoJbWF4bGVuZ3RoOiAibWF4TGVuZ3RoIiwKCWNlbGxzcGFjaW5nOiAiY2VsbFNwYWNpbmciLAoJcm93c3BhbjogInJvd1NwYW4iLAoJY29sc3BhbjogImNvbFNwYW4iLAoJdGFiaW5kZXg6ICJ0YWJJbmRleCIsCgl1c2VtYXA6ICJ1c2VNYXAiLAoJZnJhbWVib3JkZXI6ICJmcmFtZUJvcmRlciIKfTsKCmpRdWVyeS5mbi5leHRlbmQoewoJYXR0cjogZnVuY3Rpb24oIG5hbWUsIHZhbHVlICkgewoJCXJldHVybiBqUXVlcnkuYWNjZXNzKCB0aGlzLCBuYW1lLCB2YWx1ZSwgdHJ1ZSwgalF1ZXJ5LmF0dHIgKTsKCX0sCgoJcmVtb3ZlQXR0cjogZnVuY3Rpb24oIG5hbWUsIGZuICkgewoJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXsKCQkJalF1ZXJ5LmF0dHIoIHRoaXMsIG5hbWUsICIiICk7CgkJCWlmICggdGhpcy5ub2RlVHlwZSA9PT0gMSApIHsKCQkJCXRoaXMucmVtb3ZlQXR0cmlidXRlKCBuYW1lICk7CgkJCX0KCQl9KTsKCX0sCgoJYWRkQ2xhc3M6IGZ1bmN0aW9uKCB2YWx1ZSApIHsKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKHZhbHVlKSApIHsKCQkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihpKSB7CgkJCQl2YXIgc2VsZiA9IGpRdWVyeSh0aGlzKTsKCQkJCXNlbGYuYWRkQ2xhc3MoIHZhbHVlLmNhbGwodGhpcywgaSwgc2VsZi5hdHRyKCJjbGFzcyIpKSApOwoJCQl9KTsKCQl9CgoJCWlmICggdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAic3RyaW5nIiApIHsKCQkJdmFyIGNsYXNzTmFtZXMgPSAodmFsdWUgfHwgIiIpLnNwbGl0KCByc3BhY2VzICk7CgoJCQlmb3IgKCB2YXIgaSA9IDAsIGwgPSB0aGlzLmxlbmd0aDsgaSA8IGw7IGkrKyApIHsKCQkJCXZhciBlbGVtID0gdGhpc1tpXTsKCgkJCQlpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7CgkJCQkJaWYgKCAhZWxlbS5jbGFzc05hbWUgKSB7CgkJCQkJCWVsZW0uY2xhc3NOYW1lID0gdmFsdWU7CgoJCQkJCX0gZWxzZSB7CgkJCQkJCXZhciBjbGFzc05hbWUgPSAiICIgKyBlbGVtLmNsYXNzTmFtZSArICIgIiwKCQkJCQkJCXNldENsYXNzID0gZWxlbS5jbGFzc05hbWU7CgoJCQkJCQlmb3IgKCB2YXIgYyA9IDAsIGNsID0gY2xhc3NOYW1lcy5sZW5ndGg7IGMgPCBjbDsgYysrICkgewoJCQkJCQkJaWYgKCBjbGFzc05hbWUuaW5kZXhPZiggIiAiICsgY2xhc3NOYW1lc1tjXSArICIgIiApIDwgMCApIHsKCQkJCQkJCQlzZXRDbGFzcyArPSAiICIgKyBjbGFzc05hbWVzW2NdOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJCWVsZW0uY2xhc3NOYW1lID0galF1ZXJ5LnRyaW0oIHNldENsYXNzICk7CgkJCQkJfQoJCQkJfQoJCQl9CgkJfQoKCQlyZXR1cm4gdGhpczsKCX0sCgoJcmVtb3ZlQ2xhc3M6IGZ1bmN0aW9uKCB2YWx1ZSApIHsKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKHZhbHVlKSApIHsKCQkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihpKSB7CgkJCQl2YXIgc2VsZiA9IGpRdWVyeSh0aGlzKTsKCQkJCXNlbGYucmVtb3ZlQ2xhc3MoIHZhbHVlLmNhbGwodGhpcywgaSwgc2VsZi5hdHRyKCJjbGFzcyIpKSApOwoJCQl9KTsKCQl9CgoJCWlmICggKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gInN0cmluZyIpIHx8IHZhbHVlID09PSB1bmRlZmluZWQgKSB7CgkJCXZhciBjbGFzc05hbWVzID0gKHZhbHVlIHx8ICIiKS5zcGxpdCggcnNwYWNlcyApOwoKCQkJZm9yICggdmFyIGkgPSAwLCBsID0gdGhpcy5sZW5ndGg7IGkgPCBsOyBpKysgKSB7CgkJCQl2YXIgZWxlbSA9IHRoaXNbaV07CgoJCQkJaWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICYmIGVsZW0uY2xhc3NOYW1lICkgewoJCQkJCWlmICggdmFsdWUgKSB7CgkJCQkJCXZhciBjbGFzc05hbWUgPSAoIiAiICsgZWxlbS5jbGFzc05hbWUgKyAiICIpLnJlcGxhY2UocmNsYXNzLCAiICIpOwoJCQkJCQlmb3IgKCB2YXIgYyA9IDAsIGNsID0gY2xhc3NOYW1lcy5sZW5ndGg7IGMgPCBjbDsgYysrICkgewoJCQkJCQkJY2xhc3NOYW1lID0gY2xhc3NOYW1lLnJlcGxhY2UoIiAiICsgY2xhc3NOYW1lc1tjXSArICIgIiwgIiAiKTsKCQkJCQkJfQoJCQkJCQllbGVtLmNsYXNzTmFtZSA9IGpRdWVyeS50cmltKCBjbGFzc05hbWUgKTsKCgkJCQkJfSBlbHNlIHsKCQkJCQkJZWxlbS5jbGFzc05hbWUgPSAiIjsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgoJCXJldHVybiB0aGlzOwoJfSwKCgl0b2dnbGVDbGFzczogZnVuY3Rpb24oIHZhbHVlLCBzdGF0ZVZhbCApIHsKCQl2YXIgdHlwZSA9IHR5cGVvZiB2YWx1ZSwKCQkJaXNCb29sID0gdHlwZW9mIHN0YXRlVmFsID09PSAiYm9vbGVhbiI7CgoJCWlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHZhbHVlICkgKSB7CgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oaSkgewoJCQkJdmFyIHNlbGYgPSBqUXVlcnkodGhpcyk7CgkJCQlzZWxmLnRvZ2dsZUNsYXNzKCB2YWx1ZS5jYWxsKHRoaXMsIGksIHNlbGYuYXR0cigiY2xhc3MiKSwgc3RhdGVWYWwpLCBzdGF0ZVZhbCApOwoJCQl9KTsKCQl9CgoJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCWlmICggdHlwZSA9PT0gInN0cmluZyIgKSB7CgkJCQkvLyB0b2dnbGUgaW5kaXZpZHVhbCBjbGFzcyBuYW1lcwoJCQkJdmFyIGNsYXNzTmFtZSwKCQkJCQlpID0gMCwKCQkJCQlzZWxmID0galF1ZXJ5KCB0aGlzICksCgkJCQkJc3RhdGUgPSBzdGF0ZVZhbCwKCQkJCQljbGFzc05hbWVzID0gdmFsdWUuc3BsaXQoIHJzcGFjZXMgKTsKCgkJCQl3aGlsZSAoIChjbGFzc05hbWUgPSBjbGFzc05hbWVzWyBpKysgXSkgKSB7CgkJCQkJLy8gY2hlY2sgZWFjaCBjbGFzc05hbWUgZ2l2ZW4sIHNwYWNlIHNlcGVyYXRlZCBsaXN0CgkJCQkJc3RhdGUgPSBpc0Jvb2wgPyBzdGF0ZSA6ICFzZWxmLmhhc0NsYXNzKCBjbGFzc05hbWUgKTsKCQkJCQlzZWxmWyBzdGF0ZSA/ICJhZGRDbGFzcyIgOiAicmVtb3ZlQ2xhc3MiIF0oIGNsYXNzTmFtZSApOwoJCQkJfQoKCQkJfSBlbHNlIGlmICggdHlwZSA9PT0gInVuZGVmaW5lZCIgfHwgdHlwZSA9PT0gImJvb2xlYW4iICkgewoJCQkJaWYgKCB0aGlzLmNsYXNzTmFtZSApIHsKCQkJCQkvLyBzdG9yZSBjbGFzc05hbWUgaWYgc2V0CgkJCQkJalF1ZXJ5Ll9kYXRhKCB0aGlzLCAiX19jbGFzc05hbWVfXyIsIHRoaXMuY2xhc3NOYW1lICk7CgkJCQl9CgoJCQkJLy8gdG9nZ2xlIHdob2xlIGNsYXNzTmFtZQoJCQkJdGhpcy5jbGFzc05hbWUgPSB0aGlzLmNsYXNzTmFtZSB8fCB2YWx1ZSA9PT0gZmFsc2UgPyAiIiA6IGpRdWVyeS5fZGF0YSggdGhpcywgIl9fY2xhc3NOYW1lX18iICkgfHwgIiI7CgkJCX0KCQl9KTsKCX0sCgoJaGFzQ2xhc3M6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHsKCQl2YXIgY2xhc3NOYW1lID0gIiAiICsgc2VsZWN0b3IgKyAiICI7CgkJZm9yICggdmFyIGkgPSAwLCBsID0gdGhpcy5sZW5ndGg7IGkgPCBsOyBpKysgKSB7CgkJCWlmICggKCIgIiArIHRoaXNbaV0uY2xhc3NOYW1lICsgIiAiKS5yZXBsYWNlKHJjbGFzcywgIiAiKS5pbmRleE9mKCBjbGFzc05hbWUgKSA+IC0xICkgewoJCQkJcmV0dXJuIHRydWU7CgkJCX0KCQl9CgoJCXJldHVybiBmYWxzZTsKCX0sCgoJdmFsOiBmdW5jdGlvbiggdmFsdWUgKSB7CgkJaWYgKCAhYXJndW1lbnRzLmxlbmd0aCApIHsKCQkJdmFyIGVsZW0gPSB0aGlzWzBdOwoKCQkJaWYgKCBlbGVtICkgewoJCQkJaWYgKCBqUXVlcnkubm9kZU5hbWUoIGVsZW0sICJvcHRpb24iICkgKSB7CgkJCQkJLy8gYXR0cmlidXRlcy52YWx1ZSBpcyB1bmRlZmluZWQgaW4gQmxhY2tiZXJyeSA0LjcgYnV0CgkJCQkJLy8gdXNlcyAudmFsdWUuIFNlZSAjNjkzMgoJCQkJCXZhciB2YWwgPSBlbGVtLmF0dHJpYnV0ZXMudmFsdWU7CgkJCQkJcmV0dXJuICF2YWwgfHwgdmFsLnNwZWNpZmllZCA/IGVsZW0udmFsdWUgOiBlbGVtLnRleHQ7CgkJCQl9CgoJCQkJLy8gV2UgbmVlZCB0byBoYW5kbGUgc2VsZWN0IGJveGVzIHNwZWNpYWwKCQkJCWlmICggalF1ZXJ5Lm5vZGVOYW1lKCBlbGVtLCAic2VsZWN0IiApICkgewoJCQkJCXZhciBpbmRleCA9IGVsZW0uc2VsZWN0ZWRJbmRleCwKCQkJCQkJdmFsdWVzID0gW10sCgkJCQkJCW9wdGlvbnMgPSBlbGVtLm9wdGlvbnMsCgkJCQkJCW9uZSA9IGVsZW0udHlwZSA9PT0gInNlbGVjdC1vbmUiOwoKCQkJCQkvLyBOb3RoaW5nIHdhcyBzZWxlY3RlZAoJCQkJCWlmICggaW5kZXggPCAwICkgewoJCQkJCQlyZXR1cm4gbnVsbDsKCQkJCQl9CgoJCQkJCS8vIExvb3AgdGhyb3VnaCBhbGwgdGhlIHNlbGVjdGVkIG9wdGlvbnMKCQkJCQlmb3IgKCB2YXIgaSA9IG9uZSA/IGluZGV4IDogMCwgbWF4ID0gb25lID8gaW5kZXggKyAxIDogb3B0aW9ucy5sZW5ndGg7IGkgPCBtYXg7IGkrKyApIHsKCQkJCQkJdmFyIG9wdGlvbiA9IG9wdGlvbnNbIGkgXTsKCgkJCQkJCS8vIERvbid0IHJldHVybiBvcHRpb25zIHRoYXQgYXJlIGRpc2FibGVkIG9yIGluIGEgZGlzYWJsZWQgb3B0Z3JvdXAKCQkJCQkJaWYgKCBvcHRpb24uc2VsZWN0ZWQgJiYgKGpRdWVyeS5zdXBwb3J0Lm9wdERpc2FibGVkID8gIW9wdGlvbi5kaXNhYmxlZCA6IG9wdGlvbi5nZXRBdHRyaWJ1dGUoImRpc2FibGVkIikgPT09IG51bGwpICYmCgkJCQkJCQkJKCFvcHRpb24ucGFyZW50Tm9kZS5kaXNhYmxlZCB8fCAhalF1ZXJ5Lm5vZGVOYW1lKCBvcHRpb24ucGFyZW50Tm9kZSwgIm9wdGdyb3VwIiApKSApIHsKCgkJCQkJCQkvLyBHZXQgdGhlIHNwZWNpZmljIHZhbHVlIGZvciB0aGUgb3B0aW9uCgkJCQkJCQl2YWx1ZSA9IGpRdWVyeShvcHRpb24pLnZhbCgpOwoKCQkJCQkJCS8vIFdlIGRvbid0IG5lZWQgYW4gYXJyYXkgZm9yIG9uZSBzZWxlY3RzCgkJCQkJCQlpZiAoIG9uZSApIHsKCQkJCQkJCQlyZXR1cm4gdmFsdWU7CgkJCQkJCQl9CgoJCQkJCQkJLy8gTXVsdGktU2VsZWN0cyByZXR1cm4gYW4gYXJyYXkKCQkJCQkJCXZhbHVlcy5wdXNoKCB2YWx1ZSApOwoJCQkJCQl9CgkJCQkJfQoKCQkJCQkvLyBGaXhlcyBCdWcgIzI1NTEgLS0gc2VsZWN0LnZhbCgpIGJyb2tlbiBpbiBJRSBhZnRlciBmb3JtLnJlc2V0KCkKCQkJCQlpZiAoIG9uZSAmJiAhdmFsdWVzLmxlbmd0aCAmJiBvcHRpb25zLmxlbmd0aCApIHsKCQkJCQkJcmV0dXJuIGpRdWVyeSggb3B0aW9uc1sgaW5kZXggXSApLnZhbCgpOwoJCQkJCX0KCgkJCQkJcmV0dXJuIHZhbHVlczsKCQkJCX0KCgkJCQkvLyBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgaW4gV2Via2l0ICIiIGlzIHJldHVybmVkIGluc3RlYWQgb2YgIm9uIiBpZiBhIHZhbHVlIGlzbid0IHNwZWNpZmllZAoJCQkJaWYgKCBycmFkaW9jaGVjay50ZXN0KCBlbGVtLnR5cGUgKSAmJiAhalF1ZXJ5LnN1cHBvcnQuY2hlY2tPbiApIHsKCQkJCQlyZXR1cm4gZWxlbS5nZXRBdHRyaWJ1dGUoInZhbHVlIikgPT09IG51bGwgPyAib24iIDogZWxlbS52YWx1ZTsKCQkJCX0KCgkJCQkvLyBFdmVyeXRoaW5nIGVsc2UsIHdlIGp1c3QgZ3JhYiB0aGUgdmFsdWUKCQkJCXJldHVybiAoZWxlbS52YWx1ZSB8fCAiIikucmVwbGFjZShycmV0dXJuLCAiIik7CgoJCQl9CgoJCQlyZXR1cm4gdW5kZWZpbmVkOwoJCX0KCgkJdmFyIGlzRnVuY3Rpb24gPSBqUXVlcnkuaXNGdW5jdGlvbih2YWx1ZSk7CgoJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oaSkgewoJCQl2YXIgc2VsZiA9IGpRdWVyeSh0aGlzKSwgdmFsID0gdmFsdWU7CgoJCQlpZiAoIHRoaXMubm9kZVR5cGUgIT09IDEgKSB7CgkJCQlyZXR1cm47CgkJCX0KCgkJCWlmICggaXNGdW5jdGlvbiApIHsKCQkJCXZhbCA9IHZhbHVlLmNhbGwodGhpcywgaSwgc2VsZi52YWwoKSk7CgkJCX0KCgkJCS8vIFRyZWF0IG51bGwvdW5kZWZpbmVkIGFzICIiOyBjb252ZXJ0IG51bWJlcnMgdG8gc3RyaW5nCgkJCWlmICggdmFsID09IG51bGwgKSB7CgkJCQl2YWwgPSAiIjsKCQkJfSBlbHNlIGlmICggdHlwZW9mIHZhbCA9PT0gIm51bWJlciIgKSB7CgkJCQl2YWwgKz0gIiI7CgkJCX0gZWxzZSBpZiAoIGpRdWVyeS5pc0FycmF5KHZhbCkgKSB7CgkJCQl2YWwgPSBqUXVlcnkubWFwKHZhbCwgZnVuY3Rpb24gKHZhbHVlKSB7CgkJCQkJcmV0dXJuIHZhbHVlID09IG51bGwgPyAiIiA6IHZhbHVlICsgIiI7CgkJCQl9KTsKCQkJfQoKCQkJaWYgKCBqUXVlcnkuaXNBcnJheSh2YWwpICYmIHJyYWRpb2NoZWNrLnRlc3QoIHRoaXMudHlwZSApICkgewoJCQkJdGhpcy5jaGVja2VkID0galF1ZXJ5LmluQXJyYXkoIHNlbGYudmFsKCksIHZhbCApID49IDA7CgoJCQl9IGVsc2UgaWYgKCBqUXVlcnkubm9kZU5hbWUoIHRoaXMsICJzZWxlY3QiICkgKSB7CgkJCQl2YXIgdmFsdWVzID0galF1ZXJ5Lm1ha2VBcnJheSh2YWwpOwoKCQkJCWpRdWVyeSggIm9wdGlvbiIsIHRoaXMgKS5lYWNoKGZ1bmN0aW9uKCkgewoJCQkJCXRoaXMuc2VsZWN0ZWQgPSBqUXVlcnkuaW5BcnJheSggalF1ZXJ5KHRoaXMpLnZhbCgpLCB2YWx1ZXMgKSA+PSAwOwoJCQkJfSk7CgoJCQkJaWYgKCAhdmFsdWVzLmxlbmd0aCApIHsKCQkJCQl0aGlzLnNlbGVjdGVkSW5kZXggPSAtMTsKCQkJCX0KCgkJCX0gZWxzZSB7CgkJCQl0aGlzLnZhbHVlID0gdmFsOwoJCQl9CgkJfSk7Cgl9Cn0pOwoKalF1ZXJ5LmV4dGVuZCh7CglhdHRyRm46IHsKCQl2YWw6IHRydWUsCgkJY3NzOiB0cnVlLAoJCWh0bWw6IHRydWUsCgkJdGV4dDogdHJ1ZSwKCQlkYXRhOiB0cnVlLAoJCXdpZHRoOiB0cnVlLAoJCWhlaWdodDogdHJ1ZSwKCQlvZmZzZXQ6IHRydWUKCX0sCgoJYXR0cjogZnVuY3Rpb24oIGVsZW0sIG5hbWUsIHZhbHVlLCBwYXNzICkgewoJCS8vIGRvbid0IGdldC9zZXQgYXR0cmlidXRlcyBvbiB0ZXh0LCBjb21tZW50IGFuZCBhdHRyaWJ1dGUgbm9kZXMKCQlpZiAoICFlbGVtIHx8IGVsZW0ubm9kZVR5cGUgPT09IDMgfHwgZWxlbS5ub2RlVHlwZSA9PT0gOCB8fCBlbGVtLm5vZGVUeXBlID09PSAyICkgewoJCQlyZXR1cm4gdW5kZWZpbmVkOwoJCX0KCgkJaWYgKCBwYXNzICYmIG5hbWUgaW4galF1ZXJ5LmF0dHJGbiApIHsKCQkJcmV0dXJuIGpRdWVyeShlbGVtKVtuYW1lXSh2YWx1ZSk7CgkJfQoKCQl2YXIgbm90eG1sID0gZWxlbS5ub2RlVHlwZSAhPT0gMSB8fCAhalF1ZXJ5LmlzWE1MRG9jKCBlbGVtICksCgkJCS8vIFdoZXRoZXIgd2UgYXJlIHNldHRpbmcgKG9yIGdldHRpbmcpCgkJCXNldCA9IHZhbHVlICE9PSB1bmRlZmluZWQ7CgoJCS8vIFRyeSB0byBub3JtYWxpemUvZml4IHRoZSBuYW1lCgkJbmFtZSA9IG5vdHhtbCAmJiBqUXVlcnkucHJvcHNbIG5hbWUgXSB8fCBuYW1lOwoKCQkvLyBPbmx5IGRvIGFsbCB0aGUgZm9sbG93aW5nIGlmIHRoaXMgaXMgYSBub2RlIChmYXN0ZXIgZm9yIHN0eWxlKQoJCWlmICggZWxlbS5ub2RlVHlwZSA9PT0gMSApIHsKCQkJLy8gVGhlc2UgYXR0cmlidXRlcyByZXF1aXJlIHNwZWNpYWwgdHJlYXRtZW50CgkJCXZhciBzcGVjaWFsID0gcnNwZWNpYWx1cmwudGVzdCggbmFtZSApOwoKCQkJLy8gU2FmYXJpIG1pcy1yZXBvcnRzIHRoZSBkZWZhdWx0IHNlbGVjdGVkIHByb3BlcnR5IG9mIGFuIG9wdGlvbgoJCQkvLyBBY2Nlc3NpbmcgdGhlIHBhcmVudCdzIHNlbGVjdGVkSW5kZXggcHJvcGVydHkgZml4ZXMgaXQKCQkJaWYgKCBuYW1lID09PSAic2VsZWN0ZWQiICYmICFqUXVlcnkuc3VwcG9ydC5vcHRTZWxlY3RlZCApIHsKCQkJCXZhciBwYXJlbnQgPSBlbGVtLnBhcmVudE5vZGU7CgkJCQlpZiAoIHBhcmVudCApIHsKCQkJCQlwYXJlbnQuc2VsZWN0ZWRJbmRleDsKCgkJCQkJLy8gTWFrZSBzdXJlIHRoYXQgaXQgYWxzbyB3b3JrcyB3aXRoIG9wdGdyb3Vwcywgc2VlICM1NzAxCgkJCQkJaWYgKCBwYXJlbnQucGFyZW50Tm9kZSApIHsKCQkJCQkJcGFyZW50LnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleDsKCQkJCQl9CgkJCQl9CgkJCX0KCgkJCS8vIElmIGFwcGxpY2FibGUsIGFjY2VzcyB0aGUgYXR0cmlidXRlIHZpYSB0aGUgRE9NIDAgd2F5CgkJCS8vICdpbicgY2hlY2tzIGZhaWwgaW4gQmxhY2tiZXJyeSA0LjcgIzY5MzEKCQkJaWYgKCAobmFtZSBpbiBlbGVtIHx8IGVsZW1bIG5hbWUgXSAhPT0gdW5kZWZpbmVkKSAmJiBub3R4bWwgJiYgIXNwZWNpYWwgKSB7CgkJCQlpZiAoIHNldCApIHsKCQkJCQkvLyBXZSBjYW4ndCBhbGxvdyB0aGUgdHlwZSBwcm9wZXJ0eSB0byBiZSBjaGFuZ2VkIChzaW5jZSBpdCBjYXVzZXMgcHJvYmxlbXMgaW4gSUUpCgkJCQkJaWYgKCBuYW1lID09PSAidHlwZSIgJiYgcnR5cGUudGVzdCggZWxlbS5ub2RlTmFtZSApICYmIGVsZW0ucGFyZW50Tm9kZSApIHsKCQkJCQkJalF1ZXJ5LmVycm9yKCAidHlwZSBwcm9wZXJ0eSBjYW4ndCBiZSBjaGFuZ2VkIiApOwoJCQkJCX0KCgkJCQkJaWYgKCB2YWx1ZSA9PT0gbnVsbCApIHsKCQkJCQkJaWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICkgewoJCQkJCQkJZWxlbS5yZW1vdmVBdHRyaWJ1dGUoIG5hbWUgKTsKCQkJCQkJfQoKCQkJCQl9IGVsc2UgewoJCQkJCQllbGVtWyBuYW1lIF0gPSB2YWx1ZTsKCQkJCQl9CgkJCQl9CgoJCQkJLy8gYnJvd3NlcnMgaW5kZXggZWxlbWVudHMgYnkgaWQvbmFtZSBvbiBmb3JtcywgZ2l2ZSBwcmlvcml0eSB0byBhdHRyaWJ1dGVzLgoJCQkJaWYgKCBqUXVlcnkubm9kZU5hbWUoIGVsZW0sICJmb3JtIiApICYmIGVsZW0uZ2V0QXR0cmlidXRlTm9kZShuYW1lKSApIHsKCQkJCQlyZXR1cm4gZWxlbS5nZXRBdHRyaWJ1dGVOb2RlKCBuYW1lICkubm9kZVZhbHVlOwoJCQkJfQoKCQkJCS8vIGVsZW0udGFiSW5kZXggZG9lc24ndCBhbHdheXMgcmV0dXJuIHRoZSBjb3JyZWN0IHZhbHVlIHdoZW4gaXQgaGFzbid0IGJlZW4gZXhwbGljaXRseSBzZXQKCQkJCS8vIGh0dHA6Ly9mbHVpZHByb2plY3Qub3JnL2Jsb2cvMjAwOC8wMS8wOS9nZXR0aW5nLXNldHRpbmctYW5kLXJlbW92aW5nLXRhYmluZGV4LXZhbHVlcy13aXRoLWphdmFzY3JpcHQvCgkJCQlpZiAoIG5hbWUgPT09ICJ0YWJJbmRleCIgKSB7CgkJCQkJdmFyIGF0dHJpYnV0ZU5vZGUgPSBlbGVtLmdldEF0dHJpYnV0ZU5vZGUoICJ0YWJJbmRleCIgKTsKCgkJCQkJcmV0dXJuIGF0dHJpYnV0ZU5vZGUgJiYgYXR0cmlidXRlTm9kZS5zcGVjaWZpZWQgPwoJCQkJCQlhdHRyaWJ1dGVOb2RlLnZhbHVlIDoKCQkJCQkJcmZvY3VzYWJsZS50ZXN0KCBlbGVtLm5vZGVOYW1lICkgfHwgcmNsaWNrYWJsZS50ZXN0KCBlbGVtLm5vZGVOYW1lICkgJiYgZWxlbS5ocmVmID8KCQkJCQkJCTAgOgoJCQkJCQkJdW5kZWZpbmVkOwoJCQkJfQoKCQkJCXJldHVybiBlbGVtWyBuYW1lIF07CgkJCX0KCgkJCWlmICggIWpRdWVyeS5zdXBwb3J0LnN0eWxlICYmIG5vdHhtbCAmJiBuYW1lID09PSAic3R5bGUiICkgewoJCQkJaWYgKCBzZXQgKSB7CgkJCQkJZWxlbS5zdHlsZS5jc3NUZXh0ID0gIiIgKyB2YWx1ZTsKCQkJCX0KCgkJCQlyZXR1cm4gZWxlbS5zdHlsZS5jc3NUZXh0OwoJCQl9CgoJCQlpZiAoIHNldCApIHsKCQkJCS8vIGNvbnZlcnQgdGhlIHZhbHVlIHRvIGEgc3RyaW5nIChhbGwgYnJvd3NlcnMgZG8gdGhpcyBidXQgSUUpIHNlZSAjMTA3MAoJCQkJZWxlbS5zZXRBdHRyaWJ1dGUoIG5hbWUsICIiICsgdmFsdWUgKTsKCQkJfQoKCQkJLy8gRW5zdXJlIHRoYXQgbWlzc2luZyBhdHRyaWJ1dGVzIHJldHVybiB1bmRlZmluZWQKCQkJLy8gQmxhY2tiZXJyeSA0LjcgcmV0dXJucyAiIiBmcm9tIGdldEF0dHJpYnV0ZSAjNjkzOAoJCQlpZiAoICFlbGVtLmF0dHJpYnV0ZXNbIG5hbWUgXSAmJiAoZWxlbS5oYXNBdHRyaWJ1dGUgJiYgIWVsZW0uaGFzQXR0cmlidXRlKCBuYW1lICkpICkgewoJCQkJcmV0dXJuIHVuZGVmaW5lZDsKCQkJfQoKCQkJdmFyIGF0dHIgPSAhalF1ZXJ5LnN1cHBvcnQuaHJlZk5vcm1hbGl6ZWQgJiYgbm90eG1sICYmIHNwZWNpYWwgPwoJCQkJCS8vIFNvbWUgYXR0cmlidXRlcyByZXF1aXJlIGEgc3BlY2lhbCBjYWxsIG9uIElFCgkJCQkJZWxlbS5nZXRBdHRyaWJ1dGUoIG5hbWUsIDIgKSA6CgkJCQkJZWxlbS5nZXRBdHRyaWJ1dGUoIG5hbWUgKTsKCgkJCS8vIE5vbi1leGlzdGVudCBhdHRyaWJ1dGVzIHJldHVybiBudWxsLCB3ZSBub3JtYWxpemUgdG8gdW5kZWZpbmVkCgkJCXJldHVybiBhdHRyID09PSBudWxsID8gdW5kZWZpbmVkIDogYXR0cjsKCQl9CgkJLy8gSGFuZGxlIGV2ZXJ5dGhpbmcgd2hpY2ggaXNuJ3QgYSBET00gZWxlbWVudCBub2RlCgkJaWYgKCBzZXQgKSB7CgkJCWVsZW1bIG5hbWUgXSA9IHZhbHVlOwoJCX0KCQlyZXR1cm4gZWxlbVsgbmFtZSBdOwoJfQp9KTsKCgoKCnZhciBybmFtZXNwYWNlcyA9IC9cLiguKikkLywKCXJmb3JtRWxlbXMgPSAvXig/OnRleHRhcmVhfGlucHV0fHNlbGVjdCkkL2ksCglycGVyaW9kID0gL1wuL2csCglyc3BhY2UgPSAvIC9nLAoJcmVzY2FwZSA9IC9bXlx3XHMufGBdL2csCglmY2xlYW51cCA9IGZ1bmN0aW9uKCBubSApIHsKCQlyZXR1cm4gbm0ucmVwbGFjZShyZXNjYXBlLCAiXFwkJiIpOwoJfTsKCi8qCiAqIEEgbnVtYmVyIG9mIGhlbHBlciBmdW5jdGlvbnMgdXNlZCBmb3IgbWFuYWdpbmcgZXZlbnRzLgogKiBNYW55IG9mIHRoZSBpZGVhcyBiZWhpbmQgdGhpcyBjb2RlIG9yaWdpbmF0ZWQgZnJvbQogKiBEZWFuIEVkd2FyZHMnIGFkZEV2ZW50IGxpYnJhcnkuCiAqLwpqUXVlcnkuZXZlbnQgPSB7CgoJLy8gQmluZCBhbiBldmVudCB0byBhbiBlbGVtZW50CgkvLyBPcmlnaW5hbCBieSBEZWFuIEVkd2FyZHMKCWFkZDogZnVuY3Rpb24oIGVsZW0sIHR5cGVzLCBoYW5kbGVyLCBkYXRhICkgewoJCWlmICggZWxlbS5ub2RlVHlwZSA9PT0gMyB8fCBlbGVtLm5vZGVUeXBlID09PSA4ICkgewoJCQlyZXR1cm47CgkJfQoKCQkvLyBUT0RPIDo6IFVzZSBhIHRyeS9jYXRjaCB1bnRpbCBpdCdzIHNhZmUgdG8gcHVsbCB0aGlzIG91dCAobGlrZWx5IDEuNikKCQkvLyBNaW5vciByZWxlYXNlIGZpeCBmb3IgYnVnICM4MDE4CgkJdHJ5IHsKCQkJLy8gRm9yIHdoYXRldmVyIHJlYXNvbiwgSUUgaGFzIHRyb3VibGUgcGFzc2luZyB0aGUgd2luZG93IG9iamVjdAoJCQkvLyBhcm91bmQsIGNhdXNpbmcgaXQgdG8gYmUgY2xvbmVkIGluIHRoZSBwcm9jZXNzCgkJCWlmICggalF1ZXJ5LmlzV2luZG93KCBlbGVtICkgJiYgKCBlbGVtICE9PSB3aW5kb3cgJiYgIWVsZW0uZnJhbWVFbGVtZW50ICkgKSB7CgkJCQllbGVtID0gd2luZG93OwoJCQl9CgkJfQoJCWNhdGNoICggZSApIHt9CgoJCWlmICggaGFuZGxlciA9PT0gZmFsc2UgKSB7CgkJCWhhbmRsZXIgPSByZXR1cm5GYWxzZTsKCQl9IGVsc2UgaWYgKCAhaGFuZGxlciApIHsKCQkJLy8gRml4ZXMgYnVnICM3MjI5LiBGaXggcmVjb21tZW5kZWQgYnkgamRhbHRvbgoJCQlyZXR1cm47CgkJfQoKCQl2YXIgaGFuZGxlT2JqSW4sIGhhbmRsZU9iajsKCgkJaWYgKCBoYW5kbGVyLmhhbmRsZXIgKSB7CgkJCWhhbmRsZU9iakluID0gaGFuZGxlcjsKCQkJaGFuZGxlciA9IGhhbmRsZU9iakluLmhhbmRsZXI7CgkJfQoKCQkvLyBNYWtlIHN1cmUgdGhhdCB0aGUgZnVuY3Rpb24gYmVpbmcgZXhlY3V0ZWQgaGFzIGEgdW5pcXVlIElECgkJaWYgKCAhaGFuZGxlci5ndWlkICkgewoJCQloYW5kbGVyLmd1aWQgPSBqUXVlcnkuZ3VpZCsrOwoJCX0KCgkJLy8gSW5pdCB0aGUgZWxlbWVudCdzIGV2ZW50IHN0cnVjdHVyZQoJCXZhciBlbGVtRGF0YSA9IGpRdWVyeS5fZGF0YSggZWxlbSApOwoKCQkvLyBJZiBubyBlbGVtRGF0YSBpcyBmb3VuZCB0aGVuIHdlIG11c3QgYmUgdHJ5aW5nIHRvIGJpbmQgdG8gb25lIG9mIHRoZQoJCS8vIGJhbm5lZCBub0RhdGEgZWxlbWVudHMKCQlpZiAoICFlbGVtRGF0YSApIHsKCQkJcmV0dXJuOwoJCX0KCgkJdmFyIGV2ZW50cyA9IGVsZW1EYXRhLmV2ZW50cywKCQkJZXZlbnRIYW5kbGUgPSBlbGVtRGF0YS5oYW5kbGU7CgoJCWlmICggIWV2ZW50cyApIHsKCQkJZWxlbURhdGEuZXZlbnRzID0gZXZlbnRzID0ge307CgkJfQoKCQlpZiAoICFldmVudEhhbmRsZSApIHsKCQkJZWxlbURhdGEuaGFuZGxlID0gZXZlbnRIYW5kbGUgPSBmdW5jdGlvbigpIHsKCQkJCS8vIEhhbmRsZSB0aGUgc2Vjb25kIGV2ZW50IG9mIGEgdHJpZ2dlciBhbmQgd2hlbgoJCQkJLy8gYW4gZXZlbnQgaXMgY2FsbGVkIGFmdGVyIGEgcGFnZSBoYXMgdW5sb2FkZWQKCQkJCXJldHVybiB0eXBlb2YgalF1ZXJ5ICE9PSAidW5kZWZpbmVkIiAmJiAhalF1ZXJ5LmV2ZW50LnRyaWdnZXJlZCA/CgkJCQkJalF1ZXJ5LmV2ZW50LmhhbmRsZS5hcHBseSggZXZlbnRIYW5kbGUuZWxlbSwgYXJndW1lbnRzICkgOgoJCQkJCXVuZGVmaW5lZDsKCQkJfTsKCQl9CgoJCS8vIEFkZCBlbGVtIGFzIGEgcHJvcGVydHkgb2YgdGhlIGhhbmRsZSBmdW5jdGlvbgoJCS8vIFRoaXMgaXMgdG8gcHJldmVudCBhIG1lbW9yeSBsZWFrIHdpdGggbm9uLW5hdGl2ZSBldmVudHMgaW4gSUUuCgkJZXZlbnRIYW5kbGUuZWxlbSA9IGVsZW07CgoJCS8vIEhhbmRsZSBtdWx0aXBsZSBldmVudHMgc2VwYXJhdGVkIGJ5IGEgc3BhY2UKCQkvLyBqUXVlcnkoLi4uKS5iaW5kKCJtb3VzZW92ZXIgbW91c2VvdXQiLCBmbik7CgkJdHlwZXMgPSB0eXBlcy5zcGxpdCgiICIpOwoKCQl2YXIgdHlwZSwgaSA9IDAsIG5hbWVzcGFjZXM7CgoJCXdoaWxlICggKHR5cGUgPSB0eXBlc1sgaSsrIF0pICkgewoJCQloYW5kbGVPYmogPSBoYW5kbGVPYmpJbiA/CgkJCQlqUXVlcnkuZXh0ZW5kKHt9LCBoYW5kbGVPYmpJbikgOgoJCQkJeyBoYW5kbGVyOiBoYW5kbGVyLCBkYXRhOiBkYXRhIH07CgoJCQkvLyBOYW1lc3BhY2VkIGV2ZW50IGhhbmRsZXJzCgkJCWlmICggdHlwZS5pbmRleE9mKCIuIikgPiAtMSApIHsKCQkJCW5hbWVzcGFjZXMgPSB0eXBlLnNwbGl0KCIuIik7CgkJCQl0eXBlID0gbmFtZXNwYWNlcy5zaGlmdCgpOwoJCQkJaGFuZGxlT2JqLm5hbWVzcGFjZSA9IG5hbWVzcGFjZXMuc2xpY2UoMCkuc29ydCgpLmpvaW4oIi4iKTsKCgkJCX0gZWxzZSB7CgkJCQluYW1lc3BhY2VzID0gW107CgkJCQloYW5kbGVPYmoubmFtZXNwYWNlID0gIiI7CgkJCX0KCgkJCWhhbmRsZU9iai50eXBlID0gdHlwZTsKCQkJaWYgKCAhaGFuZGxlT2JqLmd1aWQgKSB7CgkJCQloYW5kbGVPYmouZ3VpZCA9IGhhbmRsZXIuZ3VpZDsKCQkJfQoKCQkJLy8gR2V0IHRoZSBjdXJyZW50IGxpc3Qgb2YgZnVuY3Rpb25zIGJvdW5kIHRvIHRoaXMgZXZlbnQKCQkJdmFyIGhhbmRsZXJzID0gZXZlbnRzWyB0eXBlIF0sCgkJCQlzcGVjaWFsID0galF1ZXJ5LmV2ZW50LnNwZWNpYWxbIHR5cGUgXSB8fCB7fTsKCgkJCS8vIEluaXQgdGhlIGV2ZW50IGhhbmRsZXIgcXVldWUKCQkJaWYgKCAhaGFuZGxlcnMgKSB7CgkJCQloYW5kbGVycyA9IGV2ZW50c1sgdHlwZSBdID0gW107CgoJCQkJLy8gQ2hlY2sgZm9yIGEgc3BlY2lhbCBldmVudCBoYW5kbGVyCgkJCQkvLyBPbmx5IHVzZSBhZGRFdmVudExpc3RlbmVyL2F0dGFjaEV2ZW50IGlmIHRoZSBzcGVjaWFsCgkJCQkvLyBldmVudHMgaGFuZGxlciByZXR1cm5zIGZhbHNlCgkJCQlpZiAoICFzcGVjaWFsLnNldHVwIHx8IHNwZWNpYWwuc2V0dXAuY2FsbCggZWxlbSwgZGF0YSwgbmFtZXNwYWNlcywgZXZlbnRIYW5kbGUgKSA9PT0gZmFsc2UgKSB7CgkJCQkJLy8gQmluZCB0aGUgZ2xvYmFsIGV2ZW50IGhhbmRsZXIgdG8gdGhlIGVsZW1lbnQKCQkJCQlpZiAoIGVsZW0uYWRkRXZlbnRMaXN0ZW5lciApIHsKCQkJCQkJZWxlbS5hZGRFdmVudExpc3RlbmVyKCB0eXBlLCBldmVudEhhbmRsZSwgZmFsc2UgKTsKCgkJCQkJfSBlbHNlIGlmICggZWxlbS5hdHRhY2hFdmVudCApIHsKCQkJCQkJZWxlbS5hdHRhY2hFdmVudCggIm9uIiArIHR5cGUsIGV2ZW50SGFuZGxlICk7CgkJCQkJfQoJCQkJfQoJCQl9CgoJCQlpZiAoIHNwZWNpYWwuYWRkICkgewoJCQkJc3BlY2lhbC5hZGQuY2FsbCggZWxlbSwgaGFuZGxlT2JqICk7CgoJCQkJaWYgKCAhaGFuZGxlT2JqLmhhbmRsZXIuZ3VpZCApIHsKCQkJCQloYW5kbGVPYmouaGFuZGxlci5ndWlkID0gaGFuZGxlci5ndWlkOwoJCQkJfQoJCQl9CgoJCQkvLyBBZGQgdGhlIGZ1bmN0aW9uIHRvIHRoZSBlbGVtZW50J3MgaGFuZGxlciBsaXN0CgkJCWhhbmRsZXJzLnB1c2goIGhhbmRsZU9iaiApOwoKCQkJLy8gS2VlcCB0cmFjayBvZiB3aGljaCBldmVudHMgaGF2ZSBiZWVuIHVzZWQsIGZvciBnbG9iYWwgdHJpZ2dlcmluZwoJCQlqUXVlcnkuZXZlbnQuZ2xvYmFsWyB0eXBlIF0gPSB0cnVlOwoJCX0KCgkJLy8gTnVsbGlmeSBlbGVtIHRvIHByZXZlbnQgbWVtb3J5IGxlYWtzIGluIElFCgkJZWxlbSA9IG51bGw7Cgl9LAoKCWdsb2JhbDoge30sCgoJLy8gRGV0YWNoIGFuIGV2ZW50IG9yIHNldCBvZiBldmVudHMgZnJvbSBhbiBlbGVtZW50CglyZW1vdmU6IGZ1bmN0aW9uKCBlbGVtLCB0eXBlcywgaGFuZGxlciwgcG9zICkgewoJCS8vIGRvbid0IGRvIGV2ZW50cyBvbiB0ZXh0IGFuZCBjb21tZW50IG5vZGVzCgkJaWYgKCBlbGVtLm5vZGVUeXBlID09PSAzIHx8IGVsZW0ubm9kZVR5cGUgPT09IDggKSB7CgkJCXJldHVybjsKCQl9CgoJCWlmICggaGFuZGxlciA9PT0gZmFsc2UgKSB7CgkJCWhhbmRsZXIgPSByZXR1cm5GYWxzZTsKCQl9CgoJCXZhciByZXQsIHR5cGUsIGZuLCBqLCBpID0gMCwgYWxsLCBuYW1lc3BhY2VzLCBuYW1lc3BhY2UsIHNwZWNpYWwsIGV2ZW50VHlwZSwgaGFuZGxlT2JqLCBvcmlnVHlwZSwKCQkJZWxlbURhdGEgPSBqUXVlcnkuaGFzRGF0YSggZWxlbSApICYmIGpRdWVyeS5fZGF0YSggZWxlbSApLAoJCQlldmVudHMgPSBlbGVtRGF0YSAmJiBlbGVtRGF0YS5ldmVudHM7CgoJCWlmICggIWVsZW1EYXRhIHx8ICFldmVudHMgKSB7CgkJCXJldHVybjsKCQl9CgoJCS8vIHR5cGVzIGlzIGFjdHVhbGx5IGFuIGV2ZW50IG9iamVjdCBoZXJlCgkJaWYgKCB0eXBlcyAmJiB0eXBlcy50eXBlICkgewoJCQloYW5kbGVyID0gdHlwZXMuaGFuZGxlcjsKCQkJdHlwZXMgPSB0eXBlcy50eXBlOwoJCX0KCgkJLy8gVW5iaW5kIGFsbCBldmVudHMgZm9yIHRoZSBlbGVtZW50CgkJaWYgKCAhdHlwZXMgfHwgdHlwZW9mIHR5cGVzID09PSAic3RyaW5nIiAmJiB0eXBlcy5jaGFyQXQoMCkgPT09ICIuIiApIHsKCQkJdHlwZXMgPSB0eXBlcyB8fCAiIjsKCgkJCWZvciAoIHR5cGUgaW4gZXZlbnRzICkgewoJCQkJalF1ZXJ5LmV2ZW50LnJlbW92ZSggZWxlbSwgdHlwZSArIHR5cGVzICk7CgkJCX0KCgkJCXJldHVybjsKCQl9CgoJCS8vIEhhbmRsZSBtdWx0aXBsZSBldmVudHMgc2VwYXJhdGVkIGJ5IGEgc3BhY2UKCQkvLyBqUXVlcnkoLi4uKS51bmJpbmQoIm1vdXNlb3ZlciBtb3VzZW91dCIsIGZuKTsKCQl0eXBlcyA9IHR5cGVzLnNwbGl0KCIgIik7CgoJCXdoaWxlICggKHR5cGUgPSB0eXBlc1sgaSsrIF0pICkgewoJCQlvcmlnVHlwZSA9IHR5cGU7CgkJCWhhbmRsZU9iaiA9IG51bGw7CgkJCWFsbCA9IHR5cGUuaW5kZXhPZigiLiIpIDwgMDsKCQkJbmFtZXNwYWNlcyA9IFtdOwoKCQkJaWYgKCAhYWxsICkgewoJCQkJLy8gTmFtZXNwYWNlZCBldmVudCBoYW5kbGVycwoJCQkJbmFtZXNwYWNlcyA9IHR5cGUuc3BsaXQoIi4iKTsKCQkJCXR5cGUgPSBuYW1lc3BhY2VzLnNoaWZ0KCk7CgoJCQkJbmFtZXNwYWNlID0gbmV3IFJlZ0V4cCgiKF58XFwuKSIgKwoJCQkJCWpRdWVyeS5tYXAoIG5hbWVzcGFjZXMuc2xpY2UoMCkuc29ydCgpLCBmY2xlYW51cCApLmpvaW4oIlxcLig/Oi4qXFwuKT8iKSArICIoXFwufCQpIik7CgkJCX0KCgkJCWV2ZW50VHlwZSA9IGV2ZW50c1sgdHlwZSBdOwoKCQkJaWYgKCAhZXZlbnRUeXBlICkgewoJCQkJY29udGludWU7CgkJCX0KCgkJCWlmICggIWhhbmRsZXIgKSB7CgkJCQlmb3IgKCBqID0gMDsgaiA8IGV2ZW50VHlwZS5sZW5ndGg7IGorKyApIHsKCQkJCQloYW5kbGVPYmogPSBldmVudFR5cGVbIGogXTsKCgkJCQkJaWYgKCBhbGwgfHwgbmFtZXNwYWNlLnRlc3QoIGhhbmRsZU9iai5uYW1lc3BhY2UgKSApIHsKCQkJCQkJalF1ZXJ5LmV2ZW50LnJlbW92ZSggZWxlbSwgb3JpZ1R5cGUsIGhhbmRsZU9iai5oYW5kbGVyLCBqICk7CgkJCQkJCWV2ZW50VHlwZS5zcGxpY2UoIGotLSwgMSApOwoJCQkJCX0KCQkJCX0KCgkJCQljb250aW51ZTsKCQkJfQoKCQkJc3BlY2lhbCA9IGpRdWVyeS5ldmVudC5zcGVjaWFsWyB0eXBlIF0gfHwge307CgoJCQlmb3IgKCBqID0gcG9zIHx8IDA7IGogPCBldmVudFR5cGUubGVuZ3RoOyBqKysgKSB7CgkJCQloYW5kbGVPYmogPSBldmVudFR5cGVbIGogXTsKCgkJCQlpZiAoIGhhbmRsZXIuZ3VpZCA9PT0gaGFuZGxlT2JqLmd1aWQgKSB7CgkJCQkJLy8gcmVtb3ZlIHRoZSBnaXZlbiBoYW5kbGVyIGZvciB0aGUgZ2l2ZW4gdHlwZQoJCQkJCWlmICggYWxsIHx8IG5hbWVzcGFjZS50ZXN0KCBoYW5kbGVPYmoubmFtZXNwYWNlICkgKSB7CgkJCQkJCWlmICggcG9zID09IG51bGwgKSB7CgkJCQkJCQlldmVudFR5cGUuc3BsaWNlKCBqLS0sIDEgKTsKCQkJCQkJfQoKCQkJCQkJaWYgKCBzcGVjaWFsLnJlbW92ZSApIHsKCQkJCQkJCXNwZWNpYWwucmVtb3ZlLmNhbGwoIGVsZW0sIGhhbmRsZU9iaiApOwoJCQkJCQl9CgkJCQkJfQoKCQkJCQlpZiAoIHBvcyAhPSBudWxsICkgewoJCQkJCQlicmVhazsKCQkJCQl9CgkJCQl9CgkJCX0KCgkJCS8vIHJlbW92ZSBnZW5lcmljIGV2ZW50IGhhbmRsZXIgaWYgbm8gbW9yZSBoYW5kbGVycyBleGlzdAoJCQlpZiAoIGV2ZW50VHlwZS5sZW5ndGggPT09IDAgfHwgcG9zICE9IG51bGwgJiYgZXZlbnRUeXBlLmxlbmd0aCA9PT0gMSApIHsKCQkJCWlmICggIXNwZWNpYWwudGVhcmRvd24gfHwgc3BlY2lhbC50ZWFyZG93bi5jYWxsKCBlbGVtLCBuYW1lc3BhY2VzICkgPT09IGZhbHNlICkgewoJCQkJCWpRdWVyeS5yZW1vdmVFdmVudCggZWxlbSwgdHlwZSwgZWxlbURhdGEuaGFuZGxlICk7CgkJCQl9CgoJCQkJcmV0ID0gbnVsbDsKCQkJCWRlbGV0ZSBldmVudHNbIHR5cGUgXTsKCQkJfQoJCX0KCgkJLy8gUmVtb3ZlIHRoZSBleHBhbmRvIGlmIGl0J3Mgbm8gbG9uZ2VyIHVzZWQKCQlpZiAoIGpRdWVyeS5pc0VtcHR5T2JqZWN0KCBldmVudHMgKSApIHsKCQkJdmFyIGhhbmRsZSA9IGVsZW1EYXRhLmhhbmRsZTsKCQkJaWYgKCBoYW5kbGUgKSB7CgkJCQloYW5kbGUuZWxlbSA9IG51bGw7CgkJCX0KCgkJCWRlbGV0ZSBlbGVtRGF0YS5ldmVudHM7CgkJCWRlbGV0ZSBlbGVtRGF0YS5oYW5kbGU7CgoJCQlpZiAoIGpRdWVyeS5pc0VtcHR5T2JqZWN0KCBlbGVtRGF0YSApICkgewoJCQkJalF1ZXJ5LnJlbW92ZURhdGEoIGVsZW0sIHVuZGVmaW5lZCwgdHJ1ZSApOwoJCQl9CgkJfQoJfSwKCgkvLyBidWJibGluZyBpcyBpbnRlcm5hbAoJdHJpZ2dlcjogZnVuY3Rpb24oIGV2ZW50LCBkYXRhLCBlbGVtIC8qLCBidWJibGluZyAqLyApIHsKCQkvLyBFdmVudCBvYmplY3Qgb3IgZXZlbnQgdHlwZQoJCXZhciB0eXBlID0gZXZlbnQudHlwZSB8fCBldmVudCwKCQkJYnViYmxpbmcgPSBhcmd1bWVudHNbM107CgoJCWlmICggIWJ1YmJsaW5nICkgewoJCQlldmVudCA9IHR5cGVvZiBldmVudCA9PT0gIm9iamVjdCIgPwoJCQkJLy8galF1ZXJ5LkV2ZW50IG9iamVjdAoJCQkJZXZlbnRbIGpRdWVyeS5leHBhbmRvIF0gPyBldmVudCA6CgkJCQkvLyBPYmplY3QgbGl0ZXJhbAoJCQkJalF1ZXJ5LmV4dGVuZCggalF1ZXJ5LkV2ZW50KHR5cGUpLCBldmVudCApIDoKCQkJCS8vIEp1c3QgdGhlIGV2ZW50IHR5cGUgKHN0cmluZykKCQkJCWpRdWVyeS5FdmVudCh0eXBlKTsKCgkJCWlmICggdHlwZS5pbmRleE9mKCIhIikgPj0gMCApIHsKCQkJCWV2ZW50LnR5cGUgPSB0eXBlID0gdHlwZS5zbGljZSgwLCAtMSk7CgkJCQlldmVudC5leGNsdXNpdmUgPSB0cnVlOwoJCQl9CgoJCQkvLyBIYW5kbGUgYSBnbG9iYWwgdHJpZ2dlcgoJCQlpZiAoICFlbGVtICkgewoJCQkJLy8gRG9uJ3QgYnViYmxlIGN1c3RvbSBldmVudHMgd2hlbiBnbG9iYWwgKHRvIGF2b2lkIHRvbyBtdWNoIG92ZXJoZWFkKQoJCQkJZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CgoJCQkJLy8gT25seSB0cmlnZ2VyIGlmIHdlJ3ZlIGV2ZXIgYm91bmQgYW4gZXZlbnQgZm9yIGl0CgkJCQlpZiAoIGpRdWVyeS5ldmVudC5nbG9iYWxbIHR5cGUgXSApIHsKCQkJCQkvLyBYWFggVGhpcyBjb2RlIHNtZWxscyB0ZXJyaWJsZS4gZXZlbnQuanMgc2hvdWxkIG5vdCBiZSBkaXJlY3RseQoJCQkJCS8vIGluc3BlY3RpbmcgdGhlIGRhdGEgY2FjaGUKCQkJCQlqUXVlcnkuZWFjaCggalF1ZXJ5LmNhY2hlLCBmdW5jdGlvbigpIHsKCQkJCQkJLy8gaW50ZXJuYWxLZXkgdmFyaWFibGUgaXMganVzdCB1c2VkIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGZpbmQKCQkJCQkJLy8gYW5kIHBvdGVudGlhbGx5IGNoYW5nZSB0aGlzIHN0dWZmIGxhdGVyOyBjdXJyZW50bHkgaXQganVzdAoJCQkJCQkvLyBwb2ludHMgdG8galF1ZXJ5LmV4cGFuZG8KCQkJCQkJdmFyIGludGVybmFsS2V5ID0galF1ZXJ5LmV4cGFuZG8sCgkJCQkJCQlpbnRlcm5hbENhY2hlID0gdGhpc1sgaW50ZXJuYWxLZXkgXTsKCQkJCQkJaWYgKCBpbnRlcm5hbENhY2hlICYmIGludGVybmFsQ2FjaGUuZXZlbnRzICYmIGludGVybmFsQ2FjaGUuZXZlbnRzWyB0eXBlIF0gKSB7CgkJCQkJCQlqUXVlcnkuZXZlbnQudHJpZ2dlciggZXZlbnQsIGRhdGEsIGludGVybmFsQ2FjaGUuaGFuZGxlLmVsZW0gKTsKCQkJCQkJfQoJCQkJCX0pOwoJCQkJfQoJCQl9CgoJCQkvLyBIYW5kbGUgdHJpZ2dlcmluZyBhIHNpbmdsZSBlbGVtZW50CgoJCQkvLyBkb24ndCBkbyBldmVudHMgb24gdGV4dCBhbmQgY29tbWVudCBub2RlcwoJCQlpZiAoICFlbGVtIHx8IGVsZW0ubm9kZVR5cGUgPT09IDMgfHwgZWxlbS5ub2RlVHlwZSA9PT0gOCApIHsKCQkJCXJldHVybiB1bmRlZmluZWQ7CgkJCX0KCgkJCS8vIENsZWFuIHVwIGluIGNhc2UgaXQgaXMgcmV1c2VkCgkJCWV2ZW50LnJlc3VsdCA9IHVuZGVmaW5lZDsKCQkJZXZlbnQudGFyZ2V0ID0gZWxlbTsKCgkJCS8vIENsb25lIHRoZSBpbmNvbWluZyBkYXRhLCBpZiBhbnkKCQkJZGF0YSA9IGpRdWVyeS5tYWtlQXJyYXkoIGRhdGEgKTsKCQkJZGF0YS51bnNoaWZ0KCBldmVudCApOwoJCX0KCgkJZXZlbnQuY3VycmVudFRhcmdldCA9IGVsZW07CgoJCS8vIFRyaWdnZXIgdGhlIGV2ZW50LCBpdCBpcyBhc3N1bWVkIHRoYXQgImhhbmRsZSIgaXMgYSBmdW5jdGlvbgoJCXZhciBoYW5kbGUgPSBqUXVlcnkuX2RhdGEoIGVsZW0sICJoYW5kbGUiICk7CgoJCWlmICggaGFuZGxlICkgewoJCQloYW5kbGUuYXBwbHkoIGVsZW0sIGRhdGEgKTsKCQl9CgoJCXZhciBwYXJlbnQgPSBlbGVtLnBhcmVudE5vZGUgfHwgZWxlbS5vd25lckRvY3VtZW50OwoKCQkvLyBUcmlnZ2VyIGFuIGlubGluZSBib3VuZCBzY3JpcHQKCQl0cnkgewoJCQlpZiAoICEoZWxlbSAmJiBlbGVtLm5vZGVOYW1lICYmIGpRdWVyeS5ub0RhdGFbZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSkgKSB7CgkJCQlpZiAoIGVsZW1bICJvbiIgKyB0eXBlIF0gJiYgZWxlbVsgIm9uIiArIHR5cGUgXS5hcHBseSggZWxlbSwgZGF0YSApID09PSBmYWxzZSApIHsKCQkJCQlldmVudC5yZXN1bHQgPSBmYWxzZTsKCQkJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOwoJCQkJfQoJCQl9CgoJCS8vIHByZXZlbnQgSUUgZnJvbSB0aHJvd2luZyBhbiBlcnJvciBmb3Igc29tZSBlbGVtZW50cyB3aXRoIHNvbWUgZXZlbnQgdHlwZXMsIHNlZSAjMzUzMwoJCX0gY2F0Y2ggKGlubGluZUVycm9yKSB7fQoKCQlpZiAoICFldmVudC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpICYmIHBhcmVudCApIHsKCQkJalF1ZXJ5LmV2ZW50LnRyaWdnZXIoIGV2ZW50LCBkYXRhLCBwYXJlbnQsIHRydWUgKTsKCgkJfSBlbHNlIGlmICggIWV2ZW50LmlzRGVmYXVsdFByZXZlbnRlZCgpICkgewoJCQl2YXIgb2xkLAoJCQkJdGFyZ2V0ID0gZXZlbnQudGFyZ2V0LAoJCQkJdGFyZ2V0VHlwZSA9IHR5cGUucmVwbGFjZSggcm5hbWVzcGFjZXMsICIiICksCgkJCQlpc0NsaWNrID0galF1ZXJ5Lm5vZGVOYW1lKCB0YXJnZXQsICJhIiApICYmIHRhcmdldFR5cGUgPT09ICJjbGljayIsCgkJCQlzcGVjaWFsID0galF1ZXJ5LmV2ZW50LnNwZWNpYWxbIHRhcmdldFR5cGUgXSB8fCB7fTsKCgkJCWlmICggKCFzcGVjaWFsLl9kZWZhdWx0IHx8IHNwZWNpYWwuX2RlZmF1bHQuY2FsbCggZWxlbSwgZXZlbnQgKSA9PT0gZmFsc2UpICYmCgkJCQkhaXNDbGljayAmJiAhKHRhcmdldCAmJiB0YXJnZXQubm9kZU5hbWUgJiYgalF1ZXJ5Lm5vRGF0YVt0YXJnZXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pICkgewoKCQkJCXRyeSB7CgkJCQkJaWYgKCB0YXJnZXRbIHRhcmdldFR5cGUgXSApIHsKCQkJCQkJLy8gTWFrZSBzdXJlIHRoYXQgd2UgZG9uJ3QgYWNjaWRlbnRhbGx5IHJlLXRyaWdnZXIgdGhlIG9uRk9PIGV2ZW50cwoJCQkJCQlvbGQgPSB0YXJnZXRbICJvbiIgKyB0YXJnZXRUeXBlIF07CgoJCQkJCQlpZiAoIG9sZCApIHsKCQkJCQkJCXRhcmdldFsgIm9uIiArIHRhcmdldFR5cGUgXSA9IG51bGw7CgkJCQkJCX0KCgkJCQkJCWpRdWVyeS5ldmVudC50cmlnZ2VyZWQgPSB0cnVlOwoJCQkJCQl0YXJnZXRbIHRhcmdldFR5cGUgXSgpOwoJCQkJCX0KCgkJCQkvLyBwcmV2ZW50IElFIGZyb20gdGhyb3dpbmcgYW4gZXJyb3IgZm9yIHNvbWUgZWxlbWVudHMgd2l0aCBzb21lIGV2ZW50IHR5cGVzLCBzZWUgIzM1MzMKCQkJCX0gY2F0Y2ggKHRyaWdnZXJFcnJvcikge30KCgkJCQlpZiAoIG9sZCApIHsKCQkJCQl0YXJnZXRbICJvbiIgKyB0YXJnZXRUeXBlIF0gPSBvbGQ7CgkJCQl9CgoJCQkJalF1ZXJ5LmV2ZW50LnRyaWdnZXJlZCA9IGZhbHNlOwoJCQl9CgkJfQoJfSwKCgloYW5kbGU6IGZ1bmN0aW9uKCBldmVudCApIHsKCQl2YXIgYWxsLCBoYW5kbGVycywgbmFtZXNwYWNlcywgbmFtZXNwYWNlX3JlLCBldmVudHMsCgkJCW5hbWVzcGFjZV9zb3J0ID0gW10sCgkJCWFyZ3MgPSBqUXVlcnkubWFrZUFycmF5KCBhcmd1bWVudHMgKTsKCgkJZXZlbnQgPSBhcmdzWzBdID0galF1ZXJ5LmV2ZW50LmZpeCggZXZlbnQgfHwgd2luZG93LmV2ZW50ICk7CgkJZXZlbnQuY3VycmVudFRhcmdldCA9IHRoaXM7CgoJCS8vIE5hbWVzcGFjZWQgZXZlbnQgaGFuZGxlcnMKCQlhbGwgPSBldmVudC50eXBlLmluZGV4T2YoIi4iKSA8IDAgJiYgIWV2ZW50LmV4Y2x1c2l2ZTsKCgkJaWYgKCAhYWxsICkgewoJCQluYW1lc3BhY2VzID0gZXZlbnQudHlwZS5zcGxpdCgiLiIpOwoJCQlldmVudC50eXBlID0gbmFtZXNwYWNlcy5zaGlmdCgpOwoJCQluYW1lc3BhY2Vfc29ydCA9IG5hbWVzcGFjZXMuc2xpY2UoMCkuc29ydCgpOwoJCQluYW1lc3BhY2VfcmUgPSBuZXcgUmVnRXhwKCIoXnxcXC4pIiArIG5hbWVzcGFjZV9zb3J0LmpvaW4oIlxcLig/Oi4qXFwuKT8iKSArICIoXFwufCQpIik7CgkJfQoKCQlldmVudC5uYW1lc3BhY2UgPSBldmVudC5uYW1lc3BhY2UgfHwgbmFtZXNwYWNlX3NvcnQuam9pbigiLiIpOwoKCQlldmVudHMgPSBqUXVlcnkuX2RhdGEodGhpcywgImV2ZW50cyIpOwoKCQloYW5kbGVycyA9IChldmVudHMgfHwge30pWyBldmVudC50eXBlIF07CgoJCWlmICggZXZlbnRzICYmIGhhbmRsZXJzICkgewoJCQkvLyBDbG9uZSB0aGUgaGFuZGxlcnMgdG8gcHJldmVudCBtYW5pcHVsYXRpb24KCQkJaGFuZGxlcnMgPSBoYW5kbGVycy5zbGljZSgwKTsKCgkJCWZvciAoIHZhciBqID0gMCwgbCA9IGhhbmRsZXJzLmxlbmd0aDsgaiA8IGw7IGorKyApIHsKCQkJCXZhciBoYW5kbGVPYmogPSBoYW5kbGVyc1sgaiBdOwoKCQkJCS8vIEZpbHRlciB0aGUgZnVuY3Rpb25zIGJ5IGNsYXNzCgkJCQlpZiAoIGFsbCB8fCBuYW1lc3BhY2VfcmUudGVzdCggaGFuZGxlT2JqLm5hbWVzcGFjZSApICkgewoJCQkJCS8vIFBhc3MgaW4gYSByZWZlcmVuY2UgdG8gdGhlIGhhbmRsZXIgZnVuY3Rpb24gaXRzZWxmCgkJCQkJLy8gU28gdGhhdCB3ZSBjYW4gbGF0ZXIgcmVtb3ZlIGl0CgkJCQkJZXZlbnQuaGFuZGxlciA9IGhhbmRsZU9iai5oYW5kbGVyOwoJCQkJCWV2ZW50LmRhdGEgPSBoYW5kbGVPYmouZGF0YTsKCQkJCQlldmVudC5oYW5kbGVPYmogPSBoYW5kbGVPYmo7CgoJCQkJCXZhciByZXQgPSBoYW5kbGVPYmouaGFuZGxlci5hcHBseSggdGhpcywgYXJncyApOwoKCQkJCQlpZiAoIHJldCAhPT0gdW5kZWZpbmVkICkgewoJCQkJCQlldmVudC5yZXN1bHQgPSByZXQ7CgkJCQkJCWlmICggcmV0ID09PSBmYWxzZSApIHsKCQkJCQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7CgkJCQkJCQlldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKCQkJCQkJfQoJCQkJCX0KCgkJCQkJaWYgKCBldmVudC5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpICkgewoJCQkJCQlicmVhazsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgoJCXJldHVybiBldmVudC5yZXN1bHQ7Cgl9LAoKCXByb3BzOiAiYWx0S2V5IGF0dHJDaGFuZ2UgYXR0ck5hbWUgYnViYmxlcyBidXR0b24gY2FuY2VsYWJsZSBjaGFyQ29kZSBjbGllbnRYIGNsaWVudFkgY3RybEtleSBjdXJyZW50VGFyZ2V0IGRhdGEgZGV0YWlsIGV2ZW50UGhhc2UgZnJvbUVsZW1lbnQgaGFuZGxlciBrZXlDb2RlIGxheWVyWCBsYXllclkgbWV0YUtleSBuZXdWYWx1ZSBvZmZzZXRYIG9mZnNldFkgcGFnZVggcGFnZVkgcHJldlZhbHVlIHJlbGF0ZWROb2RlIHJlbGF0ZWRUYXJnZXQgc2NyZWVuWCBzY3JlZW5ZIHNoaWZ0S2V5IHNyY0VsZW1lbnQgdGFyZ2V0IHRvRWxlbWVudCB2aWV3IHdoZWVsRGVsdGEgd2hpY2giLnNwbGl0KCIgIiksCgoJZml4OiBmdW5jdGlvbiggZXZlbnQgKSB7CgkJaWYgKCBldmVudFsgalF1ZXJ5LmV4cGFuZG8gXSApIHsKCQkJcmV0dXJuIGV2ZW50OwoJCX0KCgkJLy8gc3RvcmUgYSBjb3B5IG9mIHRoZSBvcmlnaW5hbCBldmVudCBvYmplY3QKCQkvLyBhbmQgImNsb25lIiB0byBzZXQgcmVhZC1vbmx5IHByb3BlcnRpZXMKCQl2YXIgb3JpZ2luYWxFdmVudCA9IGV2ZW50OwoJCWV2ZW50ID0galF1ZXJ5LkV2ZW50KCBvcmlnaW5hbEV2ZW50ICk7CgoJCWZvciAoIHZhciBpID0gdGhpcy5wcm9wcy5sZW5ndGgsIHByb3A7IGk7ICkgewoJCQlwcm9wID0gdGhpcy5wcm9wc1sgLS1pIF07CgkJCWV2ZW50WyBwcm9wIF0gPSBvcmlnaW5hbEV2ZW50WyBwcm9wIF07CgkJfQoKCQkvLyBGaXggdGFyZ2V0IHByb3BlcnR5LCBpZiBuZWNlc3NhcnkKCQlpZiAoICFldmVudC50YXJnZXQgKSB7CgkJCS8vIEZpeGVzICMxOTI1IHdoZXJlIHNyY0VsZW1lbnQgbWlnaHQgbm90IGJlIGRlZmluZWQgZWl0aGVyCgkJCWV2ZW50LnRhcmdldCA9IGV2ZW50LnNyY0VsZW1lbnQgfHwgZG9jdW1lbnQ7CgkJfQoKCQkvLyBjaGVjayBpZiB0YXJnZXQgaXMgYSB0ZXh0bm9kZSAoc2FmYXJpKQoJCWlmICggZXZlbnQudGFyZ2V0Lm5vZGVUeXBlID09PSAzICkgewoJCQlldmVudC50YXJnZXQgPSBldmVudC50YXJnZXQucGFyZW50Tm9kZTsKCQl9CgoJCS8vIEFkZCByZWxhdGVkVGFyZ2V0LCBpZiBuZWNlc3NhcnkKCQlpZiAoICFldmVudC5yZWxhdGVkVGFyZ2V0ICYmIGV2ZW50LmZyb21FbGVtZW50ICkgewoJCQlldmVudC5yZWxhdGVkVGFyZ2V0ID0gZXZlbnQuZnJvbUVsZW1lbnQgPT09IGV2ZW50LnRhcmdldCA/IGV2ZW50LnRvRWxlbWVudCA6IGV2ZW50LmZyb21FbGVtZW50OwoJCX0KCgkJLy8gQ2FsY3VsYXRlIHBhZ2VYL1kgaWYgbWlzc2luZyBhbmQgY2xpZW50WC9ZIGF2YWlsYWJsZQoJCWlmICggZXZlbnQucGFnZVggPT0gbnVsbCAmJiBldmVudC5jbGllbnRYICE9IG51bGwgKSB7CgkJCXZhciBkb2MgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsCgkJCQlib2R5ID0gZG9jdW1lbnQuYm9keTsKCgkJCWV2ZW50LnBhZ2VYID0gZXZlbnQuY2xpZW50WCArIChkb2MgJiYgZG9jLnNjcm9sbExlZnQgfHwgYm9keSAmJiBib2R5LnNjcm9sbExlZnQgfHwgMCkgLSAoZG9jICYmIGRvYy5jbGllbnRMZWZ0IHx8IGJvZHkgJiYgYm9keS5jbGllbnRMZWZ0IHx8IDApOwoJCQlldmVudC5wYWdlWSA9IGV2ZW50LmNsaWVudFkgKyAoZG9jICYmIGRvYy5zY3JvbGxUb3AgIHx8IGJvZHkgJiYgYm9keS5zY3JvbGxUb3AgIHx8IDApIC0gKGRvYyAmJiBkb2MuY2xpZW50VG9wICB8fCBib2R5ICYmIGJvZHkuY2xpZW50VG9wICB8fCAwKTsKCQl9CgoJCS8vIEFkZCB3aGljaCBmb3Iga2V5IGV2ZW50cwoJCWlmICggZXZlbnQud2hpY2ggPT0gbnVsbCAmJiAoZXZlbnQuY2hhckNvZGUgIT0gbnVsbCB8fCBldmVudC5rZXlDb2RlICE9IG51bGwpICkgewoJCQlldmVudC53aGljaCA9IGV2ZW50LmNoYXJDb2RlICE9IG51bGwgPyBldmVudC5jaGFyQ29kZSA6IGV2ZW50LmtleUNvZGU7CgkJfQoKCQkvLyBBZGQgbWV0YUtleSB0byBub24tTWFjIGJyb3dzZXJzICh1c2UgY3RybCBmb3IgUEMncyBhbmQgTWV0YSBmb3IgTWFjcykKCQlpZiAoICFldmVudC5tZXRhS2V5ICYmIGV2ZW50LmN0cmxLZXkgKSB7CgkJCWV2ZW50Lm1ldGFLZXkgPSBldmVudC5jdHJsS2V5OwoJCX0KCgkJLy8gQWRkIHdoaWNoIGZvciBjbGljazogMSA9PT0gbGVmdDsgMiA9PT0gbWlkZGxlOyAzID09PSByaWdodAoJCS8vIE5vdGU6IGJ1dHRvbiBpcyBub3Qgbm9ybWFsaXplZCwgc28gZG9uJ3QgdXNlIGl0CgkJaWYgKCAhZXZlbnQud2hpY2ggJiYgZXZlbnQuYnV0dG9uICE9PSB1bmRlZmluZWQgKSB7CgkJCWV2ZW50LndoaWNoID0gKGV2ZW50LmJ1dHRvbiAmIDEgPyAxIDogKCBldmVudC5idXR0b24gJiAyID8gMyA6ICggZXZlbnQuYnV0dG9uICYgNCA/IDIgOiAwICkgKSk7CgkJfQoKCQlyZXR1cm4gZXZlbnQ7Cgl9LAoKCS8vIERlcHJlY2F0ZWQsIHVzZSBqUXVlcnkuZ3VpZCBpbnN0ZWFkCglndWlkOiAxRTgsCgoJLy8gRGVwcmVjYXRlZCwgdXNlIGpRdWVyeS5wcm94eSBpbnN0ZWFkCglwcm94eTogalF1ZXJ5LnByb3h5LAoKCXNwZWNpYWw6IHsKCQlyZWFkeTogewoJCQkvLyBNYWtlIHN1cmUgdGhlIHJlYWR5IGV2ZW50IGlzIHNldHVwCgkJCXNldHVwOiBqUXVlcnkuYmluZFJlYWR5LAoJCQl0ZWFyZG93bjogalF1ZXJ5Lm5vb3AKCQl9LAoKCQlsaXZlOiB7CgkJCWFkZDogZnVuY3Rpb24oIGhhbmRsZU9iaiApIHsKCQkJCWpRdWVyeS5ldmVudC5hZGQoIHRoaXMsCgkJCQkJbGl2ZUNvbnZlcnQoIGhhbmRsZU9iai5vcmlnVHlwZSwgaGFuZGxlT2JqLnNlbGVjdG9yICksCgkJCQkJalF1ZXJ5LmV4dGVuZCh7fSwgaGFuZGxlT2JqLCB7aGFuZGxlcjogbGl2ZUhhbmRsZXIsIGd1aWQ6IGhhbmRsZU9iai5oYW5kbGVyLmd1aWR9KSApOwoJCQl9LAoKCQkJcmVtb3ZlOiBmdW5jdGlvbiggaGFuZGxlT2JqICkgewoJCQkJalF1ZXJ5LmV2ZW50LnJlbW92ZSggdGhpcywgbGl2ZUNvbnZlcnQoIGhhbmRsZU9iai5vcmlnVHlwZSwgaGFuZGxlT2JqLnNlbGVjdG9yICksIGhhbmRsZU9iaiApOwoJCQl9CgkJfSwKCgkJYmVmb3JldW5sb2FkOiB7CgkJCXNldHVwOiBmdW5jdGlvbiggZGF0YSwgbmFtZXNwYWNlcywgZXZlbnRIYW5kbGUgKSB7CgkJCQkvLyBXZSBvbmx5IHdhbnQgdG8gZG8gdGhpcyBzcGVjaWFsIGNhc2Ugb24gd2luZG93cwoJCQkJaWYgKCBqUXVlcnkuaXNXaW5kb3coIHRoaXMgKSApIHsKCQkJCQl0aGlzLm9uYmVmb3JldW5sb2FkID0gZXZlbnRIYW5kbGU7CgkJCQl9CgkJCX0sCgoJCQl0ZWFyZG93bjogZnVuY3Rpb24oIG5hbWVzcGFjZXMsIGV2ZW50SGFuZGxlICkgewoJCQkJaWYgKCB0aGlzLm9uYmVmb3JldW5sb2FkID09PSBldmVudEhhbmRsZSApIHsKCQkJCQl0aGlzLm9uYmVmb3JldW5sb2FkID0gbnVsbDsKCQkJCX0KCQkJfQoJCX0KCX0KfTsKCmpRdWVyeS5yZW1vdmVFdmVudCA9IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIgPwoJZnVuY3Rpb24oIGVsZW0sIHR5cGUsIGhhbmRsZSApIHsKCQlpZiAoIGVsZW0ucmVtb3ZlRXZlbnRMaXN0ZW5lciApIHsKCQkJZWxlbS5yZW1vdmVFdmVudExpc3RlbmVyKCB0eXBlLCBoYW5kbGUsIGZhbHNlICk7CgkJfQoJfSA6CglmdW5jdGlvbiggZWxlbSwgdHlwZSwgaGFuZGxlICkgewoJCWlmICggZWxlbS5kZXRhY2hFdmVudCApIHsKCQkJZWxlbS5kZXRhY2hFdmVudCggIm9uIiArIHR5cGUsIGhhbmRsZSApOwoJCX0KCX07CgpqUXVlcnkuRXZlbnQgPSBmdW5jdGlvbiggc3JjICkgewoJLy8gQWxsb3cgaW5zdGFudGlhdGlvbiB3aXRob3V0IHRoZSAnbmV3JyBrZXl3b3JkCglpZiAoICF0aGlzLnByZXZlbnREZWZhdWx0ICkgewoJCXJldHVybiBuZXcgalF1ZXJ5LkV2ZW50KCBzcmMgKTsKCX0KCgkvLyBFdmVudCBvYmplY3QKCWlmICggc3JjICYmIHNyYy50eXBlICkgewoJCXRoaXMub3JpZ2luYWxFdmVudCA9IHNyYzsKCQl0aGlzLnR5cGUgPSBzcmMudHlwZTsKCgkJLy8gRXZlbnRzIGJ1YmJsaW5nIHVwIHRoZSBkb2N1bWVudCBtYXkgaGF2ZSBiZWVuIG1hcmtlZCBhcyBwcmV2ZW50ZWQKCQkvLyBieSBhIGhhbmRsZXIgbG93ZXIgZG93biB0aGUgdHJlZTsgcmVmbGVjdCB0aGUgY29ycmVjdCB2YWx1ZS4KCQl0aGlzLmlzRGVmYXVsdFByZXZlbnRlZCA9IChzcmMuZGVmYXVsdFByZXZlbnRlZCB8fCBzcmMucmV0dXJuVmFsdWUgPT09IGZhbHNlIHx8CgkJCXNyYy5nZXRQcmV2ZW50RGVmYXVsdCAmJiBzcmMuZ2V0UHJldmVudERlZmF1bHQoKSkgPyByZXR1cm5UcnVlIDogcmV0dXJuRmFsc2U7CgoJLy8gRXZlbnQgdHlwZQoJfSBlbHNlIHsKCQl0aGlzLnR5cGUgPSBzcmM7Cgl9CgoJLy8gdGltZVN0YW1wIGlzIGJ1Z2d5IGZvciBzb21lIGV2ZW50cyBvbiBGaXJlZm94KCMzODQzKQoJLy8gU28gd2Ugd29uJ3QgcmVseSBvbiB0aGUgbmF0aXZlIHZhbHVlCgl0aGlzLnRpbWVTdGFtcCA9IGpRdWVyeS5ub3coKTsKCgkvLyBNYXJrIGl0IGFzIGZpeGVkCgl0aGlzWyBqUXVlcnkuZXhwYW5kbyBdID0gdHJ1ZTsKfTsKCmZ1bmN0aW9uIHJldHVybkZhbHNlKCkgewoJcmV0dXJuIGZhbHNlOwp9CmZ1bmN0aW9uIHJldHVyblRydWUoKSB7CglyZXR1cm4gdHJ1ZTsKfQoKLy8galF1ZXJ5LkV2ZW50IGlzIGJhc2VkIG9uIERPTTMgRXZlbnRzIGFzIHNwZWNpZmllZCBieSB0aGUgRUNNQVNjcmlwdCBMYW5ndWFnZSBCaW5kaW5nCi8vIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDMvV0QtRE9NLUxldmVsLTMtRXZlbnRzLTIwMDMwMzMxL2VjbWEtc2NyaXB0LWJpbmRpbmcuaHRtbApqUXVlcnkuRXZlbnQucHJvdG90eXBlID0gewoJcHJldmVudERlZmF1bHQ6IGZ1bmN0aW9uKCkgewoJCXRoaXMuaXNEZWZhdWx0UHJldmVudGVkID0gcmV0dXJuVHJ1ZTsKCgkJdmFyIGUgPSB0aGlzLm9yaWdpbmFsRXZlbnQ7CgkJaWYgKCAhZSApIHsKCQkJcmV0dXJuOwoJCX0KCgkJLy8gaWYgcHJldmVudERlZmF1bHQgZXhpc3RzIHJ1biBpdCBvbiB0aGUgb3JpZ2luYWwgZXZlbnQKCQlpZiAoIGUucHJldmVudERlZmF1bHQgKSB7CgkJCWUucHJldmVudERlZmF1bHQoKTsKCgkJLy8gb3RoZXJ3aXNlIHNldCB0aGUgcmV0dXJuVmFsdWUgcHJvcGVydHkgb2YgdGhlIG9yaWdpbmFsIGV2ZW50IHRvIGZhbHNlIChJRSkKCQl9IGVsc2UgewoJCQllLnJldHVyblZhbHVlID0gZmFsc2U7CgkJfQoJfSwKCXN0b3BQcm9wYWdhdGlvbjogZnVuY3Rpb24oKSB7CgkJdGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZCA9IHJldHVyblRydWU7CgoJCXZhciBlID0gdGhpcy5vcmlnaW5hbEV2ZW50OwoJCWlmICggIWUgKSB7CgkJCXJldHVybjsKCQl9CgkJLy8gaWYgc3RvcFByb3BhZ2F0aW9uIGV4aXN0cyBydW4gaXQgb24gdGhlIG9yaWdpbmFsIGV2ZW50CgkJaWYgKCBlLnN0b3BQcm9wYWdhdGlvbiApIHsKCQkJZS5zdG9wUHJvcGFnYXRpb24oKTsKCQl9CgkJLy8gb3RoZXJ3aXNlIHNldCB0aGUgY2FuY2VsQnViYmxlIHByb3BlcnR5IG9mIHRoZSBvcmlnaW5hbCBldmVudCB0byB0cnVlIChJRSkKCQllLmNhbmNlbEJ1YmJsZSA9IHRydWU7Cgl9LAoJc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOiBmdW5jdGlvbigpIHsKCQl0aGlzLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkID0gcmV0dXJuVHJ1ZTsKCQl0aGlzLnN0b3BQcm9wYWdhdGlvbigpOwoJfSwKCWlzRGVmYXVsdFByZXZlbnRlZDogcmV0dXJuRmFsc2UsCglpc1Byb3BhZ2F0aW9uU3RvcHBlZDogcmV0dXJuRmFsc2UsCglpc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZDogcmV0dXJuRmFsc2UKfTsKCi8vIENoZWNrcyBpZiBhbiBldmVudCBoYXBwZW5lZCBvbiBhbiBlbGVtZW50IHdpdGhpbiBhbm90aGVyIGVsZW1lbnQKLy8gVXNlZCBpbiBqUXVlcnkuZXZlbnQuc3BlY2lhbC5tb3VzZWVudGVyIGFuZCBtb3VzZWxlYXZlIGhhbmRsZXJzCnZhciB3aXRoaW5FbGVtZW50ID0gZnVuY3Rpb24oIGV2ZW50ICkgewoJLy8gQ2hlY2sgaWYgbW91c2Uob3ZlcnxvdXQpIGFyZSBzdGlsbCB3aXRoaW4gdGhlIHNhbWUgcGFyZW50IGVsZW1lbnQKCXZhciBwYXJlbnQgPSBldmVudC5yZWxhdGVkVGFyZ2V0OwoKCS8vIEZpcmVmb3ggc29tZXRpbWVzIGFzc2lnbnMgcmVsYXRlZFRhcmdldCBhIFhVTCBlbGVtZW50CgkvLyB3aGljaCB3ZSBjYW5ub3QgYWNjZXNzIHRoZSBwYXJlbnROb2RlIHByb3BlcnR5IG9mCgl0cnkgewoKCQkvLyBDaHJvbWUgZG9lcyBzb21ldGhpbmcgc2ltaWxhciwgdGhlIHBhcmVudE5vZGUgcHJvcGVydHkKCQkvLyBjYW4gYmUgYWNjZXNzZWQgYnV0IGlzIG51bGwuCgkJaWYgKCBwYXJlbnQgIT09IGRvY3VtZW50ICYmICFwYXJlbnQucGFyZW50Tm9kZSApIHsKCQkJcmV0dXJuOwoJCX0KCQkvLyBUcmF2ZXJzZSB1cCB0aGUgdHJlZQoJCXdoaWxlICggcGFyZW50ICYmIHBhcmVudCAhPT0gdGhpcyApIHsKCQkJcGFyZW50ID0gcGFyZW50LnBhcmVudE5vZGU7CgkJfQoKCQlpZiAoIHBhcmVudCAhPT0gdGhpcyApIHsKCQkJLy8gc2V0IHRoZSBjb3JyZWN0IGV2ZW50IHR5cGUKCQkJZXZlbnQudHlwZSA9IGV2ZW50LmRhdGE7CgoJCQkvLyBoYW5kbGUgZXZlbnQgaWYgd2UgYWN0dWFsbHkganVzdCBtb3VzZWQgb24gdG8gYSBub24gc3ViLWVsZW1lbnQKCQkJalF1ZXJ5LmV2ZW50LmhhbmRsZS5hcHBseSggdGhpcywgYXJndW1lbnRzICk7CgkJfQoKCS8vIGFzc3VtaW5nIHdlJ3ZlIGxlZnQgdGhlIGVsZW1lbnQgc2luY2Ugd2UgbW9zdCBsaWtlbHkgbW91c2Vkb3ZlciBhIHh1bCBlbGVtZW50Cgl9IGNhdGNoKGUpIHsgfQp9LAoKLy8gSW4gY2FzZSBvZiBldmVudCBkZWxlZ2F0aW9uLCB3ZSBvbmx5IG5lZWQgdG8gcmVuYW1lIHRoZSBldmVudC50eXBlLAovLyBsaXZlSGFuZGxlciB3aWxsIHRha2UgY2FyZSBvZiB0aGUgcmVzdC4KZGVsZWdhdGUgPSBmdW5jdGlvbiggZXZlbnQgKSB7CglldmVudC50eXBlID0gZXZlbnQuZGF0YTsKCWpRdWVyeS5ldmVudC5oYW5kbGUuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApOwp9OwoKLy8gQ3JlYXRlIG1vdXNlZW50ZXIgYW5kIG1vdXNlbGVhdmUgZXZlbnRzCmpRdWVyeS5lYWNoKHsKCW1vdXNlZW50ZXI6ICJtb3VzZW92ZXIiLAoJbW91c2VsZWF2ZTogIm1vdXNlb3V0Igp9LCBmdW5jdGlvbiggb3JpZywgZml4ICkgewoJalF1ZXJ5LmV2ZW50LnNwZWNpYWxbIG9yaWcgXSA9IHsKCQlzZXR1cDogZnVuY3Rpb24oIGRhdGEgKSB7CgkJCWpRdWVyeS5ldmVudC5hZGQoIHRoaXMsIGZpeCwgZGF0YSAmJiBkYXRhLnNlbGVjdG9yID8gZGVsZWdhdGUgOiB3aXRoaW5FbGVtZW50LCBvcmlnICk7CgkJfSwKCQl0ZWFyZG93bjogZnVuY3Rpb24oIGRhdGEgKSB7CgkJCWpRdWVyeS5ldmVudC5yZW1vdmUoIHRoaXMsIGZpeCwgZGF0YSAmJiBkYXRhLnNlbGVjdG9yID8gZGVsZWdhdGUgOiB3aXRoaW5FbGVtZW50ICk7CgkJfQoJfTsKfSk7CgovLyBzdWJtaXQgZGVsZWdhdGlvbgppZiAoICFqUXVlcnkuc3VwcG9ydC5zdWJtaXRCdWJibGVzICkgewoKCWpRdWVyeS5ldmVudC5zcGVjaWFsLnN1Ym1pdCA9IHsKCQlzZXR1cDogZnVuY3Rpb24oIGRhdGEsIG5hbWVzcGFjZXMgKSB7CgkJCWlmICggdGhpcy5ub2RlTmFtZSAmJiB0aGlzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgIT09ICJmb3JtIiApIHsKCQkJCWpRdWVyeS5ldmVudC5hZGQodGhpcywgImNsaWNrLnNwZWNpYWxTdWJtaXQiLCBmdW5jdGlvbiggZSApIHsKCQkJCQl2YXIgZWxlbSA9IGUudGFyZ2V0LAoJCQkJCQl0eXBlID0gZWxlbS50eXBlOwoKCQkJCQlpZiAoICh0eXBlID09PSAic3VibWl0IiB8fCB0eXBlID09PSAiaW1hZ2UiKSAmJiBqUXVlcnkoIGVsZW0gKS5jbG9zZXN0KCJmb3JtIikubGVuZ3RoICkgewoJCQkJCQl0cmlnZ2VyKCAic3VibWl0IiwgdGhpcywgYXJndW1lbnRzICk7CgkJCQkJfQoJCQkJfSk7CgoJCQkJalF1ZXJ5LmV2ZW50LmFkZCh0aGlzLCAia2V5cHJlc3Muc3BlY2lhbFN1Ym1pdCIsIGZ1bmN0aW9uKCBlICkgewoJCQkJCXZhciBlbGVtID0gZS50YXJnZXQsCgkJCQkJCXR5cGUgPSBlbGVtLnR5cGU7CgoJCQkJCWlmICggKHR5cGUgPT09ICJ0ZXh0IiB8fCB0eXBlID09PSAicGFzc3dvcmQiKSAmJiBqUXVlcnkoIGVsZW0gKS5jbG9zZXN0KCJmb3JtIikubGVuZ3RoICYmIGUua2V5Q29kZSA9PT0gMTMgKSB7CgkJCQkJCXRyaWdnZXIoICJzdWJtaXQiLCB0aGlzLCBhcmd1bWVudHMgKTsKCQkJCQl9CgkJCQl9KTsKCgkJCX0gZWxzZSB7CgkJCQlyZXR1cm4gZmFsc2U7CgkJCX0KCQl9LAoKCQl0ZWFyZG93bjogZnVuY3Rpb24oIG5hbWVzcGFjZXMgKSB7CgkJCWpRdWVyeS5ldmVudC5yZW1vdmUoIHRoaXMsICIuc3BlY2lhbFN1Ym1pdCIgKTsKCQl9Cgl9OwoKfQoKLy8gY2hhbmdlIGRlbGVnYXRpb24sIGhhcHBlbnMgaGVyZSBzbyB3ZSBoYXZlIGJpbmQuCmlmICggIWpRdWVyeS5zdXBwb3J0LmNoYW5nZUJ1YmJsZXMgKSB7CgoJdmFyIGNoYW5nZUZpbHRlcnMsCgoJZ2V0VmFsID0gZnVuY3Rpb24oIGVsZW0gKSB7CgkJdmFyIHR5cGUgPSBlbGVtLnR5cGUsIHZhbCA9IGVsZW0udmFsdWU7CgoJCWlmICggdHlwZSA9PT0gInJhZGlvIiB8fCB0eXBlID09PSAiY2hlY2tib3giICkgewoJCQl2YWwgPSBlbGVtLmNoZWNrZWQ7CgoJCX0gZWxzZSBpZiAoIHR5cGUgPT09ICJzZWxlY3QtbXVsdGlwbGUiICkgewoJCQl2YWwgPSBlbGVtLnNlbGVjdGVkSW5kZXggPiAtMSA/CgkJCQlqUXVlcnkubWFwKCBlbGVtLm9wdGlvbnMsIGZ1bmN0aW9uKCBlbGVtICkgewoJCQkJCXJldHVybiBlbGVtLnNlbGVjdGVkOwoJCQkJfSkuam9pbigiLSIpIDoKCQkJCSIiOwoKCQl9IGVsc2UgaWYgKCBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICJzZWxlY3QiICkgewoJCQl2YWwgPSBlbGVtLnNlbGVjdGVkSW5kZXg7CgkJfQoKCQlyZXR1cm4gdmFsOwoJfSwKCgl0ZXN0Q2hhbmdlID0gZnVuY3Rpb24gdGVzdENoYW5nZSggZSApIHsKCQl2YXIgZWxlbSA9IGUudGFyZ2V0LCBkYXRhLCB2YWw7CgoJCWlmICggIXJmb3JtRWxlbXMudGVzdCggZWxlbS5ub2RlTmFtZSApIHx8IGVsZW0ucmVhZE9ubHkgKSB7CgkJCXJldHVybjsKCQl9CgoJCWRhdGEgPSBqUXVlcnkuX2RhdGEoIGVsZW0sICJfY2hhbmdlX2RhdGEiICk7CgkJdmFsID0gZ2V0VmFsKGVsZW0pOwoKCQkvLyB0aGUgY3VycmVudCBkYXRhIHdpbGwgYmUgYWxzbyByZXRyaWV2ZWQgYnkgYmVmb3JlYWN0aXZhdGUKCQlpZiAoIGUudHlwZSAhPT0gImZvY3Vzb3V0IiB8fCBlbGVtLnR5cGUgIT09ICJyYWRpbyIgKSB7CgkJCWpRdWVyeS5fZGF0YSggZWxlbSwgIl9jaGFuZ2VfZGF0YSIsIHZhbCApOwoJCX0KCgkJaWYgKCBkYXRhID09PSB1bmRlZmluZWQgfHwgdmFsID09PSBkYXRhICkgewoJCQlyZXR1cm47CgkJfQoKCQlpZiAoIGRhdGEgIT0gbnVsbCB8fCB2YWwgKSB7CgkJCWUudHlwZSA9ICJjaGFuZ2UiOwoJCQllLmxpdmVGaXJlZCA9IHVuZGVmaW5lZDsKCQkJalF1ZXJ5LmV2ZW50LnRyaWdnZXIoIGUsIGFyZ3VtZW50c1sxXSwgZWxlbSApOwoJCX0KCX07CgoJalF1ZXJ5LmV2ZW50LnNwZWNpYWwuY2hhbmdlID0gewoJCWZpbHRlcnM6IHsKCQkJZm9jdXNvdXQ6IHRlc3RDaGFuZ2UsCgoJCQliZWZvcmVkZWFjdGl2YXRlOiB0ZXN0Q2hhbmdlLAoKCQkJY2xpY2s6IGZ1bmN0aW9uKCBlICkgewoJCQkJdmFyIGVsZW0gPSBlLnRhcmdldCwgdHlwZSA9IGVsZW0udHlwZTsKCgkJCQlpZiAoIHR5cGUgPT09ICJyYWRpbyIgfHwgdHlwZSA9PT0gImNoZWNrYm94IiB8fCBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICJzZWxlY3QiICkgewoJCQkJCXRlc3RDaGFuZ2UuY2FsbCggdGhpcywgZSApOwoJCQkJfQoJCQl9LAoKCQkJLy8gQ2hhbmdlIGhhcyB0byBiZSBjYWxsZWQgYmVmb3JlIHN1Ym1pdAoJCQkvLyBLZXlkb3duIHdpbGwgYmUgY2FsbGVkIGJlZm9yZSBrZXlwcmVzcywgd2hpY2ggaXMgdXNlZCBpbiBzdWJtaXQtZXZlbnQgZGVsZWdhdGlvbgoJCQlrZXlkb3duOiBmdW5jdGlvbiggZSApIHsKCQkJCXZhciBlbGVtID0gZS50YXJnZXQsIHR5cGUgPSBlbGVtLnR5cGU7CgoJCQkJaWYgKCAoZS5rZXlDb2RlID09PSAxMyAmJiBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgIT09ICJ0ZXh0YXJlYSIpIHx8CgkJCQkJKGUua2V5Q29kZSA9PT0gMzIgJiYgKHR5cGUgPT09ICJjaGVja2JveCIgfHwgdHlwZSA9PT0gInJhZGlvIikpIHx8CgkJCQkJdHlwZSA9PT0gInNlbGVjdC1tdWx0aXBsZSIgKSB7CgkJCQkJdGVzdENoYW5nZS5jYWxsKCB0aGlzLCBlICk7CgkJCQl9CgkJCX0sCgoJCQkvLyBCZWZvcmVhY3RpdmF0ZSBoYXBwZW5zIGFsc28gYmVmb3JlIHRoZSBwcmV2aW91cyBlbGVtZW50IGlzIGJsdXJyZWQKCQkJLy8gd2l0aCB0aGlzIGV2ZW50IHlvdSBjYW4ndCB0cmlnZ2VyIGEgY2hhbmdlIGV2ZW50LCBidXQgeW91IGNhbiBzdG9yZQoJCQkvLyBpbmZvcm1hdGlvbgoJCQliZWZvcmVhY3RpdmF0ZTogZnVuY3Rpb24oIGUgKSB7CgkJCQl2YXIgZWxlbSA9IGUudGFyZ2V0OwoJCQkJalF1ZXJ5Ll9kYXRhKCBlbGVtLCAiX2NoYW5nZV9kYXRhIiwgZ2V0VmFsKGVsZW0pICk7CgkJCX0KCQl9LAoKCQlzZXR1cDogZnVuY3Rpb24oIGRhdGEsIG5hbWVzcGFjZXMgKSB7CgkJCWlmICggdGhpcy50eXBlID09PSAiZmlsZSIgKSB7CgkJCQlyZXR1cm4gZmFsc2U7CgkJCX0KCgkJCWZvciAoIHZhciB0eXBlIGluIGNoYW5nZUZpbHRlcnMgKSB7CgkJCQlqUXVlcnkuZXZlbnQuYWRkKCB0aGlzLCB0eXBlICsgIi5zcGVjaWFsQ2hhbmdlIiwgY2hhbmdlRmlsdGVyc1t0eXBlXSApOwoJCQl9CgoJCQlyZXR1cm4gcmZvcm1FbGVtcy50ZXN0KCB0aGlzLm5vZGVOYW1lICk7CgkJfSwKCgkJdGVhcmRvd246IGZ1bmN0aW9uKCBuYW1lc3BhY2VzICkgewoJCQlqUXVlcnkuZXZlbnQucmVtb3ZlKCB0aGlzLCAiLnNwZWNpYWxDaGFuZ2UiICk7CgoJCQlyZXR1cm4gcmZvcm1FbGVtcy50ZXN0KCB0aGlzLm5vZGVOYW1lICk7CgkJfQoJfTsKCgljaGFuZ2VGaWx0ZXJzID0galF1ZXJ5LmV2ZW50LnNwZWNpYWwuY2hhbmdlLmZpbHRlcnM7CgoJLy8gSGFuZGxlIHdoZW4gdGhlIGlucHV0IGlzIC5mb2N1cygpJ2QKCWNoYW5nZUZpbHRlcnMuZm9jdXMgPSBjaGFuZ2VGaWx0ZXJzLmJlZm9yZWFjdGl2YXRlOwp9CgpmdW5jdGlvbiB0cmlnZ2VyKCB0eXBlLCBlbGVtLCBhcmdzICkgewoJLy8gUGlnZ3liYWNrIG9uIGEgZG9ub3IgZXZlbnQgdG8gc2ltdWxhdGUgYSBkaWZmZXJlbnQgb25lLgoJLy8gRmFrZSBvcmlnaW5hbEV2ZW50IHRvIGF2b2lkIGRvbm9yJ3Mgc3RvcFByb3BhZ2F0aW9uLCBidXQgaWYgdGhlCgkvLyBzaW11bGF0ZWQgZXZlbnQgcHJldmVudHMgZGVmYXVsdCB0aGVuIHdlIGRvIHRoZSBzYW1lIG9uIHRoZSBkb25vci4KCS8vIERvbid0IHBhc3MgYXJncyBvciByZW1lbWJlciBsaXZlRmlyZWQ7IHRoZXkgYXBwbHkgdG8gdGhlIGRvbm9yIGV2ZW50LgoJdmFyIGV2ZW50ID0galF1ZXJ5LmV4dGVuZCgge30sIGFyZ3NbIDAgXSApOwoJZXZlbnQudHlwZSA9IHR5cGU7CglldmVudC5vcmlnaW5hbEV2ZW50ID0ge307CglldmVudC5saXZlRmlyZWQgPSB1bmRlZmluZWQ7CglqUXVlcnkuZXZlbnQuaGFuZGxlLmNhbGwoIGVsZW0sIGV2ZW50ICk7CglpZiAoIGV2ZW50LmlzRGVmYXVsdFByZXZlbnRlZCgpICkgewoJCWFyZ3NbIDAgXS5wcmV2ZW50RGVmYXVsdCgpOwoJfQp9CgovLyBDcmVhdGUgImJ1YmJsaW5nIiBmb2N1cyBhbmQgYmx1ciBldmVudHMKaWYgKCBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyICkgewoJalF1ZXJ5LmVhY2goeyBmb2N1czogImZvY3VzaW4iLCBibHVyOiAiZm9jdXNvdXQiIH0sIGZ1bmN0aW9uKCBvcmlnLCBmaXggKSB7CgkJalF1ZXJ5LmV2ZW50LnNwZWNpYWxbIGZpeCBdID0gewoJCQlzZXR1cDogZnVuY3Rpb24oKSB7CgkJCQl0aGlzLmFkZEV2ZW50TGlzdGVuZXIoIG9yaWcsIGhhbmRsZXIsIHRydWUgKTsKCQkJfSwKCQkJdGVhcmRvd246IGZ1bmN0aW9uKCkgewoJCQkJdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKCBvcmlnLCBoYW5kbGVyLCB0cnVlICk7CgkJCX0KCQl9OwoKCQlmdW5jdGlvbiBoYW5kbGVyKCBlICkgewoJCQllID0galF1ZXJ5LmV2ZW50LmZpeCggZSApOwoJCQllLnR5cGUgPSBmaXg7CgkJCXJldHVybiBqUXVlcnkuZXZlbnQuaGFuZGxlLmNhbGwoIHRoaXMsIGUgKTsKCQl9Cgl9KTsKfQoKalF1ZXJ5LmVhY2goWyJiaW5kIiwgIm9uZSJdLCBmdW5jdGlvbiggaSwgbmFtZSApIHsKCWpRdWVyeS5mblsgbmFtZSBdID0gZnVuY3Rpb24oIHR5cGUsIGRhdGEsIGZuICkgewoJCS8vIEhhbmRsZSBvYmplY3QgbGl0ZXJhbHMKCQlpZiAoIHR5cGVvZiB0eXBlID09PSAib2JqZWN0IiApIHsKCQkJZm9yICggdmFyIGtleSBpbiB0eXBlICkgewoJCQkJdGhpc1sgbmFtZSBdKGtleSwgZGF0YSwgdHlwZVtrZXldLCBmbik7CgkJCX0KCQkJcmV0dXJuIHRoaXM7CgkJfQoKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCBkYXRhICkgfHwgZGF0YSA9PT0gZmFsc2UgKSB7CgkJCWZuID0gZGF0YTsKCQkJZGF0YSA9IHVuZGVmaW5lZDsKCQl9CgoJCXZhciBoYW5kbGVyID0gbmFtZSA9PT0gIm9uZSIgPyBqUXVlcnkucHJveHkoIGZuLCBmdW5jdGlvbiggZXZlbnQgKSB7CgkJCWpRdWVyeSggdGhpcyApLnVuYmluZCggZXZlbnQsIGhhbmRsZXIgKTsKCQkJcmV0dXJuIGZuLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTsKCQl9KSA6IGZuOwoKCQlpZiAoIHR5cGUgPT09ICJ1bmxvYWQiICYmIG5hbWUgIT09ICJvbmUiICkgewoJCQl0aGlzLm9uZSggdHlwZSwgZGF0YSwgZm4gKTsKCgkJfSBlbHNlIHsKCQkJZm9yICggdmFyIGkgPSAwLCBsID0gdGhpcy5sZW5ndGg7IGkgPCBsOyBpKysgKSB7CgkJCQlqUXVlcnkuZXZlbnQuYWRkKCB0aGlzW2ldLCB0eXBlLCBoYW5kbGVyLCBkYXRhICk7CgkJCX0KCQl9CgoJCXJldHVybiB0aGlzOwoJfTsKfSk7CgpqUXVlcnkuZm4uZXh0ZW5kKHsKCXVuYmluZDogZnVuY3Rpb24oIHR5cGUsIGZuICkgewoJCS8vIEhhbmRsZSBvYmplY3QgbGl0ZXJhbHMKCQlpZiAoIHR5cGVvZiB0eXBlID09PSAib2JqZWN0IiAmJiAhdHlwZS5wcmV2ZW50RGVmYXVsdCApIHsKCQkJZm9yICggdmFyIGtleSBpbiB0eXBlICkgewoJCQkJdGhpcy51bmJpbmQoa2V5LCB0eXBlW2tleV0pOwoJCQl9CgoJCX0gZWxzZSB7CgkJCWZvciAoIHZhciBpID0gMCwgbCA9IHRoaXMubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCQkJalF1ZXJ5LmV2ZW50LnJlbW92ZSggdGhpc1tpXSwgdHlwZSwgZm4gKTsKCQkJfQoJCX0KCgkJcmV0dXJuIHRoaXM7Cgl9LAoKCWRlbGVnYXRlOiBmdW5jdGlvbiggc2VsZWN0b3IsIHR5cGVzLCBkYXRhLCBmbiApIHsKCQlyZXR1cm4gdGhpcy5saXZlKCB0eXBlcywgZGF0YSwgZm4sIHNlbGVjdG9yICk7Cgl9LAoKCXVuZGVsZWdhdGU6IGZ1bmN0aW9uKCBzZWxlY3RvciwgdHlwZXMsIGZuICkgewoJCWlmICggYXJndW1lbnRzLmxlbmd0aCA9PT0gMCApIHsKCQkJCXJldHVybiB0aGlzLnVuYmluZCggImxpdmUiICk7CgoJCX0gZWxzZSB7CgkJCXJldHVybiB0aGlzLmRpZSggdHlwZXMsIG51bGwsIGZuLCBzZWxlY3RvciApOwoJCX0KCX0sCgoJdHJpZ2dlcjogZnVuY3Rpb24oIHR5cGUsIGRhdGEgKSB7CgkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJalF1ZXJ5LmV2ZW50LnRyaWdnZXIoIHR5cGUsIGRhdGEsIHRoaXMgKTsKCQl9KTsKCX0sCgoJdHJpZ2dlckhhbmRsZXI6IGZ1bmN0aW9uKCB0eXBlLCBkYXRhICkgewoJCWlmICggdGhpc1swXSApIHsKCQkJdmFyIGV2ZW50ID0galF1ZXJ5LkV2ZW50KCB0eXBlICk7CgkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7CgkJCWV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwoJCQlqUXVlcnkuZXZlbnQudHJpZ2dlciggZXZlbnQsIGRhdGEsIHRoaXNbMF0gKTsKCQkJcmV0dXJuIGV2ZW50LnJlc3VsdDsKCQl9Cgl9LAoKCXRvZ2dsZTogZnVuY3Rpb24oIGZuICkgewoJCS8vIFNhdmUgcmVmZXJlbmNlIHRvIGFyZ3VtZW50cyBmb3IgYWNjZXNzIGluIGNsb3N1cmUKCQl2YXIgYXJncyA9IGFyZ3VtZW50cywKCQkJaSA9IDE7CgoJCS8vIGxpbmsgYWxsIHRoZSBmdW5jdGlvbnMsIHNvIGFueSBvZiB0aGVtIGNhbiB1bmJpbmQgdGhpcyBjbGljayBoYW5kbGVyCgkJd2hpbGUgKCBpIDwgYXJncy5sZW5ndGggKSB7CgkJCWpRdWVyeS5wcm94eSggZm4sIGFyZ3NbIGkrKyBdICk7CgkJfQoKCQlyZXR1cm4gdGhpcy5jbGljayggalF1ZXJ5LnByb3h5KCBmbiwgZnVuY3Rpb24oIGV2ZW50ICkgewoJCQkvLyBGaWd1cmUgb3V0IHdoaWNoIGZ1bmN0aW9uIHRvIGV4ZWN1dGUKCQkJdmFyIGxhc3RUb2dnbGUgPSAoIGpRdWVyeS5fZGF0YSggdGhpcywgImxhc3RUb2dnbGUiICsgZm4uZ3VpZCApIHx8IDAgKSAlIGk7CgkJCWpRdWVyeS5fZGF0YSggdGhpcywgImxhc3RUb2dnbGUiICsgZm4uZ3VpZCwgbGFzdFRvZ2dsZSArIDEgKTsKCgkJCS8vIE1ha2Ugc3VyZSB0aGF0IGNsaWNrcyBzdG9wCgkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7CgoJCQkvLyBhbmQgZXhlY3V0ZSB0aGUgZnVuY3Rpb24KCQkJcmV0dXJuIGFyZ3NbIGxhc3RUb2dnbGUgXS5hcHBseSggdGhpcywgYXJndW1lbnRzICkgfHwgZmFsc2U7CgkJfSkpOwoJfSwKCglob3ZlcjogZnVuY3Rpb24oIGZuT3ZlciwgZm5PdXQgKSB7CgkJcmV0dXJuIHRoaXMubW91c2VlbnRlciggZm5PdmVyICkubW91c2VsZWF2ZSggZm5PdXQgfHwgZm5PdmVyICk7Cgl9Cn0pOwoKdmFyIGxpdmVNYXAgPSB7Cglmb2N1czogImZvY3VzaW4iLAoJYmx1cjogImZvY3Vzb3V0IiwKCW1vdXNlZW50ZXI6ICJtb3VzZW92ZXIiLAoJbW91c2VsZWF2ZTogIm1vdXNlb3V0Igp9OwoKalF1ZXJ5LmVhY2goWyJsaXZlIiwgImRpZSJdLCBmdW5jdGlvbiggaSwgbmFtZSApIHsKCWpRdWVyeS5mblsgbmFtZSBdID0gZnVuY3Rpb24oIHR5cGVzLCBkYXRhLCBmbiwgb3JpZ1NlbGVjdG9yIC8qIEludGVybmFsIFVzZSBPbmx5ICovICkgewoJCXZhciB0eXBlLCBpID0gMCwgbWF0Y2gsIG5hbWVzcGFjZXMsIHByZVR5cGUsCgkJCXNlbGVjdG9yID0gb3JpZ1NlbGVjdG9yIHx8IHRoaXMuc2VsZWN0b3IsCgkJCWNvbnRleHQgPSBvcmlnU2VsZWN0b3IgPyB0aGlzIDogalF1ZXJ5KCB0aGlzLmNvbnRleHQgKTsKCgkJaWYgKCB0eXBlb2YgdHlwZXMgPT09ICJvYmplY3QiICYmICF0eXBlcy5wcmV2ZW50RGVmYXVsdCApIHsKCQkJZm9yICggdmFyIGtleSBpbiB0eXBlcyApIHsKCQkJCWNvbnRleHRbIG5hbWUgXSgga2V5LCBkYXRhLCB0eXBlc1trZXldLCBzZWxlY3RvciApOwoJCQl9CgoJCQlyZXR1cm4gdGhpczsKCQl9CgoJCWlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIGRhdGEgKSApIHsKCQkJZm4gPSBkYXRhOwoJCQlkYXRhID0gdW5kZWZpbmVkOwoJCX0KCgkJdHlwZXMgPSAodHlwZXMgfHwgIiIpLnNwbGl0KCIgIik7CgoJCXdoaWxlICggKHR5cGUgPSB0eXBlc1sgaSsrIF0pICE9IG51bGwgKSB7CgkJCW1hdGNoID0gcm5hbWVzcGFjZXMuZXhlYyggdHlwZSApOwoJCQluYW1lc3BhY2VzID0gIiI7CgoJCQlpZiAoIG1hdGNoICkgIHsKCQkJCW5hbWVzcGFjZXMgPSBtYXRjaFswXTsKCQkJCXR5cGUgPSB0eXBlLnJlcGxhY2UoIHJuYW1lc3BhY2VzLCAiIiApOwoJCQl9CgoJCQlpZiAoIHR5cGUgPT09ICJob3ZlciIgKSB7CgkJCQl0eXBlcy5wdXNoKCAibW91c2VlbnRlciIgKyBuYW1lc3BhY2VzLCAibW91c2VsZWF2ZSIgKyBuYW1lc3BhY2VzICk7CgkJCQljb250aW51ZTsKCQkJfQoKCQkJcHJlVHlwZSA9IHR5cGU7CgoJCQlpZiAoIHR5cGUgPT09ICJmb2N1cyIgfHwgdHlwZSA9PT0gImJsdXIiICkgewoJCQkJdHlwZXMucHVzaCggbGl2ZU1hcFsgdHlwZSBdICsgbmFtZXNwYWNlcyApOwoJCQkJdHlwZSA9IHR5cGUgKyBuYW1lc3BhY2VzOwoKCQkJfSBlbHNlIHsKCQkJCXR5cGUgPSAobGl2ZU1hcFsgdHlwZSBdIHx8IHR5cGUpICsgbmFtZXNwYWNlczsKCQkJfQoKCQkJaWYgKCBuYW1lID09PSAibGl2ZSIgKSB7CgkJCQkvLyBiaW5kIGxpdmUgaGFuZGxlcgoJCQkJZm9yICggdmFyIGogPSAwLCBsID0gY29udGV4dC5sZW5ndGg7IGogPCBsOyBqKysgKSB7CgkJCQkJalF1ZXJ5LmV2ZW50LmFkZCggY29udGV4dFtqXSwgImxpdmUuIiArIGxpdmVDb252ZXJ0KCB0eXBlLCBzZWxlY3RvciApLAoJCQkJCQl7IGRhdGE6IGRhdGEsIHNlbGVjdG9yOiBzZWxlY3RvciwgaGFuZGxlcjogZm4sIG9yaWdUeXBlOiB0eXBlLCBvcmlnSGFuZGxlcjogZm4sIHByZVR5cGU6IHByZVR5cGUgfSApOwoJCQkJfQoKCQkJfSBlbHNlIHsKCQkJCS8vIHVuYmluZCBsaXZlIGhhbmRsZXIKCQkJCWNvbnRleHQudW5iaW5kKCAibGl2ZS4iICsgbGl2ZUNvbnZlcnQoIHR5cGUsIHNlbGVjdG9yICksIGZuICk7CgkJCX0KCQl9CgoJCXJldHVybiB0aGlzOwoJfTsKfSk7CgpmdW5jdGlvbiBsaXZlSGFuZGxlciggZXZlbnQgKSB7Cgl2YXIgc3RvcCwgbWF4TGV2ZWwsIHJlbGF0ZWQsIG1hdGNoLCBoYW5kbGVPYmosIGVsZW0sIGosIGksIGwsIGRhdGEsIGNsb3NlLCBuYW1lc3BhY2UsIHJldCwKCQllbGVtcyA9IFtdLAoJCXNlbGVjdG9ycyA9IFtdLAoJCWV2ZW50cyA9IGpRdWVyeS5fZGF0YSggdGhpcywgImV2ZW50cyIgKTsKCgkvLyBNYWtlIHN1cmUgd2UgYXZvaWQgbm9uLWxlZnQtY2xpY2sgYnViYmxpbmcgaW4gRmlyZWZveCAoIzM4NjEpIGFuZCBkaXNhYmxlZCBlbGVtZW50cyBpbiBJRSAoIzY5MTEpCglpZiAoIGV2ZW50LmxpdmVGaXJlZCA9PT0gdGhpcyB8fCAhZXZlbnRzIHx8ICFldmVudHMubGl2ZSB8fCBldmVudC50YXJnZXQuZGlzYWJsZWQgfHwgZXZlbnQuYnV0dG9uICYmIGV2ZW50LnR5cGUgPT09ICJjbGljayIgKSB7CgkJcmV0dXJuOwoJfQoKCWlmICggZXZlbnQubmFtZXNwYWNlICkgewoJCW5hbWVzcGFjZSA9IG5ldyBSZWdFeHAoIihefFxcLikiICsgZXZlbnQubmFtZXNwYWNlLnNwbGl0KCIuIikuam9pbigiXFwuKD86LipcXC4pPyIpICsgIihcXC58JCkiKTsKCX0KCglldmVudC5saXZlRmlyZWQgPSB0aGlzOwoKCXZhciBsaXZlID0gZXZlbnRzLmxpdmUuc2xpY2UoMCk7CgoJZm9yICggaiA9IDA7IGogPCBsaXZlLmxlbmd0aDsgaisrICkgewoJCWhhbmRsZU9iaiA9IGxpdmVbal07CgoJCWlmICggaGFuZGxlT2JqLm9yaWdUeXBlLnJlcGxhY2UoIHJuYW1lc3BhY2VzLCAiIiApID09PSBldmVudC50eXBlICkgewoJCQlzZWxlY3RvcnMucHVzaCggaGFuZGxlT2JqLnNlbGVjdG9yICk7CgoJCX0gZWxzZSB7CgkJCWxpdmUuc3BsaWNlKCBqLS0sIDEgKTsKCQl9Cgl9CgoJbWF0Y2ggPSBqUXVlcnkoIGV2ZW50LnRhcmdldCApLmNsb3Nlc3QoIHNlbGVjdG9ycywgZXZlbnQuY3VycmVudFRhcmdldCApOwoKCWZvciAoIGkgPSAwLCBsID0gbWF0Y2gubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCWNsb3NlID0gbWF0Y2hbaV07CgoJCWZvciAoIGogPSAwOyBqIDwgbGl2ZS5sZW5ndGg7IGorKyApIHsKCQkJaGFuZGxlT2JqID0gbGl2ZVtqXTsKCgkJCWlmICggY2xvc2Uuc2VsZWN0b3IgPT09IGhhbmRsZU9iai5zZWxlY3RvciAmJiAoIW5hbWVzcGFjZSB8fCBuYW1lc3BhY2UudGVzdCggaGFuZGxlT2JqLm5hbWVzcGFjZSApKSAmJiAhY2xvc2UuZWxlbS5kaXNhYmxlZCApIHsKCQkJCWVsZW0gPSBjbG9zZS5lbGVtOwoJCQkJcmVsYXRlZCA9IG51bGw7CgoJCQkJLy8gVGhvc2UgdHdvIGV2ZW50cyByZXF1aXJlIGFkZGl0aW9uYWwgY2hlY2tpbmcKCQkJCWlmICggaGFuZGxlT2JqLnByZVR5cGUgPT09ICJtb3VzZWVudGVyIiB8fCBoYW5kbGVPYmoucHJlVHlwZSA9PT0gIm1vdXNlbGVhdmUiICkgewoJCQkJCWV2ZW50LnR5cGUgPSBoYW5kbGVPYmoucHJlVHlwZTsKCQkJCQlyZWxhdGVkID0galF1ZXJ5KCBldmVudC5yZWxhdGVkVGFyZ2V0ICkuY2xvc2VzdCggaGFuZGxlT2JqLnNlbGVjdG9yIClbMF07CgkJCQl9CgoJCQkJaWYgKCAhcmVsYXRlZCB8fCByZWxhdGVkICE9PSBlbGVtICkgewoJCQkJCWVsZW1zLnB1c2goeyBlbGVtOiBlbGVtLCBoYW5kbGVPYmo6IGhhbmRsZU9iaiwgbGV2ZWw6IGNsb3NlLmxldmVsIH0pOwoJCQkJfQoJCQl9CgkJfQoJfQoKCWZvciAoIGkgPSAwLCBsID0gZWxlbXMubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCW1hdGNoID0gZWxlbXNbaV07CgoJCWlmICggbWF4TGV2ZWwgJiYgbWF0Y2gubGV2ZWwgPiBtYXhMZXZlbCApIHsKCQkJYnJlYWs7CgkJfQoKCQlldmVudC5jdXJyZW50VGFyZ2V0ID0gbWF0Y2guZWxlbTsKCQlldmVudC5kYXRhID0gbWF0Y2guaGFuZGxlT2JqLmRhdGE7CgkJZXZlbnQuaGFuZGxlT2JqID0gbWF0Y2guaGFuZGxlT2JqOwoKCQlyZXQgPSBtYXRjaC5oYW5kbGVPYmoub3JpZ0hhbmRsZXIuYXBwbHkoIG1hdGNoLmVsZW0sIGFyZ3VtZW50cyApOwoKCQlpZiAoIHJldCA9PT0gZmFsc2UgfHwgZXZlbnQuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSApIHsKCQkJbWF4TGV2ZWwgPSBtYXRjaC5sZXZlbDsKCgkJCWlmICggcmV0ID09PSBmYWxzZSApIHsKCQkJCXN0b3AgPSBmYWxzZTsKCQkJfQoJCQlpZiAoIGV2ZW50LmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkKCkgKSB7CgkJCQlicmVhazsKCQkJfQoJCX0KCX0KCglyZXR1cm4gc3RvcDsKfQoKZnVuY3Rpb24gbGl2ZUNvbnZlcnQoIHR5cGUsIHNlbGVjdG9yICkgewoJcmV0dXJuICh0eXBlICYmIHR5cGUgIT09ICIqIiA/IHR5cGUgKyAiLiIgOiAiIikgKyBzZWxlY3Rvci5yZXBsYWNlKHJwZXJpb2QsICJgIikucmVwbGFjZShyc3BhY2UsICImIik7Cn0KCmpRdWVyeS5lYWNoKCAoImJsdXIgZm9jdXMgZm9jdXNpbiBmb2N1c291dCBsb2FkIHJlc2l6ZSBzY3JvbGwgdW5sb2FkIGNsaWNrIGRibGNsaWNrICIgKwoJIm1vdXNlZG93biBtb3VzZXVwIG1vdXNlbW92ZSBtb3VzZW92ZXIgbW91c2VvdXQgbW91c2VlbnRlciBtb3VzZWxlYXZlICIgKwoJImNoYW5nZSBzZWxlY3Qgc3VibWl0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgZXJyb3IiKS5zcGxpdCgiICIpLCBmdW5jdGlvbiggaSwgbmFtZSApIHsKCgkvLyBIYW5kbGUgZXZlbnQgYmluZGluZwoJalF1ZXJ5LmZuWyBuYW1lIF0gPSBmdW5jdGlvbiggZGF0YSwgZm4gKSB7CgkJaWYgKCBmbiA9PSBudWxsICkgewoJCQlmbiA9IGRhdGE7CgkJCWRhdGEgPSBudWxsOwoJCX0KCgkJcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPiAwID8KCQkJdGhpcy5iaW5kKCBuYW1lLCBkYXRhLCBmbiApIDoKCQkJdGhpcy50cmlnZ2VyKCBuYW1lICk7Cgl9OwoKCWlmICggalF1ZXJ5LmF0dHJGbiApIHsKCQlqUXVlcnkuYXR0ckZuWyBuYW1lIF0gPSB0cnVlOwoJfQp9KTsKCgovKiEKICogU2l6emxlIENTUyBTZWxlY3RvciBFbmdpbmUKICogIENvcHlyaWdodCAyMDExLCBUaGUgRG9qbyBGb3VuZGF0aW9uCiAqICBSZWxlYXNlZCB1bmRlciB0aGUgTUlULCBCU0QsIGFuZCBHUEwgTGljZW5zZXMuCiAqICBNb3JlIGluZm9ybWF0aW9uOiBodHRwOi8vc2l6emxlanMuY29tLwogKi8KKGZ1bmN0aW9uKCl7Cgp2YXIgY2h1bmtlciA9IC8oKD86XCgoPzpcKFteKCldK1wpfFteKCldKykrXCl8XFsoPzpcW1teXFtcXV0qXF18WyciXVteJyJdKlsnIl18W15cW1xdJyJdKykrXF18XFwufFteID4rfiwoXFtcXF0rKSt8Wz4rfl0pKFxzKixccyopPygoPzoufFxyfFxuKSopL2csCglkb25lID0gMCwKCXRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZywKCWhhc0R1cGxpY2F0ZSA9IGZhbHNlLAoJYmFzZUhhc0R1cGxpY2F0ZSA9IHRydWUsCglyQmFja3NsYXNoID0gL1xcL2csCglyTm9uV29yZCA9IC9cVy87CgovLyBIZXJlIHdlIGNoZWNrIGlmIHRoZSBKYXZhU2NyaXB0IGVuZ2luZSBpcyB1c2luZyBzb21lIHNvcnQgb2YKLy8gb3B0aW1pemF0aW9uIHdoZXJlIGl0IGRvZXMgbm90IGFsd2F5cyBjYWxsIG91ciBjb21wYXJpc2lvbgovLyBmdW5jdGlvbi4gSWYgdGhhdCBpcyB0aGUgY2FzZSwgZGlzY2FyZCB0aGUgaGFzRHVwbGljYXRlIHZhbHVlLgovLyAgIFRodXMgZmFyIHRoYXQgaW5jbHVkZXMgR29vZ2xlIENocm9tZS4KWzAsIDBdLnNvcnQoZnVuY3Rpb24oKSB7CgliYXNlSGFzRHVwbGljYXRlID0gZmFsc2U7CglyZXR1cm4gMDsKfSk7Cgp2YXIgU2l6emxlID0gZnVuY3Rpb24oIHNlbGVjdG9yLCBjb250ZXh0LCByZXN1bHRzLCBzZWVkICkgewoJcmVzdWx0cyA9IHJlc3VsdHMgfHwgW107Cgljb250ZXh0ID0gY29udGV4dCB8fCBkb2N1bWVudDsKCgl2YXIgb3JpZ0NvbnRleHQgPSBjb250ZXh0OwoKCWlmICggY29udGV4dC5ub2RlVHlwZSAhPT0gMSAmJiBjb250ZXh0Lm5vZGVUeXBlICE9PSA5ICkgewoJCXJldHVybiBbXTsKCX0KCQoJaWYgKCAhc2VsZWN0b3IgfHwgdHlwZW9mIHNlbGVjdG9yICE9PSAic3RyaW5nIiApIHsKCQlyZXR1cm4gcmVzdWx0czsKCX0KCgl2YXIgbSwgc2V0LCBjaGVja1NldCwgZXh0cmEsIHJldCwgY3VyLCBwb3AsIGksCgkJcHJ1bmUgPSB0cnVlLAoJCWNvbnRleHRYTUwgPSBTaXp6bGUuaXNYTUwoIGNvbnRleHQgKSwKCQlwYXJ0cyA9IFtdLAoJCXNvRmFyID0gc2VsZWN0b3I7CgkKCS8vIFJlc2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgY2h1bmtlciByZWdleHAgKHN0YXJ0IGZyb20gaGVhZCkKCWRvIHsKCQljaHVua2VyLmV4ZWMoICIiICk7CgkJbSA9IGNodW5rZXIuZXhlYyggc29GYXIgKTsKCgkJaWYgKCBtICkgewoJCQlzb0ZhciA9IG1bM107CgkJCgkJCXBhcnRzLnB1c2goIG1bMV0gKTsKCQkKCQkJaWYgKCBtWzJdICkgewoJCQkJZXh0cmEgPSBtWzNdOwoJCQkJYnJlYWs7CgkJCX0KCQl9Cgl9IHdoaWxlICggbSApOwoKCWlmICggcGFydHMubGVuZ3RoID4gMSAmJiBvcmlnUE9TLmV4ZWMoIHNlbGVjdG9yICkgKSB7CgoJCWlmICggcGFydHMubGVuZ3RoID09PSAyICYmIEV4cHIucmVsYXRpdmVbIHBhcnRzWzBdIF0gKSB7CgkJCXNldCA9IHBvc1Byb2Nlc3MoIHBhcnRzWzBdICsgcGFydHNbMV0sIGNvbnRleHQgKTsKCgkJfSBlbHNlIHsKCQkJc2V0ID0gRXhwci5yZWxhdGl2ZVsgcGFydHNbMF0gXSA/CgkJCQlbIGNvbnRleHQgXSA6CgkJCQlTaXp6bGUoIHBhcnRzLnNoaWZ0KCksIGNvbnRleHQgKTsKCgkJCXdoaWxlICggcGFydHMubGVuZ3RoICkgewoJCQkJc2VsZWN0b3IgPSBwYXJ0cy5zaGlmdCgpOwoKCQkJCWlmICggRXhwci5yZWxhdGl2ZVsgc2VsZWN0b3IgXSApIHsKCQkJCQlzZWxlY3RvciArPSBwYXJ0cy5zaGlmdCgpOwoJCQkJfQoJCQkJCgkJCQlzZXQgPSBwb3NQcm9jZXNzKCBzZWxlY3Rvciwgc2V0ICk7CgkJCX0KCQl9CgoJfSBlbHNlIHsKCQkvLyBUYWtlIGEgc2hvcnRjdXQgYW5kIHNldCB0aGUgY29udGV4dCBpZiB0aGUgcm9vdCBzZWxlY3RvciBpcyBhbiBJRAoJCS8vIChidXQgbm90IGlmIGl0J2xsIGJlIGZhc3RlciBpZiB0aGUgaW5uZXIgc2VsZWN0b3IgaXMgYW4gSUQpCgkJaWYgKCAhc2VlZCAmJiBwYXJ0cy5sZW5ndGggPiAxICYmIGNvbnRleHQubm9kZVR5cGUgPT09IDkgJiYgIWNvbnRleHRYTUwgJiYKCQkJCUV4cHIubWF0Y2guSUQudGVzdChwYXJ0c1swXSkgJiYgIUV4cHIubWF0Y2guSUQudGVzdChwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXSkgKSB7CgoJCQlyZXQgPSBTaXp6bGUuZmluZCggcGFydHMuc2hpZnQoKSwgY29udGV4dCwgY29udGV4dFhNTCApOwoJCQljb250ZXh0ID0gcmV0LmV4cHIgPwoJCQkJU2l6emxlLmZpbHRlciggcmV0LmV4cHIsIHJldC5zZXQgKVswXSA6CgkJCQlyZXQuc2V0WzBdOwoJCX0KCgkJaWYgKCBjb250ZXh0ICkgewoJCQlyZXQgPSBzZWVkID8KCQkJCXsgZXhwcjogcGFydHMucG9wKCksIHNldDogbWFrZUFycmF5KHNlZWQpIH0gOgoJCQkJU2l6emxlLmZpbmQoIHBhcnRzLnBvcCgpLCBwYXJ0cy5sZW5ndGggPT09IDEgJiYgKHBhcnRzWzBdID09PSAifiIgfHwgcGFydHNbMF0gPT09ICIrIikgJiYgY29udGV4dC5wYXJlbnROb2RlID8gY29udGV4dC5wYXJlbnROb2RlIDogY29udGV4dCwgY29udGV4dFhNTCApOwoKCQkJc2V0ID0gcmV0LmV4cHIgPwoJCQkJU2l6emxlLmZpbHRlciggcmV0LmV4cHIsIHJldC5zZXQgKSA6CgkJCQlyZXQuc2V0OwoKCQkJaWYgKCBwYXJ0cy5sZW5ndGggPiAwICkgewoJCQkJY2hlY2tTZXQgPSBtYWtlQXJyYXkoIHNldCApOwoKCQkJfSBlbHNlIHsKCQkJCXBydW5lID0gZmFsc2U7CgkJCX0KCgkJCXdoaWxlICggcGFydHMubGVuZ3RoICkgewoJCQkJY3VyID0gcGFydHMucG9wKCk7CgkJCQlwb3AgPSBjdXI7CgoJCQkJaWYgKCAhRXhwci5yZWxhdGl2ZVsgY3VyIF0gKSB7CgkJCQkJY3VyID0gIiI7CgkJCQl9IGVsc2UgewoJCQkJCXBvcCA9IHBhcnRzLnBvcCgpOwoJCQkJfQoKCQkJCWlmICggcG9wID09IG51bGwgKSB7CgkJCQkJcG9wID0gY29udGV4dDsKCQkJCX0KCgkJCQlFeHByLnJlbGF0aXZlWyBjdXIgXSggY2hlY2tTZXQsIHBvcCwgY29udGV4dFhNTCApOwoJCQl9CgoJCX0gZWxzZSB7CgkJCWNoZWNrU2V0ID0gcGFydHMgPSBbXTsKCQl9Cgl9CgoJaWYgKCAhY2hlY2tTZXQgKSB7CgkJY2hlY2tTZXQgPSBzZXQ7Cgl9CgoJaWYgKCAhY2hlY2tTZXQgKSB7CgkJU2l6emxlLmVycm9yKCBjdXIgfHwgc2VsZWN0b3IgKTsKCX0KCglpZiAoIHRvU3RyaW5nLmNhbGwoY2hlY2tTZXQpID09PSAiW29iamVjdCBBcnJheV0iICkgewoJCWlmICggIXBydW5lICkgewoJCQlyZXN1bHRzLnB1c2guYXBwbHkoIHJlc3VsdHMsIGNoZWNrU2V0ICk7CgoJCX0gZWxzZSBpZiAoIGNvbnRleHQgJiYgY29udGV4dC5ub2RlVHlwZSA9PT0gMSApIHsKCQkJZm9yICggaSA9IDA7IGNoZWNrU2V0W2ldICE9IG51bGw7IGkrKyApIHsKCQkJCWlmICggY2hlY2tTZXRbaV0gJiYgKGNoZWNrU2V0W2ldID09PSB0cnVlIHx8IGNoZWNrU2V0W2ldLm5vZGVUeXBlID09PSAxICYmIFNpenpsZS5jb250YWlucyhjb250ZXh0LCBjaGVja1NldFtpXSkpICkgewoJCQkJCXJlc3VsdHMucHVzaCggc2V0W2ldICk7CgkJCQl9CgkJCX0KCgkJfSBlbHNlIHsKCQkJZm9yICggaSA9IDA7IGNoZWNrU2V0W2ldICE9IG51bGw7IGkrKyApIHsKCQkJCWlmICggY2hlY2tTZXRbaV0gJiYgY2hlY2tTZXRbaV0ubm9kZVR5cGUgPT09IDEgKSB7CgkJCQkJcmVzdWx0cy5wdXNoKCBzZXRbaV0gKTsKCQkJCX0KCQkJfQoJCX0KCgl9IGVsc2UgewoJCW1ha2VBcnJheSggY2hlY2tTZXQsIHJlc3VsdHMgKTsKCX0KCglpZiAoIGV4dHJhICkgewoJCVNpenpsZSggZXh0cmEsIG9yaWdDb250ZXh0LCByZXN1bHRzLCBzZWVkICk7CgkJU2l6emxlLnVuaXF1ZVNvcnQoIHJlc3VsdHMgKTsKCX0KCglyZXR1cm4gcmVzdWx0czsKfTsKClNpenpsZS51bmlxdWVTb3J0ID0gZnVuY3Rpb24oIHJlc3VsdHMgKSB7CglpZiAoIHNvcnRPcmRlciApIHsKCQloYXNEdXBsaWNhdGUgPSBiYXNlSGFzRHVwbGljYXRlOwoJCXJlc3VsdHMuc29ydCggc29ydE9yZGVyICk7CgoJCWlmICggaGFzRHVwbGljYXRlICkgewoJCQlmb3IgKCB2YXIgaSA9IDE7IGkgPCByZXN1bHRzLmxlbmd0aDsgaSsrICkgewoJCQkJaWYgKCByZXN1bHRzW2ldID09PSByZXN1bHRzWyBpIC0gMSBdICkgewoJCQkJCXJlc3VsdHMuc3BsaWNlKCBpLS0sIDEgKTsKCQkJCX0KCQkJfQoJCX0KCX0KCglyZXR1cm4gcmVzdWx0czsKfTsKClNpenpsZS5tYXRjaGVzID0gZnVuY3Rpb24oIGV4cHIsIHNldCApIHsKCXJldHVybiBTaXp6bGUoIGV4cHIsIG51bGwsIG51bGwsIHNldCApOwp9OwoKU2l6emxlLm1hdGNoZXNTZWxlY3RvciA9IGZ1bmN0aW9uKCBub2RlLCBleHByICkgewoJcmV0dXJuIFNpenpsZSggZXhwciwgbnVsbCwgbnVsbCwgW25vZGVdICkubGVuZ3RoID4gMDsKfTsKClNpenpsZS5maW5kID0gZnVuY3Rpb24oIGV4cHIsIGNvbnRleHQsIGlzWE1MICkgewoJdmFyIHNldDsKCglpZiAoICFleHByICkgewoJCXJldHVybiBbXTsKCX0KCglmb3IgKCB2YXIgaSA9IDAsIGwgPSBFeHByLm9yZGVyLmxlbmd0aDsgaSA8IGw7IGkrKyApIHsKCQl2YXIgbWF0Y2gsCgkJCXR5cGUgPSBFeHByLm9yZGVyW2ldOwoJCQoJCWlmICggKG1hdGNoID0gRXhwci5sZWZ0TWF0Y2hbIHR5cGUgXS5leGVjKCBleHByICkpICkgewoJCQl2YXIgbGVmdCA9IG1hdGNoWzFdOwoJCQltYXRjaC5zcGxpY2UoIDEsIDEgKTsKCgkJCWlmICggbGVmdC5zdWJzdHIoIGxlZnQubGVuZ3RoIC0gMSApICE9PSAiXFwiICkgewoJCQkJbWF0Y2hbMV0gPSAobWF0Y2hbMV0gfHwgIiIpLnJlcGxhY2UoIHJCYWNrc2xhc2gsICIiICk7CgkJCQlzZXQgPSBFeHByLmZpbmRbIHR5cGUgXSggbWF0Y2gsIGNvbnRleHQsIGlzWE1MICk7CgoJCQkJaWYgKCBzZXQgIT0gbnVsbCApIHsKCQkJCQlleHByID0gZXhwci5yZXBsYWNlKCBFeHByLm1hdGNoWyB0eXBlIF0sICIiICk7CgkJCQkJYnJlYWs7CgkJCQl9CgkJCX0KCQl9Cgl9CgoJaWYgKCAhc2V0ICkgewoJCXNldCA9IHR5cGVvZiBjb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lICE9PSAidW5kZWZpbmVkIiA/CgkJCWNvbnRleHQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoICIqIiApIDoKCQkJW107Cgl9CgoJcmV0dXJuIHsgc2V0OiBzZXQsIGV4cHI6IGV4cHIgfTsKfTsKClNpenpsZS5maWx0ZXIgPSBmdW5jdGlvbiggZXhwciwgc2V0LCBpbnBsYWNlLCBub3QgKSB7Cgl2YXIgbWF0Y2gsIGFueUZvdW5kLAoJCW9sZCA9IGV4cHIsCgkJcmVzdWx0ID0gW10sCgkJY3VyTG9vcCA9IHNldCwKCQlpc1hNTEZpbHRlciA9IHNldCAmJiBzZXRbMF0gJiYgU2l6emxlLmlzWE1MKCBzZXRbMF0gKTsKCgl3aGlsZSAoIGV4cHIgJiYgc2V0Lmxlbmd0aCApIHsKCQlmb3IgKCB2YXIgdHlwZSBpbiBFeHByLmZpbHRlciApIHsKCQkJaWYgKCAobWF0Y2ggPSBFeHByLmxlZnRNYXRjaFsgdHlwZSBdLmV4ZWMoIGV4cHIgKSkgIT0gbnVsbCAmJiBtYXRjaFsyXSApIHsKCQkJCXZhciBmb3VuZCwgaXRlbSwKCQkJCQlmaWx0ZXIgPSBFeHByLmZpbHRlclsgdHlwZSBdLAoJCQkJCWxlZnQgPSBtYXRjaFsxXTsKCgkJCQlhbnlGb3VuZCA9IGZhbHNlOwoKCQkJCW1hdGNoLnNwbGljZSgxLDEpOwoKCQkJCWlmICggbGVmdC5zdWJzdHIoIGxlZnQubGVuZ3RoIC0gMSApID09PSAiXFwiICkgewoJCQkJCWNvbnRpbnVlOwoJCQkJfQoKCQkJCWlmICggY3VyTG9vcCA9PT0gcmVzdWx0ICkgewoJCQkJCXJlc3VsdCA9IFtdOwoJCQkJfQoKCQkJCWlmICggRXhwci5wcmVGaWx0ZXJbIHR5cGUgXSApIHsKCQkJCQltYXRjaCA9IEV4cHIucHJlRmlsdGVyWyB0eXBlIF0oIG1hdGNoLCBjdXJMb29wLCBpbnBsYWNlLCByZXN1bHQsIG5vdCwgaXNYTUxGaWx0ZXIgKTsKCgkJCQkJaWYgKCAhbWF0Y2ggKSB7CgkJCQkJCWFueUZvdW5kID0gZm91bmQgPSB0cnVlOwoKCQkJCQl9IGVsc2UgaWYgKCBtYXRjaCA9PT0gdHJ1ZSApIHsKCQkJCQkJY29udGludWU7CgkJCQkJfQoJCQkJfQoKCQkJCWlmICggbWF0Y2ggKSB7CgkJCQkJZm9yICggdmFyIGkgPSAwOyAoaXRlbSA9IGN1ckxvb3BbaV0pICE9IG51bGw7IGkrKyApIHsKCQkJCQkJaWYgKCBpdGVtICkgewoJCQkJCQkJZm91bmQgPSBmaWx0ZXIoIGl0ZW0sIG1hdGNoLCBpLCBjdXJMb29wICk7CgkJCQkJCQl2YXIgcGFzcyA9IG5vdCBeICEhZm91bmQ7CgoJCQkJCQkJaWYgKCBpbnBsYWNlICYmIGZvdW5kICE9IG51bGwgKSB7CgkJCQkJCQkJaWYgKCBwYXNzICkgewoJCQkJCQkJCQlhbnlGb3VuZCA9IHRydWU7CgoJCQkJCQkJCX0gZWxzZSB7CgkJCQkJCQkJCWN1ckxvb3BbaV0gPSBmYWxzZTsKCQkJCQkJCQl9CgoJCQkJCQkJfSBlbHNlIGlmICggcGFzcyApIHsKCQkJCQkJCQlyZXN1bHQucHVzaCggaXRlbSApOwoJCQkJCQkJCWFueUZvdW5kID0gdHJ1ZTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCX0KCQkJCX0KCgkJCQlpZiAoIGZvdW5kICE9PSB1bmRlZmluZWQgKSB7CgkJCQkJaWYgKCAhaW5wbGFjZSApIHsKCQkJCQkJY3VyTG9vcCA9IHJlc3VsdDsKCQkJCQl9CgoJCQkJCWV4cHIgPSBleHByLnJlcGxhY2UoIEV4cHIubWF0Y2hbIHR5cGUgXSwgIiIgKTsKCgkJCQkJaWYgKCAhYW55Rm91bmQgKSB7CgkJCQkJCXJldHVybiBbXTsKCQkJCQl9CgoJCQkJCWJyZWFrOwoJCQkJfQoJCQl9CgkJfQoKCQkvLyBJbXByb3BlciBleHByZXNzaW9uCgkJaWYgKCBleHByID09PSBvbGQgKSB7CgkJCWlmICggYW55Rm91bmQgPT0gbnVsbCApIHsKCQkJCVNpenpsZS5lcnJvciggZXhwciApOwoKCQkJfSBlbHNlIHsKCQkJCWJyZWFrOwoJCQl9CgkJfQoKCQlvbGQgPSBleHByOwoJfQoKCXJldHVybiBjdXJMb29wOwp9OwoKU2l6emxlLmVycm9yID0gZnVuY3Rpb24oIG1zZyApIHsKCXRocm93ICJTeW50YXggZXJyb3IsIHVucmVjb2duaXplZCBleHByZXNzaW9uOiAiICsgbXNnOwp9OwoKdmFyIEV4cHIgPSBTaXp6bGUuc2VsZWN0b3JzID0gewoJb3JkZXI6IFsgIklEIiwgIk5BTUUiLCAiVEFHIiBdLAoKCW1hdGNoOiB7CgkJSUQ6IC8jKCg/Oltcd1x1MDBjMC1cdUZGRkZcLV18XFwuKSspLywKCQlDTEFTUzogL1wuKCg/Oltcd1x1MDBjMC1cdUZGRkZcLV18XFwuKSspLywKCQlOQU1FOiAvXFtuYW1lPVsnIl0qKCg/Oltcd1x1MDBjMC1cdUZGRkZcLV18XFwuKSspWyciXSpcXS8sCgkJQVRUUjogL1xbXHMqKCg/Oltcd1x1MDBjMC1cdUZGRkZcLV18XFwuKSspXHMqKD86KFxTPz0pXHMqKD86KFsnIl0pKC4qPylcM3woIz8oPzpbXHdcdTAwYzAtXHVGRkZGXC1dfFxcLikqKXwpfClccypcXS8sCgkJVEFHOiAvXigoPzpbXHdcdTAwYzAtXHVGRkZGXCpcLV18XFwuKSspLywKCQlDSElMRDogLzoob25seXxudGh8bGFzdHxmaXJzdCktY2hpbGQoPzpcKFxzKihldmVufG9kZHwoPzpbK1wtXT9cZCt8KD86WytcLV0/XGQqKT9uXHMqKD86WytcLV1ccypcZCspPykpXHMqXCkpPy8sCgkJUE9TOiAvOihudGh8ZXF8Z3R8bHR8Zmlyc3R8bGFzdHxldmVufG9kZCkoPzpcKChcZCopXCkpPyg/PVteXC1dfCQpLywKCQlQU0VVRE86IC86KCg/Oltcd1x1MDBjMC1cdUZGRkZcLV18XFwuKSspKD86XCgoWyciXT8pKCg/OlwoW15cKV0rXCl8W15cKFwpXSopKylcMlwpKT8vCgl9LAoKCWxlZnRNYXRjaDoge30sCgoJYXR0ck1hcDogewoJCSJjbGFzcyI6ICJjbGFzc05hbWUiLAoJCSJmb3IiOiAiaHRtbEZvciIKCX0sCgoJYXR0ckhhbmRsZTogewoJCWhyZWY6IGZ1bmN0aW9uKCBlbGVtICkgewoJCQlyZXR1cm4gZWxlbS5nZXRBdHRyaWJ1dGUoICJocmVmIiApOwoJCX0sCgkJdHlwZTogZnVuY3Rpb24oIGVsZW0gKSB7CgkJCXJldHVybiBlbGVtLmdldEF0dHJpYnV0ZSggInR5cGUiICk7CgkJfQoJfSwKCglyZWxhdGl2ZTogewoJCSIrIjogZnVuY3Rpb24oY2hlY2tTZXQsIHBhcnQpewoJCQl2YXIgaXNQYXJ0U3RyID0gdHlwZW9mIHBhcnQgPT09ICJzdHJpbmciLAoJCQkJaXNUYWcgPSBpc1BhcnRTdHIgJiYgIXJOb25Xb3JkLnRlc3QoIHBhcnQgKSwKCQkJCWlzUGFydFN0ck5vdFRhZyA9IGlzUGFydFN0ciAmJiAhaXNUYWc7CgoJCQlpZiAoIGlzVGFnICkgewoJCQkJcGFydCA9IHBhcnQudG9Mb3dlckNhc2UoKTsKCQkJfQoKCQkJZm9yICggdmFyIGkgPSAwLCBsID0gY2hlY2tTZXQubGVuZ3RoLCBlbGVtOyBpIDwgbDsgaSsrICkgewoJCQkJaWYgKCAoZWxlbSA9IGNoZWNrU2V0W2ldKSApIHsKCQkJCQl3aGlsZSAoIChlbGVtID0gZWxlbS5wcmV2aW91c1NpYmxpbmcpICYmIGVsZW0ubm9kZVR5cGUgIT09IDEgKSB7fQoKCQkJCQljaGVja1NldFtpXSA9IGlzUGFydFN0ck5vdFRhZyB8fCBlbGVtICYmIGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gcGFydCA/CgkJCQkJCWVsZW0gfHwgZmFsc2UgOgoJCQkJCQllbGVtID09PSBwYXJ0OwoJCQkJfQoJCQl9CgoJCQlpZiAoIGlzUGFydFN0ck5vdFRhZyApIHsKCQkJCVNpenpsZS5maWx0ZXIoIHBhcnQsIGNoZWNrU2V0LCB0cnVlICk7CgkJCX0KCQl9LAoKCQkiPiI6IGZ1bmN0aW9uKCBjaGVja1NldCwgcGFydCApIHsKCQkJdmFyIGVsZW0sCgkJCQlpc1BhcnRTdHIgPSB0eXBlb2YgcGFydCA9PT0gInN0cmluZyIsCgkJCQlpID0gMCwKCQkJCWwgPSBjaGVja1NldC5sZW5ndGg7CgoJCQlpZiAoIGlzUGFydFN0ciAmJiAhck5vbldvcmQudGVzdCggcGFydCApICkgewoJCQkJcGFydCA9IHBhcnQudG9Mb3dlckNhc2UoKTsKCgkJCQlmb3IgKCA7IGkgPCBsOyBpKysgKSB7CgkJCQkJZWxlbSA9IGNoZWNrU2V0W2ldOwoKCQkJCQlpZiAoIGVsZW0gKSB7CgkJCQkJCXZhciBwYXJlbnQgPSBlbGVtLnBhcmVudE5vZGU7CgkJCQkJCWNoZWNrU2V0W2ldID0gcGFyZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09IHBhcnQgPyBwYXJlbnQgOiBmYWxzZTsKCQkJCQl9CgkJCQl9CgoJCQl9IGVsc2UgewoJCQkJZm9yICggOyBpIDwgbDsgaSsrICkgewoJCQkJCWVsZW0gPSBjaGVja1NldFtpXTsKCgkJCQkJaWYgKCBlbGVtICkgewoJCQkJCQljaGVja1NldFtpXSA9IGlzUGFydFN0ciA/CgkJCQkJCQllbGVtLnBhcmVudE5vZGUgOgoJCQkJCQkJZWxlbS5wYXJlbnROb2RlID09PSBwYXJ0OwoJCQkJCX0KCQkJCX0KCgkJCQlpZiAoIGlzUGFydFN0ciApIHsKCQkJCQlTaXp6bGUuZmlsdGVyKCBwYXJ0LCBjaGVja1NldCwgdHJ1ZSApOwoJCQkJfQoJCQl9CgkJfSwKCgkJIiI6IGZ1bmN0aW9uKGNoZWNrU2V0LCBwYXJ0LCBpc1hNTCl7CgkJCXZhciBub2RlQ2hlY2ssCgkJCQlkb25lTmFtZSA9IGRvbmUrKywKCQkJCWNoZWNrRm4gPSBkaXJDaGVjazsKCgkJCWlmICggdHlwZW9mIHBhcnQgPT09ICJzdHJpbmciICYmICFyTm9uV29yZC50ZXN0KCBwYXJ0ICkgKSB7CgkJCQlwYXJ0ID0gcGFydC50b0xvd2VyQ2FzZSgpOwoJCQkJbm9kZUNoZWNrID0gcGFydDsKCQkJCWNoZWNrRm4gPSBkaXJOb2RlQ2hlY2s7CgkJCX0KCgkJCWNoZWNrRm4oICJwYXJlbnROb2RlIiwgcGFydCwgZG9uZU5hbWUsIGNoZWNrU2V0LCBub2RlQ2hlY2ssIGlzWE1MICk7CgkJfSwKCgkJIn4iOiBmdW5jdGlvbiggY2hlY2tTZXQsIHBhcnQsIGlzWE1MICkgewoJCQl2YXIgbm9kZUNoZWNrLAoJCQkJZG9uZU5hbWUgPSBkb25lKyssCgkJCQljaGVja0ZuID0gZGlyQ2hlY2s7CgoJCQlpZiAoIHR5cGVvZiBwYXJ0ID09PSAic3RyaW5nIiAmJiAhck5vbldvcmQudGVzdCggcGFydCApICkgewoJCQkJcGFydCA9IHBhcnQudG9Mb3dlckNhc2UoKTsKCQkJCW5vZGVDaGVjayA9IHBhcnQ7CgkJCQljaGVja0ZuID0gZGlyTm9kZUNoZWNrOwoJCQl9CgoJCQljaGVja0ZuKCAicHJldmlvdXNTaWJsaW5nIiwgcGFydCwgZG9uZU5hbWUsIGNoZWNrU2V0LCBub2RlQ2hlY2ssIGlzWE1MICk7CgkJfQoJfSwKCglmaW5kOiB7CgkJSUQ6IGZ1bmN0aW9uKCBtYXRjaCwgY29udGV4dCwgaXNYTUwgKSB7CgkJCWlmICggdHlwZW9mIGNvbnRleHQuZ2V0RWxlbWVudEJ5SWQgIT09ICJ1bmRlZmluZWQiICYmICFpc1hNTCApIHsKCQkJCXZhciBtID0gY29udGV4dC5nZXRFbGVtZW50QnlJZChtYXRjaFsxXSk7CgkJCQkvLyBDaGVjayBwYXJlbnROb2RlIHRvIGNhdGNoIHdoZW4gQmxhY2tiZXJyeSA0LjYgcmV0dXJucwoJCQkJLy8gbm9kZXMgdGhhdCBhcmUgbm8gbG9uZ2VyIGluIHRoZSBkb2N1bWVudCAjNjk2MwoJCQkJcmV0dXJuIG0gJiYgbS5wYXJlbnROb2RlID8gW21dIDogW107CgkJCX0KCQl9LAoKCQlOQU1FOiBmdW5jdGlvbiggbWF0Y2gsIGNvbnRleHQgKSB7CgkJCWlmICggdHlwZW9mIGNvbnRleHQuZ2V0RWxlbWVudHNCeU5hbWUgIT09ICJ1bmRlZmluZWQiICkgewoJCQkJdmFyIHJldCA9IFtdLAoJCQkJCXJlc3VsdHMgPSBjb250ZXh0LmdldEVsZW1lbnRzQnlOYW1lKCBtYXRjaFsxXSApOwoKCQkJCWZvciAoIHZhciBpID0gMCwgbCA9IHJlc3VsdHMubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCQkJCWlmICggcmVzdWx0c1tpXS5nZXRBdHRyaWJ1dGUoIm5hbWUiKSA9PT0gbWF0Y2hbMV0gKSB7CgkJCQkJCXJldC5wdXNoKCByZXN1bHRzW2ldICk7CgkJCQkJfQoJCQkJfQoKCQkJCXJldHVybiByZXQubGVuZ3RoID09PSAwID8gbnVsbCA6IHJldDsKCQkJfQoJCX0sCgoJCVRBRzogZnVuY3Rpb24oIG1hdGNoLCBjb250ZXh0ICkgewoJCQlpZiAoIHR5cGVvZiBjb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lICE9PSAidW5kZWZpbmVkIiApIHsKCQkJCXJldHVybiBjb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCBtYXRjaFsxXSApOwoJCQl9CgkJfQoJfSwKCXByZUZpbHRlcjogewoJCUNMQVNTOiBmdW5jdGlvbiggbWF0Y2gsIGN1ckxvb3AsIGlucGxhY2UsIHJlc3VsdCwgbm90LCBpc1hNTCApIHsKCQkJbWF0Y2ggPSAiICIgKyBtYXRjaFsxXS5yZXBsYWNlKCByQmFja3NsYXNoLCAiIiApICsgIiAiOwoKCQkJaWYgKCBpc1hNTCApIHsKCQkJCXJldHVybiBtYXRjaDsKCQkJfQoKCQkJZm9yICggdmFyIGkgPSAwLCBlbGVtOyAoZWxlbSA9IGN1ckxvb3BbaV0pICE9IG51bGw7IGkrKyApIHsKCQkJCWlmICggZWxlbSApIHsKCQkJCQlpZiAoIG5vdCBeIChlbGVtLmNsYXNzTmFtZSAmJiAoIiAiICsgZWxlbS5jbGFzc05hbWUgKyAiICIpLnJlcGxhY2UoL1tcdFxuXHJdL2csICIgIikuaW5kZXhPZihtYXRjaCkgPj0gMCkgKSB7CgkJCQkJCWlmICggIWlucGxhY2UgKSB7CgkJCQkJCQlyZXN1bHQucHVzaCggZWxlbSApOwoJCQkJCQl9CgoJCQkJCX0gZWxzZSBpZiAoIGlucGxhY2UgKSB7CgkJCQkJCWN1ckxvb3BbaV0gPSBmYWxzZTsKCQkJCQl9CgkJCQl9CgkJCX0KCgkJCXJldHVybiBmYWxzZTsKCQl9LAoKCQlJRDogZnVuY3Rpb24oIG1hdGNoICkgewoJCQlyZXR1cm4gbWF0Y2hbMV0ucmVwbGFjZSggckJhY2tzbGFzaCwgIiIgKTsKCQl9LAoKCQlUQUc6IGZ1bmN0aW9uKCBtYXRjaCwgY3VyTG9vcCApIHsKCQkJcmV0dXJuIG1hdGNoWzFdLnJlcGxhY2UoIHJCYWNrc2xhc2gsICIiICkudG9Mb3dlckNhc2UoKTsKCQl9LAoKCQlDSElMRDogZnVuY3Rpb24oIG1hdGNoICkgewoJCQlpZiAoIG1hdGNoWzFdID09PSAibnRoIiApIHsKCQkJCWlmICggIW1hdGNoWzJdICkgewoJCQkJCVNpenpsZS5lcnJvciggbWF0Y2hbMF0gKTsKCQkJCX0KCgkJCQltYXRjaFsyXSA9IG1hdGNoWzJdLnJlcGxhY2UoL15cK3xccyovZywgJycpOwoKCQkJCS8vIHBhcnNlIGVxdWF0aW9ucyBsaWtlICdldmVuJywgJ29kZCcsICc1JywgJzJuJywgJzNuKzInLCAnNG4tMScsICctbis2JwoJCQkJdmFyIHRlc3QgPSAvKC0/KShcZCopKD86bihbK1wtXT9cZCopKT8vLmV4ZWMoCgkJCQkJbWF0Y2hbMl0gPT09ICJldmVuIiAmJiAiMm4iIHx8IG1hdGNoWzJdID09PSAib2RkIiAmJiAiMm4rMSIgfHwKCQkJCQkhL1xELy50ZXN0KCBtYXRjaFsyXSApICYmICIwbisiICsgbWF0Y2hbMl0gfHwgbWF0Y2hbMl0pOwoKCQkJCS8vIGNhbGN1bGF0ZSB0aGUgbnVtYmVycyAoZmlyc3QpbisobGFzdCkgaW5jbHVkaW5nIGlmIHRoZXkgYXJlIG5lZ2F0aXZlCgkJCQltYXRjaFsyXSA9ICh0ZXN0WzFdICsgKHRlc3RbMl0gfHwgMSkpIC0gMDsKCQkJCW1hdGNoWzNdID0gdGVzdFszXSAtIDA7CgkJCX0KCQkJZWxzZSBpZiAoIG1hdGNoWzJdICkgewoJCQkJU2l6emxlLmVycm9yKCBtYXRjaFswXSApOwoJCQl9CgoJCQkvLyBUT0RPOiBNb3ZlIHRvIG5vcm1hbCBjYWNoaW5nIHN5c3RlbQoJCQltYXRjaFswXSA9IGRvbmUrKzsKCgkJCXJldHVybiBtYXRjaDsKCQl9LAoKCQlBVFRSOiBmdW5jdGlvbiggbWF0Y2gsIGN1ckxvb3AsIGlucGxhY2UsIHJlc3VsdCwgbm90LCBpc1hNTCApIHsKCQkJdmFyIG5hbWUgPSBtYXRjaFsxXSA9IG1hdGNoWzFdLnJlcGxhY2UoIHJCYWNrc2xhc2gsICIiICk7CgkJCQoJCQlpZiAoICFpc1hNTCAmJiBFeHByLmF0dHJNYXBbbmFtZV0gKSB7CgkJCQltYXRjaFsxXSA9IEV4cHIuYXR0ck1hcFtuYW1lXTsKCQkJfQoKCQkJLy8gSGFuZGxlIGlmIGFuIHVuLXF1b3RlZCB2YWx1ZSB3YXMgdXNlZAoJCQltYXRjaFs0XSA9ICggbWF0Y2hbNF0gfHwgbWF0Y2hbNV0gfHwgIiIgKS5yZXBsYWNlKCByQmFja3NsYXNoLCAiIiApOwoKCQkJaWYgKCBtYXRjaFsyXSA9PT0gIn49IiApIHsKCQkJCW1hdGNoWzRdID0gIiAiICsgbWF0Y2hbNF0gKyAiICI7CgkJCX0KCgkJCXJldHVybiBtYXRjaDsKCQl9LAoKCQlQU0VVRE86IGZ1bmN0aW9uKCBtYXRjaCwgY3VyTG9vcCwgaW5wbGFjZSwgcmVzdWx0LCBub3QgKSB7CgkJCWlmICggbWF0Y2hbMV0gPT09ICJub3QiICkgewoJCQkJLy8gSWYgd2UncmUgZGVhbGluZyB3aXRoIGEgY29tcGxleCBleHByZXNzaW9uLCBvciBhIHNpbXBsZSBvbmUKCQkJCWlmICggKCBjaHVua2VyLmV4ZWMobWF0Y2hbM10pIHx8ICIiICkubGVuZ3RoID4gMSB8fCAvXlx3Ly50ZXN0KG1hdGNoWzNdKSApIHsKCQkJCQltYXRjaFszXSA9IFNpenpsZShtYXRjaFszXSwgbnVsbCwgbnVsbCwgY3VyTG9vcCk7CgoJCQkJfSBlbHNlIHsKCQkJCQl2YXIgcmV0ID0gU2l6emxlLmZpbHRlcihtYXRjaFszXSwgY3VyTG9vcCwgaW5wbGFjZSwgdHJ1ZSBeIG5vdCk7CgoJCQkJCWlmICggIWlucGxhY2UgKSB7CgkJCQkJCXJlc3VsdC5wdXNoLmFwcGx5KCByZXN1bHQsIHJldCApOwoJCQkJCX0KCgkJCQkJcmV0dXJuIGZhbHNlOwoJCQkJfQoKCQkJfSBlbHNlIGlmICggRXhwci5tYXRjaC5QT1MudGVzdCggbWF0Y2hbMF0gKSB8fCBFeHByLm1hdGNoLkNISUxELnRlc3QoIG1hdGNoWzBdICkgKSB7CgkJCQlyZXR1cm4gdHJ1ZTsKCQkJfQoJCQkKCQkJcmV0dXJuIG1hdGNoOwoJCX0sCgoJCVBPUzogZnVuY3Rpb24oIG1hdGNoICkgewoJCQltYXRjaC51bnNoaWZ0KCB0cnVlICk7CgoJCQlyZXR1cm4gbWF0Y2g7CgkJfQoJfSwKCQoJZmlsdGVyczogewoJCWVuYWJsZWQ6IGZ1bmN0aW9uKCBlbGVtICkgewoJCQlyZXR1cm4gZWxlbS5kaXNhYmxlZCA9PT0gZmFsc2UgJiYgZWxlbS50eXBlICE9PSAiaGlkZGVuIjsKCQl9LAoKCQlkaXNhYmxlZDogZnVuY3Rpb24oIGVsZW0gKSB7CgkJCXJldHVybiBlbGVtLmRpc2FibGVkID09PSB0cnVlOwoJCX0sCgoJCWNoZWNrZWQ6IGZ1bmN0aW9uKCBlbGVtICkgewoJCQlyZXR1cm4gZWxlbS5jaGVja2VkID09PSB0cnVlOwoJCX0sCgkJCgkJc2VsZWN0ZWQ6IGZ1bmN0aW9uKCBlbGVtICkgewoJCQkvLyBBY2Nlc3NpbmcgdGhpcyBwcm9wZXJ0eSBtYWtlcyBzZWxlY3RlZC1ieS1kZWZhdWx0CgkJCS8vIG9wdGlvbnMgaW4gU2FmYXJpIHdvcmsgcHJvcGVybHkKCQkJaWYgKCBlbGVtLnBhcmVudE5vZGUgKSB7CgkJCQllbGVtLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleDsKCQkJfQoJCQkKCQkJcmV0dXJuIGVsZW0uc2VsZWN0ZWQgPT09IHRydWU7CgkJfSwKCgkJcGFyZW50OiBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuICEhZWxlbS5maXJzdENoaWxkOwoJCX0sCgoJCWVtcHR5OiBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuICFlbGVtLmZpcnN0Q2hpbGQ7CgkJfSwKCgkJaGFzOiBmdW5jdGlvbiggZWxlbSwgaSwgbWF0Y2ggKSB7CgkJCXJldHVybiAhIVNpenpsZSggbWF0Y2hbM10sIGVsZW0gKS5sZW5ndGg7CgkJfSwKCgkJaGVhZGVyOiBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuICgvaFxkL2kpLnRlc3QoIGVsZW0ubm9kZU5hbWUgKTsKCQl9LAoKCQl0ZXh0OiBmdW5jdGlvbiggZWxlbSApIHsKCQkJLy8gSUU2IGFuZCA3IHdpbGwgbWFwIGVsZW0udHlwZSB0byAndGV4dCcgZm9yIG5ldyBIVE1MNSB0eXBlcyAoc2VhcmNoLCBldGMpIAoJCQkvLyB1c2UgZ2V0QXR0cmlidXRlIGluc3RlYWQgdG8gdGVzdCB0aGlzIGNhc2UKCQkJcmV0dXJuICJ0ZXh0IiA9PT0gZWxlbS5nZXRBdHRyaWJ1dGUoICd0eXBlJyApOwoJCX0sCgkJcmFkaW86IGZ1bmN0aW9uKCBlbGVtICkgewoJCQlyZXR1cm4gInJhZGlvIiA9PT0gZWxlbS50eXBlOwoJCX0sCgoJCWNoZWNrYm94OiBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuICJjaGVja2JveCIgPT09IGVsZW0udHlwZTsKCQl9LAoKCQlmaWxlOiBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuICJmaWxlIiA9PT0gZWxlbS50eXBlOwoJCX0sCgkJcGFzc3dvcmQ6IGZ1bmN0aW9uKCBlbGVtICkgewoJCQlyZXR1cm4gInBhc3N3b3JkIiA9PT0gZWxlbS50eXBlOwoJCX0sCgoJCXN1Ym1pdDogZnVuY3Rpb24oIGVsZW0gKSB7CgkJCXJldHVybiAic3VibWl0IiA9PT0gZWxlbS50eXBlOwoJCX0sCgoJCWltYWdlOiBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuICJpbWFnZSIgPT09IGVsZW0udHlwZTsKCQl9LAoKCQlyZXNldDogZnVuY3Rpb24oIGVsZW0gKSB7CgkJCXJldHVybiAicmVzZXQiID09PSBlbGVtLnR5cGU7CgkJfSwKCgkJYnV0dG9uOiBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuICJidXR0b24iID09PSBlbGVtLnR5cGUgfHwgZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAiYnV0dG9uIjsKCQl9LAoKCQlpbnB1dDogZnVuY3Rpb24oIGVsZW0gKSB7CgkJCXJldHVybiAoL2lucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24vaSkudGVzdCggZWxlbS5ub2RlTmFtZSApOwoJCX0KCX0sCglzZXRGaWx0ZXJzOiB7CgkJZmlyc3Q6IGZ1bmN0aW9uKCBlbGVtLCBpICkgewoJCQlyZXR1cm4gaSA9PT0gMDsKCQl9LAoKCQlsYXN0OiBmdW5jdGlvbiggZWxlbSwgaSwgbWF0Y2gsIGFycmF5ICkgewoJCQlyZXR1cm4gaSA9PT0gYXJyYXkubGVuZ3RoIC0gMTsKCQl9LAoKCQlldmVuOiBmdW5jdGlvbiggZWxlbSwgaSApIHsKCQkJcmV0dXJuIGkgJSAyID09PSAwOwoJCX0sCgoJCW9kZDogZnVuY3Rpb24oIGVsZW0sIGkgKSB7CgkJCXJldHVybiBpICUgMiA9PT0gMTsKCQl9LAoKCQlsdDogZnVuY3Rpb24oIGVsZW0sIGksIG1hdGNoICkgewoJCQlyZXR1cm4gaSA8IG1hdGNoWzNdIC0gMDsKCQl9LAoKCQlndDogZnVuY3Rpb24oIGVsZW0sIGksIG1hdGNoICkgewoJCQlyZXR1cm4gaSA+IG1hdGNoWzNdIC0gMDsKCQl9LAoKCQludGg6IGZ1bmN0aW9uKCBlbGVtLCBpLCBtYXRjaCApIHsKCQkJcmV0dXJuIG1hdGNoWzNdIC0gMCA9PT0gaTsKCQl9LAoKCQllcTogZnVuY3Rpb24oIGVsZW0sIGksIG1hdGNoICkgewoJCQlyZXR1cm4gbWF0Y2hbM10gLSAwID09PSBpOwoJCX0KCX0sCglmaWx0ZXI6IHsKCQlQU0VVRE86IGZ1bmN0aW9uKCBlbGVtLCBtYXRjaCwgaSwgYXJyYXkgKSB7CgkJCXZhciBuYW1lID0gbWF0Y2hbMV0sCgkJCQlmaWx0ZXIgPSBFeHByLmZpbHRlcnNbIG5hbWUgXTsKCgkJCWlmICggZmlsdGVyICkgewoJCQkJcmV0dXJuIGZpbHRlciggZWxlbSwgaSwgbWF0Y2gsIGFycmF5ICk7CgoJCQl9IGVsc2UgaWYgKCBuYW1lID09PSAiY29udGFpbnMiICkgewoJCQkJcmV0dXJuIChlbGVtLnRleHRDb250ZW50IHx8IGVsZW0uaW5uZXJUZXh0IHx8IFNpenpsZS5nZXRUZXh0KFsgZWxlbSBdKSB8fCAiIikuaW5kZXhPZihtYXRjaFszXSkgPj0gMDsKCgkJCX0gZWxzZSBpZiAoIG5hbWUgPT09ICJub3QiICkgewoJCQkJdmFyIG5vdCA9IG1hdGNoWzNdOwoKCQkJCWZvciAoIHZhciBqID0gMCwgbCA9IG5vdC5sZW5ndGg7IGogPCBsOyBqKysgKSB7CgkJCQkJaWYgKCBub3Rbal0gPT09IGVsZW0gKSB7CgkJCQkJCXJldHVybiBmYWxzZTsKCQkJCQl9CgkJCQl9CgoJCQkJcmV0dXJuIHRydWU7CgoJCQl9IGVsc2UgewoJCQkJU2l6emxlLmVycm9yKCBuYW1lICk7CgkJCX0KCQl9LAoKCQlDSElMRDogZnVuY3Rpb24oIGVsZW0sIG1hdGNoICkgewoJCQl2YXIgdHlwZSA9IG1hdGNoWzFdLAoJCQkJbm9kZSA9IGVsZW07CgoJCQlzd2l0Y2ggKCB0eXBlICkgewoJCQkJY2FzZSAib25seSI6CgkJCQljYXNlICJmaXJzdCI6CgkJCQkJd2hpbGUgKCAobm9kZSA9IG5vZGUucHJldmlvdXNTaWJsaW5nKSApCSB7CgkJCQkJCWlmICggbm9kZS5ub2RlVHlwZSA9PT0gMSApIHsgCgkJCQkJCQlyZXR1cm4gZmFsc2U7IAoJCQkJCQl9CgkJCQkJfQoKCQkJCQlpZiAoIHR5cGUgPT09ICJmaXJzdCIgKSB7IAoJCQkJCQlyZXR1cm4gdHJ1ZTsgCgkJCQkJfQoKCQkJCQlub2RlID0gZWxlbTsKCgkJCQljYXNlICJsYXN0IjoKCQkJCQl3aGlsZSAoIChub2RlID0gbm9kZS5uZXh0U2libGluZykgKQkgewoJCQkJCQlpZiAoIG5vZGUubm9kZVR5cGUgPT09IDEgKSB7IAoJCQkJCQkJcmV0dXJuIGZhbHNlOyAKCQkJCQkJfQoJCQkJCX0KCgkJCQkJcmV0dXJuIHRydWU7CgoJCQkJY2FzZSAibnRoIjoKCQkJCQl2YXIgZmlyc3QgPSBtYXRjaFsyXSwKCQkJCQkJbGFzdCA9IG1hdGNoWzNdOwoKCQkJCQlpZiAoIGZpcnN0ID09PSAxICYmIGxhc3QgPT09IDAgKSB7CgkJCQkJCXJldHVybiB0cnVlOwoJCQkJCX0KCQkJCQkKCQkJCQl2YXIgZG9uZU5hbWUgPSBtYXRjaFswXSwKCQkJCQkJcGFyZW50ID0gZWxlbS5wYXJlbnROb2RlOwoJCgkJCQkJaWYgKCBwYXJlbnQgJiYgKHBhcmVudC5zaXpjYWNoZSAhPT0gZG9uZU5hbWUgfHwgIWVsZW0ubm9kZUluZGV4KSApIHsKCQkJCQkJdmFyIGNvdW50ID0gMDsKCQkJCQkJCgkJCQkJCWZvciAoIG5vZGUgPSBwYXJlbnQuZmlyc3RDaGlsZDsgbm9kZTsgbm9kZSA9IG5vZGUubmV4dFNpYmxpbmcgKSB7CgkJCQkJCQlpZiAoIG5vZGUubm9kZVR5cGUgPT09IDEgKSB7CgkJCQkJCQkJbm9kZS5ub2RlSW5kZXggPSArK2NvdW50OwoJCQkJCQkJfQoJCQkJCQl9IAoKCQkJCQkJcGFyZW50LnNpemNhY2hlID0gZG9uZU5hbWU7CgkJCQkJfQoJCQkJCQoJCQkJCXZhciBkaWZmID0gZWxlbS5ub2RlSW5kZXggLSBsYXN0OwoKCQkJCQlpZiAoIGZpcnN0ID09PSAwICkgewoJCQkJCQlyZXR1cm4gZGlmZiA9PT0gMDsKCgkJCQkJfSBlbHNlIHsKCQkJCQkJcmV0dXJuICggZGlmZiAlIGZpcnN0ID09PSAwICYmIGRpZmYgLyBmaXJzdCA+PSAwICk7CgkJCQkJfQoJCQl9CgkJfSwKCgkJSUQ6IGZ1bmN0aW9uKCBlbGVtLCBtYXRjaCApIHsKCQkJcmV0dXJuIGVsZW0ubm9kZVR5cGUgPT09IDEgJiYgZWxlbS5nZXRBdHRyaWJ1dGUoImlkIikgPT09IG1hdGNoOwoJCX0sCgoJCVRBRzogZnVuY3Rpb24oIGVsZW0sIG1hdGNoICkgewoJCQlyZXR1cm4gKG1hdGNoID09PSAiKiIgJiYgZWxlbS5ub2RlVHlwZSA9PT0gMSkgfHwgZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSBtYXRjaDsKCQl9LAoJCQoJCUNMQVNTOiBmdW5jdGlvbiggZWxlbSwgbWF0Y2ggKSB7CgkJCXJldHVybiAoIiAiICsgKGVsZW0uY2xhc3NOYW1lIHx8IGVsZW0uZ2V0QXR0cmlidXRlKCJjbGFzcyIpKSArICIgIikKCQkJCS5pbmRleE9mKCBtYXRjaCApID4gLTE7CgkJfSwKCgkJQVRUUjogZnVuY3Rpb24oIGVsZW0sIG1hdGNoICkgewoJCQl2YXIgbmFtZSA9IG1hdGNoWzFdLAoJCQkJcmVzdWx0ID0gRXhwci5hdHRySGFuZGxlWyBuYW1lIF0gPwoJCQkJCUV4cHIuYXR0ckhhbmRsZVsgbmFtZSBdKCBlbGVtICkgOgoJCQkJCWVsZW1bIG5hbWUgXSAhPSBudWxsID8KCQkJCQkJZWxlbVsgbmFtZSBdIDoKCQkJCQkJZWxlbS5nZXRBdHRyaWJ1dGUoIG5hbWUgKSwKCQkJCXZhbHVlID0gcmVzdWx0ICsgIiIsCgkJCQl0eXBlID0gbWF0Y2hbMl0sCgkJCQljaGVjayA9IG1hdGNoWzRdOwoKCQkJcmV0dXJuIHJlc3VsdCA9PSBudWxsID8KCQkJCXR5cGUgPT09ICIhPSIgOgoJCQkJdHlwZSA9PT0gIj0iID8KCQkJCXZhbHVlID09PSBjaGVjayA6CgkJCQl0eXBlID09PSAiKj0iID8KCQkJCXZhbHVlLmluZGV4T2YoY2hlY2spID49IDAgOgoJCQkJdHlwZSA9PT0gIn49IiA/CgkJCQkoIiAiICsgdmFsdWUgKyAiICIpLmluZGV4T2YoY2hlY2spID49IDAgOgoJCQkJIWNoZWNrID8KCQkJCXZhbHVlICYmIHJlc3VsdCAhPT0gZmFsc2UgOgoJCQkJdHlwZSA9PT0gIiE9IiA/CgkJCQl2YWx1ZSAhPT0gY2hlY2sgOgoJCQkJdHlwZSA9PT0gIl49IiA/CgkJCQl2YWx1ZS5pbmRleE9mKGNoZWNrKSA9PT0gMCA6CgkJCQl0eXBlID09PSAiJD0iID8KCQkJCXZhbHVlLnN1YnN0cih2YWx1ZS5sZW5ndGggLSBjaGVjay5sZW5ndGgpID09PSBjaGVjayA6CgkJCQl0eXBlID09PSAifD0iID8KCQkJCXZhbHVlID09PSBjaGVjayB8fCB2YWx1ZS5zdWJzdHIoMCwgY2hlY2subGVuZ3RoICsgMSkgPT09IGNoZWNrICsgIi0iIDoKCQkJCWZhbHNlOwoJCX0sCgoJCVBPUzogZnVuY3Rpb24oIGVsZW0sIG1hdGNoLCBpLCBhcnJheSApIHsKCQkJdmFyIG5hbWUgPSBtYXRjaFsyXSwKCQkJCWZpbHRlciA9IEV4cHIuc2V0RmlsdGVyc1sgbmFtZSBdOwoKCQkJaWYgKCBmaWx0ZXIgKSB7CgkJCQlyZXR1cm4gZmlsdGVyKCBlbGVtLCBpLCBtYXRjaCwgYXJyYXkgKTsKCQkJfQoJCX0KCX0KfTsKCnZhciBvcmlnUE9TID0gRXhwci5tYXRjaC5QT1MsCglmZXNjYXBlID0gZnVuY3Rpb24oYWxsLCBudW0pewoJCXJldHVybiAiXFwiICsgKG51bSAtIDAgKyAxKTsKCX07Cgpmb3IgKCB2YXIgdHlwZSBpbiBFeHByLm1hdGNoICkgewoJRXhwci5tYXRjaFsgdHlwZSBdID0gbmV3IFJlZ0V4cCggRXhwci5tYXRjaFsgdHlwZSBdLnNvdXJjZSArICgvKD8hW15cW10qXF0pKD8hW15cKF0qXCkpLy5zb3VyY2UpICk7CglFeHByLmxlZnRNYXRjaFsgdHlwZSBdID0gbmV3IFJlZ0V4cCggLyheKD86LnxccnxcbikqPykvLnNvdXJjZSArIEV4cHIubWF0Y2hbIHR5cGUgXS5zb3VyY2UucmVwbGFjZSgvXFwoXGQrKS9nLCBmZXNjYXBlKSApOwp9Cgp2YXIgbWFrZUFycmF5ID0gZnVuY3Rpb24oIGFycmF5LCByZXN1bHRzICkgewoJYXJyYXkgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCggYXJyYXksIDAgKTsKCglpZiAoIHJlc3VsdHMgKSB7CgkJcmVzdWx0cy5wdXNoLmFwcGx5KCByZXN1bHRzLCBhcnJheSApOwoJCXJldHVybiByZXN1bHRzOwoJfQoJCglyZXR1cm4gYXJyYXk7Cn07CgovLyBQZXJmb3JtIGEgc2ltcGxlIGNoZWNrIHRvIGRldGVybWluZSBpZiB0aGUgYnJvd3NlciBpcyBjYXBhYmxlIG9mCi8vIGNvbnZlcnRpbmcgYSBOb2RlTGlzdCB0byBhbiBhcnJheSB1c2luZyBidWlsdGluIG1ldGhvZHMuCi8vIEFsc28gdmVyaWZpZXMgdGhhdCB0aGUgcmV0dXJuZWQgYXJyYXkgaG9sZHMgRE9NIG5vZGVzCi8vICh3aGljaCBpcyBub3QgdGhlIGNhc2UgaW4gdGhlIEJsYWNrYmVycnkgYnJvd3NlcikKdHJ5IHsKCUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2hpbGROb2RlcywgMCApWzBdLm5vZGVUeXBlOwoKLy8gUHJvdmlkZSBhIGZhbGxiYWNrIG1ldGhvZCBpZiBpdCBkb2VzIG5vdCB3b3JrCn0gY2F0Y2goIGUgKSB7CgltYWtlQXJyYXkgPSBmdW5jdGlvbiggYXJyYXksIHJlc3VsdHMgKSB7CgkJdmFyIGkgPSAwLAoJCQlyZXQgPSByZXN1bHRzIHx8IFtdOwoKCQlpZiAoIHRvU3RyaW5nLmNhbGwoYXJyYXkpID09PSAiW29iamVjdCBBcnJheV0iICkgewoJCQlBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseSggcmV0LCBhcnJheSApOwoKCQl9IGVsc2UgewoJCQlpZiAoIHR5cGVvZiBhcnJheS5sZW5ndGggPT09ICJudW1iZXIiICkgewoJCQkJZm9yICggdmFyIGwgPSBhcnJheS5sZW5ndGg7IGkgPCBsOyBpKysgKSB7CgkJCQkJcmV0LnB1c2goIGFycmF5W2ldICk7CgkJCQl9CgoJCQl9IGVsc2UgewoJCQkJZm9yICggOyBhcnJheVtpXTsgaSsrICkgewoJCQkJCXJldC5wdXNoKCBhcnJheVtpXSApOwoJCQkJfQoJCQl9CgkJfQoKCQlyZXR1cm4gcmV0OwoJfTsKfQoKdmFyIHNvcnRPcmRlciwgc2libGluZ0NoZWNrOwoKaWYgKCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY29tcGFyZURvY3VtZW50UG9zaXRpb24gKSB7Cglzb3J0T3JkZXIgPSBmdW5jdGlvbiggYSwgYiApIHsKCQlpZiAoIGEgPT09IGIgKSB7CgkJCWhhc0R1cGxpY2F0ZSA9IHRydWU7CgkJCXJldHVybiAwOwoJCX0KCgkJaWYgKCAhYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiB8fCAhYi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiApIHsKCQkJcmV0dXJuIGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24gPyAtMSA6IDE7CgkJfQoKCQlyZXR1cm4gYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKSAmIDQgPyAtMSA6IDE7Cgl9OwoKfSBlbHNlIHsKCXNvcnRPcmRlciA9IGZ1bmN0aW9uKCBhLCBiICkgewoJCXZhciBhbCwgYmwsCgkJCWFwID0gW10sCgkJCWJwID0gW10sCgkJCWF1cCA9IGEucGFyZW50Tm9kZSwKCQkJYnVwID0gYi5wYXJlbnROb2RlLAoJCQljdXIgPSBhdXA7CgoJCS8vIFRoZSBub2RlcyBhcmUgaWRlbnRpY2FsLCB3ZSBjYW4gZXhpdCBlYXJseQoJCWlmICggYSA9PT0gYiApIHsKCQkJaGFzRHVwbGljYXRlID0gdHJ1ZTsKCQkJcmV0dXJuIDA7CgoJCS8vIElmIHRoZSBub2RlcyBhcmUgc2libGluZ3MgKG9yIGlkZW50aWNhbCkgd2UgY2FuIGRvIGEgcXVpY2sgY2hlY2sKCQl9IGVsc2UgaWYgKCBhdXAgPT09IGJ1cCApIHsKCQkJcmV0dXJuIHNpYmxpbmdDaGVjayggYSwgYiApOwoKCQkvLyBJZiBubyBwYXJlbnRzIHdlcmUgZm91bmQgdGhlbiB0aGUgbm9kZXMgYXJlIGRpc2Nvbm5lY3RlZAoJCX0gZWxzZSBpZiAoICFhdXAgKSB7CgkJCXJldHVybiAtMTsKCgkJfSBlbHNlIGlmICggIWJ1cCApIHsKCQkJcmV0dXJuIDE7CgkJfQoKCQkvLyBPdGhlcndpc2UgdGhleSdyZSBzb21ld2hlcmUgZWxzZSBpbiB0aGUgdHJlZSBzbyB3ZSBuZWVkCgkJLy8gdG8gYnVpbGQgdXAgYSBmdWxsIGxpc3Qgb2YgdGhlIHBhcmVudE5vZGVzIGZvciBjb21wYXJpc29uCgkJd2hpbGUgKCBjdXIgKSB7CgkJCWFwLnVuc2hpZnQoIGN1ciApOwoJCQljdXIgPSBjdXIucGFyZW50Tm9kZTsKCQl9CgoJCWN1ciA9IGJ1cDsKCgkJd2hpbGUgKCBjdXIgKSB7CgkJCWJwLnVuc2hpZnQoIGN1ciApOwoJCQljdXIgPSBjdXIucGFyZW50Tm9kZTsKCQl9CgoJCWFsID0gYXAubGVuZ3RoOwoJCWJsID0gYnAubGVuZ3RoOwoKCQkvLyBTdGFydCB3YWxraW5nIGRvd24gdGhlIHRyZWUgbG9va2luZyBmb3IgYSBkaXNjcmVwYW5jeQoJCWZvciAoIHZhciBpID0gMDsgaSA8IGFsICYmIGkgPCBibDsgaSsrICkgewoJCQlpZiAoIGFwW2ldICE9PSBicFtpXSApIHsKCQkJCXJldHVybiBzaWJsaW5nQ2hlY2soIGFwW2ldLCBicFtpXSApOwoJCQl9CgkJfQoKCQkvLyBXZSBlbmRlZCBzb21lcGxhY2UgdXAgdGhlIHRyZWUgc28gZG8gYSBzaWJsaW5nIGNoZWNrCgkJcmV0dXJuIGkgPT09IGFsID8KCQkJc2libGluZ0NoZWNrKCBhLCBicFtpXSwgLTEgKSA6CgkJCXNpYmxpbmdDaGVjayggYXBbaV0sIGIsIDEgKTsKCX07CgoJc2libGluZ0NoZWNrID0gZnVuY3Rpb24oIGEsIGIsIHJldCApIHsKCQlpZiAoIGEgPT09IGIgKSB7CgkJCXJldHVybiByZXQ7CgkJfQoKCQl2YXIgY3VyID0gYS5uZXh0U2libGluZzsKCgkJd2hpbGUgKCBjdXIgKSB7CgkJCWlmICggY3VyID09PSBiICkgewoJCQkJcmV0dXJuIC0xOwoJCQl9CgoJCQljdXIgPSBjdXIubmV4dFNpYmxpbmc7CgkJfQoKCQlyZXR1cm4gMTsKCX07Cn0KCi8vIFV0aWxpdHkgZnVuY3Rpb24gZm9yIHJldHJlaXZpbmcgdGhlIHRleHQgdmFsdWUgb2YgYW4gYXJyYXkgb2YgRE9NIG5vZGVzClNpenpsZS5nZXRUZXh0ID0gZnVuY3Rpb24oIGVsZW1zICkgewoJdmFyIHJldCA9ICIiLCBlbGVtOwoKCWZvciAoIHZhciBpID0gMDsgZWxlbXNbaV07IGkrKyApIHsKCQllbGVtID0gZWxlbXNbaV07CgoJCS8vIEdldCB0aGUgdGV4dCBmcm9tIHRleHQgbm9kZXMgYW5kIENEQVRBIG5vZGVzCgkJaWYgKCBlbGVtLm5vZGVUeXBlID09PSAzIHx8IGVsZW0ubm9kZVR5cGUgPT09IDQgKSB7CgkJCXJldCArPSBlbGVtLm5vZGVWYWx1ZTsKCgkJLy8gVHJhdmVyc2UgZXZlcnl0aGluZyBlbHNlLCBleGNlcHQgY29tbWVudCBub2RlcwoJCX0gZWxzZSBpZiAoIGVsZW0ubm9kZVR5cGUgIT09IDggKSB7CgkJCXJldCArPSBTaXp6bGUuZ2V0VGV4dCggZWxlbS5jaGlsZE5vZGVzICk7CgkJfQoJfQoKCXJldHVybiByZXQ7Cn07CgovLyBDaGVjayB0byBzZWUgaWYgdGhlIGJyb3dzZXIgcmV0dXJucyBlbGVtZW50cyBieSBuYW1lIHdoZW4KLy8gcXVlcnlpbmcgYnkgZ2V0RWxlbWVudEJ5SWQgKGFuZCBwcm92aWRlIGEgd29ya2Fyb3VuZCkKKGZ1bmN0aW9uKCl7CgkvLyBXZSdyZSBnb2luZyB0byBpbmplY3QgYSBmYWtlIGlucHV0IGVsZW1lbnQgd2l0aCBhIHNwZWNpZmllZCBuYW1lCgl2YXIgZm9ybSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLAoJCWlkID0gInNjcmlwdCIgKyAobmV3IERhdGUoKSkuZ2V0VGltZSgpLAoJCXJvb3QgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CgoJZm9ybS5pbm5lckhUTUwgPSAiPGEgbmFtZT0nIiArIGlkICsgIicvPiI7CgoJLy8gSW5qZWN0IGl0IGludG8gdGhlIHJvb3QgZWxlbWVudCwgY2hlY2sgaXRzIHN0YXR1cywgYW5kIHJlbW92ZSBpdCBxdWlja2x5Cglyb290Lmluc2VydEJlZm9yZSggZm9ybSwgcm9vdC5maXJzdENoaWxkICk7CgoJLy8gVGhlIHdvcmthcm91bmQgaGFzIHRvIGRvIGFkZGl0aW9uYWwgY2hlY2tzIGFmdGVyIGEgZ2V0RWxlbWVudEJ5SWQKCS8vIFdoaWNoIHNsb3dzIHRoaW5ncyBkb3duIGZvciBvdGhlciBicm93c2VycyAoaGVuY2UgdGhlIGJyYW5jaGluZykKCWlmICggZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIGlkICkgKSB7CgkJRXhwci5maW5kLklEID0gZnVuY3Rpb24oIG1hdGNoLCBjb250ZXh0LCBpc1hNTCApIHsKCQkJaWYgKCB0eXBlb2YgY29udGV4dC5nZXRFbGVtZW50QnlJZCAhPT0gInVuZGVmaW5lZCIgJiYgIWlzWE1MICkgewoJCQkJdmFyIG0gPSBjb250ZXh0LmdldEVsZW1lbnRCeUlkKG1hdGNoWzFdKTsKCgkJCQlyZXR1cm4gbSA/CgkJCQkJbS5pZCA9PT0gbWF0Y2hbMV0gfHwgdHlwZW9mIG0uZ2V0QXR0cmlidXRlTm9kZSAhPT0gInVuZGVmaW5lZCIgJiYgbS5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpLm5vZGVWYWx1ZSA9PT0gbWF0Y2hbMV0gPwoJCQkJCQlbbV0gOgoJCQkJCQl1bmRlZmluZWQgOgoJCQkJCVtdOwoJCQl9CgkJfTsKCgkJRXhwci5maWx0ZXIuSUQgPSBmdW5jdGlvbiggZWxlbSwgbWF0Y2ggKSB7CgkJCXZhciBub2RlID0gdHlwZW9mIGVsZW0uZ2V0QXR0cmlidXRlTm9kZSAhPT0gInVuZGVmaW5lZCIgJiYgZWxlbS5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpOwoKCQkJcmV0dXJuIGVsZW0ubm9kZVR5cGUgPT09IDEgJiYgbm9kZSAmJiBub2RlLm5vZGVWYWx1ZSA9PT0gbWF0Y2g7CgkJfTsKCX0KCglyb290LnJlbW92ZUNoaWxkKCBmb3JtICk7CgoJLy8gcmVsZWFzZSBtZW1vcnkgaW4gSUUKCXJvb3QgPSBmb3JtID0gbnVsbDsKfSkoKTsKCihmdW5jdGlvbigpewoJLy8gQ2hlY2sgdG8gc2VlIGlmIHRoZSBicm93c2VyIHJldHVybnMgb25seSBlbGVtZW50cwoJLy8gd2hlbiBkb2luZyBnZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpCgoJLy8gQ3JlYXRlIGEgZmFrZSBlbGVtZW50Cgl2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CglkaXYuYXBwZW5kQ2hpbGQoIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoIiIpICk7CgoJLy8gTWFrZSBzdXJlIG5vIGNvbW1lbnRzIGFyZSBmb3VuZAoJaWYgKCBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKS5sZW5ndGggPiAwICkgewoJCUV4cHIuZmluZC5UQUcgPSBmdW5jdGlvbiggbWF0Y2gsIGNvbnRleHQgKSB7CgkJCXZhciByZXN1bHRzID0gY29udGV4dC5nZXRFbGVtZW50c0J5VGFnTmFtZSggbWF0Y2hbMV0gKTsKCgkJCS8vIEZpbHRlciBvdXQgcG9zc2libGUgY29tbWVudHMKCQkJaWYgKCBtYXRjaFsxXSA9PT0gIioiICkgewoJCQkJdmFyIHRtcCA9IFtdOwoKCQkJCWZvciAoIHZhciBpID0gMDsgcmVzdWx0c1tpXTsgaSsrICkgewoJCQkJCWlmICggcmVzdWx0c1tpXS5ub2RlVHlwZSA9PT0gMSApIHsKCQkJCQkJdG1wLnB1c2goIHJlc3VsdHNbaV0gKTsKCQkJCQl9CgkJCQl9CgoJCQkJcmVzdWx0cyA9IHRtcDsKCQkJfQoKCQkJcmV0dXJuIHJlc3VsdHM7CgkJfTsKCX0KCgkvLyBDaGVjayB0byBzZWUgaWYgYW4gYXR0cmlidXRlIHJldHVybnMgbm9ybWFsaXplZCBocmVmIGF0dHJpYnV0ZXMKCWRpdi5pbm5lckhUTUwgPSAiPGEgaHJlZj0nIyc+PC9hPiI7CgoJaWYgKCBkaXYuZmlyc3RDaGlsZCAmJiB0eXBlb2YgZGl2LmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlICE9PSAidW5kZWZpbmVkIiAmJgoJCQlkaXYuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoImhyZWYiKSAhPT0gIiMiICkgewoKCQlFeHByLmF0dHJIYW5kbGUuaHJlZiA9IGZ1bmN0aW9uKCBlbGVtICkgewoJCQlyZXR1cm4gZWxlbS5nZXRBdHRyaWJ1dGUoICJocmVmIiwgMiApOwoJCX07Cgl9CgoJLy8gcmVsZWFzZSBtZW1vcnkgaW4gSUUKCWRpdiA9IG51bGw7Cn0pKCk7CgppZiAoIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwgKSB7CgkoZnVuY3Rpb24oKXsKCQl2YXIgb2xkU2l6emxlID0gU2l6emxlLAoJCQlkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSwKCQkJaWQgPSAiX19zaXp6bGVfXyI7CgoJCWRpdi5pbm5lckhUTUwgPSAiPHAgY2xhc3M9J1RFU1QnPjwvcD4iOwoKCQkvLyBTYWZhcmkgY2FuJ3QgaGFuZGxlIHVwcGVyY2FzZSBvciB1bmljb2RlIGNoYXJhY3RlcnMgd2hlbgoJCS8vIGluIHF1aXJrcyBtb2RlLgoJCWlmICggZGl2LnF1ZXJ5U2VsZWN0b3JBbGwgJiYgZGl2LnF1ZXJ5U2VsZWN0b3JBbGwoIi5URVNUIikubGVuZ3RoID09PSAwICkgewoJCQlyZXR1cm47CgkJfQoJCgkJU2l6emxlID0gZnVuY3Rpb24oIHF1ZXJ5LCBjb250ZXh0LCBleHRyYSwgc2VlZCApIHsKCQkJY29udGV4dCA9IGNvbnRleHQgfHwgZG9jdW1lbnQ7CgoJCQkvLyBPbmx5IHVzZSBxdWVyeVNlbGVjdG9yQWxsIG9uIG5vbi1YTUwgZG9jdW1lbnRzCgkJCS8vIChJRCBzZWxlY3RvcnMgZG9uJ3Qgd29yayBpbiBub24tSFRNTCBkb2N1bWVudHMpCgkJCWlmICggIXNlZWQgJiYgIVNpenpsZS5pc1hNTChjb250ZXh0KSApIHsKCQkJCS8vIFNlZSBpZiB3ZSBmaW5kIGEgc2VsZWN0b3IgdG8gc3BlZWQgdXAKCQkJCXZhciBtYXRjaCA9IC9eKFx3KyQpfF5cLihbXHdcLV0rJCl8XiMoW1x3XC1dKyQpLy5leGVjKCBxdWVyeSApOwoJCQkJCgkJCQlpZiAoIG1hdGNoICYmIChjb250ZXh0Lm5vZGVUeXBlID09PSAxIHx8IGNvbnRleHQubm9kZVR5cGUgPT09IDkpICkgewoJCQkJCS8vIFNwZWVkLXVwOiBTaXp6bGUoIlRBRyIpCgkJCQkJaWYgKCBtYXRjaFsxXSApIHsKCQkJCQkJcmV0dXJuIG1ha2VBcnJheSggY29udGV4dC5nZXRFbGVtZW50c0J5VGFnTmFtZSggcXVlcnkgKSwgZXh0cmEgKTsKCQkJCQkKCQkJCQkvLyBTcGVlZC11cDogU2l6emxlKCIuQ0xBU1MiKQoJCQkJCX0gZWxzZSBpZiAoIG1hdGNoWzJdICYmIEV4cHIuZmluZC5DTEFTUyAmJiBjb250ZXh0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUgKSB7CgkJCQkJCXJldHVybiBtYWtlQXJyYXkoIGNvbnRleHQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSggbWF0Y2hbMl0gKSwgZXh0cmEgKTsKCQkJCQl9CgkJCQl9CgkJCQkKCQkJCWlmICggY29udGV4dC5ub2RlVHlwZSA9PT0gOSApIHsKCQkJCQkvLyBTcGVlZC11cDogU2l6emxlKCJib2R5IikKCQkJCQkvLyBUaGUgYm9keSBlbGVtZW50IG9ubHkgZXhpc3RzIG9uY2UsIG9wdGltaXplIGZpbmRpbmcgaXQKCQkJCQlpZiAoIHF1ZXJ5ID09PSAiYm9keSIgJiYgY29udGV4dC5ib2R5ICkgewoJCQkJCQlyZXR1cm4gbWFrZUFycmF5KCBbIGNvbnRleHQuYm9keSBdLCBleHRyYSApOwoJCQkJCQkKCQkJCQkvLyBTcGVlZC11cDogU2l6emxlKCIjSUQiKQoJCQkJCX0gZWxzZSBpZiAoIG1hdGNoICYmIG1hdGNoWzNdICkgewoJCQkJCQl2YXIgZWxlbSA9IGNvbnRleHQuZ2V0RWxlbWVudEJ5SWQoIG1hdGNoWzNdICk7CgoJCQkJCQkvLyBDaGVjayBwYXJlbnROb2RlIHRvIGNhdGNoIHdoZW4gQmxhY2tiZXJyeSA0LjYgcmV0dXJucwoJCQkJCQkvLyBub2RlcyB0aGF0IGFyZSBubyBsb25nZXIgaW4gdGhlIGRvY3VtZW50ICM2OTYzCgkJCQkJCWlmICggZWxlbSAmJiBlbGVtLnBhcmVudE5vZGUgKSB7CgkJCQkJCQkvLyBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgSUUgYW5kIE9wZXJhIHJldHVybiBpdGVtcwoJCQkJCQkJLy8gYnkgbmFtZSBpbnN0ZWFkIG9mIElECgkJCQkJCQlpZiAoIGVsZW0uaWQgPT09IG1hdGNoWzNdICkgewoJCQkJCQkJCXJldHVybiBtYWtlQXJyYXkoIFsgZWxlbSBdLCBleHRyYSApOwoJCQkJCQkJfQoJCQkJCQkJCgkJCQkJCX0gZWxzZSB7CgkJCQkJCQlyZXR1cm4gbWFrZUFycmF5KCBbXSwgZXh0cmEgKTsKCQkJCQkJfQoJCQkJCX0KCQkJCQkKCQkJCQl0cnkgewoJCQkJCQlyZXR1cm4gbWFrZUFycmF5KCBjb250ZXh0LnF1ZXJ5U2VsZWN0b3JBbGwocXVlcnkpLCBleHRyYSApOwoJCQkJCX0gY2F0Y2gocXNhRXJyb3IpIHt9CgoJCQkJLy8gcVNBIHdvcmtzIHN0cmFuZ2VseSBvbiBFbGVtZW50LXJvb3RlZCBxdWVyaWVzCgkJCQkvLyBXZSBjYW4gd29yayBhcm91bmQgdGhpcyBieSBzcGVjaWZ5aW5nIGFuIGV4dHJhIElEIG9uIHRoZSByb290CgkJCQkvLyBhbmQgd29ya2luZyB1cCBmcm9tIHRoZXJlIChUaGFua3MgdG8gQW5kcmV3IER1cG9udCBmb3IgdGhlIHRlY2huaXF1ZSkKCQkJCS8vIElFIDggZG9lc24ndCB3b3JrIG9uIG9iamVjdCBlbGVtZW50cwoJCQkJfSBlbHNlIGlmICggY29udGV4dC5ub2RlVHlwZSA9PT0gMSAmJiBjb250ZXh0Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgIT09ICJvYmplY3QiICkgewoJCQkJCXZhciBvbGRDb250ZXh0ID0gY29udGV4dCwKCQkJCQkJb2xkID0gY29udGV4dC5nZXRBdHRyaWJ1dGUoICJpZCIgKSwKCQkJCQkJbmlkID0gb2xkIHx8IGlkLAoJCQkJCQloYXNQYXJlbnQgPSBjb250ZXh0LnBhcmVudE5vZGUsCgkJCQkJCXJlbGF0aXZlSGllcmFyY2h5U2VsZWN0b3IgPSAvXlxzKlsrfl0vLnRlc3QoIHF1ZXJ5ICk7CgoJCQkJCWlmICggIW9sZCApIHsKCQkJCQkJY29udGV4dC5zZXRBdHRyaWJ1dGUoICJpZCIsIG5pZCApOwoJCQkJCX0gZWxzZSB7CgkJCQkJCW5pZCA9IG5pZC5yZXBsYWNlKCAvJy9nLCAiXFwkJiIgKTsKCQkJCQl9CgkJCQkJaWYgKCByZWxhdGl2ZUhpZXJhcmNoeVNlbGVjdG9yICYmIGhhc1BhcmVudCApIHsKCQkJCQkJY29udGV4dCA9IGNvbnRleHQucGFyZW50Tm9kZTsKCQkJCQl9CgoJCQkJCXRyeSB7CgkJCQkJCWlmICggIXJlbGF0aXZlSGllcmFyY2h5U2VsZWN0b3IgfHwgaGFzUGFyZW50ICkgewoJCQkJCQkJcmV0dXJuIG1ha2VBcnJheSggY29udGV4dC5xdWVyeVNlbGVjdG9yQWxsKCAiW2lkPSciICsgbmlkICsgIiddICIgKyBxdWVyeSApLCBleHRyYSApOwoJCQkJCQl9CgoJCQkJCX0gY2F0Y2gocHNldWRvRXJyb3IpIHsKCQkJCQl9IGZpbmFsbHkgewoJCQkJCQlpZiAoICFvbGQgKSB7CgkJCQkJCQlvbGRDb250ZXh0LnJlbW92ZUF0dHJpYnV0ZSggImlkIiApOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9CgkJCgkJCXJldHVybiBvbGRTaXp6bGUocXVlcnksIGNvbnRleHQsIGV4dHJhLCBzZWVkKTsKCQl9OwoKCQlmb3IgKCB2YXIgcHJvcCBpbiBvbGRTaXp6bGUgKSB7CgkJCVNpenpsZVsgcHJvcCBdID0gb2xkU2l6emxlWyBwcm9wIF07CgkJfQoKCQkvLyByZWxlYXNlIG1lbW9yeSBpbiBJRQoJCWRpdiA9IG51bGw7Cgl9KSgpOwp9CgooZnVuY3Rpb24oKXsKCXZhciBodG1sID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LAoJCW1hdGNoZXMgPSBodG1sLm1hdGNoZXNTZWxlY3RvciB8fCBodG1sLm1vek1hdGNoZXNTZWxlY3RvciB8fCBodG1sLndlYmtpdE1hdGNoZXNTZWxlY3RvciB8fCBodG1sLm1zTWF0Y2hlc1NlbGVjdG9yLAoJCXBzZXVkb1dvcmtzID0gZmFsc2U7CgoJdHJ5IHsKCQkvLyBUaGlzIHNob3VsZCBmYWlsIHdpdGggYW4gZXhjZXB0aW9uCgkJLy8gR2Vja28gZG9lcyBub3QgZXJyb3IsIHJldHVybnMgZmFsc2UgaW5zdGVhZAoJCW1hdGNoZXMuY2FsbCggZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCAiW3Rlc3QhPScnXTpzaXp6bGUiICk7CgkKCX0gY2F0Y2goIHBzZXVkb0Vycm9yICkgewoJCXBzZXVkb1dvcmtzID0gdHJ1ZTsKCX0KCglpZiAoIG1hdGNoZXMgKSB7CgkJU2l6emxlLm1hdGNoZXNTZWxlY3RvciA9IGZ1bmN0aW9uKCBub2RlLCBleHByICkgewoJCQkvLyBNYWtlIHN1cmUgdGhhdCBhdHRyaWJ1dGUgc2VsZWN0b3JzIGFyZSBxdW90ZWQKCQkJZXhwciA9IGV4cHIucmVwbGFjZSgvXD1ccyooW14nIlxdXSopXHMqXF0vZywgIj0nJDEnXSIpOwoKCQkJaWYgKCAhU2l6emxlLmlzWE1MKCBub2RlICkgKSB7CgkJCQl0cnkgeyAKCQkJCQlpZiAoIHBzZXVkb1dvcmtzIHx8ICFFeHByLm1hdGNoLlBTRVVETy50ZXN0KCBleHByICkgJiYgIS8hPS8udGVzdCggZXhwciApICkgewoJCQkJCQlyZXR1cm4gbWF0Y2hlcy5jYWxsKCBub2RlLCBleHByICk7CgkJCQkJfQoJCQkJfSBjYXRjaChlKSB7fQoJCQl9CgoJCQlyZXR1cm4gU2l6emxlKGV4cHIsIG51bGwsIG51bGwsIFtub2RlXSkubGVuZ3RoID4gMDsKCQl9OwoJfQp9KSgpOwoKKGZ1bmN0aW9uKCl7Cgl2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CgoJZGl2LmlubmVySFRNTCA9ICI8ZGl2IGNsYXNzPSd0ZXN0IGUnPjwvZGl2PjxkaXYgY2xhc3M9J3Rlc3QnPjwvZGl2PiI7CgoJLy8gT3BlcmEgY2FuJ3QgZmluZCBhIHNlY29uZCBjbGFzc25hbWUgKGluIDkuNikKCS8vIEFsc28sIG1ha2Ugc3VyZSB0aGF0IGdldEVsZW1lbnRzQnlDbGFzc05hbWUgYWN0dWFsbHkgZXhpc3RzCglpZiAoICFkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSB8fCBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiZSIpLmxlbmd0aCA9PT0gMCApIHsKCQlyZXR1cm47Cgl9CgoJLy8gU2FmYXJpIGNhY2hlcyBjbGFzcyBhdHRyaWJ1dGVzLCBkb2Vzbid0IGNhdGNoIGNoYW5nZXMgKGluIDMuMikKCWRpdi5sYXN0Q2hpbGQuY2xhc3NOYW1lID0gImUiOwoKCWlmICggZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImUiKS5sZW5ndGggPT09IDEgKSB7CgkJcmV0dXJuOwoJfQoJCglFeHByLm9yZGVyLnNwbGljZSgxLCAwLCAiQ0xBU1MiKTsKCUV4cHIuZmluZC5DTEFTUyA9IGZ1bmN0aW9uKCBtYXRjaCwgY29udGV4dCwgaXNYTUwgKSB7CgkJaWYgKCB0eXBlb2YgY29udGV4dC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lICE9PSAidW5kZWZpbmVkIiAmJiAhaXNYTUwgKSB7CgkJCXJldHVybiBjb250ZXh0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUobWF0Y2hbMV0pOwoJCX0KCX07CgoJLy8gcmVsZWFzZSBtZW1vcnkgaW4gSUUKCWRpdiA9IG51bGw7Cn0pKCk7CgpmdW5jdGlvbiBkaXJOb2RlQ2hlY2soIGRpciwgY3VyLCBkb25lTmFtZSwgY2hlY2tTZXQsIG5vZGVDaGVjaywgaXNYTUwgKSB7Cglmb3IgKCB2YXIgaSA9IDAsIGwgPSBjaGVja1NldC5sZW5ndGg7IGkgPCBsOyBpKysgKSB7CgkJdmFyIGVsZW0gPSBjaGVja1NldFtpXTsKCgkJaWYgKCBlbGVtICkgewoJCQl2YXIgbWF0Y2ggPSBmYWxzZTsKCgkJCWVsZW0gPSBlbGVtW2Rpcl07CgoJCQl3aGlsZSAoIGVsZW0gKSB7CgkJCQlpZiAoIGVsZW0uc2l6Y2FjaGUgPT09IGRvbmVOYW1lICkgewoJCQkJCW1hdGNoID0gY2hlY2tTZXRbZWxlbS5zaXpzZXRdOwoJCQkJCWJyZWFrOwoJCQkJfQoKCQkJCWlmICggZWxlbS5ub2RlVHlwZSA9PT0gMSAmJiAhaXNYTUwgKXsKCQkJCQllbGVtLnNpemNhY2hlID0gZG9uZU5hbWU7CgkJCQkJZWxlbS5zaXpzZXQgPSBpOwoJCQkJfQoKCQkJCWlmICggZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSBjdXIgKSB7CgkJCQkJbWF0Y2ggPSBlbGVtOwoJCQkJCWJyZWFrOwoJCQkJfQoKCQkJCWVsZW0gPSBlbGVtW2Rpcl07CgkJCX0KCgkJCWNoZWNrU2V0W2ldID0gbWF0Y2g7CgkJfQoJfQp9CgpmdW5jdGlvbiBkaXJDaGVjayggZGlyLCBjdXIsIGRvbmVOYW1lLCBjaGVja1NldCwgbm9kZUNoZWNrLCBpc1hNTCApIHsKCWZvciAoIHZhciBpID0gMCwgbCA9IGNoZWNrU2V0Lmxlbmd0aDsgaSA8IGw7IGkrKyApIHsKCQl2YXIgZWxlbSA9IGNoZWNrU2V0W2ldOwoKCQlpZiAoIGVsZW0gKSB7CgkJCXZhciBtYXRjaCA9IGZhbHNlOwoJCQkKCQkJZWxlbSA9IGVsZW1bZGlyXTsKCgkJCXdoaWxlICggZWxlbSApIHsKCQkJCWlmICggZWxlbS5zaXpjYWNoZSA9PT0gZG9uZU5hbWUgKSB7CgkJCQkJbWF0Y2ggPSBjaGVja1NldFtlbGVtLnNpenNldF07CgkJCQkJYnJlYWs7CgkJCQl9CgoJCQkJaWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICkgewoJCQkJCWlmICggIWlzWE1MICkgewoJCQkJCQllbGVtLnNpemNhY2hlID0gZG9uZU5hbWU7CgkJCQkJCWVsZW0uc2l6c2V0ID0gaTsKCQkJCQl9CgoJCQkJCWlmICggdHlwZW9mIGN1ciAhPT0gInN0cmluZyIgKSB7CgkJCQkJCWlmICggZWxlbSA9PT0gY3VyICkgewoJCQkJCQkJbWF0Y2ggPSB0cnVlOwoJCQkJCQkJYnJlYWs7CgkJCQkJCX0KCgkJCQkJfSBlbHNlIGlmICggU2l6emxlLmZpbHRlciggY3VyLCBbZWxlbV0gKS5sZW5ndGggPiAwICkgewoJCQkJCQltYXRjaCA9IGVsZW07CgkJCQkJCWJyZWFrOwoJCQkJCX0KCQkJCX0KCgkJCQllbGVtID0gZWxlbVtkaXJdOwoJCQl9CgoJCQljaGVja1NldFtpXSA9IG1hdGNoOwoJCX0KCX0KfQoKaWYgKCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY29udGFpbnMgKSB7CglTaXp6bGUuY29udGFpbnMgPSBmdW5jdGlvbiggYSwgYiApIHsKCQlyZXR1cm4gYSAhPT0gYiAmJiAoYS5jb250YWlucyA/IGEuY29udGFpbnMoYikgOiB0cnVlKTsKCX07Cgp9IGVsc2UgaWYgKCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY29tcGFyZURvY3VtZW50UG9zaXRpb24gKSB7CglTaXp6bGUuY29udGFpbnMgPSBmdW5jdGlvbiggYSwgYiApIHsKCQlyZXR1cm4gISEoYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKSAmIDE2KTsKCX07Cgp9IGVsc2UgewoJU2l6emxlLmNvbnRhaW5zID0gZnVuY3Rpb24oKSB7CgkJcmV0dXJuIGZhbHNlOwoJfTsKfQoKU2l6emxlLmlzWE1MID0gZnVuY3Rpb24oIGVsZW0gKSB7CgkvLyBkb2N1bWVudEVsZW1lbnQgaXMgdmVyaWZpZWQgZm9yIGNhc2VzIHdoZXJlIGl0IGRvZXNuJ3QgeWV0IGV4aXN0CgkvLyAoc3VjaCBhcyBsb2FkaW5nIGlmcmFtZXMgaW4gSUUgLSAjNDgzMykgCgl2YXIgZG9jdW1lbnRFbGVtZW50ID0gKGVsZW0gPyBlbGVtLm93bmVyRG9jdW1lbnQgfHwgZWxlbSA6IDApLmRvY3VtZW50RWxlbWVudDsKCglyZXR1cm4gZG9jdW1lbnRFbGVtZW50ID8gZG9jdW1lbnRFbGVtZW50Lm5vZGVOYW1lICE9PSAiSFRNTCIgOiBmYWxzZTsKfTsKCnZhciBwb3NQcm9jZXNzID0gZnVuY3Rpb24oIHNlbGVjdG9yLCBjb250ZXh0ICkgewoJdmFyIG1hdGNoLAoJCXRtcFNldCA9IFtdLAoJCWxhdGVyID0gIiIsCgkJcm9vdCA9IGNvbnRleHQubm9kZVR5cGUgPyBbY29udGV4dF0gOiBjb250ZXh0OwoKCS8vIFBvc2l0aW9uIHNlbGVjdG9ycyBtdXN0IGJlIGRvbmUgYWZ0ZXIgdGhlIGZpbHRlcgoJLy8gQW5kIHNvIG11c3QgOm5vdChwb3NpdGlvbmFsKSBzbyB3ZSBtb3ZlIGFsbCBQU0VVRE9zIHRvIHRoZSBlbmQKCXdoaWxlICggKG1hdGNoID0gRXhwci5tYXRjaC5QU0VVRE8uZXhlYyggc2VsZWN0b3IgKSkgKSB7CgkJbGF0ZXIgKz0gbWF0Y2hbMF07CgkJc2VsZWN0b3IgPSBzZWxlY3Rvci5yZXBsYWNlKCBFeHByLm1hdGNoLlBTRVVETywgIiIgKTsKCX0KCglzZWxlY3RvciA9IEV4cHIucmVsYXRpdmVbc2VsZWN0b3JdID8gc2VsZWN0b3IgKyAiKiIgOiBzZWxlY3RvcjsKCglmb3IgKCB2YXIgaSA9IDAsIGwgPSByb290Lmxlbmd0aDsgaSA8IGw7IGkrKyApIHsKCQlTaXp6bGUoIHNlbGVjdG9yLCByb290W2ldLCB0bXBTZXQgKTsKCX0KCglyZXR1cm4gU2l6emxlLmZpbHRlciggbGF0ZXIsIHRtcFNldCApOwp9OwoKLy8gRVhQT1NFCmpRdWVyeS5maW5kID0gU2l6emxlOwpqUXVlcnkuZXhwciA9IFNpenpsZS5zZWxlY3RvcnM7CmpRdWVyeS5leHByWyI6Il0gPSBqUXVlcnkuZXhwci5maWx0ZXJzOwpqUXVlcnkudW5pcXVlID0gU2l6emxlLnVuaXF1ZVNvcnQ7CmpRdWVyeS50ZXh0ID0gU2l6emxlLmdldFRleHQ7CmpRdWVyeS5pc1hNTERvYyA9IFNpenpsZS5pc1hNTDsKalF1ZXJ5LmNvbnRhaW5zID0gU2l6emxlLmNvbnRhaW5zOwoKCn0pKCk7CgoKdmFyIHJ1bnRpbCA9IC9VbnRpbCQvLAoJcnBhcmVudHNwcmV2ID0gL14oPzpwYXJlbnRzfHByZXZVbnRpbHxwcmV2QWxsKS8sCgkvLyBOb3RlOiBUaGlzIFJlZ0V4cCBzaG91bGQgYmUgaW1wcm92ZWQsIG9yIGxpa2VseSBwdWxsZWQgZnJvbSBTaXp6bGUKCXJtdWx0aXNlbGVjdG9yID0gLywvLAoJaXNTaW1wbGUgPSAvXi5bXjojXFtcLixdKiQvLAoJc2xpY2UgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UsCglQT1MgPSBqUXVlcnkuZXhwci5tYXRjaC5QT1MsCgkvLyBtZXRob2RzIGd1YXJhbnRlZWQgdG8gcHJvZHVjZSBhIHVuaXF1ZSBzZXQgd2hlbiBzdGFydGluZyBmcm9tIGEgdW5pcXVlIHNldAoJZ3VhcmFudGVlZFVuaXF1ZSA9IHsKCQljaGlsZHJlbjogdHJ1ZSwKCQljb250ZW50czogdHJ1ZSwKCQluZXh0OiB0cnVlLAoJCXByZXY6IHRydWUKCX07CgpqUXVlcnkuZm4uZXh0ZW5kKHsKCWZpbmQ6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHsKCQl2YXIgcmV0ID0gdGhpcy5wdXNoU3RhY2soICIiLCAiZmluZCIsIHNlbGVjdG9yICksCgkJCWxlbmd0aCA9IDA7CgoJCWZvciAoIHZhciBpID0gMCwgbCA9IHRoaXMubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCQlsZW5ndGggPSByZXQubGVuZ3RoOwoJCQlqUXVlcnkuZmluZCggc2VsZWN0b3IsIHRoaXNbaV0sIHJldCApOwoKCQkJaWYgKCBpID4gMCApIHsKCQkJCS8vIE1ha2Ugc3VyZSB0aGF0IHRoZSByZXN1bHRzIGFyZSB1bmlxdWUKCQkJCWZvciAoIHZhciBuID0gbGVuZ3RoOyBuIDwgcmV0Lmxlbmd0aDsgbisrICkgewoJCQkJCWZvciAoIHZhciByID0gMDsgciA8IGxlbmd0aDsgcisrICkgewoJCQkJCQlpZiAoIHJldFtyXSA9PT0gcmV0W25dICkgewoJCQkJCQkJcmV0LnNwbGljZShuLS0sIDEpOwoJCQkJCQkJYnJlYWs7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgoJCXJldHVybiByZXQ7Cgl9LAoKCWhhczogZnVuY3Rpb24oIHRhcmdldCApIHsKCQl2YXIgdGFyZ2V0cyA9IGpRdWVyeSggdGFyZ2V0ICk7CgkJcmV0dXJuIHRoaXMuZmlsdGVyKGZ1bmN0aW9uKCkgewoJCQlmb3IgKCB2YXIgaSA9IDAsIGwgPSB0YXJnZXRzLmxlbmd0aDsgaSA8IGw7IGkrKyApIHsKCQkJCWlmICggalF1ZXJ5LmNvbnRhaW5zKCB0aGlzLCB0YXJnZXRzW2ldICkgKSB7CgkJCQkJcmV0dXJuIHRydWU7CgkJCQl9CgkJCX0KCQl9KTsKCX0sCgoJbm90OiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7CgkJcmV0dXJuIHRoaXMucHVzaFN0YWNrKCB3aW5ub3codGhpcywgc2VsZWN0b3IsIGZhbHNlKSwgIm5vdCIsIHNlbGVjdG9yKTsKCX0sCgoJZmlsdGVyOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7CgkJcmV0dXJuIHRoaXMucHVzaFN0YWNrKCB3aW5ub3codGhpcywgc2VsZWN0b3IsIHRydWUpLCAiZmlsdGVyIiwgc2VsZWN0b3IgKTsKCX0sCgoJaXM6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHsKCQlyZXR1cm4gISFzZWxlY3RvciAmJiBqUXVlcnkuZmlsdGVyKCBzZWxlY3RvciwgdGhpcyApLmxlbmd0aCA+IDA7Cgl9LAoKCWNsb3Nlc3Q6IGZ1bmN0aW9uKCBzZWxlY3RvcnMsIGNvbnRleHQgKSB7CgkJdmFyIHJldCA9IFtdLCBpLCBsLCBjdXIgPSB0aGlzWzBdOwoKCQlpZiAoIGpRdWVyeS5pc0FycmF5KCBzZWxlY3RvcnMgKSApIHsKCQkJdmFyIG1hdGNoLCBzZWxlY3RvciwKCQkJCW1hdGNoZXMgPSB7fSwKCQkJCWxldmVsID0gMTsKCgkJCWlmICggY3VyICYmIHNlbGVjdG9ycy5sZW5ndGggKSB7CgkJCQlmb3IgKCBpID0gMCwgbCA9IHNlbGVjdG9ycy5sZW5ndGg7IGkgPCBsOyBpKysgKSB7CgkJCQkJc2VsZWN0b3IgPSBzZWxlY3RvcnNbaV07CgoJCQkJCWlmICggIW1hdGNoZXNbc2VsZWN0b3JdICkgewoJCQkJCQltYXRjaGVzW3NlbGVjdG9yXSA9IGpRdWVyeS5leHByLm1hdGNoLlBPUy50ZXN0KCBzZWxlY3RvciApID8KCQkJCQkJCWpRdWVyeSggc2VsZWN0b3IsIGNvbnRleHQgfHwgdGhpcy5jb250ZXh0ICkgOgoJCQkJCQkJc2VsZWN0b3I7CgkJCQkJfQoJCQkJfQoKCQkJCXdoaWxlICggY3VyICYmIGN1ci5vd25lckRvY3VtZW50ICYmIGN1ciAhPT0gY29udGV4dCApIHsKCQkJCQlmb3IgKCBzZWxlY3RvciBpbiBtYXRjaGVzICkgewoJCQkJCQltYXRjaCA9IG1hdGNoZXNbc2VsZWN0b3JdOwoKCQkJCQkJaWYgKCBtYXRjaC5qcXVlcnkgPyBtYXRjaC5pbmRleChjdXIpID4gLTEgOiBqUXVlcnkoY3VyKS5pcyhtYXRjaCkgKSB7CgkJCQkJCQlyZXQucHVzaCh7IHNlbGVjdG9yOiBzZWxlY3RvciwgZWxlbTogY3VyLCBsZXZlbDogbGV2ZWwgfSk7CgkJCQkJCX0KCQkJCQl9CgoJCQkJCWN1ciA9IGN1ci5wYXJlbnROb2RlOwoJCQkJCWxldmVsKys7CgkJCQl9CgkJCX0KCgkJCXJldHVybiByZXQ7CgkJfQoKCQl2YXIgcG9zID0gUE9TLnRlc3QoIHNlbGVjdG9ycyApID8KCQkJalF1ZXJ5KCBzZWxlY3RvcnMsIGNvbnRleHQgfHwgdGhpcy5jb250ZXh0ICkgOiBudWxsOwoKCQlmb3IgKCBpID0gMCwgbCA9IHRoaXMubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCQljdXIgPSB0aGlzW2ldOwoKCQkJd2hpbGUgKCBjdXIgKSB7CgkJCQlpZiAoIHBvcyA/IHBvcy5pbmRleChjdXIpID4gLTEgOiBqUXVlcnkuZmluZC5tYXRjaGVzU2VsZWN0b3IoY3VyLCBzZWxlY3RvcnMpICkgewoJCQkJCXJldC5wdXNoKCBjdXIgKTsKCQkJCQlicmVhazsKCgkJCQl9IGVsc2UgewoJCQkJCWN1ciA9IGN1ci5wYXJlbnROb2RlOwoJCQkJCWlmICggIWN1ciB8fCAhY3VyLm93bmVyRG9jdW1lbnQgfHwgY3VyID09PSBjb250ZXh0ICkgewoJCQkJCQlicmVhazsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgoJCXJldCA9IHJldC5sZW5ndGggPiAxID8galF1ZXJ5LnVuaXF1ZShyZXQpIDogcmV0OwoKCQlyZXR1cm4gdGhpcy5wdXNoU3RhY2soIHJldCwgImNsb3Nlc3QiLCBzZWxlY3RvcnMgKTsKCX0sCgoJLy8gRGV0ZXJtaW5lIHRoZSBwb3NpdGlvbiBvZiBhbiBlbGVtZW50IHdpdGhpbgoJLy8gdGhlIG1hdGNoZWQgc2V0IG9mIGVsZW1lbnRzCglpbmRleDogZnVuY3Rpb24oIGVsZW0gKSB7CgkJaWYgKCAhZWxlbSB8fCB0eXBlb2YgZWxlbSA9PT0gInN0cmluZyIgKSB7CgkJCXJldHVybiBqUXVlcnkuaW5BcnJheSggdGhpc1swXSwKCQkJCS8vIElmIGl0IHJlY2VpdmVzIGEgc3RyaW5nLCB0aGUgc2VsZWN0b3IgaXMgdXNlZAoJCQkJLy8gSWYgaXQgcmVjZWl2ZXMgbm90aGluZywgdGhlIHNpYmxpbmdzIGFyZSB1c2VkCgkJCQllbGVtID8galF1ZXJ5KCBlbGVtICkgOiB0aGlzLnBhcmVudCgpLmNoaWxkcmVuKCkgKTsKCQl9CgkJLy8gTG9jYXRlIHRoZSBwb3NpdGlvbiBvZiB0aGUgZGVzaXJlZCBlbGVtZW50CgkJcmV0dXJuIGpRdWVyeS5pbkFycmF5KAoJCQkvLyBJZiBpdCByZWNlaXZlcyBhIGpRdWVyeSBvYmplY3QsIHRoZSBmaXJzdCBlbGVtZW50IGlzIHVzZWQKCQkJZWxlbS5qcXVlcnkgPyBlbGVtWzBdIDogZWxlbSwgdGhpcyApOwoJfSwKCglhZGQ6IGZ1bmN0aW9uKCBzZWxlY3RvciwgY29udGV4dCApIHsKCQl2YXIgc2V0ID0gdHlwZW9mIHNlbGVjdG9yID09PSAic3RyaW5nIiA/CgkJCQlqUXVlcnkoIHNlbGVjdG9yLCBjb250ZXh0ICkgOgoJCQkJalF1ZXJ5Lm1ha2VBcnJheSggc2VsZWN0b3IgKSwKCQkJYWxsID0galF1ZXJ5Lm1lcmdlKCB0aGlzLmdldCgpLCBzZXQgKTsKCgkJcmV0dXJuIHRoaXMucHVzaFN0YWNrKCBpc0Rpc2Nvbm5lY3RlZCggc2V0WzBdICkgfHwgaXNEaXNjb25uZWN0ZWQoIGFsbFswXSApID8KCQkJYWxsIDoKCQkJalF1ZXJ5LnVuaXF1ZSggYWxsICkgKTsKCX0sCgoJYW5kU2VsZjogZnVuY3Rpb24oKSB7CgkJcmV0dXJuIHRoaXMuYWRkKCB0aGlzLnByZXZPYmplY3QgKTsKCX0KfSk7CgovLyBBIHBhaW5mdWxseSBzaW1wbGUgY2hlY2sgdG8gc2VlIGlmIGFuIGVsZW1lbnQgaXMgZGlzY29ubmVjdGVkCi8vIGZyb20gYSBkb2N1bWVudCAoc2hvdWxkIGJlIGltcHJvdmVkLCB3aGVyZSBmZWFzaWJsZSkuCmZ1bmN0aW9uIGlzRGlzY29ubmVjdGVkKCBub2RlICkgewoJcmV0dXJuICFub2RlIHx8ICFub2RlLnBhcmVudE5vZGUgfHwgbm9kZS5wYXJlbnROb2RlLm5vZGVUeXBlID09PSAxMTsKfQoKalF1ZXJ5LmVhY2goewoJcGFyZW50OiBmdW5jdGlvbiggZWxlbSApIHsKCQl2YXIgcGFyZW50ID0gZWxlbS5wYXJlbnROb2RlOwoJCXJldHVybiBwYXJlbnQgJiYgcGFyZW50Lm5vZGVUeXBlICE9PSAxMSA/IHBhcmVudCA6IG51bGw7Cgl9LAoJcGFyZW50czogZnVuY3Rpb24oIGVsZW0gKSB7CgkJcmV0dXJuIGpRdWVyeS5kaXIoIGVsZW0sICJwYXJlbnROb2RlIiApOwoJfSwKCXBhcmVudHNVbnRpbDogZnVuY3Rpb24oIGVsZW0sIGksIHVudGlsICkgewoJCXJldHVybiBqUXVlcnkuZGlyKCBlbGVtLCAicGFyZW50Tm9kZSIsIHVudGlsICk7Cgl9LAoJbmV4dDogZnVuY3Rpb24oIGVsZW0gKSB7CgkJcmV0dXJuIGpRdWVyeS5udGgoIGVsZW0sIDIsICJuZXh0U2libGluZyIgKTsKCX0sCglwcmV2OiBmdW5jdGlvbiggZWxlbSApIHsKCQlyZXR1cm4galF1ZXJ5Lm50aCggZWxlbSwgMiwgInByZXZpb3VzU2libGluZyIgKTsKCX0sCgluZXh0QWxsOiBmdW5jdGlvbiggZWxlbSApIHsKCQlyZXR1cm4galF1ZXJ5LmRpciggZWxlbSwgIm5leHRTaWJsaW5nIiApOwoJfSwKCXByZXZBbGw6IGZ1bmN0aW9uKCBlbGVtICkgewoJCXJldHVybiBqUXVlcnkuZGlyKCBlbGVtLCAicHJldmlvdXNTaWJsaW5nIiApOwoJfSwKCW5leHRVbnRpbDogZnVuY3Rpb24oIGVsZW0sIGksIHVudGlsICkgewoJCXJldHVybiBqUXVlcnkuZGlyKCBlbGVtLCAibmV4dFNpYmxpbmciLCB1bnRpbCApOwoJfSwKCXByZXZVbnRpbDogZnVuY3Rpb24oIGVsZW0sIGksIHVudGlsICkgewoJCXJldHVybiBqUXVlcnkuZGlyKCBlbGVtLCAicHJldmlvdXNTaWJsaW5nIiwgdW50aWwgKTsKCX0sCglzaWJsaW5nczogZnVuY3Rpb24oIGVsZW0gKSB7CgkJcmV0dXJuIGpRdWVyeS5zaWJsaW5nKCBlbGVtLnBhcmVudE5vZGUuZmlyc3RDaGlsZCwgZWxlbSApOwoJfSwKCWNoaWxkcmVuOiBmdW5jdGlvbiggZWxlbSApIHsKCQlyZXR1cm4galF1ZXJ5LnNpYmxpbmcoIGVsZW0uZmlyc3RDaGlsZCApOwoJfSwKCWNvbnRlbnRzOiBmdW5jdGlvbiggZWxlbSApIHsKCQlyZXR1cm4galF1ZXJ5Lm5vZGVOYW1lKCBlbGVtLCAiaWZyYW1lIiApID8KCQkJZWxlbS5jb250ZW50RG9jdW1lbnQgfHwgZWxlbS5jb250ZW50V2luZG93LmRvY3VtZW50IDoKCQkJalF1ZXJ5Lm1ha2VBcnJheSggZWxlbS5jaGlsZE5vZGVzICk7Cgl9Cn0sIGZ1bmN0aW9uKCBuYW1lLCBmbiApIHsKCWpRdWVyeS5mblsgbmFtZSBdID0gZnVuY3Rpb24oIHVudGlsLCBzZWxlY3RvciApIHsKCQl2YXIgcmV0ID0galF1ZXJ5Lm1hcCggdGhpcywgZm4sIHVudGlsICksCgkJCS8vIFRoZSB2YXJpYWJsZSAnYXJncycgd2FzIGludHJvZHVjZWQgaW4KCQkJLy8gaHR0cHM6Ly9naXRodWIuY29tL2pxdWVyeS9qcXVlcnkvY29tbWl0LzUyYTAyMzgKCQkJLy8gdG8gd29yayBhcm91bmQgYSBidWcgaW4gQ2hyb21lIDEwIChEZXYpIGFuZCBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIHRoZSBidWcgaXMgZml4ZWQuCgkJCS8vIGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTEwNTAKCQkJYXJncyA9IHNsaWNlLmNhbGwoYXJndW1lbnRzKTsKCgkJaWYgKCAhcnVudGlsLnRlc3QoIG5hbWUgKSApIHsKCQkJc2VsZWN0b3IgPSB1bnRpbDsKCQl9CgoJCWlmICggc2VsZWN0b3IgJiYgdHlwZW9mIHNlbGVjdG9yID09PSAic3RyaW5nIiApIHsKCQkJcmV0ID0galF1ZXJ5LmZpbHRlciggc2VsZWN0b3IsIHJldCApOwoJCX0KCgkJcmV0ID0gdGhpcy5sZW5ndGggPiAxICYmICFndWFyYW50ZWVkVW5pcXVlWyBuYW1lIF0gPyBqUXVlcnkudW5pcXVlKCByZXQgKSA6IHJldDsKCgkJaWYgKCAodGhpcy5sZW5ndGggPiAxIHx8IHJtdWx0aXNlbGVjdG9yLnRlc3QoIHNlbGVjdG9yICkpICYmIHJwYXJlbnRzcHJldi50ZXN0KCBuYW1lICkgKSB7CgkJCXJldCA9IHJldC5yZXZlcnNlKCk7CgkJfQoKCQlyZXR1cm4gdGhpcy5wdXNoU3RhY2soIHJldCwgbmFtZSwgYXJncy5qb2luKCIsIikgKTsKCX07Cn0pOwoKalF1ZXJ5LmV4dGVuZCh7CglmaWx0ZXI6IGZ1bmN0aW9uKCBleHByLCBlbGVtcywgbm90ICkgewoJCWlmICggbm90ICkgewoJCQlleHByID0gIjpub3QoIiArIGV4cHIgKyAiKSI7CgkJfQoKCQlyZXR1cm4gZWxlbXMubGVuZ3RoID09PSAxID8KCQkJalF1ZXJ5LmZpbmQubWF0Y2hlc1NlbGVjdG9yKGVsZW1zWzBdLCBleHByKSA/IFsgZWxlbXNbMF0gXSA6IFtdIDoKCQkJalF1ZXJ5LmZpbmQubWF0Y2hlcyhleHByLCBlbGVtcyk7Cgl9LAoKCWRpcjogZnVuY3Rpb24oIGVsZW0sIGRpciwgdW50aWwgKSB7CgkJdmFyIG1hdGNoZWQgPSBbXSwKCQkJY3VyID0gZWxlbVsgZGlyIF07CgoJCXdoaWxlICggY3VyICYmIGN1ci5ub2RlVHlwZSAhPT0gOSAmJiAodW50aWwgPT09IHVuZGVmaW5lZCB8fCBjdXIubm9kZVR5cGUgIT09IDEgfHwgIWpRdWVyeSggY3VyICkuaXMoIHVudGlsICkpICkgewoJCQlpZiAoIGN1ci5ub2RlVHlwZSA9PT0gMSApIHsKCQkJCW1hdGNoZWQucHVzaCggY3VyICk7CgkJCX0KCQkJY3VyID0gY3VyW2Rpcl07CgkJfQoJCXJldHVybiBtYXRjaGVkOwoJfSwKCgludGg6IGZ1bmN0aW9uKCBjdXIsIHJlc3VsdCwgZGlyLCBlbGVtICkgewoJCXJlc3VsdCA9IHJlc3VsdCB8fCAxOwoJCXZhciBudW0gPSAwOwoKCQlmb3IgKCA7IGN1cjsgY3VyID0gY3VyW2Rpcl0gKSB7CgkJCWlmICggY3VyLm5vZGVUeXBlID09PSAxICYmICsrbnVtID09PSByZXN1bHQgKSB7CgkJCQlicmVhazsKCQkJfQoJCX0KCgkJcmV0dXJuIGN1cjsKCX0sCgoJc2libGluZzogZnVuY3Rpb24oIG4sIGVsZW0gKSB7CgkJdmFyIHIgPSBbXTsKCgkJZm9yICggOyBuOyBuID0gbi5uZXh0U2libGluZyApIHsKCQkJaWYgKCBuLm5vZGVUeXBlID09PSAxICYmIG4gIT09IGVsZW0gKSB7CgkJCQlyLnB1c2goIG4gKTsKCQkJfQoJCX0KCgkJcmV0dXJuIHI7Cgl9Cn0pOwoKLy8gSW1wbGVtZW50IHRoZSBpZGVudGljYWwgZnVuY3Rpb25hbGl0eSBmb3IgZmlsdGVyIGFuZCBub3QKZnVuY3Rpb24gd2lubm93KCBlbGVtZW50cywgcXVhbGlmaWVyLCBrZWVwICkgewoJaWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggcXVhbGlmaWVyICkgKSB7CgkJcmV0dXJuIGpRdWVyeS5ncmVwKGVsZW1lbnRzLCBmdW5jdGlvbiggZWxlbSwgaSApIHsKCQkJdmFyIHJldFZhbCA9ICEhcXVhbGlmaWVyLmNhbGwoIGVsZW0sIGksIGVsZW0gKTsKCQkJcmV0dXJuIHJldFZhbCA9PT0ga2VlcDsKCQl9KTsKCgl9IGVsc2UgaWYgKCBxdWFsaWZpZXIubm9kZVR5cGUgKSB7CgkJcmV0dXJuIGpRdWVyeS5ncmVwKGVsZW1lbnRzLCBmdW5jdGlvbiggZWxlbSwgaSApIHsKCQkJcmV0dXJuIChlbGVtID09PSBxdWFsaWZpZXIpID09PSBrZWVwOwoJCX0pOwoKCX0gZWxzZSBpZiAoIHR5cGVvZiBxdWFsaWZpZXIgPT09ICJzdHJpbmciICkgewoJCXZhciBmaWx0ZXJlZCA9IGpRdWVyeS5ncmVwKGVsZW1lbnRzLCBmdW5jdGlvbiggZWxlbSApIHsKCQkJcmV0dXJuIGVsZW0ubm9kZVR5cGUgPT09IDE7CgkJfSk7CgoJCWlmICggaXNTaW1wbGUudGVzdCggcXVhbGlmaWVyICkgKSB7CgkJCXJldHVybiBqUXVlcnkuZmlsdGVyKHF1YWxpZmllciwgZmlsdGVyZWQsICFrZWVwKTsKCQl9IGVsc2UgewoJCQlxdWFsaWZpZXIgPSBqUXVlcnkuZmlsdGVyKCBxdWFsaWZpZXIsIGZpbHRlcmVkICk7CgkJfQoJfQoKCXJldHVybiBqUXVlcnkuZ3JlcChlbGVtZW50cywgZnVuY3Rpb24oIGVsZW0sIGkgKSB7CgkJcmV0dXJuIChqUXVlcnkuaW5BcnJheSggZWxlbSwgcXVhbGlmaWVyICkgPj0gMCkgPT09IGtlZXA7Cgl9KTsKfQoKCgoKdmFyIHJpbmxpbmVqUXVlcnkgPSAvIGpRdWVyeVxkKz0iKD86XGQrfG51bGwpIi9nLAoJcmxlYWRpbmdXaGl0ZXNwYWNlID0gL15ccysvLAoJcnhodG1sVGFnID0gLzwoPyFhcmVhfGJyfGNvbHxlbWJlZHxocnxpbWd8aW5wdXR8bGlua3xtZXRhfHBhcmFtKSgoW1x3Ol0rKVtePl0qKVwvPi9pZywKCXJ0YWdOYW1lID0gLzwoW1x3Ol0rKS8sCglydGJvZHkgPSAvPHRib2R5L2ksCglyaHRtbCA9IC88fCYjP1x3KzsvLAoJcm5vY2FjaGUgPSAvPCg/OnNjcmlwdHxvYmplY3R8ZW1iZWR8b3B0aW9ufHN0eWxlKS9pLAoJLy8gY2hlY2tlZD0iY2hlY2tlZCIgb3IgY2hlY2tlZAoJcmNoZWNrZWQgPSAvY2hlY2tlZFxzKig/OltePV18PVxzKi5jaGVja2VkLikvaSwKCXdyYXBNYXAgPSB7CgkJb3B0aW9uOiBbIDEsICI8c2VsZWN0IG11bHRpcGxlPSdtdWx0aXBsZSc+IiwgIjwvc2VsZWN0PiIgXSwKCQlsZWdlbmQ6IFsgMSwgIjxmaWVsZHNldD4iLCAiPC9maWVsZHNldD4iIF0sCgkJdGhlYWQ6IFsgMSwgIjx0YWJsZT4iLCAiPC90YWJsZT4iIF0sCgkJdHI6IFsgMiwgIjx0YWJsZT48dGJvZHk+IiwgIjwvdGJvZHk+PC90YWJsZT4iIF0sCgkJdGQ6IFsgMywgIjx0YWJsZT48dGJvZHk+PHRyPiIsICI8L3RyPjwvdGJvZHk+PC90YWJsZT4iIF0sCgkJY29sOiBbIDIsICI8dGFibGU+PHRib2R5PjwvdGJvZHk+PGNvbGdyb3VwPiIsICI8L2NvbGdyb3VwPjwvdGFibGU+IiBdLAoJCWFyZWE6IFsgMSwgIjxtYXA+IiwgIjwvbWFwPiIgXSwKCQlfZGVmYXVsdDogWyAwLCAiIiwgIiIgXQoJfTsKCndyYXBNYXAub3B0Z3JvdXAgPSB3cmFwTWFwLm9wdGlvbjsKd3JhcE1hcC50Ym9keSA9IHdyYXBNYXAudGZvb3QgPSB3cmFwTWFwLmNvbGdyb3VwID0gd3JhcE1hcC5jYXB0aW9uID0gd3JhcE1hcC50aGVhZDsKd3JhcE1hcC50aCA9IHdyYXBNYXAudGQ7CgovLyBJRSBjYW4ndCBzZXJpYWxpemUgPGxpbms+IGFuZCA8c2NyaXB0PiB0YWdzIG5vcm1hbGx5CmlmICggIWpRdWVyeS5zdXBwb3J0Lmh0bWxTZXJpYWxpemUgKSB7Cgl3cmFwTWFwLl9kZWZhdWx0ID0gWyAxLCAiZGl2PGRpdj4iLCAiPC9kaXY+IiBdOwp9CgpqUXVlcnkuZm4uZXh0ZW5kKHsKCXRleHQ6IGZ1bmN0aW9uKCB0ZXh0ICkgewoJCWlmICggalF1ZXJ5LmlzRnVuY3Rpb24odGV4dCkgKSB7CgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oaSkgewoJCQkJdmFyIHNlbGYgPSBqUXVlcnkoIHRoaXMgKTsKCgkJCQlzZWxmLnRleHQoIHRleHQuY2FsbCh0aGlzLCBpLCBzZWxmLnRleHQoKSkgKTsKCQkJfSk7CgkJfQoKCQlpZiAoIHR5cGVvZiB0ZXh0ICE9PSAib2JqZWN0IiAmJiB0ZXh0ICE9PSB1bmRlZmluZWQgKSB7CgkJCXJldHVybiB0aGlzLmVtcHR5KCkuYXBwZW5kKCAodGhpc1swXSAmJiB0aGlzWzBdLm93bmVyRG9jdW1lbnQgfHwgZG9jdW1lbnQpLmNyZWF0ZVRleHROb2RlKCB0ZXh0ICkgKTsKCQl9CgoJCXJldHVybiBqUXVlcnkudGV4dCggdGhpcyApOwoJfSwKCgl3cmFwQWxsOiBmdW5jdGlvbiggaHRtbCApIHsKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCBodG1sICkgKSB7CgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oaSkgewoJCQkJalF1ZXJ5KHRoaXMpLndyYXBBbGwoIGh0bWwuY2FsbCh0aGlzLCBpKSApOwoJCQl9KTsKCQl9CgoJCWlmICggdGhpc1swXSApIHsKCQkJLy8gVGhlIGVsZW1lbnRzIHRvIHdyYXAgdGhlIHRhcmdldCBhcm91bmQKCQkJdmFyIHdyYXAgPSBqUXVlcnkoIGh0bWwsIHRoaXNbMF0ub3duZXJEb2N1bWVudCApLmVxKDApLmNsb25lKHRydWUpOwoKCQkJaWYgKCB0aGlzWzBdLnBhcmVudE5vZGUgKSB7CgkJCQl3cmFwLmluc2VydEJlZm9yZSggdGhpc1swXSApOwoJCQl9CgoJCQl3cmFwLm1hcChmdW5jdGlvbigpIHsKCQkJCXZhciBlbGVtID0gdGhpczsKCgkJCQl3aGlsZSAoIGVsZW0uZmlyc3RDaGlsZCAmJiBlbGVtLmZpcnN0Q2hpbGQubm9kZVR5cGUgPT09IDEgKSB7CgkJCQkJZWxlbSA9IGVsZW0uZmlyc3RDaGlsZDsKCQkJCX0KCgkJCQlyZXR1cm4gZWxlbTsKCQkJfSkuYXBwZW5kKHRoaXMpOwoJCX0KCgkJcmV0dXJuIHRoaXM7Cgl9LAoKCXdyYXBJbm5lcjogZnVuY3Rpb24oIGh0bWwgKSB7CgkJaWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggaHRtbCApICkgewoJCQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGkpIHsKCQkJCWpRdWVyeSh0aGlzKS53cmFwSW5uZXIoIGh0bWwuY2FsbCh0aGlzLCBpKSApOwoJCQl9KTsKCQl9CgoJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCXZhciBzZWxmID0galF1ZXJ5KCB0aGlzICksCgkJCQljb250ZW50cyA9IHNlbGYuY29udGVudHMoKTsKCgkJCWlmICggY29udGVudHMubGVuZ3RoICkgewoJCQkJY29udGVudHMud3JhcEFsbCggaHRtbCApOwoKCQkJfSBlbHNlIHsKCQkJCXNlbGYuYXBwZW5kKCBodG1sICk7CgkJCX0KCQl9KTsKCX0sCgoJd3JhcDogZnVuY3Rpb24oIGh0bWwgKSB7CgkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJalF1ZXJ5KCB0aGlzICkud3JhcEFsbCggaHRtbCApOwoJCX0pOwoJfSwKCgl1bndyYXA6IGZ1bmN0aW9uKCkgewoJCXJldHVybiB0aGlzLnBhcmVudCgpLmVhY2goZnVuY3Rpb24oKSB7CgkJCWlmICggIWpRdWVyeS5ub2RlTmFtZSggdGhpcywgImJvZHkiICkgKSB7CgkJCQlqUXVlcnkoIHRoaXMgKS5yZXBsYWNlV2l0aCggdGhpcy5jaGlsZE5vZGVzICk7CgkJCX0KCQl9KS5lbmQoKTsKCX0sCgoJYXBwZW5kOiBmdW5jdGlvbigpIHsKCQlyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsIHRydWUsIGZ1bmN0aW9uKCBlbGVtICkgewoJCQlpZiAoIHRoaXMubm9kZVR5cGUgPT09IDEgKSB7CgkJCQl0aGlzLmFwcGVuZENoaWxkKCBlbGVtICk7CgkJCX0KCQl9KTsKCX0sCgoJcHJlcGVuZDogZnVuY3Rpb24oKSB7CgkJcmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLCB0cnVlLCBmdW5jdGlvbiggZWxlbSApIHsKCQkJaWYgKCB0aGlzLm5vZGVUeXBlID09PSAxICkgewoJCQkJdGhpcy5pbnNlcnRCZWZvcmUoIGVsZW0sIHRoaXMuZmlyc3RDaGlsZCApOwoJCQl9CgkJfSk7Cgl9LAoKCWJlZm9yZTogZnVuY3Rpb24oKSB7CgkJaWYgKCB0aGlzWzBdICYmIHRoaXNbMF0ucGFyZW50Tm9kZSApIHsKCQkJcmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLCBmYWxzZSwgZnVuY3Rpb24oIGVsZW0gKSB7CgkJCQl0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKCBlbGVtLCB0aGlzICk7CgkJCX0pOwoJCX0gZWxzZSBpZiAoIGFyZ3VtZW50cy5sZW5ndGggKSB7CgkJCXZhciBzZXQgPSBqUXVlcnkoYXJndW1lbnRzWzBdKTsKCQkJc2V0LnB1c2guYXBwbHkoIHNldCwgdGhpcy50b0FycmF5KCkgKTsKCQkJcmV0dXJuIHRoaXMucHVzaFN0YWNrKCBzZXQsICJiZWZvcmUiLCBhcmd1bWVudHMgKTsKCQl9Cgl9LAoKCWFmdGVyOiBmdW5jdGlvbigpIHsKCQlpZiAoIHRoaXNbMF0gJiYgdGhpc1swXS5wYXJlbnROb2RlICkgewoJCQlyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsIGZhbHNlLCBmdW5jdGlvbiggZWxlbSApIHsKCQkJCXRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoIGVsZW0sIHRoaXMubmV4dFNpYmxpbmcgKTsKCQkJfSk7CgkJfSBlbHNlIGlmICggYXJndW1lbnRzLmxlbmd0aCApIHsKCQkJdmFyIHNldCA9IHRoaXMucHVzaFN0YWNrKCB0aGlzLCAiYWZ0ZXIiLCBhcmd1bWVudHMgKTsKCQkJc2V0LnB1c2guYXBwbHkoIHNldCwgalF1ZXJ5KGFyZ3VtZW50c1swXSkudG9BcnJheSgpICk7CgkJCXJldHVybiBzZXQ7CgkJfQoJfSwKCgkvLyBrZWVwRGF0YSBpcyBmb3IgaW50ZXJuYWwgdXNlIG9ubHktLWRvIG5vdCBkb2N1bWVudAoJcmVtb3ZlOiBmdW5jdGlvbiggc2VsZWN0b3IsIGtlZXBEYXRhICkgewoJCWZvciAoIHZhciBpID0gMCwgZWxlbTsgKGVsZW0gPSB0aGlzW2ldKSAhPSBudWxsOyBpKysgKSB7CgkJCWlmICggIXNlbGVjdG9yIHx8IGpRdWVyeS5maWx0ZXIoIHNlbGVjdG9yLCBbIGVsZW0gXSApLmxlbmd0aCApIHsKCQkJCWlmICggIWtlZXBEYXRhICYmIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7CgkJCQkJalF1ZXJ5LmNsZWFuRGF0YSggZWxlbS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpICk7CgkJCQkJalF1ZXJ5LmNsZWFuRGF0YSggWyBlbGVtIF0gKTsKCQkJCX0KCgkJCQlpZiAoIGVsZW0ucGFyZW50Tm9kZSApIHsKCQkJCQllbGVtLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoIGVsZW0gKTsKCQkJCX0KCQkJfQoJCX0KCgkJcmV0dXJuIHRoaXM7Cgl9LAoKCWVtcHR5OiBmdW5jdGlvbigpIHsKCQlmb3IgKCB2YXIgaSA9IDAsIGVsZW07IChlbGVtID0gdGhpc1tpXSkgIT0gbnVsbDsgaSsrICkgewoJCQkvLyBSZW1vdmUgZWxlbWVudCBub2RlcyBhbmQgcHJldmVudCBtZW1vcnkgbGVha3MKCQkJaWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICkgewoJCQkJalF1ZXJ5LmNsZWFuRGF0YSggZWxlbS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpICk7CgkJCX0KCgkJCS8vIFJlbW92ZSBhbnkgcmVtYWluaW5nIG5vZGVzCgkJCXdoaWxlICggZWxlbS5maXJzdENoaWxkICkgewoJCQkJZWxlbS5yZW1vdmVDaGlsZCggZWxlbS5maXJzdENoaWxkICk7CgkJCX0KCQl9CgoJCXJldHVybiB0aGlzOwoJfSwKCgljbG9uZTogZnVuY3Rpb24oIGRhdGFBbmRFdmVudHMsIGRlZXBEYXRhQW5kRXZlbnRzICkgewoJCWRhdGFBbmRFdmVudHMgPSBkYXRhQW5kRXZlbnRzID09IG51bGwgPyBmYWxzZSA6IGRhdGFBbmRFdmVudHM7CgkJZGVlcERhdGFBbmRFdmVudHMgPSBkZWVwRGF0YUFuZEV2ZW50cyA9PSBudWxsID8gZGF0YUFuZEV2ZW50cyA6IGRlZXBEYXRhQW5kRXZlbnRzOwoKCQlyZXR1cm4gdGhpcy5tYXAoIGZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuIGpRdWVyeS5jbG9uZSggdGhpcywgZGF0YUFuZEV2ZW50cywgZGVlcERhdGFBbmRFdmVudHMgKTsKCQl9KTsKCX0sCgoJaHRtbDogZnVuY3Rpb24oIHZhbHVlICkgewoJCWlmICggdmFsdWUgPT09IHVuZGVmaW5lZCApIHsKCQkJcmV0dXJuIHRoaXNbMF0gJiYgdGhpc1swXS5ub2RlVHlwZSA9PT0gMSA/CgkJCQl0aGlzWzBdLmlubmVySFRNTC5yZXBsYWNlKHJpbmxpbmVqUXVlcnksICIiKSA6CgkJCQludWxsOwoKCQkvLyBTZWUgaWYgd2UgY2FuIHRha2UgYSBzaG9ydGN1dCBhbmQganVzdCB1c2UgaW5uZXJIVE1MCgkJfSBlbHNlIGlmICggdHlwZW9mIHZhbHVlID09PSAic3RyaW5nIiAmJiAhcm5vY2FjaGUudGVzdCggdmFsdWUgKSAmJgoJCQkoalF1ZXJ5LnN1cHBvcnQubGVhZGluZ1doaXRlc3BhY2UgfHwgIXJsZWFkaW5nV2hpdGVzcGFjZS50ZXN0KCB2YWx1ZSApKSAmJgoJCQkhd3JhcE1hcFsgKHJ0YWdOYW1lLmV4ZWMoIHZhbHVlICkgfHwgWyIiLCAiIl0pWzFdLnRvTG93ZXJDYXNlKCkgXSApIHsKCgkJCXZhbHVlID0gdmFsdWUucmVwbGFjZShyeGh0bWxUYWcsICI8JDE+PC8kMj4iKTsKCgkJCXRyeSB7CgkJCQlmb3IgKCB2YXIgaSA9IDAsIGwgPSB0aGlzLmxlbmd0aDsgaSA8IGw7IGkrKyApIHsKCQkJCQkvLyBSZW1vdmUgZWxlbWVudCBub2RlcyBhbmQgcHJldmVudCBtZW1vcnkgbGVha3MKCQkJCQlpZiAoIHRoaXNbaV0ubm9kZVR5cGUgPT09IDEgKSB7CgkJCQkJCWpRdWVyeS5jbGVhbkRhdGEoIHRoaXNbaV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSApOwoJCQkJCQl0aGlzW2ldLmlubmVySFRNTCA9IHZhbHVlOwoJCQkJCX0KCQkJCX0KCgkJCS8vIElmIHVzaW5nIGlubmVySFRNTCB0aHJvd3MgYW4gZXhjZXB0aW9uLCB1c2UgdGhlIGZhbGxiYWNrIG1ldGhvZAoJCQl9IGNhdGNoKGUpIHsKCQkJCXRoaXMuZW1wdHkoKS5hcHBlbmQoIHZhbHVlICk7CgkJCX0KCgkJfSBlbHNlIGlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHZhbHVlICkgKSB7CgkJCXRoaXMuZWFjaChmdW5jdGlvbihpKXsKCQkJCXZhciBzZWxmID0galF1ZXJ5KCB0aGlzICk7CgoJCQkJc2VsZi5odG1sKCB2YWx1ZS5jYWxsKHRoaXMsIGksIHNlbGYuaHRtbCgpKSApOwoJCQl9KTsKCgkJfSBlbHNlIHsKCQkJdGhpcy5lbXB0eSgpLmFwcGVuZCggdmFsdWUgKTsKCQl9CgoJCXJldHVybiB0aGlzOwoJfSwKCglyZXBsYWNlV2l0aDogZnVuY3Rpb24oIHZhbHVlICkgewoJCWlmICggdGhpc1swXSAmJiB0aGlzWzBdLnBhcmVudE5vZGUgKSB7CgkJCS8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBlbGVtZW50cyBhcmUgcmVtb3ZlZCBmcm9tIHRoZSBET00gYmVmb3JlIHRoZXkgYXJlIGluc2VydGVkCgkJCS8vIHRoaXMgY2FuIGhlbHAgZml4IHJlcGxhY2luZyBhIHBhcmVudCB3aXRoIGNoaWxkIGVsZW1lbnRzCgkJCWlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHZhbHVlICkgKSB7CgkJCQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGkpIHsKCQkJCQl2YXIgc2VsZiA9IGpRdWVyeSh0aGlzKSwgb2xkID0gc2VsZi5odG1sKCk7CgkJCQkJc2VsZi5yZXBsYWNlV2l0aCggdmFsdWUuY2FsbCggdGhpcywgaSwgb2xkICkgKTsKCQkJCX0pOwoJCQl9CgoJCQlpZiAoIHR5cGVvZiB2YWx1ZSAhPT0gInN0cmluZyIgKSB7CgkJCQl2YWx1ZSA9IGpRdWVyeSggdmFsdWUgKS5kZXRhY2goKTsKCQkJfQoKCQkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJCXZhciBuZXh0ID0gdGhpcy5uZXh0U2libGluZywKCQkJCQlwYXJlbnQgPSB0aGlzLnBhcmVudE5vZGU7CgoJCQkJalF1ZXJ5KCB0aGlzICkucmVtb3ZlKCk7CgoJCQkJaWYgKCBuZXh0ICkgewoJCQkJCWpRdWVyeShuZXh0KS5iZWZvcmUoIHZhbHVlICk7CgkJCQl9IGVsc2UgewoJCQkJCWpRdWVyeShwYXJlbnQpLmFwcGVuZCggdmFsdWUgKTsKCQkJCX0KCQkJfSk7CgkJfSBlbHNlIHsKCQkJcmV0dXJuIHRoaXMucHVzaFN0YWNrKCBqUXVlcnkoalF1ZXJ5LmlzRnVuY3Rpb24odmFsdWUpID8gdmFsdWUoKSA6IHZhbHVlKSwgInJlcGxhY2VXaXRoIiwgdmFsdWUgKTsKCQl9Cgl9LAoKCWRldGFjaDogZnVuY3Rpb24oIHNlbGVjdG9yICkgewoJCXJldHVybiB0aGlzLnJlbW92ZSggc2VsZWN0b3IsIHRydWUgKTsKCX0sCgoJZG9tTWFuaXA6IGZ1bmN0aW9uKCBhcmdzLCB0YWJsZSwgY2FsbGJhY2sgKSB7CgkJdmFyIHJlc3VsdHMsIGZpcnN0LCBmcmFnbWVudCwgcGFyZW50LAoJCQl2YWx1ZSA9IGFyZ3NbMF0sCgkJCXNjcmlwdHMgPSBbXTsKCgkJLy8gV2UgY2FuJ3QgY2xvbmVOb2RlIGZyYWdtZW50cyB0aGF0IGNvbnRhaW4gY2hlY2tlZCwgaW4gV2ViS2l0CgkJaWYgKCAhalF1ZXJ5LnN1cHBvcnQuY2hlY2tDbG9uZSAmJiBhcmd1bWVudHMubGVuZ3RoID09PSAzICYmIHR5cGVvZiB2YWx1ZSA9PT0gInN0cmluZyIgJiYgcmNoZWNrZWQudGVzdCggdmFsdWUgKSApIHsKCQkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJCWpRdWVyeSh0aGlzKS5kb21NYW5pcCggYXJncywgdGFibGUsIGNhbGxiYWNrLCB0cnVlICk7CgkJCX0pOwoJCX0KCgkJaWYgKCBqUXVlcnkuaXNGdW5jdGlvbih2YWx1ZSkgKSB7CgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oaSkgewoJCQkJdmFyIHNlbGYgPSBqUXVlcnkodGhpcyk7CgkJCQlhcmdzWzBdID0gdmFsdWUuY2FsbCh0aGlzLCBpLCB0YWJsZSA/IHNlbGYuaHRtbCgpIDogdW5kZWZpbmVkKTsKCQkJCXNlbGYuZG9tTWFuaXAoIGFyZ3MsIHRhYmxlLCBjYWxsYmFjayApOwoJCQl9KTsKCQl9CgoJCWlmICggdGhpc1swXSApIHsKCQkJcGFyZW50ID0gdmFsdWUgJiYgdmFsdWUucGFyZW50Tm9kZTsKCgkJCS8vIElmIHdlJ3JlIGluIGEgZnJhZ21lbnQsIGp1c3QgdXNlIHRoYXQgaW5zdGVhZCBvZiBidWlsZGluZyBhIG5ldyBvbmUKCQkJaWYgKCBqUXVlcnkuc3VwcG9ydC5wYXJlbnROb2RlICYmIHBhcmVudCAmJiBwYXJlbnQubm9kZVR5cGUgPT09IDExICYmIHBhcmVudC5jaGlsZE5vZGVzLmxlbmd0aCA9PT0gdGhpcy5sZW5ndGggKSB7CgkJCQlyZXN1bHRzID0geyBmcmFnbWVudDogcGFyZW50IH07CgoJCQl9IGVsc2UgewoJCQkJcmVzdWx0cyA9IGpRdWVyeS5idWlsZEZyYWdtZW50KCBhcmdzLCB0aGlzLCBzY3JpcHRzICk7CgkJCX0KCgkJCWZyYWdtZW50ID0gcmVzdWx0cy5mcmFnbWVudDsKCgkJCWlmICggZnJhZ21lbnQuY2hpbGROb2Rlcy5sZW5ndGggPT09IDEgKSB7CgkJCQlmaXJzdCA9IGZyYWdtZW50ID0gZnJhZ21lbnQuZmlyc3RDaGlsZDsKCQkJfSBlbHNlIHsKCQkJCWZpcnN0ID0gZnJhZ21lbnQuZmlyc3RDaGlsZDsKCQkJfQoKCQkJaWYgKCBmaXJzdCApIHsKCQkJCXRhYmxlID0gdGFibGUgJiYgalF1ZXJ5Lm5vZGVOYW1lKCBmaXJzdCwgInRyIiApOwoKCQkJCWZvciAoIHZhciBpID0gMCwgbCA9IHRoaXMubGVuZ3RoLCBsYXN0SW5kZXggPSBsIC0gMTsgaSA8IGw7IGkrKyApIHsKCQkJCQljYWxsYmFjay5jYWxsKAoJCQkJCQl0YWJsZSA/CgkJCQkJCQlyb290KHRoaXNbaV0sIGZpcnN0KSA6CgkJCQkJCQl0aGlzW2ldLAoJCQkJCQkvLyBNYWtlIHN1cmUgdGhhdCB3ZSBkbyBub3QgbGVhayBtZW1vcnkgYnkgaW5hZHZlcnRlbnRseSBkaXNjYXJkaW5nCgkJCQkJCS8vIHRoZSBvcmlnaW5hbCBmcmFnbWVudCAod2hpY2ggbWlnaHQgaGF2ZSBhdHRhY2hlZCBkYXRhKSBpbnN0ZWFkIG9mCgkJCQkJCS8vIHVzaW5nIGl0OyBpbiBhZGRpdGlvbiwgdXNlIHRoZSBvcmlnaW5hbCBmcmFnbWVudCBvYmplY3QgZm9yIHRoZSBsYXN0CgkJCQkJCS8vIGl0ZW0gaW5zdGVhZCBvZiBmaXJzdCBiZWNhdXNlIGl0IGNhbiBlbmQgdXAgYmVpbmcgZW1wdGllZCBpbmNvcnJlY3RseQoJCQkJCQkvLyBpbiBjZXJ0YWluIHNpdHVhdGlvbnMgKEJ1ZyAjODA3MCkuCgkJCQkJCS8vIEZyYWdtZW50cyBmcm9tIHRoZSBmcmFnbWVudCBjYWNoZSBtdXN0IGFsd2F5cyBiZSBjbG9uZWQgYW5kIG5ldmVyIHVzZWQKCQkJCQkJLy8gaW4gcGxhY2UuCgkJCQkJCXJlc3VsdHMuY2FjaGVhYmxlIHx8IChsID4gMSAmJiBpIDwgbGFzdEluZGV4KSA/CgkJCQkJCQlqUXVlcnkuY2xvbmUoIGZyYWdtZW50LCB0cnVlLCB0cnVlICkgOgoJCQkJCQkJZnJhZ21lbnQKCQkJCQkpOwoJCQkJfQoJCQl9CgoJCQlpZiAoIHNjcmlwdHMubGVuZ3RoICkgewoJCQkJalF1ZXJ5LmVhY2goIHNjcmlwdHMsIGV2YWxTY3JpcHQgKTsKCQkJfQoJCX0KCgkJcmV0dXJuIHRoaXM7Cgl9Cn0pOwoKZnVuY3Rpb24gcm9vdCggZWxlbSwgY3VyICkgewoJcmV0dXJuIGpRdWVyeS5ub2RlTmFtZShlbGVtLCAidGFibGUiKSA/CgkJKGVsZW0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRib2R5IilbMF0gfHwKCQllbGVtLmFwcGVuZENoaWxkKGVsZW0ub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0Ym9keSIpKSkgOgoJCWVsZW07Cn0KCmZ1bmN0aW9uIGNsb25lQ29weUV2ZW50KCBzcmMsIGRlc3QgKSB7CgoJaWYgKCBkZXN0Lm5vZGVUeXBlICE9PSAxIHx8ICFqUXVlcnkuaGFzRGF0YSggc3JjICkgKSB7CgkJcmV0dXJuOwoJfQoKCXZhciBpbnRlcm5hbEtleSA9IGpRdWVyeS5leHBhbmRvLAoJCW9sZERhdGEgPSBqUXVlcnkuZGF0YSggc3JjICksCgkJY3VyRGF0YSA9IGpRdWVyeS5kYXRhKCBkZXN0LCBvbGREYXRhICk7CgoJLy8gU3dpdGNoIHRvIHVzZSB0aGUgaW50ZXJuYWwgZGF0YSBvYmplY3QsIGlmIGl0IGV4aXN0cywgZm9yIHRoZSBuZXh0CgkvLyBzdGFnZSBvZiBkYXRhIGNvcHlpbmcKCWlmICggKG9sZERhdGEgPSBvbGREYXRhWyBpbnRlcm5hbEtleSBdKSApIHsKCQl2YXIgZXZlbnRzID0gb2xkRGF0YS5ldmVudHM7CgkJCQljdXJEYXRhID0gY3VyRGF0YVsgaW50ZXJuYWxLZXkgXSA9IGpRdWVyeS5leHRlbmQoe30sIG9sZERhdGEpOwoKCQlpZiAoIGV2ZW50cyApIHsKCQkJZGVsZXRlIGN1ckRhdGEuaGFuZGxlOwoJCQljdXJEYXRhLmV2ZW50cyA9IHt9OwoKCQkJZm9yICggdmFyIHR5cGUgaW4gZXZlbnRzICkgewoJCQkJZm9yICggdmFyIGkgPSAwLCBsID0gZXZlbnRzWyB0eXBlIF0ubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCQkJCWpRdWVyeS5ldmVudC5hZGQoIGRlc3QsIHR5cGUgKyAoIGV2ZW50c1sgdHlwZSBdWyBpIF0ubmFtZXNwYWNlID8gIi4iIDogIiIgKSArIGV2ZW50c1sgdHlwZSBdWyBpIF0ubmFtZXNwYWNlLCBldmVudHNbIHR5cGUgXVsgaSBdLCBldmVudHNbIHR5cGUgXVsgaSBdLmRhdGEgKTsKCQkJCX0KCQkJfQoJCX0KCX0KfQoKZnVuY3Rpb24gY2xvbmVGaXhBdHRyaWJ1dGVzKHNyYywgZGVzdCkgewoJLy8gV2UgZG8gbm90IG5lZWQgdG8gZG8gYW55dGhpbmcgZm9yIG5vbi1FbGVtZW50cwoJaWYgKCBkZXN0Lm5vZGVUeXBlICE9PSAxICkgewoJCXJldHVybjsKCX0KCgl2YXIgbm9kZU5hbWUgPSBkZXN0Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7CgoJLy8gY2xlYXJBdHRyaWJ1dGVzIHJlbW92ZXMgdGhlIGF0dHJpYnV0ZXMsIHdoaWNoIHdlIGRvbid0IHdhbnQsCgkvLyBidXQgYWxzbyByZW1vdmVzIHRoZSBhdHRhY2hFdmVudCBldmVudHMsIHdoaWNoIHdlICpkbyogd2FudAoJZGVzdC5jbGVhckF0dHJpYnV0ZXMoKTsKCgkvLyBtZXJnZUF0dHJpYnV0ZXMsIGluIGNvbnRyYXN0LCBvbmx5IG1lcmdlcyBiYWNrIG9uIHRoZQoJLy8gb3JpZ2luYWwgYXR0cmlidXRlcywgbm90IHRoZSBldmVudHMKCWRlc3QubWVyZ2VBdHRyaWJ1dGVzKHNyYyk7CgoJLy8gSUU2LTggZmFpbCB0byBjbG9uZSBjaGlsZHJlbiBpbnNpZGUgb2JqZWN0IGVsZW1lbnRzIHRoYXQgdXNlCgkvLyB0aGUgcHJvcHJpZXRhcnkgY2xhc3NpZCBhdHRyaWJ1dGUgdmFsdWUgKHJhdGhlciB0aGFuIHRoZSB0eXBlCgkvLyBhdHRyaWJ1dGUpIHRvIGlkZW50aWZ5IHRoZSB0eXBlIG9mIGNvbnRlbnQgdG8gZGlzcGxheQoJaWYgKCBub2RlTmFtZSA9PT0gIm9iamVjdCIgKSB7CgkJZGVzdC5vdXRlckhUTUwgPSBzcmMub3V0ZXJIVE1MOwoKCX0gZWxzZSBpZiAoIG5vZGVOYW1lID09PSAiaW5wdXQiICYmIChzcmMudHlwZSA9PT0gImNoZWNrYm94IiB8fCBzcmMudHlwZSA9PT0gInJhZGlvIikgKSB7CgkJLy8gSUU2LTggZmFpbHMgdG8gcGVyc2lzdCB0aGUgY2hlY2tlZCBzdGF0ZSBvZiBhIGNsb25lZCBjaGVja2JveAoJCS8vIG9yIHJhZGlvIGJ1dHRvbi4gV29yc2UsIElFNi03IGZhaWwgdG8gZ2l2ZSB0aGUgY2xvbmVkIGVsZW1lbnQKCQkvLyBhIGNoZWNrZWQgYXBwZWFyYW5jZSBpZiB0aGUgZGVmYXVsdENoZWNrZWQgdmFsdWUgaXNuJ3QgYWxzbyBzZXQKCQlpZiAoIHNyYy5jaGVja2VkICkgewoJCQlkZXN0LmRlZmF1bHRDaGVja2VkID0gZGVzdC5jaGVja2VkID0gc3JjLmNoZWNrZWQ7CgkJfQoKCQkvLyBJRTYtNyBnZXQgY29uZnVzZWQgYW5kIGVuZCB1cCBzZXR0aW5nIHRoZSB2YWx1ZSBvZiBhIGNsb25lZAoJCS8vIGNoZWNrYm94L3JhZGlvIGJ1dHRvbiB0byBhbiBlbXB0eSBzdHJpbmcgaW5zdGVhZCBvZiAib24iCgkJaWYgKCBkZXN0LnZhbHVlICE9PSBzcmMudmFsdWUgKSB7CgkJCWRlc3QudmFsdWUgPSBzcmMudmFsdWU7CgkJfQoKCS8vIElFNi04IGZhaWxzIHRvIHJldHVybiB0aGUgc2VsZWN0ZWQgb3B0aW9uIHRvIHRoZSBkZWZhdWx0IHNlbGVjdGVkCgkvLyBzdGF0ZSB3aGVuIGNsb25pbmcgb3B0aW9ucwoJfSBlbHNlIGlmICggbm9kZU5hbWUgPT09ICJvcHRpb24iICkgewoJCWRlc3Quc2VsZWN0ZWQgPSBzcmMuZGVmYXVsdFNlbGVjdGVkOwoKCS8vIElFNi04IGZhaWxzIHRvIHNldCB0aGUgZGVmYXVsdFZhbHVlIHRvIHRoZSBjb3JyZWN0IHZhbHVlIHdoZW4KCS8vIGNsb25pbmcgb3RoZXIgdHlwZXMgb2YgaW5wdXQgZmllbGRzCgl9IGVsc2UgaWYgKCBub2RlTmFtZSA9PT0gImlucHV0IiB8fCBub2RlTmFtZSA9PT0gInRleHRhcmVhIiApIHsKCQlkZXN0LmRlZmF1bHRWYWx1ZSA9IHNyYy5kZWZhdWx0VmFsdWU7Cgl9CgoJLy8gRXZlbnQgZGF0YSBnZXRzIHJlZmVyZW5jZWQgaW5zdGVhZCBvZiBjb3BpZWQgaWYgdGhlIGV4cGFuZG8KCS8vIGdldHMgY29waWVkIHRvbwoJZGVzdC5yZW1vdmVBdHRyaWJ1dGUoIGpRdWVyeS5leHBhbmRvICk7Cn0KCmpRdWVyeS5idWlsZEZyYWdtZW50ID0gZnVuY3Rpb24oIGFyZ3MsIG5vZGVzLCBzY3JpcHRzICkgewoJdmFyIGZyYWdtZW50LCBjYWNoZWFibGUsIGNhY2hlcmVzdWx0cywKCQlkb2MgPSAobm9kZXMgJiYgbm9kZXNbMF0gPyBub2Rlc1swXS5vd25lckRvY3VtZW50IHx8IG5vZGVzWzBdIDogZG9jdW1lbnQpOwoKCS8vIE9ubHkgY2FjaGUgInNtYWxsIiAoMS8yIEtCKSBIVE1MIHN0cmluZ3MgdGhhdCBhcmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBtYWluIGRvY3VtZW50CgkvLyBDbG9uaW5nIG9wdGlvbnMgbG9zZXMgdGhlIHNlbGVjdGVkIHN0YXRlLCBzbyBkb24ndCBjYWNoZSB0aGVtCgkvLyBJRSA2IGRvZXNuJ3QgbGlrZSBpdCB3aGVuIHlvdSBwdXQgPG9iamVjdD4gb3IgPGVtYmVkPiBlbGVtZW50cyBpbiBhIGZyYWdtZW50CgkvLyBBbHNvLCBXZWJLaXQgZG9lcyBub3QgY2xvbmUgJ2NoZWNrZWQnIGF0dHJpYnV0ZXMgb24gY2xvbmVOb2RlLCBzbyBkb24ndCBjYWNoZQoJaWYgKCBhcmdzLmxlbmd0aCA9PT0gMSAmJiB0eXBlb2YgYXJnc1swXSA9PT0gInN0cmluZyIgJiYgYXJnc1swXS5sZW5ndGggPCA1MTIgJiYgZG9jID09PSBkb2N1bWVudCAmJgoJCWFyZ3NbMF0uY2hhckF0KDApID09PSAiPCIgJiYgIXJub2NhY2hlLnRlc3QoIGFyZ3NbMF0gKSAmJiAoalF1ZXJ5LnN1cHBvcnQuY2hlY2tDbG9uZSB8fCAhcmNoZWNrZWQudGVzdCggYXJnc1swXSApKSApIHsKCgkJY2FjaGVhYmxlID0gdHJ1ZTsKCQljYWNoZXJlc3VsdHMgPSBqUXVlcnkuZnJhZ21lbnRzWyBhcmdzWzBdIF07CgkJaWYgKCBjYWNoZXJlc3VsdHMgKSB7CgkJCWlmICggY2FjaGVyZXN1bHRzICE9PSAxICkgewoJCQkJZnJhZ21lbnQgPSBjYWNoZXJlc3VsdHM7CgkJCX0KCQl9Cgl9CgoJaWYgKCAhZnJhZ21lbnQgKSB7CgkJZnJhZ21lbnQgPSBkb2MuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwoJCWpRdWVyeS5jbGVhbiggYXJncywgZG9jLCBmcmFnbWVudCwgc2NyaXB0cyApOwoJfQoKCWlmICggY2FjaGVhYmxlICkgewoJCWpRdWVyeS5mcmFnbWVudHNbIGFyZ3NbMF0gXSA9IGNhY2hlcmVzdWx0cyA/IGZyYWdtZW50IDogMTsKCX0KCglyZXR1cm4geyBmcmFnbWVudDogZnJhZ21lbnQsIGNhY2hlYWJsZTogY2FjaGVhYmxlIH07Cn07CgpqUXVlcnkuZnJhZ21lbnRzID0ge307CgpqUXVlcnkuZWFjaCh7CglhcHBlbmRUbzogImFwcGVuZCIsCglwcmVwZW5kVG86ICJwcmVwZW5kIiwKCWluc2VydEJlZm9yZTogImJlZm9yZSIsCglpbnNlcnRBZnRlcjogImFmdGVyIiwKCXJlcGxhY2VBbGw6ICJyZXBsYWNlV2l0aCIKfSwgZnVuY3Rpb24oIG5hbWUsIG9yaWdpbmFsICkgewoJalF1ZXJ5LmZuWyBuYW1lIF0gPSBmdW5jdGlvbiggc2VsZWN0b3IgKSB7CgkJdmFyIHJldCA9IFtdLAoJCQlpbnNlcnQgPSBqUXVlcnkoIHNlbGVjdG9yICksCgkJCXBhcmVudCA9IHRoaXMubGVuZ3RoID09PSAxICYmIHRoaXNbMF0ucGFyZW50Tm9kZTsKCgkJaWYgKCBwYXJlbnQgJiYgcGFyZW50Lm5vZGVUeXBlID09PSAxMSAmJiBwYXJlbnQuY2hpbGROb2Rlcy5sZW5ndGggPT09IDEgJiYgaW5zZXJ0Lmxlbmd0aCA9PT0gMSApIHsKCQkJaW5zZXJ0WyBvcmlnaW5hbCBdKCB0aGlzWzBdICk7CgkJCXJldHVybiB0aGlzOwoKCQl9IGVsc2UgewoJCQlmb3IgKCB2YXIgaSA9IDAsIGwgPSBpbnNlcnQubGVuZ3RoOyBpIDwgbDsgaSsrICkgewoJCQkJdmFyIGVsZW1zID0gKGkgPiAwID8gdGhpcy5jbG9uZSh0cnVlKSA6IHRoaXMpLmdldCgpOwoJCQkJalF1ZXJ5KCBpbnNlcnRbaV0gKVsgb3JpZ2luYWwgXSggZWxlbXMgKTsKCQkJCXJldCA9IHJldC5jb25jYXQoIGVsZW1zICk7CgkJCX0KCgkJCXJldHVybiB0aGlzLnB1c2hTdGFjayggcmV0LCBuYW1lLCBpbnNlcnQuc2VsZWN0b3IgKTsKCQl9Cgl9Owp9KTsKCmZ1bmN0aW9uIGdldEFsbCggZWxlbSApIHsKCWlmICggImdldEVsZW1lbnRzQnlUYWdOYW1lIiBpbiBlbGVtICkgewoJCXJldHVybiBlbGVtLmdldEVsZW1lbnRzQnlUYWdOYW1lKCAiKiIgKTsKCQoJfSBlbHNlIGlmICggInF1ZXJ5U2VsZWN0b3JBbGwiIGluIGVsZW0gKSB7CgkJcmV0dXJuIGVsZW0ucXVlcnlTZWxlY3RvckFsbCggIioiICk7CgoJfSBlbHNlIHsKCQlyZXR1cm4gW107Cgl9Cn0KCmpRdWVyeS5leHRlbmQoewoJY2xvbmU6IGZ1bmN0aW9uKCBlbGVtLCBkYXRhQW5kRXZlbnRzLCBkZWVwRGF0YUFuZEV2ZW50cyApIHsKCQl2YXIgY2xvbmUgPSBlbGVtLmNsb25lTm9kZSh0cnVlKSwKCQkJCXNyY0VsZW1lbnRzLAoJCQkJZGVzdEVsZW1lbnRzLAoJCQkJaTsKCgkJaWYgKCAoIWpRdWVyeS5zdXBwb3J0Lm5vQ2xvbmVFdmVudCB8fCAhalF1ZXJ5LnN1cHBvcnQubm9DbG9uZUNoZWNrZWQpICYmCgkJCQkoZWxlbS5ub2RlVHlwZSA9PT0gMSB8fCBlbGVtLm5vZGVUeXBlID09PSAxMSkgJiYgIWpRdWVyeS5pc1hNTERvYyhlbGVtKSApIHsKCQkJLy8gSUUgY29waWVzIGV2ZW50cyBib3VuZCB2aWEgYXR0YWNoRXZlbnQgd2hlbiB1c2luZyBjbG9uZU5vZGUuCgkJCS8vIENhbGxpbmcgZGV0YWNoRXZlbnQgb24gdGhlIGNsb25lIHdpbGwgYWxzbyByZW1vdmUgdGhlIGV2ZW50cwoJCQkvLyBmcm9tIHRoZSBvcmlnaW5hbC4gSW4gb3JkZXIgdG8gZ2V0IGFyb3VuZCB0aGlzLCB3ZSB1c2Ugc29tZQoJCQkvLyBwcm9wcmlldGFyeSBtZXRob2RzIHRvIGNsZWFyIHRoZSBldmVudHMuIFRoYW5rcyB0byBNb29Ub29scwoJCQkvLyBndXlzIGZvciB0aGlzIGhvdG5lc3MuCgoJCQljbG9uZUZpeEF0dHJpYnV0ZXMoIGVsZW0sIGNsb25lICk7CgoJCQkvLyBVc2luZyBTaXp6bGUgaGVyZSBpcyBjcmF6eSBzbG93LCBzbyB3ZSB1c2UgZ2V0RWxlbWVudHNCeVRhZ05hbWUKCQkJLy8gaW5zdGVhZAoJCQlzcmNFbGVtZW50cyA9IGdldEFsbCggZWxlbSApOwoJCQlkZXN0RWxlbWVudHMgPSBnZXRBbGwoIGNsb25lICk7CgoJCQkvLyBXZWlyZCBpdGVyYXRpb24gYmVjYXVzZSBJRSB3aWxsIHJlcGxhY2UgdGhlIGxlbmd0aCBwcm9wZXJ0eQoJCQkvLyB3aXRoIGFuIGVsZW1lbnQgaWYgeW91IGFyZSBjbG9uaW5nIHRoZSBib2R5IGFuZCBvbmUgb2YgdGhlCgkJCS8vIGVsZW1lbnRzIG9uIHRoZSBwYWdlIGhhcyBhIG5hbWUgb3IgaWQgb2YgImxlbmd0aCIKCQkJZm9yICggaSA9IDA7IHNyY0VsZW1lbnRzW2ldOyArK2kgKSB7CgkJCQljbG9uZUZpeEF0dHJpYnV0ZXMoIHNyY0VsZW1lbnRzW2ldLCBkZXN0RWxlbWVudHNbaV0gKTsKCQkJfQoJCX0KCgkJLy8gQ29weSB0aGUgZXZlbnRzIGZyb20gdGhlIG9yaWdpbmFsIHRvIHRoZSBjbG9uZQoJCWlmICggZGF0YUFuZEV2ZW50cyApIHsKCQkJY2xvbmVDb3B5RXZlbnQoIGVsZW0sIGNsb25lICk7CgoJCQlpZiAoIGRlZXBEYXRhQW5kRXZlbnRzICkgewoJCQkJc3JjRWxlbWVudHMgPSBnZXRBbGwoIGVsZW0gKTsKCQkJCWRlc3RFbGVtZW50cyA9IGdldEFsbCggY2xvbmUgKTsKCgkJCQlmb3IgKCBpID0gMDsgc3JjRWxlbWVudHNbaV07ICsraSApIHsKCQkJCQljbG9uZUNvcHlFdmVudCggc3JjRWxlbWVudHNbaV0sIGRlc3RFbGVtZW50c1tpXSApOwoJCQkJfQoJCQl9CgkJfQoKCQkvLyBSZXR1cm4gdGhlIGNsb25lZCBzZXQKCQlyZXR1cm4gY2xvbmU7Cn0sCgljbGVhbjogZnVuY3Rpb24oIGVsZW1zLCBjb250ZXh0LCBmcmFnbWVudCwgc2NyaXB0cyApIHsKCQljb250ZXh0ID0gY29udGV4dCB8fCBkb2N1bWVudDsKCgkJLy8gIWNvbnRleHQuY3JlYXRlRWxlbWVudCBmYWlscyBpbiBJRSB3aXRoIGFuIGVycm9yIGJ1dCByZXR1cm5zIHR5cGVvZiAnb2JqZWN0JwoJCWlmICggdHlwZW9mIGNvbnRleHQuY3JlYXRlRWxlbWVudCA9PT0gInVuZGVmaW5lZCIgKSB7CgkJCWNvbnRleHQgPSBjb250ZXh0Lm93bmVyRG9jdW1lbnQgfHwgY29udGV4dFswXSAmJiBjb250ZXh0WzBdLm93bmVyRG9jdW1lbnQgfHwgZG9jdW1lbnQ7CgkJfQoKCQl2YXIgcmV0ID0gW107CgoJCWZvciAoIHZhciBpID0gMCwgZWxlbTsgKGVsZW0gPSBlbGVtc1tpXSkgIT0gbnVsbDsgaSsrICkgewoJCQlpZiAoIHR5cGVvZiBlbGVtID09PSAibnVtYmVyIiApIHsKCQkJCWVsZW0gKz0gIiI7CgkJCX0KCgkJCWlmICggIWVsZW0gKSB7CgkJCQljb250aW51ZTsKCQkJfQoKCQkJLy8gQ29udmVydCBodG1sIHN0cmluZyBpbnRvIERPTSBub2RlcwoJCQlpZiAoIHR5cGVvZiBlbGVtID09PSAic3RyaW5nIiAmJiAhcmh0bWwudGVzdCggZWxlbSApICkgewoJCQkJZWxlbSA9IGNvbnRleHQuY3JlYXRlVGV4dE5vZGUoIGVsZW0gKTsKCgkJCX0gZWxzZSBpZiAoIHR5cGVvZiBlbGVtID09PSAic3RyaW5nIiApIHsKCQkJCS8vIEZpeCAiWEhUTUwiLXN0eWxlIHRhZ3MgaW4gYWxsIGJyb3dzZXJzCgkJCQllbGVtID0gZWxlbS5yZXBsYWNlKHJ4aHRtbFRhZywgIjwkMT48LyQyPiIpOwoKCQkJCS8vIFRyaW0gd2hpdGVzcGFjZSwgb3RoZXJ3aXNlIGluZGV4T2Ygd29uJ3Qgd29yayBhcyBleHBlY3RlZAoJCQkJdmFyIHRhZyA9IChydGFnTmFtZS5leGVjKCBlbGVtICkgfHwgWyIiLCAiIl0pWzFdLnRvTG93ZXJDYXNlKCksCgkJCQkJd3JhcCA9IHdyYXBNYXBbIHRhZyBdIHx8IHdyYXBNYXAuX2RlZmF1bHQsCgkJCQkJZGVwdGggPSB3cmFwWzBdLAoJCQkJCWRpdiA9IGNvbnRleHQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CgoJCQkJLy8gR28gdG8gaHRtbCBhbmQgYmFjaywgdGhlbiBwZWVsIG9mZiBleHRyYSB3cmFwcGVycwoJCQkJZGl2LmlubmVySFRNTCA9IHdyYXBbMV0gKyBlbGVtICsgd3JhcFsyXTsKCgkJCQkvLyBNb3ZlIHRvIHRoZSByaWdodCBkZXB0aAoJCQkJd2hpbGUgKCBkZXB0aC0tICkgewoJCQkJCWRpdiA9IGRpdi5sYXN0Q2hpbGQ7CgkJCQl9CgoJCQkJLy8gUmVtb3ZlIElFJ3MgYXV0b2luc2VydGVkIDx0Ym9keT4gZnJvbSB0YWJsZSBmcmFnbWVudHMKCQkJCWlmICggIWpRdWVyeS5zdXBwb3J0LnRib2R5ICkgewoKCQkJCQkvLyBTdHJpbmcgd2FzIGEgPHRhYmxlPiwgKm1heSogaGF2ZSBzcHVyaW91cyA8dGJvZHk+CgkJCQkJdmFyIGhhc0JvZHkgPSBydGJvZHkudGVzdChlbGVtKSwKCQkJCQkJdGJvZHkgPSB0YWcgPT09ICJ0YWJsZSIgJiYgIWhhc0JvZHkgPwoJCQkJCQkJZGl2LmZpcnN0Q2hpbGQgJiYgZGl2LmZpcnN0Q2hpbGQuY2hpbGROb2RlcyA6CgoJCQkJCQkJLy8gU3RyaW5nIHdhcyBhIGJhcmUgPHRoZWFkPiBvciA8dGZvb3Q+CgkJCQkJCQl3cmFwWzFdID09PSAiPHRhYmxlPiIgJiYgIWhhc0JvZHkgPwoJCQkJCQkJCWRpdi5jaGlsZE5vZGVzIDoKCQkJCQkJCQlbXTsKCgkJCQkJZm9yICggdmFyIGogPSB0Ym9keS5sZW5ndGggLSAxOyBqID49IDAgOyAtLWogKSB7CgkJCQkJCWlmICggalF1ZXJ5Lm5vZGVOYW1lKCB0Ym9keVsgaiBdLCAidGJvZHkiICkgJiYgIXRib2R5WyBqIF0uY2hpbGROb2Rlcy5sZW5ndGggKSB7CgkJCQkJCQl0Ym9keVsgaiBdLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoIHRib2R5WyBqIF0gKTsKCQkJCQkJfQoJCQkJCX0KCgkJCQl9CgoJCQkJLy8gSUUgY29tcGxldGVseSBraWxscyBsZWFkaW5nIHdoaXRlc3BhY2Ugd2hlbiBpbm5lckhUTUwgaXMgdXNlZAoJCQkJaWYgKCAhalF1ZXJ5LnN1cHBvcnQubGVhZGluZ1doaXRlc3BhY2UgJiYgcmxlYWRpbmdXaGl0ZXNwYWNlLnRlc3QoIGVsZW0gKSApIHsKCQkJCQlkaXYuaW5zZXJ0QmVmb3JlKCBjb250ZXh0LmNyZWF0ZVRleHROb2RlKCBybGVhZGluZ1doaXRlc3BhY2UuZXhlYyhlbGVtKVswXSApLCBkaXYuZmlyc3RDaGlsZCApOwoJCQkJfQoKCQkJCWVsZW0gPSBkaXYuY2hpbGROb2RlczsKCQkJfQoKCQkJaWYgKCBlbGVtLm5vZGVUeXBlICkgewoJCQkJcmV0LnB1c2goIGVsZW0gKTsKCQkJfSBlbHNlIHsKCQkJCXJldCA9IGpRdWVyeS5tZXJnZSggcmV0LCBlbGVtICk7CgkJCX0KCQl9CgoJCWlmICggZnJhZ21lbnQgKSB7CgkJCWZvciAoIGkgPSAwOyByZXRbaV07IGkrKyApIHsKCQkJCWlmICggc2NyaXB0cyAmJiBqUXVlcnkubm9kZU5hbWUoIHJldFtpXSwgInNjcmlwdCIgKSAmJiAoIXJldFtpXS50eXBlIHx8IHJldFtpXS50eXBlLnRvTG93ZXJDYXNlKCkgPT09ICJ0ZXh0L2phdmFzY3JpcHQiKSApIHsKCQkJCQlzY3JpcHRzLnB1c2goIHJldFtpXS5wYXJlbnROb2RlID8gcmV0W2ldLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoIHJldFtpXSApIDogcmV0W2ldICk7CgoJCQkJfSBlbHNlIHsKCQkJCQlpZiAoIHJldFtpXS5ub2RlVHlwZSA9PT0gMSApIHsKCQkJCQkJcmV0LnNwbGljZS5hcHBseSggcmV0LCBbaSArIDEsIDBdLmNvbmNhdChqUXVlcnkubWFrZUFycmF5KHJldFtpXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IikpKSApOwoJCQkJCX0KCQkJCQlmcmFnbWVudC5hcHBlbmRDaGlsZCggcmV0W2ldICk7CgkJCQl9CgkJCX0KCQl9CgoJCXJldHVybiByZXQ7Cgl9LAoKCWNsZWFuRGF0YTogZnVuY3Rpb24oIGVsZW1zICkgewoJCXZhciBkYXRhLCBpZCwgY2FjaGUgPSBqUXVlcnkuY2FjaGUsIGludGVybmFsS2V5ID0galF1ZXJ5LmV4cGFuZG8sIHNwZWNpYWwgPSBqUXVlcnkuZXZlbnQuc3BlY2lhbCwKCQkJZGVsZXRlRXhwYW5kbyA9IGpRdWVyeS5zdXBwb3J0LmRlbGV0ZUV4cGFuZG87CgoJCWZvciAoIHZhciBpID0gMCwgZWxlbTsgKGVsZW0gPSBlbGVtc1tpXSkgIT0gbnVsbDsgaSsrICkgewoJCQlpZiAoIGVsZW0ubm9kZU5hbWUgJiYgalF1ZXJ5Lm5vRGF0YVtlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldICkgewoJCQkJY29udGludWU7CgkJCX0KCgkJCWlkID0gZWxlbVsgalF1ZXJ5LmV4cGFuZG8gXTsKCgkJCWlmICggaWQgKSB7CgkJCQlkYXRhID0gY2FjaGVbIGlkIF0gJiYgY2FjaGVbIGlkIF1bIGludGVybmFsS2V5IF07CgoJCQkJaWYgKCBkYXRhICYmIGRhdGEuZXZlbnRzICkgewoJCQkJCWZvciAoIHZhciB0eXBlIGluIGRhdGEuZXZlbnRzICkgewoJCQkJCQlpZiAoIHNwZWNpYWxbIHR5cGUgXSApIHsKCQkJCQkJCWpRdWVyeS5ldmVudC5yZW1vdmUoIGVsZW0sIHR5cGUgKTsKCgkJCQkJCS8vIFRoaXMgaXMgYSBzaG9ydGN1dCB0byBhdm9pZCBqUXVlcnkuZXZlbnQucmVtb3ZlJ3Mgb3ZlcmhlYWQKCQkJCQkJfSBlbHNlIHsKCQkJCQkJCWpRdWVyeS5yZW1vdmVFdmVudCggZWxlbSwgdHlwZSwgZGF0YS5oYW5kbGUgKTsKCQkJCQkJfQoJCQkJCX0KCgkJCQkJLy8gTnVsbCB0aGUgRE9NIHJlZmVyZW5jZSB0byBhdm9pZCBJRTYvNy84IGxlYWsgKCM3MDU0KQoJCQkJCWlmICggZGF0YS5oYW5kbGUgKSB7CgkJCQkJCWRhdGEuaGFuZGxlLmVsZW0gPSBudWxsOwoJCQkJCX0KCQkJCX0KCgkJCQlpZiAoIGRlbGV0ZUV4cGFuZG8gKSB7CgkJCQkJZGVsZXRlIGVsZW1bIGpRdWVyeS5leHBhbmRvIF07CgoJCQkJfSBlbHNlIGlmICggZWxlbS5yZW1vdmVBdHRyaWJ1dGUgKSB7CgkJCQkJZWxlbS5yZW1vdmVBdHRyaWJ1dGUoIGpRdWVyeS5leHBhbmRvICk7CgkJCQl9CgoJCQkJZGVsZXRlIGNhY2hlWyBpZCBdOwoJCQl9CgkJfQoJfQp9KTsKCmZ1bmN0aW9uIGV2YWxTY3JpcHQoIGksIGVsZW0gKSB7CglpZiAoIGVsZW0uc3JjICkgewoJCWpRdWVyeS5hamF4KHsKCQkJdXJsOiBlbGVtLnNyYywKCQkJYXN5bmM6IGZhbHNlLAoJCQlkYXRhVHlwZTogInNjcmlwdCIKCQl9KTsKCX0gZWxzZSB7CgkJalF1ZXJ5Lmdsb2JhbEV2YWwoIGVsZW0udGV4dCB8fCBlbGVtLnRleHRDb250ZW50IHx8IGVsZW0uaW5uZXJIVE1MIHx8ICIiICk7Cgl9CgoJaWYgKCBlbGVtLnBhcmVudE5vZGUgKSB7CgkJZWxlbS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKCBlbGVtICk7Cgl9Cn0KCgoKCnZhciByYWxwaGEgPSAvYWxwaGFcKFteKV0qXCkvaSwKCXJvcGFjaXR5ID0gL29wYWNpdHk9KFteKV0qKS8sCglyZGFzaEFscGhhID0gLy0oW2Etel0pL2lnLAoJcnVwcGVyID0gLyhbQS1aXSkvZywKCXJudW1weCA9IC9eLT9cZCsoPzpweCk/JC9pLAoJcm51bSA9IC9eLT9cZC8sCgoJY3NzU2hvdyA9IHsgcG9zaXRpb246ICJhYnNvbHV0ZSIsIHZpc2liaWxpdHk6ICJoaWRkZW4iLCBkaXNwbGF5OiAiYmxvY2siIH0sCgljc3NXaWR0aCA9IFsgIkxlZnQiLCAiUmlnaHQiIF0sCgljc3NIZWlnaHQgPSBbICJUb3AiLCAiQm90dG9tIiBdLAoJY3VyQ1NTLAoKCWdldENvbXB1dGVkU3R5bGUsCgljdXJyZW50U3R5bGUsCgoJZmNhbWVsQ2FzZSA9IGZ1bmN0aW9uKCBhbGwsIGxldHRlciApIHsKCQlyZXR1cm4gbGV0dGVyLnRvVXBwZXJDYXNlKCk7Cgl9OwoKalF1ZXJ5LmZuLmNzcyA9IGZ1bmN0aW9uKCBuYW1lLCB2YWx1ZSApIHsKCS8vIFNldHRpbmcgJ3VuZGVmaW5lZCcgaXMgYSBuby1vcAoJaWYgKCBhcmd1bWVudHMubGVuZ3RoID09PSAyICYmIHZhbHVlID09PSB1bmRlZmluZWQgKSB7CgkJcmV0dXJuIHRoaXM7Cgl9CgoJcmV0dXJuIGpRdWVyeS5hY2Nlc3MoIHRoaXMsIG5hbWUsIHZhbHVlLCB0cnVlLCBmdW5jdGlvbiggZWxlbSwgbmFtZSwgdmFsdWUgKSB7CgkJcmV0dXJuIHZhbHVlICE9PSB1bmRlZmluZWQgPwoJCQlqUXVlcnkuc3R5bGUoIGVsZW0sIG5hbWUsIHZhbHVlICkgOgoJCQlqUXVlcnkuY3NzKCBlbGVtLCBuYW1lICk7Cgl9KTsKfTsKCmpRdWVyeS5leHRlbmQoewoJLy8gQWRkIGluIHN0eWxlIHByb3BlcnR5IGhvb2tzIGZvciBvdmVycmlkaW5nIHRoZSBkZWZhdWx0CgkvLyBiZWhhdmlvciBvZiBnZXR0aW5nIGFuZCBzZXR0aW5nIGEgc3R5bGUgcHJvcGVydHkKCWNzc0hvb2tzOiB7CgkJb3BhY2l0eTogewoJCQlnZXQ6IGZ1bmN0aW9uKCBlbGVtLCBjb21wdXRlZCApIHsKCQkJCWlmICggY29tcHV0ZWQgKSB7CgkJCQkJLy8gV2Ugc2hvdWxkIGFsd2F5cyBnZXQgYSBudW1iZXIgYmFjayBmcm9tIG9wYWNpdHkKCQkJCQl2YXIgcmV0ID0gY3VyQ1NTKCBlbGVtLCAib3BhY2l0eSIsICJvcGFjaXR5IiApOwoJCQkJCXJldHVybiByZXQgPT09ICIiID8gIjEiIDogcmV0OwoKCQkJCX0gZWxzZSB7CgkJCQkJcmV0dXJuIGVsZW0uc3R5bGUub3BhY2l0eTsKCQkJCX0KCQkJfQoJCX0KCX0sCgoJLy8gRXhjbHVkZSB0aGUgZm9sbG93aW5nIGNzcyBwcm9wZXJ0aWVzIHRvIGFkZCBweAoJY3NzTnVtYmVyOiB7CgkJInpJbmRleCI6IHRydWUsCgkJImZvbnRXZWlnaHQiOiB0cnVlLAoJCSJvcGFjaXR5IjogdHJ1ZSwKCQkiem9vbSI6IHRydWUsCgkJImxpbmVIZWlnaHQiOiB0cnVlCgl9LAoKCS8vIEFkZCBpbiBwcm9wZXJ0aWVzIHdob3NlIG5hbWVzIHlvdSB3aXNoIHRvIGZpeCBiZWZvcmUKCS8vIHNldHRpbmcgb3IgZ2V0dGluZyB0aGUgdmFsdWUKCWNzc1Byb3BzOiB7CgkJLy8gbm9ybWFsaXplIGZsb2F0IGNzcyBwcm9wZXJ0eQoJCSJmbG9hdCI6IGpRdWVyeS5zdXBwb3J0LmNzc0Zsb2F0ID8gImNzc0Zsb2F0IiA6ICJzdHlsZUZsb2F0IgoJfSwKCgkvLyBHZXQgYW5kIHNldCB0aGUgc3R5bGUgcHJvcGVydHkgb24gYSBET00gTm9kZQoJc3R5bGU6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCB2YWx1ZSwgZXh0cmEgKSB7CgkJLy8gRG9uJ3Qgc2V0IHN0eWxlcyBvbiB0ZXh0IGFuZCBjb21tZW50IG5vZGVzCgkJaWYgKCAhZWxlbSB8fCBlbGVtLm5vZGVUeXBlID09PSAzIHx8IGVsZW0ubm9kZVR5cGUgPT09IDggfHwgIWVsZW0uc3R5bGUgKSB7CgkJCXJldHVybjsKCQl9CgoJCS8vIE1ha2Ugc3VyZSB0aGF0IHdlJ3JlIHdvcmtpbmcgd2l0aCB0aGUgcmlnaHQgbmFtZQoJCXZhciByZXQsIG9yaWdOYW1lID0galF1ZXJ5LmNhbWVsQ2FzZSggbmFtZSApLAoJCQlzdHlsZSA9IGVsZW0uc3R5bGUsIGhvb2tzID0galF1ZXJ5LmNzc0hvb2tzWyBvcmlnTmFtZSBdOwoKCQluYW1lID0galF1ZXJ5LmNzc1Byb3BzWyBvcmlnTmFtZSBdIHx8IG9yaWdOYW1lOwoKCQkvLyBDaGVjayBpZiB3ZSdyZSBzZXR0aW5nIGEgdmFsdWUKCQlpZiAoIHZhbHVlICE9PSB1bmRlZmluZWQgKSB7CgkJCS8vIE1ha2Ugc3VyZSB0aGF0IE5hTiBhbmQgbnVsbCB2YWx1ZXMgYXJlbid0IHNldC4gU2VlOiAjNzExNgoJCQlpZiAoIHR5cGVvZiB2YWx1ZSA9PT0gIm51bWJlciIgJiYgaXNOYU4oIHZhbHVlICkgfHwgdmFsdWUgPT0gbnVsbCApIHsKCQkJCXJldHVybjsKCQkJfQoKCQkJLy8gSWYgYSBudW1iZXIgd2FzIHBhc3NlZCBpbiwgYWRkICdweCcgdG8gdGhlIChleGNlcHQgZm9yIGNlcnRhaW4gQ1NTIHByb3BlcnRpZXMpCgkJCWlmICggdHlwZW9mIHZhbHVlID09PSAibnVtYmVyIiAmJiAhalF1ZXJ5LmNzc051bWJlclsgb3JpZ05hbWUgXSApIHsKCQkJCXZhbHVlICs9ICJweCI7CgkJCX0KCgkJCS8vIElmIGEgaG9vayB3YXMgcHJvdmlkZWQsIHVzZSB0aGF0IHZhbHVlLCBvdGhlcndpc2UganVzdCBzZXQgdGhlIHNwZWNpZmllZCB2YWx1ZQoJCQlpZiAoICFob29rcyB8fCAhKCJzZXQiIGluIGhvb2tzKSB8fCAodmFsdWUgPSBob29rcy5zZXQoIGVsZW0sIHZhbHVlICkpICE9PSB1bmRlZmluZWQgKSB7CgkJCQkvLyBXcmFwcGVkIHRvIHByZXZlbnQgSUUgZnJvbSB0aHJvd2luZyBlcnJvcnMgd2hlbiAnaW52YWxpZCcgdmFsdWVzIGFyZSBwcm92aWRlZAoJCQkJLy8gRml4ZXMgYnVnICM1NTA5CgkJCQl0cnkgewoJCQkJCXN0eWxlWyBuYW1lIF0gPSB2YWx1ZTsKCQkJCX0gY2F0Y2goZSkge30KCQkJfQoKCQl9IGVsc2UgewoJCQkvLyBJZiBhIGhvb2sgd2FzIHByb3ZpZGVkIGdldCB0aGUgbm9uLWNvbXB1dGVkIHZhbHVlIGZyb20gdGhlcmUKCQkJaWYgKCBob29rcyAmJiAiZ2V0IiBpbiBob29rcyAmJiAocmV0ID0gaG9va3MuZ2V0KCBlbGVtLCBmYWxzZSwgZXh0cmEgKSkgIT09IHVuZGVmaW5lZCApIHsKCQkJCXJldHVybiByZXQ7CgkJCX0KCgkJCS8vIE90aGVyd2lzZSBqdXN0IGdldCB0aGUgdmFsdWUgZnJvbSB0aGUgc3R5bGUgb2JqZWN0CgkJCXJldHVybiBzdHlsZVsgbmFtZSBdOwoJCX0KCX0sCgoJY3NzOiBmdW5jdGlvbiggZWxlbSwgbmFtZSwgZXh0cmEgKSB7CgkJLy8gTWFrZSBzdXJlIHRoYXQgd2UncmUgd29ya2luZyB3aXRoIHRoZSByaWdodCBuYW1lCgkJdmFyIHJldCwgb3JpZ05hbWUgPSBqUXVlcnkuY2FtZWxDYXNlKCBuYW1lICksCgkJCWhvb2tzID0galF1ZXJ5LmNzc0hvb2tzWyBvcmlnTmFtZSBdOwoKCQluYW1lID0galF1ZXJ5LmNzc1Byb3BzWyBvcmlnTmFtZSBdIHx8IG9yaWdOYW1lOwoKCQkvLyBJZiBhIGhvb2sgd2FzIHByb3ZpZGVkIGdldCB0aGUgY29tcHV0ZWQgdmFsdWUgZnJvbSB0aGVyZQoJCWlmICggaG9va3MgJiYgImdldCIgaW4gaG9va3MgJiYgKHJldCA9IGhvb2tzLmdldCggZWxlbSwgdHJ1ZSwgZXh0cmEgKSkgIT09IHVuZGVmaW5lZCApIHsKCQkJcmV0dXJuIHJldDsKCgkJLy8gT3RoZXJ3aXNlLCBpZiBhIHdheSB0byBnZXQgdGhlIGNvbXB1dGVkIHZhbHVlIGV4aXN0cywgdXNlIHRoYXQKCQl9IGVsc2UgaWYgKCBjdXJDU1MgKSB7CgkJCXJldHVybiBjdXJDU1MoIGVsZW0sIG5hbWUsIG9yaWdOYW1lICk7CgkJfQoJfSwKCgkvLyBBIG1ldGhvZCBmb3IgcXVpY2tseSBzd2FwcGluZyBpbi9vdXQgQ1NTIHByb3BlcnRpZXMgdG8gZ2V0IGNvcnJlY3QgY2FsY3VsYXRpb25zCglzd2FwOiBmdW5jdGlvbiggZWxlbSwgb3B0aW9ucywgY2FsbGJhY2sgKSB7CgkJdmFyIG9sZCA9IHt9OwoKCQkvLyBSZW1lbWJlciB0aGUgb2xkIHZhbHVlcywgYW5kIGluc2VydCB0aGUgbmV3IG9uZXMKCQlmb3IgKCB2YXIgbmFtZSBpbiBvcHRpb25zICkgewoJCQlvbGRbIG5hbWUgXSA9IGVsZW0uc3R5bGVbIG5hbWUgXTsKCQkJZWxlbS5zdHlsZVsgbmFtZSBdID0gb3B0aW9uc1sgbmFtZSBdOwoJCX0KCgkJY2FsbGJhY2suY2FsbCggZWxlbSApOwoKCQkvLyBSZXZlcnQgdGhlIG9sZCB2YWx1ZXMKCQlmb3IgKCBuYW1lIGluIG9wdGlvbnMgKSB7CgkJCWVsZW0uc3R5bGVbIG5hbWUgXSA9IG9sZFsgbmFtZSBdOwoJCX0KCX0sCgoJY2FtZWxDYXNlOiBmdW5jdGlvbiggc3RyaW5nICkgewoJCXJldHVybiBzdHJpbmcucmVwbGFjZSggcmRhc2hBbHBoYSwgZmNhbWVsQ2FzZSApOwoJfQp9KTsKCi8vIERFUFJFQ0FURUQsIFVzZSBqUXVlcnkuY3NzKCkgaW5zdGVhZApqUXVlcnkuY3VyQ1NTID0galF1ZXJ5LmNzczsKCmpRdWVyeS5lYWNoKFsiaGVpZ2h0IiwgIndpZHRoIl0sIGZ1bmN0aW9uKCBpLCBuYW1lICkgewoJalF1ZXJ5LmNzc0hvb2tzWyBuYW1lIF0gPSB7CgkJZ2V0OiBmdW5jdGlvbiggZWxlbSwgY29tcHV0ZWQsIGV4dHJhICkgewoJCQl2YXIgdmFsOwoKCQkJaWYgKCBjb21wdXRlZCApIHsKCQkJCWlmICggZWxlbS5vZmZzZXRXaWR0aCAhPT0gMCApIHsKCQkJCQl2YWwgPSBnZXRXSCggZWxlbSwgbmFtZSwgZXh0cmEgKTsKCgkJCQl9IGVsc2UgewoJCQkJCWpRdWVyeS5zd2FwKCBlbGVtLCBjc3NTaG93LCBmdW5jdGlvbigpIHsKCQkJCQkJdmFsID0gZ2V0V0goIGVsZW0sIG5hbWUsIGV4dHJhICk7CgkJCQkJfSk7CgkJCQl9CgoJCQkJaWYgKCB2YWwgPD0gMCApIHsKCQkJCQl2YWwgPSBjdXJDU1MoIGVsZW0sIG5hbWUsIG5hbWUgKTsKCgkJCQkJaWYgKCB2YWwgPT09ICIwcHgiICYmIGN1cnJlbnRTdHlsZSApIHsKCQkJCQkJdmFsID0gY3VycmVudFN0eWxlKCBlbGVtLCBuYW1lLCBuYW1lICk7CgkJCQkJfQoKCQkJCQlpZiAoIHZhbCAhPSBudWxsICkgewoJCQkJCQkvLyBTaG91bGQgcmV0dXJuICJhdXRvIiBpbnN0ZWFkIG9mIDAsIHVzZSAwIGZvcgoJCQkJCQkvLyB0ZW1wb3JhcnkgYmFja3dhcmRzLWNvbXBhdAoJCQkJCQlyZXR1cm4gdmFsID09PSAiIiB8fCB2YWwgPT09ICJhdXRvIiA/ICIwcHgiIDogdmFsOwoJCQkJCX0KCQkJCX0KCgkJCQlpZiAoIHZhbCA8IDAgfHwgdmFsID09IG51bGwgKSB7CgkJCQkJdmFsID0gZWxlbS5zdHlsZVsgbmFtZSBdOwoKCQkJCQkvLyBTaG91bGQgcmV0dXJuICJhdXRvIiBpbnN0ZWFkIG9mIDAsIHVzZSAwIGZvcgoJCQkJCS8vIHRlbXBvcmFyeSBiYWNrd2FyZHMtY29tcGF0CgkJCQkJcmV0dXJuIHZhbCA9PT0gIiIgfHwgdmFsID09PSAiYXV0byIgPyAiMHB4IiA6IHZhbDsKCQkJCX0KCgkJCQlyZXR1cm4gdHlwZW9mIHZhbCA9PT0gInN0cmluZyIgPyB2YWwgOiB2YWwgKyAicHgiOwoJCQl9CgkJfSwKCgkJc2V0OiBmdW5jdGlvbiggZWxlbSwgdmFsdWUgKSB7CgkJCWlmICggcm51bXB4LnRlc3QoIHZhbHVlICkgKSB7CgkJCQkvLyBpZ25vcmUgbmVnYXRpdmUgd2lkdGggYW5kIGhlaWdodCB2YWx1ZXMgIzE1OTkKCQkJCXZhbHVlID0gcGFyc2VGbG9hdCh2YWx1ZSk7CgoJCQkJaWYgKCB2YWx1ZSA+PSAwICkgewoJCQkJCXJldHVybiB2YWx1ZSArICJweCI7CgkJCQl9CgoJCQl9IGVsc2UgewoJCQkJcmV0dXJuIHZhbHVlOwoJCQl9CgkJfQoJfTsKfSk7CgppZiAoICFqUXVlcnkuc3VwcG9ydC5vcGFjaXR5ICkgewoJalF1ZXJ5LmNzc0hvb2tzLm9wYWNpdHkgPSB7CgkJZ2V0OiBmdW5jdGlvbiggZWxlbSwgY29tcHV0ZWQgKSB7CgkJCS8vIElFIHVzZXMgZmlsdGVycyBmb3Igb3BhY2l0eQoJCQlyZXR1cm4gcm9wYWNpdHkudGVzdCgoY29tcHV0ZWQgJiYgZWxlbS5jdXJyZW50U3R5bGUgPyBlbGVtLmN1cnJlbnRTdHlsZS5maWx0ZXIgOiBlbGVtLnN0eWxlLmZpbHRlcikgfHwgIiIpID8KCQkJCShwYXJzZUZsb2F0KFJlZ0V4cC4kMSkgLyAxMDApICsgIiIgOgoJCQkJY29tcHV0ZWQgPyAiMSIgOiAiIjsKCQl9LAoKCQlzZXQ6IGZ1bmN0aW9uKCBlbGVtLCB2YWx1ZSApIHsKCQkJdmFyIHN0eWxlID0gZWxlbS5zdHlsZTsKCgkJCS8vIElFIGhhcyB0cm91YmxlIHdpdGggb3BhY2l0eSBpZiBpdCBkb2VzIG5vdCBoYXZlIGxheW91dAoJCQkvLyBGb3JjZSBpdCBieSBzZXR0aW5nIHRoZSB6b29tIGxldmVsCgkJCXN0eWxlLnpvb20gPSAxOwoKCQkJLy8gU2V0IHRoZSBhbHBoYSBmaWx0ZXIgdG8gc2V0IHRoZSBvcGFjaXR5CgkJCXZhciBvcGFjaXR5ID0galF1ZXJ5LmlzTmFOKHZhbHVlKSA/CgkJCQkiIiA6CgkJCQkiYWxwaGEob3BhY2l0eT0iICsgdmFsdWUgKiAxMDAgKyAiKSIsCgkJCQlmaWx0ZXIgPSBzdHlsZS5maWx0ZXIgfHwgIiI7CgoJCQlzdHlsZS5maWx0ZXIgPSByYWxwaGEudGVzdChmaWx0ZXIpID8KCQkJCWZpbHRlci5yZXBsYWNlKHJhbHBoYSwgb3BhY2l0eSkgOgoJCQkJc3R5bGUuZmlsdGVyICsgJyAnICsgb3BhY2l0eTsKCQl9Cgl9Owp9CgppZiAoIGRvY3VtZW50LmRlZmF1bHRWaWV3ICYmIGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUgKSB7CglnZXRDb21wdXRlZFN0eWxlID0gZnVuY3Rpb24oIGVsZW0sIG5ld05hbWUsIG5hbWUgKSB7CgkJdmFyIHJldCwgZGVmYXVsdFZpZXcsIGNvbXB1dGVkU3R5bGU7CgoJCW5hbWUgPSBuYW1lLnJlcGxhY2UoIHJ1cHBlciwgIi0kMSIgKS50b0xvd2VyQ2FzZSgpOwoKCQlpZiAoICEoZGVmYXVsdFZpZXcgPSBlbGVtLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcpICkgewoJCQlyZXR1cm4gdW5kZWZpbmVkOwoJCX0KCgkJaWYgKCAoY29tcHV0ZWRTdHlsZSA9IGRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoIGVsZW0sIG51bGwgKSkgKSB7CgkJCXJldCA9IGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSggbmFtZSApOwoJCQlpZiAoIHJldCA9PT0gIiIgJiYgIWpRdWVyeS5jb250YWlucyggZWxlbS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgZWxlbSApICkgewoJCQkJcmV0ID0galF1ZXJ5LnN0eWxlKCBlbGVtLCBuYW1lICk7CgkJCX0KCQl9CgoJCXJldHVybiByZXQ7Cgl9Owp9CgppZiAoIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jdXJyZW50U3R5bGUgKSB7CgljdXJyZW50U3R5bGUgPSBmdW5jdGlvbiggZWxlbSwgbmFtZSApIHsKCQl2YXIgbGVmdCwKCQkJcmV0ID0gZWxlbS5jdXJyZW50U3R5bGUgJiYgZWxlbS5jdXJyZW50U3R5bGVbIG5hbWUgXSwKCQkJcnNMZWZ0ID0gZWxlbS5ydW50aW1lU3R5bGUgJiYgZWxlbS5ydW50aW1lU3R5bGVbIG5hbWUgXSwKCQkJc3R5bGUgPSBlbGVtLnN0eWxlOwoKCQkvLyBGcm9tIHRoZSBhd2Vzb21lIGhhY2sgYnkgRGVhbiBFZHdhcmRzCgkJLy8gaHR0cDovL2VyaWsuZWFlLm5ldC9hcmNoaXZlcy8yMDA3LzA3LzI3LzE4LjU0LjE1LyNjb21tZW50LTEwMjI5MQoKCQkvLyBJZiB3ZSdyZSBub3QgZGVhbGluZyB3aXRoIGEgcmVndWxhciBwaXhlbCBudW1iZXIKCQkvLyBidXQgYSBudW1iZXIgdGhhdCBoYXMgYSB3ZWlyZCBlbmRpbmcsIHdlIG5lZWQgdG8gY29udmVydCBpdCB0byBwaXhlbHMKCQlpZiAoICFybnVtcHgudGVzdCggcmV0ICkgJiYgcm51bS50ZXN0KCByZXQgKSApIHsKCQkJLy8gUmVtZW1iZXIgdGhlIG9yaWdpbmFsIHZhbHVlcwoJCQlsZWZ0ID0gc3R5bGUubGVmdDsKCgkJCS8vIFB1dCBpbiB0aGUgbmV3IHZhbHVlcyB0byBnZXQgYSBjb21wdXRlZCB2YWx1ZSBvdXQKCQkJaWYgKCByc0xlZnQgKSB7CgkJCQllbGVtLnJ1bnRpbWVTdHlsZS5sZWZ0ID0gZWxlbS5jdXJyZW50U3R5bGUubGVmdDsKCQkJfQoJCQlzdHlsZS5sZWZ0ID0gbmFtZSA9PT0gImZvbnRTaXplIiA/ICIxZW0iIDogKHJldCB8fCAwKTsKCQkJcmV0ID0gc3R5bGUucGl4ZWxMZWZ0ICsgInB4IjsKCgkJCS8vIFJldmVydCB0aGUgY2hhbmdlZCB2YWx1ZXMKCQkJc3R5bGUubGVmdCA9IGxlZnQ7CgkJCWlmICggcnNMZWZ0ICkgewoJCQkJZWxlbS5ydW50aW1lU3R5bGUubGVmdCA9IHJzTGVmdDsKCQkJfQoJCX0KCgkJcmV0dXJuIHJldCA9PT0gIiIgPyAiYXV0byIgOiByZXQ7Cgl9Owp9CgpjdXJDU1MgPSBnZXRDb21wdXRlZFN0eWxlIHx8IGN1cnJlbnRTdHlsZTsKCmZ1bmN0aW9uIGdldFdIKCBlbGVtLCBuYW1lLCBleHRyYSApIHsKCXZhciB3aGljaCA9IG5hbWUgPT09ICJ3aWR0aCIgPyBjc3NXaWR0aCA6IGNzc0hlaWdodCwKCQl2YWwgPSBuYW1lID09PSAid2lkdGgiID8gZWxlbS5vZmZzZXRXaWR0aCA6IGVsZW0ub2Zmc2V0SGVpZ2h0OwoKCWlmICggZXh0cmEgPT09ICJib3JkZXIiICkgewoJCXJldHVybiB2YWw7Cgl9CgoJalF1ZXJ5LmVhY2goIHdoaWNoLCBmdW5jdGlvbigpIHsKCQlpZiAoICFleHRyYSApIHsKCQkJdmFsIC09IHBhcnNlRmxvYXQoalF1ZXJ5LmNzcyggZWxlbSwgInBhZGRpbmciICsgdGhpcyApKSB8fCAwOwoJCX0KCgkJaWYgKCBleHRyYSA9PT0gIm1hcmdpbiIgKSB7CgkJCXZhbCArPSBwYXJzZUZsb2F0KGpRdWVyeS5jc3MoIGVsZW0sICJtYXJnaW4iICsgdGhpcyApKSB8fCAwOwoKCQl9IGVsc2UgewoJCQl2YWwgLT0gcGFyc2VGbG9hdChqUXVlcnkuY3NzKCBlbGVtLCAiYm9yZGVyIiArIHRoaXMgKyAiV2lkdGgiICkpIHx8IDA7CgkJfQoJfSk7CgoJcmV0dXJuIHZhbDsKfQoKaWYgKCBqUXVlcnkuZXhwciAmJiBqUXVlcnkuZXhwci5maWx0ZXJzICkgewoJalF1ZXJ5LmV4cHIuZmlsdGVycy5oaWRkZW4gPSBmdW5jdGlvbiggZWxlbSApIHsKCQl2YXIgd2lkdGggPSBlbGVtLm9mZnNldFdpZHRoLAoJCQloZWlnaHQgPSBlbGVtLm9mZnNldEhlaWdodDsKCgkJcmV0dXJuICh3aWR0aCA9PT0gMCAmJiBoZWlnaHQgPT09IDApIHx8ICghalF1ZXJ5LnN1cHBvcnQucmVsaWFibGVIaWRkZW5PZmZzZXRzICYmIChlbGVtLnN0eWxlLmRpc3BsYXkgfHwgalF1ZXJ5LmNzcyggZWxlbSwgImRpc3BsYXkiICkpID09PSAibm9uZSIpOwoJfTsKCglqUXVlcnkuZXhwci5maWx0ZXJzLnZpc2libGUgPSBmdW5jdGlvbiggZWxlbSApIHsKCQlyZXR1cm4gIWpRdWVyeS5leHByLmZpbHRlcnMuaGlkZGVuKCBlbGVtICk7Cgl9Owp9CgoKCgp2YXIgcjIwID0gLyUyMC9nLAoJcmJyYWNrZXQgPSAvXFtcXSQvLAoJckNSTEYgPSAvXHI/XG4vZywKCXJoYXNoID0gLyMuKiQvLAoJcmhlYWRlcnMgPSAvXiguKj8pOlsgXHRdKihbXlxyXG5dKilccj8kL21nLCAvLyBJRSBsZWF2ZXMgYW4gXHIgY2hhcmFjdGVyIGF0IEVPTAoJcmlucHV0ID0gL14oPzpjb2xvcnxkYXRlfGRhdGV0aW1lfGVtYWlsfGhpZGRlbnxtb250aHxudW1iZXJ8cGFzc3dvcmR8cmFuZ2V8c2VhcmNofHRlbHx0ZXh0fHRpbWV8dXJsfHdlZWspJC9pLAoJLy8gIzc2NTMsICM4MTI1LCAjODE1MjogbG9jYWwgcHJvdG9jb2wgZGV0ZWN0aW9uCglybG9jYWxQcm90b2NvbCA9IC8oPzpeZmlsZXxed2lkZ2V0fFwtZXh0ZW5zaW9uKTokLywKCXJub0NvbnRlbnQgPSAvXig/OkdFVHxIRUFEKSQvLAoJcnByb3RvY29sID0gL15cL1wvLywKCXJxdWVyeSA9IC9cPy8sCglyc2NyaXB0ID0gLzxzY3JpcHRcYltePF0qKD86KD8hPFwvc2NyaXB0Pik8W148XSopKjxcL3NjcmlwdD4vZ2ksCglyc2VsZWN0VGV4dGFyZWEgPSAvXig/OnNlbGVjdHx0ZXh0YXJlYSkvaSwKCXJzcGFjZXNBamF4ID0gL1xzKy8sCglydHMgPSAvKFs/Jl0pXz1bXiZdKi8sCglydWNIZWFkZXJzID0gLyhefFwtKShbYS16XSkvZywKCXJ1Y0hlYWRlcnNGdW5jID0gZnVuY3Rpb24oIF8sICQxLCAkMiApIHsKCQlyZXR1cm4gJDEgKyAkMi50b1VwcGVyQ2FzZSgpOwoJfSwKCXJ1cmwgPSAvXihbXHdcK1wuXC1dKzopXC9cLyhbXlwvPyM6XSopKD86OihcZCspKT8vLAoKCS8vIEtlZXAgYSBjb3B5IG9mIHRoZSBvbGQgbG9hZCBtZXRob2QKCV9sb2FkID0galF1ZXJ5LmZuLmxvYWQsCgoJLyogUHJlZmlsdGVycwoJICogMSkgVGhleSBhcmUgdXNlZnVsIHRvIGludHJvZHVjZSBjdXN0b20gZGF0YVR5cGVzIChzZWUgYWpheC9qc29ucC5qcyBmb3IgYW4gZXhhbXBsZSkKCSAqIDIpIFRoZXNlIGFyZSBjYWxsZWQ6CgkgKiAgICAtIEJFRk9SRSBhc2tpbmcgZm9yIGEgdHJhbnNwb3J0CgkgKiAgICAtIEFGVEVSIHBhcmFtIHNlcmlhbGl6YXRpb24gKHMuZGF0YSBpcyBhIHN0cmluZyBpZiBzLnByb2Nlc3NEYXRhIGlzIHRydWUpCgkgKiAzKSBrZXkgaXMgdGhlIGRhdGFUeXBlCgkgKiA0KSB0aGUgY2F0Y2hhbGwgc3ltYm9sICIqIiBjYW4gYmUgdXNlZAoJICogNSkgZXhlY3V0aW9uIHdpbGwgc3RhcnQgd2l0aCB0cmFuc3BvcnQgZGF0YVR5cGUgYW5kIFRIRU4gY29udGludWUgZG93biB0byAiKiIgaWYgbmVlZGVkCgkgKi8KCXByZWZpbHRlcnMgPSB7fSwKCgkvKiBUcmFuc3BvcnRzIGJpbmRpbmdzCgkgKiAxKSBrZXkgaXMgdGhlIGRhdGFUeXBlCgkgKiAyKSB0aGUgY2F0Y2hhbGwgc3ltYm9sICIqIiBjYW4gYmUgdXNlZAoJICogMykgc2VsZWN0aW9uIHdpbGwgc3RhcnQgd2l0aCB0cmFuc3BvcnQgZGF0YVR5cGUgYW5kIFRIRU4gZ28gdG8gIioiIGlmIG5lZWRlZAoJICovCgl0cmFuc3BvcnRzID0ge30sCgoJLy8gRG9jdW1lbnQgbG9jYXRpb24KCWFqYXhMb2NhdGlvbiwKCgkvLyBEb2N1bWVudCBsb2NhdGlvbiBzZWdtZW50cwoJYWpheExvY1BhcnRzOwoKLy8gIzgxMzgsIElFIG1heSB0aHJvdyBhbiBleGNlcHRpb24gd2hlbiBhY2Nlc3NpbmcKLy8gYSBmaWVsZCBmcm9tIGRvY3VtZW50LmxvY2F0aW9uIGlmIGRvY3VtZW50LmRvbWFpbiBoYXMgYmVlbiBzZXQKdHJ5IHsKCWFqYXhMb2NhdGlvbiA9IGRvY3VtZW50LmxvY2F0aW9uLmhyZWY7Cn0gY2F0Y2goIGUgKSB7CgkvLyBVc2UgdGhlIGhyZWYgYXR0cmlidXRlIG9mIGFuIEEgZWxlbWVudAoJLy8gc2luY2UgSUUgd2lsbCBtb2RpZnkgaXQgZ2l2ZW4gZG9jdW1lbnQubG9jYXRpb24KCWFqYXhMb2NhdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICJhIiApOwoJYWpheExvY2F0aW9uLmhyZWYgPSAiIjsKCWFqYXhMb2NhdGlvbiA9IGFqYXhMb2NhdGlvbi5ocmVmOwp9CgovLyBTZWdtZW50IGxvY2F0aW9uIGludG8gcGFydHMKYWpheExvY1BhcnRzID0gcnVybC5leGVjKCBhamF4TG9jYXRpb24udG9Mb3dlckNhc2UoKSApOwoKLy8gQmFzZSAiY29uc3RydWN0b3IiIGZvciBqUXVlcnkuYWpheFByZWZpbHRlciBhbmQgalF1ZXJ5LmFqYXhUcmFuc3BvcnQKZnVuY3Rpb24gYWRkVG9QcmVmaWx0ZXJzT3JUcmFuc3BvcnRzKCBzdHJ1Y3R1cmUgKSB7CgoJLy8gZGF0YVR5cGVFeHByZXNzaW9uIGlzIG9wdGlvbmFsIGFuZCBkZWZhdWx0cyB0byAiKiIKCXJldHVybiBmdW5jdGlvbiggZGF0YVR5cGVFeHByZXNzaW9uLCBmdW5jICkgewoKCQlpZiAoIHR5cGVvZiBkYXRhVHlwZUV4cHJlc3Npb24gIT09ICJzdHJpbmciICkgewoJCQlmdW5jID0gZGF0YVR5cGVFeHByZXNzaW9uOwoJCQlkYXRhVHlwZUV4cHJlc3Npb24gPSAiKiI7CgkJfQoKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCBmdW5jICkgKSB7CgkJCXZhciBkYXRhVHlwZXMgPSBkYXRhVHlwZUV4cHJlc3Npb24udG9Mb3dlckNhc2UoKS5zcGxpdCggcnNwYWNlc0FqYXggKSwKCQkJCWkgPSAwLAoJCQkJbGVuZ3RoID0gZGF0YVR5cGVzLmxlbmd0aCwKCQkJCWRhdGFUeXBlLAoJCQkJbGlzdCwKCQkJCXBsYWNlQmVmb3JlOwoKCQkJLy8gRm9yIGVhY2ggZGF0YVR5cGUgaW4gdGhlIGRhdGFUeXBlRXhwcmVzc2lvbgoJCQlmb3IoOyBpIDwgbGVuZ3RoOyBpKysgKSB7CgkJCQlkYXRhVHlwZSA9IGRhdGFUeXBlc1sgaSBdOwoJCQkJLy8gV2UgY29udHJvbCBpZiB3ZSdyZSBhc2tlZCB0byBhZGQgYmVmb3JlCgkJCQkvLyBhbnkgZXhpc3RpbmcgZWxlbWVudAoJCQkJcGxhY2VCZWZvcmUgPSAvXlwrLy50ZXN0KCBkYXRhVHlwZSApOwoJCQkJaWYgKCBwbGFjZUJlZm9yZSApIHsKCQkJCQlkYXRhVHlwZSA9IGRhdGFUeXBlLnN1YnN0ciggMSApIHx8ICIqIjsKCQkJCX0KCQkJCWxpc3QgPSBzdHJ1Y3R1cmVbIGRhdGFUeXBlIF0gPSBzdHJ1Y3R1cmVbIGRhdGFUeXBlIF0gfHwgW107CgkJCQkvLyB0aGVuIHdlIGFkZCB0byB0aGUgc3RydWN0dXJlIGFjY29yZGluZ2x5CgkJCQlsaXN0WyBwbGFjZUJlZm9yZSA/ICJ1bnNoaWZ0IiA6ICJwdXNoIiBdKCBmdW5jICk7CgkJCX0KCQl9Cgl9Owp9CgovL0Jhc2UgaW5zcGVjdGlvbiBmdW5jdGlvbiBmb3IgcHJlZmlsdGVycyBhbmQgdHJhbnNwb3J0cwpmdW5jdGlvbiBpbnNwZWN0UHJlZmlsdGVyc09yVHJhbnNwb3J0cyggc3RydWN0dXJlLCBvcHRpb25zLCBvcmlnaW5hbE9wdGlvbnMsIGpxWEhSLAoJCWRhdGFUeXBlIC8qIGludGVybmFsICovLCBpbnNwZWN0ZWQgLyogaW50ZXJuYWwgKi8gKSB7CgoJZGF0YVR5cGUgPSBkYXRhVHlwZSB8fCBvcHRpb25zLmRhdGFUeXBlc1sgMCBdOwoJaW5zcGVjdGVkID0gaW5zcGVjdGVkIHx8IHt9OwoKCWluc3BlY3RlZFsgZGF0YVR5cGUgXSA9IHRydWU7CgoJdmFyIGxpc3QgPSBzdHJ1Y3R1cmVbIGRhdGFUeXBlIF0sCgkJaSA9IDAsCgkJbGVuZ3RoID0gbGlzdCA/IGxpc3QubGVuZ3RoIDogMCwKCQlleGVjdXRlT25seSA9ICggc3RydWN0dXJlID09PSBwcmVmaWx0ZXJzICksCgkJc2VsZWN0aW9uOwoKCWZvcig7IGkgPCBsZW5ndGggJiYgKCBleGVjdXRlT25seSB8fCAhc2VsZWN0aW9uICk7IGkrKyApIHsKCQlzZWxlY3Rpb24gPSBsaXN0WyBpIF0oIG9wdGlvbnMsIG9yaWdpbmFsT3B0aW9ucywganFYSFIgKTsKCQkvLyBJZiB3ZSBnb3QgcmVkaXJlY3RlZCB0byBhbm90aGVyIGRhdGFUeXBlCgkJLy8gd2UgdHJ5IHRoZXJlIGlmIGV4ZWN1dGluZyBvbmx5IGFuZCBub3QgZG9uZSBhbHJlYWR5CgkJaWYgKCB0eXBlb2Ygc2VsZWN0aW9uID09PSAic3RyaW5nIiApIHsKCQkJaWYgKCAhZXhlY3V0ZU9ubHkgfHwgaW5zcGVjdGVkWyBzZWxlY3Rpb24gXSApIHsKCQkJCXNlbGVjdGlvbiA9IHVuZGVmaW5lZDsKCQkJfSBlbHNlIHsKCQkJCW9wdGlvbnMuZGF0YVR5cGVzLnVuc2hpZnQoIHNlbGVjdGlvbiApOwoJCQkJc2VsZWN0aW9uID0gaW5zcGVjdFByZWZpbHRlcnNPclRyYW5zcG9ydHMoCgkJCQkJCXN0cnVjdHVyZSwgb3B0aW9ucywgb3JpZ2luYWxPcHRpb25zLCBqcVhIUiwgc2VsZWN0aW9uLCBpbnNwZWN0ZWQgKTsKCQkJfQoJCX0KCX0KCS8vIElmIHdlJ3JlIG9ubHkgZXhlY3V0aW5nIG9yIG5vdGhpbmcgd2FzIHNlbGVjdGVkCgkvLyB3ZSB0cnkgdGhlIGNhdGNoYWxsIGRhdGFUeXBlIGlmIG5vdCBkb25lIGFscmVhZHkKCWlmICggKCBleGVjdXRlT25seSB8fCAhc2VsZWN0aW9uICkgJiYgIWluc3BlY3RlZFsgIioiIF0gKSB7CgkJc2VsZWN0aW9uID0gaW5zcGVjdFByZWZpbHRlcnNPclRyYW5zcG9ydHMoCgkJCQlzdHJ1Y3R1cmUsIG9wdGlvbnMsIG9yaWdpbmFsT3B0aW9ucywganFYSFIsICIqIiwgaW5zcGVjdGVkICk7Cgl9CgkvLyB1bm5lY2Vzc2FyeSB3aGVuIG9ubHkgZXhlY3V0aW5nIChwcmVmaWx0ZXJzKQoJLy8gYnV0IGl0J2xsIGJlIGlnbm9yZWQgYnkgdGhlIGNhbGxlciBpbiB0aGF0IGNhc2UKCXJldHVybiBzZWxlY3Rpb247Cn0KCmpRdWVyeS5mbi5leHRlbmQoewoJbG9hZDogZnVuY3Rpb24oIHVybCwgcGFyYW1zLCBjYWxsYmFjayApIHsKCQlpZiAoIHR5cGVvZiB1cmwgIT09ICJzdHJpbmciICYmIF9sb2FkICkgewoJCQlyZXR1cm4gX2xvYWQuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApOwoKCQkvLyBEb24ndCBkbyBhIHJlcXVlc3QgaWYgbm8gZWxlbWVudHMgYXJlIGJlaW5nIHJlcXVlc3RlZAoJCX0gZWxzZSBpZiAoICF0aGlzLmxlbmd0aCApIHsKCQkJcmV0dXJuIHRoaXM7CgkJfQoKCQl2YXIgb2ZmID0gdXJsLmluZGV4T2YoICIgIiApOwoJCWlmICggb2ZmID49IDAgKSB7CgkJCXZhciBzZWxlY3RvciA9IHVybC5zbGljZSggb2ZmLCB1cmwubGVuZ3RoICk7CgkJCXVybCA9IHVybC5zbGljZSggMCwgb2ZmICk7CgkJfQoKCQkvLyBEZWZhdWx0IHRvIGEgR0VUIHJlcXVlc3QKCQl2YXIgdHlwZSA9ICJHRVQiOwoKCQkvLyBJZiB0aGUgc2Vjb25kIHBhcmFtZXRlciB3YXMgcHJvdmlkZWQKCQlpZiAoIHBhcmFtcyApIHsKCQkJLy8gSWYgaXQncyBhIGZ1bmN0aW9uCgkJCWlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHBhcmFtcyApICkgewoJCQkJLy8gV2UgYXNzdW1lIHRoYXQgaXQncyB0aGUgY2FsbGJhY2sKCQkJCWNhbGxiYWNrID0gcGFyYW1zOwoJCQkJcGFyYW1zID0gdW5kZWZpbmVkOwoKCQkJLy8gT3RoZXJ3aXNlLCBidWlsZCBhIHBhcmFtIHN0cmluZwoJCQl9IGVsc2UgaWYgKCB0eXBlb2YgcGFyYW1zID09PSAib2JqZWN0IiApIHsKCQkJCXBhcmFtcyA9IGpRdWVyeS5wYXJhbSggcGFyYW1zLCBqUXVlcnkuYWpheFNldHRpbmdzLnRyYWRpdGlvbmFsICk7CgkJCQl0eXBlID0gIlBPU1QiOwoJCQl9CgkJfQoKCQl2YXIgc2VsZiA9IHRoaXM7CgoJCS8vIFJlcXVlc3QgdGhlIHJlbW90ZSBkb2N1bWVudAoJCWpRdWVyeS5hamF4KHsKCQkJdXJsOiB1cmwsCgkJCXR5cGU6IHR5cGUsCgkJCWRhdGFUeXBlOiAiaHRtbCIsCgkJCWRhdGE6IHBhcmFtcywKCQkJLy8gQ29tcGxldGUgY2FsbGJhY2sgKHJlc3BvbnNlVGV4dCBpcyB1c2VkIGludGVybmFsbHkpCgkJCWNvbXBsZXRlOiBmdW5jdGlvbigganFYSFIsIHN0YXR1cywgcmVzcG9uc2VUZXh0ICkgewoJCQkJLy8gU3RvcmUgdGhlIHJlc3BvbnNlIGFzIHNwZWNpZmllZCBieSB0aGUganFYSFIgb2JqZWN0CgkJCQlyZXNwb25zZVRleHQgPSBqcVhIUi5yZXNwb25zZVRleHQ7CgkJCQkvLyBJZiBzdWNjZXNzZnVsLCBpbmplY3QgdGhlIEhUTUwgaW50byBhbGwgdGhlIG1hdGNoZWQgZWxlbWVudHMKCQkJCWlmICgganFYSFIuaXNSZXNvbHZlZCgpICkgewoJCQkJCS8vICM0ODI1OiBHZXQgdGhlIGFjdHVhbCByZXNwb25zZSBpbiBjYXNlCgkJCQkJLy8gYSBkYXRhRmlsdGVyIGlzIHByZXNlbnQgaW4gYWpheFNldHRpbmdzCgkJCQkJanFYSFIuZG9uZShmdW5jdGlvbiggciApIHsKCQkJCQkJcmVzcG9uc2VUZXh0ID0gcjsKCQkJCQl9KTsKCQkJCQkvLyBTZWUgaWYgYSBzZWxlY3RvciB3YXMgc3BlY2lmaWVkCgkJCQkJc2VsZi5odG1sKCBzZWxlY3RvciA/CgkJCQkJCS8vIENyZWF0ZSBhIGR1bW15IGRpdiB0byBob2xkIHRoZSByZXN1bHRzCgkJCQkJCWpRdWVyeSgiPGRpdj4iKQoJCQkJCQkJLy8gaW5qZWN0IHRoZSBjb250ZW50cyBvZiB0aGUgZG9jdW1lbnQgaW4sIHJlbW92aW5nIHRoZSBzY3JpcHRzCgkJCQkJCQkvLyB0byBhdm9pZCBhbnkgJ1Blcm1pc3Npb24gRGVuaWVkJyBlcnJvcnMgaW4gSUUKCQkJCQkJCS5hcHBlbmQocmVzcG9uc2VUZXh0LnJlcGxhY2UocnNjcmlwdCwgIiIpKQoKCQkJCQkJCS8vIExvY2F0ZSB0aGUgc3BlY2lmaWVkIGVsZW1lbnRzCgkJCQkJCQkuZmluZChzZWxlY3RvcikgOgoKCQkJCQkJLy8gSWYgbm90LCBqdXN0IGluamVjdCB0aGUgZnVsbCByZXN1bHQKCQkJCQkJcmVzcG9uc2VUZXh0ICk7CgkJCQl9CgoJCQkJaWYgKCBjYWxsYmFjayApIHsKCQkJCQlzZWxmLmVhY2goIGNhbGxiYWNrLCBbIHJlc3BvbnNlVGV4dCwgc3RhdHVzLCBqcVhIUiBdICk7CgkJCQl9CgkJCX0KCQl9KTsKCgkJcmV0dXJuIHRoaXM7Cgl9LAoKCXNlcmlhbGl6ZTogZnVuY3Rpb24oKSB7CgkJcmV0dXJuIGpRdWVyeS5wYXJhbSggdGhpcy5zZXJpYWxpemVBcnJheSgpICk7Cgl9LAoKCXNlcmlhbGl6ZUFycmF5OiBmdW5jdGlvbigpIHsKCQlyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXsKCQkJcmV0dXJuIHRoaXMuZWxlbWVudHMgPyBqUXVlcnkubWFrZUFycmF5KCB0aGlzLmVsZW1lbnRzICkgOiB0aGlzOwoJCX0pCgkJLmZpbHRlcihmdW5jdGlvbigpewoJCQlyZXR1cm4gdGhpcy5uYW1lICYmICF0aGlzLmRpc2FibGVkICYmCgkJCQkoIHRoaXMuY2hlY2tlZCB8fCByc2VsZWN0VGV4dGFyZWEudGVzdCggdGhpcy5ub2RlTmFtZSApIHx8CgkJCQkJcmlucHV0LnRlc3QoIHRoaXMudHlwZSApICk7CgkJfSkKCQkubWFwKGZ1bmN0aW9uKCBpLCBlbGVtICl7CgkJCXZhciB2YWwgPSBqUXVlcnkoIHRoaXMgKS52YWwoKTsKCgkJCXJldHVybiB2YWwgPT0gbnVsbCA/CgkJCQludWxsIDoKCQkJCWpRdWVyeS5pc0FycmF5KCB2YWwgKSA/CgkJCQkJalF1ZXJ5Lm1hcCggdmFsLCBmdW5jdGlvbiggdmFsLCBpICl7CgkJCQkJCXJldHVybiB7IG5hbWU6IGVsZW0ubmFtZSwgdmFsdWU6IHZhbC5yZXBsYWNlKCByQ1JMRiwgIlxyXG4iICkgfTsKCQkJCQl9KSA6CgkJCQkJeyBuYW1lOiBlbGVtLm5hbWUsIHZhbHVlOiB2YWwucmVwbGFjZSggckNSTEYsICJcclxuIiApIH07CgkJfSkuZ2V0KCk7Cgl9Cn0pOwoKLy8gQXR0YWNoIGEgYnVuY2ggb2YgZnVuY3Rpb25zIGZvciBoYW5kbGluZyBjb21tb24gQUpBWCBldmVudHMKalF1ZXJ5LmVhY2goICJhamF4U3RhcnQgYWpheFN0b3AgYWpheENvbXBsZXRlIGFqYXhFcnJvciBhamF4U3VjY2VzcyBhamF4U2VuZCIuc3BsaXQoICIgIiApLCBmdW5jdGlvbiggaSwgbyApewoJalF1ZXJ5LmZuWyBvIF0gPSBmdW5jdGlvbiggZiApewoJCXJldHVybiB0aGlzLmJpbmQoIG8sIGYgKTsKCX07Cn0gKTsKCmpRdWVyeS5lYWNoKCBbICJnZXQiLCAicG9zdCIgXSwgZnVuY3Rpb24oIGksIG1ldGhvZCApIHsKCWpRdWVyeVsgbWV0aG9kIF0gPSBmdW5jdGlvbiggdXJsLCBkYXRhLCBjYWxsYmFjaywgdHlwZSApIHsKCQkvLyBzaGlmdCBhcmd1bWVudHMgaWYgZGF0YSBhcmd1bWVudCB3YXMgb21pdHRlZAoJCWlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIGRhdGEgKSApIHsKCQkJdHlwZSA9IHR5cGUgfHwgY2FsbGJhY2s7CgkJCWNhbGxiYWNrID0gZGF0YTsKCQkJZGF0YSA9IHVuZGVmaW5lZDsKCQl9CgoJCXJldHVybiBqUXVlcnkuYWpheCh7CgkJCXR5cGU6IG1ldGhvZCwKCQkJdXJsOiB1cmwsCgkJCWRhdGE6IGRhdGEsCgkJCXN1Y2Nlc3M6IGNhbGxiYWNrLAoJCQlkYXRhVHlwZTogdHlwZQoJCX0pOwoJfTsKfSApOwoKalF1ZXJ5LmV4dGVuZCh7CgoJZ2V0U2NyaXB0OiBmdW5jdGlvbiggdXJsLCBjYWxsYmFjayApIHsKCQlyZXR1cm4galF1ZXJ5LmdldCggdXJsLCB1bmRlZmluZWQsIGNhbGxiYWNrLCAic2NyaXB0IiApOwoJfSwKCglnZXRKU09OOiBmdW5jdGlvbiggdXJsLCBkYXRhLCBjYWxsYmFjayApIHsKCQlyZXR1cm4galF1ZXJ5LmdldCggdXJsLCBkYXRhLCBjYWxsYmFjaywgImpzb24iICk7Cgl9LAoKCS8vIENyZWF0ZXMgYSBmdWxsIGZsZWRnZWQgc2V0dGluZ3Mgb2JqZWN0IGludG8gdGFyZ2V0CgkvLyB3aXRoIGJvdGggYWpheFNldHRpbmdzIGFuZCBzZXR0aW5ncyBmaWVsZHMuCgkvLyBJZiB0YXJnZXQgaXMgb21pdHRlZCwgd3JpdGVzIGludG8gYWpheFNldHRpbmdzLgoJYWpheFNldHVwOiBmdW5jdGlvbiAoIHRhcmdldCwgc2V0dGluZ3MgKSB7CgkJaWYgKCAhc2V0dGluZ3MgKSB7CgkJCS8vIE9ubHkgb25lIHBhcmFtZXRlciwgd2UgZXh0ZW5kIGFqYXhTZXR0aW5ncwoJCQlzZXR0aW5ncyA9IHRhcmdldDsKCQkJdGFyZ2V0ID0galF1ZXJ5LmV4dGVuZCggdHJ1ZSwgalF1ZXJ5LmFqYXhTZXR0aW5ncywgc2V0dGluZ3MgKTsKCQl9IGVsc2UgewoJCQkvLyB0YXJnZXQgd2FzIHByb3ZpZGVkLCB3ZSBleHRlbmQgaW50byBpdAoJCQlqUXVlcnkuZXh0ZW5kKCB0cnVlLCB0YXJnZXQsIGpRdWVyeS5hamF4U2V0dGluZ3MsIHNldHRpbmdzICk7CgkJfQoJCS8vIEZsYXR0ZW4gZmllbGRzIHdlIGRvbid0IHdhbnQgZGVlcCBleHRlbmRlZAoJCWZvciggdmFyIGZpZWxkIGluIHsgY29udGV4dDogMSwgdXJsOiAxIH0gKSB7CgkJCWlmICggZmllbGQgaW4gc2V0dGluZ3MgKSB7CgkJCQl0YXJnZXRbIGZpZWxkIF0gPSBzZXR0aW5nc1sgZmllbGQgXTsKCQkJfSBlbHNlIGlmKCBmaWVsZCBpbiBqUXVlcnkuYWpheFNldHRpbmdzICkgewoJCQkJdGFyZ2V0WyBmaWVsZCBdID0galF1ZXJ5LmFqYXhTZXR0aW5nc1sgZmllbGQgXTsKCQkJfQoJCX0KCQlyZXR1cm4gdGFyZ2V0OwoJfSwKCglhamF4U2V0dGluZ3M6IHsKCQl1cmw6IGFqYXhMb2NhdGlvbiwKCQlpc0xvY2FsOiBybG9jYWxQcm90b2NvbC50ZXN0KCBhamF4TG9jUGFydHNbIDEgXSApLAoJCWdsb2JhbDogdHJ1ZSwKCQl0eXBlOiAiR0VUIiwKCQljb250ZW50VHlwZTogImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIsCgkJcHJvY2Vzc0RhdGE6IHRydWUsCgkJYXN5bmM6IHRydWUsCgkJLyoKCQl0aW1lb3V0OiAwLAoJCWRhdGE6IG51bGwsCgkJZGF0YVR5cGU6IG51bGwsCgkJdXNlcm5hbWU6IG51bGwsCgkJcGFzc3dvcmQ6IG51bGwsCgkJY2FjaGU6IG51bGwsCgkJdHJhZGl0aW9uYWw6IGZhbHNlLAoJCWhlYWRlcnM6IHt9LAoJCWNyb3NzRG9tYWluOiBudWxsLAoJCSovCgoJCWFjY2VwdHM6IHsKCQkJeG1sOiAiYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbCIsCgkJCWh0bWw6ICJ0ZXh0L2h0bWwiLAoJCQl0ZXh0OiAidGV4dC9wbGFpbiIsCgkJCWpzb246ICJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L2phdmFzY3JpcHQiLAoJCQkiKiI6ICIqLyoiCgkJfSwKCgkJY29udGVudHM6IHsKCQkJeG1sOiAveG1sLywKCQkJaHRtbDogL2h0bWwvLAoJCQlqc29uOiAvanNvbi8KCQl9LAoKCQlyZXNwb25zZUZpZWxkczogewoJCQl4bWw6ICJyZXNwb25zZVhNTCIsCgkJCXRleHQ6ICJyZXNwb25zZVRleHQiCgkJfSwKCgkJLy8gTGlzdCBvZiBkYXRhIGNvbnZlcnRlcnMKCQkvLyAxKSBrZXkgZm9ybWF0IGlzICJzb3VyY2VfdHlwZSBkZXN0aW5hdGlvbl90eXBlIiAoYSBzaW5nbGUgc3BhY2UgaW4tYmV0d2VlbikKCQkvLyAyKSB0aGUgY2F0Y2hhbGwgc3ltYm9sICIqIiBjYW4gYmUgdXNlZCBmb3Igc291cmNlX3R5cGUKCQljb252ZXJ0ZXJzOiB7CgoJCQkvLyBDb252ZXJ0IGFueXRoaW5nIHRvIHRleHQKCQkJIiogdGV4dCI6IHdpbmRvdy5TdHJpbmcsCgoJCQkvLyBUZXh0IHRvIGh0bWwgKHRydWUgPSBubyB0cmFuc2Zvcm1hdGlvbikKCQkJInRleHQgaHRtbCI6IHRydWUsCgoJCQkvLyBFdmFsdWF0ZSB0ZXh0IGFzIGEganNvbiBleHByZXNzaW9uCgkJCSJ0ZXh0IGpzb24iOiBqUXVlcnkucGFyc2VKU09OLAoKCQkJLy8gUGFyc2UgdGV4dCBhcyB4bWwKCQkJInRleHQgeG1sIjogalF1ZXJ5LnBhcnNlWE1MCgkJfQoJfSwKCglhamF4UHJlZmlsdGVyOiBhZGRUb1ByZWZpbHRlcnNPclRyYW5zcG9ydHMoIHByZWZpbHRlcnMgKSwKCWFqYXhUcmFuc3BvcnQ6IGFkZFRvUHJlZmlsdGVyc09yVHJhbnNwb3J0cyggdHJhbnNwb3J0cyApLAoKCS8vIE1haW4gbWV0aG9kCglhamF4OiBmdW5jdGlvbiggdXJsLCBvcHRpb25zICkgewoKCQkvLyBJZiB1cmwgaXMgYW4gb2JqZWN0LCBzaW11bGF0ZSBwcmUtMS41IHNpZ25hdHVyZQoJCWlmICggdHlwZW9mIHVybCA9PT0gIm9iamVjdCIgKSB7CgkJCW9wdGlvbnMgPSB1cmw7CgkJCXVybCA9IHVuZGVmaW5lZDsKCQl9CgoJCS8vIEZvcmNlIG9wdGlvbnMgdG8gYmUgYW4gb2JqZWN0CgkJb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CgoJCXZhciAvLyBDcmVhdGUgdGhlIGZpbmFsIG9wdGlvbnMgb2JqZWN0CgkJCXMgPSBqUXVlcnkuYWpheFNldHVwKCB7fSwgb3B0aW9ucyApLAoJCQkvLyBDYWxsYmFja3MgY29udGV4dAoJCQljYWxsYmFja0NvbnRleHQgPSBzLmNvbnRleHQgfHwgcywKCQkJLy8gQ29udGV4dCBmb3IgZ2xvYmFsIGV2ZW50cwoJCQkvLyBJdCdzIHRoZSBjYWxsYmFja0NvbnRleHQgaWYgb25lIHdhcyBwcm92aWRlZCBpbiB0aGUgb3B0aW9ucwoJCQkvLyBhbmQgaWYgaXQncyBhIERPTSBub2RlIG9yIGEgalF1ZXJ5IGNvbGxlY3Rpb24KCQkJZ2xvYmFsRXZlbnRDb250ZXh0ID0gY2FsbGJhY2tDb250ZXh0ICE9PSBzICYmCgkJCQkoIGNhbGxiYWNrQ29udGV4dC5ub2RlVHlwZSB8fCBjYWxsYmFja0NvbnRleHQgaW5zdGFuY2VvZiBqUXVlcnkgKSA/CgkJCQkJCWpRdWVyeSggY2FsbGJhY2tDb250ZXh0ICkgOiBqUXVlcnkuZXZlbnQsCgkJCS8vIERlZmVycmVkcwoJCQlkZWZlcnJlZCA9IGpRdWVyeS5EZWZlcnJlZCgpLAoJCQljb21wbGV0ZURlZmVycmVkID0galF1ZXJ5Ll9EZWZlcnJlZCgpLAoJCQkvLyBTdGF0dXMtZGVwZW5kZW50IGNhbGxiYWNrcwoJCQlzdGF0dXNDb2RlID0gcy5zdGF0dXNDb2RlIHx8IHt9LAoJCQkvLyBpZk1vZGlmaWVkIGtleQoJCQlpZk1vZGlmaWVkS2V5LAoJCQkvLyBIZWFkZXJzICh0aGV5IGFyZSBzZW50IGFsbCBhdCBvbmNlKQoJCQlyZXF1ZXN0SGVhZGVycyA9IHt9LAoJCQkvLyBSZXNwb25zZSBoZWFkZXJzCgkJCXJlc3BvbnNlSGVhZGVyc1N0cmluZywKCQkJcmVzcG9uc2VIZWFkZXJzLAoJCQkvLyB0cmFuc3BvcnQKCQkJdHJhbnNwb3J0LAoJCQkvLyB0aW1lb3V0IGhhbmRsZQoJCQl0aW1lb3V0VGltZXIsCgkJCS8vIENyb3NzLWRvbWFpbiBkZXRlY3Rpb24gdmFycwoJCQlwYXJ0cywKCQkJLy8gVGhlIGpxWEhSIHN0YXRlCgkJCXN0YXRlID0gMCwKCQkJLy8gVG8ga25vdyBpZiBnbG9iYWwgZXZlbnRzIGFyZSB0byBiZSBkaXNwYXRjaGVkCgkJCWZpcmVHbG9iYWxzLAoJCQkvLyBMb29wIHZhcmlhYmxlCgkJCWksCgkJCS8vIEZha2UgeGhyCgkJCWpxWEhSID0gewoKCQkJCXJlYWR5U3RhdGU6IDAsCgoJCQkJLy8gQ2FjaGVzIHRoZSBoZWFkZXIKCQkJCXNldFJlcXVlc3RIZWFkZXI6IGZ1bmN0aW9uKCBuYW1lLCB2YWx1ZSApIHsKCQkJCQlpZiAoICFzdGF0ZSApIHsKCQkJCQkJcmVxdWVzdEhlYWRlcnNbIG5hbWUudG9Mb3dlckNhc2UoKS5yZXBsYWNlKCBydWNIZWFkZXJzLCBydWNIZWFkZXJzRnVuYyApIF0gPSB2YWx1ZTsKCQkJCQl9CgkJCQkJcmV0dXJuIHRoaXM7CgkJCQl9LAoKCQkJCS8vIFJhdyBzdHJpbmcKCQkJCWdldEFsbFJlc3BvbnNlSGVhZGVyczogZnVuY3Rpb24oKSB7CgkJCQkJcmV0dXJuIHN0YXRlID09PSAyID8gcmVzcG9uc2VIZWFkZXJzU3RyaW5nIDogbnVsbDsKCQkJCX0sCgoJCQkJLy8gQnVpbGRzIGhlYWRlcnMgaGFzaHRhYmxlIGlmIG5lZWRlZAoJCQkJZ2V0UmVzcG9uc2VIZWFkZXI6IGZ1bmN0aW9uKCBrZXkgKSB7CgkJCQkJdmFyIG1hdGNoOwoJCQkJCWlmICggc3RhdGUgPT09IDIgKSB7CgkJCQkJCWlmICggIXJlc3BvbnNlSGVhZGVycyApIHsKCQkJCQkJCXJlc3BvbnNlSGVhZGVycyA9IHt9OwoJCQkJCQkJd2hpbGUoICggbWF0Y2ggPSByaGVhZGVycy5leGVjKCByZXNwb25zZUhlYWRlcnNTdHJpbmcgKSApICkgewoJCQkJCQkJCXJlc3BvbnNlSGVhZGVyc1sgbWF0Y2hbMV0udG9Mb3dlckNhc2UoKSBdID0gbWF0Y2hbIDIgXTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCQltYXRjaCA9IHJlc3BvbnNlSGVhZGVyc1sga2V5LnRvTG93ZXJDYXNlKCkgXTsKCQkJCQl9CgkJCQkJcmV0dXJuIG1hdGNoID09PSB1bmRlZmluZWQgPyBudWxsIDogbWF0Y2g7CgkJCQl9LAoKCQkJCS8vIE92ZXJyaWRlcyByZXNwb25zZSBjb250ZW50LXR5cGUgaGVhZGVyCgkJCQlvdmVycmlkZU1pbWVUeXBlOiBmdW5jdGlvbiggdHlwZSApIHsKCQkJCQlpZiAoICFzdGF0ZSApIHsKCQkJCQkJcy5taW1lVHlwZSA9IHR5cGU7CgkJCQkJfQoJCQkJCXJldHVybiB0aGlzOwoJCQkJfSwKCgkJCQkvLyBDYW5jZWwgdGhlIHJlcXVlc3QKCQkJCWFib3J0OiBmdW5jdGlvbiggc3RhdHVzVGV4dCApIHsKCQkJCQlzdGF0dXNUZXh0ID0gc3RhdHVzVGV4dCB8fCAiYWJvcnQiOwoJCQkJCWlmICggdHJhbnNwb3J0ICkgewoJCQkJCQl0cmFuc3BvcnQuYWJvcnQoIHN0YXR1c1RleHQgKTsKCQkJCQl9CgkJCQkJZG9uZSggMCwgc3RhdHVzVGV4dCApOwoJCQkJCXJldHVybiB0aGlzOwoJCQkJfQoJCQl9OwoKCQkvLyBDYWxsYmFjayBmb3Igd2hlbiBldmVyeXRoaW5nIGlzIGRvbmUKCQkvLyBJdCBpcyBkZWZpbmVkIGhlcmUgYmVjYXVzZSBqc2xpbnQgY29tcGxhaW5zIGlmIGl0IGlzIGRlY2xhcmVkCgkJLy8gYXQgdGhlIGVuZCBvZiB0aGUgZnVuY3Rpb24gKHdoaWNoIHdvdWxkIGJlIG1vcmUgbG9naWNhbCBhbmQgcmVhZGFibGUpCgkJZnVuY3Rpb24gZG9uZSggc3RhdHVzLCBzdGF0dXNUZXh0LCByZXNwb25zZXMsIGhlYWRlcnMgKSB7CgoJCQkvLyBDYWxsZWQgb25jZQoJCQlpZiAoIHN0YXRlID09PSAyICkgewoJCQkJcmV0dXJuOwoJCQl9CgoJCQkvLyBTdGF0ZSBpcyAiZG9uZSIgbm93CgkJCXN0YXRlID0gMjsKCgkJCS8vIENsZWFyIHRpbWVvdXQgaWYgaXQgZXhpc3RzCgkJCWlmICggdGltZW91dFRpbWVyICkgewoJCQkJY2xlYXJUaW1lb3V0KCB0aW1lb3V0VGltZXIgKTsKCQkJfQoKCQkJLy8gRGVyZWZlcmVuY2UgdHJhbnNwb3J0IGZvciBlYXJseSBnYXJiYWdlIGNvbGxlY3Rpb24KCQkJLy8gKG5vIG1hdHRlciBob3cgbG9uZyB0aGUganFYSFIgb2JqZWN0IHdpbGwgYmUgdXNlZCkKCQkJdHJhbnNwb3J0ID0gdW5kZWZpbmVkOwoKCQkJLy8gQ2FjaGUgcmVzcG9uc2UgaGVhZGVycwoJCQlyZXNwb25zZUhlYWRlcnNTdHJpbmcgPSBoZWFkZXJzIHx8ICIiOwoKCQkJLy8gU2V0IHJlYWR5U3RhdGUKCQkJanFYSFIucmVhZHlTdGF0ZSA9IHN0YXR1cyA/IDQgOiAwOwoKCQkJdmFyIGlzU3VjY2VzcywKCQkJCXN1Y2Nlc3MsCgkJCQllcnJvciwKCQkJCXJlc3BvbnNlID0gcmVzcG9uc2VzID8gYWpheEhhbmRsZVJlc3BvbnNlcyggcywganFYSFIsIHJlc3BvbnNlcyApIDogdW5kZWZpbmVkLAoJCQkJbGFzdE1vZGlmaWVkLAoJCQkJZXRhZzsKCgkJCS8vIElmIHN1Y2Nlc3NmdWwsIGhhbmRsZSB0eXBlIGNoYWluaW5nCgkJCWlmICggc3RhdHVzID49IDIwMCAmJiBzdGF0dXMgPCAzMDAgfHwgc3RhdHVzID09PSAzMDQgKSB7CgoJCQkJLy8gU2V0IHRoZSBJZi1Nb2RpZmllZC1TaW5jZSBhbmQvb3IgSWYtTm9uZS1NYXRjaCBoZWFkZXIsIGlmIGluIGlmTW9kaWZpZWQgbW9kZS4KCQkJCWlmICggcy5pZk1vZGlmaWVkICkgewoKCQkJCQlpZiAoICggbGFzdE1vZGlmaWVkID0ganFYSFIuZ2V0UmVzcG9uc2VIZWFkZXIoICJMYXN0LU1vZGlmaWVkIiApICkgKSB7CgkJCQkJCWpRdWVyeS5sYXN0TW9kaWZpZWRbIGlmTW9kaWZpZWRLZXkgXSA9IGxhc3RNb2RpZmllZDsKCQkJCQl9CgkJCQkJaWYgKCAoIGV0YWcgPSBqcVhIUi5nZXRSZXNwb25zZUhlYWRlciggIkV0YWciICkgKSApIHsKCQkJCQkJalF1ZXJ5LmV0YWdbIGlmTW9kaWZpZWRLZXkgXSA9IGV0YWc7CgkJCQkJfQoJCQkJfQoKCQkJCS8vIElmIG5vdCBtb2RpZmllZAoJCQkJaWYgKCBzdGF0dXMgPT09IDMwNCApIHsKCgkJCQkJc3RhdHVzVGV4dCA9ICJub3Rtb2RpZmllZCI7CgkJCQkJaXNTdWNjZXNzID0gdHJ1ZTsKCgkJCQkvLyBJZiB3ZSBoYXZlIGRhdGEKCQkJCX0gZWxzZSB7CgoJCQkJCXRyeSB7CgkJCQkJCXN1Y2Nlc3MgPSBhamF4Q29udmVydCggcywgcmVzcG9uc2UgKTsKCQkJCQkJc3RhdHVzVGV4dCA9ICJzdWNjZXNzIjsKCQkJCQkJaXNTdWNjZXNzID0gdHJ1ZTsKCQkJCQl9IGNhdGNoKGUpIHsKCQkJCQkJLy8gV2UgaGF2ZSBhIHBhcnNlcmVycm9yCgkJCQkJCXN0YXR1c1RleHQgPSAicGFyc2VyZXJyb3IiOwoJCQkJCQllcnJvciA9IGU7CgkJCQkJfQoJCQkJfQoJCQl9IGVsc2UgewoJCQkJLy8gV2UgZXh0cmFjdCBlcnJvciBmcm9tIHN0YXR1c1RleHQKCQkJCS8vIHRoZW4gbm9ybWFsaXplIHN0YXR1c1RleHQgYW5kIHN0YXR1cyBmb3Igbm9uLWFib3J0cwoJCQkJZXJyb3IgPSBzdGF0dXNUZXh0OwoJCQkJaWYoICFzdGF0dXNUZXh0IHx8IHN0YXR1cyApIHsKCQkJCQlzdGF0dXNUZXh0ID0gImVycm9yIjsKCQkJCQlpZiAoIHN0YXR1cyA8IDAgKSB7CgkJCQkJCXN0YXR1cyA9IDA7CgkJCQkJfQoJCQkJfQoJCQl9CgoJCQkvLyBTZXQgZGF0YSBmb3IgdGhlIGZha2UgeGhyIG9iamVjdAoJCQlqcVhIUi5zdGF0dXMgPSBzdGF0dXM7CgkJCWpxWEhSLnN0YXR1c1RleHQgPSBzdGF0dXNUZXh0OwoKCQkJLy8gU3VjY2Vzcy9FcnJvcgoJCQlpZiAoIGlzU3VjY2VzcyApIHsKCQkJCWRlZmVycmVkLnJlc29sdmVXaXRoKCBjYWxsYmFja0NvbnRleHQsIFsgc3VjY2Vzcywgc3RhdHVzVGV4dCwganFYSFIgXSApOwoJCQl9IGVsc2UgewoJCQkJZGVmZXJyZWQucmVqZWN0V2l0aCggY2FsbGJhY2tDb250ZXh0LCBbIGpxWEhSLCBzdGF0dXNUZXh0LCBlcnJvciBdICk7CgkJCX0KCgkJCS8vIFN0YXR1cy1kZXBlbmRlbnQgY2FsbGJhY2tzCgkJCWpxWEhSLnN0YXR1c0NvZGUoIHN0YXR1c0NvZGUgKTsKCQkJc3RhdHVzQ29kZSA9IHVuZGVmaW5lZDsKCgkJCWlmICggZmlyZUdsb2JhbHMgKSB7CgkJCQlnbG9iYWxFdmVudENvbnRleHQudHJpZ2dlciggImFqYXgiICsgKCBpc1N1Y2Nlc3MgPyAiU3VjY2VzcyIgOiAiRXJyb3IiICksCgkJCQkJCVsganFYSFIsIHMsIGlzU3VjY2VzcyA/IHN1Y2Nlc3MgOiBlcnJvciBdICk7CgkJCX0KCgkJCS8vIENvbXBsZXRlCgkJCWNvbXBsZXRlRGVmZXJyZWQucmVzb2x2ZVdpdGgoIGNhbGxiYWNrQ29udGV4dCwgWyBqcVhIUiwgc3RhdHVzVGV4dCBdICk7CgoJCQlpZiAoIGZpcmVHbG9iYWxzICkgewoJCQkJZ2xvYmFsRXZlbnRDb250ZXh0LnRyaWdnZXIoICJhamF4Q29tcGxldGUiLCBbIGpxWEhSLCBzXSApOwoJCQkJLy8gSGFuZGxlIHRoZSBnbG9iYWwgQUpBWCBjb3VudGVyCgkJCQlpZiAoICEoIC0talF1ZXJ5LmFjdGl2ZSApICkgewoJCQkJCWpRdWVyeS5ldmVudC50cmlnZ2VyKCAiYWpheFN0b3AiICk7CgkJCQl9CgkJCX0KCQl9CgoJCS8vIEF0dGFjaCBkZWZlcnJlZHMKCQlkZWZlcnJlZC5wcm9taXNlKCBqcVhIUiApOwoJCWpxWEhSLnN1Y2Nlc3MgPSBqcVhIUi5kb25lOwoJCWpxWEhSLmVycm9yID0ganFYSFIuZmFpbDsKCQlqcVhIUi5jb21wbGV0ZSA9IGNvbXBsZXRlRGVmZXJyZWQuZG9uZTsKCgkJLy8gU3RhdHVzLWRlcGVuZGVudCBjYWxsYmFja3MKCQlqcVhIUi5zdGF0dXNDb2RlID0gZnVuY3Rpb24oIG1hcCApIHsKCQkJaWYgKCBtYXAgKSB7CgkJCQl2YXIgdG1wOwoJCQkJaWYgKCBzdGF0ZSA8IDIgKSB7CgkJCQkJZm9yKCB0bXAgaW4gbWFwICkgewoJCQkJCQlzdGF0dXNDb2RlWyB0bXAgXSA9IFsgc3RhdHVzQ29kZVt0bXBdLCBtYXBbdG1wXSBdOwoJCQkJCX0KCQkJCX0gZWxzZSB7CgkJCQkJdG1wID0gbWFwWyBqcVhIUi5zdGF0dXMgXTsKCQkJCQlqcVhIUi50aGVuKCB0bXAsIHRtcCApOwoJCQkJfQoJCQl9CgkJCXJldHVybiB0aGlzOwoJCX07CgoJCS8vIFJlbW92ZSBoYXNoIGNoYXJhY3RlciAoIzc1MzE6IGFuZCBzdHJpbmcgcHJvbW90aW9uKQoJCS8vIEFkZCBwcm90b2NvbCBpZiBub3QgcHJvdmlkZWQgKCM1ODY2OiBJRTcgaXNzdWUgd2l0aCBwcm90b2NvbC1sZXNzIHVybHMpCgkJLy8gV2UgYWxzbyB1c2UgdGhlIHVybCBwYXJhbWV0ZXIgaWYgYXZhaWxhYmxlCgkJcy51cmwgPSAoICggdXJsIHx8IHMudXJsICkgKyAiIiApLnJlcGxhY2UoIHJoYXNoLCAiIiApLnJlcGxhY2UoIHJwcm90b2NvbCwgYWpheExvY1BhcnRzWyAxIF0gKyAiLy8iICk7CgoJCS8vIEV4dHJhY3QgZGF0YVR5cGVzIGxpc3QKCQlzLmRhdGFUeXBlcyA9IGpRdWVyeS50cmltKCBzLmRhdGFUeXBlIHx8ICIqIiApLnRvTG93ZXJDYXNlKCkuc3BsaXQoIHJzcGFjZXNBamF4ICk7CgoJCS8vIERldGVybWluZSBpZiBhIGNyb3NzLWRvbWFpbiByZXF1ZXN0IGlzIGluIG9yZGVyCgkJaWYgKCAhcy5jcm9zc0RvbWFpbiApIHsKCQkJcGFydHMgPSBydXJsLmV4ZWMoIHMudXJsLnRvTG93ZXJDYXNlKCkgKTsKCQkJcy5jcm9zc0RvbWFpbiA9ICEhKCBwYXJ0cyAmJgoJCQkJKCBwYXJ0c1sgMSBdICE9IGFqYXhMb2NQYXJ0c1sgMSBdIHx8IHBhcnRzWyAyIF0gIT0gYWpheExvY1BhcnRzWyAyIF0gfHwKCQkJCQkoIHBhcnRzWyAzIF0gfHwgKCBwYXJ0c1sgMSBdID09PSAiaHR0cDoiID8gODAgOiA0NDMgKSApICE9CgkJCQkJCSggYWpheExvY1BhcnRzWyAzIF0gfHwgKCBhamF4TG9jUGFydHNbIDEgXSA9PT0gImh0dHA6IiA/IDgwIDogNDQzICkgKSApCgkJCSk7CgkJfQoKCQkvLyBDb252ZXJ0IGRhdGEgaWYgbm90IGFscmVhZHkgYSBzdHJpbmcKCQlpZiAoIHMuZGF0YSAmJiBzLnByb2Nlc3NEYXRhICYmIHR5cGVvZiBzLmRhdGEgIT09ICJzdHJpbmciICkgewoJCQlzLmRhdGEgPSBqUXVlcnkucGFyYW0oIHMuZGF0YSwgcy50cmFkaXRpb25hbCApOwoJCX0KCgkJLy8gQXBwbHkgcHJlZmlsdGVycwoJCWluc3BlY3RQcmVmaWx0ZXJzT3JUcmFuc3BvcnRzKCBwcmVmaWx0ZXJzLCBzLCBvcHRpb25zLCBqcVhIUiApOwoKCQkvLyBJZiByZXF1ZXN0IHdhcyBhYm9ydGVkIGluc2lkZSBhIHByZWZpbGVyLCBzdG9wIHRoZXJlCgkJaWYgKCBzdGF0ZSA9PT0gMiApIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCgkJLy8gV2UgY2FuIGZpcmUgZ2xvYmFsIGV2ZW50cyBhcyBvZiBub3cgaWYgYXNrZWQgdG8KCQlmaXJlR2xvYmFscyA9IHMuZ2xvYmFsOwoKCQkvLyBVcHBlcmNhc2UgdGhlIHR5cGUKCQlzLnR5cGUgPSBzLnR5cGUudG9VcHBlckNhc2UoKTsKCgkJLy8gRGV0ZXJtaW5lIGlmIHJlcXVlc3QgaGFzIGNvbnRlbnQKCQlzLmhhc0NvbnRlbnQgPSAhcm5vQ29udGVudC50ZXN0KCBzLnR5cGUgKTsKCgkJLy8gV2F0Y2ggZm9yIGEgbmV3IHNldCBvZiByZXF1ZXN0cwoJCWlmICggZmlyZUdsb2JhbHMgJiYgalF1ZXJ5LmFjdGl2ZSsrID09PSAwICkgewoJCQlqUXVlcnkuZXZlbnQudHJpZ2dlciggImFqYXhTdGFydCIgKTsKCQl9CgoJCS8vIE1vcmUgb3B0aW9ucyBoYW5kbGluZyBmb3IgcmVxdWVzdHMgd2l0aCBubyBjb250ZW50CgkJaWYgKCAhcy5oYXNDb250ZW50ICkgewoKCQkJLy8gSWYgZGF0YSBpcyBhdmFpbGFibGUsIGFwcGVuZCBkYXRhIHRvIHVybAoJCQlpZiAoIHMuZGF0YSApIHsKCQkJCXMudXJsICs9ICggcnF1ZXJ5LnRlc3QoIHMudXJsICkgPyAiJiIgOiAiPyIgKSArIHMuZGF0YTsKCQkJfQoKCQkJLy8gR2V0IGlmTW9kaWZpZWRLZXkgYmVmb3JlIGFkZGluZyB0aGUgYW50aS1jYWNoZSBwYXJhbWV0ZXIKCQkJaWZNb2RpZmllZEtleSA9IHMudXJsOwoKCQkJLy8gQWRkIGFudGktY2FjaGUgaW4gdXJsIGlmIG5lZWRlZAoJCQlpZiAoIHMuY2FjaGUgPT09IGZhbHNlICkgewoKCQkJCXZhciB0cyA9IGpRdWVyeS5ub3coKSwKCQkJCQkvLyB0cnkgcmVwbGFjaW5nIF89IGlmIGl0IGlzIHRoZXJlCgkJCQkJcmV0ID0gcy51cmwucmVwbGFjZSggcnRzLCAiJDFfPSIgKyB0cyApOwoKCQkJCS8vIGlmIG5vdGhpbmcgd2FzIHJlcGxhY2VkLCBhZGQgdGltZXN0YW1wIHRvIHRoZSBlbmQKCQkJCXMudXJsID0gcmV0ICsgKCAocmV0ID09PSBzLnVybCApID8gKCBycXVlcnkudGVzdCggcy51cmwgKSA/ICImIiA6ICI/IiApICsgIl89IiArIHRzIDogIiIgKTsKCQkJfQoJCX0KCgkJLy8gU2V0IHRoZSBjb3JyZWN0IGhlYWRlciwgaWYgZGF0YSBpcyBiZWluZyBzZW50CgkJaWYgKCBzLmRhdGEgJiYgcy5oYXNDb250ZW50ICYmIHMuY29udGVudFR5cGUgIT09IGZhbHNlIHx8IG9wdGlvbnMuY29udGVudFR5cGUgKSB7CgkJCXJlcXVlc3RIZWFkZXJzWyAiQ29udGVudC1UeXBlIiBdID0gcy5jb250ZW50VHlwZTsKCQl9CgoJCS8vIFNldCB0aGUgSWYtTW9kaWZpZWQtU2luY2UgYW5kL29yIElmLU5vbmUtTWF0Y2ggaGVhZGVyLCBpZiBpbiBpZk1vZGlmaWVkIG1vZGUuCgkJaWYgKCBzLmlmTW9kaWZpZWQgKSB7CgkJCWlmTW9kaWZpZWRLZXkgPSBpZk1vZGlmaWVkS2V5IHx8IHMudXJsOwoJCQlpZiAoIGpRdWVyeS5sYXN0TW9kaWZpZWRbIGlmTW9kaWZpZWRLZXkgXSApIHsKCQkJCXJlcXVlc3RIZWFkZXJzWyAiSWYtTW9kaWZpZWQtU2luY2UiIF0gPSBqUXVlcnkubGFzdE1vZGlmaWVkWyBpZk1vZGlmaWVkS2V5IF07CgkJCX0KCQkJaWYgKCBqUXVlcnkuZXRhZ1sgaWZNb2RpZmllZEtleSBdICkgewoJCQkJcmVxdWVzdEhlYWRlcnNbICJJZi1Ob25lLU1hdGNoIiBdID0galF1ZXJ5LmV0YWdbIGlmTW9kaWZpZWRLZXkgXTsKCQkJfQoJCX0KCgkJLy8gU2V0IHRoZSBBY2NlcHRzIGhlYWRlciBmb3IgdGhlIHNlcnZlciwgZGVwZW5kaW5nIG9uIHRoZSBkYXRhVHlwZQoJCXJlcXVlc3RIZWFkZXJzLkFjY2VwdCA9IHMuZGF0YVR5cGVzWyAwIF0gJiYgcy5hY2NlcHRzWyBzLmRhdGFUeXBlc1swXSBdID8KCQkJcy5hY2NlcHRzWyBzLmRhdGFUeXBlc1swXSBdICsgKCBzLmRhdGFUeXBlc1sgMCBdICE9PSAiKiIgPyAiLCAqLyo7IHE9MC4wMSIgOiAiIiApIDoKCQkJcy5hY2NlcHRzWyAiKiIgXTsKCgkJLy8gQ2hlY2sgZm9yIGhlYWRlcnMgb3B0aW9uCgkJZm9yICggaSBpbiBzLmhlYWRlcnMgKSB7CgkJCWpxWEhSLnNldFJlcXVlc3RIZWFkZXIoIGksIHMuaGVhZGVyc1sgaSBdICk7CgkJfQoKCQkvLyBBbGxvdyBjdXN0b20gaGVhZGVycy9taW1ldHlwZXMgYW5kIGVhcmx5IGFib3J0CgkJaWYgKCBzLmJlZm9yZVNlbmQgJiYgKCBzLmJlZm9yZVNlbmQuY2FsbCggY2FsbGJhY2tDb250ZXh0LCBqcVhIUiwgcyApID09PSBmYWxzZSB8fCBzdGF0ZSA9PT0gMiApICkgewoJCQkJLy8gQWJvcnQgaWYgbm90IGRvbmUgYWxyZWFkeQoJCQkJanFYSFIuYWJvcnQoKTsKCQkJCXJldHVybiBmYWxzZTsKCgkJfQoKCQkvLyBJbnN0YWxsIGNhbGxiYWNrcyBvbiBkZWZlcnJlZHMKCQlmb3IgKCBpIGluIHsgc3VjY2VzczogMSwgZXJyb3I6IDEsIGNvbXBsZXRlOiAxIH0gKSB7CgkJCWpxWEhSWyBpIF0oIHNbIGkgXSApOwoJCX0KCgkJLy8gR2V0IHRyYW5zcG9ydAoJCXRyYW5zcG9ydCA9IGluc3BlY3RQcmVmaWx0ZXJzT3JUcmFuc3BvcnRzKCB0cmFuc3BvcnRzLCBzLCBvcHRpb25zLCBqcVhIUiApOwoKCQkvLyBJZiBubyB0cmFuc3BvcnQsIHdlIGF1dG8tYWJvcnQKCQlpZiAoICF0cmFuc3BvcnQgKSB7CgkJCWRvbmUoIC0xLCAiTm8gVHJhbnNwb3J0IiApOwoJCX0gZWxzZSB7CgkJCWpxWEhSLnJlYWR5U3RhdGUgPSAxOwoJCQkvLyBTZW5kIGdsb2JhbCBldmVudAoJCQlpZiAoIGZpcmVHbG9iYWxzICkgewoJCQkJZ2xvYmFsRXZlbnRDb250ZXh0LnRyaWdnZXIoICJhamF4U2VuZCIsIFsganFYSFIsIHMgXSApOwoJCQl9CgkJCS8vIFRpbWVvdXQKCQkJaWYgKCBzLmFzeW5jICYmIHMudGltZW91dCA+IDAgKSB7CgkJCQl0aW1lb3V0VGltZXIgPSBzZXRUaW1lb3V0KCBmdW5jdGlvbigpewoJCQkJCWpxWEhSLmFib3J0KCAidGltZW91dCIgKTsKCQkJCX0sIHMudGltZW91dCApOwoJCQl9CgoJCQl0cnkgewoJCQkJc3RhdGUgPSAxOwoJCQkJdHJhbnNwb3J0LnNlbmQoIHJlcXVlc3RIZWFkZXJzLCBkb25lICk7CgkJCX0gY2F0Y2ggKGUpIHsKCQkJCS8vIFByb3BhZ2F0ZSBleGNlcHRpb24gYXMgZXJyb3IgaWYgbm90IGRvbmUKCQkJCWlmICggc3RhdHVzIDwgMiApIHsKCQkJCQlkb25lKCAtMSwgZSApOwoJCQkJLy8gU2ltcGx5IHJldGhyb3cgb3RoZXJ3aXNlCgkJCQl9IGVsc2UgewoJCQkJCWpRdWVyeS5lcnJvciggZSApOwoJCQkJfQoJCQl9CgkJfQoKCQlyZXR1cm4ganFYSFI7Cgl9LAoKCS8vIFNlcmlhbGl6ZSBhbiBhcnJheSBvZiBmb3JtIGVsZW1lbnRzIG9yIGEgc2V0IG9mCgkvLyBrZXkvdmFsdWVzIGludG8gYSBxdWVyeSBzdHJpbmcKCXBhcmFtOiBmdW5jdGlvbiggYSwgdHJhZGl0aW9uYWwgKSB7CgkJdmFyIHMgPSBbXSwKCQkJYWRkID0gZnVuY3Rpb24oIGtleSwgdmFsdWUgKSB7CgkJCQkvLyBJZiB2YWx1ZSBpcyBhIGZ1bmN0aW9uLCBpbnZva2UgaXQgYW5kIHJldHVybiBpdHMgdmFsdWUKCQkJCXZhbHVlID0galF1ZXJ5LmlzRnVuY3Rpb24oIHZhbHVlICkgPyB2YWx1ZSgpIDogdmFsdWU7CgkJCQlzWyBzLmxlbmd0aCBdID0gZW5jb2RlVVJJQ29tcG9uZW50KCBrZXkgKSArICI9IiArIGVuY29kZVVSSUNvbXBvbmVudCggdmFsdWUgKTsKCQkJfTsKCgkJLy8gU2V0IHRyYWRpdGlvbmFsIHRvIHRydWUgZm9yIGpRdWVyeSA8PSAxLjMuMiBiZWhhdmlvci4KCQlpZiAoIHRyYWRpdGlvbmFsID09PSB1bmRlZmluZWQgKSB7CgkJCXRyYWRpdGlvbmFsID0galF1ZXJ5LmFqYXhTZXR0aW5ncy50cmFkaXRpb25hbDsKCQl9CgoJCS8vIElmIGFuIGFycmF5IHdhcyBwYXNzZWQgaW4sIGFzc3VtZSB0aGF0IGl0IGlzIGFuIGFycmF5IG9mIGZvcm0gZWxlbWVudHMuCgkJaWYgKCBqUXVlcnkuaXNBcnJheSggYSApIHx8ICggYS5qcXVlcnkgJiYgIWpRdWVyeS5pc1BsYWluT2JqZWN0KCBhICkgKSApIHsKCQkJLy8gU2VyaWFsaXplIHRoZSBmb3JtIGVsZW1lbnRzCgkJCWpRdWVyeS5lYWNoKCBhLCBmdW5jdGlvbigpIHsKCQkJCWFkZCggdGhpcy5uYW1lLCB0aGlzLnZhbHVlICk7CgkJCX0gKTsKCgkJfSBlbHNlIHsKCQkJLy8gSWYgdHJhZGl0aW9uYWwsIGVuY29kZSB0aGUgIm9sZCIgd2F5ICh0aGUgd2F5IDEuMy4yIG9yIG9sZGVyCgkJCS8vIGRpZCBpdCksIG90aGVyd2lzZSBlbmNvZGUgcGFyYW1zIHJlY3Vyc2l2ZWx5LgoJCQlmb3IgKCB2YXIgcHJlZml4IGluIGEgKSB7CgkJCQlidWlsZFBhcmFtcyggcHJlZml4LCBhWyBwcmVmaXggXSwgdHJhZGl0aW9uYWwsIGFkZCApOwoJCQl9CgkJfQoKCQkvLyBSZXR1cm4gdGhlIHJlc3VsdGluZyBzZXJpYWxpemF0aW9uCgkJcmV0dXJuIHMuam9pbiggIiYiICkucmVwbGFjZSggcjIwLCAiKyIgKTsKCX0KfSk7CgpmdW5jdGlvbiBidWlsZFBhcmFtcyggcHJlZml4LCBvYmosIHRyYWRpdGlvbmFsLCBhZGQgKSB7CglpZiAoIGpRdWVyeS5pc0FycmF5KCBvYmogKSAmJiBvYmoubGVuZ3RoICkgewoJCS8vIFNlcmlhbGl6ZSBhcnJheSBpdGVtLgoJCWpRdWVyeS5lYWNoKCBvYmosIGZ1bmN0aW9uKCBpLCB2ICkgewoJCQlpZiAoIHRyYWRpdGlvbmFsIHx8IHJicmFja2V0LnRlc3QoIHByZWZpeCApICkgewoJCQkJLy8gVHJlYXQgZWFjaCBhcnJheSBpdGVtIGFzIGEgc2NhbGFyLgoJCQkJYWRkKCBwcmVmaXgsIHYgKTsKCgkJCX0gZWxzZSB7CgkJCQkvLyBJZiBhcnJheSBpdGVtIGlzIG5vbi1zY2FsYXIgKGFycmF5IG9yIG9iamVjdCksIGVuY29kZSBpdHMKCQkJCS8vIG51bWVyaWMgaW5kZXggdG8gcmVzb2x2ZSBkZXNlcmlhbGl6YXRpb24gYW1iaWd1aXR5IGlzc3Vlcy4KCQkJCS8vIE5vdGUgdGhhdCByYWNrIChhcyBvZiAxLjAuMCkgY2FuJ3QgY3VycmVudGx5IGRlc2VyaWFsaXplCgkJCQkvLyBuZXN0ZWQgYXJyYXlzIHByb3Blcmx5LCBhbmQgYXR0ZW1wdGluZyB0byBkbyBzbyBtYXkgY2F1c2UKCQkJCS8vIGEgc2VydmVyIGVycm9yLiBQb3NzaWJsZSBmaXhlcyBhcmUgdG8gbW9kaWZ5IHJhY2sncwoJCQkJLy8gZGVzZXJpYWxpemF0aW9uIGFsZ29yaXRobSBvciB0byBwcm92aWRlIGFuIG9wdGlvbiBvciBmbGFnCgkJCQkvLyB0byBmb3JjZSBhcnJheSBzZXJpYWxpemF0aW9uIHRvIGJlIHNoYWxsb3cuCgkJCQlidWlsZFBhcmFtcyggcHJlZml4ICsgIlsiICsgKCB0eXBlb2YgdiA9PT0gIm9iamVjdCIgfHwgalF1ZXJ5LmlzQXJyYXkodikgPyBpIDogIiIgKSArICJdIiwgdiwgdHJhZGl0aW9uYWwsIGFkZCApOwoJCQl9CgkJfSk7CgoJfSBlbHNlIGlmICggIXRyYWRpdGlvbmFsICYmIG9iaiAhPSBudWxsICYmIHR5cGVvZiBvYmogPT09ICJvYmplY3QiICkgewoJCS8vIElmIHdlIHNlZSBhbiBhcnJheSBoZXJlLCBpdCBpcyBlbXB0eSBhbmQgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYW4gZW1wdHkKCQkvLyBvYmplY3QKCQlpZiAoIGpRdWVyeS5pc0FycmF5KCBvYmogKSB8fCBqUXVlcnkuaXNFbXB0eU9iamVjdCggb2JqICkgKSB7CgkJCWFkZCggcHJlZml4LCAiIiApOwoKCQkvLyBTZXJpYWxpemUgb2JqZWN0IGl0ZW0uCgkJfSBlbHNlIHsKCQkJZm9yICggdmFyIG5hbWUgaW4gb2JqICkgewoJCQkJYnVpbGRQYXJhbXMoIHByZWZpeCArICJbIiArIG5hbWUgKyAiXSIsIG9ialsgbmFtZSBdLCB0cmFkaXRpb25hbCwgYWRkICk7CgkJCX0KCQl9CgoJfSBlbHNlIHsKCQkvLyBTZXJpYWxpemUgc2NhbGFyIGl0ZW0uCgkJYWRkKCBwcmVmaXgsIG9iaiApOwoJfQp9CgovLyBUaGlzIGlzIHN0aWxsIG9uIHRoZSBqUXVlcnkgb2JqZWN0Li4uIGZvciBub3cKLy8gV2FudCB0byBtb3ZlIHRoaXMgdG8galF1ZXJ5LmFqYXggc29tZSBkYXkKalF1ZXJ5LmV4dGVuZCh7CgoJLy8gQ291bnRlciBmb3IgaG9sZGluZyB0aGUgbnVtYmVyIG9mIGFjdGl2ZSBxdWVyaWVzCglhY3RpdmU6IDAsCgoJLy8gTGFzdC1Nb2RpZmllZCBoZWFkZXIgY2FjaGUgZm9yIG5leHQgcmVxdWVzdAoJbGFzdE1vZGlmaWVkOiB7fSwKCWV0YWc6IHt9Cgp9KTsKCi8qIEhhbmRsZXMgcmVzcG9uc2VzIHRvIGFuIGFqYXggcmVxdWVzdDoKICogLSBzZXRzIGFsbCByZXNwb25zZVhYWCBmaWVsZHMgYWNjb3JkaW5nbHkKICogLSBmaW5kcyB0aGUgcmlnaHQgZGF0YVR5cGUgKG1lZGlhdGVzIGJldHdlZW4gY29udGVudC10eXBlIGFuZCBleHBlY3RlZCBkYXRhVHlwZSkKICogLSByZXR1cm5zIHRoZSBjb3JyZXNwb25kaW5nIHJlc3BvbnNlCiAqLwpmdW5jdGlvbiBhamF4SGFuZGxlUmVzcG9uc2VzKCBzLCBqcVhIUiwgcmVzcG9uc2VzICkgewoKCXZhciBjb250ZW50cyA9IHMuY29udGVudHMsCgkJZGF0YVR5cGVzID0gcy5kYXRhVHlwZXMsCgkJcmVzcG9uc2VGaWVsZHMgPSBzLnJlc3BvbnNlRmllbGRzLAoJCWN0LAoJCXR5cGUsCgkJZmluYWxEYXRhVHlwZSwKCQlmaXJzdERhdGFUeXBlOwoKCS8vIEZpbGwgcmVzcG9uc2VYWFggZmllbGRzCglmb3IoIHR5cGUgaW4gcmVzcG9uc2VGaWVsZHMgKSB7CgkJaWYgKCB0eXBlIGluIHJlc3BvbnNlcyApIHsKCQkJanFYSFJbIHJlc3BvbnNlRmllbGRzW3R5cGVdIF0gPSByZXNwb25zZXNbIHR5cGUgXTsKCQl9Cgl9CgoJLy8gUmVtb3ZlIGF1dG8gZGF0YVR5cGUgYW5kIGdldCBjb250ZW50LXR5cGUgaW4gdGhlIHByb2Nlc3MKCXdoaWxlKCBkYXRhVHlwZXNbIDAgXSA9PT0gIioiICkgewoJCWRhdGFUeXBlcy5zaGlmdCgpOwoJCWlmICggY3QgPT09IHVuZGVmaW5lZCApIHsKCQkJY3QgPSBzLm1pbWVUeXBlIHx8IGpxWEhSLmdldFJlc3BvbnNlSGVhZGVyKCAiY29udGVudC10eXBlIiApOwoJCX0KCX0KCgkvLyBDaGVjayBpZiB3ZSdyZSBkZWFsaW5nIHdpdGggYSBrbm93biBjb250ZW50LXR5cGUKCWlmICggY3QgKSB7CgkJZm9yICggdHlwZSBpbiBjb250ZW50cyApIHsKCQkJaWYgKCBjb250ZW50c1sgdHlwZSBdICYmIGNvbnRlbnRzWyB0eXBlIF0udGVzdCggY3QgKSApIHsKCQkJCWRhdGFUeXBlcy51bnNoaWZ0KCB0eXBlICk7CgkJCQlicmVhazsKCQkJfQoJCX0KCX0KCgkvLyBDaGVjayB0byBzZWUgaWYgd2UgaGF2ZSBhIHJlc3BvbnNlIGZvciB0aGUgZXhwZWN0ZWQgZGF0YVR5cGUKCWlmICggZGF0YVR5cGVzWyAwIF0gaW4gcmVzcG9uc2VzICkgewoJCWZpbmFsRGF0YVR5cGUgPSBkYXRhVHlwZXNbIDAgXTsKCX0gZWxzZSB7CgkJLy8gVHJ5IGNvbnZlcnRpYmxlIGRhdGFUeXBlcwoJCWZvciAoIHR5cGUgaW4gcmVzcG9uc2VzICkgewoJCQlpZiAoICFkYXRhVHlwZXNbIDAgXSB8fCBzLmNvbnZlcnRlcnNbIHR5cGUgKyAiICIgKyBkYXRhVHlwZXNbMF0gXSApIHsKCQkJCWZpbmFsRGF0YVR5cGUgPSB0eXBlOwoJCQkJYnJlYWs7CgkJCX0KCQkJaWYgKCAhZmlyc3REYXRhVHlwZSApIHsKCQkJCWZpcnN0RGF0YVR5cGUgPSB0eXBlOwoJCQl9CgkJfQoJCS8vIE9yIGp1c3QgdXNlIGZpcnN0IG9uZQoJCWZpbmFsRGF0YVR5cGUgPSBmaW5hbERhdGFUeXBlIHx8IGZpcnN0RGF0YVR5cGU7Cgl9CgoJLy8gSWYgd2UgZm91bmQgYSBkYXRhVHlwZQoJLy8gV2UgYWRkIHRoZSBkYXRhVHlwZSB0byB0aGUgbGlzdCBpZiBuZWVkZWQKCS8vIGFuZCByZXR1cm4gdGhlIGNvcnJlc3BvbmRpbmcgcmVzcG9uc2UKCWlmICggZmluYWxEYXRhVHlwZSApIHsKCQlpZiAoIGZpbmFsRGF0YVR5cGUgIT09IGRhdGFUeXBlc1sgMCBdICkgewoJCQlkYXRhVHlwZXMudW5zaGlmdCggZmluYWxEYXRhVHlwZSApOwoJCX0KCQlyZXR1cm4gcmVzcG9uc2VzWyBmaW5hbERhdGFUeXBlIF07Cgl9Cn0KCi8vIENoYWluIGNvbnZlcnNpb25zIGdpdmVuIHRoZSByZXF1ZXN0IGFuZCB0aGUgb3JpZ2luYWwgcmVzcG9uc2UKZnVuY3Rpb24gYWpheENvbnZlcnQoIHMsIHJlc3BvbnNlICkgewoKCS8vIEFwcGx5IHRoZSBkYXRhRmlsdGVyIGlmIHByb3ZpZGVkCglpZiAoIHMuZGF0YUZpbHRlciApIHsKCQlyZXNwb25zZSA9IHMuZGF0YUZpbHRlciggcmVzcG9uc2UsIHMuZGF0YVR5cGUgKTsKCX0KCgl2YXIgZGF0YVR5cGVzID0gcy5kYXRhVHlwZXMsCgkJY29udmVydGVycyA9IHt9LAoJCWksCgkJa2V5LAoJCWxlbmd0aCA9IGRhdGFUeXBlcy5sZW5ndGgsCgkJdG1wLAoJCS8vIEN1cnJlbnQgYW5kIHByZXZpb3VzIGRhdGFUeXBlcwoJCWN1cnJlbnQgPSBkYXRhVHlwZXNbIDAgXSwKCQlwcmV2LAoJCS8vIENvbnZlcnNpb24gZXhwcmVzc2lvbgoJCWNvbnZlcnNpb24sCgkJLy8gQ29udmVyc2lvbiBmdW5jdGlvbgoJCWNvbnYsCgkJLy8gQ29udmVyc2lvbiBmdW5jdGlvbnMgKHRyYW5zaXRpdmUgY29udmVyc2lvbikKCQljb252MSwKCQljb252MjsKCgkvLyBGb3IgZWFjaCBkYXRhVHlwZSBpbiB0aGUgY2hhaW4KCWZvciggaSA9IDE7IGkgPCBsZW5ndGg7IGkrKyApIHsKCgkJLy8gQ3JlYXRlIGNvbnZlcnRlcnMgbWFwCgkJLy8gd2l0aCBsb3dlcmNhc2VkIGtleXMKCQlpZiAoIGkgPT09IDEgKSB7CgkJCWZvcigga2V5IGluIHMuY29udmVydGVycyApIHsKCQkJCWlmKCB0eXBlb2Yga2V5ID09PSAic3RyaW5nIiApIHsKCQkJCQljb252ZXJ0ZXJzWyBrZXkudG9Mb3dlckNhc2UoKSBdID0gcy5jb252ZXJ0ZXJzWyBrZXkgXTsKCQkJCX0KCQkJfQoJCX0KCgkJLy8gR2V0IHRoZSBkYXRhVHlwZXMKCQlwcmV2ID0gY3VycmVudDsKCQljdXJyZW50ID0gZGF0YVR5cGVzWyBpIF07CgoJCS8vIElmIGN1cnJlbnQgaXMgYXV0byBkYXRhVHlwZSwgdXBkYXRlIGl0IHRvIHByZXYKCQlpZiggY3VycmVudCA9PT0gIioiICkgewoJCQljdXJyZW50ID0gcHJldjsKCQkvLyBJZiBubyBhdXRvIGFuZCBkYXRhVHlwZXMgYXJlIGFjdHVhbGx5IGRpZmZlcmVudAoJCX0gZWxzZSBpZiAoIHByZXYgIT09ICIqIiAmJiBwcmV2ICE9PSBjdXJyZW50ICkgewoKCQkJLy8gR2V0IHRoZSBjb252ZXJ0ZXIKCQkJY29udmVyc2lvbiA9IHByZXYgKyAiICIgKyBjdXJyZW50OwoJCQljb252ID0gY29udmVydGVyc1sgY29udmVyc2lvbiBdIHx8IGNvbnZlcnRlcnNbICIqICIgKyBjdXJyZW50IF07CgoJCQkvLyBJZiB0aGVyZSBpcyBubyBkaXJlY3QgY29udmVydGVyLCBzZWFyY2ggdHJhbnNpdGl2ZWx5CgkJCWlmICggIWNvbnYgKSB7CgkJCQljb252MiA9IHVuZGVmaW5lZDsKCQkJCWZvciggY29udjEgaW4gY29udmVydGVycyApIHsKCQkJCQl0bXAgPSBjb252MS5zcGxpdCggIiAiICk7CgkJCQkJaWYgKCB0bXBbIDAgXSA9PT0gcHJldiB8fCB0bXBbIDAgXSA9PT0gIioiICkgewoJCQkJCQljb252MiA9IGNvbnZlcnRlcnNbIHRtcFsxXSArICIgIiArIGN1cnJlbnQgXTsKCQkJCQkJaWYgKCBjb252MiApIHsKCQkJCQkJCWNvbnYxID0gY29udmVydGVyc1sgY29udjEgXTsKCQkJCQkJCWlmICggY29udjEgPT09IHRydWUgKSB7CgkJCQkJCQkJY29udiA9IGNvbnYyOwoJCQkJCQkJfSBlbHNlIGlmICggY29udjIgPT09IHRydWUgKSB7CgkJCQkJCQkJY29udiA9IGNvbnYxOwoJCQkJCQkJfQoJCQkJCQkJYnJlYWs7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCX0KCQkJLy8gSWYgd2UgZm91bmQgbm8gY29udmVydGVyLCBkaXNwYXRjaCBhbiBlcnJvcgoJCQlpZiAoICEoIGNvbnYgfHwgY29udjIgKSApIHsKCQkJCWpRdWVyeS5lcnJvciggIk5vIGNvbnZlcnNpb24gZnJvbSAiICsgY29udmVyc2lvbi5yZXBsYWNlKCIgIiwiIHRvICIpICk7CgkJCX0KCQkJLy8gSWYgZm91bmQgY29udmVydGVyIGlzIG5vdCBhbiBlcXVpdmFsZW5jZQoJCQlpZiAoIGNvbnYgIT09IHRydWUgKSB7CgkJCQkvLyBDb252ZXJ0IHdpdGggMSBvciAyIGNvbnZlcnRlcnMgYWNjb3JkaW5nbHkKCQkJCXJlc3BvbnNlID0gY29udiA/IGNvbnYoIHJlc3BvbnNlICkgOiBjb252MiggY29udjEocmVzcG9uc2UpICk7CgkJCX0KCQl9Cgl9CglyZXR1cm4gcmVzcG9uc2U7Cn0KCgoKCnZhciBqc2MgPSBqUXVlcnkubm93KCksCglqc3JlID0gLyhcPSlcPygmfCQpfCgpXD9cPygpL2k7CgovLyBEZWZhdWx0IGpzb25wIHNldHRpbmdzCmpRdWVyeS5hamF4U2V0dXAoewoJanNvbnA6ICJjYWxsYmFjayIsCglqc29ucENhbGxiYWNrOiBmdW5jdGlvbigpIHsKCQlyZXR1cm4galF1ZXJ5LmV4cGFuZG8gKyAiXyIgKyAoIGpzYysrICk7Cgl9Cn0pOwoKLy8gRGV0ZWN0LCBub3JtYWxpemUgb3B0aW9ucyBhbmQgaW5zdGFsbCBjYWxsYmFja3MgZm9yIGpzb25wIHJlcXVlc3RzCmpRdWVyeS5hamF4UHJlZmlsdGVyKCAianNvbiBqc29ucCIsIGZ1bmN0aW9uKCBzLCBvcmlnaW5hbFNldHRpbmdzLCBqcVhIUiApIHsKCgl2YXIgZGF0YUlzU3RyaW5nID0gKCB0eXBlb2Ygcy5kYXRhID09PSAic3RyaW5nIiApOwoKCWlmICggcy5kYXRhVHlwZXNbIDAgXSA9PT0gImpzb25wIiB8fAoJCW9yaWdpbmFsU2V0dGluZ3MuanNvbnBDYWxsYmFjayB8fAoJCW9yaWdpbmFsU2V0dGluZ3MuanNvbnAgIT0gbnVsbCB8fAoJCXMuanNvbnAgIT09IGZhbHNlICYmICgganNyZS50ZXN0KCBzLnVybCApIHx8CgkJCQlkYXRhSXNTdHJpbmcgJiYganNyZS50ZXN0KCBzLmRhdGEgKSApICkgewoKCQl2YXIgcmVzcG9uc2VDb250YWluZXIsCgkJCWpzb25wQ2FsbGJhY2sgPSBzLmpzb25wQ2FsbGJhY2sgPQoJCQkJalF1ZXJ5LmlzRnVuY3Rpb24oIHMuanNvbnBDYWxsYmFjayApID8gcy5qc29ucENhbGxiYWNrKCkgOiBzLmpzb25wQ2FsbGJhY2ssCgkJCXByZXZpb3VzID0gd2luZG93WyBqc29ucENhbGxiYWNrIF0sCgkJCXVybCA9IHMudXJsLAoJCQlkYXRhID0gcy5kYXRhLAoJCQlyZXBsYWNlID0gIiQxIiArIGpzb25wQ2FsbGJhY2sgKyAiJDIiLAoJCQljbGVhblVwID0gZnVuY3Rpb24oKSB7CgkJCQkvLyBTZXQgY2FsbGJhY2sgYmFjayB0byBwcmV2aW91cyB2YWx1ZQoJCQkJd2luZG93WyBqc29ucENhbGxiYWNrIF0gPSBwcmV2aW91czsKCQkJCS8vIENhbGwgaWYgaXQgd2FzIGEgZnVuY3Rpb24gYW5kIHdlIGhhdmUgYSByZXNwb25zZQoJCQkJaWYgKCByZXNwb25zZUNvbnRhaW5lciAmJiBqUXVlcnkuaXNGdW5jdGlvbiggcHJldmlvdXMgKSApIHsKCQkJCQl3aW5kb3dbIGpzb25wQ2FsbGJhY2sgXSggcmVzcG9uc2VDb250YWluZXJbIDAgXSApOwoJCQkJfQoJCQl9OwoKCQlpZiAoIHMuanNvbnAgIT09IGZhbHNlICkgewoJCQl1cmwgPSB1cmwucmVwbGFjZSgganNyZSwgcmVwbGFjZSApOwoJCQlpZiAoIHMudXJsID09PSB1cmwgKSB7CgkJCQlpZiAoIGRhdGFJc1N0cmluZyApIHsKCQkJCQlkYXRhID0gZGF0YS5yZXBsYWNlKCBqc3JlLCByZXBsYWNlICk7CgkJCQl9CgkJCQlpZiAoIHMuZGF0YSA9PT0gZGF0YSApIHsKCQkJCQkvLyBBZGQgY2FsbGJhY2sgbWFudWFsbHkKCQkJCQl1cmwgKz0gKC9cPy8udGVzdCggdXJsICkgPyAiJiIgOiAiPyIpICsgcy5qc29ucCArICI9IiArIGpzb25wQ2FsbGJhY2s7CgkJCQl9CgkJCX0KCQl9CgoJCXMudXJsID0gdXJsOwoJCXMuZGF0YSA9IGRhdGE7CgoJCS8vIEluc3RhbGwgY2FsbGJhY2sKCQl3aW5kb3dbIGpzb25wQ2FsbGJhY2sgXSA9IGZ1bmN0aW9uKCByZXNwb25zZSApIHsKCQkJcmVzcG9uc2VDb250YWluZXIgPSBbIHJlc3BvbnNlIF07CgkJfTsKCgkJLy8gSW5zdGFsbCBjbGVhblVwIGZ1bmN0aW9uCgkJanFYSFIudGhlbiggY2xlYW5VcCwgY2xlYW5VcCApOwoKCQkvLyBVc2UgZGF0YSBjb252ZXJ0ZXIgdG8gcmV0cmlldmUganNvbiBhZnRlciBzY3JpcHQgZXhlY3V0aW9uCgkJcy5jb252ZXJ0ZXJzWyJzY3JpcHQganNvbiJdID0gZnVuY3Rpb24oKSB7CgkJCWlmICggIXJlc3BvbnNlQ29udGFpbmVyICkgewoJCQkJalF1ZXJ5LmVycm9yKCBqc29ucENhbGxiYWNrICsgIiB3YXMgbm90IGNhbGxlZCIgKTsKCQkJfQoJCQlyZXR1cm4gcmVzcG9uc2VDb250YWluZXJbIDAgXTsKCQl9OwoKCQkvLyBmb3JjZSBqc29uIGRhdGFUeXBlCgkJcy5kYXRhVHlwZXNbIDAgXSA9ICJqc29uIjsKCgkJLy8gRGVsZWdhdGUgdG8gc2NyaXB0CgkJcmV0dXJuICJzY3JpcHQiOwoJfQp9ICk7CgoKCgovLyBJbnN0YWxsIHNjcmlwdCBkYXRhVHlwZQpqUXVlcnkuYWpheFNldHVwKHsKCWFjY2VwdHM6IHsKCQlzY3JpcHQ6ICJ0ZXh0L2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2VjbWFzY3JpcHQsIGFwcGxpY2F0aW9uL3gtZWNtYXNjcmlwdCIKCX0sCgljb250ZW50czogewoJCXNjcmlwdDogL2phdmFzY3JpcHR8ZWNtYXNjcmlwdC8KCX0sCgljb252ZXJ0ZXJzOiB7CgkJInRleHQgc2NyaXB0IjogZnVuY3Rpb24oIHRleHQgKSB7CgkJCWpRdWVyeS5nbG9iYWxFdmFsKCB0ZXh0ICk7CgkJCXJldHVybiB0ZXh0OwoJCX0KCX0KfSk7CgovLyBIYW5kbGUgY2FjaGUncyBzcGVjaWFsIGNhc2UgYW5kIGdsb2JhbApqUXVlcnkuYWpheFByZWZpbHRlciggInNjcmlwdCIsIGZ1bmN0aW9uKCBzICkgewoJaWYgKCBzLmNhY2hlID09PSB1bmRlZmluZWQgKSB7CgkJcy5jYWNoZSA9IGZhbHNlOwoJfQoJaWYgKCBzLmNyb3NzRG9tYWluICkgewoJCXMudHlwZSA9ICJHRVQiOwoJCXMuZ2xvYmFsID0gZmFsc2U7Cgl9Cn0gKTsKCi8vIEJpbmQgc2NyaXB0IHRhZyBoYWNrIHRyYW5zcG9ydApqUXVlcnkuYWpheFRyYW5zcG9ydCggInNjcmlwdCIsIGZ1bmN0aW9uKHMpIHsKCgkvLyBUaGlzIHRyYW5zcG9ydCBvbmx5IGRlYWxzIHdpdGggY3Jvc3MgZG9tYWluIHJlcXVlc3RzCglpZiAoIHMuY3Jvc3NEb21haW4gKSB7CgoJCXZhciBzY3JpcHQsCgkJCWhlYWQgPSBkb2N1bWVudC5oZWFkIHx8IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCAiaGVhZCIgKVswXSB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CgoJCXJldHVybiB7CgoJCQlzZW5kOiBmdW5jdGlvbiggXywgY2FsbGJhY2sgKSB7CgoJCQkJc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggInNjcmlwdCIgKTsKCgkJCQlzY3JpcHQuYXN5bmMgPSAiYXN5bmMiOwoKCQkJCWlmICggcy5zY3JpcHRDaGFyc2V0ICkgewoJCQkJCXNjcmlwdC5jaGFyc2V0ID0gcy5zY3JpcHRDaGFyc2V0OwoJCQkJfQoKCQkJCXNjcmlwdC5zcmMgPSBzLnVybDsKCgkJCQkvLyBBdHRhY2ggaGFuZGxlcnMgZm9yIGFsbCBicm93c2VycwoJCQkJc2NyaXB0Lm9ubG9hZCA9IHNjcmlwdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiggXywgaXNBYm9ydCApIHsKCgkJCQkJaWYgKCAhc2NyaXB0LnJlYWR5U3RhdGUgfHwgL2xvYWRlZHxjb21wbGV0ZS8udGVzdCggc2NyaXB0LnJlYWR5U3RhdGUgKSApIHsKCgkJCQkJCS8vIEhhbmRsZSBtZW1vcnkgbGVhayBpbiBJRQoJCQkJCQlzY3JpcHQub25sb2FkID0gc2NyaXB0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IG51bGw7CgoJCQkJCQkvLyBSZW1vdmUgdGhlIHNjcmlwdAoJCQkJCQlpZiAoIGhlYWQgJiYgc2NyaXB0LnBhcmVudE5vZGUgKSB7CgkJCQkJCQloZWFkLnJlbW92ZUNoaWxkKCBzY3JpcHQgKTsKCQkJCQkJfQoKCQkJCQkJLy8gRGVyZWZlcmVuY2UgdGhlIHNjcmlwdAoJCQkJCQlzY3JpcHQgPSB1bmRlZmluZWQ7CgoJCQkJCQkvLyBDYWxsYmFjayBpZiBub3QgYWJvcnQKCQkJCQkJaWYgKCAhaXNBYm9ydCApIHsKCQkJCQkJCWNhbGxiYWNrKCAyMDAsICJzdWNjZXNzIiApOwoJCQkJCQl9CgkJCQkJfQoJCQkJfTsKCQkJCS8vIFVzZSBpbnNlcnRCZWZvcmUgaW5zdGVhZCBvZiBhcHBlbmRDaGlsZCAgdG8gY2lyY3VtdmVudCBhbiBJRTYgYnVnLgoJCQkJLy8gVGhpcyBhcmlzZXMgd2hlbiBhIGJhc2Ugbm9kZSBpcyB1c2VkICgjMjcwOSBhbmQgIzQzNzgpLgoJCQkJaGVhZC5pbnNlcnRCZWZvcmUoIHNjcmlwdCwgaGVhZC5maXJzdENoaWxkICk7CgkJCX0sCgoJCQlhYm9ydDogZnVuY3Rpb24oKSB7CgkJCQlpZiAoIHNjcmlwdCApIHsKCQkJCQlzY3JpcHQub25sb2FkKCAwLCAxICk7CgkJCQl9CgkJCX0KCQl9OwoJfQp9ICk7CgoKCgp2YXIgLy8gIzUyODA6IG5leHQgYWN0aXZlIHhociBpZCBhbmQgbGlzdCBvZiBhY3RpdmUgeGhycycgY2FsbGJhY2tzCgl4aHJJZCA9IGpRdWVyeS5ub3coKSwKCXhockNhbGxiYWNrcywKCgkvLyBYSFIgdXNlZCB0byBkZXRlcm1pbmUgc3VwcG9ydHMgcHJvcGVydGllcwoJdGVzdFhIUjsKCi8vICM1MjgwOiBJbnRlcm5ldCBFeHBsb3JlciB3aWxsIGtlZXAgY29ubmVjdGlvbnMgYWxpdmUgaWYgd2UgZG9uJ3QgYWJvcnQgb24gdW5sb2FkCmZ1bmN0aW9uIHhock9uVW5sb2FkQWJvcnQoKSB7CglqUXVlcnkoIHdpbmRvdyApLnVubG9hZChmdW5jdGlvbigpIHsKCQkvLyBBYm9ydCBhbGwgcGVuZGluZyByZXF1ZXN0cwoJCWZvciAoIHZhciBrZXkgaW4geGhyQ2FsbGJhY2tzICkgewoJCQl4aHJDYWxsYmFja3NbIGtleSBdKCAwLCAxICk7CgkJfQoJfSk7Cn0KCi8vIEZ1bmN0aW9ucyB0byBjcmVhdGUgeGhycwpmdW5jdGlvbiBjcmVhdGVTdGFuZGFyZFhIUigpIHsKCXRyeSB7CgkJcmV0dXJuIG5ldyB3aW5kb3cuWE1MSHR0cFJlcXVlc3QoKTsKCX0gY2F0Y2goIGUgKSB7fQp9CgpmdW5jdGlvbiBjcmVhdGVBY3RpdmVYSFIoKSB7Cgl0cnkgewoJCXJldHVybiBuZXcgd2luZG93LkFjdGl2ZVhPYmplY3QoICJNaWNyb3NvZnQuWE1MSFRUUCIgKTsKCX0gY2F0Y2goIGUgKSB7fQp9CgovLyBDcmVhdGUgdGhlIHJlcXVlc3Qgb2JqZWN0Ci8vIChUaGlzIGlzIHN0aWxsIGF0dGFjaGVkIHRvIGFqYXhTZXR0aW5ncyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSkKalF1ZXJ5LmFqYXhTZXR0aW5ncy54aHIgPSB3aW5kb3cuQWN0aXZlWE9iamVjdCA/CgkvKiBNaWNyb3NvZnQgZmFpbGVkIHRvIHByb3Blcmx5CgkgKiBpbXBsZW1lbnQgdGhlIFhNTEh0dHBSZXF1ZXN0IGluIElFNyAoY2FuJ3QgcmVxdWVzdCBsb2NhbCBmaWxlcyksCgkgKiBzbyB3ZSB1c2UgdGhlIEFjdGl2ZVhPYmplY3Qgd2hlbiBpdCBpcyBhdmFpbGFibGUKCSAqIEFkZGl0aW9uYWxseSBYTUxIdHRwUmVxdWVzdCBjYW4gYmUgZGlzYWJsZWQgaW4gSUU3L0lFOCBzbwoJICogd2UgbmVlZCBhIGZhbGxiYWNrLgoJICovCglmdW5jdGlvbigpIHsKCQlyZXR1cm4gIXRoaXMuaXNMb2NhbCAmJiBjcmVhdGVTdGFuZGFyZFhIUigpIHx8IGNyZWF0ZUFjdGl2ZVhIUigpOwoJfSA6CgkvLyBGb3IgYWxsIG90aGVyIGJyb3dzZXJzLCB1c2UgdGhlIHN0YW5kYXJkIFhNTEh0dHBSZXF1ZXN0IG9iamVjdAoJY3JlYXRlU3RhbmRhcmRYSFI7CgovLyBUZXN0IGlmIHdlIGNhbiBjcmVhdGUgYW4geGhyIG9iamVjdAp0ZXN0WEhSID0galF1ZXJ5LmFqYXhTZXR0aW5ncy54aHIoKTsKalF1ZXJ5LnN1cHBvcnQuYWpheCA9ICEhdGVzdFhIUjsKCi8vIERvZXMgdGhpcyBicm93c2VyIHN1cHBvcnQgY3Jvc3NEb21haW4gWEhSIHJlcXVlc3RzCmpRdWVyeS5zdXBwb3J0LmNvcnMgPSB0ZXN0WEhSICYmICggIndpdGhDcmVkZW50aWFscyIgaW4gdGVzdFhIUiApOwoKLy8gTm8gbmVlZCBmb3IgdGhlIHRlbXBvcmFyeSB4aHIgYW55bW9yZQp0ZXN0WEhSID0gdW5kZWZpbmVkOwoKLy8gQ3JlYXRlIHRyYW5zcG9ydCBpZiB0aGUgYnJvd3NlciBjYW4gcHJvdmlkZSBhbiB4aHIKaWYgKCBqUXVlcnkuc3VwcG9ydC5hamF4ICkgewoKCWpRdWVyeS5hamF4VHJhbnNwb3J0KGZ1bmN0aW9uKCBzICkgewoJCS8vIENyb3NzIGRvbWFpbiBvbmx5IGFsbG93ZWQgaWYgc3VwcG9ydGVkIHRocm91Z2ggWE1MSHR0cFJlcXVlc3QKCQlpZiAoICFzLmNyb3NzRG9tYWluIHx8IGpRdWVyeS5zdXBwb3J0LmNvcnMgKSB7CgoJCQl2YXIgY2FsbGJhY2s7CgoJCQlyZXR1cm4gewoJCQkJc2VuZDogZnVuY3Rpb24oIGhlYWRlcnMsIGNvbXBsZXRlICkgewoKCQkJCQkvLyBHZXQgYSBuZXcgeGhyCgkJCQkJdmFyIHhociA9IHMueGhyKCksCgkJCQkJCWhhbmRsZSwKCQkJCQkJaTsKCgkJCQkJLy8gT3BlbiB0aGUgc29ja2V0CgkJCQkJLy8gUGFzc2luZyBudWxsIHVzZXJuYW1lLCBnZW5lcmF0ZXMgYSBsb2dpbiBwb3B1cCBvbiBPcGVyYSAoIzI4NjUpCgkJCQkJaWYgKCBzLnVzZXJuYW1lICkgewoJCQkJCQl4aHIub3Blbiggcy50eXBlLCBzLnVybCwgcy5hc3luYywgcy51c2VybmFtZSwgcy5wYXNzd29yZCApOwoJCQkJCX0gZWxzZSB7CgkJCQkJCXhoci5vcGVuKCBzLnR5cGUsIHMudXJsLCBzLmFzeW5jICk7CgkJCQkJfQoKCQkJCQkvLyBBcHBseSBjdXN0b20gZmllbGRzIGlmIHByb3ZpZGVkCgkJCQkJaWYgKCBzLnhockZpZWxkcyApIHsKCQkJCQkJZm9yICggaSBpbiBzLnhockZpZWxkcyApIHsKCQkJCQkJCXhoclsgaSBdID0gcy54aHJGaWVsZHNbIGkgXTsKCQkJCQkJfQoJCQkJCX0KCgkJCQkJLy8gT3ZlcnJpZGUgbWltZSB0eXBlIGlmIG5lZWRlZAoJCQkJCWlmICggcy5taW1lVHlwZSAmJiB4aHIub3ZlcnJpZGVNaW1lVHlwZSApIHsKCQkJCQkJeGhyLm92ZXJyaWRlTWltZVR5cGUoIHMubWltZVR5cGUgKTsKCQkJCQl9CgoJCQkJCS8vIFJlcXVlc3RlZC1XaXRoIGhlYWRlcgoJCQkJCS8vIE5vdCBzZXQgZm9yIGNyb3NzRG9tYWluIHJlcXVlc3RzIHdpdGggbm8gY29udGVudAoJCQkJCS8vIChzZWUgd2h5IGF0IGh0dHA6Ly90cmFjLmRvam90b29sa2l0Lm9yZy90aWNrZXQvOTQ4NikKCQkJCQkvLyBXb24ndCBjaGFuZ2UgaGVhZGVyIGlmIGFscmVhZHkgcHJvdmlkZWQKCQkJCQlpZiAoICEoIHMuY3Jvc3NEb21haW4gJiYgIXMuaGFzQ29udGVudCApICYmICFoZWFkZXJzWyJYLVJlcXVlc3RlZC1XaXRoIl0gKSB7CgkJCQkJCWhlYWRlcnNbICJYLVJlcXVlc3RlZC1XaXRoIiBdID0gIlhNTEh0dHBSZXF1ZXN0IjsKCQkJCQl9CgoJCQkJCS8vIE5lZWQgYW4gZXh0cmEgdHJ5L2NhdGNoIGZvciBjcm9zcyBkb21haW4gcmVxdWVzdHMgaW4gRmlyZWZveCAzCgkJCQkJdHJ5IHsKCQkJCQkJZm9yICggaSBpbiBoZWFkZXJzICkgewoJCQkJCQkJeGhyLnNldFJlcXVlc3RIZWFkZXIoIGksIGhlYWRlcnNbIGkgXSApOwoJCQkJCQl9CgkJCQkJfSBjYXRjaCggXyApIHt9CgoJCQkJCS8vIERvIHNlbmQgdGhlIHJlcXVlc3QKCQkJCQkvLyBUaGlzIG1heSByYWlzZSBhbiBleGNlcHRpb24gd2hpY2ggaXMgYWN0dWFsbHkKCQkJCQkvLyBoYW5kbGVkIGluIGpRdWVyeS5hamF4IChzbyBubyB0cnkvY2F0Y2ggaGVyZSkKCQkJCQl4aHIuc2VuZCggKCBzLmhhc0NvbnRlbnQgJiYgcy5kYXRhICkgfHwgbnVsbCApOwoKCQkJCQkvLyBMaXN0ZW5lcgoJCQkJCWNhbGxiYWNrID0gZnVuY3Rpb24oIF8sIGlzQWJvcnQgKSB7CgoJCQkJCQl2YXIgc3RhdHVzLAoJCQkJCQkJc3RhdHVzVGV4dCwKCQkJCQkJCXJlc3BvbnNlSGVhZGVycywKCQkJCQkJCXJlc3BvbnNlcywKCQkJCQkJCXhtbDsKCgkJCQkJCS8vIEZpcmVmb3ggdGhyb3dzIGV4Y2VwdGlvbnMgd2hlbiBhY2Nlc3NpbmcgcHJvcGVydGllcwoJCQkJCQkvLyBvZiBhbiB4aHIgd2hlbiBhIG5ldHdvcmsgZXJyb3Igb2NjdXJlZAoJCQkJCQkvLyBodHRwOi8vaGVscGZ1bC5rbm9icy1kaWFscy5jb20vaW5kZXgucGhwL0NvbXBvbmVudF9yZXR1cm5lZF9mYWlsdXJlX2NvZGU6XzB4ODAwNDAxMTFfKE5TX0VSUk9SX05PVF9BVkFJTEFCTEUpCgkJCQkJCXRyeSB7CgoJCQkJCQkJLy8gV2FzIG5ldmVyIGNhbGxlZCBhbmQgaXMgYWJvcnRlZCBvciBjb21wbGV0ZQoJCQkJCQkJaWYgKCBjYWxsYmFjayAmJiAoIGlzQWJvcnQgfHwgeGhyLnJlYWR5U3RhdGUgPT09IDQgKSApIHsKCgkJCQkJCQkJLy8gT25seSBjYWxsZWQgb25jZQoJCQkJCQkJCWNhbGxiYWNrID0gdW5kZWZpbmVkOwoKCQkJCQkJCQkvLyBEbyBub3Qga2VlcCBhcyBhY3RpdmUgYW55bW9yZQoJCQkJCQkJCWlmICggaGFuZGxlICkgewoJCQkJCQkJCQl4aHIub25yZWFkeXN0YXRlY2hhbmdlID0galF1ZXJ5Lm5vb3A7CgkJCQkJCQkJCWRlbGV0ZSB4aHJDYWxsYmFja3NbIGhhbmRsZSBdOwoJCQkJCQkJCX0KCgkJCQkJCQkJLy8gSWYgaXQncyBhbiBhYm9ydAoJCQkJCQkJCWlmICggaXNBYm9ydCApIHsKCQkJCQkJCQkJLy8gQWJvcnQgaXQgbWFudWFsbHkgaWYgbmVlZGVkCgkJCQkJCQkJCWlmICggeGhyLnJlYWR5U3RhdGUgIT09IDQgKSB7CgkJCQkJCQkJCQl4aHIuYWJvcnQoKTsKCQkJCQkJCQkJfQoJCQkJCQkJCX0gZWxzZSB7CgkJCQkJCQkJCXN0YXR1cyA9IHhoci5zdGF0dXM7CgkJCQkJCQkJCXJlc3BvbnNlSGVhZGVycyA9IHhoci5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKTsKCQkJCQkJCQkJcmVzcG9uc2VzID0ge307CgkJCQkJCQkJCXhtbCA9IHhoci5yZXNwb25zZVhNTDsKCgkJCQkJCQkJCS8vIENvbnN0cnVjdCByZXNwb25zZSBsaXN0CgkJCQkJCQkJCWlmICggeG1sICYmIHhtbC5kb2N1bWVudEVsZW1lbnQgLyogIzQ5NTggKi8gKSB7CgkJCQkJCQkJCQlyZXNwb25zZXMueG1sID0geG1sOwoJCQkJCQkJCQl9CgkJCQkJCQkJCXJlc3BvbnNlcy50ZXh0ID0geGhyLnJlc3BvbnNlVGV4dDsKCgkJCQkJCQkJCS8vIEZpcmVmb3ggdGhyb3dzIGFuIGV4Y2VwdGlvbiB3aGVuIGFjY2Vzc2luZwoJCQkJCQkJCQkvLyBzdGF0dXNUZXh0IGZvciBmYXVsdHkgY3Jvc3MtZG9tYWluIHJlcXVlc3RzCgkJCQkJCQkJCXRyeSB7CgkJCQkJCQkJCQlzdGF0dXNUZXh0ID0geGhyLnN0YXR1c1RleHQ7CgkJCQkJCQkJCX0gY2F0Y2goIGUgKSB7CgkJCQkJCQkJCQkvLyBXZSBub3JtYWxpemUgd2l0aCBXZWJraXQgZ2l2aW5nIGFuIGVtcHR5IHN0YXR1c1RleHQKCQkJCQkJCQkJCXN0YXR1c1RleHQgPSAiIjsKCQkJCQkJCQkJfQoKCQkJCQkJCQkJLy8gRmlsdGVyIHN0YXR1cyBmb3Igbm9uIHN0YW5kYXJkIGJlaGF2aW9ycwoKCQkJCQkJCQkJLy8gSWYgdGhlIHJlcXVlc3QgaXMgbG9jYWwgYW5kIHdlIGhhdmUgZGF0YTogYXNzdW1lIGEgc3VjY2VzcwoJCQkJCQkJCQkvLyAoc3VjY2VzcyB3aXRoIG5vIGRhdGEgd29uJ3QgZ2V0IG5vdGlmaWVkLCB0aGF0J3MgdGhlIGJlc3Qgd2UKCQkJCQkJCQkJLy8gY2FuIGRvIGdpdmVuIGN1cnJlbnQgaW1wbGVtZW50YXRpb25zKQoJCQkJCQkJCQlpZiAoICFzdGF0dXMgJiYgcy5pc0xvY2FsICYmICFzLmNyb3NzRG9tYWluICkgewoJCQkJCQkJCQkJc3RhdHVzID0gcmVzcG9uc2VzLnRleHQgPyAyMDAgOiA0MDQ7CgkJCQkJCQkJCS8vIElFIC0gIzE0NTA6IHNvbWV0aW1lcyByZXR1cm5zIDEyMjMgd2hlbiBpdCBzaG91bGQgYmUgMjA0CgkJCQkJCQkJCX0gZWxzZSBpZiAoIHN0YXR1cyA9PT0gMTIyMyApIHsKCQkJCQkJCQkJCXN0YXR1cyA9IDIwNDsKCQkJCQkJCQkJfQoJCQkJCQkJCX0KCQkJCQkJCX0KCQkJCQkJfSBjYXRjaCggZmlyZWZveEFjY2Vzc0V4Y2VwdGlvbiApIHsKCQkJCQkJCWlmICggIWlzQWJvcnQgKSB7CgkJCQkJCQkJY29tcGxldGUoIC0xLCBmaXJlZm94QWNjZXNzRXhjZXB0aW9uICk7CgkJCQkJCQl9CgkJCQkJCX0KCgkJCQkJCS8vIENhbGwgY29tcGxldGUgaWYgbmVlZGVkCgkJCQkJCWlmICggcmVzcG9uc2VzICkgewoJCQkJCQkJY29tcGxldGUoIHN0YXR1cywgc3RhdHVzVGV4dCwgcmVzcG9uc2VzLCByZXNwb25zZUhlYWRlcnMgKTsKCQkJCQkJfQoJCQkJCX07CgoJCQkJCS8vIGlmIHdlJ3JlIGluIHN5bmMgbW9kZSBvciBpdCdzIGluIGNhY2hlCgkJCQkJLy8gYW5kIGhhcyBiZWVuIHJldHJpZXZlZCBkaXJlY3RseSAoSUU2ICYgSUU3KQoJCQkJCS8vIHdlIG5lZWQgdG8gbWFudWFsbHkgZmlyZSB0aGUgY2FsbGJhY2sKCQkJCQlpZiAoICFzLmFzeW5jIHx8IHhoci5yZWFkeVN0YXRlID09PSA0ICkgewoJCQkJCQljYWxsYmFjaygpOwoJCQkJCX0gZWxzZSB7CgkJCQkJCS8vIENyZWF0ZSB0aGUgYWN0aXZlIHhocnMgY2FsbGJhY2tzIGxpc3QgaWYgbmVlZGVkCgkJCQkJCS8vIGFuZCBhdHRhY2ggdGhlIHVubG9hZCBoYW5kbGVyCgkJCQkJCWlmICggIXhockNhbGxiYWNrcyApIHsKCQkJCQkJCXhockNhbGxiYWNrcyA9IHt9OwoJCQkJCQkJeGhyT25VbmxvYWRBYm9ydCgpOwoJCQkJCQl9CgkJCQkJCS8vIEFkZCB0byBsaXN0IG9mIGFjdGl2ZSB4aHJzIGNhbGxiYWNrcwoJCQkJCQloYW5kbGUgPSB4aHJJZCsrOwoJCQkJCQl4aHIub25yZWFkeXN0YXRlY2hhbmdlID0geGhyQ2FsbGJhY2tzWyBoYW5kbGUgXSA9IGNhbGxiYWNrOwoJCQkJCX0KCQkJCX0sCgoJCQkJYWJvcnQ6IGZ1bmN0aW9uKCkgewoJCQkJCWlmICggY2FsbGJhY2sgKSB7CgkJCQkJCWNhbGxiYWNrKDAsMSk7CgkJCQkJfQoJCQkJfQoJCQl9OwoJCX0KCX0pOwp9CgoKCgp2YXIgZWxlbWRpc3BsYXkgPSB7fSwKCXJmeHR5cGVzID0gL14oPzp0b2dnbGV8c2hvd3xoaWRlKSQvLAoJcmZ4bnVtID0gL14oWytcLV09KT8oW1xkKy5cLV0rKShbYS16JV0qKSQvaSwKCXRpbWVySWQsCglmeEF0dHJzID0gWwoJCS8vIGhlaWdodCBhbmltYXRpb25zCgkJWyAiaGVpZ2h0IiwgIm1hcmdpblRvcCIsICJtYXJnaW5Cb3R0b20iLCAicGFkZGluZ1RvcCIsICJwYWRkaW5nQm90dG9tIiBdLAoJCS8vIHdpZHRoIGFuaW1hdGlvbnMKCQlbICJ3aWR0aCIsICJtYXJnaW5MZWZ0IiwgIm1hcmdpblJpZ2h0IiwgInBhZGRpbmdMZWZ0IiwgInBhZGRpbmdSaWdodCIgXSwKCQkvLyBvcGFjaXR5IGFuaW1hdGlvbnMKCQlbICJvcGFjaXR5IiBdCgldOwoKalF1ZXJ5LmZuLmV4dGVuZCh7CglzaG93OiBmdW5jdGlvbiggc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSB7CgkJdmFyIGVsZW0sIGRpc3BsYXk7CgoJCWlmICggc3BlZWQgfHwgc3BlZWQgPT09IDAgKSB7CgkJCXJldHVybiB0aGlzLmFuaW1hdGUoIGdlbkZ4KCJzaG93IiwgMyksIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrKTsKCgkJfSBlbHNlIHsKCQkJZm9yICggdmFyIGkgPSAwLCBqID0gdGhpcy5sZW5ndGg7IGkgPCBqOyBpKysgKSB7CgkJCQllbGVtID0gdGhpc1tpXTsKCQkJCWRpc3BsYXkgPSBlbGVtLnN0eWxlLmRpc3BsYXk7CgoJCQkJLy8gUmVzZXQgdGhlIGlubGluZSBkaXNwbGF5IG9mIHRoaXMgZWxlbWVudCB0byBsZWFybiBpZiBpdCBpcwoJCQkJLy8gYmVpbmcgaGlkZGVuIGJ5IGNhc2NhZGVkIHJ1bGVzIG9yIG5vdAoJCQkJaWYgKCAhalF1ZXJ5Ll9kYXRhKGVsZW0sICJvbGRkaXNwbGF5IikgJiYgZGlzcGxheSA9PT0gIm5vbmUiICkgewoJCQkJCWRpc3BsYXkgPSBlbGVtLnN0eWxlLmRpc3BsYXkgPSAiIjsKCQkJCX0KCgkJCQkvLyBTZXQgZWxlbWVudHMgd2hpY2ggaGF2ZSBiZWVuIG92ZXJyaWRkZW4gd2l0aCBkaXNwbGF5OiBub25lCgkJCQkvLyBpbiBhIHN0eWxlc2hlZXQgdG8gd2hhdGV2ZXIgdGhlIGRlZmF1bHQgYnJvd3NlciBzdHlsZSBpcwoJCQkJLy8gZm9yIHN1Y2ggYW4gZWxlbWVudAoJCQkJaWYgKCBkaXNwbGF5ID09PSAiIiAmJiBqUXVlcnkuY3NzKCBlbGVtLCAiZGlzcGxheSIgKSA9PT0gIm5vbmUiICkgewoJCQkJCWpRdWVyeS5fZGF0YShlbGVtLCAib2xkZGlzcGxheSIsIGRlZmF1bHREaXNwbGF5KGVsZW0ubm9kZU5hbWUpKTsKCQkJCX0KCQkJfQoKCQkJLy8gU2V0IHRoZSBkaXNwbGF5IG9mIG1vc3Qgb2YgdGhlIGVsZW1lbnRzIGluIGEgc2Vjb25kIGxvb3AKCQkJLy8gdG8gYXZvaWQgdGhlIGNvbnN0YW50IHJlZmxvdwoJCQlmb3IgKCBpID0gMDsgaSA8IGo7IGkrKyApIHsKCQkJCWVsZW0gPSB0aGlzW2ldOwoJCQkJZGlzcGxheSA9IGVsZW0uc3R5bGUuZGlzcGxheTsKCgkJCQlpZiAoIGRpc3BsYXkgPT09ICIiIHx8IGRpc3BsYXkgPT09ICJub25lIiApIHsKCQkJCQllbGVtLnN0eWxlLmRpc3BsYXkgPSBqUXVlcnkuX2RhdGEoZWxlbSwgIm9sZGRpc3BsYXkiKSB8fCAiIjsKCQkJCX0KCQkJfQoKCQkJcmV0dXJuIHRoaXM7CgkJfQoJfSwKCgloaWRlOiBmdW5jdGlvbiggc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSB7CgkJaWYgKCBzcGVlZCB8fCBzcGVlZCA9PT0gMCApIHsKCQkJcmV0dXJuIHRoaXMuYW5pbWF0ZSggZ2VuRngoImhpZGUiLCAzKSwgc3BlZWQsIGVhc2luZywgY2FsbGJhY2spOwoKCQl9IGVsc2UgewoJCQlmb3IgKCB2YXIgaSA9IDAsIGogPSB0aGlzLmxlbmd0aDsgaSA8IGo7IGkrKyApIHsKCQkJCXZhciBkaXNwbGF5ID0galF1ZXJ5LmNzcyggdGhpc1tpXSwgImRpc3BsYXkiICk7CgoJCQkJaWYgKCBkaXNwbGF5ICE9PSAibm9uZSIgJiYgIWpRdWVyeS5fZGF0YSggdGhpc1tpXSwgIm9sZGRpc3BsYXkiICkgKSB7CgkJCQkJalF1ZXJ5Ll9kYXRhKCB0aGlzW2ldLCAib2xkZGlzcGxheSIsIGRpc3BsYXkgKTsKCQkJCX0KCQkJfQoKCQkJLy8gU2V0IHRoZSBkaXNwbGF5IG9mIHRoZSBlbGVtZW50cyBpbiBhIHNlY29uZCBsb29wCgkJCS8vIHRvIGF2b2lkIHRoZSBjb25zdGFudCByZWZsb3cKCQkJZm9yICggaSA9IDA7IGkgPCBqOyBpKysgKSB7CgkJCQl0aGlzW2ldLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CgkJCX0KCgkJCXJldHVybiB0aGlzOwoJCX0KCX0sCgoJLy8gU2F2ZSB0aGUgb2xkIHRvZ2dsZSBmdW5jdGlvbgoJX3RvZ2dsZTogalF1ZXJ5LmZuLnRvZ2dsZSwKCgl0b2dnbGU6IGZ1bmN0aW9uKCBmbiwgZm4yLCBjYWxsYmFjayApIHsKCQl2YXIgYm9vbCA9IHR5cGVvZiBmbiA9PT0gImJvb2xlYW4iOwoKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKGZuKSAmJiBqUXVlcnkuaXNGdW5jdGlvbihmbjIpICkgewoJCQl0aGlzLl90b2dnbGUuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApOwoKCQl9IGVsc2UgaWYgKCBmbiA9PSBudWxsIHx8IGJvb2wgKSB7CgkJCXRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJCXZhciBzdGF0ZSA9IGJvb2wgPyBmbiA6IGpRdWVyeSh0aGlzKS5pcygiOmhpZGRlbiIpOwoJCQkJalF1ZXJ5KHRoaXMpWyBzdGF0ZSA/ICJzaG93IiA6ICJoaWRlIiBdKCk7CgkJCX0pOwoKCQl9IGVsc2UgewoJCQl0aGlzLmFuaW1hdGUoZ2VuRngoInRvZ2dsZSIsIDMpLCBmbiwgZm4yLCBjYWxsYmFjayk7CgkJfQoKCQlyZXR1cm4gdGhpczsKCX0sCgoJZmFkZVRvOiBmdW5jdGlvbiggc3BlZWQsIHRvLCBlYXNpbmcsIGNhbGxiYWNrICkgewoJCXJldHVybiB0aGlzLmZpbHRlcigiOmhpZGRlbiIpLmNzcygib3BhY2l0eSIsIDApLnNob3coKS5lbmQoKQoJCQkJCS5hbmltYXRlKHtvcGFjaXR5OiB0b30sIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrKTsKCX0sCgoJYW5pbWF0ZTogZnVuY3Rpb24oIHByb3AsIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrICkgewoJCXZhciBvcHRhbGwgPSBqUXVlcnkuc3BlZWQoc3BlZWQsIGVhc2luZywgY2FsbGJhY2spOwoKCQlpZiAoIGpRdWVyeS5pc0VtcHR5T2JqZWN0KCBwcm9wICkgKSB7CgkJCXJldHVybiB0aGlzLmVhY2goIG9wdGFsbC5jb21wbGV0ZSApOwoJCX0KCgkJcmV0dXJuIHRoaXNbIG9wdGFsbC5xdWV1ZSA9PT0gZmFsc2UgPyAiZWFjaCIgOiAicXVldWUiIF0oZnVuY3Rpb24oKSB7CgkJCS8vIFhYWCAndGhpcycgZG9lcyBub3QgYWx3YXlzIGhhdmUgYSBub2RlTmFtZSB3aGVuIHJ1bm5pbmcgdGhlCgkJCS8vIHRlc3Qgc3VpdGUKCgkJCXZhciBvcHQgPSBqUXVlcnkuZXh0ZW5kKHt9LCBvcHRhbGwpLCBwLAoJCQkJaXNFbGVtZW50ID0gdGhpcy5ub2RlVHlwZSA9PT0gMSwKCQkJCWhpZGRlbiA9IGlzRWxlbWVudCAmJiBqUXVlcnkodGhpcykuaXMoIjpoaWRkZW4iKSwKCQkJCXNlbGYgPSB0aGlzOwoKCQkJZm9yICggcCBpbiBwcm9wICkgewoJCQkJdmFyIG5hbWUgPSBqUXVlcnkuY2FtZWxDYXNlKCBwICk7CgoJCQkJaWYgKCBwICE9PSBuYW1lICkgewoJCQkJCXByb3BbIG5hbWUgXSA9IHByb3BbIHAgXTsKCQkJCQlkZWxldGUgcHJvcFsgcCBdOwoJCQkJCXAgPSBuYW1lOwoJCQkJfQoKCQkJCWlmICggcHJvcFtwXSA9PT0gImhpZGUiICYmIGhpZGRlbiB8fCBwcm9wW3BdID09PSAic2hvdyIgJiYgIWhpZGRlbiApIHsKCQkJCQlyZXR1cm4gb3B0LmNvbXBsZXRlLmNhbGwodGhpcyk7CgkJCQl9CgoJCQkJaWYgKCBpc0VsZW1lbnQgJiYgKCBwID09PSAiaGVpZ2h0IiB8fCBwID09PSAid2lkdGgiICkgKSB7CgkJCQkJLy8gTWFrZSBzdXJlIHRoYXQgbm90aGluZyBzbmVha3Mgb3V0CgkJCQkJLy8gUmVjb3JkIGFsbCAzIG92ZXJmbG93IGF0dHJpYnV0ZXMgYmVjYXVzZSBJRSBkb2VzIG5vdAoJCQkJCS8vIGNoYW5nZSB0aGUgb3ZlcmZsb3cgYXR0cmlidXRlIHdoZW4gb3ZlcmZsb3dYIGFuZAoJCQkJCS8vIG92ZXJmbG93WSBhcmUgc2V0IHRvIHRoZSBzYW1lIHZhbHVlCgkJCQkJb3B0Lm92ZXJmbG93ID0gWyB0aGlzLnN0eWxlLm92ZXJmbG93LCB0aGlzLnN0eWxlLm92ZXJmbG93WCwgdGhpcy5zdHlsZS5vdmVyZmxvd1kgXTsKCgkJCQkJLy8gU2V0IGRpc3BsYXkgcHJvcGVydHkgdG8gaW5saW5lLWJsb2NrIGZvciBoZWlnaHQvd2lkdGgKCQkJCQkvLyBhbmltYXRpb25zIG9uIGlubGluZSBlbGVtZW50cyB0aGF0IGFyZSBoYXZpbmcgd2lkdGgvaGVpZ2h0CgkJCQkJLy8gYW5pbWF0ZWQKCQkJCQlpZiAoIGpRdWVyeS5jc3MoIHRoaXMsICJkaXNwbGF5IiApID09PSAiaW5saW5lIiAmJgoJCQkJCQkJalF1ZXJ5LmNzcyggdGhpcywgImZsb2F0IiApID09PSAibm9uZSIgKSB7CgkJCQkJCWlmICggIWpRdWVyeS5zdXBwb3J0LmlubGluZUJsb2NrTmVlZHNMYXlvdXQgKSB7CgkJCQkJCQl0aGlzLnN0eWxlLmRpc3BsYXkgPSAiaW5saW5lLWJsb2NrIjsKCgkJCQkJCX0gZWxzZSB7CgkJCQkJCQl2YXIgZGlzcGxheSA9IGRlZmF1bHREaXNwbGF5KHRoaXMubm9kZU5hbWUpOwoKCQkJCQkJCS8vIGlubGluZS1sZXZlbCBlbGVtZW50cyBhY2NlcHQgaW5saW5lLWJsb2NrOwoJCQkJCQkJLy8gYmxvY2stbGV2ZWwgZWxlbWVudHMgbmVlZCB0byBiZSBpbmxpbmUgd2l0aCBsYXlvdXQKCQkJCQkJCWlmICggZGlzcGxheSA9PT0gImlubGluZSIgKSB7CgkJCQkJCQkJdGhpcy5zdHlsZS5kaXNwbGF5ID0gImlubGluZS1ibG9jayI7CgoJCQkJCQkJfSBlbHNlIHsKCQkJCQkJCQl0aGlzLnN0eWxlLmRpc3BsYXkgPSAiaW5saW5lIjsKCQkJCQkJCQl0aGlzLnN0eWxlLnpvb20gPSAxOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfQoJCQkJfQoKCQkJCWlmICggalF1ZXJ5LmlzQXJyYXkoIHByb3BbcF0gKSApIHsKCQkJCQkvLyBDcmVhdGUgKGlmIG5lZWRlZCkgYW5kIGFkZCB0byBzcGVjaWFsRWFzaW5nCgkJCQkJKG9wdC5zcGVjaWFsRWFzaW5nID0gb3B0LnNwZWNpYWxFYXNpbmcgfHwge30pW3BdID0gcHJvcFtwXVsxXTsKCQkJCQlwcm9wW3BdID0gcHJvcFtwXVswXTsKCQkJCX0KCQkJfQoKCQkJaWYgKCBvcHQub3ZlcmZsb3cgIT0gbnVsbCApIHsKCQkJCXRoaXMuc3R5bGUub3ZlcmZsb3cgPSAiaGlkZGVuIjsKCQkJfQoKCQkJb3B0LmN1ckFuaW0gPSBqUXVlcnkuZXh0ZW5kKHt9LCBwcm9wKTsKCgkJCWpRdWVyeS5lYWNoKCBwcm9wLCBmdW5jdGlvbiggbmFtZSwgdmFsICkgewoJCQkJdmFyIGUgPSBuZXcgalF1ZXJ5LmZ4KCBzZWxmLCBvcHQsIG5hbWUgKTsKCgkJCQlpZiAoIHJmeHR5cGVzLnRlc3QodmFsKSApIHsKCQkJCQllWyB2YWwgPT09ICJ0b2dnbGUiID8gaGlkZGVuID8gInNob3ciIDogImhpZGUiIDogdmFsIF0oIHByb3AgKTsKCgkJCQl9IGVsc2UgewoJCQkJCXZhciBwYXJ0cyA9IHJmeG51bS5leGVjKHZhbCksCgkJCQkJCXN0YXJ0ID0gZS5jdXIoKTsKCgkJCQkJaWYgKCBwYXJ0cyApIHsKCQkJCQkJdmFyIGVuZCA9IHBhcnNlRmxvYXQoIHBhcnRzWzJdICksCgkJCQkJCQl1bml0ID0gcGFydHNbM10gfHwgKCBqUXVlcnkuY3NzTnVtYmVyWyBuYW1lIF0gPyAiIiA6ICJweCIgKTsKCgkJCQkJCS8vIFdlIG5lZWQgdG8gY29tcHV0ZSBzdGFydGluZyB2YWx1ZQoJCQkJCQlpZiAoIHVuaXQgIT09ICJweCIgKSB7CgkJCQkJCQlqUXVlcnkuc3R5bGUoIHNlbGYsIG5hbWUsIChlbmQgfHwgMSkgKyB1bml0KTsKCQkJCQkJCXN0YXJ0ID0gKChlbmQgfHwgMSkgLyBlLmN1cigpKSAqIHN0YXJ0OwoJCQkJCQkJalF1ZXJ5LnN0eWxlKCBzZWxmLCBuYW1lLCBzdGFydCArIHVuaXQpOwoJCQkJCQl9CgoJCQkJCQkvLyBJZiBhICs9Ly09IHRva2VuIHdhcyBwcm92aWRlZCwgd2UncmUgZG9pbmcgYSByZWxhdGl2ZSBhbmltYXRpb24KCQkJCQkJaWYgKCBwYXJ0c1sxXSApIHsKCQkJCQkJCWVuZCA9ICgocGFydHNbMV0gPT09ICItPSIgPyAtMSA6IDEpICogZW5kKSArIHN0YXJ0OwoJCQkJCQl9CgoJCQkJCQllLmN1c3RvbSggc3RhcnQsIGVuZCwgdW5pdCApOwoKCQkJCQl9IGVsc2UgewoJCQkJCQllLmN1c3RvbSggc3RhcnQsIHZhbCwgIiIgKTsKCQkJCQl9CgkJCQl9CgkJCX0pOwoKCQkJLy8gRm9yIEpTIHN0cmljdCBjb21wbGlhbmNlCgkJCXJldHVybiB0cnVlOwoJCX0pOwoJfSwKCglzdG9wOiBmdW5jdGlvbiggY2xlYXJRdWV1ZSwgZ290b0VuZCApIHsKCQl2YXIgdGltZXJzID0galF1ZXJ5LnRpbWVyczsKCgkJaWYgKCBjbGVhclF1ZXVlICkgewoJCQl0aGlzLnF1ZXVlKFtdKTsKCQl9CgoJCXRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJLy8gZ28gaW4gcmV2ZXJzZSBvcmRlciBzbyBhbnl0aGluZyBhZGRlZCB0byB0aGUgcXVldWUgZHVyaW5nIHRoZSBsb29wIGlzIGlnbm9yZWQKCQkJZm9yICggdmFyIGkgPSB0aW1lcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0gKSB7CgkJCQlpZiAoIHRpbWVyc1tpXS5lbGVtID09PSB0aGlzICkgewoJCQkJCWlmIChnb3RvRW5kKSB7CgkJCQkJCS8vIGZvcmNlIHRoZSBuZXh0IHN0ZXAgdG8gYmUgdGhlIGxhc3QKCQkJCQkJdGltZXJzW2ldKHRydWUpOwoJCQkJCX0KCgkJCQkJdGltZXJzLnNwbGljZShpLCAxKTsKCQkJCX0KCQkJfQoJCX0pOwoKCQkvLyBzdGFydCB0aGUgbmV4dCBpbiB0aGUgcXVldWUgaWYgdGhlIGxhc3Qgc3RlcCB3YXNuJ3QgZm9yY2VkCgkJaWYgKCAhZ290b0VuZCApIHsKCQkJdGhpcy5kZXF1ZXVlKCk7CgkJfQoKCQlyZXR1cm4gdGhpczsKCX0KCn0pOwoKZnVuY3Rpb24gZ2VuRngoIHR5cGUsIG51bSApIHsKCXZhciBvYmogPSB7fTsKCglqUXVlcnkuZWFjaCggZnhBdHRycy5jb25jYXQuYXBwbHkoW10sIGZ4QXR0cnMuc2xpY2UoMCxudW0pKSwgZnVuY3Rpb24oKSB7CgkJb2JqWyB0aGlzIF0gPSB0eXBlOwoJfSk7CgoJcmV0dXJuIG9iajsKfQoKLy8gR2VuZXJhdGUgc2hvcnRjdXRzIGZvciBjdXN0b20gYW5pbWF0aW9ucwpqUXVlcnkuZWFjaCh7CglzbGlkZURvd246IGdlbkZ4KCJzaG93IiwgMSksCglzbGlkZVVwOiBnZW5GeCgiaGlkZSIsIDEpLAoJc2xpZGVUb2dnbGU6IGdlbkZ4KCJ0b2dnbGUiLCAxKSwKCWZhZGVJbjogeyBvcGFjaXR5OiAic2hvdyIgfSwKCWZhZGVPdXQ6IHsgb3BhY2l0eTogImhpZGUiIH0sCglmYWRlVG9nZ2xlOiB7IG9wYWNpdHk6ICJ0b2dnbGUiIH0KfSwgZnVuY3Rpb24oIG5hbWUsIHByb3BzICkgewoJalF1ZXJ5LmZuWyBuYW1lIF0gPSBmdW5jdGlvbiggc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSB7CgkJcmV0dXJuIHRoaXMuYW5pbWF0ZSggcHJvcHMsIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrICk7Cgl9Owp9KTsKCmpRdWVyeS5leHRlbmQoewoJc3BlZWQ6IGZ1bmN0aW9uKCBzcGVlZCwgZWFzaW5nLCBmbiApIHsKCQl2YXIgb3B0ID0gc3BlZWQgJiYgdHlwZW9mIHNwZWVkID09PSAib2JqZWN0IiA/IGpRdWVyeS5leHRlbmQoe30sIHNwZWVkKSA6IHsKCQkJY29tcGxldGU6IGZuIHx8ICFmbiAmJiBlYXNpbmcgfHwKCQkJCWpRdWVyeS5pc0Z1bmN0aW9uKCBzcGVlZCApICYmIHNwZWVkLAoJCQlkdXJhdGlvbjogc3BlZWQsCgkJCWVhc2luZzogZm4gJiYgZWFzaW5nIHx8IGVhc2luZyAmJiAhalF1ZXJ5LmlzRnVuY3Rpb24oZWFzaW5nKSAmJiBlYXNpbmcKCQl9OwoKCQlvcHQuZHVyYXRpb24gPSBqUXVlcnkuZngub2ZmID8gMCA6IHR5cGVvZiBvcHQuZHVyYXRpb24gPT09ICJudW1iZXIiID8gb3B0LmR1cmF0aW9uIDoKCQkJb3B0LmR1cmF0aW9uIGluIGpRdWVyeS5meC5zcGVlZHMgPyBqUXVlcnkuZnguc3BlZWRzW29wdC5kdXJhdGlvbl0gOiBqUXVlcnkuZnguc3BlZWRzLl9kZWZhdWx0OwoKCQkvLyBRdWV1ZWluZwoJCW9wdC5vbGQgPSBvcHQuY29tcGxldGU7CgkJb3B0LmNvbXBsZXRlID0gZnVuY3Rpb24oKSB7CgkJCWlmICggb3B0LnF1ZXVlICE9PSBmYWxzZSApIHsKCQkJCWpRdWVyeSh0aGlzKS5kZXF1ZXVlKCk7CgkJCX0KCQkJaWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggb3B0Lm9sZCApICkgewoJCQkJb3B0Lm9sZC5jYWxsKCB0aGlzICk7CgkJCX0KCQl9OwoKCQlyZXR1cm4gb3B0OwoJfSwKCgllYXNpbmc6IHsKCQlsaW5lYXI6IGZ1bmN0aW9uKCBwLCBuLCBmaXJzdE51bSwgZGlmZiApIHsKCQkJcmV0dXJuIGZpcnN0TnVtICsgZGlmZiAqIHA7CgkJfSwKCQlzd2luZzogZnVuY3Rpb24oIHAsIG4sIGZpcnN0TnVtLCBkaWZmICkgewoJCQlyZXR1cm4gKCgtTWF0aC5jb3MocCpNYXRoLlBJKS8yKSArIDAuNSkgKiBkaWZmICsgZmlyc3ROdW07CgkJfQoJfSwKCgl0aW1lcnM6IFtdLAoKCWZ4OiBmdW5jdGlvbiggZWxlbSwgb3B0aW9ucywgcHJvcCApIHsKCQl0aGlzLm9wdGlvbnMgPSBvcHRpb25zOwoJCXRoaXMuZWxlbSA9IGVsZW07CgkJdGhpcy5wcm9wID0gcHJvcDsKCgkJaWYgKCAhb3B0aW9ucy5vcmlnICkgewoJCQlvcHRpb25zLm9yaWcgPSB7fTsKCQl9Cgl9Cgp9KTsKCmpRdWVyeS5meC5wcm90b3R5cGUgPSB7CgkvLyBTaW1wbGUgZnVuY3Rpb24gZm9yIHNldHRpbmcgYSBzdHlsZSB2YWx1ZQoJdXBkYXRlOiBmdW5jdGlvbigpIHsKCQlpZiAoIHRoaXMub3B0aW9ucy5zdGVwICkgewoJCQl0aGlzLm9wdGlvbnMuc3RlcC5jYWxsKCB0aGlzLmVsZW0sIHRoaXMubm93LCB0aGlzICk7CgkJfQoKCQkoalF1ZXJ5LmZ4LnN0ZXBbdGhpcy5wcm9wXSB8fCBqUXVlcnkuZnguc3RlcC5fZGVmYXVsdCkoIHRoaXMgKTsKCX0sCgoJLy8gR2V0IHRoZSBjdXJyZW50IHNpemUKCWN1cjogZnVuY3Rpb24oKSB7CgkJaWYgKCB0aGlzLmVsZW1bdGhpcy5wcm9wXSAhPSBudWxsICYmICghdGhpcy5lbGVtLnN0eWxlIHx8IHRoaXMuZWxlbS5zdHlsZVt0aGlzLnByb3BdID09IG51bGwpICkgewoJCQlyZXR1cm4gdGhpcy5lbGVtWyB0aGlzLnByb3AgXTsKCQl9CgoJCXZhciBwYXJzZWQsCgkJCXIgPSBqUXVlcnkuY3NzKCB0aGlzLmVsZW0sIHRoaXMucHJvcCApOwoJCS8vIEVtcHR5IHN0cmluZ3MsIG51bGwsIHVuZGVmaW5lZCBhbmQgImF1dG8iIGFyZSBjb252ZXJ0ZWQgdG8gMCwKCQkvLyBjb21wbGV4IHZhbHVlcyBzdWNoIGFzICJyb3RhdGUoMXJhZCkiIGFyZSByZXR1cm5lZCBhcyBpcywKCQkvLyBzaW1wbGUgdmFsdWVzIHN1Y2ggYXMgIjEwcHgiIGFyZSBwYXJzZWQgdG8gRmxvYXQuCgkJcmV0dXJuIGlzTmFOKCBwYXJzZWQgPSBwYXJzZUZsb2F0KCByICkgKSA/ICFyIHx8IHIgPT09ICJhdXRvIiA/IDAgOiByIDogcGFyc2VkOwoJfSwKCgkvLyBTdGFydCBhbiBhbmltYXRpb24gZnJvbSBvbmUgbnVtYmVyIHRvIGFub3RoZXIKCWN1c3RvbTogZnVuY3Rpb24oIGZyb20sIHRvLCB1bml0ICkgewoJCXZhciBzZWxmID0gdGhpcywKCQkJZnggPSBqUXVlcnkuZng7CgoJCXRoaXMuc3RhcnRUaW1lID0galF1ZXJ5Lm5vdygpOwoJCXRoaXMuc3RhcnQgPSBmcm9tOwoJCXRoaXMuZW5kID0gdG87CgkJdGhpcy51bml0ID0gdW5pdCB8fCB0aGlzLnVuaXQgfHwgKCBqUXVlcnkuY3NzTnVtYmVyWyB0aGlzLnByb3AgXSA/ICIiIDogInB4IiApOwoJCXRoaXMubm93ID0gdGhpcy5zdGFydDsKCQl0aGlzLnBvcyA9IHRoaXMuc3RhdGUgPSAwOwoKCQlmdW5jdGlvbiB0KCBnb3RvRW5kICkgewoJCQlyZXR1cm4gc2VsZi5zdGVwKGdvdG9FbmQpOwoJCX0KCgkJdC5lbGVtID0gdGhpcy5lbGVtOwoKCQlpZiAoIHQoKSAmJiBqUXVlcnkudGltZXJzLnB1c2godCkgJiYgIXRpbWVySWQgKSB7CgkJCXRpbWVySWQgPSBzZXRJbnRlcnZhbChmeC50aWNrLCBmeC5pbnRlcnZhbCk7CgkJfQoJfSwKCgkvLyBTaW1wbGUgJ3Nob3cnIGZ1bmN0aW9uCglzaG93OiBmdW5jdGlvbigpIHsKCQkvLyBSZW1lbWJlciB3aGVyZSB3ZSBzdGFydGVkLCBzbyB0aGF0IHdlIGNhbiBnbyBiYWNrIHRvIGl0IGxhdGVyCgkJdGhpcy5vcHRpb25zLm9yaWdbdGhpcy5wcm9wXSA9IGpRdWVyeS5zdHlsZSggdGhpcy5lbGVtLCB0aGlzLnByb3AgKTsKCQl0aGlzLm9wdGlvbnMuc2hvdyA9IHRydWU7CgoJCS8vIEJlZ2luIHRoZSBhbmltYXRpb24KCQkvLyBNYWtlIHN1cmUgdGhhdCB3ZSBzdGFydCBhdCBhIHNtYWxsIHdpZHRoL2hlaWdodCB0byBhdm9pZCBhbnkKCQkvLyBmbGFzaCBvZiBjb250ZW50CgkJdGhpcy5jdXN0b20odGhpcy5wcm9wID09PSAid2lkdGgiIHx8IHRoaXMucHJvcCA9PT0gImhlaWdodCIgPyAxIDogMCwgdGhpcy5jdXIoKSk7CgoJCS8vIFN0YXJ0IGJ5IHNob3dpbmcgdGhlIGVsZW1lbnQKCQlqUXVlcnkoIHRoaXMuZWxlbSApLnNob3coKTsKCX0sCgoJLy8gU2ltcGxlICdoaWRlJyBmdW5jdGlvbgoJaGlkZTogZnVuY3Rpb24oKSB7CgkJLy8gUmVtZW1iZXIgd2hlcmUgd2Ugc3RhcnRlZCwgc28gdGhhdCB3ZSBjYW4gZ28gYmFjayB0byBpdCBsYXRlcgoJCXRoaXMub3B0aW9ucy5vcmlnW3RoaXMucHJvcF0gPSBqUXVlcnkuc3R5bGUoIHRoaXMuZWxlbSwgdGhpcy5wcm9wICk7CgkJdGhpcy5vcHRpb25zLmhpZGUgPSB0cnVlOwoKCQkvLyBCZWdpbiB0aGUgYW5pbWF0aW9uCgkJdGhpcy5jdXN0b20odGhpcy5jdXIoKSwgMCk7Cgl9LAoKCS8vIEVhY2ggc3RlcCBvZiBhbiBhbmltYXRpb24KCXN0ZXA6IGZ1bmN0aW9uKCBnb3RvRW5kICkgewoJCXZhciB0ID0galF1ZXJ5Lm5vdygpLCBkb25lID0gdHJ1ZTsKCgkJaWYgKCBnb3RvRW5kIHx8IHQgPj0gdGhpcy5vcHRpb25zLmR1cmF0aW9uICsgdGhpcy5zdGFydFRpbWUgKSB7CgkJCXRoaXMubm93ID0gdGhpcy5lbmQ7CgkJCXRoaXMucG9zID0gdGhpcy5zdGF0ZSA9IDE7CgkJCXRoaXMudXBkYXRlKCk7CgoJCQl0aGlzLm9wdGlvbnMuY3VyQW5pbVsgdGhpcy5wcm9wIF0gPSB0cnVlOwoKCQkJZm9yICggdmFyIGkgaW4gdGhpcy5vcHRpb25zLmN1ckFuaW0gKSB7CgkJCQlpZiAoIHRoaXMub3B0aW9ucy5jdXJBbmltW2ldICE9PSB0cnVlICkgewoJCQkJCWRvbmUgPSBmYWxzZTsKCQkJCX0KCQkJfQoKCQkJaWYgKCBkb25lICkgewoJCQkJLy8gUmVzZXQgdGhlIG92ZXJmbG93CgkJCQlpZiAoIHRoaXMub3B0aW9ucy5vdmVyZmxvdyAhPSBudWxsICYmICFqUXVlcnkuc3VwcG9ydC5zaHJpbmtXcmFwQmxvY2tzICkgewoJCQkJCXZhciBlbGVtID0gdGhpcy5lbGVtLAoJCQkJCQlvcHRpb25zID0gdGhpcy5vcHRpb25zOwoKCQkJCQlqUXVlcnkuZWFjaCggWyAiIiwgIlgiLCAiWSIgXSwgZnVuY3Rpb24gKGluZGV4LCB2YWx1ZSkgewoJCQkJCQllbGVtLnN0eWxlWyAib3ZlcmZsb3ciICsgdmFsdWUgXSA9IG9wdGlvbnMub3ZlcmZsb3dbaW5kZXhdOwoJCQkJCX0gKTsKCQkJCX0KCgkJCQkvLyBIaWRlIHRoZSBlbGVtZW50IGlmIHRoZSAiaGlkZSIgb3BlcmF0aW9uIHdhcyBkb25lCgkJCQlpZiAoIHRoaXMub3B0aW9ucy5oaWRlICkgewoJCQkJCWpRdWVyeSh0aGlzLmVsZW0pLmhpZGUoKTsKCQkJCX0KCgkJCQkvLyBSZXNldCB0aGUgcHJvcGVydGllcywgaWYgdGhlIGl0ZW0gaGFzIGJlZW4gaGlkZGVuIG9yIHNob3duCgkJCQlpZiAoIHRoaXMub3B0aW9ucy5oaWRlIHx8IHRoaXMub3B0aW9ucy5zaG93ICkgewoJCQkJCWZvciAoIHZhciBwIGluIHRoaXMub3B0aW9ucy5jdXJBbmltICkgewoJCQkJCQlqUXVlcnkuc3R5bGUoIHRoaXMuZWxlbSwgcCwgdGhpcy5vcHRpb25zLm9yaWdbcF0gKTsKCQkJCQl9CgkJCQl9CgoJCQkJLy8gRXhlY3V0ZSB0aGUgY29tcGxldGUgZnVuY3Rpb24KCQkJCXRoaXMub3B0aW9ucy5jb21wbGV0ZS5jYWxsKCB0aGlzLmVsZW0gKTsKCQkJfQoKCQkJcmV0dXJuIGZhbHNlOwoKCQl9IGVsc2UgewoJCQl2YXIgbiA9IHQgLSB0aGlzLnN0YXJ0VGltZTsKCQkJdGhpcy5zdGF0ZSA9IG4gLyB0aGlzLm9wdGlvbnMuZHVyYXRpb247CgoJCQkvLyBQZXJmb3JtIHRoZSBlYXNpbmcgZnVuY3Rpb24sIGRlZmF1bHRzIHRvIHN3aW5nCgkJCXZhciBzcGVjaWFsRWFzaW5nID0gdGhpcy5vcHRpb25zLnNwZWNpYWxFYXNpbmcgJiYgdGhpcy5vcHRpb25zLnNwZWNpYWxFYXNpbmdbdGhpcy5wcm9wXTsKCQkJdmFyIGRlZmF1bHRFYXNpbmcgPSB0aGlzLm9wdGlvbnMuZWFzaW5nIHx8IChqUXVlcnkuZWFzaW5nLnN3aW5nID8gInN3aW5nIiA6ICJsaW5lYXIiKTsKCQkJdGhpcy5wb3MgPSBqUXVlcnkuZWFzaW5nW3NwZWNpYWxFYXNpbmcgfHwgZGVmYXVsdEVhc2luZ10odGhpcy5zdGF0ZSwgbiwgMCwgMSwgdGhpcy5vcHRpb25zLmR1cmF0aW9uKTsKCQkJdGhpcy5ub3cgPSB0aGlzLnN0YXJ0ICsgKCh0aGlzLmVuZCAtIHRoaXMuc3RhcnQpICogdGhpcy5wb3MpOwoKCQkJLy8gUGVyZm9ybSB0aGUgbmV4dCBzdGVwIG9mIHRoZSBhbmltYXRpb24KCQkJdGhpcy51cGRhdGUoKTsKCQl9CgoJCXJldHVybiB0cnVlOwoJfQp9OwoKalF1ZXJ5LmV4dGVuZCggalF1ZXJ5LmZ4LCB7Cgl0aWNrOiBmdW5jdGlvbigpIHsKCQl2YXIgdGltZXJzID0galF1ZXJ5LnRpbWVyczsKCgkJZm9yICggdmFyIGkgPSAwOyBpIDwgdGltZXJzLmxlbmd0aDsgaSsrICkgewoJCQlpZiAoICF0aW1lcnNbaV0oKSApIHsKCQkJCXRpbWVycy5zcGxpY2UoaS0tLCAxKTsKCQkJfQoJCX0KCgkJaWYgKCAhdGltZXJzLmxlbmd0aCApIHsKCQkJalF1ZXJ5LmZ4LnN0b3AoKTsKCQl9Cgl9LAoKCWludGVydmFsOiAxMywKCglzdG9wOiBmdW5jdGlvbigpIHsKCQljbGVhckludGVydmFsKCB0aW1lcklkICk7CgkJdGltZXJJZCA9IG51bGw7Cgl9LAoKCXNwZWVkczogewoJCXNsb3c6IDYwMCwKCQlmYXN0OiAyMDAsCgkJLy8gRGVmYXVsdCBzcGVlZAoJCV9kZWZhdWx0OiA0MDAKCX0sCgoJc3RlcDogewoJCW9wYWNpdHk6IGZ1bmN0aW9uKCBmeCApIHsKCQkJalF1ZXJ5LnN0eWxlKCBmeC5lbGVtLCAib3BhY2l0eSIsIGZ4Lm5vdyApOwoJCX0sCgoJCV9kZWZhdWx0OiBmdW5jdGlvbiggZnggKSB7CgkJCWlmICggZnguZWxlbS5zdHlsZSAmJiBmeC5lbGVtLnN0eWxlWyBmeC5wcm9wIF0gIT0gbnVsbCApIHsKCQkJCWZ4LmVsZW0uc3R5bGVbIGZ4LnByb3AgXSA9IChmeC5wcm9wID09PSAid2lkdGgiIHx8IGZ4LnByb3AgPT09ICJoZWlnaHQiID8gTWF0aC5tYXgoMCwgZngubm93KSA6IGZ4Lm5vdykgKyBmeC51bml0OwoJCQl9IGVsc2UgewoJCQkJZnguZWxlbVsgZngucHJvcCBdID0gZngubm93OwoJCQl9CgkJfQoJfQp9KTsKCmlmICggalF1ZXJ5LmV4cHIgJiYgalF1ZXJ5LmV4cHIuZmlsdGVycyApIHsKCWpRdWVyeS5leHByLmZpbHRlcnMuYW5pbWF0ZWQgPSBmdW5jdGlvbiggZWxlbSApIHsKCQlyZXR1cm4galF1ZXJ5LmdyZXAoalF1ZXJ5LnRpbWVycywgZnVuY3Rpb24oIGZuICkgewoJCQlyZXR1cm4gZWxlbSA9PT0gZm4uZWxlbTsKCQl9KS5sZW5ndGg7Cgl9Owp9CgpmdW5jdGlvbiBkZWZhdWx0RGlzcGxheSggbm9kZU5hbWUgKSB7CglpZiAoICFlbGVtZGlzcGxheVsgbm9kZU5hbWUgXSApIHsKCQl2YXIgZWxlbSA9IGpRdWVyeSgiPCIgKyBub2RlTmFtZSArICI+IikuYXBwZW5kVG8oImJvZHkiKSwKCQkJZGlzcGxheSA9IGVsZW0uY3NzKCJkaXNwbGF5Iik7CgoJCWVsZW0ucmVtb3ZlKCk7CgoJCWlmICggZGlzcGxheSA9PT0gIm5vbmUiIHx8IGRpc3BsYXkgPT09ICIiICkgewoJCQlkaXNwbGF5ID0gImJsb2NrIjsKCQl9CgoJCWVsZW1kaXNwbGF5WyBub2RlTmFtZSBdID0gZGlzcGxheTsKCX0KCglyZXR1cm4gZWxlbWRpc3BsYXlbIG5vZGVOYW1lIF07Cn0KCgoKCnZhciBydGFibGUgPSAvXnQoPzphYmxlfGR8aCkkL2ksCglycm9vdCA9IC9eKD86Ym9keXxodG1sKSQvaTsKCmlmICggImdldEJvdW5kaW5nQ2xpZW50UmVjdCIgaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICkgewoJalF1ZXJ5LmZuLm9mZnNldCA9IGZ1bmN0aW9uKCBvcHRpb25zICkgewoJCXZhciBlbGVtID0gdGhpc1swXSwgYm94OwoKCQlpZiAoIG9wdGlvbnMgKSB7CgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oIGkgKSB7CgkJCQlqUXVlcnkub2Zmc2V0LnNldE9mZnNldCggdGhpcywgb3B0aW9ucywgaSApOwoJCQl9KTsKCQl9CgoJCWlmICggIWVsZW0gfHwgIWVsZW0ub3duZXJEb2N1bWVudCApIHsKCQkJcmV0dXJuIG51bGw7CgkJfQoKCQlpZiAoIGVsZW0gPT09IGVsZW0ub3duZXJEb2N1bWVudC5ib2R5ICkgewoJCQlyZXR1cm4galF1ZXJ5Lm9mZnNldC5ib2R5T2Zmc2V0KCBlbGVtICk7CgkJfQoKCQl0cnkgewoJCQlib3ggPSBlbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwoJCX0gY2F0Y2goZSkge30KCgkJdmFyIGRvYyA9IGVsZW0ub3duZXJEb2N1bWVudCwKCQkJZG9jRWxlbSA9IGRvYy5kb2N1bWVudEVsZW1lbnQ7CgoJCS8vIE1ha2Ugc3VyZSB3ZSdyZSBub3QgZGVhbGluZyB3aXRoIGEgZGlzY29ubmVjdGVkIERPTSBub2RlCgkJaWYgKCAhYm94IHx8ICFqUXVlcnkuY29udGFpbnMoIGRvY0VsZW0sIGVsZW0gKSApIHsKCQkJcmV0dXJuIGJveCA/IHsgdG9wOiBib3gudG9wLCBsZWZ0OiBib3gubGVmdCB9IDogeyB0b3A6IDAsIGxlZnQ6IDAgfTsKCQl9CgoJCXZhciBib2R5ID0gZG9jLmJvZHksCgkJCXdpbiA9IGdldFdpbmRvdyhkb2MpLAoJCQljbGllbnRUb3AgID0gZG9jRWxlbS5jbGllbnRUb3AgIHx8IGJvZHkuY2xpZW50VG9wICB8fCAwLAoJCQljbGllbnRMZWZ0ID0gZG9jRWxlbS5jbGllbnRMZWZ0IHx8IGJvZHkuY2xpZW50TGVmdCB8fCAwLAoJCQlzY3JvbGxUb3AgID0gKHdpbi5wYWdlWU9mZnNldCB8fCBqUXVlcnkuc3VwcG9ydC5ib3hNb2RlbCAmJiBkb2NFbGVtLnNjcm9sbFRvcCAgfHwgYm9keS5zY3JvbGxUb3AgKSwKCQkJc2Nyb2xsTGVmdCA9ICh3aW4ucGFnZVhPZmZzZXQgfHwgalF1ZXJ5LnN1cHBvcnQuYm94TW9kZWwgJiYgZG9jRWxlbS5zY3JvbGxMZWZ0IHx8IGJvZHkuc2Nyb2xsTGVmdCksCgkJCXRvcCAgPSBib3gudG9wICArIHNjcm9sbFRvcCAgLSBjbGllbnRUb3AsCgkJCWxlZnQgPSBib3gubGVmdCArIHNjcm9sbExlZnQgLSBjbGllbnRMZWZ0OwoKCQlyZXR1cm4geyB0b3A6IHRvcCwgbGVmdDogbGVmdCB9OwoJfTsKCn0gZWxzZSB7CglqUXVlcnkuZm4ub2Zmc2V0ID0gZnVuY3Rpb24oIG9wdGlvbnMgKSB7CgkJdmFyIGVsZW0gPSB0aGlzWzBdOwoKCQlpZiAoIG9wdGlvbnMgKSB7CgkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oIGkgKSB7CgkJCQlqUXVlcnkub2Zmc2V0LnNldE9mZnNldCggdGhpcywgb3B0aW9ucywgaSApOwoJCQl9KTsKCQl9CgoJCWlmICggIWVsZW0gfHwgIWVsZW0ub3duZXJEb2N1bWVudCApIHsKCQkJcmV0dXJuIG51bGw7CgkJfQoKCQlpZiAoIGVsZW0gPT09IGVsZW0ub3duZXJEb2N1bWVudC5ib2R5ICkgewoJCQlyZXR1cm4galF1ZXJ5Lm9mZnNldC5ib2R5T2Zmc2V0KCBlbGVtICk7CgkJfQoKCQlqUXVlcnkub2Zmc2V0LmluaXRpYWxpemUoKTsKCgkJdmFyIGNvbXB1dGVkU3R5bGUsCgkJCW9mZnNldFBhcmVudCA9IGVsZW0ub2Zmc2V0UGFyZW50LAoJCQlwcmV2T2Zmc2V0UGFyZW50ID0gZWxlbSwKCQkJZG9jID0gZWxlbS5vd25lckRvY3VtZW50LAoJCQlkb2NFbGVtID0gZG9jLmRvY3VtZW50RWxlbWVudCwKCQkJYm9keSA9IGRvYy5ib2R5LAoJCQlkZWZhdWx0VmlldyA9IGRvYy5kZWZhdWx0VmlldywKCQkJcHJldkNvbXB1dGVkU3R5bGUgPSBkZWZhdWx0VmlldyA/IGRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoIGVsZW0sIG51bGwgKSA6IGVsZW0uY3VycmVudFN0eWxlLAoJCQl0b3AgPSBlbGVtLm9mZnNldFRvcCwKCQkJbGVmdCA9IGVsZW0ub2Zmc2V0TGVmdDsKCgkJd2hpbGUgKCAoZWxlbSA9IGVsZW0ucGFyZW50Tm9kZSkgJiYgZWxlbSAhPT0gYm9keSAmJiBlbGVtICE9PSBkb2NFbGVtICkgewoJCQlpZiAoIGpRdWVyeS5vZmZzZXQuc3VwcG9ydHNGaXhlZFBvc2l0aW9uICYmIHByZXZDb21wdXRlZFN0eWxlLnBvc2l0aW9uID09PSAiZml4ZWQiICkgewoJCQkJYnJlYWs7CgkJCX0KCgkJCWNvbXB1dGVkU3R5bGUgPSBkZWZhdWx0VmlldyA/IGRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZWxlbSwgbnVsbCkgOiBlbGVtLmN1cnJlbnRTdHlsZTsKCQkJdG9wICAtPSBlbGVtLnNjcm9sbFRvcDsKCQkJbGVmdCAtPSBlbGVtLnNjcm9sbExlZnQ7CgoJCQlpZiAoIGVsZW0gPT09IG9mZnNldFBhcmVudCApIHsKCQkJCXRvcCAgKz0gZWxlbS5vZmZzZXRUb3A7CgkJCQlsZWZ0ICs9IGVsZW0ub2Zmc2V0TGVmdDsKCgkJCQlpZiAoIGpRdWVyeS5vZmZzZXQuZG9lc05vdEFkZEJvcmRlciAmJiAhKGpRdWVyeS5vZmZzZXQuZG9lc0FkZEJvcmRlckZvclRhYmxlQW5kQ2VsbHMgJiYgcnRhYmxlLnRlc3QoZWxlbS5ub2RlTmFtZSkpICkgewoJCQkJCXRvcCAgKz0gcGFyc2VGbG9hdCggY29tcHV0ZWRTdHlsZS5ib3JkZXJUb3BXaWR0aCAgKSB8fCAwOwoJCQkJCWxlZnQgKz0gcGFyc2VGbG9hdCggY29tcHV0ZWRTdHlsZS5ib3JkZXJMZWZ0V2lkdGggKSB8fCAwOwoJCQkJfQoKCQkJCXByZXZPZmZzZXRQYXJlbnQgPSBvZmZzZXRQYXJlbnQ7CgkJCQlvZmZzZXRQYXJlbnQgPSBlbGVtLm9mZnNldFBhcmVudDsKCQkJfQoKCQkJaWYgKCBqUXVlcnkub2Zmc2V0LnN1YnRyYWN0c0JvcmRlckZvck92ZXJmbG93Tm90VmlzaWJsZSAmJiBjb21wdXRlZFN0eWxlLm92ZXJmbG93ICE9PSAidmlzaWJsZSIgKSB7CgkJCQl0b3AgICs9IHBhcnNlRmxvYXQoIGNvbXB1dGVkU3R5bGUuYm9yZGVyVG9wV2lkdGggICkgfHwgMDsKCQkJCWxlZnQgKz0gcGFyc2VGbG9hdCggY29tcHV0ZWRTdHlsZS5ib3JkZXJMZWZ0V2lkdGggKSB8fCAwOwoJCQl9CgoJCQlwcmV2Q29tcHV0ZWRTdHlsZSA9IGNvbXB1dGVkU3R5bGU7CgkJfQoKCQlpZiAoIHByZXZDb21wdXRlZFN0eWxlLnBvc2l0aW9uID09PSAicmVsYXRpdmUiIHx8IHByZXZDb21wdXRlZFN0eWxlLnBvc2l0aW9uID09PSAic3RhdGljIiApIHsKCQkJdG9wICArPSBib2R5Lm9mZnNldFRvcDsKCQkJbGVmdCArPSBib2R5Lm9mZnNldExlZnQ7CgkJfQoKCQlpZiAoIGpRdWVyeS5vZmZzZXQuc3VwcG9ydHNGaXhlZFBvc2l0aW9uICYmIHByZXZDb21wdXRlZFN0eWxlLnBvc2l0aW9uID09PSAiZml4ZWQiICkgewoJCQl0b3AgICs9IE1hdGgubWF4KCBkb2NFbGVtLnNjcm9sbFRvcCwgYm9keS5zY3JvbGxUb3AgKTsKCQkJbGVmdCArPSBNYXRoLm1heCggZG9jRWxlbS5zY3JvbGxMZWZ0LCBib2R5LnNjcm9sbExlZnQgKTsKCQl9CgoJCXJldHVybiB7IHRvcDogdG9wLCBsZWZ0OiBsZWZ0IH07Cgl9Owp9CgpqUXVlcnkub2Zmc2V0ID0gewoJaW5pdGlhbGl6ZTogZnVuY3Rpb24oKSB7CgkJdmFyIGJvZHkgPSBkb2N1bWVudC5ib2R5LCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSwgaW5uZXJEaXYsIGNoZWNrRGl2LCB0YWJsZSwgdGQsIGJvZHlNYXJnaW5Ub3AgPSBwYXJzZUZsb2F0KCBqUXVlcnkuY3NzKGJvZHksICJtYXJnaW5Ub3AiKSApIHx8IDAsCgkJCWh0bWwgPSAiPGRpdiBzdHlsZT0ncG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO21hcmdpbjowO2JvcmRlcjo1cHggc29saWQgIzAwMDtwYWRkaW5nOjA7d2lkdGg6MXB4O2hlaWdodDoxcHg7Jz48ZGl2PjwvZGl2PjwvZGl2Pjx0YWJsZSBzdHlsZT0ncG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO21hcmdpbjowO2JvcmRlcjo1cHggc29saWQgIzAwMDtwYWRkaW5nOjA7d2lkdGg6MXB4O2hlaWdodDoxcHg7JyBjZWxscGFkZGluZz0nMCcgY2VsbHNwYWNpbmc9JzAnPjx0cj48dGQ+PC90ZD48L3RyPjwvdGFibGU+IjsKCgkJalF1ZXJ5LmV4dGVuZCggY29udGFpbmVyLnN0eWxlLCB7IHBvc2l0aW9uOiAiYWJzb2x1dGUiLCB0b3A6IDAsIGxlZnQ6IDAsIG1hcmdpbjogMCwgYm9yZGVyOiAwLCB3aWR0aDogIjFweCIsIGhlaWdodDogIjFweCIsIHZpc2liaWxpdHk6ICJoaWRkZW4iIH0gKTsKCgkJY29udGFpbmVyLmlubmVySFRNTCA9IGh0bWw7CgkJYm9keS5pbnNlcnRCZWZvcmUoIGNvbnRhaW5lciwgYm9keS5maXJzdENoaWxkICk7CgkJaW5uZXJEaXYgPSBjb250YWluZXIuZmlyc3RDaGlsZDsKCQljaGVja0RpdiA9IGlubmVyRGl2LmZpcnN0Q2hpbGQ7CgkJdGQgPSBpbm5lckRpdi5uZXh0U2libGluZy5maXJzdENoaWxkLmZpcnN0Q2hpbGQ7CgoJCXRoaXMuZG9lc05vdEFkZEJvcmRlciA9IChjaGVja0Rpdi5vZmZzZXRUb3AgIT09IDUpOwoJCXRoaXMuZG9lc0FkZEJvcmRlckZvclRhYmxlQW5kQ2VsbHMgPSAodGQub2Zmc2V0VG9wID09PSA1KTsKCgkJY2hlY2tEaXYuc3R5bGUucG9zaXRpb24gPSAiZml4ZWQiOwoJCWNoZWNrRGl2LnN0eWxlLnRvcCA9ICIyMHB4IjsKCgkJLy8gc2FmYXJpIHN1YnRyYWN0cyBwYXJlbnQgYm9yZGVyIHdpZHRoIGhlcmUgd2hpY2ggaXMgNXB4CgkJdGhpcy5zdXBwb3J0c0ZpeGVkUG9zaXRpb24gPSAoY2hlY2tEaXYub2Zmc2V0VG9wID09PSAyMCB8fCBjaGVja0Rpdi5vZmZzZXRUb3AgPT09IDE1KTsKCQljaGVja0Rpdi5zdHlsZS5wb3NpdGlvbiA9IGNoZWNrRGl2LnN0eWxlLnRvcCA9ICIiOwoKCQlpbm5lckRpdi5zdHlsZS5vdmVyZmxvdyA9ICJoaWRkZW4iOwoJCWlubmVyRGl2LnN0eWxlLnBvc2l0aW9uID0gInJlbGF0aXZlIjsKCgkJdGhpcy5zdWJ0cmFjdHNCb3JkZXJGb3JPdmVyZmxvd05vdFZpc2libGUgPSAoY2hlY2tEaXYub2Zmc2V0VG9wID09PSAtNSk7CgoJCXRoaXMuZG9lc05vdEluY2x1ZGVNYXJnaW5JbkJvZHlPZmZzZXQgPSAoYm9keS5vZmZzZXRUb3AgIT09IGJvZHlNYXJnaW5Ub3ApOwoKCQlib2R5LnJlbW92ZUNoaWxkKCBjb250YWluZXIgKTsKCQlib2R5ID0gY29udGFpbmVyID0gaW5uZXJEaXYgPSBjaGVja0RpdiA9IHRhYmxlID0gdGQgPSBudWxsOwoJCWpRdWVyeS5vZmZzZXQuaW5pdGlhbGl6ZSA9IGpRdWVyeS5ub29wOwoJfSwKCglib2R5T2Zmc2V0OiBmdW5jdGlvbiggYm9keSApIHsKCQl2YXIgdG9wID0gYm9keS5vZmZzZXRUb3AsCgkJCWxlZnQgPSBib2R5Lm9mZnNldExlZnQ7CgoJCWpRdWVyeS5vZmZzZXQuaW5pdGlhbGl6ZSgpOwoKCQlpZiAoIGpRdWVyeS5vZmZzZXQuZG9lc05vdEluY2x1ZGVNYXJnaW5JbkJvZHlPZmZzZXQgKSB7CgkJCXRvcCAgKz0gcGFyc2VGbG9hdCggalF1ZXJ5LmNzcyhib2R5LCAibWFyZ2luVG9wIikgKSB8fCAwOwoJCQlsZWZ0ICs9IHBhcnNlRmxvYXQoIGpRdWVyeS5jc3MoYm9keSwgIm1hcmdpbkxlZnQiKSApIHx8IDA7CgkJfQoKCQlyZXR1cm4geyB0b3A6IHRvcCwgbGVmdDogbGVmdCB9OwoJfSwKCglzZXRPZmZzZXQ6IGZ1bmN0aW9uKCBlbGVtLCBvcHRpb25zLCBpICkgewoJCXZhciBwb3NpdGlvbiA9IGpRdWVyeS5jc3MoIGVsZW0sICJwb3NpdGlvbiIgKTsKCgkJLy8gc2V0IHBvc2l0aW9uIGZpcnN0LCBpbi1jYXNlIHRvcC9sZWZ0IGFyZSBzZXQgZXZlbiBvbiBzdGF0aWMgZWxlbQoJCWlmICggcG9zaXRpb24gPT09ICJzdGF0aWMiICkgewoJCQllbGVtLnN0eWxlLnBvc2l0aW9uID0gInJlbGF0aXZlIjsKCQl9CgoJCXZhciBjdXJFbGVtID0galF1ZXJ5KCBlbGVtICksCgkJCWN1ck9mZnNldCA9IGN1ckVsZW0ub2Zmc2V0KCksCgkJCWN1ckNTU1RvcCA9IGpRdWVyeS5jc3MoIGVsZW0sICJ0b3AiICksCgkJCWN1ckNTU0xlZnQgPSBqUXVlcnkuY3NzKCBlbGVtLCAibGVmdCIgKSwKCQkJY2FsY3VsYXRlUG9zaXRpb24gPSAocG9zaXRpb24gPT09ICJhYnNvbHV0ZSIgJiYgalF1ZXJ5LmluQXJyYXkoJ2F1dG8nLCBbY3VyQ1NTVG9wLCBjdXJDU1NMZWZ0XSkgPiAtMSksCgkJCXByb3BzID0ge30sIGN1clBvc2l0aW9uID0ge30sIGN1clRvcCwgY3VyTGVmdDsKCgkJLy8gbmVlZCB0byBiZSBhYmxlIHRvIGNhbGN1bGF0ZSBwb3NpdGlvbiBpZiBlaXRoZXIgdG9wIG9yIGxlZnQgaXMgYXV0byBhbmQgcG9zaXRpb24gaXMgYWJzb2x1dGUKCQlpZiAoIGNhbGN1bGF0ZVBvc2l0aW9uICkgewoJCQljdXJQb3NpdGlvbiA9IGN1ckVsZW0ucG9zaXRpb24oKTsKCQl9CgoJCWN1clRvcCAgPSBjYWxjdWxhdGVQb3NpdGlvbiA/IGN1clBvc2l0aW9uLnRvcCAgOiBwYXJzZUludCggY3VyQ1NTVG9wLCAgMTAgKSB8fCAwOwoJCWN1ckxlZnQgPSBjYWxjdWxhdGVQb3NpdGlvbiA/IGN1clBvc2l0aW9uLmxlZnQgOiBwYXJzZUludCggY3VyQ1NTTGVmdCwgMTAgKSB8fCAwOwoKCQlpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCBvcHRpb25zICkgKSB7CgkJCW9wdGlvbnMgPSBvcHRpb25zLmNhbGwoIGVsZW0sIGksIGN1ck9mZnNldCApOwoJCX0KCgkJaWYgKG9wdGlvbnMudG9wICE9IG51bGwpIHsKCQkJcHJvcHMudG9wID0gKG9wdGlvbnMudG9wIC0gY3VyT2Zmc2V0LnRvcCkgKyBjdXJUb3A7CgkJfQoJCWlmIChvcHRpb25zLmxlZnQgIT0gbnVsbCkgewoJCQlwcm9wcy5sZWZ0ID0gKG9wdGlvbnMubGVmdCAtIGN1ck9mZnNldC5sZWZ0KSArIGN1ckxlZnQ7CgkJfQoKCQlpZiAoICJ1c2luZyIgaW4gb3B0aW9ucyApIHsKCQkJb3B0aW9ucy51c2luZy5jYWxsKCBlbGVtLCBwcm9wcyApOwoJCX0gZWxzZSB7CgkJCWN1ckVsZW0uY3NzKCBwcm9wcyApOwoJCX0KCX0KfTsKCgpqUXVlcnkuZm4uZXh0ZW5kKHsKCXBvc2l0aW9uOiBmdW5jdGlvbigpIHsKCQlpZiAoICF0aGlzWzBdICkgewoJCQlyZXR1cm4gbnVsbDsKCQl9CgoJCXZhciBlbGVtID0gdGhpc1swXSwKCgkJLy8gR2V0ICpyZWFsKiBvZmZzZXRQYXJlbnQKCQlvZmZzZXRQYXJlbnQgPSB0aGlzLm9mZnNldFBhcmVudCgpLAoKCQkvLyBHZXQgY29ycmVjdCBvZmZzZXRzCgkJb2Zmc2V0ICAgICAgID0gdGhpcy5vZmZzZXQoKSwKCQlwYXJlbnRPZmZzZXQgPSBycm9vdC50ZXN0KG9mZnNldFBhcmVudFswXS5ub2RlTmFtZSkgPyB7IHRvcDogMCwgbGVmdDogMCB9IDogb2Zmc2V0UGFyZW50Lm9mZnNldCgpOwoKCQkvLyBTdWJ0cmFjdCBlbGVtZW50IG1hcmdpbnMKCQkvLyBub3RlOiB3aGVuIGFuIGVsZW1lbnQgaGFzIG1hcmdpbjogYXV0byB0aGUgb2Zmc2V0TGVmdCBhbmQgbWFyZ2luTGVmdAoJCS8vIGFyZSB0aGUgc2FtZSBpbiBTYWZhcmkgY2F1c2luZyBvZmZzZXQubGVmdCB0byBpbmNvcnJlY3RseSBiZSAwCgkJb2Zmc2V0LnRvcCAgLT0gcGFyc2VGbG9hdCggalF1ZXJ5LmNzcyhlbGVtLCAibWFyZ2luVG9wIikgKSB8fCAwOwoJCW9mZnNldC5sZWZ0IC09IHBhcnNlRmxvYXQoIGpRdWVyeS5jc3MoZWxlbSwgIm1hcmdpbkxlZnQiKSApIHx8IDA7CgoJCS8vIEFkZCBvZmZzZXRQYXJlbnQgYm9yZGVycwoJCXBhcmVudE9mZnNldC50b3AgICs9IHBhcnNlRmxvYXQoIGpRdWVyeS5jc3Mob2Zmc2V0UGFyZW50WzBdLCAiYm9yZGVyVG9wV2lkdGgiKSApIHx8IDA7CgkJcGFyZW50T2Zmc2V0LmxlZnQgKz0gcGFyc2VGbG9hdCggalF1ZXJ5LmNzcyhvZmZzZXRQYXJlbnRbMF0sICJib3JkZXJMZWZ0V2lkdGgiKSApIHx8IDA7CgoJCS8vIFN1YnRyYWN0IHRoZSB0d28gb2Zmc2V0cwoJCXJldHVybiB7CgkJCXRvcDogIG9mZnNldC50b3AgIC0gcGFyZW50T2Zmc2V0LnRvcCwKCQkJbGVmdDogb2Zmc2V0LmxlZnQgLSBwYXJlbnRPZmZzZXQubGVmdAoJCX07Cgl9LAoKCW9mZnNldFBhcmVudDogZnVuY3Rpb24oKSB7CgkJcmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCkgewoJCQl2YXIgb2Zmc2V0UGFyZW50ID0gdGhpcy5vZmZzZXRQYXJlbnQgfHwgZG9jdW1lbnQuYm9keTsKCQkJd2hpbGUgKCBvZmZzZXRQYXJlbnQgJiYgKCFycm9vdC50ZXN0KG9mZnNldFBhcmVudC5ub2RlTmFtZSkgJiYgalF1ZXJ5LmNzcyhvZmZzZXRQYXJlbnQsICJwb3NpdGlvbiIpID09PSAic3RhdGljIikgKSB7CgkJCQlvZmZzZXRQYXJlbnQgPSBvZmZzZXRQYXJlbnQub2Zmc2V0UGFyZW50OwoJCQl9CgkJCXJldHVybiBvZmZzZXRQYXJlbnQ7CgkJfSk7Cgl9Cn0pOwoKCi8vIENyZWF0ZSBzY3JvbGxMZWZ0IGFuZCBzY3JvbGxUb3AgbWV0aG9kcwpqUXVlcnkuZWFjaCggWyJMZWZ0IiwgIlRvcCJdLCBmdW5jdGlvbiggaSwgbmFtZSApIHsKCXZhciBtZXRob2QgPSAic2Nyb2xsIiArIG5hbWU7CgoJalF1ZXJ5LmZuWyBtZXRob2QgXSA9IGZ1bmN0aW9uKHZhbCkgewoJCXZhciBlbGVtID0gdGhpc1swXSwgd2luOwoKCQlpZiAoICFlbGVtICkgewoJCQlyZXR1cm4gbnVsbDsKCQl9CgoJCWlmICggdmFsICE9PSB1bmRlZmluZWQgKSB7CgkJCS8vIFNldCB0aGUgc2Nyb2xsIG9mZnNldAoJCQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkgewoJCQkJd2luID0gZ2V0V2luZG93KCB0aGlzICk7CgoJCQkJaWYgKCB3aW4gKSB7CgkJCQkJd2luLnNjcm9sbFRvKAoJCQkJCQkhaSA/IHZhbCA6IGpRdWVyeSh3aW4pLnNjcm9sbExlZnQoKSwKCQkJCQkJaSA/IHZhbCA6IGpRdWVyeSh3aW4pLnNjcm9sbFRvcCgpCgkJCQkJKTsKCgkJCQl9IGVsc2UgewoJCQkJCXRoaXNbIG1ldGhvZCBdID0gdmFsOwoJCQkJfQoJCQl9KTsKCQl9IGVsc2UgewoJCQl3aW4gPSBnZXRXaW5kb3coIGVsZW0gKTsKCgkJCS8vIFJldHVybiB0aGUgc2Nyb2xsIG9mZnNldAoJCQlyZXR1cm4gd2luID8gKCJwYWdlWE9mZnNldCIgaW4gd2luKSA/IHdpblsgaSA/ICJwYWdlWU9mZnNldCIgOiAicGFnZVhPZmZzZXQiIF0gOgoJCQkJalF1ZXJ5LnN1cHBvcnQuYm94TW9kZWwgJiYgd2luLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFsgbWV0aG9kIF0gfHwKCQkJCQl3aW4uZG9jdW1lbnQuYm9keVsgbWV0aG9kIF0gOgoJCQkJZWxlbVsgbWV0aG9kIF07CgkJfQoJfTsKfSk7CgpmdW5jdGlvbiBnZXRXaW5kb3coIGVsZW0gKSB7CglyZXR1cm4galF1ZXJ5LmlzV2luZG93KCBlbGVtICkgPwoJCWVsZW0gOgoJCWVsZW0ubm9kZVR5cGUgPT09IDkgPwoJCQllbGVtLmRlZmF1bHRWaWV3IHx8IGVsZW0ucGFyZW50V2luZG93IDoKCQkJZmFsc2U7Cn0KCgoKCi8vIENyZWF0ZSBpbm5lckhlaWdodCwgaW5uZXJXaWR0aCwgb3V0ZXJIZWlnaHQgYW5kIG91dGVyV2lkdGggbWV0aG9kcwpqUXVlcnkuZWFjaChbICJIZWlnaHQiLCAiV2lkdGgiIF0sIGZ1bmN0aW9uKCBpLCBuYW1lICkgewoKCXZhciB0eXBlID0gbmFtZS50b0xvd2VyQ2FzZSgpOwoKCS8vIGlubmVySGVpZ2h0IGFuZCBpbm5lcldpZHRoCglqUXVlcnkuZm5bImlubmVyIiArIG5hbWVdID0gZnVuY3Rpb24oKSB7CgkJcmV0dXJuIHRoaXNbMF0gPwoJCQlwYXJzZUZsb2F0KCBqUXVlcnkuY3NzKCB0aGlzWzBdLCB0eXBlLCAicGFkZGluZyIgKSApIDoKCQkJbnVsbDsKCX07CgoJLy8gb3V0ZXJIZWlnaHQgYW5kIG91dGVyV2lkdGgKCWpRdWVyeS5mblsib3V0ZXIiICsgbmFtZV0gPSBmdW5jdGlvbiggbWFyZ2luICkgewoJCXJldHVybiB0aGlzWzBdID8KCQkJcGFyc2VGbG9hdCggalF1ZXJ5LmNzcyggdGhpc1swXSwgdHlwZSwgbWFyZ2luID8gIm1hcmdpbiIgOiAiYm9yZGVyIiApICkgOgoJCQludWxsOwoJfTsKCglqUXVlcnkuZm5bIHR5cGUgXSA9IGZ1bmN0aW9uKCBzaXplICkgewoJCS8vIEdldCB3aW5kb3cgd2lkdGggb3IgaGVpZ2h0CgkJdmFyIGVsZW0gPSB0aGlzWzBdOwoJCWlmICggIWVsZW0gKSB7CgkJCXJldHVybiBzaXplID09IG51bGwgPyBudWxsIDogdGhpczsKCQl9CgoJCWlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHNpemUgKSApIHsKCQkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiggaSApIHsKCQkJCXZhciBzZWxmID0galF1ZXJ5KCB0aGlzICk7CgkJCQlzZWxmWyB0eXBlIF0oIHNpemUuY2FsbCggdGhpcywgaSwgc2VsZlsgdHlwZSBdKCkgKSApOwoJCQl9KTsKCQl9CgoJCWlmICggalF1ZXJ5LmlzV2luZG93KCBlbGVtICkgKSB7CgkJCS8vIEV2ZXJ5b25lIGVsc2UgdXNlIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCBvciBkb2N1bWVudC5ib2R5IGRlcGVuZGluZyBvbiBRdWlya3MgdnMgU3RhbmRhcmRzIG1vZGUKCQkJLy8gM3JkIGNvbmRpdGlvbiBhbGxvd3MgTm9raWEgc3VwcG9ydCwgYXMgaXQgc3VwcG9ydHMgdGhlIGRvY0VsZW0gcHJvcCBidXQgbm90IENTUzFDb21wYXQKCQkJdmFyIGRvY0VsZW1Qcm9wID0gZWxlbS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbICJjbGllbnQiICsgbmFtZSBdOwoJCQlyZXR1cm4gZWxlbS5kb2N1bWVudC5jb21wYXRNb2RlID09PSAiQ1NTMUNvbXBhdCIgJiYgZG9jRWxlbVByb3AgfHwKCQkJCWVsZW0uZG9jdW1lbnQuYm9keVsgImNsaWVudCIgKyBuYW1lIF0gfHwgZG9jRWxlbVByb3A7CgoJCS8vIEdldCBkb2N1bWVudCB3aWR0aCBvciBoZWlnaHQKCQl9IGVsc2UgaWYgKCBlbGVtLm5vZGVUeXBlID09PSA5ICkgewoJCQkvLyBFaXRoZXIgc2Nyb2xsW1dpZHRoL0hlaWdodF0gb3Igb2Zmc2V0W1dpZHRoL0hlaWdodF0sIHdoaWNoZXZlciBpcyBncmVhdGVyCgkJCXJldHVybiBNYXRoLm1heCgKCQkJCWVsZW0uZG9jdW1lbnRFbGVtZW50WyJjbGllbnQiICsgbmFtZV0sCgkJCQllbGVtLmJvZHlbInNjcm9sbCIgKyBuYW1lXSwgZWxlbS5kb2N1bWVudEVsZW1lbnRbInNjcm9sbCIgKyBuYW1lXSwKCQkJCWVsZW0uYm9keVsib2Zmc2V0IiArIG5hbWVdLCBlbGVtLmRvY3VtZW50RWxlbWVudFsib2Zmc2V0IiArIG5hbWVdCgkJCSk7CgoJCS8vIEdldCBvciBzZXQgd2lkdGggb3IgaGVpZ2h0IG9uIHRoZSBlbGVtZW50CgkJfSBlbHNlIGlmICggc2l6ZSA9PT0gdW5kZWZpbmVkICkgewoJCQl2YXIgb3JpZyA9IGpRdWVyeS5jc3MoIGVsZW0sIHR5cGUgKSwKCQkJCXJldCA9IHBhcnNlRmxvYXQoIG9yaWcgKTsKCgkJCXJldHVybiBqUXVlcnkuaXNOYU4oIHJldCApID8gb3JpZyA6IHJldDsKCgkJLy8gU2V0IHRoZSB3aWR0aCBvciBoZWlnaHQgb24gdGhlIGVsZW1lbnQgKGRlZmF1bHQgdG8gcGl4ZWxzIGlmIHZhbHVlIGlzIHVuaXRsZXNzKQoJCX0gZWxzZSB7CgkJCXJldHVybiB0aGlzLmNzcyggdHlwZSwgdHlwZW9mIHNpemUgPT09ICJzdHJpbmciID8gc2l6ZSA6IHNpemUgKyAicHgiICk7CgkJfQoJfTsKCn0pOwoKCndpbmRvdy5qUXVlcnkgPSB3aW5kb3cuJCA9IGpRdWVyeTsKfSkod2luZG93KTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/media/docs/media/js/shBrushJScript.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIFN5bnRheEhpZ2hsaWdodGVyCiAqIGh0dHA6Ly9hbGV4Z29yYmF0Y2hldi5jb20vU3ludGF4SGlnaGxpZ2h0ZXIKICoKICogU3ludGF4SGlnaGxpZ2h0ZXIgaXMgZG9uYXRpb253YXJlLiBJZiB5b3UgYXJlIHVzaW5nIGl0LCBwbGVhc2UgZG9uYXRlLgogKiBodHRwOi8vYWxleGdvcmJhdGNoZXYuY29tL1N5bnRheEhpZ2hsaWdodGVyL2RvbmF0ZS5odG1sCiAqCiAqIEB2ZXJzaW9uCiAqIDMuMC44MyAoSnVseSAwMiAyMDEwKQogKiAKICogQGNvcHlyaWdodAogKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMCBBbGV4IEdvcmJhdGNoZXYuCiAqCiAqIEBsaWNlbnNlCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzLgogKi8KOyhmdW5jdGlvbigpCnsKCS8vIENvbW1vbkpTCgl0eXBlb2YocmVxdWlyZSkgIT0gJ3VuZGVmaW5lZCcgPyBTeW50YXhIaWdobGlnaHRlciA9IHJlcXVpcmUoJ3NoQ29yZScpLlN5bnRheEhpZ2hsaWdodGVyIDogbnVsbDsKCglmdW5jdGlvbiBCcnVzaCgpCgl7CgkJdmFyIGtleXdvcmRzID0JJ2JyZWFrIGNhc2UgY2F0Y2ggY29udGludWUgJyArCgkJCQkJCSdkZWZhdWx0IGRlbGV0ZSBkbyBlbHNlIGZhbHNlICAnICsKCQkJCQkJJ2ZvciBmdW5jdGlvbiBpZiBpbiBpbnN0YW5jZW9mICcgKwoJCQkJCQknbmV3IG51bGwgcmV0dXJuIHN1cGVyIHN3aXRjaCAnICsKCQkJCQkJJ3RoaXMgdGhyb3cgdHJ1ZSB0cnkgdHlwZW9mIHZhciB3aGlsZSB3aXRoJwoJCQkJCQk7CgoJCXZhciByID0gU3ludGF4SGlnaGxpZ2h0ZXIucmVnZXhMaWI7CgkJCgkJdGhpcy5yZWdleExpc3QgPSBbCgkJCXsgcmVnZXg6IHIubXVsdGlMaW5lRG91YmxlUXVvdGVkU3RyaW5nLAkJCQkJY3NzOiAnc3RyaW5nJyB9LAkJCS8vIGRvdWJsZSBxdW90ZWQgc3RyaW5ncwoJCQl7IHJlZ2V4OiByLm11bHRpTGluZVNpbmdsZVF1b3RlZFN0cmluZywJCQkJCWNzczogJ3N0cmluZycgfSwJCQkvLyBzaW5nbGUgcXVvdGVkIHN0cmluZ3MKCQkJeyByZWdleDogci5zaW5nbGVMaW5lQ0NvbW1lbnRzLAkJCQkJCQljc3M6ICdjb21tZW50cycgfSwJCQkvLyBvbmUgbGluZSBjb21tZW50cwoJCQl7IHJlZ2V4OiByLm11bHRpTGluZUNDb21tZW50cywJCQkJCQkJY3NzOiAnY29tbWVudHMnIH0sCQkJLy8gbXVsdGlsaW5lIGNvbW1lbnRzCgkJCXsgcmVnZXg6IC9ccyojLiovZ20sCQkJCQkJCQkJY3NzOiAncHJlcHJvY2Vzc29yJyB9LAkJLy8gcHJlcHJvY2Vzc29yIHRhZ3MgbGlrZSAjcmVnaW9uIGFuZCAjZW5kcmVnaW9uCgkJCXsgcmVnZXg6IG5ldyBSZWdFeHAodGhpcy5nZXRLZXl3b3JkcyhrZXl3b3JkcyksICdnbScpLAljc3M6ICdrZXl3b3JkJyB9CQkJLy8ga2V5d29yZHMKCQkJXTsKCQoJCXRoaXMuZm9ySHRtbFNjcmlwdChyLnNjcmlwdFNjcmlwdFRhZ3MpOwoJfTsKCglCcnVzaC5wcm90b3R5cGUJPSBuZXcgU3ludGF4SGlnaGxpZ2h0ZXIuSGlnaGxpZ2h0ZXIoKTsKCUJydXNoLmFsaWFzZXMJPSBbJ2pzJywgJ2pzY3JpcHQnLCAnamF2YXNjcmlwdCddOwoKCVN5bnRheEhpZ2hsaWdodGVyLmJydXNoZXMuSlNjcmlwdCA9IEJydXNoOwoKCS8vIENvbW1vbkpTCgl0eXBlb2YoZXhwb3J0cykgIT0gJ3VuZGVmaW5lZCcgPyBleHBvcnRzLkJydXNoID0gQnJ1c2ggOiBudWxsOwp9KSgpOwo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/media/docs/media/js/shCore.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIFN5bnRheEhpZ2hsaWdodGVyCiAqIGh0dHA6Ly9hbGV4Z29yYmF0Y2hldi5jb20vU3ludGF4SGlnaGxpZ2h0ZXIKICoKICogU3ludGF4SGlnaGxpZ2h0ZXIgaXMgZG9uYXRpb253YXJlLiBJZiB5b3UgYXJlIHVzaW5nIGl0LCBwbGVhc2UgZG9uYXRlLgogKiBodHRwOi8vYWxleGdvcmJhdGNoZXYuY29tL1N5bnRheEhpZ2hsaWdodGVyL2RvbmF0ZS5odG1sCiAqCiAqIEB2ZXJzaW9uCiAqIDMuMC44MyAoSnVseSAwMiAyMDEwKQogKiAKICogQGNvcHlyaWdodAogKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMCBBbGV4IEdvcmJhdGNoZXYuCiAqCiAqIEBsaWNlbnNlCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzLgogKi8KZXZhbChmdW5jdGlvbihwLGEsYyxrLGUsZCl7ZT1mdW5jdGlvbihjKXtyZXR1cm4oYzxhPycnOmUocGFyc2VJbnQoYy9hKSkpKygoYz1jJWEpPjM1P1N0cmluZy5mcm9tQ2hhckNvZGUoYysyOSk6Yy50b1N0cmluZygzNikpfTtpZighJycucmVwbGFjZSgvXi8sU3RyaW5nKSl7d2hpbGUoYy0tKXtkW2UoYyldPWtbY118fGUoYyl9az1bZnVuY3Rpb24oZSl7cmV0dXJuIGRbZV19XTtlPWZ1bmN0aW9uKCl7cmV0dXJuJ1xcdysnfTtjPTF9O3doaWxlKGMtLSl7aWYoa1tjXSl7cD1wLnJlcGxhY2UobmV3IFJlZ0V4cCgnXFxiJytlKGMpKydcXGInLCdnJyksa1tjXSl9fXJldHVybiBwfSgnSyBNO0koTSkxUyAyVSgiMmFcJ3QgNGsgTSA0SyAyZyAzbCA0RyA0SCIpOyg2KCl7NiByKGYsZSl7SSghTS4xUihmKSkxUyAzbSgiM3MgMTUgNFIiKTtLIGE9Zi4xdztmPU0oZi4xbSx0KGYpKyhlfHwiIikpO0koYSlmLjF3PXsxbTphLjFtLDE5OmEuMTk/YS4xOS4xYSgwKTpOfTtIIGZ9NiB0KGYpe0goZi4xSj8iZyI6IiIpKyhmLjRzPyJpIjoiIikrKGYuNHA/Im0iOiIiKSsoZi40dj8ieCI6IiIpKyhmLjNuPyJ5IjoiIil9NiBCKGYsZSxhLGIpe0sgYz11LkwsZCxoLGc7dj1SOzVLe08oO2MtLTspe2c9dVtjXTtJKGEmZy4zciYmKCFnLjJwfHxnLjJwLlcoYikpKXtnLjJxLjEyPWU7SSgoaD1nLjJxLlgoZikpJiZoLlA9PT1lKXtkPXszazpnLjJiLlcoYixoLGEpLDFDOmh9OzFOfX19fTV2KGkpezFTIGl9NXF7dj0xMX1IIGR9NiBwKGYsZSxhKXtJKDNiLlouMWkpSCBmLjFpKGUsYSk7TyhhPWF8fDA7YTxmLkw7YSsrKUkoZlthXT09PWUpSCBhO0gtMX1NPTYoZixlKXtLIGE9W10sYj1NLjFCLGM9MCxkLGg7SShNLjFSKGYpKXtJKGUhPT0xZCkxUyAzbSgiMmFcJ3QgNXIgNUkgNUYgNUIgNUMgMTUgNUUgNXAiKTtIIHIoZil9SSh2KTFTIDJVKCIyYVwndCBXIDNsIE0gNTkgNW0gNWcgNXggNWkiKTtlPWV8fCIiO08oZD17Mk46MTEsMTk6W10sMks6NihnKXtIIGUuMWkoZyk+LTF9LDNkOjYoZyl7ZSs9Z319O2M8Zi5MOylJKGg9QihmLGMsYixkKSl7YS5VKGguM2spO2MrPWguMUNbMF0uTHx8MX1ZIEkoaD1uLlguVyh6W2JdLGYuMWEoYykpKXthLlUoaFswXSk7Yys9aFswXS5MfVl7aD1mLjNhKGMpO0koaD09PSJbIiliPU0uMkk7WSBJKGg9PT0iXSIpYj1NLjFCO2EuVShoKTtjKyt9YT0xNShhLjFLKCIiKSxuLlEuVyhlLHcsIiIpKTthLjF3PXsxbTpmLDE5OmQuMk4/ZC4xOTpOfTtIIGF9O00uM3Y9IjEuNS4wIjtNLjJJPTE7TS4xQj0yO0sgQz0vXFwkKD86KFxcZFxcZD98WyQmYFwnXSl8eyhbJFxcd10rKX0pL2csdz0vW141aF0rfChbXFxzXFxTXSkoPz1bXFxzXFxTXSpcXDEpL2csQT0vXig/Ols/KitdfHtcXGQrKD86LFxcZCopP30pXFw/Py8sdj0xMSx1PVtdLG49e1g6MTUuWi5YLDFBOjE1LlouMUEsMUM6MXIuWi4xQyxROjFyLlouUSwxZToxci5aLjFlfSx4PW4uWC5XKC8oKT8/LywiIilbMV09PT0xZCxEPTYoKXtLIGY9L14vZztuLjFBLlcoZiwiIik7SCFmLjEyfSgpLHk9Nigpe0sgZj0veC9nO24uUS5XKCJ4IixmLCIiKTtIIWYuMTJ9KCksRT0xNS5aLjNuIT09MWQsej17fTt6W00uMkldPS9eKD86XFxcXCg/OlswLTNdWzAtN117MCwyfXxbNC03XVswLTddP3x4W1xcMjktMjYtZl17Mn18dVtcXDI5LTI2LWZdezR9fGNbQS0zby16XXxbXFxzXFxTXSkpLzt6W00uMUJdPS9eKD86XFxcXCg/OjAoPzpbMC0zXVswLTddezAsMn18WzQtN11bMC03XT8pP3xbMS05XVxcZCp8eFtcXDI5LTI2LWZdezJ9fHVbXFwyOS0yNi1mXXs0fXxjW0EtM28tel18W1xcc1xcU10pfFxcKFxcP1s6PSFdfFs/KitdXFw/fHtcXGQrKD86LFxcZCopP31cXD8/KS87TS4xaD02KGYsZSxhLGIpe3UuVSh7MnE6cihmLCJnIisoRT8ieSI6IiIpKSwyYjplLDNyOmF8fE0uMUIsMnA6Ynx8Tn0pfTtNLjJuPTYoZixlKXtLIGE9ZisiLyIrKGV8fCIiKTtIIE0uMm5bYV18fChNLjJuW2FdPU0oZixlKSl9O00uM2M9NihmKXtIIHIoZiwiZyIpfTtNLjVsPTYoZil7SCBmLlEoL1stW1xcXXt9KCkqKz8uLFxcXFxeJHwjXFxzXS9nLCJcXFxcJCYiKX07TS41ZT02KGYsZSxhLGIpe2U9cihlLCJnIisoYiYmRT8ieSI6IiIpKTtlLjEyPWE9YXx8MDtmPWUuWChmKTtIIGI/ZiYmZi5QPT09YT9mOk46Zn07TS4zcT02KCl7TS4xaD02KCl7MVMgMlUoIjJhXCd0IDU1IDFoIDU0IDNxIil9fTtNLjFSPTYoZil7SCA1My5aLjFxLlcoZik9PT0iWzJtIDE1XSJ9O00uM3A9NihmLGUsYSxiKXtPKEsgYz1yKGUsImciKSxkPS0xLGg7aD1jLlgoZik7KXthLlcoYixoLCsrZCxmLGMpO2MuMTI9PT1oLlAmJmMuMTIrK31JKGUuMUopZS4xMj0wfTtNLjU3PTYoZixlKXtIIDYgYShiLGMpe0sgZD1lW2NdLjFJP2VbY106ezFJOmVbY119LGg9cihkLjFJLCJnIiksZz1bXSxpO08oaT0wO2k8Yi5MO2krKylNLjNwKGJbaV0saCw2KGspe2cuVShkLjNqP2tbZC4zal18fCIiOmtbMF0pfSk7SCBjPT09ZS5MLTF8fCFnLkw/ZzphKGcsYysxKX0oW2ZdLDApfTsxNS5aLjFwPTYoZixlKXtIIEouWChlWzBdKX07MTUuWi5XPTYoZixlKXtIIEouWChlKX07MTUuWi5YPTYoZil7SyBlPW4uWC4xcChKLDE0KSxhO0koZSl7SSgheCYmZS5MPjEmJnAoZSwiIik+LTEpe2E9MTUoSi4xbSxuLlEuVyh0KEopLCJnIiwiIikpO24uUS5XKGYuMWEoZS5QKSxhLDYoKXtPKEsgYz0xO2M8MTQuTC0yO2MrKylJKDE0W2NdPT09MWQpZVtjXT0xZH0pfUkoSi4xdyYmSi4xdy4xOSlPKEsgYj0xO2I8ZS5MO2IrKylJKGE9Si4xdy4xOVtiLTFdKWVbYV09ZVtiXTshRCYmSi4xSiYmIWVbMF0uTCYmSi4xMj5lLlAmJkouMTItLX1IIGV9O0koIUQpMTUuWi4xQT02KGYpeyhmPW4uWC5XKEosZikpJiZKLjFKJiYhZlswXS5MJiZKLjEyPmYuUCYmSi4xMi0tO0ghIWZ9OzFyLlouMUM9NihmKXtNLjFSKGYpfHwoZj0xNShmKSk7SShmLjFKKXtLIGU9bi4xQy4xcChKLDE0KTtmLjEyPTA7SCBlfUggZi5YKEopfTsxci5aLlE9NihmLGUpe0sgYT1NLjFSKGYpLGIsYztJKGEmJjFqIGUuNTgoKT09PSIzZiImJmUuMWkoIiR7Iik9PT0tMSYmeSlIIG4uUS4xcChKLDE0KTtJKGEpe0koZi4xdyliPWYuMXcuMTl9WSBmKz0iIjtJKDFqIGU9PT0iNiIpYz1uLlEuVyhKLGYsNigpe0koYil7MTRbMF09MWYgMXIoMTRbMF0pO08oSyBkPTA7ZDxiLkw7ZCsrKUkoYltkXSkxNFswXVtiW2RdXT0xNFtkKzFdfUkoYSYmZi4xSilmLjEyPTE0WzE0LkwtMl0rMTRbMF0uTDtIIGUuMXAoTiwxNCl9KTtZe2M9SisiIjtjPW4uUS5XKGMsZiw2KCl7SyBkPTE0O0ggbi5RLlcoZSxDLDYoaCxnLGkpe0koZyk1YihnKXsyNCIkIjpIIiQiOzI0IiYiOkggZFswXTsyNCJgIjpIIGRbZC5MLTFdLjFhKDAsZFtkLkwtMl0pOzI0IlwnIjpIIGRbZC5MLTFdLjFhKGRbZC5MLTJdK2RbMF0uTCk7NWE6aT0iIjtnPStnO0koIWcpSCBoO08oO2c+ZC5MLTM7KXtpPTFyLlouMWEuVyhnLC0xKStpO2c9MVEuM2koZy8xMCl9SChnP2RbZ118fCIiOiIkIikraX1Ze2c9K2k7SShnPD1kLkwtMylIIGRbZ107Zz1iP3AoYixpKTotMTtIIGc+LTE/ZFtnKzFdOmh9fSl9KX1JKGEmJmYuMUopZi4xMj0wO0ggY307MXIuWi4xZT02KGYsZSl7SSghTS4xUihmKSlIIG4uMWUuMXAoSiwxNCk7SyBhPUorIiIsYj1bXSxjPTAsZCxoO0koZT09PTFkfHwrZTwwKWU9NUQ7WXtlPTFRLjNpKCtlKTtJKCFlKUhbXX1PKGY9TS4zYyhmKTtkPWYuWChhKTspe0koZi4xMj5jKXtiLlUoYS4xYShjLGQuUCkpO2QuTD4xJiZkLlA8YS5MJiYzYi5aLlUuMXAoYixkLjFhKDEpKTtoPWRbMF0uTDtjPWYuMTI7SShiLkw+PWUpMU59Zi4xMj09PWQuUCYmZi4xMisrfUkoYz09PWEuTCl7SSghbi4xQS5XKGYsIiIpfHxoKWIuVSgiIil9WSBiLlUoYS4xYShjKSk7SCBiLkw+ZT9iLjFhKDAsZSk6Yn07TS4xaCgvXFwoXFw/I1teKV0qXFwpLyw2KGYpe0ggbi4xQS5XKEEsZi4yUy4xYShmLlArZlswXS5MKSk/IiI6Iig/OikifSk7TS4xaCgvXFwoKD8hXFw/KS8sNigpe0ouMTkuVShOKTtIIigifSk7TS4xaCgvXFwoXFw/PChbJFxcd10rKT4vLDYoZil7Si4xOS5VKGZbMV0pO0ouMk49UjtIIigifSk7TS4xaCgvXFxcXGs8KFtcXHckXSspPi8sNihmKXtLIGU9cChKLjE5LGZbMV0pO0ggZT4tMT8iXFxcXCIrKGUrMSkrKDNSKGYuMlMuM2EoZi5QK2ZbMF0uTCkpPyIiOiIoPzopIik6ZlswXX0pO00uMWgoL1xcW1xcXj9dLyw2KGYpe0ggZlswXT09PSJbXSI/IlxcXFxiXFxcXEIiOiJbXFxcXHNcXFxcU10ifSk7TS4xaCgvXlxcKFxcPyhbNUFdKylcXCkvLDYoZil7Si4zZChmWzFdKTtIIiJ9KTtNLjFoKC8oPzpcXHMrfCMuKikrLyw2KGYpe0ggbi4xQS5XKEEsZi4yUy4xYShmLlArZlswXS5MKSk/IiI6Iig/OikifSxNLjFCLDYoKXtIIEouMksoIngiKX0pO00uMWgoL1xcLi8sNigpe0giW1xcXFxzXFxcXFNdIn0sTS4xQiw2KCl7SCBKLjJLKCJzIil9KX0pKCk7MWogMmUhPSIxZCImJigyZS5NPU0pO0sgMXY9NigpezYgcihhLGIpe2EuMWwuMWkoYikhPS0xfHwoYS4xbCs9IiAiK2IpfTYgdChhKXtIIGEuMWkoIjNlIik9PTA/YToiM2UiK2F9NiBCKGEpe0ggZS4xWS4yQVt0KGEpXX02IHAoYSxiLGMpe0koYT09TilIIE47SyBkPWMhPVI/YS4zRzpbYS4yR10saD17IiMiOiIxYyIsIi4iOiIxbCJ9W2IuMW8oMCwxKV18fCIzaCIsZyxpO2c9aCE9IjNoIj9iLjFvKDEpOmIuNXUoKTtJKChhW2hdfHwiIikuMWkoZykhPS0xKUggYTtPKGE9MDtkJiZhPGQuTCYmaT09TjthKyspaT1wKGRbYV0sYixjKTtIIGl9NiBDKGEsYil7SyBjPXt9LGQ7TyhkIDJnIGEpY1tkXT1hW2RdO08oZCAyZyBiKWNbZF09YltkXTtIIGN9NiB3KGEsYixjLGQpezYgaChnKXtnPWd8fDFQLjV5O0koIWcuMUYpe2cuMUY9Zy41MjtnLjNOPTYoKXtKLjV3PTExfX1jLlcoZHx8MVAsZyl9YS4zZz9hLjNnKCI0VSIrYixoKTphLjR5KGIsaCwxMSl9NiBBKGEsYil7SyBjPWUuMVkuMmosZD1OO0koYz09Til7Yz17fTtPKEsgaCAyZyBlLjFVKXtLIGc9ZS4xVVtoXTtkPWcuNHg7SShkIT1OKXtnLjFWPWguNHcoKTtPKGc9MDtnPGQuTDtnKyspY1tkW2ddXT1ofX1lLjFZLjJqPWN9ZD1lLjFVW2NbYV1dO2Q9PU4mJmIhPTExJiYxUC4xWChlLjEzLjF4LjFYKyhlLjEzLjF4LjNFK2EpKTtIIGR9NiB2KGEsYil7TyhLIGM9YS4xZSgiXFxuIiksZD0wO2Q8Yy5MO2QrKyljW2RdPWIoY1tkXSxkKTtIIGMuMUsoIlxcbiIpfTYgdShhLGIpe0koYT09Tnx8YS5MPT0wfHxhPT0iXFxuIilIIGE7YT1hLlEoLzwvZywiJjF5OyIpO2E9YS5RKC8gezIsfS9nLDYoYyl7TyhLIGQ9IiIsaD0wO2g8Yy5MLTE7aCsrKWQrPWUuMTMuMVc7SCBkKyIgIn0pO0koYiE9TilhPXYoYSw2KGMpe0koYy5MPT0wKUgiIjtLIGQ9IiI7Yz1jLlEoL14oJjJzO3wgKSsvLDYoaCl7ZD1oO0giIn0pO0koYy5MPT0wKUggZDtIIGQrXCc8MTcgMWc9IlwnK2IrXCciPlwnK2MrIjwvMTc+In0pO0ggYX02IG4oYSxiKXthLjFlKCJcXG4iKTtPKEsgYz0iIixkPTA7ZDw1MDtkKyspYys9IiAgICAgICAgICAgICAgICAgICAgIjtIIGE9dihhLDYoaCl7SShoLjFpKCJcXHQiKT09LTEpSCBoO08oSyBnPTA7KGc9aC4xaSgiXFx0IikpIT0tMTspaD1oLjFvKDAsZykrYy4xbygwLGItZyViKStoLjFvKGcrMSxoLkwpO0ggaH0pfTYgeChhKXtIIGEuUSgvXlxccyt8XFxzKyQvZywiIil9NiBEKGEsYil7SShhLlA8Yi5QKUgtMTtZIEkoYS5QPmIuUClIIDE7WSBJKGEuTDxiLkwpSC0xO1kgSShhLkw+Yi5MKUggMTtIIDB9NiB5KGEsYil7NiBjKGspe0gga1swXX1PKEsgZD1OLGg9W10sZz1iLjJEP2IuMkQ6YzsoZD1iLjFJLlgoYSkpIT1OOyl7SyBpPWcoZCxiKTtJKDFqIGk9PSIzZiIpaT1bMWYgZS4yTChpLGQuUCxiLjIzKV07aD1oLjFPKGkpfUggaH02IEUoYSl7SyBiPS8oLiopKCgmMUc7fCYxeTspLiopLztIIGEuUShlLjNBLjNNLDYoYyl7SyBkPSIiLGg9TjtJKGg9Yi5YKGMpKXtjPWhbMV07ZD1oWzJdfUhcJzxhIDJoPSJcJytjK1wnIj5cJytjKyI8L2E+IitkfSl9NiB6KCl7TyhLIGE9MUUuMzYoIjFrIiksYj1bXSxjPTA7YzxhLkw7YysrKWFbY10uM3M9PSIyMCImJmIuVShhW2NdKTtIIGJ9NiBmKGEpe2E9YS4xRjtLIGI9cChhLCIuMjAiLFIpO2E9cChhLCIuM08iLFIpO0sgYz0xRS40aSgiM3QiKTtJKCEoIWF8fCFifHxwKGEsIjN0IikpKXtCKGIuMWMpO3IoYiwiMW0iKTtPKEsgZD1hLjNHLGg9W10sZz0wO2c8ZC5MO2crKyloLlUoZFtnXS40enx8ZFtnXS40QSk7aD1oLjFLKCJcXHIiKTtjLjM5KDFFLjREKGgpKTthLjM5KGMpO2MuMkMoKTtjLjRDKCk7dyhjLCI0dSIsNigpe2MuMkcuNEUoYyk7Yi4xbD1iLjFsLlEoIjFtIiwiIil9KX19SSgxaiAzRiE9IjFkIiYmMWogTT09IjFkIilNPTNGKCJNIikuTTtLIGU9ezJ2OnsiMWctMjciOiIiLCIyaS0xcyI6MSwiMnotMXMtMnQiOjExLDFNOk4sMXQ6TiwiNDItNDUiOlIsIjQzLTIyIjo0LDF1OlIsMTY6UiwiM1YtMTciOlIsMmw6MTEsIjQxLTQwIjpSLDJrOjExLCIxei0xayI6MTF9LDEzOnsxVzoiJjJzOyIsMk06Uiw0NjoxMSw0NDoxMSwzNDoiNG4iLDF4OnsyMToiNG8gMW0iLDJQOiI/IiwxWDoiMXZcXG5cXG4iLDNFOiI0clwndCA0dCAxRCBPOiAiLDRnOiI0bSA0QlwndCA1MSBPIDF6LTFrIDRGOiAiLDM3OlwnPCE0VCAxeiA0UyAiLS8vNFYvLzNIIDRXIDEuMCA0Wi8vNFkiICIxWjovLzJ5LjNMLjNLLzRYLzNJLzNILzNJLTRQLjRKIj48MXogNEk9IjFaOi8vMnkuM0wuM0svNEwvNUwiPjwzSj48NE4gMVotNE09IjVHLTVNIiA2Sz0iMk8vMXo7IDZKPTZJLTgiIC8+PDF0PjZMIDF2PC8xdD48LzNKPjwzQiAxTD0iMjUtNk06NlEsNlAsNk8sNk4tNkY7NnktMmY6IzZ4OzJmOiM2dzsyNS0yMjo2djsyTy0zRDozQzsiPjxUIDFMPSIyTy0zRDozQzszdy0zMjoxLjZ6OyI+PFQgMUw9IjI1LTIyOjZBLTZFOyI+MXY8L1Q+PFQgMUw9IjI1LTIyOi42Qzszdy02Qjo2UjsiPjxUPjN2IDMuMC43NiAoNzIgNzMgM3gpPC9UPjxUPjxhIDJoPSIxWjovLzN1LjJ3LzF2IiAxRj0iMzgiIDFMPSIyZjojM3kiPjFaOi8vM3UuMncvMXY8L2E+PC9UPjxUPjcwIDE3IDZVIDcxLjwvVD48VD42VCA2WC0zeCA2WSA2RC48L1Q+PC9UPjxUPjZ0IDYxIDYwIEogMWssIDVaIDxhIDJoPSI2dTovLzJ5LjYyLjJ3LzYzLTY2LzY1PzY0PTVYLTVXJjVQPTVPIiAxTD0iMmY6IzN5Ij41UjwvYT4gNVYgPDJSLz41VSA1VCA1UyE8L1Q+PC9UPjwvM0I+PC8xej5cJ319LDFZOnsyajpOLDJBOnt9fSwxVTp7fSwzQTp7Nm46L1xcL1xcKltcXHNcXFNdKj9cXCpcXC8vMmMsNm06L1xcL1xcLy4qJC8yYyw2bDovIy4qJC8yYyw2azovIihbXlxcXFwiXFxuXXxcXFxcLikqIi9nLDZvOi9cJyhbXlxcXFxcJ1xcbl18XFxcXC4pKlwnL2csNnA6MWYgTShcJyIoW15cXFxcXFxcXCJdfFxcXFxcXFxcLikqIlwnLCIzeiIpLDZzOjFmIE0oIlwnKFteXFxcXFxcXFxcJ118XFxcXFxcXFwuKSpcJyIsIjN6IiksNnE6LygmMXk7fDwpIS0tW1xcc1xcU10qPy0tKCYxRzt8PikvMmMsM006L1xcdys6XFwvXFwvW1xcdy0uXFwvPyUmPTpAO10qL2csNmE6ezE4Oi8oJjF5O3w8KVxcPz0/L2csMWI6L1xcPygmMUc7fD4pL2d9LDY5OnsxODovKCYxeTt8PCklPT8vZywxYjovJSgmMUc7fD4pL2d9LDZkOnsxODovKCYxeTt8PClcXHMqMWsuKj8oJjFHO3w+KS8yVCwxYjovKCYxeTt8PClcXC9cXHMqMWtcXHMqKCYxRzt8PikvMlR9fSwxNjp7MUg6NihhKXs2IGIoaSxrKXtIIGUuMTYuMm8oaSxrLGUuMTMuMXhba10pfU8oSyBjPVwnPFQgMWc9IjE2Ij5cJyxkPWUuMTYuMngsaD1kLjJYLGc9MDtnPGguTDtnKyspYys9KGRbaFtnXV0uMUh8fGIpKGEsaFtnXSk7Yys9IjwvVD4iO0ggY30sMm86NihhLGIsYyl7SFwnPDJXPjxhIDJoPSIjIiAxZz0iNmUgNmhcJytiKyIgIitiK1wnIj5cJytjKyI8L2E+PC8yVz4ifSwyYjo2KGEpe0sgYj1hLjFGLGM9Yi4xbHx8IiI7Yj1CKHAoYiwiLjIwIixSKS4xYyk7SyBkPTYoaCl7SChoPTE1KGgrIjZmKFxcXFx3KykiKS5YKGMpKT9oWzFdOk59KCI2ZyIpO2ImJmQmJmUuMTYuMnhbZF0uMkIoYik7YS4zTigpfSwyeDp7Mlg6WyIyMSIsIjJQIl0sMjE6ezFIOjYoYSl7SShhLlYoIjJsIikhPVIpSCIiO0sgYj1hLlYoIjF0Iik7SCBlLjE2LjJvKGEsIjIxIixiP2I6ZS4xMy4xeC4yMSl9LDJCOjYoYSl7YT0xRS42aih0KGEuMWMpKTthLjFsPWEuMWwuUSgiNDciLCIiKX19LDJQOnsyQjo2KCl7SyBhPSI2OD0wIjthKz0iLCAxOD0iKygzMS4zMC0zMykvMisiLCAzMj0iKygzMS4yWi0yWSkvMisiLCAzMD0zMywgMlo9MlkiO2E9YS5RKC9eLC8sIiIpO2E9MVAuNlooIiIsIjM4IixhKTthLjJDKCk7SyBiPWEuMUU7Yi42VyhlLjEzLjF4LjM3KTtiLjZWKCk7YS4yQygpfX19fSwzNTo2KGEsYil7SyBjO0koYiljPVtiXTtZe2M9MUUuMzYoZS4xMy4zNCk7TyhLIGQ9W10saD0wO2g8Yy5MO2grKylkLlUoY1toXSk7Yz1kfWM9YztkPVtdO0koZS4xMy4yTSljPWMuMU8oeigpKTtJKGMuTD09PTApSCBkO08oaD0wO2g8Yy5MO2grKyl7TyhLIGc9Y1toXSxpPWEsaz1jW2hdLjFsLGo9M1cgMCxsPXt9LG09MWYgTSgiXlxcXFxbKD88MlY+KC4qPykpXFxcXF0kIikscz0xZiBNKCIoPzwyNz5bXFxcXHctXSspXFxcXHMqOlxcXFxzKig/PDFUPltcXFxcdy0lI10rfFxcXFxbLio/XFxcXF18XFwiLio/XFwifFwnLio/XCcpXFxcXHMqOz8iLCJnIik7KGo9cy5YKGspKSE9Tjspe0sgbz1qLjFULlEoL15bXCciXXxbXCciXSQvZywiIik7SShvIT1OJiZtLjFBKG8pKXtvPW0uWChvKTtvPW8uMlYuTD4wP28uMlYuMWUoL1xccyosXFxzKi8pOltdfWxbai4yN109b31nPXsxRjpnLDFuOkMoaSxsKX07Zy4xbi4xRCE9TiYmZC5VKGcpfUggZH0sMU06NihhLGIpe0sgYz1KLjM1KGEsYiksZD1OLGg9ZS4xMztJKGMuTCE9PTApTyhLIGc9MDtnPGMuTDtnKyspe2I9Y1tnXTtLIGk9Yi4xRixrPWIuMW4saj1rLjFELGw7SShqIT1OKXtJKGtbIjF6LTFrIl09PSJSInx8ZS4ydlsiMXotMWsiXT09Uil7ZD0xZiBlLjRsKGopO2o9IjRPIn1ZIEkoZD1BKGopKWQ9MWYgZDtZIDZIO2w9aS4zWDtJKGguMk0pe2w9bDtLIG09eChsKSxzPTExO0kobS4xaSgiPCFbNkdbIik9PTApe209bS40aCg5KTtzPVJ9SyBvPW0uTDtJKG0uMWkoIl1dXFw+Iik9PW8tMyl7bT1tLjRoKDAsby0zKTtzPVJ9bD1zP206bH1JKChpLjF0fHwiIikhPSIiKWsuMXQ9aS4xdDtrLjFEPWo7ZC4yUShrKTtiPWQuMkYobCk7SSgoaS4xY3x8IiIpIT0iIiliLjFjPWkuMWM7aS4yRy43NChiLGkpfX19LDJFOjYoYSl7dygxUCwiNGsiLDYoKXtlLjFNKGEpfSl9fTtlLjJFPWUuMkU7ZS4xTT1lLjFNO2UuMkw9NihhLGIsYyl7Si4xVD1hO0ouUD1iO0ouTD1hLkw7Si4yMz1jO0ouMVY9Tn07ZS4yTC5aLjFxPTYoKXtIIEouMVR9O2UuNGw9NihhKXs2IGIoaixsKXtPKEsgbT0wO208ai5MO20rKylqW21dLlArPWx9SyBjPUEoYSksZCxoPTFmIGUuMVUuNVksZz1KLGk9IjJGIDFIIDJRIi4xZSgiICIpO0koYyE9Til7ZD0xZiBjO08oSyBrPTA7azxpLkw7aysrKSg2KCl7SyBqPWlba107Z1tqXT02KCl7SCBoW2pdLjFwKGgsMTQpfX0pKCk7ZC4yOD09Tj8xUC4xWChlLjEzLjF4LjFYKyhlLjEzLjF4LjRnK2EpKTpoLjJKLlUoezFJOmQuMjguMTcsMkQ6NihqKXtPKEsgbD1qLjE3LG09W10scz1kLjJKLG89ai5QK2ouMTguTCxGPWQuMjgscSxHPTA7RzxzLkw7RysrKXtxPXkobCxzW0ddKTtiKHEsbyk7bT1tLjFPKHEpfUkoRi4xOCE9TiYmai4xOCE9Til7cT15KGouMTgsRi4xOCk7YihxLGouUCk7bT1tLjFPKHEpfUkoRi4xYiE9TiYmai4xYiE9Til7cT15KGouMWIsRi4xYik7YihxLGouUCtqWzBdLjVRKGouMWIpKTttPW0uMU8ocSl9TyhqPTA7ajxtLkw7aisrKW1bal0uMVY9Yy4xVjtIIG19fSl9fTtlLjRqPTYoKXt9O2UuNGouWj17Vjo2KGEsYil7SyBjPUouMW5bYV07Yz1jPT1OP2I6YztLIGQ9eyJSIjpSLCIxMSI6MTF9W2NdO0ggZD09Tj9jOmR9LDNZOjYoYSl7SCAxRS40aShhKX0sNGM6NihhLGIpe0sgYz1bXTtJKGEhPU4pTyhLIGQ9MDtkPGEuTDtkKyspSSgxaiBhW2RdPT0iMm0iKWM9Yy4xTyh5KGIsYVtkXSkpO0ggSi40ZShjLjZiKEQpKX0sNGU6NihhKXtPKEsgYj0wO2I8YS5MO2IrKylJKGFbYl0hPT1OKU8oSyBjPWFbYl0sZD1jLlArYy5MLGg9YisxO2g8YS5MJiZhW2JdIT09TjtoKyspe0sgZz1hW2hdO0koZyE9PU4pSShnLlA+ZCkxTjtZIEkoZy5QPT1jLlAmJmcuTD5jLkwpYVtiXT1OO1kgSShnLlA+PWMuUCYmZy5QPGQpYVtoXT1OfUggYX0sNGQ6NihhKXtLIGI9W10sYz0ydShKLlYoIjJpLTFzIikpO3YoYSw2KGQsaCl7Yi5VKGgrYyl9KTtIIGJ9LDNVOjYoYSl7SyBiPUouVigiMU0iLFtdKTtJKDFqIGIhPSIybSImJmIuVT09TiliPVtiXTthOnthPWEuMXEoKTtLIGM9M1cgMDtPKGM9Yz0xUS42YyhjfHwwLDApO2M8Yi5MO2MrKylJKGJbY109PWEpe2I9YzsxTiBhfWI9LTF9SCBiIT0tMX0sMnI6NihhLGIsYyl7YT1bIjFzIiwiNmkiK2IsIlAiK2EsIjZyIisoYiUyPT0wPzE6MikuMXEoKV07Si4zVShiKSYmYS5VKCI2NyIpO2I9PTAmJmEuVSgiMU4iKTtIXCc8VCAxZz0iXCcrYS4xSygiICIpK1wnIj5cJytjKyI8L1Q+In0sM1E6NihhLGIpe0sgYz0iIixkPWEuMWUoIlxcbiIpLkwsaD0ydShKLlYoIjJpLTFzIikpLGc9Si5WKCIyei0xcy0ydCIpO0koZz09UilnPShoK2QtMSkuMXEoKS5MO1kgSSgzUihnKT09UilnPTA7TyhLIGk9MDtpPGQ7aSsrKXtLIGs9Yj9iW2ldOmgraSxqO0koaz09MClqPWUuMTMuMVc7WXtqPWc7TyhLIGw9ay4xcSgpO2wuTDxqOylsPSIwIitsO2o9bH1hPWo7Yys9Si4ycihpLGssYSl9SCBjfSw0OTo2KGEsYil7YT14KGEpO0sgYz1hLjFlKCJcXG4iKTtKLlYoIjJ6LTFzLTJ0Iik7SyBkPTJ1KEouVigiMmktMXMiKSk7YT0iIjtPKEsgaD1KLlYoIjFEIiksZz0wO2c8Yy5MO2crKyl7SyBpPWNbZ10saz0vXigmMnM7fFxccykrLy5YKGkpLGo9TixsPWI/YltnXTpkK2c7SShrIT1OKXtqPWtbMF0uMXEoKTtpPWkuMW8oai5MKTtqPWouUSgiICIsZS4xMy4xVyl9aT14KGkpO0koaS5MPT0wKWk9ZS4xMy4xVzthKz1KLjJyKGcsbCwoaiE9Tj9cJzwxNyAxZz0iXCcraCtcJyA1TiI+XCcraisiPC8xNz4iOiIiKStpKX1IIGF9LDRmOjYoYSl7SCBhPyI8NGE+IithKyI8LzRhPiI6IiJ9LDRiOjYoYSxiKXs2IGMobCl7SChsPWw/bC4xVnx8ZzpnKT9sKyIgIjoiIn1PKEsgZD0wLGg9IiIsZz1KLlYoIjFEIiwiIiksaT0wO2k8Yi5MO2krKyl7SyBrPWJbaV0sajtJKCEoaz09PU58fGsuTD09PTApKXtqPWMoayk7aCs9dShhLjFvKGQsay5QLWQpLGorIjQ4IikrdShrLjFULGoray4yMyk7ZD1rLlAray5MKyhrLjc1fHwwKX19aCs9dShhLjFvKGQpLGMoKSsiNDgiKTtIIGh9LDFIOjYoYSl7SyBiPSIiLGM9WyIyMCJdLGQ7SShKLlYoIjJrIik9PVIpSi4xbi4xNj1KLjFuLjF1PTExOzFsPSIyMCI7Si5WKCIybCIpPT1SJiZjLlUoIjQ3Iik7SSgoMXU9Si5WKCIxdSIpKT09MTEpYy5VKCI2UyIpO2MuVShKLlYoIjFnLTI3IikpO2MuVShKLlYoIjFEIikpO2E9YS5RKC9eWyBdKltcXG5dK3xbXFxuXSpbIF0qJC9nLCIiKS5RKC9cXHIvZywiICIpO2I9Si5WKCI0My0yMiIpO0koSi5WKCI0Mi00NSIpPT1SKWE9bihhLGIpO1l7TyhLIGg9IiIsZz0wO2c8YjtnKyspaCs9IiAiO2E9YS5RKC9cXHQvZyxoKX1hPWE7YTp7Yj1hPWE7aD0vPDJSXFxzKlxcLz8+fCYxeTsyUlxccypcXC8/JjFHOy8yVDtJKGUuMTMuNDY9PVIpYj1iLlEoaCwiXFxuIik7SShlLjEzLjQ0PT1SKWI9Yi5RKGgsIiIpO2I9Yi4xZSgiXFxuIik7aD0vXlxccyovO2c9NFE7TyhLIGk9MDtpPGIuTCYmZz4wO2krKyl7SyBrPWJbaV07SSh4KGspLkwhPTApe2s9aC5YKGspO0koaz09Til7YT1hOzFOIGF9Zz0xUS40cShrWzBdLkwsZyl9fUkoZz4wKU8oaT0wO2k8Yi5MO2krKyliW2ldPWJbaV0uMW8oZyk7YT1iLjFLKCJcXG4iKX1JKDF1KWQ9Si40ZChhKTtiPUouNGMoSi4ySixhKTtiPUouNGIoYSxiKTtiPUouNDkoYixkKTtJKEouVigiNDEtNDAiKSliPUUoYik7MWogMkghPSIxZCImJjJILjNTJiYySC4zUy4xQygvNXMvKSYmYy5VKCI1dCIpO0ggYj1cJzxUIDFjPSJcJyt0KEouMWMpK1wnIiAxZz0iXCcrYy4xSygiICIpK1wnIj5cJysoSi5WKCIxNiIpP2UuMTYuMUgoSik6IiIpK1wnPDNaIDV6PSIwIiA1SD0iMCIgNUo9IjAiPlwnK0ouNGYoSi5WKCIxdCIpKSsiPDNUPjwzUD4iKygxdT9cJzwyZCAxZz0iMXUiPlwnK0ouM1EoYSkrIjwvMmQ+IjoiIikrXCc8MmQgMWc9IjE3Ij48VCAxZz0iM08iPlwnK2IrIjwvVD48LzJkPjwvM1A+PC8zVD48LzNaPjwvVD4ifSwyRjo2KGEpe0koYT09PU4pYT0iIjtKLjE3PWE7SyBiPUouM1koIlQiKTtiLjNYPUouMUgoYSk7Si5WKCIxNiIpJiZ3KHAoYiwiLjE2IiksIjVjIixlLjE2LjJiKTtKLlYoIjNWLTE3IikmJncocChiLCIuMTciKSwiNTYiLGYpO0ggYn0sMlE6NihhKXtKLjFjPSIiKzFRLjVkKDFRLjVuKCkqNWspLjFxKCk7ZS4xWS4yQVt0KEouMWMpXT1KO0ouMW49QyhlLjJ2LGF8fHt9KTtJKEouVigiMmsiKT09UilKLjFuLjE2PUouMW4uMXU9MTF9LDVqOjYoYSl7YT1hLlEoL15cXHMrfFxccyskL2csIiIpLlEoL1xccysvZywifCIpO0giXFxcXGIoPzoiK2ErIilcXFxcYiJ9LDVmOjYoYSl7Si4yOD17MTg6ezFJOmEuMTgsMjM6IjFrIn0sMWI6ezFJOmEuMWIsMjM6IjFrIn0sMTc6MWYgTSgiKD88MTg+IithLjE4LjFtKyIpKD88MTc+Lio/KSg/PDFiPiIrYS4xYi4xbSsiKSIsIjVvIil9fX07SCBlfSgpOzFqIDJlIT0iMWQiJiYoMmUuMXY9MXYpOycsNjIsNDQxLCd8fHx8fHxmdW5jdGlvbnx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHxyZXR1cm58aWZ8dGhpc3x2YXJ8bGVuZ3RofFhSZWdFeHB8bnVsbHxmb3J8aW5kZXh8cmVwbGFjZXx0cnVlfHxkaXZ8cHVzaHxnZXRQYXJhbXxjYWxsfGV4ZWN8ZWxzZXxwcm90b3R5cGV8fGZhbHNlfGxhc3RJbmRleHxjb25maWd8YXJndW1lbnRzfFJlZ0V4cHx0b29sYmFyfGNvZGV8bGVmdHxjYXB0dXJlTmFtZXN8c2xpY2V8cmlnaHR8aWR8dW5kZWZpbmVkfHNwbGl0fG5ld3xjbGFzc3xhZGRUb2tlbnxpbmRleE9mfHR5cGVvZnxzY3JpcHR8Y2xhc3NOYW1lfHNvdXJjZXxwYXJhbXN8c3Vic3RyfGFwcGx5fHRvU3RyaW5nfFN0cmluZ3xsaW5lfHRpdGxlfGd1dHRlcnxTeW50YXhIaWdobGlnaHRlcnxfeHJlZ2V4cHxzdHJpbmdzfGx0fGh0bWx8dGVzdHxPVVRTSURFX0NMQVNTfG1hdGNofGJydXNofGRvY3VtZW50fHRhcmdldHxndHxnZXRIdG1sfHJlZ2V4fGdsb2JhbHxqb2lufHN0eWxlfGhpZ2hsaWdodHxicmVha3xjb25jYXR8d2luZG93fE1hdGh8aXNSZWdFeHB8dGhyb3d8dmFsdWV8YnJ1c2hlc3xicnVzaE5hbWV8c3BhY2V8YWxlcnR8dmFyc3xodHRwfHN5bnRheGhpZ2hsaWdodGVyfGV4cGFuZFNvdXJjZXxzaXplfGNzc3xjYXNlfGZvbnR8RmF8bmFtZXxodG1sU2NyaXB0fGRBfGNhbnxoYW5kbGVyfGdtfHRkfGV4cG9ydHN8Y29sb3J8aW58aHJlZnxmaXJzdHxkaXNjb3ZlcmVkQnJ1c2hlc3xsaWdodHxjb2xsYXBzZXxvYmplY3R8Y2FjaGV8Z2V0QnV0dG9uSHRtbHx0cmlnZ2VyfHBhdHRlcm58Z2V0TGluZUh0bWx8bmJzcHxudW1iZXJzfHBhcnNlSW50fGRlZmF1bHRzfGNvbXxpdGVtc3x3d3d8cGFkfGhpZ2hsaWdodGVyc3xleGVjdXRlfGZvY3VzfGZ1bmN8YWxsfGdldERpdnxwYXJlbnROb2RlfG5hdmlnYXRvcnxJTlNJREVfQ0xBU1N8cmVnZXhMaXN0fGhhc0ZsYWd8TWF0Y2h8dXNlU2NyaXB0VGFnc3xoYXNOYW1lZENhcHR1cmV8dGV4dHxoZWxwfGluaXR8YnJ8aW5wdXR8Z2l8RXJyb3J8dmFsdWVzfHNwYW58bGlzdHwyNTB8aGVpZ2h0fHdpZHRofHNjcmVlbnx0b3B8NTAwfHRhZ05hbWV8ZmluZEVsZW1lbnRzfGdldEVsZW1lbnRzQnlUYWdOYW1lfGFib3V0RGlhbG9nfF9ibGFua3xhcHBlbmRDaGlsZHxjaGFyQXR8QXJyYXl8Y29weUFzR2xvYmFsfHNldEZsYWd8aGlnaGxpZ2h0ZXJffHN0cmluZ3xhdHRhY2hFdmVudHxub2RlTmFtZXxmbG9vcnxiYWNrcmVmfG91dHB1dHx0aGV8VHlwZUVycm9yfHN0aWNreXxaYXxpdGVyYXRlfGZyZWV6ZVRva2Vuc3xzY29wZXx0eXBlfHRleHRhcmVhfGFsZXhnb3JiYXRjaGV2fHZlcnNpb258bWFyZ2lufDIwMTB8MDA1ODk2fGdzfHJlZ2V4TGlifGJvZHl8Y2VudGVyfGFsaWdufG5vQnJ1c2h8cmVxdWlyZXxjaGlsZE5vZGVzfERURHx4aHRtbDF8aGVhZHxvcmd8dzN8dXJsfHByZXZlbnREZWZhdWx0fGNvbnRhaW5lcnx0cnxnZXRMaW5lTnVtYmVyc0h0bWx8aXNOYU58dXNlckFnZW50fHRib2R5fGlzTGluZUhpZ2hsaWdodGVkfHF1aWNrfHZvaWR8aW5uZXJIVE1MfGNyZWF0ZXx0YWJsZXxsaW5rc3xhdXRvfHNtYXJ0fHRhYnxzdHJpcEJyc3x0YWJzfGJsb2dnZXJNb2RlfGNvbGxhcHNlZHxwbGFpbnxnZXRDb2RlTGluZXNIdG1sfGNhcHRpb258Z2V0TWF0Y2hlc0h0bWx8ZmluZE1hdGNoZXN8ZmlndXJlT3V0TGluZU51bWJlcnN8cmVtb3ZlTmVzdGVkTWF0Y2hlc3xnZXRUaXRsZUh0bWx8YnJ1c2hOb3RIdG1sU2NyaXB0fHN1YnN0cmluZ3xjcmVhdGVFbGVtZW50fEhpZ2hsaWdodGVyfGxvYWR8SHRtbFNjcmlwdHxCcnVzaHxwcmV8ZXhwYW5kfG11bHRpbGluZXxtaW58Q2FufGlnbm9yZUNhc2V8ZmluZHxibHVyfGV4dGVuZGVkfHRvTG93ZXJDYXNlfGFsaWFzZXN8YWRkRXZlbnRMaXN0ZW5lcnxpbm5lclRleHR8dGV4dENvbnRlbnR8d2FzbnxzZWxlY3R8Y3JlYXRlVGV4dE5vZGV8cmVtb3ZlQ2hpbGR8b3B0aW9ufHNhbWV8ZnJhbWV8eG1sbnN8ZHRkfHR3aWNlfDE5OTl8ZXF1aXZ8bWV0YXxodG1sc2NyaXB0fHRyYW5zaXRpb25hbHwxRTN8ZXhwZWN0ZWR8UFVCTElDfERPQ1RZUEV8b258VzNDfFhIVE1MfFRSfEVOfFRyYW5zaXRpb25hbHx8Y29uZmlndXJlZHxzcmNFbGVtZW50fE9iamVjdHxhZnRlcnxydW58ZGJsY2xpY2t8bWF0Y2hDaGFpbnx2YWx1ZU9mfGNvbnN0cnVjdG9yfGRlZmF1bHR8c3dpdGNofGNsaWNrfHJvdW5kfGV4ZWNBdHxmb3JIdG1sU2NyaXB0fHRva2VufGdpbXl8ZnVuY3Rpb25zfGdldEtleXdvcmRzfDFFNnxlc2NhcGV8d2l0aGlufHJhbmRvbXxzZ2l8YW5vdGhlcnxmaW5hbGx5fHN1cHBseXxNU0lFfGllfHRvVXBwZXJDYXNlfGNhdGNofHJldHVyblZhbHVlfGRlZmluaXRpb258ZXZlbnR8Ym9yZGVyfGltc3h8Y29uc3RydWN0aW5nfG9uZXxJbmZpbml0eXxmcm9tfHdoZW58Q29udGVudHxjZWxscGFkZGluZ3xmbGFnc3xjZWxsc3BhY2luZ3x0cnl8eGh0bWx8VHlwZXxzcGFjZXN8MjkzMDQwMnxob3N0ZWRfYnV0dG9uX2lkfGxhc3RJbmRleE9mfGRvbmF0ZXxhY3RpdmV8ZGV2ZWxvcG1lbnR8a2VlcHx0b3x4Y2xpY2t8X3N8WG1sfHBsZWFzZXxsaWtlfHlvdXxwYXlwYWx8Y2dpfGNtZHx3ZWJzY3J8YmlufGhpZ2hsaWdodGVkfHNjcm9sbGJhcnN8YXNwU2NyaXB0VGFnc3xwaHBTY3JpcHRUYWdzfHNvcnR8bWF4fHNjcmlwdFNjcmlwdFRhZ3N8dG9vbGJhcl9pdGVtfF98Y29tbWFuZHxjb21tYW5kX3xudW1iZXJ8Z2V0RWxlbWVudEJ5SWR8ZG91YmxlUXVvdGVkU3RyaW5nfHNpbmdsZUxpbmVQZXJsQ29tbWVudHN8c2luZ2xlTGluZUNDb21tZW50c3xtdWx0aUxpbmVDQ29tbWVudHN8c2luZ2xlUXVvdGVkU3RyaW5nfG11bHRpTGluZURvdWJsZVF1b3RlZFN0cmluZ3x4bWxDb21tZW50c3xhbHR8bXVsdGlMaW5lU2luZ2xlUXVvdGVkU3RyaW5nfElmfGh0dHBzfDFlbXwwMDB8ZmZmfGJhY2tncm91bmR8NWVtfHh4fGJvdHRvbXw3NWVtfEdvcmJhdGNoZXZ8bGFyZ2V8c2VyaWZ8Q0RBVEF8Y29udGludWV8dXRmfGNoYXJzZXR8Y29udGVudHxBYm91dHxmYW1pbHl8c2Fuc3xIZWx2ZXRpY2F8QXJpYWx8R2VuZXZhfDNlbXxub2d1dHRlcnxDb3B5cmlnaHR8c3ludGF4fGNsb3NlfHdyaXRlfDIwMDR8QWxleHxvcGVufEphdmFTY3JpcHR8aGlnaGxpZ2h0ZXJ8SnVseXwwMnxyZXBsYWNlQ2hpbGR8b2Zmc2V0fDgzJy5zcGxpdCgnfCcpLDAse30pKQo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/media/docs/media/license/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/media/docs/media/license/Syntax Highlighter</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Q29weXJpZ2h0IChjKSAyMDAzLCAyMDA0IEppbSBXZWlyaWNoCgpQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcKYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCiJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLApkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8KcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCnRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKClRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlCmluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgoKVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCkVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgpNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORApOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFCkxJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04KT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OCldJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/media/docs/Scroller.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTx0aXRsZT5DbGFzczogU2Nyb2xsZXIgLSBkb2N1bWVudGF0aW9uPC90aXRsZT4KICAKCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgoJCQlAaW1wb3J0ICJtZWRpYS9jc3MvZG9jLmNzcyI7CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9zaENvcmUuY3NzIjsKCQkJQGltcG9ydCAibWVkaWEvY3NzL3NoVGhlbWVEYXRhVGFibGVzLmNzcyI7CgkJPC9zdHlsZT4KCQoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL3NoQ29yZS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvc2hCcnVzaEpTY3JpcHQuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvZG9jLmpzIj48L3NjcmlwdD4KCTwvaGVhZD4KCTxib2R5PgoJCTxkaXYgY2xhc3M9ImZ3X2NvbnRhaW5lciI+CgkJCQoJCQkJPGEgbmFtZT0idG9wIj48L2E+CgkJCQk8ZGl2IGNsYXNzPSJmd19oZWFkZXIiPgoJCQkJCTxoMSBjbGFzcz0icGFnZS10aXRsZSI+Q2xhc3M6IFNjcm9sbGVyPC9oMT4KCQkJCQkKCQkJCQk8ZGl2IGNsYXNzPSJwYWdlLWluZm8iPgoJCQkJCQlTY3JvbGxlciB2MS4xLjAgZG9jdW1lbnRhdGlvbgoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgoJCQkJCgoJCQkJPGRpdiBjbGFzcz0iZndfbmF2Ij4KCQkJCQk8aDI+TmF2aWdhdGlvbjwvaDI+CgkJCQkJPHVsPgoJCQkJCTxsaT48YSBocmVmPSIjdG9wIj5PdmVydmlldzwvYT48L2xpPgoJCQkJCTxsaT48YSBocmVmPSIjc3VtbWFyeSI+U3VtbWFyeTwvYT48ZGl2PjxhIGhyZWY9IiNzdW1tYXJ5X25hbWVzcGFjZXMiPk5hbWVzcGFjZXM8L2E+IHwgPGEgaHJlZj0iI3N1bW1hcnlfcHJvcGVydGllcyI+UHJvcGVydGllczwvYT4gfCA8YSBocmVmPSIjc3VtbWFyeV9tZXRob2RzIj5NZXRob2RzPC9hPjwvZGl2PjwvbGk+PGxpPjxhIGhyZWY9IiNkZXRhaWxzIj5EZXRhaWxzPC9hPjxkaXY+PGEgaHJlZj0iI2RldGFpbHNfcHJvcGVydGllcyI+UHJvcGVydGllczwvYT4gfCA8YSBocmVmPSIjZGV0YWlsc19tZXRob2RzIj5NZXRob2RzPC9hPjwvZGl2PjwvbGk+PC91bD4KCQkJCQk8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAxMHB4OyI+CgkJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNob3dfcHJpdmF0ZSIgdmFsdWU9IjAiPgoJCQkJCQk8c3BhbiBpZD0icHJpdmF0ZV9sYWJlbCI+SGlkaW5nPC9zcGFuPiBwcml2YXRlIGVsZW1lbnRzIAoJCQkJCQkJKDxhIGlkPSJwcml2YXRlX3RvZ2dsZSIgaHJlZj0iIj50b2dnbGU8L2E+KQoJCQkJCQk8L3NwYW4+CgkJCQkJPC9kaXY+CgkJCQkJPGRpdj4KCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2hvd19leHRlbmRlZCIgdmFsdWU9IjEiPgoJCQkJCQk8c3BhbiBpZD0iZXh0ZW5kZWRfbGFiZWwiPlNob3dpbmc8L3NwYW4+IGV4dGVuZGVkIGVsZW1lbnRzIAoJCQkJCQkJKDxhIGlkPSJleHRlbmRlZF90b2dnbGUiIGhyZWY9IiI+dG9nZ2xlPC9hPikKCQkJCQkJPC9zcGFuPgoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgoJCQkJPGRpdiBjbGFzcz0iZndfY29udGVudCI+CgkJCQkJPGEgbmFtZT0ib3ZlcnZpZXciPjwvYT4KCQkJCQk8ZGl2IGNsYXNzPSJkb2Nfb3ZlcnZpZXciPgoJCQkJCQk8ZGl2IGNsYXNzPSJuYXZfYmxvY2tlciI+PC9kaXY+CgkJCQkJCTxkbD48ZHQgaWQ9IlNjcm9sbGVyIiBjbGFzcz0iIGV2ZW4iPjxhIG5hbWU9IlNjcm9sbGVyIj48L2E+PGEgbmFtZT0iU2Nyb2xsZXJfZGV0YWlscyI+PC9hPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YT5uZXcgU2Nyb2xsZXI8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InNpZ25hdHVyZSI+KG9EVCwgPHNwYW4gY2xhc3M9Im9wdGlvbmFsIj5vT3B0czwvc3Bhbj4pPC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+PC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiBldmVuIj48cCBjbGFzcz0iZGVzY3JpcHRpb24iPlNjcm9sbGVyIGlzIGEgdmlydHVhbCByZW5kZXJpbmcgcGx1Zy1pbiBmb3IgRGF0YVRhYmxlcyB3aGljaCBhbGxvd3MgbGFyZ2UKZGF0YXNldHMgdG8gYmUgZHJhd24gb24gc2NyZWVuIGV2ZXJ5IHF1aWNrbHkuIFdoYXQgdGhlIHZpcnR1YWwgcmVuZGVyaW5nIG1lYW5zCmlzIHRoYXQgb25seSB0aGUgdmlzaWJsZSBwb3J0aW9uIG9mIHRoZSB0YWJsZSAoYW5kIGEgYml0IHRvIGVpdGhlciBzaWRlIHRvIG1ha2UKdGhlIHNjcm9sbGluZyBzbW9vdGgpIGlzIGRyYXduLCB3aGlsZSB0aGUgc2Nyb2xsaW5nIGNvbnRhaW5lciBnaXZlcyB0aGUgCnZpc3VhbCBpbXByZXNzaW9uIHRoYXQgdGhlIHdob2xlIHRhYmxlIGlzIHZpc2libGUuIFRoaXMgaXMgZG9uZSBieSBtYWtpbmcgdXNlCm9mIHRoZSBwYWdpbmF0aW9uIGFiaWxpdGllcyBvZiBEYXRhVGFibGVzIGFuZCBtb3ZpbmcgdGhlIHRhYmxlIGFyb3VuZCBpbiB0aGUKc2Nyb2xsaW5nIGNvbnRhaW5lciBEYXRhVGFibGVzIGFkZHMgdG8gdGhlIHBhZ2UuIFRoZSBzY3JvbGxpbmcgY29udGFpbmVyIGlzCmZvcmNlZCB0byB0aGUgaGVpZ2h0IGl0IHdvdWxkIGJlIGZvciB0aGUgZnVsbCB0YWJsZSBkaXNwbGF5IHVzaW5nIGFuIGV4dHJhIAplbGVtZW50LiA8YnI+PGJyPk5vdGUgdGhhdCByb3dzIGluIHRoZSB0YWJsZSBNVVNUIGFsbCBiZSB0aGUgc2FtZSBoZWlnaHQuIEluZm9ybWF0aW9uIGluIGEgY2VsbAp3aGljaCBleHBhbmRzIG9uIHRvIG11bHRpcGxlIGxpbmVzIHdpbGwgY2F1c2Ugc29tZSBvZGQgYmVoYXZpb3VyIGluIHRoZSBzY3JvbGxpbmcuPGJyPjxicj5TY3JvbGxlciBpcyBpbml0aWFsaXNlZCBieSBzaW1wbHkgaW5jbHVkaW5nIHRoZSBsZXR0ZXIgJ1MnIGluIHRoZSBzRG9tIGZvciB0aGUKdGFibGUgeW91IHdhbnQgdG8gaGF2ZSB0aGlzIGZlYXR1cmUgZW5hYmxlZCBvbi4gTm90ZSB0aGF0IHRoZSAnUycgbXVzdCBjb21lCkFGVEVSIHRoZSAndCcgcGFyYW1ldGVyIGluIHNEb20uPGJyPjxicj5LZXkgZmVhdHVyZXMgaW5jbHVkZToKICA8dWwgY2xhc3M9ImxpbWl0X2xlbmd0aCI+CiAgICA8bGk+U3BlZWQhIFRoZSBhaW0gb2YgU2Nyb2xsZXIgZm9yIERhdGFUYWJsZXMgaXMgdG8gbWFrZSByZW5kZXJpbmcgbGFyZ2UgZGF0YSBzZXRzIGZhc3Q8L2xpPgogICAgPGxpPkZ1bGwgY29tcGF0aWJpbGl0eSB3aXRoIGRlZmVycmVkIHJlbmRlcmluZyBpbiBEYXRhVGFibGVzIDEuOSBmb3IgbWF4aW11bSBzcGVlZDwvbGk+CiAgICA8bGk+Q29ycmVjdCB2aXN1YWwgc2Nyb2xsaW5nIGltcGxlbWVudGF0aW9uLCBzaW1pbGFyIHRvICJpbmZpbml0ZSBzY3JvbGxpbmciIGluIERhdGFUYWJsZSBjb3JlPC9saT4KICAgIDxsaT5JbnRlZ3JhdGlvbiB3aXRoIHN0YXRlIHNhdmluZyBpbiBEYXRhVGFibGVzIChzY3JvbGxpbmcgcG9zaXRpb24gaXMgc2F2ZWQpPC9saT4KICAgIDxsaT5FYXN5IHRvIHVzZTwvbGk+CiAgPC91bD48L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGgzPkNvbnN0cnVjdG9yPC9oMz48ZGwgY2xhc3M9ImRldGFpbHMiPgoJCjwvZGw+CjxoNT5QYXJhbWV0ZXJzOjwvaDU+Cgo8dGFibGUgY2xhc3M9InBhcmFtcyI+CiAgICA8dGhlYWQ+Cgk8dHI+CiAgICAgICAgPHRoIHdpZHRoPSIyMCI+PC90aD4KICAgICAgICA8dGggd2lkdGg9IjEyJSIgY2xhc3M9ImJvdHRvbV9ib3JkZXIgbmFtZSI+TmFtZTwvdGg+CgkJPHRoIHdpZHRoPSIxMCUiIGNsYXNzPSJib3R0b21fYm9yZGVyIj5UeXBlPC90aD4KCQk8dGggd2lkdGg9IjEwJSIgY2xhc3M9ImJvdHRvbV9ib3JkZXIiPkF0dHJpYnV0ZXM8L3RoPgoJCTx0aCB3aWR0aD0iMTAlIiBjbGFzcz0iYm90dG9tX2JvcmRlciI+RGVmYXVsdDwvdGg+CgkJPHRoIGNsYXNzPSJsYXN0IGJvdHRvbV9ib3JkZXIiPkRlc2NyaXB0aW9uPC90aD4KCTwvdHI+Cgk8L3RoZWFkPgoJCgk8dGJvZHk+Cgk8dHIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0ibnVtYmVyIHJpZ2h0X2JvcmRlciI+PGRpdj4xPC9kaXY+PC90ZD48dGQgY2xhc3M9Im5hbWUiPm9EVDwvdGQ+PHRkIGNsYXNzPSJ0eXBlIHR5cGUtcGFyYW0iPm9iamVjdDwvdGQ+PHRkIGNsYXNzPSJhdHRyaWJ1dGVzIj48L3RkPjx0ZCBjbGFzcz0iZGVmYXVsdCI+PC90ZD48dGQgY2xhc3M9ImRlc2NyaXB0aW9uIGxhc3QiPkRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0PC90ZD48L3RyPjx0ciBjbGFzcz0ib2RkIj48dGQgY2xhc3M9Im51bWJlciByaWdodF9ib3JkZXIiPjxkaXY+MjwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJuYW1lIj5vT3B0czwvdGQ+PHRkIGNsYXNzPSJ0eXBlIHR5cGUtcGFyYW0iPm9iamVjdDwvdGQ+PHRkIGNsYXNzPSJhdHRyaWJ1dGVzIj5PcHRpb25hbDwvdGQ+PHRkIGNsYXNzPSJkZWZhdWx0Ij57fTwvdGQ+PHRkIGNsYXNzPSJkZXNjcmlwdGlvbiBsYXN0Ij5Db25maWd1cmF0aW9uIG9iamVjdCBmb3IgRml4ZWRDb2x1bW5zLiBPcHRpb25zIGFyZSBkZWZpbmVkIGJ5IDxhIGhyZWY9IlNjcm9sbGVyLm9EZWZhdWx0cy5odG1sIj5TY3JvbGxlci5vRGVmYXVsdHM8L2E+PC90ZD48L3RyPgoJPC90Ym9keT4KPC90YWJsZT48aDU+RXhhbXBsZTo8L2g1PgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZS1jb2RlIj4KICAgIAk8cHJlIGNsYXNzPSJicnVzaDoganMiPgkJJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic1Njcm9sbFkiOiAiMjAwcHgiLAoJCQkJInNBamF4U291cmNlIjogIm1lZGlhL2RhdGFzZXQvbGFyZ2UudHh0IiwKCQkJCSJzRG9tIjogImZydGlTIiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlCgkJCX0gKTsKCQl9ICk7PC9wcmU+CiAgICA8L2Rpdj4KPC9kaXY+CjwvZGw+PGgzIGNsYXNzPSJzdWJzZWN0aW9uLXRpdGxlIj5SZXF1aXJlczwvaDM+Cjx1bD4KCTxsaT5qUXVlcnkgMS40KzwvbGk+PGxpPkRhdGFUYWJsZXMgMS45LjArPC9saT4KPC91bD4KCgkJCQkJPC9kaXY+CgoJCQkJCQoJCQkJCTxkaXYgY2xhc3M9ImRvY19zdW1tYXJ5Ij4KCQkJCQkJPGEgbmFtZT0ic3VtbWFyeSI+PC9hPgoJCQkJCQk8aDI+U3VtbWFyeTwvaDI+CgoJCQkJCQk8ZGl2IGNsYXNzPSJkb2NfZ3JvdXAiPjxhIG5hbWU9InN1bW1hcnlfbmFtZXNwYWNlcyI+PC9hPjxoMyBjbGFzcz0ic3Vic2VjdGlvbi10aXRsZSI+TmFtZXNwYWNlczwvaDM+CjxkbD4KCTxkdCBjbGFzcz0iZXZlbiI+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iYzYwNTNmYWM2Yi5odG1sIj5kb208L2E+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSJldmVuIj5ET00gZWxlbWVudHMgdXNlZCBieSB0aGUgY2xhc3MgaW5zdGFuY2U8L2RkPjxkdCBjbGFzcz0ib2RkIj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSJTY3JvbGxlci5vRGVmYXVsdHMuaHRtbCI+b0RlZmF1bHRzPC9hPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0ib2RkIj5TY3JvbGxlciBkZWZhdWx0IHNldHRpbmdzIGZvciBpbml0aWFsaXNhdGlvbjwvZGQ+PGR0IGNsYXNzPSJldmVuIj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSJiYWVkMTg5ZDRhLmh0bWwiPnM8L2E+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSJldmVuIj5TZXR0aW5ncyBvYmplY3Qgd2hpY2ggY29udGFpbnMgY3VzdG9taXNhYmxlIGluZm9ybWF0aW9uIGZvciB0aGUgU2Nyb2xsZXIgaW5zdGFuY2U8L2RkPgo8L2RsPjwvZGl2PjxkaXYgY2xhc3M9ImRvY19ncm91cCI+PGEgbmFtZT0ic3VtbWFyeV9wcm9wZXJ0aWVzIj48L2E+PGgzIGNsYXNzPSJzdWJzZWN0aW9uLXRpdGxlIj5Qcm9wZXJ0aWVzPC9oMz4KCjxkbD4KICAgIDxkdCBjbGFzcz0iICBldmVuIj48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPjwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI0NMQVNTIj5DTEFTUzwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6U3RyaW5nPC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iICBldmVuIj5OYW1lIG9mIHRoaXMgY2xhc3M8L2RkPjxkdCBjbGFzcz0iICBvZGQiPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+Jmx0O3N0YXRpYz4gPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjVkVSU0lPTiI+VkVSU0lPTjwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6U3RyaW5nPC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iICBvZGQiPlNjcm9sbGVyIHZlcnNpb248L2RkPgo8L2RsPjwvZGl2PjxkaXYgY2xhc3M9ImRvY19ncm91cCI+PGEgbmFtZT0ic3VtbWFyeV9tZXRob2RzIj48L2E+PGgzIGNsYXNzPSJzdWJzZWN0aW9uLXRpdGxlIj5NZXRob2RzPC9oMz4KCjxkbD4KICAgIDxkdCBjbGFzcz0iIGV2ZW4iPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjZm5NZWFzdXJlIj5mbk1lYXN1cmU8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InNpZ25hdHVyZSI+KDxzcGFuIGNsYXNzPSJvcHRpb25hbCI+YlJlZHJhdzwvc3Bhbj4pPC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+ICZyYXJyOyB7dm9pZH08L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgZXZlbiI+Q2FsY3VsYXRlIGFuZCBzdG9yZSBpbmZvcm1hdGlvbiBhYm91dCBob3cgbWFueSByb3dzIGFyZSB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHNjcm9sbGluZwp2aWV3cG9ydCwgYmFzZWQgb24gY3VycmVudCBkaW1lbnNpb25zIGluIHRoZSBicm93c2VyJ3MgcmVuZGVyaW5nLiBUaGlzIGNhbiBiZSBwYXJ0aWN1bGFybHkKdXNlZnVsIGlmIHRoZSB0YWJsZSBpcyBpbml0aWFsbHkgZHJhd24gaW4gYSBoaWRkZW4gZWxlbWVudCAtIGZvciBleGFtcGxlIGluIGEgdGFiLjwvZGQ+PGR0IGNsYXNzPSIgb2RkIj48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPjwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI2ZuUGl4ZWxzVG9Sb3ciPmZuUGl4ZWxzVG9Sb3c8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InNpZ25hdHVyZSI+KGlQaXhlbHMpPC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+ICZyYXJyOyB7aW50fTwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiBvZGQiPkNhbGN1bGF0ZSB0aGUgcm93IG51bWJlciB0aGF0IHdpbGwgYmUgZm91bmQgYXQgdGhlIGdpdmVuIHBpeGVsIHBvc2l0aW9uICh5LXNjcm9sbCk8L2RkPjxkdCBjbGFzcz0iIGV2ZW4iPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjZm5Sb3dUb1BpeGVscyI+Zm5Sb3dUb1BpeGVsczwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0ic2lnbmF0dXJlIj4oaVJvdyk8L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gJnJhcnI7IHtpbnR9PC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iIGV2ZW4iPkNhbGN1bGF0ZSB0aGUgcGl4ZWwgcG9zaXRpb24gZnJvbSB0aGUgdG9wIG9mIHRoZSBzY3JvbGxpbmcgY29udGFpbmVyIGZvciBhIGdpdmVuIHJvdzwvZGQ+PGR0IGNsYXNzPSIgb2RkIj48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPjwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI2ZuU2Nyb2xsVG9Sb3ciPmZuU2Nyb2xsVG9Sb3c8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InNpZ25hdHVyZSI+KGlSb3csIDxzcGFuIGNsYXNzPSJvcHRpb25hbCI+YkFuaW1hdGU8L3NwYW4+KTwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiAmcmFycjsge3ZvaWR9PC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iIG9kZCI+Q2FsY3VsYXRlIHRoZSByb3cgbnVtYmVyIHRoYXQgd2lsbCBiZSBmb3VuZCBhdCB0aGUgZ2l2ZW4gcGl4ZWwgcG9zaXRpb24gKHktc2Nyb2xsKTwvZGQ+CjwvZGw+CjwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJCQoKCgkJCQkJCgkJCQkJPGRpdiBjbGFzcz0iZG9jX2RldGFpbHMiPgoJCQkJCQk8YSBuYW1lPSJkZXRhaWxzIj48L2E+CgkJCQkJCTxoMj5EZXRhaWxzPC9oMj4KCQkJCQkJPGRpdiBjbGFzcz0iZG9jX2dyb3VwIj48YSBuYW1lPSJkZXRhaWxzX3Byb3BlcnRpZXMiPjwvYT48aDMgY2xhc3M9InN1YnNlY3Rpb24tdGl0bGUiPlByb3BlcnRpZXM8L2gzPgo8ZGw+CiAgICA8ZHQgY2xhc3M9IiAgZXZlbiI+PGEgbmFtZT0iQ0xBU1MiPjwvYT48YSBuYW1lPSJDTEFTU19kZXRhaWxzIj48L2E+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj48L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNDTEFTUyI+Q0xBU1M8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gOlN0cmluZzwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiAgZXZlbiI+PHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5OYW1lIG9mIHRoaXMgY2xhc3M8L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8L2Rpdj48L2RkPjxkdCBjbGFzcz0iICBvZGQiPjxhIG5hbWU9IlZFUlNJT04iPjwvYT48YSBuYW1lPSJWRVJTSU9OX2RldGFpbHMiPjwvYT48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI1ZFUlNJT04iPlZFUlNJT048L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gOlN0cmluZzwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiAgb2RkIj48cCBjbGFzcz0iZGVzY3JpcHRpb24iPlNjcm9sbGVyIHZlcnNpb248L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8L2Rpdj48L2RkPgo8L2RsPjwvZGl2PjxkaXYgY2xhc3M9ImRvY19ncm91cCI+PGEgbmFtZT0iZGV0YWlsc19tZXRob2RzIj48L2E+PGgzIGNsYXNzPSJzdWJzZWN0aW9uLXRpdGxlIj5NZXRob2RzPC9oMz4KPGRsPgogICAgPGR0IGlkPSJTY3JvbGxlciNmbk1lYXN1cmUiIGNsYXNzPSIgZXZlbiI+PGEgbmFtZT0iZm5NZWFzdXJlIj48L2E+PGEgbmFtZT0iZm5NZWFzdXJlX2RldGFpbHMiPjwvYT48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPjwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGE+Zm5NZWFzdXJlPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJzaWduYXR1cmUiPig8c3BhbiBjbGFzcz0ib3B0aW9uYWwiPmJSZWRyYXc8L3NwYW4+KTwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiAmcmFycjsge3ZvaWR9PC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiBldmVuIj48cCBjbGFzcz0iZGVzY3JpcHRpb24iPkNhbGN1bGF0ZSBhbmQgc3RvcmUgaW5mb3JtYXRpb24gYWJvdXQgaG93IG1hbnkgcm93cyBhcmUgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBzY3JvbGxpbmcKdmlld3BvcnQsIGJhc2VkIG9uIGN1cnJlbnQgZGltZW5zaW9ucyBpbiB0aGUgYnJvd3NlcidzIHJlbmRlcmluZy4gVGhpcyBjYW4gYmUgcGFydGljdWxhcmx5CnVzZWZ1bCBpZiB0aGUgdGFibGUgaXMgaW5pdGlhbGx5IGRyYXduIGluIGEgaGlkZGVuIGVsZW1lbnQgLSBmb3IgZXhhbXBsZSBpbiBhIHRhYi48L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8aDU+UGFyYW1ldGVyczo8L2g1PgoKPHRhYmxlIGNsYXNzPSJwYXJhbXMiPgogICAgPHRoZWFkPgoJPHRyPgogICAgICAgIDx0aCB3aWR0aD0iMjAiPjwvdGg+CiAgICAgICAgPHRoIHdpZHRoPSIxMiUiIGNsYXNzPSJib3R0b21fYm9yZGVyIG5hbWUiPk5hbWU8L3RoPgoJCTx0aCB3aWR0aD0iMTAlIiBjbGFzcz0iYm90dG9tX2JvcmRlciI+VHlwZTwvdGg+CgkJPHRoIHdpZHRoPSIxMCUiIGNsYXNzPSJib3R0b21fYm9yZGVyIj5BdHRyaWJ1dGVzPC90aD4KCQk8dGggd2lkdGg9IjEwJSIgY2xhc3M9ImJvdHRvbV9ib3JkZXIiPkRlZmF1bHQ8L3RoPgoJCTx0aCBjbGFzcz0ibGFzdCBib3R0b21fYm9yZGVyIj5EZXNjcmlwdGlvbjwvdGg+Cgk8L3RyPgoJPC90aGVhZD4KCQoJPHRib2R5PgoJPHRyIGNsYXNzPSJldmVuIj48dGQgY2xhc3M9Im51bWJlciByaWdodF9ib3JkZXIiPjxkaXY+MTwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJuYW1lIj5iUmVkcmF3PC90ZD48dGQgY2xhc3M9InR5cGUgdHlwZS1wYXJhbSI+Ym9vbDwvdGQ+PHRkIGNsYXNzPSJhdHRyaWJ1dGVzIj5PcHRpb25hbDwvdGQ+PHRkIGNsYXNzPSJkZWZhdWx0Ij50cnVlPC90ZD48dGQgY2xhc3M9ImRlc2NyaXB0aW9uIGxhc3QiPlJlZHJhdyB0aGUgdGFibGUgYXV0b21hdGljYWxseSBhZnRlciB0aGUgcmVjYWxjdWxhdGlvbiwgd2l0aAogICB0aGUgbmV3IGRpbWVudGlvbnMgZm9ybWluZyB0aGUgYmFzaXMgZm9yIHRoZSBkcmF3LjwvdGQ+PC90cj4KCTwvdGJvZHk+CjwvdGFibGU+PGg1PkV4YW1wbGU6PC9oNT4KICAgIDxkaXYgY2xhc3M9ImV4YW1wbGUtY29kZSI+CiAgICAJPHByZSBjbGFzcz0iYnJ1c2g6IGpzIj4gICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKICAgICAvLyBNYWtlIHRoZSBleGFtcGxlIGNvbnRhaW5lciBoaWRkZW4gdG8gdGhyb3cgb2ZmIHRoZSBicm93c2VyJ3Mgc2l6aW5nCiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CiAgICAgdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CiAgICAgICAic1Njcm9sbFkiOiAiMjAwcHgiLAogICAgICAgInNBamF4U291cmNlIjogIm1lZGlhL2RhdGFzZXQvbGFyZ2UudHh0IiwKICAgICAgICJzRG9tIjogImZydGlTIiwKICAgICAgICJiRGVmZXJSZW5kZXIiOiB0cnVlLAogICAgICAgImZuSW5pdENvbXBsZXRlIjogZnVuY3Rpb24gKG8pIHsKICAgICAgICAgLy8gSW1tZWRpYXRlbHkgc2Nyb2xsIHRvIHJvdyAxMDAwCiAgICAgICAgIG8ub1Njcm9sbGVyLmZuU2Nyb2xsVG9Sb3coIDEwMDAgKTsKICAgICAgIH0KICAgICB9ICk7CiAgICAgCiAgICAgc2V0VGltZW91dCggZnVuY3Rpb24gKCkgewogICAgICAgLy8gTWFrZSB0aGUgZXhhbXBsZSBjb250YWluZXIgdmlzaWJsZSBhbmQgcmVjYWxjdWxhdGUgdGhlIHNjcm9sbGVyIHNpemVzCiAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJykuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CiAgICAgICBvVGFibGUuZm5TZXR0aW5ncygpLm9TY3JvbGxlci5mbk1lYXN1cmUoKTsKICAgICB9LCAzMDAwICk7PC9wcmU+CiAgICA8L2Rpdj4KPC9kaXY+CjxkdCBpZD0iU2Nyb2xsZXIjZm5QaXhlbHNUb1JvdyIgY2xhc3M9IiBvZGQiPjxhIG5hbWU9ImZuUGl4ZWxzVG9Sb3ciPjwvYT48YSBuYW1lPSJmblBpeGVsc1RvUm93X2RldGFpbHMiPjwvYT48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPjwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGE+Zm5QaXhlbHNUb1JvdzwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0ic2lnbmF0dXJlIj4oaVBpeGVscyk8L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gJnJhcnI7IHtpbnR9PC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiBvZGQiPjxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+Q2FsY3VsYXRlIHRoZSByb3cgbnVtYmVyIHRoYXQgd2lsbCBiZSBmb3VuZCBhdCB0aGUgZ2l2ZW4gcGl4ZWwgcG9zaXRpb24gKHktc2Nyb2xsKTwvcD48ZGl2IGNsYXNzPSJjb2xsYXBzZV9kZXRhaWxzIj48ZGwgY2xhc3M9ImRldGFpbHMiPgoJCjwvZGw+CjxoNT5QYXJhbWV0ZXJzOjwvaDU+Cgo8dGFibGUgY2xhc3M9InBhcmFtcyI+CiAgICA8dGhlYWQ+Cgk8dHI+CiAgICAgICAgPHRoIHdpZHRoPSIyMCI+PC90aD4KICAgICAgICA8dGggd2lkdGg9IjEyJSIgY2xhc3M9ImJvdHRvbV9ib3JkZXIgbmFtZSI+TmFtZTwvdGg+CgkJPHRoIHdpZHRoPSIxMCUiIGNsYXNzPSJib3R0b21fYm9yZGVyIj5UeXBlPC90aD4KCQk8dGggd2lkdGg9IjEwJSIgY2xhc3M9ImJvdHRvbV9ib3JkZXIiPkF0dHJpYnV0ZXM8L3RoPgoJCTx0aCB3aWR0aD0iMTAlIiBjbGFzcz0iYm90dG9tX2JvcmRlciI+RGVmYXVsdDwvdGg+CgkJPHRoIGNsYXNzPSJsYXN0IGJvdHRvbV9ib3JkZXIiPkRlc2NyaXB0aW9uPC90aD4KCTwvdHI+Cgk8L3RoZWFkPgoJCgk8dGJvZHk+Cgk8dHIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0ibnVtYmVyIHJpZ2h0X2JvcmRlciI+PGRpdj4xPC9kaXY+PC90ZD48dGQgY2xhc3M9Im5hbWUiPmlQaXhlbHM8L3RkPjx0ZCBjbGFzcz0idHlwZSB0eXBlLXBhcmFtIj5pbnQ8L3RkPjx0ZCBjbGFzcz0iYXR0cmlidXRlcyI+PC90ZD48dGQgY2xhc3M9ImRlZmF1bHQiPjwvdGQ+PHRkIGNsYXNzPSJkZXNjcmlwdGlvbiBsYXN0Ij5PZmZzZXQgZnJvbSB0b3AgdG8gY2FsdWNsYXRlIHRoZSByb3cgbnVtYmVyIG9mPC90ZD48L3RyPgoJPC90Ym9keT4KPC90YWJsZT48aDU+UmV0dXJuczo8L2g1PjxwIGNsYXNzPSJyZXR1cm5zIj5Sb3cgaW5kZXg8L3A+PGg1PkV4YW1wbGU6PC9oNT4KICAgIDxkaXYgY2xhc3M9ImV4YW1wbGUtY29kZSI+CiAgICAJPHByZSBjbGFzcz0iYnJ1c2g6IGpzIj4gICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewogICAgICAgInNTY3JvbGxZIjogIjIwMHB4IiwKICAgICAgICJzQWpheFNvdXJjZSI6ICJtZWRpYS9kYXRhc2V0L2xhcmdlLnR4dCIsCiAgICAgICAic0RvbSI6ICJmcnRpUyIsCiAgICAgICAiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKICAgICAgICJmbkluaXRDb21wbGV0ZSI6IGZ1bmN0aW9uIChvKSB7CiAgICAgICAgIC8vIEZpbmQgd2hhdCByb3cgbnVtYmVyIGlzIGF0IDUwMHB4CiAgICAgICAgIGFsZXJ0KCBvLm9TY3JvbGxlci5mblBpeGVsc1RvUm93KCA1MDAgKSApOwogICAgICAgfQogICAgIH0gKTsKICAgfSApOzwvcHJlPgogICAgPC9kaXY+CjwvZGl2Pgo8ZHQgaWQ9IlNjcm9sbGVyI2ZuUm93VG9QaXhlbHMiIGNsYXNzPSIgZXZlbiI+PGEgbmFtZT0iZm5Sb3dUb1BpeGVscyI+PC9hPjxhIG5hbWU9ImZuUm93VG9QaXhlbHNfZGV0YWlscyI+PC9hPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YT5mblJvd1RvUGl4ZWxzPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJzaWduYXR1cmUiPihpUm93KTwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiAmcmFycjsge2ludH08L3NwYW4+PC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iIGV2ZW4iPjxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+Q2FsY3VsYXRlIHRoZSBwaXhlbCBwb3NpdGlvbiBmcm9tIHRoZSB0b3Agb2YgdGhlIHNjcm9sbGluZyBjb250YWluZXIgZm9yIGEgZ2l2ZW4gcm93PC9wPjxkaXYgY2xhc3M9ImNvbGxhcHNlX2RldGFpbHMiPjxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KPGg1PlBhcmFtZXRlcnM6PC9oNT4KCjx0YWJsZSBjbGFzcz0icGFyYW1zIj4KICAgIDx0aGVhZD4KCTx0cj4KICAgICAgICA8dGggd2lkdGg9IjIwIj48L3RoPgogICAgICAgIDx0aCB3aWR0aD0iMTIlIiBjbGFzcz0iYm90dG9tX2JvcmRlciBuYW1lIj5OYW1lPC90aD4KCQk8dGggd2lkdGg9IjEwJSIgY2xhc3M9ImJvdHRvbV9ib3JkZXIiPlR5cGU8L3RoPgoJCTx0aCB3aWR0aD0iMTAlIiBjbGFzcz0iYm90dG9tX2JvcmRlciI+QXR0cmlidXRlczwvdGg+CgkJPHRoIHdpZHRoPSIxMCUiIGNsYXNzPSJib3R0b21fYm9yZGVyIj5EZWZhdWx0PC90aD4KCQk8dGggY2xhc3M9Imxhc3QgYm90dG9tX2JvcmRlciI+RGVzY3JpcHRpb248L3RoPgoJPC90cj4KCTwvdGhlYWQ+CgkKCTx0Ym9keT4KCTx0ciBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJudW1iZXIgcmlnaHRfYm9yZGVyIj48ZGl2PjE8L2Rpdj48L3RkPjx0ZCBjbGFzcz0ibmFtZSI+aVJvdzwvdGQ+PHRkIGNsYXNzPSJ0eXBlIHR5cGUtcGFyYW0iPmludDwvdGQ+PHRkIGNsYXNzPSJhdHRyaWJ1dGVzIj48L3RkPjx0ZCBjbGFzcz0iZGVmYXVsdCI+PC90ZD48dGQgY2xhc3M9ImRlc2NyaXB0aW9uIGxhc3QiPlJvdyBudW1iZXIgdG8gY2FsY3VsYXRlIHRoZSBwb3NpdGlvbiBvZjwvdGQ+PC90cj4KCTwvdGJvZHk+CjwvdGFibGU+PGg1PlJldHVybnM6PC9oNT48cCBjbGFzcz0icmV0dXJucyI+UGl4ZWxzPC9wPjxoNT5FeGFtcGxlOjwvaDU+CiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlLWNvZGUiPgogICAgCTxwcmUgY2xhc3M9ImJydXNoOiBqcyI+ICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CiAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKICAgICAgICJzU2Nyb2xsWSI6ICIyMDBweCIsCiAgICAgICAic0FqYXhTb3VyY2UiOiAibWVkaWEvZGF0YXNldC9sYXJnZS50eHQiLAogICAgICAgInNEb20iOiAiZnJ0aVMiLAogICAgICAgImJEZWZlclJlbmRlciI6IHRydWUsCiAgICAgICAiZm5Jbml0Q29tcGxldGUiOiBmdW5jdGlvbiAobykgewogICAgICAgICAvLyBGaW5kIHdoZXJlIHJvdyAyNSBpcwogICAgICAgICBhbGVydCggby5vU2Nyb2xsZXIuZm5Sb3dUb1BpeGVscyggMjUgKSApOwogICAgICAgfQogICAgIH0gKTsKICAgfSApOzwvcHJlPgogICAgPC9kaXY+CjwvZGl2Pgo8ZHQgaWQ9IlNjcm9sbGVyI2ZuU2Nyb2xsVG9Sb3ciIGNsYXNzPSIgb2RkIj48YSBuYW1lPSJmblNjcm9sbFRvUm93Ij48L2E+PGEgbmFtZT0iZm5TY3JvbGxUb1Jvd19kZXRhaWxzIj48L2E+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj48L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhPmZuU2Nyb2xsVG9Sb3c8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InNpZ25hdHVyZSI+KGlSb3csIDxzcGFuIGNsYXNzPSJvcHRpb25hbCI+YkFuaW1hdGU8L3NwYW4+KTwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiAmcmFycjsge3ZvaWR9PC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiBvZGQiPjxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+Q2FsY3VsYXRlIHRoZSByb3cgbnVtYmVyIHRoYXQgd2lsbCBiZSBmb3VuZCBhdCB0aGUgZ2l2ZW4gcGl4ZWwgcG9zaXRpb24gKHktc2Nyb2xsKTwvcD48ZGl2IGNsYXNzPSJjb2xsYXBzZV9kZXRhaWxzIj48ZGwgY2xhc3M9ImRldGFpbHMiPgoJCjwvZGw+CjxoNT5QYXJhbWV0ZXJzOjwvaDU+Cgo8dGFibGUgY2xhc3M9InBhcmFtcyI+CiAgICA8dGhlYWQ+Cgk8dHI+CiAgICAgICAgPHRoIHdpZHRoPSIyMCI+PC90aD4KICAgICAgICA8dGggd2lkdGg9IjEyJSIgY2xhc3M9ImJvdHRvbV9ib3JkZXIgbmFtZSI+TmFtZTwvdGg+CgkJPHRoIHdpZHRoPSIxMCUiIGNsYXNzPSJib3R0b21fYm9yZGVyIj5UeXBlPC90aD4KCQk8dGggd2lkdGg9IjEwJSIgY2xhc3M9ImJvdHRvbV9ib3JkZXIiPkF0dHJpYnV0ZXM8L3RoPgoJCTx0aCB3aWR0aD0iMTAlIiBjbGFzcz0iYm90dG9tX2JvcmRlciI+RGVmYXVsdDwvdGg+CgkJPHRoIGNsYXNzPSJsYXN0IGJvdHRvbV9ib3JkZXIiPkRlc2NyaXB0aW9uPC90aD4KCTwvdHI+Cgk8L3RoZWFkPgoJCgk8dGJvZHk+Cgk8dHIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0ibnVtYmVyIHJpZ2h0X2JvcmRlciI+PGRpdj4xPC9kaXY+PC90ZD48dGQgY2xhc3M9Im5hbWUiPmlSb3c8L3RkPjx0ZCBjbGFzcz0idHlwZSB0eXBlLXBhcmFtIj5pbnQ8L3RkPjx0ZCBjbGFzcz0iYXR0cmlidXRlcyI+PC90ZD48dGQgY2xhc3M9ImRlZmF1bHQiPjwvdGQ+PHRkIGNsYXNzPSJkZXNjcmlwdGlvbiBsYXN0Ij5Sb3cgaW5kZXggdG8gc2Nyb2xsIHRvPC90ZD48L3RyPjx0ciBjbGFzcz0ib2RkIj48dGQgY2xhc3M9Im51bWJlciByaWdodF9ib3JkZXIiPjxkaXY+MjwvZGl2PjwvdGQ+PHRkIGNsYXNzPSJuYW1lIj5iQW5pbWF0ZTwvdGQ+PHRkIGNsYXNzPSJ0eXBlIHR5cGUtcGFyYW0iPmJvb2w8L3RkPjx0ZCBjbGFzcz0iYXR0cmlidXRlcyI+T3B0aW9uYWw8L3RkPjx0ZCBjbGFzcz0iZGVmYXVsdCI+dHJ1ZTwvdGQ+PHRkIGNsYXNzPSJkZXNjcmlwdGlvbiBsYXN0Ij5BbmltYXRlIHRoZSB0cmFuc2lzaW9uIG9yIG5vdDwvdGQ+PC90cj4KCTwvdGJvZHk+CjwvdGFibGU+PGg1PkV4YW1wbGU6PC9oNT4KICAgIDxkaXYgY2xhc3M9ImV4YW1wbGUtY29kZSI+CiAgICAJPHByZSBjbGFzcz0iYnJ1c2g6IGpzIj4gICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewogICAgICAgInNTY3JvbGxZIjogIjIwMHB4IiwKICAgICAgICJzQWpheFNvdXJjZSI6ICJtZWRpYS9kYXRhc2V0L2xhcmdlLnR4dCIsCiAgICAgICAic0RvbSI6ICJmcnRpUyIsCiAgICAgICAiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKICAgICAgICJmbkluaXRDb21wbGV0ZSI6IGZ1bmN0aW9uIChvKSB7CiAgICAgICAgIC8vIEltbWVkaWF0ZWx5IHNjcm9sbCB0byByb3cgMTAwMAogICAgICAgICBvLm9TY3JvbGxlci5mblNjcm9sbFRvUm93KCAxMDAwICk7CiAgICAgICB9CiAgICAgfSApOwogICAgIAogICAgIC8vIFNvbWV0aW1lIGxhdGVyIG9uIHVzZSB0aGUgZm9sbG93aW5nIHRvIHNjcm9sbCB0byByb3cgNTAwLi4uCiAgICAgICAgIHZhciBvU2V0dGluZ3MgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpLmZuU2V0dGluZ3MoKTsKICAgICBvU2V0dGluZ3Mub1Njcm9sbGVyLmZuU2Nyb2xsVG9Sb3coIDUwMCApOwogICB9ICk7PC9wcmU+CiAgICA8L2Rpdj4KPC9kaXY+Cgo8L2RkPgo8L2Rpdj4KICAgCQkJCQk8L2Rpdj4KCQkJCQoJCTwvZGl2PgoKCQk8ZGl2IGNsYXNzPSJmd19mb290ZXIiPgoJCQlTY3JvbGxlcjogQ29weXJpZ2h0IDIwMTEtMjAxMiBBbGxhbiBKYXJkaW5lLCBhbGwgcmlnaHRzIHJlc2VydmVkPGJyPgoKCQkJRG9jdW1lbnRhdGlvbiBnZW5lcmF0ZWQgYnkgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL21pY21hdGgvSlNEb2MiPkpTRG9jIDM8L2E+IG9uCgkJCTh0aCBBdWcgMjAxMiAtIDIyOjU0CgkJCXdpdGggdGhlIDxhIGhyZWY9Imh0dHA6Ly9kYXRhdGFibGVzLm5ldC8iPkRhdGFUYWJsZXM8L2E+IHRlbXBsYXRlLgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/media/docs/Scroller.oDefaults.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgoJCTx0aXRsZT5OYW1lc3BhY2U6IG9EZWZhdWx0cyAtIGRvY3VtZW50YXRpb248L3RpdGxlPgogIAoJCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CgkJCUBpbXBvcnQgIm1lZGlhL2Nzcy9kb2MuY3NzIjsKCQkJQGltcG9ydCAibWVkaWEvY3NzL3NoQ29yZS5jc3MiOwoJCQlAaW1wb3J0ICJtZWRpYS9jc3Mvc2hUaGVtZURhdGFUYWJsZXMuY3NzIjsKCQk8L3N0eWxlPgoJCgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvc2hDb3JlLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9zaEJydXNoSlNjcmlwdC5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvanF1ZXJ5LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZWRpYS9qcy9kb2MuanMiPjwvc2NyaXB0PgoJPC9oZWFkPgoJPGJvZHk+CgkJPGRpdiBjbGFzcz0iZndfY29udGFpbmVyIj4KCQkJCgkJCQk8YSBuYW1lPSJ0b3AiPjwvYT4KCQkJCTxkaXYgY2xhc3M9ImZ3X2hlYWRlciI+CgkJCQkJPGgxIGNsYXNzPSJwYWdlLXRpdGxlIj5OYW1lc3BhY2U6IG9EZWZhdWx0czwvaDE+CgkJCQkJPGgyIGNsYXNzPSJhbmNlc3RvcnMiPkFuY2VzdHJ5OiA8c3BhbiBjbGFzcz0iYW5jZXN0b3JzIj48YSBocmVmPSJTY3JvbGxlci5odG1sIj5TY3JvbGxlcjwvYT4uPC9zcGFuPiDCuyBvRGVmYXVsdHM8L2gyPgoJCQkJCTxkaXYgY2xhc3M9InBhZ2UtaW5mbyI+CgkJCQkJCVNjcm9sbGVyIHYxLjEuMCBkb2N1bWVudGF0aW9uCgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCgkJCQkKCgkJCQk8ZGl2IGNsYXNzPSJmd19uYXYiPgoJCQkJCTxoMj5OYXZpZ2F0aW9uPC9oMj4KCQkJCQk8dWw+CgkJCQkJPGxpPjxhIGhyZWY9IiN0b3AiPk92ZXJ2aWV3PC9hPjwvbGk+CgkJCQkJPGxpPjxhIGhyZWY9IiNzdW1tYXJ5Ij5TdW1tYXJ5PC9hPjxkaXY+PGEgaHJlZj0iI3N1bW1hcnlfcHJvcGVydGllcyI+UHJvcGVydGllczwvYT48L2Rpdj48L2xpPjxsaT48YSBocmVmPSIjZGV0YWlscyI+RGV0YWlsczwvYT48ZGl2PjxhIGhyZWY9IiNkZXRhaWxzX3Byb3BlcnRpZXMiPlByb3BlcnRpZXM8L2E+PC9kaXY+PC9saT48L3VsPgoJCQkJCTxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDEwcHg7Ij4KCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2hvd19wcml2YXRlIiB2YWx1ZT0iMCI+CgkJCQkJCTxzcGFuIGlkPSJwcml2YXRlX2xhYmVsIj5IaWRpbmc8L3NwYW4+IHByaXZhdGUgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9InByaXZhdGVfdG9nZ2xlIiBocmVmPSIiPnRvZ2dsZTwvYT4pCgkJCQkJCTwvc3Bhbj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2PgoJCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzaG93X2V4dGVuZGVkIiB2YWx1ZT0iMSI+CgkJCQkJCTxzcGFuIGlkPSJleHRlbmRlZF9sYWJlbCI+U2hvd2luZzwvc3Bhbj4gZXh0ZW5kZWQgZWxlbWVudHMgCgkJCQkJCQkoPGEgaWQ9ImV4dGVuZGVkX3RvZ2dsZSIgaHJlZj0iIj50b2dnbGU8L2E+KQoJCQkJCQk8L3NwYW4+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCgkJCQk8ZGl2IGNsYXNzPSJmd19jb250ZW50Ij4KCQkJCQk8YSBuYW1lPSJvdmVydmlldyI+PC9hPgoJCQkJCTxkaXYgY2xhc3M9ImRvY19vdmVydmlldyI+CgkJCQkJCTxkaXYgY2xhc3M9Im5hdl9ibG9ja2VyIj48L2Rpdj4KCQkJCQkJPHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5TY3JvbGxlciBkZWZhdWx0IHNldHRpbmdzIGZvciBpbml0aWFsaXNhdGlvbjwvcD48ZGwgY2xhc3M9ImRldGFpbHMiPgoJCjwvZGw+CgoJCQkJCTwvZGl2PgoKCQkJCQkKCQkJCQk8ZGl2IGNsYXNzPSJkb2Nfc3VtbWFyeSI+CgkJCQkJCTxhIG5hbWU9InN1bW1hcnkiPjwvYT4KCQkJCQkJPGgyPlN1bW1hcnk8L2gyPgoKCQkJCQkJPGRpdiBjbGFzcz0iZG9jX2dyb3VwIj48YSBuYW1lPSJzdW1tYXJ5X3Byb3BlcnRpZXMiPjwvYT48aDMgY2xhc3M9InN1YnNlY3Rpb24tdGl0bGUiPlByb3BlcnRpZXM8L2gzPgoKPGRsPgogICAgPGR0IGNsYXNzPSIgIGV2ZW4iPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+Jmx0O3N0YXRpYz4gPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjYm91bmRhcnlTY2FsZSI+Ym91bmRhcnlTY2FsZTwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6ZmxvYXQ8L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgIGV2ZW4iPlNjcm9sbGVyIHVzZXMgdGhlIGJvdW5kYXJ5IHNjYWxpbmcgZmFjdG9yIHRvIGRlY2lkZSB3aGVuIHRvIHJlZHJhdyB0aGUgdGFibGUgLSB3aGljaCBpdAp0eXBpY2FsbHkgZG9lcyBiZWZvcmUgeW91IHJlYWNoIHRoZSBlbmQgb2YgdGhlIGN1cnJlbnRseSBsb2FkZWQgZGF0YSBzZXQgKGluIG9yZGVyIHRvCmFsbG93IHRoZSBkYXRhIHRvIGxvb2sgY29udGludW91cyB0byBhIHVzZXIgc2Nyb2xsaW5nIHRocm91Z2ggdGhlIGRhdGEpLiBJZiBnaXZlbiBhcyAwCnRoZW4gdGhlIHRhYmxlIHdpbGwgYmUgcmVkcmF3biB3aGVuZXZlciB0aGUgdmlld3BvcnQgaXMgc2Nyb2xsZWQsIHdoaWxlIDEgd291bGQgbm90CnJlZHJhdyB0aGUgdGFibGUgdW50aWwgdGhlIGN1cnJlbnRseSBsb2FkZWQgZGF0YSBoYXMgYWxsIGJlZW4gc2hvd24uIFlvdSB3aWxsIHdhbnQgCnNvbWV0aGluZyBpbiB0aGUgbWlkZGxlIC0gdGhlIGRlZmF1bHQgZmFjdG9yIG9mIDAuNSBpcyB1c3VhbGx5IHN1aXRhYmxlLjwvZGQ+PGR0IGNsYXNzPSIgIG9kZCI+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4mbHQ7c3RhdGljPiA8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNkaXNwbGF5QnVmZmVyIj5kaXNwbGF5QnVmZmVyPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDppbnQ8L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgIG9kZCI+VGhlIGRpc3BsYXkgYnVmZmVyIGlzIHdoYXQgU2Nyb2xsZXIgdXNlcyB0byBjYWxjdWxhdGUgaG93IG1hbnkgcm93cyBpdCBzaG91bGQgcHJlLWZldGNoCmZvciBzY3JvbGxpbmcuIFNjcm9sbGVyIGF1dG9tYXRpY2FsbHkgYWRqdXN0cyBEYXRhVGFibGVzJyBkaXNwbGF5IGxlbmd0aCB0byBwcmUtZmV0Y2gKcm93cyB0aGF0IHdpbGwgYmUgc2hvd24gaW4gIm5lYXIgc2Nyb2xsaW5nIiAoaS5lLiBqdXN0IGJleW9uZCB0aGUgY3VycmVudCBkaXNwbGF5IGFyZWEpLgpUaGUgdmFsdWUgaXMgYmFzZWQgdXBvbiB0aGUgbnVtYmVyIG9mIHJvd3MgdGhhdCBjYW4gYmUgZGlzcGxheWVkIGluIHRoZSB2aWV3cG9ydCAoaS5lLiAKYSB2YWx1ZSBvZiAxKSwgYW5kIHdpbGwgYXBwbHkgdGhlIGRpc3BsYXkgcmFuZ2UgdG8gcmVjb3JkcyBiZWZvcmUgYmVmb3JlIGFuZCBhZnRlciB0aGUKY3VycmVudCB2aWV3cG9ydCAtIGkuZS4gYSBmYWN0b3Igb2YgMyB3aWxsIGFsbG93IFNjcm9sbGVyIHRvIHByZS1mZXRjaCAxIHZpZXdwb3J0J3Mgd29ydGgKb2Ygcm93cyBiZWZvcmUgdGhlIGN1cnJlbnQgdmlld3BvcnQsIHRoZSBjdXJyZW50IHZpZXdwb3J0J3Mgcm93cyBhbmQgMSB2aWV3cG9ydCdzIHdvcnRoCm9mIHJvd3MgYWZ0ZXIgdGhlIGN1cnJlbnQgdmlld3BvcnQuIEFkanVzdGluZyB0aGlzIHZhbHVlIGNhbiBiZSB1c2VmdWwgZm9yIGVuc3VyaW5nIApzbW9vdGggc2Nyb2xsaW5nIGJhc2VkIG9uIHlvdXIgZGF0YSBzZXQuPC9kZD48ZHQgY2xhc3M9IiAgZXZlbiI+PHNwYW4gY2xhc3M9InR5cGUtYXR0ciI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4mbHQ7c3RhdGljPiA8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLW5hbWUiPjxhIGhyZWY9IiNsb2FkaW5nSW5kaWNhdG9yIj5sb2FkaW5nSW5kaWNhdG9yPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDpib29sZWFuPC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iICBldmVuIj5TaG93IChvciBub3QpIHRoZSBsb2FkaW5nIGVsZW1lbnQgaW4gdGhlIGJhY2tncm91bmQgb2YgdGhlIHRhYmxlLiBOb3RlIHRoYXQgeW91IHNob3VsZAppbmNsdWRlIHRoZSBkYXRhVGFibGVzLnNjcm9sbGVyLmNzcyBmaWxlIGZvciB0aGlzIHRvIGJlIGRpc3BsYXllZCBjb3JyZWN0bHkuPC9kZD48ZHQgY2xhc3M9IiAgb2RkIj48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI3Jvd0hlaWdodCI+cm93SGVpZ2h0PC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDppbnR8c3RyaW5nPC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iICBvZGQiPlNjcm9sbGVyIHdpbGwgYXR0ZW1wdCB0byBhdXRvbWF0aWNhbGx5IGNhbGN1bGF0ZSB0aGUgaGVpZ2h0IG9mIHJvd3MgZm9yIGl0J3MgaW50ZXJuYWwKY2FsY3VsYXRpb25zLiBIb3dldmVyIHRoZSBoZWlnaHQgdGhhdCBpcyB1c2VkIGNhbiBiZSBvdmVycmlkZGVuIHVzaW5nIHRoaXMgcGFyYW1ldGVyLjwvZGQ+PGR0IGNsYXNzPSIgIGV2ZW4iPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+Jmx0O3N0YXRpYz4gPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjc2VydmVyV2FpdCI+c2VydmVyV2FpdDwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6aW50PC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iICBldmVuIj5XaGVuIHVzaW5nIHNlcnZlci1zaWRlIHByb2Nlc3NpbmcsIFNjcm9sbGVyIHdpbGwgd2FpdCBhIHNtYWxsIGFtb3VudCBvZiB0aW1lIHRvIGFsbG93CnRoZSBzY3JvbGxpbmcgdG8gZmluaXNoIGJlZm9yZSByZXF1ZXN0aW5nIG1vcmUgZGF0YSBmcm9tIHRoZSBzZXJ2ZXIuIFRoaXMgcHJldmVudHMKeW91IGZyb20gRG9TaW5nIHlvdXIgb3duIHNlcnZlciEgVGhlIHdhaXQgdGltZSBjYW4gYmUgY29uZmlndXJlZCBieSB0aGlzIHBhcmFtZXRlci48L2RkPjxkdCBjbGFzcz0iICBvZGQiPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+Jmx0O3N0YXRpYz4gPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjdHJhY2UiPnRyYWNlPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1zaWciPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+IDpib29sPC9zcGFuPjwvc3Bhbj48L2R0PjxkZCBjbGFzcz0iICBvZGQiPkluZGljYXRlIGlmIFNjcm9sbGVyIHNob3cgc2hvdyB0cmFjZSBpbmZvcm1hdGlvbiBvbiB0aGUgY29uc29sZSBvciBub3QuIFRoaXMgY2FuIGJlIAp1c2VmdWwgd2hlbiBkZWJ1Z2dpbmcgU2Nyb2xsZXIgb3IgaWYganVzdCBjdXJpb3VzIGFzIHRvIHdoYXQgaXQgaXMgZG9pbmcsIGJ1dCBzaG91bGQKYmUgdHVybmVkIG9mZiBmb3IgcHJvZHVjdGlvbi48L2RkPgo8L2RsPjwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJCQoKCgkJCQkJCgkJCQkJPGRpdiBjbGFzcz0iZG9jX2RldGFpbHMiPgoJCQkJCQk8YSBuYW1lPSJkZXRhaWxzIj48L2E+CgkJCQkJCTxoMj5EZXRhaWxzPC9oMj4KCQkJCQkJPGRpdiBjbGFzcz0iZG9jX2dyb3VwIj48YSBuYW1lPSJkZXRhaWxzX3Byb3BlcnRpZXMiPjwvYT48aDMgY2xhc3M9InN1YnNlY3Rpb24tdGl0bGUiPlByb3BlcnRpZXM8L2gzPgo8ZGw+CiAgICA8ZHQgY2xhc3M9IiAgZXZlbiI+PGEgbmFtZT0iYm91bmRhcnlTY2FsZSI+PC9hPjxhIG5hbWU9ImJvdW5kYXJ5U2NhbGVfZGV0YWlscyI+PC9hPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+Jmx0O3N0YXRpYz4gPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjYm91bmRhcnlTY2FsZSI+Ym91bmRhcnlTY2FsZTwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6ZmxvYXQ8L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgIGV2ZW4iPjxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+U2Nyb2xsZXIgdXNlcyB0aGUgYm91bmRhcnkgc2NhbGluZyBmYWN0b3IgdG8gZGVjaWRlIHdoZW4gdG8gcmVkcmF3IHRoZSB0YWJsZSAtIHdoaWNoIGl0CnR5cGljYWxseSBkb2VzIGJlZm9yZSB5b3UgcmVhY2ggdGhlIGVuZCBvZiB0aGUgY3VycmVudGx5IGxvYWRlZCBkYXRhIHNldCAoaW4gb3JkZXIgdG8KYWxsb3cgdGhlIGRhdGEgdG8gbG9vayBjb250aW51b3VzIHRvIGEgdXNlciBzY3JvbGxpbmcgdGhyb3VnaCB0aGUgZGF0YSkuIElmIGdpdmVuIGFzIDAKdGhlbiB0aGUgdGFibGUgd2lsbCBiZSByZWRyYXduIHdoZW5ldmVyIHRoZSB2aWV3cG9ydCBpcyBzY3JvbGxlZCwgd2hpbGUgMSB3b3VsZCBub3QKcmVkcmF3IHRoZSB0YWJsZSB1bnRpbCB0aGUgY3VycmVudGx5IGxvYWRlZCBkYXRhIGhhcyBhbGwgYmVlbiBzaG93bi4gWW91IHdpbGwgd2FudCAKc29tZXRoaW5nIGluIHRoZSBtaWRkbGUgLSB0aGUgZGVmYXVsdCBmYWN0b3Igb2YgMC41IGlzIHVzdWFsbHkgc3VpdGFibGUuPC9wPjxkaXYgY2xhc3M9ImNvbGxhcHNlX2RldGFpbHMiPjxkbCBjbGFzcz0iZGV0YWlscyI+CgkKPC9kbD4KPGg1PkV4YW1wbGU8L2g1PgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZS1jb2RlIj4KICAgIAk8cHJlIGNsYXNzPSJicnVzaDoganMiPiAgIHZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewogICAgICAgInNTY3JvbGxZIjogIjIwMHB4IiwKICAgICAgICJzRG9tIjogImZydGlTIiwKICAgICAgICJiRGVmZXJSZW5kZXIiOiB0cnVlLAogICAgICAgIm9TY3JvbGxlciI6IHsKICAgICAgICAgImJvdW5kYXJ5U2NhbGUiOiAwLjc1CiAgICAgICB9CiAgIH0gKTs8L3ByZT4KICAgIDwvZGl2Pgo8L2Rpdj48L2RkPjxkdCBjbGFzcz0iICBvZGQiPjxhIG5hbWU9ImRpc3BsYXlCdWZmZXIiPjwvYT48YSBuYW1lPSJkaXNwbGF5QnVmZmVyX2RldGFpbHMiPjwvYT48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI2Rpc3BsYXlCdWZmZXIiPmRpc3BsYXlCdWZmZXI8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gOmludDwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiAgb2RkIj48cCBjbGFzcz0iZGVzY3JpcHRpb24iPlRoZSBkaXNwbGF5IGJ1ZmZlciBpcyB3aGF0IFNjcm9sbGVyIHVzZXMgdG8gY2FsY3VsYXRlIGhvdyBtYW55IHJvd3MgaXQgc2hvdWxkIHByZS1mZXRjaApmb3Igc2Nyb2xsaW5nLiBTY3JvbGxlciBhdXRvbWF0aWNhbGx5IGFkanVzdHMgRGF0YVRhYmxlcycgZGlzcGxheSBsZW5ndGggdG8gcHJlLWZldGNoCnJvd3MgdGhhdCB3aWxsIGJlIHNob3duIGluICJuZWFyIHNjcm9sbGluZyIgKGkuZS4ganVzdCBiZXlvbmQgdGhlIGN1cnJlbnQgZGlzcGxheSBhcmVhKS4KVGhlIHZhbHVlIGlzIGJhc2VkIHVwb24gdGhlIG51bWJlciBvZiByb3dzIHRoYXQgY2FuIGJlIGRpc3BsYXllZCBpbiB0aGUgdmlld3BvcnQgKGkuZS4gCmEgdmFsdWUgb2YgMSksIGFuZCB3aWxsIGFwcGx5IHRoZSBkaXNwbGF5IHJhbmdlIHRvIHJlY29yZHMgYmVmb3JlIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlCmN1cnJlbnQgdmlld3BvcnQgLSBpLmUuIGEgZmFjdG9yIG9mIDMgd2lsbCBhbGxvdyBTY3JvbGxlciB0byBwcmUtZmV0Y2ggMSB2aWV3cG9ydCdzIHdvcnRoCm9mIHJvd3MgYmVmb3JlIHRoZSBjdXJyZW50IHZpZXdwb3J0LCB0aGUgY3VycmVudCB2aWV3cG9ydCdzIHJvd3MgYW5kIDEgdmlld3BvcnQncyB3b3J0aApvZiByb3dzIGFmdGVyIHRoZSBjdXJyZW50IHZpZXdwb3J0LiBBZGp1c3RpbmcgdGhpcyB2YWx1ZSBjYW4gYmUgdXNlZnVsIGZvciBlbnN1cmluZyAKc21vb3RoIHNjcm9sbGluZyBiYXNlZCBvbiB5b3VyIGRhdGEgc2V0LjwvcD48ZGl2IGNsYXNzPSJjb2xsYXBzZV9kZXRhaWxzIj48ZGwgY2xhc3M9ImRldGFpbHMiPgoJCjwvZGw+CjxoNT5FeGFtcGxlPC9oNT4KICAgIDxkaXYgY2xhc3M9ImV4YW1wbGUtY29kZSI+CiAgICAJPHByZSBjbGFzcz0iYnJ1c2g6IGpzIj4gICB2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKICAgICAgICJzU2Nyb2xsWSI6ICIyMDBweCIsCiAgICAgICAic0RvbSI6ICJmcnRpUyIsCiAgICAgICAiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKICAgICAgICJvU2Nyb2xsZXIiOiB7CiAgICAgICAgICJkaXNwbGF5QnVmZmVyIjogMTAKICAgICAgIH0KICAgfSApOzwvcHJlPgogICAgPC9kaXY+CjwvZGl2PjwvZGQ+PGR0IGNsYXNzPSIgIGV2ZW4iPjxhIG5hbWU9ImxvYWRpbmdJbmRpY2F0b3IiPjwvYT48YSBuYW1lPSJsb2FkaW5nSW5kaWNhdG9yX2RldGFpbHMiPjwvYT48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI2xvYWRpbmdJbmRpY2F0b3IiPmxvYWRpbmdJbmRpY2F0b3I8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gOmJvb2xlYW48L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgIGV2ZW4iPjxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+U2hvdyAob3Igbm90KSB0aGUgbG9hZGluZyBlbGVtZW50IGluIHRoZSBiYWNrZ3JvdW5kIG9mIHRoZSB0YWJsZS4gTm90ZSB0aGF0IHlvdSBzaG91bGQKaW5jbHVkZSB0aGUgZGF0YVRhYmxlcy5zY3JvbGxlci5jc3MgZmlsZSBmb3IgdGhpcyB0byBiZSBkaXNwbGF5ZWQgY29ycmVjdGx5LjwvcD48ZGl2IGNsYXNzPSJjb2xsYXBzZV9kZXRhaWxzIj48ZGwgY2xhc3M9ImRldGFpbHMiPgoJCjwvZGw+CjxoNT5FeGFtcGxlPC9oNT4KICAgIDxkaXYgY2xhc3M9ImV4YW1wbGUtY29kZSI+CiAgICAJPHByZSBjbGFzcz0iYnJ1c2g6IGpzIj4gICB2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKICAgICAgICJzU2Nyb2xsWSI6ICIyMDBweCIsCiAgICAgICAic0RvbSI6ICJmcnRpUyIsCiAgICAgICAiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKICAgICAgICJvU2Nyb2xsZXIiOiB7CiAgICAgICAgICJsb2FkaW5nSW5kaWNhdG9yIjogdHJ1ZQogICAgICAgfQogICB9ICk7PC9wcmU+CiAgICA8L2Rpdj4KPC9kaXY+PC9kZD48ZHQgY2xhc3M9IiAgb2RkIj48YSBuYW1lPSJyb3dIZWlnaHQiPjwvYT48YSBuYW1lPSJyb3dIZWlnaHRfZGV0YWlscyI+PC9hPjxzcGFuIGNsYXNzPSJ0eXBlLWF0dHIiPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZ25hdHVyZSI+Jmx0O3N0YXRpYz4gPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0idHlwZS1uYW1lIj48YSBocmVmPSIjcm93SGVpZ2h0Ij5yb3dIZWlnaHQ8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gOmludHxzdHJpbmc8L3NwYW4+PC9zcGFuPjwvZHQ+PGRkIGNsYXNzPSIgIG9kZCI+PHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5TY3JvbGxlciB3aWxsIGF0dGVtcHQgdG8gYXV0b21hdGljYWxseSBjYWxjdWxhdGUgdGhlIGhlaWdodCBvZiByb3dzIGZvciBpdCdzIGludGVybmFsCmNhbGN1bGF0aW9ucy4gSG93ZXZlciB0aGUgaGVpZ2h0IHRoYXQgaXMgdXNlZCBjYW4gYmUgb3ZlcnJpZGRlbiB1c2luZyB0aGlzIHBhcmFtZXRlci48L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8aDU+RXhhbXBsZTwvaDU+CiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlLWNvZGUiPgogICAgCTxwcmUgY2xhc3M9ImJydXNoOiBqcyI+ICAgdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CiAgICAgICAic1Njcm9sbFkiOiAiMjAwcHgiLAogICAgICAgInNEb20iOiAiZnJ0aVMiLAogICAgICAgImJEZWZlclJlbmRlciI6IHRydWUsCiAgICAgICAib1Njcm9sbGVyIjogewogICAgICAgICAicm93SGVpZ2h0IjogMzAKICAgICAgIH0KICAgfSApOzwvcHJlPgogICAgPC9kaXY+CjwvZGl2PjwvZGQ+PGR0IGNsYXNzPSIgIGV2ZW4iPjxhIG5hbWU9InNlcnZlcldhaXQiPjwvYT48YSBuYW1lPSJzZXJ2ZXJXYWl0X2RldGFpbHMiPjwvYT48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI3NlcnZlcldhaXQiPnNlcnZlcldhaXQ8L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBlLXNpZyI+PHNwYW4gY2xhc3M9InR5cGUtc2lnbmF0dXJlIj4gOmludDwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiAgZXZlbiI+PHAgY2xhc3M9ImRlc2NyaXB0aW9uIj5XaGVuIHVzaW5nIHNlcnZlci1zaWRlIHByb2Nlc3NpbmcsIFNjcm9sbGVyIHdpbGwgd2FpdCBhIHNtYWxsIGFtb3VudCBvZiB0aW1lIHRvIGFsbG93CnRoZSBzY3JvbGxpbmcgdG8gZmluaXNoIGJlZm9yZSByZXF1ZXN0aW5nIG1vcmUgZGF0YSBmcm9tIHRoZSBzZXJ2ZXIuIFRoaXMgcHJldmVudHMKeW91IGZyb20gRG9TaW5nIHlvdXIgb3duIHNlcnZlciEgVGhlIHdhaXQgdGltZSBjYW4gYmUgY29uZmlndXJlZCBieSB0aGlzIHBhcmFtZXRlci48L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8aDU+RXhhbXBsZTwvaDU+CiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlLWNvZGUiPgogICAgCTxwcmUgY2xhc3M9ImJydXNoOiBqcyI+ICAgdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CiAgICAgICAic1Njcm9sbFkiOiAiMjAwcHgiLAogICAgICAgInNEb20iOiAiZnJ0aVMiLAogICAgICAgImJEZWZlclJlbmRlciI6IHRydWUsCiAgICAgICAib1Njcm9sbGVyIjogewogICAgICAgICAic2VydmVyV2FpdCI6IDEwMAogICAgICAgfQogICB9ICk7PC9wcmU+CiAgICA8L2Rpdj4KPC9kaXY+PC9kZD48ZHQgY2xhc3M9IiAgb2RkIj48YSBuYW1lPSJ0cmFjZSI+PC9hPjxhIG5hbWU9InRyYWNlX2RldGFpbHMiPjwvYT48c3BhbiBjbGFzcz0idHlwZS1hdHRyIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiZsdDtzdGF0aWM+IDwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtbmFtZSI+PGEgaHJlZj0iI3RyYWNlIj50cmFjZTwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InR5cGUtc2lnIj48c3BhbiBjbGFzcz0idHlwZS1zaWduYXR1cmUiPiA6Ym9vbDwvc3Bhbj48L3NwYW4+PC9kdD48ZGQgY2xhc3M9IiAgb2RkIj48cCBjbGFzcz0iZGVzY3JpcHRpb24iPkluZGljYXRlIGlmIFNjcm9sbGVyIHNob3cgc2hvdyB0cmFjZSBpbmZvcm1hdGlvbiBvbiB0aGUgY29uc29sZSBvciBub3QuIFRoaXMgY2FuIGJlIAp1c2VmdWwgd2hlbiBkZWJ1Z2dpbmcgU2Nyb2xsZXIgb3IgaWYganVzdCBjdXJpb3VzIGFzIHRvIHdoYXQgaXQgaXMgZG9pbmcsIGJ1dCBzaG91bGQKYmUgdHVybmVkIG9mZiBmb3IgcHJvZHVjdGlvbi48L3A+PGRpdiBjbGFzcz0iY29sbGFwc2VfZGV0YWlscyI+PGRsIGNsYXNzPSJkZXRhaWxzIj4KCQo8L2RsPgo8aDU+RXhhbXBsZTwvaDU+CiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlLWNvZGUiPgogICAgCTxwcmUgY2xhc3M9ImJydXNoOiBqcyI+ICAgdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CiAgICAgICAic1Njcm9sbFkiOiAiMjAwcHgiLAogICAgICAgInNEb20iOiAiZnJ0aVMiLAogICAgICAgImJEZWZlclJlbmRlciI6IHRydWUsCiAgICAgICAib1Njcm9sbGVyIjogewogICAgICAgICAidHJhY2UiOiB0cnVlCiAgICAgICB9CiAgIH0gKTs8L3ByZT4KICAgIDwvZGl2Pgo8L2Rpdj48L2RkPgo8L2RsPjwvZGl2PgogICAJCQkJCTwvZGl2PgoJCQkJCgkJPC9kaXY+CgoJCTxkaXYgY2xhc3M9ImZ3X2Zvb3RlciI+CgkJCVNjcm9sbGVyOiBDb3B5cmlnaHQgMjAxMS0yMDEyIEFsbGFuIEphcmRpbmUsIGFsbCByaWdodHMgcmVzZXJ2ZWQ8YnI+CgoJCQlEb2N1bWVudGF0aW9uIGdlbmVyYXRlZCBieSA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbWljbWF0aC9KU0RvYyI+SlNEb2MgMzwvYT4gb24KCQkJOHRoIEF1ZyAyMDEyIC0gMjI6NTQKCQkJd2l0aCB0aGUgPGEgaHJlZj0iaHR0cDovL2RhdGF0YWJsZXMubmV0LyI+RGF0YVRhYmxlczwvYT4gdGVtcGxhdGUuCgkJPC9kaXY+Cgk8L2JvZHk+CjwvaHRtbD4=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/media/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/media/images/loading-background.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAsAAAALCAYAAACprHcmAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDkwOTFFNzZCM0EwMTFFMThEOEY5NUJGRThBQjFDNTgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDkwOTFFNzdCM0EwMTFFMThEOEY5NUJGRThBQjFDNTgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFMjhEQjI2MUIzOUQxMUUxOEQ4Rjk1QkZFOEFCMUM1OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpFMjhEQjI2MkIzOUQxMUUxOEQ4Rjk1QkZFOEFCMUM1OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PnQzkuIAAABpSURBVHjajJFtCoAwCIZVds6gdq6NLlhHyDQ2GOJyL7zoj0fxA6+bNwAg8Qm+djGrUwAeLaL4Qek84SAP+QfRKiiqFIB9hOp1zk5x6QmtgiMcgqrUzsNmxuJtTQaEGajPIXuen+fwK8AAOlAZjWqNvuAAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/media/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/media/js/dataTables.scroller.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIEBzdW1tYXJ5ICAgICBTY3JvbGxlcgogKiBAZGVzY3JpcHRpb24gVmlydHVhbCByZW5kZXJpbmcgZm9yIERhdGFUYWJsZXMKICogQGZpbGUgICAgICAgIFNjcm9sbGVyLmpzCiAqIEB2ZXJzaW9uICAgICAxLjEuMAogKiBAYXV0aG9yICAgICAgQWxsYW4gSmFyZGluZSAod3d3LnNwcnltZWRpYS5jby51aykKICogQGxpY2Vuc2UgICAgIEdQTCB2MiBvciBCU0QgMyBwb2ludCBzdHlsZQogKiBAY29udGFjdCAgICAgd3d3LnNwcnltZWRpYS5jby51ay9jb250YWN0CiAqCiAqIEBjb3B5cmlnaHQgQ29weXJpZ2h0IDIwMTEtMjAxMiBBbGxhbiBKYXJkaW5lLCBhbGwgcmlnaHRzIHJlc2VydmVkLgogKgogKiBUaGlzIHNvdXJjZSBmaWxlIGlzIGZyZWUgc29mdHdhcmUsIHVuZGVyIGVpdGhlciB0aGUgR1BMIHYyIGxpY2Vuc2Ugb3IgYQogKiBCU0Qgc3R5bGUgbGljZW5zZSwgYXZhaWxhYmxlIGF0OgogKiAgIGh0dHA6Ly9kYXRhdGFibGVzLm5ldC9saWNlbnNlX2dwbDIKICogICBodHRwOi8vZGF0YXRhYmxlcy5uZXQvbGljZW5zZV9ic2QKICovCgooLyoqIEBsZW5kcyA8Z2xvYmFsPiAqL2Z1bmN0aW9uKCQsIHdpbmRvdywgZG9jdW1lbnQpIHsKCgovKiogCiAqIFNjcm9sbGVyIGlzIGEgdmlydHVhbCByZW5kZXJpbmcgcGx1Zy1pbiBmb3IgRGF0YVRhYmxlcyB3aGljaCBhbGxvd3MgbGFyZ2UKICogZGF0YXNldHMgdG8gYmUgZHJhd24gb24gc2NyZWVuIGV2ZXJ5IHF1aWNrbHkuIFdoYXQgdGhlIHZpcnR1YWwgcmVuZGVyaW5nIG1lYW5zCiAqIGlzIHRoYXQgb25seSB0aGUgdmlzaWJsZSBwb3J0aW9uIG9mIHRoZSB0YWJsZSAoYW5kIGEgYml0IHRvIGVpdGhlciBzaWRlIHRvIG1ha2UKICogdGhlIHNjcm9sbGluZyBzbW9vdGgpIGlzIGRyYXduLCB3aGlsZSB0aGUgc2Nyb2xsaW5nIGNvbnRhaW5lciBnaXZlcyB0aGUgCiAqIHZpc3VhbCBpbXByZXNzaW9uIHRoYXQgdGhlIHdob2xlIHRhYmxlIGlzIHZpc2libGUuIFRoaXMgaXMgZG9uZSBieSBtYWtpbmcgdXNlCiAqIG9mIHRoZSBwYWdpbmF0aW9uIGFiaWxpdGllcyBvZiBEYXRhVGFibGVzIGFuZCBtb3ZpbmcgdGhlIHRhYmxlIGFyb3VuZCBpbiB0aGUKICogc2Nyb2xsaW5nIGNvbnRhaW5lciBEYXRhVGFibGVzIGFkZHMgdG8gdGhlIHBhZ2UuIFRoZSBzY3JvbGxpbmcgY29udGFpbmVyIGlzCiAqIGZvcmNlZCB0byB0aGUgaGVpZ2h0IGl0IHdvdWxkIGJlIGZvciB0aGUgZnVsbCB0YWJsZSBkaXNwbGF5IHVzaW5nIGFuIGV4dHJhIAogKiBlbGVtZW50LiAKICogCiAqIE5vdGUgdGhhdCByb3dzIGluIHRoZSB0YWJsZSBNVVNUIGFsbCBiZSB0aGUgc2FtZSBoZWlnaHQuIEluZm9ybWF0aW9uIGluIGEgY2VsbAogKiB3aGljaCBleHBhbmRzIG9uIHRvIG11bHRpcGxlIGxpbmVzIHdpbGwgY2F1c2Ugc29tZSBvZGQgYmVoYXZpb3VyIGluIHRoZSBzY3JvbGxpbmcuCiAqCiAqIFNjcm9sbGVyIGlzIGluaXRpYWxpc2VkIGJ5IHNpbXBseSBpbmNsdWRpbmcgdGhlIGxldHRlciAnUycgaW4gdGhlIHNEb20gZm9yIHRoZQogKiB0YWJsZSB5b3Ugd2FudCB0byBoYXZlIHRoaXMgZmVhdHVyZSBlbmFibGVkIG9uLiBOb3RlIHRoYXQgdGhlICdTJyBtdXN0IGNvbWUKICogQUZURVIgdGhlICd0JyBwYXJhbWV0ZXIgaW4gc0RvbS4KICogCiAqIEtleSBmZWF0dXJlcyBpbmNsdWRlOgogKiAgIDx1bCBjbGFzcz0ibGltaXRfbGVuZ3RoIj4KICogICAgIDxsaT5TcGVlZCEgVGhlIGFpbSBvZiBTY3JvbGxlciBmb3IgRGF0YVRhYmxlcyBpcyB0byBtYWtlIHJlbmRlcmluZyBsYXJnZSBkYXRhIHNldHMgZmFzdDwvbGk+CiAqICAgICA8bGk+RnVsbCBjb21wYXRpYmlsaXR5IHdpdGggZGVmZXJyZWQgcmVuZGVyaW5nIGluIERhdGFUYWJsZXMgMS45IGZvciBtYXhpbXVtIHNwZWVkPC9saT4KICogICAgIDxsaT5Db3JyZWN0IHZpc3VhbCBzY3JvbGxpbmcgaW1wbGVtZW50YXRpb24sIHNpbWlsYXIgdG8gImluZmluaXRlIHNjcm9sbGluZyIgaW4gRGF0YVRhYmxlIGNvcmU8L2xpPgogKiAgICAgPGxpPkludGVncmF0aW9uIHdpdGggc3RhdGUgc2F2aW5nIGluIERhdGFUYWJsZXMgKHNjcm9sbGluZyBwb3NpdGlvbiBpcyBzYXZlZCk8L2xpPgogKiAgICAgPGxpPkVhc3kgdG8gdXNlPC9saT4KICogICA8L3VsPgogKgogKiAgQGNsYXNzCiAqICBAY29uc3RydWN0b3IKICogIEBwYXJhbSB7b2JqZWN0fSBvRFQgRGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKICogIEBwYXJhbSB7b2JqZWN0fSBbb09wdHM9e31dIENvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciBGaXhlZENvbHVtbnMuIE9wdGlvbnMgYXJlIGRlZmluZWQgYnkge0BsaW5rIFNjcm9sbGVyLm9EZWZhdWx0c30KICogCiAqICBAcmVxdWlyZXMgalF1ZXJ5IDEuNCsKICogIEByZXF1aXJlcyBEYXRhVGFibGVzIDEuOS4wKwogKiAKICogIEBleGFtcGxlCiAqIAkJJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CiAqIAkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CiAqIAkJCQkic1Njcm9sbFkiOiAiMjAwcHgiLAogKiAJCQkJInNBamF4U291cmNlIjogIm1lZGlhL2RhdGFzZXQvbGFyZ2UudHh0IiwKICogCQkJCSJzRG9tIjogImZydGlTIiwKICogCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlCiAqIAkJCX0gKTsKICogCQl9ICk7CiAqLwp2YXIgU2Nyb2xsZXIgPSBmdW5jdGlvbiAoIG9EVFNldHRpbmdzLCBvT3B0cyApIHsKCS8qIFNhbml0eSBjaGVjayAtIHlvdSBqdXN0IGtub3cgaXQgd2lsbCBoYXBwZW4gKi8KCWlmICggISB0aGlzIGluc3RhbmNlb2YgU2Nyb2xsZXIgKQoJewoJCWFsZXJ0KCAiU2Nyb2xsZXIgd2FybmluZzogU2Nyb2xsZXIgbXVzdCBiZSBpbml0aWFsaXNlZCB3aXRoIHRoZSAnbmV3JyBrZXl3b3JkLiIgKTsKCQlyZXR1cm47Cgl9CgkKCWlmICggdHlwZW9mIG9PcHRzID09ICd1bmRlZmluZWQnICkKCXsKCQlvT3B0cyA9IHt9OwoJfQoJCgkvKioKCSAqIFNldHRpbmdzIG9iamVjdCB3aGljaCBjb250YWlucyBjdXN0b21pc2FibGUgaW5mb3JtYXRpb24gZm9yIHRoZSBTY3JvbGxlciBpbnN0YW5jZQoJICogQG5hbWVzcGFjZQoJICogQGV4dGVuZHMgU2Nyb2xsZXIuREVGQVVMVFMKCSAqLwoJdGhpcy5zID0gewoJCS8qKiAKCQkgKiBEYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAoJCSAqICBAdHlwZSAgICAgb2JqZWN0CgkJICogIEBkZWZhdWx0ICBQYXNzZWQgaW4gYXMgZmlyc3QgcGFyYW1ldGVyIHRvIGNvbnN0cnVjdG9yCgkJICovCgkJImR0Ijogb0RUU2V0dGluZ3MsCgkJCgkJLyoqIAoJCSAqIFBpeGVsIGxvY2F0aW9uIG9mIHRoZSB0b3Agb2YgdGhlIGRyYXduIHRhYmxlIGluIHRoZSB2aWV3cG9ydAoJCSAqICBAdHlwZSAgICAgaW50CgkJICogIEBkZWZhdWx0ICAwCgkJICovCgkJInRhYmxlVG9wIjogMCwKCQkKCQkvKiogCgkJICogUGl4ZWwgbG9jYXRpb24gb2YgdGhlIGJvdHRvbSBvZiB0aGUgZHJhd24gdGFibGUgaW4gdGhlIHZpZXdwb3J0CgkJICogIEB0eXBlICAgICBpbnQKCQkgKiAgQGRlZmF1bHQgIDAKCQkgKi8KCQkidGFibGVCb3R0b20iOiAwLAoJCQoJCS8qKiAKCQkgKiBQaXhlbCBsb2NhdGlvbiBvZiB0aGUgYm91bmRhcnkgZm9yIHdoZW4gdGhlIG5leHQgZGF0YSBzZXQgc2hvdWxkIGJlIGxvYWRlZCBhbmQgZHJhd24KCQkgKiB3aGVuIHNjcm9sbGluZyB1cCB0aGUgd2F5LgoJCSAqICBAdHlwZSAgICAgaW50CgkJICogIEBkZWZhdWx0ICAwCgkJICogIEBwcml2YXRlCgkJICovCgkJInJlZHJhd1RvcCI6IDAsCgkJCgkJLyoqIAoJCSAqIFBpeGVsIGxvY2F0aW9uIG9mIHRoZSBib3VuZGFyeSBmb3Igd2hlbiB0aGUgbmV4dCBkYXRhIHNldCBzaG91bGQgYmUgbG9hZGVkIGFuZCBkcmF3bgoJCSAqIHdoZW4gc2Nyb2xsaW5nIGRvd24gdGhlIHdheS4gTm90ZSB0aGF0IHRoaXMgaXMgYWN0dWFsbHkgY2FsdWF0ZWQgYXMgdGhlIG9mZnNldCBmcm9tCgkJICogdGhlIHRvcC4KCQkgKiAgQHR5cGUgICAgIGludAoJCSAqICBAZGVmYXVsdCAgMAoJCSAqICBAcHJpdmF0ZQoJCSAqLwoJCSJyZWRyYXdCb3R0b20iOiAwLAoJCQoJCS8qKiAKCQkgKiBIZWlnaHQgb2Ygcm93cyBpbiB0aGUgdGFibGUKCQkgKiAgQHR5cGUgICAgIGludAoJCSAqICBAZGVmYXVsdCAgMAoJCSAqLwoJCSJyb3dIZWlnaHQiOiBudWxsLAoJCQoJCS8qKiAKCQkgKiBBdXRvIHJvdyBoZWlnaHQgb3Igbm90IGluZGljYXRvcgoJCSAqICBAdHlwZSAgICAgYm9vbAoJCSAqICBAZGVmYXVsdCAgMAoJCSAqLwoJCSJhdXRvSGVpZ2h0IjogdHJ1ZSwKCQkKCQkvKiogCgkJICogUGl4ZWwgaGVpZ2h0IG9mIHRoZSB2aWV3cG9ydAoJCSAqICBAdHlwZSAgICAgaW50CgkJICogIEBkZWZhdWx0ICAwCgkJICovCgkJInZpZXdwb3J0SGVpZ2h0IjogMCwKCQkKCQkvKiogCgkJICogTnVtYmVyIG9mIHJvd3MgY2FsY3VsYXRlZCBhcyB2aXNpYmxlIGluIHRoZSB2aXNpYmxlIHZpZXdwb3J0CgkJICogIEB0eXBlICAgICBpbnQKCQkgKiAgQGRlZmF1bHQgIDAKCQkgKi8KCQkidmlld3BvcnRSb3dzIjogMCwKCQkKCQkvKiogCgkJICogc2V0VGltZW91dCByZWZlcmVuY2UgZm9yIHN0YXRlIHNhdmluZywgdXNlZCB3aGVuIHN0YXRlIHNhdmluZyBpcyBlbmFibGVkIGluIHRoZSBEYXRhVGFibGUKCQkgKiBhbmQgd2hlbiB0aGUgdXNlciBzY3JvbGxzIHRoZSB2aWV3cG9ydCBpbiBvcmRlciB0byBzdG9wIHRoZSBjb29raWUgc2V0IHRha2luZyB0b28gbXVjaAoJCSAqIENQVSEKCQkgKiAgQHR5cGUgICAgIGludAoJCSAqICBAZGVmYXVsdCAgMAoJCSAqLwoJCSJzdGF0ZVRPIjogbnVsbCwKCQkKCQkvKiogCgkJICogc2V0VGltZW91dCByZWZlcmVuY2UgZm9yIHRoZSByZWRyYXcsIHVzZWQgd2hlbiBzZXJ2ZXItc2lkZSBwcm9jZXNzaW5nIGlzIGVuYWJsZWQgaW4gdGhlCgkJICogRGF0YVRhYmxlcyBpbiBvcmRlciB0byBwcmV2ZW50IERvU2luZyB0aGUgc2VydmVyCgkJICogIEB0eXBlICAgICBpbnQKCQkgKiAgQGRlZmF1bHQgIG51bGwKCQkgKi8KCQkiZHJhd1RPIjogbnVsbAoJfTsKCXRoaXMucyA9ICQuZXh0ZW5kKCB0aGlzLnMsIFNjcm9sbGVyLm9EZWZhdWx0cywgb09wdHMgKTsKCQoJLyoqCgkgKiBET00gZWxlbWVudHMgdXNlZCBieSB0aGUgY2xhc3MgaW5zdGFuY2UKCSAqIEBuYW1lc3BhY2UKCSAqIAoJICovCgl0aGlzLmRvbSA9IHsKCQkiZm9yY2UiOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSwKCQkic2Nyb2xsZXIiOiBudWxsLAoJCSJ0YWJsZSI6IG51bGwKCX07CgoJLyogQXR0YWNoIHRoZSBpbnN0YW5jZSB0byB0aGUgRGF0YVRhYmxlcyBpbnN0YW5jZSBzbyBpdCBjYW4gYmUgYWNjZXNzZWQgKi8KCXRoaXMucy5kdC5vU2Nyb2xsZXIgPSB0aGlzOwoJCgkvKiBMZXQncyBkbyBpdCAqLwoJdGhpcy5fZm5Db25zdHJ1Y3QoKTsKfTsKCgoKU2Nyb2xsZXIucHJvdG90eXBlID0gewoJLyogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKgoJICogUHVibGljIG1ldGhvZHMKCSAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICovCgkKCS8qKgoJICogQ2FsY3VsYXRlIHRoZSBwaXhlbCBwb3NpdGlvbiBmcm9tIHRoZSB0b3Agb2YgdGhlIHNjcm9sbGluZyBjb250YWluZXIgZm9yIGEgZ2l2ZW4gcm93CgkgKiAgQHBhcmFtIHtpbnR9IGlSb3cgUm93IG51bWJlciB0byBjYWxjdWxhdGUgdGhlIHBvc2l0aW9uIG9mCgkgKiAgQHJldHVybnMge2ludH0gUGl4ZWxzCgkgKiAgQGV4YW1wbGUKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgewoJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogICAgICAgICJzU2Nyb2xsWSI6ICIyMDBweCIsCgkgKiAgICAgICAgInNBamF4U291cmNlIjogIm1lZGlhL2RhdGFzZXQvbGFyZ2UudHh0IiwKCSAqICAgICAgICAic0RvbSI6ICJmcnRpUyIsCgkgKiAgICAgICAgImJEZWZlclJlbmRlciI6IHRydWUsCgkgKiAgICAgICAgImZuSW5pdENvbXBsZXRlIjogZnVuY3Rpb24gKG8pIHsKCSAqICAgICAgICAgIC8vIEZpbmQgd2hlcmUgcm93IDI1IGlzCgkgKiAgICAgICAgICBhbGVydCggby5vU2Nyb2xsZXIuZm5Sb3dUb1BpeGVscyggMjUgKSApOwoJICogICAgICAgIH0KCSAqICAgICAgfSApOwoJICogICAgfSApOwoJICovCgkiZm5Sb3dUb1BpeGVscyI6IGZ1bmN0aW9uICggaVJvdyApCgl7CgkJcmV0dXJuIGlSb3cgKiB0aGlzLnMucm93SGVpZ2h0OwoJfSwKCgoJLyoqCgkgKiBDYWxjdWxhdGUgdGhlIHJvdyBudW1iZXIgdGhhdCB3aWxsIGJlIGZvdW5kIGF0IHRoZSBnaXZlbiBwaXhlbCBwb3NpdGlvbiAoeS1zY3JvbGwpCgkgKiAgQHBhcmFtIHtpbnR9IGlQaXhlbHMgT2Zmc2V0IGZyb20gdG9wIHRvIGNhbHVjbGF0ZSB0aGUgcm93IG51bWJlciBvZgoJICogIEByZXR1cm5zIHtpbnR9IFJvdyBpbmRleAoJICogIEBleGFtcGxlCgkgKiAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAic1Njcm9sbFkiOiAiMjAwcHgiLAoJICogICAgICAgICJzQWpheFNvdXJjZSI6ICJtZWRpYS9kYXRhc2V0L2xhcmdlLnR4dCIsCgkgKiAgICAgICAgInNEb20iOiAiZnJ0aVMiLAoJICogICAgICAgICJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJICogICAgICAgICJmbkluaXRDb21wbGV0ZSI6IGZ1bmN0aW9uIChvKSB7CgkgKiAgICAgICAgICAvLyBGaW5kIHdoYXQgcm93IG51bWJlciBpcyBhdCA1MDBweAoJICogICAgICAgICAgYWxlcnQoIG8ub1Njcm9sbGVyLmZuUGl4ZWxzVG9Sb3coIDUwMCApICk7CgkgKiAgICAgICAgfQoJICogICAgICB9ICk7CgkgKiAgICB9ICk7CgkgKi8KCSJmblBpeGVsc1RvUm93IjogZnVuY3Rpb24gKCBpUGl4ZWxzICkKCXsKCQlyZXR1cm4gcGFyc2VJbnQoIGlQaXhlbHMgLyB0aGlzLnMucm93SGVpZ2h0LCAxMCApOwoJfSwKCgoJLyoqCgkgKiBDYWxjdWxhdGUgdGhlIHJvdyBudW1iZXIgdGhhdCB3aWxsIGJlIGZvdW5kIGF0IHRoZSBnaXZlbiBwaXhlbCBwb3NpdGlvbiAoeS1zY3JvbGwpCgkgKiAgQHBhcmFtIHtpbnR9IGlSb3cgUm93IGluZGV4IHRvIHNjcm9sbCB0bwoJICogIEBwYXJhbSB7Ym9vbH0gW2JBbmltYXRlPXRydWVdIEFuaW1hdGUgdGhlIHRyYW5zaXNpb24gb3Igbm90IAoJICogIEByZXR1cm5zIHt2b2lkfQoJICogIEBleGFtcGxlCgkgKiAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAic1Njcm9sbFkiOiAiMjAwcHgiLAoJICogICAgICAgICJzQWpheFNvdXJjZSI6ICJtZWRpYS9kYXRhc2V0L2xhcmdlLnR4dCIsCgkgKiAgICAgICAgInNEb20iOiAiZnJ0aVMiLAoJICogICAgICAgICJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJICogICAgICAgICJmbkluaXRDb21wbGV0ZSI6IGZ1bmN0aW9uIChvKSB7CgkgKiAgICAgICAgICAvLyBJbW1lZGlhdGVseSBzY3JvbGwgdG8gcm93IDEwMDAKCSAqICAgICAgICAgIG8ub1Njcm9sbGVyLmZuU2Nyb2xsVG9Sb3coIDEwMDAgKTsKCSAqICAgICAgICB9CgkgKiAgICAgIH0gKTsKCSAqICAgICAgCgkgKiAgICAgIC8vIFNvbWV0aW1lIGxhdGVyIG9uIHVzZSB0aGUgZm9sbG93aW5nIHRvIHNjcm9sbCB0byByb3cgNTAwLi4uCgkgKiAgICAgICAgICB2YXIgb1NldHRpbmdzID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKS5mblNldHRpbmdzKCk7CgkgKiAgICAgIG9TZXR0aW5ncy5vU2Nyb2xsZXIuZm5TY3JvbGxUb1JvdyggNTAwICk7CgkgKiAgICB9ICk7CgkgKi8KCSJmblNjcm9sbFRvUm93IjogZnVuY3Rpb24gKCBpUm93LCBiQW5pbWF0ZSApCgl7CgkJdmFyIHB4ID0gdGhpcy5mblJvd1RvUGl4ZWxzKCBpUm93ICk7CgkJaWYgKCB0eXBlb2YgYkFuaW1hdGUgPT0gJ3VuZGVmaW5lZCcgfHwgYkFuaW1hdGUgKQoJCXsKCQkJJCh0aGlzLmRvbS5zY3JvbGxlcikuYW5pbWF0ZSggewoJCQkJInNjcm9sbFRvcCI6IHB4CgkJCX0gKTsKCQl9CgkJZWxzZQoJCXsKCQkJJCh0aGlzLmRvbS5zY3JvbGxlcikuc2Nyb2xsVG9wKCBweCApOwoJCX0KCX0sCgkKCQoJLyoqCgkgKiBDYWxjdWxhdGUgYW5kIHN0b3JlIGluZm9ybWF0aW9uIGFib3V0IGhvdyBtYW55IHJvd3MgYXJlIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgc2Nyb2xsaW5nCgkgKiB2aWV3cG9ydCwgYmFzZWQgb24gY3VycmVudCBkaW1lbnNpb25zIGluIHRoZSBicm93c2VyJ3MgcmVuZGVyaW5nLiBUaGlzIGNhbiBiZSBwYXJ0aWN1bGFybHkKCSAqIHVzZWZ1bCBpZiB0aGUgdGFibGUgaXMgaW5pdGlhbGx5IGRyYXduIGluIGEgaGlkZGVuIGVsZW1lbnQgLSBmb3IgZXhhbXBsZSBpbiBhIHRhYi4KCSAqICBAcGFyYW0ge2Jvb2x9IFtiUmVkcmF3PXRydWVdIFJlZHJhdyB0aGUgdGFibGUgYXV0b21hdGljYWxseSBhZnRlciB0aGUgcmVjYWxjdWxhdGlvbiwgd2l0aAoJICogICAgdGhlIG5ldyBkaW1lbnRpb25zIGZvcm1pbmcgdGhlIGJhc2lzIGZvciB0aGUgZHJhdy4gCgkgKiAgQHJldHVybnMge3ZvaWR9CgkgKiAgQGV4YW1wbGUKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgewoJICogICAgICAvLyBNYWtlIHRoZSBleGFtcGxlIGNvbnRhaW5lciBoaWRkZW4gdG8gdGhyb3cgb2ZmIHRoZSBicm93c2VyJ3Mgc2l6aW5nCgkgKiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwoJICogICAgICB2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAic1Njcm9sbFkiOiAiMjAwcHgiLAoJICogICAgICAgICJzQWpheFNvdXJjZSI6ICJtZWRpYS9kYXRhc2V0L2xhcmdlLnR4dCIsCgkgKiAgICAgICAgInNEb20iOiAiZnJ0aVMiLAoJICogICAgICAgICJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJICogICAgICAgICJmbkluaXRDb21wbGV0ZSI6IGZ1bmN0aW9uIChvKSB7CgkgKiAgICAgICAgICAvLyBJbW1lZGlhdGVseSBzY3JvbGwgdG8gcm93IDEwMDAKCSAqICAgICAgICAgIG8ub1Njcm9sbGVyLmZuU2Nyb2xsVG9Sb3coIDEwMDAgKTsKCSAqICAgICAgICB9CgkgKiAgICAgIH0gKTsKCSAqICAgICAgCgkgKiAgICAgIHNldFRpbWVvdXQoIGZ1bmN0aW9uICgpIHsKCSAqICAgICAgICAvLyBNYWtlIHRoZSBleGFtcGxlIGNvbnRhaW5lciB2aXNpYmxlIGFuZCByZWNhbGN1bGF0ZSB0aGUgc2Nyb2xsZXIgc2l6ZXMKCSAqICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJykuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CgkgKiAgICAgICAgb1RhYmxlLmZuU2V0dGluZ3MoKS5vU2Nyb2xsZXIuZm5NZWFzdXJlKCk7CgkgKiAgICAgIH0sIDMwMDAgKTsKCSAqLwoJImZuTWVhc3VyZSI6IGZ1bmN0aW9uICggYlJlZHJhdyApCgl7CgkJaWYgKCB0aGlzLnMuYXV0b0hlaWdodCApCgkJewoJCQl0aGlzLl9mbkNhbGNSb3dIZWlnaHQoKTsKCQl9CgoJCXRoaXMucy52aWV3cG9ydEhlaWdodCA9ICQodGhpcy5kb20uc2Nyb2xsZXIpLmhlaWdodCgpOwoJCXRoaXMucy52aWV3cG9ydFJvd3MgPSBwYXJzZUludCggdGhpcy5zLnZpZXdwb3J0SGVpZ2h0L3RoaXMucy5yb3dIZWlnaHQsIDEwICkrMTsKCQl0aGlzLnMuZHQuX2lEaXNwbGF5TGVuZ3RoID0gdGhpcy5zLnZpZXdwb3J0Um93cyAqIHRoaXMucy5kaXNwbGF5QnVmZmVyOwoJCQoJCWlmICggdGhpcy5zLnRyYWNlICkKCQl7CgkJCQljb25zb2xlLmxvZygKCQkJCQknUm93IGhlaWdodDogJyt0aGlzLnMucm93SGVpZ2h0ICsnICcrCgkJCQkJJ1ZpZXdwb3J0IGhlaWdodDogJyt0aGlzLnMudmlld3BvcnRIZWlnaHQgKycgJysKCQkJCQknVmlld3BvcnQgcm93czogJysgdGhpcy5zLnZpZXdwb3J0Um93cyArJyAnKwoJCQkJCSdEaXNwbGF5IHJvd3M6ICcrIHRoaXMucy5kdC5faURpc3BsYXlMZW5ndGgKCQkJCSk7CgkJfQoJCQoJCWlmICggdHlwZW9mIGJSZWRyYXcgPT0gJ3VuZGVmaW5lZCcgfHwgYlJlZHJhdyApCgkJewoJCQl0aGlzLnMuZHQub0luc3RhbmNlLmZuRHJhdygpOwoJCX0KCX0sCgkKCQoJCgkvKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqCgkgKiBQcml2YXRlIG1ldGhvZHMgKHRoZXkgYXJlIG9mIGNvdXJzZSBwdWJsaWMgaW4gSlMsIGJ1dCByZWNvbW1lbmRlZCBhcyBwcml2YXRlKQoJICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKi8KCQoJLyoqCgkgKiBJbml0aWFsaXNhdGlvbiBmb3IgU2Nyb2xsZXIKCSAqICBAcmV0dXJucyB7dm9pZH0KCSAqICBAcHJpdmF0ZQoJICovCgkiX2ZuQ29uc3RydWN0IjogZnVuY3Rpb24gKCkKCXsKCQl2YXIgdGhhdCA9IHRoaXM7CgoJCS8qIEluc2VydCBhIGRpdiBlbGVtZW50IHRoYXQgd2UgY2FuIHVzZSB0byBmb3JjZSB0aGUgRFQgc2Nyb2xsaW5nIGNvbnRhaW5lciB0bwoJCSAqIHRoZSBoZWlnaHQgdGhhdCB3b3VsZCBiZSByZXF1aXJlZCBpZiB0aGUgd2hvbGUgdGFibGUgd2FzIGJlaW5nIGRpc3BsYXllZAoJCSAqLwoJCXRoaXMuZG9tLmZvcmNlLnN0eWxlLnBvc2l0aW9uID0gImFic29sdXRlIjsKCQl0aGlzLmRvbS5mb3JjZS5zdHlsZS50b3AgPSAiMHB4IjsKCQl0aGlzLmRvbS5mb3JjZS5zdHlsZS5sZWZ0ID0gIjBweCI7CgkJdGhpcy5kb20uZm9yY2Uuc3R5bGUud2lkdGggPSAiMXB4IjsKCgkJdGhpcy5kb20uc2Nyb2xsZXIgPSAkKCdkaXYuJyt0aGlzLnMuZHQub0NsYXNzZXMuc1Njcm9sbEJvZHksIHRoaXMucy5kdC5uVGFibGVXcmFwcGVyKVswXTsKCQl0aGlzLmRvbS5zY3JvbGxlci5hcHBlbmRDaGlsZCggdGhpcy5kb20uZm9yY2UgKTsKCQl0aGlzLmRvbS5zY3JvbGxlci5zdHlsZS5wb3NpdGlvbiA9ICJyZWxhdGl2ZSI7CgoJCXRoaXMuZG9tLnRhYmxlID0gJCgnPnRhYmxlJywgdGhpcy5kb20uc2Nyb2xsZXIpWzBdOwoJCXRoaXMuZG9tLnRhYmxlLnN0eWxlLnBvc2l0aW9uID0gImFic29sdXRlIjsKCQl0aGlzLmRvbS50YWJsZS5zdHlsZS50b3AgPSAiMHB4IjsKCQl0aGlzLmRvbS50YWJsZS5zdHlsZS5sZWZ0ID0gIjBweCI7CgoJCS8vIEFkZCBjbGFzcyB0byAnYW5ub3VuY2UnIHRoYXQgd2UgYXJlIGEgU2Nyb2xsZXIgdGFibGUKCQkkKHRoaXMucy5kdC5uVGFibGVXcmFwcGVyKS5hZGRDbGFzcygnRFRTJyk7CgoJCS8vIEFkZCBhICdsb2FkaW5nJyBpbmRpY2F0b3IKCQlpZiAoIHRoaXMucy5sb2FkaW5nSW5kaWNhdG9yICkKCQl7CgkJCSQodGhpcy5kb20uc2Nyb2xsZXIucGFyZW50Tm9kZSkKCQkJCS5jc3MoJ3Bvc2l0aW9uJywgJ3JlbGF0aXZlJykKCQkJCS5hcHBlbmQoJzxkaXYgY2xhc3M9IkRUU19Mb2FkaW5nIj4nK3RoaXMucy5kdC5vTGFuZ3VhZ2Uuc0xvYWRpbmdSZWNvcmRzKyc8L2Rpdj4nKTsKCQl9CgoJCS8qIEluaXRpYWwgc2l6ZSBjYWxjdWxhdGlvbnMgKi8KCQlpZiAoIHRoaXMucy5yb3dIZWlnaHQgJiYgdGhpcy5zLnJvd0hlaWdodCAhPSAnYXV0bycgKQoJCXsKCQkJdGhpcy5zLmF1dG9IZWlnaHQgPSBmYWxzZTsKCQl9CgkJdGhpcy5mbk1lYXN1cmUoIGZhbHNlICk7CgoJCS8qIFNjcm9sbGluZyBjYWxsYmFjayB0byBzZWUgaWYgYSBwYWdlIGNoYW5nZSBpcyBuZWVkZWQgKi8KCQkkKHRoaXMuZG9tLnNjcm9sbGVyKS5zY3JvbGwoIGZ1bmN0aW9uICgpIHsKCQkJdGhhdC5fZm5TY3JvbGwuY2FsbCggdGhhdCApOwoJCX0gKTsKCgkJLyogSW4gaU9TIHdlIGNhdGNoIHRoZSB0b3VjaHN0YXJ0IGV2ZW50IGluY2FzZSB0aGUgdXNlciB0cmllcyB0byBzY3JvbGwKCQkgKiB3aGlsZSB0aGUgZGlzcGxheSBpcyBhbHJlYWR5IHNjcm9sbGluZwoJCSAqLwoJCSQodGhpcy5kb20uc2Nyb2xsZXIpLmJpbmQoJ3RvdWNoc3RhcnQnLCBmdW5jdGlvbiAoKSB7CgkJCXRoYXQuX2ZuU2Nyb2xsLmNhbGwoIHRoYXQgKTsKCQl9ICk7CgkJCgkJLyogVXBkYXRlIHRoZSBzY3JvbGxlciB3aGVuIHRoZSBEYXRhVGFibGUgaXMgcmVkcmF3biAqLwoJCXRoaXMucy5kdC5hb0RyYXdDYWxsYmFjay5wdXNoKCB7CgkJCSJmbiI6IGZ1bmN0aW9uICgpIHsKCQkJCWlmICggdGhhdC5zLmR0LmJJbml0aWFsaXNlZCApIHsKCQkJCQl0aGF0Ll9mbkRyYXdDYWxsYmFjay5jYWxsKCB0aGF0ICk7CgkJCQl9CgkJCX0sCgkJCSJzTmFtZSI6ICJTY3JvbGxlciIKCQl9ICk7CgkJCgkJLyogQWRkIGEgc3RhdGUgc2F2aW5nIHBhcmFtZXRlciB0byB0aGUgRFQgc3RhdGUgc2F2aW5nIHNvIHdlIGNhbiByZXN0b3JlIHRoZSBleGFjdAoJCSAqIHBvc2l0aW9uIG9mIHRoZSBzY3JvbGxpbmcKCQkgKi8KCQl0aGlzLnMuZHQub0FwaS5fZm5DYWxsYmFja1JlZyggdGhpcy5zLmR0LCAnYW9TdGF0ZVNhdmVQYXJhbXMnLCBmdW5jdGlvbiAob1MsIG9EYXRhKSB7CgkJCW9EYXRhLmlTY3JvbGxlciA9IHRoYXQuZG9tLnNjcm9sbGVyLnNjcm9sbFRvcDsKCQl9LCAiU2Nyb2xsZXJfU3RhdGUiICk7Cgl9LAoKCgkvKioKCSAqIFNjcm9sbGluZyBmdW5jdGlvbiAtIGZpcmVkIHdoZW5ldmVyIHRoZSBzY3JvbGxpbmcgcG9zaXRpb24gaXMgY2hhbmdlZC4gVGhpcyBtZXRob2QgbmVlZHMKCSAqIHRvIHVzZSB0aGUgc3RvcmVkIHZhbHVlcyB0byBzZWUgaWYgdGhlIHRhYmxlIHNob3VsZCBiZSByZWRyYXduIGFzIHdlIGFyZSBtb3ZpbmcgdG93YXJkcwoJICogdGhlIGVuZCBvZiB0aGUgaW5mb3JtYXRpb24gdGhhdCBpcyBjdXJyZW50bHkgZHJhd24gb3Igbm90LiBJZiBuZWVkZWQsIHRoZW4gaXQgd2lsbCByZWRyYXcKCSAqIHRoZSB0YWJsZSBiYXNlZCBvbiB0aGUgbmV3IHBvc2l0aW9uLgoJICogIEByZXR1cm5zIHt2b2lkfQoJICogIEBwcml2YXRlCgkgKi8KCSJfZm5TY3JvbGwiOiBmdW5jdGlvbiAoKQoJewoJCXZhciAKCQkJdGhhdCA9IHRoaXMsCgkJCWlTY3JvbGxUb3AgPSB0aGlzLmRvbS5zY3JvbGxlci5zY3JvbGxUb3AsCgkJCWlUb3BSb3c7CgoJCS8qIElmIHRoZSB0YWJsZSBoYXMgYmVlbiBzb3J0ZWQgb3IgZmlsdGVyZWQsIHRoZW4gd2UgdXNlIHRoZSByZWRyYXcgdGhhdAoJCSAqIERhdGFUYWJsZXMgYXMgZG9uZSwgcmF0aGVyIHRoYW4gcGVyZm9ybWluZyBvdXIgb3duCgkJICovCgkJaWYgKCB0aGlzLnMuZHQuYkZpbHRlcmVkIHx8IHRoaXMucy5kdC5iU29ydGVkICkKCQl7CgkJCXJldHVybjsKCQl9CgoJCWlmICggdGhpcy5zLnRyYWNlICkKCQl7CgkJCWNvbnNvbGUubG9nKAoJCQkJJ1Njcm9sbDogJytpU2Nyb2xsVG9wKydweCAtIGJvdW5kYXJpZXM6ICcrdGhpcy5zLnJlZHJhd1RvcCsnIC8gJyt0aGlzLnMucmVkcmF3Qm90dG9tKycuICcrCgkJCQknIFNob3dpbmcgcm93cyAnK3RoaXMuZm5QaXhlbHNUb1JvdyhpU2Nyb2xsVG9wKSsKCQkJCScgdG8gJyt0aGlzLmZuUGl4ZWxzVG9Sb3coaVNjcm9sbFRvcCskKHRoaXMuZG9tLnNjcm9sbGVyKS5oZWlnaHQoKSkrCgkJCQknIGluIHRoZSB2aWV3cG9ydCwgd2l0aCByb3dzICcrdGhpcy5zLmR0Ll9pRGlzcGxheVN0YXJ0KwoJCQkJJyB0byAnKyh0aGlzLnMuZHQuX2lEaXNwbGF5RW5kKSsnIHJlbmRlcmVkIGJ5IHRoZSBEYXRhVGFibGUnCgkJCSk7CgkJfQoKCQkvKiBVcGRhdGUgdGhlIHRhYmxlJ3MgaW5mb3JtYXRpb24gZGlzcGxheSBmb3Igd2hhdCBpcyBub3cgaW4gdGhlIHZpZXdwb3J0ICovCgkJdGhpcy5fZm5JbmZvKCk7CgoJCS8qIFdlIGRvbnQnIHdhbnQgdG8gc3RhdGUgc2F2ZSBvbiBldmVyeSBzY3JvbGwgZXZlbnQgLSB0aGF0J3MgaGVhdnkgaGFuZGVkLCBzbwoJCSAqIHVzZSBhIHRpbWVvdXQgdG8gdXBkYXRlIHRoZSBzdGF0ZSBzYXZpbmcgb25seSB3aGVuIHRoZSBzY3JvbGxpbmcgaGFzIGZpbmlzaGVkCgkJICovCgkJY2xlYXJUaW1lb3V0KCB0aGlzLnMuc3RhdGVUTyApOwoJCXRoaXMucy5zdGF0ZVRPID0gc2V0VGltZW91dCggZnVuY3Rpb24gKCkgewoJCQl0aGF0LnMuZHQub0FwaS5fZm5TYXZlU3RhdGUoIHRoYXQucy5kdCApOwoJCX0sIDI1MCApOwoKCQkvKiBDaGVjayBpZiB0aGUgc2Nyb2xsIHBvaW50IGlzIG91dHNpZGUgdGhlIHRyaWdnZXIgYm91bmRhcnkgd2hpY2ggd291bGQgcmVxdWlyZWQKCQkgKiBhIERhdGFUYWJsZXMgcmVkcmF3CgkJICovCgkJaWYgKCBpU2Nyb2xsVG9wIDwgdGhpcy5zLnJlZHJhd1RvcCB8fCBpU2Nyb2xsVG9wID4gdGhpcy5zLnJlZHJhd0JvdHRvbSApCgkJewoJCQl2YXIgcHJlUm93cyA9ICgodGhpcy5zLmRpc3BsYXlCdWZmZXItMSkvMikgKiB0aGlzLnMudmlld3BvcnRSb3dzOwoJCQlpVG9wUm93ID0gcGFyc2VJbnQoIGlTY3JvbGxUb3AgLyB0aGlzLnMucm93SGVpZ2h0LCAxMCApIC0gcHJlUm93czsKCQkJaWYgKCBpVG9wUm93IDwgMCApCgkJCXsKCQkJCS8qIEF0IHRoZSBzdGFydCBvZiB0aGUgdGFibGUgKi8KCQkJCWlUb3BSb3cgPSAwOwoJCQl9CgkJCWVsc2UgaWYgKCBpVG9wUm93ICsgdGhpcy5zLmR0Ll9pRGlzcGxheUxlbmd0aCA+IHRoaXMucy5kdC5mblJlY29yZHNEaXNwbGF5KCkgKQoJCQl7CgkJCQkvKiBBdCB0aGUgZW5kIG9mIHRoZSB0YWJsZSAqLwoJCQkJaVRvcFJvdyA9IHRoaXMucy5kdC5mblJlY29yZHNEaXNwbGF5KCkgLSB0aGlzLnMuZHQuX2lEaXNwbGF5TGVuZ3RoOwoJCQkJaWYgKCBpVG9wUm93IDwgMCApCgkJCQl7CgkJCQkJaVRvcFJvdyA9IDA7CgkJCQl9CgkJCX0KCQkJZWxzZSBpZiAoIGlUb3BSb3cgJSAyICE9PSAwICkKCQkJewoJCQkJLyogRm9yIHRoZSByb3ctc3RyaXBpbmcgY2xhc3NlcyAob2RkL2V2ZW4pIHdlIHdhbnQgb25seSB0byBzdGFydCBvbiBldmVucwoJCQkJICogb3RoZXJ3aXNlIHRoZSBzdHJpcGVzIHdpbGwgY2hhbmdlIGJldHdlZW4gZHJhd3MgYW5kIGxvb2sgcnViYmlzaAoJCQkJICovCgkJCQlpVG9wUm93Kys7CgkJCX0KCgkJCWlmICggaVRvcFJvdyAhPSB0aGlzLnMuZHQuX2lEaXNwbGF5U3RhcnQgKQoJCQl7CgkJCQkvKiBDYWNoZSB0aGUgbmV3IHRhYmxlIHBvc2l0aW9uIGZvciBxdWljayBsb29rdXBzICovCgkJCQl0aGlzLnMudGFibGVUb3AgPSAkKHRoaXMucy5kdC5uVGFibGUpLm9mZnNldCgpLnRvcDsKCQkJCXRoaXMucy50YWJsZUJvdHRvbSA9ICQodGhpcy5zLmR0Lm5UYWJsZSkuaGVpZ2h0KCkgKyB0aGlzLnMudGFibGVUb3A7CgkJCQkKCQkJCS8qIERvIHRoZSBEYXRhVGFibGVzIHJlZHJhdyBiYXNlZCBvbiB0aGUgY2FsY3VsYXRlZCBzdGFydCBwb2ludCAtIG5vdGUgdGhhdCB3aGVuCgkJCQkgKiB1c2luZyBzZXJ2ZXItc2lkZSBwcm9jZXNzaW5nIHdlIGludHJvZHVjZSBhIHNtYWxsIGRlbGF5IHRvIG5vdCBEb1MgdGhlIHNlcnZlci4uLgoJCQkJICovCgkJCQlpZiAoIHRoaXMucy5kdC5vRmVhdHVyZXMuYlNlcnZlclNpZGUgKSB7CgkJCQkJY2xlYXJUaW1lb3V0KCB0aGlzLnMuZHJhd1RPICk7CgkJCQkJdGhpcy5zLmRyYXdUTyA9IHNldFRpbWVvdXQoIGZ1bmN0aW9uICgpIHsKCQkJCQkJdGhhdC5zLmR0Ll9pRGlzcGxheVN0YXJ0ID0gaVRvcFJvdzsKCQkJCQkJdGhhdC5zLmR0Lm9BcGkuX2ZuQ2FsY3VsYXRlRW5kKCB0aGF0LnMuZHQgKTsKCQkJCQkJdGhhdC5zLmR0Lm9BcGkuX2ZuRHJhdyggdGhhdC5zLmR0ICk7CgkJCQkJfSwgdGhpcy5zLnNlcnZlcldhaXQgKTsKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQl0aGlzLnMuZHQuX2lEaXNwbGF5U3RhcnQgPSBpVG9wUm93OwoJCQkJCXRoaXMucy5kdC5vQXBpLl9mbkNhbGN1bGF0ZUVuZCggdGhpcy5zLmR0ICk7CgkJCQkJdGhpcy5zLmR0Lm9BcGkuX2ZuRHJhdyggdGhpcy5zLmR0ICk7CgkJCQl9CgoJCQkJaWYgKCB0aGlzLnMudHJhY2UgKQoJCQkJewoJCQkJCWNvbnNvbGUubG9nKCAnU2Nyb2xsIGZvcmNpbmcgcmVkcmF3IC0gdG9wIERUIHJlbmRlciByb3c6ICcrIGlUb3BSb3cgKTsKCQkJCX0KCQkJfQoJCX0KCX0sCgoKCS8qKgoJICogRHJhdyBjYWxsYmFjayBmdW5jdGlvbiB3aGljaCBpcyBmaXJlZCB3aGVuIHRoZSBEYXRhVGFibGUgaXMgcmVkcmF3bi4gVGhlIG1haW4gZnVuY3Rpb24gb2YKCSAqIHRoaXMgbWV0aG9kIGlzIHRvIHBvc2l0aW9uIHRoZSBkcmF3biB0YWJsZSBjb3JyZWN0bHkgdGhlIHNjcm9sbGluZyBjb250YWluZXIgZm9yIHRoZSByb3dzCgkgKiB0aGF0IGlzIGRpc3BsYXlzIGFzIGEgcmVzdWx0IG9mIHRoZSBzY3JvbGxpbmcgcG9zaXRpb24uCgkgKiAgQHJldHVybnMge3ZvaWR9CgkgKiAgQHByaXZhdGUKCSAqLwoJIl9mbkRyYXdDYWxsYmFjayI6IGZ1bmN0aW9uICgpCgl7CgkJdmFyCgkJCXRoYXQgPSB0aGlzLAoJCQlpU2Nyb2xsVG9wID0gdGhpcy5kb20uc2Nyb2xsZXIuc2Nyb2xsVG9wLAoJCQlpU2Nyb2xsQm90dG9tID0gaVNjcm9sbFRvcCArIHRoaXMucy52aWV3cG9ydEhlaWdodDsKCQkKCQkvKiBTZXQgdGhlIGhlaWdodCBvZiB0aGUgc2Nyb2xsaW5nIGZvcmNlciB0byBiZSBzdWl0YWJsZSBmb3IgdGhlIG51bWJlciBvZiByb3dzCgkJICogaW4gdGhpcyBkcmF3CgkJICovCgkJdGhpcy5kb20uZm9yY2Uuc3R5bGUuaGVpZ2h0ID0gKHRoaXMucy5yb3dIZWlnaHQgKiB0aGlzLnMuZHQuZm5SZWNvcmRzRGlzcGxheSgpKSsicHgiOwoJCQoJCS8qIENhbGN1bGF0ZSB0aGUgcG9zaXRpb24gdGhhdCB0aGUgdG9wIG9mIHRoZSB0YWJsZSBzaG91bGQgYmUgYXQgKi8KCQl2YXIgaVRhYmxlVG9wID0gKHRoaXMucy5yb3dIZWlnaHQqdGhpcy5zLmR0Ll9pRGlzcGxheVN0YXJ0KTsKCQlpZiAoIHRoaXMucy5kdC5faURpc3BsYXlTdGFydCA9PT0gMCApCgkJewoJCQlpVGFibGVUb3AgPSAwOwoJCX0KCQllbHNlIGlmICggdGhpcy5zLmR0Ll9pRGlzcGxheVN0YXJ0ID09PSB0aGlzLnMuZHQuZm5SZWNvcmRzRGlzcGxheSgpIC0gdGhpcy5zLmR0Ll9pRGlzcGxheUxlbmd0aCApCgkJewoJCQlpVGFibGVUb3AgPSB0aGlzLnMucm93SGVpZ2h0ICogdGhpcy5zLmR0Ll9pRGlzcGxheVN0YXJ0OwoJCX0KCgkJdGhpcy5kb20udGFibGUuc3R5bGUudG9wID0gaVRhYmxlVG9wKyJweCI7CgoJCS8qIENhY2hlIHNvbWUgaW5mb3JtYXRpb24gZm9yIHRoZSBzY3JvbGxlciAqLwoJCXRoaXMucy50YWJsZVRvcCA9IGlUYWJsZVRvcDsKCQl0aGlzLnMudGFibGVCb3R0b20gPSAkKHRoaXMucy5kdC5uVGFibGUpLmhlaWdodCgpICsgdGhpcy5zLnRhYmxlVG9wOwoKCQl0aGlzLnMucmVkcmF3VG9wID0gaVNjcm9sbFRvcCAtICggKGlTY3JvbGxUb3AgLSB0aGlzLnMudGFibGVUb3ApICogdGhpcy5zLmJvdW5kYXJ5U2NhbGUgKTsKCQl0aGlzLnMucmVkcmF3Qm90dG9tID0gaVNjcm9sbFRvcCArICggKHRoaXMucy50YWJsZUJvdHRvbSAtIGlTY3JvbGxCb3R0b20pICogdGhpcy5zLmJvdW5kYXJ5U2NhbGUgKTsKCgkJaWYgKCB0aGlzLnMudHJhY2UgKQoJCXsKCQkJY29uc29sZS5sb2coCgkJCQkiVGFibGUgcmVkcmF3LiBUYWJsZSB0b3A6ICIraVRhYmxlVG9wKyJweCAiKwoJCQkJIlRhYmxlIGJvdHRvbTogIit0aGlzLnMudGFibGVCb3R0b20rIiAiKwoJCQkJIlNjcm9sbCBib3VuZGFyeSB0b3A6ICIrdGhpcy5zLnJlZHJhd1RvcCsiICIrCgkJCQkiU2Nyb2xsIGJvdW5kYXJ5IGJvdHRvbTogIit0aGlzLnMucmVkcmF3Qm90dG9tKyIgIisKCQkJCSJSb3dzIGRyYXduOiAiK3RoaXMucy5kdC5faURpc3BsYXlMZW5ndGgpOwoJCX0KCgkJLyogQmVjYXVzZSBvZiB0aGUgb3JkZXIgb2YgdGhlIERUIGNhbGxiYWNrcywgdGhlIGluZm8gdXBkYXRlIHdpbGwKCQkgKiB0YWtlIHByZWNpZGVuY2Ugb3ZlciB0aGUgb25lIHdlIHdhbnQgaGVyZS4gU28gYSAndGhyZWFkJyBicmVhayBpcwoJCSAqIG5lZWRlZAoJCSAqLwoJCXNldFRpbWVvdXQoIGZ1bmN0aW9uICgpIHsKCQkJdGhhdC5fZm5JbmZvLmNhbGwoIHRoYXQgKTsKCQl9LCAwICk7CgoJCS8qIFJlc3RvcmUgdGhlIHNjcm9sbGluZyBwb3NpdGlvbiB0aGF0IHdhcyBzYXZlZCBieSBEYXRhVGFibGUncyBzdGF0ZSBzYXZpbmcKCQkgKiBOb3RlIHRoYXQgdGhpcyBpcyBkb25lIG9uIHRoZSBzZWNvbmQgZHJhdyB3aGVuIGRhdGEgaXMgQWpheCBzb3VyY2VkLCBhbmQgdGhlCgkJICogZmlyc3QgZHJhdyB3aGVuIERPTSBzb3VyZWQKCQkgKi8KCQlpZiAoIHRoaXMucy5kdC5vRmVhdHVyZXMuYlN0YXRlU2F2ZSAmJiB0aGlzLnMuZHQub0xvYWRlZFN0YXRlICE9PSBudWxsICYmCgkJCSB0eXBlb2YgdGhpcy5zLmR0Lm9Mb2FkZWRTdGF0ZS5pU2Nyb2xsZXIgIT0gJ3VuZGVmaW5lZCcgKQoJCXsKCQkJaWYgKCAodGhpcy5zLmR0LnNBamF4U291cmNlICE9PSBudWxsICYmIHRoaXMucy5kdC5pRHJhdyA9PSAyKSB8fAoJCQkgICAgICh0aGlzLnMuZHQuc0FqYXhTb3VyY2UgPT09IG51bGwgJiYgdGhpcy5zLmR0LmlEcmF3ID09IDEpICkKCQkJewoJCQkJc2V0VGltZW91dCggZnVuY3Rpb24gKCkgewoJCQkJCSQodGhhdC5kb20uc2Nyb2xsZXIpLnNjcm9sbFRvcCggdGhhdC5zLmR0Lm9Mb2FkZWRTdGF0ZS5pU2Nyb2xsZXIgKTsKCQkJCQl0aGF0LnMucmVkcmF3VG9wID0gdGhhdC5zLmR0Lm9Mb2FkZWRTdGF0ZS5pU2Nyb2xsZXIgLSAodGhhdC5zLnZpZXdwb3J0SGVpZ2h0LzIpOwoJCQkJfSwgMCApOwoJCQl9CgkJfQoJfSwKCgoJLyoqCgkgKiBBdXRvbWF0aWMgY2FsY3VsYXRpb24gb2YgdGFibGUgcm93IGhlaWdodC4gVGhpcyBpcyBqdXN0IGEgbGl0dGxlIHRyaWNreSBoZXJlIGFzIHVzaW5nCgkgKiBpbml0aWFsaXNhdGlvbiBEYXRhVGFibGVzIGhhcyB0YWxlIHRoZSB0YWJsZSBvdXQgb2YgdGhlIGRvY3VtZW50LCBzbyB3ZSBuZWVkIHRvIGNyZWF0ZQoJICogYSBuZXcgdGFibGUgYW5kIGluc2VydCBpdCBpbnRvIHRoZSBkb2N1bWVudCwgY2FsY3VsYXRlIHRoZSByb3cgaGVpZ2h0IGFuZCB0aGVuIHdoaXAgdGhlCgkgKiB0YWJsZSBvdXQuCgkgKiAgQHJldHVybnMge3ZvaWR9CgkgKiAgQHByaXZhdGUKCSAqLwoJIl9mbkNhbGNSb3dIZWlnaHQiOiBmdW5jdGlvbiAoKQoJewoJCXZhciBuVGFibGUgPSB0aGlzLnMuZHQublRhYmxlLmNsb25lTm9kZSggZmFsc2UgKTsKCQl2YXIgbkNvbnRhaW5lciA9ICQoCgkJCSc8ZGl2IGNsYXNzPSInK3RoaXMucy5kdC5vQ2xhc3Nlcy5zV3JhcHBlcisnIERUUyI+JysKCQkJCSc8ZGl2IGNsYXNzPSInK3RoaXMucy5kdC5vQ2xhc3Nlcy5zU2Nyb2xsV3JhcHBlcisnIj4nKwoJCQkJCSc8ZGl2IGNsYXNzPSInK3RoaXMucy5kdC5vQ2xhc3Nlcy5zU2Nyb2xsQm9keSsnIj48L2Rpdj4nKwoJCQkJJzwvZGl2PicrCgkJCSc8L2Rpdj4nCgkJKVswXTsKCgkJJChuVGFibGUpLmFwcGVuZCgKCQkJJzx0Ym9keT4nKwoJCQkJJzx0cj4nKwoJCQkJCSc8dGQ+Jm5ic3A7PC90ZD4nKwoJCQkJJzwvdHI+JysKCQkJJzwvdGJvZHk+JwoJCSk7CgoJCSQoJ2Rpdi4nK3RoaXMucy5kdC5vQ2xhc3Nlcy5zU2Nyb2xsQm9keSwgbkNvbnRhaW5lcikuYXBwZW5kKCBuVGFibGUgKTsKCgkJZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCggbkNvbnRhaW5lciApOwoJCXRoaXMucy5yb3dIZWlnaHQgPSAkKCd0Ym9keSB0cicsIG5UYWJsZSkub3V0ZXJIZWlnaHQoKTsKCQlkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKCBuQ29udGFpbmVyICk7Cgl9LAoKCgkvKioKCSAqIFVwZGF0ZSBhbnkgaW5mb3JtYXRpb24gZWxlbWVudHMgdGhhdCBhcmUgY29udHJvbGxlZCBieSB0aGUgRGF0YVRhYmxlIGJhc2VkIG9uIHRoZSBzY3JvbGxpbmcKCSAqIHZpZXdwb3J0IGFuZCB3aGF0IHJvd3MgYXJlIHZpc2libGUgaW4gaXQuIFRoaXMgZnVuY3Rpb24gYmFzaWNhbGx5IGFjdHMgaW4gdGhlIHNhbWUgd2F5IGFzCgkgKiBfZm5VcGRhdGVJbmZvIGluIERhdGFUYWJsZXMsIGFuZCBlZmZlY3RpdmVseSByZXBsYWNlcyB0aGF0IGZ1bmN0aW9uLgoJICogIEByZXR1cm5zIHt2b2lkfQoJICogIEBwcml2YXRlCgkgKi8KCSJfZm5JbmZvIjogZnVuY3Rpb24gKCkKCXsKCQlpZiAoICF0aGlzLnMuZHQub0ZlYXR1cmVzLmJJbmZvICkKCQl7CgkJCXJldHVybjsKCQl9CgkJCgkJdmFyCgkJCWR0ID0gdGhpcy5zLmR0LAoJCQlpU2Nyb2xsVG9wID0gdGhpcy5kb20uc2Nyb2xsZXIuc2Nyb2xsVG9wLAoJCQlpU3RhcnQgPSB0aGlzLmZuUGl4ZWxzVG9Sb3coaVNjcm9sbFRvcCkrMSwgCgkJCWlNYXggPSBkdC5mblJlY29yZHNUb3RhbCgpLAoJCQlpVG90YWwgPSBkdC5mblJlY29yZHNEaXNwbGF5KCksCgkJCWlQb3NzaWJsZUVuZCA9IHRoaXMuZm5QaXhlbHNUb1JvdyhpU2Nyb2xsVG9wKyQodGhpcy5kb20uc2Nyb2xsZXIpLmhlaWdodCgpKSwKCQkJaUVuZCA9IGlUb3RhbCA8IGlQb3NzaWJsZUVuZCA/IGlUb3RhbCA6IGlQb3NzaWJsZUVuZCwKCQkJc1N0YXJ0ID0gZHQuZm5Gb3JtYXROdW1iZXIoIGlTdGFydCApLAoJCQlzRW5kID0gZHQuZm5Gb3JtYXROdW1iZXIoIGlFbmQgKSwKCQkJc01heCA9IGR0LmZuRm9ybWF0TnVtYmVyKCBpTWF4ICksCgkJCXNUb3RhbCA9IGR0LmZuRm9ybWF0TnVtYmVyKCBpVG90YWwgKSwKCQkJc091dDsKCQkKCQlpZiAoIGR0LmZuUmVjb3Jkc0Rpc3BsYXkoKSA9PT0gMCAmJiAKCQkJICAgZHQuZm5SZWNvcmRzRGlzcGxheSgpID09IGR0LmZuUmVjb3Jkc1RvdGFsKCkgKQoJCXsKCQkJLyogRW1wdHkgcmVjb3JkIHNldCAqLwoJCQlzT3V0ID0gZHQub0xhbmd1YWdlLnNJbmZvRW1wdHkrIGR0Lm9MYW5ndWFnZS5zSW5mb1Bvc3RGaXg7CgkJfQoJCWVsc2UgaWYgKCBkdC5mblJlY29yZHNEaXNwbGF5KCkgPT09IDAgKQoJCXsKCQkJLyogUm1wdHkgcmVjb3JkIHNldCBhZnRlciBmaWx0ZXJpbmcgKi8KCQkJc091dCA9IGR0Lm9MYW5ndWFnZS5zSW5mb0VtcHR5ICsnICcrIAoJCQkJZHQub0xhbmd1YWdlLnNJbmZvRmlsdGVyZWQucmVwbGFjZSgnX01BWF8nLCBzTWF4KSsKCQkJCQlkdC5vTGFuZ3VhZ2Uuc0luZm9Qb3N0Rml4OwoJCX0KCQllbHNlIGlmICggZHQuZm5SZWNvcmRzRGlzcGxheSgpID09IGR0LmZuUmVjb3Jkc1RvdGFsKCkgKQoJCXsKCQkJLyogTm9ybWFsIHJlY29yZCBzZXQgKi8KCQkJc091dCA9IGR0Lm9MYW5ndWFnZS5zSW5mby4KCQkJCQlyZXBsYWNlKCdfU1RBUlRfJywgc1N0YXJ0KS4KCQkJCQlyZXBsYWNlKCdfRU5EXycsICAgc0VuZCkuCgkJCQkJcmVwbGFjZSgnX1RPVEFMXycsIHNUb3RhbCkrIAoJCQkJZHQub0xhbmd1YWdlLnNJbmZvUG9zdEZpeDsKCQl9CgkJZWxzZQoJCXsKCQkJLyogUmVjb3JkIHNldCBhZnRlciBmaWx0ZXJpbmcgKi8KCQkJc091dCA9IGR0Lm9MYW5ndWFnZS5zSW5mby4KCQkJCQlyZXBsYWNlKCdfU1RBUlRfJywgc1N0YXJ0KS4KCQkJCQlyZXBsYWNlKCdfRU5EXycsICAgc0VuZCkuCgkJCQkJcmVwbGFjZSgnX1RPVEFMXycsIHNUb3RhbCkgKycgJysgCgkJCQlkdC5vTGFuZ3VhZ2Uuc0luZm9GaWx0ZXJlZC5yZXBsYWNlKCdfTUFYXycsIAoJCQkJCWR0LmZuRm9ybWF0TnVtYmVyKGR0LmZuUmVjb3Jkc1RvdGFsKCkpKSsgCgkJCQlkdC5vTGFuZ3VhZ2Uuc0luZm9Qb3N0Rml4OwoJCX0KCQkKCQl2YXIgbiA9IGR0LmFhbkZlYXR1cmVzLmk7CgkJaWYgKCB0eXBlb2YgbiAhPSAndW5kZWZpbmVkJyApCgkJewoJCQlmb3IgKCB2YXIgaT0wLCBpTGVuPW4ubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQkJewoJCQkJJChuW2ldKS5odG1sKCBzT3V0ICk7CgkJCX0KCQl9Cgl9Cn07CgoKCi8qICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKgogKiBTdGF0aWNzCiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKi8KCgovKioKICogU2Nyb2xsZXIgZGVmYXVsdCBzZXR0aW5ncyBmb3IgaW5pdGlhbGlzYXRpb24KICogIEBuYW1lc3BhY2UKICogIEBzdGF0aWMKICovClNjcm9sbGVyLm9EZWZhdWx0cyA9IHsKCS8qKiAKCSAqIEluZGljYXRlIGlmIFNjcm9sbGVyIHNob3cgc2hvdyB0cmFjZSBpbmZvcm1hdGlvbiBvbiB0aGUgY29uc29sZSBvciBub3QuIFRoaXMgY2FuIGJlIAoJICogdXNlZnVsIHdoZW4gZGVidWdnaW5nIFNjcm9sbGVyIG9yIGlmIGp1c3QgY3VyaW91cyBhcyB0byB3aGF0IGl0IGlzIGRvaW5nLCBidXQgc2hvdWxkCgkgKiBiZSB0dXJuZWQgb2ZmIGZvciBwcm9kdWN0aW9uLgoJICogIEB0eXBlICAgICBib29sCgkgKiAgQGRlZmF1bHQgIGZhbHNlCgkgKiAgQHN0YXRpYwoJICogIEBleGFtcGxlCgkgKiAgICB2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAic1Njcm9sbFkiOiAiMjAwcHgiLAoJICogICAgICAgICJzRG9tIjogImZydGlTIiwKCSAqICAgICAgICAiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCSAqICAgICAgICAib1Njcm9sbGVyIjogewoJICogICAgICAgICAgInRyYWNlIjogdHJ1ZQoJICogICAgICAgIH0KCSAqICAgIH0gKTsKCSAqLwoJInRyYWNlIjogZmFsc2UsCgoJLyoqIAoJICogU2Nyb2xsZXIgd2lsbCBhdHRlbXB0IHRvIGF1dG9tYXRpY2FsbHkgY2FsY3VsYXRlIHRoZSBoZWlnaHQgb2Ygcm93cyBmb3IgaXQncyBpbnRlcm5hbAoJICogY2FsY3VsYXRpb25zLiBIb3dldmVyIHRoZSBoZWlnaHQgdGhhdCBpcyB1c2VkIGNhbiBiZSBvdmVycmlkZGVuIHVzaW5nIHRoaXMgcGFyYW1ldGVyLgoJICogIEB0eXBlICAgICBpbnR8c3RyaW5nCgkgKiAgQGRlZmF1bHQgIGF1dG8KCSAqICBAc3RhdGljCgkgKiAgQGV4YW1wbGUKCSAqICAgIHZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogICAgICAgICJzU2Nyb2xsWSI6ICIyMDBweCIsCgkgKiAgICAgICAgInNEb20iOiAiZnJ0aVMiLAoJICogICAgICAgICJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJICogICAgICAgICJvU2Nyb2xsZXIiOiB7CgkgKiAgICAgICAgICAicm93SGVpZ2h0IjogMzAKCSAqICAgICAgICB9CgkgKiAgICB9ICk7CgkgKi8KCSJyb3dIZWlnaHQiOiAiYXV0byIsCgoJLyoqIAoJICogV2hlbiB1c2luZyBzZXJ2ZXItc2lkZSBwcm9jZXNzaW5nLCBTY3JvbGxlciB3aWxsIHdhaXQgYSBzbWFsbCBhbW91bnQgb2YgdGltZSB0byBhbGxvdwoJICogdGhlIHNjcm9sbGluZyB0byBmaW5pc2ggYmVmb3JlIHJlcXVlc3RpbmcgbW9yZSBkYXRhIGZyb20gdGhlIHNlcnZlci4gVGhpcyBwcmV2ZW50cwoJICogeW91IGZyb20gRG9TaW5nIHlvdXIgb3duIHNlcnZlciEgVGhlIHdhaXQgdGltZSBjYW4gYmUgY29uZmlndXJlZCBieSB0aGlzIHBhcmFtZXRlci4KCSAqICBAdHlwZSAgICAgaW50CgkgKiAgQGRlZmF1bHQgIDIwMAoJICogIEBzdGF0aWMKCSAqICBAZXhhbXBsZQoJICogICAgdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgICAgICAgInNTY3JvbGxZIjogIjIwMHB4IiwKCSAqICAgICAgICAic0RvbSI6ICJmcnRpUyIsCgkgKiAgICAgICAgImJEZWZlclJlbmRlciI6IHRydWUsCgkgKiAgICAgICAgIm9TY3JvbGxlciI6IHsKCSAqICAgICAgICAgICJzZXJ2ZXJXYWl0IjogMTAwCgkgKiAgICAgICAgfQoJICogICAgfSApOwoJICovCgkic2VydmVyV2FpdCI6IDIwMCwKCgkvKiogCgkgKiBUaGUgZGlzcGxheSBidWZmZXIgaXMgd2hhdCBTY3JvbGxlciB1c2VzIHRvIGNhbGN1bGF0ZSBob3cgbWFueSByb3dzIGl0IHNob3VsZCBwcmUtZmV0Y2gKCSAqIGZvciBzY3JvbGxpbmcuIFNjcm9sbGVyIGF1dG9tYXRpY2FsbHkgYWRqdXN0cyBEYXRhVGFibGVzJyBkaXNwbGF5IGxlbmd0aCB0byBwcmUtZmV0Y2gKCSAqIHJvd3MgdGhhdCB3aWxsIGJlIHNob3duIGluICJuZWFyIHNjcm9sbGluZyIgKGkuZS4ganVzdCBiZXlvbmQgdGhlIGN1cnJlbnQgZGlzcGxheSBhcmVhKS4KCSAqIFRoZSB2YWx1ZSBpcyBiYXNlZCB1cG9uIHRoZSBudW1iZXIgb2Ygcm93cyB0aGF0IGNhbiBiZSBkaXNwbGF5ZWQgaW4gdGhlIHZpZXdwb3J0IChpLmUuIAoJICogYSB2YWx1ZSBvZiAxKSwgYW5kIHdpbGwgYXBwbHkgdGhlIGRpc3BsYXkgcmFuZ2UgdG8gcmVjb3JkcyBiZWZvcmUgYmVmb3JlIGFuZCBhZnRlciB0aGUKCSAqIGN1cnJlbnQgdmlld3BvcnQgLSBpLmUuIGEgZmFjdG9yIG9mIDMgd2lsbCBhbGxvdyBTY3JvbGxlciB0byBwcmUtZmV0Y2ggMSB2aWV3cG9ydCdzIHdvcnRoCgkgKiBvZiByb3dzIGJlZm9yZSB0aGUgY3VycmVudCB2aWV3cG9ydCwgdGhlIGN1cnJlbnQgdmlld3BvcnQncyByb3dzIGFuZCAxIHZpZXdwb3J0J3Mgd29ydGgKCSAqIG9mIHJvd3MgYWZ0ZXIgdGhlIGN1cnJlbnQgdmlld3BvcnQuIEFkanVzdGluZyB0aGlzIHZhbHVlIGNhbiBiZSB1c2VmdWwgZm9yIGVuc3VyaW5nIAoJICogc21vb3RoIHNjcm9sbGluZyBiYXNlZCBvbiB5b3VyIGRhdGEgc2V0LgoJICogIEB0eXBlICAgICBpbnQKCSAqICBAZGVmYXVsdCAgNwoJICogIEBzdGF0aWMKCSAqICBAZXhhbXBsZQoJICogICAgdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgICAgICAgInNTY3JvbGxZIjogIjIwMHB4IiwKCSAqICAgICAgICAic0RvbSI6ICJmcnRpUyIsCgkgKiAgICAgICAgImJEZWZlclJlbmRlciI6IHRydWUsCgkgKiAgICAgICAgIm9TY3JvbGxlciI6IHsKCSAqICAgICAgICAgICJkaXNwbGF5QnVmZmVyIjogMTAKCSAqICAgICAgICB9CgkgKiAgICB9ICk7CgkgKi8KCSJkaXNwbGF5QnVmZmVyIjogOSwKCgkvKiogCgkgKiBTY3JvbGxlciB1c2VzIHRoZSBib3VuZGFyeSBzY2FsaW5nIGZhY3RvciB0byBkZWNpZGUgd2hlbiB0byByZWRyYXcgdGhlIHRhYmxlIC0gd2hpY2ggaXQKCSAqIHR5cGljYWxseSBkb2VzIGJlZm9yZSB5b3UgcmVhY2ggdGhlIGVuZCBvZiB0aGUgY3VycmVudGx5IGxvYWRlZCBkYXRhIHNldCAoaW4gb3JkZXIgdG8KCSAqIGFsbG93IHRoZSBkYXRhIHRvIGxvb2sgY29udGludW91cyB0byBhIHVzZXIgc2Nyb2xsaW5nIHRocm91Z2ggdGhlIGRhdGEpLiBJZiBnaXZlbiBhcyAwCgkgKiB0aGVuIHRoZSB0YWJsZSB3aWxsIGJlIHJlZHJhd24gd2hlbmV2ZXIgdGhlIHZpZXdwb3J0IGlzIHNjcm9sbGVkLCB3aGlsZSAxIHdvdWxkIG5vdAoJICogcmVkcmF3IHRoZSB0YWJsZSB1bnRpbCB0aGUgY3VycmVudGx5IGxvYWRlZCBkYXRhIGhhcyBhbGwgYmVlbiBzaG93bi4gWW91IHdpbGwgd2FudCAKCSAqIHNvbWV0aGluZyBpbiB0aGUgbWlkZGxlIC0gdGhlIGRlZmF1bHQgZmFjdG9yIG9mIDAuNSBpcyB1c3VhbGx5IHN1aXRhYmxlLgoJICogIEB0eXBlICAgICBmbG9hdAoJICogIEBkZWZhdWx0ICAwLjUKCSAqICBAc3RhdGljCgkgKiAgQGV4YW1wbGUKCSAqICAgIHZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogICAgICAgICJzU2Nyb2xsWSI6ICIyMDBweCIsCgkgKiAgICAgICAgInNEb20iOiAiZnJ0aVMiLAoJICogICAgICAgICJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJICogICAgICAgICJvU2Nyb2xsZXIiOiB7CgkgKiAgICAgICAgICAiYm91bmRhcnlTY2FsZSI6IDAuNzUKCSAqICAgICAgICB9CgkgKiAgICB9ICk7CgkgKi8KCSJib3VuZGFyeVNjYWxlIjogMC41LAoKCS8qKiAKCSAqIFNob3cgKG9yIG5vdCkgdGhlIGxvYWRpbmcgZWxlbWVudCBpbiB0aGUgYmFja2dyb3VuZCBvZiB0aGUgdGFibGUuIE5vdGUgdGhhdCB5b3Ugc2hvdWxkCgkgKiBpbmNsdWRlIHRoZSBkYXRhVGFibGVzLnNjcm9sbGVyLmNzcyBmaWxlIGZvciB0aGlzIHRvIGJlIGRpc3BsYXllZCBjb3JyZWN0bHkuCgkgKiAgQHR5cGUgICAgIGJvb2xlYW4KCSAqICBAZGVmYXVsdCAgZmFsc2UKCSAqICBAc3RhdGljCgkgKiAgQGV4YW1wbGUKCSAqICAgIHZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogICAgICAgICJzU2Nyb2xsWSI6ICIyMDBweCIsCgkgKiAgICAgICAgInNEb20iOiAiZnJ0aVMiLAoJICogICAgICAgICJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJICogICAgICAgICJvU2Nyb2xsZXIiOiB7CgkgKiAgICAgICAgICAibG9hZGluZ0luZGljYXRvciI6IHRydWUKCSAqICAgICAgICB9CgkgKiAgICB9ICk7CgkgKi8KCSJsb2FkaW5nSW5kaWNhdG9yIjogZmFsc2UKfTsKCgoKLyogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqCiAqIENvbnN0YW50cwogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICovCgoKLyoqCiAqIE5hbWUgb2YgdGhpcyBjbGFzcwogKiAgQHR5cGUgICAgIFN0cmluZwogKiAgQGRlZmF1bHQgIFNjcm9sbGVyCiAqICBAc3RhdGljCiAqLwpTY3JvbGxlci5wcm90b3R5cGUuQ0xBU1MgPSAiU2Nyb2xsZXIiOwoKCi8qKgogKiBTY3JvbGxlciB2ZXJzaW9uCiAqICBAdHlwZSAgICAgIFN0cmluZwogKiAgQGRlZmF1bHQgICBTZWUgY29kZQogKiAgQHN0YXRpYwogKi8KU2Nyb2xsZXIuVkVSU0lPTiA9ICIxLjEuMCI7ClNjcm9sbGVyLnByb3RvdHlwZS5WRVJTSU9OID0gU2Nyb2xsZXIuVkVSU0lPTjsKCgoKLyogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqCiAqIEluaXRpYWxpc2F0aW9uCiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKi8KCi8qCiAqIFJlZ2lzdGVyIGEgbmV3IGZlYXR1cmUgd2l0aCBEYXRhVGFibGVzCiAqLwppZiAoIHR5cGVvZiAkLmZuLmRhdGFUYWJsZSA9PSAiZnVuY3Rpb24iICYmCiAgICAgdHlwZW9mICQuZm4uZGF0YVRhYmxlRXh0LmZuVmVyc2lvbkNoZWNrID09ICJmdW5jdGlvbiIgJiYKICAgICAkLmZuLmRhdGFUYWJsZUV4dC5mblZlcnNpb25DaGVjaygnMS45LjAnKSApCnsKCSQuZm4uZGF0YVRhYmxlRXh0LmFvRmVhdHVyZXMucHVzaCggewoJCSJmbkluaXQiOiBmdW5jdGlvbiggb0RUU2V0dGluZ3MgKSB7CgkJCXZhciBpbml0ID0gKHR5cGVvZiBvRFRTZXR0aW5ncy5vSW5pdC5vU2Nyb2xsZXIgPT0gJ3VuZGVmaW5lZCcpID8KCQkJCXt9IDogb0RUU2V0dGluZ3Mub0luaXQub1Njcm9sbGVyOwoJCQl2YXIgb1Njcm9sbGVyID0gbmV3IFNjcm9sbGVyKCBvRFRTZXR0aW5ncywgaW5pdCApOwoJCQlyZXR1cm4gb1Njcm9sbGVyLmRvbS53cmFwcGVyOwoJCX0sCgkJImNGZWF0dXJlIjogIlMiLAoJCSJzRmVhdHVyZSI6ICJTY3JvbGxlciIKCX0gKTsKfQplbHNlCnsKCWFsZXJ0KCAiV2FybmluZzogU2Nyb2xsZXIgcmVxdWlyZXMgRGF0YVRhYmxlcyAxLjkuMCBvciBncmVhdGVyIC0gd3d3LmRhdGF0YWJsZXMubmV0L2Rvd25sb2FkIik7Cn0KCgovLyBBdHRhY2ggU2Nyb2xsZXIgdG8gRGF0YVRhYmxlcyBzbyBpdCBjYW4gYmUgYWNjZXNzZWQgYXMgYW4gJ2V4dHJhJwokLmZuLmRhdGFUYWJsZS5TY3JvbGxlciA9IFNjcm9sbGVyOwoKfSkoalF1ZXJ5LCB3aW5kb3csIGRvY3VtZW50KTsK]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/media/js/dataTables.scroller.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogRmlsZTogICAgICAgIGRhdGFUYWJsZXMuc2Nyb2xsZXIubWluLmpzCiAqIFZlcnNpb246ICAgICAxLjEuMAogKiBBdXRob3I6ICAgICAgQWxsYW4gSmFyZGluZSAod3d3LnNwcnltZWRpYS5jby51aykKICogCiAqIENvcHlyaWdodCAyMDExIEFsbGFuIEphcmRpbmUsIGFsbCByaWdodHMgcmVzZXJ2ZWQuCiAqCiAqIFRoaXMgc291cmNlIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZSwgdW5kZXIgZWl0aGVyIHRoZSBHUEwgdjIgbGljZW5zZSBvciBhCiAqIEJTRCAoMyBwb2ludCkgc3R5bGUgbGljZW5zZSwgYXMgc3VwcGxpZWQgd2l0aCB0aGlzIHNvZnR3YXJlLgogKiAKICogVGhpcyBzb3VyY2UgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgCiAqIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIAogKiBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBsaWNlbnNlIGZpbGVzIGZvciBkZXRhaWxzLgogKi8KLyoKICAgICBHUEwgdjIgb3IgQlNEIDMgcG9pbnQgc3R5bGUKIEBjb250YWN0ICAgICB3d3cuc3ByeW1lZGlhLmNvLnVrL2NvbnRhY3QKCiBAY29weXJpZ2h0IENvcHlyaWdodCAyMDExLTIwMTIgQWxsYW4gSmFyZGluZSwgYWxsIHJpZ2h0cyByZXNlcnZlZC4KCiBUaGlzIHNvdXJjZSBmaWxlIGlzIGZyZWUgc29mdHdhcmUsIHVuZGVyIGVpdGhlciB0aGUgR1BMIHYyIGxpY2Vuc2Ugb3IgYQogQlNEIHN0eWxlIGxpY2Vuc2UsIGF2YWlsYWJsZSBhdDoKICAgaHR0cDovL2RhdGF0YWJsZXMubmV0L2xpY2Vuc2VfZ3BsMgogICBodHRwOi8vZGF0YXRhYmxlcy5uZXQvbGljZW5zZV9ic2QKKi8KKGZ1bmN0aW9uKGQsaCxnKXt2YXIgZT1mdW5jdGlvbihhLGIpeyF0aGlzIGluc3RhbmNlb2YgZT9hbGVydCgiU2Nyb2xsZXIgd2FybmluZzogU2Nyb2xsZXIgbXVzdCBiZSBpbml0aWFsaXNlZCB3aXRoIHRoZSAnbmV3JyBrZXl3b3JkLiIpOigidW5kZWZpbmVkIj09dHlwZW9mIGImJihiPXt9KSx0aGlzLnM9e2R0OmEsdGFibGVUb3A6MCx0YWJsZUJvdHRvbTowLHJlZHJhd1RvcDowLHJlZHJhd0JvdHRvbTowLHJvd0hlaWdodDpudWxsLGF1dG9IZWlnaHQ6ITAsdmlld3BvcnRIZWlnaHQ6MCx2aWV3cG9ydFJvd3M6MCxzdGF0ZVRPOm51bGwsZHJhd1RPOm51bGx9LHRoaXMucz1kLmV4dGVuZCh0aGlzLnMsZS5vRGVmYXVsdHMsYiksdGhpcy5kb209e2ZvcmNlOmcuY3JlYXRlRWxlbWVudCgiZGl2Iiksc2Nyb2xsZXI6bnVsbCx0YWJsZTpudWxsfSx0aGlzLnMuZHQub1Njcm9sbGVyPXRoaXMsdGhpcy5fZm5Db25zdHJ1Y3QoKSl9O2UucHJvdG90eXBlPXtmblJvd1RvUGl4ZWxzOmZ1bmN0aW9uKGEpe3JldHVybiBhKgp0aGlzLnMucm93SGVpZ2h0fSxmblBpeGVsc1RvUm93OmZ1bmN0aW9uKGEpe3JldHVybiBwYXJzZUludChhL3RoaXMucy5yb3dIZWlnaHQsMTApfSxmblNjcm9sbFRvUm93OmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5mblJvd1RvUGl4ZWxzKGEpOyJ1bmRlZmluZWQiPT10eXBlb2YgYnx8Yj9kKHRoaXMuZG9tLnNjcm9sbGVyKS5hbmltYXRlKHtzY3JvbGxUb3A6Y30pOmQodGhpcy5kb20uc2Nyb2xsZXIpLnNjcm9sbFRvcChjKX0sZm5NZWFzdXJlOmZ1bmN0aW9uKGEpe3RoaXMucy5hdXRvSGVpZ2h0JiZ0aGlzLl9mbkNhbGNSb3dIZWlnaHQoKTt0aGlzLnMudmlld3BvcnRIZWlnaHQ9ZCh0aGlzLmRvbS5zY3JvbGxlcikuaGVpZ2h0KCk7dGhpcy5zLnZpZXdwb3J0Um93cz1wYXJzZUludCh0aGlzLnMudmlld3BvcnRIZWlnaHQvdGhpcy5zLnJvd0hlaWdodCwxMCkrMTt0aGlzLnMuZHQuX2lEaXNwbGF5TGVuZ3RoPXRoaXMucy52aWV3cG9ydFJvd3MqdGhpcy5zLmRpc3BsYXlCdWZmZXI7CnRoaXMucy50cmFjZSYmY29uc29sZS5sb2coIlJvdyBoZWlnaHQ6ICIrdGhpcy5zLnJvd0hlaWdodCsiIFZpZXdwb3J0IGhlaWdodDogIit0aGlzLnMudmlld3BvcnRIZWlnaHQrIiBWaWV3cG9ydCByb3dzOiAiK3RoaXMucy52aWV3cG9ydFJvd3MrIiBEaXNwbGF5IHJvd3M6ICIrdGhpcy5zLmR0Ll9pRGlzcGxheUxlbmd0aCk7KCJ1bmRlZmluZWQiPT10eXBlb2YgYXx8YSkmJnRoaXMucy5kdC5vSW5zdGFuY2UuZm5EcmF3KCl9LF9mbkNvbnN0cnVjdDpmdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5kb20uZm9yY2Uuc3R5bGUucG9zaXRpb249ImFic29sdXRlIjt0aGlzLmRvbS5mb3JjZS5zdHlsZS50b3A9IjBweCI7dGhpcy5kb20uZm9yY2Uuc3R5bGUubGVmdD0iMHB4Ijt0aGlzLmRvbS5mb3JjZS5zdHlsZS53aWR0aD0iMXB4Ijt0aGlzLmRvbS5zY3JvbGxlcj1kKCJkaXYuIit0aGlzLnMuZHQub0NsYXNzZXMuc1Njcm9sbEJvZHksdGhpcy5zLmR0Lm5UYWJsZVdyYXBwZXIpWzBdOwp0aGlzLmRvbS5zY3JvbGxlci5hcHBlbmRDaGlsZCh0aGlzLmRvbS5mb3JjZSk7dGhpcy5kb20uc2Nyb2xsZXIuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIjt0aGlzLmRvbS50YWJsZT1kKCI+dGFibGUiLHRoaXMuZG9tLnNjcm9sbGVyKVswXTt0aGlzLmRvbS50YWJsZS5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO3RoaXMuZG9tLnRhYmxlLnN0eWxlLnRvcD0iMHB4Ijt0aGlzLmRvbS50YWJsZS5zdHlsZS5sZWZ0PSIwcHgiO2QodGhpcy5zLmR0Lm5UYWJsZVdyYXBwZXIpLmFkZENsYXNzKCJEVFMiKTt0aGlzLnMubG9hZGluZ0luZGljYXRvciYmZCh0aGlzLmRvbS5zY3JvbGxlci5wYXJlbnROb2RlKS5jc3MoInBvc2l0aW9uIiwicmVsYXRpdmUiKS5hcHBlbmQoJzxkaXYgY2xhc3M9IkRUU19Mb2FkaW5nIj4nK3RoaXMucy5kdC5vTGFuZ3VhZ2Uuc0xvYWRpbmdSZWNvcmRzKyI8L2Rpdj4iKTt0aGlzLnMucm93SGVpZ2h0JiYiYXV0byIhPXRoaXMucy5yb3dIZWlnaHQmJih0aGlzLnMuYXV0b0hlaWdodD0KITEpO3RoaXMuZm5NZWFzdXJlKCExKTtkKHRoaXMuZG9tLnNjcm9sbGVyKS5zY3JvbGwoZnVuY3Rpb24oKXthLl9mblNjcm9sbC5jYWxsKGEpfSk7ZCh0aGlzLmRvbS5zY3JvbGxlcikuYmluZCgidG91Y2hzdGFydCIsZnVuY3Rpb24oKXthLl9mblNjcm9sbC5jYWxsKGEpfSk7dGhpcy5zLmR0LmFvRHJhd0NhbGxiYWNrLnB1c2goe2ZuOmZ1bmN0aW9uKCl7YS5zLmR0LmJJbml0aWFsaXNlZCYmYS5fZm5EcmF3Q2FsbGJhY2suY2FsbChhKX0sc05hbWU6IlNjcm9sbGVyIn0pO3RoaXMucy5kdC5vQXBpLl9mbkNhbGxiYWNrUmVnKHRoaXMucy5kdCwiYW9TdGF0ZVNhdmVQYXJhbXMiLGZ1bmN0aW9uKGIsYyl7Yy5pU2Nyb2xsZXI9YS5kb20uc2Nyb2xsZXIuc2Nyb2xsVG9wfSwiU2Nyb2xsZXJfU3RhdGUiKX0sX2ZuU2Nyb2xsOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxiPXRoaXMuZG9tLnNjcm9sbGVyLnNjcm9sbFRvcCxjO2lmKCF0aGlzLnMuZHQuYkZpbHRlcmVkJiYhdGhpcy5zLmR0LmJTb3J0ZWQmJgoodGhpcy5zLnRyYWNlJiZjb25zb2xlLmxvZygiU2Nyb2xsOiAiK2IrInB4IC0gYm91bmRhcmllczogIit0aGlzLnMucmVkcmF3VG9wKyIgLyAiK3RoaXMucy5yZWRyYXdCb3R0b20rIi4gIFNob3dpbmcgcm93cyAiK3RoaXMuZm5QaXhlbHNUb1JvdyhiKSsiIHRvICIrdGhpcy5mblBpeGVsc1RvUm93KGIrZCh0aGlzLmRvbS5zY3JvbGxlcikuaGVpZ2h0KCkpKyIgaW4gdGhlIHZpZXdwb3J0LCB3aXRoIHJvd3MgIit0aGlzLnMuZHQuX2lEaXNwbGF5U3RhcnQrIiB0byAiK3RoaXMucy5kdC5faURpc3BsYXlFbmQrIiByZW5kZXJlZCBieSB0aGUgRGF0YVRhYmxlIiksdGhpcy5fZm5JbmZvKCksY2xlYXJUaW1lb3V0KHRoaXMucy5zdGF0ZVRPKSx0aGlzLnMuc3RhdGVUTz1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5zLmR0Lm9BcGkuX2ZuU2F2ZVN0YXRlKGEucy5kdCl9LDI1MCksYjx0aGlzLnMucmVkcmF3VG9wfHxiPnRoaXMucy5yZWRyYXdCb3R0b20pKXt2YXIgZj0odGhpcy5zLmRpc3BsYXlCdWZmZXItCjEpLzIqdGhpcy5zLnZpZXdwb3J0Um93cztjPXBhcnNlSW50KGIvdGhpcy5zLnJvd0hlaWdodCwxMCktZjswPmM/Yz0wOmMrdGhpcy5zLmR0Ll9pRGlzcGxheUxlbmd0aD50aGlzLnMuZHQuZm5SZWNvcmRzRGlzcGxheSgpPyhjPXRoaXMucy5kdC5mblJlY29yZHNEaXNwbGF5KCktdGhpcy5zLmR0Ll9pRGlzcGxheUxlbmd0aCwwPmMmJihjPTApKTowIT09YyUyJiZjKys7YyE9dGhpcy5zLmR0Ll9pRGlzcGxheVN0YXJ0JiYodGhpcy5zLnRhYmxlVG9wPWQodGhpcy5zLmR0Lm5UYWJsZSkub2Zmc2V0KCkudG9wLHRoaXMucy50YWJsZUJvdHRvbT1kKHRoaXMucy5kdC5uVGFibGUpLmhlaWdodCgpK3RoaXMucy50YWJsZVRvcCx0aGlzLnMuZHQub0ZlYXR1cmVzLmJTZXJ2ZXJTaWRlPyhjbGVhclRpbWVvdXQodGhpcy5zLmRyYXdUTyksdGhpcy5zLmRyYXdUTz1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5zLmR0Ll9pRGlzcGxheVN0YXJ0PWM7YS5zLmR0Lm9BcGkuX2ZuQ2FsY3VsYXRlRW5kKGEucy5kdCk7CmEucy5kdC5vQXBpLl9mbkRyYXcoYS5zLmR0KX0sdGhpcy5zLnNlcnZlcldhaXQpKToodGhpcy5zLmR0Ll9pRGlzcGxheVN0YXJ0PWMsdGhpcy5zLmR0Lm9BcGkuX2ZuQ2FsY3VsYXRlRW5kKHRoaXMucy5kdCksdGhpcy5zLmR0Lm9BcGkuX2ZuRHJhdyh0aGlzLnMuZHQpKSx0aGlzLnMudHJhY2UmJmNvbnNvbGUubG9nKCJTY3JvbGwgZm9yY2luZyByZWRyYXcgLSB0b3AgRFQgcmVuZGVyIHJvdzogIitjKSl9fSxfZm5EcmF3Q2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGI9dGhpcy5kb20uc2Nyb2xsZXIuc2Nyb2xsVG9wLGM9Yit0aGlzLnMudmlld3BvcnRIZWlnaHQ7dGhpcy5kb20uZm9yY2Uuc3R5bGUuaGVpZ2h0PXRoaXMucy5yb3dIZWlnaHQqdGhpcy5zLmR0LmZuUmVjb3Jkc0Rpc3BsYXkoKSsicHgiO3ZhciBmPXRoaXMucy5yb3dIZWlnaHQqdGhpcy5zLmR0Ll9pRGlzcGxheVN0YXJ0OzA9PT10aGlzLnMuZHQuX2lEaXNwbGF5U3RhcnQ/Zj0wOnRoaXMucy5kdC5faURpc3BsYXlTdGFydD09PQp0aGlzLnMuZHQuZm5SZWNvcmRzRGlzcGxheSgpLXRoaXMucy5kdC5faURpc3BsYXlMZW5ndGgmJihmPXRoaXMucy5yb3dIZWlnaHQqdGhpcy5zLmR0Ll9pRGlzcGxheVN0YXJ0KTt0aGlzLmRvbS50YWJsZS5zdHlsZS50b3A9ZisicHgiO3RoaXMucy50YWJsZVRvcD1mO3RoaXMucy50YWJsZUJvdHRvbT1kKHRoaXMucy5kdC5uVGFibGUpLmhlaWdodCgpK3RoaXMucy50YWJsZVRvcDt0aGlzLnMucmVkcmF3VG9wPWItKGItdGhpcy5zLnRhYmxlVG9wKSp0aGlzLnMuYm91bmRhcnlTY2FsZTt0aGlzLnMucmVkcmF3Qm90dG9tPWIrKHRoaXMucy50YWJsZUJvdHRvbS1jKSp0aGlzLnMuYm91bmRhcnlTY2FsZTt0aGlzLnMudHJhY2UmJmNvbnNvbGUubG9nKCJUYWJsZSByZWRyYXcuIFRhYmxlIHRvcDogIitmKyJweCBUYWJsZSBib3R0b206ICIrdGhpcy5zLnRhYmxlQm90dG9tKyIgU2Nyb2xsIGJvdW5kYXJ5IHRvcDogIit0aGlzLnMucmVkcmF3VG9wKyIgU2Nyb2xsIGJvdW5kYXJ5IGJvdHRvbTogIisKdGhpcy5zLnJlZHJhd0JvdHRvbSsiIFJvd3MgZHJhd246ICIrdGhpcy5zLmR0Ll9pRGlzcGxheUxlbmd0aCk7c2V0VGltZW91dChmdW5jdGlvbigpe2EuX2ZuSW5mby5jYWxsKGEpfSwwKTt0aGlzLnMuZHQub0ZlYXR1cmVzLmJTdGF0ZVNhdmUmJm51bGwhPT10aGlzLnMuZHQub0xvYWRlZFN0YXRlJiYidW5kZWZpbmVkIiE9dHlwZW9mIHRoaXMucy5kdC5vTG9hZGVkU3RhdGUuaVNjcm9sbGVyJiYobnVsbCE9PXRoaXMucy5kdC5zQWpheFNvdXJjZSYmMj09dGhpcy5zLmR0LmlEcmF3fHxudWxsPT09dGhpcy5zLmR0LnNBamF4U291cmNlJiYxPT10aGlzLnMuZHQuaURyYXcpJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZChhLmRvbS5zY3JvbGxlcikuc2Nyb2xsVG9wKGEucy5kdC5vTG9hZGVkU3RhdGUuaVNjcm9sbGVyKTthLnMucmVkcmF3VG9wPWEucy5kdC5vTG9hZGVkU3RhdGUuaVNjcm9sbGVyLWEucy52aWV3cG9ydEhlaWdodC8yfSwwKX0sX2ZuQ2FsY1Jvd0hlaWdodDpmdW5jdGlvbigpe3ZhciBhPQp0aGlzLnMuZHQublRhYmxlLmNsb25lTm9kZSghMSksYj1kKCc8ZGl2IGNsYXNzPSInK3RoaXMucy5kdC5vQ2xhc3Nlcy5zV3JhcHBlcisnIERUUyI+PGRpdiBjbGFzcz0iJyt0aGlzLnMuZHQub0NsYXNzZXMuc1Njcm9sbFdyYXBwZXIrJyI+PGRpdiBjbGFzcz0iJyt0aGlzLnMuZHQub0NsYXNzZXMuc1Njcm9sbEJvZHkrJyI+PC9kaXY+PC9kaXY+PC9kaXY+JylbMF07ZChhKS5hcHBlbmQoIjx0Ym9keT48dHI+PHRkPiZuYnNwOzwvdGQ+PC90cj48L3Rib2R5PiIpO2QoImRpdi4iK3RoaXMucy5kdC5vQ2xhc3Nlcy5zU2Nyb2xsQm9keSxiKS5hcHBlbmQoYSk7Zy5ib2R5LmFwcGVuZENoaWxkKGIpO3RoaXMucy5yb3dIZWlnaHQ9ZCgidGJvZHkgdHIiLGEpLm91dGVySGVpZ2h0KCk7Zy5ib2R5LnJlbW92ZUNoaWxkKGIpfSxfZm5JbmZvOmZ1bmN0aW9uKCl7aWYodGhpcy5zLmR0Lm9GZWF0dXJlcy5iSW5mbyl7dmFyIGE9dGhpcy5zLmR0LGI9dGhpcy5kb20uc2Nyb2xsZXIuc2Nyb2xsVG9wLApjPXRoaXMuZm5QaXhlbHNUb1JvdyhiKSsxLGY9YS5mblJlY29yZHNUb3RhbCgpLGU9YS5mblJlY29yZHNEaXNwbGF5KCksYj10aGlzLmZuUGl4ZWxzVG9Sb3coYitkKHRoaXMuZG9tLnNjcm9sbGVyKS5oZWlnaHQoKSksYj1lPGI/ZTpiLGM9YS5mbkZvcm1hdE51bWJlcihjKSxiPWEuZm5Gb3JtYXROdW1iZXIoYiksZj1hLmZuRm9ybWF0TnVtYmVyKGYpLGU9YS5mbkZvcm1hdE51bWJlcihlKSxlPTA9PT1hLmZuUmVjb3Jkc0Rpc3BsYXkoKSYmYS5mblJlY29yZHNEaXNwbGF5KCk9PWEuZm5SZWNvcmRzVG90YWwoKT9hLm9MYW5ndWFnZS5zSW5mb0VtcHR5K2Eub0xhbmd1YWdlLnNJbmZvUG9zdEZpeDowPT09YS5mblJlY29yZHNEaXNwbGF5KCk/YS5vTGFuZ3VhZ2Uuc0luZm9FbXB0eSsiICIrYS5vTGFuZ3VhZ2Uuc0luZm9GaWx0ZXJlZC5yZXBsYWNlKCJfTUFYXyIsZikrYS5vTGFuZ3VhZ2Uuc0luZm9Qb3N0Rml4OmEuZm5SZWNvcmRzRGlzcGxheSgpPT1hLmZuUmVjb3Jkc1RvdGFsKCk/CmEub0xhbmd1YWdlLnNJbmZvLnJlcGxhY2UoIl9TVEFSVF8iLGMpLnJlcGxhY2UoIl9FTkRfIixiKS5yZXBsYWNlKCJfVE9UQUxfIixlKSthLm9MYW5ndWFnZS5zSW5mb1Bvc3RGaXg6YS5vTGFuZ3VhZ2Uuc0luZm8ucmVwbGFjZSgiX1NUQVJUXyIsYykucmVwbGFjZSgiX0VORF8iLGIpLnJlcGxhY2UoIl9UT1RBTF8iLGUpKyIgIithLm9MYW5ndWFnZS5zSW5mb0ZpbHRlcmVkLnJlcGxhY2UoIl9NQVhfIixhLmZuRm9ybWF0TnVtYmVyKGEuZm5SZWNvcmRzVG90YWwoKSkpK2Eub0xhbmd1YWdlLnNJbmZvUG9zdEZpeCxhPWEuYWFuRmVhdHVyZXMuaTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGEpe2Y9MDtmb3IoYz1hLmxlbmd0aDtmPGM7ZisrKWQoYVtmXSkuaHRtbChlKX19fX07ZS5vRGVmYXVsdHM9e3RyYWNlOiExLHJvd0hlaWdodDoiYXV0byIsc2VydmVyV2FpdDoyMDAsZGlzcGxheUJ1ZmZlcjo5LGJvdW5kYXJ5U2NhbGU6MC41LGxvYWRpbmdJbmRpY2F0b3I6ITF9O2UucHJvdG90eXBlLkNMQVNTPQoiU2Nyb2xsZXIiO2UuVkVSU0lPTj0iMS4xLjAiO2UucHJvdG90eXBlLlZFUlNJT049ZS5WRVJTSU9OOyJmdW5jdGlvbiI9PXR5cGVvZiBkLmZuLmRhdGFUYWJsZSYmImZ1bmN0aW9uIj09dHlwZW9mIGQuZm4uZGF0YVRhYmxlRXh0LmZuVmVyc2lvbkNoZWNrJiZkLmZuLmRhdGFUYWJsZUV4dC5mblZlcnNpb25DaGVjaygiMS45LjAiKT9kLmZuLmRhdGFUYWJsZUV4dC5hb0ZlYXR1cmVzLnB1c2goe2ZuSW5pdDpmdW5jdGlvbihhKXtyZXR1cm4obmV3IGUoYSwidW5kZWZpbmVkIj09dHlwZW9mIGEub0luaXQub1Njcm9sbGVyP3t9OmEub0luaXQub1Njcm9sbGVyKSkuZG9tLndyYXBwZXJ9LGNGZWF0dXJlOiJTIixzRmVhdHVyZToiU2Nyb2xsZXIifSk6YWxlcnQoIldhcm5pbmc6IFNjcm9sbGVyIHJlcXVpcmVzIERhdGFUYWJsZXMgMS45LjAgb3IgZ3JlYXRlciAtIHd3dy5kYXRhdGFibGVzLm5ldC9kb3dubG9hZCIpO2QuZm4uZGF0YVRhYmxlLlNjcm9sbGVyPWV9KShqUXVlcnksd2luZG93LApkb2N1bWVudCk7Cg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/media/js/dataTables.scroller.min.js.gz</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[H4sICBXgIlACA2RhdGFUYWJsZXMuc2Nyb2xsZXIubWluLmpzAK0Za3ObOva7f4XCzDoQE2xn5364EJJ189hmJ02yttvunTt3MgKETYsRK0QcT5L/vkfibbDT3r2ZqQvSees8xfCoh47QdRASE+V/HuZ4jp2QJEbiMhqGhBmrIDK+JQL0C2FJQKMMemyMjZFYnaR8SVlOYhKGOEL/wswLIoLU9XptJDHbrIgXYMOlRvpdEzji3wWNNyxYLDk6GY3HTUwd4TBEcjdBjCSEPRHPACyBOF8GCUpoylyCfJAewavPCIE1n68xA+w08ghDJOBL+A9+0D8fbtHTCQoDl0QJQZQhLEh9mF0i9e8opkHENZTwDVDLYUAE4JLGcRgQD62BFBCSjDMmRqFHlzhekHAWOCkH1CCSEixpTOABcxRwIAfqOQSlCfHTUEcAKWl9vZl/vP88R5O739DXyXQ6uZv/ZknmFCDIE8loBatcKswYjvgGUR99uppefAT4yYeb25v5b5IcqHl9M7+7ms3Q9f0UTdDDZDq/ufh8O5mih8/Th/vZlYFmhEiihW2EDmBQwPUIx0GYCE2HvSHYXvzlloRtYbzcdpnpeugfLo04drmE7Dj8Yb7fk6DF+Tc94Rh+Tn7IHXp/nSsIXbaP/wmUF7GAMDeF7kvOY3M4FDHCsxiJCB/m8I+LODx5H8pJvB4YU/XTyOUQS6qnL/WF9vKEQUa7XMW6o70cSH8LooTjyCVwxOQcQ0ByVZnlsSkcIAqihYnKlVWacOFZQRTwAIdBUjkvQYcRWR+i72SzpswzFM1UFWEeH0zsKbbNN7Fg4/T7qmO/vGm6EMBI7BePm1iX2sxpbI6yxw+Uc7qCN0Y8htfZTvZcbdH1RyKOzYzSMNRxymn+fjDSnwKyjinj+Uq1MKXrBF5Bb07m9xmqZJE9vxVyeQZ55iTy1OxdJwa9JD5OQ56A/TIoj67sF3Bml5gLw2UESF6FZEUiMKMXPCmaXiS6jI9UrcHG8LhBC/vaYi3bePSjCwqHw1KXq5r2ZhEjZpRTYUVgGYEWc/oQPJMwMauD1V4Y4SmLED7q5fRLI73pfpQhzClgd2HFmCXkBoTHw21sfTzSBIVM1G0KwqGEk7lSA6MhHtC3Oh3h9dU5z60LdixLgmbgKFiBJdWXJGcWm+6bZnbCliCqK+X7RHCSMtLQLtel8o9+v7QxDt1poaOqWTlo03nsTs7LHTjCv+zSkp0EO607GFuVSzwGl0ESh3hzS6IFX9odPI4K6AzwQ+r7hFnFsXOGXdLvQ0ZMaEiMkC5UBbBQJrWJlMG2DAMFfcnJt6Ga8tdBmQinNqCQEMByLbah2hpqVme2wK+vWMuPK4uVmzxjgZNdQtSqcOr1WKkOPvNILE1nlecng9WQydiIaRIIUFvBDlgJ6qnSDchpbCuj+HnHdkh8vm9/HXhwhMq4AVA4EjiXSBVG3Tb0IsRJItqkLNw+UG9TyxeRbKK+MhzH4Ii/j/7IT71O1hCbkXexDMKa90qptLYQLYMwEmIePNUNInOXkPZMPil6OyaEKE34H7F0HbDD0vXtmqWLvNw2iIE9TxpQVS7nM6UM0JBiKPeLm8gLXMwp6/c74tqAyIX0fUc9ohmuoFHIruiVVbTcvOrhKZwdcgU3W3B7vM2YKGeH9fO8xdEixQtQI9+fEheKJETI6RAInFVCluHY7ysiYSkHdntHbWU0u3cwzmmUOVAVS3uSploLFSySYeZshgvtEKTNtx3ITgB6K5ym7hIikXFFf5dOZQlMRdBC1g0d7H434jRZqlDNzAYJCencVD1Gvy/pNlAL6npyh1fELLsWpcGPTuIgz/MSbUoWld/oCqYz0QbM8BN5wAyvkpoyju5qL64RlMUZb4VMUXne9JL5oySnZDkpW+xOSLpjdwRhQVF3rcBXDyo1HJijOGHCEvXVGSRasdZT92T9XAxIvs5AiZ/RMXIoZFrMAlJPyWWfBVl7uL2ctVwDxUBotqRrcGCZ0QuwRmOhOhqQ4HTH5mBvMRWo+UhTVBI96zDr/JoFZCa8sMGyuX8VebALUe0JCyJnI8lfFsOoopUd103kU1XT3ZBgNg9WBMaiwrJ5u1h0rcW7nRBeQLZ9uPA+4V/SM9RsA/zj5JeRpjun28aHnuisw/Ja5ju+rXYV/ePeWBueHHVUYMutOhGns+s49q3RmXvu2iPT3V2dz6od6O2y3JUDqNq56tr79o93ktWBNWQzYK5p5ujAtt2/nYD3DgaWe2DvOukq/RUzg92uBZpBfR/ORtVESdHrCJlFO3EKLxxsMaj36tfQ5ENyTSD6xKDIZoFHwAIdLpMNFaXHZK/7Haapqe1auJXG3DQUUwbk4NyXrN4WkGyLSkcr/FUK+xUHHEyt7rKt7eqdubNiWm5rHZCScwVRguxOS+ImwJXpRHo7JCc4LnQ5z8NVRL3IUS5MQDKn1kvAn8usttPd03a3bplHtErw0T5/F1lWsbJ43YPYtLw1su2dLn/uQ3juPDPb7v258INI+gkJtd0dm5+pvB2WvvV/xp21nR5t51h1jregtELkvK5tZtAbEKsjjcLZq22Rjt39FLq8VwqeO62BsjewhPBVaYx8ycmuKqq6VGMLNSmPgYJrQaGjIm9DVoR7nYUaieyPxEr0zti1Kx/l5bDqs0aNvqqWBosOqt8XFxsHdTemot0lngSBhrYa8A6KAa8btuq6wEdbVJPJN/w8k/dy/f5JfScQ+eH1VWDYOzHGLQyYMLvNIJLsrvsGvE9sTWbuym/3Ah/j9g3BiTB4NtrWryjaOa+3HU6GG9KIiAFGDACQDremlMPOQTMfngaHSMxMZ+8jZMKXaD+OIoZZCS8nn/rvoRwgwebleKWccgfAz045g3/eWT9yktg6HcIj/DDxI/cVMav82BjtlMSxZi0Mgd6YlZ32KCaGXskHcaboIB14CWHlnVFOhJEVfSIFEXl0IoDqJwZNfWcICbh6Dcumk/2FrFfetW313mPdB3cr68CcchxCU0vqi2VxKJj8XJMOWOTUOScmzEiS7DVlK8zv0pVDmOqK/daqo+VyNVb9QrDGKhGroiB2iSyGwfaq3aHzOa5P3sLIV6uYbwat5Qea8Ovg2dzFchchBVJra6sY1cAhANslqvL4afKfR5gstd2cf1ilXotEjc9sPpnOgZOr1Rav7i5hyakvze/nk1tYJHsl+kv5/JypWh7RtoS2W3Ydg+UwjsoAC8Q43VV9sPYCrZUFHZ8qHDmUNdHyT13LHww0SBG/+3+A3/NVCD75Bn9W7SuA/SI7A/NgXPsSkV3a6FW7bZ6MRnpjXDN/1Rt9hjkyftG3L6eAauPO37i4ncxmdq+654DdL1fT2c39na3Iz6VKA77YK58spchE1fWqB2Y1ys+yUKHfA7l6Fi1m/qn2Yknc7/3+exAqiPcriKedtyFxlQWLuyBx79PxcUKNyBrBAK13XhOLe+Gg9iXl/OXNbC1qmkxo66xmveluzttUZnBi1Ut1k2Tmn8S+tr6EMfLfNACxq3uEBEk1xSe/hfwSxGCaEV8ptz7WeXQdidMWNathD6O8aSJvmvrt3ylhG30dRICg9zzqpuK7Eox7/wPt6DprWh8AAA==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/server-side_processing.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+CgkJPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiB0eXBlPSJpbWFnZS9pY28iIGhyZWY9Imh0dHA6Ly93d3cuZGF0YXRhYmxlcy5uZXQvZmF2aWNvbi5pY28iIC8+CgkJCgkJPHRpdGxlPkRhdGFUYWJsZXMgZXhhbXBsZTwvdGl0bGU+CgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fcGFnZS5jc3MiOwoJCQlAaW1wb3J0ICIuLi8uLi9tZWRpYS9jc3MvZGVtb190YWJsZS5jc3MiOwoJCQlAaW1wb3J0ICJtZWRpYS9jc3MvZGF0YVRhYmxlcy5zY3JvbGxlci5jc3MiOwoJCTwvc3R5bGU+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGxhbmd1YWdlPSJqYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGxhbmd1YWdlPSJqYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5kYXRhVGFibGVzLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvZGF0YVRhYmxlcy5zY3JvbGxlci5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KCQkJJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CgkJCQl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCQkic1Njcm9sbFkiOiAiMjAwcHgiLAoJCQkJCSJzQWpheFNvdXJjZSI6ICJtZWRpYS9kYXRhL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkJCQkic0RvbSI6ICJmcnRpUyIsCgkJCQkJIm9TY3JvbGxlciI6IHsKCQkJCQkJImxvYWRpbmdJbmRpY2F0b3IiOiB0cnVlCgkJCQkJfQoJCQkJfSApOwoJCQl9ICk7CgkJPC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keSBpZD0iZHRfZXhhbXBsZSI+CgkJPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0id2lkdGg6OTgwcHgiPgoJCQk8ZGl2IGNsYXNzPSJmdWxsX3dpZHRoIGJpZyI+CgkJCQlTY3JvbGxlciBleGFtcGxlIC0gc2VydmVyLXNpZGUgcHJvY2Vzc2luZwoJCQk8L2Rpdj4KCQkJCgkJCTxoMT5QcmVhbWJsZTwvaDE+CgkJCTxwPldoZW4gdXNpbmcgc2VydmVyLXNpZGUgcHJvY2Vzc2luZywgU2Nyb2xsZXIgd2lsbCB3YWl0IGEgc21hbGwgYW1vdW50IG9mIHRpbWUgdG8gYWxsb3cgdGhlIHNjcm9sbGluZyB0byBmaW5pc2ggYmVmb3JlIHJlcXVlc3RpbmcgbW9yZSBkYXRhIGZyb20gdGhlIHNlcnZlciAoMjAwbVMgYnkgZGVmYXVsdCkuIFRoaXMgcHJldmVudHMgeW91IGZyb20gRG9TaW5nIHlvdXIgb3duIHNlcnZlciEgVGhpcyBleGFtcGxlIHNob3dzIFNjcm9sbGVyIGluIGFjdGlvbiB3aXRoIGEgZGF0YWJhc2Ugb2YgMTAnMDAwIHJlY29yZHMsIGFsdGhvdWdoIG9mIGNvdXJzZSBzZXJ2ZXItc2lkZSBwcm9jZXNzaW5nIGNhbiBzY2FsZSBtdWNoIGxhcmdlciBpZiB5b3UgcmVxdWlyZS4gSW4gdGhpcyBleGFtcGxlIHdlIGFsc28gZW5hYmxlIHRoZSA8aT5sb2FkaW5nSW5kaWNhdG9yPC9pPiBvcHRpb24gb2YgU2Nyb2xsZXIgdG8gc2hvdyB0aGUgZW5kIHVzZXIgd2hhdCBpcyBoYXBwZW5pbmcgd2hlbiB0aGV5IHNjcm9sbCBwYXNzZWQgdGhlIGN1cnJlbnRseSBsb2FkZWQgZGF0YS48L3A+CgkJCQoJCQk8aDE+TGl2ZSBleGFtcGxlPC9oMT4KCQkJPGRpdiBpZD0iZGVtbyI+Cjx0YWJsZSBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIGJvcmRlcj0iMCIgY2xhc3M9ImRpc3BsYXkiIGlkPSJleGFtcGxlIj4KCTx0aGVhZD4KCQk8dHI+CgkJCTx0aD5JRDwvdGg+CgkJCTx0aD5GaXJzdCBuYW1lPC90aD4KCQkJPHRoPkxhc3QgbmFtZTwvdGg+CgkJCTx0aD5aSVA8L3RoPgoJCQk8dGggd2lkdGg9IjMzJSI+Q291bnRyeTwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+CjwvdGFibGU+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgoJCQkKCQkJCgkJCTxoMT5Jbml0aWFsaXNhdGlvbiBjb2RlPC9oMT4KCQkJPHByZT4kKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzU2Nyb2xsWSI6ICIyMDBweCIsCgkJInNBamF4U291cmNlIjogIm1lZGlhL2RhdGEvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzRG9tIjogImZydGlTIiwKCQkib1Njcm9sbGVyIjogewoJCQkibG9hZGluZ0luZGljYXRvciI6IHRydWUKCQl9Cgl9ICk7Cn0gKTs8L3ByZT4KCQkJCgkJCQoJCQk8aDE+T3RoZXIgZXhhbXBsZXM8L2gxPgoJCQk8ZGl2IGNsYXNzPSJkZW1vX2xpbmtzIj4KCQkJCTx1bD4KCQkJCQk8bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+QmFzaWMgaW5pdGlhbGlzYXRpb24gb2YgU2Nyb2xsZXI8L2E+PC9saT4KCQkJCQk8bGk+PGEgaHJlZj0ic3RhdGVfc2F2aW5nLmh0bWwiPlN0YXRlIHNhdmluZzwvYT48L2xpPgoJCQkJCTxsaT48YSBocmVmPSJhcGlfc2Nyb2xsaW5nLmh0bWwiPkFQSSAtIHByYWdtYXRpY2FsbHkgbW92ZSB0byBhIHJvdzwvYT48L2xpPgoJCQkJCTxsaT48YSBocmVmPSJzZXJ2ZXItc2lkZV9wcm9jZXNzaW5nLmh0bWwiPlNlcnZlci1zaWRlIHByb2Nlc3Npbmcgd2l0aCBTY3JvbGxlcjwvYT48L2xpPgoJCQkJCTxsaT48YSBocmVmPSJsYXJnZV9qc19zb3VyY2UuaHRtbCI+NTAnMDAwIHJvd3MgaW4gYSB0YWJsZSAtIGNsaWVudC1zaWRlIGdlbmVyYXRlZCBkYXRhPC9hPjwvbGk+CgkJCQk8L3VsPgoJCQk8L2Rpdj4KCQkJCgkJPC9kaXY+Cgk8L2JvZHk+CjwvaHRtbD4=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/Scroller/state_saving.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+CgkJPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiB0eXBlPSJpbWFnZS9pY28iIGhyZWY9Imh0dHA6Ly93d3cuZGF0YXRhYmxlcy5uZXQvZmF2aWNvbi5pY28iIC8+CgkJCgkJPHRpdGxlPkRhdGFUYWJsZXMgZXhhbXBsZTwvdGl0bGU+CgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCQkJQGltcG9ydCAiLi4vLi4vbWVkaWEvY3NzL2RlbW9fcGFnZS5jc3MiOwoJCQlAaW1wb3J0ICIuLi8uLi9tZWRpYS9jc3MvZGVtb190YWJsZS5jc3MiOwoJCQlAaW1wb3J0ICJtZWRpYS9jc3MvZGF0YVRhYmxlcy5zY3JvbGxlci5jc3MiOwoJCTwvc3R5bGU+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGxhbmd1YWdlPSJqYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGxhbmd1YWdlPSJqYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL21lZGlhL2pzL2pxdWVyeS5kYXRhVGFibGVzLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0ibWVkaWEvanMvZGF0YVRhYmxlcy5zY3JvbGxlci5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KCQkJJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CgkJCQl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCQkic1Njcm9sbFkiOiAiMjAwcHgiLAoJCQkJCSJzQWpheFNvdXJjZSI6ICJtZWRpYS9kYXRhLzI1MDAudHh0IiwKCQkJCQkic0RvbSI6ICJmcnRpUyIsCgkJCQkJImJEZWZlclJlbmRlciI6IHRydWUsCgkJCQkJImJTdGF0ZVNhdmUiOiB0cnVlCgkJCQl9ICk7CgkJCX0gKTsKCQk8L3NjcmlwdD4KCTwvaGVhZD4KCTxib2R5IGlkPSJkdF9leGFtcGxlIj4KCQk8ZGl2IGlkPSJjb250YWluZXIiIHN0eWxlPSJ3aWR0aDo5ODBweCI+CgkJCTxkaXYgY2xhc3M9ImZ1bGxfd2lkdGggYmlnIj4KCQkJCVNjcm9sbGVyIHdpdGggc3RhdGUgc2F2aW5nCgkJCTwvZGl2PgoJCQkKCQkJPGgxPlByZWFtYmxlPC9oMT4KCQkJPHA+U2Nyb2xsZXIgd2lsbCBhdXRvbWF0aWNhbGx5IGludGVncmF0ZSB3aXRoIERhdGFUYWJsZXMgaW4gb3JkZXIgdG8gc2F2ZSB0aGUgc2Nyb2xsaW5nIHBvc2l0aW9uIG9mIHRoZSB0YWJsZSwgaWYgc3RhdGUgc2F2aW5nIGlzIGVuYWJsZWQgaW4gdGhlIERhdGFUYWJsZSAoYlN0YXRlU2F2ZSkuIFRoaXMgZXhhbXBsZSBzaG93cyB0aGF0IGluIHByYWN0aWNlIC0gdG8gZGVtb25zdHJhdGUsIHNjcm9sbCB0aGUgdGFibGUgYW5kIHRoZW4gcmVsb2FkIHRoZSBwYWdlLjwvcD4KCQkJCgkJCTxoMT5MaXZlIGV4YW1wbGU8L2gxPgoJCQk8ZGl2IGlkPSJkZW1vIj4KPHRhYmxlIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgYm9yZGVyPSIwIiBjbGFzcz0iZGlzcGxheSIgaWQ9ImV4YW1wbGUiPgoJPHRoZWFkPgoJCTx0cj4KCQkJPHRoPklEPC90aD4KCQkJPHRoPkZpcnN0IG5hbWU8L3RoPgoJCQk8dGg+TGFzdCBuYW1lPC90aD4KCQkJPHRoPlpJUDwvdGg+CgkJCTx0aCB3aWR0aD0iMzMlIj5Db3VudHJ5PC90aD4KCQk8L3RyPgoJPC90aGVhZD4KPC90YWJsZT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CgkJCQoJCQkKCQkJPGgxPkluaXRpYWxpc2F0aW9uIGNvZGU8L2gxPgoJCQk8cHJlPiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgewoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNTY3JvbGxZIjogIjIwMHB4IiwKCQkic0FqYXhTb3VyY2UiOiAibWVkaWEvZGF0YS8yNTAwLnR4dCIsCgkJInNEb20iOiAiZnJ0aVMiLAoJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCSJiU3RhdGVTYXZlIjogdHJ1ZQoJfSApOwp9ICk7PC9wcmU+CgkJCQoJCQkKCQkJPGgxPk90aGVyIGV4YW1wbGVzPC9oMT4KCQkJPGRpdiBjbGFzcz0iZGVtb19saW5rcyI+CgkJCQk8dWw+CgkJCQkJPGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiPkJhc2ljIGluaXRpYWxpc2F0aW9uIG9mIFNjcm9sbGVyPC9hPjwvbGk+CgkJCQkJPGxpPjxhIGhyZWY9InN0YXRlX3NhdmluZy5odG1sIj5TdGF0ZSBzYXZpbmc8L2E+PC9saT4KCQkJCQk8bGk+PGEgaHJlZj0iYXBpX3Njcm9sbGluZy5odG1sIj5BUEkgLSBwcmFnbWF0aWNhbGx5IG1vdmUgdG8gYSByb3c8L2E+PC9saT4KCQkJCQk8bGk+PGEgaHJlZj0ic2VydmVyLXNpZGVfcHJvY2Vzc2luZy5odG1sIj5TZXJ2ZXItc2lkZSBwcm9jZXNzaW5nIHdpdGggU2Nyb2xsZXI8L2E+PC9saT4KCQkJCQk8bGk+PGEgaHJlZj0ibGFyZ2VfanNfc291cmNlLmh0bWwiPjUwJzAwMCByb3dzIGluIGEgdGFibGUgLSBjbGllbnQtc2lkZSBnZW5lcmF0ZWQgZGF0YTwvYT48L2xpPgoJCQkJPC91bD4KCQkJPC9kaXY+CgkJCQoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/TableTools/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/TableTools/media/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/TableTools/media/as3/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/TableTools/media/as3/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/TableTools/media/as3/lib/AlivePDF.swc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[UEsDBBQACAAIAEKAQzwAAAAAAAAAAAAAAAALAAAAbGlicmFyeS5zd2aEuXN0Jk307/vEtm3btm37iTmxJ7Zta2JbE9u2bSczmcyc5P2du+4995+zVq3uT+/aVbX3d62u7t0tpqUGS+MHDvAEueqBMcaXceMS/K4wG6O4mfQCXN8ZzLGdfcrBrVvtIrM+Wq61w5HZaVm9dJNkY7BeKcZhEWismX79IINOgACFkUK8IQskR76hE9ZGdXYMDgzJJhdGrSXHBt2HvvL7qVXnbaFLqGP49worSamxyug1++KicrWu0rDH+/Y5M+BvqnDB63JgX6mssd2meaDwnpa7rzQM+MuK3KNP2ehIDZtcamUXlBaXoHfDvPYOWmye4Hfv1/OhG93vJDaWTetW9ISxox4ko4weLRvUOesabnXfnwRV+jIOMS+PjyU7NFvK+wb07UudDouJGOQYMLJDGeuW6IrGVFku1HMofmw4Fr844EGkRvmc2D6XipoamXh1qDJilrefZRrcAGs8H1z3U5pse1UdsV4l9XDO8yQ7VJxejmVbeEZx67gtq0tSbbeZnF0wJ/RtNFyN9NjgXF9vgPY0nfp1qZpR5Yv8UahcbbuiEvR1UxoTN0Vqu22qAjo1ubVR+gz0xzQruaLFJ7P7+2evsoWd9araji/HSFFd2atFcaFhTd+2MptQV/XuMwgOdZGdv6VEbEraRfa/b2K1V/ofN15eXc6srdasPY6Ddb0iYZ3mK3Pz+1dizyrEDxUHNn3/tvzvZgQPaef5mxTkzhPFexrZLe7lv85WLuZKwbe9YA9J9jtxZBkk8iTA2/vqU+6sP7rnUX//qz0cuGPQzypTlsu7Q9O3Jnct29gkNqIOXgu2CQexYRyMb2IU2KlWYhQ4qXZipdipNmKlOKkOYubYqdZiCGw27Qip5uqtCKmm6rUIHAPliZxL1MWSm8qmMbi2Ysc4qd/EYtlsukMbMw0BCt7r8kwBmFHn5m3zkxbeIM3OLD1XnP8ZNRnL0rclmbLPIeYmhp8aN8/M2XoAuh0Zhu54PXZlWMJ0WIuTDsXp00+gVsdA73X7p6/5pvWdyrACuvSpeROrDuUZAKfyDaraoGGREHdDqbqDNNMaAaY2IOpaaSc5nXqG5aCT4GDUy7SpogTYZVh9jWpMwCeQqHMIZW3QBQZ1OWHWYcAQ25azW6FoqkklCD3WhWLLwZQaiDwXILA6HQsTZrIEjLod4YehuxLoaDOYdm11e7vFAIjxlQ4toN8MTFvfwNC1HEaeA7BUo19cyTIP0MdFItOiyjADvPI+49ZmAgEttBc5xs4g7IqLdfI0ASPA7cLdTGnAYwtGAnU/OWgGU37RbqYgwOEXPGMmK6DWJcomwzgLwL31AL4IVqCLiWEsS+5sZV4q6cGMA9C3rLgiycSMVKk6aC9QCJIB2eN3Kg3QyjGWBdDP3V0oa2SiA5T0nfSzmEi1qDJxARDdoeSLoMThcGXgfdCMGYiA4nZjXEDMfhAMIGEUoo3QGB9ryz3go33PHWwrCM6BrQ+csb0f0HYQhAfniMfYnghIbt/DBMXvg2hD3CNmbDcAqCVWqW0RB4i1770A+EGwtggDrPUdfQAWjv3XIBnDEG3hAMZ2AUDbYdAmmCPUF0p99XBHwTkg9eV+DZpahhtORrQwugCnccDpw69PYlPbEgVkar3EonNhFuxhTh4DOwz1RUYVnZpANCspnoaANYh/5VzeQTAvEkADPoMvGC3JhAS4fOWB7tTPDhD+IcOGACgHlIEALOrYFwHGIFjyYICnqk8siIErA+kT+HItUPvRcQwwXmBvwwZcy7iwgfSlWzvgA3hNwjbB62O+okNz+gwU4G/5GfMZMo4DEmAsd/8FUL33lQnsV6KLX+EXnFp8OlR94Vb05zBAD9WY+ZMk2xZjAA8uD9sWKyBRqnccngtFuHtcskMVNJBtSzPgpF1QniFu1LlY0y8UssLEhmooW38TwKfl6PRYb9WcG6v3mKrbA7+AoDaZyLWLf2euSCrKH5a4WaE+MemAo45LqQvAapINDYXAJQ+LJO5bQyU7iTYRyXiz2gCekDkh6USK3mNLqsK3xg5vwCpBDgZpcnI7lmmXLxKzyYOLjVS31KvWRqwHRnLSR1gUyykeJyooj0JO36RwWZwbFNMMbqH3wihgjNGTUVg3iUOZEdi36p6kLWHbHvTgkfPMYWjSYkDVMU8OBcDvq8sBa8dYWYhFueVQB1Ow8VqOJidhSdcyDPGeRcd1aJf6j3RkQDede9KkUY90ye8uSKwT6m08c3Vkgrvd6jx+7CHiyXs1q7tfxHl+47lBATjvzDrVAfa8foKr8Dm7xXVBAZR2eG5IAOzjmswKZEge6AEHsgRNrihXeYd/QetlXTTjfOD79HvcFypgEWedZkEcc0mVKHluhAD2HMcOKZNAXj3DVPsZJw/QchHJ0eoRNaM4PkzAPcwKHwePfhFRAjaCcgWDcY1aIHOsjRMR2F3ZP/xXpoDOJuUyTl7saeetn4A0WIn+BDJ5wYCk4HMUVyKT3yAJ1YGwiX0sA0dgAfR7tdCJoAZmIRXQxGZBrUQZKWQyVcr61soV8lIBFPD8ZPKSAGlBCPjZSWxOqYwYAH3DXPSBTTwzB0iUIsxR353AwBB4QPXCiz7laQTxKWpYGka3rjf/IlqBjNIvUMmMAgA1NKiYATQ0mbwywBgLDiPmlUxeBTCvmZlqNSgOcRcCY9GhQskgrKgoXCyvG5BDPkm9iEG8KpgXw2oA4tzoEssqAuLMEIdrXgR6xLwTGMxCj+IBOHpoBwaBxnCec06UgI/5pAJl4yxqurVoKA+sZibeaYfZ8QkaHuw1jB9i43TRDL3kO+dZbAfo4mm4stoofY9ZtiVHayI1vUzl2QN8wfhZRtDBuKlhvk4ZSUj4pkAQ+XGoOJYGQNkGEffIEWjGA6ypd2xpTUUrLfP6CKvxsmxxt34/M/OI2ac/6QR2cmyAFhLlJvbnsWwNO6COUJ4tJid8M2/CDA+vKc7bg2195GHlClgT1w+1gendBcjIT6vfyqgK+HiQZwFcSJOfHmVaASB01PMiIZWt6qTzaKAAuZEZAY/yPAGiVTZeZXjCgev0s2Zg1HOHGYaAYcrs488HBbZGu6p8ne+Kc7csS88Dz+S9RlRkGlHD3GqPiuAsORi1z/Gn2VRznS7+PHVWT5X5qINnVh2Mum0Cz7IIhHvI4lCeJaCSfIhbDb6Akoh7Zgi0/DNntgaAzTUCtqUzyFL3QIbhoXXViiYE5aYnpNpQBauM0OGnXllmjU6UuH1RWnCUG54zuvc2/U+4RA2avi3GUbHxunT2s2ZFsfE6VTvb8s1OuMvgybFsHQDNnndCfN/tF2Hh7YVDYZ/lsvQIlnNA1oBNTCTUnLj9uRO/G9GQI25v6xN3A4NA3F7I54F4MI0w/LSGQWDmn6eAIj1OMDSvEeNmg/ZEWJ7YmME4NrhyZAyYTNEqBDu/TDktD5+siHvSACEkhVLXTORQfewS37h2q867iXr4UEMsB/849tPvxhqdI0xQHVbOC5JFcQwWFUpTMgVyDrUITJkIzMbrcXRXctEYBVFb8smpoikjYY3EAiOpaWXULOCteZmKh0xPbIqYzFlSzxWOmeWDiNcVScWHvCB1lgC5oVzaOBRGg7gFmnL4Ha1xzw01TGKcy/DCnpQmAYXMOb1hjv2hW/1fahy8F+cy5dxYDGmZbhods6ibE4h+icrEpDXqVK7RipVu6rMSKdmResfkLQkeL+u7O6vEpAb5Rx1PFySZxJQYk3PqSxhOCw5VVB+4mGbTcn5XKWSs5D2LTLbo1TcXZTKKBihSuamCJhgJ1a2RWiqSRXfSUC3EDxQBvE1iw1BqKjUXMQJVVD5iQ3eblKsNbY7JNMrAlO5zkmtsAYWHMiklvrCcagFZ4C/ib239xtXCskCoNbEgymoxWSDSmlgRWj0kDQxCrfhIv3u1uKxo5CXJPL0mKUUD2hWJCoUmOQWFBvPMSIUscDhryKE+HW3aLFQVNcoaCcYigDXyLJzABEkm1bJI1OWWpOIhqFzmCtZHurJbu4uysD9tDFwj7zwy9z8Pb6DC/qeHvNIVoo90PRpdWtLcrY90c8SynEz5mwC57hBuGfnTGiEqA5BCDfV96AsE1FA3/wMGNVS+4U8ICouEFvUZnoKXaYbGpQy0W2CLxGwoo4nMBTJR6Q5NlJG7RwmQt0Scy+ANN8rboCyi0cEjyTAAvYFda2Kq0Rl5a6wvCUukZVTusf+5RcaaIn1OsEETyYAUKX8oUu31qcy62IFIta8skOg/8JYFcv0H32WBUutiC8EhvBSR9uaRUwGu1YGywG/rYkGy1RGywPD/IFIWmP4Fc6Ioxw0Ih/+la8f1qcfnhimH8T8qTK6LqR5n5q15vCSoe5VRveRROGfQzj4N3TSFD/lYxqonteb/skcslqhOlwVibYgVSVRnfcbwH+TKArX+gwJZoMd/kPe54BcoK6CI1Otdk8yTlpeBN8rMmjRHpKrLXBlO5ug0Rzx/EtBH+kuPrnXCJN2hp6Ha1vASTBaBhq5rkgoJeaXqOP7/9Nh2+B+5VjfFLD7vaTT5+DF268knKznzFnPvEBjfT/z/NOkx5AaGRbK11ISetN2nMyxlH/JWiUOk/MJEZKK2qajWqaiCKJPtjTQdFB2Uj3g2usZCqg0hrfBfPCm4/+J1MNfnluRTbGJBY1zHfAI5BDibN9gUqnIZwIrzmwITEQiOgsza/7XZxdidAfrtj5JAyDw1N9fWvjtlT630z1E/7O1V/R5PtpOzbzK3Ru/w/jyXtgbiN5a2rqtu2lXYty5x/jNY5mwuuTLmF8czyb0K8QPBYC6CuJz2MPuYbVta76ukZMmx4RXjsFnOgntHNzHLD7g0qG3sjhiDijEXe//nvUrfoIHjo11taVw38l6XsW+6ZvNdeoWtIfwsLDUgMqfkerbfjxIEa4zfl3I/8RqDNoUShlvkBG9HDh8l+yeMp7Ci8fS5uVmUg5VIcgCtM2zc9p384w1ydl/D40c9qhn5aV2o8iGFMRVXyxG9Z7wZWxb4VN1EefjpPLGcpUsWuHfOnpB2HLPYQJ3zkHXfZEyNFepd+ZYRst+LnUjy2MDuZkUE/gAvSWLoLNcqJFdkzxO4L/XtkegQpzcoYQoxkh/mxZS4O7aDwB++ZKSbZHFaM+OFfpcHTnB2khBiPdBWp+TQ0g5Uk6EwL1I+GwLt/lRiVdARR6hz2ZhkGO1+gv6JaHsTVGb/5JDhCSPtHoo5BSQSsEsRVMf0HMMQH4bNDvK5XxYTcOg6Afb6qMz22QwFrq0OMgl6JauGrfYyfRnXc6QYY9OhXEfl7UcnA2gPyDXg60kUIIcc92kBeysDIEm6tz3Eex3zZgMjSDbvkXpIRGOim/X9L/Qwb8K8vsG+49Vn0n1oqEsvjlN0d8HktQnSrVYyBXS1b/lnH4zskjDcklGjA3HBHRA9Tord0q3WMn1Z9oEdodc6qPVmdCxt9QxyoD3KKyihzG19GA+GjCHjUEzSvWYP/c8N/VsDZXQwVtQVF+355+F/3ZM6Qhk0Uc/MoL1J2kOnNVAdnch35VrVZArkNM6jOiDcrS3v3NdYKUCCm3E9xOi3M/Xm4tMSA1OxYVxzeJ3gsovI5+yRuUwrhCWJgHeKBYfQ8MgDMUyBcYvEf00uk8Fdo5PGhFkg5uzTIk3WLshBTJuK2s1AC1b3Sve0buiZmatUmKCCNuMVxZ6sWGDwssjnPFZ6FLYG/gQrkuvRGDHr5ZDP5R4xEOZZh8RR5I2vQUHlI/6gNpXTaDhGhzjdY9AYTqsEfl5hbFnQtSvY0bVPLyOxtCvAitxbjJiYxQtlmCZk4Cj1q8ByB4IrtouX7lGys8WN+eXEk9d4wiKC9lGQK76JlhrvIenrH1iFBvkOhsjJ4kfq90U+hFHEgc96wo5cjaWncqP2BqD9WkClagahwbYmM5I8kIaO/mGMjICfRbYhAurLH/omQDfpghECTEmjFBYhrPWm1u0CcNh5QaO2BggHJHshSSx484dy6PeQqAzcw1BvVrJvSYhnB4YjLSLYciH1iw8e1LguiMFkUeyBK0vaobQvaeFOtidXhEHM8w/r0kwvzwBoxjCDsQKEqBXx/8JBfxMr1EqQmaNXHJmbjAB4SUriD24gYsSRBaFf+3tJi7Rxk8qMM5sRGkLXN6Shob4LU+yl7Gk4I763aF/2Y/OtYJaH5ubPqEHWv6tVi2FjvARGtUjgI1dmecKSDHzKNsG0kx2RD5aDoK//EK28BJDih4k79BVdMDpVGCRUvsS3FIcn2FLAD07l3mUI+evGKIQvTRVZD7QbY8A3Eacm2Mot/C29g8qo3IeiBKcOP0F+IvKWXMiwo5YBtc8eRiUniIXi6ngLnXq6v7aCT3+kkyBGRSZ6RnyIbZ4yxQR6Bgg3eLwPGYLZRnA8DEkmEAWfj/xB/bDI7asoniwBT7AXUd9aXfDk+8DnKTNL9ZMpfW5rz4F+avTwQcMJO/d5Rh0I0rHDF83HSppeKPgA0XiqBgsyFZAcgmGDxx8Knf20MSouzs22V05D3BqRFewrvpZihnp+d/TqioaoNCZNBpaD92bR8DvuF8Fayc/k3Uaj33y/cuW/cFz8EwmwvzD/Cz9kvlBN9BO/q3/hd9H/0/f/hi0+ssKLpEvYl/xKX6bHr16B/xc/XL4QRfprfqEvlPuybvt8IYHEJxpIfaHUJ5IwF1+9HR2QfuT+iaNb2B2/xaH4REXvLyyh+kRE4y+M/8K/nl9oTfmJgn5f6Ef5f/r+XzHP4gs7/kOf/x/uUn/FkPKFfF9WQ/cvJKT5xBvfL/Sm+t8Lw+ybUfgnRRc8eTzw/BXgfvPj5odoW1LJMGnFz2tdUtG7KGdwW0rjtZEjaCmNE1U3b/B/fnTzRKVNzv9mZl5I9MtrSHmkSF2S6+iOlxOdpckQYCES/TI2ga89Kul6yXdsUC3zOzSqhd6qaQdUijrO7gyNUbCZlfTUJxadFgnvojwMy1An6eRPwGTEM8MtKixZCJEhlj2PYlcL/n6WvfeB9opMl0dciqkpBQ9Nsa4DPiUULBGdlp7wlIEVHJFuQs7a8IjuSxc/fzWJsx245M+m6dMDEp1fQw3Nz9L9NqR4cLdRJSSXEUDAw/QffHof4CmUdqsps5rNShDOjOUwEhtYYdoWdX0jgsZwiRmCJvJwA7KRfgUj+gWdXOoArHo2Pvpo2N+ig2N0XFI8kqNbezKiqgi7M5Qf5sU6Quhg7eUBExGtpsfkeo0O1JAJtjgI9Q5jYRMWCz5Bc2obEVrsFyYhfgyQcUZEGuthfn7qrQEcoiwAf3VzPNu7billTchhwEx0uZ0pRN7rBKoBB2TonISEeitKr438zoQusR0ZQK1uPpxBG8JMzMBFmTPiWYjTlRiqpyvEhsu9ASXV/iz+x5+6lGchloBo2Go7sWS+a4Gckc4MhV3hPavB6tdIlDsb+oyZsniSah96unEmxsbG2G9CU1G3P9i/F2mzrLP0NcbOGvfB6oCz+UeApKHMTNBKt5qmKsEXTGuGaghypgRh3MIkXVtpp86atV4im6+PBLVRR45G5WEHCE00IjDEHzYQXHoCAacS2q0Nzq7djRnXjJwDjbFzrhRedHQeduV9sknX2k2mYv26qQjAljiEaYPlruj1GyAZ/eZaUfmvXaEqNyAAC8VqfURTZNun2YzXVyQkMy6V51OiHHM8o01tnVdli87o6GY7scDdOxYCW5cDZS/OcN5WBta2FB69iRyGTVISIzuJunXn4I3fjisr4U2tgjnPyKk8a6ujM11r96OtH2n280wJ9ir4rL9+MxHch7e12sVwtrAE9SDoDJSU2E+HUUqOpYv2tqcrYduVIltjc9+S2OE93uFhFzKaQaKlc4r+a3mRqB8nsWUUwWI9M6Hrf5yOToi/ak3KM0FDQ7YR2yt5Tnnjx3oQuBqR8ITUsS/lf6RS1QZtM9dDjzZXvXtGtUk8SrNH+W5IrDAfU2FJVlnDVHv1GVOn9q5eq8RlUdC3dUyK1XXMXAn1vLn/5x7bUJW6lxzSVM+rKefXU/FqLXqALk7Mr7NPXIP8E/o7rusu4Pxu+cVIWI6k4WidXbvRbk4C6jbyozpfbVRr6e2dqEKeN/CbG7QEAnwE4cltxbvgzh+2zbf2x9h/KLtqRrTp9W3wFPHGcYgWgg0IoIRtHbAOFmdoPmu9BXlB6+heQiWsOL+7CTb/lFDDRwsjju6h9gua0LSveUmfNa9R0UMc0iBFIs3VbytFwf8wy3wDIGx+lBSAPybIEIciSMIquhMmudKL/pbp71oQG1BL+D6gSlwXHvIQyBCgWkBPFm5q7K85XyIsz0RFEgoiAgv+5LxwPfCbFCKbJlJeeXPYKjuoH51s8QlF2P2fLIlV9BSNIBnFQGuJMesxybx764dMYBCqDBGu6WM+OvUZiQjyp1dgUIz8jzn5T+pvD07EwUu1fK1Dv+LjJ6cxzHBlvr9LcOVLRqyy9e3dcsLCIlgbyoE0dDSHneHr64oOXX5IekXjMyg1HiavSpQMXf9NGTriKY0cmFurahUTLr69dk77ZViKZXD83wZQqi+DcjYGGQ27JOlw+o92jM8O8PeGRQ1YhvuEAs7Ng5KCbw8JxPRf004dfVY0ok7pQf35XyWOVl/a+FfpR2csevrZMYVxZ/74WQKaTKYEMSSHi0evMVJBNMqSf4+LUnBRJa4KJyci20fPANURIP/eLTM1RZOw/FldXbmmkkZTzhcuDFqhfK4hrPlVNbopwpo9J/xnMF49+qy83DtlA6u/qtUfVehjF5+LDVCyfM5d8oaPoQKTZU8pnSOJsC8NgZ4MBms2hOtHyF82oKcby1AzkqZpKlfVULocAHKXNrr0P23wkOV5V6rqXugoWBnvgps7JQ4BLAl3GCGpl3JwZT6NbAzST1GoCRccN75EQ79iNdfG6flfFiZ4ZbpuD/stfWrVMW3WbzY60b9SViIrm7oCZvZjEcSnqv0MtergAv8uXUlZ6K9cIowkjFi9PXMKgHORR2tYQRgkLAH6hPGmMhXB/9TgvRO6tWj2lZ16P1nF6WHYuae9kd3IaaaAu+Hl+gwsVAMXaF4Ye5eeIab4ItWhzVWO/USKVkPYk0ilDu8dEhzrHCoa0UBLjjKpG92yMT6gP+3DXiXGuEMCOzi6BKwxfGYnwbqGxgiGNZHtfGsolI0JIL+QzFNmiQpaVFRHDEC7PIIyV4Om0+Eq5JLu45Npzq/4w/wd7IL0ewGwhMW41vRaLqYZwpMD/5Jypf+DBpIBJNS5uLY+8V0N/jfIj1xhLMdAWWVmxocOoHf9CIV7g6Eyy5nBBEPt5hgKLWSpnIYzQZUuKrQyGMV1jlpF7glVUysFpPKjfpk4/TE2O2PLy0h943BYVO8I0wtJh8hwgV2FTJophhy8sYSqK5lQOTboZvUbbUMDVgoCxE1UNU4D/gu45NzKBegS65UTVP0G+UZwsFRBRqQdjUUrOpteVCbD8FQa0EKOBS2aRP807XXxs4k9+UWRrNn6lcYxaTiCH2MX0fI7la44fv3QYdVyJGEjxWWJJI9QpPajmfbyxAFw2/OkyuIQ5Tsmpr9wHEZU26XCwq3VgIeFURnvnTMytxNI6/7hD1ESdMrA9QdH+907fWhqH6jBrRj77fEv1twf8Wbf7wVZsRws3SWDSWYVwkYfgZxh2duY70e+GjFrWTEkc/D+42lgU0Oc/wxT1lLiSKqn/vtkPYNx95f7yBG+zy0qllVDBBxfEr1/RVY+BC8MlsoWw3ay6vlhAAi2bsaewk6qtXTnRMwUMTRYZZYYfReOLnPSjTyPr0gJOaddzRfXRapOVjAyiKpRZv+dRBSRLIKjd0fV3r+a3BzyHntD5pe/yE/S9HTWZnmfNxLNqjXoN959iBljOjTudG2eeKP1kSEsojAs61zQyZwfavdSwShJcbF3xb8szgfYD4oOJpqH64CpUbF7Zb8spGHKlYZAYztP/IgSdWqAZOq39n7dZ5Gc/CCUWcsmGjQH6Eq/G2W3YSW60u7ZOeNYk0VTMl88uhNthsNWZ1JejTlZI0HkvSpxb6awCIwpg0UGfWKrta3jpYejMLIPQiZLOa3VqWERuJt0YAz33dUrq+GeyIVqc3Gabp6gB+C2ZwrNN4LpG9yiY5Hbzet67TaByYYDVXB6rWsNrW/MU+7/JaD+mUCiXXp9jsV50jUjaa18GQZejBst58Eur73dqAU9ZzMeXO/rjDcGnsUR1YfnuDuZZocOwbj7G3kAU5V6bTOE8Cb3hDyuisXGugPZcVRswTzHbX+1diTIEr8BQtO2BGTGOHk1xi1Fo02pQAhWlaaddKuhPCcipt3guFOpTihcucZK6GgS0XpYhGsd1rIk8gyWLuXDTqAJB7JygUHFMlZRqOyvlCb9rHjOi9BKvTKYudi41HR8/aXKwL99DqqD8PrB3V093V2bDzfWJ7FbrBwCTqdL/etbZsIdFK4+ft7uQHauiq1eIe+1UAOtZuXKaZ55llGB9XIGKZenPTHTQ5U2w26T4qytOfrvHv09fo+8zTaEOdYJmPdJaFSYNlS4LWgUloQ+xEvdaNGK5jqj4YQ503SY2+XAGqhC4IbztEaTNUJ/LON2edy+hVyQmsur8IKy2mBYIby12Ec6bWBBRWWZTYbN2lJr5oU7A3Kf/75TKURzxMby4jZd3PeDdrH5WMbcncLKGLqsWmoQN/3lINi/6hJEaqBRlftcCj+v7K42o3CZbzRrV7FSv9GFoXbr9Qi2l99AwVFTUzpzuruT3hE86mNja2igX0c1sejbKO61s3wbOnMkdzwuQswJor8lqFdugnOetUtOHplwS6sAJ4IA8+jV8Gr97eC4W4r3cxLR41X+ZNRSaUoxNyNvzX/SrsDSzMbd/QJAYvED8Rma3EC5ltD4LKdJX1ZrZ/qBMfED5p+QdqMYRD8Y17eng1fXMaLrgMW7mng458sTt50MPT5+pYcai9EwDvGlxXrAwsF4NeasBafZAQHBhHWjS9q6F+AKH/OqGi4O0ja7DJelRUSNIMlXgdNDl3it1P315SnS9Ce3A9ro9ac0+EwqU8gunSCKSLRZe08FlYEqoy0FZTSVgrVQbp+vU05kVlZRcYTGqkjM7VBba1cgqxDlUGdLYLVdLioSlsrTXS253zQwW77RiTC4tvU+rl8U/bUfXhr0wOPbrWHEvfSWOdP38GGCiTREzUIajjsU7hn6oyj9ktQ1LzFzSZExh4nPxQviZdN/P7JS26eAlIjXkYHXjt09WvW9e/Tnzb7RcZO76xjKET7WUce07ckpjxFYTyILTzXiOXtjRhQKJzqP79xbWBu6+rQjdRDIFPLRwKTayBlUVtGdO0XHsh+87AXPdbsNQb9eCvtOKENQrFVMZqmEOUZtlUv8mXCwwLRdR/41gedrcY1B0X2Ge86Aaol21dIF22RoUXGanIgWcZdicz3KmtCq5oWEZZEZPdZFbdOjaEu0d/x5Vh361vA2HbLk1t2YzeD48mWoBs/qPPSCS5FIMVMUOV+wARZ9s4Cla7+1a66VxsU9VndTavwNmyIGLd2MxO4+L8KHeo3+BW+gLmZaDqRZMNzu1oRU/KKT0XEn3AoSTpHn1Emmco530QWWg9m/e2nCGlWVbHMRkROYMXSrqWImbY4Zset2x2y9atH4n2fd1B6bkR3OgwJHS1K2cpPa5lp4LxC2zYJcArckOyS6P88SdI8Gak75l37vRS4eq5req2BVZ42JdnwcDPzmCkH6ZtLUup/yElHrus96OmerrwJG+I8XIRYLH42LiIY3LpJQiON02xP10UG/KZzldiPDH21Qlz95CdVdUs6YUBHestmMvxATrz+YTs5F0UCu7MDAilaQ8KQzIXc6UbfmAL1SlzV5WdW9s6tHyDZTXBNPUmVwcDBR8998Y2ZG2E4h2YyzqpTnTIoqxFiJa/Vso4iFYo7lYWeuNMJlghXaxyWOuNTWdExc/aJ7wi7VTJOMWDc9gfk+F/86csiI9Qail3164wAZf2H3WvnyqtwJruBTqUVYcJhzBWsJohvStSrGIS+JeIg8QpLE0JKPfM3q0m/5FqLGxgqEzAuKMu/MCsEB9TrWZVuFZ5Wy3xl3z1EVNxwteArPlGpd60uSCvY/KxQyNkoqFDKzTGzYyty7KghYWkzLnLaWbhCJtCCJIcQ4WYIsVrMcwMFErsSz+UBlh/D18aDBmYZ17px5u4IctQ6mfMkFu4Aof20GjMTeLqF/onkI4p43rE364fei//Gc8rTp26iRRAnTxkc7yEAfTeEuG2Yhixs8yMAYFTjwDOa+QRvN4Y6LOMzgPhl20sf/hjKqN3zP6cRPHAc1fJ/ALSiC/2PYSRMfKfqQ4MBTHf8WfbRLUTnXXyYHK6WqDqZqwv04cdMBMSPD/x1CeQC0XADU6mL6DT226HUfljV7no4xmARkihFEdBs0xGMLHxswDfkNER4ihfHYIgm8kwmn/6FUCg/GSraOE3cutVdOCjRswX/dirjcrssOfNjhpy87sqq7viAqNB2YVgw46cQemSSYwcQcmSTo9gSFVhykd4pcHT7ME226gDP53A99v2XpAqMO0VmIVpr4eknQzVQ6EsEr5dqw7kLBB9olkEuKazt4UqgQ2W1pfyk+LumBYkLsklA0RBG3uy3kNLlTRp53GGmS9LyPoyLvm8amfN2lGQM/d30k/pctDPL6uc5KPA8jL073m8qmx0I94mvvdtuArpsrX2xuAw03U8AvQgUlHGj+31umKnZvW4fKYfvHPwl/eeTn3or+LUjfPfnz0gH+4JEvR/rz/FiJ7N/d+i+HIySvX9/2/nDldKH88pm5Fvtbn/7P4oiIh283+E/CQPuO197L53CI2km6Q03GwxWXZGoxAQ+AuavPrx8J/2AsTzWObu8fZp3/rru0kfnvdvAl/Fyd9Ef/FZ+beyv2VxDJg8vxp6t7L1G7H5IW+AwP30+EdvsQNpEqifugVh+dG5G0iXUvCB13z2it6xynPxuHq1NGaMVgkcdah5KG3b0/ki+CT5PProY8s6ciZryHU3Mtfmi2JuYrWNhhOooUNhyKb3S3aKwrSAzEiRpXFbgl/0Ce1ibv2aNv99rkmwmaPvVeNCZNPGMHC8/GIdo4MrFEUx4sYfaBDw1TnyIGyxAgFa0LorBKr3jO8K6zhs8aUfZUZmmRc8VN5lhIzwB2r3YNU9c8V3xstl23p8SlRz5OphbghM1IsMCe7Y+FODFIi0FBwhm7iSESYPMEYb4hRGHg8pKyu+4hq5Odds76HSTnZ83NPBewBeiwjBIb5RtbxULGVjWMzc+ExoXHhZ8ONhyedNMg7u3RYQUrYPrF6QsHcult8I0PmLZQbncfHxfXXgwNXeOM+nFyOtCBMrFxt7EK3S5tYok0PwRe1atrx8VwpovlGrqb0fu/D1n9HXr6mxgX5LCZXGR/KtCNTZu6fSxrwsFKSsihaYXO6wGjSyhT8RgkJ4JpJl8OI5OXSorI4iL3jwZirrVTnM+tGM69YLpipwGsRWDxUvStE8ZDmyFx3LXF3MqNlMaT430hlKLeE76oIhemEC00FHrF5/xFroE1vLpUOB2MRX7MWDK/4jm7376sdRAeMSFIqmuIvQ6dNQOjF7bn0katR9Kd+QkWs7wzTBxqkUmDqevgQSrikKyu9PFy6Jdi6Y82OGAorEgAe8720qZ0ehGNwNKmusJTv3FTG8T06Le1TWap15yPIyc3w9zV8sNn1VG1+cS6AQZlmpxNv7bIcVPBZqu8TSePDEWyjACohFjeksBIHJzg0fe419nX0bhv2buYfDt8u3SIS3R1+lfW7pNa+sYW1g0/V+mY/M2owmyObS9RA+8yXCr1Xef4Os2k1oVy+XBNrvyq/wk8nQUWt8mw52ahQY0+SD2Ynoi3HOU4yRYL6Ql904CFf12D0+LbmPBlgX2btl1qQGomJO0K4JWf8NBrapozKmMlGM1YUVCINY/hSBMb2mxuNMbg58Y/1QYaKzhZv6EuaO37B5xAVMN5L/faf2wOO4VzI0YcFnAbQq4A7UsR7UtJnh8gz48La9hF52bE9KyF54J2VKcIo2Z0J6inMXOfnuYkk9IefiPT0AyWlHQLNpYHi2y2vBqcdmY06fjsQkjolH//3Xc1TwFRsHs+VIYtaEsXe+ZZ06tuxa7z5LzbdcLvw620OjXU/5H8Cy3c+f0xcAx+fYE7vGAxRp5gKh87N4vfd8/Ys/Ii4IRObrl3na+MXPXiTGn1LV3Gsnd+96VqbvrzXV5IaRHQ3QG78NNn6Lk78BLm7x2d1PeaBIRebMXtbkw/xWeVpUNVxx+5E8Yt+X2y/muzpb5iCVXbR3PyyWJghXF/fjGzUqU0+Z3At3EmknZHik+tLwNnbhAyXLLzeRDsGFrGOe2nvPgQns4s5SyLhnW3IxVjBsXIw5HKuTIb6ZjTdl20xnnctIp7VQW8VvmtkZVWL6i2u5jBFnuzNge2JfSi5SxvihodrFJDV52OFzK3Q7YXB1oFplJ+Sur+NPSk9bfS6JTTPK/VvE8SK3CVGfIznHiwFTDnudbp9thbUSTwb2hQj9xh9TF2bq3fe34vnPT9yGu8um+88olQg972De7O3Fijpj8LlSyeoTX1X7XzT9D6EX2elb06vsuxuXn1PCWvP23BftbXmrvqrqb5r8hV6y0mMQv9vZP2+hKoK9JmfxMs4lg0vX3HmaVmtVx4yVvH62gesiztoRXP/RJluos4AB/xKFKNaWUxj44ZrQ6CrgDwbtI+SfAERxjxFpBEJ5XNwCIz0Y353HIGtfOF4+dDhzuC3GDOWbxDCMWipPkTrTKkpw77fxnHIDYncWY9zMRcVRFr2+KA1rUnr+1mgd+tVdA5HoqZ4aqMIRQhdxP9LCD32yTzOxy1e+1hvm8i8es1jt/ulvXLQzl+ABNIk7HwMyRw265dUf4RN4HRbu7+MmeGZ++h7+R3Oa9lXpbtT9np01acyyuw/DOS9GLeF7yTRkjuRa3MN1zLuT+9wUuArwf+dn7nfWyDBMnNyYAjTzUZOKtLABtZC9uPZMCBPUIKdWHewrQ1+YGenTiCy2TaHv+i9nOLcqbNdH+3tFiP9iyjMqN7DsPtIsosaL5WNaTxlvWJMLmryItRnICZnte45HtQiSKWvqXPfkVdY67nofo6DwIMPW9UDeEPP6kO3crcF+/dAP+YVJ3XZkuE2BOkmZMfj6YgBC6VpnHHoy7hVJaxv0SH3UaISJHGobbm/gK6C7cFBa/V4YyumSzWdrst/GrPxUspb0vG3C0L1Ci6NvUWUiZR/wkoePjdjtIbFRbWsGTH/KwXIeMu47sj/vsbEr1mqaf1Bc3lGkThoxMn4s9D3+Wr/6+dH1tP83h+5n9Lmf7FZxMX798SOQS9IPrnd55T+T/lKhFm8LkuwhkF/Cz2+db7zzxd6qfrtpZDFpb/evaPf0eJSh8raE/ZuwvXVKx5Cnp3BtJUxsycbCxuyk0eVL9dktHaTjcTCtccfDwmsgg5LC1cmn6hscDYwxyiUoKuh4/Vl/cjeCJzF1ZpMhVDYYxJyhsF1mhb4dBlZT70KEK/R4Pa37nzXe1hVjoMGdRyDFUucFhgwk3GGRFJbFoof49Np0tFKcRdHP879U2XLFvpKJ2eiFe9ypSobksZid5Nl/hMnWjB7ByjOpcdewFnAFeAW8uW3UYOZYCQeglrYpnZ77DJ4W8sU6e4u+CrLWTPhPDGSb5BIVxaV/y+9dgKhO6phPZ1695SmncDBx8tEJfd6vlHjiYmX3qkb+PUXlJ5rk5uMd8Wcri4Ff79t/q25dCVCN86f2rbSdbLliUhrZZjbJSlfWDts9tjqzywY9zL1TeteUUMqvIYWp5X0X08C7XIf31wJijHEexe71tzaqYt08Bmw/JtzXJaUPfBYroNBZV8xOZ4FKm4JVRA1Ny4Z6C7NFlOcn0QxbnZoGRMA2fKQ8ioFm0qn1V6j32owwDmI3E1aFAsa5Ao/RO67A/Y5SI2ulpOB0kfxmIVB/WcPFUExj9nzE2ux7s01mQBb8uuWiHTpvkes/BGHhaYzAV/BCK4AG37hrecymjpfpH11zp/XM5KmqIwTMavXx26FEiR4YoVIjfdi9P76Q8Ugg+mveMensOeU37iYaPAOrRxE5qN7CRguKRoWCz4d/C+/gzWaOghokmgiT9D749SM7CiD/PS73TwbPf/PlxnaMee9iq+XoJJt15q5UCJIuHa5erqAKFJfVyZUxkEPHMmXTzrVOw1rFs+hLLFbKjT4Nag1oJ1wTj1tsVxB68Fg8qA5e3Q2Ns9vWyhmGzF5ahyeewwq6xXPD53PcH6gL52CD+2NyldyLCJrTVAdcMGK/JQPNTNH1Ka3G9VQme+NjYCWZGPq9JjsdU1MnTCQsACaywOFPa2X68Im1i+x7UTvuj3AiE1u7xkVI0dGNPBKlbDqv7ccckkrwQF8w3osZQGkIavjy/vZQtF0lltaxu7tc+C7DRElTINK7gfWlG685POSnw3se0aSRufBho3p3+0rTDL+0gQUBe7m0jPzsibthyEmFiroHDAzPJgV1unQXPlsPHnR7Dd3xEOKBxaI+KwwXUz0x42AQsPXFXiZKB2k579fjz09Nt0a9qLnzgRPxDaZJzphsDGir6KUP19lcDZht4fhZM7nrB5S/tzdO3VeAAZ+K2fTXhPAoS0+VzVCh1rnrrI+S86JOg/32PkCQ5nU9NfDYRMXWOnu9/vO00K1YuS4JU3eYo1KuHAikMvivE0twNJuGBNy9Q99PiG1k23Rlu5PT1OSVkulRP5yEe77LlcCeuOEByEhHD11Q9GHRJ6Rh7FkPGUledu+wyWcZc9YZzE3iTNXyFzpY4KN9wIxzti9EtFdbaqVhOLGs7GtEUR7jMua+xBW9vqXTr+wnS55EF2EglpZcjcC2ZwqRBxGAeuaV/J31W64E6qjdYJPxgyE343GzSKo7X8DTtc1ES/k5HhyHcKAUWkosn157o8Dv7Acaiu98VG5JXoestB3TFmlPaCIV5P6CSpQBY80WtjpGk6qthJkSFHBa6KFyUQUUot3HPKoL+d7orKwHbGOsc9p7KFDs9nF68G1FMpZ2r1Is1Hlf7enY7qGSx0pMjbCtQZ/fdwpnJHiIOmQzUtBPVq5USOqrps+h7IWFi+5Tg2OgQ9QVE/NT390Jkz2O99mrCE+z/eEPHu/AcemKi67/n8onZp0VA28jnYwMGMEE/ha8m5RHP4CTb27qrhIN5kNSmXizEQio1YEFL/sgajP0uxq2vdZ1s8iWLwhf3BzVUqKvTLuqyKq5MIP1wOy2dnVtSrFn5Z4nZa2pqRaDnJRm1KTNrx0L2ls5d6B2oeFgarQSltZebnqZ4SruqcSSUPSsS0POseR1znEtjnEURyOTmhkakUOpP331mJtkTl8hGbqduEqpR8vDgOZu+IIq8PD5WtskSbPAyhF2KxaEDcoiSrm8GYVSiJQto9BTmw1USyHiXOu6azQHCcfLBJglFGODie3rx1u+k2TaRFyoBQaASPxpnWMlasBM4M6LqQPs3iFG04OIpOxfQgq926XnDInENPNypGjmARPCiI1TCE11PQNtK6mYvk7hCVGShJ0tO0nQ8viy6Ty/nQXwRV3e3X5nKe3H1/Tt7H+XZsEbVuYeOn5+pqYTmOm9vgfqMYo8dWDJXaiGior/ESbh2ugX7BVXLPKxF9/5Gidgk31NiUkTe8/YAikU60j1nl+dNTLoEH848mEoGcQ9piZoECjaiuvmubZr4iDblP6iZVY0MheCR+buiSW+YGPF0Qf6XricAdW2pF8mQ8z0iP8RhXhKh6VbLntSEnLw9HslAiH7c70BforJozNaWotJ2GxNouX7/UKbbd4N5pl4tSZChJt4AszS9y2/5IvGd+aYHkJ1UdBgne2qrKoAJjRhFrUEZI1Phos5RuDrWy2sw5Hb0GaDTbG6JtJOAZmrx99mIyefJaXx42P+yzqTVUn0VfXi66EWzYObNRAVZcdwMj/t7sJr+2j2rprEs3IfI4DQuQ7qu0OEvWVAv21rgyU/1+CAs/0MD7S+5Hbdg0fusZbKDOJlMwQ9fYCi9S62RJEvUQS5qkPwzDGO0Ug38fxJ8A5dW30pea+wzp+lioa+4GEm3yqL7OYIoaBa1daywYu6VI7eQdGR+pp9O8dVSSJsRsg5+Vx829SZCL25JgZ2tmx87Nxps7S/Tk6DSAA/zFwa7CsIIMgXpZrSnjw6kNNBFHWS7n/ksjPpYpSnb8stCXQNahpv9KUC4yv94Z19wYdl4IdL8t5RCjU9Kii39f6/EpbqqajMPA+Kk3j1JdktvpRh92vyXoINHA+i1i1w3UQNMVXQ1b5neaYqk7H+MJBr3zkPdwlCpSU5xOp5vvbq9gd+ZLp9uN2dlcTaWE7g9JiOgAWWh32CcLA5copT+PKH685+4WtClwwb+SlYVyr/KIJXgs1OUpqYYppTxRyiDnLhg43WuphJv6U9Zt55Cp5xUzsWu/NRRNE0Rcz+eEBllUn+2fwwievd+d1kyW0y91V3zDNyh57qjKFVyaw0TiIJQybCzAKyOv9qw58+xg2a5QCyrf8O1weu68korbiXwXV6oWhQjRD750LhA25os/JEbXiH91TomUtuWZ88oKqueZ4O1zbwyTpcO+LJRFSOe3BHb7i7LninpAO6m/HXE6zUmlhszRzuE5S9NFs9ZsAZOwg4wJKZdU6AJIoI3XwHj4A83dg4fCN853SD3RbUJQjdzlikUKcy92u7C+IQU90WOZPj8cgzBOXxzK9T7ehSwzGEIbLcRf84GvuNPRajiathRR7yxUf39vnX8JVhNS/0bLxhu/UTRaNznOx7IZQgqWRFEDTWWVuDVaJbo1YDs909SRIFsAmugB2SAZDOZ823AWI+ZH8iRZXe5uz1+mZSI7L2e7gz8dU19Bz9uzh9coQNYPC/9xVj5HNm9lvOi5R+EodGAZwQJ6OOR0+UAd1m8qmvJAFKfHV3xIp4FiKQHP5pQAt/NyXEmNdozffPX9PQ6KxW715EalEm9c/1hNm/iKRmtfe8dK1sXBgzCOtTRJjZQgTPEihvktkumDrFzZre83mI63TOGQF2IQaNgbjCuxUe28KESMBn9FVwvFwxFaJ7pmnGvqhNkdLbrahICN241Kr/VAdpjeAYmNaDzbkBjG6QADHePBdl9phV8BvGX+hSgXuSf3X5nSKOXijLmVxL8awQf1LrMhQ4xjzb0M2tuSxB/cz7CSC6rIf8XnZmVOidQ02bamkEmD5qI838fouYlMk7B1LE5r/tidooDTSzFc8yNOElX0IZfZzs/eZoaKBhOa9iNO64qTKzmyT/nJauLQItiib9DeP96sVNhiDDeHajSpt6dUB0U7cs7QHoTzYtIA8ccRMNei1SlLlAjQOWy3+ZSc9yBS2V3FTjF6sXHOLfeVVnRAh8+onfURD1rMiteTnjNy54ynd8BIwzxncgIYm93XfBgu0BqMv4ta/l7AjuzAROM9hvQIkdllQA/uURhBSYe0OIwyFV0WjtYoVOgenLTZU5hZsaZQCI3kiHKYzhvRF9ArGexxzWjmreOyqsXKkrfjTwwo0KwsATcqVzUOjfLeWDaltu3aYrNeTEX2n4e2ABpnSKX1usEBcmuZvqlUulEO+U+mTMLb2cy7eNnaZ/siYvhGM29yFlhImY+9/qypL23VUm6woEe4B4E3ccU+OgPYnMfscC9GvI6BenFFtHZoF6FchhN/y6CL17j1rn7Afq4dpfao8NiWQCj2chnU4oziiPDzrnCUdMk1Ly3SNGiBhfnr6nAsb/RY03EAMwIuCj+ckke874JAUaQ0oxhvlbzYdHHUzIuF1Enn4lCsGF+iuvz5sJV3D1AvlWiTutnLbzcF2r2k3dWEW+6hMycSqUnyyg1QHwMgA1gxSrdwC0UCI8sxlTz83kVjRfUP03ujqPsQVFnalKylEOWzJh/M6dUMTTPH0IIqqVb7tha79D0Utxugh4P3lvJA5ecwc1AXOxQUnYPUr67VgNi4FRqe8HkBUY366DaOfotmGmUzXftecyJ3jbqu7/2g2LxDYgW1jLz9PWZ/Wma38DCY6bck7vXbwh1sXwTQXMjnm6pU+LpjOC6pOaXg7WRuhaDb7C+crSLIUn6JqkQq8HA7ir2tN5zl7P+eXeFfDhHMw5u+ZEPzOEFYG1ZUIEsbpq9msEA8ljQRtd1JyxeE5uYM5ui/eE4jpmcHvTlgKKdWQTBxJtCKsTg7pGKBXXFy2uA1cKBvHeGq7Ony6cK3Ff955F2fS5C57XabO02USZCfJZiQvb0KRvLTrfRaoFlpF0+gmandA39fL4If1MZHClqoUWmTT4QKjZtHnsoVO3PHcq/t/LufEMW3Db6fJPHrZt7krWhHS6d3ScHm90HBj0Ay0fXlnmjDjyX90j9DGKPIWIUGDwu31VfLBRz3eUqY9zdDhn7iV0H3lDTLxqpX3Zktv7xioqXI+WF5Gm84Ixr45OxrLFveBrV1JbCYI2oaJnsi3g7eavC6cOjc5DtDSg35dQyYE+0brzjlra08e2GKGrXWsUggmWZJaFuqbmIvNKp1uYqtkrvEEKB4EaHl8cbx895dcRAP3eShcrqaILuXNeeWJy/qXGAEuRM/np1hCFBedpVLUuWsfrG+aB4zovLBWT9vnEO7e3NnV5nSa+MmejtN6WGwWPsMgJ8PZjfFhdaDRLegUvq7QtuZp1l5B5cII21fIxC6mmBKYGw5VC4W8mIWnPX+4aW6Y4cWUCw9guRJb4wxOsP9BoFK9MQYQ9UwF1tvmP27JDJtcQAzuUaNXyYZUQ/aEbG5TJMr4nscpErD+cY5s4BvjmzYOlgsQW2YtbFeIPkUrSFcY0R2kHk6eRczgidow76+qMLiMAi5K0dKJWPdY+ntGlL5Cu+yJL9YTI6Bvq3gqYwGf1f0bChiLnrmNE2QpJTNkAWun8O7Bf0p1b4FazO5UUbpfuXimRC/AM+1sbwjha2EbgQxW2Srat0TEEa7ZgmWQj5xLxs5BD089HsjEdfwAmwScwrcJF2s4B2Me7bMlYUIHqfUYtOvBmQWfsymZ/d/rI7I9hzhkj8Q8Qfm8pCYaiZ+g0sx25ckB/c6IU2G4t7bSOfsnTpUCK1LXKTIwU02J1Njms/jDv0bYZR/jKBC7Y7EtOQKIxxW6Gxo29mxaIuF3RL+mFuaslNqcazsBvzNqgmk/givomJxUWeYMTEo1kc7UvuJuDOssAxh6gzb0DWViL/UfG7myOtvbMP5s78WZejZuEO22BLJ9brkwE22q9+vH22uVUvJ5ub818xDU5sgyI+pLZYdzNkhhpXJSYRnwldconv+NMm/eiwOsxH6Bm2EE7ezaDq5nWuWYS3wUmtF2HTa5nOSHy/JcU30KZDYTPUuYRJMPrRx0XKPkXTIVLhVH/LXDY3aBZgXVfhDwlnOsYW79d3rVOxY6uh0Q4N7MSi60u18JcBAW2YqRxtTDfscGFiVP9DBxd0YUqaNilHSWZ2Ww622uSlHsY2H7jAtnKuz/8LW3pW7nuf8oAeLtrUZ0UJuiVDEtqwi9DcKg9/JpJMEExtwGYduDY6oaeevBYNRGm6wdHiZrIR9723j1V0c5YIXg1Ya4m6rrgWiPQIiYS41VaLgYxej7ZVFhOt3pBGaURuc6lPr94BtsBtwzzE1tRsXme2duLcYiRTOeb9gLdJEz++uuEMHnVTiQ/9kHgfm8pVaz+SN4ne91/42WD6M968OxDLSZ1ci2YHf+deKH1rcREmbitHttpF2VqRz7v6XA7QY38tm7sYPrPL4eJ4PudC9PwlCPx65LFVjcuf7iTddwzu8ZtcKs7DDQNE8xKWmvDx0tSwbLWajMSbqljvS4MlQy0O4hTjjJftKdbM6RpjUGOURr0rTa09vj8Otz3ez0+VwC/fIfMbtjqZYbXsGdbkqyGcxLZ35KDOyCJdqkj3qw8rYZF2nCvT1DjYjhmlhWJ0b1B/Yl7QtoYRGke1FMgi3sAgV4VvDG+fm+nRKQw8wXaZ4hFFykusC2txrEuD/jEbB11NzLxKDvMl/6FJpXHJKLyVznPVLF2kS/kjdHpwweXYKX/41SsM2AXKc4izOU4mv7qBFmapiboijRdRWxG+CdcUlrgTqsncEbxVZe8JwcSxbI7EQR/+/AFpApb8IrgXNBcv5lzRlEZJr90J5fjc4fxXCwf6J8UPiLCJ+E2zVFs9pm2A3REdcgBg3A3O0RrjZ6YK35HNj+emQ18lCKEs80yzhYyIYoEwoxyEAYvGAuYgZFq+jXKj2TE7MzsKhLn9wbCJ3kNRfQIboUZSr5ch7rSiOuAnMLDjnfBbrPNh6/RYLA0wo0B0UpG0gnfE6TT9zqObqq3SgQVPHFnYeBqmso+maztMqRrj8kcoII2vX+IQIy0degIZQJWqwKWzakz+C+AW7SbR10FrGi7PiUjg6Af3DWM16QlsorM2k69bY1H8MyhzYpnmWKjdGrOqcoI17YzfjaQXn3sjqa3HeTQog2alv3GZB4hEBKD2McrzzgNeogWRgPZL6SGtlFCsQvtVccsibUalzeK9kj3Vt056ObDsKfi0Ym3LunqeCLGg4aXsEI0OhumrV5iHv1sgMTzzOtfZYlGt3LnG9PEl6Jyl5MunQbnvzYqFQkeezsOtDiK0+Ib/QQM22WmxjeBDivtsj94SFOYUrFzpupDX1iZW0WEr2wb4Qi3XSx9Gw4OKarccgPpC+gazKyMQlAsgKE7cfp37TVzlbrLOVkK7744exCSy0FWR+ILMSC3aPFpYLYhcOM6LUgbqrLiR3bfLgEbPsQhBdOdOZ4VsLFTK8Vhuk/IHKacNDcWmzBVVz1leXz6jLq5GSU8GignYeDXHcIRBiiqMOKnDpjsNRq25gKpYh/LdtJjaLSbF5iz88licmtR7iYl+6mZn4d328ufNvYbFWp/dqHJrC/qZ64IA6eiA4cXD0lvxMf2sXcwU59liP2qSZkkX8fiDnP3WdCZh6JqGuJtYPHuvHEqvzxker+ZgiEC6LbG0gdmxGWerlogMKpcBmrEXWp7RngiUA9nuEPfSmtSHyb6Sw91biNF95xk6h6H4yTllYFyXvfOqByM2btjf3MZsodd++zejPGyrNOy5CAzCKncuqA7Xf0irkY0dfdQp1YwmkXtRKhVVjEYKc6y3IRQY6dIHIZJx+FJlpVXWA8isxGmHpZ0LdQjdG6Df0cIxXF/HaRnkXkkoIuigZsh6UDrSNpZOZ02Yl4C227XyFmsM+7XJhpO5tElQMgmb0tnLJtY6Z0VFIIw2rx/dzT/SQkHHFFtn0ZdEDDuZzCLa8R9Zk4OP92CBnWde14njOdJj33VFwKCrMoB3LiI6t1K2uBpnyid0SN4Jnyk33IN20b5+6d28oyrorq0vo3nia36zNLHZSg2bxGYBmeBA1OpHapEOLhxxh4b81aeyKHsLaeQY7ksfIqcWKChVmVEzMIxZDWEmI64njITjgg3R796rR8a6oLAyXQ50L74k2GROZNPSKXhACyhahQBao0ZkdVAO5hAJKGGSEq1Oj+w+R+VqEyEVWGnErRMjbsSubuZiWNl9Tq63YNpamErLmfS3jCNFAMyqGECsUZfHKaguD48Xm8LXgWFS1om2RPyhSn0E1Pt7T3tBoe7yPy6JjQrS0jjV3Y3EHzo9vj8LQyxcH0jovlF84Oi72OfFYLMqgYoA44foCCcInsOqa0QMF96R1LCJejJBbe8Spt+wKQ2CF2ALBcrOBjUcYltT66PXD0kGs47EkU6vzOu2qdnsbd/R737w/001NsovVK60JoqRpaV1hZz6HrtJCjLV2aq1jGgwfQlQw7T+HZ6cP50/MHj2Uhx9Csx4RPEJ2piDTx6/EEcI8Htw9PknOaGP50amxfFjeYlvdMOyATX+hQuJba1ygZ3aJqtKZFW1jF6qKHZw5emBkarL7ztyh8THsCYzkZmcuj7Zasa5ZkRa39eAtkn4am0VWIt4TnYSFtriIp1IhZkLX6hedzaM2ZE5WQaEZkdZD1GNW8DR5DEHYgvsHFTIKMeySJs2p6q0yukSZpEizoqgEfrtD7L6BneabF2FwqEvmFxZWQeIkFM0xIlgQMBLNnVrgvtINZVIdw5G4MqNkHOlaBtR9Cy4/bESMolBOYgmIuuOqJ8qbQTlyTrO6eONAXJjRGUiKt1tQIQD0RuVeunzSEu+si6uuKARN2UvDWKPxKXoHWgEOcAzxhpT4JYer7esttInUdnus6ciBwkla7mPNT1vYkPyhrcaWM+QnWvjRWFjEto5rlef9GfCF1UJF5joApQAeyDk3m3u5I1EF3cg9rjc+DUaFsto69hjPFOLWmcdavWSJ1FKZ6dFbZ6zO+zYtoYnLv3UmzCcYLPv5rGVu0ceI5qjcxdeiTt18zh0d7iNkqHHrjEmTHCbTS8Xo4VXabQ2qskjPUmvTad9fzo4mn6K6sCUhxjSgfao2KGgrrdKQQUwEzROx/sGMcHDfPitK0wH9QtD7YXycDLf27dPJgmfTYih353LwAPrbbI3BlEL1tUp9RakFWVemg3cahtiF0mnfVK862P+n1pLzHWYYKW4E0TrnlBWMHsTvFvoPjQu4pBHB0qOj1rEe2EAJVT6UWk69D8FknWrruncOPoity6uo67bZoa03LDNo5SvEERKBYrBvk+Z503DDuqz1MqTNHqxHRH0uTgpt8kCEpvTSShFmiGFv0Y62cdPDNAyKZTRGFeEeaEWinj+fFY5KNSC6gDjDLEPyoaWO7aFd/TaR8eL620R1vkYOXi2DKg2k7ZWCwCg0xNCmdeN1gC4s/IXF4pZUJD3RKawWckK3bB0LEjUax9mY7BZLGOrp0/ncZL8VJToTgg8kTC44kyJGkxXdIbjTZ0qGFktrSNcaEplp7QyzQ9fx8F1taG+MwPtpjQkWjfFCXWDJHgIpaT/k0F1k3AWSLdTqqyTVUW/CFErdRGYXvUbmHvTnpp+Q+RL8ul4so7K7kXuMSpo6CIEXF1P4DuwxEye5GeuYgTv37dtsbcsirKS8sRMj7a7NZBC+RW5FRoUqJghpG2rYYJResHVxz8SKWuhH6e0QwfsOk0377Gxu9JYDCKkwA0/2dJBfWw8FuSIeEAGweptXwvYE+RB/YHeyu71evXxBZZNoHhY3z8KouNc/5IWhlps6PD2an5Gjr+DQHh9V9DMwO1Rj1g4Ylcg/K51KJVLWvNW7M2bHYGZKf1bVMrHMoEbJAmQT2YmSSjGgNJ4a32xZ4V8Q95LJYcvWdbMRUHQuajfpk6T582aKQX4g3UQLIkwwm21OshXkNggRbAXnaTm3NzFN39AuNrYRy7xLm0u3NqUE5vz5zUaPNsuuzbK2PS6IlkBDqGEz4iKMHNZtIG3WCyCLNS211bvWha0/X7nA2Scam1VfsCevPrPnO142daPN/X1oOui9eTv6Yo7b3X1aWO26u+x4Ks4cL2YlWnpAFy8Wv7NnGpGiFFBzjbB4Lv2+mf5FZAxVYHFBm5URiGqQ/UgpH4KkANEd24DA3QGX/6bncT+pY8iflew06K7O7LU+V8gzdTUcurnzZmZJamdF+f2LBWECsMmD1ufawe6ivip27mYdMsLBuVKZ5TgGfmW1xwRtGS4YyGfz2Bv+kCwon7QEuxFpKJNGSPlMOhPTM5lMXM8M20kcUmkcssP9E6JlLT02MsXT8PWmTRA9k00gbzZNh6ytD8ficRxSdEaXdjyDQzqmD+N7nDgkcIk4+/pwwgYukQIukU3pw8mELd2+hdIbiDSwqRiKSNE9qUxaRyx7OqTwQzqLuzNUdiaNIjJZnA0ncDacxlmWbssmkC+bSei4iuOA27KxLC7xzTMcMsN6Nh6nQ9pu2RtC9XgGqGxSzyYSuCuRzurZpG3jkIzhQD+k0OBsCkH7s0S1bBqB+hHXP41DClky2VgYn7g65TRgSaBnEYofB/pheBhFZRM4y6aHDbIwTNMxkaVjho4IgEbHFOHtYcLgqwB0HCZMImHTMUPnyTidJ9PimKW7UvEMHTNxHNN2io5JwqSHYzhmYlmdVn90mqCH413jiFdExxTdNJylY9YeNlysm6ngbDIuzgWeCkY9417AAFplECaBclCc+DWL0mw7gQfi24cowY7HUBH6tAEdM6imjbdOx2SSjtQUO0l1QPifJPbEpEE3XVOT8X2GWC9ZXrQWKIRM0Q2pLJqB0Lv0ADADjpk4nWeIejZeAo7DaAyOCDOF4zCdZ4lKdlaUkKVH4LNLqDrqmQ4LdyZhPGTHQVtgbSJV3M6kNVhD4SxOTQPP0B0JO6Gv0NYDTpNoWSIejwl9qYiv4gIxnBjuwRTaCqBi2MlELCEsfr2IKUBl4nYfsrWHSDHsVGw4Tnsxwj2NN3WATCZR41SG6pZBxcUujy8yiD0MniCfUSGcG2h6PEnTuJTRgUBvDQPBorphZ+10vAvXnsQOTCqdoFtGoU3CpjwQ6NpUQYj+zcAZRhxMk4y0QlAYcXyUIm7E46lYmtTINKUY8ST4jpTJdOXiEr00tCCd9o14KpGOYfOR/MU4ezqWjcOyhhCe570RT6dA3XgaHdHAsJGxccQQY8QxxMRwjMeBpxEEx3QKOdHjs7S0aHMlN+JZO5kdbCHbpCH8hjfZdoPYcUH/xyc4yOvbSMTwKnDMDCeNBF7gMI6ZTMpAb0QFEhgfgAf3JoxECt/sMMVmB1yAE6ks5cWQgF+Gk+BBVDJpG0n0q7iRRIuSRjIRR8VRJngZOdIxI5mO4TnJ4YxtR1rudUYqhhp1t7vMAYWh2cAjs2ly2mlz1ErFU8lYF3DeCs5IJYExUul40h4CFeSqawLTuOeFZaRA1ISRwigZG8DLpoWDb41jpGNx5gMszJveLAY+QoI+hmEZA0AaoX9T/SQStHtOGGlEqLJxTNppI53EJED8RqMHCf7AYPyVXCCGFLxvRHBMp+OxNLGOUGbgMpXNkLk16bONdCaFV5IGB2aMDMbPuJHBeJhiEUTkwAvKZrYLScNnzWugf2CwG8YwnDKy+Kg5HZOZmJHFF6SzvX77SwOcgd6BSsxKi0xgQEKqB9n+GWCSRMLA0I/hNosqoBhw5TCONiZSGHI5QYzj6WSS7BBhYYWrRCydotfVWvgREvkB6BXsoDbSTgPrHYT6Bj+B+ZL0Rj0bCqCGU3ayFyiRheW9IEZFcBdAmj4OgzeTiiUBsnh1QYxx6Sx+o54bQ7wVvETxIJrFgcUYjtGqfZ9SIDOoWNyOI6I/jYaxBIF0nIqxM3acALgWII6+TCAZHyaACYgApAoCw5lhoiK0mbxVhRETOfFLIinKR8egEtEz6GbM9nRXKpWk8tMYigEymJeCNHkM4wodNitAJoHqJfDqUVgCnQz3oSumCQlxgbKkMDQQwIsByKAXEcgkBBhOCmQ2STcMJ8R9mCzQyMQwJhYC6L4EIAEAZGNp0BEdLkO3ZyElBDF7xaiUJM3aBBKJjH/PUoie7m4sv9ttGjHXyX0nEVKKlpgh2uavYAfAwFt1Sn5jCK8UDKRCFrtgAHlMSWlIQRmQcKehXK4MRehDDENXDD3OKAzNXTIXKl5eGjo59Fxl6AXK0L8oQ7+qDj1DHXqLOvQP6tA31aEH1NB7taGPakNv1oce1Ieebgz9iTH0V8bQh4yhzxhDPzKGPhIceoY59Gxz6LkhPYwwi3ooHOnqxveCwp/WvS8P8mcHEX0VX9TsN/Vtpr7dNHaY+qCpD5napWbwEaZ2palfY+rXmvp1pr7T1B5tao8xzcea2uNN7XpT22XqMVO3TT1j6sOmnjW1G0z9ZlPPmfqIqeNjQhOmPmnqU6Y+beqHTf2IqR8z9ROm9ktXKGEHMSTnzZ57TL1i6kumXjX1mqkvm111fGbI1F0z3DD1FVM/ZeqnTf2MqXWb+qqp32vqv2zq/8vU/7ep/3+m/iumvoavET4J6clIv4pCnwL4VMCnAf4a0n1IT0d6BtIzkX4dvz0L8NlIv4Hz31TM3ucgPQ/nzwfut5B+G+l3FLPvd4F7IdKLFLPrD4B7E9Kbkd4B3LuR/hTpL5D+Eri/Bnw/0gdw/kHADyF9GOkjSB9F+hjSx/HbWaRP4Nwx9b/H6T8g/RPSNxSz/1tA/yvO11RTe5Jqbnsy4NNUc/szVbP/WYC/ievnID0X588H/B2k30V6AdILgXuRana9GOcvxfkrAF+mmvrvI70a6TW4fi3SH6um8Xp8cPINqrnjzbh+K9LbkN6OZ78T6R04fyPgnwC+E+lPkd6D9H6U8SHATyF9DunzSF8A7u9Uc+Dvcf5lpK8i/RPS11Rz8FtI/4Lzc0jfRfoe8n4fuB8D/kQ1h36KtKaZQ0/V0FYNrwiwbGrPAHgm0r/hlmfh5+fg/HlIL0CW1yC9DumNuH4L4FsBfwhyvQsQqfdPNfMSwv8Z0p/jW4rv08yuvwDuL3H9V8jz14D0Bgh+QAv/tYa3/iHNvPRjyPe3wH0a6TNIn8U9qLL+VZz/I9K/In0b6UdI/4ly8FWHnwA8gPQg0pN0M/gU3dSeivRrSPchPV0HoyE9C+fPRvot3bzkJbim9FLd7Ho54Kv08IvxJc6uV+P3P9DN3j8CfA3Sa5FK5mVvAXgr0l8i6/uRPqCH/0xXwm9Brbs+hOuPIH0Uv38M6eNIxMufQg3Rw7X3aOHPIO9nkT6kA/99VPOHWvjHdP5TPfxLinn5A3r4yYZiXvEMw9Sfiy99PQ8QSXu+YXa9EOcvMsIvxu/6S3D+UuBfhvRynL/CCL8SIZLfgZrrvwfc7yO9CvhXA/6BYV7xR0b4Dfj9jbhXexNwb0Z6C9JbDfMR70R6l2H2vQ/Xf2GYV/4l7vtrnL8f8FmAX9TMR34Q8MNIZ5H3E4CfRHo30utx/SnDvOrTOP8s0ueQPo8yvox7v2qYj/wnwG8B923Ac4DUxagbfgfn30X6d6TvIX0f6T+Q5weGaf0Q5z9G+gnOfwrcAzh/EGWtBU3rSUHzkU8G/NWgqT8laBpPC5rBXwui7yE9D+n5+JDBbyO9COnFwfCrQeoXBfG8N+L6HUHz6o8iz1nc/wnATwJ+CulvcP6ZoHnlZwE/h/R5pC8A/0WU/VWc/yPgPwHuM7V/Bvga0teRvon0LaR/Q/p3VOd3AH+I9COkH+P6k+DhBwAfRFozMRriGyNPBvxVpKcgPRXpaUhR8KcJ/jTNa54O+EykXzfNa58FiCL13zRN83dx/gJkfYlpBl+G85cjvQLplUi/B/zrzfC7wIDae0yz636k9yL9OdL7kP4C6f1IHzTDr0WEYB1dSvtb3Pda3Pd5E600zUvQBP2ruP4G0rfw28fR+u8Afhfp+0j/gfQjpJ8g0f0PAD6I9C94M09GdPBfDZm9T0N6Fs6fjfQbSE8Pmtc9B/B5SL+F9AKkFyK9Aun3Q2bXqwD/COm1SK9DegPSm5DegvQ2pHcgvRPp3SFTfx/S+0Om8gHADyJ9COnDSB9B+hjSx5HvP9Xw50JK+PNIX0D6EtIXQ6DJ5/DbF5G+hPQFpM8j/RPSPyN9DekbuP9bSD/A+U+RnhQ2r/ldTL4vCJvBFwG+GOklYVN/OdIrcP5KwN8D/H3AVyG9GumPw+FdeNSbw+Ylb8cl0iXvAKT0J8j6V2G8AsAPIH0M6SzSp5D+Fukz4fBXwhjV/hF5v4f0THyi5gVINGLSaPdmnL8T6d1I9yN9BOnjSCCh/vf4NNTXkL6J9C9I/4Z0Dum7SP+B9EOkHyP9BOkBpDV8R+rJSE9B+jWkpyM9E+lZSL+B9AKkFyG9BOllSH+I9FaktyO9E+ndSPcj/TnSX3SZyvsBP4z0UaSzSJ9E+gzS57pQN6Qv4/yrSN9A3m8B/ivgOcDvIn0P6YNgt/9Evp8iPb073NCeh9jsEXw+p6ent++S+/TLIIN1dytaNy71gUH8Peo+fEhH0x55lXV1YGh3QBkYjK9FcUyIY1IcU2tRdeCqwT1r6ag+0NPTMzh2n57HZ03247MQe2/cd5My0Hfr2i3KQM+BtdtwPLR2EMeZtSfgePvaLI5H1+7A8a77lOPKnepA3+Di2t19Siz2YuU+1KasxPpeqay9RAmYv48vTQz0vZougHyNQA68Fk2IvR6HvjfQz4G34K6I8kYlMPhWIAffRsjBP1HW3q4AvktZe6eiomXvIcQ7lUDv/cjU8146/JkS4DZ/UqFGq9qfK+9TKJNGlPgbifyUQAUG/ha3DHwaEb8HBnu+jEd+RVE+o3xWlP3PXDY95uvyMQPfxqfbBUEHB3+grJ1TvqN8V/l35XvK95XIwK+g+J6eNQWUe7p6X5g+Ua1rv65Skd3iz8D0/iPlx3jAf+IRP1F+qjygPIhH/crgK9X78EHqH+Jj6XT1B76rP2y7ep7yfOV1uO7u/iP1g0pg4I2IQD4w9C517U24cWjwfjp5t2rgFH8fpqv3qn+m/rn6PpVJ8jeqINdH1I+qghqf5uu/VZUB84vq2mcAe76hrn0J8M3Kj9S1f8V9PX2DT1IeVO9Dc1Stu/t76n+q71R+qDAZ7ld6flO7T3muJsj5DvWNypO0J2uBtynPx6dzBnpAj74XavcZL8JnurUXa5RP0X6i/Jb229rvaL+rBYnN8Pda7b7gH2vKuv8v0V6qvUx7ufYK7ZUa+OUNGjHPwLsRZP3T+PdBbe09QH9G+Yi29mFNu+rTSp/5CW3t49pLlLOahlfad9XntfsgdkUi79E+CVECRXxBW/sk4KeVv6ebA33/oOFDil/WAhpqOvg15EZcd0h2xCwm3kMfUfF7qBu9SvoXRPohXt/XtW9o39S+pf2LFgIz9AQGewbvV35bvy9EmcTHfsSxu5sI8j31+9p/aD+AwPIkNJiy9/S9Tidyvh7fC4KAyll+oH2DOLTnfuVNkPG7u9+gf099EhpCmK8JzNv0t+vv0MH9X9fX3qZrPVdd1XNOX/uG/k39W7o6YPb8ALkiynf0H2BGe0B5qrH2Q2R+QPk1Y+1pBjjtAeU+OtMHXqsODl71hwbVQNG6up5pUHt/Hd/+Ml9nrL3G0AbMq4beZqy93viJ8iZVuWrw7cbaGxW1r6/nHcbaO9TvqQaGGfx9wbhPjyhfNJQvGcrfGcq7jT813mPcb7zXUAber/6Dsfb3OOn5R2PtK0bPwJfVr+Ch9HcVeOJ+5anB+9AjmKh01FGPBw10AdFX/tn4mqgTkaYP1Da+YXzT+Cw4S0FB9wXX/tkI4hGitA8H78MHxvlfV9fTg9SU63c9I9iFDD3eM/HAvwveF/Y/UDzpY8GPB33PoqeY3MG/ot6vfDso+ouoyNeMJ2mBnh8EMbrQMPsc0z/OKgPPV55vrj3XpPHihebab5m/bQYGXmRieHkxHV5qBjAyvMpc6wlc9WqzOYq8xlx7dvA3gr8ZfE7wD8w/NJXBnj82116LO19HN70BN/X9RHmjufY5DHt9byYYGHgbFTX4dnPth0qg5y/NgEav4wPm2l+Zf20+MxgY+D+UvQV8XMmRP/76wZDoiSWLRrZ2be+Ob5MN02W1SSYbbzibCyqJRsmscuE43iSX7J0sW2YGme2RZGZmZvaMZEtmZlKb2fp9q997ankh+f/9kaeqq7urq7urqRreUYp6gn6u0U+VBz8b6Wcb/UTpp5F+rtPPA/oZ5sXPCPoZTT/zvehWEhZ6KxZ4lbTFRFnqRSrQ3VVeUSCz3WpSQsJqLyTd6iYJ13kr1niRv/VEAtwoYFrCJm9FPxd47SQ3OoQhekFSwX5vX7RKtBTfLXWXd7d3j3evlxU0sXpvRQxIwgFvxS30TxS40QudtoPB5xD50FBXrR72qke8h9Sj3mPeVvS4RE9I9KRET0n0tETPSvS8RC9I9KJEL0n0skSvSPSqRK9J9LpEb0i0WaJcojclekuityV6V6L3JHpfog8k+lCijyT6WKJPJPpUos8k2iLRCl9rUfeQaKVEe0q0l0SrJNpbon0k2lei/STaX6IDJTpIooMlOkSiQyU6TKLDJTpCoiMlOkqi1RIdLdExEh0n0fESnSDRiRKdJNHJEo1ItEaitRKtk+gUiU6V6DSJTpfoDInOlOgsic6W6ByJzpXoPInOl+gCiS6U6GKJLpHoUokuk+hyia6Q6CqJrpHoWomul+gGiW6U6CaJbpboFoluleg2iW6X6A6J7pToLonuluheie6TaFSiMYnWS7RBogckelCijRJtkughiR6W6BGJHpXoMYkel+gJiZ6S6GmJnpHoOYmel+gFiV6S6GWJXpXodYk2S/SmRG9L9I5E70r0vkQfSvSxRJ9KtEWiPeJaO6aeEq2SaG+J9pVof4kOlOhgiQ6V6DCJDpfoCImOlOgoiVZLdLREx0h0nEQnSHSSRCMSrZForUTrJDpFolMlOk2i0yU6U6KzJDpbonMkOlei8yQ6X6ILJLpQooskuliiSyW6XKIrJLpKomskulai6yW6QaKbJLpFolsluk2iOyS6U6K7JLpHovskul+iMYk2SPSARA9KtFGihyR6RKJHJXpMosclekKipyR6RqLnJHpeohckelGilyR6RaLXJHpDos0SvSnR2xK9K9F7Er0v0QcSfSjRRxJ9ItFnEm2RaEV8a+vuIdFKifaUaC+JVkm0t0T7SLSvRPtLdIBEB0p0kEQHS3SIRIdKdJhEh0t0hERHSnSURKslOlqiYyQ6VqLjJDpeohMkOlGikyQ6WaIRidZItFaidRKdItGpEp0m0ekSnSHRmfH7NHUxtks2GLMcdHZ8KzpHonMlOi9+fvyCeHtuv1AyWxTPPvOEeXU2Qmf91NssqCTF4YPsI/XXFCyH3H2115REhXmGA6YrzNvuNSVJYb7tTMC4gSAjWPynhTPho68pCQpL/JiIk/RxQTRfFcTkM4gCz5QVgIiS+tpryv9hOfSmAOmjkB58M74kksl8XYCsrwhidvA1pQJ2qnZfFc6cNwTI/ZoIk/dNAfK/K0DBNwQ7/3eEq/DbArQ/iSQhfIdyAYpMAV5IFuDFVAE6pgjQ6boVtHOOcL5UKsDL1ZBuJCQIhIS7S7EA/7EHgZGVVxos+JEoIDLx0cEoFcBXj8BdoLCPfV8E//iXBfUTg61Qnxxi+X7qNCCk+/RoJAKLGftMroj12XxB/tyPhevznxPgC/7X8L0w9p+Fwu+L7QXH1zoIUDwOySK5118Qzi+9KMCXOwrwlU4CBDsL8NWXBHijlyXo11aqrynbYfPqugvIIFiC3hwCH6J8/Qgoi0D5xlFLzG+OsWrqW2Mt+O1xFvxOH0Bk47v9LPi9Wwj/BNl5q96K+P0DgNCd/xpvBfjBBAv+8C0r2z+aCDfl/8d3ERDF95N5lnQ//ZvIVslPX1P6QZCfvSwK/ef94YvC/8UAC5bmvaZ8RGGhxYgMctltkJHaL78lwK82WjzDk5AIeL/9CRGqfLLl/PUe5DJDYf89FLEeQobfTAQBbH47zoK/GwM4G+Xx+5lAwPcPv7E04o+7LcZ/6gE6Cv/PR610u+2AGwn9JYIUUGPdPYLfO14B/lpjpfu3oYiNWH+Pew2Lb/Y/04jZWVi6/rHUYvPPZRZ8dxN8avHd0v8doRXjk4j/V6cXKxqrYFMAddaDTQU0WCWbBuhiPdl0QDfrBXthseJhVWw0oJf1ZjNA97E+bCZgHOyyswDjWT82GzCB9WdzABPZADYXMIkNZPMATTaIzQdMZoPZOVaspLAhbAHcqWwojGrFShobxhYBprPhbDFgBhvBlgBmwqqaWaxksVFsPXtdyWbVMHwVK+3YaBYuVnLYGPZ2sZLLxrJfFSt5bBz7ZbGSz8azWoQpYBPYUrDws4lsGWAhm8SWA7Znk9kKwA4swv5SrBSxGvaTYuUFVss+X6y8yOrYP4uVjmwKkGKlE5sKrFjpzKYBK1ZeYtPZSsR9mc1gXYuVAJvJ/lGsdGGz2Cn4/gebzb5erLzC5iAXxcpH2Fx2EfCjbB5EKVZeZfORdLHyMZjOJwF+nC1EosXKJ9gitgpMP8kWs9WAn2JLWBXgp9lStgbwMzDgrgX8LFvOOMJ/jq1g6+D+PAxqG+D+AlvF1sP9n2w12wD4RbaGHUddvcbWssPwL2br2EbQX0cR7oX7S4j1X8XKlxms7yB/BTb4zYBBtpn11F5Xvsq2sC1wv8G2sq2AX2Pb2PeKla5sO0zLxcqbbAdbgOL9OtvJtsH7G2wX2w74Tbab9Qb9W2wPGwD4baRVBfgdto9VAH6X7Wc7EO57LMp2Ar7FYmwX4PdZPZsM//9iDawO8AfsAIsA/pAdZNMAfwSD8m6E+zGMu3sAfwL7/F7AnyJvEyFPCTvC9sH9M3aU7Qf8OTvGooC/YMfZKcQvZSdYDO4QO8nii5Uy1FS3YuWX7DT7c7HyK+wA1MMzzM6yBsC3oZzLEamcnWfDUIS/ZhdYWbHy36jHGqT1G3aJ3QD8LbvMPlus/I5dYRMR6vfsKuterPyBXWPvFCt/ZNfZCVD/hKAHwPPPrJndgbsbKm8rIv8FOxNP4e6O/YklgO9gl+IM4F+xV3EK8G/YsTgJ+Hd2j50G/B92n7UA/gPFfwzwn9ioOAv4LrYreoD//2LLohLw/7Bt8QT0Cobdi54g9GAwLNeBUsmwl/HFYqUnQ018oVjpxVgPdTNEqWKsUj0BpDdjPdX+iNOHsV7qQZRAX4baWwivfgzVehxIf8b6qAvBbgDDRs1fi5WBDKP9YEQaxFh/9efFymCGmh8KwhDGBqrDgAxlbJA6HMgwhg0U9CpBlqAxbOkE1QSDwcQe1JJgIVb1oJ6kw1ZsBI0kHzYkXEFXkqHhA8nDGfsMPuDqHqIOVYepw9UR6kh1lIo9NewH6G/S51tV5RzDx9C1chSzjmrD19CNcpW+q3yJ/UwrUsq1ZmxjXmY/04tYud7MPPoV9jOjSC03mpnXuMp+5irSyl1fRf9qGLrxg5tx/LZKfOOV2+CSwOg3UaXfJO22yo+p0RJ3V7dS7uHHHdTLTwH1dfUp5XH8jkrfkr2rRmP1DSE9GK935vdUsFdVsP822PfViH2+0heCFTD69WMHp5kVan013l/DR2hNPkDDZ6CT+UCtoaglzaUofJAW697EB2vRkF6ewodo+D50Kh+qga/mwmdvXwXfGvDldVpJRjRsRsPJ0WCmEs6KhlNr4K4RruxoOAWu5JquGfobiqKrqm58FjEXC4leURZrfKmV/jItGm5XpMx/56V3UtyK0jkazonNFShfTiFy+ApK2yAOWeCw3eawXeM7yT+Z7yJ/l+N/2PY/rPGj5J/Cj5E/DohZ8a/a/lc1fp38U/kN8vdomm58AfzvC/9PKvdRTq+w+xp/SKFy+SMqpxT+GOLm+VMTUFBPtCjwcHZ9TXk+f0pMvFTwr4HJRJ0K/vPKRGjBFxj9/qdKv1/UJup8sg6Gfh7RqYQLeY0Oxu15rY6C7sDrdPDxkbDtwGe14POGslrna3UkFist4usoRJyTnb0ixJvKXp3vJ74v8Cj5xzv+J4X/N5WTOj9N/i/yM+Sf4PjfFP7fUW7q/Db5d+R3yD/R8e9pUE7eUnoavMqAfyfe24B/kuM/Svj/QBll8NHk35mPIX/T8V8o/H+sLDT4YvJ/iS8h/2QdxV2CHO4V/j9T9qKNJLG9Bt9vxGxt8EIbYtHwy+HAvHdS2qHAowZcJUkxjKPBJBbuUh/8D9bZTIZPzCh5JfC2CBvp+grTeD0lkhKHREZpSOWGSOXXyg2DcyPmT8tEnJtGyUei4Y9Gw69Gwx+Lhj/e9SN6xUcO8ttI5BNFqGWkW8SmRgJ/igQ/yTrzu5R4NPZSY3levUcVpPsGxPtEOFD6Kf4Qvp8u+Uz4M2EtDVsp/JERDX5W6cyfgA7tTswH7ZkRfbH8c7wFXp+HV4Ur2hHOHq5o8Atw9nJFY/7Z1SmIHQv/Z5WpKwqkqwp+EWn3dkXDr/lTXwSTPi4o3WvRcHE0/Ho0/KVo+MvR8Fei4WA0/NVo+I1o+GvBrr7OvB8ivOlPjUOE/hThzeDXwWYgqN/wp+aBOoio34iGvxkNfysa/rb4+040/N3g99yd+RCEe8ufmoJwQyncW9Hw94P/pXY200EZ5oqW/KDkh+Efhn/U9QesyEsefIQLWfsxH4m8/AR5GUVZ+zEfDT4/LcG/cEn4Z9DeriVq8OeQY6wrhj4hlVTgF6icWS5SMezqznI1Y7bC5rj4HMRE+Xdr5HNdjjoYpA71UAWSax4FaKMKb/D5LqjAZBaLBCIsUh8J1DChCdi1woe5jY5IZzvS4TstzlYHs4scb/DdFLWOkeIoSjqJ9SsEP+GIdcIS65SLn2oV6/T7xUqFWGeouF4mBQ13Kc8zs0A6S8ynvk8ufo4GggwNDf1bSOy+k9h9F3/Yyvu5FpAGZo9IAGJfxIK/UIuUcJc3+GNKYAYlMNPJciZluRBs++Gz43yA2x5HXuYDHfQTfJAb6WdhABQ9+gQKOMkN7tB6JdGNtCbDlfcGj7jBfg4TPpHAXCeJbIaYJpJYQDEXWTFRq+105OgzoG8CvZlObmxy8y1uFIuJrnwrIaWxkoRwwmLS9Gg4VGliKy9WGSkv5dtIpBxinAgGe4nxfjDOAdtch9pE1MOgloKaR8X3JYQ9LRJbxpTTbn7WHQ2WKSkFyMI5dxTak4RRLdbdFMnlhbNike7lOSbl8Dy8IdQFSjafWH0drK4LViuZct3Nmy1WnRD2ppOFWx/AM5t4lgqet4lnKb9DPAtwRtl4GTyfOOI9cTdjJs2euPkzd7Q++Es0hhZECP4KSIUHUfxOPvt6kM/+HnRNyGehQx1B1FGgfhTU9g51ElEjoL4KagcNY1CVilSXgtyMmbey1NOMiTcjsIypBHAMZqmHL/fQmA8l4ys80WBYwbC/yhPSQfOBthq0t5XuZRh6PLGiH8/GAJ2MkuxcT3hKPEKs80A1top2wzd4GqLh8lqw2AhBMCqGdIz/ICD+Jk+s5NfhX4f/+4UlrK62+0G+2VPfltDItyDOb4K/RdexlbAiVvo7vo0wClYf/D0r/QPf7rhj5P4j32GH/BPf6YnS/OfP6Ih2eaBgvwl2Q3nupvIs0nTdmMBQGgdEaTQw5YAoBkYAp4cOeHijp94uhiarGBr54daSOWKVQhM/9t5MHPfUiww28hOQBDlusDLcxE+SZCI3pwiLDQ3+BfKc9kTrG4SQZ6SQZ0nIF6gi4yDjDarIB0R60SE9IlIvL0gdfcgKaehsL9VrE1Nme5uxQmEEDjN1rpfP9UYDR9gfY4Gj7I8vBo4Rdpz9MXCC1Ue+rwe7s25NfJ432hB8B+LMJ56dqLOjedl6wRMNaD2YQUPXe/lGbxTDW3lt4CyLiPzVi/xFAudYJPhXcNhEHDo7HA47HA5bHA57+dEP43DR5nCMOLxEfRDNvG6BA7/jRQX+TQyDgSusysS4jzGu5O/hv4f/ZzZ1GQGs9WhwDNxgVUKMu8TkZZwbNgZRPQ/2Uelwpgz2NWP5wwjcYiqB20wjcIfpBO4yY7CPD/V9SC6Ra6HRkdb82xotCCGM6+W1bfxcduHcs7M2zAepAka8bqygtrhZSIWTGpuR8kPGCDxiKoEmphF4zHQCh5hB4AlzEXjK3ASeMQ+BFubd7ONbfVFMQ8riyl8LxXnigv9ATWzzYQpZzLf7aEb5Jb7Dh6nk63wnnEb5l/kuQFf5V/huQHd5kO8B9JR/le8F9Ja/wfcB+sq/xvcD6iFX8J9oR1GfNW+hET/mi5a8G+ilCnUPvquKUq9HGoEq1dKEBsR00+QFfUnIHf5fq4L6qFYFHfCFPP5U6lIOIpxHRG/0hbwWrQk0r6AdAuYL9LV5HqYC7OJCAd6hGdwJFKC/qqlTmd6pzOhU5upU5u5U5ulU5u1U5utUFteMFatyAmU0WGUEhqjqKR8/44uV9GDhHmxxyruK0syGqdp5eA5X9QsAe5lx0RcYofJzvqomft4J2ydcyV5oYXXUc12QxJ420eAXJfEPVkAXvwTZddKUkGHph0uABlE+Zhem8CuI1YuFe0GWiSTLPua6DiFGqe4bACuZpxlgG/NyX6Ba5ddIpOtOlD7hKqxF0Je6+Q1J623RPLxZ0vpYNC/nktbXovn4TQjpFkJ6LCG9FvC1lbUH6uk2Ivdj4X6Q9Ytw3oUyeGNBrMrRT9Kc8p5FoGnxfaEcE1U7Qp/wAFYPUYPvalSn5scoq5NV3xNfIKLyx5SrJ2A+kIUHsj7hQZZkcfwpJIsjyawC4y1U+f9Blb9IR+VXxf37yq+CDqDyCaDy+2DuE9da+YPsyh8IT1T+IABU/uA4PiAO81+rs6lTLa0doVZByIFO5LbaMEgSpTYMlsRWbRgS9yHaUD6YmT+BMgxDJFsZ5trKMBJCQRlGAUAZqgGgDKPj+Agp4ja756sWIo50eLTRjlGS1qod1ZLWqh2jJa1VO8ZA6H+lHST7ZFT+OMS1leMbcE6AfM8px0SLQMoxKY56jqkfoBxgxifHoat/E8uQ2dXlQ5j5JVtVpsTxOpnn4Xa1RESepyDt9+rOVMht6w5xnR4H1XmFVGcYqc7y/w+qsxyFDdUhANVZE8dXxmE58ze+Kg5zuTf5OiT6nl5kI4JCkTYBQJE2xwXqVL4hDnqz0QnbVm82SaLUm82S2Ko3Wz5Mb0Rb+jwUZxtivacX2QkhoDi7AKA4uwGgOHviAtsY30Ei7XSitNGTXZLWqie7Ja1VT/ZIWque7P03eiJkHQrN2I/ItqJ8E87YexWlXipKw4cqihgZDjyvKU6ncjguMFzlhyiTh5HWexXjiFQMweUYacZHyM7zeSjGTShGM5upKjdRYjsZTR1uU7UPZfwOpLFNbHchY1x4GIvVB4czjIv3iMdHaXn1EiL0i8eMZUB8NDyUVadQxzgwHgvfv9FSgw8iFMwGxyPGqx6kupnSmIwo/qrGZuwtKJPjeY0d+W1S/ieM1cXzOpD+lpKoKCWjWBh/1Wj1GDxt12hWVdXIp8RTw1qmxsJjGE1ExPwsFh7LxCwkFh4nqLHweDaUvOuD77pEtXwOgk0Hf5ElxKUoFJpCBicwGBBnxKNRxvmJ8XOeE5mrM59FefmYG3n5LbKyBlkR+VgT38xWq2xNPF9nZ4eW6OvjYZfEv+AkZnQ2PwHKpg9JGWEmE/vNz6cdnEgCbaU0P+5Fe95vINFjSPQ9w7+/isZ/lOcxyLFeZQQ2qCqBjapGYJOqH4vnJ2zhvqairLcx4xR8Nquu0wBbVPcZgK2q5xzANtV7HuAJ892J56cQq7x7mYufBoJZPg3CZ+KL9CKtjhYnRWowgnGR1WB09vCzol52iHqpj4RctSG3qBVg9ojIz8VbZTsOg11N9zIvPw/CWNYQ6V7m4xdE/J1qyPuBcS/GY67UEPLURkK+hhqgBOG00WANleIlmUDIEClcFilQHWN6AoqPX7HTaRVFJBfy1bQR9ColhulMyBcyRJJwWEkT0UvkiJXiNZFiSEcWvPx6m8R0kdiN92dKyNI2sWaRmC7y4gMn8NdrkARRHIeVGBeJ1Yu0boq0CPfxW22y9AG5uU0J1INlvUjDawEfKMhJfY3F+w6q+F83vbI4fhec4kRr+gx0+gGifFBrIot8yIDuezrzhx+k149Jrz+R4NONSTRODUmgfuH5qS0t15UhCWJBRmCPqhLArY0hCXxYgtXtwFJBqqqPgM8+1RgFsF91VQPg7u5ogC6eMQl8BEL/m5wZfFSCUOtXVFLnBii0i1e3JYV0MQUdDV5oER4+BohoEV4+LoE6pKjKxyfEoJWeWlHYnlo+QbpD7poa+PCJCbGQyw6DWha0SaCJSDYh+K61Jpgs+MZUHqFIFBSMnUg14O2QbN61kkQ+wXfdouuvc9hMkf4hd0QkPfU5zhZtmhRHEBw+0wWfepXPoEitebAizWybVYs0S5JEWrMToBPviiWQ2R7aMw8laA0vZMCopf5ufoLVAddb3d/CBKjJJw0s/btASzZDS4RWbEbFYplO4KCqbk7gWxNoF6jB4rGNIn1KhyGomsacRsQqUsqw/9CkKo2IAiPrIQKqehjgkKodSeCHEmLC4Ho4oUjp1mQGsZvBTySUJDUUYUWbxLphNXQyoaFImZ0CQ2c01hDuEgvp4S7BOgyLZtJzpCk0Up5CYDUCi8OxhIb69IUtLfxsQjQ4lcHGc47E+zQZ3MaReM0iU8fRKyfwmyiQaaxkOgvjbwYTFuxbCdHAGWvVeTshZvvNxEUIFOAd+J0TfmYxnHdb/WdZ/vfgf8HyL4T//VZ/8DZBeJBQMpsFLqmxSNfZ2CPkD1GM5dMYf0Qifoa26abT8n1UIlpnxRzW5K+Yy6ggr6vKqMRmdkNloxP56ERnHG61FYhen4Ze6ukI1og1lhPOGaEjgvr86B3B+D42MVYyh4XnYAHWlWYGzao6PpGPd6h9SBQ+IRERKe48FripNoTns0jgthqJNoQXsOBCBtc9lSzh99VIpHQeM3+I/E4Ei7ksPBeMv0aMH6ja5EQ+2aH2Ednjkec4o5od1kA/kDevTUR5fdaL8voHimsnigt2FlXZiTJ6rDICsLUReMC0nYl8d2JI96fRzs2eRMyti5Su2EGu6IGi5XsTHaPkvkRhgGzi+yHOYlayBLMwWCXQUrBCx09P+vlD1yXMLXZjoiTC53zoUKupQ30mqmwpE0YC0WaeCSkYgeWqSmAB0wj00HQClZpB4IbqqkjiFUnvNX6h16GKtOqxASaxtvYf2zZWhclBZZKslp4aeplALw1TARGP6oH3SgoZJctYeBkqoQuKoKpNhN7YdrU9+4SX29XYR7Mq8DPU1ffV3H2TqFfvl8T7EqelLLyU9amgnPJ+YLWChTzhldgeI4MMJqWkIatYd7JOE7qadadhekASQq1h/tTukGCglAC9+ECtiBWpggnGXgrVdpZpETDTtJDx1pTTCWZBzG2oeCi57NbwRME8VKjiH5DoIJJgLSbOn4Rj8HMSDG4rgcPFntxiHiVYBBBriMUixS+yRgHnMWRgSNvoMFiJUh+WBPX4PNkas6EdtUmYuU9JQuFFw+vxv7TrUqbCev4Fl8vawV2JADSuKitR2KM0RqBaUwmM1jQCYzR9ZRJfTYKL/feQEdyAmS5fQwn9J+4fG2EkFBN8JmpKDFEmaYzAZE0lENE0AjWaTqBWM2JJvCEpGqjTsJczRaOmO1WDRSQwDfqjRwLTAWBdmmFp00wtUr6R8QOU2hdpUVOK1M5ZqTHlHDiil7+QxC9AQGsr7SJ2Tq199tatNOpCLyVhk4TVlG9iYr/qchKM+vNIhOf20fgVSug1Dwai/dRp30ZK/op+7KCwvN1N4neTipRGmAIqm8zxGDsa6juQL7+fFA1upk7/AXK2UIuihwws0mLhLSy4lWmW+fAhvJYKexF/BHSZhT5OoinFcoTdxiz7l8DEelVgYpUqMLE2Db5riLH+CVissFg8BbrSQp9Re97OSncwSPqqpib/pKXFo3lUXmEiX8W0TTCbevqhJuVrJ2ssUpqaGa6HDjWb2TqNjTf5cDMaC+9i5bsZH2lGw3ugNntZcB+DCtNuyChBi4m+aLSJ1PawcKB0P+Nj7XhRxieasZKdLLwTLX85okx2nH0oRV5j1odjaJITqGferqlTTV5nRotayusZn2JiWtAAjuUHGJ9qijG6M43R05FsA8NwTHHFmDjThPkXUWaZJg1xU82GDd2aYMs+wNL3YRiehwj1ZMnLhecCYnuAUfCFghH5EafSLnwJCJRJygcUJNyF/EoPMr7cpP3b11UM4DkoslUosma2W1NWmXwN8ir2eNdSsX5JRbF2RpD1Ish+TVmP0sR9bwJRTV1v8o0mlWk0vJvNBs8v04i7kvTroIiB8j+IoLiuS6BBUwkc0LTDJm+StXHYFhS1ge2QCjdGkSMmLHC0lTk/JQE2aZ22SisamQkDNQQ8jFCNrPwtfoyK6gjjx6kY3qLKRSWdMGFN/z4/CYA+q678KOOnkQJt42ejyM6YpJc4ZoII+yH5952V3VnK8lcMlMqPkIFbIgP1mnLL5HcQ/fuxNOxa8LvmV/k9iI4E7gM4CTxok8DDD0vgESUQpLb+ZyTQL5mKHSXUL7kZp7XYoGQ+IDkWPsZsDasmGwIfmEwTnOOaNb0ZlEzVKUy52FsfnIyNL7HNP0TQ68WucmeT4g0V8U7Y8YYlI+Wv0p5UMlKOIGVeK6KEA6i1N8gjCR6LyGOJ8AD5ay6aPlFlHhCiYj5wAKLi6j4B2nsDuMK0xmTemIwiPaOJHQbR31t7adFY8DhjwXf1KlRpE/geYc4xoVjAN7v6nRTanziULEzv2F2LBU+gT4lQ6MMIPYSloMIC5zV+BK7BmBCRgR496QVNhDmaDCURfcYxyl9Xl1c39pC8N4W82FG4CQmbYBsCuKSpBC5rGoErmk7gqmYQuKa5bibz28mo1m/wO8lQn2/yu8S8/CTj94AY5d/m9wFd5d/hDwDd5d/lj5JJj27gfNVLZZ7yb4U8Ho+zufIYnIKnGCyoT8As+E8gT4ldgFtDwE1rCLgFgOnFbbsbfZYcFfbUwUwYVHkLZepNn4kzMD5kqiZFrDBptwQLzfhOZQmdyhKBYaRYrio1KTQdYgTuqCqBu5pG4J6mE7ivGQQeaC4CuB5N4ArzLAcYonpXpPC6FAyj9Rj488VZLtoqjoZ/XE0VZuGfkzg26N9J+Sd1c8uYb2oKn4q4Od2xuJ4O5DTmg4l02mFmShSH6k6jJ0uJBh5Z/fjclCgd2zmDhveqOLeTFz7LcHQneI6Ka14K1ubY0l/gsKETGAsR5d3AUzTY04hFkxBrMbEEgXAeoEhJIy1aSi5BsA6y5dSUZvHlKSUJXROUKkyYVqWE3EVM7IK7kTV0KXBQHvga4ZP2EtC1KURPk8a7888Z7y7AeFfmo9USX5ciDXqwXmxIgYgVOOKVQxKKJoDSrCFHjH7qh9JvyIcJFAmzMSUavEij6hYkaJ2mCNHksFKP24YK6anHb0/h2yA89DuBobb5dpFZWK8S+I6UUHzJJRbG32Vm7eqkknluZ0rICyl6O1KEsBazRLDFEoT6iJAKoy3akJfvksyutGW2+18xi4npoeTvMNsjmV11mJGRZW8bZu+NC9nakN4j3T7J8FpbhvvbMBQFS1m14/5LhvUpDQFf9ttU1v31hAMo6wF64skU3pgSctllepWJ42VNKai465gdNwRvoF11L0s0P4qsHJIBm/GIAyiHEdAK84oG+0oiGXv5EVTXdQYXPwYMHRmFPA6p0Zu1dmWiAk6ibQzRA0P1aGCYHhgOMEIPjNQbaHrl/Ecj56esLJ9B9JxQopyfI+OvaPW1kVdQ7UdZrVW7oSR0uoL9GSR/hKVgqsHPUvJnGToZi8Hz8RqcvtfLz1ki06ToPMUR3a2XX0yhfeCXQb2U8l4mkAqJ24VFOPaJOc2mrxIDn9g9vobGbVmFblB8rC3KQ5ynhAx0Fx3A9RZRUYs4fnObqEwcbblDVJw9MsXGpUg4FkEXcT8FvePXPWm6MZB6xyGpondMhp0kVXSIQwDQIRJAh0gAHSKB+5pO4DIzCIzWXdUAV2BrA9ihecYA7GXeiQBjdN9igElq3BKA7Vr8UoCxesIygHF64nKA8XrSCoB9zFwJMEFPXp3Kh6VC4rfCN1n5LcZHpGLSnkb29JGpz/VOOEZTDT+V9AQFF77N0G0cpW1rNx+dGg1M1gM+oQRVZKlLxVor0A3tdVxqyGuvArD87hzywMlqgncYC9To6NAwQeLjEWYjBZ6YWqRUoneanBrS30nZAq8aYChYLLgCtTqvS60s0wN1Op8CxMenItkpevldZo5F0Jlw+eDgsxBH9jf3aBc5ldR5NuXzLmv1ilDgOTIwugAZeO5zga8yEXieDIzOxwqcAc7zUVStjK+wSKWJFQ+RKknMxalFLd0w1ixB7rqha1wqYAJfJmAiXy5gEl+RWgSzl8lXC3eK+XMV0+31KMlQPJVXVVky35gaSka5pWHFwzcj0daha2uqPXRtQynYQ9fOVJjoEDshFB9KqAneZ2rIh3W2gSMXePAPB5ZSQ/EbSKA9toB7QeiGDnufLdh+W7BoashEQJPXI//OhChkFqmoP+o8GkT2KasHUs2Z2DVsIjHPimprxp2alCOp/LDgHcePpIYSu5Wl8qOpoSTwTOInEPkWCyWHu5QkhZP6dCtL4adSQylQACNA3L9CGrZOp5Y8ZGH8PULRpPCziB1KiXRDP3WeUHfiR5HcxdRQHNYXP0L4y0gmlCAa4hUne1fbFtR1p6BuyILi/7qgzP8D4zupMH1Yg9hjlvY6KPdSo6GkIpaIIT/kDqXWvGKIBlFLxJq67ibOdhYp3Wk6cT/1gycEj1rTjfvACnpM+WLIbTx/ZldRi11FFWmkS4m8h4BJvDLNrqJeaR9YRVVpQh0xGaAG1zfNrvm1VFze9OqnLXwAQrSq06A0W50Gp7Wq0zCbM6oFs5HAHN1qADQrpp53eBoO08zRI6QGI9P+teaNSrP6SF6dhk7xG15MGfu60SnOTxOdYiI6RcwS5+vKfDx9dUdlBHpoKoEFurYQIKAvwu9o3VgMcIW5lgLs0NzLAMbonuUAkzBJBNiu+VYCjNXjVgGM1+NXA+xjCWsAJuiJa9P4QmScer+KJ2QOXAQXJmnOnKx7Gc6Rp6Fz/4B+z8WXonSo36ungY9sccvScBwJ/R7OOqZRo/fyFaKCfHylgFi8ChjPV6dRY08wv02NfCOiYa4lGnki35wWSqRGPhKlujUNk/kYfOOwORUnGnGRUqQGfEVKA1oxNnu2odzRkHx8u53iDhCou9lpp7QrLZSALpSsXnucct/7/lzu+9BcRsEAKSTwWJpZg+Z2gORD6/aA40GRmJc3QTlCia1tOIkfTkM7sNrwkbQ2bTiJH4PyhZKEVp8g1JX4JTA9nYaBoSVtKniehXCYlpqJP4PjgiPyRUJKxTBMI+6l9+fg8ofm4IpTRledrFxLMxvB/QY8QnGiu2h2wvB/V+QmGVHvyFDeD66Yu5Qjar0+ft+umgeitOL4Q7tqHsmqeeLk8+n7M/bsQzNWkW5VjWjVlem2JqynXHnSp6JV9wItFJf6AiSuSo+G4p1OSqgUhgQsfYqUNtrUOx0N8ptGe92YkoEGOSVd7OR4/BVPWVlqx7K0jmXp/opnrCwTTRQrmbJsP1nRYaooy/HDxFGW568qy2/G5URlSjoWWzojsFxXCaDpTgcI6DPwi6Y7EwBNdxYAmu58ADTdBQArdO9CgEmqbxHAdi1uMcBYPX4JwDaWsBQA05llACv1pJUAq3RzNcBqPXk9wBo9ZQPAWj11M8A6PW0LwHo9fRvABj1jO8AEPXMnwEY9axfAJj17N8Bmvd0egEksZ386n57etleYAdd7eoWZ6R/WK8xKf0+vMBeEGnQTIbfTTyxIt3qHhekYIqAgiwCpzS4WMJ4vETCBLxUwkS8TMImvTC95xsL4a2HvYDxeZTs7lrYwvjo9Cs/AVp3W6Nv0SNdnMGVUqGSfSuZr7JAhk4KuTxcXveCTwjend3ynLI1vIZDOt6bjFEkP9C98W3pVWQbfn46RGR1aLq+3RDE3eBSv2d6NBclOPXdphpcfSTdDoPHjCFBWEEqmbiBcqVaW+c13YDAM+UMFHYTKmB3JfngmHavETKwSixSrw8vgZ9PNr5PX+XTzy7jKgxvB/KQVqqeqIGSwl6qUFQZ240pReqiwHVb3LygmzGwdaaH/AqMD/S8wT2HO+pYWNqWlBQDCvOovSK6AzdXvKeCX0s31biRwFU0gJZQRrFLVzvxam0K4nm4NSMj3DZHvZrvAeXo0Fuytss78Vrr5D+Jx5/3ZzGLPZbM75eVRuonLgF7+JL2kj2rnONhHRZ+fzZ+mm+cpTEu6dc7L8cZLgKI18YoME5NfL6/MeG/kHN4zw5xBfr0zzAjBvhnmGBQaDRb3PqDQojp/IAvt+5hHx3T+2KGIU3CBep0/cygqrRoDDTrvkWEXtWbiakPggM57ORRdFr4hCt9A4f+1pcVIbGnJaGl5taXley0tf2hpAQnFRRVx4plVEQMyzE+6IPQg3OT7hpX5PlaWB2eYueQzNONFUsdhGWYCOUdkCO0cmWE+M+CsJt90PjrDbCbnWPJN5+MyzFPknJCB81Q9VD4xw4ySe3KGUGYeyTA3kHtKhl2ZXi+flVHylHV9yhTRs/HZGaHUhlJcQp4DBMbT0n4qnws01K4U59rmCWIPtbS/yhdC9LccozpZLhdlkMXzoG5ZPJdmlPwgGkoLocOIsuAAVcOlJdEx8mUZ0VBeKDXcTxVXmJYT97zSgSpfRRxbJyBr4XpPV7Mh48O6ms0ZdnsbpNL0Y1uGM/3YkWF1KDsFjOe7MqwOZ7dwJ5hbMO2geVBeNINHEQsnTMTsI583ZITyaXSHJZMfzAjF0SSmMSOUQN1UU4Y9aT+ageE+v3W4z+LHM0Jk2KIp+4mMNsN9Fj+FuKEsDIMJ/CyhrsQvqhjWM8RwfwfhLyPDYrj/DhzXMqyGyK8TUoqVcylvfn+J8A8tkVsQeQN1pbczzJOYV9yDOxQvRvj7jtcjIVINifRU1GxO6RjGnwm0tHQs4y1UNwnOWFk6jvGKzFBqrHQ84z2AoLjiiauYjpUuYLxnJrqVVLET0zuzTRfTJ1P2s/0zrZyZF5DNoeCCXFOywwQqkh1OvH1tkx0Bikh2JHlRst42yVbLZMdkhjLk8gRHW/k4CELLE1xoCLlw0opW7HXC6vH+Bcr4TLlACSW2Giwnt81LpE1e6uy88KmZQlmd2THNlqdl2tOeOD4z01K6WZmkRvF8NmYNVOhzBEzi8xw2Cyw2bSfdCzM/ROfFVGcJOIpa3kvV60n/KKY6K0ALxacKC6koU1G8awUqincdleFztboeFFG8G8gLxUszIqrQzRCodTG0NdNZW2e2LoZ2yqLfQ7nIQcPGLjTsPPsyze8xxfwWdO8gBk8xGg5Wg0MwhBUEDuv8UHqowB7C7qNfPYKtA4fCaFgIHNX5UYeimg2gHNP5ZYeimRtBOY7bsw5FN+eDckLnAzNszoaJE/8B3MAd4lBc5gBQTul8uENxm38H5bTORzkUj/k2KGd0PsaheE0aL87qfLxD8dGp6cA5nU9yKHFivDiv8xqHEi/Giws6n+pQEuR4kSjGi0RPQc7/PmpJ3HG/BX/R+y3dHrQsf9Dy5GFLxqOWFx61fPxRy5cetXz3UUvoUcufH7W8+6gFoXlDJlb8mI2QTZzsRp1DKWLH7Z0UssYdbKusjZlRe9huaqO29emhRGhNItjkpn/6fgs/hloU9w+JwYm2DE62MjjVhsE5qmq5BjmficnytzRswL2IufLFTNofw8z3Yia/7Gj2FRFDdGNXKfS3aZ9+Ke35XEdwTJgMWPZ05XompsI6I4BXdQms1bRmgGOazjN5c2YD7THdysS6+5pOJvSXylz4ylnI5XHBuEW7rrfhV6TgTADMPBT2bmaMiklDMdW/k0Ih7lHs62Rl1c0A3PczY4L+gOg3LDrtgjzMrBcL+kdEbxZ0/gQ4dti+443TjZ502qUF0tOioAlZwMW2m7rSAmnxBjCBNbraIwu3oHStEuC2rvcEuKMbvQDu6q4qAHxcozfAPd3Tl1zMOyqLV2LVLUY+3OkPp8KCrfOeGFSoU+kloItXCejmfbMwesNQifNgT7G3isWJl/fPwhWfNNrzHJD1VT4YLhxzxQ9OoWKPiMw0fGhWFPs22MYYjqRKRQAk4+ajsugsGga4MeCP1TudlcPsIouW3h6Mck9Z+Cmuj6CBkzBjskIeqJEHpjVfeiPmOBOy6u2+FyZ2Mp1OzKLDmDXCvu4yad97UmsQmOvJMjzZCkJnHmvtRNFoMUcROSvBQRNx5dzOXhOfloVzVmMYzvWgj5lODmTOTcPjTHIMxHmsfvjfH5MLrTOfndWAUwzWswFzyH8bs/b35mVBg98ki761Z7eAPMdhO388/i/A/6FqkepvCA8DLxwHEhaG2rb5xTEGvigLmvxd2r08TUcYlmSRLmAXHLrgsvThga4sQb0+1NkygEe6uhzgsa6tEJWtrwR4ohuryKW61mTxZVn2QNnIl2fFgsNVpWKE2sRXZjUER6qoEYOvEYXkNk9TIa3LasBEp0sQywN/KmbDtEh0b83iG1DKo9RAhdHqHQn0MCKWq1rFQrfrKFUT4/QmZFzwsFZIOt+MCiElcPGtdn1AY7x8WxaOf5ISiFhbZVG40k+hKHZYKfb89ymadCV/jxW8l1EyQu06QlWECK0yrckKuaFYboxERnomuO/Lqker+x4eETFSUNBHUdDNrLehHM3iJ6gO3iKfVPiccnxOZfGzWX5E+r4bOw0jPfAbmG1Vj6ewsiwO/xOorhL9FaPVsiSs1k3UGLaUBxjKwGyxWU4Am+UEBhoagUGGPgpgkmpUA2zXXKMBBhvu6URknpkAQwzvLIChhm82wEI1bkE2H4xHOb7hp81JPiSb5sjDDGuOPCwbG9djVD4cAcao9TQLGiHQBpp8jcyGio5Rw2PV8nEqH5WNE40qJDZ4dTY1ThcfLaCbj0Wccao/LUoKMMqIH4+Uq42ECQCjjcSJAGOMpEkAYw2zNpuPz8aMAj0GSoBPyHYmZol8EtiVpYQSKstSTfR/XswEUvJRLnxyNgYKU9T7pOxXU1OSz2A5mepJ4RF4BCeo6Edqsu2r7pC0FlRSoGReZwlqviIatJCyZLQKZq5wF+tXZHAc6zra1sa67JALNe/CTC05fSdqfobDeKLKZ0JwYoxFi+BldVVz7USwNeLl8+AxESbKcSqlEZ5kvRcxV3L1pR8C1wVUtBPV4GQsNDMwIVuYDZMQmn4wojKxE7Mo2+4gl6CKwjWqeMZhaTYOpuC6Nu6n4oJ2JFhLq+dlFquOmDPVqehxliOm2CFeacs1gFa/qyE6SQTN42tay9zD14pAbvPXJPx6nNkL4d4LhEejDk9RraOEqIv3UCvJph7wVYoq2YASwn0IOk2ETNlxp+IYoWjV01Q1OF1V6fDS2uzWVuVLH4JS2Ixce1rLYIuTO3EpflvbEimF5u5wSmSnE65tKezCtfOUz1LDblNee+2iaS1rq4T2OSW03+EkUmzIjoVnqDRW45GQziUFOLRRxGa8VJZSPlMNpXhSggXsnZSOSOIgJTHLqpJGysKLTtk32ZzFQZpDz3mtlCrgTf/dsxZ+JBv9xn8ZCbpxg2Yhx9A54OQZ+gHcBp1lKMfQXHZo7ATAbEM9CTCJaacIqPoZgDmGcQGgi+sifvG1q0sAuAV2GWA3814BCPiuZvMTVL+N/BTyBsXV+RlR34YJI7SXn6XyQYUZqGzc1SMYRH29VBbfrSkU74mvT4RZh5/LbgCHM1AgNAwDaqSnb0LlXcguMqgTuIiM1YvrAZfAm24HXBYQRh4BMcHKLsmANsA6G3JbrwL9wIVs36chi1OfiIlQM5tnKBxS4yoUAXzQgsBupt0CWMb02wArmXEHIOC6i985hvseQBfPffxi3vKAgOp7lM1vi3QNfkdAF78roJvfExJ7+P1sGmXpLOwDq1h8/BGCYK1q7qZieZJdT/MxUTRxKJo5uImIjZVW91zcSERRPs2GAoYVlBbmIlRcYu1KxLctoksQaRULIpUzMZtKxYupjvCj9Ww71AE62XkqGYAFOl8NdsV9gB7tcDpgAh1uqWwXxQEtOgzUsx2OEIU8MWKFSaYeXKBiq7wXqAbmICGX1SU8yrYWZShwX3oX1FVvBPAG8TWHzrxPO6jdD+kEXy6Kv187GsjwVke/dnxAO5KcjlTkz8e49SM9UTfm0hRzMAKhjuLRO+PSAI4MDW4nNoMILNDVoQCjdW0UwBWmVwPs0IzRAGN01wQAzDAnAmzXPJMAxureyQDjdV8EYB+LqwGYoMfXtuND27WaX5r48HbO9vcIkFvtMGZNt4N8FPzetw1E2l3d7jmDL14mamf12C4+th2as3UIVmx/ozd83/b3OITZSDo9oV1RC01HJ8KeTntIkwSEHUtAH4+0oz2jOPMJqcs0pIFuTFht4vmMdqF42jOC8Y7PamfNT/lsm98cEGj4mGvzmdfOXj3Pb2cuQIRFFNne0FmMsCTDUpx7j2818CTw5e2wi2QZeFa0a2PgSeCr2mGLISFC0+c1hOqJ3wPPde1wfKkljWbdG8Ay5BUmmI22aOJwxCYKwhDRw7fYkm61Jd1mS7rdllQs+nfZkfkUYuhKf4jubA8CQGt+bGBhco3u7Q/OodnOIrUMexaL1TIYuVYbyuAcLEoMRmCtoRJYZ2gE1hs6gQ2GMQxgo+EalcOHwhj105IlKv7C+Fuqdl2iMnHGdFhOyTI1uExFd+Piw3OiQSgl3iJ6PvwK1Q6E60OIab1ANBJhVqKpla7CjCbHX1nmNnfSrAWfSKxFwjsMT10OzkqIUPDk43PMTBo/J+WUrFbDq6F1K9XgGpWR3+Qc8zEpQG1OySI1sMcI7DW6LlJVkWdel1OyWK0P7DPEucP9mPtGui7GaE9FwafkYMmzFkOkGECnwlWyTg3jb71aukHl00CghEo3qnx6TskmuhVoBDfRaD8jx+xDac7OoXncAQOntQ8a1hUW8/eo4tE5MVT/2JySzWoYf1tw0sC2cXwBvhMd+laHzkzakapx6NscuiotBZqwFGgeX07/lhbt0rOWR8/IuAwHn5sTcqPSf+LMi1eizpvZSUNZmcPX5KCj+Sl1NPSe2QHhc8ZQDuTwxhzMOneovIlClNBBnAq64NkvlxRmu0pT4hEMU+KKkcyaFONYtlqGE1cXDKVfbjO7aDACeNGGAF60IbBc1QksYAaBJBf9NjE3gUuGh8Blw0vgiuEjcIjFEeihxffL5QNyo+FduLvZxZ+GV3NwrNNIGATP60biYIAbRtIQgC2aWZfLh+VGY7HgbpWV71H5iNyQN+VXKMBRuSUjWu/Tduw6gmkiC7w6Nxbeq4b3qSIvfHRuyMRxDQwPqaX71VCqJ7UUN+fGgIrTuaq4eRtTa4cKB93PrYcj2IB6F3ecJnxIIhNzS0ayrnj310pkkmTncLKY8JrcUFIME+kDpEl1uRh4dqlBfPxJtP1kPjU35CtpVMP4a1LTsPmDlaKRPD2XT88twc3UuK47ob9UE3xGLsysScFDcFN98Zm50ZLDaigJc+rkrodVrfyIaoZRLLMlx6NqGtk65uaWHFPDxxBWxp6H2Med2Met2J0QdlFuyQk1fOK5sIsR9qQT9qQIy5dZtYfjamppFzH1WmHlDRUKSfiqXMzRMEWj501W59KLQTQXDrnrQwnBUyrO36zJhSL+zFHiddBDoWvrcvlG8vl5/Mu6cT4NKnoYXtazI53EOVprAYdDdoSgXsvoFFlKp7LUTmVpncrSO5VldCrLJL+sTmWYYZS1wzCaA5hLNLFDC0IB/vvxvxD/2+N/B/wvwv8XEPDFjmUdO5V1Ata5mfVzKYehhzhGTQArQwIBjX676PTb32UQGOByHQMY6HKfABjk8twAGOzy3gUY4vLdAxjqirsPMMwV/wBgkJHwMJcfzcWIS/3isdxYLHxWDZ7Doxro5k7khtwl59XweTUwyvU6C15ArbsxVJzKpaNlMGz/D2nKaFfimVx+BrQi3ECic4fnoG2BMS77nCnKEYO/K+kC0hvnMi/m8gvkf5YFLwp+Jr8IvQ1eIiNDMr+cG0ou8iTSivVKLvV0E11ixSpq96qgTLIo/AbEC0wWydDQytEkYYmjmDfhg2kPLMmUjdsyG5G22XjsZOOPHkh4VE0elEeb2ynVAP311NEANa60MQC3jfRpAHeMjOkAta7MrQB1rqztAFNc2TsAprra7QT4Rc4u/E5z5e4GwN7OHoBRav5egJtGwT6A6S7/foAZrsIowDC1fT3AcLVDA8BeVnQAYJL6QmMef2qXKCaAl1VG5XVFlFcib8kN4XxOuAvtB1XkAUe500nqHoRj6dYd68pKwjXCE3ivPBTUzNaC6p0nNn5oo6gP+cxq9ekrffqRz+xWnwFwyhIdRJ5zbE88GJqHw2ItYudpKPnMbfUZBh/L9DkcHpi3pljGUTcfmRcNzBMvFPBqnMHG5eJUPi4v5EohG82EvPpQai12TLpjH3JiXgM54uBIJ+sAjwhf8qoRXqDzKXm0fTIfMzuaTBcxa/uPrr4VqQ21iF+Dfa+4mpqIc613Zh4ZaxO/CX6zgWJbBzfhU+twljKDz8kjM0ViOvzmARUxLb9Mk/bkFuaFMrqXZfJFeY5XKBPrIINs9XyZFfk/gK54T2S+Mi+USQmsynPSC2Ugoi7sk2tbiWR2XdfKm+ydm/JKrqrYNb+q4uYR9ZCb7fyGsJmIYs3EsUIWyqippXNGocya1lvQW1HsdhNeSLpvNbksvj2PVmzZfEdeKIvWh+14Iyjdyl40v07btIdADr1IrTmHH84L5eDmBZbHyWhbnUPoxmjKG1jkwtlDN2Q5kmcmYgl3FOGIVS4/RjFa23ceP54XyqP2jV6On8wLtQ8sRlSw8xC79oElxIgOGp1uDdeBn2nFi/jZVvwFfi4vGuoA5pFQkXW34wULCKbisbA6tdKECRqvPFVad83O55m/1xUTr6d5+TNEzxH3P1ryzB/qoFTmh5Bzymo+70m46MQKeC/C0ZjQRfMqwtGY0FXz3vlRsTsbCRVYKfstUBgJLHVZCfbJN59qYN2/DesBbVgPbMN6UBvWgz+c9TKb9ZB8s5ZYVyNoTvAazmbQs2yj882BRB0PavvACjvshHzzHaJG8kMYghInUT+80vViLQ4HTTE61gFs1zpNyee1+djC78jr8kMvFmHS2m4unSgVuDhBGWqH26Od+BTypqVCZ/NTYvGTH+pIlYj22hnK0jncJbDKqlasmB3KalCI99T8UOcNiBrqHOqUvhHzx+mILV6DDKyxnikhg/zM/Kjt5LPyzVXYH+dzIfswUtR5+SYebvHyhSCMIMKifHMMCCZMuPwSlKrspcAolV/JC71kT3szYGweq/OrDoWZOigrGb/mUFTzFlMC+xi/7lA08xQoOG7Q7FB0cx8oeJ6LOxTDXAMKXqG56VBc5ixQ8NjVLYfiNseAcgXvyjgUj9kblLWwSTgUr/kXUObp/L5D8ZkhUPDK8QOHEmd+G5QAf+gQ4s0vgrDOxR85lAR6aiyAO4ePHUqimQPKKo0/cShJpheU9S7+1KGYJu18LsNmer5dYMli53ODi/dzKCli53Ojiw9zKKli53MTVl4OJU3sfG528REOJV3sfG5x8ZEOJUPsfG518VEOJVPsfO7FPUmHkiV2PufofJxDyRY7n9tcfJJDaSd2Pre7+GSHkmPSSZkdeDzWoeSKnc/VLr7AoeTJ9Uy+WM/ke17K2fW0Jf/B45b/v3++Jy2/etKy4fm/xict+Lsm/mY8bVn5tAXc0Z2GXoTGvxh6MdQufQ62TpdBuXdauk5TlBX5NLnZZU9lVuZjlvQLT7Ju7CO7y+l8sTEZ78d3WGmzAIsiLI0w4caR3H0u5TSa7n4XI3DRUAksYxqBlUwnsFw1CCxgLgJJbvptYh4Ch5iXQA/Ndzqfn81vXfzU0uJnixZ3MZ+fz7dngxfzn18nxPPL+bHgDVUpaVbD+OP48ixyciU/CgKOucd3bbam8HSY9CpxeanMxLQyZHpMcQ+MzC8Wg5tqGH+cTq8Ti2tgcdNicdNioYDF9Q9ggYcoOseKNJqhltxSw/gTTGDExqsYrniOvDW6Em4CXDMSb+XzZiczPL/kutqx63VMoahM+c38UEIseBtOKlx+K99enSQ6q5MkfhtSYXWSiNVNfFd7dVIOae+8R65Kx3IcK7mjhvF3F5Y+s/SeyLjwRH+KjN9XlaKv2Tm+B94PrBzjPQZaNZFSPBBKcdxWikdW9bRZ3TyxasRe3TxDb4+XbMTqpgW4vbgJeRpwlEgsbyoKoFalbphcT7ugVpUFtIjBM0d4Y6aygNSFEcDLCATwMgKBJJ1+LxoGAXy4lsBJl3sIwCmXZyjAaZd3OMAZl28EhsmCBjwQQiWAqQBdkYMjpRB56V1AgmNjE5O7OrwR28dyi6cxxEOL/SmmuDc1oCCEm0gicK2A43GnBQ/ygWyHGFQAOyoC4NsbdkDBYgh45okkTGxXw36JRzfIDj1U0CkpXEtKduhePryAZj0+PkJAvPFREHL500ja6oKSM2rJQzWMv0dqyWM1jL/LrOsZWHXOqLA1jUHQ8BMnyFM17dOINZbSsQXCaWlHBiQoZG2TPMkQfIZdGrME8cY/x6xFTXuD9PeyK25iAZ9YQHsqIbwiKwqkjgxCgltdsEJTaWo/uSAUX8TiaSpcUwATIb3AW4uyIgwzx2nPMX+qpv4UAWcQcZWTsR5aGhl/ZhVAV0Sh0Tb5QT67APqEmkApEqFRvFcz97mY2DrHqU8+rzUmoi18LsRlcWEyRZha25TYI2rr0HHckDNFhXSnS2/kovQimGLgCO5zjHpoQq2wmd/5+aKn6w6g1rct3u4megZSBuzCJddgvziCAwx4ipiWRUuwoWOI93iXFtAq4ZpLZNrKKaylcc4zAsuE93U8uI0Cr9ScS6MrCvDSaSoOcfGV4ITwbaO7rTtrq6ilheipidfR0NagoQW4i6+DfqxnkcBNV6S1K40EbsEV7qlFAncIwUshgbuuiHhIXsX7La4IlKFMx5sUh2go2A5W9LmI7WhxCYx+E1X6TdK2F/CdBdEGfypyXpIYTmwIVmks2FtTKhJpyCNSuI9mEcrx8YfdEKav5henCvcU4MWHxy48NPEEr5Q8dfG9BdYj+vtRBP20aNd+Giv/KY/BRZdh6dWJeuDi0xSLGW9w8Jf5AQftr/GDDj5A440OvoLxpgLkHg9SlLfjh0DernbFh5vKV6r8sBNoIO5rO/gexo86eAPjx4AP0rrim0/lu1R+HKw6vlRmlH8uZHgMPDh/At5CRNziP+nggzV+qgAHT3HN/wzBIYyfhZ9lKyv/DT8Ph8jLJ/gFoLZAQzR+Ea6HrOtDppQP1fhlJFYfHIaieJVfoTz01co/xq8WwIj5UX4NuqCXf5zfKIjicx/bMWVEXPE1gPJPcw6igquKNwHjce//lnDjHtLtgugr0C88MTBc43eJ53DcgxyuBUdosFHdswhFvrry67izhLB49Rxhi/mDguiLFK5IrQ2OpKAPkdooLYy/ai04WmOd+WNQxmhh/I3VAkPclvUFR0zGYSJoi8bKe2n8KanqL70wz34S+tUi9Gu4W2kp4D381DxG4P2638XCf4iF/xgL/ykWjsI8ul911s2VfsT+FT04/jZi9/KTdo5yK738sKTjc04AxzS1N8Bot9bHz3v7S8Zrsfqu4zW1YryGUcCP17GxuYUvQ43X0Fn1JTe9KjWG1ZBFtB+50XxxtKYGhlLen5IL0+OLdBdiIJLjg/2tloMh5Pu24zuMfEfA15pm8ZHkW04PFZAFr5p8x/ijwYkadgzGkt+v6dyYeI9qvMhHgjLezyf6YyWTtDD+JmtpWMrwSX7swZWXm78BPrnVM6IJe0cEnm+84qmD/5vwr2n1r7H8a4W/l/xfhn9dq3+txXwK+cOTRv+pfjTKKW68S0Wfs5jmpxc3/pvEp6fxZ5L4s1E6uaD+xueB6Zw2j+cJwQe7lHko8iEuRmCoSyUwzKURmO7WCcxwGwS6uBb4+QKwEY+4uflCUeUz3eiIcdfcbb1pZPVvbvv1I+vda5h/rPeuHUVYRCX4W3pwLEKCLBGCzHYrS5BKgC3H71hdXQEwQddW+fkyP3TdueG63I9xuJGvwJuTATwXtgpObOLRg5E4WOSnjvkWizWQlcHe/sKyU+cb4GPvf230t9n/0vkaf8NLG7s1vZO8DkvLLQgG5lv9GCBwwRhneVFivyMlyYScO6gcdyHX1FR1NNXdlI/fk/fX4L2XvPejfMRHEcSGWRQ6I06sxfw42/45Xg83fcyjwY+e5XP8AJz0MY+DgHWkWo3E8A+0/UFfoDgkyuUwUw75+RHwHaBZz8UcFThZUWsg3h/pEwodEPyEE/yEn58SdbPQHXMGotPE+U80NOykIj+LsHgfm/bAlfMo6Ekqu+jn523G2C29SOXaaA5DsZJhU73m55ch5WY6fndFBKunF162s9IpGr+KhrPYejrvGuKVoRIGaPCvhF2rCBxgB9Pz8ezqdYQ7gbcryQZjB8FLNJbh45r/VUNPrscZHcOj8xsIucTi2AzUfpXnor9+Q7fG+lj6r1FXNylHf6be5JfI0G2RebzBcRu5GaayuwDDVfUewF6m3ffzu/5YF8+MInMa6vcecO+MIs80zH7u+2N4lXsGzX4e+OvpgW6SroEQyzijCxQF3Y0ejT9CpfdYJLbcrTwF+xVu9gxgpVttAVjl1ioKsWvp1nsArHEblYX8qb9kqtZ1KkbXqdpB/swfC07TSIdbgE3XlCLfXFrJBDa4S9ItAosE0+kaMk7JOoTKyiZeURgLzkBMiNoD6EwrKoZwOyoIVjwcwBDeuL9s8EoERXoBH70N5YtgekO/Bv3GgrM0JVKFKWrPwpALWfyLihd46BMUvQupc97qVnojF9vcjMAAl9q7kPctbIiRKbA+OFtjiNKdnm3ZTdONAYjjrzror/gI3qsdYyiTEOfXLFLIBxW2HSeHFNojOg73DCuMhl/yp/4EPdjwQhr2tjPzdWrJI+DxMqkXlAxB6JhQcI6mtBLDc8VrBaVzNYr4UhNCbijTsUlTuh3f0fJgXNzOxBNGi6Apo5C+GOfnaXw0GNOLZbRTGg7g2aIxhdHALkvTxgLdbaHjgO7BAPoJKANlVEyuhL1sPHzwrREIFIGGWro7ATRbRSOFOI8DMXHT3WwPq2FIb+iAAuG1hXbjqUPYfVYiU4Dut9CpEBEPYrrrsSKppyNd1oPofBqCxKwg0wvr6ek+XypN3meAXo/Q89pINhO0BtCgvkLSWYhQVKSkkrF+NvwOwK/I8poDr/maODtNw9Tcwii5Rax5CNmI/G2nDb5IoMnO4nyQ7SwucLKyELRDCDoP09DD7kh9eAFYylJZRFwX4ENnlgcdnMDp5uBCmnAsluwiha/qWvIBXDFCvfGlhWjV79D7WvQq0nJSqYpF2kF81AD7w4V8JYq3kSwPeDeMehZ6NwzefBX4HcfkoxKiIP+x8A4UDD7FRBbOlYX0gBf1LPSA12pK4K/UEfalAwdrRQqN7CBeWaYHytAl4o2kjaT1jO0AeMDUPYV8PfiftOphA9BTFroR0lBntwc7+4b5ot3TdcCFoYN8E4KdhkT7IYiQaDFEsyXaWEh9XdTu6zYjpN3XbQF6xuK9FaW8hMaEbdJ7O9BzlvcOO+kBGiXdsbWTbeQ7Eei8G6/BIVW7kw3jeTgn7R0i7f122rsk891AL1jM99jMvc9nC6XD9yLURXcD3u0XCTS0Leg9z2Vrn2S9H+glKMpSiHHFDamWAXE0K0oV8jcdDzH2I0NDvaiQ7SpqY5FGJ9swbpdhS6XMBdwNS42mHEC19HOxgwDPDLWpkB8otN7dOcibSHKsf6EgZV5zKoy8WJZ6SEfw6Lejt0cKMUvByIXH3Y5CsutWpo8BvWGhx4E2I5M4MS406ATcHO7xtvtUIY5XayUrtDD+Vmpp30IbOo0wt92tNKzQ3BHbtQq5RWU0wE4F01Wf8GpqeVodGoRdSXZbu2+1NTp4ys+B3QMkuVyzRDjfNsk1mjiEfgFhHlkSXwb6GMHX2sGvIvg6zS/uFlyD31P4rbP9bhTakiwmGzzZlxose9jid1IWI2mOuOsRl3qGm4U4YL7e6hlug75BwzORZLGBzb0zOUvcYTfi/YOMEBUe7S7qZBLT7xFQjfuFuJF5t5DOvd0TkWmPx+D3UUk4MEXXGHCarhBdJBhhnd5FlJKNi6LB2AQbN8amDdbpWiN9D/rzh8hQD3x5SHbKT8F9owYrZyN/Bs/D6OnadEQtIPWz9gsr2lPHXx/cRJ1QD+HAuavgZnJWto8GelnfG+kJ1O7tqto/X9ffoZzec7v6tud92tt9et/2beqWto37If4hzMapW8SB1jay9G+Ps3hWHzhAJtJU+KrXk/ydpy0er8fDB7dHi/i7gZN0EXprZmh7GlfRHhrpQdmdeObAX7FFKzPQHkSb8NPTBx648FJLGV4WoOfN+3iU4e3x+qeHjQRYq6njAfp5tAkA/T36RIBbqjEJYLHmmgwwUXdHAPBEVw0ATkbWtufDUT7bGSaDI9uDK16ubkA/hz0D6mzwKkmHqkZe7RTBaGRmgAe9zkCPpbBjZO5Gtn81IT4Z56I9CZ54PsVmRp1mgvky9tEEM8odn4aCtB88XAHtm4GyxwN1W7Uw/rZpaVNAm+UEoUcQoR2z22PFt10TJcLnOOLMRepDoSLhHTQkWQMbSE/dJTu1MP522W1hPogjKdxutFFnOF8Aoq0vC4WKCD6Wzix6XmcWI6itM0uA2jqzor3oYDCAli7W+EqRC5plrQK2S5wrWOPkYnF1yt+Qq3WO4OvBpdpSwg1AR+M8tCX+RrjGWB6b2mNjlj6pt0ezGiNMNp1t0l4iUevkmxFhvBVhC1B7hNkK1JLSXIDdr+2tcqQMpHfucRb2aHu+05FmF0Lb0uwGKqXZA9cEnOKzZNsL10QrqX1AJ1nofqCT0RfbvZs99kVBjVhUPDTsjEoxqsV96HToAzIN5Ijh/guGNX4A4Ws9+HZfMInhXg15AIuIyYnFUpxGPIhgdm6bgNq5PQTUrpPDdp4CdR5+pD29RXa0fZGfzmN2om7oWHuyX4b3a/Q8Gsx6UQ1TT+qP0AVRUOdsLBYDGRg8+XG0Yy9Z3KwBQqZz0im7U6BNs0riNNDprTV5Bq4ZHhwxjdlKeBaEWUSotwnnQJhDhAabcB6EeUQ4YBMugLCACAdtwkUQFhGhERMurKlIdMuFfLRxYVe6jQv70rITvQQWS4hFk83zMgjLiHDIJlwBYQURDtuEqyDgG3BG+IhNuAbCGuhFYK1nNln1cdxfbKiv81RayeIxZsy+MfDZ6nAdEezKugHUVk06PsHb0y7XelKywAaP/eD2FNGV7H5sdSW3qKP8Hx3r7xpalt1BR8nvOeV/vz1WDttZ+VHsiYLzIWugfAh0s1RKe8jlj6QYj1vF4E8cXk8lg2dAt1jV2gJ0K32cbQdmtcyeG1R0aM1QD6C29lV2gKT/IBuv+Lpcrw6QtHeHaPAYzfD6ADlOSF8gJwjpB+QkIf2BnCJkQAdKxp+KJSEfCOJpIg4CEYsZtXUxMxgp7rWEGwLUzvNQhD9D4YdJ2YZL2UbA+yx5jyQh/0nF2YeKs5qEHANPsegf28EqzqUaH4e4MQ8WIB6Z7fGgNVgpT5CsJzqxJ9mxl2l8sh37QJvYEdAOWrFrZOxakudd+jbPJZoZToE8/oolNP7hywcYkVzC5S6sLPPABTvFDk2Z1gH7lR42E+Cxqs4COOTRZgPgBsRcgFWasRtgjOHa24FPQ/ktxnO1GOKmd8CeYxrDs6V8ZofW22yzOsDY1MTnApThI1aLMWTFiYch6JA8bhkZfL5ggRbQ5f+x9ybgbRXn/vCZs+pIsi3v2aMkclYnlizvYYkTW4nTbI0dAgXblWwpcvFWywnJvff/vyYQdspSmhZKS4CylZYuUAotLWtXKLWTJrSXLlC6XbrkULrSQr7fO+ccHclxYjvf7fO09/sSa86c2WfOzDvvvNvwlhmfWwQo8jOsQTJ/g4v2XNrDi4yHFx3moAvhOATRXbRosvGFdNaYKwqro4+a71BWiynRX0jGF82ijuT68M2/lBn5S4kbhfxKuoAxyv+klf4hws+AvC1DnQpqIwH2AtDHQF51uZ5ZZDyziIikP8PaJ9G3Z81CdF7rryTjuXShMT3635LxdSs12rTS+IZZBR+SSo87/484tXlcbuN5ZOJgnuTgv5M1WtCmJh0O9yIaH834rj0jRvGdcRMisKPPMmcajSH0J1jyaLqWeF0iSJ8GFYcXIezX2CNII/MIEr5iJ/x1dsLvUcLfWAmPIuGrdsLfZCc8Rgl/ayV8CQl/aif8bXbC71PC31kJf4CEr9kJf5ed8L8Q9zNA+sRxE+eHD0ZYOTDWErDDmt4xXl5EB/5fQe4RNt20xO+lu3AsIvvnGpGviaJqkwB+iCJfN9fGj+C1AMp3FtH4322N/6v2qP7UWmdvSsZrSPwbNDM9fj9DwGsW6AMAts9fP3cK/QUtuP+rAAD8nADArwgAvI5oXDRZftxlsZmcj/VrfPUyMhtPFInfIJ1BwLDMSfBbJFhsJ/gdErxBCRY7CY4jwRI7gYEEv6cES5wEbyDBUjvB75HgTUqw1EnwJhIssxP8AQn+QAmWOQn+iLA/ov1/ws2cfwC1y4n5E/X2P4kK/QuiBPwFvYXOq0t4m8MHdjAABQNV/DAeb7mkjwSMt1DS38wP8Td4/25630YDqkcTz2BRHzhqnMCb32Ku/FHiBjtHAqPl77hwFjhhYsa+yzFalwacdAfNdPvtdCM6Ryp8xHu9LCPdn6SiuQi63E63X8eUWZCeUlwr/ABPT/flHiygZXJFVmI/rtpLpzeuQtxl4BAvNHGYa5D1aQBDU+byWkRejsinrW3tesQSqNxTsBDF3oDYA4iFLWF7I78RQVdwe5scNt2E1yuRYpFZ+AeRnbYvmim3IOoqRL2MzPYkPIj4L0goC2eKD8P/KPe/VH61bnwkYNIyQL28Ricr98Bs4L9WB2YmG7eisOv0dOj1PMUHdEpxg86JnTeaw2ncFsDnHmG0B5MZ8tsDmNwfR+6b0RQwUjkedweluZTRFrgeae6kNHcjzS1IY6KxPNknEPQhHpTu/j0IOmilcrCbe6m8/YzuY/ktkUjvR4FLQcyCPZtHMK++72LfxAMXq7wQMD6Jbi9q/7OUwN9fJK53+yAKvU0H442koIxPIcHC9r9KCfy9xRnc+SDtLXMC/2YGAkVA4L0Mq4KzzY1Po5iP82KaUMxDKOZanIpol6DDP/W+/A7902bazyDtHTwt6f58FmnNr46UxufsOOPhwGjk74QyfCFg69QcNR5FIGQXoUyKXBkqOO9IVpoxR6PmsYx8jyPfCcr3pex8I/LJ+Z5AWo6OfAVtsdCbryLsUhn5n0SYhUs+Ba8FKZ+xszzrZHkOYfspy9ecLF93snwTDXkc5GFoMH4LofeZZmS/De/91ic+ZM6X5xH0gBn7QgDaXS+RCJlufCdAwP2TSHudBAaHzYN5IWCZ1v8GKyF93u8i94Nm7lF4re6MoW2XUdsOI8zqzhF4P22m/F4AfGWQwvlEPIrwh8zwY6iT+FIq+FIv0bS7jBFj6AoC5D/AtIOQji78IGC8HAB8NBnqP7SyKMjyYwr2QQDCVAZ8JQCL6ZyF+SrGInTgKL/s4acB8PpChSTF8RqCHwMVfdZioAU/52WSzXt2J7QVL5chXnFncp7xiwDY3T9lxi+pPZczYpSRef//pmX1a1SOS3vwdz+LHJBBf/mN1RzirP2WchxgCozXNyLHccrxBqq8TmrPG11+FIvxqeXHxg4TtV900YEwjQL/ntryDVb+iLXs36SSrmAawPzNNBZ/5GMBKaY/YuVBiokeD2oiPcqlvwaMP1P+tsQVcvJKcITMl6vk5NWy8deAaXiZGwY/AjAUuUYWIX4CKPRWAN/7cZ1zQvk2Dv7hlbJtCuhOvp/HMCrJu0YTV8s38ogd2OEVMFCuZCJ6uQBNe5s3DXzQt9GYr2ns7YBxIoCrBMFt4Ybzr2IiyNY7kXJ/GZGEQKt+Qhf2l4HAo7PL8fiIIh4oMy4vI9adcQCPLnmMSLgAE2ke3BVlxENDLJGgf2mRga8sI0sFVzMJM8aP8q9B+TQswjVlMBNtXFc2yk3rA6bKJGJyDctBwnOR8AY74Q1lxk1lE5qW5sqVT+ljtnVp+4lyrmXE6gyhnFt4OdBVuaXMOIhyLPLLh6liouF/BGEWneXWMnzQ6zCVZOWX9EE/ysfiGNgu1F/e6o+WGR8rw3cwrRd8vIwOks/qpvWCOxBRx1eKwsVZDlFC+maflcZACsTVOZ+VfFdjht+NiNukgwUEBz8B/+Mijy9/To9cK0O5ChpcYBLo7D4M/MeZeD89ROmBMuO+sjFaoAeOGfeXgQ4JJvUD9EW6ZB+2b1gB4GUBBY9cJ7PI9TTzHyiLyaBwyqCEFv8QgOFBniTgNmMfog5fz+yrZh7hQ/V7UXgENX5bZ/R4Xhfp8YIu0eM7uvxImfEoCrnIvmrmA1h5xhepoA/wMadLbR7nBY3pwuNlxpd5YqhJ4qvcwFOQ/t1X7aq+WmY8Zaa4UaYkNzIZW9oqJHnWTvKs2Rp6oDXPlhlfs+qP3CTDwMDXqe6b0iV/0872zTLj22bJN/OScW0mLtYCDwBlv8raj8rtf2eJv7Og+ThfmJusRwzpAD5Z9IQoQNYTDPOhXRXR3p498cHuRMXAYHwoOjwwlKpoGope0tO/S/AJq5BImDsP6VbZ6Val0zVY6dTWtu1b39UssFbfuk1bW5s7G7c0dZphLDXTCYq0bNqUGQeltHEha2UKYYl1FTtScTQk2j0Qi1c0xVMXDw8MVjRSS7c1RSpSQ12rJ276aqtJq6KpxadvtN1JtXV4CH0t7ezcNdA5PNDZHU/09PcM9wz0dybjvYNyoqc3PnlzKiZujl0JmiMNDqTEuhopVFkvherCUmVVrRQOhkombqVmD+3W2PviXcNidVhRWIlUMnMGvrLk1kRRExVN1DRR10SPJuZp0ixNnK3PYrAUgT8Boi14qj4xv7CgiLvF3C3hbil3Z3B3DtNcHpmmg8IiTJVhvVGMiKrKMJsikupiUNSLyKobr0pEUb2QjUEbNCBE2GQEtEZuIJAnCkoHTJwm2XGmMLVDLFeT4nGGJnZI5a6kdJzpkqsDtkCTADQeWe9Qyr1JBZMR1cgK7hwfbRHeyDHorkaR5jH0V/EqtevtroQrSA7NYA1hjM/g5RPN4G5z3lZsHOjpH7Znb+msrCG20jTwNMrmlrbm7YIU9L9P2b51x5YmKQTf2ubzmjdJlf73nTvNaWiVvZqXjW/uP3XNZhunMvkmb0T25MsaBHvi1QelULgaEy9YNFGbFN5iddxkK4R9T8yw9FTzaFKRJhZbMwx4LWaY7BVz8nJ93M3nbgF3S5iimrNKwqySrVklW7NKplmF/0oTE5hkziK+hYuC6swizZlFLnMWjZsvukG3B6bni25IcaFdTahBcmi+KG/o1nz5mjwBxLOHam1vvL/bni/nTDxfeBp1y9btmxs3CeqWgaG+aK9r845NbS3bNl3g2ry7d7hnsHef2rpue3PzFrW1ayge79e2nte8fVPjBdrWPfGh3ug+talx+7sQ2xQduhixm1rWb2hr3qJt6tmVHI73u9dt3bR1e9PWpvXN7nUDvQNDTQPdu+I6D127Y/sWnQeu3T3Ur29o3N7Ec+sbokPdPL/eujXSZoa1DiSGeZi7qSUSad7evGVds7upJ5GID8X7u+J68/nrNu1obdm6RW/e29W7OwVYJ23Y0Sxt2B13tza27dje2IZId2t0eDc2BMQqvA0Kr9+9acfmli1bW1vaLnBv2t3X0z+Q6hneN/kkzQbY9krho3rKlcJjK8yRnwKYnrwRE68UuxEcRNeHpVBVpRSqrwaIrpIq8QzjGcazqrpSqg7WStU1lVJNqFaqqa2SagHOa2srpTo862prJl5dZg/s1VVjgvIGrC4sp/TqMgF5DsFyMV8TC7HSNLFUE2cCrmviXE2cr4kLNLFMk1Zr4lnWIgzwRZi/WFyybOly7q7gbjl3V3J3FXcruBvkboi7ldwNc7eKu9XcreFuLXfruFvP3bNZQaG5pH1Y0vnWks63lnS+tVHkWxtFPm0UakTNz2VM0SJaPqi/qiviyi9gTNMjen4RYy53xJ1fwpjuiXjyZzDm9ka8+bMY8+REcvLnMObNjeTmz2MsJy+Sl+9nLNcX8eUvZCwPoKOAQAfsItEG9DAzdyDNgR0uB3bozg7kdnYgj7kDQb5b8Xao5blJlcwY5HRo5b4khCXytdwOV3lBEjb+Cl15HXp5URJk8mLd1+EuL0nCZlCpO7/DUz4jCZbxTE9Bh7d8VhI6HrO9hR055XOSMNwyN6eoI7d8XhI3Xc7PLe7IK/cnoUi0IK+kw1e+MOkbB8oWccwsDcoWGTJAWWGiMEgOgbKCNxZZoOwsZQJQFu3vHxjmizVV0Zj2c5gmCd2CULEoC+5nJG/ISL5hmhteRjGrnWKwnuXhfYNxeTi+d5jtZfuUS3q6h5NqMk6ATumkOLiIFDv3ip371E4erwHhogSrptDSjD5ae6iELb98Kjmp3opd8eGVU0nMG0app9Qos/2UfNlUCt835ZR7KeXUeoexpcSnxWcn/8zZgDLjM2cMvI1b1AKhDeIXxq8G0LOuVqoMAVrWVEnVlTVSdV29VAPIWRuslmqr62acamTczgSyEJE5Nk7ehVPJeMQc0LlerMLNwWwGKxFLloFEUqCJwIyBDXs1EXA0l6PF+ZpUoEmKJrk0SdckTZNUTYI86nJNWqEvZyD5AecAmoNb4Vy+q2RQOSUR/2VF1Vy6oEFG1AXSqwt8VRdETV2wVabhXItMuTPFWXNmz+XuPO7O566fuwu4u5C7i7gb4G4Zdxdzdwl3l5ZTOSu5fxWD0qgoMC9bI2hAyUX+YNIawSUADecPSeEPWeUPRV8LEKi61woS0zxrBZm5vGuByes5awWVuXPXChqDTANzsbwmtNqbowPjlmRpNEgASIRcbusbkuEl+CkLAGAKg6OKcDQJjkuGoyteIwf4uZELohQz8nDtnmjQhY6SQZflJWUDF0YpSQXXyeDiPdWgu02Aw8uKF0WXgP4Eo6N056tkhwG5N0A5IBoOdhEzHQSDDUiIkCytYofhqGssGU2QBVbsMma65QgrH01ICNPssAqEhUYTdL522YcHCYeH/HZfwhckhyBoHlpjHh6exO550vE3c5K3AUY409GBoouWnGr2NozLsun/BSTNLur00FTGabxf6SS3Zoptq8gu34Kf3kb/MHrtxzYSX0DAVFs7MNAbj/YHp1ostYFAj7In2rs7Pr1sqfiwvGegp/u0YGvyMT012MruswW6ALcqpXB1jVQVqj8lXMrNzjpdMBUK12WAqTkAUwBQOEnlaBIO7T46UuE8L8/V5Hn6XCy6+djdRSx+UZTwT/ZepQKBsoAS3blNYMktyPk4fcuFI9DIw8G7WCyZUTqTu7O4O9tPIQu4fyHO9wRTJMAUOuarBDCYug7Lkc7QMj/KE8ADYJAVCzBoLkVtxHrRTMAAhEhhcFQRDoAoAQY4ugLHrWqGjmuPLDs/LarhBm8acMJjggGQDFAQrp4H4OBLVBJFRS1CGO7JPM4KhAJcPENwhW5gkQluEA2Llq/e7k64+dnfJgAQBcBexA0TLeLenv6LUxUt/cPxof5o7ya8mYuXVvv8+VkzmSdtyEraNM1Fy4tYnVkELdbB6K442ycleob1IdBuov27euNK89DQwNC52xDl79/dF4sP+ft2p4b9sbh/AGdDf9Af7e/GW+/AJf7hZNw/DGSu1045kPBTmalV2RjAyR3I6jitYXULr8teyu5EbzSVXLUrPtCnb083rYWGqeDksTntWpx8qLLXIm9sVvvSaxA4QqgKuANOUaH6Om/mcE4REQiKdUEV9DGxJLcE5wisMez9Lk2UOZFM5XQyGy2Q8nQf02SHWiZiVfBFRZu/KLndXi+tMlpYaoFYWFxUwt1S7s7g7sw5FD6X++cxj9ejMDd4RmuASDABmzW2bmZu1qKyRsCOS1NVZB7agbHEsnZgEOO3YE6fYge29l2SsCE+Yl47K9c3Ah5g+x3DJpyPrZjW0RHswdh8ZezBfPN1NkGlPafdm/AGyaFN0JNeP02no6Dt7OnvBlV0++7euE0XKZqYmpWR0rVl65bO9zRv3woLPwP974kPDViRLhDUtnRubWrSmvfE+7d2dzdPc6HZ5IKMyjB9speDlaYhI01Fhn8qpLbJm5U9qW36UUY11qwW6zGpq6snJAd4MpKPJ7n5OH03TXQDwgpSQIGeb5N1XYBjkiC5RU+ON5e7edwtBOg2z+Yw2Qj8ziTiSnQ2p+WAiQdeGT8rwwCMe2OMLjzU7di2bdu2bdu2bdu2bdtndMa29YznjO77fcnN/XuTtdKV3b3bpEmblbSlQ7ZVpGgF/mexbNJup1MH4VXXQQtN/p/FIvuA/yNSaYR0buZGk8DIn1cDNDbKV7JQQDE1Px0xajESERcmY6qq6ppaBHJBfH+SRJHbZpbRyVPKBzLzxRcDckzbArQ7nW7ZwXVsdTlN1egUQjJDATV7oyqueS8UuGMLYtSqUZ4tcRqINpMDbulBDG8efBpGIwrjGIGGEFkBoROabmLPH6xRPaabMktJCURtpUFxPlwv7aXOjs1Wi7IL6vILl01RRSXVYgsmpAY6iXvfRW+NR1jiRhE+d3TYKkz0CPSNBCwcXMykicaKjhXLnxrcQwXGU7wdBmV1lqOqxVnNz+ZoLq2M2VeMRRCjDL5o5nQFfIOn21ImPtIcjkDnLUVVQtaOBX358zziEX4xxpVrp/YOGJvgRxNtdka8sAKTVgZFLaiajmE/How0QJZZ6uwssTWiMvivRe2ln+S2c6ruqLPtukgJLo5llHmeeDNIu4qwpNrCrCxaEQ8VBR1bl+Y2xkRWrXW8F1cjKLh8fAAGr3e8p4F5MwtjVERARORQU9NzmSav5cqFo/5HQxM6nANTgyRf05RLli7FII7EfuDTVqv8Nxho5JoEESF4qBPL8E4R49ucpM7Gi2oLkYaRarg6pqNt/87anMOamtQ5NFXLerejulxeSQfS1zditT1Xp4OtvcY2GN2tsqxddyFzDeEm3bPDzjbD8xVuQl+evr5elzN//cbmSrocwudtrP1lCl4jvoNgk3lRxewvuEqZZ2GfveQ1hPf2nRoKmw3StnApBE/57cbIfhv+t/4zgyRObs6pVBsvg2msTUYz7zhlZbBZaHqcQ71HT3hjqjz2jFTG0meccu6MAJv3dstbcZwMq01LxoCWIeQXTF+hj1LraNGfFXWT79AaeAsz9Ko19SITTc2IMpsDwyIby8JQFhkP3n6Fex13CmpfdKnNgerklnMblXAKCObZB0qhRYSFPO+jL/Cf8B39sV0gz9mu3qxe2a7etN7/VF4vbZfu/O5/Fq55h8+V9hkk6ERL1zhBvGK+eWqFGyObZ5JE9VzL7AovVi7fNLnalY7F/f92ilVMrOXImlk1drcbWCcXLwQhy5hZdYpGvHL9FxONmHeeWuxGwOZZIBb9lGN57sr361CWKlqYgLZ0ZcBuwENY7h9tSz0fYN4OsfVGvT3x9TnKNCJssALlN7J3mzJ4FXdt6eCjVQ9Nl3HYbXKvLCIr6a/u6isGn3X0svLsc87xKlS/sKlVmrsYuqRpz+VKZ+fwVm1Z3+hSlmJkMKlLMP3UkmavXb1cNQE8BB8fDhkzB9DBLeggWsbsGSNYlHpSKg47p4JYvs5JAz8jfEVEL/WaojpAi4kbYt7fnv4N5kg/3SyBE5OzOYDWUHwqVZ1fTUM1zRvnPvgCY+dgWsEnRPH9RJcqu7miBI43yE7IbG2tkOgJ2JO5JrKTj4NG6IURBJdNCl0q2d1V8+1YjFXNQ/8zrT5QR5OsHeI1Y83cMw1J6rul3N8HuRbGuvneTlzNomXJQmVrSySpgkhBXuBOXM2gV1i4SkMjXIEgD31cW/LXq0nhuPKyL+UoBciCdp6oBYIsvhrnL9vZclYDM6cSXew8AksG1JFvMkWmlUw2BQMEClWIWX2oSnmveyLmVprYCAu0ttMfUg4obYKMVF0ukFb1kgNqdMu5HO7cXtcu3szepy7ewt6AO4aDO5E7Bh2R7gyXX5aSgmOoBla8HuViohzFksJeZW7kxWgECTS3GEoUnnDanI+GnjUogmDrPYmibK0YqRTIB4YrhxEZ/BLuu8AerEmrgyQxtkl8kf/1UU4GpFtYePrBxxqHXm1+eEvCApP150Su6M52bVmpC86sFMkLzsC4yQuWWSeuO6Yl5OygnlJdKQyp9FIeoRolM91q5gNM61mIwdJSDiKB0iD+eGVuSvOSqEponuJ9Xbi5cH4PhxTMONNKzR2UFWGD8D+QxC1ZzAlEWoqEyrk0Hfba+yICAyP9pZyxhr2/rp/ppJ2B1wy3vp+O/zq+dm4J/3FAQFhxr9jxtHqCtkZB9EK5i7IyNd2G9Nmr6rbudPjL1u4sr2xQdLI5WqPodsTQEzeXq9hBx9Krq8hWWbhs5MXnZrfXd9iOqgAeiKbgxkr97xhQKqzw4zzGxwsc6lGBQLFOxm7tYx4YapELKrhsid0neyGiqI7i7WzsbO/sbAw626u5P3c4G7YviZ+zzgd2R/n7qf1vBw69jheRxoTlsiFIVow9bxS7IUr70bJd3twkI0t3aiu8CPU89lsWCiz8GaIynG92LMpK1neJSjfh1A3rLLna6QXaHIockbIcf5tiUZQAJutN1DYjkpN/V/wMZnvO5l+2cRmddH9ur9dthlZzFxwdWKyzYnF8IVOVAzVRvlK4pNJAR39W7oaHg4sPvToFmZnCkmQtbi8GsRIDBBPIQkUBaNJZ759Ho9PBdya8M18wGhdybRlkZj1MfZviPjyQpW52Im41cClB72AA+6XigbTfulaaDvjxXt8o7gtE9U/aLi+ZGcOLRi3ehsEAzsTd3fXCx1zeGK957jrBxAhjSAWO3n/HbAZ5UkA59dwcSRuxr2cTF75sd9GvzxKm/c6MC0sYzILwZREe8JSYDhPY4VvxJ8558l/8F293xFFbcJ+QSz27ogA7kdV36ZDWA6b5EMAdhBv6BgpAuCUcc/L8ID4nbZb3g2Zmz2ZOZ9l1bc+JxjZUhQsNorBMoQYmoryGhk94rwYBkhg6tBV0HpPdOA/fpsl1JcxpvmqSu1TnMD/56ioExrFBTxu3wdnY1444i6W8v4ojalmEnYFEcI5qzIANtG4PPIkfzvWGOrUH1oTxxJKla9Do30xSw3AA2Ac2yavNlZ58PuRPTMUHu3MxBf3yWBDFkkN5tCybdTXFPzb7/3bx+hh6jlZDNC17tQqqLVuzAuo1e7swqvSDBOrC2pgrG0BPXq+2+tz66CPnlWAXcXky/GAniIPy5ONRVvIAihYXnNgRv6iWDI0t+s81KW7X9shu/I4/piensyerJzBSsgutZ6fz2+7O7vyuxl2Hsyekp6fLW0gslSbvm2fTEZF9qMwhDrGiUQHIzwODNmmQdVprTBRtNzpzU+AjGKKCVBG9SWJs1AdRQtKY5QDYBBKZwJP5FjWpzIAILzmYtxqSolSSZKqcMAEm1zzZVKlsBVGiLgu4Nx+K8qg2c7Kd3wcRX5DZE2Gbc7SIAqTutJSYmkU3/pFMspgYOnOjqA51clQVzQfPSfoGcnPyzAf+jMxNzIZC+ggCOkYCUVFprTh+F08kmNuOjnMkLAcQcdGxc7rbBXA0mFufj3UkL1FqkEKCr0Qk5YEsCi4MSFSMzo8EA4d6G6niEL6UAASlYZ75QUjyqKQQec72ITn8q5gDCoQ9NGfGcAVPGRFqpza7pBUbRkLHuf0cagq4Uherf7iEtq9ySVU/l3Leg5hsHDl++TNBNjGZbHw5PuttZvbEY4L2l3kHUGjcKb7rTSb3RM0rdzR3H1h7FJoGLc9Zx4LsnOyc4vyL/ZgvE/79EYCYdi/x/TSqUW7ymk/AbpxRiI8ZvmYLM6NxqwtJLhSnViWLoyRKR0ztIarnJspHDMxbTNRjzEYszGtsE014UAzasecTySfQYbLk0amHfdE08gQ4cfXtk222Vji//0rps26sTvR0NXILlKlOzcCXqrtKjwWnmA7UTIwzh/e9apkqAztZeS9iXMQluhmYJqFPqBnqemZDinkxq3lLGQJ+pjwpKzAz3Ti7OZrkcrvKavcMwcpumM1e2MTbDFyW4fgqTPcWpZyEqH7grXTl1iNJT+zVbGtOBsbYkkN5z2G9OVSk3qca5GqQMe6E93YH5nxD7yAUqj9xLssgKxm0XKtUYnRNoTznDx160djipgCnsUIw+A4WbXV5O6MsnWyaKH28wI4vAHvtYQGJXAwRi86rrlsCMyrHmQ3VBMlawKahuD1yixY1ffjViGQKX2GWTsJHFetI7/lTjcrob1C850blT/rmJImt5YwUZ3fdV1hXrirIKz57R26YOmsyl5EDzWLWwIURhAsbM4JlcT121B8xKVWIkFT6OneVTJq8jtMsLz1PRRukoz6HA2wrJVSn9mhkvvkQ9vBtCoeadtwcruj4Bm0Xl+wsxe80psIHsKwF6S5DCBowMqpcL2+XdcoReQXfgfyvJ8UoNy5Ru1J8JPJWpagao/btaEXTEQyYZAlqimQM0DMQPRFK52Zsn+jIpxh/1pgmbuE5DBVjBnkP2xhN1Sc2O2eZ4DOalTSTP+BwJWqufxbTtHNYEpUgvJspGJcwRRkdqikYR4+AW0WBRrkswXzjkmDlycOmnsR/R8Bju3Q78r5ouwbzPh7/81JRXCUhx8QnSw5xq5H8G5Kf5AiqXDY0NeQRxLM1GtGgeM+kF1XR+vB5Fjw2PcNMFaNmCpFSffBOXFvlYWlJ1qStWPg1GrF5eUtLwLvuGYvOOXRXQcwQGQ9kuxLMUeGs1pO8agKfSr0Fi4jpC9xh/Y1hQjD5MZlZlpOvIKoI6A8MGwWFU+cIw0nd0oQ0TMFTONYgRCDGrgFGJB2/FQVqOcAXhbnuDS2pyXQQih0eOWCkvUApY0UgVjDikRFaiWEv1TlaPgmomFCr5oQ3N1+wdBkxowrWdvC5dOkbDnhQvv/quSu1w81RSW9NbgLUhCCJePA037UVbwgwPt9m3BpSP4WTpwU4C9JWa4JAkVqz/jb0TEvS+a5uvmwaThi4pR/6RKkEAam5/1tFq4GJXlV3IEGhbkDpV/PstmzStsuQXO5WoJhWdRKmtOdg4o4yFSEIxdoUIyVp9ki8Q/+YAVYHv4Z4VFAhVrLQ4ZaJ1uJxnaC7mz+7y+tGY0n8PGeVfktySjOR0a6ybXqP0rzw4ewQVtgpNhfLG4GLiaeTfeSYU5/nSgOXMqOdm6TmiHCkGy5ayUYke7g8rTaFXhrUwEs2IPk7xINsh0A5Rso3RnUADUIpE5hA3/MOxaGtUy8DdNojV4dSVZXYTQQHrpOIO5v6nhxJjCgtI4+9glW9Kz9LL4WQvF/+TLNMoSO+ZiEqt/tukRdwm++1Q9OSgryQTel6G0RC4NwLBt/jNgZ4VJlaw1dC2VzeuRI+WNsdLcoN2RFCtsf1sDPYriHtoocuLk7jbTH9S6GaO46/ubtta9NW1RfnDnNqkCnJGG9vH3/NYeewt7yWE7s4cXhopdmCGLm/cpLKgova5COU57sHKjdzY/rwzlARaUbz/DOtm9ovNoHY2y425pMnXTtCNHikCd9iC2W2nlPjHEJAEXDQ4msSHN+GsZ8HJ+FTgUEYluHcE1IDGQ1iwnCAaJhbgJPJniOEEh25cHRndzdvybBrFljNtWON8SnbumGYM/6zTPeaadE8yGYSaKzpYvxygBUhL52S+4d1e7oOLG9eoXEtc/jPyMpCGs307NrGTKia9KuJU3+ypT31rzWgxI6Ad0mPi8peTlhnxQC8nBzDsY+Y1wCUNUstr2KY4k2tHuYokAqvARoWNweX4SrhvhtKr/bn0umuVTdYWpXD+ZOmBVXBHEKxVRpTewQM03zdLPTf1ZWMpyxYCogflz106M7NGGppuyrx3tShk79SQ11tIyTtMHk6Fbl3hhWBFDvJIj0/ZupfSLHYMUCZiJx7kiIRt6SiNOaugaICcvf4jiEITkgDSjnIX2qQf2DAvqpN0CUkbIZ/TYjBE7SgjFUGONWOQYxYapyJh09jmYij0WfC5dRN+cNyuuIkIa5jxXLlir7NllqiiVxMgshy15xlThq8znvsi2eudHxFGPSywnce2uCP/2ooFFj4fWzy0RrY7XWZKAKQ6xdOF/NZB2uW4YxX7voUlKyl50t63Y3elDT9erT6uEm4YNXd4JeN6kI0r8F28ck0MTRU+xbDN4E8Svj23g1KyDrvrmPhnxWYkmonXrQuy+Dl4FZpxFYTG7PRnPOqoD2ytbAbBgoGvHDVrCzEIImrlsfRa2gghPLwDaxRjvr1zFt4BxBS2qr/kkjrueYt8kU2m3hsNizkcF2CY8MVwEyG5kGcT02T02h6AP+FEdFUAspkw7NiGy+v5qGgcTa2nh0CjJZ6u/qDi5Ozujw+wsbKWs6jWMS6nv3Jv6f0BNYy5kEiIxvHMQH6yIsXdam+TIUEC2NLtzXXhZUYTke/VenNS+oGM2rSl4vaYU4EOWM2mpktd8CZLVfI8uteiddlcE9lzOwJzDlV8YSYDT/PPnOpbs2U/R68c6n+3G/TExBI7oKHkgXtjZzeGG8I8E1/t7Swx7JIgSgQ21vBs0bdoDDntU5tvVXZXrOvk9fvba+3v7bo0NCHnOvz5tWtdNxZ2lpDsbZ2MMFdyEZTsDA9s/Cv9fbH+rX72J2byKovgGFh9UZtEXY/q9JSFQprE61CkQFlV1qNcCFGAylu0M+Wv2F9ou67tGbjs4qp//614pqfIiN24mHzmyHq3yqoUx0KqqkEWq6dDH6+mhb2eRGEl2oUAE2af5JDLdPcJsIvCFSHq/oXiCpV+OgCrWjaHVbZpDdynCHr9XiK8lOpzXDIqsXAt8CWKbthwFAcuPtf8PfEpTpn4j+OuFTjdOrVUBgyqP+yzZZfwWXALrD+OVUxZ8Ssyw1c3S2/Cvzros2j7qJmhTNLzhZ+ivJfush/i7ko+McFOn/Y5dC7oluvqRqJO+YbVrVU5NWmuqZREJ69JuNk9PeyWlnVgD79rxZ9uup/PNaQPT2pLX8stGhXKxi2+Z9KHZr61UdGubiar/02HYo2SCDaOv6lvYLAWET1traK71eXaUyKdbW5CjLu0/p5KsTR9zs6kMzUOmJSbOUwjWL2Hb3bmui/bGWhrN14CPemNOZmHuy6nez670oWvc9uD9VCFOfgcgIam2SNbtXapo6K3UpUWj4xgAezuGwtTfLMKYZ6Mkw6fauHoF04US1vH4Kx6ChQITuLrHqiQSuX3a5rUS7pu5h4IxglOrPgaHY4Zdh38pLXVLHQC9AXqbCethtBwyBymFTYJtQ8vpmwM+4+xNRW1eaGlz6L+ePmc6VVLmMigs0Dstw8x0L+0TkfjUrYIS/natw/JxLldEdl5CYXcnFzlyUhQLxduBlXUnqT5oBmlc2OwjmfvAgeflbwgJb0piqit3/FBQ5U1EGUFsok0vb0DC+v9yp/JqijC7wcO/fw728vr4MnQuEqF9R6q2zjEV1nmdSmaGoZA6LO4SciI96GDeICPWEsTI14JuyyBIE3SasI6lpOCjds1lIzuamCt3rsZKqzHV2wqfL/oRRHsHjOk4taHSHIEpukAMssnM99eNdw+22ls33kTRlIW6znMZo1ErOoakKbFqYr+UcQRbYmlNf0JBUQ1P9t+ShzoieDta1xlcKqEWOcVj3LmKPNP89ZAC95lJ0xixIT5kui7fXOhukt0ItFAImsgME/PlI2Ck8NW4GjohUykyFDB+cH4oWtZWOvgiRGh2ogGCvrSismoh+5GsHlnPWmaS1EJ2aBscH+MPvokYzclRM/dFENsYlRjLZtUuo2wMsKTGlMfr9oG9IWwODVyScXF19WcD8uq3IhPlqZ52ABFonaW/KwLiUTKqRP5Lo1K46Ao08CUwNmRibXauxRFwMWNwv5rQocG2ekfkm80Ee6r8SVgQ3DZuqctiCwFCcpe4ot35wMtpgPbpY3J4CbJlcLRF553No9ZeXsIZ4XQCWGVrzS+rAzRdilYkcsF1pWLoaVcwz7yvAOppYRnD+rgoUTdKRqyNEW4jhlN8SN9jpcw0bnhPRewiJFUk0UAh6SzTw6wKC6vgWKi4M5PQLuYS23s6M7HK5XIguX13Ql3FJMZvb+JabhqBhG64/43Im9D47aSGl+BEfrQ+skiTKNZBJ6uqiZ0e/iCmqoGfszt7iNStrdZJL4mTM9oR8RlwVRPSuH3fzVFreRlrxVBG9cKZSIqABcDZ8gahOaSto+HIhTxuEFIUW/wCpfxmFF3P47cvJeBI//y4kHLN1wQaY2dkTucBSn8d+52PonINcaZ46tYC2D/pqT3dPBVm+frku3+GYdlnxM35lzjJbXGNd38oz+39pPV3fnefvtjg24B4ojR+VtCjCrhSof881s1Cne9o7bswdLQK4oQA1x4VqYTF2M2/UvM1/hesxRN0WnX348WXa/rv0rwr6vMAZF9uobDOuSmldPaieJry7HdTNNk6V+VYrclMggfoXMiFlBMwSFzMiwnd74XLWOfCuc7frqD2yLu37CtM0us/ath5yGL17qqsGkmXuCNS3Ytk2HG3l2uoLuvynWFVUZzQxFMh+j7S6rK+LRcKWtdkxJ5Y61xPQG4nyGSAofy+01BQF2cGvV01e8u3KmmNQOTYccvSo63xSd9jqF9RDqFjbbkoKVhBi3req59WncNH5DRRwC2/mYFySRKhzLmz8ydbz0LbeDv7E5wNbhKNvSRSsrWDUbq6lVBzzgRah1jtFsb57CXMttaKXxcV/6uN6SPMGB3iEQY5eydt5rmmyzWuEsGtrmbGZpze45LTSUnVbtqjgCWRuZKZySkakzi0N3Pw7glvUXAw8r26rAm8cUM6Orbd1XAi/qpM6AYLU+nxzy7O6LPM4yhHFIZ4vaHAPobW+KtdPDjJwiV/jpz3+X6MO3PNnc9KzUDhtc0Ulr/kRUr8/W1YdU1m+yXOi5kUsHHFgQE86ttFvb1+fNGQSCdFkjYEHYwjQAD+6aaurMeoHKB8XyciH9kUOO2eXYCGUHcS+GOejOpIH3joJ+wJ6aApqE/tt37suZwjNceYQ3r/4XXk91+/Qs/7acvB9h4CYKoYK7OOTxH99IWO+hf8UXRi2VtrsPSowjLt5YjWBvcO7ecyBe7nQF9JdmCvVz0TnFwFQIena52vnzbi2SU+KdCOUpwUXzuEImG8XWfhKsnbmKIRk/d+8G7ot4zFhasffxnrnH5yC7RkZV9DhPQ3BGNA45k1W5Euyhovy+RcsrQNaH701pWHKrCqSsLQ+J7fjkVvf78CJ7DwLs6Le4N/l3Ld6d2dn6Iynwf62Cdn1sXbKfeJDUvBwVhKFBbqpqEy3+crfI6xby0bIMaYIb4qO4LZ4E+IE2/37fmLwKxFIcb6HsxzcMKUFecOkzpRY/NJ7OhmgGO72csGHHFpAJ3+hA4lf1dgd6WRVav5VRC3DlrRjlhqylQj6V+eL7f6485LBidde9TEZsMGCoOoPDERXuxFNeI/dGjt3pm3jGuRe6QpxasilegvgRaLyzeeTmDMqLxYOKHaR2A+BiFiIoaqBZzEF27/LFpmzkRd75XCDAn9hz4TXny/z7stioSOymiD0LA3I2VXMzgbgutpZ31noanHVb1bppuu7kYGeA8uv2/8xSDKXxvMnBtgG18ngRZEcJfsLFbGb/KPjsC8DqOzn6LCjAnir9KWLN9u3zpcjLW2MQgKNfEHB4K7CllKdsbF1UlL3LwwOfmVD9U+0CUzYnYLl6UFK6xcTAFAKdycN3HfqurjlTbEQFV4kwoFSFoyCfDke97cMNRmvqZGNjvpOIFqaa6La66lVfvLFlBJ93lRQ3ezvCEKSFKlsDt7befflnxE3IoR4k331jTNcIrYIhL3YdDg8sR7RYJ7OfcebwaktndWfPTMl81IUd51g849mARHN9RU0Vf62DaH3oK05PVV+30emCdh0idNXFvouBbl19TW32ZZiHq719VYZKC7dGReRCEX/n3z8d8Bnak8a6eoSR+kZondfMNCUuNUIXXkI4zZwVX+5pTwVrb2lX6e6W3dUZ6QF7EqiBxW2KEMdY8yA8jb9yn2xEry188c7iWho1zIu+ljbLdvF/VrHaZp3HUw1NYdk6lExj2TAWtbInMGztoicybOyyJ7qccbS0UzVsHmnkw6j/yMSrW9fpmLLj1K5q5U/Mr234xRfnuecsl0VfszvHVjisjtmLae0VNz+xdaiantvegMjL2ZgkTvxjc+6s+Mml+Oml+DGU/4Ja3o3Yv333xxsUfd8N3+d/343cpwT4pllfmXp1/CGTYWtr1CN1e3Odj4JscCTLnOa56WH+7Tv4QRkmjJCR4Ve5rJXEQQqcn9IuqaOKJz1vQP7CRXoj0KpdOm4CpRxEnKH6foc/4IwyhBnkV/vZS5YF+xAEMx7/Bb79FOT+9h2HQmU0z2z+vnHJeCVw6tPk2qPFv1dPeLOZ9I0/7l8DGJx7NXr2ETr1cXLt4eLfyye8WUx+Ck/6xh5/Jx3zX3gJ3ng5uvcR/gfXPk+uPV78+92EN9SEN4NJ38Fj/yGAwH8pp16Ct16ELn2Fzn2F7n2Frn2Fnn2IvHuSePeY/wGf8Q7DYFB4PXz5VFaeFnr2PbR7DSpkfXYs/Et9+QGIViXjIayeZDx++sSDdbVVQguYNqDbNgzvIpzxyNEnSHDHuGBVdWK/L902rNUIpRommMklDbYCCj2rc4NuSjOucnL08WnuDURLKSQAjZYvN6tE/Byps+x9R2LDkFr7b1SsnQwurrP7n7j2+K46i7NHCT1FVlv90gOT1lwcYwcnBeHSAwvXXFxjN2sD5dID86da3HC8M0Y7NJfNkOx4EQJdrlrlh2Zx8ngRAdg5KzQYLW3rUqUpjHV2GHG76RuJ4iz6+Dp0mQ2WvHHLphczP48PuTYK+7wkh4YCSAvhjTYsZA6boULppuagz7uoqaGS+mM0krKceLVrqnRJLUsxp1EhAi3Bg82qCQiyYXJ8ixQOmRTaNmzefLIcZ+CUqbSwO0CUaoofsQNZ8q55H6Kz23fbJ4TJK1w8hCeDYATYuB3V/MQ/o69qMSwWj0ltxjvtSfWrjwOBUabET6IP9rs3ohDcns3tBN9VDp/h649ELt2+SkU2iQ0rX4TT3azRlO6JcqaQLM8moHW20NkU2XWn8yOSOxDn7ObCeAkYZ8x3cy+MQ28g6lhYkKYCUNb+ZJQwvXBL6gJNUgnRt2EdlgbRDbiw3ahzOT7HEVeMAk7Vu1BwI7tcb4Goh02owfB4BmkMXEITgaHhpYPDA9+wU0Z6xIYL0wlhDEvZxZNuhuku9B8DZ1DfN8bN+yzPBC5No6ewj5ALTDVplR3muL/6TAR9rh/KcGpSXbHYhULh/w1etEy/abQTenPBz3pXfrUz8R31DKYhiRHk+Ryk/oKl7j9X9y/VYtWuQZZNQF69Fd5OXbTUEyGXkWmwKLnjZrPqSXnF2i86fqRrTeR41m4lEdk/hCA2rnGR1MgvncB8IlXt3uSYmqMHq98/YuOLIcd6VmnqieqEyxapwHIiNsvSO5wpf+hcr8h3Lse1NE248rIFCztgjDWP/CsKu5EI9Mlk7xDivbSrHevJMhqAU+6B2skcvTJ4XL2AHhAZ3QpRatknTBrarWI0n2uyIQaibdMP8J3pX/FKDT7umnsHVaEX35Ri03lNi4oSJDHLxjcZ+kkFUF4pFAAwaxZE942RXm4xb++bNDYYcSDHlqZc/C5oxa5R9agfi7tk8OwNm53Dk8bS95tGLqkTxWYA7A3of6KTPtgbRDXkwH7YHZAkL13pBDPcCD2MRdTqtR0D0RnnLmg5/6Z8MOUAaVBsZNCP2DcldST7o931jiUO75LtQnu2+mVa7UT4YJJrmBwI0CSAl/UaTxx59KoDH5uafNKMjSpcpMTXliWrM2J7RnWF94fI2exSP+q2x/e+qwLEAe4JrZ60nrETu0fIJzHTs5cat2JNN2C9gS1vUlIy7tUTlIt5M1k9XDhsd8GcQD9VML/6JnLC2jJy3HpfyE3i96gfXz2GePBdKcbHwHztZukAopaur/AuhqH3NK6Y8ZsYNda5mUgxvzw8bk2NHznRJ3BXKze4RFzBB5PevvfDnnG/Q1isLNjNYydGlEGwTv1/LDsIH9Bd+TOaBx1VhuGfBrfUS15wL+kfsUMEMHkbRgcRj+k3P0H3BnGHmQeY94hdd+Mvx4YYk1ZgTGgTqGda2IbIsxIX9wz/lAcHZcgPWd2sJ1T54mffyAUKlNf/VtFXCIJ2zn7T7TgsuDrt337nWPHRH5V8tmTFTmyaJzzlVzPsekVM/JY5dQLqsEB7sZAv2wiOuZHxHL4bsnjPBq6V5lCfdtypVk/ZBygm9Njwe1ziGkvt05vzxJLWYiE2cJ4mVhTvqYOUoY9xTeZkb38rsGaH35gH4u1WsJ5JzmKsx2sBzQZDk6CmPJhvp9SDpli/99nHjXTlm94NDyg9rRH+hA4ifth3vuWE0ROyVWhFWE+PnzuZicLfwfzMmNiMf4n6zb6iEtNvejMSVy0+0Je8xvFMDFMgb1UMUOPXvaDZx2wTV2J6l3YKSc2WkrNsAhjlmgyjJAtEvAfbRj86Rd8b5x5+O0YueUme3Vmf05/r8GgHoPG/kSMw8yf5HyNjPwEOi22zo9+6M55V24FHuwI4SAn4lpiwgZKKvpvbJQDNtFtougOnd/rHzO90QOYgACr7cz94/5RxRF5/AvrqQNlUbOQYKzuL+VUW71GfAlwsbhkY6ymcSoxg7gxb02nQQzCkMQUBcsz3oBvCOOtxon35EDLuWmkGdOJleQO0LweXjA6HWgWSyI2UHFee7uSQM9u76zcUxecUdKZMT6a/B12jIm7b24878TcrrD4IEwBou0eg8aRG5BPbM9/x5XRBf7J2S1QdcGTe8hfsz4xnOgbeG1B0eRO+C4BRVrewJSzJOFGVZRASJSiO4DtTe+5SXcq8PSpIAglFxDI8BPdfpb6gjpEstab14xn9pVNXEkJ/Lg1xVAZnfLB6svWP/MpC4duP5RsZ/d4nD/z4nI1EcPYSmCklI2Cf+LbIGF0RiUccRyaw6zigWtWBshWdCa96MV/xyYOHFQy2nn1r0SQ7nkxDq+UiGpKui1sZ1TpULAsSKwqL3IneBMD0WM0j8O+2jyqWJ+AT0P7AW5wpVseQQPtSY0N8YjceoRxapgBkafJCafe2DAGaQcw573wn7jPadUSWWNzwBa6FDxVmfdTtnAe4x9sgdokUI7i4J8kRpROEZHYEBVM2cTeFVLQOQkHJ8GbfuPFnvGoCRqLUxKjjO2paRm3fdfGW0NMyKL/dehIZ2EnIJzgVKcpguCu4KLghJ0mrpS9UUXKLgtrPB2J1U3A4EiFcyNRHtADSwT+pecn0DhnChKysSOhrc0wf/cGbcZOpVxQIKIwwY6juTeG4Tfgnz/FwM2XTMjzk9l56pcu702fRZkxoUZ1uOi2LJ7s85NpTdnI98BzyVGra4hR+rdn9lPB1swTwsVd+PoAuJf94LUN5TahkNz1gbYEQLprsxqAlfocmzQgpvWQDqZQqsmMJTshDFpH3k7ne09jLgg8UAhUYVvQekqIy9ibPYTBn+EEOKEmSHuUCrIMuFYFjObPcy5mWEshh9jmV2RgCzumC2M2ss3xZJJvViV1yx9nOAJB60BluhYF0r4ID72Tp9vZ+UP2z8VAp9nkTCkolEnztaNa/8vMR8wUFHtBmdwmZQoWJ273HjyUmmvUb6qQe6rH66iaaWjc1aL0iJpqLJjxZeH0h9M5Z1wmvn9cZ6x/JnD2Ow2McAD0P8u4OyHZwkXbVM2kz15vbjkpfR+zp2uu62bZUSo833orHE4cslAWDG0pM084EjXgHnTnR7Ep9wdRE39d/zbTygca+m2prmtHtqyQ3BpE01xTa8OzsJur4nHmaKkVo6RhdMdxLTWR/nQjuIMplD5w5rYiTb4RI80YZgyCDFxfugxiXYMXxcoQ8U9OWkbVR3KRzBFlc1+xgVDFjYmdAYrt7w3plu3vtuMMbD35cKLzdspZSV9jd+In/vougCBsNjwwX8s7mFNSZTQfPcKd8wWMf4I7sm6UvS549x0zlGTDrBymJYBKlLYNDIZ251SKdPVv9xx6iuexS0SzWdf51qqDN/qEcEbzu7fHHr/gkec4YOVm/8YCs/dCmSvNERYEjQ1r6+0cSpjP3Q2C1vueVZLfoEWrXmiQsfnMy/S6nGSm9UacrqfzcpLM1UEWHelxPjrwWrcR7+KKeCT9KcTmB6s6fOC1zvToTuqko9cnxmomROC17vTqIzXW3WZMG52YG0iTk2sTY1fiWOK23Lq3OZi7SNVaGNdM53rhrOvUDlv/cbwzTvL7wBpB8ZbYbSv74wRyGu5YyWNyrU0kaJpPOaLqDpJAxiVQ+MR1tu+82P7RiUp5daEynsSI3tIroBYHnmM4Eor2dyQcXQFDmr1Fltl4TPa7IE46Gbjcw+fs4uwyjw/l1uLzuTv3w6+nBVcifXmNVNIuKI1Hv3ogjQMA5PyfEa9ZTjj10bKZD55+7SBgLAQ90B6aVvueXtibHRwLz0YE65taDAi1cjGvbSw1hKcHVow6JFP5h9gbhKmYhplAG19MKhfKZGRvsdaGb4OGxJLhe7VGkLspDgR1qpIbQry+uWYI+hj84/dSHWF0Dm32m2FwQd7XAbMAyzIcvQJe5h7LRgBBdYDEt3TxHA9CizGyqKIouJ2f4H++pEkaAM1Td2Vn0QMiXyB2Gc2dWL/lO/vCu9k7+6K73zourJ7Anpgsm5lpRXvnOYFwdMGiHT/AwEBxsCnR88JrWen8vcLzw/ETuzSkieaSgGlInclUwS3yk7DA/B0jc8VMk7hCeI5eoCVGXsrGjAgfPSUq6Qh1nwHcLHRrSe8T/e9DutGMDHFdkAq/DyebKVx1mqB/Ka3txhbOjLaq5fjCP0/OB77m2uMre2spMDT1ygx0RyjoHIciGfOUI46lhl5hqltQvYBmvW6jn0Tksw/phR9Ap4H23auGgU+iPdCizX8JSzFSXvWaT1r7hwsAm+p32bde5PxBxardWUM9h8TplYz/+ENSt8WuJWWXNTrNLDh2P7NxqSIXltolu8r2qQCVpe5azrFJ6PTeMe3rhh2xoI3T2pxyCwDKYYrjHMdpAzoYMLztTTeSMfE6ijzYbiv8NMwNFRzD00xKkvnJVCDPddARGC43N8VRiWXTUDiK2Ero8rvXWlvRtB6KRbgiC8Uaeh8PLGZ67sM0sFHOqv25ubC4S/8AFczETjFetgTAEY6LY5Y04z7z1NU3V+Bd/Q0lhS7XLCJ2BILLoTehfBF8i0260NUbrFh0EKqsvTU4zvEWduubrG5vqwZWyzcTvxReLbAdNO2fQVZKWCCe81CJtGLGIbes4KCiYV8kwHVsbpLNKKdLfZSIBWn+ZBmGpSHrZUCUbTOnQJGyx2MCWC6wKRPMrOAoblPbdJS9P/ToWtGuYEQ1ze/uqWlrk2iuYNUna6+P2Zi3PvpbaFgacO5mVSduekeZ/TupNNARyauHXvKhux96V5nOdreguLKPWWUeC94RqP5WbghUHMYFyzQ1rXAx0IWwF7vzONoYwPpEEUJ4Iestsi5jgBoDEaqyt4ksanX+dnQ5HIu06nI2s6lOmuv9UV3q6NpOCA81EW2qP4B/jHQ+tMVfBf7PWtGflaxpg57OM5LxEy3u2/tmppNgoeMDWnANmK6RhKHl20uMQzXfF8kUPN8rkoF/88sqPRZWpgG6ic4nJtQHXRj8YriDmcpsYNWraoMgfM0TZ8UHBbyg3eOSsYFjhmezS5b2YQtApfUICTp1JEbDYZSjy9Ksn2Tl8sqmWriZIRaw/bbPNmXrzbyl4zOuZmQu7I9wjej65k/tnrAd2YgQqVudIakeLqHMZ2RAB3WK4EB3omQg0FEHwz5RunhHlqjuv5+HlqkfZocYDcNRDMAtQqd5YwvyaVmxQJRSaf10pd77eke3eKPqEe9SJN+5kurpG4cuW3aFxIu1lZ+Q3IA45JXl5Qk+mGrNZTy/+XM+3nF4sNSILAit/+Z56HUeOqcL81QVHxl+hkXK0t7XbXtrqftEPz2Bscf88m+iYP7vd7nRY6DTtZHdkFnVToNxB0EfKz6O65O/mFtP/n+8A57t4u9swrveYqVbVTN1pOhwoHi6Z0XM27WiqASbBeuQSbe2qMJv5O5YkLjrhWyL/VhKgwWkpp+R5IcfMu/tIoD+WgGNfctsMOAkL3Mkqa3LQ1FF23X2QoDTzVYJ2amxmzNpUZ9IUFy3YUlErFak3+Z0LoJY2vR2lpjIG5Vs1FLALaV607vGxsE5W81Wi/I48HFqetDFBtEvuKoaaYLeeeX17IlN5+HCPylQioYxESdQEuoIqqj2Syh2IEAxTMmgFbHFSRzN6xp2yQ0o3kbhCswoF9KbY/KW1ki2hNGt6P6lP5GzaYaUB+qp3EXKdfFC1K1kl+jKICkvOa6WVuWfFoZzDznNncA3hCsNfvQDSnpSQ1Wuu68ecliW3svutydaG3fFkGcxySiOg8PA9g0cnUgieDPDBIWRNO4rxAv8bk2bczvyhhOCsLduYdtlR/1ASsQNfhuSmziS4Km6LSrS0goPrbdB53UjckjmUotKjPYQDNEcCHBysnG5XK6AaSj/hf5/O6eJ+UJqsR/NBd9bzFgMgJ8RuyScCuUd6ldG3pr6V3Ibe3GAk+vzfFTPhcPqJxpy75N3Ag+9JtNjygI6nT3LrwPJPViIfGFQEapIxOXQd5eQG+q56U3yFMpdfowUDfpt9/Wo3YWtLqUoDt1dxVcxcAR5TzLHPXl5IlHz+b6W9y2OOhfaCgKz+oWKvos5cX7Oog0ozGBWjX2NPwk6QJeluepuFh6EirGtkSF86gVCYGMUSy8acEXUDft9dK5m+TEeM7hUp1ciMsOk/nxzW8HX5EpK30UbzyAKB0rxGPEm7DCMEvrq+klur7HQvHvCK57Tb5kueL+ZvjEgnwK/spSvmqeCjRzgPOj6CqehJ+tGRBtyMUDBifpFlH2d65j4UB+T6ZI6Chl+LeFfhClkQGphENjK3ickcQWx48c1v2VtEllvolV5Ovv/+ZDw10gwjBTKzj681DB1h4RCN0yfWHwHBQwak2kZ0hOT1dFk+pOnAVALTqan6fB9OHMQe7/qhdVtIRfisRrBm1aK+hty1s04L740tCu33mKGtP3tMkgvh1QlfONjLn4g5tQPrywwJj1F3rnMBD6IlvfEv1o2o902dEEowxF+Fy0RFeONfxt+VUP5BGEDId1436dWpEuDzPqBOZ6XA5kctma6+KOiKUB+zHUu1mcPt1HFtHe7i6+JNB1Mbmx8SPstW0BFw5MM7YKuAAB5QrCblkNZksjKhI5ugWQBjWaqynJtivYUr9LJ8pb9x5kMVkrg+b5PcnW7+toMQQYSWL+tSiGG/wo7q9h+qD0eQwW9AaZjUf315eekSiGBTClnVIy5H6KFSX+SFPjTAhqIRuifDC0mR6cpAUxmJqq8JVcWPYJBx53dTtqGShpcJ1oCprlDq6MEhq0YUlS4fiMDDmqyBg7A9XDlowVkBi/ws2lbR1lan1IwQjYLSLKVXNy6rlYClsaXSl6cfsblsT2DoqUYkduavqatrhJ05JPI7NLJv53z6IhKNJJOLqqjGEVWrwcP9exbVhNdQ3VAK5gcze9iTk4TpaB2m2TCCNKVuvKKuThhGI4cFw3uhj14uU4rtYq/vD+Ul24b7j0Fdyacafk00m1xLG5RTTZTBDmO4vj4MRq4rRs2oRsRdybe6AYa4o6fAhNlPKbi6vlFsr4dmQ0MoxqasDlGDVN5fnctLR4HzXwxvqa1IuzfXoy35Hoo+NTU1Pb37IYKlHhpnq5mBdNMJ8M4ZREqdOZ70bimzMqlJydxt2rAcChQoQfxp0nxcXmOzSDy6dZ0XR2hbFMXCUp/egviZD/MjjDwDZXlWXpLBtFSoBIKtSzqFpi3Ls0kRmmsCRWFtM3uObf1EDttaXXMUReO6VuwEh82NPg7t+gZMvP26Fu36gPXfDQR5AUNVxuUTD/m7RS210AeqWOs6WdNdHA4n78aJV+ubfbbXe5xPxPhvQnkC4d3Mo05Cer6gffR3fejvwlokD/qv9WHDImtg+V7gAVxAL/Sge45HRsUu3D4koBd8EJGYH80Z63+xMfnAG7afT3WMWuQkhD0Jbp6384n8ShRQOHL/950/bN/y4ZMuAPH4DSrAcAgRhreB8Qi6HP+VPA0AEeB49Cb59RO3bwjgDd4vJ7lg+CeOpAwpC1NSiDT+Kkw0xG9bJuQkOkREiHwHDkKbp8zckvSHtg5bm2yOV9Ho4+6NKHw5uk3H5KR/pO+XFsq2uJL1nmXRYEczNOR+gIDtQORNuOMXgmLukyvkfFd8/nzKOy+PMfVJneuOcvoNjVtxVFh2TXB0zHJzfcP15pru9jvi+Lvi+Dvj+Lvj2H8PMHDgNXjsZejWt+/eV5rgOQcg8OiTxLt/w7tXnvSdAwyceA3eewUeeP3OAgZuvAIvvAJPvAL/E0dehs59jTx7hTx763j3C/8B/54R754R/74R7z6Qd2/9P4F/74h374h/f4937zxpy7W3z7snyLUnyL03yLXXiXe//x/w77cT3vAneUkqzucDJn2zj/t3AP8/dwVHf0rYbwUvwvZIWh6Ynks3cnQcJuS1+yO4Bmy4A61o30fR9UnrwFW5JvZ3wL2EpGdaHeKVoCJcUQNPwD5IO3Mrp2OfIhvjBB99P0qJhmOp9WYIxXu9jAAyP1Ta84Tlte+mEyw/Wd1YOiogueptElnETZut76bzIj9ZsMCk8DWM9FLQGIt+u37/vs9chYHShUJtibX20AYvRPjAMbhyO1tu8H60/BgC6aoPEssPIksFZ4fwJWdO/W2FAfpLimj7j8DL0zrcUjzatXuKPNroT9KUtFgk+XVKiJdm6iNH+bnhkVKUtTTiPNqr0svTNdWU+XVbOP+JUIfMxFXOFAUNUcxLs3oHovy6Vo8UhbXNxTkai/O8dajLDdf9baq0FvZzThhWrWNfnPBsu9vx+BG6jrsQCWMOWxHeNaarDKIG5EtdJuv4k4i9bKpG4hg2s2Y0zpVZM47I8FyhI4eEOXFHsg+8lFjk8GUEDKSSxZDkjTwE5qESkrDGMXB8JPxEkSGtZAz3qdsZCfGombERRbcqc9KfKpgc1qGGujmvUfkeLYmYjY/R0tstCfkgqj8OY6EZ9LQGY4Yh7/6l0PlaxWTGfQjGi6UiL+AjARZ6CPLFqEpe3ED1+IetHTLAYWH9StRDEsI56qXRecxSv+fEm6tKXcTQxjurki6jDio1MC7yNIwi6DZqAiKOpYvb0tDUR6ZRQ/LpFo++VEcCaCpBSjsktLTrsVK/SCHFj8DcHwxMvpgwiMZSGMa9vPMgR+cHGdKFkb1aAVh3KKfIXbKrktkA7TUDrCAYceUSrJa1ro6fhvhwu7KHLAA3HO0zpEBiDJJkDQGiqyM0tTifTHITuheQ76Jzh4pvHHYigAhTMyf4cUVLLrabpJykWoVvGIEwWGRSVt/MZ3FNaSqcIR0dThweLBcGpnuxviWkuBtZtTtApGH22KXXbcX4ykQIWZThh4msnAB8DfgbDAszjnqcGozvD4Kpmh6LGTcCa9yMq5+awUjRUMIRySG3G29QPYooUQCoQ/azfVfs6fkhg7qB2cR6NeZknONyZdw828DtM8E/PTa+lU/Mg/zxlx2Dk3wNf90/zkqS2cw28H9gwLAjN7V6P5n+BdAdWUTrxZ0jz8Se1UiSuBKdCVy5CTH8IPA8kMhJFknayIknEggNMRts6l3o9I+tjp/4VVFXXWwh1iHeEVLfLGd4dC9Opj4HImXEGu45a1B+IfnXWToO2yP9Qni2P3t2WU47sh5Hsglbip8djxKyB8TBfAMTv6FmdTc6Daqp0UNl3czYwulYZa0DI8tw1wBYIQAYLJ9ZiPYs7xv5WTXR4KSsU/9KA80gntMCwk9gv8PPVX8kXtwt+hTU6U/UhVkv1i8CzJKFVn8yNMkx6svKrtlCk890SISuuIGNOxUl0KNbdnuLo0R57MRLo8ezDGWLlt4xBqgENve1hsIB37yEAZteuYLohEwUc4vwDahzXMMmMJco8UJPZtbD64v933q+Vtp7/g+GDCkcwY74/h21Y0FyrD82S574/Ya0Iojg9+vK77ITLyWOnOD7QE6iw5wqz7IT8iWNoMMDsEpbwACnzIUuFGTmfTp1pBkwQ/CQRmTQFPQhvyekB+A0K/AoAStveuKXfpZpSAmN7JPHPwHvY9DWb9GokAp5Xd9j0H1YnUXTK9GIh94nSKs/xlW88RQZo424hIc/6HuVVkicl2XknZvyOi66fJ2ju1fk9N323J7D/p4MK1sOx5ezxU2nER16cJlFjWLcBFRz40VJzTABjGxnVH1fSnPXLyXjnlqNaO6UK+FJcJuufrbWYkXjGVVRp0mvGgokmWsONbTrQSq6JFiz41/3M6EWunSMRGg9yiuhR1gZXgZs6+9sV6IEiG2nSEf0FQUD8QvhTFZTwqClXXf5qBPnY0vNUlH0rAKKNlJ66C3osIfOVsTIVBTonfk3syQrf79IPyaLUjiA+SjQGysXCUAmpU6eDr6xm/tbvkLi05M6/BXI3g+J1dMh0L5BGP+JHIoveSnbIVKOQHuLcdvExZhS+Xw0W6G3oZeuAr2cLpl00ZaQTxg7w5F7Sde2QpL3zcl6NT60QJnXLEnBrwESx5kDjUGv/MG/o9dwGkn6EA6VrmJWYCFhnXKI3BukQEek/GFz/AzqQpR7dFi6tyRJ33Av4g9NPk9sjj2lmnDQz6jGWx5jEnB+p9JboE6m36nflwqA5Pf+hkKNfT7MTiJeDemHT24yHC5gLZF9wu4QABqd9in7wd9MPhydfNGX365U9yO2G/tBPYfcQe6KBELs377vZA8h+D4PC0774e6U5k+dVLshDxDO9YE9O+9lunwfG0N8pYdXUwCWzE4gOQKBwplFpd03DHVXtsUKqsZXoscb4OJ5MWPakc31y3J9Bjj2jHxxtzTaxkJ/aJ07BqGGoUi/wWAEcmv98lkF3vFC0wbnXzBPy1UhN4hnnBoAxNZsLRJF3j5INFbNfb7vMKkmLCpGhcwCIgYAJI3P+mWs+q5tMjnLGNX4RBWEF4Ig4S0yB0r/cobExrw18OcJFMvOXlMCO9ANLRf4qkTy+WYQEwKwHYZsWqC/hgwBwH9/HU4M99TTrmii0LtjuhqZbmcVP/2sCzlvXVMTMfb4++C5B2zFdXJV4Ag7rVqphCDjPfTumSAAqipwT7VUQPeWi28SbZu2fhmQZ0bL2IWpfrzJx099ZSBVZeMu28AIela+wPt/DxZ5Ervvh4lOcAyFloAx+xyOlak1HtC2HP2Qx/nlTwUoPoZKOAuEiJnBi4ZBx9m9Vn2pzzW9S5k8HI6p4SaSFzZi7rFQ4GPuV3Iqyfc7sTDojkxdlKGIDV0nfq+1j3/jnzP/VXyUD5B/OJ1xFGSa/NNSpm9JadnuvpAUCK71ex79IIvW80vBVIb1P7p/rFzASvezVR4y/rliSTjwLosKel8CgI/7TQXAoS+BQf0Fe28ESE+sgud3PYMRc10yDyT+N9slaxaMoEgZv7Zd1RWrQXrCohjlE9iA5GJMYUJjSOcRe+sB6YWBnGRtEbakOcDT5nSBvIHiH+wl1ICUENEsKHhQdBCfBUDLNpzqa5AclZ7ZINME5pY3BoBLfVZy6A36BGPIuf/OH9Mw5IWx7IXxCDgZhSUkXOAs10IwcWGiN+WOjGUM+ARDuzAJb/MGOrmcMKz74p4awoQ28YaQ+TaNG92X2kWA+JzuC9nGSg6GvIe86skpUyHggyLKknRmj+qNOWpI7h7gDzppZ1m8KFvvQiAOx4UNN0tw7ofzv3afgLxYMtsR0vEWWHZ3FL3TTdpu43biRnVIjg91yWuCxsLpQh9YErMvyx70V6uISIRgbd8SpPCs4wBm18buAr2cnhnKOy2e8jECzNGf0FaFH1e8ldd2R0C/AXiMpg+BvdOElFrG3816tiCXZjGKzDiPZf0mYND9rVoc+OKqdOokayCjL5wtzUiZZiWpEAPh86hK2p/ANzuhEiWTBVkBxFfrlshTT5iCUc4Beq/GuXNXmO5ntB4kjPbCiiZ0HxFmfKOjnE09iS29Wv+H7G4OzuR7vo5tJxvbzsa28cS2bVtPnI1tO9kYG9v2xraTDX75fKvev96qqZnp6Xun79zT5/S0afcL49kRpbArPCTcpJ4ulZFU3rEfhQ82keGFlykMjB+tB8dV4QfMXPt5y4VRIP5Tl61vBJrsYlenCk4u9i1cTKsiaw88kWBtrKVfI8v4hNwjzTAqHmrxyBW0xkHILf/gPPwQUZN3mlFysK3yO4i0N6bMQQnbxoT7s+/M3iWVqobRWuQosmT5O2YVz5Ln0p2VrtnGC66+MsymPuI58bT6g9Vy5qULrqCgfLX9+x57g/1+miolYqh1SlWPa3HwmTOk7zNfYBmh423ZvyBLRp4HgEw8y5XZEKzv4orXE2L1tbc7fM8vHza/EoaHlBY4lYJ6+QSOXb3gPaxthnJ7I94McjtMXfsC+cD8L6S+y3CwOlq6PyV1Vjs2IqcbAYEmuCNrERk3pbZdNExrLovQjRQoV89Nf0aHDUx7MgjvIVHNu0Ja70E0FUZ7zk/9/hgP+YcmLOlkeNYU/tAgdqRC06t46ZFe+IfXxQk3MR4UQgetD8ZIoleGswJa0ddzQaZdfQsKmQpqyfuLO5vbdYdicEP7HFTxduLkX+x44l08az9STJbyzms/ax78J3JfACgtb/kLY3GhffO2A8D3Goyr942VEYAEvkiglN9HCKAX8xfor1OvP9UimRTeFI9ri2YMQ/FoOBoERgKb/9a+2JfgXSlhXXNb46tMtju37nXGiFyrXZS45u35CFpfiSI6jKnebzjn8+nd4kEYVEJgFZ+XkA2NpPRa0wkdSEZ1MvOoBx78ljtiSJpjPXmcSOty2Rv3UHj/B0TXyOMS9v4MSB6xbB1aM8HdzfdBOloB//tZHEyyw7N0PSL5FSNi+UQg99Jl7ItE1gxF9uz1CTH9VM/Kg5XuEiDUxVnxIx7EZEQ5mZGCmVBNAhzBKF4ZbPUXyjcT/9HE04E4X6OCXXUKobyidYPs6Vn6rtE+wVa2pU8i8IlFvJR5TXmw7WpBsgXylxny8FXtIAUdW5Li3/eB1dn76uHa/KF2Qk3BsLJwHeh1gVtBRi4fEhTG/lMSk/J3glSMoZ8fisJy/f7UKEDY6pr+i3xjFYje6zEX/lxoU3Qitkh55DjoizwyiVzUXATULI42+m460wY75sQ8SDlxOeNUmmQxQLrBf8t8ThDWa8xdzLA9lRq/z154OJfckk20br40HOqYvQ/eMbDpN488luH81ERkHmEw6pIoahv21bF+BzOJZotz/+If0xuum90WAw3v9yQYiqF0V4bPijHYp5hLRrircMrWX6YICQ8a3CoCwr9SeYMPwVh+ZvmyxwoSM/bCv6H7CheDiThPvjQ99nsctZ4MGYj96/27UOQJFlsLTZJQPa1bGSfxC2fow3MerRNBkfcqkKfjvST0uYLxVUouzlu4OjGmanHuCZdLYheh2XQfgYZ7ok1CXMeCIjrmPKEZWtxXaKiihp8oKD/PbhKb7Nqk/jSwVwg0DspcFhm8qB33lEniTSdyWEPmyJPnlsU+jJ4ur9ujcnhEid3coHHzpe1Qx2gTqCv0Ho/nUYVLRshxpbZggs92VXSQXrE1/JFat/JCrsYWcnRmxq4hGOINBpYxeGNEXC9YpAvCvI/KvoiJgtYOqh7a9NfpCQK9B8aExMDogmXphTQeMnMwflIyduSl07KbiI1QQxIZvCOeP4GeuSeGixg8lBBdYRL7oo//ldMkTlDYLkN6mUDGai2fZtily2DRep0gkGxKZW7RXSwgK14qiTlcHaNxoPIW7C15Nsl/n/cF56WXTliNWdH4ByaueZx+8QspiluPbC4XwlFMReDLsFE2E4twXDl+yhths9FPEmMj1TuD8kH8SCId8NvxwakvkswvWrMc8Ea61tidn3DrHq1fghd+sL66bs1f71esHi3kSfzyCz/trl3lM00pbeDZz3/TbGWliv9KkGaVz5cX+dWC8YirjIKCKf5T2SqItLMRJhI+nzRfUU4F1ENZbO75NzanrufTF//xdrsHpXzS8vP2133A10zRwSbb8eeTj/8/LYn9okMIqaBENHY7Mtu+Vxi9QOHNQVSsFsxEI7W1ZAIjBhoIt8MSuGxKkVp3kZ95pfyXYmg2F+SOOkyXf8kucRNIrERK7dLKYAbISbm8UteUpb3dJRqC12TTaNUTRifH+n9RJFhXFvzDyNCv2LLBPsFwy83X17Q544PUOoatVLDtBZEgMPO8HLszz6wMqdcn3liG9/0lyJAwzUyWdYM/XPCjxLvgiFz6sa201y2QOe9l0lXpb8y9p5X3P8iy0r1k5jaS1s6NpTZthcD0KPYW+cvM41ITWkBxle3I7A71xBc5xvVRydsxa0hNS0jFB/+Gz37tGj9rCVxA1lh1Q1KfBgCK2N92/MzbztsdziajQSygkiWwQtz5zFBa3SvrZ46HOzqwemo8oGmFLOVrsisHH/0XPeZhSioW1iKh9VAgwilG+nKvgd4hza0uF1p4LkHG1A1GFF9Gm0KwFsjqZO9HF/ZROns6jtp7JsZsMjtWxGiJj0+k4s4VlAWy/RRnqXEGWedvVxoytvQh5ggS376gXzP1+Qk37THYsLvPVWCkuKznKXBEgo6CkMhOzBy9aR6D7Y9g2mWDNW1LpJzKpd40TVTJ78wtQUNGh/fykOMe6TGqaURnJf3INj/afGT2p2gpJazCONhk2NmeErW3IXjjM0NFaBhk7Ezwo1jUhnSI7ZIyJspMjriKISTHCwMTckIMnYMzXFQyMkJq3IO9tH9ytLBztrJ3gjEk/Lg6Pb0sSFvg4lHJbLF1uO2td2aCTM+xUWnPu9fbP4CvleZI6gP9BZeqitkMi7ZKxoZU2IRNlQLkbi2mt6WsrQ26cm+foSkf6tg55cFDOuRrFmrLB6G1YnUVKhgLCULN5GMnZyUyNgqUlg6fRvqZZYWLEILQFKZDZqboa4YKGSHEQkWbqI/UNr4lNwnJOHx4zGdMPAbJSdMFOyIep+PJe+BOUfswRyPd+A893sjKK1M0f8RRlF8y2uYQwhLG9c9pQ9uRfzK8V9l0VWrMengNw7kmSHQ75aXPiFlbnedj2/uD0yvvyGEdUVqeIGPAtx27f8cZP8FEKClecqk4+WfvbwvNow7gdULOsTknf0O11al9pZWdvdU274O3pDE2YxOPl9uXqqJKhCBmRJK2uJaZzAiX9Bp3TPihI2pReVHO3H0qqTC5YaVyYvnIkm5DkJVjQKYU3uRYPzUh+orC5YsMFvbcVCM6LhU5dsp/egjjF+fUynUgCqMrnDe7s5CCPuskUg5PXZMYyW8Mvyl5u5wpBnmdTB2VMpiqG4U+28lM0tX1GB+HlZuhm45RlcsEXns7rLSokDhRqNSKidByAnizn0/X9rgnp9d4jlnN8EiPBPinEbII6oJWhGczcihyHBhKvnywTinvUwyd2lnaPCt2DlwzjSx255GeOfMZYK99OKHXrU8irJ7XKMVF0BJ+6heX53gfNwQg56hkZLPLLh6ExEvYNU3xmAYyFv+4QooS4i4vtRAXEMm647CAWVyVHouoRHkKQ5O71v/okkYLTlSon1xZyxYGuQoYvmRHOO6r0tZqMnBWVt8gyGUHllDp0ap2HSqRPkuZi514R9VQpcLUl8NI1rRwn8hx/CWsJHHVxw+jojJd8TDUAvSJBXekTYRHHvoRcLplZuiS/XDm6bUkC+hLWQAqo12KpUcRzVH4DEr5JWuUNK4jd60tcgupohX6gNUXj3yxpNWXVvVS6cNM1QLIfm3iQkhajgrtpDN2u+5S24dakTtcvNjudOBW5QYBvgmL7PtTe/Sw8/2d3n2lLmu3Fr864DwpMIe75QghaldQVntD6e9oPdCIbQArXDn8HKeFdbP35kIew4ZtX0dMn2UN2/k4SzYCwZ9a2L8cvqP+xg1aSkBSluwVH9lfUphkLb38YLhQszgJklQOkjQ+FUefCG2g0DiO+0fx3K4E0RGYeLGHVElhfK00ZM76pSeAwx1A3GrDWa0FAxIPsZMC6jtuf099WQiLpRa5z9jL6kprQbe6Z4Cg0/nB4gap8OoklvClZ7v0RN+nrhIchucB+8s8WrLd9JZaEeRAVlhzLj2db532xxoBnpWvsUEFLjc10oO22nOaqth4SKesbqlxWXXnCT6qdNLj5OvBhTModyc9pUUa/NjaIakZSTHnorgEqOzdLOaFLvwApCdq7cFPsQ8uxHRo+vFVX8OaGIZ6q6FeXTF49Vk/nJjbE0Y9IJSpHkmA5/C827BzofjC6MkBXD5aQR0ORRKKAk0Kl9IpT5Fto+o0dzgMpuTjA0jphBsznbwVJHUNCHSVroVqaxkg/EEktrRKy4NEgkHBZq+tdLxiIH5pP/JQGIu5pTPckWhXeD8Glh8l7ZQcBPR08m4ybvKp2lOdr5OJzZPEv44DkOjsviMZkgKjN8auDZy1M71fVNXOVo1x279MYKJBb5XcAmuvK8uzP7eYXV3NRZ8p+OPJaO35oqRhf8PlvM6nVVnviU6ArpBaiUypQEwpu/WcmGEtEJdOv3RDdh4dWY855HRqb43J2Tre4jYcd/vU5amv+3D4w44A0vQrtOon1Y8cNDD8Pl/s5nStD1g9jsSNMXsbg6CGpiLHxkUTnZFc+kfK3R7yzYC//vgkOQug96odcjU8K1ytRTCCEB/UrNOtSS2ZLwQK+xCnPVX87bDk1mCiBr9e+WqrefoG4Vg+0W4csR8r8DSwD2wgAhXPWDtoKD0FeYjSmPlNx2DVV9We4UIJi2dtdENcI7ktdVlZrPzM8C/kzvYSXqOnLTfJvVtQhsnURG0MVnuoe8q7urn0JwMXS//d3QzrHgdgZPs0Yurc5/MPU6m/yaogi1RDCjn3rsXjler5UVAEvQ46k+V02ZPEEk6uOA4lsW8ptoLJZg5qKHACqA5VU0PzVEceDiZobfSY94OnVSPl6Qk2j+CCn2ABbsgaVCmQgC+gTSTu8c2aDr+bg/HUrrQXpbnTi24L5YWUfI4gjdD83Zhuce4ePiFjXT++/mUQYgAoIAUtGWsevrEeNqgV6aKTP3NvYZF9ClEvNL/UzLpep+IwoRkMcrj4yIp1UgrTx8hXSKt8LJo5Z4d5NOxqQL1Y1x9/MKQQQ8rlCAuLJftPumPObYKU7PNALlHG72I95fzoYta+20apIlgUWWhbt/rvPzEs6tX3ukEvhShxWdbdAxd67Xl/WDb8UsqJ+hIdnUDq9P6YaiTEFoc9Qjm1NYKECjQnIntGz2WR2jOVlqMz+xlL5OGQw9JTShiOlFZwpbrslTTzPAqGdPt/iIdM1cN9v6HzNzeXkk6SuCsQLMPBeDMKfBHt7BDlzzmbbe1dXjskjDTyHZhSO66Wp37ocLa2/YOWKmrfZVdkmuJbJr8DuQ5V0fSWwb0g1dkIxtXyemosbrxLVm940awMWxsdP1sE7Uc4k8bYWHeXVTNyWYkVlcK/mYVTofjDOvbPLr79r4KAjynfjyoqiz8MopRpqdqsoXZWGSXkl201HKlnXJRuWXHSVrHije2GPNn7XRW3qM1+EkW4rO4bFdBxKPZixWXO/kLZfG6tdtxmDu2uMAqtaPS/MqyPJhCa1hHIBkg6Za8I1wI61FMmVZfTK/LXADW0JQfK5lA8KTOCPjQqgn8y4lOCPm4HKoi2EQ5aZIyQDFK7GbiReeFiJI4iRgIh7mlwt13ve5EBNAGeY2ReHz0gA8RxipOKjPUdqSdJAF8EqjbPnQHM1b7CAcxzgOJrT+Uu6NBnD+30jiqPOw2VUBlNIz/nNaDsteeoQoWOgJCi54p2JaNsLYA7kSMbJpNeLTHpb82RR8W96nz0kmu5nDtvNVOmNRoZzc4Y4ORaevWjd/JzZmjEPNNj5UvsVTok7U7xcdlDBnKkoHenZ/dqW722N4ARdNFQb7zXS4YiMEQNJ6y3vtvNsTjvHRYgr6JWpsiU8/PlsssTJIIgWWniFLv8x9kSs8AcL19/BHtyFEdLKW10nkqF42yL/UxfgQCjXKW2u7Ov+azhudxTGpyCOnoPeoYTWma3aEmciG5jo1gEKV0Qq2/HLgZEwCwehfuAslToYj3DUdBSbyR+bc00367NeKKjW6p88x9EXXcNCzkrq/bGrmEbznRdLS3eqYKO8aFf+TaZVHfOfO1edAX4ZPWrpGFKliF77mRSGgT1SGEh5l4CyzqZXekxHuOyHF7cD4LdFGimE15boQXRydbkMzjscY4BTK+nGiB/qCMh5qgowBWlHjp3MkGd3l9VhHez2xGicaZN2gJ3RcKjcc4Q0ph1hx0hB1RepFXCzp7bCzwpdPFoyGBrYCN+/CpDjSBobEW9xnRAd9VVNSBLTtz8lKAmswr6PnnN4xXEiB3PgyYqhPyOT1WPEgFYgsBqpd4tPiE0JqfZy9dEYyuvleGbZhFxRyV6AJgm+93jb0Do/Qii58uGXLMzMdhBmviwr38YA5DJSofwNTqki5SyWHJLOVrFfrjb257zlTW32/mtv23z//ORdLpb++4cCzXpMaIHjU9oQwfRGlTp0SeG4BpUkiNVGmSSgc7KJP2kpLTiKeVYHKuKy8AlY0T3KIuopkHtEymOSIk58kxxeHOGUbQoda5ebh1bjKxB8wZxW8yNQfcG0d/AHGPswZ0ZzGPg/e7zIdgcI49YWZuSKzD9BIs/ASc6egvl/CrCKSqahKBFAyFSmAUiscaIhVRiSKCBiNDUqZ+OEf0a4xrtGutrr/kc7XcDQwP/R9rF+VQDrKp8dHnL4wBHUBpJIptttRuGOk7Hx/vG4BYv0lUs4hVs9l8ODIfhO65lDp5C4UsfnKeAgntEH+ub6PNWmGTNjjAdLzOK7kapJh1mxa1+VoOb7qQh7N8IuDF6prFBy/gZxpHGTzbBk+RHwt7ebeaZtfxbD5kYMwIiCr9DljvL0tS/Uk+JNcs15nL1yD6LpSpGNnQ5e1ibzszLrPTxyRmJTjL7RIOASc3d5l+B15eoOCbhedI9JoFyA1dzAi2Sidber4NyHd7entacdh2mgNsoaCjJaLsm3ioVTnyqUiE/m+MEr7Hl5taAGeHrt9TYTu117Sy8ebvqJqeJ4SO54+PU4diaDfeWAx4MOEPl5lIG3tbWFltkTcW47MQXI8hxhXeFqPKWZnvrtV2T0UQwyvX15fqGZpqTWflgnxGvLBReR/+BZUuX8yO3WEQ7XpU6OIVqBo6ExyDz7BVzi8vTo+bixRrMn/LmzJx6ZRcDHiOhalSS1kavJAgLqLvOLdtKgBoxa8cfSrDn0PXlSgDQr4IbM20Akg8yR/NSfZ6SngYsGdyNq7bOj1oQYgDsYRsJSChQGZcepLqyZdnOX+a9vAZ+xtMgf7G/uRyhE05AF4c6d2LR46ib7kvP18iReA09EK4sd/VwzLUVLgvEuJXyjX2uDhjN7tQANabTdhWqEoWzOJhAyTg3WE8pwc5SKQ3NfqoiLwADgL0ewi/uxwvq1b/9aHMIVAZz4qBUfpde2YEtgpiPCH0Gh6H0wxE2ihMKJgGDDYchxyFNMIwU6kAN4NyN5wvZDha8Q/Km+xwVpUZAr0+b3bghv8436P2LHfbsjIHvUj2R8mGfpgsjXPEMbAjwmklPiHJp3FW/lwlCaHLZYb+XkTOIsIQD6L5GhLl2tgE2SeJgfnRPCF+7z/rgP+hDd38j6TELjf8gDP1RHeI/LUzkPBtB8IAK7bcoLHidH899so/0FhoicJpvEEyfrTZVx7VYFko9+mQzmxMu4sTvbtbPUaY/XtCtrRo+jPXT8RFONcesWX9I1Gml81ap2RsRubVsOyTiqOZ5b/d26d/Nzdv5h+cL2CMo37vVo5UnxPz5wq0U/LLFTmKuVjzAMDFRLQ8oyRzCqMca3ULzazTKNsTa2f3wZyupsyMiIBATmJxV1q6koNVunNLu8jDX/A41Jm49VklMg0xTI4rkR+BxbyrLVyRKc4sQZp8s0yVa4CBL0VMwi3yA9qV04l9C3stsR/2g4SH9pmSpwjCGA/ehkAzBbUo5UF0wi+ks/aR04lVCHrEwZuZNuP+KAM+Vw40AjzttpjnoSDjwioDNTG/elrBLqmDHIprjAsui2+94qnTCUWK6pnTCqz3mzLgLF06Hm8pMTwC3VZlavZdgJlpgs0lxKFe30xjGnQYDoOWWW1I6wfWQ5gBYc/kylCmNvFiX1hmN4+J/ypVmDyU3ixbMWFE8xnAy2x4wy+t+mk83hN1SpwUQHPfk0tTEOOzcWLD1JN7KxzgcMeukN6bs/lSw4x0gwC+Nvc1573Z3SnfByZ244Qs/vn/2ho74E7hga+ENDeBpj8Nm3R5i/onxVqQ7P9XgHS7CKUvRHTNS8c7LK53o1/pro4BHDkIdDL2bUn5G7AXDsLDss44NVQaSEiw7Fdh7YVjYmg5UEmFG3bFiQcWDlQvVNCQtfvo7KEb9Z0qst0+MaYxigRV1HIRSpKJXrNeOUoSeGZXakFSIeU5RDDYdBkUu9MaQdMeQ1BWMGbU/EAjSJxb4nxc1HO7bDgEmUKbDuP5vBgLm/8YJZQH1k2V6xa4tKMFyDUlHi58rXHg3vybE/jvY0Xd7ev5214u6pJ8ElLHJxX3Jk6GuLxMCA7++WHOslOhXUt09I4GflNkcc1NdlP1K4RyoxMtiOIQNlP3WYAtrRVRyFjBJiDx1wAQFRuR0TXTQ1hUxmJD/DQr8tozlISL/fwPH+fIUod1QHqItlGRZzOCXFU8nhZW8qYJF4FMmTHUQByrUJSth7SUHqgDlspjmghHPALN9HbAe6veKWL6JfGjb97tGMmFoTOQhxpM5ULfXbUh3vh9N11OylrEtzumjFzBqogcFnyJwlbLtpE8HbtiQKjHngCpooQcZ1wFvSphz/nOiLOASl7IJ+fCI1nyv5gG3lO0gjmOuilXeYgZe+zuA6xONNnrf0dRQ7jzStSplh2IBBypaS8YJYmw6TDUEZT8VImuWKevkXoJhIdXXRjpMHp4cRLkLoyHpwTfSEOgF2YaFG4qGpL7f+3+z1idmSMGc2F4PVW34BIpOAvk/gEIHpUKHGqbE8kOAKNhyEPhyocnfcHv6GCHypMPYhYVxOGYBUUqBE4Jm5N7q39GdWzNguNJhLqzYUG+sMmBcs4CzrLxcqVNiYzakxdxm8hClvZmjpqSDOW7ypqxzHJNigsaUYEiUHVHpMFFVPl2JSHkDYlI48OfoGdRe5G8BScBc94UrhLwJfU3wvH6x/FWyOaBcaCtbjBglehCHOQ4wASwdpggn/b+YDd/mLGypGamvexYwcGZc7IX0e/2/M2CaB6QgJLLcyfs1WjJgnOwowZpcnccuwzioNTXJ+CQKiW77102/s7CQCgj0rY/aqzq/4ZWD6IFA3+Led326ky5t4lVd3/vykLOgTuFHI8GOEQvEAYJcJp6YEwJv5nrFAunaWWwpwYYIgb0wgFI2dkwJ0iTg7M13miTjEQIuEr8/tzg8EYYIcQG3f4MM9eSbFlzMqI7MqNvBQBAWtF3AKhnqzYnSCeN2DkkODRkq9Te1BF6wpj3WTxGa6zNgDrONeHgTgQlkpU2mlGDbQxhZwNr9xBPv7RxQaPRb13C2ItCv9bheVUpvYbfSJrLxRY65/buHBVyRdTkIvus/FvKhyf+Pf5XRpwhtfgqh8ciUIqLBQP+C5OQ7Kkj0jxzJQiJaQMYJw5AWOv/owhrQppCFU96i7l4KohQEPZaqBkioLjuNB1dg1isGA0vZESxZqLMFkCzM65DV9rQGR/eTc5Mg9ZXIRi8g/9H2nV6LlmQKh57kIuNZESIadINirXeZMM29rk/BYjq+OzhAFEI5iDYX6offIt9CgQMU6nOF+iYd9X+UkQrV1EQnMYsRg0Gm7Pf4NrF6pR50zP8TiWTQb/BtCsnY0SANk2hm5xMl5CAYn5HC9Bctyb0lyCjBCHHg/DTIKN/iZGwKf0xyJGaln1B6wC6LWfJVA3OXLY388iTkQsGMjT6ivj1keAzV8ZYUkDEzuHD8xXP9eDQzBHAfwiVhj9H22ppf8t83BmramgHKBWGPqClYyy8X0eEiAcpW5N6yJRxz117kIs29Yh5s6Fv9x2IzzOj84wtrI5uDYkQe6OigwUB71wUp1+is0ibFG6P9Y0/5h7YsrOVybIlCbE95iKjvLEKQKCzzlHetkpB7gGKbU9ZH/1AvSfyWC/KOtSm5wYU1tclvNsZ8Swm5yBgLmp/8t3MYtlfsuZIdzS8j40SaM1Yszw39e7//h+u3pgpUzbs+hcrIPSTIyIWuG5F3bE/JFaOh7+oEAgXOKP/j2BuHooWlIjPqOpYcBAyliPR35n7r/Nbgf7nxGy39hIeTZc6ElWWOI1ii8Ae5ceFGOrB2LxGm3oP6QTpFolCx0rDwt4kx9eVF3MOtJRSCRl+cxttw3A4XwpvQbAC5CQAa426hk9Voga6tnSz6hh4t/VcByp+rKT+JGKTB505vQweFBzx+W7+I6o/Hxl0oGB+f2BcIaTlFCRfxEx84hPLHxiWoyD/HHwhRUJ1jmXgxFWPjxuQeqBTPTLXRccBnGBDdLF3Ti4zI41bsQfg9lytRJdz55XFumPH+5TaxoN8ctaogdWjz9U6wYdmBZiNGcaTr0Xvic17Gct5DONx4echFmKa4xou+Wnf6LMp3oCztgODu/kNbdNUgpMZG2LEByhOWoANkpf491n1D0t2JUvL3xttpaRmunBiKLnhGf5KPHsfu26sncQoi1B9YidmZmZC3fdgUxR2YKuUbUj9cO/XA8qP3o/d54PrZ3cpCnXF50/FklDCT1ocXKWArN4qvTM/mIdTYKjrTO+iF5TkrjpndvILx2CuOWd3EgzOtVGZMzsYhOCaKc2cWf0Esmaj87Vuch1iyUWEyPKuEWHJQ2cjQTs1/k7OGBkygLwZKX5paf0+T+Evr1+5Ekp5QfLL2q1dgYEF/KZdghpFKiNUb0tIGAHX/fnpw3OnzfIFLYwO22TyUjNrHv1nJTbMnhW/ejHlUvZD8d3/UZnK0LZFBwGpcnWSw5GrqotFieGJ3TTbRm3uypN65/jqsqnJIuAP3p9o0YIhZvvkqFMqjmM9WZmTho4ECFzm2zjqstrUM1Z35MN1xTve0COXgzficmjz/zLelXjWeIU4JqHM8ty2LDhblbCZfwvuTC6GPu72ySzdIrJ/QsngpIa0kGnBPOh653oGK3F7pHbUIqbFm99NXxIYTHyjURhB8iev16iV7r57AVcEbHxZJogq3MnqaiR96xmhVlNiDiz+DTek7w2T49z6aXXqlmCKzQ86lbpF5obbYHpGbouNkCB3vjDAPW/s0kBJJzXBHyRE81EZT6KQNtP+elZhvHZzRFCaFa4ckfNYDXD8K3tgyUZiwktBKVDSdCOzsJOHi1+a77PJLgefZWEjj2b6BfUA3XeD57G/v1TpsQss8SEP1dfhHttE/cAbm/GI99NBja20rGKCAoC13GMsJrgmAHu6/DRcrFCYqoQ+6DazQ60wFFIGCdG1z6xrKA8N7AOQueoF6VgHY3Hfvw5BKWDVBtLXAsb6xuYFYxyz9VqNf3qE9GHucZwL5BMYBbJooLZOBooiqH6YH45GuhN4f9KmKVPdTEJfzfvpV/LQkpqCOpe6RYr073vaLncOmTOOj+SG4TGbcommU3aY8qZpvceEjE+Fq+vEI5XgvYBWxrKyfMTIEgQ3XnGWyKRuNDGFwjjh2xPkebmxqX1//NuGhi1x1jxTnEsSHpsOLw7/wnc9+kKJGlPE2O78NSfIZZ9hO2YZJrKbMm+iJ8uCj1Kxptxa82HFukcM06q1A5rWiyDMe15QDUvmnw9rm3q+JaM7yjdaLzU16DQwHx+vVliYjn2h8xm3mfyc8YR6TxStK8y+6FXdhY6/OrwphFuZMfRi50pV/ppiVqiIDjaytXVQoCaqE4FKWj1IjKzRA7Z2CxOW64SI0PmVxIUVeKmL23DEY2AFzwThDLmgS0g2OIBJB05C2Jqno+bdSfmx91KZrNxB9SrJZ1h4BXTEMx71T1OExWC/3/b4DRUlQvJMmJuNO72moLzsqzPO8APGOSXJ1EqCaOlpVDvlBKoNySUOzXUSHv+T5K8MXbl6++p5N9uCtGaDrp7Y/0QeflsfTA5LwvZ/DSkkx3fUA+hegWQ5VvQRZYZz9LbZsfQTv8wDi2lRforOj8/lS7e35SiCi13u80uglv7HC5reiRD+o88Ny6KKlvWAF2zz6BlVFszSSsitdyD9iyHVIbB9HUjy5iirCilyFCJb2Qwvs6d9cm9h/wf9q55Any/t5VMoYOGdKGyyk5hd75lDTyPJow7PX+ChS6R4/emWN1hA3h1EJbG5swBbIO3Am7nj7tP5IDH+K/QR4XZ2aSroXCqrZGEt8usjYYsb1AKicQvHK4pmKXOHaTe9Y4V2Rnq/cn2MfHkckPzp3P2fhzgl3qNdLw13GkiFYMMWXezdVFa9BUm10xvIKoO16w2KyJYrcByLBB+Uli/tQR36HerSlvduaoDz30uSntGHW77GjcWpNewRuZifZ9CUmdSBlhXOjL/Pgm79aZG5bc+DqHcUsUHuRunQ6ra0VY9fMjeUkrocJRlP1xbp9iZ1RCk63tb8oev5sWmevSNNpStTVUqZYCb+FFlxNSUlxNnPL0dXCTqzqX3JWUyPQ9RlQ1IKY7qAlZeYD9RPioquqDARvquTxFKoKF4+KsoapVF8Us0bnhW5jqioPh2/UDtS+E4Bi0pMhD05PhIFQJ0sxaiOuqq0MdLWBmK/BNAqECRaabtauqK6tdcoaUts5hWeto8Y11UftDBcz3FWl33MJL8oI0yoI0CGRtKY14oXb7m5a2usKe4Xnj9bMdmMBNonAYzG2+4kgUnm9BJsw2XLPsycqXHVD/OZjHQPl8nmZ32GTE6rC4k3gztyRj9QEMcEN9iCaV5GnXxh0lq82jNe72YDk1uJ6rVwSy6FUtzGOpZyeJX96oviuIcpJmegKPT+tVVop9QorEhL0LviJ+64Co7Zk3VsEfa5wUlTGmW4iho+msF8/51l6Lxob8pPzLgVdqrMt5U0sQFt25N3dXauHU7q3xR04Y5v7RVrO4OxSW2w3OnJ2kcLtEDxYN4du8MOPWfnid18R/vbdgIVfIvDiuLN2JRhhD+AMEIZ3I+wjeLBdmKzO3JCGY7NtDjgyDYCGhyBE4CCx4RtxjTsSDXykqcQisfpnUNM99z9psLiro+CkLLwWGIZAXuJhCoQLuTLtRrQkE+VCvt8YL4R79IS931S9wxheQw0YW6127iZemRkP6/LtQFFpql7TDtUyuAgkNe1IwcCaMu1JTsOxKV3J3GdE+BH9Go1YIIGgDeQkTrZQkAbHOgjzBk+9cjlOaE4sNDO1M92mvYNiF4zvAmWgpnQQGor+kR/Y5EjoBa4dOvtIunG3kFQjRKpem9ZEgkAH+4d6QMRAuxras4SIVeMto17CedN1ko0ozgus1CQXMiHkY2eesUVZ/KiACMuhIxaeJvyoA0VdGiJQA+xmDBuPTr6zLUoZjqyxuM0PgnJWvU9zCKoVXmbdDOuIZVzeA0Z/XzeddcmISXvlAcEvqEc9ABkJTXTESF4UnmAGhsAAhafnpyv+4P5s51rK2jEbz/DGx493U4KuaKTtDiNbhqkT3LxQWuXrF2Wckcj4pB5OfC/qOTnYJ85/looiEmraSnf8qndetfz1OqRPO5MshDgGczWDLoYDiBKRJtYacZKP1HX4OYGgQBLNGYQPUVMhCjdf1swI9KFdN0JtsQkcWNpEnDyaaQ8CZsYQP3kHVySRLnTNAkaCYNBoj1imoMMoD3QjUh5FbfsuaEhlR/wKdZLa03hqmACxkXxF17BATlIB4zAVbPa1ZmnfKF0BzZzRD4Y4NUGhMoNKPKXFFYzBnky/sexFi0EW5asOPNiZiNB3FmUSv0jWREEELsVXGEPNbiTmvU9qQ4rNRwJ0tdzzMKciIZNpTnvUfVllZy52vPiZax3DTThTvh5ibfo3LLy84Agyrg3UiPhew5EyGikSOaPe0RM7ymk1QTn7BEO4JyQWJAcW060DmCWk4ePr4DmX61E60yZwQiTDvU+rJG/VNHsir0PLiuR/sotP9i/hQC/khSofbrCu0U3oYw5C+31orjJp6wVDFq1Sf4jUnJH98cT0LHx+vigDFib/TdkeYkJRX4bSXlYZBVAk17xeRS4yUmhp+3140hfaak4D2LckoGEHnYmgfwBsbrQxnEx+3yVqRpjRRKdBEA+OVGnQYl0w4QJS3ckTSV76zH7IBnL8BCRpO0BpNEWZ9Bi/+CX2IDsPvY/Lkok8+KQ2+J+yAxdtVHu78XCrMjztfjQMqwdfLZQMqv+mHDj9efQM5MTbLlb/X460LoYgA6rJxbj+d/jF650JGN2qECrBCYOgiQoV7rF3/2mXemxEDXHghX7BTz1T8w+/PQ5OlleoejxfxIKJbEgPsWFFSN9SU3FRqXs1uLzw85ANI8sni/f2NDxBKmOsVSPSDoT3Tzxus73ZOkAUXsZTjWTUDUsoxnHnNsoNVahAeNPTEPW1A80jPtIXr8juUbA/U4RWqgmW4Efu/O2OO6h97+aBBszpYtsndUzrjRFlXCDdSkjd6PoEUpfg9PVKe23yDhfMZ8QNakGKULMB8rXwPp1+HJPXUcpYkZ4sH2v1oQGQGFdMt2PPqpCRwprP46/sDSO78LBfwu94W/EvJZH1lcasdPWV5pt8VgNdur4ylDOk+86b5gbWXB+Pv3D7JlKOFGcSpa+3cBzaXge5PZjCiG7dhLmmKAdQUb/R/M6V/o7vOJ+htTqzJm+Z/oawe5H+rPG5EjlRdLLccmlzoMiGUd7LDXYIsrmCQMLSGkXiUhL11KNZz8MU/XmwXUZdhbPaHRnddVTnWeLQpxxv+3T4j/zspE+76wt/fT/lJbhM/scM/Orw/UBkN8hH1KQEWe16a8Jk0o94FRXg7o407KN28kKk/eBhQPjEefJX1fsG/dcKjGRBxbvB7l3nXcX7jPTyzRtDY8Ch4iZYW+zDU9TTnacXNygPJrXoQNZT6PUIs29/hdC1v220I2KCUpy52uGg1mGwKiIX28XZYn2G/PmPFk725mbb683FDhNo1T7D9W4iylMo9w3QlZyjqaCMOTxeAWy4CSt15RbMl64c136FSt+MHICL3BanvM4NjVvLdKlK7Io8kZO1ebGMQoTK9LL3mydwT+UFt5WkqVXjDDc9YysZjqKFaNc5vQw+ouAotkZSnqIWvnQ9xxBLStHuUgi/VOKfegZNFQPGII9iupNgoGwKLWwrjik8cqrr3f2REPCHBxgzGlxAjz5PcIohg2oRPFTzrE7gQm37iV89msxTqW89oGyHCwsgwINoibdRynG5Ys5mr90wZcZXF3mxMm3iK6C76e2UrHhkM6YbN4gsTcFvi8uzVo+NVOkWBb/hhMdwZIiPXLfrlDAsxlXBobg/m+e4aoPnBz/7oxVeBGq1IWFmCESrUq8DI9WNtd73l6HKMXX1ijkpUkf+GVIvo8TPK06XkX3WYQF6YnltUEvmU8YgKMiq0C265q2Nq+h/42Oe+OCuq15+mXY6ZA4d4H8/Prp9d3yQdAeRCVfXMk+qARcb2n3qVME0vMsO3CMlw0bRTRpaf9c3C2OQrs/59diK1Stt0CqCx1KLHT8XbSfQSBQPLzye5ovvPhZL6zX1+1MxevoAM/419YSdfLDgdMuv11/snTyxC7fhbsMbMuraRSEDPp2293TcCzlUtQpw1A6rHdMUDltdClY2sRIWnEsp3siG5l2UNPy+0VYMWRSQNLL9imH85kyqtD7pYTLTQ+Yom9TizPTLCjaEK3m6tehrEOBRXhWhQQjPMjgr+Gw36cZ6mlWzjkcpvqABeAOu4bgITQCmFGacNsMYIGPai4p0zq2KNCuiwS9lyhLkKuoUppRFdMaUzYo0mSur7+tyyXxT7qk6pCudUKvMTkRq8Q8wWA3wcn3AmZ5AHgXJw1nxLEMZ76EOd63TfO+Iyiv6m2REJ5SEYX6KgqNO1o91/IG+MfdrPt+79u7zQODFKvY9+bQOgAFMEaB/LnNQ/PSIBu3Aag9hqL4XaGFqENMOEdG6VaQH3vn8ICI9yp5toa/q2UqlvwOSWzq/1R3iY6SM4yJIdBsHAbCujJgAMHGih/E9uvgf76xw64SPRUf7AunJjJZDkZ17c8DJPjqhvX20oSXK6FOrmRIfOC6LHsXg780C2XVJLmsTjOsF9UgQI0q2jGiwwhmsrbhIL+OkGiIXMYOc4Js69vYWJiHzmNzepdilnNuzKX8jsVvoqk9NJ1XsS5KOFOsbIhI7y3PHmU8YYRHrKqtduUSB9sV3sNP78yX8lprIKsI6nJrIO86YGSmAd8SHg9fnMn+ADoVShqF+HKhGtC39xwG5h41ru0lpkKQmzzB7ICKfG22i2OjSpDSghZzRoVU4NsHeLpNkdNYKqg7djYiGpE1ezV8/2Sbz4htFa1ZlfKo5Kz+TyQJZ16AmjGLW/Ptokm3auC3ViH9Aonr+XaA6Q9f56me1hi5aRSB8hmpvIv3GjniDNLZeQyh5IHUNin9vIZQsKasZfBOw+IsfG8vGqH6Ig1Kf5Ui+Uefk9XJ+cK48FABtGxkDecnqP7ZaxMCHp7bDYo66hpSi+qd6k55EPLsSMx727pDb+u2VnzK4FuUXFkjGvIqnUEoaCa8Z92Z7OV0cEP953IRUg44jVWGQI9uEPitywCDPmD4v0ud5QPNi3D2buVcNQ1fH/obGRABfPnm+IIrqhWadO3Vk8UfTzvMKTBLVMeMf1CDZY0sQVg8u8fK4AvyOKrqp8oyY9qLT1b4VeeM0rKlAty29g23zxGO59IvHXLNs0ERO0h8Wyns9htwU+oJBSVCK7NQFjBIDpj7mCCoMHgOi8pNV2L5HuZalkebKyenIx9wCoWrOeSPTtey7n6+WV5Ava8ElJfTH4+NMauyzPM5dbFFs1crOvjwyT6GSU0fB1wvKzv7jiJzrsdbx7v9gd6QMf/PGgnSRx7sPMNl5/Px0PlmoKSqF1GRsJkSnO0AcGZQ5vDApFNuCiVi5muICWWjBRzfLreHCv7cfqEh3gEbqf7fjgoa/GGTRXGdkF3lrf/mJe7y7ATEzMjLa1csVLwClC543Y0C20BaoTUGXrogF5DWCTM2qhM87Ga7WqCDAtnjE3aLepJNAxlQmGZNenIosalbmL4rfs4C+LlXvtiRNRazL5rZcQjBBfv8FdV2Yc0/dc6H/fqf5h29YCEGy4KHfBmHod1GEqMk8SdIOJ+NuCG0EGnP4brOOPFySeYxCfxKN34JfUgMI2T8qE6sYXbwFpeUQFuSUx8b0tPE3BVrWKLyJ4ZVJCVw2l1ZCQcJsOqU/ZxfP8Pv8un0s2afK1c93gKHEUtzrD88412MIgyIefdiZPe5y8gaFcCdM3d9nkOrdvlzDchUPHA8LFY/Qt2zKl8jAisfPei+RNN3b+B0+J5mpOvQDbo4Klh0HGXLtfW9Dcxdf/PQ1Qk4Q2ePUdlitQit7CQHVCZ0ELo5pqgTS5ul/4vTQU0kh62ZHR8GdTMzdZcONxn2beX03N2Wn9XA2JDjV7Azy48NGpH0mvv2t8t4+wj7+fH+yQQgcDwp0Epr7y5z9I3MOYKHxf58Ov0Jd2bcaK2ev0tfkZjXa7ApVoQdtyus4mahfjUuh8MiLVMIQjrCEqMvBahn9GgCMGiXhZ4jEpR+M0xzIJOlyhOma/bIpTbCRc77EcK7xfkpdXs9hpjJb/pMUwOrkQ+vk82FVu9r2aYMGa2K8aGE53yjGtRAGHGdU3yzNaBevaKp97XtyR0xxQ56z0IRcbMJuaVk3zKsFqcU11KmKRoRD6s/8a3k6Su2LfJHjtJfXbb2ASaJ8MJhtoAzgcFGmKy93LuZjdalnhq6KUZ3Ep+/vcxTmc6mXQVLX02FzqadFUtdhkcW05tLUO6RXKy8x1ARZyu5CwkZ+Wkm9YhtQW8zpQsO3X0WAzgq+qTJxthYRgC9NPWEGdk0Z7oepARr/4N7LATWUEoxSSNzHz6lpLK/G2DO66UZRBMLWhDZpTOTViqSbtzNDQXbwt6sOp1OijmZ0lOgZdLukqPhM92RhDKz3JmAM7PfoYAys9ihC0zJfaPsn5Lqyb+DQkdEJWW5l+qvkujJdqoswcRTKHFXjNkZ00TxSzin4KLRq0m5DB8q8IRU5bd/LPb0Nt0Ziy5Dd/dj5wK1wHwn5FthYz7s9odiazv08zc2KxkYjgkdZhtDrdgb8uCJZ+c9mu0t0hNZjqjvc+6zjJe/cyskVvsvclmmvq81sCQE6KEV3yEyllB+7HqL7ywb4rRA2e1vwVXUceyOSvAyGlrYCtE7c1Xjv+mSSBV421RSQz0FY8qf0tLuZSfWw+UpqE4NUShNDr77bGYiB4aVa0UKOV/r+UNxciM/FnN+0qwQHd6gI1oxu4ZydNgt6jT+pa+af4mH15yOGDU4O2+ytRvOz2whuLGckHAaVEuLXLWt/jeEb1Tgec6ZeVzL1QhDTdfRS9jE19FBiI3AG/AzzK5WpeXIkLvp/8+2wdQqpk/TTtnNNxDS58U2IPNuB+7Z8S+w0/OmJY8zRRj8H8MMhWyKoIC1qKym4q7R/NdFKT9MqQ/IiNNpRbJoGabNo/Z7ki8pRDk7V9fY01Je5IotfHus6YHvPX+3/LZCaKPcIdtjkacXKN2Xct32bqBiUGmQfI15qadr7APoo+gT6GLLPSk4x4Ij06OcZOK+LO9KxLPi7eW/G5g9322kR8udZvM311KYL/c/Pf802uW+TCx9vdSv+DS/tHvotlxY2G9c/PsemO6mW9bccd8/3o+NqYyFnanweXvPq/Iy+NOzp6P/drfd+1vEvO080KX7UvC54+xyUlM3Ov1wvNXvbhgjc1hDxcbjuHAYxxQm+Lf4dxGBbVlXhCZSmbbl+/9w69rjcXhVkrTSKV5w5RcbZ3EoXlPTRW/faWKdOtjhmRFfu6JDYs9Lj8j69Wl/gFbmOkpDw4fHp4H2+2NgQnOWY3drgZpaLHWQ6zr1BEyB9phC/yKQxHpel2vOlm7vq2e2zusvmnDqnSUy8kUss63In3be0csVRSO0/vtxMGZvOIgbl2QyooKFwyMEYWrM8iAwumQnscENxzpEu459b0FWmaIvv9tXajNgVwwMOxJ2Wb7znswokieRJRT/HDD+55h6z5PF60PDrFenBjc22z5ig12ZIXwidN0V1AATk5t2v9sjf1SkfbsGBMSeSlSD6hQdjCJZEeIm2hy1+euBF2XsweQQNA3Xk29JF11zrmBsLskAfYNmLrKU6Tt2HvvZfSsafkD4lQUZOifszbGrzrsOkc+07PXPbj//2brv1wO0a+DOolDaPOTjdah1ERW8W/PRDHpPyKlp6LSajK69NQ+EucflmeWOOewoKto3aIgatl0P+bG+FDEBzjFapHAJKqCzk/4xF2Z8pSjegpujMxHqBSPVrVGGFqJ4IXYP676W4yKXTDvCYuB/RkBVbc2OOqua662Lsue5ng5dQI0s0DPOHbGFXTUaMn2wXOIMpFazzYlCikChJ50cJcQThYeYXZhtBDjAPRC4CGB9VpfiNKqA9SxYBFI+qsvwc82aY82ZGp42RrlolrlopfHyeQuHJ7RI5NrJ8tTvTdkLtEDVwUwymGY3HGQ27e7Pru/aGP3nVTtmNXZo4bbe0c0mhAjpgL1bRGJDzvBO5F47s7CCXqX366/MC+uGPOlHjElgLdT7SyYq7mMkwtGHl2VRmMo7UVIpp9ltTkCUz78ZjXNeXDP66dyi7266RcHJcJ2dmJT/aIeBl5hPMnWypKvtpXd8YXkd2ellQrQpbXcWPNG8H5Tqfxf4MkZrirakF2h/h4l7iEQ75zPTW4+JGnlbfsPcI+D66il51eVHpGVI7drIU4kMkzICbUX26c1xjQPO/DPFPgv8CBk7DyJk5hJ1euhXOCcwJjnn5z2ebzIAs03vfbWA6o64Jes/aMIpb89osACSn6N8yeEbN5DLUVRhEFDfQk6LMaVjTn2WdXRa8XjaAf/Ssnwk9tVRP1EcULRChp079335Q3dMp17HXZc+qyaE9skX/7pnqiFtvFG1a77MJQIx9QIWS9Abw9yroeFI+TXtOsvzzJnNbSBgto68wQosgSFFTY83gry0vD+TyNuOALUhLMuWGzdTYtSjGK9xL+GTUoLUhbtHXinBUO8R0k1ETN2vHqy2nqYOorgp29MbpqN51pGCU7U+wRBZlJhDAKnjTjk2QcUOsLSH+G5eHQhFB743zW/tAF1wZDaY4wiiOW+WHsvWZlFR3ba12BQPyCpjqAKUL5l1VifOSmppaRcI3UCA2o1Iu8sXZhmp6YdrKGgTAcmrxtkxDRMzqxhaw+kq4h6gzx5SoQjVV7TQp2i7C0IHPYvUM5SNxRA11DVVRmJ44XSFar6uuzS4wjuQ6z9Sb7pn5rk6x7f0bEBCqhKPH+IQWzZYcpxXRlhz+ZfkEwz7PRFqceL3m0eVkfLQYDSf+35H4RDA5Ynvov26cgZRp80MJECwvoQhdXAB0Cyuw+WuGzC7hpJnlQQl52/lBc3nbpYOpzN+iSUac3nmUhv+0fCECVnaR3XMgL3iiFfevThUKIA1XtHqg/1wP/fV76ST6QzT4l+zFByMgb4RoUp5odp5wYIPqBppudk/63Q81wKD/b9rtM2aoN1xAQOjgTN6t7tlHUwLxbFR0Sbs43QhcidcvVc6WykkOj5oJDk64s3cGk/Mb+41V795Lk/OSeRUrV1vlLJsr/zT21vKTndUgWT0XJtGT590T06t/YbIMtN/lf+pfG06nyO/ExNMqR3NdgKqrWMwWsT0G567zeQy00OJBZ5hltZd2jB8Wy1btDZvIW+VLx0ump/rqCSf+Aze037awgeOsA89JK/6DAcHDBtJbYYj/iPAIgWu/MBXBQ3mI/4qwgfNsGsEDJvRHboj/X+GAnXxB11ki7pN4ggcqpDcAtN+ScMBRvqDH7Ar+AzbSW0fI57xwwGG+A9dJHcEDJ9KbA9LbNdKbDvRHTgihi9KA8F/X2b+8J0T4D4p7NRCC70MFn2qRsVnv+hqORvqLHMjuTfAvqNnoJeCdkyL+pjVWvV5iT8FQm6NHGCuAts2w91Gdwfj3oXfqcrKhUG4ShUKl45HNpepSkJpwibT01upttYOkofdDzzezBmK5dfghOikfIyNcKyZ6WqrLsCH54u781oQnkfL2vkNs2ULE2kDNjtq+FMpUNcfxCZ0fuqfG4uRntG7AlJR36oo9ydM3KI1wTTf3EDpAMmhIHTW+GG1bvTi/6ubir0Y/VWF+U4bKvbQ9YMetUrcyInIr01mf6L1kt6cnmPILA+r2b+r2pvsSSXDPF7adWDTrpz5Lb8oH/sZCWx9dU9jsgfbiuyjblRzXZl/xcK8b8DC4+SBDSGg1j/NTJaf0KuzTX7VCWyTyyGdhb3x+kMlEfN5CM4vHJ/ePh28yW1X/Hum7Qc5QJh7QumWeT9e8e/SrmZZkH2W6tWfm7h/C3tD8UgjnbB7YHnT9EgnnJx7q9avq5mYWsc879Gs1TtzerD/o/S5r38oRuJHR/tGdKbWJCR/siH5CjpIE44C+y0oyhkU6Qc3LHc/PbfB0Q1aUFrl6UduICUr+jWJvuqGD8G7q0fhb4yDCE41apf+39Pk07QSb+Nrbj63/ahn5LO2s+817lucxXaD4OXDZLhVGvYF/Hg1/XuWHmXPsxIP9uQGWtVo55/of+Juq5c+l2HWeazSnT3TFJjEumqfxQwJ7vWQgawWCv8FEMmvzZPfEAvRAu0AJWsQota2lrVxorp9UqP2/GBi/R4m+PwYnsFtzaB0+LH+43i1Qvf9pkD7cO7HtAIgwCpD1cd4kuSULOGfehUJ7/rmxASW3I/4eRwi0RKEXcT0cEeWxoQt2CT4ctMyupM5k0zWWyVHTiPXWTbSGEtYhdfOkyYRVJwqogCLtAQpmI5oqyqmRWcXne1HRBvO8p1J7WdoNCE5uNN9laXloP7MD/g9AQL+/LhInSPzblUkcBoueAfcgjtYTPC+BsxXEc4PbPeBqn+7fFaCQOHdP04Y6fHbqElKW8Y96howYKp6QCcA/ob/bTN2Hs3rPJTirp9QFQsp4q4BvVHDOQnBcA/LJBgd2IbdF4MIcPRx6rwh9FA0CbRIwaGMIn+wZAcbaHpoQIUOgm0TAlMMhXFxT6fLQywrQCwvB20vQ25ahN65Aj6tCn6sB91F/agLPt+hRfR14ulXfoO/Q2/Sd+i7w+rn6efr54NAe8HscXN6n9+sX6SP6qL5P368fQD84qF8Wwvd5vwhdIUJXitAHROgqEbpawLZT6GMidL0IfVyEbhAhcNRNInSzCN0iQp8QodtF6A4RulOEjojQXSIEnrtbhO4RoXtF6GF8cQHLuqHPi9BjIvS4CD0hQl8QoSfBOiL0NRECHz0rQt8QoecETLCGXhChb4rQpAgdBY+J0Esi9LIIvQI7TiL0fRECS/4MPCtCr4nQL0TodRH6pQiBV98QoV+L0G9E6E0R+r0I/UGE/ihCfxIhMPlbIvQXEfqrgMHDXbcL+ra4RsnwXi06AvbHRTc64d8U1oE4ctB3jcDly6y8g5uZTP8HRUe6nb7JDsQwxG6azTzEJAdM5oEZrKzAtQL3OcnpZyK4yrzjBg81gHc0cM8l4KJFzDvgmhxwDXOQxTte8FEE/APmyWXWmRDMOLpeibbTQ2gim4kcFvqvZKDLxf/rPDQDA83KPbhqy077iNoRbM8s08o8ZV4aBMp8Zf4yiP6ExkRZoCytDLI/QHl4oAHCtStnQ6boC+JiLv0GtSOLbZb1mVbNvIr6WfnNOUYLyRqR3/JjotDVckzMFdFjokhaB4U4eT00eBTIDC1QIQFU7O6GD3Otx1hPekJjEgQ/WulKEZhqbIBcy8vBdhJrOZuI8Bt9ux4+pPfcAXGtjTE1nsvBNh3VRYBExDZDW+yVIFyzGVuOQpAlXQO2FQhCbx+P50ENLedoV76xg/TROKsNrPGn1+d+EvIkO+0S7CJ/pAjgNs7hEryDSnBuzJ2S/3n4Tam4jfMT+b/Dzv8CO/92M//O8XhBIv8L7fzPSeT/aeQfs/PvHo/PQcoa1CzjhUA8ljm4VipHPAYnvFyXeL4uH+nKMXbHPFbqCUqfnUN/TONSasZFMQ9jSCyR6+eQ6x669FIh/Pd7ge92J255IeAFWbBuTBqrsL6CCJcgWC4dAayQ7wIMK58BjKj3AFa67xWmtuErUDacsBr2M2IS5VaNe0T7vNDfxQZYkJuHlroXIxPp8x1ARSDapN2HBGo89wsoG1LjQLbOuJ+DeINlVNcHRAxu2OFrff7RmLZhvoSP9yD09DgT1ficOPo0Pu39llYjZJE8eS+gSg9TYuYHfkTg2xxBoHshXATpIS2m6cG89yLQ55E05AdlBbfJO1DzL6PmxlegUEcKFe1eqJcukPqKjaeIguvq9rR4GlEWGk8TBZoX7f64nyiLjGeIglvs9ox4BlEWG19lUSQVOrBvU6s+x63K2qPHRL3redS6QbwAWC19E7BR/hZgk/Kvwnieav8S9BR1aeRlqCdSc6nBe6ktXhQTYG7cPHqN70Bj97g4eoikFUlFUWdN2nxWSAzFFGot1WytF7mJjk6ydOB3BeTnDl+HVGooFcxGdirQTLRTgWpinFOh0EcPJZL6rpnUxHV5X0XzfR+6hmjYl4wfUKJHuLAxFS2sxlQ9I28zgvyIha8UNMJz1Ai/YAGCda5foK7rxeuArdIvhfE6eGYJov8Sz6XIEKW7mkr3BqV79Mjd+7Ogz2f8Gk0cX6ajZMuh07cMeoxHn8FX/XfB2sTLn7GUiZeTMjEUGxEMyqENiPg74MvQBXMgrWFArRFodIVYbhik4UhYEHfSxh84eX7xJ7zQ+pYbf2YVyGXGr8BBroK9qM9fqT5uUoYsQnX+ztVZ7/q7MN5GHisnoiVI9j8ojEaqnEsQxlSIXO86LowxKCBC1I6zeC9wRi6XENqjLFLUt4IIDgVGdL6TKhmjT0IykwQzSS6TxDJJKpOFMoN4ZuIvC38soIlnLv7y8JePvwL8zcFfIf7m4q+oeKy0ex6B+QQWgFSMv4WQyHR9DLoBbYLgTul6wF0ywXMUgueqBM9zEzxfI/gOD8ELvATbfR8H7PAT7AwQvDCNYFf6DYCxDILdQYI9mQR7swjGswnuziHYl0uwP+9GwIvyCV5cQHDPHIJ7CwnOnXsT4EDRzYCD8wgOzb9FgrLmBNXJ+DT2fyPdRUEodHmN26TYPKqfcUiKLaDxJcM4TFguE2+3iEHjDod4p0XMNI44xLssYhY0PO3od1vEbOMeh3ivRcwx7nOI91vEXOMBh/igRcyDLmgsI5ZHqtQPMXYYIr3Gw1IsGMvlLv4Io6B6oQsay4zlgKoan2cUVI/xmAQhyGxQ3cbjjIKqGV+SjpKCdrff+DJhoKVDDZSGChADxlOMgppmPCPF0mLph0ITi24f6c43vpZota+jiDF/LHBIl2ieeZYLbzXeN+hdfiwdm5rbD4XGPId0/10I81xymOet+IfN+C8kv/umGT8N26fbDzvxxyVIU/tQQIxmEiRtvUALjEmiEjrHOEpUClBofFeKzYkVHgodPhvFnmu8jEDYUwHXjFcQijZn+OExvifFvLTFww+v8X0p5sMGDbjP+IEUy78u9O06/Mg3fijFCq4Lve9OClZg/AhpXxd69t34Mcf4sRQrvC70dgF+FBo/pVznclleBZ3RQuPnaDOrZV6jmvli+YeobHbD/CK58q9TEG+s4FBsTlKQXyYH+RUF8VCQ5FTeSA7yawqiUUbJqfwblWSV1RdiRU+jM8SKdE/usbePG7/nTjLf+IPVSXKpk/xRis3n/vAnSpw7yZ8JozQWGG9ZxKDxF4f4V4uYafzNIf7dImYZbzvE/7CI2cY/HOJxi5hjjMl2Ru8lFLnnGpc7xPdZxDzjCjnRSa5kDIzrMz4g253kKkZB9RpXy3YnuYZRUD3GB2W7k1zLKKia8VE50Uk+Rhho6cb1st1JPs4oqGnGjXJKJ7lZtlrtFhTR6iToJ9QHPsHlt9rvVnrt9JMxcUjPoECfTA70KSsNdBQrjU8nv77NTCPRV+w0jsh2Z7lLtjvLZ4hqdpa7iWp2lnvklM5yHwIlOsv9CGV3lgfkpM7yoOx0ls/KSZ3lc3JyZ3kIadud5WE5qbM8SrmaneXzoFud5XG0ndU8T1DV7M5i1+wLydV/ksLYvcUO88XkMF+iMHZ3scN8OTnMVyiM3V/sME9TaWhGoH6R1GFeQ4f5ukyzygLjWZx+0KzyDJYmMPG84DlIPI4UvyAbz8mTxLTFxvNAsOZ82XiBsgRpofFNObYQy5AmLDC+BfQ6ov0rkFixLu7CALLQ+Db/yoDSMlHvACkIlTrjRc5tofEdK1aQbFFMpMScnD7mUSvmS1TVhWCzl6k05nT3rGxXrj63Bgua78lkO9pLWsw30Qrtx9DRMX4ij5eKaBnWMj+Vx/UgY68C28Arlp8BizL2c2CtjL1m034BjBdVxuvAzIXWL23sV/bbN5hGefzaxn5jv/03G/t3soLjk2DB5T4q3+9QvmPigOt3aPxLxe9k4xjKKnEJDcTJZOxNYB4u1+9lmDmgTP4gY71FyB/xTuZ3fwJmlu/PHJOWhG8BM0v/F2ASh/ur/fZvwMwYfwdmpvK2/fY/7Lf/oDL7aQX4ISrzmEJrupewbHG9H5obynipzEW5XBnHwRSj71MS+V6BM7iRl4KwsA09DgUr3jyY7uZyXKFMPD3y0gR2qq/hw12FGGZZrk6KcQ3FKEjEuDolxrUk7RiQsM37pYJSfdgp1UdxLPxO8XHAd0m3AL5bPgT4L8oRwPeo9wOOCfdDeLxXaE/gcbnwfFkxPoKKKFz661CR2806XW9X5OMK7aLM/nAD9KdQqSKq1I3KOLoL1+gmxeovN1gFDeb9GFW7RaG9F5kb/4RZNY53qzJ+1Ir3SeUopUvvzSbxc7zbkHeQEz6k0O6MwmB3dNjMfAFlfrsyTptMDnSHYm8RD9v5/wD5H1FoX8d717vMAnDczyAu9qEc926soDh51bjLjIsTz7zvI/J99ne5X6FNI4dyGw8kFeJBJIRzBE7os4p9hPBASiEeUmi7iUJoxsNJhXgEcTUr7qMwhcPJU5BEQ1AFHkcZMjn5JxTalHIgj/GFpDI8iXQ8VjpfhPUcO4iZTjCP0vmyQttZlMFrfCWpDE8hrteK+7QClNqZgnDcREN8ldgtjQaW91En+DrYzXgWLKMyy3wDRQww9hwwsys9bzfdC8DMbvhNYGY3/BYws1L/CsyM8W2b9iIwM8Z3gK3lyo/btAkqS7qaiZMpFWV5mVmfTzhSdlDHYBPK9TIYvE0QvFJI9PiAkOlxlVDocbVQX8HjGuH+Hh5zte8DflB4fojHPO+PAa8Vvtfw+JDw/1YxXgGf6K54/th8rMu/hx84xeRfmvFDZXxiMlouYW7xGj9WrIMfn/ETamkoGLIO4E+V8XhFzBfPoQbHycerMHrEze0zfma2PMX+CT4g1niemAeDA+kAvkbRKN+jWLb4LRx7i9eVGLaOOVmYSn6Jj4icMLaEsQHGkYLxhkJnATE/ZiWP8Wt6TecBHpwnue4ygxm/oeElRDSKZfxW0ddiG0GqmV7jd0os8Ax+xbAxJas4WZjRYBWnIhagFO7bn0kcZSAQCpCB7N5EDm5O5vfK0fXGH4k5Ue03kNYx8VER+DMa8WMi7S94NKb/VTH+jEpiDWZm9pZVY0qfS3gf5aghRywAAg+amf0FgWJpaIF0429KLF0PZrSQtuD1IuNtxfg7UzDdZhhvc9bBICxGeY3/QLE0LtbbSiyIVg3GgrGMvF+g8McpSsbdlN57VWorK3c0WIZxuYrRAe+VI9RqGfH8Q06zvU/lZgORE36/an4u409UwEBeGtK+UkXDrM2mE8wPICWzYa5WSb01Q0lT1AkJfHu/6pzMYatunwQcEzcI1/24SbtRCHrcJCR63CzkB/C4RSgP4vEJAeY/Jm7FSK4aD8B2VwScpxgPAqsEphqfBVYFzG08BJ7Fwjj4Hf4WcM79sGo8zDQPn0MdE4eE5xEkdlh4H8XjduH7PB53CP9jqvGIOjEJa1w4rDsUrZZ4wwrTYJaaJS3YP08/TY1D2pg+hp84kUGzBownVKy6fThoPoxlyxdwjBSDOUX+8aSKU8CA9eNZBEMvoOJ/A4EYVY3nEIRRNwprdwhPLp1DPaTaR3+e3OUgfEvFiBBUsKy4i1r2e2jZY+Ju4fqeatSPt8/T63Fc2ZdnNNh4gdHIhvasd3TtMsdomkoqJAtk7fNK3RQ9ZDzr/NCN7yp2YhXGtep4e2m8NJFareiLGB86gVZpfPgEWhUVthV8XCh+qhrfV2HvKw2Mb/xA1QUMZ/0IhB4+9f6xqveA8FP6cC8br4IeDqQj4M/U0FVLJ+7AqTpZlnpNxSXVBCzBHaYDOHU8Wge16l/huRrPN1Qsn9agp/+GmivTjbXD43S0/yeTEdFRIQHzJ3z6G4R4C49Lpb8CHpD/Bvg5oVyDG9yHhPpBPB4W7mvxgCP4D7uNt9SJ6JmusZqXjb+ok5OT8bPas+JZZEAwulZZbvxVnYzXY7D6G54NdLz5H2iDxg2NLpiw+oeKYR5nf8fxpBO6y93jpR6eRt7nHo82ocjvx7MZzyvcGMCORluk5caVIEVB+gCe6/C8BnrZdHryQX7Crhg/NePD/PQEr2K2v1F4PuI2PsI0b7CLxobr3OOTdMIcXQ/7aB91o1NHcEpPdvCKYZAr2grjcarxMaJX4tA+5oZ9sPH4Yqa7jeuJXkV0nN3bdA05UHfAGOJF0kruTWDOD7sxkhMJI/rR3EtAuQkW6jag6J9AmjjWzMCCxLjVPd4+n49DdXHoCI5N6ZU4hENfHmU+jabxctPchkgrMZBkJZRg5xhp7ZvbN8U3lRMgJdiN+Kh0bPlUTsd0OlJsQKOflCZHyjYN0rO5n0QcgSQ0YnNSZRCTYqyeEsPduvmchu3QomrVtuxsI1Rs2XSaqg5Jya+ZkjwkEFOl65PCTi3K1MqcimrV7EVNlZJMyn5qdglhyYpyGJuvrEnVOkuKlzGligndxqpaU7fxf5rtobOn47E9XQehDVC2E5K6CZ4qTG0RM8RqCqFu3dK6uc1lqsxImzZJm/ZKTZukpr1grqb1LTvcrQPdfbBgfZpsZeawhnLAt5mXIumelDsX8lR4Zfb8U3klqQ1s3oiUQwevRg5X1MrhqrrsacqkUHkTPFFXbvJEHuu7QvtO0hxNvDTWYi3w5if0V7FGI2U8NoF2MjNpc05NGc+XUMaDXlyqMl7A8VKQ5ngpSDe9FJD4TwaU8XwnKOP5jRyMSLYynh8Oijztqcp4fmvQypiOoRLWvTb1Duxr7DL18FDdnFQHKgmDY1ao6c2cze6IJFWf00p0jZUovmWqcvuUTMuscKfCUrMXJZWlprSCxVZSLbm4qJrWxJmWKE1Cs/N/qIWz/dA2Ffjg6DFlUA/Y3zvUEy+zbHrtJi8WpunKda3Rreh3vcNspDAx9CxI1Qcwo5m+Djja6tRonqYtm7ZubGlrcbHNqD29o73bT3PsOaFka1KzwJdTh8iGgTpEpqFYxSBVzWu2QpalJmhxW5LCoWNzKj01aKpG8gn5sF3NVG2SE8JMabAy1pOYxkrkjBoKs7dpKvOf0KZTmiAxyMI3lxyuhTsvUt6Ay6zwKdmqjNSG5XBlhcb2Bfx56XmZNOaa5iph1k2CXYGApsCoQIamwjHWHG8amaskS0kQ+ZUVL6xVujTcbNMInC3l5OXmMyxgWFhElHmMzxeq5oWkuyTVuxQI1nq6IB8MoViI20J2QbiEzF6EcEiq4IVtjzI9yR6lrLoXwi5kkLY5bleQBFODRpZlijKHTVHm0miLlNy5CJiP05o57azMD7OTG1SyPClj/agsHC/Ha3/C8mTSeEweZFTDzavIUP40fW+oa3fvSJltRgXWNl1ynP+rq9/+xPwr/m2bUv+iyE+Z4TjOao5zxml2KI66hqLiM/sHh/th/o0Nfyj7MF8q5MfFMzxokgKdSe+9nQmyNtI7ysuNTo5CHlumm4ClhkoNhsrotclCaiel7uuB1RGYScOqWYOtWTKn6NsOW2+9LcPDg8O5WKIMDtMqutgJt8pnlVevCmed2BCnrH+rdsYPbB0F7Ns6KnVeLOMn/vr8W5xW8Gzdsr1te0Nrm4yQMsKJA6LP3Xmgvwe+cDpNU3TejQ2bm3c0NWxtyXdKm9RSq4utQUTr7BoYGIS2GbzRDEBJdNS0uWduGVInXP4s/EWZFbBys5Sp0ju7evaTUnhbPzS1dy8/sfpmrJRQZAuXlIFNhdVTjIOvylrECpVFoRbXrGKnLvmSisojQ6oZwKS3SU1CBeIFmblEpbVp0yZrVRp0GpH4aXVxqlHNpAQtvlu43eLP4r37RkaLY73FXcD2jPYP7ektHowX15WnjsxJKTAL98q9+8EFRE41s5oUMOE8BSS0eip7m1Okfyu/4vkxRX3UB180g3v20Tbw5OXopa6gjpB9DU/PvmHugV6b4zP2pm4ns51tj73FLCxrIwOOxWecUVxGEyAg/y5rLlaLy3YUl7mLy5r3FpfhxybzR39xmVx81lmhk7NQDyfB/Am9xPWi1T3KXJeWwl2pe9qkRsP3aUhm1lR7CkkBuTuVIfgsIcA1qcayk9Iw+yIlMlsQ4r1OdOeT8hXeUTozvudEMB6cNBDezZgIvUciUueBk3anA5TADG85et9JA/TNGL2Pck81MZrUmsSOswdA8VKX7EkpJGYHKsTsgVCWk362AfZXykPGPgxiMn7PFhZ5prpXTCqYNYhRuWYNg2Jl8MDgdISTDm+j1N2s4x/E8zm/TykKinPScDxt8JgwQs3gc36fUhQknfWOrRje8Lnt+f1MT7HZsGe6zadWzN0QdLMrnSnaT8oeo4M7YKVjYPeM69DZlyKp61D+RjzdJVac4UilHIZFdWi0wjNsJVzCRmD7s4I8vcqVkWo4eYrIldikVcH5U1VlrVwFy+vVFRG5urJKhrarXFMRNo1YyDWROrkGLqFqkFJtGHq2tTW18O8Eb0zhCHRqw1Vw3hSuLq91mzOCghzDbhQIdVQisGLsxiCOLgHPT5FajH5JAyMp6lYF0cQpQ50SqYU6baQOvqMqy2vJOxSyqgxXR8hFFLBK6NRWVpJeb1U1PEZVE60GBamsQbkqydEUdH0Rra62Egq/0OWtgt6tUgWNXqUqUlEDUFerVMHBlVJVVRNWqqqrw36HK0aUqpoahKytqvYkPpUCR1fVM6rYwndWtRwurwtgqQ7DqmpeXn5+vqeA1Wvn5K1L8TPVYqnTYvkOdVqs4GETDCt42ASDkyk4uIUurZRDyrOFGq7/RJEm5mliPoypspfbhZq0CM6hNPi6FSFNLNHgcEpabnmbkko0qUwT5ZoU1qQqTYUtMdiAhv9cjRRv5TWaBM9TZ2rSWeR/SoJfqhbNv16TWjVpgya1a6JbE3FN9GtijyaNauKgJl2OHQUUbqW7UJ678YSSrQQFWwkKttI38PcC/uZ4a6QlWNpj61BUpBaXXiWvEoEAdg7wrOVaVOESixdVjkVcep3LVbTaJYqKGsZUsbi4aUwTi8ujY83y4uLi4o1jrRvOVhcXFRcVLTr3KvU86CKfL96BI59Nm7ds3YYkOsYuQKTOsVZX8YVIsrhrbIOrOEZYz9hCV3EvYbvHFrmK+wi7aGyxq/hiwvaO6a7iAVhoHMQvdWjMDdolY5qreBiWZ0dAq90/tk8sLjowVusquhRFvAy0oneNvdNV9G7C3jP2L64i+BinCq7+gJCuwtXs1biRtdFrHfRDDvphB/2Ig17noB910I856PUO+nEHvcFBb3TQmxz0Zge9xUE/4aC3OuinHPTTDnqbgx5y0MMOeruD3uGgdzroEQf9jIPe46D3OegDDvpZB/2cgz7koA876CMO+qiDft5BH3PQxx30CQf9goM+6aBfdNAvOeiXHfQrDvqUgz7toM846Fcd9GsO+nUHfdZBn3PQ5x30m+JbCT77V4f6bSH0Jj8cnNXOqXcVY29byA+Rzg8pgx9yJT+UKn6o8CaNkO4sfmjV/PDU8MOLvT7e+crqXYugBVsHPV5owcKhGR5p8/iRLviRAedncGod9Ne71kCTOMjxshR+l72Qo+dEyI9FbqTJJcO2dINLEfmhRigEF8ikEDznDFIILjyTFILnnkUKwUVrSSF4Xj0pBM+vaIJC8IKKRigEF4eboAm8MNzoyhCLcptcQbE4txGqv3pekytLhPIaXdliSX6TK0cszW905YplBU0u+PAqaHTlixVLGl0FYuWSJtccUbK0yVUoSpc2uuaKVasbXUWibHWTa54oX9bkmi8qljW6FojwgkZXsYgsaHItFJUNja5FoqqhybVYVDc2QAMJ2gsiJHTSAa6tW4KjEMe6tKqoPyFj0MV01qG4ism8NIBbAoA5bGMhuTBbBF9AwliMO0I44dDHcc2JC13FWHK0OIeUAZaS9k/cPaa+YiwfJ/xoVBNRj6vPC39rcW9xNl2kluBCzxv39fnZNnVpe6AkdwPGVbhcG49DzCKeBvdo5YwL4BlGBfD08Xjwjr5MIww8g/EsA5eFoj07nh3PyalEstUUrC/XqKEguIOuxTOzL9+owzOrr8BYjWcuLp/X4JnXVxjcgjhnJpKYy0msxasMJFGPZzpfY1PUfFxhU1IFuLc2k2jGk5LANYARRfmXTRziGqwfby/aUOTqm2e0Wth8Y4OFLTDOpoMissAYQCtvwkHRFlxo8vmQpKg5oG2nlo+4thttaOWFxk6Eh2Fx8sEmQ50J76pdcSPerkOWBK6O4CVqPL50g66M6S8ZfXBttKxrmdGP54KuBcbFJJ4IpwZmZgPIbAhVBY19Zb1XIMURSlF1jRj7JtqXx5fHV/AX3A/xuL5g8HzU7IBJX5lDH+3ScX19mbgDr9bi10HzVQm/uoxeSfRKx6t3mq9KObV34RXo1E7vRjvVW+30HiodrlgUtQwFMd3Laa7LBQwVT+jn37k/i3jpCoEYjdyuHyBnbxIsMqNF2KVWIaJdw1okza5rhHEt3sdX9ZUZH6IQXvJ81Y8QN3KIVteNUJjZACGPY+Js6UYBK8lwCjUBV3p9uTHFoxCSTkhXBbmTA08TBVpi5qsMfhVmz3LwzHZHX77xSVJ5yQNaABdzyNAnQ1FnIzK8jTPc5LoNWW0WBLdIBLfKBLcptwmYVR4v2T55qGTHoYlDJW2Hjh4q2Xkophwq2QVloUMl5xyCD7vbKU0/tU4B0ryT07zAdacgh3QTkHf4DL0PqFiI6Hh/j1XJe0gTjDsQ6vZy35xJjwQT6vdT2DTig3SEfRBhofqFy3e0f3oihUc4hQ2uRwQ0uygFZIMUCs0UHqMUMhIpwCddOTugK0QKwUQZSQEMqoiuLwtS+proq4SmF2JlJmJ9lWJ9HWlXIlZWIhapdh0Ti1zPCXIuN9FXZXyTYmUnYsHDXDn7lKtCrJxELHiOQ6zFrglhHKVY1cZ3KVZuIhbUscqN7yGvasTKS8T6IcfSXT8Uxo8pVo3xE4qVn4j1KsX6OWLVIFZBgvo6UX8FqhfUOYm0fsNp/R/q3gQ+juM6E+/qey5gcIMAjyE5IHiMiMF9UJRwk6DACwSpywA0A8wQEHGMcfCwHRuSLFs+dVqyZUcLSZFir5NfHNu5k7WddbI5NgkBRpKTOImT2HES21Frs4ntjWP9v1fV3TMNggCo/PLPLsh5XV13V1dXvap673u69A+MlKiWMbZ9j/KqcMKhKoUaGtLrzHqDwmWL24KrdHIlW3CkI8XNEm11fH9IvtCMStegLKCyiLf/Y57XgvRjxtWg0MUfIMWn7U74Q9y2W4v0kGw9THbatsM2HMJ3OLk+gnDrgzBgth25Rhzfj5Dvo/Bthe9OJy/SoYJAK7SYrKcor1bYfENeu5xUsOMWtz6BVNuQareTClbfkOrd0qdk6A8h1TZoDiFVFJaftAb0uecRHltk0BPCALQUe4AtXU23LcUeoiuJyC3F3ktOqFnB+TBbQt5VjsAFEMaHuoe60l1xIiRwQT2eGvtLxR9Z6+zSPrjAKUwf2eJxTqUqvVupIhadrPBY+tGeju6eAUmBx8bHhN4TS5EVHTnxrGjHnHthMQx0bHlizM8hLM9kEqOrtsBFSn93z7m+rp4RQFR5d91EsFtHOoDhJeRaXsmiY9FW7n/EKaiohVu4swqH2WTTqZB5qttuRnHuuf6Csra5RW6p53bKSn2lQX7Y7tgpw8qRTn34shHY0UqprwTLMIF/i1WYFqCDHxz6KGG5oKiwuJzoFu6ugBWyAHg5MDc429H52Y7MDOJysODKPdsxvGc7EZy8+Kj/6iQ9CTQoK3B1mRTv08oKbI0F0dPoIN0+vdnIbtj7FVQAKypsn2ZPTsdmE5ewZ1DTDWM0qbH+iWm3V+707hTaEdtyIm5secnbG+0sDmWzwBvLy4jbU4n5+dTstDI5fZ5N+EYS9j271zcyZ7v1ydT0+fnxsCd9tLbOe95tl7LpQxUW0YYi8cjYfs+28vWPm9NEYo/Ga4hmjQQZ8Ui0A7aZ3r9xc3q3n+wSc+plfwDc0lldvWGXD7Pidf5sm23wBTQ1yI1NftpR0QKlwbKgGeL7KXkcqIw2F0wfHYYSPhnEUPzYMsHuiVyMI1BD3YbPw7dNVtEt0dO0gkVV0oHmhTutRC4tL9vCaQWnW7eTzw7ujjCAlxt04MnXPBIWSTgXZQYtb2gcVZhJHwsdhOYsCVRV1X4CA66fvhBV8ltBLkCpMQCLw9ANmeTDYiD/aszEHFeA4T2tQBgSSrRQRCYd9GukBR2EeDDYJRr9r6XVWP7S0rhMEpRZP3iQMjo0rcnCZgkFxMLwtMro86PZhxjmLZh8tok5kw5UlUocqCoWFBZI6SFOhOYH050fKtf6GO3xLEeMAYdmKchPeYQYKrwdTyTKFWLITWQO9h3vGYFEnmTgKITyOnWTB67XVepQbv7ockJ+wSudt36lanJzsD+NYK6f99zpusy4ZIIXafK6OG25+b01uYSNW8r7QV7XUp7ndGenhkZbIqE+3rQpiYTa1ma5NS5mJX8pvkeYPBAiYI71TBiKkot9PnyLpfj46AheNhZ1SROCYGq+HC4sKOK0pIzc5dy9hSmaD/MS00nyAAIHBPRlSx4o9MHhi7vR7CRremnO7EQTE7d/ac9Jml6I0Dx8FOEhbkjgmELLuxxZA23IEAYusQyP01oc38e2cQWpBAN1CnW/brZysSk7E3OppgaHgXqaeTkoJ1qbiOabxLTWCY7ngm8k2dRAJk3nxBAuAa2hk3WxbtaDZz9CJ4ZYit3B+tlxrJBOAt30NM4Rz0Bz5Cw7x+5kd7G72T0swZJslI2xFHBNzgMPbILdzy6wSTbFptkMy7C3s1k2x+bZAruI0/fL7Ap7B4uzWlbH6lkDa2RNrJm1sFZ2ACAskzMzFxYygjcpSC5MTI71w+es7XOz/J7z4IfEg1OXm0ne7++e4EK9idkrufxZ0I0UrW1cGwV+05OoPTU3eeZQpzb2a3CBX697TCMjTmf0ZCdgoOeyjGOIYw2fHezl/sERnmOK33gHwdVFiYhNDXa+4uLPUMqO2dnEFX+GWB3eJ7yM7Y0yckz96RhBARLuTwIkPDV7BkcsCnCgTcC18pM0fxIlnEqMXsCRLYDhxxXIPMAYYGKM17kg5wFEJODhUYq5jouJiUkCOveOaqtr45zq5+QzF84+lcgzJB5+TDx0ELw9atPPWSf58GF2eHMvKacIO9uRsRSBkIts1281EbOpIShs+YgkgST/aHlLBOf4cZzImXg+fRRfZcd8kacQEewX4OLUTDfAXBYd2e1fnjzskjr5+wpTY4va2HlTsefIIEGt33XWZZ31WWeDLoqxQZiRkXfKu+G7ym02Uar3GHd1QlHMuieVG48L3pnJKaJG5O1MRXWNLWSYSGluqMMhYzxPdBznq4Eln/om0/FTa+ksr7aBzh3jDS2m84rV+jjO/XDkCNLUDNG5uvoAuEet9A6tv/R42XHzBOcfT3pO43YYQI7EKRnD/usRwNASFwnw2UFDPmuwc4Z8l8Eg4Pw2Q77PAPQDtCXlMYOlDPm8wWYMA9C0Fw35kqG9x5AXkfJD+H0Ev8fxO+l7j4ztOdj80k5jgz1w5+KAHDBD9z4C9933sIA5vng36PTiBDMDmcUB0MucPsAWr0jY5AO7qknBh5j8XmgKPoyDANf5SNb5gazzg1nnh7POj2adj2adj2WdT2SdT2adT2Wd0L0p3+YzJR8224LtLITJkLVzAE6lXcGkLatkl1GpILuMaiXZZdT8p7G21AtPQ3TR2HrahBGf4tM+sOmlp/0m8+NfOSZ1tIPUiX11sXEnSwB0U1iY8DVjesyImTFfzB8LxIKxUCwvlh8LxwpihbGiWHGsJFYaK4uVx7bEKmKVsa2xbbHtsR2xSGxnbFdsdywaq4rtiVXH9sb2xfbHDsRisVtiB2M1sXisNlYXq481xBpjTbHmWEusNdYWOxS7NXY4dlvs9lh7rCPWGeuKdcd6jsntZHuoV95JtodgCDJBCtdMURS1642j2NUHm99Hdh/3smqrakg7pkmL2itWNSlChSFw6VsmbcuVtL6S0DkOFt2mjZJvgW3fR1u64GcU9QCyilFWA1LsdUztB62DQ+YxU1o0X7XiK8u9PuhF1Q35V3r9gmFBkgiSNFKSu6VGoOOwRqt5OLiSCFqtQ/5lEU9VDUX9DYaIt3Kkn8iiOQptqbulWwGew24Ddo58O6BzlI6YZt328KuwAhmVEnlWB6ksqeFJVB5gOuoRq4dUc6PKNRj5g67UEbtm0D/qWyaV02u9BdBRumNlqDCpwUzkEnI6Dn1PFUpFqnWSFJNJYRLqhvvg2/9TpKBZSFqZp1diaYo8wMuzupbTRftH9bnXkrqpXywg0KyzK2gg7Ewr6vtkPMVd9LgTEmw43s9gvvGCfC8qfg9yuBdGHGHKb2iFGhcPkdaBjJHWKfMRAHIV70ZpiZxA9aXo7Z8W4cmV2CTihZcQZexaVC7ugiO9Oi7Ap5Cn+vJnRKLzdjh5ytm8xldiU5TXILKY3CCLqdVZQC8OuelOEdN2OHk6dc1QcwARSlGL0Rr8LGKAziKGipd7i6ljGApe+NP0wi+LznT5dfB97wCChPxOAEgo73qdzas/gb6qvcd6xzJa5532u3wNDfmuh/G6fmKFzGFqZAES8D7hW9EHYP8xqZJV0RK8WkR5CLdpI6oWQ+4WBw7XhrDt31vKesvYPuTyfkZx3pPUv4z0hKZW8ut4kR9kpF1qUn98jar3Eb5Fe0X6CD6td7BHQd+JgRKYAMoToD+hPgn6bu0pZj3K3O/gcTZUni5PK3i/qEpaxwt/wvViwgtFP+n6ybafZj3l+im2n46DjhW87peoo778md4t+MCeId1EhMemivDhrlDIS+jfsh38cQRTcgRjKb6CEP2lpC6SPsvo1fho3W0bgzwq7EP6nWX3USs4tH1oW3pbnAgtu8vRDmJV8QFMDNetKoStsL6uibFeiLk6i4q4tLGBQO/+lrD35eSDSbbdww4Lk19OME3QBx0FhoPesDbYThrl20ZiYXDbOnHXzWchQ7nQ9utbz4JL/b3l5GOXqAZvvSFgCiNn/+zoW20IyJFBNCox6YgJ3v5WMwI7RPXpeqvpRydgkis98+/KA1LGdciH8tC4+ZITb7U2s6nMJLb+u8AEJ2A2c3buTpIT51LUXhFIb/+scTqx1teLL8Yr0s6jVq5TI5V697rs7cYfnpe95UW6lbK5W7m1Xl7IwNpdg7wwr8Agtzx2CTp3TeoY+hTExuqCuZ1CqauvV/ByIb7XatgvCbxx3LAbW6mvbyhdu7mU+qYG02kRuaFVLWWlxWYJti4hVgYeVydr3qzAVwQ5BRic3GookCuD/W5YbID9bmG8e78BYw3yQd9BMHo0QJEmn4yxSsaRgmxi4wRsIPG1Cu2KUJQ8qOOx8CImd8A+IEWgTC6v2FLJ6TZOd3C6k9PdnFZxWs3pPk4PcHoLpzUwqq0xLeDXO7ETJPHNV2Z2QrZE9nVCtkTxdyJcDXRCtkQLdkK2RA91QrbEyOvEcGzmk2wJasmCLExsJjDfJQalRbBwQYzMMnRU3pBhxbEgcpc0HraH49l1Tsn4LiipVMzVwNoKt/PKNSyc8bkw5uljuRuAPFWbN9Xpf8e2J8/vkCc/dDIzcxzGc3CO13YzFfE+jL35uX39HEKeojXeDJvZOVTTaLiNH9z7MeXuYq7R/M7aESZgbvQNy0KDGdZV+VYlJCF1Q4HmlM+H3iL7qWvTakbD8QBcckAO5oXyw0QLcB7mwyY/dWl8P7QHSZ8CTfa2lXkZG48kjKIR16VKmmVcXe5j3NSzexSmoJuptKUYH1LSCid8c5HEhwQb8Dg07W/ABnT0Hj+F/UHbwqOyuKhWSdJzsneDUQyHblQlPXFZ7RmbmfcTSYyOQlVGTdE9Efu+j+6J2Pf30D0R+/4ddE9E3PtOjiUxNsMeXejk+ML0+cTswtRkYmHeN+P6z3j8z7r+Zz3+C67/Qq6/eWQ0NTYxOZkIHoGVu6mEKNU87/iez/W9w/G9I9f3guN7Ide33/Htz/WddHwnc31POL4ncn2hLCRqBlWqbM0GHN+BXN9ZxxcWJ7Nxzzi+Z3J95xzfuVzfQcd3MNd33vGF4T03X717bhLnpHr36OxMYl4fE3dj/M7onkrAMW2MiWsx0iVhjWr6/PnZxMWU/VK5m0IK3eBx7PcmkjMXUyHXRWHZ9PPYFHbSc7c3mPcRO3vupmCyXChKR4dKpmBcMOg4KMQcm5k+PzdxfhqG66bPK7Op8/pA6nzP5Yyk3hsZOsC65I4ubPOA9JwdOKn2LMzOmIMDZ3sG7z7VoxGp3XgHai3e2P1iMIro2AKEEIKSSE+JTSY01Q12quX0VJDL+s+JbTxzKnEhRZyHV/1p1VdZ45aW3VC2DY3zPWCa7llCGx2tOz+twMqkOgHbfWzC3ctdtTMbpG1cZyua+bU5mByf38QGudjYZDtZSh4dlc9P+9xqrcE3Easuxy/nu3HQUNHW5q1p6ncHheJWGz8N7IaNsMQ84BBm7ZlAn1tIokmNg9DYG0ulD3qmlNVNA1tj89BRTI210VMdh9lumiqUqURGFzvb9oa+Sju+Wgbs4RSL4DBjmt0VGBlNZO46mpo4Pz4fGpmamJvDi+N8o0mv5ERiKuWDXqRw6XfyeMbIJX4N9M1jyTPaMX1+MhUcmcjemICEgcW71CxO/h1XN9hE7ufHhq7tLDxLkeg8Z3B8YvTCNCbgImhxrvYrcKOdsjfmC7OxHK9g31zvxOXU2CkY1xxX52cXUqGRiRwv/jidnTOXgyPJGZSBx8SNryuREQ/vp4YQThhNHjt3pz4Co4Tn7hTzc6HTGBG8j0iaMtC6U5PzCd/ENAzaQYV0/mZeETqEOXdlKjmD5pNHodGJHnF+jkpMTZ0L1cB/7F00X1yomdCgkTo67jXFeuP373xK1NqzE5n5mVnO/rvnHWK3PJiGoV1aJnShPzRusmtR1rxjiM9tNpVmcyo68nzWnHvXqVqoshh2J2Q1zTeRNTVwj23j2KQHpC5sYDihK/osGoFlAsTtp2bxqafmeDFoyLDzzE7q4EhOrEInNNsi+jg+ktRsPh8BoDN1fjo11jc9zzsIqS76aGwc4YPjyDzuTYpI5xzbOavWFlmYhkbwzPlpHBeNoS9Mo0Ogjgf5OfbuW5O3iWi31iRvi6B32PrDPB5l1xbJ8zYlPidap815D2Eo/lybO3LUOM/h5ZNXx8rp2rSg9OpnrY4svmKK5z2JWR3P/SKdb42SeKEEbpjE/bApzfoDPP/cKJoX1mF11rljFMVev0FyRiWK7BULWp21OzBRVO+R5Oqo2VFz42zdgYWietWfV2frDJcbx6SUNDpTzA1eM+9dFG+j9sfgQ9HWb9Gcj4sir99rqcNTrBstLjZmPLzLGd5eWVbAWb7AZKVaWw+ltloyPAmTk00gjbUgrfBrbMBtIxTiapsoSlMjuVrq1Foo6IE04La5GaSFblsoq5ZmxGuNI6tWum1F5Lp4bQOdlZELOnN1tbBICROTtSDQdaurg73KugZSuosjRWMdosD0Jaxe1tfD4CXMXgZyPk21uaW+VRefH+xd1jYUXPeJwbslXuh6u58RGcWsh6Y2Zia1BRYug7mfg4pjv9ZATpeHR0uDz+3Wakt9Y7M/23XVFugE+tzuidvWZtPpgrC82dTER2LqZjDBWV+vi4FKbWmOUx3QXeBEy0HZsEFtgXVQD1ZI/irOZl1RNW43FPgeDSENoHmlPaVnypmZLp3SMmVTFW+vmC39hKz4sZ7kImv+ADPOcNSkLkPpNuQjhgwVvGO27Ut1wNAGDe2soZwz1LsM5W5DucdQEgaQtJVRQ08Z+nnDmDSU6Urmm2O+K9jIuWLoc4aG00cN6LnaQ/g9jN/78fsAfjiRBEiwoT2K3xP4PYXf0/h9HCk/gesSfs8zQ38R9y/hN2vA+oqh/DS8oO9n/Czc0PXTfg6/X8IP5jM1mM/UYD5TgelMA6YzFZjO1Mh05pfxO24ov4nbr+L3W7j9V/z+Db838XtANpSH8HsYv/fj9wH8PoTfR/B7FL/H8XsSv4/hB0udwWdl36QMixo9kCIKhfLuXCQ9wPzQwuK9si+U/5Ns8eIl+ZaDNT/FFgefY8zn+wxbvMzi+T/PFi8ptyDBb7PFz7MvsHul/P+BBXb8d2iV/btEfg+k9PeJ/E8if0DkD4n8EZGrRJZB4isgvmt0+8d0+wqRV0FQo/rXmHzxT9jX2J8yx/VnruvrruvPXddfuK6/dF3fcF1/5br+2nX9jev6puv6luv6W9f1bdf1d67r713XP7iu77iu77qu77muf3Rdr7suy3W94br+l+v6J9f1v13XP7uuf3Fd33ddP3BdP3Rd/8d1/ch1/dh1AYLZbucHXdd7Xdf7XNcjruuDruvDruujrusx1/WE63rKdT3tup5xXR+XPymLN/0p1+8noel2mqSo93e041CcGVCai8O65M529A3mq+YX/1Z+Cezil2BVu1SD7dIIv8uDel0pLHTu5Xfh3fxSEOWXwh08s6L9PErxAe5ZsqddypdYKTT3UFDZrfxS7uelbwnwS0VDBwTkKhvJbufWFtLAI+06jW1vIg28HbBTY7BIJ+2S7uyiXdJd3Z3YJd3d0ykFWLS3Exp4VUdIA2/P0U5o4FX3kQbeXmBihtm+O0gDb39/JzTwDhwnDbzYiU5o4N1yshPKJAdPdUIDr+Z20sCLo4x2GHSCzF8vpMmxV9arxI9gx1XrVeN9EBHQe7X4HfA2evVSnPVrZq9RCkQgnZWzEtphq63bInVhh03YvZElAnZTMjE1pmVIJCBDMgEZEgrIkFRAhsQCMiQXkCHBgAxJBmRINCBDsgEZEg7IkHRAhsQDMiQfkCEBgQxJCGRIRCBDMgIZEhLIkJRAhsQEMiQnkCFBgQxJCpCriVzNGRIYyJDEQIZEBjIkM5AhoYFMrPPsThIX6GIlwzLt88V6O9k4bMYckUsBPHdkHAjDR5WyYS3WN46T+GNq+bAeu4OsT/ZrFcPGLWzceJ0d1yuHzWjVuIldagZxYv3wGyesetpaPCnVQzGKgZyW66HvN+Tbc8zHxv1WreMMQMMPKoeNwHu+1hvEsXwTMpHVoKY/IyOX267GIw+P4sx+VI8s5o8acJjwwDn/vRLkAd7GOiAZIHdCMkDpgmSA2vM6u087JQQDwlbH8nK6ACf8ODjuHMo/li8t5r9mda3ExnqLGHJTrR5CCk6qD44GwmMYMGGmwr8bxVlHSEwAR9Sx8eJ+gkWe0Ptwhm8cwxm+eYfVl9SGStIlaVlkY1jHhkpjM7CcBcToKOstZ0s4Xiag6DvgJ6fLUF+r/xrgjH1Aqe6pC/gLnnzzTTNg+q1T4tR6O8q2BmBeI10WKcbuv3UG7tg8Yp9yzqWBAswh1M/SubRiFGr6vxlon7tF+1Db6GgXAz9um4yeC+4AftwW0uvsonQ30GcZyNvktwGNVhmi9hqx7uXqZIkt1tucxoJcwrVsE40gK2jOPTiaH/4vMpooP5lHTYQ20RI4C9fTOAo3zluJpBZ7l2gP3RrFk1RE5aCORxkLj8sQUEgCK5ZawoA1NtgzJadpwfgab0i1+MfUyvebF3CW7ptEK/unrAs4p+cxeWP6rEncqekyQkmegtOgLALWDEC7f9RbyXg+GtdHzHC3TqGz3AncbjRsEToWDukD89Y8Him88uBoQbiaXnpBMrwdzWRdXCE47mwK/iYuwTMZwJuYrysIF1zFeysww9Y7V/B8Aqr7XWg/gNP6E2XhXXjc99AtuhFSLKLc2HuKcdYEiQTAVkdD6bLxrSSOEIjNF+M4CpqQV5P+8W3hXgZkaxhgiz3IePRH4G+Obw8fhP8HyP+9wh/akPDfES6F/4fI/32smKz5QTUSjWWiocYj4R/C4yMU+IgI/Gg2cGf46wh8lAI/KAIfywbuCn8JgY9T4IdF4BPZwN3hFxD4JAV+VAQ+lQ2Mhh9G4Mco8DFWDFEEUspMmrHH2WfHq8ITuH+Gwp5kxWhv0swcyhdvFhSfB6jCKd7usXx1fE+4CdE+QUk+Jsp6NltWdRhsFfQ0EfgMK8YZHilqOg+/1xqpy88ruOvf3jTzzTzS1Exvj/AWXWJD+2LPsmP7oIL8AqSb8Pbyvkj94b4gdCohxZXGO6Gvj3J8SdxWfU3FW4Q+JsI+iR4b4TjqiADk9kDsU9zn6YuFUM2AtqaI5AQg3WcYfduhcA9921xpcyWJDkBllCDFz1CKZIgSoFx0HmhQwJyf42nH5fkkQxBNCSVDNAR8HrIppNsZwCigGhhqH1MwCpByJ7clOQj9ztdhXR684+tQTZV/mWt7QgM58tmnC9Hj4HowrEL57u+MB8d3Wr9IOq673LBdD4YNhP3yj998M/9B2O37VRRUHSHhEevXKGb1eHV4J25+Hf5bhT+UQuGGP41aUAtFAePVZPAvXcVFpqAUejW9n4xivrQ0vt/672yFe0NNVHjL3Pu32MrT3P+3HX+N+0N5NB2B+NXTJI+FEtDwVfyWR/4dJ7LOI/8eIu+JFG9FRX6fulgUT7srOvY8nhW1io4t8b5l/QHlGeGf3x9yE3YRbiJwr3geKJ5Cx3r8QLge2awg6g60DpWOU2OUviMGo7IxxvH7STM1ehlR6Ut+Be5eYHC/SidjkP/S9DN4L9BQxSR4Wfoa3sZ9DGqpf4ocgUyP0fbPqHu8Kqx+fJ18h+Lp+EpvLVteoe6AcC58R+/863jn0GdN+/HOdVXX9F9gyPsbPO9L0jeQ939l7K9x+SyT/waXn2EK2RC8T4X1QGi7DtWl647VS70NmPJetf6GDcWPxaWHX4O9QeqgKgwLRiOQoAqfoo76dwwScukyCAuly4oa8WD/AHOSECxiS0U0jsGsII3zS0tI/12EUPrvsWuxz4lkS3bQ3yIIfRbw81T/n0b9LS5PZdC8vkI99p9Qe8xNmNR9zqQ1T7P655n0T6j7Fxijy70y0S8y5Z9xuaR+H/QXmPZDXAb1H4FiqQWd2X9m9tyOynyfXb3WKZ4V0/gP8YjO/F5OQz0GZgz1uvV/6Kn0pEozLhr7h4wm5b+wJ+UfMSCZa72NMtWNNHJx0wQpMdN6EFbT0hUX6UuyoJSLsbiZNHJhM0mjEeWzvS1AVH+/vBwpWqSx5deY+UHZ+oBMUophKOguAz8eT2l9GPbW+DRj8MESirpDbem29KHxW+nM3/ooJdg/6k+Ek37Tz3sfDToEC89TmRBHpEEWur083W1IRy/ncRlj3Ff4GMdH0I9BHet2kbPow2LoEl63wYvn8jSl+u/oXrcv8dGRdH+j4vt4Vr4a/dR41PokvHYLLygCR+tgwBNawHjs3nY23iFUgU2YtNfz8GZJFZjrAe9Bd4WAmfB9mXw/jXx2wBdoyML3s+T7s1QgfAOO7+fI9/NUJnyDju8vkO8vwXcvfKHsLnL4VfL9dfiSunKe4/sl8v0KfCPwhVq7iPtV8v1t+O6Cb9jx/V3y/X34boUvlNlF3D8k36vwrYZvoeN7jXxfge9O+EKFXcT9Gvn+KXxJ/brY8f1z8v1L+HbAF4rrIu5fk+834UuY86WO77fJ9+/hS4rpUFcXcb9Lvv8I31vhWw7pD66hesLyDw0MHUwfjA+dTp/mhB/Ll6DtafD5UvGtMthwaZWGqo2efRwHD47oR9maCOIUQz1x8kSPpJ4A4Gugt29wZPDkyKmOIz2+3on5wZlTkNUIDPSc6bunh/v6BzhGFnlvDOntPc4UlQJI/RjBkHoR7UQYQOnHUoCGH0ttRvdz4/K9u5o5jeLsaAL0CwJLwBprbfHCPYq4Kq+KkCeUG+sEnHgRF9CAaAak7TUOWAVsLOhylviKSQIJ/yUIE+OqBuVQfl6Y0wJOCzktxRsPcIENBQpUKimPYRWq6gzrzl5FxbcFMQ4OYws5biyVFTVKE4ssmWuihxcK9HB0BmSgatDsxBLrDZ/FQWwd+U4fxDuMIT2tx4mQfKeGKKIH3YnZ7roeNJaYT9QcmZ0Y4/1HRvilUs85E0Vo4xEO3aSUEKU8RCnxFlS68SBpBsS5Edex942mJie5qyAxSZrOCYBJz1ziPtjpncX5Uq67YzIzntDvn8F58JwxCjjOqek5bYRKWAXmSoeTbmLnhqc2RkTyIGBf6fiKZ49DS6cehSPXVcQrtuc2C288oTFno7p6exjqBzEtvY+XsOrkUIlH7ufnXDrEC2Zm570pU9xP6TpzzoefiEFos/x5AyMQw5nAgfE7cC7sOr3KM673bFvfGTe294PMPocoLlcAH0DgvwkuKxqgjM5d9MI0ZtPZFaJziY2iAFiPH6B6oQizWfENccrICx2ajSDADCmGPHLZK3aUjXSZwrmwwMiVG8W5QnHYOlmgqmyd1Aj2Hv9ki8/pclTI+tF4Z6RoN3pi0U3XyyinA1M0r2xqtlpu16ZI3jOpbKTrOj1F9p6HZSOT69TszMUJfD8UL3gvfewRKmjusC0jURS5LsvDSuQyflcASbkKRQH58ZGmxoE5vNE5FxfI2Hg48k4LVF3+sTqTQl1jI45I6pT62lqlvgE/AFDWtzQqDQCgbGiMA4yyMTyShNjA+VmSUOAfsECnbGxQGoFU2VRX54Xuzn5wgZwPTmlqatDF1wVFMRxg4ZwLeJUNLSCNzTgVa+JnZrX84CyO47K6ZpAWOjNrBJplvB6klnAta1tAAGwJmMv6pmBu8+OwrD6eRYesw0FdwXWjuEqvZzOikYDajJPML0c6KK0o3WlWl+4rvaf07TQjmgcNlmewfKCpEzwkgxxvkcGKDVZisFJDBgpIOQAYDaXSkLca8jZDjRA+pLrbYBwfUttj6PshzWuwWkOuN1iDIXcS8CPQINlZw7iXUB9puoVgpN+QgS8S5FMvSUga8pQhzxjmrCHP+WYZltYyZuBAMIijlVAwP1D2iMKU7QB6xAIaSAz+QDDESvP3PsIOsB1SIIZt6sAtiyEpCHyDYBygQLAAt6URvluaF5tAWwG3GGpD2CFwl9A4CR3G7zbwn0DNCrTDDzMvStx5VO6741g/p8c5PcHpSU5PcXqa0wFOz3A6yOk5Tu/k9C5O7+b0bZwOczrC6X2cJjhNcjrK6RinKU7TnJ7ndJzTCU7v5/QCp5OcTnOamaeaL3D3RXYg5sNJwQ7WLgVoe7xdCoKvUPhFLm+XtkC2FHB+uKhFPIoGeD0o2ukaj2LofP/fxEEDPH0Gv/hNfgn42iWIYAeL26UddMJAxwB5EJBWWL6/C8cA4Z0kLF2wi4SlC7eSsHTRNjoGKN7ahaVFybYuLCVKd9MxQFmUjgHKq+gYYAvA9PJYBQD08lkl4PLCbOs+OgbYtr8DrDz2WlkRO4CFlrwjUkxPojpCsQFV+zCBpgF1gqRiKwkcD0SXQdBNX2emCuLTQPw6SMAACZogIV+ltZX2sbdxtIzt3GbAjqvXxglpL2kAPG8nrRY1axesQ47rAlvPsKJYWo6bVhU2BwEwtSfpjxQZWMhV066g39qLbiSrsqrVok77qU47pP1WbJmMgaUL+NLxlqtDhcDcuJouOlYojxdbB6/C9GSJhPUCtBoFpEYtFhGwxFUEP5XgnEjst4kyC0lNgM9bHi+yWlGQCyN3CPGBmEc2DcB/ijza4dd5Na3Az3D8euB3BJBO8AN/KuIdg18/rHjBz+eUdZLKapJOWqdRVrk1gLL8TtgghbVIg9Y5hFVYdyIMq0CRF3a2aW9aRV5YAwq/YfjddzWtwY/DnRFkyCj8UlfTOvyw/hPxxuF3/9W0AT8OakbxpuA3czVtwg9rPxFvFn7zAviLw5hRvEvwu4I2RTzYBFO1ffB7F9CtOqx3E/hJ5VKsawlJlmLduGxdivXgsm0p1kuYVkUOcw04laFbhmLpWJwIMdcHkI1grrestTwT8hW9kC0hSShnhVbs5SR5pDYnUlZcSjIHIXZHCYVUqUbO2o3VP7yLMZ77ISd3TH1e/sBbeI0TbzPLso1r4p1/eVFuCfYkLGO+ra1vWUPa0xUgs2csKI+IdRlMf2GtBPxgsS7zGQqBFPsKnEWZiWEaSFN+ORAK5nGaz2kRXrtYjslYjnErInQoSMsxZKhi6BCAU4oKvBpahmnZZZgujDihJ+euvQzLBx8SreeQNgbWXroQrReQHePqG4bdPX5yre4Bzpk0OLqO330HZy6cDrLFy6KLaG3ZaJ03uRATGRxyM6D12OiVxLRBQGuwEKJfAcs2c0njMpJebm912dnK2osde2HjXbmIVOtybxs/g7f3iCyzxTv9p7UFWkzoQ+DlIGzkc59xU3xOXV2tvdyXSwO8W4HnAD614D/QxXw+P+aI7KKfEKU1/JmLxGMQO6DfYPFfVEqbAmU8tJwwzlQcKquYbXFKT7MtLjTb4iJjYsUF+wnohhz4DAodnhkMmJiHMNA4WE40gflpAgMxFD/gZTBFBfkUFeJTVB6fovIJ6VW1wrldlLQ/fAJaBpaqaQQz3BHs7rW6aA4MeU0H2TvhwPWe0czbYXIStHkTqIM9dw1K6mDq8rx2/OS5vh7tONYOqf6b7Mw5BRzyFoAu4YXvyIm6qi6rnmUzw93G9fR22JzCV5Xmdt0mmECMe7frclLleZ/OGQYbG91hUAKT7BkE0YfwX3qrIyD0jjjk3r9nBExJNxgB+9bqXvZWnSMJ6wyAZd5lu71p6MRS+3t60ZEmU2kIS/ecGOwZ6Ok2IQ2PjaPUmDbQd+TooAaV1vH5jcUhvXOlKOeQUw7ek1ccc1U9apyIm+k+G9fF231WtYzdZ9BhYLarCWvVlrh3yBXxTbdKzmambRvx/4rNzGDWFGL4BpuZdJzvTqjrbWY+sFZ3GoPeBxqihvQ/cHW6U4W3O9mx2uxYvt6z/f18z1syexcmJ2nL28/97uzrHjzqI787uervQE9HvzqQSkwa3T29HWf7B43uVDoB40Qbv1xvR7NrcMiuAV6ulytbVUPnef4j+pldlFOEOzbF0dVgqyOOjYCGVUYT7SSGXXt3YGoQA9P/RWY4r+fgMGPKRtYMp3kDM5yB3G4YwKR5IzOcZWACrttTh0LFDGnE1Az29fZyPQpbY1Jd/OGBxcUfGYs/xjB9wLvl5yRqy03Ue5OTo5PJoZxM6JUmpzK2noYyMXVemUiPGRngni3MptQk8J2087Op1LSWgcbPJBTexth4dus3d0NY74GmT2I61N83ONjfM9Jzoruv44QOPSR4ZqGfBCbVmXFsaJscngrqIJ6tf3bJxHbhKSotB7/Ka3nKeZLc5qjhnqmQUPiyu6G/c2Ieqlnd2N3zajqsmUNOu6DepMC1Lpe6cft7R22nzNw37wzddS31awPJBXIrJcbtdYW7sTUH47jxBrLCmA/jLltLq4h31bAMAtRhmNZDSqGhFBHjysF4yQSugi25CkIhhdUW7MEp1b492AwBA8tYsHIRLuyg4E6JyDt374ruJbqPu/ezvHxYYqThNkSoSuBUWR7ts4BxzeVSlaCirhA3Gboa3zsaoK2WEHGq+cSpholTBfSoqRbSVksRbbUU01ZLCW21lNJWy0OAIx0CwKC0yF4FMKJwvWYV2C5IARQ6To2AShdw4F9MF8MqoYtpldLFZ5WvCBTghGptWYn29WrAVKlwHJUr0f29Ony2rkQh6wnH9qTqxt8BmYggD96VVKsWZe7cDU+Fu6IkMsETVSXV5bRIvxcxHxAxCVhIxNzvxjxAMX08UQ1iPihixt2YtdxFFalD8HMi+0Y4HxIxm9yYzW6eLa7rECK+T0S81Y142A2+DS6Zl92JiI+LiF3wVPnzdLsRexD8RVH2UTg/JmL2uTGPuTHvgEvhWZ5AxKdFxJPck5r1lBvxdPbBBxHzGRHzLMJF4efcmHfyxkQrvRBVXuBZ34sEz4oEb0M0jdd2yE0wjOCfErVNwvlJEXPUjTnmxkwh+GdEzHE4Py1iTiBcvKf73ZgX4BJNNQ2XxKsxC5fJy55zXfOu60pSvUVk/Q5k/dgJnuQ9ruciy/o+BImVhVF/+H3YQXudlfsfZkAsIq9AOAEvSAkukxBLr1+mfgzZQPMW+dPR8E9Td/4g3Smfjpq4M0g+0IT0zaep90McUEv6eP/+KDkN7oQcIIRguPNhyCQ+jkKSAXTWkqchsAMpRT98/Ek/mrvk7fB5kl1b6Q3gzT0FISCVuz5G4kDc9QyX78H+hthYA6YQX2xicszB8fUNhQmYK06EVpRkrWBjkYWTWeNlDptW7D0OEhxtW05E136nBD53FibZJuaz5jp9/YnpsTlo36Q2xor2cmOioEM5BWHI9uqrXV+Xmpzom+HLNq6UdyYRJeaW4swj0MyirY612P9cY6cOWwYbv5gnlNL/37bNcqQXfDfYNnPA2e1tM/2G22ZDa3H50HC+MFdzFCu8SVrlOd1nFZfPY7W5sYTwCzsBu6TnegYGWZ8B3Of+vhM97KR66uyZo+zUzTLxvIBDbgF4Pd6j3lUVyFZ4M91l48qs6i7eNrH7itzSIHbHmlqUutpV5nV5/Xxu/Z3+4myzgo2XcoVfcPwWIkZCLrd3GSCcht0GLU/OLwgXclrEaTGnJZxuAcCP2HNVseeq2SIwmi0Co5EIDMAMNYiOAUmH6d3gLlQhClNzoz3Yt8jBY18ix3DzuP5GwB6kIMd+PQd/cWJuIjkBDIMrNedcp9PRyrxiDtm4bdm4+pmugZ6eE5IOxXFirU8N9J0Y1ABRC5OXHf39SmJy8shN8vbZcg5ly8GL9nK92Vg5tcl5iM10vo1r5u182TJzCnK6YCtWkvXYpG1p9J6VZxP5s4/jdMJGey35n7dtse7SERNg7jmAz/LnrhfX27Y4tFZvm0tcpNXi8dT8+IyQw8KnVVbhOcAXcdpEHK3/ZFdHv6RNzowmJvWBnuMnB3tg1BKGhVNGZ8eZnhEIHCQ5oPDtN9nJRDGHRDF4hd41qqcSdn0306E2roW3Q3kaxOlILehE9XyX3zv1ici6qLLbgf7Thfj+gzrQNgjMX7fhkD1ac3AZYJ/aGa7OeIer7IlfbtyNP3kvz8Rz4ceKObngTfkpQOCaBIHsM4u9NL53pnM96HlDKE/PZ7WkNY7VkU/JOrNAIrla10I12qOZHeAYKqKY0EhuObDKTmgo86YNizKfA0Ri44J4EEs8QCsOYogHuGUtMIde1DbnufmhZs69/UmQCJoQDPQCl/O24we+OWlqsg1HslT1no9/7RS5z01pvBPBDdLw1qHYawGs9K56LvttUfT4Jirkqr5TAq+I2dq14e+eIm+mkXM0/jebJEd3f7NV4nr4FHkzbyAXLYDSlN+7qgUjApXgcNYcs+ieh30Ru20PByJusyEab5HDoUjOwx7OxToIRXKeCfF5dQ/nRXJrAsE67+pl7cbflJDdxuOCd+TmRa3+HuwRHIe0reADYJa4FjvLtLvcHIdUNixBw/pzfRME8WDPuaGuVSGxt9p4HQTgauNEgEsJpEoQgUkBK8q1MLJMSBSQpWuKN2cF3wBEUb+GLEH+qtdizxLr77I1wMI0xPVo9SSXHuenw7B8fGPRNwbeeIshV5C1H88hspBdu8WRZoOE3B2GcoLg2E8AqhI7a1yILQg5NvzK+cmykF6TAlB7Cm7DD5tzQcDyBSP47YSYzC5cd+MXxa8K4jUQZUM+ZfVyQ1NjM6ctnALmEz5tnB7i9FZOD3N6G6e3c9rOaQennZx2cdrNaQ+nvZwe4fQop32cHuO0/xSVdZq7B9iWCuL7S5R2kiuTcMRN4mUav8g6vyhCaEyF0BjCNAiN4aL7+QVa2ySWZsr8zgcUTZn580mELBAmvM1gAYmQhQpJhCyviETI8otJhCwM26w+VgCrrH5WCHusAVZU3gFJI8gKMoiQ0bZlSSlk07ziYQ+ReFgpLThUCXuReOG0ZwkCTFLaswTxaSB+HSRggNh7lqVWGZ29l/Oz9y387L2Cn71XirP3rSQJpkF8DJJgurWdZMYMawfJjJkkQeaDeBgkyEgqbBcxkM4+C9QALBgIJWElV+BrH/xgh5UEuLCKEvsxB+EXFwJcrqAXFLShds0FrFxBrxb4tQkBK1fQ6zD8bhcCVq6gVyf8uoWAFceQJsGpI/DrEwJWWKWJcvvhd0IIWLmCXafhd0ZoswHSVNXOIO05CFjtAVx6Om8pVg2Bqvyl2F5cwkuxfbgULMX241K4FDuAS9FSLIZL8VLsoHU3HCVLsRpcSpdicVzKlmK1JIoVcmRtyLxg5VBFuiJOhLadtrjbTsP4Yq5jkXKRO/m+/2zNidTC6YWEDWodWpT/SfmO8m3l+4o6Fvbr201JeoF5zyRyYVRFHm1OHsZ0ap7wk3Us8aZSteICo/N0Vy8uDfmwd2KfunC7Jr6pxGUky8zMBXFJTiTm5sYn0vPG9OiV0cnUXBDsQ9bTvvGfTwBxkcfTuNOXTM2Le5Vc/JYHGMBXxBbZWD5+Ewtzbk7+7L3fjoJgn/CF4Yq8BGlXuNGByEYzDryCiOJ6G/aNiE03vE5BHtMOk47f5OLj+nd0yGlfTCG2jsX8eAqNqMDcnT6XmMpMpkw03gRQ7i6rVDs1PZt6u4kaZGYupWZhfijjFynosCsgjOSNgtGc94nU6cQovbtLM7MX8nIKi9Y3e3cjr3/3m4A3FIc5Xu7v+ozcTuT2yNwzt+xJHPGTCo66NP603KrS/V4ku/XydszjcEGq44mMOTeFTQh0PuEAVjZ7eyAzm7o4MbMADNBJc24+MUud8+aLmJi+zM0YcV0PloQdqFkdbwTdTMFF431EBeeS0cYI9C8o3gQ/fZxTcFEmJ6ZMHgv9EQo+kOyYmw9wRQLCU5xM+YVSAcEmeiV+NtMAk6nELLA9J+bmAXCZRM5j+HLmVvGr62VEr4Bn4luYpi6H7mM6j2w6zevll9fLDnCTwN+buzFQ8qqhxjXl45aOr46Upqg5onGN4+UBUHNyRh6fYFO0bsti6a9fkYmLULxqy+bGpm99a6nFazKpdaihTRqa6MM0qKXRpwJ0pVC4MWQJ95jXZtBmqmr3jXXPcDcehbwsrCi3hkNsr5opbEYWjGgDVDQaCcyskbjRpjoixJI2E45ZXW0TSFMr9DQI4KyhAWBmjVD5qCNtj7qm+maQVmhxNNcjtAUsbl1rPaDOoN8B0tqk1tc3tqr1zUBcq29pBiHUtAZIOYIg0wZkrULdA/FaW1vUhgaUAXUV+DWiBg1NgGxraEYZDaRH0tAKA0QNrY1NamMDimwCZpva3FzXrNXG4y11ht33NPDYLfCrg54kaFNTrVZb31rXoNU21NfWmc64uC6/rDbGiVmvj7eQiaNt5Uy7pfRg2UGzpoJVxEvryMQRzF5zE5laN5kwggwvIcBrHAQeFjNNWOPhaPAwoBk0WGgDXpuVG2yLwSoMVmkwaJrsMBRHx4TtwXmqwfYb7IDBYrCf5K83ZCiadBjsuMFOGOykwU4Z7E6DwZbS3Qa7x5CHDXnE0HsNvdrQOw29y9C7Db3V0JsN/T5DTxj6GUNPGvpeQ240ZCCVac9BkCTue47J2Abfhn3wPdXVtYuRnbukPVAhIRilvaclpRp/5xY7u7qlPffC522Stpe8qkcf7K2Gr32XWjxCdzz2BR4bOdZMylMz0xlO387pLKdznM5zusDpRU4vcXqZ0yucvoPTd3L6Lk5/gtN3c/oeThcZvzwgLg+Ky0Pi8l5xeVhc3icu7xeXR8TlA+LyQXH5kLh8WFw+Ii4fFZdHxeUxcXlcXJ4QlyfF5Slx+Zi4PC0uz4jLJ8TlWXH5pLh8Slx+kiAx0FZL4vZ5xjo6fRCgLdzXLlVLrHJnu7RHYlt38bttu/lle7Rd2grtF8Be4RKBFgsuO3fwy64Iv+yOk95KtIbgq6puIfiqPbcTfFU1QKx0tvcgwVfti3Vg0bH/QAcWHQegh+JnMamStbNqHGdIcrtcDSgpSPkq1QqON9R2tVqFhpLWrlXDIpWqt+uonma0G7joZrtZrSvM8LX7qg3YdPW3+6tNhfkC7QEE+4PtwWofVj+h9hBug3nteXQbym/Px21euB2YNyy/oL0Al3Bhe2G1X2EFRe1FuC0sbgdACysqaS+pDiisuLS9lJKWlLWXwbu0vL28OqhA/al9C27LK9orcNlS2V6JSwULsA5aM91yMIjnV9Q3obtOkvHRYQbpCEKYUti+Ybnqn5SEjMWTvH9YqfqOklCwhlIODKtV31YSQJrS1diwVvV9JQF4IUO7ZRjAMCQj+kICeFOmfuuwQeaSYG42AdApn3EYoFNqwsRqy7xt2BcdS+DEPODrGPZHwwkIPAf9ncMwcz/kT/tfSkDKJBToGg5G/Yng6ywv2D0cQhAsPb2UgOxJfqhnOA9BsOIVzusdzh8KpANDeem8lxOQSSnIPzIc5j6ITr7Pv5SAlEph+NgwRE5QH+XlBARWigpODhdG9QTEVooLTw0XIfvCdOFLCUiwlBSdHi4eKkgXDBWli15IQJyltPjO4ZLo9gSEWspK7hkuRdlYK5aX3jsMAKmh0nTpS4my19mWspHh8qiZKH+dVZTfN7wFQTAo9FJiy+uscktiuIIiks9SouJ1trVidLgSMbDIeSlRSecOPuDDfEh+YzvZVgIOhhpZ3Eq4TREJRpZ2MpBd8mWoxAxtPbZVgkX3Wdu13VqwXTusi7YrApWYPiBaVCvvhDEm9V3QhVkGfsx7sJDdBZwjrGR3Ww8CamQrNcixrQygEe+F2AJZ5XqHEFsAxgPEZ7ZGVYQmqiwgHJFHuorqRHIMwNvCj64y4kHkPGouvUS5vQgTW4kqMrHlOpAeSEhpyODw10KR4PUheEFEB1gbVSg8qQKAREUMhJa8C+ILHyVJA1n1q9oj1CYAPqJGQcdqlJ5E92xiT4FWyx8DbVaeAW1RP87IONOeY3ukxT2vkE0m5/EWt74KuCM832uERuQj00x4nGsAp1HSVddQPgQjyNgxLxywIsA/ElgrH+dXLbzAxTtatU8w4BwR2EoVjE9Zz0K4Q91P9R41kgCtiQKeBHg36Srk+MlsmJk0nTDGwz6VDfMlfU6YTGGmzzRNA5hLDiALrxKZKnuOkTE3RfWp2qdUNMineYO8EpVeBZKQ212ozwC5SwCvoX2kz6JlWgEx8zo7JP8s6K2A2KQu8XOgh7XPgd6m/zzo7cbnmfVF/riG9Qv8agJvCM3wSjjF0Ga/Qj1g2e4Av8qWYajt1+j145EIVeY3YLyKLQEhB1hQPkIWSkdXeGTd+jLj6FGQrArCagthCiHtV21PkdY1XFfyFTwqgIL426FnATbQ8rWix5DuDykFGhfWrP+IO6kP8va8yrvjClp92cn1VYABUamiggi5xp0U548pAI2NfF7hTurDPJ9XKY5McV6jAPQNxPkadyIAtwj5E4qjUJy/RJ9NGkUdqNrfoMLbgCpjLi9F2csI+xYDkhxvDjAReMPbVpYTVfwhk2rJ9/CI30biOUj9AL+HgOd+kS1/ee4Vbsmv5Ikfv2n9o5MhHW3beb7u5gnzNzxPCrSzxaBd8vfI9w36alQ9X9We09FJAK+Dryank6BroNWyXQRuH35+/AKRxT0CfA43GFmrpX9Fv2hlBNzTKf8baJfyY9Bu9U3QHm0RE0Ov/gDoEeNB0KPmQ6B9vveCHvM/DLo38D7QO4LvB+0PPSIDUgdgLgRfEdSAbRVlGIU+DICa7YCOwSwRVV5cGt9nAV4nvZOqAmAd+gpDBJyT3jU3mmc9Ro6ogugvvDgHuLjH5WSAjIzjxm89IQ8BrYta80l5qDhdTF/ox+SkTsP6y9TWT8OoZpSFUDRli4+Msn+FUODQmpFl4P3hK35hefmF54e2pLe8wO9efCFRxV9N0ih5De1L0DriCXBaF1XmRn3h+9EBfpJ7y2n5p6JSEXZ+MQ/i5gUKvgPBL/JgoDVmg3HDg2MI/gwPVtNqNhg3PJiwvD4r29MqsrN+XlS6lj7JX5KBdReKSkvpKpIco1H4JXxavyy8mccbn+ivCH/Z669ZwOSBgBgEw/aTpXiA8yTNFeFxQNtn/TdqNYlAxbDJafvH4P9lORlK+pbo/fwmOSFLKkkEkLbrefL7qkzNBvieJPpWMbU5o5f0O/Jy0o/HLM7gwf4n4JlobNz3IpKY1h/gZeF1AamR7nXrD3Nf3tVVL2+F2uFV5+Wt2C9vZWX1yxMfnXh5X0DhgZLfwvf1NRmfiaZAgfhPaCz9BrgfdHoVP8/XQaMp/zzwBUjfQC/uYkS7ZaLVyjdBW9VvgQ5ofwt6Rv826KDxd6B7zb8HPev7B9n6rgxIM3rA78nRN6kRCCNoG0ZHGvtex/SJvk+AXp+ld/rPNJ1iDgz+Hhroh4jozLo+618BQ0XD7QpvnX+j1jLzA5JE0ZFV+ONI8ZAiJlLrYYVGS0J0TOqPUWu+X0FqjJfLSG1YHwDIsx1sIBjih4ifNPA6IX1ITjPYh+wep0QYHK/xRE+uTvSxbKJnRCJCxfsknPS4n6LENIjikV9WMGxK+b+D4M/g+43SFEqNa31WWRFPxR/qZ3ku1JOopTT+SJ9H0q/gxvoCAj2P9EXPI/3C6tr9ImUmHumXeb78kX7d80i/sTrRf8sm+pJIRI/0FTjpkX4z55HesN/UzwJursAA4Bc94ecuFrSif/2BkuTob7SvXo0OtgyVdeuPlau9t0j7rFdwPYjrq7jW4PoarnHSATdgh1T7JEP8v0J8MW7TOPwtsN2t7G8V6+8UPmJhxPFZ/0DNiPmYYPPENV1FIwBNP99xwmgipTjoNU7Yd50w6lsUhtfrhH3PCVMwXaG07KT0EYx9FhmmNXVT8/+ihjr+AHW8Ezwe1g1D2g+UFHiFKZ1Tg1OTUx+nfk4DKYYvaiqYYstTMCO/MiWn2LUppEyqUyqoNgV2t1f6AR63mhHtlIl2KUS71R8o1sOIlsJqED98M1Om9T54TJrRN4N4ASjjTfJ7JCfS0twUBG0pko8+kzz0rBRM0+KDgf+H7YhRhmjo9+4tsjasj+IWg9ZUILxEH+ZTuMU0gZwCYPlS7MBUAF17ym89jYBJPPikL/hFdJVnebwo+dnxwBTSU1vPUUQc7AmarsIV7UI+3K08/8JQZbryxefR9P9FRKVnDdLLc6MKt5oTdUlEpSYJ0rt0owq3lhP1BTUMBuxqPKnH7wFgnbE/fmCKbQO7+TLlgbc2aRLIpvVfcYvOQX77v8If1bAf4edEYZt5hM+JqJt5hJ8XUTfzCF/IeQSW+wiPUR78LfDvEcPiPueZfu5iwW34Jn9FPSJ/Qf6i8ms4+/0X5fvqj3H0HKyX8H01SHK11Cgp1VKTpFZLzZJWLbVIWMO3SljBt0lmtXRI8lVLt0r+aumwhGX7bVJwq+TTsWDjn+uXVVo9H5G+jDVxNSPaKRPtUoh2q0THtK+q1ldVtKvDF/8W4AyxiuJM7bK4XMPbAhPD+8BvUzAxn3jnFIxLkl68E/4/KByTAL10CsclSW/bCf9dFZ+rX8tTtffSHPdHqONacxz8XA4Q7iDNeVhid0p/RA/AiHbLRKuV10AH1K+BnsG8+TpL638Ket74M9Bx8+ugE74/Bx30/wXo/YG/BB0LfkO1/hpTXHTHS88Qz/Y3ajIwB+bumyoN8T7rW2rSRzPEtzH70ixWQR/bd6id7OVmyPquSlyOmLo06x/BqtjTgIapS7MsCkbriHnxf/FWzZn4/jfiJ3XMbJr1LxQT7UTTmW79YHXM/5ON+SNyBoIE27gIWEyq+AMasew+62Hc85Urxk3sVdDY+fzLfH58PyT1k0Ge6ENw0lN+mCfyW48hCda/SELbFDSVPC58bO+kSZ/9EyJjO/ekyTc8lhDwbayMv4zWsdfHX0d3fpqnB+e6I+lDthDRp4jP8Bzgu537AnmE8v24xqejgHPGut3aOdQ11JnujBOhM9YO9JBt6C9fKv4rCAFfd8Zq6+gPHOnsImQDRwCt2qt+KWK1ubE2FnX2ip6J9Iec9LQnP566jKF+NDA/00+nfl0Qfdz4dA6mxHBGinPDk2kbrEoXVsLYbhNGveZSfdOrpJ5W1bwGxQoLUIMzTm28ookigekE2nJhGvdmszgXS3oVjFcX4CY8sTCVTM0WrVHgukcfGzet9+hDlF/jFOvI7eBQwoZ5kFu5TAx0Q5s3JUMDxCoALOgaM00I0XAVBDXMAZ38hsLBnZQ8QxX6aq6yWjmU1Xw7IHyxG6AeKrZ3sD1q5C+qZMh1EbjMAF2okCu3bd3OaYTTnZzuipJ/FXfvYXoeTiJCsmJyWRLm4xfZzy/YHw462mw6bXGqmlebDUwWBm3FgmlWbJ6QZAh2BzWGXT5d3m8VLgPc++FXrPLlmK8Xu8Rv5gGI1qpYTitR+XksjyqBuq6sPL/Sq8qItX05FsrGilAs8CWvWjs9sargD8/qlaieh/0Aay/wYqO6yGH/kLYcDfdq8sJrVgxYuCQaIiuodDOq6KNppQjjoZ+EUQJXEfNlWulByASoEFFT3PigmLfMvf1WHr7hHA0eZSifBpw4EfrMdVeUYvda4soAbbhE8srADb0TH9DMJedDL/aaarXjwdasHc8Q+KLdEjco5yhRa2mYnk513aSsgJ05DM/amaOzeqU1ris+W+HNyCxvXCHvt3Ndq9hfj9xaRzAPxZ6DVDsyQa+KJnTllrm8GdfWkf5fQndg4Kyvmw9sHaYzkIuxu4j/4e+c/uXtJz/YXk9/zz7RnuZ/1e0S/S3G2/2vvZg5/OyD7c9+gv4i7XTrP/kOEb++TMSTdra3e2EzbP0sKknuqJfkjga5o1Hv7xkEOITen5rH8bjW33Oko1/rT52H/v5gR2f/yb5uYzCRnJyZGNNIdMcWMNkYbdY7HYmiD1HReOPe8V+EqRSmcWPkdsdjc9pkApZHvTiYOQ9BwqSUyu4WSuSWCIR1YNByjnz9dmHRhqaNpzl2Wd2F5PrUFKWSp6ZWaSklrswszLdRWE0aSAf9VC8q3ufeeXUAcmvpiJD6xyDmBNt/M8BhnYMRxpR3IMhNMjoJ+GG/kPWgQr1QR7kxKXTd2W3jN+X9QkXmNZSvM7PhwBvwj02AfGxVGuvqCNFRaa6rV1pamwz7FdCZPoAa44043cfxOAmhwq4ZDtfJhlltVvS0DoCJGn86HPvHW9Y/K4dMQL0CK9GEsKiU5mtbyvLNinIcuFWU5h6Uk7qVbGSFSSFJCoAiICJCEwvTaKEhA5oIoIvlOOMG1KLMoRb13YZcZ8ithnzIFyYb6ZjrfMGSxQLJDxFS/05sC0QlVTL9prlnsaq4HNJyilRQLe/dv+8ApzFOb+H0IKc1nMY5reW0ntMGThs5beK0mdMWTts4vfUw5Xwbd9+OigQMSTMK2gFSw8xAu4SDSuYL8Vt/Pr+QhKcM9EA6eA2V0MFrHg5Ze2E/nRF+Mi4En4wLqY7homi9Gi6q3qvjQuepyFovotkdogXMR7N7PkwgmDjAdMz4BIbZ1RpWI5+TY3KNUqOek6s+I1f9lHJO7lTHsW8NCdNh+WqNVsMQQ63RaxBStcIQicfAnp0mh4aVqzVGjYYYWo1ZoyPGUwyReAxsRehK3rB6teqbatXHERYzanzRAOJ8jUEXmsfBusdU84c1HscyEMeHOHkizjdFHGx1+LXwsH4VmVT9jg9xAtFAtABxnpGrPifqi9OuoF6CY1STtixoS5lM/gxhc5iOWWkj/ZgJEQbM+WgrRZ15Iw9So3Fg9IOtKZDiVt0y7Y5/oRBd5WpKWu5gR62GZVq0fKHwMAHeF7EmqwnHR3SQ8CDWXpXoQUn12m5kYLWs4EzVv9zrZ8Xg1Ky2laNWU52qFMC6gamainVbhHMq2OA6hGI7sL8FAdNArAwynbRYg2BoJXcycm6FEwYeHN98LNfgu50EP2052DxHHjUMP1VDtruRLZdHHcJyBlaBJGSPvLkjH/SYj7AGNZljaOUBrhC8UpV0Gse5DKRcBtmmnLYGiHU6g+PPAmsQx58B6yxOP0OQYAWGVj6HMNSdZVGepQ+V0porToT4JR/qQCcqXyr+wlrLImGZuAZQuSTnBc6JW/LjMyLYK6nKC9osYretim12nTx+CvNZjwQJM5J6nE/5CLx9ZHCgpwfLlfOpQegZ+sBgnTw70NVzxjebmptZmCXDrmcGOwYGe7oNLs+XGjt6k4yWqM+hVfXBAMqBq82xhVkOCeZVl1j7IVY3gT0b2khy+auK8E6lIkevuc8blMIHYY/tRK3nInSC1p1MNm4W72Qiyl79RM68UtsEhA7MKXXN0GqoA85XXaOYGzDL1G9q5QTxL7m5FSsnzA+FpcVc/QDoHpgNAE5ncDRcKBLk23gfmBPUEshAYcFkyDvxJUKJFvxj3iMYK4MhyY9VE7ywBivbUl7BaSWnWzndxul2TiO7KM5u7o5CDIWsyslau2RghA0kMDBrGJB7IdMBJBCMxrqtyqvbqrw6V+WF/AqNutj5QgJVs3V5fVk8RX8WCSqQReMJZtF4yNbKTujo5tH3GpRw0BhieViMLVdX9ylWAT5RzSrEJwcBG00vQcRiDC2lGAExkkHS/ZhJgvK0xOHWFQKWNhQcCqVDcRrWOMF3u23cdLWAv4o2u45/dRGjuzjmuvhioYoR825oUDSOW21H23jV7eUgKT3HyRfp0Yf8AtOboPJ8FNo7kZocExA6Nmx+B1TfpzlsPncFbBh7SgGL4E4SGw7fAbnnUQXIPXd6kftWPQaHyhY18n6nrN+rXbQ6XbbuxEZ6TQSvjuvWlKJ6GdPVUS8RBBdFIzHo9XMlBHL+gBTdq4e2OldRWTfyukPExu/VO0RQWTmtaI8NcjN0WOPQZW2AYjTp5QNiq7GuVmlsbVaammuV5voGpSXecj18t5/gu+0XsimUoIY6uaFFqC/t4eMHAIKgxe/Cajvjh4yRwwW9BItpGEq1Ie/1VTMTHxiwKXXd0PU8QtcuYNiRISFOSccZgY5hxcTBl16KXxmGGNhHLJe3VFZs5XQbp9s53cFphNOdnO7idDenUU6r9lHa/dx9AKhDpEDkhyKQTowfvxBiJgYiGo/gqUCrCBfVR/yixgGm9QBpBxnBTgjqmSHSDsJRDtjAPBqO/AEwhkiFEymMHEzWVe0IdjqAakLbO5Al0xiILoNgc4qYswA2UMAXYONknGEoWhmXrXyu3xMW+j0FQr+HD0SOcgwfiFYp7wBQFvDTXuWd7fCLrFLe2Q2/KqGo4yrv7IXffqHQYzgsCMF43gh05V/9a4xkQi2va2Y2RZpwfCBTpU+9CYtg0BxLVXr2JnjcNjfuxjC/3tGMJz/kJCc+YRoGj42p1PzsxOjcaivGnmkay8g5bpoeq/URSuViAK+h02eDInOb8gF6KiiAUwn65MzMhbOZ8MjoeGI2MYqV/xzXQPYi7Hkfssaprj3S+Y6mJi9Cq2Q0QV90Vnp+VapVJdBoY8/t6xZGT0Zx/SPTC1NHJq9kxue8fM2qYtxYzui3bu7zto1wZWRibC3Nb+dRaybGKD9541iO1Y6ikesNaK+luOuWcH10KrEwm82pmbmJeewaeDVkVj2+m4sTmzIJjDgMbt+YdzJYlTobjZL5s7ebTYWnz7/XeaQIvbvDwQg18mGOxz20/suYEQcEgleehCpEajo161/AfmciQxpJJtRyZmaBMxKG352pxIWBVBowptOjqXBibIyzrf12Ku9EtuoxV0cGkuX0KDWtY3FG4wxryPnCeM7r9jpPTMFAh8cTc5uv0urIRQRQcTHlyWDdz2uN+IFLE5OTgwB3PZ+a9XIvq9ojJ57W14vRYd2ZfeMxzjuz88LcQcNh+uuhMAyVDK7C3NDcxDeUGmFTpBFqzU11LUpTY33+qiFDaW2FCjO0L3zuR47z5jpYAoEOCHaZGqAIDS3ntSzXw2pI8xqG7mubSVu6NV6P7am6ppztqdpa6JnUQbEEqijQUWmCOkldMxSo61rr6kynf6+7a6U0x2k1U0+LEqOclQZKgdSqglXQDcU0FAgm+w0taCghQ80ztHzaotIKDa2EUIM0bhFEg5JGxFB2GUrU0FRDixtanaHVGxqUKpoNrcXQ2gztVt9tzND6De2koR0wtG3c/Pw5Ai3U7jHUhC+Bsw5wGkzyFzyCvQnM3GBB/GBBQjiD8VfgCln+/ND2xW1SCJtdod34VZFP9eIeyb9f0vL9JaWh0tpHFL+f4XcgBpvtEIRvWmxgpf7WxQMKRTj0CONB8Dq8eIAKrLxdbu/s6OK0m9MeTns5PcLpUU77OD3G6R2cHuf0BKenOD3N6QCnZzg9y+mdnN7F6d2c3svp2zgd4nSY0xFO70tSrUa5e4xVBSDav5Vt0bGxhhYCu4QLw24bjsGYHMYVmgiKOAlTg7jFhlkhv+h5/GKA0QIIkwmDHDLzQbNaYf7txFMFdhBPFYwQTxWKdEH5IW8naVzn7yKN6zDMdfhZwe4uKcAKo6RxXYT9uxArLuuA/YaSLR2w2FBa0QEbDWWVHTDagTfFClkVcWVbKopyuTIFwk3HwJVxDH5V2mJVcBF1mA0HB8UBIMGEbQVDpkCtmva40hqpVg8Zxwxp0XgV2tW0TbXcawLD1IrQCtFhzKrBSO0TWsv2bpJi2WY0yASGq1Vtm8oI0raRk9Y2i0HmKFzGDCYwsJ2UzoMf1uXCBAfMW2A/SbobNi6Wx/Ost6F8V7t6FPFT0H5GfFe72jZfUQA/V7vaNlVRCL8A5VuO1ngAErqvsz3SAwwQfsi6ELLwyJtrWpPpj/chPLaXy99DkXof7ZiFdPC3bQh7lKc9ID2Kfc0YI3qLTPSgQrRGfZTBPDCYU5jq5vKdxRDbfIJyz3NKh1FglN4gPcXIBDBi9pbRAWS+E/4JuwTIvX9ShG+h8LAKq+H7UYPn7PDnUF4MdmypBs8xa8kutbcCBsKfpxILnBxftFO8yLjZXpRYSTnCdIcwtQCU0aE9pCYQJ0J7cFUoR+zBbbkxA9yDU/SxsdQYTQj2iZQ07tXzFfOIJ+LG0H1rccC5WWCG0OfmZ1OJKSWRnsIO3liKUKZ9Hb3HT5Gkwewa/K1/BFFFqM7XvnPGiLjmcrsm1fcEmBIFHIDGmeH1uHmXoc6aGfGNOKC116FkCPASD/KOmSAAGRj88o2lHNdoInOUdE/nc4FK1kDw4ZA8sxMZYkvWYAKvn8zWYjjXmArRLqL4sYm0zTzNBUdybmzxjtAIOK3zE9OJSToC4vuoYAfRrOLVrMVf5b7EmtybtTW0ta5JKPGzlJfN8qq1Xt/BXIVelzk4PsH3ibn+9FrboHldztqGc1Mb1tx5w8QCr8X35j5ZjehkFNVezGycgjc/TyHYXa/y8xpPnPsiKB3t6azFC3oqRj3O7j6UZuP42e5w0/HB9W/42KLbUNZF9+ZWVCwS+LLXdACAdLFk4OsANuQVVFijfZyD1U3wrhuPTmvxrrn1dfhXMJpKYzP4VByKNjW2miPA76IzXaWptQGnos1KM/B7mltrlZa61vB1fbW2ta7WdDoamE8yU1fbjFPSupbaYO77xvFoazyQ8zLBkZIOdFM9SHMj1KRb47nnqq3NLcHc6m6OWcWJbXOD0tDcYIJbNcGtyuXh0v2ltYCthrE5bHFxdlXIIKkOxyoXGCpHzsa5KvbT1VJDLTPUckPdYqgAz6401K2GAoZ0u6ECRTtiqDuJmYVtO/CzapWh7DHADit7Df2AocYM9aChxg2jzlAbDbXZUFsN9XZD7fT1YHsJSsiDhnrOUMHSvs1QYfQ9YcijhjzmG4UJL3CbirRz5659BAbEolU1i7dIu+olaU+DJFVDdWpvC+Z+6BlXH5JYtPrWxd3STpzUVYOdQsqSXvlI39FjnN7BaT+nxzk9yekpTk9zOsDpGU7Pcnonp3dxejen93I6xOkwpyOc3sdpMkUlprn7PKtvAA96gBVtbSf1WynSLu0Eg1fCkXxkaNruxc5djIepFfxCluWgoasL1tPAofAucKBQuQUHepBzoArnQLGfBw60hnOgccL8yavkHGglmY0L13IOtC4hgQMFdxlk9cRdFhWDxcWWpb3nF0R7/gmJdVWJTb8q2vQD0eUq2Gcbgpn2a8eYAg5zLwzGy2kF9nP20SEq3ejYhOs15H3YjeO3fcw6MMwPHNJ+iFpBLAvHhjDdFgRBdOi4yOk8IvlEwkQKotjxk9OFZNFNThcRKSaSdyzoHy+xaoZL6a5svNSKD5eTcwtsq9Xy4kKwpFbHXZXjW2H6bTm9bXw7zml7d0A3oBEsYcRqAgcly7Kml+EBgfkDNktqsdqGdi/37mb7rEMIBuOr6QTrY0P9BMBUgfEVfjasDz8vdfwA4UMAPmT7DYyviHcf/JKQHYUf4ISE3/3wmwRqD/zA8Aq/efhdFBa4YTdO00tR7rupWruld5N66TIe5AHi2cD6km1shfjXOFcCpVNjyKFqehS+H4Fv7DbwsUP70vuWYu1LON9dinUsDe1P7ye7bYgLRlic9ChAiW8c2pPeEx9qSDdwwk966pGPYA/ZeiJtgxPzk46sklTsReB05Ml4HPXM0ZN3Cjk29Whfd48QYtsY59LLKdpZHuJZYhj2ygN5Cqzhcez9yXU3MzauhHdCsIsRBdhzgczBNuvXFFrTRE0cAzP/jwqsVa3VDUaFQbYjs4krOGjJSjAXeaWURDQc+TnRNjZm5n3vIgOc+dkZoNXV87jxbmmtLgZnSXb8/xzba27xDsMADBGf67mpU+3a+ibX4BomZWHHD2dPOpA/DIgCy/m+PAYZCtrekbVFlVyKT/YHA6Ew0QLuLsSADntqGMxwOkRRMd5jJ4rGezJglXvGg/UzAYMZYrg3LJPOc3wYepgXs5dOVFbb7nNGjLejQlQGjgJqEpMTF1OZsXRNLkoMCRfM1fTOYhnG+XFnabnDu8GaC2jDk7Rlk+T1DnQc7xkZgEkVMmclmdgDxiorNXbiJsU1rqvXoWwheG9ahnat9Qz31NJU5QbPEcd6lcx5RHsg8sr55aTlOc+ZR2AAh8rwc8ob54ZJUrxNOIfsZe1zshVxctqt5i0Je2zcqN4h8rpGzWkJ52MAJBDALJsdMY/Ghk19EA1xwGE2YQeU5DwCpXmlBfRVqBCNh6QHF/dTINrBT2qxlypv8YUg4FGJ74IEPKDmvwgrhAb0T3CvFcnFpSVlnJZzWrGVfLZx93ZIxsGMC5PBZZGku5mgjwUO2xQmviaNPiBFFTIbXPBClvKFzAYmaSZEMjQIX2AK16UCnJKyAqvIFsko4aejpcSCCJEMDbCIcatiiAuggZc5pnlEMjQrCEuEXBoD+3Vx2rTjE7X2hmbpyOVLxZ9ba4TOsY9Xw80HZo3k8a9OkcYkqdy7vspJ07Y6zcbgUN6ROyevQ6vyokGczoXUeQhhsMvsisfmkXcTICeb1VVa/Vj2l0YrZK/Mc04e+auq4u9wTTVuphdyc+obt4T3m8gpfnWVnU8CQrM34lRsa65yaciZBRxtEIWmAIg18VkAHRY9Vpb9j9Bwr0DlwcaQQjeT5AK5sLiopJRoGc71fejXYipQqCdjmYHULutvGJreiKlAE1MBBCs1BqLLIIYCYqogPk3DZGFvhSb1Pt0yqUtn2UtA15BEZZy2njnhvVZx2ctfwkHEepMF2aVLzdZgYDzFXc5c8TM3xpoUSdqySTZ+Vd5OmzN8ibwOuXnhVfkyHQvzM1QbNQGHOtE3PaqDQDMKrN5UajZ3r8uYusL9tI5ZMCNGgo/rc76zA/39MwnaFkxjB2z8ICDxfAuzk8KvyA3tJsGkmdmpxLze2XeiY+BuP8nICB9xxOiRB3CFHv0z01221ON1x6LBvpMc8Y5PLmbfyZGegYGTA76Zadvfz+vLQ7XBvuPQB1jIoNSUH23QnaKt2FnvDnDOdAP4QQr3AwvOjuo9786JuvolZd+wcwKrZnouznt3Bm+I+Xddbg56o/tYfG9QB0Qjtp9UasVw7juNAj75hhOtyHxjzYFi8S7pIBido03YWav0enaLQFseSYTZkzRvcgpPzENxYdYeiHACnxjDLiH2wqmTZmUr1mvL7NM73SCYzSYa1zOdVwARmUXKVCk0hJbh3bOL4D5p/CSrc9zH3hA2E9SJ+6fPq/SAgfMz8zMd06jcTCbPbUz+FDdsSvGo/qRrgg4lj847nXh2FuadC8/wTUvqhVC0sMEZg84t8TwmdcsRmKO5cTE8p1DvxGSK2DeeSfaO8jBg1qajv69b42H3dUxHFqYvTM9cmo6kKG1kZnQU0gZjschU4kIqMgd3BLCoETxmJI1cIwSkmJiYnosk5iPAtpybj0BNI5LmvNsJrnwYmUmL+7lIW8SHL0K8RGVy+jybuPlXmX1/NzTnpwEdNHHF1qkYm01cClJXnJlLnUvAZmEOS7mKeW6+6X4lRgQ9wwc9FVY1LugL03S5+azQkKOJeTMzkHr7AnAtAXM6k0GOiTEvOv96vZ1i+zFm2llsfsihhPxLMGYXpqchaK5xme/8EzPz47iLzM9EqKNvviY3F5se9YZgsZRVajY7idWgP2KNI75H2kP3Mkjrtc88rFBPiomHEgbx65+ZyfDP/IZwsNeVDzExkYTyaNx0l6Ep8hSehVJ5Zd7XqzL/kOYojb300kU/8Q8kps+L77mVP1EEYwR9abPkH8PrwreI7zWTGp1IX4kk/r/uvjw+qurs/55778ydOzNJ7kySCSQsQwiyTchOElAgIRlJQMCwqTCJmUkuiUKSkgBqt4jivldp3YNVRKlLtbV2c32rtnbJ8hbe2r5v7b5Zue7VVvP7Pufc2SCI9q/f+34+M2e7zz3Lc5Z7znk2MQODUKe6G1aFgmVB2DwLnvAAd1ybU1a4T/0SNfqEC5RoX+K4Jw6W6VxdH4ce4IW3/lO90UCrw4n2l//WllZUkWt+FahLfsTjW9paaHAtg9wXHGh1BY0BDrh5STQMTDswRqDuxIcGoZpasHbZtk/EAkqMPeU6EgWxFNEqvFIDTh2bXae0Wq0oLYW+1ypoea2oqSzXExNarSxF/pWQOCN9r5Xe1MkDla/lVRB9T0wKqH+tqca79viGYlZw+MTHrVpVVlvrFP2lVlWA3FJVVVEe//ZRJ6sLYZdBrS6FXQX0C8eyWo1zqp74JjrFVuBYXs6M9M1AW9vW3raB3rbYQO8OkH5NUiQOahI41bf1ofGgKdVWlAVw8NUhGp4ZyAlMd8wNzMub55rPBeFC+cX5C/JLAksCdYFwYG1gQPFCY6wwjJCZZTBY5MWRFpLhDNIQ0B3LBcqhOBaHZZalQcpcmEF1wAxqrgaGJWJCIslyUhnrKNAU2HKYqjmnaSzOkATqDayizsGptpS0xSpVmrJQU6o1pQbSdUqtxhZpymJNOVXznaZDkG0Z0/z1mrJc8zVoSqOWfbrmW6EpTZrSrOkVmr5K08/Q9NVazpl6C15fqq+Du15TNmi+jZqySVPO0ZTNmtKqKW1E+1FimtKhKedprFdT+rTcnZpyKV64DP/L8b8S/xvxvwX/L+N/K/63438n/kP4f5VprvuYlnOA6fcxWVNKNMf9iB5kufwgJE2ecQXz4MqswDdrcCYryCiDWzN9zZ4KVpBzFsKFhVsGz2YFDecORpAeHayQCkxJKtgqSYVd+Hfjf74kTd4GKsB2qFQt3DHYA7cfbnPhbriFhRcM9lBR0y6UL/rcZz/P3S9w94vcHWTcu1h4e4R3ifD2Cu8K4V0lvKuFd43wrhXedcK7Xng3CO8m4X1JeDcLb5/wviK824R3h/DuEt7dwtsvvHuEdy97gFELHhTRQ4xtOkuHJYop4JkC97g0aZmUh1OlxjnPiQ8dZ04FVyqFdD/CPQdbJk0GNeuUZdJKiWmrlklngJq1mns69ACSIQsSbfRMI9FGb4B0ymasIJ2ymctJp2zWGtIpa8yuA1HLV086Zf1ruSGLM+vBVpXTUg+2qtx19WCrCqyvB1tV3hxiq5q0gdiqJs+sk/wsf2OdlM0gpQcZt010Ep4yNRd1BpeeYHxXMY2+TESw+eIoPB+0K9yKFvNb0QXDw0XSvMNd8qhLBo9VKXisoIZAalZlSNyUDUeczU4JRizKhyOuZpcEHqsKsFTRPY7pafeS5Qmd5GyI8JUVNkAsW0gpUJJq+mHjgafUgMGdNO+ZuTDvwFMWDUfymvMk0LqIRoXjvuYiEhZMVBCt6DRraSR/JJwPEtYyPFbocT4eg4RFj+shUThiTjGnhqcBohEQUOXg8v1GBgiMV2yadxhgAaQoW9fl7HSoaZJIixRcKAGCaqmjrEI63WriqqLY4PTtsrUy0bxVQAKogGuttcPmJGgIksNBZN5CCo8mhWdI/dsVaz1l1b9dNYrAzwWjGZFCwKnhQgLhoZmsvYgCQg0UytxGfyV3GEqyNoKSp5mzurh1DOaHkMJweLY0F1KqpPAwPAeFnRPJj8wlihfhElrYzCJznjm/ea7MMbHF6CcdTaOkoukI19BkteGFBZEF5gKzpHkBI6ipEMBsN5ptQBYHjAGwLFJmlpnlzWUJwE5jhg0oxwG3RipCK+lmzpw11FzBFMrvvERlVij1v2K/ZaFieFfLpeR9Q64oViuhVxl6kuTp0JOkFEJPklooORwOzXU5dQk43qjXtkNHEOuFnlpTGx6ed8SU5z0TU8F/1i6T2Oiwecq98450KWMuBc2uhVaMz6CLR4ukTKckje6hu6Gijj3ttcaZwL21G1IU+/y4BG2FkRMbU+HFUtci64LIIpPSAEDoC58KvF5ktNFLn+XA9gOAfo7z5RnLIcTajx40Tzti7SpiY/kocJZkwA6PdVGRLKLMAIV+tp+eyAYuKWfJLqXghfFx+aLx8UfGxxGyvggUL4ksMZeYsLEiim9eInpukMiQTgVzcD3QAfW6wMfZ0h4Mx9UMdoEvZVTn8DJQdffSADtsYAnX7XaMxlvB9RWO5P4BRV0mXqjDC1ewUdBC6erYRXRTUoYLrWvSDQz8fMPhekCAk8/UR8LLgYdbqB4ugiW67B0ctkK6gxG33gjmEnLSZXxWFuPpATwlVbI0Enb5wbxpHULEYTbu40LDpiMcxuD1IP0hhjHTSYPFetgm7Wquacjim5TFt8Rb8ZeoRk8SFEi9mssHKGiELbWeBRQ0pHC6LpZal4EHP6QHL4saoGYZlE4v/CelH0b6pPDpEh5k0gMiJf8PPXgVDzinYjz1z5T6V8oGsAYthJfSoHwTyUdZj/Qms94mDbWPQlkfTcq5I7zJD+/yv4i2QU1qpDBSOII5Dv0tcLtko4XG0kfsuJE3znuF+h5X3+EVLN5x1sWy0UHv7JHtASjTIwzAS2RSAqobYZT0PjXIPO2w9SFKGrXHIOT08TY0z/L4BINQLngeg3DX+PiD4+MIWZfLvI9SsG34kMeVcqQp9BnesKHmJnTU1TK6wEfI2EvIuAlqLgkZN8nWzfKEyHgJuXxZPgEy7hQNEwuWmIZ3yfF5eAwyhmxk7D8WGfekIONWNIMj4w45HRlDnwYZBwQy0gYsYePgsdh4gLDhp/l5FpDxKJARHGyGpHyP9Kh8lO1ij8nWNyZGC1YgYBUY228W4RWO7CeOzf5JmeZodjz/Z5A/1y/UIz2D7FvYczIpRZ1oCKK2iexpTeT5v3Bs/i/x/HNwYe0sHi5FC6ZGzo6cY55TGtlsbi6NbDG3lEbOMs/iDl1dQwp2E6BIO8DTOYVYWI+7vObsaRB2EDyrbSvXNNVsiN9aF6brBhGcbMeATsQMmA5yTOb+tMM4zzMz/QVt+wULYhBmy6TbDn4TXdcPjj37ijF5D5h6c+3gPGRZXG4Iwl0d67h4/KfV8iOQAQswJef3dtcU71yAoNYGSv3O7T2swilk7gvTKSUTvePtvKAPJszXXbg92rttAiQuSG+wow3Wmjvl8jJHG13X/bvyKqILcZZ1bcd1JF0lTmrv64PCFi7CX9ILabmBYsHW6G28ILZtZ0cn52j9WLEQftQmKagkcVy0OL0J8RN0ZW3NiQ7tkJyBFAgLqAEnMewF3KBQQgmSQ1M03QGZEJfmhGEHnDKI3Ek+6KTeTMOfE5iUkeXLzs2bnC8VyFOmTZ0eJHcGaEdJmhDDThibdVkhqpDDae+FaVvsHC7F/hcTgMg8junDpRGuPKOUGL9KSZ0Gd/hk6aKv1SefJy2ffJ60SCedJy3p86TlpPOk5f+bebLj35gn/J1PN09a4vOk4n/tPGn5vzRPXjtlgu8Jcc9s6OmO0QelIcxniC59OK4MPqqMP62Mjy8fHFQHn1SwS7pZLkj7FODNRck3g22xdhCW2mBFrx/8/G0b1odrQJPARff6Xv5NkE6+TKbTSZH/4mT+6Ah3W3e/nZDOypNek5IEFN3wxul9QuPXJ3wvLmPrAac0bsX5eqzuxI0Z1+3C5RV24IaPLtDsr9wku/nHNVuQZqec6PHKzgv70zUtHNOYJAZs1gPXWnypdrR3D8hnbE+XRsBtIe6ruX4zoq9NsCClcW6r9F3QIagiJHAc/DORc1wXY1TEFXOenEip9u3s7xJUL85xn84jwUtYxAVAc4IUCbZvI8oTrtKpFgu4uepw+/bubRe6mpZ3c8EgPdGbnhQZEnYe65B7ojbl0EgiCcOkqHahcWwr0oksx6C4D30JOmFnxyJUI4xqCT7/YwVw5B4TdupM09uZIreURc1oSIpCcJ6TY+VKWT+ny/U4ezp3gzbr2A0R486lp55aQt/8YEljD2YfUYRK6kFeSMagi7AOatySCQ1JEYrgZiWyZIkTbGm90fMmkCNK5eh3o6RVnT1bB7qCttyTDuWLZKQuWOIUgdw0hHFCOyrkDa+qW9/Y1tC4fE1Do27nURZMkx+QUYvoTpL0cfNmcYoXc2fwCGaDoAWjnmIjkyLyLVQGZCTQQJj3cBRQKFiSVbJuZ5RYeIIcT2VuShajw7nu7DPq16zynlO3NtzQtPr0+rr16/JT8HgM5li3O5lXBtq+o3+AZHaCFeUZJatAXuWR8qoqVwlXTtAfVIOlwRYjzXIyyLYJgQp3six5c9AWCGNBFslLa018XPTu8PCsSDIsWOLlYWEuPciHvAjrJQSP5SaodYiAq6ROJNj22t0ldbu28hoG08y5ayXhbe1b+4PCersoq76+94Lg5lQZsIySJhAlumN1ZLMxmCoRppWsG+jcvjEIAiW8zBJb4MkuKdWYtacEkvKCYhLUE5JmGE7UNdgKO2hEl7Fy6DFwEgqXLHHFujtMPC319O0ciIfzNvT07+yjLXdnh1gIqJ8XBdMpTiecpqCMd+4YoDL7hT1KTNloOs9B6lnDBSo1J3b4jludDfAcUOL6XrhlC+sbM0EY6QDbQUsnaE6xTjZX3jKXzZG3zGFb5C1b0q20n7B+6L32vs6mAXcMg4z23XUDemJyfMI2cnibqI+pA/ufO/hUohmM7yl5mNMaPkr06XZBYJ0/VqlI1jbV/t5M/Cl2cOuwBi296AioLurkhOpMjsO6Xe3dUIe5rTOd2n7Cxh6HUye+ntHe7U58i9YN7JB3l8m7y9Xnn3r+afX5p5//vtfc0bud5hvhJZ0+fMIiju0kLdbRTb2vYzz1mibKk2O7BX+fhiTK2QXFlltpvlFCU4/ZC0oOcFWOWPouhsZm/6L410YBTGCH6HuqZIrGEgXSVKz4mEWp1JNcCUr89gTugBVjPjiDmx00CSKB5OqzvKmBHtE0wbstnVuhTmLHhcE5VM1uVNMVT/IGS9bs6OikDVRwjisezAwiK5wRO6HgcyA4x52M+EqQ9boLaQZTc4OnnqqWNGwKyh27M9sw86iZQpRw5gmWqGAJVUwsUSotQI51Axdu65SDJZ9wxKbMb2oN5aag55wI04Ad2N63vLsDNi47d8EnyusuvsA4OHFd425TB0y34rsE7awwjAyaexO9quLVlQ56YaWjB9ycK3kmTcg+trufnS/D2a2gFG31BjCUNS3HuX/HwJoepQ+8HhS0qfs+bmgYWwWwgnCelX45uFnrhvo+jBe1ZFNwsxyMpBPiTzgi01Gq9Hf2KTtwWE/7ip7wZbtIiLyCEwrt+4QT7bjq23IHJzq/85uAk2+6029HUOmU44B9+iGidLVSWVWlVFVBK2tZtWZvlJSa6lpPymoM7axlpa748gfKd22NJ2UhA7W7AhTuhaWlcGAdtaq6AqTtioqFsHJaUVEKK6dV5XDxDG5teWktXFxCuNFntMhhJ6rg/7HXH5COhA7Z6lq/A+pbAwouLvIC+ZOmu2a4ZjlKAqV5pfnT87MCTYGrmetJJrvJCiq06nkzMrfSRT1I2AqEEUG8jtOsSQAxxyZVOws0bZrmCmouqMyYqelFmjabjJAqczVlnqaFNK1Y0+ZpyoICps9jmrNcc1Zo2qmadpqmLdH0Gs3JKdQKKNRhLQvk6WZNWaVpqzVljaacqenriCTtPEtTzub0aNCgTU3Zpik9RINWdmjKgKbs0pQLNOUiTfmcpnxBU/YwTd3LNOMqUJ2vQfha/K8DCf563LsTZRq2UdV7EAZFWrmX6dfg5l0BZdr1ENN834J5y1rN9x0Ev4v/80z/Dyh/fQH/lwDmexmv/hj+T/HKH/DKH5n+ezx7jC7v/4T/n/H/C2D+iv9rgHkH/kf4D8qaugf/S2XNcz3+N8gwfYYLIgXcw6qiD7pUSdfdnuwr1FwWYF6wERD62ZQpZYNTJPVyqLvQ9X1s8AowC+u3ssGwrOlLD7DB29jtuD/SYAmPVIHcxe7H8+wRNvgIFM9mQz0Y4JVR9ijB6G8itpWNMYuxc7W32eAYblEVKftdJr/H3mf/YB+wRPCfyeC/ksEPk8HxZPBiOfHaJcng3mTwsmTw8mTwimTwymTwqmTw6mTwmmTw2mTwOvlG2a76TcnUL8ms08SNmmKA4k3aU1hOPS7T5JzloGor7e2gZ6vRdtCzHbF20LOdHe2gZ2vOZVAhBwMAy0h1mx5eJp0LVm53HVG5PaBv68y7hKjcGaBge1hmGykPyWol5SEG8l7GzoUVVJg4ZZ0NEAny+bNQlOrIIhKFLD3NWllRRztdykEWyOF0v6FaAdzmcU1rXBTSQEoeAbukPNC36W5fATHSeRrSuYoRjwS7m14GJ0OGk6lMhiXC4Yij2SFBrwhIUVyzCOQ7CwRXeJNqTUEmZIPJeaOMXKDHLTjoJfOKsNYpTYP6DzbLChIRfCScCcsAEECVRCyLzTUyQXKYETFGTF/olKFmA9SXma1+xKDRY84IGRJ9nOiK0FNySleONX+ENMw+7r8XKcU8fDlKskpGzdxd/utJNe98ucIqg6FRCSKj5a15ZDYUMqN5VgVMEh3hlGmrihLHzHy8RFWxqlsDY4CuMTBJrAph0BLGYAJjoBgtJtujMLtG5M7TWgNkJAZ0OEAvoUzoIXJpz7eWUYM4nR/WS/eb3GRpe4HVSLYnHY5Mh3NIB2ZWADN7D8NSzBEgiAyVTo05gntjTvy14KAj5kIgYVSG9Is0w2wnWwU0yutgulNZD5ud6gaY7HRsPMqKnJtg3ko76yhb5DobZir1c6zmyDRzGqzHrSKDNFTBPbEMYy5oaLAz552297C1OjKdi8euiQRDS0dJcpST8dciWsdDq8ozvL6fQlVxhstrbeHZoGGUzU8Ukc1M1N5qHRP9cCvQcu6YOSNSaBaaM3OuQjTKH6FbYKQtBsstRdRIq8MuuBMlNZI9F3OyKNpEwukknmrOFglbkbASEHOGQmeIlC6khHntuon6T2+H54Feex7FQmvD8xE+HzAtHGYbQqItfWOEDnRXe8j6DCoJRFs7xkwfkG0NwGAe1bk4Bxw81i67drvx7gaeywUIbYQRNB65EJFNPHRRVBP8BIf2EUHUC4KonVKKFL8LAzsY2sxBP4vQGTz0OYR4jYwrZcn6gl3yzJzVMsbrFveNDKK/dgUuZoAVNdhDwUQVLqFYBOZ4eI4giQdDrTy4l4JtPAi6dzB0rt3moVC7gL2cUqM8VR5KpF7BgMayYHYZWn8VhXOD2eCPGQ51RDwjYQ+LeCgNgeQrsDtrN+1aylK07ToKCnRDGpkPrlAn6OwYx9ChA2p9zGOAOg5zrcivPOox80Nbh4bwNOqBXR5P1AP7G7m/xkS7CRlF9VCXqDTM0cazhTlaMWZvobRu3tJ9FDwv3j1fptj5UYdZIV7+CsW3I14p4rdSvBfxKhG/jeKfQXyhiN9O8X7Eq0X8DorvRLwGJNv8IVSYh1lKWE4JKxS2630nvbob4LUiq7sofiHii0T8bop/FvHFIj5E8c8jfqqI76f4F6PO0CA7RFTqkLLHUOFdzPbweqjmaVhehkKXMAF/D8GLsVWMnrwXZq9Cl8IuM8L3wVoxLZ+Xh5dglaWl7QCLGKHLACKW2S001ef9S0z1gwxLuNMNHcMm1qkHOfX/CiY9CCaMKxnM4FpfY5GlzUulwaWHwdEwOsIn3cMMDCjty6xH2DA+BeE6OVzPYNzlURZZHrqBhW4k/yYWQmcuD93MQrcw8Fko4odlUVNQ2lko7XFeWlh6HIVtYU8wcEagVWLGc0u6h/kQAq8ETXgU1MDCjZjzTzDB9GFOzn0VI+hJekusAd+m1rhULLt/cqKAP6KA4KB2ZA4tuRqWXDjOOTFtTsw1h9bbAWHH9Si7jUl/RCVuZ4y8O5j8Z3h3MuUv8O5i6t/gXckcr8G7mzn/Dm+B9jrcLS4L7hDT3yBuiWHTGdrPRobM/GA29LJZ76akEOvQ5Ss4N0OYVNNnUb9ABT+pUnCBXyOIT8mHbHhezGuGb4xh0Y5mtIf5WjwOIHmfPwr4i2Vbt9cR8EyMmJN3YqW9RC6SdsJqKs0161J5bCSqE5rwgcWjqH4jntEU5IgiLghRxTEUdwViLl5hDn2lPLYCxmXtErByX5sIO8mwLNuJ1fN6eSSkDO39uXGEjI7dJI+GVxASudlYczI+lz9ENfeRCdMvZkALLlgjYBXMzfOH8VjKwvgqkm8lCMeBImcOVEhbt5FhTvesZ9j+Iud9HPZ2sDMQ7G48vYNg1QNFmRz2TgH7KmC9AvYuGHslWHCMWHcTrHKgaBqHHRKwFmD9Ana/XKQS7HTA3ouqFcu8uPtSWnrArua7ADlI2TkPFMm8WQ+I7AbZfv7Sg4iak6NazgN89+F+WLa+hiTMiybrIR4w8wk1DyNDWgxnUQc9ghzRWKyGMHzm2Y8pXeS8574hARdfGWE5l3YgjwG2WOH8N1gQ5iKiPpywnOkudjy6CztAiWza2u3gXEewWRvH+PdSmvV9u1nU8mcTb8AQbby/ndbzAgQ2gkfN5iIpbypspr2YGDFRB4bMS+lD5ofICPNZV3WHc5w2gG+ChQNzbU7MQXNLo7kjvQleDpwXyDvI5LfgPcCUt+E9yNR34GFevQdviDk/hLdFG5dDivWWvPeI9V5K5d6XR/1QZmZ9II+FDrEhPB3HwIdZOOM9wuvFCqwRE741aw8MlBbLObS7vEQZC32NgA0alpfSAyfpsuO2XmHO1XWA9+RlZLZUI3tQPHq5Mkaq08XzlbysK+JJHIinGbuQz1U8y/1U7NVKMSIwN/UAzcprlGKYRp41rh1EFFPJfl+lIkWW18WTklla19tpjiTYDfGkFLBxWAHGNxSWgLEG5EoYKrcoY2iWW81wOF91oB/uBkkf28oj2FWq+Ce3mnvFThNp7qPsESbdDeMcjzI2BO/rTN4P7zGm3APvcaZ+Fd43mOMb8L7JnD+Ct0j7L7hPMNcrijWkFE0HM+J9yoi5Kph9M82BbzP9oGLdD7FQnBhQunUQ1ldjnhHzjD0xr3EO+gnLmmcayoZJW6RG3WY+Kmg9SHlQJJgNlZUwcDuGrYhIwT5kdAiskPlkacN6SMHuxI20WYOyl0bDw8oY5hMeo6hyqESAGmeX1+Wxvq6MjIVXYwn8JrJeE1KywThoPYGwL/Q9NoQkbEScho7EJymR9offUYbDpD/mu8qwvQ/7HkIb4xuv7yPyfcb3IE/ZedLkexrJTzHKkD96FtGnWWIj9oz9sX4OyWLX9DxC/Ktt/cAu7wWkiH3fiwhtRG1EVi8h9iwvMPQcs15GmWvNM4fwdUXVNevHGGuhH6DgtWYLT+SpMKKrhV7kqeuSqT9FTj9k2DPFt9U/Q4LYF6Zs8oaR+CO8ul4UP6rQh30DuJZhhNeuPMzw2pUnA7xAVugnzPoFauZD6S7rFbu3N1JvlyR7W7d+CSPAoZ8x3ru/UqKuEOzP67StGTE3wupiPu0L6X3qwhftLvy1Aqva8Rq/mij5N2RS1+Oc7HDuzcBAh91eGui03ggT7fwwhYg+O+amMGy0azDRuTcGEyuxTPyzZsdwGIz58PfTs2w8y0EkF//AUTbKpL9hjGNOkDfG5Nfg/SdT/g7v50x9Hd5h5ngL3hHmfBvefzHtHXi/YK534b3C9PfgPcHc78P7JfPcD8s2v2Leg/D+m2U8BO9/WObD8H7Nsh6B9yozHoX3G+b7OrzfMv9j8H7HsmED9DUl8bX/ezyI2fI6oTmPT6pJxkxC86Ro3jTCgXUU693vYRU49Bg68gxsLvM3iA/c60r5pDwfPiquSa48mCUmMM7MvCl8lgwkqNYbCpBxxHpLKfqILH2+rZCtUc16Jz6Z0T/vomAy5/meMnsXpvD7vB5RdU9skvE97AaoGjMJ40fZ71nOB2j+Yyz3n4r1AU1aj3k2pm1/LNf6p4iew6MB619KNJfMkOZaHynRAIZfdh+TrHGk4lPKhnJmIDaoRgP4zj6D+XaxCrvlGDFBcQyDttu5eMaT+A6rCPv2Q4Itd48NytOjAVrajVZkcWk8i2zaLO9NhQpvJs5hGDmlZl7Jn/AuwPpyVSpcVOMfiqvT0ngJMIl8CiHnutRHoVfYKVjBwB9r3aBG3f4FCNykRnOplC+llXJz6mt2ndFGWExOaaNIt76iUjcYdI67w87szrTM7prgpbv5S9Z+/oLTugeYpW5+n4+PRR+J8XG/Gt8UePEpPqhi8lgPQPQhlhd1UW+jRmLQ0YMHVdqrcnw8oNIo+609yg7hgT3GtmAlfohbr820HuZ+lvUI1cSwHkW+/TGf9XWe7LceF+V4qZwr46OKyvmmimGUwUeN33qCmpaByxbaVYcjEs1j61tqNNucTJk9mfoY2KcvC6HxO4AQnWF9V4368A31Wd9Xo/5o1iE61DtoNBn8fI/d9FwOS0MtsenyFakP7fJ/Hjk9TSX47QqklPDMMem0rX+O0jKpDmABsp7nMZEihmYyI5wMME7ouwJLx3hHlIEsXuDZIjPDhYcvocr9sUzrR1R131B/LMt6WbSMClkFiB+jdUVKJnGh/4QGpEHSFDBozFE+wjOL42TUjvG6oCVU4zE1mvUssuVv/Vy89Tjv3O32EHklOUSsX55oaPwqOTR+mTY0/jttaGCMvYoxlmP9JqXv99hjbCb1/e9S+/73doV5n8MWcnYwewMa9yd1OJodxh0oy5mH6F/UaE5oaxTK0XCI99PAGOLnZ8SyaZGgT04Ol2X4WwLyb2yI8mhjdKqn56gRjegBe0QfVYdDf2fRnKHQ6/aH3SKL0V7cojq30u6XG7XGffebWMNx/U3eG0x+G94W5R3Velsdxb71HT7iVXEeeE8dwfUIeo22q/9QcXpDbBSFE1zUtmBMu7xR7PI+UGmXl0HXrbtQ3Ifx4j5EAW8xNk7lyIMOazzeOYdhihnT64gBPYlgs3eM4O7TXjlx/Tl3lOL8YhZLJm60rEscIokOj4MOfh9KZT+Hsvc6Rs3JKD0zrv5DtTI7JcEWCruVpRE4XP1HJ2pGh/Cnc1ajTcdxUA/09m7rL+mHFoOeATPOEnq6zSzsFTocBLuM1tfeQVTgk+twS+dc4yUstksADc1mU5Jyk0lFpYug/bZrYG17R4pKGRakIokXKCcNdFunySFNrq1DhZqJfieU5e7cNqASQVQBDZl1s5gzhsrWDZycTYvNyuwD2ws3ZMSJsDqPEhOJz4RbR8xBPVDLQcpAiJVi6zmdO3pR1ywKr0Jtmnf2D0AGmhSMbF3XB04JFw+Bl8BtknkkO1foX+gmpaVsJitlxWw+W8A6WC/bCYU8Z+EKIsz63WCV6Ca+lP5OIuv2gVNIsCeoZ7QPdCnt0X7Nbr03FSWuOPa4hG9CsT6sSEP2dkNfXyc3O21TSLWB3nD3BZ0dcT62NB4EXZiZBs7TFQzyTlxkl5nOS8cfafajjyW/nnzkpJNf08ZmnPoKOeOFCQsSjoDTleuoCCwFjSfAZW4hbQs7QjA9WUKysqxMU8o1pVJj0OIP3ao1Gu7p5UUwP6nJp2ryaXo50ytBplumsbAK6T1F1kBQA9lI4RGvHYGenyWXYoaCaFcn1zcsb4RgpZJTB21Ykssp5UpQXpULBm4Z6irLjjImPSuDAsTIVeRnZboGIJoDZCfGcFWDc/2IyUZz/4pZ/IJMZAkmQ5n7uYB4TMbmF6sGkx7jOZCryEKqA694q+hU51GekENO6wkZoDxrC1cMKnLGrvFJhEzsNdnQKBfA+i7iI0MrrKd4OTKIjPJXc1BQ+XDpjD2JY6hrNt+ez455Zse8s2MZs2OZs2NZqIqBv292zD87lg0alFQOGhSDkyVXQkORsvAoM9Rq2Gl01BxlfmctKlWJdXIhioehd6uWNhKacZ8u6bDTqC22Fo9gn6biQtplnYajRCDnQh3NyXMtha1DfdlRNtldf5Tle5YfZQXeBlBaMhpBsMoMH2XTslYcZdONJmspvpe6tYz2WVY9XI+1HK7XaoCbYTXCzbTCcLNQlRWoPrwmtMBaiZKfmYfaiOKN2XRZdnbUvc9/CKvs5qiH7zHwSZ6LemF/wW82tuA77TGIkBKJelMBZtgArQDwGt0AaItmpAIU2gDnAiCDZPes9mhmKoDbBogCINOYDYBYNCsVYKYN0AGALIOobiZCbqs7qqeCFQGsEA/P5w+3wdWtnvS2Wr1GLSB2YJsLGUpQW/R9fvq27YwaURfGjGHQuX131MdjPuuiY14/AxiZJTb3AJxrrUbcnxJfg/gpKfG1iM9OiZ+J+JyUeAvic1Pi6xCflxJfj/j8lPgGxLNT4hsRD6XENyEeQNwX+mgc/Y0BVez7AcN9sP8nDNdQbDTskDDSIcwYkUk5VkSJOsIKC2PCyxiKTgg1Rn0hZzZUY0GoMeICTUiJ+gARmhF2KQQAso14p0jyYisYKoQsI24h8Ij33JUsmhWnQCUAcRWISR+aSRQdDmpdw6KoXraJYq5j0QwuqAg6jc7LM6hGOia002gEwA0s6qUs+YBE5dDLdA+DW3xRPQKPV482/xbu9ZNPwi7KCNYQxqjoI9aXmeF1YrzflsAFyCxuYMHNilzYvxPwnSzqoRJdNAWcoRlAKG/ADEhc2g0YSuIJtJEJ8PTVZAvvi7cQhI4JW3j/xC08GM/4uBY+mPrEbuFD8RY+zIx5DrTw64kWPpZoId1OUQu/kaw+iBoTVP9byep/O17975yg+t+duPrfi2d8XPWfSn1iV//ZePWfY8b5YAOxfsAwgf269WKiGS8lmmHYzfhRshkvx/NMG60/sXuS9pPxXpbQnbtwIPsZb6KYPNTTlJBcuCxcAh077MoxuEZQDhxcyWb76YQ+SvOBWlgk7++n848d7Y8PSQi+ApTGf7X18/jwOSLQiy+Y9Ys4el+ZAL00nH8VbxmVYmPr1yzqpzwhNxt1hr0S9elv4xj8HTPmgihu/SmBuT8zPtkzMMwzaLJbf+GIO7SP9tWRDMzwDLaHy2o792DHTbn9jSGdwBPz/DW78nye46DxMfP89Xg7LRv/nCDtDBXhIF40jglMVX8DQKEiWjmst5Kj7Z04Ot6dAB20HLx3fL/QcvCPVCzFcc+Xgw9Sn9j4+zCOq4+Y8SF9/i4GrcheGmVhl1ksjIZYFWW+XFF3XSbby9Xl8vGTmboLQrvHrT7XyPbqc61sXEfF3ZAo7kYUh6LE6vslma++lM3NnEaDwUTjOewTi1iyGl+JV+PWE1Tj9gmqcVe8GnfLhkbVuAfkigBWRd34B4r8fNQVywnNsr4YzbEFmb+FUesHF4CdwIwDSDjFujWeIBu3IGE2KKs2hGJcioS51n/EE1TSfgB7Ny/EExwGSIWhedYf4glOUg0Qmg9iqJ2HZixDQrY1KNsJLrquDYVA3bMTdINMuwas/fEEd1LO38Pl/D2unILQ+LjH9/44flM/GB//YPypf46/8M9xyC/hh8/j7R+NF46PA4hftN8P1GADcMSqxd4IWyPQv9Tcde+OW4dAdwQnEs6V8lRI6dKuNOJfxmCQVgWlKpK9DJo1ECROo6dz3pQnOFMKzXMlZEamkRTAxY+VU9NVVQuwRQkwR11DQ2OD5MCZDyzYn1K3sMhscSIzHBe49Inah1qk664+ttxkRe3DZ/r5hjLoVyljPZF7uqiRyHBmGr/rcYX8W8qAT46F9BOTKDXZIPvQpIB/VAEnqa0AuGJh1SdRvaqUg8+1rKySxF6VgBt2ybJIIaqtABiajcCA6NFULxlZcxianKd7GdQAg0tCKAB2cQXA2Gwi7hD6ULkb4O6kfNKNWsDDU8Bq6sHhSgbvHuRgP6kCYM/xCoAziJ/OKWWQAuAMGEQVNpkNrgDYhxGbUACcDWULuSdWAKydUAGwuEupwN3kcXcpxFYOXdtwhWBOfNwvSh/3HGxREsxR19JUt0pKGvbUlsNQelNjiwa1cRC52+G1422Q8mnw2onF9b3bOrLiT9bUr2o6c0NjVvzhmug24uzOjj+nN22Y7DgMZWDD6SsaV21sXN+0vC4zEeKlZSasjfLyfMmndm6+JICdV24SJqXU3CRcSrlc6+k6D2mc7C9u6d3e3uMmhZPreNlcO2o/L9crUpvWQ4/kcq6gsr9YyO8YSXjx1BCZUSECwhaPcgp59jQpKe857X1mAy47ou0D/Sefa+n3WrwbFye7EXMtXbfzsf2cMjLsheZjb0tOXp/0uc+LSykjPvfLy6qgxnuhUlEGJeAwoVNZCc71chh2hrHnhTD0XF0Gw861pUpNZYVSC4PPtQtJgxx40aFBrjZ9KeRFpEqeCd2qSll1FdlyVgILaYEAizi4x5O24D2aDCXhUKCPNQJ6wvE0oMmTNDlfk6do8jRNBgN5Ne5m9GpSr4+fhJMqfGOmXHTKrNncncPdudydx9353A1xt5i7C7hbwt1S7pZxt5y7Fdyt5G4Vd2uZz+/BcgNrcbh7M3B5I8FqvAFbIkwJK4YLH0A1rBq4DlIcYYfhBY+1M+wkOIcW1owsyOe7wi7DBx5wPawb2Vi33GG3kQu+cE/YY+Qx5vaGvcZkxjwZ4QyjgDFvZjjTmMpYRlY4y5jOcJsiM18DVpIsrJjQEg01Npx32J20Ru9JWqP3Jq3RZwhr9LgMUjNbHSFvF9RDZziyWp0htcuJWxqn0aqFsrrA8GFovlZXyNflwhWNy9+qh7K7cB2To2e3ukO5XWA6CLhzWj2hvC6QCSd5clu9ocldXlzDeAOtGaGCLiykUzLyWjNDU7tg535a5qTWrND0riyspMCS6nBz9QRvBK0CWluxZVAKsGUIWq5IdsRv+kvJwS10lw9pYuEsRP8et3CmKDe0v2AkPkdiQY2p+4f8dGNiKVob7a9t2ltxtbMSLjohQtPdcean3FIcV6vFafljfgmLBSfUlDxRrUjWNNkyex1I15d7Qk2WIj++rSlP22ycBBP/niGCk6Mrff05Dl3pTY0vR2WViW1IafUn2oaU1VbLtaVk2ZXvQvgSgzteLDHcsquMPQgWlxxdx+4jwHcfmMjaoFNy4BCGdUTNkg2/L5u7uXkUnsTDkzGvdbD/M2c7Zh8Y+bEK0BUuLncZ19IOcRjO0W/bG9BSthvcZJAD1jr4dkOHoXax0/CKeeBw+mErAO9ZhlDY0ayQrifaVKszMEMcliOiRVymy1bkAW0enFij4AnNk6XZL2OSQLcfGfZI6qHm629S/crytdDTWQ5dIycFKgMaTgpUib3XSYEqIDDxcUBCBY/zY2F4vUshcnGyjFqg1/DjYHhGVZJ+cqAaGJs9aU7VGC5tpeZCs7qjvbOjJlpeFo2VwipndXVZLGZGK2Olte3ltZ3V0WhHZ3msvKa9ImbWdi6MVURrKypLKztLzcqK2jaTtMzDxCPXTN62DpS1gU5pGbL+f1z/FJBQSwcI+kJRSHPrAQBy7AEAUEsDBBQACAAIAEKAQzwAAAAAAAAAAAAAAAALAAAAY2F0YWxvZy54bWzVPdly20iS7/0VCr1bqPtgyD1hS5atGantleSemX1xgCQoYZskOABoW/P1W7hIgATILPCCo0Mt0kJVIrOyMrPyqsu//ZyMz757YeQH07fn+AKdn3nTQTD0p89nb8/n8eiNOv/b779dRj8GZ+bRafT2/CWOZz3H+fHjx4U7DPrexSCYOKOxG7045qmBG7vj4NnR57//dnZ2mU8dJV/M12SaEjRyfubkfxmNvZ/LP7ELlLxKf+6Ph+ZBSgU9P5v4U38ynzzOZ7MgjL3hn8XTNHs6nerSKYO8HHluPA+9An7+9U00CP1Z/GbozaLlG+R/G/ljLyomK4+/HPv90A39xWzZ99ezmRu/vD3Pv11EP0bn2QMJwimgs6k78d6eB+Gz4479795sOHLi0J1Gfpy8qXPtT7xp8tIGySBBmAhGNCWcI2QQi/znafoaVy/e4K9oPnl7TrSUiCNN5flZAcyAG3qjM3+YQrooIF2UIPVKkJzfz8oDZ+nAd4+G0PHrzLxt0yOf+//nDeLiKb/81KWT4WuJ/tPi87UfmrltCEGJoOYpzrAdIWphnpYk/sR99iLn9jb5vUoA1kQALKT5q+aUbydABqFXQOgEul+ub1YQ5ogJpkQjwlwSKqViYHyXIGrRSWXXxTz2x1Hv/WvsvQtD97XALmpPpk2kryHdoQj8dHtTQ2GiMWmksKQCCWVkDJjEJSAnp/FyufdCv+ugnoJcNW9KorVGGAuiwBSsgAHjehWMg/Bx5g4W2O51BbJBQz+ajd3X3ns/nriza6PhD7RyJQrsZenK1AGKUyKMYjUPaLh4KUM5rUg1ixTMY+cmCCduDNcgFGPGtVRiO8oZhF4B4ejoTn46gyD0nNsbYy++iyJviSajglBGJEa03lJAWGhuHqhf2cnPi2TmXnnm067mSzwZO5+e7u+e3OfVxaTN2pFzbYSTINsXMwHQWwA4Mev607+M7XNnfq3iippw1Voio8kkQE2l0/fy6buA6aenpy9WyBKzRc3CIojdk2G7BHEAhJskeYXQuxHqu+/9MOdQ58qbxl74T386DH6AhRqlSgksQHI8B9SrAjotlyQ/xpApWxxa4Q1WMVaYEMUJQIibn146t72h0KTi7s0ReNszW60e++G25k9hyTy+uLNWAL/88dH+ZWfZUNthua599P/b6lU/3sLoauw5IPWevWDSMysd+j/tEEllwud5bD60IsGDF9kSYVUEWgytqkUwYR7Mrnenz2O79yy8bb33buQJZjV2kHB/1HucBXG6EWAvO/Xi3tT97j+bdX8Kvj7cWcEMZl7oxgnY69BNpKYdtt+NiDVbIQwGXhSZ0R+Sf9g2xb/u7+78aOtjpbX4Evjbp63bNH//8qHFBs/Z9D4YAndS9BrF3qR35c7cvj/2Y9+L2knPdu87NEe43sfQHxq2mU+mVmNHQbKCHyZ9bzj0hjdBOzq3k/rudBrEbu7A837G7xbfW8iG20TZT92xtXwYZozfSwwF8/thbrnlMwomlHt63a6Fth3BbSTFR6PJQZKibvDV/b//0WKwNzZ2xJX5/5+fW1Lp3jMaZ7B1gyylm5FpD95/5l6UDH0Jhnar6+UC+cYfGwZpty1bmQll7r4PjFHalr0zafQlyPzbdtjnfHad/bZxKl37qRfdDbeOqoWYmEcQAVpD8Itn3xhZZhIvTKyeL+mnNiR7NzaGdZsVTxe7cIpsHv5gbATvQxha7qOFnWBY60Py2RLDxfhE8gInqNtRVkDjIDCMEc1Co41HLXb/VRB6EA1TZsNnL37yJ7bUye0Ss4ogiwS0fnXk++S5rVcu0fVWK5djlWKUbGg3HrxYAl9K4Rt34o/ttna+q+7SX1Yjv/uRnxpGr70/Fx9tuOCDUc2u3VaOjE1sqAxTGcYkbUOKr1PfjhC57n34+N5e9W63lja7/cvss20E0L7ad5yhVVCjhsFvy1IGNK4h1gRDsOJ+AIGrM6NAA9d9DxZkqbG+YAyw7rkAjStzLJxbyw4MC/5c8UdYv2CDibaZA2pcKLD1z+TAbUUK2KxF1YUC2U/r9pzFxthoktkIEYj0qD2dXRtMvOEdYIU3mTmA1Vzz+9gs6Jrvpmnwig8E8F4VH4gN7lUbBYTNJhsFrmTWbRRLWXXtZQ518HZcOe5UXfcblsKOI+u9LXZjW1Ckzkdjw5urRscOwf7KWt82LPZhs2EWjktn4biE5tpRLYRkSNLtoZUa9+hp40i5OHT+nkmDKsqNGUBMYcSkpoBgUiFvcwDdwPb92JsOwdhixBnV5j/AAhfo5hBOi27JHHHKlkgpZkglacwVIFxphMxT29Fussy6g//qCadEA6l0Y5xYCSIkQZCl33SeaksHC/N3x8yKymmsII7BnUvWmHNAhUCYYU0AybV1h75dfSd29lXnExoK6VQJHABlFKXJI0QLCxlVgXPanZqpfsecQ5dBP2BGk6CCU40BeC+9eEsge7FYKi6QFtlqk5/f/HxjLNFGmnHGCBa8Hm1DFkWIqN96RbZaZWYrXHfO1QfbT4ya9aNSANRMfYb+qZm3SER6CoLxezeE55JymtRpcEgWcJGDtIBxWpRjo9+cxN20iixuThoXhCiqCaQixczey2YHeLCKbKXDOA+OXu+wCA2W6x2obq5wSbaPkuY/eMHDAsbe452tssN2S92yMBh+0QKDBp5IrPOGzaaU0ZeQ41lNSPoAS/QrFBesxuRbmzK5rysxqTOXHFBCJvIRGQEJKNRa+NMWME58rs4WyVkG6YEqkEvBzPELAWTXeiLA0XEu7LUFC9dWGAgi6002giVHiSFUrwILm2119rZo1tqAsCHlIofNZ6GNO7stO6X+SefKLHKy2N+uvmDCJfgoRAgVWAsMyYQv8ghWIO1K8tUl3D85FJwcFGnFleAAuVJHDtU1cuRVTHkyDlDQSGNCIU0gVbDVZJ/TCta6pefwpcfG4ibmcAwwBOqWnndt6evIQeF+XK2Q1ko3VHhtJQf9FcjB4NyBOBMCM9ZSMLBfgRwYTA6FJUIYtSQG/hWIQeBbhXNjzBjrrB01SNeoEXmhb7781wud28fFZ7D2YIhyxTSBeFeXoHoVUEc9lu7JK/sz6aTiXD3++SH9BD7KUKmNwuWaASRtBqRXArI/x8LhXAO7RPBtD6hNHHWMsHidGEFwmYqo4YOW6hZ1TYjkhmeRrwqtNNUSSYLMY2DTs4DQDbd2Y9Od5o4BhJvzF5McEBcsHNtda7Pz7OeuHKMyPt4uU+KBUSlDG4GpZAhAglJKXA6xV4Z4UD9rBerd//4TmEAOqeet89/t+oZ/ePP/mbt7TcA/klfSnvY2b7Ar9FW6Ns1ToevJ7ZPSVh2F5s9RslNvkk/gfUpoktsjFNxXntItA9dbgju2B3tPBl7JV/1+HAzW2k00WnhcY6QklYCgbdlZnQNpv2eP3IZjkQQO7MJBCSaIGH0PzohZQDgxupltU6SBQyPYSijFKYF0lVhJND8tulkKq1Pky0Ob50imKZdSAY6BKxn5R0f3GxqJkRy63lD1Ce4PUN8bSokHg1GfDZB2ifZkvz/0yIAolw5G2hMD2teUIeahkZGJ31Lp9S2XXt8eZ6EflyOQBKWmf9IVqm4jMKQUwaKhAeWh3m6DGM5r6h+9wTwEVIuBc4AWRTv5K+xNpaWR98z6vPbsrE9CKeYMQ0KJJaWWA+yVAdYiDq9RbWWmti1p37nZxiYF39JuTYgUJbkT3pOZAESz7tmuO1ezbCfsr2FwLuwlQ7vHOKypEmg0mAhBjJozMcQyWDZ9WYLphL4slSNBVaaiVDGJFUAUrdc8beespuYT+/K91RbWHcPlltZU5ylXlXRsrRp9DgQzLjGoUWOpcDsHsp0WdkX3wIqjk5uCucYtdcopJ1kZkjezNhKaUNmQgluXY1QCAvAqdz7z7pdOqqtfcK5oY1YdFZoLgbWEt9KugOnKChw5sW6tB1XrIF7agcEs3Y/pOHDX6rcaVS9DEiXxBAxIPc67PCxhdCICZxl+YxhRpASoQXceftsYeztyukvebWGBrECckkathyVVgmpDEqjWy+ff7dh30mLVpYmwaL+woBaWjLLm0AwyjKEI41Y2wgIKVNPDO8J0y+uX9tFwij4a4J7KSCGslAYYAtVGHVBy2vcf2aEhRAdrIwpTyFm1iLelF2vD7IJBKrPXrK0TY5zXAl65swgcbqcKG+ufag6Q+0URYAagEyZ4OeRaDocBtyGVlGimKbw1f2MAbn8GNjxQ2tkkoKw08+rFDd2B2Rkr1ZnJ/TJSNp9JjfGVlBDDyzNXAe1FTbet0KxNiMg6gH+9tWg2jpThW2GTD7EE0om9WelgCERbSGowB+X/1PVJ7Iirr9xQcYl4UnvV3BGEJ0FABiprqW3cuG9fup1PvPO+5ROl35cccebMkVQsNzbbF0JjZLjANvPNxg23UrNi7Y1bzPCPz7fq6y4TFHUiO87Ad0XiYedXoDvPYNeivSGVfMcZyM4zoM6cyLIt+Bi/lpthpI5wuSH5jjOdbECA/M2wz+fviMqpdEmDxpe0lAIjSCZGfTe27YxSF5Y6tE96vdIVAnGUnuFyR2rWTrFFu+6axCWwsrW/YaCZupBujMfNX2xalc1At66KNezKquyr5+FJ7ji9D9rdb0qkkXSAw1W5c8oarNOSIU89y3ofg48WBClzrISXc2bTnxbT4gB5703nVo1imGaKci4Afp3i/LiA0YnjY+rayRwJi3avdm2eqFaaa8Lg0dbMu5Od/1eBHvMosn9HxCzrFLMSu6Sak8YjCUNKi6TCESAryj2hAf5i+DVULe82yCF8Dn1Du9b3XVj3Vm/bpbquzVhHNE6+G5dXf0ELejRNMks4AdQwrV0v1pWw94kTDwqPfrnxNNCvLzlmTHAG6ZJS0966EzxX0gDJ/RtmZ9nJfyPasPmPWea05puxCrI7knyZUJhf7wbtpqa4IQblVs2CChini27A7wDa4Wxj257+2NkNV/6wmuCAhcSKblhrhJVQkLBWHi1eQNiLHKwJQR/lYvpUYqT5085K/jRUZDAsMdIYEnbZmrPdlpQVc2c3znl3c//FDaOyU8joDKplY4oiJZiKpOciQG9ny1yCYZPrkRBqB6fjYWTI4RLpH7znDz+3Fl0eTBxBrkbY8TRu1cUt6VIrqfmBH8dP1MGtapG5setklyeUTlGCoub9RKVKDuMcsJ9KVzMAzgzVLDwbt+Fa+4wD8Hs1RXJjO4r9ZycdWT8vxVlZyFKx4XCkCGWMKXC0YQnitAjnVR2l4gmoM4YKLhTnkH2wXqGxF6vkBIUZ9dcprPBKcg072tAQhWiGGCBVtb7Zfxe4JtcQy/tDoU4EypkUGpIluXZF6YkVRd7edHHrKTTvR5gtwgxDAPTi2s2qHYlFVu4DhTYH4IQpIyEg3Z9q7x3dd/6LzaWPXSup2OumrfhQgSEmyjCSQkoJ37gVMCdGPO3j8Ml/fhmbnzV/U2MnB3Ms10wjowOhnRxKME4dZiquRHXKt6PCq2V4UivDAJGChntYT4t+XiZUXNQKzZ+QSjIuOANw+cpVsF2xWivX2y3QNmtJZSPaST9Uo6bgbS/XAHXHu5ynji97GYFrlJUgODHeWiWOL+HtT20dznXRrYL6/ASyvEoQHA1QQiCYdF67rvBXPX8U6QM3fpxlh4MNUYUNuUBewCJ9oASjE4bLY01bokaLBTNCuJCKAfIlKlHeE9vc+SVYYTDwosj6IiyizEHDrDQo6zyPUa+C6k5kbOGcK3qqQnNlEqOOcwG6m3K1b2sXNPmyv8KyAFYKhRpTO5KqL4IYhlwAtNrCwcbHv3LT92attNk5bREi2CG6YHE9uf2N9rtcT9z5CFzGidV2HSVulFQ2N0kwqoZxSMVlXU+QA/Dj5iDXsfmx5grqXV58r6nB8Fe2yYNarec72dbYKAj3Y5k9+fH6nZ0bavGTS4WlgnSVX9z/l0HohNX+0fCUZTcoluoxQiGV8pmBXQLyq9rt6xlQaeszO+sOY6k5M+f4VvmvZYDbadS+XdtJTMVyXOY+MDul4Z5nhWmjEWUOR4IxIhHAbCyHZtbg7YVJD3PTc4kPZ2ky9DIXGx75S2goiEZ2RfYZvF4JniVv7DmleFuG4E5TrSabg+zlLOnoMV284l3gTqCiG83ndMxuSByqZaWFiIKgPPXi3teHu7vAHXphEmsp6sZ3e4sCbfiLZFZWsmZ2i5WOaItwWzTrerzanucOYnxWcHzw/jP3oGVlbWvOt265A7c23bpzbeFv2rk7uYMb+RyE2jqfg3igyue2tGjm851Nl/qbF/Z0wU5ei29xhRsTHFNw77NVQG1JcZRLy/KafvD1fkl5mEKQOwnqmwd0ixjJz9epnzBver952QGDZXMyptRCEw5pAmt+emUI23eYZU/S/ftPYE3ldq87X82ktx5q0+u2dUkcpDZtX64g+x50u7uQ6lfBYmjdKuzL9ZTsnnTb7LbN4yAYR040C/1pPLK4X8r8SUrBIbXfCYTeAkItZoBuBbCWD3/MDcn3cn/U3PqdmlYWUPT/3tDIc7dyZxOPtIjyGb1jXQEnuKIScn3tsgYV7vUpl/120MtTaoue6wBoV0SOlcCcQrrhriua03paa1yH1QMqOGGbSWxYB3Kh69ZD8bF54i/Pm71xI/pm4sVuErMtYVD8U068p7TNRf6WjU+996dDt5/50RsfunpJXUvft012704NvYYbn/kjmF4Fk4kfx0Za1U986TSieTn0zYLEUXnh0n/Jqff46d0bwvN7eLyE0O44Msh9d8dz82ftScrUCKGhxlJgMdSyP5QEUzwYDInqj4gnkPmElGuMyn5fuIiQPkdKCj0kfHBuAJZes/Iyl87Y74du+Jp8Lb74XvrXy5Fhm+yTk380S/tj8Ptv/w9QSwcI0fcRSzEUAABXvAAAUEsBAhQAFAAIAAgAQoBDPPpCUUhz6wEAcuwBAAsAAAAAAAAAAAAAAAAAAAAAAGxpYnJhcnkuc3dmUEsBAhQAFAAIAAgAQoBDPNH3EUsxFAAAV7wAAAsAAAAAAAAAAAAAAAAArOsBAGNhdGFsb2cueG1sUEsFBgAAAAACAAIAcgAAABYAAgAAAA==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/TableTools/media/as3/ZeroClipboard.as</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[77u/LyogQ29tcGlsZSB1c2luZzogbXhtbGMgLS10YXJnZXQtcGxheWVyPTEwLjAuMCBaZXJvQ2xpcGJvYXJkLmFzICovCnBhY2thZ2UgewoJaW1wb3J0IGZsYXNoLmRpc3BsYXkuU3RhZ2U7CglpbXBvcnQgZmxhc2guZGlzcGxheS5TcHJpdGU7CglpbXBvcnQgZmxhc2guZGlzcGxheS5Mb2FkZXJJbmZvOwoJaW1wb3J0IGZsYXNoLmRpc3BsYXkuU3RhZ2VTY2FsZU1vZGU7CglpbXBvcnQgZmxhc2guZXZlbnRzLio7CglpbXBvcnQgZmxhc2guZGlzcGxheS5TdGFnZUFsaWduOwoJaW1wb3J0IGZsYXNoLmRpc3BsYXkuU3RhZ2VTY2FsZU1vZGU7CglpbXBvcnQgZmxhc2guZXh0ZXJuYWwuRXh0ZXJuYWxJbnRlcmZhY2U7CglpbXBvcnQgZmxhc2guc3lzdGVtLlNlY3VyaXR5OwoJaW1wb3J0IGZsYXNoLnV0aWxzLio7CglpbXBvcnQgZmxhc2guc3lzdGVtLlN5c3RlbTsKCWltcG9ydCBmbGFzaC5uZXQuRmlsZVJlZmVyZW5jZTsKCWltcG9ydCBmbGFzaC5uZXQuRmlsZUZpbHRlcjsKIAoJcHVibGljIGNsYXNzIFplcm9DbGlwYm9hcmQgZXh0ZW5kcyBTcHJpdGUgewoJCQoJCXByaXZhdGUgdmFyIGRvbUlkOlN0cmluZyA9ICcnOwoJCXByaXZhdGUgdmFyIGJ1dHRvbjpTcHJpdGU7CgkJcHJpdmF0ZSB2YXIgY2xpcFRleHQ6U3RyaW5nID0gJ2JsYW5rJzsKCQlwcml2YXRlIHZhciBmaWxlTmFtZTpTdHJpbmcgPSAnJzsKCQlwcml2YXRlIHZhciBhY3Rpb246U3RyaW5nID0gJ2NvcHknOwoJCXByaXZhdGUgdmFyIGluY0JvbTpCb29sZWFuID0gdHJ1ZTsKCQlwcml2YXRlIHZhciBjaGFyU2V0OlN0cmluZyA9ICd1dGY4JzsKCQkKCQkKCQlwdWJsaWMgZnVuY3Rpb24gWmVyb0NsaXBib2FyZCgpIHsKCQkJLy8gY29uc3RydWN0b3IsIHNldHVwIGV2ZW50IGxpc3RlbmVycyBhbmQgZXh0ZXJuYWwgaW50ZXJmYWNlcwoJCQlzdGFnZS5zY2FsZU1vZGUgPSBTdGFnZVNjYWxlTW9kZS5FWEFDVF9GSVQ7CgkJCWZsYXNoLnN5c3RlbS5TZWN1cml0eS5hbGxvd0RvbWFpbigiKiIpOwoJCQkKCQkJLy8gaW1wb3J0IGZsYXNodmFycwoJCQl2YXIgZmxhc2h2YXJzOk9iamVjdCA9IExvYWRlckluZm8oIHRoaXMucm9vdC5sb2FkZXJJbmZvICkucGFyYW1ldGVyczsKCQkJZG9tSWQgPSBmbGFzaHZhcnMuaWQ7CgkJCQoJCQkvLyBpbnZpc2libGUgYnV0dG9uIGNvdmVycyBlbnRpcmUgc3RhZ2UKCQkJYnV0dG9uID0gbmV3IFNwcml0ZSgpOwoJCQlidXR0b24uYnV0dG9uTW9kZSA9IHRydWU7CgkJCWJ1dHRvbi51c2VIYW5kQ3Vyc29yID0gdHJ1ZTsKCQkJYnV0dG9uLmdyYXBoaWNzLmJlZ2luRmlsbCgweDAwRkYwMCk7CgkJCWJ1dHRvbi5ncmFwaGljcy5kcmF3UmVjdCgwLCAwLCBzdGFnZS5zdGFnZVdpZHRoLCBzdGFnZS5zdGFnZUhlaWdodCk7CgkJCWJ1dHRvbi5hbHBoYSA9IDAuMDsKCQkJYWRkQ2hpbGQoYnV0dG9uKTsKCQkJCgkJCWJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKE1vdXNlRXZlbnQuQ0xJQ0ssIGNsaWNrSGFuZGxlcik7CgkJCWJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKE1vdXNlRXZlbnQuTU9VU0VfT1ZFUiwgZnVuY3Rpb24oZXZlbnQ6RXZlbnQpOnZvaWQgewoJCQkJRXh0ZXJuYWxJbnRlcmZhY2UuY2FsbCggJ1plcm9DbGlwYm9hcmRfVGFibGVUb29scy5kaXNwYXRjaCcsIGRvbUlkLCAnbW91c2VPdmVyJywgbnVsbCApOwoJCQl9ICk7CgkJCWJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKE1vdXNlRXZlbnQuTU9VU0VfT1VULCBmdW5jdGlvbihldmVudDpFdmVudCk6dm9pZCB7CgkJCQlFeHRlcm5hbEludGVyZmFjZS5jYWxsKCAnWmVyb0NsaXBib2FyZF9UYWJsZVRvb2xzLmRpc3BhdGNoJywgZG9tSWQsICdtb3VzZU91dCcsIG51bGwgKTsKCQkJfSApOwoJCQlidXR0b24uYWRkRXZlbnRMaXN0ZW5lcihNb3VzZUV2ZW50Lk1PVVNFX0RPV04sIGZ1bmN0aW9uKGV2ZW50OkV2ZW50KTp2b2lkIHsKCQkJCUV4dGVybmFsSW50ZXJmYWNlLmNhbGwoICdaZXJvQ2xpcGJvYXJkX1RhYmxlVG9vbHMuZGlzcGF0Y2gnLCBkb21JZCwgJ21vdXNlRG93bicsIG51bGwgKTsKCQkJfSApOwoJCQlidXR0b24uYWRkRXZlbnRMaXN0ZW5lcihNb3VzZUV2ZW50Lk1PVVNFX1VQLCBmdW5jdGlvbihldmVudDpFdmVudCk6dm9pZCB7CgkJCQlFeHRlcm5hbEludGVyZmFjZS5jYWxsKCAnWmVyb0NsaXBib2FyZF9UYWJsZVRvb2xzLmRpc3BhdGNoJywgZG9tSWQsICdtb3VzZVVwJywgbnVsbCApOwoJCQl9ICk7CgkJCQoJCQkvLyBFeHRlcm5hbCBmdW5jdGlvbnMgLSByZWFkZCB3aGVuZXZlciB0aGUgc3RhZ2UgaXMgbWFkZSBhY3RpdmUgZm9yIElFCgkJCWFkZENhbGxiYWNrcygpOwoJCQlzdGFnZS5hZGRFdmVudExpc3RlbmVyKEV2ZW50LkFDVElWQVRFLCBhZGRDYWxsYmFja3MpOwoJCQkKCQkJLy8gc2lnbmFsIHRvIHRoZSBicm93c2VyIHRoYXQgd2UgYXJlIHJlYWR5CgkJCUV4dGVybmFsSW50ZXJmYWNlLmNhbGwoICdaZXJvQ2xpcGJvYXJkX1RhYmxlVG9vbHMuZGlzcGF0Y2gnLCBkb21JZCwgJ2xvYWQnLCBudWxsICk7CgkJfQoJCQoJCXB1YmxpYyBmdW5jdGlvbiBhZGRDYWxsYmFja3MgKGV2dDpFdmVudCA9IG51bGwpOnZvaWQgewoJCQlFeHRlcm5hbEludGVyZmFjZS5hZGRDYWxsYmFjaygic2V0SGFuZEN1cnNvciIsIHNldEhhbmRDdXJzb3IpOwoJCQlFeHRlcm5hbEludGVyZmFjZS5hZGRDYWxsYmFjaygiY2xlYXJUZXh0IiwgY2xlYXJUZXh0KTsKCQkJRXh0ZXJuYWxJbnRlcmZhY2UuYWRkQ2FsbGJhY2soInNldFRleHQiLCBzZXRUZXh0KTsKCQkJRXh0ZXJuYWxJbnRlcmZhY2UuYWRkQ2FsbGJhY2soImFwcGVuZFRleHQiLCBhcHBlbmRUZXh0KTsKCQkJRXh0ZXJuYWxJbnRlcmZhY2UuYWRkQ2FsbGJhY2soInNldEZpbGVOYW1lIiwgc2V0RmlsZU5hbWUpOwoJCQlFeHRlcm5hbEludGVyZmFjZS5hZGRDYWxsYmFjaygic2V0QWN0aW9uIiwgc2V0QWN0aW9uKTsKCQkJRXh0ZXJuYWxJbnRlcmZhY2UuYWRkQ2FsbGJhY2soInNldENoYXJTZXQiLCBzZXRDaGFyU2V0KTsKCQkJRXh0ZXJuYWxJbnRlcmZhY2UuYWRkQ2FsbGJhY2soInNldEJvbUluYyIsIHNldEJvbUluYyk7CgkJfQoJCQoJCQoJCXB1YmxpYyBmdW5jdGlvbiBzZXRDaGFyU2V0KG5ld0NoYXJTZXQ6U3RyaW5nKTp2b2lkIHsKCQkJaWYgKCBuZXdDaGFyU2V0ID09ICdVVEYxNkxFJyApIHsKCQkJCWNoYXJTZXQgPSBuZXdDaGFyU2V0OwoJCQl9IGVsc2UgewoJCQkJY2hhclNldCA9ICdVVEY4JzsKCQkJfQoJCX0KCQkKCQlwdWJsaWMgZnVuY3Rpb24gc2V0Qm9tSW5jKG5ld0JvbUluYzpCb29sZWFuKTp2b2lkIHsKCQkJaW5jQm9tID0gbmV3Qm9tSW5jOwoJCX0KCQkKCQlwdWJsaWMgZnVuY3Rpb24gY2xlYXJUZXh0KCk6dm9pZCB7CgkJCWNsaXBUZXh0ID0gJyc7CgkJfQoJCQoJCXB1YmxpYyBmdW5jdGlvbiBhcHBlbmRUZXh0KG5ld1RleHQ6U3RyaW5nKTp2b2lkIHsKCQkJY2xpcFRleHQgKz0gbmV3VGV4dDsKCQl9CgkJCgkJcHVibGljIGZ1bmN0aW9uIHNldFRleHQobmV3VGV4dDpTdHJpbmcpOnZvaWQgewoJCQljbGlwVGV4dCA9IG5ld1RleHQ7CgkJfQoJCQoJCXB1YmxpYyBmdW5jdGlvbiBzZXRGaWxlTmFtZShuZXdGaWxlTmFtZTpTdHJpbmcpOnZvaWQgewoJCQlmaWxlTmFtZSA9IG5ld0ZpbGVOYW1lOwoJCX0KCQkKCQlwdWJsaWMgZnVuY3Rpb24gc2V0QWN0aW9uKG5ld0FjdGlvbjpTdHJpbmcpOnZvaWQgewoJCQlhY3Rpb24gPSBuZXdBY3Rpb247CgkJfQoJCQoJCXB1YmxpYyBmdW5jdGlvbiBzZXRIYW5kQ3Vyc29yKGVuYWJsZWQ6Qm9vbGVhbik6dm9pZCB7CgkJCS8vIGNvbnRyb2wgd2hldGhlciB0aGUgaGFuZCBjdXJzb3IgaXMgc2hvd24gb24gcm9sbG92ZXIgKHRydWUpCgkJCS8vIG9yIHRoZSBkZWZhdWx0IGFycm93IGN1cnNvciAoZmFsc2UpCgkJCWJ1dHRvbi51c2VIYW5kQ3Vyc29yID0gZW5hYmxlZDsKCQl9CgkJCgkJCgkJcHJpdmF0ZSBmdW5jdGlvbiBjbGlja0hhbmRsZXIoZXZlbnQ6RXZlbnQpOnZvaWQgewoJCQl2YXIgZmlsZVJlZjpGaWxlUmVmZXJlbmNlID0gbmV3IEZpbGVSZWZlcmVuY2UoKTsKCQkJZmlsZVJlZi5hZGRFdmVudExpc3RlbmVyKEV2ZW50LkNPTVBMRVRFLCBzYXZlQ29tcGxldGUpOwoJCQkKCQkJaWYgKCBhY3Rpb24gPT0gInNhdmUiICkgewoJCQkJLyogU2F2ZSBhcyBhIGZpbGUgKi8KCQkJCWlmICggY2hhclNldCA9PSAnVVRGMTZMRScgKSB7CgkJCQkJZmlsZVJlZi5zYXZlKCBzdHJUb1VURjE2TEUoY2xpcFRleHQpLCBmaWxlTmFtZSApOwoJCQkJfSBlbHNlIHsKCQkJCQlmaWxlUmVmLnNhdmUoIHN0clRvVVRGOChjbGlwVGV4dCksIGZpbGVOYW1lICk7CgkJCQl9CgkJCX0gZWxzZSBpZiAoIGFjdGlvbiA9PSAicGRmIiApIHsKCQkJCQlmaWxlUmVmLnNhdmUoICJUaGlzIGluc3RhbmNlIG9mIFplcm9DbGlwYm9hcmQgaXMgbm90IGNvbmZpZ3VyZWQgZm9yIFBERiBleHBvcnQuICIrCgkJCQkJCSJQbGVhc2UgdXNlIHRoZSBQREYgZXhwb3J0IHZlcnNpb24uIiwgZmlsZU5hbWUrIi50eHQiICk7CgkJCX0gZWxzZSB7CgkJCQkvKiBDb3B5IHRoZSB0ZXh0IHRvIHRoZSBjbGlwYm9hcmQuIE5vdGUgY2hhcnNldCBhbmQgQk9NIGhhdmUgbm8gZWZmZWN0IGhlcmUgKi8KCQkJCVN5c3RlbS5zZXRDbGlwYm9hcmQoIGNsaXBUZXh0ICk7CgkJCQlFeHRlcm5hbEludGVyZmFjZS5jYWxsKCAnWmVyb0NsaXBib2FyZF9UYWJsZVRvb2xzLmRpc3BhdGNoJywgZG9tSWQsICdjb21wbGV0ZScsIGNsaXBUZXh0ICk7CgkJCX0KCQl9CgkJCgkJCgkJcHJpdmF0ZSBmdW5jdGlvbiBzYXZlQ29tcGxldGUoZXZlbnQ6RXZlbnQpOnZvaWQgewoJCQlFeHRlcm5hbEludGVyZmFjZS5jYWxsKCAnWmVyb0NsaXBib2FyZF9UYWJsZVRvb2xzLmRpc3BhdGNoJywgZG9tSWQsICdjb21wbGV0ZScsIGNsaXBUZXh0ICk7CgkJfQoJCQoJCQoJCXByaXZhdGUgZnVuY3Rpb24gZ2V0UHJvcCggcHJvcDpTdHJpbmcsIG9wdHM6QXJyYXkgKTpTdHJpbmcKCQl7CgkJCXZhciBpOmludCwgaUxlbjppbnQ7CgkJCWZvciAoIGk9MCwgaUxlbj1vcHRzLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJCXsKCQkJCWlmICggb3B0c1tpXS5pbmRleE9mKCBwcm9wKyI6IiApICE9IC0xICkKCQkJCXsKCQkJCQlyZXR1cm4gb3B0c1tpXS5yZXBsYWNlKCBwcm9wKyI6IiwgIiIgKTsKCQkJCX0KCQkJfQoJCQlyZXR1cm4gIiI7CgkJfQoJCQoJCQoJCS8qCgkJICogRnVuY3Rpb246IHN0clRvVVRGOAoJCSAqIFB1cnBvc2U6ICBDb252ZXJ0IGEgc3RyaW5nIHRvIHRoZSBvdXRwdXQgdXRmLTgKCQkgKiBSZXR1cm5zOiAgQnl0ZUFycmF5CgkJICogSW5wdXRzOiAgIFN0cmluZwoJCSAqLwoJCXByaXZhdGUgZnVuY3Rpb24gc3RyVG9VVEY4KCBzdHI6U3RyaW5nICk6Qnl0ZUFycmF5IHsKCQkJdmFyIHV0Zjg6Qnl0ZUFycmF5ID0gbmV3IEJ5dGVBcnJheSgpOwoJCQkKCQkJLyogQk9NIGZpcnN0ICovCgkJCWlmICggaW5jQm9tICkgewoJCQkJdXRmOC53cml0ZUJ5dGUoIDB4RUYgKTsKCQkJCXV0Zjgud3JpdGVCeXRlKCAweEJCICk7CgkJCQl1dGY4LndyaXRlQnl0ZSggMHhCRiApOwoJCQl9CgkJCXV0Zjgud3JpdGVVVEZCeXRlcyggc3RyICk7CgkJCQoJCQlyZXR1cm4gdXRmODsKCQl9CgkJCgkJCgkJLyoKCQkgKiBGdW5jdGlvbjogc3RyVG9VVEYxNkxFCgkJICogUHVycG9zZTogIENvbnZlcnQgYSBzdHJpbmcgdG8gdGhlIG91dHB1dCB1dGYtMTYKCQkgKiBSZXR1cm5zOiAgQnl0ZUFycmF5CgkJICogSW5wdXRzOiAgIFN0cmluZwoJCSAqIE5vdGVzOiAgICBUaGUgZmFjdCB0aGF0IHRoaXMgZnVuY3Rpb24gaXMgbmVlZGVkIGlzIGEgbGl0dGxlIGFubm95aW5nLiBCYXNpY2FsbHksIHN0cmluZ3MgaW4KCQkgKiAgIEFTMyBhcmUgVVRGLTE2ICh3aXRoIHN1cnJvZ2F0ZSBwYWlycyBhbmQgZXZlcnl0aGluZyksIGJ1dCBjaGFyYWN0ZXJzIHdoaWNoIHRha2UgdXAgbGVzcwoJCSAqICAgdGhhbiA4IGJ5dGVzIGFwcGVhciB0byBiZSBzdG9yZWQgYXMgb25seSA4IGJ5dGVzLiBUaGlzIGZ1bmN0aW9uIGVmZmVjdGl2ZSBhZGRzIHRoZSAKCQkgKiAgIHBhZGRpbmcgcmVxdWlyZWQsIGFuZCB0aGUgQk9NCgkJICovCgkJcHJpdmF0ZSBmdW5jdGlvbiBzdHJUb1VURjE2TEUoIHN0cjpTdHJpbmcgKTpCeXRlQXJyYXkgewoJCQl2YXIgdXRmMTY6Qnl0ZUFycmF5ID0gbmV3IEJ5dGVBcnJheSgpOwoJCQl2YXIgaUNoYXI6dWludDsKCQkJdmFyIGk6dWludD0wLCBpTGVuOnVpbnQgPSBzdHIubGVuZ3RoOwoJCQkKCQkJLyogQk9NIGZpcnN0ICovCgkJCWlmICggaW5jQm9tICkgewoJCQkJdXRmMTYud3JpdGVCeXRlKCAweEZGICk7CgkJCQl1dGYxNi53cml0ZUJ5dGUoIDB4RkUgKTsKCQkJfQoJCQkKCQkJd2hpbGUgKCBpIDwgaUxlbiApIHsKCQkJCWlDaGFyID0gc3RyLmNoYXJDb2RlQXQoaSk7CgkJCQkKCQkJCWlmICggaUNoYXIgPCAweEZGICkgewoJCQkJCS8qIG9uZSBieXRlIGNoYXIgKi8KCQkJCQl1dGYxNi53cml0ZUJ5dGUoIGlDaGFyICk7CgkJCQkJdXRmMTYud3JpdGVCeXRlKCAwICk7CgkJCQl9IGVsc2UgewoJCQkJCS8qIHR3byBieXRlIGNoYXIgKi8KCQkJCQl1dGYxNi53cml0ZUJ5dGUoIGlDaGFyICYgMHgwMEZGICk7CgkJCQkJdXRmMTYud3JpdGVCeXRlKCBpQ2hhciA+PiA4ICk7CgkJCQl9CgkJCQkKCQkJCWkrKzsKCQkJfQoJCQkKCQkJcmV0dXJuIHV0ZjE2OwoJCX0KCX0KfQo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/TableTools/media/as3/ZeroClipboardPdf.as</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[77u/LyogQ29tcGlsZSB1c2luZzogbXhtbGMgLS10YXJnZXQtcGxheWVyPTEwLjAuMCAtc3RhdGljLWxpbmstcnVudGltZS1zaGFyZWQtbGlicmFyaWVzPXRydWUgLWxpYnJhcnktcGF0aCs9bGliIFplcm9DbGlwYm9hcmRQZGYuYXMgKi8KcGFja2FnZSB7CglpbXBvcnQgZmxhc2guZGlzcGxheS5TdGFnZTsKCWltcG9ydCBmbGFzaC5kaXNwbGF5LlNwcml0ZTsKCWltcG9ydCBmbGFzaC5kaXNwbGF5LkxvYWRlckluZm87CglpbXBvcnQgZmxhc2guZGlzcGxheS5TdGFnZVNjYWxlTW9kZTsKCWltcG9ydCBmbGFzaC5ldmVudHMuKjsKCWltcG9ydCBmbGFzaC5kaXNwbGF5LlN0YWdlQWxpZ247CglpbXBvcnQgZmxhc2guZGlzcGxheS5TdGFnZVNjYWxlTW9kZTsKCWltcG9ydCBmbGFzaC5leHRlcm5hbC5FeHRlcm5hbEludGVyZmFjZTsKCWltcG9ydCBmbGFzaC5zeXN0ZW0uU2VjdXJpdHk7CglpbXBvcnQgZmxhc2gudXRpbHMuKjsKCWltcG9ydCBmbGFzaC5zeXN0ZW0uU3lzdGVtOwoJaW1wb3J0IGZsYXNoLm5ldC5GaWxlUmVmZXJlbmNlOwoJaW1wb3J0IGZsYXNoLm5ldC5GaWxlRmlsdGVyOwoJCgkvKiBQREYgaW1wb3J0cyAqLwoJaW1wb3J0IG9yZy5hbGl2ZXBkZi5wZGYuUERGOwoJaW1wb3J0IG9yZy5hbGl2ZXBkZi5kYXRhLkdyaWQ7CglpbXBvcnQgb3JnLmFsaXZlcGRmLmRhdGEuR3JpZENvbHVtbjsKCWltcG9ydCBvcmcuYWxpdmVwZGYubGF5b3V0Lk9yaWVudGF0aW9uOwoJaW1wb3J0IG9yZy5hbGl2ZXBkZi5sYXlvdXQuU2l6ZTsKCWltcG9ydCBvcmcuYWxpdmVwZGYubGF5b3V0LlVuaXQ7CglpbXBvcnQgb3JnLmFsaXZlcGRmLmRpc3BsYXkuRGlzcGxheTsKCWltcG9ydCBvcmcuYWxpdmVwZGYuc2F2aW5nLk1ldGhvZDsKCWltcG9ydCBvcmcuYWxpdmVwZGYuZm9udHMuRm9udEZhbWlseTsKCWltcG9ydCBvcmcuYWxpdmVwZGYuZm9udHMuU3R5bGU7CglpbXBvcnQgb3JnLmFsaXZlcGRmLmZvbnRzLkNvcmVGb250OwoJaW1wb3J0IG9yZy5hbGl2ZXBkZi5jb2xvcnMuUkdCQ29sb3I7CiAKCXB1YmxpYyBjbGFzcyBaZXJvQ2xpcGJvYXJkIGV4dGVuZHMgU3ByaXRlIHsKCQkKCQlwcml2YXRlIHZhciBkb21JZDpTdHJpbmcgPSAnJzsKCQlwcml2YXRlIHZhciBidXR0b246U3ByaXRlOwoJCXByaXZhdGUgdmFyIGNsaXBUZXh0OlN0cmluZyA9ICdibGFuayc7CgkJcHJpdmF0ZSB2YXIgZmlsZU5hbWU6U3RyaW5nID0gJyc7CgkJcHJpdmF0ZSB2YXIgYWN0aW9uOlN0cmluZyA9ICdjb3B5JzsKCQlwcml2YXRlIHZhciBpbmNCb206Qm9vbGVhbiA9IHRydWU7CgkJcHJpdmF0ZSB2YXIgY2hhclNldDpTdHJpbmcgPSAndXRmOCc7CgkJCgkJCgkJcHVibGljIGZ1bmN0aW9uIFplcm9DbGlwYm9hcmQoKSB7CgkJCS8vIGNvbnN0cnVjdG9yLCBzZXR1cCBldmVudCBsaXN0ZW5lcnMgYW5kIGV4dGVybmFsIGludGVyZmFjZXMKCQkJc3RhZ2Uuc2NhbGVNb2RlID0gU3RhZ2VTY2FsZU1vZGUuRVhBQ1RfRklUOwoJCQlmbGFzaC5zeXN0ZW0uU2VjdXJpdHkuYWxsb3dEb21haW4oIioiKTsKCQkJCgkJCS8vIGltcG9ydCBmbGFzaHZhcnMKCQkJdmFyIGZsYXNodmFyczpPYmplY3QgPSBMb2FkZXJJbmZvKCB0aGlzLnJvb3QubG9hZGVySW5mbyApLnBhcmFtZXRlcnM7CgkJCWRvbUlkID0gZmxhc2h2YXJzLmlkOwoJCQkKCQkJLy8gaW52aXNpYmxlIGJ1dHRvbiBjb3ZlcnMgZW50aXJlIHN0YWdlCgkJCWJ1dHRvbiA9IG5ldyBTcHJpdGUoKTsKCQkJYnV0dG9uLmJ1dHRvbk1vZGUgPSB0cnVlOwoJCQlidXR0b24udXNlSGFuZEN1cnNvciA9IHRydWU7CgkJCWJ1dHRvbi5ncmFwaGljcy5iZWdpbkZpbGwoMHgwMEZGMDApOwoJCQlidXR0b24uZ3JhcGhpY3MuZHJhd1JlY3QoMCwgMCwgc3RhZ2Uuc3RhZ2VXaWR0aCwgc3RhZ2Uuc3RhZ2VIZWlnaHQpOwoJCQlidXR0b24uYWxwaGEgPSAwLjA7CgkJCWFkZENoaWxkKGJ1dHRvbik7CgkJCQoJCQlidXR0b24uYWRkRXZlbnRMaXN0ZW5lcihNb3VzZUV2ZW50LkNMSUNLLCBmdW5jdGlvbihldmVudDpFdmVudCk6dm9pZCB7CgkJCQljbGlja0hhbmRsZXIoZXZlbnQpOwoJCQl9ICk7CgkJCWJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKE1vdXNlRXZlbnQuTU9VU0VfT1ZFUiwgZnVuY3Rpb24oZXZlbnQ6RXZlbnQpOnZvaWQgewoJCQkJRXh0ZXJuYWxJbnRlcmZhY2UuY2FsbCggJ1plcm9DbGlwYm9hcmRfVGFibGVUb29scy5kaXNwYXRjaCcsIGRvbUlkLCAnbW91c2VPdmVyJywgbnVsbCApOwoJCQl9ICk7CgkJCWJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKE1vdXNlRXZlbnQuTU9VU0VfT1VULCBmdW5jdGlvbihldmVudDpFdmVudCk6dm9pZCB7CgkJCQlFeHRlcm5hbEludGVyZmFjZS5jYWxsKCAnWmVyb0NsaXBib2FyZF9UYWJsZVRvb2xzLmRpc3BhdGNoJywgZG9tSWQsICdtb3VzZU91dCcsIG51bGwgKTsKCQkJfSApOwoJCQlidXR0b24uYWRkRXZlbnRMaXN0ZW5lcihNb3VzZUV2ZW50Lk1PVVNFX0RPV04sIGZ1bmN0aW9uKGV2ZW50OkV2ZW50KTp2b2lkIHsKCQkJCUV4dGVybmFsSW50ZXJmYWNlLmNhbGwoICdaZXJvQ2xpcGJvYXJkX1RhYmxlVG9vbHMuZGlzcGF0Y2gnLCBkb21JZCwgJ21vdXNlRG93bicsIG51bGwgKTsKCQkJfSApOwoJCQlidXR0b24uYWRkRXZlbnRMaXN0ZW5lcihNb3VzZUV2ZW50Lk1PVVNFX1VQLCBmdW5jdGlvbihldmVudDpFdmVudCk6dm9pZCB7CgkJCQlFeHRlcm5hbEludGVyZmFjZS5jYWxsKCAnWmVyb0NsaXBib2FyZF9UYWJsZVRvb2xzLmRpc3BhdGNoJywgZG9tSWQsICdtb3VzZVVwJywgbnVsbCApOwoJCQl9ICk7CgkJCQoJCQkvLyBFeHRlcm5hbCBmdW5jdGlvbnMgLSByZWFkZCB3aGVuZXZlciB0aGUgc3RhZ2UgaXMgbWFkZSBhY3RpdmUgZm9yIElFCgkJCWFkZENhbGxiYWNrcygpOwoJCQlzdGFnZS5hZGRFdmVudExpc3RlbmVyKEV2ZW50LkFDVElWQVRFLCBhZGRDYWxsYmFja3MpOwoKCQkJLy8gc2lnbmFsIHRvIHRoZSBicm93c2VyIHRoYXQgd2UgYXJlIHJlYWR5CgkJCUV4dGVybmFsSW50ZXJmYWNlLmNhbGwoICdaZXJvQ2xpcGJvYXJkX1RhYmxlVG9vbHMuZGlzcGF0Y2gnLCBkb21JZCwgJ2xvYWQnLCBudWxsICk7CgkJfQoJCQoJCXB1YmxpYyBmdW5jdGlvbiBhZGRDYWxsYmFja3MgKGV2dDpFdmVudCA9IG51bGwpOnZvaWQgewoJCQlFeHRlcm5hbEludGVyZmFjZS5hZGRDYWxsYmFjaygic2V0SGFuZEN1cnNvciIsIHNldEhhbmRDdXJzb3IpOwoJCQlFeHRlcm5hbEludGVyZmFjZS5hZGRDYWxsYmFjaygiY2xlYXJUZXh0IiwgY2xlYXJUZXh0KTsKCQkJRXh0ZXJuYWxJbnRlcmZhY2UuYWRkQ2FsbGJhY2soInNldFRleHQiLCBzZXRUZXh0KTsKCQkJRXh0ZXJuYWxJbnRlcmZhY2UuYWRkQ2FsbGJhY2soImFwcGVuZFRleHQiLCBhcHBlbmRUZXh0KTsKCQkJRXh0ZXJuYWxJbnRlcmZhY2UuYWRkQ2FsbGJhY2soInNldEZpbGVOYW1lIiwgc2V0RmlsZU5hbWUpOwoJCQlFeHRlcm5hbEludGVyZmFjZS5hZGRDYWxsYmFjaygic2V0QWN0aW9uIiwgc2V0QWN0aW9uKTsKCQkJRXh0ZXJuYWxJbnRlcmZhY2UuYWRkQ2FsbGJhY2soInNldENoYXJTZXQiLCBzZXRDaGFyU2V0KTsKCQkJRXh0ZXJuYWxJbnRlcmZhY2UuYWRkQ2FsbGJhY2soInNldEJvbUluYyIsIHNldEJvbUluYyk7CgkJfQoJCQoJCQoJCXB1YmxpYyBmdW5jdGlvbiBzZXRDaGFyU2V0KG5ld0NoYXJTZXQ6U3RyaW5nKTp2b2lkIHsKCQkJaWYgKCBuZXdDaGFyU2V0ID09ICdVVEYxNkxFJyApIHsKCQkJCWNoYXJTZXQgPSBuZXdDaGFyU2V0OwoJCQl9IGVsc2UgewoJCQkJY2hhclNldCA9ICdVVEY4JzsKCQkJfQoJCX0KCQkKCQlwdWJsaWMgZnVuY3Rpb24gc2V0Qm9tSW5jKG5ld0JvbUluYzpCb29sZWFuKTp2b2lkIHsKCQkJaW5jQm9tID0gbmV3Qm9tSW5jOwoJCX0KCQkKCQlwdWJsaWMgZnVuY3Rpb24gY2xlYXJUZXh0KCk6dm9pZCB7CgkJCWNsaXBUZXh0ID0gJyc7CgkJfQoJCQoJCXB1YmxpYyBmdW5jdGlvbiBhcHBlbmRUZXh0KG5ld1RleHQ6U3RyaW5nKTp2b2lkIHsKCQkJY2xpcFRleHQgKz0gbmV3VGV4dDsKCQl9CgkJCgkJcHVibGljIGZ1bmN0aW9uIHNldFRleHQobmV3VGV4dDpTdHJpbmcpOnZvaWQgewoJCQljbGlwVGV4dCA9IG5ld1RleHQ7CgkJfQoJCQoJCXB1YmxpYyBmdW5jdGlvbiBzZXRGaWxlTmFtZShuZXdGaWxlTmFtZTpTdHJpbmcpOnZvaWQgewoJCQlmaWxlTmFtZSA9IG5ld0ZpbGVOYW1lOwoJCX0KCQkKCQlwdWJsaWMgZnVuY3Rpb24gc2V0QWN0aW9uKG5ld0FjdGlvbjpTdHJpbmcpOnZvaWQgewoJCQlhY3Rpb24gPSBuZXdBY3Rpb247CgkJfQoJCQoJCXB1YmxpYyBmdW5jdGlvbiBzZXRIYW5kQ3Vyc29yKGVuYWJsZWQ6Qm9vbGVhbik6dm9pZCB7CgkJCS8vIGNvbnRyb2wgd2hldGhlciB0aGUgaGFuZCBjdXJzb3IgaXMgc2hvd24gb24gcm9sbG92ZXIgKHRydWUpCgkJCS8vIG9yIHRoZSBkZWZhdWx0IGFycm93IGN1cnNvciAoZmFsc2UpCgkJCWJ1dHRvbi51c2VIYW5kQ3Vyc29yID0gZW5hYmxlZDsKCQl9CgkJCgkJCgkJcHJpdmF0ZSBmdW5jdGlvbiBjbGlja0hhbmRsZXIoZXZlbnQ6RXZlbnQpOnZvaWQgewoJCQl2YXIgZmlsZVJlZjpGaWxlUmVmZXJlbmNlID0gbmV3IEZpbGVSZWZlcmVuY2UoKTsKCQkJZmlsZVJlZi5hZGRFdmVudExpc3RlbmVyKEV2ZW50LkNPTVBMRVRFLCBzYXZlQ29tcGxldGUpOwoJCQkKCQkJaWYgKCBhY3Rpb24gPT0gInNhdmUiICkgewoJCQkJLyogU2F2ZSBhcyBhIGZpbGUgKi8KCQkJCWlmICggY2hhclNldCA9PSAnVVRGMTZMRScgKSB7CgkJCQkJZmlsZVJlZi5zYXZlKCBzdHJUb1VURjE2TEUoY2xpcFRleHQpLCBmaWxlTmFtZSApOwoJCQkJfSBlbHNlIHsKCQkJCQlmaWxlUmVmLnNhdmUoIHN0clRvVVRGOChjbGlwVGV4dCksIGZpbGVOYW1lICk7CgkJCQl9CgkJCX0gZWxzZSBpZiAoIGFjdGlvbiA9PSAicGRmIiApIHsKCQkJCS8qIFNhdmUgYXMgYSBQREYgKi8KCQkJCXZhciBwZGY6UERGID0gY29uZmlnUGRmKCk7CgkJCQlmaWxlUmVmLnNhdmUoIHBkZi5zYXZlKCBNZXRob2QuTE9DQUwgKSwgZmlsZU5hbWUgKTsKCQkJfSBlbHNlIHsKCQkJCS8qIENvcHkgdGhlIHRleHQgdG8gdGhlIGNsaXBib2FyZC4gTm90ZSBjaGFyc2V0IGFuZCBCT00gaGF2ZSBubyBlZmZlY3QgaGVyZSAqLwoJCQkJU3lzdGVtLnNldENsaXBib2FyZCggY2xpcFRleHQgKTsKCQkJCUV4dGVybmFsSW50ZXJmYWNlLmNhbGwoICdaZXJvQ2xpcGJvYXJkX1RhYmxlVG9vbHMuZGlzcGF0Y2gnLCBkb21JZCwgJ2NvbXBsZXRlJywgY2xpcFRleHQgKTsKCQkJfQoJCX0KCQkKCQkKCQlwcml2YXRlIGZ1bmN0aW9uIHNhdmVDb21wbGV0ZShldmVudDpFdmVudCk6dm9pZCB7CgkJCUV4dGVybmFsSW50ZXJmYWNlLmNhbGwoICdaZXJvQ2xpcGJvYXJkX1RhYmxlVG9vbHMuZGlzcGF0Y2gnLCBkb21JZCwgJ2NvbXBsZXRlJywgY2xpcFRleHQgKTsKCQl9CgkJCgkJCgkJcHJpdmF0ZSBmdW5jdGlvbiBnZXRQcm9wKCBwcm9wOlN0cmluZywgb3B0czpBcnJheSApOlN0cmluZwoJCXsKCQkJdmFyIGk6aW50LCBpTGVuOmludDsKCQkJZm9yICggaT0wLCBpTGVuPW9wdHMubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQkJewoJCQkJaWYgKCBvcHRzW2ldLmluZGV4T2YoIHByb3ArIjoiICkgIT0gLTEgKQoJCQkJewoJCQkJCXJldHVybiBvcHRzW2ldLnJlcGxhY2UoIHByb3ArIjoiLCAiIiApOwoJCQkJfQoJCQl9CgkJCXJldHVybiAiIjsKCQl9CgkJCgkJCgkJcHJpdmF0ZSBmdW5jdGlvbiBjb25maWdQZGYoKTpQREYKCQl7CgkJCXZhcgoJCQkJcGRmOlBERiwKCQkJCWk6aW50LCBpTGVuOmludCwKCQkJCXNwbGl0VGV4dDpBcnJheSAgICA9IGNsaXBUZXh0LnNwbGl0KCItLS9UYWJsZVRvb2xzT3B0cy0tXG4iKSwKCQkJCW9wdHM6QXJyYXkgICAgICAgICA9IHNwbGl0VGV4dFswXS5zcGxpdCgiXG4iKSwKCQkJCWRhdGFJbjpBcnJheSAgICAgICA9IHNwbGl0VGV4dFsxXS5zcGxpdCgiXG4iKSwKCQkJCWFDb2xSYXRpbzpBcnJheSAgICA9IGdldFByb3AoICdjb2xXaWR0aCcsIG9wdHMgKS5zcGxpdCgnXHQnKSwKCQkJCXRpdGxlOlN0cmluZyAgICAgICA9IGdldFByb3AoICd0aXRsZScsIG9wdHMgKSwKCQkJCW1lc3NhZ2U6U3RyaW5nICAgICA9IGdldFByb3AoICdtZXNzYWdlJywgb3B0cyApLAoJCQkJb3JpZW50YXRpb246U3RyaW5nID0gZ2V0UHJvcCggJ29yaWVudGF0aW9uJywgb3B0cyApLAoJCQkJc2l6ZTpTdHJpbmcgICAgICAgID0gZ2V0UHJvcCggJ3NpemUnLCBvcHRzICksCgkJCQlpUGFnZVdpZHRoOmludCAgICAgPSAwLAoJCQkJZGF0YU91dDpBcnJheSAgICAgID0gW10sCgkJCQljb2x1bW5zOkFycmF5ICAgICAgPSBbXSwKCQkJCWhlYWRlcnM6QXJyYXksCgkJCQl5OmludCA9IDA7CgkJCQoJCQkvKiBDcmVhdGUgdGhlIFBERiAqLwoJCQlwZGYgPSBuZXcgUERGKCBPcmllbnRhdGlvbltvcmllbnRhdGlvbi50b1VwcGVyQ2FzZSgpXSwgVW5pdC5NTSwgU2l6ZVtzaXplLnRvVXBwZXJDYXNlKCldICk7CgkJCXBkZi5zZXREaXNwbGF5TW9kZSggRGlzcGxheS5GVUxMX1dJRFRIICk7CgkJCXBkZi5hZGRQYWdlKCk7CgkJCWlQYWdlV2lkdGggPSBwZGYuZ2V0Q3VycmVudFBhZ2UoKS53LTIwOwoJCQlwZGYudGV4dFN0eWxlKCBuZXcgUkdCQ29sb3IoMCksIDEgKTsKCQkJCgkJCS8qIEFkZCB0aGUgdGl0bGUgLyBtZXNzYWdlIGlmIHRoZXJlIGlzIG9uZSAqLwoJCQlwZGYuc2V0Rm9udCggbmV3IENvcmVGb250KEZvbnRGYW1pbHkuSEVMVkVUSUNBKSwgMTQgKTsKCQkJaWYgKCB0aXRsZSAhPSAiIiApCgkJCXsKCQkJCXBkZi53cml0ZVRleHQoMTEsIHRpdGxlKyJcbiIpOwoJCQl9CgkJCQoJCQlwZGYuc2V0Rm9udCggbmV3IENvcmVGb250KEZvbnRGYW1pbHkuSEVMVkVUSUNBKSwgMTEgKTsKCQkJaWYgKCBtZXNzYWdlICE9ICIiICkKCQkJewoJCQkJcGRmLndyaXRlVGV4dCgxMSwgbWVzc2FnZSsiXG4iKTsKCQkJfQoJCQkKCQkJLyogRGF0YSBzZXR1cC4gU3BsaXQgdXAgdGhlIGhlYWRlcnMsIGFuZCB0aGVuIGNvbnN0cnVjdCB0aGUgY29sdW1ucyAqLwoJCQlmb3IgKCBpPTAsIGlMZW49ZGF0YUluLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJCXsKCQkJCWlmICggZGF0YUluW2ldICE9ICIiICkKCQkJCXsKCQkJCQlkYXRhT3V0LnB1c2goIGRhdGFJbltpXS5zcGxpdCgiXHQiKSApOwoJCQkJfQoJCQl9CgkJCWhlYWRlcnMgPSBkYXRhT3V0LnNoaWZ0KCk7CgkJCQoJCQlmb3IgKCBpPTAsIGlMZW49aGVhZGVycy5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCQl7CgkJCQljb2x1bW5zLnB1c2goIG5ldyBHcmlkQ29sdW1uKCAiIFxuIitoZWFkZXJzW2ldKyJcbiAiLCBpLnRvU3RyaW5nKCksIGFDb2xSYXRpb1tpXSppUGFnZVdpZHRoLCAnQycgKSApOwoJCQl9CgkJCQoJCQl2YXIgZ3JpZDpHcmlkID0gbmV3IEdyaWQoCgkJCQlkYXRhT3V0LCAgICAgICAgICAgICAgICAgIC8qIDEuIGRhdGEgKi8KCQkJCWlQYWdlV2lkdGgsICAgICAgICAgICAgICAgLyogMi4gd2lkdGggKi8KCQkJCTEwMCwgICAgICAgICAgICAgICAgICAgICAgLyogMy4gaGVpZ2h0ICovCgkJCQluZXcgUkdCQ29sb3IgKDB4RTBFMEUwKSwgIC8qIDQuIGhlYWRlckNvbG9yICovCgkJCQluZXcgUkdCQ29sb3IgKDB4RkZGRkZGKSwgIC8qIDUuIGJhY2tncm91bmRDb2xvciAqLwoJCQkJdHJ1ZSwgICAgICAgICAgICAgICAgICAgICAvKiA2LiBhbHRlcm5hdGVSb3dDb2xvciAqLwoJCQkJbmV3IFJHQkNvbG9yICggMHgwICksICAgICAvKiA3LiBib3JkZXJDb2xvciAqLwoJCQkJLjEsICAgICAgICAgICAgICAgICAgICAgICAvKiA4LiBib3JkZXIgYWxwaGEgKi8KCQkJCW51bGwsICAgICAgICAgICAgICAgICAgICAgLyogOS4gam9pbnMgKi8KCQkJCWNvbHVtbnMgICAgICAgICAgICAgICAgICAgLyogMTAuIGNvbHVtbnMgKi8KCQkJKTsKCQkJCgkJCXBkZi5hZGRHcmlkKCBncmlkLCAwLCB5ICk7CgkJCXJldHVybiBwZGY7CgkJfQoJCQoJCQoJCS8qCgkJICogRnVuY3Rpb246IHN0clRvVVRGOAoJCSAqIFB1cnBvc2U6ICBDb252ZXJ0IGEgc3RyaW5nIHRvIHRoZSBvdXRwdXQgdXRmLTgKCQkgKiBSZXR1cm5zOiAgQnl0ZUFycmF5CgkJICogSW5wdXRzOiAgIFN0cmluZwoJCSAqLwoJCXByaXZhdGUgZnVuY3Rpb24gc3RyVG9VVEY4KCBzdHI6U3RyaW5nICk6Qnl0ZUFycmF5IHsKCQkJdmFyIHV0Zjg6Qnl0ZUFycmF5ID0gbmV3IEJ5dGVBcnJheSgpOwoJCQkKCQkJLyogQk9NIGZpcnN0ICovCgkJCWlmICggaW5jQm9tICkgewoJCQkJdXRmOC53cml0ZUJ5dGUoIDB4RUYgKTsKCQkJCXV0Zjgud3JpdGVCeXRlKCAweEJCICk7CgkJCQl1dGY4LndyaXRlQnl0ZSggMHhCRiApOwoJCQl9CgkJCXV0Zjgud3JpdGVVVEZCeXRlcyggc3RyICk7CgkJCQoJCQlyZXR1cm4gdXRmODsKCQl9CgkJCgkJCgkJLyoKCQkgKiBGdW5jdGlvbjogc3RyVG9VVEYxNkxFCgkJICogUHVycG9zZTogIENvbnZlcnQgYSBzdHJpbmcgdG8gdGhlIG91dHB1dCB1dGYtMTYKCQkgKiBSZXR1cm5zOiAgQnl0ZUFycmF5CgkJICogSW5wdXRzOiAgIFN0cmluZwoJCSAqIE5vdGVzOiAgICBUaGUgZmFjdCB0aGF0IHRoaXMgZnVuY3Rpb24gaXMgbmVlZGVkIGlzIGEgbGl0dGxlIGFubm95aW5nLiBCYXNpY2FsbHksIHN0cmluZ3MgaW4KCQkgKiAgIEFTMyBhcmUgVVRGLTE2ICh3aXRoIHN1cnJvZ2F0ZSBwYWlycyBhbmQgZXZlcnl0aGluZyksIGJ1dCBjaGFyYWN0ZXJzIHdoaWNoIHRha2UgdXAgbGVzcwoJCSAqICAgdGhhbiA4IGJ5dGVzIGFwcGVhciB0byBiZSBzdG9yZWQgYXMgb25seSA4IGJ5dGVzLiBUaGlzIGZ1bmN0aW9uIGVmZmVjdGl2ZSBhZGRzIHRoZSAKCQkgKiAgIHBhZGRpbmcgcmVxdWlyZWQsIGFuZCB0aGUgQk9NCgkJICovCgkJcHJpdmF0ZSBmdW5jdGlvbiBzdHJUb1VURjE2TEUoIHN0cjpTdHJpbmcgKTpCeXRlQXJyYXkgewoJCQl2YXIgdXRmMTY6Qnl0ZUFycmF5ID0gbmV3IEJ5dGVBcnJheSgpOwoJCQl2YXIgaUNoYXI6dWludDsKCQkJdmFyIGk6dWludD0wLCBpTGVuOnVpbnQgPSBzdHIubGVuZ3RoOwoJCQkKCQkJLyogQk9NIGZpcnN0ICovCgkJCWlmICggaW5jQm9tICkgewoJCQkJdXRmMTYud3JpdGVCeXRlKCAweEZGICk7CgkJCQl1dGYxNi53cml0ZUJ5dGUoIDB4RkUgKTsKCQkJfQoJCQkKCQkJd2hpbGUgKCBpIDwgaUxlbiApIHsKCQkJCWlDaGFyID0gc3RyLmNoYXJDb2RlQXQoaSk7CgkJCQkKCQkJCWlmICggaUNoYXIgPCAweEZGICkgewoJCQkJCS8qIG9uZSBieXRlIGNoYXIgKi8KCQkJCQl1dGYxNi53cml0ZUJ5dGUoIGlDaGFyICk7CgkJCQkJdXRmMTYud3JpdGVCeXRlKCAwICk7CgkJCQl9IGVsc2UgewoJCQkJCS8qIHR3byBieXRlIGNoYXIgKi8KCQkJCQl1dGYxNi53cml0ZUJ5dGUoIGlDaGFyICYgMHgwMEZGICk7CgkJCQkJdXRmMTYud3JpdGVCeXRlKCBpQ2hhciA+PiA4ICk7CgkJCQl9CgkJCQkKCQkJCWkrKzsKCQkJfQoJCQkKCQkJcmV0dXJuIHV0ZjE2OwoJCX0KCX0KfQo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/TableTools/media/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/TableTools/media/css/TableTools.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogRmlsZTogICAgICAgIFRhYmxlVG9vbHMuY3NzCiAqIERlc2NyaXB0aW9uOiBTdHlsZXMgZm9yIFRhYmxlVG9vbHMgMgogKiBBdXRob3I6ICAgICAgQWxsYW4gSmFyZGluZSAod3d3LnNwcnltZWRpYS5jby51aykKICogTGFuZ3VhZ2U6ICAgIEphdmFzY3JpcHQKICogTGljZW5zZTogICAgIEdQTCB2MiAvIDMgcG9pbnQgQlNECiAqIFByb2plY3Q6ICAgICBEYXRhVGFibGVzCiAqIAogKiBDb3B5cmlnaHQgMjAwOS0yMDEyIEFsbGFuIEphcmRpbmUsIGFsbCByaWdodHMgcmVzZXJ2ZWQuCiAqCiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKgogKgogKiBDU1MgbmFtZSBzcGFjZToKICogICBEVFRUICAgICAgICAgICAgICAgICAgRGF0YVRhYmxlcyBUYWJsZVRvb2xzCiAqCiAqIFN0eWxlIHNoZWV0IHByb3ZpZGVzOgogKiAgIENPTlRBSU5FUiAgICAgICAgICAgICBUYWJsZVRvb2xzIGNvbnRhaW5lciBlbGVtZW50IGFuZCBzdHlsZXMgYXBwbHlpbmcgdG8gYWxsIGNvbXBvbmVudHMKICogICBCVVRUT05fU1RZTEVTICAgICAgICAgQWN0aW9uIHNwZWNpZmljIGJ1dHRvbiBzdHlsZXMKICogICBTRUxFQ1RJTkcgICAgICAgICAgICAgUm93IHNlbGVjdGlvbiBzdHlsZXMKICogICBDT0xMRUNUSU9OUyAgICAgICAgICAgRHJvcCBkb3duIGxpc3QgKGNvbGxlY3Rpb24pIHN0eWxlcwogKiAgIFBSSU5USU5HICAgICAgICAgICAgICBQcmludCBkaXNwbGF5IHN0eWxlcwogKi8KCgovKgogKiBDT05UQUlORVIKICogVGFibGVUb29scyBjb250YWluZXIgZWxlbWVudCBhbmQgc3R5bGVzIGFwcGx5aW5nIHRvIGFsbCBjb21wb25lbnRzCiAqLwpkaXYuRFRUVF9jb250YWluZXIgewoJcG9zaXRpb246IHJlbGF0aXZlOwoJZmxvYXQ6IHJpZ2h0OwoJbWFyZ2luLWJvdHRvbTogMWVtOwp9Ci8qCmJ1dHRvbi5EVFRUX2J1dHRvbiwKZGl2LkRUVFRfYnV0dG9uLAphLkRUVFRfYnV0dG9uIHsKCXBvc2l0aW9uOiByZWxhdGl2ZTsKCWZsb2F0OiBsZWZ0OwoJbWFyZ2luLXJpZ2h0OiAzcHg7CglwYWRkaW5nOiA1cHggOHB4OwoJYm9yZGVyOiAxcHggc29saWQgIzk5OTsKCWN1cnNvcjogcG9pbnRlcjsKCSpjdXJzb3I6IGhhbmQ7Cglmb250LXNpemU6IDAuODhlbTsKCWNvbG9yOiBibGFjayAhaW1wb3J0YW50OwoKCS13ZWJraXQtYm9yZGVyLXJhZGl1czogMnB4OwoJICAgLW1vei1ib3JkZXItcmFkaXVzOiAycHg7CgkgICAgLW1zLWJvcmRlci1yYWRpdXM6IDJweDsKCSAgICAgLW8tYm9yZGVyLXJhZGl1czogMnB4OwoJICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CgoJLXdlYmtpdC1ib3gtc2hhZG93OiAxcHggMXB4IDNweCAjY2NjOwoJICAgLW1vei1ib3gtc2hhZG93OiAxcHggMXB4IDNweCAjY2NjOwoJICAgIC1tcy1ib3gtc2hhZG93OiAxcHggMXB4IDNweCAjY2NjOwoJICAgICAtby1ib3gtc2hhZG93OiAxcHggMXB4IDNweCAjY2NjOwoJICAgICAgICBib3gtc2hhZG93OiAxcHggMXB4IDNweCAjY2NjOwoKCWJhY2tncm91bmQ6ICNmZmZmZmY7IAoJYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjZmZmZmZmIDAlLCNmM2YzZjMgODklLCNmOWY5ZjkgMTAwJSk7IAoJYmFja2dyb3VuZDogICAgLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjZmZmZmZmIDAlLCNmM2YzZjMgODklLCNmOWY5ZjkgMTAwJSk7IAoJYmFja2dyb3VuZDogICAgIC1tcy1saW5lYXItZ3JhZGllbnQodG9wLCAjZmZmZmZmIDAlLCNmM2YzZjMgODklLCNmOWY5ZjkgMTAwJSk7IAoJYmFja2dyb3VuZDogICAgICAtby1saW5lYXItZ3JhZGllbnQodG9wLCAjZmZmZmZmIDAlLCNmM2YzZjMgODklLCNmOWY5ZjkgMTAwJSk7IAoJYmFja2dyb3VuZDogICAgICAgICBsaW5lYXItZ3JhZGllbnQodG9wLCAjZmZmZmZmIDAlLCNmM2YzZjMgODklLCNmOWY5ZjkgMTAwJSk7IAoJZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyNmZmZmZmYnLCBlbmRDb2xvcnN0cj0nI2Y5ZjlmOScsR3JhZGllbnRUeXBlPTAgKTsgCn0qLwoKCi8qIEJ1dHRvbnMgYXJlIGN1bm5pbmcgYm9yZGVyLWJveCBzaXppbmcgLSB3ZSBjYW4ndCBqdXN0IHVzZSB0aGF0IGZvciBBIGFuZCBESVYgZHVlIHRvIElFNi83ICovCmJ1dHRvbi5EVFRUX2J1dHRvbiB7CgloZWlnaHQ6IDMwcHg7CglwYWRkaW5nOiAzcHggOHB4Owp9CgouRFRUVF9idXR0b24gZW1iZWQgeyAKCW91dGxpbmU6IG5vbmU7Cn0KCi8qCmJ1dHRvbi5EVFRUX2J1dHRvbjpob3ZlciwKZGl2LkRUVFRfYnV0dG9uOmhvdmVyLAphLkRUVFRfYnV0dG9uOmhvdmVyIHsKCWJvcmRlcjogMXB4IHNvbGlkICM2NjY7Cgl0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsKCgktd2Via2l0LWJveC1zaGFkb3c6IDFweCAxcHggM3B4ICM5OTk7CgkgICAtbW96LWJveC1zaGFkb3c6IDFweCAxcHggM3B4ICM5OTk7CgkgICAgLW1zLWJveC1zaGFkb3c6IDFweCAxcHggM3B4ICM5OTk7CgkgICAgIC1vLWJveC1zaGFkb3c6IDFweCAxcHggM3B4ICM5OTk7CgkgICAgICAgIGJveC1zaGFkb3c6IDFweCAxcHggM3B4ICM5OTk7CgoJYmFja2dyb3VuZDogI2YzZjNmMzsKCWJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgI2YzZjNmMyAwJSwjZTJlMmUyIDg5JSwjZjRmNGY0IDEwMCUpOwoJYmFja2dyb3VuZDogICAgLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjZjNmM2YzIDAlLCNlMmUyZTIgODklLCNmNGY0ZjQgMTAwJSk7IAoJYmFja2dyb3VuZDogICAgIC1tcy1saW5lYXItZ3JhZGllbnQodG9wLCAjZjNmM2YzIDAlLCNlMmUyZTIgODklLCNmNGY0ZjQgMTAwJSk7IAoJYmFja2dyb3VuZDogICAgICAtby1saW5lYXItZ3JhZGllbnQodG9wLCAjZjNmM2YzIDAlLCNlMmUyZTIgODklLCNmNGY0ZjQgMTAwJSk7IAoJYmFja2dyb3VuZDogICAgICAgICBsaW5lYXItZ3JhZGllbnQodG9wLCAjZjNmM2YzIDAlLCNlMmUyZTIgODklLCNmNGY0ZjQgMTAwJSk7IAoJZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyNmM2YzZjMnLCBlbmRDb2xvcnN0cj0nI2Y0ZjRmNCcsR3JhZGllbnRUeXBlPTAgKTsKfQoqLwoKYnV0dG9uLkRUVFRfZGlzYWJsZWQsCmRpdi5EVFRUX2Rpc2FibGVkLAphLkRUVFRfZGlzYWJsZWQgewoJY29sb3I6ICM5OTk7Cglib3JkZXI6IDFweCBzb2xpZCAjZDBkMGQwOwoJCgliYWNrZ3JvdW5kOiAjZmZmZmZmOyAvKiBPbGQgYnJvd3NlcnMgKi8KCWJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgI2ZmZmZmZiAwJSwjZjlmOWY5IDg5JSwjZmFmYWZhIDEwMCUpOyAvKiBDaHJvbWUxMCssU2FmYXJpNS4xKyAqLwoJYmFja2dyb3VuZDogICAgLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjZmZmZmZmIDAlLCNmOWY5ZjkgODklLCNmYWZhZmEgMTAwJSk7IC8qIEZGMy42KyAqLwoJYmFja2dyb3VuZDogICAgIC1tcy1saW5lYXItZ3JhZGllbnQodG9wLCAjZmZmZmZmIDAlLCNmOWY5ZjkgODklLCNmYWZhZmEgMTAwJSk7IC8qIElFMTArICovCgliYWNrZ3JvdW5kOiAgICAgIC1vLWxpbmVhci1ncmFkaWVudCh0b3AsICNmZmZmZmYgMCUsI2Y5ZjlmOSA4OSUsI2ZhZmFmYSAxMDAlKTsgLyogT3BlcmEgMTEuMTArICovCgliYWNrZ3JvdW5kOiAgICAgICAgIGxpbmVhci1ncmFkaWVudCh0b3AsICNmZmZmZmYgMCUsI2Y5ZjlmOSA4OSUsI2ZhZmFmYSAxMDAlKTsgLyogVzNDICovCglmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nI2ZmZmZmZicsIGVuZENvbG9yc3RyPScjZmFmYWZhJyxHcmFkaWVudFR5cGU9MCApOyAvKiBJRTYtOSAqLwp9CgoKCi8qCiAqIEJVVFRPTl9TVFlMRVMKICogQWN0aW9uIHNwZWNpZmljIGJ1dHRvbiBzdHlsZXMKICogSWYgeW91IHdhbnQgaW1hZ2VzIC0gY29tbWVudCB0aGlzIGJhY2sgaW4KCmJ1dHRvbi5EVFRUX2J1dHRvbl9jc3YsCmJ1dHRvbi5EVFRUX2J1dHRvbl94bHMsCmJ1dHRvbi5EVFRUX2J1dHRvbl9jb3B5LApidXR0b24uRFRUVF9idXR0b25fcGRmLApidXR0b24uRFRUVF9idXR0b25fcHJpbnQgewoJcGFkZGluZy1yaWdodDogMHB4Owp9CgpidXR0b24uRFRUVF9idXR0b25fY3N2IHNwYW4sCmJ1dHRvbi5EVFRUX2J1dHRvbl94bHMgc3BhbiwKYnV0dG9uLkRUVFRfYnV0dG9uX2NvcHkgc3BhbiwKYnV0dG9uLkRUVFRfYnV0dG9uX3BkZiBzcGFuLApidXR0b24uRFRUVF9idXR0b25fcHJpbnQgc3BhbiB7CglkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CgloZWlnaHQ6IDI0cHg7CglsaW5lLWhlaWdodDogMjRweDsKCXBhZGRpbmctcmlnaHQ6IDMwcHg7Cn0KCgpidXR0b24uRFRUVF9idXR0b25fY3N2IHNwYW4geyBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2Nzdi5wbmcpIG5vLXJlcGVhdCBib3R0b20gcmlnaHQ7IH0KYnV0dG9uLkRUVFRfYnV0dG9uX2Nzdjpob3ZlciBzcGFuIHsgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9jc3ZfaG92ZXIucG5nKSBuby1yZXBlYXQgY2VudGVyIHJpZ2h0OyB9CgpidXR0b24uRFRUVF9idXR0b25feGxzIHNwYW4geyBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL3hscy5wbmcpIG5vLXJlcGVhdCBjZW50ZXIgcmlnaHQ7IH0KYnV0dG9uLkRUVFRfYnV0dG9uX3hsczpob3ZlciBzcGFuIHsgYmFja2dyb3VuZDogI2YwZjBmMCB1cmwoLi4vaW1hZ2VzL3hsc19ob3Zlci5wbmcpIG5vLXJlcGVhdCBjZW50ZXIgcmlnaHQ7IH0KCmJ1dHRvbi5EVFRUX2J1dHRvbl9jb3B5IHNwYW4geyBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2NvcHkucG5nKSBuby1yZXBlYXQgY2VudGVyIHJpZ2h0OyB9CmJ1dHRvbi5EVFRUX2J1dHRvbl9jb3B5OmhvdmVyIHNwYW4geyBiYWNrZ3JvdW5kOiAjZjBmMGYwIHVybCguLi9pbWFnZXMvY29weV9ob3Zlci5wbmcpIG5vLXJlcGVhdCBjZW50ZXIgcmlnaHQ7IH0KCmJ1dHRvbi5EVFRUX2J1dHRvbl9wZGYgc3BhbiB7IGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvcGRmLnBuZykgbm8tcmVwZWF0IGNlbnRlciByaWdodDsgfQpidXR0b24uRFRUVF9idXR0b25fcGRmOmhvdmVyIHNwYW4geyBiYWNrZ3JvdW5kOiAjZjBmMGYwIHVybCguLi9pbWFnZXMvcGRmX2hvdmVyLnBuZykgbm8tcmVwZWF0IGNlbnRlciByaWdodDsgfQoKYnV0dG9uLkRUVFRfYnV0dG9uX3ByaW50IHNwYW4geyBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL3ByaW50LnBuZykgbm8tcmVwZWF0IGNlbnRlciByaWdodDsgfQpidXR0b24uRFRUVF9idXR0b25fcHJpbnQ6aG92ZXIgc3BhbiB7IGJhY2tncm91bmQ6ICNmMGYwZjAgdXJsKC4uL2ltYWdlcy9wcmludF9ob3Zlci5wbmcpIG5vLXJlcGVhdCBjZW50ZXIgcmlnaHQ7IH0KCiAqLwoKYnV0dG9uLkRUVFRfYnV0dG9uX2NvbGxlY3Rpb24gc3BhbiB7CglwYWRkaW5nLXJpZ2h0OiAxN3B4OwoJYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9jb2xsZWN0aW9uLnBuZykgbm8tcmVwZWF0IGNlbnRlciByaWdodDsKfQoKYnV0dG9uLkRUVFRfYnV0dG9uX2NvbGxlY3Rpb246aG92ZXIgc3BhbiB7CglwYWRkaW5nLXJpZ2h0OiAxN3B4OwoJYmFja2dyb3VuZDogI2YwZjBmMCB1cmwoLi4vaW1hZ2VzL2NvbGxlY3Rpb25faG92ZXIucG5nKSBuby1yZXBlYXQgY2VudGVyIHJpZ2h0Owp9CgoKLyoKICogU0VMRUNUSU5HCiAqIFJvdyBzZWxlY3Rpb24gc3R5bGVzCiAqLwp0YWJsZS5EVFRUX3NlbGVjdGFibGUgdGJvZHkgdHIgewoJY3Vyc29yOiBwb2ludGVyOwoJKmN1cnNvcjogaGFuZDsKfQoKdGFibGUuZGF0YVRhYmxlIHRyLkRUVFRfc2VsZWN0ZWQub2RkIHsKCWJhY2tncm91bmQtY29sb3I6ICM5RkFGRDE7Cn0KCnRhYmxlLmRhdGFUYWJsZSB0ci5EVFRUX3NlbGVjdGVkLm9kZCB0ZC5zb3J0aW5nXzEgewoJYmFja2dyb3VuZC1jb2xvcjogIzlGQUZEMTsKfQoKdGFibGUuZGF0YVRhYmxlIHRyLkRUVFRfc2VsZWN0ZWQub2RkIHRkLnNvcnRpbmdfMiB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjOUZBRkQxOwp9Cgp0YWJsZS5kYXRhVGFibGUgdHIuRFRUVF9zZWxlY3RlZC5vZGQgdGQuc29ydGluZ18zIHsKCWJhY2tncm91bmQtY29sb3I6ICM5RkFGRDE7Cn0KCgp0YWJsZS5kYXRhVGFibGUgdHIuRFRUVF9zZWxlY3RlZC5ldmVuIHsKCWJhY2tncm91bmQtY29sb3I6ICNCMEJFRDk7Cn0KCnRhYmxlLmRhdGFUYWJsZSB0ci5EVFRUX3NlbGVjdGVkLmV2ZW4gdGQuc29ydGluZ18xIHsKCWJhY2tncm91bmQtY29sb3I6ICNCMEJFRDk7Cn0KCnRhYmxlLmRhdGFUYWJsZSB0ci5EVFRUX3NlbGVjdGVkLmV2ZW4gdGQuc29ydGluZ18yIHsKCWJhY2tncm91bmQtY29sb3I6ICNCMEJFRDk7Cn0KCnRhYmxlLmRhdGFUYWJsZSB0ci5EVFRUX3NlbGVjdGVkLmV2ZW4gdGQuc29ydGluZ18zIHsKCWJhY2tncm91bmQtY29sb3I6ICNCMEJFRDk7Cn0KCgovKgogKiBDT0xMRUNUSU9OUwogKiBEcm9wIGRvd24gbGlzdCAoY29sbGVjdGlvbikgc3R5bGVzCiAqLwoKZGl2LkRUVFRfY29sbGVjdGlvbiB7Cgl3aWR0aDogMTUwcHg7CglwYWRkaW5nOiA4cHggOHB4IDRweCA4cHg7Cglib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJYm9yZGVyOiAxcHggc29saWQgcmdiYSggMCwgMCwgMCwgMC40ICk7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZjNmM2YzOwoJYmFja2dyb3VuZC1jb2xvcjogcmdiYSggMjU1LCAyNTUsIDI1NSwgMC4zICk7CglvdmVyZmxvdzogaGlkZGVuOwoJei1pbmRleDogMjAwMjsKCgktd2Via2l0LWJvcmRlci1yYWRpdXM6IDVweDsKCSAgIC1tb3otYm9yZGVyLXJhZGl1czogNXB4OwoJICAgIC1tcy1ib3JkZXItcmFkaXVzOiA1cHg7CgkgICAgIC1vLWJvcmRlci1yYWRpdXM6IDVweDsKCSAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4OwoJCgktd2Via2l0LWJveC1zaGFkb3c6IDNweCAzcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4zKTsKCSAgIC1tb3otYm94LXNoYWRvdzogM3B4IDNweCA1cHggcmdiYSgwLCAwLCAwLCAwLjMpOwoJICAgIC1tcy1ib3gtc2hhZG93OiAzcHggM3B4IDVweCByZ2JhKDAsIDAsIDAsIDAuMyk7CgkgICAgIC1vLWJveC1zaGFkb3c6IDNweCAzcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4zKTsKCSAgICAgICAgYm94LXNoYWRvdzogM3B4IDNweCA1cHggcmdiYSgwLCAwLCAwLCAwLjMpOwp9CgpkaXYuRFRUVF9jb2xsZWN0aW9uX2JhY2tncm91bmQgewoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKC4uL2ltYWdlcy9iYWNrZ3JvdW5kLnBuZykgcmVwZWF0IHRvcCBsZWZ0OwoJei1pbmRleDogMjAwMTsKfQoKZGl2LkRUVFRfY29sbGVjdGlvbiBidXR0b24uRFRUVF9idXR0b24sCmRpdi5EVFRUX2NvbGxlY3Rpb24gZGl2LkRUVFRfYnV0dG9uLApkaXYuRFRUVF9jb2xsZWN0aW9uIGEuRFRUVF9idXR0b24gewoJcG9zaXRpb246IHJlbGF0aXZlOwoJbGVmdDogMDsKCXJpZ2h0OiAwOwoKCWRpc3BsYXk6IGJsb2NrOwoJZmxvYXQ6IG5vbmU7CgltYXJnaW4tYm90dG9tOiA0cHg7CgkKCS13ZWJraXQtYm94LXNoYWRvdzogMXB4IDFweCAzcHggIzk5OTsKCSAgIC1tb3otYm94LXNoYWRvdzogMXB4IDFweCAzcHggIzk5OTsKCSAgICAtbXMtYm94LXNoYWRvdzogMXB4IDFweCAzcHggIzk5OTsKCSAgICAgLW8tYm94LXNoYWRvdzogMXB4IDFweCAzcHggIzk5OTsKCSAgICAgICAgYm94LXNoYWRvdzogMXB4IDFweCAzcHggIzk5OTsKfQoKCi8qCiAqIFBSSU5USU5HCiAqIFByaW50IGRpc3BsYXkgc3R5bGVzCiAqLwoKLkRUVFRfcHJpbnRfaW5mbyB7Cglwb3NpdGlvbjogZml4ZWQ7Cgl0b3A6IDUwJTsKCWxlZnQ6IDUwJTsKCXdpZHRoOiA0MDBweDsKCWhlaWdodDogMTUwcHg7CgltYXJnaW4tbGVmdDogLTIwMHB4OwoJbWFyZ2luLXRvcDogLTc1cHg7Cgl0ZXh0LWFsaWduOiBjZW50ZXI7Cgljb2xvcjogIzMzMzsKCXBhZGRpbmc6IDEwcHggMzBweDsKCgliYWNrZ3JvdW5kOiAjZmZmZmZmOyAvKiBPbGQgYnJvd3NlcnMgKi8KCWJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgI2ZmZmZmZiAwJSwjZjNmM2YzIDg5JSwjZjlmOWY5IDEwMCUpOyAvKiBDaHJvbWUxMCssU2FmYXJpNS4xKyAqLwoJYmFja2dyb3VuZDogICAgLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjZmZmZmZmIDAlLCNmM2YzZjMgODklLCNmOWY5ZjkgMTAwJSk7IC8qIEZGMy42KyAqLwoJYmFja2dyb3VuZDogICAgIC1tcy1saW5lYXItZ3JhZGllbnQodG9wLCAjZmZmZmZmIDAlLCNmM2YzZjMgODklLCNmOWY5ZjkgMTAwJSk7IC8qIElFMTArICovCgliYWNrZ3JvdW5kOiAgICAgIC1vLWxpbmVhci1ncmFkaWVudCh0b3AsICNmZmZmZmYgMCUsI2YzZjNmMyA4OSUsI2Y5ZjlmOSAxMDAlKTsgLyogT3BlcmEgMTEuMTArICovCgliYWNrZ3JvdW5kOiAgICAgICAgIGxpbmVhci1ncmFkaWVudCh0b3AsICNmZmZmZmYgMCUsI2YzZjNmMyA4OSUsI2Y5ZjlmOSAxMDAlKTsgLyogVzNDICovCglmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nI2ZmZmZmZicsIGVuZENvbG9yc3RyPScjZjlmOWY5JyxHcmFkaWVudFR5cGU9MCApOyAvKiBJRTYtOSAqLwoJCglvcGFjaXR5OiAwLjk1OwoKCWJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOwoJYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjUpOwoJCgktd2Via2l0LWJvcmRlci1yYWRpdXM6IDZweDsKCSAgIC1tb3otYm9yZGVyLXJhZGl1czogNnB4OwoJICAgIC1tcy1ib3JkZXItcmFkaXVzOiA2cHg7CgkgICAgIC1vLWJvcmRlci1yYWRpdXM6IDZweDsKCSAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwoJCgktd2Via2l0LWJveC1zaGFkb3c6IDAgM3B4IDdweCByZ2JhKDAsIDAsIDAsIDAuNSk7CgkgICAtbW96LWJveC1zaGFkb3c6IDAgM3B4IDdweCByZ2JhKDAsIDAsIDAsIDAuNSk7CgkgICAgLW1zLWJveC1zaGFkb3c6IDAgM3B4IDdweCByZ2JhKDAsIDAsIDAsIDAuNSk7CgkgICAgIC1vLWJveC1zaGFkb3c6IDAgM3B4IDdweCByZ2JhKDAsIDAsIDAsIDAuNSk7CgkgICAgICAgIGJveC1zaGFkb3c6IDAgM3B4IDdweCByZ2JhKDAsIDAsIDAsIDAuNSk7Cn0KCi5EVFRUX3ByaW50X2luZm8gaDYgewoJZm9udC13ZWlnaHQ6IG5vcm1hbDsKCWZvbnQtc2l6ZTogMjhweDsKCWxpbmUtaGVpZ2h0OiAyOHB4OwoJbWFyZ2luOiAxZW07Cn0KCi5EVFRUX3ByaW50X2luZm8gcCB7Cglmb250LXNpemU6IDE0cHg7CglsaW5lLWhlaWdodDogMjBweDsKfQoK]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/TableTools/media/css/TableTools_JUI.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogRmlsZTogICAgICAgIFRhYmxlVG9vbHMuY3NzCiAqIERlc2NyaXB0aW9uOiBTdHlsZXMgZm9yIFRhYmxlVG9vbHMgMiB3aXRoIEpVSSB0aGVtaW5nCiAqIEF1dGhvcjogICAgICBBbGxhbiBKYXJkaW5lICh3d3cuc3ByeW1lZGlhLmNvLnVrKQogKiBMYW5ndWFnZTogICAgSmF2YXNjcmlwdAogKiBMaWNlbnNlOiAgICAgTEdQTCAvIDMgcG9pbnQgQlNECiAqIFByb2plY3Q6ICAgICBEYXRhVGFibGVzCiAqIAogKiBDb3B5cmlnaHQgMjAxMCBBbGxhbiBKYXJkaW5lLCBhbGwgcmlnaHRzIHJlc2VydmVkLgogKgogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICoKICoKICogTm90ZXM6CiAqICAgR2VuZXJhbGx5IHNwZWFraW5nLCBwbGVhc2UgcmVmZXIgdG8gdGhlIFRhYmxlVG9vbHMuY3NzIGZpbGUgLSB0aGlzIGZpbGUgY29udGFpbnMgYmFzaWMKICogICBtb2RpZmljYXRpb25zIHRvIHRoYXQgJ21hc3Rlcicgc3R5bGVzaGVldCBmb3IgVGhlbWVSb2xsZXIuCiAqCiAqIENTUyBuYW1lIHNwYWNlOgogKiAgIERUVFQgICAgICAgICAgICAgICAgICBEYXRhVGFibGVzIFRhYmxlVG9vbHMKICoKICogQ29sb3VyIGRpY3Rpb25hcnk6CiAqICAgQnV0dG9uIGJvcmRlciAgICAgICAgICNkMGQwZDAKICogICBCdXR0b24gYm9yZGVyIGhvdmVyICAgIzk5OTk5OQogKiAgIEhvdmVyIGJhY2tncm91bmQgICAgICAjZjBmMGYwCiAqICAgQWN0aW9uIGJsdWUgICAgICAgICAgICM0YjY2ZDkKICoKICogU3R5bGUgc2hlZXQgcHJvdmlkZXM6CiAqICAgQ09OVEFJTkVSICAgICAgICAgICAgIFRhYmxlVG9vbHMgY29udGFpbmVyIGVsZW1lbnQgYW5kIHN0eWxlcyBhcHBseWluZyB0byBhbGwgY29tcG9uZW50cwogKiAgIFNFTEVDVElORyAgICAgICAgICAgICBSb3cgc2VsZWN0aW9uIHN0eWxlcwogKiAgIENPTExFQ1RJT05TICAgICAgICAgICBEcm9wIGRvd24gbGlzdCAoY29sbGVjdGlvbikgc3R5bGVzCiAqICAgUFJJTlRJTkcgICAgICAgICAgICAgIFByaW50IGRpc3BsYXkgc3R5bGVzCiAqICAgTUlTQyAgICAgICAgICAgICAgICAgIE1pbm9yIG1pc2Mgc3R5bGVzCiAqLwoKCi8qCiAqIENPTlRBSU5FUgogKiBUYWJsZVRvb2xzIGNvbnRhaW5lciBlbGVtZW50IGFuZCBzdHlsZXMgYXBwbHlpbmcgdG8gYWxsIGNvbXBvbmVudHMKICovCmRpdi5EVFRUX2NvbnRhaW5lciB7Cglwb3NpdGlvbjogcmVsYXRpdmU7CglmbG9hdDogbGVmdDsKfQoKLkRUVFRfYnV0dG9uIHsKCXBvc2l0aW9uOiByZWxhdGl2ZTsKCWZsb2F0OiBsZWZ0OwoJbWFyZ2luLXJpZ2h0OiAzcHg7CglwYWRkaW5nOiAzcHggMTBweDsKCWJvcmRlcjogMXB4IHNvbGlkICNkMGQwZDA7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwoJY29sb3I6ICMzMzMgIWltcG9ydGFudDsKCWN1cnNvcjogcG9pbnRlcjsKCSpjdXJzb3I6IGhhbmQ7Cn0KCi5EVFRUX2J1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7IAoJYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7CglwYWRkaW5nOiAwOwp9CgoKCi8qCiAqIFNFTEVDVElORwogKiBSb3cgc2VsZWN0aW9uIHN0eWxlcwogKi8KdGFibGUuRFRUVF9zZWxlY3RhYmxlIHRib2R5IHRyIHsKCWN1cnNvcjogcG9pbnRlcjsKCSpjdXJzb3I6IGhhbmQ7Cn0KCnRhYmxlLmRhdGFUYWJsZSB0ci5EVFRUX3NlbGVjdGVkLm9kZCB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjOUZBRkQxOwp9Cgp0YWJsZS5kYXRhVGFibGUgdHIuRFRUVF9zZWxlY3RlZC5vZGQgdGQuc29ydGluZ18xIHsKCWJhY2tncm91bmQtY29sb3I6ICM5RkFGRDE7Cn0KCnRhYmxlLmRhdGFUYWJsZSB0ci5EVFRUX3NlbGVjdGVkLm9kZCB0ZC5zb3J0aW5nXzIgewoJYmFja2dyb3VuZC1jb2xvcjogIzlGQUZEMTsKfQoKdGFibGUuZGF0YVRhYmxlIHRyLkRUVFRfc2VsZWN0ZWQub2RkIHRkLnNvcnRpbmdfMyB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjOUZBRkQxOwp9CgoKdGFibGUuZGF0YVRhYmxlIHRyLkRUVFRfc2VsZWN0ZWQuZXZlbiB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjQjBCRUQ5Owp9Cgp0YWJsZS5kYXRhVGFibGUgdHIuRFRUVF9zZWxlY3RlZC5ldmVuIHRkLnNvcnRpbmdfMSB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjQjBCRUQ5Owp9Cgp0YWJsZS5kYXRhVGFibGUgdHIuRFRUVF9zZWxlY3RlZC5ldmVuIHRkLnNvcnRpbmdfMiB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjQjBCRUQ5Owp9Cgp0YWJsZS5kYXRhVGFibGUgdHIuRFRUVF9zZWxlY3RlZC5ldmVuIHRkLnNvcnRpbmdfMyB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjQjBCRUQ5Owp9CgoKLyoKICogQ09MTEVDVElPTlMKICogRHJvcCBkb3duIGxpc3QgKGNvbGxlY3Rpb24pIHN0eWxlcwogKi8KCmRpdi5EVFRUX2NvbGxlY3Rpb24gewoJd2lkdGg6IDE1MHB4OwoJYmFja2dyb3VuZC1jb2xvcjogI2YzZjNmMzsKCW92ZXJmbG93OiBoaWRkZW47Cgl6LWluZGV4OiAyMDAyOwoJCglib3gtc2hhZG93OiA1cHggNXB4IDVweCByZ2JhKDAsIDAsIDAsIDAuNSk7CgktbW96LWJveC1zaGFkb3c6IDVweCA1cHggNXB4IHJnYmEoMCwgMCwgMCwgMC41KTsKCS13ZWJraXQtYm94LXNoYWRvdzogNXB4IDVweCA1cHggcmdiYSgwLCAwLCAwLCAwLjUpOwp9CgpkaXYuRFRUVF9jb2xsZWN0aW9uX2JhY2tncm91bmQgewoJYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9iYWNrZ3JvdW5kLnBuZykgcmVwZWF0IHRvcCBsZWZ0OwoJei1pbmRleDogMjAwMTsKfQoKZGl2LkRUVFRfY29sbGVjdGlvbiBidXR0b24uRFRUVF9idXR0b24sCmRpdi5EVFRUX2NvbGxlY3Rpb24gZGl2LkRUVFRfYnV0dG9uLApkaXYuRFRUVF9jb2xsZWN0aW9uIGEuRFRUVF9idXR0b24gewoJZmxvYXQ6IG5vbmU7Cgl3aWR0aDogMTAwJTsKCW1hcmdpbi1ib3R0b206IC0wLjFlbTsKfQoKCi8qCiAqIFBSSU5USU5HCiAqIFByaW50IGRpc3BsYXkgc3R5bGVzCiAqLwoKLkRUVFRfcHJpbnRfaW5mbyB7Cglwb3NpdGlvbjogYWJzb2x1dGU7Cgl0b3A6IDUwJTsKCWxlZnQ6IDUwJTsKCXdpZHRoOiA0MDBweDsKCWhlaWdodDogMTUwcHg7CgltYXJnaW4tbGVmdDogLTIwMHB4OwoJbWFyZ2luLXRvcDogLTc1cHg7Cgl0ZXh0LWFsaWduOiBjZW50ZXI7CgliYWNrZ3JvdW5kLWNvbG9yOiAjM2YzZjNmOwoJY29sb3I6IHdoaXRlOwoJcGFkZGluZzogMTBweCAzMHB4OwoJCglvcGFjaXR5OiAwLjk7CgkKCWJvcmRlci1yYWRpdXM6IDVweDsKCS1tb3otYm9yZGVyLXJhZGl1czogNXB4OwoJLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA1cHg7CgkKCWJveC1zaGFkb3c6IDVweCA1cHggNXB4IHJnYmEoMCwgMCwgMCwgMC41KTsKCS1tb3otYm94LXNoYWRvdzogNXB4IDVweCA1cHggcmdiYSgwLCAwLCAwLCAwLjUpOwoJLXdlYmtpdC1ib3gtc2hhZG93OiA1cHggNXB4IDVweCByZ2JhKDAsIDAsIDAsIDAuNSk7Cn0KCi5EVFRUX3ByaW50X2luZm8gaDYgewoJZm9udC13ZWlnaHQ6IG5vcm1hbDsKCWZvbnQtc2l6ZTogMjhweDsKCWxpbmUtaGVpZ2h0OiAyOHB4OwoJbWFyZ2luOiAxZW07Cn0KCi5EVFRUX3ByaW50X2luZm8gcCB7Cglmb250LXNpemU6IDE0cHg7CglsaW5lLWhlaWdodDogMjBweDsKfQoKCi8qCiAqIE1JU0MKICogTWlub3IgbWlzYyBzdHlsZXMKICovCgouRFRUVF9kaXNhYmxlZCB7Cgljb2xvcjogIzk5OTsKfQo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/TableTools/media/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/TableTools/media/images/background.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAIAAAF1CoEkAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODA2RUFGNUIxMDNBMTFFMDhFM0JCMDYyOEU0NjA2OTkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODA2RUFGNUMxMDNBMTFFMDhFM0JCMDYyOEU0NjA2OTkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4MDZFQUY1OTEwM0ExMUUwOEUzQkIwNjI4RTQ2MDY5OSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4MDZFQUY1QTEwM0ExMUUwOEUzQkIwNjI4RTQ2MDY5OSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pvkh0zcAAAAkSURBVHjaYmBgYAAIIBACCCAoAgggGAIIIAQCCCCsCCDACCEAAFYAAdxln20AAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/TableTools/media/images/collection.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABEAAAAaCAYAAAEmrYevAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Q0RCMjY3NzgwQUY1MTFFMDkwMUREQTkwOTE3Rjc4NjciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Q0RCMjY3NzkwQUY1MTFFMDkwMUREQTkwOTE3Rjc4NjciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDREIyNjc3NjBBRjUxMUUwOTAxRERBOTA5MTdGNzg2NyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDREIyNjc3NzBBRjUxMUUwOTAxRERBOTA5MTdGNzg2NyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pgo7dVYAAAECSURBVHjaYvz//z8DDDAxIAEwZ+bMmWBpRmRlAAEE58DVM0tKSjKcPXsWoQ4ggFA0wAAL1EgQFQ7EK9PT0xmwqgQIIAxBJnQV2AWAhnuAMNw2INhBvKEAAYTVLQRtxgZgloNcpAKkeID4AhAbAPEXoLfvoCgCApAAyG5GID4PpansJoAAImgSE8XWUK4AOeD+I4XDf2CgMaIHmgA00ECAC5sVlkBsCMX22BSAEocEFO8YTAEFEGBERTtVksXQMYQFXQBalogC8Wss6sHioDKGGJcYQ9OSAZRvAOUbE+sdUBLaDk1rElDNElA+SFyIGENeQJM8zLAIKC0BFX83mk7oZAgA6xZYkA85i30AAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/TableTools/media/images/collection_hover.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABEAAAAaCAYAAAEmrYevAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Q0RCMjY3NzQwQUY1MTFFMDkwMUREQTkwOTE3Rjc4NjciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Q0RCMjY3NzUwQUY1MTFFMDkwMUREQTkwOTE3Rjc4NjciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDREIyNjc3MjBBRjUxMUUwOTAxRERBOTA5MTdGNzg2NyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDREIyNjc3MzBBRjUxMUUwOTAxRERBOTA5MTdGNzg2NyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkVXjRQAAAEeSURBVHjaYvz//z8DDDCBCJ/0WwgOEIClGZGVAQQQnMOCrhahDiCAUDTAAAuS+Y1AXL9lphoDVpUAAYQhyISuAu5WdDdYArEr3DYgOE68oQABhNUtWG0mBGCWg5ynDqREgfgIEHuAaKC3v6AoAoKbQHwD5AQg3g6lGdAVMcAkgCYwkuxwgAAiqIiJYq8zERUusChDB6DkgGzCf2xs5PAQQ5IQwOYGUNA7ALE5NGFgKADFCQ8QswHxDlxBvhXmODqGJECAERWjVEmqQ8cQlHhBSkRCQPwOi3p+IP6IHne4XGIGTUveUL49lK9LrHeEoDnXDYjvQzWDkpYJEB8GYgliDHmHlPWvAnEayPVQr4DEX+ANEzSwG8mw2aOJjTQAAL+LXGoV+zNZAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/TableTools/media/images/copy.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAAHeTXxYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RTg2OUIwRDU3MTRGMTFERkE4ODk4NjJCQkNBODUwREUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RTg2OUIwRDY3MTRGMTFERkE4ODk4NjJCQkNBODUwREUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFODY5QjBEMzcxNEYxMURGQTg4OTg2MkJCQ0E4NTBERSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpFODY5QjBENDcxNEYxMURGQTg4OTg2MkJCQ0E4NTBERSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PjvI5ooAAAT8SURBVHjaYvz//z8DMmACEV+/fv1/+vTp/3ABkKpTp06BVbCAiIqKin3fv39nBrEBAogR2QymO3fu/ADp//z583+mHz9+MOzcuZPh79+/DMxAQv/Bgwfv9+/ffwUgAJFjjAJACAPBPRGOQGxT5gfp/Z+v9AWWsbAw3UGaq4dhJp055xWRNyJQa8VaC2b2ZLKUAiKCu2OMgdbaP3jOwd4bqoreO5g54SeAGNG9AwNgRwON+g8yFmSPpKQkw4wZM1zAOj59+gSWAGFGRkaG+/fv/wTrYGZmBuPy8nKwZGpqKsQB//79Y3j27BmDsbExQ2dnJ8O3b98gEsBAYRAWFmZwcnICBSNYIdiopqamHUC7uIDmgxT+ADrmLUAANskYhYEQiKJDgqxsb2lpu6cQ9jDpt/IeKTzDnkKwEoRtPcGeIGGFEP+AkiKCWDjfef+PAzeE8Goepo57nifN88ymr+uinPOzQT62baMhKqW8lVJTJ0crtIQ9YwzXxBg/67reb79hCCE4b4jAm1KiNm7y3pOUkrTWdUSNBQSMsM8FcVtraVkWNosx46GRdI8IIuA2ftr3nXqmzjm+Q81fETZeb9+BBcdx8FlrHSRfAfioetQKgSC8kReFpNITKFgJr7FIKR7EA1h4BzstxEoQvIGtEBG8gJZewkawMCRFgjwy3zzWxCJZWNbZnW9+v/HPZv+32FNd1y+O44zSEqwSGdkjIpjnWRCPFdd1hed5dxAeLMt6QDEQCoiiqioTFIqGYQjTND/WdX0+VU+SSIJs2+YTLQBI1/UnYvr1AOERZYaCBGKRdbFtG8sEQmVvR04AoSASjHD7vhcYrmmaRBRF3KvToB+CchfR/bZtxTiOXJQ8z/kORg/QsizsSTYQnS+KQgRBwN4AwkmE/Sm59AAQ8mqahnk4DINIkoQnGnlJPeU3I6SBrusE/T34LsuyQ1kS4SKFfd85LORQliXHH4ahqKqK7+HpBIIlXGiaxicYjVDjOOZc8C1bcoDSNH0j2rxSOBqBHmlfyBN4eaO9E+CLPH3SFL/7vi++Beiz/FUTCIIwviYQC+G8JjnBg4CNwhVBsBR8ADtfIw9jlTyArS9wzRVnevs0NhLwIQLJ/Ib7ZI1nFhbP3dn95t83sxcJaxWja+pldrgj9yqGGnEsWWfK5ubMl81vaU6oLujEME+/zGazj+Fw+CA+ulBjCmuE1EqzF9zRaBT6/b6D4kfKCaXucDi8Wl16n8/nYbFYXCdR4/yfODcEIOAsy0Kapn5xXddU2qD6xR4KWO16GwwGn+a6pwvaxgPzY7cpgCIcYzwe+/rxePT8khz7RVH4r8Xm2cLwSF63WiQg3EXCCoD/4hv1sNfrOb9YX6/XXk+whn3kFZubFsld0lLNCFcRXC7cbDbBOuY5fuxtt9uw3+/DarVyOd3TCgQnFQsmwgIBkD205pvChgyEYR8y0VeIH5wQyVqBEI5BRDKRiMpJphmHPPug83K5dHCKPjL2hHCXoxRgrUBoL37EPCEeZFhZlsG6pK8RB9arqgqTycSB5AFxT/y6AkJQlqgNKQH0OMG9XECP4BvA6XTqVqiJIh/z8KZFgPCtrOM/LuMxIkVwy263C3me07b9HSLOiQaiyVV6W3u4N827+JzMISZMfK/ewzozSZJgVeS8h1JMnTXZ7ul0uosrwXnylPlndBrF/s7OrQP0Mt39C/jw/0+zWlwxAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/TableTools/media/images/copy_hover.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAAHeTXxYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABKdpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wUmlnaHRzPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvcmlnaHRzLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wUmlnaHRzOk1hcmtlZD0iRmFsc2UiIHhtcFJpZ2h0czpXZWJTdGF0ZW1lbnQ9Imh0dHA6Ly9ibG9nLmFkZGljdGVkdG9jb2ZmZWUuZGUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RTg2OUIwRDI3MTRGMTFERkE4ODk4NjJCQkNBODUwREUiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RTg2OUIwRDE3MTRGMTFERkE4ODk4NjJCQkNBODUwREUiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTIE1hY2ludG9zaCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ1dWlkOmUz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]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/TableTools/media/images/csv.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/TableTools/media/images/csv_hover.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/TableTools/media/images/pdf.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/TableTools/media/images/pdf_hover.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAAHeTXxYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABKdpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wUmlnaHRzPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvcmlnaHRzLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wUmlnaHRzOk1hcmtlZD0iRmFsc2UiIHhtcFJpZ2h0czpXZWJTdGF0ZW1lbnQ9Imh0dHA6Ly9ibG9nLmFkZGljdGVkdG9jb2ZmZWUuZGUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RDMyNzk5OEY3MTk5MTFERkE4ODk4NjJCQkNBODUwREUiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RDMyNzk5OEU3MTk5MTFERkE4ODk4NjJCQkNBODUwREUiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTIE1hY2ludG9zaCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ1dWlkOjAy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]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/TableTools/media/images/print.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/TableTools/media/images/print_hover.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/TableTools/media/images/psd/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/TableTools/media/images/psd/collection.psd</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[OEJQUwABAAAAAAAAAAQAAAAaAAAAEQAIAAMAAAAAAABZiDhCSU0EJQAAAAAAEAAAAAAAAAAAAAAAAAAAAAA4QklNBCQAAAAAOa88P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjAtYzA2MCA2MS4xMzQ3NzcsIDIwMTAvMDIvMTItMTc6MzI6MDAgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+QWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2g8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTAtMDYtMTdUMTA6MjA6NDArMDE6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxMC0xMi0yOFQyMjoyOTo1NVo8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDEwLTEyLTI4VDIyOjI5OjU1WjwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+CiAgICAgICAgIDxkYzpmb3JtYXQ+YXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcDwvZGM6Zm9ybWF0PgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIj4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHBob3Rvc2hvcDpJQ0NQcm9maWxlPnNSR0IgSUVDNjE5NjYtMi4xPC9waG90b3Nob3A6SUNDUHJvZmlsZT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIj4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDowMjgwMTE3NDA3MjA2ODExQTFGRDk0OTMzQURGMzlGOTwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDowMTgwMTE3NDA3MjA2ODExQTFGRDk0OTMzQURGMzlGOTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjAxODAxMTc0MDcyMDY4MTFBMUZEOTQ5MzNBREYzOUY5PC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjAxODAxMTc0MDcyMDY4MTFBMUZEOTQ5MzNBREYzOUY5PC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDEwLTA2LTE3VDEwOjIwOjQwKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaDwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNvbnZlcnRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6cGFyYW1ldGVycz5mcm9tIGltYWdlL3BuZyB0byBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wPC9zdEV2dDpwYXJhbWV0ZXJzPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDowMjgwMTE3NDA3MjA2ODExQTFGRDk0OTMzQURGMzlGOTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxMC0xMi0yOFQyMjoyOTo1NVo8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzUgTWFjaW50b3NoPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+ADhCSU0EOgAAAAAAlQAAABAAAAABAAAAAAALcHJpbnRPdXRwdXQAAAAEAAAAAFBzdFNib29sAQAAAABJbnRlZW51bQAAAABJbnRlAAAAAENscm0AAAAPcHJpbnRTaXh0ZWVuQml0Ym9vbAAAAAALcHJpbnRlck5hbWVURVhUAAAAEABTAGEAbQBzAHUAbgBnACAAQwBMAFAALQAzADIAMAAAADhCSU0EOwAAAAABsgAAABAAAAABAAAAAAAScHJpbnRPdXRwdXRPcHRpb25zAAAAEgAAAABDcHRuYm9vbAAAAAAAQ2xicmJvb2wAAAAAAFJnc01ib29sAAAAAABDcm5DYm9vbAAAAAAAQ250Q2Jvb2wAAAAAAExibHNib29sAAAAAABOZ3R2Ym9vbAAAAAAARW1sRGJvb2wAAAAAAEludHJib29sAAAAAABCY2tnT2JqYwAAAAEAAAAAAABSR0JDAAAAAwAAAABSZCAgZG91YkBv4AAAAAAAAAAAAEdybiBkb3ViQG/gAAAAAAAAAAAAQmwgIGRvdWJAb+AAAAAAAAAAAABCcmRUVW50RiNSbHQAAAAAAAAAAAAAAABCbGQgVW50RiNSbHQAAAAAAAAAAAAAAABSc2x0VW50RiNQeGxAUgCTgAAAAAAAAAp2ZWN0b3JEYXRhYm9vbAEAAAAAUGdQc2VudW0AAAAAUGdQcwAAAABQZ1BDAAAAAExlZnRVbnRGI1JsdAAAAAAAAAAAAAAAAFRvcCBVbnRGI1JsdAAAAAAAAAAAAAAAAFNjbCBVbnRGI1ByY0BZAAAAAAAAOEJJTQPtAAAAAAAQAEgCTgABAAIASAJOAAEAAjhCSU0EJgAAAAAADgAAAAAAAAAAAAA/gAAAOEJJTQPuAAAAAAANDFRyYW5zcGFyZW5jeQA4QklNBBUAAAAAAB4AAAANAFQAcgBhAG4AcwBwAGEAcgBlAG4AYwB5AAA4QklNA+8AAAAAAA4AAP//AAAAAAAAAGQBADhCSU0ENQAAAAAAEQAAAAEAAP//AAAAAAAAAGQBADhCSU0EHQAAAAAABAAAAAA4QklNBA0AAAAAAAQAAAAeOEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNJxAAAAAAAAoAAQAAAAAAAAACOEJJTQP1AAAAAABIAC9mZgABAGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUAAAABAC0AAAAGAAAAAAABOEJJTQP4AAAAAABwAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAADhCSU0EAAAAAAAAAgABOEJJTQQCAAAAAAAIAAAAAAAAAAA4QklNBDAAAAAAAAQBAQEBOEJJTQQtAAAAAAAGAAEAAAAQOEJJTQQIAAAAAAAQAAAAAQAAAkAAAAJAAAAAADhCSU0EHgAAAAAABAAAAAA4QklNBBoAAAAAAvYAAAAIAAAAEAAAAAEAAAAAAABudWxsAAAAAwAAAAhiYXNlTmFtZVRFWFQAAAAFAFUAcwBlAHIAAAAAAAZib3VuZHNPYmpjAAAAAQAAAAAAAFJjdDEAAAAEAAAAAFRvcCBsb25nAAAAAAAAAABMZWZ0bG9uZwAAAAAAAAAAQnRvbWxvbmcAAAAaAAAAAFJnaHRsb25n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]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/TableTools/media/images/psd/copy document.psd</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[OEJQUwABAAAAAAAAAAQAAAAwAAAAMAAIAAMAAAAAAABR6DhCSU0EBAAAAAAApxwCAAACAAIcAngAMfAgTWFkZSBvbiBhIE1hYyENRXhjbHVzaXZlIGZvciBTbWFzaGluZyBNYWdhemluZSEcAlAAEU9saXZlciBUd2FyZG93c2tpHAIZAAVpY29ucxwCGQANcHNkIHJlc3NvdXJjZRwCGQAHZmxhdm91chwCdAAnqSAgICAgICAgICAgDSAyMDA5IGJ5IE9saXZlciBUd2FyZG93c2tpADhCSU0EJQAAAAAAEJ8tNPbssDuz5hXaVaYTABQ4QklNBCQAAAAAHio8P3hwYWNrZXQgYmVnaW49J++7vycgaWQ9J1c1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCc/Pgo8eDp4bXBtZXRhIHhtbG5zOng9J2Fkb2JlOm5zOm1ldGEvJyB4OnhtcHRrPSdYTVAgdG9vbGtpdCAzLjAtMjgsIGZyYW1ld29yayAxLjYnPgo8cmRmOlJERiB4bWxuczpyZGY9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMnIHhtbG5zOmlYPSdodHRwOi8vbnMuYWRvYmUuY29tL2lYLzEuMC8nPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSd1dWlkOmUzMWQ5ODFiLTU0ZmItMTFkZS1hNjc4LWM5MzkzOWE0Yjg1MycKICB4bWxuczpleGlmPSdodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyc+CiAgPGV4aWY6TmF0aXZlRGlnZXN0PjM2ODY0LDQwOTYwLDQwOTYxLDM3MTIxLDM3MTIyLDQwOTYyLDQwOTYzLDM3NTEwLDQwOTY0LDM2ODY3LDM2ODY4LDMzNDM0LDMzNDM3LDM0ODUwLDM0ODUyLDM0ODU1LDM0ODU2LDM3Mzc3LDM3Mzc4LDM3Mzc5LDM3MzgwLDM3MzgxLDM3MzgyLDM3MzgzLDM3Mzg0LDM3Mzg1LDM3Mzg2LDM3Mzk2LDQxNDgzLDQxNDg0LDQxNDg2LDQxNDg3LDQxNDg4LDQxNDkyLDQxNDkzLDQxNDk1LDQxNzI4LDQxNzI5LDQxNzMwLDQxOTg1LDQxOTg2LDQxOTg3LDQxOTg4LDQxOTg5LDQxOTkwLDQxOTkxLDQxOTkyLDQxOTkzLDQxOTk0LDQxOTk1LDQxOTk2LDQyMDE2LDAsMiw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwyMCwyMiwyMywyNCwyNSwyNiwyNywyOCwzMDs4OUFENkE0QjU4MjI4RDg4NTlDOTczMEY4RTZGQzY4MTwvZXhpZjpOYXRpdmVEaWdlc3Q+CiAgPGV4aWY6Q29sb3JTcGFjZT40Mjk0OTY3Mjk1PC9leGlmOkNvbG9yU3BhY2U+CiAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjQ4PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NDg8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9J3V1aWQ6ZTMxZDk4MWItNTRmYi0xMWRlLWE2NzgtYzkzOTM5YTRiODUzJwogIHhtbG5zOnBkZj0naHR0cDovL25zLmFkb2JlLmNvbS9wZGYvMS4zLyc+CiA8L3JkZjpEZXNjcmlwdGlvbj4KCiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0ndXVpZDplMzFkOTgxYi01NGZiLTExZGUtYTY3OC1jOTM5MzlhNGI4NTMnCiAgeG1sbnM6cGhvdG9zaG9wPSdodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvJz4KICA8cGhvdG9zaG9wOklDQ1Byb2ZpbGU+QWRvYmUgUkdCICgxOTk4KTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICA8cGhvdG9zaG9wOkhpc3Rvcnk+PC9waG90b3Nob3A6SGlzdG9yeT4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSd1dWlkOmUzMWQ5ODFiLTU0ZmItMTFkZS1hNjc4LWM5MzkzOWE0Yjg1MycKICB4bWxuczp0aWZmPSdodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyc+CiAgPHRpZmY6TmF0aXZlRGlnZXN0PjI1NiwyNTcsMjU4LDI1OSwyNjIsMjc0LDI3NywyODQsNTMwLDUzMSwyODIsMjgzLDI5NiwzMDEsMzE4LDMxOSw1MjksNTMyLDMwNiwyNzAsMjcxLDI3MiwzMDUsMzE1LDMzNDMyOzFCOTUyMkFFRTAwMTJDQTM4MUI5NEZGOTVFODIxQ0RFPC90aWZmOk5hdGl2ZURpZ2VzdD4KICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogIDx0aWZmOllSZXNvbHV0aW9uPjcyLzE8L3RpZmY6WVJlc29sdXRpb24+CiAgPHRpZmY6WFJlc29sdXRpb24+NzIvMTwvdGlmZjpYUmVzb2x1dGlvbj4KICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9J3V1aWQ6ZTMxZDk4MWItNTRmYi0xMWRlLWE2NzgtYzkzOTM5YTRiODUzJwogIHhtbG5zOnhhcD0naHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyc+CiAgPHhhcDpNZXRhZGF0YURhdGU+MjAwOS0wNi0wN1QxMzo1MDo1NSswMTowMDwveGFwOk1ldGFkYXRhRGF0ZT4KICA8eGFwOk1vZGlmeURhdGU+MjAwOS0wNi0wN1QxMzo1MDo1NSswMTowMDwveGFwOk1vZGlmeURhdGU+CiAgPHhhcDpDcmVhdGVEYXRlPjIwMDktMDEtMTJUMTA6MDA6NDIrMDE6MDA8L3hhcDpDcmVhdGVEYXRlPgogIDx4YXA6Q3JlYXRvclRvb2w+QWRvYmUgUGhvdG9zaG9wIENTIE1hY2ludG9zaDwveGFwOkNyZWF0b3JUb29sPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9J3V1aWQ6ZTMxZDk4MWItNTRmYi0xMWRlLWE2NzgtYzkzOTM5YTRiODUzJwogIHhtbG5zOnhhcE1NPSdodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vJz4KICA8eGFwTU06SW5zdGFuY2VJRD51dWlkOjg5N0Q4OTkxMjFENzExREU4QTBCQkRGRkJDNjlFRkM5PC94YXBNTTpJbnN0YW5jZUlEPgogIDx4YXBNTTpEb2N1bWVudElEPnV1aWQ6QkFBRjVERTRFMjFDMTFEREFDQzVCMjlEOTA4NUM1NUE8L3hhcE1NOkRvY3VtZW50SUQ+CiA8L3JkZjpEZXNjcmlwdGlvbj4KCiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0ndXVpZDplMzFkOTgxYi01NGZiLTExZGUtYTY3OC1jOTM5MzlhNGI4NTMnCiAgeG1sbnM6eGFwUmlnaHRzPSdodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvcmlnaHRzLyc+CiAgPHhhcFJpZ2h0czpXZWJTdGF0ZW1lbnQ+aHR0cDovL2Jsb2cuYWRkaWN0ZWR0b2NvZmZlZS5kZTwveGFwUmlnaHRzOldlYlN0YXRlbWVudD4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSd1dWlkOmUzMWQ5ODFiLTU0ZmItMTFkZS1hNjc4LWM5MzkzOWE0Yjg1MycKICB4bWxuczpkYz0naHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8nPgogIDxkYzpmb3JtYXQ+YXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcDwvZGM6Zm9ybWF0PgogIDxkYzpjcmVhdG9yPgogICA8cmRmOlNlcT4KICAgIDxyZGY6bGk+T2xpdmVyIFR3YXJkb3dza2k8L3JkZjpsaT4KICAgPC9yZGY6U2VxPgogIDwvZGM6Y3JlYXRvcj4KICA8ZGM6ZGVzY3JpcHRpb24+CiAgIDxyZGY6QWx0PgogICAgPHJkZjpsaSB4bWw6bGFuZz0neC1kZWZhdWx0Jz7vo78gTWFkZSBvbiBhIE1hYyEmI3hBO0V4Y2x1c2l2ZSBmb3IgU21hc2hpbmcgTWFnYXppbmUhPC9yZGY6bGk+CiAgIDwvcmRmOkFsdD4KICA8L2RjOmRlc2NyaXB0aW9uPgogIDxkYzpyaWdodHM+CiAgIDxyZGY6QWx0PgogICAgPHJkZjpsaSB4bWw6bGFuZz0neC1kZWZhdWx0Jz7CqSAgICAgICAgICAgJiN4QTsgMjAwOSBieSBPbGl2ZXIgVHdhcmRvd3NraTwvcmRmOmxpPgogICA8L3JkZjpBbHQ+CiAgPC9kYzpyaWdodHM+CiAgPGRjOnN1YmplY3Q+CiAgIDxyZGY6QmFnPgogICAgPHJkZjpsaT5pY29uczwvcmRmOmxpPgogICAgPHJkZjpsaT5wc2QgcmVzc291cmNlPC9yZGY6bGk+CiAgICA8cmRmOmxpPmZsYXZvdXI8L3JkZjpsaT4KICAgPC9yZGY6QmFnPgogIDwvZGM6c3ViamVjdD4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9J3cnPz44QklNA+oAAAAAHaY8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pgo8IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZSBDb21wdXRlci8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KPHBsaXN0IHZlcnNpb249IjEuMCI+CjxkaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTUhvcml6b250YWxSZXM8L2tleT4KCTxkaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJPHN0cmluZz5jb20uYXBwbGUucHJpbnRpbmdtYW5hZ2VyPC9zdHJpbmc+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCTxhcnJheT4KCQkJPGRpY3Q+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNSG9yaXpvbnRhbFJlczwva2V5PgoJCQkJPHJlYWw+NzI8L3JlYWw+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQk8ZGF0ZT4yMDA5LTAxLTEyVDA5OjAwOjQyWjwvZGF0ZT4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCTwvZGljdD4KCQk8L2FycmF5PgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTU9yaWVudGF0aW9uPC9rZXk+Cgk8ZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQk8YXJyYXk+CgkJCTxkaWN0PgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTU9yaWVudGF0aW9uPC9rZXk+CgkJCQk8aW50ZWdlcj4xPC9pbnRlZ2VyPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNsaWVudDwva2V5PgoJCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnRpbmdtYW5hZ2VyPC9zdHJpbmc+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQubW9kRGF0ZTwva2V5PgoJCQkJPGRhdGU+MjAwOS0wMS0xMlQwOTowMDo0Mlo8L2RhdGU+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQk8L2RpY3Q+CgkJPC9hcnJheT4KCTwvZGljdD4KCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1TY2FsaW5nPC9rZXk+Cgk8ZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQk8YXJyYXk+CgkJCTxkaWN0PgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTVNjYWxpbmc8L2tleT4KCQkJCTxyZWFsPjE8L3JlYWw+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQk8ZGF0ZT4yMDA5LTAxLTEyVDA5OjAwOjQyWjwvZGF0ZT4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCTwvZGljdD4KCQk8L2FycmF5PgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTVZlcnRpY2FsUmVzPC9rZXk+Cgk8ZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQk8YXJyYXk+CgkJCTxkaWN0PgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTVZlcnRpY2FsUmVzPC9rZXk+CgkJCQk8cmVhbD43MjwvcmVhbD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jbGllbnQ8L2tleT4KCQkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1vZERhdGU8L2tleT4KCQkJCTxkYXRlPjIwMDktMDEtMTJUMDk6MDA6NDJaPC9kYXRlPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJPC9kaWN0PgoJCTwvYXJyYXk+Cgk8L2RpY3Q+Cgk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNVmVydGljYWxTY2FsaW5nPC9rZXk+Cgk8ZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQk8YXJyYXk+CgkJCTxkaWN0PgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTVZlcnRpY2FsU2NhbGluZzwva2V5PgoJCQkJPHJlYWw+MTwvcmVhbD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jbGllbnQ8L2tleT4KCQkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1vZERhdGU8L2tleT4KCQkJCTxkYXRlPjIwMDktMDEtMTJUMDk6MDA6NDJaPC9kYXRlPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJPC9kaWN0PgoJCTwvYXJyYXk+Cgk8L2RpY3Q+Cgk8a2V5PmNvbS5hcHBsZS5wcmludC5zdWJUaWNrZXQucGFwZXJfaW5mb190aWNrZXQ8L2tleT4KCTxkaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhZ2VSZWN0PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhZ2VSZWN0PC9rZXk+CgkJCQkJPGFycmF5PgoJCQkJCQk8cmVhbD4wLjA8L3JlYWw+CgkJCQkJCTxyZWFsPjAuMDwvcmVhbD4KCQkJCQkJPHJlYWw+NzgzPC9yZWFsPgoJCQkJCQk8cmVhbD41NTk8L3JlYWw+CgkJCQkJPC9hcnJheT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnRpbmdtYW5hZ2VyPC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1vZERhdGU8L2tleT4KCQkJCQk8ZGF0ZT4yMDA5LTA2LTA3VDEyOjQ2OjIyWjwvZGF0ZT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2RpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTUFkanVzdGVkUGFwZXJSZWN0PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhcGVyUmVjdDwva2V5PgoJCQkJCTxhcnJheT4KCQkJCQkJPHJlYWw+LTE4PC9yZWFsPgoJCQkJCQk8cmVhbD4tMTg8L3JlYWw+CgkJCQkJCTxyZWFsPjgyNDwvcmVhbD4KCQkJCQkJPHJlYWw+NTc3PC9yZWFsPgoJCQkJCTwvYXJyYXk+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNsaWVudDwva2V5PgoJCQkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQkJPGRhdGU+MjAwOS0wNi0wN1QxMjo0NjoyMlo8L2RhdGU+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5QTVBhcGVyTmFtZTwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludC5wbS5Qb3N0U2NyaXB0PC9zdHJpbmc+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBNUGFwZXJOYW1lPC9rZXk+CgkJCQkJPHN0cmluZz5pc28tYTQ8L3N0cmluZz4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnQucG0uUG9zdFNjcmlwdDwvc3RyaW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQkJPGRhdGU+MjAwMy0wNy0wMVQxNzo0OTozNlo8L2RhdGU+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjE8L2ludGVnZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5QTVVuYWRqdXN0ZWRQYWdlUmVjdDwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludC5wbS5Qb3N0U2NyaXB0PC9zdHJpbmc+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBNVW5hZGp1c3RlZFBhZ2VSZWN0PC9rZXk+CgkJCQkJPGFycmF5PgoJCQkJCQk8cmVhbD4wLjA8L3JlYWw+CgkJCQkJCTxyZWFsPjAuMDwvcmVhbD4KCQkJCQkJPHJlYWw+NzgzPC9yZWFsPgoJCQkJCQk8cmVhbD41NTk8L3JlYWw+CgkJCQkJPC9hcnJheT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnRpbmdtYW5hZ2VyPC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1vZERhdGU8L2tleT4KCQkJCQk8ZGF0ZT4yMDA5LTAxLTEyVDA5OjAwOjQyWjwvZGF0ZT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2RpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBNVW5hZGp1c3RlZFBhcGVyUmVjdDwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludC5wbS5Qb3N0U2NyaXB0PC9zdHJpbmc+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBNVW5hZGp1c3RlZFBhcGVyUmVjdDwva2V5PgoJCQkJCTxhcnJheT4KCQkJCQkJPHJlYWw+LTE4PC9yZWFsPgoJCQkJCQk8cmVhbD4tMTg8L3JlYWw+CgkJCQkJCTxyZWFsPjgyNDwvcmVhbD4KCQkJCQkJPHJlYWw+NTc3PC9yZWFsPgoJCQkJCTwvYXJyYXk+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNsaWVudDwva2V5PgoJCQkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQkJPGRhdGU+MjAwOS0wMS0xMlQwOTowMDo0Mlo8L2RhdGU+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5wcGQuUE1QYXBlck5hbWU8L2tleT4KCQk8ZGljdD4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnQucG0uUG9zdFNjcmlwdDwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5wcGQuUE1QYXBlck5hbWU8L2tleT4KCQkJCQk8c3RyaW5nPkE0PC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNsaWVudDwva2V5PgoJCQkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50LnBtLlBvc3RTY3JpcHQ8L3N0cmluZz4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQubW9kRGF0ZTwva2V5PgoJCQkJCTxkYXRlPjIwMDMtMDctMDFUMTc6NDk6MzZaPC9kYXRlPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCQk8aW50ZWdlcj4xPC9pbnRlZ2VyPgoJCQkJPC9kaWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuQVBJVmVyc2lvbjwva2V5PgoJCTxzdHJpbmc+MDAuMjA8L3N0cmluZz4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQucHJpdmF0ZUxvY2s8L2tleT4KCQk8ZmFsc2UvPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC50eXBlPC9rZXk+CgkJPHN0cmluZz5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvVGlja2V0PC9zdHJpbmc+Cgk8L2RpY3Q+Cgk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuQVBJVmVyc2lvbjwva2V5PgoJPHN0cmluZz4wMC4yMDwvc3RyaW5nPgoJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnByaXZhdGVMb2NrPC9rZXk+Cgk8ZmFsc2UvPgoJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnR5cGU8L2tleT4KCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXRUaWNrZXQ8L3N0cmluZz4KPC9kaWN0Pgo8L3BsaXN0Pgo4QklNA+kAAAAAAHgAAwAAAEgASAAAAAADDwIv/+7/7gM4AkEDZwV7A+AAAgAAAEgASAAAAAAC2AIoAAEAAABkAAAAAQADAwMAAAABf/8AAQABAAAAAAAAAAAAAAAAaAgAGQGQAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4QklNA+0AAAAAABAASAAAAAEAAQBIAAAAAQABOEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4QklNA+4AAAAAAA0MVHJhbnNwYXJlbmN5ADhCSU0EFQAAAAAAHgAAAA0AVAByAGEAbgBzAHAAYQByAGUAbgBjAHkAADhCSU0D7wAAAAAADgAA//8AAAAAAAAAZAEAOEJJTQQdAAAAAAAEAAAAADhCSU0EDQAAAAAABAAAAFo4QklNBBkAAAAAAAQAAAAVOEJJTQPzAAAAAAAJAAAAAAAAAAABADhCSU0ECgAAAAAAAQAAOEJJTQQLAAAAAAAfaHR0cDovL2Jsb2cuYWRkaWN0ZWR0b2NvZmZlZS5kZQA4QklNJxAAAAAAAAoAAQAAAAAAAAACOEJJTQP1AAAAAABIAC9mZgABAGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUAAAABAC0AAAAGAAAAAAABOEJJTQP4AAAAAABwAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////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0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/AAAbIzJFU2NzgZCdp7PAydHZ4eju9Pj8/v///vz49O7o4dnRycCzp52QgXNjU0UyIxsbIzJFU2NzgZCdp7PAydHZ4eju9Pj8/v///vz49O7o4dnRycCzp52QgXNjU0UyIxsAAQACAALRANEAAAEAAgAC0QDRAAABAAIAAtEA0QAAAAAAAAAAAAABAAQABAAEAAQABAAEAAQAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAC6//6AOr/+wDq//sA6v/7AOr/+wDq//sA5f8AAOT/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P8AAQACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAuT/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/wABAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAC5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/AAEAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAALk/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P8AAQACAAcACgALAAwACwAMAAoACQANAAkABwACAALzAAEAHv0z+QABADz9/wGlBvsA/wAAnP3/AbQJ/AD/AAES7f3/AcMP/QD+AAB+/P8BzBX+AP4AAQzw/P8D2B4AAP0AAJP7/wLhAAD9AABX+v8BBgD9AAQne5m97f7/AQ8A+QAFCV3V/w8A9wADCZMGAPMA8wAAAQACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAALzNvM28zbzNvM28zbzNvM28zbzNvM28zbzNvM2AAEAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAC8zbzNvM28zbzNvM28zbzNvM28zbzNvM28zbzNgABAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAvM28zbzNvM28zbzNvM28zbzNvM28zbzNvM28zYAAQAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAAoACQAIAAcABgAFAAQAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAusABhU0WH+nzOru/+oABhY0WH+ny+rv/+kABhU0WH+nzOrw/+gABhY0WH+nzOnx/+cABhYzWH+ny+ry/+YABhU0WH+my+rz/+UABhY0WX+ny+r0/+QABhUzWH+nzOn1/+MABhY0WICny+r2/+IABhU0WH+ny+r3/+EABhU0WICnzOr4/+AABhY0WH+ny+n5/98ABhYzWICny+r6/94ABhY0WH+nzOn7/90ABhU0WICny+r8/9wABhY0WH+nzOn9/9sABhY0WICmzOr+/9oACBY0WH+ny+n//9kABxYzWICny+n/2AAGFTRYgKfL6dcABRU0WICmzNYABBY0WYCn1QADFTRYgNQAAhU0WNMAARU00gAAFdEA0QDRANEA0QDRANEA0QDRANEA0QDRANEA0QDRANEA0QDRANEA0QDRANEAAAB+AAAAAAAA/34AAAAAAP//fgAAAAD///9+AAAA/////34AAP//////fgD///////9+AAEAAgACAAIAAgACAAIAAvr/+v/6//r/+v/6//r/AAEAAgACAAIAAgACAAIAAvr/+v/6//r/+v/6//r/AAEAAgACAAIAAgACAAIAAvr/+v/6//r/+v/6//r/AAEAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAALk/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P8AAQACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAuT/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/wABAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAC5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/AAEAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAALk/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P8AAQAEAAQABAAEAAQABAAEAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAuv/+gDq//sA6v/7AOr/+wDq//sA6v/7AOX/AADk/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/AAAAAAAAAAAAAAADCxkeFQYAAAAAAAABDCxdcVYpCwEAAAAAAxhdudi7ejUNAQAAAAMdb9b18M2GPBABAAACElGy6/j01o4+DgEAAAUkZrvr+ffbiS0GAAAAByRjtOr7+ctZEAEAAAAGHl+68/7ofhsBAAAAAAQlhuX7648lAwAAAAAAE2nX+eyYLgYAAAAAABFf0fjtojYHAAAAAAAPWsz387E+CQAAAAAAC1TJ+fa7SAoAAAAAAAtPw/f1vkoJAAAAAAAMTL/08rxICAAAAAAAC0298/G7RwkAAAAAAAxOwvX0vUwKAAAAAAALUsX39r9KCQAAAAAADFHF9vW9SQkAAAAAAAxPwvPzuUgIAAAAAAAKT8H08rdFCAAAAAAADFLF9vO5SgkAAAAAAApVyfj3u0gJAAAAAAANVcj49bpICQAAAAAAC1LF9fK1RAgAAAAAAA1Sw/Pws0IIAAAAAAANVMj38rdFCQAAAAAADFfM+PW5RQgAAAAAAA5Zy/f0tkMIAAAAAAANVcf18LJBBwAAAAAADFXF9vCwQAgAAAAAAA9Yyvb0tEIHAAAAAAAOW8/69LVDBwAAAAAADlrO+fSzQgcAAAAAAA5Yyvbwrj0HAAAAAAANV8n18Ks9CAAAAAAAD1zL9/GwPwcAAAAAAA5e0fr0sj4HAAAAAAAPXND587A+BwAAAAAADVvM9vCpOgYAAAAAAAxQwvLqnDMGAAAAAAAJPaTm1n4nBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQGBQIAAAABAAYABAAEAAQABAAGAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAIAAgAGAP/7APv/+AD9//cA/v/2AP//9QAA/wD/9gAA////9gD+//cA/f/4APz/+QD8//kA/P/5APz/+QD8//kA/P/5APz/+QD8//kA/P/5APz/+QD8//kA/P/5APz/+QD8//kA/P/5APz/+QD8//kA/P/5APz/+QD8//kA/P/5APz/+QD8//kA/P/5APz/+QD8//kA/P/5APz/+QD8//kA/P/5APz/+QD8//kA/P/5APT/9P/7//wA//8AAQAGAAQABAAEAAQABgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAACAAIABgD/+wD7//gA/f/3AP7/9gD///UAAP8A//YAAP////YA/v/3AP3/+AD8//kA/P/5APz/+QD8//kA/P/5APz/+QD8//kA/P/5APz/+QD8//kA/P/5APz/+QD8//kA/P/5APz/+QD8//kA/P/5APz/+QD8//kA/P/5APz/+QD8//kA/P/5APz/+QD8//kA/P/5APz/+QD8//kA/P/5APz/+QD8//kA/P/5APz/+QD0//T/+//8AP//AAEABgAEAAQABAAEAAYABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAgACAAYA//sA+//4AP3/9wD+//YA///1AAD/AP/2AAD////2AP7/9wD9//gA/P/5APz/+QD8//kA/P/5APz/+QD8//kA/P/5APz/+QD8//kA/P/5APz/+QD8//kA/P/5APz/+QD8//kA/P/5APz/+QD8//kA/P/5APz/+QD8//kA/P/5APz/+QD8//kA/P/5APz/+QD8//kA/P/5APz/+QD8//kA/P/5APz/+QD8//kA9P/0//v//AD//wAAAAAAAAAAAAEABAAEAAQABAAEAAQABAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAALr//oA6v/7AOr/+wDq//sA6v/7AOr/+wDl/wAA5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/wABAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAC5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/AAEAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAALk/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P8AAQACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAuT/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/wABAAIABwAKAAsADAALAAwACgAJAA0ACQAHAAIAAvMAAQAe/TP5AAEAPP3/AaUG+wD/AACc/f8BtAn8AP8AARLt/f8Bww/9AP4AAH78/wHMFf4A/gABDPD8/wPYHgAA/QAAk/v/AuEAAP0AAFf6/wEGAP0ABCd7mb3t/v8BDwD5AAUJXdX/DwD3AAMJkwYA8wDzAAABAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAvM28zbzNvM28zbzNvM28zbzNvM28zbzNvM28zYAAQACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAALzNvM28zbzNvM28zbzNvM28zbzNvM28zbzNvM2AAEAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAC8zbzNvM28zbzNvM28zbzNvM28zbzNvM28zbzNgABAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsACgAJAAgABwAGAAUABAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAC6wAGFTRYf6fM6u7/6gAGFjRYf6fL6u//6QAGFTRYf6fM6vD/6AAGFjRYf6fM6fH/5wAGFjNYf6fL6vL/5gAGFTRYf6bL6vP/5QAGFjRZf6fL6vT/5AAGFTNYf6fM6fX/4wAGFjRYgKfL6vb/4gAGFTRYf6fL6vf/4QAGFTRYgKfM6vj/4AAGFjRYf6fL6fn/3wAGFjNYgKfL6vr/3gAGFjRYf6fM6fv/3QAGFTRYgKfL6vz/3AAGFjRYf6fM6f3/2wAGFjRYgKbM6v7/2gAIFjRYf6fL6f//2QAHFjNYgKfL6f/YAAYVNFiAp8vp1wAFFTRYgKbM1gAEFjRZgKfVAAMVNFiA1AACFTRY0wABFTTSAAAV0QDRANEA0QDRANEA0QDRANEA0QDRANEA0QDRANEA0QDRANEA0QDRANEA0QAAAH4AAAAAAAD/fgAAAAAA//9+AAAAAP///34AAAD/////fgAA//////9+AP///////34AAQACAAIAAgACAAIAAgAC+v/6//r/+v/6//r/+v8AAQACAAIAAgACAAIAAgAC+v/6//r/+v/6//r/+v8AAQACAAIAAgACAAIAAgAC+v/6//r/+v/6//r/+v8AAQACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAuT/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/wABAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAC5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/AAEAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAALk/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P8AAQACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAuT/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/wABAAQABAAEAAQABAAEAAQAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAC6//6AOr/+wDq//sA6v/7AOr/+wDq//sA5f8AAOT/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P8AAAAAAAAAAAAAAAAAAAAAAAEABgAGAAYABAACAAIABAAGAAYABvcAAP/9APcA///+APcA/v//APP/AADy//L/8/8AAPcA/v//APcA///+APcAAP/9AAABAAYABgAGAAQAAgACAAQABgAGAAb3/wBV/f/3//9V/v/3//5V///zVQD/8lXyVfNVAP/3//5V///3//9V/v/3/wBV/f8AAQAGAAYABgAEAAIAAgAEAAYABgAG9/8Abf3/9///bf7/9//+bf//820A//Jt8m3zbQD/9//+bf//9///bf7/9/8Abf3/AAEABgAGAAYABAACAAIABAAGAAYABvf/ANj9//f//9j+//f//tj///PYAP/y2PLY89gA//f//tj///f//9j+//f/ANj9/wABAAYACAAJAAgABwAGAAYABwAIAAkACAAG9wD///wA9wAC/wD//QD3AAP/AAD//gD2//4AAv8AAAD/8wAB/wAA//IAAP8A//IAAP8A//MAAf8A9v/+AAL/AAD3AAP/AAD//gD3AAL/AP/9APcA///8AAABAAYACAAJAAgABwAGAAYABwAIAAkACAAG9///N/z/9/8CN/83/f/3/wM3//83/v/2N/7/Ajf//wA38/8BN/8AN/L/ADcAN/L/ADcAN/P/ATf/9jf+/wI3///3/wM3//83/v/3/wI3/zf9//f//zf8/wABAAYACAAJAAgABwAGAAYABwAIAAkACAAG9///T/z/9/8CT/9P/f/3/wNP//9P/v/2T/7/Ak///wBP8/8BT/8AT/L/AE8AT/L/AE8AT/P/AU//9k/+/wJP///3/wNP//9P/v/3/wJP/0/9//f//0/8/wABAAYACAAJAAgABwAGAAYABwAIAAkACAAG9///uPz/9/8CuP+4/f/3/wO4//+4/v/2uP7/Arj//wC48/8BuP8AuPL/ALgAuPL/ALgAuPP/Abj/9rj+/wK4///3/wO4//+4/v/3/wK4/7j9//f//7j8/wABAAYABgAGAAcABPcAAP/9APYAAP/+APUAAv8AAPf//gAB/wDzAAD/AAEAAgACAAIAAgAC8v/y//L/8v/y/wABAAIAAgACAAIAAvL/8v/y//L/8v8AAQACAAIAAgACAALy//L/8v/y//L/AAEABgAGAAYABwAE9wAA//0A9gAA//4A9QAC/wAA9//+AAH/APMAAP8AAQACAAIAAgACAALy//L/8v/y//L/AAEAAgACAAIAAgAC8v/y//L/8v/y/wABAAIAAgACAAIAAvL/8v/y//L/8v8AAAAAAAAAAAAAAAAAAAAAAAEABgAGAAYABAACAAIABAAGAAYABvcAAP/9APcA///+APcA/v//APP/AADy//L/8/8AAPcA/v//APcA///+APcAAP/9AAABAAYABgAGAAQAAgACAAQABgAGAAb3/wBV/f/3//9V/v/3//5V///zVQD/8lXyVfNVAP/3//5V///3//9V/v/3/wBV/f8AAQAGAAYABgAEAAIAAgAEAAYABgAG9/8Abf3/9///bf7/9//+bf//820A//Jt8m3zbQD/9//+bf//9///bf7/9/8Abf3/AAEABgAGAAYABAACAAIABAAGAAYABvf/ANj9//f//9j+//f//tj///PYAP/y2PLY89gA//f//tj///f//9j+//f/ANj9/wABAAYACAAJAAgABwAGAAYABwAIAAkACAAG9wD///wA9wAC/wD//QD3AAP/AAD//gD2//4AAv8AAAD/8wAB/wAA//IAAP8A//IAAP8A//MAAf8A9v/+AAL/AAD3AAP/AAD//gD3AAL/AP/9APcA///8AAABAAYACAAJAAgABwAGAAYABwAIAAkACAAG9///N/z/9/8CN/83/f/3/wM3//83/v/2N/7/Ajf//wA38/8BN/8AN/L/ADcAN/L/ADcAN/P/ATf/9jf+/wI3///3/wM3//83/v/3/wI3/zf9//f//zf8/wABAAYACAAJAAgABwAGAAYABwAIAAkACAAG9///T/z/9/8CT/9P/f/3/wNP//9P/v/2T/7/Ak///wBP8/8BT/8AT/L/AE8AT/L/AE8AT/P/AU//9k/+/wJP///3/wNP//9P/v/3/wJP/0/9//f//0/8/wABAAYACAAJAAgABwAGAAYABwAIAAkACAAG9///uPz/9/8CuP+4/f/3/wO4//+4/v/2uP7/Arj//wC48/8BuP8AuPL/ALgAuPL/ALgAuPP/Abj/9rj+/wK4///3/wO4//+4/v/3/wK4/7j9//f//7j8/wABAAYABgAGAAcABPcAAP/9APYAAP/+APUAAv8AAPf//gAB/wDzAAD/AAEAAgACAAIAAgAC8v/y//L/8v/y/wABAAIAAgACAAIAAvL/8v/y//L/8v8AAQACAAIAAgACAALy//L/8v/y//L/AAEABgAGAAYABwAE9wAA//0A9gAA//4A9QAC/wAA9//+AAH/APMAAP8AAQACAAIAAgACAALy//L/8v/y//L/AAEAAgACAAIAAgAC8v/y//L/8v/y/wABAAIAAgACAAIAAvL/8v/y//L/8v8AAAAAAAAAAAAAAAAAABAAAP//AAAAAAAAADKAAAAAOEJJTVBhdHQAAMEoAADBJAAAAAEAAAADAIAAgAAAAA0ASwBvAGgAbABlAGYAbABlAGMAawBlAG4AACQ1MTRjNGQ1MC1lMjMzLTExZGQtYTk1Mi1iNzg2NzdhZDE5MWYAAAADAADAzQAAAAAAAAAAAAAAgAAAAIAAAAAYAAAAAQAAQBcAAAAIAAAAAAAAAAAAAACAAAAAgAAIAN7b2OHb297b29nb2NXY39zh1tzf2trf4N/f3tvewtLg3Nlxw+XZ4Nrb3tPb29m8293g4d/Z3tze397d3d7b293b2eHb2dve3dnX3dvb1Njb3uHX2Nrd29vc3tO71N7b2uDe39/e2tvP2OHe3Nvd297hp9rb29rb2d/e2NXettnf29ve3Nvg2MzT2dnc397a19zd3+Hb293g297f29Pf3NrjyszY29vi297e19zd097e4dfEytbc28vT297Z2t3by9ve3t7e3+He09jY293d19re2t7Y29zb0uHj4+Te3uDg3tnZ3tLa2Nzh39ze3N7Y4Mbc3Nje19vf397c1tXG3ODe39/Z1t7cz8Db2NXZ4eHb29jb2t3d3d3c39ra3d7g4MjJ2dfY4+Df29rX29nb3t3j0sOw3t3hxtDX3uLY29va3t3c1t7h3N7a3d7g29rW2eLS3N7b3d7b3d7h3t/a2+De3tuxtOPZ2d/h3ODe2d7c1dnW2dve3d7f397b2d7e3d/d3t/e4Nve3trc29ve3uDb4N/c0tnX3d7e3t7i4Njew9na3+Sv0OHe29vc3tvg3tvc2+DZ4drh49je5Nfe2+Lg3d7X3uTe3N7e4djT3N7b2N7Y397e1Nbe29ve29vb4N7f4a/N497Y2uDV1+He3dHb4N3b4d7Y3ePb29zf4djT2t3a29ng2dnY0d/b2dzd19ze39zE1d7j19ze2N/k3dfc3Nzf4KvS39/g39jbzNfc393e3tbN3N7YyOHd39jZ39rb3t7a2eDf3+Hf3tjc4tvY4Nje4N3M2uHe0ODa39/f3d3d3dfP4dnb2tnS3d/b3dLb397Y2+Hdutbf3trd2NXU3dve3dfb3NHS3tva3d7g39/b1+Pe0tDa3t7V1djgz9jb4tzj5uDb2d7e1NvO2N3g39XV1c/i29jS2N7Z19zd0d3d29vW4d3Z3Njd3t7e4N/g3dXb0t7e3dve3eDb3uHe2tXh29bf3dnP4Nzb29zi39fY29XY5d7G2dba29zY29Td4eHc29ndu9fgy9jc3drd1N7Y4eDb2uHf2eFtv+Te2tjd4sjX3tve2trZ2N7e3t3X2Mze39ve3c/S4drb2dvg4dja293a4d3h3tzb3d7f3tzX09XW4N3e29rd4d7e3tjY0L/a3d3N19nS3dvc2t/e1NDdz8PV1NLV2dne3dzb3NjZ3Nvb3N7h1tza2s/R1d3f3tvT1Njg4NLW2cHb493a1N/bz9zY3drQ2eDi3OHg2tDc29/b397Z0tfP393b3dze0t7g29zb3Nvh3N/d1tjg5N/b09XWv+Ha1N3X3t/Z19bLutrhvczV29va3uG9zOHX2NvZs8Xe3tvU4dvb293f2Nvc2ePf2ODh2d3d3d7g1drd3dPZ3drgy9fb3d3d1Nfe2s/d4cnb4d3X0tve2d3Z29vf3uLY29rc3Njg3trb397e29vY2tvd4Nza1dvc3Nvh3NzO3djV39fY3t7b1tzb2drH2duy2Njc39jc37/L3tvU19vbsN3f1tLe29jc3t3e39vb29vc4N7d4ODk4d7Y397ewtvZ3t7h4uHf3NjV4N7d3N3f3tfc4dLJ1d/K2OHX297e3oPY3tnb0dXe1tvh3tvYyd7d3d7d1dvb3tzf3tfR1d7e1dvY2eDg39nY393b3dzc1+Db3tvf2tHd3ePi3tXd3uHS3eDY3d/Y2d7e3d3W193a29vd2eDM0t3f287g3dzT29zb3d3c3t/a2Nnb2d7h4+DP49W/2eLg29rU2dzb3tbe1d3Z09vS1d7d29jR3d/e2Nzf297c29fY3trezNTb3dvV39fd4NTe4djY3N7br8jk3tzY3t7az9nY4N7a2dva3+DX29vb2Nve4OHe4tja3eHY3N7Y29rY293Z1+HX3tzh39je4d/b3d7b3N3b3eHb29Pg39Lc2t/U3tbc39ja2N3h29va1t7h2NTe0dLf3eLc297S2ODh4MzM3tjY4+Dh29jY2uPW2dza19vd3NjWyNjU1d7d3tPb297g2tze3d7b39vd2dvi3trV3t7d293h09bh2t7c29zc2Nrh4d3e4c/Q29bh4ODc3tve3t7g3uHg39Tb297h3N7b3eHf3Njg4N7Y3N7Z3tzhrdff29rS3uDO2tnb3eHe197c3t3e4eHj3tfb3tbZ0tvb4N7e4dnQ3dLB5OXd3tvQ2uDb4dne3N7e3d7Y3OHg2tjf3eHg4cuq4eHe3uLb3tre3N/g29rd1cTb197h1tve29jc3t7a2tne09ng3uHZ4tvg39Xb4tjb2+Dc3tTP4eHc2NjN3d/Z3dbJ0+Pe3cba2eHb2tjb4N7f3t3Y49jZ3drZ39vYyePg397TwtnV393a4N/U0t7Y3dXY2Nvc2t3e297g4d3a29vi3+Hc4Nvc3tze297e1djg2c3e5ODP2tvT3tfd3uHN2tvb2+Hg297f4d7X29DR3tvb4d3a297e0dLg4Nje19vc3dze497a3+Tj39zb3t/f3uDh3t/Y09zY2NvX2d7Y2d7c3tLE4N3e3tzc4NvY29Lc0tvY2ODJ2N7c3dm/2t7g4NXc3uHh2NLk2dza3NPU19va1tve3uHf3tjd2+Dd0b/b3dze39bR3tHj3tvk1Mbg297g093X2NvW2uDf2NSy4drd3t7d2c/V3d3e2s/d3tjd4tnb4OG+1dTh4Nje39vX3dva3t/Y397g29va3tvY2N7W29jW4Nrb3N3e2M/f29ze09/h3N/b3N/c29zh3d7a29ze29vh2N7e3eDh3ti6zdvb3d7e1tjd2d7e3t3Y2dvg3N7R1dvY293j18/d1dnX3NbZ3trgwsXP297dz9je1tTd29Le4N7MyeDb4N/Z2tfd2drb3tvY19re3d/a3djU29rS2trb2NXY2d/Z3t7d3eHc397f4t7e29ja3OHV1d7b2+Dh3t7W297h3N7h2+Hd2OHb3d3M4d/h3N3c4cnZ493d297a3d7b4d3P3t3c4dvd28ze3t7Z1trX2+Hh3NrY09/X2tjf3dXV1dve3dze19bd2Njc29vd39vY29zf3dvd2tvY29XX3dvg3NHV29/d3tne297e3OHd3tvg3NjZ3tvf09Pl4N3OvN7Z3t3d2uDU4eDb3dXB2OHb4eDd4uHf3eLg3tLV3dre4drb2t7h3ODc2Njb39vd1t7h3d3f2sHe4c7K4Nzd4dnT39jd3t/g0dfd29ja4dnZ2+HZ29vY39jX0tne2t3e3t7azNzb2czb397h4d7Y3d/e4N3Z2tjb3t7b2N/i4di04tve3t7U2+Hg39ve3sfZ2uLI3N7e3tve4ePij2nj0N/c4N3e39/e3+Pe297c29vV39/c3ODc3OHc18ra3d7b39/e3tXP1N/a2d/e3tjV3tvc4N/h3N7e09fU3ODb2tnd3eDa3+He193e3uHe3dze29vR4tzc3tjZ3uLd2+Dc29/azdjh28Xb3uHg29zd4t7d4sXJ0tXZ2t3S29h4ct7X3tzg4dnc4eDc3dzN2Nzc38/f0Lzb3tjg3dzS29vb4d7U197e0tXd3uDb3uPP29zg4N7Y3d3e2NXd2tjizM3Z3tve4Nzc1Nzf5Nne4NXY4N3ctWHS3tjb3djb4NjX297Y39fA1ePc393Y3t7f4dza19vd5rLL297X297YzNbb2uHZ297k19Xe3tvb2N7T0tvc3tzT1dXe3N3g2c/P4dXb3NPf2uHY3d7a2Nvb3r/X4tzf3tvb1d7b09bb3tnb16jX2Nzf3uHZ1t/Cx97a2N3e3OPGlNDe3tvd297g3tvi4Nre397d3eDc2dvd4uDc3t7c1djc3Nfe4t3e3d/f2OHe29jb2N/h3tzY29LX3OHG2N7e3tfe4Nzc29XQ09TJ3NbX29nY2tzb2tbd3tvc3+HY1d7Y08fW19jZ2Nnf39zb1d3P3dvh3N7j28bO3t3f3NLW48qX2NjX3tvb39/d3N/f29re3NjS4+Hd3tzY2t7e4N7N1d7b2dbf3tbe29vY3tvb3OTb3t7f3trb3t7g49ff39rb293d09rZ2NPN1c/h09vb3tvb3t7c3tjc19na4dzb3Njb3NvY3dzd3tvc3d7X29DO2dLh3NvV5tTc3d7V2N3Z05jU1dje2OHe29zb3NTa3t3e3tvb29/d297e3tjb29ra3N7h2dve2tPb4uHf1dni2t7d3OPb2+De297a29fd3Nbb4d7X29vgzNHe3Nnc29va29fZ29vY1OPM0N/h29zZ1dbe4d7e4t7b19nb3NLYzM/c297a0rfmttXa3dne3t3b6NPS3+De3ODb3N3c29ve2+Dc3NXjy8vb39jX3tvf29nW2t7j3tnh3t7f39/e2+De2+Dc4Nve3t7d2tbK2Nvf1+De3N3V2NjZ3uHcy9jb3trb2Nvb3t7bzNjd2t3f3t7a2N/c293c29zc0d7f4OLS2ODi3tvc2N7e29nh4dzb39zg1tvb1+Hcz9rd39vb3dzb1d3b0OLS1Nvc2dTa3t3h19He3Nnf1d3e3tvb3tba297d297e4dzF2+DY3dvZ1tbh29Ta1dzP3djf4dfI4d7K4M/V4dPV3d7Q3t7a3uHf3Nzh3Njg2tzc3t7b3tvd3d3Y1dre3N/g29vd1crR29LO4d3e2t3X39zR2OHe2dLh2NXc39jJ4d3e3d/i3d7c29ra193Y0NnR3d/Y3tze39/Z3uHT3t3b29fY3Nzd2NjV19rY2dLT3uDd3dja4OHb39DS3uHh1tvX3N7b3djfycPb2tvb3tzU29jW3tjV2dvb29vg0tbb19jh2ODV1tng1djg5+PR3+Dc2Nvh2+DWytvhsdDh3tnd3t7c293Z3eHb29ra09LV2drY29vg2dnh3dvY2tvV297J2N7b29vS3trb2Nre2Nfg3d7e3b3V1dff4Nze4Nje0d7g3t3T3t7R0d7Y29ve297h2dnb2tTh4d3a297S1N/d19/b29nb3uDf4tLN2NjZ0t/e2+HY3dnYwMvZ29jY3dzi3Nvj29zf397c1d3e29jV3NvY39re39fX2+LW3tHY19jT1tja2N7c19ne293h0dvZ3N7e2NLR3t7Y29ze29bZ3NvY29jb3uLb0uDd2+Df0dHj29vd397d4djW3ePi5Nvd3t3d3eHe2t3b2dnb29vW3N/W3dza3uHT0NrY3d3d2Nff3OLg3tre3tvC1d7e2dnb39rc3N7c29ve4+DZ3Nba3eHS297b3N3S29ve4c+039Xc19va2t7gzN7e39zb297a3NjN28/V2tvb3d3b29/J1eHc3t/e29vY2dves8+lzt3c3d7c3N3T29je49jU297b3dXd4dna2N7WzNrh3N7b2Nze29zf3uDe3tPZ2d7h3tnb2tjd293b3tvh1K3V2Nze4czK3uPd29vh3t7Y3d/e28ut0uHi3t/V4NvW3Nfd3eLg3Nrf2d/c29nZ2OHe4dXT2Nve3d7e3NTg4N6lxKrU2Nvb3t7V3N7f3dnh2tzb29zY1t3Y2t7g3NTY4dne4tvZ29rg4N3V29jW0Njf39jh1dXb4eLa3NbY3tvZ3N/d3djdx8fg4d7i3t/b4c/b3t7b2dXe29Xe29zb2dva2tvkwMXd1uDc3Nvb09nZztnK0s/V29ve2Nja3b/T39zU4d7e2NncztXd3tvd2tzc2tXP1tzW3d7h29ve1M/f09njwLLX2tvb39Xb2NDe3d3g293O0d/NwuHV1Nrb2t/U2uDb3dXQ3uHg4d7c3t/e1tLX3+Hh297awuDb3NjR09jf193PzNvV297Y1tzZ29jM1dPY3dzZ19bb19/h0tjc4d7c39ze293Z2N7Z09vj3Nnb2NjY4Njc3Nvh297Y1dnb4OG+sd7f2Nvf3trg49/c3d3f39/V2NLR3ti029jb3Nvb4dnf3tnd1dHe4d3c4N7Z1d7b4+He3dnb29ve2NnU1t/YzNne2tje1dna2NDe2dbb2N/b3tDc19vb1t7f1tfb4dvY2+bc3OHe3NnX3+He3d3f3t7h39fa3t3b3+Dh39vb3d7m29Ta3t/h4N3g0uHf3NPg39vc1dre2NrX3tvg4eHe1N7j3uDb0t7b29fQ3N/f2tjd48jV3tzS1N7Y3tzb2d3e3djb297X3tzb29rc3t7b2t/cyt3c2tje4d7Y3tfb3t/YgsXe2t7c3uHh193c3t3Y39zf3+Hh4N7e3t7e3drT2Obdxtjf3eLd3N7d3t7dzNzW3uDe29bc3Nvh4N7g4ODb2N3R1Nzg3t7X2MzU2N7a3t7bzNHd3tHZ397e3trI4N7g4dvZ4uPf3N3e2d3Y3d7c39rf2d3e3OHb4ODe2dvi59Fuytva3tja3t7g3d3d4NrT3d7d2N/g3tve3Nfb47zO4Nza4eDVz9ja2Nve2Nna4c664dze2MXa4N/h3d/h4eLg29/W2tvY3sTK2NjV2dzg48ne2N/R3uLf2dvc472z3sy+3uHY1t7d3eHd2Nna3tze29zd297e3N7X3ePb19ve3t/b2tfZ29vf2+Hh3tvY19Tb4dvW1dve4eHe2d3f4d7b4d/b29Ta2Nne3t7a3d3e39Pd3dvb2OPe4N7e4eHe4anU3tfd2dzc3NjY4+LFzuPW29/b4Nvcv9re293gzMHP2L/Y2uHYzNzZ29ve3t3c09zY3eDe4Nvb293e2+Le3eHg3tjf1bvfzNvY4eTf39XV19XaydzP0tXa1dXb3d3d3OHi4OHW19rd3t/f3eHk4N7e2d/g1trd4tXZ3Nne2ODg0dfe0tvc3tfg29jh49/b3tXa4dze2tnb2dTX2NPf3uLe4dve283T3t3e3t3a3djb4drV2Nzb39va3dve2OHf4OHd2dzh59G/297f3d3h3N3e29jZ4N7V09bd2Nvf3t7e3t3g29XY3N7b19/i3t/g3Nvj4eLSz9va4tfY4dzW2Nze4d7a29za2+Dj39be3tvb09fj3NbJ29Pc2NTb29vbyd3b3t7ez87d2dvb2tPc2uDe1Mmv5N7f05/b29vb3tzU0tvc3t/d2tXe3t7e3Nza3Nfa2tzd3djZ4N7d29vc39vg393d4Nvc3Nzd3N/c3uLd3OHc2NjX3N/h4ODh3d3Y29/e0Nvc3+Db1d/O1trb2OHc3t7b19PW19zd293b2Nva29vh4Nve3t3Y2Nvc39zb19/W09fd29jatdvb3uLW2MbI3t7d3d3d4NjP29jb2+Hc2tzT2tzd4dvh3d3e3Nrb297a28/S1t3d197c1d/Z2d/f1NLc3d3c3t7b1Nbe29nj3tTW2Nna3N/f28nb2tzY4N3d4NfX1Nve2N7Z2trV4NvY2N7e39zc2djd2+De1d7Z2trg3Nne3ODk19zf39vd18zh29bY29Xb3tvd2Nbd3tve3cvc3d/d3tjU3tvb3Nbg4Nvd397e39zb3uHe5Nnhv9vH0Njh393Y29vY29nW4+Hb0tvc1t3b4eDc2N7d3uHi4d/g1dji4dvf3tzc3tvd3tfX3dfe3ODV0Nvb3dTe3t7d2trY297c3tLD1tbc3tvY2N3S3d3a1tnd2Nza2NrX29bc3NvY2+HezL/l4Nve3dvb3ODi3t7g2t7c38rJ4Nm1197Vzd7X49DP5N7Y3d/l3eHa2N7Z1+Dh2d/e2Nvh5eDe3d/b2K7M39zb4N7X3Nvc3tvb2NLj2NXZ3N3f2N7Z39rb2drb2Nzb29re3t3b38vX3t3e19bd2dva3uLe1dvf4N7a29ze3t/V3M/e3dbe3tzf293d4d7d3drhy8bZ1d/g29vi2tjdztPc2t3f2uPj3d7f2tvX4N/d1dff397e2NPY29jYv77h3N7Xt9Xe2t3b3t3b2dvb2tvZ3ODa29fe29jY29jb3Nrf49nd3t7e3t7f3tvW19be3OHd297e4J/V3ODY4NvZ3eDYwNfh29ze4Nzh4eHg4tnb39jh49ze2tvW3sjS3tjSy93Z3dvZ297f3trc19vY3taV49be4dvYTrbj29jh2dXh4djM1d7g4MzZ3Nre29jd19Xc393c3dzd2d3dzN3e29jc1cza1Nrd0Njc2d3Z2Nve2c3e3uHeqtXY3Nvd4ODd3dve1drg297e2N7g3tzZ2t/c2tfY5uHY19jc2Nvb09Tb2eDb1t3X29vV2d/a1c/b2t7Wyt7c2+Cl1d3e2NXh3d7h4djY3NDLpeDh3eHb3tvd2dje4Nve3d7f397b29ng3dvZ09XT3OHBx9zc1N3f29/XyeHe4t7i4Nja297X2tvY4+Dc3djb3dPP3d/f3t3Y29zc1dfg2Nzc493c2tjf2NXS4eHY3dvd1dbW29zZ3Nre29Le1dve3OPe3uHSzeLe3eLc49PJqLLY4NrZ29/d29vd4Nze1N7d3t/c29vX2Nbd297a2d7e29nW3OHb3tza2dXV1Nvh3dva29rb2NjZ2d7f3+Pa19Xb1tve3d/Y3tvd2+Hd2d7d3tvL2N3Y0d7h3tzZ18jg3tnf293W3d7c3OHg3eDe3dzT2Nzb2tzh293b297g4dzOzOHZ29rWz9vX09jY1d7SzMTe2NnX09LS29zc19vbybvX0t/h397X2Nvf3dnb19nc3t7f3tzf3tXY2dXZ4NvY1tve4NPb2dTa39rd3t/d3tjc06zS3d3b4N7h3dXe497Vydvj3N3ez9jgydvh4Nvd2dvfydbh1tfV297e3tbb3dvb3t3d2djS3Nra49vZ3M/GqNHb2tXhs6/b3trV3+G7teHi3d3f2NvR29rR1ePc2N/g393c4Njc293a0eLc29ve3t7b19TV2d7b3Nze4ODO0uPh3dTY4d7d29vf3d/SzN3Y397b2+HN09C65M/W2cze4ePi3dzf3s7Y3tvS0Mbg29zf19zb3dze29jc29Xe4d7Zu+De4d7g2dvd3+Pc3MHF4bjV3uDd06jc1tfV3djf4ODe3ePa3NfX3tnc3Njb2MrU49zg3NjX4N7f3t3e29Lb293e1dXb2d/e19rb4bqT4tC3393e4dja1NTY09zb1uDg4OPg2dje39zh18/X4NXX3Nbe2N7h397MweHY19zh3tve3d7a1t7b0dzh3tva1Nrazdrf3tvS3ePe1drL1eDd2eDW3d7e3tvb4N7a29Xg0t3i39nY4Nzc397i3d7Y29/a4NvW3Nbe293h1dvS1Mve0s3c293c3tje1NXg4eDZ3t7VyeHYz9vZ29vS1tzZ1tPk2dvg2NjY2NXY29za0t7R0dra3djO3Njdz9Lb3trT3t7Z3dvW2Njb3tfb3Nrb3t/g4dXb4d3k49vY3t7d2t/bzdbe297Z29re39Hb29vd3uDe2tvi3trf3NrU3tbX39jb39nTyN/h4ODi29zg2Nzd3cKS4Nrh3tvb4djZ29ne3t/j2t3c2dvb3Nbbzt3R19vY297b293N0trV0tve2t3Y4dXV297V3Nvc1dvh4d3i1tvQt97h29vj2tva4t7g2dvY3+Hb3N7X29nWvMnc3t/a1+HhzuHY2tng2dbd49vP3NbY2NXE4N/e39jf3uDb4ODY29Lexp3e3tu+29zc4d7e3dne2drY3uHVxNzP2eDP1dve1NXX09jX1+He2NrVxdzf1dTf3tvg3tzg4OPe4Nna2dbQ3d7LzNrf29zg19XX193i4d/c2t7e3d7P1Nvb2uLg2N/hx8Thytfc3t/M3N7i3N3h3d7e3Nnh2t3h397h4Nzc3dnSqd/h363d3Mvd3dzY2tPc2eHe1tfUzNrb4djb2tjV19rZ3t7e28zh0tPT1tjZ3tnd39jV3uDg1s3h3t7e3tjc28zO4+Pe29jV0+Hb3t7Z2tvc3tnY3tvR2+Db3tzi09Xb2+O3zt7P2oO/5dvc3dzb29rb2NLX3t3l3tjR2N3gxsjk2d3Y3dTV1d/e3Njj1dfU1OHYz9XXztTg4N3f4t7Y3dzc293Y1d3f1eDc4eDd3Ni30tPa3N7e29jg3+Hb19je3eDP3ODU2cne3d3a3dnR29Xi29vkcqrc5uHb39LT3Nvb3uLY39jc497b2Nve3tnb29XZ0NHb5KKv2Nbg2My7wdzf4uPV0tzd29ze29vd2NHU4dvR1d7Q2rvK2t3c2tja39vN3tzb3tjb2tzb397e2cbd4drc2tPktL/f3tvb29LL1NXZ2dbh4uDJ1uHh297e0sva0tiy3NrToNvg3uDf1d/i49vc4dfe4tvc1d/e29Xf1N7h4d3eu87j2NLWxrnB2+Hf2+Dg2d7b2Nnc29jb3dzd2+S8zd3bmb3i29za3t7f1sPeztXb3tzd2+Hb3t3b4t/g3t7Lu9nAu9rZ3tvZ29PU29vf0tnf4trZ4t7g4d3Wwt7b2+Hf4dWf2+DZ29vV4Nve39vfzdPf3d7Q3c/X1t7a2N7b2tzi39rX0NnHutvh3Nvc3uLh3N7Y3dbd397a3tfW3d3f28nY3d7e3t3d39ve3Nvb09rZ4OHe293h2+HU2ODf39vW1+HZ0tvf2d3h1d3f3+SzveXg3NXe3tvc3dve4N7g2t7f3OPL1drh3tvY29zd2tfa3N7c3tvf09PS4dzV2+XY2dnc3eDR2tzY39/c4Njb1dvZ2Nng4dzeptDe28/e4OPc2Nvg3tXV19/e29vY3dna2+Dh4tvb3t7V3Nrc4dze393c2Nvb3t7f3d3M1ePa4dnb4uHb2NfY3trb1tTa3d7b4N7c3tfV2N3a2+Hb3t3d29vf4d3e2Nvc2M/e2Njf297b2N7Y3+Hd29/a4eTf3t/Y0rvU1uDa39W74Nzd2Nvd29/f4dLb297c29nb187S3t3d3d7b1tre293g2uDd2Nve29zd39fa0tPT4dXW4t7b29vc3eHbzdvf29DY3N3b29bY2dnY1+PY2eDb2eDc29XW29fV4dvh2tvT3uHI0t3V4dvb4OHZ39va3dnZs93d29XX1ODV3dfO4ubf3d3h2+Hkz9Ld1uHb3tnV397Uz9Xf3tva393b4d/X2Njd3dzY3t3O3uHf39zNtNXL39/b297OzNvf49nA4d3b0+Hc1dne3d/e2Njh4d7a2NnX2N3R1d3a18fg3N/i29ne3t3b3trf3t3c49va3Mnb3tmZ3t7d2d7H2NjX2Nnc3t3e2uHRqtCyzNHh297Z0NjY29vc4N7e2d7d3tzb47TI2Nzk49Le19fe2Nve2t/d29Le29vY3dvb3OPSzuHY29je4tTe39jgzsbb3Nzc3d/Y1tvY39ni497e0d7h2+He4czP3uDe3tvd2d3b3tjewtXf39/b3t7d2NvVzNfd4t3e4N3e4diez7TI4N7e29zTzdXb293h3tfY3Nvb4ODbzdrd39zg2NXZ4d7e393c2tLY3djg3tfd4d3b29HW2+Db3eHg3dHa2+HVy93i3NvS4dvb3N7e3dXb39jM4N3exeDd29re4N3b3N3azePg1d3U2Nvc2d7Y29rdwMu42NrY397d3NGv4eLZ1ODg38nV29zV2dvb3drgz8/e183c3+Hh3tva2d/b3uLe3Nve2uHO08fY497h29ve29ja29rY4tvc3t7e3uLgz9nf2MTh29XZ397b397c0tzM0t7f4Naq3d7h4tze29/d2t7Z3d7e2ODh2NvY3t/b4+DY3tnY29jf3dje3Mza3dnh3ODa19rb297b2Nrb3eHS3d7Yy9fe397V1dvb2t7ez9XX0Nzb29/a297Z4ODf29re39vh29vg0tvh3Nzd1eHY2uDVoNvb2NTf4d7e3tvd0cLY2t/k297f2+Di2tzZ1dvd3NDc4d7e39vW3tvJ5d3e3Nfg3t7h2Nnf4Nrd3dvb29nb3Nre18Hh3Nre3uDGwdTd3d7h2trS387L4Nzf5q6o4tbY4t7d29Xj3tbe3tne3tze3tvd4d3a3NjT4tjN3tXa197P3drd4cbF4Nnc1dvRz9Pe5raw3N7b1uDa397X3t3b0NLF4Nzd4tfW4HnD4N7Q19je4eHa0Nzf2dfW3t/c29ff1trU1dza3tvb3tbX39zb3dXg0tPg0t/d4OLeyNLbz+PZ2d7d4d3c3NLb3t7c2+La3dvb2OPe1dvb4cLAxN7e3t7f3Nvbw7Pj3eLcxtrc3N7eu6Pj39vRud7h3d3e3+PbwbLf2+De4N3hn5bjucXS2d7g4NjY293f19rP2tjd3uHh39zh4dvb2d3b2t3d3tvI4djF2Nzd397d4N3h3+He4NvT2+Lh397e4tzb4eHVzN7i3tvh2tze4djd0tvg3trb3dzXzOHc2dLc29q81ODb2Nrh5t7C18bU29rV1drV3N7b3dve3N7g4dXJ0dWb59XX3trb0M7V29jZ3tvf4OHh3+Dg3dzj397e4tvV2dvb1uDh3Mnb3tTb3tvd2+Li3+Db38/b397e293d293e39jS3ODg3uHZ2uHc09jf4djc4N7Yz9XR39re3d7Y3d7W19/d2Nve3pXc4d3V0tvZ4NPY3tvT3+DQ3Mjg2szZ2+DKr9/e2NbZ29je0q7U5N7d1djb3t7b09Xf2N1/0tzc3d7F4d7c4NXez9Xd2tzY3uHR397f2N3b29zd3dHb3t7a2dvd3eHe19jevNHSxNvP097d3tLX3+Db197b29jc3dzV397X2N7f3t3g293e397Y29/b3t7a4si52dvZ4dva2tnb497g4t7O39/f0dnJ3N7O2Nzg3d/F1NzU3Z/N3t7Y2Nfc4OHb3NzV2t3h39zb3tze3dve1tve2t/c1dLe2d/i4N3f3t7Z0+PR1trR3tLe3NnV2Njb297Q1t7i2NTI3tvY4N7Z29nW2N3Z3tjb4dza397ay93d27vX397e3t7d297e39Ws4tng29fV39La4dHY3+PbxNHZ2NrW5tna1M/c3tnUyNvhz9vh2Nnc4Nva28nb4ObOydzb18zTyt7b39vc3uDe3uDf2uPYwtPZ39ve3dfU3trY39jX1dvb3dvb39ve1Nre3t7d3N7V4d3e4N7d3NjG3tvlxsDY29/R2+DUz9vi2Mja197b2djc2djS2N7c3ti3ydzf3tvh2NvSxeDYttvK3N7b3uHT093f3N7X0trX2N7G2dvb29na3d3c29/e29Xe3N7Y2tfS0tTg3d/f29zizNjc5dvT29zh39vW4dvb4t7b3tzd3d3b29re39/e19nc2tHj0tPe1dja3dW729za4N3Z3t/b2Nvf3c3T09vc2tra4eDa2Nfc293fztXd4dzc293X4eLez9zh3+Hh2NnZ4NXY3OHh3dzb2+Hc397d19ve2+Hc1t7h5OHb3tzb4uPY3ODg3t3U2Nne4NTb3uDe3uDX2+DZ2dfV1NXe3tze3tvb19Xc39jY2tre3dnZ1M3g3tuj3Nfb3t/e3NXF2tjc39/f3dvS1tjc5NzX39nP29re29jf3tvf3t7Y2Nzb297e19nV0t3e39zY2N7g393d1eHV1d/f3NvY39/b3+PY0eDb29vc3tnf2OHh3t3h3dje3d7e3czd29fY3Nvj4eDd2ePhzM7f297f3t7f2tjc3tbV3Mnc3tze4Nva2OHY3OPi0c7j2uDS1tvgztLe0dLh39nW297Z1N7b297c39ja2t3a2NvZ29nW1d3Z3NvV3dze29va2trg1c/b2Nzc4ci+49jbz97i3d7Z1N7h3t/cz+PK1d3h39jYtM/P0+He3tLhwrbi09/h3tjb4N/V1N7b08/e2tvh3tve3tzc4N7h4dnN0d/f3sHX3dzMz+Pb4tzZytze2Njg3tvb4dnf3d/e3tvY4eDe2dXM2N/g3Nja197c4NG3uebNz9/Z4N7S3Nng3t7e2+Hb293UqMne4Nve1NXZ2t7e4d2Yz93S0tve1d7V2OPd297e19Pf4dLT3Nve3tzb3tvJ29/VzN7Z3N7e1dfb3Nve4NDW3NvX3t3e2Nrb3tvd3t7V28bT497e4Nvc3N3Y293d3tTQ29bb3tTR3d3hx7/K2NDMv9/d3dTd3tjd3+Da29Xh3+TI1uHh3d7U29zb397g5uHe3tzb4NzY29/e1drb2d7dydje2+Df3N7i4t7e3tLR3c/W4eHb2tXb2N7h297e2tvY19PV297b1d7b3Nre3Nvh0dPi2tzg3N/d3NXe4OLe39vc29jc29vd4dbP1tjg29PN4djd3NXY1t7V4d/Y2NnY2ePf4tvd3uDX3N7e3+LM2t3h4Nvm2LTg2t3V0uHP1tvb3t7Z4ODb4d7c39vh4tXf4NvZ293d2ODe3N/e2Njj4tvc3tje29rb2drc3tjh29vh4uDd29ff29He19zW29fg2NXd397b4eDh0NLe0sfi3eDe3dje29rb3dnb4eLe0M/b3N7h3tLi2NjU4d/b29Pf3uHg3N/i39ve3t/b4d7Z29nb3uXh4eLS2ODi29ve5MzP297f3tDL0uDc1N7Y2NTd4t7h3NLe2N/W2tXR2sTV2uPf4uDSzt/Z39vb2tzT1eDa1drb3r3G297b2tTDqOPd2uDb3Njc3dzU2N3V2NTYzNrc29rd3N7Z3tvc3OHh0t/i39rg3N3e3tnd29zd297c3Nve3NHP5dPd3d3Z2N/ZY7i9wt3b07Wq5tzZ2djb1d7h2t3g1dve3drhyp/i1d7i4N7f3t7g3Nve2N7b39nP3eDb2uDexsrU29vc0b3K39va1dDY2tLi39bd4NfP0t3V29XP3d7g3ODb2N7c39/U3sbM1dnb2N7d3d7g3tXW3t3d4N/b2tLb493a3tzd3trM2KvA3dDa3tnb4N7X2szQ3tvY29jb1tvY1tvd093Y3t7b1NPa3d/d3tzY3uHe29vc3d/V1eDn29jb3tvh4tze4djPzNXi1cHe1drd3dvb39/h3djb1tve29vbyNje29rlrcne2Nzh2d7h4N7h3eDd3tzZ4N/d3eDa2M/Y4N/d3t7S4d3Z39Ha4N7a293T2dLg293i3t3V4NTa29zZ2t/c2trZpdLi4tvd19Xc3tnS29vb3tnT5Nvb3NXR1tje29fc3d3S2OHW0trawuHh3tvX4NnP49zS3NjW3ti41eDg2dLh3tvb3Njfz9jh1t3e393h3dvY2t3bvs/Mvsji4dvb39Pd4d3e1dHc3tXd29vf3s/R4dzX3t3b3uDe4ePe1Nfc3d6r1d7c29fV0dvb3Nve3tvY3tzf39vYz9jc1NLhz9vh29zc3N3f3Nm93uHe2d3b2Nva3d/i2NHb1eDW1+LVrN7b4d7c3t3Y397d29nd4N7f3Nvd3dvB28644N3e29bg3t/V3tna2d7S0d3c29rdzNTd2djJ49jZ19bh3tjNz9rh2+DY2tbZzNze29na1Nvb3t7a19ze3tzY2tnb19/e4cze3d7f3dzh3OHV3+LO3dzc34zV19va4Nvh3tfWy9XZ4t7f393f397e3trh3NXZ497V3+He2Mjm3cfc2tzY39vZ4N3e3eLb293h2t7e3t3d3tve3tre2dva3tvd2+LKtsLf1tLe2drj2drd2NnZ29vd1dzb2tjc2Nfb3djZ297b1d7T29Xe2t/e2d3Y3N7e3t7gs9nb29ze3tXb3OHR3eLU0tXe3OHe393b09zi3t3c3t3d2dXYv+Hb3uDc4d7e3t7a3djb4d3e3drT29vg2NLc397b4eDO0NXP3uLe4ObR0dva29/f3tje3t7d2tjf297X3NrY297T2N7e2Nba3eHY3tjU2dna2+HZ39XM4dze39/i3tvV3+DZ1Njb4N7a5MjP1djV3d/e3N3e3dvj3tvd4uDe3dfh2Nfd3Nze1dzd2t7b19bf4bjUz77d3dvZ2N/NzcDY3s/S2Nbh3uDb2ODi3djcz9nb2N7d3Nra1dvS397b1tje2NzZ4N7b3tHa29jZ2Nvh0dff3uLb2M/W2Nvb3Nvc29jb29zY1djd4tbV3d7d29zf19LZ2d/g3tvc3dzf4N7e4drc1t3h29vS4Nzh4ODb3N7ctd7S0Nzd2+PW3Njb1MzU3uDb19je3t7Y397a3d3O0dfY4tfJ4Nfe3tDaz9TMudfc4+Pg2Njez9nbwNjQ5N7U2uHc3t7a3t3b3Nvh3t7dzdDP4drb0Njb3tvT19vg4eHX0t/c0tzg3dXW3d7fzs7e1M7h2t3bz93g39nd19/d4Nzh3Nvi2Nng1tDXxtLc1tna3t3b3N7g297e3dvd29jV2dbT1dvb2+Hd2duz1cXO3uPb3Njb3Nnf3dvV3drd4Njf1tfd1tvf3tjV397h3uHg2t7e3eLb4Nzc3tng3N7OwOba397b1NXf3s/O4N7YwuHf3trY3tbF4eDg3tzd49jY5tzb2+Dh3tvL4djS1dXYx9/g397g3drY0dvc2N7f3N3b3c3J4d3R2t/c3NjZ19Xb29zc29vb1tjY49XJ4NjX3dzZ1d3Z4Nze29ne2t3c3ODc3Nvc3tjb3N7Y4N7V2NnI3t/h3tvgxNni3t3d2uHe3d3h29rc3tTa4N3e2+Db3t6N1t3e29bc28TT4NvY3N7c197c3t7fz93b2Nje3N7e3Njb293UyLzQ1dXb2dnZ197S3ODe3tnY1sna297h4dfW3t/b3tvZ19zb2Nfa297e4N7f29ve2dve3Nje3tjY1NjV2trb4+DJ2tzg4OHb3tPc3tvd3dvd3tnb293e2NLS4ZTV2tLZ3c/IzNXb1dPf39rb3Nnb293Yz9jS3d7Y3dvh0tLb4tW/4NTb3tnY2s/X1NLe1d7h3qHe1tXe4OHf0M/f4eLaz9za3tzX0dfY3eHU2drg3tvd3d3a4OHZ29va4dDP3tzb3eHh3Nvc3d3h4uHVz+He3tzg2tzc39XC3tvi4dve3tvXw83Y4N/c3Nve1eLPztjY2+DQ29LZ2eHf3N7V2+DK1OHd3tDf1tnf3ODW19vaxtLPxN3h2Nvb3uHf29vg3t3W3d/f493S29HW3tjb3N7b3dzV3tzZ0d/g3t7g29vh3tjV1uHe29ve4dvd3tzV2tjh29Xe29ve3Nfaydje2OHb29vEzt/g2Nje1t/V29jg39zd2+Tf293M4dXa2Nzb2M/X3tvZ29ve4ubS2OHe3uGazNvk3t3c19Tc1tzZ2+Df1NXd3uDe39vb3dzb3N7i2Nfc297S1dTM4N7d4eHe3d7b29/g3d7d2ODj3t/e2t3a297P1N/g3N3Y29a929fg1Nre4NnW0NTg3t7c2N/b3tzd3uHa29ve1OXh1dva3uHb3Nze2drg4eHg3tvZ4d7c3s+q3t7b2tjY2dvV4cLb3djY2Nve39vd3dXd2djg4N7a3dve3trV3drc3tvX3tje2dne297d497X29/f19vX1tjb3NXb3t7Z19vc3uXXyeLV2ODe48nK3d7d3t7Q3N7h0t7e397g2t3Z29vg29fc3tvc3d/a1tzd3+He493a2Nfd2Nnc3d/e4d3e2tji4d7g29Hd4d3Y2dzb3OLd2N7Y3t7Z2drc3dfV3dHW4dvY3tze3t3b29vK3dvW2eHg1Nvbwtve3tXc397d4Nva4N7c0szf2tff3d/c297b19bZ2NvU3t/f29vg2+Hd293Q0tvY1t3e1dvZ2NLc2+Le29XZ3tvc293e3trf39nd3N7g393J0Nbd3NnY293g4d7h2N3Z1drW3uDh29rg2d7j39Xg49ze1NfY29Lc3t7Z4t3Y2Nzd3+Pj3tje3tLe1szZ2tLa29rV19vd2dfb3trY1eHd3t7Y1tvb3t3e4d7Y38/V39rd3d3b197c1dvf2Nre0tzg3drY4N3b3tjb2dXb3N/f0o7W2+Dh3Nvb3OLb2N7T3dLV38/Z29zbu+Lc2d3f0dre39vb2Nzc29ze297c2tHI4eDi3uHe2d7b1t7Z0tTe29ji09fd293V29zh2Nbb3tjY2Nja3d/f2d7b3r/L4N7V3tTd4tbC3t7b4ODa3Nvd29TY29rc2tfh29nb1N7Y4eDc397g3tja39Xf4d/k4NzY397c3N7c2tjY2tvZ2t/j3tzb3tvb2+Hb3Nrd2Mnh3dvg4dTb3dvd4Nve3tzd4tvb3d7c3dzb4N7c3d3e4uDT29XZ3NPb4tnb3Nve3dvc3dKv3tLd3N3d3trf3dLb3d7e3d7d3tjY3eDf3dnh4d3e3OHW29vd2trY2eXY197b293e297h3uDe2OHQz9rd2t/i29vg3+DX2N3Z0uHTxtXg497eys3d3tra3dvc29/e3eHX2eHi3Nvg07vh297Y3sXb4OHWztzh2Nje3Nvd3Nzh17DQxtne3t7f2tve19jWy+Hc29rY29PY4dnf4tXL3s3Q4drX193X4NXY2tzV293b1dfa3d/c3dnO29jY3d7b29fY2eHe2N7U2NnS1Nvb0+De3t7e3trb2uHf3N7V2Nbb3tvb1tvf397ez9ve4dvZ2N3g4dvb2Mzc49jc1dTd3dzV49vO3dnU29nb3d7c49XO3tra3tXW1tje2N3f2tnfwNLd4d/X0tXb19re4d/c3d3Y3dbY3uDh3dvh39nU3N7fwtvg4uHb29jb2NPV3tje2tzg3dzh3dvb29ne4dnb1d7e3dvT3+Hh3d3a3t7b39zZ3dvb39vUyd7A1eDY29jb2tnV0szZ4MzY2N3e293h3+Dj2tne293d3dvb3Nvb1N/f2tzf3tzM3d/b3dvd29fb283W29vb0uDc297Z19Tb2eDb2+Lc3uHe3uDe3dve3tnV3tnc3N7a2+Hf39zc3Mzf3tre39/S29ve3N3a3uHX3d3b3t7a0eLY28LZ3tvf4NzM1dfQ29rX2t/h3N7g2tje3Nbe3t3N2t/Y2uDb3tnY09/e2N3e1dTg0tTe2djW293Z2tvY39/ev7vg2dbb2t3Y3NTb3t7c3OHc3t7X3tra0NjK0+He3t7a3t7c3d7f2+Pg0drb3drZ3NzY3Nzh39Lb29zg3tfe3NPc493b3tLe4bHI3eHe29rQ3Nfd3tnb2eDc29nb29bb3tve2tzb4Nre0t3d3djb28/X3dze2dfa3tvd4dve2uHLx+Hc29vf3t7Z1dnc2+Di3+HY29bd1tjf49vP2+Hb3t7b39ve493e4dvb2t7d1tne4dzc3Nrc29jf4OLd2NrZ2t/e3t3Y3tvb29jZ2NHS29Lf297a1tvY3Nne3tzX29vc397T3tze2t7Q1drZ2NXb29rf297h3tna29Xf29vS2N/e29vc3t3e1tXb397d29/g293Z2tjb3OXd3Nvb3tvc3tvb3tvYzd3h19jY29rd29ve09nZ3Nzc2t7b3OHa2NTY4OHd09Pd29/f3NrS09ne4N7e3tjY2dvY3d7b3tvb29je3t7e29viwsvf4d7c2dza29/e3tje3tjg3t7b2dvh1dDj4Nvb3N7h3t/g49rb293d1dvX2N/SzN/d3+De29ve3t7e3NjM397Z2dze3tjH39ve39zf2dXV1t3Y2tvb2trY0sze3tzW2Nvb29ze29zf3Nrd29vCtdvd29nd3t/j4tnb2dXa3tuwxd7KzN7i3Nvd393f2Njd2t7e3t7c3t/WzOLIxuHa3eDg3OHf293h3uDV297g4cnA4eDe2OHe3eDY3Nrf3uPY2d/d4+Lc3Me33tvb48fJ4dPY19vV093c497RxuPj3t3X4NvY1Nve3trX2tvZ2MvT3dLc3uPf3Nvi3tzYyOHiwszg3LvJ4Njj4d3T1d7X1eHj39/g4eHe3t7l0dPW2+Hd1c3f39zb3dzWyeDe2tzh497Y1dvi3Nbb19LX1dLe3dja2tfe3eDe29Xe29fd0Mvd4t7Y2dbS39ze3N7b29Lc3t7b3drW3tfe3NLa1dvZ4dza19nYsuDZ3N3c3d7TvdvX2N/RuOLe2+Pf2NDa297h3tvZ3eHb397b1eHa2NzX3tnTyeDj39je293W4eHa3Nne3t/V2+PVzN7b3t3Gt+Pd3dXT2tve397b3t7b4d/j4d3Y2dze3d/b3tje3tXW1d3d29vZ19bS2N7h4Nva3Nva2OLe29e41t7b3tzb4dfS2Nzd3dvV3Nzb3t3Y4c7aqdjb29bM09zX4N7b3t7X2dvf3tnizdnj2Nfb3tTd3tvb2t3e1d3d2t3f3t/h3t7e397Y2tja3d7D0tve2N7c3N7Y3N7b1d/e19jf3t7e3dfX3Nvc2trb3tve39jj39jX39jU3tre2eHg4tjc4Nre3t7h09re2Nfe4d/d3ePe2t/B293c39LD4d3e3uLb3tm93t/g3OHc3N/g3dve3tnc3tnd2dzV29vb4N7f09ja3Nrb19ji3tji3sbV3uDc293Z2N/h4OLP297aztvf3tzW29bY3NvV1N7f3Nvf2tnh183X4d/b39/d3N7Su8/g2Nvf09fe3tnV3uHg4dvc29ve3N/c4d3b4t7h49jX4N7b187j4OLe3OHZ3t3b393c2eHe3d3a29za29rc3dXd3tja4M3J293X2dzb29va3t/e4d7V2t7f3ODd2t+83drb393V2uHa197b2Nve397e3tTb297h3tzg3uDj3dHS2tve3N7MyeHb3Nzc3ePh2eDe3tvZ3N7e397d3uPIv+Hj2Nnc397d3tzd3N7h2tve3trf397f3Nze3dva29TT2Nvg39jZytjb2NXf3tPX29fc3t3e2eHG1N7a2Nna3d7W2NTb29nc3dXe2tza1d7e3uLSzt/X39rf2N3b2t7f2NjV29vg3t3Y3trc4d3e4d7b4OXg2tjj39ja3NzM3tXT29za2+Hb4d7b3NLa2ODc4eHb2+DZ4d3b3tne2N3Y3N7e3tvm4dvX29vf29njtdbh397d293V3dze3NO93tzb2MTZ2t21vuPd1tjb39vY1Nzb4tvYxtjc293d2drd3dnd29vj2tTZ397e19nZ397P3tzd497Y2N/a4dTY4NzY1tjf2Nfd4N/b3d3Yut/e3t7e2+Dd3N/d29fZ1d3f3tvb3tzg3uLh3N7f4d3V1dvV2+Dh3tbd2Nvg397j3t/b2eDc1dLg29jb4Nvb3Nne3trN2+Lc3d7G3tre3Nnh4dne4OPf3dzb1tje29vb09fe29Te3d3a3t3a3tbet83h1djg3N7e3N3e49vb3tvb297Y3Nrb2N3c3tzg2djY4eHe3N3h39ja4t/d3tve2929xt/f397d39zb4NXV3M3b29bU4dnW2tna29fd297h4dze29jc3t3b2OPd2N7c3dze29fe4d7e1dXh3d7c2d7D2Nrb4+De39bZ49PW4dvb297e2d7c3Nvd2Nng3Nne4t7a5LvS4+Hd19/b197f3t7j4dne4uThzMrd3d7f19bfwsfV2sze3Nzk3+DY1c/fyN7Y2NvS19bc2dnS29jV2+Hi29rh29ve3tvY2N3i4dXd5N7f19Tb3d7a29rc4OPf0c3X0tzg3t3d4d7Z29rh3NrZ1tXd1Nbh29zd3t7b3t3e3dva4dzf2eDc2trS297h4Nzh4N7f3NnX097f3t/b29vP3eHSz9jc3dvc2tzjzNvj1ODX2rvT3dzb3c/W3tjX2NXb4d7b2OHX1d7e4dvX2NLm393g29nQ1t/e48jY4ePb0s/M3tnh3t/d0NjY3Nzc293Z093Y1eHh5MXK3t3U3d7Z1dbh29rZ3ODe29vi397h2Mvf3dzX3d7Z4trQ39/d2+HG19vk1tvc3drY29vY2L3S2tXR0tfe2dvc2dre3Nqsut3g1tnW2dnZ4dzb29zb1NnY2OHd3dvf3t7bz9/h29zU1dvg39/a3uSqxOPc3N7a3drg29rd3t/jwsnj29vb3drZ197e2t7c2NnY3uPh3+DhyN/X29Pc4drb2tbW3t7Z3drb297Y29Te2dvhu9PYpsTj3uHa093Y2d7e29vb4M/X3dPZ2Nzb3Nbc2t3e19zb3dje4eDi3tzb1NXM2N7d4d3Y2Nzf3dve4s/P39vb2NLb2t7b2+Hh3dnb2tvb2djY4dvb3tvd297azsnc4NzY3dvY3OPb1tnO4dzf2dvY29fJ3MnU3tPZ3d7c3tjP3NsAAAABAABAFwAAAAgAAAAAAAAAAAAAAIAAAACAAAgA3tvY4dvb3tvb2dvY1djf3OHW3N/a2t/g39/e297C0uDc2XHD5dng2tve09vb2bzb3eDh39ne3N7f3t3d3tvb3dvZ4dvZ297d2dfd29vU2Nve4dfY2t3b29ze07vU3tva4N7f397a28/Y4d7c293b3uGn2tvb2tvZ397Y1d622d/b297c2+DYzNPZ2dzf3trX3N3f4dvb3eDb3t/b09/c2uPKzNjb2+Lb3t7X3N3T3t7h18TK1tzby9Pb3tna3dvL297e3t7f4d7T2Njb3d3X2t7a3tjb3NvS4ePj5N7e4ODe2dne0trY3OHf3N7c3tjgxtzc2N7X29/f3tzW1cbc4N7f39nW3tzPwNvY1dnh4dvb2Nva3d3d3dzf2trd3uDgyMnZ19jj4N/b2tfb2dve3ePSw7De3eHG0Nfe4tjb29re3dzW3uHc3trd3uDb2tbZ4tLc3tvd3tvd3uHe39rb4N7e27G049nZ3+Hc4N7Z3tzV2dbZ297d3t/f3tvZ3t7d393e397g297e2tzb297e4Nvg39zS2dfd3t7e3uLg2N7D2drf5K/Q4d7b29ze2+De29zb4Nnh2uHj2N7k197b4uDd3tfe5N7c3t7h2NPc3tvY3tjf3t7U1t7b297b29vg3t/hr83j3tja4NXX4d7d0dvg3dvh3tjd49vb3N/h2NPa3drb2eDZ2djR39vZ3N3X3N7f3MTV3uPX3N7Y3+Td19zc3N/gq9Lf3+Df2NvM19zf3d7e1s3c3tjI4d3f2Nnf2tve3trZ4N/f4d/e2Nzi29jg2N7g3cza4d7Q4Nrf39/d3d3d18/h2dva2dLd39vd0tvf3tjb4d261t/e2t3Y1dTd297d19vc0dLe29rd3uDf39vX497S0Nre3tXV2ODP2Nvi3OPm4NvZ3t7U287Y3eDf1dXVz+Lb2NLY3tnX3N3R3d3b29bh3dnc2N3e3t7g3+Dd1dvS3t7d297d4Nve4d7a1eHb1t/d2c/g3Nvb3OLf19jb1djl3sbZ1trb3Njb1N3h4dzb2d271+DL2Nzd2t3U3tjh4Nva4d/Z4W2/5N7a2N3iyNfe297a2tnY3t7e3dfYzN7f297dz9Lh2tvZ2+Dh2Nrb3drh3eHe3Nvd3t/e3NfT1dbg3d7b2t3h3t7e2NjQv9rd3c3X2dLd29za397U0N3Pw9XU0tXZ2d7d3Nvc2Nnc29vc3uHW3Nraz9HV3d/e29PU2ODg0tbZwdvj3drU39vP3Njd2tDZ4OLc4eDa0Nzb39vf3tnS18/f3dvd3N7S3uDb3Nvc2+Hc393W2ODk39vT1da/4drU3dfe39nX1su62uG9zNXb29re4b3M4dfY29mzxd7e29Th29vb3d/Y29zZ49/Y4OHZ3d3d3uDV2t3d09nd2uDL19vd3d3U197az93hydvh3dfS297Z3dnb29/e4tjb2tzc2ODe2tvf3t7b29ja293g3NrV29zc2+Hc3M7d2NXf19je3tvW3NvZ2sfZ27LY2Nzf2Nzfv8ve29TX29uw3d/W0t7b2Nze3d7f29vb29zg3t3g4OTh3tjf3t7C29ne3uHi4d/c2NXg3t3c3d/e19zh0snV38rY4dfb3t7eg9je2dvR1d7W2+He29jJ3t3d3t3V29ve3N/e19HV3t7V29jZ4ODf2djf3dvd3NzX4Nve29/a0d3d4+Le1d3e4dLd4Njd39jZ3t7d3dbX3drb293Z4MzS3d/bzuDd3NPb3Nvd3dze39rY2dvZ3uHj4M/j1b/Z4uDb2tTZ3Nve1t7V3dnT29LV3t3b2NHd397Y3N/b3tzb19je2t7M1Nvd29Xf193g1N7h2Njc3tuvyOTe3Nje3trP2djg3trZ29rf4Nfb29vY297g4d7i2Nrd4djc3tjb2tjb3dnX4dfe3OHf2N7h39vd3tvc3dvd4dvb0+Df0tza39Te1tzf2NrY3eHb29rW3uHY1N7R0t/d4tzb3tLY4OHgzMze2Njj4OHb2Nja49bZ3NrX293c2NbI2NTV3t3e09vb3uDa3N7d3tvf293Z2+Le2tXe3t3b3eHT1uHa3tzb3NzY2uHh3d7hz9Db1uHg4Nze297e3uDe4eDf1Nvb3uHc3tvd4d/c2ODg3tjc3tne3OGt19/b2tLe4M7a2dvd4d7X3tze3d7h4ePe19ve1tnS29vg3t7h2dDd0sHk5d3e29Da4Nvh2d7c3t7d3tjc4eDa2N/d4eDhy6rh4d7e4tve2t7c3+Db2t3VxNvX3uHW297b2Nze3tra2d7T2eDe4dni2+Df1dvi2Nvb4Nze1M/h4dzY2M3d39nd1snT497dxtrZ4dva2Nvg3t/e3djj2Nnd2tnf29jJ4+Df3tPC2dXf3drg39TS3tjd1djY29za3d7b3uDh3drb2+Lf4dzg29ze3N7b3t7V2ODZzd7k4M/a29Pe193e4c3a29vb4eDb3t/h3tfb0NHe29vh3drb3t7R0uDg2N7X29zd3N7j3trf5OPf3Nve39/e4OHe39jT3NjY29fZ3tjZ3tze0sTg3d7e3Nzg29jb0tzS29jY4MnY3tzd2b/a3uDg1dze4eHY0uTZ3Nrc09TX29rW297e4d/e2N3b4N3Rv9vd3N7f1tHe0ePe2+TUxuDb3uDT3dfY29ba4N/Y1LLh2t3e3t3Zz9Xd3d7az93e2N3i2dvg4b7V1OHg2N7f29fd29re39jf3uDb29re29jY3tbb2Nbg2tvc3d7Yz9/b3N7T3+Hc39vc39zb3OHd3trb3N7b2+HY3t7d4OHe2LrN29vd3t7W2N3Z3t7e3djZ2+Dc3tHV29jb3ePXz93V2dfc1tne2uDCxc/b3t3P2N7W1N3b0t7g3szJ4Nvg39na193Z2tve29jX2t7d39rd2NTb2tLa2tvY1djZ39ne3t3d4dzf3t/i3t7b2Nrc4dXV3tvb4OHe3tbb3uHc3uHb4d3Y4dvd3czh3+Hc3dzhydnj3d3b3trd3tvh3c/e3dzh293bzN7e3tnW2tfb4eHc2tjT39fa2N/d1dXV297d3N7X1t3Y2Nzb293f29jb3N/d293a29jb1dfd2+Dc0dXb393e2d7b3t7c4d3e2+Dc2Nne29/T0+Xg3c683tne3d3a4NTh4Nvd1cHY4dvh4N3i4d/d4uDe0tXd2t7h2tva3uHc4NzY2Nvf293W3uHd3d/awd7hzsrg3N3h2dPf2N3e3+DR193b2Nrh2dnb4dnb29jf2NfS2d7a3d7e3trM3NvZzNvf3uHh3tjd397g3dna2Nve3tvY3+Lh2LTi297e3tTb4eDf297ex9na4sjc3t7e297h4+KPaePQ39zg3d7f397f497b3tzb29Xf39zc4Nzc4dzXytrd3tvf397e1c/U39rZ397e2NXe29zg3+Hc3t7T19Tc4Nva2d3d4Nrf4d7X3d7e4d7d3N7b29Hi3Nze2Nne4t3b4Nzb39rN2OHbxdve4eDb3N3i3t3ixcnS1dna3dLb2Hhy3tfe3ODh2dzh4Nzd3M3Y3Nzfz9/QvNve2ODd3NLb29vh3tTX3t7S1d3e4Nve48/b3ODg3tjd3d7Y1d3a2OLMzdne297g3NzU3N/k2d7g1djg3dy1YdLe2Nvd2Nvg2Nfb3tjf18DV49zf3dje3t/h3NrX293mssvb3tfb3tjM1tva4dnb3uTX1d7e29vY3tPS29ze3NPV1d7c3eDZz8/h1dvc09/a4djd3trY29vev9fi3N/e29vV3tvT1tve2dvXqNfY3N/e4dnW38LH3trY3d7c48aU0N7e293b3uDe2+Lg2t7f3t3d4NzZ293i4Nze3tzV2Nzc197i3d7d39/Y4d7b2NvY3+He3Njb0tfc4cbY3t7e197g3Nzb1dDT1Mnc1tfb2dja3Nva1t3e29zf4djV3tjTx9bX2NnY2d/f3NvV3c/d2+Hc3uPbxs7e3d/c0tbjypfY2Nfe29vf393c39/b2t7c2NLj4d3e3Nja3t7g3s3V3tvZ1t/e1t7b29je29vc5Nve3t/e2tve3uDj19/f2tvb3d3T2tnY083Vz+HT29ve29ve3tze2NzX2drh3Nvc2Nvc29jd3N3e29zd3tfb0M7Z0uHc29Xm1Nzd3tXY3dnTmNTV2N7Y4d7b3Nvc1Nre3d7e29vb393b3t7e2Nvb2trc3uHZ297a09vi4d/V2eLa3t3c49vb4N7b3trb193c1tvh3tfb2+DM0d7c2dzb29rb19nb29jU48zQ3+Hb3NnV1t7h3t7i3tvX2dvc0tjMz9zb3trSt+a21drd2d7e3dvo09Lf4N7c4Nvc3dzb297b4Nzc1ePLy9vf2Nfe29/b2dba3uPe2eHe3t/f397b4N7b4Nzg297e3t3a1srY29/X4N7c3dXY2Nne4dzL2Nve2tvY29ve3tvM2N3a3d/e3trY39zb3dzb3NzR3t/g4tLY4OLe29zY3t7b2eHh3Nvf3ODW29vX4dzP2t3f29vd3NvV3dvQ4tLU29zZ1Nre3eHX0d7c2d/V3d7e29ve1trb3t3b3t7h3MXb4Njd29nW1uHb1NrV3M/d2N/h18jh3srgz9Xh09Xd3tDe3tre4d/c3OHc2ODa3Nze3tve293d3djV2t7c3+Db293VytHb0s7h3d7a3dff3NHY4d7Z0uHY1dzf2Mnh3d7d3+Ld3tzb2trX3djQ2dHd39je3N7f39ne4dPe3dvb19jc3N3Y2NXX2tjZ0tPe4N3d2Nrg4dvf0NLe4eHW29fc3tvd2N/Jw9va29ve3NTb2Nbe2NXZ29vb2+DS1tvX2OHY4NXW2eDV2ODn49Hf4NzY2+Hb4NbK2+Gx0OHe2d3e3tzb3dnd4dvb2trT0tXZ2tjb2+DZ2eHd29ja29Xb3snY3tvb29Le2tvY2t7Y1+Dd3t7dvdXV19/g3N7g2N7R3uDe3dPe3tHR3tjb297b3uHZ2dva1OHh3drb3tLU393X39vb2dve4N/i0s3Y2NnS397b4djd2djAy9nb2Njd3OLc2+Pb3N/f3tzV3d7b2NXc29jf2t7f19fb4tbe0djX2NPW2NrY3tzX2d7b3eHR29nc3t7Y0tHe3tjb3N7b1tnc29jb2Nve4tvS4N3b4N/R0ePb293f3t3h2Nbd4+Lk293e3d3d4d7a3dvZ2dvb29bc39bd3Nre4dPQ2tjd3d3Y19/c4uDe2t7e28LV3t7Z2dvf2tzc3tzb297j4Nnc1trd4dLb3tvc3dLb297hz7Tf1dzX29ra3uDM3t7f3Nvb3trc2M3bz9Xa29vd3dvb38nV4dze397b29jZ296zz6XO3dzd3tzc3dPb2N7j2NTb3tvd1d3h2drY3tbM2uHc3tvY3N7b3N/e4N7e09nZ3uHe2dva2N3b3dve2+HUrdXY3N7hzMre493b2+He3tjd397by63S4eLe39Xg29bc193d4uDc2t/Z39zb2dnY4d7h1dPY297d3t7c1ODg3qXEqtTY29ve3tXc3t/d2eHa3Nvb3NjW3dja3uDc1Njh2d7i29nb2uDg3dXb2NbQ2N/f2OHV1dvh4trc1tje29nc393d2N3Hx+Dh3uLe39vhz9ve3tvZ1d7b1d7b3NvZ29ra2+TAxd3W4Nzc29vT2dnO2crSz9Xb297Y2Nrdv9Pf3NTh3t7Y2dzO1d3e293a3Nza1c/W3Nbd3uHb297Uz9/T2ePAstfa29vf1dvY0N7d3eDb3c7R383C4dXU2tva39Ta4Nvd1dDe4eDh3tze397W0tff4eHb3trC4Nvc2NHT2N/X3c/M29Xb3tjW3Nnb2MzV09jd3NnX1tvX3+HS2Nzh3tzf3N7b3dnY3tnT2+Pc2dvY2Njg2Nzc2+Hb3tjV2dvg4b6x3t/Y29/e2uDj39zd3d/f39XY0tHe2LTb2Nvc29vh2d/e2d3V0d7h3dzg3tnV3tvj4d7d2dvb297Y2dTW39jM2d7a2N7V2drY0N7Z1tvY39ve0NzX29vW3t/W19vh29jb5tzc4d7c2dff4d7d3d/e3uHf19re3dvf4OHf29vd3ubb1Nre3+Hg3eDS4d/c0+Df29zV2t7Y2tfe2+Dh4d7U3uPe4NvS3tvb19Dc39/a2N3jyNXe3NLU3tje3NvZ3d7d2Nvb3tfe3Nvb2tze3tva39zK3dza2N7h3tje19ve39iCxd7a3tze4eHX3dze3djf3N/f4eHg3t7e3t7d2tPY5t3G2N/d4t3c3t3e3t3M3Nbe4N7b1tzc2+Hg3uDg4NvY3dHU3ODe3tfYzNTY3tre3tvM0d3e0dnf3t7e2sjg3uDh29ni49/c3d7Z3djd3tzf2t/Z3d7c4dvg4N7Z2+Ln0W7K29re2Nre3uDd3d3g2tPd3t3Y3+De297c19vjvM7g3Nrh4NXP2NrY297Y2drhzrrh3N7Yxdrg3+Hd3+Hh4uDb39ba29jexMrY2NXZ3ODjyd7Y39He4t/Z29zjvbPezL7e4djW3t3d4d3Y2dre3N7b3N3b3t7c3tfd49vX297e39va19nb29/b4eHe29jX1Nvh29bV297h4d7Z3d/h3tvh39vb1NrY2d7e3trd3d7f093d29vY497g3t7h4d7hqdTe193Z3Nzc2Njj4sXO49bb39vg29y/2t7b3eDMwc/Yv9ja4djM3Nnb297e3dzT3Njd4N7g29vb3d7b4t7d4eDe2N/Vu9/M29jh5N/f1dXX1drJ3M/S1drV1dvd3d3c4eLg4dbX2t3e39/d4eTg3t7Z3+DW2t3i1dnc2d7Y4ODR197S29ze1+Db2OHj39ve1drh3N7a2dvZ1NfY09/e4t7h297bzdPe3d7e3drd2Nvh2tXY3Nvf29rd297Y4d/g4d3Z3OHn0b/b3t/d3eHc3d7b2Nng3tXT1t3Y29/e3t7e3eDb1djc3tvX3+Le3+Dc2+Ph4tLP29ri19jh3NbY3N7h3trb3Nrb4OPf1t7e29vT1+Pc1snb09zY1Nvb29vJ3dve3t7Pzt3Z29va09za4N7Uya/k3t/Tn9vb29ve3NTS29ze393a1d7e3t7c3Nrc19ra3N3d2Nng3t3b29zf2+Df3d3g29zc3N3c39ze4t3c4dzY2Nfc3+Hg4OHd3djb397Q29zf4NvV387W2tvY4dze3tvX09bX3N3b3dvY29rb2+Hg297e3djY29zf3NvX39bT193b2Nq129ve4tbYxsje3t3d3d3g2M/b2Nvb4dza3NPa3N3h2+Hd3d7c2tvb3trbz9LW3d3X3tzV39nZ39/U0tzd3dze3tvU1t7b2ePe1NbY2drc39/bydva3Njg3d3g19fU297Y3tna2tXg29jY3t7f3NzZ2N3b4N7V3tna2uDc2d7c4OTX3N/f293XzOHb1tjb1dve293Y1t3e297dy9zd393e2NTe29vc1uDg293f3t7f3Nve4d7k2eG/28fQ2OHf3djb29jb2dbj4dvS29zW3dvh4NzY3t3e4eLh3+DV2OLh29/e3Nze293e19fd197c4NXQ29vd1N7e3t3a2tjb3tze0sPW1tze29jY3dLd3drW2d3Y3NrY2tfb1tzc29jb4d7Mv+Xg297d29vc4OLe3uDa3tzfysng2bXX3tXN3tfj0M/k3tjd3+Xd4drY3tnX4OHZ397Y2+Hl4N7d39vYrszf3Nvg3tfc29ze29vY0uPY1dnc3d/Y3tnf2tvZ2tvY3Nvb2t7e3dvfy9fe3d7X1t3Z29re4t7V29/g3trb3N7e39Xcz97d1t7e3N/b3d3h3t3d2uHLxtnV3+Db2+La2N3O09za3d/a4+Pd3t/a29fg393V19/f3t7Y09jb2Ni/vuHc3te31d7a3dve3dvZ29va29nc4Nrb197b2Njb2Nvc2t/j2d3e3t7e3t/e29bX1t7c4d3b3t7gn9Xc4Njg29nd4NjA1+Hb3N7g3OHh4eDi2dvf2OHj3N7a29beyNLe2NLL3dnd29nb3t/e2tzX29je1pXj1t7h29hOtuPb2OHZ1eHh2MzV3uDgzNnc2t7b2N3X1dzf3dzd3N3Z3d3M3d7b2NzVzNrU2t3Q2NzZ3dnY297Zzd7e4d6q1djc293g4N3d297V2uDb3t7Y3uDe3Nna39za19jm4djX2NzY29vT1NvZ4NvW3dfb29XZ39rVz9va3tbK3tzb4KXV3d7Y1eHd3uHh2Njc0Mul4OHd4dve293Z2N7g297d3t/f3tvb2eDd29nT1dPc4cHH3NzU3d/b39fJ4d7i3uLg2Nrb3tfa29jj4Nzd2Nvd08/d39/e3djb3NzV1+DY3Nzj3dza2N/Y1dLh4djd293V1tbb3Nnc2t7b0t7V297c497e4dLN4t7d4tzj08mostjg2tnb393b293g3N7U3t3e39zb29fY1t3b3trZ3t7b2dbc4dve3NrZ1dXU2+Hd29rb2tvY2NnZ3t/f49rX1dvW297d39je293b4d3Z3t3e28vY3djR3uHe3NnXyODe2d/b3dbd3tzc4eDd4N7d3NPY3Nva3OHb3dvb3uDh3M7M4dnb2tbP29fT2NjV3tLMxN7Y2dfT0tLb3NzX29vJu9fS3+Hf3tfY29/d2dvX2dze3t/e3N/e1djZ1dng29jW297g09vZ1Nrf2t3e393e2NzTrNLd3dvg3uHd1d7j3tXJ2+Pc3d7P2ODJ2+Hg293Z29/J1uHW19Xb3t7e1tvd29ve3d3Z2NLc2trj29ncz8ao0dva1eGzr9ve2tXf4bu14eLd3d/Y29Hb2tHV49zY3+Df3dzg2Nzb3drR4tzb297e3tvX1NXZ3tvc3N7g4M7S4+Hd1Njh3t3b29/d39LM3djf3tvb4c3T0Lrkz9bZzN7h4+Ld3N/eztje29LQxuDb3N/X3Nvd3N7b2Nzb1d7h3tm74N7h3uDZ293f49zcwcXhuNXe4N3TqNzW19Xd2N/g4N7d49rc19fe2dzc2NvYytTj3ODc2Nfg3t/e3d7b0tvb3d7V1dvZ397X2tvhupPi0Lff3d7h2NrU1NjT3NvW4ODg4+DZ2N7f3OHXz9fg1dfc1t7Y3uHf3szB4djX3OHe297d3trW3tvR3OHe29rU2trN2t/e29Ld497V2svV4N3Z4Nbd3t7e29vg3trb1eDS3eLf2djg3Nzf3uLd3tjb39rg29bc1t7b3eHV29LUy97Szdzb3dze2N7U1eDh4Nne3tXJ4djP29nb29LW3NnW0+TZ2+DY2NjY1djb3NrS3tHR2trd2M7c2N3P0tve2tPe3tnd29bY2Nve19vc2tve3+Dh1dvh3eTj29je3t3a39vN1t7b3tnb2t7f0dvb293e4N7a2+Le2t/c2tTe1tff2Nvf2dPI3+Hg4OLb3ODY3N3dwpLg2uHe29vh2Nnb2d7e3+Pa3dzZ29vc1tvO3dHX29jb3tvb3c3S2tXS297a3djh1dXb3tXc29zV2+Hh3eLW29C33uHb2+Pa29ri3uDZ29jf4dvc3tfb2da8ydze39rX4eHO4dja2eDZ1t3j28/c1tjY1cTg397f2N/e4Nvg4Njb0t7Gnd7e277b3Nzh3t7d2d7Z2tje4dXE3M/Z4M/V297U1dfT2NfX4d7Y2tXF3N/V1N/e2+De3ODg497g2drZ1tDd3svM2t/b3ODX1dfX3eLh39za3t7d3s/U29va4uDY3+HHxOHK19ze38zc3uLc3eHd3t7c2eHa3eHf3uHg3Nzd2dKp3+Hfrd3cy93d3Nja09zZ4d7W19TM2tvh2Nva2NXX2tne3t7bzOHS09PW2Nne2d3f2NXe4ODWzeHe3t7e2NzbzM7j497b2NXT4dve3tna29ze2dje29Hb4Nve3OLT1dvb47fO3s/ag7/l29zd3Nvb2tvY0tfe3eXe2NHY3eDGyOTZ3djd1NXV397c2OPV19TU4djP1dfO1ODg3d/i3tjd3Nzb3djV3d/V4Nzh4N3c2LfS09rc3t7b2ODf4dvX2N7d4M/c4NTZyd7d3drd2dHb1eLb2+Ryqtzm4dvf0tPc29ve4tjf2Nzj3tvY297e2dvb1dnQ0dvkoq/Y1uDYzLvB3N/i49XS3N3b3N7b293Y0dTh29HV3tDau8ra3dza2Nrf283e3Nve2Nva3Nvf3t7Zxt3h2tza0+S0v9/e29vb0svU1dnZ1uHi4MnW4eHb3t7Sy9rS2LLc2tOg2+De4N/V3+Lj29zh197i29zV397b1d/U3uHh3d67zuPY0tbGucHb4d/b4ODZ3tvY2dzb2Nvd3N3b5LzN3duZveLb3Nre3t/Ww97O1dve3N3b4dve3dvi3+De3su72cC72tne29nb09Tb29/S2d/i2tni3uDh3dbC3tvb4d/h1Z/b4Nnb29Xg297f29/N09/d3tDdz9fW3trY3tva3OLf2tfQ2ce62+Hc29ze4uHc3tjd1t3f3tre19bd3d/bydjd3t7e3d3f297c29vT2tng4d7b3eHb4dTY4N/f29bX4dnS29/Z3eHV3d/f5LO95eDc1d7e29zd297g3uDa3t/c48vV2uHe29jb3N3a19rc3tze29/T09Lh3NXb5djZ2dzd4NHa3Njf39zg2NvV29nY2eDh3N6m0N7bz97g49zY2+De1dXX397b29jd2drb4OHi29ve3tXc2tzh3N7f3dzY29ve3t/d3czV49rh2dvi4dvY19je2tvW1Nrd3tvg3tze19XY3drb4dve3d3b29/h3d7Y29zYz97Y2N/b3tvY3tjf4d3b39rh5N/e39jSu9TW4Nrf1bvg3N3Y293b39/h0tvb3tzb2dvXztLe3d3d3tvW2t7b3eDa4N3Y297b3N3f19rS09Ph1dbi3tvb29zd4dvN29/b0Njc3dvb1tjZ2djX49jZ4NvZ4Nzb1dbb19Xh2+Ha29Pe4cjS3dXh29vg4dnf29rd2dmz3d3b1dfU4NXd187i5t/d3eHb4eTP0t3W4dve2dXf3tTP1d/e29rf3dvh39fY2N3d3Nje3c7e4d/f3M201cvf39vb3s7M29/j2cDh3dvT4dzV2d7d397Y2OHh3trY2dfY3dHV3drXx+Dc3+Lb2d7e3dve2t/e3dzj29rcydve2Zne3t3Z3sfY2NfY2dze3d7a4dGq0LLM0eHb3tnQ2Njb29zg3t7Z3t3e3NvjtMjY3OTj0t7X197Y297a393b0t7b29jd29vc49LO4djb2N7i1N7f2ODOxtvc3Nzd39jW29jf2eLj3t7R3uHb4d7hzM/e4N7e293Z3dve2N7C1d/f39ve3t3Y29XM193i3d7g3d7h2J7PtMjg3t7b3NPN1dvb3eHe19jc29vg4NvN2t3f3ODY1dnh3t7f3dza0tjd2ODe193h3dvb0dbb4Nvd4eDd0drb4dXL3eLc29Lh29vc3t7d1dvf2Mzg3d7F4N3b2t7g3dvc3drN4+DV3dTY29zZ3tjb2t3Ay7jY2tjf3t3c0a/h4tnU4ODfydXb3NXZ29vd2uDPz97Xzdzf4eHe29rZ39ve4t7c297a4c7Tx9jj3uHb297b2Nrb2tji29ze3t7e4uDP2d/YxOHb1dnf3tvf3tzS3MzS3t/g1qrd3uHi3N7b393a3tnd3t7Y4OHY29je39vj4Nje2djb2N/d2N7czNrd2eHc4NrX2tvb3tvY2tvd4dLd3tjL197f3tXV29va3t7P1dfQ3Nvb39rb3tng4N/b2t7f2+Hb2+DS2+Hc3N3V4dja4NWg29vY1N/h3t7e293Rwtja3+Tb3t/b4OLa3NnV293c0Nzh3t7f29be28nl3d7c1+De3uHY2d/g2t3d29vb2dvc2t7XweHc2t7e4MbB1N3d3uHa2tLfzsvg3N/mrqji1tji3t3b1ePe1t7e2d7e3N7e293h3drc2NPi2M3e1drX3s/d2t3hxsXg2dzV29HP097mtrDc3tvW4Nrf3tfe3dvQ0sXg3N3i19bgecPg3tDX2N7h4drQ3N/Z19be39zb19/W2tTV3Nre29ve1tff3Nvd1eDS0+DS393g4t7I0tvP49nZ3t3h3dzc0tve3tzb4trd29vY497V29vhwsDE3t7e3t/c29vDs+Pd4tzG2tzc3t67o+Pf29G53uHd3d7f49vBst/b4N7g3eGfluO5xdLZ3uDg2Njb3d/X2s/a2N3e4eHf3OHh29vZ3dva3d3e28jh2MXY3N3f3t3g3eHf4d7g29Pb4uHf3t7i3Nvh4dXM3uLe2+Ha3N7h2N3S2+De2tvd3NfM4dzZ0tzb2rzU4NvY2uHm3sLXxtTb2tXV2tXc3tvd297c3uDh1cnR1Zvn1dfe2tvQztXb2Nne29/g4eHf4ODd3OPf3t7i29XZ29vW4OHcydve1Nve293b4uLf4Nvfz9vf3t7b3d3b3d7f2NLc4ODe4dna4dzT2N/h2Nzg3tjP1dHf2t7d3tjd3tbX393Y297eldzh3dXS29ng09je29Pf4NDcyODazNnb4Mqv397Y1tnb2N7SrtTk3t3V2Nve3tvT1d/Y3X/S3Nzd3sXh3tzg1d7P1d3a3Nje4dHf3t/Y3dvb3N3d0dve3trZ293d4d7X2N680dLE28/T3t3e0tff4NvX3tvb2Nzd3NXf3tfY3t/e3eDb3d7f3tjb39ve3triyLnZ29nh29ra2dvj3uDi3s7f39/R2cnc3s7Y3ODd38XU3NTdn83e3tjY19zg4dvc3NXa3eHf3Nve3N7d297W297a39zV0t7Z3+Lg3d/e3tnT49HW2tHe0t7c2dXY2Nvb3tDW3uLY1Mje29jg3tnb2dbY3dne2Nvh3Nrf3trL3d3bu9ff3t7e3t3b3t7f1azi2eDb19Xf0trh0djf49vE0dnY2tbm2drUz9ze2dTI2+HP2+HY2dzg29rbydvg5s7J3NvXzNPK3tvf29ze4N7e4N/a49jC09nf297d19Te2tjf2NfV29vd29vf297U2t7e3t3c3tXh3d7g3t3c2Mbe2+XGwNjb39Hb4NTP2+LYyNrX3tvZ2NzZ2NLY3tze2LfJ3N/e2+HY29LF4Ni228rc3tve4dPT3d/c3tfS2tfY3sbZ29vb2drd3dzb397b1d7c3tja19LS1ODd39/b3OLM2Nzl29Pb3OHf29bh29vi3tve3N3d3dvb2t7f397X2dza0ePS097V2Nrd1bvb3Nrg3dne39vY29/dzdPT29za2trh4NrY19zb3d/O1d3h3Nzb3dfh4t7P3OHf4eHY2dng1djc4eHd3Nvb4dzf3t3X297b4dzW3uHk4dve3Nvi49jc4ODe3dTY2d7g1Nve4N7e4Nfb4NnZ19XU1d7e3N7e29vX1dzf2Nja2t7d2dnUzeDe26Pc19ve397c1cXa2Nzf39/d29LW2Nzk3Nff2c/b2t7b2N/e29/e3tjY3Nvb3t7X2dXS3d7f3NjY3uDf3d3V4dXV39/c29jf39vf49jR4Nvb29ze2d/Y4eHe3eHd2N7d3t7dzN3b19jc2+Ph4N3Z4+HMzt/b3t/e3t/a2Nze1tXcydze3N7g29rY4djc4+LRzuPa4NLW2+DO0t7R0uHf2dbb3tnU3tvb3tzf2Nra3drY29nb2dbV3dnc29Xd3N7b29ra2uDVz9vY3NzhyL7j2NvP3uLd3tnU3uHe39zP48rV3eHf2Ni0z8/T4d7e0uHCtuLT3+He2Nvg39XU3tvTz97a2+He297e3Nzg3uHh2c3R39/ewdfd3MzP49vi3NnK3N7Y2ODe29vh2d/d397e29jh4N7Z1czY3+Dc2NrX3tzg0be55s3P39ng3tLc2eDe3t7b4dvb3dSoyd7g297U1dna3t7h3ZjP3dLS297V3tXY493b3t7X09/h0tPc297e3Nve28nb39XM3tnc3t7V19vc297g0Nbc29fe3d7Y2tve293e3tXbxtPj3t7g29zc3djb3d3e1NDb1tve1NHd3eHHv8rY0My/393d1N3e2N3f4Nrb1eHf5MjW4eHd3tTb3Nvf3uDm4d7e3Nvg3Njb397V2tvZ3t3J2N7b4N/c3uLi3t7e0tHdz9bh4dva1dvY3uHb3t7a29jX09Xb3tvV3tvc2t7c2+HR0+La3ODc393c1d7g4t7f29zb2Nzb293h1s/W2ODb083h2N3c1djW3tXh39jY2djZ49/i293e4Nfc3t7f4sza3eHg2+bYtODa3dXS4c/W29ve3tng4Nvh3tzf2+Hi1d/g29nb3d3Y4N7c397Y2OPi29ze2N7b2tvZ2tze2OHb2+Hi4N3b19/b0d7X3Nbb1+DY1d3f3tvh4OHQ0t7Sx+Ld4N7d2N7b2tvd2dvh4t7Qz9vc3uHe0uLY2NTh39vb09/e4eDc3+Lf297e39vh3tnb2dve5eHh4tLY4OLb297kzM/b3t/e0MvS4NzU3tjY1N3i3uHc0t7Y39ba1dHaxNXa49/i4NLO39nf29va3NPV4NrV2tvevcbb3tva1MOo493a4Nvc2Nzd3NTY3dXY1NjM2tzb2t3c3tne29zc4eHS3+Lf2uDc3d7e2d3b3N3b3tzc297c0c/l093d3dnY39ljuL3C3dvTtarm3NnZ2NvV3uHa3eDV297d2uHKn+LV3uLg3t/e3uDc297Y3tvf2c/d4Nva4N7GytTb29zRvcrf29rV0Nja0uLf1t3g18/S3dXb1c/d3uDc4NvY3tzf39TexszV2dvY3t3d3uDe1dbe3d3g39va0tvj3dre3N3e2szYq8Dd0Nre2dvg3tfazNDe29jb2NvW29jW293T3dje3tvU09rd393e3Nje4d7b29zd39XV4Ofb2Nve2+Hi3N7h2M/M1eLVwd7V2t3d29vf3+Hd2NvW297b29vI2N7b2uWtyd7Y3OHZ3uHg3uHd4N3e3Nng393d4NrYz9jg393e3tLh3dnf0drg3trb3dPZ0uDb3eLe3dXg1Nrb3Nna39za2tml0uLi293X1dze2dLb29ve2dPk29vc1dHW2N7b19zd3dLY4dbS2trC4eHe29fg2c/j3NLc2Nbe2LjV4ODZ0uHe29vc2N/P2OHW3d7f3eHd29ja3du+z8y+yOLh29vf093h3d7V0dze1d3b29/ez9Hh3Nfe3dve4N7h497U19zd3qvV3tzb19XR29vc297e29je3N/f29jP2NzU0uHP2+Hb3Nzc3d/c2b3e4d7Z3dvY29rd3+LY0dvV4NbX4tWs3tvh3tze3djf3t3b2d3g3t/c293d28Hbzrjg3d7b1uDe39Xe2drZ3tLR3dzb2t3M1N3Z2Mnj2NnX1uHe2M3P2uHb4Nja1tnM3N7b2drU29ve3trX3N7e3Nja2dvX397hzN7d3t/d3OHc4dXf4s7d3NzfjNXX29rg2+He19bL1dni3t/f3d/f3t7e2uHc1dnj3tXf4d7YyObdx9za3Njf29ng3d7d4tvb3eHa3t7e3d3e297e2t7Z29re293b4sq2wt/W0t7Z2uPZ2t3Y2dnb293V3Nva2NzY19vd2Nnb3tvV3tPb1d7a397Z3djc3t7e3uCz2dvb3N7e1dvc4dHd4tTS1d7c4d7f3dvT3OLe3dze3d3Z1di/4dve4Nzh3t7e3trd2Nvh3d7d2tPb2+DY0tzf3tvh4M7Q1c/e4t7g5tHR29rb39/e2N7e3t3a2N/b3tfc2tjb3tPY3t7Y1trd4dje2NTZ2drb4dnf1czh3N7f3+Le29Xf4NnU2Nvg3trkyM/V2NXd397c3d7d2+Pe293i4N7d1+HY193c3N7V3N3a3tvX1t/huNTPvt3d29nY383NwNjez9LY1uHe4NvY4OLd2NzP2dvY3t3c2trV29Lf3tvW2N7Y3Nng3tve0drb2NnY2+HR19/e4tvYz9bY29vc29zb2Nvb3NjV2N3i1tXd3t3b3N/X0tnZ3+De29zd3N/g3t7h2tzW3eHb29Lg3OHg4Nvc3ty13tLQ3N3b49bc2NvUzNTe4NvX2N7e3tjf3trd3c7R19ji18ng197e0NrP1My519zj4+DY2N7P2dvA2NDk3tTa4dze3tre3dvc2+He3t3N0M/h2tvQ2Nve29PX2+Dh4dfS39zS3ODd1dbd3t/Ozt7UzuHa3dvP3eDf2d3X393g3OHc2+LY2eDW0NfG0tzW2dre3dvc3uDb3t7d293b2NXZ1tPV29vb4d3Z27PVxc7e49vc2Nvc2d/d29Xd2t3g2N/W193W29/e2NXf3uHe4eDa3t7d4tvg3Nze2eDc3s7A5trf3tvU1d/ez87g3tjC4d/e2tje1sXh4ODe3N3j2Njm3Nvb4OHe28vh2NLV1djH3+Df3uDd2tjR29zY3t/c3dvdzcnh3dHa39zc2NnX1dvb3Nzb29vW2Njj1cng2Nfd3NnV3dng3N7b2d7a3dzc4Nzc29ze2Nvc3tjg3tXY2cje3+He2+DE2eLe3d3a4d7d3eHb2tze1Nrg3d7b4Nve3o3W3d7b1tzbxNPg29jc3tzX3tze3t/P3dvY2N7c3t7c2Nvb3dTIvNDV1dvZ2dnX3tLc4N7e2djWydrb3uHh19be39ve29nX3NvY19rb3t7g3t/b297Z297c2N7e2NjU2NXa2tvj4Mna3ODg4dve09ze293d293e2dvb3d7Y0tLhlNXa0tndz8jM1dvV09/f2tvc2dvb3djP2NLd3tjd2+HS0tvi1b/g1Nve2djaz9fU0t7V3uHeod7W1d7g4d/Qz9/h4trP3Nre3NfR19jd4dTZ2uDe293d3drg4dnb29rh0M/e3Nvd4eHc29zd3eHi4dXP4d7e3ODa3Nzf1cLe2+Lh297e29fDzdjg39zc297V4s/O2Njb4NDb0tnZ4d/c3tXb4MrU4d3e0N/W2d/c4NbX29rG0s/E3eHY29ve4d/b2+De3dbd39/j3dLb0dbe2Nvc3tvd3NXe3NnR3+De3uDb2+He2NXW4d7b297h293e3NXa2OHb1d7b297c19rJ2N7Y4dvb28TO3+DY2N7W39Xb2ODf3N3b5N/b3czh1drY3NvYz9fe29nb297i5tLY4d7e4ZrM2+Te3dzX1NzW3Nnb4N/U1d3e4N7f29vd3Nvc3uLY19zb3tLV1Mzg3t3h4d7d3tvb3+Dd3t3Y4OPe397a3drb3s/U3+Dc3djb1r3b1+DU2t7g2dbQ1ODe3tzY39ve3N3e4drb297U5eHV29re4dvc3N7Z2uDh4eDe29nh3tzez6re3tva2NjZ29Xhwtvd2NjY297f293d1d3Z2ODg3trd297e2tXd2tze29fe2N7Z2d7b3t3j3tfb39/X29fW2Nvc1dve3tnX29ze5dfJ4tXY4N7jycrd3t3e3tDc3uHS3t7f3uDa3dnb2+Db19ze29zd39rW3N3f4d7j3drY193Y2dzd397h3d7a2OLh3uDb0d3h3djZ3Nvc4t3Y3tje3tnZ2tzd19Xd0dbh29je3N7e3dvb28rd29bZ4eDU29vC297e1dzf3t3g29rg3tzSzN/a19/d39zb3tvX1tnY29Te39/b2+Db4d3b3dDS29jW3d7V29nY0tzb4t7b1dne29zb3d7e2t/f2d3c3uDf3cnQ1t3c2djb3eDh3uHY3dnV2tbe4OHb2uDZ3uPf1eDj3N7U19jb0tze3tni3djY3N3f4+Pe2N7e0t7WzNna0trb2tXX293Z19ve2tjV4d3e3tjW29ve3d7h3tjfz9Xf2t3d3dvX3tzV29/Y2t7S3ODd2tjg3dve2NvZ1dvc39/Sjtbb4OHc29vc4tvY3tPd0tXfz9nb3Nu74tzZ3d/R2t7f29vY3Nzb3N7b3tza0cjh4OLe4d7Z3tvW3tnS1N7b2OLT193b3dXb3OHY1tve2NjY2Nrd39/Z3tvev8vg3tXe1N3i1sLe3tvg4Nrc293b1Njb2tza1+Hb2dvU3tjh4Nzf3uDe2Nrf1d/h3+Tg3Njf3tzc3tza2Nja29na3+Pe3Nve29vb4dvc2t3YyeHd2+Dh1Nvd293g297e3N3i29vd3tzd3Nvg3tzd3d7i4NPb1dnc09vi2dvc297d29zd0q/e0t3c3d3e2t/d0tvd3t7d3t3e2Njd4N/d2eHh3d7c4dbb293a2tjZ5djX3tvb3d7b3uHe4N7Y4dDP2t3a3+Lb2+Df4NfY3dnS4dPG1eDj3t7Kzd3e2trd29zb397d4dfZ4eLc2+DTu+Hb3tjexdvg4dbO3OHY2N7c293c3OHXsNDG2d7e3t/a297X2NbL4dzb2tjb09jh2d/i1cvezdDh2tfX3dfg1dja3NXb3dvV19rd39zd2c7b2Njd3tvb19jZ4d7Y3tTY2dLU29vT4N7e3t7e2tva4d/c3tXY1tve29vW29/f3t7P297h29nY3eDh29vYzNzj2NzV1N3d3NXj287d2dTb2dvd3tzj1c7e2tre1dbW2N7Y3d/a2d/A0t3h39fS1dvX2t7h39zd3djd1tje4OHd2+Hf2dTc3t/C2+Di4dvb2NvY09Xe2N7a3ODd3OHd29vb2d7h2dvV3t7d29Pf4eHd3dre3tvf3Nnd29vf29TJ3sDV4Njb2Nva2dXSzNngzNjY3d7b3eHf4OPa2d7b3d3d29vc29vU39/a3N/e3Mzd39vd293b19vbzdbb29vS4Nzb3tnX1NvZ4Nvb4tze4d7e4N7d297e2dXe2dzc3trb4d/f3NzczN/e2t7f39Lb297c3dre4dfd3dve3trR4tjbwtne29/g3MzV19Db2tfa3+Hc3uDa2N7c1t7e3c3a39ja4Nve2djT397Y3d7V1ODS1N7Z2Nbb3dna29jf396/u+DZ1tva3djc1Nve3tzc4dze3tfe2trQ2MrT4d7e3tre3tzd3t/b4+DR2tvd2tnc3Njc3OHf0tvb3ODe197c09zj3dve0t7hscjd4d7b2tDc193e2dvZ4Nzb2dvb1tve297a3Nvg2t7S3d3d2Nvbz9fd3N7Z19re293h297a4cvH4dzb29/e3tnV2dzb4OLf4djb1t3W2N/j28/b4dve3tvf297j3d7h29va3t3W2d7h3Nzc2tzb2N/g4t3Y2tna397e3dje29vb2NnY0dLb0t/b3trW29jc2d7e3Nfb29zf3tPe3N7a3tDV2tnY1dvb2t/b3uHe2drb1d/b29LY397b29ze3d7W1dvf3t3b3+Db3dna2Nvc5d3c29ve29ze29ve29jN3eHX2Njb2t3b297T2dnc3Nza3tvc4drY1Njg4d3T093b39/c2tLT2d7g3t7e2NjZ29jd3tve29vb2N7e3t7b2+LCy9/h3tzZ3Nrb397e2N7e2ODe3tvZ2+HV0OPg29vc3uHe3+Dj2tvb3d3V29fY39LM393f4N7b297e3t7c2Mzf3tnZ3N7e2Mff297f3N/Z1dXW3dja29va2tjSzN7e3NbY29vb3N7b3N/c2t3b28K1293b2d3e3+Pi2dvZ1dre27DF3srM3uLc293f3d/Y2N3a3t7e3tze39bM4sjG4drd4ODc4d/b3eHe4NXb3uDhycDh4N7Y4d7d4Njc2t/e49jZ393j4tzcx7fe29vjx8nh09jX29XT3dzj3tHG4+Pe3dfg29jU297e2tfa29nYy9Pd0tze49/c2+Le3NjI4eLCzODcu8ng2OPh3dPV3tfV4ePf3+Dh4d7e3uXR09bb4d3Vzd/f3Nvd3NbJ4N7a3OHj3tjV2+Lc1tvX0tfV0t7d2Nra197d4N7b1d7b193Qy93i3tjZ1tLf3N7c3tvb0tze3tvd2tbe197c0trV29nh3NrX2diy4Nnc3dzd3tO929fY39G44t7b49/Y0Nrb3uHe29nd4dvf3tvV4drY3Nfe2dPJ4OPf2N7b3dbh4drc2d7e39Xb49XM3tve3ca3493d1dPa297f3tve3tvh3+Ph3djZ3N7d39ve2N7e1dbV3d3b29nX1tLY3uHg29rc29rY4t7b17jW3tve3Nvh19LY3N3d29Xc3Nve3djhztqp2Nvb1szT3Nfg3tve3tfZ29/e2eLN2ePY19ve1N3e29va3d7V3d3a3d/e3+He3t7f3tja2Nrd3sPS297Y3tzc3tjc3tvV397X2N/e3t7d19fc29za2tve297f2OPf2Nff2NTe2t7Z4eDi2Nzg2t7e3uHT2t7Y197h393d497a38Hb3dzf0sPh3d7e4tve2b3e3+Dc4dzc3+Dd297e2dze2d3Z3NXb29vg3t/T2Nrc2tvX2OLe2OLextXe4Nzb3dnY3+Hg4s/b3trO29/e3Nbb1tjc29XU3t/c29/a2eHXzdfh39vf393c3tK7z+DY29/T197e2dXe4eDh29zb297c39zh3dvi3uHj2Nfg3tvXzuPg4t7c4dne3dvf3dzZ4d7d3drb3Nrb2tzd1d3e2Nrgzcnb3dfZ3Nvb29re397h3tXa3t/c4N3a37zd2tvf3dXa4drX3tvY297f3t7e1Nvb3uHe3ODe4OPd0dLa297c3szJ4dvc3Nzd4+HZ4N7e29nc3t7f3t3e48i/4ePY2dzf3t3e3N3c3uHa297e2t/f3t/c3N7d29rb1NPY2+Df2NnK2NvY1d/e09fb19ze3d7Z4cbU3trY2drd3tbY1Nvb2dzd1d7a3NrV3t7e4tLO39ff2t/Y3dva3t/Y2NXb2+De3dje2tzh3d7h3tvg5eDa2OPf2Nrc3Mze1dPb3Nrb4dvh3tvc0trY4Nzh4dvb4Nnh3dve2d7Y3djc3t7e2+bh29fb29/b2eO11uHf3t3b3dXd3N7c073e3NvYxNna3bW+493W2Nvf29jU3Nvi29jG2Nzb3d3Z2t3d2d3b2+Pa1Nnf3t7X2dnf3s/e3N3j3tjY39rh1Njg3NjW2N/Y193g39vd3di6397e3t7b4N3c393b19nV3d/e29ve3ODe4uHc3t/h3dXV29Xb4OHe1t3Y2+Df3uPe39vZ4NzV0uDb2Nvg29vc2d7e2s3b4tzd3sbe2t7c2eHh2d7g49/d3NvW2N7b29vT197b1N7d3dre3dre1t63zeHV2ODc3t7c3d7j29ve29vb3tjc2tvY3dze3ODZ2Njh4d7c3eHf2Nri393e297b3b3G39/f3t3f3Nvg1dXczdvb1tTh2dba2drb193b3uHh3N7b2Nze3dvY493Y3tzd3N7b197h3t7V1eHd3tzZ3sPY2tvj4N7f1tnj09bh29vb3t7Z3tzc293Y2eDc2d7i3trku9Lj4d3X39vX3t/e3uPh2d7i5OHMyt3d3t/X1t/Cx9XazN7c3OTf4NjVz9/I3tjY29LX1tzZ2dLb2NXb4eLb2uHb297e29jY3eLh1d3k3t/X1Nvd3trb2tzg49/RzdfS3ODe3d3h3tnb2uHc2tnW1d3U1uHb3N3e3tve3d7d29rh3N/Z4Nza2tLb3uHg3OHg3t/c2dfT3t/e39vb28/d4dLP2Nzd29za3OPM2+PU4Nfau9Pd3Nvdz9be2NfY1dvh3tvY4dfV3t7h29fY0ubf3eDb2dDW397jyNjh49vSz8ze2eHe393Q2Njc3Nzb3dnT3djV4eHkxcre3dTd3tnV1uHb2tnc4N7b2+Lf3uHYy9/d3Nfd3tni2tDf393b4cbX2+TW29zd2tjb29jYvdLa1dHS197Z29zZ2t7c2qy63eDW2dbZ2dnh3Nvb3NvU2djY4d3d29/e3tvP3+Hb3NTV2+Df39re5KrE49zc3trd2uDb2t3e3+PCyePb29vd2tnX3t7a3tzY2dje4+Hf4OHI39fb09zh2tva1tbe3tnd2tvb3tjb1N7Z2+G709imxOPe4drT3djZ3t7b29vgz9fd09nY3Nvc1tza3d7X3Nvd2N7h4OLe3NvU1czY3t3h3djY3N/d297iz8/f29vY0tva3tvb4eHd2dva29vZ2Njh29ve293b3trOydzg3Njd29jc49vW2c7h3N/Z29jb18ncydTe09nd3tze2M/c2wAAAAEAAEAXAAAACAAAAAAAAAAAAAAAgAAAAIAACADe29jh29ve29vZ29jV2N/c4dbc39ra3+Df397b3sLS4NzZccPl2eDa297T29vZvNvd4OHf2d7c3t/e3d3e29vd29nh29nb3t3Z193b29TY297h19ja3dvb3N7Tu9Te29rg3t/f3trbz9jh3tzb3dve4afa29va29nf3tjV3rbZ39vb3tzb4NjM09nZ3N/e2tfc3d/h29vd4Nve39vT39za48rM2Nvb4tve3tfc3dPe3uHXxMrW3NvL09ve2drd28vb3t7e3t/h3tPY2Nvd3dfa3tre2Nvc29Lh4+Pk3t7g4N7Z2d7S2tjc4d/c3tze2ODG3NzY3tfb39/e3NbVxtzg3t/f2dbe3M/A29jV2eHh29vY29rd3d3d3N/a2t3e4ODIydnX2OPg39va19vZ297d49LDsN7d4cbQ197i2Nvb2t7d3Nbe4dze2t3e4Nva1tni0tze293e293e4d7f2tvg3t7bsbTj2dnf4dzg3tne3NXZ1tnb3t3e39/e29ne3t3f3d7f3uDb3t7a3Nvb3t7g2+Df3NLZ193e3t7e4uDY3sPZ2t/kr9Dh3tvb3N7b4N7b3Nvg2eHa4ePY3uTX3tvi4N3e197k3tze3uHY09ze29je2N/e3tTW3tvb3tvb2+De3+GvzePe2Nrg1dfh3t3R2+Dd2+He2N3j29vc3+HY09rd2tvZ4NnZ2NHf29nc3dfc3t/cxNXe49fc3tjf5N3X3Nzc3+Cr0t/f4N/Y28zX3N/d3t7Wzdze2Mjh3d/Y2d/a297e2tng39/h397Y3OLb2ODY3uDdzNrh3tDg2t/f393d3d3Xz+HZ29rZ0t3f293S29/e2Nvh3brW397a3djV1N3b3t3X29zR0t7b2t3e4N/f29fj3tLQ2t7e1dXY4M/Y2+Lc4+bg29ne3tTbztjd4N/V1dXP4tvY0tje2dfc3dHd3dvb1uHd2dzY3d7e3uDf4N3V29Le3t3b3t3g297h3trV4dvW393Zz+Dc29vc4t/X2NvV2OXextnW2tvc2NvU3eHh3NvZ3bvX4MvY3N3a3dTe2OHg29rh39nhbb/k3trY3eLI197b3tra2dje3t7d19jM3t/b3t3P0uHa29nb4OHY2tvd2uHd4d7c293e397c19PV1uDd3tva3eHe3t7Y2NC/2t3dzdfZ0t3b3Nrf3tTQ3c/D1dTS1dnZ3t3c29zY2dzb29ze4dbc2trP0dXd397b09TY4ODS1tnB2+Pd2tTf28/c2N3a0Nng4tzh4NrQ3Nvf29/e2dLXz9/d293c3tLe4Nvc29zb4dzf3dbY4OTf29PV1r/h2tTd197f2dfWy7ra4b3M1dvb2t7hvczh19jb2bPF3t7b1OHb29vd39jb3Nnj39jg4dnd3d3e4NXa3d3T2d3a4MvX293d3dTX3trP3eHJ2+Hd19Lb3tnd2dvb397i2Nva3NzY4N7a29/e3tvb2Nrb3eDc2tXb3Nzb4dzczt3Y1d/X2N7e29bc29nax9nbstjY3N/Y3N+/y97b1Nfb27Dd39bS3tvY3N7d3t/b29vb3ODe3eDg5OHe2N/e3sLb2d7e4eLh39zY1eDe3dzd397X3OHSydXfytjh19ve3t6D2N7Z29HV3tbb4d7b2Mne3d3e3dXb297c397X0dXe3tXb2Nng4N/Z2N/d293c3Nfg297b39rR3d3j4t7V3d7h0t3g2N3f2Nne3t3d1tfd2tvb3dngzNLd39vO4N3c09vc293d3N7f2tjZ29ne4ePgz+PVv9ni4Nva1Nnc297W3tXd2dPb0tXe3dvY0d3f3tjc39ve3NvX2N7a3szU293b1d/X3eDU3uHY2Nze26/I5N7c2N7e2s/Z2ODe2tnb2t/g19vb29jb3uDh3uLY2t3h2Nze2Nva2Nvd2dfh197c4d/Y3uHf293e29zd293h29vT4N/S3Nrf1N7W3N/Y2tjd4dvb2tbe4djU3tHS393i3Nve0tjg4eDMzN7Y2OPg4dvY2Nrj1tnc2tfb3dzY1sjY1NXe3d7T29ve4Nrc3t3e29/b3dnb4t7a1d7e3dvd4dPW4dre3Nvc3Nja4eHd3uHP0NvW4eDg3N7b3t7e4N7h4N/U29ve4dze293h39zY4ODe2Nze2d7c4a3X39va0t7gztrZ293h3tfe3N7d3uHh497X297W2dLb2+De3uHZ0N3SweTl3d7b0Nrg2+HZ3tze3t3e2Nzh4NrY393h4OHLquHh3t7i297a3tzf4Nva3dXE29fe4dbb3tvY3N7e2trZ3tPZ4N7h2eLb4N/V2+LY29vg3N7Uz+Hh3NjYzd3f2d3WydPj3t3G2tnh29rY2+De397d2OPY2d3a2d/b2Mnj4N/e08LZ1d/d2uDf1NLe2N3V2Njb3Nrd3tve4OHd2tvb4t/h3ODb3N7c3tve3tXY4NnN3uTgz9rb097X3d7hzdrb29vh4Nve3+He19vQ0d7b2+Hd2tve3tHS4ODY3tfb3N3c3uPe2t/k49/c297f397g4d7f2NPc2Njb19ne2Nne3N7SxODd3t7c3ODb2NvS3NLb2Njgydje3N3Zv9re4ODV3N7h4djS5Nnc2tzT1Nfb2tbb3t7h397Y3dvg3dG/293c3t/W0d7R497b5NTG4Nve4NPd19jb1trg39jUsuHa3d7e3dnP1d3d3trP3d7Y3eLZ2+DhvtXU4eDY3t/b193b2t7f2N/e4Nvb2t7b2Nje1tvY1uDa29zd3tjP39vc3tPf4dzf29zf3Nvc4d3e2tvc3tvb4dje3t3g4d7Yus3b293e3tbY3dne3t7d2Nnb4Nze0dXb2Nvd49fP3dXZ19zW2d7a4MLFz9ve3c/Y3tbU3dvS3uDezMng2+Df2drX3dna297b2Nfa3t3f2t3Y1Nva0tra29jV2Nnf2d7e3d3h3N/e3+Le3tvY2tzh1dXe29vg4d7e1tve4dze4dvh3djh293dzOHf4dzd3OHJ2ePd3dve2t3e2+Hdz97d3OHb3dvM3t7e2dba19vh4dza2NPf19rY393V1dXb3t3c3tfW3djY3Nvb3d/b2Nvc393b3drb2NvV193b4NzR1dvf3d7Z3tve3tzh3d7b4NzY2d7b39PT5eDdzrze2d7d3drg1OHg293Vwdjh2+Hg3eLh393i4N7S1d3a3uHa29re4dzg3NjY29/b3dbe4d3d39rB3uHOyuDc3eHZ09/Y3d7f4NHX3dvY2uHZ2dvh2dvb2N/Y19LZ3trd3t7e2szc29nM29/e4eHe2N3f3uDd2drY297e29jf4uHYtOLb3t7e1Nvh4N/b3t7H2driyNze3t7b3uHj4o9p49Df3ODd3t/f3t/j3tve3Nvb1d/f3Nzg3Nzh3NfK2t3e29/f3t7Vz9Tf2tnf3t7Y1d7b3ODf4dze3tPX1Nzg29rZ3d3g2t/h3tfd3t7h3t3c3tvb0eLc3N7Y2d7i3dvg3Nvf2s3Y4dvF297h4Nvc3eLe3eLFydLV2drd0tvYeHLe197c4OHZ3OHg3N3czdjc3N/P39C8297Y4N3c0tvb2+He1Nfe3tLV3d7g297jz9vc4ODe2N3d3tjV3drY4szN2d7b3uDc3NTc3+TZ3uDV2ODd3LVh0t7Y293Y2+DY19ve2N/XwNXj3N/d2N7e3+Hc2tfb3eayy9ve19ve2MzW29rh2dve5NfV3t7b29je09Lb3N7c09XV3tzd4NnPz+HV29zT39rh2N3e2tjb296/1+Lc397b29Xe29PW297Z29eo19jc397h2dbfwsfe2tjd3tzjxpTQ3t7b3dve4N7b4uDa3t/e3d3g3Nnb3eLg3N7e3NXY3NzX3uLd3t3f39jh3tvY29jf4d7c2NvS19zhxtje3t7X3uDc3NvV0NPUydzW19vZ2Nrc29rW3d7b3N/h2NXe2NPH1tfY2djZ39/c29Xdz93b4dze49vGzt7d39zS1uPKl9jY197b29/f3dzf39va3tzY0uPh3d7c2Nre3uDezdXe29nW397W3tvb2N7b29zk297e397a297e4OPX39/a29vd3dPa2djTzdXP4dPb297b297e3N7Y3NfZ2uHc29zY29zb2N3c3d7b3N3e19vQztnS4dzb1ebU3N3e1djd2dOY1NXY3tjh3tvc29zU2t7d3t7b29vf3dve3t7Y29va2tze4dnb3trT2+Lh39XZ4tre3dzj29vg3tve2tvX3dzW2+He19vb4MzR3tzZ3Nvb2tvX2dvb2NTjzNDf4dvc2dXW3uHe3uLe29fZ29zS2MzP3Nve2tK35rbV2t3Z3t7d2+jT0t/g3tzg29zd3Nvb3tvg3NzV48vL29/Y197b39vZ1tre497Z4d7e39/f3tvg3tvg3ODb3t7e3drWytjb39fg3tzd1djY2d7h3MvY297a29jb297e28zY3drd397e2tjf3Nvd3Nvc3NHe3+Di0tjg4t7b3Nje3tvZ4eHc29/c4Nbb29fh3M/a3d/b293c29Xd29Di0tTb3NnU2t7d4dfR3tzZ39Xd3t7b297W2tve3dve3uHcxdvg2N3b2dbW4dvU2tXcz93Y3+HXyOHeyuDP1eHT1d3e0N7e2t7h39zc4dzY4Nrc3N7e297b3d3d2NXa3tzf4Nvb3dXK0dvSzuHd3trd19/c0djh3tnS4djV3N/YyeHd3t3f4t3e3Nva2tfd2NDZ0d3f2N7c3t/f2d7h097d29vX2Nzc3djY1dfa2NnS097g3d3Y2uDh29/Q0t7h4dbb19ze293Y38nD29rb297c1NvY1t7Y1dnb29vb4NLW29fY4djg1dbZ4NXY4Ofj0d/g3Njb4dvg1srb4bHQ4d7Z3d7e3Nvd2d3h29va2tPS1dna2Nvb4NnZ4d3b2Nrb1dveydje29vb0t7a29ja3tjX4N3e3t291dXX3+Dc3uDY3tHe4N7d097e0dHe2Nvb3tve4dnZ29rU4eHd2tve0tTf3dff29vZ297g3+LSzdjY2dLf3tvh2N3Z2MDL2dvY2N3c4tzb49vc39/e3NXd3tvY1dzb2N/a3t/X19vi1t7R2NfY09bY2tje3NfZ3tvd4dHb2dze3tjS0d7e2Nvc3tvW2dzb2NvY297i29Lg3dvg39HR49vb3d/e3eHY1t3j4uTb3d7d3d3h3trd29nZ29vb1tzf1t3c2t7h09Da2N3d3djX39zi4N7a3t7bwtXe3tnZ29/a3Nze3Nvb3uPg2dzW2t3h0tve29zd0tvb3uHPtN/V3Nfb2tre4Mze3t/c29ve2tzYzdvP1drb293d29vfydXh3N7f3tvb2Nnb3rPPpc7d3N3e3Nzd09vY3uPY1Nve293V3eHZ2tje1sza4dze29jc3tvc397g3t7T2dne4d7Z29rY3dvd297b4dSt1djc3uHMyt7j3dvb4d7e2N3f3tvLrdLh4t7f1eDb1tzX3d3i4Nza39nf3NvZ2djh3uHV09jb3t3e3tzU4ODepcSq1Njb297e1dze393Z4drc29vc2Nbd2Nre4NzU2OHZ3uLb2dva4ODd1dvY1tDY39/Y4dXV2+Hi2tzW2N7b2dzf3d3Y3cfH4OHe4t7f2+HP297e29nV3tvV3tvc29nb2trb5MDF3dbg3Nzb29PZ2c7ZytLP1dvb3tjY2t2/09/c1OHe3tjZ3M7V3d7b3drc3NrVz9bc1t3e4dvb3tTP39PZ48Cy19rb29/V29jQ3t3d4NvdztHfzcLh1dTa29rf1Nrg293V0N7h4OHe3N7f3tbS19/h4dve2sLg29zY0dPY39fdz8zb1dve2Nbc2dvYzNXT2N3c2dfW29ff4dLY3OHe3N/c3tvd2dje2dPb49zZ29jY2ODY3Nzb4dve2NXZ2+DhvrHe39jb397a4OPf3N3d39/f1djS0d7YtNvY29zb2+HZ397Z3dXR3uHd3ODe2dXe2+Ph3t3Z29vb3tjZ1Nbf2MzZ3trY3tXZ2tjQ3tnW29jf297Q3Nfb29be39bX2+Hb2Nvm3Nzh3tzZ19/h3t3d397e4d/X2t7d29/g4d/b293e5tvU2t7f4eDd4NLh39zT4N/b3NXa3tja197b4OHh3tTe497g29Le29vX0Nzf39rY3ePI1d7c0tTe2N7c29nd3t3Y29ve197c29va3N7e29rf3Mrd3NrY3uHe2N7X297f2ILF3tre3N7h4dfd3N7d2N/c39/h4eDe3t7e3t3a09jm3cbY393i3dze3d7e3czc1t7g3tvW3Nzb4eDe4ODg29jd0dTc4N7e19jM1Nje2t7e28zR3d7R2d/e3t7ayODe4OHb2eLj39zd3tnd2N3e3N/a39nd3tzh2+Dg3tnb4ufRbsrb2t7Y2t7e4N3d3eDa093e3djf4N7b3tzX2+O8zuDc2uHg1c/Y2tjb3tjZ2uHOuuHc3tjF2uDf4d3f4eHi4Nvf1trb2N7EytjY1dnc4OPJ3tjf0d7i39nb3OO9s97Mvt7h2Nbe3d3h3djZ2t7c3tvc3dve3tze193j29fb3t7f29rX2dvb39vh4d7b2NfU2+Hb1tXb3uHh3tnd3+He2+Hf29vU2tjZ3t7e2t3d3t/T3d3b29jj3uDe3uHh3uGp1N7X3dnc3NzY2OPixc7j1tvf2+Db3L/a3tvd4MzBz9i/2Nrh2Mzc2dvb3t7d3NPc2N3g3uDb29vd3tvi3t3h4N7Y39W738zb2OHk39/V1dfV2sncz9LV2tXV293d3dzh4uDh1tfa3d7f393h5ODe3tnf4Nba3eLV2dzZ3tjg4NHX3tLb3N7X4NvY4ePf297V2uHc3trZ29nU19jT397i3uHb3tvN097d3t7d2t3Y2+Ha1djc29/b2t3b3tjh3+Dh3dnc4efRv9ve393d4dzd3tvY2eDe1dPW3djb397e3t7d4NvV2Nze29ff4t7f4Nzb4+Hi0s/b2uLX2OHc1tjc3uHe2tvc2tvg49/W3t7b29PX49zWydvT3NjU29vb28nd297e3s/O3dnb29rT3Nrg3tTJr+Te39Of29vb297c1NLb3N7f3drV3t7e3tzc2tzX2trc3d3Y2eDe3dvb3N/b4N/d3eDb3Nzc3dzf3N7i3dzh3NjY19zf4eDg4d3d2Nvf3tDb3N/g29Xfztba29jh3N7e29fT1tfc3dvd29jb2tvb4eDb3t7d2Njb3N/c29ff1tPX3dvY2rXb297i1tjGyN7e3d3d3eDYz9vY29vh3Nrc09rc3eHb4d3d3tza29ve2tvP0tbd3dfe3NXf2dnf39TS3N3d3N7e29TW3tvZ497U1tjZ2tzf39vJ29rc2ODd3eDX19Tb3tje2dra1eDb2Nje3t/c3NnY3dvg3tXe2dra4NzZ3tzg5Nfc39/b3dfM4dvW2NvV297b3djW3d7b3t3L3N3f3d7Y1N7b29zW4ODb3d/e3t/c297h3uTZ4b/bx9DY4d/d2Nvb2NvZ1uPh29Lb3Nbd2+Hg3Nje3d7h4uHf4NXY4uHb397c3N7b3d7X193X3tzg1dDb293U3t7e3dra2Nve3N7Sw9bW3N7b2Njd0t3d2tbZ3djc2tja19vW3Nzb2Nvh3sy/5eDb3t3b29zg4t7e4Nre3N/KyeDZtdfe1c3e1+PQz+Te2N3f5d3h2tje2dfg4dnf3tjb4eXg3t3f29iuzN/c2+De19zb3N7b29jS49jV2dzd39je2d/a29na29jc29va3t7d29/L197d3tfW3dnb2t7i3tXb3+De2tvc3t7f1dzP3t3W3t7c39vd3eHe3d3a4cvG2dXf4Nvb4trY3c7T3Nrd39rj493e39rb1+Df3dXX39/e3tjT2NvY2L++4dze17fV3trd297d29nb29rb2dzg2tvX3tvY2NvY29za3+PZ3d7e3t7e397b1tfW3tzh3dve3uCf1dzg2ODb2d3g2MDX4dvc3uDc4eHh4OLZ29/Y4ePc3trb1t7I0t7Y0svd2d3b2dve397a3Nfb2N7WlePW3uHb2E6249vY4dnV4eHYzNXe4ODM2dza3tvY3dfV3N/d3N3c3dnd3czd3tvY3NXM2tTa3dDY3Nnd2djb3tnN3t7h3qrV2Nzb3eDg3d3b3tXa4Nve3tje4N7c2drf3NrX2Obh2NfY3Njb29PU29ng29bd19vb1dnf2tXP29re1sre3NvgpdXd3tjV4d3e4eHY2NzQy6Xg4d3h297b3dnY3uDb3t3e39/e29vZ4N3b2dPV09zhwcfc3NTd39vf18nh3uLe4uDY2tve19rb2OPg3N3Y293Tz93f397d2Nvc3NXX4Njc3OPd3NrY39jV0uHh2N3b3dXW1tvc2dza3tvS3tXb3tzj3t7h0s3i3t3i3OPTyaiy2ODa2dvf3dvb3eDc3tTe3d7f3Nvb19jW3dve2tne3tvZ1tzh297c2tnV1dTb4d3b2tva29jY2dne39/j2tfV29bb3t3f2N7b3dvh3dne3d7by9jd2NHe4d7c2dfI4N7Z39vd1t3e3Nzh4N3g3t3c09jc29rc4dvd29ve4OHczszh2dva1s/b19PY2NXe0szE3tjZ19PS0tvc3Nfb28m719Lf4d/e19jb393Z29fZ3N7e397c397V2NnV2eDb2Nbb3uDT29nU2t/a3d7f3d7Y3NOs0t3d2+De4d3V3uPe1cnb49zd3s/Y4Mnb4eDb3dnb38nW4dbX1dve3t7W293b297d3dnY0tza2uPb2dzPxqjR29rV4bOv297a1d/hu7Xh4t3d39jb0dva0dXj3Njf4N/d3ODY3Nvd2tHi3Nvb3t7e29fU1dne29zc3uDgztLj4d3U2OHe3dvb393f0szd2N/e29vhzdPQuuTP1tnM3uHj4t3c397O2N7b0tDG4Nvc39fc293c3tvY3NvV3uHe2bvg3uHe4Nnb3d/j3NzBxeG41d7g3dOo3NbX1d3Y3+Dg3t3j2tzX197Z3NzY29jK1OPc4NzY1+De397d3tvS29vd3tXV29nf3tfa2+G6k+LQt9/d3uHY2tTU2NPc29bg4ODj4NnY3t/c4dfP1+DV19zW3tje4d/ezMHh2Nfc4d7b3t3e2tbe29Hc4d7b2tTa2s3a397b0t3j3tXay9Xg3dng1t3e3t7b2+De2tvV4NLd4t/Z2ODc3N/e4t3e2Nvf2uDb1tzW3tvd4dXb0tTL3tLN3Nvd3N7Y3tTV4OHg2d7e1cnh2M/b2dvb0tbc2dbT5Nnb4NjY2NjV2Nvc2tLe0dHa2t3YztzY3c/S297a097e2d3b1tjY297X29za297f4OHV2+Hd5OPb2N7e3drf283W3tve2dva3t/R29vb3d7g3trb4t7a39za1N7W19/Y29/Z08jf4eDg4tvc4Njc3d3CkuDa4d7b2+HY2dvZ3t7f49rd3Nnb29zW287d0dfb2Nve29vdzdLa1dLb3trd2OHV1dve1dzb3NXb4eHd4tbb0Lfe4dvb49rb2uLe4Nnb2N/h29ze19vZ1rzJ3N7f2tfh4c7h2NrZ4NnW3ePbz9zW2NjVxODf3t/Y397g2+Dg2NvS3sad3t7bvtvc3OHe3t3Z3tna2N7h1cTcz9ngz9Xb3tTV19PY19fh3tja1cXc39XU397b4N7c4ODj3uDZ2tnW0N3ey8za39vc4NfV19fd4uHf3Nre3t3ez9Tb29ri4Njf4cfE4crX3N7fzNze4tzd4d3e3tzZ4drd4d/e4eDc3N3Z0qnf4d+t3dzL3d3c2NrT3Nnh3tbX1Mza2+HY29rY1dfa2d7e3tvM4dLT09bY2d7Z3d/Y1d7g4NbN4d7e3t7Y3NvMzuPj3tvY1dPh297e2drb3N7Z2N7b0dvg297c4tPV29vjt87ez9qDv+Xb3N3c29va29jS197d5d7Y0djd4MbI5Nnd2N3U1dXf3tzY49XX1NTh2M/V187U4ODd3+Le2N3c3Nvd2NXd39Xg3OHg3dzYt9LT2tze3tvY4N/h29fY3t3gz9zg1NnJ3t3d2t3Z0dvV4tvb5HKq3Obh29/S09zb297i2N/Y3OPe29jb3t7Z29vV2dDR2+Sir9jW4NjMu8Hc3+Lj1dLc3dvc3tvb3djR1OHb0dXe0Nq7ytrd3NrY2t/bzd7c297Y29rc29/e3tnG3eHa3NrT5LS/397b29vSy9TV2dnW4eLgydbh4dve3tLL2tLYstza06Db4N7g39Xf4uPb3OHX3uLb3NXf3tvV39Te4eHd3rvO49jS1sa5wdvh39vg4Nne29jZ3NvY293c3dvkvM3d25m94tvc2t7e39bD3s7V297c3dvh297d2+Lf4N7ey7vZwLva2d7b2dvT1Nvb39LZ3+La2eLe4OHd1sLe29vh3+HVn9vg2dvb1eDb3t/b383T393e0N3P19be2tje29rc4t/a19DZx7rb4dzb3N7i4dze2N3W3d/e2t7X1t3d39vJ2N3e3t7d3d/b3tzb29Pa2eDh3tvd4dvh1Njg39/b1tfh2dLb39nd4dXd39/ks73l4NzV3t7b3N3b3uDe4Nre39zjy9Xa4d7b2Nvc3drX2tze3N7b39PT0uHc1dvl2NnZ3N3g0drc2N/f3ODY29Xb2djZ4OHc3qbQ3tvP3uDj3Njb4N7V1dff3tvb2N3Z2tvg4eLb297e1dza3OHc3t/d3Njb297e393dzNXj2uHZ2+Lh29jX2N7a29bU2t3e2+De3N7X1djd2tvh297d3dvb3+Hd3tjb3NjP3tjY39ve29je2N/h3dvf2uHk397f2NK71Nbg2t/Vu+Dc3djb3dvf3+HS29ve3NvZ29fO0t7d3d3e29ba3tvd4Nrg3djb3tvc3d/X2tLT0+HV1uLe29vb3N3h283b39vQ2Nzd29vW2NnZ2Nfj2Nng29ng3NvV1tvX1eHb4drb097hyNLd1eHb2+Dh2d/b2t3Z2bPd3dvV19Tg1d3XzuLm393d4dvh5M/S3dbh297Z1d/e1M/V397b2t/d2+Hf19jY3d3c2N7dzt7h39/czbTVy9/f29vezszb3+PZwOHd29Ph3NXZ3t3f3tjY4eHe2tjZ19jd0dXd2tfH4Nzf4tvZ3t7d297a397d3OPb2tzJ297Zmd7e3dnex9jY19jZ3N7d3trh0arQsszR4dve2dDY2Nvb3ODe3tne3d7c2+O0yNjc5OPS3tfX3tjb3trf3dvS3tvb2N3b29zj0s7h2NvY3uLU3t/Y4M7G29zc3N3f2Nbb2N/Z4uPe3tHe4dvh3uHMz97g3t7b3dnd297Y3sLV39/f297e3djb1czX3eLd3uDd3uHYns+0yODe3tvc083V29vd4d7X2Nzb2+Dg283a3d/c4NjV2eHe3t/d3NrS2N3Y4N7X3eHd29vR1tvg293h4N3R2tvh1cvd4tzb0uHb29ze3t3V29/YzODd3sXg3dva3uDd29zd2s3j4NXd1Njb3Nne2Nva3cDLuNja2N/e3dzRr+Hi2dTg4N/J1dvc1dnb293a4M/P3tfN3N/h4d7b2tnf297i3tzb3trhztPH2OPe4dvb3tvY2tva2OLb3N7e3t7i4M/Z39jE4dvV2d/e29/e3NLczNLe3+DWqt3e4eLc3tvf3dre2d3e3tjg4djb2N7f2+Pg2N7Z2NvY393Y3tzM2t3Z4dzg2tfa29ve29ja293h0t3e2MvX3t/e1dXb29re3s/V19Dc29vf2tve2eDg39va3t/b4dvb4NLb4dzc3dXh2Nrg1aDb29jU3+He3t7b3dHC2Nrf5Nve39vg4trc2dXb3dzQ3OHe3t/b1t7byeXd3tzX4N7e4djZ3+Da3d3b29vZ29za3tfB4dza3t7gxsHU3d3e4dra0t/Oy+Dc3+auqOLW2OLe3dvV497W3t7Z3t7c3t7b3eHd2tzY0+LYzd7V2tfez93a3eHGxeDZ3NXb0c/T3ua2sNze29bg2t/e197d29DSxeDc3eLX1uB5w+De0NfY3uHh2tDc39nX1t7f3NvX39ba1NXc2t7b297W19/c293V4NLT4NLf3eDi3sjS28/j2dne3eHd3NzS297e3Nvi2t3b29jj3tXb2+HCwMTe3t7e39zb28Oz493i3Mba3Nze3ruj49/b0bne4d3d3t/j28Gy39vg3uDd4Z+W47nF0tne4ODY2Nvd39faz9rY3d7h4d/c4eHb29nd29rd3d7byOHYxdjc3d/e3eDd4d/h3uDb09vi4d/e3uLc2+Hh1cze4t7b4drc3uHY3dLb4N7a293c18zh3NnS3NvavNTg29ja4ebewtfG1Nva1dXa1dze293b3tze4OHVydHVm+fV197a29DO1dvY2d7b3+Dh4d/g4N3c49/e3uLb1dnb29bg4dzJ297U297b3dvi4t/g29/P29/e3tvd3dvd3t/Y0tzg4N7h2drh3NPY3+HY3ODe2M/V0d/a3t3e2N3e1tff3djb3t6V3OHd1dLb2eDT2N7b09/g0NzI4NrM2dvgyq/f3tjW2dvY3tKu1OTe3dXY297e29PV39jdf9Lc3N3exeHe3ODV3s/V3drc2N7h0d/e39jd29vc3d3R297e2tnb3d3h3tfY3rzR0sTbz9Pe3d7S19/g29fe29vY3N3c1d/e19je397d4Nvd3t/e2Nvf297e2uLIudnb2eHb2trZ2+Pe4OLezt/f39HZydzeztjc4N3fxdTc1N2fzd7e2NjX3ODh29zc1drd4d/c297c3t3b3tbb3trf3NXS3tnf4uDd397e2dPj0dba0d7S3tzZ1djY29ve0Nbe4tjUyN7b2ODe2dvZ1tjd2d7Y2+Hc2t/e2svd3du719/e3t7e3dve3t/VrOLZ4NvX1d/S2uHR2N/j28TR2dja1ubZ2tTP3N7Z1Mjb4c/b4djZ3ODb2tvJ2+Dmzsnc29fM08re29/b3N7g3t7g39rj2MLT2d/b3t3X1N7a2N/Y19Xb293b29/b3tTa3t7e3dze1eHd3uDe3dzYxt7b5cbA2Nvf0dvg1M/b4tjI2tfe29nY3NnY0tje3N7Yt8nc397b4djb0sXg2Lbbytze297h09Pd39ze19La19jextnb29vZ2t3d3Nvf3tvV3tze2NrX0tLU4N3f39vc4szY3OXb09vc4d/b1uHb2+Le297c3d3d29va3t/f3tfZ3NrR49LT3tXY2t3Vu9vc2uDd2d7f29jb393N09Pb3Nra2uHg2tjX3Nvd387V3eHc3Nvd1+Hi3s/c4d/h4djZ2eDV2Nzh4d3c29vh3N/e3dfb3tvh3Nbe4eTh297c2+Lj2Nzg4N7d1NjZ3uDU297g3t7g19vg2dnX1dTV3t7c3t7b29fV3N/Y2Nra3t3Z2dTN4N7bo9zX297f3tzVxdrY3N/f393b0tbY3OTc19/Zz9va3tvY397b397e2Njc29ve3tfZ1dLd3t/c2Nje4N/d3dXh1dXf39zb2N/f29/j2NHg29vb3N7Z39jh4d7d4d3Y3t3e3t3M3dvX2Nzb4+Hg3dnj4czO39ve397e39rY3N7W1dzJ3N7c3uDb2tjh2Nzj4tHO49rg0tbb4M7S3tHS4d/Z1tve2dTe29ve3N/Y2trd2tjb2dvZ1tXd2dzb1d3c3tvb2tra4NXP29jc3OHIvuPY28/e4t3e2dTe4d7f3M/jytXd4d/Y2LTPz9Ph3t7S4cK24tPf4d7Y2+Df1dTe29PP3trb4d7b3t7c3ODe4eHZzdHf397B193czM/j2+Lc2crc3tjY4N7b2+HZ393f3t7b2OHg3tnVzNjf4NzY2tfe3ODRt7nmzc/f2eDe0tzZ4N7e3tvh29vd1KjJ3uDb3tTV2dre3uHdmM/d0tLb3tXe1djj3dve3tfT3+HS09zb3t7c297bydvf1cze2dze3tXX29zb3uDQ1tzb197d3tja297b3d7e1dvG0+Pe3uDb3Nzd2Nvd3d7U0NvW297U0d3d4ce/ytjQzL/f3d3U3d7Y3d/g2tvV4d/kyNbh4d3e1Nvc29/e4Obh3t7c2+Dc2Nvf3tXa29ne3cnY3tvg39ze4uLe3t7S0d3P1uHh29rV29je4dve3trb2NfT1dve29Xe29za3tzb4dHT4trc4Nzf3dzV3uDi3t/b3NvY3Nvb3eHWz9bY4NvTzeHY3dzV2Nbe1eHf2NjZ2Nnj3+Lb3d7g19ze3t/izNrd4eDb5ti04Nrd1dLhz9bb297e2eDg2+He3N/b4eLV3+Db2dvd3djg3tzf3tjY4+Lb3N7Y3tva29na3N7Y4dvb4eLg3dvX39vR3tfc1tvX4NjV3d/e2+Hg4dDS3tLH4t3g3t3Y3tva293Z2+Hi3tDP29ze4d7S4tjY1OHf29vT397h4Nzf4t/b3t7f2+He2dvZ297l4eHi0tjg4tvb3uTMz9ve397Qy9Lg3NTe2NjU3eLe4dzS3tjf1trV0drE1drj3+Lg0s7f2d/b29rc09Xg2tXa2969xtve29rUw6jj3drg29zY3N3c1Njd1djU2Mza3Nva3dze2d7b3Nzh4dLf4t/a4Nzd3t7Z3dvc3dve3Nzb3tzRz+XT3d3d2djf2WO4vcLd29O1qubc2dnY29Xe4drd4NXb3t3a4cqf4tXe4uDe397e4Nzb3tje29/Zz93g29rg3sbK1Nvb3NG9yt/b2tXQ2NrS4t/W3eDXz9Ld1dvVz93e4Nzg29je3N/f1N7GzNXZ29je3d3e4N7V1t7d3eDf29rS2+Pd2t7c3d7azNirwN3Q2t7Z2+De19rM0N7b2NvY29bb2Nbb3dPd2N7e29TT2t3f3d7c2N7h3tvb3N3f1dXg59vY297b4eLc3uHYz8zV4tXB3tXa3d3b29/f4d3Y29bb3tvb28jY3tva5a3J3tjc4dne4eDe4d3g3d7c2eDf3d3g2tjP2ODf3d7e0uHd2d/R2uDe2tvd09nS4Nvd4t7d1eDU2tvc2drf3Nra2aXS4uLb3dfV3N7Z0tvb297Z0+Tb29zV0dbY3tvX3N3d0tjh1tLa2sLh4d7b1+DZz+Pc0tzY1t7YuNXg4NnS4d7b29zY38/Y4dbd3t/d4d3b2Nrd277PzL7I4uHb29/T3eHd3tXR3N7V3dvb397P0eHc197d297g3uHj3tTX3N3eq9Xe3NvX1dHb29zb3t7b2N7c39/b2M/Y3NTS4c/b4dvc3Nzd39zZvd7h3tnd29jb2t3f4tjR29Xg1tfi1aze2+He3N7d2N/e3dvZ3eDe39zb3d3bwdvOuODd3tvW4N7f1d7Z2tne0tHd3Nva3czU3dnYyePY2dfW4d7Yzc/a4dvg2NrW2czc3tvZ2tTb297e2tfc3t7c2NrZ29ff3uHM3t3e393c4dzh1d/izt3c3N+M1dfb2uDb4d7X1svV2eLe39/d39/e3t7a4dzV2ePe1d/h3tjI5t3H3Nrc2N/b2eDd3t3i29vd4dre3t7d3d7b3t7a3tnb2t7b3dviyrbC39bS3tna49na3djZ2dvb3dXc29rY3NjX293Y2dve29Xe09vV3trf3tnd2Nze3t7e4LPZ29vc3t7V29zh0d3i1NLV3tzh3t/d29Pc4t7d3N7d3dnV2L/h297g3OHe3t7e2t3Y2+Hd3t3a09vb4NjS3N/e2+HgztDVz97i3uDm0dHb2tvf397Y3t7e3drY39ve19za2Nve09je3tjW2t3h2N7Y1NnZ2tvh2d/VzOHc3t/f4t7b1d/g2dTY2+De2uTIz9XY1d3f3tzd3t3b497b3eLg3t3X4djX3dzc3tXc3dre29fW3+G41M++3d3b2djfzc3A2N7P0tjW4d7g29jg4t3Y3M/Z29je3dza2tXb0t/e29bY3tjc2eDe297R2tvY2djb4dHX397i29jP1tjb29zb3NvY29vc2NXY3eLW1d3e3dvc39fS2dnf4N7b3N3c3+De3uHa3Nbd4dvb0uDc4eDg29ze3LXe0tDc3dvj1tzY29TM1N7g29fY3t7e2N/e2t3dztHX2OLXyeDX3t7Q2s/UzLnX3OPj4NjY3s/Z28DY0OTe1Nrh3N7e2t7d29zb4d7e3c3Qz+Ha29DY297b09fb4OHh19Lf3NLc4N3V1t3e387O3tTO4drd28/d4N/Z3dff3eDc4dzb4tjZ4NbQ18bS3NbZ2t7d29ze4Nve3t3b3dvY1dnW09Xb29vh3dnbs9XFzt7j29zY29zZ393b1d3a3eDY39bX3dbb397Y1d/e4d7h4Nre3t3i2+Dc3N7Z4NzezsDm2t/e29TV397PzuDe2MLh397a2N7WxeHg4N7c3ePY2Obc29vg4d7by+HY0tXV2Mff4N/e4N3a2NHb3Nje39zd293NyeHd0drf3NzY2dfV29vc3Nvb29bY2OPVyeDY193c2dXd2eDc3tvZ3trd3Nzg3Nzb3N7Y29ze2ODe1djZyN7f4d7b4MTZ4t7d3drh3t3d4dva3N7U2uDd3tvg297ejdbd3tvW3NvE0+Db2Nze3Nfe3N7e38/d29jY3tze3tzY29vd1Mi80NXV29nZ2dfe0tzg3t7Z2NbJ2tve4eHX1t7f297b2dfc29jX2tve3uDe39vb3tnb3tzY3t7Y2NTY1dra2+Pgydrc4ODh297T3N7b3d3b3d7Z29vd3tjS0uGU1drS2d3PyMzV29XT39/a29zZ29vd2M/Y0t3e2N3b4dLS2+LVv+DU297Z2NrP19TS3tXe4d6h3tbV3uDh39DP3+Hi2s/c2t7c19HX2N3h1Nna4N7b3d3d2uDh2dvb2uHQz97c293h4dzb3N3d4eLh1c/h3t7c4Nrc3N/Vwt7b4uHb3t7b18PN2ODf3Nzb3tXiz87Y2Nvg0NvS2dnh39ze1dvgytTh3d7Q39bZ39zg1tfb2sbSz8Td4djb297h39vb4N7d1t3f3+Pd0tvR1t7Y29ze293c1d7c2dHf4N7e4Nvb4d7Y1dbh3tvb3uHb3d7c1drY4dvV3tvb3tzX2snY3tjh29vbxM7f4NjY3tbf1dvY4N/c3dvk39vdzOHV2tjc29jP197b2dvb3uLm0tjh3t7hmszb5N7d3NfU3Nbc2dvg39TV3d7g3t/b293c29ze4tjX3Nve0tXUzODe3eHh3t3e29vf4N3e3djg497f3trd2tvez9Tf4Nzd2NvWvdvX4NTa3uDZ1tDU4N7e3Njf297c3d7h2tvb3tTl4dXb2t7h29zc3tna4OHh4N7b2eHe3N7Pqt7e29rY2Nnb1eHC293Y2Njb3t/b3d3V3dnY4ODe2t3b3t7a1d3a3N7b197Y3tnZ3tve3ePe19vf39fb19bY29zV297e2dfb3N7l18ni1djg3uPJyt3e3d7e0Nze4dLe3t/e4Nrd2dvb4NvX3N7b3N3f2tbc3d/h3uPd2tjX3djZ3N3f3uHd3trY4uHe4NvR3eHd2Nnc29zi3dje2N7e2dna3N3X1d3R1uHb2N7c3t7d29vbyt3b1tnh4NTb28Lb3t7V3N/e3eDb2uDe3NLM39rX393f3Nve29fW2djb1N7f39vb4Nvh3dvd0NLb2Nbd3tXb2djS3Nvi3tvV2d7b3Nvd3t7a39/Z3dze4N/dydDW3dzZ2Nvd4OHe4djd2dXa1t7g4dva4Nne49/V4OPc3tTX2NvS3N7e2eLd2Njc3d/j497Y3t7S3tbM2drS2tva1dfb3dnX297a2NXh3d7e2Nbb297d3uHe2N/P1d/a3d3d29fe3NXb39ja3tLc4N3a2ODd297Y29nV29zf39KO1tvg4dzb29zi29je093S1d/P2dvc27vi3Nnd39Ha3t/b29jc3Nvc3tve3NrRyOHg4t7h3tne29be2dLU3tvY4tPX3dvd1dvc4djW297Y2NjY2t3f39ne296/y+De1d7U3eLWwt7e2+Dg2tzb3dvU2Nva3NrX4dvZ29Te2OHg3N/e4N7Y2t/V3+Hf5ODc2N/e3Nze3NrY2Nrb2drf497c297b29vh29za3djJ4d3b4OHU293b3eDb3t7c3eLb293e3N3c2+De3N3d3uLg09vV2dzT2+LZ29zb3t3b3N3Sr97S3dzd3d7a393S293e3t3e3d7Y2N3g393Z4eHd3tzh1tvb3dra2Nnl2Nfe29vd3tve4d7g3tjh0M/a3drf4tvb4N/g19jd2dLh08bV4OPe3srN3d7a2t3b3Nvf3t3h19nh4tzb4NO74dve2N7F2+Dh1s7c4djY3tzb3dzc4dew0MbZ3t7e39rb3tfY1svh3Nva2NvT2OHZ3+LVy97N0OHa19fd1+DV2Nrc1dvd29XX2t3f3N3ZztvY2N3e29vX2Nnh3tje1NjZ0tTb29Pg3t7e3t7a29rh39ze1djW297b29bb39/e3s/b3uHb2djd4OHb29jM3OPY3NXU3d3c1ePbzt3Z1NvZ293e3OPVzt7a2t7V1tbY3tjd39rZ38DS3eHf19LV29fa3uHf3N3d2N3W2N7g4d3b4d/Z1Nze38Lb4OLh29vY29jT1d7Y3trc4N3c4d3b29vZ3uHZ29Xe3t3b09/h4d3d2t7e29/c2d3b29/b1MnewNXg2NvY29rZ1dLM2eDM2Njd3tvd4d/g49rZ3tvd3d3b29zb29Tf39rc397czN3f293b3dvX29vN1tvb29Lg3Nve2dfU29ng29vi3N7h3t7g3t3b3t7Z1d7Z3Nze2tvh39/c3NzM397a3t/f0tvb3tzd2t7h193d297e2tHi2NvC2d7b3+DczNXX0Nva19rf4dze4NrY3tzW3t7dzdrf2Nrg297Z2NPf3tjd3tXU4NLU3tnY1tvd2drb2N/f3r+74NnW29rd2NzU297e3Nzh3N7e197a2tDYytPh3t7e2t7e3N3e39vj4NHa293a2dzc2Nzc4d/S29vc4N7X3tzT3OPd297S3uGxyN3h3tva0NzX3d7Z29ng3NvZ29vW297b3trc2+Da3tLd3d3Y29vP193c3tnX2t7b3eHb3trhy8fh3Nvb397e2dXZ3Nvg4t/h2NvW3dbY3+Pbz9vh297e29/b3uPd3uHb29re3dbZ3uHc3Nza3NvY3+Di3dja2drf3t7d2N7b29vY2djR0tvS39ve2tbb2NzZ3t7c19vb3N/e097c3tre0NXa2djV29va39ve4d7Z2tvV39vb0tjf3tvb3N7d3tbV29/e3dvf4Nvd2drY29zl3dzb297b3N7b297b2M3d4dfY2Nva3dvb3tPZ2dzc3Nre29zh2tjU2ODh3dPT3dvf39za0tPZ3uDe3t7Y2Nnb2N3e297b29vY3t7e3tvb4sLL3+He3Nnc2tvf3t7Y3t7Y4N7e29nb4dXQ4+Db29ze4d7f4OPa29vd3dXb19jf0szf3d/g3tvb3t7e3tzYzN/e2dnc3t7Yx9/b3t/c39nV1dbd2Nrb29ra2NLM3t7c1tjb29vc3tvc39za3dvbwrXb3dvZ3d7f4+LZ29nV2t7bsMXeysze4tzb3d/d39jY3dre3t7e3N7f1sziyMbh2t3g4Nzh39vd4d7g1dve4OHJwOHg3tjh3t3g2Nza397j2Nnf3ePi3NzHt97b2+PHyeHT2Nfb1dPd3OPe0cbj497d1+Db2NTb3t7a19rb2djL093S3N7j39zb4t7c2Mjh4sLM4Ny7yeDY4+Hd09Xe19Xh49/f4OHh3t7e5dHT1tvh3dXN39/c293c1sng3trc4ePe2NXb4tzW29fS19XS3t3Y2trX3t3g3tvV3tvX3dDL3eLe2NnW0t/c3tze29vS3N7e293a1t7X3tzS2tXb2eHc2tfZ2LLg2dzd3N3e073b19jf0bji3tvj39jQ2tve4d7b2d3h29/e29Xh2tjc197Z08ng49/Y3tvd1uHh2tzZ3t7f1dvj1cze297dxrfj3d3V09rb3t/e297e2+Hf4+Hd2Nnc3t3f297Y3t7V1tXd3dvb2dfW0tje4eDb2tzb2tji3tvXuNbe297c2+HX0tjc3d3b1dzc297d2OHO2qnY29vWzNPc1+De297e19nb397Z4s3Z49jX297U3d7b29rd3tXd3drd397f4d7e3t/e2NrY2t3ew9Lb3tje3Nze2Nze29Xf3tfY397e3t3X19zb3Nra297b3t/Y49/Y19/Y1N7a3tnh4OLY3ODa3t7e4dPa3tjX3uHf3d3j3trfwdvd3N/Sw+Hd3t7i297Zvd7f4Nzh3Nzf4N3b3t7Z3N7Z3dnc1dvb2+De39PY2tza29fY4t7Y4t7G1d7g3Nvd2djf4eDiz9ve2s7b397c1tvW2Nzb1dTe39zb39rZ4dfN1+Hf29/f3dze0rvP4Njb39PX3t7Z1d7h4OHb3Nvb3tzf3OHd2+Le4ePY1+De29fO4+Di3tzh2d7d29/d3Nnh3t3d2tvc2tva3N3V3d7Y2uDNydvd19nc29vb2t7f3uHe1dre39zg3drfvN3a29/d1drh2tfe29jb3t/e3t7U29ve4d7c4N7g493R0trb3tzezMnh29zc3N3j4dng3t7b2dze3t/e3d7jyL/h49jZ3N/e3d7c3dze4drb3t7a39/e39zc3t3b2tvU09jb4N/Y2crY29jV397T19vX3N7d3tnhxtTe2tjZ2t3e1tjU29vZ3N3V3trc2tXe3t7i0s7f19/a39jd29re39jY1dvb4N7d2N7a3OHd3uHe2+Dl4NrY49/Y2tzczN7V09vc2tvh2+He29zS2tjg3OHh29vg2eHd297Z3tjd2Nze3t7b5uHb19vb39vZ47XW4d/e3dvd1d3c3tzTvd7c29jE2drdtb7j3dbY29/b2NTc2+Lb2MbY3Nvd3dna3d3Z3dvb49rU2d/e3tfZ2d/ez97c3ePe2Njf2uHU2ODc2NbY39jX3eDf293d2Lrf3t7e3tvg3dzf3dvX2dXd397b297c4N7i4dze3+Hd1dXb1dvg4d7W3djb4N/e497f29ng3NXS4NvY2+Db29zZ3t7azdvi3N3ext7a3tzZ4eHZ3uDj393c29bY3tvb29PX3tvU3t3d2t7d2t7W3rfN4dXY4Nze3tzd3uPb297b29ve2Nza29jd3N7c4NnY2OHh3tzd4d/Y2uLf3d7b3tvdvcbf39/e3d/c2+DV1dzN29vW1OHZ1trZ2tvX3dve4eHc3tvY3N7d29jj3dje3N3c3tvX3uHe3tXV4d3e3Nnew9ja2+Pg3t/W2ePT1uHb29ve3tne3Nzb3djZ4NzZ3uLe2uS70uPh3dff29fe397e4+HZ3uLk4czK3d3e39fW38LH1drM3tzc5N/g2NXP38je2Njb0tfW3NnZ0tvY1dvh4tva4dvb3t7b2Njd4uHV3eTe39fU293e2tva3ODj39HN19Lc4N7d3eHe2dva4dza2dbV3dTW4dvc3d7e297d3t3b2uHc39ng3Nra0tve4eDc4eDe39zZ19Pe397f29vbz93h0s/Y3N3b3Nrc48zb49Tg19q7093c293P1t7Y19jV2+He29jh19Xe3uHb19jS5t/d4NvZ0Nbf3uPI2OHj29LPzN7Z4d7f3dDY2Nzc3Nvd2dPd2NXh4eTFyt7d1N3e2dXW4dva2dzg3tvb4t/e4djL393c193e2eLa0N/f3dvhxtfb5Nbb3N3a2Nvb2Ni90trV0dLX3tnb3Nna3tzarLrd4NbZ1tnZ2eHc29vc29TZ2Njh3d3b397e28/f4dvc1NXb4N/f2t7kqsTj3Nze2t3a4Nva3d7f48LJ49vb293a2dfe3tre3NjZ2N7j4d/g4cjf19vT3OHa29rW1t7e2d3a29ve2NvU3tnb4bvT2KbE497h2tPd2Nne3tvb2+DP193T2djc29zW3Nrd3tfc293Y3uHg4t7c29TVzNje3eHd2Njc393b3uLPz9/b29jS29re29vh4d3Z29rb29nY2OHb297b3dve2s7J3ODc2N3b2Nzj29bZzuHc39nb2NvXydzJ1N7T2d3e3N7Yz9zbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQACAAIAAgAZACkAJQAvAC8AMAAkACEAKAAtACsAMQApACUAJwAxACkAKQAmACQAJQAoACsAMQAwADEALwApACkAJAAjACUAKAAwACwAKwAsAC4AKwAwACwADQAwAAIABgACAAIAAgAZACkAJQAvAC8AMAAkACEAKAAtACsAMQApACUAJwAxACkAKQAmACQAJQAoACsAMQAwADEALwApACkAJAAjACUAKAAwACwAKwAsAC4AKwAwACwADQAwAAIABgACAAIAAgAZACkAJQAvAC8AMAAkACEAKAAtACsAMQApACUAJwAxACkAKQAmACQAJQAoACsAMQAwADEALwApACkAJAAjACUAKAAwACwAKwAsAC4AKwAwACwADQAwAAIABgACAAIAAgAIAAgACAAIAAgACAAHAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABwAwAAIABtH/0f/R////8KUIo6Ghn56aoaKk+qUFo6Ghn57J+v///wKl7O3+7ADt/e7+7f7sCevc08uhpbXe5+z+7f7sBuvc08uhpcj7////AKX+7P3t/+wA7fruCejc1MylvK3W4+v77gbo3NTMpbzI/P///wyl7Ozt7e7u7evp7O7v/vAM7+7t5NzWpe27qtPj7P7wCe/u7eTc1qXtu8f9////AaXs/u0F7+7t7Ozu/u/+8Azu7e3l3qX06rqq1eTs/vAJ7u3t5d6l9Oq6xv7///8Lpezs7e7v7+7t7vDx/fAd8e/u7+zlpfDw57mp1+jv8PHv7u/s5aXw8Oe5xf////8Dpe3u7vzv//D78f7wAfHs+6UEruDu8fH+8AHx7PulAcn///8Cpe7u/fAA7/PxCOzl3tbMoaTZ7PrxB+zl3tbMoaT///8Bpe788P/v/vH/8gLx8vL78Qnt593Vy6PW6vHy+/EG7efd1cuj////CaXv8PHw8fDv8PH98gDx/fIB8fL98Qbs4NOj1ujx/vIB8fL98QTs4NOj////A6Xv8PD+8Qju8fLy8/Py8fH88//y/vEF7+Ol1Ofw/PP/8v7xA+/jpf///wWl8PDx8fL+8QHz9P7zAPL+8//0//P/8v/x//ARpdLn8fPz9PTz8/Ly8fHw8KX///8DpfDx8f7y//P89ADz+/T/8//y//EE8KXR5vL89P/z//L/8QLwpf///wCl/vED8vP08/r0/vX89ADy/fEFpdDmNzf1/PQA8v3xAaX///8FpfDx8fLz+/T/9f72/PQB8/L98QWl0Og3qzf99AHz8v3xAaX///8Hpe/w8vLz9PT+9f/0IPX29PPy8/T19PTy8fLx8aXR6DdVqzf09fT08vHy8fGl////FKXw8PHz8/T19fb19vX29/Tx8vL09PY3/1UBqzf+9P/zBPLx8aX///8Apf7wEfHz9PX29fb39/j39fLy9PT2N/er/lUBqzf+9AXz8vHwpf///wql8PDx8fP09PX39v74Aff1/vT/9QA381UJqzf19PPz8fCl////BKXv7/Hy/vQA9f33BPj3+Pn3/vUAN/JVCDf09PPy8fGl////BKXw8PHz/vQA9f33CPb09vn18/T1N/NVATf1/vQE8vHxpf///wWS7e3v8fL+8//1//QH8e/y+fLs8PP2N/5VBTfz8vLx8f7vAZL///8Iku7u7/Dx8vT0/fUE9PL0+PT78grx8O/uktHlN1VVN/zyBfHw7+6S////AZLu/u8J8PL09PX09fX29f72//QA8/7y//EK7+6S0ug3VTf09PP+8v/xA+/ukv///w2S7u/w8PHy8vP19PX19v31//QZ8/Hw7+7vNzeS0+g3N/X09PPx8O/u7+7ukv///wmS7u/v8PLx8fPz/vT/9gD1/vT/8wrx8O7t7TerN9Pp8/70//MI8fDu7e3u7pL///8Wku7u7/Dx8fDx8vP08/P09PX08vPy8e/+7gw3Vas35/L19PLz8vHv/O4Bkv///wmS7e3u7/Dw7/Dx/vMC8vPz9jf/VRCrN/H08/Py8vDw7+7v7+6S////AJL+7QHu8P7vAfDy/vMC8vM396v+VQKrN/T+8gnx8O/w7+7v7pL///8Lku3s7e7v8PDx8fLz/fIAN/NVAqs38v7x//D+7wPu7ZL///8Lkuvs7e7v8PHy8vPz/fEAN/JVAjfx8f3w/+8E7u3skv///xCS7Ozu7u/t6uzu6+vu8PHxN/NVADf98P/vB+7v7u3r65L///8Pkuvs7e7u6uTo6ubl6+7w8PY3/lUPN+/w8O/w8O7u7e3s6+mS////DpLo6Ors7uji5unl5Ort7v3vA+7v7u3+7AU3VVU34u7+7wPu7+7t/uz/6wGS////DpLn5ujr7Onj5unm5uvt7fzu/+0A7P7rBTdVN8zi7f3u/+0A7PzrAZL///8Lkujn6ers6+nq6uvs/e3/7P7t/eoI6zc3ks3i6+zs/u396gTr6uuS////AJL+6Qnq6+vt7Ovs7e7u/u397AHq6f3qBemSzeHs7f3sAerp/eoC6ZL///8Bkur96Qfr7Ozr7Ozt7fzs/+v/6gjp6uvp6JLM4ev+7P/r/+oG6err6eiS////CZLq6ejp6urr7Oz86wLs7ez+6/7q/ukG6JLL4Ovt7P7r/ur+6QLokv///wmS6ejo6enq6uvr/eoD6+zt6/7qDOvq6unp6OeSy+Dr7ev+6gjr6urp6ejnkv///wiS6eno6erp6On76gPl4OPn/ekB6un+6AaSzuHk4OPn/ekB6un+6AGS/wH39OSSAoSNkfSSAPcV9/Tw6ubh3NjU0M3JxcLAvbu5t7W0s/2yFbO0tbe5u73AwsXJzdDU2Nzh5urw9PfR/+X//v7w/9H/0f/R////8KUIo6Ghn56aoaKk+qUFo6Ghn57J+v///wKl7O3+7ADt/e7+7f7sCevc08uhpbXe5+z+7f7sBuvc08uhpcj7////AKX+7P3t/+wA7fruCejc1MylvK3W4+v77gbo3NTMpbzI/P///wyl7Ozt7e7u7evp7O7v/vAM7+7t5NzWpe27qtPj7P7wCe/u7eTc1qXtu8f9////AaXs/u0F7+7t7Ozu/u/+8Azu7e3l3qX06rqq1eTs/vAJ7u3t5d6l9Oq6xv7///8Lpezs7e7v7+7t7vDx/fAd8e/u7+zlpfDw57mp1+jv8PHv7u/s5aXw8Oe5xf////8Dpe3u7vzv//D78f7wAfHs+6UEruDu8fH+8AHx7PulAcn///8Cpe7u/fAA7/PxCOzl3tbMoaTZ7PrxB+zl3tbMoaT///8Bpe788P/v/vH/8gLx8vL78Qnt593Vy6PW6vHy+/EG7efd1cuj////CaXv8PHw8fDv8PH98gDx/fIB8fL98Qbs4NOj1ujx/vIB8fL98QTs4NOj////A6Xv8PD+8Qju8fLy8/Py8fH88//y/vEF7+Ol1Ofw/PP/8v7xA+/jpf///wWl8PDx8fL+8QHz9P7zAPL+8//0//P/8v/x//ARpdLn8fPz9PTz8/Ly8fHw8KX///8DpfDx8f7y//P89ADz+/T/8//y//EE8KXR5vL89P/z//L/8QLwpf///wCl/vED8vP08/r0/vX89ADy/fEFpdDmT0/1/PQA8v3xAaX///8FpfDx8fLz+/T/9f72/PQB8/L98QWl0OhPu0/99AHz8v3xAaX///8Hpe/w8vLz9PT+9f/0IPX29PPy8/T19PTy8fLx8aXR6E9tu0/09fT08vHy8fGl////FKXw8PHz8/T19fb19vX29/Tx8vL09PZP/20Bu0/+9P/zBPLx8aX///8Apf7wEfHz9PX29fb39/j39fLy9PT2T/e7/m0Bu0/+9AXz8vHwpf///wql8PDx8fP09PX39v74Aff1/vT/9QBP820Ju0/19PPz8fCl////BKXv7/Hy/vQA9f33BPj3+Pn3/vUAT/JtCE/09PPy8fGl////BKXw8PHz/vQA9f33CPb09vn18/T1T/NtAU/1/vQE8vHxpf///wWS7e3v8fL+8//1//QH8e/y+fLs8PP2T/5tBU/z8vLx8f7vAZL///8Iku7u7/Dx8vT0/fUE9PL0+PT78grx8O/uktHlT21tT/zyBfHw7+6S////AZLu/u8J8PL09PX09fX29f72//QA8/7y//EK7+6S0uhPbU/09PP+8v/xA+/ukv///w2S7u/w8PHy8vP19PX19v31//QZ8/Hw7+7vT0+S0+hPT/X09PPx8O/u7+7ukv///wmS7u/v8PLx8fPz/vT/9gD1/vT/8wrx8O7t7U+7T9Pp8/70//MI8fDu7e3u7pL///8Wku7u7/Dx8fDx8vP08/P09PX08vPy8e/+7gxPbbtP5/L19PLz8vHv/O4Bkv///wmS7e3u7/Dw7/Dx/vMC8vPz9k//bRC7T/H08/Py8vDw7+7v7+6S////AJL+7QHu8P7vAfDy/vMC8vNP97v+bQK7T/T+8gnx8O/w7+7v7pL///8Lku3s7e7v8PDx8fLz/fIAT/NtArtP8v7x//D+7wPu7ZL///8Lkuvs7e7v8PHy8vPz/fEAT/JtAk/x8f3w/+8E7u3skv///xCS7Ozu7u/t6uzu6+vu8PHxT/NtAE/98P/vB+7v7u3r65L///8Pkuvs7e7u6uTo6ubl6+7w8PZP/m0PT+/w8O/w8O7u7e3s6+mS////DpLo6Ors7uji5unl5Ort7v3vA+7v7u3+7AVPbW1P4u7+7wPu7+7t/uz/6wGS////DpLn5ujr7Onj5unm5uvt7fzu/+0A7P7rBU9tT8zi7f3u/+0A7PzrAZL///8Lkujn6ers6+nq6uvs/e3/7P7t/eoI609Pks3i6+zs/u396gTr6uuS////AJL+6Qnq6+vt7Ovs7e7u/u397AHq6f3qBemSzeHs7f3sAerp/eoC6ZL///8Bkur96Qfr7Ozr7Ozt7fzs/+v/6gjp6uvp6JLM4ev+7P/r/+oG6err6eiS////CZLq6ejp6urr7Oz86wLs7ez+6/7q/ukG6JLL4Ovt7P7r/ur+6QLokv///wmS6ejo6enq6uvr/eoD6+zt6/7qDOvq6unp6OeSy+Dr7ev+6gjr6urp6ejnkv///wiS6eno6erp6On76gPl4OPn/ekB6un+6AaSzuHk4OPn/ekB6un+6AGS/wH39OSSAoSNkfSSAPcV9/Tw6ubh3NjU0M3JxcLAvbu5t7W0s/2yFbO0tbe5u73AwsXJzdDU2Nzh5urw9PfR/+X//v7w/9H/0f/R////8KUIo6Ghn56aoaKk+qUFo6Ghn57J+v///wKl7O3+7ADt/e7+7f7sCevc08uhpbXe5+z+7f7sBuvc08uhpcj7////AKX+7P3t/+wA7fruCejc1MylvK3W4+v77gbo3NTMpbzI/P///wyl7Ozt7e7u7evp7O7v/vAM7+7t5NzWpe27qtPj7P7wCe/u7eTc1qXtu8f9////AaXs/u0F7+7t7Ozu/u/+8Azu7e3l3qX06rqq1eTs/vAJ7u3t5d6l9Oq6xv7///8Lpezs7e7v7+7t7vDx/fAd8e/u7+zlpfDw57mp1+jv8PHv7u/s5aXw8Oe5xf////8Dpe3u7vzv//D78f7wAfHs+6UEruDu8fH+8AHx7PulAcn///8Cpe7u/fAA7/PxCOzl3tbMoaTZ7PrxB+zl3tbMoaT///8Bpe788P/v/vH/8gLx8vL78Qnt593Vy6PW6vHy+/EG7efd1cuj////CaXv8PHw8fDv8PH98gDx/fIB8fL98Qbs4NOj1ujx/vIB8fL98QTs4NOj////A6Xv8PD+8Qju8fLy8/Py8fH88//y/vEF7+Ol1Ofw/PP/8v7xA+/jpf///wWl8PDx8fL+8QHz9P7zAPL+8//0//P/8v/x//ARpdLn8fPz9PTz8/Ly8fHw8KX///8DpfDx8f7y//P89ADz+/T/8//y//EE8KXR5vL89P/z//L/8QLwpf///wCl/vED8vP08/r0/vX89ADy/fEFpdDmuLj1/PQA8v3xAaX///8FpfDx8fLz+/T/9f72/PQB8/L98QWl0Oi48Lj99AHz8v3xAaX///8Hpe/w8vLz9PT+9f/0IPX29PPy8/T19PTy8fLx8aXR6LjY8Lj09fT08vHy8fGl////FKXw8PHz8/T19fb19vX29/Tx8vL09Pa4/9gB8Lj+9P/zBPLx8aX///8Apf7wEfHz9PX29fb39/j39fLy9PT2uPfw/tgB8Lj+9AXz8vHwpf///wql8PDx8fP09PX39v74Aff1/vT/9QC489gJ8Lj19PPz8fCl////BKXv7/Hy/vQA9f33BPj3+Pn3/vUAuPLYCLj09PPy8fGl////BKXw8PHz/vQA9f33CPb09vn18/T1uPPYAbj1/vQE8vHxpf///wWS7e3v8fL+8//1//QH8e/y+fLs8PP2uP7YBbjz8vLx8f7vAZL///8Iku7u7/Dx8vT0/fUE9PL0+PT78grx8O/uktHluNjYuPzyBfHw7+6S////AZLu/u8J8PL09PX09fX29f72//QA8/7y//EK7+6S0ui42Lj09PP+8v/xA+/ukv///w2S7u/w8PHy8vP19PX19v31//QZ8/Hw7+7vuLiS0+i4uPX09PPx8O/u7+7ukv///wmS7u/v8PLx8fPz/vT/9gD1/vT/8wrx8O7t7bjwuNPp8/70//MI8fDu7e3u7pL///8Wku7u7/Dx8fDx8vP08/P09PX08vPy8e/+7gy42PC45/L19PLz8vHv/O4Bkv///wmS7e3u7/Dw7/Dx/vMC8vPz9rj/2BDwuPH08/Py8vDw7+7v7+6S////AJL+7QHu8P7vAfDy/vMC8vO49/D+2ALwuPT+8gnx8O/w7+7v7pL///8Lku3s7e7v8PDx8fLz/fIAuPPYAvC48v7x//D+7wPu7ZL///8Lkuvs7e7v8PHy8vPz/fEAuPLYArjx8f3w/+8E7u3skv///xCS7Ozu7u/t6uzu6+vu8PHxuPPYALj98P/vB+7v7u3r65L///8Pkuvs7e7u6uTo6ubl6+7w8Pa4/tgPuO/w8O/w8O7u7e3s6+mS////DpLo6Ors7uji5unl5Ort7v3vA+7v7u3+7AW42Ni44u7+7wPu7+7t/uz/6wGS////DpLn5ujr7Onj5unm5uvt7fzu/+0A7P7rBbjYuMzi7f3u/+0A7PzrAZL///8Lkujn6ers6+nq6uvs/e3/7P7t/eoI67i4ks3i6+zs/u396gTr6uuS////AJL+6Qnq6+vt7Ovs7e7u/u397AHq6f3qBemSzeHs7f3sAerp/eoC6ZL///8Bkur96Qfr7Ozr7Ozt7fzs/+v/6gjp6uvp6JLM4ev+7P/r/+oG6err6eiS////CZLq6ejp6urr7Oz86wLs7ez+6/7q/ukG6JLL4Ovt7P7r/ur+6QLokv///wmS6ejo6enq6uvr/eoD6+zt6/7qDOvq6unp6OeSy+Dr7ev+6gjr6urp6ejnkv///wiS6eno6erp6On76gPl4OPn/ekB6un+6AaSzuHk4OPn/ekB6un+6AGS/wH39OSSAoSNkfSSAPcV9/Tw6ubh3NjU0M3JxcLAvbu5t7W0s/2yFbO0tbe5u73AwsXJzdDU2Nzh5urw9PfR/+X//v7w/9EA0QDRAP8A2/8AfvoA/wDa/wB/+wD/ANn/AID8AP8A2P8Agf0A/wDX/wCC/gD/ANb/AoMAAP8A1f8BfgD/ANT/AAD/ANT/AAD/ANT/AAD/ANT/AAD/ANT/AAD/ANT/AAD/ANT/AAD/ANT/AAD/ANT/AAD/ANT/AAD/ANT/AAD/ANT/AAD/ANT/AAD/ANT/AAD/ANT/AAD/ANT/AAD/ANT/AAD/ANT/AAD/ANT/AAD/ANT/AAD/ANT/AAD/ANT/AAD/ANT/AAD/ANT/AAD/ANT/AAD/ANT/AAD/ANT/AAD/ANT/AAD/ANT/AAD/ANT/AAD/ANT/AAD/ANT/AAD/ANT/AAD/ANT/AAABCAvU/wAIFQgLDxUZHiMnKy8yNjo9P0JERkhKS0z9TRVMS0pIRkRCPz06NjIvKycjHhkVDwsI0QDlAP4B8AA=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/TableTools/media/images/psd/file_types.psd</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[OEJQUwABAAAAAAAAAAQAAAAwAAAAMAAIAAMAAAAAAABSNDhCSU0EBAAAAAAApxwCAAACAAIcAngAMfAgTWFkZSBvbiBhIE1hYyENRXhjbHVzaXZlIGZvciBTbWFzaGluZyBNYWdhemluZSEcAlAAEU9saXZlciBUd2FyZG93c2tpHAIZAAVpY29ucxwCGQANcHNkIHJlc3NvdXJjZRwCGQAHZmxhdm91chwCdAAnqSAgICAgICAgICAgDSAyMDA5IGJ5IE9saXZlciBUd2FyZG93c2tpADhCSU0EJQAAAAAAEJ8tNPbssDuz5hXaVaYTABQ4QklNBCQAAAAAHio8P3hwYWNrZXQgYmVnaW49J++7vycgaWQ9J1c1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCc/Pgo8eDp4bXBtZXRhIHhtbG5zOng9J2Fkb2JlOm5zOm1ldGEvJyB4OnhtcHRrPSdYTVAgdG9vbGtpdCAzLjAtMjgsIGZyYW1ld29yayAxLjYnPgo8cmRmOlJERiB4bWxuczpyZGY9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMnIHhtbG5zOmlYPSdodHRwOi8vbnMuYWRvYmUuY29tL2lYLzEuMC8nPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSd1dWlkOjAyNDUyOTFiLTU0ZmQtMTFkZS1hNjc4LWM5MzkzOWE0Yjg1MycKICB4bWxuczpleGlmPSdodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyc+CiAgPGV4aWY6TmF0aXZlRGlnZXN0PjM2ODY0LDQwOTYwLDQwOTYxLDM3MTIxLDM3MTIyLDQwOTYyLDQwOTYzLDM3NTEwLDQwOTY0LDM2ODY3LDM2ODY4LDMzNDM0LDMzNDM3LDM0ODUwLDM0ODUyLDM0ODU1LDM0ODU2LDM3Mzc3LDM3Mzc4LDM3Mzc5LDM3MzgwLDM3MzgxLDM3MzgyLDM3MzgzLDM3Mzg0LDM3Mzg1LDM3Mzg2LDM3Mzk2LDQxNDgzLDQxNDg0LDQxNDg2LDQxNDg3LDQxNDg4LDQxNDkyLDQxNDkzLDQxNDk1LDQxNzI4LDQxNzI5LDQxNzMwLDQxOTg1LDQxOTg2LDQxOTg3LDQxOTg4LDQxOTg5LDQxOTkwLDQxOTkxLDQxOTkyLDQxOTkzLDQxOTk0LDQxOTk1LDQxOTk2LDQyMDE2LDAsMiw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwyMCwyMiwyMywyNCwyNSwyNiwyNywyOCwzMDs4OUFENkE0QjU4MjI4RDg4NTlDOTczMEY4RTZGQzY4MTwvZXhpZjpOYXRpdmVEaWdlc3Q+CiAgPGV4aWY6Q29sb3JTcGFjZT40Mjk0OTY3Mjk1PC9leGlmOkNvbG9yU3BhY2U+CiAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjQ4PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NDg8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9J3V1aWQ6MDI0NTI5MWItNTRmZC0xMWRlLWE2NzgtYzkzOTM5YTRiODUzJwogIHhtbG5zOnBkZj0naHR0cDovL25zLmFkb2JlLmNvbS9wZGYvMS4zLyc+CiA8L3JkZjpEZXNjcmlwdGlvbj4KCiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0ndXVpZDowMjQ1MjkxYi01NGZkLTExZGUtYTY3OC1jOTM5MzlhNGI4NTMnCiAgeG1sbnM6cGhvdG9zaG9wPSdodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvJz4KICA8cGhvdG9zaG9wOklDQ1Byb2ZpbGU+QWRvYmUgUkdCICgxOTk4KTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICA8cGhvdG9zaG9wOkhpc3Rvcnk+PC9waG90b3Nob3A6SGlzdG9yeT4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSd1dWlkOjAyNDUyOTFiLTU0ZmQtMTFkZS1hNjc4LWM5MzkzOWE0Yjg1MycKICB4bWxuczp0aWZmPSdodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyc+CiAgPHRpZmY6TmF0aXZlRGlnZXN0PjI1NiwyNTcsMjU4LDI1OSwyNjIsMjc0LDI3NywyODQsNTMwLDUzMSwyODIsMjgzLDI5NiwzMDEsMzE4LDMxOSw1MjksNTMyLDMwNiwyNzAsMjcxLDI3MiwzMDUsMzE1LDMzNDMyOzBFOTlEQjU2QUEzQzgzRkQzMTQ2RTc1QTIxOTQwNDYwPC90aWZmOk5hdGl2ZURpZ2VzdD4KICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogIDx0aWZmOllSZXNvbHV0aW9uPjcyLzE8L3RpZmY6WVJlc29sdXRpb24+CiAgPHRpZmY6WFJlc29sdXRpb24+NzIvMTwvdGlmZjpYUmVzb2x1dGlvbj4KICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9J3V1aWQ6MDI0NTI5MWItNTRmZC0xMWRlLWE2NzgtYzkzOTM5YTRiODUzJwogIHhtbG5zOnhhcD0naHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyc+CiAgPHhhcDpNZXRhZGF0YURhdGU+MjAwOS0wNi0wN1QxMzo1NjoyNiswMTowMDwveGFwOk1ldGFkYXRhRGF0ZT4KICA8eGFwOk1vZGlmeURhdGU+MjAwOS0wNi0wN1QxMzo1NjoyNiswMTowMDwveGFwOk1vZGlmeURhdGU+CiAgPHhhcDpDcmVhdGVEYXRlPjIwMDktMDEtMTJUMTA6MDA6NDIrMDE6MDA8L3hhcDpDcmVhdGVEYXRlPgogIDx4YXA6Q3JlYXRvclRvb2w+QWRvYmUgUGhvdG9zaG9wIENTIE1hY2ludG9zaDwveGFwOkNyZWF0b3JUb29sPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9J3V1aWQ6MDI0NTI5MWItNTRmZC0xMWRlLWE2NzgtYzkzOTM5YTRiODUzJwogIHhtbG5zOnhhcE1NPSdodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vJz4KICA8eGFwTU06SW5zdGFuY2VJRD51dWlkOkJGOERDQ0M5RTk0QzExREQ5ODBDODFBRUM4N0Q5RDhDPC94YXBNTTpJbnN0YW5jZUlEPgogIDx4YXBNTTpEb2N1bWVudElEPnV1aWQ6QkFBRjVERTRFMjFDMTFEREFDQzVCMjlEOTA4NUM1NUE8L3hhcE1NOkRvY3VtZW50SUQ+CiA8L3JkZjpEZXNjcmlwdGlvbj4KCiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0ndXVpZDowMjQ1MjkxYi01NGZkLTExZGUtYTY3OC1jOTM5MzlhNGI4NTMnCiAgeG1sbnM6eGFwUmlnaHRzPSdodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvcmlnaHRzLyc+CiAgPHhhcFJpZ2h0czpXZWJTdGF0ZW1lbnQ+aHR0cDovL2Jsb2cuYWRkaWN0ZWR0b2NvZmZlZS5kZTwveGFwUmlnaHRzOldlYlN0YXRlbWVudD4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSd1dWlkOjAyNDUyOTFiLTU0ZmQtMTFkZS1hNjc4LWM5MzkzOWE0Yjg1MycKICB4bWxuczpkYz0naHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8nPgogIDxkYzpmb3JtYXQ+YXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcDwvZGM6Zm9ybWF0PgogIDxkYzpjcmVhdG9yPgogICA8cmRmOlNlcT4KICAgIDxyZGY6bGk+T2xpdmVyIFR3YXJkb3dza2k8L3JkZjpsaT4KICAgPC9yZGY6U2VxPgogIDwvZGM6Y3JlYXRvcj4KICA8ZGM6ZGVzY3JpcHRpb24+CiAgIDxyZGY6QWx0PgogICAgPHJkZjpsaSB4bWw6bGFuZz0neC1kZWZhdWx0Jz7vo78gTWFkZSBvbiBhIE1hYyEmI3hBO0V4Y2x1c2l2ZSBmb3IgU21hc2hpbmcgTWFnYXppbmUhPC9yZGY6bGk+CiAgIDwvcmRmOkFsdD4KICA8L2RjOmRlc2NyaXB0aW9uPgogIDxkYzpyaWdodHM+CiAgIDxyZGY6QWx0PgogICAgPHJkZjpsaSB4bWw6bGFuZz0neC1kZWZhdWx0Jz7CqSAgICAgICAgICAgJiN4QTsgMjAwOSBieSBPbGl2ZXIgVHdhcmRvd3NraTwvcmRmOmxpPgogICA8L3JkZjpBbHQ+CiAgPC9kYzpyaWdodHM+CiAgPGRjOnN1YmplY3Q+CiAgIDxyZGY6QmFnPgogICAgPHJkZjpsaT5pY29uczwvcmRmOmxpPgogICAgPHJkZjpsaT5wc2QgcmVzc291cmNlPC9yZGY6bGk+CiAgICA8cmRmOmxpPmZsYXZvdXI8L3JkZjpsaT4KICAgPC9yZGY6QmFnPgogIDwvZGM6c3ViamVjdD4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9J3cnPz44QklNA+oAAAAAHaY8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pgo8IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZSBDb21wdXRlci8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KPHBsaXN0IHZlcnNpb249IjEuMCI+CjxkaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTUhvcml6b250YWxSZXM8L2tleT4KCTxkaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJPHN0cmluZz5jb20uYXBwbGUucHJpbnRpbmdtYW5hZ2VyPC9zdHJpbmc+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCTxhcnJheT4KCQkJPGRpY3Q+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNSG9yaXpvbnRhbFJlczwva2V5PgoJCQkJPHJlYWw+NzI8L3JlYWw+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQk8ZGF0ZT4yMDA5LTAxLTEyVDA5OjAwOjQyWjwvZGF0ZT4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCTwvZGljdD4KCQk8L2FycmF5PgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTU9yaWVudGF0aW9uPC9rZXk+Cgk8ZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQk8YXJyYXk+CgkJCTxkaWN0PgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTU9yaWVudGF0aW9uPC9rZXk+CgkJCQk8aW50ZWdlcj4xPC9pbnRlZ2VyPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNsaWVudDwva2V5PgoJCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnRpbmdtYW5hZ2VyPC9zdHJpbmc+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQubW9kRGF0ZTwva2V5PgoJCQkJPGRhdGU+MjAwOS0wMS0xMlQwOTowMDo0Mlo8L2RhdGU+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQk8L2RpY3Q+CgkJPC9hcnJheT4KCTwvZGljdD4KCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1TY2FsaW5nPC9rZXk+Cgk8ZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQk8YXJyYXk+CgkJCTxkaWN0PgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTVNjYWxpbmc8L2tleT4KCQkJCTxyZWFsPjE8L3JlYWw+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQk8ZGF0ZT4yMDA5LTAxLTEyVDA5OjAwOjQyWjwvZGF0ZT4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCTwvZGljdD4KCQk8L2FycmF5PgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTVZlcnRpY2FsUmVzPC9rZXk+Cgk8ZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQk8YXJyYXk+CgkJCTxkaWN0PgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTVZlcnRpY2FsUmVzPC9rZXk+CgkJCQk8cmVhbD43MjwvcmVhbD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jbGllbnQ8L2tleT4KCQkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1vZERhdGU8L2tleT4KCQkJCTxkYXRlPjIwMDktMDEtMTJUMDk6MDA6NDJaPC9kYXRlPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJPC9kaWN0PgoJCTwvYXJyYXk+Cgk8L2RpY3Q+Cgk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNVmVydGljYWxTY2FsaW5nPC9rZXk+Cgk8ZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQk8YXJyYXk+CgkJCTxkaWN0PgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTVZlcnRpY2FsU2NhbGluZzwva2V5PgoJCQkJPHJlYWw+MTwvcmVhbD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jbGllbnQ8L2tleT4KCQkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1vZERhdGU8L2tleT4KCQkJCTxkYXRlPjIwMDktMDEtMTJUMDk6MDA6NDJaPC9kYXRlPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJPC9kaWN0PgoJCTwvYXJyYXk+Cgk8L2RpY3Q+Cgk8a2V5PmNvbS5hcHBsZS5wcmludC5zdWJUaWNrZXQucGFwZXJfaW5mb190aWNrZXQ8L2tleT4KCTxkaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhZ2VSZWN0PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhZ2VSZWN0PC9rZXk+CgkJCQkJPGFycmF5PgoJCQkJCQk8cmVhbD4wLjA8L3JlYWw+CgkJCQkJCTxyZWFsPjAuMDwvcmVhbD4KCQkJCQkJPHJlYWw+NzgzPC9yZWFsPgoJCQkJCQk8cmVhbD41NTk8L3JlYWw+CgkJCQkJPC9hcnJheT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnRpbmdtYW5hZ2VyPC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1vZERhdGU8L2tleT4KCQkJCQk8ZGF0ZT4yMDA5LTA2LTA3VDEyOjU1OjM4WjwvZGF0ZT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2RpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTUFkanVzdGVkUGFwZXJSZWN0PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhcGVyUmVjdDwva2V5PgoJCQkJCTxhcnJheT4KCQkJCQkJPHJlYWw+LTE4PC9yZWFsPgoJCQkJCQk8cmVhbD4tMTg8L3JlYWw+CgkJCQkJCTxyZWFsPjgyNDwvcmVhbD4KCQkJCQkJPHJlYWw+NTc3PC9yZWFsPgoJCQkJCTwvYXJyYXk+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNsaWVudDwva2V5PgoJCQkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQkJPGRhdGU+MjAwOS0wNi0wN1QxMjo1NTozOFo8L2RhdGU+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5QTVBhcGVyTmFtZTwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludC5wbS5Qb3N0U2NyaXB0PC9zdHJpbmc+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBNUGFwZXJOYW1lPC9rZXk+CgkJCQkJPHN0cmluZz5pc28tYTQ8L3N0cmluZz4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnQucG0uUG9zdFNjcmlwdDwvc3RyaW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQkJPGRhdGU+MjAwMy0wNy0wMVQxNzo0OTozNlo8L2RhdGU+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjE8L2ludGVnZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5QTVVuYWRqdXN0ZWRQYWdlUmVjdDwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludC5wbS5Qb3N0U2NyaXB0PC9zdHJpbmc+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBNVW5hZGp1c3RlZFBhZ2VSZWN0PC9rZXk+CgkJCQkJPGFycmF5PgoJCQkJCQk8cmVhbD4wLjA8L3JlYWw+CgkJCQkJCTxyZWFsPjAuMDwvcmVhbD4KCQkJCQkJPHJlYWw+NzgzPC9yZWFsPgoJCQkJCQk8cmVhbD41NTk8L3JlYWw+CgkJCQkJPC9hcnJheT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnRpbmdtYW5hZ2VyPC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1vZERhdGU8L2tleT4KCQkJCQk8ZGF0ZT4yMDA5LTAxLTEyVDA5OjAwOjQyWjwvZGF0ZT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2RpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBNVW5hZGp1c3RlZFBhcGVyUmVjdDwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludC5wbS5Qb3N0U2NyaXB0PC9zdHJpbmc+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBNVW5hZGp1c3RlZFBhcGVyUmVjdDwva2V5PgoJCQkJCTxhcnJheT4KCQkJCQkJPHJlYWw+LTE4PC9yZWFsPgoJCQkJCQk8cmVhbD4tMTg8L3JlYWw+CgkJCQkJCTxyZWFsPjgyNDwvcmVhbD4KCQkJCQkJPHJlYWw+NTc3PC9yZWFsPgoJCQkJCTwvYXJyYXk+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNsaWVudDwva2V5PgoJCQkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQkJPGRhdGU+MjAwOS0wMS0xMlQwOTowMDo0Mlo8L2RhdGU+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5wcGQuUE1QYXBlck5hbWU8L2tleT4KCQk8ZGljdD4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnQucG0uUG9zdFNjcmlwdDwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5wcGQuUE1QYXBlck5hbWU8L2tleT4KCQkJCQk8c3RyaW5nPkE0PC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNsaWVudDwva2V5PgoJCQkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50LnBtLlBvc3RTY3JpcHQ8L3N0cmluZz4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQubW9kRGF0ZTwva2V5PgoJCQkJCTxkYXRlPjIwMDMtMDctMDFUMTc6NDk6MzZaPC9kYXRlPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCQk8aW50ZWdlcj4xPC9pbnRlZ2VyPgoJCQkJPC9kaWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuQVBJVmVyc2lvbjwva2V5PgoJCTxzdHJpbmc+MDAuMjA8L3N0cmluZz4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQucHJpdmF0ZUxvY2s8L2tleT4KCQk8ZmFsc2UvPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC50eXBlPC9rZXk+CgkJPHN0cmluZz5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvVGlja2V0PC9zdHJpbmc+Cgk8L2RpY3Q+Cgk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuQVBJVmVyc2lvbjwva2V5PgoJPHN0cmluZz4wMC4yMDwvc3RyaW5nPgoJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnByaXZhdGVMb2NrPC9rZXk+Cgk8ZmFsc2UvPgoJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnR5cGU8L2tleT4KCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXRUaWNrZXQ8L3N0cmluZz4KPC9kaWN0Pgo8L3BsaXN0Pgo4QklNA+kAAAAAAHgAAwAAAEgASAAAAAADDwIv/+7/7gM4AkEDZwV7A+AAAgAAAEgASAAAAAAC2AIoAAEAAABkAAAAAQADAwMAAAABf/8AAQABAAAAAAAAAAAAAAAAaAgAGQGQAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4QklNA+0AAAAAABAASAAAAAEAAQBIAAAAAQABOEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4QklNA+4AAAAAAA0MVHJhbnNwYXJlbmN5ADhCSU0EFQAAAAAAHgAAAA0AVAByAGEAbgBzAHAAYQByAGUAbgBjAHkAADhCSU0D7wAAAAAADgAA//8AAAAAAAAAZAEAOEJJTQQdAAAAAAAEAAAAADhCSU0EDQAAAAAABAAAAFo4QklNBBkAAAAAAAQAAAAVOEJJTQPzAAAAAAAJAAAAAAAAAAABADhCSU0ECgAAAAAAAQAAOEJJTQQLAAAAAAAfaHR0cDovL2Jsb2cuYWRkaWN0ZWR0b2NvZmZlZS5kZQA4QklNJxAAAAAAAAoAAQAAAAAAAAACOEJJTQP1AAAAAABIAC9mZgABAGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUAAAABAC0AAAAGAAAAAAABOEJJTQP4AAAAAABwAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////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ZSAwCgkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJCQk+PgoJCQkJPj4KCQkJCS9BZGp1c3RtZW50cwoJCQkJPDwKCQkJCQkvQXhpcyBbIDEuMCAwLjAgMS4wIF0KCQkJCQkvWFkgWyAwLjAgMC4wIF0KCQkJCT4+CgkJCT4+CgkJCV0KCQkJL1J1bkxlbmd0aEFycmF5IFsgNCBdCgkJCS9Jc0pvaW5hYmxlIDEKCQk+PgoJCS9TdHlsZVJ1bgoJCTw8CgkJCS9EZWZhdWx0UnVuRGF0YQoJCQk8PAoJCQkJL1N0eWxlU2hlZXQKCQkJCTw8CgkJCQkJL1N0eWxlU2hlZXREYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQkJL1J1bkFycmF5IFsKCQkJPDwKCQkJCS9TdHlsZVNoZWV0CgkJCQk8PAoJCQkJCS9TdHlsZVNoZWV0RGF0YQoJCQkJCTw8CgkJCQkJCS9Gb250IDAKCQkJCQkJL0ZvbnRTaXplIDIwLjc3MzMxCgkJCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkvQXV0b0xlYWRpbmcgZmFsc2UKCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkJCS9UcmFja2luZyAyMAoJCQkJCQkvQXV0b0tlcm5pbmcgdHJ1ZQoJCQkJCQkvS2VybmluZyAwCgkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJCQkvVW5kZXJsaW5lIGZhbHNlCgkJCQkJCS9TdHJpa2V0aHJvdWdoIGZhbHNlCgkJCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJCQkvRExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMQoJCQkJCQkvVHN1bWUgMC4wCgkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCS9MYW5ndWFnZSAwCgkJCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJPDwKCQkJCQkJCS9UeXBlIDEKCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQk+PgoJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJPDwKCQkJCQkJCS9UeXBlIDEKCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQk+PgoJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCS9ZVW5kZXJsaW5lIDEKCQkJCQkJL091dGxpbmVXaWR0aCAwLjA0MTY3CgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJCV0KCQkJL1J1bkxlbmd0aEFycmF5IFsgNCBdCgkJCS9Jc0pvaW5hYmxlIDIKCQk+PgoJCS9HcmlkSW5mbwoJCTw8CgkJCS9HcmlkSXNPbiBmYWxzZQoJCQkvU2hvd0dyaWQgZmFsc2UKCQkJL0dyaWRTaXplIDE4LjAKCQkJL0dyaWRMZWFkaW5nIDIyLjAKCQkJL0dyaWRDb2xvcgoJCQk8PAoJCQkJL1R5cGUgMQoJCQkJL1ZhbHVlcyBbIDAuMCAwLjAgMC4wIDEuMCBdCgkJCT4+CgkJCS9HcmlkTGVhZGluZ0ZpbGxDb2xvcgoJCQk8PAoJCQkJL1R5cGUgMQoJCQkJL1ZhbHVlcyBbIDAuMCAwLjAgMC4wIDEuMCBdCgkJCT4+CgkJCS9BbGlnbkxpbmVIZWlnaHRUb0dyaWRGbGFncyBmYWxzZQoJCT4+CgkJL0FudGlBbGlhcyA0CgkJL1VzZUZyYWN0aW9uYWxHbHlwaFdpZHRocyB0cnVlCgkJL1JlbmRlcmVkCgkJPDwKCQkJL1ZlcnNpb24gMQoJCQkvU2hhcGVzCgkJCTw8CgkJCQkvV3JpdGluZ0RpcmVjdGlvbiAwCgkJCQkvQ2hpbGRyZW4gWwoJCQkJPDwKCQkJCQkvU2hhcGVUeXBlIDAKCQkJCQkvUHJvY2Vzc2lvbiAwCgkJCQkJL0xpbmVzCgkJCQkJPDwKCQkJCQkJL1dyaXRpbmdEaXJlY3Rpb24gMAoJCQkJCQkvQ2hpbGRyZW4gWyBdCgkJCQkJPj4KCQkJCQkvQ29va2llCgkJCQkJPDwKCQkJCQkJL1Bob3Rvc2hvcAoJCQkJCQk8PAoJCQkJCQkJL1NoYXBlVHlwZSAwCgkJCQkJCQkvUG9pbnRCYXNlIFsgMC4wIDAuMCBdCgkJCQkJCQkvQmFzZQoJCQkJCQkJPDwKCQkJCQkJCQkvU2hhcGVUeXBlIDAKCQkJCQkJCQkvVHJhbnNmb3JtUG9pbnQwIFsgMS4wIDAuMCBdCgkJCQkJCQkJL1RyYW5zZm9ybVBvaW50MSBbIDAuMCAxLjAgXQoJCQkJCQkJCS9UcmFuc2Zvcm1Qb2ludDIgWyAwLjAgMC4wIF0KCQkJCQkJCT4+CgkJCQkJCT4+CgkJCQkJPj4KCQkJCT4+CgkJCQldCgkJCT4+CgkJPj4KCT4+CgkvUmVzb3VyY2VEaWN0Cgk8PAoJCS9LaW5zb2t1U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8AUABoAG8AdABvAHMAaABvAHAASwBpAG4AcwBvAGsAdQBIAGEAcgBkKQoJCQkvTm9TdGFydCAo/v8wATAC/wz/DjD7/xr/G/8f/wEw/CAVIBkgHf8JMBX/Pf9dMAkwCzANMA8wETD9MP4wnTCeMAUwQTBDMEUwRzBJMGMwgzCFMIcwjjChMKMwpTCnMKkwwzDjMOUw5zDuMPUw9jCbMJwAPwAhAFwpAF0AfQAsAC4AOgA7IQMhCQCi/wUgMCkKCQkJL05vRW5kICj+/yAYIBz/CDAU/zv/WzAIMAowDDAOMBAAXCgAWwB7/+X/BACj/yAApzAS/wMpCgkJCS9LZWVwICj+/yAVICUpCgkJCS9IYW5naW5nICj+/zABMAIALgAsKQoJCT4+CgkJPDwKCQkJL05hbWUgKP7/AFAAaABvAHQAbwBzAGgAbwBwAEsAaQBuAHMAbwBrAHUAUwBvAGYAdCkKCQkJL05vU3RhcnQgKP7/MAEwAv8M/w4w+/8a/xv/H/8BIBkgHf8JMBX/Pf9dMAkwCzANMA8wETD9MP4wnTCeMAUpCgkJCS9Ob0VuZCAo/v8gGCAc/wgwFP87/1swCDAKMAwwDjAQKQoJCQkvS2VlcCAo/v8gFSAlKQoJCQkvSGFuZ2luZyAo/v8wATACAC4ALCkKCQk+PgoJCV0KCQkvTW9qaUt1bWlTZXQgWwoJCTw8CgkJCS9JbnRlcm5hbE5hbWUgKP7/AFAAaABvAHQAbwBzAGgAbwBwADYATQBvAGoAaQBLAHUAbQBpAFMAZQB0ADEpCgkJPj4KCQk8PAoJCQkvSW50ZXJuYWxOYW1lICj+/wBQAGgAbwB0AG8AcwBoAG8AcAA2AE0AbwBqAGkASwB1AG0AaQBTAGUAdAAyKQoJCT4+CgkJPDwKCQkJL0ludGVybmFsTmFtZSAo/v8AUABoAG8AdABvAHMAaABvAHAANgBNAG8AagBpAEsAdQBtAGkAUwBlAHQAMykKCQk+PgoJCTw8CgkJCS9JbnRlcm5hbE5hbWUgKP7/AFAAaABvAHQAbwBzAGgAbwBwADYATQBvAGoAaQBLAHUAbQBpAFMAZQB0ADQpCgkJPj4KCQldCgkJL1RoZU5vcm1hbFN0eWxlU2hlZXQgMAoJCS9UaGVOb3JtYWxQYXJhZ3JhcGhTaGVldCAwCgkJL1BhcmFncmFwaFNoZWV0U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8AUgBHAEIAIAAtACAATgBvAHIAbQBhAGwpCgkJCS9EZWZhdWx0U3R5bGVTaGVldCAwCgkJCS9Qcm9wZXJ0aWVzCgkJCTw8CgkJCQkvSnVzdGlmaWNhdGlvbiAwCgkJCQkvRmlyc3RMaW5lSW5kZW50IDAuMAoJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJL0VuZEluZGVudCAwLjAKCQkJCS9TcGFjZUJlZm9yZSAwLjAKCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJL0h5cGhlbmF0ZWRXb3JkU2l6ZSA2CgkJCQkvUHJlSHlwaGVuIDIKCQkJCS9Qb3N0SHlwaGVuIDIKCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgOAoJCQkJL1pvbmUgMzYuMAoJCQkJL1dvcmRTcGFjaW5nIFsgMC44IDEuMCAxLjMzIF0KCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJL0J1cmFzYWdhcmkgZmFsc2UKCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCT4+CgkJPj4KCQldCgkJL1N0eWxlU2hlZXRTZXQgWwoJCTw8CgkJCS9OYW1lICj+/wBSAEcAQgAgAC0AIABOAG8AcgBtAGEAbCkKCQkJL1N0eWxlU2hlZXREYXRhCgkJCTw8CgkJCQkvRm9udCAxCgkJCQkvRm9udFNpemUgMTIuMAoJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJL0F1dG9MZWFkaW5nIHRydWUKCQkJCS9MZWFkaW5nIDAuMAoJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJL1RyYWNraW5nIDAKCQkJCS9BdXRvS2VybmluZyB0cnVlCgkJCQkvS2VybmluZyAwCgkJCQkvQmFzZWxpbmVTaGlmdCAwLjAKCQkJCS9Gb250Q2FwcyAwCgkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCS9VbmRlcmxpbmUgZmFsc2UKCQkJCS9TdHJpa2V0aHJvdWdoIGZhbHNlCgkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCS9ETGlnYXR1cmVzIGZhbHNlCgkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMgoJCQkJL1RzdW1lIDAuMAoJCQkJL1N0eWxlUnVuQWxpZ25tZW50IDIKCQkJCS9MYW5ndWFnZSAwCgkJCQkvTm9CcmVhayBmYWxzZQoJCQkJL0ZpbGxDb2xvcgoJCQkJPDwKCQkJCQkvVHlwZSAxCgkJCQkJL1ZhbHVlcyBbIDEuMCAwLjAgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL1N0cm9rZUNvbG9yCgkJCQk8PAoJCQkJCS9UeXBlIDEKCQkJCQkvVmFsdWVzIFsgMS4wIDAuMCAwLjAgMC4wIF0KCQkJCT4+CgkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCS9GaWxs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eXBoZW5zIDgKCQkJCS9ab25lIDM2LjAKCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkvTGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkvS2luc29rdU9yZGVyIDAKCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQk+PgoJCT4+CgkJXQoJCS9TdHlsZVNoZWV0U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8AUgBHAEIAIAAtACAATgBvAHIAbQBhAGwpCgkJCS9TdHlsZVNoZWV0RGF0YQoJCQk8PAoJCQkJL0ZvbnQgMQoJCQkJL0ZvbnRTaXplIDEyLjAKCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCS9BdXRvTGVhZGluZyB0cnVlCgkJCQkvTGVhZGluZyAwLjAKCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCS9UcmFja2luZyAwCgkJCQkvQXV0b0tlcm5pbmcgdHJ1ZQoJCQkJL0tlcm5pbmcgMAoJCQkJL0Jhc2VsaW5lU2hpZnQgMC4wCgkJCQkvRm9udENhcHMgMAoJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkvVW5kZXJsaW5lIGZhbHNlCgkJCQkvU3RyaWtldGhyb3VnaCBmYWxzZQoJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkvRExpZ2F0dXJlcyBmYWxzZQoJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDIKCQkJCS9Uc3VtZSAwLjAKCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkvTGFuZ3VhZ2UgMAoJCQkJL05vQnJlYWsgZmFsc2UKCQkJCS9GaWxsQ29sb3IKCQkJCTw8CgkJCQkJL1R5cGUgMQoJCQkJCS9WYWx1ZXMgWyAxLjAgMC4wIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9T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ZnRlciAwLjAKCQkJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJCQkvSHlwaGVuYXRlZFdvcmRTaXplIDgKCQkJCQkJL1ByZUh5cGhlbiAzCgkJCQkJCS9Qb3N0SHlwaGVuIDMKCQkJCQkJL0NvbnNlY3V0aXZlSHlwaGVucyAyCgkJCQkJCS9ab25lIDM2LjAKCQkJCQkJL1dvcmRTcGFjaW5nIFsgMC44IDEuMCAxLjMzIF0KCQkJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCQkJL0xlYWRpbmdUeXBlIDAKCQkJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCQkJL0J1cmFzYWdhcmkgZmFsc2UKCQkJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQkJCT4+CgkJCQk+PgoJCQkJL0FkanVzdG1lbnRzCgkJCQk8PAoJCQkJCS9BeGlzIFsgMS4wIDAuMCAxLjAgXQoJCQkJCS9YWSBbIDAuMCAwLjAgXQoJCQkJPj4KCQkJPj4KCQkJXQoJCQkvUnVuTGVuZ3RoQXJyYXkgWyA1IF0KCQkJL0lzSm9pbmFibGUgMQoJCT4+CgkJL1N0eWxlUnVuCgkJPDwKCQkJL0RlZmF1bHRSdW5EYXRhCgkJCTw8CgkJCQkvU3R5bGVTaGVldAoJCQkJPDwKCQkJCQkvU3R5bGVTaGVldERhdGEKCQkJCQk8PAoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCQkvUnVuQXJyYXkgWwoJCQk8PAoJCQkJL1N0eWxlU2hlZXQKCQkJCTw8CgkJCQkJL1N0eWxlU2hlZXREYXRhCgkJCQkJPDwKCQkJCQkJL0ZvbnQgMAoJCQkJCQkvRm9udFNpemUgMjAuNzczMzEKCQkJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkJCS9BdXRvTGVhZGluZyBmYWxzZQoJCQkJCQkvTGVhZGluZyAzOS44NTUwOAoJCQkJCQkvSG9yaXpvbnRhbFNjYWxlIDAuOTUKCQkJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkJCS9UcmFja2luZyAwCgkJCQkJCS9BdXRvS2VybmluZyB0cnVlCgkJCQkJCS9LZXJuaW5nIDAKCQkJCQkJL0Jhc2VsaW5lU2hpZnQgLTguODg2NjIKCQkJCQkJL0ZvbnRDYXBzIDAKCQkJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkJCS9VbmRlcmxpbmUgZmFsc2UKCQkJCQkJL1N0cmlrZXRocm91Z2ggZmFsc2UKCQkJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkJCS9ETGlnYXR1cmVzIGZhbHNlCgkJCQkJCS9CYXNlbGluZURpcmVjdGlvbiAxCgkJCQkJCS9Uc3VtZSAwLjAKCQkJCQkJL1N0eWxlUnVuQWxpZ25tZW50IDIKCQkJCQkJL0xhbmd1YWdlIDAKCQkJCQkJL05vQnJlYWsgZmFsc2UKCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQk8PAoJCQkJCQkJL1R5cGUgMQoJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCT4+CgkJCQkJCS9TdHJva2VDb2xvcgoJCQkJCQk8PAoJCQkJCQkJL1R5cGUgMQoJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCT4+CgkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkJCS9GaWxsRmlyc3QgZmFsc2UKCQkJCQkJL1lVbmRlcmxpbmUgMQoJCQkJCQkvT3V0bGluZVdpZHRoIDAuMDQxNjcKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQkJXQoJCQkvUnVuTGVuZ3RoQXJyYXkgWyA1IF0KCQkJL0lzSm9pbmFibGUgMgoJCT4+CgkJL0dyaWRJbmZvCgkJPDwKCQkJL0dyaWRJc09uIGZhbHNlCgkJCS9TaG93R3JpZCBmYWxzZQoJCQkvR3JpZFNpemUgMTguMAoJCQkvR3JpZExlYWRpbmcgMjIuMAoJCQkvR3JpZENvbG9yCgkJCTw8CgkJCQkvVHlwZSAxCgkJCQkvVmFsdWVzIFsgMC4wIDAuMCAwLjAgMS4w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cnRJbmRlbnQgMC4wCgkJCQkvRW5kSW5kZW50IDAuMAoJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJL1NwYWNlQWZ0ZXIgMC4wCgkJCQkvQXV0b0h5cGhlbmF0ZSB0cnVlCgkJCQkvSHlwaGVuYXRlZFdvcmRTaXplIDYKCQkJCS9QcmVIeXBoZW4gMgoJCQkJL1Bvc3RIeXBoZW4gMgoJCQkJL0NvbnNlY3V0aXZlSHlwaGVucyA4CgkJCQkvWm9uZSAzNi4wCgkJCQkvV29yZFNwYWNpbmcgWyAwLjggMS4wIDEuMzMgXQoJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJL0xlYWRpbmdUeXBlIDAKCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkvQnVyYXNhZ2FyaSBmYWxzZQoJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJPj4KCQk+PgoJCV0KCQkvU3R5bGVTaGVldFNldCBbCgkJPDwKCQkJL05hbWUgKP7/AFIARwBCACAALQAgAE4AbwByAG0AYQBsKQoJCQkvU3R5bGVTaGVldERhdGEKCQkJPDwKCQkJCS9Gb250IDEKCQkJCS9Gb250U2l6ZSAxMi4wCgkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkvQXV0b0xlYWRpbmcgdHJ1ZQoJCQkJL0xlYWRpbmcgMC4wCgkJCQkvSG9yaXpvbnRhbFNjYWxlIDEuMAoJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkvVHJhY2tpbmcgMAoJCQkJL0F1dG9LZXJuaW5nIHRydWUKCQkJCS9LZXJuaW5nIDAKCQkJCS9CYXNlbGluZVNoaWZ0IDAuMAoJCQkJL0ZvbnRDYXBzIDAKCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJL1VuZGVybGluZSBmYWxzZQoJCQkJL1N0cmlrZXRocm91Z2ggZmFsc2UKCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJL0RMaWdhdHVyZXMgZmFsc2UKCQkJCS9CYXNlbGluZURpcmVjdGlvbiAyCgkJCQkvVHN1bWUgMC4wCgkJCQkvU3R5bGVSdW5BbGlnbm1lbnQgMgoJCQkJL0xhbmd1YWdlIDAKCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkvRmlsbENvbG9yCgkJCQk8PAoJCQkJCS9UeXBlIDEKCQkJCQkvVmFsdWVzIFsgMS4wIDAuMCAwLjAgMC4wIF0KCQkJCT4+CgkJCQkvU3Ryb2tlQ29sb3IKCQkJCTw8CgkJCQkJL1R5cGUgMQoJCQkJCS9WYWx1ZXMgWyAxLjAgMC4wIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJL0ZpbGxGaXJzdCB0cnVlCgkJCQkvWVVuZGVybGluZSAxCgkJCQkvT3V0bGluZVdpZHRoIDEuMAoJCQk+PgoJCT4+CgkJXQoJCS9Gb250U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8ASABlAGwAdgBlAHQAaQBjAGEATgBlAHUAZQAtAEIAbwBsAGQpCgkJCS9TY3JpcHQgMAoJCQkvRm9udFR5cGUgMAoJCQkvU3ludGhldGljIDAKCQk+PgoJCTw8CgkJCS9OYW1lICj+/wBNAHkAcgBpAGEAZABQAHIAbwAtAFIAZQBnAHUAbABhAHIpCgkJCS9TY3JpcHQgMAoJCQkvRm9udFR5cGUgMAoJCQkvU3ludGhldGljIDAKCQk+PgoJCTw8CgkJCS9OYW1lICj+/wBBAGQAbwBiAGUASQBuAHYAaQBzAEYAbwBuAHQpCgkJCS9TY3JpcHQgMAoJCQkvRm9udFR5cGUgMAoJCQkvU3ludGhldGljIDAKCQk+PgoJCV0KCQkvU3VwZXJzY3JpcHRTaXplIDAuNTgzCgkJL1N1cGVyc2NyaXB0UG9zaXRpb24gMC4zMzMKCQkvU3Vic2NyaXB0U2l6ZSAwLjU4MwoJCS9TdWJzY3JpcHRQb3NpdGlvbiAwLjMzMwoJCS9TbWFsbENhcFNpemUgMC43Cgk+PgoJL0RvY3VtZW50UmVzb3VyY2VzCgk8PAoJCS9LaW5zb2t1U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8AUABoAG8AdABvAHMAaABvAHAASwBpAG4AcwBvAGsAdQBIAGEAcgBkKQoJCQkvTm9TdGFydCAo/v8wATAC/wz/DjD7/xr/G/8f/wEw/CAVIBkgHf8JMBX/Pf9dMAkwCzANMA8wETD9MP4wnTCeMAUwQTBDMEUwRzBJMGMwgzCFMIcwjjChMKMwpTCnMKkwwzDjMOUw5zDuMPUw9jCbMJwAPwAhAFwpAF0AfQAsAC4AOgA7IQMhCQCi/wUgMCkKCQkJL05vRW5kICj+/yAYIBz/CDAU/zv/WzAIMAowDDAOMBAAXCgAWwB7/+X/BACj/yAApzAS/wMpCgkJCS9LZWVwICj+/yAVICUpCgkJCS9IYW5naW5nICj+/zABMAIALgAsKQoJCT4+CgkJPDwKCQkJL05hbWUgKP7/AFAAaABvAHQAbwBzAGgAbwBwAEsAaQBuAHMAbwBrAHUAUwBvAGYAdCkKCQkJL05vU3RhcnQgKP7/MAEwAv8M/w4w+/8a/xv/H/8BIBkgHf8JMBX/Pf9dMAkwCzANMA8wETD9MP4wnTCeMAUpCgkJCS9Ob0VuZCAo/v8gGCAc/wgwFP87/1swCDAKMAwwDjAQKQoJCQkvS2VlcCAo/v8gFSAlKQoJCQkvSGFuZ2luZyAo/v8wATACAC4ALCkKCQk+PgoJCV0KCQkvTW9qaUt1bWlTZXQgWwoJCTw8CgkJCS9JbnRlcm5hbE5hbWUgKP7/AFAAaABvAHQAbwBzAGgAbwBwADYATQBvAGoAaQBLAHUAbQBpAFMAZQB0ADEpCgkJPj4KCQk8PAoJCQkvSW50ZXJuYWxOYW1lICj+/wBQAGgAbwB0AG8AcwBoAG8AcAA2AE0AbwBqAGkASwB1AG0AaQBTAGUAdAAyKQoJCT4+CgkJPDwKCQkJL0ludGVybmFsTmFtZSAo/v8AUABoAG8AdABvAHMAaABvAHAANgBNAG8AagBpAEsAdQBtAGkAUwBlAHQAMykKCQk+PgoJCTw8CgkJCS9JbnRlcm5hbE5hbWUgKP7/AFAAaABvAHQAbwBzAGgAbwBwADYATQBvAGoAaQBLAHUAbQBpAFMAZQB0ADQpCgkJPj4KCQldCgkJL1RoZU5vcm1hbFN0eWxlU2hlZXQgMAoJCS9UaGVOb3JtYWxQYXJhZ3JhcGhTaGVldCAwCgkJL1BhcmFncmFwaFNoZWV0U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8AUgBHAEIAIAAtACAATgBvAHIAbQBhAGwpCgkJCS9EZWZhdWx0U3R5bGVTaGVldCAwCgkJCS9Qcm9wZXJ0aWVzCgkJCTw8CgkJCQkvSnVzdGlmaWNhdGlvbiAwCgkJCQkvRmlyc3RMaW5lSW5kZW50IDAuMAoJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJL0VuZEluZGVudCAwLjAKCQkJCS9TcGFjZUJlZm9yZSAwLjAKCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJL0h5cGhlbmF0ZWRXb3JkU2l6ZSA2CgkJCQkvUHJlSHlwaGVuIDIKCQkJCS9Qb3N0SHlwaGVuIDIKCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgOAoJCQkJL1pvbmUgMzYuMAoJCQkJL1dvcmRTcGFjaW5nIFsgMC44IDEuMCAxLjMzIF0KCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJL0J1cmFzYWdhcmkgZmFsc2UKCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCT4+CgkJPj4KCQldCgkJL1N0eWxlU2hlZXRTZXQgWwoJCTw8CgkJCS9OYW1lICj+/wBSAEcAQgAgAC0AIABOAG8AcgBtAGEAbCkKCQkJL1N0eWxlU2hlZXREYXRhCgkJCTw8CgkJCQkvRm9udCAxCgkJCQkvRm9udFNpemUgMTIuMAoJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJL0F1dG9MZWFkaW5nIHRydWUKCQkJCS9MZWFkaW5nIDAuMAoJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJL1RyYWNraW5nIDAKCQkJCS9BdXRvS2VybmluZyB0cnVlCgkJCQkvS2VybmluZyAwCgkJCQkvQmFzZWxpbmVTaGlmdCAwLjAKCQkJCS9Gb250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Z3JhcGhTaGVldAoJCQkJPDwKCQkJCQkvRGVmYXVsdFN0eWxlU2hlZXQgMAoJCQkJCS9Qcm9wZXJ0aWVzCgkJCQkJPDwKCQkJCQk+PgoJCQkJPj4KCQkJCS9BZGp1c3RtZW50cwoJCQkJPDwKCQkJCQkvQXhpcyBbIDEuMCAwLjAgMS4wIF0KCQkJCQkvWFkgWyAwLjAgMC4wIF0KCQkJCT4+CgkJCT4+CgkJCS9SdW5BcnJheSBbCgkJCTw8CgkJCQkvUGFyYWdyYXBoU2hlZXQKCQkJCTw8CgkJCQkJL0RlZmF1bHRTdHlsZVNoZWV0IDAKCQkJCQkvUHJvcGVydGllcwoJCQkJCTw8CgkJCQkJCS9KdXN0aWZpY2F0aW9uIDIKCQkJCQkJL0ZpcnN0TGluZUluZGVudCAwLjAKCQkJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJCQkvRW5kSW5kZW50IDAuMAoJCQkJCQkvU3BhY2VCZWZvcmUgMC4wCgkJCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJCQkvQXV0b0h5cGhlbmF0ZSB0cnVlCgkJCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgOAoJCQkJCQkvUHJlSHlwaGVuIDMKCQkJCQkJL1Bvc3RIeXBoZW4gMwoJCQkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDIKCQkJCQkJL1pvbmUgMzYuMAoJCQkJCQkvV29yZFNwYWNpbmcgWyAwLjggMS4wIDEuMzMgXQoJCQkJCQkvTGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJCQkvQnVyYXNhZ2FyaSBmYWxzZQoJCQkJCQkvS2luc29rdU9yZGVyIDAKCQkJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCQkJPj4KCQkJCT4+CgkJCQkvQWRqdXN0bWVudHMKCQkJCTw8CgkJCQkJL0F4aXMgWyAxLjAgMC4wIDEuMCBdCgkJCQkJL1hZIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQk+PgoJCQldCgkJCS9SdW5MZW5ndGhBcnJheSBbIDQgXQoJCQkvSXNKb2luYWJsZSAxCgkJPj4KCQkvU3R5bGVSdW4KCQk8PAoJCQkvRGVmYXVsdFJ1bkRhdGEKCQkJPDwKCQkJCS9TdHlsZVNoZWV0CgkJCQk8PAoJCQkJCS9TdHlsZVNoZWV0RGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJCS9SdW5BcnJheSBbCgkJCTw8CgkJCQkvU3R5bGVTaGVldAoJCQkJPDwKCQkJCQkvU3R5bGVTaGVldERhdGEKCQkJCQk8PAoJCQkJCQkvRm9udCAwCgkJCQkJCS9Gb250U2l6ZSAyMC43NzMzMQoJCQkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCQkJL0F1dG9MZWFkaW5nIGZhbHNlCgkJCQkJCS9MZWFkaW5nIDM5Ljg1NTA4CgkJCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJCQkvVHJhY2tpbmcgMjAKCQkJCQkJL0F1dG9LZXJuaW5nIHRydWUKCQkJCQkJL0tlcm5pbmcgMAoJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkvRm9udENhcHMgMAoJCQkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCQkJL1VuZGVybGluZSBmYWxzZQoJCQkJCQkvU3RyaWtldGhyb3VnaCBmYWxzZQoJCQkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCQkJL0RMaWdhdHVyZXMgZmFsc2UKCQkJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDEKCQkJCQkJL1RzdW1lIDAuMAoJCQkJCQkvU3R5bGVSdW5BbGlnbm1lbnQgMgoJCQkJCQkvTGFuZ3VhZ2UgMAoJCQkJCQkvTm9CcmVhayBmYWxzZQoJCQkJCQkvRmlsbENvbG9yCgkJCQkJCTw8CgkJCQkJCQkvVHlwZSAxCgkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJPj4KCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCTw8CgkJCQkJCQkvVHlwZSAxCgkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJPj4KCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJL0ZpbGxGaXJzdCBmYWxzZQoJCQkJCQkvWVVuZGVybGluZSAxCgkJCQkJCS9PdXRsaW5lV2lkdGggMC4wNDE2NwoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCQldCgkJCS9SdW5MZW5ndGhBcnJheSBbIDQgXQoJCQkvSXNKb2luYWJsZSAyCgkJPj4KCQkvR3JpZEluZm8KCQk8PAoJCQkvR3JpZElzT24gZmFsc2UKCQkJL1Nob3dHcmlkIGZhbHNlCgkJCS9HcmlkU2l6ZSAxOC4wCgkJCS9HcmlkTGVhZGluZyAyMi4wCgkJCS9HcmlkQ29sb3IKCQkJPDwKCQkJCS9UeXBlIDEKCQkJCS9WYWx1ZXMgWyAwLjAgMC4wIDAuMCAxLjAgXQoJCQk+PgoJCQkvR3JpZExlYWRpbmdGaWxsQ29sb3IKCQkJPDwKCQkJCS9UeXBlIDEKCQkJCS9WYWx1ZXMgWyAwLjAgMC4wIDAuMCAxLjAgXQoJCQk+PgoJCQkvQWxpZ25MaW5lSGVpZ2h0VG9HcmlkRmxhZ3MgZmFsc2UKCQk+PgoJCS9BbnRpQWxpYXMgNAoJCS9Vc2VGcmFjdGlvbmFsR2x5cGhXaWR0aHMgdHJ1ZQoJCS9SZW5kZXJlZAoJCTw8CgkJCS9WZXJzaW9uIDEKCQkJL1NoYXBlcwoJCQk8PAoJCQkJL1dyaXRpbmdEaXJlY3Rpb24gMAoJCQkJL0NoaWxkcmVuIFsKCQkJCTw8CgkJCQkJL1NoYXBlVHlwZSAwCgkJCQkJL1Byb2Nlc3Npb24gMAoJCQkJCS9MaW5lcwoJCQkJCTw8CgkJCQkJCS9Xcml0aW5nRGlyZWN0aW9uIDAKCQkJCQkJL0NoaWxkcmVuIFsgXQoJCQkJCT4+CgkJCQkJL0Nvb2tpZQoJCQkJCTw8CgkJCQkJCS9QaG90b3Nob3AKCQkJCQkJPDwKCQkJCQkJCS9TaGFwZVR5cGUgMAoJCQkJCQkJL1BvaW50QmFzZSBbIDAuMCAwLjAgXQoJCQkJCQkJL0Jhc2UKCQkJCQkJ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ZQoJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJPj4KCQk+PgoJCV0KCQkvU3R5bGVTaGVldFNldCBbCgkJPDwKCQkJL05hbWUgKP7/AFIARwBCACAALQAgAE4AbwByAG0AYQBsKQoJCQkvU3R5bGVTaGVldERhdGEKCQkJPDwKCQkJCS9Gb250IDEKCQkJCS9Gb250U2l6ZSAxMi4wCgkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkvQXV0b0xlYWRpbmcgdHJ1ZQoJCQkJL0xlYWRpbmcgMC4wCgkJCQkvSG9yaXpvbnRhbFNjYWxlIDEuMAoJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkvVHJhY2tpbmcgMAoJCQkJL0F1dG9LZXJuaW5nIHRydWUKCQkJCS9LZXJuaW5nIDAKCQkJCS9CYXNlbGluZVNoaWZ0IDAuMAoJCQkJL0ZvbnRDYXBzIDAKCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJL1VuZGVybGluZSBmYWxzZQoJCQkJL1N0cmlrZXRocm91Z2ggZmFsc2UKCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJL0RMaWdhdHVyZXMgZmFsc2UKCQkJCS9CYXNlbGluZURpcmVjdGlvbiAyCgkJCQkvVHN1bWUgMC4wCgkJCQkvU3R5bGVSdW5BbGlnbm1lbnQgMgoJCQkJL0xhbmd1YWdlIDAKCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkvRmlsbENvbG9yCgkJCQk8PAoJCQkJCS9UeXBlIDEKCQkJCQkvVmFsdWVzIFsgMS4wIDAuMCAwLjAgMC4wIF0KCQkJCT4+CgkJCQkvU3Ryb2tlQ29sb3IKCQkJCTw8CgkJCQkJL1R5cGUgMQoJCQkJCS9WYWx1ZXMgWyAxLjAgMC4wIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJL0ZpbGxGaXJzdCB0cnVlCgkJCQkvWVVuZGVybGluZSAxCgkJCQkvT3V0bGluZVdpZHRoIDEuMAoJCQk+PgoJCT4+CgkJXQoJCS9Gb250U2V0IFsKCQk8PAoJ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CQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgMgoJCQkJCQkvWm9uZSAzNi4wCgkJCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJCQk+PgoJCQkJPj4KCQkJCS9BZGp1c3RtZW50cwoJCQkJPDwKCQkJCQkvQXhpcyBbIDEuMCAwLjAgMS4wIF0KCQkJCQkvWFkgWyAwLjAgMC4wIF0KCQkJCT4+CgkJCT4+CgkJCV0KCQkJL1J1bkxlbmd0aEFycmF5IFsgNCBdCgkJCS9Jc0pvaW5hYmxlIDEKCQk+PgoJCS9TdHlsZVJ1bgoJCTw8CgkJCS9EZWZhdWx0UnVuRGF0YQoJCQk8PAoJCQkJL1N0eWxlU2hlZXQKCQkJCTw8CgkJCQkJL1N0eWxlU2hlZXREYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQkJL1J1bkFycmF5IFsKCQkJPDwKCQkJCS9TdHlsZVNoZWV0CgkJCQk8PAoJCQkJCS9TdHlsZVNoZWV0RGF0YQoJCQkJCTw8CgkJCQkJCS9Gb250IDAKCQkJCQkJL0ZvbnRTaXplIDIwLjc3MzMxCgkJCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkvQXV0b0xlYWRpbmcgZmFsc2UKCQkJCQkJL0xlYWRpbmcgMzkuODU1MDgKCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkJCS9UcmFja2luZyAyMAoJCQkJCQkvQXV0b0tlcm5pbmcgdHJ1ZQoJCQkJCQkvS2VybmluZyAwCgkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJCQkvVW5kZXJsaW5lIGZhbHNlCgkJCQkJCS9TdHJpa2V0aHJvdWdoIGZhbHNlCgkJCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJCQkvRExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMQoJCQkJCQkvVHN1bWUgMC4wCgkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCS9MYW5ndWFnZSAwCgkJCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJPDwKCQkJCQkJCS9UeXBlIDEKCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQk+PgoJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJPDwKCQkJCQkJCS9UeXBlIDEKCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQk+PgoJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCS9ZVW5kZXJsaW5lIDEKCQkJCQkJL091dGxpbmVXaWR0aCAwLjA0MTY3CgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJCV0KCQkJL1J1bkxlbmd0aEFycmF5IFsgNCBdCgkJCS9Jc0pvaW5hYmxlIDIKCQk+PgoJCS9HcmlkSW5mbwoJCTw8CgkJCS9HcmlkSXNPbiBmYWxzZQoJCQkvU2hvd0dyaWQgZmFsc2UKCQkJL0dyaWRTaXplIDE4LjAKCQkJL0dyaWRMZWFkaW5nIDIyLjAKCQkJL0dyaWRDb2xvcgoJCQk8PAoJCQkJL1R5cGUgMQoJCQkJL1ZhbHVlcyBbIDAuMCAwLjAgMC4wIDEuMCBdCgkJCT4+CgkJCS9HcmlkTGVhZGluZ0ZpbGxDb2xvcgoJCQk8PAoJCQkJL1R5cGUgMQoJCQkJL1ZhbHVlcyBbIDAuMCAwLjAgMC4wIDEuMCBdCgkJCT4+CgkJCS9BbGlnbkxpbmVI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cGhlbmF0ZWRXb3JkU2l6ZSA2CgkJCQkvUHJlSHlwaGVuIDIKCQkJCS9Qb3N0SHlwaGVuIDIKCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgOAoJCQkJL1pvbmUgMzYuMAoJCQkJL1dvcmRTcGFjaW5nIFsgMC44IDEuMCAxLjMzIF0KCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJL0J1cmFzYWdhcmkgZmFsc2UKCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCT4+CgkJPj4KCQldCgkJL1N0eWxlU2hlZXRTZXQgWwoJCTw8CgkJCS9OYW1lICj+/wBSAEcAQgAgAC0AIABOAG8AcgBtAGEAbCkKCQkJL1N0eWxlU2hlZXREYXRhCgkJCTw8CgkJCQkvRm9udCAxCgkJCQkvRm9udFNpemUgMTIuMAoJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJL0F1dG9MZWFkaW5nIHRydWUKCQkJCS9MZWFkaW5nIDAuMAoJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJL1RyYWNraW5nIDAKCQkJCS9BdXRvS2VybmluZyB0cnVlCgkJCQkvS2VybmluZyAwCgkJCQkvQmFzZWxpbmVTaGlmdCAwLjAKCQkJCS9Gb250Q2FwcyAwCgkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCS9VbmRlcmxpbmUgZmFsc2UKCQkJCS9TdHJpa2V0aHJvdWdoIGZhbHNlCgkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCS9ETGlnYXR1cmVzIGZhbHNlCgkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMgoJCQkJL1RzdW1lIDAuMAoJCQkJL1N0eWxlUnVuQWxpZ25tZW50IDIKCQkJCS9MYW5ndWFnZSAwCgkJCQkvTm9CcmVhayBmYWxzZQoJCQkJL0ZpbGxD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ZGVudCAwLjAKCQkJCS9TdGFydEluZGVudCAwLjAKCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkvU3BhY2VCZWZvcmUgMC4wCgkJCQkvU3BhY2VBZnRlciAwLjAKCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgNgoJCQkJL1ByZUh5cGhlbiAyCgkJCQkvUG9zdEh5cGhlbiAyCgkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDgKCQkJCS9ab25lIDM2LjAKCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkvTGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkvS2luc29rdU9yZGVyIDAKCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQk+PgoJCT4+CgkJXQoJCS9TdHlsZVNoZWV0U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8AUgBHAEIAIAAtACAATgBvAHIAbQBhAGwpCgkJCS9TdHlsZVNoZWV0RGF0YQoJCQk8PAoJCQkJL0ZvbnQgMQoJCQkJL0ZvbnRTaXplIDEyLjAKCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCS9BdXRvTGVhZGluZyB0cnVlCgkJCQkvTGVhZGluZyAwLjAKCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCS9UcmFja2luZyAwCgkJCQkvQXV0b0tlcm5pbmcgdHJ1ZQoJCQkJL0tlcm5pbmcgMAoJCQkJL0Jhc2VsaW5lU2hpZnQgMC4wCgkJCQkvRm9udENhcHMgMAoJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkvVW5kZXJsaW5lIGZhbHNlCgkJCQkvU3RyaWtldGhyb3VnaCBmYWxzZQoJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkvRExpZ2F0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Pj4KCQkJL1J1bkFycmF5IFsKCQkJPDwKCQkJCS9QYXJhZ3JhcGhTaGVldAoJCQkJPDwKCQkJCQkvRGVmYXVsdFN0eWxlU2hlZXQgMAoJCQkJCS9Qcm9wZXJ0aWVzCgkJCQkJPDwKCQkJCQkJL0p1c3RpZmljYXRpb24gMgoJCQkJCQkvRmlyc3RMaW5lSW5kZW50IDAuMAoJCQkJCQkvU3RhcnRJbmRlbnQgMC4wCgkJCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkJCS9TcGFjZUJlZm9yZSAwLjAKCQkJCQkJL1NwYWNlQWZ0ZXIgMC4wCgkJCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCQkJL0h5cGhlbmF0ZWRXb3JkU2l6ZSA4CgkJCQkJCS9QcmVIeXBoZW4gMwoJCQkJCQkvUG9zdEh5cGhlbiAzCgkJCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgMgoJCQkJCQkvWm9uZSAzNi4wCgkJCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJCQk+PgoJCQkJPj4KCQkJCS9BZGp1c3RtZW50cwoJCQkJPDwKCQkJCQkvQXhpcyBbIDEuMCAwLjAgMS4wIF0KCQkJCQkvWFkgWyAwLjAgMC4wIF0KCQkJCT4+CgkJCT4+CgkJCV0KCQkJL1J1bkxlbmd0aEFycmF5IFsgNCBdCgkJCS9Jc0pvaW5hYmxlIDEKCQk+PgoJCS9TdHlsZVJ1bgoJCTw8CgkJCS9EZWZhdWx0UnVuRGF0YQoJCQk8PAoJCQkJL1N0eWxlU2hlZXQKCQkJCTw8CgkJCQkJL1N0eWxlU2hlZXREYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQkJL1J1bkFycmF5IFsKCQkJPDwKCQkJCS9TdHlsZVNoZWV0CgkJCQk8PAoJCQkJCS9TdHlsZVNoZWV0RGF0YQoJCQkJCTw8CgkJCQkJCS9Gb250IDAKCQkJCQkJL0ZvbnRTaXplIDIwLjc3MzMxCgkJCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkvQXV0b0xlYWRpbmcgZmFsc2UKCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkJCS9UcmFja2luZyAyMAoJCQkJCQkvQXV0b0tlcm5pbmcgdHJ1ZQoJCQkJCQkvS2VybmluZyAwCgkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJCQkvVW5kZXJsaW5lIGZhbHNlCgkJCQkJCS9TdHJpa2V0aHJvdWdoIGZhbHNlCgkJCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJCQkvRExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMQoJCQkJCQkvVHN1bWUgMC4wCgkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCS9MYW5ndWFnZSAwCgkJCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJPDwKCQkJCQkJCS9UeXBlIDEKCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQk+PgoJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJPDwKCQkJCQkJCS9UeXBlIDEKCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQk+PgoJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCS9ZVW5kZXJsaW5lIDEKCQkJCQkJL091dGxpbmVXaWR0aCAwLjA0MTY3CgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJCV0KCQkJL1J1bkxlbmd0aEFycmF5IFsgNCBdCgkJCS9Jc0pvaW5hYmxlIDIKCQk+PgoJCS9HcmlkSW5mbwoJCTw8CgkJCS9HcmlkSXNPbiBmYWxzZQoJCQkvU2hvd0dyaWQgZmFsc2UKCQkJL0dyaWRTaXplIDE4LjAKCQkJL0dyaWRMZWFkaW5nIDIyLjAKCQkJL0dyaWRDb2xvcgoJCQk8PAoJCQkJL1R5cGUgMQoJCQkJL1ZhbHVlcyBbIDAuMCAwLjAgMC4wIDEuMCBdCgkJCT4+CgkJCS9HcmlkTGVhZGluZ0ZpbGxDb2xvcgoJCQk8PAoJCQkJL1R5cGUgMQoJCQkJL1ZhbHVlcyBbIDAuMCAwLjAgMC4wIDEuMCBdCgkJCT4+CgkJCS9BbGlnbkxpbmVIZWlnaHRUb0dyaWRGbGFncyBmYWxzZQoJCT4+CgkJL0FudGlBbGlhcyA0CgkJL1VzZUZyYWN0aW9uYWxHbHlwaFdpZHRocyB0cnVlCgkJL1JlbmRlcmVkCgkJPDwKCQkJL1ZlcnNpb24gMQoJCQkvU2hhcGVzCgkJCTw8CgkJCQkvV3JpdGluZ0RpcmVjdGlvbiAwCgkJCQkvQ2hpbGRyZW4gWwoJCQkJPDwKCQkJCQkvU2hhcGVUeXBlIDAKCQkJCQkvUHJvY2Vzc2lvbiAwCgkJCQkJL0xpbmVzCgkJCQkJPDwKCQkJCQkJL1dyaXRpbmdEaXJlY3Rpb24gMAoJCQkJCQkvQ2hpbGRyZW4gWyBdCgkJCQkJPj4KCQkJCQkvQ29va2llCgkJCQkJPDwKCQkJCQkJL1Bob3Rvc2hvcAoJCQkJCQk8PAoJCQkJCQkJL1NoYXBlVHlwZSAwCgkJCQkJCQkvUG9pbnRCYXNlIFsgMC4wIDAuMCBdCgkJCQkJCQkvQmFzZQoJCQkJCQkJPDwKCQkJCQkJCQkvU2hhcGVUeXBlIDAKCQkJCQkJCQkvVHJhbnNmb3JtUG9pbnQwIFsgMS4wIDAuMCBdCgkJCQkJCQkJL1RyYW5zZm9ybVBvaW50MSBbIDAuMCAxLjAgXQoJCQkJCQkJCS9UcmFuc2Zvcm1Qb2ludDIgWyAwLjAgMC4wIF0KCQkJCQkJCT4+CgkJCQkJCT4+CgkJCQkJPj4KCQkJCT4+CgkJCQldCgkJCT4+CgkJPj4KCT4+CgkvUmVzb3VyY2VEaWN0Cgk8PAoJCS9LaW5zb2t1U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8AUABoAG8AdABvAHMAaABvAHAASwBpAG4AcwBvAGsAdQBIAGEAcgBkKQoJCQkvTm9TdGFydCAo/v8wATAC/wz/DjD7/xr/G/8f/wEw/CAVIBkgHf8JMBX/Pf9dMAkwCzANMA8wETD9MP4wnTCeMAUwQTBDMEUwRzBJMGMwgzCFMIcwjjChMKMwpTCnMKkwwzDjMOUw5zDuMPUw9jCbMJwAPwAhAFwpAF0AfQAsAC4AOgA7IQMhCQCi/wUgMCkKCQkJL05vRW5kICj+/yAYIBz/CDAU/zv/WzAIMAowDDAOMBAAXCgAWwB7/+X/BACj/yAApzAS/wMpCgkJCS9LZWVwICj+/yAVICUpCgkJCS9IYW5naW5nICj+/zABMAIALgAsKQoJCT4+CgkJPDwKCQkJL05hbWUgKP7/AFAAaABvAHQAbwBzAGgAbwBwAEsAaQBuAHMAbwBrAHUAUwBvAGYAdCkKCQkJL05vU3RhcnQgKP7/MAEwAv8M/w4w+/8a/xv/H/8BIBkgHf8JMBX/Pf9dMAkwCzANMA8wETD9MP4wnTCeMAUpCgkJCS9Ob0VuZCAo/v8gGCAc/wgwFP87/1swCDAKMAwwDjAQKQoJCQkvS2VlcCAo/v8gFSAlKQoJCQkvSGFuZ2luZyAo/v8wATACAC4ALCkKCQk+PgoJCV0KCQkvTW9qaUt1bWlTZXQgWwoJCTw8CgkJCS9JbnRlcm5hbE5hbWUgKP7/AFAAaABvAHQAbwBzAGgAbwBwADYATQBvAGoAaQBLAHUAbQBpAFMAZQB0ADEpCgkJPj4KCQk8PAoJCQkvSW50ZXJuYWxOYW1lICj+/wBQAGgAbwB0AG8AcwBoAG8AcAA2AE0AbwBqAGkASwB1AG0AaQBTAGUAdAAyKQoJCT4+CgkJPDwKCQkJL0ludGVybmFsTmFtZSAo/v8AUABoAG8AdABvAHMAaABvAHAANgBNAG8AagBpAEsAdQBtAGkAUwBlAHQAMykKCQk+PgoJCTw8CgkJCS9JbnRlcm5hbE5hbWUgKP7/AFAAaABvAHQAbwBzAGgAbwBwADYATQBvAGoAaQBLAHUAbQBpAFMAZQB0ADQpCgkJPj4KCQldCgkJL1RoZU5vcm1hbFN0eWxlU2hlZXQgMAoJCS9UaGVOb3JtYWxQYXJhZ3JhcGhTaGVldCAwCgkJL1BhcmFncmFwaFNoZWV0U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8AUgBHAEIAIAAtACAATgBvAHIAbQBhAGwpCgkJCS9EZWZhdWx0U3R5bGVTaGVldCAwCgkJCS9Qcm9wZXJ0aWVzCgkJCTw8CgkJCQkvSnVzdGlmaWNhdGlvbiAwCgkJCQkvRmlyc3RMaW5lSW5kZW50IDAuMAoJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJL0VuZEluZGVudCAwLjAKCQkJCS9TcGFjZUJlZm9yZSAwLjAKCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJL0h5cGhlbmF0ZWRXb3JkU2l6ZSA2CgkJCQkvUHJlSHlwaGVuIDIKCQkJCS9Qb3N0SHlwaGVuIDIKCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgOAoJCQkJL1pvbmUgMzYuMAoJCQkJL1dvcmRTcGFjaW5nIFsgMC44IDEuMCAxLjMzIF0KCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJL0J1cmFzYWdhcmkgZmFsc2UKCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCT4+CgkJPj4KCQldCgkJL1N0eWxlU2hlZXRTZXQgWwoJCTw8CgkJCS9OYW1lICj+/wBSAEcAQgAgAC0AIABOAG8AcgBtAGEAbCkKCQkJL1N0eWxlU2hlZXREYXRhCgkJCTw8CgkJCQkvRm9udCAxCgkJCQkvRm9udFNpemUgMTIuMAoJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJL0F1dG9MZWFkaW5nIHRydWUKCQkJCS9MZWFkaW5nIDAuMAoJCQkJL0hvcml6b250YWxTY2FsZSAx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ZGluZyAxLjIKCQkJCQkJL0xlYWRpbmdUeXBlIDAKCQkJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCQkJL0J1cmFzYWdhcmkgZmFsc2UKCQkJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQkJCT4+CgkJCQk+PgoJCQkJL0FkanVzdG1lbnRzCgkJCQk8PAoJCQkJCS9BeGlzIFsgMS4wIDAuMCAxLjAgXQoJCQkJCS9YWSBbIDAuMCAwLjAgXQoJCQkJPj4KCQkJPj4KCQkJXQoJCQkvUnVuTGVuZ3RoQXJyYXkgWyA0IF0KCQkJL0lzSm9pbmFibGUgMQoJCT4+CgkJL1N0eWxlUnVuCgkJPDwKCQkJL0RlZmF1bHRSdW5EYXRhCgkJCTw8CgkJCQkvU3R5bGVTaGVldAoJCQkJPDwKCQkJCQkvU3R5bGVTaGVldERhdGEKCQkJCQk8PAoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCQkvUnVuQXJyYXkgWwoJCQk8PAoJCQkJL1N0eWxlU2hlZXQKCQkJCTw8CgkJCQkJL1N0eWxlU2hlZXREYXRhCgkJCQkJPDwKCQkJCQkJL0ZvbnQgMAoJCQkJCQkvRm9udFNpemUgMjAuNzczMzEKCQkJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkJCS9BdXRvTGVhZGluZyBmYWxzZQoJCQkJCQkvTGVhZGluZyAzOS44NjE5OAoJCQkJCQkvSG9yaXpvbnRhbFNjYWxlIDEuMAoJCQkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCQkJL1RyYWNraW5nIDIwCgkJCQkJCS9BdXRvS2VybmluZyB0cnVlCgkJCQkJCS9LZXJuaW5nIDAKCQkJCQkJL0Jhc2VsaW5lU2hpZnQgLTguODg2NjIKCQkJCQkJL0ZvbnRDYXBzIDAKCQkJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkJCS9VbmRlcmxpbmUgZmFsc2UKCQkJCQkJL1N0cmlrZXRocm91Z2ggZmFsc2UKCQkJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkJCS9ETGlnYXR1cmVzIGZhbHNlCgkJCQkJCS9CYXNlbGluZURpcmVjdGlvbiAxCgkJCQkJCS9Uc3VtZSAwLjAKCQkJCQkJL1N0eWxlUnVuQWxpZ25tZW50IDIKCQkJCQkJL0xhbmd1YWdlIDAKCQkJCQkJL05vQnJlYWsgZmFsc2UKCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQk8PAoJCQkJCQkJL1R5cGUgMQoJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCT4+CgkJCQkJCS9TdHJva2VDb2xvcgoJCQkJCQk8PAoJCQkJCQkJL1R5cGUgMQoJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCT4+CgkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkJCS9GaWxsRmlyc3QgZmFsc2UKCQkJCQkJL1lVbmRlcmxpbmUgMQoJCQkJCQkvT3V0bGluZVdpZHRoIDAuMDQxNjcKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQkJXQoJCQkvUnVuTGVuZ3RoQXJyYXkgWyA0IF0KCQkJL0lzSm9pbmFibGUgMgoJCT4+CgkJL0dyaWRJbmZvCgkJPDwKCQkJL0dyaWRJc09uIGZhbHNlCgkJCS9TaG93R3JpZCBmYWxzZQoJCQkvR3JpZFNpemUgMTguMAoJCQkvR3JpZExlYWRpbmcgMjIuMAoJCQkvR3JpZENvbG9yCgkJCTw8CgkJCQkvVHlwZSAxCgkJCQkvVmFsdWVzIFsgMC4wIDAuMCAwLjAgMS4wIF0KCQkJPj4KCQkJL0dyaWRMZWFkaW5nRmlsbENvbG9yCgkJCTw8CgkJCQkvVHlwZSAxCgkJCQkvVmFsdWVzIFsgMC4wIDAuMCAwLjAgMS4wIF0KCQkJPj4KCQkJL0FsaWduTGluZUhlaWdodFRvR3JpZEZsYWdzIGZhbHNlCgkJPj4KCQkvQW50aUFsaWFzIDQKCQkvVXNlRnJhY3Rpb25hbEdseXBoV2lkdGhzIHRydWUKCQkvUmVuZGVyZWQKCQk8PAoJCQkvVmVyc2lvbiAxCgkJCS9TaGFwZXMKCQkJPDwKCQkJCS9Xcml0aW5nRGlyZWN0aW9uIDAKCQkJCS9DaGlsZHJlbiBbCgkJCQk8PAoJCQkJCS9TaGFwZVR5cGUgMAoJCQkJCS9Qcm9jZXNzaW9uIDAKCQkJCQkvTGluZXMKCQkJCQk8PAoJCQkJCQkvV3JpdGluZ0RpcmVjdGlvbiAwCgkJCQkJCS9DaGlsZHJlbiBbIF0KCQkJCQk+PgoJCQkJCS9Db29raWUKCQkJCQk8PAoJCQkJCQkvUGhvdG9zaG9wCgkJCQkJCTw8CgkJCQkJCQkvU2hhcGVUeXBlIDAKCQkJCQkJCS9Qb2ludEJhc2UgWyAwLjAgMC4wIF0KCQkJCQkJCS9CYXNlCgkJCQkJCQk8PAoJCQkJCQkJCS9TaGFwZVR5cGUgMAoJCQkJCQkJCS9UcmFuc2Zvcm1Qb2ludDAgWyAxLjAgMC4wIF0KCQkJCQkJCQkvVHJhbnNmb3JtUG9pbnQxIFsgMC4wIDEuMCBdCgkJCQkJCQkJL1RyYW5zZm9ybVBvaW50MiBbIDAuMCAwLjAgXQoJCQkJCQkJPj4KCQkJCQkJPj4KCQkJCQk+PgoJCQkJPj4KCQkJCV0KCQkJPj4KCQk+PgoJPj4KCS9SZXNvdXJjZURpY3QKCTw8CgkJL0tpbnNva3VTZXQgWwoJCTw8CgkJCS9OYW1lICj+/wBQAGgAbwB0AG8AcwBoAG8AcABLAGkAbgBzAG8AawB1AEgAYQByAGQpCgkJCS9Ob1N0YXJ0ICj+/zABMAL/DP8OMPv/Gv8b/x//ATD8IBUgGSAd/wkwFf89/10wCTALMA0wDzARMP0w/jCdMJ4wBTBBMEMwRTBHMEkwYzCDMIUwhzCOMKEwozClMKcwqTDDMOMw5TDnMO4w9TD2MJswnAA/ACEAXCkAXQB9ACwALgA6ADshAyEJAKL/BSAwKQoJCQkvTm9FbmQgKP7/IBggHP8IMBT/O/9bMAgwCjAMMA4wEABcKABbAHv/5f8EAKP/IACnMBL/AykKCQkJL0tlZXAgKP7/IBUgJSkKCQkJL0hhbmdpbmcgKP7/MAEwAgAuACwpCgkJPj4KCQk8PAoJCQkvTmFtZSAo/v8AUABoAG8AdABvAHMAaABvAHAASwBpAG4AcwBvAGsAdQBTAG8AZgB0KQoJCQkvTm9TdGFydCAo/v8wATAC/wz/DjD7/xr/G/8f/wEgGSAd/wkwFf89/10wCTALMA0wDzARMP0w/jCdMJ4wBSkKCQkJL05vRW5kICj+/yAYIBz/CDAU/zv/WzAIMAowDDAOMBApCgkJCS9LZWVwICj+/yAVICUpCgkJCS9IYW5naW5nICj+/zABMAIALgAsKQoJCT4+CgkJXQoJCS9Nb2ppS3VtaVNldCBbCgkJPDwKCQkJL0ludGVybmFsTmFtZSAo/v8AUABoAG8AdABvAHMAaABvAHAANgBNAG8AagBpAEsAdQBtAGkAUwBlAHQAMSkKCQk+PgoJCTw8CgkJCS9JbnRlcm5hbE5hbWUgKP7/AFAAaABvAHQAbwBzAGgAbwBwADYATQBvAGoAaQBLAHUAbQBpAFMAZQB0ADIpCgkJPj4KCQk8PAoJCQkvSW50ZXJuYWxOYW1lICj+/wBQAGgAbwB0AG8AcwBoAG8AcAA2AE0AbwBqAGkASwB1AG0AaQBTAGUAdAAzKQoJCT4+CgkJPDwKCQkJL0ludGVybmFsTmFtZSAo/v8AUABoAG8AdABvAHMAaABvAHAANgBNAG8AagBpAEsAdQBtAGkAUwBlAHQANCkKCQk+PgoJCV0KCQkvVGhlTm9ybWFsU3R5bGVTaGVldCAwCgkJL1RoZU5vcm1hbFBhcmFncmFwaFNoZWV0IDAKCQkvUGFyYWdyYXBoU2hlZXRTZXQgWwoJCTw8CgkJCS9OYW1lICj+/wBSAEcAQgAgAC0AIABOAG8AcgBtAGEAbCkKCQkJL0RlZmF1bHRTdHlsZVNoZWV0IDAKCQkJL1Byb3BlcnRpZXMKCQkJPDwKCQkJCS9KdXN0aWZpY2F0aW9uIDAKCQkJCS9GaXJzdExpbmVJbmRlbnQgMC4wCgkJCQkvU3RhcnRJbmRlbnQgMC4wCgkJCQkvRW5kSW5kZW50IDAuMAoJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJL1NwYWNlQWZ0ZXIgMC4wCgkJCQkvQXV0b0h5cGhlbmF0ZSB0cnVlCgkJCQkvSHlwaGVuYXRlZFdvcmRTaXplIDYKCQkJCS9QcmVIeXBoZW4gMgoJCQkJL1Bvc3RIeXBoZW4gMgoJCQkJL0NvbnNlY3V0aXZlSHlwaGVucyA4CgkJCQkvWm9uZSAzNi4wCgkJCQkvV29yZFNwYWNpbmcgWyAwLjggMS4wIDEuMzMgXQoJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJL0xlYWRpbmdUeXBlIDAKCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkvQnVyYXNhZ2FyaSBmYWxzZQoJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJPj4KCQk+PgoJCV0KCQkvU3R5bGVTaGVldFNldCBbCgkJPDwKCQkJL05hbWUgKP7/AFIARwBCACAALQAgAE4AbwByAG0AYQBsKQoJCQkvU3R5bGVTaGVldERhdGEKCQkJPDwKCQkJCS9Gb250IDEKCQkJCS9Gb250U2l6ZSAxMi4wCgkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkvQXV0b0xlYWRpbmcgdHJ1ZQoJCQkJL0xlYWRpbmcgMC4wCgkJCQkvSG9yaXpvbnRhbFNjYWxlIDEuMAoJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkvVHJhY2tpbmcgMAoJCQkJL0F1dG9LZXJuaW5nIHRydWUKCQkJCS9LZXJuaW5nIDAKCQkJCS9CYXNlbGluZVNoaWZ0IDAuMAoJCQkJL0ZvbnRDYXBzIDAKCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJL1VuZGVybGluZSBmYWxzZQoJCQkJL1N0cmlrZXRocm91Z2ggZmFsc2UKCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJL0RMaWdhdHVyZXMgZmFsc2UKCQkJCS9CYXNlbGluZURpcmVjdGlvbiAyCgkJCQkvVHN1bWUgMC4wCgkJCQkvU3R5bGVSdW5BbGlnbm1lbnQgMgoJCQkJL0xhbmd1YWdlIDAKCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkvRmlsbENvbG9yCgkJCQk8PAoJCQkJCS9UeXBlIDEKCQkJCQkvVmFsdWVzIFsgMS4wIDAuMCAwLjAgMC4wIF0KCQkJCT4+CgkJCQkvU3Ryb2tlQ29sb3IKCQkJCTw8CgkJCQkJL1R5cGUgMQoJCQkJCS9WYWx1ZXMgWyAxLjAgMC4wIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkv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SHlwaGVuIDIKCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgOAoJCQkJL1pvbmUgMzYuMAoJCQkJL1dvcmRTcGFjaW5nIFsgMC44IDEuMCAxLjMzIF0KCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJL0J1cmFzYWdhcmkgZmFsc2UKCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCT4+CgkJPj4KCQldCgkJL1N0eWxlU2hlZXRTZXQgWwoJCTw8CgkJCS9OYW1lICj+/wBSAEcAQgAgAC0AIABOAG8AcgBtAGEAbCkKCQkJL1N0eWxlU2hlZXREYXRhCgkJCTw8CgkJCQkvRm9udCAxCgkJCQkvRm9udFNpemUgMTIuMAoJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJL0F1dG9MZWFkaW5nIHRydWUKCQkJCS9MZWFkaW5nIDAuMAoJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJL1RyYWNraW5nIDAKCQkJCS9BdXRvS2VybmluZyB0cnVlCgkJCQkvS2VybmluZyAwCgkJCQkvQmFzZWxpbmVTaGlmdCAwLjAKCQkJCS9Gb250Q2FwcyAwCgkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCS9VbmRlcmxpbmUgZmFsc2UKCQkJCS9TdHJpa2V0aHJvdWdoIGZhbHNlCgkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCS9ETGlnYXR1cmVzIGZhbHNlCgkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMgoJCQkJL1RzdW1lIDAuMAoJCQkJL1N0eWxlUnVuQWxpZ25tZW50IDIKCQkJCS9MYW5ndWFnZSAwCgkJCQkvTm9CcmVhayBmYWxzZQoJCQkJL0ZpbGxDb2xvcgoJCQkJPDwKCQkJCQkvVHlwZSAxCgkJCQkJL1ZhbHVlcyBbIDEuMCAw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CQkJCS9KdXN0aWZpY2F0aW9uIDIKCQkJCQkJL0ZpcnN0TGluZUluZGVudCAwLjAKCQkJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJCQkvRW5kSW5kZW50IDAuMAoJCQkJCQkvU3BhY2VCZWZvcmUgMC4wCgkJCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJCQkvQXV0b0h5cGhlbmF0ZSB0cnVlCgkJCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgOAoJCQkJCQkvUHJlSHlwaGVuIDMKCQkJCQkJL1Bvc3RIeXBoZW4gMwoJCQkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDIKCQkJCQkJL1pvbmUgMzYuMAoJCQkJCQkvV29yZFNwYWNpbmcgWyAwLjggMS4wIDEuMzMgXQoJCQkJCQkvTGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJCQkvQnVyYXNhZ2FyaSBmYWxzZQoJCQkJCQkvS2luc29rdU9yZGVyIDAKCQkJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCQkJPj4KCQkJCT4+CgkJCQkvQWRqdXN0bWVudHMKCQkJCTw8CgkJCQkJL0F4aXMgWyAxLjAgMC4wIDEuMCBdCgkJCQkJL1hZIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQk+PgoJCQldCgkJCS9SdW5MZW5ndGhBcnJheSBbIDQgXQoJCQkvSXNKb2luYWJsZSAxCgkJPj4KCQkvU3R5bGVSdW4KCQk8PAoJCQkvRGVmYXVsdFJ1bkRhdGEKCQkJPDwKCQkJCS9TdHlsZVNoZWV0CgkJCQk8PAoJCQkJCS9TdHlsZVNoZWV0RGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJCS9SdW5BcnJheSBbCgkJCTw8CgkJCQkvU3R5bGVTaGVldAoJCQkJPDwKCQkJCQkvU3R5bGVTaGVldERhdGEKCQkJCQk8PAoJCQkJCQkvRm9udCAwCgkJCQkJCS9Gb250U2l6ZSAyMC43NzMzMQoJCQkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCQkJL0F1dG9MZWFkaW5nIGZhbHNlCgkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJCQkvVHJhY2tpbmcgMjAKCQkJCQkJL0F1dG9LZXJuaW5nIHRydWUKCQkJCQkJL0tlcm5pbmcgMAoJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkvRm9udENhcHMgMAoJCQkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCQkJL1VuZGVybGluZSBmYWxzZQoJCQkJCQkvU3RyaWtldGhyb3VnaCBmYWxzZQoJCQkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCQkJL0RMaWdhdHVyZXMgZmFsc2UKCQkJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDEKCQkJCQkJL1RzdW1lIDAuMAoJCQkJCQkvU3R5bGVSdW5BbGlnbm1lbnQgMgoJCQkJCQkvTGFuZ3VhZ2UgMAoJCQkJCQkvTm9CcmVhayBmYWxzZQoJCQkJCQkvRmlsbENvbG9yCgkJCQkJCTw8CgkJCQkJCQkvVHlwZSAxCgkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJPj4KCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCTw8CgkJCQkJCQkvVHlwZSAxCgkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJPj4KCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJL0ZpbGxGaXJzdCBmYWxzZQoJCQkJCQkvWVVuZGVybGluZSAxCgkJCQkJCS9PdXRsaW5lV2lkdGggMC4wNDE2NwoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCQldCgkJCS9SdW5MZW5ndGhBcnJheSBbIDQgXQoJCQkvSXNKb2luYWJsZSAyCgkJPj4KCQkvR3JpZEluZm8KCQk8PAoJCQkvR3JpZElz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KP7/AFIARwBCACAALQAgAE4AbwByAG0AYQBsKQoJCQkvRGVmYXVsdFN0eWxlU2hlZXQgMAoJCQkvUHJvcGVydGllcwoJCQk8PAoJCQkJL0p1c3RpZmljYXRpb24gMAoJCQkJL0ZpcnN0TGluZUluZGVudCAwLjAKCQkJCS9TdGFydEluZGVudCAwLjAKCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkvU3BhY2VCZWZvcmUgMC4wCgkJCQkvU3BhY2VBZnRlciAwLjAKCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgNgoJCQkJL1ByZUh5cGhlbiAyCgkJCQkvUG9zdEh5cGhlbiAyCgkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDgKCQkJCS9ab25lIDM2LjAKCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkvTGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkvS2luc29rdU9yZGVyIDAKCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQk+PgoJCT4+CgkJXQoJCS9TdHlsZVNoZWV0U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8AUgBHAEIAIAAtACAATgBvAHIAbQBhAGwpCgkJCS9TdHlsZVNoZWV0RGF0YQoJCQk8PAoJCQkJL0ZvbnQgMQoJCQkJL0ZvbnRTaXplIDEyLjAKCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCS9BdXRvTGVhZGluZyB0cnVlCgkJCQkvTGVhZGluZyAwLjAKCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCS9UcmFja2luZyAwCgkJCQkvQXV0b0tlcm5pbmcgdHJ1ZQoJCQkJL0tlcm5pbmcgMAoJCQkJL0Jhc2VsaW5lU2hpZnQgMC4wCgkJ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YXRkdGEAACHJCgo8PAoJL0VuZ2luZURpY3QKCTw8CgkJL0VkaXRvcgoJCTw8CgkJCS9UZXh0ICj+/wBXAE0AQQANKQoJCT4+CgkJL1BhcmFncmFwaFJ1bgoJCTw8CgkJCS9EZWZhdWx0UnVuRGF0YQoJCQk8PAoJCQkJL1BhcmFncmFwaFNoZWV0CgkJCQk8PAoJCQkJCS9EZWZhdWx0U3R5bGVTaGVldCAwCgkJCQkJL1Byb3BlcnRpZXMKCQkJCQk8PAoJCQkJCT4+CgkJCQk+PgoJCQkJL0FkanVzdG1lbnRzCgkJCQk8PAoJCQkJCS9BeGlzIFsgMS4wIDAuMCAxLjAgXQoJCQkJCS9YWSBbIDAuMCAwLjAgXQoJCQkJPj4KCQkJPj4KCQkJL1J1bkFycmF5IFsKCQkJPDwKCQkJCS9QYXJhZ3JhcGhTaGVldAoJCQkJPDwKCQkJCQkvRGVmYXVsdFN0eWxlU2hlZXQgMAoJCQkJCS9Qcm9wZXJ0aWVzCgkJCQkJPDwKCQkJCQkJL0p1c3RpZmljYXRpb24gMgoJCQkJCQkvRmlyc3RMaW5lSW5kZW50IDAuMAoJCQkJCQkvU3RhcnRJbmRlbnQgMC4wCgkJCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkJCS9TcGFjZUJlZm9yZSAwLjAKCQkJCQkJL1NwYWNlQWZ0ZXIgMC4wCgkJCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCQkJL0h5cGhlbmF0ZWRXb3JkU2l6ZSA4CgkJCQkJCS9QcmVIeXBoZW4gMwoJCQkJCQkvUG9zdEh5cGhlbiAzCgkJCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgMgoJCQkJCQkvWm9uZSAzNi4wCgkJCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJCQk+PgoJCQkJPj4KCQkJCS9BZGp1c3RtZW50cwoJCQkJPDwKCQkJCQkvQXhpcyBbIDEuMCAwLjAgMS4wIF0KCQkJCQkvWFkgWyAwLjAgMC4wIF0KCQkJCT4+CgkJCT4+CgkJCV0KCQkJL1J1bkxlbmd0aEFycmF5IFsgNCBdCgkJCS9Jc0pvaW5hYmxlIDEKCQk+PgoJCS9TdHlsZVJ1bgoJCTw8CgkJCS9EZWZhdWx0UnVuRGF0YQoJCQk8PAoJCQkJL1N0eWxlU2hlZXQKCQkJCTw8CgkJCQkJL1N0eWxlU2hlZXREYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQkJL1J1bkFycmF5IFsKCQkJPDwKCQkJCS9TdHlsZVNoZWV0CgkJCQk8PAoJCQkJCS9TdHlsZVNoZWV0RGF0YQoJCQkJCTw8CgkJCQkJCS9Gb250IDAKCQkJCQkJL0ZvbnRTaXplIDIwLjc3MzMxCgkJCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkvQXV0b0xlYWRpbmcgZmFsc2UKCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkJCS9UcmFja2luZyAyMAoJCQkJCQkvQXV0b0tlcm5pbmcgdHJ1ZQoJCQkJCQkvS2VybmluZyAwCgkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJCQkvVW5kZXJsaW5lIGZhbHNlCgkJCQkJCS9TdHJpa2V0aHJvdWdoIGZhbHNlCgkJCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJCQkvRExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMQoJCQkJCQkvVHN1bWUgMC4wCgkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCS9MYW5ndWFnZSAwCgkJCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJPDwKCQkJCQkJCS9UeXBlIDEKCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQk+PgoJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJPDwKCQkJCQkJCS9UeXBlIDEKCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQk+PgoJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCS9ZVW5kZXJsaW5lIDEKCQkJCQkJL091dGxpbmVXaWR0aCAwLjA0MTY3CgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJCV0KCQkJL1J1bkxlbmd0aEFycmF5IFsgNCBdCgkJCS9Jc0pvaW5hYmxlIDIKCQk+PgoJCS9HcmlkSW5mbwoJCTw8CgkJCS9HcmlkSXNPbiBmYWxzZQoJCQkvU2hvd0dyaWQgZmFsc2UKCQkJL0dyaWRTaXplIDE4LjAKCQkJL0dyaWRMZWFkaW5nIDIyLjAKCQkJL0dyaWRDb2xvcgoJCQk8PAoJCQkJL1R5cGUgMQoJCQkJL1ZhbHVlcyBbIDAuMCAwLjAgMC4wIDEuMCBdCgkJCT4+CgkJCS9HcmlkTGVhZGluZ0ZpbGxDb2xvcgoJCQk8PAoJCQkJL1R5cGUgMQoJCQkJL1ZhbHVlcyBbIDAuMCAwLjAgMC4wIDEuMCBdCgkJCT4+CgkJCS9BbGlnbkxpbmVIZWlnaHRUb0dyaWRGbGFncyBmYWxzZQoJCT4+CgkJL0FudGlBbGlhcyA0CgkJL1VzZUZyYWN0aW9uYWxHbHlwaFdpZHRocyB0cnVlCgkJL1JlbmRlcmVkCgkJPDwKCQkJL1ZlcnNpb24gMQoJCQkvU2hhcGVzCgkJCTw8CgkJCQkvV3JpdGluZ0RpcmVjdGlvbiAwCgkJCQkvQ2hpbGRyZW4gWwoJCQkJPDwKCQkJCQkvU2hhcGVUeXBlIDAKCQkJCQkvUHJvY2Vzc2lvbiAwCgkJCQkJL0xpbmVzCgkJCQkJPDwKCQkJCQkJL1dyaXRpbmdEaXJlY3Rpb24gMAoJCQkJCQkvQ2hpbGRyZW4g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cmkgZmFsc2UKCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCT4+CgkJPj4KCQldCgkJL1N0eWxlU2hlZXRTZXQgWwoJCTw8CgkJCS9OYW1lICj+/wBSAEcAQgAgAC0AIABOAG8AcgBtAGEAbCkKCQkJL1N0eWxlU2hlZXREYXRhCgkJCTw8CgkJCQkvRm9udCAxCgkJCQkvRm9udFNpemUgMTIuMAoJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJL0F1dG9MZWFkaW5nIHRydWUKCQkJCS9MZWFkaW5nIDAuMAoJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJL1RyYWNraW5nIDAKCQkJCS9BdXRvS2VybmluZyB0cnVlCgkJCQkvS2VybmluZyAwCgkJCQkvQmFzZWxpbmVTaGlmdCAwLjAKCQkJCS9Gb250Q2FwcyAwCgkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCS9VbmRlcmxpbmUgZmFsc2UKCQkJCS9TdHJpa2V0aHJvdWdoIGZhbHNlCgkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCS9ETGlnYXR1cmVzIGZhbHNlCgkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMgoJCQkJL1RzdW1lIDAuMAoJCQkJL1N0eWxlUnVuQWxpZ25tZW50IDIKCQkJCS9MYW5ndWFnZSAwCgkJCQkvTm9CcmVhayBmYWxzZQoJCQkJL0ZpbGxDb2xvcgoJCQkJPDwKCQkJCQkvVHlwZSAxCgkJCQkJL1ZhbHVlcyBbIDEuMCAwLjAgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL1N0cm9rZUNvbG9yCgkJCQk8PAoJCQkJCS9UeXBlIDEKCQkJCQkvVmFsdWVzIFsgMS4wIDAuMCAwLjAgMC4wIF0KCQkJCT4+CgkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCS9GaWxsRmlyc3QgdHJ1ZQoJCQkJL1lVbmRlcmxpbmUgMQoJCQkJL091dGxpbmVXaWR0aCAxLjAKCQkJPj4KCQk+PgoJCV0KCQkvRm9udFNldCBb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IDAuMCAwLjAgMC4wIF0KCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkvS2luc29rdU9yZGVyIDAKCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQk+PgoJCT4+CgkJXQoJCS9TdHlsZVNoZWV0U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8AUgBHAEIAIAAtACAATgBvAHIAbQBhAGwpCgkJCS9TdHlsZVNoZWV0RGF0YQoJCQk8PAoJCQkJL0ZvbnQgMQoJCQkJL0ZvbnRTaXplIDEyLjAKCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCS9BdXRvTGVhZGluZyB0cnVlCgkJCQkvTGVhZGluZyAwLjAKCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCS9UcmFja2luZyAwCgkJCQkvQXV0b0tlcm5pbmcgdHJ1ZQoJCQkJL0tlcm5pbmcgMAoJCQkJL0Jhc2VsaW5lU2hpZnQgMC4wCgkJCQkvRm9udENhcHMgMAoJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkvVW5kZXJsaW5lIGZhbHNlCgkJCQkvU3RyaWtldGhyb3VnaCBmYWxzZQoJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkvRExpZ2F0dXJlcyBmYWxzZQoJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDIKCQkJCS9Uc3VtZSAwLjAKCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkvTGFuZ3VhZ2UgMAoJCQkJL05vQnJlYWsgZmFsc2UKCQkJCS9GaWxsQ29sb3IKCQkJCTw8CgkJCQkJL1R5cGUgMQoJCQkJCS9WYWx1ZXMgWyAxLjAgMC4wIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9TdHJva2VDb2xvcgoJCQkJPDwKCQkJCQkvVHlwZSAxCgkJCQkJL1ZhbHVlcyBbIDEuMCAwLjAgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkvRmlsbEZpcnN0IHRydWUKCQkJCS9ZVW5kZXJsaW5lIDEKCQkJCS9PdXRsaW5lV2lkdGggMS4wCgkJCT4+CgkJPj4KCQldCgkJL0ZvbnRTZXQgWwoJCTw8CgkJCS9OYW1lICj+/wBIAGUAbAB2AGUAdABpAGMAYQBOAGUAdQBlAC0AQgBvAGwAZCkKCQkJL1NjcmlwdCAwCgkJCS9Gb250VHlwZSAwCgkJCS9TeW50aGV0aWMgMAoJCT4+CgkJPDwKCQkJL05hbWUgKP7/AE0AeQByAGkAYQBkAFAAcgBvAC0AUgBlAGcAdQBsAGEAcikKCQkJL1NjcmlwdCAwCgkJCS9Gb250VHlwZSAwCgkJCS9TeW50aGV0aWMgMAoJCT4+CgkJPDwKCQkJL05hbWUgKP7/AEEAZABvAGIAZQBJAG4AdgBpAHMARgBvAG4AdCkKCQkJL1NjcmlwdCAwCgkJCS9Gb250VHlwZSAwCgkJCS9TeW50aGV0aWMgMAoJCT4+CgkJXQoJCS9TdXBlcnNjcmlwdFNpemUgMC41ODMKCQkvU3VwZXJzY3JpcHRQb3NpdGlvbiAwLjMzMwoJCS9TdWJzY3JpcHRTaXplIDAuNTgzCgkJL1N1YnNjcmlwdFBvc2l0aW9uIDAuMzMzCgkJL1NtYWxsQ2FwU2l6ZSAwLjcKCT4+Cj4+AAEAAAAQAAAAAQAAAAAABHdhcnAAAAAFAAAACXdhcnBTdHlsZWVudW0AAAAJd2FycFN0eWxlAAAACHdhcnBOb25lAAAACXdhcnBWYWx1ZWRvdWIAAAAAAAAAAAAAAA93YXJwUGVyc3BlY3RpdmVkb3ViAAAAAAAAAAAAAAAUd2FycFBlcnNwZWN0aXZlT3RoZXJkb3ViAAAAAAAAAAAAAAAKd2FycFJvdGF0ZWVudW0AAAAAT3JudAAAAABIcnpuAAAAAAAAAAAAAAAAAAAAADhCSU1sdW5pAAAADAAAAAMAVwBNAEEAADhCSU1sbnNyAAAABHJlbmQ4QklNbHlpZAAAAAQAAADxOEJJTWNsYmwAAAAEAQAAADhCSU1pbmZ4AAAABAAAAAA4QklNa25rbwAAAAQAAAAAOEJJTWxzcGYAAAAEAAAAADhCSU1sY2xyAAAACAAAAAAAAAAAOEJJTWZ4cnAAAAAQQCWF4ACPJzxAHWo78kzZSwAAAAgAAAAEAAAADwAAABcABP//AAAAhwAAAAAAHgABAAAAHgACAAAAHjhCSU1ub3Jt/wAKAAAAJIQAAAAAAAAAKAAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8ERkxBQwAAADhCSU1UeVNoAAAjmAABP9WQ7mjgTBoAAAAAAAAAAAAAAAAAAAAAP9WQ7mjgTBpAKgUZwFRPNkAmZVdqTjUgADIAAAAQAAAAAQAAAAAAAFR4THIAAAAGAAAAAFR4dCBURVhUAAAABQBGAEwAQQBDAAAAAAAMdGV4dEdyaWRkaW5nZW51bQAAAAx0ZXh0R3JpZGRpbmcAAAAATm9uZQAAAABPcm50ZW51bQAAAABPcm50AAAAAEhyem4AAAAAQW50QWVudW0AAAAAQW5udAAAAA5hbnRpQWxpYXNTaGFycAAAAAlUZXh0SW5kZXhsb25nAAAACAAAAApFbmdpbmVEYXRhdGR0YQAAIcsKCjw8CgkvRW5naW5lRGljdAoJPDwKCQkvRWRpdG9yCgkJPDwKCQkJL1RleHQgKP7/AEYATABBAEMADSkKCQk+PgoJCS9QYXJhZ3JhcGhSdW4KCQk8PAoJCQkvRGVmYXVsdFJ1bkRhdGEKCQkJPDwKCQkJCS9QYXJhZ3JhcGhTaGVldAoJCQkJPDwKCQkJCQkvRGVmYXVsdFN0eWxlU2hlZXQgMAoJCQkJCS9Qcm9wZXJ0aWVzCgkJCQkJPDwKCQkJCQk+PgoJCQkJPj4KCQkJCS9BZGp1c3RtZW50cwoJCQkJPDwKCQkJCQkvQXhpcyBbIDEuMCAwLjAgMS4wIF0KCQkJCQkvWFkgWyAwLjAgMC4wIF0KCQkJCT4+CgkJCT4+CgkJCS9SdW5BcnJheSBbCgkJCTw8CgkJCQkvUGFyYWdyYXBoU2hlZXQKCQkJCTw8CgkJCQkJL0RlZmF1bHRTdHlsZVNoZWV0IDAKCQkJCQkvUHJvcGVydGllcwoJCQkJCTw8CgkJCQkJCS9KdXN0aWZpY2F0aW9uIDIKCQkJCQkJL0ZpcnN0TGluZUluZGVudCAwLjAKCQkJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJCQkvRW5kSW5kZW50IDAuMAoJCQkJCQkvU3BhY2VCZWZvcmUgMC4wCgkJCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJCQkvQXV0b0h5cGhlbmF0ZSB0cnVlCgkJCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgOAoJCQkJCQkvUHJlSHlwaGVuIDMKCQkJCQkJL1Bvc3RIeXBoZW4gMwoJCQkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDIKCQkJCQkJL1pvbmUgMzYuMAoJCQkJCQkvV29yZFNwYWNpbmcgWyAwLjggMS4wIDEuMzMgXQoJCQkJCQkvTGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJCQkvQnVyYXNhZ2FyaSBmYWxzZQoJCQkJCQkvS2luc29rdU9yZGVyIDAKCQkJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCQkJPj4KCQkJCT4+CgkJCQkvQWRqdXN0bWVudHMKCQkJCTw8CgkJCQkJL0F4aXMgWyAxLjAgMC4wIDEuMCBdCgkJCQkJL1hZIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQk+PgoJCQldCgkJCS9SdW5MZW5ndGhBcnJheSBbIDUgXQoJCQkvSXNKb2luYWJsZSAxCgkJPj4KCQkvU3R5bGVSdW4KCQk8PAoJCQkvRGVmYXVsdFJ1bkRhdGEKCQkJPDwKCQkJCS9TdHlsZVNoZWV0CgkJCQk8PAoJCQkJCS9TdHlsZVNoZWV0RGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJCS9SdW5BcnJheSBbCgkJCTw8CgkJCQkvU3R5bGVTaGVldAoJCQkJPDwKCQkJCQkvU3R5bGVTaGVldERhdGEKCQkJCQk8PAoJCQkJCQkvRm9udCAwCgkJCQkJCS9Gb250U2l6ZSAyMC43NzMzMQoJCQkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCQkJL0F1dG9MZWFkaW5nIGZhbHNlCgkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJCQkvVHJhY2tpbmcgMjAKCQkJCQkJL0F1dG9LZXJuaW5nIHRydWUKCQkJCQkJL0tlcm5pbmcgMAoJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkvRm9udENhcHMgMAoJCQkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCQkJL1VuZGVybGluZSBmYWxzZQoJCQkJCQkvU3RyaWtldGhyb3VnaCBmYWxzZQoJCQkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCQkJL0RMaWdhdHVyZXMgZmFsc2UKCQkJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDEKCQkJCQkJL1RzdW1lIDAuMAoJCQkJCQkvU3R5bGVSdW5BbGlnbm1lbnQgMgoJCQkJCQkvTGFuZ3VhZ2UgMAoJCQkJCQkvTm9CcmVhayBmYWxzZQoJCQkJCQkvRmlsbENvbG9yCgkJCQkJCTw8CgkJCQkJCQkvVHlwZSAxCgkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJPj4KCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCTw8CgkJCQkJCQkvVHlwZSAxCgkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJPj4KCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJL0ZpbGxGaXJzdCBmYWxzZQoJCQkJCQkvWVVuZGVybGluZSAxCgkJCQkJCS9PdXRsaW5lV2lkdGggMC4wNDE2NwoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCQldCgkJCS9SdW5MZW5ndGhBcnJheSBbIDUgXQoJCQkvSXNKb2luYWJsZSAyCgkJPj4KCQkvR3JpZEluZm8KCQk8PAoJCQkvR3JpZElzT24gZmFsc2UKCQkJL1Nob3dHcmlkIGZhbHNlCgkJCS9HcmlkU2l6ZSAxOC4wCgkJCS9HcmlkTGVhZGluZyAyMi4wCgkJCS9HcmlkQ29sb3IKCQkJPDwKCQkJCS9UeXBl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CQkJL0ZpcnN0TGluZUluZGVudCAwLjAKCQkJCS9TdGFydEluZGVudCAwLjAKCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkvU3BhY2VCZWZvcmUgMC4wCgkJCQkvU3BhY2VBZnRlciAwLjAKCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgNgoJCQkJL1ByZUh5cGhlbiAyCgkJCQkvUG9zdEh5cGhlbiAyCgkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDgKCQkJCS9ab25lIDM2LjAKCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkvTGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkvS2luc29rdU9yZGVyIDAKCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQk+PgoJCT4+CgkJXQoJCS9TdHlsZVNoZWV0U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8AUgBHAEIAIAAtACAATgBvAHIAbQBhAGwpCgkJCS9TdHlsZVNoZWV0RGF0YQoJCQk8PAoJCQkJL0ZvbnQgMQoJCQkJL0ZvbnRTaXplIDEyLjAKCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCS9BdXRvTGVhZGluZyB0cnVlCgkJCQkvTGVhZGluZyAwLjAKCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCS9UcmFja2luZyAwCgkJCQkvQXV0b0tlcm5pbmcgdHJ1ZQoJCQkJL0tlcm5pbmcgMAoJCQkJL0Jhc2VsaW5lU2hpZnQgMC4wCgkJCQkvRm9udENhcHMgMAoJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkvVW5kZXJsaW5lIGZhbHNlCgkJCQkvU3RyaWtldGhyb3VnaCBmYWxzZQoJCQkJL0xpZ2F0dXJlcyB0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U2hlZXRTZXQgWwoJCTw8CgkJCS9OYW1lICj+/wBSAEcAQgAgAC0AIABOAG8AcgBtAGEAbCkKCQkJL0RlZmF1bHRTdHlsZVNoZWV0IDAKCQkJL1Byb3BlcnRpZXMKCQkJPDwKCQkJCS9KdXN0aWZpY2F0aW9uIDAKCQkJCS9GaXJzdExpbmVJbmRlbnQgMC4wCgkJCQkvU3RhcnRJbmRlbnQgMC4wCgkJCQkvRW5kSW5kZW50IDAuMAoJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJL1NwYWNlQWZ0ZXIgMC4wCgkJCQkvQXV0b0h5cGhlbmF0ZSB0cnVlCgkJCQkvSHlwaGVuYXRlZFdvcmRTaXplIDYKCQkJCS9QcmVIeXBoZW4gMgoJCQkJL1Bvc3RIeXBoZW4gMgoJCQkJL0NvbnNlY3V0aXZlSHlwaGVucyA4CgkJCQkvWm9uZSAzNi4wCgkJCQkvV29yZFNwYWNpbmcgWyAwLjggMS4wIDEuMzMgXQoJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJL0xlYWRpbmdUeXBlIDAKCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkvQnVyYXNhZ2FyaSBmYWxzZQoJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJPj4KCQk+PgoJCV0KCQkvU3R5bGVTaGVldFNldCBbCgkJPDwKCQkJL05hbWUgKP7/AFIARwBCACAALQAgAE4AbwByAG0AYQBsKQoJCQkvU3R5bGVTaGVldERhdGEKCQkJPDwKCQkJCS9Gb250IDEKCQkJCS9Gb250U2l6ZSAxMi4wCgkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkvQXV0b0xlYWRpbmcgdHJ1ZQoJCQkJL0xlYWRpbmcgMC4wCgkJCQkvSG9yaXpvbnRhbFNjYWxlIDEuMAoJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkvVHJhY2tpbmcgMAoJCQkJL0F1dG9LZXJuaW5nIHRydWUKCQkJCS9LZXJuaW5nIDAK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CQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCQkJL0xlYWRpbmdUeXBlIDAKCQkJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCQkJL0J1cmFzYWdhcmkgZmFsc2UKCQkJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQkJCT4+CgkJCQk+PgoJCQkJL0FkanVzdG1lbnRzCgkJCQk8PAoJCQkJCS9BeGlzIFsgMS4wIDAuMCAxLjAgXQoJCQkJCS9YWSBbIDAuMCAwLjAgXQoJCQkJPj4KCQkJPj4KCQkJXQoJCQkvUnVuTGVuZ3RoQXJyYXkgWyA0IF0KCQkJL0lzSm9pbmFibGUgMQoJCT4+CgkJL1N0eWxlUnVuCgkJPDwKCQkJL0RlZmF1bHRSdW5EYXRhCgkJCTw8CgkJCQkvU3R5bGVTaGVldAoJCQkJPDwKCQkJCQkvU3R5bGVTaGVldERhdGEKCQkJCQk8PAoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCQkvUnVuQXJyYXkgWwoJCQk8PAoJCQkJL1N0eWxlU2hlZXQKCQkJCTw8CgkJCQkJL1N0eWxlU2hlZXREYXRhCgkJCQkJPDwKCQkJCQkJL0ZvbnQgMAoJCQkJCQkvRm9udFNpemUgMjAuNzczMzEKCQkJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkJCS9BdXRvTGVhZGluZyBmYWxzZQoJCQkJCQkvTGVhZGluZyAzOS44NjE5OAoJCQkJCQkvSG9yaXpvbnRhbFNjYWxlIDEuMAoJCQkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCQkJL1RyYWNraW5nIDIwCgkJCQkJCS9BdXRvS2VybmluZyB0cnVlCgkJCQkJCS9LZXJuaW5nIDAKCQkJCQkJL0Jhc2VsaW5lU2hpZnQgLTguODg2NjIKCQkJCQkJL0ZvbnRDYXBzIDAKCQkJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkJCS9VbmRlcmxpbmUgZmFsc2UKCQkJCQkJL1N0cmlrZXRocm91Z2ggZmFsc2UKCQkJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkJCS9ETGlnYXR1cmVzIGZhbHNlCgkJCQkJCS9CYXNlbGluZURpcmVjdGlvbiAxCgkJCQkJCS9Uc3VtZSAwLjAKCQkJCQkJL1N0eWxlUnVuQWxpZ25tZW50IDIKCQkJCQkJL0xhbmd1YWdlIDAKCQkJCQkJL05vQnJlYWsgZmFsc2UKCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQk8PAoJCQkJCQkJL1R5cGUgMQoJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCT4+CgkJCQkJCS9TdHJva2VDb2xvcgoJCQkJCQk8PAoJCQkJCQkJL1R5cGUgMQoJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCT4+CgkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkJCS9GaWxsRmlyc3QgZmFsc2UKCQkJCQkJL1lVbmRlcmxpbmUgMQoJCQkJCQkvT3V0bGluZVdpZHRoIDAuMDQxNjcKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQkJXQoJCQkvUnVuTGVuZ3RoQXJyYXkgWyA0IF0KCQkJL0lzSm9pbmFibGUgMgoJCT4+CgkJL0dyaWRJbmZvCgkJPDwKCQkJL0dyaWRJc09uIGZhbHNlCgkJCS9TaG93R3JpZCBmYWxzZQoJCQkvR3JpZFNpemUgMTguMAoJCQkvR3JpZExlYWRpbmcgMjIuMAoJCQkvR3JpZENvbG9yCgkJCTw8CgkJCQkvVHlwZSAxCgkJCQkvVmFsdWVzIFsgMC4wIDAuMCAwLjAgMS4wIF0KCQkJPj4KCQkJL0dyaWRMZWFkaW5nRmlsbENvbG9yCgkJCTw8CgkJCQkvVHlwZSAxCgkJCQkvVmFsdWVzIFsgMC4wIDAuMCAwLjAgMS4wIF0KCQkJPj4KCQkJL0FsaWduTGluZUhlaWdodFRvR3JpZEZsYWdzIGZhbHNlCgkJPj4KCQkvQW50aUFsaWFzIDQKCQkvVXNlRnJhY3Rpb25hbEdseXBoV2lkdGhzIHRydWUKCQkvUmVuZGVyZWQKCQk8PAoJCQkvVmVyc2lvbiAxCgkJCS9TaGFwZXMKCQkJPDwKCQkJCS9Xcml0aW5nRGlyZWN0aW9uIDAKCQkJCS9D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MC4wIDAuMCBdCgkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJL0xlYWRpbmdUeXBlIDAKCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkvQnVyYXNhZ2FyaSBmYWxzZQoJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJPj4KCQk+PgoJCV0KCQkvU3R5bGVTaGVldFNldCBbCgkJPDwKCQkJL05hbWUgKP7/AFIARwBCACAALQAgAE4AbwByAG0AYQBsKQoJCQkvU3R5bGVTaGVldERhdGEKCQkJPDwKCQkJCS9Gb250IDEKCQkJCS9Gb250U2l6ZSAxMi4wCgkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkvQXV0b0xlYWRpbmcgdHJ1ZQoJCQkJL0xlYWRpbmcgMC4wCgkJCQkvSG9yaXpvbnRhbFNjYWxlIDEuMAoJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkvVHJhY2tpbmcgMAoJCQkJL0F1dG9LZXJuaW5nIHRydWUKCQkJCS9LZXJuaW5nIDAKCQkJCS9CYXNlbGluZVNoaWZ0IDAuMAoJCQkJL0ZvbnRDYXBzIDAKCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJL1VuZGVybGluZSBmYWxzZQoJCQkJL1N0cmlrZXRocm91Z2ggZmFsc2UKCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJL0RMaWdhdHVyZXMgZmFsc2UKCQkJCS9CYXNlbGluZURpcmVjdGlvbiAyCgkJCQkvVHN1bWUgMC4wCgkJCQkvU3R5bGVSdW5BbGlnbm1lbnQgMgoJCQkJL0xhbmd1YWdlIDAKCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkvRmlsbENvbG9yCgkJCQk8PAoJCQkJCS9UeXBlIDEKCQkJCQkvVmFsdWVzIFsgMS4wIDAuMCAwLjAgMC4wIF0KCQkJCT4+CgkJCQkvU3Ryb2tlQ29sb3IKCQkJCTw8CgkJCQkJL1R5cGUgMQoJCQkJCS9WYWx1ZXMgWyAxLjAgMC4wIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9GaWxsRmxh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IDIKCQkJCS9Qb3N0SHlwaGVuIDIKCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgOAoJCQkJL1pvbmUgMzYuMAoJCQkJL1dvcmRTcGFjaW5nIFsgMC44IDEuMCAxLjMzIF0KCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJL0J1cmFzYWdhcmkgZmFsc2UKCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCT4+CgkJPj4KCQldCgkJL1N0eWxlU2hlZXRTZXQgWwoJCTw8CgkJCS9OYW1lICj+/wBSAEcAQgAgAC0AIABOAG8AcgBtAGEAbCkKCQkJL1N0eWxlU2hlZXREYXRhCgkJCTw8CgkJCQkvRm9udCAxCgkJCQkvRm9udFNpemUgMTIuMAoJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJL0F1dG9MZWFkaW5nIHRydWUKCQkJCS9MZWFkaW5nIDAuMAoJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJL1RyYWNraW5nIDAKCQkJCS9BdXRvS2VybmluZyB0cnVlCgkJCQkvS2VybmluZyAwCgkJCQkvQmFzZWxpbmVTaGlmdCAwLjAKCQkJCS9Gb250Q2FwcyAwCgkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCS9VbmRlcmxpbmUgZmFsc2UKCQkJCS9TdHJpa2V0aHJvdWdoIGZhbHNlCgkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCS9ETGlnYXR1cmVzIGZhbHNlCgkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMgoJCQkJL1RzdW1lIDAuMAoJCQkJL1N0eWxlUnVuQWxpZ25tZW50IDIKCQkJCS9MYW5ndWFnZSAwCgkJCQkvTm9CcmVhayBmYWxzZQoJCQkJL0ZpbGxDb2xvcgoJCQkJPDwKCQkJCQkvVHlwZSAxCgkJCQkJL1Zh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CQkJPDwKCQkJCQkJL0p1c3RpZmljYXRpb24gMgoJCQkJCQkvRmlyc3RMaW5lSW5kZW50IDAuMAoJCQkJCQkvU3RhcnRJbmRlbnQgMC4wCgkJCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkJCS9TcGFjZUJlZm9yZSAwLjAKCQkJCQkJL1NwYWNlQWZ0ZXIgMC4wCgkJCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCQkJL0h5cGhlbmF0ZWRXb3JkU2l6ZSA4CgkJCQkJCS9QcmVIeXBoZW4gMwoJCQkJCQkvUG9zdEh5cGhlbiAzCgkJCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgMgoJCQkJCQkvWm9uZSAzNi4wCgkJCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJCQk+PgoJCQkJPj4KCQkJCS9BZGp1c3RtZW50cwoJCQkJPDwKCQkJCQkvQXhpcyBbIDEuMCAwLjAgMS4wIF0KCQkJCQkvWFkgWyAwLjAgMC4wIF0KCQkJCT4+CgkJCT4+CgkJCV0KCQkJL1J1bkxlbmd0aEFycmF5IFsgMyBdCgkJCS9Jc0pvaW5hYmxlIDEKCQk+PgoJCS9TdHlsZVJ1bgoJCTw8CgkJCS9EZWZhdWx0UnVuRGF0YQoJCQk8PAoJCQkJL1N0eWxlU2hlZXQKCQkJCTw8CgkJCQkJL1N0eWxlU2hlZXREYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQkJL1J1bkFycmF5IFsKCQkJPDwKCQkJCS9TdHlsZVNoZWV0CgkJCQk8PAoJCQkJCS9TdHlsZVNoZWV0RGF0YQoJCQkJCTw8CgkJCQkJCS9Gb250IDAKCQkJCQkJL0ZvbnRTaXplIDIwLjc3MzMxCgkJCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkvQXV0b0xlYWRpbmcgZmFsc2UKCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkJCS9UcmFja2luZyAyMAoJCQkJCQkvQXV0b0tlcm5pbmcgdHJ1ZQoJCQkJCQkvS2VybmluZyAwCgkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJCQkvVW5kZXJsaW5lIGZhbHNlCgkJCQkJCS9TdHJpa2V0aHJvdWdoIGZhbHNlCgkJCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJCQkvRExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMQoJCQkJCQkvVHN1bWUgMC4wCgkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCS9MYW5ndWFnZSAwCgkJCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJPDwKCQkJCQkJCS9UeXBlIDEKCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQk+PgoJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJPDwKCQkJCQkJCS9UeXBlIDEKCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQk+PgoJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCS9ZVW5kZXJsaW5lIDEKCQkJCQkJL091dGxpbmVXaWR0aCAwLjA0MTY3CgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJCV0KCQkJL1J1bkxlbmd0aEFycmF5IFsgMyBdCgkJCS9Jc0pvaW5hYmxlIDIKCQk+PgoJCS9HcmlkSW5mbwoJCTw8CgkJCS9HcmlkSXNPbiBmYWxzZQoJCQkvU2hvd0dyaWQgZmFsc2UKCQkJL0dyaWRTaXplIDE4LjAKCQkJL0dyaWRMZWFkaW5nIDIyLjAKCQkJL0dyaWRDb2xvcgoJCQk8PAoJCQkJL1R5cGUgMQoJCQkJL1ZhbHVlcyBbIDAuMCAwLjAgMC4wIDEuMCBdCgkJCT4+CgkJCS9HcmlkTGVhZGluZ0ZpbGxDb2xvcgoJCQk8PAoJCQkJL1R5cGUgMQoJCQkJL1ZhbHVlcyBbIDAuMCAwLjAgMC4wIDEuMCBdCgkJCT4+CgkJCS9BbGlnbkxpbmVIZWlnaHRUb0dyaWRGbGFncyBmYWxzZQoJCT4+CgkJL0FudGlBbGlhcyA0CgkJL1VzZUZyYWN0aW9uYWxHbHlwaFdpZHRocyB0cnVlCgkJL1JlbmRlcmVkCgkJPDwKCQkJL1ZlcnNpb24gMQoJCQkvU2hhcGVzCgkJCTw8CgkJCQkvV3JpdGluZ0RpcmVjdGlvbiAwCgkJCQkvQ2hpbGRyZW4gWwoJCQkJPDwKCQkJCQkvU2hhcGVUeXBlIDAKCQkJCQkvUHJvY2Vzc2lvbiAwCgkJCQkJL0xpbmVzCgkJCQkJPDwKCQkJCQkJL1dyaXRpbmdEaXJlY3Rpb24gMAoJCQkJCQkvQ2hpbGRyZW4gWyBdCgkJCQkJPj4KCQkJCQkvQ29va2llCgkJCQkJPDwKCQkJCQkJL1Bob3Rvc2hvcAoJCQkJCQk8PAoJCQkJCQkJL1NoYXBlVHlwZSAwCgkJCQkJCQkvUG9pbnRCYXNlIFsgMC4wIDAuMCBdCgkJCQkJCQkvQmFzZQoJCQkJCQkJPDwKCQkJCQkJCQkvU2hhcGVUeXBlIDAKCQkJCQkJCQkvVHJhbnNmb3JtUG9pbnQwIFsgMS4wIDAuMCBdCgkJCQkJCQkJL1RyYW5zZm9ybVBvaW50MSBbIDAuMCAxLjAgXQoJCQkJCQkJCS9UcmFuc2Zvcm1Qb2ludDIgWyAwLjAgMC4wIF0KCQkJCQkJCT4+CgkJCQkJCT4+CgkJCQkJPj4KCQkJCT4+CgkJCQldCgkJCT4+CgkJPj4KCT4+CgkvUmVzb3VyY2VEaWN0Cgk8PAoJCS9LaW5zb2t1U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8AUABoAG8AdABvAHMAaABvAHAASwBpAG4AcwBvAGsAdQBIAGEAcgBkKQoJCQkvTm9TdGFydCAo/v8wATAC/wz/DjD7/xr/G/8f/wEw/CAVIBkgHf8JMBX/Pf9dMAkwCzANMA8wETD9MP4wnTCeMAUwQTBDMEUwRzBJMGMwgzCFMIcwjjChMKMwpTCnMKkwwzDjMOUw5zDuMPUw9jCbMJwAPwAhAFwpAF0AfQAsAC4AOgA7IQMhCQCi/wUgMCkKCQkJL05vRW5kICj+/yAYIBz/CDAU/zv/WzAIMAowDDAOMBAAXCgAWwB7/+X/BACj/yAApzAS/wMpCgkJCS9LZWVwICj+/yAVICUpCgkJCS9IYW5naW5nICj+/zABMAIALgAsKQoJCT4+CgkJPDwKCQkJL05hbWUgKP7/AFAAaABvAHQAbwBzAGgAbwBwAEsAaQBuAHMAbwBrAHUAUwBvAGYAdCkKCQkJL05vU3RhcnQgKP7/MAEwAv8M/w4w+/8a/xv/H/8BIBkgHf8JMBX/Pf9dMAkwCzANMA8wETD9MP4wnTCeMAUpCgkJCS9Ob0VuZCAo/v8gGCAc/wgwFP87/1swCDAKMAwwDjAQKQoJCQkvS2VlcCAo/v8gFSAlKQoJCQkvSGFuZ2luZyAo/v8wATACAC4ALCkKCQk+PgoJCV0KCQkvTW9qaUt1bWlTZXQgWwoJCTw8CgkJCS9JbnRlcm5hbE5hbWUgKP7/AFAAaABvAHQAbwBzAGgAbwBwADYATQBvAGoAaQBLAHUAbQBpAFMAZQB0ADEpCgkJPj4KCQk8PAoJCQkvSW50ZXJuYWxOYW1lICj+/wBQAGgAbwB0AG8AcwBoAG8AcAA2AE0AbwBqAGkASwB1AG0AaQBTAGUAdAAyKQoJCT4+CgkJPDwKCQkJL0ludGVybmFsTmFtZSAo/v8AUABoAG8AdABvAHMAaABvAHAANgBNAG8AagBpAEsAdQBtAGkAUwBlAHQAMykKCQk+PgoJCTw8CgkJCS9JbnRlcm5hbE5hbWUgKP7/AFAAaABvAHQAbwBzAGgAbwBwADYATQBvAGoAaQBLAHUAbQBpAFMAZQB0ADQpCgkJPj4KCQldCgkJL1RoZU5vcm1hbFN0eWxlU2hlZXQgMAoJCS9UaGVOb3JtYWxQYXJhZ3JhcGhTaGVldCAwCgkJL1BhcmFncmFwaFNoZWV0U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8AUgBHAEIAIAAtACAATgBvAHIAbQBhAGwpCgkJCS9EZWZhdWx0U3R5bGVTaGVldCAwCgkJCS9Qcm9wZXJ0aWVzCgkJCTw8CgkJCQkvSnVzdGlmaWNhdGlvbiAwCgkJCQkvRmlyc3RMaW5lSW5kZW50IDAuMAoJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJL0VuZEluZGVudCAwLjAKCQkJCS9TcGFjZUJlZm9yZSAwLjAKCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJL0h5cGhlbmF0ZWRXb3JkU2l6ZSA2CgkJCQkvUHJlSHlwaGVuIDIKCQkJCS9Qb3N0SHlwaGVuIDIKCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgOAoJCQkJL1pvbmUgMzYuMAoJCQkJL1dvcmRTcGFjaW5nIFsgMC44IDEuMCAxLjMzIF0KCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJL0J1cmFzYWdhcmkgZmFsc2UKCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCT4+CgkJPj4KCQldCgkJL1N0eWxlU2hlZXRTZXQgWwoJCTw8CgkJCS9OYW1lICj+/wBSAEcAQgAgAC0AIABOAG8AcgBtAGEAbCkKCQkJL1N0eWxlU2hlZXREYXRhCgkJCTw8CgkJCQkvRm9udCAxCgkJCQkvRm9udFNpemUgMTIuMAoJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJL0F1dG9MZWFkaW5nIHRydWUKCQkJCS9MZWFkaW5nIDAuMAoJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJL1RyYWNraW5nIDAKCQkJCS9BdXRvS2VybmluZyB0cnVlCgkJCQkvS2VybmluZyAwCgkJCQkvQmFzZWxpbmVTaGlm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ACHJCgo8PAoJL0VuZ2luZURpY3QKCTw8CgkJL0VkaXRvcgoJCTw8CgkJCS9UZXh0ICj+/wBTAFYARwANKQoJCT4+CgkJL1BhcmFncmFwaFJ1bgoJCTw8CgkJCS9EZWZhdWx0UnVuRGF0YQoJCQk8PAoJCQkJL1BhcmFncmFwaFNoZWV0CgkJCQk8PAoJCQkJCS9EZWZhdWx0U3R5bGVTaGVldCAwCgkJCQkJL1Byb3BlcnRpZXMKCQkJCQk8PAoJCQkJCT4+CgkJCQk+PgoJCQkJL0FkanVzdG1lbnRzCgkJCQk8PAoJCQkJCS9BeGlzIFsgMS4wIDAuMCAxLjAgXQoJCQkJCS9YWSBbIDAuMCAwLjAgXQoJCQkJPj4KCQkJPj4KCQkJL1J1bkFycmF5IFsKCQkJPDwKCQkJCS9QYXJhZ3JhcGhTaGVldAoJCQkJPDwKCQkJCQkvRGVmYXVsdFN0eWxlU2hlZXQgMAoJCQkJCS9Qcm9wZXJ0aWVzCgkJCQkJPDwKCQkJCQkJL0p1c3RpZmljYXRpb24gMgoJCQkJCQkvRmlyc3RMaW5lSW5kZW50IDAuMAoJCQkJCQkvU3RhcnRJbmRlbnQgMC4wCgkJCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkJCS9TcGFjZUJlZm9yZSAwLjAKCQkJCQkJL1NwYWNlQWZ0ZXIgMC4wCgkJCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCQkJL0h5cGhlbmF0ZWRXb3JkU2l6ZSA4CgkJCQkJCS9QcmVIeXBoZW4gMwoJCQkJCQkvUG9zdEh5cGhlbiAzCgkJCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgMgoJCQkJCQkvWm9uZSAzNi4wCgkJCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJCQk+PgoJCQkJPj4KCQkJCS9BZGp1c3RtZW50cwoJCQkJPDwKCQkJCQkvQXhpcyBbIDEuMCAwLjAgMS4wIF0KCQkJCQkvWFkgWyAwLjAgMC4wIF0KCQkJCT4+CgkJCT4+CgkJCV0KCQkJL1J1bkxlbmd0aEFycmF5IFsgNCBdCgkJCS9Jc0pvaW5hYmxlIDEKCQk+PgoJCS9TdHlsZVJ1bgoJCTw8CgkJCS9EZWZhdWx0UnVuRGF0YQoJCQk8PAoJCQkJL1N0eWxlU2hlZXQKCQkJCTw8CgkJCQkJL1N0eWxlU2hlZXREYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQkJL1J1bkFycmF5IFsKCQkJPDwKCQkJCS9TdHlsZVNoZWV0CgkJCQk8PAoJCQkJCS9TdHlsZVNoZWV0RGF0YQoJCQkJCTw8CgkJCQkJCS9Gb250IDAKCQkJCQkJL0ZvbnRTaXplIDIwLjc3MzMxCgkJCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkvQXV0b0xlYWRpbmcgZmFsc2UKCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkJCS9UcmFja2luZyAyMAoJCQkJCQkvQXV0b0tlcm5pbmcgdHJ1ZQoJCQkJCQkvS2VybmluZyAwCgkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJCQkvVW5kZXJsaW5lIGZhbHNlCgkJCQkJCS9TdHJpa2V0aHJvdWdoIGZhbHNlCgkJCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJCQkvRExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMQoJCQkJCQkvVHN1bWUgMC4wCgkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCS9MYW5ndWFnZSAwCgkJCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJPDwKCQkJCQkJCS9UeXBlIDEKCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQk+PgoJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJPDwKCQkJCQkJCS9UeXBlIDEKCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQk+PgoJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCS9ZVW5kZXJsaW5lIDEKCQkJCQkJL091dGxpbmVXaWR0aCAwLjA0MTY3CgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJCV0KCQkJL1J1bkxlbmd0aEFycmF5IFsgNCBdCgkJCS9Jc0pvaW5hYmxlIDIKCQk+PgoJCS9HcmlkSW5mbwoJCTw8CgkJCS9HcmlkSXNPbiBmYWxzZQoJCQkvU2hvd0dyaWQgZmFsc2UKCQkJL0dyaWRTaXplIDE4LjAKCQkJL0dyaWRMZWFkaW5nIDIyLjAKCQkJL0dyaWRDb2xvcgoJCQk8PAoJCQkJL1R5cGUgMQoJCQkJL1ZhbHVlcyBbIDAuMCAwLjAgMC4wIDEuMCBdCgkJCT4+CgkJCS9HcmlkTGVhZGluZ0ZpbGxDb2xvcgoJCQk8PAoJCQkJL1R5cGUgMQoJCQkJL1ZhbHVlcyBbIDAuMCAwLjAgMC4wIDEuMCBdCgkJCT4+CgkJCS9BbGlnbkxpbmVIZWlnaHRUb0dyaWRGbGFncyBmYWxzZQoJCT4+CgkJL0FudGlBbGlhcyAyCgkJL1VzZUZyYWN0aW9uYWxHbHlwaFdpZHRocyB0cnVlCgkJL1JlbmRlcmVkCgkJPDwKCQkJL1ZlcnNpb24gMQoJCQkvU2hhcGVzCgkJCTw8CgkJCQkvV3JpdGluZ0RpcmVjdGlvbiAwCgkJCQkvQ2hpbGRyZW4gWwoJCQkJPDwKCQkJCQkvU2hhcGVUeXBlIDAKCQkJCQkvUHJvY2Vzc2lvbiAwCgkJCQkJL0xpbmVzCgkJCQkJPDwKCQkJCQkJL1dyaXRpbmdEaXJlY3Rpb24gMAoJCQkJCQkvQ2hpbGRyZW4gWyBdCgkJ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c2UKCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCT4+CgkJPj4KCQldCgkJL1N0eWxlU2hlZXRTZXQgWwoJCTw8CgkJCS9OYW1lICj+/wBSAEcAQgAgAC0AIABOAG8AcgBtAGEAbCkKCQkJL1N0eWxlU2hlZXREYXRhCgkJCTw8CgkJCQkvRm9udCAxCgkJCQkvRm9udFNpemUgMTIuMAoJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJL0F1dG9MZWFkaW5nIHRydWUKCQkJCS9MZWFkaW5nIDAuMAoJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJL1RyYWNraW5nIDAKCQkJCS9BdXRvS2VybmluZyB0cnVlCgkJCQkvS2VybmluZyAwCgkJCQkvQmFzZWxpbmVTaGlmdCAwLjAKCQkJCS9Gb250Q2FwcyAwCgkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCS9VbmRlcmxpbmUgZmFsc2UKCQkJCS9TdHJpa2V0aHJvdWdoIGZhbHNlCgkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCS9ETGlnYXR1cmVzIGZhbHNlCgkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMgoJCQkJL1RzdW1lIDAuMAoJCQkJL1N0eWxlUnVuQWxpZ25tZW50IDIKCQkJCS9MYW5ndWFnZSAwCgkJCQkvTm9CcmVhayBmYWxzZQoJCQkJL0ZpbGxDb2xvcgoJCQkJPDwKCQkJCQkvVHlwZSAxCgkJCQkJL1ZhbHVlcyBbIDEuMCAwLjAgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL1N0cm9rZUNvbG9yCgkJCQk8PAoJCQkJCS9UeXBlIDEKCQkJCQkvVmFsdWVzIFsgMS4wIDAuMCAwLjAgMC4wIF0KCQkJCT4+CgkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCS9GaWxsRmlyc3QgdHJ1ZQoJCQkJL1lVbmRlcmxpbmUgMQoJCQkJL091dGxpbmVXaWR0aCAxLjAKCQkJPj4KCQk+PgoJCV0KCQkvRm9udFNldCBbCgkJPDwK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LjAgMC4wIF0KCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkvS2luc29rdU9yZGVyIDAKCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQk+PgoJCT4+CgkJXQoJCS9TdHlsZVNoZWV0U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8AUgBHAEIAIAAtACAATgBvAHIAbQBhAGwpCgkJCS9TdHlsZVNoZWV0RGF0YQoJCQk8PAoJCQkJL0ZvbnQgMQoJCQkJL0ZvbnRTaXplIDEyLjAKCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCS9BdXRvTGVhZGluZyB0cnVlCgkJCQkvTGVhZGluZyAwLjAKCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCS9UcmFja2luZyAwCgkJCQkvQXV0b0tlcm5pbmcgdHJ1ZQoJCQkJL0tlcm5pbmcgMAoJCQkJL0Jhc2VsaW5lU2hpZnQgMC4wCgkJCQkvRm9udENhcHMgMAoJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkvVW5kZXJsaW5lIGZhbHNlCgkJCQkvU3RyaWtldGhyb3VnaCBmYWxzZQoJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkvRExpZ2F0dXJlcyBmYWxzZQoJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDIKCQkJCS9Uc3VtZSAwLjAKCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkvTGFuZ3VhZ2UgMAoJCQkJL05vQnJlYWsgZmFsc2UKCQkJCS9GaWxsQ29sb3IKCQkJCTw8CgkJCQkJL1R5cGUgMQoJCQkJCS9WYWx1ZXMgWyAxLjAgMC4wIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9TdHJva2VDb2xvcgoJCQkJPDwKCQkJCQkvVHlwZSAxCgkJCQkJL1ZhbHVlcyBbIDEuMCAwLjAgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0ZpbGxGbGFn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ZW5hdGVkV29yZFNpemUgOAoJCQkJCQkvUHJlSHlwaGVuIDMKCQkJCQkJL1Bvc3RIeXBoZW4gMwoJCQkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDIKCQkJCQkJL1pvbmUgMzYuMAoJCQkJCQkvV29yZFNwYWNpbmcgWyAwLjggMS4wIDEuMzMgXQoJCQkJCQkvTGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJCQkvQnVyYXNhZ2FyaSBmYWxzZQoJCQkJCQkvS2luc29rdU9yZGVyIDAKCQkJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCQkJPj4KCQkJCT4+CgkJCQkvQWRqdXN0bWVudHMKCQkJCTw8CgkJCQkJL0F4aXMgWyAxLjAgMC4wIDEuMCBdCgkJCQkJL1hZIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQk+PgoJCQldCgkJCS9SdW5MZW5ndGhBcnJheSBbIDUgXQoJCQkvSXNKb2luYWJsZSAxCgkJPj4KCQkvU3R5bGVSdW4KCQk8PAoJCQkvRGVmYXVsdFJ1bkRhdGEKCQkJPDwKCQkJCS9TdHlsZVNoZWV0CgkJCQk8PAoJCQkJCS9TdHlsZVNoZWV0RGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJCS9SdW5BcnJheSBbCgkJCTw8CgkJCQkvU3R5bGVTaGVldAoJCQkJPDwKCQkJCQkvU3R5bGVTaGVldERhdGEKCQkJCQk8PAoJCQkJCQkvRm9udCAwCgkJCQkJCS9Gb250U2l6ZSAyMC43NzMzMQoJCQkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCQkJL0F1dG9MZWFkaW5nIGZhbHNlCgkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJCQkvVHJhY2tpbmcgMjAKCQkJCQkJL0F1dG9LZXJuaW5nIHRydWUKCQkJCQkJL0tlcm5pbmcgMAoJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkvRm9udENhcHMgMAoJCQkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCQkJL1VuZGVybGluZSBmYWxzZQoJCQkJCQkvU3RyaWtldGhyb3VnaCBmYWxzZQoJCQkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCQkJL0RMaWdhdHVyZXMgZmFsc2UKCQkJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDEKCQkJCQkJL1RzdW1lIDAuMAoJCQkJCQkvU3R5bGVSdW5BbGlnbm1lbnQgMgoJCQkJCQkvTGFuZ3VhZ2UgMAoJCQkJCQkvTm9CcmVhayBmYWxzZQoJCQkJCQkvRmlsbENvbG9yCgkJCQkJCTw8CgkJCQkJCQkvVHlwZSAxCgkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJPj4KCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCTw8CgkJCQkJCQkvVHlwZSAxCgkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJPj4KCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJL0ZpbGxGaXJzdCBmYWxzZQoJCQkJCQkvWVVuZGVybGluZSAxCgkJCQkJCS9PdXRsaW5lV2lkdGggMC4wNDE2NwoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCQldCgkJCS9SdW5MZW5ndGhBcnJheSBbIDUgXQoJCQkvSXNKb2luYWJsZSAyCgkJPj4KCQkvR3JpZEluZm8KCQk8PAoJCQkvR3JpZElzT24gZmFsc2UKCQkJL1Nob3dHcmlkIGZhbHNlCgkJCS9HcmlkU2l6ZSAxOC4wCgkJCS9HcmlkTGVhZGluZyAyMi4wCgkJCS9HcmlkQ29sb3IKCQkJPDwKCQkJCS9UeXBlIDEKCQkJCS9WYWx1ZXMgWyAwLjAgMC4wIDAuMCAxLjAgXQoJCQk+PgoJCQkvR3JpZExlYWRpbmdGaWxsQ29sb3IKCQkJPDwKCQkJCS9UeXBlIDEKCQkJCS9WYWx1ZXMgWyAwLjAgMC4wIDAuMCAxLjAgXQoJCQk+PgoJCQkvQWxpZ25MaW5lSGVpZ2h0VG9HcmlkRmxhZ3MgZmFsc2UKCQk+PgoJCS9BbnRpQWxpYXMgNAoJCS9Vc2VGcmFjdGlvbmFsR2x5cGhXaWR0aHMgdHJ1ZQoJCS9SZW5kZXJlZAoJCTw8CgkJCS9WZXJzaW9uIDEKCQkJL1NoYXBlcwoJCQk8PAoJCQkJL1dyaXRpbmdEaXJlY3Rpb24gMAoJCQkJL0NoaWxkcmVuIFsKCQkJCTw8CgkJCQkJL1NoYXBlVHlwZSAwCgkJCQkJL1Byb2Nlc3Npb24gMAoJCQkJCS9MaW5lcwoJCQkJCTw8CgkJCQkJCS9Xcml0aW5nRGlyZWN0aW9uIDAKCQkJCQkJL0NoaWxkcmVuIFsgXQoJCQkJCT4+CgkJCQkJL0Nvb2tpZQoJCQkJCTw8CgkJCQkJCS9QaG90b3Nob3AKCQkJCQkJPDwKCQkJCQkJCS9TaGFwZVR5cGUgMAoJCQkJCQkJL1BvaW50QmFzZSBbIDAuMCAwLjAgXQoJCQkJCQkJL0Jhc2UKCQkJCQkJCTw8CgkJCQkJCQkJL1NoYXBlVHlwZSAwCgkJCQkJCQkJL1RyYW5zZm9ybVBvaW50MCBbIDEuMCAwLjAgXQoJCQkJCQkJCS9UcmFuc2Zvcm1Qb2ludDEgWyAwLjAgMS4wIF0KCQkJCQkJCQkvVHJhbnNmb3JtUG9pbnQyIFsgMC4wIDAuMCBdCgkJCQkJCQk+PgoJCQkJCQk+PgoJCQkJCT4+CgkJCQk+PgoJCQkJXQoJCQk+PgoJCT4+Cgk+PgoJL1Jlc291cmNlRGljdAoJPDwKCQkvS2luc29rdVNldCBbCgkJPDwKCQkJL05hbWUgKP7/AFAAaABvAHQAbwBzAGgAbwBwAEsAaQBuAHMAbwBrAHUASABhAHIAZCkKCQkJL05vU3RhcnQgKP7/MAEwAv8M/w4w+/8a/xv/H/8BMPwgFSAZIB3/CTAV/z3/XTAJMAswDTAPMBEw/TD+MJ0wnjAFMEEwQzBFMEcwSTBjMIMwhTCHMI4woTCjMKUwpzCpMMMw4zDlMOcw7jD1MPYwmzCcAD8AIQBcKQBdAH0ALAAuADoAOyEDIQkAov8FIDApCgkJCS9Ob0VuZCAo/v8gGCAc/wgwFP87/1swCDAKMAwwDjAQAFwoAFsAe//l/wQAo/8gAKcwEv8DKQoJCQkvS2VlcCAo/v8gFSAlKQoJCQkvSGFuZ2luZyAo/v8wATACAC4ALCkKCQk+PgoJCTw8CgkJCS9OYW1lICj+/wBQAGgAbwB0AG8AcwBoAG8AcABLAGkAbgBzAG8AawB1AFMAbwBmAHQpCgkJCS9Ob1N0YXJ0ICj+/zABMAL/DP8OMPv/Gv8b/x//ASAZIB3/CTAV/z3/XTAJMAswDTAPMBEw/TD+MJ0wnjAFKQoJCQkvTm9FbmQgKP7/IBggHP8IMBT/O/9bMAgwCjAMMA4wECkKCQkJL0tlZXAgKP7/IBUgJSkKCQkJL0hhbmdpbmcgKP7/MAEwAgAuACwpCgkJPj4KCQldCgkJL01vamlLdW1pU2V0IFsKCQk8PAoJCQkvSW50ZXJuYWxOYW1lICj+/wBQAGgAbwB0AG8AcwBoAG8AcAA2AE0AbwBqAGkASwB1AG0AaQBTAGUAdAAxKQoJCT4+CgkJPDwKCQkJL0ludGVybmFsTmFtZSAo/v8AUABoAG8AdABvAHMAaABvAHAANgBNAG8AagBpAEsAdQBtAGkAUwBlAHQAMikKCQk+PgoJCTw8CgkJCS9JbnRlcm5hbE5hbWUgKP7/AFAAaABvAHQAbwBzAGgAbwBwADYATQBvAGoAaQBLAHUAbQBpAFMAZQB0ADMpCgkJPj4KCQk8PAoJCQkvSW50ZXJuYWxOYW1lICj+/wBQAGgAbwB0AG8AcwBoAG8AcAA2AE0AbwBqAGkASwB1AG0AaQBTAGUAdAA0KQoJCT4+CgkJXQoJCS9UaGVOb3JtYWxTdHlsZVNoZWV0IDAKCQkvVGhlTm9ybWFsUGFyYWdyYXBoU2hlZXQgMAoJCS9QYXJhZ3JhcGhTaGVldFNldCBbCgkJPDwKCQkJL05hbWUgKP7/AFIARwBCACAALQAgAE4AbwByAG0AYQBsKQoJCQkvRGVmYXVsdFN0eWxlU2hlZXQgMAoJCQkvUHJvcGVydGllcwoJCQk8PAoJCQkJL0p1c3RpZmljYXRpb24gMAoJCQkJL0ZpcnN0TGluZUluZGVudCAwLjAKCQkJCS9TdGFydEluZGVudCAwLjAKCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkvU3BhY2VCZWZvcmUgMC4wCgkJCQkvU3BhY2VBZnRlciAwLjAKCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgNgoJCQkJL1ByZUh5cGhlbiAyCgkJCQkvUG9zdEh5cGhlbiAyCgkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDgKCQkJCS9ab25lIDM2LjAKCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkvTGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkvS2luc29rdU9yZGVyIDAKCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQk+PgoJCT4+CgkJXQoJCS9TdHlsZVNoZWV0U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8AUgBHAEIAIAAtACAATgBvAHIAbQBhAGwpCgkJCS9TdHlsZVNoZWV0RGF0YQoJCQk8PAoJCQkJL0ZvbnQgMQoJCQkJL0ZvbnRTaXplIDEyLjAKCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCS9BdXRvTGVhZGluZyB0cnVlCgkJCQkvTGVhZGluZyAwLjAKCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCS9UcmFja2luZyAwCgkJCQkvQXV0b0tlcm5pbmcgdHJ1ZQoJCQkJL0tlcm5pbmcgMAoJCQkJL0Jhc2VsaW5lU2hpZnQgMC4wCgkJCQkvRm9udENhcHMgMAoJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkvVW5kZXJsaW5lIGZhbHNlCgkJCQkvU3RyaWtldGhyb3VnaCBmYWxzZQoJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkvRExpZ2F0dXJlcyBmYWxzZQoJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDIKCQkJCS9Uc3VtZSAwLjAKCQkJCS9TdHlsZVJ1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CQkJL1Byb3BlcnRpZXMKCQkJPDwKCQkJCS9KdXN0aWZpY2F0aW9uIDAKCQkJCS9GaXJzdExpbmVJbmRlbnQgMC4wCgkJCQkvU3RhcnRJbmRlbnQgMC4wCgkJCQkvRW5kSW5kZW50IDAuMAoJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJL1NwYWNlQWZ0ZXIgMC4wCgkJCQkvQXV0b0h5cGhlbmF0ZSB0cnVlCgkJCQkvSHlwaGVuYXRlZFdvcmRTaXplIDYKCQkJCS9QcmVIeXBoZW4gMgoJCQkJL1Bvc3RIeXBoZW4gMgoJCQkJL0NvbnNlY3V0aXZlSHlwaGVucyA4CgkJCQkvWm9uZSAzNi4wCgkJCQkvV29yZFNwYWNpbmcgWyAwLjggMS4wIDEuMzMgXQoJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJL0xlYWRpbmdUeXBlIDAKCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkvQnVyYXNhZ2FyaSBmYWxzZQoJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJPj4KCQk+PgoJCV0KCQkvU3R5bGVTaGVldFNldCBbCgkJPDwKCQkJL05hbWUgKP7/AFIARwBCACAALQAgAE4AbwByAG0AYQBsKQoJCQkvU3R5bGVTaGVldERhdGEKCQkJPDwKCQkJCS9Gb250IDEKCQkJCS9Gb250U2l6ZSAxMi4wCgkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkvQXV0b0xlYWRpbmcgdHJ1ZQoJCQkJL0xlYWRpbmcgMC4wCgkJCQkvSG9yaXpvbnRhbFNjYWxlIDEuMAoJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkvVHJhY2tpbmcgMAoJCQkJL0F1dG9LZXJuaW5nIHRydWUKCQkJCS9LZXJuaW5nIDAKCQkJCS9CYXNlbGluZVNoaWZ0IDAuMAoJCQkJL0ZvbnRDYXBzIDAKCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJL1VuZGVybGluZSBmYWxz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CQkJL1Byb3BlcnRpZXMKCQkJCQk8PAoJCQkJCT4+CgkJCQk+PgoJCQkJL0FkanVzdG1lbnRzCgkJCQk8PAoJCQkJCS9BeGlzIFsgMS4wIDAuMCAxLjAgXQoJCQkJCS9YWSBbIDAuMCAwLjAgXQoJCQkJPj4KCQkJPj4KCQkJL1J1bkFycmF5IFsKCQkJPDwKCQkJCS9QYXJhZ3JhcGhTaGVldAoJCQkJPDwKCQkJCQkvRGVmYXVsdFN0eWxlU2hlZXQgMAoJCQkJCS9Qcm9wZXJ0aWVzCgkJCQkJPDwKCQkJCQkJL0p1c3RpZmljYXRpb24gMgoJCQkJCQkvRmlyc3RMaW5lSW5kZW50IDAuMAoJCQkJCQkvU3RhcnRJbmRlbnQgMC4wCgkJCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkJCS9TcGFjZUJlZm9yZSAwLjAKCQkJCQkJL1NwYWNlQWZ0ZXIgMC4wCgkJCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCQkJL0h5cGhlbmF0ZWRXb3JkU2l6ZSA4CgkJCQkJCS9QcmVIeXBoZW4gMwoJCQkJCQkvUG9zdEh5cGhlbiAzCgkJCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgMgoJCQkJCQkvWm9uZSAzNi4wCgkJCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJCQk+PgoJCQkJPj4KCQkJCS9BZGp1c3RtZW50cwoJCQkJPDwKCQkJCQkvQXhpcyBbIDEuMCAwLjAgMS4wIF0KCQkJCQkvWFkgWyAwLjAgMC4wIF0KCQkJCT4+CgkJCT4+CgkJCV0KCQkJL1J1bkxlbmd0aEFycmF5IFsgNCBdCgkJCS9Jc0pvaW5hYmxlIDEKCQk+PgoJCS9TdHlsZVJ1bgoJCTw8CgkJCS9EZWZhdWx0UnVuRGF0YQoJCQk8PAoJCQkJL1N0eWxlU2hlZXQKCQkJCTw8CgkJCQkJL1N0eWxlU2hlZXREYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQkJL1J1bkFycmF5IFsKCQkJPDwKCQkJCS9TdHlsZVNoZWV0CgkJCQk8PAoJCQkJCS9TdHlsZVNoZWV0RGF0YQoJCQkJCTw8CgkJCQkJCS9Gb250IDAKCQkJCQkJL0ZvbnRTaXplIDIwLjc3MzMxCgkJCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkvQXV0b0xlYWRpbmcgZmFsc2UKCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkJCS9UcmFja2luZyA4MAoJCQkJCQkvQXV0b0tlcm5pbmcgdHJ1ZQoJCQkJCQkvS2VybmluZyAwCgkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJCQkvVW5kZXJsaW5lIGZhbHNlCgkJCQkJCS9TdHJpa2V0aHJvdWdoIGZhbHNlCgkJCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJCQkvRExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMQoJCQkJCQkvVHN1bWUgMC4wCgkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCS9MYW5ndWFnZSAwCgkJCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJPDwKCQkJCQkJCS9UeXBlIDEKCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQk+PgoJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJPDwKCQkJCQkJCS9UeXBlIDEKCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQk+PgoJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCS9ZVW5kZXJsaW5lIDEKCQkJCQkJL091dGxpbmVXaWR0aCAwLjA0MTY3CgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJCTw8CgkJCQkvU3R5bGVTaGVldAoJCQkJPDwKCQkJCQkvU3R5bGVTaGVldERhdGEKCQkJCQk8PAoJCQkJCQkvRm9udCAwCgkJCQkJCS9Gb250U2l6ZSAyMC43NzMzMQoJCQkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCQkJL0F1dG9MZWFkaW5nIGZhbHNlCgkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJCQkvVHJhY2tpbmcgMjAKCQkJCQkJL0F1dG9LZXJuaW5nIHRydWUKCQkJCQkJL0tlcm5pbmcgMAoJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkvRm9udENhcHMgMAoJCQkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCQkJL1VuZGVybGluZSBmYWxzZQoJCQkJCQkvU3RyaWtldGhyb3VnaCBmYWxzZQoJCQkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCQkJL0RMaWdhdHVyZXMgZmFsc2UKCQkJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDEKCQkJCQkJL1RzdW1lIDAuMAoJCQkJCQkvU3R5bGVSdW5BbGlnbm1lbnQgMgoJCQkJCQkvTGFuZ3VhZ2UgMAoJCQkJCQkvTm9CcmVhayBmYWxzZQoJCQkJCQkvRmlsbENvbG9yCgkJCQkJCTw8CgkJCQkJCQkvVHlwZSAxCgkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJPj4KCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCTw8CgkJCQkJCQkvVHlwZSAxCgkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJPj4KCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJL0ZpbGxGaXJzdCBmYWxzZQoJCQkJCQkvWVVuZGVybGluZSAxCgkJCQkJCS9PdXRsaW5lV2lkdGggMC4wNDE2NwoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCQldCgkJCS9SdW5MZW5ndGhBcnJheSBbIDEgMyBdCgkJCS9Jc0pvaW5hYmxlIDIKCQk+PgoJCS9HcmlkSW5mbwoJCTw8CgkJCS9HcmlkSXNPbiBmYWxzZQoJCQkvU2hvd0dyaWQgZmFsc2UKCQkJL0dyaWRTaXplIDE4LjAKCQkJL0dyaWRMZWFkaW5nIDIyLjAKCQkJL0dyaWRDb2xvcgoJCQk8PAoJCQkJL1R5cGUgMQoJCQkJL1ZhbHVlcyBbIDAuMCAwLjAgMC4wIDEuMCBdCgkJCT4+CgkJCS9HcmlkTGVhZGluZ0ZpbGxDb2xvcgoJCQk8PAoJCQkJL1R5cGUgMQoJCQkJL1ZhbHVlcyBbIDAuMCAwLjAgMC4wIDEuMCBdCgkJCT4+CgkJCS9BbGlnbkxpbmVIZWlnaHRUb0dyaWRGbGFncyBmYWxzZQoJCT4+CgkJL0FudGlBbGlhcyA0CgkJL1VzZUZyYWN0aW9uYWxHbHlwaFdpZHRocyB0cnVlCgkJL1JlbmRlcmVkCgkJPDwKCQkJL1ZlcnNpb24gMQoJCQkvU2hhcGVzCgkJCTw8CgkJCQkvV3JpdGluZ0RpcmVjdGlvbiAwCgkJCQkvQ2hpbGRyZW4gWwoJCQkJPDwKCQkJCQkvU2hhcGVUeXBlIDAKCQkJCQkvUHJvY2Vzc2lvbiAwCgkJCQkJL0xpbmVzCgkJCQkJPDwKCQkJCQkJL1dyaXRpbmdEaXJlY3Rpb24gMAoJCQkJCQkvQ2hpbGRyZW4gWyBdCgkJCQkJPj4KCQkJCQkvQ29va2llCgkJCQkJPDwKCQkJCQkJL1Bob3Rvc2hvcAoJCQkJCQk8PAoJCQkJCQkJL1NoYXBlVHlwZSAwCgkJCQkJCQkvUG9pbnRCYXNlIFsgMC4wIDAuMCBdCgkJCQkJCQkvQmFzZQoJCQkJCQkJPDwKCQkJCQkJCQkvU2hhcGVUeXBlIDAKCQkJCQkJ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MAoJCQkJCQkvU3RhcnRJbmRlbnQgMC4wCgkJCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkJCS9TcGFjZUJlZm9yZSAwLjAKCQkJCQkJL1NwYWNlQWZ0ZXIgMC4wCgkJCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCQkJL0h5cGhlbmF0ZWRXb3JkU2l6ZSA4CgkJCQkJCS9QcmVIeXBoZW4gMwoJCQkJCQkvUG9zdEh5cGhlbiAzCgkJCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgMgoJCQkJCQkvWm9uZSAzNi4wCgkJCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJCQk+PgoJCQkJPj4KCQkJCS9BZGp1c3RtZW50cwoJCQkJPDwKCQkJCQkvQXhpcyBbIDEuMCAwLjAgMS4wIF0KCQkJCQkvWFkgWyAwLjAgMC4wIF0KCQkJCT4+CgkJCT4+CgkJCV0KCQkJL1J1bkxlbmd0aEFycmF5IFsgNCBdCgkJCS9Jc0pvaW5hYmxlIDEKCQk+PgoJCS9TdHlsZVJ1bgoJCTw8CgkJCS9EZWZhdWx0UnVuRGF0YQoJCQk8PAoJCQkJL1N0eWxlU2hlZXQKCQkJCTw8CgkJCQkJL1N0eWxlU2hlZXREYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQkJL1J1bkFycmF5IFsKCQkJPDwKCQkJCS9TdHlsZVNoZWV0CgkJCQk8PAoJCQkJCS9TdHlsZVNoZWV0RGF0YQoJCQkJCTw8CgkJCQkJCS9Gb250IDAKCQkJCQkJL0ZvbnRTaXplIDIwLjc3MzMxCgkJCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkvQXV0b0xlYWRpbmcgZmFsc2UKCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkJCS9UcmFja2luZyAyMAoJCQkJCQkvQXV0b0tlcm5pbmcgdHJ1ZQoJCQkJCQkvS2VybmluZyAwCgkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJCQkvVW5kZXJsaW5lIGZhbHNlCgkJCQkJCS9TdHJpa2V0aHJvdWdoIGZhbHNlCgkJCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJCQkvRExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMQoJCQkJCQkvVHN1bWUgMC4wCgkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCS9MYW5ndWFnZSAwCgkJCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJPDwKCQkJCQkJCS9UeXBlIDEKCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQk+PgoJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJPDwKCQkJCQkJCS9UeXBlIDEKCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQk+PgoJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCS9ZVW5kZXJsaW5lIDEKCQkJCQkJL091dGxpbmVXaWR0aCAwLjA0MTY3CgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJCV0KCQkJL1J1bkxlbmd0aEFycmF5IFsgNCBdCgkJCS9Jc0pvaW5hYmxlIDIKCQk+PgoJCS9HcmlkSW5mbwoJCTw8CgkJCS9HcmlkSXNPbiBmYWxzZQoJCQkvU2hvd0dyaWQgZmFsc2UKCQkJL0dyaWRTaXplIDE4LjAK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aGVldCAwCgkJCS9Qcm9wZXJ0aWVzCgkJCTw8CgkJCQkvSnVzdGlmaWNhdGlvbiAwCgkJCQkvRmlyc3RMaW5lSW5kZW50IDAuMAoJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJL0VuZEluZGVudCAwLjAKCQkJCS9TcGFjZUJlZm9yZSAwLjAKCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJL0h5cGhlbmF0ZWRXb3JkU2l6ZSA2CgkJCQkvUHJlSHlwaGVuIDIKCQkJCS9Qb3N0SHlwaGVuIDIKCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgOAoJCQkJL1pvbmUgMzYuMAoJCQkJL1dvcmRTcGFjaW5nIFsgMC44IDEuMCAxLjMzIF0KCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJL0J1cmFzYWdhcmkgZmFsc2UKCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCT4+CgkJPj4KCQldCgkJL1N0eWxlU2hlZXRTZXQgWwoJCTw8CgkJCS9OYW1lICj+/wBSAEcAQgAgAC0AIABOAG8AcgBtAGEAbCkKCQkJL1N0eWxlU2hlZXREYXRhCgkJCTw8CgkJCQkvRm9udCAxCgkJCQkvRm9udFNpemUgMTIuMAoJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJL0F1dG9MZWFkaW5nIHRydWUKCQkJCS9MZWFkaW5nIDAuMAoJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJL1RyYWNraW5nIDAKCQkJCS9BdXRvS2VybmluZyB0cnVlCgkJCQkvS2VybmluZyAwCgkJCQkvQmFzZWxpbmVTaGlmdCAwLjAKCQkJCS9Gb250Q2FwcyAwCgkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCS9VbmRlcmxp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ZVNoZWV0IDAKCQkvVGhlTm9ybWFsUGFyYWdyYXBoU2hlZXQgMAoJCS9QYXJhZ3JhcGhTaGVldFNldCBbCgkJPDwKCQkJL05hbWUgKP7/AFIARwBCACAALQAgAE4AbwByAG0AYQBsKQoJCQkvRGVmYXVsdFN0eWxlU2hlZXQgMAoJCQkvUHJvcGVydGllcwoJCQk8PAoJCQkJL0p1c3RpZmljYXRpb24gMAoJCQkJL0ZpcnN0TGluZUluZGVudCAwLjAKCQkJCS9TdGFydEluZGVudCAwLjAKCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkvU3BhY2VCZWZvcmUgMC4wCgkJCQkvU3BhY2VBZnRlciAwLjAKCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgNgoJCQkJL1ByZUh5cGhlbiAyCgkJCQkvUG9zdEh5cGhlbiAyCgkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDgKCQkJCS9ab25lIDM2LjAKCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkvTGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkvS2luc29rdU9yZGVyIDAKCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQk+PgoJCT4+CgkJXQoJCS9TdHlsZVNoZWV0U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8AUgBHAEIAIAAtACAATgBvAHIAbQBhAGwpCgkJCS9TdHlsZVNoZWV0RGF0YQoJCQk8PAoJCQkJL0ZvbnQgMQoJCQkJL0ZvbnRTaXplIDEyLjAKCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCS9BdXRvTGVhZGluZyB0cnVlCgkJCQkvTGVhZGluZyAwLjAKCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJ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CQkJL1RleHQgKP7/AFEAWABQAA0pCgkJPj4KCQkvUGFyYWdyYXBoUnVuCgkJPDwKCQkJL0RlZmF1bHRSdW5EYXRhCgkJCTw8CgkJCQkvUGFyYWdyYXBoU2hlZXQKCQkJCTw8CgkJCQkJL0RlZmF1bHRTdHlsZVNoZWV0IDAKCQkJCQkvUHJvcGVydGllcwoJCQkJCTw8CgkJCQkJPj4KCQkJCT4+CgkJCQkvQWRqdXN0bWVudHMKCQkJCTw8CgkJCQkJL0F4aXMgWyAxLjAgMC4wIDEuMCBdCgkJCQkJL1hZIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQk+PgoJCQkvUnVuQXJyYXkgWwoJCQk8PAoJCQkJL1BhcmFncmFwaFNoZWV0CgkJCQk8PAoJCQkJCS9EZWZhdWx0U3R5bGVTaGVldCAwCgkJCQkJL1Byb3BlcnRpZXMKCQkJCQk8PAoJCQkJCQkvSnVzdGlmaWNhdGlvbiAyCgkJCQkJCS9GaXJzdExpbmVJbmRlbnQgMC4wCgkJCQkJCS9TdGFydEluZGVudCAwLjAKCQkJCQkJL0VuZEluZGVudCAwLjAKCQkJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJCQkvU3BhY2VBZnRlciAwLjAKCQkJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJCQkvSHlwaGVuYXRlZFdvcmRTaXplIDgKCQkJCQkJL1ByZUh5cGhlbiAzCgkJCQkJCS9Qb3N0SHlwaGVuIDMKCQkJCQkJL0NvbnNlY3V0aXZlSHlwaGVucyAyCgkJCQkJCS9ab25lIDM2LjAKCQkJCQkJL1dvcmRTcGFjaW5nIFsgMC44IDEuMCAxLjMzIF0KCQkJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCQkJL0xlYWRpbmdUeXBlIDAKCQkJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCQkJL0J1cmFzYWdhcmkgZmFsc2UKCQkJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQkJCT4+CgkJCQk+PgoJCQkJL0FkanVzdG1lbnRzCgkJCQk8PAoJCQkJCS9BeGlzIFsgMS4wIDAuMCAxLjAgXQoJCQkJCS9YWSBbIDAuMCAwLjAgXQoJCQkJPj4KCQkJPj4KCQkJXQoJCQkvUnVuTGVuZ3RoQXJyYXkgWyA0IF0KCQkJL0lzSm9pbmFibGUgMQoJCT4+CgkJL1N0eWxlUnVuCgkJPDwKCQkJL0RlZmF1bHRSdW5EYXRhCgkJCTw8CgkJCQkvU3R5bGVTaGVldAoJCQkJPDwKCQkJCQkvU3R5bGVTaGVldERhdGEKCQkJCQk8PAoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCQkvUnVuQXJyYXkgWwoJCQk8PAoJCQkJL1N0eWxlU2hlZXQKCQkJCTw8CgkJCQkJL1N0eWxlU2hlZXREYXRhCgkJCQkJPDwKCQkJCQkJL0ZvbnQgMAoJCQkJCQkvRm9udFNpemUgMjAuNzczMzEKCQkJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkJCS9BdXRvTGVhZGluZyBmYWxzZQoJCQkJCQkvTGVhZGluZyAzOS44NjE5OAoJCQkJCQkvSG9yaXpvbnRhbFNjYWxlIDEuMAoJCQkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCQkJL1RyYWNraW5nIDIwCgkJCQkJCS9BdXRvS2VybmluZyB0cnVlCgkJCQkJCS9LZXJuaW5nIDAKCQkJCQkJL0Jhc2VsaW5lU2hpZnQgLTguODg2NjIKCQkJCQkJL0ZvbnRDYXBzIDAKCQkJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkJCS9VbmRlcmxpbmUgZmFsc2UKCQkJCQkJL1N0cmlrZXRocm91Z2ggZmFsc2UKCQkJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkJCS9ETGlnYXR1cmVzIGZhbHNlCgkJCQkJCS9CYXNlbGluZURpcmVjdGlvbiAxCgkJCQkJCS9Uc3VtZSAwLjAKCQkJCQkJL1N0eWxlUnVuQWxpZ25tZW50IDIKCQkJCQkJL0xhbmd1YWdlIDAKCQkJCQkJL05vQnJlYWsgZmFsc2UKCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQk8PAoJCQkJCQkJL1R5cGUgMQoJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCT4+CgkJCQkJCS9TdHJva2VDb2xvcgoJCQkJCQk8PAoJCQkJCQkJL1R5cGUgMQoJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCT4+CgkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkJCS9GaWxsRmlyc3QgZmFsc2UKCQkJCQkJL1lVbmRlcmxpbmUgMQoJCQkJCQkvT3V0bGluZVdpZHRoIDAuMDQxNjcKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQkJXQoJCQkvUnVuTGVuZ3RoQXJyYXkgWyA0IF0KCQkJL0lzSm9pbmFibGUgMgoJCT4+CgkJL0dyaWRJbmZvCgkJPDwKCQkJL0dyaWRJc09uIGZhbHNlCgkJCS9TaG93R3JpZCBmYWxzZQoJCQkvR3JpZFNpemUgMTguMAoJCQkvR3JpZExlYWRpbmcgMjIuMAoJCQkvR3JpZENvbG9yCgkJCTw8CgkJCQkvVHlwZSAxCgkJCQkvVmFsdWVzIFsgMC4wIDAuMCAwLjAgMS4wIF0KCQkJPj4KCQkJL0dyaWRMZWFkaW5nRmlsbENvbG9yCgkJCTw8CgkJCQkvVHlwZSAxCgkJCQkvVmFsdWVzIFsgMC4wIDAuMCAwLjAgMS4wIF0KCQkJPj4KCQkJL0FsaWduTGluZUhlaWdodFRvR3JpZEZsYWdzIGZhbHNlCgkJPj4KCQkvQW50aUFsaWFzIDQKCQkvVXNlRnJhY3Rpb25hbEdseXBoV2lkdGhzIHRydWUKCQkvUmVuZGVyZWQKCQk8PAoJCQkvVmVyc2lvbiAxCgkJCS9TaGFwZXMKCQkJPDwKCQkJCS9Xcml0aW5nRGlyZWN0aW9uIDAKCQkJCS9DaGlsZHJlbiBbCgkJCQk8PAoJCQkJCS9TaGFwZVR5cGUgMAoJCQkJCS9Qcm9jZXNzaW9uIDAKCQkJCQkvTGluZXMKCQkJCQk8PAoJCQkJCQkvV3JpdGluZ0RpcmVjdGlvbiAwCgkJCQkJCS9DaGlsZHJlbiBbIF0KCQkJCQk+PgoJCQkJCS9Db29raWUKCQkJCQk8PAoJCQkJCQkvUGhvdG9z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IF0KCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJL0J1cmFzYWdhcmkgZmFsc2UKCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCT4+CgkJPj4KCQldCgkJL1N0eWxlU2hlZXRTZXQgWwoJCTw8CgkJCS9OYW1lICj+/wBSAEcAQgAgAC0AIABOAG8AcgBtAGEAbCkKCQkJL1N0eWxlU2hlZXREYXRhCgkJCTw8CgkJCQkvRm9udCAxCgkJCQkvRm9udFNpemUgMTIuMAoJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJL0F1dG9MZWFkaW5nIHRydWUKCQkJCS9MZWFkaW5nIDAuMAoJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJL1RyYWNraW5nIDAKCQkJCS9BdXRvS2VybmluZyB0cnVlCgkJCQkvS2VybmluZyAwCgkJCQkvQmFzZWxpbmVTaGlmdCAwLjAKCQkJCS9Gb250Q2FwcyAwCgkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCS9VbmRlcmxpbmUgZmFsc2UKCQkJCS9TdHJpa2V0aHJvdWdoIGZhbHNlCgkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCS9ETGlnYXR1cmVzIGZhbHNlCgkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMgoJCQkJL1RzdW1lIDAuMAoJCQkJL1N0eWxlUnVuQWxpZ25tZW50IDIKCQkJCS9MYW5ndWFnZSAwCgkJCQkvTm9CcmVhayBmYWxzZQoJCQkJL0ZpbGxDb2xvcgoJCQkJPDwKCQkJCQkvVHlwZSAxCgkJCQkJL1ZhbHVlcyBbIDEuMCAwLjAgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL1N0cm9rZUNvbG9yCgkJCQk8PAoJCQkJCS9UeXBlIDEKCQkJCQkvVmFsdWVzIFsgMS4wIDAuMCAwLjAgMC4wIF0KCQkJCT4+CgkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCS9GaWxsRmly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CgkJCS9SdW5BcnJheSBbCgkJCTw8CgkJCQkvUGFyYWdyYXBoU2hlZXQKCQkJCTw8CgkJCQkJL0RlZmF1bHRTdHlsZVNoZWV0IDAKCQkJCQkvUHJvcGVydGllcwoJCQkJCTw8CgkJCQkJCS9KdXN0aWZpY2F0aW9uIDIKCQkJCQkJL0ZpcnN0TGluZUluZGVudCAwLjAKCQkJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJCQkvRW5kSW5kZW50IDAuMAoJCQkJCQkvU3BhY2VCZWZvcmUgMC4wCgkJCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJCQkvQXV0b0h5cGhlbmF0ZSB0cnVlCgkJCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgOAoJCQkJCQkvUHJlSHlwaGVuIDMKCQkJCQkJL1Bvc3RIeXBoZW4gMwoJCQkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDIKCQkJCQkJL1pvbmUgMzYuMAoJCQkJCQkvV29yZFNwYWNpbmcgWyAwLjggMS4wIDEuMzMgXQoJCQkJCQkvTGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJCQkvQnVyYXNhZ2FyaSBmYWxzZQoJCQkJCQkvS2luc29rdU9yZGVyIDAKCQkJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCQkJPj4KCQkJCT4+CgkJCQkvQWRqdXN0bWVudHMKCQkJCTw8CgkJCQkJL0F4aXMgWyAxLjAgMC4wIDEuMCBdCgkJCQkJL1hZIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQk+PgoJCQldCgkJCS9SdW5MZW5ndGhBcnJheSBbIDQgXQoJCQkvSXNKb2luYWJsZSAxCgkJPj4KCQkvU3R5bGVSdW4KCQk8PAoJCQkvRGVmYXVsdFJ1bkRhdGEKCQkJPDwKCQkJCS9TdHlsZVNoZWV0CgkJCQk8PAoJCQkJCS9TdHlsZVNoZWV0RGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJCS9SdW5BcnJheSBbCgkJCTw8CgkJCQkvU3R5bGVTaGVldAoJCQkJPDwKCQkJCQkvU3R5bGVTaGVldERhdGEKCQkJCQk8PAoJCQkJCQkvRm9udCAwCgkJCQkJCS9Gb250U2l6ZSAyMC43NzMzMQoJCQkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCQkJL0F1dG9MZWFkaW5nIGZhbHNlCgkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJCQkvVHJhY2tpbmcgMjAKCQkJCQkJL0F1dG9LZXJuaW5nIHRydWUKCQkJCQkJL0tlcm5pbmcgMAoJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkvRm9udENhcHMgMAoJCQkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCQkJL1VuZGVybGluZSBmYWxzZQoJCQkJCQkvU3RyaWtldGhyb3VnaCBmYWxzZQoJCQkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCQkJL0RMaWdhdHVyZXMgZmFsc2UKCQkJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDEKCQkJCQkJL1RzdW1lIDAuMAoJCQkJCQkvU3R5bGVSdW5BbGlnbm1lbnQgMgoJCQkJCQkvTGFuZ3VhZ2UgMAoJCQkJCQkvTm9CcmVhayBmYWxzZQoJCQkJCQkvRmlsbENvbG9yCgkJCQkJCTw8CgkJCQkJCQkvVHlwZSAxCgkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJPj4KCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCTw8CgkJCQkJCQkvVHlwZSAxCgkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJPj4KCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJL0ZpbGxGaXJzdCBmYWxzZQoJCQkJCQkvWVVuZGVybGluZSAxCgkJCQkJCS9PdXRsaW5lV2lkdGggMC4wNDE2NwoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCQldCgkJCS9SdW5MZW5ndGhBcnJheSBbIDQgXQoJCQkvSXNKb2luYWJsZSAyCgkJPj4KCQkvR3JpZEluZm8KCQk8PAoJCQkvR3JpZElzT24gZmFsc2UKCQkJL1Nob3dHcmlkIGZhbHNlCgkJCS9HcmlkU2l6ZSAxOC4wCgkJCS9HcmlkTGVhZGluZyAyMi4wCgkJCS9HcmlkQ29sb3IKCQkJPDwKCQkJCS9UeXBlIDEKCQkJCS9WYWx1ZXMgWyAwLjAgMC4wIDAuMCAxLjAgXQoJCQk+PgoJCQkvR3JpZExlYWRpbmdGaWxsQ29sb3IKCQkJPDwKCQkJCS9UeXBlIDEKCQkJCS9WYWx1ZXMgWyAwLjAgMC4wIDAuMCAxLjAgXQoJCQk+PgoJCQkvQWxpZ25MaW5lSGVpZ2h0VG9HcmlkRmxhZ3MgZmFsc2UKCQk+PgoJCS9BbnRpQWxpYXMgNAoJCS9Vc2VGcmFjdGlvbmFsR2x5cGhXaWR0aHMgdHJ1ZQoJCS9SZW5kZXJlZAoJCTw8CgkJCS9WZXJzaW9uIDEKCQkJL1NoYXBlcwoJCQk8PAoJCQkJL1dyaXRpbmdEaXJlY3Rpb24gMAoJCQkJL0NoaWxkcmVuIFsKCQkJCTw8CgkJCQkJL1NoYXBlVHlwZSAwCgkJCQkJL1Byb2Nlc3Npb24gMAoJCQkJCS9MaW5lcwoJCQkJCTw8CgkJCQkJCS9Xcml0aW5nRGlyZWN0aW9uIDAKCQkJCQkJL0NoaWxkcmVuIFsgXQoJCQkJCT4+CgkJCQkJL0Nvb2tpZQoJCQkJCTw8CgkJCQkJCS9QaG90b3Nob3AKCQkJCQkJPDwKCQkJCQkJCS9TaGFwZVR5cGUgMAoJCQkJCQkJL1BvaW50QmFzZSBbIDAuMCAwLjAgXQoJCQkJCQkJL0Jhc2UKCQkJCQkJCTw8CgkJCQkJCQkJL1NoYXBlVHlwZSAwCgkJCQkJCQkJL1RyYW5zZm9ybVBvaW50MCBbIDEuMCAwLjAgXQoJCQkJCQkJCS9UcmFuc2Zvcm1Qb2ludDEgWyAwLjAgMS4wIF0KCQkJCQkJCQkvVHJhbnNmb3JtUG9pbnQyIFsgMC4wIDAuMCBdCgkJCQkJCQk+PgoJCQkJCQk+PgoJCQkJCT4+CgkJCQk+PgoJCQkJXQoJCQk+PgoJCT4+Cgk+PgoJL1Jlc291cmNlRGljdAoJPDwKCQkvS2luc29rdVNldCBbCgkJPDwKCQkJL05hbWUgKP7/AFAAaABvAHQAbwBzAGgAbwBwAEsAaQBuAHMAbwBrAHUASABhAHIAZCkKCQkJL05vU3RhcnQgKP7/MAEwAv8M/w4w+/8a/xv/H/8BMPwgFSAZIB3/CTAV/z3/XTAJMAswDTAPMBEw/TD+MJ0wnjAFMEEwQzBFMEcwSTBjMIMwhTCHMI4woTCjMKUwpzCpMMMw4zDlMOcw7jD1MPYwmzCcAD8AIQBcKQBdAH0ALAAuADoAOyEDIQkAov8FIDApCgkJCS9Ob0VuZCAo/v8gGCAc/wgwFP87/1swCDAKMAwwDjAQAFwoAFsAe//l/wQAo/8gAKcwEv8DKQoJCQkvS2VlcCAo/v8gFSAlKQoJCQkvSGFuZ2luZyAo/v8wATACAC4ALCkKCQk+PgoJCTw8CgkJCS9OYW1lICj+/wBQAGgAbwB0AG8AcwBoAG8AcABLAGkAbgBzAG8AawB1AFMAbwBmAHQpCgkJCS9Ob1N0YXJ0ICj+/zABMAL/DP8OMPv/Gv8b/x//ASAZIB3/CTAV/z3/XTAJMAswDTAPMBEw/TD+MJ0wnjAFKQoJCQkvTm9FbmQgKP7/IBggHP8IMBT/O/9bMAgwCjAMMA4wECkKCQkJL0tlZXAgKP7/IBUgJSkKCQkJL0hhbmdpbmcgKP7/MAEwAgAuACwpCgkJPj4KCQldCgkJL01vamlLdW1pU2V0IFsKCQk8PAoJCQkvSW50ZXJuYWxOYW1lICj+/wBQAGgAbwB0AG8AcwBoAG8AcAA2AE0AbwBqAGkASwB1AG0AaQBTAGUAdAAxKQoJCT4+CgkJPDwKCQkJL0ludGVybmFsTmFtZSAo/v8AUABoAG8AdABvAHMAaABvAHAANgBNAG8AagBpAEsAdQBtAGkAUwBlAHQAMikKCQk+PgoJCTw8CgkJCS9JbnRlcm5hbE5hbWUgKP7/AFAAaABvAHQAbwBzAGgAbwBwADYATQBvAGoAaQBLAHUAbQBpAFMAZQB0ADMpCgkJPj4KCQk8PAoJCQkvSW50ZXJuYWxOYW1lICj+/wBQAGgAbwB0AG8AcwBoAG8AcAA2AE0AbwBqAGkASwB1AG0AaQBTAGUAdAA0KQoJCT4+CgkJXQoJCS9UaGVOb3JtYWxTdHlsZVNoZWV0IDAKCQkvVGhlTm9ybWFsUGFyYWdyYXBoU2hlZXQgMAoJCS9QYXJhZ3JhcGhTaGVldFNldCBbCgkJPDwKCQkJL05hbWUgKP7/AFIARwBCACAALQAgAE4AbwByAG0AYQBsKQoJCQkvRGVmYXVsdFN0eWxlU2hlZXQgMAoJCQkvUHJvcGVydGllcwoJCQk8PAoJCQkJL0p1c3RpZmljYXRpb24gMAoJCQkJL0ZpcnN0TGluZUluZGVudCAwLjAKCQkJCS9TdGFydEluZGVudCAwLjAKCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkvU3BhY2VCZWZvcmUgMC4wCgkJCQkvU3BhY2VBZnRlciAwLjAKCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgNgoJCQkJL1ByZUh5cGhlbiAyCgkJCQkvUG9zdEh5cGhlbiAyCgkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDgKCQkJCS9ab25lIDM2LjAKCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkvTGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkvS2luc29rdU9yZGVyIDAKCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQk+PgoJCT4+CgkJXQoJCS9TdHlsZVNoZWV0U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8AUgBHAEIAIAAtACAATgBvAHIAbQBhAGwpCgkJCS9TdHlsZVNoZWV0RGF0YQoJCQk8PAoJCQkJL0ZvbnQgMQoJCQkJL0ZvbnRTaXplIDEyLjAKCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCS9BdXRvTGVhZGluZyB0cnVlCgkJCQkvTGVhZGluZyAwLjAKCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4w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eHRJbmRleGxvbmcAAAAQAAAACkVuZ2luZURhdGF0ZHRhAAAhyQoKPDwKCS9FbmdpbmVEaWN0Cgk8PAoJCS9FZGl0b3IKCQk8PAoJCQkvVGV4dCAo/v8AUgBUAEYADSkKCQk+PgoJCS9QYXJhZ3JhcGhSdW4KCQk8PAoJCQkvRGVmYXVsdFJ1bkRhdGEKCQkJPDwKCQkJCS9QYXJhZ3JhcGhTaGVldAoJCQkJPDwKCQkJCQkvRGVmYXVsdFN0eWxlU2hlZXQgMAoJCQkJCS9Qcm9wZXJ0aWVzCgkJCQkJPDwKCQkJCQk+PgoJCQkJPj4KCQkJCS9BZGp1c3RtZW50cwoJCQkJPDwKCQkJCQkvQXhpcyBbIDEuMCAwLjAgMS4wIF0KCQkJCQkvWFkgWyAwLjAgMC4wIF0KCQkJCT4+CgkJCT4+CgkJCS9SdW5BcnJheSBbCgkJCTw8CgkJCQkvUGFyYWdyYXBoU2hlZXQKCQkJCTw8CgkJCQkJL0RlZmF1bHRTdHlsZVNoZWV0IDAKCQkJCQkvUHJvcGVydGllcwoJCQkJCTw8CgkJCQkJCS9KdXN0aWZpY2F0aW9uIDIKCQkJCQkJL0ZpcnN0TGluZUluZGVudCAwLjAKCQkJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJCQkvRW5kSW5kZW50IDAuMAoJCQkJCQkvU3BhY2VCZWZvcmUgMC4wCgkJCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJCQkvQXV0b0h5cGhlbmF0ZSB0cnVlCgkJCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgOAoJCQkJCQkvUHJlSHlwaGVuIDMKCQkJCQkJL1Bvc3RIeXBoZW4gMwoJCQkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDIKCQkJCQkJL1pvbmUgMzYuMAoJCQkJCQkvV29yZFNwYWNpbmcgWyAwLjggMS4wIDEuMzMgXQoJCQkJCQkvTGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJCQkvQnVyYXNhZ2FyaSBmYWxzZQoJCQkJCQkvS2luc29rdU9yZGVyIDAKCQkJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCQkJPj4KCQkJCT4+CgkJCQkvQWRqdXN0bWVudHMKCQkJCTw8CgkJCQkJL0F4aXMgWyAxLjAgMC4wIDEuMCBdCgkJCQkJL1hZIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQk+PgoJCQldCgkJCS9SdW5MZW5ndGhBcnJheSBbIDQgXQoJCQkvSXNKb2luYWJsZSAxCgkJPj4KCQkvU3R5bGVSdW4KCQk8PAoJCQkvRGVmYXVsdFJ1bkRhdGEKCQkJPDwKCQkJCS9TdHlsZVNoZWV0CgkJCQk8PAoJCQkJCS9TdHlsZVNoZWV0RGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJCS9SdW5BcnJheSBbCgkJCTw8CgkJCQkvU3R5bGVTaGVldAoJCQkJPDwKCQkJCQkvU3R5bGVTaGVldERhdGEKCQkJCQk8PAoJCQkJCQkvRm9udCAwCgkJCQkJCS9Gb250U2l6ZSAyMC43NzMzMQoJCQkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCQkJL0F1dG9MZWFkaW5nIGZhbHNlCgkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJCQkvVHJhY2tpbmcgMjAKCQkJCQkJL0F1dG9LZXJuaW5nIHRydWUKCQkJCQkJL0tlcm5pbmcgMAoJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkvRm9udENhcHMgMAoJCQkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCQkJL1VuZGVybGluZSBmYWxzZQoJCQkJCQkvU3RyaWtldGhyb3VnaCBmYWxzZQoJCQkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCQkJL0RMaWdhdHVyZXMgZmFsc2UKCQkJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDEKCQkJCQkJL1RzdW1lIDAuMAoJCQkJCQkvU3R5bGVSdW5BbGlnbm1lbnQgMgoJCQkJCQkvTGFuZ3VhZ2UgMAoJCQkJCQkvTm9CcmVhayBmYWxzZQoJCQkJCQkvRmlsbENvbG9yCgkJCQkJCTw8CgkJCQkJCQkvVHlwZSAxCgkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJPj4KCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCTw8CgkJCQkJCQkvVHlwZSAxCgkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJPj4KCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJL0ZpbGxGaXJzdCBmYWxzZQoJCQkJCQkvWVVuZGVybGluZSAxCgkJCQkJCS9PdXRsaW5lV2lkdGggMC4wNDE2NwoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCQldCgkJCS9SdW5MZW5ndGhBcnJheSBbIDQgXQoJCQkvSXNKb2luYWJsZSAyCgkJPj4KCQkvR3JpZEluZm8KCQk8PAoJCQkvR3JpZElzT24gZmFsc2UKCQkJL1Nob3dHcmlkIGZhbHNlCgkJCS9HcmlkU2l6ZSAxOC4wCgkJCS9HcmlkTGVhZGluZyAyMi4wCgkJCS9HcmlkQ29sb3IKCQkJPDwKCQkJCS9UeXBlIDEKCQkJCS9WYWx1ZXMgWyAwLjAgMC4wIDAuMCAxLjAgXQoJCQk+PgoJCQkvR3JpZExlYWRpbmdGaWxsQ29sb3IKCQkJPDwKCQkJCS9UeXBlIDEKCQkJCS9WYWx1ZXMgWyAwLjAgMC4wIDAuMCAxLjAgXQoJCQk+PgoJCQkvQWxpZ25MaW5lSGVpZ2h0VG9HcmlkRmxhZ3MgZmFsc2UKCQk+PgoJCS9BbnRpQWxpYXMgNAoJCS9Vc2VGcmFjdGlvbmFsR2x5cGhXaWR0aHMgdHJ1ZQoJCS9SZW5kZXJlZAoJCTw8CgkJCS9WZXJzaW9uIDEKCQkJL1NoYXBlcwoJCQk8PAoJCQkJL1dyaXRpbmdEaXJlY3Rpb24gMAoJCQkJL0NoaWxkcmVuIFsKCQkJCTw8CgkJCQkJL1NoYXBlVHlwZSAwCgkJCQkJL1Byb2Nlc3Npb24gMAoJCQkJCS9MaW5lcwoJCQkJCTw8CgkJCQkJCS9Xcml0aW5n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L0hhbmdpbmcgZmFsc2UKCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkvS2luc29rdU9yZGVyIDAKCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQk+PgoJCT4+CgkJXQoJCS9TdHlsZVNoZWV0U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8AUgBHAEIAIAAtACAATgBvAHIAbQBhAGwpCgkJCS9TdHlsZVNoZWV0RGF0YQoJCQk8PAoJCQkJL0ZvbnQgMQoJCQkJL0ZvbnRTaXplIDEyLjAKCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCS9BdXRvTGVhZGluZyB0cnVlCgkJCQkvTGVhZGluZyAwLjAKCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCS9UcmFja2luZyAwCgkJCQkvQXV0b0tlcm5pbmcgdHJ1ZQoJCQkJL0tlcm5pbmcgMAoJCQkJL0Jhc2VsaW5lU2hpZnQgMC4wCgkJCQkvRm9udENhcHMgMAoJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkvVW5kZXJsaW5lIGZhbHNlCgkJCQkvU3RyaWtldGhyb3VnaCBmYWxzZQoJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkvRExpZ2F0dXJlcyBmYWxzZQoJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDIKCQkJCS9Uc3VtZSAwLjAKCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkvTGFuZ3VhZ2UgMAoJCQkJL05vQnJlYWsgZmFsc2UKCQkJCS9GaWxsQ29sb3IKCQkJCTw8CgkJCQkJL1R5cGUgMQoJCQkJCS9WYWx1ZXMgWyAxLjAgMC4wIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9TdHJva2VDb2xvcgoJCQkJPDwKCQkJCQkvVHlwZSAxCgkJCQkJL1ZhbHVlcyBbIDEuMCAwLjAgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkvRmlsbEZpcnN0IHRydWUKCQkJCS9ZVW5kZXJsaW5lIDEKCQkJCS9PdXRsaW5lV2lkdGggMS4w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IDEuMzMgXQoJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJL0xlYWRpbmdUeXBlIDAKCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkvQnVyYXNhZ2FyaSBmYWxzZQoJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJPj4KCQk+PgoJCV0KCQkvU3R5bGVTaGVldFNldCBbCgkJPDwKCQkJL05hbWUgKP7/AFIARwBCACAALQAgAE4AbwByAG0AYQBsKQoJCQkvU3R5bGVTaGVldERhdGEKCQkJPDwKCQkJCS9Gb250IDEKCQkJCS9Gb250U2l6ZSAxMi4wCgkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkvQXV0b0xlYWRpbmcgdHJ1ZQoJCQkJL0xlYWRpbmcgMC4wCgkJCQkvSG9yaXpvbnRhbFNjYWxlIDEuMAoJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkvVHJhY2tpbmcgMAoJCQkJL0F1dG9LZXJuaW5nIHRydWUKCQkJCS9LZXJuaW5nIDAKCQkJCS9CYXNlbGluZVNoaWZ0IDAuMAoJCQkJL0ZvbnRDYXBzIDAKCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJL1VuZGVybGluZSBmYWxzZQoJCQkJL1N0cmlrZXRocm91Z2ggZmFsc2UKCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJL0RMaWdhdHVyZXMgZmFsc2UKCQkJCS9CYXNlbGluZURpcmVjdGlvbiAyCgkJCQkvVHN1bWUgMC4wCgkJCQkvU3R5bGVSdW5BbGlnbm1lbnQgMgoJCQkJL0xhbmd1YWdlIDAKCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkvRmlsbENvbG9yCgkJCQk8PAoJCQkJCS9UeXBlIDEKCQkJCQkvVmFsdWVzIFsgMS4wIDAuMCAwLjAgMC4wIF0KCQkJCT4+CgkJCQkvU3Ryb2tlQ29sb3IKCQkJCTw8CgkJCQkJL1R5cGUgMQoJCQkJCS9WYWx1ZXMgWyAxLjAg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aXRvcgoJCTw8CgkJCS9UZXh0ICj+/wBEAE8AQwANKQoJCT4+CgkJL1BhcmFncmFwaFJ1bgoJCTw8CgkJCS9EZWZhdWx0UnVuRGF0YQoJCQk8PAoJCQkJL1BhcmFncmFwaFNoZWV0CgkJCQk8PAoJCQkJCS9EZWZhdWx0U3R5bGVTaGVldCAwCgkJCQkJL1Byb3BlcnRpZXMKCQkJCQk8PAoJCQkJCT4+CgkJCQk+PgoJCQkJL0FkanVzdG1lbnRzCgkJCQk8PAoJCQkJCS9BeGlzIFsgMS4wIDAuMCAxLjAgXQoJCQkJCS9YWSBbIDAuMCAwLjAgXQoJCQkJPj4KCQkJPj4KCQkJL1J1bkFycmF5IFsKCQkJPDwKCQkJCS9QYXJhZ3JhcGhTaGVldAoJCQkJPDwKCQkJCQkvRGVmYXVsdFN0eWxlU2hlZXQgMAoJCQkJCS9Qcm9wZXJ0aWVzCgkJCQkJPDwKCQkJCQkJL0p1c3RpZmljYXRpb24gMgoJCQkJCQkvRmlyc3RMaW5lSW5kZW50IDAuMAoJCQkJCQkvU3RhcnRJbmRlbnQgMC4wCgkJCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkJCS9TcGFjZUJlZm9yZSAwLjAKCQkJCQkJL1NwYWNlQWZ0ZXIgMC4wCgkJCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCQkJL0h5cGhlbmF0ZWRXb3JkU2l6ZSA4CgkJCQkJCS9QcmVIeXBoZW4gMwoJCQkJCQkvUG9zdEh5cGhlbiAzCgkJCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgMgoJCQkJCQkvWm9uZSAzNi4wCgkJCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJCQk+PgoJCQkJPj4KCQkJCS9BZGp1c3RtZW50cwoJCQkJPDwKCQkJCQkvQXhpcyBbIDEuMCAwLjAgMS4wIF0KCQkJCQkvWFkgWyAwLjAgMC4wIF0KCQkJCT4+CgkJCT4+CgkJCV0KCQkJL1J1bkxlbmd0aEFycmF5IFsgNCBdCgkJCS9Jc0pvaW5hYmxlIDEKCQk+PgoJCS9TdHlsZVJ1bgoJCTw8CgkJCS9EZWZhdWx0UnVuRGF0YQoJCQk8PAoJCQkJL1N0eWxlU2hlZXQKCQkJCTw8CgkJCQkJL1N0eWxlU2hlZXREYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQkJL1J1bkFycmF5IFsKCQkJPDwKCQkJCS9TdHlsZVNoZWV0CgkJCQk8PAoJCQkJCS9TdHlsZVNoZWV0RGF0YQoJCQkJCTw8CgkJCQkJCS9Gb250IDAKCQkJCQkJL0ZvbnRTaXplIDIwLjc3MzMxCgkJCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkvQXV0b0xlYWRpbmcgZmFsc2UKCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkJCS9UcmFja2luZyAyMAoJCQkJCQkvQXV0b0tlcm5pbmcgdHJ1ZQoJCQkJCQkvS2VybmluZyAwCgkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJCQkvVW5kZXJsaW5lIGZhbHNlCgkJCQkJCS9TdHJpa2V0aHJvdWdoIGZhbHNlCgkJCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJCQkvRExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMQoJCQkJCQkvVHN1bWUgMC4wCgkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCS9MYW5ndWFnZSAwCgkJCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJPDwKCQkJCQkJCS9UeXBlIDEKCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQk+PgoJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJPDwKCQkJCQkJCS9UeXBlIDEKCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQk+PgoJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCS9ZVW5kZXJsaW5lIDEKCQkJCQkJL091dGxpbmVXaWR0aCAwLjA0MTY3CgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJCV0KCQkJL1J1bkxlbmd0aEFycmF5IFsgNCBdCgkJCS9Jc0pvaW5hYmxlIDIKCQk+PgoJCS9HcmlkSW5mbwoJCTw8CgkJCS9HcmlkSXNPbiBmYWxzZQoJCQkvU2hvd0dyaWQgZmFsc2UKCQkJL0dyaWRTaXplIDE4LjAKCQkJL0dyaWRMZWFkaW5nIDIyLjAKCQkJL0dyaWRDb2xvcgoJCQk8PAoJCQkJL1R5cGUgMQoJCQkJL1ZhbHVlcyBbIDAuMCAwLjAgMC4wIDEuMCBdCgkJCT4+CgkJCS9HcmlkTGVhZGluZ0ZpbGxDb2xvcgoJCQk8PAoJCQkJL1R5cGUgMQoJCQkJL1ZhbHVlcyBbIDAuMCAwLjAgMC4wIDEuMCBdCgkJCT4+CgkJCS9BbGlnbkxpbmVIZWlnaHRUb0dyaWRGbGFncyBmYWxzZQoJCT4+CgkJL0FudGlBbGlhcyA0CgkJL1VzZUZyYWN0aW9uYWxHbHlwaFdpZHRocyB0cnVlCgkJL1JlbmRlcmVkCgkJPDwKCQkJL1ZlcnNpb24gMQoJCQkvU2hhcGVzCgkJCTw8CgkJCQkvV3JpdGluZ0RpcmVjdGlvbiAwCgkJCQkvQ2hpbGRyZW4gWwoJCQkJPDwKCQkJCQkvU2hhcGVUeXBlIDAKCQkJCQkvUHJvY2Vzc2lvbiAwCgkJCQkJL0xpbmVzCgkJCQkJPDwKCQkJCQkJL1dyaXRpbmdEaXJlY3Rpb24gMAoJCQkJCQkvQ2hpbGRyZW4gWyBdCgkJCQkJPj4KCQkJCQkvQ29va2llCgkJCQkJPDwKCQkJ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LjAgMS4wIDEuMCBdCgkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkvS2luc29rdU9yZGVyIDAKCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQk+PgoJCT4+CgkJXQoJCS9TdHlsZVNoZWV0U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8AUgBHAEIAIAAtACAATgBvAHIAbQBhAGwpCgkJCS9TdHlsZVNoZWV0RGF0YQoJCQk8PAoJCQkJL0ZvbnQgMQoJCQkJL0ZvbnRTaXplIDEyLjAKCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCS9BdXRvTGVhZGluZyB0cnVlCgkJCQkvTGVhZGluZyAwLjAKCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCS9UcmFja2luZyAwCgkJCQkvQXV0b0tlcm5pbmcgdHJ1ZQoJCQkJL0tlcm5pbmcgMAoJCQkJL0Jhc2VsaW5lU2hpZnQgMC4wCgkJCQkvRm9udENhcHMgMAoJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkvVW5kZXJsaW5lIGZhbHNlCgkJCQkvU3RyaWtldGhyb3VnaCBmYWxzZQoJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkvRExpZ2F0dXJlcyBmYWxzZQoJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDIKCQkJCS9Uc3VtZSAwLjAKCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkvTGFuZ3VhZ2UgMAoJCQkJL05vQnJlYWsgZmFsc2UKCQkJCS9GaWxsQ29sb3IKCQkJCTw8CgkJCQkJL1R5cGUgMQoJCQkJCS9WYWx1ZXMgWyAxLjAgMC4wIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9TdHJva2VDb2xvcgoJCQkJPDwKCQkJCQkvVHlwZSAxCgkJCQkJL1ZhbHVlcyBbIDEuMCAwLjAgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJ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CQkJCS9QYXJhZ3JhcGhTaGVldAoJCQkJPDwKCQkJCQkvRGVmYXVsdFN0eWxlU2hlZXQgMAoJCQkJCS9Qcm9wZXJ0aWVzCgkJCQkJPDwKCQkJCQkJL0p1c3RpZmljYXRpb24gMgoJCQkJCQkvRmlyc3RMaW5lSW5kZW50IDAuMAoJCQkJCQkvU3RhcnRJbmRlbnQgMC4wCgkJCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkJCS9TcGFjZUJlZm9yZSAwLjAKCQkJCQkJL1NwYWNlQWZ0ZXIgMC4wCgkJCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCQkJL0h5cGhlbmF0ZWRXb3JkU2l6ZSA4CgkJCQkJCS9QcmVIeXBoZW4gMwoJCQkJCQkvUG9zdEh5cGhlbiAzCgkJCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgMgoJCQkJCQkvWm9uZSAzNi4wCgkJCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJCQk+PgoJCQkJPj4KCQkJCS9BZGp1c3RtZW50cwoJCQkJPDwKCQkJCQkvQXhpcyBbIDEuMCAwLjAgMS4wIF0KCQkJCQkvWFkgWyAwLjAgMC4wIF0KCQkJCT4+CgkJCT4+CgkJCV0KCQkJL1J1bkxlbmd0aEFycmF5IFsgNCBdCgkJCS9Jc0pvaW5hYmxlIDEKCQk+PgoJCS9TdHlsZVJ1bgoJCTw8CgkJCS9EZWZhdWx0UnVuRGF0YQoJCQk8PAoJCQkJL1N0eWxlU2hlZXQKCQkJCTw8CgkJCQkJL1N0eWxlU2hlZXREYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQkJL1J1bkFycmF5IFsKCQkJPDwKCQkJCS9TdHlsZVNoZWV0CgkJCQk8PAoJCQkJCS9TdHlsZVNoZWV0RGF0YQoJCQkJCTw8CgkJCQkJCS9Gb250IDAKCQkJCQkJL0ZvbnRTaXplIDIwLjc3MzMxCgkJCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkvQXV0b0xlYWRpbmcgZmFsc2UKCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkJCS9UcmFja2luZyAyMAoJCQkJCQkvQXV0b0tlcm5pbmcgdHJ1ZQoJCQkJCQkvS2VybmluZyAwCgkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJCQkvVW5kZXJsaW5lIGZhbHNlCgkJCQkJCS9TdHJpa2V0aHJvdWdoIGZhbHNlCgkJCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJCQkvRExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMQoJCQkJCQkvVHN1bWUgMC4wCgkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCS9MYW5ndWFnZSAwCgkJCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJPDwKCQkJCQkJCS9UeXBlIDEKCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQk+PgoJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJPDwKCQkJCQkJCS9UeXBlIDEKCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQk+PgoJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCS9ZVW5kZXJsaW5lIDEKCQkJCQkJL091dGxpbmVXaWR0aCAwLjA0MTY3CgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJCV0KCQkJL1J1bkxlbmd0aEFycmF5IFsgNCBdCgkJCS9Jc0pvaW5hYmxlIDIKCQk+PgoJCS9HcmlkSW5mbwoJCTw8CgkJCS9HcmlkSXNPbiBmYWxzZQoJCQkvU2hvd0dyaWQgZmFsc2UKCQkJL0dyaWRTaXplIDE4LjAKCQkJL0dyaWRMZWFkaW5nIDIyLjAKCQkJL0dyaWRDb2xvcgoJCQk8PAoJCQkJL1R5cGUgMQoJCQkJL1ZhbHVlcyBbIDAuMCAwLjAgMC4wIDEuMCBdCgkJCT4+CgkJCS9HcmlkTGVhZGluZ0ZpbGxDb2xvcgoJCQk8PAoJCQkJL1R5cGUgMQoJCQkJL1ZhbHVlcyBbIDAuMCAwLjAgMC4wIDEuMCBdCgkJCT4+CgkJCS9BbGlnbkxpbmVIZWlnaHRUb0dyaWRGbGFncyBmYWxzZQoJCT4+CgkJL0FudGlBbGlhcyA0CgkJL1VzZUZyYWN0aW9uYWxHbHlwaFdpZHRocyB0cnVlCgkJL1JlbmRlcmVkCgkJPDwKCQkJL1ZlcnNpb24gMQoJCQkvU2hhcGVzCgkJCTw8CgkJCQkvV3JpdGluZ0RpcmVjdGlvbiAwCgkJCQkvQ2hpbGRyZW4gWwoJCQkJPDwKCQkJCQkvU2hhcGVUeXBlIDAKCQkJCQkvUHJvY2Vzc2lvbiAwCgkJCQkJL0xpbmVzCgkJCQkJPDwKCQkJCQkJL1dyaXRpbmdEaXJlY3Rpb24gMAoJCQkJCQkvQ2hpbGRyZW4gWyBdCgkJCQkJPj4KCQkJCQkvQ29va2llCgkJCQkJPDwKCQkJCQkJL1Bob3Rvc2hvcAoJCQkJCQk8PAoJCQkJCQkJL1NoYXBlVHlwZSAwCgkJCQkJCQkvUG9pbnRCYXNlIFsgMC4wIDAuMCBdCgkJCQkJCQkvQmFzZQoJCQkJCQkJPDwKCQkJCQkJCQkvU2hhcGVUeXBlIDAKCQkJCQkJCQkvVHJhbnNmb3JtUG9pbnQwIFsgMS4wIDAuMCBdCgkJCQkJCQkJL1RyYW5zZm9ybVBvaW50MSBbIDAuMCAxLjAgXQoJCQkJCQkJCS9UcmFuc2Zvcm1Qb2ludDIgWyAwLjAgMC4wIF0KCQkJCQkJCT4+CgkJCQkJCT4+CgkJCQkJPj4KCQkJCT4+CgkJCQldCgkJCT4+CgkJPj4KCT4+CgkvUmVzb3VyY2VEaWN0Cgk8PAoJCS9LaW5zb2t1U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8AUABoAG8AdABvAHMAaABvAHAASwBpAG4AcwBvAGsAdQBIAGEAcgBkKQoJCQkvTm9TdGFydCAo/v8wATAC/wz/DjD7/xr/G/8f/wEw/CAVIBkgHf8JMBX/Pf9dMAkwCzANMA8wETD9MP4wnTCeMAUwQTBDMEUwRzBJMGMwgzCFMIcwjjChMKMwpTCnMKkwwzDjMOUw5zDuMPUw9jCbMJwAPwAhAFwpAF0AfQAsAC4AOgA7IQMhCQCi/wUgMCkKCQkJL05vRW5kICj+/yAYIBz/CDAU/zv/WzAIMAowDDAOMBAAXCgAWwB7/+X/BACj/yAApzAS/wMpCgkJCS9LZWVwICj+/yAVICUpCgkJCS9IYW5naW5nICj+/zABMAIALgAsKQoJCT4+CgkJPDwKCQkJL05hbWUgKP7/AFAAaABvAHQAbwBzAGgAbwBwAEsAaQBuAHMAbwBrAHUAUwBvAGYAdCkKCQkJL05vU3RhcnQgKP7/MAEwAv8M/w4w+/8a/xv/H/8BIBkgHf8JMBX/Pf9dMAkwCzANMA8wETD9MP4wnTCeMAUpCgkJCS9Ob0VuZCAo/v8gGCAc/wgwFP87/1swCDAKMAwwDjAQKQoJCQkvS2VlcCAo/v8gFSAlKQoJCQkvSGFuZ2luZyAo/v8wATACAC4ALCkKCQk+PgoJCV0KCQkvTW9qaUt1bWlTZXQgWwoJCTw8CgkJCS9JbnRlcm5hbE5hbWUgKP7/AFAAaABvAHQAbwBzAGgAbwBwADYATQBvAGoAaQBLAHUAbQBpAFMAZQB0ADEpCgkJPj4KCQk8PAoJCQkvSW50ZXJuYWxOYW1lICj+/wBQAGgAbwB0AG8AcwBoAG8AcAA2AE0AbwBqAGkASwB1AG0AaQBTAGUAdAAyKQoJCT4+CgkJPDwKCQkJL0ludGVybmFsTmFtZSAo/v8AUABoAG8AdABvAHMAaABvAHAANgBNAG8AagBpAEsAdQBtAGkAUwBlAHQAMykKCQk+PgoJCTw8CgkJCS9JbnRlcm5hbE5hbWUgKP7/AFAAaABvAHQAbwBzAGgAbwBwADYATQBvAGoAaQBLAHUAbQBpAFMAZQB0ADQpCgkJPj4KCQldCgkJL1RoZU5vcm1hbFN0eWxlU2hlZXQgMAoJCS9UaGVOb3JtYWxQYXJhZ3JhcGhTaGVldCAwCgkJL1BhcmFncmFwaFNoZWV0U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8AUgBHAEIAIAAtACAATgBvAHIAbQBhAGwpCgkJCS9EZWZhdWx0U3R5bGVTaGVldCAwCgkJCS9Qcm9wZXJ0aWVzCgkJCTw8CgkJCQkvSnVzdGlmaWNhdGlvbiAwCgkJCQkvRmlyc3RMaW5lSW5kZW50IDAuMAoJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJL0VuZEluZGVudCAwLjAKCQkJCS9TcGFjZUJlZm9yZSAwLjAKCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJL0h5cGhlbmF0ZWRXb3JkU2l6ZSA2CgkJCQkvUHJlSHlwaGVuIDIKCQkJCS9Qb3N0SHlwaGVuIDIKCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgOAoJCQkJL1pvbmUgMzYuMAoJCQkJL1dvcmRTcGFjaW5nIFsgMC44IDEuMCAxLjMzIF0KCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJL0J1cmFzYWdhcmkgZmFsc2UKCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCT4+CgkJPj4KCQldCgkJL1N0eWxlU2hlZXRTZXQgWwoJCTw8CgkJCS9OYW1lICj+/wBSAEcAQgAgAC0AIABOAG8AcgBtAGEAbCkKCQkJL1N0eWxlU2hlZXREYXRhCgkJCTw8CgkJCQkvRm9udCAxCgkJCQkvRm9udFNpemUgMTIuMAoJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJL0F1dG9MZWFkaW5nIHRydWUKCQkJCS9MZWFkaW5nIDAuMAoJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCS9WZXJ0aWNhbFNjYWxlIDEu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eXBoZW4gMwoJCQkJCQkvUG9zdEh5cGhlbiAzCgkJCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgMgoJCQkJCQkvWm9uZSAzNi4wCgkJCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJCQk+PgoJCQkJPj4KCQkJCS9BZGp1c3RtZW50cwoJCQkJPDwKCQkJCQkvQXhpcyBbIDEuMCAwLjAgMS4wIF0KCQkJCQkvWFkgWyAwLjAgMC4wIF0KCQkJCT4+CgkJCT4+CgkJCV0KCQkJL1J1bkxlbmd0aEFycmF5IFsgNCBdCgkJCS9Jc0pvaW5hYmxlIDEKCQk+PgoJCS9TdHlsZVJ1bgoJCTw8CgkJCS9EZWZhdWx0UnVuRGF0YQoJCQk8PAoJCQkJL1N0eWxlU2hlZXQKCQkJCTw8CgkJCQkJL1N0eWxlU2hlZXREYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQkJL1J1bkFycmF5IFsKCQkJPDwKCQkJCS9TdHlsZVNoZWV0CgkJCQk8PAoJCQkJCS9TdHlsZVNoZWV0RGF0YQoJCQkJCTw8CgkJCQkJCS9Gb250IDAKCQkJCQkJL0ZvbnRTaXplIDIwLjc3MzMxCgkJCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkvQXV0b0xlYWRpbmcgZmFsc2UKCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkJCS9UcmFja2luZyAyMAoJCQkJCQkvQXV0b0tlcm5pbmcgdHJ1ZQoJCQkJCQkvS2VybmluZyAwCgkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJCQkvVW5kZXJsaW5lIGZhbHNlCgkJCQkJCS9TdHJpa2V0aHJvdWdoIGZhbHNlCgkJCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJCQkvRExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMQoJCQkJCQkvVHN1bWUgMC4wCgkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCS9MYW5ndWFnZSAwCgkJCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJPDwKCQkJCQkJCS9UeXBlIDEKCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQk+PgoJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJPDwKCQkJCQkJCS9UeXBlIDEKCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQk+PgoJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCS9ZVW5kZXJsaW5lIDEKCQkJCQkJL091dGxpbmVXaWR0aCAwLjA0MTY3CgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJCV0KCQkJL1J1bkxlbmd0aEFycmF5IFsgNCBdCgkJCS9Jc0pvaW5hYmxlIDIKCQk+PgoJCS9HcmlkSW5mbwoJCTw8CgkJCS9HcmlkSXNPbiBmYWxzZQoJCQkvU2hvd0dyaWQgZmFsc2UKCQkJL0dyaWRTaXplIDE4LjAKCQkJL0dyaWRMZWFkaW5nIDIyLjAKCQkJL0dyaWRDb2xvcgoJCQk8PAoJCQkJL1R5cGUgMQoJCQkJL1ZhbHVlcyBbIDAuMCAwLjAgMC4wIDEuMCBdCgkJCT4+CgkJCS9HcmlkTGVhZGluZ0ZpbGxDb2xvcgoJCQk8PAoJCQkJL1R5cGUgMQoJCQkJL1ZhbHVlcyBbIDAuMCAwLjAg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CQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJL0h5cGhlbmF0ZWRXb3JkU2l6ZSA2CgkJCQkvUHJlSHlwaGVuIDIKCQkJCS9Qb3N0SHlwaGVuIDIKCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgOAoJCQkJL1pvbmUgMzYuMAoJCQkJL1dvcmRTcGFjaW5nIFsgMC44IDEuMCAxLjMzIF0KCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJL0J1cmFzYWdhcmkgZmFsc2UKCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCT4+CgkJPj4KCQldCgkJL1N0eWxlU2hlZXRTZXQgWwoJCTw8CgkJCS9OYW1lICj+/wBSAEcAQgAgAC0AIABOAG8AcgBtAGEAbCkKCQkJL1N0eWxlU2hlZXREYXRhCgkJCTw8CgkJCQkvRm9udCAxCgkJCQkvRm9udFNpemUgMTIuMAoJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJL0F1dG9MZWFkaW5nIHRydWUKCQkJCS9MZWFkaW5nIDAuMAoJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJL1RyYWNraW5nIDAKCQkJCS9BdXRvS2VybmluZyB0cnVlCgkJCQkvS2VybmluZyAwCgkJCQkvQmFzZWxpbmVTaGlmdCAwLjAKCQkJCS9Gb250Q2FwcyAwCgkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCS9VbmRlcmxpbmUgZmFsc2UKCQkJCS9TdHJpa2V0aHJvdWdoIGZhbHNlCgkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCS9ETGlnYXR1cmVzIGZhbHNlCgkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMgoJCQkJL1RzdW1lIDAuMAoJCQkJL1N0eWxlUnVuQWxpZ25tZW50IDIKCQkJCS9MYW5ndWFnZSAw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c3RpZmljYXRpb24gMAoJCQkJL0ZpcnN0TGluZUluZGVudCAwLjAKCQkJCS9TdGFydEluZGVudCAwLjAKCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkvU3BhY2VCZWZvcmUgMC4wCgkJCQkvU3BhY2VBZnRlciAwLjAKCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgNgoJCQkJL1ByZUh5cGhlbiAyCgkJCQkvUG9zdEh5cGhlbiAyCgkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDgKCQkJCS9ab25lIDM2LjAKCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkvTGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkvS2luc29rdU9yZGVyIDAKCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQk+PgoJCT4+CgkJXQoJCS9TdHlsZVNoZWV0U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8AUgBHAEIAIAAtACAATgBvAHIAbQBhAGwpCgkJCS9TdHlsZVNoZWV0RGF0YQoJCQk8PAoJCQkJL0ZvbnQgMQoJCQkJL0ZvbnRTaXplIDEyLjAKCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCS9BdXRvTGVhZGluZyB0cnVlCgkJCQkvTGVhZGluZyAwLjAKCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCS9UcmFja2luZyAwCgkJCQkvQXV0b0tlcm5pbmcgdHJ1ZQoJCQkJL0tlcm5pbmcgMAoJCQkJL0Jhc2VsaW5lU2hpZnQgMC4wCgkJCQkvRm9udENhcHMgMAoJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkvVW5kZXJsaW5lIGZhbHNlCgkJCQkvU3RyaWtldGhyb3VnaCBmYWxzZQoJ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Pj4KCQkJCT4+CgkJCQkvQWRqdXN0bWVudHMKCQkJCTw8CgkJCQkJL0F4aXMgWyAxLjAgMC4wIDEuMCBdCgkJCQkJL1hZIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQk+PgoJCQkvUnVuQXJyYXkgWwoJCQk8PAoJCQkJL1BhcmFncmFwaFNoZWV0CgkJCQk8PAoJCQkJCS9EZWZhdWx0U3R5bGVTaGVldCAwCgkJCQkJL1Byb3BlcnRpZXMKCQkJCQk8PAoJCQkJCQkvSnVzdGlmaWNhdGlvbiAyCgkJCQkJCS9GaXJzdExpbmVJbmRlbnQgMC4wCgkJCQkJCS9TdGFydEluZGVudCAwLjAKCQkJCQkJL0VuZEluZGVudCAwLjAKCQkJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJCQkvU3BhY2VBZnRlciAwLjAKCQkJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJCQkvSHlwaGVuYXRlZFdvcmRTaXplIDgKCQkJCQkJL1ByZUh5cGhlbiAzCgkJCQkJCS9Qb3N0SHlwaGVuIDMKCQkJCQkJL0NvbnNlY3V0aXZlSHlwaGVucyAyCgkJCQkJCS9ab25lIDM2LjAKCQkJCQkJL1dvcmRTcGFjaW5nIFsgMC44IDEuMCAxLjMzIF0KCQkJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCQkJL0xlYWRpbmdUeXBlIDAKCQkJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCQkJL0J1cmFzYWdhcmkgZmFsc2UKCQkJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQkJCT4+CgkJCQk+PgoJCQkJL0FkanVzdG1lbnRzCgkJCQk8PAoJCQkJCS9BeGlzIFsgMS4wIDAuMCAxLjAgXQoJCQkJCS9YWSBbIDAuMCAwLjAgXQoJCQkJPj4KCQkJPj4KCQkJXQoJCQkvUnVuTGVuZ3RoQXJyYXkgWyA0IF0KCQkJL0lzSm9pbmFibGUgMQoJCT4+CgkJL1N0eWxlUnVuCgkJPDwKCQkJL0RlZmF1bHRSdW5EYXRhCgkJCTw8CgkJCQkvU3R5bGVTaGVldAoJCQkJPDwKCQkJCQkvU3R5bGVTaGVldERhdGEKCQkJCQk8PAoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCQkvUnVuQXJyYXkgWwoJCQk8PAoJCQkJL1N0eWxlU2hlZXQKCQkJCTw8CgkJCQkJL1N0eWxlU2hlZXREYXRhCgkJCQkJPDwKCQkJCQkJL0ZvbnQgMAoJCQkJCQkvRm9udFNpemUgMjAuNzczMzEKCQkJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkJCS9BdXRvTGVhZGluZyBmYWxzZQoJCQkJCQkvTGVhZGluZyAzOS44NjE5OAoJCQkJCQkvSG9yaXpvbnRhbFNjYWxlIDEuMAoJCQkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCQkJL1RyYWNraW5nIDIwCgkJCQkJCS9BdXRvS2VybmluZyB0cnVlCgkJCQkJCS9LZXJuaW5nIDAKCQkJCQkJL0Jhc2VsaW5lU2hpZnQgLTguODg2NjIKCQkJCQkJL0ZvbnRDYXBzIDAKCQkJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkJCS9VbmRlcmxpbmUgZmFsc2UKCQkJCQkJL1N0cmlrZXRocm91Z2ggZmFsc2UKCQkJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkJCS9ETGlnYXR1cmVzIGZhbHNlCgkJCQkJCS9CYXNlbGluZURpcmVjdGlvbiAxCgkJCQkJCS9Uc3VtZSAwLjAKCQkJCQkJL1N0eWxlUnVuQWxpZ25tZW50IDIKCQkJCQkJL0xhbmd1YWdlIDAKCQkJCQkJL05vQnJlYWsgZmFsc2UKCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQk8PAoJCQkJCQkJL1R5cGUgMQoJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCT4+CgkJCQkJCS9TdHJva2VDb2xvcgoJCQkJCQk8PAoJCQkJCQkJL1R5cGUgMQoJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCT4+CgkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkJCS9GaWxsRmlyc3QgZmFsc2UKCQkJCQkJL1lVbmRlcmxpbmUgMQoJCQkJCQkvT3V0bGluZVdpZHRoIDAuMDQxNjcKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQkJXQoJCQkvUnVuTGVuZ3RoQXJyYXkgWyA0IF0KCQkJL0lzSm9pbmFibGUgMgoJCT4+CgkJL0dyaWRJbmZvCgkJPDwKCQkJL0dyaWRJc09uIGZhbHNlCgkJCS9TaG93R3JpZCBmYWxzZQoJCQkvR3JpZFNpemUgMTguMAoJCQkvR3JpZExlYWRpbmcgMjIuMAoJCQkvR3JpZENvbG9yCgkJCTw8CgkJCQkvVHlwZSAxCgkJCQkvVmFsdWVzIFsgMC4wIDAuMCAwLjAgMS4wIF0KCQkJPj4KCQkJL0dyaWRMZWFkaW5nRmlsbENvbG9yCgkJCTw8CgkJCQkvVHlwZSAxCgkJCQkvVmFsdWVzIFsgMC4wIDAuMCAwLjAgMS4wIF0KCQkJPj4KCQkJL0FsaWduTGluZUhlaWdodFRvR3JpZEZsYWdzIGZhbHNlCgkJPj4KCQkvQW50aUFsaWFzIDQKCQkvVXNlRnJhY3Rpb25hbEdseXBoV2lkdGhzIHRydWUKCQkvUmVuZGVyZWQKCQk8PAoJCQkvVmVyc2lvbiAxCgkJCS9TaGFwZXMKCQkJPDwKCQkJCS9Xcml0aW5nRGlyZWN0aW9uIDAKCQkJCS9DaGlsZHJlbiBbCgkJCQk8PAoJCQkJCS9TaGFwZVR5cGUgMAoJCQkJCS9Qcm9jZXNzaW9uIDAKCQkJCQkvTGluZXMKCQkJCQk8PAoJCQkJCQkvV3JpdGluZ0RpcmVjdGlvbiAwCgkJCQkJCS9DaGlsZHJlbiBbIF0KCQkJCQk+PgoJCQkJCS9Db29raWUKCQkJCQk8PAoJCQkJCQkvUGhvdG9zaG9wCgkJCQkJCTw8CgkJCQkJCQkvU2hhcGVUeXBlIDAKCQkJCQkJCS9Qb2ludEJhc2UgWyAwLjAgMC4wIF0KCQkJCQkJCS9CYXNlCgkJCQkJCQk8PAoJCQkJCQkJCS9TaGFwZVR5cGUgMAoJCQkJCQkJCS9UcmFuc2Zvcm1Qb2ludDAgWyAxLjAgMC4wIF0KCQkJCQkJCQkvVHJh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CQkJL0VuZEluZGVudCAwLjAKCQkJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJCQkvU3BhY2VBZnRlciAwLjAKCQkJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJCQkvSHlwaGVuYXRlZFdvcmRTaXplIDgKCQkJCQkJL1ByZUh5cGhlbiAzCgkJCQkJCS9Qb3N0SHlwaGVuIDMKCQkJCQkJL0NvbnNlY3V0aXZlSHlwaGVucyAyCgkJCQkJCS9ab25lIDM2LjAKCQkJCQkJL1dvcmRTcGFjaW5nIFsgMC44IDEuMCAxLjMzIF0KCQkJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCQkJL0xlYWRpbmdUeXBlIDAKCQkJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCQkJL0J1cmFzYWdhcmkgZmFsc2UKCQkJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQkJCT4+CgkJCQk+PgoJCQkJL0FkanVzdG1lbnRzCgkJCQk8PAoJCQkJCS9BeGlzIFsgMS4wIDAuMCAxLjAgXQoJCQkJCS9YWSBbIDAuMCAwLjAgXQoJCQkJPj4KCQkJPj4KCQkJXQoJCQkvUnVuTGVuZ3RoQXJyYXkgWyA0IF0KCQkJL0lzSm9pbmFibGUgMQoJCT4+CgkJL1N0eWxlUnVuCgkJPDwKCQkJL0RlZmF1bHRSdW5EYXRhCgkJCTw8CgkJCQkvU3R5bGVTaGVldAoJCQkJPDwKCQkJCQkvU3R5bGVTaGVldERhdGEKCQkJCQk8PAoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCQkvUnVuQXJyYXkgWwoJCQk8PAoJCQkJL1N0eWxlU2hlZXQKCQkJCTw8CgkJCQkJL1N0eWxlU2hlZXREYXRhCgkJCQkJPDwKCQkJCQkJL0ZvbnQgMAoJCQkJCQkvRm9udFNpemUgMjAuNzczMzEKCQkJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkJCS9BdXRvTGVhZGluZyBmYWxzZQoJCQkJCQkvTGVhZGluZyAzOS44NjE5OAoJCQkJCQkvSG9yaXpvbnRhbFNjYWxlIDEuMAoJCQkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCQkJL1RyYWNraW5nIDIwCgkJCQkJCS9BdXRvS2VybmluZyB0cnVlCgkJCQkJCS9LZXJuaW5nIDAKCQkJCQkJL0Jhc2VsaW5lU2hpZnQgLTguODg2NjIKCQkJCQkJL0ZvbnRDYXBzIDAKCQkJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkJCS9VbmRlcmxpbmUgZmFsc2UKCQkJCQkJL1N0cmlrZXRocm91Z2ggZmFsc2UKCQkJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkJCS9ETGlnYXR1cmVzIGZhbHNlCgkJCQkJCS9CYXNlbGluZURpcmVjdGlvbiAxCgkJCQkJCS9Uc3VtZSAwLjAKCQkJCQkJL1N0eWxlUnVuQWxpZ25tZW50IDIKCQkJCQkJL0xhbmd1YWdlIDAKCQkJCQkJL05vQnJlYWsgZmFsc2UKCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQk8PAoJCQkJCQkJL1R5cGUgMQoJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCT4+CgkJCQkJCS9TdHJva2VDb2xvcgoJCQkJCQk8PAoJCQkJCQkJL1R5cGUgMQoJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCT4+CgkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkJCS9GaWxsRmlyc3QgZmFsc2UKCQkJCQkJL1lVbmRlcmxpbmUgMQoJCQkJCQkvT3V0bGluZVdpZHRoIDAuMDQxNjcKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQkJXQoJCQkvUnVuTGVuZ3RoQXJyYXkgWyA0IF0KCQkJL0lzSm9pbmFibGUgMgoJCT4+CgkJL0dyaWRJbmZvCgkJPDwKCQkJL0dyaWRJc09uIGZhbHNlCgkJCS9TaG93R3JpZCBmYWxzZQoJCQkvR3JpZFNpemUgMTguMAoJCQkvR3JpZExlYWRpbmcgMjIuMAoJCQkvR3Jp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CQkJCS9KdXN0aWZpY2F0aW9uIDAKCQkJCS9GaXJzdExpbmVJbmRlbnQgMC4wCgkJCQkvU3RhcnRJbmRlbnQgMC4wCgkJCQkvRW5kSW5kZW50IDAuMAoJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJL1NwYWNlQWZ0ZXIgMC4wCgkJCQkvQXV0b0h5cGhlbmF0ZSB0cnVlCgkJCQkvSHlwaGVuYXRlZFdvcmRTaXplIDYKCQkJCS9QcmVIeXBoZW4gMgoJCQkJL1Bvc3RIeXBoZW4gMgoJCQkJL0NvbnNlY3V0aXZlSHlwaGVucyA4CgkJCQkvWm9uZSAzNi4wCgkJCQkvV29yZFNwYWNpbmcgWyAwLjggMS4wIDEuMzMgXQoJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJL0xlYWRpbmdUeXBlIDAKCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkvQnVyYXNhZ2FyaSBmYWxzZQoJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJPj4KCQk+PgoJCV0KCQkvU3R5bGVTaGVldFNldCBbCgkJPDwKCQkJL05hbWUgKP7/AFIARwBCACAALQAgAE4AbwByAG0AYQBsKQoJCQkvU3R5bGVTaGVldERhdGEKCQkJPDwKCQkJCS9Gb250IDEKCQkJCS9Gb250U2l6ZSAxMi4wCgkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkvQXV0b0xlYWRpbmcgdHJ1ZQoJCQkJL0xlYWRpbmcgMC4wCgkJCQkvSG9yaXpvbnRhbFNjYWxlIDEuMAoJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkvVHJhY2tpbmcgMAoJCQkJL0F1dG9LZXJuaW5nIHRydWUKCQkJCS9LZXJuaW5nIDAKCQkJCS9CYXNlbGluZVNoaWZ0IDAuMAoJCQkJL0ZvbnRDYXBzIDAKCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJL1VuZGVybGluZSBmYWxzZQoJCQkJL1N0cmlrZXRocm91Z2gg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cGhTaGVldCAwCgkJL1BhcmFncmFwaFNoZWV0U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8AUgBHAEIAIAAtACAATgBvAHIAbQBhAGwpCgkJCS9EZWZhdWx0U3R5bGVTaGVldCAwCgkJCS9Qcm9wZXJ0aWVzCgkJCTw8CgkJCQkvSnVzdGlmaWNhdGlvbiAwCgkJCQkvRmlyc3RMaW5lSW5kZW50IDAuMAoJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJL0VuZEluZGVudCAwLjAKCQkJCS9TcGFjZUJlZm9yZSAwLjAKCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJL0h5cGhlbmF0ZWRXb3JkU2l6ZSA2CgkJCQkvUHJlSHlwaGVuIDIKCQkJCS9Qb3N0SHlwaGVuIDIKCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgOAoJCQkJL1pvbmUgMzYuMAoJCQkJL1dvcmRTcGFjaW5nIFsgMC44IDEuMCAxLjMzIF0KCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJL0J1cmFzYWdhcmkgZmFsc2UKCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCT4+CgkJPj4KCQldCgkJL1N0eWxlU2hlZXRTZXQgWwoJCTw8CgkJCS9OYW1lICj+/wBSAEcAQgAgAC0AIABOAG8AcgBtAGEAbCkKCQkJL1N0eWxlU2hlZXREYXRhCgkJCTw8CgkJCQkvRm9udCAxCgkJCQkvRm9udFNpemUgMTIuMAoJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJL0F1dG9MZWFkaW5nIHRydWUKCQkJCS9MZWFkaW5nIDAuMAoJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJL1RyYWNraW5nIDAKCQkJCS9BdXRvS2Vybmlu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CS9QYXJhZ3JhcGhSdW4KCQk8PAoJCQkvRGVmYXVsdFJ1bkRhdGEKCQkJPDwKCQkJCS9QYXJhZ3JhcGhTaGVldAoJCQkJPDwKCQkJCQkvRGVmYXVsdFN0eWxlU2hlZXQgMAoJCQkJCS9Qcm9wZXJ0aWVzCgkJCQkJPDwKCQkJCQk+PgoJCQkJPj4KCQkJCS9BZGp1c3RtZW50cwoJCQkJPDwKCQkJCQkvQXhpcyBbIDEuMCAwLjAgMS4wIF0KCQkJCQkvWFkgWyAwLjAgMC4wIF0KCQkJCT4+CgkJCT4+CgkJCS9SdW5BcnJheSBbCgkJCTw8CgkJCQkvUGFyYWdyYXBoU2hlZXQKCQkJCTw8CgkJCQkJL0RlZmF1bHRTdHlsZVNoZWV0IDAKCQkJCQkvUHJvcGVydGllcwoJCQkJCTw8CgkJCQkJCS9KdXN0aWZpY2F0aW9uIDIKCQkJCQkJL0ZpcnN0TGluZUluZGVudCAwLjAKCQkJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJCQkvRW5kSW5kZW50IDAuMAoJCQkJCQkvU3BhY2VCZWZvcmUgMC4wCgkJCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJCQkvQXV0b0h5cGhlbmF0ZSB0cnVlCgkJCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgOAoJCQkJCQkvUHJlSHlwaGVuIDMKCQkJCQkJL1Bvc3RIeXBoZW4gMwoJCQkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDIKCQkJCQkJL1pvbmUgMzYuMAoJCQkJCQkvV29yZFNwYWNpbmcgWyAwLjggMS4wIDEuMzMgXQoJCQkJCQkvTGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJCQkvQnVyYXNhZ2FyaSBmYWxzZQoJCQkJCQkvS2luc29rdU9yZGVyIDAKCQkJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCQkJPj4KCQkJCT4+CgkJCQkvQWRqdXN0bWVudHMKCQkJCTw8CgkJCQkJL0F4aXMgWyAxLjAgMC4wIDEuMCBdCgkJCQkJL1hZIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQk+PgoJCQldCgkJCS9SdW5MZW5ndGhBcnJheSBbIDQgXQoJCQkvSXNKb2luYWJsZSAxCgkJPj4KCQkvU3R5bGVSdW4KCQk8PAoJCQkvRGVmYXVsdFJ1bkRhdGEKCQkJPDwKCQkJCS9TdHlsZVNoZWV0CgkJCQk8PAoJCQkJCS9TdHlsZVNoZWV0RGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJCS9SdW5BcnJheSBbCgkJCTw8CgkJCQkvU3R5bGVTaGVldAoJCQkJPDwKCQkJCQkvU3R5bGVTaGVldERhdGEKCQkJCQk8PAoJCQkJCQkvRm9udCAwCgkJCQkJCS9Gb250U2l6ZSAyMC43NzMzMQoJCQkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCQkJL0F1dG9MZWFkaW5nIGZhbHNlCgkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJCQkvVHJhY2tpbmcgMjAKCQkJCQkJL0F1dG9LZXJuaW5nIHRydWUKCQkJCQkJL0tlcm5pbmcgMAoJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkvRm9udENhcHMgMAoJCQkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCQkJL1VuZGVybGluZSBmYWxzZQoJCQkJCQkvU3RyaWtldGhyb3VnaCBmYWxzZQoJCQkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCQkJL0RMaWdhdHVyZXMgZmFsc2UKCQkJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDEKCQkJCQkJL1RzdW1lIDAuMAoJCQkJCQkvU3R5bGVSdW5BbGlnbm1lbnQgMgoJCQkJCQkvTGFuZ3VhZ2UgMAoJCQkJCQkvTm9CcmVhayBmYWxzZQoJCQkJCQkvRmlsbENvbG9yCgkJCQkJCTw8CgkJCQkJCQkvVHlwZSAxCgkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJPj4KCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCTw8CgkJCQkJCQkvVHlwZSAxCgkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJPj4KCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJL0ZpbGxGaXJzdCBmYWxzZQoJCQkJCQkvWVVuZGVybGluZSAxCgkJCQkJCS9PdXRsaW5lV2lkdGggMC4wNDE2NwoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCQldCgkJCS9SdW5MZW5ndGhBcnJheSBbIDQgXQoJCQkvSXNKb2luYWJsZSAyCgkJPj4KCQkvR3JpZEluZm8KCQk8PAoJCQkvR3JpZElzT24gZmFsc2UKCQkJL1Nob3dHcmlkIGZhbHNlCgkJCS9HcmlkU2l6ZSAxOC4wCgkJCS9HcmlkTGVhZGluZyAyMi4wCgkJCS9HcmlkQ29sb3IKCQkJPDwKCQkJCS9UeXBlIDEKCQkJCS9WYWx1ZXMgWyAwLjAgMC4wIDAuMCAxLjAgXQoJCQk+PgoJCQkvR3JpZExlYWRpbmdGaWxsQ29sb3IKCQkJPDwKCQkJCS9UeXBlIDEKCQkJCS9WYWx1ZXMgWyAwLjAgMC4wIDAuMCAxLjAgXQoJCQk+PgoJCQkvQWxpZ25MaW5lSGVpZ2h0VG9HcmlkRmxhZ3MgZmFsc2UKCQk+PgoJCS9BbnRpQWxpYXMgNAoJCS9Vc2VGcmFjdGlvbmFsR2x5cGhXaWR0aHMgdHJ1ZQoJCS9SZW5kZXJlZAoJCTw8CgkJCS9WZXJzaW9uIDEKCQkJL1NoYXBlcwoJCQk8PAoJCQkJL1dyaXRpbmdEaXJlY3Rpb24gMAoJCQkJL0NoaWxkcmVuIFsKCQkJCTw8CgkJCQkJL1NoYXBlVHlwZSAwCgkJCQkJL1Byb2Nlc3Npb24gMAoJCQkJCS9MaW5lcwoJCQkJCTw8CgkJCQkJCS9Xcml0aW5nRGlyZWN0aW9uIDAKCQkJCQkJL0NoaWxkcmVuIFsgXQoJCQkJCT4+CgkJCQkJL0Nvb2tpZQoJCQkJCTw8CgkJCQkJCS9QaG90b3Nob3AKCQkJCQkJPDwKCQkJCQkJCS9TaGFwZVR5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L0xlYWRpbmdUeXBlIDAKCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkvQnVyYXNhZ2FyaSBmYWxzZQoJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJPj4KCQk+PgoJCV0KCQkvU3R5bGVTaGVldFNldCBbCgkJPDwKCQkJL05hbWUgKP7/AFIARwBCACAALQAgAE4AbwByAG0AYQBsKQoJCQkvU3R5bGVTaGVldERhdGEKCQkJPDwKCQkJCS9Gb250IDEKCQkJCS9Gb250U2l6ZSAxMi4wCgkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkvQXV0b0xlYWRpbmcgdHJ1ZQoJCQkJL0xlYWRpbmcgMC4wCgkJCQkvSG9yaXpvbnRhbFNjYWxlIDEuMAoJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkvVHJhY2tpbmcgMAoJCQkJL0F1dG9LZXJuaW5nIHRydWUKCQkJCS9LZXJuaW5nIDAKCQkJCS9CYXNlbGluZVNoaWZ0IDAuMAoJCQkJL0ZvbnRDYXBzIDAKCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJL1VuZGVybGluZSBmYWxzZQoJCQkJL1N0cmlrZXRocm91Z2ggZmFsc2UKCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJL0RMaWdhdHVyZXMgZmFsc2UKCQkJCS9CYXNlbGluZURpcmVjdGlvbiAyCgkJCQkvVHN1bWUgMC4wCgkJCQkvU3R5bGVSdW5BbGlnbm1lbnQgMgoJCQkJL0xhbmd1YWdlIDAKCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkvRmlsbENvbG9yCgkJCQk8PAoJCQkJCS9UeXBlIDEKCQkJCQkvVmFsdWVzIFsgMS4wIDAuMCAwLjAgMC4wIF0KCQkJCT4+CgkJCQkvU3Ryb2tlQ29sb3IKCQkJCTw8CgkJCQkJL1R5cGUgMQoJCQkJCS9WYWx1ZXMgWyAxLjAgMC4wIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJL0ZpbGxGaXJzdCB0cnVlCgkJCQkvWVVuZGVybGluZSAxCgkJ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ZWRXb3JkU2l6ZSA4CgkJCQkJCS9QcmVIeXBoZW4gMwoJCQkJCQkvUG9zdEh5cGhlbiAzCgkJCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgMgoJCQkJCQkvWm9uZSAzNi4wCgkJCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJCQk+PgoJCQkJPj4KCQkJCS9BZGp1c3RtZW50cwoJCQkJPDwKCQkJCQkvQXhpcyBbIDEuMCAwLjAgMS4wIF0KCQkJCQkvWFkgWyAwLjAgMC4wIF0KCQkJCT4+CgkJCT4+CgkJCV0KCQkJL1J1bkxlbmd0aEFycmF5IFsgNCBdCgkJCS9Jc0pvaW5hYmxlIDEKCQk+PgoJCS9TdHlsZVJ1bgoJCTw8CgkJCS9EZWZhdWx0UnVuRGF0YQoJCQk8PAoJCQkJL1N0eWxlU2hlZXQKCQkJCTw8CgkJCQkJL1N0eWxlU2hlZXREYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQkJL1J1bkFycmF5IFsKCQkJPDwKCQkJCS9TdHlsZVNoZWV0CgkJCQk8PAoJCQkJCS9TdHlsZVNoZWV0RGF0YQoJCQkJCTw8CgkJCQkJCS9Gb250IDAKCQkJCQkJL0ZvbnRTaXplIDIwLjc3MzMxCgkJCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkvQXV0b0xlYWRpbmcgZmFsc2UKCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkJCS9UcmFja2luZyAyMAoJCQkJCQkvQXV0b0tlcm5pbmcgdHJ1ZQoJCQkJCQkvS2VybmluZyAwCgkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJCQkvVW5kZXJsaW5lIGZhbHNlCgkJCQkJCS9TdHJpa2V0aHJvdWdoIGZhbHNlCgkJCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJCQkvRExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMQoJCQkJCQkvVHN1bWUgMC4wCgkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCS9MYW5ndWFnZSAwCgkJCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJPDwKCQkJCQkJCS9UeXBlIDEKCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQk+PgoJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJPDwKCQkJCQkJCS9UeXBlIDEKCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQk+PgoJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCS9ZVW5kZXJsaW5lIDEKCQkJCQkJL091dGxpbmVXaWR0aCAwLjA0MTY3CgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJCV0KCQkJL1J1bkxlbmd0aEFycmF5IFsgNCBdCgkJCS9Jc0pvaW5hYmxlIDIKCQk+PgoJCS9HcmlkSW5mbwoJCTw8CgkJCS9HcmlkSXNPbiBmYWxzZQoJCQkvU2hvd0dyaWQgZmFsc2UKCQkJL0dyaWRTaXplIDE4LjAKCQkJL0dyaWRMZWFkaW5nIDIyLjAKCQkJL0dyaWRDb2xvcgoJCQk8PAoJCQkJL1R5cGUgMQoJCQkJL1ZhbHVlcyBbIDAuMCAwLjAgMC4wIDEuMCBdCgkJCT4+CgkJCS9HcmlkTGVhZGluZ0ZpbGxDb2xvcgoJCQk8PAoJCQkJL1R5cGUg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LjAKCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJL0h5cGhlbmF0ZWRXb3JkU2l6ZSA2CgkJCQkvUHJlSHlwaGVuIDIKCQkJCS9Qb3N0SHlwaGVuIDIKCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgOAoJCQkJL1pvbmUgMzYuMAoJCQkJL1dvcmRTcGFjaW5nIFsgMC44IDEuMCAxLjMzIF0KCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJL0J1cmFzYWdhcmkgZmFsc2UKCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCT4+CgkJPj4KCQldCgkJL1N0eWxlU2hlZXRTZXQgWwoJCTw8CgkJCS9OYW1lICj+/wBSAEcAQgAgAC0AIABOAG8AcgBtAGEAbCkKCQkJL1N0eWxlU2hlZXREYXRhCgkJCTw8CgkJCQkvRm9udCAxCgkJCQkvRm9udFNpemUgMTIuMAoJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJL0F1dG9MZWFkaW5nIHRydWUKCQkJCS9MZWFkaW5nIDAuMAoJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJL1RyYWNraW5nIDAKCQkJCS9BdXRvS2VybmluZyB0cnVlCgkJCQkvS2VybmluZyAwCgkJCQkvQmFzZWxpbmVTaGlmdCAwLjAKCQkJCS9Gb250Q2FwcyAwCgkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCS9VbmRlcmxpbmUgZmFsc2UKCQkJCS9TdHJpa2V0aHJvdWdoIGZhbHNlCgkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCS9ETGlnYXR1cmVzIGZhbHNlCgkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMgoJCQkJL1RzdW1lIDAuMAoJCQkJL1N0eWxlUnVuQWxp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UHJvcGVydGllcwoJCQk8PAoJCQkJL0p1c3RpZmljYXRpb24gMAoJCQkJL0ZpcnN0TGluZUluZGVudCAwLjAKCQkJCS9TdGFydEluZGVudCAwLjAKCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkvU3BhY2VCZWZvcmUgMC4wCgkJCQkvU3BhY2VBZnRlciAwLjAKCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgNgoJCQkJL1ByZUh5cGhlbiAyCgkJCQkvUG9zdEh5cGhlbiAyCgkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDgKCQkJCS9ab25lIDM2LjAKCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkvTGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkvS2luc29rdU9yZGVyIDAKCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQk+PgoJCT4+CgkJXQoJCS9TdHlsZVNoZWV0U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8AUgBHAEIAIAAtACAATgBvAHIAbQBhAGwpCgkJCS9TdHlsZVNoZWV0RGF0YQoJCQk8PAoJCQkJL0ZvbnQgMQoJCQkJL0ZvbnRTaXplIDEyLjAKCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCS9BdXRvTGVhZGluZyB0cnVlCgkJCQkvTGVhZGluZyAwLjAKCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCS9UcmFja2luZyAwCgkJCQkvQXV0b0tlcm5pbmcgdHJ1ZQoJCQkJL0tlcm5pbmcgMAoJCQkJL0Jhc2VsaW5lU2hpZnQgMC4wCgkJCQkvRm9udENhcHMgMAoJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkvVW5kZXJsaW5lIGZhbHNlCgkJ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CQkJL1NwYWNlQWZ0ZXIgMC4wCgkJCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCQkJL0h5cGhlbmF0ZWRXb3JkU2l6ZSA4CgkJCQkJCS9QcmVIeXBoZW4gMwoJCQkJCQkvUG9zdEh5cGhlbiAzCgkJCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgMgoJCQkJCQkvWm9uZSAzNi4wCgkJCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJCQk+PgoJCQkJPj4KCQkJCS9BZGp1c3RtZW50cwoJCQkJPDwKCQkJCQkvQXhpcyBbIDEuMCAwLjAgMS4wIF0KCQkJCQkvWFkgWyAwLjAgMC4wIF0KCQkJCT4+CgkJCT4+CgkJCV0KCQkJL1J1bkxlbmd0aEFycmF5IFsgNCBdCgkJCS9Jc0pvaW5hYmxlIDEKCQk+PgoJCS9TdHlsZVJ1bgoJCTw8CgkJCS9EZWZhdWx0UnVuRGF0YQoJCQk8PAoJCQkJL1N0eWxlU2hlZXQKCQkJCTw8CgkJCQkJL1N0eWxlU2hlZXREYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQkJL1J1bkFycmF5IFsKCQkJPDwKCQkJCS9TdHlsZVNoZWV0CgkJCQk8PAoJCQkJCS9TdHlsZVNoZWV0RGF0YQoJCQkJCTw8CgkJCQkJCS9Gb250IDAKCQkJCQkJL0ZvbnRTaXplIDIwLjc3MzMxCgkJCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkvQXV0b0xlYWRpbmcgZmFsc2UKCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkJCS9UcmFja2luZyAyMAoJCQkJCQkvQXV0b0tlcm5pbmcgdHJ1ZQoJCQkJCQkvS2VybmluZyAwCgkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJCQkvVW5kZXJsaW5lIGZhbHNlCgkJCQkJCS9TdHJpa2V0aHJvdWdoIGZhbHNlCgkJCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJCQkvRExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMQoJCQkJCQkvVHN1bWUgMC4wCgkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCS9MYW5ndWFnZSAwCgkJCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJPDwKCQkJCQkJCS9UeXBlIDEKCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQk+PgoJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJPDwKCQkJCQkJCS9UeXBlIDEKCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQk+PgoJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCS9ZVW5kZXJsaW5lIDEKCQkJCQkJL091dGxpbmVXaWR0aCAwLjA0MTY3CgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJCV0KCQkJL1J1bkxlbmd0aEFycmF5IFsgNCBdCgkJCS9Jc0pvaW5hYmxlIDIKCQk+PgoJCS9HcmlkSW5mbwoJCTw8CgkJCS9HcmlkSXNPbiBmYWxzZQoJCQkvU2hvd0dyaWQgZmFsc2UKCQkJL0dyaWRTaXplIDE4LjAKCQkJL0dyaWRMZWFkaW5nIDIyLjAKCQkJL0dyaWRDb2xvcgoJCQk8PAoJCQkJL1R5cGUgMQoJCQkJL1ZhbHVlcyBbIDAuMCAw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MAoJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJL0VuZEluZGVudCAwLjAKCQkJCS9TcGFjZUJlZm9yZSAwLjAKCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJL0h5cGhlbmF0ZWRXb3JkU2l6ZSA2CgkJCQkvUHJlSHlwaGVuIDIKCQkJCS9Qb3N0SHlwaGVuIDIKCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgOAoJCQkJL1pvbmUgMzYuMAoJCQkJL1dvcmRTcGFjaW5nIFsgMC44IDEuMCAxLjMzIF0KCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJL0J1cmFzYWdhcmkgZmFsc2UKCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCT4+CgkJPj4KCQldCgkJL1N0eWxlU2hlZXRTZXQgWwoJCTw8CgkJCS9OYW1lICj+/wBSAEcAQgAgAC0AIABOAG8AcgBtAGEAbCkKCQkJL1N0eWxlU2hlZXREYXRhCgkJCTw8CgkJCQkvRm9udCAxCgkJCQkvRm9udFNpemUgMTIuMAoJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJL0F1dG9MZWFkaW5nIHRydWUKCQkJCS9MZWFkaW5nIDAuMAoJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJL1RyYWNraW5nIDAKCQkJCS9BdXRvS2VybmluZyB0cnVlCgkJCQkvS2VybmluZyAwCgkJCQkvQmFzZWxpbmVTaGlmdCAwLjAKCQkJCS9Gb250Q2FwcyAwCgkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCS9VbmRlcmxpbmUgZmFsc2UKCQkJCS9TdHJpa2V0aHJvdWdoIGZhbHNlCgkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCS9ETGlnYXR1cmVzIGZh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bWUgKP7/AFIARwBCACAALQAgAE4AbwByAG0AYQBsKQoJCQkvRGVmYXVsdFN0eWxlU2hlZXQgMAoJCQkvUHJvcGVydGllcwoJCQk8PAoJCQkJL0p1c3RpZmljYXRpb24gMAoJCQkJL0ZpcnN0TGluZUluZGVudCAwLjAKCQkJCS9TdGFydEluZGVudCAwLjAKCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkvU3BhY2VCZWZvcmUgMC4wCgkJCQkvU3BhY2VBZnRlciAwLjAKCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgNgoJCQkJL1ByZUh5cGhlbiAyCgkJCQkvUG9zdEh5cGhlbiAyCgkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDgKCQkJCS9ab25lIDM2LjAKCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkvTGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkvS2luc29rdU9yZGVyIDAKCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQk+PgoJCT4+CgkJXQoJCS9TdHlsZVNoZWV0U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8AUgBHAEIAIAAtACAATgBvAHIAbQBhAGwpCgkJCS9TdHlsZVNoZWV0RGF0YQoJCQk8PAoJCQkJL0ZvbnQgMQoJCQkJL0ZvbnRTaXplIDEyLjAKCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCS9BdXRvTGVhZGluZyB0cnVlCgkJCQkvTGVhZGluZyAwLjAKCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCS9UcmFja2luZyAwCgkJCQkvQXV0b0tlcm5pbmcgdHJ1ZQoJCQkJL0tlcm5pbmcgMAoJCQkJL0Jhc2VsaW5lU2hpZnQgMC4wCgkJCQkvRm9udENhcHMgMAoJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkvVW5kZXJsaW5lIGZhbHNlCgkJCQkvU3RyaWtldGhyb3VnaCBmYWxzZQoJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkvRExpZ2F0dXJlcyBmYWxzZQoJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDIKCQkJCS9Uc3VtZSAwLjAKCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkvTGFuZ3VhZ2UgMAoJCQkJL05vQnJlYWsgZmFsc2UKCQkJCS9GaWxsQ29sb3IKCQkJCTw8CgkJCQkJL1R5cGUgMQoJCQkJCS9WYWx1ZXMgWyAxLjAgMC4wIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9TdHJva2VDb2xvcgoJCQkJPDwKCQkJCQkvVHlwZSAxCgkJCQkJL1ZhbHVlcyBbIDEuMCAwLjAgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkvRmlsbEZpcnN0IHRydWUKCQkJCS9ZVW5kZXJsaW5lIDEKCQkJCS9PdXRsaW5lV2lkdGggMS4wCgkJCT4+CgkJPj4KCQldCgkJL0ZvbnRTZXQgWwoJCTw8CgkJCS9OYW1lICj+/wBIAGUAbAB2AGUAdABpAGMAYQBOAGUAdQBlAC0AQgBvAGwAZCkKCQkJL1NjcmlwdCAwCgkJCS9Gb250VHlwZSAwCgkJCS9TeW50aGV0aWMgMAoJCT4+CgkJPDwKCQkJL05hbWUgKP7/AE0AeQByAGkAYQBkAFAAcgBvAC0AUgBlAGcAdQBsAGEAcikKCQkJL1NjcmlwdCAwCgkJCS9Gb250VHlwZSAwCgkJCS9TeW50aGV0aWMgMAoJCT4+CgkJPDwKCQkJL05hbWUgKP7/AEEAZABvAGIAZQBJAG4AdgBpAHMARgBvAG4AdCkKCQkJL1NjcmlwdCAwCgkJCS9Gb250VHlwZSAwCgkJCS9TeW50aGV0aWMgMAoJCT4+CgkJXQoJCS9TdXBlcnNjcmlwdFNpemUgMC41ODMKCQkvU3VwZXJzY3JpcHRQb3NpdGlvbiAwLjMzMwoJCS9TdWJzY3JpcHRTaXplIDAuNTgzCgkJL1N1YnNjcmlwdFBvc2l0aW9uIDAuMzMzCgkJL1NtYWxsQ2FwU2l6ZSAwLjcKCT4+Cj4+AAEAAAAQAAAAAQAAAAAABHdhcnAAAAAFAAAACXdhcnBTdHlsZWVudW0AAAAJd2FycFN0eWxlAAAACHdhcnBOb25lAAAACXdhcnBWYWx1ZWRvdWIAAAAAAAAAAAAAAA93YXJwUGVyc3BlY3RpdmVkb3ViAAAAAAAAAAAAAAAUd2FycFBlcnNwZWN0aXZlT3RoZXJkb3ViAAAAAAAAAAAAAAAKd2FycFJvdGF0ZWVudW0AAAAAT3JudAAAAABIcnpuAAAAAAAAAAAAAAAAAAAAADhCSU1sdW5pAAAADAAAAAMAUABTAEQAADhCSU1sbnNyAAAABHJlbmQ4QklNbHlpZAAAAAQAAACBOEJJTWNsYmwAAAAEAQAAADhCSU1pbmZ4AAAABAAAAAA4QklNa25rbwAAAAQAAAAAOEJJTWxzcGYAAAAEAAAAADhCSU1sY2xyAAAACAAAAAAAAAAAOEJJTWZ4cnAAAAAQQCWF4ACPJzxAHWo78kzZTAAAAB4AAAAOAAAAJAAAACMABP//AAAAQwAAAAAAGgABAAAAGgACAAAAGjhCSU1ub3JtvwAIAAAACXgAAAAAAAAAKAAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8NRWJlbmUgOSBLb3BpZQAAOEJJTWxmeDIAAAbYAAAAAAAAABAAAAABAAAAAAAAbnVsbAAAAAUAAAAAU2NsIFVudEYjUHJjQFkAAAAAAAAAAAAObWFzdGVyRlhTd2l0Y2hib29sAQAAAABEclNoT2JqYwAAAAEAAAAAAABEclNoAAAADQAAAABlbmFiYm9vbAEAAAAATWQgIGVudW0AAAAAQmxuTQAAAABNbHRwAAAAAENsciBPYmpjAAAAAQAAAAAAAFJHQkMAAAADAAAAAFJkICBkb3ViAAAAAAAAAAAAAAAAR3JuIGRvdWIAAAAAAAAAAAAAAABCbCAgZG91YgAAAAAAAAAAAAAAAE9wY3RVbnRGI1ByY0BSwAAAAAAAAAAAAHVnbGdib29sAQAAAABsYWdsVW50RiNBbmdAXgAAAAAAAAAAAABEc3RuVW50RiNQeGw/8AAAAAAAAAAAAABDa210VW50RiNQeGwAAAAAAAAAAAAAAABibHVyVW50RiNQeGw/8AAAAAAAAAAAAABOb3NlVW50RiNQcmMAAAAAAAAAAAAAAABBbnRBYm9vbAAAAAAAVHJuU09iamMAAAABAAAAAAAAU2hwQwAAAAIAAAAATm0gIFRFWFQAAAAHAEwAaQBuAGUAYQByAAAAAAAAQ3J2IFZsTHMAAAACT2JqYwAAAAEAAAAAAABDclB0AAAAAgAAAABIcnpuZG91YgAAAAAAAAAAAAAAAFZydGNkb3ViAAAAAAAAAABPYmpjAAAAAQAAAAAAAENyUHQAAAACAAAAAEhyem5kb3ViQG/gAAAAAAAAAAAAVnJ0Y2RvdWJAb+AAAAAAAAAAAA1sYXllckNvbmNlYWxzYm9vbAEAAAAAU29GaU9iamMAAAABAAAAAAAAU29GaQAAAAQAAAAAZW5hYmJvb2wBAAAAAE1kICBlbnVtAAAAAEJsbk0AAAAAQ2xyIAAAAABPcGN0VW50RiNQcmNAWQAAAAAAAAAAAABDbHIgT2JqYwAAAAEAAAAAAABSR0JDAAAAAwAAAABSZCAgZG91YkA3AP8A/wD/AAAAAEdybiBkb3ViQEmAf4B/gIAAAAAAQmwgIGRvdWJAYX/gH+Af4AAAAABHckZsT2JqYwAAAAEAAAAAAABHckZsAAAACgAAAABlbmFiYm9vbAEAAAAATWQgIGVudW0AAAAAQmxuTQAAAABNbHRwAAAAAE9wY3RVbnRGI1ByY0BJAAAAAAAAAAAAAEdyYWRPYmpjAAAACQBHAHIAYQBkAGkAZQBuAHQAAAAAAABHcmRuAAAABQAAAABObSAgVEVYVAAAAAsAWgB3AGUAaQBmAGEAcgBiAGkAZwAAAAAAAEdyZEZlbnVtAAAAAEdyZEYAAAAAQ3N0UwAAAABJbnRyZG91YkCwAAAAAAAAAAAAAENscnNWbExzAAAAAk9iamMAAAABAAAAAAAAQ2xydAAAAAQAAAAAQ2xyIE9iamMAAAABAAAAAAAAUkdCQwAAAAMAAAAAUmQgIGRvdWIAAAAAAAAAAAAAAABHcm4gZG91YgAAAAAAAAAAAAAAAEJsICBkb3ViAAAAAAAAAAAAAAAAVHlwZWVudW0AAAAAQ2xyeQAAAABVc3JTAAAAAExjdG5sb25nAAAAAAAAAABNZHBubG9uZwAAADJPYmpjAAAAAQAAAAAAAENscnQAAAAEAAAAAENsciBPYmpjAAAAAQAAAAAAAFJHQkMAAAADAAAAAFJkICBkb3ViQG/gAAAAAAAAAAAAR3JuIGRvdWJAb+AAAAAAAAAAAABCbCAgZG91YkBv4AAAAAAAAAAAAFR5cGVlbnVtAAAAAENscnkAAAAAVXNyUwAAAABMY3RubG9uZwAAEAAAAAAATWRwbmxvbmcAAAAyAAAAAFRybnNWbExzAAAAAk9iamMAAAABAAAAAAAAVHJuUwAAAAMAAAAAT3BjdFVudEYjUHJjQFkAAAAAAAAAAAAATGN0bmxvbmcAAAAAAAAAAE1kcG5sb25nAAAAMk9iamMAAAABAAAAAAAAVHJuUwAAAAMAAAAAT3BjdFVudEYjUHJjQFkAAAAAAAAAAAAATGN0bmxvbmcAABAAAAAAAE1kcG5sb25nAAAAMgAAAABBbmdsVW50RiNBbmdAVoAAAAAAAAAAAABUeXBlZW51bQAAAABHcmRUAAAAAExuciAAAAAAUnZyc2Jvb2wBAAAAAEFsZ25ib29sAQAAAABTY2wgVW50RiNQcmNAWQAAAAAAAAAAAABPZnN0T2JqYwAAAAEAAAAAAABQbnQgAAAAAgAAAABIcnpuVW50RiNQcmMAAAAAAAAAAAAAAABWcnRjVW50RiNQcmMAAAAAAAAAAAAAOEJJTWxyRlgAAAGMAAAABzhCSU1jbW5TAAAABwAAAAABAAA4QklNZHNkdwAAADMAAAACAAEAAAAAAAAAeAAAAAEAAAAAAAAAAAAAAAA4QklNbXVsIAEBvwAAAAAAAAAAAAA4QklNaXNkdwAAADMAAAACAAUAAAAAAAAAeAAAAAUAAAAAAAAAAAAAAAA4QklNbXVsIAABvwAAAAAAAAAAAAA4QklNb2dsdwAAACoAAAACAAUAAAAAAAAAAP////++vQAAOEJJTXNjcm4AvwAA/////769AAA4QklNaWdsdwAAACsAAAACAAUAAAAAAAAAAP////++vQAAOEJJTXNjcm4AvwEAAP////++vQAAOEJJTWJldmwAAABOAAAAAgB4AAAABQAAAAUAADhCSU1zY3JuOEJJTW11bCAAAP///////wAAAAAAAAAAAAAAAAK/vwABAAAA////////AAAAAAAAAAAAAAAAOEJJTXNvZmkAAAAiAAAAAjhCSU1jb2xyAAAXGDM0jIsAAP8BAAAXGDM0jIsAAAAAOEJJTWx1bmkAAAAgAAAADQBFAGIAZQBuAGUAIAA5ACAASwBvAHAAaQBlAAA4QklNbG5zcgAAAARsYXlyOEJJTWx5aWQAAAAEAAAAijhCSU1jbGJsAAAABAEAAAA4QklNaW5meAAAAAQAAAAAOEJJTWtua28AAAAEAAAAADhCSU1sc3BmAAAABAAAAAA4QklNbGNscgAAAAgAAAAAAAAAADhCSU1meHJwAAAAEEAjPw4Ld4aLQDj1HatTxA8AAAAZAAAADgAAAB8AAAAjAAT//wAAAEMAAAAAABoAAQAAABoAAgAAABo4QklNbm9ybb8ACAAAAAl8AAAAAAAAACgAAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//D0ViZW5lIDkgS29waWUgMjhCSU1sZngyAAAG2AAAAAAAAAAQAAAAAQAAAAAAAG51bGwAAAAFAAAAAFNjbCBVbnRGI1ByY0BZAAAAAAAAAAAADm1hc3RlckZYU3dpdGNoYm9vbAEAAAAARHJTaE9iamMAAAABAAAAAAAARHJTaAAAAA0AAAAAZW5hYmJvb2wBAAAAAE1kICBlbnVtAAAAAEJsbk0AAAAATWx0cAAAAABDbHIgT2JqYwAAAAEAAAAAAABSR0JDAAAAAwAAAABSZCAgZG91YgAAAAAAAAAAAAAAAEdybiBkb3ViAAAAAAAAAAAAAAAAQmwgIGRvdWIAAAAAAAAAAAAAAABPcGN0VW50RiNQcmNAUsAAAAAAAAAAAAB1Z2xnYm9vbAEAAAAAbGFnbFVudEYjQW5nQF4AAAAAAAAAAAAARHN0blVudEYjUHhsP/AAAAAAAAAAAAAAQ2ttdFVudEYjUHhsAAAAAAAAAAAAAAAAYmx1clVudEYjUHhsP/AAAAAAAAAAAAAATm9zZVVudEYjUHJjAAAAAAAAAAAAAAAAQW50QWJvb2wAAAAAAFRyblNPYmpjAAAAAQAAAAAAAFNocEMAAAACAAAAAE5tICBURVhUAAAABwBMAGkAbgBlAGEAcgAAAAAAAENydiBWbExzAAAAAk9iamMAAAABAAAAAAAAQ3JQdAAAAAIAAAAASHJ6bmRvdWIAAAAAAAAAAAAAAABWcnRjZG91YgAAAAAAAAAAT2JqYwAAAAEAAAAAAABDclB0AAAAAgAAAABIcnpuZG91YkBv4AAAAAAAAAAAAFZydGNkb3ViQG/gAAAAAAAAAAANbGF5ZXJDb25jZWFsc2Jvb2wBAAAAAFNvRmlPYmpjAAAAAQAAAAAAAFNvRmkAAAAEAAAAAGVuYWJib29sAQAAAABNZCAgZW51bQAAAABCbG5NAAAAAENsciAAAAAAT3BjdFVudEYjUHJjQFkAAAAAAAAAAAAAQ2xyIE9iamMAAAABAAAAAAAAUkdCQwAAAAMAAAAAUmQgIGRvdWJAPAAAAAAAAAAAAABHcm4gZG91YkBawD/AP8BAAAAAAEJsICBkb3ViQBwD/AP8A/wAAAAAR3JGbE9iamMAAAABAAAAAAAAR3JGbAAAAAoAAAAAZW5hYmJvb2wBAAAAAE1kICBlbnVtAAAAAEJsbk0AAAAAU2NybgAAAABPcGN0VW50RiNQcmNASQAAAAAAAAAAAABHcmFkT2JqYwAAAAkARwByAGEAZABpAGUAbgB0AAAAAAAAR3JkbgAAAAUAAAAATm0gIFRFWFQAAAALAFoAdwBlAGkAZgBhAHIAYgBpAGcAAAAAAABHcmRGZW51bQAAAABHcmRGAAAAAENzdFMAAAAASW50cmRvdWJAsAAAAAAAAAAAAABDbHJzVmxMcwAAAAJPYmpjAAAAAQAAAAAAAENscnQAAAAEAAAAAENsciBPYmpjAAAAAQAAAAAAAFJHQkMAAAADAAAAAFJkICBkb3ViAAAAAAAAAAAAAAAAR3JuIGRvdWIAAAAAAAAAAAAAAABCbCAgZG91YgAAAAAAAAAAAAAAAFR5cGVlbnVtAAAAAENscnkAAAAAVXNyUwAAAABMY3RubG9uZwAAAAAAAAAATWRwbmxvbmcAAAAyT2JqYwAAAAEAAAAAAABDbHJ0AAAABAAAAABDbHIgT2JqYwAAAAEAAAAAAABSR0JDAAAAAwAAAABSZCAgZG91YkBv4AAAAAAAAAAAAEdybiBkb3ViQG/gAAAAAAAAAAAAQmwgIGRvdWJAb+AAAAAAAAAAAABUeXBlZW51bQAAAABDbHJ5AAAAAFVzclMAAAAATGN0bmxvbmcAABAAAAAAAE1kcG5sb25nAAAAMgAAAABUcm5zVmxMcwAAAAJPYmpjAAAAAQAAAAAAAFRyblMAAAADAAAAAE9wY3RVbnRGI1ByY0BZAAAAAAAAAAAAAExjdG5sb25nAAAAAAAAAABNZHBubG9uZwAAADJPYmpjAAAAAQAAAAAAAFRyblMAAAADAAAAAE9wY3RVbnRGI1ByY0BZAAAAAAAAAAAAAExjdG5sb25nAAAQAAAAAABNZHBubG9uZwAAADIAAAAAQW5nbFVudEYjQW5nQFaAAAAAAAAAAAAAVHlwZWVudW0AAAAAR3JkVAAAAABMbnIgAAAAAFJ2cnNib29sAQAAAABBbGduYm9vbAEAAAAAU2NsIFVudEYjUHJjQFkAAAAAAAAAAAAAT2ZzdE9iamMAAAABAAAAAAAAUG50IAAAAAIAAAAASHJ6blVudEYjUHJjAAAAAAAAAAAAAAAAVnJ0Y1VudEYjUHJjAAAAAAAAAAAAADhCSU1sckZYAAABjAAAAAc4QklNY21uUwAAAAcAAAAAAQAAOEJJTWRzZHcAAAAzAAAAAgABAAAAAAAAAHgAAAABAAAAAAAAAAAAAAAAOEJJTW11bCABAb8AAAAAAAAAAAAAOEJJTWlzZHcAAAAzAAAAAgAFAAAAAAAAAHgAAAAFAAAAAAAAAAAAAAAAOEJJTW11bCAAAb8AAAAAAAAAAAAAOEJJTW9nbHcAAAAqAAAAAgAFAAAAAAAAAAD/////vr0AADhCSU1zY3JuAL8AAP////++vQAAOEJJTWlnbHcAAAArAAAAAgAFAAAAAAAAAAD/////vr0AADhCSU1zY3JuAL8BAAD/////vr0AADhCSU1iZXZsAAAATgAAAAIAeAAAAAUAAAAFAAA4QklNc2NybjhCSU1tdWwgAAD///////8AAAAAAAAAAAAAAAACv78AAQAAAP///////wAAAAAAAAAAAAAAADhCSU1zb2ZpAAAAIgAAAAI4QklNY29scgAAHBxrbAcIAAD/AQAAHBxrbAcIAAAAADhCSU1sdW5pAAAAJAAAAA8ARQBiAGUAbgBlACAAOQAgAEsAbwBwAGkAZQAgADIAADhCSU1sbnNyAAAABGxheXI4QklNbHlpZAAAAAQAAACLOEJJTWNsYmwAAAAEAQAAADhCSU1pbmZ4AAAABAAAAAA4QklNa25rbwAAAAQAAAAAOEJJTWxzcGYAAAAEAAAAADhCSU1sY2xyAAAACAAAAAAAAAAAOEJJTWZ4cnAAAAAQQCM/Dgt3hotAM/Udq1PEDwAAABMAAAAOAAAAGQAAACMABP//AAAAQwAAAAAAGgABAAAAGgACAAAAGjhCSU1ub3JtvwAIAAAACWQAAAAAAAAAKAAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8HRWJlbmUgOThCSU1sZngyAAAG2AAAAAAAAAAQAAAAAQAAAAAAAG51bGwAAAAFAAAAAFNjbCBVbnRGI1ByY0BZAAAAAAAAAAAADm1hc3RlckZYU3dpdGNoYm9vbAEAAAAARHJTaE9iamMAAAABAAAAAAAARHJTaAAAAA0AAAAAZW5hYmJvb2wBAAAAAE1kICBlbnVtAAAAAEJsbk0AAAAATWx0cAAAAABDbHIgT2JqYwAAAAEAAAAAAABSR0JDAAAAAwAAAABSZCAgZG91YgAAAAAAAAAAAAAAAEdybiBkb3ViAAAAAAAAAAAAAAAAQmwgIGRvdWIAAAAAAAAAAAAAAABPcGN0VW50RiNQcmNAUsAAAAAAAAAAAAB1Z2xnYm9vbAEAAAAAbGFnbFVudEYjQW5nQF4AAAAAAAAAAAAARHN0blVudEYjUHhsP/AAAAAAAAAAAAAAQ2ttdFVudEYjUHhsAAAAAAAAAAAAAAAAYmx1clVudEYjUHhsP/AAAAAAAAAAAAAATm9zZVVudEYjUHJjAAAAAAAAAAAAAAAAQW50QWJvb2wAAAAAAFRyblNPYmpjAAAAAQAAAAAAAFNocEMAAAACAAAAAE5tICBURVhUAAAABwBMAGkAbgBlAGEAcgAAAAAAAENydiBWbExzAAAAAk9iamMAAAABAAAAAAAAQ3JQdAAAAAIAAAAASHJ6bmRvdWIAAAAAAAAAAAAAAABWcnRjZG91YgAAAAAAAAAAT2JqYwAAAAEAAAAAAABDclB0AAAAAgAAAABIcnpuZG91YkBv4AAAAAAAAAAAAFZydGNkb3ViQG/gAAAAAAAAAAANbGF5ZXJDb25jZWFsc2Jvb2wBAAAAAFNvRmlPYmpjAAAAAQAAAAAAAFNvRmkAAAAEAAAAAGVuYWJib29sAAAAAABNZCAgZW51bQAAAABCbG5NAAAAAE5ybWwAAAAAT3BjdFVudEYjUHJjQFkAAAAAAAAAAAAAQ2xyIE9iamMAAAABAAAAAAAAUkdCQwAAAAMAAAAAUmQgIGRvdWJAPAAAAAAAAAAAAABHcm4gZG91YkBawD/AP8BAAAAAAEJsICBkb3ViQBwD/AP8A/wAAAAAR3JGbE9iamMAAAABAAAAAAAAR3JGbAAAAAoAAAAAZW5hYmJvb2wBAAAAAE1kICBlbnVtAAAAAEJsbk0AAAAAU2NybgAAAABPcGN0VW50RiNQcmNAPgAAAAAAAAAAAABHcmFkT2JqYwAAAAkARwByAGEAZABpAGUAbgB0AAAAAAAAR3JkbgAAAAUAAAAATm0gIFRFWFQAAAALAFoAdwBlAGkAZgBhAHIAYgBpAGcAAAAAAABHcmRGZW51bQAAAABHcmRGAAAAAENzdFMAAAAASW50cmRvdWJAsAAAAAAAAAAAAABDbHJzVmxMcwAAAAJPYmpjAAAAAQAAAAAAAENscnQAAAAEAAAAAENsciBPYmpjAAAAAQAAAAAAAFJHQkMAAAADAAAAAFJkICBkb3ViAAAAAAAAAAAAAAAAR3JuIGRvdWIAAAAAAAAAAAAAAABCbCAgZG91YgAAAAAAAAAAAAAAAFR5cGVlbnVtAAAAAENscnkAAAAAVXNyUwAAAABMY3RubG9uZwAAAAAAAAAATWRwbmxvbmcAAAAyT2JqYwAAAAEAAAAAAABDbHJ0AAAABAAAAABDbHIgT2JqYwAAAAEAAAAAAABSR0JDAAAAAwAAAABSZCAgZG91YkBv4AAAAAAAAAAAAEdybiBkb3ViQG/gAAAAAAAAAAAAQmwgIGRvdWJAb+AAAAAAAAAAAABUeXBlZW51bQAAAABDbHJ5AAAAAFVzclMAAAAATGN0bmxvbmcAABAAAAAAAE1kcG5sb25nAAAAMgAAAABUcm5zVmxMcwAAAAJPYmpjAAAAAQAAAAAAAFRyblMAAAADAAAAAE9wY3RVbnRGI1ByY0BZAAAAAAAAAAAAAExjdG5sb25nAAAAAAAAAABNZHBubG9uZwAAADJPYmpjAAAAAQAAAAAAAFRyblMAAAADAAAAAE9wY3RVbnRGI1ByY0BZAAAAAAAAAAAAAExjdG5sb25nAAAQAAAAAABNZHBubG9uZwAAADIAAAAAQW5nbFVudEYjQW5nQFaAAAAAAAAAAAAAVHlwZWVudW0AAAAAR3JkVAAAAABMbnIgAAAAAFJ2cnNib29sAQAAAABBbGduYm9vbAEAAAAAU2NsIFVudEYjUHJjQFkAAAAAAAAAAAAAT2ZzdE9iamMAAAABAAAAAAAAUG50IAAAAAIAAAAASHJ6blVudEYjUHJjAAAAAAAAAAAAAAAAVnJ0Y1VudEYjUHJjAAAAAAAAAAAAADhCSU1sckZYAAABjAAAAAc4QklNY21uUwAAAAcAAAAAAQAAOEJJTWRzZHcAAAAzAAAAAgABAAAAAAAAAHgAAAABAAAAAAAAAAAAAAAAOEJJTW11bCABAb8AAAAAAAAAAAAAOEJJTWlzZHcAAAAzAAAAAgAFAAAAAAAAAHgAAAAFAAAAAAAAAAAAAAAAOEJJTW11bCAAAb8AAAAAAAAAAAAAOEJJTW9nbHcAAAAqAAAAAgAFAAAAAAAAAAD/////vr0AADhCSU1zY3JuAL8AAP////++vQAAOEJJTWlnbHcAAAArAAAAAgAFAAAAAAAAAAD/////vr0AADhCSU1zY3JuAL8BAAD/////vr0AADhCSU1iZXZsAAAATgAAAAIAeAAAAAUAAAAFAAA4QklNc2NybjhCSU1tdWwgAAD///////8AAAAAAAAAAAAAAAACv78AAQAAAP///////wAAAAAAAAAAAAAAADhCSU1zb2ZpAAAAIgAAAAI4QklNbm9ybQAAHBxrbAcIAAD/AAAAHBxrbAcIAAAAADhCSU1sdW5pAAAAFAAAAAcARQBiAGUAbgBlACAAOQAAOEJJTWxuc3IAAAAEbGF5cjhCSU1seWlkAAAABAAAAIk4QklNY2xibAAAAAQBAAAAOEJJTWluZngAAAAEAAAAADhCSU1rbmtvAAAABAAAAAA4QklNbHNwZgAAAAQAAAAAOEJJTWxjbHIAAAAIAAAAAAAAAAA4QklNZnhycAAAABBAIz8OC3eGi0Ar6jtWp4geAAAAAAAAAAAAAAAAAAAAAAAE//8AAAACAAAAAAACAAEAAAACAAIAAAACOEJJTW5vcm3/ABoAAAAAtAAAAAAAAAAoAAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wNQU0Q4QklNbHVuaQAAAAwAAAADAFAAUwBEAAA4QklNbHlpZAAAAAQAAACFOEJJTWxzY3QAAAAMAAAAAjhCSU1wYXNzOEJJTWxzcGYAAAAEAAAAADhCSU1sY2xyAAAACAAAAAAAAAAAOEJJTWZ4cnAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABP//AAAAAgAAAAAAAgABAAAAAgACAAAAAjhCSU1ub3Jt/wAYAAAAANwAAAAAAAAAKAAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8OPC9MYXllciBncm91cD4AOEJJTWx1bmkAAAAgAAAADgA8AC8ATABhAHkAZQByACAAZwByAG8AdQBwAD44QklNbG5zcgAAAARsc2V0OEJJTWx5aWQAAAAEAAAAnDhCSU1sc2N0AAAABAAAAAM4QklNbHNwZgAAAAQAAAAAOEJJTWxjbHIAAAAIAAAAAAAAAAA4QklNZnhycAAAABAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAYAAAAPAAAAFAAE//8AAABkAAAAAAAeAAEAAAAeAAIAAAAeOEJJTW5vcm3/AAgAAAAkhAAAAAAAAAAoAAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wRpQ2FsAAAAOEJJTVR5U2gAACOYAAE/1ZDuaOBMGgAAAAAAAAAAAAAAAAAAAAA/1ZDuaOBMGkAqBRnAVE82QCZlV2pONSAAMgAAABAAAAABAAAAAAAAVHhMcgAAAAYAAAAAVHh0IFRFWFQAAAAFAGkAQwBhAGwAAAAAAAx0ZXh0R3JpZGRpbmdlbnVtAAAADHRleHRHcmlkZGluZwAAAABOb25lAAAAAE9ybnRlbnVtAAAAAE9ybnQAAAAASHJ6bgAAAABBbnRBZW51bQAAAABBbm50AAAADmFudGlBbGlhc1NoYXJwAAAACVRleHRJbmRleGxvbmcAAAAYAAAACkVuZ2luZURhdGF0ZHRhAAAhywoKPDwKCS9FbmdpbmVEaWN0Cgk8PAoJCS9FZGl0b3IKCQk8PAoJCQkvVGV4dCAo/v8AaQBDAGEAbAANKQoJCT4+CgkJL1BhcmFncmFwaFJ1bgoJCTw8CgkJCS9EZWZhdWx0UnVuRGF0YQoJCQk8PAoJCQkJL1BhcmFncmFwaFNoZWV0CgkJCQk8PAoJCQkJCS9EZWZhdWx0U3R5bGVTaGVldCAwCgkJCQkJL1Byb3BlcnRpZXMKCQkJCQk8PAoJCQkJCT4+CgkJCQk+PgoJCQkJL0FkanVzdG1lbnRzCgkJCQk8PAoJCQkJCS9BeGlzIFsgMS4wIDAuMCAxLjAgXQoJCQkJCS9YWSBbIDAuMCAwLjAgXQoJCQkJPj4KCQkJPj4KCQkJL1J1bkFycmF5IFsKCQkJPDwKCQkJCS9QYXJhZ3JhcGhTaGVldAoJCQkJPDwKCQkJCQkvRGVmYXVsdFN0eWxlU2hlZXQgMAoJCQkJCS9Qcm9wZXJ0aWVzCgkJCQkJPDwKCQkJCQkJL0p1c3RpZmljYXRpb24gMgoJCQkJCQkvRmlyc3RMaW5lSW5kZW50IDAuMAoJCQkJCQkvU3RhcnRJbmRlbnQgMC4wCgkJCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkJCS9TcGFjZUJlZm9yZSAwLjAKCQkJCQkJL1NwYWNlQWZ0ZXIgMC4wCgkJCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCQkJL0h5cGhlbmF0ZWRXb3JkU2l6ZSA4CgkJCQkJCS9QcmVIeXBoZW4gMwoJCQkJCQkvUG9zdEh5cGhlbiAzCgkJCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgMgoJCQkJCQkvWm9uZSAzNi4wCgkJCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJCQk+PgoJCQkJPj4KCQkJCS9BZGp1c3RtZW50cwoJCQkJPDwKCQkJCQkvQXhpcyBbIDEuMCAwLjAgMS4wIF0KCQkJCQkvWFkgWyAwLjAgMC4wIF0KCQkJCT4+CgkJCT4+CgkJCV0KCQkJL1J1bkxlbmd0aEFycmF5IFsgNSBdCgkJCS9Jc0pvaW5hYmxlIDEKCQk+PgoJCS9TdHlsZVJ1bgoJCTw8CgkJCS9EZWZhdWx0UnVuRGF0YQoJCQk8PAoJCQkJL1N0eWxlU2hlZXQKCQkJCTw8CgkJCQkJL1N0eWxlU2hlZXREYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQkJL1J1bkFycmF5IFsKCQkJPDwKCQkJCS9TdHlsZVNoZWV0CgkJCQk8PAoJCQkJCS9TdHlsZVNoZWV0RGF0YQoJCQkJCTw8CgkJCQkJCS9Gb250IDAKCQkJCQkJL0ZvbnRTaXplIDIwLjc3MzMxCgkJCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkvQXV0b0xlYWRpbmcgZmFsc2UKCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkJCS9UcmFja2luZyAyMAoJCQkJCQkvQXV0b0tlcm5pbmcgdHJ1ZQoJCQkJCQkvS2VybmluZyAwCgkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJCQkvVW5kZXJsaW5lIGZhbHNlCgkJCQkJCS9TdHJpa2V0aHJvdWdoIGZhbHNlCgkJCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJCQkvRExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMQoJCQkJCQkvVHN1bWUgMC4wCgkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCS9MYW5ndWFnZSAwCgkJCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJPDwKCQkJCQkJCS9UeXBlIDEKCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQk+PgoJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJPDwKCQkJCQkJCS9UeXBlIDEKCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQk+PgoJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCS9ZVW5kZXJsaW5lIDEKCQkJCQkJL091dGxpbmVXaWR0aCAwLjA0MTY3CgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJCV0KCQkJL1J1bkxlbmd0aEFycmF5IFsgNSBdCgkJCS9Jc0pvaW5hYmxlIDIKCQk+PgoJCS9HcmlkSW5mbwoJCTw8CgkJCS9HcmlkSXNPbiBmYWxzZQoJCQkvU2hvd0dyaWQgZmFsc2UKCQkJL0dyaWRTaXplIDE4LjAKCQkJL0dyaWRMZWFkaW5nIDIyLjAKCQkJL0dyaWRDb2xvcgoJCQk8PAoJCQkJL1R5cGUgMQoJCQkJL1ZhbHVlcyBbIDAuMCAwLjAgMC4wIDEuMCBdCgkJCT4+CgkJCS9HcmlkTGVhZGluZ0ZpbGxDb2xvcgoJCQk8PAoJCQkJL1R5cGUgMQoJCQkJL1ZhbHVlcyBbIDAuMCAwLjAgMC4wIDEuMCBdCgkJCT4+CgkJCS9BbGlnbkxpbmVIZWlnaHRUb0dyaWRGbGFncyBmYWxzZQoJCT4+CgkJL0FudGlBbGlhcyA0CgkJL1VzZUZyYWN0aW9uYWxHbHlwaFdpZHRocyB0cnVlCgkJL1JlbmRlcmVkCgkJPDwKCQkJL1ZlcnNpb24gMQoJCQkvU2hhcGVzCgkJCTw8CgkJCQkvV3JpdGluZ0RpcmVjdGlvbiAwCgkJCQkvQ2hpbGRyZW4gWwoJCQkJPDwKCQkJCQkvU2hhcGVUeXBlIDAKCQkJCQkvUHJvY2Vzc2lvbiAwCgkJCQkJL0xpbmVzCgkJCQkJPDwKCQkJCQkJL1dyaXRpbmdEaXJlY3Rpb24gMAoJCQkJCQkvQ2hpbGRyZW4gWyBdCgkJCQkJPj4KCQkJCQkvQ29va2llCgkJCQkJPDwKCQkJCQkJL1Bob3Rvc2hvcAoJCQkJCQk8PAoJCQkJCQkJL1NoYXBlVHlwZSAwCgkJCQkJCQkvUG9pbnRCYXNlIFsgMC4wIDAuMCBdCgkJCQkJCQkvQmFzZQoJCQkJCQkJPDwKCQkJCQkJCQkvU2hhcGVUeXBlIDAKCQkJCQkJCQkvVHJhbnNmb3JtUG9pbnQwIFsgMS4wIDAuMCBdCgkJCQkJCQkJL1RyYW5zZm9ybVBvaW50MSBbIDAuMCAxLjAgXQoJCQkJCQkJCS9UcmFuc2Zvcm1Qb2ludDIgWyAwLjAgMC4wIF0K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ZW5hdGVkV29yZFNpemUgOAoJCQkJCQkvUHJlSHlwaGVuIDMKCQkJCQkJL1Bvc3RIeXBoZW4gMwoJCQkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDIKCQkJCQkJL1pvbmUgMzYuMAoJCQkJCQkvV29yZFNwYWNpbmcgWyAwLjggMS4wIDEuMzMgXQoJCQkJCQkvTGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJCQkvQnVyYXNhZ2FyaSBmYWxzZQoJCQkJCQkvS2luc29rdU9yZGVyIDAKCQkJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCQkJPj4KCQkJCT4+CgkJCQkvQWRqdXN0bWVudHMKCQkJCTw8CgkJCQkJL0F4aXMgWyAxLjAgMC4wIDEuMCBdCgkJCQkJL1hZIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQk+PgoJCQldCgkJCS9SdW5MZW5ndGhBcnJheSBbIDQgXQoJCQkvSXNKb2luYWJsZSAxCgkJPj4KCQkvU3R5bGVSdW4KCQk8PAoJCQkvRGVmYXVsdFJ1bkRhdGEKCQkJPDwKCQkJCS9TdHlsZVNoZWV0CgkJCQk8PAoJCQkJCS9TdHlsZVNoZWV0RGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJCS9SdW5BcnJheSBbCgkJCTw8CgkJCQkvU3R5bGVTaGVldAoJCQkJPDwKCQkJCQkvU3R5bGVTaGVldERhdGEKCQkJCQk8PAoJCQkJCQkvRm9udCAwCgkJCQkJCS9Gb250U2l6ZSAyMC43NzMzMQoJCQkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCQkJL0F1dG9MZWFkaW5nIGZhbHNlCgkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJCQkvVHJhY2tpbmcgMjAKCQkJCQkJL0F1dG9LZXJuaW5nIHRydWUKCQkJCQkJL0tlcm5pbmcgMAoJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkvRm9udENhcHMgMAoJCQkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCQkJL1VuZGVybGluZSBmYWxzZQoJCQkJCQkvU3RyaWtldGhyb3VnaCBmYWxzZQoJCQkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCQkJL0RMaWdhdHVyZXMgZmFsc2UKCQkJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDEKCQkJCQkJL1RzdW1lIDAuMAoJCQkJCQkvU3R5bGVSdW5BbGlnbm1lbnQgMgoJCQkJCQkvTGFuZ3VhZ2UgMAoJCQkJCQkvTm9CcmVhayBmYWxzZQoJCQkJCQkvRmlsbENvbG9yCgkJCQkJCTw8CgkJCQkJCQkvVHlwZSAxCgkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJPj4KCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCTw8CgkJCQkJCQkvVHlwZSAxCgkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJPj4KCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJL0ZpbGxGaXJzdCBmYWxzZQoJCQkJCQkvWVVuZGVybGluZSAxCgkJCQkJCS9PdXRsaW5lV2lkdGggMC4wNDE2NwoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCQldCgkJCS9SdW5MZW5ndGhBcnJheSBbIDQgXQoJCQkvSXNKb2luYWJsZSAyCgkJPj4KCQkvR3JpZEluZm8KCQk8PAoJCQkvR3JpZElzT24gZmFsc2UKCQkJL1Nob3dHcmlkIGZhbHNlCgkJCS9HcmlkU2l6ZSAxOC4wCgkJCS9HcmlkTGVhZGluZyAyMi4wCgkJCS9HcmlkQ29sb3IKCQkJPDwKCQkJCS9UeXBlIDEKCQkJCS9WYWx1ZXMgWyAwLjAgMC4wIDAuMCAxLjAgXQoJCQk+PgoJCQkvR3JpZExlYWRpbmdGaWxsQ29sb3IKCQkJPDwKCQkJCS9U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cmUgMC4wCgkJCQkvU3BhY2VBZnRlciAwLjAKCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgNgoJCQkJL1ByZUh5cGhlbiAyCgkJCQkvUG9zdEh5cGhlbiAyCgkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDgKCQkJCS9ab25lIDM2LjAKCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkvTGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkvS2luc29rdU9yZGVyIDAKCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQk+PgoJCT4+CgkJXQoJCS9TdHlsZVNoZWV0U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8AUgBHAEIAIAAtACAATgBvAHIAbQBhAGwpCgkJCS9TdHlsZVNoZWV0RGF0YQoJCQk8PAoJCQkJL0ZvbnQgMQoJCQkJL0ZvbnRTaXplIDEyLjAKCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCS9BdXRvTGVhZGluZyB0cnVlCgkJCQkvTGVhZGluZyAwLjAKCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCS9UcmFja2luZyAwCgkJCQkvQXV0b0tlcm5pbmcgdHJ1ZQoJCQkJL0tlcm5pbmcgMAoJCQkJL0Jhc2VsaW5lU2hpZnQgMC4wCgkJCQkvRm9udENhcHMgMAoJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkvVW5kZXJsaW5lIGZhbHNlCgkJCQkvU3RyaWtldGhyb3VnaCBmYWxzZQoJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkvRExpZ2F0dXJlcyBmYWxzZQoJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDIKCQkJCS9Uc3VtZSAwLjAKCQkJCS9TdHlsZVJ1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CQkJL1Byb3BlcnRpZXMKCQkJPDwKCQkJCS9KdXN0aWZpY2F0aW9uIDAKCQkJCS9GaXJzdExpbmVJbmRlbnQgMC4wCgkJCQkvU3RhcnRJbmRlbnQgMC4wCgkJCQkvRW5kSW5kZW50IDAuMAoJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJL1NwYWNlQWZ0ZXIgMC4wCgkJCQkvQXV0b0h5cGhlbmF0ZSB0cnVlCgkJCQkvSHlwaGVuYXRlZFdvcmRTaXplIDYKCQkJCS9QcmVIeXBoZW4gMgoJCQkJL1Bvc3RIeXBoZW4gMgoJCQkJL0NvbnNlY3V0aXZlSHlwaGVucyA4CgkJCQkvWm9uZSAzNi4wCgkJCQkvV29yZFNwYWNpbmcgWyAwLjggMS4wIDEuMzMgXQoJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJL0xlYWRpbmdUeXBlIDAKCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkvQnVyYXNhZ2FyaSBmYWxzZQoJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJPj4KCQk+PgoJCV0KCQkvU3R5bGVTaGVldFNldCBbCgkJPDwKCQkJL05hbWUgKP7/AFIARwBCACAALQAgAE4AbwByAG0AYQBsKQoJCQkvU3R5bGVTaGVldERhdGEKCQkJPDwKCQkJCS9Gb250IDEKCQkJCS9Gb250U2l6ZSAxMi4wCgkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkvQXV0b0xlYWRpbmcgdHJ1ZQoJCQkJL0xlYWRpbmcgMC4wCgkJCQkvSG9yaXpvbnRhbFNjYWxlIDEuMAoJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkvVHJhY2tpbmcgMAoJCQkJL0F1dG9LZXJuaW5nIHRydWUKCQkJCS9LZXJuaW5nIDAKCQkJCS9CYXNlbGluZVNoaWZ0IDAuMAoJCQkJL0ZvbnRDYXBzIDAKCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJL1VuZGVybGluZSBmYWxz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MS4wIDEuMCAxLjAgXQoJCQkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJCQk+PgoJCQkJPj4KCQkJCS9BZGp1c3RtZW50cwoJCQkJPDwKCQkJCQkvQXhpcyBbIDEuMCAwLjAgMS4wIF0KCQkJCQkvWFkgWyAwLjAgMC4wIF0KCQkJCT4+CgkJCT4+CgkJCV0KCQkJL1J1bkxlbmd0aEFycmF5IFsgNCBdCgkJCS9Jc0pvaW5hYmxlIDEKCQk+PgoJCS9TdHlsZVJ1bgoJCTw8CgkJCS9EZWZhdWx0UnVuRGF0YQoJCQk8PAoJCQkJL1N0eWxlU2hlZXQKCQkJCTw8CgkJCQkJL1N0eWxlU2hlZXREYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQkJL1J1bkFycmF5IFsKCQkJPDwKCQkJCS9TdHlsZVNoZWV0CgkJCQk8PAoJCQkJCS9TdHlsZVNoZWV0RGF0YQoJCQkJCTw8CgkJCQkJCS9Gb250IDAKCQkJCQkJL0ZvbnRTaXplIDIwLjc3MzMxCgkJCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkvQXV0b0xlYWRpbmcgZmFsc2UKCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkJCS9UcmFja2luZyAyMAoJCQkJCQkvQXV0b0tlcm5pbmcgdHJ1ZQoJCQkJCQkvS2VybmluZyAwCgkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJCQkvVW5kZXJsaW5lIGZhbHNlCgkJCQkJCS9TdHJpa2V0aHJvdWdoIGZhbHNlCgkJCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJCQkvRExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMQoJCQkJCQkvVHN1bWUgMC4wCgkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCS9MYW5ndWFnZSAwCgkJCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJPDwKCQkJCQkJCS9UeXBlIDEKCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQk+PgoJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJPDwKCQkJCQkJCS9UeXBlIDEKCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQk+PgoJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCS9ZVW5kZXJsaW5lIDEKCQkJCQkJL091dGxpbmVXaWR0aCAwLjA0MTY3CgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJCV0KCQkJL1J1bkxlbmd0aEFycmF5IFsgNCBdCgkJCS9Jc0pvaW5hYmxlIDIKCQk+PgoJCS9HcmlkSW5mbwoJCTw8CgkJCS9HcmlkSXNPbiBmYWxzZQoJCQkvU2hvd0dyaWQgZmFsc2UKCQkJL0dyaWRTaXplIDE4LjAKCQkJL0dyaWRMZWFkaW5nIDIyLjAKCQkJL0dyaWRDb2xvcgoJCQk8PAoJCQkJL1R5cGUgMQoJCQkJL1ZhbHVlcyBbIDAuMCAwLjAgMC4wIDEuMCBdCgkJCT4+CgkJCS9HcmlkTGVhZGluZ0ZpbGxDb2xvcgoJCQk8PAoJCQkJL1R5cGUgMQoJCQkJL1ZhbHVlcyBbIDAuMCAwLjAgMC4wIDEuMCBdCgkJCT4+CgkJCS9BbGlnbkxpbmVIZWlnaHRUb0dyaWRGbGFncyBmYWxzZQoJCT4+CgkJL0FudGlBbGlhcyA0CgkJL1VzZUZyYWN0aW9uYWxHbHlwaFdpZHRocyB0cnVlCgkJL1JlbmRlcmVkCgkJPDwKCQkJL1ZlcnNpb24gMQoJCQkvU2hhcGVzCgkJCTw8CgkJCQkvV3JpdGluZ0Rp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ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJL0J1cmFzYWdhcmkgZmFsc2UKCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCT4+CgkJPj4KCQldCgkJL1N0eWxlU2hlZXRTZXQgWwoJCTw8CgkJCS9OYW1lICj+/wBSAEcAQgAgAC0AIABOAG8AcgBtAGEAbCkKCQkJL1N0eWxlU2hlZXREYXRhCgkJCTw8CgkJCQkvRm9udCAxCgkJCQkvRm9udFNpemUgMTIuMAoJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJL0F1dG9MZWFkaW5nIHRydWUKCQkJCS9MZWFkaW5nIDAuMAoJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJL1RyYWNraW5nIDAKCQkJCS9BdXRvS2VybmluZyB0cnVlCgkJCQkvS2VybmluZyAwCgkJCQkvQmFzZWxpbmVTaGlmdCAwLjAKCQkJCS9Gb250Q2FwcyAwCgkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCS9VbmRlcmxpbmUgZmFsc2UKCQkJCS9TdHJpa2V0aHJvdWdoIGZhbHNlCgkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCS9ETGlnYXR1cmVzIGZhbHNlCgkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMgoJCQkJL1RzdW1lIDAuMAoJCQkJL1N0eWxlUnVuQWxpZ25tZW50IDIKCQkJCS9MYW5ndWFnZSAwCgkJCQkvTm9CcmVhayBmYWxzZQoJCQkJL0ZpbGxDb2xvcgoJCQkJPDwKCQkJCQkvVHlwZSAxCgkJCQkJL1ZhbHVlcyBbIDEuMCAwLjAgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL1N0cm9rZUNvbG9yCgkJCQk8PAoJCQkJCS9UeXBlIDEKCQkJCQkvVmFsdWVzIFsgMS4wIDAuMCAwLjAgMC4wIF0KCQkJ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NgoJCQkJL1ByZUh5cGhlbiAyCgkJCQkvUG9zdEh5cGhlbiAyCgkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDgKCQkJCS9ab25lIDM2LjAKCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkvTGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkvS2luc29rdU9yZGVyIDAKCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQk+PgoJCT4+CgkJXQoJCS9TdHlsZVNoZWV0U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8AUgBHAEIAIAAtACAATgBvAHIAbQBhAGwpCgkJCS9TdHlsZVNoZWV0RGF0YQoJCQk8PAoJCQkJL0ZvbnQgMQoJCQkJL0ZvbnRTaXplIDEyLjAKCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCS9BdXRvTGVhZGluZyB0cnVlCgkJCQkvTGVhZGluZyAwLjAKCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCS9UcmFja2luZyAwCgkJCQkvQXV0b0tlcm5pbmcgdHJ1ZQoJCQkJL0tlcm5pbmcgMAoJCQkJL0Jhc2VsaW5lU2hpZnQgMC4wCgkJCQkvRm9udENhcHMgMAoJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkvVW5kZXJsaW5lIGZhbHNlCgkJCQkvU3RyaWtldGhyb3VnaCBmYWxzZQoJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkvRExpZ2F0dXJlcyBmYWxzZQoJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDIKCQkJCS9Uc3VtZSAwLjAKCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkvTGFuZ3VhZ2UgMAoJCQkJL05vQnJlYWsgZmFsc2UKCQkJCS9GaWxsQ29sb3IKCQkJCTw8CgkJCQkJ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CgkJCQkJL1Byb3BlcnRpZXMKCQkJCQk8PAoJCQkJCQkvSnVzdGlmaWNhdGlvbiAyCgkJCQkJCS9GaXJzdExpbmVJbmRlbnQgMC4wCgkJCQkJCS9TdGFydEluZGVudCAwLjAKCQkJCQkJL0VuZEluZGVudCAwLjAKCQkJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJCQkvU3BhY2VBZnRlciAwLjAKCQkJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJCQkvSHlwaGVuYXRlZFdvcmRTaXplIDgKCQkJCQkJL1ByZUh5cGhlbiAzCgkJCQkJCS9Qb3N0SHlwaGVuIDMKCQkJCQkJL0NvbnNlY3V0aXZlSHlwaGVucyAyCgkJCQkJCS9ab25lIDM2LjAKCQkJCQkJL1dvcmRTcGFjaW5nIFsgMC44IDEuMCAxLjMzIF0KCQkJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCQkJL0xlYWRpbmdUeXBlIDAKCQkJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCQkJL0J1cmFzYWdhcmkgZmFsc2UKCQkJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQkJCT4+CgkJCQk+PgoJCQkJL0FkanVzdG1lbnRzCgkJCQk8PAoJCQkJCS9BeGlzIFsgMS4wIDAuMCAxLjAgXQoJCQkJCS9YWSBbIDAuMCAwLjAgXQoJCQkJPj4KCQkJPj4KCQkJXQoJCQkvUnVuTGVuZ3RoQXJyYXkgWyA0IF0KCQkJL0lzSm9pbmFibGUgMQoJCT4+CgkJL1N0eWxlUnVuCgkJPDwKCQkJL0RlZmF1bHRSdW5EYXRhCgkJCTw8CgkJCQkvU3R5bGVTaGVldAoJCQkJPDwKCQkJCQkvU3R5bGVTaGVldERhdGEKCQkJCQk8PAoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCQkvUnVuQXJyYXkgWwoJCQk8PAoJCQkJL1N0eWxlU2hlZXQKCQkJCTw8CgkJCQkJL1N0eWxlU2hlZXREYXRhCgkJCQkJPDwKCQkJCQkJL0ZvbnQgMAoJCQkJCQkvRm9udFNpemUgMjAuNzczMzEKCQkJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkJCS9BdXRvTGVhZGluZyBmYWxzZQoJCQkJCQkvTGVhZGluZyAzOS44NjE5OAoJCQkJCQkvSG9yaXpvbnRhbFNjYWxlIDEuMAoJCQkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCQkJL1RyYWNraW5nIDIwCgkJCQkJCS9BdXRvS2VybmluZyB0cnVlCgkJCQkJCS9LZXJuaW5nIDAKCQkJCQkJL0Jhc2VsaW5lU2hpZnQgLTguODg2NjIKCQkJCQkJL0ZvbnRDYXBzIDAKCQkJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkJCS9VbmRlcmxpbmUgZmFsc2UKCQkJCQkJL1N0cmlrZXRocm91Z2ggZmFsc2UKCQkJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkJCS9ETGlnYXR1cmVzIGZhbHNlCgkJCQkJCS9CYXNlbGluZURpcmVjdGlvbiAxCgkJCQkJCS9Uc3VtZSAwLjAKCQkJCQkJL1N0eWxlUnVuQWxpZ25tZW50IDIKCQkJCQkJL0xhbmd1YWdlIDAKCQkJCQkJL05vQnJlYWsgZmFsc2UKCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQk8PAoJCQkJCQkJL1R5cGUgMQoJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCT4+CgkJCQkJCS9TdHJva2VDb2xvcgoJCQkJCQk8PAoJCQkJCQkJL1R5cGUgMQoJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCT4+CgkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkJCS9GaWxsRmlyc3QgZmFsc2UKCQkJCQkJL1lVbmRlcmxpbmUgMQoJCQkJCQkvT3V0bGluZVdpZHRoIDAuMDQxNjcKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQkJXQoJCQkvUnVuTGVuZ3RoQXJyYXkgWyA0IF0KCQkJL0lzSm9pbmFibGUgMgoJCT4+CgkJL0dyaWRJbmZvCgkJPDwKCQkJL0dyaWRJc09uIGZhbHNlCgkJCS9TaG93R3JpZCBmYWxzZQoJCQkvR3JpZFNpemUgMTguMAoJCQkvR3JpZExlYWRpbmcgMjIuMAoJCQkvR3JpZENvbG9yCgkJCTw8CgkJCQkvVHlwZSAxCgkJCQkvVmFsdWVzIFsgMC4wIDAuMCAwLjAgMS4wIF0KCQkJPj4KCQkJL0dyaWRMZWFkaW5nRmlsbENvbG9yCgkJCTw8CgkJCQkvVHlwZSAxCgkJCQkvVmFsdWVzIFsgMC4wIDAuMCAwLjAgMS4wIF0KCQkJPj4KCQkJL0FsaWduTGluZUhlaWdodFRvR3JpZEZsYWdzIGZhbHNlCgkJPj4KCQkvQW50aUFsaWFzIDQKCQkvVXNlRnJhY3Rpb25hbEdseXBoV2lkdGhzIHRydWUKCQkvUmVuZGVyZWQKCQk8PAoJCQkvVmVyc2lvbiAxCgkJCS9TaGFwZXMKCQkJPDwKCQkJCS9Xcml0aW5nRGlyZWN0aW9uIDAKCQkJCS9DaGlsZHJlbiBbCgkJCQk8PAoJCQkJCS9TaGFwZVR5cGUgMAoJCQkJCS9Qcm9jZXNzaW9uIDAKCQkJCQkvTGluZXMKCQkJCQk8PAoJCQkJCQkvV3JpdGluZ0RpcmVjdGlvbiAwCgkJCQkJCS9DaGlsZHJlbiBbIF0KCQkJCQk+PgoJCQkJCS9Db29raWUKCQkJCQk8PAoJCQkJCQkvUGhvdG9zaG9wCgkJCQkJCTw8CgkJCQkJCQkvU2hhcGVUeXBlIDAKCQkJCQkJCS9Qb2ludEJhc2UgWyAwLjAgMC4wIF0KCQkJCQkJCS9CYXNlCgkJCQkJCQk8PAoJCQkJCQkJCS9TaGFwZVR5cGUgMAoJCQkJCQkJCS9UcmFuc2Zvcm1Qb2ludDAgWyAxLjAgMC4wIF0KCQkJCQkJCQkvVHJhbnNmb3JtUG9pbnQxIFsgMC4wIDEuMCBdCgkJCQkJCQkJL1RyYW5zZm9ybVBvaW50MiBbIDAuMCAwLjAgXQoJCQkJCQkJPj4KCQkJCQkJPj4KCQkJCQk+PgoJCQkJPj4KCQkJCV0KCQkJPj4KCQk+PgoJPj4KCS9SZXNvdXJjZURpY3QKCTw8CgkJL0tpbnNva3VTZXQgWwoJCTw8CgkJCS9OYW1lICj+/wBQAGgAbwB0AG8AcwBoAG8AcABLAGkAbgBzAG8AawB1AEgAYQByAGQpCgkJCS9Ob1N0YXJ0ICj+/zABMAL/DP8OMPv/Gv8b/x//ATD8IBUgGSAd/wkwFf89/10wCTALMA0wDzARMP0w/jCdMJ4wBTBBMEMwRTBHMEkwYzCDMIUwhzCOMKEwozClMKcwqTDDMOMw5TDnMO4w9TD2MJswnAA/ACEAXCkAXQB9ACwALgA6ADshAyEJAKL/BSAwKQoJCQkvTm9FbmQgKP7/IBggHP8IMBT/O/9bMAgwCjAMMA4wEABcKABbAHv/5f8EAKP/IACnMBL/AykKCQkJL0tlZXAgKP7/IBUgJSkKCQkJL0hhbmdpbmcgKP7/MAEwAgAuACwpCgkJPj4KCQk8PAoJCQkvTmFtZSAo/v8AUABoAG8AdABvAHMAaABvAHAASwBpAG4AcwBvAGsAdQBTAG8AZgB0KQoJCQkvTm9TdGFydCAo/v8wATAC/wz/DjD7/xr/G/8f/wEgGSAd/wkwFf89/10wCTALMA0wDzARMP0w/jCdMJ4wBSkKCQkJL05vRW5kICj+/yAYIBz/CDAU/zv/WzAIMAowDDAOMBApCgkJCS9LZWVwICj+/yAVICUpCgkJCS9IYW5naW5nICj+/zABMAIALgAsKQoJCT4+CgkJXQoJCS9Nb2ppS3VtaVNldCBbCgkJPDwKCQkJL0ludGVybmFsTmFtZSAo/v8AUABoAG8AdABvAHMAaABvAHAANgBNAG8AagBpAEsAdQBtAGkAUwBlAHQAMSkKCQk+PgoJCTw8CgkJCS9JbnRlcm5hbE5hbWUgKP7/AFAAaABvAHQAbwBzAGgAbwBwADYATQBvAGoAaQBLAHUAbQBpAFMAZQB0ADIpCgkJPj4KCQk8PAoJCQkvSW50ZXJuYWxOYW1lICj+/wBQAGgAbwB0AG8AcwBoAG8AcAA2AE0AbwBqAGkASwB1AG0AaQBTAGUAdAAzKQoJCT4+CgkJPDwKCQkJL0ludGVybmFsTmFtZSAo/v8AUABoAG8AdABvAHMAaABvAHAANgBNAG8AagBpAEsAdQBtAGkAUwBlAHQANCkKCQk+PgoJCV0KCQkvVGhlTm9ybWFsU3R5bGVTaGVldCAwCgkJL1RoZU5vcm1hbFBhcmFncmFwaFNoZWV0IDAKCQkvUGFyYWdyYXBoU2hlZXRTZXQgWwoJCTw8CgkJCS9OYW1lICj+/wBSAEcAQgAgAC0AIABOAG8AcgBtAGEAbCkKCQkJL0RlZmF1bHRTdHlsZVNoZWV0IDAKCQkJL1Byb3BlcnRpZXMKCQkJPDwKCQkJCS9KdXN0aWZpY2F0aW9uIDAKCQkJCS9GaXJzdExpbmVJbmRlbnQgMC4wCgkJCQkvU3RhcnRJbmRlbnQgMC4wCgkJCQkvRW5kSW5kZW50IDAuMAoJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJL1NwYWNlQWZ0ZXIgMC4wCgkJCQkvQXV0b0h5cGhlbmF0ZSB0cnVlCgkJCQkvSHlwaGVuYXRlZFdvcmRTaXplIDYKCQkJCS9QcmVIeXBoZW4gMgoJCQkJL1Bvc3RIeXBoZW4gMgoJCQkJL0NvbnNlY3V0aXZlSHlwaGVucyA4CgkJCQkvWm9uZSAzNi4wCgkJCQkvV29yZFNwYWNpbmcgWyAwLjggMS4wIDEuMzMgXQoJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJL0xlYWRpbmdUeXBlIDAKCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkvQnVyYXNhZ2FyaSBmYWxzZQoJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJPj4KCQk+PgoJCV0KCQkvU3R5bGVTaGVldFNldCBbCgkJPDwKCQkJL05hbWUgKP7/AFIARwBCACAALQAgAE4AbwByAG0AYQBsKQoJCQkvU3R5bGVTaGVldERhdGEKCQkJPDwKCQkJCS9Gb250IDEKCQkJCS9Gb250U2l6ZSAxMi4wCgkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkvQXV0b0xlYWRpbmcgdHJ1ZQoJCQkJL0xlYWRpbmcgMC4wCgkJCQkvSG9yaXpvbnRhbFNjYWxlIDEuMAoJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkvVHJhY2tpbmcgMAoJCQkJL0F1dG9LZXJuaW5nIHRydWUKCQkJCS9LZXJuaW5n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eHRJbmRleGxvbmcAAAAcAAAACkVuZ2luZURhdGF0ZHRhAAAhyQoKPDwKCS9FbmdpbmVEaWN0Cgk8PAoJCS9FZGl0b3IKCQk8PAoJCQkvVGV4dCAo/v8AUABOAEcADSkKCQk+PgoJCS9QYXJhZ3JhcGhSdW4KCQk8PAoJCQkvRGVmYXVsdFJ1bkRhdGEKCQkJPDwKCQkJCS9QYXJhZ3JhcGhTaGVldAoJCQkJPDwKCQkJCQkvRGVmYXVsdFN0eWxlU2hlZXQgMAoJCQkJCS9Qcm9wZXJ0aWVzCgkJCQkJPDwKCQkJCQk+PgoJCQkJPj4KCQkJCS9BZGp1c3RtZW50cwoJCQkJPDwKCQkJCQkvQXhpcyBbIDEuMCAwLjAgMS4wIF0KCQkJCQkvWFkgWyAwLjAgMC4wIF0KCQkJCT4+CgkJCT4+CgkJCS9SdW5BcnJheSBbCgkJCTw8CgkJCQkvUGFyYWdyYXBoU2hlZXQKCQkJCTw8CgkJCQkJL0RlZmF1bHRTdHlsZVNoZWV0IDAKCQkJCQkvUHJvcGVydGllcwoJCQkJCTw8CgkJCQkJCS9KdXN0aWZpY2F0aW9uIDIKCQkJCQkJL0ZpcnN0TGluZUluZGVudCAwLjAKCQkJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJCQkvRW5kSW5kZW50IDAuMAoJCQkJCQkvU3BhY2VCZWZvcmUgMC4wCgkJCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJCQkvQXV0b0h5cGhlbmF0ZSB0cnVlCgkJCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgOAoJCQkJCQkvUHJlSHlwaGVuIDMKCQkJCQkJL1Bvc3RIeXBoZW4gMwoJCQkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDIKCQkJCQkJL1pvbmUgMzYuMAoJCQkJCQkvV29yZFNwYWNpbmcgWyAwLjggMS4wIDEuMzMgXQoJCQkJCQkvTGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJCQkvQnVyYXNhZ2FyaSBmYWxzZQoJCQkJCQkvS2luc29rdU9yZGVyIDAKCQkJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCQkJPj4KCQkJCT4+CgkJCQkvQWRqdXN0bWVudHMKCQkJCTw8CgkJCQkJL0F4aXMgWyAxLjAgMC4wIDEuMCBdCgkJCQkJL1hZIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQk+PgoJCQldCgkJCS9SdW5MZW5ndGhBcnJheSBbIDQgXQoJCQkvSXNKb2luYWJsZSAxCgkJPj4KCQkvU3R5bGVSdW4KCQk8PAoJCQkvRGVmYXVsdFJ1bkRhdGEKCQkJPDwKCQkJCS9TdHlsZVNoZWV0CgkJCQk8PAoJCQkJCS9TdHlsZVNoZWV0RGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJCS9SdW5BcnJheSBbCgkJCTw8CgkJCQkvU3R5bGVTaGVldAoJCQkJPDwKCQkJCQkvU3R5bGVTaGVldERhdGEKCQkJCQk8PAoJCQkJCQkvRm9udCAwCgkJCQkJCS9Gb250U2l6ZSAyMC43NzMzMQoJCQkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCQkJL0F1dG9MZWFkaW5nIGZhbHNlCgkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJCQkvVHJhY2tpbmcgMjAKCQkJCQkJL0F1dG9LZXJuaW5nIHRydWUKCQkJCQkJL0tlcm5pbmcgMAoJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkvRm9udENhcHMgMAoJCQkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCQkJL1VuZGVybGluZSBmYWxzZQoJCQkJCQkvU3RyaWtldGhyb3VnaCBmYWxzZQoJCQkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCQkJL0RMaWdhdHVyZXMgZmFsc2UKCQkJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDEKCQkJCQkJL1RzdW1lIDAuMAoJCQkJCQkvU3R5bGVSdW5BbGlnbm1lbnQgMgoJCQkJCQkvTGFuZ3VhZ2UgMAoJCQkJCQkvTm9CcmVhayBmYWxzZQoJCQkJCQkvRmlsbENvbG9yCgkJCQkJCTw8CgkJCQkJCQkvVHlwZSAxCgkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJPj4KCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCTw8CgkJCQkJCQkvVHlwZSAxCgkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJPj4KCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJL0ZpbGxGaXJzdCBmYWxzZQoJCQkJCQkvWVVuZGVybGluZSAxCgkJCQkJCS9PdXRsaW5lV2lkdGggMC4wNDE2NwoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCQldCgkJCS9SdW5MZW5ndGhBcnJheSBbIDQgXQoJCQkvSXNKb2luYWJsZSAyCgkJPj4KCQkvR3JpZEluZm8KCQk8PAoJCQkvR3JpZElzT24gZmFsc2UKCQkJL1Nob3dHcmlkIGZhbHNlCgkJCS9HcmlkU2l6ZSAxOC4wCgkJCS9HcmlkTGVhZGluZyAyMi4wCgkJCS9HcmlkQ29sb3IKCQkJPDwKCQkJCS9UeXBlIDEKCQkJCS9WYWx1ZXMgWyAwLjAgMC4wIDAuMCAxLjAgXQoJCQk+PgoJCQkvR3JpZExlYWRpbmdGaWxsQ29sb3IKCQkJPDwKCQkJCS9UeXBlIDEKCQkJCS9WYWx1ZXMgWyAwLjAgMC4wIDAuMCAxLjAgXQoJCQk+PgoJCQkvQWxpZ25MaW5lSGVpZ2h0VG9HcmlkRmxhZ3MgZmFsc2UKCQk+PgoJCS9BbnRpQWxpYXMgNAoJCS9Vc2VGcmFjdGlvbmFsR2x5cGhXaWR0aHMgdHJ1ZQoJCS9SZW5kZXJlZAoJCTw8CgkJCS9WZXJzaW9uIDEKCQkJL1NoYXBlcwoJCQk8PAoJCQkJL1dyaXRpbmdEaXJlY3Rpb24gMAoJCQkJL0NoaWxkcmVuIFsKCQkJCTw8CgkJCQkJL1NoYXBlVHlwZSAwCgkJCQkJL1Byb2Nlc3Npb24gMAoJCQkJCS9MaW5lcwoJCQkJCTw8CgkJCQkJCS9Xcml0aW5n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L0hhbmdpbmcgZmFsc2UKCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkvS2luc29rdU9yZGVyIDAKCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQk+PgoJCT4+CgkJXQoJCS9TdHlsZVNoZWV0U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8AUgBHAEIAIAAtACAATgBvAHIAbQBhAGwpCgkJCS9TdHlsZVNoZWV0RGF0YQoJCQk8PAoJCQkJL0ZvbnQgMQoJCQkJL0ZvbnRTaXplIDEyLjAKCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCS9BdXRvTGVhZGluZyB0cnVlCgkJCQkvTGVhZGluZyAwLjAKCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCS9UcmFja2luZyAwCgkJCQkvQXV0b0tlcm5pbmcgdHJ1ZQoJCQkJL0tlcm5pbmcgMAoJCQkJL0Jhc2VsaW5lU2hpZnQgMC4wCgkJCQkvRm9udENhcHMgMAoJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkvVW5kZXJsaW5lIGZhbHNlCgkJCQkvU3RyaWtldGhyb3VnaCBmYWxzZQoJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkvRExpZ2F0dXJlcyBmYWxzZQoJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDIKCQkJCS9Uc3VtZSAwLjAKCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkvTGFuZ3VhZ2UgMAoJCQkJL05vQnJlYWsgZmFsc2UKCQkJCS9GaWxsQ29sb3IKCQkJCTw8CgkJCQkJL1R5cGUgMQoJCQkJCS9WYWx1ZXMgWyAxLjAgMC4wIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9TdHJva2VDb2xvcgoJCQkJPDwKCQkJCQkvVHlwZSAxCgkJCQkJL1ZhbHVlcyBbIDEuMCAwLjAgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkvRmlsbEZpcnN0IHRydWUKCQkJCS9ZVW5kZXJsaW5lIDEKCQkJCS9PdXRsaW5lV2lkdGggMS4w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IDEuMzMgXQoJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJL0xlYWRpbmdUeXBlIDAKCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkvQnVyYXNhZ2FyaSBmYWxzZQoJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJPj4KCQk+PgoJCV0KCQkvU3R5bGVTaGVldFNldCBbCgkJPDwKCQkJL05hbWUgKP7/AFIARwBCACAALQAgAE4AbwByAG0AYQBsKQoJCQkvU3R5bGVTaGVldERhdGEKCQkJPDwKCQkJCS9Gb250IDEKCQkJCS9Gb250U2l6ZSAxMi4wCgkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkvQXV0b0xlYWRpbmcgdHJ1ZQoJCQkJL0xlYWRpbmcgMC4wCgkJCQkvSG9yaXpvbnRhbFNjYWxlIDEuMAoJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkvVHJhY2tpbmcgMAoJCQkJL0F1dG9LZXJuaW5nIHRydWUKCQkJCS9LZXJuaW5nIDAKCQkJCS9CYXNlbGluZVNoaWZ0IDAuMAoJCQkJL0ZvbnRDYXBzIDAKCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJL1VuZGVybGluZSBmYWxzZQoJCQkJL1N0cmlrZXRocm91Z2ggZmFsc2UKCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJL0RMaWdhdHVyZXMgZmFsc2UKCQkJCS9CYXNlbGluZURpcmVjdGlvbiAyCgkJCQkvVHN1bWUgMC4wCgkJCQkvU3R5bGVSdW5BbGlnbm1lbnQgMgoJCQkJL0xhbmd1YWdlIDAKCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkvRmlsbENvbG9yCgkJCQk8PAoJCQkJCS9UeXBlIDEKCQkJCQkvVmFsdWVzIFsgMS4wIDAuMCAwLjAgMC4wIF0KCQkJCT4+CgkJCQkvU3Ryb2tlQ29sb3IKCQkJCTw8CgkJCQkJL1R5cGUgMQoJCQkJCS9WYWx1ZXMgWyAxLjAg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CS9FbmRJbmRlbnQgMC4wCgkJCQkJCS9TcGFjZUJlZm9yZSAwLjAKCQkJCQkJL1NwYWNlQWZ0ZXIgMC4wCgkJCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCQkJL0h5cGhlbmF0ZWRXb3JkU2l6ZSA4CgkJCQkJCS9QcmVIeXBoZW4gMwoJCQkJCQkvUG9zdEh5cGhlbiAzCgkJCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgMgoJCQkJCQkvWm9uZSAzNi4wCgkJCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJCQk+PgoJCQkJPj4KCQkJCS9BZGp1c3RtZW50cwoJCQkJPDwKCQkJCQkvQXhpcyBbIDEuMCAwLjAgMS4wIF0KCQkJCQkvWFkgWyAwLjAgMC4wIF0KCQkJCT4+CgkJCT4+CgkJCV0KCQkJL1J1bkxlbmd0aEFycmF5IFsgNCBdCgkJCS9Jc0pvaW5hYmxlIDEKCQk+PgoJCS9TdHlsZVJ1bgoJCTw8CgkJCS9EZWZhdWx0UnVuRGF0YQoJCQk8PAoJCQkJL1N0eWxlU2hlZXQKCQkJCTw8CgkJCQkJL1N0eWxlU2hlZXREYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQkJL1J1bkFycmF5IFsKCQkJPDwKCQkJCS9TdHlsZVNoZWV0CgkJCQk8PAoJCQkJCS9TdHlsZVNoZWV0RGF0YQoJCQkJCTw8CgkJCQkJCS9Gb250IDAKCQkJCQkJL0ZvbnRTaXplIDIwLjc3MzMxCgkJCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkvQXV0b0xlYWRpbmcgZmFsc2UKCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkJCS9UcmFja2luZyAyMAoJCQkJCQkvQXV0b0tlcm5pbmcgdHJ1ZQoJCQkJCQkvS2VybmluZyAwCgkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJCQkvVW5kZXJsaW5lIGZhbHNlCgkJCQkJCS9TdHJpa2V0aHJvdWdoIGZhbHNlCgkJCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJCQkvRExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMQoJCQkJCQkvVHN1bWUgMC4wCgkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCS9MYW5ndWFnZSAwCgkJCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJPDwKCQkJCQkJCS9UeXBlIDEKCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQk+PgoJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJPDwKCQkJCQkJCS9UeXBlIDEKCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQk+PgoJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCS9ZVW5kZXJsaW5lIDEKCQkJCQkJL091dGxpbmVXaWR0aCAwLjA0MTY3CgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJCV0KCQkJL1J1bkxlbmd0aEFycmF5IFsgNCBdCgkJCS9Jc0pvaW5hYmxlIDIKCQk+PgoJCS9HcmlkSW5mbwoJCTw8CgkJCS9HcmlkSXNPbiBmYWxzZQoJCQkvU2hvd0dyaWQgZmFsc2UKCQkJL0dyaWRTaXplIDE4LjAKCQkJL0dyaWRMZWFkaW5nIDIyLjAKCQkJL0dyaWRD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CQkvSnVzdGlmaWNhdGlvbiAwCgkJCQkvRmlyc3RMaW5lSW5kZW50IDAuMAoJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJL0VuZEluZGVudCAwLjAKCQkJCS9TcGFjZUJlZm9yZSAwLjAKCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJL0h5cGhlbmF0ZWRXb3JkU2l6ZSA2CgkJCQkvUHJlSHlwaGVuIDIKCQkJCS9Qb3N0SHlwaGVuIDIKCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgOAoJCQkJL1pvbmUgMzYuMAoJCQkJL1dvcmRTcGFjaW5nIFsgMC44IDEuMCAxLjMzIF0KCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJL0J1cmFzYWdhcmkgZmFsc2UKCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCT4+CgkJPj4KCQldCgkJL1N0eWxlU2hlZXRTZXQgWwoJCTw8CgkJCS9OYW1lICj+/wBSAEcAQgAgAC0AIABOAG8AcgBtAGEAbCkKCQkJL1N0eWxlU2hlZXREYXRhCgkJCTw8CgkJCQkvRm9udCAxCgkJCQkvRm9udFNpemUgMTIuMAoJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJL0F1dG9MZWFkaW5nIHRydWUKCQkJCS9MZWFkaW5nIDAuMAoJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJL1RyYWNraW5nIDAKCQkJCS9BdXRvS2VybmluZyB0cnVlCgkJCQkvS2VybmluZyAwCgkJCQkvQmFzZWxpbmVTaGlmdCAwLjAKCQkJCS9Gb250Q2FwcyAwCgkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCS9VbmRlcmxpbmUgZmFsc2UKCQkJCS9TdHJpa2V0aHJvdWdoIGZh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U2hlZXQgMAoJCS9QYXJhZ3JhcGhTaGVldFNldCBbCgkJPDwKCQkJL05hbWUgKP7/AFIARwBCACAALQAgAE4AbwByAG0AYQBsKQoJCQkvRGVmYXVsdFN0eWxlU2hlZXQgMAoJCQkvUHJvcGVydGllcwoJCQk8PAoJCQkJL0p1c3RpZmljYXRpb24gMAoJCQkJL0ZpcnN0TGluZUluZGVudCAwLjAKCQkJCS9TdGFydEluZGVudCAwLjAKCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkvU3BhY2VCZWZvcmUgMC4wCgkJCQkvU3BhY2VBZnRlciAwLjAKCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgNgoJCQkJL1ByZUh5cGhlbiAyCgkJCQkvUG9zdEh5cGhlbiAyCgkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDgKCQkJCS9ab25lIDM2LjAKCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkvTGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkvS2luc29rdU9yZGVyIDAKCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQk+PgoJCT4+CgkJXQoJCS9TdHlsZVNoZWV0U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8AUgBHAEIAIAAtACAATgBvAHIAbQBhAGwpCgkJCS9TdHlsZVNoZWV0RGF0YQoJCQk8PAoJCQkJL0ZvbnQgMQoJCQkJL0ZvbnRTaXplIDEyLjAKCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCS9BdXRvTGVhZGluZyB0cnVlCgkJCQkvTGVhZGluZyAwLjAKCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCS9UcmFja2luZyAwCgkJCQkvQXV0b0tlcm5pbmcg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UGFyYWdyYXBoUnVuCgkJPDwKCQkJL0RlZmF1bHRSdW5EYXRhCgkJCTw8CgkJCQkvUGFyYWdyYXBoU2hlZXQKCQkJCTw8CgkJCQkJL0RlZmF1bHRTdHlsZVNoZWV0IDAKCQkJCQkvUHJvcGVydGllcwoJCQkJCTw8CgkJCQkJPj4KCQkJCT4+CgkJCQkvQWRqdXN0bWVudHMKCQkJCTw8CgkJCQkJL0F4aXMgWyAxLjAgMC4wIDEuMCBdCgkJCQkJL1hZIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQk+PgoJCQkvUnVuQXJyYXkgWwoJCQk8PAoJCQkJL1BhcmFncmFwaFNoZWV0CgkJCQk8PAoJCQkJCS9EZWZhdWx0U3R5bGVTaGVldCAwCgkJCQkJL1Byb3BlcnRpZXMKCQkJCQk8PAoJCQkJCQkvSnVzdGlmaWNhdGlvbiAyCgkJCQkJCS9GaXJzdExpbmVJbmRlbnQgMC4wCgkJCQkJCS9TdGFydEluZGVudCAwLjAKCQkJCQkJL0VuZEluZGVudCAwLjAKCQkJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJCQkvU3BhY2VBZnRlciAwLjAKCQkJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJCQkvSHlwaGVuYXRlZFdvcmRTaXplIDgKCQkJCQkJL1ByZUh5cGhlbiAzCgkJCQkJCS9Qb3N0SHlwaGVuIDMKCQkJCQkJL0NvbnNlY3V0aXZlSHlwaGVucyAyCgkJCQkJCS9ab25lIDM2LjAKCQkJCQkJL1dvcmRTcGFjaW5nIFsgMC44IDEuMCAxLjMzIF0KCQkJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCQkJL0xlYWRpbmdUeXBlIDAKCQkJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCQkJL0J1cmFzYWdhcmkgZmFsc2UKCQkJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQkJCT4+CgkJCQk+PgoJCQkJL0FkanVzdG1lbnRzCgkJCQk8PAoJCQkJCS9BeGlzIFsgMS4wIDAuMCAxLjAgXQoJCQkJCS9YWSBbIDAuMCAwLjAgXQoJCQkJPj4KCQkJPj4KCQkJXQoJCQkvUnVuTGVuZ3RoQXJyYXkgWyA0IF0KCQkJL0lzSm9pbmFibGUgMQoJCT4+CgkJL1N0eWxlUnVuCgkJPDwKCQkJL0RlZmF1bHRSdW5EYXRhCgkJCTw8CgkJCQkvU3R5bGVTaGVldAoJCQkJPDwKCQkJCQkvU3R5bGVTaGVldERhdGEKCQkJCQk8PAoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCQkvUnVuQXJyYXkgWwoJCQk8PAoJCQkJL1N0eWxlU2hlZXQKCQkJCTw8CgkJCQkJL1N0eWxlU2hlZXREYXRhCgkJCQkJPDwKCQkJCQkJL0ZvbnQgMAoJCQkJCQkvRm9udFNpemUgMjAuNzczMzEKCQkJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkJCS9BdXRvTGVhZGluZyBmYWxzZQoJCQkJCQkvTGVhZGluZyAzOS44NjE5OAoJCQkJCQkvSG9yaXpvbnRhbFNjYWxlIDEuMAoJCQkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCQkJL1RyYWNraW5nIDIwCgkJCQkJCS9BdXRvS2VybmluZyB0cnVlCgkJCQkJCS9LZXJuaW5nIDAKCQkJCQkJL0Jhc2VsaW5lU2hpZnQgLTguODg2NjIKCQkJCQkJL0ZvbnRDYXBzIDAKCQkJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkJCS9VbmRlcmxpbmUgZmFsc2UKCQkJCQkJL1N0cmlrZXRocm91Z2ggZmFsc2UKCQkJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkJCS9ETGlnYXR1cmVzIGZhbHNlCgkJCQkJCS9CYXNlbGluZURpcmVjdGlvbiAxCgkJCQkJCS9Uc3VtZSAwLjAKCQkJCQkJL1N0eWxlUnVuQWxpZ25tZW50IDIKCQkJCQkJL0xhbmd1YWdlIDAKCQkJCQkJL05vQnJlYWsgZmFsc2UKCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQk8PAoJCQkJCQkJL1R5cGUgMQoJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCT4+CgkJCQkJCS9TdHJva2VDb2xvcgoJCQkJCQk8PAoJCQkJCQkJL1R5cGUgMQoJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCT4+CgkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkJCS9GaWxsRmlyc3QgZmFsc2UKCQkJCQkJL1lVbmRlcmxpbmUgMQoJCQkJCQkvT3V0bGluZVdpZHRoIDAuMDQxNjcKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQkJXQoJCQkvUnVuTGVuZ3RoQXJyYXkgWyA0IF0KCQkJL0lzSm9pbmFibGUgMgoJCT4+CgkJL0dyaWRJbmZvCgkJPDwKCQkJL0dyaWRJc09uIGZhbHNlCgkJCS9TaG93R3JpZCBmYWxzZQoJCQkvR3JpZFNpemUgMTguMAoJCQkvR3JpZExlYWRpbmcgMjIuMAoJCQkvR3JpZENvbG9yCgkJCTw8CgkJCQkvVHlwZSAxCgkJCQkvVmFsdWVzIFsgMC4wIDAuMCAwLjAgMS4wIF0KCQkJPj4KCQkJL0dyaWRMZWFkaW5nRmlsbENvbG9yCgkJCTw8CgkJCQkvVHlwZSAxCgkJCQkvVmFsdWVzIFsgMC4wIDAuMCAwLjAgMS4wIF0KCQkJPj4KCQkJL0FsaWduTGluZUhlaWdodFRvR3JpZEZsYWdzIGZhbHNlCgkJPj4KCQkvQW50aUFsaWFzIDQKCQkvVXNlRnJhY3Rpb25hbEdseXBoV2lkdGhzIHRydWUKCQkvUmVuZGVyZWQKCQk8PAoJCQkvVmVyc2lvbiAxCgkJCS9TaGFwZXMKCQkJPDwKCQkJCS9Xcml0aW5nRGlyZWN0aW9uIDAKCQkJCS9DaGlsZHJlbiBbCgkJCQk8PAoJCQkJCS9TaGFwZVR5cGUgMAoJCQkJCS9Qcm9jZXNzaW9uIDAKCQkJCQkvTGluZXMKCQkJCQk8PAoJCQkJCQkvV3JpdGluZ0RpcmVjdGlvbiAwCgkJCQkJCS9DaGlsZHJlbiBbIF0KCQkJCQk+PgoJCQkJCS9Db29raWUKCQkJCQk8PAoJCQkJCQkvUGhvdG9zaG9wCgkJCQkJCTw8CgkJCQkJCQkvU2hhcGVUeXBl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ZWFkaW5nVHlwZSAwCgkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJL0J1cmFzYWdhcmkgZmFsc2UKCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCT4+CgkJPj4KCQldCgkJL1N0eWxlU2hlZXRTZXQgWwoJCTw8CgkJCS9OYW1lICj+/wBSAEcAQgAgAC0AIABOAG8AcgBtAGEAbCkKCQkJL1N0eWxlU2hlZXREYXRhCgkJCTw8CgkJCQkvRm9udCAxCgkJCQkvRm9udFNpemUgMTIuMAoJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJL0F1dG9MZWFkaW5nIHRydWUKCQkJCS9MZWFkaW5nIDAuMAoJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJL1RyYWNraW5nIDAKCQkJCS9BdXRvS2VybmluZyB0cnVlCgkJCQkvS2VybmluZyAwCgkJCQkvQmFzZWxpbmVTaGlmdCAwLjAKCQkJCS9Gb250Q2FwcyAwCgkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCS9VbmRlcmxpbmUgZmFsc2UKCQkJCS9TdHJpa2V0aHJvdWdoIGZhbHNlCgkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCS9ETGlnYXR1cmVzIGZhbHNlCgkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMgoJCQkJL1RzdW1lIDAuMAoJCQkJL1N0eWxlUnVuQWxpZ25tZW50IDIKCQkJCS9MYW5ndWFnZSAwCgkJCQkvTm9CcmVhayBmYWxzZQoJCQkJL0ZpbGxDb2xvcgoJCQkJPDwKCQkJCQkvVHlwZSAxCgkJCQkJL1ZhbHVlcyBbIDEuMCAwLjAgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL1N0cm9rZUNvbG9yCgkJCQk8PAoJCQkJCS9UeXBlIDEKCQkJCQkvVmFsdWVzIFsgMS4wIDAuMCAwLjAgMC4wIF0KCQkJCT4+CgkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCS9GaWxsRmlyc3QgdHJ1ZQoJCQkJL1lVbmRlcmxpbmUgMQoJCQkJ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V29yZFNpemUgOAoJCQkJCQkvUHJlSHlwaGVuIDMKCQkJCQkJL1Bvc3RIeXBoZW4gMwoJCQkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDIKCQkJCQkJL1pvbmUgMzYuMAoJCQkJCQkvV29yZFNwYWNpbmcgWyAwLjggMS4wIDEuMzMgXQoJCQkJCQkvTGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJCQkvQnVyYXNhZ2FyaSBmYWxzZQoJCQkJCQkvS2luc29rdU9yZGVyIDAKCQkJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCQkJPj4KCQkJCT4+CgkJCQkvQWRqdXN0bWVudHMKCQkJCTw8CgkJCQkJL0F4aXMgWyAxLjAgMC4wIDEuMCBdCgkJCQkJL1hZIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQk+PgoJCQldCgkJCS9SdW5MZW5ndGhBcnJheSBbIDQgXQoJCQkvSXNKb2luYWJsZSAxCgkJPj4KCQkvU3R5bGVSdW4KCQk8PAoJCQkvRGVmYXVsdFJ1bkRhdGEKCQkJPDwKCQkJCS9TdHlsZVNoZWV0CgkJCQk8PAoJCQkJCS9TdHlsZVNoZWV0RGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJCS9SdW5BcnJheSBbCgkJCTw8CgkJCQkvU3R5bGVTaGVldAoJCQkJPDwKCQkJCQkvU3R5bGVTaGVldERhdGEKCQkJCQk8PAoJCQkJCQkvRm9udCAwCgkJCQkJCS9Gb250U2l6ZSAyMC43NzMzMQoJCQkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCQkJL0F1dG9MZWFkaW5nIGZhbHNlCgkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJCQkvVHJhY2tpbmcgMjAKCQkJCQkJL0F1dG9LZXJuaW5nIHRydWUKCQkJCQkJL0tlcm5pbmcgMAoJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkvRm9udENhcHMgMAoJCQkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCQkJL1VuZGVybGluZSBmYWxzZQoJCQkJCQkvU3RyaWtldGhyb3VnaCBmYWxzZQoJCQkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCQkJL0RMaWdhdHVyZXMgZmFsc2UKCQkJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDEKCQkJCQkJL1RzdW1lIDAuMAoJCQkJCQkvU3R5bGVSdW5BbGlnbm1lbnQgMgoJCQkJCQkvTGFuZ3VhZ2UgMAoJCQkJCQkvTm9CcmVhayBmYWxzZQoJCQkJCQkvRmlsbENvbG9yCgkJCQkJCTw8CgkJCQkJCQkvVHlwZSAxCgkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJPj4KCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCTw8CgkJCQkJCQkvVHlwZSAxCgkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJPj4KCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJL0ZpbGxGaXJzdCBmYWxzZQoJCQkJCQkvWVVuZGVybGluZSAxCgkJCQkJCS9PdXRsaW5lV2lkdGggMC4wNDE2NwoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCQldCgkJCS9SdW5MZW5ndGhBcnJheSBbIDQgXQoJCQkvSXNKb2luYWJsZSAyCgkJPj4KCQkvR3JpZEluZm8KCQk8PAoJCQkvR3JpZElzT24gZmFsc2UKCQkJL1Nob3dHcmlkIGZhbHNlCgkJCS9HcmlkU2l6ZSAxOC4wCgkJCS9HcmlkTGVhZGluZyAyMi4wCgkJCS9HcmlkQ29sb3IKCQkJPDwKCQkJCS9UeXBlIDEKCQkJCS9WYWx1ZXMgWyAwLjAgMC4wIDAuMCAxLjAgXQoJCQk+PgoJCQkvR3JpZExlYWRpbmdGaWxsQ29sb3IKCQkJPDwKCQkJCS9UeXBlIDEK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CgkJCQkvU3BhY2VBZnRlciAwLjAKCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgNgoJCQkJL1ByZUh5cGhlbiAyCgkJCQkvUG9zdEh5cGhlbiAyCgkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDgKCQkJCS9ab25lIDM2LjAKCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkvTGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkvS2luc29rdU9yZGVyIDAKCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQk+PgoJCT4+CgkJXQoJCS9TdHlsZVNoZWV0U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8AUgBHAEIAIAAtACAATgBvAHIAbQBhAGwpCgkJCS9TdHlsZVNoZWV0RGF0YQoJCQk8PAoJCQkJL0ZvbnQgMQoJCQkJL0ZvbnRTaXplIDEyLjAKCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCS9BdXRvTGVhZGluZyB0cnVlCgkJCQkvTGVhZGluZyAwLjAKCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCS9UcmFja2luZyAwCgkJCQkvQXV0b0tlcm5pbmcgdHJ1ZQoJCQkJL0tlcm5pbmcgMAoJCQkJL0Jhc2VsaW5lU2hpZnQgMC4wCgkJCQkvRm9udENhcHMgMAoJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkvVW5kZXJsaW5lIGZhbHNlCgkJCQkvU3RyaWtldGhyb3VnaCBmYWxzZQoJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkvRExpZ2F0dXJlcyBmYWxzZQoJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDIKCQkJCS9Uc3VtZSAwLjAKCQkJCS9TdHlsZVJ1bkFsaWdu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b3BlcnRpZXMKCQkJPDwKCQkJCS9KdXN0aWZpY2F0aW9uIDAKCQkJCS9GaXJzdExpbmVJbmRlbnQgMC4wCgkJCQkvU3RhcnRJbmRlbnQgMC4wCgkJCQkvRW5kSW5kZW50IDAuMAoJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJL1NwYWNlQWZ0ZXIgMC4wCgkJCQkvQXV0b0h5cGhlbmF0ZSB0cnVlCgkJCQkvSHlwaGVuYXRlZFdvcmRTaXplIDYKCQkJCS9QcmVIeXBoZW4gMgoJCQkJL1Bvc3RIeXBoZW4gMgoJCQkJL0NvbnNlY3V0aXZlSHlwaGVucyA4CgkJCQkvWm9uZSAzNi4wCgkJCQkvV29yZFNwYWNpbmcgWyAwLjggMS4wIDEuMzMgXQoJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJL0xlYWRpbmdUeXBlIDAKCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkvQnVyYXNhZ2FyaSBmYWxzZQoJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJPj4KCQk+PgoJCV0KCQkvU3R5bGVTaGVldFNldCBbCgkJPDwKCQkJL05hbWUgKP7/AFIARwBCACAALQAgAE4AbwByAG0AYQBsKQoJCQkvU3R5bGVTaGVldERhdGEKCQkJPDwKCQkJCS9Gb250IDEKCQkJCS9Gb250U2l6ZSAxMi4wCgkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkvQXV0b0xlYWRpbmcgdHJ1ZQoJCQkJL0xlYWRpbmcgMC4wCgkJCQkvSG9yaXpvbnRhbFNjYWxlIDEuMAoJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkvVHJhY2tpbmcgMAoJCQkJL0F1dG9LZXJuaW5nIHRydWUKCQkJCS9LZXJuaW5nIDAKCQkJCS9CYXNlbGluZVNoaWZ0IDAuMAoJCQkJL0ZvbnRDYXBzIDAKCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJL1VuZGVybGluZSBmYWxzZQoJCQkJL1N0cmlrZXRocm91Z2ggZmFsc2UKCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJL0RMaWdhdHVyZXMgZmFsc2UKCQkJCS9CYXNlbGluZURpcmVjdGlvbiAyCgkJCQkvVHN1bWUgMC4wCgkJCQkvU3R5bGVSdW5BbGlnbm1lbnQgMgoJCQkJL0xhbmd1YWdlIDAKCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkvRmlsbENvbG9yCgkJCQk8PAoJCQkJCS9UeXBlIDEKCQkJCQkvVmFsdWVzIFsgMS4wIDAuMCAwLjAgMC4wIF0KCQkJCT4+CgkJCQkvU3Ryb2tlQ29sb3IKCQkJCTw8CgkJCQkJL1R5cGUgMQoJCQkJCS9WYWx1ZXMgWyAxLjAgMC4wIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJL0ZpbGxGaXJzdCB0cnVlCgkJCQkvWVVuZGVybGluZSAxCgkJCQkvT3V0bGluZVdpZHRoIDEuMAoJCQk+PgoJCT4+CgkJXQoJCS9Gb250U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8ASABlAGwAdgBlAHQAaQBjAGEATgBlAHUAZQAtAEIAbwBsAGQpCgkJCS9TY3JpcHQgMAoJCQkvRm9udFR5cGUgMAoJCQkvU3ludGhldGljIDAKCQk+PgoJCTw8CgkJCS9OYW1lICj+/wBNAHkAcgBpAGEAZABQAHIAbwAtAFIAZQBnAHUAbABhAHIpCgkJCS9TY3JpcHQgMAoJCQkvRm9udFR5cGUgMAoJCQkvU3ludGhldGljIDAKCQk+PgoJCTw8CgkJCS9OYW1lICj+/wBBAGQAbwBiAGUASQBuAHYAaQBzAEYAbwBuAHQpCgkJCS9TY3JpcHQgMAoJCQkvRm9udFR5cGUgMAoJCQkvU3ludGhldGljIDAKCQk+PgoJCV0KCQkvU3VwZXJzY3JpcHRTaXplIDAuNTgzCgkJL1N1cGVyc2NyaXB0UG9zaXRpb24gMC4zMzMKCQkvU3Vic2NyaXB0U2l6ZSAwLjU4MwoJCS9TdWJzY3JpcHRQb3NpdGlvbiAwLjMzMwoJCS9TbWFsbENhcFNpemUgMC43Cgk+Pgo+PgABAAAAEAAAAAEAAAAAAAR3YXJwAAAABQAAAAl3YXJwU3R5bGVlbnVtAAAACXdhcnBTdHlsZQAAAAh3YXJwTm9uZQAAAAl3YXJwVmFsdWVkb3ViAAAAAAAAAAAAAAAPd2FycFBlcnNwZWN0aXZlZG91YgAAAAAAAAAAAAAAFHdhcnBQZXJzcGVjdGl2ZU90aGVyZG91YgAAAAAAAAAAAAAACndhcnBSb3RhdGVlbnVtAAAAAE9ybnQAAAAASHJ6bgAAAAAAAAAAAAAAAAAAAAA4QklNbHVuaQAAAAwAAAADAFIAQQBXAAA4QklNbG5zcgAAAARyZW5kOEJJTWx5aWQAAAAEAAAAwDhCSU1jbGJsAAAABAEAAAA4QklNaW5meAAAAAQAAAAAOEJJTWtua28AAAAEAAAAADhCSU1sc3BmAAAABAAAAAA4QklNbGNscgAAAAgAAAAAAAAAADhCSU1meHJwAAAAEEAlheAAjyc8QB1qO/JM2UwAAAASAAAADQAAACkAAAAkAAT//wAAATEAAAAAAYYAAQAAAYwAAgAAASw4QklNbm9ybf8AKAAAAAUEAAAAAAAAACgAAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//CEViZW5lIDE1AAAAOEJJTWxmeDIAAAJ0AAAAAAAAABAAAAABAAAAAAAAbnVsbAAAAAMAAAAAU2NsIFVudEYjUHJjQFkAAAAAAAAAAAAObWFzdGVyRlhTd2l0Y2hib29sAQAAAABEclNoT2JqYwAAAAEAAAAAAABEclNoAAAADQAAAABlbmFiYm9vbAEAAAAATWQgIGVudW0AAAAAQmxuTQAAAABNbHRwAAAAAENsciBPYmpjAAAAAQAAAAAAAFJHQkMAAAADAAAAAFJkICBkb3ViAAAAAAAAAAAAAAAAR3JuIGRvdWIAAAAAAAAAAAAAAABCbCAgZG91YgAAAAAAAAAAAAAAAE9wY3RVbnRGI1ByY0BSwAAAAAAAAAAAAHVnbGdib29sAQAAAABsYWdsVW50RiNBbmdAXgAAAAAAAAAAAABEc3RuVW50RiNQeGwAAAAAAAAAAAAAAABDa210VW50RiNQeGwAAAAAAAAAAAAAAABibHVyVW50RiNQeGw/8AAAAAAAAAAAAABOb3NlVW50RiNQcmMAAAAAAAAAAAAAAABBbnRBYm9vbAAAAAAAVHJuU09iamMAAAABAAAAAAAAU2hwQwAAAAIAAAAATm0gIFRFWFQAAAAHAEwAaQBuAGUAYQByAAAAAAAAQ3J2IFZsTHMAAAACT2JqYwAAAAEAAAAAAABDclB0AAAAAgAAAABIcnpuZG91YgAAAAAAAAAAAAAAAFZydGNkb3ViAAAAAAAAAABPYmpjAAAAAQAAAAAAAENyUHQAAAACAAAAAEhyem5kb3ViQG/gAAAAAAAAAAAAVnJ0Y2RvdWJAb+AAAAAAAAAAAA1sYXllckNvbmNlYWxzYm9vbAEAADhCSU1sckZYAAABjAAAAAc4QklNY21uUwAAAAcAAAAAAQAAOEJJTWRzZHcAAAAzAAAAAgABAAAAAAAAAHgAAAAAAAAAAAAAAAAAAAAAOEJJTW11bCABAb8AAAAAAAAAAAAAOEJJTWlzZHcAAAAzAAAAAgAFAAAAAAAAAHgAAAAFAAAAAAAAAAAAAAAAOEJJTW11bCAAAb8AAAAAAAAAAAAAOEJJTW9nbHcAAAAqAAAAAgAFAAAAAAAAAAD/////vr0AADhCSU1zY3JuAL8AAP////++vQAAOEJJTWlnbHcAAAArAAAAAgAFAAAAAAAAAAD/////vr0AADhCSU1zY3JuAL8BAAD/////vr0AADhCSU1iZXZsAAAATgAAAAIAeAAAAAUAAAAFAAA4QklNc2NybjhCSU1tdWwgAAD///////8AAAAAAAAAAAAAAAACv78AAQAAAP///////wAAAAAAAAAAAAAAADhCSU1zb2ZpAAAAIgAAAAI4QklNbm9ybQAA//8AAAAAAAD/AAAA//8AAAAAAAAAADhCSU1sdW5pAAAAFAAAAAgARQBiAGUAbgBlACAAMQA1OEJJTWxuc3IAAAAEbGF5cjhCSU1seWlkAAAABAAAALk4QklNY2xibAAAAAQBAAAAOEJJTWluZngAAAAEAAAAADhCSU1rbmtvAAAABAAAAAA4QklNbHNwZgAAAAQAAAAAOEJJTWxjbHIAAAAIAAAAAAAAAAA4QklNZnhycAAAABDAASg0PDaAgEAYF6j5328kAAAAFwAAABAAAAAlAAAAGQAE//8AAACAAAAAAACAAAEAAACAAAIAAACAOEJJTW5vcm3/AAgAAAAA7AAAAAAAAAAoAAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//whFYmVuZSAxNgAAADhCSU1sdW5pAAAAFAAAAAgARQBiAGUAbgBlACAAMQA2OEJJTWxuc3IAAAAEbGF5cjhCSU1seWlkAAAABAAAALo4QklNY2xibAAAAAQBAAAAOEJJTWluZngAAAAEAAAAADhCSU1rbmtvAAAABAAAAAA4QklNbHNwZgAAAAQAAAAAOEJJTWxjbHIAAAAIAAAAAAAAAAA4QklNZnhycAAAABDAASg0PDaAgEAYF6j5328kAAAAAAAAAAAAAAAAAAAAAAAE//8AAAACAAAAAAACAAEAAAACAAIAAAACOEJJTW5vcm3/ABoAAAAA8AAAAAAAAAAoAAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//xdKUEcgQk1QIEdJRiBUSUYgUkFXIFBORzhCSU1sdW5pAAAANAAAABcASgBQAEcAIABCAE0AUAAgAEcASQBGACAAVABJAEYAIABSAEEAVwAgAFAATgBHAAA4QklNbHlpZAAAAAQAAAC4OEJJTWxzY3QAAAAMAAAAAjhCSU1wYXNzOEJJTWxzcGYAAAAEAAAAADhCSU1sY2xyAAAACAAAAAAAAAAAOEJJTWZ4cnAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABP//AAAAAgAAAAAAAgABAAAAAgACAAAAAjhCSU1ub3Jt/wAYAAAAANwAAAAAAAAAKAAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8OPC9MYXllciBncm91cD4AOEJJTWx1bmkAAAAgAAAADgA8AC8ATABhAHkAZQByACAAZwByAG8AdQBwAD44QklNbG5zcgAAAARsc2V0OEJJTWx5aWQAAAAEAAAA0ThCSU1sc2N0AAAABAAAAAM4QklNbHNwZgAAAAQAAAAAOEJJTWxjbHIAAAAIAAAAAAAAAAA4QklNZnhycAAAABAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAUAAAAPAAAAFgAE//8AAAB5AAAAAAAeAAEAAAAeAAIAAAAeOEJJTW5vcm3/AAgAAAAkfAAAAAAAAAAoAAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wNNUEc4QklNVHlTaAAAI5QAAT/VkO5o4EwaAAAAAAAAAAAAAAAAAAAAAD/VkO5o4EwaQCoFGcBUTzZAJmVXak41IAAyAAAAEAAAAAEAAAAAAABUeExyAAAABgAAAABUeHQgVEVYVAAAAAQATQBQAEcAAAAAAAx0ZXh0R3JpZGRpbmdlbnVtAAAADHRleHRHcmlkZGluZwAAAABOb25lAAAAAE9ybnRlbnVtAAAAAE9ybnQAAAAASHJ6bgAAAABBbnRBZW51bQAAAABBbm50AAAADmFudGlBbGlhc1NoYXJwAAAACVRleHRJbmRleGxvbmcAAAAgAAAACkVuZ2luZURhdGF0ZHRhAAAhyQoKPDwKCS9FbmdpbmVEaWN0Cgk8PAoJCS9FZGl0b3IKCQk8PAoJCQkvVGV4dCAo/v8ATQBQAEcADSkKCQk+PgoJCS9QYXJhZ3JhcGhSdW4KCQk8PAoJCQkvRGVmYXVsdFJ1bkRhdGEKCQkJPDwKCQkJCS9QYXJhZ3JhcGhTaGVldAoJCQkJPDwKCQkJCQkvRGVmYXVsdFN0eWxlU2hlZXQgMAoJCQkJCS9Qcm9wZXJ0aWVzCgkJCQkJPDwKCQkJCQk+PgoJCQkJPj4KCQkJCS9BZGp1c3RtZW50cwoJCQkJPDwKCQkJCQkvQXhpcyBbIDEuMCAwLjAgMS4wIF0KCQkJCQkvWFkgWyAwLjAgMC4wIF0KCQkJCT4+CgkJCT4+CgkJCS9SdW5BcnJheSBbCgkJCTw8CgkJCQkvUGFyYWdyYXBoU2hlZXQKCQkJCTw8CgkJCQkJL0RlZmF1bHRTdHlsZVNoZWV0IDAKCQkJCQkvUHJvcGVydGllcwoJCQkJCTw8CgkJCQkJCS9KdXN0aWZpY2F0aW9uIDIKCQkJCQkJL0ZpcnN0TGluZUluZGVudCAwLjAKCQkJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJCQkvRW5kSW5kZW50IDAuMAoJCQkJCQkvU3BhY2VCZWZvcmUgMC4wCgkJCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJCQkvQXV0b0h5cGhlbmF0ZSB0cnVlCgkJCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgOAoJCQkJCQkvUHJlSHlwaGVuIDMKCQkJCQkJL1Bvc3RIeXBoZW4gMwoJCQkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDIKCQkJCQkJL1pvbmUgMzYuMAoJCQkJCQkvV29yZFNwYWNpbmcgWyAwLjggMS4wIDEuMzMgXQoJCQkJCQkvTGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJCQkvQnVyYXNhZ2FyaSBmYWxzZQoJCQkJCQkvS2luc29rdU9yZGVyIDAKCQkJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCQkJPj4KCQkJCT4+CgkJCQkvQWRqdXN0bWVudHMKCQkJCTw8CgkJCQkJL0F4aXMgWyAxLjAgMC4wIDEuMCBdCgkJCQkJL1hZIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQk+PgoJCQldCgkJCS9SdW5MZW5ndGhBcnJheSBbIDQgXQoJCQkvSXNKb2luYWJsZSAxCgkJPj4KCQkvU3R5bGVSdW4KCQk8PAoJCQkvRGVmYXVsdFJ1bkRhdGEKCQkJPDwKCQkJCS9TdHlsZVNoZWV0CgkJCQk8PAoJCQkJCS9TdHlsZVNoZWV0RGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJCS9SdW5BcnJheSBbCgkJCTw8CgkJCQkvU3R5bGVTaGVldAoJCQkJPDwKCQkJCQkvU3R5bGVTaGVldERhdGEKCQkJCQk8PAoJCQkJCQkvRm9udCAwCgkJCQkJCS9Gb250U2l6ZSAyMC43NzMzMQoJCQkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCQkJL0F1dG9MZWFkaW5nIGZhbHNlCgkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJCQkvVHJhY2tpbmcgMjAKCQkJCQkJL0F1dG9LZXJuaW5nIHRydWUKCQkJCQkJL0tlcm5pbmcgMAoJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkvRm9udENhcHMgMAoJCQkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCQkJL1VuZGVybGluZSBmYWxzZQoJCQkJCQkvU3RyaWtldGhyb3VnaCBmYWxzZQoJCQkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCQkJL0RMaWdhdHVyZXMgZmFsc2UKCQkJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDEKCQkJCQkJL1RzdW1lIDAuMAoJCQkJCQkvU3R5bGVSdW5BbGlnbm1lbnQgMgoJCQkJCQkvTGFuZ3VhZ2UgMAoJCQkJCQkvTm9CcmVhayBmYWxzZQoJCQkJCQkvRmlsbENvbG9yCgkJCQkJCTw8CgkJCQkJCQkvVHlwZSAxCgkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJPj4KCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCTw8CgkJCQkJCQkvVHlwZSAxCgkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJPj4KCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJL0ZpbGxGaXJzdCBmYWxzZQoJCQkJCQkvWVVuZGVybGluZSAxCgkJCQkJCS9PdXRsaW5lV2lkdGggMC4wNDE2NwoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCQldCgkJCS9SdW5MZW5ndGhBcnJheSBbIDQgXQoJCQkvSXNKb2luYWJsZSAyCgkJPj4KCQkvR3JpZEluZm8KCQk8PAoJCQkvR3JpZElzT24gZmFsc2UKCQkJL1Nob3dHcmlkIGZhbHNlCgkJCS9HcmlkU2l6ZSAxOC4wCgkJCS9HcmlkTGVhZGluZyAyMi4wCgkJCS9HcmlkQ29sb3IKCQkJPDwKCQkJCS9UeXBlIDEKCQkJCS9WYWx1ZXMgWyAwLjAgMC4wIDAuMCAxLjAgXQoJCQk+PgoJCQkvR3JpZExlYWRpbmdGaWxsQ29sb3IKCQkJPDwKCQkJCS9UeXBlIDEKCQkJCS9WYWx1ZXMgWyAwLjAgMC4wIDAuMCAxLjAgXQoJCQk+PgoJCQkvQWxpZ25MaW5lSGVpZ2h0VG9HcmlkRmxhZ3MgZmFsc2UKCQk+PgoJCS9BbnRpQWxp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CQkvUG9zdEh5cGhlbiAyCgkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDgKCQkJCS9ab25lIDM2LjAKCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkvTGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkvS2luc29rdU9yZGVyIDAKCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQk+PgoJCT4+CgkJXQoJCS9TdHlsZVNoZWV0U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8AUgBHAEIAIAAtACAATgBvAHIAbQBhAGwpCgkJCS9TdHlsZVNoZWV0RGF0YQoJCQk8PAoJCQkJL0ZvbnQgMQoJCQkJL0ZvbnRTaXplIDEyLjAKCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCS9BdXRvTGVhZGluZyB0cnVlCgkJCQkvTGVhZGluZyAwLjAKCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCS9UcmFja2luZyAwCgkJCQkvQXV0b0tlcm5pbmcgdHJ1ZQoJCQkJL0tlcm5pbmcgMAoJCQkJL0Jhc2VsaW5lU2hpZnQgMC4wCgkJCQkvRm9udENhcHMgMAoJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkvVW5kZXJsaW5lIGZhbHNlCgkJCQkvU3RyaWtldGhyb3VnaCBmYWxzZQoJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkvRExpZ2F0dXJlcyBmYWxzZQoJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDIKCQkJCS9Uc3VtZSAwLjAKCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkvTGFuZ3VhZ2UgMAoJCQkJL05vQnJlYWsgZmFsc2UKCQkJCS9GaWxsQ29sb3IKCQkJCTw8CgkJCQkJL1R5cGUgMQoJCQkJCS9WYWx1ZXMg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SW5kZW50IDAuMAoJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJL1NwYWNlQWZ0ZXIgMC4wCgkJCQkvQXV0b0h5cGhlbmF0ZSB0cnVlCgkJCQkvSHlwaGVuYXRlZFdvcmRTaXplIDYKCQkJCS9QcmVIeXBoZW4gMgoJCQkJL1Bvc3RIeXBoZW4gMgoJCQkJL0NvbnNlY3V0aXZlSHlwaGVucyA4CgkJCQkvWm9uZSAzNi4wCgkJCQkvV29yZFNwYWNpbmcgWyAwLjggMS4wIDEuMzMgXQoJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJL0xlYWRpbmdUeXBlIDAKCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkvQnVyYXNhZ2FyaSBmYWxzZQoJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJPj4KCQk+PgoJCV0KCQkvU3R5bGVTaGVldFNldCBbCgkJPDwKCQkJL05hbWUgKP7/AFIARwBCACAALQAgAE4AbwByAG0AYQBsKQoJCQkvU3R5bGVTaGVldERhdGEKCQkJPDwKCQkJCS9Gb250IDEKCQkJCS9Gb250U2l6ZSAxMi4wCgkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkvQXV0b0xlYWRpbmcgdHJ1ZQoJCQkJL0xlYWRpbmcgMC4wCgkJCQkvSG9yaXpvbnRhbFNjYWxlIDEuMAoJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkvVHJhY2tpbmcgMAoJCQkJL0F1dG9LZXJuaW5nIHRydWUKCQkJCS9LZXJuaW5nIDAKCQkJCS9CYXNlbGluZVNoaWZ0IDAuMAoJCQkJL0ZvbnRDYXBzIDAKCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJL1VuZGVybGluZSBmYWxzZQoJCQkJL1N0cmlrZXRocm91Z2ggZmFsc2UKCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJL0RMaWdhdHVyZXMgZmFsc2UKCQkJCS9CYXNlbGluZURpcmVjdGlvbiAyCgkJ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CgkJCQkJL1hZIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQk+PgoJCQkvUnVuQXJyYXkgWwoJCQk8PAoJCQkJL1BhcmFncmFwaFNoZWV0CgkJCQk8PAoJCQkJCS9EZWZhdWx0U3R5bGVTaGVldCAwCgkJCQkJL1Byb3BlcnRpZXMKCQkJCQk8PAoJCQkJCQkvSnVzdGlmaWNhdGlvbiAyCgkJCQkJCS9GaXJzdExpbmVJbmRlbnQgMC4wCgkJCQkJCS9TdGFydEluZGVudCAwLjAKCQkJCQkJL0VuZEluZGVudCAwLjAKCQkJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJCQkvU3BhY2VBZnRlciAwLjAKCQkJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJCQkvSHlwaGVuYXRlZFdvcmRTaXplIDgKCQkJCQkJL1ByZUh5cGhlbiAzCgkJCQkJCS9Qb3N0SHlwaGVuIDMKCQkJCQkJL0NvbnNlY3V0aXZlSHlwaGVucyAyCgkJCQkJCS9ab25lIDM2LjAKCQkJCQkJL1dvcmRTcGFjaW5nIFsgMC44IDEuMCAxLjMzIF0KCQkJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCQkJL0xlYWRpbmdUeXBlIDAKCQkJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCQkJL0J1cmFzYWdhcmkgZmFsc2UKCQkJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQkJCT4+CgkJCQk+PgoJCQkJL0FkanVzdG1lbnRzCgkJCQk8PAoJCQkJCS9BeGlzIFsgMS4wIDAuMCAxLjAgXQoJCQkJCS9YWSBbIDAuMCAwLjAgXQoJCQkJPj4KCQkJPj4KCQkJXQoJCQkvUnVuTGVuZ3RoQXJyYXkgWyA1IF0KCQkJL0lzSm9pbmFibGUgMQoJCT4+CgkJL1N0eWxlUnVuCgkJPDwKCQkJL0RlZmF1bHRSdW5EYXRhCgkJCTw8CgkJCQkvU3R5bGVTaGVldAoJCQkJPDwKCQkJCQkvU3R5bGVTaGVldERhdGEKCQkJCQk8PAoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCQkvUnVuQXJyYXkgWwoJCQk8PAoJCQkJL1N0eWxlU2hlZXQKCQkJCTw8CgkJCQkJL1N0eWxlU2hlZXREYXRhCgkJCQkJPDwKCQkJCQkJL0ZvbnQgMAoJCQkJCQkvRm9udFNpemUgMjAuNzczMzEKCQkJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkJCS9BdXRvTGVhZGluZyBmYWxzZQoJCQkJCQkvTGVhZGluZyAzOS44NjE5OAoJCQkJCQkvSG9yaXpvbnRhbFNjYWxlIDEuMAoJCQkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCQkJL1RyYWNraW5nIDIwCgkJCQkJCS9BdXRvS2VybmluZyB0cnVlCgkJCQkJCS9LZXJuaW5nIDAKCQkJCQkJL0Jhc2VsaW5lU2hpZnQgLTguODg2NjIKCQkJCQkJL0ZvbnRDYXBzIDAKCQkJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkJCS9VbmRlcmxpbmUgZmFsc2UKCQkJCQkJL1N0cmlrZXRocm91Z2ggZmFsc2UKCQkJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkJCS9ETGlnYXR1cmVzIGZhbHNlCgkJCQkJCS9CYXNlbGluZURpcmVjdGlvbiAxCgkJCQkJCS9Uc3VtZSAwLjAKCQkJCQkJL1N0eWxlUnVuQWxpZ25tZW50IDIKCQkJCQkJL0xhbmd1YWdlIDAKCQkJCQkJL05vQnJlYWsgZmFsc2UKCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQk8PAoJCQkJCQkJL1R5cGUgMQoJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCT4+CgkJCQkJCS9TdHJva2VDb2xvcgoJCQkJCQk8PAoJCQkJCQkJL1R5cGUgMQoJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCT4+CgkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkJCS9GaWxsRmlyc3QgZmFsc2UKCQkJCQkJL1lVbmRlcmxpbmUgMQoJCQkJCQkvT3V0bGluZVdpZHRoIDAuMDQxNjcKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQkJXQoJCQkvUnVuTGVuZ3RoQXJyYXkgWyA1IF0KCQkJL0lzSm9pbmFibGUgMgoJCT4+CgkJL0dyaWRJbmZvCgkJPDwKCQkJL0dyaWRJc09uIGZhbHNlCgkJCS9TaG93R3JpZCBmYWxzZQoJCQkvR3JpZFNpemUgMTguMAoJCQkvR3JpZExlYWRpbmcgMjIuMAoJCQkvR3JpZENvbG9yCgkJCTw8CgkJCQkvVHlwZSAxCgkJCQkvVmFsdWVzIFsgMC4wIDAuMCAwLjAgMS4wIF0KCQkJPj4KCQkJL0dyaWRMZWFkaW5nRmlsbENvbG9yCgkJCTw8CgkJCQkvVHlwZSAxCgkJCQkvVmFsdWVzIFsgMC4wIDAuMCAwLjAgMS4wIF0KCQkJPj4KCQkJL0FsaWduTGluZUhlaWdodFRvR3JpZEZsYWdzIGZhbHNlCgkJPj4KCQkvQW50aUFsaWFzIDQKCQkvVXNlRnJhY3Rpb25hbEdseXBoV2lkdGhzIHRydWUKCQkvUmVuZGVyZWQKCQk8PAoJCQkvVmVyc2lvbiAxCgkJCS9TaGFwZXMKCQkJPDwKCQkJCS9Xcml0aW5nRGlyZWN0aW9uIDAKCQkJCS9DaGlsZHJlbiBbCgkJCQk8PAoJCQkJCS9TaGFwZVR5cGUgMAoJCQkJCS9Qcm9jZXNzaW9uIDAKCQkJCQkvTGluZXMKCQkJCQk8PAoJCQkJCQkvV3JpdGluZ0RpcmVjdGlvbiAwCgkJCQkJCS9DaGlsZHJlbiBbIF0KCQkJCQk+PgoJCQkJCS9Db29raWUKCQkJCQk8PAoJCQkJCQkvUGhvdG9zaG9wCgkJCQkJCTw8CgkJCQkJCQkvU2hhcGVUeXBlIDAKCQkJCQkJCS9Qb2ludEJhc2UgWyAwLjAgMC4wIF0KCQkJCQkJCS9CYXNlCgkJCQkJCQk8PAoJCQkJCQkJCS9TaGFwZVR5cGUgMAoJCQkJCQkJCS9UcmFuc2Zvcm1Qb2ludDAgWyAxLjAgMC4wIF0KCQkJCQkJCQkvVHJhbnNmb3JtUG9pbnQxIFsgMC4wIDEuMCBdCgkJCQkJCQkJL1RyYW5zZm9ybVBvaW50MiBbIDAuMCAwLjAg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ZyBbIDEuMCAxLjAgMS4wIF0KCQkJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJCQkvQnVyYXNhZ2FyaSBmYWxzZQoJCQkJCQkvS2luc29rdU9yZGVyIDAKCQkJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCQkJPj4KCQkJCT4+CgkJCQkvQWRqdXN0bWVudHMKCQkJCTw8CgkJCQkJL0F4aXMgWyAxLjAgMC4wIDEuMCBdCgkJCQkJL1hZIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQk+PgoJCQldCgkJCS9SdW5MZW5ndGhBcnJheSBbIDQgXQoJCQkvSXNKb2luYWJsZSAxCgkJPj4KCQkvU3R5bGVSdW4KCQk8PAoJCQkvRGVmYXVsdFJ1bkRhdGEKCQkJPDwKCQkJCS9TdHlsZVNoZWV0CgkJCQk8PAoJCQkJCS9TdHlsZVNoZWV0RGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJCS9SdW5BcnJheSBbCgkJCTw8CgkJCQkvU3R5bGVTaGVldAoJCQkJPDwKCQkJCQkvU3R5bGVTaGVldERhdGEKCQkJCQk8PAoJCQkJCQkvRm9udCAwCgkJCQkJCS9Gb250U2l6ZSAyMC43NzMzMQoJCQkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCQkJL0F1dG9MZWFkaW5nIGZhbHNlCgkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJCQkvVHJhY2tpbmcgMjAKCQkJCQkJL0F1dG9LZXJuaW5nIHRydWUKCQkJCQkJL0tlcm5pbmcgMAoJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkvRm9udENhcHMgMAoJCQkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCQkJL1VuZGVybGluZSBmYWxzZQoJCQkJCQkvU3RyaWtldGhyb3VnaCBmYWxzZQoJCQkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCQkJL0RMaWdhdHVyZXMgZmFsc2UKCQkJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDEKCQkJCQkJL1RzdW1lIDAuMAoJCQkJCQkvU3R5bGVSdW5BbGlnbm1lbnQgMgoJCQkJCQkvTGFuZ3VhZ2UgMAoJCQkJCQkvTm9CcmVhayBmYWxzZQoJCQkJCQkvRmlsbENvbG9yCgkJCQkJCTw8CgkJCQkJCQkvVHlwZSAxCgkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJPj4KCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCTw8CgkJCQkJCQkvVHlwZSAxCgkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJPj4KCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJL0ZpbGxGaXJzdCBmYWxzZQoJCQkJCQkvWVVuZGVybGluZSAxCgkJCQkJCS9PdXRsaW5lV2lkdGggMC4wNDE2NwoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCQldCgkJCS9SdW5MZW5ndGhBcnJheSBbIDQgXQoJCQkvSXNKb2luYWJsZSAyCgkJPj4KCQkvR3JpZEluZm8KCQk8PAoJCQkvR3JpZElzT24gZmFsc2UKCQkJL1Nob3dHcmlkIGZhbHNlCgkJCS9HcmlkU2l6ZSAxOC4wCgkJCS9HcmlkTGVhZGluZyAyMi4wCgkJCS9HcmlkQ29sb3IKCQkJPDwKCQkJCS9UeXBlIDEKCQkJCS9WYWx1ZXMgWyAwLjAgMC4wIDAuMCAxLjAgXQoJCQk+PgoJCQkvR3JpZExlYWRpbmdGaWxsQ29sb3IKCQkJPDwKCQkJCS9UeXBlIDEKCQkJCS9WYWx1ZXMgWyAwLjAgMC4wIDAuMCAxLjAgXQoJCQk+PgoJCQkvQWxpZ25MaW5lSGVpZ2h0VG9HcmlkRmxhZ3MgZmFsc2UKCQk+PgoJCS9BbnRpQWxpYXMgNAoJCS9Vc2VGcmFjdGlvbmFsR2x5cGhXaWR0aHMgdHJ1ZQoJCS9SZW5kZXJlZAoJCTw8CgkJCS9WZXJzaW9uIDEKCQkJL1NoYXBlcwoJCQk8PAoJCQkJL1dyaXRp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TGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkvS2luc29rdU9yZGVyIDAKCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQk+PgoJCT4+CgkJXQoJCS9TdHlsZVNoZWV0U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8AUgBHAEIAIAAtACAATgBvAHIAbQBhAGwpCgkJCS9TdHlsZVNoZWV0RGF0YQoJCQk8PAoJCQkJL0ZvbnQgMQoJCQkJL0ZvbnRTaXplIDEyLjAKCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCS9BdXRvTGVhZGluZyB0cnVlCgkJCQkvTGVhZGluZyAwLjAKCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCS9UcmFja2luZyAwCgkJCQkvQXV0b0tlcm5pbmcgdHJ1ZQoJCQkJL0tlcm5pbmcgMAoJCQkJL0Jhc2VsaW5lU2hpZnQgMC4wCgkJCQkvRm9udENhcHMgMAoJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkvVW5kZXJsaW5lIGZhbHNlCgkJCQkvU3RyaWtldGhyb3VnaCBmYWxzZQoJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkvRExpZ2F0dXJlcyBmYWxzZQoJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDIKCQkJCS9Uc3VtZSAwLjAKCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkvTGFuZ3VhZ2UgMAoJCQkJL05vQnJlYWsgZmFsc2UKCQkJCS9GaWxsQ29sb3IKCQkJCTw8CgkJCQkJL1R5cGUgMQoJCQkJCS9WYWx1ZXMgWyAxLjAgMC4wIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9TdHJva2VDb2xvcgoJCQkJPDwKCQkJCQkvVHlwZSAxCgkJCQkJL1ZhbHVlcyBbIDEuMCAwLjAgMC4wIDAuMCBd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aXplIDYKCQkJCS9QcmVIeXBoZW4gMgoJCQkJL1Bvc3RIeXBoZW4gMgoJCQkJL0NvbnNlY3V0aXZlSHlwaGVucyA4CgkJCQkvWm9uZSAzNi4wCgkJCQkvV29yZFNwYWNpbmcgWyAwLjggMS4wIDEuMzMgXQoJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJL0xlYWRpbmdUeXBlIDAKCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkvQnVyYXNhZ2FyaSBmYWxzZQoJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJPj4KCQk+PgoJCV0KCQkvU3R5bGVTaGVldFNldCBbCgkJPDwKCQkJL05hbWUgKP7/AFIARwBCACAALQAgAE4AbwByAG0AYQBsKQoJCQkvU3R5bGVTaGVldERhdGEKCQkJPDwKCQkJCS9Gb250IDEKCQkJCS9Gb250U2l6ZSAxMi4wCgkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkvQXV0b0xlYWRpbmcgdHJ1ZQoJCQkJL0xlYWRpbmcgMC4wCgkJCQkvSG9yaXpvbnRhbFNjYWxlIDEuMAoJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkvVHJhY2tpbmcgMAoJCQkJL0F1dG9LZXJuaW5nIHRydWUKCQkJCS9LZXJuaW5nIDAKCQkJCS9CYXNlbGluZVNoaWZ0IDAuMAoJCQkJL0ZvbnRDYXBzIDAKCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJL1VuZGVybGluZSBmYWxzZQoJCQkJL1N0cmlrZXRocm91Z2ggZmFsc2UKCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJL0RMaWdhdHVyZXMgZmFsc2UKCQkJCS9CYXNlbGluZURpcmVjdGlvbiAyCgkJCQkvVHN1bWUgMC4wCgkJCQkvU3R5bGVSdW5BbGlnbm1lbnQgMgoJCQkJL0xhbmd1YWdlIDAKCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkvRmlsbENvbG9yCgkJCQk8PAoJ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ZXQgMAoJCQkJCS9Qcm9wZXJ0aWVzCgkJCQkJPDwKCQkJCQkJL0p1c3RpZmljYXRpb24gMgoJCQkJCQkvRmlyc3RMaW5lSW5kZW50IDAuMAoJCQkJCQkvU3RhcnRJbmRlbnQgMC4wCgkJCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkJCS9TcGFjZUJlZm9yZSAwLjAKCQkJCQkJL1NwYWNlQWZ0ZXIgMC4wCgkJCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCQkJL0h5cGhlbmF0ZWRXb3JkU2l6ZSA4CgkJCQkJCS9QcmVIeXBoZW4gMwoJCQkJCQkvUG9zdEh5cGhlbiAzCgkJCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgMgoJCQkJCQkvWm9uZSAzNi4wCgkJCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCS9CdXJhc2FnYXJpIGZhbHNlCgkJCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJCQk+PgoJCQkJPj4KCQkJCS9BZGp1c3RtZW50cwoJCQkJPDwKCQkJCQkvQXhpcyBbIDEuMCAwLjAgMS4wIF0KCQkJCQkvWFkgWyAwLjAgMC4wIF0KCQkJCT4+CgkJCT4+CgkJCV0KCQkJL1J1bkxlbmd0aEFycmF5IFsgNCBdCgkJCS9Jc0pvaW5hYmxlIDEKCQk+PgoJCS9TdHlsZVJ1bgoJCTw8CgkJCS9EZWZhdWx0UnVuRGF0YQoJCQk8PAoJCQkJL1N0eWxlU2hlZXQKCQkJCTw8CgkJCQkJL1N0eWxlU2hlZXREYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQkJL1J1bkFycmF5IFsKCQkJPDwKCQkJCS9TdHlsZVNoZWV0CgkJCQk8PAoJCQkJCS9TdHlsZVNoZWV0RGF0YQoJCQkJCTw8CgkJCQkJCS9Gb250IDAKCQkJCQkJL0ZvbnRTaXplIDIwLjc3MzMxCgkJCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkvQXV0b0xlYWRpbmcgZmFsc2UKCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkJCS9UcmFja2luZyAyMAoJCQkJCQkvQXV0b0tlcm5pbmcgdHJ1ZQoJCQkJCQkvS2VybmluZyAwCgkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJCQkvVW5kZXJsaW5lIGZhbHNlCgkJCQkJCS9TdHJpa2V0aHJvdWdoIGZhbHNlCgkJCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJCQkvRExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMQoJCQkJCQkvVHN1bWUgMC4wCgkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCS9MYW5ndWFnZSAwCgkJCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJPDwKCQkJCQkJCS9UeXBlIDEKCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQk+PgoJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJPDwKCQkJCQkJCS9UeXBlIDEKCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQk+PgoJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCS9ZVW5kZXJsaW5lIDEKCQkJCQkJL091dGxpbmVXaWR0aCAwLjA0MTY3CgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJCV0KCQkJL1J1bkxlbmd0aEFycmF5IFsgNCBdCgkJCS9Jc0pvaW5hYmxlIDIKCQk+PgoJCS9HcmlkSW5mbwoJCTw8CgkJCS9HcmlkSXNPbiBmYWxzZQoJCQkvU2hvd0dyaWQgZmFsc2UKCQkJL0dyaWRTaXplIDE4LjAKCQkJL0dyaWRMZWFkaW5nIDIyLjAKCQkJL0dyaWRDb2xvcgoJCQk8PAoJCQkJL1R5cGUgMQoJCQkJL1ZhbHVlcyBbIDAuMCAwLjAgMC4wIDEuMCBdCgkJCT4+CgkJCS9HcmlkTGVhZGluZ0ZpbGxDb2xvcgoJCQk8PAoJCQkJL1R5cGUgMQoJCQkJL1ZhbHVlcyBbIDAuMCAwLjAgMC4wIDEuMCBdCgkJCT4+CgkJCS9BbGlnbkxpbmVIZWlnaHRUb0dyaWRGbGFncyBmYWxzZQoJCT4+CgkJL0FudGlBbGlhcyA0CgkJL1VzZUZyYWN0aW9uYWxHbHlwaFdpZHRocyB0cnVlCgkJL1JlbmRlcmVkCgkJPDwKCQkJL1ZlcnNpb24gMQoJCQkvU2hhcGVzCgkJCTw8CgkJCQkvV3JpdGluZ0RpcmVjdGlvbiAwCgkJCQkvQ2hpbGRyZW4gWwoJCQkJPDwKCQkJCQkvU2hhcGVUeXBlIDAKCQkJCQkvUHJvY2Vzc2lvbiAwCgkJCQkJL0xpbmVzCgkJCQkJPDwKCQkJCQkJL1dyaXRpbmdEaXJlY3Rpb24gMAoJCQkJCQkvQ2hpbGRyZW4gWyBdCgkJCQkJPj4KCQkJCQkvQ29va2llCgkJCQkJPDwKCQkJCQkJL1Bob3Rvc2hvcAoJCQkJCQk8PAoJCQkJCQkJL1NoYXBlVHlwZSAwCgkJCQkJCQkvUG9pbnRCYXNlIFsgMC4wIDAuMCBdCgkJCQkJCQkvQmFzZQoJCQkJCQkJPDwKCQkJCQkJCQkvU2hhcGVUeXBlIDAKCQkJCQkJCQkvVHJhbnNmb3JtUG9pbnQwIFsgMS4wIDAuMCBdCgkJCQkJCQkJL1RyYW5zZm9ybVBvaW50MSBbIDAuMCAxLjAgXQoJCQkJCQkJCS9UcmFuc2Zvcm1Qb2ludDIgWyAwLjAgMC4wIF0KCQkJCQkJCT4+CgkJCQkJCT4+CgkJCQkJPj4KCQkJCT4+CgkJCQldCgkJCT4+CgkJPj4KCT4+CgkvUmVzb3VyY2VEaWN0Cgk8PAoJCS9LaW5zb2t1U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8AUABoAG8AdABvAHMAaABvAHAASwBpAG4AcwBvAGsAdQBIAGEAcgBkKQoJCQkvTm9TdGFydCAo/v8wATAC/wz/DjD7/xr/G/8f/wEw/CAVIBkgHf8JMBX/Pf9dMAkwCzANMA8wETD9MP4wnTCeMAUwQTBDMEUwRzBJMGMwgzCFMIcwjjChMKMwpTCnMKkwwzDjMOUw5zDuMPUw9jCbMJwAPwAhAFwpAF0AfQAsAC4AOgA7IQMhCQCi/wUgMCkKCQkJL05vRW5kICj+/yAYIBz/CDAU/zv/WzAIMAowDDAOMBAAXCgAWwB7/+X/BACj/yAApzAS/wMpCgkJCS9LZWVwICj+/yAVICUpCgkJCS9IYW5naW5nICj+/zABMAIALgAsKQoJCT4+CgkJPDwKCQkJL05hbWUgKP7/AFAAaABvAHQAbwBzAGgAbwBwAEsAaQBuAHMAbwBrAHUAUwBvAGYAdCkKCQkJL05vU3RhcnQgKP7/MAEwAv8M/w4w+/8a/xv/H/8BIBkgHf8JMBX/Pf9dMAkwCzANMA8wETD9MP4wnTCeMAUpCgkJCS9Ob0VuZCAo/v8gGCAc/wgwFP87/1swCDAKMAwwDjAQKQoJCQkvS2VlcCAo/v8gFSAlKQoJCQkvSGFuZ2luZyAo/v8wATACAC4ALCkKCQk+PgoJCV0KCQkvTW9qaUt1bWlTZXQgWwoJCTw8CgkJCS9JbnRlcm5hbE5hbWUgKP7/AFAAaABvAHQAbwBzAGgAbwBwADYATQBvAGoAaQBLAHUAbQBpAFMAZQB0ADEpCgkJPj4KCQk8PAoJCQkvSW50ZXJuYWxOYW1lICj+/wBQAGgAbwB0AG8AcwBoAG8AcAA2AE0AbwBqAGkASwB1AG0AaQBTAGUAdAAyKQoJCT4+CgkJPDwKCQkJL0ludGVybmFsTmFtZSAo/v8AUABoAG8AdABvAHMAaABvAHAANgBNAG8AagBpAEsAdQBtAGkAUwBlAHQAMykKCQk+PgoJCTw8CgkJCS9JbnRlcm5hbE5hbWUgKP7/AFAAaABvAHQAbwBzAGgAbwBwADYATQBvAGoAaQBLAHUAbQBpAFMAZQB0ADQpCgkJPj4KCQldCgkJL1RoZU5vcm1hbFN0eWxlU2hlZXQgMAoJCS9UaGVOb3JtYWxQYXJhZ3JhcGhTaGVldCAwCgkJL1BhcmFncmFwaFNoZWV0U2V0IFsKCQk8PAoJCQkvTmFtZSAo/v8AUgBHAEIAIAAtACAATgBvAHIAbQBhAGwpCgkJCS9EZWZhdWx0U3R5bGVTaGVldCAwCgkJCS9Qcm9wZXJ0aWVzCgkJCTw8CgkJCQkvSnVzdGlmaWNhdGlvbiAwCgkJCQkvRmlyc3RMaW5lSW5kZW50IDAuMAoJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJL0VuZEluZGVudCAwLjAKCQkJCS9TcGFjZUJlZm9yZSAwLjAKCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJL0h5cGhlbmF0ZWRXb3JkU2l6ZSA2CgkJCQkvUHJlSHlwaGVuIDIKCQkJCS9Qb3N0SHlwaGVuIDIKCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgOAoJCQkJL1pvbmUgMzYuMAoJCQkJL1dvcmRTcGFjaW5nIFsgMC44IDEuMCAxLjMzIF0KCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJL0J1cmFzYWdhcmkgZmFsc2UKCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCT4+CgkJPj4KCQldCgkJL1N0eWxlU2hlZXRTZXQgWwoJCTw8CgkJCS9OYW1lICj+/wBSAEcAQgAgAC0AIABOAG8AcgBtAGEAbCkKCQkJL1N0eWxlU2hlZXREYXRhCgkJCTw8CgkJCQkvRm9udCAxCgkJCQkvRm9udFNpemUgMTIuMAoJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJL0F1dG9MZWFkaW5nIHRydWUKCQkJCS9MZWFkaW5nIDAuMAoJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJL1RyYWNraW5nIDAKCQkJCS9BdXRvS2VybmluZyB0cnVlCgkJCQkvS2Vy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AAlUZXh0SW5kZXhsb25nAAAAJAAAAApFbmdpbmVEYXRhdGR0YQAAIckKCjw8CgkvRW5naW5lRGljdAoJPDwKCQkvRWRpdG9yCgkJPDwKCQkJL1RleHQgKP7/AE0ATwBWAA0pCgkJPj4KCQkvUGFyYWdyYXBoUnVuCgkJPDwKCQkJL0RlZmF1bHRSdW5EYXRhCgkJCTw8CgkJCQkvUGFyYWdyYXBoU2hlZXQKCQkJCTw8CgkJCQkJL0RlZmF1bHRTdHlsZVNoZWV0IDAKCQkJCQkvUHJvcGVydGllcwoJCQkJCTw8CgkJCQkJPj4KCQkJCT4+CgkJCQkvQWRqdXN0bWVudHMKCQkJCTw8CgkJCQkJL0F4aXMgWyAxLjAgMC4wIDEuMCBdCgkJCQkJL1hZIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQk+PgoJCQkvUnVuQXJyYXkgWwoJCQk8PAoJCQkJL1BhcmFncmFwaFNoZWV0CgkJCQk8PAoJCQkJCS9EZWZhdWx0U3R5bGVTaGVldCAwCgkJCQkJL1Byb3BlcnRpZXMKCQkJCQk8PAoJCQkJCQkvSnVzdGlmaWNhdGlvbiAyCgkJCQkJCS9GaXJzdExpbmVJbmRlbnQgMC4wCgkJCQkJCS9TdGFydEluZGVudCAwLjAKCQkJCQkJL0VuZEluZGVudCAwLjAKCQkJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJCQkvU3BhY2VBZnRlciAwLjAKCQkJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJCQkvSHlwaGVuYXRlZFdvcmRTaXplIDgKCQkJCQkJL1ByZUh5cGhlbiAzCgkJCQkJCS9Qb3N0SHlwaGVuIDMKCQkJCQkJL0NvbnNlY3V0aXZlSHlwaGVucyAyCgkJCQkJCS9ab25lIDM2LjAKCQkJCQkJL1dvcmRTcGFjaW5nIFsgMC44IDEuMCAxLjMzIF0KCQkJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCQkJL0xlYWRpbmdUeXBlIDAKCQkJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCQkJL0J1cmFzYWdhcmkgZmFsc2UKCQkJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQkJCT4+CgkJCQk+PgoJCQkJL0FkanVzdG1lbnRzCgkJCQk8PAoJCQkJCS9BeGlzIFsgMS4wIDAuMCAxLjAgXQoJCQkJCS9YWSBbIDAuMCAwLjAgXQoJCQkJPj4KCQkJPj4KCQkJXQoJCQkvUnVuTGVuZ3RoQXJyYXkgWyA0IF0KCQkJL0lzSm9pbmFibGUgMQoJCT4+CgkJL1N0eWxlUnVuCgkJPDwKCQkJL0RlZmF1bHRSdW5EYXRhCgkJCTw8CgkJCQkvU3R5bGVTaGVldAoJCQkJPDwKCQkJCQkvU3R5bGVTaGVldERhdGEKCQkJCQk8PAoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCQkvUnVuQXJyYXkgWwoJCQk8PAoJCQkJL1N0eWxlU2hlZXQKCQkJCTw8CgkJCQkJL1N0eWxlU2hlZXREYXRhCgkJCQkJPDwKCQkJCQkJL0ZvbnQgMAoJCQkJCQkvRm9udFNpemUgMjAuNzczMzEKCQkJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkJCS9BdXRvTGVhZGluZyBmYWxzZQoJCQkJCQkvTGVhZGluZyAzOS44NjE5OAoJCQkJCQkvSG9yaXpvbnRhbFNjYWxlIDEuMAoJCQkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCQkJL1RyYWNraW5nIDIwCgkJCQkJCS9BdXRvS2VybmluZyB0cnVlCgkJCQkJCS9LZXJuaW5nIDAKCQkJCQkJL0Jhc2VsaW5lU2hpZnQgLTguODg2NjIKCQkJCQkJL0ZvbnRDYXBzIDAKCQkJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkJCS9VbmRlcmxpbmUgZmFsc2UKCQkJCQkJL1N0cmlrZXRocm91Z2ggZmFsc2UKCQkJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkJCS9ETGlnYXR1cmVzIGZhbHNlCgkJCQkJCS9CYXNlbGluZURpcmVjdGlvbiAxCgkJCQkJCS9Uc3VtZSAwLjAKCQkJCQkJL1N0eWxlUnVuQWxpZ25tZW50IDIKCQkJCQkJL0xhbmd1YWdlIDAKCQkJCQkJL05vQnJlYWsgZmFsc2UKCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQk8PAoJCQkJCQkJL1R5cGUgMQoJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCT4+CgkJCQkJCS9TdHJva2VDb2xvcgoJCQkJCQk8PAoJCQkJCQkJL1R5cGUgMQoJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCT4+CgkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkJCS9GaWxsRmlyc3QgZmFsc2UKCQkJCQkJL1lVbmRlcmxpbmUgMQoJCQkJCQkvT3V0bGluZVdpZHRoIDAuMDQxNjcKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQkJXQoJCQkvUnVuTGVuZ3RoQXJyYXkgWyA0IF0KCQkJL0lzSm9pbmFibGUgMgoJCT4+CgkJL0dyaWRJbmZvCgkJPDwKCQkJL0dyaWRJc09uIGZhbHNlCgkJCS9TaG93R3JpZCBmYWxzZQoJCQkvR3JpZFNpemUgMTguMAoJCQkvR3JpZExlYWRpbmcgMjIuMAoJCQkvR3JpZENvbG9yCgkJCTw8CgkJCQkvVHlwZSAxCgkJCQkvVmFsdWVzIFsgMC4wIDAuMCAwLjAgMS4wIF0KCQkJPj4KCQkJL0dyaWRMZWFkaW5nRmlsbENvbG9yCgkJCTw8CgkJCQkvVHlwZSAxCgkJCQkvVmFsdWVzIFsgMC4wIDAuMCAwLjAgMS4wIF0KCQkJPj4KCQkJL0FsaWduTGluZUhlaWdodFRvR3JpZEZsYWdzIGZhbHNlCgkJPj4KCQkvQW50aUFsaWFzIDQKCQkvVXNlRnJhY3Rpb25hbEdseXBoV2lkdGhzIHRydWUKCQkvUmVuZGVyZWQKCQk8PAoJCQkvVmVyc2lvbiAxCgkJCS9TaGFwZXMKCQkJPDwKCQkJCS9Xcml0aW5nRGlyZWN0aW9uIDAKCQkJCS9DaGlsZHJlbiBbCgkJCQk8PAoJCQkJCS9TaGFwZVR5cGUgMAoJCQkJCS9Qcm9jZXNzaW9uIDAKCQkJCQkvTGluZXMKCQkJCQk8PAoJCQkJCQkvV3JpdGluZ0RpcmVjdGlvbiAwCgkJCQkJCS9DaGlsZHJlbiBbIF0KCQkJCQk+PgoJCQkJCS9Db29raWUKCQkJCQk8PAoJCQkJCQkvUGhvdG9zaG9wCgkJCQkJCTw8CgkJCQkJCQkvU2hhcGVUeXBlIDAKCQkJCQkJCS9Qb2ludEJhc2UgWyAwLjAgMC4wIF0KCQkJCQkJCS9CYXNlCgkJCQkJCQk8PAoJCQkJCQkJCS9TaGFwZVR5cGUgMAoJCQkJCQkJCS9UcmFuc2Zvcm1Qb2ludDAgWyAxLjAgMC4wIF0KCQkJCQkJCQkvVHJhbnNmb3JtUG9pbnQxIFsgMC4wIDEuMCBdCgkJCQkJCQkJL1RyYW5zZm9ybVBvaW50MiBbIDAuMCAwLjAgXQoJCQkJCQkJPj4KCQkJCQkJPj4KCQkJCQk+PgoJCQkJPj4KCQkJCV0KCQkJPj4KCQk+PgoJPj4KCS9SZXNvdXJjZURpY3QKCTw8CgkJL0tpbnNva3VTZXQgWwoJCTw8CgkJCS9OYW1lICj+/wBQAGgAbwB0AG8AcwBoAG8AcABLAGkAbgBzAG8AawB1AEgAYQByAGQpCgkJCS9Ob1N0YXJ0ICj+/zABMAL/DP8OMPv/Gv8b/x//ATD8IBUgGSAd/wkwFf89/10wCTALMA0wDzARMP0w/jCdMJ4wBTBBMEMwRTBHMEkwYzCDMIUwhzCOMKEwozClMKcwqTDDMOMw5TDnMO4w9TD2MJswnAA/ACEAXCkAXQB9ACwALgA6ADshAyEJAKL/BSAwKQoJCQkvTm9FbmQgKP7/IBggHP8IMBT/O/9bMAgwCjAMMA4wEABcKABbAHv/5f8EAKP/IACnMBL/AykKCQkJL0tlZXAgKP7/IBUgJSkKCQkJL0hhbmdpbmcgKP7/MAEwAgAuACwpCgkJPj4KCQk8PAoJCQkvTmFtZSAo/v8AUABoAG8AdABvAHMAaABvAHAASwBpAG4AcwBvAGsAdQBTAG8AZgB0KQoJCQkvTm9TdGFydCAo/v8wATAC/wz/DjD7/xr/G/8f/wEgGSAd/wkwFf89/10wCTALMA0wDzARMP0w/jCdMJ4wBSkKCQkJL05vRW5kICj+/yAYIBz/CDAU/zv/WzAIMAowDDAOMBApCgkJCS9LZWVwICj+/yAVICUpCgkJCS9IYW5naW5nICj+/zABMAIALgAsKQoJCT4+CgkJXQoJCS9Nb2ppS3VtaVNldCBbCgkJPDwKCQkJL0ludGVybmFsTmFtZSAo/v8AUABoAG8AdABvAHMAaABvAHAANgBNAG8AagBpAEsAdQBtAGkAUwBlAHQAMSkKCQk+PgoJCTw8CgkJCS9JbnRlcm5hbE5hbWUgKP7/AFAAaABvAHQAbwBzAGgAbwBwADYATQBvAGoAaQBLAHUAbQBpAFMAZQB0ADIpCgkJPj4KCQk8PAoJCQkvSW50ZXJuYWxOYW1lICj+/wBQAGgAbwB0AG8AcwBoAG8AcAA2AE0AbwBqAGkASwB1AG0AaQBTAGUAdAAzKQoJCT4+CgkJPDwKCQkJL0ludGVybmFsTmFtZSAo/v8AUABoAG8AdABvAHMAaABvAHAANgBNAG8AagBpAEsAdQBtAGkAUwBlAHQANCkKCQk+PgoJCV0KCQkvVGhlTm9ybWFsU3R5bGVTaGVldCAwCgkJL1RoZU5vcm1hbFBhcmFncmFwaFNoZWV0IDAKCQkvUGFyYWdyYXBoU2hlZXRTZXQgWwoJCTw8CgkJCS9OYW1lICj+/wBSAEcAQgAgAC0AIABOAG8AcgBtAGEAbCkKCQkJL0RlZmF1bHRTdHlsZVNoZWV0IDAKCQkJL1Byb3BlcnRpZXMKCQkJPDwKCQkJCS9KdXN0aWZpY2F0aW9uIDAKCQkJCS9GaXJzdExpbmVJbmRlbnQgMC4wCgkJCQkvU3RhcnRJbmRlbnQgMC4wCgkJCQkvRW5kSW5kZW50IDAuMAoJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJL1NwYWNlQWZ0ZXIgMC4wCgkJCQkvQXV0b0h5cGhlbmF0ZSB0cnVlCgkJCQkvSHlwaGVuYXRlZFdvcmRTaXplIDYKCQkJCS9QcmVIeXBoZW4gMgoJCQkJL1Bvc3RIeXBoZW4gMgoJCQkJL0NvbnNlY3V0aXZlSHlwaGVucyA4CgkJCQkvWm9uZSAzNi4wCgkJCQkvV29yZFNwYWNpbmcgWyAwLjggMS4wIDEuMzMgXQoJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJL0xlYWRpbmdUeXBlIDAKCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkvQnVyYXNhZ2FyaSBmYWxzZQoJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJPj4KCQk+PgoJCV0KCQkvU3R5bGVTaGVldFNldCBbCgkJPDwKCQkJL05hbWUgKP7/AFIARwBCACAALQAgAE4AbwByAG0AYQBsKQoJCQkvU3R5bGVTaGVldERhdGEKCQkJPDwKCQkJCS9Gb250IDEKCQkJCS9Gb250U2l6ZSAxMi4wCgkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkvQXV0b0xlYWRpbmcgdHJ1ZQoJCQkJL0xlYWRpbmcgMC4wCgkJCQkvSG9yaXpvbnRhbFNjYWxlIDEuMAoJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkvVHJhY2tpbmcgMAoJCQkJL0F1dG9LZXJuaW5nIHRydWUKCQkJCS9LZXJuaW5nIDAKCQkJCS9CYXNlbGluZVNoaWZ0IDAuMAoJCQkJL0ZvbnRDYXBzIDAKCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJL1VuZGVybGluZSBmYWxzZQoJCQkJL1N0cmlrZXRocm91Z2ggZmFsc2UKCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJL0RMaWdhdHVyZXMgZmFsc2UKCQkJCS9CYXNlbGluZURpcmVjdGlvbiAyCgkJCQkvVHN1bWUgMC4wCgkJCQkvU3R5bGVSdW5BbGlnbm1lbnQgMgoJCQkJL0xhbmd1YWdlIDAKCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkvRmlsbENvbG9yCgkJCQk8PAoJCQkJCS9UeXBlIDEKCQkJCQkvVmFsdWVzIFsgMS4wIDAuMCAwLjAgMC4wIF0KCQkJCT4+CgkJCQkvU3Ryb2tlQ29sb3IKCQkJCTw8CgkJCQkJL1R5cGUgMQoJCQkJCS9WYWx1ZXMgWyAxLjAgMC4wIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJL0ZpbGxGaXJzdCB0cnVlCgkJCQkvWVVuZGVybGluZSAxCgkJCQkvT3V0bGluZVdpZHRo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IDEuMCAxLjMzIF0KCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJL0J1cmFzYWdhcmkgZmFsc2UKCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCT4+CgkJPj4KCQldCgkJL1N0eWxlU2hlZXRTZXQgWwoJCTw8CgkJCS9OYW1lICj+/wBSAEcAQgAgAC0AIABOAG8AcgBtAGEAbCkKCQkJL1N0eWxlU2hlZXREYXRhCgkJCTw8CgkJCQkvRm9udCAxCgkJCQkvRm9udFNpemUgMTIuMAoJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJL0F1dG9MZWFkaW5nIHRydWUKCQkJCS9MZWFkaW5nIDAuMAoJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJL1RyYWNraW5nIDAKCQkJCS9BdXRvS2VybmluZyB0cnVlCgkJCQkvS2VybmluZyAwCgkJCQkvQmFzZWxpbmVTaGlmdCAwLjAKCQkJCS9Gb250Q2FwcyAwCgkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCS9VbmRlcmxpbmUgZmFsc2UKCQkJCS9TdHJpa2V0aHJvdWdoIGZhbHNlCgkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCS9ETGlnYXR1cmVzIGZhbHNlCgkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMgoJCQkJL1RzdW1lIDAuMAoJCQkJL1N0eWxlUnVuQWxpZ25tZW50IDIKCQkJCS9MYW5ndWFnZSAwCgkJCQkvTm9CcmVhayBmYWxzZQoJCQkJL0ZpbGxDb2xvcgoJCQkJPDwKCQkJCQkvVHlwZSAxCgkJCQkJL1ZhbHVlcyBbIDEuMCAwLjAgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL1N0cm9rZUNvbG9yCgkJCQk8PAoJCQkJCS9UeXBlIDEKCQkJCQkvVmFsdWVzIFsg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0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/AAEAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAALR/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f8AAQACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAtH/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/wAAGypGWnCGmKi6yNTf6fH4/f///fjx6d/UyLqomIZwWkYqGxsqRlpwhpiousjU3+nx+P3///348enf1Mi6qJiGcFpGKhsAAQACAALfAN8AAAEAAgAC3wDfAAABAAIAAt8A3wAAAAAAAAAAAAABAAQABAAEAAQABAAEAAQAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAC6//6AOr/+wDq//sA6v/7AOr/+wDq//sA5f8AAOT/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P8AAQACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAuT/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/wABAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAC5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/AAEAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAALk/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P8AAQACAAcACgALAAwACwAMAAoACQANAAkABwACAALzAAEAHv0z+QABADz9/wGlBvsA/wAAnP3/AbQJ/AD/AAES7f3/AcMP/QD+AAB+/P8BzBX+AP4AAQzw/P8D2B4AAP0AAJP7/wLhAAD9AABX+v8BBgD9AAQne5m97f7/AQ8A+QAFCV3V/w8A9wADCZMGAPMA8wAAAQACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAALzNvM28zbzNvM28zbzNvM28zbzNvM28zbzNvM2AAEAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAC8zbzNvM28zbzNvM28zbzNvM28zbzNvM28zbzNgABAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAvM28zbzNvM28zbzNvM28zbzNvM28zbzNvM28zYAAQAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAAoACQAIAAcABgAFAAQAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAusABhU0WH+nzOru/+oABhY0WH+ny+rv/+kABhU0WH+nzOrw/+gABhY0WH+nzOnx/+cABhYzWH+ny+ry/+YABhU0WH+my+rz/+UABhY0WX+ny+r0/+QABhUzWH+nzOn1/+MABhY0WICny+r2/+IABhU0WH+ny+r3/+EABhU0WICnzOr4/+AABhY0WH+ny+n5/98ABhYzWICny+r6/94ABhY0WH+nzOn7/90ABhU0WICny+r8/9wABhY0WH+nzOn9/9sABhY0WICmzOr+/9oACBY0WH+ny+n//9kABxYzWICny+n/2AAGFTRYgKfL6dcABRU0WICmzNYABBY0WYCn1QADFTRYgNQAAhU0WNMAARU00gAAFdEA0QDRANEA0QDRANEA0QDRANEA0QDRANEA0QDRANEA0QDRANEA0QDRANEAAAB+AAAAAAAA/34AAAAAAP//fgAAAAD///9+AAAA/////34AAP//////fgD///////9+AAEAAgACAAIAAgACAAIAAvr/+v/6//r/+v/6//r/AAEAAgACAAIAAgACAAIAAvr/+v/6//r/+v/6//r/AAEAAgACAAIAAgACAAIAAvr/+v/6//r/+v/6//r/AAEAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAALk/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P8AAQACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAuT/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/wABAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAC5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/AAEAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAALk/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P8AAQAEAAQABAAEAAQABAAEAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAuv/+gDq//sA6v/7AOr/+wDq//sA6v/7AOX/AADk/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/5P/k/+T/AAEAAgACAAIAAgACAAIAAgACAAIAAuz/7P/s/+z/7P/s/+z/7P/s/+z/AAEAAgACAAIAAgACAAIAAgACAAIAAuyS7JLskuyS7JLskuyS7JLskuySAAEAAgACAAIAAgACAAIAAgACAAIAAuyS7JLskuyS7JLskuyS7JLskuySAAEAAgACAAIAAgACAAIAAgACAAIAAuyS7JLskuyS7JLskuyS7JLskuySAAEAAgACAAIAAgACAAIAAgACAAIAAuz/7P/s/+z/7P/s/+z/7P/s/+z/AAEAAgACAAIAAgACAAIAAgACAAIAAuxV7FXsVexV7FXsVexV7FXsVexVAAEAAgACAAIAAgACAAIAAgACAAIAAuxt7G3sbext7G3sbext7G3sbextAAEAAgACAAIAAgACAAIAAgACAAIAAuzY7Njs2OzY7Njs2OzY7Njs2OzYAAAAAAAAAAAAAAAAAAAAAAAAESIiAAARIiIAABEiIiIA3d3dzBHd///MIpn///8i3WYA3WbddyKqu5mZIiIA3buq7iLdZgBm3Znu3XcA3YhmIgDddyKqu5mZIhEA3WYAAADd///MIpmZAAAAEQAAAAARIiIAABERAAAAAAEAAgACAAIAAgACAAIAAvL08vTy9PL08vTy9PL0AAEAAgACAAIAAgACAAIAAvL08vTy9PL08vTy9PL0AAEAAgACAAIAAgACAAIAAvL08vTy9PL08vTy9PL0AABZOyw7ZpOttba2sJlqMhIMDgYBAQEyDwcQRqXm/P//8bxhGAMCBAEBAAAJAAACIHvY+v/956NBCQEAAAAAAAACAAAAD2TK+f/74JEsBAAAAAABAAABAAABCE6/+P/74I8oAwAAAAABAAABAAAABkO28//745w2BQAAAAAAAAAAAAABAzWr8f/97rlZEQEBAAAAAAAAAAAAATCk8P7/99aOOAsBAAAAAAABAAAAAzOr8f7//fDHfTYPAwAAAAAAAAAABUe88/////vuyItQIgsDAQAAAAAADmjR/P/////88NivfU8yHxcAAAACKpnr/v///////vrr17ydhnAAAAIUYsz8///9+/v+///++/Tp4MoAAQ1IsO///vbr4+Ts9/3////+/usNHU2f4v786s6rk5apzuj4+/z9/u1ae7Hh/PbgsnVAJypCcqTEy8/a6eW/2e769dijWyEIAgMHGzxPVFhtlLTl+/33255RGAQAAAAAAgcKBwcOIVL0//zjqFUXAgAAAAAAAAAAAAEAAg3O382kWBkDAAAAAAAAAAAAAAAAAAEAAP/////////85+/+///+/f39/Pz7+v/////////y6/f6///+/f39/Pv////////////x6v79//79/f/////////////////16f3+//39//////r////////////55/T9/f39//////r////////////+5Or+/f38//////////////////7/6ev//fz7+/r////////////+/v3/6+b9/Pv6+vn///////7////9/f365uLz/Pr5+Pj4///////////8/P3u7PHk+fn4+Pj39/b1///////7+/nl9fvo6Pn59/f39vX08/////r6++3p+fn46Of09vXz8vLz8///+fn59uT1+vfz7uLi5OXn6Obp8v/4+Pj56+nz7Onq7PDv5+Lo7e/r7fj39/j04+zv8fT19fT08/Dp5ubm1vb39PDm6vb19PPz8/Ly8fHx8O/u5/Xw6erk8/Pz8vLy8fDw7+7u7u3u7+7l7+Pu8/Lx8f/////t7Ozs7Ozs7OPt5eny8PDv////////////6//r6+Xk6PDu7u3/////////////////6gAA/////////+djmfj///79/f38/Pv6/////////6h00OH///79/f38+////////////6N0/vb//v39/////////////////7lk9fj//f3/////+v///////////9lUvfb//f3/////+v////////////hFdv/9/fz///////////////////9ndf/8/Pv7+v////////////7+/f94S//9+/r6+f///////v////39/+1UNb7/+fn4+Pj///////////z8/5SLt0b3/fj4+Pf39vX///////v98U7b/3Ft//74+fr59/Tz////+vn/lnX//P1wauX87ODf6vr0///5+fzsS+H/89mzNjlLZIOEdZfz//j4+P+MeNWhiYqjzcxvSYLC3LTe+Pf6/+BApL3V7/3/+/v+2pt1dZ169v/q1mqW//z49PPz8vLx9fv48O/N/8uToFb29fPy8vLx8PDv7u7u7u7zx2fRS8f78fHx/////+3s7Ozs7OzsUb9fmv7w8O/////////////r/+vre1uc+u/u7f/////////////////qAAD/////////5FKQ9////v39/fz8+/r/////////nGHN3v///v39/fz7////////////l2H/9v/+/f3/////////////////r0/2+P/9/f/////6////////////1Ty39v/9/f/////6////////////+Ctl//79/P///////////////////1Jh//z8+/v6/////////////v79/2Uv//37+vr5///////+/////f3/7D0Yt//5+fj4+P///////////Pz/hnuuK/f9+Pj49/f29f//////+/3wNNj/Xlf///j6+vn39PP////6+f+HY//8/lxW4/7q3d3p+/T///n5/Osy3//z1q0aIDNSdHZoivP/+Pj4/31m0Zd/gJvIx103db3ard349/r/3SWbt9Hv/v/8/P/XkmVplIn2/+nVVon//fn08/Py8vH1/Prw8NH/xYOVPvb18/Ly8vHw8O/u7u7u7vLBUswywvzx8fH/////7ezs7Ozs7Ow6uUaN//Dw7////////////+v/6+tuSY/87+7t/////////////////+oAAAAAAAAAAAAAAAAAAAAAAAAAIgAAIhEiIiIRIhEAACIAIgAAACL/IiL/u////7v/zACI/2b/IgAAIv8zM/8zM/8zM//uM8zuZv8iAAAi/////yIi/yIi/8yZ7t1m/yIAACL/MzP/IiL/IiL/iO6q3Wb/MyIAIv8iIv8iIv8iIv8z7lXdZv///2YAIgAAIgAAIgAAIgARABEAIiIiAAABAAIAAgACAAIAAgACAALt9O307fTt9O307fTt9AABAAIAAgACAAIAAgACAALt9O307fTt9O307fTt9AABAAIAAgACAAIAAgACAALt9O307fTt9O307fTt9AAAACIiIgAAIgAAEQARIiIAACL/3e6ZIv8iAN1m3d3dzBEi/yIi/yL/MyLdZt1mAN1mIv+Zu8wi/////2bdu6ruIiL/d2YRIv8zIt1m3YhmIgAi/yIAACL/IgDdZt1mAAAAACIAAAAAIgAAEQARAAAAAAABAAIAAgACAAIAAgACAALx9PH08fTx9PH08fTx9AABAAIAAgACAAIAAgACAALx9PH08fTx9PH08fTx9AABAAIAAgACAAIAAgACAALx9PH08fTx9PH08fTx9AAAEREAERERIgAAEREAIgAAAHfuIruZmf9VEe7dIv8iAAAAu8zdEZnuqlXu3SL/IgAAAFX/iACZzO6q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AAAAEe7d3d0R7t3d3XfMADPdEXfMABHud8wAEe5m3d3uiAAREQAAERERAAARABFmVQAAAAEAAgACAAIAAgACAAIAAvH08fTx9PH08fTx9PH0AAEAAgACAAIAAgACAAIAAvH08fTx9PH08fTx9PH0AAEAAgACAAIAAgACAAIAAvH08fTx9PH08fTx9PH0AAAAIgAAEQAREQAREQARAAARERHuZnfuEbuIEe67ALuIAKqqAKqZqv9m7lVV3e4zd90R7lUAd8zuu6ruEbuZu3cR7ojuEQAz7t1m7rsR7t3d3QDM7qoAAADdqiL/d3fMABHuRHf/VQAAABERACIAEREAABEAACIAAAABAAIAAgACAAIAAgACAALw9PD08PTw9PD08PTw9AABAAIAAgACAAIAAgACAALw9PD08PTw9PD08PTw9AABAAIAAgACAAIAAgACAALw9PD08PTw9PD08PTw9AAAACIAABEAEREREQAAIhEAACIAAAAR7mZ37hG7iN3uEVX/mQBE/3cAAACqmar/Zu5V3e53iO6ZAIjd3QAAAHfM7ruq7hHdzLvdzJkR7nfuRAAAM+7dZu67AN137t2ZmVXu3e6qAAAA3aoi/3cA3WbMiJmZu4gAVe4RAAAREQAiAAARABEAERERAAAAIgAAAQACAAIAAgACAAIAAgAC7fTt9O307fTt9O307fQAAQACAAIAAgACAAIAAgAC7fTt9O307fTt9O307fQAAQACAAIAAgACAAIAAgAC7fTt9O307fTt9O307fQAABEiIhEREQAAAAAiAAAAEWZVAADd///dmZkAAABE/3cAEd3d7qoA3XciEZmZAAAAiN3dAHfMACKZEd3d3VWZmQAAEe537kSZmQAAAADddyIAmZkiIlXu3e6qd8wAM90R3WYAAJn///+7iABV7jPd3e6IABEAAAARIiIiEQAAACIAEWZVAAAAAQACAAIAAgACAAIAAgAC7vTu9O707vTu9O707vQAAQACAAIAAgACAAIAAgAC7vTu9O707vTu9O707vQAAQACAAIAAgACAAIAAgAC7vTu9O707vTu9O707vQAAQAEAAQADgAOAAgACAAIAAgACAANAA4ADwAPAA0ADwAPAAoACfwA9v/8APb//AAK4+7K8PD6/v38/f38AArq8srw8Pr+/fz+/fwA//v6AP/N/AD///oA/+X8AP/m+gD/9vwA/+X6AP/+/AD/9voA//b8AP/+/gAFYLj1uO/l/AD/9v8AAWD4/v8B/uAJAGC49bjv5QAAuPz/AOkBYPj+/wT+4AAA9fz/APoAuPz/A+kAALj8/wDTAPX8/wT6AABg+P7/AfmAALj8/wDT/gAFYLj1uGAAAWD4/v8B+YD4AAUAYLj1uGD3AAABAAQABAAEAAQACAAIAAgACAAIAAgACAAIAAYABgAGAAgABAAG/P/2Xfz/9l38//Zd/P/2Xfz//136//9d/P//Xfr//138//9d+v//Xfz//136//9d/P//Xfr//138//9d/v/7Xfz//13///pdAP/7Xf//+l36Xf//+l36Xf//+l36Xf//+l36Xf7//F0A//pd+P8A//xd9/8AAQAEAAQABAAEAAgACAAIAAgACAAIAAgACAAGAAYABgAIAAQABvz/9oz8//aM/P/2jPz/9oz8//+M+v//jPz//4z6//+M/P//jPr//4z8//+M+v//jPz//4z6//+M/P//jP7/+4z8//+M///6jAD/+4z///qM+oz///qM+oz///qM+oz///qM+oz+//yMAP/6jPj/AP/8jPf/AAEABAAEAAQABAAIAAgACAAIAAgACAAIAAgABgAGAAYACAAEAAb8//at/P/2rfz/9q38//at/P//rfr//638//+t+v//rfz//636//+t/P//rfr//638//+t+v//rfz//63+//ut/P//rf//+q0A//ut///6rfqt///6rfqt///6rfqt///6rfqt/v/8rQD/+q34/wD//K33/wAAAAAAAAAAAAAAAAAAAAAAAQAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAmOmoAPXp/wDn6f8A5+n/AOfp/wDn6f8A5+n/AOfp/wDn6f8A5+n/AOfp/wDn6f8A5+n/AOfp/wDn6f8A5+n/AOfp/wDn6f8A5+n/AOfp/wDn6f8A7en/AMzp4QABAAIACAAKAAsADAALAAsACAAIAAgACQAVABcAFwAIAAkACQAKAAkACgAKAAkAAuj/9/8C5Nj+9f/5/wT51aix+/X/+/8F+dqmtOT39P///wb47uzZybHM8f///wXNitztzs3w////Bfv1//G39PD//P8C5bv+8P/8/wLztfPw//z/Av7HyvD/+/8D8rrI8fL//f8L/Or/+c+5y+Pr6tz3+/8C+ez//f8N6YTM09PErJqdm3GppMn90gKylv/9/wH+9P77CP3//frw6eu2zP37Avn2//L/Ave94fr/8/8D877U/fr/9P8D6LvV/Pn/9v8E/da43P74//f/A+3Av+32//n/BPrZt9X79f/7/wT+y62+7PP/+/8D/sfB+/L/6P8AAQACAAkACgALAA0ADAALAAgACAAJAAoAFgAXABgACAAJAAoACgALAAoACwAJAALo//j/A/3e3P31//n/BOGilMD49f/7/wX+zIqVyfL0////B/ry8ee7h6nw8v///wbbqubolKP58f///wX8+P/TiODw//z/AsSP8/D//P8C0Yjg8P/8/wPzk6Dz8f/7/wTXiZvY+vP//f8M/fD/3JuIm7bL19nd8Pz/Avvx//3/De+m2+PXsqeXjYyOiZTA/d4Cx7L//f8O/vf8/P7///fs5OPdmpr6/vwC+vj/8v8C4Yy1+v/z/wPYjJvy+v/1/wT+xYee7vn/9v8E7KmDrvX4//j/Bf3Lj4zK/vf/+f8E4aaEpef1//v/Bf3RlpDM/fT/+/8D/dDE7vL/6P8AAQACAAkACgAKAAkADAAIAAgACAAJAAoADwAVAA0ACQAJAAoACgALAAsACwAJAAfo//j/A/Ta7Pv1//n/BLtWiO3z9f/6/wS9cXKi6/T/+/8DsVN81vL///8G/v3/3z9p6/H//P8Cpkm+8P/8/wKTVd/w//z/Ap1NwvD//P8D4Epk3fH/+/8ErUddsu7z//r/Ca9QSFZymrvdtdX5//z/DP3//+ujsauKjONpksD8/gH9//b/B+7W0t7JfVH3+//y/wO8SXP++//z/wOtR0bf+v/1/wT2kEFM1vn/9v8Ez2g8a+X4//j/BfaWTkeU+ff/+v8F+rdXQGHI9f/7/wX66YNRm/b0//v/A/ns2dXy//r/Afv+8f8AABEiIiIAESIiAAAAIhEAAJn///9m3d3dzBGZ3d13AJmqREQA3WYA3Wb/ZlV3AJnu3d0R3buq7iJ37u6qAJmZIiIA3YhmIlW7EVX/Ipn///9m3WYAABG73d2ZABEiIiIAEQAAAAAAIhEAAAABAAIAAgACAAIAAgACAALy9PL08vTy9PL08vTy9AABAAIAAgACAAIAAgACAALy9PL08vTy9PL08vTy9AABAAIAAgACAAIAAgACAALy9PL08vTy9PL08vTy9AAAAAAREQAAIgAAEe67ACL/IgBV3e4zIv8iALuZu3ci/yIR7t3d3SL/InfMABHuZv8iEREAABEAIgAAAQACAAIAAgACAAIAAgAC+fT59Pn0+fT59Pn0+fQAAQACAAIAAgACAAIAAgAC+fT59Pn0+fT59Pn0+fQAAQACAAIAAgACAAIAAgAC+fT59Pn0+fT59Pn0+fQAAACQ//+QsNAAkPAQwP/wUAD/gGDAYP8Q0KCg4ECw4ACw//CQEP+A/1DggDDAwCCAQJD/MLDw8ADAsCDA/wDw4NDwEGD/oABQ/9D//wAQYGAgABBAIAAAIHAwQAABAAIAAgACAAIAAgAC8vTy9PL08vTy9PL0AAEAAgACAAIAAgACAALy9PL08vTy9PL08vQAAQACAAIAAgACAAIAAvL08vTy9PL08vTy9AAAAAAAAAAAAAAAAAAAAAAAAQAEAAQABgAGAAYABgAGAAQABAAEAAQABAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAC7f/6AOz/+wD0APn/+wD0APn/+wD0APn/+wD0APn/+wD0APT/AAD0APP/9ADz//QA8//0APP/9ADz/+b/5v/m/+b/5v/m/+b/5v/m/+b/5v/m/+b/5v/m/+b/5v/m/+b/5v/m/+b/5v/m/+b/5v/m/+b/AAEABAAEAAYABgAGAAYABgAEAAQABAAEAAQAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAu2R+v/skfv/9P/5kfv/9P/5kfv/9P/5kfv/9P/5kfv/9P/0kQD/9P/zkfT/85H0//OR9P/zkfT/85HmkeaR5pHmkeaR5pHmkeaR5pHmkeaR5pHmkeaR5pHmkeaR5pHmkeaR5pHmkeaR5pHmkeaR5pHmkQABAAQABAAGAAYABgAGAAYABAAEAAQABAAEAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAALtKPr/7Cj7//T/+Sj7//T/+Sj7//T/+Sj7//T/+Sj7//T/9CgA//T/8yj0//Mo9P/zKPT/8yj0//Mo5ijmKOYo5ijmKOYo5ijmKOYo5ijmKOYo5ijmKOYo5ijmKOYo5ijmKOYo5ijmKOYo5ijmKOYo5igAAQAEAAQABgAGAAYABgAGAAQABAAEAAQABAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAC7WL6/+xi+//0//li+//0//li+//0//li+//0//li+//0//RiAP/0//Ni9P/zYvT/82L0//Ni9P/zYuZi5mLmYuZi5mLmYuZi5mLmYuZi5mLmYuZi5mLmYuZi5mLmYuZi5mLmYuZi5mLmYuZi5mLmYuZiAAAREQAiAAAiACIiIgAAESIiAACZmWb/VSL/Iv///6oA3f//zCKZmWbu3TP/Iv8zM9133XciqruZmWbdu6r/Iv8iAJmZ3WYAZt2ZmWbdM+7/Iv8zM8x33XciqruZmWbdAIj/Iv///6oA3f//zCIREQARAAAiACIiIgAAESIiAAAAAQACAAIAAgACAAIAAgAC7/Tv9O/07/Tv9O/07/QAAQACAAIAAgACAAIAAgAC7/Tv9O/07/Tv9O/07/QAAQACAAIAAgACAAIAAgAC7/Tv9O/07/Tv9O/07/QAABEAACIAACIAIgAAIgDdZmb/VSL/It2IVe4i3WZm7t0z/yJV7t13AN1mZt27qv8iAMzuEQDdZmbdM+7/ImbuzJkA3WZm3QCI/yLuZlX/VREAABEAACIAIgAAIhEAAQACAAIAAgACAAIAAgAC9PT09PT09PT09PT09PQAAQACAAIAAgACAAIAAgAC9PT09PT09PT09PT09PQAAQACAAIAAgACAAIAAgAC9PT09PT09PT09PT09PQAAQAEAAQABAAEAAQABAAEAAQAAgACAAQAAgAEAAIABAACAAQAAgACAAIAAgAEAATw//0A8P/9APD//QDw//0A8P/9APD//QDw//0A8P/9AOwA7ADy//sA7AD1//gA7AD4//UA7AD0//kA7ADsAOwA7ADtAAD/7gD//wABAAQACAAIAAgACAAIAAgABAACAAQABAAEAAYABAAGAAQABgAEAAQABAAGAAYABPAA/X8AAPKLAAD9fwAA8osAAP1/AADyiwAA/X8AAPKLAAD9fwAA8osAAP1/AADyiwAA/X/wAP1/7H/y//t/8gD7f/L/+3/1AP7/+3/y//t/+AD7//t/8v/7f/QA///7f+///n/v//5/7//+f+///38A/+//An//AO7//wAAAQAEAAgACAAIAAgACAAIAAQAAgAEAAQABAAGAAQABgAEAAYABAAEAAQABgAGAATwAP1/AADyJgAA/X8AAPImAAD9fwAA8iYAAP1/AADyJgAA/X8AAPImAAD9fwAA8iYAAP1/8AD9f+x/8v/7f/IA+3/y//t/9QD+//t/8v/7f/gA+//7f/L/+3/0AP//+3/v//5/7//+f+///n/v//9/AP/v/wJ//wDu//8AAAEABAAIAAgACAAIAAgACAAEAAIABAAEAAQABgAEAAYABAAGAAQABAAEAAYABgAE8AD9fwAA8l4AAP1/AADyXgAA/X8AAPJeAAD9fwAA8l4AAP1/AADyXgAA/X8AAPJeAAD9f/AA/X/sf/L/+3/yAPt/8v/7f/UA/v/7f/L/+3/4APv/+3/y//t/9AD///t/7//+f+///n/v//5/7///fwD/7/8Cf/8A7v//AAABAAYACgAKAAYACgAG///2AP///wD+//wA/v//APwA//8CAP///AD8APz//AD/AP7//AD+//8A///2AP//AAEABgAKAAoABgAKAAb/6Pb//+j///7o/P/+6P///P//6AL/6Oj8//z//Oj8/////uj8//7o////6Pb//+gAAQAGAAoACgAGAAoABv/o9v//6P///uj8//7o///8///oAv/o6Pz//P/86Pz////+6Pz//uj////o9v//6AABAAYACgAKAAYACgAG/+j2///o///+6Pz//uj///z//+gC/+jo/P/8//zo/P////7o/P/+6P///+j2///oAAAAAAAAAAAAAAAAAAAAAAAAAABVVQAAIgAAIgAiIiIAABHM3d3MM92IVe4i////qgB3zAAAzHdV7t13Iv8zM913mZkAAJmZAMzuESL/IgCZmXfMEarMd2buzJki/zMzzHcRzN3u/3fuZlX/d////6oAAABVZlUiIgAAIhEiIiIAAAABAAIAAgACAAIAAgACAALx9PH08fTx9PH08fTx9AABAAIAAgACAAIAAgACAALx9PH08fTx9PH08fTx9AABAAIAAgACAAIAAgACAALx9PH08fTx9PH08fTx9AAAAABEZhEAIhEAERERIiIAAACZ7t3uM6q7Iu5m3d3dzBFE7iIAmbsi7syqAN1mAN1mZt0AAGbdAIj/VQDdu6ruIkTuIoi7uyLuu8wA3YhmIgAAme7d/4i7mSLuiN1mAAAAAABEZkREIgAAERERAAAAAAABAAIAAgACAAIAAgACAALx9PH08fTx9PH08fTx9AABAAIAAgACAAIAAgACAALx9PH08fTx9PH08fTx9AABAAIAAgACAAIAAgACAALx9PH08fTx9PH08fTx9AABAAQABAAEAAQABAAEAAQABAACAAIABAACAAQAAgAEAAIABAACAAIAAgACAAQABPD//QDw//0A8P/9APD//QDw//0A8P/9APD//QDw//0A7ADsAPL/+wDsAPX/+ADsAPj/9QDsAPT/+QDsAOwA7ADsAO0AAP/uAP//AAEABAAIAAgACAAIAAgACAAEAAIABAAEAAQABgAEAAYABAAGAAQABAAEAAYABgAE8AD9fwAA8tAAAP1/AADy0AAA/X8AAPLQAAD9fwAA8tAAAP1/AADy0AAA/X8AAPLQAAD9f/AA/X/sf/L/+3/yAPt/8v/7f/UA/v/7f/L/+3/4APv/+3/y//t/9AD///t/7//+f+///n/v//5/7///fwD/7/8Cf/8A7v//AAABAAQACAAIAAgACAAIAAgABAACAAQABAAEAAYABAAGAAQABgAEAAQABAAGAAYABPAA/X8AAPJnAAD9fwAA8mcAAP1/AADyZwAA/X8AAPJnAAD9fwAA8mcAAP1/AADyZwAA/X/wAP1/7H/y//t/8gD7f/L/+3/1AP7/+3/y//t/+AD7//t/8v/7f/QA///7f+///n/v//5/7//+f+///38A/+//An//AO7//wAAAQAEAAgACAAIAAgACAAIAAQAAgAEAAQABAAGAAQABgAEAAYABAAEAAQABgAGAATwAP1/AADyGQAA/X8AAPIZAAD9fwAA8hkAAP1/AADyGQAA/X8AAPIZAAD9fwAA8hkAAP1/8AD9f+x/8v/7f/IA+3/y//t/9QD+//t/8v/7f/gA+//7f/L/+3/0AP//+3/v//5/7//+f+///n/v//9/AP/v/wJ//wDu//8AAAEABgAKAAoABgAKAAb///YA////AP7//AD+//8A/AD//wIA///8APwA/P/8AP8A/v/8AP7//wD///YA//8AAQAGAAoACgAGAAoABv/o9v//6P///uj8//7o///8///oAv/o6Pz//P/86Pz////+6Pz//uj////o9v//6AABAAYACgAKAAYACgAG/+j2///o///+6Pz//uj///z//+gC/+jo/P/8//zo/P////7o/P/+6P///+j2///oAAEABgAKAAoABgAKAAb/6Pb//+j///7o/P/+6P///P//6AL/6Oj8//z//Oj8/////uj8//7o////6Pb//+gAAAAAAAAAAAAAAAAAAAAAAAAAAERmIgAAACIRABEAACIAAHfu3e4zEczd3UTuETP/MxHuZgB3ZmbuRHdm3Xd3zAAi/yIAAAAAqu7ud4i7zHcAEe5mAJl3d4gRd91V7v8zAAB37t3uIjPM3d13Ee7MAAAAAERmIgAAACIRAAAREQAAAAEAAgACAAIAAgACAAIAAvH08fTx9PH08fTx9PH0AAEAAgACAAIAAgACAAIAAvH08fTx9PH08fTx9PH0AAEAAgACAAIAAgACAAIAAvH08fTx9PH08fTx9PH0AAEAAgACAAQAAgAEAAIABAACAAIAAgAEAAIABAACAATy//IA9f/+APIA+P/7APIA9P//APIA8gDyAPn/+gDyAPf//ADyAPn/+gAAAQACAAIABAACAAQAAgAEAAIAAgACAAQAAgAEAAIABPIA8v/1AP7/8v/4APv/8v/0AP//8v/y//L/+QD6//L/9wD8//L/+QD6/wABAAIAAgAEAAIABAACAAQAAgACAAIABAACAAQAAgAE8gDy//UA/v/y//gA+//y//QA///y//L/8v/5APr/8v/3APz/8v/5APr/AAEAAgACAAQAAgAEAAIABAACAAIAAgAEAAIABAACAATyAPL/9QD+//L/+AD7//L/9AD///L/8v/y//kA+v/y//cA/P/y//kA+v8AAAAAAAAAAAAAAAAAAAAAAAAAIiIiABEiIiIRIiIiEWbu3e53mf///7v///+ZZt0AZt0RM/8zM/8zIhFm7t3udwAi/yIi/93dEWbdInfMACL/IiL/MyIAZt0AZt0AIv8iIv8iAAAAEQAAIgAAIgAAIgAAAAABAAIAAgACAAIAAgACAALz9PP08/Tz9PP08/Tz9AABAAIAAgACAAIAAgACAALz9PP08/Tz9PP08/Tz9AABAAIAAgACAAIAAgACAALz9PP08/Tz9PP08/Tz9AABAAIAAgAEAAIABAACAAQAAgACAAIABAACAAQAAgAE8v/yAPX//gDyAPj/+wDyAPT//wDyAPIA8gD5//oA8gD3//wA8gD5//oAAAEAAgACAAQAAgAEAAIABAACAAIAAgAEAAIABAACAATyAPL/9QD+//L/+AD7//L/9AD///L/8v/y//kA+v/y//cA/P/y//kA+v8AAQACAAIABAACAAQAAgAEAAIAAgACAAQAAgAEAAIABPIA8v/1AP7/8v/4APv/8v/0AP//8v/y//L/+QD6//L/9wD8//L/+QD6/wABAAIAAgAEAAIABAACAAQAAgACAAIABAACAAQAAgAE8gDy//UA/v/y//gA+//y//QA///y//L/8v/5APr/8v/3APz/8v/5APr/AAAAAAAAAAAAAAAAAAAAAAAAESIiEQAAAFVVAAAARGYiAJn//+5EEczd3cwRd+7d7jOZmSJ37nfMAADMd+5mAHdmmZkAIv+7mQAAmbv/IgAAAJmZInfud8wAAMx37mYAmXeZ///uRBHM3d3MEXfu3e4iESIiEQAAAFVVAAAARGYiAAABAAIAAgACAAIAAgACAALx9PH08fTx9PH08fTx9AABAAIAAgACAAIAAgACAALx9PH08fTx9PH08fTx9AABAAIAAgACAAIAAgACAALx9PH08fTx9PH08fTx9AABAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgDR6uEA0QDz6v8A8wDt6v8A7QDt6v8A7QDt6v8A7QDt6v8A7QDt6v8A7QDt6v8A7QDt6v8A7QDt6v8A7QDt6v8A7QDt6v8A7QDt6v8A7QDt6v8A7QDt6v8A7QDt6v8A7QDt6v8A7QDt6v8A7QDx6v8A8QDc6u0A3AABAAIAAgAJAA4AEwAZABoAGgAaABkAGQAZABkAGQAYABkAFwAYAA4AAuj/6P/+/wOtutD07////wabhMWotPH//v70////DWC9m4yCrf7//v74qr/6+P///xOJpp+SiILs//7/qX29vfz//v/k9f7///8WvoqpkI58z//+/6OipYLi///Ef9f2/////xbpdaqMkH+x//7/xoeufND//6yXrs//////Fvtwq4yPhJj6///OabN+vv//uIWquf///v8ViKeUiYeI7///2lyyhKf//rJvr6////7/FbiNo4GIft7//+xosI6V+P/FW6qm///+/xXmdqp7hnrB///3fJ+ahuf/31OhnvX//v8V92ihf4B8pf///ZeFpHjN//timp7k//7/Ff54l496fInw//+/aqZ5m97be4mu1//9/xS6fah1e3a17OS/bJuffJysqnis8P/+/xX+54iQlXd3e6CutsXHoo2Qoufg6f////8R/v/1yIyQmImGjpuZlJqxy+D0/P/////+DP/yy5uVlZagr8Xd8f79/wD+/v////7+Bv/97dvV3/H0/+j/AAEAAgACAAkADgATABkAGgAaABoAGQAZABkAGQAZABkAGgAXABgADwAC6P/o//7/A7S80fPv////BqSS5crC8v/+/vT///8Gcdr26b/G//7+A/iwwvn4////E5vH8/LXuPf//v+xjdnS/P7+/+X1/v///xbIpevu5bno//7/scPsxPL//8mM4Pj/////FuyO2uTqxdv//v/OrfPI7f//tbHj6P////8W/IXJ1ujN0Pz//9GK8cvi//+/p+fl///+/xWYuszc0cT6///bdePS1f/+to7k4////v8Vw6DKyNS58v//7HnR19D7/8d12d3///7/FemMxrXNt+D///eJuNjN9f/gaMjY+f/+/xX3fbmtvbjW///8oZzUueX/+nKy2fP//v8V/oyus6yzvff//8SOy6643tyJq+zs//7/Ff7DoMKgq6TG7OXBf7HEtMPHs6nf8//////+FOWpxraeoaCwucXc7uzi183s4ev/////Ef7/9cmx2NXGz+Dq4M3ByNXi8Pz//////gz/88ywwcnKyMnO3O77/f8A/v7////+/gf//uzZ1N3t+/X/6P8AAQACAAIACQAOABMAGQAaABoAGgAZABkAGQAZABkAGQAaABgAGAAPAALo/+j//v8Dw8nZ9e////8Gtqju39b1//7+9P///w2Q5///7+n+///++sDO+fj///8Ttt////vx+//+/8Gl7On9//7/6/b+////FtfI//798/f//v/C0v/z+f//1KPs+/////8W8Lb6/f729f7+/9nD//f6/v/Ew/73/////xb8q+77/fn2/f//26n++Pj//8u8//r///7/FbXe+vv59f3//+KZ9fv2//7Dqf36///+/xXTyPv3+vP7///umuf99v3/0JXz+f7//v8V7rb38/jz9v//96TU/vf7/+WK5Pr8//7/Ffem6fP19Pb+//u1wv3z9v/6kdH9+v/+/xX8sNr28vPx+v//z8H48+fl4qXQ//j//v8V/dPS9+/x7uTt6sqj4Pnv3dvGzPL5//////4U583y9e/w5tHK1Oj6/Pjw5/Pm8P////8H/v/30s30/Pn+/Af36dnY4ury/v3//////gz/9dTF09zc2t3e5PD7/f8A/v7////+/gf//e7f2+Lv+vX/6P8AAQACAAIABAACAAQAAgAEAAIAAgACAAQAAgAEAAIABPL/8gD1//4A8gD4//sA8gD0//8A8gDyAPIA+f/6APIA9//8APIA+f/6AAABAAIAAgAEAAIABAACAAQAAgACAAIABAACAAQAAgAE8gDy//UA/v/y//gA+//y//QA///y//L/8v/5APr/8v/3APz/8v/5APr/AAEAAgACAAQAAgAEAAIABAACAAIAAgAEAAIABAACAATyAPL/9QD+//L/+AD7//L/9AD///L/8v/y//kA+v/y//cA/P/y//kA+v8AAQACAAIABAACAAQAAgAEAAIAAgACAAQAAgAEAAIABPIA8v/1AP7/8v/4APv/8v/0AP//8v/y//L/+QD6//L/9wD8//L/+QD6/wAAAAAAAAAAAAAAAAAAAAAAABERABEREREAAAAAIhEAd+4iu5mZmQAAEczd3UQAu8zdEZmZAABm7kR3ZgBV/4gAmZkAAACq7u53AMy77iKZmSIid4gRd92IzBG7u5n///8zzN3ddxERABEiESIiIgAAIhEAAAEAAgACAAIAAgACAAIAAvP08/Tz9PP08/Tz9PP0AAEAAgACAAIAAgACAAIAAvP08/Tz9PP08/Tz9PP0AAEAAgACAAIAAgACAAIAAvP08/Tz9PP08/Tz9PP0AAEABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAY+2fAKnt/wCf7f8An+3/AJ/t/wCf7f8An+3/AJ/t/wCf7f8An+3/AJ/t/wCf7f8An+3/AJ/t/wCf7f8An+3/AJ/t/wCf7f8An+3/AKnt/wBj7Z8AAP///////////////////////////////+Xd+f/////////////////////6iIWptdv7/v7+/v7+/v7+/v7+///bQtSbg43J//7+/v7+/v////7+///pWayBgXR14f/+/v7+/5yq9//+////a5+MgoBprP/+/v7/4FTVq/H/////mpGefIFwi/v//v7/2m7EYLn/////0XazdIB1c+r//v7/6XKmeJf/////+naldnh5ZdH//v7/6aKGh7P//////6Z1kGt2aJH4/////s2pltv//////vaZj31obGeaw7i2tqmatPX//////vrskoZ8amVnkLK5uLWxqtv//////vvx47qjiX59f4OIin90d3/h/////v/79rOJnrGzsrO3uqZ2lXei/////v7/nHrEr6fW7PD2+++YcaST/////v/uPcOGbGur///////RZJWo/////v/rVahrZHCc///+/v/3vLDt/////v/2mYiOdnjA//7+/v7//////////v/83KWWmLz6//7+/v7+/v7+/////v7//vHm7////v7+/v7+/v7+/////////////////////////////wAA////////////////////////////////6eD5//////////////////////uZlbnF3/v+/v7+/v7+/v7+/v7//99i9PHdwtf//v7+/v7+/////v7//+uF6e3t2b/y//7+/v7/qrX3//7///+R0ent58vl//7+/v/lcOjP9v////+wuOjm6tHa/v/+/v/fl/PA4//////aoefZ6NbN+//+/v/pruTV5f7////7ptbO3Nu+7v/+/v/qvtjt6///////ybrPyNTFw/j////+0ru84v/////+9tDZxb/FuL7Ivru7sqW59f/////++e/b4M29urfF19/i2dDF4//////+/PHl5erh3+Hh3trW182+vvH////+//z3uZWtxcjCvr+/s7fSw9/////+/v+qi9jbxt7t8vf776yt3+f////+//FZ18zPyuT//////9Wo8ev+///+/+2D1bi41e3+/v7+//fL2PT////+//S73eLd5uj//v7+/v/////////+//zeydXY3Pf//v7+/v7+/v7////+/v/+7+Ts/P/+/v7+/v7+/v7/////////////////////////////AAD////////////////////////////////l3fr/////////////////////+4eEp7Pd+/7+/v7+/v7+/v7+/v//2zvGZUlyx//+/v7+/v7////+/v//6USMNjIsSdn//v7+/v+bq/j//v///1mFTjQ2JYr//v7+/+BOzpzw/////5B+cjA3K1j5//7+/9lcqiGh/////81hlyw2MTfg//7+/+tPgzlk//////pZjDoyMyjA//7+/+yXU0WO//////+RSmsqMih2+v////7SqIXb//////72dWNRKy0yjMa5t7arnbn2//////787GNMSjIqMnaip6SmpaDb//////778uefdVI8NzxIVV1HPE5d2f////7/+/e3jp6qrbG1u8CoTnFIff////7+/5x5vpic1+3x9/vxlUyCWv////7/7zm8XCcrjP//////1D1cfP////7/7ECSOSooZP///v7/+bmZ6f////7/+YhRWy8sp//+/v7+//////////7//OCScHKr/f/+/v7+/v7+/v////7+//707PT///7+/v7+/v7+/v////////////////////////////8AAQACAAIABAACAAQAAgAEAAIAAgACAAQAAgAEAAIABPL/8gD1//4A8gD4//sA8gD0//8A8gDyAPIA+f/6APIA9//8APIA+f/6AAABAAIAAgAEAAIABAACAAQAAgACAAIABAACAAQAAgAE8gDy//UA/v/y//gA+//y//QA///y//L/8v/5APr/8v/3APz/8v/5APr/AAEAAgACAAQAAgAEAAIABAACAAIAAgAEAAIABAACAATyAPL/9QD+//L/+AD7//L/9AD///L/8v/y//kA+v/y//cA/P/y//kA+v8AAQACAAIABAACAAQAAgAEAAIAAgACAAQAAgAEAAIABPIA8v/1AP7/8v/4APv/8v/0AP//8v/y//L/+QD6//L/9wD8//L/+QD6/wAAAAAAAAAAAAAAAAAAAAAAABEiIhEAESIiAAAiIiIiAJnu3e4z3d3dzDP/////IpmZAJmZ3WYA3WYimZkiAJnMme5m3buq7iIAmZkAAJm7ZkQA3YhmIgAAmZkAAJmZAAAA3WYAAAAAmZkAABERAAAAEQAAAAAAEREAAAABAAIAAgACAAIAAgACAALy9PL08vTy9PL08vTy9AABAAIAAgACAAIAAgACAALy9PL08vTy9PL08vTy9AABAAIAAgACAAIAAgACAALy9PL08vTy9PL08vTy9AAAESIiEQARIiIAAAAiEQAAme7d7jPd3d3MEZnd3XcAmZkAmZndZgDdZv9mVXcAmcyZ7mbdu6ruInfu7qoAmbtmRADdiGYiVbsRVf8imZkAAADdZgAAEbvd3ZkAEREAAAARAAAAAAAiEQAAAAEAAgACAAIAAgACAAIAAvL08vTy9PL08vTy9PL0AAEAAgACAAIAAgACAAIAAvL08vTy9PL08vTy9PL0AAEAAgACAAIAAgACAAIAAvL08vTy9PL08vTy9PL0AAEABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYA5uztAJQA/Oz/AKIA9+z/AJ8A9+z/AJ8A9+z/AJ8A9+z/AJ8A9+z/AJ8A9+z/AJ8A9+z/AJ8A9+z/AJ8A9+z/AJ8A9+z/AJ8A9+z/AJ8A9+z/AJ8A9+z/AJ8A9+z/AJ8A9+z/AJ8A9+z/AJ8A9+z/AJ8A9+z/AJ8A9+z/AJ8A9+z/AJ8A/Oz/AKIA5uztAJQAAQACAAIABgARABYAGAAXABcAGAAXABcAFgAXABgAGAAYABYAFwAUABIAEgARABAAAur/6v/9/wD+7////wfUnMbT4/T2+vz/+/7//w7/833b69jT2tnPztbl8vz+//7+//8W//ar8u/r6ebk4+DX0MrL0t72///+/////xHq2ezw8fHw8O/t6+vn4NXO3/v+//7///0H+e/z8e3s7/T+9gbz6Nbh/v////8U/v/YqMfU6/z07+zq6OPo9u/f8P///v8T3HLf8ODS6ffw7Ofi3tO88urq/v/+/xOlqP/w7+Pc9fr39PDl2orX8uj8//7/B8Kx9+/x7uTw/f8H/uuPv/bo+f/+/wnom+7t8O/n6/7+/v8G+XXG9Ov4////FP77mtzs7e/p6Pv/7tXOpp718O39////FP3/q8rt6e7q6P/bisbU4f726fD///////4SxLnx5uvq5vvDzv/07eHV3/3///7/EPrdq/Lk5+nm6dDAzM3P1uj9/v/+/w3766ro5uXn5un06u31/P7/Av7///////4I8KnW6+Tl5er+/f/9/v////8K/v/0sc7w4uPp6fz5/v////8K/v/6zcPv8PDt8v/5/v///////gf/58TE1dni/fj+//////7+Bvzt39vp/P/4/v//6v8AAQACAAIABgARABYAGAAXABUAGAAXABcAFgAVABgAGAAXABUAFwAUABMAEgARABAAAur/6v/9/wD+7////wfPjb/O4vX2+vz/+/7//w7/8lnFqpmowMzHydPi8fz+//7+//8W//h2vqGLh4WMmKazurzDzNr1///+/////xHgpLm8ubWvqKKgpa64vLrB2/3+//3/D/Xp1tXOxsHDytDTz8Cuo87+////FP7/053D0+7+8ebh3t/Xzcqpe9b///7/E9Za0s2ysOX48Ovm4N3Kk9OGqf///v8TkovasauDlfL69vPu4tdwv6KW+v/+/wexesOvu59x0f3/B/7pe6Wyk/H//v8H5mCwmrWueK38/wb6XLGpqO///////hJrl4ykr4OW+f/tzsiajdiovfz///8U/f+NjouNpouI+9Jsu8DL4b+u3////////g+1iJp2lJB98bGC2byzqKXO/v/+/w/62XquZ36JdMvQpauzvM3n/f/+/w377Xmxa216brP36+/3/v7/Av7///////4I8oCigGJsbar+/f/9/v////8L/v/2kYeeWF6Ctfz/+v7/////Cv7/+sWDq5ufrdz/+f7//////v4H5rycp63J/v/5/v/////+/gb87N/a6f//+P7//+r/AAEAAgACAAYAEQAWABgAFwAVABgAFwAXABYAFQAYABgAFwAXABYAEwATABIAEAAQAALq/+r//f8A/u////8HzozA0ef4+Pr8//v+//8O//RFt2xbf6nDx8vW5PL9/v/+/v//Fv/6TGI4GBskN1R0lKy5xtHf9v///v////8R3mJDLyMfGhYXHy5GZIGcvd/+/v/9/w/12remjG9VPzMsJB0qSHfM/v///xT+/9Ohzt/5//fk1ci9olFBOjLB///+/xPVVb2EcqLm+fHu6+fnyDiMIWX///7/E4x+ggwTJHTw+vbz7uHcWYpLOvj//v8Hq1twFSEbHK79/wf+6297ZyTl//7/B+dHfBcgHhpq/P8G+1OiayPp////FP7/WXQoHB0dRfj/7s7JnZPQKlf+////FP3/g3ZGGRwdMe/OY760r6U4I87///////4PsHZuGhwdJd2sMXs2LSxPwv7//v8T+tlolCMiHh6r2JJ9k67P8P/+///+/wz772eeNyciG4H57vX9/f8C/v///////gfzcJFWKCogV/z//f7/////C/7/+IFYhSctGlf///r+/////wr+//vFRkk3IBy///n+//////7+Bue/cVJarv/4/v/////+/gb87OXh8f//+P7//+r/AAEAAgACAAQAAgAEAAIABAACAAIAAgAEAAIABAACAATy//IA9f/+APIA+P/7APIA9P//APIA8gDyAPn/+gDyAPf//ADyAPn/+gAAAQACAAIABAACAAQAAgAEAAIAAgACAAQAAgAEAAIABPIA8v/1AP7/8v/4APv/8v/0AP//8v/y//L/+QD6//L/9wD8//L/+QD6/wABAAIAAgAEAAIABAACAAQAAgACAAIABAACAAQAAgAE8gDy//UA/v/y//gA+//y//QA///y//L/8v/5APr/8v/3APz/8v/5APr/AAEAAgACAAQAAgAEAAIABAACAAIAAgAEAAIABAACAATyAPL/9QD+//L/+AD7//L/9AD///L/8v/y//kA+v/y//cA/P/y//kA+v8AAAAAAAAAAAAAAAAAAAAAAAAAAFVmEQARAAAREREiIiIAAKru3d0R3WYAmZmZ////ZkTuIgCIM91mAJmZmapERABm3QAAAADdZgCZmZnu3d0RRO4iEcxV3XcAqpmZmSIiAACq7t3MAHfu3e4zmf///2YAAFVmAAAARGYiABEiIiIAAAEAAgACAAIAAgACAAIAAvH08fTx9PH08fTx9PH0AAEAAgACAAIAAgACAAIAAvH08fTx9PH08fTx9PH0AAEAAgACAAIAAgACAAIAAvH08fTx9PH08fTx9PH0AAARIiIRABEAEREAABHd3d3uIt1mme4iZt3ddyLdVd1mme6qZt3d3d3uM91mmaruqt3dZgCZmd1mmZl37t3d3d3dRN1mmZkAu90RIiIRABEAEREAEREAAQACAAIAAgACAAIAAgAC9fT19PX09fT19PX09fQAAQACAAIAAgACAAIAAgAC9fT19PX09fT19PX09fQAAQACAAIAAgACAAIAAgAC9fT19PX09fT19PX09fQAABEAABEiAAAAImYiAADdZjPd3cwid+7d7ncA3WaZuzOIM+5mAGbuEd1mIsz/3Wb/IgAi/yLdZrtmIruZ7mYAZu4R3WZm3d3dM3fu3e53ABEAABEiAAAAImYiAAAAAQACAAIAAgACAAIAAgAC9PT09PT09PT09PT09PQAAQACAAIAAgACAAIAAgAC9PT09PT09PT09PT09PQAAQACAAIAAgACAAIAAgAC9PT09PT09PT09PT09PQAAQASAA8ADgAMAAoACAAHAA8ADgAOAAwADgAPAAYACAAIAAoADAAOABAAEv0ADAMZWp3P9//71KNiHwT9AP4AAwxbzf75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BgANABMACgDP7P8AzwDP7P8AzwDP7P8AzwDP7P8AzwDP7P8AzwDP7P8AzwDP7P8AzwDP7P8AzwDP7P8AzwDP7P8AzwDP7P8AzwDP7P8AzwDP7P8AzwLP///8z/n//M8B/88Dz///z/7/AM/5/wDP/v8Cz//P/M8A//XPAP/9zwABAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYADQATAAoAz+z/AM8Az+z/AM8Az+z/AM8Az+z/AM8Az+z/AM8Az+z/AM8Az+z/AM8Az+z/AM8Az+z/AM8Az+z/AM8Az+z/AM8Az+z/AM8Az+z/AM8Cz////M/5//zPAf/PA8///8/+/wDP+f8Az/7/As//z/zPAP/1zwD//c8AAQALAAkADQAKAA4ACwAM/wADmPS0Tv0A+v//AAP9///F9gD/AAO94+Oh/QD8//8ABgA/2Pvm3lD3AAEo3v3/A7whAAD7/wAAB0G08//0/pMu+AAINX/T+c7JYSUG+QAAAQAIAAYACgAGAAgABAAE///9AP3/+gD///0A9v////0A/f/8AP//AP/7APf/+QD///sAAP/5APj/+AD5/wABAAgABgAKAAYACAAEAAT///0A/f/6AP///QD2/////QD9//wA//8A//sA9//5AP//+wAA//kA+P/4APn/AAEACAAGAAoABgAIAAQABP///QD9//oA///9APb////9AP3//AD//wD/+wD3//kA///7AAD/+QD4//gA+f8AAAAAAAAAAAAAAAAAAAAAAAAAAAARABEiIhEAAERmEQAAAADdZpnu3e4zd+7d7iIAAADdZpmZAJmZ7mYAd1UAAADdZpnMme5m/yJV3bsR3RHdZpm7ZkQR7mYAiN0AzN3uIpmZAAAAd+7d3d0AEWYzABERAAAAACJmIhEAAQACAAIAAgACAAIAAgAC8vTy9PL08vTy9PL08vQAAQACAAIAAgACAAIAAgAC8vTy9PL08vTy9PL08vQAAQACAAIAAgACAAIAAgAC8vTy9PL08vTy9PL08vQAABEiIhEAESIAABERACIiIgAAme7d7maZ/1UR7t0i/93umQCZmSKqiJnuqlXu3SL/IiL/Ipnu3e53mczuqszdIv+Zu8wAmZkAZt2Zmd3uiN0i/3dmEQCZ7t3dd5mZiMxm3SL/IgAAABEiIhEAEREAEQARACIAAAAAAAEAAgACAAIAAgACAAIAAvD08PTw9PD08PTw9PD0AAEAAgACAAIAAgACAAIAAvD08PTw9PD08PTw9PD0AAEAAgACAAIAAgACAAIAAvD08PTw9PD08PTw9PD0AAAAIiIRABERAAARAABVVQAAZu7d7neZ7iJm3QCq7t3MAGbdAGbdme6qZt1E7iIRmSJm7pnMmZmq7qrdZt0Ad913Zt1mVQCZmXfu3UTuIhG7mWbdAAAAmZkAu90Ame7d3ZkAEQAAABERABERAABEZhERAAEAAgACAAIAAgACAAIAAvH08fTx9PH08fTx9PH0AAEAAgACAAIAAgACAAIAAvH08fTx9PH08fTx9PH0AAEAAgACAAIAAgACAAIAAvH08fTx9PH08fTx9PH0AAAAIiIiERERACIiIgBm////3ZmZZv///2YAIt13EZmZZt0iIgAAAN1mAJmZZu7duwAAAN1mAJmZZt0iEQAAAN1mAJmZZt0AAAAAABEAABERABEAAAAAAQACAAIAAgACAAIAAgAC9fT19PX09fT19PX09fQAAQACAAIAAgACAAIAAgAC9fT19PX09fT19PX09fQAAQACAAIAAgACAAIAAgAC9fT19PX09fT19PX09fQAAAAiZiIAACIAESIiETPu3e5mIv8i3f//3buZAGZ3Iv8i3XciEd1mEd3dM/8i3d3dVbuZAGb/Iv8i3XciADPu3e7uIv8i3WYAAAARZjMRACIAEQAAAAABAAIAAgACAAIAAgACAAL19PX09fT19PX09fT19AABAAIAAgACAAIAAgACAAL19PX09fT19PX09fT19AABAAIAAgACAAIAAgACAAL19PX09fT19PX09fT19AAAESIiEQAAEREAEREAEQAAIgDd3d3dIgC77hF33QDdiETuEd1mAN1mEe7ddzP/Vf/Md8wA3d3d7hF3zIi7AN27u+67iADddyLdVczd3f8zqu533e5EAN1mAN137hEAzHd3/zOZ7hEAEQAAERERAAAREQAiABERAAAAAQACAAIAAgACAAIAAgAC8PTw9PD08PTw9PD08PQAAQACAAIAAgACAAIAAgAC8PTw9PD08PTw9PD08PQAAQACAAIAAgACAAIAAgAC8PTw9PD08PTw9PD08PQAAQAJAA8ADwAKAAgACAAIAAkACQAIAAgACAALABMAFgAQAAgACAAIAAsADwAP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hIaGhoaEf4eCgYeGhoaIhpOTi4eLhodyTzwkDBh5iocMAAAAAwEAAQAAAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAEREAACIRACIiEQAAImYiAADd7hFV/5lm7t3udzPu3e5mAN3ud4jumWbdAGbdu5kAZncA3cy73cyZZu6ZzJndZhHd3RHdd+7dmZlm3WZVALuZAGb/It1mzIiZmWbdAAAAM+7d7u4iEQARABERABEAAAAAEWYzEQAAAQACAAIAAgACAAIAAgAC8PTw9PD08PTw9PD08PQAAQACAAIAAgACAAIAAgAC8PTw9PD08PTw9PD08PQAAQACAAIAAgACAAIAAgAC8PTw9PD08PTw9PD08PQAABEiIgAAERERAAARESIAACIA3f//zCKZmbuIAKqq3YhV7iLddyKqu5mZd90R7lVV7t13AN1mAGbdmZkR7ojuEQDM7hEA3XciqruZmQDM7qoAZu7MmQDd///MIpmZAHf/VSLuZlX/VREiIgAAEREAACIAACIAACIRAAEAAgACAAIAAgACAAIAAvD08PTw9PD08PTw9PD0AAEAAgACAAIAAgACAAIAAvD08PTw9PD08PTw9PD0AAEAAgACAAIAAgACAAIAAvD08PTw9PD08PTw9PD0AAAAACIAABEAACIAIgAARP93RO4RM/8z/yIAiN3dAN13d8wi/yIR7nfuRIi7zHci/yJV7t3uqlXu/zMi/yK7iABV7hHuzAAi/yIRAAAAIgAREQAAIgAAAQACAAIAAgACAAIAAgAC9fT19PX09fT19PX09fQAAQACAAIAAgACAAIAAgAC9fT19PX09fT19PX09fQAAQACAAIAAgACAAIAAgAC9fT19PX09fT19PX09fQAAAAiIiIREQAAEREAACIi////md1mAHfMAHfdIv8zIhHdZgAz/zO7iCL/3d0R3WYAAMyI7kQi/zMiAN13IhGI7t0AIv8iAADd///dRP+IAAAiAAAAESIiEQAiAAAAAQACAAIAAgACAAIAAgAC9PT09PT09PT09PT09PQAAQACAAIAAgACAAIAAgAC9PT09PT09PT09PT09PQAAQACAAIAAgACAAIAAgAC9PT09PT09PT09PT09PQAABERAAAiEQAAVVUAABEAACIA3e4RVf+ZEczd3cxV7hEz/zPd7neI7pl3zAAAzHfdd3fMAN3Mu93MmZmZAACZmYi7zHcA3Xfu3ZmZd8wAAMx3Ve7/MwDdZsyImZkRzN3dzBER7swAABEAEQAREQAAVVUAAAAREQAAAAEAAgACAAIAAgACAAIAAvD08PTw9PD08PTw9PD0AAEAAgACAAIAAgACAAIAAvD08PTw9PD08PTw9PD0AAEAAgACAAIAAgACAAIAAvD08PTw9PD08PTw9PD0AAAAAAAAAAAAAQACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAbs/+z/7P/s/+z/7P/s/+z/7P/s/+z/7P/s/wAA7v8AAAABAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABuwp7CnsKewp7CnsKewp7CnsKewp7CnsKewpAP/uKQD/AAEAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAG7CnsKewp7CnsKewp7CnsKewp7CnsKewp7CkA/+4pAP8AAQACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAbsKewp7CnsKewp7CnsKewp7CnsKewp7CnsKQD/7ikA/wAAVl1jaG1ydXd5eXl3dXJtaGNdVkxSWF1iZWhrbGxsa2hlYl1YUkxCSE1SVllcXl9gX15cWVZSTUhCOD1CR0pOUFJTVFNSUE5KR0I9OC8zODw/QkVGR0hHRkVCPzw4My8mKi4xNTc5Ozw8PDs5NzUxLiomHSEkKCotLzAxMTEwLy0qKCQhHRUYGx4hIyUmJycnJiUjIR4bGBUOERMWGBobHB0dHRwbGhgWExEOBwoMDhARExQUFBQUExEQDgwKBwIEBQcJCgsMDA0MDAsKCQcFBAIAAAABAwQFBQYGBgUFBAMBAAAAAAEAAgACAAIAAgACAAIAAgACAAIAAgACAALu/+7/7v/u/+7/7v/u/+7/7v/u/+7/7v8AAQACAAIAAgACAAIAAgACAAIAAgACAAIAAu7/7v/u/+7/7v/u/+7/7v/u/+7/7v/u/wABAAIAAgACAAIAAgACAAIAAgACAAIAAgAC7v/u/+7/7v/u/+7/7v/u/+7/7v/u/+7/AAEABgAGAAYABgAGAAYAAgAC7wD9//8A8wD5//8A9wD5//sA+wD5//cA/wD5//MA/wD9/+8A6f/p/wABAAgADAAMAAwADAAIABYAFu///+f/Kf//8///5/8p/+f/Kf//9///5/8p/+f/Kfv/+///5/8p/+f/Kff/////5/8p/+f/KfP/////5/8p7//9Kf/n/yn/5/8p/+f/Kf/n/yn/5/8p/Sn/5/8p/+f/Kf/n/yn/5/8p/+f/KQABAAgADAAMAAwADAAIABYAFu///+f/Kf//8///5/8p/+f/Kf//9///5/8p/+f/Kfv/+///5/8p/+f/Kff/////5/8p/+f/KfP/////5/8p7//9Kf/n/yn/5/8p/+f/Kf/n/yn/5/8p/Sn/5/8p/+f/Kf/n/yn/5/8p/+f/KQABAAgADAAMAAwADAAIABYAFu///+f/Kf//8///5/8p/+f/Kf//9///5/8p/+f/Kfv/+///5/8p/+f/Kff/////5/8p/+f/KfP/////5/8p7//9Kf/n/yn/5/8p/+f/Kf/n/yn/5/8p/Sn/5/8p/+f/Kf/n/yn/5/8p/+f/KQABAAQABgAJAAYABgACAATvAP3/8wD9//0A9wD9/wEA//sA+wD9//UA/wD9//EA6wD//+0AAAEABgAIAAsACAAIAAIABO///+f/KfP//+f/Kf3/9///5/8pAf/n+//7///n/yn1/////+f/KfH/6///Ke3/AAEABgAIAAsACAAIAAIABO///+f/KfP//+f/Kf3/9///5/8pAf/n+//7///n/yn1/////+f/KfH/6///Ke3/AAEABgAIAAsACAAIAAIABO///+f/KfP//+f/Kf3/9///5/8pAf/n+//7///n/yn1/////+f/KfH/6///Ke3/AAEABAACAAIABAACAAIACAD/8wDy//IA+P/7APIA8gD7//4A/f//AAABAAIAAgACAAIAAgACAALy//L/8v/y//L/8v/y/wABAAIAAgACAAIAAgACAALy//L/8v/y//L/8v/y/wABAAIAAgACAAIAAgACAALy//L/8v/y//L/8v/y/wAAAAAAAAAAAAAAAAAAAAAAAAAAEAAA//8AAAAAAAAAMoAAAAA4QklNUGF0dAAAwSgAAMEkAAAAAQAAAAMAgACAAAAADQBLAG8AaABsAGUAZgBsAGUAYwBrAGUAbgAAJDUxNGM0ZDUwLWUyMzMtMTFkZC1hOTUyLWI3ODY3N2FkMTkxZgAAAAMAAMDNAAAAAAAAAAAAAACAAAAAgAAAABgAAAABAABAFwAAAAgAAAAAAAAAAAAAAIAAAACAAAgA3tvY4dvb3tvb2dvY1djf3OHW3N/a2t/g39/e297C0uDc2XHD5dng2tve09vb2bzb3eDh39ne3N7f3t3d3tvb3dvZ4dvZ297d2dfd29vU2Nve4dfY2t3b29ze07vU3tva4N7f397a28/Y4d7c293b3uGn2tvb2tvZ397Y1d622d/b297c2+DYzNPZ2dzf3trX3N3f4dvb3eDb3t/b09/c2uPKzNjb2+Lb3t7X3N3T3t7h18TK1tzby9Pb3tna3dvL297e3t7f4d7T2Njb3d3X2t7a3tjb3NvS4ePj5N7e4ODe2dne0trY3OHf3N7c3tjgxtzc2N7X29/f3tzW1cbc4N7f39nW3tzPwNvY1dnh4dvb2Nva3d3d3dzf2trd3uDgyMnZ19jj4N/b2tfb2dve3ePSw7De3eHG0Nfe4tjb29re3dzW3uHc3trd3uDb2tbZ4tLc3tvd3tvd3uHe39rb4N7e27G049nZ3+Hc4N7Z3tzV2dbZ297d3t/f3tvZ3t7d393e397g297e2tzb297e4Nvg39zS2dfd3t7e3uLg2N7D2drf5K/Q4d7b29ze2+De29zb4Nnh2uHj2N7k197b4uDd3tfe5N7c3t7h2NPc3tvY3tjf3t7U1t7b297b29vg3t/hr83j3tja4NXX4d7d0dvg3dvh3tjd49vb3N/h2NPa3drb2eDZ2djR39vZ3N3X3N7f3MTV3uPX3N7Y3+Td19zc3N/gq9Lf3+Df2NvM19zf3d7e1s3c3tjI4d3f2Nnf2tve3trZ4N/f4d/e2Nzi29jg2N7g3cza4d7Q4Nrf39/d3d3d18/h2dva2dLd39vd0tvf3tjb4d261t/e2t3Y1dTd297d19vc0dLe29rd3uDf39vX497S0Nre3tXV2ODP2Nvi3OPm4NvZ3t7U287Y3eDf1dXVz+Lb2NLY3tnX3N3R3d3b29bh3dnc2N3e3t7g3+Dd1dvS3t7d297d4Nve4d7a1eHb1t/d2c/g3Nvb3OLf19jb1djl3sbZ1trb3Njb1N3h4dzb2d271+DL2Nzd2t3U3tjh4Nva4d/Z4W2/5N7a2N3iyNfe297a2tnY3t7e3dfYzN7f297dz9Lh2tvZ2+Dh2Nrb3drh3eHe3Nvd3t/e3NfT1dbg3d7b2t3h3t7e2NjQv9rd3c3X2dLd29za397U0N3Pw9XU0tXZ2d7d3Nvc2Nnc29vc3uHW3Nraz9HV3d/e29PU2ODg0tbZwdvj3drU39vP3Njd2tDZ4OLc4eDa0Nzb39vf3tnS18/f3dvd3N7S3uDb3Nvc2+Hc393W2ODk39vT1da/4drU3dfe39nX1su62uG9zNXb29re4b3M4dfY29mzxd7e29Th29vb3d/Y29zZ49/Y4OHZ3d3d3uDV2t3d09nd2uDL19vd3d3U197az93hydvh3dfS297Z3dnb29/e4tjb2tzc2ODe2tvf3t7b29ja293g3NrV29zc2+Hc3M7d2NXf19je3tvW3NvZ2sfZ27LY2Nzf2Nzfv8ve29TX29uw3d/W0t7b2Nze3d7f29vb29zg3t3g4OTh3tjf3t7C29ne3uHi4d/c2NXg3t3c3d/e19zh0snV38rY4dfb3t7eg9je2dvR1d7W2+He29jJ3t3d3t3V29ve3N/e19HV3t7V29jZ4ODf2djf3dvd3NzX4Nve29/a0d3d4+Le1d3e4dLd4Njd39jZ3t7d3dbX3drb293Z4MzS3d/bzuDd3NPb3Nvd3dze39rY2dvZ3uHj4M/j1b/Z4uDb2tTZ3Nve1t7V3dnT29LV3t3b2NHd397Y3N/b3tzb19je2t7M1Nvd29Xf193g1N7h2Njc3tuvyOTe3Nje3trP2djg3trZ29rf4Nfb29vY297g4d7i2Nrd4djc3tjb2tjb3dnX4dfe3OHf2N7h39vd3tvc3dvd4dvb0+Df0tza39Te1tzf2NrY3eHb29rW3uHY1N7R0t/d4tzb3tLY4OHgzMze2Njj4OHb2Nja49bZ3NrX293c2NbI2NTV3t3e09vb3uDa3N7d3tvf293Z2+Le2tXe3t3b3eHT1uHa3tzb3NzY2uHh3d7hz9Db1uHg4Nze297e3uDe4eDf1Nvb3uHc3tvd4d/c2ODg3tjc3tne3OGt19/b2tLe4M7a2dvd4d7X3tze3d7h4ePe19ve1tnS29vg3t7h2dDd0sHk5d3e29Da4Nvh2d7c3t7d3tjc4eDa2N/d4eDhy6rh4d7e4tve2t7c3+Db2t3VxNvX3uHW297b2Nze3tra2d7T2eDe4dni2+Df1dvi2Nvb4Nze1M/h4dzY2M3d39nd1snT497dxtrZ4dva2Nvg3t/e3djj2Nnd2tnf29jJ4+Df3tPC2dXf3drg39TS3tjd1djY29za3d7b3uDh3drb2+Lf4dzg29ze3N7b3t7V2ODZzd7k4M/a29Pe193e4c3a29vb4eDb3t/h3tfb0NHe29vh3drb3t7R0uDg2N7X29zd3N7j3trf5OPf3Nve39/e4OHe39jT3NjY29fZ3tjZ3tze0sTg3d7e3Nzg29jb0tzS29jY4MnY3tzd2b/a3uDg1dze4eHY0uTZ3Nrc09TX29rW297e4d/e2N3b4N3Rv9vd3N7f1tHe0ePe2+TUxuDb3uDT3dfY29ba4N/Y1LLh2t3e3t3Zz9Xd3d7az93e2N3i2dvg4b7V1OHg2N7f29fd29re39jf3uDb29re29jY3tbb2Nbg2tvc3d7Yz9/b3N7T3+Hc39vc39zb3OHd3trb3N7b2+HY3t7d4OHe2LrN29vd3t7W2N3Z3t7e3djZ2+Dc3tHV29jb3ePXz93V2dfc1tne2uDCxc/b3t3P2N7W1N3b0t7g3szJ4Nvg39na193Z2tve29jX2t7d39rd2NTb2tLa2tvY1djZ39ne3t3d4dzf3t/i3t7b2Nrc4dXV3tvb4OHe3tbb3uHc3uHb4d3Y4dvd3czh3+Hc3dzhydnj3d3b3trd3tvh3c/e3dzh293bzN7e3tnW2tfb4eHc2tjT39fa2N/d1dXV297d3N7X1t3Y2Nzb293f29jb3N/d293a29jb1dfd2+Dc0dXb393e2d7b3t7c4d3e2+Dc2Nne29/T0+Xg3c683tne3d3a4NTh4Nvd1cHY4dvh4N3i4d/d4uDe0tXd2t7h2tva3uHc4NzY2Nvf293W3uHd3d/awd7hzsrg3N3h2dPf2N3e3+DR193b2Nrh2dnb4dnb29jf2NfS2d7a3d7e3trM3NvZzNvf3uHh3tjd397g3dna2Nve3tvY3+Lh2LTi297e3tTb4eDf297ex9na4sjc3t7e297h4+KPaePQ39zg3d7f397f497b3tzb29Xf39zc4Nzc4dzXytrd3tvf397e1c/U39rZ397e2NXe29zg3+Hc3t7T19Tc4Nva2d3d4Nrf4d7X3d7e4d7d3N7b29Hi3Nze2Nne4t3b4Nzb39rN2OHbxdve4eDb3N3i3t3ixcnS1dna3dLb2Hhy3tfe3ODh2dzh4Nzd3M3Y3Nzfz9/QvNve2ODd3NLb29vh3tTX3t7S1d3e4Nve48/b3ODg3tjd3d7Y1d3a2OLMzdne297g3NzU3N/k2d7g1djg3dy1YdLe2Nvd2Nvg2Nfb3tjf18DV49zf3dje3t/h3NrX293mssvb3tfb3tjM1tva4dnb3uTX1d7e29vY3tPS29ze3NPV1d7c3eDZz8/h1dvc09/a4djd3trY29vev9fi3N/e29vV3tvT1tve2dvXqNfY3N/e4dnW38LH3trY3d7c48aU0N7e293b3uDe2+Lg2t7f3t3d4NzZ293i4Nze3tzV2Nzc197i3d7d39/Y4d7b2NvY3+He3Njb0tfc4cbY3t7e197g3Nzb1dDT1Mnc1tfb2dja3Nva1t3e29zf4djV3tjTx9bX2NnY2d/f3NvV3c/d2+Hc3uPbxs7e3d/c0tbjypfY2Nfe29vf393c39/b2t7c2NLj4d3e3Nja3t7g3s3V3tvZ1t/e1t7b29je29vc5Nve3t/e2tve3uDj19/f2tvb3d3T2tnY083Vz+HT29ve29ve3tze2NzX2drh3Nvc2Nvc29jd3N3e29zd3tfb0M7Z0uHc29Xm1Nzd3tXY3dnTmNTV2N7Y4d7b3Nvc1Nre3d7e29vb393b3t7e2Nvb2trc3uHZ297a09vi4d/V2eLa3t3c49vb4N7b3trb193c1tvh3tfb2+DM0d7c2dzb29rb19nb29jU48zQ3+Hb3NnV1t7h3t7i3tvX2dvc0tjMz9zb3trSt+a21drd2d7e3dvo09Lf4N7c4Nvc3dzb297b4Nzc1ePLy9vf2Nfe29/b2dba3uPe2eHe3t/f397b4N7b4Nzg297e3t3a1srY29/X4N7c3dXY2Nne4dzL2Nve2tvY29ve3tvM2N3a3d/e3trY39zb3dzb3NzR3t/g4tLY4OLe29zY3t7b2eHh3Nvf3ODW29vX4dzP2t3f29vd3NvV3dvQ4tLU29zZ1Nre3eHX0d7c2d/V3d7e29ve1trb3t3b3t7h3MXb4Njd29nW1uHb1NrV3M/d2N/h18jh3srgz9Xh09Xd3tDe3tre4d/c3OHc2ODa3Nze3tve293d3djV2t7c3+Db293VytHb0s7h3d7a3dff3NHY4d7Z0uHY1dzf2Mnh3d7d3+Ld3tzb2trX3djQ2dHd39je3N7f39ne4dPe3dvb19jc3N3Y2NXX2tjZ0tPe4N3d2Nrg4dvf0NLe4eHW29fc3tvd2N/Jw9va29ve3NTb2Nbe2NXZ29vb2+DS1tvX2OHY4NXW2eDV2ODn49Hf4NzY2+Hb4NbK2+Gx0OHe2d3e3tzb3dnd4dvb2trT0tXZ2tjb2+DZ2eHd29ja29Xb3snY3tvb29Le2tvY2t7Y1+Dd3t7dvdXV19/g3N7g2N7R3uDe3dPe3tHR3tjb297b3uHZ2dva1OHh3drb3tLU393X39vb2dve4N/i0s3Y2NnS397b4djd2djAy9nb2Njd3OLc2+Pb3N/f3tzV3d7b2NXc29jf2t7f19fb4tbe0djX2NPW2NrY3tzX2d7b3eHR29nc3t7Y0tHe3tjb3N7b1tnc29jb2Nve4tvS4N3b4N/R0ePb293f3t3h2Nbd4+Lk293e3d3d4d7a3dvZ2dvb29bc39bd3Nre4dPQ2tjd3d3Y19/c4uDe2t7e28LV3t7Z2dvf2tzc3tzb297j4Nnc1trd4dLb3tvc3dLb297hz7Tf1dzX29ra3uDM3t7f3Nvb3trc2M3bz9Xa29vd3dvb38nV4dze397b29jZ296zz6XO3dzd3tzc3dPb2N7j2NTb3tvd1d3h2drY3tbM2uHc3tvY3N7b3N/e4N7e09nZ3uHe2dva2N3b3dve2+HUrdXY3N7hzMre493b2+He3tjd397by63S4eLe39Xg29bc193d4uDc2t/Z39zb2dnY4d7h1dPY297d3t7c1ODg3qXEqtTY29ve3tXc3t/d2eHa3Nvb3NjW3dja3uDc1Njh2d7i29nb2uDg3dXb2NbQ2N/f2OHV1dvh4trc1tje29nc393d2N3Hx+Dh3uLe39vhz9ve3tvZ1d7b1d7b3NvZ29ra2+TAxd3W4Nzc29vT2dnO2crSz9Xb297Y2Nrdv9Pf3NTh3t7Y2dzO1d3e293a3Nza1c/W3Nbd3uHb297Uz9/T2ePAstfa29vf1dvY0N7d3eDb3c7R383C4dXU2tva39Ta4Nvd1dDe4eDh3tze397W0tff4eHb3trC4Nvc2NHT2N/X3c/M29Xb3tjW3Nnb2MzV09jd3NnX1tvX3+HS2Nzh3tzf3N7b3dnY3tnT2+Pc2dvY2Njg2Nzc2+Hb3tjV2dvg4b6x3t/Y29/e2uDj39zd3d/f39XY0tHe2LTb2Nvc29vh2d/e2d3V0d7h3dzg3tnV3tvj4d7d2dvb297Y2dTW39jM2d7a2N7V2drY0N7Z1tvY39ve0NzX29vW3t/W19vh29jb5tzc4d7c2dff4d7d3d/e3uHf19re3dvf4OHf29vd3ubb1Nre3+Hg3eDS4d/c0+Df29zV2t7Y2tfe2+Dh4d7U3uPe4NvS3tvb19Dc39/a2N3jyNXe3NLU3tje3NvZ3d7d2Nvb3tfe3Nvb2tze3tva39zK3dza2N7h3tje19ve39iCxd7a3tze4eHX3dze3djf3N/f4eHg3t7e3t7d2tPY5t3G2N/d4t3c3t3e3t3M3Nbe4N7b1tzc2+Hg3uDg4NvY3dHU3ODe3tfYzNTY3tre3tvM0d3e0dnf3t7e2sjg3uDh29ni49/c3d7Z3djd3tzf2t/Z3d7c4dvg4N7Z2+Ln0W7K29re2Nre3uDd3d3g2tPd3t3Y3+De297c19vjvM7g3Nrh4NXP2NrY297Y2drhzrrh3N7Yxdrg3+Hd3+Hh4uDb39ba29jexMrY2NXZ3ODjyd7Y39He4t/Z29zjvbPezL7e4djW3t3d4d3Y2dre3N7b3N3b3t7c3tfd49vX297e39va19nb29/b4eHe29jX1Nvh29bV297h4d7Z3d/h3tvh39vb1NrY2d7e3trd3d7f093d29vY497g3t7h4d7hqdTe193Z3Nzc2Njj4sXO49bb39vg29y/2t7b3eDMwc/Yv9ja4djM3Nnb297e3dzT3Njd4N7g29vb3d7b4t7d4eDe2N/Vu9/M29jh5N/f1dXX1drJ3M/S1drV1dvd3d3c4eLg4dbX2t3e39/d4eTg3t7Z3+DW2t3i1dnc2d7Y4ODR197S29ze1+Db2OHj39ve1drh3N7a2dvZ1NfY09/e4t7h297bzdPe3d7e3drd2Nvh2tXY3Nvf29rd297Y4d/g4d3Z3OHn0b/b3t/d3eHc3d7b2Nng3tXT1t3Y29/e3t7e3eDb1djc3tvX3+Le3+Dc2+Ph4tLP29ri19jh3NbY3N7h3trb3Nrb4OPf1t7e29vT1+Pc1snb09zY1Nvb29vJ3dve3t7Pzt3Z29va09za4N7Uya/k3t/Tn9vb29ve3NTS29ze393a1d7e3t7c3Nrc19ra3N3d2Nng3t3b29zf2+Df3d3g29zc3N3c39ze4t3c4dzY2Nfc3+Hg4OHd3djb397Q29zf4NvV387W2tvY4dze3tvX09bX3N3b3dvY29rb2+Hg297e3djY29zf3NvX39bT193b2Nq129ve4tbYxsje3t3d3d3g2M/b2Nvb4dza3NPa3N3h2+Hd3d7c2tvb3trbz9LW3d3X3tzV39nZ39/U0tzd3dze3tvU1t7b2ePe1NbY2drc39/bydva3Njg3d3g19fU297Y3tna2tXg29jY3t7f3NzZ2N3b4N7V3tna2uDc2d7c4OTX3N/f293XzOHb1tjb1dve293Y1t3e297dy9zd393e2NTe29vc1uDg293f3t7f3Nve4d7k2eG/28fQ2OHf3djb29jb2dbj4dvS29zW3dvh4NzY3t3e4eLh3+DV2OLh29/e3Nze293e19fd197c4NXQ29vd1N7e3t3a2tjb3tze0sPW1tze29jY3dLd3drW2d3Y3NrY2tfb1tzc29jb4d7Mv+Xg297d29vc4OLe3uDa3tzfysng2bXX3tXN3tfj0M/k3tjd3+Xd4drY3tnX4OHZ397Y2+Hl4N7d39vYrszf3Nvg3tfc29ze29vY0uPY1dnc3d/Y3tnf2tvZ2tvY3Nvb2t7e3dvfy9fe3d7X1t3Z29re4t7V29/g3trb3N7e39Xcz97d1t7e3N/b3d3h3t3d2uHLxtnV3+Db2+La2N3O09za3d/a4+Pd3t/a29fg393V19/f3t7Y09jb2Ni/vuHc3te31d7a3dve3dvZ29va29nc4Nrb197b2Njb2Nvc2t/j2d3e3t7e3t/e29bX1t7c4d3b3t7gn9Xc4Njg29nd4NjA1+Hb3N7g3OHh4eDi2dvf2OHj3N7a29beyNLe2NLL3dnd29nb3t/e2tzX29je1pXj1t7h29hOtuPb2OHZ1eHh2MzV3uDgzNnc2t7b2N3X1dzf3dzd3N3Z3d3M3d7b2NzVzNrU2t3Q2NzZ3dnY297Zzd7e4d6q1djc293g4N3d297V2uDb3t7Y3uDe3Nna39za19jm4djX2NzY29vT1NvZ4NvW3dfb29XZ39rVz9va3tbK3tzb4KXV3d7Y1eHd3uHh2Njc0Mul4OHd4dve293Z2N7g297d3t/f3tvb2eDd29nT1dPc4cHH3NzU3d/b39fJ4d7i3uLg2Nrb3tfa29jj4Nzd2Nvd08/d39/e3djb3NzV1+DY3Nzj3dza2N/Y1dLh4djd293V1tbb3Nnc2t7b0t7V297c497e4dLN4t7d4tzj08mostjg2tnb393b293g3N7U3t3e39zb29fY1t3b3trZ3t7b2dbc4dve3NrZ1dXU2+Hd29rb2tvY2NnZ3t/f49rX1dvW297d39je293b4d3Z3t3e28vY3djR3uHe3NnXyODe2d/b3dbd3tzc4eDd4N7d3NPY3Nva3OHb3dvb3uDh3M7M4dnb2tbP29fT2NjV3tLMxN7Y2dfT0tLb3NzX29vJu9fS3+Hf3tfY29/d2dvX2dze3t/e3N/e1djZ1dng29jW297g09vZ1Nrf2t3e393e2NzTrNLd3dvg3uHd1d7j3tXJ2+Pc3d7P2ODJ2+Hg293Z29/J1uHW19Xb3t7e1tvd29ve3d3Z2NLc2trj29ncz8ao0dva1eGzr9ve2tXf4bu14eLd3d/Y29Hb2tHV49zY3+Df3dzg2Nzb3drR4tzb297e3tvX1NXZ3tvc3N7g4M7S4+Hd1Njh3t3b29/d39LM3djf3tvb4c3T0Lrkz9bZzN7h4+Ld3N/eztje29LQxuDb3N/X3Nvd3N7b2Nzb1d7h3tm74N7h3uDZ293f49zcwcXhuNXe4N3TqNzW19Xd2N/g4N7d49rc19fe2dzc2NvYytTj3ODc2Nfg3t/e3d7b0tvb3d7V1dvZ397X2tvhupPi0Lff3d7h2NrU1NjT3NvW4ODg4+DZ2N7f3OHXz9fg1dfc1t7Y3uHf3szB4djX3OHe297d3trW3tvR3OHe29rU2trN2t/e29Ld497V2svV4N3Z4Nbd3t7e29vg3trb1eDS3eLf2djg3Nzf3uLd3tjb39rg29bc1t7b3eHV29LUy97Szdzb3dze2N7U1eDh4Nne3tXJ4djP29nb29LW3NnW0+TZ2+DY2NjY1djb3NrS3tHR2trd2M7c2N3P0tve2tPe3tnd29bY2Nve19vc2tve3+Dh1dvh3eTj29je3t3a39vN1t7b3tnb2t7f0dvb293e4N7a2+Le2t/c2tTe1tff2Nvf2dPI3+Hg4OLb3ODY3N3dwpLg2uHe29vh2Nnb2d7e3+Pa3dzZ29vc1tvO3dHX29jb3tvb3c3S2tXS297a3djh1dXb3tXc29zV2+Hh3eLW29C33uHb2+Pa29ri3uDZ29jf4dvc3tfb2da8ydze39rX4eHO4dja2eDZ1t3j28/c1tjY1cTg397f2N/e4Nvg4Njb0t7Gnd7e277b3Nzh3t7d2d7Z2tje4dXE3M/Z4M/V297U1dfT2NfX4d7Y2tXF3N/V1N/e2+De3ODg497g2drZ1tDd3svM2t/b3ODX1dfX3eLh39za3t7d3s/U29va4uDY3+HHxOHK19ze38zc3uLc3eHd3t7c2eHa3eHf3uHg3Nzd2dKp3+Hfrd3cy93d3Nja09zZ4d7W19TM2tvh2Nva2NXX2tne3t7bzOHS09PW2Nne2d3f2NXe4ODWzeHe3t7e2NzbzM7j497b2NXT4dve3tna29ze2dje29Hb4Nve3OLT1dvb47fO3s/ag7/l29zd3Nvb2tvY0tfe3eXe2NHY3eDGyOTZ3djd1NXV397c2OPV19TU4djP1dfO1ODg3d/i3tjd3Nzb3djV3d/V4Nzh4N3c2LfS09rc3t7b2ODf4dvX2N7d4M/c4NTZyd7d3drd2dHb1eLb2+Ryqtzm4dvf0tPc29ve4tjf2Nzj3tvY297e2dvb1dnQ0dvkoq/Y1uDYzLvB3N/i49XS3N3b3N7b293Y0dTh29HV3tDau8ra3dza2Nrf283e3Nve2Nva3Nvf3t7Zxt3h2tza0+S0v9/e29vb0svU1dnZ1uHi4MnW4eHb3t7Sy9rS2LLc2tOg2+De4N/V3+Lj29zh197i29zV397b1d/U3uHh3d67zuPY0tbGucHb4d/b4ODZ3tvY2dzb2Nvd3N3b5LzN3duZveLb3Nre3t/Ww97O1dve3N3b4dve3dvi3+De3su72cC72tne29nb09Tb29/S2d/i2tni3uDh3dbC3tvb4d/h1Z/b4Nnb29Xg297f29/N09/d3tDdz9fW3trY3tva3OLf2tfQ2ce62+Hc29ze4uHc3tjd1t3f3tre19bd3d/bydjd3t7e3d3f297c29vT2tng4d7b3eHb4dTY4N/f29bX4dnS29/Z3eHV3d/f5LO95eDc1d7e29zd297g3uDa3t/c48vV2uHe29jb3N3a19rc3tze29/T09Lh3NXb5djZ2dzd4NHa3Njf39zg2NvV29nY2eDh3N6m0N7bz97g49zY2+De1dXX397b29jd2drb4OHi29ve3tXc2tzh3N7f3dzY29ve3t/d3czV49rh2dvi4dvY19je2tvW1Nrd3tvg3tze19XY3drb4dve3d3b29/h3d7Y29zYz97Y2N/b3tvY3tjf4d3b39rh5N/e39jSu9TW4Nrf1bvg3N3Y293b39/h0tvb3tzb2dvXztLe3d3d3tvW2t7b3eDa4N3Y297b3N3f19rS09Ph1dbi3tvb29zd4dvN29/b0Njc3dvb1tjZ2djX49jZ4NvZ4Nzb1dbb19Xh2+Ha29Pe4cjS3dXh29vg4dnf29rd2dmz3d3b1dfU4NXd187i5t/d3eHb4eTP0t3W4dve2dXf3tTP1d/e29rf3dvh39fY2N3d3Nje3c7e4d/f3M201cvf39vb3s7M29/j2cDh3dvT4dzV2d7d397Y2OHh3trY2dfY3dHV3drXx+Dc3+Lb2d7e3dve2t/e3dzj29rcydve2Zne3t3Z3sfY2NfY2dze3d7a4dGq0LLM0eHb3tnQ2Njb29zg3t7Z3t3e3NvjtMjY3OTj0t7X197Y297a393b0t7b29jd29vc49LO4djb2N7i1N7f2ODOxtvc3Nzd39jW29jf2eLj3t7R3uHb4d7hzM/e4N7e293Z3dve2N7C1d/f39ve3t3Y29XM193i3d7g3d7h2J7PtMjg3t7b3NPN1dvb3eHe19jc29vg4NvN2t3f3ODY1dnh3t7f3dza0tjd2ODe193h3dvb0dbb4Nvd4eDd0drb4dXL3eLc29Lh29vc3t7d1dvf2Mzg3d7F4N3b2t7g3dvc3drN4+DV3dTY29zZ3tjb2t3Ay7jY2tjf3t3c0a/h4tnU4ODfydXb3NXZ29vd2uDPz97Xzdzf4eHe29rZ39ve4t7c297a4c7Tx9jj3uHb297b2Nrb2tji29ze3t7e4uDP2d/YxOHb1dnf3tvf3tzS3MzS3t/g1qrd3uHi3N7b393a3tnd3t7Y4OHY29je39vj4Nje2djb2N/d2N7czNrd2eHc4NrX2tvb3tvY2tvd4dLd3tjL197f3tXV29va3t7P1dfQ3Nvb39rb3tng4N/b2t7f2+Hb2+DS2+Hc3N3V4dja4NWg29vY1N/h3t7e293Rwtja3+Tb3t/b4OLa3NnV293c0Nzh3t7f29be28nl3d7c1+De3uHY2d/g2t3d29vb2dvc2t7XweHc2t7e4MbB1N3d3uHa2tLfzsvg3N/mrqji1tji3t3b1ePe1t7e2d7e3N7e293h3drc2NPi2M3e1drX3s/d2t3hxsXg2dzV29HP097mtrDc3tvW4Nrf3tfe3dvQ0sXg3N3i19bgecPg3tDX2N7h4drQ3N/Z19be39zb19/W2tTV3Nre29ve1tff3Nvd1eDS0+DS393g4t7I0tvP49nZ3t3h3dzc0tve3tzb4trd29vY497V29vhwsDE3t7e3t/c29vDs+Pd4tzG2tzc3t67o+Pf29G53uHd3d7f49vBst/b4N7g3eGfluO5xdLZ3uDg2Njb3d/X2s/a2N3e4eHf3OHh29vZ3dva3d3e28jh2MXY3N3f3t3g3eHf4d7g29Pb4uHf3t7i3Nvh4dXM3uLe2+Ha3N7h2N3S2+De2tvd3NfM4dzZ0tzb2rzU4NvY2uHm3sLXxtTb2tXV2tXc3tvd297c3uDh1cnR1Zvn1dfe2tvQztXb2Nne29/g4eHf4ODd3OPf3t7i29XZ29vW4OHcydve1Nve293b4uLf4Nvfz9vf3t7b3d3b3d7f2NLc4ODe4dna4dzT2N/h2Nzg3tjP1dHf2t7d3tjd3tbX393Y297eldzh3dXS29ng09je29Pf4NDcyODazNnb4Mqv397Y1tnb2N7SrtTk3t3V2Nve3tvT1d/Y3X/S3Nzd3sXh3tzg1d7P1d3a3Nje4dHf3t/Y3dvb3N3d0dve3trZ293d4d7X2N680dLE28/T3t3e0tff4NvX3tvb2Nzd3NXf3tfY3t/e3eDb3d7f3tjb39ve3triyLnZ29nh29ra2dvj3uDi3s7f39/R2cnc3s7Y3ODd38XU3NTdn83e3tjY19zg4dvc3NXa3eHf3Nve3N7d297W297a39zV0t7Z3+Lg3d/e3tnT49HW2tHe0t7c2dXY2Nvb3tDW3uLY1Mje29jg3tnb2dbY3dne2Nvh3Nrf3trL3d3bu9ff3t7e3t3b3t7f1azi2eDb19Xf0trh0djf49vE0dnY2tbm2drUz9ze2dTI2+HP2+HY2dzg29rbydvg5s7J3NvXzNPK3tvf29ze4N7e4N/a49jC09nf297d19Te2tjf2NfV29vd29vf297U2t7e3t3c3tXh3d7g3t3c2Mbe2+XGwNjb39Hb4NTP2+LYyNrX3tvZ2NzZ2NLY3tze2LfJ3N/e2+HY29LF4Ni228rc3tve4dPT3d/c3tfS2tfY3sbZ29vb2drd3dzb397b1d7c3tja19LS1ODd39/b3OLM2Nzl29Pb3OHf29bh29vi3tve3N3d3dvb2t7f397X2dza0ePS097V2Nrd1bvb3Nrg3dne39vY29/dzdPT29za2trh4NrY19zb3d/O1d3h3Nzb3dfh4t7P3OHf4eHY2dng1djc4eHd3Nvb4dzf3t3X297b4dzW3uHk4dve3Nvi49jc4ODe3dTY2d7g1Nve4N7e4Nfb4NnZ19XU1d7e3N7e29vX1dzf2Nja2t7d2dnUzeDe26Pc19ve397c1cXa2Nzf39/d29LW2Nzk3Nff2c/b2t7b2N/e29/e3tjY3Nvb3t7X2dXS3d7f3NjY3uDf3d3V4dXV39/c29jf39vf49jR4Nvb29ze2d/Y4eHe3eHd2N7d3t7dzN3b19jc2+Ph4N3Z4+HMzt/b3t/e3t/a2Nze1tXcydze3N7g29rY4djc4+LRzuPa4NLW2+DO0t7R0uHf2dbb3tnU3tvb3tzf2Nra3drY29nb2dbV3dnc29Xd3N7b29ra2uDVz9vY3NzhyL7j2NvP3uLd3tnU3uHe39zP48rV3eHf2Ni0z8/T4d7e0uHCtuLT3+He2Nvg39XU3tvTz97a2+He297e3Nzg3uHh2c3R39/ewdfd3MzP49vi3NnK3N7Y2ODe29vh2d/d397e29jh4N7Z1czY3+Dc2NrX3tzg0be55s3P39ng3tLc2eDe3t7b4dvb3dSoyd7g297U1dna3t7h3ZjP3dLS297V3tXY493b3t7X09/h0tPc297e3Nve28nb39XM3tnc3t7V19vc297g0Nbc29fe3d7Y2tve293e3tXbxtPj3t7g29zc3djb3d3e1NDb1tve1NHd3eHHv8rY0My/393d1N3e2N3f4Nrb1eHf5MjW4eHd3tTb3Nvf3uDm4d7e3Nvg3Njb397V2tvZ3t3J2N7b4N/c3uLi3t7e0tHdz9bh4dva1dvY3uHb3t7a29jX09Xb3tvV3tvc2t7c2+HR0+La3ODc393c1d7g4t7f29zb2Nzb293h1s/W2ODb083h2N3c1djW3tXh39jY2djZ49/i293e4Nfc3t7f4sza3eHg2+bYtODa3dXS4c/W29ve3tng4Nvh3tzf2+Hi1d/g29nb3d3Y4N7c397Y2OPi29ze2N7b2tvZ2tze2OHb2+Hi4N3b19/b0d7X3Nbb1+DY1d3f3tvh4OHQ0t7Sx+Ld4N7d2N7b2tvd2dvh4t7Qz9vc3uHe0uLY2NTh39vb09/e4eDc3+Lf297e39vh3tnb2dve5eHh4tLY4OLb297kzM/b3t/e0MvS4NzU3tjY1N3i3uHc0t7Y39ba1dHaxNXa49/i4NLO39nf29va3NPV4NrV2tvevcbb3tva1MOo493a4Nvc2Nzd3NTY3dXY1NjM2tzb2t3c3tne29zc4eHS3+Lf2uDc3d7e2d3b3N3b3tzc297c0c/l093d3dnY39ljuL3C3dvTtarm3NnZ2NvV3uHa3eDV297d2uHKn+LV3uLg3t/e3uDc297Y3tvf2c/d4Nva4N7GytTb29zRvcrf29rV0Nja0uLf1t3g18/S3dXb1c/d3uDc4NvY3tzf39TexszV2dvY3t3d3uDe1dbe3d3g39va0tvj3dre3N3e2szYq8Dd0Nre2dvg3tfazNDe29jb2NvW29jW293T3dje3tvU09rd393e3Nje4d7b29zd39XV4Ofb2Nve2+Hi3N7h2M/M1eLVwd7V2t3d29vf3+Hd2NvW297b29vI2N7b2uWtyd7Y3OHZ3uHg3uHd4N3e3Nng393d4NrYz9jg393e3tLh3dnf0drg3trb3dPZ0uDb3eLe3dXg1Nrb3Nna39za2tml0uLi293X1dze2dLb29ve2dPk29vc1dHW2N7b19zd3dLY4dbS2trC4eHe29fg2c/j3NLc2Nbe2LjV4ODZ0uHe29vc2N/P2OHW3d7f3eHd29ja3du+z8y+yOLh29vf093h3d7V0dze1d3b29/ez9Hh3Nfe3dve4N7h497U19zd3qvV3tzb19XR29vc297e29je3N/f29jP2NzU0uHP2+Hb3Nzc3d/c2b3e4d7Z3dvY29rd3+LY0dvV4NbX4tWs3tvh3tze3djf3t3b2d3g3t/c293d28Hbzrjg3d7b1uDe39Xe2drZ3tLR3dzb2t3M1N3Z2Mnj2NnX1uHe2M3P2uHb4Nja1tnM3N7b2drU29ve3trX3N7e3Nja2dvX397hzN7d3t/d3OHc4dXf4s7d3NzfjNXX29rg2+He19bL1dni3t/f3d/f3t7e2uHc1dnj3tXf4d7YyObdx9za3Njf29ng3d7d4tvb3eHa3t7e3d3e297e2t7Z29re293b4sq2wt/W0t7Z2uPZ2t3Y2dnb293V3Nva2NzY19vd2Nnb3tvV3tPb1d7a397Z3djc3t7e3uCz2dvb3N7e1dvc4dHd4tTS1d7c4d7f3dvT3OLe3dze3d3Z1di/4dve4Nzh3t7e3trd2Nvh3d7d2tPb2+DY0tzf3tvh4M7Q1c/e4t7g5tHR29rb39/e2N7e3t3a2N/b3tfc2tjb3tPY3t7Y1trd4dje2NTZ2drb4dnf1czh3N7f3+Le29Xf4NnU2Nvg3trkyM/V2NXd397c3d7d2+Pe293i4N7d1+HY193c3N7V3N3a3tvX1t/huNTPvt3d29nY383NwNjez9LY1uHe4NvY4OLd2NzP2dvY3t3c2trV29Lf3tvW2N7Y3Nng3tve0drb2NnY2+HR19/e4tvYz9bY29vc29zb2Nvb3NjV2N3i1tXd3t3b3N/X0tnZ3+De29zd3N/g3t7h2tzW3eHb29Lg3OHg4Nvc3ty13tLQ3N3b49bc2NvUzNTe4NvX2N7e3tjf3trd3c7R19ji18ng197e0NrP1My519zj4+DY2N7P2dvA2NDk3tTa4dze3tre3dvc2+He3t3N0M/h2tvQ2Nve29PX2+Dh4dfS39zS3ODd1dbd3t/Ozt7UzuHa3dvP3eDf2d3X393g3OHc2+LY2eDW0NfG0tzW2dre3dvc3uDb3t7d293b2NXZ1tPV29vb4d3Z27PVxc7e49vc2Nvc2d/d29Xd2t3g2N/W193W29/e2NXf3uHe4eDa3t7d4tvg3Nze2eDc3s7A5trf3tvU1d/ez87g3tjC4d/e2tje1sXh4ODe3N3j2Njm3Nvb4OHe28vh2NLV1djH3+Df3uDd2tjR29zY3t/c3dvdzcnh3dHa39zc2NnX1dvb3Nzb29vW2Njj1cng2Nfd3NnV3dng3N7b2d7a3dzc4Nzc29ze2Nvc3tjg3tXY2cje3+He2+DE2eLe3d3a4d7d3eHb2tze1Nrg3d7b4Nve3o3W3d7b1tzbxNPg29jc3tzX3tze3t/P3dvY2N7c3t7c2Nvb3dTIvNDV1dvZ2dnX3tLc4N7e2djWydrb3uHh19be39ve29nX3NvY19rb3t7g3t/b297Z297c2N7e2NjU2NXa2tvj4Mna3ODg4dve09ze293d293e2dvb3d7Y0tLhlNXa0tndz8jM1dvV09/f2tvc2dvb3djP2NLd3tjd2+HS0tvi1b/g1Nve2djaz9fU0t7V3uHeod7W1d7g4d/Qz9/h4trP3Nre3NfR19jd4dTZ2uDe293d3drg4dnb29rh0M/e3Nvd4eHc29zd3eHi4dXP4d7e3ODa3Nzf1cLe2+Lh297e29fDzdjg39zc297V4s/O2Njb4NDb0tnZ4d/c3tXb4MrU4d3e0N/W2d/c4NbX29rG0s/E3eHY29ve4d/b2+De3dbd39/j3dLb0dbe2Nvc3tvd3NXe3NnR3+De3uDb2+He2NXW4d7b297h293e3NXa2OHb1d7b297c19rJ2N7Y4dvb28TO3+DY2N7W39Xb2ODf3N3b5N/b3czh1drY3NvYz9fe29nb297i5tLY4d7e4ZrM2+Te3dzX1NzW3Nnb4N/U1d3e4N7f29vd3Nvc3uLY19zb3tLV1Mzg3t3h4d7d3tvb3+Dd3t3Y4OPe397a3drb3s/U3+Dc3djb1r3b1+DU2t7g2dbQ1ODe3tzY39ve3N3e4drb297U5eHV29re4dvc3N7Z2uDh4eDe29nh3tzez6re3tva2NjZ29Xhwtvd2NjY297f293d1d3Z2ODg3trd297e2tXd2tze29fe2N7Z2d7b3t3j3tfb39/X29fW2Nvc1dve3tnX29ze5dfJ4tXY4N7jycrd3t3e3tDc3uHS3t7f3uDa3dnb2+Db19ze29zd39rW3N3f4d7j3drY193Y2dzd397h3d7a2OLh3uDb0d3h3djZ3Nvc4t3Y3tje3tnZ2tzd19Xd0dbh29je3N7e3dvb28rd29bZ4eDU29vC297e1dzf3t3g29rg3tzSzN/a19/d39zb3tvX1tnY29Te39/b2+Db4d3b3dDS29jW3d7V29nY0tzb4t7b1dne29zb3d7e2t/f2d3c3uDf3cnQ1t3c2djb3eDh3uHY3dnV2tbe4OHb2uDZ3uPf1eDj3N7U19jb0tze3tni3djY3N3f4+Pe2N7e0t7WzNna0trb2tXX293Z19ve2tjV4d3e3tjW29ve3d7h3tjfz9Xf2t3d3dvX3tzV29/Y2t7S3ODd2tjg3dve2NvZ1dvc39/Sjtbb4OHc29vc4tvY3tPd0tXfz9nb3Nu74tzZ3d/R2t7f29vY3Nzb3N7b3tza0cjh4OLe4d7Z3tvW3tnS1N7b2OLT193b3dXb3OHY1tve2NjY2Nrd39/Z3tvev8vg3tXe1N3i1sLe3tvg4Nrc293b1Njb2tza1+Hb2dvU3tjh4Nzf3uDe2Nrf1d/h3+Tg3Njf3tzc3tza2Nja29na3+Pe3Nve29vb4dvc2t3YyeHd2+Dh1Nvd293g297e3N3i29vd3tzd3Nvg3tzd3d7i4NPb1dnc09vi2dvc297d29zd0q/e0t3c3d3e2t/d0tvd3t7d3t3e2Njd4N/d2eHh3d7c4dbb293a2tjZ5djX3tvb3d7b3uHe4N7Y4dDP2t3a3+Lb2+Df4NfY3dnS4dPG1eDj3t7Kzd3e2trd29zb397d4dfZ4eLc2+DTu+Hb3tjexdvg4dbO3OHY2N7c293c3OHXsNDG2d7e3t/a297X2NbL4dzb2tjb09jh2d/i1cvezdDh2tfX3dfg1dja3NXb3dvV19rd39zd2c7b2Njd3tvb19jZ4d7Y3tTY2dLU29vT4N7e3t7e2tva4d/c3tXY1tve29vW29/f3t7P297h29nY3eDh29vYzNzj2NzV1N3d3NXj287d2dTb2dvd3tzj1c7e2tre1dbW2N7Y3d/a2d/A0t3h39fS1dvX2t7h39zd3djd1tje4OHd2+Hf2dTc3t/C2+Di4dvb2NvY09Xe2N7a3ODd3OHd29vb2d7h2dvV3t7d29Pf4eHd3dre3tvf3Nnd29vf29TJ3sDV4Njb2Nva2dXSzNngzNjY3d7b3eHf4OPa2d7b3d3d29vc29vU39/a3N/e3Mzd39vd293b19vbzdbb29vS4Nzb3tnX1NvZ4Nvb4tze4d7e4N7d297e2dXe2dzc3trb4d/f3NzczN/e2t7f39Lb297c3dre4dfd3dve3trR4tjbwtne29/g3MzV19Db2tfa3+Hc3uDa2N7c1t7e3c3a39ja4Nve2djT397Y3d7V1ODS1N7Z2Nbb3dna29jf396/u+DZ1tva3djc1Nve3tzc4dze3tfe2trQ2MrT4d7e3tre3tzd3t/b4+DR2tvd2tnc3Njc3OHf0tvb3ODe197c09zj3dve0t7hscjd4d7b2tDc193e2dvZ4Nzb2dvb1tve297a3Nvg2t7S3d3d2Nvbz9fd3N7Z19re293h297a4cvH4dzb29/e3tnV2dzb4OLf4djb1t3W2N/j28/b4dve3tvf297j3d7h29va3t3W2d7h3Nzc2tzb2N/g4t3Y2tna397e3dje29vb2NnY0dLb0t/b3trW29jc2d7e3Nfb29zf3tPe3N7a3tDV2tnY1dvb2t/b3uHe2drb1d/b29LY397b29ze3d7W1dvf3t3b3+Db3dna2Nvc5d3c29ve29ze29ve29jN3eHX2Njb2t3b297T2dnc3Nza3tvc4drY1Njg4d3T093b39/c2tLT2d7g3t7e2NjZ29jd3tve29vb2N7e3t7b2+LCy9/h3tzZ3Nrb397e2N7e2ODe3tvZ2+HV0OPg29vc3uHe3+Dj2tvb3d3V29fY39LM393f4N7b297e3t7c2Mzf3tnZ3N7e2Mff297f3N/Z1dXW3dja29va2tjSzN7e3NbY29vb3N7b3N/c2t3b28K1293b2d3e3+Pi2dvZ1dre27DF3srM3uLc293f3d/Y2N3a3t7e3tze39bM4sjG4drd4ODc4d/b3eHe4NXb3uDhycDh4N7Y4d7d4Njc2t/e49jZ393j4tzcx7fe29vjx8nh09jX29XT3dzj3tHG4+Pe3dfg29jU297e2tfa29nYy9Pd0tze49/c2+Le3NjI4eLCzODcu8ng2OPh3dPV3tfV4ePf3+Dh4d7e3uXR09bb4d3Vzd/f3Nvd3NbJ4N7a3OHj3tjV2+Lc1tvX0tfV0t7d2Nra197d4N7b1d7b193Qy93i3tjZ1tLf3N7c3tvb0tze3tvd2tbe197c0trV29nh3NrX2diy4Nnc3dzd3tO929fY39G44t7b49/Y0Nrb3uHe29nd4dvf3tvV4drY3Nfe2dPJ4OPf2N7b3dbh4drc2d7e39Xb49XM3tve3ca3493d1dPa297f3tve3tvh3+Ph3djZ3N7d39ve2N7e1dbV3d3b29nX1tLY3uHg29rc29rY4t7b17jW3tve3Nvh19LY3N3d29Xc3Nve3djhztqp2Nvb1szT3Nfg3tve3tfZ29/e2eLN2ePY19ve1N3e29va3d7V3d3a3d/e3+He3t7f3tja2Nrd3sPS297Y3tzc3tjc3tvV397X2N/e3t7d19fc29za2tve297f2OPf2Nff2NTe2t7Z4eDi2Nzg2t7e3uHT2t7Y197h393d497a38Hb3dzf0sPh3d7e4tve2b3e3+Dc4dzc3+Dd297e2dze2d3Z3NXb29vg3t/T2Nrc2tvX2OLe2OLextXe4Nzb3dnY3+Hg4s/b3trO29/e3Nbb1tjc29XU3t/c29/a2eHXzdfh39vf393c3tK7z+DY29/T197e2dXe4eDh29zb297c39zh3dvi3uHj2Nfg3tvXzuPg4t7c4dne3dvf3dzZ4d7d3drb3Nrb2tzd1d3e2Nrgzcnb3dfZ3Nvb29re397h3tXa3t/c4N3a37zd2tvf3dXa4drX3tvY297f3t7e1Nvb3uHe3ODe4OPd0dLa297c3szJ4dvc3Nzd4+HZ4N7e29nc3t7f3t3e48i/4ePY2dzf3t3e3N3c3uHa297e2t/f3t/c3N7d29rb1NPY2+Df2NnK2NvY1d/e09fb19ze3d7Z4cbU3trY2drd3tbY1Nvb2dzd1d7a3NrV3t7e4tLO39ff2t/Y3dva3t/Y2NXb2+De3dje2tzh3d7h3tvg5eDa2OPf2Nrc3Mze1dPb3Nrb4dvh3tvc0trY4Nzh4dvb4Nnh3dve2d7Y3djc3t7e2+bh29fb29/b2eO11uHf3t3b3dXd3N7c073e3NvYxNna3bW+493W2Nvf29jU3Nvi29jG2Nzb3d3Z2t3d2d3b2+Pa1Nnf3t7X2dnf3s/e3N3j3tjY39rh1Njg3NjW2N/Y193g39vd3di6397e3t7b4N3c393b19nV3d/e29ve3ODe4uHc3t/h3dXV29Xb4OHe1t3Y2+Df3uPe39vZ4NzV0uDb2Nvg29vc2d7e2s3b4tzd3sbe2t7c2eHh2d7g49/d3NvW2N7b29vT197b1N7d3dre3dre1t63zeHV2ODc3t7c3d7j29ve29vb3tjc2tvY3dze3ODZ2Njh4d7c3eHf2Nri393e297b3b3G39/f3t3f3Nvg1dXczdvb1tTh2dba2drb193b3uHh3N7b2Nze3dvY493Y3tzd3N7b197h3t7V1eHd3tzZ3sPY2tvj4N7f1tnj09bh29vb3t7Z3tzc293Y2eDc2d7i3trku9Lj4d3X39vX3t/e3uPh2d7i5OHMyt3d3t/X1t/Cx9XazN7c3OTf4NjVz9/I3tjY29LX1tzZ2dLb2NXb4eLb2uHb297e29jY3eLh1d3k3t/X1Nvd3trb2tzg49/RzdfS3ODe3d3h3tnb2uHc2tnW1d3U1uHb3N3e3tve3d7d29rh3N/Z4Nza2tLb3uHg3OHg3t/c2dfT3t/e39vb28/d4dLP2Nzd29za3OPM2+PU4Nfau9Pd3Nvdz9be2NfY1dvh3tvY4dfV3t7h29fY0ubf3eDb2dDW397jyNjh49vSz8ze2eHe393Q2Njc3Nzb3dnT3djV4eHkxcre3dTd3tnV1uHb2tnc4N7b2+Lf3uHYy9/d3Nfd3tni2tDf393b4cbX2+TW29zd2tjb29jYvdLa1dHS197Z29zZ2t7c2qy63eDW2dbZ2dnh3Nvb3NvU2djY4d3d29/e3tvP3+Hb3NTV2+Df39re5KrE49zc3trd2uDb2t3e3+PCyePb29vd2tnX3t7a3tzY2dje4+Hf4OHI39fb09zh2tva1tbe3tnd2tvb3tjb1N7Z2+G709imxOPe4drT3djZ3t7b29vgz9fd09nY3Nvc1tza3d7X3Nvd2N7h4OLe3NvU1czY3t3h3djY3N/d297iz8/f29vY0tva3tvb4eHd2dva29vZ2Njh29ve293b3trOydzg3Njd29jc49vW2c7h3N/Z29jb18ncydTe09nd3tze2M/c2wAAAAEAAEAXAAAACAAAAAAAAAAAAAAAgAAAAIAACADe29jh29ve29vZ29jV2N/c4dbc39ra3+Df397b3sLS4NzZccPl2eDa297T29vZvNvd4OHf2d7c3t/e3d3e29vd29nh29nb3t3Z193b29TY297h19ja3dvb3N7Tu9Te29rg3t/f3trbz9jh3tzb3dve4afa29va29nf3tjV3rbZ39vb3tzb4NjM09nZ3N/e2tfc3d/h29vd4Nve39vT39za48rM2Nvb4tve3tfc3dPe3uHXxMrW3NvL09ve2drd28vb3t7e3t/h3tPY2Nvd3dfa3tre2Nvc29Lh4+Pk3t7g4N7Z2d7S2tjc4d/c3tze2ODG3NzY3tfb39/e3NbVxtzg3t/f2dbe3M/A29jV2eHh29vY29rd3d3d3N/a2t3e4ODIydnX2OPg39va19vZ297d49LDsN7d4cbQ197i2Nvb2t7d3Nbe4dze2t3e4Nva1tni0tze293e293e4d7f2tvg3t7bsbTj2dnf4dzg3tne3NXZ1tnb3t3e39/e29ne3t3f3d7f3uDb3t7a3Nvb3t7g2+Df3NLZ193e3t7e4uDY3sPZ2t/kr9Dh3tvb3N7b4N7b3Nvg2eHa4ePY3uTX3tvi4N3e197k3tze3uHY09ze29je2N/e3tTW3tvb3tvb2+De3+GvzePe2Nrg1dfh3t3R2+Dd2+He2N3j29vc3+HY09rd2tvZ4NnZ2NHf29nc3dfc3t/cxNXe49fc3tjf5N3X3Nzc3+Cr0t/f4N/Y28zX3N/d3t7Wzdze2Mjh3d/Y2d/a297e2tng39/h397Y3OLb2ODY3uDdzNrh3tDg2t/f393d3d3Xz+HZ29rZ0t3f293S29/e2Nvh3brW397a3djV1N3b3t3X29zR0t7b2t3e4N/f29fj3tLQ2t7e1dXY4M/Y2+Lc4+bg29ne3tTbztjd4N/V1dXP4tvY0tje2dfc3dHd3dvb1uHd2dzY3d7e3uDf4N3V29Le3t3b3t3g297h3trV4dvW393Zz+Dc29vc4t/X2NvV2OXextnW2tvc2NvU3eHh3NvZ3bvX4MvY3N3a3dTe2OHg29rh39nhbb/k3trY3eLI197b3tra2dje3t7d19jM3t/b3t3P0uHa29nb4OHY2tvd2uHd4d7c293e397c19PV1uDd3tva3eHe3t7Y2NC/2t3dzdfZ0t3b3Nrf3tTQ3c/D1dTS1dnZ3t3c29zY2dzb29ze4dbc2trP0dXd397b09TY4ODS1tnB2+Pd2tTf28/c2N3a0Nng4tzh4NrQ3Nvf29/e2dLXz9/d293c3tLe4Nvc29zb4dzf3dbY4OTf29PV1r/h2tTd197f2dfWy7ra4b3M1dvb2t7hvczh19jb2bPF3t7b1OHb29vd39jb3Nnj39jg4dnd3d3e4NXa3d3T2d3a4MvX293d3dTX3trP3eHJ2+Hd19Lb3tnd2dvb397i2Nva3NzY4N7a29/e3tvb2Nrb3eDc2tXb3Nzb4dzczt3Y1d/X2N7e29bc29nax9nbstjY3N/Y3N+/y97b1Nfb27Dd39bS3tvY3N7d3t/b29vb3ODe3eDg5OHe2N/e3sLb2d7e4eLh39zY1eDe3dzd397X3OHSydXfytjh19ve3t6D2N7Z29HV3tbb4d7b2Mne3d3e3dXb297c397X0dXe3tXb2Nng4N/Z2N/d293c3Nfg297b39rR3d3j4t7V3d7h0t3g2N3f2Nne3t3d1tfd2tvb3dngzNLd39vO4N3c09vc293d3N7f2tjZ29ne4ePgz+PVv9ni4Nva1Nnc297W3tXd2dPb0tXe3dvY0d3f3tjc39ve3NvX2N7a3szU293b1d/X3eDU3uHY2Nze26/I5N7c2N7e2s/Z2ODe2tnb2t/g19vb29jb3uDh3uLY2t3h2Nze2Nva2Nvd2dfh197c4d/Y3uHf293e29zd293h29vT4N/S3Nrf1N7W3N/Y2tjd4dvb2tbe4djU3tHS393i3Nve0tjg4eDMzN7Y2OPg4dvY2Nrj1tnc2tfb3dzY1sjY1NXe3d7T29ve4Nrc3t3e29/b3dnb4t7a1d7e3dvd4dPW4dre3Nvc3Nja4eHd3uHP0NvW4eDg3N7b3t7e4N7h4N/U29ve4dze293h39zY4ODe2Nze2d7c4a3X39va0t7gztrZ293h3tfe3N7d3uHh497X297W2dLb2+De3uHZ0N3SweTl3d7b0Nrg2+HZ3tze3t3e2Nzh4NrY393h4OHLquHh3t7i297a3tzf4Nva3dXE29fe4dbb3tvY3N7e2trZ3tPZ4N7h2eLb4N/V2+LY29vg3N7Uz+Hh3NjYzd3f2d3WydPj3t3G2tnh29rY2+De397d2OPY2d3a2d/b2Mnj4N/e08LZ1d/d2uDf1NLe2N3V2Njb3Nrd3tve4OHd2tvb4t/h3ODb3N7c3tve3tXY4NnN3uTgz9rb097X3d7hzdrb29vh4Nve3+He19vQ0d7b2+Hd2tve3tHS4ODY3tfb3N3c3uPe2t/k49/c297f397g4d7f2NPc2Njb19ne2Nne3N7SxODd3t7c3ODb2NvS3NLb2Njgydje3N3Zv9re4ODV3N7h4djS5Nnc2tzT1Nfb2tbb3t7h397Y3dvg3dG/293c3t/W0d7R497b5NTG4Nve4NPd19jb1trg39jUsuHa3d7e3dnP1d3d3trP3d7Y3eLZ2+DhvtXU4eDY3t/b193b2t7f2N/e4Nvb2t7b2Nje1tvY1uDa29zd3tjP39vc3tPf4dzf29zf3Nvc4d3e2tvc3tvb4dje3t3g4d7Yus3b293e3tbY3dne3t7d2Nnb4Nze0dXb2Nvd49fP3dXZ19zW2d7a4MLFz9ve3c/Y3tbU3dvS3uDezMng2+Df2drX3dna297b2Nfa3t3f2t3Y1Nva0tra29jV2Nnf2d7e3d3h3N/e3+Le3tvY2tzh1dXe29vg4d7e1tve4dze4dvh3djh293dzOHf4dzd3OHJ2ePd3dve2t3e2+Hdz97d3OHb3dvM3t7e2dba19vh4dza2NPf19rY393V1dXb3t3c3tfW3djY3Nvb3d/b2Nvc393b3drb2NvV193b4NzR1dvf3d7Z3tve3tzh3d7b4NzY2d7b39PT5eDdzrze2d7d3drg1OHg293Vwdjh2+Hg3eLh393i4N7S1d3a3uHa29re4dzg3NjY29/b3dbe4d3d39rB3uHOyuDc3eHZ09/Y3d7f4NHX3dvY2uHZ2dvh2dvb2N/Y19LZ3trd3t7e2szc29nM29/e4eHe2N3f3uDd2drY297e29jf4uHYtOLb3t7e1Nvh4N/b3t7H2driyNze3t7b3uHj4o9p49Df3ODd3t/f3t/j3tve3Nvb1d/f3Nzg3Nzh3NfK2t3e29/f3t7Vz9Tf2tnf3t7Y1d7b3ODf4dze3tPX1Nzg29rZ3d3g2t/h3tfd3t7h3t3c3tvb0eLc3N7Y2d7i3dvg3Nvf2s3Y4dvF297h4Nvc3eLe3eLFydLV2drd0tvYeHLe197c4OHZ3OHg3N3czdjc3N/P39C8297Y4N3c0tvb2+He1Nfe3tLV3d7g297jz9vc4ODe2N3d3tjV3drY4szN2d7b3uDc3NTc3+TZ3uDV2ODd3LVh0t7Y293Y2+DY19ve2N/XwNXj3N/d2N7e3+Hc2tfb3eayy9ve19ve2MzW29rh2dve5NfV3t7b29je09Lb3N7c09XV3tzd4NnPz+HV29zT39rh2N3e2tjb296/1+Lc397b29Xe29PW297Z29eo19jc397h2dbfwsfe2tjd3tzjxpTQ3t7b3dve4N7b4uDa3t/e3d3g3Nnb3eLg3N7e3NXY3NzX3uLd3t3f39jh3tvY29jf4d7c2NvS19zhxtje3t7X3uDc3NvV0NPUydzW19vZ2Nrc29rW3d7b3N/h2NXe2NPH1tfY2djZ39/c29Xdz93b4dze49vGzt7d39zS1uPKl9jY197b29/f3dzf39va3tzY0uPh3d7c2Nre3uDezdXe29nW397W3tvb2N7b29zk297e397a297e4OPX39/a29vd3dPa2djTzdXP4dPb297b297e3N7Y3NfZ2uHc29zY29zb2N3c3d7b3N3e19vQztnS4dzb1ebU3N3e1djd2dOY1NXY3tjh3tvc29zU2t7d3t7b29vf3dve3t7Y29va2tze4dnb3trT2+Lh39XZ4tre3dzj29vg3tve2tvX3dzW2+He19vb4MzR3tzZ3Nvb2tvX2dvb2NTjzNDf4dvc2dXW3uHe3uLe29fZ29zS2MzP3Nve2tK35rbV2t3Z3t7d2+jT0t/g3tzg29zd3Nvb3tvg3NzV48vL29/Y197b39vZ1tre497Z4d7e39/f3tvg3tvg3ODb3t7e3drWytjb39fg3tzd1djY2d7h3MvY297a29jb297e28zY3drd397e2tjf3Nvd3Nvc3NHe3+Di0tjg4t7b3Nje3tvZ4eHc29/c4Nbb29fh3M/a3d/b293c29Xd29Di0tTb3NnU2t7d4dfR3tzZ39Xd3t7b297W2tve3dve3uHcxdvg2N3b2dbW4dvU2tXcz93Y3+HXyOHeyuDP1eHT1d3e0N7e2t7h39zc4dzY4Nrc3N7e297b3d3d2NXa3tzf4Nvb3dXK0dvSzuHd3trd19/c0djh3tnS4djV3N/YyeHd3t3f4t3e3Nva2tfd2NDZ0d3f2N7c3t/f2d7h097d29vX2Nzc3djY1dfa2NnS097g3d3Y2uDh29/Q0t7h4dbb19ze293Y38nD29rb297c1NvY1t7Y1dnb29vb4NLW29fY4djg1dbZ4NXY4Ofj0d/g3Njb4dvg1srb4bHQ4d7Z3d7e3Nvd2d3h29va2tPS1dna2Nvb4NnZ4d3b2Nrb1dveydje29vb0t7a29ja3tjX4N3e3t291dXX3+Dc3uDY3tHe4N7d097e0dHe2Nvb3tve4dnZ29rU4eHd2tve0tTf3dff29vZ297g3+LSzdjY2dLf3tvh2N3Z2MDL2dvY2N3c4tzb49vc39/e3NXd3tvY1dzb2N/a3t/X19vi1t7R2NfY09bY2tje3NfZ3tvd4dHb2dze3tjS0d7e2Nvc3tvW2dzb2NvY297i29Lg3dvg39HR49vb3d/e3eHY1t3j4uTb3d7d3d3h3trd29nZ29vb1tzf1t3c2t7h09Da2N3d3djX39zi4N7a3t7bwtXe3tnZ29/a3Nze3Nvb3uPg2dzW2t3h0tve29zd0tvb3uHPtN/V3Nfb2tre4Mze3t/c29ve2tzYzdvP1drb293d29vfydXh3N7f3tvb2Nnb3rPPpc7d3N3e3Nzd09vY3uPY1Nve293V3eHZ2tje1sza4dze29jc3tvc397g3t7T2dne4d7Z29rY3dvd297b4dSt1djc3uHMyt7j3dvb4d7e2N3f3tvLrdLh4t7f1eDb1tzX3d3i4Nza39nf3NvZ2djh3uHV09jb3t3e3tzU4ODepcSq1Njb297e1dze393Z4drc29vc2Nbd2Nre4NzU2OHZ3uLb2dva4ODd1dvY1tDY39/Y4dXV2+Hi2tzW2N7b2dzf3d3Y3cfH4OHe4t7f2+HP297e29nV3tvV3tvc29nb2trb5MDF3dbg3Nzb29PZ2c7ZytLP1dvb3tjY2t2/09/c1OHe3tjZ3M7V3d7b3drc3NrVz9bc1t3e4dvb3tTP39PZ48Cy19rb29/V29jQ3t3d4NvdztHfzcLh1dTa29rf1Nrg293V0N7h4OHe3N7f3tbS19/h4dve2sLg29zY0dPY39fdz8zb1dve2Nbc2dvYzNXT2N3c2dfW29ff4dLY3OHe3N/c3tvd2dje2dPb49zZ29jY2ODY3Nzb4dve2NXZ2+DhvrHe39jb397a4OPf3N3d39/f1djS0d7YtNvY29zb2+HZ397Z3dXR3uHd3ODe2dXe2+Ph3t3Z29vb3tjZ1Nbf2MzZ3trY3tXZ2tjQ3tnW29jf297Q3Nfb29be39bX2+Hb2Nvm3Nzh3tzZ19/h3t3d397e4d/X2t7d29/g4d/b293e5tvU2t7f4eDd4NLh39zT4N/b3NXa3tja197b4OHh3tTe497g29Le29vX0Nzf39rY3ePI1d7c0tTe2N7c29nd3t3Y29ve197c29va3N7e29rf3Mrd3NrY3uHe2N7X297f2ILF3tre3N7h4dfd3N7d2N/c39/h4eDe3t7e3t3a09jm3cbY393i3dze3d7e3czc1t7g3tvW3Nzb4eDe4ODg29jd0dTc4N7e19jM1Nje2t7e28zR3d7R2d/e3t7ayODe4OHb2eLj39zd3tnd2N3e3N/a39nd3tzh2+Dg3tnb4ufRbsrb2t7Y2t7e4N3d3eDa093e3djf4N7b3tzX2+O8zuDc2uHg1c/Y2tjb3tjZ2uHOuuHc3tjF2uDf4d3f4eHi4Nvf1trb2N7EytjY1dnc4OPJ3tjf0d7i39nb3OO9s97Mvt7h2Nbe3d3h3djZ2t7c3tvc3dve3tze193j29fb3t7f29rX2dvb39vh4d7b2NfU2+Hb1tXb3uHh3tnd3+He2+Hf29vU2tjZ3t7e2t3d3t/T3d3b29jj3uDe3uHh3uGp1N7X3dnc3NzY2OPixc7j1tvf2+Db3L/a3tvd4MzBz9i/2Nrh2Mzc2dvb3t7d3NPc2N3g3uDb29vd3tvi3t3h4N7Y39W738zb2OHk39/V1dfV2sncz9LV2tXV293d3dzh4uDh1tfa3d7f393h5ODe3tnf4Nba3eLV2dzZ3tjg4NHX3tLb3N7X4NvY4ePf297V2uHc3trZ29nU19jT397i3uHb3tvN097d3t7d2t3Y2+Ha1djc29/b2t3b3tjh3+Dh3dnc4efRv9ve393d4dzd3tvY2eDe1dPW3djb397e3t7d4NvV2Nze29ff4t7f4Nzb4+Hi0s/b2uLX2OHc1tjc3uHe2tvc2tvg49/W3t7b29PX49zWydvT3NjU29vb28nd297e3s/O3dnb29rT3Nrg3tTJr+Te39Of29vb297c1NLb3N7f3drV3t7e3tzc2tzX2trc3d3Y2eDe3dvb3N/b4N/d3eDb3Nzc3dzf3N7i3dzh3NjY19zf4eDg4d3d2Nvf3tDb3N/g29Xfztba29jh3N7e29fT1tfc3dvd29jb2tvb4eDb3t7d2Njb3N/c29ff1tPX3dvY2rXb297i1tjGyN7e3d3d3eDYz9vY29vh3Nrc09rc3eHb4d3d3tza29ve2tvP0tbd3dfe3NXf2dnf39TS3N3d3N7e29TW3tvZ497U1tjZ2tzf39vJ29rc2ODd3eDX19Tb3tje2dra1eDb2Nje3t/c3NnY3dvg3tXe2dra4NzZ3tzg5Nfc39/b3dfM4dvW2NvV297b3djW3d7b3t3L3N3f3d7Y1N7b29zW4ODb3d/e3t/c297h3uTZ4b/bx9DY4d/d2Nvb2NvZ1uPh29Lb3Nbd2+Hg3Nje3d7h4uHf4NXY4uHb397c3N7b3d7X193X3tzg1dDb293U3t7e3dra2Nve3N7Sw9bW3N7b2Njd0t3d2tbZ3djc2tja19vW3Nzb2Nvh3sy/5eDb3t3b29zg4t7e4Nre3N/KyeDZtdfe1c3e1+PQz+Te2N3f5d3h2tje2dfg4dnf3tjb4eXg3t3f29iuzN/c2+De19zb3N7b29jS49jV2dzd39je2d/a29na29jc29va3t7d29/L197d3tfW3dnb2t7i3tXb3+De2tvc3t7f1dzP3t3W3t7c39vd3eHe3d3a4cvG2dXf4Nvb4trY3c7T3Nrd39rj493e39rb1+Df3dXX39/e3tjT2NvY2L++4dze17fV3trd297d29nb29rb2dzg2tvX3tvY2NvY29za3+PZ3d7e3t7e397b1tfW3tzh3dve3uCf1dzg2ODb2d3g2MDX4dvc3uDc4eHh4OLZ29/Y4ePc3trb1t7I0t7Y0svd2d3b2dve397a3Nfb2N7WlePW3uHb2E6249vY4dnV4eHYzNXe4ODM2dza3tvY3dfV3N/d3N3c3dnd3czd3tvY3NXM2tTa3dDY3Nnd2djb3tnN3t7h3qrV2Nzb3eDg3d3b3tXa4Nve3tje4N7c2drf3NrX2Obh2NfY3Njb29PU29ng29bd19vb1dnf2tXP29re1sre3NvgpdXd3tjV4d3e4eHY2NzQy6Xg4d3h297b3dnY3uDb3t3e39/e29vZ4N3b2dPV09zhwcfc3NTd39vf18nh3uLe4uDY2tve19rb2OPg3N3Y293Tz93f397d2Nvc3NXX4Njc3OPd3NrY39jV0uHh2N3b3dXW1tvc2dza3tvS3tXb3tzj3t7h0s3i3t3i3OPTyaiy2ODa2dvf3dvb3eDc3tTe3d7f3Nvb19jW3dve2tne3tvZ1tzh297c2tnV1dTb4d3b2tva29jY2dne39/j2tfV29bb3t3f2N7b3dvh3dne3d7by9jd2NHe4d7c2dfI4N7Z39vd1t3e3Nzh4N3g3t3c09jc29rc4dvd29ve4OHczszh2dva1s/b19PY2NXe0szE3tjZ19PS0tvc3Nfb28m719Lf4d/e19jb393Z29fZ3N7e397c397V2NnV2eDb2Nbb3uDT29nU2t/a3d7f3d7Y3NOs0t3d2+De4d3V3uPe1cnb49zd3s/Y4Mnb4eDb3dnb38nW4dbX1dve3t7W293b297d3dnY0tza2uPb2dzPxqjR29rV4bOv297a1d/hu7Xh4t3d39jb0dva0dXj3Njf4N/d3ODY3Nvd2tHi3Nvb3t7e29fU1dne29zc3uDgztLj4d3U2OHe3dvb393f0szd2N/e29vhzdPQuuTP1tnM3uHj4t3c397O2N7b0tDG4Nvc39fc293c3tvY3NvV3uHe2bvg3uHe4Nnb3d/j3NzBxeG41d7g3dOo3NbX1d3Y3+Dg3t3j2tzX197Z3NzY29jK1OPc4NzY1+De397d3tvS29vd3tXV29nf3tfa2+G6k+LQt9/d3uHY2tTU2NPc29bg4ODj4NnY3t/c4dfP1+DV19zW3tje4d/ezMHh2Nfc4d7b3t3e2tbe29Hc4d7b2tTa2s3a397b0t3j3tXay9Xg3dng1t3e3t7b2+De2tvV4NLd4t/Z2ODc3N/e4t3e2Nvf2uDb1tzW3tvd4dXb0tTL3tLN3Nvd3N7Y3tTV4OHg2d7e1cnh2M/b2dvb0tbc2dbT5Nnb4NjY2NjV2Nvc2tLe0dHa2t3YztzY3c/S297a097e2d3b1tjY297X29za297f4OHV2+Hd5OPb2N7e3drf283W3tve2dva3t/R29vb3d7g3trb4t7a39za1N7W19/Y29/Z08jf4eDg4tvc4Njc3d3CkuDa4d7b2+HY2dvZ3t7f49rd3Nnb29zW287d0dfb2Nve29vdzdLa1dLb3trd2OHV1dve1dzb3NXb4eHd4tbb0Lfe4dvb49rb2uLe4Nnb2N/h29ze19vZ1rzJ3N7f2tfh4c7h2NrZ4NnW3ePbz9zW2NjVxODf3t/Y397g2+Dg2NvS3sad3t7bvtvc3OHe3t3Z3tna2N7h1cTcz9ngz9Xb3tTV19PY19fh3tja1cXc39XU397b4N7c4ODj3uDZ2tnW0N3ey8za39vc4NfV19fd4uHf3Nre3t3ez9Tb29ri4Njf4cfE4crX3N7fzNze4tzd4d3e3tzZ4drd4d/e4eDc3N3Z0qnf4d+t3dzL3d3c2NrT3Nnh3tbX1Mza2+HY29rY1dfa2d7e3tvM4dLT09bY2d7Z3d/Y1d7g4NbN4d7e3t7Y3NvMzuPj3tvY1dPh297e2drb3N7Z2N7b0dvg297c4tPV29vjt87ez9qDv+Xb3N3c29va29jS197d5d7Y0djd4MbI5Nnd2N3U1dXf3tzY49XX1NTh2M/V187U4ODd3+Le2N3c3Nvd2NXd39Xg3OHg3dzYt9LT2tze3tvY4N/h29fY3t3gz9zg1NnJ3t3d2t3Z0dvV4tvb5HKq3Obh29/S09zb297i2N/Y3OPe29jb3t7Z29vV2dDR2+Sir9jW4NjMu8Hc3+Lj1dLc3dvc3tvb3djR1OHb0dXe0Nq7ytrd3NrY2t/bzd7c297Y29rc29/e3tnG3eHa3NrT5LS/397b29vSy9TV2dnW4eLgydbh4dve3tLL2tLYstza06Db4N7g39Xf4uPb3OHX3uLb3NXf3tvV39Te4eHd3rvO49jS1sa5wdvh39vg4Nne29jZ3NvY293c3dvkvM3d25m94tvc2t7e39bD3s7V297c3dvh297d2+Lf4N7ey7vZwLva2d7b2dvT1Nvb39LZ3+La2eLe4OHd1sLe29vh3+HVn9vg2dvb1eDb3t/b383T393e0N3P19be2tje29rc4t/a19DZx7rb4dzb3N7i4dze2N3W3d/e2t7X1t3d39vJ2N3e3t7d3d/b3tzb29Pa2eDh3tvd4dvh1Njg39/b1tfh2dLb39nd4dXd39/ks73l4NzV3t7b3N3b3uDe4Nre39zjy9Xa4d7b2Nvc3drX2tze3N7b39PT0uHc1dvl2NnZ3N3g0drc2N/f3ODY29Xb2djZ4OHc3qbQ3tvP3uDj3Njb4N7V1dff3tvb2N3Z2tvg4eLb297e1dza3OHc3t/d3Njb297e393dzNXj2uHZ2+Lh29jX2N7a29bU2t3e2+De3N7X1djd2tvh297d3dvb3+Hd3tjb3NjP3tjY39ve29je2N/h3dvf2uHk397f2NK71Nbg2t/Vu+Dc3djb3dvf3+HS29ve3NvZ29fO0t7d3d3e29ba3tvd4Nrg3djb3tvc3d/X2tLT0+HV1uLe29vb3N3h283b39vQ2Nzd29vW2NnZ2Nfj2Nng29ng3NvV1tvX1eHb4drb097hyNLd1eHb2+Dh2d/b2t3Z2bPd3dvV19Tg1d3XzuLm393d4dvh5M/S3dbh297Z1d/e1M/V397b2t/d2+Hf19jY3d3c2N7dzt7h39/czbTVy9/f29vezszb3+PZwOHd29Ph3NXZ3t3f3tjY4eHe2tjZ19jd0dXd2tfH4Nzf4tvZ3t7d297a397d3OPb2tzJ297Zmd7e3dnex9jY19jZ3N7d3trh0arQsszR4dve2dDY2Nvb3ODe3tne3d7c2+O0yNjc5OPS3tfX3tjb3trf3dvS3tvb2N3b29zj0s7h2NvY3uLU3t/Y4M7G29zc3N3f2Nbb2N/Z4uPe3tHe4dvh3uHMz97g3t7b3dnd297Y3sLV39/f297e3djb1czX3eLd3uDd3uHYns+0yODe3tvc083V29vd4d7X2Nzb2+Dg283a3d/c4NjV2eHe3t/d3NrS2N3Y4N7X3eHd29vR1tvg293h4N3R2tvh1cvd4tzb0uHb29ze3t3V29/YzODd3sXg3dva3uDd29zd2s3j4NXd1Njb3Nne2Nva3cDLuNja2N/e3dzRr+Hi2dTg4N/J1dvc1dnb293a4M/P3tfN3N/h4d7b2tnf297i3tzb3trhztPH2OPe4dvb3tvY2tva2OLb3N7e3t7i4M/Z39jE4dvV2d/e29/e3NLczNLe3+DWqt3e4eLc3tvf3dre2d3e3tjg4djb2N7f2+Pg2N7Z2NvY393Y3tzM2t3Z4dzg2tfa29ve29ja293h0t3e2MvX3t/e1dXb29re3s/V19Dc29vf2tve2eDg39va3t/b4dvb4NLb4dzc3dXh2Nrg1aDb29jU3+He3t7b3dHC2Nrf5Nve39vg4trc2dXb3dzQ3OHe3t/b1t7byeXd3tzX4N7e4djZ3+Da3d3b29vZ29za3tfB4dza3t7gxsHU3d3e4dra0t/Oy+Dc3+auqOLW2OLe3dvV497W3t7Z3t7c3t7b3eHd2tzY0+LYzd7V2tfez93a3eHGxeDZ3NXb0c/T3ua2sNze29bg2t/e197d29DSxeDc3eLX1uB5w+De0NfY3uHh2tDc39nX1t7f3NvX39ba1NXc2t7b297W19/c293V4NLT4NLf3eDi3sjS28/j2dne3eHd3NzS297e3Nvi2t3b29jj3tXb2+HCwMTe3t7e39zb28Oz493i3Mba3Nze3ruj49/b0bne4d3d3t/j28Gy39vg3uDd4Z+W47nF0tne4ODY2Nvd39faz9rY3d7h4d/c4eHb29nd29rd3d7byOHYxdjc3d/e3eDd4d/h3uDb09vi4d/e3uLc2+Hh1cze4t7b4drc3uHY3dLb4N7a293c18zh3NnS3NvavNTg29ja4ebewtfG1Nva1dXa1dze293b3tze4OHVydHVm+fV197a29DO1dvY2d7b3+Dh4d/g4N3c49/e3uLb1dnb29bg4dzJ297U297b3dvi4t/g29/P29/e3tvd3dvd3t/Y0tzg4N7h2drh3NPY3+HY3ODe2M/V0d/a3t3e2N3e1tff3djb3t6V3OHd1dLb2eDT2N7b09/g0NzI4NrM2dvgyq/f3tjW2dvY3tKu1OTe3dXY297e29PV39jdf9Lc3N3exeHe3ODV3s/V3drc2N7h0d/e39jd29vc3d3R297e2tnb3d3h3tfY3rzR0sTbz9Pe3d7S19/g29fe29vY3N3c1d/e19je397d4Nvd3t/e2Nvf297e2uLIudnb2eHb2trZ2+Pe4OLezt/f39HZydzeztjc4N3fxdTc1N2fzd7e2NjX3ODh29zc1drd4d/c297c3t3b3tbb3trf3NXS3tnf4uDd397e2dPj0dba0d7S3tzZ1djY29ve0Nbe4tjUyN7b2ODe2dvZ1tjd2d7Y2+Hc2t/e2svd3du719/e3t7e3dve3t/VrOLZ4NvX1d/S2uHR2N/j28TR2dja1ubZ2tTP3N7Z1Mjb4c/b4djZ3ODb2tvJ2+Dmzsnc29fM08re29/b3N7g3t7g39rj2MLT2d/b3t3X1N7a2N/Y19Xb293b29/b3tTa3t7e3dze1eHd3uDe3dzYxt7b5cbA2Nvf0dvg1M/b4tjI2tfe29nY3NnY0tje3N7Yt8nc397b4djb0sXg2Lbbytze297h09Pd39ze19La19jextnb29vZ2t3d3Nvf3tvV3tze2NrX0tLU4N3f39vc4szY3OXb09vc4d/b1uHb2+Le297c3d3d29va3t/f3tfZ3NrR49LT3tXY2t3Vu9vc2uDd2d7f29jb393N09Pb3Nra2uHg2tjX3Nvd387V3eHc3Nvd1+Hi3s/c4d/h4djZ2eDV2Nzh4d3c29vh3N/e3dfb3tvh3Nbe4eTh297c2+Lj2Nzg4N7d1NjZ3uDU297g3t7g19vg2dnX1dTV3t7c3t7b29fV3N/Y2Nra3t3Z2dTN4N7bo9zX297f3tzVxdrY3N/f393b0tbY3OTc19/Zz9va3tvY397b397e2Njc29ve3tfZ1dLd3t/c2Nje4N/d3dXh1dXf39zb2N/f29/j2NHg29vb3N7Z39jh4d7d4d3Y3t3e3t3M3dvX2Nzb4+Hg3dnj4czO39ve397e39rY3N7W1dzJ3N7c3uDb2tjh2Nzj4tHO49rg0tbb4M7S3tHS4d/Z1tve2dTe29ve3N/Y2trd2tjb2dvZ1tXd2dzb1d3c3tvb2tra4NXP29jc3OHIvuPY28/e4t3e2dTe4d7f3M/jytXd4d/Y2LTPz9Ph3t7S4cK24tPf4d7Y2+Df1dTe29PP3trb4d7b3t7c3ODe4eHZzdHf397B193czM/j2+Lc2crc3tjY4N7b2+HZ393f3t7b2OHg3tnVzNjf4NzY2tfe3ODRt7nmzc/f2eDe0tzZ4N7e3tvh29vd1KjJ3uDb3tTV2dre3uHdmM/d0tLb3tXe1djj3dve3tfT3+HS09zb3t7c297bydvf1cze2dze3tXX29zb3uDQ1tzb197d3tja297b3d7e1dvG0+Pe3uDb3Nzd2Nvd3d7U0NvW297U0d3d4ce/ytjQzL/f3d3U3d7Y3d/g2tvV4d/kyNbh4d3e1Nvc29/e4Obh3t7c2+Dc2Nvf3tXa29ne3cnY3tvg39ze4uLe3t7S0d3P1uHh29rV29je4dve3trb2NfT1dve29Xe29za3tzb4dHT4trc4Nzf3dzV3uDi3t/b3NvY3Nvb3eHWz9bY4NvTzeHY3dzV2Nbe1eHf2NjZ2Nnj3+Lb3d7g19ze3t/izNrd4eDb5ti04Nrd1dLhz9bb297e2eDg2+He3N/b4eLV3+Db2dvd3djg3tzf3tjY4+Lb3N7Y3tva29na3N7Y4dvb4eLg3dvX39vR3tfc1tvX4NjV3d/e2+Hg4dDS3tLH4t3g3t3Y3tva293Z2+Hi3tDP29ze4d7S4tjY1OHf29vT397h4Nzf4t/b3t7f2+He2dvZ297l4eHi0tjg4tvb3uTMz9ve397Qy9Lg3NTe2NjU3eLe4dzS3tjf1trV0drE1drj3+Lg0s7f2d/b29rc09Xg2tXa2969xtve29rUw6jj3drg29zY3N3c1Njd1djU2Mza3Nva3dze2d7b3Nzh4dLf4t/a4Nzd3t7Z3dvc3dve3Nzb3tzRz+XT3d3d2djf2WO4vcLd29O1qubc2dnY29Xe4drd4NXb3t3a4cqf4tXe4uDe397e4Nzb3tje29/Zz93g29rg3sbK1Nvb3NG9yt/b2tXQ2NrS4t/W3eDXz9Ld1dvVz93e4Nzg29je3N/f1N7GzNXZ29je3d3e4N7V1t7d3eDf29rS2+Pd2t7c3d7azNirwN3Q2t7Z2+De19rM0N7b2NvY29bb2Nbb3dPd2N7e29TT2t3f3d7c2N7h3tvb3N3f1dXg59vY297b4eLc3uHYz8zV4tXB3tXa3d3b29/f4d3Y29bb3tvb28jY3tva5a3J3tjc4dne4eDe4d3g3d7c2eDf3d3g2tjP2ODf3d7e0uHd2d/R2uDe2tvd09nS4Nvd4t7d1eDU2tvc2drf3Nra2aXS4uLb3dfV3N7Z0tvb297Z0+Tb29zV0dbY3tvX3N3d0tjh1tLa2sLh4d7b1+DZz+Pc0tzY1t7YuNXg4NnS4d7b29zY38/Y4dbd3t/d4d3b2Nrd277PzL7I4uHb29/T3eHd3tXR3N7V3dvb397P0eHc197d297g3uHj3tTX3N3eq9Xe3NvX1dHb29zb3t7b2N7c39/b2M/Y3NTS4c/b4dvc3Nzd39zZvd7h3tnd29jb2t3f4tjR29Xg1tfi1aze2+He3N7d2N/e3dvZ3eDe39zb3d3bwdvOuODd3tvW4N7f1d7Z2tne0tHd3Nva3czU3dnYyePY2dfW4d7Yzc/a4dvg2NrW2czc3tvZ2tTb297e2tfc3t7c2NrZ29ff3uHM3t3e393c4dzh1d/izt3c3N+M1dfb2uDb4d7X1svV2eLe39/d39/e3t7a4dzV2ePe1d/h3tjI5t3H3Nrc2N/b2eDd3t3i29vd4dre3t7d3d7b3t7a3tnb2t7b3dviyrbC39bS3tna49na3djZ2dvb3dXc29rY3NjX293Y2dve29Xe09vV3trf3tnd2Nze3t7e4LPZ29vc3t7V29zh0d3i1NLV3tzh3t/d29Pc4t7d3N7d3dnV2L/h297g3OHe3t7e2t3Y2+Hd3t3a09vb4NjS3N/e2+HgztDVz97i3uDm0dHb2tvf397Y3t7e3drY39ve19za2Nve09je3tjW2t3h2N7Y1NnZ2tvh2d/VzOHc3t/f4t7b1d/g2dTY2+De2uTIz9XY1d3f3tzd3t3b497b3eLg3t3X4djX3dzc3tXc3dre29fW3+G41M++3d3b2djfzc3A2N7P0tjW4d7g29jg4t3Y3M/Z29je3dza2tXb0t/e29bY3tjc2eDe297R2tvY2djb4dHX397i29jP1tjb29zb3NvY29vc2NXY3eLW1d3e3dvc39fS2dnf4N7b3N3c3+De3uHa3Nbd4dvb0uDc4eDg29ze3LXe0tDc3dvj1tzY29TM1N7g29fY3t7e2N/e2t3dztHX2OLXyeDX3t7Q2s/UzLnX3OPj4NjY3s/Z28DY0OTe1Nrh3N7e2t7d29zb4d7e3c3Qz+Ha29DY297b09fb4OHh19Lf3NLc4N3V1t3e387O3tTO4drd28/d4N/Z3dff3eDc4dzb4tjZ4NbQ18bS3NbZ2t7d29ze4Nve3t3b3dvY1dnW09Xb29vh3dnbs9XFzt7j29zY29zZ393b1d3a3eDY39bX3dbb397Y1d/e4d7h4Nre3t3i2+Dc3N7Z4NzezsDm2t/e29TV397PzuDe2MLh397a2N7WxeHg4N7c3ePY2Obc29vg4d7by+HY0tXV2Mff4N/e4N3a2NHb3Nje39zd293NyeHd0drf3NzY2dfV29vc3Nvb29bY2OPVyeDY193c2dXd2eDc3tvZ3trd3Nzg3Nzb3N7Y29ze2ODe1djZyN7f4d7b4MTZ4t7d3drh3t3d4dva3N7U2uDd3tvg297ejdbd3tvW3NvE0+Db2Nze3Nfe3N7e38/d29jY3tze3tzY29vd1Mi80NXV29nZ2dfe0tzg3t7Z2NbJ2tve4eHX1t7f297b2dfc29jX2tve3uDe39vb3tnb3tzY3t7Y2NTY1dra2+Pgydrc4ODh297T3N7b3d3b3d7Z29vd3tjS0uGU1drS2d3PyMzV29XT39/a29zZ29vd2M/Y0t3e2N3b4dLS2+LVv+DU297Z2NrP19TS3tXe4d6h3tbV3uDh39DP3+Hi2s/c2t7c19HX2N3h1Nna4N7b3d3d2uDh2dvb2uHQz97c293h4dzb3N3d4eLh1c/h3t7c4Nrc3N/Vwt7b4uHb3t7b18PN2ODf3Nzb3tXiz87Y2Nvg0NvS2dnh39ze1dvgytTh3d7Q39bZ39zg1tfb2sbSz8Td4djb297h39vb4N7d1t3f3+Pd0tvR1t7Y29ze293c1d7c2dHf4N7e4Nvb4d7Y1dbh3tvb3uHb3d7c1drY4dvV3tvb3tzX2snY3tjh29vbxM7f4NjY3tbf1dvY4N/c3dvk39vdzOHV2tjc29jP197b2dvb3uLm0tjh3t7hmszb5N7d3NfU3Nbc2dvg39TV3d7g3t/b293c29ze4tjX3Nve0tXUzODe3eHh3t3e29vf4N3e3djg497f3trd2tvez9Tf4Nzd2NvWvdvX4NTa3uDZ1tDU4N7e3Njf297c3d7h2tvb3tTl4dXb2t7h29zc3tna4OHh4N7b2eHe3N7Pqt7e29rY2Nnb1eHC293Y2Njb3t/b3d3V3dnY4ODe2t3b3t7a1d3a3N7b197Y3tnZ3tve3ePe19vf39fb19bY29zV297e2dfb3N7l18ni1djg3uPJyt3e3d7e0Nze4dLe3t/e4Nrd2dvb4NvX3N7b3N3f2tbc3d/h3uPd2tjX3djZ3N3f3uHd3trY4uHe4NvR3eHd2Nnc29zi3dje2N7e2dna3N3X1d3R1uHb2N7c3t7d29vbyt3b1tnh4NTb28Lb3t7V3N/e3eDb2uDe3NLM39rX393f3Nve29fW2djb1N7f39vb4Nvh3dvd0NLb2Nbd3tXb2djS3Nvi3tvV2d7b3Nvd3t7a39/Z3dze4N/dydDW3dzZ2Nvd4OHe4djd2dXa1t7g4dva4Nne49/V4OPc3tTX2NvS3N7e2eLd2Njc3d/j497Y3t7S3tbM2drS2tva1dfb3dnX297a2NXh3d7e2Nbb297d3uHe2N/P1d/a3d3d29fe3NXb39ja3tLc4N3a2ODd297Y29nV29zf39KO1tvg4dzb29zi29je093S1d/P2dvc27vi3Nnd39Ha3t/b29jc3Nvc3tve3NrRyOHg4t7h3tne29be2dLU3tvY4tPX3dvd1dvc4djW297Y2NjY2t3f39ne296/y+De1d7U3eLWwt7e2+Dg2tzb3dvU2Nva3NrX4dvZ29Te2OHg3N/e4N7Y2t/V3+Hf5ODc2N/e3Nze3NrY2Nrb2drf497c297b29vh29za3djJ4d3b4OHU293b3eDb3t7c3eLb293e3N3c2+De3N3d3uLg09vV2dzT2+LZ29zb3t3b3N3Sr97S3dzd3d7a393S293e3t3e3d7Y2N3g393Z4eHd3tzh1tvb3dra2Nnl2Nfe29vd3tve4d7g3tjh0M/a3drf4tvb4N/g19jd2dLh08bV4OPe3srN3d7a2t3b3Nvf3t3h19nh4tzb4NO74dve2N7F2+Dh1s7c4djY3tzb3dzc4dew0MbZ3t7e39rb3tfY1svh3Nva2NvT2OHZ3+LVy97N0OHa19fd1+DV2Nrc1dvd29XX2t3f3N3ZztvY2N3e29vX2Nnh3tje1NjZ0tTb29Pg3t7e3t7a29rh39ze1djW297b29bb39/e3s/b3uHb2djd4OHb29jM3OPY3NXU3d3c1ePbzt3Z1NvZ293e3OPVzt7a2t7V1tbY3tjd39rZ38DS3eHf19LV29fa3uHf3N3d2N3W2N7g4d3b4d/Z1Nze38Lb4OLh29vY29jT1d7Y3trc4N3c4d3b29vZ3uHZ29Xe3t3b09/h4d3d2t7e29/c2d3b29/b1MnewNXg2NvY29rZ1dLM2eDM2Njd3tvd4d/g49rZ3tvd3d3b29zb29Tf39rc397czN3f293b3dvX29vN1tvb29Lg3Nve2dfU29ng29vi3N7h3t7g3t3b3t7Z1d7Z3Nze2tvh39/c3NzM397a3t/f0tvb3tzd2t7h193d297e2tHi2NvC2d7b3+DczNXX0Nva19rf4dze4NrY3tzW3t7dzdrf2Nrg297Z2NPf3tjd3tXU4NLU3tnY1tvd2drb2N/f3r+74NnW29rd2NzU297e3Nzh3N7e197a2tDYytPh3t7e2t7e3N3e39vj4NHa293a2dzc2Nzc4d/S29vc4N7X3tzT3OPd297S3uGxyN3h3tva0NzX3d7Z29ng3NvZ29vW297b3trc2+Da3tLd3d3Y29vP193c3tnX2t7b3eHb3trhy8fh3Nvb397e2dXZ3Nvg4t/h2NvW3dbY3+Pbz9vh297e29/b3uPd3uHb29re3dbZ3uHc3Nza3NvY3+Di3dja2drf3t7d2N7b29vY2djR0tvS39ve2tbb2NzZ3t7c19vb3N/e097c3tre0NXa2djV29va39ve4d7Z2tvV39vb0tjf3tvb3N7d3tbV29/e3dvf4Nvd2drY29zl3dzb297b3N7b297b2M3d4dfY2Nva3dvb3tPZ2dzc3Nre29zh2tjU2ODh3dPT3dvf39za0tPZ3uDe3t7Y2Nnb2N3e297b29vY3t7e3tvb4sLL3+He3Nnc2tvf3t7Y3t7Y4N7e29nb4dXQ4+Db29ze4d7f4OPa29vd3dXb19jf0szf3d/g3tvb3t7e3tzYzN/e2dnc3t7Yx9/b3t/c39nV1dbd2Nrb29ra2NLM3t7c1tjb29vc3tvc39za3dvbwrXb3dvZ3d7f4+LZ29nV2t7bsMXeysze4tzb3d/d39jY3dre3t7e3N7f1sziyMbh2t3g4Nzh39vd4d7g1dve4OHJwOHg3tjh3t3g2Nza397j2Nnf3ePi3NzHt97b2+PHyeHT2Nfb1dPd3OPe0cbj497d1+Db2NTb3t7a19rb2djL093S3N7j39zb4t7c2Mjh4sLM4Ny7yeDY4+Hd09Xe19Xh49/f4OHh3t7e5dHT1tvh3dXN39/c293c1sng3trc4ePe2NXb4tzW29fS19XS3t3Y2trX3t3g3tvV3tvX3dDL3eLe2NnW0t/c3tze29vS3N7e293a1t7X3tzS2tXb2eHc2tfZ2LLg2dzd3N3e073b19jf0bji3tvj39jQ2tve4d7b2d3h29/e29Xh2tjc197Z08ng49/Y3tvd1uHh2tzZ3t7f1dvj1cze297dxrfj3d3V09rb3t/e297e2+Hf4+Hd2Nnc3t3f297Y3t7V1tXd3dvb2dfW0tje4eDb2tzb2tji3tvXuNbe297c2+HX0tjc3d3b1dzc297d2OHO2qnY29vWzNPc1+De297e19nb397Z4s3Z49jX297U3d7b29rd3tXd3drd397f4d7e3t/e2NrY2t3ew9Lb3tje3Nze2Nze29Xf3tfY397e3t3X19zb3Nra297b3t/Y49/Y19/Y1N7a3tnh4OLY3ODa3t7e4dPa3tjX3uHf3d3j3trfwdvd3N/Sw+Hd3t7i297Zvd7f4Nzh3Nzf4N3b3t7Z3N7Z3dnc1dvb2+De39PY2tza29fY4t7Y4t7G1d7g3Nvd2djf4eDiz9ve2s7b397c1tvW2Nzb1dTe39zb39rZ4dfN1+Hf29/f3dze0rvP4Njb39PX3t7Z1d7h4OHb3Nvb3tzf3OHd2+Le4ePY1+De29fO4+Di3tzh2d7d29/d3Nnh3t3d2tvc2tva3N3V3d7Y2uDNydvd19nc29vb2t7f3uHe1dre39zg3drfvN3a29/d1drh2tfe29jb3t/e3t7U29ve4d7c4N7g493R0trb3tzezMnh29zc3N3j4dng3t7b2dze3t/e3d7jyL/h49jZ3N/e3d7c3dze4drb3t7a39/e39zc3t3b2tvU09jb4N/Y2crY29jV397T19vX3N7d3tnhxtTe2tjZ2t3e1tjU29vZ3N3V3trc2tXe3t7i0s7f19/a39jd29re39jY1dvb4N7d2N7a3OHd3uHe2+Dl4NrY49/Y2tzczN7V09vc2tvh2+He29zS2tjg3OHh29vg2eHd297Z3tjd2Nze3t7b5uHb19vb39vZ47XW4d/e3dvd1d3c3tzTvd7c29jE2drdtb7j3dbY29/b2NTc2+Lb2MbY3Nvd3dna3d3Z3dvb49rU2d/e3tfZ2d/ez97c3ePe2Njf2uHU2ODc2NbY39jX3eDf293d2Lrf3t7e3tvg3dzf3dvX2dXd397b297c4N7i4dze3+Hd1dXb1dvg4d7W3djb4N/e497f29ng3NXS4NvY2+Db29zZ3t7azdvi3N3ext7a3tzZ4eHZ3uDj393c29bY3tvb29PX3tvU3t3d2t7d2t7W3rfN4dXY4Nze3tzd3uPb297b29ve2Nza29jd3N7c4NnY2OHh3tzd4d/Y2uLf3d7b3tvdvcbf39/e3d/c2+DV1dzN29vW1OHZ1trZ2tvX3dve4eHc3tvY3N7d29jj3dje3N3c3tvX3uHe3tXV4d3e3Nnew9ja2+Pg3t/W2ePT1uHb29ve3tne3Nzb3djZ4NzZ3uLe2uS70uPh3dff29fe397e4+HZ3uLk4czK3d3e39fW38LH1drM3tzc5N/g2NXP38je2Njb0tfW3NnZ0tvY1dvh4tva4dvb3t7b2Njd4uHV3eTe39fU293e2tva3ODj39HN19Lc4N7d3eHe2dva4dza2dbV3dTW4dvc3d7e297d3t3b2uHc39ng3Nra0tve4eDc4eDe39zZ19Pe397f29vbz93h0s/Y3N3b3Nrc48zb49Tg19q7093c293P1t7Y19jV2+He29jh19Xe3uHb19jS5t/d4NvZ0Nbf3uPI2OHj29LPzN7Z4d7f3dDY2Nzc3Nvd2dPd2NXh4eTFyt7d1N3e2dXW4dva2dzg3tvb4t/e4djL393c193e2eLa0N/f3dvhxtfb5Nbb3N3a2Nvb2Ni90trV0dLX3tnb3Nna3tzarLrd4NbZ1tnZ2eHc29vc29TZ2Njh3d3b397e28/f4dvc1NXb4N/f2t7kqsTj3Nze2t3a4Nva3d7f48LJ49vb293a2dfe3tre3NjZ2N7j4d/g4cjf19vT3OHa29rW1t7e2d3a29ve2NvU3tnb4bvT2KbE497h2tPd2Nne3tvb2+DP193T2djc29zW3Nrd3tfc293Y3uHg4t7c29TVzNje3eHd2Njc393b3uLPz9/b29jS29re29vh4d3Z29rb29nY2OHb297b3dve2s7J3ODc2N3b2Nzj29bZzuHc39nb2NvXydzJ1N7T2d3e3N7Yz9zbAAAAAQAAQBcAAAAIAAAAAAAAAAAAAACAAAAAgAAIAN7b2OHb297b29nb2NXY39zh1tzf2trf4N/f3tvewtLg3Nlxw+XZ4Nrb3tPb29m8293g4d/Z3tze397d3d7b293b2eHb2dve3dnX3dvb1Njb3uHX2Nrd29vc3tO71N7b2uDe39/e2tvP2OHe3Nvd297hp9rb29rb2d/e2NXettnf29ve3Nvg2MzT2dnc397a19zd3+Hb293g297f29Pf3NrjyszY29vi297e19zd097e4dfEytbc28vT297Z2t3by9ve3t7e3+He09jY293d19re2t7Y29zb0uHj4+Te3uDg3tnZ3tLa2Nzh39ze3N7Y4Mbc3Nje19vf397c1tXG3ODe39/Z1t7cz8Db2NXZ4eHb29jb2t3d3d3c39ra3d7g4MjJ2dfY4+Df29rX29nb3t3j0sOw3t3hxtDX3uLY29va3t3c1t7h3N7a3d7g29rW2eLS3N7b3d7b3d7h3t/a2+De3tuxtOPZ2d/h3ODe2d7c1dnW2dve3d7f397b2d7e3d/d3t/e4Nve3trc29ve3uDb4N/c0tnX3d7e3t7i4Njew9na3+Sv0OHe29vc3tvg3tvc2+DZ4drh49je5Nfe2+Lg3d7X3uTe3N7e4djT3N7b2N7Y397e1Nbe29ve29vb4N7f4a/N497Y2uDV1+He3dHb4N3b4d7Y3ePb29zf4djT2t3a29ng2dnY0d/b2dzd19ze39zE1d7j19ze2N/k3dfc3Nzf4KvS39/g39jbzNfc393e3tbN3N7YyOHd39jZ39rb3t7a2eDf3+Hf3tjc4tvY4Nje4N3M2uHe0ODa39/f3d3d3dfP4dnb2tnS3d/b3dLb397Y2+Hdutbf3trd2NXU3dve3dfb3NHS3tva3d7g39/b1+Pe0tDa3t7V1djgz9jb4tzj5uDb2d7e1NvO2N3g39XV1c/i29jS2N7Z19zd0d3d29vW4d3Z3Njd3t7e4N/g3dXb0t7e3dve3eDb3uHe2tXh29bf3dnP4Nzb29zi39fY29XY5d7G2dba29zY29Td4eHc29ndu9fgy9jc3drd1N7Y4eDb2uHf2eFtv+Te2tjd4sjX3tve2trZ2N7e3t3X2Mze39ve3c/S4drb2dvg4dja293a4d3h3tzb3d7f3tzX09XW4N3e29rd4d7e3tjY0L/a3d3N19nS3dvc2t/e1NDdz8PV1NLV2dne3dzb3NjZ3Nvb3N7h1tza2s/R1d3f3tvT1Njg4NLW2cHb493a1N/bz9zY3drQ2eDi3OHg2tDc29/b397Z0tfP393b3dze0t7g29zb3Nvh3N/d1tjg5N/b09XWv+Ha1N3X3t/Z19bLutrhvczV29va3uG9zOHX2NvZs8Xe3tvU4dvb293f2Nvc2ePf2ODh2d3d3d7g1drd3dPZ3drgy9fb3d3d1Nfe2s/d4cnb4d3X0tve2d3Z29vf3uLY29rc3Njg3trb397e29vY2tvd4Nza1dvc3Nvh3NzO3djV39fY3t7b1tzb2drH2duy2Njc39jc37/L3tvU19vbsN3f1tLe29jc3t3e39vb29vc4N7d4ODk4d7Y397ewtvZ3t7h4uHf3NjV4N7d3N3f3tfc4dLJ1d/K2OHX297e3oPY3tnb0dXe1tvh3tvYyd7d3d7d1dvb3tzf3tfR1d7e1dvY2eDg39nY393b3dzc1+Db3tvf2tHd3ePi3tXd3uHS3eDY3d/Y2d7e3d3W193a29vd2eDM0t3f287g3dzT29zb3d3c3t/a2Nnb2d7h4+DP49W/2eLg29rU2dzb3tbe1d3Z09vS1d7d29jR3d/e2Nzf297c29fY3trezNTb3dvV39fd4NTe4djY3N7br8jk3tzY3t7az9nY4N7a2dva3+DX29vb2Nve4OHe4tja3eHY3N7Y29rY293Z1+HX3tzh39je4d/b3d7b3N3b3eHb29Pg39Lc2t/U3tbc39ja2N3h29va1t7h2NTe0dLf3eLc297S2ODh4MzM3tjY4+Dh29jY2uPW2dza19vd3NjWyNjU1d7d3tPb297g2tze3d7b39vd2dvi3trV3t7d293h09bh2t7c29zc2Nrh4d3e4c/Q29bh4ODc3tve3t7g3uHg39Tb297h3N7b3eHf3Njg4N7Y3N7Z3tzhrdff29rS3uDO2tnb3eHe197c3t3e4eHj3tfb3tbZ0tvb4N7e4dnQ3dLB5OXd3tvQ2uDb4dne3N7e3d7Y3OHg2tjf3eHg4cuq4eHe3uLb3tre3N/g29rd1cTb197h1tve29jc3t7a2tne09ng3uHZ4tvg39Xb4tjb2+Dc3tTP4eHc2NjN3d/Z3dbJ0+Pe3cba2eHb2tjb4N7f3t3Y49jZ3drZ39vYyePg397TwtnV393a4N/U0t7Y3dXY2Nvc2t3e297g4d3a29vi3+Hc4Nvc3tze297e1djg2c3e5ODP2tvT3tfd3uHN2tvb2+Hg297f4d7X29DR3tvb4d3a297e0dLg4Nje19vc3dze497a3+Tj39zb3t/f3uDh3t/Y09zY2NvX2d7Y2d7c3tLE4N3e3tzc4NvY29Lc0tvY2ODJ2N7c3dm/2t7g4NXc3uHh2NLk2dza3NPU19va1tve3uHf3tjd2+Dd0b/b3dze39bR3tHj3tvk1Mbg297g093X2NvW2uDf2NSy4drd3t7d2c/V3d3e2s/d3tjd4tnb4OG+1dTh4Nje39vX3dva3t/Y397g29va3tvY2N7W29jW4Nrb3N3e2M/f29ze09/h3N/b3N/c29zh3d7a29ze29vh2N7e3eDh3ti6zdvb3d7e1tjd2d7e3t3Y2dvg3N7R1dvY293j18/d1dnX3NbZ3trgwsXP297dz9je1tTd29Le4N7MyeDb4N/Z2tfd2drb3tvY19re3d/a3djU29rS2trb2NXY2d/Z3t7d3eHc397f4t7e29ja3OHV1d7b2+Dh3t7W297h3N7h2+Hd2OHb3d3M4d/h3N3c4cnZ493d297a3d7b4d3P3t3c4dvd28ze3t7Z1trX2+Hh3NrY09/X2tjf3dXV1dve3dze19bd2Njc29vd39vY29zf3dvd2tvY29XX3dvg3NHV29/d3tne297e3OHd3tvg3NjZ3tvf09Pl4N3OvN7Z3t3d2uDU4eDb3dXB2OHb4eDd4uHf3eLg3tLV3dre4drb2t7h3ODc2Njb39vd1t7h3d3f2sHe4c7K4Nzd4dnT39jd3t/g0dfd29ja4dnZ2+HZ29vY39jX0tne2t3e3t7azNzb2czb397h4d7Y3d/e4N3Z2tjb3t7b2N/i4di04tve3t7U2+Hg39ve3sfZ2uLI3N7e3tve4ePij2nj0N/c4N3e39/e3+Pe297c29vV39/c3ODc3OHc18ra3d7b39/e3tXP1N/a2d/e3tjV3tvc4N/h3N7e09fU3ODb2tnd3eDa3+He193e3uHe3dze29vR4tzc3tjZ3uLd2+Dc29/azdjh28Xb3uHg29zd4t7d4sXJ0tXZ2t3S29h4ct7X3tzg4dnc4eDc3dzN2Nzc38/f0Lzb3tjg3dzS29vb4d7U197e0tXd3uDb3uPP29zg4N7Y3d3e2NXd2tjizM3Z3tve4Nzc1Nzf5Nne4NXY4N3ctWHS3tjb3djb4NjX297Y39fA1ePc393Y3t7f4dza19vd5rLL297X297YzNbb2uHZ297k19Xe3tvb2N7T0tvc3tzT1dXe3N3g2c/P4dXb3NPf2uHY3d7a2Nvb3r/X4tzf3tvb1d7b09bb3tnb16jX2Nzf3uHZ1t/Cx97a2N3e3OPGlNDe3tvd297g3tvi4Nre397d3eDc2dvd4uDc3t7c1djc3Nfe4t3e3d/f2OHe29jb2N/h3tzY29LX3OHG2N7e3tfe4Nzc29XQ09TJ3NbX29nY2tzb2tbd3tvc3+HY1d7Y08fW19jZ2Nnf39zb1d3P3dvh3N7j28bO3t3f3NLW48qX2NjX3tvb39/d3N/f29re3NjS4+Hd3tzY2t7e4N7N1d7b2dbf3tbe29vY3tvb3OTb3t7f3trb3t7g49ff39rb293d09rZ2NPN1c/h09vb3tvb3t7c3tjc19na4dzb3Njb3NvY3dzd3tvc3d7X29DO2dLh3NvV5tTc3d7V2N3Z05jU1dje2OHe29zb3NTa3t3e3tvb29/d297e3tjb29ra3N7h2dve2tPb4uHf1dni2t7d3OPb2+De297a29fd3Nbb4d7X29vgzNHe3Nnc29va29fZ29vY1OPM0N/h29zZ1dbe4d7e4t7b19nb3NLYzM/c297a0rfmttXa3dne3t3b6NPS3+De3ODb3N3c29ve2+Dc3NXjy8vb39jX3tvf29nW2t7j3tnh3t7f39/e2+De2+Dc4Nve3t7d2tbK2Nvf1+De3N3V2NjZ3uHcy9jb3trb2Nvb3t7bzNjd2t3f3t7a2N/c293c29zc0d7f4OLS2ODi3tvc2N7e29nh4dzb39zg1tvb1+Hcz9rd39vb3dzb1d3b0OLS1Nvc2dTa3t3h19He3Nnf1d3e3tvb3tba297d297e4dzF2+DY3dvZ1tbh29Ta1dzP3djf4dfI4d7K4M/V4dPV3d7Q3t7a3uHf3Nzh3Njg2tzc3t7b3tvd3d3Y1dre3N/g29vd1crR29LO4d3e2t3X39zR2OHe2dLh2NXc39jJ4d3e3d/i3d7c29ra193Y0NnR3d/Y3tze39/Z3uHT3t3b29fY3Nzd2NjV19rY2dLT3uDd3dja4OHb39DS3uHh1tvX3N7b3djfycPb2tvb3tzU29jW3tjV2dvb29vg0tbb19jh2ODV1tng1djg5+PR3+Dc2Nvh2+DWytvhsdDh3tnd3t7c293Z3eHb29ra09LV2drY29vg2dnh3dvY2tvV297J2N7b29vS3trb2Nre2Nfg3d7e3b3V1dff4Nze4Nje0d7g3t3T3t7R0d7Y29ve297h2dnb2tTh4d3a297S1N/d19/b29nb3uDf4tLN2NjZ0t/e2+HY3dnYwMvZ29jY3dzi3Nvj29zf397c1d3e29jV3NvY39re39fX2+LW3tHY19jT1tja2N7c19ne293h0dvZ3N7e2NLR3t7Y29ze29bZ3NvY29jb3uLb0uDd2+Df0dHj29vd397d4djW3ePi5Nvd3t3d3eHe2t3b2dnb29vW3N/W3dza3uHT0NrY3d3d2Nff3OLg3tre3tvC1d7e2dnb39rc3N7c29ve4+DZ3Nba3eHS297b3N3S29ve4c+039Xc19va2t7gzN7e39zb297a3NjN28/V2tvb3d3b29/J1eHc3t/e29vY2dves8+lzt3c3d7c3N3T29je49jU297b3dXd4dna2N7WzNrh3N7b2Nze29zf3uDe3tPZ2d7h3tnb2tjd293b3tvh1K3V2Nze4czK3uPd29vh3t7Y3d/e28ut0uHi3t/V4NvW3Nfd3eLg3Nrf2d/c29nZ2OHe4dXT2Nve3d7e3NTg4N6lxKrU2Nvb3t7V3N7f3dnh2tzb29zY1t3Y2t7g3NTY4dne4tvZ29rg4N3V29jW0Njf39jh1dXb4eLa3NbY3tvZ3N/d3djdx8fg4d7i3t/b4c/b3t7b2dXe29Xe29zb2dva2tvkwMXd1uDc3Nvb09nZztnK0s/V29ve2Nja3b/T39zU4d7e2NncztXd3tvd2tzc2tXP1tzW3d7h29ve1M/f09njwLLX2tvb39Xb2NDe3d3g293O0d/NwuHV1Nrb2t/U2uDb3dXQ3uHg4d7c3t/e1tLX3+Hh297awuDb3NjR09jf193PzNvV297Y1tzZ29jM1dPY3dzZ19bb19/h0tjc4d7c39ze293Z2N7Z09vj3Nnb2NjY4Njc3Nvh297Y1dnb4OG+sd7f2Nvf3trg49/c3d3f39/V2NLR3ti029jb3Nvb4dnf3tnd1dHe4d3c4N7Z1d7b4+He3dnb29ve2NnU1t/YzNne2tje1dna2NDe2dbb2N/b3tDc19vb1t7f1tfb4dvY2+bc3OHe3NnX3+He3d3f3t7h39fa3t3b3+Dh39vb3d7m29Ta3t/h4N3g0uHf3NPg39vc1dre2NrX3tvg4eHe1N7j3uDb0t7b29fQ3N/f2tjd48jV3tzS1N7Y3tzb2d3e3djb297X3tzb29rc3t7b2t/cyt3c2tje4d7Y3tfb3t/YgsXe2t7c3uHh193c3t3Y39zf3+Hh4N7e3t7e3drT2Obdxtjf3eLd3N7d3t7dzNzW3uDe29bc3Nvh4N7g4ODb2N3R1Nzg3t7X2MzU2N7a3t7bzNHd3tHZ397e3trI4N7g4dvZ4uPf3N3e2d3Y3d7c39rf2d3e3OHb4ODe2dvi59Fuytva3tja3t7g3d3d4NrT3d7d2N/g3tve3Nfb47zO4Nza4eDVz9ja2Nve2Nna4c664dze2MXa4N/h3d/h4eLg29/W2tvY3sTK2NjV2dzg48ne2N/R3uLf2dvc472z3sy+3uHY1t7d3eHd2Nna3tze29zd297e3N7X3ePb19ve3t/b2tfZ29vf2+Hh3tvY19Tb4dvW1dve4eHe2d3f4d7b4d/b29Ta2Nne3t7a3d3e39Pd3dvb2OPe4N7e4eHe4anU3tfd2dzc3NjY4+LFzuPW29/b4Nvcv9re293gzMHP2L/Y2uHYzNzZ29ve3t3c09zY3eDe4Nvb293e2+Le3eHg3tjf1bvfzNvY4eTf39XV19XaydzP0tXa1dXb3d3d3OHi4OHW19rd3t/f3eHk4N7e2d/g1trd4tXZ3Nne2ODg0dfe0tvc3tfg29jh49/b3tXa4dze2tnb2dTX2NPf3uLe4dve283T3t3e3t3a3djb4drV2Nzb39va3dve2OHf4OHd2dzh59G/297f3d3h3N3e29jZ4N7V09bd2Nvf3t7e3t3g29XY3N7b19/i3t/g3Nvj4eLSz9va4tfY4dzW2Nze4d7a29za2+Dj39be3tvb09fj3NbJ29Pc2NTb29vbyd3b3t7ez87d2dvb2tPc2uDe1Mmv5N7f05/b29vb3tzU0tvc3t/d2tXe3t7e3Nza3Nfa2tzd3djZ4N7d29vc39vg393d4Nvc3Nzd3N/c3uLd3OHc2NjX3N/h4ODh3d3Y29/e0Nvc3+Db1d/O1trb2OHc3t7b19PW19zd293b2Nva29vh4Nve3t3Y2Nvc39zb19/W09fd29jatdvb3uLW2MbI3t7d3d3d4NjP29jb2+Hc2tzT2tzd4dvh3d3e3Nrb297a28/S1t3d197c1d/Z2d/f1NLc3d3c3t7b1Nbe29nj3tTW2Nna3N/f28nb2tzY4N3d4NfX1Nve2N7Z2trV4NvY2N7e39zc2djd2+De1d7Z2trg3Nne3ODk19zf39vd18zh29bY29Xb3tvd2Nbd3tve3cvc3d/d3tjU3tvb3Nbg4Nvd397e39zb3uHe5Nnhv9vH0Njh393Y29vY29nW4+Hb0tvc1t3b4eDc2N7d3uHi4d/g1dji4dvf3tzc3tvd3tfX3dfe3ODV0Nvb3dTe3t7d2trY297c3tLD1tbc3tvY2N3S3d3a1tnd2Nza2NrX29bc3NvY2+HezL/l4Nve3dvb3ODi3t7g2t7c38rJ4Nm1197Vzd7X49DP5N7Y3d/l3eHa2N7Z1+Dh2d/e2Nvh5eDe3d/b2K7M39zb4N7X3Nvc3tvb2NLj2NXZ3N3f2N7Z39rb2drb2Nzb29re3t3b38vX3t3e19bd2dva3uLe1dvf4N7a29ze3t/V3M/e3dbe3tzf293d4d7d3drhy8bZ1d/g29vi2tjdztPc2t3f2uPj3d7f2tvX4N/d1dff397e2NPY29jYv77h3N7Xt9Xe2t3b3t3b2dvb2tvZ3ODa29fe29jY29jb3Nrf49nd3t7e3t7f3tvW19be3OHd297e4J/V3ODY4NvZ3eDYwNfh29ze4Nzh4eHg4tnb39jh49ze2tvW3sjS3tjSy93Z3dvZ297f3trc19vY3taV49be4dvYTrbj29jh2dXh4djM1d7g4MzZ3Nre29jd19Xc393c3dzd2d3dzN3e29jc1cza1Nrd0Njc2d3Z2Nve2c3e3uHeqtXY3Nvd4ODd3dve1drg297e2N7g3tzZ2t/c2tfY5uHY19jc2Nvb09Tb2eDb1t3X29vV2d/a1c/b2t7Wyt7c2+Cl1d3e2NXh3d7h4djY3NDLpeDh3eHb3tvd2dje4Nve3d7f397b29ng3dvZ09XT3OHBx9zc1N3f29/XyeHe4t7i4Nja297X2tvY4+Dc3djb3dPP3d/f3t3Y29zc1dfg2Nzc493c2tjf2NXS4eHY3dvd1dbW29zZ3Nre29Le1dve3OPe3uHSzeLe3eLc49PJqLLY4NrZ29/d29vd4Nze1N7d3t/c29vX2Nbd297a2d7e29nW3OHb3tza2dXV1Nvh3dva29rb2NjZ2d7f3+Pa19Xb1tve3d/Y3tvd2+Hd2d7d3tvL2N3Y0d7h3tzZ18jg3tnf293W3d7c3OHg3eDe3dzT2Nzb2tzh293b297g4dzOzOHZ29rWz9vX09jY1d7SzMTe2NnX09LS29zc19vbybvX0t/h397X2Nvf3dnb19nc3t7f3tzf3tXY2dXZ4NvY1tve4NPb2dTa39rd3t/d3tjc06zS3d3b4N7h3dXe497Vydvj3N3ez9jgydvh4Nvd2dvfydbh1tfV297e3tbb3dvb3t3d2djS3Nra49vZ3M/GqNHb2tXhs6/b3trV3+G7teHi3d3f2NvR29rR1ePc2N/g393c4Njc293a0eLc29ve3t7b19TV2d7b3Nze4ODO0uPh3dTY4d7d29vf3d/SzN3Y397b2+HN09C65M/W2cze4ePi3dzf3s7Y3tvS0Mbg29zf19zb3dze29jc29Xe4d7Zu+De4d7g2dvd3+Pc3MHF4bjV3uDd06jc1tfV3djf4ODe3ePa3NfX3tnc3Njb2MrU49zg3NjX4N7f3t3e29Lb293e1dXb2d/e19rb4bqT4tC3393e4dja1NTY09zb1uDg4OPg2dje39zh18/X4NXX3Nbe2N7h397MweHY19zh3tve3d7a1t7b0dzh3tva1Nrazdrf3tvS3ePe1drL1eDd2eDW3d7e3tvb4N7a29Xg0t3i39nY4Nzc397i3d7Y29/a4NvW3Nbe293h1dvS1Mve0s3c293c3tje1NXg4eDZ3t7VyeHYz9vZ29vS1tzZ1tPk2dvg2NjY2NXY29za0t7R0dra3djO3Njdz9Lb3trT3t7Z3dvW2Njb3tfb3Nrb3t/g4dXb4d3k49vY3t7d2t/bzdbe297Z29re39Hb29vd3uDe2tvi3trf3NrU3tbX39jb39nTyN/h4ODi29zg2Nzd3cKS4Nrh3tvb4djZ29ne3t/j2t3c2dvb3Nbbzt3R19vY297b293N0trV0tve2t3Y4dXV297V3Nvc1dvh4d3i1tvQt97h29vj2tva4t7g2dvY3+Hb3N7X29nWvMnc3t/a1+HhzuHY2tng2dbd49vP3NbY2NXE4N/e39jf3uDb4ODY29Lexp3e3tu+29zc4d7e3dne2drY3uHVxNzP2eDP1dve1NXX09jX1+He2NrVxdzf1dTf3tvg3tzg4OPe4Nna2dbQ3d7LzNrf29zg19XX193i4d/c2t7e3d7P1Nvb2uLg2N/hx8Thytfc3t/M3N7i3N3h3d7e3Nnh2t3h397h4Nzc3dnSqd/h363d3Mvd3dzY2tPc2eHe1tfUzNrb4djb2tjV19rZ3t7e28zh0tPT1tjZ3tnd39jV3uDg1s3h3t7e3tjc28zO4+Pe29jV0+Hb3t7Z2tvc3tnY3tvR2+Db3tzi09Xb2+O3zt7P2oO/5dvc3dzb29rb2NLX3t3l3tjR2N3gxsjk2d3Y3dTV1d/e3Njj1dfU1OHYz9XXztTg4N3f4t7Y3dzc293Y1d3f1eDc4eDd3Ni30tPa3N7e29jg3+Hb19je3eDP3ODU2cne3d3a3dnR29Xi29vkcqrc5uHb39LT3Nvb3uLY39jc497b2Nve3tnb29XZ0NHb5KKv2Nbg2My7wdzf4uPV0tzd29ze29vd2NHU4dvR1d7Q2rvK2t3c2tja39vN3tzb3tjb2tzb397e2cbd4drc2tPktL/f3tvb29LL1NXZ2dbh4uDJ1uHh297e0sva0tiy3NrToNvg3uDf1d/i49vc4dfe4tvc1d/e29Xf1N7h4d3eu87j2NLWxrnB2+Hf2+Dg2d7b2Nnc29jb3dzd2+S8zd3bmb3i29za3t7f1sPeztXb3tzd2+Hb3t3b4t/g3t7Lu9nAu9rZ3tvZ29PU29vf0tnf4trZ4t7g4d3Wwt7b2+Hf4dWf2+DZ29vV4Nve39vfzdPf3d7Q3c/X1t7a2N7b2tzi39rX0NnHutvh3Nvc3uLh3N7Y3dbd397a3tfW3d3f28nY3d7e3t3d39ve3Nvb09rZ4OHe293h2+HU2ODf39vW1+HZ0tvf2d3h1d3f3+SzveXg3NXe3tvc3dve4N7g2t7f3OPL1drh3tvY29zd2tfa3N7c3tvf09PS4dzV2+XY2dnc3eDR2tzY39/c4Njb1dvZ2Nng4dzeptDe28/e4OPc2Nvg3tXV19/e29vY3dna2+Dh4tvb3t7V3Nrc4dze393c2Nvb3t7f3d3M1ePa4dnb4uHb2NfY3trb1tTa3d7b4N7c3tfV2N3a2+Hb3t3d29vf4d3e2Nvc2M/e2Njf297b2N7Y3+Hd29/a4eTf3t/Y0rvU1uDa39W74Nzd2Nvd29/f4dLb297c29nb187S3t3d3d7b1tre293g2uDd2Nve29zd39fa0tPT4dXW4t7b29vc3eHbzdvf29DY3N3b29bY2dnY1+PY2eDb2eDc29XW29fV4dvh2tvT3uHI0t3V4dvb4OHZ39va3dnZs93d29XX1ODV3dfO4ubf3d3h2+Hkz9Ld1uHb3tnV397Uz9Xf3tva393b4d/X2Njd3dzY3t3O3uHf39zNtNXL39/b297OzNvf49nA4d3b0+Hc1dne3d/e2Njh4d7a2NnX2N3R1d3a18fg3N/i29ne3t3b3trf3t3c49va3Mnb3tmZ3t7d2d7H2NjX2Nnc3t3e2uHRqtCyzNHh297Z0NjY29vc4N7e2d7d3tzb47TI2Nzk49Le19fe2Nve2t/d29Le29vY3dvb3OPSzuHY29je4tTe39jgzsbb3Nzc3d/Y1tvY39ni497e0d7h2+He4czP3uDe3tvd2d3b3tjewtXf39/b3t7d2NvVzNfd4t3e4N3e4diez7TI4N7e29zTzdXb293h3tfY3Nvb4ODbzdrd39zg2NXZ4d7e393c2tLY3djg3tfd4d3b29HW2+Db3eHg3dHa2+HVy93i3NvS4dvb3N7e3dXb39jM4N3exeDd29re4N3b3N3azePg1d3U2Nvc2d7Y29rdwMu42NrY397d3NGv4eLZ1ODg38nV29zV2dvb3drgz8/e183c3+Hh3tva2d/b3uLe3Nve2uHO08fY497h29ve29ja29rY4tvc3t7e3uLgz9nf2MTh29XZ397b397c0tzM0t7f4Naq3d7h4tze29/d2t7Z3d7e2ODh2NvY3t/b4+DY3tnY29jf3dje3Mza3dnh3ODa19rb297b2Nrb3eHS3d7Yy9fe397V1dvb2t7ez9XX0Nzb29/a297Z4ODf29re39vh29vg0tvh3Nzd1eHY2uDVoNvb2NTf4d7e3tvd0cLY2t/k297f2+Di2tzZ1dvd3NDc4d7e39vW3tvJ5d3e3Nfg3t7h2Nnf4Nrd3dvb29nb3Nre18Hh3Nre3uDGwdTd3d7h2trS387L4Nzf5q6o4tbY4t7d29Xj3tbe3tne3tze3tvd4d3a3NjT4tjN3tXa197P3drd4cbF4Nnc1dvRz9Pe5raw3N7b1uDa397X3t3b0NLF4Nzd4tfW4HnD4N7Q19je4eHa0Nzf2dfW3t/c29ff1trU1dza3tvb3tbX39zb3dXg0tPg0t/d4OLeyNLbz+PZ2d7d4d3c3NLb3t7c2+La3dvb2OPe1dvb4cLAxN7e3t7f3Nvbw7Pj3eLcxtrc3N7eu6Pj39vRud7h3d3e3+PbwbLf2+De4N3hn5bjucXS2d7g4NjY293f19rP2tjd3uHh39zh4dvb2d3b2t3d3tvI4djF2Nzd397d4N3h3+He4NvT2+Lh397e4tzb4eHVzN7i3tvh2tze4djd0tvg3trb3dzXzOHc2dLc29q81ODb2Nrh5t7C18bU29rV1drV3N7b3dve3N7g4dXJ0dWb59XX3trb0M7V29jZ3tvf4OHh3+Dg3dzj397e4tvV2dvb1uDh3Mnb3tTb3tvd2+Li3+Db38/b397e293d293e39jS3ODg3uHZ2uHc09jf4djc4N7Yz9XR39re3d7Y3d7W19/d2Nve3pXc4d3V0tvZ4NPY3tvT3+DQ3Mjg2szZ2+DKr9/e2NbZ29je0q7U5N7d1djb3t7b09Xf2N1/0tzc3d7F4d7c4NXez9Xd2tzY3uHR397f2N3b29zd3dHb3t7a2dvd3eHe19jevNHSxNvP097d3tLX3+Db197b29jc3dzV397X2N7f3t3g293e397Y29/b3t7a4si52dvZ4dva2tnb497g4t7O39/f0dnJ3N7O2Nzg3d/F1NzU3Z/N3t7Y2Nfc4OHb3NzV2t3h39zb3tze3dve1tve2t/c1dLe2d/i4N3f3t7Z0+PR1trR3tLe3NnV2Njb297Q1t7i2NTI3tvY4N7Z29nW2N3Z3tjb4dza397ay93d27vX397e3t7d297e39Ws4tng29fV39La4dHY3+PbxNHZ2NrW5tna1M/c3tnUyNvhz9vh2Nnc4Nva28nb4ObOydzb18zTyt7b39vc3uDe3uDf2uPYwtPZ39ve3dfU3trY39jX1dvb3dvb39ve1Nre3t7d3N7V4d3e4N7d3NjG3tvlxsDY29/R2+DUz9vi2Mja197b2djc2djS2N7c3ti3ydzf3tvh2NvSxeDYttvK3N7b3uHT093f3N7X0trX2N7G2dvb29na3d3c29/e29Xe3N7Y2tfS0tTg3d/f29zizNjc5dvT29zh39vW4dvb4t7b3tzd3d3b29re39/e19nc2tHj0tPe1dja3dW729za4N3Z3t/b2Nvf3c3T09vc2tra4eDa2Nfc293fztXd4dzc293X4eLez9zh3+Hh2NnZ4NXY3OHh3dzb2+Hc397d19ve2+Hc1t7h5OHb3tzb4uPY3ODg3t3U2Nne4NTb3uDe3uDX2+DZ2dfV1NXe3tze3tvb19Xc39jY2tre3dnZ1M3g3tuj3Nfb3t/e3NXF2tjc39/f3dvS1tjc5NzX39nP29re29jf3tvf3t7Y2Nzb297e19nV0t3e39zY2N7g393d1eHV1d/f3NvY39/b3+PY0eDb29vc3tnf2OHh3t3h3dje3d7e3czd29fY3Nvj4eDd2ePhzM7f297f3t7f2tjc3tbV3Mnc3tze4Nva2OHY3OPi0c7j2uDS1tvgztLe0dLh39nW297Z1N7b297c39ja2t3a2NvZ29nW1d3Z3NvV3dze29va2trg1c/b2Nzc4ci+49jbz97i3d7Z1N7h3t/cz+PK1d3h39jYtM/P0+He3tLhwrbi09/h3tjb4N/V1N7b08/e2tvh3tve3tzc4N7h4dnN0d/f3sHX3dzMz+Pb4tzZytze2Njg3tvb4dnf3d/e3tvY4eDe2dXM2N/g3Nja197c4NG3uebNz9/Z4N7S3Nng3t7e2+Hb293UqMne4Nve1NXZ2t7e4d2Yz93S0tve1d7V2OPd297e19Pf4dLT3Nve3tzb3tvJ29/VzN7Z3N7e1dfb3Nve4NDW3NvX3t3e2Nrb3tvd3t7V28bT497e4Nvc3N3Y293d3tTQ29bb3tTR3d3hx7/K2NDMv9/d3dTd3tjd3+Da29Xh3+TI1uHh3d7U29zb397g5uHe3tzb4NzY29/e1drb2d7dydje2+Df3N7i4t7e3tLR3c/W4eHb2tXb2N7h297e2tvY19PV297b1d7b3Nre3Nvh0dPi2tzg3N/d3NXe4OLe39vc29jc29vd4dbP1tjg29PN4djd3NXY1t7V4d/Y2NnY2ePf4tvd3uDX3N7e3+LM2t3h4Nvm2LTg2t3V0uHP1tvb3t7Z4ODb4d7c39vh4tXf4NvZ293d2ODe3N/e2Njj4tvc3tje29rb2drc3tjh29vh4uDd29ff29He19zW29fg2NXd397b4eDh0NLe0sfi3eDe3dje29rb3dnb4eLe0M/b3N7h3tLi2NjU4d/b29Pf3uHg3N/i39ve3t/b4d7Z29nb3uXh4eLS2ODi29ve5MzP297f3tDL0uDc1N7Y2NTd4t7h3NLe2N/W2tXR2sTV2uPf4uDSzt/Z39vb2tzT1eDa1drb3r3G297b2tTDqOPd2uDb3Njc3dzU2N3V2NTYzNrc29rd3N7Z3tvc3OHh0t/i39rg3N3e3tnd29zd297c3Nve3NHP5dPd3d3Z2N/ZY7i9wt3b07Wq5tzZ2djb1d7h2t3g1dve3drhyp/i1d7i4N7f3t7g3Nve2N7b39nP3eDb2uDexsrU29vc0b3K39va1dDY2tLi39bd4NfP0t3V29XP3d7g3ODb2N7c39/U3sbM1dnb2N7d3d7g3tXW3t3d4N/b2tLb493a3tzd3trM2KvA3dDa3tnb4N7X2szQ3tvY29jb1tvY1tvd093Y3t7b1NPa3d/d3tzY3uHe29vc3d/V1eDn29jb3tvh4tze4djPzNXi1cHe1drd3dvb39/h3djb1tve29vbyNje29rlrcne2Nzh2d7h4N7h3eDd3tzZ4N/d3eDa2M/Y4N/d3t7S4d3Z39Ha4N7a293T2dLg293i3t3V4NTa29zZ2t/c2trZpdLi4tvd19Xc3tnS29vb3tnT5Nvb3NXR1tje29fc3d3S2OHW0trawuHh3tvX4NnP49zS3NjW3ti41eDg2dLh3tvb3Njfz9jh1t3e393h3dvY2t3bvs/Mvsji4dvb39Pd4d3e1dHc3tXd29vf3s/R4dzX3t3b3uDe4ePe1Nfc3d6r1d7c29fV0dvb3Nve3tvY3tzf39vYz9jc1NLhz9vh29zc3N3f3Nm93uHe2d3b2Nva3d/i2NHb1eDW1+LVrN7b4d7c3t3Y397d29nd4N7f3Nvd3dvB28644N3e29bg3t/V3tna2d7S0d3c29rdzNTd2djJ49jZ19bh3tjNz9rh2+DY2tbZzNze29na1Nvb3t7a19ze3tzY2tnb19/e4cze3d7f3dzh3OHV3+LO3dzc34zV19va4Nvh3tfWy9XZ4t7f393f397e3trh3NXZ497V3+He2Mjm3cfc2tzY39vZ4N3e3eLb293h2t7e3t3d3tve3tre2dva3tvd2+LKtsLf1tLe2drj2drd2NnZ29vd1dzb2tjc2Nfb3djZ297b1d7T29Xe2t/e2d3Y3N7e3t7gs9nb29ze3tXb3OHR3eLU0tXe3OHe393b09zi3t3c3t3d2dXYv+Hb3uDc4d7e3t7a3djb4d3e3drT29vg2NLc397b4eDO0NXP3uLe4ObR0dva29/f3tje3t7d2tjf297X3NrY297T2N7e2Nba3eHY3tjU2dna2+HZ39XM4dze39/i3tvV3+DZ1Njb4N7a5MjP1djV3d/e3N3e3dvj3tvd4uDe3dfh2Nfd3Nze1dzd2t7b19bf4bjUz77d3dvZ2N/NzcDY3s/S2Nbh3uDb2ODi3djcz9nb2N7d3Nra1dvS397b1tje2NzZ4N7b3tHa29jZ2Nvh0dff3uLb2M/W2Nvb3Nvc29jb29zY1djd4tbV3d7d29zf19LZ2d/g3tvc3dzf4N7e4drc1t3h29vS4Nzh4ODb3N7ctd7S0Nzd2+PW3Njb1MzU3uDb19je3t7Y397a3d3O0dfY4tfJ4Nfe3tDaz9TMudfc4+Pg2Njez9nbwNjQ5N7U2uHc3t7a3t3b3Nvh3t7dzdDP4drb0Njb3tvT19vg4eHX0t/c0tzg3dXW3d7fzs7e1M7h2t3bz93g39nd19/d4Nzh3Nvi2Nng1tDXxtLc1tna3t3b3N7g297e3dvd29jV2dbT1dvb2+Hd2duz1cXO3uPb3Njb3Nnf3dvV3drd4Njf1tfd1tvf3tjV397h3uHg2t7e3eLb4Nzc3tng3N7OwOba397b1NXf3s/O4N7YwuHf3trY3tbF4eDg3tzd49jY5tzb2+Dh3tvL4djS1dXYx9/g397g3drY0dvc2N7f3N3b3c3J4d3R2t/c3NjZ19Xb29zc29vb1tjY49XJ4NjX3dzZ1d3Z4Nze29ne2t3c3ODc3Nvc3tjb3N7Y4N7V2NnI3t/h3tvgxNni3t3d2uHe3d3h29rc3tTa4N3e2+Db3t6N1t3e29bc28TT4NvY3N7c197c3t7fz93b2Nje3N7e3Njb293UyLzQ1dXb2dnZ197S3ODe3tnY1sna297h4dfW3t/b3tvZ19zb2Nfa297e4N7f29ve2dve3Nje3tjY1NjV2trb4+DJ2tzg4OHb3tPc3tvd3dvd3tnb293e2NLS4ZTV2tLZ3c/IzNXb1dPf39rb3Nnb293Yz9jS3d7Y3dvh0tLb4tW/4NTb3tnY2s/X1NLe1d7h3qHe1tXe4OHf0M/f4eLaz9za3tzX0dfY3eHU2drg3tvd3d3a4OHZ29va4dDP3tzb3eHh3Nvc3d3h4uHVz+He3tzg2tzc39XC3tvi4dve3tvXw83Y4N/c3Nve1eLPztjY2+DQ29LZ2eHf3N7V2+DK1OHd3tDf1tnf3ODW19vaxtLPxN3h2Nvb3uHf29vg3t3W3d/f493S29HW3tjb3N7b3dzV3tzZ0d/g3t7g29vh3tjV1uHe29ve4dvd3tzV2tjh29Xe29ve3Nfaydje2OHb29vEzt/g2Nje1t/V29jg39zd2+Tf293M4dXa2Nzb2M/X3tvZ29ve4ubS2OHe3uGazNvk3t3c19Tc1tzZ2+Df1NXd3uDe39vb3dzb3N7i2Nfc297S1dTM4N7d4eHe3d7b29/g3d7d2ODj3t/e2t3a297P1N/g3N3Y29a929fg1Nre4NnW0NTg3t7c2N/b3tzd3uHa29ve1OXh1dva3uHb3Nze2drg4eHg3tvZ4d7c3s+q3t7b2tjY2dvV4cLb3djY2Nve39vd3dXd2djg4N7a3dve3trV3drc3tvX3tje2dne297d497X29/f19vX1tjb3NXb3t7Z19vc3uXXyeLV2ODe48nK3d7d3t7Q3N7h0t7e397g2t3Z29vg29fc3tvc3d/a1tzd3+He493a2Nfd2Nnc3d/e4d3e2tji4d7g29Hd4d3Y2dzb3OLd2N7Y3t7Z2drc3dfV3dHW4dvY3tze3t3b29vK3dvW2eHg1Nvbwtve3tXc397d4Nva4N7c0szf2tff3d/c297b19bZ2NvU3t/f29vg2+Hd293Q0tvY1t3e1dvZ2NLc2+Le29XZ3tvc293e3trf39nd3N7g393J0Nbd3NnY293g4d7h2N3Z1drW3uDh29rg2d7j39Xg49ze1NfY29Lc3t7Z4t3Y2Nzd3+Pj3tje3tLe1szZ2tLa29rV19vd2dfb3trY1eHd3t7Y1tvb3t3e4d7Y38/V39rd3d3b197c1dvf2Nre0tzg3drY4N3b3tjb2dXb3N/f0o7W2+Dh3Nvb3OLb2N7T3dLV38/Z29zbu+Lc2d3f0dre39vb2Nzc29ze297c2tHI4eDi3uHe2d7b1t7Z0tTe29ji09fd293V29zh2Nbb3tjY2Nja3d/f2d7b3r/L4N7V3tTd4tbC3t7b4ODa3Nvd29TY29rc2tfh29nb1N7Y4eDc397g3tja39Xf4d/k4NzY397c3N7c2tjY2tvZ2t/j3tzb3tvb2+Hb3Nrd2Mnh3dvg4dTb3dvd4Nve3tzd4tvb3d7c3dzb4N7c3d3e4uDT29XZ3NPb4tnb3Nve3dvc3dKv3tLd3N3d3trf3dLb3d7e3d7d3tjY3eDf3dnh4d3e3OHW29vd2trY2eXY197b293e297h3uDe2OHQz9rd2t/i29vg3+DX2N3Z0uHTxtXg497eys3d3tra3dvc29/e3eHX2eHi3Nvg07vh297Y3sXb4OHWztzh2Nje3Nvd3Nzh17DQxtne3t7f2tve19jWy+Hc29rY29PY4dnf4tXL3s3Q4drX193X4NXY2tzV293b1dfa3d/c3dnO29jY3d7b29fY2eHe2N7U2NnS1Nvb0+De3t7e3trb2uHf3N7V2Nbb3tvb1tvf397ez9ve4dvZ2N3g4dvb2Mzc49jc1dTd3dzV49vO3dnU29nb3d7c49XO3tra3tXW1tje2N3f2tnfwNLd4d/X0tXb19re4d/c3d3Y3dbY3uDh3dvh39nU3N7fwtvg4uHb29jb2NPV3tje2tzg3dzh3dvb29ne4dnb1d7e3dvT3+Hh3d3a3t7b39zZ3dvb39vUyd7A1eDY29jb2tnV0szZ4MzY2N3e293h3+Dj2tne293d3dvb3Nvb1N/f2tzf3tzM3d/b3dvd29fb283W29vb0uDc297Z19Tb2eDb2+Lc3uHe3uDe3dve3tnV3tnc3N7a2+Hf39zc3Mzf3tre39/S29ve3N3a3uHX3d3b3t7a0eLY28LZ3tvf4NzM1dfQ29rX2t/h3N7g2tje3Nbe3t3N2t/Y2uDb3tnY09/e2N3e1dTg0tTe2djW293Z2tvY39/ev7vg2dbb2t3Y3NTb3t7c3OHc3t7X3tra0NjK0+He3t7a3t7c3d7f2+Pg0drb3drZ3NzY3Nzh39Lb29zg3tfe3NPc493b3tLe4bHI3eHe29rQ3Nfd3tnb2eDc29nb29bb3tve2tzb4Nre0t3d3djb28/X3dze2dfa3tvd4dve2uHLx+Hc29vf3t7Z1dnc2+Di3+HY29bd1tjf49vP2+Hb3t7b39ve493e4dvb2t7d1tne4dzc3Nrc29jf4OLd2NrZ2t/e3t3Y3tvb29jZ2NHS29Lf297a1tvY3Nne3tzX29vc397T3tze2t7Q1drZ2NXb29rf297h3tna29Xf29vS2N/e29vc3t3e1tXb397d29/g293Z2tjb3OXd3Nvb3tvc3tvb3tvYzd3h19jY29rd29ve09nZ3Nzc2t7b3OHa2NTY4OHd09Pd29/f3NrS09ne4N7e3tjY2dvY3d7b3tvb29je3t7e29viwsvf4d7c2dza29/e3tje3tjg3t7b2dvh1dDj4Nvb3N7h3t/g49rb293d1dvX2N/SzN/d3+De29ve3t7e3NjM397Z2dze3tjH39ve39zf2dXV1t3Y2tvb2trY0sze3tzW2Nvb29ze29zf3Nrd29vCtdvd29nd3t/j4tnb2dXa3tuwxd7KzN7i3Nvd393f2Njd2t7e3t7c3t/WzOLIxuHa3eDg3OHf293h3uDV297g4cnA4eDe2OHe3eDY3Nrf3uPY2d/d4+Lc3Me33tvb48fJ4dPY19vV093c497RxuPj3t3X4NvY1Nve3trX2tvZ2MvT3dLc3uPf3Nvi3tzYyOHiwszg3LvJ4Njj4d3T1d7X1eHj39/g4eHe3t7l0dPW2+Hd1c3f39zb3dzWyeDe2tzh497Y1dvi3Nbb19LX1dLe3dja2tfe3eDe29Xe29fd0Mvd4t7Y2dbS39ze3N7b29Lc3t7b3drW3tfe3NLa1dvZ4dza19nYsuDZ3N3c3d7TvdvX2N/RuOLe2+Pf2NDa297h3tvZ3eHb397b1eHa2NzX3tnTyeDj39je293W4eHa3Nne3t/V2+PVzN7b3t3Gt+Pd3dXT2tve397b3t7b4d/j4d3Y2dze3d/b3tje3tXW1d3d29vZ19bS2N7h4Nva3Nva2OLe29e41t7b3tzb4dfS2Nzd3dvV3Nzb3t3Y4c7aqdjb29bM09zX4N7b3t7X2dvf3tnizdnj2Nfb3tTd3tvb2t3e1d3d2t3f3t/h3t7e397Y2tja3d7D0tve2N7c3N7Y3N7b1d/e19jf3t7e3dfX3Nvc2trb3tve39jj39jX39jU3tre2eHg4tjc4Nre3t7h09re2Nfe4d/d3ePe2t/B293c39LD4d3e3uLb3tm93t/g3OHc3N/g3dve3tnc3tnd2dzV29vb4N7f09ja3Nrb19ji3tji3sbV3uDc293Z2N/h4OLP297aztvf3tzW29bY3NvV1N7f3Nvf2tnh183X4d/b39/d3N7Su8/g2Nvf09fe3tnV3uHg4dvc29ve3N/c4d3b4t7h49jX4N7b187j4OLe3OHZ3t3b393c2eHe3d3a29za29rc3dXd3tja4M3J293X2dzb29va3t/e4d7V2t7f3ODd2t+83drb393V2uHa197b2Nve397e3tTb297h3tzg3uDj3dHS2tve3N7MyeHb3Nzc3ePh2eDe3tvZ3N7e397d3uPIv+Hj2Nnc397d3tzd3N7h2tve3trf397f3Nze3dva29TT2Nvg39jZytjb2NXf3tPX29fc3t3e2eHG1N7a2Nna3d7W2NTb29nc3dXe2tza1d7e3uLSzt/X39rf2N3b2t7f2NjV29vg3t3Y3trc4d3e4d7b4OXg2tjj39ja3NzM3tXT29za2+Hb4d7b3NLa2ODc4eHb2+DZ4d3b3tne2N3Y3N7e3tvm4dvX29vf29njtdbh397d293V3dze3NO93tzb2MTZ2t21vuPd1tjb39vY1Nzb4tvYxtjc293d2drd3dnd29vj2tTZ397e19nZ397P3tzd497Y2N/a4dTY4NzY1tjf2Nfd4N/b3d3Yut/e3t7e2+Dd3N/d29fZ1d3f3tvb3tzg3uLh3N7f4d3V1dvV2+Dh3tbd2Nvg397j3t/b2eDc1dLg29jb4Nvb3Nne3trN2+Lc3d7G3tre3Nnh4dne4OPf3dzb1tje29vb09fe29Te3d3a3t3a3tbet83h1djg3N7e3N3e49vb3tvb297Y3Nrb2N3c3tzg2djY4eHe3N3h39ja4t/d3tve2929xt/f397d39zb4NXV3M3b29bU4dnW2tna29fd297h4dze29jc3t3b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CgkJCQkJCS9DIDEKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+//9b/1spCgkJCQkJCS9DIDEKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+/yAYIBgpCgkJCQkJCS9DIDEKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+/zAIMAgpCgkJCQkJCS9DIDEKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+/zAKMAopCgkJCQkJCS9DIDEKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+/zAMMAwpCgkJCQkJCS9DIDEKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+/zAOMA4pCgkJCQkJCS9DIDEKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+/zAQMBApCgkJCQkJCS9DIDEKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+/zAUMBQpCgkJCQkJCS9DIDEKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+//42/jYpCgkJCQkJCS9DIDIKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+//44/jgpCgkJCQkJCS9DIDIKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+//46/jopCgkJCQkJCS9DIDIKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+//48/jwpCgkJCQkJCS9DIDIKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+//4+/j4pCgkJCQkJCS9DIDIKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+//5A/kApCgkJCQkJCS9DIDIKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+//5C/kIpCgkJCQkJCS9DIDIKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+//5E/kQpCgkJCQkJCS9DIDIKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+//8J/wkpCgkJCQkJCS9DIDIKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+//89/z0pCgkJCQkJCS9DIDIKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+//9d/10pCgkJCQkJCS9DIDIKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+/yAZIBkpCgkJCQkJCS9DIDIKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+/zAJMAkpCgkJCQkJCS9DIDIKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+/zALMAspCgkJCQkJCS9DIDIKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+/zANMA0pCgkJCQkJCS9DIDIKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+/zAPMA8pCgkJCQkJCS9DIDIKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+/zARMBEpCgkJCQkJCS9DIDIKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+/zAVMBUpCgkJCQkJCS9DIDIKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+//8P/w8pCgkJCQkJCS9DIDMKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+//9e/14pCgkJCQkJCS9DIDMKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+/zBBMEEpCgkJCQkJCS9DIDMKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+/zBDMEMpCgkJCQkJCS9DIDMKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+/zBFMEUpCgkJCQkJCS9DIDMKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+/zBHMEcpCgkJCQkJCS9DIDMKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+/zBJMEkpCgkJCQkJCS9DIDMKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+/zBjMGMpCgkJCQkJCS9DIDMKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+/zCDMIMpCgkJCQkJCS9DIDMKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+/zCFMIUpCgkJCQkJCS9DIDMKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+/zCHMIcpCgkJCQkJCS9DIDMKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+/zCOMI4pCgkJCQkJCS9DIDMKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+/zCdMJ0pCgkJCQkJCS9DIDMKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+/zCeMJ4p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CS9SICj+/zCGMIYpCgkJCQkJCS9DIDEyCgkJCQkJPj4KCQkJCQk8PAoJCQkJCQkvUiAo/v8wiDCNKQoJCQkJCQkvQyAxMgoJCQkJCT4+CgkJCQkJPDwKCQkJCQkJL1IgKP7/MI8wkykKCQkJCQkJL0MgMTIKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+//8Q/xkpCgkJCQkJCS9DIDEzCgkJCQkJPj4KCQkJCQk8PAoJCQkJCQkvUiAo/v8wojCiKQoJCQkJCQkvQyAxNAoJCQkJCT4+CgkJCQkJPDwKCQkJCQkJL1IgKP7/MKQwpCkKCQkJCQkJL0MgMTQKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+/zCmMKYpCgkJCQkJCS9DIDE0CgkJCQkJPj4KCQkJCQk8PAoJCQkJCQkvUiAo/v8wqDCoKQoJCQkJCQkvQyAxNAoJCQkJCT4+CgkJCQkJPDwKCQkJCQkJL1IgKP7/MKowwikKCQkJCQkJL0MgMTQKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+/zDEMOQpCgkJCQkJCS9DIDE0CgkJCQkJPj4KCQkJCQk8PAoJCQkJCQkvUiAo/v8w5jDmKQoJCQkJCQkvQyAxNAoJCQkJCT4+CgkJCQkJPDwKCQkJCQkJL1IgKP7/MOgw7SkKCQkJCQkJL0MgMTQKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+/zDvMPMpCgkJCQkJCS9DIDE0CgkJCQkJPj4KCQkJCQk8PAoJCQkJCQkvUiAo/v8yIDJDKQoJCQkJCQkvQyAxNAoJCQkJCT4+CgkJCQkJPDwKCQkJCQkJL1IgKP7/MoAysCkKCQkJCQkJL0MgMTQKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+/zLQMv4pCgkJCQkJCS9DIDE0CgkJCQkJPj4KCQkJCQk8PAoJCQkJCQkvUiAo/v8zADNXKQoJCQkJCQkvQyAxNAoJCQkJCT4+CgkJCQkJPDwKCQkJCQkJL1IgKP7/M3EzdikKCQkJCQkJL0MgMTQKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+/zOAM90pCgkJCQkJCS9DIDE0CgkJCQkJPj4KCQkJCQk8PAoJCQkJCQkvUiAo/v9OAJ+lKQoJCQkJCQkvQyAxNAoJCQkJCT4+CgkJCQkJPDwKCQkJCQkJL1IgKP7/ADAAOSkKCQkJCQkJL0MgMTUKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+/wAhAH4pCgkJCQkJCS9DIDE2CgkJCQkJPj4KCQkJCQk8PAoJCQkJCQkvUiAo/v8AoQD/KQoJCQkJCQkvQyAxNgoJCQkJCT4+CgkJCQkJPDwKCQkJCQkJL1IgKP7/IBwgHCkKCQkJCQkJL0MgMTYKCQkJCQk+PgoJCQkJCTw8CgkJCQkJCS9SICj+/yAdIB0pCgkJCQkJCS9DIDE2CgkJCQkJPj4KCQkJCQldCgkJCQk+PgoJCQk+PgoJCT4+CgkJXQoJCS9EaXNwbGF5TGlzdCBbCgkJPDwKCQkJL1Jlc291cmNlIDAKCQk+PgoJCV0KCT4+CgkvTW9qaUt1bWlUYWJsZVNldAoJPDwKCQkvUmVzb3VyY2VzIFsKCQk8PAoJCQkvUmVzb3VyY2UKCQkJPDwKCQkJCS9OYW1lICj+/wBQAGgAbwB0AG8AcwBoAG8AcAA2AE0AbwBqAGkASwB1AG0AaQBTAGUAdAA0KQoJCQkJL01lbWJlcnMKCQkJCTw8CgkJCQkJL0NvZGVUb0NsYXNzIDAKCQkJCQkvQXV0b1RzdW1lCgkJCQkJPDwKCQkJCQkJL1RzdW1lTWFwcGluZ3MgWwoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC41CgkJCQkJCQkvQ29kZSAo/v//CCkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuNQoJCQkJCQkJL0NvZGUgKP7//zspCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjUKCQkJCQkJCS9Db2RlICj+//9bKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC41CgkJCQkJCQkvQ29kZSAo/v8gGCkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuNQoJCQkJCQkJL0NvZGUgKP7/IBwpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjUKCQkJCQkJCS9Db2RlICj+/zAIKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC41CgkJCQkJCQkvQ29kZSAo/v8wCikKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MAwpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjUKCQkJCQkJCS9Db2RlICj+/zAOKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC41CgkJCQkJCQkvQ29kZSAo/v8wECkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MBQpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7//wkpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7//z0pCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7//10pCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/IBkpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/IB0pCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MAkpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MAspCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MA0pCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MA8pCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MBEpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MBUpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7//w4pCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MAIpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7//wwpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MAEpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjI1CgkJCQkJCQkvQWZ0ZXIgLTAuMjUKCQkJCQkJCS9Db2RlICj+//8aKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC4yNQoJCQkJCQkJL0FmdGVyIC0wLjI1CgkJCQkJCQkvQ29kZSAo/v//GykKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuMjUKCQkJCQkJCS9BZnRlciAtMC4yNQoJCQkJCQkJL0NvZGUgKP7/MPspCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjI1CgkJCQkJCQkvQWZ0ZXIgLTAuMjUKCQkJCQkJCS9Db2RlICj+/yAQKQoJCQkJCQk+PgoJCQkJCQldCgkJCQkJPj4KCQkJCQkvVGFibGUKCQkJCQk8PAoJCQkJCQkvRGF0YUFycmF5CgkJCQkJCTw8CgkJCQkJCQkvU3BhcnNlQXJyYXkgWwoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMQoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxIDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCAyCgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDIgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiA4IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgOSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDEwIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgMTEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiAxMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDEzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgMTcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjUgMC41IDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCTw8CgkJCQkJCQkJL0luZGV4IDMKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMyAxIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAzIDggXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAzIDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAzIDEwIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMyAxMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgMTMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAzIDE0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMyAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAzIDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggNAoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA0IDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNCA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNCA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDQgMTUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjEyNSAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDQgMTYgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjEyNSAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggNQoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDIgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSA0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDUgNiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMjUgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSA4IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSAxMCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDUgMTEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSAxMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDUgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSAxNiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDUgMTcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCTw8CgkJCQkJCQkJL0luZGV4IDYKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiAxIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjc1IDAuNzUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDggXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDEwIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiAxMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgMTIgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDEzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgMTUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiAxNiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDE3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC41IDAuNSAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCA3CgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA3IDMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyA0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA3IDggXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyAxMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA3IDEzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA3IDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgMTcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjUgMC41IDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCTw8CgkJCQkJCQkJL0luZGV4IDgKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOCAxIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA4IDggXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA4IDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA4IDEwIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOCAxMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggMTMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA4IDE0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOCAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA4IDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggOQoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA5IDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDkgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDkgOSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDkgMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA5IDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSAxMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDkgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA5IDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDkgMTYgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCAxMAoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCAxIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEwIDMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTAgNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCA4IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTAgOSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEwIDEwIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTAgMTIgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCAxMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEwIDE0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTAgMTUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTAgMTYgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCAxMQoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMSA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTEgNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMSAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMSAxNiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCTw8CgkJCQkJCQkJL0luZGV4IDEyCgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTIgMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMiA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDggXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMiA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTIgMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMiAxMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDEzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTIgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMiAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMiAxNiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCTw8CgkJCQkJCQkJL0luZGV4IDEzCgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTMgMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMyA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDggXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMyA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTMgMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMyAxMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDEzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTMgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMyAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMyAxNiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCTw8CgkJCQkJCQkJL0luZGV4IDE0CgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTQgMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNCA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDggXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNCA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTQgMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNCAxMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDEzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTQgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNCAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNCAxNiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCTw8CgkJCQkJCQkJL0luZGV4IDE1CgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE1IDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTUgMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTUgNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTUgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE1IDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTUgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNSA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE1IDEwIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTUgMTIgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjEyNSAwLjI1IDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTUgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjEyNSAwLjI1IDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCAxNgoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNiAxIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE2IDMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjEyNSAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE2IDQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjEyNSAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE2IDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNiA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE2IDggXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTYgOSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNiAxMCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE2IDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE2IDE0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMTcKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTcgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuNSAwLjUgMC41IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMTgKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTggMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuNSAwLjUgMC41IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJXQoJCQkJCQk+PgoJCQkJCT4+CgkJCQkJL1ByZWRlZmluZWRUYWcgMgoJCQkJPj4KCQkJPj4KCQk+PgoJCTw8CgkJCS9SZXNvdXJjZQoJCQk8PAoJCQkJL05hbWUgKP7/AFAAaABvAHQAbwBzAGgAbwBwADYATQBvAGoAaQBLAHUAbQBpAFMAZQB0ADMpCgkJCQkvTWVtYmVycwoJCQkJPDwKCQkJCQkvQ29kZVRvQ2xhc3MgMAoJCQkJCS9BdXRvVHN1bWUKCQkJCQk8PAoJCQkJCQkvVHN1bWVNYXBwaW5ncyBbCgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjUKCQkJCQkJCS9Db2RlICj+//8IKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC41CgkJCQkJCQkvQ29kZSAo/v//OykKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuNQoJCQkJCQkJL0NvZGUgKP7//1spCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjUKCQkJCQkJCS9Db2RlICj+/yAYKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC41CgkJCQkJCQkvQ29kZSAo/v8gHCkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MAgpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjUKCQkJCQkJCS9Db2RlICj+/zAKKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC41CgkJCQkJCQkvQ29kZSAo/v8wDCkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MA4pCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjUKCQkJCQkJCS9Db2RlICj+/zAQKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC41CgkJCQkJCQkvQ29kZSAo/v8wFCkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9BZnRlciAtMC41CgkJCQkJCQkvQ29kZSAo/v//CSkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9BZnRlciAtMC41CgkJCQkJCQkvQ29kZSAo/v//PSkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9BZnRlciAtMC41CgkJCQkJCQkvQ29kZSAo/v//XSkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9BZnRlciAtMC41CgkJCQkJCQkvQ29kZSAo/v8gGSkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9BZnRlciAtMC41CgkJCQkJCQkvQ29kZSAo/v8gHSkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9BZnRlciAtMC41CgkJCQkJCQkvQ29kZSAo/v8wCSkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9BZnRlciAtMC41CgkJCQkJCQkvQ29kZSAo/v8wCykKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9BZnRlciAtMC41CgkJCQkJCQkvQ29kZSAo/v8wDSkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9BZnRlciAtMC41CgkJCQkJCQkvQ29kZSAo/v8wDykKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9BZnRlciAtMC41CgkJCQkJCQkvQ29kZSAo/v8wESkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9BZnRlciAtMC41CgkJCQkJCQkvQ29kZSAo/v8wFSkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9BZnRlciAtMC41CgkJCQkJCQkvQ29kZSAo/v//DikKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9BZnRlciAtMC41CgkJCQkJCQkvQ29kZSAo/v8wAikKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9BZnRlciAtMC41CgkJCQkJCQkvQ29kZSAo/v//DCkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9BZnRlciAtMC41CgkJCQkJCQkvQ29kZSAo/v8wASkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuMjUKCQkJCQkJCS9BZnRlciAtMC4yNQoJCQkJCQkJL0NvZGUgKP7//xopCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjI1CgkJCQkJCQkvQWZ0ZXIgLTAuMjUKCQkJCQkJCS9Db2RlICj+//8bKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC4yNQoJCQkJCQkJL0FmdGVyIC0wLjI1CgkJCQkJCQkvQ29kZSAo/v8w+ykKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuMjUKCQkJCQkJCS9BZnRlciAtMC4yNQoJCQkJCQkJL0NvZGUgKP7/IBApCgkJCQkJCT4+CgkJCQkJCV0KCQkJCQk+PgoJCQkJCS9UYWJsZQoJCQkJCTw8CgkJCQkJCS9EYXRhQXJyYXkKCQkJCQkJPDwKCQkJCQkJCS9TcGFyc2VBcnJheSBbCgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCAxCgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMjUgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCTw8CgkJCQkJCQkJL0luZGV4IDIKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiAxIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiA0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDggXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiAxMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgMTMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgMTYgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiAxNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMwoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAzIDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMyAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMyA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMyA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgOSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAzIDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMyAxMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAzIDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgMTYgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjEyNSAwLjI1IDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCA0CgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDQgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA0IDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA0IDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNCAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNCAxNiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCA1CgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDUgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDUgMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMjUgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSA2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4yNSAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDUgNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMjUgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDggXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDEwIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSAxMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDUgMTIgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDEzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDUgMTUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCA2CgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC43NSAwLjc1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiA4IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiAxMCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgMTEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiAxMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgMTYgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiAxNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggNwoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA3IDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA3IDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA3IDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyA4IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgOSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA3IDEwIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgMTIgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyAxMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA3IDE0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgMTUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyAxNiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA3IDE3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCA4CgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA4IDMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA4IDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA4IDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOCA4IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOCA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOCAxMCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggMTIgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA4IDEzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOCAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggMTUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOCAxNiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCTw8CgkJCQkJCQkJL0luZGV4IDkKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSAxIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDkgMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDkgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDkgNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA5IDggXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA5IDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA5IDEwIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSAxMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDkgMTMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA5IDE0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA5IDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMTAKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTAgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTAgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEwIDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTAgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEwIDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCAxMCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEwIDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTAgMTMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEwIDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEwIDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMTEKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTEgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDExIDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTEgMTUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTEgMTYgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCAxMgoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMiAxIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMiA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTIgNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMiA4IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTIgOSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDEwIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTIgMTIgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMiAxMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDE0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTIgMTUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjEyNSAwLjI1IDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTIgMTYgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjEyNSAwLjI1IDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCAxMwoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMyAxIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMyA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTMgNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMyA4IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTMgOSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDEwIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTMgMTIgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMyAxMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDE0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTMgMTUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTMgMTYgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCAxNAoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNCAxIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNCA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTQgNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNCA4IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTQgOSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDEwIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTQgMTIgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNCAxMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDE0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTQgMTUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjEyNSAwLjI1IDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTQgMTYgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjEyNSAwLjI1IDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCAxNQoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNSAxIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE1IDMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjEyNSAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE1IDQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjEyNSAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE1IDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNSA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE1IDggXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTUgOSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNSAxMCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE1IDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE1IDE0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMTYKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTYgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNiAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNiA0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNiA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTYgNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNiA4IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE2IDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTYgMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNiAxMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNiAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCV0KCQkJCQkJPj4KCQkJCQk+PgoJCQkJCS9QcmVkZWZpbmVkVGFnIDQKCQkJCT4+CgkJCT4+CgkJPj4KCQk8PAoJCQkvUmVzb3VyY2UKCQkJPDwKCQkJCS9OYW1lICj+/wBQAGgAbwB0AG8AcwBoAG8AcAA2AE0AbwBqAGkASwB1AG0AaQBTAGUAdAAyKQoJCQkJL01lbWJlcnMKCQkJCTw8CgkJCQkJL0NvZGVUb0NsYXNzIDAKCQkJCQkvQXV0b1RzdW1lCgkJCQkJPDwKCQkJCQkJL1RzdW1lTWFwcGluZ3MgWwoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC41CgkJCQkJCQkvQ29kZSAo/v//CCkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuNQoJCQkJCQkJL0NvZGUgKP7//zspCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjUKCQkJCQkJCS9Db2RlICj+//9bKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC41CgkJCQkJCQkvQ29kZSAo/v8gGCkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuNQoJCQkJCQkJL0NvZGUgKP7/IBwpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjUKCQkJCQkJCS9Db2RlICj+/zAIKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC41CgkJCQkJCQkvQ29kZSAo/v8wCikKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MAwpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjUKCQkJCQkJCS9Db2RlICj+/zAOKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC41CgkJCQkJCQkvQ29kZSAo/v8wECkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MBQpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7//wkpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7//z0pCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7//10pCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/IBkpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/IB0pCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MAkpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MAspCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MA0pCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MA8pCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MBEpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MBUpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7//w4pCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MAIpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7//wwpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MAEpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjI1CgkJCQkJCQkvQWZ0ZXIgLTAuMjUKCQkJCQkJCS9Db2RlICj+//8aKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC4yNQoJCQkJCQkJL0FmdGVyIC0wLjI1CgkJCQkJCQkvQ29kZSAo/v//GykKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuMjUKCQkJCQkJCS9BZnRlciAtMC4yNQoJCQkJCQkJL0NvZGUgKP7/MPspCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjI1CgkJCQkJCQkvQWZ0ZXIgLTAuMjUKCQkJCQkJCS9Db2RlICj+/yAQKQoJCQkJCQk+PgoJCQkJCQldCgkJCQkJPj4KCQkJCQkvVGFibGUKCQkJCQk8PAoJCQkJCQkvRGF0YUFycmF5CgkJCQkJCTw8CgkJCQkJCQkvU3BhcnNlQXJyYXkgWwoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMQoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxIDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCAyCgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDIgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiA4IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgOSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDEwIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgMTEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiAxMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDEzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMwoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAzIDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMyAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMyA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMyA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgOSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAzIDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMyAxMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAzIDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgMTYgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjEyNSAwLjI1IDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCA0CgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDQgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA0IDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA0IDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNCAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNCAxNiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCA1CgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDUgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDUgMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMjUgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSA2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4yNSAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDUgNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMjUgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDggXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDEwIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSAxMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDUgMTIgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDEzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDUgMTUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCA2CgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC43NSAwLjc1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiA4IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiAxMCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgMTEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiAxMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgMTYgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCA3CgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA3IDMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyA0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA3IDggXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyAxMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA3IDEzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA3IDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggOAoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA4IDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOCAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOCA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOCA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggOSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA4IDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOCAxMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA4IDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggMTYgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCA5CgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDkgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA5IDMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA5IDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA5IDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSA4IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSAxMCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDkgMTIgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA5IDEzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDkgMTUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSAxNiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCTw8CgkJCQkJCQkJL0luZGV4IDEwCgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEwIDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTAgMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEwIDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEwIDggXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTAgMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCAxMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEwIDEzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTAgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCAxNiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCTw8CgkJCQkJCQkJL0luZGV4IDExCgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDExIDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMSA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDExIDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDExIDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMTIKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTIgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMiAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTIgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTIgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMiAxMCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTIgMTMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMiAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMTMKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTMgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMyAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTMgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTMgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMyAxMCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTMgMTMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMyAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMTQKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTQgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNCAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTQgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTQgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNCAxMCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTQgMTMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNCAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMTUKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTUgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNSAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNSA0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNSA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTUgNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNSA4IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE1IDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTUgMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNSAxMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNSAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCTw8CgkJCQkJCQkJL0luZGV4IDE2CgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE2IDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTYgMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTYgNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTYgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE2IDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTYgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNiA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE2IDEwIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTYgMTIgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjEyNSAwLjI1IDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTYgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjEyNSAwLjI1IDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQldCgkJCQkJCT4+CgkJCQkJPj4KCQkJCQkvUHJlZGVmaW5lZFRhZyAzCgkJCQk+PgoJCQk+PgoJCT4+CgkJPDwKCQkJL1Jlc291cmNlCgkJCTw8CgkJCQkvTmFtZSAo/v8AUABoAG8AdABvAHMAaABvAHAANgBNAG8AagBpAEsAdQBtAGkAUwBlAHQAMSkKCQkJCS9NZW1iZXJzCgkJCQk8PAoJCQkJCS9Db2RlVG9DbGFzcyAwCgkJCQkJL0F1dG9Uc3VtZQoJCQkJCTw8CgkJCQkJCS9Uc3VtZU1hcHBpbmdzIFsKCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuNQoJCQkJCQkJL0NvZGUgKP7//wgpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjUKCQkJCQkJCS9Db2RlICj+//87KQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC41CgkJCQkJCQkvQ29kZSAo/v//WykKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuNQoJCQkJCQkJL0NvZGUgKP7/IBgpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjUKCQkJCQkJCS9Db2RlICj+/yAcKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC41CgkJCQkJCQkvQ29kZSAo/v8wCCkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MAopCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjUKCQkJCQkJCS9Db2RlICj+/zAMKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC41CgkJCQkJCQkvQ29kZSAo/v8wDikKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MBApCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjUKCQkJCQkJCS9Db2RlICj+/zAUKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0FmdGVyIC0wLjUKCQkJCQkJCS9Db2RlICj+//8JKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0FmdGVyIC0wLjUKCQkJCQkJCS9Db2RlICj+//89KQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0FmdGVyIC0wLjUKCQkJCQkJCS9Db2RlICj+//9dKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0FmdGVyIC0wLjUKCQkJCQkJCS9Db2RlICj+/yAZKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0FmdGVyIC0wLjUKCQkJCQkJCS9Db2RlICj+/yAdKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0FmdGVyIC0wLjUKCQkJCQkJCS9Db2RlICj+/zAJKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0FmdGVyIC0wLjUKCQkJCQkJCS9Db2RlICj+/zALKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0FmdGVyIC0wLjUKCQkJCQkJCS9Db2RlICj+/zANKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0FmdGVyIC0wLjUKCQkJCQkJCS9Db2RlICj+/zAPKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0FmdGVyIC0wLjUKCQkJCQkJCS9Db2RlICj+/zARKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0FmdGVyIC0wLjUKCQkJCQkJCS9Db2RlICj+/zAVKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0FmdGVyIC0wLjUKCQkJCQkJCS9Db2RlICj+//8OKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0FmdGVyIC0wLjUKCQkJCQkJCS9Db2RlICj+/zACKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0FmdGVyIC0wLjUKCQkJCQkJCS9Db2RlICj+//8MKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0FmdGVyIC0wLjUKCQkJCQkJCS9Db2RlICj+/zABKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC4yNQoJCQkJCQkJL0FmdGVyIC0wLjI1CgkJCQkJCQkvQ29kZSAo/v//GikKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuMjUKCQkJCQkJCS9BZnRlciAtMC4yNQoJCQkJCQkJL0NvZGUgKP7//xspCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjI1CgkJCQkJCQkvQWZ0ZXIgLTAuMjUKCQkJCQkJCS9Db2RlICj+/zD7KQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC4yNQoJCQkJCQkJL0FmdGVyIC0wLjI1CgkJCQkJCQkvQ29kZSAo/v8gECkKCQkJCQkJPj4KCQkJCQkJXQoJCQkJCT4+CgkJCQkJL1RhYmxlCgkJCQkJPDwKCQkJCQkJL0RhdGFBcnJheQoJCQkJCQk8PAoJCQkJCQkJL1NwYXJzZUFycmF5IFsKCQkJCQkJCTw8CgkJCQkJCQkJL0luZGV4IDEKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMSA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4yNSAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMgoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiAyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiAxMCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDExIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgMTIgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiAxMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDE0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgMTUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiAxNiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCTw8CgkJCQkJCQkJL0luZGV4IDMKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMyAxIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAzIDggXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAzIDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAzIDEwIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMyAxMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgMTMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAzIDE0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMyAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAzIDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggNAoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA0IDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNCA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNCA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDQgMTUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjEyNSAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDQgMTYgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjEyNSAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggNQoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDIgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSA0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDUgNiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMjUgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSA4IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSAxMCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDUgMTEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSAxMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDUgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSAxNiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggNgoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiA0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgOSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDExIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiAxMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgMTMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDE0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggNwoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA3IDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA3IDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA3IDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyA4IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgOSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA3IDEwIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgMTIgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyAxMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA3IDE0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgMTUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyAxNiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCTw8CgkJCQkJCQkJL0luZGV4IDgKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOCAxIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA4IDggXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA4IDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA4IDEwIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOCAxMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggMTMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA4IDE0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOCAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA4IDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggOQoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA5IDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDkgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDkgOSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDkgMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA5IDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSAxMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDkgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA5IDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDkgMTYgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCAxMAoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCAxIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEwIDMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTAgNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCA4IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTAgOSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEwIDEwIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTAgMTIgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCAxMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEwIDE0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTAgMTUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTAgMTYgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCAxMQoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMSA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTEgNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMSAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMSAxNiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCTw8CgkJCQkJCQkJL0luZGV4IDEyCgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTIgMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMiA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDggXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMiA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTIgMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMiAxMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDEzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTIgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMiAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMiAxNiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCTw8CgkJCQkJCQkJL0luZGV4IDEzCgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTMgMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMyA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDggXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMyA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTMgMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMyAxMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDEzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTMgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMyAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMyAxNiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCTw8CgkJCQkJCQkJL0luZGV4IDE0CgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTQgMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNCA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDggXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNCA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTQgMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNCAxMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDEzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTQgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNCAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNCAxNiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCTw8CgkJCQkJCQkJL0luZGV4IDE1CgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE1IDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTUgMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTUgNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTUgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE1IDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTUgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNSA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE1IDEwIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTUgMTIgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjEyNSAwLjI1IDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTUgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjEyNSAwLjI1IDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCAxNgoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNiAxIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE2IDMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjEyNSAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE2IDQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjEyNSAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE2IDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNiA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE2IDggXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTYgOSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNiAxMCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE2IDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE2IDE0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJXQoJCQkJCQk+PgoJCQkJCT4+CgkJCQkJL1ByZWRlZmluZWRUYWcgMQoJCQkJPj4KCQkJPj4KCQk+PgoJCTw8CgkJCS9SZXNvdXJjZQoJCQk8PAoJCQkJL05hbWUgKP7/AFkAYQBrAHUAbQBvAG4AbwBIAGEAbgBrAGEAawB1KQoJCQkJL01lbWJlcnMKCQkJCTw8CgkJCQkJL0NvZGVUb0NsYXNzIDAKCQkJCQkvQXV0b1RzdW1lCgkJCQkJPDwKCQkJCQkJL1RzdW1lTWFwcGluZ3MgWwoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC41CgkJCQkJCQkvQ29kZSAo/v//CCkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuNQoJCQkJCQkJL0NvZGUgKP7//zspCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjUKCQkJCQkJCS9Db2RlICj+//9bKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC41CgkJCQkJCQkvQ29kZSAo/v8gGCkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuNQoJCQkJCQkJL0NvZGUgKP7/IBwpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjUKCQkJCQkJCS9Db2RlICj+/zAIKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC41CgkJCQkJCQkvQ29kZSAo/v8wCikKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MAwpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjUKCQkJCQkJCS9Db2RlICj+/zAOKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC41CgkJCQkJCQkvQ29kZSAo/v8wECkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MBQpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7//wkpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7//z0pCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7//10pCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/IBkpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/IB0pCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MAkpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MAspCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MA0pCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MA8pCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MBEpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MBUpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7//w4pCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MAIpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7//wwpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MAEpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjI1CgkJCQkJCQkvQWZ0ZXIgLTAuMjUKCQkJCQkJCS9Db2RlICj+//8aKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC4yNQoJCQkJCQkJL0FmdGVyIC0wLjI1CgkJCQkJCQkvQ29kZSAo/v//GykKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuMjUKCQkJCQkJCS9BZnRlciAtMC4yNQoJCQkJCQkJL0NvZGUgKP7/MPspCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjI1CgkJCQkJCQkvQWZ0ZXIgLTAuMjUKCQkJCQkJCS9Db2RlICj+/yAQKQoJCQkJCQk+PgoJCQkJCQldCgkJCQkJPj4KCQkJCQkvVGFibGUKCQkJCQk8PAoJCQkJCQkvRGF0YUFycmF5CgkJCQkJCTw8CgkJCQkJCQkvU3BhcnNlQXJyYXkgWwoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMQoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxIDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCAyCgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDIgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiA4IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgOSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDEwIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgMTEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiAxMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDEzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMwoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAzIDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMyAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMyA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMyA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgOSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAzIDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMyAxMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAzIDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgMTYgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjEyNSAwLjI1IDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCA0CgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDQgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA0IDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA0IDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNCAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNCAxNiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCA1CgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDUgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDUgMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMjUgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSA2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4yNSAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDUgNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMjUgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDggXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDEwIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSAxMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDUgMTIgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDEzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDUgMTUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCA2CgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiA4IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiAxMCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgMTEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiAxMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgMTYgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCA3CgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA3IDMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyA0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA3IDggXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyAxMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA3IDEzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA3IDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggOAoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA4IDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOCAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOCA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOCA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggOSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA4IDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOCAxMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA4IDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggMTYgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCA5CgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDkgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA5IDMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA5IDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA5IDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSA4IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSAxMCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDkgMTIgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA5IDEzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDkgMTUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSAxNiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCTw8CgkJCQkJCQkJL0luZGV4IDEwCgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEwIDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTAgMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEwIDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEwIDggXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTAgMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCAxMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEwIDEzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTAgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCAxNiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCTw8CgkJCQkJCQkJL0luZGV4IDExCgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDExIDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMSA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDExIDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDExIDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMTIKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTIgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMiAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTIgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTIgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMiAxMCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTIgMTMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMiAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMTMKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTMgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMyAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTMgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTMgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMyAxMCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTMgMTMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMyAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMTQKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTQgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNCAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTQgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTQgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNCAxMCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTQgMTMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNCAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMTUKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTUgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNSAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNSA0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNSA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTUgNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNSA4IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE1IDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTUgMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNSAxMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNSAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCTw8CgkJCQkJCQkJL0luZGV4IDE2CgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE2IDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTYgMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTYgNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTYgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE2IDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTYgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNiA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE2IDEwIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTYgMTIgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjEyNSAwLjI1IDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTYgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjEyNSAwLjI1IDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQldCgkJCQkJCT4+CgkJCQkJPj4KCQkJCQkvUHJlZGVmaW5lZFRhZyAxCgkJCQk+PgoJCQk+PgoJCT4+CgkJPDwKCQkJL1Jlc291cmNlCgkJCTw8CgkJCQkvTmFtZSAo/v8ARwB5AG8AbQBhAHQAcwB1AFkAYQBrAHUAbQBvAG4AbwBIAGEAbgBrAGEAawB1KQoJCQkJL01lbWJlcnMKCQkJCTw8CgkJCQkJL0NvZGVUb0NsYXNzIDAKCQkJCQkvQXV0b1RzdW1lCgkJCQkJPDwKCQkJCQkJL1RzdW1lTWFwcGluZ3MgWwoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC41CgkJCQkJCQkvQ29kZSAo/v//CCkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuNQoJCQkJCQkJL0NvZGUgKP7//zspCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjUKCQkJCQkJCS9Db2RlICj+//9bKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC41CgkJCQkJCQkvQ29kZSAo/v8gGCkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuNQoJCQkJCQkJL0NvZGUgKP7/IBwpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjUKCQkJCQkJCS9Db2RlICj+/zAIKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC41CgkJCQkJCQkvQ29kZSAo/v8wCikKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MAwpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjUKCQkJCQkJCS9Db2RlICj+/zAOKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC41CgkJCQkJCQkvQ29kZSAo/v8wECkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MBQpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7//wkpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7//z0pCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7//10pCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/IBkpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/IB0pCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MAkpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MAspCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MA0pCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MA8pCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MBEpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MBUpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7//w4pCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MAIpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7//wwpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MAEpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjI1CgkJCQkJCQkvQWZ0ZXIgLTAuMjUKCQkJCQkJCS9Db2RlICj+//8aKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC4yNQoJCQkJCQkJL0FmdGVyIC0wLjI1CgkJCQkJCQkvQ29kZSAo/v//GykKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuMjUKCQkJCQkJCS9BZnRlciAtMC4yNQoJCQkJCQkJL0NvZGUgKP7/MPspCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjI1CgkJCQkJCQkvQWZ0ZXIgLTAuMjUKCQkJCQkJCS9Db2RlICj+/yAQKQoJCQkJCQk+PgoJCQkJCQldCgkJCQkJPj4KCQkJCQkvVGFibGUKCQkJCQk8PAoJCQkJCQkvRGF0YUFycmF5CgkJCQkJCTw8CgkJCQkJCQkvU3BhcnNlQXJyYXkgWwoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMQoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxIDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCAyCgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDIgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiA4IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgOSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDEwIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgMTEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiAxMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDEzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMwoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAzIDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMyAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMyA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMyA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgOSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAzIDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMyAxMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAzIDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgMTYgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjEyNSAwLjI1IDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCA0CgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDQgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA0IDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA0IDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNCAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNCAxNiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCA1CgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDUgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDUgMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMjUgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSA2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4yNSAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDUgNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMjUgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDggXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDEwIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSAxMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDUgMTIgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDEzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDUgMTUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCA2CgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC43NSAwLjc1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiA4IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiAxMCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgMTEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiAxMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgMTYgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCA3CgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA3IDMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyA0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA3IDggXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyAxMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA3IDEzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA3IDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggOAoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA4IDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOCAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOCA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOCA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggOSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA4IDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOCAxMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA4IDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggMTYgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCA5CgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDkgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA5IDMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA5IDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA5IDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSA4IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSAxMCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDkgMTIgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA5IDEzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDkgMTUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSAxNiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCTw8CgkJCQkJCQkJL0luZGV4IDEwCgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEwIDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTAgMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEwIDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEwIDggXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTAgMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCAxMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEwIDEzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTAgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCAxNiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCTw8CgkJCQkJCQkJL0luZGV4IDExCgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDExIDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMSA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDExIDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDExIDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMTIKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTIgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMiAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTIgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTIgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMiAxMCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTIgMTMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMiAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMTMKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTMgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMyAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTMgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTMgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMyAxMCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTMgMTMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMyAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMTQKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTQgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNCAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTQgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTQgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNCAxMCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTQgMTMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNCAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMTUKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTUgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNSAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNSA0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNSA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTUgNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNSA4IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE1IDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTUgMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNSAxMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNSAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCTw8CgkJCQkJCQkJL0luZGV4IDE2CgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE2IDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTYgMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTYgNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTYgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE2IDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTYgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNiA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE2IDEwIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTYgMTIgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjEyNSAwLjI1IDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTYgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjEyNSAwLjI1IDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQldCgkJCQkJCT4+CgkJCQkJPj4KCQkJCQkvUHJlZGVmaW5lZFRhZyAzCgkJCQk+PgoJCQk+PgoJCT4+CgkJPDwKCQkJL1Jlc291cmNlCgkJCTw8CgkJCQkvTmFtZSAo/v8ARwB5AG8AbQBhAHQAcwB1AFkAYQBrAHUAbQBvAG4AbwBaAGUAbgBrAGEAawB1KQoJCQkJL01lbWJlcnMKCQkJCTw8CgkJCQkJL0NvZGVUb0NsYXNzIDAKCQkJCQkvQXV0b1RzdW1lCgkJCQkJPDwKCQkJCQkJL1RzdW1lTWFwcGluZ3MgWwoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC41CgkJCQkJCQkvQ29kZSAo/v//CCkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuNQoJCQkJCQkJL0NvZGUgKP7//zspCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjUKCQkJCQkJCS9Db2RlICj+//9bKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC41CgkJCQkJCQkvQ29kZSAo/v8gGCkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuNQoJCQkJCQkJL0NvZGUgKP7/IBwpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjUKCQkJCQkJCS9Db2RlICj+/zAIKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC41CgkJCQkJCQkvQ29kZSAo/v8wCikKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MAwpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjUKCQkJCQkJCS9Db2RlICj+/zAOKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC41CgkJCQkJCQkvQ29kZSAo/v8wECkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MBQpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7//wkpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7//z0pCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7//10pCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/IBkpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/IB0pCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MAkpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MAspCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MA0pCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MA8pCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MBEpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MBUpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7//w4pCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MAIpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7//wwpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQWZ0ZXIgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MAEpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjI1CgkJCQkJCQkvQWZ0ZXIgLTAuMjUKCQkJCQkJCS9Db2RlICj+//8aKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC4yNQoJCQkJCQkJL0FmdGVyIC0wLjI1CgkJCQkJCQkvQ29kZSAo/v//GykKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuMjUKCQkJCQkJCS9BZnRlciAtMC4yNQoJCQkJCQkJL0NvZGUgKP7/MPspCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjI1CgkJCQkJCQkvQWZ0ZXIgLTAuMjUKCQkJCQkJCS9Db2RlICj+/yAQKQoJCQkJCQk+PgoJCQkJCQldCgkJCQkJPj4KCQkJCQkvVGFibGUKCQkJCQk8PAoJCQkJCQkvRGF0YUFycmF5CgkJCQkJCTw8CgkJCQkJCQkvU3BhcnNlQXJyYXkgWwoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMQoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxIDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCAyCgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDIgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiA4IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgOSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDEwIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgMTEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiAxMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDEzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgMTcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCTw8CgkJCQkJCQkJL0luZGV4IDMKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMyAxIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAzIDggXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAzIDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAzIDEwIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMyAxMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgMTMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAzIDE0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMyAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAzIDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggNAoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA0IDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNCA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNCA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDQgMTUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjEyNSAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDQgMTYgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjEyNSAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggNQoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDIgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSA0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDUgNiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMjUgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSA4IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSAxMCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDUgMTEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSAxMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDUgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSAxNiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggNgoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiA0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNzUgMC43NSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgOSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDExIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiAxMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgMTMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDE0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgMTcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCTw8CgkJCQkJCQkJL0luZGV4IDcKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyAxIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA3IDQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA3IDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyAxMCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA3IDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgMTMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA3IDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgMTYgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyAxNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggOAoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA4IDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOCAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOCA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOCA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggOSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA4IDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOCAxMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA4IDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggMTYgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCA5CgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDkgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA5IDMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA5IDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA5IDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSA4IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSAxMCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDkgMTIgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA5IDEzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDkgMTUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSAxNiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCTw8CgkJCQkJCQkJL0luZGV4IDEwCgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEwIDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTAgMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEwIDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEwIDggXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTAgMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCAxMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEwIDEzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTAgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCAxNiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCTw8CgkJCQkJCQkJL0luZGV4IDExCgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDExIDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMSA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDExIDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDExIDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMTIKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTIgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMiAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTIgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTIgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMiAxMCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTIgMTMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMiAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMTMKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTMgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMyAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTMgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTMgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMyAxMCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTMgMTMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMyAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMTQKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTQgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNCAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTQgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTQgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNCAxMCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTQgMTMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNCAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMTUKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTUgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNSAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNSA0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNSA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTUgNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNSA4IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE1IDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTUgMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNSAxMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNSAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCTw8CgkJCQkJCQkJL0luZGV4IDE2CgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE2IDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTYgMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTYgNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTYgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE2IDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTYgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNiA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE2IDEwIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTYgMTIgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjEyNSAwLjI1IDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTYgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjEyNSAwLjI1IDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQldCgkJCQkJCT4+CgkJCQkJPj4KCQkJCQkvUHJlZGVmaW5lZFRhZyA0CgkJCQk+PgoJCQk+PgoJCT4+CgkJPDwKCQkJL1Jlc291cmNlCgkJCTw8CgkJCQkvTmFtZSAo/v8AWQBhAGsAdQBtAG8AbgBvAFoAZQBuAGsAYQBrAHUpCgkJCQkvTWVtYmVycwoJCQkJPDwKCQkJCQkvQ29kZVRvQ2xhc3MgMAoJCQkJCS9BdXRvVHN1bWUKCQkJCQk8PAoJCQkJCQkvVHN1bWVNYXBwaW5ncyBbCgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjUKCQkJCQkJCS9Db2RlICj+//8IKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC41CgkJCQkJCQkvQ29kZSAo/v//OykKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuNQoJCQkJCQkJL0NvZGUgKP7//1spCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjUKCQkJCQkJCS9Db2RlICj+/yAYKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC41CgkJCQkJCQkvQ29kZSAo/v8gHCkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MAgpCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjUKCQkJCQkJCS9Db2RlICj+/zAKKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC41CgkJCQkJCQkvQ29kZSAo/v8wDCkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuNQoJCQkJCQkJL0NvZGUgKP7/MA4pCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjUKCQkJCQkJCS9Db2RlICj+/zAQKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC41CgkJCQkJCQkvQ29kZSAo/v8wFCkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9BZnRlciAtMC41CgkJCQkJCQkvQ29kZSAo/v//CSkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9BZnRlciAtMC41CgkJCQkJCQkvQ29kZSAo/v//PSkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9BZnRlciAtMC41CgkJCQkJCQkvQ29kZSAo/v//XSkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9BZnRlciAtMC41CgkJCQkJCQkvQ29kZSAo/v8gGSkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9BZnRlciAtMC41CgkJCQkJCQkvQ29kZSAo/v8gHSkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9BZnRlciAtMC41CgkJCQkJCQkvQ29kZSAo/v8wCSkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9BZnRlciAtMC41CgkJCQkJCQkvQ29kZSAo/v8wCykKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9BZnRlciAtMC41CgkJCQkJCQkvQ29kZSAo/v8wDSkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9BZnRlciAtMC41CgkJCQkJCQkvQ29kZSAo/v8wDykKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9BZnRlciAtMC41CgkJCQkJCQkvQ29kZSAo/v8wESkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9BZnRlciAtMC41CgkJCQkJCQkvQ29kZSAo/v8wFSkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9BZnRlciAtMC41CgkJCQkJCQkvQ29kZSAo/v//DikKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9BZnRlciAtMC41CgkJCQkJCQkvQ29kZSAo/v8wAikKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9BZnRlciAtMC41CgkJCQkJCQkvQ29kZSAo/v//DCkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9BZnRlciAtMC41CgkJCQkJCQkvQ29kZSAo/v8wASkKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuMjUKCQkJCQkJCS9BZnRlciAtMC4yNQoJCQkJCQkJL0NvZGUgKP7//xopCgkJCQkJCT4+CgkJCQkJCTw8CgkJCQkJCQkvQmVmb3JlIC0wLjI1CgkJCQkJCQkvQWZ0ZXIgLTAuMjUKCQkJCQkJCS9Db2RlICj+//8bKQoJCQkJCQk+PgoJCQkJCQk8PAoJCQkJCQkJL0JlZm9yZSAtMC4yNQoJCQkJCQkJL0FmdGVyIC0wLjI1CgkJCQkJCQkvQ29kZSAo/v8w+ykKCQkJCQkJPj4KCQkJCQkJPDwKCQkJCQkJCS9CZWZvcmUgLTAuMjUKCQkJCQkJCS9BZnRlciAtMC4yNQoJCQkJCQkJL0NvZGUgKP7/IBApCgkJCQkJCT4+CgkJCQkJCV0KCQkJCQk+PgoJCQkJCS9UYWJsZQoJCQkJCTw8CgkJCQkJCS9EYXRhQXJyYXkKCQkJCQkJPDwKCQkJCQkJCS9TcGFyc2VBcnJheSBbCgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCAxCgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMjUgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCTw8CgkJCQkJCQkJL0luZGV4IDIKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiAxIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiA0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDggXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiAxMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgMTMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAyIDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDMKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDIgMTYgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMiAxNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuNSAwLjUgMC41IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMwoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAzIDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMyAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMyA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMyA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgOSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAzIDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMyAxMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAzIDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDMgMTYgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjEyNSAwLjI1IDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCA0CgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDQgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA0IDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA0IDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNCAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNCAxNiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCA1CgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDUgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDUgMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMjUgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSA2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4yNSAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDUgNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMjUgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDggXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDEwIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSAxMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDUgMTIgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDEzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDUgMTUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA1IDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNSAxNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMjUgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggNgoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiA0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNzUgMC43NSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgOSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDExIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiAxMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgMTMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDE0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNiAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA2IDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDYgMTcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjUgMC41IDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCTw8CgkJCQkJCQkJL0luZGV4IDcKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyAxIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA3IDQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA3IDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyAxMCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA3IDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgMTMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA3IDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDcgMTYgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgNyAxNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuNSAwLjUgMC41IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggOAoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA4IDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOCAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOCA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOCA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggOSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA4IDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOCAxMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA4IDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDggMTYgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCA5CgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDkgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA5IDMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA5IDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA5IDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSA4IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSAxMCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDkgMTIgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyA5IDEzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDkgMTUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgOSAxNiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCTw8CgkJCQkJCQkJL0luZGV4IDEwCgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEwIDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTAgMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEwIDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEwIDggXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTAgMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCAxMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEwIDEzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTAgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCAxNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMCAxNiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCTw8CgkJCQkJCQkJL0luZGV4IDExCgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDExIDUgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCAxCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMSA3IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDIKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDExIDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDExIDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMTIKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTIgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMiAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTIgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTIgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMiAxMCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTIgMTMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMiAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEyIDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMTMKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTMgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMyAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTMgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTMgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMyAxMCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTMgMTMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxMyAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDEzIDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMTQKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTQgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNCAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTQgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTQgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNCAxMCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDEyIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAxLjAgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTQgMTMgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDEuMCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNCAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMS4wIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDE1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE0IDE2IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9CCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJPDwKCQkJCQkJCQkvSW5kZXggMTUKCQkJCQkJCQkvRWxlbWVudHMgWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTUgMSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjUgMC41IF0KCQkJCQkJCQkJCQkvUCAzCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNSAzIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNSA0IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4xMjUgMC4yNSAwLjI1IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNSA1IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgMQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTUgNyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkJCQkvUCAyCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNSA4IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE1IDkgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTUgMTAgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNSAxMiBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNSAxNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCTw8CgkJCQkJCQkJL0luZGV4IDE2CgkJCQkJCQkJL0VsZW1lbnRzIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE2IDEgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC41IDAuNSBdCgkJCQkJCQkJCQkJL1AgMwoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTYgMyBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTYgNCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMTI1IDAuMjUgMC4yNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTYgNSBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjI1IDAuMjUgXQoJCQkJCQkJCQkJCS9QIDEKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE2IDcgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJCQkJL1AgMgoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTYgOCBdCgkJCQkJCQkJCS9EYXRhCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvUiBbIDAuMCAwLjAgMC41IF0KCQkJCQkJCQkJCQkvUCA0CgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNiA5IF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJCS9QIDQKCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQk8PAoJCQkJCQkJCQkvUCBbIDE2IDEwIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC4wIDAuMCAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTYgMTIgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjEyNSAwLjI1IDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9QIFsgMTYgMTQgXQoJCQkJCQkJCQkvRGF0YQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0EKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1IgWyAwLjEyNSAwLjI1IDAuNSBdCgkJCQkJCQkJCQkJL1AgNAoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCAxNwoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxNyAxIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC41IDAuNSAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQk8PAoJCQkJCQkJCS9JbmRleCAxOAoJCQkJCQkJCS9FbGVtZW50cyBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1AgWyAxOCAxIF0KCQkJCQkJCQkJL0RhdGEKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9BCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9SIFsgMC41IDAuNSAwLjUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQldCgkJCQkJCT4+CgkJCQkJPj4KCQkJCQkvUHJlZGVmaW5lZFRhZyAyCgkJCQk+PgoJCQk+PgoJCT4+CgkJXQoJCS9EaXNwbGF5TGlzdCBbCgkJPDwKCQkJL1Jlc291cmNlIDAKCQk+PgoJCTw8CgkJCS9SZXNvdXJjZSAxCgkJPj4KCQk8PAoJCQkvUmVzb3VyY2UgMgoJCT4+CgkJPDwKCQkJL1Jlc291cmNlIDMKCQk+PgoJ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CQkvUmVzb3VyY2VzIFsKCQk8PAoJCQkvUmVzb3VyY2UKCQkJPDwKCQkJCS9OYW1lICj+/wBSAEcAQgAgAC0AIABOAG8AcgBtAGEAbCkKCQkJCS9GZWF0dXJlcwoJCQkJPDwKCQkJCQkvRm9udCAxCgkJCQkJL0ZvbnRTaXplIDEyLjAKCQkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCS9BdXRvTGVhZGluZyB0cnVlCgkJCQkJL0xlYWRpbmcgMC4wCgkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCQkvVHJhY2tpbmcgMAoJCQkJCS9CYXNlbGluZVNoaWZ0IDAuMAoJCQkJCS9DaGFyYWN0ZXJSb3RhdGlvbiAwLjAKCQkJCQkvQXV0b0tlcm4gMQoJCQkJCS9Gb250Q2FwcyAwCgkJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkJL0ZvbnRPVFBvc2l0aW9uIDAKCQkJCQkvU3RyaWtldGhyb3VnaFBvc2l0aW9uIDAKCQkJCQkvVW5kZXJsaW5lUG9zaXRpb24gMAoJCQkJCS9VbmRlcmxpbmVPZmZzZXQgMC4wCgkJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkJL0Rpc2NyZXRpb25hcnlMaWdhdHVyZXMgZmFsc2UKCQkJCQkvQ29udGV4dHVhbExpZ2F0dXJlcyBmYWxzZQoJCQkJCS9BbHRlcm5hdGVMaWdhdHVyZXMgZmFsc2UKCQkJCQkvT2xkU3R5bGUgZmFsc2UKCQkJCQkvRnJhY3Rpb25zIGZhbHNlCgkJCQkJL09yZGluYWxzIGZhbHNlCgkJCQkJL1N3YXNoIGZhbHNlCgkJCQkJL1RpdGxpbmcgZmFsc2UKCQkJCQkvQ29ubmVjdGlvbkZvcm1zIGZhbHNlCgkJCQkJL1N0eWxpc3RpY0FsdGVybmF0ZXMgZmFsc2UKCQkJCQkvT3JuYW1lbnRzIGZhbHNlCgkJCQkJL0ZpZ3VyZVN0eWxlIDAKCQkJCQkvUHJvcG9ydGlvbmFsTWV0cmljcyBmYWxzZQoJCQkJCS9LYW5hIGZhbHNlCgkJCQkJL0l0YWxpY3MgZmFsc2UKCQkJCQkvUnVieSBmYWxzZQoJCQkJCS9CYXNlbGluZURpcmVjdGlvbiAyCgkJCQkJL1RzdW1lIDAuMAoJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJL0xhbmd1YWdlIDAKCQkJCQkvSmFwYW5lc2VBbHRlcm5hdGVGZWF0dXJlIDAKCQkJCQkvRW5hYmxlV2FyaUNodSBmYWxzZQoJCQkJCS9XYXJpQ2h1TGluZUNvdW50IDIKCQkJCQkvV2FyaUNodUxpbmVHYXAgMAoJCQkJCS9XYXJpQ2h1U3ViTGluZUFtb3VudAoJCQkJCTw8CgkJCQkJCS9XYXJpQ2h1U3ViTGluZVNjYWxlIDAuNQoJCQkJCT4+CgkJCQkJL1dhcmlDaHVXaWRvd0Ftb3VudCAyCgkJCQkJL1dhcmlDaHVPcnBoYW5BbW91bnQgMgoJCQkJCS9XYXJpQ2h1SnVzdGlmaWNhdGlvbiA3CgkJCQkJL1RDWVVwRG93bkFkanVzdG1lbnQgMAoJCQkJCS9UQ1lMZWZ0UmlnaHRBZGp1c3RtZW50IDAKCQkJCQkvTGVmdEFraSAtMS4wCgkJCQkJL1JpZ2h0QWtpIC0xLjAKCQkJCQkvSmlEb3JpIDAKCQkJCQkvTm9CcmVhayBmYWxzZQoJCQkJCS9GaWxsQ29sb3IKCQkJCQk8PAoJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkvQ29sb3IKCQkJCQkJPDwKCQkJCQkJCS9UeXBlIDEKCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC4wIDAuMCAwLjAgXQoJCQkJCQk+PgoJCQkJCT4+CgkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJPDwKCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJL0NvbG9yCgkJCQkJCTw8CgkJCQkJCQkvVHlwZSAxCgkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuMCAwLjAgMC4wIF0KCQkJCQkJPj4KCQkJCQk+PgoJCQkJCS9CbGVuZAoJCQkJCTw8CgkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZUJsZW5kZXIKCQkJCQk+PgoJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkvRmlsbEZpcnN0IHRydWUKCQkJCQkvRmlsbE92ZXJQcmludCBmYWxzZQoJCQkJCS9TdHJva2VPdmVyUHJpbnQgZmFsc2UKCQkJCQkvTGluZUNhcCAwCgkJCQkJL0xpbmVKb2luIDAKCQkJCQkvTGluZVdpZHRoIDEuMAoJCQkJCS9NaXRlckxpbWl0IDQuMAoJCQkJCS9MaW5lRGFzaE9mZnNldCAwLjAKCQkJCQkvTGluZURhc2hBcnJheSBbIF0KCQkJCQkvVHlwZTFFbmNvZGluZ05hbWVzIFsgXQoJCQkJPj4KCQkJPj4KCQk+PgoJCV0KCQkvRGlzcGxheUxpc3QgWwoJCTw8CgkJCS9SZXNvdXJjZSAwCgkJPj4KCQldCgk+PgoJL1BhcmFncmFwaFNoZWV0U2V0Cgk8PAoJCS9SZXNvdXJjZXMgWwoJCTw8CgkJCS9SZXNvdXJjZQoJCQk8PAoJCQkJL05hbWUgKP7/AFIARwBCACAALQAgAE4AbwByAG0AYQBsKQoJCQkJL0ZlYXR1cmVzCgkJCQk8PAoJCQkJCS9KdXN0aWZpY2F0aW9uIDAKCQkJCQkvRmlyc3RMaW5lSW5kZW50IDAuMAoJCQkJCS9TdGFydEluZGVudCAwLjAKCQkJCQkvRW5kSW5kZW50IDAuMAoJCQkJCS9TcGFjZUJlZm9yZSAwLjAKCQkJCQkvU3BhY2VBZnRlciAwLjAKCQkJCQkvRHJvcENhcHMgMQoJCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCQkvSHlwaGVuYXRlZFdvcmRTaXplIDYKCQkJCQkvUHJlSHlwaGVuIDIKCQkJCQkvUG9zdEh5cGhlbiAyCgkJCQkJL0NvbnNlY3V0aXZlSHlwaGVucyAwCgkJCQkJL1pvbmUgMzYuMAoJCQkJCS9IeXBoZW5hdGVDYXBpdGFsaXplZCB0cnVlCgkJCQkJL0h5cGhlbmF0aW9uUHJlZmVyZW5jZSAwLjUKCQkJCQkvV29yZFNwYWNpbmcgWyAwLjggMS4wIDEuMzMgXQoJCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkJL1NpbmdsZVdvcmRKdXN0aWZpY2F0aW9uIDYKCQkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJCS9BdXRvVENZIDAKCQkJCQkvS2VlcFRvZ2V0aGVyIHRydWUKCQkJCQkvQnVyYXNhZ2FyaVR5cGUgMAoJCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJCS9LdXJpa2Flc2hpTW9qaVNob3JpIGZhbHNlCgkJCQkJL0tpbnNva3UgL25pbAoJCQkJCS9Nb2ppS3VtaVRhYmxlIC9uaWwKCQkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJCQkvVGFiU3RvcHMKCQkJCQk8PAoJCQkJCT4+CgkJCQkJL0RlZmF1bHRUYWJXaWR0aCAzNi4wCgkJCQkJL0RlZmF1bHRTdHlsZQoJCQkJCTw8CgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJPj4KCQldCgkJL0Rpc3BsYXlMaXN0IFsKCQk8PAoJCQkvUmVzb3VyY2UgMAoJCT4+CgkJXQoJPj4KCS9UZXh0RnJhbWVTZXQKCTw8CgkJL1Jlc291cmNlcyBbCgkJPDwKCQkJL1Jlc291cmNlCgkJCTw8CgkJCQkvQmV6aWVyCgkJCQk8PAoJCQkJCS9Qb2ludHMgWyAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCT4+CgkJCQkvRGF0YQoJCQkJPDwKCQkJCQkvVHlwZSAwCgkJCQkJL0xpbmVPcmllbnRhdGlvbiAwCgkJCQkJL1RleHRPblBhdGhUUmFuZ2UgWyAtMS4wIC0xLjAgXQoJCQkJCS9Sb3dHdXR0ZXIgMC4wCgkJCQkJL0NvbHVtbkd1dHRlciAwLjAKCQkJCQkvRmlyc3RCYXNlbGluZUFsaWdubWVudAoJCQkJCTw8CgkJCQkJCS9GbGFnIDEKCQkJCQkJL01pbiAwLjAKCQkJCQk+PgoJCQkJCS9QYXRoRGF0YQoJCQkJCTw8CgkJCQkJCS9TcGFjaW5nIC0xCgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJPj4KCQk8PAoJCQkvUmVzb3VyY2UKCQkJPDwKCQkJCS9CZXppZXIKCQkJCTw8CgkJCQkJL1BvaW50cyBbIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9EYXRhCgkJCQk8PAoJCQkJCS9UeXBlIDAKCQkJCQkvTGluZU9yaWVudGF0aW9uIDAKCQkJCQkvVGV4dE9uUGF0aFRSYW5nZSBbIC0xLjAgLTEuMCBdCgkJCQkJL1Jvd0d1dHRlciAwLjAKCQkJCQkvQ29sdW1uR3V0dGVyIDAuMAoJCQkJCS9GaXJzdEJhc2VsaW5lQWxpZ25tZW50CgkJCQkJPDwKCQkJCQkJL0ZsYWcgMQoJCQkJCQkvTWluIDAuMAoJCQkJCT4+CgkJCQkJL1BhdGhEYXRhCgkJCQkJPDwKCQkJCQkJL1NwYWNpbmcgLTEKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQk+PgoJCTw8CgkJCS9SZXNvdXJjZQoJCQk8PAoJCQkJL0JlemllcgoJCQkJPDwKCQkJCQkvUG9pbnRzIFsgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0RhdGEKCQkJCTw8CgkJCQkJL1R5cGUgMAoJCQkJCS9MaW5lT3JpZW50YXRpb24gMAoJCQkJCS9UZXh0T25QYXRoVFJhbmdlIFsgLTEuMCAtMS4wIF0KCQkJCQkvUm93R3V0dGVyIDAuMAoJCQkJCS9Db2x1bW5HdXR0ZXIgMC4wCgkJCQkJL0ZpcnN0QmFzZWxpbmVBbGlnbm1lbnQKCQkJCQk8PAoJCQkJCQkvRmxhZyAxCgkJCQkJCS9NaW4gMC4wCgkJCQkJPj4KCQkJCQkvUGF0aERhdGEKCQkJCQk8PAoJCQkJCQkvU3BhY2luZyAtMQoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCT4+CgkJPDwKCQkJL1Jlc291cmNlCgkJCTw8CgkJCQkvQmV6aWVyCgkJCQk8PAoJCQkJCS9Qb2ludHMgWyAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCT4+CgkJCQkvRGF0YQoJCQkJPDwKCQkJCQkvVHlwZSAwCgkJCQkJL0xpbmVPcmllbnRhdGlvbiAwCgkJCQkJL1RleHRPblBhdGhUUmFuZ2UgWyAtMS4wIC0xLjAgXQoJCQkJCS9Sb3dHdXR0ZXIgMC4wCgkJCQkJL0NvbHVtbkd1dHRlciAwLjAKCQkJCQkvRmlyc3RCYXNlbGluZUFsaWdubWVudAoJCQkJCTw8CgkJCQkJCS9GbGFnIDEKCQkJCQkJL01pbiAwLjAKCQkJCQk+PgoJCQkJCS9QYXRoRGF0YQoJCQkJCTw8CgkJCQkJCS9TcGFjaW5nIC0xCgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJPj4KCQk8PAoJCQkvUmVzb3VyY2UKCQkJPDwKCQkJCS9CZXppZXIKCQkJCTw8CgkJCQkJL1BvaW50cyBbIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9EYXRhCgkJCQk8PAoJCQkJCS9UeXBlIDAKCQkJCQkvTGluZU9yaWVudGF0aW9uIDAKCQkJCQkvVGV4dE9uUGF0aFRSYW5nZSBbIC0xLjAgLTEuMCBdCgkJCQkJL1Jvd0d1dHRlciAwLjAKCQkJCQkvQ29sdW1uR3V0dGVyIDAuMAoJCQkJCS9GaXJzdEJhc2VsaW5lQWxpZ25tZW50CgkJCQkJPDwKCQkJCQkJL0ZsYWcgMQoJCQkJCQkvTWluIDAuMAoJCQkJCT4+CgkJCQkJL1BhdGhEYXRhCgkJCQkJPDwKCQkJCQkJL1NwYWNpbmcgLTEKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQk+PgoJCTw8CgkJCS9SZXNvdXJjZQoJCQk8PAoJCQkJL0JlemllcgoJCQkJPDwKCQkJCQkvUG9pbnRzIFsgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0RhdGEKCQkJCTw8CgkJCQkJL1R5cGUgMAoJCQkJCS9MaW5lT3JpZW50YXRpb24gMAoJCQkJCS9UZXh0T25QYXRoVFJhbmdlIFsgLTEuMCAtMS4wIF0KCQkJCQkvUm93R3V0dGVyIDAuMAoJCQkJCS9Db2x1bW5HdXR0ZXIgMC4wCgkJCQkJL0ZpcnN0QmFzZWxpbmVBbGlnbm1lbnQKCQkJCQk8PAoJCQkJCQkvRmxhZyAxCgkJCQkJCS9NaW4gMC4wCgkJCQkJPj4KCQkJCQkvUGF0aERhdGEKCQkJCQk8PAoJCQkJCQkvU3BhY2luZyAtMQoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCT4+CgkJPDwKCQkJL1Jlc291cmNlCgkJCTw8CgkJCQkvQmV6aWVyCgkJCQk8PAoJCQkJCS9Qb2ludHMgWyAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCT4+CgkJCQkvRGF0YQoJCQkJPDwKCQkJCQkvVHlwZSAwCgkJCQkJL0xpbmVPcmllbnRhdGlvbiAwCgkJCQkJL1RleHRPblBhdGhUUmFuZ2UgWyAtMS4wIC0xLjAgXQoJCQkJCS9Sb3dHdXR0ZXIgMC4wCgkJCQkJL0NvbHVtbkd1dHRlciAwLjAKCQkJCQkvRmlyc3RCYXNlbGluZUFsaWdubWVudAoJCQkJCTw8CgkJCQkJCS9GbGFnIDEKCQkJCQkJL01pbiAwLjAKCQkJCQk+PgoJCQkJCS9QYXRoRGF0YQoJCQkJCTw8CgkJCQkJCS9TcGFjaW5nIC0xCgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJPj4KCQk8PAoJCQkvUmVzb3VyY2UKCQkJPDwKCQkJCS9CZXppZXIKCQkJCTw8CgkJCQkJL1BvaW50cyBbIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9EYXRhCgkJCQk8PAoJCQkJCS9UeXBlIDAKCQkJCQkvTGluZU9yaWVudGF0aW9uIDAKCQkJCQkvVGV4dE9uUGF0aFRSYW5nZSBbIC0xLjAgLTEuMCBdCgkJCQkJL1Jvd0d1dHRlciAwLjAKCQkJCQkvQ29sdW1uR3V0dGVyIDAuMAoJCQkJCS9GaXJzdEJhc2VsaW5lQWxpZ25tZW50CgkJCQkJPDwKCQkJCQkJL0ZsYWcgMQoJCQkJCQkvTWluIDAuMAoJCQkJCT4+CgkJCQkJL1BhdGhEYXRhCgkJCQkJPDwKCQkJCQkJL1NwYWNpbmcgLTEKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQk+PgoJCTw8CgkJCS9SZXNvdXJjZQoJCQk8PAoJCQkJL0JlemllcgoJCQkJPDwKCQkJCQkvUG9pbnRzIFsgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0RhdGEKCQkJCTw8CgkJCQkJL1R5cGUgMAoJCQkJCS9MaW5lT3JpZW50YXRpb24gMAoJCQkJCS9UZXh0T25QYXRoVFJhbmdlIFsgLTEuMCAtMS4wIF0KCQkJCQkvUm93R3V0dGVyIDAuMAoJCQkJCS9Db2x1bW5HdXR0ZXIgMC4wCgkJCQkJL0ZpcnN0QmFzZWxpbmVBbGlnbm1lbnQKCQkJCQk8PAoJCQkJCQkvRmxhZyAxCgkJCQkJCS9NaW4gMC4wCgkJCQkJPj4KCQkJCQkvUGF0aERhdGEKCQkJCQk8PAoJCQkJCQkvU3BhY2luZyAtMQoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCT4+CgkJPDwKCQkJL1Jlc291cmNlCgkJCTw8CgkJCQkvQmV6aWVyCgkJCQk8PAoJCQkJCS9Qb2ludHMgWyAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCT4+CgkJCQkvRGF0YQoJCQkJPDwKCQkJCQkvVHlwZSAwCgkJCQkJL0xpbmVPcmllbnRhdGlvbiAwCgkJCQkJL1RleHRPblBhdGhUUmFuZ2UgWyAtMS4wIC0xLjAgXQoJCQkJCS9Sb3dHdXR0ZXIgMC4wCgkJCQkJL0NvbHVtbkd1dHRlciAwLjAKCQkJCQkvRmlyc3RCYXNlbGluZUFsaWdubWVudAoJCQkJCTw8CgkJCQkJCS9GbGFnIDEKCQkJCQkJL01pbiAwLjAKCQkJCQk+PgoJCQkJCS9QYXRoRGF0YQoJCQkJCTw8CgkJCQkJCS9TcGFjaW5nIC0xCgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJPj4KCQk8PAoJCQkvUmVzb3VyY2UKCQkJPDwKCQkJCS9CZXppZXIKCQkJCTw8CgkJCQkJL1BvaW50cyBbIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9EYXRhCgkJCQk8PAoJCQkJCS9UeXBlIDAKCQkJCQkvTGluZU9yaWVudGF0aW9uIDAKCQkJCQkvVGV4dE9uUGF0aFRSYW5nZSBbIC0xLjAgLTEuMCBdCgkJCQkJL1Jvd0d1dHRlciAwLjAKCQkJCQkvQ29sdW1uR3V0dGVyIDAuMAoJCQkJCS9GaXJzdEJhc2VsaW5lQWxpZ25tZW50CgkJCQkJPDwKCQkJCQkJL0ZsYWcgMQoJCQkJCQkvTWluIDAuMAoJCQkJCT4+CgkJCQkJL1BhdGhEYXRhCgkJCQkJPDwKCQkJCQkJL1NwYWNpbmcgLTEKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQk+PgoJCTw8CgkJCS9SZXNvdXJjZQoJCQk8PAoJCQkJL0JlemllcgoJCQkJPDwKCQkJCQkvUG9pbnRzIFsgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0RhdGEKCQkJCTw8CgkJCQkJL1R5cGUgMAoJCQkJCS9MaW5lT3JpZW50YXRpb24gMAoJCQkJCS9UZXh0T25QYXRoVFJhbmdlIFsgLTEuMCAtMS4wIF0KCQkJCQkvUm93R3V0dGVyIDAuMAoJCQkJCS9Db2x1bW5HdXR0ZXIgMC4wCgkJCQkJL0ZpcnN0QmFzZWxpbmVBbGlnbm1lbnQKCQkJCQk8PAoJCQkJCQkvRmxhZyAxCgkJCQkJCS9NaW4gMC4wCgkJCQkJPj4KCQkJCQkvUGF0aERhdGEKCQkJCQk8PAoJCQkJCQkvU3BhY2luZyAtMQoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCT4+CgkJPDwKCQkJL1Jlc291cmNlCgkJCTw8CgkJCQkvQmV6aWVyCgkJCQk8PAoJCQkJCS9Qb2ludHMgWyAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCT4+CgkJCQkvRGF0YQoJCQkJPDwKCQkJCQkvVHlwZSAwCgkJCQkJL0xpbmVPcmllbnRhdGlvbiAwCgkJCQkJL1RleHRPblBhdGhUUmFuZ2UgWyAtMS4wIC0xLjAgXQoJCQkJCS9Sb3dHdXR0ZXIgMC4wCgkJCQkJL0NvbHVtbkd1dHRlciAwLjAKCQkJCQkvRmlyc3RCYXNlbGluZUFsaWdubWVudAoJCQkJCTw8CgkJCQkJCS9GbGFnIDEKCQkJCQkJL01pbiAwLjAKCQkJCQk+PgoJCQkJCS9QYXRoRGF0YQoJCQkJCTw8CgkJCQkJCS9TcGFjaW5nIC0xCgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJPj4KCQk8PAoJCQkvUmVzb3VyY2UKCQkJPDwKCQkJCS9CZXppZXIKCQkJCTw8CgkJCQkJL1BvaW50cyBbIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9EYXRhCgkJCQk8PAoJCQkJCS9UeXBlIDAKCQkJCQkvTGluZU9yaWVudGF0aW9uIDAKCQkJCQkvVGV4dE9uUGF0aFRSYW5nZSBbIC0xLjAgLTEuMCBdCgkJCQkJL1Jvd0d1dHRlciAwLjAKCQkJCQkvQ29sdW1uR3V0dGVyIDAuMAoJCQkJCS9GaXJzdEJhc2VsaW5lQWxpZ25tZW50CgkJCQkJPDwKCQkJCQkJL0ZsYWcgMQoJCQkJCQkvTWluIDAuMAoJCQkJCT4+CgkJCQkJL1BhdGhEYXRhCgkJCQkJPDwKCQkJCQkJL1NwYWNpbmcgLTEKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQk+PgoJCTw8CgkJCS9SZXNvdXJjZQoJCQk8PAoJCQkJL0JlemllcgoJCQkJPDwKCQkJCQkvUG9pbnRzIFsgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0RhdGEKCQkJCTw8CgkJCQkJL1R5cGUgMAoJCQkJCS9MaW5lT3JpZW50YXRpb24gMAoJCQkJCS9UZXh0T25QYXRoVFJhbmdlIFsgLTEuMCAtMS4wIF0KCQkJCQkvUm93R3V0dGVyIDAuMAoJCQkJCS9Db2x1bW5HdXR0ZXIgMC4wCgkJCQkJL0ZpcnN0QmFzZWxpbmVBbGlnbm1lbnQKCQkJCQk8PAoJCQkJCQkvRmxhZyAxCgkJCQkJCS9NaW4gMC4wCgkJCQkJPj4KCQkJCQkvUGF0aERhdGEKCQkJCQk8PAoJCQkJCQkvU3BhY2luZyAtMQoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCT4+CgkJPDwKCQkJL1Jlc291cmNlCgkJCTw8CgkJCQkvQmV6aWVyCgkJCQk8PAoJCQkJCS9Qb2ludHMgWyAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCT4+CgkJCQkvRGF0YQoJCQkJPDwKCQkJCQkvVHlwZSAwCgkJCQkJL0xpbmVPcmllbnRhdGlvbiAwCgkJCQkJL1RleHRPblBhdGhUUmFuZ2UgWyAtMS4wIC0xLjAgXQoJCQkJCS9Sb3dHdXR0ZXIgMC4wCgkJCQkJL0NvbHVtbkd1dHRlciAwLjAKCQkJCQkvRmlyc3RCYXNlbGluZUFsaWdubWVudAoJCQkJCTw8CgkJCQkJCS9GbGFnIDEKCQkJCQkJL01pbiAwLjAKCQkJCQk+PgoJCQkJCS9QYXRoRGF0YQoJCQkJCTw8CgkJCQkJCS9TcGFjaW5nIC0xCgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJPj4KCQk8PAoJCQkvUmVzb3VyY2UKCQkJPDwKCQkJCS9CZXppZXIKCQkJCTw8CgkJCQkJL1BvaW50cyBbIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9EYXRhCgkJCQk8PAoJCQkJCS9UeXBlIDAKCQkJCQkvTGluZU9yaWVudGF0aW9uIDAKCQkJCQkvVGV4dE9uUGF0aFRSYW5nZSBbIC0xLjAgLTEuMCBdCgkJCQkJL1Jvd0d1dHRlciAwLjAKCQkJCQkvQ29sdW1uR3V0dGVyIDAuMAoJCQkJCS9GaXJzdEJhc2VsaW5lQWxpZ25tZW50CgkJCQkJPDwKCQkJCQkJL0ZsYWcgMQoJCQkJCQkvTWluIDAuMAoJCQkJCT4+CgkJCQkJL1BhdGhEYXRhCgkJCQkJPDwKCQkJCQkJL1NwYWNpbmcgLTEKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQk+PgoJCTw8CgkJCS9SZXNvdXJjZQoJCQk8PAoJCQkJL0JlemllcgoJCQkJPDwKCQkJCQkvUG9pbnRzIFsgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0RhdGEKCQkJCTw8CgkJCQkJL1R5cGUgMAoJCQkJCS9MaW5lT3JpZW50YXRpb24gMAoJCQkJCS9UZXh0T25QYXRoVFJhbmdlIFsgLTEuMCAtMS4wIF0KCQkJCQkvUm93R3V0dGVyIDAuMAoJCQkJCS9Db2x1bW5HdXR0ZXIgMC4wCgkJCQkJL0ZpcnN0QmFzZWxpbmVBbGlnbm1lbnQKCQkJCQk8PAoJCQkJCQkvRmxhZyAxCgkJCQkJCS9NaW4gMC4wCgkJCQkJPj4KCQkJCQkvUGF0aERhdGEKCQkJCQk8PAoJCQkJCQkvU3BhY2luZyAtMQoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCT4+CgkJPDwKCQkJL1Jlc291cmNlCgkJCTw8CgkJCQkvQmV6aWVyCgkJCQk8PAoJCQkJCS9Qb2ludHMgWyAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCT4+CgkJCQkvRGF0YQoJCQkJPDwKCQkJCQkvVHlwZSAwCgkJCQkJL0xpbmVPcmllbnRhdGlvbiAwCgkJCQkJL1RleHRPblBhdGhUUmFuZ2UgWyAtMS4wIC0xLjAgXQoJCQkJCS9Sb3dHdXR0ZXIgMC4wCgkJCQkJL0NvbHVtbkd1dHRlciAwLjAKCQkJCQkvRmlyc3RCYXNlbGluZUFsaWdubWVudAoJCQkJCTw8CgkJCQkJCS9GbGFnIDEKCQkJCQkJL01pbiAwLjAKCQkJCQk+PgoJCQkJCS9QYXRoRGF0YQoJCQkJCTw8CgkJCQkJCS9TcGFjaW5nIC0xCgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJPj4KCQk8PAoJCQkvUmVzb3VyY2UKCQkJPDwKCQkJCS9CZXppZXIKCQkJCTw8CgkJCQkJL1BvaW50cyBbIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9EYXRhCgkJCQk8PAoJCQkJCS9UeXBlIDAKCQkJCQkvTGluZU9yaWVudGF0aW9uIDAKCQkJCQkvVGV4dE9uUGF0aFRSYW5nZSBbIC0xLjAgLTEuMCBdCgkJCQkJL1Jvd0d1dHRlciAwLjAKCQkJCQkvQ29sdW1uR3V0dGVyIDAuMAoJCQkJCS9GaXJzdEJhc2VsaW5lQWxpZ25tZW50CgkJCQkJPDwKCQkJCQkJL0ZsYWcgMQoJCQkJCQkvTWluIDAuMAoJCQkJCT4+CgkJCQkJL1BhdGhEYXRhCgkJCQkJPDwKCQkJCQkJL1NwYWNpbmcgLTEKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQk+PgoJCTw8CgkJCS9SZXNvdXJjZQoJCQk8PAoJCQkJL0JlemllcgoJCQkJPDwKCQkJCQkvUG9pbnRzIFsgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0RhdGEKCQkJCTw8CgkJCQkJL1R5cGUgMAoJCQkJCS9MaW5lT3JpZW50YXRpb24gMAoJCQkJCS9UZXh0T25QYXRoVFJhbmdlIFsgLTEuMCAtMS4wIF0KCQkJCQkvUm93R3V0dGVyIDAuMAoJCQkJCS9Db2x1bW5HdXR0ZXIgMC4wCgkJCQkJL0ZpcnN0QmFzZWxpbmVBbGlnbm1lbnQKCQkJCQk8PAoJCQkJCQkvRmxhZyAxCgkJCQkJCS9NaW4gMC4wCgkJCQkJPj4KCQkJCQkvUGF0aERhdGEKCQkJCQk8PAoJCQkJCQkvU3BhY2luZyAtMQoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCT4+CgkJPDwKCQkJL1Jlc291cmNlCgkJCTw8CgkJCQkvQmV6aWVyCgkJCQk8PAoJCQkJCS9Qb2ludHMgWyAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCT4+CgkJCQkvRGF0YQoJCQkJPDwKCQkJCQkvVHlwZSAwCgkJCQkJL0xpbmVPcmllbnRhdGlvbiAwCgkJCQkJL1RleHRPblBhdGhUUmFuZ2UgWyAtMS4wIC0xLjAgXQoJCQkJCS9Sb3dHdXR0ZXIgMC4wCgkJCQkJL0NvbHVtbkd1dHRlciAwLjAKCQkJCQkvRmlyc3RCYXNlbGluZUFsaWdubWVudAoJCQkJCTw8CgkJCQkJCS9GbGFnIDEKCQkJCQkJL01pbiAwLjAKCQkJCQk+PgoJCQkJCS9QYXRoRGF0YQoJCQkJCTw8CgkJCQkJCS9TcGFjaW5nIC0xCgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJPj4KCQk8PAoJCQkvUmVzb3VyY2UKCQkJPDwKCQkJCS9CZXppZXIKCQkJCTw8CgkJCQkJL1BvaW50cyBbIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9EYXRhCgkJCQk8PAoJCQkJCS9UeXBlIDAKCQkJCQkvTGluZU9yaWVudGF0aW9uIDAKCQkJCQkvVGV4dE9uUGF0aFRSYW5nZSBbIC0xLjAgLTEuMCBdCgkJCQkJL1Jvd0d1dHRlciAwLjAKCQkJCQkvQ29sdW1uR3V0dGVyIDAuMAoJCQkJCS9GaXJzdEJhc2VsaW5lQWxpZ25tZW50CgkJCQkJPDwKCQkJCQkJL0ZsYWcgMQoJCQkJCQkvTWluIDAuMAoJCQkJCT4+CgkJCQkJL1BhdGhEYXRhCgkJCQkJPDwKCQkJCQkJL1NwYWNpbmcgLTEKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQk+PgoJCTw8CgkJCS9SZXNvdXJjZQoJCQk8PAoJCQkJL0JlemllcgoJCQkJPDwKCQkJCQkvUG9pbnRzIFsgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0RhdGEKCQkJCTw8CgkJCQkJL1R5cGUgMAoJCQkJCS9MaW5lT3JpZW50YXRpb24gMAoJCQkJCS9UZXh0T25QYXRoVFJhbmdlIFsgLTEuMCAtMS4wIF0KCQkJCQkvUm93R3V0dGVyIDAuMAoJCQkJCS9Db2x1bW5HdXR0ZXIgMC4wCgkJCQkJL0ZpcnN0QmFzZWxpbmVBbGlnbm1lbnQKCQkJCQk8PAoJCQkJCQkvRmxhZyAxCgkJCQkJCS9NaW4gMC4wCgkJCQkJPj4KCQkJCQkvUGF0aERhdGEKCQkJCQk8PAoJCQkJCQkvU3BhY2luZyAtMQoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCT4+CgkJPDwKCQkJL1Jlc291cmNlCgkJCTw8CgkJCQkvQmV6aWVyCgkJCQk8PAoJCQkJCS9Qb2ludHMgWyAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCT4+CgkJCQkvRGF0YQoJCQkJPDwKCQkJCQkvVHlwZSAwCgkJCQkJL0xpbmVPcmllbnRhdGlvbiAwCgkJCQkJL1RleHRPblBhdGhUUmFuZ2UgWyAtMS4wIC0xLjAgXQoJCQkJCS9Sb3dHdXR0ZXIgMC4wCgkJCQkJL0NvbHVtbkd1dHRlciAwLjAKCQkJCQkvRmlyc3RCYXNlbGluZUFsaWdubWVudAoJCQkJCTw8CgkJCQkJCS9GbGFnIDEKCQkJCQkJL01pbiAwLjAKCQkJCQk+PgoJCQkJCS9QYXRoRGF0YQoJCQkJCTw8CgkJCQkJCS9TcGFjaW5nIC0xCgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJPj4KCQk8PAoJCQkvUmVzb3VyY2UKCQkJPDwKCQkJCS9CZXppZXIKCQkJCTw8CgkJCQkJL1BvaW50cyBbIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9EYXRhCgkJCQk8PAoJCQkJCS9UeXBlIDAKCQkJCQkvTGluZU9yaWVudGF0aW9uIDAKCQkJCQkvVGV4dE9uUGF0aFRSYW5nZSBbIC0xLjAgLTEuMCBdCgkJCQkJL1Jvd0d1dHRlciAwLjAKCQkJCQkvQ29sdW1uR3V0dGVyIDAuMAoJCQkJCS9GaXJzdEJhc2VsaW5lQWxpZ25tZW50CgkJCQkJPDwKCQkJCQkJL0ZsYWcgMQoJCQkJCQkvTWluIDAuMAoJCQkJCT4+CgkJCQkJL1BhdGhEYXRhCgkJCQkJPDwKCQkJCQkJL1NwYWNpbmcgLTEKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQk+PgoJCTw8CgkJCS9SZXNvdXJjZQoJCQk8PAoJCQkJL0JlemllcgoJCQkJPDwKCQkJCQkvUG9pbnRzIFsgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0RhdGEKCQkJCTw8CgkJCQkJL1R5cGUgMAoJCQkJCS9MaW5lT3JpZW50YXRpb24gMAoJCQkJCS9UZXh0T25QYXRoVFJhbmdlIFsgLTEuMCAtMS4wIF0KCQkJCQkvUm93R3V0dGVyIDAuMAoJCQkJCS9Db2x1bW5HdXR0ZXIgMC4wCgkJCQkJL0ZpcnN0QmFzZWxpbmVBbGlnbm1lbnQKCQkJCQk8PAoJCQkJCQkvRmxhZyAxCgkJCQkJCS9NaW4gMC4wCgkJCQkJPj4KCQkJCQkvUGF0aERhdGEKCQkJCQk8PAoJCQkJCQkvU3BhY2luZyAtMQoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCT4+CgkJPDwKCQkJL1Jlc291cmNlCgkJCTw8CgkJCQkvQmV6aWVyCgkJCQk8PAoJCQkJCS9Qb2ludHMgWyAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCT4+CgkJCQkvRGF0YQoJCQkJPDwKCQkJCQkvVHlwZSAwCgkJCQkJL0xpbmVPcmllbnRhdGlvbiAwCgkJCQkJL1RleHRPblBhdGhUUmFuZ2UgWyAtMS4wIC0xLjAgXQoJCQkJCS9Sb3dHdXR0ZXIgMC4wCgkJCQkJL0NvbHVtbkd1dHRlciAwLjAKCQkJCQkvRmlyc3RCYXNlbGluZUFsaWdubWVudAoJCQkJCTw8CgkJCQkJCS9GbGFnIDEKCQkJCQkJL01pbiAwLjAKCQkJCQk+PgoJCQkJCS9QYXRoRGF0YQoJCQkJCTw8CgkJCQkJCS9TcGFjaW5nIC0xCgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJPj4KCQk8PAoJCQkvUmVzb3VyY2UKCQkJPDwKCQkJCS9CZXppZXIKCQkJCTw8CgkJCQkJL1BvaW50cyBbIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9EYXRhCgkJCQk8PAoJCQkJCS9UeXBlIDAKCQkJCQkvTGluZU9yaWVudGF0aW9uIDAKCQkJCQkvVGV4dE9uUGF0aFRSYW5nZSBbIC0xLjAgLTEuMCBdCgkJCQkJL1Jvd0d1dHRlciAwLjAKCQkJCQkvQ29sdW1uR3V0dGVyIDAuMAoJCQkJCS9GaXJzdEJhc2VsaW5lQWxpZ25tZW50CgkJCQkJPDwKCQkJCQkJL0ZsYWcgMQoJCQkJCQkvTWluIDAuMAoJCQkJCT4+CgkJCQkJL1BhdGhEYXRhCgkJCQkJPDwKCQkJCQkJL1NwYWNpbmcgLTEKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQk+PgoJCTw8CgkJCS9SZXNvdXJjZQoJCQk8PAoJCQkJL0JlemllcgoJCQkJPDwKCQkJCQkvUG9pbnRzIFsgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0RhdGEKCQkJCTw8CgkJCQkJL1R5cGUgMAoJCQkJCS9MaW5lT3JpZW50YXRpb24gMAoJCQkJCS9UZXh0T25QYXRoVFJhbmdlIFsgLTEuMCAtMS4wIF0KCQkJCQkvUm93R3V0dGVyIDAuMAoJCQkJCS9Db2x1bW5HdXR0ZXIgMC4wCgkJCQkJL0ZpcnN0QmFzZWxpbmVBbGlnbm1lbnQKCQkJCQk8PAoJCQkJCQkvRmxhZyAxCgkJCQkJCS9NaW4gMC4wCgkJCQkJPj4KCQkJCQkvUGF0aERhdGEKCQkJCQk8PAoJCQkJCQkvU3BhY2luZyAtMQoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCT4+CgkJPDwKCQkJL1Jlc291cmNlCgkJCTw8CgkJCQkvQmV6aWVyCgkJCQk8PAoJCQkJCS9Qb2ludHMgWyAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCT4+CgkJCQkvRGF0YQoJCQkJPDwKCQkJCQkvVHlwZSAwCgkJCQkJL0xpbmVPcmllbnRhdGlvbiAwCgkJCQkJL1RleHRPblBhdGhUUmFuZ2UgWyAtMS4wIC0xLjAgXQoJCQkJCS9Sb3dHdXR0ZXIgMC4wCgkJCQkJL0NvbHVtbkd1dHRlciAwLjAKCQkJCQkvRmlyc3RCYXNlbGluZUFsaWdubWVudAoJCQkJCTw8CgkJCQkJCS9GbGFnIDEKCQkJCQkJL01pbiAwLjAKCQkJCQk+PgoJCQkJCS9QYXRoRGF0YQoJCQkJCTw8CgkJCQkJCS9TcGFjaW5nIC0xCgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJPj4KCQk8PAoJCQkvUmVzb3VyY2UKCQkJPDwKCQkJCS9CZXppZXIKCQkJCTw8CgkJCQkJL1BvaW50cyBbIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9EYXRhCgkJCQk8PAoJCQkJCS9UeXBlIDAKCQkJCQkvTGluZU9yaWVudGF0aW9uIDAKCQkJCQkvVGV4dE9uUGF0aFRSYW5nZSBbIC0xLjAgLTEuMCBdCgkJCQkJL1Jvd0d1dHRlciAwLjAKCQkJCQkvQ29sdW1uR3V0dGVyIDAuMAoJCQkJCS9GaXJzdEJhc2VsaW5lQWxpZ25tZW50CgkJCQkJPDwKCQkJCQkJL0ZsYWcgMQoJCQkJCQkvTWluIDAuMAoJCQkJCT4+CgkJCQkJL1BhdGhEYXRhCgkJCQkJPDwKCQkJCQkJL1NwYWNpbmcgLTEKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQk+PgoJCTw8CgkJCS9SZXNvdXJjZQoJCQk8PAoJCQkJL0JlemllcgoJCQkJPDwKCQkJCQkvUG9pbnRzIFsgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0RhdGEKCQkJCTw8CgkJCQkJL1R5cGUgMAoJCQkJCS9MaW5lT3JpZW50YXRpb24gMAoJCQkJCS9UZXh0T25QYXRoVFJhbmdlIFsgLTEuMCAtMS4wIF0KCQkJCQkvUm93R3V0dGVyIDAuMAoJCQkJCS9Db2x1bW5HdXR0ZXIgMC4wCgkJCQkJL0ZpcnN0QmFzZWxpbmVBbGlnbm1lbnQKCQkJCQk8PAoJCQkJCQkvRmxhZyAxCgkJCQkJCS9NaW4gMC4wCgkJCQkJPj4KCQkJCQkvUGF0aERhdGEKCQkJCQk8PAoJCQkJCQkvU3BhY2luZyAtMQoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCT4+CgkJPDwKCQkJL1Jlc291cmNlCgkJCTw8CgkJCQkvQmV6aWVyCgkJCQk8PAoJCQkJCS9Qb2ludHMgWyAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCT4+CgkJCQkvRGF0YQoJCQkJPDwKCQkJCQkvVHlwZSAwCgkJCQkJL0xpbmVPcmllbnRhdGlvbiAwCgkJCQkJL1RleHRPblBhdGhUUmFuZ2UgWyAtMS4wIC0xLjAgXQoJCQkJCS9Sb3dHdXR0ZXIgMC4wCgkJCQkJL0NvbHVtbkd1dHRlciAwLjAKCQkJCQkvRmlyc3RCYXNlbGluZUFsaWdubWVudAoJCQkJCTw8CgkJCQkJCS9GbGFnIDEKCQkJCQkJL01pbiAwLjAKCQkJCQk+PgoJCQkJCS9QYXRoRGF0YQoJCQkJCTw8CgkJCQkJCS9TcGFjaW5nIC0xCgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJPj4KCQk8PAoJCQkvUmVzb3VyY2UKCQkJPDwKCQkJCS9CZXppZXIKCQkJCTw8CgkJCQkJL1BvaW50cyBbIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9EYXRhCgkJCQk8PAoJCQkJCS9UeXBlIDAKCQkJCQkvTGluZU9yaWVudGF0aW9uIDAKCQkJCQkvVGV4dE9uUGF0aFRSYW5nZSBbIC0xLjAgLTEuMCBdCgkJCQkJL1Jvd0d1dHRlciAwLjAKCQkJCQkvQ29sdW1uR3V0dGVyIDAuMAoJCQkJCS9GaXJzdEJhc2VsaW5lQWxpZ25tZW50CgkJCQkJPDwKCQkJCQkJL0ZsYWcgMQoJCQkJCQkvTWluIDAuMAoJCQkJCT4+CgkJCQkJL1BhdGhEYXRhCgkJCQkJPDwKCQkJCQkJL1NwYWNpbmcgLTEKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQk+PgoJCTw8CgkJCS9SZXNvdXJjZQoJCQk8PAoJCQkJL0JlemllcgoJCQkJPDwKCQkJCQkvUG9pbnRzIFsgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0RhdGEKCQkJCTw8CgkJCQkJL1R5cGUgMAoJCQkJCS9MaW5lT3JpZW50YXRpb24gMAoJCQkJCS9UZXh0T25QYXRoVFJhbmdlIFsgLTEuMCAtMS4wIF0KCQkJCQkvUm93R3V0dGVyIDAuMAoJCQkJCS9Db2x1bW5HdXR0ZXIgMC4wCgkJCQkJL0ZpcnN0QmFzZWxpbmVBbGlnbm1lbnQKCQkJCQk8PAoJCQkJCQkvRmxhZyAxCgkJCQkJCS9NaW4gMC4wCgkJCQkJPj4KCQkJCQkvUGF0aERhdGEKCQkJCQk8PAoJCQkJCQkvU3BhY2luZyAtMQoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCT4+CgkJPDwKCQkJL1Jlc291cmNlCgkJCTw8CgkJCQkvQmV6aWVyCgkJCQk8PAoJCQkJCS9Qb2ludHMgWyAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCT4+CgkJCQkvRGF0YQoJCQkJPDwKCQkJCQkvVHlwZSAwCgkJCQkJL0xpbmVPcmllbnRhdGlvbiAwCgkJCQkJL1RleHRPblBhdGhUUmFuZ2UgWyAtMS4wIC0xLjAgXQoJCQkJCS9Sb3dHdXR0ZXIgMC4wCgkJCQkJL0NvbHVtbkd1dHRlciAwLjAKCQkJCQkvRmlyc3RCYXNlbGluZUFsaWdubWVudAoJCQkJCTw8CgkJCQkJCS9GbGFnIDEKCQkJCQkJL01pbiAwLjAKCQkJCQk+PgoJCQkJCS9QYXRoRGF0YQoJCQkJCTw8CgkJCQkJCS9TcGFjaW5nIC0xCgkJCQkJPj4KCQkJCT4+CgkJCT4+CgkJPj4KCQk8PAoJCQkvUmVzb3VyY2UKCQkJPDwKCQkJCS9CZXppZXIKCQkJCTw8CgkJCQkJL1BvaW50cyBbIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9EYXRhCgkJCQk8PAoJCQkJCS9UeXBlIDAKCQkJCQkvTGluZU9yaWVudGF0aW9uIDAKCQkJCQkvVGV4dE9uUGF0aFRSYW5nZSBbIC0xLjAgLTEuMCBdCgkJCQkJL1Jvd0d1dHRlciAwLjAKCQkJCQkvQ29sdW1uR3V0dGVyIDAuMAoJCQkJCS9GaXJzdEJhc2VsaW5lQWxpZ25tZW50CgkJCQkJPDwKCQkJCQkJL0ZsYWcgMQoJCQkJCQkvTWluIDAuMAoJCQkJCT4+CgkJCQkJL1BhdGhEYXRhCgkJCQkJPDwKCQkJCQkJL1NwYWNpbmcgLTEKCQkJCQk+PgoJCQkJPj4KCQkJPj4KCQk+PgoJCTw8CgkJCS9SZXNvdXJjZQoJCQk8PAoJCQkJL0JlemllcgoJCQkJPDwKCQkJCQkvUG9pbnRzIFsgMC4wIDAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0RhdGEKCQkJCTw8CgkJCQkJL1R5cGUgMAoJCQkJCS9MaW5lT3JpZW50YXRpb24gMAoJCQkJCS9UZXh0T25QYXRoVFJhbmdlIFsgLTEuMCAtMS4wIF0KCQkJCQkvUm93R3V0dGVyIDAuMAoJCQkJCS9Db2x1bW5HdXR0ZXIgMC4wCgkJCQkJL0ZpcnN0QmFzZWxpbmVBbGlnbm1lbnQKCQkJCQk8PAoJCQkJCQkvRmxhZyAxCgkJCQkJCS9NaW4gMC4wCgkJCQkJPj4KCQkJCQkvUGF0aERhdGEKCQkJCQk8PAoJCQkJCQkvU3BhY2luZyAtMQoJCQkJCT4+CgkJCQk+PgoJCQk+PgoJCT4+CgkJXQoJPj4KPj4KL0RvY3VtZW50T2JqZWN0cwo8PAoJL0RvY3VtZW50U2V0dGluZ3MKCTw8CgkJL0hpZGRlbkdseXBoRm9udAoJCTw8CgkJCS9BbHRlcm5hdGVHbHlwaEZvbnQgMgoJCQkvV2hpdGVzcGFjZUNoYXJhY3Rlck1hcHBpbmcgWwoJCQk8PAoJCQkJL1doaXRlc3BhY2VDaGFyYWN0ZXIgKP7/ACApCgkJCQkvQWx0ZXJuYXRlQ2hhcmFjdGVyICj+/wAxKQoJCQk+PgoJCQk8PAoJCQkJL1doaXRlc3BhY2VDaGFyYWN0ZXIgKP7/AA0pCgkJCQkvQWx0ZXJuYXRlQ2hhcmFjdGVyICj+/wA2KQoJCQk+PgoJCQk8PAoJCQkJL1doaXRlc3BhY2VDaGFyYWN0ZXIgKP7/AAkpCgkJCQkvQWx0ZXJuYXRlQ2hhcmFjdGVyICj+/wAwKQoJCQk+PgoJCQk8PAoJCQkJL1doaXRlc3BhY2VDaGFyYWN0ZXIgKP7/IFwpKQoJCQkJL0FsdGVybmF0ZUNoYXJhY3RlciAo/v8ANSkKCQkJPj4KCQkJPDwKCQkJCS9XaGl0ZXNwYWNlQ2hhcmFjdGVyICj+/wADKQoJCQkJL0FsdGVybmF0ZUNoYXJhY3RlciAo/v8ANSkKCQkJPj4KCQkJPDwKCQkJCS9XaGl0ZXNwYWNlQ2hhcmFjdGVyICj+/zAAKQoJCQkJL0FsdGVybmF0ZUNoYXJhY3RlciAo/v8AMSkKCQkJPj4KCQkJPDwKCQkJCS9XaGl0ZXNwYWNlQ2hhcmFjdGVyICj+/wCtKQoJCQkJL0FsdGVybmF0ZUNoYXJhY3RlciAo/v8AMykKCQkJPj4KCQkJXQoJCT4+CgkJL05vcm1hbFN0eWxlU2hlZXQgMAoJCS9Ob3JtYWxQYXJhZ3JhcGhTaGVldCAwCgkJL1N1cGVyc2NyaXB0U2l6ZSAwLjU4MwoJCS9TdXBlcnNjcmlwdFBvc2l0aW9uIDAuMzMzCgkJL1N1YnNjcmlwdFNpemUgMC41ODMKCQkvU3Vic2NyaXB0UG9zaXRpb24gMC4zMzMKCQkvU21hbGxDYXBTaXplIDAuNwoJCS9Vc2VTbWFydFF1b3RlcyB0cnVlCgkJL1NtYXJ0UXVvdGVTZXRzIFsKCQk8PAoJCQkvTGFuZ3VhZ2UgMAoJCQkvT3BlbkRvdWJsZVF1b3RlICj+/yAcKQoJCQkvQ2xvc2VEb3VibGVRdW90ZSAo/v8gHSkKCQkJL09wZW5TaW5nbGVRdW90ZSAo/v8gGCkKCQkJL0Nsb3NlU2luZ2xlUXVvdGUgKP7/IBkpCgkJPj4KCQk8PAoJCQkvTGFuZ3VhZ2UgMQoJCQkvT3BlbkRvdWJsZVF1b3RlICj+/yAdKQoJCQkvQ2xvc2VEb3VibGVRdW90ZSAo/v8gHSkKCQkJL09wZW5TaW5nbGVRdW90ZSAo/v8gGSkKCQkJL0Nsb3NlU2luZ2xlUXVvdGUgKP7/IBkpCgkJPj4KCQk8PAoJCQkvTGFuZ3VhZ2UgMgoJCQkvT3BlbkRvdWJsZVF1b3RlICj+/wCrKQoJCQkvQ2xvc2VEb3VibGVRdW90ZSAo/v8AuykKCQkJL09wZW5TaW5nbGVRdW90ZSAo/v8gGCkKCQkJL0Nsb3NlU2luZ2xlUXVvdGUgKP7/IBkpCgkJPj4KCQk8PAoJCQkvTGFuZ3VhZ2UgMwoJCQkvT3BlbkRvdWJsZVF1b3RlICj+/wCrKQoJCQkvQ2xvc2VEb3VibGVRdW90ZSAo/v8AuykKCQkJL09wZW5TaW5nbGVRdW90ZSAo/v8gGCkKCQkJL0Nsb3NlU2luZ2xlUXVvdGUgKP7/IBkpCgkJPj4KCQk8PAoJCQkvTGFuZ3VhZ2UgNAoJCQkvT3BlbkRvdWJsZVF1b3RlICj+/yAeKQoJCQkvQ2xvc2VEb3VibGVRdW90ZSAo/v8gHCkKCQkJL09wZW5TaW5nbGVRdW90ZSAo/v8gGikKCQkJL0Nsb3NlU2luZ2xlUXVvdGUgKP7/IBgpCgkJPj4KCQk8PAoJCQkvTGFuZ3VhZ2UgNQoJCQkvT3BlbkRvdWJsZVF1b3RlICj+/yAeKQoJCQkvQ2xvc2VEb3VibGVRdW90ZSAo/v8gHCkKCQkJL09wZW5TaW5nbGVRdW90ZSAo/v8gGikKCQkJL0Nsb3NlU2luZ2xlUXVvdGUgKP7/IBgpCgkJPj4KCQk8PAoJCQkvTGFuZ3VhZ2UgNgoJCQkvT3BlbkRvdWJsZVF1b3RlICj+/wCrKQoJCQkvQ2xvc2VEb3VibGVRdW90ZSAo/v8AuykKCQkJL09wZW5TaW5nbGVRdW90ZSAo/v8gOSkKCQkJL0Nsb3NlU2luZ2xlUXVvdGUgKP7/IDopCgkJPj4KCQk8PAoJCQkvTGFuZ3VhZ2UgNwoJCQkvT3BlbkRvdWJsZVF1b3RlICj+/yAcKQoJCQkvQ2xvc2VEb3VibGVRdW90ZSAo/v8gHSkKCQkJL09wZW5TaW5nbGVRdW90ZSAo/v8gGCkKCQkJL0Nsb3NlU2luZ2xlUXVvdGUgKP7/IBkpCgkJPj4KCQk8PAoJCQkvTGFuZ3VhZ2UgOAoJCQkvT3BlbkRvdWJsZVF1b3RlICj+/wCrKQoJCQkvQ2xvc2VEb3VibGVRdW90ZSAo/v8AuykKCQkJL09wZW5TaW5nbGVRdW90ZSAo/v8gGCkKCQkJL0Nsb3NlU2luZ2xlUXVvdGUgKP7/IBkpCgkJPj4KCQk8PAoJCQkvTGFuZ3VhZ2UgOQoJCQkvT3BlbkRvdWJsZVF1b3RlICj+/wCrKQoJCQkvQ2xvc2VEb3VibGVRdW90ZSAo/v8AuykKCQkJL09wZW5TaW5nbGVRdW90ZSAo/v8gGCkKCQkJL0Nsb3NlU2luZ2xlUXVvdGUgKP7/IBkpCgkJPj4KCQk8PAoJCQkvTGFuZ3VhZ2UgMTAKCQkJL09wZW5Eb3VibGVRdW90ZSAo/v8gHCkKCQkJL0Nsb3NlRG91YmxlUXVvdGUgKP7/IB0pCgkJCS9PcGVuU2luZ2xlUXVvdGUgKP7/IBgpCgkJCS9DbG9zZVNpbmdsZVF1b3RlICj+/yAZKQoJCT4+CgkJPDwKCQkJL0xhbmd1YWdlIDExCgkJCS9PcGVuRG91YmxlUXVvdGUgKP7/IBwpCgkJCS9DbG9zZURvdWJsZVF1b3RlICj+/yAdKQoJCQkvT3BlblNpbmdsZVF1b3RlICj+/yAYKQoJCQkvQ2xvc2VTaW5nbGVRdW90ZSAo/v8gGSkKCQk+PgoJCTw8CgkJCS9MYW5ndWFnZSAxMgoJCQkvT3BlbkRvdWJsZVF1b3RlICj+/yAcKQoJCQkvQ2xvc2VEb3VibGVRdW90ZSAo/v8gHSkKCQkJL09wZW5TaW5nbGVRdW90ZSAo/v8gGCkKCQkJL0Nsb3NlU2luZ2xlUXVvdGUgKP7/IBkpCgkJPj4KCQk8PAoJCQkvTGFuZ3VhZ2UgMTMKCQkJL09wZW5Eb3VibGVRdW90ZSAo/v8gHSkKCQkJL0Nsb3NlRG91YmxlUXVvdGUgKP7/IB0pCgkJCS9PcGVuU2luZ2xlUXVvdGUgKP7/IBkpCgkJCS9DbG9zZVNpbmdsZVF1b3RlICj+/yAZKQoJCT4+CgkJPDwKCQkJL0xhbmd1YWdlIDE0CgkJCS9PcGVuRG91YmxlUXVvdGUgKP7/IBwpCgkJCS9DbG9zZURvdWJsZVF1b3RlICj+/yAdKQoJCQkvT3BlblNpbmdsZVF1b3RlICj+/yAYKQoJCQkvQ2xvc2VTaW5nbGVRdW90ZSAo/v8gGSkKCQk+PgoJCTw8CgkJCS9MYW5ndWFnZSAxNQoJCQkvT3BlbkRvdWJsZVF1b3RlICj+/yAcKQoJCQkvQ2xvc2VEb3VibGVRdW90ZSAo/v8gHSkKCQkJL09wZW5TaW5nbGVRdW90ZSAo/v8gGCkKCQkJL0Nsb3NlU2luZ2xlUXVvdGUgKP7/IBkpCgkJPj4KCQk8PAoJCQkvTGFuZ3VhZ2UgMTYKCQkJL09wZW5Eb3VibGVRdW90ZSAo/v8gHSkKCQkJL0Nsb3NlRG91YmxlUXVvdGUgKP7/IB0pCgkJCS9PcGVuU2luZ2xlUXVvdGUgKP7/IBkpCgkJCS9DbG9zZVNpbmdsZVF1b3RlICj+/yAZKQoJCT4+CgkJPDwKCQkJL0xhbmd1YWdlIDE3CgkJCS9PcGVuRG91YmxlUXVvdGUgKP7/IBwpCgkJCS9DbG9zZURvdWJsZVF1b3RlICj+/yAdKQoJCQkvT3BlblNpbmdsZVF1b3RlICj+/yAYKQoJCQkvQ2xvc2VTaW5nbGVRdW90ZSAo/v8gGSkKCQk+PgoJCTw8CgkJCS9MYW5ndWFnZSAxOAoJCQkvT3BlbkRvdWJsZVF1b3RlICj+/wCrKQoJCQkvQ2xvc2VEb3VibGVRdW90ZSAo/v8AuykKCQkJL09wZW5TaW5nbGVRdW90ZSAo/v8gGCkKCQkJL0Nsb3NlU2luZ2xlUXVvdGUgKP7/IBkpCgkJPj4KCQk8PAoJCQkvTGFuZ3VhZ2UgMTkKCQkJL09wZW5Eb3VibGVRdW90ZSAo/v8AqykKCQkJL0Nsb3NlRG91YmxlUXVvdGUgKP7/ALspCgkJCS9PcGVuU2luZ2xlUXVvdGUgKP7/IBgpCgkJCS9DbG9zZVNpbmdsZVF1b3RlICj+/yAZKQoJCT4+CgkJPDwKCQkJL0xhbmd1YWdlIDIwCgkJCS9PcGVuRG91YmxlUXVvdGUgKP7/IB4pCgkJCS9DbG9zZURvdWJsZVF1b3RlICj+/yAcKQoJCQkvT3BlblNpbmdsZVF1b3RlICj+/yAaKQoJCQkvQ2xvc2VTaW5nbGVRdW90ZSAo/v8gGCkKCQk+PgoJCTw8CgkJCS9MYW5ndWFnZSAyMQoJCQkvT3BlbkRvdWJsZVF1b3RlICj+/yAeKQoJCQkvQ2xvc2VEb3VibGVRdW90ZSAo/v8gHCkKCQkJL09wZW5TaW5nbGVRdW90ZSAo/v8gGikKCQkJL0Nsb3NlU2luZ2xlUXVvdGUgKP7/IBgpCgkJPj4KCQk8PAoJCQkvTGFuZ3VhZ2UgMjIKCQkJL09wZW5Eb3VibGVRdW90ZSAo/v8gHikKCQkJL0Nsb3NlRG91YmxlUXVvdGUgKP7/IBwpCgkJCS9PcGVuU2luZ2xlUXVvdGUgKP7/IBopCgkJCS9DbG9zZVNpbmdsZVF1b3RlICj+/yAYKQoJCT4+CgkJPDwKCQkJL0xhbmd1YWdlIDIzCgkJCS9PcGVuRG91YmxlUXVvdGUgKP7/IB4pCgkJCS9DbG9zZURvdWJsZVF1b3RlICj+/yAdKQoJCQkvT3BlblNpbmdsZVF1b3RlICj+/yAYKQoJCQkvQ2xvc2VTaW5nbGVRdW90ZSAo/v8gGSkKCQk+PgoJCTw8CgkJCS9MYW5ndWFnZSAyNAoJCQkvT3BlbkRvdWJsZVF1b3RlICj+/yAeKQoJCQkvQ2xvc2VEb3VibGVRdW90ZSAo/v8gHCkKCQkJL09wZW5TaW5nbGVRdW90ZSAo/v8gGikKCQkJL0Nsb3NlU2luZ2xlUXVvdGUgKP7/IBgpCgkJPj4KCQk8PAoJCQkvTGFuZ3VhZ2UgMjUKCQkJL09wZW5Eb3VibGVRdW90ZSAo/v8AqykKCQkJL0Nsb3NlRG91YmxlUXVvdGUgKP7/ALspCgkJCS9PcGVuU2luZ2xlUXVvdGUgKP7/IDkpCgkJCS9DbG9zZVNpbmdsZVF1b3RlICj+/yA6KQoJCT4+CgkJPDwKCQkJL0xhbmd1YWdlIDI2CgkJCS9PcGVuRG91YmxlUXVvdGUgKP7/IBwpCgkJCS9DbG9zZURvdWJsZVF1b3RlICj+/yAdKQoJCQkvT3BlblNpbmdsZVF1b3RlICj+/yAYKQoJCQkvQ2xvc2VTaW5nbGVRdW90ZSAo/v8gGSkKCQk+PgoJCTw8CgkJCS9MYW5ndWFnZSAyNwoJCQkvT3BlbkRvdWJsZVF1b3RlICj+/yAcKQoJCQkvQ2xvc2VEb3VibGVRdW90ZSAo/v8gHSkKCQkJL09wZW5TaW5nbGVRdW90ZSAo/v8gGCkKCQkJL0Nsb3NlU2luZ2xlUXVvdGUgKP7/IBkpCgkJPj4KCQk8PAoJCQkvTGFuZ3VhZ2UgMjgKCQkJL09wZW5Eb3VibGVRdW90ZSAo/v8gHikKCQkJL0Nsb3NlRG91YmxlUXVvdGUgKP7/IB0pCgkJCS9PcGVuU2luZ2xlUXVvdGUgKP7/IBkpCgkJCS9DbG9zZVNpbmdsZVF1b3RlICj+/yAZKQoJCT4+CgkJPDwKCQkJL0xhbmd1YWdlIDI5CgkJCS9PcGVuRG91YmxlUXVvdGUgKP7/MB0pCgkJCS9DbG9zZURvdWJsZVF1b3RlICj+/zAeKQoJCT4+CgkJPDwKCQkJL0xhbmd1YWdlIDMwCgkJCS9PcGVuRG91YmxlUXVvdGUgKP7/MAwpCgkJCS9DbG9zZURvdWJsZVF1b3RlICj+/zANKQoJCT4+CgkJPDwKCQkJL0xhbmd1YWdlIDMxCgkJCS9PcGVuRG91YmxlUXVvdGUgKP7/ALspCgkJCS9DbG9zZURvdWJsZVF1b3RlICj+/wCrKQoJCQkvT3BlblNpbmdsZVF1b3RlICj+/yAYKQoJCQkvQ2xvc2VTaW5nbGVRdW90ZSAo/v8gGSkKCQk+PgoJCTw8CgkJCS9MYW5ndWFnZSAzMwoJCQkvT3BlbkRvdWJsZVF1b3RlICj+/yAeKQoJCQkvQ2xvc2VEb3VibGVRdW90ZSAo/v8gHCkKCQkJL09wZW5TaW5nbGVRdW90ZSAo/v8gGikKCQkJL0Nsb3NlU2luZ2xlUXVvdGUgKP7/IBgpCgkJPj4KCQk8PAoJCQkvTGFuZ3VhZ2UgMzQKCQkJL09wZW5Eb3VibGVRdW90ZSAo/v8gHCkKCQkJL0Nsb3NlRG91YmxlUXVvdGUgKP7/IB0pCgkJCS9PcGVuU2luZ2xlUXVvdGUgKP7/IBgpCgkJCS9DbG9zZVNpbmdsZVF1b3RlICj+/yAZKQoJCT4+CgkJPDwKCQkJL0xhbmd1YWdlIDM1CgkJCS9PcGVuRG91YmxlUXVvdGUgKP7/IBwpCgkJCS9DbG9zZURvdWJsZVF1b3RlICj+/yAdKQoJCQkvT3BlblNpbmdsZVF1b3RlICj+/yAYKQoJCQkvQ2xvc2VTaW5nbGVRdW90ZSAo/v8gGSkKCQk+PgoJCTw8CgkJCS9MYW5ndWFnZSAzNgoJCQkvT3BlbkRvdWJsZVF1b3RlICj+/yAeKQoJCQkvQ2xvc2VEb3VibGVRdW90ZSAo/v8gHCkKCQkJL09wZW5TaW5nbGVRdW90ZSAo/v8gGikKCQkJL0Nsb3NlU2luZ2xlUXVvdGUgKP7/IBgpCgkJPj4KCQk8PAoJCQkvTGFuZ3VhZ2UgMzcKCQkJL09wZW5Eb3VibGVRdW90ZSAo/v8AqykKCQkJL0Nsb3NlRG91YmxlUXVvdGUgKP7/ALspCgkJCS9PcGVuU2luZ2xlUXVvdGUgKP7/IBgpCgkJCS9DbG9zZVNpbmdsZVF1b3RlICj+/yAZKQoJCT4+CgkJPDwKCQkJL0xhbmd1YWdlIDM4CgkJCS9PcGVuRG91YmxlUXVvdGUgKP7/IB4pCgkJCS9DbG9zZURvdWJsZVF1b3RlICj+/yAcKQoJCQkvT3BlblNpbmdsZVF1b3RlICj+/yAaKQoJCQkvQ2xvc2VTaW5nbGVRdW90ZSAo/v8gGCkKCQk+PgoJCTw8CgkJCS9MYW5ndWFnZSA0MAoJCQkvT3BlbkRvdWJsZVF1b3RlICj+/yAeKQoJCQkvQ2xvc2VEb3VibGVRdW90ZSAo/v8gHCkKCQkJL09wZW5TaW5nbGVRdW90ZSAo/v8gGikKCQkJL0Nsb3NlU2luZ2xlUXVvdGUgKP7/IBgpCgkJPj4KCQk8PAoJCQkvTGFuZ3VhZ2UgNDIKCQkJL09wZW5Eb3VibGVRdW90ZSAo/v8gHikKCQkJL0Nsb3NlRG91YmxlUXVvdGUgKP7/IBwpCgkJCS9PcGVuU2luZ2xlUXVvdGUgKP7/IBopCgkJCS9DbG9zZVNpbmdsZVF1b3RlICj+/yAYKQoJCT4+CgkJPDwKCQkJL0xhbmd1YWdlIDQzCgkJCS9PcGVuRG91YmxlUXVvdGUgKP7/IBwpCgkJCS9DbG9zZURvdWJsZVF1b3RlICj+/yAdKQoJCQkvT3BlblNpbmdsZVF1b3RlICj+/yAYKQoJCQkvQ2xvc2VTaW5nbGVRdW90ZSAo/v8gGSkKCQk+PgoJCTw8CgkJCS9MYW5ndWFnZSA0NAoJCQkvT3BlbkRvdWJsZVF1b3RlICj+/wCrKQoJCQkvQ2xvc2VEb3VibGVRdW90ZSAo/v8AuykKCQkJL09wZW5TaW5nbGVRdW90ZSAo/v8gOSkKCQkJL0Nsb3NlU2luZ2xlUXVvdGUgKP7/IDopCgkJPj4KCQk8PAoJCQkvTGFuZ3VhZ2UgNDUKCQkJL09wZW5Eb3VibGVRdW90ZSAo/v8gHCkKCQkJL0Nsb3NlRG91YmxlUXVvdGUgKP7/IB0pCgkJCS9PcGVuU2luZ2xlUXVvdGUgKP7/IBgpCgkJCS9DbG9zZVNpbmdsZVF1b3RlICj+/yAZKQoJCT4+CgkJXQoJPj4KCS9UZXh0T2JqZWN0cyBbCgk8PAoJCS9Nb2RlbAoJCTw8CgkJCS9UZXh0ICj+/wBQAEQARgANKQoJCQkvUGFyYWdyYXBoUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJCS9QYXJhZ3JhcGhTaGVldAoJCQkJCQk8PAoJCQkJCQkJL05hbWUgKP7/KQoJCQkJCQkJL0ZlYXR1cmVzCgkJCQkJCQk8PAoJCQkJCQkJCS9KdXN0aWZpY2F0aW9uIDIKCQkJCQkJCQkvRmlyc3RMaW5lSW5kZW50IDAuMAoJCQkJCQkJCS9TdGFydEluZGVudCAwLjAKCQkJCQkJCQkvRW5kSW5kZW50IDAuMAoJCQkJCQkJCS9TcGFjZUJlZm9yZSAwLjAKCQkJCQkJCQkvU3BhY2VBZnRlciAwLjAKCQkJCQkJCQkvRHJvcENhcHMgMQoJCQkJCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCQkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCQkJCQkvSHlwaGVuYXRlZFdvcmRTaXplIDgKCQkJCQkJCQkvUHJlSHlwaGVuIDMKCQkJCQkJCQkvUG9zdEh5cGhlbiAzCgkJCQkJCQkJL0NvbnNlY3V0aXZlSHlwaGVucyAyCgkJCQkJCQkJL1pvbmUgMzYuMAoJCQkJCQkJCS9IeXBoZW5hdGVDYXBpdGFsaXplZCB0cnVlCgkJCQkJCQkJL0h5cGhlbmF0aW9uUHJlZmVyZW5jZSAwLjUKCQkJCQkJCQkvV29yZFNwYWNpbmcgWyAwLjggMS4wIDEuMzMgXQoJCQkJCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkJCQkJL1NpbmdsZVdvcmRKdXN0aWZpY2F0aW9uIDYKCQkJCQkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJCQkJCS9BdXRvVENZIDEKCQkJCQkJCQkvS2VlcFRvZ2V0aGVyIHRydWUKCQkJCQkJCQkvQnVyYXNhZ2FyaVR5cGUgMAoJCQkJCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJCQkJCS9LdXJpa2Flc2hpTW9qaVNob3JpIGZhbHNlCgkJCQkJCQkJL0tpbnNva3UgL25pbAoJCQkJCQkJCS9Nb2ppS3VtaVRhYmxlIC9uaWwKCQkJCQkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJCQkJCQkvVGFiU3RvcHMKCQkJCQkJCQk8PAoJCQkJCQkJCT4+CgkJCQkJCQkJL0RlZmF1bHRUYWJXaWR0aCAzNi4wCgkJCQkJCQkJL0RlZmF1bHRTdHlsZQoJCQkJCQkJCTw8CgkJCQkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkJCQkJPj4KCQkJCQkJCT4+CgkJCQkJCQkvUGFyZW50IDAKCQkJCQkJPj4KCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL1N0eWxlUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJCS9TdHlsZVNoZWV0CgkJCQkJCTw8CgkJCQkJCQkvTmFtZSAo/v8pCgkJCQkJCQkvUGFyZW50IDAKCQkJCQkJCS9GZWF0dXJlcwoJCQkJCQkJPDwKCQkJCQkJCQkvRm9udCAwCgkJCQkJCQkJL0ZvbnRTaXplIDIwLjc3MzMxCgkJCQkJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCQkJCQkvQXV0b0xlYWRpbmcgZmFsc2UKCQkJCQkJCQkvTGVhZGluZyAzOS44NjE5OAoJCQkJCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkJCQkJL1RyYWNraW5nIDIwCgkJCQkJCQkJL0Jhc2VsaW5lU2hpZnQgLTguODg2NjIKCQkJCQkJCQkvQ2hhcmFjdGVyUm90YXRpb24gMC4wCgkJCQkJCQkJL0F1dG9LZXJuIDEKCQkJCQkJCQkvRm9udENhcHMgMAoJCQkJCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJCQkJCS9Gb250T1RQb3NpdGlvbiAwCgkJCQkJCQkJL1N0cmlrZXRocm91Z2hQb3NpdGlvbiAwCgkJCQkJCQkJL1VuZGVybGluZVBvc2l0aW9uIDAKCQkJCQkJCQkvVW5kZXJsaW5lT2Zmc2V0IDAuMAoJCQkJCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJCQkJCS9EaXNjcmV0aW9uYXJ5TGlnYXR1cmVzIGZhbHNlCgkJCQkJCQkJL0NvbnRleHR1YWxMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvQWx0ZXJuYXRlTGlnYXR1cmVzIGZhbHNlCgkJCQkJCQkJL09sZFN0eWxlIGZhbHNlCgkJCQkJCQkJL0ZyYWN0aW9ucyBmYWxzZQoJCQkJCQkJCS9PcmRpbmFscyBmYWxzZQoJCQkJCQkJCS9Td2FzaCBmYWxzZQoJCQkJCQkJCS9UaXRsaW5nIGZhbHNlCgkJCQkJCQkJL0Nvbm5lY3Rpb25Gb3JtcyBmYWxzZQoJCQkJCQkJCS9TdHlsaXN0aWNBbHRlcm5hdGVzIGZhbHNlCgkJCQkJCQkJL09ybmFtZW50cyBmYWxzZQoJCQkJCQkJCS9GaWd1cmVTdHlsZSAwCgkJCQkJCQkJL1Byb3BvcnRpb25hbE1ldHJpY3MgZmFsc2UKCQkJCQkJCQkvS2FuYSBmYWxzZQoJCQkJCQkJCS9JdGFsaWNzIGZhbHNlCgkJCQkJCQkJL1J1YnkgZmFsc2UKCQkJCQkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMQoJCQkJCQkJCS9Uc3VtZSAwLjAKCQkJCQkJCQkvU3R5bGVSdW5BbGlnbm1lbnQgMgoJCQkJCQkJCS9MYW5ndWFnZSAwCgkJCQkJCQkJL0phcGFuZXNlQWx0ZXJuYXRlRmVhdHVyZSAwCgkJCQkJCQkJL0VuYWJsZVdhcmlDaHUgZmFsc2UKCQkJCQkJCQkvV2FyaUNodUxpbmVDb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVMaW5lR2FwIDAKCQkJCQkJCQkvV2FyaUNodVN1YkxpbmVBbW91bnQKCQkJCQkJCQk8PAoJCQkJCQkJCQkvV2FyaUNodVN1YkxpbmVTY2FsZSAwLjUKCQkJCQkJCQk+PgoJCQkJCQkJCS9XYXJpQ2h1V2lkb3dBbW91bnQgMgoJCQkJCQkJCS9XYXJpQ2h1T3JwaGFuQW1vdW50IDIKCQkJCQkJCQkvV2FyaUNodUp1c3RpZmljYXRpb24gNwoJCQkJCQkJCS9UQ1lVcERvd25BZGp1c3RtZW50IDAKCQkJCQkJCQkvVENZTGVmdFJpZ2h0QWRqdXN0bWVudCAwCgkJCQkJCQkJL0xlZnRBa2kgLTEuMAoJCQkJCQkJCS9SaWdodEFraSAtMS4wCgkJCQkJCQkJL0ppRG9yaSAwCgkJCQkJCQkJL05vQnJlYWsgZmFsc2UKCQkJCQkJCQkvRmlsbENvbG9yCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCS9TdHJva2VDb2xvcgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQkvQmxlbmQKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVCbGVuZGVyCgkJCQkJCQkJPj4KCQkJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkJCQkJL0ZpbGxGaXJzdCBmYWxzZQoJCQkJCQkJCS9GaWxsT3ZlclByaW50IGZhbHNlCgkJCQkJCQkJL1N0cm9rZU92ZXJQcmludCBmYWxzZQoJCQkJCQkJCS9MaW5lQ2FwIDAKCQkJCQkJCQkvTGluZUpvaW4gMAoJCQkJCQkJCS9MaW5lV2lkdGggMC4wNDE2NwoJCQkJCQkJCS9NaXRlckxpbWl0IDAuMDQxNjcKCQkJCQkJCQkvTGluZURhc2hPZmZzZXQgMC4wCgkJCQkJCQkJL0xpbmVEYXNoQXJyYXkgWyBdCgkJCQkJCQkJL1R5cGUxRW5jb2RpbmdOYW1lcyBbIF0KCQkJCQkJCT4+CgkJCQkJCT4+CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9LZXJuUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9BbHRlcm5hdGVHbHlwaFJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3RvcnlTaGVldAoJCQk8PAoJCQkJL0FudGlBbGlhcyA0CgkJCQkvVXNlRnJhY3Rpb25hbEdseXBoV2lkdGhzIHRydWUKCQkJPj4KCQk+PgoJCS9WaWV3CgkJPDwKCQkJL0ZyYW1lcyBbCgkJCTw8CgkJCQkvUmVzb3VyY2UgMAoJCQk+PgoJCQldCgkJCS9SZW5kZXJlZERhdGEKCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL0xpbmVDb3VudCAxCgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdHJpa2VzIFsKCQkJPDwKCQkJCS9TdHJlYW1UYWcgL1BhdGhTZWxlY3RHcm91cENoYXJhY3RlcgoJCQkJL1RyYW5zZm9ybQoJCQkJPDwKCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkvQ2hpbGRQcm9jZXNzaW9uIDAKCQkJCS9DaGlsZHJlbiBbCgkJCQk8PAoJCQkJCS9TdHJlYW1UYWcgL0ZyYW1lU3RyaWtlCgkJCQkJL0ZyYW1lIDAKCQkJCQkvVHJhbnNmb3JtCgkJCQkJPDwKCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCT4+CgkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAyCgkJCQkJL0NoaWxkcmVuIFsKCQkJCQk8PAoJCQkJCQkvU3RyZWFtVGFnIC9Sb3dDb2xTdHJpa2UKCQkJCQkJL1Jvd0NvbEluZGV4IDAKCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQk8PAoJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQk+PgoJCQkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAxCgkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCTw8CgkJCQkJCQkvU3RyZWFtVGFnIC9Sb3dDb2xTdHJpa2UKCQkJCQkJCS9Sb3dDb2xJbmRleCAwCgkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQk8PAoJCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJCT4+CgkJCQkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMgoJCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJCTw8CgkJCQkJCQkJL1N0cmVhbVRhZyAvTGluZVN0cmlrZQoJCQkJCQkJCS9CYXNlbGluZSAwLjAKCQkJCQkJCQkvTGVhZGluZyAzOS44NjE5OAoJCQkJCQkJCS9FTUhlaWdodCAyMC43NzMzMQoJCQkJCQkJCS9ESGVpZ2h0IDE0LjgzMTkyCgkJCQkJCQkJL1NlbGVjdGlvbkFzY2VudCAtMTcuODAyNjEKCQkJCQkJCQkvU2VsZWN0aW9uRGVzY2VudCAxMy4zOTQzMwoJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQk8PAoJCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCQkJPj4KCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSAwLjAgNC41MDc3MSBdCgkJCQkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAxCgkJCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TZWdtZW50CgkJCQkJCQkJCS9NYXBwaW5nCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQ2hhcmFjdGVyQ291bnQgNAoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvRmlyc3RDaGFyYWN0ZXJJbmRleEluU2VnbWVudCAwCgkJCQkJCQkJCS9VbmRlcmxpbmVJbnZhbGlkYXRpb24gWyAtMjEuMTk4OSA4Ljg4NjYyIDIxLjYxNDM2IDguODg2NjIgXQoJCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvT3JpZ2luIFsgLTIxLjE5ODkgMC4wIF0KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMzAwMjEuMTk5MjIgNC41MDc3MSBdCgkJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvR2x5cGhTdHJpa2UKCQkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL09yaWdpbiBbIDAuMCA4Ljg4NjYyIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSA0Mi44MTMyNiA0LjUwNzcxIF0KCQkJCQkJCQkJCS9HbHlwaHMgWyA1NSA0MyA0NSAzIF0KCQkJCQkJCQkJCS9HbHlwaEFkanVzdG1lbnRzCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9EYXRhIFsKCQkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCQkvQmFja0ZpeGVkIDAuNDE1NDcKCQkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJCV0KCQkJCQkJCQkJCQkvUnVuTGVuZ3RocyBbIDQgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCS9SZW5kZXJlZEJvdW5kcyBbIC0yMS4xOTg5IC04LjkxNTk5IDIxLjYxNDM2IDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9WaXN1YWxCb3VuZHMgWyAtMjEuMTk4OSAtOC45MTU5OSAyMS42MTQzNiAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvSW52YWxpZGF0aW9uIFsgLTIxLjE5ODkgLTguOTE1OTkgMzIuNzI3ODMgMTMuMzk0MzMgXQoJCQkJCQkJCQkJL1NoYWRvd1N0eWxlc1J1bgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvRGF0YSBbCgkJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkJL0luZGV4IDAKCQkJCQkJCQkJCQkJL0ZvbnQgMAoJCQkJCQkJCQkJCQkvT3JpZW50YXRpb24gMAoJCQkJCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCQkJCQkvS2VyblR5cGUgMQoJCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkJXQoJCQkJCQkJCQkJCS9SdW5MZW5ndGhzIFsgNCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQldCgkJCQkJCQkJCS9Bbm5vdGF0aW9uCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvV2lkdGggMC4wCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJXQoJCQkJCQk+PgoJCQkJCQldCgkJCQkJPj4KCQkJCQldCgkJCQk+PgoJCQkJXQoJCQk+PgoJCQldCgkJPj4KCQkvT3B0aWNhbEFsaWdubWVudCBmYWxzZQoJPj4KCTw8CgkJL01vZGVsCgkJPDwKCQkJL1RleHQgKP7/AEgAVABNAEwADSkKCQkJL1BhcmFncmFwaFJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCQkvUGFyYWdyYXBoU2hlZXQKCQkJCQkJPDwKCQkJCQkJCS9OYW1lICj+/ykKCQkJCQkJCS9GZWF0dXJlcwoJCQkJCQkJPDwKCQkJCQkJCQkvSnVzdGlmaWNhdGlvbiAyCgkJCQkJCQkJL0ZpcnN0TGluZUluZGVudCAwLjAKCQkJCQkJCQkvU3RhcnRJbmRlbnQgMC4wCgkJCQkJCQkJL0VuZEluZGVudCAwLjAKCQkJCQkJCQkvU3BhY2VCZWZvcmUgMC4wCgkJCQkJCQkJL1NwYWNlQWZ0ZXIgMC4wCgkJCQkJCQkJL0Ryb3BDYXBzIDEKCQkJCQkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkJCQkJL0xlYWRpbmdUeXBlIDAKCQkJCQkJCQkvQXV0b0h5cGhlbmF0ZSB0cnVlCgkJCQkJCQkJL0h5cGhlbmF0ZWRXb3JkU2l6ZSA4CgkJCQkJCQkJL1ByZUh5cGhlbiAzCgkJCQkJCQkJL1Bvc3RIeXBoZW4gMwoJCQkJCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgMgoJCQkJCQkJCS9ab25lIDM2LjAKCQkJCQkJCQkvSHlwaGVuYXRlQ2FwaXRhbGl6ZWQgdHJ1ZQoJCQkJCQkJCS9IeXBoZW5hdGlvblByZWZlcmVuY2UgMC41CgkJCQkJCQkJL1dvcmRTcGFjaW5nIFsgMC44IDEuMCAxLjMzIF0KCQkJCQkJCQkvTGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJCQkJCS9TaW5nbGVXb3JkSnVzdGlmaWNhdGlvbiA2CgkJCQkJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCQkJCQkvQXV0b1RDWSAxCgkJCQkJCQkJL0tlZXBUb2dldGhlciB0cnVlCgkJCQkJCQkJL0J1cmFzYWdhcmlUeXBlIDAKCQkJCQkJCQkvS2luc29rdU9yZGVyIDAKCQkJCQkJCQkvS3VyaWthZXNoaU1vamlTaG9yaSBmYWxzZQoJCQkJCQkJCS9LaW5zb2t1IC9uaWwKCQkJCQkJCQkvTW9qaUt1bWlUYWJsZSAvbmlsCgkJCQkJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCQkJCQkJL1RhYlN0b3BzCgkJCQkJCQkJPDwKCQkJCQkJCQk+PgoJCQkJCQkJCS9EZWZhdWx0VGFiV2lkdGggMzYuMAoJCQkJCQkJCS9EZWZhdWx0U3R5bGUKCQkJCQkJCQk8PAoJCQkJCQkJCQkvRmlsbENvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9TdHJva2VDb2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkJCT4+CgkJCQkJCQk+PgoJCQkJCQkJL1BhcmVudCAwCgkJCQkJCT4+CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDUKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdHlsZVJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCQkvU3R5bGVTaGVldAoJCQkJCQk8PAoJCQkJCQkJL05hbWUgKP7/KQoJCQkJCQkJL1BhcmVudCAwCgkJCQkJCQkvRmVhdHVyZXMKCQkJCQkJCTw8CgkJCQkJCQkJL0ZvbnQgMAoJCQkJCQkJCS9Gb250U2l6ZSAyMC43NzMzMQoJCQkJCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkJCQkJL0F1dG9MZWFkaW5nIGZhbHNlCgkJCQkJCQkJL0xlYWRpbmcgMzkuODU1MDgKCQkJCQkJCQkvSG9yaXpvbnRhbFNjYWxlIDAuOTUKCQkJCQkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCQkJCQkvVHJhY2tpbmcgMAoJCQkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCQkJL0NoYXJhY3RlclJvdGF0aW9uIDAuMAoJCQkJCQkJCS9BdXRvS2VybiAxCgkJCQkJCQkJL0ZvbnRDYXBzIDAKCQkJCQkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCQkJCQkvRm9udE9UUG9zaXRpb24gMAoJCQkJCQkJCS9TdHJpa2V0aHJvdWdoUG9zaXRpb24gMAoJCQkJCQkJCS9VbmRlcmxpbmVQb3NpdGlvbiAwCgkJCQkJCQkJL1VuZGVybGluZU9mZnNldCAwLjAKCQkJCQkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCQkJCQkvRGlzY3JldGlvbmFyeUxpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9Db250ZXh0dWFsTGlnYXR1cmVzIGZhbHNlCgkJCQkJCQkJL0FsdGVybmF0ZUxpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9PbGRTdHlsZSBmYWxzZQoJCQkJCQkJCS9GcmFjdGlvbnMgZmFsc2UKCQkJCQkJCQkvT3JkaW5hbHMgZmFsc2UKCQkJCQkJCQkvU3dhc2ggZmFsc2UKCQkJCQkJCQkvVGl0bGluZyBmYWxzZQoJCQkJCQkJCS9Db25uZWN0aW9uRm9ybXMgZmFsc2UKCQkJCQkJCQkvU3R5bGlzdGljQWx0ZXJuYXRlcyBmYWxzZQoJCQkJCQkJCS9Pcm5hbWVudHMgZmFsc2UKCQkJCQkJCQkvRmlndXJlU3R5bGUgMAoJCQkJCQkJCS9Qcm9wb3J0aW9uYWxNZXRyaWNzIGZhbHNlCgkJCQkJCQkJL0thbmEgZmFsc2UKCQkJCQkJCQkvSXRhbGljcyBmYWxzZQoJCQkJCQkJCS9SdWJ5IGZhbHNlCgkJCQkJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDEKCQkJCQkJCQkvVHN1bWUgMC4wCgkJCQkJCQkJL1N0eWxlUnVuQWxpZ25tZW50IDIKCQkJCQkJCQkvTGFuZ3VhZ2UgMAoJCQkJCQkJCS9KYXBhbmVzZUFsdGVybmF0ZUZlYXR1cmUgMAoJCQkJCQkJCS9FbmFibGVXYXJpQ2h1IGZhbHNlCgkJCQkJCQkJL1dhcmlDaHVMaW5lQ291bnQgMgoJCQkJCQkJCS9XYXJpQ2h1TGluZUdhcCAwCgkJCQkJCQkJL1dhcmlDaHVTdWJMaW5lQW1vdW50CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1dhcmlDaHVTdWJMaW5lU2NhbGUgMC41CgkJCQkJCQkJPj4KCQkJCQkJCQkvV2FyaUNodVdpZG93QW1vdW50IDIKCQkJCQkJCQkvV2FyaUNodU9ycGhhbkFtb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVKdXN0aWZpY2F0aW9uIDcKCQkJCQkJCQkvVENZVXBEb3duQWRqdXN0bWVudCAwCgkJCQkJCQkJL1RDWUxlZnRSaWdodEFkanVzdG1lbnQgMAoJCQkJCQkJCS9MZWZ0QWtpIC0xLjAKCQkJCQkJCQkvUmlnaHRBa2kgLTEuMAoJCQkJCQkJCS9KaURvcmkgMAoJCQkJCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJL0JsZW5kCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlQmxlbmRlcgoJCQkJCQkJCT4+CgkJCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkJCS9GaWxsRmlyc3QgZmFsc2UKCQkJCQkJCQkvRmlsbE92ZXJQcmludCBmYWxzZQoJCQkJCQkJCS9TdHJva2VPdmVyUHJpbnQgZmFsc2UKCQkJCQkJCQkvTGluZUNhcCAwCgkJCQkJCQkJL0xpbmVKb2luIDAKCQkJCQkJCQkvTGluZVdpZHRoIDAuMDQxNjcKCQkJCQkJCQkvTWl0ZXJMaW1pdCAwLjA0MTY3CgkJCQkJCQkJL0xpbmVEYXNoT2Zmc2V0IDAuMAoJCQkJCQkJCS9MaW5lRGFzaEFycmF5IFsgXQoJCQkJCQkJCS9UeXBlMUVuY29kaW5nTmFtZXMgWyBdCgkJCQkJCQk+PgoJCQkJCQk+PgoJCQkJCT4+CgkJCQkJL0xlbmd0aCA1CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvS2VyblJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCT4+CgkJCQkJL0xlbmd0aCA1CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvQWx0ZXJuYXRlR2x5cGhSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJCS9MZW5ndGggNQoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL1N0b3J5U2hlZXQKCQkJPDwKCQkJCS9BbnRpQWxpYXMgNAoJCQkJL1VzZUZyYWN0aW9uYWxHbHlwaFdpZHRocyB0cnVlCgkJCT4+CgkJPj4KCQkvVmlldwoJCTw8CgkJCS9GcmFtZXMgWwoJCQk8PAoJCQkJL1Jlc291cmNlIDEKCQkJPj4KCQkJXQoJCQkvUmVuZGVyZWREYXRhCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJCS9MaW5lQ291bnQgMQoJCQkJCT4+CgkJCQkJL0xlbmd0aCA1CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3RyaWtlcyBbCgkJCTw8CgkJCQkvU3RyZWFtVGFnIC9QYXRoU2VsZWN0R3JvdXBDaGFyYWN0ZXIKCQkJCS9UcmFuc2Zvcm0KCQkJCTw8CgkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJL0NoaWxkUHJvY2Vzc2lvbiAwCgkJCQkvQ2hpbGRyZW4gWwoJCQkJPDwKCQkJCQkvU3RyZWFtVGFnIC9GcmFtZVN0cmlrZQoJCQkJCS9GcmFtZSAxCgkJCQkJL1RyYW5zZm9ybQoJCQkJCTw8CgkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQk+PgoJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCS9DaGlsZFByb2Nlc3Npb24gMgoJCQkJCS9DaGlsZHJlbiBbCgkJCQkJPDwKCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCS9Sb3dDb2xJbmRleCAwCgkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJPDwKCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJPj4KCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQk8PAoJCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCQkvUm93Q29sSW5kZXggMAoJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJPDwKCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCQk+PgoJCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDIKCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQk8PAoJCQkJCQkJCS9TdHJlYW1UYWcgL0xpbmVTdHJpa2UKCQkJCQkJCQkvQmFzZWxpbmUgMC4wCgkJCQkJCQkJL0xlYWRpbmcgMzkuODU1MDgKCQkJCQkJCQkvRU1IZWlnaHQgMjAuNzczMzEKCQkJCQkJCQkvREhlaWdodCAxNC44MzE5MgoJCQkJCQkJCS9TZWxlY3Rpb25Bc2NlbnQgLTE3LjgwMjYxCgkJCQkJCQkJL1NlbGVjdGlvbkRlc2NlbnQgMTMuMzk0MzMKCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJPDwKCQkJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQkJCT4+CgkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMC4wIDQuNTA3NzEgXQoJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2VnbWVudAoJCQkJCQkJCQkvTWFwcGluZwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0NoYXJhY3RlckNvdW50IDUKCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpcnN0Q2hhcmFjdGVySW5kZXhJblNlZ21lbnQgMAoJCQkJCQkJCQkvVW5kZXJsaW5lSW52YWxpZGF0aW9uIFsgLTI4LjE0MTMzIDguODg2NjIgMjguMTQxMzMgOC44ODY2MiBdCgkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9PcmlnaW4gWyAtMjguMTQxMzMgMC4wIF0KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMzAwMjguMTQwNjMgNC41MDc3MSBdCgkJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvR2x5cGhTdHJpa2UKCQkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL09yaWdpbiBbIDAuMCA4Ljg4NjYyIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSA1Ni4yODI2NSA0LjUwNzcxIF0KCQkJCQkJCQkJCS9HbHlwaHMgWyA0NyA1OSA1MiA1MSAzIF0KCQkJCQkJCQkJCS9HbHlwaEFkanVzdG1lbnRzCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9EYXRhIFsKCQkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkJXQoJCQkJCQkJCQkJCS9SdW5MZW5ndGhzIFsgNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJL1JlbmRlcmVkQm91bmRzIFsgLTI4LjE0MTMzIC04LjkxNTk5IDI4LjE0MTMzIDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9WaXN1YWxCb3VuZHMgWyAtMjguMTQxMzMgLTguOTE1OTkgMjguMTQxMzMgMTMuMzk0MzMgXQoJCQkJCQkJCQkJL0ludmFsaWRhdGlvbiBbIC0yOC4xNDEzMyAtOC45MTU5OSAzOC42OTkxMyAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvU2hhZG93U3R5bGVzUnVuCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9EYXRhIFsKCQkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCQkvSW5kZXggMAoJCQkJCQkJCQkJCQkvRm9udCAwCgkJCQkJCQkJCQkJCS9TY2FsZSBbIDAuOTUgMS4wIF0KCQkJCQkJCQkJCQkJL09yaWVudGF0aW9uIDAKCQkJCQkJCQkJCQkJL0Jhc2VsaW5lU2hpZnQgLTguODg2NjIKCQkJCQkJCQkJCQkJL0tlcm5UeXBlIDEKCQkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJCV0KCQkJCQkJCQkJCQkvUnVuTGVuZ3RocyBbIDUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJXQoJCQkJCQkJCQkvQW5ub3RhdGlvbgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1dpZHRoIDAuMAoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCV0KCQkJCQkJPj4KCQkJCQkJXQoJCQkJCT4+CgkJCQkJXQoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJXQoJCT4+CgkJL09wdGljYWxBbGlnbm1lbnQgZmFsc2UKCT4+Cgk8PAoJCS9Nb2RlbAoJCTw8CgkJCS9UZXh0ICj+/wBQAEgAUAANKQoJCQkvUGFyYWdyYXBoUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJCS9QYXJhZ3JhcGhTaGVldAoJCQkJCQk8PAoJCQkJCQkJL05hbWUgKP7/KQoJCQkJCQkJL0ZlYXR1cmVzCgkJCQkJCQk8PAoJCQkJCQkJCS9KdXN0aWZpY2F0aW9uIDIKCQkJCQkJCQkvRmlyc3RMaW5lSW5kZW50IDAuMAoJCQkJCQkJCS9TdGFydEluZGVudCAwLjAKCQkJCQkJCQkvRW5kSW5kZW50IDAuMAoJCQkJCQkJCS9TcGFjZUJlZm9yZSAwLjAKCQkJCQkJCQkvU3BhY2VBZnRlciAwLjAKCQkJCQkJCQkvRHJvcENhcHMgMQoJCQkJCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCQkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCQkJCQkvSHlwaGVuYXRlZFdvcmRTaXplIDgKCQkJCQkJCQkvUHJlSHlwaGVuIDMKCQkJCQkJCQkvUG9zdEh5cGhlbiAzCgkJCQkJCQkJL0NvbnNlY3V0aXZlSHlwaGVucyAyCgkJCQkJCQkJL1pvbmUgMzYuMAoJCQkJCQkJCS9IeXBoZW5hdGVDYXBpdGFsaXplZCB0cnVlCgkJCQkJCQkJL0h5cGhlbmF0aW9uUHJlZmVyZW5jZSAwLjUKCQkJCQkJCQkvV29yZFNwYWNpbmcgWyAwLjggMS4wIDEuMzMgXQoJCQkJCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkJCQkJL1NpbmdsZVdvcmRKdXN0aWZpY2F0aW9uIDYKCQkJCQkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJCQkJCS9BdXRvVENZIDEKCQkJCQkJCQkvS2VlcFRvZ2V0aGVyIHRydWUKCQkJCQkJCQkvQnVyYXNhZ2FyaVR5cGUgMAoJCQkJCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJCQkJCS9LdXJpa2Flc2hpTW9qaVNob3JpIGZhbHNlCgkJCQkJCQkJL0tpbnNva3UgL25pbAoJCQkJCQkJCS9Nb2ppS3VtaVRhYmxlIC9uaWwKCQkJCQkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJCQkJCQkvVGFiU3RvcHMKCQkJCQkJCQk8PAoJCQkJCQkJCT4+CgkJCQkJCQkJL0RlZmF1bHRUYWJXaWR0aCAzNi4wCgkJCQkJCQkJL0RlZmF1bHRTdHlsZQoJCQkJCQkJCTw8CgkJCQkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkJCQkJPj4KCQkJCQkJCT4+CgkJCQkJCQkvUGFyZW50IDAKCQkJCQkJPj4KCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL1N0eWxlUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJCS9TdHlsZVNoZWV0CgkJCQkJCTw8CgkJCQkJCQkvTmFtZSAo/v8pCgkJCQkJCQkvUGFyZW50IDAKCQkJCQkJCS9GZWF0dXJlcwoJCQkJCQkJPDwKCQkJCQkJCQkvRm9udCAwCgkJCQkJCQkJL0ZvbnRTaXplIDIwLjc3MzMxCgkJCQkJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCQkJCQkvQXV0b0xlYWRpbmcgZmFsc2UKCQkJCQkJCQkvTGVhZGluZyAzOS44NTUwOAoJCQkJCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkJCQkJL1RyYWNraW5nIDIwCgkJCQkJCQkJL0Jhc2VsaW5lU2hpZnQgLTguODg2NjIKCQkJCQkJCQkvQ2hhcmFjdGVyUm90YXRpb24gMC4wCgkJCQkJCQkJL0F1dG9LZXJuIDEKCQkJCQkJCQkvRm9udENhcHMgMAoJCQkJCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJCQkJCS9Gb250T1RQb3NpdGlvbiAwCgkJCQkJCQkJL1N0cmlrZXRocm91Z2hQb3NpdGlvbiAwCgkJCQkJCQkJL1VuZGVybGluZVBvc2l0aW9uIDAKCQkJCQkJCQkvVW5kZXJsaW5lT2Zmc2V0IDAuMAoJCQkJCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJCQkJCS9EaXNjcmV0aW9uYXJ5TGlnYXR1cmVzIGZhbHNlCgkJCQkJCQkJL0NvbnRleHR1YWxMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvQWx0ZXJuYXRlTGlnYXR1cmVzIGZhbHNlCgkJCQkJCQkJL09sZFN0eWxlIGZhbHNlCgkJCQkJCQkJL0ZyYWN0aW9ucyBmYWxzZQoJCQkJCQkJCS9PcmRpbmFscyBmYWxzZQoJCQkJCQkJCS9Td2FzaCBmYWxzZQoJCQkJCQkJCS9UaXRsaW5nIGZhbHNlCgkJCQkJCQkJL0Nvbm5lY3Rpb25Gb3JtcyBmYWxzZQoJCQkJCQkJCS9TdHlsaXN0aWNBbHRlcm5hdGVzIGZhbHNlCgkJCQkJCQkJL09ybmFtZW50cyBmYWxzZQoJCQkJCQkJCS9GaWd1cmVTdHlsZSAwCgkJCQkJCQkJL1Byb3BvcnRpb25hbE1ldHJpY3MgZmFsc2UKCQkJCQkJCQkvS2FuYSBmYWxzZQoJCQkJCQkJCS9JdGFsaWNzIGZhbHNlCgkJCQkJCQkJL1J1YnkgZmFsc2UKCQkJCQkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMQoJCQkJCQkJCS9Uc3VtZSAwLjAKCQkJCQkJCQkvU3R5bGVSdW5BbGlnbm1lbnQgMgoJCQkJCQkJCS9MYW5ndWFnZSAwCgkJCQkJCQkJL0phcGFuZXNlQWx0ZXJuYXRlRmVhdHVyZSAwCgkJCQkJCQkJL0VuYWJsZVdhcmlDaHUgZmFsc2UKCQkJCQkJCQkvV2FyaUNodUxpbmVDb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVMaW5lR2FwIDAKCQkJCQkJCQkvV2FyaUNodVN1YkxpbmVBbW91bnQKCQkJCQkJCQk8PAoJCQkJCQkJCQkvV2FyaUNodVN1YkxpbmVTY2FsZSAwLjUKCQkJCQkJCQk+PgoJCQkJCQkJCS9XYXJpQ2h1V2lkb3dBbW91bnQgMgoJCQkJCQkJCS9XYXJpQ2h1T3JwaGFuQW1vdW50IDIKCQkJCQkJCQkvV2FyaUNodUp1c3RpZmljYXRpb24gNwoJCQkJCQkJCS9UQ1lVcERvd25BZGp1c3RtZW50IDAKCQkJCQkJCQkvVENZTGVmdFJpZ2h0QWRqdXN0bWVudCAwCgkJCQkJCQkJL0xlZnRBa2kgLTEuMAoJCQkJCQkJCS9SaWdodEFraSAtMS4wCgkJCQkJCQkJL0ppRG9yaSAwCgkJCQkJCQkJL05vQnJlYWsgZmFsc2UKCQkJCQkJCQkvRmlsbENvbG9yCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCS9TdHJva2VDb2xvcgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQkvQmxlbmQKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVCbGVuZGVyCgkJCQkJCQkJPj4KCQkJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkJCQkJL0ZpbGxGaXJzdCBmYWxzZQoJCQkJCQkJCS9GaWxsT3ZlclByaW50IGZhbHNlCgkJCQkJCQkJL1N0cm9rZU92ZXJQcmludCBmYWxzZQoJCQkJCQkJCS9MaW5lQ2FwIDAKCQkJCQkJCQkvTGluZUpvaW4gMAoJCQkJCQkJCS9MaW5lV2lkdGggMC4wNDE2NwoJCQkJCQkJCS9NaXRlckxpbWl0IDAuMDQxNjcKCQkJCQkJCQkvTGluZURhc2hPZmZzZXQgMC4wCgkJCQkJCQkJL0xpbmVEYXNoQXJyYXkgWyBdCgkJCQkJCQkJL1R5cGUxRW5jb2RpbmdOYW1lcyBbIF0KCQkJCQkJCT4+CgkJCQkJCT4+CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9LZXJuUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9BbHRlcm5hdGVHbHlwaFJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3RvcnlTaGVldAoJCQk8PAoJCQkJL0FudGlBbGlhcyA0CgkJCQkvVXNlRnJhY3Rpb25hbEdseXBoV2lkdGhzIHRydWUKCQkJPj4KCQk+PgoJCS9WaWV3CgkJPDwKCQkJL0ZyYW1lcyBbCgkJCTw8CgkJCQkvUmVzb3VyY2UgMgoJCQk+PgoJCQldCgkJCS9SZW5kZXJlZERhdGEKCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL0xpbmVDb3VudCAxCgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdHJpa2VzIFsKCQkJPDwKCQkJCS9TdHJlYW1UYWcgL1BhdGhTZWxlY3RHcm91cENoYXJhY3RlcgoJCQkJL1RyYW5zZm9ybQoJCQkJPDwKCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkvQ2hpbGRQcm9jZXNzaW9uIDAKCQkJCS9DaGlsZHJlbiBbCgkJCQk8PAoJCQkJCS9TdHJlYW1UYWcgL0ZyYW1lU3RyaWtlCgkJCQkJL0ZyYW1lIDIKCQkJCQkvVHJhbnNmb3JtCgkJCQkJPDwKCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCT4+CgkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAyCgkJCQkJL0NoaWxkcmVuIFsKCQkJCQk8PAoJCQkJCQkvU3RyZWFtVGFnIC9Sb3dDb2xTdHJpa2UKCQkJCQkJL1Jvd0NvbEluZGV4IDAKCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQk8PAoJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQk+PgoJCQkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAxCgkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCTw8CgkJCQkJCQkvU3RyZWFtVGFnIC9Sb3dDb2xTdHJpa2UKCQkJCQkJCS9Sb3dDb2xJbmRleCAwCgkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQk8PAoJCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJCT4+CgkJCQkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMgoJCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJCTw8CgkJCQkJCQkJL1N0cmVhbVRhZyAvTGluZVN0cmlrZQoJCQkJCQkJCS9CYXNlbGluZSAwLjAKCQkJCQkJCQkvTGVhZGluZyAzOS44NTUwOAoJCQkJCQkJCS9FTUhlaWdodCAyMC43NzMzMQoJCQkJCQkJCS9ESGVpZ2h0IDE0LjgzMTkyCgkJCQkJCQkJL1NlbGVjdGlvbkFzY2VudCAtMTcuODAyNjEKCQkJCQkJCQkvU2VsZWN0aW9uRGVzY2VudCAxMy4zOTQzMwoJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQk8PAoJCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCQkJPj4KCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSAwLjAgNC41MDc3MSBdCgkJCQkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAxCgkJCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TZWdtZW50CgkJCQkJCQkJCS9NYXBwaW5nCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQ2hhcmFjdGVyQ291bnQgNAoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvRmlyc3RDaGFyYWN0ZXJJbmRleEluU2VnbWVudCAwCgkJCQkJCQkJCS9VbmRlcmxpbmVJbnZhbGlkYXRpb24gWyAtMjEuOTY3NTcgOC44ODY2MiAyMi4zODMwMyA4Ljg4NjYyIF0KCQkJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL09yaWdpbiBbIC0yMS45Njc1NyAwLjAgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSAzMDAyMS45NjY4IDQuNTA3NzEgXQoJCQkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDEKCQkJCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL0dseXBoU3RyaWtlCgkJCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9PcmlnaW4gWyAwLjAgOC44ODY2MiBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgNDQuMzUwNiA0LjUwNzcxIF0KCQkJCQkJCQkJCS9HbHlwaHMgWyA1NSA0NyA1NSAzIF0KCQkJCQkJCQkJCS9HbHlwaEFkanVzdG1lbnRzCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9EYXRhIFsKCQkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCQkvQmFja0ZpeGVkIDAuNDE1NDcKCQkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJCV0KCQkJCQkJCQkJCQkvUnVuTGVuZ3RocyBbIDQgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCS9SZW5kZXJlZEJvdW5kcyBbIC0yMS45Njc1NyAtOC45MTU5OSAyMi4zODMwMyAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvVmlzdWFsQm91bmRzIFsgLTIxLjk2NzU3IC04LjkxNTk5IDIyLjM4MzAzIDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9JbnZhbGlkYXRpb24gWyAtMjEuOTY3NTcgLTguOTE1OTkgMzMuNDk2NSAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvU2hhZG93U3R5bGVzUnVuCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9EYXRhIFsKCQkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCQkvSW5kZXggMAoJCQkJCQkJCQkJCQkvRm9udCAwCgkJCQkJCQkJCQkJCS9PcmllbnRhdGlvbiAwCgkJCQkJCQkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCQkJCQkJCS9LZXJuVHlwZSAxCgkJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCQldCgkJCQkJCQkJCQkJL1J1bkxlbmd0aHMgWyA0IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJCV0KCQkJCQkJCQkJL0Fubm90YXRpb24KCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9XaWR0aCAwLjAKCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQldCgkJCQkJCT4+CgkJCQkJCV0KCQkJCQk+PgoJCQkJCV0KCQkJCT4+CgkJCQldCgkJCT4+CgkJCV0KCQk+PgoJCS9PcHRpY2FsQWxpZ25tZW50IGZhbHNlCgk+PgoJPDwKCQkvTW9kZWwKCQk8PAoJCQkvVGV4dCAo/v8AWABNAEwADSkKCQkJL1BhcmFncmFwaFJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCQkvUGFyYWdyYXBoU2hlZXQKCQkJCQkJPDwKCQkJCQkJCS9OYW1lICj+/ykKCQkJCQkJCS9GZWF0dXJlcwoJCQkJCQkJPDwKCQkJCQkJCQkvSnVzdGlmaWNhdGlvbiAyCgkJCQkJCQkJL0ZpcnN0TGluZUluZGVudCAwLjAKCQkJCQkJCQkvU3RhcnRJbmRlbnQgMC4wCgkJCQkJCQkJL0VuZEluZGVudCAwLjAKCQkJCQkJCQkvU3BhY2VCZWZvcmUgMC4wCgkJCQkJCQkJL1NwYWNlQWZ0ZXIgMC4wCgkJCQkJCQkJL0Ryb3BDYXBzIDEKCQkJCQkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkJCQkJL0xlYWRpbmdUeXBlIDAKCQkJCQkJCQkvQXV0b0h5cGhlbmF0ZSB0cnVlCgkJCQkJCQkJL0h5cGhlbmF0ZWRXb3JkU2l6ZSA4CgkJCQkJCQkJL1ByZUh5cGhlbiAzCgkJCQkJCQkJL1Bvc3RIeXBoZW4gMwoJCQkJCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgMgoJCQkJCQkJCS9ab25lIDM2LjAKCQkJCQkJCQkvSHlwaGVuYXRlQ2FwaXRhbGl6ZWQgdHJ1ZQoJCQkJCQkJCS9IeXBoZW5hdGlvblByZWZlcmVuY2UgMC41CgkJCQkJCQkJL1dvcmRTcGFjaW5nIFsgMC44IDEuMCAxLjMzIF0KCQkJCQkJCQkvTGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJCQkJCS9TaW5nbGVXb3JkSnVzdGlmaWNhdGlvbiA2CgkJCQkJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCQkJCQkvQXV0b1RDWSAxCgkJCQkJCQkJL0tlZXBUb2dldGhlciB0cnVlCgkJCQkJCQkJL0J1cmFzYWdhcmlUeXBlIDAKCQkJCQkJCQkvS2luc29rdU9yZGVyIDAKCQkJCQkJCQkvS3VyaWthZXNoaU1vamlTaG9yaSBmYWxzZQoJCQkJCQkJCS9LaW5zb2t1IC9uaWwKCQkJCQkJCQkvTW9qaUt1bWlUYWJsZSAvbmlsCgkJCQkJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCQkJCQkJL1RhYlN0b3BzCgkJCQkJCQkJPDwKCQkJCQkJCQk+PgoJCQkJCQkJCS9EZWZhdWx0VGFiV2lkdGggMzYuMAoJCQkJCQkJCS9EZWZhdWx0U3R5bGUKCQkJCQkJCQk8PAoJCQkJCQkJCQkvRmlsbENvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9TdHJva2VDb2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkJCT4+CgkJCQkJCQk+PgoJCQkJCQkJL1BhcmVudCAwCgkJCQkJCT4+CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdHlsZVJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCQkvU3R5bGVTaGVldAoJCQkJCQk8PAoJCQkJCQkJL05hbWUgKP7/KQoJCQkJCQkJL1BhcmVudCAwCgkJCQkJCQkvRmVhdHVyZXMKCQkJCQkJCTw8CgkJCQkJCQkJL0ZvbnQgMAoJCQkJCQkJCS9Gb250U2l6ZSAyMC43NzMzMQoJCQkJCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkJCQkJL0F1dG9MZWFkaW5nIGZhbHNlCgkJCQkJCQkJL0xlYWRpbmcgMzkuODU1MDgKCQkJCQkJCQkvSG9yaXpvbnRhbFNjYWxlIDEuMAoJCQkJCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJCQkJCS9UcmFja2luZyAyMAoJCQkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCQkJL0NoYXJhY3RlclJvdGF0aW9uIDAuMAoJCQkJCQkJCS9BdXRvS2VybiAxCgkJCQkJCQkJL0ZvbnRDYXBzIDAKCQkJCQkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCQkJCQkvRm9udE9UUG9zaXRpb24gMAoJCQkJCQkJCS9TdHJpa2V0aHJvdWdoUG9zaXRpb24gMAoJCQkJCQkJCS9VbmRlcmxpbmVQb3NpdGlvbiAwCgkJCQkJCQkJL1VuZGVybGluZU9mZnNldCAwLjAKCQkJCQkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCQkJCQkvRGlzY3JldGlvbmFyeUxpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9Db250ZXh0dWFsTGlnYXR1cmVzIGZhbHNlCgkJCQkJCQkJL0FsdGVybmF0ZUxpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9PbGRTdHlsZSBmYWxzZQoJCQkJCQkJCS9GcmFjdGlvbnMgZmFsc2UKCQkJCQkJCQkvT3JkaW5hbHMgZmFsc2UKCQkJCQkJCQkvU3dhc2ggZmFsc2UKCQkJCQkJCQkvVGl0bGluZyBmYWxzZQoJCQkJCQkJCS9Db25uZWN0aW9uRm9ybXMgZmFsc2UKCQkJCQkJCQkvU3R5bGlzdGljQWx0ZXJuYXRlcyBmYWxzZQoJCQkJCQkJCS9Pcm5hbWVudHMgZmFsc2UKCQkJCQkJCQkvRmlndXJlU3R5bGUgMAoJCQkJCQkJCS9Qcm9wb3J0aW9uYWxNZXRyaWNzIGZhbHNlCgkJCQkJCQkJL0thbmEgZmFsc2UKCQkJCQkJCQkvSXRhbGljcyBmYWxzZQoJCQkJCQkJCS9SdWJ5IGZhbHNlCgkJCQkJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDEKCQkJCQkJCQkvVHN1bWUgMC4wCgkJCQkJCQkJL1N0eWxlUnVuQWxpZ25tZW50IDIKCQkJCQkJCQkvTGFuZ3VhZ2UgMAoJCQkJCQkJCS9KYXBhbmVzZUFsdGVybmF0ZUZlYXR1cmUgMAoJCQkJCQkJCS9FbmFibGVXYXJpQ2h1IGZhbHNlCgkJCQkJCQkJL1dhcmlDaHVMaW5lQ291bnQgMgoJCQkJCQkJCS9XYXJpQ2h1TGluZUdhcCAwCgkJCQkJCQkJL1dhcmlDaHVTdWJMaW5lQW1vdW50CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1dhcmlDaHVTdWJMaW5lU2NhbGUgMC41CgkJCQkJCQkJPj4KCQkJCQkJCQkvV2FyaUNodVdpZG93QW1vdW50IDIKCQkJCQkJCQkvV2FyaUNodU9ycGhhbkFtb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVKdXN0aWZpY2F0aW9uIDcKCQkJCQkJCQkvVENZVXBEb3duQWRqdXN0bWVudCAwCgkJCQkJCQkJL1RDWUxlZnRSaWdodEFkanVzdG1lbnQgMAoJCQkJCQkJCS9MZWZ0QWtpIC0xLjAKCQkJCQkJCQkvUmlnaHRBa2kgLTEuMAoJCQkJCQkJCS9KaURvcmkgMAoJCQkJCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJL0JsZW5kCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlQmxlbmRlcgoJCQkJCQkJCT4+CgkJCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkJCS9GaWxsRmlyc3QgZmFsc2UKCQkJCQkJCQkvRmlsbE92ZXJQcmludCBmYWxzZQoJCQkJCQkJCS9TdHJva2VPdmVyUHJpbnQgZmFsc2UKCQkJCQkJCQkvTGluZUNhcCAwCgkJCQkJCQkJL0xpbmVKb2luIDAKCQkJCQkJCQkvTGluZVdpZHRoIDAuMDQxNjcKCQkJCQkJCQkvTWl0ZXJMaW1pdCAwLjA0MTY3CgkJCQkJCQkJL0xpbmVEYXNoT2Zmc2V0IDAuMAoJCQkJCQkJCS9MaW5lRGFzaEFycmF5IFsgXQoJCQkJCQkJCS9UeXBlMUVuY29kaW5nTmFtZXMgWyBdCgkJCQkJCQk+PgoJCQkJCQk+PgoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvS2VyblJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvQWx0ZXJuYXRlR2x5cGhSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL1N0b3J5U2hlZXQKCQkJPDwKCQkJCS9BbnRpQWxpYXMgNAoJCQkJL1VzZUZyYWN0aW9uYWxHbHlwaFdpZHRocyB0cnVlCgkJCT4+CgkJPj4KCQkvVmlldwoJCTw8CgkJCS9GcmFtZXMgWwoJCQk8PAoJCQkJL1Jlc291cmNlIDMKCQkJPj4KCQkJXQoJCQkvUmVuZGVyZWREYXRhCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJCS9MaW5lQ291bnQgMQoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3RyaWtlcyBbCgkJCTw8CgkJCQkvU3RyZWFtVGFnIC9QYXRoU2VsZWN0R3JvdXBDaGFyYWN0ZXIKCQkJCS9UcmFuc2Zvcm0KCQkJCTw8CgkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJL0NoaWxkUHJvY2Vzc2lvbiAwCgkJCQkvQ2hpbGRyZW4gWwoJCQkJPDwKCQkJCQkvU3RyZWFtVGFnIC9GcmFtZVN0cmlrZQoJCQkJCS9GcmFtZSAzCgkJCQkJL1RyYW5zZm9ybQoJCQkJCTw8CgkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQk+PgoJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCS9DaGlsZFByb2Nlc3Npb24gMgoJCQkJCS9DaGlsZHJlbiBbCgkJCQkJPDwKCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCS9Sb3dDb2xJbmRleCAwCgkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJPDwKCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJPj4KCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQk8PAoJCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCQkvUm93Q29sSW5kZXggMAoJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJPDwKCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCQk+PgoJCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDIKCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQk8PAoJCQkJCQkJCS9TdHJlYW1UYWcgL0xpbmVTdHJpa2UKCQkJCQkJCQkvQmFzZWxpbmUgMC4wCgkJCQkJCQkJL0xlYWRpbmcgMzkuODU1MDgKCQkJCQkJCQkvRU1IZWlnaHQgMjAuNzczMzEKCQkJCQkJCQkvREhlaWdodCAxNC44MzE5MgoJCQkJCQkJCS9TZWxlY3Rpb25Bc2NlbnQgLTE3LjgwMjYxCgkJCQkJCQkJL1NlbGVjdGlvbkRlc2NlbnQgMTMuMzk0MzMKCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJPDwKCQkJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQkJCT4+CgkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMC4wIDQuNTA3NzEgXQoJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2VnbWVudAoJCQkJCQkJCQkvTWFwcGluZwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0NoYXJhY3RlckNvdW50IDQKCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpcnN0Q2hhcmFjdGVySW5kZXhJblNlZ21lbnQgMAoJCQkJCQkJCQkvVW5kZXJsaW5lSW52YWxpZGF0aW9uIFsgLTIyLjkyMzA4IDguODg2NjIgMjMuMzM4NTUgOC44ODY2MiBdCgkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9PcmlnaW4gWyAtMjIuOTIzMDggMC4wIF0KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMzAwMjIuOTIzODMgNC41MDc3MSBdCgkJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvR2x5cGhTdHJpa2UKCQkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL09yaWdpbiBbIDAuMCA4Ljg4NjYyIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSA0Ni4yNjE2MyA0LjUwNzcxIF0KCQkJCQkJCQkJCS9HbHlwaHMgWyA2MyA1MiA1MSAzIF0KCQkJCQkJCQkJCS9HbHlwaEFkanVzdG1lbnRzCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9EYXRhIFsKCQkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCQkvQmFja0ZpeGVkIDAuNDE1NDcKCQkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJCV0KCQkJCQkJCQkJCQkvUnVuTGVuZ3RocyBbIDQgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCS9SZW5kZXJlZEJvdW5kcyBbIC0yMy4wMjY3MyAtOC45MTU5OSAyMy4zMzg1NSAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvVmlzdWFsQm91bmRzIFsgLTIzLjAyNjczIC04LjkxNTk5IDIzLjMzODU1IDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9JbnZhbGlkYXRpb24gWyAtMjMuMDI2NzMgLTguOTE1OTkgMzQuNDUyMDEgMTMuMzk0MzMgXQoJCQkJCQkJCQkJL1NoYWRvd1N0eWxlc1J1bgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvRGF0YSBbCgkJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkJL0luZGV4IDAKCQkJCQkJCQkJCQkJL0ZvbnQgMAoJCQkJCQkJCQkJCQkvT3JpZW50YXRpb24gMAoJCQkJCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCQkJCQkvS2VyblR5cGUgMQoJCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkJXQoJCQkJCQkJCQkJCS9SdW5MZW5ndGhzIFsgNCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQldCgkJCQkJCQkJCS9Bbm5vdGF0aW9uCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvV2lkdGggMC4wCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJXQoJCQkJCQk+PgoJCQkJCQldCgkJCQkJPj4KCQkJCQldCgkJCQk+PgoJCQkJXQoJCQk+PgoJCQldCgkJPj4KCQkvT3B0aWNhbEFsaWdubWVudCBmYWxzZQoJPj4KCTw8CgkJL01vZGVsCgkJPDwKCQkJL1RleHQgKP7/AE0AUAAzAA0pCgkJCS9QYXJhZ3JhcGhSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1BhcmFncmFwaFNoZWV0CgkJCQkJCTw8CgkJCQkJCQkvTmFtZSAo/v8pCgkJCQkJCQkvRmVhdHVyZXMKCQkJCQkJCTw8CgkJCQkJCQkJL0p1c3RpZmljYXRpb24gMgoJCQkJCQkJCS9GaXJzdExpbmVJbmRlbnQgMC4wCgkJCQkJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJCQkJCS9Ecm9wQ2FwcyAxCgkJCQkJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgOAoJCQkJCQkJCS9QcmVIeXBoZW4gMwoJCQkJCQkJCS9Qb3N0SHlwaGVuIDMKCQkJCQkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDIKCQkJCQkJCQkvWm9uZSAzNi4wCgkJCQkJCQkJL0h5cGhlbmF0ZUNhcGl0YWxpemVkIHRydWUKCQkJCQkJCQkvSHlwaGVuYXRpb25QcmVmZXJlbmNlIDAuNQoJCQkJCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCQkJCQkvU2luZ2xlV29yZEp1c3RpZmljYXRpb24gNgoJCQkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCQkJL0F1dG9UQ1kgMQoJCQkJCQkJCS9LZWVwVG9nZXRoZXIgdHJ1ZQoJCQkJCQkJCS9CdXJhc2FnYXJpVHlwZSAwCgkJCQkJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkJCQkJL0t1cmlrYWVzaGlNb2ppU2hvcmkgZmFsc2UKCQkJCQkJCQkvS2luc29rdSAvbmlsCgkJCQkJCQkJL01vamlLdW1pVGFibGUgL25pbAoJCQkJCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQkJCQkJCS9UYWJTdG9wcwoJCQkJCQkJCTw8CgkJCQkJCQkJPj4KCQkJCQkJCQkvRGVmYXVsdFRhYldpZHRoIDM2LjAKCQkJCQkJCQkvRGVmYXVsdFN0eWxlCgkJCQkJCQkJPDwKCQkJCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQk+PgoJCQkJCQkJPj4KCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQk+PgoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3R5bGVSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1N0eWxlU2hlZXQKCQkJCQkJPDwKCQkJCQkJCS9OYW1lICj+/ykKCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQkJL0ZlYXR1cmVzCgkJCQkJCQk8PAoJCQkJCQkJCS9Gb250IDAKCQkJCQkJCQkvRm9udFNpemUgMjAuNzczMzEKCQkJCQkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkJCS9BdXRvTGVhZGluZyBmYWxzZQoJCQkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCQkJCQkvVHJhY2tpbmcgMjAKCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCS9DaGFyYWN0ZXJSb3RhdGlvbiAwLjAKCQkJCQkJCQkvQXV0b0tlcm4gMQoJCQkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkJCQkJL0ZvbnRPVFBvc2l0aW9uIDAKCQkJCQkJCQkvU3RyaWtldGhyb3VnaFBvc2l0aW9uIDAKCQkJCQkJCQkvVW5kZXJsaW5lUG9zaXRpb24gMAoJCQkJCQkJCS9VbmRlcmxpbmVPZmZzZXQgMC4wCgkJCQkJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkJCQkJL0Rpc2NyZXRpb25hcnlMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvQ29udGV4dHVhbExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9BbHRlcm5hdGVMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvT2xkU3R5bGUgZmFsc2UKCQkJCQkJCQkvRnJhY3Rpb25zIGZhbHNlCgkJCQkJCQkJL09yZGluYWxzIGZhbHNlCgkJCQkJCQkJL1N3YXNoIGZhbHNlCgkJCQkJCQkJL1RpdGxpbmcgZmFsc2UKCQkJCQkJCQkvQ29ubmVjdGlvbkZvcm1zIGZhbHNlCgkJCQkJCQkJL1N0eWxpc3RpY0FsdGVybmF0ZXMgZmFsc2UKCQkJCQkJCQkvT3JuYW1lbnRzIGZhbHNlCgkJCQkJCQkJL0ZpZ3VyZVN0eWxlIDAKCQkJCQkJCQkvUHJvcG9ydGlvbmFsTWV0cmljcyBmYWxzZQoJCQkJCQkJCS9LYW5hIGZhbHNlCgkJCQkJCQkJL0l0YWxpY3MgZmFsc2UKCQkJCQkJCQkvUnVieSBmYWxzZQoJCQkJCQkJCS9CYXNlbGluZURpcmVjdGlvbiAxCgkJCQkJCQkJL1RzdW1lIDAuMAoJCQkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCQkJL0xhbmd1YWdlIDAKCQkJCQkJCQkvSmFwYW5lc2VBbHRlcm5hdGVGZWF0dXJlIDAKCQkJCQkJCQkvRW5hYmxlV2FyaUNodSBmYWxzZQoJCQkJCQkJCS9XYXJpQ2h1TGluZUNvdW50IDIKCQkJCQkJCQkvV2FyaUNodUxpbmVHYXAgMAoJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZUFtb3VudAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZVNjYWxlIDAuNQoJCQkJCQkJCT4+CgkJCQkJCQkJL1dhcmlDaHVXaWRvd0Ftb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVPcnBoYW5BbW91bnQgMgoJCQkJCQkJCS9XYXJpQ2h1SnVzdGlmaWNhdGlvbiA3CgkJCQkJCQkJL1RDWVVwRG93bkFkanVzdG1lbnQgMAoJCQkJCQkJCS9UQ1lMZWZ0UmlnaHRBZGp1c3RtZW50IDAKCQkJCQkJCQkvTGVmdEFraSAtMS4wCgkJCQkJCQkJL1JpZ2h0QWtpIC0xLjAKCQkJCQkJCQkvSmlEb3JpIDAKCQkJCQkJCQkvTm9CcmVhayBmYWxzZQoJCQkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCS9CbGVuZAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZUJsZW5kZXIKCQkJCQkJCQk+PgoJCQkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCQkJL0ZpbGxPdmVyUHJpbnQgZmFsc2UKCQkJCQkJCQkvU3Ryb2tlT3ZlclByaW50IGZhbHNlCgkJCQkJCQkJL0xpbmVDYXAgMAoJCQkJCQkJCS9MaW5lSm9pbiAwCgkJCQkJCQkJL0xpbmVXaWR0aCAwLjA0MTY3CgkJCQkJCQkJL01pdGVyTGltaXQgMC4wNDE2NwoJCQkJCQkJCS9MaW5lRGFzaE9mZnNldCAwLjAKCQkJCQkJCQkvTGluZURhc2hBcnJheSBbIF0KCQkJCQkJCQkvVHlwZTFFbmNvZGluZ05hbWVzIFsgXQoJCQkJCQkJPj4KCQkJCQkJPj4KCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0tlcm5SdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0FsdGVybmF0ZUdseXBoUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdG9yeVNoZWV0CgkJCTw8CgkJCQkvQW50aUFsaWFzIDQKCQkJCS9Vc2VGcmFjdGlvbmFsR2x5cGhXaWR0aHMgdHJ1ZQoJCQk+PgoJCT4+CgkJL1ZpZXcKCQk8PAoJCQkvRnJhbWVzIFsKCQkJPDwKCQkJCS9SZXNvdXJjZSA0CgkJCT4+CgkJCV0KCQkJL1JlbmRlcmVkRGF0YQoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCQkvTGluZUNvdW50IDEKCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL1N0cmlrZXMgWwoJCQk8PAoJCQkJL1N0cmVhbVRhZyAvUGF0aFNlbGVjdEdyb3VwQ2hhcmFjdGVyCgkJCQkvVHJhbnNmb3JtCgkJCQk8PAoJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCT4+CgkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCS9DaGlsZFByb2Nlc3Npb24gMAoJCQkJL0NoaWxkcmVuIFsKCQkJCTw8CgkJCQkJL1N0cmVhbVRhZyAvRnJhbWVTdHJpa2UKCQkJCQkvRnJhbWUgNAoJCQkJCS9UcmFuc2Zvcm0KCQkJCQk8PAoJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJPj4KCQkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDIKCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCTw8CgkJCQkJCS9TdHJlYW1UYWcgL1Jvd0NvbFN0cmlrZQoJCQkJCQkvUm93Q29sSW5kZXggMAoJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCTw8CgkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCT4+CgkJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDEKCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJPDwKCQkJCQkJCS9TdHJlYW1UYWcgL1Jvd0NvbFN0cmlrZQoJCQkJCQkJL1Jvd0NvbEluZGV4IDAKCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCTw8CgkJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQkJPj4KCQkJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAyCgkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJPDwKCQkJCQkJCQkvU3RyZWFtVGFnIC9MaW5lU3RyaWtlCgkJCQkJCQkJL0Jhc2VsaW5lIDAuMAoJCQkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCQkJL0VNSGVpZ2h0IDIwLjc3MzMxCgkJCQkJCQkJL0RIZWlnaHQgMTQuODMxOTIKCQkJCQkJCQkvU2VsZWN0aW9uQXNjZW50IC0xNy44MDI2MQoJCQkJCQkJCS9TZWxlY3Rpb25EZXNjZW50IDEzLjM5NDMzCgkJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJCTw8CgkJCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJCQk+PgoJCQkJCQkJCS9Cb3VuZHMgWyAwLjAgLTE3LjgwMjYxIDAuMCA0LjUwNzcxIF0KCQkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDEKCQkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NlZ21lbnQKCQkJCQkJCQkJL01hcHBpbmcKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9DaGFyYWN0ZXJDb3VudCA0CgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9GaXJzdENoYXJhY3RlckluZGV4SW5TZWdtZW50IDAKCQkJCQkJCQkJL1VuZGVybGluZUludmFsaWRhdGlvbiBbIC0yMi41Mzg5MSA4Ljg4NjYyIDIyLjk1NDM4IDguODg2NjIgXQoJCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvT3JpZ2luIFsgLTIyLjUzODkxIDAuMCBdCgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9Cb3VuZHMgWyAwLjAgLTE3LjgwMjYxIDMwMDIyLjUzOTA2IDQuNTA3NzEgXQoJCQkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDEKCQkJCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL0dseXBoU3RyaWtlCgkJCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9PcmlnaW4gWyAwLjAgOC44ODY2MiBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgNDUuNDkzMjkgNC41MDc3MSBdCgkJCQkJCQkJCQkvR2x5cGhzIFsgNTIgNTUgMjYgMyBdCgkJCQkJCQkJCQkvR2x5cGhBZGp1c3RtZW50cwoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvRGF0YSBbCgkJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkJL0JhY2tGaXhlZCAwLjQxNTQ3CgkJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCQldCgkJCQkJCQkJCQkJL1J1bkxlbmd0aHMgWyA0IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkvUmVuZGVyZWRCb3VuZHMgWyAtMjIuNTM4OTEgLTguOTE1OTkgMjIuOTU0MzggMTMuMzk0MzMgXQoJCQkJCQkJCQkJL1Zpc3VhbEJvdW5kcyBbIC0yMi41Mzg5MSAtOC45MTU5OSAyMi45NTQzOCAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvSW52YWxpZGF0aW9uIFsgLTIyLjUzODkxIC04LjkxNTk5IDM0LjA2Nzg0IDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9TaGFkb3dTdHlsZXNSdW4KCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL0RhdGEgWwoJCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJCS9JbmRleCAwCgkJCQkJCQkJCQkJCS9Gb250IDAKCQkJCQkJCQkJCQkJL09yaWVudGF0aW9uIDAKCQkJCQkJCQkJCQkJL0Jhc2VsaW5lU2hpZnQgLTguODg2NjIKCQkJCQkJCQkJCQkJL0tlcm5UeXBlIDEKCQkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJCV0KCQkJCQkJCQkJCQkvUnVuTGVuZ3RocyBbIDQgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJXQoJCQkJCQkJCQkvQW5ub3RhdGlvbgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1dpZHRoIDAuMAoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCV0KCQkJCQkJPj4KCQkJCQkJXQoJCQkJCT4+CgkJCQkJXQoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJXQoJCT4+CgkJL09wdGljYWxBbGlnbm1lbnQgZmFsc2UKCT4+Cgk8PAoJCS9Nb2RlbAoJCTw8CgkJCS9UZXh0ICj+/wBBAEEAQwANKQoJCQkvUGFyYWdyYXBoUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJCS9QYXJhZ3JhcGhTaGVldAoJCQkJCQk8PAoJCQkJCQkJL05hbWUgKP7/KQoJCQkJCQkJL0ZlYXR1cmVzCgkJCQkJCQk8PAoJCQkJCQkJCS9KdXN0aWZpY2F0aW9uIDIKCQkJCQkJCQkvRmlyc3RMaW5lSW5kZW50IDAuMAoJCQkJCQkJCS9TdGFydEluZGVudCAwLjAKCQkJCQkJCQkvRW5kSW5kZW50IDAuMAoJCQkJCQkJCS9TcGFjZUJlZm9yZSAwLjAKCQkJCQkJCQkvU3BhY2VBZnRlciAwLjAKCQkJCQkJCQkvRHJvcENhcHMgMQoJCQkJCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCQkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCQkJCQkvSHlwaGVuYXRlZFdvcmRTaXplIDgKCQkJCQkJCQkvUHJlSHlwaGVuIDMKCQkJCQkJCQkvUG9zdEh5cGhlbiAzCgkJCQkJCQkJL0NvbnNlY3V0aXZlSHlwaGVucyAyCgkJCQkJCQkJL1pvbmUgMzYuMAoJCQkJCQkJCS9IeXBoZW5hdGVDYXBpdGFsaXplZCB0cnVlCgkJCQkJCQkJL0h5cGhlbmF0aW9uUHJlZmVyZW5jZSAwLjUKCQkJCQkJCQkvV29yZFNwYWNpbmcgWyAwLjggMS4wIDEuMzMgXQoJCQkJCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkJCQkJL1NpbmdsZVdvcmRKdXN0aWZpY2F0aW9uIDYKCQkJCQkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJCQkJCS9BdXRvVENZIDEKCQkJCQkJCQkvS2VlcFRvZ2V0aGVyIHRydWUKCQkJCQkJCQkvQnVyYXNhZ2FyaVR5cGUgMAoJCQkJCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJCQkJCS9LdXJpa2Flc2hpTW9qaVNob3JpIGZhbHNlCgkJCQkJCQkJL0tpbnNva3UgL25pbAoJCQkJCQkJCS9Nb2ppS3VtaVRhYmxlIC9uaWwKCQkJCQkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJCQkJCQkvVGFiU3RvcHMKCQkJCQkJCQk8PAoJCQkJCQkJCT4+CgkJCQkJCQkJL0RlZmF1bHRUYWJXaWR0aCAzNi4wCgkJCQkJCQkJL0RlZmF1bHRTdHlsZQoJCQkJCQkJCTw8CgkJCQkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkJCQkJPj4KCQkJCQkJCT4+CgkJCQkJCQkvUGFyZW50IDAKCQkJCQkJPj4KCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL1N0eWxlUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJCS9TdHlsZVNoZWV0CgkJCQkJCTw8CgkJCQkJCQkvTmFtZSAo/v8pCgkJCQkJCQkvUGFyZW50IDAKCQkJCQkJCS9GZWF0dXJlcwoJCQkJCQkJPDwKCQkJCQkJCQkvRm9udCAwCgkJCQkJCQkJL0ZvbnRTaXplIDIwLjc3MzMxCgkJCQkJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCQkJCQkvQXV0b0xlYWRpbmcgZmFsc2UKCQkJCQkJCQkvTGVhZGluZyAzOS44NjE5OAoJCQkJCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkJCQkJL1RyYWNraW5nIDIwCgkJCQkJCQkJL0Jhc2VsaW5lU2hpZnQgLTguODg2NjIKCQkJCQkJCQkvQ2hhcmFjdGVyUm90YXRpb24gMC4wCgkJCQkJCQkJL0F1dG9LZXJuIDEKCQkJCQkJCQkvRm9udENhcHMgMAoJCQkJCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJCQkJCS9Gb250T1RQb3NpdGlvbiAwCgkJCQkJCQkJL1N0cmlrZXRocm91Z2hQb3NpdGlvbiAwCgkJCQkJCQkJL1VuZGVybGluZVBvc2l0aW9uIDAKCQkJCQkJCQkvVW5kZXJsaW5lT2Zmc2V0IDAuMAoJCQkJCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJCQkJCS9EaXNjcmV0aW9uYXJ5TGlnYXR1cmVzIGZhbHNlCgkJCQkJCQkJL0NvbnRleHR1YWxMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvQWx0ZXJuYXRlTGlnYXR1cmVzIGZhbHNlCgkJCQkJCQkJL09sZFN0eWxlIGZhbHNlCgkJCQkJCQkJL0ZyYWN0aW9ucyBmYWxzZQoJCQkJCQkJCS9PcmRpbmFscyBmYWxzZQoJCQkJCQkJCS9Td2FzaCBmYWxzZQoJCQkJCQkJCS9UaXRsaW5nIGZhbHNlCgkJCQkJCQkJL0Nvbm5lY3Rpb25Gb3JtcyBmYWxzZQoJCQkJCQkJCS9TdHlsaXN0aWNBbHRlcm5hdGVzIGZhbHNlCgkJCQkJCQkJL09ybmFtZW50cyBmYWxzZQoJCQkJCQkJCS9GaWd1cmVTdHlsZSAwCgkJCQkJCQkJL1Byb3BvcnRpb25hbE1ldHJpY3MgZmFsc2UKCQkJCQkJCQkvS2FuYSBmYWxzZQoJCQkJCQkJCS9JdGFsaWNzIGZhbHNlCgkJCQkJCQkJL1J1YnkgZmFsc2UKCQkJCQkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMQoJCQkJCQkJCS9Uc3VtZSAwLjAKCQkJCQkJCQkvU3R5bGVSdW5BbGlnbm1lbnQgMgoJCQkJCQkJCS9MYW5ndWFnZSAwCgkJCQkJCQkJL0phcGFuZXNlQWx0ZXJuYXRlRmVhdHVyZSAwCgkJCQkJCQkJL0VuYWJsZVdhcmlDaHUgZmFsc2UKCQkJCQkJCQkvV2FyaUNodUxpbmVDb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVMaW5lR2FwIDAKCQkJCQkJCQkvV2FyaUNodVN1YkxpbmVBbW91bnQKCQkJCQkJCQk8PAoJCQkJCQkJCQkvV2FyaUNodVN1YkxpbmVTY2FsZSAwLjUKCQkJCQkJCQk+PgoJCQkJCQkJCS9XYXJpQ2h1V2lkb3dBbW91bnQgMgoJCQkJCQkJCS9XYXJpQ2h1T3JwaGFuQW1vdW50IDIKCQkJCQkJCQkvV2FyaUNodUp1c3RpZmljYXRpb24gNwoJCQkJCQkJCS9UQ1lVcERvd25BZGp1c3RtZW50IDAKCQkJCQkJCQkvVENZTGVmdFJpZ2h0QWRqdXN0bWVudCAwCgkJCQkJCQkJL0xlZnRBa2kgLTEuMAoJCQkJCQkJCS9SaWdodEFraSAtMS4wCgkJCQkJCQkJL0ppRG9yaSAwCgkJCQkJCQkJL05vQnJlYWsgZmFsc2UKCQkJCQkJCQkvRmlsbENvbG9yCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCS9TdHJva2VDb2xvcgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQkvQmxlbmQKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVCbGVuZGVyCgkJCQkJCQkJPj4KCQkJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkJCQkJL0ZpbGxGaXJzdCBmYWxzZQoJCQkJCQkJCS9GaWxsT3ZlclByaW50IGZhbHNlCgkJCQkJCQkJL1N0cm9rZU92ZXJQcmludCBmYWxzZQoJCQkJCQkJCS9MaW5lQ2FwIDAKCQkJCQkJCQkvTGluZUpvaW4gMAoJCQkJCQkJCS9MaW5lV2lkdGggMC4wNDE2NwoJCQkJCQkJCS9NaXRlckxpbWl0IDAuMDQxNjcKCQkJCQkJCQkvTGluZURhc2hPZmZzZXQgMC4wCgkJCQkJCQkJL0xpbmVEYXNoQXJyYXkgWyBdCgkJCQkJCQkJL1R5cGUxRW5jb2RpbmdOYW1lcyBbIF0KCQkJCQkJCT4+CgkJCQkJCT4+CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9LZXJuUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9BbHRlcm5hdGVHbHlwaFJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3RvcnlTaGVldAoJCQk8PAoJCQkJL0FudGlBbGlhcyA0CgkJCQkvVXNlRnJhY3Rpb25hbEdseXBoV2lkdGhzIHRydWUKCQkJPj4KCQk+PgoJCS9WaWV3CgkJPDwKCQkJL0ZyYW1lcyBbCgkJCTw8CgkJCQkvUmVzb3VyY2UgNQoJCQk+PgoJCQldCgkJCS9SZW5kZXJlZERhdGEKCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL0xpbmVDb3VudCAxCgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdHJpa2VzIFsKCQkJPDwKCQkJCS9TdHJlYW1UYWcgL1BhdGhTZWxlY3RHcm91cENoYXJhY3RlcgoJCQkJL1RyYW5zZm9ybQoJCQkJPDwKCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkvQ2hpbGRQcm9jZXNzaW9uIDAKCQkJCS9DaGlsZHJlbiBbCgkJCQk8PAoJCQkJCS9TdHJlYW1UYWcgL0ZyYW1lU3RyaWtlCgkJCQkJL0ZyYW1lIDUKCQkJCQkvVHJhbnNmb3JtCgkJCQkJPDwKCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCT4+CgkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAyCgkJCQkJL0NoaWxkcmVuIFsKCQkJCQk8PAoJCQkJCQkvU3RyZWFtVGFnIC9Sb3dDb2xTdHJpa2UKCQkJCQkJL1Jvd0NvbEluZGV4IDAKCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQk8PAoJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQk+PgoJCQkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAxCgkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCTw8CgkJCQkJCQkvU3RyZWFtVGFnIC9Sb3dDb2xTdHJpa2UKCQkJCQkJCS9Sb3dDb2xJbmRleCAwCgkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQk8PAoJCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJCT4+CgkJCQkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMgoJCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJCTw8CgkJCQkJCQkJL1N0cmVhbVRhZyAvTGluZVN0cmlrZQoJCQkJCQkJCS9CYXNlbGluZSAwLjAKCQkJCQkJCQkvTGVhZGluZyAzOS44NjE5OAoJCQkJCQkJCS9FTUhlaWdodCAyMC43NzMzMQoJCQkJCQkJCS9ESGVpZ2h0IDE0LjgzMTkyCgkJCQkJCQkJL1NlbGVjdGlvbkFzY2VudCAtMTcuODAyNjEKCQkJCQkJCQkvU2VsZWN0aW9uRGVzY2VudCAxMy4zOTQzMwoJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQk8PAoJCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCQkJPj4KCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSAwLjAgNC41MDc3MSBdCgkJCQkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAxCgkJCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TZWdtZW50CgkJCQkJCQkJCS9NYXBwaW5nCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQ2hhcmFjdGVyQ291bnQgNAoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvRmlyc3RDaGFyYWN0ZXJJbmRleEluU2VnbWVudCAwCgkJCQkJCQkJCS9VbmRlcmxpbmVJbnZhbGlkYXRpb24gWyAtMjIuMzQxNTkgOC44ODY2MiAyMi43NTcwNiA4Ljg4NjYyIF0KCQkJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL09yaWdpbiBbIC0yMi4zNDE1OSAwLjAgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSAzMDAyMi4zNDE4IDQuNTA3NzEgXQoJCQkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDEKCQkJCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL0dseXBoU3RyaWtlCgkJCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9PcmlnaW4gWyAwLjAgOC44ODY2MiBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgNDUuMDk4NjUgNC41MDc3MSBdCgkJCQkJCQkJCQkvR2x5cGhzIFsgNDAgNDAgNDIgMyBdCgkJCQkJCQkJCQkvR2x5cGhBZGp1c3RtZW50cwoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvRGF0YSBbCgkJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkJL0JhY2tGaXhlZCAwLjQxNTQ3CgkJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCQldCgkJCQkJCQkJCQkJL1J1bkxlbmd0aHMgWyA0IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkvUmVuZGVyZWRCb3VuZHMgWyAtMjIuNDY2MTYgLTguOTE1OTkgMjIuNzU3MDYgMTMuMzk0MzMgXQoJCQkJCQkJCQkJL1Zpc3VhbEJvdW5kcyBbIC0yMi40NjYxNiAtOC45MTU5OSAyMi43NTcwNiAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvSW52YWxpZGF0aW9uIFsgLTIyLjQ2NjE2IC04LjkxNTk5IDMzLjg3MDUyIDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9TaGFkb3dTdHlsZXNSdW4KCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL0RhdGEgWwoJCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJCS9JbmRleCAwCgkJCQkJCQkJCQkJCS9Gb250IDAKCQkJCQkJCQkJCQkJL09yaWVudGF0aW9uIDAKCQkJCQkJCQkJCQkJL0Jhc2VsaW5lU2hpZnQgLTguODg2NjIKCQkJCQkJCQkJCQkJL0tlcm5UeXBlIDEKCQkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJCV0KCQkJCQkJCQkJCQkvUnVuTGVuZ3RocyBbIDQgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJXQoJCQkJCQkJCQkvQW5ub3RhdGlvbgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1dpZHRoIDAuMAoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCV0KCQkJCQkJPj4KCQkJCQkJXQoJCQkJCT4+CgkJCQkJXQoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJXQoJCT4+CgkJL09wdGljYWxBbGlnbm1lbnQgZmFsc2UKCT4+Cgk8PAoJCS9Nb2RlbAoJCTw8CgkJCS9UZXh0ICj+/wBXAEEAVgANKQoJCQkvUGFyYWdyYXBoUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJCS9QYXJhZ3JhcGhTaGVldAoJCQkJCQk8PAoJCQkJCQkJL05hbWUgKP7/KQoJCQkJCQkJL0ZlYXR1cmVzCgkJCQkJCQk8PAoJCQkJCQkJCS9KdXN0aWZpY2F0aW9uIDIKCQkJCQkJCQkvRmlyc3RMaW5lSW5kZW50IDAuMAoJCQkJCQkJCS9TdGFydEluZGVudCAwLjAKCQkJCQkJCQkvRW5kSW5kZW50IDAuMAoJCQkJCQkJCS9TcGFjZUJlZm9yZSAwLjAKCQkJCQkJCQkvU3BhY2VBZnRlciAwLjAKCQkJCQkJCQkvRHJvcENhcHMgMQoJCQkJCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCQkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCQkJCQkvSHlwaGVuYXRlZFdvcmRTaXplIDgKCQkJCQkJCQkvUHJlSHlwaGVuIDMKCQkJCQkJCQkvUG9zdEh5cGhlbiAzCgkJCQkJCQkJL0NvbnNlY3V0aXZlSHlwaGVucyAyCgkJCQkJCQkJL1pvbmUgMzYuMAoJCQkJCQkJCS9IeXBoZW5hdGVDYXBpdGFsaXplZCB0cnVlCgkJCQkJCQkJL0h5cGhlbmF0aW9uUHJlZmVyZW5jZSAwLjUKCQkJCQkJCQkvV29yZFNwYWNpbmcgWyAwLjggMS4wIDEuMzMgXQoJCQkJCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkJCQkJL1NpbmdsZVdvcmRKdXN0aWZpY2F0aW9uIDYKCQkJCQkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJCQkJCS9BdXRvVENZIDEKCQkJCQkJCQkvS2VlcFRvZ2V0aGVyIHRydWUKCQkJCQkJCQkvQnVyYXNhZ2FyaVR5cGUgMAoJCQkJCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJCQkJCS9LdXJpa2Flc2hpTW9qaVNob3JpIGZhbHNlCgkJCQkJCQkJL0tpbnNva3UgL25pbAoJCQkJCQkJCS9Nb2ppS3VtaVRhYmxlIC9uaWwKCQkJCQkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJCQkJCQkvVGFiU3RvcHMKCQkJCQkJCQk8PAoJCQkJCQkJCT4+CgkJCQkJCQkJL0RlZmF1bHRUYWJXaWR0aCAzNi4wCgkJCQkJCQkJL0RlZmF1bHRTdHlsZQoJCQkJCQkJCTw8CgkJCQkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkJCQkJPj4KCQkJCQkJCT4+CgkJCQkJCQkvUGFyZW50IDAKCQkJCQkJPj4KCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL1N0eWxlUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJCS9TdHlsZVNoZWV0CgkJCQkJCTw8CgkJCQkJCQkvTmFtZSAo/v8pCgkJCQkJCQkvUGFyZW50IDAKCQkJCQkJCS9GZWF0dXJlcwoJCQkJCQkJPDwKCQkJCQkJCQkvRm9udCAwCgkJCQkJCQkJL0ZvbnRTaXplIDIwLjc3MzMxCgkJCQkJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCQkJCQkvQXV0b0xlYWRpbmcgZmFsc2UKCQkJCQkJCQkvTGVhZGluZyAzOS44NjE5OAoJCQkJCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkJCQkJL1RyYWNraW5nIDIwCgkJCQkJCQkJL0Jhc2VsaW5lU2hpZnQgLTguODg2NjIKCQkJCQkJCQkvQ2hhcmFjdGVyUm90YXRpb24gMC4wCgkJCQkJCQkJL0F1dG9LZXJuIDEKCQkJCQkJCQkvRm9udENhcHMgMAoJCQkJCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJCQkJCS9Gb250T1RQb3NpdGlvbiAwCgkJCQkJCQkJL1N0cmlrZXRocm91Z2hQb3NpdGlvbiAwCgkJCQkJCQkJL1VuZGVybGluZVBvc2l0aW9uIDAKCQkJCQkJCQkvVW5kZXJsaW5lT2Zmc2V0IDAuMAoJCQkJCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJCQkJCS9EaXNjcmV0aW9uYXJ5TGlnYXR1cmVzIGZhbHNlCgkJCQkJCQkJL0NvbnRleHR1YWxMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvQWx0ZXJuYXRlTGlnYXR1cmVzIGZhbHNlCgkJCQkJCQkJL09sZFN0eWxlIGZhbHNlCgkJCQkJCQkJL0ZyYWN0aW9ucyBmYWxzZQoJCQkJCQkJCS9PcmRpbmFscyBmYWxzZQoJCQkJCQkJCS9Td2FzaCBmYWxzZQoJCQkJCQkJCS9UaXRsaW5nIGZhbHNlCgkJCQkJCQkJL0Nvbm5lY3Rpb25Gb3JtcyBmYWxzZQoJCQkJCQkJCS9TdHlsaXN0aWNBbHRlcm5hdGVzIGZhbHNlCgkJCQkJCQkJL09ybmFtZW50cyBmYWxzZQoJCQkJCQkJCS9GaWd1cmVTdHlsZSAwCgkJCQkJCQkJL1Byb3BvcnRpb25hbE1ldHJpY3MgZmFsc2UKCQkJCQkJCQkvS2FuYSBmYWxzZQoJCQkJCQkJCS9JdGFsaWNzIGZhbHNlCgkJCQkJCQkJL1J1YnkgZmFsc2UKCQkJCQkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMQoJCQkJCQkJCS9Uc3VtZSAwLjAKCQkJCQkJCQkvU3R5bGVSdW5BbGlnbm1lbnQgMgoJCQkJCQkJCS9MYW5ndWFnZSAwCgkJCQkJCQkJL0phcGFuZXNlQWx0ZXJuYXRlRmVhdHVyZSAwCgkJCQkJCQkJL0VuYWJsZVdhcmlDaHUgZmFsc2UKCQkJCQkJCQkvV2FyaUNodUxpbmVDb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVMaW5lR2FwIDAKCQkJCQkJCQkvV2FyaUNodVN1YkxpbmVBbW91bnQKCQkJCQkJCQk8PAoJCQkJCQkJCQkvV2FyaUNodVN1YkxpbmVTY2FsZSAwLjUKCQkJCQkJCQk+PgoJCQkJCQkJCS9XYXJpQ2h1V2lkb3dBbW91bnQgMgoJCQkJCQkJCS9XYXJpQ2h1T3JwaGFuQW1vdW50IDIKCQkJCQkJCQkvV2FyaUNodUp1c3RpZmljYXRpb24gNwoJCQkJCQkJCS9UQ1lVcERvd25BZGp1c3RtZW50IDAKCQkJCQkJCQkvVENZTGVmdFJpZ2h0QWRqdXN0bWVudCAwCgkJCQkJCQkJL0xlZnRBa2kgLTEuMAoJCQkJCQkJCS9SaWdodEFraSAtMS4wCgkJCQkJCQkJL0ppRG9yaSAwCgkJCQkJCQkJL05vQnJlYWsgZmFsc2UKCQkJCQkJCQkvRmlsbENvbG9yCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCS9TdHJva2VDb2xvcgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQkvQmxlbmQKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVCbGVuZGVyCgkJCQkJCQkJPj4KCQkJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkJCQkJL0ZpbGxGaXJzdCBmYWxzZQoJCQkJCQkJCS9GaWxsT3ZlclByaW50IGZhbHNlCgkJCQkJCQkJL1N0cm9rZU92ZXJQcmludCBmYWxzZQoJCQkJCQkJCS9MaW5lQ2FwIDAKCQkJCQkJCQkvTGluZUpvaW4gMAoJCQkJCQkJCS9MaW5lV2lkdGggMC4wNDE2NwoJCQkJCQkJCS9NaXRlckxpbWl0IDAuMDQxNjcKCQkJCQkJCQkvTGluZURhc2hPZmZzZXQgMC4wCgkJCQkJCQkJL0xpbmVEYXNoQXJyYXkgWyBdCgkJCQkJCQkJL1R5cGUxRW5jb2RpbmdOYW1lcyBbIF0KCQkJCQkJCT4+CgkJCQkJCT4+CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9LZXJuUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9BbHRlcm5hdGVHbHlwaFJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3RvcnlTaGVldAoJCQk8PAoJCQkJL0FudGlBbGlhcyA0CgkJCQkvVXNlRnJhY3Rpb25hbEdseXBoV2lkdGhzIHRydWUKCQkJPj4KCQk+PgoJCS9WaWV3CgkJPDwKCQkJL0ZyYW1lcyBbCgkJCTw8CgkJCQkvUmVzb3VyY2UgNgoJCQk+PgoJCQldCgkJCS9SZW5kZXJlZERhdGEKCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL0xpbmVDb3VudCAxCgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdHJpa2VzIFsKCQkJPDwKCQkJCS9TdHJlYW1UYWcgL1BhdGhTZWxlY3RHcm91cENoYXJhY3RlcgoJCQkJL1RyYW5zZm9ybQoJCQkJPDwKCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkvQ2hpbGRQcm9jZXNzaW9uIDAKCQkJCS9DaGlsZHJlbiBbCgkJCQk8PAoJCQkJCS9TdHJlYW1UYWcgL0ZyYW1lU3RyaWtlCgkJCQkJL0ZyYW1lIDYKCQkJCQkvVHJhbnNmb3JtCgkJCQkJPDwKCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCT4+CgkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAyCgkJCQkJL0NoaWxkcmVuIFsKCQkJCQk8PAoJCQkJCQkvU3RyZWFtVGFnIC9Sb3dDb2xTdHJpa2UKCQkJCQkJL1Jvd0NvbEluZGV4IDAKCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQk8PAoJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQk+PgoJCQkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAxCgkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCTw8CgkJCQkJCQkvU3RyZWFtVGFnIC9Sb3dDb2xTdHJpa2UKCQkJCQkJCS9Sb3dDb2xJbmRleCAwCgkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQk8PAoJCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJCT4+CgkJCQkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMgoJCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJCTw8CgkJCQkJCQkJL1N0cmVhbVRhZyAvTGluZVN0cmlrZQoJCQkJCQkJCS9CYXNlbGluZSAwLjAKCQkJCQkJCQkvTGVhZGluZyAzOS44NjE5OAoJCQkJCQkJCS9FTUhlaWdodCAyMC43NzMzMQoJCQkJCQkJCS9ESGVpZ2h0IDE0LjgzMTkyCgkJCQkJCQkJL1NlbGVjdGlvbkFzY2VudCAtMTcuODAyNjEKCQkJCQkJCQkvU2VsZWN0aW9uRGVzY2VudCAxMy4zOTQzMwoJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQk8PAoJCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCQkJPj4KCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSAwLjAgNC41MDc3MSBdCgkJCQkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAxCgkJCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TZWdtZW50CgkJCQkJCQkJCS9NYXBwaW5nCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQ2hhcmFjdGVyQ291bnQgNAoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvRmlyc3RDaGFyYWN0ZXJJbmRleEluU2VnbWVudCAwCgkJCQkJCQkJCS9VbmRlcmxpbmVJbnZhbGlkYXRpb24gWyAtMjMuODc4NjEgOC44ODY2MiAyNC4yOTQwOCA4Ljg4NjYyIF0KCQkJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL09yaWdpbiBbIC0yMy44Nzg2MSAwLjAgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSAzMDAyMy44Nzg5MSA0LjUwNzcxIF0KCQkJCQkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAxCgkJCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvU3RyZWFtVGFnIC9HbHlwaFN0cmlrZQoJCQkJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDguODg2NjIgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCS9Cb3VuZHMgWyAwLjAgLTE3LjgwMjYxIDQ4LjE3MjY4IDQuNTA3NzEgXQoJCQkJCQkJCQkJL0dseXBocyBbIDYyIDQwIDYxIDMgXQoJCQkJCQkJCQkJL0dseXBoQWRqdXN0bWVudHMKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL0RhdGEgWwoJCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJCS9CYWNrRml4ZWQgMC40MTU0NwoJCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkJXQoJCQkJCQkJCQkJCS9SdW5MZW5ndGhzIFsgNCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJL1JlbmRlcmVkQm91bmRzIFsgLTIzLjg3ODYxIC04LjkxNTk5IDI0LjI5NDA4IDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9WaXN1YWxCb3VuZHMgWyAtMjMuODc4NjEgLTguOTE1OTkgMjQuMjk0MDggMTMuMzk0MzMgXQoJCQkJCQkJCQkJL0ludmFsaWRhdGlvbiBbIC0yMy44Nzg2MSAtOC45MTU5OSAzNS40MDc1NCAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvU2hhZG93U3R5bGVzUnVuCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9EYXRhIFsKCQkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCQkvSW5kZXggMAoJCQkJCQkJCQkJCQkvRm9udCAwCgkJCQkJCQkJCQkJCS9PcmllbnRhdGlvbiAwCgkJCQkJCQkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCQkJCQkJCS9LZXJuVHlwZSAxCgkJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCQldCgkJCQkJCQkJCQkJL1J1bkxlbmd0aHMgWyA0IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJCV0KCQkJCQkJCQkJL0Fubm90YXRpb24KCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9XaWR0aCAwLjAKCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQldCgkJCQkJCT4+CgkJCQkJCV0KCQkJCQk+PgoJCQkJCV0KCQkJCT4+CgkJCQldCgkJCT4+CgkJCV0KCQk+PgoJCS9PcHRpY2FsQWxpZ25tZW50IGZhbHNlCgk+PgoJPDwKCQkvTW9kZWwKCQk8PAoJCQkvVGV4dCAo/v8AVwBNAEEADSkKCQkJL1BhcmFncmFwaFJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCQkvUGFyYWdyYXBoU2hlZXQKCQkJCQkJPDwKCQkJCQkJCS9OYW1lICj+/ykKCQkJCQkJCS9GZWF0dXJlcwoJCQkJCQkJPDwKCQkJCQkJCQkvSnVzdGlmaWNhdGlvbiAyCgkJCQkJCQkJL0ZpcnN0TGluZUluZGVudCAwLjAKCQkJCQkJCQkvU3RhcnRJbmRlbnQgMC4wCgkJCQkJCQkJL0VuZEluZGVudCAwLjAKCQkJCQkJCQkvU3BhY2VCZWZvcmUgMC4wCgkJCQkJCQkJL1NwYWNlQWZ0ZXIgMC4wCgkJCQkJCQkJL0Ryb3BDYXBzIDEKCQkJCQkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkJCQkJL0xlYWRpbmdUeXBlIDAKCQkJCQkJCQkvQXV0b0h5cGhlbmF0ZSB0cnVlCgkJCQkJCQkJL0h5cGhlbmF0ZWRXb3JkU2l6ZSA4CgkJCQkJCQkJL1ByZUh5cGhlbiAzCgkJCQkJCQkJL1Bvc3RIeXBoZW4gMwoJCQkJCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgMgoJCQkJCQkJCS9ab25lIDM2LjAKCQkJCQkJCQkvSHlwaGVuYXRlQ2FwaXRhbGl6ZWQgdHJ1ZQoJCQkJCQkJCS9IeXBoZW5hdGlvblByZWZlcmVuY2UgMC41CgkJCQkJCQkJL1dvcmRTcGFjaW5nIFsgMC44IDEuMCAxLjMzIF0KCQkJCQkJCQkvTGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJCQkJCS9TaW5nbGVXb3JkSnVzdGlmaWNhdGlvbiA2CgkJCQkJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCQkJCQkvQXV0b1RDWSAxCgkJCQkJCQkJL0tlZXBUb2dldGhlciB0cnVlCgkJCQkJCQkJL0J1cmFzYWdhcmlUeXBlIDAKCQkJCQkJCQkvS2luc29rdU9yZGVyIDAKCQkJCQkJCQkvS3VyaWthZXNoaU1vamlTaG9yaSBmYWxzZQoJCQkJCQkJCS9LaW5zb2t1IC9uaWwKCQkJCQkJCQkvTW9qaUt1bWlUYWJsZSAvbmlsCgkJCQkJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCQkJCQkJL1RhYlN0b3BzCgkJCQkJCQkJPDwKCQkJCQkJCQk+PgoJCQkJCQkJCS9EZWZhdWx0VGFiV2lkdGggMzYuMAoJCQkJCQkJCS9EZWZhdWx0U3R5bGUKCQkJCQkJCQk8PAoJCQkJCQkJCQkvRmlsbENvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9TdHJva2VDb2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkJCT4+CgkJCQkJCQk+PgoJCQkJCQkJL1BhcmVudCAwCgkJCQkJCT4+CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdHlsZVJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCQkvU3R5bGVTaGVldAoJCQkJCQk8PAoJCQkJCQkJL05hbWUgKP7/KQoJCQkJCQkJL1BhcmVudCAwCgkJCQkJCQkvRmVhdHVyZXMKCQkJCQkJCTw8CgkJCQkJCQkJL0ZvbnQgMAoJCQkJCQkJCS9Gb250U2l6ZSAyMC43NzMzMQoJCQkJCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkJCQkJL0F1dG9MZWFkaW5nIGZhbHNlCgkJCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJCQkvSG9yaXpvbnRhbFNjYWxlIDEuMAoJCQkJCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJCQkJCS9UcmFja2luZyAyMAoJCQkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCQkJL0NoYXJhY3RlclJvdGF0aW9uIDAuMAoJCQkJCQkJCS9BdXRvS2VybiAxCgkJCQkJCQkJL0ZvbnRDYXBzIDAKCQkJCQkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCQkJCQkvRm9udE9UUG9zaXRpb24gMAoJCQkJCQkJCS9TdHJpa2V0aHJvdWdoUG9zaXRpb24gMAoJCQkJCQkJCS9VbmRlcmxpbmVQb3NpdGlvbiAwCgkJCQkJCQkJL1VuZGVybGluZU9mZnNldCAwLjAKCQkJCQkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCQkJCQkvRGlzY3JldGlvbmFyeUxpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9Db250ZXh0dWFsTGlnYXR1cmVzIGZhbHNlCgkJCQkJCQkJL0FsdGVybmF0ZUxpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9PbGRTdHlsZSBmYWxzZQoJCQkJCQkJCS9GcmFjdGlvbnMgZmFsc2UKCQkJCQkJCQkvT3JkaW5hbHMgZmFsc2UKCQkJCQkJCQkvU3dhc2ggZmFsc2UKCQkJCQkJCQkvVGl0bGluZyBmYWxzZQoJCQkJCQkJCS9Db25uZWN0aW9uRm9ybXMgZmFsc2UKCQkJCQkJCQkvU3R5bGlzdGljQWx0ZXJuYXRlcyBmYWxzZQoJCQkJCQkJCS9Pcm5hbWVudHMgZmFsc2UKCQkJCQkJCQkvRmlndXJlU3R5bGUgMAoJCQkJCQkJCS9Qcm9wb3J0aW9uYWxNZXRyaWNzIGZhbHNlCgkJCQkJCQkJL0thbmEgZmFsc2UKCQkJCQkJCQkvSXRhbGljcyBmYWxzZQoJCQkJCQkJCS9SdWJ5IGZhbHNlCgkJCQkJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDEKCQkJCQkJCQkvVHN1bWUgMC4wCgkJCQkJCQkJL1N0eWxlUnVuQWxpZ25tZW50IDIKCQkJCQkJCQkvTGFuZ3VhZ2UgMAoJCQkJCQkJCS9KYXBhbmVzZUFsdGVybmF0ZUZlYXR1cmUgMAoJCQkJCQkJCS9FbmFibGVXYXJpQ2h1IGZhbHNlCgkJCQkJCQkJL1dhcmlDaHVMaW5lQ291bnQgMgoJCQkJCQkJCS9XYXJpQ2h1TGluZUdhcCAwCgkJCQkJCQkJL1dhcmlDaHVTdWJMaW5lQW1vdW50CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1dhcmlDaHVTdWJMaW5lU2NhbGUgMC41CgkJCQkJCQkJPj4KCQkJCQkJCQkvV2FyaUNodVdpZG93QW1vdW50IDIKCQkJCQkJCQkvV2FyaUNodU9ycGhhbkFtb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVKdXN0aWZpY2F0aW9uIDcKCQkJCQkJCQkvVENZVXBEb3duQWRqdXN0bWVudCAwCgkJCQkJCQkJL1RDWUxlZnRSaWdodEFkanVzdG1lbnQgMAoJCQkJCQkJCS9MZWZ0QWtpIC0xLjAKCQkJCQkJCQkvUmlnaHRBa2kgLTEuMAoJCQkJCQkJCS9KaURvcmkgMAoJCQkJCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJL0JsZW5kCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlQmxlbmRlcgoJCQkJCQkJCT4+CgkJCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkJCS9GaWxsRmlyc3QgZmFsc2UKCQkJCQkJCQkvRmlsbE92ZXJQcmludCBmYWxzZQoJCQkJCQkJCS9TdHJva2VPdmVyUHJpbnQgZmFsc2UKCQkJCQkJCQkvTGluZUNhcCAwCgkJCQkJCQkJL0xpbmVKb2luIDAKCQkJCQkJCQkvTGluZVdpZHRoIDAuMDQxNjcKCQkJCQkJCQkvTWl0ZXJMaW1pdCAwLjA0MTY3CgkJCQkJCQkJL0xpbmVEYXNoT2Zmc2V0IDAuMAoJCQkJCQkJCS9MaW5lRGFzaEFycmF5IFsgXQoJCQkJCQkJCS9UeXBlMUVuY29kaW5nTmFtZXMgWyBdCgkJCQkJCQk+PgoJCQkJCQk+PgoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvS2VyblJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvQWx0ZXJuYXRlR2x5cGhSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL1N0b3J5U2hlZXQKCQkJPDwKCQkJCS9BbnRpQWxpYXMgNAoJCQkJL1VzZUZyYWN0aW9uYWxHbHlwaFdpZHRocyB0cnVlCgkJCT4+CgkJPj4KCQkvVmlldwoJCTw8CgkJCS9GcmFtZXMgWwoJCQk8PAoJCQkJL1Jlc291cmNlIDcKCQkJPj4KCQkJXQoJCQkvUmVuZGVyZWREYXRhCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJCS9MaW5lQ291bnQgMQoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3RyaWtlcyBbCgkJCTw8CgkJCQkvU3RyZWFtVGFnIC9QYXRoU2VsZWN0R3JvdXBDaGFyYWN0ZXIKCQkJCS9UcmFuc2Zvcm0KCQkJCTw8CgkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJL0NoaWxkUHJvY2Vzc2lvbiAwCgkJCQkvQ2hpbGRyZW4gWwoJCQkJPDwKCQkJCQkvU3RyZWFtVGFnIC9GcmFtZVN0cmlrZQoJCQkJCS9GcmFtZSA3CgkJCQkJL1RyYW5zZm9ybQoJCQkJCTw8CgkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQk+PgoJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCS9DaGlsZFByb2Nlc3Npb24gMgoJCQkJCS9DaGlsZHJlbiBbCgkJCQkJPDwKCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCS9Sb3dDb2xJbmRleCAwCgkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJPDwKCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJPj4KCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQk8PAoJCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCQkvUm93Q29sSW5kZXggMAoJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJPDwKCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCQk+PgoJCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDIKCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQk8PAoJCQkJCQkJCS9TdHJlYW1UYWcgL0xpbmVTdHJpa2UKCQkJCQkJCQkvQmFzZWxpbmUgMC4wCgkJCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJCQkvRU1IZWlnaHQgMjAuNzczMzEKCQkJCQkJCQkvREhlaWdodCAxNC44MzE5MgoJCQkJCQkJCS9TZWxlY3Rpb25Bc2NlbnQgLTE3LjgwMjYxCgkJCQkJCQkJL1NlbGVjdGlvbkRlc2NlbnQgMTMuMzk0MzMKCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJPDwKCQkJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQkJCT4+CgkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMC4wIDQuNTA3NzEgXQoJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2VnbWVudAoJCQkJCQkJCQkvTWFwcGluZwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0NoYXJhY3RlckNvdW50IDQKCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpcnN0Q2hhcmFjdGVySW5kZXhJblNlZ21lbnQgMAoJCQkJCQkJCQkvVW5kZXJsaW5lSW52YWxpZGF0aW9uIFsgLTI2Ljc1NTc5IDguODg2NjIgMjcuMTcxMjYgOC44ODY2MiBdCgkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9PcmlnaW4gWyAtMjYuNzU1NzkgMC4wIF0KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMzAwMjYuNzU1ODYgNC41MDc3MSBdCgkJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvR2x5cGhTdHJpa2UKCQkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL09yaWdpbiBbIDAuMCA4Ljg4NjYyIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSA1My45MjcwNSA0LjUwNzcxIF0KCQkJCQkJCQkJCS9HbHlwaHMgWyA2MiA1MiA0MCAzIF0KCQkJCQkJCQkJCS9HbHlwaEFkanVzdG1lbnRzCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9EYXRhIFsKCQkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCQkvQmFja0ZpeGVkIDAuNDE1NDcKCQkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJCV0KCQkJCQkJCQkJCQkvUnVuTGVuZ3RocyBbIDQgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCS9SZW5kZXJlZEJvdW5kcyBbIC0yNi43NTU3OSAtOC45MTU5OSAyNy4xNzEyNiAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvVmlzdWFsQm91bmRzIFsgLTI2Ljc1NTc5IC04LjkxNTk5IDI3LjE3MTI2IDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9JbnZhbGlkYXRpb24gWyAtMjYuNzU1NzkgLTguOTE1OTkgMzguMjg0NzIgMTMuMzk0MzMgXQoJCQkJCQkJCQkJL1NoYWRvd1N0eWxlc1J1bgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvRGF0YSBbCgkJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkJL0luZGV4IDAKCQkJCQkJCQkJCQkJL0ZvbnQgMAoJCQkJCQkJCQkJCQkvT3JpZW50YXRpb24gMAoJCQkJCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCQkJCQkvS2VyblR5cGUgMQoJCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkJXQoJCQkJCQkJCQkJCS9SdW5MZW5ndGhzIFsgNCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQldCgkJCQkJCQkJCS9Bbm5vdGF0aW9uCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvV2lkdGggMC4wCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJXQoJCQkJCQk+PgoJCQkJCQldCgkJCQkJPj4KCQkJCQldCgkJCQk+PgoJCQkJXQoJCQk+PgoJCQldCgkJPj4KCQkvT3B0aWNhbEFsaWdubWVudCBmYWxzZQoJPj4KCTw8CgkJL01vZGVsCgkJPDwKCQkJL1RleHQgKP7/AEYATABBAEMADSkKCQkJL1BhcmFncmFwaFJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCQkvUGFyYWdyYXBoU2hlZXQKCQkJCQkJPDwKCQkJCQkJCS9OYW1lICj+/ykKCQkJCQkJCS9GZWF0dXJlcwoJCQkJCQkJPDwKCQkJCQkJCQkvSnVzdGlmaWNhdGlvbiAyCgkJCQkJCQkJL0ZpcnN0TGluZUluZGVudCAwLjAKCQkJCQkJCQkvU3RhcnRJbmRlbnQgMC4wCgkJCQkJCQkJL0VuZEluZGVudCAwLjAKCQkJCQkJCQkvU3BhY2VCZWZvcmUgMC4wCgkJCQkJCQkJL1NwYWNlQWZ0ZXIgMC4wCgkJCQkJCQkJL0Ryb3BDYXBzIDEKCQkJCQkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkJCQkJL0xlYWRpbmdUeXBlIDAKCQkJCQkJCQkvQXV0b0h5cGhlbmF0ZSB0cnVlCgkJCQkJCQkJL0h5cGhlbmF0ZWRXb3JkU2l6ZSA4CgkJCQkJCQkJL1ByZUh5cGhlbiAzCgkJCQkJCQkJL1Bvc3RIeXBoZW4gMwoJCQkJCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgMgoJCQkJCQkJCS9ab25lIDM2LjAKCQkJCQkJCQkvSHlwaGVuYXRlQ2FwaXRhbGl6ZWQgdHJ1ZQoJCQkJCQkJCS9IeXBoZW5hdGlvblByZWZlcmVuY2UgMC41CgkJCQkJCQkJL1dvcmRTcGFjaW5nIFsgMC44IDEuMCAxLjMzIF0KCQkJCQkJCQkvTGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJCQkJCS9TaW5nbGVXb3JkSnVzdGlmaWNhdGlvbiA2CgkJCQkJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCQkJCQkvQXV0b1RDWSAxCgkJCQkJCQkJL0tlZXBUb2dldGhlciB0cnVlCgkJCQkJCQkJL0J1cmFzYWdhcmlUeXBlIDAKCQkJCQkJCQkvS2luc29rdU9yZGVyIDAKCQkJCQkJCQkvS3VyaWthZXNoaU1vamlTaG9yaSBmYWxzZQoJCQkJCQkJCS9LaW5zb2t1IC9uaWwKCQkJCQkJCQkvTW9qaUt1bWlUYWJsZSAvbmlsCgkJCQkJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCQkJCQkJL1RhYlN0b3BzCgkJCQkJCQkJPDwKCQkJCQkJCQk+PgoJCQkJCQkJCS9EZWZhdWx0VGFiV2lkdGggMzYuMAoJCQkJCQkJCS9EZWZhdWx0U3R5bGUKCQkJCQkJCQk8PAoJCQkJCQkJCQkvRmlsbENvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9TdHJva2VDb2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkJCT4+CgkJCQkJCQk+PgoJCQkJCQkJL1BhcmVudCAwCgkJCQkJCT4+CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDUKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdHlsZVJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCQkvU3R5bGVTaGVldAoJCQkJCQk8PAoJCQkJCQkJL05hbWUgKP7/KQoJCQkJCQkJL1BhcmVudCAwCgkJCQkJCQkvRmVhdHVyZXMKCQkJCQkJCTw8CgkJCQkJCQkJL0ZvbnQgMAoJCQkJCQkJCS9Gb250U2l6ZSAyMC43NzMzMQoJCQkJCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkJCQkJL0F1dG9MZWFkaW5nIGZhbHNlCgkJCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJCQkvSG9yaXpvbnRhbFNjYWxlIDEuMAoJCQkJCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJCQkJCS9UcmFja2luZyAyMAoJCQkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCQkJL0NoYXJhY3RlclJvdGF0aW9uIDAuMAoJCQkJCQkJCS9BdXRvS2VybiAxCgkJCQkJCQkJL0ZvbnRDYXBzIDAKCQkJCQkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCQkJCQkvRm9udE9UUG9zaXRpb24gMAoJCQkJCQkJCS9TdHJpa2V0aHJvdWdoUG9zaXRpb24gMAoJCQkJCQkJCS9VbmRlcmxpbmVQb3NpdGlvbiAwCgkJCQkJCQkJL1VuZGVybGluZU9mZnNldCAwLjAKCQkJCQkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCQkJCQkvRGlzY3JldGlvbmFyeUxpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9Db250ZXh0dWFsTGlnYXR1cmVzIGZhbHNlCgkJCQkJCQkJL0FsdGVybmF0ZUxpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9PbGRTdHlsZSBmYWxzZQoJCQkJCQkJCS9GcmFjdGlvbnMgZmFsc2UKCQkJCQkJCQkvT3JkaW5hbHMgZmFsc2UKCQkJCQkJCQkvU3dhc2ggZmFsc2UKCQkJCQkJCQkvVGl0bGluZyBmYWxzZQoJCQkJCQkJCS9Db25uZWN0aW9uRm9ybXMgZmFsc2UKCQkJCQkJCQkvU3R5bGlzdGljQWx0ZXJuYXRlcyBmYWxzZQoJCQkJCQkJCS9Pcm5hbWVudHMgZmFsc2UKCQkJCQkJCQkvRmlndXJlU3R5bGUgMAoJCQkJCQkJCS9Qcm9wb3J0aW9uYWxNZXRyaWNzIGZhbHNlCgkJCQkJCQkJL0thbmEgZmFsc2UKCQkJCQkJCQkvSXRhbGljcyBmYWxzZQoJCQkJCQkJCS9SdWJ5IGZhbHNlCgkJCQkJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDEKCQkJCQkJCQkvVHN1bWUgMC4wCgkJCQkJCQkJL1N0eWxlUnVuQWxpZ25tZW50IDIKCQkJCQkJCQkvTGFuZ3VhZ2UgMAoJCQkJCQkJCS9KYXBhbmVzZUFsdGVybmF0ZUZlYXR1cmUgMAoJCQkJCQkJCS9FbmFibGVXYXJpQ2h1IGZhbHNlCgkJCQkJCQkJL1dhcmlDaHVMaW5lQ291bnQgMgoJCQkJCQkJCS9XYXJpQ2h1TGluZUdhcCAwCgkJCQkJCQkJL1dhcmlDaHVTdWJMaW5lQW1vdW50CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1dhcmlDaHVTdWJMaW5lU2NhbGUgMC41CgkJCQkJCQkJPj4KCQkJCQkJCQkvV2FyaUNodVdpZG93QW1vdW50IDIKCQkJCQkJCQkvV2FyaUNodU9ycGhhbkFtb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVKdXN0aWZpY2F0aW9uIDcKCQkJCQkJCQkvVENZVXBEb3duQWRqdXN0bWVudCAwCgkJCQkJCQkJL1RDWUxlZnRSaWdodEFkanVzdG1lbnQgMAoJCQkJCQkJCS9MZWZ0QWtpIC0xLjAKCQkJCQkJCQkvUmlnaHRBa2kgLTEuMAoJCQkJCQkJCS9KaURvcmkgMAoJCQkJCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJL0JsZW5kCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlQmxlbmRlcgoJCQkJCQkJCT4+CgkJCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkJCS9GaWxsRmlyc3QgZmFsc2UKCQkJCQkJCQkvRmlsbE92ZXJQcmludCBmYWxzZQoJCQkJCQkJCS9TdHJva2VPdmVyUHJpbnQgZmFsc2UKCQkJCQkJCQkvTGluZUNhcCAwCgkJCQkJCQkJL0xpbmVKb2luIDAKCQkJCQkJCQkvTGluZVdpZHRoIDAuMDQxNjcKCQkJCQkJCQkvTWl0ZXJMaW1pdCAwLjA0MTY3CgkJCQkJCQkJL0xpbmVEYXNoT2Zmc2V0IDAuMAoJCQkJCQkJCS9MaW5lRGFzaEFycmF5IFsgXQoJCQkJCQkJCS9UeXBlMUVuY29kaW5nTmFtZXMgWyBdCgkJCQkJCQk+PgoJCQkJCQk+PgoJCQkJCT4+CgkJCQkJL0xlbmd0aCA1CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvS2VyblJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCT4+CgkJCQkJL0xlbmd0aCA1CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvQWx0ZXJuYXRlR2x5cGhSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJCS9MZW5ndGggNQoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL1N0b3J5U2hlZXQKCQkJPDwKCQkJCS9BbnRpQWxpYXMgNAoJCQkJL1VzZUZyYWN0aW9uYWxHbHlwaFdpZHRocyB0cnVlCgkJCT4+CgkJPj4KCQkvVmlldwoJCTw8CgkJCS9GcmFtZXMgWwoJCQk8PAoJCQkJL1Jlc291cmNlIDgKCQkJPj4KCQkJXQoJCQkvUmVuZGVyZWREYXRhCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJCS9MaW5lQ291bnQgMQoJCQkJCT4+CgkJCQkJL0xlbmd0aCA1CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3RyaWtlcyBbCgkJCTw8CgkJCQkvU3RyZWFtVGFnIC9QYXRoU2VsZWN0R3JvdXBDaGFyYWN0ZXIKCQkJCS9UcmFuc2Zvcm0KCQkJCTw8CgkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJL0NoaWxkUHJvY2Vzc2lvbiAwCgkJCQkvQ2hpbGRyZW4gWwoJCQkJPDwKCQkJCQkvU3RyZWFtVGFnIC9GcmFtZVN0cmlrZQoJCQkJCS9GcmFtZSA4CgkJCQkJL1RyYW5zZm9ybQoJCQkJCTw8CgkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQk+PgoJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCS9DaGlsZFByb2Nlc3Npb24gMgoJCQkJCS9DaGlsZHJlbiBbCgkJCQkJPDwKCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCS9Sb3dDb2xJbmRleCAwCgkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJPDwKCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJPj4KCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQk8PAoJCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCQkvUm93Q29sSW5kZXggMAoJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJPDwKCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCQk+PgoJCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDIKCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQk8PAoJCQkJCQkJCS9TdHJlYW1UYWcgL0xpbmVTdHJpa2UKCQkJCQkJCQkvQmFzZWxpbmUgMC4wCgkJCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJCQkvRU1IZWlnaHQgMjAuNzczMzEKCQkJCQkJCQkvREhlaWdodCAxNC44MzE5MgoJCQkJCQkJCS9TZWxlY3Rpb25Bc2NlbnQgLTE3LjgwMjYxCgkJCQkJCQkJL1NlbGVjdGlvbkRlc2NlbnQgMTMuMzk0MzMKCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJPDwKCQkJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQkJCT4+CgkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMC4wIDQuNTA3NzEgXQoJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2VnbWVudAoJCQkJCQkJCQkvTWFwcGluZwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0NoYXJhY3RlckNvdW50IDUKCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpcnN0Q2hhcmFjdGVySW5kZXhJblNlZ21lbnQgMAoJCQkJCQkJCQkvVW5kZXJsaW5lSW52YWxpZGF0aW9uIFsgLTI3Ljc1Mjc4IDguODg2NjIgMjguMTY4MjUgOC44ODY2MiBdCgkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9PcmlnaW4gWyAtMjcuNzUyNzggMC4wIF0KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMzAwMjcuNzUxOTUgNC41MDc3MSBdCgkJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvR2x5cGhTdHJpa2UKCQkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL09yaWdpbiBbIDAuMCA4Ljg4NjYyIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSA1NS45MjEwNCA0LjUwNzcxIF0KCQkJCQkJCQkJCS9HbHlwaHMgWyA0NSA1MSA0MCA0MiAzIF0KCQkJCQkJCQkJCS9HbHlwaEFkanVzdG1lbnRzCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9EYXRhIFsKCQkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCQkvQmFja0ZpeGVkIDAuNDE1NDcKCQkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJCV0KCQkJCQkJCQkJCQkvUnVuTGVuZ3RocyBbIDUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCS9SZW5kZXJlZEJvdW5kcyBbIC0yNy43NTI3OCAtOC45MTU5OSAyOC4xNjgyNSAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvVmlzdWFsQm91bmRzIFsgLTI3Ljc1Mjc4IC04LjkxNTk5IDI4LjE2ODI1IDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9JbnZhbGlkYXRpb24gWyAtMjcuNzUyNzggLTguOTE1OTkgMzkuMjgxNzIgMTMuMzk0MzMgXQoJCQkJCQkJCQkJL1NoYWRvd1N0eWxlc1J1bgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvRGF0YSBbCgkJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkJL0luZGV4IDAKCQkJCQkJCQkJCQkJL0ZvbnQgMAoJCQkJCQkJCQkJCQkvT3JpZW50YXRpb24gMAoJCQkJCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCQkJCQkvS2VyblR5cGUgMQoJCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkJXQoJCQkJCQkJCQkJCS9SdW5MZW5ndGhzIFsgNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQldCgkJCQkJCQkJCS9Bbm5vdGF0aW9uCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvV2lkdGggMC4wCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJXQoJCQkJCQk+PgoJCQkJCQldCgkJCQkJPj4KCQkJCQldCgkJCQk+PgoJCQkJXQoJCQk+PgoJCQldCgkJPj4KCQkvT3B0aWNhbEFsaWdubWVudCBmYWxzZQoJPj4KCTw8CgkJL01vZGVsCgkJPDwKCQkJL1RleHQgKP7/AEUAUABTAA0pCgkJCS9QYXJhZ3JhcGhSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1BhcmFncmFwaFNoZWV0CgkJCQkJCTw8CgkJCQkJCQkvTmFtZSAo/v8pCgkJCQkJCQkvRmVhdHVyZXMKCQkJCQkJCTw8CgkJCQkJCQkJL0p1c3RpZmljYXRpb24gMgoJCQkJCQkJCS9GaXJzdExpbmVJbmRlbnQgMC4wCgkJCQkJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJCQkJCS9Ecm9wQ2FwcyAxCgkJCQkJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgOAoJCQkJCQkJCS9QcmVIeXBoZW4gMwoJCQkJCQkJCS9Qb3N0SHlwaGVuIDMKCQkJCQkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDIKCQkJCQkJCQkvWm9uZSAzNi4wCgkJCQkJCQkJL0h5cGhlbmF0ZUNhcGl0YWxpemVkIHRydWUKCQkJCQkJCQkvSHlwaGVuYXRpb25QcmVmZXJlbmNlIDAuNQoJCQkJCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCQkJCQkvU2luZ2xlV29yZEp1c3RpZmljYXRpb24gNgoJCQkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCQkJL0F1dG9UQ1kgMQoJCQkJCQkJCS9LZWVwVG9nZXRoZXIgdHJ1ZQoJCQkJCQkJCS9CdXJhc2FnYXJpVHlwZSAwCgkJCQkJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkJCQkJL0t1cmlrYWVzaGlNb2ppU2hvcmkgZmFsc2UKCQkJCQkJCQkvS2luc29rdSAvbmlsCgkJCQkJCQkJL01vamlLdW1pVGFibGUgL25pbAoJCQkJCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQkJCQkJCS9UYWJTdG9wcwoJCQkJCQkJCTw8CgkJCQkJCQkJPj4KCQkJCQkJCQkvRGVmYXVsdFRhYldpZHRoIDM2LjAKCQkJCQkJCQkvRGVmYXVsdFN0eWxlCgkJCQkJCQkJPDwKCQkJCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQk+PgoJCQkJCQkJPj4KCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQk+PgoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3R5bGVSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1N0eWxlU2hlZXQKCQkJCQkJPDwKCQkJCQkJCS9OYW1lICj+/ykKCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQkJL0ZlYXR1cmVzCgkJCQkJCQk8PAoJCQkJCQkJCS9Gb250IDAKCQkJCQkJCQkvRm9udFNpemUgMjAuNzczMzEKCQkJCQkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkJCS9BdXRvTGVhZGluZyBmYWxzZQoJCQkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCQkJCQkvVHJhY2tpbmcgMjAKCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCS9DaGFyYWN0ZXJSb3RhdGlvbiAwLjAKCQkJCQkJCQkvQXV0b0tlcm4gMQoJCQkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkJCQkJL0ZvbnRPVFBvc2l0aW9uIDAKCQkJCQkJCQkvU3RyaWtldGhyb3VnaFBvc2l0aW9uIDAKCQkJCQkJCQkvVW5kZXJsaW5lUG9zaXRpb24gMAoJCQkJCQkJCS9VbmRlcmxpbmVPZmZzZXQgMC4wCgkJCQkJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkJCQkJL0Rpc2NyZXRpb25hcnlMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvQ29udGV4dHVhbExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9BbHRlcm5hdGVMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvT2xkU3R5bGUgZmFsc2UKCQkJCQkJCQkvRnJhY3Rpb25zIGZhbHNlCgkJCQkJCQkJL09yZGluYWxzIGZhbHNlCgkJCQkJCQkJL1N3YXNoIGZhbHNlCgkJCQkJCQkJL1RpdGxpbmcgZmFsc2UKCQkJCQkJCQkvQ29ubmVjdGlvbkZvcm1zIGZhbHNlCgkJCQkJCQkJL1N0eWxpc3RpY0FsdGVybmF0ZXMgZmFsc2UKCQkJCQkJCQkvT3JuYW1lbnRzIGZhbHNlCgkJCQkJCQkJL0ZpZ3VyZVN0eWxlIDAKCQkJCQkJCQkvUHJvcG9ydGlvbmFsTWV0cmljcyBmYWxzZQoJCQkJCQkJCS9LYW5hIGZhbHNlCgkJCQkJCQkJL0l0YWxpY3MgZmFsc2UKCQkJCQkJCQkvUnVieSBmYWxzZQoJCQkJCQkJCS9CYXNlbGluZURpcmVjdGlvbiAxCgkJCQkJCQkJL1RzdW1lIDAuMAoJCQkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCQkJL0xhbmd1YWdlIDAKCQkJCQkJCQkvSmFwYW5lc2VBbHRlcm5hdGVGZWF0dXJlIDAKCQkJCQkJCQkvRW5hYmxlV2FyaUNodSBmYWxzZQoJCQkJCQkJCS9XYXJpQ2h1TGluZUNvdW50IDIKCQkJCQkJCQkvV2FyaUNodUxpbmVHYXAgMAoJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZUFtb3VudAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZVNjYWxlIDAuNQoJCQkJCQkJCT4+CgkJCQkJCQkJL1dhcmlDaHVXaWRvd0Ftb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVPcnBoYW5BbW91bnQgMgoJCQkJCQkJCS9XYXJpQ2h1SnVzdGlmaWNhdGlvbiA3CgkJCQkJCQkJL1RDWVVwRG93bkFkanVzdG1lbnQgMAoJCQkJCQkJCS9UQ1lMZWZ0UmlnaHRBZGp1c3RtZW50IDAKCQkJCQkJCQkvTGVmdEFraSAtMS4wCgkJCQkJCQkJL1JpZ2h0QWtpIC0xLjAKCQkJCQkJCQkvSmlEb3JpIDAKCQkJCQkJCQkvTm9CcmVhayBmYWxzZQoJCQkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCS9CbGVuZAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZUJsZW5kZXIKCQkJCQkJCQk+PgoJCQkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCQkJL0ZpbGxPdmVyUHJpbnQgZmFsc2UKCQkJCQkJCQkvU3Ryb2tlT3ZlclByaW50IGZhbHNlCgkJCQkJCQkJL0xpbmVDYXAgMAoJCQkJCQkJCS9MaW5lSm9pbiAwCgkJCQkJCQkJL0xpbmVXaWR0aCAwLjA0MTY3CgkJCQkJCQkJL01pdGVyTGltaXQgMC4wNDE2NwoJCQkJCQkJCS9MaW5lRGFzaE9mZnNldCAwLjAKCQkJCQkJCQkvTGluZURhc2hBcnJheSBbIF0KCQkJCQkJCQkvVHlwZTFFbmNvZGluZ05hbWVzIFsgXQoJCQkJCQkJPj4KCQkJCQkJPj4KCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0tlcm5SdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0FsdGVybmF0ZUdseXBoUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdG9yeVNoZWV0CgkJCTw8CgkJCQkvQW50aUFsaWFzIDQKCQkJCS9Vc2VGcmFjdGlvbmFsR2x5cGhXaWR0aHMgdHJ1ZQoJCQk+PgoJCT4+CgkJL1ZpZXcKCQk8PAoJCQkvRnJhbWVzIFsKCQkJPDwKCQkJCS9SZXNvdXJjZSA5CgkJCT4+CgkJCV0KCQkJL1JlbmRlcmVkRGF0YQoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCQkvTGluZUNvdW50IDEKCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL1N0cmlrZXMgWwoJCQk8PAoJCQkJL1N0cmVhbVRhZyAvUGF0aFNlbGVjdEdyb3VwQ2hhcmFjdGVyCgkJCQkvVHJhbnNmb3JtCgkJCQk8PAoJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCT4+CgkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCS9DaGlsZFByb2Nlc3Npb24gMAoJCQkJL0NoaWxkcmVuIFsKCQkJCTw8CgkJCQkJL1N0cmVhbVRhZyAvRnJhbWVTdHJpa2UKCQkJCQkvRnJhbWUgOQoJCQkJCS9UcmFuc2Zvcm0KCQkJCQk8PAoJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJPj4KCQkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDIKCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCTw8CgkJCQkJCS9TdHJlYW1UYWcgL1Jvd0NvbFN0cmlrZQoJCQkJCQkvUm93Q29sSW5kZXggMAoJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCTw8CgkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCT4+CgkJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDEKCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJPDwKCQkJCQkJCS9TdHJlYW1UYWcgL1Jvd0NvbFN0cmlrZQoJCQkJCQkJL1Jvd0NvbEluZGV4IDAKCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCTw8CgkJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQkJPj4KCQkJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAyCgkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJPDwKCQkJCQkJCQkvU3RyZWFtVGFnIC9MaW5lU3RyaWtlCgkJCQkJCQkJL0Jhc2VsaW5lIDAuMAoJCQkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCQkJL0VNSGVpZ2h0IDIwLjc3MzMxCgkJCQkJCQkJL0RIZWlnaHQgMTQuODMxOTIKCQkJCQkJCQkvU2VsZWN0aW9uQXNjZW50IC0xNy44MDI2MQoJCQkJCQkJCS9TZWxlY3Rpb25EZXNjZW50IDEzLjM5NDMzCgkJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJCTw8CgkJCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJCQk+PgoJCQkJCQkJCS9Cb3VuZHMgWyAwLjAgLTE3LjgwMjYxIDAuMCA0LjUwNzcxIF0KCQkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDEKCQkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NlZ21lbnQKCQkJCQkJCQkJL01hcHBpbmcKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9DaGFyYWN0ZXJDb3VudCA0CgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9GaXJzdENoYXJhY3RlckluZGV4SW5TZWdtZW50IDAKCQkJCQkJCQkJL1VuZGVybGluZUludmFsaWRhdGlvbiBbIC0yMC44MTQ1NyA4Ljg4NjYyIDIxLjIzMDAzIDguODg2NjIgXQoJCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvT3JpZ2luIFsgLTIwLjgxNDU3IDAuMCBdCgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9Cb3VuZHMgWyAwLjAgLTE3LjgwMjYxIDMwMDIwLjgxNDQ1IDQuNTA3NzEgXQoJCQkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDEKCQkJCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL0dseXBoU3RyaWtlCgkJCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9PcmlnaW4gWyAwLjAgOC44ODY2MiBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgNDIuMDQ0NiA0LjUwNzcxIF0KCQkJCQkJCQkJCS9HbHlwaHMgWyA0NCA1NSA1OCAzIF0KCQkJCQkJCQkJCS9HbHlwaEFkanVzdG1lbnRzCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9EYXRhIFsKCQkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCQkvQmFja0ZpeGVkIDAuNDE1NDcKCQkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJCV0KCQkJCQkJCQkJCQkvUnVuTGVuZ3RocyBbIDQgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCS9SZW5kZXJlZEJvdW5kcyBbIC0yMC44MTQ1NyAtOC45MTU5OSAyMS4yMzAwMyAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvVmlzdWFsQm91bmRzIFsgLTIwLjgxNDU3IC04LjkxNTk5IDIxLjIzMDAzIDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9JbnZhbGlkYXRpb24gWyAtMjAuODE0NTcgLTguOTE1OTkgMzIuMzQzNSAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvU2hhZG93U3R5bGVzUnVuCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9EYXRhIFsKCQkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCQkvSW5kZXggMAoJCQkJCQkJCQkJCQkvRm9udCAwCgkJCQkJCQkJCQkJCS9PcmllbnRhdGlvbiAwCgkJCQkJCQkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCQkJCQkJCS9LZXJuVHlwZSAxCgkJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCQldCgkJCQkJCQkJCQkJL1J1bkxlbmd0aHMgWyA0IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJCV0KCQkJCQkJCQkJL0Fubm90YXRpb24KCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9XaWR0aCAwLjAKCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQldCgkJCQkJCT4+CgkJCQkJCV0KCQkJCQk+PgoJCQkJCV0KCQkJCT4+CgkJCQldCgkJCT4+CgkJCV0KCQk+PgoJCS9PcHRpY2FsQWxpZ25tZW50IGZhbHNlCgk+PgoJPDwKCQkvTW9kZWwKCQk8PAoJCQkvVGV4dCAo/v8AQQBJAA0pCgkJCS9QYXJhZ3JhcGhSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1BhcmFncmFwaFNoZWV0CgkJCQkJCTw8CgkJCQkJCQkvTmFtZSAo/v8pCgkJCQkJCQkvRmVhdHVyZXMKCQkJCQkJCTw8CgkJCQkJCQkJL0p1c3RpZmljYXRpb24gMgoJCQkJCQkJCS9GaXJzdExpbmVJbmRlbnQgMC4wCgkJCQkJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJCQkJCS9Ecm9wQ2FwcyAxCgkJCQkJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgOAoJCQkJCQkJCS9QcmVIeXBoZW4gMwoJCQkJCQkJCS9Qb3N0SHlwaGVuIDMKCQkJCQkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDIKCQkJCQkJCQkvWm9uZSAzNi4wCgkJCQkJCQkJL0h5cGhlbmF0ZUNhcGl0YWxpemVkIHRydWUKCQkJCQkJCQkvSHlwaGVuYXRpb25QcmVmZXJlbmNlIDAuNQoJCQkJCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCQkJCQkvU2luZ2xlV29yZEp1c3RpZmljYXRpb24gNgoJCQkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCQkJL0F1dG9UQ1kgMQoJCQkJCQkJCS9LZWVwVG9nZXRoZXIgdHJ1ZQoJCQkJCQkJCS9CdXJhc2FnYXJpVHlwZSAwCgkJCQkJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkJCQkJL0t1cmlrYWVzaGlNb2ppU2hvcmkgZmFsc2UKCQkJCQkJCQkvS2luc29rdSAvbmlsCgkJCQkJCQkJL01vamlLdW1pVGFibGUgL25pbAoJCQkJCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQkJCQkJCS9UYWJTdG9wcwoJCQkJCQkJCTw8CgkJCQkJCQkJPj4KCQkJCQkJCQkvRGVmYXVsdFRhYldpZHRoIDM2LjAKCQkJCQkJCQkvRGVmYXVsdFN0eWxlCgkJCQkJCQkJPDwKCQkJCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQk+PgoJCQkJCQkJPj4KCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQk+PgoJCQkJCT4+CgkJCQkJL0xlbmd0aCAzCgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3R5bGVSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1N0eWxlU2hlZXQKCQkJCQkJPDwKCQkJCQkJCS9OYW1lICj+/ykKCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQkJL0ZlYXR1cmVzCgkJCQkJCQk8PAoJCQkJCQkJCS9Gb250IDAKCQkJCQkJCQkvRm9udFNpemUgMjAuNzczMzEKCQkJCQkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkJCS9BdXRvTGVhZGluZyBmYWxzZQoJCQkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCQkJCQkvVHJhY2tpbmcgMjAKCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCS9DaGFyYWN0ZXJSb3RhdGlvbiAwLjAKCQkJCQkJCQkvQXV0b0tlcm4gMQoJCQkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkJCQkJL0ZvbnRPVFBvc2l0aW9uIDAKCQkJCQkJCQkvU3RyaWtldGhyb3VnaFBvc2l0aW9uIDAKCQkJCQkJCQkvVW5kZXJsaW5lUG9zaXRpb24gMAoJCQkJCQkJCS9VbmRlcmxpbmVPZmZzZXQgMC4wCgkJCQkJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkJCQkJL0Rpc2NyZXRpb25hcnlMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvQ29udGV4dHVhbExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9BbHRlcm5hdGVMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvT2xkU3R5bGUgZmFsc2UKCQkJCQkJCQkvRnJhY3Rpb25zIGZhbHNlCgkJCQkJCQkJL09yZGluYWxzIGZhbHNlCgkJCQkJCQkJL1N3YXNoIGZhbHNlCgkJCQkJCQkJL1RpdGxpbmcgZmFsc2UKCQkJCQkJCQkvQ29ubmVjdGlvbkZvcm1zIGZhbHNlCgkJCQkJCQkJL1N0eWxpc3RpY0FsdGVybmF0ZXMgZmFsc2UKCQkJCQkJCQkvT3JuYW1lbnRzIGZhbHNlCgkJCQkJCQkJL0ZpZ3VyZVN0eWxlIDAKCQkJCQkJCQkvUHJvcG9ydGlvbmFsTWV0cmljcyBmYWxzZQoJCQkJCQkJCS9LYW5hIGZhbHNlCgkJCQkJCQkJL0l0YWxpY3MgZmFsc2UKCQkJCQkJCQkvUnVieSBmYWxzZQoJCQkJCQkJCS9CYXNlbGluZURpcmVjdGlvbiAxCgkJCQkJCQkJL1RzdW1lIDAuMAoJCQkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCQkJL0xhbmd1YWdlIDAKCQkJCQkJCQkvSmFwYW5lc2VBbHRlcm5hdGVGZWF0dXJlIDAKCQkJCQkJCQkvRW5hYmxlV2FyaUNodSBmYWxzZQoJCQkJCQkJCS9XYXJpQ2h1TGluZUNvdW50IDIKCQkJCQkJCQkvV2FyaUNodUxpbmVHYXAgMAoJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZUFtb3VudAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZVNjYWxlIDAuNQoJCQkJCQkJCT4+CgkJCQkJCQkJL1dhcmlDaHVXaWRvd0Ftb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVPcnBoYW5BbW91bnQgMgoJCQkJCQkJCS9XYXJpQ2h1SnVzdGlmaWNhdGlvbiA3CgkJCQkJCQkJL1RDWVVwRG93bkFkanVzdG1lbnQgMAoJCQkJCQkJCS9UQ1lMZWZ0UmlnaHRBZGp1c3RtZW50IDAKCQkJCQkJCQkvTGVmdEFraSAtMS4wCgkJCQkJCQkJL1JpZ2h0QWtpIC0xLjAKCQkJCQkJCQkvSmlEb3JpIDAKCQkJCQkJCQkvTm9CcmVhayBmYWxzZQoJCQkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCS9CbGVuZAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZUJsZW5kZXIKCQkJCQkJCQk+PgoJCQkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCQkJL0ZpbGxPdmVyUHJpbnQgZmFsc2UKCQkJCQkJCQkvU3Ryb2tlT3ZlclByaW50IGZhbHNlCgkJCQkJCQkJL0xpbmVDYXAgMAoJCQkJCQkJCS9MaW5lSm9pbiAwCgkJCQkJCQkJL0xpbmVXaWR0aCAwLjA0MTY3CgkJCQkJCQkJL01pdGVyTGltaXQgMC4wNDE2NwoJCQkJCQkJCS9MaW5lRGFzaE9mZnNldCAwLjAKCQkJCQkJCQkvTGluZURhc2hBcnJheSBbIF0KCQkJCQkJCQkvVHlwZTFFbmNvZGluZ05hbWVzIFsgXQoJCQkJCQkJPj4KCQkJCQkJPj4KCQkJCQk+PgoJCQkJCS9MZW5ndGggMwoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0tlcm5SdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJCS9MZW5ndGggMwoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0FsdGVybmF0ZUdseXBoUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDMKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdG9yeVNoZWV0CgkJCTw8CgkJCQkvQW50aUFsaWFzIDQKCQkJCS9Vc2VGcmFjdGlvbmFsR2x5cGhXaWR0aHMgdHJ1ZQoJCQk+PgoJCT4+CgkJL1ZpZXcKCQk8PAoJCQkvRnJhbWVzIFsKCQkJPDwKCQkJCS9SZXNvdXJjZSAxMAoJCQk+PgoJCQldCgkJCS9SZW5kZXJlZERhdGEKCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL0xpbmVDb3VudCAxCgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDMKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdHJpa2VzIFsKCQkJPDwKCQkJCS9TdHJlYW1UYWcgL1BhdGhTZWxlY3RHcm91cENoYXJhY3RlcgoJCQkJL1RyYW5zZm9ybQoJCQkJPDwKCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkvQ2hpbGRQcm9jZXNzaW9uIDAKCQkJCS9DaGlsZHJlbiBbCgkJCQk8PAoJCQkJCS9TdHJlYW1UYWcgL0ZyYW1lU3RyaWtlCgkJCQkJL0ZyYW1lIDEwCgkJCQkJL1RyYW5zZm9ybQoJCQkJCTw8CgkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQk+PgoJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCS9DaGlsZFByb2Nlc3Npb24gMgoJCQkJCS9DaGlsZHJlbiBbCgkJCQkJPDwKCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCS9Sb3dDb2xJbmRleCAwCgkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJPDwKCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJPj4KCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQk8PAoJCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCQkvUm93Q29sSW5kZXggMAoJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJPDwKCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCQk+PgoJCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDIKCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQk8PAoJCQkJCQkJCS9TdHJlYW1UYWcgL0xpbmVTdHJpa2UKCQkJCQkJCQkvQmFzZWxpbmUgMC4wCgkJCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJCQkvRU1IZWlnaHQgMjAuNzczMzEKCQkJCQkJCQkvREhlaWdodCAxNC44MzE5MgoJCQkJCQkJCS9TZWxlY3Rpb25Bc2NlbnQgLTE3LjgwMjYxCgkJCQkJCQkJL1NlbGVjdGlvbkRlc2NlbnQgMTMuMzk0MzMKCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJPDwKCQkJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQkJCT4+CgkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMC4wIDQuNTA3NzEgXQoJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2VnbWVudAoJCQkJCQkJCQkvTWFwcGluZwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0NoYXJhY3RlckNvdW50IDMKCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpcnN0Q2hhcmFjdGVySW5kZXhJblNlZ21lbnQgMAoJCQkJCQkJCQkvVW5kZXJsaW5lSW52YWxpZGF0aW9uIFsgLTEwLjM4NjYgOC44ODY2MiAxMC44MDIwNiA4Ljg4NjYyIF0KCQkJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL09yaWdpbiBbIC0xMC4zODY2IDAuMCBdCgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9Cb3VuZHMgWyAwLjAgLTE3LjgwMjYxIDMwMDEwLjM4NjcyIDQuNTA3NzEgXQoJCQkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDEKCQkJCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL0dseXBoU3RyaWtlCgkJCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9PcmlnaW4gWyAwLjAgOC44ODY2MiBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMjEuMTg4NjYgNC41MDc3MSBdCgkJCQkJCQkJCQkvR2x5cGhzIFsgNDAgNDggMyBdCgkJCQkJCQkJCQkvR2x5cGhBZGp1c3RtZW50cwoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvRGF0YSBbCgkJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkJL0JhY2tGaXhlZCAwLjQxNTQ3CgkJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCQldCgkJCQkJCQkJCQkJL1J1bkxlbmd0aHMgWyAzIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkvUmVuZGVyZWRCb3VuZHMgWyAtMTAuNTExMTcgLTguOTE1OTkgMTAuODAyMDYgMTMuMzk0MzMgXQoJCQkJCQkJCQkJL1Zpc3VhbEJvdW5kcyBbIC0xMC41MTExNyAtOC45MTU5OSAxMC44MDIwNiAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvSW52YWxpZGF0aW9uIFsgLTEwLjUxMTE3IC04LjkxNTk5IDIxLjkxNTUzIDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9TaGFkb3dTdHlsZXNSdW4KCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL0RhdGEgWwoJCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJCS9JbmRleCAwCgkJCQkJCQkJCQkJCS9Gb250IDAKCQkJCQkJCQkJCQkJL09yaWVudGF0aW9uIDAKCQkJCQkJCQkJCQkJL0Jhc2VsaW5lU2hpZnQgLTguODg2NjIKCQkJCQkJCQkJCQkJL0tlcm5UeXBlIDEKCQkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJCV0KCQkJCQkJCQkJCQkvUnVuTGVuZ3RocyBbIDMgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJXQoJCQkJCQkJCQkvQW5ub3RhdGlvbgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1dpZHRoIDAuMAoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCV0KCQkJCQkJPj4KCQkJCQkJXQoJCQkJCT4+CgkJCQkJXQoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJXQoJCT4+CgkJL09wdGljYWxBbGlnbm1lbnQgZmFsc2UKCT4+Cgk8PAoJCS9Nb2RlbAoJCTw8CgkJCS9UZXh0ICj+/wBTAFYARwANKQoJCQkvUGFyYWdyYXBoUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJCS9QYXJhZ3JhcGhTaGVldAoJCQkJCQk8PAoJCQkJCQkJL05hbWUgKP7/KQoJCQkJCQkJL0ZlYXR1cmVzCgkJCQkJCQk8PAoJCQkJCQkJCS9KdXN0aWZpY2F0aW9uIDIKCQkJCQkJCQkvRmlyc3RMaW5lSW5kZW50IDAuMAoJCQkJCQkJCS9TdGFydEluZGVudCAwLjAKCQkJCQkJCQkvRW5kSW5kZW50IDAuMAoJCQkJCQkJCS9TcGFjZUJlZm9yZSAwLjAKCQkJCQkJCQkvU3BhY2VBZnRlciAwLjAKCQkJCQkJCQkvRHJvcENhcHMgMQoJCQkJCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCQkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCQkJCQkvSHlwaGVuYXRlZFdvcmRTaXplIDgKCQkJCQkJCQkvUHJlSHlwaGVuIDMKCQkJCQkJCQkvUG9zdEh5cGhlbiAzCgkJCQkJCQkJL0NvbnNlY3V0aXZlSHlwaGVucyAyCgkJCQkJCQkJL1pvbmUgMzYuMAoJCQkJCQkJCS9IeXBoZW5hdGVDYXBpdGFsaXplZCB0cnVlCgkJCQkJCQkJL0h5cGhlbmF0aW9uUHJlZmVyZW5jZSAwLjUKCQkJCQkJCQkvV29yZFNwYWNpbmcgWyAwLjggMS4wIDEuMzMgXQoJCQkJCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkJCQkJL1NpbmdsZVdvcmRKdXN0aWZpY2F0aW9uIDYKCQkJCQkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJCQkJCS9BdXRvVENZIDEKCQkJCQkJCQkvS2VlcFRvZ2V0aGVyIHRydWUKCQkJCQkJCQkvQnVyYXNhZ2FyaVR5cGUgMAoJCQkJCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJCQkJCS9LdXJpa2Flc2hpTW9qaVNob3JpIGZhbHNlCgkJCQkJCQkJL0tpbnNva3UgL25pbAoJCQkJCQkJCS9Nb2ppS3VtaVRhYmxlIC9uaWwKCQkJCQkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJCQkJCQkvVGFiU3RvcHMKCQkJCQkJCQk8PAoJCQkJCQkJCT4+CgkJCQkJCQkJL0RlZmF1bHRUYWJXaWR0aCAzNi4wCgkJCQkJCQkJL0RlZmF1bHRTdHlsZQoJCQkJCQkJCTw8CgkJCQkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkJCQkJPj4KCQkJCQkJCT4+CgkJCQkJCQkvUGFyZW50IDAKCQkJCQkJPj4KCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL1N0eWxlUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJCS9TdHlsZVNoZWV0CgkJCQkJCTw8CgkJCQkJCQkvTmFtZSAo/v8pCgkJCQkJCQkvUGFyZW50IDAKCQkJCQkJCS9GZWF0dXJlcwoJCQkJCQkJPDwKCQkJCQkJCQkvRm9udCAwCgkJCQkJCQkJL0ZvbnRTaXplIDIwLjc3MzMxCgkJCQkJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCQkJCQkvQXV0b0xlYWRpbmcgZmFsc2UKCQkJCQkJCQkvTGVhZGluZyAzOS44NjE5OAoJCQkJCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkJCQkJL1RyYWNraW5nIDIwCgkJCQkJCQkJL0Jhc2VsaW5lU2hpZnQgLTguODg2NjIKCQkJCQkJCQkvQ2hhcmFjdGVyUm90YXRpb24gMC4wCgkJCQkJCQkJL0F1dG9LZXJuIDEKCQkJCQkJCQkvRm9udENhcHMgMAoJCQkJCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJCQkJCS9Gb250T1RQb3NpdGlvbiAwCgkJCQkJCQkJL1N0cmlrZXRocm91Z2hQb3NpdGlvbiAwCgkJCQkJCQkJL1VuZGVybGluZVBvc2l0aW9uIDAKCQkJCQkJCQkvVW5kZXJsaW5lT2Zmc2V0IDAuMAoJCQkJCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJCQkJCS9EaXNjcmV0aW9uYXJ5TGlnYXR1cmVzIGZhbHNlCgkJCQkJCQkJL0NvbnRleHR1YWxMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvQWx0ZXJuYXRlTGlnYXR1cmVzIGZhbHNlCgkJCQkJCQkJL09sZFN0eWxlIGZhbHNlCgkJCQkJCQkJL0ZyYWN0aW9ucyBmYWxzZQoJCQkJCQkJCS9PcmRpbmFscyBmYWxzZQoJCQkJCQkJCS9Td2FzaCBmYWxzZQoJCQkJCQkJCS9UaXRsaW5nIGZhbHNlCgkJCQkJCQkJL0Nvbm5lY3Rpb25Gb3JtcyBmYWxzZQoJCQkJCQkJCS9TdHlsaXN0aWNBbHRlcm5hdGVzIGZhbHNlCgkJCQkJCQkJL09ybmFtZW50cyBmYWxzZQoJCQkJCQkJCS9GaWd1cmVTdHlsZSAwCgkJCQkJCQkJL1Byb3BvcnRpb25hbE1ldHJpY3MgZmFsc2UKCQkJCQkJCQkvS2FuYSBmYWxzZQoJCQkJCQkJCS9JdGFsaWNzIGZhbHNlCgkJCQkJCQkJL1J1YnkgZmFsc2UKCQkJCQkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMQoJCQkJCQkJCS9Uc3VtZSAwLjAKCQkJCQkJCQkvU3R5bGVSdW5BbGlnbm1lbnQgMgoJCQkJCQkJCS9MYW5ndWFnZSAwCgkJCQkJCQkJL0phcGFuZXNlQWx0ZXJuYXRlRmVhdHVyZSAwCgkJCQkJCQkJL0VuYWJsZVdhcmlDaHUgZmFsc2UKCQkJCQkJCQkvV2FyaUNodUxpbmVDb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVMaW5lR2FwIDAKCQkJCQkJCQkvV2FyaUNodVN1YkxpbmVBbW91bnQKCQkJCQkJCQk8PAoJCQkJCQkJCQkvV2FyaUNodVN1YkxpbmVTY2FsZSAwLjUKCQkJCQkJCQk+PgoJCQkJCQkJCS9XYXJpQ2h1V2lkb3dBbW91bnQgMgoJCQkJCQkJCS9XYXJpQ2h1T3JwaGFuQW1vdW50IDIKCQkJCQkJCQkvV2FyaUNodUp1c3RpZmljYXRpb24gNwoJCQkJCQkJCS9UQ1lVcERvd25BZGp1c3RtZW50IDAKCQkJCQkJCQkvVENZTGVmdFJpZ2h0QWRqdXN0bWVudCAwCgkJCQkJCQkJL0xlZnRBa2kgLTEuMAoJCQkJCQkJCS9SaWdodEFraSAtMS4wCgkJCQkJCQkJL0ppRG9yaSAwCgkJCQkJCQkJL05vQnJlYWsgZmFsc2UKCQkJCQkJCQkvRmlsbENvbG9yCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCS9TdHJva2VDb2xvcgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQkvQmxlbmQKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVCbGVuZGVyCgkJCQkJCQkJPj4KCQkJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkJCQkJL0ZpbGxGaXJzdCBmYWxzZQoJCQkJCQkJCS9GaWxsT3ZlclByaW50IGZhbHNlCgkJCQkJCQkJL1N0cm9rZU92ZXJQcmludCBmYWxzZQoJCQkJCQkJCS9MaW5lQ2FwIDAKCQkJCQkJCQkvTGluZUpvaW4gMAoJCQkJCQkJCS9MaW5lV2lkdGggMC4wNDE2NwoJCQkJCQkJCS9NaXRlckxpbWl0IDAuMDQxNjcKCQkJCQkJCQkvTGluZURhc2hPZmZzZXQgMC4wCgkJCQkJCQkJL0xpbmVEYXNoQXJyYXkgWyBdCgkJCQkJCQkJL1R5cGUxRW5jb2RpbmdOYW1lcyBbIF0KCQkJCQkJCT4+CgkJCQkJCT4+CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9LZXJuUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9BbHRlcm5hdGVHbHlwaFJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3RvcnlTaGVldAoJCQk8PAoJCQkJL0FudGlBbGlhcyAyCgkJCQkvVXNlRnJhY3Rpb25hbEdseXBoV2lkdGhzIHRydWUKCQkJPj4KCQk+PgoJCS9WaWV3CgkJPDwKCQkJL0ZyYW1lcyBbCgkJCTw8CgkJCQkvUmVzb3VyY2UgMTEKCQkJPj4KCQkJXQoJCQkvUmVuZGVyZWREYXRhCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJCS9MaW5lQ291bnQgMQoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3RyaWtlcyBbCgkJCTw8CgkJCQkvU3RyZWFtVGFnIC9QYXRoU2VsZWN0R3JvdXBDaGFyYWN0ZXIKCQkJCS9UcmFuc2Zvcm0KCQkJCTw8CgkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJL0NoaWxkUHJvY2Vzc2lvbiAwCgkJCQkvQ2hpbGRyZW4gWwoJCQkJPDwKCQkJCQkvU3RyZWFtVGFnIC9GcmFtZVN0cmlrZQoJCQkJCS9GcmFtZSAxMQoJCQkJCS9UcmFuc2Zvcm0KCQkJCQk8PAoJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJPj4KCQkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDIKCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCTw8CgkJCQkJCS9TdHJlYW1UYWcgL1Jvd0NvbFN0cmlrZQoJCQkJCQkvUm93Q29sSW5kZXggMAoJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCTw8CgkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCT4+CgkJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDEKCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJPDwKCQkJCQkJCS9TdHJlYW1UYWcgL1Jvd0NvbFN0cmlrZQoJCQkJCQkJL1Jvd0NvbEluZGV4IDAKCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCTw8CgkJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQkJPj4KCQkJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAyCgkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJPDwKCQkJCQkJCQkvU3RyZWFtVGFnIC9MaW5lU3RyaWtlCgkJCQkJCQkJL0Jhc2VsaW5lIDAuMAoJCQkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCQkJL0VNSGVpZ2h0IDIwLjc3MzMxCgkJCQkJCQkJL0RIZWlnaHQgMTQuODMxOTIKCQkJCQkJCQkvU2VsZWN0aW9uQXNjZW50IC0xNy44MDI2MQoJCQkJCQkJCS9TZWxlY3Rpb25EZXNjZW50IDEzLjM5NDMzCgkJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJCTw8CgkJCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJCQk+PgoJCQkJCQkJCS9Cb3VuZHMgWyAwLjAgLTE3LjgwMjYxIDAuMCA0LjUwNzcxIF0KCQkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDEKCQkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NlZ21lbnQKCQkJCQkJCQkJL01hcHBpbmcKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9DaGFyYWN0ZXJDb3VudCA0CgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9GaXJzdENoYXJhY3RlckluZGV4SW5TZWdtZW50IDAKCQkJCQkJCQkJL1VuZGVybGluZUludmFsaWRhdGlvbiBbIC0yMS41ODMwOCA4Ljg4NjYyIDIxLjk5ODU0IDguODg2NjIgXQoJCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvT3JpZ2luIFsgLTIxLjU4MzA4IDAuMCBdCgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9Cb3VuZHMgWyAwLjAgLTE3LjgwMjYxIDMwMDIxLjU4Mzk4IDQuNTA3NzEgXQoJCQkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDEKCQkJCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL0dseXBoU3RyaWtlCgkJCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9PcmlnaW4gWyAwLjAgOC44ODY2MiBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgNDMuNTgxNjIgNC41MDc3MSBdCgkJCQkJCQkJCQkvR2x5cGhzIFsgNTggNjEgNDYgMyBdCgkJCQkJCQkJCQkvR2x5cGhBZGp1c3RtZW50cwoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvRGF0YSBbCgkJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkJL0JhY2tGaXhlZCAwLjQxNTQ3CgkJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCQldCgkJCQkJCQkJCQkJL1J1bkxlbmd0aHMgWyA0IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkvUmVuZGVyZWRCb3VuZHMgWyAtMjEuNTgzMDggLTguOTE1OTkgMjEuOTk4NTQgMTMuMzk0MzMgXQoJCQkJCQkJCQkJL1Zpc3VhbEJvdW5kcyBbIC0yMS41ODMwOCAtOC45MTU5OSAyMS45OTg1NCAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvSW52YWxpZGF0aW9uIFsgLTIxLjU4MzA4IC04LjkxNTk5IDMzLjExMjAxIDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9TaGFkb3dTdHlsZXNSdW4KCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL0RhdGEgWwoJCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJCS9JbmRleCAwCgkJCQkJCQkJCQkJCS9Gb250IDAKCQkJCQkJCQkJCQkJL09yaWVudGF0aW9uIDAKCQkJCQkJCQkJCQkJL0Jhc2VsaW5lU2hpZnQgLTguODg2NjIKCQkJCQkJCQkJCQkJL0tlcm5UeXBlIDEKCQkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJCV0KCQkJCQkJCQkJCQkvUnVuTGVuZ3RocyBbIDQgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJXQoJCQkJCQkJCQkvQW5ub3RhdGlvbgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1dpZHRoIDAuMAoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCV0KCQkJCQkJPj4KCQkJCQkJXQoJCQkJCT4+CgkJCQkJXQoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJXQoJCT4+CgkJL09wdGljYWxBbGlnbm1lbnQgZmFsc2UKCT4+Cgk8PAoJCS9Nb2RlbAoJCTw8CgkJCS9UZXh0ICj+/wBJAE4ARABEAA0pCgkJCS9QYXJhZ3JhcGhSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1BhcmFncmFwaFNoZWV0CgkJCQkJCTw8CgkJCQkJCQkvTmFtZSAo/v8pCgkJCQkJCQkvRmVhdHVyZXMKCQkJCQkJCTw8CgkJCQkJCQkJL0p1c3RpZmljYXRpb24gMgoJCQkJCQkJCS9GaXJzdExpbmVJbmRlbnQgMC4wCgkJCQkJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJCQkJCS9Ecm9wQ2FwcyAxCgkJCQkJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgOAoJCQkJCQkJCS9QcmVIeXBoZW4gMwoJCQkJCQkJCS9Qb3N0SHlwaGVuIDMKCQkJCQkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDIKCQkJCQkJCQkvWm9uZSAzNi4wCgkJCQkJCQkJL0h5cGhlbmF0ZUNhcGl0YWxpemVkIHRydWUKCQkJCQkJCQkvSHlwaGVuYXRpb25QcmVmZXJlbmNlIDAuNQoJCQkJCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCQkJCQkvU2luZ2xlV29yZEp1c3RpZmljYXRpb24gNgoJCQkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCQkJL0F1dG9UQ1kgMQoJCQkJCQkJCS9LZWVwVG9nZXRoZXIgdHJ1ZQoJCQkJCQkJCS9CdXJhc2FnYXJpVHlwZSAwCgkJCQkJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkJCQkJL0t1cmlrYWVzaGlNb2ppU2hvcmkgZmFsc2UKCQkJCQkJCQkvS2luc29rdSAvbmlsCgkJCQkJCQkJL01vamlLdW1pVGFibGUgL25pbAoJCQkJCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQkJCQkJCS9UYWJTdG9wcwoJCQkJCQkJCTw8CgkJCQkJCQkJPj4KCQkJCQkJCQkvRGVmYXVsdFRhYldpZHRoIDM2LjAKCQkJCQkJCQkvRGVmYXVsdFN0eWxlCgkJCQkJCQkJPDwKCQkJCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQk+PgoJCQkJCQkJPj4KCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQk+PgoJCQkJCT4+CgkJCQkJL0xlbmd0aCA1CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3R5bGVSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1N0eWxlU2hlZXQKCQkJCQkJPDwKCQkJCQkJCS9OYW1lICj+/ykKCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQkJL0ZlYXR1cmVzCgkJCQkJCQk8PAoJCQkJCQkJCS9Gb250IDAKCQkJCQkJCQkvRm9udFNpemUgMjAuNzczMzEKCQkJCQkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkJCS9BdXRvTGVhZGluZyBmYWxzZQoJCQkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCQkJCQkvVHJhY2tpbmcgMjAKCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCS9DaGFyYWN0ZXJSb3RhdGlvbiAwLjAKCQkJCQkJCQkvQXV0b0tlcm4gMQoJCQkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkJCQkJL0ZvbnRPVFBvc2l0aW9uIDAKCQkJCQkJCQkvU3RyaWtldGhyb3VnaFBvc2l0aW9uIDAKCQkJCQkJCQkvVW5kZXJsaW5lUG9zaXRpb24gMAoJCQkJCQkJCS9VbmRlcmxpbmVPZmZzZXQgMC4wCgkJCQkJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkJCQkJL0Rpc2NyZXRpb25hcnlMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvQ29udGV4dHVhbExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9BbHRlcm5hdGVMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvT2xkU3R5bGUgZmFsc2UKCQkJCQkJCQkvRnJhY3Rpb25zIGZhbHNlCgkJCQkJCQkJL09yZGluYWxzIGZhbHNlCgkJCQkJCQkJL1N3YXNoIGZhbHNlCgkJCQkJCQkJL1RpdGxpbmcgZmFsc2UKCQkJCQkJCQkvQ29ubmVjdGlvbkZvcm1zIGZhbHNlCgkJCQkJCQkJL1N0eWxpc3RpY0FsdGVybmF0ZXMgZmFsc2UKCQkJCQkJCQkvT3JuYW1lbnRzIGZhbHNlCgkJCQkJCQkJL0ZpZ3VyZVN0eWxlIDAKCQkJCQkJCQkvUHJvcG9ydGlvbmFsTWV0cmljcyBmYWxzZQoJCQkJCQkJCS9LYW5hIGZhbHNlCgkJCQkJCQkJL0l0YWxpY3MgZmFsc2UKCQkJCQkJCQkvUnVieSBmYWxzZQoJCQkJCQkJCS9CYXNlbGluZURpcmVjdGlvbiAxCgkJCQkJCQkJL1RzdW1lIDAuMAoJCQkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCQkJL0xhbmd1YWdlIDAKCQkJCQkJCQkvSmFwYW5lc2VBbHRlcm5hdGVGZWF0dXJlIDAKCQkJCQkJCQkvRW5hYmxlV2FyaUNodSBmYWxzZQoJCQkJCQkJCS9XYXJpQ2h1TGluZUNvdW50IDIKCQkJCQkJCQkvV2FyaUNodUxpbmVHYXAgMAoJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZUFtb3VudAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZVNjYWxlIDAuNQoJCQkJCQkJCT4+CgkJCQkJCQkJL1dhcmlDaHVXaWRvd0Ftb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVPcnBoYW5BbW91bnQgMgoJCQkJCQkJCS9XYXJpQ2h1SnVzdGlmaWNhdGlvbiA3CgkJCQkJCQkJL1RDWVVwRG93bkFkanVzdG1lbnQgMAoJCQkJCQkJCS9UQ1lMZWZ0UmlnaHRBZGp1c3RtZW50IDAKCQkJCQkJCQkvTGVmdEFraSAtMS4wCgkJCQkJCQkJL1JpZ2h0QWtpIC0xLjAKCQkJCQkJCQkvSmlEb3JpIDAKCQkJCQkJCQkvTm9CcmVhayBmYWxzZQoJCQkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCS9CbGVuZAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZUJsZW5kZXIKCQkJCQkJCQk+PgoJCQkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCQkJL0ZpbGxPdmVyUHJpbnQgZmFsc2UKCQkJCQkJCQkvU3Ryb2tlT3ZlclByaW50IGZhbHNlCgkJCQkJCQkJL0xpbmVDYXAgMAoJCQkJCQkJCS9MaW5lSm9pbiAwCgkJCQkJCQkJL0xpbmVXaWR0aCAwLjA0MTY3CgkJCQkJCQkJL01pdGVyTGltaXQgMC4wNDE2NwoJCQkJCQkJCS9MaW5lRGFzaE9mZnNldCAwLjAKCQkJCQkJCQkvTGluZURhc2hBcnJheSBbIF0KCQkJCQkJCQkvVHlwZTFFbmNvZGluZ05hbWVzIFsgXQoJCQkJCQkJPj4KCQkJCQkJPj4KCQkJCQk+PgoJCQkJCS9MZW5ndGggNQoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0tlcm5SdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJCS9MZW5ndGggNQoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0FsdGVybmF0ZUdseXBoUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDUKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdG9yeVNoZWV0CgkJCTw8CgkJCQkvQW50aUFsaWFzIDQKCQkJCS9Vc2VGcmFjdGlvbmFsR2x5cGhXaWR0aHMgdHJ1ZQoJCQk+PgoJCT4+CgkJL1ZpZXcKCQk8PAoJCQkvRnJhbWVzIFsKCQkJPDwKCQkJCS9SZXNvdXJjZSAxMgoJCQk+PgoJCQldCgkJCS9SZW5kZXJlZERhdGEKCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL0xpbmVDb3VudCAxCgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDUKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdHJpa2VzIFsKCQkJPDwKCQkJCS9TdHJlYW1UYWcgL1BhdGhTZWxlY3RHcm91cENoYXJhY3RlcgoJCQkJL1RyYW5zZm9ybQoJCQkJPDwKCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkvQ2hpbGRQcm9jZXNzaW9uIDAKCQkJCS9DaGlsZHJlbiBbCgkJCQk8PAoJCQkJCS9TdHJlYW1UYWcgL0ZyYW1lU3RyaWtlCgkJCQkJL0ZyYW1lIDEyCgkJCQkJL1RyYW5zZm9ybQoJCQkJCTw8CgkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQk+PgoJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCS9DaGlsZFByb2Nlc3Npb24gMgoJCQkJCS9DaGlsZHJlbiBbCgkJCQkJPDwKCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCS9Sb3dDb2xJbmRleCAwCgkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJPDwKCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJPj4KCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQk8PAoJCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCQkvUm93Q29sSW5kZXggMAoJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJPDwKCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCQk+PgoJCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDIKCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQk8PAoJCQkJCQkJCS9TdHJlYW1UYWcgL0xpbmVTdHJpa2UKCQkJCQkJCQkvQmFzZWxpbmUgMC4wCgkJCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJCQkvRU1IZWlnaHQgMjAuNzczMzEKCQkJCQkJCQkvREhlaWdodCAxNC44MzE5MgoJCQkJCQkJCS9TZWxlY3Rpb25Bc2NlbnQgLTE3LjgwMjYxCgkJCQkJCQkJL1NlbGVjdGlvbkRlc2NlbnQgMTMuMzk0MzMKCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJPDwKCQkJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQkJCT4+CgkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMC4wIDQuNTA3NzEgXQoJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2VnbWVudAoJCQkJCQkJCQkvTWFwcGluZwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0NoYXJhY3RlckNvdW50IDUKCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpcnN0Q2hhcmFjdGVySW5kZXhJblNlZ21lbnQgMAoJCQkJCQkJCQkvVW5kZXJsaW5lSW52YWxpZGF0aW9uIFsgLTI2Ljc3NjY4IDguODg2NjIgMjcuMTkyMTUgOC44ODY2MiBdCgkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9PcmlnaW4gWyAtMjYuNzc2NjggMC4wIF0KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMzAwMjYuNzc3MzQgNC41MDc3MSBdCgkJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvR2x5cGhTdHJpa2UKCQkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL09yaWdpbiBbIDAuMCA4Ljg4NjYyIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSA1My45Njg4MyA0LjUwNzcxIF0KCQkJCQkJCQkJCS9HbHlwaHMgWyA0OCA1MyA0MyA0MyAzIF0KCQkJCQkJCQkJCS9HbHlwaEFkanVzdG1lbnRzCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9EYXRhIFsKCQkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCQkvQmFja0ZpeGVkIDAuNDE1NDcKCQkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJCV0KCQkJCQkJCQkJCQkvUnVuTGVuZ3RocyBbIDUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCS9SZW5kZXJlZEJvdW5kcyBbIC0yNi43NzY2OCAtOC45MTU5OSAyNy4xOTIxNSAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvVmlzdWFsQm91bmRzIFsgLTI2Ljc3NjY4IC04LjkxNTk5IDI3LjE5MjE1IDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9JbnZhbGlkYXRpb24gWyAtMjYuNzc2NjggLTguOTE1OTkgMzguMzA1NjEgMTMuMzk0MzMgXQoJCQkJCQkJCQkJL1NoYWRvd1N0eWxlc1J1bgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvRGF0YSBbCgkJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkJL0luZGV4IDAKCQkJCQkJCQkJCQkJL0ZvbnQgMAoJCQkJCQkJCQkJCQkvT3JpZW50YXRpb24gMAoJCQkJCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCQkJCQkvS2VyblR5cGUgMQoJCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkJXQoJCQkJCQkJCQkJCS9SdW5MZW5ndGhzIFsgNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQldCgkJCQkJCQkJCS9Bbm5vdGF0aW9uCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvV2lkdGggMC4wCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJXQoJCQkJCQk+PgoJCQkJCQldCgkJCQkJPj4KCQkJCQldCgkJCQk+PgoJCQkJXQoJCQk+PgoJCQldCgkJPj4KCQkvT3B0aWNhbEFsaWdubWVudCBmYWxzZQoJPj4KCTw8CgkJL01vZGVsCgkJPDwKCQkJL1RleHQgKP7/AEkATgBYAA0pCgkJCS9QYXJhZ3JhcGhSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1BhcmFncmFwaFNoZWV0CgkJCQkJCTw8CgkJCQkJCQkvTmFtZSAo/v8pCgkJCQkJCQkvRmVhdHVyZXMKCQkJCQkJCTw8CgkJCQkJCQkJL0p1c3RpZmljYXRpb24gMgoJCQkJCQkJCS9GaXJzdExpbmVJbmRlbnQgMC4wCgkJCQkJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJCQkJCS9Ecm9wQ2FwcyAxCgkJCQkJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgOAoJCQkJCQkJCS9QcmVIeXBoZW4gMwoJCQkJCQkJCS9Qb3N0SHlwaGVuIDMKCQkJCQkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDIKCQkJCQkJCQkvWm9uZSAzNi4wCgkJCQkJCQkJL0h5cGhlbmF0ZUNhcGl0YWxpemVkIHRydWUKCQkJCQkJCQkvSHlwaGVuYXRpb25QcmVmZXJlbmNlIDAuNQoJCQkJCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCQkJCQkvU2luZ2xlV29yZEp1c3RpZmljYXRpb24gNgoJCQkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCQkJL0F1dG9UQ1kgMQoJCQkJCQkJCS9LZWVwVG9nZXRoZXIgdHJ1ZQoJCQkJCQkJCS9CdXJhc2FnYXJpVHlwZSAwCgkJCQkJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkJCQkJL0t1cmlrYWVzaGlNb2ppU2hvcmkgZmFsc2UKCQkJCQkJCQkvS2luc29rdSAvbmlsCgkJCQkJCQkJL01vamlLdW1pVGFibGUgL25pbAoJCQkJCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQkJCQkJCS9UYWJTdG9wcwoJCQkJCQkJCTw8CgkJCQkJCQkJPj4KCQkJCQkJCQkvRGVmYXVsdFRhYldpZHRoIDM2LjAKCQkJCQkJCQkvRGVmYXVsdFN0eWxlCgkJCQkJCQkJPDwKCQkJCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQk+PgoJCQkJCQkJPj4KCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQk+PgoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3R5bGVSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1N0eWxlU2hlZXQKCQkJCQkJPDwKCQkJCQkJCS9OYW1lICj+/ykKCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQkJL0ZlYXR1cmVzCgkJCQkJCQk8PAoJCQkJCQkJCS9Gb250IDAKCQkJCQkJCQkvRm9udFNpemUgMjAuNzczMzEKCQkJCQkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkJCS9BdXRvTGVhZGluZyBmYWxzZQoJCQkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCQkJCQkvVHJhY2tpbmcgODAKCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCS9DaGFyYWN0ZXJSb3RhdGlvbiAwLjAKCQkJCQkJCQkvQXV0b0tlcm4gMQoJCQkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkJCQkJL0ZvbnRPVFBvc2l0aW9uIDAKCQkJCQkJCQkvU3RyaWtldGhyb3VnaFBvc2l0aW9uIDAKCQkJCQkJCQkvVW5kZXJsaW5lUG9zaXRpb24gMAoJCQkJCQkJCS9VbmRlcmxpbmVPZmZzZXQgMC4wCgkJCQkJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkJCQkJL0Rpc2NyZXRpb25hcnlMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvQ29udGV4dHVhbExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9BbHRlcm5hdGVMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvT2xkU3R5bGUgZmFsc2UKCQkJCQkJCQkvRnJhY3Rpb25zIGZhbHNlCgkJCQkJCQkJL09yZGluYWxzIGZhbHNlCgkJCQkJCQkJL1N3YXNoIGZhbHNlCgkJCQkJCQkJL1RpdGxpbmcgZmFsc2UKCQkJCQkJCQkvQ29ubmVjdGlvbkZvcm1zIGZhbHNlCgkJCQkJCQkJL1N0eWxpc3RpY0FsdGVybmF0ZXMgZmFsc2UKCQkJCQkJCQkvT3JuYW1lbnRzIGZhbHNlCgkJCQkJCQkJL0ZpZ3VyZVN0eWxlIDAKCQkJCQkJCQkvUHJvcG9ydGlvbmFsTWV0cmljcyBmYWxzZQoJCQkJCQkJCS9LYW5hIGZhbHNlCgkJCQkJCQkJL0l0YWxpY3MgZmFsc2UKCQkJCQkJCQkvUnVieSBmYWxzZQoJCQkJCQkJCS9CYXNlbGluZURpcmVjdGlvbiAxCgkJCQkJCQkJL1RzdW1lIDAuMAoJCQkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCQkJL0xhbmd1YWdlIDAKCQkJCQkJCQkvSmFwYW5lc2VBbHRlcm5hdGVGZWF0dXJlIDAKCQkJCQkJCQkvRW5hYmxlV2FyaUNodSBmYWxzZQoJCQkJCQkJCS9XYXJpQ2h1TGluZUNvdW50IDIKCQkJCQkJCQkvV2FyaUNodUxpbmVHYXAgMAoJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZUFtb3VudAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZVNjYWxlIDAuNQoJCQkJCQkJCT4+CgkJCQkJCQkJL1dhcmlDaHVXaWRvd0Ftb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVPcnBoYW5BbW91bnQgMgoJCQkJCQkJCS9XYXJpQ2h1SnVzdGlmaWNhdGlvbiA3CgkJCQkJCQkJL1RDWVVwRG93bkFkanVzdG1lbnQgMAoJCQkJCQkJCS9UQ1lMZWZ0UmlnaHRBZGp1c3RtZW50IDAKCQkJCQkJCQkvTGVmdEFraSAtMS4wCgkJCQkJCQkJL1JpZ2h0QWtpIC0xLjAKCQkJCQkJCQkvSmlEb3JpIDAKCQkJCQkJCQkvTm9CcmVhayBmYWxzZQoJCQkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCS9CbGVuZAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZUJsZW5kZXIKCQkJCQkJCQk+PgoJCQkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCQkJL0ZpbGxPdmVyUHJpbnQgZmFsc2UKCQkJCQkJCQkvU3Ryb2tlT3ZlclByaW50IGZhbHNlCgkJCQkJCQkJL0xpbmVDYXAgMAoJCQkJCQkJCS9MaW5lSm9pbiAwCgkJCQkJCQkJL0xpbmVXaWR0aCAwLjA0MTY3CgkJCQkJCQkJL01pdGVyTGltaXQgMC4wNDE2NwoJCQkJCQkJCS9MaW5lRGFzaE9mZnNldCAwLjAKCQkJCQkJCQkvTGluZURhc2hBcnJheSBbIF0KCQkJCQkJCQkvVHlwZTFFbmNvZGluZ05hbWVzIFsgXQoJCQkJCQkJPj4KCQkJCQkJPj4KCQkJCQk+PgoJCQkJCS9MZW5ndGggMQoJCQkJPj4KCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCQkvU3R5bGVTaGVldAoJCQkJCQk8PAoJCQkJCQkJL05hbWUgKP7/KQoJCQkJCQkJL1BhcmVudCAwCgkJCQkJCQkvRmVhdHVyZXMKCQkJCQkJCTw8CgkJCQkJCQkJL0ZvbnQgMAoJCQkJCQkJCS9Gb250U2l6ZSAyMC43NzMzMQoJCQkJCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkJCQkJL0F1dG9MZWFkaW5nIGZhbHNlCgkJCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJCQkvSG9yaXpvbnRhbFNjYWxlIDEuMAoJCQkJCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJCQkJCS9UcmFja2luZyAyMAoJCQkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCQkJL0NoYXJhY3RlclJvdGF0aW9uIDAuMAoJCQkJCQkJCS9BdXRvS2VybiAxCgkJCQkJCQkJL0ZvbnRDYXBzIDAKCQkJCQkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCQkJCQkvRm9udE9UUG9zaXRpb24gMAoJCQkJCQkJCS9TdHJpa2V0aHJvdWdoUG9zaXRpb24gMAoJCQkJCQkJCS9VbmRlcmxpbmVQb3NpdGlvbiAwCgkJCQkJCQkJL1VuZGVybGluZU9mZnNldCAwLjAKCQkJCQkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCQkJCQkvRGlzY3JldGlvbmFyeUxpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9Db250ZXh0dWFsTGlnYXR1cmVzIGZhbHNlCgkJCQkJCQkJL0FsdGVybmF0ZUxpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9PbGRTdHlsZSBmYWxzZQoJCQkJCQkJCS9GcmFjdGlvbnMgZmFsc2UKCQkJCQkJCQkvT3JkaW5hbHMgZmFsc2UKCQkJCQkJCQkvU3dhc2ggZmFsc2UKCQkJCQkJCQkvVGl0bGluZyBmYWxzZQoJCQkJCQkJCS9Db25uZWN0aW9uRm9ybXMgZmFsc2UKCQkJCQkJCQkvU3R5bGlzdGljQWx0ZXJuYXRlcyBmYWxzZQoJCQkJCQkJCS9Pcm5hbWVudHMgZmFsc2UKCQkJCQkJCQkvRmlndXJlU3R5bGUgMAoJCQkJCQkJCS9Qcm9wb3J0aW9uYWxNZXRyaWNzIGZhbHNlCgkJCQkJCQkJL0thbmEgZmFsc2UKCQkJCQkJCQkvSXRhbGljcyBmYWxzZQoJCQkJCQkJCS9SdWJ5IGZhbHNlCgkJCQkJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDEKCQkJCQkJCQkvVHN1bWUgMC4wCgkJCQkJCQkJL1N0eWxlUnVuQWxpZ25tZW50IDIKCQkJCQkJCQkvTGFuZ3VhZ2UgMAoJCQkJCQkJCS9KYXBhbmVzZUFsdGVybmF0ZUZlYXR1cmUgMAoJCQkJCQkJCS9FbmFibGVXYXJpQ2h1IGZhbHNlCgkJCQkJCQkJL1dhcmlDaHVMaW5lQ291bnQgMgoJCQkJCQkJCS9XYXJpQ2h1TGluZUdhcCAwCgkJCQkJCQkJL1dhcmlDaHVTdWJMaW5lQW1vdW50CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1dhcmlDaHVTdWJMaW5lU2NhbGUgMC41CgkJCQkJCQkJPj4KCQkJCQkJCQkvV2FyaUNodVdpZG93QW1vdW50IDIKCQkJCQkJCQkvV2FyaUNodU9ycGhhbkFtb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVKdXN0aWZpY2F0aW9uIDcKCQkJCQkJCQkvVENZVXBEb3duQWRqdXN0bWVudCAwCgkJCQkJCQkJL1RDWUxlZnRSaWdodEFkanVzdG1lbnQgMAoJCQkJCQkJCS9MZWZ0QWtpIC0xLjAKCQkJCQkJCQkvUmlnaHRBa2kgLTEuMAoJCQkJCQkJCS9KaURvcmkgMAoJCQkJCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJL0JsZW5kCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlQmxlbmRlcgoJCQkJCQkJCT4+CgkJCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkJCS9GaWxsRmlyc3QgZmFsc2UKCQkJCQkJCQkvRmlsbE92ZXJQcmludCBmYWxzZQoJCQkJCQkJCS9TdHJva2VPdmVyUHJpbnQgZmFsc2UKCQkJCQkJCQkvTGluZUNhcCAwCgkJCQkJCQkJL0xpbmVKb2luIDAKCQkJCQkJCQkvTGluZVdpZHRoIDAuMDQxNjcKCQkJCQkJCQkvTWl0ZXJMaW1pdCAwLjA0MTY3CgkJCQkJCQkJL0xpbmVEYXNoT2Zmc2V0IDAuMAoJCQkJCQkJCS9MaW5lRGFzaEFycmF5IFsgXQoJCQkJCQkJCS9UeXBlMUVuY29kaW5nTmFtZXMgWyBdCgkJCQkJCQk+PgoJCQkJCQk+PgoJCQkJCT4+CgkJCQkJL0xlbmd0aCAzCgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvS2VyblJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvQWx0ZXJuYXRlR2x5cGhSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL1N0b3J5U2hlZXQKCQkJPDwKCQkJCS9BbnRpQWxpYXMgNAoJCQkJL1VzZUZyYWN0aW9uYWxHbHlwaFdpZHRocyB0cnVlCgkJCT4+CgkJPj4KCQkvVmlldwoJCTw8CgkJCS9GcmFtZXMgWwoJCQk8PAoJCQkJL1Jlc291cmNlIDEzCgkJCT4+CgkJCV0KCQkJL1JlbmRlcmVkRGF0YQoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCQkvTGluZUNvdW50IDEKCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL1N0cmlrZXMgWwoJCQk8PAoJCQkJL1N0cmVhbVRhZyAvUGF0aFNlbGVjdEdyb3VwQ2hhcmFjdGVyCgkJCQkvVHJhbnNmb3JtCgkJCQk8PAoJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCT4+CgkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCS9DaGlsZFByb2Nlc3Npb24gMAoJCQkJL0NoaWxkcmVuIFsKCQkJCTw8CgkJCQkJL1N0cmVhbVRhZyAvRnJhbWVTdHJpa2UKCQkJCQkvRnJhbWUgMTMKCQkJCQkvVHJhbnNmb3JtCgkJCQkJPDwKCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCT4+CgkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAyCgkJCQkJL0NoaWxkcmVuIFsKCQkJCQk8PAoJCQkJCQkvU3RyZWFtVGFnIC9Sb3dDb2xTdHJpa2UKCQkJCQkJL1Jvd0NvbEluZGV4IDAKCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQk8PAoJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQk+PgoJCQkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAxCgkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCTw8CgkJCQkJCQkvU3RyZWFtVGFnIC9Sb3dDb2xTdHJpa2UKCQkJCQkJCS9Sb3dDb2xJbmRleCAwCgkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQk8PAoJCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJCT4+CgkJCQkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMgoJCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJCTw8CgkJCQkJCQkJL1N0cmVhbVRhZyAvTGluZVN0cmlrZQoJCQkJCQkJCS9CYXNlbGluZSAwLjAKCQkJCQkJCQkvTGVhZGluZyAzOS44NjE5OAoJCQkJCQkJCS9FTUhlaWdodCAyMC43NzMzMQoJCQkJCQkJCS9ESGVpZ2h0IDE0LjgzMTkyCgkJCQkJCQkJL1NlbGVjdGlvbkFzY2VudCAtMTcuODAyNjEKCQkJCQkJCQkvU2VsZWN0aW9uRGVzY2VudCAxMy4zOTQzMwoJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQk8PAoJCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCQkJPj4KCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSAwLjAgNC41MDc3MSBdCgkJCQkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAxCgkJCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TZWdtZW50CgkJCQkJCQkJCS9NYXBwaW5nCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQ2hhcmFjdGVyQ291bnQgNAoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvRmlyc3RDaGFyYWN0ZXJJbmRleEluU2VnbWVudCAwCgkJCQkJCQkJCS9VbmRlcmxpbmVJbnZhbGlkYXRpb24gWyAtMTguNzI3IDguODg2NjIgMTkuMTQyNDYgOC44ODY2MiBdCgkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9PcmlnaW4gWyAtMTguNzI3IDAuMCBdCgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9Cb3VuZHMgWyAwLjAgLTE3LjgwMjYxIDMwMDE4LjcyNjU2IDQuNTA3NzEgXQoJCQkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDEKCQkJCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL0dseXBoU3RyaWtlCgkJCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9PcmlnaW4gWyAwLjAgOC44ODY2MiBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMzcuODY5NDYgNC41MDc3MSBdCgkJCQkJCQkJCQkvR2x5cGhzIFsgNDggNTMgNjMgMyBdCgkJCQkJCQkJCQkvR2x5cGhBZGp1c3RtZW50cwoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvRGF0YSBbCgkJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkJL0JhY2tGaXhlZCAxLjY2MTg2CgkJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCQkvQmFja0ZpeGVkIDAuNDE1NDcKCQkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJCV0KCQkJCQkJCQkJCQkvUnVuTGVuZ3RocyBbIDEgMyBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJL1JlbmRlcmVkQm91bmRzIFsgLTE4LjcyNyAtOC45MTU5OSAxOS4xNDI0NiAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvVmlzdWFsQm91bmRzIFsgLTE4LjcyNyAtOC45MTU5OSAxOS4xNDI0NiAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvSW52YWxpZGF0aW9uIFsgLTE4LjcyNyAtOC45MTU5OSAzMC4yNTU5MyAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvU2hhZG93U3R5bGVzUnVuCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9EYXRhIFsKCQkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCQkvSW5kZXggMAoJCQkJCQkJCQkJCQkvRm9udCAwCgkJCQkJCQkJCQkJCS9PcmllbnRhdGlvbiAwCgkJCQkJCQkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCQkJCQkJCS9LZXJuVHlwZSAxCgkJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCQkvSW5kZXggMQoJCQkJCQkJCQkJCQkvRm9udCAwCgkJCQkJCQkJCQkJCS9PcmllbnRhdGlvbiAwCgkJCQkJCQkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCQkJCQkJCS9LZXJuVHlwZSAxCgkJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCQldCgkJCQkJCQkJCQkJL1J1bkxlbmd0aHMgWyAxIDMgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJXQoJCQkJCQkJCQkvQW5ub3RhdGlvbgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1dpZHRoIDAuMAoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCV0KCQkJCQkJPj4KCQkJCQkJXQoJCQkJCT4+CgkJCQkJXQoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJXQoJCT4+CgkJL09wdGljYWxBbGlnbm1lbnQgZmFsc2UKCT4+Cgk8PAoJCS9Nb2RlbAoJCTw8CgkJCS9UZXh0ICj+/wBRAFgARAANKQoJCQkvUGFyYWdyYXBoUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJCS9QYXJhZ3JhcGhTaGVldAoJCQkJCQk8PAoJCQkJCQkJL05hbWUgKP7/KQoJCQkJCQkJL0ZlYXR1cmVzCgkJCQkJCQk8PAoJCQkJCQkJCS9KdXN0aWZpY2F0aW9uIDIKCQkJCQkJCQkvRmlyc3RMaW5lSW5kZW50IDAuMAoJCQkJCQkJCS9TdGFydEluZGVudCAwLjAKCQkJCQkJCQkvRW5kSW5kZW50IDAuMAoJCQkJCQkJCS9TcGFjZUJlZm9yZSAwLjAKCQkJCQkJCQkvU3BhY2VBZnRlciAwLjAKCQkJCQkJCQkvRHJvcENhcHMgMQoJCQkJCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCQkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCQkJCQkvSHlwaGVuYXRlZFdvcmRTaXplIDgKCQkJCQkJCQkvUHJlSHlwaGVuIDMKCQkJCQkJCQkvUG9zdEh5cGhlbiAzCgkJCQkJCQkJL0NvbnNlY3V0aXZlSHlwaGVucyAyCgkJCQkJCQkJL1pvbmUgMzYuMAoJCQkJCQkJCS9IeXBoZW5hdGVDYXBpdGFsaXplZCB0cnVlCgkJCQkJCQkJL0h5cGhlbmF0aW9uUHJlZmVyZW5jZSAwLjUKCQkJCQkJCQkvV29yZFNwYWNpbmcgWyAwLjggMS4wIDEuMzMgXQoJCQkJCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkJCQkJL1NpbmdsZVdvcmRKdXN0aWZpY2F0aW9uIDYKCQkJCQkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJCQkJCS9BdXRvVENZIDEKCQkJCQkJCQkvS2VlcFRvZ2V0aGVyIHRydWUKCQkJCQkJCQkvQnVyYXNhZ2FyaVR5cGUgMAoJCQkJCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJCQkJCS9LdXJpa2Flc2hpTW9qaVNob3JpIGZhbHNlCgkJCQkJCQkJL0tpbnNva3UgL25pbAoJCQkJCQkJCS9Nb2ppS3VtaVRhYmxlIC9uaWwKCQkJCQkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJCQkJCQkvVGFiU3RvcHMKCQkJCQkJCQk8PAoJCQkJCQkJCT4+CgkJCQkJCQkJL0RlZmF1bHRUYWJXaWR0aCAzNi4wCgkJCQkJCQkJL0RlZmF1bHRTdHlsZQoJCQkJCQkJCTw8CgkJCQkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkJCQkJPj4KCQkJCQkJCT4+CgkJCQkJCQkvUGFyZW50IDAKCQkJCQkJPj4KCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL1N0eWxlUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJCS9TdHlsZVNoZWV0CgkJCQkJCTw8CgkJCQkJCQkvTmFtZSAo/v8pCgkJCQkJCQkvUGFyZW50IDAKCQkJCQkJCS9GZWF0dXJlcwoJCQkJCQkJPDwKCQkJCQkJCQkvRm9udCAwCgkJCQkJCQkJL0ZvbnRTaXplIDIwLjc3MzMxCgkJCQkJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCQkJCQkvQXV0b0xlYWRpbmcgZmFsc2UKCQkJCQkJCQkvTGVhZGluZyAzOS44NjE5OAoJCQkJCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkJCQkJL1RyYWNraW5nIDIwCgkJCQkJCQkJL0Jhc2VsaW5lU2hpZnQgLTguODg2NjIKCQkJCQkJCQkvQ2hhcmFjdGVyUm90YXRpb24gMC4wCgkJCQkJCQkJL0F1dG9LZXJuIDEKCQkJCQkJCQkvRm9udENhcHMgMAoJCQkJCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJCQkJCS9Gb250T1RQb3NpdGlvbiAwCgkJCQkJCQkJL1N0cmlrZXRocm91Z2hQb3NpdGlvbiAwCgkJCQkJCQkJL1VuZGVybGluZVBvc2l0aW9uIDAKCQkJCQkJCQkvVW5kZXJsaW5lT2Zmc2V0IDAuMAoJCQkJCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJCQkJCS9EaXNjcmV0aW9uYXJ5TGlnYXR1cmVzIGZhbHNlCgkJCQkJCQkJL0NvbnRleHR1YWxMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvQWx0ZXJuYXRlTGlnYXR1cmVzIGZhbHNlCgkJCQkJCQkJL09sZFN0eWxlIGZhbHNlCgkJCQkJCQkJL0ZyYWN0aW9ucyBmYWxzZQoJCQkJCQkJCS9PcmRpbmFscyBmYWxzZQoJCQkJCQkJCS9Td2FzaCBmYWxzZQoJCQkJCQkJCS9UaXRsaW5nIGZhbHNlCgkJCQkJCQkJL0Nvbm5lY3Rpb25Gb3JtcyBmYWxzZQoJCQkJCQkJCS9TdHlsaXN0aWNBbHRlcm5hdGVzIGZhbHNlCgkJCQkJCQkJL09ybmFtZW50cyBmYWxzZQoJCQkJCQkJCS9GaWd1cmVTdHlsZSAwCgkJCQkJCQkJL1Byb3BvcnRpb25hbE1ldHJpY3MgZmFsc2UKCQkJCQkJCQkvS2FuYSBmYWxzZQoJCQkJCQkJCS9JdGFsaWNzIGZhbHNlCgkJCQkJCQkJL1J1YnkgZmFsc2UKCQkJCQkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMQoJCQkJCQkJCS9Uc3VtZSAwLjAKCQkJCQkJCQkvU3R5bGVSdW5BbGlnbm1lbnQgMgoJCQkJCQkJCS9MYW5ndWFnZSAwCgkJCQkJCQkJL0phcGFuZXNlQWx0ZXJuYXRlRmVhdHVyZSAwCgkJCQkJCQkJL0VuYWJsZVdhcmlDaHUgZmFsc2UKCQkJCQkJCQkvV2FyaUNodUxpbmVDb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVMaW5lR2FwIDAKCQkJCQkJCQkvV2FyaUNodVN1YkxpbmVBbW91bnQKCQkJCQkJCQk8PAoJCQkJCQkJCQkvV2FyaUNodVN1YkxpbmVTY2FsZSAwLjUKCQkJCQkJCQk+PgoJCQkJCQkJCS9XYXJpQ2h1V2lkb3dBbW91bnQgMgoJCQkJCQkJCS9XYXJpQ2h1T3JwaGFuQW1vdW50IDIKCQkJCQkJCQkvV2FyaUNodUp1c3RpZmljYXRpb24gNwoJCQkJCQkJCS9UQ1lVcERvd25BZGp1c3RtZW50IDAKCQkJCQkJCQkvVENZTGVmdFJpZ2h0QWRqdXN0bWVudCAwCgkJCQkJCQkJL0xlZnRBa2kgLTEuMAoJCQkJCQkJCS9SaWdodEFraSAtMS4wCgkJCQkJCQkJL0ppRG9yaSAwCgkJCQkJCQkJL05vQnJlYWsgZmFsc2UKCQkJCQkJCQkvRmlsbENvbG9yCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCS9TdHJva2VDb2xvcgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQkvQmxlbmQKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVCbGVuZGVyCgkJCQkJCQkJPj4KCQkJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkJCQkJL0ZpbGxGaXJzdCBmYWxzZQoJCQkJCQkJCS9GaWxsT3ZlclByaW50IGZhbHNlCgkJCQkJCQkJL1N0cm9rZU92ZXJQcmludCBmYWxzZQoJCQkJCQkJCS9MaW5lQ2FwIDAKCQkJCQkJCQkvTGluZUpvaW4gMAoJCQkJCQkJCS9MaW5lV2lkdGggMC4wNDE2NwoJCQkJCQkJCS9NaXRlckxpbWl0IDAuMDQxNjcKCQkJCQkJCQkvTGluZURhc2hPZmZzZXQgMC4wCgkJCQkJCQkJL0xpbmVEYXNoQXJyYXkgWyBdCgkJCQkJCQkJL1R5cGUxRW5jb2RpbmdOYW1lcyBbIF0KCQkJCQkJCT4+CgkJCQkJCT4+CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9LZXJuUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9BbHRlcm5hdGVHbHlwaFJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3RvcnlTaGVldAoJCQk8PAoJCQkJL0FudGlBbGlhcyA0CgkJCQkvVXNlRnJhY3Rpb25hbEdseXBoV2lkdGhzIHRydWUKCQkJPj4KCQk+PgoJCS9WaWV3CgkJPDwKCQkJL0ZyYW1lcyBbCgkJCTw8CgkJCQkvUmVzb3VyY2UgMTQKCQkJPj4KCQkJXQoJCQkvUmVuZGVyZWREYXRhCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJCS9MaW5lQ291bnQgMQoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3RyaWtlcyBbCgkJCTw8CgkJCQkvU3RyZWFtVGFnIC9QYXRoU2VsZWN0R3JvdXBDaGFyYWN0ZXIKCQkJCS9UcmFuc2Zvcm0KCQkJCTw8CgkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJL0NoaWxkUHJvY2Vzc2lvbiAwCgkJCQkvQ2hpbGRyZW4gWwoJCQkJPDwKCQkJCQkvU3RyZWFtVGFnIC9GcmFtZVN0cmlrZQoJCQkJCS9GcmFtZSAxNAoJCQkJCS9UcmFuc2Zvcm0KCQkJCQk8PAoJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJPj4KCQkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDIKCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCTw8CgkJCQkJCS9TdHJlYW1UYWcgL1Jvd0NvbFN0cmlrZQoJCQkJCQkvUm93Q29sSW5kZXggMAoJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCTw8CgkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCT4+CgkJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDEKCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJPDwKCQkJCQkJCS9TdHJlYW1UYWcgL1Jvd0NvbFN0cmlrZQoJCQkJCQkJL1Jvd0NvbEluZGV4IDAKCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCTw8CgkJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQkJPj4KCQkJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAyCgkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJPDwKCQkJCQkJCQkvU3RyZWFtVGFnIC9MaW5lU3RyaWtlCgkJCQkJCQkJL0Jhc2VsaW5lIDAuMAoJCQkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCQkJL0VNSGVpZ2h0IDIwLjc3MzMxCgkJCQkJCQkJL0RIZWlnaHQgMTQuODMxOTIKCQkJCQkJCQkvU2VsZWN0aW9uQXNjZW50IC0xNy44MDI2MQoJCQkJCQkJCS9TZWxlY3Rpb25EZXNjZW50IDEzLjM5NDMzCgkJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJCTw8CgkJCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJCQk+PgoJCQkJCQkJCS9Cb3VuZHMgWyAwLjAgLTE3LjgwMjYxIDAuMCA0LjUwNzcxIF0KCQkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDEKCQkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NlZ21lbnQKCQkJCQkJCQkJL01hcHBpbmcKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9DaGFyYWN0ZXJDb3VudCA0CgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9GaXJzdENoYXJhY3RlckluZGV4SW5TZWdtZW50IDAKCQkJCQkJCQkJL1VuZGVybGluZUludmFsaWRhdGlvbiBbIC0yMy4xMjA1NyA4Ljg4NjYyIDIzLjUzNjAzIDguODg2NjIgXQoJCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvT3JpZ2luIFsgLTIzLjEyMDU3IDAuMCBdCgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9Cb3VuZHMgWyAwLjAgLTE3LjgwMjYxIDMwMDIzLjEyMTA5IDQuNTA3NzEgXQoJCQkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDEKCQkJCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL0dseXBoU3RyaWtlCgkJCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9PcmlnaW4gWyAwLjAgOC44ODY2MiBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgNDYuNjU2NiA0LjUwNzcxIF0KCQkJCQkJCQkJCS9HbHlwaHMgWyA1NiA2MyA0MyAzIF0KCQkJCQkJCQkJCS9HbHlwaEFkanVzdG1lbnRzCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9EYXRhIFsKCQkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCQkvQmFja0ZpeGVkIDAuNDE1NDcKCQkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJCV0KCQkJCQkJCQkJCQkvUnVuTGVuZ3RocyBbIDQgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCS9SZW5kZXJlZEJvdW5kcyBbIC0yMy4xMjA1NyAtOC45MTU5OSAyMy41MzYwMyAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvVmlzdWFsQm91bmRzIFsgLTIzLjEyMDU3IC04LjkxNTk5IDIzLjUzNjAzIDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9JbnZhbGlkYXRpb24gWyAtMjMuMTIwNTcgLTguOTE1OTkgMzQuNjQ5NSAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvU2hhZG93U3R5bGVzUnVuCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9EYXRhIFsKCQkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCQkvSW5kZXggMAoJCQkJCQkJCQkJCQkvRm9udCAwCgkJCQkJCQkJCQkJCS9PcmllbnRhdGlvbiAwCgkJCQkJCQkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCQkJCQkJCS9LZXJuVHlwZSAxCgkJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCQldCgkJCQkJCQkJCQkJL1J1bkxlbmd0aHMgWyA0IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJCV0KCQkJCQkJCQkJL0Fubm90YXRpb24KCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9XaWR0aCAwLjAKCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQldCgkJCQkJCT4+CgkJCQkJCV0KCQkJCQk+PgoJCQkJCV0KCQkJCT4+CgkJCQldCgkJCT4+CgkJCV0KCQk+PgoJCS9PcHRpY2FsQWxpZ25tZW50IGZhbHNlCgk+PgoJPDwKCQkvTW9kZWwKCQk8PAoJCQkvVGV4dCAo/v8AUQBYAFAADSkKCQkJL1BhcmFncmFwaFJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCQkvUGFyYWdyYXBoU2hlZXQKCQkJCQkJPDwKCQkJCQkJCS9OYW1lICj+/ykKCQkJCQkJCS9GZWF0dXJlcwoJCQkJCQkJPDwKCQkJCQkJCQkvSnVzdGlmaWNhdGlvbiAyCgkJCQkJCQkJL0ZpcnN0TGluZUluZGVudCAwLjAKCQkJCQkJCQkvU3RhcnRJbmRlbnQgMC4wCgkJCQkJCQkJL0VuZEluZGVudCAwLjAKCQkJCQkJCQkvU3BhY2VCZWZvcmUgMC4wCgkJCQkJCQkJL1NwYWNlQWZ0ZXIgMC4wCgkJCQkJCQkJL0Ryb3BDYXBzIDEKCQkJCQkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkJCQkJL0xlYWRpbmdUeXBlIDAKCQkJCQkJCQkvQXV0b0h5cGhlbmF0ZSB0cnVlCgkJCQkJCQkJL0h5cGhlbmF0ZWRXb3JkU2l6ZSA4CgkJCQkJCQkJL1ByZUh5cGhlbiAzCgkJCQkJCQkJL1Bvc3RIeXBoZW4gMwoJCQkJCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgMgoJCQkJCQkJCS9ab25lIDM2LjAKCQkJCQkJCQkvSHlwaGVuYXRlQ2FwaXRhbGl6ZWQgdHJ1ZQoJCQkJCQkJCS9IeXBoZW5hdGlvblByZWZlcmVuY2UgMC41CgkJCQkJCQkJL1dvcmRTcGFjaW5nIFsgMC44IDEuMCAxLjMzIF0KCQkJCQkJCQkvTGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJCQkJCS9TaW5nbGVXb3JkSnVzdGlmaWNhdGlvbiA2CgkJCQkJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCQkJCQkvQXV0b1RDWSAxCgkJCQkJCQkJL0tlZXBUb2dldGhlciB0cnVlCgkJCQkJCQkJL0J1cmFzYWdhcmlUeXBlIDAKCQkJCQkJCQkvS2luc29rdU9yZGVyIDAKCQkJCQkJCQkvS3VyaWthZXNoaU1vamlTaG9yaSBmYWxzZQoJCQkJCQkJCS9LaW5zb2t1IC9uaWwKCQkJCQkJCQkvTW9qaUt1bWlUYWJsZSAvbmlsCgkJCQkJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCQkJCQkJL1RhYlN0b3BzCgkJCQkJCQkJPDwKCQkJCQkJCQk+PgoJCQkJCQkJCS9EZWZhdWx0VGFiV2lkdGggMzYuMAoJCQkJCQkJCS9EZWZhdWx0U3R5bGUKCQkJCQkJCQk8PAoJCQkJCQkJCQkvRmlsbENvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9TdHJva2VDb2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkJCT4+CgkJCQkJCQk+PgoJCQkJCQkJL1BhcmVudCAwCgkJCQkJCT4+CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdHlsZVJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCQkvU3R5bGVTaGVldAoJCQkJCQk8PAoJCQkJCQkJL05hbWUgKP7/KQoJCQkJCQkJL1BhcmVudCAwCgkJCQkJCQkvRmVhdHVyZXMKCQkJCQkJCTw8CgkJCQkJCQkJL0ZvbnQgMAoJCQkJCQkJCS9Gb250U2l6ZSAyMC43NzMzMQoJCQkJCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkJCQkJL0F1dG9MZWFkaW5nIGZhbHNlCgkJCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJCQkvSG9yaXpvbnRhbFNjYWxlIDEuMAoJCQkJCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJCQkJCS9UcmFja2luZyAyMAoJCQkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCQkJL0NoYXJhY3RlclJvdGF0aW9uIDAuMAoJCQkJCQkJCS9BdXRvS2VybiAxCgkJCQkJCQkJL0ZvbnRDYXBzIDAKCQkJCQkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCQkJCQkvRm9udE9UUG9zaXRpb24gMAoJCQkJCQkJCS9TdHJpa2V0aHJvdWdoUG9zaXRpb24gMAoJCQkJCQkJCS9VbmRlcmxpbmVQb3NpdGlvbiAwCgkJCQkJCQkJL1VuZGVybGluZU9mZnNldCAwLjAKCQkJCQkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCQkJCQkvRGlzY3JldGlvbmFyeUxpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9Db250ZXh0dWFsTGlnYXR1cmVzIGZhbHNlCgkJCQkJCQkJL0FsdGVybmF0ZUxpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9PbGRTdHlsZSBmYWxzZQoJCQkJCQkJCS9GcmFjdGlvbnMgZmFsc2UKCQkJCQkJCQkvT3JkaW5hbHMgZmFsc2UKCQkJCQkJCQkvU3dhc2ggZmFsc2UKCQkJCQkJCQkvVGl0bGluZyBmYWxzZQoJCQkJCQkJCS9Db25uZWN0aW9uRm9ybXMgZmFsc2UKCQkJCQkJCQkvU3R5bGlzdGljQWx0ZXJuYXRlcyBmYWxzZQoJCQkJCQkJCS9Pcm5hbWVudHMgZmFsc2UKCQkJCQkJCQkvRmlndXJlU3R5bGUgMAoJCQkJCQkJCS9Qcm9wb3J0aW9uYWxNZXRyaWNzIGZhbHNlCgkJCQkJCQkJL0thbmEgZmFsc2UKCQkJCQkJCQkvSXRhbGljcyBmYWxzZQoJCQkJCQkJCS9SdWJ5IGZhbHNlCgkJCQkJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDEKCQkJCQkJCQkvVHN1bWUgMC4wCgkJCQkJCQkJL1N0eWxlUnVuQWxpZ25tZW50IDIKCQkJCQkJCQkvTGFuZ3VhZ2UgMAoJCQkJCQkJCS9KYXBhbmVzZUFsdGVybmF0ZUZlYXR1cmUgMAoJCQkJCQkJCS9FbmFibGVXYXJpQ2h1IGZhbHNlCgkJCQkJCQkJL1dhcmlDaHVMaW5lQ291bnQgMgoJCQkJCQkJCS9XYXJpQ2h1TGluZUdhcCAwCgkJCQkJCQkJL1dhcmlDaHVTdWJMaW5lQW1vdW50CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1dhcmlDaHVTdWJMaW5lU2NhbGUgMC41CgkJCQkJCQkJPj4KCQkJCQkJCQkvV2FyaUNodVdpZG93QW1vdW50IDIKCQkJCQkJCQkvV2FyaUNodU9ycGhhbkFtb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVKdXN0aWZpY2F0aW9uIDcKCQkJCQkJCQkvVENZVXBEb3duQWRqdXN0bWVudCAwCgkJCQkJCQkJL1RDWUxlZnRSaWdodEFkanVzdG1lbnQgMAoJCQkJCQkJCS9MZWZ0QWtpIC0xLjAKCQkJCQkJCQkvUmlnaHRBa2kgLTEuMAoJCQkJCQkJCS9KaURvcmkgMAoJCQkJCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJL0JsZW5kCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlQmxlbmRlcgoJCQkJCQkJCT4+CgkJCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkJCS9GaWxsRmlyc3QgZmFsc2UKCQkJCQkJCQkvRmlsbE92ZXJQcmludCBmYWxzZQoJCQkJCQkJCS9TdHJva2VPdmVyUHJpbnQgZmFsc2UKCQkJCQkJCQkvTGluZUNhcCAwCgkJCQkJCQkJL0xpbmVKb2luIDAKCQkJCQkJCQkvTGluZVdpZHRoIDAuMDQxNjcKCQkJCQkJCQkvTWl0ZXJMaW1pdCAwLjA0MTY3CgkJCQkJCQkJL0xpbmVEYXNoT2Zmc2V0IDAuMAoJCQkJCQkJCS9MaW5lRGFzaEFycmF5IFsgXQoJCQkJCQkJCS9UeXBlMUVuY29kaW5nTmFtZXMgWyBdCgkJCQkJCQk+PgoJCQkJCQk+PgoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvS2VyblJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvQWx0ZXJuYXRlR2x5cGhSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL1N0b3J5U2hlZXQKCQkJPDwKCQkJCS9BbnRpQWxpYXMgNAoJCQkJL1VzZUZyYWN0aW9uYWxHbHlwaFdpZHRocyB0cnVlCgkJCT4+CgkJPj4KCQkvVmlldwoJCTw8CgkJCS9GcmFtZXMgWwoJCQk8PAoJCQkJL1Jlc291cmNlIDE1CgkJCT4+CgkJCV0KCQkJL1JlbmRlcmVkRGF0YQoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCQkvTGluZUNvdW50IDEKCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL1N0cmlrZXMgWwoJCQk8PAoJCQkJL1N0cmVhbVRhZyAvUGF0aFNlbGVjdEdyb3VwQ2hhcmFjdGVyCgkJCQkvVHJhbnNmb3JtCgkJCQk8PAoJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCT4+CgkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCS9DaGlsZFByb2Nlc3Npb24gMAoJCQkJL0NoaWxkcmVuIFsKCQkJCTw8CgkJCQkJL1N0cmVhbVRhZyAvRnJhbWVTdHJpa2UKCQkJCQkvRnJhbWUgMTUKCQkJCQkvVHJhbnNmb3JtCgkJCQkJPDwKCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCT4+CgkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAyCgkJCQkJL0NoaWxkcmVuIFsKCQkJCQk8PAoJCQkJCQkvU3RyZWFtVGFnIC9Sb3dDb2xTdHJpa2UKCQkJCQkJL1Jvd0NvbEluZGV4IDAKCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQk8PAoJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQk+PgoJCQkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAxCgkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCTw8CgkJCQkJCQkvU3RyZWFtVGFnIC9Sb3dDb2xTdHJpa2UKCQkJCQkJCS9Sb3dDb2xJbmRleCAwCgkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQk8PAoJCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJCT4+CgkJCQkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMgoJCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJCTw8CgkJCQkJCQkJL1N0cmVhbVRhZyAvTGluZVN0cmlrZQoJCQkJCQkJCS9CYXNlbGluZSAwLjAKCQkJCQkJCQkvTGVhZGluZyAzOS44NjE5OAoJCQkJCQkJCS9FTUhlaWdodCAyMC43NzMzMQoJCQkJCQkJCS9ESGVpZ2h0IDE0LjgzMTkyCgkJCQkJCQkJL1NlbGVjdGlvbkFzY2VudCAtMTcuODAyNjEKCQkJCQkJCQkvU2VsZWN0aW9uRGVzY2VudCAxMy4zOTQzMwoJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQk8PAoJCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCQkJPj4KCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSAwLjAgNC41MDc3MSBdCgkJCQkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAxCgkJCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TZWdtZW50CgkJCQkJCQkJCS9NYXBwaW5nCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQ2hhcmFjdGVyQ291bnQgNAoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvRmlyc3RDaGFyYWN0ZXJJbmRleEluU2VnbWVudCAwCgkJCQkJCQkJCS9VbmRlcmxpbmVJbnZhbGlkYXRpb24gWyAtMjIuMzUxOSA4Ljg4NjYyIDIyLjc2NzM2IDguODg2NjIgXQoJCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvT3JpZ2luIFsgLTIyLjM1MTkgMC4wIF0KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMzAwMjIuMzUxNTYgNC41MDc3MSBdCgkJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvR2x5cGhTdHJpa2UKCQkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL09yaWdpbiBbIDAuMCA4Ljg4NjYyIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSA0NS4xMTkyNiA0LjUwNzcxIF0KCQkJCQkJCQkJCS9HbHlwaHMgWyA1NiA2MyA1NSAzIF0KCQkJCQkJCQkJCS9HbHlwaEFkanVzdG1lbnRzCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9EYXRhIFsKCQkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCQkvQmFja0ZpeGVkIDAuNDE1NDcKCQkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJCV0KCQkJCQkJCQkJCQkvUnVuTGVuZ3RocyBbIDQgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCS9SZW5kZXJlZEJvdW5kcyBbIC0yMi4zNTE5IC04LjkxNTk5IDIyLjc2NzM2IDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9WaXN1YWxCb3VuZHMgWyAtMjIuMzUxOSAtOC45MTU5OSAyMi43NjczNiAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvSW52YWxpZGF0aW9uIFsgLTIyLjM1MTkgLTguOTE1OTkgMzMuODgwODMgMTMuMzk0MzMgXQoJCQkJCQkJCQkJL1NoYWRvd1N0eWxlc1J1bgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvRGF0YSBbCgkJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkJL0luZGV4IDAKCQkJCQkJCQkJCQkJL0ZvbnQgMAoJCQkJCQkJCQkJCQkvT3JpZW50YXRpb24gMAoJCQkJCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCQkJCQkvS2VyblR5cGUgMQoJCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkJXQoJCQkJCQkJCQkJCS9SdW5MZW5ndGhzIFsgNCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQldCgkJCQkJCQkJCS9Bbm5vdGF0aW9uCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvV2lkdGggMC4wCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJXQoJCQkJCQk+PgoJCQkJCQldCgkJCQkJPj4KCQkJCQldCgkJCQk+PgoJCQkJXQoJCQk+PgoJCQldCgkJPj4KCQkvT3B0aWNhbEFsaWdubWVudCBmYWxzZQoJPj4KCTw8CgkJL01vZGVsCgkJPDwKCQkJL1RleHQgKP7/AFIAVABGAA0pCgkJCS9QYXJhZ3JhcGhSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1BhcmFncmFwaFNoZWV0CgkJCQkJCTw8CgkJCQkJCQkvTmFtZSAo/v8pCgkJCQkJCQkvRmVhdHVyZXMKCQkJCQkJCTw8CgkJCQkJCQkJL0p1c3RpZmljYXRpb24gMgoJCQkJCQkJCS9GaXJzdExpbmVJbmRlbnQgMC4wCgkJCQkJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJCQkJCS9Ecm9wQ2FwcyAxCgkJCQkJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgOAoJCQkJCQkJCS9QcmVIeXBoZW4gMwoJCQkJCQkJCS9Qb3N0SHlwaGVuIDMKCQkJCQkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDIKCQkJCQkJCQkvWm9uZSAzNi4wCgkJCQkJCQkJL0h5cGhlbmF0ZUNhcGl0YWxpemVkIHRydWUKCQkJCQkJCQkvSHlwaGVuYXRpb25QcmVmZXJlbmNlIDAuNQoJCQkJCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCQkJCQkvU2luZ2xlV29yZEp1c3RpZmljYXRpb24gNgoJCQkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCQkJL0F1dG9UQ1kgMQoJCQkJCQkJCS9LZWVwVG9nZXRoZXIgdHJ1ZQoJCQkJCQkJCS9CdXJhc2FnYXJpVHlwZSAwCgkJCQkJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkJCQkJL0t1cmlrYWVzaGlNb2ppU2hvcmkgZmFsc2UKCQkJCQkJCQkvS2luc29rdSAvbmlsCgkJCQkJCQkJL01vamlLdW1pVGFibGUgL25pbAoJCQkJCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQkJCQkJCS9UYWJTdG9wcwoJCQkJCQkJCTw8CgkJCQkJCQkJPj4KCQkJCQkJCQkvRGVmYXVsdFRhYldpZHRoIDM2LjAKCQkJCQkJCQkvRGVmYXVsdFN0eWxlCgkJCQkJCQkJPDwKCQkJCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQk+PgoJCQkJCQkJPj4KCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQk+PgoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3R5bGVSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1N0eWxlU2hlZXQKCQkJCQkJPDwKCQkJCQkJCS9OYW1lICj+/ykKCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQkJL0ZlYXR1cmVzCgkJCQkJCQk8PAoJCQkJCQkJCS9Gb250IDAKCQkJCQkJCQkvRm9udFNpemUgMjAuNzczMzEKCQkJCQkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkJCS9BdXRvTGVhZGluZyBmYWxzZQoJCQkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCQkJCQkvVHJhY2tpbmcgMjAKCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCS9DaGFyYWN0ZXJSb3RhdGlvbiAwLjAKCQkJCQkJCQkvQXV0b0tlcm4gMQoJCQkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkJCQkJL0ZvbnRPVFBvc2l0aW9uIDAKCQkJCQkJCQkvU3RyaWtldGhyb3VnaFBvc2l0aW9uIDAKCQkJCQkJCQkvVW5kZXJsaW5lUG9zaXRpb24gMAoJCQkJCQkJCS9VbmRlcmxpbmVPZmZzZXQgMC4wCgkJCQkJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkJCQkJL0Rpc2NyZXRpb25hcnlMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvQ29udGV4dHVhbExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9BbHRlcm5hdGVMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvT2xkU3R5bGUgZmFsc2UKCQkJCQkJCQkvRnJhY3Rpb25zIGZhbHNlCgkJCQkJCQkJL09yZGluYWxzIGZhbHNlCgkJCQkJCQkJL1N3YXNoIGZhbHNlCgkJCQkJCQkJL1RpdGxpbmcgZmFsc2UKCQkJCQkJCQkvQ29ubmVjdGlvbkZvcm1zIGZhbHNlCgkJCQkJCQkJL1N0eWxpc3RpY0FsdGVybmF0ZXMgZmFsc2UKCQkJCQkJCQkvT3JuYW1lbnRzIGZhbHNlCgkJCQkJCQkJL0ZpZ3VyZVN0eWxlIDAKCQkJCQkJCQkvUHJvcG9ydGlvbmFsTWV0cmljcyBmYWxzZQoJCQkJCQkJCS9LYW5hIGZhbHNlCgkJCQkJCQkJL0l0YWxpY3MgZmFsc2UKCQkJCQkJCQkvUnVieSBmYWxzZQoJCQkJCQkJCS9CYXNlbGluZURpcmVjdGlvbiAxCgkJCQkJCQkJL1RzdW1lIDAuMAoJCQkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCQkJL0xhbmd1YWdlIDAKCQkJCQkJCQkvSmFwYW5lc2VBbHRlcm5hdGVGZWF0dXJlIDAKCQkJCQkJCQkvRW5hYmxlV2FyaUNodSBmYWxzZQoJCQkJCQkJCS9XYXJpQ2h1TGluZUNvdW50IDIKCQkJCQkJCQkvV2FyaUNodUxpbmVHYXAgMAoJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZUFtb3VudAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZVNjYWxlIDAuNQoJCQkJCQkJCT4+CgkJCQkJCQkJL1dhcmlDaHVXaWRvd0Ftb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVPcnBoYW5BbW91bnQgMgoJCQkJCQkJCS9XYXJpQ2h1SnVzdGlmaWNhdGlvbiA3CgkJCQkJCQkJL1RDWVVwRG93bkFkanVzdG1lbnQgMAoJCQkJCQkJCS9UQ1lMZWZ0UmlnaHRBZGp1c3RtZW50IDAKCQkJCQkJCQkvTGVmdEFraSAtMS4wCgkJCQkJCQkJL1JpZ2h0QWtpIC0xLjAKCQkJCQkJCQkvSmlEb3JpIDAKCQkJCQkJCQkvTm9CcmVhayBmYWxzZQoJCQkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCS9CbGVuZAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZUJsZW5kZXIKCQkJCQkJCQk+PgoJCQkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCQkJL0ZpbGxPdmVyUHJpbnQgZmFsc2UKCQkJCQkJCQkvU3Ryb2tlT3ZlclByaW50IGZhbHNlCgkJCQkJCQkJL0xpbmVDYXAgMAoJCQkJCQkJCS9MaW5lSm9pbiAwCgkJCQkJCQkJL0xpbmVXaWR0aCAwLjA0MTY3CgkJCQkJCQkJL01pdGVyTGltaXQgMC4wNDE2NwoJCQkJCQkJCS9MaW5lRGFzaE9mZnNldCAwLjAKCQkJCQkJCQkvTGluZURhc2hBcnJheSBbIF0KCQkJCQkJCQkvVHlwZTFFbmNvZGluZ05hbWVzIFsgXQoJCQkJCQkJPj4KCQkJCQkJPj4KCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0tlcm5SdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0FsdGVybmF0ZUdseXBoUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdG9yeVNoZWV0CgkJCTw8CgkJCQkvQW50aUFsaWFzIDQKCQkJCS9Vc2VGcmFjdGlvbmFsR2x5cGhXaWR0aHMgdHJ1ZQoJCQk+PgoJCT4+CgkJL1ZpZXcKCQk8PAoJCQkvRnJhbWVzIFsKCQkJPDwKCQkJCS9SZXNvdXJjZSAxNgoJCQk+PgoJCQldCgkJCS9SZW5kZXJlZERhdGEKCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL0xpbmVDb3VudCAxCgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdHJpa2VzIFsKCQkJPDwKCQkJCS9TdHJlYW1UYWcgL1BhdGhTZWxlY3RHcm91cENoYXJhY3RlcgoJCQkJL1RyYW5zZm9ybQoJCQkJPDwKCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkvQ2hpbGRQcm9jZXNzaW9uIDAKCQkJCS9DaGlsZHJlbiBbCgkJCQk8PAoJCQkJCS9TdHJlYW1UYWcgL0ZyYW1lU3RyaWtlCgkJCQkJL0ZyYW1lIDE2CgkJCQkJL1RyYW5zZm9ybQoJCQkJCTw8CgkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQk+PgoJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCS9DaGlsZFByb2Nlc3Npb24gMgoJCQkJCS9DaGlsZHJlbiBbCgkJCQkJPDwKCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCS9Sb3dDb2xJbmRleCAwCgkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJPDwKCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJPj4KCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQk8PAoJCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCQkvUm93Q29sSW5kZXggMAoJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJPDwKCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCQk+PgoJCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDIKCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQk8PAoJCQkJCQkJCS9TdHJlYW1UYWcgL0xpbmVTdHJpa2UKCQkJCQkJCQkvQmFzZWxpbmUgMC4wCgkJCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJCQkvRU1IZWlnaHQgMjAuNzczMzEKCQkJCQkJCQkvREhlaWdodCAxNC44MzE5MgoJCQkJCQkJCS9TZWxlY3Rpb25Bc2NlbnQgLTE3LjgwMjYxCgkJCQkJCQkJL1NlbGVjdGlvbkRlc2NlbnQgMTMuMzk0MzMKCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJPDwKCQkJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQkJCT4+CgkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMC4wIDQuNTA3NzEgXQoJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2VnbWVudAoJCQkJCQkJCQkvTWFwcGluZwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0NoYXJhY3RlckNvdW50IDQKCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpcnN0Q2hhcmFjdGVySW5kZXhJblNlZ21lbnQgMAoJCQkJCQkJCQkvVW5kZXJsaW5lSW52YWxpZGF0aW9uIFsgLTIwLjQxOTc3IDguODg2NjIgMjAuODM1MjQgOC44ODY2MiBdCgkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9PcmlnaW4gWyAtMjAuNDE5NzcgMC4wIF0KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMzAwMjAuNDE5OTIgNC41MDc3MSBdCgkJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvR2x5cGhTdHJpa2UKCQkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL09yaWdpbiBbIDAuMCA4Ljg4NjYyIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSA0MS4yNTUgNC41MDc3MSBdCgkJCQkJCQkJCQkvR2x5cGhzIFsgNTcgNTkgNDUgMyBdCgkJCQkJCQkJCQkvR2x5cGhBZGp1c3RtZW50cwoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvRGF0YSBbCgkJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkJL0JhY2tGaXhlZCAwLjQxNTQ3CgkJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCQldCgkJCQkJCQkJCQkJL1J1bkxlbmd0aHMgWyA0IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkvUmVuZGVyZWRCb3VuZHMgWyAtMjAuNDE5NzcgLTguOTE1OTkgMjAuODM1MjQgMTMuMzk0MzMgXQoJCQkJCQkJCQkJL1Zpc3VhbEJvdW5kcyBbIC0yMC40MTk3NyAtOC45MTU5OSAyMC44MzUyNCAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvSW52YWxpZGF0aW9uIFsgLTIwLjQxOTc3IC04LjkxNTk5IDMxLjk0ODcgMTMuMzk0MzMgXQoJCQkJCQkJCQkJL1NoYWRvd1N0eWxlc1J1bgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvRGF0YSBbCgkJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkJL0luZGV4IDAKCQkJCQkJCQkJCQkJL0ZvbnQgMAoJCQkJCQkJCQkJCQkvT3JpZW50YXRpb24gMAoJCQkJCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCQkJCQkvS2VyblR5cGUgMQoJCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkJXQoJCQkJCQkJCQkJCS9SdW5MZW5ndGhzIFsgNCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQldCgkJCQkJCQkJCS9Bbm5vdGF0aW9uCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvV2lkdGggMC4wCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJXQoJCQkJCQk+PgoJCQkJCQldCgkJCQkJPj4KCQkJCQldCgkJCQk+PgoJCQkJXQoJCQk+PgoJCQldCgkJPj4KCQkvT3B0aWNhbEFsaWdubWVudCBmYWxzZQoJPj4KCTw8CgkJL01vZGVsCgkJPDwKCQkJL1RleHQgKP7/AEQATwBDAA0pCgkJCS9QYXJhZ3JhcGhSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1BhcmFncmFwaFNoZWV0CgkJCQkJCTw8CgkJCQkJCQkvTmFtZSAo/v8pCgkJCQkJCQkvRmVhdHVyZXMKCQkJCQkJCTw8CgkJCQkJCQkJL0p1c3RpZmljYXRpb24gMgoJCQkJCQkJCS9GaXJzdExpbmVJbmRlbnQgMC4wCgkJCQkJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJCQkJCS9Ecm9wQ2FwcyAxCgkJCQkJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgOAoJCQkJCQkJCS9QcmVIeXBoZW4gMwoJCQkJCQkJCS9Qb3N0SHlwaGVuIDMKCQkJCQkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDIKCQkJCQkJCQkvWm9uZSAzNi4wCgkJCQkJCQkJL0h5cGhlbmF0ZUNhcGl0YWxpemVkIHRydWUKCQkJCQkJCQkvSHlwaGVuYXRpb25QcmVmZXJlbmNlIDAuNQoJCQkJCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCQkJCQkvU2luZ2xlV29yZEp1c3RpZmljYXRpb24gNgoJCQkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCQkJL0F1dG9UQ1kgMQoJCQkJCQkJCS9LZWVwVG9nZXRoZXIgdHJ1ZQoJCQkJCQkJCS9CdXJhc2FnYXJpVHlwZSAwCgkJCQkJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkJCQkJL0t1cmlrYWVzaGlNb2ppU2hvcmkgZmFsc2UKCQkJCQkJCQkvS2luc29rdSAvbmlsCgkJCQkJCQkJL01vamlLdW1pVGFibGUgL25pbAoJCQkJCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQkJCQkJCS9UYWJTdG9wcwoJCQkJCQkJCTw8CgkJCQkJCQkJPj4KCQkJCQkJCQkvRGVmYXVsdFRhYldpZHRoIDM2LjAKCQkJCQkJCQkvRGVmYXVsdFN0eWxlCgkJCQkJCQkJPDwKCQkJCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQk+PgoJCQkJCQkJPj4KCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQk+PgoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3R5bGVSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1N0eWxlU2hlZXQKCQkJCQkJPDwKCQkJCQkJCS9OYW1lICj+/ykKCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQkJL0ZlYXR1cmVzCgkJCQkJCQk8PAoJCQkJCQkJCS9Gb250IDAKCQkJCQkJCQkvRm9udFNpemUgMjAuNzczMzEKCQkJCQkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkJCS9BdXRvTGVhZGluZyBmYWxzZQoJCQkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCQkJCQkvVHJhY2tpbmcgMjAKCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCS9DaGFyYWN0ZXJSb3RhdGlvbiAwLjAKCQkJCQkJCQkvQXV0b0tlcm4gMQoJCQkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkJCQkJL0ZvbnRPVFBvc2l0aW9uIDAKCQkJCQkJCQkvU3RyaWtldGhyb3VnaFBvc2l0aW9uIDAKCQkJCQkJCQkvVW5kZXJsaW5lUG9zaXRpb24gMAoJCQkJCQkJCS9VbmRlcmxpbmVPZmZzZXQgMC4wCgkJCQkJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkJCQkJL0Rpc2NyZXRpb25hcnlMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvQ29udGV4dHVhbExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9BbHRlcm5hdGVMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvT2xkU3R5bGUgZmFsc2UKCQkJCQkJCQkvRnJhY3Rpb25zIGZhbHNlCgkJCQkJCQkJL09yZGluYWxzIGZhbHNlCgkJCQkJCQkJL1N3YXNoIGZhbHNlCgkJCQkJCQkJL1RpdGxpbmcgZmFsc2UKCQkJCQkJCQkvQ29ubmVjdGlvbkZvcm1zIGZhbHNlCgkJCQkJCQkJL1N0eWxpc3RpY0FsdGVybmF0ZXMgZmFsc2UKCQkJCQkJCQkvT3JuYW1lbnRzIGZhbHNlCgkJCQkJCQkJL0ZpZ3VyZVN0eWxlIDAKCQkJCQkJCQkvUHJvcG9ydGlvbmFsTWV0cmljcyBmYWxzZQoJCQkJCQkJCS9LYW5hIGZhbHNlCgkJCQkJCQkJL0l0YWxpY3MgZmFsc2UKCQkJCQkJCQkvUnVieSBmYWxzZQoJCQkJCQkJCS9CYXNlbGluZURpcmVjdGlvbiAxCgkJCQkJCQkJL1RzdW1lIDAuMAoJCQkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCQkJL0xhbmd1YWdlIDAKCQkJCQkJCQkvSmFwYW5lc2VBbHRlcm5hdGVGZWF0dXJlIDAKCQkJCQkJCQkvRW5hYmxlV2FyaUNodSBmYWxzZQoJCQkJCQkJCS9XYXJpQ2h1TGluZUNvdW50IDIKCQkJCQkJCQkvV2FyaUNodUxpbmVHYXAgMAoJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZUFtb3VudAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZVNjYWxlIDAuNQoJCQkJCQkJCT4+CgkJCQkJCQkJL1dhcmlDaHVXaWRvd0Ftb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVPcnBoYW5BbW91bnQgMgoJCQkJCQkJCS9XYXJpQ2h1SnVzdGlmaWNhdGlvbiA3CgkJCQkJCQkJL1RDWVVwRG93bkFkanVzdG1lbnQgMAoJCQkJCQkJCS9UQ1lMZWZ0UmlnaHRBZGp1c3RtZW50IDAKCQkJCQkJCQkvTGVmdEFraSAtMS4wCgkJCQkJCQkJL1JpZ2h0QWtpIC0xLjAKCQkJCQkJCQkvSmlEb3JpIDAKCQkJCQkJCQkvTm9CcmVhayBmYWxzZQoJCQkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCS9CbGVuZAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZUJsZW5kZXIKCQkJCQkJCQk+PgoJCQkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCQkJL0ZpbGxPdmVyUHJpbnQgZmFsc2UKCQkJCQkJCQkvU3Ryb2tlT3ZlclByaW50IGZhbHNlCgkJCQkJCQkJL0xpbmVDYXAgMAoJCQkJCQkJCS9MaW5lSm9pbiAwCgkJCQkJCQkJL0xpbmVXaWR0aCAwLjA0MTY3CgkJCQkJCQkJL01pdGVyTGltaXQgMC4wNDE2NwoJCQkJCQkJCS9MaW5lRGFzaE9mZnNldCAwLjAKCQkJCQkJCQkvTGluZURhc2hBcnJheSBbIF0KCQkJCQkJCQkvVHlwZTFFbmNvZGluZ05hbWVzIFsgXQoJCQkJCQkJPj4KCQkJCQkJPj4KCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0tlcm5SdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0FsdGVybmF0ZUdseXBoUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdG9yeVNoZWV0CgkJCTw8CgkJCQkvQW50aUFsaWFzIDQKCQkJCS9Vc2VGcmFjdGlvbmFsR2x5cGhXaWR0aHMgdHJ1ZQoJCQk+PgoJCT4+CgkJL1ZpZXcKCQk8PAoJCQkvRnJhbWVzIFsKCQkJPDwKCQkJCS9SZXNvdXJjZSAxNwoJCQk+PgoJCQldCgkJCS9SZW5kZXJlZERhdGEKCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL0xpbmVDb3VudCAxCgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdHJpa2VzIFsKCQkJPDwKCQkJCS9TdHJlYW1UYWcgL1BhdGhTZWxlY3RHcm91cENoYXJhY3RlcgoJCQkJL1RyYW5zZm9ybQoJCQkJPDwKCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkvQ2hpbGRQcm9jZXNzaW9uIDAKCQkJCS9DaGlsZHJlbiBbCgkJCQk8PAoJCQkJCS9TdHJlYW1UYWcgL0ZyYW1lU3RyaWtlCgkJCQkJL0ZyYW1lIDE3CgkJCQkJL1RyYW5zZm9ybQoJCQkJCTw8CgkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQk+PgoJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCS9DaGlsZFByb2Nlc3Npb24gMgoJCQkJCS9DaGlsZHJlbiBbCgkJCQkJPDwKCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCS9Sb3dDb2xJbmRleCAwCgkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJPDwKCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJPj4KCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQk8PAoJCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCQkvUm93Q29sSW5kZXggMAoJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJPDwKCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCQk+PgoJCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDIKCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQk8PAoJCQkJCQkJCS9TdHJlYW1UYWcgL0xpbmVTdHJpa2UKCQkJCQkJCQkvQmFzZWxpbmUgMC4wCgkJCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJCQkvRU1IZWlnaHQgMjAuNzczMzEKCQkJCQkJCQkvREhlaWdodCAxNC44MzE5MgoJCQkJCQkJCS9TZWxlY3Rpb25Bc2NlbnQgLTE3LjgwMjYxCgkJCQkJCQkJL1NlbGVjdGlvbkRlc2NlbnQgMTMuMzk0MzMKCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJPDwKCQkJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQkJCT4+CgkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMC4wIDQuNTA3NzEgXQoJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2VnbWVudAoJCQkJCQkJCQkvTWFwcGluZwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0NoYXJhY3RlckNvdW50IDQKCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpcnN0Q2hhcmFjdGVySW5kZXhJblNlZ21lbnQgMAoJCQkJCQkJCQkvVW5kZXJsaW5lSW52YWxpZGF0aW9uIFsgLTIzLjg4OTI0IDguODg2NjIgMjQuMzA0NyA4Ljg4NjYyIF0KCQkJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL09yaWdpbiBbIC0yMy44ODkyNCAwLjAgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSAzMDAyMy44ODg2NyA0LjUwNzcxIF0KCQkJCQkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAxCgkJCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvU3RyZWFtVGFnIC9HbHlwaFN0cmlrZQoJCQkJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDguODg2NjIgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCS9Cb3VuZHMgWyAwLjAgLTE3LjgwMjYxIDQ4LjE5Mzk0IDQuNTA3NzEgXQoJCQkJCQkJCQkJL0dseXBocyBbIDQzIDU0IDQyIDMgXQoJCQkJCQkJCQkJL0dseXBoQWRqdXN0bWVudHMKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL0RhdGEgWwoJCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJCS9CYWNrRml4ZWQgMC40MTU0NwoJCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkJXQoJCQkJCQkJCQkJCS9SdW5MZW5ndGhzIFsgNCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJL1JlbmRlcmVkQm91bmRzIFsgLTIzLjg4OTI0IC04LjkxNTk5IDI0LjMwNDcgMTMuMzk0MzMgXQoJCQkJCQkJCQkJL1Zpc3VhbEJvdW5kcyBbIC0yMy44ODkyNCAtOC45MTU5OSAyNC4zMDQ3IDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9JbnZhbGlkYXRpb24gWyAtMjMuODg5MjQgLTguOTE1OTkgMzUuNDE4MTcgMTMuMzk0MzMgXQoJCQkJCQkJCQkJL1NoYWRvd1N0eWxlc1J1bgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvRGF0YSBbCgkJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkJL0luZGV4IDAKCQkJCQkJCQkJCQkJL0ZvbnQgMAoJCQkJCQkJCQkJCQkvT3JpZW50YXRpb24gMAoJCQkJCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCQkJCQkvS2VyblR5cGUgMQoJCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkJXQoJCQkJCQkJCQkJCS9SdW5MZW5ndGhzIFsgNCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQldCgkJCQkJCQkJCS9Bbm5vdGF0aW9uCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvV2lkdGggMC4wCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJXQoJCQkJCQk+PgoJCQkJCQldCgkJCQkJPj4KCQkJCQldCgkJCQk+PgoJCQkJXQoJCQk+PgoJCQldCgkJPj4KCQkvT3B0aWNhbEFsaWdubWVudCBmYWxzZQoJPj4KCTw8CgkJL01vZGVsCgkJPDwKCQkJL1RleHQgKP7/AFAAUABUAA0pCgkJCS9QYXJhZ3JhcGhSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1BhcmFncmFwaFNoZWV0CgkJCQkJCTw8CgkJCQkJCQkvTmFtZSAo/v8pCgkJCQkJCQkvRmVhdHVyZXMKCQkJCQkJCTw8CgkJCQkJCQkJL0p1c3RpZmljYXRpb24gMgoJCQkJCQkJCS9GaXJzdExpbmVJbmRlbnQgMC4wCgkJCQkJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJCQkJCS9Ecm9wQ2FwcyAxCgkJCQkJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgOAoJCQkJCQkJCS9QcmVIeXBoZW4gMwoJCQkJCQkJCS9Qb3N0SHlwaGVuIDMKCQkJCQkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDIKCQkJCQkJCQkvWm9uZSAzNi4wCgkJCQkJCQkJL0h5cGhlbmF0ZUNhcGl0YWxpemVkIHRydWUKCQkJCQkJCQkvSHlwaGVuYXRpb25QcmVmZXJlbmNlIDAuNQoJCQkJCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCQkJCQkvU2luZ2xlV29yZEp1c3RpZmljYXRpb24gNgoJCQkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCQkJL0F1dG9UQ1kgMQoJCQkJCQkJCS9LZWVwVG9nZXRoZXIgdHJ1ZQoJCQkJCQkJCS9CdXJhc2FnYXJpVHlwZSAwCgkJCQkJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkJCQkJL0t1cmlrYWVzaGlNb2ppU2hvcmkgZmFsc2UKCQkJCQkJCQkvS2luc29rdSAvbmlsCgkJCQkJCQkJL01vamlLdW1pVGFibGUgL25pbAoJCQkJCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQkJCQkJCS9UYWJTdG9wcwoJCQkJCQkJCTw8CgkJCQkJCQkJPj4KCQkJCQkJCQkvRGVmYXVsdFRhYldpZHRoIDM2LjAKCQkJCQkJCQkvRGVmYXVsdFN0eWxlCgkJCQkJCQkJPDwKCQkJCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQk+PgoJCQkJCQkJPj4KCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQk+PgoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3R5bGVSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1N0eWxlU2hlZXQKCQkJCQkJPDwKCQkJCQkJCS9OYW1lICj+/ykKCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQkJL0ZlYXR1cmVzCgkJCQkJCQk8PAoJCQkJCQkJCS9Gb250IDAKCQkJCQkJCQkvRm9udFNpemUgMjAuNzczMzEKCQkJCQkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkJCS9BdXRvTGVhZGluZyBmYWxzZQoJCQkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCQkJCQkvVHJhY2tpbmcgMjAKCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCS9DaGFyYWN0ZXJSb3RhdGlvbiAwLjAKCQkJCQkJCQkvQXV0b0tlcm4gMQoJCQkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkJCQkJL0ZvbnRPVFBvc2l0aW9uIDAKCQkJCQkJCQkvU3RyaWtldGhyb3VnaFBvc2l0aW9uIDAKCQkJCQkJCQkvVW5kZXJsaW5lUG9zaXRpb24gMAoJCQkJCQkJCS9VbmRlcmxpbmVPZmZzZXQgMC4wCgkJCQkJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkJCQkJL0Rpc2NyZXRpb25hcnlMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvQ29udGV4dHVhbExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9BbHRlcm5hdGVMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvT2xkU3R5bGUgZmFsc2UKCQkJCQkJCQkvRnJhY3Rpb25zIGZhbHNlCgkJCQkJCQkJL09yZGluYWxzIGZhbHNlCgkJCQkJCQkJL1N3YXNoIGZhbHNlCgkJCQkJCQkJL1RpdGxpbmcgZmFsc2UKCQkJCQkJCQkvQ29ubmVjdGlvbkZvcm1zIGZhbHNlCgkJCQkJCQkJL1N0eWxpc3RpY0FsdGVybmF0ZXMgZmFsc2UKCQkJCQkJCQkvT3JuYW1lbnRzIGZhbHNlCgkJCQkJCQkJL0ZpZ3VyZVN0eWxlIDAKCQkJCQkJCQkvUHJvcG9ydGlvbmFsTWV0cmljcyBmYWxzZQoJCQkJCQkJCS9LYW5hIGZhbHNlCgkJCQkJCQkJL0l0YWxpY3MgZmFsc2UKCQkJCQkJCQkvUnVieSBmYWxzZQoJCQkJCQkJCS9CYXNlbGluZURpcmVjdGlvbiAxCgkJCQkJCQkJL1RzdW1lIDAuMAoJCQkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCQkJL0xhbmd1YWdlIDAKCQkJCQkJCQkvSmFwYW5lc2VBbHRlcm5hdGVGZWF0dXJlIDAKCQkJCQkJCQkvRW5hYmxlV2FyaUNodSBmYWxzZQoJCQkJCQkJCS9XYXJpQ2h1TGluZUNvdW50IDIKCQkJCQkJCQkvV2FyaUNodUxpbmVHYXAgMAoJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZUFtb3VudAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZVNjYWxlIDAuNQoJCQkJCQkJCT4+CgkJCQkJCQkJL1dhcmlDaHVXaWRvd0Ftb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVPcnBoYW5BbW91bnQgMgoJCQkJCQkJCS9XYXJpQ2h1SnVzdGlmaWNhdGlvbiA3CgkJCQkJCQkJL1RDWVVwRG93bkFkanVzdG1lbnQgMAoJCQkJCQkJCS9UQ1lMZWZ0UmlnaHRBZGp1c3RtZW50IDAKCQkJCQkJCQkvTGVmdEFraSAtMS4wCgkJCQkJCQkJL1JpZ2h0QWtpIC0xLjAKCQkJCQkJCQkvSmlEb3JpIDAKCQkJCQkJCQkvTm9CcmVhayBmYWxzZQoJCQkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCS9CbGVuZAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZUJsZW5kZXIKCQkJCQkJCQk+PgoJCQkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCQkJL0ZpbGxPdmVyUHJpbnQgZmFsc2UKCQkJCQkJCQkvU3Ryb2tlT3ZlclByaW50IGZhbHNlCgkJCQkJCQkJL0xpbmVDYXAgMAoJCQkJCQkJCS9MaW5lSm9pbiAwCgkJCQkJCQkJL0xpbmVXaWR0aCAwLjA0MTY3CgkJCQkJCQkJL01pdGVyTGltaXQgMC4wNDE2NwoJCQkJCQkJCS9MaW5lRGFzaE9mZnNldCAwLjAKCQkJCQkJCQkvTGluZURhc2hBcnJheSBbIF0KCQkJCQkJCQkvVHlwZTFFbmNvZGluZ05hbWVzIFsgXQoJCQkJCQkJPj4KCQkJCQkJPj4KCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0tlcm5SdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0FsdGVybmF0ZUdseXBoUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdG9yeVNoZWV0CgkJCTw8CgkJCQkvQW50aUFsaWFzIDQKCQkJCS9Vc2VGcmFjdGlvbmFsR2x5cGhXaWR0aHMgdHJ1ZQoJCQk+PgoJCT4+CgkJL1ZpZXcKCQk8PAoJCQkvRnJhbWVzIFsKCQkJPDwKCQkJCS9SZXNvdXJjZSAxOAoJCQk+PgoJCQldCgkJCS9SZW5kZXJlZERhdGEKCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL0xpbmVDb3VudCAxCgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdHJpa2VzIFsKCQkJPDwKCQkJCS9TdHJlYW1UYWcgL1BhdGhTZWxlY3RHcm91cENoYXJhY3RlcgoJCQkJL1RyYW5zZm9ybQoJCQkJPDwKCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkvQ2hpbGRQcm9jZXNzaW9uIDAKCQkJCS9DaGlsZHJlbiBbCgkJCQk8PAoJCQkJCS9TdHJlYW1UYWcgL0ZyYW1lU3RyaWtlCgkJCQkJL0ZyYW1lIDE4CgkJCQkJL1RyYW5zZm9ybQoJCQkJCTw8CgkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQk+PgoJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCS9DaGlsZFByb2Nlc3Npb24gMgoJCQkJCS9DaGlsZHJlbiBbCgkJCQkJPDwKCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCS9Sb3dDb2xJbmRleCAwCgkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJPDwKCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJPj4KCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQk8PAoJCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCQkvUm93Q29sSW5kZXggMAoJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJPDwKCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCQk+PgoJCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDIKCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQk8PAoJCQkJCQkJCS9TdHJlYW1UYWcgL0xpbmVTdHJpa2UKCQkJCQkJCQkvQmFzZWxpbmUgMC4wCgkJCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJCQkvRU1IZWlnaHQgMjAuNzczMzEKCQkJCQkJCQkvREhlaWdodCAxNC44MzE5MgoJCQkJCQkJCS9TZWxlY3Rpb25Bc2NlbnQgLTE3LjgwMjYxCgkJCQkJCQkJL1NlbGVjdGlvbkRlc2NlbnQgMTMuMzk0MzMKCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJPDwKCQkJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQkJCT4+CgkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMC4wIDQuNTA3NzEgXQoJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2VnbWVudAoJCQkJCQkJCQkvTWFwcGluZwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0NoYXJhY3RlckNvdW50IDQKCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpcnN0Q2hhcmFjdGVySW5kZXhJblNlZ21lbnQgMAoJCQkJCQkJCQkvVW5kZXJsaW5lSW52YWxpZGF0aW9uIFsgLTIwLjYxNzI1IDguODg2NjIgMjEuMDMyNzEgOC44ODY2MiBdCgkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9PcmlnaW4gWyAtMjAuNjE3MjUgMC4wIF0KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMzAwMjAuNjE3MTkgNC41MDc3MSBdCgkJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvR2x5cGhTdHJpa2UKCQkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL09yaWdpbiBbIDAuMCA4Ljg4NjYyIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSA0MS42NDk5NiA0LjUwNzcxIF0KCQkJCQkJCQkJCS9HbHlwaHMgWyA1NSA1NSA1OSAzIF0KCQkJCQkJCQkJCS9HbHlwaEFkanVzdG1lbnRzCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9EYXRhIFsKCQkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCQkvQmFja0ZpeGVkIDAuNDE1NDcKCQkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJCV0KCQkJCQkJCQkJCQkvUnVuTGVuZ3RocyBbIDQgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCS9SZW5kZXJlZEJvdW5kcyBbIC0yMC42MTcyNSAtOC45MTU5OSAyMS4wMzI3MSAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvVmlzdWFsQm91bmRzIFsgLTIwLjYxNzI1IC04LjkxNTk5IDIxLjAzMjcxIDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9JbnZhbGlkYXRpb24gWyAtMjAuNjE3MjUgLTguOTE1OTkgMzIuMTQ2MTggMTMuMzk0MzMgXQoJCQkJCQkJCQkJL1NoYWRvd1N0eWxlc1J1bgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvRGF0YSBbCgkJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkJL0luZGV4IDAKCQkJCQkJCQkJCQkJL0ZvbnQgMAoJCQkJCQkJCQkJCQkvT3JpZW50YXRpb24gMAoJCQkJCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCQkJCQkvS2VyblR5cGUgMQoJCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkJXQoJCQkJCQkJCQkJCS9SdW5MZW5ndGhzIFsgNCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQldCgkJCQkJCQkJCS9Bbm5vdGF0aW9uCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvV2lkdGggMC4wCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJXQoJCQkJCQk+PgoJCQkJCQldCgkJCQkJPj4KCQkJCQldCgkJCQk+PgoJCQkJXQoJCQk+PgoJCQldCgkJPj4KCQkvT3B0aWNhbEFsaWdubWVudCBmYWxzZQoJPj4KCTw8CgkJL01vZGVsCgkJPDwKCQkJL1RleHQgKP7/AFAAUABTAA0pCgkJCS9QYXJhZ3JhcGhSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1BhcmFncmFwaFNoZWV0CgkJCQkJCTw8CgkJCQkJCQkvTmFtZSAo/v8pCgkJCQkJCQkvRmVhdHVyZXMKCQkJCQkJCTw8CgkJCQkJCQkJL0p1c3RpZmljYXRpb24gMgoJCQkJCQkJCS9GaXJzdExpbmVJbmRlbnQgMC4wCgkJCQkJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJCQkJCS9Ecm9wQ2FwcyAxCgkJCQkJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgOAoJCQkJCQkJCS9QcmVIeXBoZW4gMwoJCQkJCQkJCS9Qb3N0SHlwaGVuIDMKCQkJCQkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDIKCQkJCQkJCQkvWm9uZSAzNi4wCgkJCQkJCQkJL0h5cGhlbmF0ZUNhcGl0YWxpemVkIHRydWUKCQkJCQkJCQkvSHlwaGVuYXRpb25QcmVmZXJlbmNlIDAuNQoJCQkJCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCQkJCQkvU2luZ2xlV29yZEp1c3RpZmljYXRpb24gNgoJCQkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCQkJL0F1dG9UQ1kgMQoJCQkJCQkJCS9LZWVwVG9nZXRoZXIgdHJ1ZQoJCQkJCQkJCS9CdXJhc2FnYXJpVHlwZSAwCgkJCQkJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkJCQkJL0t1cmlrYWVzaGlNb2ppU2hvcmkgZmFsc2UKCQkJCQkJCQkvS2luc29rdSAvbmlsCgkJCQkJCQkJL01vamlLdW1pVGFibGUgL25pbAoJCQkJCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQkJCQkJCS9UYWJTdG9wcwoJCQkJCQkJCTw8CgkJCQkJCQkJPj4KCQkJCQkJCQkvRGVmYXVsdFRhYldpZHRoIDM2LjAKCQkJCQkJCQkvRGVmYXVsdFN0eWxlCgkJCQkJCQkJPDwKCQkJCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQk+PgoJCQkJCQkJPj4KCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQk+PgoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3R5bGVSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1N0eWxlU2hlZXQKCQkJCQkJPDwKCQkJCQkJCS9OYW1lICj+/ykKCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQkJL0ZlYXR1cmVzCgkJCQkJCQk8PAoJCQkJCQkJCS9Gb250IDAKCQkJCQkJCQkvRm9udFNpemUgMjAuNzczMzEKCQkJCQkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkJCS9BdXRvTGVhZGluZyBmYWxzZQoJCQkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCQkJCQkvVHJhY2tpbmcgMjAKCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCS9DaGFyYWN0ZXJSb3RhdGlvbiAwLjAKCQkJCQkJCQkvQXV0b0tlcm4gMQoJCQkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkJCQkJL0ZvbnRPVFBvc2l0aW9uIDAKCQkJCQkJCQkvU3RyaWtldGhyb3VnaFBvc2l0aW9uIDAKCQkJCQkJCQkvVW5kZXJsaW5lUG9zaXRpb24gMAoJCQkJCQkJCS9VbmRlcmxpbmVPZmZzZXQgMC4wCgkJCQkJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkJCQkJL0Rpc2NyZXRpb25hcnlMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvQ29udGV4dHVhbExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9BbHRlcm5hdGVMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvT2xkU3R5bGUgZmFsc2UKCQkJCQkJCQkvRnJhY3Rpb25zIGZhbHNlCgkJCQkJCQkJL09yZGluYWxzIGZhbHNlCgkJCQkJCQkJL1N3YXNoIGZhbHNlCgkJCQkJCQkJL1RpdGxpbmcgZmFsc2UKCQkJCQkJCQkvQ29ubmVjdGlvbkZvcm1zIGZhbHNlCgkJCQkJCQkJL1N0eWxpc3RpY0FsdGVybmF0ZXMgZmFsc2UKCQkJCQkJCQkvT3JuYW1lbnRzIGZhbHNlCgkJCQkJCQkJL0ZpZ3VyZVN0eWxlIDAKCQkJCQkJCQkvUHJvcG9ydGlvbmFsTWV0cmljcyBmYWxzZQoJCQkJCQkJCS9LYW5hIGZhbHNlCgkJCQkJCQkJL0l0YWxpY3MgZmFsc2UKCQkJCQkJCQkvUnVieSBmYWxzZQoJCQkJCQkJCS9CYXNlbGluZURpcmVjdGlvbiAxCgkJCQkJCQkJL1RzdW1lIDAuMAoJCQkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCQkJL0xhbmd1YWdlIDAKCQkJCQkJCQkvSmFwYW5lc2VBbHRlcm5hdGVGZWF0dXJlIDAKCQkJCQkJCQkvRW5hYmxlV2FyaUNodSBmYWxzZQoJCQkJCQkJCS9XYXJpQ2h1TGluZUNvdW50IDIKCQkJCQkJCQkvV2FyaUNodUxpbmVHYXAgMAoJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZUFtb3VudAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZVNjYWxlIDAuNQoJCQkJCQkJCT4+CgkJCQkJCQkJL1dhcmlDaHVXaWRvd0Ftb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVPcnBoYW5BbW91bnQgMgoJCQkJCQkJCS9XYXJpQ2h1SnVzdGlmaWNhdGlvbiA3CgkJCQkJCQkJL1RDWVVwRG93bkFkanVzdG1lbnQgMAoJCQkJCQkJCS9UQ1lMZWZ0UmlnaHRBZGp1c3RtZW50IDAKCQkJCQkJCQkvTGVmdEFraSAtMS4wCgkJCQkJCQkJL1JpZ2h0QWtpIC0xLjAKCQkJCQkJCQkvSmlEb3JpIDAKCQkJCQkJCQkvTm9CcmVhayBmYWxzZQoJCQkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCS9CbGVuZAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZUJsZW5kZXIKCQkJCQkJCQk+PgoJCQkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCQkJL0ZpbGxPdmVyUHJpbnQgZmFsc2UKCQkJCQkJCQkvU3Ryb2tlT3ZlclByaW50IGZhbHNlCgkJCQkJCQkJL0xpbmVDYXAgMAoJCQkJCQkJCS9MaW5lSm9pbiAwCgkJCQkJCQkJL0xpbmVXaWR0aCAwLjA0MTY3CgkJCQkJCQkJL01pdGVyTGltaXQgMC4wNDE2NwoJCQkJCQkJCS9MaW5lRGFzaE9mZnNldCAwLjAKCQkJCQkJCQkvTGluZURhc2hBcnJheSBbIF0KCQkJCQkJCQkvVHlwZTFFbmNvZGluZ05hbWVzIFsgXQoJCQkJCQkJPj4KCQkJCQkJPj4KCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0tlcm5SdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0FsdGVybmF0ZUdseXBoUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdG9yeVNoZWV0CgkJCTw8CgkJCQkvQW50aUFsaWFzIDQKCQkJCS9Vc2VGcmFjdGlvbmFsR2x5cGhXaWR0aHMgdHJ1ZQoJCQk+PgoJCT4+CgkJL1ZpZXcKCQk8PAoJCQkvRnJhbWVzIFsKCQkJPDwKCQkJCS9SZXNvdXJjZSAxOQoJCQk+PgoJCQldCgkJCS9SZW5kZXJlZERhdGEKCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL0xpbmVDb3VudCAxCgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdHJpa2VzIFsKCQkJPDwKCQkJCS9TdHJlYW1UYWcgL1BhdGhTZWxlY3RHcm91cENoYXJhY3RlcgoJCQkJL1RyYW5zZm9ybQoJCQkJPDwKCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkvQ2hpbGRQcm9jZXNzaW9uIDAKCQkJCS9DaGlsZHJlbiBbCgkJCQk8PAoJCQkJCS9TdHJlYW1UYWcgL0ZyYW1lU3RyaWtlCgkJCQkJL0ZyYW1lIDE5CgkJCQkJL1RyYW5zZm9ybQoJCQkJCTw8CgkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQk+PgoJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCS9DaGlsZFByb2Nlc3Npb24gMgoJCQkJCS9DaGlsZHJlbiBbCgkJCQkJPDwKCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCS9Sb3dDb2xJbmRleCAwCgkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJPDwKCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJPj4KCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQk8PAoJCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCQkvUm93Q29sSW5kZXggMAoJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJPDwKCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCQk+PgoJCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDIKCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQk8PAoJCQkJCQkJCS9TdHJlYW1UYWcgL0xpbmVTdHJpa2UKCQkJCQkJCQkvQmFzZWxpbmUgMC4wCgkJCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJCQkvRU1IZWlnaHQgMjAuNzczMzEKCQkJCQkJCQkvREhlaWdodCAxNC44MzE5MgoJCQkJCQkJCS9TZWxlY3Rpb25Bc2NlbnQgLTE3LjgwMjYxCgkJCQkJCQkJL1NlbGVjdGlvbkRlc2NlbnQgMTMuMzk0MzMKCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJPDwKCQkJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQkJCT4+CgkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMC4wIDQuNTA3NzEgXQoJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2VnbWVudAoJCQkJCQkJCQkvTWFwcGluZwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0NoYXJhY3RlckNvdW50IDQKCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpcnN0Q2hhcmFjdGVySW5kZXhJblNlZ21lbnQgMAoJCQkJCQkJCQkvVW5kZXJsaW5lSW52YWxpZGF0aW9uIFsgLTIxLjAxMTg5IDguODg2NjIgMjEuNDI3MzUgOC44ODY2MiBdCgkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9PcmlnaW4gWyAtMjEuMDExODkgMC4wIF0KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMzAwMjEuMDExNzIgNC41MDc3MSBdCgkJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvR2x5cGhTdHJpa2UKCQkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL09yaWdpbiBbIDAuMCA4Ljg4NjYyIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSA0Mi40MzkyNCA0LjUwNzcxIF0KCQkJCQkJCQkJCS9HbHlwaHMgWyA1NSA1NSA1OCAzIF0KCQkJCQkJCQkJCS9HbHlwaEFkanVzdG1lbnRzCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9EYXRhIFsKCQkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCQkvQmFja0ZpeGVkIDAuNDE1NDcKCQkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJCV0KCQkJCQkJCQkJCQkvUnVuTGVuZ3RocyBbIDQgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCS9SZW5kZXJlZEJvdW5kcyBbIC0yMS4wMTE4OSAtOC45MTU5OSAyMS40MjczNSAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvVmlzdWFsQm91bmRzIFsgLTIxLjAxMTg5IC04LjkxNTk5IDIxLjQyNzM1IDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9JbnZhbGlkYXRpb24gWyAtMjEuMDExODkgLTguOTE1OTkgMzIuNTQwODIgMTMuMzk0MzMgXQoJCQkJCQkJCQkJL1NoYWRvd1N0eWxlc1J1bgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvRGF0YSBbCgkJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkJL0luZGV4IDAKCQkJCQkJCQkJCQkJL0ZvbnQgMAoJCQkJCQkJCQkJCQkvT3JpZW50YXRpb24gMAoJCQkJCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCQkJCQkvS2VyblR5cGUgMQoJCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkJXQoJCQkJCQkJCQkJCS9SdW5MZW5ndGhzIFsgNCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQldCgkJCQkJCQkJCS9Bbm5vdGF0aW9uCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvV2lkdGggMC4wCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJXQoJCQkJCQk+PgoJCQkJCQldCgkJCQkJPj4KCQkJCQldCgkJCQk+PgoJCQkJXQoJCQk+PgoJCQldCgkJPj4KCQkvT3B0aWNhbEFsaWdubWVudCBmYWxzZQoJPj4KCTw8CgkJL01vZGVsCgkJPDwKCQkJL1RleHQgKP7/AEMAVQBFAA0pCgkJCS9QYXJhZ3JhcGhSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1BhcmFncmFwaFNoZWV0CgkJCQkJCTw8CgkJCQkJCQkvTmFtZSAo/v8pCgkJCQkJCQkvRmVhdHVyZXMKCQkJCQkJCTw8CgkJCQkJCQkJL0p1c3RpZmljYXRpb24gMgoJCQkJCQkJCS9GaXJzdExpbmVJbmRlbnQgMC4wCgkJCQkJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJCQkJCS9Ecm9wQ2FwcyAxCgkJCQkJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgOAoJCQkJCQkJCS9QcmVIeXBoZW4gMwoJCQkJCQkJCS9Qb3N0SHlwaGVuIDMKCQkJCQkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDIKCQkJCQkJCQkvWm9uZSAzNi4wCgkJCQkJCQkJL0h5cGhlbmF0ZUNhcGl0YWxpemVkIHRydWUKCQkJCQkJCQkvSHlwaGVuYXRpb25QcmVmZXJlbmNlIDAuNQoJCQkJCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCQkJCQkvU2luZ2xlV29yZEp1c3RpZmljYXRpb24gNgoJCQkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCQkJL0F1dG9UQ1kgMQoJCQkJCQkJCS9LZWVwVG9nZXRoZXIgdHJ1ZQoJCQkJCQkJCS9CdXJhc2FnYXJpVHlwZSAwCgkJCQkJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkJCQkJL0t1cmlrYWVzaGlNb2ppU2hvcmkgZmFsc2UKCQkJCQkJCQkvS2luc29rdSAvbmlsCgkJCQkJCQkJL01vamlLdW1pVGFibGUgL25pbAoJCQkJCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQkJCQkJCS9UYWJTdG9wcwoJCQkJCQkJCTw8CgkJCQkJCQkJPj4KCQkJCQkJCQkvRGVmYXVsdFRhYldpZHRoIDM2LjAKCQkJCQkJCQkvRGVmYXVsdFN0eWxlCgkJCQkJCQkJPDwKCQkJCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQk+PgoJCQkJCQkJPj4KCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQk+PgoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3R5bGVSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1N0eWxlU2hlZXQKCQkJCQkJPDwKCQkJCQkJCS9OYW1lICj+/ykKCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQkJL0ZlYXR1cmVzCgkJCQkJCQk8PAoJCQkJCQkJCS9Gb250IDAKCQkJCQkJCQkvRm9udFNpemUgMjAuNzczMzEKCQkJCQkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkJCS9BdXRvTGVhZGluZyBmYWxzZQoJCQkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCQkJCQkvVHJhY2tpbmcgMjAKCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCS9DaGFyYWN0ZXJSb3RhdGlvbiAwLjAKCQkJCQkJCQkvQXV0b0tlcm4gMQoJCQkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkJCQkJL0ZvbnRPVFBvc2l0aW9uIDAKCQkJCQkJCQkvU3RyaWtldGhyb3VnaFBvc2l0aW9uIDAKCQkJCQkJCQkvVW5kZXJsaW5lUG9zaXRpb24gMAoJCQkJCQkJCS9VbmRlcmxpbmVPZmZzZXQgMC4wCgkJCQkJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkJCQkJL0Rpc2NyZXRpb25hcnlMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvQ29udGV4dHVhbExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9BbHRlcm5hdGVMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvT2xkU3R5bGUgZmFsc2UKCQkJCQkJCQkvRnJhY3Rpb25zIGZhbHNlCgkJCQkJCQkJL09yZGluYWxzIGZhbHNlCgkJCQkJCQkJL1N3YXNoIGZhbHNlCgkJCQkJCQkJL1RpdGxpbmcgZmFsc2UKCQkJCQkJCQkvQ29ubmVjdGlvbkZvcm1zIGZhbHNlCgkJCQkJCQkJL1N0eWxpc3RpY0FsdGVybmF0ZXMgZmFsc2UKCQkJCQkJCQkvT3JuYW1lbnRzIGZhbHNlCgkJCQkJCQkJL0ZpZ3VyZVN0eWxlIDAKCQkJCQkJCQkvUHJvcG9ydGlvbmFsTWV0cmljcyBmYWxzZQoJCQkJCQkJCS9LYW5hIGZhbHNlCgkJCQkJCQkJL0l0YWxpY3MgZmFsc2UKCQkJCQkJCQkvUnVieSBmYWxzZQoJCQkJCQkJCS9CYXNlbGluZURpcmVjdGlvbiAxCgkJCQkJCQkJL1RzdW1lIDAuMAoJCQkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCQkJL0xhbmd1YWdlIDAKCQkJCQkJCQkvSmFwYW5lc2VBbHRlcm5hdGVGZWF0dXJlIDAKCQkJCQkJCQkvRW5hYmxlV2FyaUNodSBmYWxzZQoJCQkJCQkJCS9XYXJpQ2h1TGluZUNvdW50IDIKCQkJCQkJCQkvV2FyaUNodUxpbmVHYXAgMAoJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZUFtb3VudAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZVNjYWxlIDAuNQoJCQkJCQkJCT4+CgkJCQkJCQkJL1dhcmlDaHVXaWRvd0Ftb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVPcnBoYW5BbW91bnQgMgoJCQkJCQkJCS9XYXJpQ2h1SnVzdGlmaWNhdGlvbiA3CgkJCQkJCQkJL1RDWVVwRG93bkFkanVzdG1lbnQgMAoJCQkJCQkJCS9UQ1lMZWZ0UmlnaHRBZGp1c3RtZW50IDAKCQkJCQkJCQkvTGVmdEFraSAtMS4wCgkJCQkJCQkJL1JpZ2h0QWtpIC0xLjAKCQkJCQkJCQkvSmlEb3JpIDAKCQkJCQkJCQkvTm9CcmVhayBmYWxzZQoJCQkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCS9CbGVuZAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZUJsZW5kZXIKCQkJCQkJCQk+PgoJCQkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCQkJL0ZpbGxPdmVyUHJpbnQgZmFsc2UKCQkJCQkJCQkvU3Ryb2tlT3ZlclByaW50IGZhbHNlCgkJCQkJCQkJL0xpbmVDYXAgMAoJCQkJCQkJCS9MaW5lSm9pbiAwCgkJCQkJCQkJL0xpbmVXaWR0aCAwLjA0MTY3CgkJCQkJCQkJL01pdGVyTGltaXQgMC4wNDE2NwoJCQkJCQkJCS9MaW5lRGFzaE9mZnNldCAwLjAKCQkJCQkJCQkvTGluZURhc2hBcnJheSBbIF0KCQkJCQkJCQkvVHlwZTFFbmNvZGluZ05hbWVzIFsgXQoJCQkJCQkJPj4KCQkJCQkJPj4KCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0tlcm5SdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0FsdGVybmF0ZUdseXBoUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdG9yeVNoZWV0CgkJCTw8CgkJCQkvQW50aUFsaWFzIDQKCQkJCS9Vc2VGcmFjdGlvbmFsR2x5cGhXaWR0aHMgdHJ1ZQoJCQk+PgoJCT4+CgkJL1ZpZXcKCQk8PAoJCQkvRnJhbWVzIFsKCQkJPDwKCQkJCS9SZXNvdXJjZSAyMAoJCQk+PgoJCQldCgkJCS9SZW5kZXJlZERhdGEKCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL0xpbmVDb3VudCAxCgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdHJpa2VzIFsKCQkJPDwKCQkJCS9TdHJlYW1UYWcgL1BhdGhTZWxlY3RHcm91cENoYXJhY3RlcgoJCQkJL1RyYW5zZm9ybQoJCQkJPDwKCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkvQ2hpbGRQcm9jZXNzaW9uIDAKCQkJCS9DaGlsZHJlbiBbCgkJCQk8PAoJCQkJCS9TdHJlYW1UYWcgL0ZyYW1lU3RyaWtlCgkJCQkJL0ZyYW1lIDIwCgkJCQkJL1RyYW5zZm9ybQoJCQkJCTw8CgkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQk+PgoJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCS9DaGlsZFByb2Nlc3Npb24gMgoJCQkJCS9DaGlsZHJlbiBbCgkJCQkJPDwKCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCS9Sb3dDb2xJbmRleCAwCgkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJPDwKCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJPj4KCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQk8PAoJCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCQkvUm93Q29sSW5kZXggMAoJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJPDwKCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCQk+PgoJCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDIKCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQk8PAoJCQkJCQkJCS9TdHJlYW1UYWcgL0xpbmVTdHJpa2UKCQkJCQkJCQkvQmFzZWxpbmUgMC4wCgkJCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJCQkvRU1IZWlnaHQgMjAuNzczMzEKCQkJCQkJCQkvREhlaWdodCAxNC44MzE5MgoJCQkJCQkJCS9TZWxlY3Rpb25Bc2NlbnQgLTE3LjgwMjYxCgkJCQkJCQkJL1NlbGVjdGlvbkRlc2NlbnQgMTMuMzk0MzMKCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJPDwKCQkJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQkJCT4+CgkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMC4wIDQuNTA3NzEgXQoJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2VnbWVudAoJCQkJCQkJCQkvTWFwcGluZwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0NoYXJhY3RlckNvdW50IDQKCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpcnN0Q2hhcmFjdGVySW5kZXhJblNlZ21lbnQgMAoJCQkJCQkJCQkvVW5kZXJsaW5lSW52YWxpZGF0aW9uIFsgLTIyLjUzODkyIDguODg2NjIgMjIuOTU0MzggOC44ODY2MiBdCgkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9PcmlnaW4gWyAtMjIuNTM4OTIgMC4wIF0KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMzAwMjIuNTM5MDYgNC41MDc3MSBdCgkJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvR2x5cGhTdHJpa2UKCQkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL09yaWdpbiBbIDAuMCA4Ljg4NjYyIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSA0NS40OTMzIDQuNTA3NzEgXQoJCQkJCQkJCQkJL0dseXBocyBbIDQyIDYwIDQ0IDMgXQoJCQkJCQkJCQkJL0dseXBoQWRqdXN0bWVudHMKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL0RhdGEgWwoJCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJCS9CYWNrRml4ZWQgMC40MTU0NwoJCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkJXQoJCQkJCQkJCQkJCS9SdW5MZW5ndGhzIFsgNCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJL1JlbmRlcmVkQm91bmRzIFsgLTIyLjUzODkyIC04LjkxNTk5IDIyLjk1NDM4IDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9WaXN1YWxCb3VuZHMgWyAtMjIuNTM4OTIgLTguOTE1OTkgMjIuOTU0MzggMTMuMzk0MzMgXQoJCQkJCQkJCQkJL0ludmFsaWRhdGlvbiBbIC0yMi41Mzg5MiAtOC45MTU5OSAzNC4wNjc4NSAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvU2hhZG93U3R5bGVzUnVuCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9EYXRhIFsKCQkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCQkvSW5kZXggMAoJCQkJCQkJCQkJCQkvRm9udCAwCgkJCQkJCQkJCQkJCS9PcmllbnRhdGlvbiAwCgkJCQkJCQkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCQkJCQkJCS9LZXJuVHlwZSAxCgkJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCQldCgkJCQkJCQkJCQkJL1J1bkxlbmd0aHMgWyA0IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJCV0KCQkJCQkJCQkJL0Fubm90YXRpb24KCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9XaWR0aCAwLjAKCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQldCgkJCQkJCT4+CgkJCQkJCV0KCQkJCQk+PgoJCQkJCV0KCQkJCT4+CgkJCQldCgkJCT4+CgkJCV0KCQk+PgoJCS9PcHRpY2FsQWxpZ25tZW50IGZhbHNlCgk+PgoJPDwKCQkvTW9kZWwKCQk8PAoJCQkvVGV4dCAo/v8AQgBJAE4ADSkKCQkJL1BhcmFncmFwaFJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCQkvUGFyYWdyYXBoU2hlZXQKCQkJCQkJPDwKCQkJCQkJCS9OYW1lICj+/ykKCQkJCQkJCS9GZWF0dXJlcwoJCQkJCQkJPDwKCQkJCQkJCQkvSnVzdGlmaWNhdGlvbiAyCgkJCQkJCQkJL0ZpcnN0TGluZUluZGVudCAwLjAKCQkJCQkJCQkvU3RhcnRJbmRlbnQgMC4wCgkJCQkJCQkJL0VuZEluZGVudCAwLjAKCQkJCQkJCQkvU3BhY2VCZWZvcmUgMC4wCgkJCQkJCQkJL1NwYWNlQWZ0ZXIgMC4wCgkJCQkJCQkJL0Ryb3BDYXBzIDEKCQkJCQkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkJCQkJL0xlYWRpbmdUeXBlIDAKCQkJCQkJCQkvQXV0b0h5cGhlbmF0ZSB0cnVlCgkJCQkJCQkJL0h5cGhlbmF0ZWRXb3JkU2l6ZSA4CgkJCQkJCQkJL1ByZUh5cGhlbiAzCgkJCQkJCQkJL1Bvc3RIeXBoZW4gMwoJCQkJCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgMgoJCQkJCQkJCS9ab25lIDM2LjAKCQkJCQkJCQkvSHlwaGVuYXRlQ2FwaXRhbGl6ZWQgdHJ1ZQoJCQkJCQkJCS9IeXBoZW5hdGlvblByZWZlcmVuY2UgMC41CgkJCQkJCQkJL1dvcmRTcGFjaW5nIFsgMC44IDEuMCAxLjMzIF0KCQkJCQkJCQkvTGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJCQkJCS9TaW5nbGVXb3JkSnVzdGlmaWNhdGlvbiA2CgkJCQkJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCQkJCQkvQXV0b1RDWSAxCgkJCQkJCQkJL0tlZXBUb2dldGhlciB0cnVlCgkJCQkJCQkJL0J1cmFzYWdhcmlUeXBlIDAKCQkJCQkJCQkvS2luc29rdU9yZGVyIDAKCQkJCQkJCQkvS3VyaWthZXNoaU1vamlTaG9yaSBmYWxzZQoJCQkJCQkJCS9LaW5zb2t1IC9uaWwKCQkJCQkJCQkvTW9qaUt1bWlUYWJsZSAvbmlsCgkJCQkJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCQkJCQkJL1RhYlN0b3BzCgkJCQkJCQkJPDwKCQkJCQkJCQk+PgoJCQkJCQkJCS9EZWZhdWx0VGFiV2lkdGggMzYuMAoJCQkJCQkJCS9EZWZhdWx0U3R5bGUKCQkJCQkJCQk8PAoJCQkJCQkJCQkvRmlsbENvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9TdHJva2VDb2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkJCT4+CgkJCQkJCQk+PgoJCQkJCQkJL1BhcmVudCAwCgkJCQkJCT4+CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdHlsZVJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCQkvU3R5bGVTaGVldAoJCQkJCQk8PAoJCQkJCQkJL05hbWUgKP7/KQoJCQkJCQkJL1BhcmVudCAwCgkJCQkJCQkvRmVhdHVyZXMKCQkJCQkJCTw8CgkJCQkJCQkJL0ZvbnQgMAoJCQkJCQkJCS9Gb250U2l6ZSAyMC43NzMzMQoJCQkJCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkJCQkJL0F1dG9MZWFkaW5nIGZhbHNlCgkJCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJCQkvSG9yaXpvbnRhbFNjYWxlIDEuMAoJCQkJCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJCQkJCS9UcmFja2luZyAyMAoJCQkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCQkJL0NoYXJhY3RlclJvdGF0aW9uIDAuMAoJCQkJCQkJCS9BdXRvS2VybiAxCgkJCQkJCQkJL0ZvbnRDYXBzIDAKCQkJCQkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCQkJCQkvRm9udE9UUG9zaXRpb24gMAoJCQkJCQkJCS9TdHJpa2V0aHJvdWdoUG9zaXRpb24gMAoJCQkJCQkJCS9VbmRlcmxpbmVQb3NpdGlvbiAwCgkJCQkJCQkJL1VuZGVybGluZU9mZnNldCAwLjAKCQkJCQkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCQkJCQkvRGlzY3JldGlvbmFyeUxpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9Db250ZXh0dWFsTGlnYXR1cmVzIGZhbHNlCgkJCQkJCQkJL0FsdGVybmF0ZUxpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9PbGRTdHlsZSBmYWxzZQoJCQkJCQkJCS9GcmFjdGlvbnMgZmFsc2UKCQkJCQkJCQkvT3JkaW5hbHMgZmFsc2UKCQkJCQkJCQkvU3dhc2ggZmFsc2UKCQkJCQkJCQkvVGl0bGluZyBmYWxzZQoJCQkJCQkJCS9Db25uZWN0aW9uRm9ybXMgZmFsc2UKCQkJCQkJCQkvU3R5bGlzdGljQWx0ZXJuYXRlcyBmYWxzZQoJCQkJCQkJCS9Pcm5hbWVudHMgZmFsc2UKCQkJCQkJCQkvRmlndXJlU3R5bGUgMAoJCQkJCQkJCS9Qcm9wb3J0aW9uYWxNZXRyaWNzIGZhbHNlCgkJCQkJCQkJL0thbmEgZmFsc2UKCQkJCQkJCQkvSXRhbGljcyBmYWxzZQoJCQkJCQkJCS9SdWJ5IGZhbHNlCgkJCQkJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDEKCQkJCQkJCQkvVHN1bWUgMC4wCgkJCQkJCQkJL1N0eWxlUnVuQWxpZ25tZW50IDIKCQkJCQkJCQkvTGFuZ3VhZ2UgMAoJCQkJCQkJCS9KYXBhbmVzZUFsdGVybmF0ZUZlYXR1cmUgMAoJCQkJCQkJCS9FbmFibGVXYXJpQ2h1IGZhbHNlCgkJCQkJCQkJL1dhcmlDaHVMaW5lQ291bnQgMgoJCQkJCQkJCS9XYXJpQ2h1TGluZUdhcCAwCgkJCQkJCQkJL1dhcmlDaHVTdWJMaW5lQW1vdW50CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1dhcmlDaHVTdWJMaW5lU2NhbGUgMC41CgkJCQkJCQkJPj4KCQkJCQkJCQkvV2FyaUNodVdpZG93QW1vdW50IDIKCQkJCQkJCQkvV2FyaUNodU9ycGhhbkFtb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVKdXN0aWZpY2F0aW9uIDcKCQkJCQkJCQkvVENZVXBEb3duQWRqdXN0bWVudCAwCgkJCQkJCQkJL1RDWUxlZnRSaWdodEFkanVzdG1lbnQgMAoJCQkJCQkJCS9MZWZ0QWtpIC0xLjAKCQkJCQkJCQkvUmlnaHRBa2kgLTEuMAoJCQkJCQkJCS9KaURvcmkgMAoJCQkJCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJL0JsZW5kCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlQmxlbmRlcgoJCQkJCQkJCT4+CgkJCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkJCS9GaWxsRmlyc3QgZmFsc2UKCQkJCQkJCQkvRmlsbE92ZXJQcmludCBmYWxzZQoJCQkJCQkJCS9TdHJva2VPdmVyUHJpbnQgZmFsc2UKCQkJCQkJCQkvTGluZUNhcCAwCgkJCQkJCQkJL0xpbmVKb2luIDAKCQkJCQkJCQkvTGluZVdpZHRoIDAuMDQxNjcKCQkJCQkJCQkvTWl0ZXJMaW1pdCAwLjA0MTY3CgkJCQkJCQkJL0xpbmVEYXNoT2Zmc2V0IDAuMAoJCQkJCQkJCS9MaW5lRGFzaEFycmF5IFsgXQoJCQkJCQkJCS9UeXBlMUVuY29kaW5nTmFtZXMgWyBdCgkJCQkJCQk+PgoJCQkJCQk+PgoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvS2VyblJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvQWx0ZXJuYXRlR2x5cGhSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL1N0b3J5U2hlZXQKCQkJPDwKCQkJCS9BbnRpQWxpYXMgNAoJCQkJL1VzZUZyYWN0aW9uYWxHbHlwaFdpZHRocyB0cnVlCgkJCT4+CgkJPj4KCQkvVmlldwoJCTw8CgkJCS9GcmFtZXMgWwoJCQk8PAoJCQkJL1Jlc291cmNlIDIxCgkJCT4+CgkJCV0KCQkJL1JlbmRlcmVkRGF0YQoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCQkvTGluZUNvdW50IDEKCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL1N0cmlrZXMgWwoJCQk8PAoJCQkJL1N0cmVhbVRhZyAvUGF0aFNlbGVjdEdyb3VwQ2hhcmFjdGVyCgkJCQkvVHJhbnNmb3JtCgkJCQk8PAoJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCT4+CgkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCS9DaGlsZFByb2Nlc3Npb24gMAoJCQkJL0NoaWxkcmVuIFsKCQkJCTw8CgkJCQkJL1N0cmVhbVRhZyAvRnJhbWVTdHJpa2UKCQkJCQkvRnJhbWUgMjEKCQkJCQkvVHJhbnNmb3JtCgkJCQkJPDwKCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCT4+CgkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAyCgkJCQkJL0NoaWxkcmVuIFsKCQkJCQk8PAoJCQkJCQkvU3RyZWFtVGFnIC9Sb3dDb2xTdHJpa2UKCQkJCQkJL1Jvd0NvbEluZGV4IDAKCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQk8PAoJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQk+PgoJCQkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAxCgkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCTw8CgkJCQkJCQkvU3RyZWFtVGFnIC9Sb3dDb2xTdHJpa2UKCQkJCQkJCS9Sb3dDb2xJbmRleCAwCgkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQk8PAoJCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJCT4+CgkJCQkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMgoJCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJCTw8CgkJCQkJCQkJL1N0cmVhbVRhZyAvTGluZVN0cmlrZQoJCQkJCQkJCS9CYXNlbGluZSAwLjAKCQkJCQkJCQkvTGVhZGluZyAzOS44NjE5OAoJCQkJCQkJCS9FTUhlaWdodCAyMC43NzMzMQoJCQkJCQkJCS9ESGVpZ2h0IDE0LjgzMTkyCgkJCQkJCQkJL1NlbGVjdGlvbkFzY2VudCAtMTcuODAyNjEKCQkJCQkJCQkvU2VsZWN0aW9uRGVzY2VudCAxMy4zOTQzMwoJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQk8PAoJCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCQkJPj4KCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSAwLjAgNC41MDc3MSBdCgkJCQkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAxCgkJCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TZWdtZW50CgkJCQkJCQkJCS9NYXBwaW5nCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQ2hhcmFjdGVyQ291bnQgNAoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvRmlyc3RDaGFyYWN0ZXJJbmRleEluU2VnbWVudCAwCgkJCQkJCQkJCS9VbmRlcmxpbmVJbnZhbGlkYXRpb24gWyAtMTguNDg4MTMgOC44ODY2MiAxOC45MDM2IDguODg2NjIgXQoJCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvT3JpZ2luIFsgLTE4LjQ4ODEzIDAuMCBdCgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9Cb3VuZHMgWyAwLjAgLTE3LjgwMjYxIDMwMDE4LjQ4ODI4IDQuNTA3NzEgXQoJCQkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDEKCQkJCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL0dseXBoU3RyaWtlCgkJCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9PcmlnaW4gWyAwLjAgOC44ODY2MiBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMzcuMzkxNzIgNC41MDc3MSBdCgkJCQkJCQkJCQkvR2x5cGhzIFsgNDEgNDggNTMgMyBdCgkJCQkJCQkJCQkvR2x5cGhBZGp1c3RtZW50cwoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvRGF0YSBbCgkJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkJL0JhY2tGaXhlZCAwLjQxNTQ3CgkJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCQldCgkJCQkJCQkJCQkJL1J1bkxlbmd0aHMgWyA0IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkvUmVuZGVyZWRCb3VuZHMgWyAtMTguNDg4MTMgLTguOTE1OTkgMTguOTAzNiAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvVmlzdWFsQm91bmRzIFsgLTE4LjQ4ODEzIC04LjkxNTk5IDE4LjkwMzYgMTMuMzk0MzMgXQoJCQkJCQkJCQkJL0ludmFsaWRhdGlvbiBbIC0xOC40ODgxMyAtOC45MTU5OSAzMC4wMTcwNiAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvU2hhZG93U3R5bGVzUnVuCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9EYXRhIFsKCQkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCQkvSW5kZXggMAoJCQkJCQkJCQkJCQkvRm9udCAwCgkJCQkJCQkJCQkJCS9PcmllbnRhdGlvbiAwCgkJCQkJCQkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCQkJCQkJCS9LZXJuVHlwZSAxCgkJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCQldCgkJCQkJCQkJCQkJL1J1bkxlbmd0aHMgWyA0IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJCV0KCQkJCQkJCQkJL0Fubm90YXRpb24KCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9XaWR0aCAwLjAKCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQldCgkJCQkJCT4+CgkJCQkJCV0KCQkJCQk+PgoJCQkJCV0KCQkJCT4+CgkJCQldCgkJCT4+CgkJCV0KCQk+PgoJCS9PcHRpY2FsQWxpZ25tZW50IGZhbHNlCgk+PgoJPDwKCQkvTW9kZWwKCQk8PAoJCQkvVGV4dCAo/v8ASQBTAE8ADSkKCQkJL1BhcmFncmFwaFJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCQkvUGFyYWdyYXBoU2hlZXQKCQkJCQkJPDwKCQkJCQkJCS9OYW1lICj+/ykKCQkJCQkJCS9GZWF0dXJlcwoJCQkJCQkJPDwKCQkJCQkJCQkvSnVzdGlmaWNhdGlvbiAyCgkJCQkJCQkJL0ZpcnN0TGluZUluZGVudCAwLjAKCQkJCQkJCQkvU3RhcnRJbmRlbnQgMC4wCgkJCQkJCQkJL0VuZEluZGVudCAwLjAKCQkJCQkJCQkvU3BhY2VCZWZvcmUgMC4wCgkJCQkJCQkJL1NwYWNlQWZ0ZXIgMC4wCgkJCQkJCQkJL0Ryb3BDYXBzIDEKCQkJCQkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkJCQkJL0xlYWRpbmdUeXBlIDAKCQkJCQkJCQkvQXV0b0h5cGhlbmF0ZSB0cnVlCgkJCQkJCQkJL0h5cGhlbmF0ZWRXb3JkU2l6ZSA4CgkJCQkJCQkJL1ByZUh5cGhlbiAzCgkJCQkJCQkJL1Bvc3RIeXBoZW4gMwoJCQkJCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgMgoJCQkJCQkJCS9ab25lIDM2LjAKCQkJCQkJCQkvSHlwaGVuYXRlQ2FwaXRhbGl6ZWQgdHJ1ZQoJCQkJCQkJCS9IeXBoZW5hdGlvblByZWZlcmVuY2UgMC41CgkJCQkJCQkJL1dvcmRTcGFjaW5nIFsgMC44IDEuMCAxLjMzIF0KCQkJCQkJCQkvTGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJCQkJCS9TaW5nbGVXb3JkSnVzdGlmaWNhdGlvbiA2CgkJCQkJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCQkJCQkvQXV0b1RDWSAxCgkJCQkJCQkJL0tlZXBUb2dldGhlciB0cnVlCgkJCQkJCQkJL0J1cmFzYWdhcmlUeXBlIDAKCQkJCQkJCQkvS2luc29rdU9yZGVyIDAKCQkJCQkJCQkvS3VyaWthZXNoaU1vamlTaG9yaSBmYWxzZQoJCQkJCQkJCS9LaW5zb2t1IC9uaWwKCQkJCQkJCQkvTW9qaUt1bWlUYWJsZSAvbmlsCgkJCQkJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCQkJCQkJL1RhYlN0b3BzCgkJCQkJCQkJPDwKCQkJCQkJCQk+PgoJCQkJCQkJCS9EZWZhdWx0VGFiV2lkdGggMzYuMAoJCQkJCQkJCS9EZWZhdWx0U3R5bGUKCQkJCQkJCQk8PAoJCQkJCQkJCQkvRmlsbENvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9TdHJva2VDb2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkJCT4+CgkJCQkJCQk+PgoJCQkJCQkJL1BhcmVudCAwCgkJCQkJCT4+CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdHlsZVJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCQkvU3R5bGVTaGVldAoJCQkJCQk8PAoJCQkJCQkJL05hbWUgKP7/KQoJCQkJCQkJL1BhcmVudCAwCgkJCQkJCQkvRmVhdHVyZXMKCQkJCQkJCTw8CgkJCQkJCQkJL0ZvbnQgMAoJCQkJCQkJCS9Gb250U2l6ZSAyMC43NzMzMQoJCQkJCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkJCQkJL0F1dG9MZWFkaW5nIGZhbHNlCgkJCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJCQkvSG9yaXpvbnRhbFNjYWxlIDEuMAoJCQkJCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJCQkJCS9UcmFja2luZyAyMAoJCQkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCQkJL0NoYXJhY3RlclJvdGF0aW9uIDAuMAoJCQkJCQkJCS9BdXRvS2VybiAxCgkJCQkJCQkJL0ZvbnRDYXBzIDAKCQkJCQkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCQkJCQkvRm9udE9UUG9zaXRpb24gMAoJCQkJCQkJCS9TdHJpa2V0aHJvdWdoUG9zaXRpb24gMAoJCQkJCQkJCS9VbmRlcmxpbmVQb3NpdGlvbiAwCgkJCQkJCQkJL1VuZGVybGluZU9mZnNldCAwLjAKCQkJCQkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCQkJCQkvRGlzY3JldGlvbmFyeUxpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9Db250ZXh0dWFsTGlnYXR1cmVzIGZhbHNlCgkJCQkJCQkJL0FsdGVybmF0ZUxpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9PbGRTdHlsZSBmYWxzZQoJCQkJCQkJCS9GcmFjdGlvbnMgZmFsc2UKCQkJCQkJCQkvT3JkaW5hbHMgZmFsc2UKCQkJCQkJCQkvU3dhc2ggZmFsc2UKCQkJCQkJCQkvVGl0bGluZyBmYWxzZQoJCQkJCQkJCS9Db25uZWN0aW9uRm9ybXMgZmFsc2UKCQkJCQkJCQkvU3R5bGlzdGljQWx0ZXJuYXRlcyBmYWxzZQoJCQkJCQkJCS9Pcm5hbWVudHMgZmFsc2UKCQkJCQkJCQkvRmlndXJlU3R5bGUgMAoJCQkJCQkJCS9Qcm9wb3J0aW9uYWxNZXRyaWNzIGZhbHNlCgkJCQkJCQkJL0thbmEgZmFsc2UKCQkJCQkJCQkvSXRhbGljcyBmYWxzZQoJCQkJCQkJCS9SdWJ5IGZhbHNlCgkJCQkJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDEKCQkJCQkJCQkvVHN1bWUgMC4wCgkJCQkJCQkJL1N0eWxlUnVuQWxpZ25tZW50IDIKCQkJCQkJCQkvTGFuZ3VhZ2UgMAoJCQkJCQkJCS9KYXBhbmVzZUFsdGVybmF0ZUZlYXR1cmUgMAoJCQkJCQkJCS9FbmFibGVXYXJpQ2h1IGZhbHNlCgkJCQkJCQkJL1dhcmlDaHVMaW5lQ291bnQgMgoJCQkJCQkJCS9XYXJpQ2h1TGluZUdhcCAwCgkJCQkJCQkJL1dhcmlDaHVTdWJMaW5lQW1vdW50CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1dhcmlDaHVTdWJMaW5lU2NhbGUgMC41CgkJCQkJCQkJPj4KCQkJCQkJCQkvV2FyaUNodVdpZG93QW1vdW50IDIKCQkJCQkJCQkvV2FyaUNodU9ycGhhbkFtb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVKdXN0aWZpY2F0aW9uIDcKCQkJCQkJCQkvVENZVXBEb3duQWRqdXN0bWVudCAwCgkJCQkJCQkJL1RDWUxlZnRSaWdodEFkanVzdG1lbnQgMAoJCQkJCQkJCS9MZWZ0QWtpIC0xLjAKCQkJCQkJCQkvUmlnaHRBa2kgLTEuMAoJCQkJCQkJCS9KaURvcmkgMAoJCQkJCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJL0JsZW5kCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlQmxlbmRlcgoJCQkJCQkJCT4+CgkJCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkJCS9GaWxsRmlyc3QgZmFsc2UKCQkJCQkJCQkvRmlsbE92ZXJQcmludCBmYWxzZQoJCQkJCQkJCS9TdHJva2VPdmVyUHJpbnQgZmFsc2UKCQkJCQkJCQkvTGluZUNhcCAwCgkJCQkJCQkJL0xpbmVKb2luIDAKCQkJCQkJCQkvTGluZVdpZHRoIDAuMDQxNjcKCQkJCQkJCQkvTWl0ZXJMaW1pdCAwLjA0MTY3CgkJCQkJCQkJL0xpbmVEYXNoT2Zmc2V0IDAuMAoJCQkJCQkJCS9MaW5lRGFzaEFycmF5IFsgXQoJCQkJCQkJCS9UeXBlMUVuY29kaW5nTmFtZXMgWyBdCgkJCQkJCQk+PgoJCQkJCQk+PgoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvS2VyblJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvQWx0ZXJuYXRlR2x5cGhSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL1N0b3J5U2hlZXQKCQkJPDwKCQkJCS9BbnRpQWxpYXMgNAoJCQkJL1VzZUZyYWN0aW9uYWxHbHlwaFdpZHRocyB0cnVlCgkJCT4+CgkJPj4KCQkvVmlldwoJCTw8CgkJCS9GcmFtZXMgWwoJCQk8PAoJCQkJL1Jlc291cmNlIDIyCgkJCT4+CgkJCV0KCQkJL1JlbmRlcmVkRGF0YQoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCQkvTGluZUNvdW50IDEKCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL1N0cmlrZXMgWwoJCQk8PAoJCQkJL1N0cmVhbVRhZyAvUGF0aFNlbGVjdEdyb3VwQ2hhcmFjdGVyCgkJCQkvVHJhbnNmb3JtCgkJCQk8PAoJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCT4+CgkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCS9DaGlsZFByb2Nlc3Npb24gMAoJCQkJL0NoaWxkcmVuIFsKCQkJCTw8CgkJCQkJL1N0cmVhbVRhZyAvRnJhbWVTdHJpa2UKCQkJCQkvRnJhbWUgMjIKCQkJCQkvVHJhbnNmb3JtCgkJCQkJPDwKCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCT4+CgkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAyCgkJCQkJL0NoaWxkcmVuIFsKCQkJCQk8PAoJCQkJCQkvU3RyZWFtVGFnIC9Sb3dDb2xTdHJpa2UKCQkJCQkJL1Jvd0NvbEluZGV4IDAKCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQk8PAoJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQk+PgoJCQkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAxCgkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCTw8CgkJCQkJCQkvU3RyZWFtVGFnIC9Sb3dDb2xTdHJpa2UKCQkJCQkJCS9Sb3dDb2xJbmRleCAwCgkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQk8PAoJCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJCT4+CgkJCQkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMgoJCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJCTw8CgkJCQkJCQkJL1N0cmVhbVRhZyAvTGluZVN0cmlrZQoJCQkJCQkJCS9CYXNlbGluZSAwLjAKCQkJCQkJCQkvTGVhZGluZyAzOS44NjE5OAoJCQkJCQkJCS9FTUhlaWdodCAyMC43NzMzMQoJCQkJCQkJCS9ESGVpZ2h0IDE0LjgzMTkyCgkJCQkJCQkJL1NlbGVjdGlvbkFzY2VudCAtMTcuODAyNjEKCQkJCQkJCQkvU2VsZWN0aW9uRGVzY2VudCAxMy4zOTQzMwoJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQk8PAoJCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCQkJPj4KCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSAwLjAgNC41MDc3MSBdCgkJCQkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAxCgkJCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TZWdtZW50CgkJCQkJCQkJCS9NYXBwaW5nCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQ2hhcmFjdGVyQ291bnQgNAoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvRmlyc3RDaGFyYWN0ZXJJbmRleEluU2VnbWVudCAwCgkJCQkJCQkJCS9VbmRlcmxpbmVJbnZhbGlkYXRpb24gWyAtMTguMzAxMTIgOC44ODY2MiAxOC43MTY1OCA4Ljg4NjYyIF0KCQkJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL09yaWdpbiBbIC0xOC4zMDExMiAwLjAgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSAzMDAxOC4zMDA3OCA0LjUwNzcxIF0KCQkJCQkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAxCgkJCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvU3RyZWFtVGFnIC9HbHlwaFN0cmlrZQoJCQkJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDguODg2NjIgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCS9Cb3VuZHMgWyAwLjAgLTE3LjgwMjYxIDM3LjAxNzcgNC41MDc3MSBdCgkJCQkJCQkJCQkvR2x5cGhzIFsgNDggNTggNTQgMyBdCgkJCQkJCQkJCQkvR2x5cGhBZGp1c3RtZW50cwoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvRGF0YSBbCgkJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkJL0JhY2tGaXhlZCAwLjQxNTQ3CgkJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCQldCgkJCQkJCQkJCQkJL1J1bkxlbmd0aHMgWyA0IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkvUmVuZGVyZWRCb3VuZHMgWyAtMTguMzAxMTIgLTguOTE1OTkgMTguNzE2NTggMTMuMzk0MzMgXQoJCQkJCQkJCQkJL1Zpc3VhbEJvdW5kcyBbIC0xOC4zMDExMiAtOC45MTU5OSAxOC43MTY1OCAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvSW52YWxpZGF0aW9uIFsgLTE4LjMwMTEyIC04LjkxNTk5IDI5LjgzMDA1IDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9TaGFkb3dTdHlsZXNSdW4KCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL0RhdGEgWwoJCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJCS9JbmRleCAwCgkJCQkJCQkJCQkJCS9Gb250IDAKCQkJCQkJCQkJCQkJL09yaWVudGF0aW9uIDAKCQkJCQkJCQkJCQkJL0Jhc2VsaW5lU2hpZnQgLTguODg2NjIKCQkJCQkJCQkJCQkJL0tlcm5UeXBlIDEKCQkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJCV0KCQkJCQkJCQkJCQkvUnVuTGVuZ3RocyBbIDQgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJXQoJCQkJCQkJCQkvQW5ub3RhdGlvbgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1dpZHRoIDAuMAoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCV0KCQkJCQkJPj4KCQkJCQkJXQoJCQkJCT4+CgkJCQkJXQoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJXQoJCT4+CgkJL09wdGljYWxBbGlnbm1lbnQgZmFsc2UKCT4+Cgk8PAoJCS9Nb2RlbAoJCTw8CgkJCS9UZXh0ICj+/wBQAFMARAANKQoJCQkvUGFyYWdyYXBoUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJCS9QYXJhZ3JhcGhTaGVldAoJCQkJCQk8PAoJCQkJCQkJL05hbWUgKP7/KQoJCQkJCQkJL0ZlYXR1cmVzCgkJCQkJCQk8PAoJCQkJCQkJCS9KdXN0aWZpY2F0aW9uIDIKCQkJCQkJCQkvRmlyc3RMaW5lSW5kZW50IDAuMAoJCQkJCQkJCS9TdGFydEluZGVudCAwLjAKCQkJCQkJCQkvRW5kSW5kZW50IDAuMAoJCQkJCQkJCS9TcGFjZUJlZm9yZSAwLjAKCQkJCQkJCQkvU3BhY2VBZnRlciAwLjAKCQkJCQkJCQkvRHJvcENhcHMgMQoJCQkJCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCQkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCQkJCQkvSHlwaGVuYXRlZFdvcmRTaXplIDgKCQkJCQkJCQkvUHJlSHlwaGVuIDMKCQkJCQkJCQkvUG9zdEh5cGhlbiAzCgkJCQkJCQkJL0NvbnNlY3V0aXZlSHlwaGVucyAyCgkJCQkJCQkJL1pvbmUgMzYuMAoJCQkJCQkJCS9IeXBoZW5hdGVDYXBpdGFsaXplZCB0cnVlCgkJCQkJCQkJL0h5cGhlbmF0aW9uUHJlZmVyZW5jZSAwLjUKCQkJCQkJCQkvV29yZFNwYWNpbmcgWyAwLjggMS4wIDEuMzMgXQoJCQkJCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkJCQkJL1NpbmdsZVdvcmRKdXN0aWZpY2F0aW9uIDYKCQkJCQkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJCQkJCS9BdXRvVENZIDEKCQkJCQkJCQkvS2VlcFRvZ2V0aGVyIHRydWUKCQkJCQkJCQkvQnVyYXNhZ2FyaVR5cGUgMAoJCQkJCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJCQkJCS9LdXJpa2Flc2hpTW9qaVNob3JpIGZhbHNlCgkJCQkJCQkJL0tpbnNva3UgL25pbAoJCQkJCQkJCS9Nb2ppS3VtaVRhYmxlIC9uaWwKCQkJCQkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJCQkJCQkvVGFiU3RvcHMKCQkJCQkJCQk8PAoJCQkJCQkJCT4+CgkJCQkJCQkJL0RlZmF1bHRUYWJXaWR0aCAzNi4wCgkJCQkJCQkJL0RlZmF1bHRTdHlsZQoJCQkJCQkJCTw8CgkJCQkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkJCQkJPj4KCQkJCQkJCT4+CgkJCQkJCQkvUGFyZW50IDAKCQkJCQkJPj4KCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL1N0eWxlUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJCS9TdHlsZVNoZWV0CgkJCQkJCTw8CgkJCQkJCQkvTmFtZSAo/v8pCgkJCQkJCQkvUGFyZW50IDAKCQkJCQkJCS9GZWF0dXJlcwoJCQkJCQkJPDwKCQkJCQkJCQkvRm9udCAwCgkJCQkJCQkJL0ZvbnRTaXplIDIwLjc3MzMxCgkJCQkJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCQkJCQkvQXV0b0xlYWRpbmcgZmFsc2UKCQkJCQkJCQkvTGVhZGluZyAzOS44NjE5OAoJCQkJCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkJCQkJL1RyYWNraW5nIDIwCgkJCQkJCQkJL0Jhc2VsaW5lU2hpZnQgLTguODg2NjIKCQkJCQkJCQkvQ2hhcmFjdGVyUm90YXRpb24gMC4wCgkJCQkJCQkJL0F1dG9LZXJuIDEKCQkJCQkJCQkvRm9udENhcHMgMAoJCQkJCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJCQkJCS9Gb250T1RQb3NpdGlvbiAwCgkJCQkJCQkJL1N0cmlrZXRocm91Z2hQb3NpdGlvbiAwCgkJCQkJCQkJL1VuZGVybGluZVBvc2l0aW9uIDAKCQkJCQkJCQkvVW5kZXJsaW5lT2Zmc2V0IDAuMAoJCQkJCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJCQkJCS9EaXNjcmV0aW9uYXJ5TGlnYXR1cmVzIGZhbHNlCgkJCQkJCQkJL0NvbnRleHR1YWxMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvQWx0ZXJuYXRlTGlnYXR1cmVzIGZhbHNlCgkJCQkJCQkJL09sZFN0eWxlIGZhbHNlCgkJCQkJCQkJL0ZyYWN0aW9ucyBmYWxzZQoJCQkJCQkJCS9PcmRpbmFscyBmYWxzZQoJCQkJCQkJCS9Td2FzaCBmYWxzZQoJCQkJCQkJCS9UaXRsaW5nIGZhbHNlCgkJCQkJCQkJL0Nvbm5lY3Rpb25Gb3JtcyBmYWxzZQoJCQkJCQkJCS9TdHlsaXN0aWNBbHRlcm5hdGVzIGZhbHNlCgkJCQkJCQkJL09ybmFtZW50cyBmYWxzZQoJCQkJCQkJCS9GaWd1cmVTdHlsZSAwCgkJCQkJCQkJL1Byb3BvcnRpb25hbE1ldHJpY3MgZmFsc2UKCQkJCQkJCQkvS2FuYSBmYWxzZQoJCQkJCQkJCS9JdGFsaWNzIGZhbHNlCgkJCQkJCQkJL1J1YnkgZmFsc2UKCQkJCQkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMQoJCQkJCQkJCS9Uc3VtZSAwLjAKCQkJCQkJCQkvU3R5bGVSdW5BbGlnbm1lbnQgMgoJCQkJCQkJCS9MYW5ndWFnZSAwCgkJCQkJCQkJL0phcGFuZXNlQWx0ZXJuYXRlRmVhdHVyZSAwCgkJCQkJCQkJL0VuYWJsZVdhcmlDaHUgZmFsc2UKCQkJCQkJCQkvV2FyaUNodUxpbmVDb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVMaW5lR2FwIDAKCQkJCQkJCQkvV2FyaUNodVN1YkxpbmVBbW91bnQKCQkJCQkJCQk8PAoJCQkJCQkJCQkvV2FyaUNodVN1YkxpbmVTY2FsZSAwLjUKCQkJCQkJCQk+PgoJCQkJCQkJCS9XYXJpQ2h1V2lkb3dBbW91bnQgMgoJCQkJCQkJCS9XYXJpQ2h1T3JwaGFuQW1vdW50IDIKCQkJCQkJCQkvV2FyaUNodUp1c3RpZmljYXRpb24gNwoJCQkJCQkJCS9UQ1lVcERvd25BZGp1c3RtZW50IDAKCQkJCQkJCQkvVENZTGVmdFJpZ2h0QWRqdXN0bWVudCAwCgkJCQkJCQkJL0xlZnRBa2kgLTEuMAoJCQkJCQkJCS9SaWdodEFraSAtMS4wCgkJCQkJCQkJL0ppRG9yaSAwCgkJCQkJCQkJL05vQnJlYWsgZmFsc2UKCQkJCQkJCQkvRmlsbENvbG9yCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCS9TdHJva2VDb2xvcgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQkvQmxlbmQKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVCbGVuZGVyCgkJCQkJCQkJPj4KCQkJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkJCQkJL0ZpbGxGaXJzdCBmYWxzZQoJCQkJCQkJCS9GaWxsT3ZlclByaW50IGZhbHNlCgkJCQkJCQkJL1N0cm9rZU92ZXJQcmludCBmYWxzZQoJCQkJCQkJCS9MaW5lQ2FwIDAKCQkJCQkJCQkvTGluZUpvaW4gMAoJCQkJCQkJCS9MaW5lV2lkdGggMC4wNDE2NwoJCQkJCQkJCS9NaXRlckxpbWl0IDAuMDQxNjcKCQkJCQkJCQkvTGluZURhc2hPZmZzZXQgMC4wCgkJCQkJCQkJL0xpbmVEYXNoQXJyYXkgWyBdCgkJCQkJCQkJL1R5cGUxRW5jb2RpbmdOYW1lcyBbIF0KCQkJCQkJCT4+CgkJCQkJCT4+CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9LZXJuUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9BbHRlcm5hdGVHbHlwaFJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3RvcnlTaGVldAoJCQk8PAoJCQkJL0FudGlBbGlhcyA0CgkJCQkvVXNlRnJhY3Rpb25hbEdseXBoV2lkdGhzIHRydWUKCQkJPj4KCQk+PgoJCS9WaWV3CgkJPDwKCQkJL0ZyYW1lcyBbCgkJCTw8CgkJCQkvUmVzb3VyY2UgMjMKCQkJPj4KCQkJXQoJCQkvUmVuZGVyZWREYXRhCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJCS9MaW5lQ291bnQgMQoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3RyaWtlcyBbCgkJCTw8CgkJCQkvU3RyZWFtVGFnIC9QYXRoU2VsZWN0R3JvdXBDaGFyYWN0ZXIKCQkJCS9UcmFuc2Zvcm0KCQkJCTw8CgkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJL0NoaWxkUHJvY2Vzc2lvbiAwCgkJCQkvQ2hpbGRyZW4gWwoJCQkJPDwKCQkJCQkvU3RyZWFtVGFnIC9GcmFtZVN0cmlrZQoJCQkJCS9GcmFtZSAyMwoJCQkJCS9UcmFuc2Zvcm0KCQkJCQk8PAoJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJPj4KCQkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDIKCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCTw8CgkJCQkJCS9TdHJlYW1UYWcgL1Jvd0NvbFN0cmlrZQoJCQkJCQkvUm93Q29sSW5kZXggMAoJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCTw8CgkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCT4+CgkJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDEKCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJPDwKCQkJCQkJCS9TdHJlYW1UYWcgL1Jvd0NvbFN0cmlrZQoJCQkJCQkJL1Jvd0NvbEluZGV4IDAKCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCTw8CgkJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQkJPj4KCQkJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAyCgkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJPDwKCQkJCQkJCQkvU3RyZWFtVGFnIC9MaW5lU3RyaWtlCgkJCQkJCQkJL0Jhc2VsaW5lIDAuMAoJCQkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCQkJL0VNSGVpZ2h0IDIwLjc3MzMxCgkJCQkJCQkJL0RIZWlnaHQgMTQuODMxOTIKCQkJCQkJCQkvU2VsZWN0aW9uQXNjZW50IC0xNy44MDI2MQoJCQkJCQkJCS9TZWxlY3Rpb25EZXNjZW50IDEzLjM5NDMzCgkJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJCTw8CgkJCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJCQk+PgoJCQkJCQkJCS9Cb3VuZHMgWyAwLjAgLTE3LjgwMjYxIDAuMCA0LjUwNzcxIF0KCQkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDEKCQkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NlZ21lbnQKCQkJCQkJCQkJL01hcHBpbmcKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9DaGFyYWN0ZXJDb3VudCA0CgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9GaXJzdENoYXJhY3RlckluZGV4SW5TZWdtZW50IDAKCQkJCQkJCQkJL1VuZGVybGluZUludmFsaWRhdGlvbiBbIC0yMS43ODA1NiA4Ljg4NjYyIDIyLjE5NjAyIDguODg2NjIgXQoJCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvT3JpZ2luIFsgLTIxLjc4MDU2IDAuMCBdCgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9Cb3VuZHMgWyAwLjAgLTE3LjgwMjYxIDMwMDIxLjc4MTI1IDQuNTA3NzEgXQoJCQkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDEKCQkJCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL0dseXBoU3RyaWtlCgkJCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9PcmlnaW4gWyAwLjAgOC44ODY2MiBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgNDMuOTc2NTggNC41MDc3MSBdCgkJCQkJCQkJCQkvR2x5cGhzIFsgNTUgNTggNDMgMyBdCgkJCQkJCQkJCQkvR2x5cGhBZGp1c3RtZW50cwoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvRGF0YSBbCgkJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkJL0JhY2tGaXhlZCAwLjQxNTQ3CgkJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCQldCgkJCQkJCQkJCQkJL1J1bkxlbmd0aHMgWyA0IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkvUmVuZGVyZWRCb3VuZHMgWyAtMjEuNzgwNTYgLTguOTE1OTkgMjIuMTk2MDIgMTMuMzk0MzMgXQoJCQkJCQkJCQkJL1Zpc3VhbEJvdW5kcyBbIC0yMS43ODA1NiAtOC45MTU5OSAyMi4xOTYwMiAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvSW52YWxpZGF0aW9uIFsgLTIxLjc4MDU2IC04LjkxNTk5IDMzLjMwOTQ5IDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9TaGFkb3dTdHlsZXNSdW4KCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL0RhdGEgWwoJCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJCS9JbmRleCAwCgkJCQkJCQkJCQkJCS9Gb250IDAKCQkJCQkJCQkJCQkJL09yaWVudGF0aW9uIDAKCQkJCQkJCQkJCQkJL0Jhc2VsaW5lU2hpZnQgLTguODg2NjIKCQkJCQkJCQkJCQkJL0tlcm5UeXBlIDEKCQkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJCV0KCQkJCQkJCQkJCQkvUnVuTGVuZ3RocyBbIDQgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJXQoJCQkJCQkJCQkvQW5ub3RhdGlvbgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1dpZHRoIDAuMAoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCV0KCQkJCQkJPj4KCQkJCQkJXQoJCQkJCT4+CgkJCQkJXQoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJXQoJCT4+CgkJL09wdGljYWxBbGlnbm1lbnQgZmFsc2UKCT4+Cgk8PAoJCS9Nb2RlbAoJCTw8CgkJCS9UZXh0ICj+/wBpAEMAYQBsAA0pCgkJCS9QYXJhZ3JhcGhSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1BhcmFncmFwaFNoZWV0CgkJCQkJCTw8CgkJCQkJCQkvTmFtZSAo/v8pCgkJCQkJCQkvRmVhdHVyZXMKCQkJCQkJCTw8CgkJCQkJCQkJL0p1c3RpZmljYXRpb24gMgoJCQkJCQkJCS9GaXJzdExpbmVJbmRlbnQgMC4wCgkJCQkJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJCQkJCS9Ecm9wQ2FwcyAxCgkJCQkJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgOAoJCQkJCQkJCS9QcmVIeXBoZW4gMwoJCQkJCQkJCS9Qb3N0SHlwaGVuIDMKCQkJCQkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDIKCQkJCQkJCQkvWm9uZSAzNi4wCgkJCQkJCQkJL0h5cGhlbmF0ZUNhcGl0YWxpemVkIHRydWUKCQkJCQkJCQkvSHlwaGVuYXRpb25QcmVmZXJlbmNlIDAuNQoJCQkJCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCQkJCQkvU2luZ2xlV29yZEp1c3RpZmljYXRpb24gNgoJCQkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCQkJL0F1dG9UQ1kgMQoJCQkJCQkJCS9LZWVwVG9nZXRoZXIgdHJ1ZQoJCQkJCQkJCS9CdXJhc2FnYXJpVHlwZSAwCgkJCQkJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkJCQkJL0t1cmlrYWVzaGlNb2ppU2hvcmkgZmFsc2UKCQkJCQkJCQkvS2luc29rdSAvbmlsCgkJCQkJCQkJL01vamlLdW1pVGFibGUgL25pbAoJCQkJCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQkJCQkJCS9UYWJTdG9wcwoJCQkJCQkJCTw8CgkJCQkJCQkJPj4KCQkJCQkJCQkvRGVmYXVsdFRhYldpZHRoIDM2LjAKCQkJCQkJCQkvRGVmYXVsdFN0eWxlCgkJCQkJCQkJPDwKCQkJCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQk+PgoJCQkJCQkJPj4KCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQk+PgoJCQkJCT4+CgkJCQkJL0xlbmd0aCA1CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3R5bGVSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1N0eWxlU2hlZXQKCQkJCQkJPDwKCQkJCQkJCS9OYW1lICj+/ykKCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQkJL0ZlYXR1cmVzCgkJCQkJCQk8PAoJCQkJCQkJCS9Gb250IDAKCQkJCQkJCQkvRm9udFNpemUgMjAuNzczMzEKCQkJCQkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkJCS9BdXRvTGVhZGluZyBmYWxzZQoJCQkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCQkJCQkvVHJhY2tpbmcgMjAKCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCS9DaGFyYWN0ZXJSb3RhdGlvbiAwLjAKCQkJCQkJCQkvQXV0b0tlcm4gMQoJCQkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkJCQkJL0ZvbnRPVFBvc2l0aW9uIDAKCQkJCQkJCQkvU3RyaWtldGhyb3VnaFBvc2l0aW9uIDAKCQkJCQkJCQkvVW5kZXJsaW5lUG9zaXRpb24gMAoJCQkJCQkJCS9VbmRlcmxpbmVPZmZzZXQgMC4wCgkJCQkJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkJCQkJL0Rpc2NyZXRpb25hcnlMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvQ29udGV4dHVhbExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9BbHRlcm5hdGVMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvT2xkU3R5bGUgZmFsc2UKCQkJCQkJCQkvRnJhY3Rpb25zIGZhbHNlCgkJCQkJCQkJL09yZGluYWxzIGZhbHNlCgkJCQkJCQkJL1N3YXNoIGZhbHNlCgkJCQkJCQkJL1RpdGxpbmcgZmFsc2UKCQkJCQkJCQkvQ29ubmVjdGlvbkZvcm1zIGZhbHNlCgkJCQkJCQkJL1N0eWxpc3RpY0FsdGVybmF0ZXMgZmFsc2UKCQkJCQkJCQkvT3JuYW1lbnRzIGZhbHNlCgkJCQkJCQkJL0ZpZ3VyZVN0eWxlIDAKCQkJCQkJCQkvUHJvcG9ydGlvbmFsTWV0cmljcyBmYWxzZQoJCQkJCQkJCS9LYW5hIGZhbHNlCgkJCQkJCQkJL0l0YWxpY3MgZmFsc2UKCQkJCQkJCQkvUnVieSBmYWxzZQoJCQkJCQkJCS9CYXNlbGluZURpcmVjdGlvbiAxCgkJCQkJCQkJL1RzdW1lIDAuMAoJCQkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCQkJL0xhbmd1YWdlIDAKCQkJCQkJCQkvSmFwYW5lc2VBbHRlcm5hdGVGZWF0dXJlIDAKCQkJCQkJCQkvRW5hYmxlV2FyaUNodSBmYWxzZQoJCQkJCQkJCS9XYXJpQ2h1TGluZUNvdW50IDIKCQkJCQkJCQkvV2FyaUNodUxpbmVHYXAgMAoJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZUFtb3VudAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZVNjYWxlIDAuNQoJCQkJCQkJCT4+CgkJCQkJCQkJL1dhcmlDaHVXaWRvd0Ftb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVPcnBoYW5BbW91bnQgMgoJCQkJCQkJCS9XYXJpQ2h1SnVzdGlmaWNhdGlvbiA3CgkJCQkJCQkJL1RDWVVwRG93bkFkanVzdG1lbnQgMAoJCQkJCQkJCS9UQ1lMZWZ0UmlnaHRBZGp1c3RtZW50IDAKCQkJCQkJCQkvTGVmdEFraSAtMS4wCgkJCQkJCQkJL1JpZ2h0QWtpIC0xLjAKCQkJCQkJCQkvSmlEb3JpIDAKCQkJCQkJCQkvTm9CcmVhayBmYWxzZQoJCQkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCS9CbGVuZAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZUJsZW5kZXIKCQkJCQkJCQk+PgoJCQkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCQkJL0ZpbGxPdmVyUHJpbnQgZmFsc2UKCQkJCQkJCQkvU3Ryb2tlT3ZlclByaW50IGZhbHNlCgkJCQkJCQkJL0xpbmVDYXAgMAoJCQkJCQkJCS9MaW5lSm9pbiAwCgkJCQkJCQkJL0xpbmVXaWR0aCAwLjA0MTY3CgkJCQkJCQkJL01pdGVyTGltaXQgMC4wNDE2NwoJCQkJCQkJCS9MaW5lRGFzaE9mZnNldCAwLjAKCQkJCQkJCQkvTGluZURhc2hBcnJheSBbIF0KCQkJCQkJCQkvVHlwZTFFbmNvZGluZ05hbWVzIFsgXQoJCQkJCQkJPj4KCQkJCQkJPj4KCQkJCQk+PgoJCQkJCS9MZW5ndGggNQoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0tlcm5SdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJCS9MZW5ndGggNQoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0FsdGVybmF0ZUdseXBoUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDUKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdG9yeVNoZWV0CgkJCTw8CgkJCQkvQW50aUFsaWFzIDQKCQkJCS9Vc2VGcmFjdGlvbmFsR2x5cGhXaWR0aHMgdHJ1ZQoJCQk+PgoJCT4+CgkJL1ZpZXcKCQk8PAoJCQkvRnJhbWVzIFsKCQkJPDwKCQkJCS9SZXNvdXJjZSAyNAoJCQk+PgoJCQldCgkJCS9SZW5kZXJlZERhdGEKCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL0xpbmVDb3VudCAxCgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDUKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdHJpa2VzIFsKCQkJPDwKCQkJCS9TdHJlYW1UYWcgL1BhdGhTZWxlY3RHcm91cENoYXJhY3RlcgoJCQkJL1RyYW5zZm9ybQoJCQkJPDwKCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkvQ2hpbGRQcm9jZXNzaW9uIDAKCQkJCS9DaGlsZHJlbiBbCgkJCQk8PAoJCQkJCS9TdHJlYW1UYWcgL0ZyYW1lU3RyaWtlCgkJCQkJL0ZyYW1lIDI0CgkJCQkJL1RyYW5zZm9ybQoJCQkJCTw8CgkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQk+PgoJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCS9DaGlsZFByb2Nlc3Npb24gMgoJCQkJCS9DaGlsZHJlbiBbCgkJCQkJPDwKCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCS9Sb3dDb2xJbmRleCAwCgkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJPDwKCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJPj4KCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQk8PAoJCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCQkvUm93Q29sSW5kZXggMAoJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJPDwKCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCQk+PgoJCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDIKCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQk8PAoJCQkJCQkJCS9TdHJlYW1UYWcgL0xpbmVTdHJpa2UKCQkJCQkJCQkvQmFzZWxpbmUgMC4wCgkJCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJCQkvRU1IZWlnaHQgMjAuNzczMzEKCQkJCQkJCQkvREhlaWdodCAxNC44MzE5MgoJCQkJCQkJCS9TZWxlY3Rpb25Bc2NlbnQgLTE3LjgwMjYxCgkJCQkJCQkJL1NlbGVjdGlvbkRlc2NlbnQgMTMuMzk0MzMKCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJPDwKCQkJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQkJCT4+CgkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMC4wIDQuNTA3NzEgXQoJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2VnbWVudAoJCQkJCQkJCQkvTWFwcGluZwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0NoYXJhY3RlckNvdW50IDUKCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpcnN0Q2hhcmFjdGVySW5kZXhJblNlZ21lbnQgMAoJCQkJCQkJCQkvVW5kZXJsaW5lSW52YWxpZGF0aW9uIFsgLTE5LjY0MDkxIDguODg2NjIgMjAuMDU2MzggOC44ODY2MiBdCgkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9PcmlnaW4gWyAtMTkuNjQwOTEgMC4wIF0KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMzAwMTkuNjQwNjMgNC41MDc3MSBdCgkJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvR2x5cGhTdHJpa2UKCQkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL09yaWdpbiBbIDAuMCA4Ljg4NjYyIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSAzOS42OTczIDQuNTA3NzEgXQoJCQkJCQkJCQkJL0dseXBocyBbIDgwIDQyIDcyIDgzIDMgXQoJCQkJCQkJCQkJL0dseXBoQWRqdXN0bWVudHMKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL0RhdGEgWwoJCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJCS9CYWNrRml4ZWQgMC40MTU0NwoJCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkJXQoJCQkJCQkJCQkJCS9SdW5MZW5ndGhzIFsgNSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJL1JlbmRlcmVkQm91bmRzIFsgLTE5LjY0MDkxIC04LjkxNTk5IDIwLjA1NjM4IDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9WaXN1YWxCb3VuZHMgWyAtMTkuNjQwOTEgLTguOTE1OTkgMjAuMDU2MzggMTMuMzk0MzMgXQoJCQkJCQkJCQkJL0ludmFsaWRhdGlvbiBbIC0xOS42NDA5MSAtOC45MTU5OSAzMS4xNjk4NSAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvU2hhZG93U3R5bGVzUnVuCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9EYXRhIFsKCQkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCQkvSW5kZXggMAoJCQkJCQkJCQkJCQkvRm9udCAwCgkJCQkJCQkJCQkJCS9PcmllbnRhdGlvbiAwCgkJCQkJCQkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCQkJCQkJCS9LZXJuVHlwZSAxCgkJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCQldCgkJCQkJCQkJCQkJL1J1bkxlbmd0aHMgWyA1IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJCV0KCQkJCQkJCQkJL0Fubm90YXRpb24KCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9XaWR0aCAwLjAKCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQldCgkJCQkJCT4+CgkJCQkJCV0KCQkJCQk+PgoJCQkJCV0KCQkJCT4+CgkJCQldCgkJCT4+CgkJCV0KCQk+PgoJCS9PcHRpY2FsQWxpZ25tZW50IGZhbHNlCgk+PgoJPDwKCQkvTW9kZWwKCQk8PAoJCQkvVGV4dCAo/v8AVgBDAEYADSkKCQkJL1BhcmFncmFwaFJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCQkvUGFyYWdyYXBoU2hlZXQKCQkJCQkJPDwKCQkJCQkJCS9OYW1lICj+/ykKCQkJCQkJCS9GZWF0dXJlcwoJCQkJCQkJPDwKCQkJCQkJCQkvSnVzdGlmaWNhdGlvbiAyCgkJCQkJCQkJL0ZpcnN0TGluZUluZGVudCAwLjAKCQkJCQkJCQkvU3RhcnRJbmRlbnQgMC4wCgkJCQkJCQkJL0VuZEluZGVudCAwLjAKCQkJCQkJCQkvU3BhY2VCZWZvcmUgMC4wCgkJCQkJCQkJL1NwYWNlQWZ0ZXIgMC4wCgkJCQkJCQkJL0Ryb3BDYXBzIDEKCQkJCQkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkJCQkJL0xlYWRpbmdUeXBlIDAKCQkJCQkJCQkvQXV0b0h5cGhlbmF0ZSB0cnVlCgkJCQkJCQkJL0h5cGhlbmF0ZWRXb3JkU2l6ZSA4CgkJCQkJCQkJL1ByZUh5cGhlbiAzCgkJCQkJCQkJL1Bvc3RIeXBoZW4gMwoJCQkJCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgMgoJCQkJCQkJCS9ab25lIDM2LjAKCQkJCQkJCQkvSHlwaGVuYXRlQ2FwaXRhbGl6ZWQgdHJ1ZQoJCQkJCQkJCS9IeXBoZW5hdGlvblByZWZlcmVuY2UgMC41CgkJCQkJCQkJL1dvcmRTcGFjaW5nIFsgMC44IDEuMCAxLjMzIF0KCQkJCQkJCQkvTGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJCQkJCS9TaW5nbGVXb3JkSnVzdGlmaWNhdGlvbiA2CgkJCQkJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCQkJCQkvQXV0b1RDWSAxCgkJCQkJCQkJL0tlZXBUb2dldGhlciB0cnVlCgkJCQkJCQkJL0J1cmFzYWdhcmlUeXBlIDAKCQkJCQkJCQkvS2luc29rdU9yZGVyIDAKCQkJCQkJCQkvS3VyaWthZXNoaU1vamlTaG9yaSBmYWxzZQoJCQkJCQkJCS9LaW5zb2t1IC9uaWwKCQkJCQkJCQkvTW9qaUt1bWlUYWJsZSAvbmlsCgkJCQkJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCQkJCQkJL1RhYlN0b3BzCgkJCQkJCQkJPDwKCQkJCQkJCQk+PgoJCQkJCQkJCS9EZWZhdWx0VGFiV2lkdGggMzYuMAoJCQkJCQkJCS9EZWZhdWx0U3R5bGUKCQkJCQkJCQk8PAoJCQkJCQkJCQkvRmlsbENvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9TdHJva2VDb2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkJCT4+CgkJCQkJCQk+PgoJCQkJCQkJL1BhcmVudCAwCgkJCQkJCT4+CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdHlsZVJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCQkvU3R5bGVTaGVldAoJCQkJCQk8PAoJCQkJCQkJL05hbWUgKP7/KQoJCQkJCQkJL1BhcmVudCAwCgkJCQkJCQkvRmVhdHVyZXMKCQkJCQkJCTw8CgkJCQkJCQkJL0ZvbnQgMAoJCQkJCQkJCS9Gb250U2l6ZSAyMC43NzMzMQoJCQkJCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkJCQkJL0F1dG9MZWFkaW5nIGZhbHNlCgkJCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJCQkvSG9yaXpvbnRhbFNjYWxlIDEuMAoJCQkJCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJCQkJCS9UcmFja2luZyAyMAoJCQkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCQkJL0NoYXJhY3RlclJvdGF0aW9uIDAuMAoJCQkJCQkJCS9BdXRvS2VybiAxCgkJCQkJCQkJL0ZvbnRDYXBzIDAKCQkJCQkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCQkJCQkvRm9udE9UUG9zaXRpb24gMAoJCQkJCQkJCS9TdHJpa2V0aHJvdWdoUG9zaXRpb24gMAoJCQkJCQkJCS9VbmRlcmxpbmVQb3NpdGlvbiAwCgkJCQkJCQkJL1VuZGVybGluZU9mZnNldCAwLjAKCQkJCQkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCQkJCQkvRGlzY3JldGlvbmFyeUxpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9Db250ZXh0dWFsTGlnYXR1cmVzIGZhbHNlCgkJCQkJCQkJL0FsdGVybmF0ZUxpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9PbGRTdHlsZSBmYWxzZQoJCQkJCQkJCS9GcmFjdGlvbnMgZmFsc2UKCQkJCQkJCQkvT3JkaW5hbHMgZmFsc2UKCQkJCQkJCQkvU3dhc2ggZmFsc2UKCQkJCQkJCQkvVGl0bGluZyBmYWxzZQoJCQkJCQkJCS9Db25uZWN0aW9uRm9ybXMgZmFsc2UKCQkJCQkJCQkvU3R5bGlzdGljQWx0ZXJuYXRlcyBmYWxzZQoJCQkJCQkJCS9Pcm5hbWVudHMgZmFsc2UKCQkJCQkJCQkvRmlndXJlU3R5bGUgMAoJCQkJCQkJCS9Qcm9wb3J0aW9uYWxNZXRyaWNzIGZhbHNlCgkJCQkJCQkJL0thbmEgZmFsc2UKCQkJCQkJCQkvSXRhbGljcyBmYWxzZQoJCQkJCQkJCS9SdWJ5IGZhbHNlCgkJCQkJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDEKCQkJCQkJCQkvVHN1bWUgMC4wCgkJCQkJCQkJL1N0eWxlUnVuQWxpZ25tZW50IDIKCQkJCQkJCQkvTGFuZ3VhZ2UgMAoJCQkJCQkJCS9KYXBhbmVzZUFsdGVybmF0ZUZlYXR1cmUgMAoJCQkJCQkJCS9FbmFibGVXYXJpQ2h1IGZhbHNlCgkJCQkJCQkJL1dhcmlDaHVMaW5lQ291bnQgMgoJCQkJCQkJCS9XYXJpQ2h1TGluZUdhcCAwCgkJCQkJCQkJL1dhcmlDaHVTdWJMaW5lQW1vdW50CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1dhcmlDaHVTdWJMaW5lU2NhbGUgMC41CgkJCQkJCQkJPj4KCQkJCQkJCQkvV2FyaUNodVdpZG93QW1vdW50IDIKCQkJCQkJCQkvV2FyaUNodU9ycGhhbkFtb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVKdXN0aWZpY2F0aW9uIDcKCQkJCQkJCQkvVENZVXBEb3duQWRqdXN0bWVudCAwCgkJCQkJCQkJL1RDWUxlZnRSaWdodEFkanVzdG1lbnQgMAoJCQkJCQkJCS9MZWZ0QWtpIC0xLjAKCQkJCQkJCQkvUmlnaHRBa2kgLTEuMAoJCQkJCQkJCS9KaURvcmkgMAoJCQkJCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJL0JsZW5kCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlQmxlbmRlcgoJCQkJCQkJCT4+CgkJCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkJCS9GaWxsRmlyc3QgZmFsc2UKCQkJCQkJCQkvRmlsbE92ZXJQcmludCBmYWxzZQoJCQkJCQkJCS9TdHJva2VPdmVyUHJpbnQgZmFsc2UKCQkJCQkJCQkvTGluZUNhcCAwCgkJCQkJCQkJL0xpbmVKb2luIDAKCQkJCQkJCQkvTGluZVdpZHRoIDAuMDQxNjcKCQkJCQkJCQkvTWl0ZXJMaW1pdCAwLjA0MTY3CgkJCQkJCQkJL0xpbmVEYXNoT2Zmc2V0IDAuMAoJCQkJCQkJCS9MaW5lRGFzaEFycmF5IFsgXQoJCQkJCQkJCS9UeXBlMUVuY29kaW5nTmFtZXMgWyBdCgkJCQkJCQk+PgoJCQkJCQk+PgoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvS2VyblJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvQWx0ZXJuYXRlR2x5cGhSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL1N0b3J5U2hlZXQKCQkJPDwKCQkJCS9BbnRpQWxpYXMgNAoJCQkJL1VzZUZyYWN0aW9uYWxHbHlwaFdpZHRocyB0cnVlCgkJCT4+CgkJPj4KCQkvVmlldwoJCTw8CgkJCS9GcmFtZXMgWwoJCQk8PAoJCQkJL1Jlc291cmNlIDI1CgkJCT4+CgkJCV0KCQkJL1JlbmRlcmVkRGF0YQoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCQkvTGluZUNvdW50IDEKCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL1N0cmlrZXMgWwoJCQk8PAoJCQkJL1N0cmVhbVRhZyAvUGF0aFNlbGVjdEdyb3VwQ2hhcmFjdGVyCgkJCQkvVHJhbnNmb3JtCgkJCQk8PAoJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCT4+CgkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCS9DaGlsZFByb2Nlc3Npb24gMAoJCQkJL0NoaWxkcmVuIFsKCQkJCTw8CgkJCQkJL1N0cmVhbVRhZyAvRnJhbWVTdHJpa2UKCQkJCQkvRnJhbWUgMjUKCQkJCQkvVHJhbnNmb3JtCgkJCQkJPDwKCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCT4+CgkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAyCgkJCQkJL0NoaWxkcmVuIFsKCQkJCQk8PAoJCQkJCQkvU3RyZWFtVGFnIC9Sb3dDb2xTdHJpa2UKCQkJCQkJL1Jvd0NvbEluZGV4IDAKCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQk8PAoJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQk+PgoJCQkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAxCgkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCTw8CgkJCQkJCQkvU3RyZWFtVGFnIC9Sb3dDb2xTdHJpa2UKCQkJCQkJCS9Sb3dDb2xJbmRleCAwCgkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQk8PAoJCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJCT4+CgkJCQkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMgoJCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJCTw8CgkJCQkJCQkJL1N0cmVhbVRhZyAvTGluZVN0cmlrZQoJCQkJCQkJCS9CYXNlbGluZSAwLjAKCQkJCQkJCQkvTGVhZGluZyAzOS44NjE5OAoJCQkJCQkJCS9FTUhlaWdodCAyMC43NzMzMQoJCQkJCQkJCS9ESGVpZ2h0IDE0LjgzMTkyCgkJCQkJCQkJL1NlbGVjdGlvbkFzY2VudCAtMTcuODAyNjEKCQkJCQkJCQkvU2VsZWN0aW9uRGVzY2VudCAxMy4zOTQzMwoJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQk8PAoJCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCQkJPj4KCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSAwLjAgNC41MDc3MSBdCgkJCQkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAxCgkJCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TZWdtZW50CgkJCQkJCQkJCS9NYXBwaW5nCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQ2hhcmFjdGVyQ291bnQgNAoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvRmlyc3RDaGFyYWN0ZXJJbmRleEluU2VnbWVudCAwCgkJCQkJCQkJCS9VbmRlcmxpbmVJbnZhbGlkYXRpb24gWyAtMjAuODE0NTcgOC44ODY2MiAyMS4yMzAwMyA4Ljg4NjYyIF0KCQkJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL09yaWdpbiBbIC0yMC44MTQ1NyAwLjAgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSAzMDAyMC44MTQ0NSA0LjUwNzcxIF0KCQkJCQkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAxCgkJCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvU3RyZWFtVGFnIC9HbHlwaFN0cmlrZQoJCQkJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDguODg2NjIgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCS9Cb3VuZHMgWyAwLjAgLTE3LjgwMjYxIDQyLjA0NDYgNC41MDc3MSBdCgkJCQkJCQkJCQkvR2x5cGhzIFsgNjEgNDIgNDUgMyBdCgkJCQkJCQkJCQkvR2x5cGhBZGp1c3RtZW50cwoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvRGF0YSBbCgkJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkJL0JhY2tGaXhlZCAwLjQxNTQ3CgkJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCQldCgkJCQkJCQkJCQkJL1J1bkxlbmd0aHMgWyA0IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkvUmVuZGVyZWRCb3VuZHMgWyAtMjAuOTU5NzUgLTguOTE1OTkgMjEuMjMwMDMgMTMuMzk0MzMgXQoJCQkJCQkJCQkJL1Zpc3VhbEJvdW5kcyBbIC0yMC45NTk3NSAtOC45MTU5OSAyMS4yMzAwMyAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvSW52YWxpZGF0aW9uIFsgLTIwLjk1OTc1IC04LjkxNTk5IDMyLjM0MzUgMTMuMzk0MzMgXQoJCQkJCQkJCQkJL1NoYWRvd1N0eWxlc1J1bgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvRGF0YSBbCgkJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkJL0luZGV4IDAKCQkJCQkJCQkJCQkJL0ZvbnQgMAoJCQkJCQkJCQkJCQkvT3JpZW50YXRpb24gMAoJCQkJCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCQkJCQkvS2VyblR5cGUgMQoJCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkJXQoJCQkJCQkJCQkJCS9SdW5MZW5ndGhzIFsgNCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQldCgkJCQkJCQkJCS9Bbm5vdGF0aW9uCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvV2lkdGggMC4wCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJXQoJCQkJCQk+PgoJCQkJCQldCgkJCQkJPj4KCQkJCQldCgkJCQk+PgoJCQkJXQoJCQk+PgoJCQldCgkJPj4KCQkvT3B0aWNhbEFsaWdubWVudCBmYWxzZQoJPj4KCTw8CgkJL01vZGVsCgkJPDwKCQkJL1RleHQgKP7/AEoAUABHAA0pCgkJCS9QYXJhZ3JhcGhSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1BhcmFncmFwaFNoZWV0CgkJCQkJCTw8CgkJCQkJCQkvTmFtZSAo/v8pCgkJCQkJCQkvRmVhdHVyZXMKCQkJCQkJCTw8CgkJCQkJCQkJL0p1c3RpZmljYXRpb24gMgoJCQkJCQkJCS9GaXJzdExpbmVJbmRlbnQgMC4wCgkJCQkJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJCQkJCS9Ecm9wQ2FwcyAxCgkJCQkJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgOAoJCQkJCQkJCS9QcmVIeXBoZW4gMwoJCQkJCQkJCS9Qb3N0SHlwaGVuIDMKCQkJCQkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDIKCQkJCQkJCQkvWm9uZSAzNi4wCgkJCQkJCQkJL0h5cGhlbmF0ZUNhcGl0YWxpemVkIHRydWUKCQkJCQkJCQkvSHlwaGVuYXRpb25QcmVmZXJlbmNlIDAuNQoJCQkJCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCQkJCQkvU2luZ2xlV29yZEp1c3RpZmljYXRpb24gNgoJCQkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCQkJL0F1dG9UQ1kgMQoJCQkJCQkJCS9LZWVwVG9nZXRoZXIgdHJ1ZQoJCQkJCQkJCS9CdXJhc2FnYXJpVHlwZSAwCgkJCQkJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkJCQkJL0t1cmlrYWVzaGlNb2ppU2hvcmkgZmFsc2UKCQkJCQkJCQkvS2luc29rdSAvbmlsCgkJCQkJCQkJL01vamlLdW1pVGFibGUgL25pbAoJCQkJCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQkJCQkJCS9UYWJTdG9wcwoJCQkJCQkJCTw8CgkJCQkJCQkJPj4KCQkJCQkJCQkvRGVmYXVsdFRhYldpZHRoIDM2LjAKCQkJCQkJCQkvRGVmYXVsdFN0eWxlCgkJCQkJCQkJPDwKCQkJCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQk+PgoJCQkJCQkJPj4KCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQk+PgoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3R5bGVSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1N0eWxlU2hlZXQKCQkJCQkJPDwKCQkJCQkJCS9OYW1lICj+/ykKCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQkJL0ZlYXR1cmVzCgkJCQkJCQk8PAoJCQkJCQkJCS9Gb250IDAKCQkJCQkJCQkvRm9udFNpemUgMjAuNzczMzEKCQkJCQkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkJCS9BdXRvTGVhZGluZyBmYWxzZQoJCQkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCQkJCQkvVHJhY2tpbmcgMjAKCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCS9DaGFyYWN0ZXJSb3RhdGlvbiAwLjAKCQkJCQkJCQkvQXV0b0tlcm4gMQoJCQkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkJCQkJL0ZvbnRPVFBvc2l0aW9uIDAKCQkJCQkJCQkvU3RyaWtldGhyb3VnaFBvc2l0aW9uIDAKCQkJCQkJCQkvVW5kZXJsaW5lUG9zaXRpb24gMAoJCQkJCQkJCS9VbmRlcmxpbmVPZmZzZXQgMC4wCgkJCQkJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkJCQkJL0Rpc2NyZXRpb25hcnlMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvQ29udGV4dHVhbExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9BbHRlcm5hdGVMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvT2xkU3R5bGUgZmFsc2UKCQkJCQkJCQkvRnJhY3Rpb25zIGZhbHNlCgkJCQkJCQkJL09yZGluYWxzIGZhbHNlCgkJCQkJCQkJL1N3YXNoIGZhbHNlCgkJCQkJCQkJL1RpdGxpbmcgZmFsc2UKCQkJCQkJCQkvQ29ubmVjdGlvbkZvcm1zIGZhbHNlCgkJCQkJCQkJL1N0eWxpc3RpY0FsdGVybmF0ZXMgZmFsc2UKCQkJCQkJCQkvT3JuYW1lbnRzIGZhbHNlCgkJCQkJCQkJL0ZpZ3VyZVN0eWxlIDAKCQkJCQkJCQkvUHJvcG9ydGlvbmFsTWV0cmljcyBmYWxzZQoJCQkJCQkJCS9LYW5hIGZhbHNlCgkJCQkJCQkJL0l0YWxpY3MgZmFsc2UKCQkJCQkJCQkvUnVieSBmYWxzZQoJCQkJCQkJCS9CYXNlbGluZURpcmVjdGlvbiAxCgkJCQkJCQkJL1RzdW1lIDAuMAoJCQkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCQkJL0xhbmd1YWdlIDAKCQkJCQkJCQkvSmFwYW5lc2VBbHRlcm5hdGVGZWF0dXJlIDAKCQkJCQkJCQkvRW5hYmxlV2FyaUNodSBmYWxzZQoJCQkJCQkJCS9XYXJpQ2h1TGluZUNvdW50IDIKCQkJCQkJCQkvV2FyaUNodUxpbmVHYXAgMAoJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZUFtb3VudAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZVNjYWxlIDAuNQoJCQkJCQkJCT4+CgkJCQkJCQkJL1dhcmlDaHVXaWRvd0Ftb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVPcnBoYW5BbW91bnQgMgoJCQkJCQkJCS9XYXJpQ2h1SnVzdGlmaWNhdGlvbiA3CgkJCQkJCQkJL1RDWVVwRG93bkFkanVzdG1lbnQgMAoJCQkJCQkJCS9UQ1lMZWZ0UmlnaHRBZGp1c3RtZW50IDAKCQkJCQkJCQkvTGVmdEFraSAtMS4wCgkJCQkJCQkJL1JpZ2h0QWtpIC0xLjAKCQkJCQkJCQkvSmlEb3JpIDAKCQkJCQkJCQkvTm9CcmVhayBmYWxzZQoJCQkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCS9CbGVuZAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZUJsZW5kZXIKCQkJCQkJCQk+PgoJCQkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCQkJL0ZpbGxPdmVyUHJpbnQgZmFsc2UKCQkJCQkJCQkvU3Ryb2tlT3ZlclByaW50IGZhbHNlCgkJCQkJCQkJL0xpbmVDYXAgMAoJCQkJCQkJCS9MaW5lSm9pbiAwCgkJCQkJCQkJL0xpbmVXaWR0aCAwLjA0MTY3CgkJCQkJCQkJL01pdGVyTGltaXQgMC4wNDE2NwoJCQkJCQkJCS9MaW5lRGFzaE9mZnNldCAwLjAKCQkJCQkJCQkvTGluZURhc2hBcnJheSBbIF0KCQkJCQkJCQkvVHlwZTFFbmNvZGluZ05hbWVzIFsgXQoJCQkJCQkJPj4KCQkJCQkJPj4KCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0tlcm5SdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0FsdGVybmF0ZUdseXBoUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdG9yeVNoZWV0CgkJCTw8CgkJCQkvQW50aUFsaWFzIDQKCQkJCS9Vc2VGcmFjdGlvbmFsR2x5cGhXaWR0aHMgdHJ1ZQoJCQk+PgoJCT4+CgkJL1ZpZXcKCQk8PAoJCQkvRnJhbWVzIFsKCQkJPDwKCQkJCS9SZXNvdXJjZSAyNgoJCQk+PgoJCQldCgkJCS9SZW5kZXJlZERhdGEKCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL0xpbmVDb3VudCAxCgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdHJpa2VzIFsKCQkJPDwKCQkJCS9TdHJlYW1UYWcgL1BhdGhTZWxlY3RHcm91cENoYXJhY3RlcgoJCQkJL1RyYW5zZm9ybQoJCQkJPDwKCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkvQ2hpbGRQcm9jZXNzaW9uIDAKCQkJCS9DaGlsZHJlbiBbCgkJCQk8PAoJCQkJCS9TdHJlYW1UYWcgL0ZyYW1lU3RyaWtlCgkJCQkJL0ZyYW1lIDI2CgkJCQkJL1RyYW5zZm9ybQoJCQkJCTw8CgkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQk+PgoJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCS9DaGlsZFByb2Nlc3Npb24gMgoJCQkJCS9DaGlsZHJlbiBbCgkJCQkJPDwKCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCS9Sb3dDb2xJbmRleCAwCgkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJPDwKCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJPj4KCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQk8PAoJCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCQkvUm93Q29sSW5kZXggMAoJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJPDwKCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCQk+PgoJCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDIKCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQk8PAoJCQkJCQkJCS9TdHJlYW1UYWcgL0xpbmVTdHJpa2UKCQkJCQkJCQkvQmFzZWxpbmUgMC4wCgkJCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJCQkvRU1IZWlnaHQgMjAuNzczMzEKCQkJCQkJCQkvREhlaWdodCAxNC44MzE5MgoJCQkJCQkJCS9TZWxlY3Rpb25Bc2NlbnQgLTE3LjgwMjYxCgkJCQkJCQkJL1NlbGVjdGlvbkRlc2NlbnQgMTMuMzk0MzMKCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJPDwKCQkJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQkJCT4+CgkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMC4wIDQuNTA3NzEgXQoJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2VnbWVudAoJCQkJCQkJCQkvTWFwcGluZwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0NoYXJhY3RlckNvdW50IDQKCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpcnN0Q2hhcmFjdGVySW5kZXhJblNlZ21lbnQgMAoJCQkJCQkJCQkvVW5kZXJsaW5lSW52YWxpZGF0aW9uIFsgLTIxLjAwMTU4IDguODg2NjIgMjEuNDE3MDUgOC44ODY2MiBdCgkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9PcmlnaW4gWyAtMjEuMDAxNTggMC4wIF0KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMzAwMjEuMDAxOTUgNC41MDc3MSBdCgkJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvR2x5cGhTdHJpa2UKCQkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL09yaWdpbiBbIDAuMCA4Ljg4NjYyIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSA0Mi40MTg2MiA0LjUwNzcxIF0KCQkJCQkJCQkJCS9HbHlwaHMgWyA0OSA1NSA0NiAzIF0KCQkJCQkJCQkJCS9HbHlwaEFkanVzdG1lbnRzCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9EYXRhIFsKCQkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCQkvQmFja0ZpeGVkIDAuNDE1NDcKCQkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJCV0KCQkJCQkJCQkJCQkvUnVuTGVuZ3RocyBbIDQgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCS9SZW5kZXJlZEJvdW5kcyBbIC0yMS4wMDE1OCAtOC45MTU5OSAyMS40MTcwNSAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvVmlzdWFsQm91bmRzIFsgLTIxLjAwMTU4IC04LjkxNTk5IDIxLjQxNzA1IDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9JbnZhbGlkYXRpb24gWyAtMjEuMDAxNTggLTguOTE1OTkgMzIuNTMwNTEgMTMuMzk0MzMgXQoJCQkJCQkJCQkJL1NoYWRvd1N0eWxlc1J1bgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvRGF0YSBbCgkJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkJL0luZGV4IDAKCQkJCQkJCQkJCQkJL0ZvbnQgMAoJCQkJCQkJCQkJCQkvT3JpZW50YXRpb24gMAoJCQkJCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCQkJCQkvS2VyblR5cGUgMQoJCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkJXQoJCQkJCQkJCQkJCS9SdW5MZW5ndGhzIFsgNCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQldCgkJCQkJCQkJCS9Bbm5vdGF0aW9uCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvV2lkdGggMC4wCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJXQoJCQkJCQk+PgoJCQkJCQldCgkJCQkJPj4KCQkJCQldCgkJCQk+PgoJCQkJXQoJCQk+PgoJCQldCgkJPj4KCQkvT3B0aWNhbEFsaWdubWVudCBmYWxzZQoJPj4KCTw8CgkJL01vZGVsCgkJPDwKCQkJL1RleHQgKP7/AEIATQBQAA0pCgkJCS9QYXJhZ3JhcGhSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1BhcmFncmFwaFNoZWV0CgkJCQkJCTw8CgkJCQkJCQkvTmFtZSAo/v8pCgkJCQkJCQkvRmVhdHVyZXMKCQkJCQkJCTw8CgkJCQkJCQkJL0p1c3RpZmljYXRpb24gMgoJCQkJCQkJCS9GaXJzdExpbmVJbmRlbnQgMC4wCgkJCQkJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJCQkJCS9Ecm9wQ2FwcyAxCgkJCQkJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgOAoJCQkJCQkJCS9QcmVIeXBoZW4gMwoJCQkJCQkJCS9Qb3N0SHlwaGVuIDMKCQkJCQkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDIKCQkJCQkJCQkvWm9uZSAzNi4wCgkJCQkJCQkJL0h5cGhlbmF0ZUNhcGl0YWxpemVkIHRydWUKCQkJCQkJCQkvSHlwaGVuYXRpb25QcmVmZXJlbmNlIDAuNQoJCQkJCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCQkJCQkvU2luZ2xlV29yZEp1c3RpZmljYXRpb24gNgoJCQkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCQkJL0F1dG9UQ1kgMQoJCQkJCQkJCS9LZWVwVG9nZXRoZXIgdHJ1ZQoJCQkJCQkJCS9CdXJhc2FnYXJpVHlwZSAwCgkJCQkJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkJCQkJL0t1cmlrYWVzaGlNb2ppU2hvcmkgZmFsc2UKCQkJCQkJCQkvS2luc29rdSAvbmlsCgkJCQkJCQkJL01vamlLdW1pVGFibGUgL25pbAoJCQkJCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQkJCQkJCS9UYWJTdG9wcwoJCQkJCQkJCTw8CgkJCQkJCQkJPj4KCQkJCQkJCQkvRGVmYXVsdFRhYldpZHRoIDM2LjAKCQkJCQkJCQkvRGVmYXVsdFN0eWxlCgkJCQkJCQkJPDwKCQkJCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQk+PgoJCQkJCQkJPj4KCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQk+PgoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3R5bGVSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1N0eWxlU2hlZXQKCQkJCQkJPDwKCQkJCQkJCS9OYW1lICj+/ykKCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQkJL0ZlYXR1cmVzCgkJCQkJCQk8PAoJCQkJCQkJCS9Gb250IDAKCQkJCQkJCQkvRm9udFNpemUgMjAuNzczMzEKCQkJCQkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkJCS9BdXRvTGVhZGluZyBmYWxzZQoJCQkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCQkJCQkvVHJhY2tpbmcgMjAKCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCS9DaGFyYWN0ZXJSb3RhdGlvbiAwLjAKCQkJCQkJCQkvQXV0b0tlcm4gMQoJCQkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkJCQkJL0ZvbnRPVFBvc2l0aW9uIDAKCQkJCQkJCQkvU3RyaWtldGhyb3VnaFBvc2l0aW9uIDAKCQkJCQkJCQkvVW5kZXJsaW5lUG9zaXRpb24gMAoJCQkJCQkJCS9VbmRlcmxpbmVPZmZzZXQgMC4wCgkJCQkJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkJCQkJL0Rpc2NyZXRpb25hcnlMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvQ29udGV4dHVhbExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9BbHRlcm5hdGVMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvT2xkU3R5bGUgZmFsc2UKCQkJCQkJCQkvRnJhY3Rpb25zIGZhbHNlCgkJCQkJCQkJL09yZGluYWxzIGZhbHNlCgkJCQkJCQkJL1N3YXNoIGZhbHNlCgkJCQkJCQkJL1RpdGxpbmcgZmFsc2UKCQkJCQkJCQkvQ29ubmVjdGlvbkZvcm1zIGZhbHNlCgkJCQkJCQkJL1N0eWxpc3RpY0FsdGVybmF0ZXMgZmFsc2UKCQkJCQkJCQkvT3JuYW1lbnRzIGZhbHNlCgkJCQkJCQkJL0ZpZ3VyZVN0eWxlIDAKCQkJCQkJCQkvUHJvcG9ydGlvbmFsTWV0cmljcyBmYWxzZQoJCQkJCQkJCS9LYW5hIGZhbHNlCgkJCQkJCQkJL0l0YWxpY3MgZmFsc2UKCQkJCQkJCQkvUnVieSBmYWxzZQoJCQkJCQkJCS9CYXNlbGluZURpcmVjdGlvbiAxCgkJCQkJCQkJL1RzdW1lIDAuMAoJCQkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCQkJL0xhbmd1YWdlIDAKCQkJCQkJCQkvSmFwYW5lc2VBbHRlcm5hdGVGZWF0dXJlIDAKCQkJCQkJCQkvRW5hYmxlV2FyaUNodSBmYWxzZQoJCQkJCQkJCS9XYXJpQ2h1TGluZUNvdW50IDIKCQkJCQkJCQkvV2FyaUNodUxpbmVHYXAgMAoJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZUFtb3VudAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZVNjYWxlIDAuNQoJCQkJCQkJCT4+CgkJCQkJCQkJL1dhcmlDaHVXaWRvd0Ftb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVPcnBoYW5BbW91bnQgMgoJCQkJCQkJCS9XYXJpQ2h1SnVzdGlmaWNhdGlvbiA3CgkJCQkJCQkJL1RDWVVwRG93bkFkanVzdG1lbnQgMAoJCQkJCQkJCS9UQ1lMZWZ0UmlnaHRBZGp1c3RtZW50IDAKCQkJCQkJCQkvTGVmdEFraSAtMS4wCgkJCQkJCQkJL1JpZ2h0QWtpIC0xLjAKCQkJCQkJCQkvSmlEb3JpIDAKCQkJCQkJCQkvTm9CcmVhayBmYWxzZQoJCQkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCS9CbGVuZAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZUJsZW5kZXIKCQkJCQkJCQk+PgoJCQkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCQkJL0ZpbGxPdmVyUHJpbnQgZmFsc2UKCQkJCQkJCQkvU3Ryb2tlT3ZlclByaW50IGZhbHNlCgkJCQkJCQkJL0xpbmVDYXAgMAoJCQkJCQkJCS9MaW5lSm9pbiAwCgkJCQkJCQkJL0xpbmVXaWR0aCAwLjA0MTY3CgkJCQkJCQkJL01pdGVyTGltaXQgMC4wNDE2NwoJCQkJCQkJCS9MaW5lRGFzaE9mZnNldCAwLjAKCQkJCQkJCQkvTGluZURhc2hBcnJheSBbIF0KCQkJCQkJCQkvVHlwZTFFbmNvZGluZ05hbWVzIFsgXQoJCQkJCQkJPj4KCQkJCQkJPj4KCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0tlcm5SdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0FsdGVybmF0ZUdseXBoUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdG9yeVNoZWV0CgkJCTw8CgkJCQkvQW50aUFsaWFzIDQKCQkJCS9Vc2VGcmFjdGlvbmFsR2x5cGhXaWR0aHMgdHJ1ZQoJCQk+PgoJCT4+CgkJL1ZpZXcKCQk8PAoJCQkvRnJhbWVzIFsKCQkJPDwKCQkJCS9SZXNvdXJjZSAyNwoJCQk+PgoJCQldCgkJCS9SZW5kZXJlZERhdGEKCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL0xpbmVDb3VudCAxCgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdHJpa2VzIFsKCQkJPDwKCQkJCS9TdHJlYW1UYWcgL1BhdGhTZWxlY3RHcm91cENoYXJhY3RlcgoJCQkJL1RyYW5zZm9ybQoJCQkJPDwKCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkvQ2hpbGRQcm9jZXNzaW9uIDAKCQkJCS9DaGlsZHJlbiBbCgkJCQk8PAoJCQkJCS9TdHJlYW1UYWcgL0ZyYW1lU3RyaWtlCgkJCQkJL0ZyYW1lIDI3CgkJCQkJL1RyYW5zZm9ybQoJCQkJCTw8CgkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQk+PgoJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCS9DaGlsZFByb2Nlc3Npb24gMgoJCQkJCS9DaGlsZHJlbiBbCgkJCQkJPDwKCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCS9Sb3dDb2xJbmRleCAwCgkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJPDwKCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJPj4KCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQk8PAoJCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCQkvUm93Q29sSW5kZXggMAoJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJPDwKCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCQk+PgoJCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDIKCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQk8PAoJCQkJCQkJCS9TdHJlYW1UYWcgL0xpbmVTdHJpa2UKCQkJCQkJCQkvQmFzZWxpbmUgMC4wCgkJCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJCQkvRU1IZWlnaHQgMjAuNzczMzEKCQkJCQkJCQkvREhlaWdodCAxNC44MzE5MgoJCQkJCQkJCS9TZWxlY3Rpb25Bc2NlbnQgLTE3LjgwMjYxCgkJCQkJCQkJL1NlbGVjdGlvbkRlc2NlbnQgMTMuMzk0MzMKCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJPDwKCQkJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQkJCT4+CgkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMC4wIDQuNTA3NzEgXQoJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2VnbWVudAoJCQkJCQkJCQkvTWFwcGluZwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0NoYXJhY3RlckNvdW50IDQKCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpcnN0Q2hhcmFjdGVySW5kZXhJblNlZ21lbnQgMAoJCQkJCQkJCQkvVW5kZXJsaW5lSW52YWxpZGF0aW9uIFsgLTI0LjA3NjA4IDguODg2NjIgMjQuNDkxNTUgOC44ODY2MiBdCgkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9PcmlnaW4gWyAtMjQuMDc2MDggMC4wIF0KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMzAwMjQuMDc2MTcgNC41MDc3MSBdCgkJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvR2x5cGhTdHJpa2UKCQkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL09yaWdpbiBbIDAuMCA4Ljg4NjYyIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSA0OC41Njc2MyA0LjUwNzcxIF0KCQkJCQkJCQkJCS9HbHlwaHMgWyA0MSA1MiA1NSAzIF0KCQkJCQkJCQkJCS9HbHlwaEFkanVzdG1lbnRzCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9EYXRhIFsKCQkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCQkvQmFja0ZpeGVkIDAuNDE1NDcKCQkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJCV0KCQkJCQkJCQkJCQkvUnVuTGVuZ3RocyBbIDQgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCS9SZW5kZXJlZEJvdW5kcyBbIC0yNC4wNzYwOCAtOC45MTU5OSAyNC40OTE1NSAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvVmlzdWFsQm91bmRzIFsgLTI0LjA3NjA4IC04LjkxNTk5IDI0LjQ5MTU1IDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9JbnZhbGlkYXRpb24gWyAtMjQuMDc2MDggLTguOTE1OTkgMzUuNjA1MDEgMTMuMzk0MzMgXQoJCQkJCQkJCQkJL1NoYWRvd1N0eWxlc1J1bgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvRGF0YSBbCgkJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkJL0luZGV4IDAKCQkJCQkJCQkJCQkJL0ZvbnQgMAoJCQkJCQkJCQkJCQkvT3JpZW50YXRpb24gMAoJCQkJCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCQkJCQkvS2VyblR5cGUgMQoJCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkJXQoJCQkJCQkJCQkJCS9SdW5MZW5ndGhzIFsgNCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQldCgkJCQkJCQkJCS9Bbm5vdGF0aW9uCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvV2lkdGggMC4wCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJXQoJCQkJCQk+PgoJCQkJCQldCgkJCQkJPj4KCQkJCQldCgkJCQk+PgoJCQkJXQoJCQk+PgoJCQldCgkJPj4KCQkvT3B0aWNhbEFsaWdubWVudCBmYWxzZQoJPj4KCTw8CgkJL01vZGVsCgkJPDwKCQkJL1RleHQgKP7/AFAATgBHAA0pCgkJCS9QYXJhZ3JhcGhSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1BhcmFncmFwaFNoZWV0CgkJCQkJCTw8CgkJCQkJCQkvTmFtZSAo/v8pCgkJCQkJCQkvRmVhdHVyZXMKCQkJCQkJCTw8CgkJCQkJCQkJL0p1c3RpZmljYXRpb24gMgoJCQkJCQkJCS9GaXJzdExpbmVJbmRlbnQgMC4wCgkJCQkJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJCQkJCS9Ecm9wQ2FwcyAxCgkJCQkJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgOAoJCQkJCQkJCS9QcmVIeXBoZW4gMwoJCQkJCQkJCS9Qb3N0SHlwaGVuIDMKCQkJCQkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDIKCQkJCQkJCQkvWm9uZSAzNi4wCgkJCQkJCQkJL0h5cGhlbmF0ZUNhcGl0YWxpemVkIHRydWUKCQkJCQkJCQkvSHlwaGVuYXRpb25QcmVmZXJlbmNlIDAuNQoJCQkJCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCQkJCQkvU2luZ2xlV29yZEp1c3RpZmljYXRpb24gNgoJCQkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCQkJL0F1dG9UQ1kgMQoJCQkJCQkJCS9LZWVwVG9nZXRoZXIgdHJ1ZQoJCQkJCQkJCS9CdXJhc2FnYXJpVHlwZSAwCgkJCQkJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkJCQkJL0t1cmlrYWVzaGlNb2ppU2hvcmkgZmFsc2UKCQkJCQkJCQkvS2luc29rdSAvbmlsCgkJCQkJCQkJL01vamlLdW1pVGFibGUgL25pbAoJCQkJCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQkJCQkJCS9UYWJTdG9wcwoJCQkJCQkJCTw8CgkJCQkJCQkJPj4KCQkJCQkJCQkvRGVmYXVsdFRhYldpZHRoIDM2LjAKCQkJCQkJCQkvRGVmYXVsdFN0eWxlCgkJCQkJCQkJPDwKCQkJCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQk+PgoJCQkJCQkJPj4KCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQk+PgoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3R5bGVSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1N0eWxlU2hlZXQKCQkJCQkJPDwKCQkJCQkJCS9OYW1lICj+/ykKCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQkJL0ZlYXR1cmVzCgkJCQkJCQk8PAoJCQkJCQkJCS9Gb250IDAKCQkJCQkJCQkvRm9udFNpemUgMjAuNzczMzEKCQkJCQkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkJCS9BdXRvTGVhZGluZyBmYWxzZQoJCQkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCQkJCQkvVHJhY2tpbmcgMjAKCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCS9DaGFyYWN0ZXJSb3RhdGlvbiAwLjAKCQkJCQkJCQkvQXV0b0tlcm4gMQoJCQkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkJCQkJL0ZvbnRPVFBvc2l0aW9uIDAKCQkJCQkJCQkvU3RyaWtldGhyb3VnaFBvc2l0aW9uIDAKCQkJCQkJCQkvVW5kZXJsaW5lUG9zaXRpb24gMAoJCQkJCQkJCS9VbmRlcmxpbmVPZmZzZXQgMC4wCgkJCQkJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkJCQkJL0Rpc2NyZXRpb25hcnlMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvQ29udGV4dHVhbExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9BbHRlcm5hdGVMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvT2xkU3R5bGUgZmFsc2UKCQkJCQkJCQkvRnJhY3Rpb25zIGZhbHNlCgkJCQkJCQkJL09yZGluYWxzIGZhbHNlCgkJCQkJCQkJL1N3YXNoIGZhbHNlCgkJCQkJCQkJL1RpdGxpbmcgZmFsc2UKCQkJCQkJCQkvQ29ubmVjdGlvbkZvcm1zIGZhbHNlCgkJCQkJCQkJL1N0eWxpc3RpY0FsdGVybmF0ZXMgZmFsc2UKCQkJCQkJCQkvT3JuYW1lbnRzIGZhbHNlCgkJCQkJCQkJL0ZpZ3VyZVN0eWxlIDAKCQkJCQkJCQkvUHJvcG9ydGlvbmFsTWV0cmljcyBmYWxzZQoJCQkJCQkJCS9LYW5hIGZhbHNlCgkJCQkJCQkJL0l0YWxpY3MgZmFsc2UKCQkJCQkJCQkvUnVieSBmYWxzZQoJCQkJCQkJCS9CYXNlbGluZURpcmVjdGlvbiAxCgkJCQkJCQkJL1RzdW1lIDAuMAoJCQkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCQkJL0xhbmd1YWdlIDAKCQkJCQkJCQkvSmFwYW5lc2VBbHRlcm5hdGVGZWF0dXJlIDAKCQkJCQkJCQkvRW5hYmxlV2FyaUNodSBmYWxzZQoJCQkJCQkJCS9XYXJpQ2h1TGluZUNvdW50IDIKCQkJCQkJCQkvV2FyaUNodUxpbmVHYXAgMAoJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZUFtb3VudAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZVNjYWxlIDAuNQoJCQkJCQkJCT4+CgkJCQkJCQkJL1dhcmlDaHVXaWRvd0Ftb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVPcnBoYW5BbW91bnQgMgoJCQkJCQkJCS9XYXJpQ2h1SnVzdGlmaWNhdGlvbiA3CgkJCQkJCQkJL1RDWVVwRG93bkFkanVzdG1lbnQgMAoJCQkJCQkJCS9UQ1lMZWZ0UmlnaHRBZGp1c3RtZW50IDAKCQkJCQkJCQkvTGVmdEFraSAtMS4wCgkJCQkJCQkJL1JpZ2h0QWtpIC0xLjAKCQkJCQkJCQkvSmlEb3JpIDAKCQkJCQkJCQkvTm9CcmVhayBmYWxzZQoJCQkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCS9CbGVuZAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZUJsZW5kZXIKCQkJCQkJCQk+PgoJCQkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCQkJL0ZpbGxPdmVyUHJpbnQgZmFsc2UKCQkJCQkJCQkvU3Ryb2tlT3ZlclByaW50IGZhbHNlCgkJCQkJCQkJL0xpbmVDYXAgMAoJCQkJCQkJCS9MaW5lSm9pbiAwCgkJCQkJCQkJL0xpbmVXaWR0aCAwLjA0MTY3CgkJCQkJCQkJL01pdGVyTGltaXQgMC4wNDE2NwoJCQkJCQkJCS9MaW5lRGFzaE9mZnNldCAwLjAKCQkJCQkJCQkvTGluZURhc2hBcnJheSBbIF0KCQkJCQkJCQkvVHlwZTFFbmNvZGluZ05hbWVzIFsgXQoJCQkJCQkJPj4KCQkJCQkJPj4KCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0tlcm5SdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0FsdGVybmF0ZUdseXBoUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdG9yeVNoZWV0CgkJCTw8CgkJCQkvQW50aUFsaWFzIDQKCQkJCS9Vc2VGcmFjdGlvbmFsR2x5cGhXaWR0aHMgdHJ1ZQoJCQk+PgoJCT4+CgkJL1ZpZXcKCQk8PAoJCQkvRnJhbWVzIFsKCQkJPDwKCQkJCS9SZXNvdXJjZSAyOAoJCQk+PgoJCQldCgkJCS9SZW5kZXJlZERhdGEKCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL0xpbmVDb3VudCAxCgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdHJpa2VzIFsKCQkJPDwKCQkJCS9TdHJlYW1UYWcgL1BhdGhTZWxlY3RHcm91cENoYXJhY3RlcgoJCQkJL1RyYW5zZm9ybQoJCQkJPDwKCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkvQ2hpbGRQcm9jZXNzaW9uIDAKCQkJCS9DaGlsZHJlbiBbCgkJCQk8PAoJCQkJCS9TdHJlYW1UYWcgL0ZyYW1lU3RyaWtlCgkJCQkJL0ZyYW1lIDI4CgkJCQkJL1RyYW5zZm9ybQoJCQkJCTw8CgkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQk+PgoJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCS9DaGlsZFByb2Nlc3Npb24gMgoJCQkJCS9DaGlsZHJlbiBbCgkJCQkJPDwKCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCS9Sb3dDb2xJbmRleCAwCgkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJPDwKCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJPj4KCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQk8PAoJCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCQkvUm93Q29sSW5kZXggMAoJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJPDwKCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCQk+PgoJCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDIKCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQk8PAoJCQkJCQkJCS9TdHJlYW1UYWcgL0xpbmVTdHJpa2UKCQkJCQkJCQkvQmFzZWxpbmUgMC4wCgkJCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJCQkvRU1IZWlnaHQgMjAuNzczMzEKCQkJCQkJCQkvREhlaWdodCAxNC44MzE5MgoJCQkJCQkJCS9TZWxlY3Rpb25Bc2NlbnQgLTE3LjgwMjYxCgkJCQkJCQkJL1NlbGVjdGlvbkRlc2NlbnQgMTMuMzk0MzMKCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJPDwKCQkJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQkJCT4+CgkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMC4wIDQuNTA3NzEgXQoJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2VnbWVudAoJCQkJCQkJCQkvTWFwcGluZwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0NoYXJhY3RlckNvdW50IDQKCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpcnN0Q2hhcmFjdGVySW5kZXhJblNlZ21lbnQgMAoJCQkJCQkJCQkvVW5kZXJsaW5lSW52YWxpZGF0aW9uIFsgLTIyLjkyMzA5IDguODg2NjIgMjMuMzM4NTUgOC44ODY2MiBdCgkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9PcmlnaW4gWyAtMjIuOTIzMDkgMC4wIF0KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMzAwMjIuOTIzODMgNC41MDc3MSBdCgkJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvR2x5cGhTdHJpa2UKCQkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL09yaWdpbiBbIDAuMCA4Ljg4NjYyIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSA0Ni4yNjE2NCA0LjUwNzcxIF0KCQkJCQkJCQkJCS9HbHlwaHMgWyA1NSA1MyA0NiAzIF0KCQkJCQkJCQkJCS9HbHlwaEFkanVzdG1lbnRzCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9EYXRhIFsKCQkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCQkvQmFja0ZpeGVkIDAuNDE1NDcKCQkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJCV0KCQkJCQkJCQkJCQkvUnVuTGVuZ3RocyBbIDQgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCS9SZW5kZXJlZEJvdW5kcyBbIC0yMi45MjMwOSAtOC45MTU5OSAyMy4zMzg1NSAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvVmlzdWFsQm91bmRzIFsgLTIyLjkyMzA5IC04LjkxNTk5IDIzLjMzODU1IDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9JbnZhbGlkYXRpb24gWyAtMjIuOTIzMDkgLTguOTE1OTkgMzQuNDUyMDIgMTMuMzk0MzMgXQoJCQkJCQkJCQkJL1NoYWRvd1N0eWxlc1J1bgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvRGF0YSBbCgkJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkJL0luZGV4IDAKCQkJCQkJCQkJCQkJL0ZvbnQgMAoJCQkJCQkJCQkJCQkvT3JpZW50YXRpb24gMAoJCQkJCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCQkJCQkvS2VyblR5cGUgMQoJCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkJXQoJCQkJCQkJCQkJCS9SdW5MZW5ndGhzIFsgNCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQldCgkJCQkJCQkJCS9Bbm5vdGF0aW9uCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvV2lkdGggMC4wCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJXQoJCQkJCQk+PgoJCQkJCQldCgkJCQkJPj4KCQkJCQldCgkJCQk+PgoJCQkJXQoJCQk+PgoJCQldCgkJPj4KCQkvT3B0aWNhbEFsaWdubWVudCBmYWxzZQoJPj4KCTw8CgkJL01vZGVsCgkJPDwKCQkJL1RleHQgKP7/AFQASQBGAA0pCgkJCS9QYXJhZ3JhcGhSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1BhcmFncmFwaFNoZWV0CgkJCQkJCTw8CgkJCQkJCQkvTmFtZSAo/v8pCgkJCQkJCQkvRmVhdHVyZXMKCQkJCQkJCTw8CgkJCQkJCQkJL0p1c3RpZmljYXRpb24gMgoJCQkJCQkJCS9GaXJzdExpbmVJbmRlbnQgMC4wCgkJCQkJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJCQkJCS9Ecm9wQ2FwcyAxCgkJCQkJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgOAoJCQkJCQkJCS9QcmVIeXBoZW4gMwoJCQkJCQkJCS9Qb3N0SHlwaGVuIDMKCQkJCQkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDIKCQkJCQkJCQkvWm9uZSAzNi4wCgkJCQkJCQkJL0h5cGhlbmF0ZUNhcGl0YWxpemVkIHRydWUKCQkJCQkJCQkvSHlwaGVuYXRpb25QcmVmZXJlbmNlIDAuNQoJCQkJCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCQkJCQkvU2luZ2xlV29yZEp1c3RpZmljYXRpb24gNgoJCQkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCQkJL0F1dG9UQ1kgMQoJCQkJCQkJCS9LZWVwVG9nZXRoZXIgdHJ1ZQoJCQkJCQkJCS9CdXJhc2FnYXJpVHlwZSAwCgkJCQkJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkJCQkJL0t1cmlrYWVzaGlNb2ppU2hvcmkgZmFsc2UKCQkJCQkJCQkvS2luc29rdSAvbmlsCgkJCQkJCQkJL01vamlLdW1pVGFibGUgL25pbAoJCQkJCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQkJCQkJCS9UYWJTdG9wcwoJCQkJCQkJCTw8CgkJCQkJCQkJPj4KCQkJCQkJCQkvRGVmYXVsdFRhYldpZHRoIDM2LjAKCQkJCQkJCQkvRGVmYXVsdFN0eWxlCgkJCQkJCQkJPDwKCQkJCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQk+PgoJCQkJCQkJPj4KCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQk+PgoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3R5bGVSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1N0eWxlU2hlZXQKCQkJCQkJPDwKCQkJCQkJCS9OYW1lICj+/ykKCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQkJL0ZlYXR1cmVzCgkJCQkJCQk8PAoJCQkJCQkJCS9Gb250IDAKCQkJCQkJCQkvRm9udFNpemUgMjAuNzczMzEKCQkJCQkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkJCS9BdXRvTGVhZGluZyBmYWxzZQoJCQkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCQkJCQkvVHJhY2tpbmcgMjAKCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCS9DaGFyYWN0ZXJSb3RhdGlvbiAwLjAKCQkJCQkJCQkvQXV0b0tlcm4gMQoJCQkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkJCQkJL0ZvbnRPVFBvc2l0aW9uIDAKCQkJCQkJCQkvU3RyaWtldGhyb3VnaFBvc2l0aW9uIDAKCQkJCQkJCQkvVW5kZXJsaW5lUG9zaXRpb24gMAoJCQkJCQkJCS9VbmRlcmxpbmVPZmZzZXQgMC4wCgkJCQkJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkJCQkJL0Rpc2NyZXRpb25hcnlMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvQ29udGV4dHVhbExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9BbHRlcm5hdGVMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvT2xkU3R5bGUgZmFsc2UKCQkJCQkJCQkvRnJhY3Rpb25zIGZhbHNlCgkJCQkJCQkJL09yZGluYWxzIGZhbHNlCgkJCQkJCQkJL1N3YXNoIGZhbHNlCgkJCQkJCQkJL1RpdGxpbmcgZmFsc2UKCQkJCQkJCQkvQ29ubmVjdGlvbkZvcm1zIGZhbHNlCgkJCQkJCQkJL1N0eWxpc3RpY0FsdGVybmF0ZXMgZmFsc2UKCQkJCQkJCQkvT3JuYW1lbnRzIGZhbHNlCgkJCQkJCQkJL0ZpZ3VyZVN0eWxlIDAKCQkJCQkJCQkvUHJvcG9ydGlvbmFsTWV0cmljcyBmYWxzZQoJCQkJCQkJCS9LYW5hIGZhbHNlCgkJCQkJCQkJL0l0YWxpY3MgZmFsc2UKCQkJCQkJCQkvUnVieSBmYWxzZQoJCQkJCQkJCS9CYXNlbGluZURpcmVjdGlvbiAxCgkJCQkJCQkJL1RzdW1lIDAuMAoJCQkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCQkJL0xhbmd1YWdlIDAKCQkJCQkJCQkvSmFwYW5lc2VBbHRlcm5hdGVGZWF0dXJlIDAKCQkJCQkJCQkvRW5hYmxlV2FyaUNodSBmYWxzZQoJCQkJCQkJCS9XYXJpQ2h1TGluZUNvdW50IDIKCQkJCQkJCQkvV2FyaUNodUxpbmVHYXAgMAoJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZUFtb3VudAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZVNjYWxlIDAuNQoJCQkJCQkJCT4+CgkJCQkJCQkJL1dhcmlDaHVXaWRvd0Ftb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVPcnBoYW5BbW91bnQgMgoJCQkJCQkJCS9XYXJpQ2h1SnVzdGlmaWNhdGlvbiA3CgkJCQkJCQkJL1RDWVVwRG93bkFkanVzdG1lbnQgMAoJCQkJCQkJCS9UQ1lMZWZ0UmlnaHRBZGp1c3RtZW50IDAKCQkJCQkJCQkvTGVmdEFraSAtMS4wCgkJCQkJCQkJL1JpZ2h0QWtpIC0xLjAKCQkJCQkJCQkvSmlEb3JpIDAKCQkJCQkJCQkvTm9CcmVhayBmYWxzZQoJCQkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCS9CbGVuZAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZUJsZW5kZXIKCQkJCQkJCQk+PgoJCQkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCQkJL0ZpbGxPdmVyUHJpbnQgZmFsc2UKCQkJCQkJCQkvU3Ryb2tlT3ZlclByaW50IGZhbHNlCgkJCQkJCQkJL0xpbmVDYXAgMAoJCQkJCQkJCS9MaW5lSm9pbiAwCgkJCQkJCQkJL0xpbmVXaWR0aCAwLjA0MTY3CgkJCQkJCQkJL01pdGVyTGltaXQgMC4wNDE2NwoJCQkJCQkJCS9MaW5lRGFzaE9mZnNldCAwLjAKCQkJCQkJCQkvTGluZURhc2hBcnJheSBbIF0KCQkJCQkJCQkvVHlwZTFFbmNvZGluZ05hbWVzIFsgXQoJCQkJCQkJPj4KCQkJCQkJPj4KCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0tlcm5SdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0FsdGVybmF0ZUdseXBoUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdG9yeVNoZWV0CgkJCTw8CgkJCQkvQW50aUFsaWFzIDQKCQkJCS9Vc2VGcmFjdGlvbmFsR2x5cGhXaWR0aHMgdHJ1ZQoJCQk+PgoJCT4+CgkJL1ZpZXcKCQk8PAoJCQkvRnJhbWVzIFsKCQkJPDwKCQkJCS9SZXNvdXJjZSAyOQoJCQk+PgoJCQldCgkJCS9SZW5kZXJlZERhdGEKCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL0xpbmVDb3VudCAxCgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdHJpa2VzIFsKCQkJPDwKCQkJCS9TdHJlYW1UYWcgL1BhdGhTZWxlY3RHcm91cENoYXJhY3RlcgoJCQkJL1RyYW5zZm9ybQoJCQkJPDwKCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkvQ2hpbGRQcm9jZXNzaW9uIDAKCQkJCS9DaGlsZHJlbiBbCgkJCQk8PAoJCQkJCS9TdHJlYW1UYWcgL0ZyYW1lU3RyaWtlCgkJCQkJL0ZyYW1lIDI5CgkJCQkJL1RyYW5zZm9ybQoJCQkJCTw8CgkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQk+PgoJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCS9DaGlsZFByb2Nlc3Npb24gMgoJCQkJCS9DaGlsZHJlbiBbCgkJCQkJPDwKCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCS9Sb3dDb2xJbmRleCAwCgkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJPDwKCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJPj4KCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQk8PAoJCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCQkvUm93Q29sSW5kZXggMAoJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJPDwKCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCQk+PgoJCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDIKCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQk8PAoJCQkJCQkJCS9TdHJlYW1UYWcgL0xpbmVTdHJpa2UKCQkJCQkJCQkvQmFzZWxpbmUgMC4wCgkJCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJCQkvRU1IZWlnaHQgMjAuNzczMzEKCQkJCQkJCQkvREhlaWdodCAxNC44MzE5MgoJCQkJCQkJCS9TZWxlY3Rpb25Bc2NlbnQgLTE3LjgwMjYxCgkJCQkJCQkJL1NlbGVjdGlvbkRlc2NlbnQgMTMuMzk0MzMKCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJPDwKCQkJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQkJCT4+CgkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMC4wIDQuNTA3NzEgXQoJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2VnbWVudAoJCQkJCQkJCQkvTWFwcGluZwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0NoYXJhY3RlckNvdW50IDQKCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpcnN0Q2hhcmFjdGVySW5kZXhJblNlZ21lbnQgMAoJCQkJCQkJCQkvVW5kZXJsaW5lSW52YWxpZGF0aW9uIFsgLTE1Ljk4NDgxIDguODg2NjIgMTYuNDAwMjggOC44ODY2MiBdCgkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9PcmlnaW4gWyAtMTUuOTg0ODEgMC4wIF0KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMzAwMTUuOTg0MzggNC41MDc3MSBdCgkJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvR2x5cGhTdHJpa2UKCQkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL09yaWdpbiBbIDAuMCA4Ljg4NjYyIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSAzMi4zODUwOSA0LjUwNzcxIF0KCQkJCQkJCQkJCS9HbHlwaHMgWyA1OSA0OCA0NSAzIF0KCQkJCQkJCQkJCS9HbHlwaEFkanVzdG1lbnRzCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9EYXRhIFsKCQkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCQkvQmFja0ZpeGVkIDAuNDE1NDcKCQkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJCV0KCQkJCQkJCQkJCQkvUnVuTGVuZ3RocyBbIDQgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCS9SZW5kZXJlZEJvdW5kcyBbIC0xNS45ODQ4MSAtOC45MTU5OSAxNi40MDAyOCAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvVmlzdWFsQm91bmRzIFsgLTE1Ljk4NDgxIC04LjkxNTk5IDE2LjQwMDI4IDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9JbnZhbGlkYXRpb24gWyAtMTUuOTg0ODEgLTguOTE1OTkgMjcuNTEzNzQgMTMuMzk0MzMgXQoJCQkJCQkJCQkJL1NoYWRvd1N0eWxlc1J1bgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvRGF0YSBbCgkJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkJL0luZGV4IDAKCQkJCQkJCQkJCQkJL0ZvbnQgMAoJCQkJCQkJCQkJCQkvT3JpZW50YXRpb24gMAoJCQkJCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCQkJCQkvS2VyblR5cGUgMQoJCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkJXQoJCQkJCQkJCQkJCS9SdW5MZW5ndGhzIFsgNCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQldCgkJCQkJCQkJCS9Bbm5vdGF0aW9uCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvV2lkdGggMC4wCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJXQoJCQkJCQk+PgoJCQkJCQldCgkJCQkJPj4KCQkJCQldCgkJCQk+PgoJCQkJXQoJCQk+PgoJCQldCgkJPj4KCQkvT3B0aWNhbEFsaWdubWVudCBmYWxzZQoJPj4KCTw8CgkJL01vZGVsCgkJPDwKCQkJL1RleHQgKP7/AEcASQBGAA0pCgkJCS9QYXJhZ3JhcGhSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1BhcmFncmFwaFNoZWV0CgkJCQkJCTw8CgkJCQkJCQkvTmFtZSAo/v8pCgkJCQkJCQkvRmVhdHVyZXMKCQkJCQkJCTw8CgkJCQkJCQkJL0p1c3RpZmljYXRpb24gMgoJCQkJCQkJCS9GaXJzdExpbmVJbmRlbnQgMC4wCgkJCQkJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJCQkJCS9Ecm9wQ2FwcyAxCgkJCQkJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgOAoJCQkJCQkJCS9QcmVIeXBoZW4gMwoJCQkJCQkJCS9Qb3N0SHlwaGVuIDMKCQkJCQkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDIKCQkJCQkJCQkvWm9uZSAzNi4wCgkJCQkJCQkJL0h5cGhlbmF0ZUNhcGl0YWxpemVkIHRydWUKCQkJCQkJCQkvSHlwaGVuYXRpb25QcmVmZXJlbmNlIDAuNQoJCQkJCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCQkJCQkvU2luZ2xlV29yZEp1c3RpZmljYXRpb24gNgoJCQkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCQkJL0F1dG9UQ1kgMQoJCQkJCQkJCS9LZWVwVG9nZXRoZXIgdHJ1ZQoJCQkJCQkJCS9CdXJhc2FnYXJpVHlwZSAwCgkJCQkJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkJCQkJL0t1cmlrYWVzaGlNb2ppU2hvcmkgZmFsc2UKCQkJCQkJCQkvS2luc29rdSAvbmlsCgkJCQkJCQkJL01vamlLdW1pVGFibGUgL25pbAoJCQkJCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQkJCQkJCS9UYWJTdG9wcwoJCQkJCQkJCTw8CgkJCQkJCQkJPj4KCQkJCQkJCQkvRGVmYXVsdFRhYldpZHRoIDM2LjAKCQkJCQkJCQkvRGVmYXVsdFN0eWxlCgkJCQkJCQkJPDwKCQkJCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQk+PgoJCQkJCQkJPj4KCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQk+PgoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3R5bGVSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1N0eWxlU2hlZXQKCQkJCQkJPDwKCQkJCQkJCS9OYW1lICj+/ykKCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQkJL0ZlYXR1cmVzCgkJCQkJCQk8PAoJCQkJCQkJCS9Gb250IDAKCQkJCQkJCQkvRm9udFNpemUgMjAuNzczMzEKCQkJCQkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkJCS9BdXRvTGVhZGluZyBmYWxzZQoJCQkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCQkJCQkvVHJhY2tpbmcgMjAKCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCS9DaGFyYWN0ZXJSb3RhdGlvbiAwLjAKCQkJCQkJCQkvQXV0b0tlcm4gMQoJCQkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkJCQkJL0ZvbnRPVFBvc2l0aW9uIDAKCQkJCQkJCQkvU3RyaWtldGhyb3VnaFBvc2l0aW9uIDAKCQkJCQkJCQkvVW5kZXJsaW5lUG9zaXRpb24gMAoJCQkJCQkJCS9VbmRlcmxpbmVPZmZzZXQgMC4wCgkJCQkJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkJCQkJL0Rpc2NyZXRpb25hcnlMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvQ29udGV4dHVhbExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9BbHRlcm5hdGVMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvT2xkU3R5bGUgZmFsc2UKCQkJCQkJCQkvRnJhY3Rpb25zIGZhbHNlCgkJCQkJCQkJL09yZGluYWxzIGZhbHNlCgkJCQkJCQkJL1N3YXNoIGZhbHNlCgkJCQkJCQkJL1RpdGxpbmcgZmFsc2UKCQkJCQkJCQkvQ29ubmVjdGlvbkZvcm1zIGZhbHNlCgkJCQkJCQkJL1N0eWxpc3RpY0FsdGVybmF0ZXMgZmFsc2UKCQkJCQkJCQkvT3JuYW1lbnRzIGZhbHNlCgkJCQkJCQkJL0ZpZ3VyZVN0eWxlIDAKCQkJCQkJCQkvUHJvcG9ydGlvbmFsTWV0cmljcyBmYWxzZQoJCQkJCQkJCS9LYW5hIGZhbHNlCgkJCQkJCQkJL0l0YWxpY3MgZmFsc2UKCQkJCQkJCQkvUnVieSBmYWxzZQoJCQkJCQkJCS9CYXNlbGluZURpcmVjdGlvbiAxCgkJCQkJCQkJL1RzdW1lIDAuMAoJCQkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCQkJL0xhbmd1YWdlIDAKCQkJCQkJCQkvSmFwYW5lc2VBbHRlcm5hdGVGZWF0dXJlIDAKCQkJCQkJCQkvRW5hYmxlV2FyaUNodSBmYWxzZQoJCQkJCQkJCS9XYXJpQ2h1TGluZUNvdW50IDIKCQkJCQkJCQkvV2FyaUNodUxpbmVHYXAgMAoJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZUFtb3VudAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZVNjYWxlIDAuNQoJCQkJCQkJCT4+CgkJCQkJCQkJL1dhcmlDaHVXaWRvd0Ftb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVPcnBoYW5BbW91bnQgMgoJCQkJCQkJCS9XYXJpQ2h1SnVzdGlmaWNhdGlvbiA3CgkJCQkJCQkJL1RDWVVwRG93bkFkanVzdG1lbnQgMAoJCQkJCQkJCS9UQ1lMZWZ0UmlnaHRBZGp1c3RtZW50IDAKCQkJCQkJCQkvTGVmdEFraSAtMS4wCgkJCQkJCQkJL1JpZ2h0QWtpIC0xLjAKCQkJCQkJCQkvSmlEb3JpIDAKCQkJCQkJCQkvTm9CcmVhayBmYWxzZQoJCQkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCS9CbGVuZAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZUJsZW5kZXIKCQkJCQkJCQk+PgoJCQkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCQkJL0ZpbGxPdmVyUHJpbnQgZmFsc2UKCQkJCQkJCQkvU3Ryb2tlT3ZlclByaW50IGZhbHNlCgkJCQkJCQkJL0xpbmVDYXAgMAoJCQkJCQkJCS9MaW5lSm9pbiAwCgkJCQkJCQkJL0xpbmVXaWR0aCAwLjA0MTY3CgkJCQkJCQkJL01pdGVyTGltaXQgMC4wNDE2NwoJCQkJCQkJCS9MaW5lRGFzaE9mZnNldCAwLjAKCQkJCQkJCQkvTGluZURhc2hBcnJheSBbIF0KCQkJCQkJCQkvVHlwZTFFbmNvZGluZ05hbWVzIFsgXQoJCQkJCQkJPj4KCQkJCQkJPj4KCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0tlcm5SdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0FsdGVybmF0ZUdseXBoUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdG9yeVNoZWV0CgkJCTw8CgkJCQkvQW50aUFsaWFzIDQKCQkJCS9Vc2VGcmFjdGlvbmFsR2x5cGhXaWR0aHMgdHJ1ZQoJCQk+PgoJCT4+CgkJL1ZpZXcKCQk8PAoJCQkvRnJhbWVzIFsKCQkJPDwKCQkJCS9SZXNvdXJjZSAzMAoJCQk+PgoJCQldCgkJCS9SZW5kZXJlZERhdGEKCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL0xpbmVDb3VudCAxCgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdHJpa2VzIFsKCQkJPDwKCQkJCS9TdHJlYW1UYWcgL1BhdGhTZWxlY3RHcm91cENoYXJhY3RlcgoJCQkJL1RyYW5zZm9ybQoJCQkJPDwKCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkvQ2hpbGRQcm9jZXNzaW9uIDAKCQkJCS9DaGlsZHJlbiBbCgkJCQk8PAoJCQkJCS9TdHJlYW1UYWcgL0ZyYW1lU3RyaWtlCgkJCQkJL0ZyYW1lIDMwCgkJCQkJL1RyYW5zZm9ybQoJCQkJCTw8CgkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQk+PgoJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCS9DaGlsZFByb2Nlc3Npb24gMgoJCQkJCS9DaGlsZHJlbiBbCgkJCQkJPDwKCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCS9Sb3dDb2xJbmRleCAwCgkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJPDwKCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJPj4KCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQk8PAoJCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCQkvUm93Q29sSW5kZXggMAoJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJPDwKCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCQk+PgoJCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDIKCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQk8PAoJCQkJCQkJCS9TdHJlYW1UYWcgL0xpbmVTdHJpa2UKCQkJCQkJCQkvQmFzZWxpbmUgMC4wCgkJCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJCQkvRU1IZWlnaHQgMjAuNzczMzEKCQkJCQkJCQkvREhlaWdodCAxNC44MzE5MgoJCQkJCQkJCS9TZWxlY3Rpb25Bc2NlbnQgLTE3LjgwMjYxCgkJCQkJCQkJL1NlbGVjdGlvbkRlc2NlbnQgMTMuMzk0MzMKCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJPDwKCQkJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQkJCT4+CgkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMC4wIDQuNTA3NzEgXQoJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2VnbWVudAoJCQkJCQkJCQkvTWFwcGluZwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0NoYXJhY3RlckNvdW50IDQKCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpcnN0Q2hhcmFjdGVySW5kZXhJblNlZ21lbnQgMAoJCQkJCQkJCQkvVW5kZXJsaW5lSW52YWxpZGF0aW9uIFsgLTE3LjUyMTk4IDguODg2NjIgMTcuOTM3NDUgOC44ODY2MiBdCgkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9PcmlnaW4gWyAtMTcuNTIxOTggMC4wIF0KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMzAwMTcuNTIxNDggNC41MDc3MSBdCgkJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvR2x5cGhTdHJpa2UKCQkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL09yaWdpbiBbIDAuMCA4Ljg4NjYyIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSAzNS40NTk0MyA0LjUwNzcxIF0KCQkJCQkJCQkJCS9HbHlwaHMgWyA0NiA0OCA0NSAzIF0KCQkJCQkJCQkJCS9HbHlwaEFkanVzdG1lbnRzCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9EYXRhIFsKCQkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCQkvQmFja0ZpeGVkIDAuNDE1NDcKCQkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJCV0KCQkJCQkJCQkJCQkvUnVuTGVuZ3RocyBbIDQgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCS9SZW5kZXJlZEJvdW5kcyBbIC0xNy41MjE5OCAtOC45MTU5OSAxNy45Mzc0NSAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvVmlzdWFsQm91bmRzIFsgLTE3LjUyMTk4IC04LjkxNTk5IDE3LjkzNzQ1IDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9JbnZhbGlkYXRpb24gWyAtMTcuNTIxOTggLTguOTE1OTkgMjkuMDUwOTEgMTMuMzk0MzMgXQoJCQkJCQkJCQkJL1NoYWRvd1N0eWxlc1J1bgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvRGF0YSBbCgkJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkJL0luZGV4IDAKCQkJCQkJCQkJCQkJL0ZvbnQgMAoJCQkJCQkJCQkJCQkvT3JpZW50YXRpb24gMAoJCQkJCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCQkJCQkvS2VyblR5cGUgMQoJCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkJXQoJCQkJCQkJCQkJCS9SdW5MZW5ndGhzIFsgNCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQldCgkJCQkJCQkJCS9Bbm5vdGF0aW9uCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvV2lkdGggMC4wCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJXQoJCQkJCQk+PgoJCQkJCQldCgkJCQkJPj4KCQkJCQldCgkJCQk+PgoJCQkJXQoJCQk+PgoJCQldCgkJPj4KCQkvT3B0aWNhbEFsaWdubWVudCBmYWxzZQoJPj4KCTw8CgkJL01vZGVsCgkJPDwKCQkJL1RleHQgKP7/AFIAQQBXAA0pCgkJCS9QYXJhZ3JhcGhSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1BhcmFncmFwaFNoZWV0CgkJCQkJCTw8CgkJCQkJCQkvTmFtZSAo/v8pCgkJCQkJCQkvRmVhdHVyZXMKCQkJCQkJCTw8CgkJCQkJCQkJL0p1c3RpZmljYXRpb24gMgoJCQkJCQkJCS9GaXJzdExpbmVJbmRlbnQgMC4wCgkJCQkJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJCQkJCS9Ecm9wQ2FwcyAxCgkJCQkJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgOAoJCQkJCQkJCS9QcmVIeXBoZW4gMwoJCQkJCQkJCS9Qb3N0SHlwaGVuIDMKCQkJCQkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDIKCQkJCQkJCQkvWm9uZSAzNi4wCgkJCQkJCQkJL0h5cGhlbmF0ZUNhcGl0YWxpemVkIHRydWUKCQkJCQkJCQkvSHlwaGVuYXRpb25QcmVmZXJlbmNlIDAuNQoJCQkJCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCQkJCQkvU2luZ2xlV29yZEp1c3RpZmljYXRpb24gNgoJCQkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCQkJL0F1dG9UQ1kgMQoJCQkJCQkJCS9LZWVwVG9nZXRoZXIgdHJ1ZQoJCQkJCQkJCS9CdXJhc2FnYXJpVHlwZSAwCgkJCQkJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkJCQkJL0t1cmlrYWVzaGlNb2ppU2hvcmkgZmFsc2UKCQkJCQkJCQkvS2luc29rdSAvbmlsCgkJCQkJCQkJL01vamlLdW1pVGFibGUgL25pbAoJCQkJCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQkJCQkJCS9UYWJTdG9wcwoJCQkJCQkJCTw8CgkJCQkJCQkJPj4KCQkJCQkJCQkvRGVmYXVsdFRhYldpZHRoIDM2LjAKCQkJCQkJCQkvRGVmYXVsdFN0eWxlCgkJCQkJCQkJPDwKCQkJCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQk+PgoJCQkJCQkJPj4KCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQk+PgoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3R5bGVSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1N0eWxlU2hlZXQKCQkJCQkJPDwKCQkJCQkJCS9OYW1lICj+/ykKCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQkJL0ZlYXR1cmVzCgkJCQkJCQk8PAoJCQkJCQkJCS9Gb250IDAKCQkJCQkJCQkvRm9udFNpemUgMjAuNzczMzEKCQkJCQkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkJCS9BdXRvTGVhZGluZyBmYWxzZQoJCQkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCQkJCQkvVHJhY2tpbmcgMjAKCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCS9DaGFyYWN0ZXJSb3RhdGlvbiAwLjAKCQkJCQkJCQkvQXV0b0tlcm4gMQoJCQkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkJCQkJL0ZvbnRPVFBvc2l0aW9uIDAKCQkJCQkJCQkvU3RyaWtldGhyb3VnaFBvc2l0aW9uIDAKCQkJCQkJCQkvVW5kZXJsaW5lUG9zaXRpb24gMAoJCQkJCQkJCS9VbmRlcmxpbmVPZmZzZXQgMC4wCgkJCQkJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkJCQkJL0Rpc2NyZXRpb25hcnlMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvQ29udGV4dHVhbExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9BbHRlcm5hdGVMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvT2xkU3R5bGUgZmFsc2UKCQkJCQkJCQkvRnJhY3Rpb25zIGZhbHNlCgkJCQkJCQkJL09yZGluYWxzIGZhbHNlCgkJCQkJCQkJL1N3YXNoIGZhbHNlCgkJCQkJCQkJL1RpdGxpbmcgZmFsc2UKCQkJCQkJCQkvQ29ubmVjdGlvbkZvcm1zIGZhbHNlCgkJCQkJCQkJL1N0eWxpc3RpY0FsdGVybmF0ZXMgZmFsc2UKCQkJCQkJCQkvT3JuYW1lbnRzIGZhbHNlCgkJCQkJCQkJL0ZpZ3VyZVN0eWxlIDAKCQkJCQkJCQkvUHJvcG9ydGlvbmFsTWV0cmljcyBmYWxzZQoJCQkJCQkJCS9LYW5hIGZhbHNlCgkJCQkJCQkJL0l0YWxpY3MgZmFsc2UKCQkJCQkJCQkvUnVieSBmYWxzZQoJCQkJCQkJCS9CYXNlbGluZURpcmVjdGlvbiAxCgkJCQkJCQkJL1RzdW1lIDAuMAoJCQkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCQkJL0xhbmd1YWdlIDAKCQkJCQkJCQkvSmFwYW5lc2VBbHRlcm5hdGVGZWF0dXJlIDAKCQkJCQkJCQkvRW5hYmxlV2FyaUNodSBmYWxzZQoJCQkJCQkJCS9XYXJpQ2h1TGluZUNvdW50IDIKCQkJCQkJCQkvV2FyaUNodUxpbmVHYXAgMAoJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZUFtb3VudAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZVNjYWxlIDAuNQoJCQkJCQkJCT4+CgkJCQkJCQkJL1dhcmlDaHVXaWRvd0Ftb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVPcnBoYW5BbW91bnQgMgoJCQkJCQkJCS9XYXJpQ2h1SnVzdGlmaWNhdGlvbiA3CgkJCQkJCQkJL1RDWVVwRG93bkFkanVzdG1lbnQgMAoJCQkJCQkJCS9UQ1lMZWZ0UmlnaHRBZGp1c3RtZW50IDAKCQkJCQkJCQkvTGVmdEFraSAtMS4wCgkJCQkJCQkJL1JpZ2h0QWtpIC0xLjAKCQkJCQkJCQkvSmlEb3JpIDAKCQkJCQkJCQkvTm9CcmVhayBmYWxzZQoJCQkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCS9CbGVuZAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZUJsZW5kZXIKCQkJCQkJCQk+PgoJCQkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCQkJL0ZpbGxPdmVyUHJpbnQgZmFsc2UKCQkJCQkJCQkvU3Ryb2tlT3ZlclByaW50IGZhbHNlCgkJCQkJCQkJL0xpbmVDYXAgMAoJCQkJCQkJCS9MaW5lSm9pbiAwCgkJCQkJCQkJL0xpbmVXaWR0aCAwLjA0MTY3CgkJCQkJCQkJL01pdGVyTGltaXQgMC4wNDE2NwoJCQkJCQkJCS9MaW5lRGFzaE9mZnNldCAwLjAKCQkJCQkJCQkvTGluZURhc2hBcnJheSBbIF0KCQkJCQkJCQkvVHlwZTFFbmNvZGluZ05hbWVzIFsgXQoJCQkJCQkJPj4KCQkJCQkJPj4KCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0tlcm5SdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0FsdGVybmF0ZUdseXBoUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdG9yeVNoZWV0CgkJCTw8CgkJCQkvQW50aUFsaWFzIDQKCQkJCS9Vc2VGcmFjdGlvbmFsR2x5cGhXaWR0aHMgdHJ1ZQoJCQk+PgoJCT4+CgkJL1ZpZXcKCQk8PAoJCQkvRnJhbWVzIFsKCQkJPDwKCQkJCS9SZXNvdXJjZSAzMQoJCQk+PgoJCQldCgkJCS9SZW5kZXJlZERhdGEKCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL0xpbmVDb3VudCAxCgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdHJpa2VzIFsKCQkJPDwKCQkJCS9TdHJlYW1UYWcgL1BhdGhTZWxlY3RHcm91cENoYXJhY3RlcgoJCQkJL1RyYW5zZm9ybQoJCQkJPDwKCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkvQ2hpbGRQcm9jZXNzaW9uIDAKCQkJCS9DaGlsZHJlbiBbCgkJCQk8PAoJCQkJCS9TdHJlYW1UYWcgL0ZyYW1lU3RyaWtlCgkJCQkJL0ZyYW1lIDMxCgkJCQkJL1RyYW5zZm9ybQoJCQkJCTw8CgkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQk+PgoJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCS9DaGlsZFByb2Nlc3Npb24gMgoJCQkJCS9DaGlsZHJlbiBbCgkJCQkJPDwKCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCS9Sb3dDb2xJbmRleCAwCgkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJPDwKCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJPj4KCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQk8PAoJCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCQkvUm93Q29sSW5kZXggMAoJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJPDwKCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCQk+PgoJCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDIKCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQk8PAoJCQkJCQkJCS9TdHJlYW1UYWcgL0xpbmVTdHJpa2UKCQkJCQkJCQkvQmFzZWxpbmUgMC4wCgkJCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJCQkvRU1IZWlnaHQgMjAuNzczMzEKCQkJCQkJCQkvREhlaWdodCAxNC44MzE5MgoJCQkJCQkJCS9TZWxlY3Rpb25Bc2NlbnQgLTE3LjgwMjYxCgkJCQkJCQkJL1NlbGVjdGlvbkRlc2NlbnQgMTMuMzk0MzMKCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJPDwKCQkJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQkJCT4+CgkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMC4wIDQuNTA3NzEgXQoJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2VnbWVudAoJCQkJCQkJCQkvTWFwcGluZwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0NoYXJhY3RlckNvdW50IDQKCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpcnN0Q2hhcmFjdGVySW5kZXhJblNlZ21lbnQgMAoJCQkJCQkJCQkvVW5kZXJsaW5lSW52YWxpZGF0aW9uIFsgLTI0LjgzNDEzIDguODg2NjIgMjUuMjQ5NiA4Ljg4NjYyIF0KCQkJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL09yaWdpbiBbIC0yNC44MzQxMyAwLjAgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSAzMDAyNC44MzM5OCA0LjUwNzcxIF0KCQkJCQkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAxCgkJCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvU3RyZWFtVGFnIC9HbHlwaFN0cmlrZQoJCQkJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDguODg2NjIgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCS9Cb3VuZHMgWyAwLjAgLTE3LjgwMjYxIDUwLjA4MzcyIDQuNTA3NzEgXQoJCQkJCQkJCQkJL0dseXBocyBbIDU3IDQwIDYyIDMgXQoJCQkJCQkJCQkJL0dseXBoQWRqdXN0bWVudHMKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL0RhdGEgWwoJCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJCS9CYWNrRml4ZWQgMC40MTU0NwoJCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkJXQoJCQkJCQkJCQkJCS9SdW5MZW5ndGhzIFsgNCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJL1JlbmRlcmVkQm91bmRzIFsgLTI0LjgzNDEzIC04LjkxNTk5IDI1LjI0OTYgMTMuMzk0MzMgXQoJCQkJCQkJCQkJL1Zpc3VhbEJvdW5kcyBbIC0yNC44MzQxMyAtOC45MTU5OSAyNS4yNDk2IDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9JbnZhbGlkYXRpb24gWyAtMjQuODM0MTMgLTguOTE1OTkgMzYuMzYzMDYgMTMuMzk0MzMgXQoJCQkJCQkJCQkJL1NoYWRvd1N0eWxlc1J1bgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvRGF0YSBbCgkJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkJL0luZGV4IDAKCQkJCQkJCQkJCQkJL0ZvbnQgMAoJCQkJCQkJCQkJCQkvT3JpZW50YXRpb24gMAoJCQkJCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCQkJCQkvS2VyblR5cGUgMQoJCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkJXQoJCQkJCQkJCQkJCS9SdW5MZW5ndGhzIFsgNCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQldCgkJCQkJCQkJCS9Bbm5vdGF0aW9uCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvV2lkdGggMC4wCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJXQoJCQkJCQk+PgoJCQkJCQldCgkJCQkJPj4KCQkJCQldCgkJCQk+PgoJCQkJXQoJCQk+PgoJCQldCgkJPj4KCQkvT3B0aWNhbEFsaWdubWVudCBmYWxzZQoJPj4KCTw8CgkJL01vZGVsCgkJPDwKCQkJL1RleHQgKP7/AE0AUABHAA0pCgkJCS9QYXJhZ3JhcGhSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1BhcmFncmFwaFNoZWV0CgkJCQkJCTw8CgkJCQkJCQkvTmFtZSAo/v8pCgkJCQkJCQkvRmVhdHVyZXMKCQkJCQkJCTw8CgkJCQkJCQkJL0p1c3RpZmljYXRpb24gMgoJCQkJCQkJCS9GaXJzdExpbmVJbmRlbnQgMC4wCgkJCQkJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJCQkJCS9Ecm9wQ2FwcyAxCgkJCQkJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgOAoJCQkJCQkJCS9QcmVIeXBoZW4gMwoJCQkJCQkJCS9Qb3N0SHlwaGVuIDMKCQkJCQkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDIKCQkJCQkJCQkvWm9uZSAzNi4wCgkJCQkJCQkJL0h5cGhlbmF0ZUNhcGl0YWxpemVkIHRydWUKCQkJCQkJCQkvSHlwaGVuYXRpb25QcmVmZXJlbmNlIDAuNQoJCQkJCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCQkJCQkvU2luZ2xlV29yZEp1c3RpZmljYXRpb24gNgoJCQkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCQkJL0F1dG9UQ1kgMQoJCQkJCQkJCS9LZWVwVG9nZXRoZXIgdHJ1ZQoJCQkJCQkJCS9CdXJhc2FnYXJpVHlwZSAwCgkJCQkJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkJCQkJL0t1cmlrYWVzaGlNb2ppU2hvcmkgZmFsc2UKCQkJCQkJCQkvS2luc29rdSAvbmlsCgkJCQkJCQkJL01vamlLdW1pVGFibGUgL25pbAoJCQkJCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQkJCQkJCS9UYWJTdG9wcwoJCQkJCQkJCTw8CgkJCQkJCQkJPj4KCQkJCQkJCQkvRGVmYXVsdFRhYldpZHRoIDM2LjAKCQkJCQkJCQkvRGVmYXVsdFN0eWxlCgkJCQkJCQkJPDwKCQkJCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQk+PgoJCQkJCQkJPj4KCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQk+PgoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3R5bGVSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1N0eWxlU2hlZXQKCQkJCQkJPDwKCQkJCQkJCS9OYW1lICj+/ykKCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQkJL0ZlYXR1cmVzCgkJCQkJCQk8PAoJCQkJCQkJCS9Gb250IDAKCQkJCQkJCQkvRm9udFNpemUgMjAuNzczMzEKCQkJCQkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkJCS9BdXRvTGVhZGluZyBmYWxzZQoJCQkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCQkJCQkvVHJhY2tpbmcgMjAKCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCS9DaGFyYWN0ZXJSb3RhdGlvbiAwLjAKCQkJCQkJCQkvQXV0b0tlcm4gMQoJCQkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkJCQkJL0ZvbnRPVFBvc2l0aW9uIDAKCQkJCQkJCQkvU3RyaWtldGhyb3VnaFBvc2l0aW9uIDAKCQkJCQkJCQkvVW5kZXJsaW5lUG9zaXRpb24gMAoJCQkJCQkJCS9VbmRlcmxpbmVPZmZzZXQgMC4wCgkJCQkJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkJCQkJL0Rpc2NyZXRpb25hcnlMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvQ29udGV4dHVhbExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9BbHRlcm5hdGVMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvT2xkU3R5bGUgZmFsc2UKCQkJCQkJCQkvRnJhY3Rpb25zIGZhbHNlCgkJCQkJCQkJL09yZGluYWxzIGZhbHNlCgkJCQkJCQkJL1N3YXNoIGZhbHNlCgkJCQkJCQkJL1RpdGxpbmcgZmFsc2UKCQkJCQkJCQkvQ29ubmVjdGlvbkZvcm1zIGZhbHNlCgkJCQkJCQkJL1N0eWxpc3RpY0FsdGVybmF0ZXMgZmFsc2UKCQkJCQkJCQkvT3JuYW1lbnRzIGZhbHNlCgkJCQkJCQkJL0ZpZ3VyZVN0eWxlIDAKCQkJCQkJCQkvUHJvcG9ydGlvbmFsTWV0cmljcyBmYWxzZQoJCQkJCQkJCS9LYW5hIGZhbHNlCgkJCQkJCQkJL0l0YWxpY3MgZmFsc2UKCQkJCQkJCQkvUnVieSBmYWxzZQoJCQkJCQkJCS9CYXNlbGluZURpcmVjdGlvbiAxCgkJCQkJCQkJL1RzdW1lIDAuMAoJCQkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCQkJL0xhbmd1YWdlIDAKCQkJCQkJCQkvSmFwYW5lc2VBbHRlcm5hdGVGZWF0dXJlIDAKCQkJCQkJCQkvRW5hYmxlV2FyaUNodSBmYWxzZQoJCQkJCQkJCS9XYXJpQ2h1TGluZUNvdW50IDIKCQkJCQkJCQkvV2FyaUNodUxpbmVHYXAgMAoJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZUFtb3VudAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZVNjYWxlIDAuNQoJCQkJCQkJCT4+CgkJCQkJCQkJL1dhcmlDaHVXaWRvd0Ftb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVPcnBoYW5BbW91bnQgMgoJCQkJCQkJCS9XYXJpQ2h1SnVzdGlmaWNhdGlvbiA3CgkJCQkJCQkJL1RDWVVwRG93bkFkanVzdG1lbnQgMAoJCQkJCQkJCS9UQ1lMZWZ0UmlnaHRBZGp1c3RtZW50IDAKCQkJCQkJCQkvTGVmdEFraSAtMS4wCgkJCQkJCQkJL1JpZ2h0QWtpIC0xLjAKCQkJCQkJCQkvSmlEb3JpIDAKCQkJCQkJCQkvTm9CcmVhayBmYWxzZQoJCQkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCS9CbGVuZAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZUJsZW5kZXIKCQkJCQkJCQk+PgoJCQkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCQkJL0ZpbGxPdmVyUHJpbnQgZmFsc2UKCQkJCQkJCQkvU3Ryb2tlT3ZlclByaW50IGZhbHNlCgkJCQkJCQkJL0xpbmVDYXAgMAoJCQkJCQkJCS9MaW5lSm9pbiAwCgkJCQkJCQkJL0xpbmVXaWR0aCAwLjA0MTY3CgkJCQkJCQkJL01pdGVyTGltaXQgMC4wNDE2NwoJCQkJCQkJCS9MaW5lRGFzaE9mZnNldCAwLjAKCQkJCQkJCQkvTGluZURhc2hBcnJheSBbIF0KCQkJCQkJCQkvVHlwZTFFbmNvZGluZ05hbWVzIFsgXQoJCQkJCQkJPj4KCQkJCQkJPj4KCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0tlcm5SdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0FsdGVybmF0ZUdseXBoUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdG9yeVNoZWV0CgkJCTw8CgkJCQkvQW50aUFsaWFzIDQKCQkJCS9Vc2VGcmFjdGlvbmFsR2x5cGhXaWR0aHMgdHJ1ZQoJCQk+PgoJCT4+CgkJL1ZpZXcKCQk8PAoJCQkvRnJhbWVzIFsKCQkJPDwKCQkJCS9SZXNvdXJjZSAzMgoJCQk+PgoJCQldCgkJCS9SZW5kZXJlZERhdGEKCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL0xpbmVDb3VudCAxCgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdHJpa2VzIFsKCQkJPDwKCQkJCS9TdHJlYW1UYWcgL1BhdGhTZWxlY3RHcm91cENoYXJhY3RlcgoJCQkJL1RyYW5zZm9ybQoJCQkJPDwKCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkvQ2hpbGRQcm9jZXNzaW9uIDAKCQkJCS9DaGlsZHJlbiBbCgkJCQk8PAoJCQkJCS9TdHJlYW1UYWcgL0ZyYW1lU3RyaWtlCgkJCQkJL0ZyYW1lIDMyCgkJCQkJL1RyYW5zZm9ybQoJCQkJCTw8CgkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQk+PgoJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCS9DaGlsZFByb2Nlc3Npb24gMgoJCQkJCS9DaGlsZHJlbiBbCgkJCQkJPDwKCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCS9Sb3dDb2xJbmRleCAwCgkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJPDwKCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJPj4KCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQk8PAoJCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCQkvUm93Q29sSW5kZXggMAoJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJPDwKCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCQk+PgoJCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDIKCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQk8PAoJCQkJCQkJCS9TdHJlYW1UYWcgL0xpbmVTdHJpa2UKCQkJCQkJCQkvQmFzZWxpbmUgMC4wCgkJCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJCQkvRU1IZWlnaHQgMjAuNzczMzEKCQkJCQkJCQkvREhlaWdodCAxNC44MzE5MgoJCQkJCQkJCS9TZWxlY3Rpb25Bc2NlbnQgLTE3LjgwMjYxCgkJCQkJCQkJL1NlbGVjdGlvbkRlc2NlbnQgMTMuMzk0MzMKCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJPDwKCQkJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQkJCT4+CgkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMC4wIDQuNTA3NzEgXQoJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2VnbWVudAoJCQkJCQkJCQkvTWFwcGluZwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0NoYXJhY3RlckNvdW50IDQKCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpcnN0Q2hhcmFjdGVySW5kZXhJblNlZ21lbnQgMAoJCQkJCQkJCQkvVW5kZXJsaW5lSW52YWxpZGF0aW9uIFsgLTI0LjY0NzI3IDguODg2NjIgMjUuMDYyNzQgOC44ODY2MiBdCgkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9PcmlnaW4gWyAtMjQuNjQ3MjcgMC4wIF0KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMzAwMjQuNjQ2NDggNC41MDc3MSBdCgkJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvR2x5cGhTdHJpa2UKCQkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL09yaWdpbiBbIDAuMCA4Ljg4NjYyIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSA0OS43MTAwMSA0LjUwNzcxIF0KCQkJCQkJCQkJCS9HbHlwaHMgWyA1MiA1NSA0NiAzIF0KCQkJCQkJCQkJCS9HbHlwaEFkanVzdG1lbnRzCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9EYXRhIFsKCQkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCQkvQmFja0ZpeGVkIDAuNDE1NDcKCQkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJCV0KCQkJCQkJCQkJCQkvUnVuTGVuZ3RocyBbIDQgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCS9SZW5kZXJlZEJvdW5kcyBbIC0yNC42NDcyNyAtOC45MTU5OSAyNS4wNjI3NCAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvVmlzdWFsQm91bmRzIFsgLTI0LjY0NzI3IC04LjkxNTk5IDI1LjA2Mjc0IDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9JbnZhbGlkYXRpb24gWyAtMjQuNjQ3MjcgLTguOTE1OTkgMzYuMTc2MiAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvU2hhZG93U3R5bGVzUnVuCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9EYXRhIFsKCQkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCQkvSW5kZXggMAoJCQkJCQkJCQkJCQkvRm9udCAwCgkJCQkJCQkJCQkJCS9PcmllbnRhdGlvbiAwCgkJCQkJCQkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCQkJCQkJCS9LZXJuVHlwZSAxCgkJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCQldCgkJCQkJCQkJCQkJL1J1bkxlbmd0aHMgWyA0IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJCV0KCQkJCQkJCQkJL0Fubm90YXRpb24KCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9XaWR0aCAwLjAKCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQldCgkJCQkJCT4+CgkJCQkJCV0KCQkJCQk+PgoJCQkJCV0KCQkJCT4+CgkJCQldCgkJCT4+CgkJCV0KCQk+PgoJCS9PcHRpY2FsQWxpZ25tZW50IGZhbHNlCgk+PgoJPDwKCQkvTW9kZWwKCQk8PAoJCQkvVGV4dCAo/v8ARABJAFYAWAANKQoJCQkvUGFyYWdyYXBoUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJCS9QYXJhZ3JhcGhTaGVldAoJCQkJCQk8PAoJCQkJCQkJL05hbWUgKP7/KQoJCQkJCQkJL0ZlYXR1cmVzCgkJCQkJCQk8PAoJCQkJCQkJCS9KdXN0aWZpY2F0aW9uIDIKCQkJCQkJCQkvRmlyc3RMaW5lSW5kZW50IDAuMAoJCQkJCQkJCS9TdGFydEluZGVudCAwLjAKCQkJCQkJCQkvRW5kSW5kZW50IDAuMAoJCQkJCQkJCS9TcGFjZUJlZm9yZSAwLjAKCQkJCQkJCQkvU3BhY2VBZnRlciAwLjAKCQkJCQkJCQkvRHJvcENhcHMgMQoJCQkJCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCQkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCQkJCQkvSHlwaGVuYXRlZFdvcmRTaXplIDgKCQkJCQkJCQkvUHJlSHlwaGVuIDMKCQkJCQkJCQkvUG9zdEh5cGhlbiAzCgkJCQkJCQkJL0NvbnNlY3V0aXZlSHlwaGVucyAyCgkJCQkJCQkJL1pvbmUgMzYuMAoJCQkJCQkJCS9IeXBoZW5hdGVDYXBpdGFsaXplZCB0cnVlCgkJCQkJCQkJL0h5cGhlbmF0aW9uUHJlZmVyZW5jZSAwLjUKCQkJCQkJCQkvV29yZFNwYWNpbmcgWyAwLjggMS4wIDEuMzMgXQoJCQkJCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkJCQkJL1NpbmdsZVdvcmRKdXN0aWZpY2F0aW9uIDYKCQkJCQkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJCQkJCS9BdXRvVENZIDEKCQkJCQkJCQkvS2VlcFRvZ2V0aGVyIHRydWUKCQkJCQkJCQkvQnVyYXNhZ2FyaVR5cGUgMAoJCQkJCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJCQkJCS9LdXJpa2Flc2hpTW9qaVNob3JpIGZhbHNlCgkJCQkJCQkJL0tpbnNva3UgL25pbAoJCQkJCQkJCS9Nb2ppS3VtaVRhYmxlIC9uaWwKCQkJCQkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJCQkJCQkvVGFiU3RvcHMKCQkJCQkJCQk8PAoJCQkJCQkJCT4+CgkJCQkJCQkJL0RlZmF1bHRUYWJXaWR0aCAzNi4wCgkJCQkJCQkJL0RlZmF1bHRTdHlsZQoJCQkJCQkJCTw8CgkJCQkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkJCQkJPj4KCQkJCQkJCT4+CgkJCQkJCQkvUGFyZW50IDAKCQkJCQkJPj4KCQkJCQk+PgoJCQkJCS9MZW5ndGggNQoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL1N0eWxlUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJCS9TdHlsZVNoZWV0CgkJCQkJCTw8CgkJCQkJCQkvTmFtZSAo/v8pCgkJCQkJCQkvUGFyZW50IDAKCQkJCQkJCS9GZWF0dXJlcwoJCQkJCQkJPDwKCQkJCQkJCQkvRm9udCAwCgkJCQkJCQkJL0ZvbnRTaXplIDIwLjc3MzMxCgkJCQkJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCQkJCQkvQXV0b0xlYWRpbmcgZmFsc2UKCQkJCQkJCQkvTGVhZGluZyAzOS44NjE5OAoJCQkJCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkJCQkJL1RyYWNraW5nIDIwCgkJCQkJCQkJL0Jhc2VsaW5lU2hpZnQgLTguODg2NjIKCQkJCQkJCQkvQ2hhcmFjdGVyUm90YXRpb24gMC4wCgkJCQkJCQkJL0F1dG9LZXJuIDEKCQkJCQkJCQkvRm9udENhcHMgMAoJCQkJCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJCQkJCS9Gb250T1RQb3NpdGlvbiAwCgkJCQkJCQkJL1N0cmlrZXRocm91Z2hQb3NpdGlvbiAwCgkJCQkJCQkJL1VuZGVybGluZVBvc2l0aW9uIDAKCQkJCQkJCQkvVW5kZXJsaW5lT2Zmc2V0IDAuMAoJCQkJCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJCQkJCS9EaXNjcmV0aW9uYXJ5TGlnYXR1cmVzIGZhbHNlCgkJCQkJCQkJL0NvbnRleHR1YWxMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvQWx0ZXJuYXRlTGlnYXR1cmVzIGZhbHNlCgkJCQkJCQkJL09sZFN0eWxlIGZhbHNlCgkJCQkJCQkJL0ZyYWN0aW9ucyBmYWxzZQoJCQkJCQkJCS9PcmRpbmFscyBmYWxzZQoJCQkJCQkJCS9Td2FzaCBmYWxzZQoJCQkJCQkJCS9UaXRsaW5nIGZhbHNlCgkJCQkJCQkJL0Nvbm5lY3Rpb25Gb3JtcyBmYWxzZQoJCQkJCQkJCS9TdHlsaXN0aWNBbHRlcm5hdGVzIGZhbHNlCgkJCQkJCQkJL09ybmFtZW50cyBmYWxzZQoJCQkJCQkJCS9GaWd1cmVTdHlsZSAwCgkJCQkJCQkJL1Byb3BvcnRpb25hbE1ldHJpY3MgZmFsc2UKCQkJCQkJCQkvS2FuYSBmYWxzZQoJCQkJCQkJCS9JdGFsaWNzIGZhbHNlCgkJCQkJCQkJL1J1YnkgZmFsc2UKCQkJCQkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMQoJCQkJCQkJCS9Uc3VtZSAwLjAKCQkJCQkJCQkvU3R5bGVSdW5BbGlnbm1lbnQgMgoJCQkJCQkJCS9MYW5ndWFnZSAwCgkJCQkJCQkJL0phcGFuZXNlQWx0ZXJuYXRlRmVhdHVyZSAwCgkJCQkJCQkJL0VuYWJsZVdhcmlDaHUgZmFsc2UKCQkJCQkJCQkvV2FyaUNodUxpbmVDb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVMaW5lR2FwIDAKCQkJCQkJCQkvV2FyaUNodVN1YkxpbmVBbW91bnQKCQkJCQkJCQk8PAoJCQkJCQkJCQkvV2FyaUNodVN1YkxpbmVTY2FsZSAwLjUKCQkJCQkJCQk+PgoJCQkJCQkJCS9XYXJpQ2h1V2lkb3dBbW91bnQgMgoJCQkJCQkJCS9XYXJpQ2h1T3JwaGFuQW1vdW50IDIKCQkJCQkJCQkvV2FyaUNodUp1c3RpZmljYXRpb24gNwoJCQkJCQkJCS9UQ1lVcERvd25BZGp1c3RtZW50IDAKCQkJCQkJCQkvVENZTGVmdFJpZ2h0QWRqdXN0bWVudCAwCgkJCQkJCQkJL0xlZnRBa2kgLTEuMAoJCQkJCQkJCS9SaWdodEFraSAtMS4wCgkJCQkJCQkJL0ppRG9yaSAwCgkJCQkJCQkJL05vQnJlYWsgZmFsc2UKCQkJCQkJCQkvRmlsbENvbG9yCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCS9TdHJva2VDb2xvcgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQkvQmxlbmQKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVCbGVuZGVyCgkJCQkJCQkJPj4KCQkJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkJCQkJL0ZpbGxGaXJzdCBmYWxzZQoJCQkJCQkJCS9GaWxsT3ZlclByaW50IGZhbHNlCgkJCQkJCQkJL1N0cm9rZU92ZXJQcmludCBmYWxzZQoJCQkJCQkJCS9MaW5lQ2FwIDAKCQkJCQkJCQkvTGluZUpvaW4gMAoJCQkJCQkJCS9MaW5lV2lkdGggMC4wNDE2NwoJCQkJCQkJCS9NaXRlckxpbWl0IDAuMDQxNjcKCQkJCQkJCQkvTGluZURhc2hPZmZzZXQgMC4wCgkJCQkJCQkJL0xpbmVEYXNoQXJyYXkgWyBdCgkJCQkJCQkJL1R5cGUxRW5jb2RpbmdOYW1lcyBbIF0KCQkJCQkJCT4+CgkJCQkJCT4+CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDUKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9LZXJuUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDUKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9BbHRlcm5hdGVHbHlwaFJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCT4+CgkJCQkJL0xlbmd0aCA1CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3RvcnlTaGVldAoJCQk8PAoJCQkJL0FudGlBbGlhcyA0CgkJCQkvVXNlRnJhY3Rpb25hbEdseXBoV2lkdGhzIHRydWUKCQkJPj4KCQk+PgoJCS9WaWV3CgkJPDwKCQkJL0ZyYW1lcyBbCgkJCTw8CgkJCQkvUmVzb3VyY2UgMzMKCQkJPj4KCQkJXQoJCQkvUmVuZGVyZWREYXRhCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJCS9MaW5lQ291bnQgMQoJCQkJCT4+CgkJCQkJL0xlbmd0aCA1CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3RyaWtlcyBbCgkJCTw8CgkJCQkvU3RyZWFtVGFnIC9QYXRoU2VsZWN0R3JvdXBDaGFyYWN0ZXIKCQkJCS9UcmFuc2Zvcm0KCQkJCTw8CgkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJL0NoaWxkUHJvY2Vzc2lvbiAwCgkJCQkvQ2hpbGRyZW4gWwoJCQkJPDwKCQkJCQkvU3RyZWFtVGFnIC9GcmFtZVN0cmlrZQoJCQkJCS9GcmFtZSAzMwoJCQkJCS9UcmFuc2Zvcm0KCQkJCQk8PAoJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJPj4KCQkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDIKCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCTw8CgkJCQkJCS9TdHJlYW1UYWcgL1Jvd0NvbFN0cmlrZQoJCQkJCQkvUm93Q29sSW5kZXggMAoJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCTw8CgkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCT4+CgkJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDEKCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJPDwKCQkJCQkJCS9TdHJlYW1UYWcgL1Jvd0NvbFN0cmlrZQoJCQkJCQkJL1Jvd0NvbEluZGV4IDAKCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCTw8CgkJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQkJPj4KCQkJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAyCgkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJPDwKCQkJCQkJCQkvU3RyZWFtVGFnIC9MaW5lU3RyaWtlCgkJCQkJCQkJL0Jhc2VsaW5lIDAuMAoJCQkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCQkJL0VNSGVpZ2h0IDIwLjc3MzMxCgkJCQkJCQkJL0RIZWlnaHQgMTQuODMxOTIKCQkJCQkJCQkvU2VsZWN0aW9uQXNjZW50IC0xNy44MDI2MQoJCQkJCQkJCS9TZWxlY3Rpb25EZXNjZW50IDEzLjM5NDMzCgkJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJCTw8CgkJCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJCQk+PgoJCQkJCQkJCS9Cb3VuZHMgWyAwLjAgLTE3LjgwMjYxIDAuMCA0LjUwNzcxIF0KCQkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDEKCQkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NlZ21lbnQKCQkJCQkJCQkJL01hcHBpbmcKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9DaGFyYWN0ZXJDb3VudCA1CgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9GaXJzdENoYXJhY3RlckluZGV4SW5TZWdtZW50IDAKCQkJCQkJCQkJL1VuZGVybGluZUludmFsaWRhdGlvbiBbIC0yNC44NTUwMSA4Ljg4NjYyIDI1LjI3MDQ4IDguODg2NjIgXQoJCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvT3JpZ2luIFsgLTI0Ljg1NTAxIDAuMCBdCgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9Cb3VuZHMgWyAwLjAgLTE3LjgwMjYxIDMwMDI0Ljg1NTQ3IDQuNTA3NzEgXQoJCQkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDEKCQkJCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL0dseXBoU3RyaWtlCgkJCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9PcmlnaW4gWyAwLjAgOC44ODY2MiBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgNTAuMTI1NDkgNC41MDc3MSBdCgkJCQkJCQkJCQkvR2x5cGhzIFsgNDMgNDggNjEgNjMgMyBdCgkJCQkJCQkJCQkvR2x5cGhBZGp1c3RtZW50cwoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvRGF0YSBbCgkJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkJL0JhY2tGaXhlZCAwLjQxNTQ3CgkJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCQldCgkJCQkJCQkJCQkJL1J1bkxlbmd0aHMgWyA1IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkvUmVuZGVyZWRCb3VuZHMgWyAtMjQuODU1MDEgLTguOTE1OTkgMjUuMjcwNDggMTMuMzk0MzMgXQoJCQkJCQkJCQkJL1Zpc3VhbEJvdW5kcyBbIC0yNC44NTUwMSAtOC45MTU5OSAyNS4yNzA0OCAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvSW52YWxpZGF0aW9uIFsgLTI0Ljg1NTAxIC04LjkxNTk5IDM2LjM4Mzk0IDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9TaGFkb3dTdHlsZXNSdW4KCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL0RhdGEgWwoJCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJCS9JbmRleCAwCgkJCQkJCQkJCQkJCS9Gb250IDAKCQkJCQkJCQkJCQkJL09yaWVudGF0aW9uIDAKCQkJCQkJCQkJCQkJL0Jhc2VsaW5lU2hpZnQgLTguODg2NjIKCQkJCQkJCQkJCQkJL0tlcm5UeXBlIDEKCQkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJCV0KCQkJCQkJCQkJCQkvUnVuTGVuZ3RocyBbIDUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJXQoJCQkJCQkJCQkvQW5ub3RhdGlvbgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1dpZHRoIDAuMAoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCV0KCQkJCQkJPj4KCQkJCQkJXQoJCQkJCT4+CgkJCQkJXQoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJXQoJCT4+CgkJL09wdGljYWxBbGlnbm1lbnQgZmFsc2UKCT4+Cgk8PAoJCS9Nb2RlbAoJCTw8CgkJCS9UZXh0ICj+/wBBAFYASQANKQoJCQkvUGFyYWdyYXBoUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJCS9QYXJhZ3JhcGhTaGVldAoJCQkJCQk8PAoJCQkJCQkJL05hbWUgKP7/KQoJCQkJCQkJL0ZlYXR1cmVzCgkJCQkJCQk8PAoJCQkJCQkJCS9KdXN0aWZpY2F0aW9uIDIKCQkJCQkJCQkvRmlyc3RMaW5lSW5kZW50IDAuMAoJCQkJCQkJCS9TdGFydEluZGVudCAwLjAKCQkJCQkJCQkvRW5kSW5kZW50IDAuMAoJCQkJCQkJCS9TcGFjZUJlZm9yZSAwLjAKCQkJCQkJCQkvU3BhY2VBZnRlciAwLjAKCQkJCQkJCQkvRHJvcENhcHMgMQoJCQkJCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCQkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCQkJCQkvSHlwaGVuYXRlZFdvcmRTaXplIDgKCQkJCQkJCQkvUHJlSHlwaGVuIDMKCQkJCQkJCQkvUG9zdEh5cGhlbiAzCgkJCQkJCQkJL0NvbnNlY3V0aXZlSHlwaGVucyAyCgkJCQkJCQkJL1pvbmUgMzYuMAoJCQkJCQkJCS9IeXBoZW5hdGVDYXBpdGFsaXplZCB0cnVlCgkJCQkJCQkJL0h5cGhlbmF0aW9uUHJlZmVyZW5jZSAwLjUKCQkJCQkJCQkvV29yZFNwYWNpbmcgWyAwLjggMS4wIDEuMzMgXQoJCQkJCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkJCQkJL1NpbmdsZVdvcmRKdXN0aWZpY2F0aW9uIDYKCQkJCQkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJCQkJCS9BdXRvVENZIDEKCQkJCQkJCQkvS2VlcFRvZ2V0aGVyIHRydWUKCQkJCQkJCQkvQnVyYXNhZ2FyaVR5cGUgMAoJCQkJCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJCQkJCS9LdXJpa2Flc2hpTW9qaVNob3JpIGZhbHNlCgkJCQkJCQkJL0tpbnNva3UgL25pbAoJCQkJCQkJCS9Nb2ppS3VtaVRhYmxlIC9uaWwKCQkJCQkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJCQkJCQkvVGFiU3RvcHMKCQkJCQkJCQk8PAoJCQkJCQkJCT4+CgkJCQkJCQkJL0RlZmF1bHRUYWJXaWR0aCAzNi4wCgkJCQkJCQkJL0RlZmF1bHRTdHlsZQoJCQkJCQkJCTw8CgkJCQkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkJCQkJPj4KCQkJCQkJCT4+CgkJCQkJCQkvUGFyZW50IDAKCQkJCQkJPj4KCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL1N0eWxlUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJCS9TdHlsZVNoZWV0CgkJCQkJCTw8CgkJCQkJCQkvTmFtZSAo/v8pCgkJCQkJCQkvUGFyZW50IDAKCQkJCQkJCS9GZWF0dXJlcwoJCQkJCQkJPDwKCQkJCQkJCQkvRm9udCAwCgkJCQkJCQkJL0ZvbnRTaXplIDIwLjc3MzMxCgkJCQkJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCQkJCQkvQXV0b0xlYWRpbmcgZmFsc2UKCQkJCQkJCQkvTGVhZGluZyAzOS44NjE5OAoJCQkJCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkJCQkJL1RyYWNraW5nIDIwCgkJCQkJCQkJL0Jhc2VsaW5lU2hpZnQgLTguODg2NjIKCQkJCQkJCQkvQ2hhcmFjdGVyUm90YXRpb24gMC4wCgkJCQkJCQkJL0F1dG9LZXJuIDEKCQkJCQkJCQkvRm9udENhcHMgMAoJCQkJCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJCQkJCS9Gb250T1RQb3NpdGlvbiAwCgkJCQkJCQkJL1N0cmlrZXRocm91Z2hQb3NpdGlvbiAwCgkJCQkJCQkJL1VuZGVybGluZVBvc2l0aW9uIDAKCQkJCQkJCQkvVW5kZXJsaW5lT2Zmc2V0IDAuMAoJCQkJCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJCQkJCS9EaXNjcmV0aW9uYXJ5TGlnYXR1cmVzIGZhbHNlCgkJCQkJCQkJL0NvbnRleHR1YWxMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvQWx0ZXJuYXRlTGlnYXR1cmVzIGZhbHNlCgkJCQkJCQkJL09sZFN0eWxlIGZhbHNlCgkJCQkJCQkJL0ZyYWN0aW9ucyBmYWxzZQoJCQkJCQkJCS9PcmRpbmFscyBmYWxzZQoJCQkJCQkJCS9Td2FzaCBmYWxzZQoJCQkJCQkJCS9UaXRsaW5nIGZhbHNlCgkJCQkJCQkJL0Nvbm5lY3Rpb25Gb3JtcyBmYWxzZQoJCQkJCQkJCS9TdHlsaXN0aWNBbHRlcm5hdGVzIGZhbHNlCgkJCQkJCQkJL09ybmFtZW50cyBmYWxzZQoJCQkJCQkJCS9GaWd1cmVTdHlsZSAwCgkJCQkJCQkJL1Byb3BvcnRpb25hbE1ldHJpY3MgZmFsc2UKCQkJCQkJCQkvS2FuYSBmYWxzZQoJCQkJCQkJCS9JdGFsaWNzIGZhbHNlCgkJCQkJCQkJL1J1YnkgZmFsc2UKCQkJCQkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMQoJCQkJCQkJCS9Uc3VtZSAwLjAKCQkJCQkJCQkvU3R5bGVSdW5BbGlnbm1lbnQgMgoJCQkJCQkJCS9MYW5ndWFnZSAwCgkJCQkJCQkJL0phcGFuZXNlQWx0ZXJuYXRlRmVhdHVyZSAwCgkJCQkJCQkJL0VuYWJsZVdhcmlDaHUgZmFsc2UKCQkJCQkJCQkvV2FyaUNodUxpbmVDb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVMaW5lR2FwIDAKCQkJCQkJCQkvV2FyaUNodVN1YkxpbmVBbW91bnQKCQkJCQkJCQk8PAoJCQkJCQkJCQkvV2FyaUNodVN1YkxpbmVTY2FsZSAwLjUKCQkJCQkJCQk+PgoJCQkJCQkJCS9XYXJpQ2h1V2lkb3dBbW91bnQgMgoJCQkJCQkJCS9XYXJpQ2h1T3JwaGFuQW1vdW50IDIKCQkJCQkJCQkvV2FyaUNodUp1c3RpZmljYXRpb24gNwoJCQkJCQkJCS9UQ1lVcERvd25BZGp1c3RtZW50IDAKCQkJCQkJCQkvVENZTGVmdFJpZ2h0QWRqdXN0bWVudCAwCgkJCQkJCQkJL0xlZnRBa2kgLTEuMAoJCQkJCQkJCS9SaWdodEFraSAtMS4wCgkJCQkJCQkJL0ppRG9yaSAwCgkJCQkJCQkJL05vQnJlYWsgZmFsc2UKCQkJCQkJCQkvRmlsbENvbG9yCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCS9TdHJva2VDb2xvcgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQkvQmxlbmQKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVCbGVuZGVyCgkJCQkJCQkJPj4KCQkJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkJCQkJL0ZpbGxGaXJzdCBmYWxzZQoJCQkJCQkJCS9GaWxsT3ZlclByaW50IGZhbHNlCgkJCQkJCQkJL1N0cm9rZU92ZXJQcmludCBmYWxzZQoJCQkJCQkJCS9MaW5lQ2FwIDAKCQkJCQkJCQkvTGluZUpvaW4gMAoJCQkJCQkJCS9MaW5lV2lkdGggMC4wNDE2NwoJCQkJCQkJCS9NaXRlckxpbWl0IDAuMDQxNjcKCQkJCQkJCQkvTGluZURhc2hPZmZzZXQgMC4wCgkJCQkJCQkJL0xpbmVEYXNoQXJyYXkgWyBdCgkJCQkJCQkJL1R5cGUxRW5jb2RpbmdOYW1lcyBbIF0KCQkJCQkJCT4+CgkJCQkJCT4+CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9LZXJuUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9BbHRlcm5hdGVHbHlwaFJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3RvcnlTaGVldAoJCQk8PAoJCQkJL0FudGlBbGlhcyA0CgkJCQkvVXNlRnJhY3Rpb25hbEdseXBoV2lkdGhzIHRydWUKCQkJPj4KCQk+PgoJCS9WaWV3CgkJPDwKCQkJL0ZyYW1lcyBbCgkJCTw8CgkJCQkvUmVzb3VyY2UgMzQKCQkJPj4KCQkJXQoJCQkvUmVuZGVyZWREYXRhCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJCS9MaW5lQ291bnQgMQoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3RyaWtlcyBbCgkJCTw8CgkJCQkvU3RyZWFtVGFnIC9QYXRoU2VsZWN0R3JvdXBDaGFyYWN0ZXIKCQkJCS9UcmFuc2Zvcm0KCQkJCTw8CgkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJL0NoaWxkUHJvY2Vzc2lvbiAwCgkJCQkvQ2hpbGRyZW4gWwoJCQkJPDwKCQkJCQkvU3RyZWFtVGFnIC9GcmFtZVN0cmlrZQoJCQkJCS9GcmFtZSAzNAoJCQkJCS9UcmFuc2Zvcm0KCQkJCQk8PAoJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJPj4KCQkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDIKCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCTw8CgkJCQkJCS9TdHJlYW1UYWcgL1Jvd0NvbFN0cmlrZQoJCQkJCQkvUm93Q29sSW5kZXggMAoJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCTw8CgkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCT4+CgkJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDEKCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJPDwKCQkJCQkJCS9TdHJlYW1UYWcgL1Jvd0NvbFN0cmlrZQoJCQkJCQkJL1Jvd0NvbEluZGV4IDAKCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCTw8CgkJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQkJPj4KCQkJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAyCgkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJPDwKCQkJCQkJCQkvU3RyZWFtVGFnIC9MaW5lU3RyaWtlCgkJCQkJCQkJL0Jhc2VsaW5lIDAuMAoJCQkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCQkJL0VNSGVpZ2h0IDIwLjc3MzMxCgkJCQkJCQkJL0RIZWlnaHQgMTQuODMxOTIKCQkJCQkJCQkvU2VsZWN0aW9uQXNjZW50IC0xNy44MDI2MQoJCQkJCQkJCS9TZWxlY3Rpb25EZXNjZW50IDEzLjM5NDMzCgkJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJCTw8CgkJCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJCQk+PgoJCQkJCQkJCS9Cb3VuZHMgWyAwLjAgLTE3LjgwMjYxIDAuMCA0LjUwNzcxIF0KCQkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDEKCQkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NlZ21lbnQKCQkJCQkJCQkJL01hcHBpbmcKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9DaGFyYWN0ZXJDb3VudCA0CgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9GaXJzdENoYXJhY3RlckluZGV4SW5TZWdtZW50IDAKCQkJCQkJCQkJL1VuZGVybGluZUludmFsaWRhdGlvbiBbIC0xNy4xMzc4MSA4Ljg4NjYyIDE3LjU1MzI4IDguODg2NjIgXQoJCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvT3JpZ2luIFsgLTE3LjEzNzgxIDAuMCBdCgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9Cb3VuZHMgWyAwLjAgLTE3LjgwMjYxIDMwMDE3LjEzODY3IDQuNTA3NzEgXQoJCQkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDEKCQkJCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL0dseXBoU3RyaWtlCgkJCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9PcmlnaW4gWyAwLjAgOC44ODY2MiBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMzQuNjkxMDkgNC41MDc3MSBdCgkJCQkJCQkJCQkvR2x5cGhzIFsgNDAgNjEgNDggMyBdCgkJCQkJCQkJCQkvR2x5cGhBZGp1c3RtZW50cwoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvRGF0YSBbCgkJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkJL0JhY2tGaXhlZCAwLjQxNTQ3CgkJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCQldCgkJCQkJCQkJCQkJL1J1bkxlbmd0aHMgWyA0IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkvUmVuZGVyZWRCb3VuZHMgWyAtMTcuMjYyMzggLTguOTE1OTkgMTcuNTUzMjggMTMuMzk0MzMgXQoJCQkJCQkJCQkJL1Zpc3VhbEJvdW5kcyBbIC0xNy4yNjIzOCAtOC45MTU5OSAxNy41NTMyOCAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvSW52YWxpZGF0aW9uIFsgLTE3LjI2MjM4IC04LjkxNTk5IDI4LjY2Njc0IDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9TaGFkb3dTdHlsZXNSdW4KCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL0RhdGEgWwoJCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJCS9JbmRleCAwCgkJCQkJCQkJCQkJCS9Gb250IDAKCQkJCQkJCQkJCQkJL09yaWVudGF0aW9uIDAKCQkJCQkJCQkJCQkJL0Jhc2VsaW5lU2hpZnQgLTguODg2NjIKCQkJCQkJCQkJCQkJL0tlcm5UeXBlIDEKCQkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJCV0KCQkJCQkJCQkJCQkvUnVuTGVuZ3RocyBbIDQgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJXQoJCQkJCQkJCQkvQW5ub3RhdGlvbgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1dpZHRoIDAuMAoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCV0KCQkJCQkJPj4KCQkJCQkJXQoJCQkJCT4+CgkJCQkJXQoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJXQoJCT4+CgkJL09wdGljYWxBbGlnbm1lbnQgZmFsc2UKCT4+Cgk8PAoJCS9Nb2RlbAoJCTw8CgkJCS9UZXh0ICj+/wBGAEwAVgANKQoJCQkvUGFyYWdyYXBoUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJCS9QYXJhZ3JhcGhTaGVldAoJCQkJCQk8PAoJCQkJCQkJL05hbWUgKP7/KQoJCQkJCQkJL0ZlYXR1cmVzCgkJCQkJCQk8PAoJCQkJCQkJCS9KdXN0aWZpY2F0aW9uIDIKCQkJCQkJCQkvRmlyc3RMaW5lSW5kZW50IDAuMAoJCQkJCQkJCS9TdGFydEluZGVudCAwLjAKCQkJCQkJCQkvRW5kSW5kZW50IDAuMAoJCQkJCQkJCS9TcGFjZUJlZm9yZSAwLjAKCQkJCQkJCQkvU3BhY2VBZnRlciAwLjAKCQkJCQkJCQkvRHJvcENhcHMgMQoJCQkJCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCQkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCQkJCQkvSHlwaGVuYXRlZFdvcmRTaXplIDgKCQkJCQkJCQkvUHJlSHlwaGVuIDMKCQkJCQkJCQkvUG9zdEh5cGhlbiAzCgkJCQkJCQkJL0NvbnNlY3V0aXZlSHlwaGVucyAyCgkJCQkJCQkJL1pvbmUgMzYuMAoJCQkJCQkJCS9IeXBoZW5hdGVDYXBpdGFsaXplZCB0cnVlCgkJCQkJCQkJL0h5cGhlbmF0aW9uUHJlZmVyZW5jZSAwLjUKCQkJCQkJCQkvV29yZFNwYWNpbmcgWyAwLjggMS4wIDEuMzMgXQoJCQkJCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkJCQkJL1NpbmdsZVdvcmRKdXN0aWZpY2F0aW9uIDYKCQkJCQkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJCQkJCS9BdXRvVENZIDEKCQkJCQkJCQkvS2VlcFRvZ2V0aGVyIHRydWUKCQkJCQkJCQkvQnVyYXNhZ2FyaVR5cGUgMAoJCQkJCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJCQkJCS9LdXJpa2Flc2hpTW9qaVNob3JpIGZhbHNlCgkJCQkJCQkJL0tpbnNva3UgL25pbAoJCQkJCQkJCS9Nb2ppS3VtaVRhYmxlIC9uaWwKCQkJCQkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJCQkJCQkvVGFiU3RvcHMKCQkJCQkJCQk8PAoJCQkJCQkJCT4+CgkJCQkJCQkJL0RlZmF1bHRUYWJXaWR0aCAzNi4wCgkJCQkJCQkJL0RlZmF1bHRTdHlsZQoJCQkJCQkJCTw8CgkJCQkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkJCQkJPj4KCQkJCQkJCT4+CgkJCQkJCQkvUGFyZW50IDAKCQkJCQkJPj4KCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL1N0eWxlUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJCS9TdHlsZVNoZWV0CgkJCQkJCTw8CgkJCQkJCQkvTmFtZSAo/v8pCgkJCQkJCQkvUGFyZW50IDAKCQkJCQkJCS9GZWF0dXJlcwoJCQkJCQkJPDwKCQkJCQkJCQkvRm9udCAwCgkJCQkJCQkJL0ZvbnRTaXplIDIwLjc3MzMxCgkJCQkJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCQkJCQkvQXV0b0xlYWRpbmcgZmFsc2UKCQkJCQkJCQkvTGVhZGluZyAzOS44NjE5OAoJCQkJCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkJCQkJL1RyYWNraW5nIDIwCgkJCQkJCQkJL0Jhc2VsaW5lU2hpZnQgLTguODg2NjIKCQkJCQkJCQkvQ2hhcmFjdGVyUm90YXRpb24gMC4wCgkJCQkJCQkJL0F1dG9LZXJuIDEKCQkJCQkJCQkvRm9udENhcHMgMAoJCQkJCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJCQkJCS9Gb250T1RQb3NpdGlvbiAwCgkJCQkJCQkJL1N0cmlrZXRocm91Z2hQb3NpdGlvbiAwCgkJCQkJCQkJL1VuZGVybGluZVBvc2l0aW9uIDAKCQkJCQkJCQkvVW5kZXJsaW5lT2Zmc2V0IDAuMAoJCQkJCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJCQkJCS9EaXNjcmV0aW9uYXJ5TGlnYXR1cmVzIGZhbHNlCgkJCQkJCQkJL0NvbnRleHR1YWxMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvQWx0ZXJuYXRlTGlnYXR1cmVzIGZhbHNlCgkJCQkJCQkJL09sZFN0eWxlIGZhbHNlCgkJCQkJCQkJL0ZyYWN0aW9ucyBmYWxzZQoJCQkJCQkJCS9PcmRpbmFscyBmYWxzZQoJCQkJCQkJCS9Td2FzaCBmYWxzZQoJCQkJCQkJCS9UaXRsaW5nIGZhbHNlCgkJCQkJCQkJL0Nvbm5lY3Rpb25Gb3JtcyBmYWxzZQoJCQkJCQkJCS9TdHlsaXN0aWNBbHRlcm5hdGVzIGZhbHNlCgkJCQkJCQkJL09ybmFtZW50cyBmYWxzZQoJCQkJCQkJCS9GaWd1cmVTdHlsZSAwCgkJCQkJCQkJL1Byb3BvcnRpb25hbE1ldHJpY3MgZmFsc2UKCQkJCQkJCQkvS2FuYSBmYWxzZQoJCQkJCQkJCS9JdGFsaWNzIGZhbHNlCgkJCQkJCQkJL1J1YnkgZmFsc2UKCQkJCQkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMQoJCQkJCQkJCS9Uc3VtZSAwLjAKCQkJCQkJCQkvU3R5bGVSdW5BbGlnbm1lbnQgMgoJCQkJCQkJCS9MYW5ndWFnZSAwCgkJCQkJCQkJL0phcGFuZXNlQWx0ZXJuYXRlRmVhdHVyZSAwCgkJCQkJCQkJL0VuYWJsZVdhcmlDaHUgZmFsc2UKCQkJCQkJCQkvV2FyaUNodUxpbmVDb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVMaW5lR2FwIDAKCQkJCQkJCQkvV2FyaUNodVN1YkxpbmVBbW91bnQKCQkJCQkJCQk8PAoJCQkJCQkJCQkvV2FyaUNodVN1YkxpbmVTY2FsZSAwLjUKCQkJCQkJCQk+PgoJCQkJCQkJCS9XYXJpQ2h1V2lkb3dBbW91bnQgMgoJCQkJCQkJCS9XYXJpQ2h1T3JwaGFuQW1vdW50IDIKCQkJCQkJCQkvV2FyaUNodUp1c3RpZmljYXRpb24gNwoJCQkJCQkJCS9UQ1lVcERvd25BZGp1c3RtZW50IDAKCQkJCQkJCQkvVENZTGVmdFJpZ2h0QWRqdXN0bWVudCAwCgkJCQkJCQkJL0xlZnRBa2kgLTEuMAoJCQkJCQkJCS9SaWdodEFraSAtMS4wCgkJCQkJCQkJL0ppRG9yaSAwCgkJCQkJCQkJL05vQnJlYWsgZmFsc2UKCQkJCQkJCQkvRmlsbENvbG9yCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCS9TdHJva2VDb2xvcgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQkvQmxlbmQKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVCbGVuZGVyCgkJCQkJCQkJPj4KCQkJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkJCQkJL0ZpbGxGaXJzdCBmYWxzZQoJCQkJCQkJCS9GaWxsT3ZlclByaW50IGZhbHNlCgkJCQkJCQkJL1N0cm9rZU92ZXJQcmludCBmYWxzZQoJCQkJCQkJCS9MaW5lQ2FwIDAKCQkJCQkJCQkvTGluZUpvaW4gMAoJCQkJCQkJCS9MaW5lV2lkdGggMC4wNDE2NwoJCQkJCQkJCS9NaXRlckxpbWl0IDAuMDQxNjcKCQkJCQkJCQkvTGluZURhc2hPZmZzZXQgMC4wCgkJCQkJCQkJL0xpbmVEYXNoQXJyYXkgWyBdCgkJCQkJCQkJL1R5cGUxRW5jb2RpbmdOYW1lcyBbIF0KCQkJCQkJCT4+CgkJCQkJCT4+CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9LZXJuUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9BbHRlcm5hdGVHbHlwaFJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3RvcnlTaGVldAoJCQk8PAoJCQkJL0FudGlBbGlhcyA0CgkJCQkvVXNlRnJhY3Rpb25hbEdseXBoV2lkdGhzIHRydWUKCQkJPj4KCQk+PgoJCS9WaWV3CgkJPDwKCQkJL0ZyYW1lcyBbCgkJCTw8CgkJCQkvUmVzb3VyY2UgMzUKCQkJPj4KCQkJXQoJCQkvUmVuZGVyZWREYXRhCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJCS9MaW5lQ291bnQgMQoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3RyaWtlcyBbCgkJCTw8CgkJCQkvU3RyZWFtVGFnIC9QYXRoU2VsZWN0R3JvdXBDaGFyYWN0ZXIKCQkJCS9UcmFuc2Zvcm0KCQkJCTw8CgkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJL0NoaWxkUHJvY2Vzc2lvbiAwCgkJCQkvQ2hpbGRyZW4gWwoJCQkJPDwKCQkJCQkvU3RyZWFtVGFnIC9GcmFtZVN0cmlrZQoJCQkJCS9GcmFtZSAzNQoJCQkJCS9UcmFuc2Zvcm0KCQkJCQk8PAoJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJPj4KCQkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDIKCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCTw8CgkJCQkJCS9TdHJlYW1UYWcgL1Jvd0NvbFN0cmlrZQoJCQkJCQkvUm93Q29sSW5kZXggMAoJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCTw8CgkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCT4+CgkJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDEKCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJPDwKCQkJCQkJCS9TdHJlYW1UYWcgL1Jvd0NvbFN0cmlrZQoJCQkJCQkJL1Jvd0NvbEluZGV4IDAKCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCTw8CgkJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQkJPj4KCQkJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAyCgkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJPDwKCQkJCQkJCQkvU3RyZWFtVGFnIC9MaW5lU3RyaWtlCgkJCQkJCQkJL0Jhc2VsaW5lIDAuMAoJCQkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCQkJL0VNSGVpZ2h0IDIwLjc3MzMxCgkJCQkJCQkJL0RIZWlnaHQgMTQuODMxOTIKCQkJCQkJCQkvU2VsZWN0aW9uQXNjZW50IC0xNy44MDI2MQoJCQkJCQkJCS9TZWxlY3Rpb25EZXNjZW50IDEzLjM5NDMzCgkJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJCTw8CgkJCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJCQk+PgoJCQkJCQkJCS9Cb3VuZHMgWyAwLjAgLTE3LjgwMjYxIDAuMCA0LjUwNzcxIF0KCQkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDEKCQkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NlZ21lbnQKCQkJCQkJCQkJL01hcHBpbmcKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9DaGFyYWN0ZXJDb3VudCA0CgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9GaXJzdENoYXJhY3RlckluZGV4SW5TZWdtZW50IDAKCQkJCQkJCQkJL1VuZGVybGluZUludmFsaWRhdGlvbiBbIC0xOS4yNzcyMyA4Ljg4NjYyIDE5LjY5MjcgOC44ODY2MiBdCgkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9PcmlnaW4gWyAtMTkuMjc3MjMgMC4wIF0KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMzAwMTkuMjc3MzQgNC41MDc3MSBdCgkJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvR2x5cGhTdHJpa2UKCQkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL09yaWdpbiBbIDAuMCA4Ljg4NjYyIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSAzOC45Njk5MiA0LjUwNzcxIF0KCQkJCQkJCQkJCS9HbHlwaHMgWyA0NSA1MSA2MSAzIF0KCQkJCQkJCQkJCS9HbHlwaEFkanVzdG1lbnRzCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9EYXRhIFsKCQkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCQkvQmFja0ZpeGVkIDAuNDE1NDcKCQkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJCV0KCQkJCQkJCQkJCQkvUnVuTGVuZ3RocyBbIDQgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCS9SZW5kZXJlZEJvdW5kcyBbIC0xOS4yNzcyMyAtOC45MTU5OSAxOS42OTI3IDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9WaXN1YWxCb3VuZHMgWyAtMTkuMjc3MjMgLTguOTE1OTkgMTkuNjkyNyAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvSW52YWxpZGF0aW9uIFsgLTE5LjI3NzIzIC04LjkxNTk5IDMwLjgwNjE2IDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9TaGFkb3dTdHlsZXNSdW4KCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL0RhdGEgWwoJCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJCS9JbmRleCAwCgkJCQkJCQkJCQkJCS9Gb250IDAKCQkJCQkJCQkJCQkJL09yaWVudGF0aW9uIDAKCQkJCQkJCQkJCQkJL0Jhc2VsaW5lU2hpZnQgLTguODg2NjIKCQkJCQkJCQkJCQkJL0tlcm5UeXBlIDEKCQkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJCV0KCQkJCQkJCQkJCQkvUnVuTGVuZ3RocyBbIDQgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJXQoJCQkJCQkJCQkvQW5ub3RhdGlvbgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1dpZHRoIDAuMAoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJXQoJCQkJCQkJPj4KCQkJCQkJCV0KCQkJCQkJPj4KCQkJCQkJXQoJCQkJCT4+CgkJCQkJXQoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJXQoJCT4+CgkJL09wdGljYWxBbGlnbm1lbnQgZmFsc2UKCT4+Cgk8PAoJCS9Nb2RlbAoJCTw8CgkJCS9UZXh0ICj+/wBNAE8AVgANKQoJCQkvUGFyYWdyYXBoUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJCS9QYXJhZ3JhcGhTaGVldAoJCQkJCQk8PAoJCQkJCQkJL05hbWUgKP7/KQoJCQkJCQkJL0ZlYXR1cmVzCgkJCQkJCQk8PAoJCQkJCQkJCS9KdXN0aWZpY2F0aW9uIDIKCQkJCQkJCQkvRmlyc3RMaW5lSW5kZW50IDAuMAoJCQkJCQkJCS9TdGFydEluZGVudCAwLjAKCQkJCQkJCQkvRW5kSW5kZW50IDAuMAoJCQkJCQkJCS9TcGFjZUJlZm9yZSAwLjAKCQkJCQkJCQkvU3BhY2VBZnRlciAwLjAKCQkJCQkJCQkvRHJvcENhcHMgMQoJCQkJCQkJCS9BdXRvTGVhZGluZyAxLjIKCQkJCQkJCQkvTGVhZGluZ1R5cGUgMAoJCQkJCQkJCS9BdXRvSHlwaGVuYXRlIHRydWUKCQkJCQkJCQkvSHlwaGVuYXRlZFdvcmRTaXplIDgKCQkJCQkJCQkvUHJlSHlwaGVuIDMKCQkJCQkJCQkvUG9zdEh5cGhlbiAzCgkJCQkJCQkJL0NvbnNlY3V0aXZlSHlwaGVucyAyCgkJCQkJCQkJL1pvbmUgMzYuMAoJCQkJCQkJCS9IeXBoZW5hdGVDYXBpdGFsaXplZCB0cnVlCgkJCQkJCQkJL0h5cGhlbmF0aW9uUHJlZmVyZW5jZSAwLjUKCQkJCQkJCQkvV29yZFNwYWNpbmcgWyAwLjggMS4wIDEuMzMgXQoJCQkJCQkJCS9MZXR0ZXJTcGFjaW5nIFsgMC4wIDAuMCAwLjAgXQoJCQkJCQkJCS9HbHlwaFNwYWNpbmcgWyAxLjAgMS4wIDEuMCBdCgkJCQkJCQkJL1NpbmdsZVdvcmRKdXN0aWZpY2F0aW9uIDYKCQkJCQkJCQkvSGFuZ2luZyBmYWxzZQoJCQkJCQkJCS9BdXRvVENZIDEKCQkJCQkJCQkvS2VlcFRvZ2V0aGVyIHRydWUKCQkJCQkJCQkvQnVyYXNhZ2FyaVR5cGUgMAoJCQkJCQkJCS9LaW5zb2t1T3JkZXIgMAoJCQkJCQkJCS9LdXJpa2Flc2hpTW9qaVNob3JpIGZhbHNlCgkJCQkJCQkJL0tpbnNva3UgL25pbAoJCQkJCQkJCS9Nb2ppS3VtaVRhYmxlIC9uaWwKCQkJCQkJCQkvRXZlcnlMaW5lQ29tcG9zZXIgZmFsc2UKCQkJCQkJCQkvVGFiU3RvcHMKCQkJCQkJCQk8PAoJCQkJCQkJCT4+CgkJCQkJCQkJL0RlZmF1bHRUYWJXaWR0aCAzNi4wCgkJCQkJCQkJL0RlZmF1bHRTdHlsZQoJCQkJCQkJCTw8CgkJCQkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkJCQkJPj4KCQkJCQkJCT4+CgkJCQkJCQkvUGFyZW50IDAKCQkJCQkJPj4KCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL1N0eWxlUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJCS9TdHlsZVNoZWV0CgkJCQkJCTw8CgkJCQkJCQkvTmFtZSAo/v8pCgkJCQkJCQkvUGFyZW50IDAKCQkJCQkJCS9GZWF0dXJlcwoJCQkJCQkJPDwKCQkJCQkJCQkvRm9udCAwCgkJCQkJCQkJL0ZvbnRTaXplIDIwLjc3MzMxCgkJCQkJCQkJL0ZhdXhCb2xkIGZhbHNlCgkJCQkJCQkJL0ZhdXhJdGFsaWMgZmFsc2UKCQkJCQkJCQkvQXV0b0xlYWRpbmcgZmFsc2UKCQkJCQkJCQkvTGVhZGluZyAzOS44NjE5OAoJCQkJCQkJCS9Ib3Jpem9udGFsU2NhbGUgMS4wCgkJCQkJCQkJL1ZlcnRpY2FsU2NhbGUgMS4wCgkJCQkJCQkJL1RyYWNraW5nIDIwCgkJCQkJCQkJL0Jhc2VsaW5lU2hpZnQgLTguODg2NjIKCQkJCQkJCQkvQ2hhcmFjdGVyUm90YXRpb24gMC4wCgkJCQkJCQkJL0F1dG9LZXJuIDEKCQkJCQkJCQkvRm9udENhcHMgMAoJCQkJCQkJCS9Gb250QmFzZWxpbmUgMAoJCQkJCQkJCS9Gb250T1RQb3NpdGlvbiAwCgkJCQkJCQkJL1N0cmlrZXRocm91Z2hQb3NpdGlvbiAwCgkJCQkJCQkJL1VuZGVybGluZVBvc2l0aW9uIDAKCQkJCQkJCQkvVW5kZXJsaW5lT2Zmc2V0IDAuMAoJCQkJCQkJCS9MaWdhdHVyZXMgdHJ1ZQoJCQkJCQkJCS9EaXNjcmV0aW9uYXJ5TGlnYXR1cmVzIGZhbHNlCgkJCQkJCQkJL0NvbnRleHR1YWxMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvQWx0ZXJuYXRlTGlnYXR1cmVzIGZhbHNlCgkJCQkJCQkJL09sZFN0eWxlIGZhbHNlCgkJCQkJCQkJL0ZyYWN0aW9ucyBmYWxzZQoJCQkJCQkJCS9PcmRpbmFscyBmYWxzZQoJCQkJCQkJCS9Td2FzaCBmYWxzZQoJCQkJCQkJCS9UaXRsaW5nIGZhbHNlCgkJCQkJCQkJL0Nvbm5lY3Rpb25Gb3JtcyBmYWxzZQoJCQkJCQkJCS9TdHlsaXN0aWNBbHRlcm5hdGVzIGZhbHNlCgkJCQkJCQkJL09ybmFtZW50cyBmYWxzZQoJCQkJCQkJCS9GaWd1cmVTdHlsZSAwCgkJCQkJCQkJL1Byb3BvcnRpb25hbE1ldHJpY3MgZmFsc2UKCQkJCQkJCQkvS2FuYSBmYWxzZQoJCQkJCQkJCS9JdGFsaWNzIGZhbHNlCgkJCQkJCQkJL1J1YnkgZmFsc2UKCQkJCQkJCQkvQmFzZWxpbmVEaXJlY3Rpb24gMQoJCQkJCQkJCS9Uc3VtZSAwLjAKCQkJCQkJCQkvU3R5bGVSdW5BbGlnbm1lbnQgMgoJCQkJCQkJCS9MYW5ndWFnZSAwCgkJCQkJCQkJL0phcGFuZXNlQWx0ZXJuYXRlRmVhdHVyZSAwCgkJCQkJCQkJL0VuYWJsZVdhcmlDaHUgZmFsc2UKCQkJCQkJCQkvV2FyaUNodUxpbmVDb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVMaW5lR2FwIDAKCQkJCQkJCQkvV2FyaUNodVN1YkxpbmVBbW91bnQKCQkJCQkJCQk8PAoJCQkJCQkJCQkvV2FyaUNodVN1YkxpbmVTY2FsZSAwLjUKCQkJCQkJCQk+PgoJCQkJCQkJCS9XYXJpQ2h1V2lkb3dBbW91bnQgMgoJCQkJCQkJCS9XYXJpQ2h1T3JwaGFuQW1vdW50IDIKCQkJCQkJCQkvV2FyaUNodUp1c3RpZmljYXRpb24gNwoJCQkJCQkJCS9UQ1lVcERvd25BZGp1c3RtZW50IDAKCQkJCQkJCQkvVENZTGVmdFJpZ2h0QWRqdXN0bWVudCAwCgkJCQkJCQkJL0xlZnRBa2kgLTEuMAoJCQkJCQkJCS9SaWdodEFraSAtMS4wCgkJCQkJCQkJL0ppRG9yaSAwCgkJCQkJCQkJL05vQnJlYWsgZmFsc2UKCQkJCQkJCQkvRmlsbENvbG9yCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCS9TdHJva2VDb2xvcgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQkvQmxlbmQKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVCbGVuZGVyCgkJCQkJCQkJPj4KCQkJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkJCS9TdHJva2VGbGFnIGZhbHNlCgkJCQkJCQkJL0ZpbGxGaXJzdCBmYWxzZQoJCQkJCQkJCS9GaWxsT3ZlclByaW50IGZhbHNlCgkJCQkJCQkJL1N0cm9rZU92ZXJQcmludCBmYWxzZQoJCQkJCQkJCS9MaW5lQ2FwIDAKCQkJCQkJCQkvTGluZUpvaW4gMAoJCQkJCQkJCS9MaW5lV2lkdGggMC4wNDE2NwoJCQkJCQkJCS9NaXRlckxpbWl0IDAuMDQxNjcKCQkJCQkJCQkvTGluZURhc2hPZmZzZXQgMC4wCgkJCQkJCQkJL0xpbmVEYXNoQXJyYXkgWyBdCgkJCQkJCQkJL1R5cGUxRW5jb2RpbmdOYW1lcyBbIF0KCQkJCQkJCT4+CgkJCQkJCT4+CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9LZXJuUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9BbHRlcm5hdGVHbHlwaFJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3RvcnlTaGVldAoJCQk8PAoJCQkJL0FudGlBbGlhcyA0CgkJCQkvVXNlRnJhY3Rpb25hbEdseXBoV2lkdGhzIHRydWUKCQkJPj4KCQk+PgoJCS9WaWV3CgkJPDwKCQkJL0ZyYW1lcyBbCgkJCTw8CgkJCQkvUmVzb3VyY2UgMzYKCQkJPj4KCQkJXQoJCQkvUmVuZGVyZWREYXRhCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJCS9MaW5lQ291bnQgMQoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3RyaWtlcyBbCgkJCTw8CgkJCQkvU3RyZWFtVGFnIC9QYXRoU2VsZWN0R3JvdXBDaGFyYWN0ZXIKCQkJCS9UcmFuc2Zvcm0KCQkJCTw8CgkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJPj4KCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJL0NoaWxkUHJvY2Vzc2lvbiAwCgkJCQkvQ2hpbGRyZW4gWwoJCQkJPDwKCQkJCQkvU3RyZWFtVGFnIC9GcmFtZVN0cmlrZQoJCQkJCS9GcmFtZSAzNgoJCQkJCS9UcmFuc2Zvcm0KCQkJCQk8PAoJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJPj4KCQkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDIKCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCTw8CgkJCQkJCS9TdHJlYW1UYWcgL1Jvd0NvbFN0cmlrZQoJCQkJCQkvUm93Q29sSW5kZXggMAoJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCTw8CgkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCT4+CgkJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDEKCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJPDwKCQkJCQkJCS9TdHJlYW1UYWcgL1Jvd0NvbFN0cmlrZQoJCQkJCQkJL1Jvd0NvbEluZGV4IDAKCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCTw8CgkJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQkJPj4KCQkJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAyCgkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJPDwKCQkJCQkJCQkvU3RyZWFtVGFnIC9MaW5lU3RyaWtlCgkJCQkJCQkJL0Jhc2VsaW5lIDAuMAoJCQkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCQkJL0VNSGVpZ2h0IDIwLjc3MzMxCgkJCQkJCQkJL0RIZWlnaHQgMTQuODMxOTIKCQkJCQkJCQkvU2VsZWN0aW9uQXNjZW50IC0xNy44MDI2MQoJCQkJCQkJCS9TZWxlY3Rpb25EZXNjZW50IDEzLjM5NDMzCgkJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJCTw8CgkJCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJCQk+PgoJCQkJCQkJCS9Cb3VuZHMgWyAwLjAgLTE3LjgwMjYxIDAuMCA0LjUwNzcxIF0KCQkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDEKCQkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NlZ21lbnQKCQkJCQkJCQkJL01hcHBpbmcKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9DaGFyYWN0ZXJDb3VudCA0CgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9GaXJzdENoYXJhY3RlckluZGV4SW5TZWdtZW50IDAKCQkJCQkJCQkJL1VuZGVybGluZUludmFsaWRhdGlvbiBbIC0yNC40NjA0MiA4Ljg4NjYyIDI0Ljg3NTg5IDguODg2NjIgXQoJCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvT3JpZ2luIFsgLTI0LjQ2MDQyIDAuMCBdCgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9Cb3VuZHMgWyAwLjAgLTE3LjgwMjYxIDMwMDI0LjQ2MDk0IDQuNTA3NzEgXQoJCQkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDEKCQkJCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL0dseXBoU3RyaWtlCgkJCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9PcmlnaW4gWyAwLjAgOC44ODY2MiBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgNDkuMzM2MyA0LjUwNzcxIF0KCQkJCQkJCQkJCS9HbHlwaHMgWyA1MiA1NCA2MSAzIF0KCQkJCQkJCQkJCS9HbHlwaEFkanVzdG1lbnRzCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9EYXRhIFsKCQkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCQkvQmFja0ZpeGVkIDAuNDE1NDcKCQkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJCV0KCQkJCQkJCQkJCQkvUnVuTGVuZ3RocyBbIDQgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCS9SZW5kZXJlZEJvdW5kcyBbIC0yNC40NjA0MiAtOC45MTU5OSAyNC44NzU4OSAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvVmlzdWFsQm91bmRzIFsgLTI0LjQ2MDQyIC04LjkxNTk5IDI0Ljg3NTg5IDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9JbnZhbGlkYXRpb24gWyAtMjQuNDYwNDIgLTguOTE1OTkgMzUuOTg5MzUgMTMuMzk0MzMgXQoJCQkJCQkJCQkJL1NoYWRvd1N0eWxlc1J1bgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvRGF0YSBbCgkJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkJL0luZGV4IDAKCQkJCQkJCQkJCQkJL0ZvbnQgMAoJCQkJCQkJCQkJCQkvT3JpZW50YXRpb24gMAoJCQkJCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCQkJCQkvS2VyblR5cGUgMQoJCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkJXQoJCQkJCQkJCQkJCS9SdW5MZW5ndGhzIFsgNCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQldCgkJCQkJCQkJCS9Bbm5vdGF0aW9uCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvV2lkdGggMC4wCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQldCgkJCQkJCQk+PgoJCQkJCQkJXQoJCQkJCQk+PgoJCQkJCQldCgkJCQkJPj4KCQkJCQldCgkJCQk+PgoJCQkJXQoJCQk+PgoJCQldCgkJPj4KCQkvT3B0aWNhbEFsaWdubWVudCBmYWxzZQoJPj4KCTw8CgkJL01vZGVsCgkJPDwKCQkJL1RleHQgKP7/AFgATABTAA0pCgkJCS9QYXJhZ3JhcGhSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1BhcmFncmFwaFNoZWV0CgkJCQkJCTw8CgkJCQkJCQkvTmFtZSAo/v8pCgkJCQkJCQkvRmVhdHVyZXMKCQkJCQkJCTw8CgkJCQkJCQkJL0p1c3RpZmljYXRpb24gMgoJCQkJCQkJCS9GaXJzdExpbmVJbmRlbnQgMC4wCgkJCQkJCQkJL1N0YXJ0SW5kZW50IDAuMAoJCQkJCQkJCS9FbmRJbmRlbnQgMC4wCgkJCQkJCQkJL1NwYWNlQmVmb3JlIDAuMAoJCQkJCQkJCS9TcGFjZUFmdGVyIDAuMAoJCQkJCQkJCS9Ecm9wQ2FwcyAxCgkJCQkJCQkJL0F1dG9MZWFkaW5nIDEuMgoJCQkJCQkJCS9MZWFkaW5nVHlwZSAwCgkJCQkJCQkJL0F1dG9IeXBoZW5hdGUgdHJ1ZQoJCQkJCQkJCS9IeXBoZW5hdGVkV29yZFNpemUgOAoJCQkJCQkJCS9QcmVIeXBoZW4gMwoJCQkJCQkJCS9Qb3N0SHlwaGVuIDMKCQkJCQkJCQkvQ29uc2VjdXRpdmVIeXBoZW5zIDIKCQkJCQkJCQkvWm9uZSAzNi4wCgkJCQkJCQkJL0h5cGhlbmF0ZUNhcGl0YWxpemVkIHRydWUKCQkJCQkJCQkvSHlwaGVuYXRpb25QcmVmZXJlbmNlIDAuNQoJCQkJCQkJCS9Xb3JkU3BhY2luZyBbIDAuOCAxLjAgMS4zMyBdCgkJCQkJCQkJL0xldHRlclNwYWNpbmcgWyAwLjAgMC4wIDAuMCBdCgkJCQkJCQkJL0dseXBoU3BhY2luZyBbIDEuMCAxLjAgMS4wIF0KCQkJCQkJCQkvU2luZ2xlV29yZEp1c3RpZmljYXRpb24gNgoJCQkJCQkJCS9IYW5naW5nIGZhbHNlCgkJCQkJCQkJL0F1dG9UQ1kgMQoJCQkJCQkJCS9LZWVwVG9nZXRoZXIgdHJ1ZQoJCQkJCQkJCS9CdXJhc2FnYXJpVHlwZSAwCgkJCQkJCQkJL0tpbnNva3VPcmRlciAwCgkJCQkJCQkJL0t1cmlrYWVzaGlNb2ppU2hvcmkgZmFsc2UKCQkJCQkJCQkvS2luc29rdSAvbmlsCgkJCQkJCQkJL01vamlLdW1pVGFibGUgL25pbAoJCQkJCQkJCS9FdmVyeUxpbmVDb21wb3NlciBmYWxzZQoJCQkJCQkJCS9UYWJTdG9wcwoJCQkJCQkJCTw8CgkJCQkJCQkJPj4KCQkJCQkJCQkvRGVmYXVsdFRhYldpZHRoIDM2LjAKCQkJCQkJCQkvRGVmYXVsdFN0eWxlCgkJCQkJCQkJPDwKCQkJCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQk+PgoJCQkJCQkJPj4KCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQk+PgoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvU3R5bGVSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL1N0eWxlU2hlZXQKCQkJCQkJPDwKCQkJCQkJCS9OYW1lICj+/ykKCQkJCQkJCS9QYXJlbnQgMAoJCQkJCQkJL0ZlYXR1cmVzCgkJCQkJCQk8PAoJCQkJCQkJCS9Gb250IDAKCQkJCQkJCQkvRm9udFNpemUgMjAuNzczMzEKCQkJCQkJCQkvRmF1eEJvbGQgZmFsc2UKCQkJCQkJCQkvRmF1eEl0YWxpYyBmYWxzZQoJCQkJCQkJCS9BdXRvTGVhZGluZyBmYWxzZQoJCQkJCQkJCS9MZWFkaW5nIDM5Ljg2MTk4CgkJCQkJCQkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkJCQkJCQkvVmVydGljYWxTY2FsZSAxLjAKCQkJCQkJCQkvVHJhY2tpbmcgMjAKCQkJCQkJCQkvQmFzZWxpbmVTaGlmdCAtOC44ODY2MgoJCQkJCQkJCS9DaGFyYWN0ZXJSb3RhdGlvbiAwLjAKCQkJCQkJCQkvQXV0b0tlcm4gMQoJCQkJCQkJCS9Gb250Q2FwcyAwCgkJCQkJCQkJL0ZvbnRCYXNlbGluZSAwCgkJCQkJCQkJL0ZvbnRPVFBvc2l0aW9uIDAKCQkJCQkJCQkvU3RyaWtldGhyb3VnaFBvc2l0aW9uIDAKCQkJCQkJCQkvVW5kZXJsaW5lUG9zaXRpb24gMAoJCQkJCQkJCS9VbmRlcmxpbmVPZmZzZXQgMC4wCgkJCQkJCQkJL0xpZ2F0dXJlcyB0cnVlCgkJCQkJCQkJL0Rpc2NyZXRpb25hcnlMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvQ29udGV4dHVhbExpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9BbHRlcm5hdGVMaWdhdHVyZXMgZmFsc2UKCQkJCQkJCQkvT2xkU3R5bGUgZmFsc2UKCQkJCQkJCQkvRnJhY3Rpb25zIGZhbHNlCgkJCQkJCQkJL09yZGluYWxzIGZhbHNlCgkJCQkJCQkJL1N3YXNoIGZhbHNlCgkJCQkJCQkJL1RpdGxpbmcgZmFsc2UKCQkJCQkJCQkvQ29ubmVjdGlvbkZvcm1zIGZhbHNlCgkJCQkJCQkJL1N0eWxpc3RpY0FsdGVybmF0ZXMgZmFsc2UKCQkJCQkJCQkvT3JuYW1lbnRzIGZhbHNlCgkJCQkJCQkJL0ZpZ3VyZVN0eWxlIDAKCQkJCQkJCQkvUHJvcG9ydGlvbmFsTWV0cmljcyBmYWxzZQoJCQkJCQkJCS9LYW5hIGZhbHNlCgkJCQkJCQkJL0l0YWxpY3MgZmFsc2UKCQkJCQkJCQkvUnVieSBmYWxzZQoJCQkJCQkJCS9CYXNlbGluZURpcmVjdGlvbiAxCgkJCQkJCQkJL1RzdW1lIDAuMAoJCQkJCQkJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJCQkJCQkJL0xhbmd1YWdlIDAKCQkJCQkJCQkvSmFwYW5lc2VBbHRlcm5hdGVGZWF0dXJlIDAKCQkJCQkJCQkvRW5hYmxlV2FyaUNodSBmYWxzZQoJCQkJCQkJCS9XYXJpQ2h1TGluZUNvdW50IDIKCQkJCQkJCQkvV2FyaUNodUxpbmVHYXAgMAoJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZUFtb3VudAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9XYXJpQ2h1U3ViTGluZVNjYWxlIDAuNQoJCQkJCQkJCT4+CgkJCQkJCQkJL1dhcmlDaHVXaWRvd0Ftb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVPcnBoYW5BbW91bnQgMgoJCQkJCQkJCS9XYXJpQ2h1SnVzdGlmaWNhdGlvbiA3CgkJCQkJCQkJL1RDWVVwRG93bkFkanVzdG1lbnQgMAoJCQkJCQkJCS9UQ1lMZWZ0UmlnaHRBZGp1c3RtZW50IDAKCQkJCQkJCQkvTGVmdEFraSAtMS4wCgkJCQkJCQkJL1JpZ2h0QWtpIC0xLjAKCQkJCQkJCQkvSmlEb3JpIDAKCQkJCQkJCQkvTm9CcmVhayBmYWxzZQoJCQkJCQkJCS9GaWxsQ29sb3IKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJL1N0cm9rZUNvbG9yCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCS9CbGVuZAoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZUJsZW5kZXIKCQkJCQkJCQk+PgoJCQkJCQkJCS9GaWxsRmxhZyB0cnVlCgkJCQkJCQkJL1N0cm9rZUZsYWcgZmFsc2UKCQkJCQkJCQkvRmlsbEZpcnN0IGZhbHNlCgkJCQkJCQkJL0ZpbGxPdmVyUHJpbnQgZmFsc2UKCQkJCQkJCQkvU3Ryb2tlT3ZlclByaW50IGZhbHNlCgkJCQkJCQkJL0xpbmVDYXAgMAoJCQkJCQkJCS9MaW5lSm9pbiAwCgkJCQkJCQkJL0xpbmVXaWR0aCAwLjA0MTY3CgkJCQkJCQkJL01pdGVyTGltaXQgMC4wNDE2NwoJCQkJCQkJCS9MaW5lRGFzaE9mZnNldCAwLjAKCQkJCQkJCQkvTGluZURhc2hBcnJheSBbIF0KCQkJCQkJCQkvVHlwZTFFbmNvZGluZ05hbWVzIFsgXQoJCQkJCQkJPj4KCQkJCQkJPj4KCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0tlcm5SdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL0FsdGVybmF0ZUdseXBoUnVuCgkJCTw8CgkJCQkvUnVuQXJyYXkgWwoJCQkJPDwKCQkJCQkvUnVuRGF0YQoJCQkJCTw8CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdG9yeVNoZWV0CgkJCTw8CgkJCQkvQW50aUFsaWFzIDQKCQkJCS9Vc2VGcmFjdGlvbmFsR2x5cGhXaWR0aHMgdHJ1ZQoJCQk+PgoJCT4+CgkJL1ZpZXcKCQk8PAoJCQkvRnJhbWVzIFsKCQkJPDwKCQkJCS9SZXNvdXJjZSAzNwoJCQk+PgoJCQldCgkJCS9SZW5kZXJlZERhdGEKCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQkJL0xpbmVDb3VudCAxCgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdHJpa2VzIFsKCQkJPDwKCQkJCS9TdHJlYW1UYWcgL1BhdGhTZWxlY3RHcm91cENoYXJhY3RlcgoJCQkJL1RyYW5zZm9ybQoJCQkJPDwKCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQk+PgoJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkvQ2hpbGRQcm9jZXNzaW9uIDAKCQkJCS9DaGlsZHJlbiBbCgkJCQk8PAoJCQkJCS9TdHJlYW1UYWcgL0ZyYW1lU3RyaWtlCgkJCQkJL0ZyYW1lIDM3CgkJCQkJL1RyYW5zZm9ybQoJCQkJCTw8CgkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQk+PgoJCQkJCS9Cb3VuZHMgWyAwLjAgMC4wIDAuMCAwLjAgXQoJCQkJCS9DaGlsZFByb2Nlc3Npb24gMgoJCQkJCS9DaGlsZHJlbiBbCgkJCQkJPDwKCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCS9Sb3dDb2xJbmRleCAwCgkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJPDwKCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJPj4KCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQk8PAoJCQkJCQkJL1N0cmVhbVRhZyAvUm93Q29sU3RyaWtlCgkJCQkJCQkvUm93Q29sSW5kZXggMAoJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJPDwKCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCQk+PgoJCQkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJCQkvQ2hpbGRQcm9jZXNzaW9uIDIKCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQk8PAoJCQkJCQkJCS9TdHJlYW1UYWcgL0xpbmVTdHJpa2UKCQkJCQkJCQkvQmFzZWxpbmUgMC4wCgkJCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJCQkvRU1IZWlnaHQgMjAuNzczMzEKCQkJCQkJCQkvREhlaWdodCAxNC44MzE5MgoJCQkJCQkJCS9TZWxlY3Rpb25Bc2NlbnQgLTE3LjgwMjYxCgkJCQkJCQkJL1NlbGVjdGlvbkRlc2NlbnQgMTMuMzk0MzMKCQkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQkJPDwKCQkJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQkJCT4+CgkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMC4wIDQuNTA3NzEgXQoJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2VnbWVudAoJCQkJCQkJCQkvTWFwcGluZwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL0NoYXJhY3RlckNvdW50IDQKCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0ZpcnN0Q2hhcmFjdGVySW5kZXhJblNlZ21lbnQgMAoJCQkJCQkJCQkvVW5kZXJsaW5lSW52YWxpZGF0aW9uIFsgLTIwLjI0MzIyIDguODg2NjIgMjAuNjU4NjggOC44ODY2MiBdCgkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9PcmlnaW4gWyAtMjAuMjQzMjIgMC4wIF0KCQkJCQkJCQkJPj4KCQkJCQkJCQkJL0JvdW5kcyBbIDAuMCAtMTcuODAyNjEgMzAwMjAuMjQ0MTQgNC41MDc3MSBdCgkJCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMQoJCQkJCQkJCQkvQ2hpbGRyZW4gWwoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvR2x5cGhTdHJpa2UKCQkJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL09yaWdpbiBbIDAuMCA4Ljg4NjYyIF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSA0MC45MDE5IDQuNTA3NzEgXQoJCQkJCQkJCQkJL0dseXBocyBbIDYzIDUxIDU4IDMgXQoJCQkJCQkJCQkJL0dseXBoQWRqdXN0bWVudHMKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL0RhdGEgWwoJCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJCS9CYWNrRml4ZWQgMC40MTU0NwoJCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkJXQoJCQkJCQkJCQkJCS9SdW5MZW5ndGhzIFsgNCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJL1JlbmRlcmVkQm91bmRzIFsgLTIwLjM0Njg3IC04LjkxNTk5IDIwLjY1ODY4IDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9WaXN1YWxCb3VuZHMgWyAtMjAuMzQ2ODcgLTguOTE1OTkgMjAuNjU4NjggMTMuMzk0MzMgXQoJCQkJCQkJCQkJL0ludmFsaWRhdGlvbiBbIC0yMC4zNDY4NyAtOC45MTU5OSAzMS43NzIxNSAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvU2hhZG93U3R5bGVzUnVuCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9EYXRhIFsKCQkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCQkvSW5kZXggMAoJCQkJCQkJCQkJCQkvRm9udCAwCgkJCQkJCQkJCQkJCS9PcmllbnRhdGlvbiAwCgkJCQkJCQkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCQkJCQkJCS9LZXJuVHlwZSAxCgkJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCQldCgkJCQkJCQkJCQkJL1J1bkxlbmd0aHMgWyA0IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJCV0KCQkJCQkJCQkJL0Fubm90YXRpb24KCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9XaWR0aCAwLjAKCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQldCgkJCQkJCT4+CgkJCQkJCV0KCQkJCQk+PgoJCQkJCV0KCQkJCT4+CgkJCQldCgkJCT4+CgkJCV0KCQk+PgoJCS9PcHRpY2FsQWxpZ25tZW50IGZhbHNlCgk+PgoJPDwKCQkvTW9kZWwKCQk8PAoJCQkvVGV4dCAo/v8AQwBTAFYADSkKCQkJL1BhcmFncmFwaFJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCQkvUGFyYWdyYXBoU2hlZXQKCQkJCQkJPDwKCQkJCQkJCS9OYW1lICj+/ykKCQkJCQkJCS9GZWF0dXJlcwoJCQkJCQkJPDwKCQkJCQkJCQkvSnVzdGlmaWNhdGlvbiAyCgkJCQkJCQkJL0ZpcnN0TGluZUluZGVudCAwLjAKCQkJCQkJCQkvU3RhcnRJbmRlbnQgMC4wCgkJCQkJCQkJL0VuZEluZGVudCAwLjAKCQkJCQkJCQkvU3BhY2VCZWZvcmUgMC4wCgkJCQkJCQkJL1NwYWNlQWZ0ZXIgMC4wCgkJCQkJCQkJL0Ryb3BDYXBzIDEKCQkJCQkJCQkvQXV0b0xlYWRpbmcgMS4yCgkJCQkJCQkJL0xlYWRpbmdUeXBlIDAKCQkJCQkJCQkvQXV0b0h5cGhlbmF0ZSB0cnVlCgkJCQkJCQkJL0h5cGhlbmF0ZWRXb3JkU2l6ZSA4CgkJCQkJCQkJL1ByZUh5cGhlbiAzCgkJCQkJCQkJL1Bvc3RIeXBoZW4gMwoJCQkJCQkJCS9Db25zZWN1dGl2ZUh5cGhlbnMgMgoJCQkJCQkJCS9ab25lIDM2LjAKCQkJCQkJCQkvSHlwaGVuYXRlQ2FwaXRhbGl6ZWQgdHJ1ZQoJCQkJCQkJCS9IeXBoZW5hdGlvblByZWZlcmVuY2UgMC41CgkJCQkJCQkJL1dvcmRTcGFjaW5nIFsgMC44IDEuMCAxLjMzIF0KCQkJCQkJCQkvTGV0dGVyU3BhY2luZyBbIDAuMCAwLjAgMC4wIF0KCQkJCQkJCQkvR2x5cGhTcGFjaW5nIFsgMS4wIDEuMCAxLjAgXQoJCQkJCQkJCS9TaW5nbGVXb3JkSnVzdGlmaWNhdGlvbiA2CgkJCQkJCQkJL0hhbmdpbmcgZmFsc2UKCQkJCQkJCQkvQXV0b1RDWSAxCgkJCQkJCQkJL0tlZXBUb2dldGhlciB0cnVlCgkJCQkJCQkJL0J1cmFzYWdhcmlUeXBlIDAKCQkJCQkJCQkvS2luc29rdU9yZGVyIDAKCQkJCQkJCQkvS3VyaWthZXNoaU1vamlTaG9yaSBmYWxzZQoJCQkJCQkJCS9LaW5zb2t1IC9uaWwKCQkJCQkJCQkvTW9qaUt1bWlUYWJsZSAvbmlsCgkJCQkJCQkJL0V2ZXJ5TGluZUNvbXBvc2VyIGZhbHNlCgkJCQkJCQkJL1RhYlN0b3BzCgkJCQkJCQkJPDwKCQkJCQkJCQk+PgoJCQkJCQkJCS9EZWZhdWx0VGFiV2lkdGggMzYuMAoJCQkJCQkJCS9EZWZhdWx0U3R5bGUKCQkJCQkJCQk8PAoJCQkJCQkJCQkvRmlsbENvbG9yCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkJL0NvbG9yCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCQkvVmFsdWVzIFsgMS4wIDAuOTU2ODUgMC45NTY4NSAwLjk1Njg1IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJCS9TdHJva2VDb2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvVHlwZSAxCgkJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvRmlsbEZsYWcgdHJ1ZQoJCQkJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkJCT4+CgkJCQkJCQk+PgoJCQkJCQkJL1BhcmVudCAwCgkJCQkJCT4+CgkJCQkJPj4KCQkJCQkvTGVuZ3RoIDQKCQkJCT4+CgkJCQldCgkJCT4+CgkJCS9TdHlsZVJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCQkvU3R5bGVTaGVldAoJCQkJCQk8PAoJCQkJCQkJL05hbWUgKP7/KQoJCQkJCQkJL1BhcmVudCAwCgkJCQkJCQkvRmVhdHVyZXMKCQkJCQkJCTw8CgkJCQkJCQkJL0ZvbnQgMAoJCQkJCQkJCS9Gb250U2l6ZSAyMC43NzMzMQoJCQkJCQkJCS9GYXV4Qm9sZCBmYWxzZQoJCQkJCQkJCS9GYXV4SXRhbGljIGZhbHNlCgkJCQkJCQkJL0F1dG9MZWFkaW5nIGZhbHNlCgkJCQkJCQkJL0xlYWRpbmcgMzkuODYxOTgKCQkJCQkJCQkvSG9yaXpvbnRhbFNjYWxlIDEuMAoJCQkJCQkJCS9WZXJ0aWNhbFNjYWxlIDEuMAoJCQkJCQkJCS9UcmFja2luZyAyMAoJCQkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCQkJL0NoYXJhY3RlclJvdGF0aW9uIDAuMAoJCQkJCQkJCS9BdXRvS2VybiAxCgkJCQkJCQkJL0ZvbnRDYXBzIDAKCQkJCQkJCQkvRm9udEJhc2VsaW5lIDAKCQkJCQkJCQkvRm9udE9UUG9zaXRpb24gMAoJCQkJCQkJCS9TdHJpa2V0aHJvdWdoUG9zaXRpb24gMAoJCQkJCQkJCS9VbmRlcmxpbmVQb3NpdGlvbiAwCgkJCQkJCQkJL1VuZGVybGluZU9mZnNldCAwLjAKCQkJCQkJCQkvTGlnYXR1cmVzIHRydWUKCQkJCQkJCQkvRGlzY3JldGlvbmFyeUxpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9Db250ZXh0dWFsTGlnYXR1cmVzIGZhbHNlCgkJCQkJCQkJL0FsdGVybmF0ZUxpZ2F0dXJlcyBmYWxzZQoJCQkJCQkJCS9PbGRTdHlsZSBmYWxzZQoJCQkJCQkJCS9GcmFjdGlvbnMgZmFsc2UKCQkJCQkJCQkvT3JkaW5hbHMgZmFsc2UKCQkJCQkJCQkvU3dhc2ggZmFsc2UKCQkJCQkJCQkvVGl0bGluZyBmYWxzZQoJCQkJCQkJCS9Db25uZWN0aW9uRm9ybXMgZmFsc2UKCQkJCQkJCQkvU3R5bGlzdGljQWx0ZXJuYXRlcyBmYWxzZQoJCQkJCQkJCS9Pcm5hbWVudHMgZmFsc2UKCQkJCQkJCQkvRmlndXJlU3R5bGUgMAoJCQkJCQkJCS9Qcm9wb3J0aW9uYWxNZXRyaWNzIGZhbHNlCgkJCQkJCQkJL0thbmEgZmFsc2UKCQkJCQkJCQkvSXRhbGljcyBmYWxzZQoJCQkJCQkJCS9SdWJ5IGZhbHNlCgkJCQkJCQkJL0Jhc2VsaW5lRGlyZWN0aW9uIDEKCQkJCQkJCQkvVHN1bWUgMC4wCgkJCQkJCQkJL1N0eWxlUnVuQWxpZ25tZW50IDIKCQkJCQkJCQkvTGFuZ3VhZ2UgMAoJCQkJCQkJCS9KYXBhbmVzZUFsdGVybmF0ZUZlYXR1cmUgMAoJCQkJCQkJCS9FbmFibGVXYXJpQ2h1IGZhbHNlCgkJCQkJCQkJL1dhcmlDaHVMaW5lQ291bnQgMgoJCQkJCQkJCS9XYXJpQ2h1TGluZUdhcCAwCgkJCQkJCQkJL1dhcmlDaHVTdWJMaW5lQW1vdW50CgkJCQkJCQkJPDwKCQkJCQkJCQkJL1dhcmlDaHVTdWJMaW5lU2NhbGUgMC41CgkJCQkJCQkJPj4KCQkJCQkJCQkvV2FyaUNodVdpZG93QW1vdW50IDIKCQkJCQkJCQkvV2FyaUNodU9ycGhhbkFtb3VudCAyCgkJCQkJCQkJL1dhcmlDaHVKdXN0aWZpY2F0aW9uIDcKCQkJCQkJCQkvVENZVXBEb3duQWRqdXN0bWVudCAwCgkJCQkJCQkJL1RDWUxlZnRSaWdodEFkanVzdG1lbnQgMAoJCQkJCQkJCS9MZWZ0QWtpIC0xLjAKCQkJCQkJCQkvUmlnaHRBa2kgLTEuMAoJCQkJCQkJCS9KaURvcmkgMAoJCQkJCQkJCS9Ob0JyZWFrIGZhbHNlCgkJCQkJCQkJL0ZpbGxDb2xvcgoJCQkJCQkJCTw8CgkJCQkJCQkJCS9TdHJlYW1UYWcgL1NpbXBsZVBhaW50CgkJCQkJCQkJCS9Db2xvcgoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL1R5cGUgMQoJCQkJCQkJCQkJL1ZhbHVlcyBbIDEuMCAwLjk1Njg1IDAuOTU2ODUgMC45NTY4NSBdCgkJCQkJCQkJCT4+CgkJCQkJCQkJPj4KCQkJCQkJCQkvU3Ryb2tlQ29sb3IKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkJCQkJCQkvQ29sb3IKCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9UeXBlIDEKCQkJCQkJCQkJCS9WYWx1ZXMgWyAxLjAgMC45NTY4NSAwLjk1Njg1IDAuOTU2ODUgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCT4+CgkJCQkJCQkJL0JsZW5kCgkJCQkJCQkJPDwKCQkJCQkJCQkJL1N0cmVhbVRhZyAvU2ltcGxlQmxlbmRlcgoJCQkJCQkJCT4+CgkJCQkJCQkJL0ZpbGxGbGFnIHRydWUKCQkJCQkJCQkvU3Ryb2tlRmxhZyBmYWxzZQoJCQkJCQkJCS9GaWxsRmlyc3QgZmFsc2UKCQkJCQkJCQkvRmlsbE92ZXJQcmludCBmYWxzZQoJCQkJCQkJCS9TdHJva2VPdmVyUHJpbnQgZmFsc2UKCQkJCQkJCQkvTGluZUNhcCAwCgkJCQkJCQkJL0xpbmVKb2luIDAKCQkJCQkJCQkvTGluZVdpZHRoIDAuMDQxNjcKCQkJCQkJCQkvTWl0ZXJMaW1pdCAwLjA0MTY3CgkJCQkJCQkJL0xpbmVEYXNoT2Zmc2V0IDAuMAoJCQkJCQkJCS9MaW5lRGFzaEFycmF5IFsgXQoJCQkJCQkJCS9UeXBlMUVuY29kaW5nTmFtZXMgWyBdCgkJCQkJCQk+PgoJCQkJCQk+PgoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvS2VyblJ1bgoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCT4+CgkJCQkJL0xlbmd0aCA0CgkJCQk+PgoJCQkJXQoJCQk+PgoJCQkvQWx0ZXJuYXRlR2x5cGhSdW4KCQkJPDwKCQkJCS9SdW5BcnJheSBbCgkJCQk8PAoJCQkJCS9SdW5EYXRhCgkJCQkJPDwKCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL1N0b3J5U2hlZXQKCQkJPDwKCQkJCS9BbnRpQWxpYXMgNAoJCQkJL1VzZUZyYWN0aW9uYWxHbHlwaFdpZHRocyB0cnVlCgkJCT4+CgkJPj4KCQkvVmlldwoJCTw8CgkJCS9GcmFtZXMgWwoJCQk8PAoJCQkJL1Jlc291cmNlIDM4CgkJCT4+CgkJCV0KCQkJL1JlbmRlcmVkRGF0YQoJCQk8PAoJCQkJL1J1bkFycmF5IFsKCQkJCTw8CgkJCQkJL1J1bkRhdGEKCQkJCQk8PAoJCQkJCQkvTGluZUNvdW50IDEKCQkJCQk+PgoJCQkJCS9MZW5ndGggNAoJCQkJPj4KCQkJCV0KCQkJPj4KCQkJL1N0cmlrZXMgWwoJCQk8PAoJCQkJL1N0cmVhbVRhZyAvUGF0aFNlbGVjdEdyb3VwQ2hhcmFjdGVyCgkJCQkvVHJhbnNmb3JtCgkJCQk8PAoJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCT4+CgkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCS9DaGlsZFByb2Nlc3Npb24gMAoJCQkJL0NoaWxkcmVuIFsKCQkJCTw8CgkJCQkJL1N0cmVhbVRhZyAvRnJhbWVTdHJpa2UKCQkJCQkvRnJhbWUgMzgKCQkJCQkvVHJhbnNmb3JtCgkJCQkJPDwKCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCT4+CgkJCQkJL0JvdW5kcyBbIDAuMCAwLjAgMC4wIDAuMCBdCgkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAyCgkJCQkJL0NoaWxkcmVuIFsKCQkJCQk8PAoJCQkJCQkvU3RyZWFtVGFnIC9Sb3dDb2xTdHJpa2UKCQkJCQkJL1Jvd0NvbEluZGV4IDAKCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQk8PAoJCQkJCQkJL09yaWdpbiBbIDAuMCAwLjAgXQoJCQkJCQk+PgoJCQkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAxCgkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCTw8CgkJCQkJCQkvU3RyZWFtVGFnIC9Sb3dDb2xTdHJpa2UKCQkJCQkJCS9Sb3dDb2xJbmRleCAwCgkJCQkJCQkvVHJhbnNmb3JtCgkJCQkJCQk8PAoJCQkJCQkJCS9PcmlnaW4gWyAwLjAgMC4wIF0KCQkJCQkJCT4+CgkJCQkJCQkvQm91bmRzIFsgMC4wIDAuMCAwLjAgMC4wIF0KCQkJCQkJCS9DaGlsZFByb2Nlc3Npb24gMgoJCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJCTw8CgkJCQkJCQkJL1N0cmVhbVRhZyAvTGluZVN0cmlrZQoJCQkJCQkJCS9CYXNlbGluZSAwLjAKCQkJCQkJCQkvTGVhZGluZyAzOS44NjE5OAoJCQkJCQkJCS9FTUhlaWdodCAyMC43NzMzMQoJCQkJCQkJCS9ESGVpZ2h0IDE0LjgzMTkyCgkJCQkJCQkJL1NlbGVjdGlvbkFzY2VudCAtMTcuODAyNjEKCQkJCQkJCQkvU2VsZWN0aW9uRGVzY2VudCAxMy4zOTQzMwoJCQkJCQkJCS9UcmFuc2Zvcm0KCQkJCQkJCQk8PAoJCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDAuMCBdCgkJCQkJCQkJPj4KCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSAwLjAgNC41MDc3MSBdCgkJCQkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAxCgkJCQkJCQkJL0NoaWxkcmVuIFsKCQkJCQkJCQk8PAoJCQkJCQkJCQkvU3RyZWFtVGFnIC9TZWdtZW50CgkJCQkJCQkJCS9NYXBwaW5nCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvQ2hhcmFjdGVyQ291bnQgNAoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvRmlyc3RDaGFyYWN0ZXJJbmRleEluU2VnbWVudCAwCgkJCQkJCQkJCS9VbmRlcmxpbmVJbnZhbGlkYXRpb24gWyAtMjEuMzk2MjIgOC44ODY2MiAyMS44MTE2OSA4Ljg4NjYyIF0KCQkJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJCQk8PAoJCQkJCQkJCQkJL09yaWdpbiBbIC0yMS4zOTYyMiAwLjAgXQoJCQkJCQkJCQk+PgoJCQkJCQkJCQkvQm91bmRzIFsgMC4wIC0xNy44MDI2MSAzMDAyMS4zOTY0OCA0LjUwNzcxIF0KCQkJCQkJCQkJL0NoaWxkUHJvY2Vzc2lvbiAxCgkJCQkJCQkJCS9DaGlsZHJlbiBbCgkJCQkJCQkJCTw8CgkJCQkJCQkJCQkvU3RyZWFtVGFnIC9HbHlwaFN0cmlrZQoJCQkJCQkJCQkJL1RyYW5zZm9ybQoJCQkJCQkJCQkJPDwKCQkJCQkJCQkJCQkvT3JpZ2luIFsgMC4wIDguODg2NjIgXQoJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCS9Cb3VuZHMgWyAwLjAgLTE3LjgwMjYxIDQzLjIwNzkyIDQuNTA3NzEgXQoJCQkJCQkJCQkJL0dseXBocyBbIDQyIDU4IDYxIDMgXQoJCQkJCQkJCQkJL0dseXBoQWRqdXN0bWVudHMKCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJL0RhdGEgWwoJCQkJCQkJCQkJCTw8CgkJCQkJCQkJCQkJCS9CYWNrRml4ZWQgMC40MTU0NwoJCQkJCQkJCQkJCT4+CgkJCQkJCQkJCQkJXQoJCQkJCQkJCQkJCS9SdW5MZW5ndGhzIFsgNCBdCgkJCQkJCQkJCQk+PgoJCQkJCQkJCQkJL1JlbmRlcmVkQm91bmRzIFsgLTIxLjM5NjIyIC04LjkxNTk5IDIxLjgxMTY5IDEzLjM5NDMzIF0KCQkJCQkJCQkJCS9WaXN1YWxCb3VuZHMgWyAtMjEuMzk2MjIgLTguOTE1OTkgMjEuODExNjkgMTMuMzk0MzMgXQoJCQkJCQkJCQkJL0ludmFsaWRhdGlvbiBbIC0yMS4zOTYyMiAtOC45MTU5OSAzMi45MjUxNiAxMy4zOTQzMyBdCgkJCQkJCQkJCQkvU2hhZG93U3R5bGVzUnVuCgkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCS9EYXRhIFsKCQkJCQkJCQkJCQk8PAoJCQkJCQkJCQkJCQkvSW5kZXggMAoJCQkJCQkJCQkJCQkvRm9udCAwCgkJCQkJCQkJCQkJCS9PcmllbnRhdGlvbiAwCgkJCQkJCQkJCQkJCS9CYXNlbGluZVNoaWZ0IC04Ljg4NjYyCgkJCQkJCQkJCQkJCS9LZXJuVHlwZSAxCgkJCQkJCQkJCQkJPj4KCQkJCQkJCQkJCQldCgkJCQkJCQkJCQkJL1J1bkxlbmd0aHMgWyA0IF0KCQkJCQkJCQkJCT4+CgkJCQkJCQkJCT4+CgkJCQkJCQkJCV0KCQkJCQkJCQkJL0Fubm90YXRpb24KCQkJCQkJCQkJPDwKCQkJCQkJCQkJCS9XaWR0aCAwLjAKCQkJCQkJCQkJPj4KCQkJCQkJCQk+PgoJCQkJCQkJCV0KCQkJCQkJCT4+CgkJCQkJCQldCgkJCQkJCT4+CgkJCQkJCV0KCQkJCQk+PgoJCQkJCV0KCQkJCT4+CgkJCQldCgkJCT4+CgkJCV0KCQk+PgoJCS9PcHRpY2FsQWxpZ25tZW50IGZhbHNlCgk+PgoJXQoJL09yaWdpbmFsTm9ybWFsU3R5bGVGZWF0dXJlcwoJPDwKCQkvRm9udCAxCgkJL0ZvbnRTaXplIDEyLjAKCQkvRmF1eEJvbGQgZmFsc2UKCQkvRmF1eEl0YWxpYyBmYWxzZQoJCS9BdXRvTGVhZGluZyB0cnVlCgkJL0xlYWRpbmcgMC4wCgkJL0hvcml6b250YWxTY2FsZSAxLjAKCQkvVmVydGljYWxTY2FsZSAxLjAKCQkvVHJhY2tpbmcgMAoJCS9CYXNlbGluZVNoaWZ0IDAuMAoJCS9DaGFyYWN0ZXJSb3RhdGlvbiAwLjAKCQkvQXV0b0tlcm4gMQoJCS9Gb250Q2FwcyAwCgkJL0ZvbnRCYXNlbGluZSAwCgkJL0ZvbnRPVFBvc2l0aW9uIDAKCQkvU3RyaWtldGhyb3VnaFBvc2l0aW9uIDAKCQkvVW5kZXJsaW5lUG9zaXRpb24gMAoJCS9VbmRlcmxpbmVPZmZzZXQgMC4wCgkJL0xpZ2F0dXJlcyB0cnVlCgkJL0Rpc2NyZXRpb25hcnlMaWdhdHVyZXMgZmFsc2UKCQkvQ29udGV4dHVhbExpZ2F0dXJlcyBmYWxzZQoJCS9BbHRlcm5hdGVMaWdhdHVyZXMgZmFsc2UKCQkvT2xkU3R5bGUgZmFsc2UKCQkvRnJhY3Rpb25zIGZhbHNlCgkJL09yZGluYWxzIGZhbHNlCgkJL1N3YXNoIGZhbHNlCgkJL1RpdGxpbmcgZmFsc2UKCQkvQ29ubmVjdGlvbkZvcm1zIGZhbHNlCgkJL1N0eWxpc3RpY0FsdGVybmF0ZXMgZmFsc2UKCQkvT3JuYW1lbnRzIGZhbHNlCgkJL0ZpZ3VyZVN0eWxlIDAKCQkvUHJvcG9ydGlvbmFsTWV0cmljcyBmYWxzZQoJCS9LYW5hIGZhbHNlCgkJL0l0YWxpY3MgZmFsc2UKCQkvUnVieSBmYWxzZQoJCS9CYXNlbGluZURpcmVjdGlvbiAyCgkJL1RzdW1lIDAuMAoJCS9TdHlsZVJ1bkFsaWdubWVudCAyCgkJL0xhbmd1YWdlIDAKCQkvSmFwYW5lc2VBbHRlcm5hdGVGZWF0dXJlIDAKCQkvRW5hYmxlV2FyaUNodSBmYWxzZQoJCS9XYXJpQ2h1TGluZUNvdW50IDIKCQkvV2FyaUNodUxpbmVHYXAgMAoJCS9XYXJpQ2h1U3ViTGluZUFtb3VudAoJCTw8CgkJCS9XYXJpQ2h1U3ViTGluZVNjYWxlIDAuNQoJCT4+CgkJL1dhcmlDaHVXaWRvd0Ftb3VudCAyCgkJL1dhcmlDaHVPcnBoYW5BbW91bnQgMgoJCS9XYXJpQ2h1SnVzdGlmaWNhdGlvbiA3CgkJL1RDWVVwRG93bkFkanVzdG1lbnQgMAoJCS9UQ1lMZWZ0UmlnaHRBZGp1c3RtZW50IDAKCQkvTGVmdEFraSAtMS4wCgkJL1JpZ2h0QWtpIC0xLjAKCQkvSmlEb3JpIDAKCQkvTm9CcmVhayBmYWxzZQoJCS9GaWxsQ29sb3IKCQk8PAoJCQkvU3RyZWFtVGFnIC9TaW1wbGVQYWludAoJCQkvQ29sb3IKCQkJPDwKCQkJCS9UeXBlIDEKCQkJCS9WYWx1ZXMgWyAxLjAgMC4wIDAuMCAwLjAgXQoJCQk+PgoJCT4+CgkJL1N0cm9rZUNvbG9yCgkJPDwKCQkJL1N0cmVhbVRhZyAvU2ltcGxlUGFpbnQKCQkJL0NvbG9yCgkJCTw8CgkJCQkvVHlwZSAxCgkJCQkvVmFsdWVzIFsgMS4wIDAuMCAwLjAgMC4wIF0KCQkJPj4KCQk+PgoJCS9CbGVuZAoJCTw8CgkJCS9TdHJlYW1UYWcgL1NpbXBsZUJsZW5kZXIKCQk+PgoJCS9GaWxsRmxhZyB0cnVlCgkJL1N0cm9rZUZsYWcgZmFsc2UKCQkvRmlsbEZpcnN0IHRydWUKCQkvRmlsbE92ZXJQcmludCBmYWxzZQoJCS9TdHJva2VPdmVyUHJpbnQgZmFsc2UKCQkvTGluZUNhcCAwCgkJL0xpbmVKb2luIDAKCQkvTGluZVdpZHRoIDEuMAoJCS9NaXRlckxpbWl0IDQuMAoJCS9MaW5lRGFzaE9mZnNldCAwLjAKCQkvTGluZURhc2hBcnJheSBbIF0KCQkvVHlwZTFFbmNvZGluZ05hbWVzIFsgXQoJPj4KCS9PcmlnaW5hbE5vcm1hbFBhcmFncmFwaEZlYXR1cmVzCgk8PAoJCS9KdXN0aWZpY2F0aW9uIDAKCQkvRmlyc3RMaW5lSW5kZW50IDAuMAoJCS9T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]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/TableTools/media/images/psd/printer.psd</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[OEJQUwABAAAAAAAAAAQAAAAwAAAAMAAIAAMAAAAAAABdqjhCSU0EBAAAAAAApxwCAAACAAIcAngAMfAgTWFkZSBvbiBhIE1hYyENRXhjbHVzaXZlIGZvciBTbWFzaGluZyBNYWdhemluZSEcAlAAEU9saXZlciBUd2FyZG93c2tpHAIZAAVpY29ucxwCGQANcHNkIHJlc3NvdXJjZRwCGQAHZmxhdm91chwCdAAnqSAgICAgICAgICAgDSAyMDA5IGJ5IE9saXZlciBUd2FyZG93c2tpADhCSU0EJQAAAAAAEJ8tNPbssDuz5hXaVaYTABQ4QklNBCQAAAAAKak8P3hwYWNrZXQgYmVnaW49J++7vycgaWQ9J1c1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCc/Pgo8eDp4bXBtZXRhIHhtbG5zOng9J2Fkb2JlOm5zOm1ldGEvJyB4OnhtcHRrPSdYTVAgdG9vbGtpdCAzLjAtMjgsIGZyYW1ld29yayAxLjYnPgo8cmRmOlJERiB4bWxuczpyZGY9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMnIHhtbG5zOmlYPSdodHRwOi8vbnMuYWRvYmUuY29tL2lYLzEuMC8nPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSd1dWlkOjAyNDUyOTE1LTU0ZmQtMTFkZS1hNjc4LWM5MzkzOWE0Yjg1MycKICB4bWxuczpleGlmPSdodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyc+CiAgPGV4aWY6TmF0aXZlRGlnZXN0PjM2ODY0LDQwOTYwLDQwOTYxLDM3MTIxLDM3MTIyLDQwOTYyLDQwOTYzLDM3NTEwLDQwOTY0LDM2ODY3LDM2ODY4LDMzNDM0LDMzNDM3LDM0ODUwLDM0ODUyLDM0ODU1LDM0ODU2LDM3Mzc3LDM3Mzc4LDM3Mzc5LDM3MzgwLDM3MzgxLDM3MzgyLDM3MzgzLDM3Mzg0LDM3Mzg1LDM3Mzg2LDM3Mzk2LDQxNDgzLDQxNDg0LDQxNDg2LDQxNDg3LDQxNDg4LDQxNDkyLDQxNDkzLDQxNDk1LDQxNzI4LDQxNzI5LDQxNzMwLDQxOTg1LDQxOTg2LDQxOTg3LDQxOTg4LDQxOTg5LDQxOTkwLDQxOTkxLDQxOTkyLDQxOTkzLDQxOTk0LDQxOTk1LDQxOTk2LDQyMDE2LDAsMiw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwyMCwyMiwyMywyNCwyNSwyNiwyNywyOCwzMDs4OUFENkE0QjU4MjI4RDg4NTlDOTczMEY4RTZGQzY4MTwvZXhpZjpOYXRpdmVEaWdlc3Q+CiAgPGV4aWY6Q29sb3JTcGFjZT40Mjk0OTY3Mjk1PC9leGlmOkNvbG9yU3BhY2U+CiAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjQ4PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NDg8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9J3V1aWQ6MDI0NTI5MTUtNTRmZC0xMWRlLWE2NzgtYzkzOTM5YTRiODUzJwogIHhtbG5zOnBkZj0naHR0cDovL25zLmFkb2JlLmNvbS9wZGYvMS4zLyc+CiA8L3JkZjpEZXNjcmlwdGlvbj4KCiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0ndXVpZDowMjQ1MjkxNS01NGZkLTExZGUtYTY3OC1jOTM5MzlhNGI4NTMnCiAgeG1sbnM6cGhvdG9zaG9wPSdodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvJz4KICA8cGhvdG9zaG9wOklDQ1Byb2ZpbGU+QWRvYmUgUkdCICgxOTk4KTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICA8cGhvdG9zaG9wOkhpc3Rvcnk+PC9waG90b3Nob3A6SGlzdG9yeT4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSd1dWlkOjAyNDUyOTE1LTU0ZmQtMTFkZS1hNjc4LWM5MzkzOWE0Yjg1MycKICB4bWxuczp0aWZmPSdodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyc+CiAgPHRpZmY6TmF0aXZlRGlnZXN0PjI1NiwyNTcsMjU4LDI1OSwyNjIsMjc0LDI3NywyODQsNTMwLDUzMSwyODIsMjgzLDI5NiwzMDEsMzE4LDMxOSw1MjksNTMyLDMwNiwyNzAsMjcxLDI3MiwzMDUsMzE1LDMzNDMyOzQzOTkzQUU5QUM5QzUyNEFBNUIyQjU2N0Q4NTNENEVGPC90aWZmOk5hdGl2ZURpZ2VzdD4KICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogIDx0aWZmOllSZXNvbHV0aW9uPjcyLzE8L3RpZmY6WVJlc29sdXRpb24+CiAgPHRpZmY6WFJlc29sdXRpb24+NzIvMTwvdGlmZjpYUmVzb2x1dGlvbj4KICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9J3V1aWQ6MDI0NTI5MTUtNTRmZC0xMWRlLWE2NzgtYzkzOTM5YTRiODUzJwogIHhtbG5zOnhhcD0naHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyc+CiAgPHhhcDpNZXRhZGF0YURhdGU+MjAwOS0wNi0wN1QxMzo1NToxNiswMTowMDwveGFwOk1ldGFkYXRhRGF0ZT4KICA8eGFwOk1vZGlmeURhdGU+MjAwOS0wNi0wN1QxMzo1NToxNiswMTowMDwveGFwOk1vZGlmeURhdGU+CiAgPHhhcDpDcmVhdGVEYXRlPjIwMDktMDQtMDZUMTE6MzE6MDkrMDI6MDA8L3hhcDpDcmVhdGVEYXRlPgogIDx4YXA6Q3JlYXRvclRvb2w+QWRvYmUgUGhvdG9zaG9wIENTIE1hY2ludG9zaDwveGFwOkNyZWF0b3JUb29sPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9J3V1aWQ6MDI0NTI5MTUtNTRmZC0xMWRlLWE2NzgtYzkzOTM5YTRiODUzJwogIHhtbG5zOnN0RXZ0PSdodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMnCiAgeG1sbnM6c3RSZWY9J2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMnCiAgeG1sbnM6eGFwTU09J2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8nPgogIDx4YXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6MUE4OTlFMzA0QTIwNjgxMTkxMDlFMzE1MDM1NzQ3QzI8L3hhcE1NOkluc3RhbmNlSUQ+CiAgPHhhcE1NOkRvY3VtZW50SUQ+dXVpZDoyREQ3ODMyNjI0MzAxMURFQjFDQkQwQkEyQkYwMzU4OTwveGFwTU06RG9jdW1lbnRJRD4KICA8eGFwTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0nUmVzb3VyY2UnPgogICA8c3RSZWY6aW5zdGFuY2VJRD51dWlkOjg5QkExNDlEMjFFNTExREU4QTBCQkRGRkJDNjlFRkM5PC9zdFJlZjppbnN0YW5jZUlEPgogICA8c3RSZWY6ZG9jdW1lbnRJRD51dWlkOkQ5NzNCQzc0RTNBRjExRERCRDIwQTdEMDFDMUYzQkZCPC9zdFJlZjpkb2N1bWVudElEPgogIDwveGFwTU06RGVyaXZlZEZyb20+CiAgPHhhcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD51dWlkOjJERDc4MzI2MjQzMDExREVCMUNCRDBCQTJCRjAzNTg5PC94YXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgPHhhcE1NOkhpc3Rvcnk+CiAgIDxyZGY6U2VxPgogICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSdSZXNvdXJjZSc+CiAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6MTQ4OTlFMzA0QTIwNjgxMTkxMDlFMzE1MDM1NzQ3QzI8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgPHN0RXZ0OndoZW4+MjAwOS0wNS0wOVQyMTo0NDo0NyswMjowMDwvc3RFdnQ6d2hlbj4KICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M0IE1hY2ludG9zaDwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgPC9yZGY6bGk+CiAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9J1Jlc291cmNlJz4KICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDoxNTg5OUUzMDRBMjA2ODExOTEwOUUzMTUwMzU3NDdDMjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICA8c3RFdnQ6d2hlbj4yMDA5LTA1LTA5VDIxOjU5OjI5KzAyOjAwPC9zdEV2dDp3aGVuPgogICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzQgTWFjaW50b3NoPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICA8L3JkZjpsaT4KICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0nUmVzb3VyY2UnPgogICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjE2ODk5RTMwNEEyMDY4MTE5MTA5RTMxNTAzNTc0N0MyPC9zdEV2dDppbnN0YW5jZUlEPgogICAgIDxzdEV2dDp3aGVuPjIwMDktMDUtMDlUMjI6MDY6MjgrMDI6MDA8L3N0RXZ0OndoZW4+CiAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENTNCBNYWNpbnRvc2g8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgIDwvcmRmOmxpPgogICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSdSZXNvdXJjZSc+CiAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6MTc4OTlFMzA0QTIwNjgxMTkxMDlFMzE1MDM1NzQ3QzI8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgPHN0RXZ0OndoZW4+MjAwOS0wNS0wOVQyMjowOTo1NiswMjowMDwvc3RFdnQ6d2hlbj4KICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M0IE1hY2ludG9zaDwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgPC9yZGY6bGk+CiAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9J1Jlc291cmNlJz4KICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDoxODg5OUUzMDRBMjA2ODExOTEwOUUzMTUwMzU3NDdDMjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICA8c3RFdnQ6d2hlbj4yMDA5LTA1LTA5VDIyOjEyOjQ0KzAyOjAwPC9zdEV2dDp3aGVuPgogICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzQgTWFjaW50b3NoPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICA8L3JkZjpsaT4KICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0nUmVzb3VyY2UnPgogICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjE5ODk5RTMwNEEyMDY4MTE5MTA5RTMxNTAzNTc0N0MyPC9zdEV2dDppbnN0YW5jZUlEPgogICAgIDxzdEV2dDp3aGVuPjIwMDktMDUtMDlUMjI6MTc6MTYrMDI6MDA8L3N0RXZ0OndoZW4+CiAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENTNCBNYWNpbnRvc2g8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgIDwvcmRmOmxpPgogICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSdSZXNvdXJjZSc+CiAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6MUE4OTlFMzA0QTIwNjgxMTkxMDlFMzE1MDM1NzQ3QzI8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgPHN0RXZ0OndoZW4+MjAwOS0wNS0wOVQyMjoxNzo0MyswMjowMDwvc3RFdnQ6d2hlbj4KICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M0IE1hY2ludG9zaDwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgPC9yZGY6bGk+CiAgIDwvcmRmOlNlcT4KICA8L3hhcE1NOkhpc3Rvcnk+CiA8L3JkZjpEZXNjcmlwdGlvbj4KCiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0ndXVpZDowMjQ1MjkxNS01NGZkLTExZGUtYTY3OC1jOTM5MzlhNGI4NTMnCiAgeG1sbnM6eGFwUmlnaHRzPSdodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvcmlnaHRzLyc+CiAgPHhhcFJpZ2h0czpXZWJTdGF0ZW1lbnQ+aHR0cDovL2Jsb2cuYWRkaWN0ZWR0b2NvZmZlZS5kZTwveGFwUmlnaHRzOldlYlN0YXRlbWVudD4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSd1dWlkOjAyNDUyOTE1LTU0ZmQtMTFkZS1hNjc4LWM5MzkzOWE0Yjg1MycKICB4bWxuczpkYz0naHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8nPgogIDxkYzpmb3JtYXQ+YXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcDwvZGM6Zm9ybWF0PgogIDxkYzpjcmVhdG9yPgogICA8cmRmOlNlcT4KICAgIDxyZGY6bGk+T2xpdmVyIFR3YXJkb3dza2k8L3JkZjpsaT4KICAgPC9yZGY6U2VxPgogIDwvZGM6Y3JlYXRvcj4KICA8ZGM6ZGVzY3JpcHRpb24+CiAgIDxyZGY6QWx0PgogICAgPHJkZjpsaSB4bWw6bGFuZz0neC1kZWZhdWx0Jz7vo78gTWFkZSBvbiBhIE1hYyEmI3hBO0V4Y2x1c2l2ZSBmb3IgU21hc2hpbmcgTWFnYXppbmUhPC9yZGY6bGk+CiAgIDwvcmRmOkFsdD4KICA8L2RjOmRlc2NyaXB0aW9uPgogIDxkYzpyaWdodHM+CiAgIDxyZGY6QWx0PgogICAgPHJkZjpsaSB4bWw6bGFuZz0neC1kZWZhdWx0Jz7CqSAgICAgICAgICAgJiN4QTsgMjAwOSBieSBPbGl2ZXIgVHdhcmRvd3NraTwvcmRmOmxpPgogICA8L3JkZjpBbHQ+CiAgPC9kYzpyaWdodHM+CiAgPGRjOnN1YmplY3Q+CiAgIDxyZGY6QmFnPgogICAgPHJkZjpsaT5pY29uczwvcmRmOmxpPgogICAgPHJkZjpsaT5wc2QgcmVzc291cmNlPC9yZGY6bGk+CiAgICA8cmRmOmxpPmZsYXZvdXI8L3JkZjpsaT4KICAgPC9yZGY6QmFnPgogIDwvZGM6c3ViamVjdD4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9J3cnPz4AOEJJTQPqAAAAAB2mPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUgQ29tcHV0ZXIvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+CjxwbGlzdCB2ZXJzaW9uPSIxLjAiPgo8ZGljdD4KCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1Ib3Jpem9udGFsUmVzPC9rZXk+Cgk8ZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQk8YXJyYXk+CgkJCTxkaWN0PgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTUhvcml6b250YWxSZXM8L2tleT4KCQkJCTxyZWFsPjcyPC9yZWFsPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNsaWVudDwva2V5PgoJCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnRpbmdtYW5hZ2VyPC9zdHJpbmc+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQubW9kRGF0ZTwva2V5PgoJCQkJPGRhdGU+MjAwOS0wMS0xMlQwOTowMDo0Mlo8L2RhdGU+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQk8L2RpY3Q+CgkJPC9hcnJheT4KCTwvZGljdD4KCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1PcmllbnRhdGlvbjwva2V5PgoJPGRpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJPGFycmF5PgoJCQk8ZGljdD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1PcmllbnRhdGlvbjwva2V5PgoJCQkJPGludGVnZXI+MTwvaW50ZWdlcj4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jbGllbnQ8L2tleT4KCQkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1vZERhdGU8L2tleT4KCQkJCTxkYXRlPjIwMDktMDEtMTJUMDk6MDA6NDJaPC9kYXRlPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJPC9kaWN0PgoJCTwvYXJyYXk+Cgk8L2RpY3Q+Cgk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNU2NhbGluZzwva2V5PgoJPGRpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJPGFycmF5PgoJCQk8ZGljdD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1TY2FsaW5nPC9rZXk+CgkJCQk8cmVhbD4xPC9yZWFsPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNsaWVudDwva2V5PgoJCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnRpbmdtYW5hZ2VyPC9zdHJpbmc+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQubW9kRGF0ZTwva2V5PgoJCQkJPGRhdGU+MjAwOS0wMS0xMlQwOTowMDo0Mlo8L2RhdGU+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQk8L2RpY3Q+CgkJPC9hcnJheT4KCTwvZGljdD4KCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1WZXJ0aWNhbFJlczwva2V5PgoJPGRpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJPGFycmF5PgoJCQk8ZGljdD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1WZXJ0aWNhbFJlczwva2V5PgoJCQkJPHJlYWw+NzI8L3JlYWw+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQk8ZGF0ZT4yMDA5LTAxLTEyVDA5OjAwOjQyWjwvZGF0ZT4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCTwvZGljdD4KCQk8L2FycmF5PgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTVZlcnRpY2FsU2NhbGluZzwva2V5PgoJPGRpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJPGFycmF5PgoJCQk8ZGljdD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1WZXJ0aWNhbFNjYWxpbmc8L2tleT4KCQkJCTxyZWFsPjE8L3JlYWw+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQk8ZGF0ZT4yMDA5LTAxLTEyVDA5OjAwOjQyWjwvZGF0ZT4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCTwvZGljdD4KCQk8L2FycmF5PgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuc3ViVGlja2V0LnBhcGVyX2luZm9fdGlja2V0PC9rZXk+Cgk8ZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNQWRqdXN0ZWRQYWdlUmVjdDwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNQWRqdXN0ZWRQYWdlUmVjdDwva2V5PgoJCQkJCTxhcnJheT4KCQkJCQkJPHJlYWw+MC4wPC9yZWFsPgoJCQkJCQk8cmVhbD4wLjA8L3JlYWw+CgkJCQkJCTxyZWFsPjc4MzwvcmVhbD4KCQkJCQkJPHJlYWw+NTU5PC9yZWFsPgoJCQkJCTwvYXJyYXk+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNsaWVudDwva2V5PgoJCQkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQkJPGRhdGU+MjAwOS0wNi0wN1QxMjo1MjoxMFo8L2RhdGU+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhcGVyUmVjdDwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNQWRqdXN0ZWRQYXBlclJlY3Q8L2tleT4KCQkJCQk8YXJyYXk+CgkJCQkJCTxyZWFsPi0xODwvcmVhbD4KCQkJCQkJPHJlYWw+LTE4PC9yZWFsPgoJCQkJCQk8cmVhbD44MjQ8L3JlYWw+CgkJCQkJCTxyZWFsPjU3NzwvcmVhbD4KCQkJCQk8L2FycmF5PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jbGllbnQ8L2tleT4KCQkJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQubW9kRGF0ZTwva2V5PgoJCQkJCTxkYXRlPjIwMDktMDYtMDdUMTI6NTI6MTBaPC9kYXRlPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQkJPC9kaWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYXBlckluZm8uUE1QYXBlck5hbWU8L2tleT4KCQk8ZGljdD4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnQucG0uUG9zdFNjcmlwdDwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5QTVBhcGVyTmFtZTwva2V5PgoJCQkJCTxzdHJpbmc+aXNvLWE0PC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNsaWVudDwva2V5PgoJCQkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50LnBtLlBvc3RTY3JpcHQ8L3N0cmluZz4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQubW9kRGF0ZTwva2V5PgoJCQkJCTxkYXRlPjIwMDMtMDctMDFUMTc6NDk6MzZaPC9kYXRlPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCQk8aW50ZWdlcj4xPC9pbnRlZ2VyPgoJCQkJPC9kaWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYXBlckluZm8uUE1VbmFkanVzdGVkUGFnZVJlY3Q8L2tleT4KCQk8ZGljdD4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnQucG0uUG9zdFNjcmlwdDwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5QTVVuYWRqdXN0ZWRQYWdlUmVjdDwva2V5PgoJCQkJCTxhcnJheT4KCQkJCQkJPHJlYWw+MC4wPC9yZWFsPgoJCQkJCQk8cmVhbD4wLjA8L3JlYWw+CgkJCQkJCTxyZWFsPjc4MzwvcmVhbD4KCQkJCQkJPHJlYWw+NTU5PC9yZWFsPgoJCQkJCTwvYXJyYXk+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNsaWVudDwva2V5PgoJCQkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQkJPGRhdGU+MjAwOS0wMS0xMlQwOTowMDo0Mlo8L2RhdGU+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5QTVVuYWRqdXN0ZWRQYXBlclJlY3Q8L2tleT4KCQk8ZGljdD4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnQucG0uUG9zdFNjcmlwdDwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5QTVVuYWRqdXN0ZWRQYXBlclJlY3Q8L2tleT4KCQkJCQk8YXJyYXk+CgkJCQkJCTxyZWFsPi0xODwvcmVhbD4KCQkJCQkJPHJlYWw+LTE4PC9yZWFsPgoJCQkJCQk8cmVhbD44MjQ8L3JlYWw+CgkJCQkJCTxyZWFsPjU3NzwvcmVhbD4KCQkJCQk8L2FycmF5PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jbGllbnQ8L2tleT4KCQkJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQubW9kRGF0ZTwva2V5PgoJCQkJCTxkYXRlPjIwMDktMDEtMTJUMDk6MDA6NDJaPC9kYXRlPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQkJPC9kaWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYXBlckluZm8ucHBkLlBNUGFwZXJOYW1lPC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50LnBtLlBvc3RTY3JpcHQ8L3N0cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYXBlckluZm8ucHBkLlBNUGFwZXJOYW1lPC9rZXk+CgkJCQkJPHN0cmluZz5BNDwvc3RyaW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jbGllbnQ8L2tleT4KCQkJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludC5wbS5Qb3N0U2NyaXB0PC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1vZERhdGU8L2tleT4KCQkJCQk8ZGF0ZT4yMDAzLTA3LTAxVDE3OjQ5OjM2WjwvZGF0ZT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQkJPGludGVnZXI+MTwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2RpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LkFQSVZlcnNpb248L2tleT4KCQk8c3RyaW5nPjAwLjIwPC9zdHJpbmc+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnByaXZhdGVMb2NrPC9rZXk+CgkJPGZhbHNlLz4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQudHlwZTwva2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mb1RpY2tldDwvc3RyaW5nPgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LkFQSVZlcnNpb248L2tleT4KCTxzdHJpbmc+MDAuMjA8L3N0cmluZz4KCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5wcml2YXRlTG9jazwva2V5PgoJPGZhbHNlLz4KCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC50eXBlPC9rZXk+Cgk8c3RyaW5nPmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0VGlja2V0PC9zdHJpbmc+CjwvZGljdD4KPC9wbGlzdD4KOEJJTQPpAAAAAAB4AAMAAABIAEgAAAAAAw8CL//u/+4DOAJBA2cFewPgAAIAAABIAEgAAAAAAtgCKAABAAAAZAAAAAEAAwMDAAAAAX//AAEAAQAAAAAAAAAAAAAAAGgIABkBkAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOEJJTQPtAAAAAAAQAEgAAAABAAEASAAAAAEAAThCSU0EJgAAAAAADgAAAAAAAAAAAAA/gAAAOEJJTQPuAAAAAAANDFRyYW5zcGFyZW5jeQA4QklNBBUAAAAAAB4AAAANAFQAcgBhAG4AcwBwAGEAcgBlAG4AYwB5AAA4QklNA+8AAAAAAA4AAP//AAAAAAAAAGQBADhCSU0EHQAAAAAABAAAAAA4QklNBA0AAAAAAAQAAABaOEJJTQQZAAAAAAAEAAAAFThCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNBAoAAAAAAAEAADhCSU0ECwAAAAAAH2h0dHA6Ly9ibG9nLmFkZGljdGVkdG9jb2ZmZWUuZGUAOEJJTScQAAAAAAAKAAEAAAAAAAAAAjhCSU0D9QAAAAAASAAvZmYAAQBsZmYABgAAAAAAAQAvZmYAAQChmZoABgAAAAAAAQAyAAAAAQBaAAAABgAAAAAAAQA1AAAAAQAtAAAABgAAAAAAAThCSU0D+AAAAAAAcAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAA4QklNBAAAAAAAAAIAEDhCSU0EAgAAAAAAKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADhCSU0ECAAAAAAAPQAAAAEAAAJAAAACQAAAAAkAAABgAQAAAGAAAAAFoAEAAAWgAAAAAwAAAAACAAAAAAQAAAAAAWABAAADgAEAOEJJTQQeAAAAAAAEAAAAADhCSU0EGgAAAAAC/gAAAAgAAAAQAAAAAQAAAAAAAG51bGwAAAADAAAACGJhc2VOYW1lVEVYVAAAAAkAQgBlAG4AdQB0AHoAZQByAAAAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAABAAAAABUb3AgbG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAAAMAAAAABSZ2h0bG9uZwAAADAAAAAGc2xpY2VzVmxMcwAAAAFPYmpjAAAAAQAAAAAABXNsaWNlAAAAEgAAAAdzbGljZUlEbG9uZwAAAAAAAAAHZ3JvdXBJRGxvbmcAAAAAAAAABm9yaWdpbmVudW0AAAAMRVNsaWNlT3JpZ2luAAAADWF1dG9HZW5lcmF0ZWQAAAAAVHlwZWVudW0AAAAKRVNsaWNlVHlwZQAAAABJbWcgAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAAADAAAAAAUmdodGxvbmcAAAAwAAAAA3VybFRFWFQAAAABAAAAAAAAbnVsbFRFWFQAAAABAAAAAAAATXNnZVRFWFQAAAABAAAA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AAIAAgACAAIAAgACAAIAAgAC0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f8AAQACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAC0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f8AAQACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAC0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f/R/9H/0f8AAQACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAC5//n/+f/5//n/+f/5//n/+f/5//n/+f/5//n/+f/5/8AAQACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAC5//n/+f/5//n/+f/5//n/+f/5//n/+f/5//n/+f/5/8AAQACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAC5//n/+f/5//n/+f/5//n/+f/5//n/+f/5//n/+f/5/8AAQACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAC5//n/+f/5//n/+f/5//n/+f/5//n/+f/5//n/+f/5/8AAQACAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAG57IAsullALIAsullALIAsullALIAsullALIAsullALIAsullALIAsullALIAsullALIAsullALIAsullALIAsullALIA/+llALIA/+llAP8A/+llAP8A/+llAP8A/+llAP8A/+llAP8A/+llAP8A/+llAP8A/+llAP8A/+llAP8AAAAAAAAAAAABAAkACAAIAAgACgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYA+PL/AeA0/QAA6fH/AG79AADp8f8AZv0AAOnx/wBc/QAA6fH/ANr+wgAmAOnt/wDjAOnt/wDrAOnt/wDpAOnt/wDpAOnt/wDpAOnt/wDpAOnt/wDpAOnt/wDpAOnt/wDpAOnt/wDpAOnt/wDpAOnt/wDpAOnt/wDpAOnt/wDpAOnt/wDpAOnt/wDpAOnt/wDpAOnt/wDpAOnt/wDpAOnt/wDpAOnt/wDpAOnt/wDpAOnt/wDpAOnt/wDpAOnt/wDpAPzt/wD8AAEAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAuv/6//r/+v/6//r/+v/6//r/+v/6//r/+v/6//r/+v/6//r/+v/6//r/+v/6//r/+v/6//r/+v/6//r/+v/AAEAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAuv/6//r/+v/6//r/+v/6//r/+v/6//r/+v/6//r/+v/6//r/+v/6//r/+v/6//r/+v/6//r/+v/6//r/+v/AAEAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAuv/6//r/+v/6//r/+v/6//r/+v/6//r/+v/6//r/+v/6//r/+v/6//r/+v/6//r/+v/6//r/+v/6//r/+v/AAAAAAAAAAAAAAAAAABjmZmNCQAAAAAAACT5///DDwAAAAAAAIr////MFQAAAAAAEvP////YGwAAAAAAk//////hEgAAAABd//////8tAAAAAAMzQnve/zYAAAAAAAAAAAN+JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAgACAAIAAgACAAIAAgACAAIAAgAC9jb2NvY29jb2NvY29jb2NvY29jb2NgABAAIAAgACAAIAAgACAAIAAgACAAIAAvY29jb2NvY29jb2NvY29jb2NvY29jYAAQACAAIAAgACAAIAAgACAAIAAgACAAL2NvY29jb2NvY29jb2NvY29jb2NvY2AAEACwAKAAwADAALAAwADAALAAwADAAMAAwADAALAAoACQAIAAcABgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABPEgBS9VgLDa+fP/8AAEFUeAt+Xz//AABgMhUIS55v71/+8ABgQiUIS55f72/+4ABQIhUIS45vb/7QAGAyFRhLjm/vj/7AAGAyJQhbnl/vn/6wAFAiFQhLnm+f/qAAYDIVCFuOb++//pAAYEIlCEuOT9/P/oAAYCIVCFueX+/f/nAAYDIVCFuOb+/v/mAAgEIlCEueb+///lAAcDIlGEueX//+QABgMhUIW45vzjAAUEIlCEuN/iAAQCIlCCuOEAAwMhS4ngAAIEGFzeAAA13gAAH94AACDeAAAg3gAAIN4AACDeAAAg3gAAIN4AACDeAAAg3gAAIN4AACDeAAAg3gAAIN4AACDeAAAg3gAAEd4gADwAAIUAAAAA/28AAAD//nAAAP//+3EA9/f58WYAAP////////////////////////////////8AAP////////////////////////////////8AAP////////////////////////////////8AAQAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAPjt/wD4AOnt/wDpAOnt/wDpAOnt/wDpAOnt/wDpAOnt/wDpAOnt/wDpAOnt/wDpAOnt/wDpAOnt/wDpAOnt/wDpAOnt/wDpAOnt/wDpAOnt/wDpAPvt/wD7AMzt3wDMAAEAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAuv/6//r/+v/6//r/+v/6//r/+v/6//r/+v/6//r/+v/AAEAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAuv/6//r/+v/6//r/+v/6//r/+v/6//r/+v/6//r/+v/AAEAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAuv/6//r/+v/6//r/+v/6//r/+v/6//r/+v/6//r/+v/AAEACQAIAAgACAAKAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgD48v8B4DT9AADp8f8Abv0AAOnx/wBm/QAA6fH/AFz9AADp8f8A2v7CACYA6e3/AOMA6e3/AOsA6e3/AOkA6e3/AOkA6e3/AOkA6e3/AOkA6e3/AOkA6e3/AOkA6e3/AOkA6e3/AOkA6e3/AOkA6e3/AOkA6e3/AOkA6e3/AOkA6e3/AOkA6e3/AOkA6e3/AOkA6e3/AOkA6e3/AOkA6e3/AOkA6e3/AOkA6e3/AOkA6e3/AOkA6e3/AOkA6e3/AOkA/O3/APwAAAAAAAAAAAAAGSAtPk1fb36Nm6WxvsfP2OHn7fT4/f////78+PTt5+HYz8e+saWbjn5uXk09LCAZGSAtPk1fb36Nm6WxvsfP2OHn7fT4/f////78+PTt5+HYz8e+saWbjn5uXk09LCAZAAEAAgAC0QDRAAABAAIAAtEA0QAAAQACAALRANEAAAAAAAAAAAAAAQARAAwADAAMAAwACgAKAAgACAAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAr7AAQBQkJTZe1mA2VWYDP6APwAAS7S5f8B1DL8AP0AAVD34/8B91T9AP4AAUT54f8B+Ub+AP8AARLo3/8D6RQBAAIAAZvd/wKdAQACACz83f8C/S0BAQOk2/8BpAIBD/bb/wH1CABD2f8AMwBz2f8AXgCk2f8AhwCk2f8AhwCl2f8AhwCl2f8AhwCl2f8AhwCl2f8AhwCl2f8AhwCh2f8AhwCg2f8AhwCQ2f8AhgBK2f8AVQIARIjdmQKPWAMAAQACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAALX3tfe197X3tfe197X3tfe197X3tfe197X3tfe197X3tfe197X3tfe197X3tfeAAEAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAC197X3tfe197X3tfe197X3tfe197X3tfe197X3tfe197X3tfe197X3tfe197X3gABAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAtfe197X3tfe197X3tfe197X3tfe197X3tfe197X3tfe197X3tfe197X3tfe194AAQARAAwADAAMAAwACgAKAAgACAAGAAYABgAG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/9n/2f/Z/9n/2f/Z/wABAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAC2f/Z/9n/2f/Z/9n/2f/Z/9n/2f/Z/9n/2f/Z/9n/2f/Z/9n/2f/Z/9n/AABc/0oI////Eyv/dQkAAKKioqKixqKioqKiogAAvb29vb3Zvb29vb29AAAwMDAwMEcwMDAwMDAAAQACAAIABAACAAQAAgAE8v/yAPX//gDyAPj/+wDyAPT//wAAAQACAAIABAACAAQAAgAE8gDy//UA/v/y//gA+//y//QA//8AAQACAAIABAACAAQAAgAE8gDy//UA/v/y//gA+//y//QA//8AAQACAAIABAACAAQAAgAE8gDy//UA/v/y//gA+//y//QA//8AAAAAAAAAAAABAAwADAAMAAwACgAKAAj/AAEo8u3/A/IbAAD/AAFB8O3/A/AtAAD/AAFb8e3/A+8+AAD/AAGu9e3/A/aNAAACAFnt6/8C7jcAAgDK+Ov/AvzKAAF99un/Afl3AAD//6Wv7PLz9PX29vb3+Pf39/b19fX08+2tpf////+Yrenu8PLz8/T29vf29vX29vPx8O/qq53/////krDn7Ozu8PLy8/T19fX19PLw7u3u6amS/////5K+5+vs7vDw8fDy8vLx8O/s7PDu6uXAkv///5Ki4+ns7O3s7e7v8O/v7+/v7+7u7e3s5aSS//+SxuXp6urr6+zr6+vs7Ozs7Ozr6+vr6unVkv+Sp8bJysrKysrKysrKysrKysrKycnJysnJxq6SAAD//6Wv7PLz9PX29vb3+Pf39/b19fX08+2tpf////+Yrenu8PLz8/T29vf29vX29vPx8O/qq53/////krDn7Ozu8PLy8/T19fX19PLw7u3u6amS/////5K+5+vs7vDw8fDy8vLx8O/s7PDu6uXAkv///5Ki4+ns7O3s7e7v8O/v7+/v7+7u7e3s5aSS//+SxuXp6urr6+zr6+vs7Ozs7Ozr6+vr6unVkv+SpcXHyMjIycnJycjJyMnJycjIx8fHyMfHxaySAAD//6Wv7PLz9PX29vb3+Pf39/b19fX08+2tpf////+Yrenu8PLz8/T29vf29vX29vPx8O/qq53/////krDn7Ozu8PLy8/T19fX19PLw7u3u6amS/////5K+5+vs7vDw8fDy8vLx8O/s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09vb2bzb3eDh39ne3N7f3t3d3tvb3dvZ4dvZ297d2dfd29vU2Nve4dfY2t3b29ze07vU3tva4N7f397a28/Y4d7c293b3uGn2tvb2tvZ397Y1d622d/b297c2+DYzNPZ2dzf3trX3N3f4dvb3eDb3t/b09/c2uPKzNjb2+Lb3t7X3N3T3t7h18TK1tzby9Pb3tna3dvL297e3t7f4d7T2Njb3d3X2t7a3tjb3NvS4ePj5N7e4ODe2dne0trY3OHf3N7c3tjgxtzc2N7X29/f3tzW1cbc4N7f39nW3tzPwNvY1dnh4dvb2Nva3d3d3dzf2trd3uDgyMnZ19jj4N/b2tfb2dve3ePSw7De3eHG0Nfe4tjb29re3dzW3uHc3trd3uDb2tbZ4tLc3tvd3tvd3uHe39rb4N7e27G049nZ3+Hc4N7Z3tzV2dbZ297d3t/f3tvZ3t7d393e397g297e2tzb297e4Nvg39zS2dfd3t7e3uLg2N7D2drf5K/Q4d7b29ze2+De29zb4Nnh2uHj2N7k197b4uDd3tfe5N7c3t7h2NPc3tvY3tjf3t7U1t7b297b29vg3t/hr83j3tja4NXX4d7d0dvg3dvh3tjd49vb3N/h2NPa3drb2eDZ2djR39vZ3N3X3N7f3MTV3uPX3N7Y3+Td19zc3N/gq9Lf3+Df2NvM19zf3d7e1s3c3tjI4d3f2Nnf2tve3trZ4N/f4d/e2Nzi29jg2N7g3cza4d7Q4Nrf39/d3d3d18/h2dva2dLd39vd0tvf3tjb4d261t/e2t3Y1dTd297d19vc0dLe29rd3uDf39vX497S0Nre3tXV2ODP2Nvi3OPm4NvZ3t7U287Y3eDf1dXVz+Lb2NLY3tnX3N3R3d3b29bh3dnc2N3e3t7g3+Dd1dvS3t7d297d4Nve4d7a1eHb1t/d2c/g3Nvb3OLf19jb1djl3sbZ1trb3Njb1N3h4dzb2d271+DL2Nzd2t3U3tjh4Nva4d/Z4W2/5N7a2N3iyNfe297a2tnY3t7e3dfYzN7f297dz9Lh2tvZ2+Dh2Nrb3drh3eHe3Nvd3t/e3NfT1dbg3d7b2t3h3t7e2NjQv9rd3c3X2dLd29za397U0N3Pw9XU0tXZ2d7d3Nvc2Nnc29vc3uHW3Nraz9HV3d/e29PU2ODg0tbZwdvj3drU39vP3Njd2tDZ4OLc4eDa0Nzb39vf3tnS18/f3dvd3N7S3uDb3Nvc2+Hc393W2ODk39vT1da/4drU3dfe39nX1su62uG9zNXb29re4b3M4dfY29mzxd7e29Th29vb3d/Y29zZ49/Y4OHZ3d3d3uDV2t3d09nd2uDL19vd3d3U197az93hydvh3dfS297Z3dnb29/e4tjb2tzc2ODe2tvf3t7b29ja293g3NrV29zc2+Hc3M7d2NXf19je3tvW3NvZ2sfZ27LY2Nzf2Nzfv8ve29TX29uw3d/W0t7b2Nze3d7f29vb29zg3t3g4OTh3tjf3t7C29ne3uHi4d/c2NXg3t3c3d/e19zh0snV38rY4dfb3t7eg9je2dvR1d7W2+He29jJ3t3d3t3V29ve3N/e19HV3t7V29jZ4ODf2djf3dvd3NzX4Nve29/a0d3d4+Le1d3e4dLd4Njd39jZ3t7d3dbX3drb293Z4MzS3d/bzuDd3NPb3Nvd3dze39rY2dvZ3uHj4M/j1b/Z4uDb2tTZ3Nve1t7V3dnT29LV3t3b2NHd397Y3N/b3tzb19je2t7M1Nvd29Xf193g1N7h2Njc3tuvyOTe3Nje3trP2djg3trZ29rf4Nfb29vY297g4d7i2Nrd4djc3tjb2tjb3dnX4dfe3OHf2N7h39vd3tvc3dvd4dvb0+Df0tza39Te1tzf2NrY3eHb29rW3uHY1N7R0t/d4tzb3tLY4OHgzMze2Njj4OHb2Nja49bZ3NrX293c2NbI2NTV3t3e09vb3uDa3N7d3tvf293Z2+Le2tXe3t3b3eHT1uHa3tzb3NzY2uHh3d7hz9Db1uHg4Nze297e3uDe4eDf1Nvb3uHc3tvd4d/c2ODg3tjc3tne3OGt19/b2tLe4M7a2dvd4d7X3tze3d7h4ePe19ve1tnS29vg3t7h2dDd0sHk5d3e29Da4Nvh2d7c3t7d3tjc4eDa2N/d4eDhy6rh4d7e4tve2t7c3+Db2t3VxNvX3uHW297b2Nze3tra2d7T2eDe4dni2+Df1dvi2Nvb4Nze1M/h4dzY2M3d39nd1snT497dxtrZ4dva2Nvg3t/e3djj2Nnd2tnf29jJ4+Df3tPC2dXf3drg39TS3tjd1djY29za3d7b3uDh3drb2+Lf4dzg29ze3N7b3t7V2ODZzd7k4M/a29Pe193e4c3a29vb4eDb3t/h3tfb0NHe29vh3drb3t7R0uDg2N7X29zd3N7j3trf5OPf3Nve39/e4OHe39jT3NjY29fZ3tjZ3tze0sTg3d7e3Nzg29jb0tzS29jY4MnY3tzd2b/a3uDg1dze4eHY0uTZ3Nrc09TX29rW297e4d/e2N3b4N3Rv9vd3N7f1tHe0ePe2+TUxuDb3uDT3dfY29ba4N/Y1LLh2t3e3t3Zz9Xd3d7az93e2N3i2dvg4b7V1OHg2N7f29fd29re39jf3uDb29re29jY3tbb2Nbg2tvc3d7Yz9/b3N7T3+Hc39vc39zb3OHd3trb3N7b2+HY3t7d4OHe2LrN29vd3t7W2N3Z3t7e3djZ2+Dc3tHV29jb3ePXz93V2dfc1tne2uDCxc/b3t3P2N7W1N3b0t7g3szJ4Nvg39na193Z2tve29jX2t7d39rd2NTb2tLa2tvY1djZ39ne3t3d4dzf3t/i3t7b2Nrc4dXV3tvb4OHe3tbb3uHc3uHb4d3Y4dvd3czh3+Hc3dzhydnj3d3b3trd3tvh3c/e3dzh293bzN7e3tnW2tfb4eHc2tjT39fa2N/d1dXV297d3N7X1t3Y2Nzb293f29jb3N/d293a29jb1dfd2+Dc0dXb393e2d7b3t7c4d3e2+Dc2Nne29/T0+Xg3c683tne3d3a4NTh4Nvd1cHY4dvh4N3i4d/d4uDe0tXd2t7h2tva3uHc4NzY2Nvf293W3uHd3d/awd7hzsrg3N3h2dPf2N3e3+DR193b2Nrh2dnb4dnb29jf2NfS2d7a3d7e3trM3NvZzNvf3uHh3tjd397g3dna2Nve3tvY3+Lh2LTi297e3tTb4eDf297ex9na4sjc3t7e297h4+KPaePQ39zg3d7f397f497b3tzb29Xf39zc4Nzc4dzXytrd3tvf397e1c/U39rZ397e2NXe29zg3+Hc3t7T19Tc4Nva2d3d4Nrf4d7X3d7e4d7d3N7b29Hi3Nze2Nne4t3b4Nzb39rN2OHbxdve4eDb3N3i3t3ixcnS1dna3dLb2Hhy3tfe3ODh2dzh4Nzd3M3Y3Nzfz9/QvNve2ODd3NLb29vh3tTX3t7S1d3e4Nve48/b3ODg3tjd3d7Y1d3a2OLMzdne297g3NzU3N/k2d7g1djg3dy1YdLe2Nvd2Nvg2Nfb3tjf18DV49zf3dje3t/h3NrX293mssvb3tfb3tjM1tva4dnb3uTX1d7e29vY3tPS29ze3NPV1d7c3eDZz8/h1dvc09/a4djd3trY29vev9fi3N/e29vV3tvT1tve2dvXqNfY3N/e4dnW38LH3trY3d7c48aU0N7e293b3uDe2+Lg2t7f3t3d4NzZ293i4Nze3tzV2Nzc197i3d7d39/Y4d7b2NvY3+He3Njb0tfc4cbY3t7e197g3Nzb1dDT1Mnc1tfb2dja3Nva1t3e29zf4djV3tjTx9bX2NnY2d/f3NvV3c/d2+Hc3uPbxs7e3d/c0tbjypfY2Nfe29vf393c39/b2t7c2NLj4d3e3Nja3t7g3s3V3tvZ1t/e1t7b29je29vc5Nve3t/e2tve3uDj19/f2tvb3d3T2tnY083Vz+HT29ve29ve3tze2NzX2drh3Nvc2Nvc29jd3N3e29zd3tfb0M7Z0uHc29Xm1Nzd3tXY3dnTmNTV2N7Y4d7b3Nvc1Nre3d7e29vb393b3t7e2Nvb2trc3uHZ297a09vi4d/V2eLa3t3c49vb4N7b3trb193c1tvh3tfb2+DM0d7c2dzb29rb19nb29jU48zQ3+Hb3NnV1t7h3t7i3tvX2dvc0tjMz9zb3trSt+a21drd2d7e3dvo09Lf4N7c4Nvc3dzb297b4Nzc1ePLy9vf2Nfe29/b2dba3uPe2eHe3t/f397b4N7b4Nzg297e3t3a1srY29/X4N7c3dXY2Nne4dzL2Nve2tvY29ve3tvM2N3a3d/e3trY39zb3dzb3NzR3t/g4tLY4OLe29zY3t7b2eHh3Nvf3ODW29vX4dzP2t3f29vd3NvV3dvQ4tLU29zZ1Nre3eHX0d7c2d/V3d7e29ve1trb3t3b3t7h3MXb4Njd29nW1uHb1NrV3M/d2N/h18jh3srgz9Xh09Xd3tDe3tre4d/c3OHc2ODa3Nze3tve293d3djV2t7c3+Db293VytHb0s7h3d7a3dff3NHY4d7Z0uHY1dzf2Mnh3d7d3+Ld3tzb2trX3djQ2dHd39je3N7f39ne4dPe3dvb19jc3N3Y2NXX2tjZ0tPe4N3d2Nrg4dvf0NLe4eHW29fc3tvd2N/Jw9va29ve3NTb2Nbe2NXZ29vb2+DS1tvX2OHY4NXW2eDV2ODn49Hf4NzY2+Hb4NbK2+Gx0OHe2d3e3tzb3dnd4dvb2trT0tXZ2tjb2+DZ2eHd29ja29Xb3snY3tvb29Le2tvY2t7Y1+Dd3t7dvdXV19/g3N7g2N7R3uDe3dPe3tHR3tjb297b3uHZ2dva1OHh3drb3tLU393X39vb2dve4N/i0s3Y2NnS397b4djd2djAy9nb2Njd3OLc2+Pb3N/f3tzV3d7b2NXc29jf2t7f19fb4tbe0djX2NPW2NrY3tzX2d7b3eHR29nc3t7Y0tHe3tjb3N7b1tnc29jb2Nve4tvS4N3b4N/R0ePb293f3t3h2Nbd4+Lk293e3d3d4d7a3dvZ2dvb29bc39bd3Nre4dPQ2tjd3d3Y19/c4uDe2t7e28LV3t7Z2dvf2tzc3tzb297j4Nnc1trd4dLb3tvc3dLb297hz7Tf1dzX29ra3uDM3t7f3Nvb3trc2M3bz9Xa29vd3dvb38nV4dze397b29jZ296zz6XO3dzd3tzc3dPb2N7j2NTb3tvd1d3h2drY3tbM2uHc3tvY3N7b3N/e4N7e09nZ3uHe2dva2N3b3dve2+HUrdXY3N7hzMre493b2+He3tjd397by63S4eLe39Xg29bc193d4uDc2t/Z39zb2dnY4d7h1dPY297d3t7c1ODg3qXEqtTY29ve3tXc3t/d2eHa3Nvb3NjW3dja3uDc1Njh2d7i29nb2uDg3dXb2NbQ2N/f2OHV1dvh4trc1tje29nc393d2N3Hx+Dh3uLe39vhz9ve3tvZ1d7b1d7b3NvZ29ra2+TAxd3W4Nzc29vT2dnO2crSz9Xb297Y2Nrdv9Pf3NTh3t7Y2dzO1d3e293a3Nza1c/W3Nbd3uHb297Uz9/T2ePAstfa29vf1dvY0N7d3eDb3c7R383C4dXU2tva39Ta4Nvd1dDe4eDh3tze397W0tff4eHb3trC4Nvc2NHT2N/X3c/M29Xb3tjW3Nnb2MzV09jd3NnX1tvX3+HS2Nzh3tzf3N7b3dnY3tnT2+Pc2dvY2Njg2Nzc2+Hb3tjV2dvg4b6x3t/Y29/e2uDj39zd3d/f39XY0tHe2LTb2Nvc29vh2d/e2d3V0d7h3dzg3tnV3tvj4d7d2dvb297Y2dTW39jM2d7a2N7V2drY0N7Z1tvY39ve0NzX29vW3t/W19vh29jb5tzc4d7c2dff4d7d3d/e3uHf19re3dvf4OHf29vd3ubb1Nre3+Hg3eDS4d/c0+Df29zV2t7Y2tfe2+Dh4d7U3uPe4NvS3tvb19Dc39/a2N3jyNXe3NLU3tje3NvZ3d7d2Nvb3tfe3Nvb2tze3tva39zK3dza2N7h3tje19ve39iCxd7a3tze4eHX3dze3djf3N/f4eHg3t7e3t7d2tPY5t3G2N/d4t3c3t3e3t3M3Nbe4N7b1tzc2+Hg3uDg4NvY3dHU3ODe3tfYzNTY3tre3tvM0d3e0dnf3t7e2sjg3uDh29ni49/c3d7Z3djd3tzf2t/Z3d7c4dvg4N7Z2+Ln0W7K29re2Nre3uDd3d3g2tPd3t3Y3+De297c19vjvM7g3Nrh4NXP2NrY297Y2drhzrrh3N7Yxdrg3+Hd3+Hh4uDb39ba29jexMrY2NXZ3ODjyd7Y39He4t/Z29zjvbPezL7e4djW3t3d4d3Y2dre3N7b3N3b3t7c3tfd49vX297e39va19nb29/b4eHe29jX1Nvh29bV297h4d7Z3d/h3tvh39vb1NrY2d7e3trd3d7f093d29vY497g3t7h4d7hqdTe193Z3Nzc2Njj4sXO49bb39vg29y/2t7b3eDMwc/Yv9ja4djM3Nnb297e3dzT3Njd4N7g29vb3d7b4t7d4eDe2N/Vu9/M29jh5N/f1dXX1drJ3M/S1drV1dvd3d3c4eLg4dbX2t3e39/d4eTg3t7Z3+DW2t3i1dnc2d7Y4ODR197S29ze1+Db2OHj39ve1drh3N7a2dvZ1NfY09/e4t7h297bzdPe3d7e3drd2Nvh2tXY3Nvf29rd297Y4d/g4d3Z3OHn0b/b3t/d3eHc3d7b2Nng3tXT1t3Y29/e3t7e3eDb1djc3tvX3+Le3+Dc2+Ph4tLP29ri19jh3NbY3N7h3trb3Nrb4OPf1t7e29vT1+Pc1snb09zY1Nvb29vJ3dve3t7Pzt3Z29va09za4N7Uya/k3t/Tn9vb29ve3NTS29ze393a1d7e3t7c3Nrc19ra3N3d2Nng3t3b29zf2+Df3d3g29zc3N3c39ze4t3c4dzY2Nfc3+Hg4OHd3djb397Q29zf4NvV387W2tvY4dze3tvX09bX3N3b3dvY29rb2+Hg297e3djY29zf3NvX39bT193b2Nq129ve4tbYxsje3t3d3d3g2M/b2Nvb4dza3NPa3N3h2+Hd3d7c2tvb3trbz9LW3d3X3tzV39nZ39/U0tzd3dze3tvU1t7b2ePe1NbY2drc39/bydva3Njg3d3g19fU297Y3tna2tXg29jY3t7f3NzZ2N3b4N7V3tna2uDc2d7c4OTX3N/f293XzOHb1tjb1dve293Y1t3e297dy9zd393e2NTe29vc1uDg293f3t7f3Nve4d7k2eG/28fQ2OHf3djb29jb2dbj4dvS29zW3dvh4NzY3t3e4eLh3+DV2OLh29/e3Nze293e19fd197c4NXQ29vd1N7e3t3a2tjb3tze0sPW1tze29jY3dLd3drW2d3Y3NrY2tfb1tzc29jb4d7Mv+Xg297d29vc4OLe3uDa3tzfysng2bXX3tXN3tfj0M/k3tjd3+Xd4drY3tnX4OHZ397Y2+Hl4N7d39vYrszf3Nvg3tfc29ze29vY0uPY1dnc3d/Y3tnf2tvZ2tvY3Nvb2t7e3dvfy9fe3d7X1t3Z29re4t7V29/g3trb3N7e39Xcz97d1t7e3N/b3d3h3t3d2uHLxtnV3+Db2+La2N3O09za3d/a4+Pd3t/a29fg393V19/f3t7Y09jb2Ni/vuHc3te31d7a3dve3dvZ29va29nc4Nrb197b2Njb2Nvc2t/j2d3e3t7e3t/e29bX1t7c4d3b3t7gn9Xc4Njg29nd4NjA1+Hb3N7g3OHh4eDi2dvf2OHj3N7a29beyNLe2NLL3dnd29nb3t/e2tzX29je1pXj1t7h29hOtuPb2OHZ1eHh2MzV3uDgzNnc2t7b2N3X1dzf3dzd3N3Z3d3M3d7b2NzVzNrU2t3Q2NzZ3dnY297Zzd7e4d6q1djc293g4N3d297V2uDb3t7Y3uDe3Nna39za19jm4djX2NzY29vT1NvZ4NvW3dfb29XZ39rVz9va3tbK3tzb4KXV3d7Y1eHd3uHh2Njc0Mul4OHd4dve293Z2N7g297d3t/f3tvb2eDd29nT1dPc4cHH3NzU3d/b39fJ4d7i3uLg2Nrb3tfa29jj4Nzd2Nvd08/d39/e3djb3NzV1+DY3Nzj3dza2N/Y1dLh4djd293V1tbb3Nnc2t7b0t7V297c497e4dLN4t7d4tzj08mostjg2tnb393b293g3N7U3t3e39zb29fY1t3b3trZ3t7b2dbc4dve3NrZ1dXU2+Hd29rb2tvY2NnZ3t/f49rX1dvW297d39je293b4d3Z3t3e28vY3djR3uHe3NnXyODe2d/b3dbd3tzc4eDd4N7d3NPY3Nva3OHb3dvb3uDh3M7M4dnb2tbP29fT2NjV3tLMxN7Y2dfT0tLb3NzX29vJu9fS3+Hf3tfY29/d2dvX2dze3t/e3N/e1djZ1dng29jW297g09vZ1Nrf2t3e393e2NzTrNLd3dvg3uHd1d7j3tXJ2+Pc3d7P2ODJ2+Hg293Z29/J1uHW19Xb3t7e1tvd29ve3d3Z2NLc2trj29ncz8ao0dva1eGzr9ve2tXf4bu14eLd3d/Y29Hb2tHV49zY3+Df3dzg2Nzb3drR4tzb297e3tvX1NXZ3tvc3N7g4M7S4+Hd1Njh3t3b29/d39LM3djf3tvb4c3T0Lrkz9bZzN7h4+Ld3N/eztje29LQxuDb3N/X3Nvd3N7b2Nzb1d7h3tm74N7h3uDZ293f49zcwcXhuNXe4N3TqNzW19Xd2N/g4N7d49rc19fe2dzc2NvYytTj3ODc2Nfg3t/e3d7b0tvb3d7V1dvZ397X2tvhupPi0Lff3d7h2NrU1NjT3NvW4ODg4+DZ2N7f3OHXz9fg1dfc1t7Y3uHf3szB4djX3OHe297d3trW3tvR3OHe29rU2trN2t/e29Ld497V2svV4N3Z4Nbd3t7e29vg3trb1eDS3eLf2djg3Nzf3uLd3tjb39rg29bc1t7b3eHV29LUy97Szdzb3dze2N7U1eDh4Nne3tXJ4djP29nb29LW3NnW0+TZ2+DY2NjY1djb3NrS3tHR2trd2M7c2N3P0tve2tPe3tnd29bY2Nve19vc2tve3+Dh1dvh3eTj29je3t3a39vN1t7b3tnb2t7f0dvb293e4N7a2+Le2t/c2tTe1tff2Nvf2dPI3+Hg4OLb3ODY3N3dwpLg2uHe29vh2Nnb2d7e3+Pa3dzZ29vc1tvO3dHX29jb3tvb3c3S2tXS297a3djh1dXb3tXc29zV2+Hh3eLW29C33uHb2+Pa29ri3uDZ29jf4dvc3tfb2da8ydze39rX4eHO4dja2eDZ1t3j28/c1tjY1cTg397f2N/e4Nvg4Njb0t7Gnd7e277b3Nzh3t7d2d7Z2tje4dXE3M/Z4M/V297U1dfT2NfX4d7Y2tXF3N/V1N/e2+De3ODg497g2drZ1tDd3svM2t/b3ODX1dfX3eLh39za3t7d3s/U29va4uDY3+HHxOHK19ze38zc3uLc3eHd3t7c2eHa3eHf3uHg3Nzd2dKp3+Hfrd3cy93d3Nja09zZ4d7W19TM2tvh2Nva2NXX2tne3t7bzOHS09PW2Nne2d3f2NXe4ODWzeHe3t7e2NzbzM7j497b2NXT4dve3tna29ze2dje29Hb4Nve3OLT1dvb47fO3s/ag7/l29zd3Nvb2tvY0tfe3eXe2NHY3eDGyOTZ3djd1NXV397c2OPV19TU4djP1dfO1ODg3d/i3tjd3Nzb3djV3d/V4Nzh4N3c2LfS09rc3t7b2ODf4dvX2N7d4M/c4NTZyd7d3drd2dHb1eLb2+Ryqtzm4dvf0tPc29ve4tjf2Nzj3tvY297e2dvb1dnQ0dvkoq/Y1uDYzLvB3N/i49XS3N3b3N7b293Y0dTh29HV3tDau8ra3dza2Nrf283e3Nve2Nva3Nvf3t7Zxt3h2tza0+S0v9/e29vb0svU1dnZ1uHi4MnW4eHb3t7Sy9rS2LLc2tOg2+De4N/V3+Lj29zh197i29zV397b1d/U3uHh3d67zuPY0tbGucHb4d/b4ODZ3tvY2dzb2Nvd3N3b5LzN3duZveLb3Nre3t/Ww97O1dve3N3b4dve3dvi3+De3su72cC72tne29nb09Tb29/S2d/i2tni3uDh3dbC3tvb4d/h1Z/b4Nnb29Xg297f29/N09/d3tDdz9fW3trY3tva3OLf2tfQ2ce62+Hc29ze4uHc3tjd1t3f3tre19bd3d/bydjd3t7e3d3f297c29vT2tng4d7b3eHb4dTY4N/f29bX4dnS29/Z3eHV3d/f5LO95eDc1d7e29zd297g3uDa3t/c48vV2uHe29jb3N3a19rc3tze29/T09Lh3NXb5djZ2dzd4NHa3Njf39zg2NvV29nY2eDh3N6m0N7bz97g49zY2+De1dXX397b29jd2drb4OHi29ve3tXc2tzh3N7f3dzY29ve3t/d3czV49rh2dvi4dvY19je2tvW1Nrd3tvg3tze19XY3drb4dve3d3b29/h3d7Y29zYz97Y2N/b3tvY3tjf4d3b39rh5N/e39jSu9TW4Nrf1bvg3N3Y293b39/h0tvb3tzb2dvXztLe3d3d3tvW2t7b3eDa4N3Y297b3N3f19rS09Ph1dbi3tvb29zd4dvN29/b0Njc3dvb1tjZ2djX49jZ4NvZ4Nzb1dbb19Xh2+Ha29Pe4cjS3dXh29vg4dnf29rd2dmz3d3b1dfU4NXd187i5t/d3eHb4eTP0t3W4dve2dXf3tTP1d/e29rf3dvh39fY2N3d3Nje3c7e4d/f3M201cvf39vb3s7M29/j2cDh3dvT4dzV2d7d397Y2OHh3trY2dfY3dHV3drXx+Dc3+Lb2d7e3dve2t/e3dzj29rcydve2Zne3t3Z3sfY2NfY2dze3d7a4dGq0LLM0eHb3tnQ2Njb29zg3t7Z3t3e3NvjtMjY3OTj0t7X197Y297a393b0t7b29jd29vc49LO4djb2N7i1N7f2ODOxtvc3Nzd39jW29jf2eLj3t7R3uHb4d7hzM/e4N7e293Z3dve2N7C1d/f39ve3t3Y29XM193i3d7g3d7h2J7PtMjg3t7b3NPN1dvb3eHe19jc29vg4NvN2t3f3ODY1dnh3t7f3dza0tjd2ODe193h3dvb0dbb4Nvd4eDd0drb4dXL3eLc29Lh29vc3t7d1dvf2Mzg3d7F4N3b2t7g3dvc3drN4+DV3dTY29zZ3tjb2t3Ay7jY2tjf3t3c0a/h4tnU4ODfydXb3NXZ29vd2uDPz97Xzdzf4eHe29rZ39ve4t7c297a4c7Tx9jj3uHb297b2Nrb2tji29ze3t7e4uDP2d/YxOHb1dnf3tvf3tzS3MzS3t/g1qrd3uHi3N7b393a3tnd3t7Y4OHY29je39vj4Nje2djb2N/d2N7czNrd2eHc4NrX2tvb3tvY2tvd4dLd3tjL197f3tXV29va3t7P1dfQ3Nvb39rb3tng4N/b2t7f2+Hb2+DS2+Hc3N3V4dja4NWg29vY1N/h3t7e293Rwtja3+Tb3t/b4OLa3NnV293c0Nzh3t7f29be28nl3d7c1+De3uHY2d/g2t3d29vb2dvc2t7XweHc2t7e4MbB1N3d3uHa2tLfzsvg3N/mrqji1tji3t3b1ePe1t7e2d7e3N7e293h3drc2NPi2M3e1drX3s/d2t3hxsXg2dzV29HP097mtrDc3tvW4Nrf3tfe3dvQ0sXg3N3i19bgecPg3tDX2N7h4drQ3N/Z19be39zb19/W2tTV3Nre29ve1tff3Nvd1eDS0+DS393g4t7I0tvP49nZ3t3h3dzc0tve3tzb4trd29vY497V29vhwsDE3t7e3t/c29vDs+Pd4tzG2tzc3t67o+Pf29G53uHd3d7f49vBst/b4N7g3eGfluO5xdLZ3uDg2Njb3d/X2s/a2N3e4eHf3OHh29vZ3dva3d3e28jh2MXY3N3f3t3g3eHf4d7g29Pb4uHf3t7i3Nvh4dXM3uLe2+Ha3N7h2N3S2+De2tvd3NfM4dzZ0tzb2rzU4NvY2uHm3sLXxtTb2tXV2tXc3tvd297c3uDh1cnR1Zvn1dfe2tvQztXb2Nne29/g4eHf4ODd3OPf3t7i29XZ29vW4OHcydve1Nve293b4uLf4Nvfz9vf3t7b3d3b3d7f2NLc4ODe4dna4dzT2N/h2Nzg3tjP1dHf2t7d3tjd3tbX393Y297eldzh3dXS29ng09je29Pf4NDcyODazNnb4Mqv397Y1tnb2N7SrtTk3t3V2Nve3tvT1d/Y3X/S3Nzd3sXh3tzg1d7P1d3a3Nje4dHf3t/Y3dvb3N3d0dve3trZ293d4d7X2N680dLE28/T3t3e0tff4NvX3tvb2Nzd3NXf3tfY3t/e3eDb3d7f3tjb39ve3triyLnZ29nh29ra2dvj3uDi3s7f39/R2cnc3s7Y3ODd38XU3NTdn83e3tjY19zg4dvc3NXa3eHf3Nve3N7d297W297a39zV0t7Z3+Lg3d/e3tnT49HW2tHe0t7c2dXY2Nvb3tDW3uLY1Mje29jg3tnb2dbY3dne2Nvh3Nrf3trL3d3bu9ff3t7e3t3b3t7f1azi2eDb19Xf0trh0djf49vE0dnY2tbm2drUz9ze2dTI2+HP2+HY2dzg29rbydvg5s7J3NvXzNPK3tvf29ze4N7e4N/a49jC09nf297d19Te2tjf2NfV29vd29vf297U2t7e3t3c3tXh3d7g3t3c2Mbe2+XGwNjb39Hb4NTP2+LYyNrX3tvZ2NzZ2NLY3tze2LfJ3N/e2+HY29LF4Ni228rc3tve4dPT3d/c3tfS2tfY3sbZ29vb2drd3dzb397b1d7c3tja19LS1ODd39/b3OLM2Nzl29Pb3OHf29bh29vi3tve3N3d3dvb2t7f397X2dza0ePS097V2Nrd1bvb3Nrg3dne39vY29/dzdPT29za2trh4NrY19zb3d/O1d3h3Nzb3dfh4t7P3OHf4eHY2dng1djc4eHd3Nvb4dzf3t3X297b4dzW3uHk4dve3Nvi49jc4ODe3dTY2d7g1Nve4N7e4Nfb4NnZ19XU1d7e3N7e29vX1dzf2Nja2t7d2dnUzeDe26Pc19ve397c1cXa2Nzf39/d29LW2Nzk3Nff2c/b2t7b2N/e29/e3tjY3Nvb3t7X2dXS3d7f3NjY3uDf3d3V4dXV39/c29jf39vf49jR4Nvb29ze2d/Y4eHe3eHd2N7d3t7dzN3b19jc2+Ph4N3Z4+HMzt/b3t/e3t/a2Nze1tXcydze3N7g29rY4djc4+LRzuPa4NLW2+DO0t7R0uHf2dbb3tnU3tvb3tzf2Nra3drY29nb2dbV3dnc29Xd3N7b29ra2uDVz9vY3NzhyL7j2NvP3uLd3tnU3uHe39zP48rV3eHf2Ni0z8/T4d7e0uHCtuLT3+He2Nvg39XU3tvTz97a2+He297e3Nzg3uHh2c3R39/ewdfd3MzP49vi3NnK3N7Y2ODe29vh2d/d397e29jh4N7Z1czY3+Dc2NrX3tzg0be55s3P39ng3tLc2eDe3t7b4dvb3dSoyd7g297U1dna3t7h3ZjP3dLS297V3tXY493b3t7X09/h0tPc297e3Nve28nb39XM3tnc3t7V19vc297g0Nbc29fe3d7Y2tve293e3tXbxtPj3t7g29zc3djb3d3e1NDb1tve1NHd3eHHv8rY0My/393d1N3e2N3f4Nrb1eHf5MjW4eHd3tTb3Nvf3uDm4d7e3Nvg3Njb397V2tvZ3t3J2N7b4N/c3uLi3t7e0tHdz9bh4dva1dvY3uHb3t7a29jX09Xb3tvV3tvc2t7c2+HR0+La3ODc393c1d7g4t7f29zb2Nzb293h1s/W2ODb083h2N3c1djW3tXh39jY2djZ49/i293e4Nfc3t7f4sza3eHg2+bYtODa3dXS4c/W29ve3tng4Nvh3tzf2+Hi1d/g29nb3d3Y4N7c397Y2OPi29ze2N7b2tvZ2tze2OHb2+Hi4N3b19/b0d7X3Nbb1+DY1d3f3tvh4OHQ0t7Sx+Ld4N7d2N7b2tvd2dvh4t7Qz9vc3uHe0uLY2NTh39vb09/e4eDc3+Lf297e39vh3tnb2dve5eHh4tLY4OLb297kzM/b3t/e0MvS4NzU3tjY1N3i3uHc0t7Y39ba1dHaxNXa49/i4NLO39nf29va3NPV4NrV2tvevcbb3tva1MOo493a4Nvc2Nzd3NTY3dXY1NjM2tzb2t3c3tne29zc4eHS3+Lf2uDc3d7e2d3b3N3b3tzc297c0c/l093d3dnY39ljuL3C3dvTtarm3NnZ2NvV3uHa3eDV297d2uHKn+LV3uLg3t/e3uDc297Y3tvf2c/d4Nva4N7GytTb29zRvcrf29rV0Nja0uLf1t3g18/S3dXb1c/d3uDc4NvY3tzf39TexszV2dvY3t3d3uDe1dbe3d3g39va0tvj3dre3N3e2szYq8Dd0Nre2dvg3tfazNDe29jb2NvW29jW293T3dje3tvU09rd393e3Nje4d7b29zd39XV4Ofb2Nve2+Hi3N7h2M/M1eLVwd7V2t3d29vf3+Hd2NvW297b29vI2N7b2uWtyd7Y3OHZ3uHg3uHd4N3e3Nng393d4NrYz9jg393e3tLh3dnf0drg3trb3dPZ0uDb3eLe3dXg1Nrb3Nna39za2tml0uLi293X1dze2dLb29ve2dPk29vc1dHW2N7b19zd3dLY4dbS2trC4eHe29fg2c/j3NLc2Nbe2LjV4ODZ0uHe29vc2N/P2OHW3d7f3eHd29ja3du+z8y+yOLh29vf093h3d7V0dze1d3b29/ez9Hh3Nfe3dve4N7h497U19zd3qvV3tzb19XR29vc297e29je3N/f29jP2NzU0uHP2+Hb3Nzc3d/c2b3e4d7Z3dvY29rd3+LY0dvV4NbX4tWs3tvh3tze3djf3t3b2d3g3t/c293d28Hbzrjg3d7b1uDe39Xe2drZ3tLR3dzb2t3M1N3Z2Mnj2NnX1uHe2M3P2uHb4Nja1tnM3N7b2drU29ve3trX3N7e3Nja2dvX397hzN7d3t/d3OHc4dXf4s7d3NzfjNXX29rg2+He19bL1dni3t/f3d/f3t7e2uHc1dnj3tXf4d7YyObdx9za3Njf29ng3d7d4tvb3eHa3t7e3d3e297e2t7Z29re293b4sq2wt/W0t7Z2uPZ2t3Y2dnb293V3Nva2NzY19vd2Nnb3tvV3tPb1d7a397Z3djc3t7e3uCz2dvb3N7e1dvc4dHd4tTS1d7c4d7f3dvT3OLe3dze3d3Z1di/4dve4Nzh3t7e3trd2Nvh3d7d2tPb2+DY0tzf3tvh4M7Q1c/e4t7g5tHR29rb39/e2N7e3t3a2N/b3tfc2tjb3tPY3t7Y1trd4dje2NTZ2drb4dnf1czh3N7f3+Le29Xf4NnU2Nvg3trkyM/V2NXd397c3d7d2+Pe293i4N7d1+HY193c3N7V3N3a3tvX1t/huNTPvt3d29nY383NwNjez9LY1uHe4NvY4OLd2NzP2dvY3t3c2trV29Lf3tvW2N7Y3Nng3tve0drb2NnY2+HR19/e4tvYz9bY29vc29zb2Nvb3NjV2N3i1tXd3t3b3N/X0tnZ3+De29zd3N/g3t7h2tzW3eHb29Lg3OHg4Nvc3ty13tLQ3N3b49bc2NvUzNTe4NvX2N7e3tjf3trd3c7R19ji18ng197e0NrP1My519zj4+DY2N7P2dvA2NDk3tTa4dze3tre3dvc2+He3t3N0M/h2tvQ2Nve29PX2+Dh4dfS39zS3ODd1dbd3t/Ozt7UzuHa3dvP3eDf2d3X393g3OHc2+LY2eDW0NfG0tzW2dre3dvc3uDb3t7d293b2NXZ1tPV29vb4d3Z27PVxc7e49vc2Nvc2d/d29Xd2t3g2N/W193W29/e2NXf3uHe4eDa3t7d4tvg3Nze2eDc3s7A5trf3tvU1d/ez87g3tjC4d/e2tje1sXh4ODe3N3j2Njm3Nvb4OHe28vh2NLV1djH3+Df3uDd2tjR29zY3t/c3dvdzcnh3dHa39zc2NnX1dvb3Nzb29vW2Njj1cng2Nfd3NnV3dng3N7b2d7a3dzc4Nzc29ze2Nvc3tjg3tXY2cje3+He2+DE2eLe3d3a4d7d3eHb2tze1Nrg3d7b4Nve3o3W3d7b1tzbxNPg29jc3tzX3tze3t/P3dvY2N7c3t7c2Nvb3dTIvNDV1dvZ2dnX3tLc4N7e2djWydrb3uHh19be39ve29nX3NvY19rb3t7g3t/b297Z297c2N7e2NjU2NXa2tvj4Mna3ODg4dve09ze293d293e2dvb3d7Y0tLhlNXa0tndz8jM1dvV09/f2tvc2dvb3djP2NLd3tjd2+HS0tvi1b/g1Nve2djaz9fU0t7V3uHeod7W1d7g4d/Qz9/h4trP3Nre3NfR19jd4dTZ2uDe293d3drg4dnb29rh0M/e3Nvd4eHc29zd3eHi4dXP4d7e3ODa3Nzf1cLe2+Lh297e29fDzdjg39zc297V4s/O2Njb4NDb0tnZ4d/c3tXb4MrU4d3e0N/W2d/c4NbX29rG0s/E3eHY29ve4d/b2+De3dbd39/j3dLb0dbe2Nvc3tvd3NXe3NnR3+De3uDb2+He2NXW4d7b297h293e3NXa2OHb1d7b297c19rJ2N7Y4dvb28TO3+DY2N7W39Xb2ODf3N3b5N/b3czh1drY3NvYz9fe29nb297i5tLY4d7e4ZrM2+Te3dzX1NzW3Nnb4N/U1d3e4N7f29vd3Nvc3uLY19zb3tLV1Mzg3t3h4d7d3tvb3+Dd3t3Y4OPe397a3drb3s/U3+Dc3djb1r3b1+DU2t7g2dbQ1ODe3tzY39ve3N3e4drb297U5eHV29re4dvc3N7Z2uDh4eDe29nh3tzez6re3tva2NjZ29Xhwtvd2NjY297f293d1d3Z2ODg3trd297e2tXd2tze29fe2N7Z2d7b3t3j3tfb39/X29fW2Nvc1dve3tnX29ze5dfJ4tXY4N7jycrd3t3e3tDc3uHS3t7f3uDa3dnb2+Db19ze29zd39rW3N3f4d7j3drY193Y2dzd397h3d7a2OLh3uDb0d3h3djZ3Nvc4t3Y3tje3tnZ2tzd19Xd0dbh29je3N7e3dvb28rd29bZ4eDU29vC297e1dzf3t3g29rg3tzSzN/a19/d39zb3tvX1tnY29Te39/b2+Db4d3b3dDS29jW3d7V29nY0tzb4t7b1dne29zb3d7e2t/f2d3c3uDf3cnQ1t3c2djb3eDh3uHY3dnV2tbe4OHb2uDZ3uPf1eDj3N7U19jb0tze3tni3djY3N3f4+Pe2N7e0t7WzNna0trb2tXX293Z19ve2tjV4d3e3tjW29ve3d7h3tjfz9Xf2t3d3dvX3tzV29/Y2t7S3ODd2tjg3dve2NvZ1dvc39/Sjtbb4OHc29vc4tvY3tPd0tXfz9nb3Nu74tzZ3d/R2t7f29vY3Nzb3N7b3tza0cjh4OLe4d7Z3tvW3tnS1N7b2OLT193b3dXb3OHY1tve2NjY2Nrd39/Z3tvev8vg3tXe1N3i1sLe3tvg4Nrc293b1Njb2tza1+Hb2dvU3tjh4Nzf3uDe2Nrf1d/h3+Tg3Njf3tzc3tza2Nja29na3+Pe3Nve29vb4dvc2t3YyeHd2+Dh1Nvd293g297e3N3i29vd3tzd3Nvg3tzd3d7i4NPb1dnc09vi2dvc297d29zd0q/e0t3c3d3e2t/d0tvd3t7d3t3e2Njd4N/d2eHh3d7c4dbb293a2tjZ5djX3tvb3d7b3uHe4N7Y4dDP2t3a3+Lb2+Df4NfY3dnS4dPG1eDj3t7Kzd3e2trd29zb397d4dfZ4eLc2+DTu+Hb3tjexdvg4dbO3OHY2N7c293c3OHXsNDG2d7e3t/a297X2NbL4dzb2tjb09jh2d/i1cvezdDh2tfX3dfg1dja3NXb3dvV19rd39zd2c7b2Njd3tvb19jZ4d7Y3tTY2dLU29vT4N7e3t7e2tva4d/c3tXY1tve29vW29/f3t7P297h29nY3eDh29vYzNzj2NzV1N3d3NXj287d2dTb2dvd3tzj1c7e2tre1dbW2N7Y3d/a2d/A0t3h39fS1dvX2t7h39zd3djd1tje4OHd2+Hf2dTc3t/C2+Di4dvb2NvY09Xe2N7a3ODd3OHd29vb2d7h2dvV3t7d29Pf4eHd3dre3tvf3Nnd29vf29TJ3sDV4Njb2Nva2dXSzNngzNjY3d7b3eHf4OPa2d7b3d3d29vc29vU39/a3N/e3Mzd39vd293b19vbzdbb29vS4Nzb3tnX1NvZ4Nvb4tze4d7e4N7d297e2dXe2dzc3trb4d/f3NzczN/e2t7f39Lb297c3dre4dfd3dve3trR4tjbwtne29/g3MzV19Db2tfa3+Hc3uDa2N7c1t7e3c3a39ja4Nve2djT397Y3d7V1ODS1N7Z2Nbb3dna29jf396/u+DZ1tva3djc1Nve3tzc4dze3tfe2trQ2MrT4d7e3tre3tzd3t/b4+DR2tvd2tnc3Njc3OHf0tvb3ODe197c09zj3dve0t7hscjd4d7b2tDc193e2dvZ4Nzb2dvb1tve297a3Nvg2t7S3d3d2Nvbz9fd3N7Z19re293h297a4cvH4dzb29/e3tnV2dzb4OLf4djb1t3W2N/j28/b4dve3tvf297j3d7h29va3t3W2d7h3Nzc2tzb2N/g4t3Y2tna397e3dje29vb2NnY0dLb0t/b3trW29jc2d7e3Nfb29zf3tPe3N7a3tDV2tnY1dvb2t/b3uHe2drb1d/b29LY397b29ze3d7W1dvf3t3b3+Db3dna2Nvc5d3c29ve29ze29ve29jN3eHX2Njb2t3b297T2dnc3Nza3tvc4drY1Njg4d3T093b39/c2tLT2d7g3t7e2NjZ29jd3tve29vb2N7e3t7b2+LCy9/h3tzZ3Nrb397e2N7e2ODe3tvZ2+HV0OPg29vc3uHe3+Dj2tvb3d3V29fY39LM393f4N7b297e3t7c2Mzf3tnZ3N7e2Mff297f3N/Z1dXW3dja29va2tjSzN7e3NbY29vb3N7b3N/c2t3b28K1293b2d3e3+Pi2dvZ1dre27DF3srM3uLc293f3d/Y2N3a3t7e3tze39bM4sjG4drd4ODc4d/b3eHe4NXb3uDhycDh4N7Y4d7d4Njc2t/e49jZ393j4tzcx7fe29vjx8nh09jX29XT3dzj3tHG4+Pe3dfg29jU297e2tfa29nYy9Pd0tze49/c2+Le3NjI4eLCzODcu8ng2OPh3dPV3tfV4ePf3+Dh4d7e3uXR09bb4d3Vzd/f3Nvd3NbJ4N7a3OHj3tjV2+Lc1tvX0tfV0t7d2Nra197d4N7b1d7b193Qy93i3tjZ1tLf3N7c3tvb0tze3tvd2tbe197c0trV29nh3NrX2diy4Nnc3dzd3tO929fY39G44t7b49/Y0Nrb3uHe29nd4dvf3tvV4drY3Nfe2dPJ4OPf2N7b3dbh4drc2d7e39Xb49XM3tve3ca3493d1dPa297f3tve3tvh3+Ph3djZ3N7d39ve2N7e1dbV3d3b29nX1tLY3uHg29rc29rY4t7b17jW3tve3Nvh19LY3N3d29Xc3Nve3djhztqp2Nvb1szT3Nfg3tve3tfZ29/e2eLN2ePY19ve1N3e29va3d7V3d3a3d/e3+He3t7f3tja2Nrd3sPS297Y3tzc3tjc3tvV397X2N/e3t7d19fc29za2tve297f2OPf2Nff2NTe2t7Z4eDi2Nzg2t7e3uHT2t7Y197h393d497a38Hb3dzf0sPh3d7e4tve2b3e3+Dc4dzc3+Dd297e2dze2d3Z3NXb29vg3t/T2Nrc2tvX2OLe2OLextXe4Nzb3dnY3+Hg4s/b3trO29/e3Nbb1tjc29XU3t/c29/a2eHXzdfh39vf393c3tK7z+DY29/T197e2dXe4eDh29zb297c39zh3dvi3uHj2Nfg3tvXzuPg4t7c4dne3dvf3dzZ4d7d3drb3Nrb2tzd1d3e2Nrgzcnb3dfZ3Nvb29re397h3tXa3t/c4N3a37zd2tvf3dXa4drX3tvY297f3t7e1Nvb3uHe3ODe4OPd0dLa297c3szJ4dvc3Nzd4+HZ4N7e29nc3t7f3t3e48i/4ePY2dzf3t3e3N3c3uHa297e2t/f3t/c3N7d29rb1NPY2+Df2NnK2NvY1d/e09fb19ze3d7Z4cbU3trY2drd3tbY1Nvb2dzd1d7a3NrV3t7e4tLO39ff2t/Y3dva3t/Y2NXb2+De3dje2tzh3d7h3tvg5eDa2OPf2Nrc3Mze1dPb3Nrb4dvh3tvc0trY4Nzh4dvb4Nnh3dve2d7Y3djc3t7e2+bh29fb29/b2eO11uHf3t3b3dXd3N7c073e3NvYxNna3bW+493W2Nvf29jU3Nvi29jG2Nzb3d3Z2t3d2d3b2+Pa1Nnf3t7X2dnf3s/e3N3j3tjY39rh1Njg3NjW2N/Y193g39vd3di6397e3t7b4N3c393b19nV3d/e29ve3ODe4uHc3t/h3dXV29Xb4OHe1t3Y2+Df3uPe39vZ4NzV0uDb2Nvg29vc2d7e2s3b4tzd3sbe2t7c2eHh2d7g49/d3NvW2N7b29vT197b1N7d3dre3dre1t63zeHV2ODc3t7c3d7j29ve29vb3tjc2tvY3dze3ODZ2Njh4d7c3eHf2Nri393e297b3b3G39/f3t3f3Nvg1dXczdvb1tTh2dba2drb193b3uHh3N7b2Nze3dvY493Y3tzd3N7b197h3t7V1eHd3tzZ3sPY2tvj4N7f1tnj09bh29vb3t7Z3tzc293Y2eDc2d7i3trku9Lj4d3X39vX3t/e3uPh2d7i5OHMyt3d3t/X1t/Cx9XazN7c3OTf4NjVz9/I3tjY29LX1tzZ2dLb2NXb4eLb2uHb297e29jY3eLh1d3k3t/X1Nvd3trb2tzg49/RzdfS3ODe3d3h3tnb2uHc2tnW1d3U1uHb3N3e3tve3d7d29rh3N/Z4Nza2tLb3uHg3OHg3t/c2dfT3t/e39vb28/d4dLP2Nzd29za3OPM2+PU4Nfau9Pd3Nvdz9be2NfY1dvh3tvY4dfV3t7h29fY0ubf3eDb2dDW397jyNjh49vSz8ze2eHe393Q2Njc3Nzb3dnT3djV4eHkxcre3dTd3tnV1uHb2tnc4N7b2+Lf3uHYy9/d3Nfd3tni2tDf393b4cbX2+TW29zd2tjb29jYvdLa1dHS197Z29zZ2t7c2qy63eDW2dbZ2dnh3Nvb3NvU2djY4d3d29/e3tvP3+Hb3NTV2+Df39re5KrE49zc3trd2uDb2t3e3+PCyePb29vd2tnX3t7a3tzY2dje4+Hf4OHI39fb09zh2tva1tbe3tnd2tvb3tjb1N7Z2+G709imxOPe4drT3djZ3t7b29vgz9fd09nY3Nvc1tza3d7X3Nvd2N7h4OLe3NvU1czY3t3h3djY3N/d297iz8/f29vY0tva3tvb4eHd2dva29vZ2Njh29ve293b3trOydzg3Njd29jc49vW2c7h3N/Z29jb18ncydTe09nd3tze2M/c2wAAAAEAAEAXAAAACAAAAAAAAAAAAAAAgAAAAIAACADe29jh29ve29vZ29jV2N/c4dbc39ra3+Df397b3sLS4NzZccPl2eDa297T29vZvNvd4OHf2d7c3t/e3d3e29vd29nh29nb3t3Z193b29TY297h19ja3dvb3N7Tu9Te29rg3t/f3trbz9jh3tzb3dve4afa29va29nf3tjV3rbZ39vb3tzb4NjM09nZ3N/e2tfc3d/h29vd4Nve39vT39za48rM2Nvb4tve3tfc3dPe3uHXxMrW3NvL09ve2drd28vb3t7e3t/h3tPY2Nvd3dfa3tre2Nvc29Lh4+Pk3t7g4N7Z2d7S2tjc4d/c3tze2ODG3NzY3tfb39/e3NbVxtzg3t/f2dbe3M/A29jV2eHh29vY29rd3d3d3N/a2t3e4ODIydnX2OPg39va19vZ297d49LDsN7d4cbQ197i2Nvb2t7d3Nbe4dze2t3e4Nva1tni0tze293e293e4d7f2tvg3t7bsbTj2dnf4dzg3tne3NXZ1tnb3t3e39/e29ne3t3f3d7f3uDb3t7a3Nvb3t7g2+Df3NLZ193e3t7e4uDY3sPZ2t/kr9Dh3tvb3N7b4N7b3Nvg2eHa4ePY3uTX3tvi4N3e197k3tze3uHY09ze29je2N/e3tTW3tvb3tvb2+De3+GvzePe2Nrg1dfh3t3R2+Dd2+He2N3j29vc3+HY09rd2tvZ4NnZ2NHf29nc3dfc3t/cxNXe49fc3tjf5N3X3Nzc3+Cr0t/f4N/Y28zX3N/d3t7Wzdze2Mjh3d/Y2d/a297e2tng39/h397Y3OLb2ODY3uDdzNrh3tDg2t/f393d3d3Xz+HZ29rZ0t3f293S29/e2Nvh3brW397a3djV1N3b3t3X29zR0t7b2t3e4N/f29fj3tLQ2t7e1dXY4M/Y2+Lc4+bg29ne3tTbztjd4N/V1dXP4tvY0tje2dfc3dHd3dvb1uHd2dzY3d7e3uDf4N3V29Le3t3b3t3g297h3trV4dvW393Zz+Dc29vc4t/X2NvV2OXextnW2tvc2NvU3eHh3NvZ3bvX4MvY3N3a3dTe2OHg29rh39nhbb/k3trY3eLI197b3tra2dje3t7d19jM3t/b3t3P0uHa29nb4OHY2tvd2uHd4d7c293e397c19PV1uDd3tva3eHe3t7Y2NC/2t3dzdfZ0t3b3Nrf3tTQ3c/D1dTS1dnZ3t3c29zY2dzb29ze4dbc2trP0dXd397b09TY4ODS1tnB2+Pd2tTf28/c2N3a0Nng4tzh4NrQ3Nvf29/e2dLXz9/d293c3tLe4Nvc29zb4dzf3dbY4OTf29PV1r/h2tTd197f2dfWy7ra4b3M1dvb2t7hvczh19jb2bPF3t7b1OHb29vd39jb3Nnj39jg4dnd3d3e4NXa3d3T2d3a4MvX293d3dTX3trP3eHJ2+Hd19Lb3tnd2dvb397i2Nva3NzY4N7a29/e3tvb2Nrb3eDc2tXb3Nzb4dzczt3Y1d/X2N7e29bc29nax9nbstjY3N/Y3N+/y97b1Nfb27Dd39bS3tvY3N7d3t/b29vb3ODe3eDg5OHe2N/e3sLb2d7e4eLh39zY1eDe3dzd397X3OHSydXfytjh19ve3t6D2N7Z29HV3tbb4d7b2Mne3d3e3dXb297c397X0dXe3tXb2Nng4N/Z2N/d293c3Nfg297b39rR3d3j4t7V3d7h0t3g2N3f2Nne3t3d1tfd2tvb3dngzNLd39vO4N3c09vc293d3N7f2tjZ29ne4ePgz+PVv9ni4Nva1Nnc297W3tXd2dPb0tXe3dvY0d3f3tjc39ve3NvX2N7a3szU293b1d/X3eDU3uHY2Nze26/I5N7c2N7e2s/Z2ODe2tnb2t/g19vb29jb3uDh3uLY2t3h2Nze2Nva2Nvd2dfh197c4d/Y3uHf293e29zd293h29vT4N/S3Nrf1N7W3N/Y2tjd4dvb2tbe4djU3tHS393i3Nve0tjg4eDMzN7Y2OPg4dvY2Nrj1tnc2tfb3dzY1sjY1NXe3d7T29ve4Nrc3t3e29/b3dnb4t7a1d7e3dvd4dPW4dre3Nvc3Nja4eHd3uHP0NvW4eDg3N7b3t7e4N7h4N/U29ve4dze293h39zY4ODe2Nze2d7c4a3X39va0t7gztrZ293h3tfe3N7d3uHh497X297W2dLb2+De3uHZ0N3SweTl3d7b0Nrg2+HZ3tze3t3e2Nzh4NrY393h4OHLquHh3t7i297a3tzf4Nva3dXE29fe4dbb3tvY3N7e2trZ3tPZ4N7h2eLb4N/V2+LY29vg3N7Uz+Hh3NjYzd3f2d3WydPj3t3G2tnh29rY2+De397d2OPY2d3a2d/b2Mnj4N/e08LZ1d/d2uDf1NLe2N3V2Njb3Nrd3tve4OHd2tvb4t/h3ODb3N7c3tve3tXY4NnN3uTgz9rb097X3d7hzdrb29vh4Nve3+He19vQ0d7b2+Hd2tve3tHS4ODY3tfb3N3c3uPe2t/k49/c297f397g4d7f2NPc2Njb19ne2Nne3N7SxODd3t7c3ODb2NvS3NLb2Njgydje3N3Zv9re4ODV3N7h4djS5Nnc2tzT1Nfb2tbb3t7h397Y3dvg3dG/293c3t/W0d7R497b5NTG4Nve4NPd19jb1trg39jUsuHa3d7e3dnP1d3d3trP3d7Y3eLZ2+DhvtXU4eDY3t/b193b2t7f2N/e4Nvb2t7b2Nje1tvY1uDa29zd3tjP39vc3tPf4dzf29zf3Nvc4d3e2tvc3tvb4dje3t3g4d7Yus3b293e3tbY3dne3t7d2Nnb4Nze0dXb2Nvd49fP3dXZ19zW2d7a4MLFz9ve3c/Y3tbU3dvS3uDezMng2+Df2drX3dna297b2Nfa3t3f2t3Y1Nva0tra29jV2Nnf2d7e3d3h3N/e3+Le3tvY2tzh1dXe29vg4d7e1tve4dze4dvh3djh293dzOHf4dzd3OHJ2ePd3dve2t3e2+Hdz97d3OHb3dvM3t7e2dba19vh4dza2NPf19rY393V1dXb3t3c3tfW3djY3Nvb3d/b2Nvc393b3drb2NvV193b4NzR1dvf3d7Z3tve3tzh3d7b4NzY2d7b39PT5eDdzrze2d7d3drg1OHg293Vwdjh2+Hg3eLh393i4N7S1d3a3uHa29re4dzg3NjY29/b3dbe4d3d39rB3uHOyuDc3eHZ09/Y3d7f4NHX3dvY2uHZ2dvh2dvb2N/Y19LZ3trd3t7e2szc29nM29/e4eHe2N3f3uDd2drY297e29jf4uHYtOLb3t7e1Nvh4N/b3t7H2driyNze3t7b3uHj4o9p49Df3ODd3t/f3t/j3tve3Nvb1d/f3Nzg3Nzh3NfK2t3e29/f3t7Vz9Tf2tnf3t7Y1d7b3ODf4dze3tPX1Nzg29rZ3d3g2t/h3tfd3t7h3t3c3tvb0eLc3N7Y2d7i3dvg3Nvf2s3Y4dvF297h4Nvc3eLe3eLFydLV2drd0tvYeHLe197c4OHZ3OHg3N3czdjc3N/P39C8297Y4N3c0tvb2+He1Nfe3tLV3d7g297jz9vc4ODe2N3d3tjV3drY4szN2d7b3uDc3NTc3+TZ3uDV2ODd3LVh0t7Y293Y2+DY19ve2N/XwNXj3N/d2N7e3+Hc2tfb3eayy9ve19ve2MzW29rh2dve5NfV3t7b29je09Lb3N7c09XV3tzd4NnPz+HV29zT39rh2N3e2tjb296/1+Lc397b29Xe29PW297Z29eo19jc397h2dbfwsfe2tjd3tzjxpTQ3t7b3dve4N7b4uDa3t/e3d3g3Nnb3eLg3N7e3NXY3NzX3uLd3t3f39jh3tvY29jf4d7c2NvS19zhxtje3t7X3uDc3NvV0NPUydzW19vZ2Nrc29rW3d7b3N/h2NXe2NPH1tfY2djZ39/c29Xdz93b4dze49vGzt7d39zS1uPKl9jY197b29/f3dzf39va3tzY0uPh3d7c2Nre3uDezdXe29nW397W3tvb2N7b29zk297e397a297e4OPX39/a29vd3dPa2djTzdXP4dPb297b297e3N7Y3NfZ2uHc29zY29zb2N3c3d7b3N3e19vQztnS4dzb1ebU3N3e1djd2dOY1NXY3tjh3tvc29zU2t7d3t7b29vf3dve3t7Y29va2tze4dnb3trT2+Lh39XZ4tre3dzj29vg3tve2tvX3dzW2+He19vb4MzR3tzZ3Nvb2tvX2dvb2NTjzNDf4dvc2dXW3uHe3uLe29fZ29zS2MzP3Nve2tK35rbV2t3Z3t7d2+jT0t/g3tzg29zd3Nvb3tvg3NzV48vL29/Y197b39vZ1tre497Z4d7e39/f3tvg3tvg3ODb3t7e3drWytjb39fg3tzd1djY2d7h3MvY297a29jb297e28zY3drd397e2tjf3Nvd3Nvc3NHe3+Di0tjg4t7b3Nje3tvZ4eHc29/c4Nbb29fh3M/a3d/b293c29Xd29Di0tTb3NnU2t7d4dfR3tzZ39Xd3t7b297W2tve3dve3uHcxdvg2N3b2dbW4dvU2tXcz93Y3+HXyOHeyuDP1eHT1d3e0N7e2t7h39zc4dzY4Nrc3N7e297b3d3d2NXa3tzf4Nvb3dXK0dvSzuHd3trd19/c0djh3tnS4djV3N/YyeHd3t3f4t3e3Nva2tfd2NDZ0d3f2N7c3t/f2d7h097d29vX2Nzc3djY1dfa2NnS097g3d3Y2uDh29/Q0t7h4dbb19ze293Y38nD29rb297c1NvY1t7Y1dnb29vb4NLW29fY4djg1dbZ4NXY4Ofj0d/g3Njb4dvg1srb4bHQ4d7Z3d7e3Nvd2d3h29va2tPS1dna2Nvb4NnZ4d3b2Nrb1dveydje29vb0t7a29ja3tjX4N3e3t291dXX3+Dc3uDY3tHe4N7d097e0dHe2Nvb3tve4dnZ29rU4eHd2tve0tTf3dff29vZ297g3+LSzdjY2dLf3tvh2N3Z2MDL2dvY2N3c4tzb49vc39/e3NXd3tvY1dzb2N/a3t/X19vi1t7R2NfY09bY2tje3NfZ3tvd4dHb2dze3tjS0d7e2Nvc3tvW2dzb2NvY297i29Lg3dvg39HR49vb3d/e3eHY1t3j4uTb3d7d3d3h3trd29nZ29vb1tzf1t3c2t7h09Da2N3d3djX39zi4N7a3t7bwtXe3tnZ29/a3Nze3Nvb3uPg2dzW2t3h0tve29zd0tvb3uHPtN/V3Nfb2tre4Mze3t/c29ve2tzYzdvP1drb293d29vfydXh3N7f3tvb2Nnb3rPPpc7d3N3e3Nzd09vY3uPY1Nve293V3eHZ2tje1sza4dze29jc3tvc397g3t7T2dne4d7Z29rY3dvd297b4dSt1djc3uHMyt7j3dvb4d7e2N3f3tvLrdLh4t7f1eDb1tzX3d3i4Nza39nf3NvZ2djh3uHV09jb3t3e3tzU4ODepcSq1Njb297e1dze393Z4drc29vc2Nbd2Nre4NzU2OHZ3uLb2dva4ODd1dvY1tDY39/Y4dXV2+Hi2tzW2N7b2dzf3d3Y3cfH4OHe4t7f2+HP297e29nV3tvV3tvc29nb2trb5MDF3dbg3Nzb29PZ2c7ZytLP1dvb3tjY2t2/09/c1OHe3tjZ3M7V3d7b3drc3NrVz9bc1t3e4dvb3tTP39PZ48Cy19rb29/V29jQ3t3d4NvdztHfzcLh1dTa29rf1Nrg293V0N7h4OHe3N7f3tbS19/h4dve2sLg29zY0dPY39fdz8zb1dve2Nbc2dvYzNXT2N3c2dfW29ff4dLY3OHe3N/c3tvd2dje2dPb49zZ29jY2ODY3Nzb4dve2NXZ2+DhvrHe39jb397a4OPf3N3d39/f1djS0d7YtNvY29zb2+HZ397Z3dXR3uHd3ODe2dXe2+Ph3t3Z29vb3tjZ1Nbf2MzZ3trY3tXZ2tjQ3tnW29jf297Q3Nfb29be39bX2+Hb2Nvm3Nzh3tzZ19/h3t3d397e4d/X2t7d29/g4d/b293e5tvU2t7f4eDd4NLh39zT4N/b3NXa3tja197b4OHh3tTe497g29Le29vX0Nzf39rY3ePI1d7c0tTe2N7c29nd3t3Y29ve197c29va3N7e29rf3Mrd3NrY3uHe2N7X297f2ILF3tre3N7h4dfd3N7d2N/c39/h4eDe3t7e3t3a09jm3cbY393i3dze3d7e3czc1t7g3tvW3Nzb4eDe4ODg29jd0dTc4N7e19jM1Nje2t7e28zR3d7R2d/e3t7ayODe4OHb2eLj39zd3tnd2N3e3N/a39nd3tzh2+Dg3tnb4ufRbsrb2t7Y2t7e4N3d3eDa093e3djf4N7b3tzX2+O8zuDc2uHg1c/Y2tjb3tjZ2uHOuuHc3tjF2uDf4d3f4eHi4Nvf1trb2N7EytjY1dnc4OPJ3tjf0d7i39nb3OO9s97Mvt7h2Nbe3d3h3djZ2t7c3tvc3dve3tze193j29fb3t7f29rX2dvb39vh4d7b2NfU2+Hb1tXb3uHh3tnd3+He2+Hf29vU2tjZ3t7e2t3d3t/T3d3b29jj3uDe3uHh3uGp1N7X3dnc3NzY2OPixc7j1tvf2+Db3L/a3tvd4MzBz9i/2Nrh2Mzc2dvb3t7d3NPc2N3g3uDb29vd3tvi3t3h4N7Y39W738zb2OHk39/V1dfV2sncz9LV2tXV293d3dzh4uDh1tfa3d7f393h5ODe3tnf4Nba3eLV2dzZ3tjg4NHX3tLb3N7X4NvY4ePf297V2uHc3trZ29nU19jT397i3uHb3tvN097d3t7d2t3Y2+Ha1djc29/b2t3b3tjh3+Dh3dnc4efRv9ve393d4dzd3tvY2eDe1dPW3djb397e3t7d4NvV2Nze29ff4t7f4Nzb4+Hi0s/b2uLX2OHc1tjc3uHe2tvc2tvg49/W3t7b29PX49zWydvT3NjU29vb28nd297e3s/O3dnb29rT3Nrg3tTJr+Te39Of29vb297c1NLb3N7f3drV3t7e3tzc2tzX2trc3d3Y2eDe3dvb3N/b4N/d3eDb3Nzc3dzf3N7i3dzh3NjY19zf4eDg4d3d2Nvf3tDb3N/g29Xfztba29jh3N7e29fT1tfc3dvd29jb2tvb4eDb3t7d2Njb3N/c29ff1tPX3dvY2rXb297i1tjGyN7e3d3d3eDYz9vY29vh3Nrc09rc3eHb4d3d3tza29ve2tvP0tbd3dfe3NXf2dnf39TS3N3d3N7e29TW3tvZ497U1tjZ2tzf39vJ29rc2ODd3eDX19Tb3tje2dra1eDb2Nje3t/c3NnY3dvg3tXe2dra4NzZ3tzg5Nfc39/b3dfM4dvW2NvV297b3djW3d7b3t3L3N3f3d7Y1N7b29zW4ODb3d/e3t/c297h3uTZ4b/bx9DY4d/d2Nvb2NvZ1uPh29Lb3Nbd2+Hg3Nje3d7h4uHf4NXY4uHb397c3N7b3d7X193X3tzg1dDb293U3t7e3dra2Nve3N7Sw9bW3N7b2Njd0t3d2tbZ3djc2tja19vW3Nzb2Nvh3sy/5eDb3t3b29zg4t7e4Nre3N/KyeDZtdfe1c3e1+PQz+Te2N3f5d3h2tje2dfg4dnf3tjb4eXg3t3f29iuzN/c2+De19zb3N7b29jS49jV2dzd39je2d/a29na29jc29va3t7d29/L197d3tfW3dnb2t7i3tXb3+De2tvc3t7f1dzP3t3W3t7c39vd3eHe3d3a4cvG2dXf4Nvb4trY3c7T3Nrd39rj493e39rb1+Df3dXX39/e3tjT2NvY2L++4dze17fV3trd297d29nb29rb2dzg2tvX3tvY2NvY29za3+PZ3d7e3t7e397b1tfW3tzh3dve3uCf1dzg2ODb2d3g2MDX4dvc3uDc4eHh4OLZ29/Y4ePc3trb1t7I0t7Y0svd2d3b2dve397a3Nfb2N7WlePW3uHb2E6249vY4dnV4eHYzNXe4ODM2dza3tvY3dfV3N/d3N3c3dnd3czd3tvY3NXM2tTa3dDY3Nnd2djb3tnN3t7h3qrV2Nzb3eDg3d3b3tXa4Nve3tje4N7c2drf3NrX2Obh2NfY3Njb29PU29ng29bd19vb1dnf2tXP29re1sre3NvgpdXd3tjV4d3e4eHY2NzQy6Xg4d3h297b3dnY3uDb3t3e39/e29vZ4N3b2dPV09zhwcfc3NTd39vf18nh3uLe4uDY2tve19rb2OPg3N3Y293Tz93f397d2Nvc3NXX4Njc3OPd3NrY39jV0uHh2N3b3dXW1tvc2dza3tvS3tXb3tzj3t7h0s3i3t3i3OPTyaiy2ODa2dvf3dvb3eDc3tTe3d7f3Nvb19jW3dve2tne3tvZ1tzh297c2tnV1dTb4d3b2tva29jY2dne39/j2tfV29bb3t3f2N7b3dvh3dne3d7by9jd2NHe4d7c2dfI4N7Z39vd1t3e3Nzh4N3g3t3c09jc29rc4dvd29ve4OHczszh2dva1s/b19PY2NXe0szE3tjZ19PS0tvc3Nfb28m719Lf4d/e19jb393Z29fZ3N7e397c397V2NnV2eDb2Nbb3uDT29nU2t/a3d7f3d7Y3NOs0t3d2+De4d3V3uPe1cnb49zd3s/Y4Mnb4eDb3dnb38nW4dbX1dve3t7W293b297d3dnY0tza2uPb2dzPxqjR29rV4bOv297a1d/hu7Xh4t3d39jb0dva0dXj3Njf4N/d3ODY3Nvd2tHi3Nvb3t7e29fU1dne29zc3uDgztLj4d3U2OHe3dvb393f0szd2N/e29vhzdPQuuTP1tnM3uHj4t3c397O2N7b0tDG4Nvc39fc293c3tvY3NvV3uHe2bvg3uHe4Nnb3d/j3NzBxeG41d7g3dOo3NbX1d3Y3+Dg3t3j2tzX197Z3NzY29jK1OPc4NzY1+De397d3tvS29vd3tXV29nf3tfa2+G6k+LQt9/d3uHY2tTU2NPc29bg4ODj4NnY3t/c4dfP1+DV19zW3tje4d/ezMHh2Nfc4d7b3t3e2tbe29Hc4d7b2tTa2s3a397b0t3j3tXay9Xg3dng1t3e3t7b2+De2tvV4NLd4t/Z2ODc3N/e4t3e2Nvf2uDb1tzW3tvd4dXb0tTL3tLN3Nvd3N7Y3tTV4OHg2d7e1cnh2M/b2dvb0tbc2dbT5Nnb4NjY2NjV2Nvc2tLe0dHa2t3YztzY3c/S297a097e2d3b1tjY297X29za297f4OHV2+Hd5OPb2N7e3drf283W3tve2dva3t/R29vb3d7g3trb4t7a39za1N7W19/Y29/Z08jf4eDg4tvc4Njc3d3CkuDa4d7b2+HY2dvZ3t7f49rd3Nnb29zW287d0dfb2Nve29vdzdLa1dLb3trd2OHV1dve1dzb3NXb4eHd4tbb0Lfe4dvb49rb2uLe4Nnb2N/h29ze19vZ1rzJ3N7f2tfh4c7h2NrZ4NnW3ePbz9zW2NjVxODf3t/Y397g2+Dg2NvS3sad3t7bvtvc3OHe3t3Z3tna2N7h1cTcz9ngz9Xb3tTV19PY19fh3tja1cXc39XU397b4N7c4ODj3uDZ2tnW0N3ey8za39vc4NfV19fd4uHf3Nre3t3ez9Tb29ri4Njf4cfE4crX3N7fzNze4tzd4d3e3tzZ4drd4d/e4eDc3N3Z0qnf4d+t3dzL3d3c2NrT3Nnh3tbX1Mza2+HY29rY1dfa2d7e3tvM4dLT09bY2d7Z3d/Y1d7g4NbN4d7e3t7Y3NvMzuPj3tvY1dPh297e2drb3N7Z2N7b0dvg297c4tPV29vjt87ez9qDv+Xb3N3c29va29jS197d5d7Y0djd4MbI5Nnd2N3U1dXf3tzY49XX1NTh2M/V187U4ODd3+Le2N3c3Nvd2NXd39Xg3OHg3dzYt9LT2tze3tvY4N/h29fY3t3gz9zg1NnJ3t3d2t3Z0dvV4tvb5HKq3Obh29/S09zb297i2N/Y3OPe29jb3t7Z29vV2dDR2+Sir9jW4NjMu8Hc3+Lj1dLc3dvc3tvb3djR1OHb0dXe0Nq7ytrd3NrY2t/bzd7c297Y29rc29/e3tnG3eHa3NrT5LS/397b29vSy9TV2dnW4eLgydbh4dve3tLL2tLYstza06Db4N7g39Xf4uPb3OHX3uLb3NXf3tvV39Te4eHd3rvO49jS1sa5wdvh39vg4Nne29jZ3NvY293c3dvkvM3d25m94tvc2t7e39bD3s7V297c3dvh297d2+Lf4N7ey7vZwLva2d7b2dvT1Nvb39LZ3+La2eLe4OHd1sLe29vh3+HVn9vg2dvb1eDb3t/b383T393e0N3P19be2tje29rc4t/a19DZx7rb4dzb3N7i4dze2N3W3d/e2t7X1t3d39vJ2N3e3t7d3d/b3tzb29Pa2eDh3tvd4dvh1Njg39/b1tfh2dLb39nd4dXd39/ks73l4NzV3t7b3N3b3uDe4Nre39zjy9Xa4d7b2Nvc3drX2tze3N7b39PT0uHc1dvl2NnZ3N3g0drc2N/f3ODY29Xb2djZ4OHc3qbQ3tvP3uDj3Njb4N7V1dff3tvb2N3Z2tvg4eLb297e1dza3OHc3t/d3Njb297e393dzNXj2uHZ2+Lh29jX2N7a29bU2t3e2+De3N7X1djd2tvh297d3dvb3+Hd3tjb3NjP3tjY39ve29je2N/h3dvf2uHk397f2NK71Nbg2t/Vu+Dc3djb3dvf3+HS29ve3NvZ29fO0t7d3d3e29ba3tvd4Nrg3djb3tvc3d/X2tLT0+HV1uLe29vb3N3h283b39vQ2Nzd29vW2NnZ2Nfj2Nng29ng3NvV1tvX1eHb4drb097hyNLd1eHb2+Dh2d/b2t3Z2bPd3dvV19Tg1d3XzuLm393d4dvh5M/S3dbh297Z1d/e1M/V397b2t/d2+Hf19jY3d3c2N7dzt7h39/czbTVy9/f29vezszb3+PZwOHd29Ph3NXZ3t3f3tjY4eHe2tjZ19jd0dXd2tfH4Nzf4tvZ3t7d297a397d3OPb2tzJ297Zmd7e3dnex9jY19jZ3N7d3trh0arQsszR4dve2dDY2Nvb3ODe3tne3d7c2+O0yNjc5OPS3tfX3tjb3trf3dvS3tvb2N3b29zj0s7h2NvY3uLU3t/Y4M7G29zc3N3f2Nbb2N/Z4uPe3tHe4dvh3uHMz97g3t7b3dnd297Y3sLV39/f297e3djb1czX3eLd3uDd3uHYns+0yODe3tvc083V29vd4d7X2Nzb2+Dg283a3d/c4NjV2eHe3t/d3NrS2N3Y4N7X3eHd29vR1tvg293h4N3R2tvh1cvd4tzb0uHb29ze3t3V29/YzODd3sXg3dva3uDd29zd2s3j4NXd1Njb3Nne2Nva3cDLuNja2N/e3dzRr+Hi2dTg4N/J1dvc1dnb293a4M/P3tfN3N/h4d7b2tnf297i3tzb3trhztPH2OPe4dvb3tvY2tva2OLb3N7e3t7i4M/Z39jE4dvV2d/e29/e3NLczNLe3+DWqt3e4eLc3tvf3dre2d3e3tjg4djb2N7f2+Pg2N7Z2NvY393Y3tzM2t3Z4dzg2tfa29ve29ja293h0t3e2MvX3t/e1dXb29re3s/V19Dc29vf2tve2eDg39va3t/b4dvb4NLb4dzc3dXh2Nrg1aDb29jU3+He3t7b3dHC2Nrf5Nve39vg4trc2dXb3dzQ3OHe3t/b1t7byeXd3tzX4N7e4djZ3+Da3d3b29vZ29za3tfB4dza3t7gxsHU3d3e4dra0t/Oy+Dc3+auqOLW2OLe3dvV497W3t7Z3t7c3t7b3eHd2tzY0+LYzd7V2tfez93a3eHGxeDZ3NXb0c/T3ua2sNze29bg2t/e197d29DSxeDc3eLX1uB5w+De0NfY3uHh2tDc39nX1t7f3NvX39ba1NXc2t7b297W19/c293V4NLT4NLf3eDi3sjS28/j2dne3eHd3NzS297e3Nvi2t3b29jj3tXb2+HCwMTe3t7e39zb28Oz493i3Mba3Nze3ruj49/b0bne4d3d3t/j28Gy39vg3uDd4Z+W47nF0tne4ODY2Nvd39faz9rY3d7h4d/c4eHb29nd29rd3d7byOHYxdjc3d/e3eDd4d/h3uDb09vi4d/e3uLc2+Hh1cze4t7b4drc3uHY3dLb4N7a293c18zh3NnS3NvavNTg29ja4ebewtfG1Nva1dXa1dze293b3tze4OHVydHVm+fV197a29DO1dvY2d7b3+Dh4d/g4N3c49/e3uLb1dnb29bg4dzJ297U297b3dvi4t/g29/P29/e3tvd3dvd3t/Y0tzg4N7h2drh3NPY3+HY3ODe2M/V0d/a3t3e2N3e1tff3djb3t6V3OHd1dLb2eDT2N7b09/g0NzI4NrM2dvgyq/f3tjW2dvY3tKu1OTe3dXY297e29PV39jdf9Lc3N3exeHe3ODV3s/V3drc2N7h0d/e39jd29vc3d3R297e2tnb3d3h3tfY3rzR0sTbz9Pe3d7S19/g29fe29vY3N3c1d/e19je397d4Nvd3t/e2Nvf297e2uLIudnb2eHb2trZ2+Pe4OLezt/f39HZydzeztjc4N3fxdTc1N2fzd7e2NjX3ODh29zc1drd4d/c297c3t3b3tbb3trf3NXS3tnf4uDd397e2dPj0dba0d7S3tzZ1djY29ve0Nbe4tjUyN7b2ODe2dvZ1tjd2d7Y2+Hc2t/e2svd3du719/e3t7e3dve3t/VrOLZ4NvX1d/S2uHR2N/j28TR2dja1ubZ2tTP3N7Z1Mjb4c/b4djZ3ODb2tvJ2+Dmzsnc29fM08re29/b3N7g3t7g39rj2MLT2d/b3t3X1N7a2N/Y19Xb293b29/b3tTa3t7e3dze1eHd3uDe3dzYxt7b5cbA2Nvf0dvg1M/b4tjI2tfe29nY3NnY0tje3N7Yt8nc397b4djb0sXg2Lbbytze297h09Pd39ze19La19jextnb29vZ2t3d3Nvf3tvV3tze2NrX0tLU4N3f39vc4szY3OXb09vc4d/b1uHb2+Le297c3d3d29va3t/f3tfZ3NrR49LT3tXY2t3Vu9vc2uDd2d7f29jb393N09Pb3Nra2uHg2tjX3Nvd387V3eHc3Nvd1+Hi3s/c4d/h4djZ2eDV2Nzh4d3c29vh3N/e3dfb3tvh3Nbe4eTh297c2+Lj2Nzg4N7d1NjZ3uDU297g3t7g19vg2dnX1dTV3t7c3t7b29fV3N/Y2Nra3t3Z2dTN4N7bo9zX297f3tzVxdrY3N/f393b0tbY3OTc19/Zz9va3tvY397b397e2Njc29ve3tfZ1dLd3t/c2Nje4N/d3dXh1dXf39zb2N/f29/j2NHg29vb3N7Z39jh4d7d4d3Y3t3e3t3M3dvX2Nzb4+Hg3dnj4czO39ve397e39rY3N7W1dzJ3N7c3uDb2tjh2Nzj4tHO49rg0tbb4M7S3tHS4d/Z1tve2dTe29ve3N/Y2trd2tjb2dvZ1tXd2dzb1d3c3tvb2tra4NXP29jc3OHIvuPY28/e4t3e2dTe4d7f3M/jytXd4d/Y2LTPz9Ph3t7S4cK24tPf4d7Y2+Df1dTe29PP3trb4d7b3t7c3ODe4eHZzdHf397B193czM/j2+Lc2crc3tjY4N7b2+HZ393f3t7b2OHg3tnVzNjf4NzY2tfe3ODRt7nmzc/f2eDe0tzZ4N7e3tvh29vd1KjJ3uDb3tTV2dre3uHdmM/d0tLb3tXe1djj3dve3tfT3+HS09zb3t7c297bydvf1cze2dze3tXX29zb3uDQ1tzb197d3tja297b3d7e1dvG0+Pe3uDb3Nzd2Nvd3d7U0NvW297U0d3d4ce/ytjQzL/f3d3U3d7Y3d/g2tvV4d/kyNbh4d3e1Nvc29/e4Obh3t7c2+Dc2Nvf3tXa29ne3cnY3tvg39ze4uLe3t7S0d3P1uHh29rV29je4dve3trb2NfT1dve29Xe29za3tzb4dHT4trc4Nzf3dzV3uDi3t/b3NvY3Nvb3eHWz9bY4NvTzeHY3dzV2Nbe1eHf2NjZ2Nnj3+Lb3d7g19ze3t/izNrd4eDb5ti04Nrd1dLhz9bb297e2eDg2+He3N/b4eLV3+Db2dvd3djg3tzf3tjY4+Lb3N7Y3tva29na3N7Y4dvb4eLg3dvX39vR3tfc1tvX4NjV3d/e2+Hg4dDS3tLH4t3g3t3Y3tva293Z2+Hi3tDP29ze4d7S4tjY1OHf29vT397h4Nzf4t/b3t7f2+He2dvZ297l4eHi0tjg4tvb3uTMz9ve397Qy9Lg3NTe2NjU3eLe4dzS3tjf1trV0drE1drj3+Lg0s7f2d/b29rc09Xg2tXa2969xtve29rUw6jj3drg29zY3N3c1Njd1djU2Mza3Nva3dze2d7b3Nzh4dLf4t/a4Nzd3t7Z3dvc3dve3Nzb3tzRz+XT3d3d2djf2WO4vcLd29O1qubc2dnY29Xe4drd4NXb3t3a4cqf4tXe4uDe397e4Nzb3tje29/Zz93g29rg3sbK1Nvb3NG9yt/b2tXQ2NrS4t/W3eDXz9Ld1dvVz93e4Nzg29je3N/f1N7GzNXZ29je3d3e4N7V1t7d3eDf29rS2+Pd2t7c3d7azNirwN3Q2t7Z2+De19rM0N7b2NvY29bb2Nbb3dPd2N7e29TT2t3f3d7c2N7h3tvb3N3f1dXg59vY297b4eLc3uHYz8zV4tXB3tXa3d3b29/f4d3Y29bb3tvb28jY3tva5a3J3tjc4dne4eDe4d3g3d7c2eDf3d3g2tjP2ODf3d7e0uHd2d/R2uDe2tvd09nS4Nvd4t7d1eDU2tvc2drf3Nra2aXS4uLb3dfV3N7Z0tvb297Z0+Tb29zV0dbY3tvX3N3d0tjh1tLa2sLh4d7b1+DZz+Pc0tzY1t7YuNXg4NnS4d7b29zY38/Y4dbd3t/d4d3b2Nrd277PzL7I4uHb29/T3eHd3tXR3N7V3dvb397P0eHc197d297g3uHj3tTX3N3eq9Xe3NvX1dHb29zb3t7b2N7c39/b2M/Y3NTS4c/b4dvc3Nzd39zZvd7h3tnd29jb2t3f4tjR29Xg1tfi1aze2+He3N7d2N/e3dvZ3eDe39zb3d3bwdvOuODd3tvW4N7f1d7Z2tne0tHd3Nva3czU3dnYyePY2dfW4d7Yzc/a4dvg2NrW2czc3tvZ2tTb297e2tfc3t7c2NrZ29ff3uHM3t3e393c4dzh1d/izt3c3N+M1dfb2uDb4d7X1svV2eLe39/d39/e3t7a4dzV2ePe1d/h3tjI5t3H3Nrc2N/b2eDd3t3i29vd4dre3t7d3d7b3t7a3tnb2t7b3dviyrbC39bS3tna49na3djZ2dvb3dXc29rY3NjX293Y2dve29Xe09vV3trf3tnd2Nze3t7e4LPZ29vc3t7V29zh0d3i1NLV3tzh3t/d29Pc4t7d3N7d3dnV2L/h297g3OHe3t7e2t3Y2+Hd3t3a09vb4NjS3N/e2+HgztDVz97i3uDm0dHb2tvf397Y3t7e3drY39ve19za2Nve09je3tjW2t3h2N7Y1NnZ2tvh2d/VzOHc3t/f4t7b1d/g2dTY2+De2uTIz9XY1d3f3tzd3t3b497b3eLg3t3X4djX3dzc3tXc3dre29fW3+G41M++3d3b2djfzc3A2N7P0tjW4d7g29jg4t3Y3M/Z29je3dza2tXb0t/e29bY3tjc2eDe297R2tvY2djb4dHX397i29jP1tjb29zb3NvY29vc2NXY3eLW1d3e3dvc39fS2dnf4N7b3N3c3+De3uHa3Nbd4dvb0uDc4eDg29ze3LXe0tDc3dvj1tzY29TM1N7g29fY3t7e2N/e2t3dztHX2OLXyeDX3t7Q2s/UzLnX3OPj4NjY3s/Z28DY0OTe1Nrh3N7e2t7d29zb4d7e3c3Qz+Ha29DY297b09fb4OHh19Lf3NLc4N3V1t3e387O3tTO4drd28/d4N/Z3dff3eDc4dzb4tjZ4NbQ18bS3NbZ2t7d29ze4Nve3t3b3dvY1dnW09Xb29vh3dnbs9XFzt7j29zY29zZ393b1d3a3eDY39bX3dbb397Y1d/e4d7h4Nre3t3i2+Dc3N7Z4NzezsDm2t/e29TV397PzuDe2MLh397a2N7WxeHg4N7c3ePY2Obc29vg4d7by+HY0tXV2Mff4N/e4N3a2NHb3Nje39zd293NyeHd0drf3NzY2dfV29vc3Nvb29bY2OPVyeDY193c2dXd2eDc3tvZ3trd3Nzg3Nzb3N7Y29ze2ODe1djZyN7f4d7b4MTZ4t7d3drh3t3d4dva3N7U2uDd3tvg297ejdbd3tvW3NvE0+Db2Nze3Nfe3N7e38/d29jY3tze3tzY29vd1Mi80NXV29nZ2dfe0tzg3t7Z2NbJ2tve4eHX1t7f297b2dfc29jX2tve3uDe39vb3tnb3tzY3t7Y2NTY1dra2+Pgydrc4ODh297T3N7b3d3b3d7Z29vd3tjS0uGU1drS2d3PyMzV29XT39/a29zZ29vd2M/Y0t3e2N3b4dLS2+LVv+DU297Z2NrP19TS3tXe4d6h3tbV3uDh39DP3+Hi2s/c2t7c19HX2N3h1Nna4N7b3d3d2uDh2dvb2uHQz97c293h4dzb3N3d4eLh1c/h3t7c4Nrc3N/Vwt7b4uHb3t7b18PN2ODf3Nzb3tXiz87Y2Nvg0NvS2dnh39ze1dvgytTh3d7Q39bZ39zg1tfb2sbSz8Td4djb297h39vb4N7d1t3f3+Pd0tvR1t7Y29ze293c1d7c2dHf4N7e4Nvb4d7Y1dbh3tvb3uHb3d7c1drY4dvV3tvb3tzX2snY3tjh29vbxM7f4NjY3tbf1dvY4N/c3dvk39vdzOHV2tjc29jP197b2dvb3uLm0tjh3t7hmszb5N7d3NfU3Nbc2dvg39TV3d7g3t/b293c29ze4tjX3Nve0tXUzODe3eHh3t3e29vf4N3e3djg497f3trd2tvez9Tf4Nzd2NvWvdvX4NTa3uDZ1tDU4N7e3Njf297c3d7h2tvb3tTl4dXb2t7h29zc3tna4OHh4N7b2eHe3N7Pqt7e29rY2Nnb1eHC293Y2Njb3t/b3d3V3dnY4ODe2t3b3t7a1d3a3N7b197Y3tnZ3tve3ePe19vf39fb19bY29zV297e2dfb3N7l18ni1djg3uPJyt3e3d7e0Nze4dLe3t/e4Nrd2dvb4NvX3N7b3N3f2tbc3d/h3uPd2tjX3djZ3N3f3uHd3trY4uHe4NvR3eHd2Nnc29zi3dje2N7e2dna3N3X1d3R1uHb2N7c3t7d29vbyt3b1tnh4NTb28Lb3t7V3N/e3eDb2uDe3NLM39rX393f3Nve29fW2djb1N7f39vb4Nvh3dvd0NLb2Nbd3tXb2djS3Nvi3tvV2d7b3Nvd3t7a39/Z3dze4N/dydDW3dzZ2Nvd4OHe4djd2dXa1t7g4dva4Nne49/V4OPc3tTX2NvS3N7e2eLd2Njc3d/j497Y3t7S3tbM2drS2tva1dfb3dnX297a2NXh3d7e2Nbb297d3uHe2N/P1d/a3d3d29fe3NXb39ja3tLc4N3a2ODd297Y29nV29zf39KO1tvg4dzb29zi29je093S1d/P2dvc27vi3Nnd39Ha3t/b29jc3Nvc3tve3NrRyOHg4t7h3tne29be2dLU3tvY4tPX3dvd1dvc4djW297Y2NjY2t3f39ne296/y+De1d7U3eLWwt7e2+Dg2tzb3dvU2Nva3NrX4dvZ29Te2OHg3N/e4N7Y2t/V3+Hf5ODc2N/e3Nze3NrY2Nrb2drf497c297b29vh29za3djJ4d3b4OHU293b3eDb3t7c3eLb293e3N3c2+De3N3d3uLg09vV2dzT2+LZ29zb3t3b3N3Sr97S3dzd3d7a393S293e3t3e3d7Y2N3g393Z4eHd3tzh1tvb3dra2Nnl2Nfe29vd3tve4d7g3tjh0M/a3drf4tvb4N/g19jd2dLh08bV4OPe3srN3d7a2t3b3Nvf3t3h19nh4tzb4NO74dve2N7F2+Dh1s7c4djY3tzb3dzc4dew0MbZ3t7e39rb3tfY1svh3Nva2NvT2OHZ3+LVy97N0OHa19fd1+DV2Nrc1dvd29XX2t3f3N3ZztvY2N3e29vX2Nnh3tje1NjZ0tTb29Pg3t7e3t7a29rh39ze1djW297b29bb39/e3s/b3uHb2djd4OHb29jM3OPY3NXU3d3c1ePbzt3Z1NvZ293e3OPVzt7a2t7V1tbY3tjd39rZ38DS3eHf19LV29fa3uHf3N3d2N3W2N7g4d3b4d/Z1Nze38Lb4OLh29vY29jT1d7Y3trc4N3c4d3b29vZ3uHZ29Xe3t3b09/h4d3d2t7e29/c2d3b29/b1MnewNXg2NvY29rZ1dLM2eDM2Njd3tvd4d/g49rZ3tvd3d3b29zb29Tf39rc397czN3f293b3dvX29vN1tvb29Lg3Nve2dfU29ng29vi3N7h3t7g3t3b3t7Z1d7Z3Nze2tvh39/c3NzM397a3t/f0tvb3tzd2t7h193d297e2tHi2NvC2d7b3+DczNXX0Nva19rf4dze4NrY3tzW3t7dzdrf2Nrg297Z2NPf3tjd3tXU4NLU3tnY1tvd2drb2N/f3r+74NnW29rd2NzU297e3Nzh3N7e197a2tDYytPh3t7e2t7e3N3e39vj4NHa293a2dzc2Nzc4d/S29vc4N7X3tzT3OPd297S3uGxyN3h3tva0NzX3d7Z29ng3NvZ29vW297b3trc2+Da3tLd3d3Y29vP193c3tnX2t7b3eHb3trhy8fh3Nvb397e2dXZ3Nvg4t/h2NvW3dbY3+Pbz9vh297e29/b3uPd3uHb29re3dbZ3uHc3Nza3NvY3+Di3dja2drf3t7d2N7b29vY2djR0tvS39ve2tbb2NzZ3t7c19vb3N/e097c3tre0NXa2djV29va39ve4d7Z2tvV39vb0tjf3tvb3N7d3tbV29/e3dvf4Nvd2drY29zl3dzb297b3N7b297b2M3d4dfY2Nva3dvb3tPZ2dzc3Nre29zh2tjU2ODh3dPT3dvf39za0tPZ3uDe3t7Y2Nnb2N3e297b29vY3t7e3tvb4sLL3+He3Nnc2tvf3t7Y3t7Y4N7e29nb4dXQ4+Db29ze4d7f4OPa29vd3dXb19jf0szf3d/g3tvb3t7e3tzYzN/e2dnc3t7Yx9/b3t/c39nV1dbd2Nrb29ra2NLM3t7c1tjb29vc3tvc39za3dvbwrXb3dvZ3d7f4+LZ29nV2t7bsMXeysze4tzb3d/d39jY3dre3t7e3N7f1sziyMbh2t3g4Nzh39vd4d7g1dve4OHJwOHg3tjh3t3g2Nza397j2Nnf3ePi3NzHt97b2+PHyeHT2Nfb1dPd3OPe0cbj497d1+Db2NTb3t7a19rb2djL093S3N7j39zb4t7c2Mjh4sLM4Ny7yeDY4+Hd09Xe19Xh49/f4OHh3t7e5dHT1tvh3dXN39/c293c1sng3trc4ePe2NXb4tzW29fS19XS3t3Y2trX3t3g3tvV3tvX3dDL3eLe2NnW0t/c3tze29vS3N7e293a1t7X3tzS2tXb2eHc2tfZ2LLg2dzd3N3e073b19jf0bji3tvj39jQ2tve4d7b2d3h29/e29Xh2tjc197Z08ng49/Y3tvd1uHh2tzZ3t7f1dvj1cze297dxrfj3d3V09rb3t/e297e2+Hf4+Hd2Nnc3t3f297Y3t7V1tXd3dvb2dfW0tje4eDb2tzb2tji3tvXuNbe297c2+HX0tjc3d3b1dzc297d2OHO2qnY29vWzNPc1+De297e19nb397Z4s3Z49jX297U3d7b29rd3tXd3drd397f4d7e3t/e2NrY2t3ew9Lb3tje3Nze2Nze29Xf3tfY397e3t3X19zb3Nra297b3t/Y49/Y19/Y1N7a3tnh4OLY3ODa3t7e4dPa3tjX3uHf3d3j3trfwdvd3N/Sw+Hd3t7i297Zvd7f4Nzh3Nzf4N3b3t7Z3N7Z3dnc1dvb2+De39PY2tza29fY4t7Y4t7G1d7g3Nvd2djf4eDiz9ve2s7b397c1tvW2Nzb1dTe39zb39rZ4dfN1+Hf29/f3dze0rvP4Njb39PX3t7Z1d7h4OHb3Nvb3tzf3OHd2+Le4ePY1+De29fO4+Di3tzh2d7d29/d3Nnh3t3d2tvc2tva3N3V3d7Y2uDNydvd19nc29vb2t7f3uHe1dre39zg3drfvN3a29/d1drh2tfe29jb3t/e3t7U29ve4d7c4N7g493R0trb3tzezMnh29zc3N3j4dng3t7b2dze3t/e3d7jyL/h49jZ3N/e3d7c3dze4drb3t7a39/e39zc3t3b2tvU09jb4N/Y2crY29jV397T19vX3N7d3tnhxtTe2tjZ2t3e1tjU29vZ3N3V3trc2tXe3t7i0s7f19/a39jd29re39jY1dvb4N7d2N7a3OHd3uHe2+Dl4NrY49/Y2tzczN7V09vc2tvh2+He29zS2tjg3OHh29vg2eHd297Z3tjd2Nze3t7b5uHb19vb39vZ47XW4d/e3dvd1d3c3tzTvd7c29jE2drdtb7j3dbY29/b2NTc2+Lb2MbY3Nvd3dna3d3Z3dvb49rU2d/e3tfZ2d/ez97c3ePe2Njf2uHU2ODc2NbY39jX3eDf293d2Lrf3t7e3tvg3dzf3dvX2dXd397b297c4N7i4dze3+Hd1dXb1dvg4d7W3djb4N/e497f29ng3NXS4NvY2+Db29zZ3t7azdvi3N3ext7a3tzZ4eHZ3uDj393c29bY3tvb29PX3tvU3t3d2t7d2t7W3rfN4dXY4Nze3tzd3uPb297b29ve2Nza29jd3N7c4NnY2OHh3tzd4d/Y2uLf3d7b3tvdvcbf39/e3d/c2+DV1dzN29vW1OHZ1trZ2tvX3dve4eHc3tvY3N7d29jj3dje3N3c3tvX3uHe3tXV4d3e3Nnew9ja2+Pg3t/W2ePT1uHb29ve3tne3Nzb3djZ4NzZ3uLe2uS70uPh3dff29fe397e4+HZ3uLk4czK3d3e39fW38LH1drM3tzc5N/g2NXP38je2Njb0tfW3NnZ0tvY1dvh4tva4dvb3t7b2Njd4uHV3eTe39fU293e2tva3ODj39HN19Lc4N7d3eHe2dva4dza2dbV3dTW4dvc3d7e297d3t3b2uHc39ng3Nra0tve4eDc4eDe39zZ19Pe397f29vbz93h0s/Y3N3b3Nrc48zb49Tg19q7093c293P1t7Y19jV2+He29jh19Xe3uHb19jS5t/d4NvZ0Nbf3uPI2OHj29LPzN7Z4d7f3dDY2Nzc3Nvd2dPd2NXh4eTFyt7d1N3e2dXW4dva2dzg3tvb4t/e4djL393c193e2eLa0N/f3dvhxtfb5Nbb3N3a2Nvb2Ni90trV0dLX3tnb3Nna3tzarLrd4NbZ1tnZ2eHc29vc29TZ2Njh3d3b397e28/f4dvc1NXb4N/f2t7kqsTj3Nze2t3a4Nva3d7f48LJ49vb293a2dfe3tre3NjZ2N7j4d/g4cjf19vT3OHa29rW1t7e2d3a29ve2NvU3tnb4bvT2KbE497h2tPd2Nne3tvb2+DP193T2djc29zW3Nrd3tfc293Y3uHg4t7c29TVzNje3eHd2Njc393b3uLPz9/b29jS29re29vh4d3Z29rb29nY2OHb297b3dve2s7J3ODc2N3b2Nzj29bZzuHc39nb2NvXydzJ1N7T2d3e3N7Yz9zbAAAAAQAAQBcAAAAIAAAAAAAAAAAAAACAAAAAgAAIAN7b2OHb297b29nb2NXY39zh1tzf2trf4N/f3tvewtLg3Nlxw+XZ4Nrb3tPb29m8293g4d/Z3tze397d3d7b293b2eHb2dve3dnX3dvb1Njb3uHX2Nrd29vc3tO71N7b2uDe39/e2tvP2OHe3Nvd297hp9rb29rb2d/e2NXettnf29ve3Nvg2MzT2dnc397a19zd3+Hb293g297f29Pf3NrjyszY29vi297e19zd097e4dfEytbc28vT297Z2t3by9ve3t7e3+He09jY293d19re2t7Y29zb0uHj4+Te3uDg3tnZ3tLa2Nzh39ze3N7Y4Mbc3Nje19vf397c1tXG3ODe39/Z1t7cz8Db2NXZ4eHb29jb2t3d3d3c39ra3d7g4MjJ2dfY4+Df29rX29nb3t3j0sOw3t3hxtDX3uLY29va3t3c1t7h3N7a3d7g29rW2eLS3N7b3d7b3d7h3t/a2+De3tuxtOPZ2d/h3ODe2d7c1dnW2dve3d7f397b2d7e3d/d3t/e4Nve3trc29ve3uDb4N/c0tnX3d7e3t7i4Njew9na3+Sv0OHe29vc3tvg3tvc2+DZ4drh49je5Nfe2+Lg3d7X3uTe3N7e4djT3N7b2N7Y397e1Nbe29ve29vb4N7f4a/N497Y2uDV1+He3dHb4N3b4d7Y3ePb29zf4djT2t3a29ng2dnY0d/b2dzd19ze39zE1d7j19ze2N/k3dfc3Nzf4KvS39/g39jbzNfc393e3tbN3N7YyOHd39jZ39rb3t7a2eDf3+Hf3tjc4tvY4Nje4N3M2uHe0ODa39/f3d3d3dfP4dnb2tnS3d/b3dLb397Y2+Hdutbf3trd2NXU3dve3dfb3NHS3tva3d7g39/b1+Pe0tDa3t7V1djgz9jb4tzj5uDb2d7e1NvO2N3g39XV1c/i29jS2N7Z19zd0d3d29vW4d3Z3Njd3t7e4N/g3dXb0t7e3dve3eDb3uHe2tXh29bf3dnP4Nzb29zi39fY29XY5d7G2dba29zY29Td4eHc29ndu9fgy9jc3drd1N7Y4eDb2uHf2eFtv+Te2tjd4sjX3tve2trZ2N7e3t3X2Mze39ve3c/S4drb2dvg4dja293a4d3h3tzb3d7f3tzX09XW4N3e29rd4d7e3tjY0L/a3d3N19nS3dvc2t/e1NDdz8PV1NLV2dne3dzb3NjZ3Nvb3N7h1tza2s/R1d3f3tvT1Njg4NLW2cHb493a1N/bz9zY3drQ2eDi3OHg2tDc29/b397Z0tfP393b3dze0t7g29zb3Nvh3N/d1tjg5N/b09XWv+Ha1N3X3t/Z19bLutrhvczV29va3uG9zOHX2NvZs8Xe3tvU4dvb293f2Nvc2ePf2ODh2d3d3d7g1drd3dPZ3drgy9fb3d3d1Nfe2s/d4cnb4d3X0tve2d3Z29vf3uLY29rc3Njg3trb397e29vY2tvd4Nza1dvc3Nvh3NzO3djV39fY3t7b1tzb2drH2duy2Njc39jc37/L3tvU19vbsN3f1tLe29jc3t3e39vb29vc4N7d4ODk4d7Y397ewtvZ3t7h4uHf3NjV4N7d3N3f3tfc4dLJ1d/K2OHX297e3oPY3tnb0dXe1tvh3tvYyd7d3d7d1dvb3tzf3tfR1d7e1dvY2eDg39nY393b3dzc1+Db3tvf2tHd3ePi3tXd3uHS3eDY3d/Y2d7e3d3W193a29vd2eDM0t3f287g3dzT29zb3d3c3t/a2Nnb2d7h4+DP49W/2eLg29rU2dzb3tbe1d3Z09vS1d7d29jR3d/e2Nzf297c29fY3trezNTb3dvV39fd4NTe4djY3N7br8jk3tzY3t7az9nY4N7a2dva3+DX29vb2Nve4OHe4tja3eHY3N7Y29rY293Z1+HX3tzh39je4d/b3d7b3N3b3eHb29Pg39Lc2t/U3tbc39ja2N3h29va1t7h2NTe0dLf3eLc297S2ODh4MzM3tjY4+Dh29jY2uPW2dza19vd3NjWyNjU1d7d3tPb297g2tze3d7b39vd2dvi3trV3t7d293h09bh2t7c29zc2Nrh4d3e4c/Q29bh4ODc3tve3t7g3uHg39Tb297h3N7b3eHf3Njg4N7Y3N7Z3tzhrdff29rS3uDO2tnb3eHe197c3t3e4eHj3tfb3tbZ0tvb4N7e4dnQ3dLB5OXd3tvQ2uDb4dne3N7e3d7Y3OHg2tjf3eHg4cuq4eHe3uLb3tre3N/g29rd1cTb197h1tve29jc3t7a2tne09ng3uHZ4tvg39Xb4tjb2+Dc3tTP4eHc2NjN3d/Z3dbJ0+Pe3cba2eHb2tjb4N7f3t3Y49jZ3drZ39vYyePg397TwtnV393a4N/U0t7Y3dXY2Nvc2t3e297g4d3a29vi3+Hc4Nvc3tze297e1djg2c3e5ODP2tvT3tfd3uHN2tvb2+Hg297f4d7X29DR3tvb4d3a297e0dLg4Nje19vc3dze497a3+Tj39zb3t/f3uDh3t/Y09zY2NvX2d7Y2d7c3tLE4N3e3tzc4NvY29Lc0tvY2ODJ2N7c3dm/2t7g4NXc3uHh2NLk2dza3NPU19va1tve3uHf3tjd2+Dd0b/b3dze39bR3tHj3tvk1Mbg297g093X2NvW2uDf2NSy4drd3t7d2c/V3d3e2s/d3tjd4tnb4OG+1dTh4Nje39vX3dva3t/Y397g29va3tvY2N7W29jW4Nrb3N3e2M/f29ze09/h3N/b3N/c29zh3d7a29ze29vh2N7e3eDh3ti6zdvb3d7e1tjd2d7e3t3Y2dvg3N7R1dvY293j18/d1dnX3NbZ3trgwsXP297dz9je1tTd29Le4N7MyeDb4N/Z2tfd2drb3tvY19re3d/a3djU29rS2trb2NXY2d/Z3t7d3eHc397f4t7e29ja3OHV1d7b2+Dh3t7W297h3N7h2+Hd2OHb3d3M4d/h3N3c4cnZ493d297a3d7b4d3P3t3c4dvd28ze3t7Z1trX2+Hh3NrY09/X2tjf3dXV1dve3dze19bd2Njc29vd39vY29zf3dvd2tvY29XX3dvg3NHV29/d3tne297e3OHd3tvg3NjZ3tvf09Pl4N3OvN7Z3t3d2uDU4eDb3dXB2OHb4eDd4uHf3eLg3tLV3dre4drb2t7h3ODc2Njb39vd1t7h3d3f2sHe4c7K4Nzd4dnT39jd3t/g0dfd29ja4dnZ2+HZ29vY39jX0tne2t3e3t7azNzb2czb397h4d7Y3d/e4N3Z2tjb3t7b2N/i4di04tve3t7U2+Hg39ve3sfZ2uLI3N7e3tve4ePij2nj0N/c4N3e39/e3+Pe297c29vV39/c3ODc3OHc18ra3d7b39/e3tXP1N/a2d/e3tjV3tvc4N/h3N7e09fU3ODb2tnd3eDa3+He193e3uHe3dze29vR4tzc3tjZ3uLd2+Dc29/azdjh28Xb3uHg29zd4t7d4sXJ0tXZ2t3S29h4ct7X3tzg4dnc4eDc3dzN2Nzc38/f0Lzb3tjg3dzS29vb4d7U197e0tXd3uDb3uPP29zg4N7Y3d3e2NXd2tjizM3Z3tve4Nzc1Nzf5Nne4NXY4N3ctWHS3tjb3djb4NjX297Y39fA1ePc393Y3t7f4dza19vd5rLL297X297YzNbb2uHZ297k19Xe3tvb2N7T0tvc3tzT1dXe3N3g2c/P4dXb3NPf2uHY3d7a2Nvb3r/X4tzf3tvb1d7b09bb3tnb16jX2Nzf3uHZ1t/Cx97a2N3e3OPGlNDe3tvd297g3tvi4Nre397d3eDc2dvd4uDc3t7c1djc3Nfe4t3e3d/f2OHe29jb2N/h3tzY29LX3OHG2N7e3tfe4Nzc29XQ09TJ3NbX29nY2tzb2tbd3tvc3+HY1d7Y08fW19jZ2Nnf39zb1d3P3dvh3N7j28bO3t3f3NLW48qX2NjX3tvb39/d3N/f29re3NjS4+Hd3tzY2t7e4N7N1d7b2dbf3tbe29vY3tvb3OTb3t7f3trb3t7g49ff39rb293d09rZ2NPN1c/h09vb3tvb3t7c3tjc19na4dzb3Njb3NvY3dzd3tvc3d7X29DO2dLh3NvV5tTc3d7V2N3Z05jU1dje2OHe29zb3NTa3t3e3tvb29/d297e3tjb29ra3N7h2dve2tPb4uHf1dni2t7d3OPb2+De297a29fd3Nbb4d7X29vgzNHe3Nnc29va29fZ29vY1OPM0N/h29zZ1dbe4d7e4t7b19nb3NLYzM/c297a0rfmttXa3dne3t3b6NPS3+De3ODb3N3c29ve2+Dc3NXjy8vb39jX3tvf29nW2t7j3tnh3t7f39/e2+De2+Dc4Nve3t7d2tbK2Nvf1+De3N3V2NjZ3uHcy9jb3trb2Nvb3t7bzNjd2t3f3t7a2N/c293c29zc0d7f4OLS2ODi3tvc2N7e29nh4dzb39zg1tvb1+Hcz9rd39vb3dzb1d3b0OLS1Nvc2dTa3t3h19He3Nnf1d3e3tvb3tba297d297e4dzF2+DY3dvZ1tbh29Ta1dzP3djf4dfI4d7K4M/V4dPV3d7Q3t7a3uHf3Nzh3Njg2tzc3t7b3tvd3d3Y1dre3N/g29vd1crR29LO4d3e2t3X39zR2OHe2dLh2NXc39jJ4d3e3d/i3d7c29ra193Y0NnR3d/Y3tze39/Z3uHT3t3b29fY3Nzd2NjV19rY2dLT3uDd3dja4OHb39DS3uHh1tvX3N7b3djfycPb2tvb3tzU29jW3tjV2dvb29vg0tbb19jh2ODV1tng1djg5+PR3+Dc2Nvh2+DWytvhsdDh3tnd3t7c293Z3eHb29ra09LV2drY29vg2dnh3dvY2tvV297J2N7b29vS3trb2Nre2Nfg3d7e3b3V1dff4Nze4Nje0d7g3t3T3t7R0d7Y29ve297h2dnb2tTh4d3a297S1N/d19/b29nb3uDf4tLN2NjZ0t/e2+HY3dnYwMvZ29jY3dzi3Nvj29zf397c1d3e29jV3NvY39re39fX2+LW3tHY19jT1tja2N7c19ne293h0dvZ3N7e2NLR3t7Y29ze29bZ3NvY29jb3uLb0uDd2+Df0dHj29vd397d4djW3ePi5Nvd3t3d3eHe2t3b2dnb29vW3N/W3dza3uHT0NrY3d3d2Nff3OLg3tre3tvC1d7e2dnb39rc3N7c29ve4+DZ3Nba3eHS297b3N3S29ve4c+039Xc19va2t7gzN7e39zb297a3NjN28/V2tvb3d3b29/J1eHc3t/e29vY2dves8+lzt3c3d7c3N3T29je49jU297b3dXd4dna2N7WzNrh3N7b2Nze29zf3uDe3tPZ2d7h3tnb2tjd293b3tvh1K3V2Nze4czK3uPd29vh3t7Y3d/e28ut0uHi3t/V4NvW3Nfd3eLg3Nrf2d/c29nZ2OHe4dXT2Nve3d7e3NTg4N6lxKrU2Nvb3t7V3N7f3dnh2tzb29zY1t3Y2t7g3NTY4dne4tvZ29rg4N3V29jW0Njf39jh1dXb4eLa3NbY3tvZ3N/d3djdx8fg4d7i3t/b4c/b3t7b2dXe29Xe29zb2dva2tvkwMXd1uDc3Nvb09nZztnK0s/V29ve2Nja3b/T39zU4d7e2NncztXd3tvd2tzc2tXP1tzW3d7h29ve1M/f09njwLLX2tvb39Xb2NDe3d3g293O0d/NwuHV1Nrb2t/U2uDb3dXQ3uHg4d7c3t/e1tLX3+Hh297awuDb3NjR09jf193PzNvV297Y1tzZ29jM1dPY3dzZ19bb19/h0tjc4d7c39ze293Z2N7Z09vj3Nnb2NjY4Njc3Nvh297Y1dnb4OG+sd7f2Nvf3trg49/c3d3f39/V2NLR3ti029jb3Nvb4dnf3tnd1dHe4d3c4N7Z1d7b4+He3dnb29ve2NnU1t/YzNne2tje1dna2NDe2dbb2N/b3tDc19vb1t7f1tfb4dvY2+bc3OHe3NnX3+He3d3f3t7h39fa3t3b3+Dh39vb3d7m29Ta3t/h4N3g0uHf3NPg39vc1dre2NrX3tvg4eHe1N7j3uDb0t7b29fQ3N/f2tjd48jV3tzS1N7Y3tzb2d3e3djb297X3tzb29rc3t7b2t/cyt3c2tje4d7Y3tfb3t/YgsXe2t7c3uHh193c3t3Y39zf3+Hh4N7e3t7e3drT2Obdxtjf3eLd3N7d3t7dzNzW3uDe29bc3Nvh4N7g4ODb2N3R1Nzg3t7X2MzU2N7a3t7bzNHd3tHZ397e3trI4N7g4dvZ4uPf3N3e2d3Y3d7c39rf2d3e3OHb4ODe2dvi59Fuytva3tja3t7g3d3d4NrT3d7d2N/g3tve3Nfb47zO4Nza4eDVz9ja2Nve2Nna4c664dze2MXa4N/h3d/h4eLg29/W2tvY3sTK2NjV2dzg48ne2N/R3uLf2dvc472z3sy+3uHY1t7d3eHd2Nna3tze29zd297e3N7X3ePb19ve3t/b2tfZ29vf2+Hh3tvY19Tb4dvW1dve4eHe2d3f4d7b4d/b29Ta2Nne3t7a3d3e39Pd3dvb2OPe4N7e4eHe4anU3tfd2dzc3NjY4+LFzuPW29/b4Nvcv9re293gzMHP2L/Y2uHYzNzZ29ve3t3c09zY3eDe4Nvb293e2+Le3eHg3tjf1bvfzNvY4eTf39XV19XaydzP0tXa1dXb3d3d3OHi4OHW19rd3t/f3eHk4N7e2d/g1trd4tXZ3Nne2ODg0dfe0tvc3tfg29jh49/b3tXa4dze2tnb2dTX2NPf3uLe4dve283T3t3e3t3a3djb4drV2Nzb39va3dve2OHf4OHd2dzh59G/297f3d3h3N3e29jZ4N7V09bd2Nvf3t7e3t3g29XY3N7b19/i3t/g3Nvj4eLSz9va4tfY4dzW2Nze4d7a29za2+Dj39be3tvb09fj3NbJ29Pc2NTb29vbyd3b3t7ez87d2dvb2tPc2uDe1Mmv5N7f05/b29vb3tzU0tvc3t/d2tXe3t7e3Nza3Nfa2tzd3djZ4N7d29vc39vg393d4Nvc3Nzd3N/c3uLd3OHc2NjX3N/h4ODh3d3Y29/e0Nvc3+Db1d/O1trb2OHc3t7b19PW19zd293b2Nva29vh4Nve3t3Y2Nvc39zb19/W09fd29jatdvb3uLW2MbI3t7d3d3d4NjP29jb2+Hc2tzT2tzd4dvh3d3e3Nrb297a28/S1t3d197c1d/Z2d/f1NLc3d3c3t7b1Nbe29nj3tTW2Nna3N/f28nb2tzY4N3d4NfX1Nve2N7Z2trV4NvY2N7e39zc2djd2+De1d7Z2trg3Nne3ODk19zf39vd18zh29bY29Xb3tvd2Nbd3tve3cvc3d/d3tjU3tvb3Nbg4Nvd397e39zb3uHe5Nnhv9vH0Njh393Y29vY29nW4+Hb0tvc1t3b4eDc2N7d3uHi4d/g1dji4dvf3tzc3tvd3tfX3dfe3ODV0Nvb3dTe3t7d2trY297c3tLD1tbc3tvY2N3S3d3a1tnd2Nza2NrX29bc3NvY2+HezL/l4Nve3dvb3ODi3t7g2t7c38rJ4Nm1197Vzd7X49DP5N7Y3d/l3eHa2N7Z1+Dh2d/e2Nvh5eDe3d/b2K7M39zb4N7X3Nvc3tvb2NLj2NXZ3N3f2N7Z39rb2drb2Nzb29re3t3b38vX3t3e19bd2dva3uLe1dvf4N7a29ze3t/V3M/e3dbe3tzf293d4d7d3drhy8bZ1d/g29vi2tjdztPc2t3f2uPj3d7f2tvX4N/d1dff397e2NPY29jYv77h3N7Xt9Xe2t3b3t3b2dvb2tvZ3ODa29fe29jY29jb3Nrf49nd3t7e3t7f3tvW19be3OHd297e4J/V3ODY4NvZ3eDYwNfh29ze4Nzh4eHg4tnb39jh49ze2tvW3sjS3tjSy93Z3dvZ297f3trc19vY3taV49be4dvYTrbj29jh2dXh4djM1d7g4MzZ3Nre29jd19Xc393c3dzd2d3dzN3e29jc1cza1Nrd0Njc2d3Z2Nve2c3e3uHeqtXY3Nvd4ODd3dve1drg297e2N7g3tzZ2t/c2tfY5uHY19jc2Nvb09Tb2eDb1t3X29vV2d/a1c/b2t7Wyt7c2+Cl1d3e2NXh3d7h4djY3NDLpeDh3eHb3tvd2dje4Nve3d7f397b29ng3dvZ09XT3OHBx9zc1N3f29/XyeHe4t7i4Nja297X2tvY4+Dc3djb3dPP3d/f3t3Y29zc1dfg2Nzc493c2tjf2NXS4eHY3dvd1dbW29zZ3Nre29Le1dve3OPe3uHSzeLe3eLc49PJqLLY4NrZ29/d29vd4Nze1N7d3t/c29vX2Nbd297a2d7e29nW3OHb3tza2dXV1Nvh3dva29rb2NjZ2d7f3+Pa19Xb1tve3d/Y3tvd2+Hd2d7d3tvL2N3Y0d7h3tzZ18jg3tnf293W3d7c3OHg3eDe3dzT2Nzb2tzh293b297g4dzOzOHZ29rWz9vX09jY1d7SzMTe2NnX09LS29zc19vbybvX0t/h397X2Nvf3dnb19nc3t7f3tzf3tXY2dXZ4NvY1tve4NPb2dTa39rd3t/d3tjc06zS3d3b4N7h3dXe497Vydvj3N3ez9jgydvh4Nvd2dvfydbh1tfV297e3tbb3dvb3t3d2djS3Nra49vZ3M/GqNHb2tXhs6/b3trV3+G7teHi3d3f2NvR29rR1ePc2N/g393c4Njc293a0eLc29ve3t7b19TV2d7b3Nze4ODO0uPh3dTY4d7d29vf3d/SzN3Y397b2+HN09C65M/W2cze4ePi3dzf3s7Y3tvS0Mbg29zf19zb3dze29jc29Xe4d7Zu+De4d7g2dvd3+Pc3MHF4bjV3uDd06jc1tfV3djf4ODe3ePa3NfX3tnc3Njb2MrU49zg3NjX4N7f3t3e29Lb293e1dXb2d/e19rb4bqT4tC3393e4dja1NTY09zb1uDg4OPg2dje39zh18/X4NXX3Nbe2N7h397MweHY19zh3tve3d7a1t7b0dzh3tva1Nrazdrf3tvS3ePe1drL1eDd2eDW3d7e3tvb4N7a29Xg0t3i39nY4Nzc397i3d7Y29/a4NvW3Nbe293h1dvS1Mve0s3c293c3tje1NXg4eDZ3t7VyeHYz9vZ29vS1tzZ1tPk2dvg2NjY2NXY29za0t7R0dra3djO3Njdz9Lb3trT3t7Z3dvW2Njb3tfb3Nrb3t/g4dXb4d3k49vY3t7d2t/bzdbe297Z29re39Hb29vd3uDe2tvi3trf3NrU3tbX39jb39nTyN/h4ODi29zg2Nzd3cKS4Nrh3tvb4djZ29ne3t/j2t3c2dvb3Nbbzt3R19vY297b293N0trV0tve2t3Y4dXV297V3Nvc1dvh4d3i1tvQt97h29vj2tva4t7g2dvY3+Hb3N7X29nWvMnc3t/a1+HhzuHY2tng2dbd49vP3NbY2NXE4N/e39jf3uDb4ODY29Lexp3e3tu+29zc4d7e3dne2drY3uHVxNzP2eDP1dve1NXX09jX1+He2NrVxdzf1dTf3tvg3tzg4OPe4Nna2dbQ3d7LzNrf29zg19XX193i4d/c2t7e3d7P1Nvb2uLg2N/hx8Thytfc3t/M3N7i3N3h3d7e3Nnh2t3h397h4Nzc3dnSqd/h363d3Mvd3dzY2tPc2eHe1tfUzNrb4djb2tjV19rZ3t7e28zh0tPT1tjZ3tnd39jV3uDg1s3h3t7e3tjc28zO4+Pe29jV0+Hb3t7Z2tvc3tnY3tvR2+Db3tzi09Xb2+O3zt7P2oO/5dvc3dzb29rb2NLX3t3l3tjR2N3gxsjk2d3Y3dTV1d/e3Njj1dfU1OHYz9XXztTg4N3f4t7Y3dzc293Y1d3f1eDc4eDd3Ni30tPa3N7e29jg3+Hb19je3eDP3ODU2cne3d3a3dnR29Xi29vkcqrc5uHb39LT3Nvb3uLY39jc497b2Nve3tnb29XZ0NHb5KKv2Nbg2My7wdzf4uPV0tzd29ze29vd2NHU4dvR1d7Q2rvK2t3c2tja39vN3tzb3tjb2tzb397e2cbd4drc2tPktL/f3tvb29LL1NXZ2dbh4uDJ1uHh297e0sva0tiy3NrToNvg3uDf1d/i49vc4dfe4tvc1d/e29Xf1N7h4d3eu87j2NLWxrnB2+Hf2+Dg2d7b2Nnc29jb3dzd2+S8zd3bmb3i29za3t7f1sPeztXb3tzd2+Hb3t3b4t/g3t7Lu9nAu9rZ3tvZ29PU29vf0tnf4trZ4t7g4d3Wwt7b2+Hf4dWf2+DZ29vV4Nve39vfzdPf3d7Q3c/X1t7a2N7b2tzi39rX0NnHutvh3Nvc3uLh3N7Y3dbd397a3tfW3d3f28nY3d7e3t3d39ve3Nvb09rZ4OHe293h2+HU2ODf39vW1+HZ0tvf2d3h1d3f3+SzveXg3NXe3tvc3dve4N7g2t7f3OPL1drh3tvY29zd2tfa3N7c3tvf09PS4dzV2+XY2dnc3eDR2tzY39/c4Njb1dvZ2Nng4dzeptDe28/e4OPc2Nvg3tXV19/e29vY3dna2+Dh4tvb3t7V3Nrc4dze393c2Nvb3t7f3d3M1ePa4dnb4uHb2NfY3trb1tTa3d7b4N7c3tfV2N3a2+Hb3t3d29vf4d3e2Nvc2M/e2Njf297b2N7Y3+Hd29/a4eTf3t/Y0rvU1uDa39W74Nzd2Nvd29/f4dLb297c29nb187S3t3d3d7b1tre293g2uDd2Nve29zd39fa0tPT4dXW4t7b29vc3eHbzdvf29DY3N3b29bY2dnY1+PY2eDb2eDc29XW29fV4dvh2tvT3uHI0t3V4dvb4OHZ39va3dnZs93d29XX1ODV3dfO4ubf3d3h2+Hkz9Ld1uHb3tnV397Uz9Xf3tva393b4d/X2Njd3dzY3t3O3uHf39zNtNXL39/b297OzNvf49nA4d3b0+Hc1dne3d/e2Njh4d7a2NnX2N3R1d3a18fg3N/i29ne3t3b3trf3t3c49va3Mnb3tmZ3t7d2d7H2NjX2Nnc3t3e2uHRqtCyzNHh297Z0NjY29vc4N7e2d7d3tzb47TI2Nzk49Le19fe2Nve2t/d29Le29vY3dvb3OPSzuHY29je4tTe39jgzsbb3Nzc3d/Y1tvY39ni497e0d7h2+He4czP3uDe3tvd2d3b3tjewtXf39/b3t7d2NvVzNfd4t3e4N3e4diez7TI4N7e29zTzdXb293h3tfY3Nvb4ODbzdrd39zg2NXZ4d7e393c2tLY3djg3tfd4d3b29HW2+Db3eHg3dHa2+HVy93i3NvS4dvb3N7e3dXb39jM4N3exeDd29re4N3b3N3azePg1d3U2Nvc2d7Y29rdwMu42NrY397d3NGv4eLZ1ODg38nV29zV2dvb3drgz8/e183c3+Hh3tva2d/b3uLe3Nve2uHO08fY497h29ve29ja29rY4tvc3t7e3uLgz9nf2MTh29XZ397b397c0tzM0t7f4Naq3d7h4tze29/d2t7Z3d7e2ODh2NvY3t/b4+DY3tnY29jf3dje3Mza3dnh3ODa19rb297b2Nrb3eHS3d7Yy9fe397V1dvb2t7ez9XX0Nzb29/a297Z4ODf29re39vh29vg0tvh3Nzd1eHY2uDVoNvb2NTf4d7e3tvd0cLY2t/k297f2+Di2tzZ1dvd3NDc4d7e39vW3tvJ5d3e3Nfg3t7h2Nnf4Nrd3dvb29nb3Nre18Hh3Nre3uDGwdTd3d7h2trS387L4Nzf5q6o4tbY4t7d29Xj3tbe3tne3tze3tvd4d3a3NjT4tjN3tXa197P3drd4cbF4Nnc1dvRz9Pe5raw3N7b1uDa397X3t3b0NLF4Nzd4tfW4HnD4N7Q19je4eHa0Nzf2dfW3t/c29ff1trU1dza3tvb3tbX39zb3dXg0tPg0t/d4OLeyNLbz+PZ2d7d4d3c3NLb3t7c2+La3dvb2OPe1dvb4cLAxN7e3t7f3Nvbw7Pj3eLcxtrc3N7eu6Pj39vRud7h3d3e3+PbwbLf2+De4N3hn5bjucXS2d7g4NjY293f19rP2tjd3uHh39zh4dvb2d3b2t3d3tvI4djF2Nzd397d4N3h3+He4NvT2+Lh397e4tzb4eHVzN7i3tvh2tze4djd0tvg3trb3dzXzOHc2dLc29q81ODb2Nrh5t7C18bU29rV1drV3N7b3dve3N7g4dXJ0dWb59XX3trb0M7V29jZ3tvf4OHh3+Dg3dzj397e4tvV2dvb1uDh3Mnb3tTb3tvd2+Li3+Db38/b397e293d293e39jS3ODg3uHZ2uHc09jf4djc4N7Yz9XR39re3d7Y3d7W19/d2Nve3pXc4d3V0tvZ4NPY3tvT3+DQ3Mjg2szZ2+DKr9/e2NbZ29je0q7U5N7d1djb3t7b09Xf2N1/0tzc3d7F4d7c4NXez9Xd2tzY3uHR397f2N3b29zd3dHb3t7a2dvd3eHe19jevNHSxNvP097d3tLX3+Db197b29jc3dzV397X2N7f3t3g293e397Y29/b3t7a4si52dvZ4dva2tnb497g4t7O39/f0dnJ3N7O2Nzg3d/F1NzU3Z/N3t7Y2Nfc4OHb3NzV2t3h39zb3tze3dve1tve2t/c1dLe2d/i4N3f3t7Z0+PR1trR3tLe3NnV2Njb297Q1t7i2NTI3tvY4N7Z29nW2N3Z3tjb4dza397ay93d27vX397e3t7d297e39Ws4tng29fV39La4dHY3+PbxNHZ2NrW5tna1M/c3tnUyNvhz9vh2Nnc4Nva28nb4ObOydzb18zTyt7b39vc3uDe3uDf2uPYwtPZ39ve3dfU3trY39jX1dvb3dvb39ve1Nre3t7d3N7V4d3e4N7d3NjG3tvlxsDY29/R2+DUz9vi2Mja197b2djc2djS2N7c3ti3ydzf3tvh2NvSxeDYttvK3N7b3uHT093f3N7X0trX2N7G2dvb29na3d3c29/e29Xe3N7Y2tfS0tTg3d/f29zizNjc5dvT29zh39vW4dvb4t7b3tzd3d3b29re39/e19nc2tHj0tPe1dja3dW729za4N3Z3t/b2Nvf3c3T09vc2tra4eDa2Nfc293fztXd4dzc293X4eLez9zh3+Hh2NnZ4NXY3OHh3dzb2+Hc397d19ve2+Hc1t7h5OHb3tzb4uPY3ODg3t3U2Nne4NTb3uDe3uDX2+DZ2dfV1NXe3tze3tvb19Xc39jY2tre3dnZ1M3g3tuj3Nfb3t/e3NXF2tjc39/f3dvS1tjc5NzX39nP29re29jf3tvf3t7Y2Nzb297e19nV0t3e39zY2N7g393d1eHV1d/f3NvY39/b3+PY0eDb29vc3tnf2OHh3t3h3dje3d7e3czd29fY3Nvj4eDd2ePhzM7f297f3t7f2tjc3tbV3Mnc3tze4Nva2OHY3OPi0c7j2uDS1tvgztLe0dLh39nW297Z1N7b297c39ja2t3a2NvZ29nW1d3Z3NvV3dze29va2trg1c/b2Nzc4ci+49jbz97i3d7Z1N7h3t/cz+PK1d3h39jYtM/P0+He3tLhwrbi09/h3tjb4N/V1N7b08/e2tvh3tve3tzc4N7h4dnN0d/f3sHX3dzMz+Pb4tzZytze2Njg3tvb4dnf3d/e3tvY4eDe2dXM2N/g3Nja197c4NG3uebNz9/Z4N7S3Nng3t7e2+Hb293UqMne4Nve1NXZ2t7e4d2Yz93S0tve1d7V2OPd297e19Pf4dLT3Nve3tzb3tvJ29/VzN7Z3N7e1dfb3Nve4NDW3NvX3t3e2Nrb3tvd3t7V28bT497e4Nvc3N3Y293d3tTQ29bb3tTR3d3hx7/K2NDMv9/d3dTd3tjd3+Da29Xh3+TI1uHh3d7U29zb397g5uHe3tzb4NzY29/e1drb2d7dydje2+Df3N7i4t7e3tLR3c/W4eHb2tXb2N7h297e2tvY19PV297b1d7b3Nre3Nvh0dPi2tzg3N/d3NXe4OLe39vc29jc29vd4dbP1tjg29PN4djd3NXY1t7V4d/Y2NnY2ePf4tvd3uDX3N7e3+LM2t3h4Nvm2LTg2t3V0uHP1tvb3t7Z4ODb4d7c39vh4tXf4NvZ293d2ODe3N/e2Njj4tvc3tje29rb2drc3tjh29vh4uDd29ff29He19zW29fg2NXd397b4eDh0NLe0sfi3eDe3dje29rb3dnb4eLe0M/b3N7h3tLi2NjU4d/b29Pf3uHg3N/i39ve3t/b4d7Z29nb3uXh4eLS2ODi29ve5MzP297f3tDL0uDc1N7Y2NTd4t7h3NLe2N/W2tXR2sTV2uPf4uDSzt/Z39vb2tzT1eDa1drb3r3G297b2tTDqOPd2uDb3Njc3dzU2N3V2NTYzNrc29rd3N7Z3tvc3OHh0t/i39rg3N3e3tnd29zd297c3Nve3NHP5dPd3d3Z2N/ZY7i9wt3b07Wq5tzZ2djb1d7h2t3g1dve3drhyp/i1d7i4N7f3t7g3Nve2N7b39nP3eDb2uDexsrU29vc0b3K39va1dDY2tLi39bd4NfP0t3V29XP3d7g3ODb2N7c39/U3sbM1dnb2N7d3d7g3tXW3t3d4N/b2tLb493a3tzd3trM2KvA3dDa3tnb4N7X2szQ3tvY29jb1tvY1tvd093Y3t7b1NPa3d/d3tzY3uHe29vc3d/V1eDn29jb3tvh4tze4djPzNXi1cHe1drd3dvb39/h3djb1tve29vbyNje29rlrcne2Nzh2d7h4N7h3eDd3tzZ4N/d3eDa2M/Y4N/d3t7S4d3Z39Ha4N7a293T2dLg293i3t3V4NTa29zZ2t/c2trZpdLi4tvd19Xc3tnS29vb3tnT5Nvb3NXR1tje29fc3d3S2OHW0trawuHh3tvX4NnP49zS3NjW3ti41eDg2dLh3tvb3Njfz9jh1t3e393h3dvY2t3bvs/Mvsji4dvb39Pd4d3e1dHc3tXd29vf3s/R4dzX3t3b3uDe4ePe1Nfc3d6r1d7c29fV0dvb3Nve3tvY3tzf39vYz9jc1NLhz9vh29zc3N3f3Nm93uHe2d3b2Nva3d/i2NHb1eDW1+LVrN7b4d7c3t3Y397d29nd4N7f3Nvd3dvB28644N3e29bg3t/V3tna2d7S0d3c29rdzNTd2djJ49jZ19bh3tjNz9rh2+DY2tbZzNze29na1Nvb3t7a19ze3tzY2tnb19/e4cze3d7f3dzh3OHV3+LO3dzc34zV19va4Nvh3tfWy9XZ4t7f393f397e3trh3NXZ497V3+He2Mjm3cfc2tzY39vZ4N3e3eLb293h2t7e3t3d3tve3tre2dva3tvd2+LKtsLf1tLe2drj2drd2NnZ29vd1dzb2tjc2Nfb3djZ297b1d7T29Xe2t/e2d3Y3N7e3t7gs9nb29ze3tXb3OHR3eLU0tXe3OHe393b09zi3t3c3t3d2dXYv+Hb3uDc4d7e3t7a3djb4d3e3drT29vg2NLc397b4eDO0NXP3uLe4ObR0dva29/f3tje3t7d2tjf297X3NrY297T2N7e2Nba3eHY3tjU2dna2+HZ39XM4dze39/i3tvV3+DZ1Njb4N7a5MjP1djV3d/e3N3e3dvj3tvd4uDe3dfh2Nfd3Nze1dzd2t7b19bf4bjUz77d3dvZ2N/NzcDY3s/S2Nbh3uDb2ODi3djcz9nb2N7d3Nra1dvS397b1tje2NzZ4N7b3tHa29jZ2Nvh0dff3uLb2M/W2Nvb3Nvc29jb29zY1djd4tbV3d7d29zf19LZ2d/g3tvc3dzf4N7e4drc1t3h29vS4Nzh4ODb3N7ctd7S0Nzd2+PW3Njb1MzU3uDb19je3t7Y397a3d3O0dfY4tfJ4Nfe3tDaz9TMudfc4+Pg2Njez9nbwNjQ5N7U2uHc3t7a3t3b3Nvh3t7dzdDP4drb0Njb3tvT19vg4eHX0t/c0tzg3dXW3d7fzs7e1M7h2t3bz93g39nd19/d4Nzh3Nvi2Nng1tDXxtLc1tna3t3b3N7g297e3dvd29jV2dbT1dvb2+Hd2duz1cXO3uPb3Njb3Nnf3dvV3drd4Njf1tfd1tvf3tjV397h3uHg2t7e3eLb4Nzc3tng3N7OwOba397b1NXf3s/O4N7YwuHf3trY3tbF4eDg3tzd49jY5tzb2+Dh3tvL4djS1dXYx9/g397g3drY0dvc2N7f3N3b3c3J4d3R2t/c3NjZ19Xb29zc29vb1tjY49XJ4NjX3dzZ1d3Z4Nze29ne2t3c3ODc3Nvc3tjb3N7Y4N7V2NnI3t/h3tvgxNni3t3d2uHe3d3h29rc3tTa4N3e2+Db3t6N1t3e29bc28TT4NvY3N7c197c3t7fz93b2Nje3N7e3Njb293UyLzQ1dXb2dnZ197S3ODe3tnY1sna297h4dfW3t/b3tvZ19zb2Nfa297e4N7f29ve2dve3Nje3tjY1NjV2trb4+DJ2tzg4OHb3tPc3tvd3dvd3tnb293e2NLS4ZTV2tLZ3c/IzNXb1dPf39rb3Nnb293Yz9jS3d7Y3dvh0tLb4tW/4NTb3tnY2s/X1NLe1d7h3qHe1tXe4OHf0M/f4eLaz9za3tzX0dfY3eHU2drg3tvd3d3a4OHZ29va4dDP3tzb3eHh3Nvc3d3h4uHVz+He3tzg2tzc39XC3tvi4dve3tvXw83Y4N/c3Nve1eLPztjY2+DQ29LZ2eHf3N7V2+DK1OHd3tDf1tnf3ODW19vaxtLPxN3h2Nvb3uHf29vg3t3W3d/f493S29HW3tjb3N7b3dzV3tzZ0d/g3t7g29vh3tjV1uHe29ve4dvd3tzV2tjh29Xe29ve3Nfaydje2OHb29vEzt/g2Nje1t/V29jg39zd2+Tf293M4dXa2Nzb2M/X3tvZ29ve4ubS2OHe3uGazNvk3t3c19Tc1tzZ2+Df1NXd3uDe39vb3dzb3N7i2Nfc297S1dTM4N7d4eHe3d7b29/g3d7d2ODj3t/e2t3a297P1N/g3N3Y29a929fg1Nre4NnW0NTg3t7c2N/b3tzd3uHa29ve1OXh1dva3uHb3Nze2drg4eHg3tvZ4d7c3s+q3t7b2tjY2dvV4cLb3djY2Nve39vd3dXd2djg4N7a3dve3trV3drc3tvX3tje2dne297d497X29/f19vX1tjb3NXb3t7Z19vc3uXXyeLV2ODe48nK3d7d3t7Q3N7h0t7e397g2t3Z29vg29fc3tvc3d/a1tzd3+He493a2Nfd2Nnc3d/e4d3e2tji4d7g29Hd4d3Y2dzb3OLd2N7Y3t7Z2drc3dfV3dHW4dvY3tze3t3b29vK3dvW2eHg1Nvbwtve3tXc397d4Nva4N7c0szf2tff3d/c297b19bZ2NvU3t/f29vg2+Hd293Q0tvY1t3e1dvZ2NLc2+Le29XZ3tvc293e3trf39nd3N7g393J0Nbd3NnY293g4d7h2N3Z1drW3uDh29rg2d7j39Xg49ze1NfY29Lc3t7Z4t3Y2Nzd3+Pj3tje3tLe1szZ2tLa29rV19vd2dfb3trY1eHd3t7Y1tvb3t3e4d7Y38/V39rd3d3b197c1dvf2Nre0tzg3drY4N3b3tjb2dXb3N/f0o7W2+Dh3Nvb3OLb2N7T3dLV38/Z29zbu+Lc2d3f0dre39vb2Nzc29ze297c2tHI4eDi3uHe2d7b1t7Z0tTe29ji09fd293V29zh2Nbb3tjY2Nja3d/f2d7b3r/L4N7V3tTd4tbC3t7b4ODa3Nvd29TY29rc2tfh29nb1N7Y4eDc397g3tja39Xf4d/k4NzY397c3N7c2tjY2tvZ2t/j3tzb3tvb2+Hb3Nrd2Mnh3dvg4dTb3dvd4Nve3tzd4tvb3d7c3dzb4N7c3d3e4uDT29XZ3NPb4tnb3Nve3dvc3dKv3tLd3N3d3trf3dLb3d7e3d7d3tjY3eDf3dnh4d3e3OHW29vd2trY2eXY197b293e297h3uDe2OHQz9rd2t/i29vg3+DX2N3Z0uHTxtXg497eys3d3tra3dvc29/e3eHX2eHi3Nvg07vh297Y3sXb4OHWztzh2Nje3Nvd3Nzh17DQxtne3t7f2tve19jWy+Hc29rY29PY4dnf4tXL3s3Q4drX193X4NXY2tzV293b1dfa3d/c3dnO29jY3d7b29fY2eHe2N7U2NnS1Nvb0+De3t7e3trb2uHf3N7V2Nbb3tvb1tvf397ez9ve4dvZ2N3g4dvb2Mzc49jc1dTd3dzV49vO3dnU29nb3d7c49XO3tra3tXW1tje2N3f2tnfwNLd4d/X0tXb19re4d/c3d3Y3dbY3uDh3dvh39nU3N7fwtvg4uHb29jb2NPV3tje2tzg3dzh3dvb29ne4dnb1d7e3dvT3+Hh3d3a3t7b39zZ3dvb39vUyd7A1eDY29jb2tnV0szZ4MzY2N3e293h3+Dj2tne293d3dvb3Nvb1N/f2tzf3tzM3d/b3dvd29fb283W29vb0uDc297Z19Tb2eDb2+Lc3uHe3uDe3dve3tnV3tnc3N7a2+Hf39zc3Mzf3tre39/S29ve3N3a3uHX3d3b3t7a0eLY28LZ3tvf4NzM1dfQ29rX2t/h3N7g2tje3Nbe3t3N2t/Y2uDb3tnY09/e2N3e1dTg0tTe2djW293Z2tvY39/ev7vg2dbb2t3Y3NTb3t7c3OHc3t7X3tra0NjK0+He3t7a3t7c3d7f2+Pg0drb3drZ3NzY3Nzh39Lb29zg3tfe3NPc493b3tLe4bHI3eHe29rQ3Nfd3tnb2eDc29nb29bb3tve2tzb4Nre0t3d3djb28/X3dze2dfa3tvd4dve2uHLx+Hc29vf3t7Z1dnc2+Di3+HY29bd1tjf49vP2+Hb3t7b39ve493e4dvb2t7d1tne4dzc3Nrc29jf4OLd2NrZ2t/e3t3Y3tvb29jZ2NHS29Lf297a1tvY3Nne3tzX29vc397T3tze2t7Q1drZ2NXb29rf297h3tna29Xf29vS2N/e29vc3t3e1tXb397d29/g293Z2tjb3OXd3Nvb3tvc3tvb3tvYzd3h19jY29rd29ve09nZ3Nzc2t7b3OHa2NTY4OHd09Pd29/f3NrS09ne4N7e3tjY2dvY3d7b3tvb29je3t7e29viwsvf4d7c2dza29/e3tje3tjg3t7b2dvh1dDj4Nvb3N7h3t/g49rb293d1dvX2N/SzN/d3+De29ve3t7e3NjM397Z2dze3tjH39ve39zf2dXV1t3Y2tvb2trY0sze3tzW2Nvb29ze29zf3Nrd29vCtdvd29nd3t/j4tnb2dXa3tuwxd7KzN7i3Nvd393f2Njd2t7e3t7c3t/WzOLIxuHa3eDg3OHf293h3uDV297g4cnA4eDe2OHe3eDY3Nrf3uPY2d/d4+Lc3Me33tvb48fJ4dPY19vV093c497RxuPj3t3X4NvY1Nve3trX2tvZ2MvT3dLc3uPf3Nvi3tzYyOHiwszg3LvJ4Njj4d3T1d7X1eHj39/g4eHe3t7l0dPW2+Hd1c3f39zb3dzWyeDe2tzh497Y1dvi3Nbb19LX1dLe3dja2tfe3eDe29Xe29fd0Mvd4t7Y2dbS39ze3N7b29Lc3t7b3drW3tfe3NLa1dvZ4dza19nYsuDZ3N3c3d7TvdvX2N/RuOLe2+Pf2NDa297h3tvZ3eHb397b1eHa2NzX3tnTyeDj39je293W4eHa3Nne3t/V2+PVzN7b3t3Gt+Pd3dXT2tve397b3t7b4d/j4d3Y2dze3d/b3tje3tXW1d3d29vZ19bS2N7h4Nva3Nva2OLe29e41t7b3tzb4dfS2Nzd3dvV3Nzb3t3Y4c7aqdjb29bM09zX4N7b3t7X2dvf3tnizdnj2Nfb3tTd3tvb2t3e1d3d2t3f3t/h3t7e397Y2tja3d7D0tve2N7c3N7Y3N7b1d/e19jf3t7e3dfX3Nvc2trb3tve39jj39jX39jU3tre2eHg4tjc4Nre3t7h09re2Nfe4d/d3ePe2t/B293c39LD4d3e3uLb3tm93t/g3OHc3N/g3dve3tnc3tnd2dzV29vb4N7f09ja3Nrb19ji3tji3sbV3uDc293Z2N/h4OLP297aztvf3tzW29bY3NvV1N7f3Nvf2tnh183X4d/b39/d3N7Su8/g2Nvf09fe3tnV3uHg4dvc29ve3N/c4d3b4t7h49jX4N7b187j4OLe3OHZ3t3b393c2eHe3d3a29za29rc3dXd3tja4M3J293X2dzb29va3t/e4d7V2t7f3ODd2t+83drb393V2uHa197b2Nve397e3tTb297h3tzg3uDj3dHS2tve3N7MyeHb3Nzc3ePh2eDe3tvZ3N7e397d3uPIv+Hj2Nnc397d3tzd3N7h2tve3trf397f3Nze3dva29TT2Nvg39jZytjb2NXf3tPX29fc3t3e2eHG1N7a2Nna3d7W2NTb29nc3dXe2tza1d7e3uLSzt/X39rf2N3b2t7f2NjV29vg3t3Y3trc4d3e4d7b4OXg2tjj39ja3NzM3tXT29za2+Hb4d7b3NLa2ODc4eHb2+DZ4d3b3tne2N3Y3N7e3tvm4dvX29vf29njtdbh397d293V3dze3NO93tzb2MTZ2t21vuPd1tjb39vY1Nzb4tvYxtjc293d2drd3dnd29vj2tTZ397e19nZ397P3tzd497Y2N/a4dTY4NzY1tjf2Nfd4N/b3d3Yut/e3t7e2+Dd3N/d29fZ1d3f3tvb3tzg3uLh3N7f4d3V1dvV2+Dh3tbd2Nvg397j3t/b2eDc1dLg29jb4Nvb3Nne3trN2+Lc3d7G3tre3Nnh4dne4OPf3dzb1tje29vb09fe29Te3d3a3t3a3tbet83h1djg3N7e3N3e49vb3tvb297Y3Nrb2N3c3tzg2djY4eHe3N3h39ja4t/d3tve2929xt/f397d39zb4NXV3M3b29bU4dnW2tna29fd297h4dze29jc3t3b2OPd2N7c3dze29fe4d7e1dXh3d7c2d7D2Nrb4+De39bZ49PW4dvb297e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]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/TableTools/media/images/xls.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/TableTools/media/images/xls_hover.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/TableTools/media/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/TableTools/media/js/TableTools.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gU2ltcGxlIFNldCBDbGlwYm9hcmQgU3lzdGVtCi8vIEF1dGhvcjogSm9zZXBoIEh1Y2thYnkKdmFyIFplcm9DbGlwYm9hcmRfVGFibGVUb29scz17dmVyc2lvbjoiMS4wLjQtVGFibGVUb29sczIiLGNsaWVudHM6e30sbW92aWVQYXRoOiIiLG5leHRJZDoxLCQ6ZnVuY3Rpb24oYSl7InN0cmluZyI9PXR5cGVvZiBhJiYoYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChhKSk7YS5hZGRDbGFzc3x8KGEuaGlkZT1mdW5jdGlvbigpe3RoaXMuc3R5bGUuZGlzcGxheT0ibm9uZSJ9LGEuc2hvdz1mdW5jdGlvbigpe3RoaXMuc3R5bGUuZGlzcGxheT0iIn0sYS5hZGRDbGFzcz1mdW5jdGlvbihhKXt0aGlzLnJlbW92ZUNsYXNzKGEpO3RoaXMuY2xhc3NOYW1lKz0iICIrYX0sYS5yZW1vdmVDbGFzcz1mdW5jdGlvbihhKXt0aGlzLmNsYXNzTmFtZT10aGlzLmNsYXNzTmFtZS5yZXBsYWNlKFJlZ0V4cCgiXFxzKiIrYSsiXFxzKiIpLCIgIikucmVwbGFjZSgvXlxzKy8sIiIpLnJlcGxhY2UoL1xzKyQvLCIiKX0sYS5oYXNDbGFzcz1mdW5jdGlvbihhKXtyZXR1cm4hIXRoaXMuY2xhc3NOYW1lLm1hdGNoKFJlZ0V4cCgiXFxzKiIrCmErIlxccyoiKSl9KTtyZXR1cm4gYX0sc2V0TW92aWVQYXRoOmZ1bmN0aW9uKGEpe3RoaXMubW92aWVQYXRoPWF9LGRpc3BhdGNoOmZ1bmN0aW9uKGEsYixjKXsoYT10aGlzLmNsaWVudHNbYV0pJiZhLnJlY2VpdmVFdmVudChiLGMpfSxyZWdpc3RlcjpmdW5jdGlvbihhLGIpe3RoaXMuY2xpZW50c1thXT1ifSxnZXRET01PYmplY3RQb3NpdGlvbjpmdW5jdGlvbihhKXt2YXIgYj17bGVmdDowLHRvcDowLHdpZHRoOmEud2lkdGg/YS53aWR0aDphLm9mZnNldFdpZHRoLGhlaWdodDphLmhlaWdodD9hLmhlaWdodDphLm9mZnNldEhlaWdodH07IiIhPWEuc3R5bGUud2lkdGgmJihiLndpZHRoPWEuc3R5bGUud2lkdGgucmVwbGFjZSgicHgiLCIiKSk7IiIhPWEuc3R5bGUuaGVpZ2h0JiYoYi5oZWlnaHQ9YS5zdHlsZS5oZWlnaHQucmVwbGFjZSgicHgiLCIiKSk7Zm9yKDthOyliLmxlZnQrPWEub2Zmc2V0TGVmdCxiLnRvcCs9YS5vZmZzZXRUb3AsYT1hLm9mZnNldFBhcmVudDtyZXR1cm4gYn0sCkNsaWVudDpmdW5jdGlvbihhKXt0aGlzLmhhbmRsZXJzPXt9O3RoaXMuaWQ9WmVyb0NsaXBib2FyZF9UYWJsZVRvb2xzLm5leHRJZCsrO3RoaXMubW92aWVJZD0iWmVyb0NsaXBib2FyZF9UYWJsZVRvb2xzTW92aWVfIit0aGlzLmlkO1plcm9DbGlwYm9hcmRfVGFibGVUb29scy5yZWdpc3Rlcih0aGlzLmlkLHRoaXMpO2EmJnRoaXMuZ2x1ZShhKX19OwpaZXJvQ2xpcGJvYXJkX1RhYmxlVG9vbHMuQ2xpZW50LnByb3RvdHlwZT17aWQ6MCxyZWFkeTohMSxtb3ZpZTpudWxsLGNsaXBUZXh0OiIiLGZpbGVOYW1lOiIiLGFjdGlvbjoiY29weSIsaGFuZEN1cnNvckVuYWJsZWQ6ITAsY3NzRWZmZWN0czohMCxoYW5kbGVyczpudWxsLHNpemVkOiExLGdsdWU6ZnVuY3Rpb24oYSxiKXt0aGlzLmRvbUVsZW1lbnQ9WmVyb0NsaXBib2FyZF9UYWJsZVRvb2xzLiQoYSk7dmFyIGM9OTk7dGhpcy5kb21FbGVtZW50LnN0eWxlLnpJbmRleCYmKGM9cGFyc2VJbnQodGhpcy5kb21FbGVtZW50LnN0eWxlLnpJbmRleCkrMSk7dmFyIGQ9WmVyb0NsaXBib2FyZF9UYWJsZVRvb2xzLmdldERPTU9iamVjdFBvc2l0aW9uKHRoaXMuZG9tRWxlbWVudCk7dGhpcy5kaXY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dmFyIGU9dGhpcy5kaXYuc3R5bGU7ZS5wb3NpdGlvbj0iYWJzb2x1dGUiO2UubGVmdD0iMHB4IjtlLnRvcD0iMHB4IjtlLndpZHRoPWQud2lkdGgrCiJweCI7ZS5oZWlnaHQ9ZC5oZWlnaHQrInB4IjtlLnpJbmRleD1jOyJ1bmRlZmluZWQiIT10eXBlb2YgYiYmIiIhPWImJih0aGlzLmRpdi50aXRsZT1iKTswIT1kLndpZHRoJiYwIT1kLmhlaWdodCYmKHRoaXMuc2l6ZWQ9ITApO3RoaXMuZG9tRWxlbWVudCYmKHRoaXMuZG9tRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmRpdiksdGhpcy5kaXYuaW5uZXJIVE1MPXRoaXMuZ2V0SFRNTChkLndpZHRoLGQuaGVpZ2h0KSl9LHBvc2l0aW9uRWxlbWVudDpmdW5jdGlvbigpe3ZhciBhPVplcm9DbGlwYm9hcmRfVGFibGVUb29scy5nZXRET01PYmplY3RQb3NpdGlvbih0aGlzLmRvbUVsZW1lbnQpLGI9dGhpcy5kaXYuc3R5bGU7Yi5wb3NpdGlvbj0iYWJzb2x1dGUiO2Iud2lkdGg9YS53aWR0aCsicHgiO2IuaGVpZ2h0PWEuaGVpZ2h0KyJweCI7MCE9YS53aWR0aCYmMCE9YS5oZWlnaHQmJih0aGlzLnNpemVkPSEwLGI9dGhpcy5kaXYuY2hpbGROb2Rlc1swXSxiLndpZHRoPWEud2lkdGgsYi5oZWlnaHQ9CmEuaGVpZ2h0KX0sZ2V0SFRNTDpmdW5jdGlvbihhLGIpe3ZhciBjPSIiLGQ9ImlkPSIrdGhpcy5pZCsiJndpZHRoPSIrYSsiJmhlaWdodD0iK2I7aWYobmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvTVNJRS8pKXZhciBlPWxvY2F0aW9uLmhyZWYubWF0Y2goL15odHRwcy9pKT8iaHR0cHM6Ly8iOiJodHRwOi8vIixjPWMrKCc8b2JqZWN0IGNsYXNzaWQ9ImNsc2lkOkQyN0NEQjZFLUFFNkQtMTFjZi05NkI4LTQ0NDU1MzU0MDAwMCIgY29kZWJhc2U9IicrZSsnZG93bmxvYWQubWFjcm9tZWRpYS5jb20vcHViL3Nob2Nrd2F2ZS9jYWJzL2ZsYXNoL3N3Zmxhc2guY2FiI3ZlcnNpb249MTAsMCwwLDAiIHdpZHRoPSInK2ErJyIgaGVpZ2h0PSInK2IrJyIgaWQ9IicrdGhpcy5tb3ZpZUlkKyciIGFsaWduPSJtaWRkbGUiPjxwYXJhbSBuYW1lPSJhbGxvd1NjcmlwdEFjY2VzcyIgdmFsdWU9ImFsd2F5cyIgLz48cGFyYW0gbmFtZT0iYWxsb3dGdWxsU2NyZWVuIiB2YWx1ZT0iZmFsc2UiIC8+PHBhcmFtIG5hbWU9Im1vdmllIiB2YWx1ZT0iJysKWmVyb0NsaXBib2FyZF9UYWJsZVRvb2xzLm1vdmllUGF0aCsnIiAvPjxwYXJhbSBuYW1lPSJsb29wIiB2YWx1ZT0iZmFsc2UiIC8+PHBhcmFtIG5hbWU9Im1lbnUiIHZhbHVlPSJmYWxzZSIgLz48cGFyYW0gbmFtZT0icXVhbGl0eSIgdmFsdWU9ImJlc3QiIC8+PHBhcmFtIG5hbWU9ImJnY29sb3IiIHZhbHVlPSIjZmZmZmZmIiAvPjxwYXJhbSBuYW1lPSJmbGFzaHZhcnMiIHZhbHVlPSInK2QrJyIvPjxwYXJhbSBuYW1lPSJ3bW9kZSIgdmFsdWU9InRyYW5zcGFyZW50Ii8+PC9vYmplY3Q+Jyk7ZWxzZSBjKz0nPGVtYmVkIGlkPSInK3RoaXMubW92aWVJZCsnIiBzcmM9IicrWmVyb0NsaXBib2FyZF9UYWJsZVRvb2xzLm1vdmllUGF0aCsnIiBsb29wPSJmYWxzZSIgbWVudT0iZmFsc2UiIHF1YWxpdHk9ImJlc3QiIGJnY29sb3I9IiNmZmZmZmYiIHdpZHRoPSInK2ErJyIgaGVpZ2h0PSInK2IrJyIgbmFtZT0iJyt0aGlzLm1vdmllSWQrJyIgYWxpZ249Im1pZGRsZSIgYWxsb3dTY3JpcHRBY2Nlc3M9ImFsd2F5cyIgYWxsb3dGdWxsU2NyZWVuPSJmYWxzZSIgdHlwZT0iYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2giIHBsdWdpbnNwYWdlPSJodHRwOi8vd3d3Lm1hY3JvbWVkaWEuY29tL2dvL2dldGZsYXNocGxheWVyIiBmbGFzaHZhcnM9IicrCmQrJyIgd21vZGU9InRyYW5zcGFyZW50IiAvPic7cmV0dXJuIGN9LGhpZGU6ZnVuY3Rpb24oKXt0aGlzLmRpdiYmKHRoaXMuZGl2LnN0eWxlLmxlZnQ9Ii0yMDAwcHgiKX0sc2hvdzpmdW5jdGlvbigpe3RoaXMucmVwb3NpdGlvbigpfSxkZXN0cm95OmZ1bmN0aW9uKCl7aWYodGhpcy5kb21FbGVtZW50JiZ0aGlzLmRpdil7dGhpcy5oaWRlKCk7dGhpcy5kaXYuaW5uZXJIVE1MPSIiO3ZhciBhPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF07dHJ5e2EucmVtb3ZlQ2hpbGQodGhpcy5kaXYpfWNhdGNoKGIpe310aGlzLmRpdj10aGlzLmRvbUVsZW1lbnQ9bnVsbH19LHJlcG9zaXRpb246ZnVuY3Rpb24oYSl7YSYmKCh0aGlzLmRvbUVsZW1lbnQ9WmVyb0NsaXBib2FyZF9UYWJsZVRvb2xzLiQoYSkpfHx0aGlzLmhpZGUoKSk7aWYodGhpcy5kb21FbGVtZW50JiZ0aGlzLmRpdil7dmFyIGE9WmVyb0NsaXBib2FyZF9UYWJsZVRvb2xzLmdldERPTU9iamVjdFBvc2l0aW9uKHRoaXMuZG9tRWxlbWVudCksCmI9dGhpcy5kaXYuc3R5bGU7Yi5sZWZ0PSIiK2EubGVmdCsicHgiO2IudG9wPSIiK2EudG9wKyJweCJ9fSxjbGVhclRleHQ6ZnVuY3Rpb24oKXt0aGlzLmNsaXBUZXh0PSIiO3RoaXMucmVhZHkmJnRoaXMubW92aWUuY2xlYXJUZXh0KCl9LGFwcGVuZFRleHQ6ZnVuY3Rpb24oYSl7dGhpcy5jbGlwVGV4dCs9YTt0aGlzLnJlYWR5JiZ0aGlzLm1vdmllLmFwcGVuZFRleHQoYSl9LHNldFRleHQ6ZnVuY3Rpb24oYSl7dGhpcy5jbGlwVGV4dD1hO3RoaXMucmVhZHkmJnRoaXMubW92aWUuc2V0VGV4dChhKX0sc2V0Q2hhclNldDpmdW5jdGlvbihhKXt0aGlzLmNoYXJTZXQ9YTt0aGlzLnJlYWR5JiZ0aGlzLm1vdmllLnNldENoYXJTZXQoYSl9LHNldEJvbUluYzpmdW5jdGlvbihhKXt0aGlzLmluY0JvbT1hO3RoaXMucmVhZHkmJnRoaXMubW92aWUuc2V0Qm9tSW5jKGEpfSxzZXRGaWxlTmFtZTpmdW5jdGlvbihhKXt0aGlzLmZpbGVOYW1lPWE7dGhpcy5yZWFkeSYmdGhpcy5tb3ZpZS5zZXRGaWxlTmFtZShhKX0sCnNldEFjdGlvbjpmdW5jdGlvbihhKXt0aGlzLmFjdGlvbj1hO3RoaXMucmVhZHkmJnRoaXMubW92aWUuc2V0QWN0aW9uKGEpfSxhZGRFdmVudExpc3RlbmVyOmZ1bmN0aW9uKGEsYil7YT1hLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9eb24vLCIiKTt0aGlzLmhhbmRsZXJzW2FdfHwodGhpcy5oYW5kbGVyc1thXT1bXSk7dGhpcy5oYW5kbGVyc1thXS5wdXNoKGIpfSxzZXRIYW5kQ3Vyc29yOmZ1bmN0aW9uKGEpe3RoaXMuaGFuZEN1cnNvckVuYWJsZWQ9YTt0aGlzLnJlYWR5JiZ0aGlzLm1vdmllLnNldEhhbmRDdXJzb3IoYSl9LHNldENTU0VmZmVjdHM6ZnVuY3Rpb24oYSl7dGhpcy5jc3NFZmZlY3RzPSEhYX0scmVjZWl2ZUV2ZW50OmZ1bmN0aW9uKGEsYil7YT1hLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9eb24vLCIiKTtzd2l0Y2goYSl7Y2FzZSAibG9hZCI6dGhpcy5tb3ZpZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLm1vdmllSWQpOwppZighdGhpcy5tb3ZpZSl7dmFyIGM9dGhpcztzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5yZWNlaXZlRXZlbnQoImxvYWQiLG51bGwpfSwxKTtyZXR1cm59aWYoIXRoaXMucmVhZHkmJm5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL0ZpcmVmb3gvKSYmbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvV2luZG93cy8pKXtjPXRoaXM7c2V0VGltZW91dChmdW5jdGlvbigpe2MucmVjZWl2ZUV2ZW50KCJsb2FkIixudWxsKX0sMTAwKTt0aGlzLnJlYWR5PSEwO3JldHVybn10aGlzLnJlYWR5PSEwO3RoaXMubW92aWUuY2xlYXJUZXh0KCk7dGhpcy5tb3ZpZS5hcHBlbmRUZXh0KHRoaXMuY2xpcFRleHQpO3RoaXMubW92aWUuc2V0RmlsZU5hbWUodGhpcy5maWxlTmFtZSk7dGhpcy5tb3ZpZS5zZXRBY3Rpb24odGhpcy5hY3Rpb24pO3RoaXMubW92aWUuc2V0Q2hhclNldCh0aGlzLmNoYXJTZXQpO3RoaXMubW92aWUuc2V0Qm9tSW5jKHRoaXMuaW5jQm9tKTt0aGlzLm1vdmllLnNldEhhbmRDdXJzb3IodGhpcy5oYW5kQ3Vyc29yRW5hYmxlZCk7CmJyZWFrO2Nhc2UgIm1vdXNlb3ZlciI6dGhpcy5kb21FbGVtZW50JiZ0aGlzLmNzc0VmZmVjdHMmJnRoaXMucmVjb3ZlckFjdGl2ZSYmdGhpcy5kb21FbGVtZW50LmFkZENsYXNzKCJhY3RpdmUiKTticmVhaztjYXNlICJtb3VzZW91dCI6dGhpcy5kb21FbGVtZW50JiZ0aGlzLmNzc0VmZmVjdHMmJih0aGlzLnJlY292ZXJBY3RpdmU9ITEsdGhpcy5kb21FbGVtZW50Lmhhc0NsYXNzKCJhY3RpdmUiKSYmKHRoaXMuZG9tRWxlbWVudC5yZW1vdmVDbGFzcygiYWN0aXZlIiksdGhpcy5yZWNvdmVyQWN0aXZlPSEwKSk7YnJlYWs7Y2FzZSAibW91c2Vkb3duIjp0aGlzLmRvbUVsZW1lbnQmJnRoaXMuY3NzRWZmZWN0cyYmdGhpcy5kb21FbGVtZW50LmFkZENsYXNzKCJhY3RpdmUiKTticmVhaztjYXNlICJtb3VzZXVwIjp0aGlzLmRvbUVsZW1lbnQmJnRoaXMuY3NzRWZmZWN0cyYmKHRoaXMuZG9tRWxlbWVudC5yZW1vdmVDbGFzcygiYWN0aXZlIiksdGhpcy5yZWNvdmVyQWN0aXZlPSExKX1pZih0aGlzLmhhbmRsZXJzW2FdKWZvcih2YXIgZD0KMCxlPXRoaXMuaGFuZGxlcnNbYV0ubGVuZ3RoO2Q8ZTtkKyspe3ZhciBmPXRoaXMuaGFuZGxlcnNbYV1bZF07aWYoImZ1bmN0aW9uIj09dHlwZW9mIGYpZih0aGlzLGIpO2Vsc2UgaWYoIm9iamVjdCI9PXR5cGVvZiBmJiYyPT1mLmxlbmd0aClmWzBdW2ZbMV1dKHRoaXMsYik7ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIGYpd2luZG93W2ZdKHRoaXMsYil9fX07CgoKLyoKICogRmlsZTogICAgICAgIFRhYmxlVG9vbHMubWluLmpzCiAqIFZlcnNpb246ICAgICAyLjEuMwogKiBBdXRob3I6ICAgICAgQWxsYW4gSmFyZGluZSAod3d3LnNwcnltZWRpYS5jby51aykKICogCiAqIENvcHlyaWdodCAyMDA5LTIwMTIgQWxsYW4gSmFyZGluZSwgYWxsIHJpZ2h0cyByZXNlcnZlZC4KICoKICogVGhpcyBzb3VyY2UgZmlsZSBpcyBmcmVlIHNvZnR3YXJlLCB1bmRlciBlaXRoZXIgdGhlIEdQTCB2MiBsaWNlbnNlIG9yIGEKICogQlNEICgzIHBvaW50KSBzdHlsZSBsaWNlbnNlLCBhcyBzdXBwbGllZCB3aXRoIHRoaXMgc29mdHdhcmUuCiAqIAogKiBUaGlzIHNvdXJjZSBmaWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCAKICogV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgCiAqIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIGxpY2Vuc2UgZmlsZXMgZm9yIGRldGFpbHMuCiAqLwp2YXIgVGFibGVUb29sczsKKGZ1bmN0aW9uKGUsbSxmKXtUYWJsZVRvb2xzPWZ1bmN0aW9uKGEsYil7IXRoaXMgaW5zdGFuY2VvZiBUYWJsZVRvb2xzJiZhbGVydCgiV2FybmluZzogVGFibGVUb29scyBtdXN0IGJlIGluaXRpYWxpc2VkIHdpdGggdGhlIGtleXdvcmQgJ25ldyciKTt0aGlzLnM9e3RoYXQ6dGhpcyxkdDphLmZuU2V0dGluZ3MoKSxwcmludDp7c2F2ZVN0YXJ0Oi0xLHNhdmVMZW5ndGg6LTEsc2F2ZVNjcm9sbDotMSxmdW5jRW5kOmZ1bmN0aW9uKCl7fX0sYnV0dG9uQ291bnRlcjowLHNlbGVjdDp7dHlwZToiIixzZWxlY3RlZDpbXSxwcmVSb3dTZWxlY3Q6bnVsbCxwb3N0U2VsZWN0ZWQ6bnVsbCxwb3N0RGVzZWxlY3RlZDpudWxsLGFsbDohMSxzZWxlY3RlZENsYXNzOiIifSxjdXN0b206e30sc3dmUGF0aDoiIixidXR0b25TZXQ6W10sbWFzdGVyOiExLHRhZ3M6e319O3RoaXMuZG9tPXtjb250YWluZXI6bnVsbCx0YWJsZTpudWxsLHByaW50OntoaWRkZW46W10sbWVzc2FnZTpudWxsfSxjb2xsZWN0aW9uOntjb2xsZWN0aW9uOm51bGwsCmJhY2tncm91bmQ6bnVsbH19O3RoaXMuY2xhc3Nlcz1lLmV4dGVuZCghMCx7fSxUYWJsZVRvb2xzLmNsYXNzZXMpO3RoaXMucy5kdC5iSlVJJiZlLmV4dGVuZCghMCx0aGlzLmNsYXNzZXMsVGFibGVUb29scy5jbGFzc2VzX3RoZW1lcm9sbGVyKTt0aGlzLmZuU2V0dGluZ3M9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zfTsidW5kZWZpbmVkIj09dHlwZW9mIGImJihiPXt9KTt0aGlzLl9mbkNvbnN0cnVjdChiKTtyZXR1cm4gdGhpc307VGFibGVUb29scy5wcm90b3R5cGU9e2ZuR2V0U2VsZWN0ZWQ6ZnVuY3Rpb24oKXt2YXIgYT1bXSxiPXRoaXMucy5kdC5hb0RhdGEsYyxkO2M9MDtmb3IoZD1iLmxlbmd0aDtjPGQ7YysrKWJbY10uX0RUVFRfc2VsZWN0ZWQmJmEucHVzaChiW2NdLm5Ucik7cmV0dXJuIGF9LGZuR2V0U2VsZWN0ZWREYXRhOmZ1bmN0aW9uKCl7dmFyIGE9W10sYj10aGlzLnMuZHQuYW9EYXRhLGMsZDtjPTA7Zm9yKGQ9Yi5sZW5ndGg7YzxkO2MrKyliW2NdLl9EVFRUX3NlbGVjdGVkJiYKYS5wdXNoKHRoaXMucy5kdC5vSW5zdGFuY2UuZm5HZXREYXRhKGMpKTtyZXR1cm4gYX0sZm5Jc1NlbGVjdGVkOmZ1bmN0aW9uKGEpe2E9dGhpcy5zLmR0Lm9JbnN0YW5jZS5mbkdldFBvc2l0aW9uKGEpO3JldHVybiEwPT09dGhpcy5zLmR0LmFvRGF0YVthXS5fRFRUVF9zZWxlY3RlZD8hMDohMX0sZm5TZWxlY3RBbGw6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5fZm5HZXRNYXN0ZXJTZXR0aW5ncygpO3RoaXMuX2ZuUm93U2VsZWN0KCEwPT09YT9iLmR0LmFpRGlzcGxheTpiLmR0LmFvRGF0YSl9LGZuU2VsZWN0Tm9uZTpmdW5jdGlvbihhKXt2YXIgYj10aGlzLl9mbkdldE1hc3RlclNldHRpbmdzKCk7dGhpcy5fZm5Sb3dEZXNlbGVjdCghMD09PWE/Yi5kdC5haURpc3BsYXk6Yi5kdC5hb0RhdGEpfSxmblNlbGVjdDpmdW5jdGlvbihhKXsic2luZ2xlIj09dGhpcy5zLnNlbGVjdC50eXBlPyh0aGlzLmZuU2VsZWN0Tm9uZSgpLHRoaXMuX2ZuUm93U2VsZWN0KGEpKToibXVsdGkiPT10aGlzLnMuc2VsZWN0LnR5cGUmJgp0aGlzLl9mblJvd1NlbGVjdChhKX0sZm5EZXNlbGVjdDpmdW5jdGlvbihhKXt0aGlzLl9mblJvd0Rlc2VsZWN0KGEpfSxmbkdldFRpdGxlOmZ1bmN0aW9uKGEpe3ZhciBiPSIiOyJ1bmRlZmluZWQiIT10eXBlb2YgYS5zVGl0bGUmJiIiIT09YS5zVGl0bGU/Yj1hLnNUaXRsZTooYT1mLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0aXRsZSIpLDA8YS5sZW5ndGgmJihiPWFbMF0uaW5uZXJIVE1MKSk7cmV0dXJuIDQ+Ilx1MDBhMSIudG9TdHJpbmcoKS5sZW5ndGg/Yi5yZXBsYWNlKC9bXmEtekEtWjAtOV9cdTAwQTEtXHVGRkZGXC4sXC1fICFcKFwpXS9nLCIiKTpiLnJlcGxhY2UoL1teYS16QS1aMC05X1wuLFwtXyAhXChcKV0vZywiIil9LGZuQ2FsY0NvbFJhdGlvczpmdW5jdGlvbihhKXt2YXIgYj10aGlzLnMuZHQuYW9Db2x1bW5zLGE9dGhpcy5fZm5Db2x1bW5UYXJnZXRzKGEubUNvbHVtbnMpLGM9W10sZD0wLGU9MCxoLGY7aD0wO2ZvcihmPWEubGVuZ3RoO2g8ZjtoKyspYVtoXSYmKGQ9CmJbaF0ublRoLm9mZnNldFdpZHRoLGUrPWQsYy5wdXNoKGQpKTtoPTA7Zm9yKGY9Yy5sZW5ndGg7aDxmO2grKyljW2hdLz1lO3JldHVybiBjLmpvaW4oIlx0Iil9LGZuR2V0VGFibGVEYXRhOmZ1bmN0aW9uKGEpe2lmKHRoaXMucy5kdClyZXR1cm4gdGhpcy5fZm5HZXREYXRhVGFibGVzRGF0YShhKX0sZm5TZXRUZXh0OmZ1bmN0aW9uKGEsYil7dGhpcy5fZm5GbGFzaFNldFRleHQoYSxiKX0sZm5SZXNpemVCdXR0b25zOmZ1bmN0aW9uKCl7Zm9yKHZhciBhIGluIFplcm9DbGlwYm9hcmRfVGFibGVUb29scy5jbGllbnRzKWlmKGEpe3ZhciBiPVplcm9DbGlwYm9hcmRfVGFibGVUb29scy5jbGllbnRzW2FdOyJ1bmRlZmluZWQiIT10eXBlb2YgYi5kb21FbGVtZW50JiZiLmRvbUVsZW1lbnQucGFyZW50Tm9kZSYmYi5wb3NpdGlvbkVsZW1lbnQoKX19LGZuUmVzaXplUmVxdWlyZWQ6ZnVuY3Rpb24oKXtmb3IodmFyIGEgaW4gWmVyb0NsaXBib2FyZF9UYWJsZVRvb2xzLmNsaWVudHMpaWYoYSl7dmFyIGI9Clplcm9DbGlwYm9hcmRfVGFibGVUb29scy5jbGllbnRzW2FdO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgYi5kb21FbGVtZW50JiZiLmRvbUVsZW1lbnQucGFyZW50Tm9kZT09dGhpcy5kb20uY29udGFpbmVyJiYhMT09PWIuc2l6ZWQpcmV0dXJuITB9cmV0dXJuITF9LGZuUHJpbnQ6ZnVuY3Rpb24oYSxiKXt2b2lkIDA9PT1iJiYoYj17fSk7dm9pZCAwPT09YXx8YT90aGlzLl9mblByaW50U3RhcnQoYik6dGhpcy5fZm5QcmludEVuZCgpfSxmbkluZm86ZnVuY3Rpb24oYSxiKXt2YXIgYz1mLmNyZWF0ZUVsZW1lbnQoImRpdiIpO2MuY2xhc3NOYW1lPXRoaXMuY2xhc3Nlcy5wcmludC5pbmZvO2MuaW5uZXJIVE1MPWE7Zi5ib2R5LmFwcGVuZENoaWxkKGMpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtlKGMpLmZhZGVPdXQoIm5vcm1hbCIsZnVuY3Rpb24oKXtmLmJvZHkucmVtb3ZlQ2hpbGQoYyl9KX0sYil9LF9mbkNvbnN0cnVjdDpmdW5jdGlvbihhKXt2YXIgYj10aGlzO3RoaXMuX2ZuQ3VzdG9taXNlU2V0dGluZ3MoYSk7CnRoaXMuZG9tLmNvbnRhaW5lcj1mLmNyZWF0ZUVsZW1lbnQodGhpcy5zLnRhZ3MuY29udGFpbmVyKTt0aGlzLmRvbS5jb250YWluZXIuY2xhc3NOYW1lPXRoaXMuY2xhc3Nlcy5jb250YWluZXI7Im5vbmUiIT10aGlzLnMuc2VsZWN0LnR5cGUmJnRoaXMuX2ZuUm93U2VsZWN0Q29uZmlnKCk7dGhpcy5fZm5CdXR0b25EZWZpbmF0aW9ucyh0aGlzLnMuYnV0dG9uU2V0LHRoaXMuZG9tLmNvbnRhaW5lcik7dGhpcy5zLmR0LmFvRGVzdHJveUNhbGxiYWNrLnB1c2goe3NOYW1lOiJUYWJsZVRvb2xzIixmbjpmdW5jdGlvbigpe2IuZG9tLmNvbnRhaW5lci5pbm5lckhUTUw9IiJ9fSl9LF9mbkN1c3RvbWlzZVNldHRpbmdzOmZ1bmN0aW9uKGEpeyJ1bmRlZmluZWQiPT10eXBlb2YgdGhpcy5zLmR0Ll9UYWJsZVRvb2xzSW5pdCYmKHRoaXMucy5tYXN0ZXI9ITAsdGhpcy5zLmR0Ll9UYWJsZVRvb2xzSW5pdD0hMCk7dGhpcy5kb20udGFibGU9dGhpcy5zLmR0Lm5UYWJsZTt0aGlzLnMuY3VzdG9tPQplLmV4dGVuZCh7fSxUYWJsZVRvb2xzLkRFRkFVTFRTLGEpO3RoaXMucy5zd2ZQYXRoPXRoaXMucy5jdXN0b20uc1N3ZlBhdGg7InVuZGVmaW5lZCIhPXR5cGVvZiBaZXJvQ2xpcGJvYXJkX1RhYmxlVG9vbHMmJihaZXJvQ2xpcGJvYXJkX1RhYmxlVG9vbHMubW92aWVQYXRoPXRoaXMucy5zd2ZQYXRoKTt0aGlzLnMuc2VsZWN0LnR5cGU9dGhpcy5zLmN1c3RvbS5zUm93U2VsZWN0O3RoaXMucy5zZWxlY3QucHJlUm93U2VsZWN0PXRoaXMucy5jdXN0b20uZm5QcmVSb3dTZWxlY3Q7dGhpcy5zLnNlbGVjdC5wb3N0U2VsZWN0ZWQ9dGhpcy5zLmN1c3RvbS5mblJvd1NlbGVjdGVkO3RoaXMucy5zZWxlY3QucG9zdERlc2VsZWN0ZWQ9dGhpcy5zLmN1c3RvbS5mblJvd0Rlc2VsZWN0ZWQ7dGhpcy5zLmN1c3RvbS5zU2VsZWN0ZWRDbGFzcyYmKHRoaXMuY2xhc3Nlcy5zZWxlY3Qucm93PXRoaXMucy5jdXN0b20uc1NlbGVjdGVkQ2xhc3MpO3RoaXMucy50YWdzPXRoaXMucy5jdXN0b20ub1RhZ3M7CnRoaXMucy5idXR0b25TZXQ9dGhpcy5zLmN1c3RvbS5hQnV0dG9uc30sX2ZuQnV0dG9uRGVmaW5hdGlvbnM6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGMsZD0wLGc9YS5sZW5ndGg7ZDxnO2QrKyl7aWYoInN0cmluZyI9PXR5cGVvZiBhW2RdKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFRhYmxlVG9vbHMuQlVUVE9OU1thW2RdXSl7YWxlcnQoIlRhYmxlVG9vbHM6IFdhcm5pbmcgLSB1bmtub3duIGJ1dHRvbiB0eXBlOiAiK2FbZF0pO2NvbnRpbnVlfWM9ZS5leHRlbmQoe30sVGFibGVUb29scy5CVVRUT05TW2FbZF1dLCEwKX1lbHNle2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgVGFibGVUb29scy5CVVRUT05TW2FbZF0uc0V4dGVuZHNdKXthbGVydCgiVGFibGVUb29sczogV2FybmluZyAtIHVua25vd24gYnV0dG9uIHR5cGU6ICIrYVtkXS5zRXh0ZW5kcyk7Y29udGludWV9Yz1lLmV4dGVuZCh7fSxUYWJsZVRvb2xzLkJVVFRPTlNbYVtkXS5zRXh0ZW5kc10sITApO2M9ZS5leHRlbmQoYyxhW2RdLAohMCl9Yi5hcHBlbmRDaGlsZCh0aGlzLl9mbkNyZWF0ZUJ1dHRvbihjLGUoYikuaGFzQ2xhc3ModGhpcy5jbGFzc2VzLmNvbGxlY3Rpb24uY29udGFpbmVyKSkpfX0sX2ZuQ3JlYXRlQnV0dG9uOmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5fZm5CdXR0b25CYXNlKGEsYik7YS5zQWN0aW9uLm1hdGNoKC9mbGFzaC8pP3RoaXMuX2ZuRmxhc2hDb25maWcoYyxhKToidGV4dCI9PWEuc0FjdGlvbj90aGlzLl9mblRleHRDb25maWcoYyxhKToiZGl2Ij09YS5zQWN0aW9uP3RoaXMuX2ZuVGV4dENvbmZpZyhjLGEpOiJjb2xsZWN0aW9uIj09YS5zQWN0aW9uJiYodGhpcy5fZm5UZXh0Q29uZmlnKGMsYSksdGhpcy5fZm5Db2xsZWN0aW9uQ29uZmlnKGMsYSkpO3JldHVybiBjfSxfZm5CdXR0b25CYXNlOmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlO2I/KGM9ImRlZmF1bHQiIT09YS5zVGFnP2Euc1RhZzp0aGlzLnMudGFncy5jb2xsZWN0aW9uLmJ1dHRvbixkPSJkZWZhdWx0IiE9PWEuc0xpbmVyVGFnPwphLnNMaW5lcjp0aGlzLnMudGFncy5jb2xsZWN0aW9uLmxpbmVyLGU9dGhpcy5jbGFzc2VzLmNvbGxlY3Rpb24uYnV0dG9ucy5ub3JtYWwpOihjPSJkZWZhdWx0IiE9PWEuc1RhZz9hLnNUYWc6dGhpcy5zLnRhZ3MuYnV0dG9uLGQ9ImRlZmF1bHQiIT09YS5zTGluZXJUYWc/YS5zTGluZXI6dGhpcy5zLnRhZ3MubGluZXIsZT10aGlzLmNsYXNzZXMuYnV0dG9ucy5ub3JtYWwpO2M9Zi5jcmVhdGVFbGVtZW50KGMpO2Q9Zi5jcmVhdGVFbGVtZW50KGQpO3ZhciBoPXRoaXMuX2ZuR2V0TWFzdGVyU2V0dGluZ3MoKTtjLmNsYXNzTmFtZT1lKyIgIithLnNCdXR0b25DbGFzcztjLnNldEF0dHJpYnV0ZSgiaWQiLCJUb29sVGFibGVzXyIrdGhpcy5zLmR0LnNJbnN0YW5jZSsiXyIraC5idXR0b25Db3VudGVyKTtjLmFwcGVuZENoaWxkKGQpO2QuaW5uZXJIVE1MPWEuc0J1dHRvblRleHQ7aC5idXR0b25Db3VudGVyKys7cmV0dXJuIGN9LF9mbkdldE1hc3RlclNldHRpbmdzOmZ1bmN0aW9uKCl7aWYodGhpcy5zLm1hc3RlcilyZXR1cm4gdGhpcy5zOwpmb3IodmFyIGE9VGFibGVUb29scy5fYUluc3RhbmNlcyxiPTAsYz1hLmxlbmd0aDtiPGM7YisrKWlmKHRoaXMuZG9tLnRhYmxlPT1hW2JdLnMuZHQublRhYmxlKXJldHVybiBhW2JdLnN9LF9mbkNvbGxlY3Rpb25Db25maWc6ZnVuY3Rpb24oYSxiKXt2YXIgYz1mLmNyZWF0ZUVsZW1lbnQodGhpcy5zLnRhZ3MuY29sbGVjdGlvbi5jb250YWluZXIpO2Muc3R5bGUuZGlzcGxheT0ibm9uZSI7Yy5jbGFzc05hbWU9dGhpcy5jbGFzc2VzLmNvbGxlY3Rpb24uY29udGFpbmVyO2IuX2NvbGxlY3Rpb249YztmLmJvZHkuYXBwZW5kQ2hpbGQoYyk7dGhpcy5fZm5CdXR0b25EZWZpbmF0aW9ucyhiLmFCdXR0b25zLGMpfSxfZm5Db2xsZWN0aW9uU2hvdzpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMsZD1lKGEpLm9mZnNldCgpLGc9Yi5fY29sbGVjdGlvbixoPWQubGVmdCxkPWQudG9wK2UoYSkub3V0ZXJIZWlnaHQoKSxwPWUobSkuaGVpZ2h0KCksaj1lKGYpLmhlaWdodCgpLGs9ZShtKS53aWR0aCgpLApuPWUoZikud2lkdGgoKTtnLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSI7Zy5zdHlsZS5sZWZ0PWgrInB4IjtnLnN0eWxlLnRvcD1kKyJweCI7Zy5zdHlsZS5kaXNwbGF5PSJibG9jayI7ZShnKS5jc3MoIm9wYWNpdHkiLDApO3ZhciBsPWYuY3JlYXRlRWxlbWVudCgiZGl2Iik7bC5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO2wuc3R5bGUubGVmdD0iMHB4IjtsLnN0eWxlLnRvcD0iMHB4IjtsLnN0eWxlLmhlaWdodD0ocD5qP3A6aikrInB4IjtsLnN0eWxlLndpZHRoPShrPm4/azpuKSsicHgiO2wuY2xhc3NOYW1lPXRoaXMuY2xhc3Nlcy5jb2xsZWN0aW9uLmJhY2tncm91bmQ7ZShsKS5jc3MoIm9wYWNpdHkiLDApO2YuYm9keS5hcHBlbmRDaGlsZChsKTtmLmJvZHkuYXBwZW5kQ2hpbGQoZyk7cD1lKGcpLm91dGVyV2lkdGgoKTtrPWUoZykub3V0ZXJIZWlnaHQoKTtoK3A+biYmKGcuc3R5bGUubGVmdD1uLXArInB4Iik7ZCtrPmomJihnLnN0eWxlLnRvcD1kLWstZShhKS5vdXRlckhlaWdodCgpKwoicHgiKTt0aGlzLmRvbS5jb2xsZWN0aW9uLmNvbGxlY3Rpb249Zzt0aGlzLmRvbS5jb2xsZWN0aW9uLmJhY2tncm91bmQ9bDtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZShnKS5hbmltYXRlKHtvcGFjaXR5OjF9LDUwMCk7ZShsKS5hbmltYXRlKHtvcGFjaXR5OjAuMjV9LDUwMCl9LDEwKTt0aGlzLmZuUmVzaXplQnV0dG9ucygpO2UobCkuY2xpY2soZnVuY3Rpb24oKXtjLl9mbkNvbGxlY3Rpb25IaWRlLmNhbGwoYyxudWxsLG51bGwpfSl9LF9mbkNvbGxlY3Rpb25IaWRlOmZ1bmN0aW9uKGEsYil7IShudWxsIT09YiYmImNvbGxlY3Rpb24iPT1iLnNFeHRlbmRzKSYmbnVsbCE9PXRoaXMuZG9tLmNvbGxlY3Rpb24uY29sbGVjdGlvbiYmKGUodGhpcy5kb20uY29sbGVjdGlvbi5jb2xsZWN0aW9uKS5hbmltYXRlKHtvcGFjaXR5OjB9LDUwMCxmdW5jdGlvbigpe3RoaXMuc3R5bGUuZGlzcGxheT0ibm9uZSJ9KSxlKHRoaXMuZG9tLmNvbGxlY3Rpb24uYmFja2dyb3VuZCkuYW5pbWF0ZSh7b3BhY2l0eTowfSwKNTAwLGZ1bmN0aW9uKCl7dGhpcy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMpfSksdGhpcy5kb20uY29sbGVjdGlvbi5jb2xsZWN0aW9uPW51bGwsdGhpcy5kb20uY29sbGVjdGlvbi5iYWNrZ3JvdW5kPW51bGwpfSxfZm5Sb3dTZWxlY3RDb25maWc6ZnVuY3Rpb24oKXtpZih0aGlzLnMubWFzdGVyKXt2YXIgYT10aGlzLGI9dGhpcy5zLmR0O2UoYi5uVGFibGUpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5zZWxlY3QudGFibGUpO2UoInRyIixiLm5UQm9keSkubGl2ZSgiY2xpY2siLGZ1bmN0aW9uKGMpe2lmKHRoaXMucGFyZW50Tm9kZT09Yi5uVEJvZHkmJm51bGwhPT1iLm9JbnN0YW5jZS5mbkdldERhdGEodGhpcykmJihudWxsPT09YS5zLnNlbGVjdC5wcmVSb3dTZWxlY3R8fGEucy5zZWxlY3QucHJlUm93U2VsZWN0LmNhbGwoYSxjKSkpYS5mbklzU2VsZWN0ZWQodGhpcyk/YS5fZm5Sb3dEZXNlbGVjdCh0aGlzKToic2luZ2xlIj09YS5zLnNlbGVjdC50eXBlPyhhLmZuU2VsZWN0Tm9uZSgpLAphLl9mblJvd1NlbGVjdCh0aGlzKSk6Im11bHRpIj09YS5zLnNlbGVjdC50eXBlJiZhLl9mblJvd1NlbGVjdCh0aGlzKX0pO2Iub0FwaS5fZm5DYWxsYmFja1JlZyhiLCJhb1Jvd0NyZWF0ZWRDYWxsYmFjayIsZnVuY3Rpb24oYyxkLGcpe2IuYW9EYXRhW2ddLl9EVFRUX3NlbGVjdGVkJiZlKGMpLmFkZENsYXNzKGEuY2xhc3Nlcy5zZWxlY3Qucm93KX0sIlRhYmxlVG9vbHMtU2VsZWN0QWxsIil9fSxfZm5Sb3dTZWxlY3Q6ZnVuY3Rpb24oYSl7Zm9yKHZhciBhPXRoaXMuX2ZuU2VsZWN0RGF0YShhKSxiPTA9PT1hLmxlbmd0aD9udWxsOmFbMF0ublRyLGM9MCxkPWEubGVuZ3RoO2M8ZDtjKyspYVtjXS5fRFRUVF9zZWxlY3RlZD0hMCxhW2NdLm5UciYmZShhW2NdLm5UcikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLnNlbGVjdC5yb3cpO251bGwhPT10aGlzLnMuc2VsZWN0LnBvc3RTZWxlY3RlZCYmdGhpcy5zLnNlbGVjdC5wb3N0U2VsZWN0ZWQuY2FsbCh0aGlzLGIpO1RhYmxlVG9vbHMuX2ZuRXZlbnREaXNwYXRjaCh0aGlzLAoic2VsZWN0IixiKX0sX2ZuUm93RGVzZWxlY3Q6ZnVuY3Rpb24oYSl7Zm9yKHZhciBhPXRoaXMuX2ZuU2VsZWN0RGF0YShhKSxiPTA9PT1hLmxlbmd0aD9udWxsOmFbMF0ublRyLGM9MCxkPWEubGVuZ3RoO2M8ZDtjKyspYVtjXS5uVHImJmFbY10uX0RUVFRfc2VsZWN0ZWQmJmUoYVtjXS5uVHIpLnJlbW92ZUNsYXNzKHRoaXMuY2xhc3Nlcy5zZWxlY3Qucm93KSxhW2NdLl9EVFRUX3NlbGVjdGVkPSExO251bGwhPT10aGlzLnMuc2VsZWN0LnBvc3REZXNlbGVjdGVkJiZ0aGlzLnMuc2VsZWN0LnBvc3REZXNlbGVjdGVkLmNhbGwodGhpcyxiKTtUYWJsZVRvb2xzLl9mbkV2ZW50RGlzcGF0Y2godGhpcywic2VsZWN0IixiKX0sX2ZuU2VsZWN0RGF0YTpmdW5jdGlvbihhKXt2YXIgYj1bXSxjLGQsZTtpZihhLm5vZGVOYW1lKWM9dGhpcy5zLmR0Lm9JbnN0YW5jZS5mbkdldFBvc2l0aW9uKGEpLGIucHVzaCh0aGlzLnMuZHQuYW9EYXRhW2NdKTtlbHNlIGlmKCJ1bmRlZmluZWQiIT09dHlwZW9mIGEubGVuZ3RoKXtkPQowO2ZvcihlPWEubGVuZ3RoO2Q8ZTtkKyspYVtkXS5ub2RlTmFtZT8oYz10aGlzLnMuZHQub0luc3RhbmNlLmZuR2V0UG9zaXRpb24oYVtkXSksYi5wdXNoKHRoaXMucy5kdC5hb0RhdGFbY10pKToibnVtYmVyIj09PXR5cGVvZiBhW2RdP2IucHVzaCh0aGlzLnMuZHQuYW9EYXRhW2FbZF1dKTpiLnB1c2goYVtkXSl9ZWxzZSBiLnB1c2goYSk7cmV0dXJuIGJ9LF9mblRleHRDb25maWc6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzO251bGwhPT1iLmZuSW5pdCYmYi5mbkluaXQuY2FsbCh0aGlzLGEsYik7IiIhPT1iLnNUb29sVGlwJiYoYS50aXRsZT1iLnNUb29sVGlwKTtlKGEpLmhvdmVyKGZ1bmN0aW9uKCl7Yi5mbk1vdXNlb3ZlciE9PW51bGwmJmIuZm5Nb3VzZW92ZXIuY2FsbCh0aGlzLGEsYixudWxsKX0sZnVuY3Rpb24oKXtiLmZuTW91c2VvdXQhPT1udWxsJiZiLmZuTW91c2VvdXQuY2FsbCh0aGlzLGEsYixudWxsKX0pO251bGwhPT1iLmZuU2VsZWN0JiZUYWJsZVRvb2xzLl9mbkV2ZW50TGlzdGVuKHRoaXMsCiJzZWxlY3QiLGZ1bmN0aW9uKGQpe2IuZm5TZWxlY3QuY2FsbChjLGEsYixkKX0pO2UoYSkuY2xpY2soZnVuY3Rpb24oKXtiLmZuQ2xpY2shPT1udWxsJiZiLmZuQ2xpY2suY2FsbChjLGEsYixudWxsKTtiLmZuQ29tcGxldGUhPT1udWxsJiZiLmZuQ29tcGxldGUuY2FsbChjLGEsYixudWxsLG51bGwpO2MuX2ZuQ29sbGVjdGlvbkhpZGUoYSxiKX0pfSxfZm5GbGFzaENvbmZpZzpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMsZD1uZXcgWmVyb0NsaXBib2FyZF9UYWJsZVRvb2xzLkNsaWVudDtudWxsIT09Yi5mbkluaXQmJmIuZm5Jbml0LmNhbGwodGhpcyxhLGIpO2Quc2V0SGFuZEN1cnNvcighMCk7ImZsYXNoX3NhdmUiPT1iLnNBY3Rpb24/KGQuc2V0QWN0aW9uKCJzYXZlIiksZC5zZXRDaGFyU2V0KCJ1dGYxNmxlIj09Yi5zQ2hhclNldD8iVVRGMTZMRSI6IlVURjgiKSxkLnNldEJvbUluYyhiLmJCb21JbmMpLGQuc2V0RmlsZU5hbWUoYi5zRmlsZU5hbWUucmVwbGFjZSgiKiIsdGhpcy5mbkdldFRpdGxlKGIpKSkpOgoiZmxhc2hfcGRmIj09Yi5zQWN0aW9uPyhkLnNldEFjdGlvbigicGRmIiksZC5zZXRGaWxlTmFtZShiLnNGaWxlTmFtZS5yZXBsYWNlKCIqIix0aGlzLmZuR2V0VGl0bGUoYikpKSk6ZC5zZXRBY3Rpb24oImNvcHkiKTtkLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlT3ZlciIsZnVuY3Rpb24oKXtiLmZuTW91c2VvdmVyIT09bnVsbCYmYi5mbk1vdXNlb3Zlci5jYWxsKGMsYSxiLGQpfSk7ZC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZU91dCIsZnVuY3Rpb24oKXtiLmZuTW91c2VvdXQhPT1udWxsJiZiLmZuTW91c2VvdXQuY2FsbChjLGEsYixkKX0pO2QuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VEb3duIixmdW5jdGlvbigpe2IuZm5DbGljayE9PW51bGwmJmIuZm5DbGljay5jYWxsKGMsYSxiLGQpfSk7ZC5hZGRFdmVudExpc3RlbmVyKCJjb21wbGV0ZSIsZnVuY3Rpb24oZSxoKXtiLmZuQ29tcGxldGUhPT1udWxsJiZiLmZuQ29tcGxldGUuY2FsbChjLGEsYixkLGgpO2MuX2ZuQ29sbGVjdGlvbkhpZGUoYSwKYil9KTt0aGlzLl9mbkZsYXNoR2x1ZShkLGEsYi5zVG9vbFRpcCl9LF9mbkZsYXNoR2x1ZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcyxlPWIuZ2V0QXR0cmlidXRlKCJpZCIpO2YuZ2V0RWxlbWVudEJ5SWQoZSk/YS5nbHVlKGIsYyk6c2V0VGltZW91dChmdW5jdGlvbigpe2QuX2ZuRmxhc2hHbHVlKGEsYixjKX0sMTAwKX0sX2ZuRmxhc2hTZXRUZXh0OmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5fZm5DaHVua0RhdGEoYiw4MTkyKTthLmNsZWFyVGV4dCgpO2Zvcih2YXIgZD0wLGU9Yy5sZW5ndGg7ZDxlO2QrKylhLmFwcGVuZFRleHQoY1tkXSl9LF9mbkNvbHVtblRhcmdldHM6ZnVuY3Rpb24oYSl7dmFyIGI9W10sYz10aGlzLnMuZHQ7aWYoIm9iamVjdCI9PXR5cGVvZiBhKXtpPTA7Zm9yKGlMZW49Yy5hb0NvbHVtbnMubGVuZ3RoO2k8aUxlbjtpKyspYi5wdXNoKCExKTtpPTA7Zm9yKGlMZW49YS5sZW5ndGg7aTxpTGVuO2krKyliW2FbaV1dPSEwfWVsc2UgaWYoInZpc2libGUiPT0KYSl7aT0wO2ZvcihpTGVuPWMuYW9Db2x1bW5zLmxlbmd0aDtpPGlMZW47aSsrKWIucHVzaChjLmFvQ29sdW1uc1tpXS5iVmlzaWJsZT8hMDohMSl9ZWxzZSBpZigiaGlkZGVuIj09YSl7aT0wO2ZvcihpTGVuPWMuYW9Db2x1bW5zLmxlbmd0aDtpPGlMZW47aSsrKWIucHVzaChjLmFvQ29sdW1uc1tpXS5iVmlzaWJsZT8hMTohMCl9ZWxzZSBpZigic29ydGFibGUiPT1hKXtpPTA7Zm9yKGlMZW49Yy5hb0NvbHVtbnMubGVuZ3RoO2k8aUxlbjtpKyspYi5wdXNoKGMuYW9Db2x1bW5zW2ldLmJTb3J0YWJsZT8hMDohMSl9ZWxzZXtpPTA7Zm9yKGlMZW49Yy5hb0NvbHVtbnMubGVuZ3RoO2k8aUxlbjtpKyspYi5wdXNoKCEwKX1yZXR1cm4gYn0sX2ZuTmV3bGluZTpmdW5jdGlvbihhKXtyZXR1cm4iYXV0byI9PWEuc05ld0xpbmU/bmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvV2luZG93cy8pPyJcclxuIjoiXG4iOmEuc05ld0xpbmV9LF9mbkdldERhdGFUYWJsZXNEYXRhOmZ1bmN0aW9uKGEpe3ZhciBiLApjLGQsZyxoLGY9W10saj0iIixrPXRoaXMucy5kdCxuLGw9UmVnRXhwKGEuc0ZpZWxkQm91bmRhcnksImciKSxtPXRoaXMuX2ZuQ29sdW1uVGFyZ2V0cyhhLm1Db2x1bW5zKTtkPSJ1bmRlZmluZWQiIT10eXBlb2YgYS5iU2VsZWN0ZWRPbmx5P2EuYlNlbGVjdGVkT25seTohMTtpZihhLmJIZWFkZXIpe2g9W107Yj0wO2ZvcihjPWsuYW9Db2x1bW5zLmxlbmd0aDtiPGM7YisrKW1bYl0mJihqPWsuYW9Db2x1bW5zW2JdLnNUaXRsZS5yZXBsYWNlKC9cbi9nLCIgIikucmVwbGFjZSgvPC4qPz4vZywiIikucmVwbGFjZSgvXlxzK3xccyskL2csIiIpLGo9dGhpcy5fZm5IdG1sRGVjb2RlKGopLGgucHVzaCh0aGlzLl9mbkJvdW5kRGF0YShqLGEuc0ZpZWxkQm91bmRhcnksbCkpKTtmLnB1c2goaC5qb2luKGEuc0ZpZWxkU2VwZXJhdG9yKSl9dmFyIG89ay5haURpc3BsYXk7Zz10aGlzLmZuR2V0U2VsZWN0ZWQoKTtpZigibm9uZSIhPT10aGlzLnMuc2VsZWN0LnR5cGUmJmQmJjAhPT1nLmxlbmd0aCl7bz0KW107Yj0wO2ZvcihjPWcubGVuZ3RoO2I8YztiKyspby5wdXNoKGsub0luc3RhbmNlLmZuR2V0UG9zaXRpb24oZ1tiXSkpfWQ9MDtmb3IoZz1vLmxlbmd0aDtkPGc7ZCsrKXtuPWsuYW9EYXRhW29bZF1dLm5UcjtoPVtdO2I9MDtmb3IoYz1rLmFvQ29sdW1ucy5sZW5ndGg7YjxjO2IrKyltW2JdJiYoaj1rLm9BcGkuX2ZuR2V0Q2VsbERhdGEoayxvW2RdLGIsImRpc3BsYXkiKSxhLmZuQ2VsbFJlbmRlcj9qPWEuZm5DZWxsUmVuZGVyKGosYixuLG9bZF0pKyIiOiJzdHJpbmciPT10eXBlb2Ygaj8oaj1qLnJlcGxhY2UoL1xuL2csIiAiKSxqPWoucmVwbGFjZSgvPGltZy4qP1xzK2FsdFxzKj1ccyooPzoiKFteIl0rKSJ8JyhbXiddKyknfChbXlxzPl0rKSkuKj8+L2dpLCIkMSQyJDMiKSxqPWoucmVwbGFjZSgvPC4qPz4vZywiIikpOmorPSIiLGo9ai5yZXBsYWNlKC9eXHMrLywiIikucmVwbGFjZSgvXHMrJC8sIiIpLGo9dGhpcy5fZm5IdG1sRGVjb2RlKGopLGgucHVzaCh0aGlzLl9mbkJvdW5kRGF0YShqLAphLnNGaWVsZEJvdW5kYXJ5LGwpKSk7Zi5wdXNoKGguam9pbihhLnNGaWVsZFNlcGVyYXRvcikpO2EuYk9wZW5Sb3dzJiYoYj1lLmdyZXAoay5hb09wZW5Sb3dzLGZ1bmN0aW9uKGEpe3JldHVybiBhLm5QYXJlbnQ9PT1ufSksMT09PWIubGVuZ3RoJiYoaj10aGlzLl9mbkJvdW5kRGF0YShlKCJ0ZCIsYlswXS5uVHIpLmh0bWwoKSxhLnNGaWVsZEJvdW5kYXJ5LGwpLGYucHVzaChqKSkpfWlmKGEuYkZvb3RlciYmbnVsbCE9PWsublRGb290KXtoPVtdO2I9MDtmb3IoYz1rLmFvQ29sdW1ucy5sZW5ndGg7YjxjO2IrKyltW2JdJiZudWxsIT09ay5hb0NvbHVtbnNbYl0ublRmJiYoaj1rLmFvQ29sdW1uc1tiXS5uVGYuaW5uZXJIVE1MLnJlcGxhY2UoL1xuL2csIiAiKS5yZXBsYWNlKC88Lio/Pi9nLCIiKSxqPXRoaXMuX2ZuSHRtbERlY29kZShqKSxoLnB1c2godGhpcy5fZm5Cb3VuZERhdGEoaixhLnNGaWVsZEJvdW5kYXJ5LGwpKSk7Zi5wdXNoKGguam9pbihhLnNGaWVsZFNlcGVyYXRvcikpfXJldHVybiBfc0xhc3REYXRhPQpmLmpvaW4odGhpcy5fZm5OZXdsaW5lKGEpKX0sX2ZuQm91bmREYXRhOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4iIj09PWI/YTpiK2EucmVwbGFjZShjLGIrYikrYn0sX2ZuQ2h1bmtEYXRhOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdLGQ9YS5sZW5ndGgsZT0wO2U8ZDtlKz1iKWUrYjxkP2MucHVzaChhLnN1YnN0cmluZyhlLGUrYikpOmMucHVzaChhLnN1YnN0cmluZyhlLGQpKTtyZXR1cm4gY30sX2ZuSHRtbERlY29kZTpmdW5jdGlvbihhKXtpZigtMT09YS5pbmRleE9mKCImIikpcmV0dXJuIGE7dmFyIGE9dGhpcy5fZm5DaHVua0RhdGEoYSwyMDQ4KSxiPWYuY3JlYXRlRWxlbWVudCgiZGl2IiksYyxkLGUsaD0iIjtjPTA7Zm9yKGQ9YS5sZW5ndGg7YzxkO2MrKyllPWFbY10ubGFzdEluZGV4T2YoIiYiKSwtMSE9ZSYmKDg8PWFbY10ubGVuZ3RoJiZlPmFbY10ubGVuZ3RoLTgpJiYoYVtjXS5zdWJzdHIoZSksYVtjXT1hW2NdLnN1YnN0cigwLGUpKSxiLmlubmVySFRNTD1hW2NdLGgrPQpiLmNoaWxkTm9kZXNbMF0ubm9kZVZhbHVlO3JldHVybiBofSxfZm5QcmludFN0YXJ0OmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz10aGlzLnMuZHQ7dGhpcy5fZm5QcmludEhpZGVOb2RlcyhjLm5UYWJsZSk7dGhpcy5zLnByaW50LnNhdmVTdGFydD1jLl9pRGlzcGxheVN0YXJ0O3RoaXMucy5wcmludC5zYXZlTGVuZ3RoPWMuX2lEaXNwbGF5TGVuZ3RoO2EuYlNob3dBbGwmJihjLl9pRGlzcGxheVN0YXJ0PTAsYy5faURpc3BsYXlMZW5ndGg9LTEsYy5vQXBpLl9mbkNhbGN1bGF0ZUVuZChjKSxjLm9BcGkuX2ZuRHJhdyhjKSk7KCIiIT09Yy5vU2Nyb2xsLnNYfHwiIiE9PWMub1Njcm9sbC5zWSkmJnRoaXMuX2ZuUHJpbnRTY3JvbGxTdGFydChjKTt2YXIgYz1jLmFhbkZlYXR1cmVzLGQ7Zm9yKGQgaW4gYylpZigiaSIhPWQmJiJ0IiE9ZCYmMT09ZC5sZW5ndGgpZm9yKHZhciBnPTAsaD1jW2RdLmxlbmd0aDtnPGg7ZysrKXRoaXMuZG9tLnByaW50LmhpZGRlbi5wdXNoKHtub2RlOmNbZF1bZ10sCmRpc3BsYXk6ImJsb2NrIn0pLGNbZF1bZ10uc3R5bGUuZGlzcGxheT0ibm9uZSI7ZShmLmJvZHkpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5wcmludC5ib2R5KTsiIiE9PWEuc0luZm8mJnRoaXMuZm5JbmZvKGEuc0luZm8sM0UzKTthLnNNZXNzYWdlJiYodGhpcy5kb20ucHJpbnQubWVzc2FnZT1mLmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuZG9tLnByaW50Lm1lc3NhZ2UuY2xhc3NOYW1lPXRoaXMuY2xhc3Nlcy5wcmludC5tZXNzYWdlLHRoaXMuZG9tLnByaW50Lm1lc3NhZ2UuaW5uZXJIVE1MPWEuc01lc3NhZ2UsZi5ib2R5Lmluc2VydEJlZm9yZSh0aGlzLmRvbS5wcmludC5tZXNzYWdlLGYuYm9keS5jaGlsZE5vZGVzWzBdKSk7dGhpcy5zLnByaW50LnNhdmVTY3JvbGw9ZShtKS5zY3JvbGxUb3AoKTttLnNjcm9sbFRvKDAsMCk7ZShmKS5iaW5kKCJrZXlkb3duLkRUVFQiLGZ1bmN0aW9uKGEpe2lmKGEua2V5Q29kZT09Mjcpe2EucHJldmVudERlZmF1bHQoKTtiLl9mblByaW50RW5kLmNhbGwoYiwKYSl9fSl9LF9mblByaW50RW5kOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5zLmR0LGI9dGhpcy5zLnByaW50LGM9dGhpcy5kb20ucHJpbnQ7dGhpcy5fZm5QcmludFNob3dOb2RlcygpOygiIiE9PWEub1Njcm9sbC5zWHx8IiIhPT1hLm9TY3JvbGwuc1kpJiZ0aGlzLl9mblByaW50U2Nyb2xsRW5kKCk7bS5zY3JvbGxUbygwLGIuc2F2ZVNjcm9sbCk7bnVsbCE9PWMubWVzc2FnZSYmKGYuYm9keS5yZW1vdmVDaGlsZChjLm1lc3NhZ2UpLGMubWVzc2FnZT1udWxsKTtlKGYuYm9keSkucmVtb3ZlQ2xhc3MoIkRUVFRfUHJpbnQiKTthLl9pRGlzcGxheVN0YXJ0PWIuc2F2ZVN0YXJ0O2EuX2lEaXNwbGF5TGVuZ3RoPWIuc2F2ZUxlbmd0aDthLm9BcGkuX2ZuQ2FsY3VsYXRlRW5kKGEpO2Eub0FwaS5fZm5EcmF3KGEpO2UoZikudW5iaW5kKCJrZXlkb3duLkRUVFQiKX0sX2ZuUHJpbnRTY3JvbGxTdGFydDpmdW5jdGlvbigpe3ZhciBhPXRoaXMucy5kdDthLm5TY3JvbGxIZWFkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJkaXYiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGFibGUiKTsKdmFyIGI9YS5uVGFibGUucGFyZW50Tm9kZSxjPWEublRhYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0aGVhZCIpOzA8Yy5sZW5ndGgmJmEublRhYmxlLnJlbW92ZUNoaWxkKGNbMF0pO251bGwhPT1hLm5URm9vdCYmKGM9YS5uVGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRmb290IiksMDxjLmxlbmd0aCYmYS5uVGFibGUucmVtb3ZlQ2hpbGQoY1swXSkpO2M9YS5uVEhlYWQuY2xvbmVOb2RlKCEwKTthLm5UYWJsZS5pbnNlcnRCZWZvcmUoYyxhLm5UYWJsZS5jaGlsZE5vZGVzWzBdKTtudWxsIT09YS5uVEZvb3QmJihjPWEublRGb290LmNsb25lTm9kZSghMCksYS5uVGFibGUuaW5zZXJ0QmVmb3JlKGMsYS5uVGFibGUuY2hpbGROb2Rlc1sxXSkpOyIiIT09YS5vU2Nyb2xsLnNYJiYoYS5uVGFibGUuc3R5bGUud2lkdGg9ZShhLm5UYWJsZSkub3V0ZXJXaWR0aCgpKyJweCIsYi5zdHlsZS53aWR0aD1lKGEublRhYmxlKS5vdXRlcldpZHRoKCkrInB4IixiLnN0eWxlLm92ZXJmbG93PQoidmlzaWJsZSIpOyIiIT09YS5vU2Nyb2xsLnNZJiYoYi5zdHlsZS5oZWlnaHQ9ZShhLm5UYWJsZSkub3V0ZXJIZWlnaHQoKSsicHgiLGIuc3R5bGUub3ZlcmZsb3c9InZpc2libGUiKX0sX2ZuUHJpbnRTY3JvbGxFbmQ6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLnMuZHQsYj1hLm5UYWJsZS5wYXJlbnROb2RlOyIiIT09YS5vU2Nyb2xsLnNYJiYoYi5zdHlsZS53aWR0aD1hLm9BcGkuX2ZuU3RyaW5nVG9Dc3MoYS5vU2Nyb2xsLnNYKSxiLnN0eWxlLm92ZXJmbG93PSJhdXRvIik7IiIhPT1hLm9TY3JvbGwuc1kmJihiLnN0eWxlLmhlaWdodD1hLm9BcGkuX2ZuU3RyaW5nVG9Dc3MoYS5vU2Nyb2xsLnNZKSxiLnN0eWxlLm92ZXJmbG93PSJhdXRvIil9LF9mblByaW50U2hvd05vZGVzOmZ1bmN0aW9uKCl7Zm9yKHZhciBhPXRoaXMuZG9tLnByaW50LmhpZGRlbixiPTAsYz1hLmxlbmd0aDtiPGM7YisrKWFbYl0ubm9kZS5zdHlsZS5kaXNwbGF5PWFbYl0uZGlzcGxheTthLnNwbGljZSgwLGEubGVuZ3RoKX0sCl9mblByaW50SGlkZU5vZGVzOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYj10aGlzLmRvbS5wcmludC5oaWRkZW4sYz1hLnBhcmVudE5vZGUsZD1jLmNoaWxkTm9kZXMsZz0wLGg9ZC5sZW5ndGg7ZzxoO2crKylpZihkW2ddIT1hJiYxPT1kW2ddLm5vZGVUeXBlKXt2YXIgZj1lKGRbZ10pLmNzcygiZGlzcGxheSIpOyJub25lIiE9ZiYmKGIucHVzaCh7bm9kZTpkW2ddLGRpc3BsYXk6Zn0pLGRbZ10uc3R5bGUuZGlzcGxheT0ibm9uZSIpfSJCT0RZIiE9Yy5ub2RlTmFtZSYmdGhpcy5fZm5QcmludEhpZGVOb2RlcyhjKX19O1RhYmxlVG9vbHMuX2FJbnN0YW5jZXM9W107VGFibGVUb29scy5fYUxpc3RlbmVycz1bXTtUYWJsZVRvb2xzLmZuR2V0TWFzdGVycz1mdW5jdGlvbigpe2Zvcih2YXIgYT1bXSxiPTAsYz1UYWJsZVRvb2xzLl9hSW5zdGFuY2VzLmxlbmd0aDtiPGM7YisrKVRhYmxlVG9vbHMuX2FJbnN0YW5jZXNbYl0ucy5tYXN0ZXImJmEucHVzaChUYWJsZVRvb2xzLl9hSW5zdGFuY2VzW2JdKTsKcmV0dXJuIGF9O1RhYmxlVG9vbHMuZm5HZXRJbnN0YW5jZT1mdW5jdGlvbihhKXsib2JqZWN0IiE9dHlwZW9mIGEmJihhPWYuZ2V0RWxlbWVudEJ5SWQoYSkpO2Zvcih2YXIgYj0wLGM9VGFibGVUb29scy5fYUluc3RhbmNlcy5sZW5ndGg7YjxjO2IrKylpZihUYWJsZVRvb2xzLl9hSW5zdGFuY2VzW2JdLnMubWFzdGVyJiZUYWJsZVRvb2xzLl9hSW5zdGFuY2VzW2JdLmRvbS50YWJsZT09YSlyZXR1cm4gVGFibGVUb29scy5fYUluc3RhbmNlc1tiXTtyZXR1cm4gbnVsbH07VGFibGVUb29scy5fZm5FdmVudExpc3Rlbj1mdW5jdGlvbihhLGIsYyl7VGFibGVUb29scy5fYUxpc3RlbmVycy5wdXNoKHt0aGF0OmEsdHlwZTpiLGZuOmN9KX07VGFibGVUb29scy5fZm5FdmVudERpc3BhdGNoPWZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9VGFibGVUb29scy5fYUxpc3RlbmVycyxlPTAsZj1kLmxlbmd0aDtlPGY7ZSsrKWEuZG9tLnRhYmxlPT1kW2VdLnRoYXQuZG9tLnRhYmxlJiZkW2VdLnR5cGU9PQpiJiZkW2VdLmZuKGMpfTtUYWJsZVRvb2xzLmJ1dHRvbkJhc2U9e3NBY3Rpb246InRleHQiLHNUYWc6ImRlZmF1bHQiLHNMaW5lclRhZzoiZGVmYXVsdCIsc0J1dHRvbkNsYXNzOiJEVFRUX2J1dHRvbl90ZXh0IixzQnV0dG9uVGV4dDoiQnV0dG9uIHRleHQiLHNUaXRsZToiIixzVG9vbFRpcDoiIixzQ2hhclNldDoidXRmOCIsYkJvbUluYzohMSxzRmlsZU5hbWU6IiouY3N2IixzRmllbGRCb3VuZGFyeToiIixzRmllbGRTZXBlcmF0b3I6Ilx0IixzTmV3TGluZToiYXV0byIsbUNvbHVtbnM6ImFsbCIsYkhlYWRlcjohMCxiRm9vdGVyOiEwLGJPcGVuUm93czohMSxiU2VsZWN0ZWRPbmx5OiExLGZuTW91c2VvdmVyOm51bGwsZm5Nb3VzZW91dDpudWxsLGZuQ2xpY2s6bnVsbCxmblNlbGVjdDpudWxsLGZuQ29tcGxldGU6bnVsbCxmbkluaXQ6bnVsbCxmbkNlbGxSZW5kZXI6bnVsbH07VGFibGVUb29scy5CVVRUT05TPXtjc3Y6ZS5leHRlbmQoe30sVGFibGVUb29scy5idXR0b25CYXNlLHtzQWN0aW9uOiJmbGFzaF9zYXZlIiwKc0J1dHRvbkNsYXNzOiJEVFRUX2J1dHRvbl9jc3YiLHNCdXR0b25UZXh0OiJDU1YiLHNGaWVsZEJvdW5kYXJ5OiciJyxzRmllbGRTZXBlcmF0b3I6IiwiLGZuQ2xpY2s6ZnVuY3Rpb24oYSxiLGMpe3RoaXMuZm5TZXRUZXh0KGMsdGhpcy5mbkdldFRhYmxlRGF0YShiKSl9fSkseGxzOmUuZXh0ZW5kKHt9LFRhYmxlVG9vbHMuYnV0dG9uQmFzZSx7c0FjdGlvbjoiZmxhc2hfc2F2ZSIsc0NoYXJTZXQ6InV0ZjE2bGUiLGJCb21JbmM6ITAsc0J1dHRvbkNsYXNzOiJEVFRUX2J1dHRvbl94bHMiLHNCdXR0b25UZXh0OiJFeGNlbCIsZm5DbGljazpmdW5jdGlvbihhLGIsYyl7dGhpcy5mblNldFRleHQoYyx0aGlzLmZuR2V0VGFibGVEYXRhKGIpKX19KSxjb3B5OmUuZXh0ZW5kKHt9LFRhYmxlVG9vbHMuYnV0dG9uQmFzZSx7c0FjdGlvbjoiZmxhc2hfY29weSIsc0J1dHRvbkNsYXNzOiJEVFRUX2J1dHRvbl9jb3B5IixzQnV0dG9uVGV4dDoiQ29weSIsZm5DbGljazpmdW5jdGlvbihhLGIsYyl7dGhpcy5mblNldFRleHQoYywKdGhpcy5mbkdldFRhYmxlRGF0YShiKSl9LGZuQ29tcGxldGU6ZnVuY3Rpb24oYSxiLGMsZCl7YT1kLnNwbGl0KCJcbiIpLmxlbmd0aDthPW51bGw9PT10aGlzLnMuZHQublRGb290P2EtMTphLTI7dGhpcy5mbkluZm8oIjxoNj5UYWJsZSBjb3BpZWQ8L2g2PjxwPkNvcGllZCAiK2ErIiByb3ciKygxPT1hPyIiOiJzIikrIiB0byB0aGUgY2xpcGJvYXJkLjwvcD4iLDE1MDApfX0pLHBkZjplLmV4dGVuZCh7fSxUYWJsZVRvb2xzLmJ1dHRvbkJhc2Use3NBY3Rpb246ImZsYXNoX3BkZiIsc05ld0xpbmU6IlxuIixzRmlsZU5hbWU6IioucGRmIixzQnV0dG9uQ2xhc3M6IkRUVFRfYnV0dG9uX3BkZiIsc0J1dHRvblRleHQ6IlBERiIsc1BkZk9yaWVudGF0aW9uOiJwb3J0cmFpdCIsc1BkZlNpemU6IkE0IixzUGRmTWVzc2FnZToiIixmbkNsaWNrOmZ1bmN0aW9uKGEsYixjKXt0aGlzLmZuU2V0VGV4dChjLCJ0aXRsZToiK3RoaXMuZm5HZXRUaXRsZShiKSsiXG5tZXNzYWdlOiIrYi5zUGRmTWVzc2FnZSsKIlxuY29sV2lkdGg6Iit0aGlzLmZuQ2FsY0NvbFJhdGlvcyhiKSsiXG5vcmllbnRhdGlvbjoiK2Iuc1BkZk9yaWVudGF0aW9uKyJcbnNpemU6IitiLnNQZGZTaXplKyJcbi0tL1RhYmxlVG9vbHNPcHRzLS1cbiIrdGhpcy5mbkdldFRhYmxlRGF0YShiKSl9fSkscHJpbnQ6ZS5leHRlbmQoe30sVGFibGVUb29scy5idXR0b25CYXNlLHtzSW5mbzoiPGg2PlByaW50IHZpZXc8L2g2PjxwPlBsZWFzZSB1c2UgeW91ciBicm93c2VyJ3MgcHJpbnQgZnVuY3Rpb24gdG8gcHJpbnQgdGhpcyB0YWJsZS4gUHJlc3MgZXNjYXBlIHdoZW4gZmluaXNoZWQuIixzTWVzc2FnZTpudWxsLGJTaG93QWxsOiEwLHNUb29sVGlwOiJWaWV3IHByaW50IHZpZXciLHNCdXR0b25DbGFzczoiRFRUVF9idXR0b25fcHJpbnQiLHNCdXR0b25UZXh0OiJQcmludCIsZm5DbGljazpmdW5jdGlvbihhLGIpe3RoaXMuZm5QcmludCghMCxiKX19KSx0ZXh0OmUuZXh0ZW5kKHt9LFRhYmxlVG9vbHMuYnV0dG9uQmFzZSksc2VsZWN0OmUuZXh0ZW5kKHt9LApUYWJsZVRvb2xzLmJ1dHRvbkJhc2Use3NCdXR0b25UZXh0OiJTZWxlY3QgYnV0dG9uIixmblNlbGVjdDpmdW5jdGlvbihhKXswIT09dGhpcy5mbkdldFNlbGVjdGVkKCkubGVuZ3RoP2UoYSkucmVtb3ZlQ2xhc3ModGhpcy5jbGFzc2VzLmJ1dHRvbnMuZGlzYWJsZWQpOmUoYSkuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmJ1dHRvbnMuZGlzYWJsZWQpfSxmbkluaXQ6ZnVuY3Rpb24oYSl7ZShhKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuYnV0dG9ucy5kaXNhYmxlZCl9fSksc2VsZWN0X3NpbmdsZTplLmV4dGVuZCh7fSxUYWJsZVRvb2xzLmJ1dHRvbkJhc2Use3NCdXR0b25UZXh0OiJTZWxlY3QgYnV0dG9uIixmblNlbGVjdDpmdW5jdGlvbihhKXsxPT10aGlzLmZuR2V0U2VsZWN0ZWQoKS5sZW5ndGg/ZShhKS5yZW1vdmVDbGFzcyh0aGlzLmNsYXNzZXMuYnV0dG9ucy5kaXNhYmxlZCk6ZShhKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuYnV0dG9ucy5kaXNhYmxlZCl9LGZuSW5pdDpmdW5jdGlvbihhKXtlKGEpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5idXR0b25zLmRpc2FibGVkKX19KSwKc2VsZWN0X2FsbDplLmV4dGVuZCh7fSxUYWJsZVRvb2xzLmJ1dHRvbkJhc2Use3NCdXR0b25UZXh0OiJTZWxlY3QgYWxsIixmbkNsaWNrOmZ1bmN0aW9uKCl7dGhpcy5mblNlbGVjdEFsbCgpfSxmblNlbGVjdDpmdW5jdGlvbihhKXt0aGlzLmZuR2V0U2VsZWN0ZWQoKS5sZW5ndGg9PXRoaXMucy5kdC5mblJlY29yZHNEaXNwbGF5KCk/ZShhKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuYnV0dG9ucy5kaXNhYmxlZCk6ZShhKS5yZW1vdmVDbGFzcyh0aGlzLmNsYXNzZXMuYnV0dG9ucy5kaXNhYmxlZCl9fSksc2VsZWN0X25vbmU6ZS5leHRlbmQoe30sVGFibGVUb29scy5idXR0b25CYXNlLHtzQnV0dG9uVGV4dDoiRGVzZWxlY3QgYWxsIixmbkNsaWNrOmZ1bmN0aW9uKCl7dGhpcy5mblNlbGVjdE5vbmUoKX0sZm5TZWxlY3Q6ZnVuY3Rpb24oYSl7MCE9PXRoaXMuZm5HZXRTZWxlY3RlZCgpLmxlbmd0aD9lKGEpLnJlbW92ZUNsYXNzKHRoaXMuY2xhc3Nlcy5idXR0b25zLmRpc2FibGVkKTplKGEpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5idXR0b25zLmRpc2FibGVkKX0sCmZuSW5pdDpmdW5jdGlvbihhKXtlKGEpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5idXR0b25zLmRpc2FibGVkKX19KSxhamF4OmUuZXh0ZW5kKHt9LFRhYmxlVG9vbHMuYnV0dG9uQmFzZSx7c0FqYXhVcmw6Ii94aHIucGhwIixzQnV0dG9uVGV4dDoiQWpheCBidXR0b24iLGZuQ2xpY2s6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLmZuR2V0VGFibGVEYXRhKGIpO2UuYWpheCh7dXJsOmIuc0FqYXhVcmwsZGF0YTpbe25hbWU6InRhYmxlRGF0YSIsdmFsdWU6Y31dLHN1Y2Nlc3M6Yi5mbkFqYXhDb21wbGV0ZSxkYXRhVHlwZToianNvbiIsdHlwZToiUE9TVCIsY2FjaGU6ITEsZXJyb3I6ZnVuY3Rpb24oKXthbGVydCgiRXJyb3IgZGV0ZWN0ZWQgd2hlbiBzZW5kaW5nIHRhYmxlIGRhdGEgdG8gc2VydmVyIil9fSl9LGZuQWpheENvbXBsZXRlOmZ1bmN0aW9uKCl7YWxlcnQoIkFqYXggY29tcGxldGUiKX19KSxkaXY6ZS5leHRlbmQoe30sVGFibGVUb29scy5idXR0b25CYXNlLHtzQWN0aW9uOiJkaXYiLApzVGFnOiJkaXYiLHNCdXR0b25DbGFzczoiRFRUVF9ub25idXR0b24iLHNCdXR0b25UZXh0OiJUZXh0IGJ1dHRvbiJ9KSxjb2xsZWN0aW9uOmUuZXh0ZW5kKHt9LFRhYmxlVG9vbHMuYnV0dG9uQmFzZSx7c0FjdGlvbjoiY29sbGVjdGlvbiIsc0J1dHRvbkNsYXNzOiJEVFRUX2J1dHRvbl9jb2xsZWN0aW9uIixzQnV0dG9uVGV4dDoiQ29sbGVjdGlvbiIsZm5DbGljazpmdW5jdGlvbihhLGIpe3RoaXMuX2ZuQ29sbGVjdGlvblNob3coYSxiKX19KX07VGFibGVUb29scy5jbGFzc2VzPXtjb250YWluZXI6IkRUVFRfY29udGFpbmVyIixidXR0b25zOntub3JtYWw6IkRUVFRfYnV0dG9uIixkaXNhYmxlZDoiRFRUVF9kaXNhYmxlZCJ9LGNvbGxlY3Rpb246e2NvbnRhaW5lcjoiRFRUVF9jb2xsZWN0aW9uIixiYWNrZ3JvdW5kOiJEVFRUX2NvbGxlY3Rpb25fYmFja2dyb3VuZCIsYnV0dG9uczp7bm9ybWFsOiJEVFRUX2J1dHRvbiIsZGlzYWJsZWQ6IkRUVFRfZGlzYWJsZWQifX0sc2VsZWN0Ont0YWJsZToiRFRUVF9zZWxlY3RhYmxlIiwKcm93OiJEVFRUX3NlbGVjdGVkIn0scHJpbnQ6e2JvZHk6IkRUVFRfUHJpbnQiLGluZm86IkRUVFRfcHJpbnRfaW5mbyIsbWVzc2FnZToiRFRUVF9QcmludE1lc3NhZ2UifX07VGFibGVUb29scy5jbGFzc2VzX3RoZW1lcm9sbGVyPXtjb250YWluZXI6IkRUVFRfY29udGFpbmVyIHVpLWJ1dHRvbnNldCB1aS1idXR0b25zZXQtbXVsdGkiLGJ1dHRvbnM6e25vcm1hbDoiRFRUVF9idXR0b24gdWktYnV0dG9uIHVpLXN0YXRlLWRlZmF1bHQifSxjb2xsZWN0aW9uOntjb250YWluZXI6IkRUVFRfY29sbGVjdGlvbiB1aS1idXR0b25zZXQgdWktYnV0dG9uc2V0LW11bHRpIn19O1RhYmxlVG9vbHMuREVGQVVMVFM9e3NTd2ZQYXRoOiJtZWRpYS9zd2YvY29weV9jc3ZfeGxzX3BkZi5zd2YiLHNSb3dTZWxlY3Q6Im5vbmUiLHNTZWxlY3RlZENsYXNzOm51bGwsZm5QcmVSb3dTZWxlY3Q6bnVsbCxmblJvd1NlbGVjdGVkOm51bGwsZm5Sb3dEZXNlbGVjdGVkOm51bGwsYUJ1dHRvbnM6WyJjb3B5IiwiY3N2IiwKInhscyIsInBkZiIsInByaW50Il0sb1RhZ3M6e2NvbnRhaW5lcjoiZGl2IixidXR0b246ImEiLGxpbmVyOiJzcGFuIixjb2xsZWN0aW9uOntjb250YWluZXI6ImRpdiIsYnV0dG9uOiJhIixsaW5lcjoic3BhbiJ9fX07VGFibGVUb29scy5wcm90b3R5cGUuQ0xBU1M9IlRhYmxlVG9vbHMiO1RhYmxlVG9vbHMuVkVSU0lPTj0iMi4xLjMiO1RhYmxlVG9vbHMucHJvdG90eXBlLlZFUlNJT049VGFibGVUb29scy5WRVJTSU9OOyJmdW5jdGlvbiI9PXR5cGVvZiBlLmZuLmRhdGFUYWJsZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUuZm4uZGF0YVRhYmxlRXh0LmZuVmVyc2lvbkNoZWNrJiZlLmZuLmRhdGFUYWJsZUV4dC5mblZlcnNpb25DaGVjaygiMS45LjAiKT9lLmZuLmRhdGFUYWJsZUV4dC5hb0ZlYXR1cmVzLnB1c2goe2ZuSW5pdDpmdW5jdGlvbihhKXthPW5ldyBUYWJsZVRvb2xzKGEub0luc3RhbmNlLCJ1bmRlZmluZWQiIT10eXBlb2YgYS5vSW5pdC5vVGFibGVUb29scz9hLm9Jbml0Lm9UYWJsZVRvb2xzOgp7fSk7VGFibGVUb29scy5fYUluc3RhbmNlcy5wdXNoKGEpO3JldHVybiBhLmRvbS5jb250YWluZXJ9LGNGZWF0dXJlOiJUIixzRmVhdHVyZToiVGFibGVUb29scyJ9KTphbGVydCgiV2FybmluZzogVGFibGVUb29scyAyIHJlcXVpcmVzIERhdGFUYWJsZXMgMS45LjAgb3IgbmV3ZXIgLSB3d3cuZGF0YXRhYmxlcy5uZXQvZG93bmxvYWQiKTtlLmZuLkRhdGFUYWJsZS5UYWJsZVRvb2xzPVRhYmxlVG9vbHN9KShqUXVlcnksd2luZG93LGRvY3VtZW50KTsK]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/TableTools/media/js/ZeroClipboard.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gU2ltcGxlIFNldCBDbGlwYm9hcmQgU3lzdGVtCi8vIEF1dGhvcjogSm9zZXBoIEh1Y2thYnkKCnZhciBaZXJvQ2xpcGJvYXJkX1RhYmxlVG9vbHMgPSB7CgkKCXZlcnNpb246ICIxLjAuNC1UYWJsZVRvb2xzMiIsCgljbGllbnRzOiB7fSwgLy8gcmVnaXN0ZXJlZCB1cGxvYWQgY2xpZW50cyBvbiBwYWdlLCBpbmRleGVkIGJ5IGlkCgltb3ZpZVBhdGg6ICcnLCAvLyBVUkwgdG8gbW92aWUKCW5leHRJZDogMSwgLy8gSUQgb2YgbmV4dCBtb3ZpZQoJCgkkOiBmdW5jdGlvbih0aGluZ3kpIHsKCQkvLyBzaW1wbGUgRE9NIGxvb2t1cCB1dGlsaXR5IGZ1bmN0aW9uCgkJaWYgKHR5cGVvZih0aGluZ3kpID09ICdzdHJpbmcnKSB0aGluZ3kgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGluZ3kpOwoJCWlmICghdGhpbmd5LmFkZENsYXNzKSB7CgkJCS8vIGV4dGVuZCBlbGVtZW50IHdpdGggYSBmZXcgdXNlZnVsIG1ldGhvZHMKCQkJdGhpbmd5LmhpZGUgPSBmdW5jdGlvbigpIHsgdGhpcy5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOyB9OwoJCQl0aGluZ3kuc2hvdyA9IGZ1bmN0aW9uKCkgeyB0aGlzLnN0eWxlLmRpc3BsYXkgPSAnJzsgfTsKCQkJdGhpbmd5LmFkZENsYXNzID0gZnVuY3Rpb24obmFtZSkgeyB0aGlzLnJlbW92ZUNsYXNzKG5hbWUpOyB0aGlzLmNsYXNzTmFtZSArPSAnICcgKyBuYW1lOyB9OwoJCQl0aGluZ3kucmVtb3ZlQ2xhc3MgPSBmdW5jdGlvbihuYW1lKSB7CgkJCQl0aGlzLmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lLnJlcGxhY2UoIG5ldyBSZWdFeHAoIlxccyoiICsgbmFtZSArICJcXHMqIiksICIgIikucmVwbGFjZSgvXlxzKy8sICcnKS5yZXBsYWNlKC9ccyskLywgJycpOwoJCQl9OwoJCQl0aGluZ3kuaGFzQ2xhc3MgPSBmdW5jdGlvbihuYW1lKSB7CgkJCQlyZXR1cm4gISF0aGlzLmNsYXNzTmFtZS5tYXRjaCggbmV3IFJlZ0V4cCgiXFxzKiIgKyBuYW1lICsgIlxccyoiKSApOwoJCQl9CgkJfQoJCXJldHVybiB0aGluZ3k7Cgl9LAoJCglzZXRNb3ZpZVBhdGg6IGZ1bmN0aW9uKHBhdGgpIHsKCQkvLyBzZXQgcGF0aCB0byBaZXJvQ2xpcGJvYXJkLnN3ZgoJCXRoaXMubW92aWVQYXRoID0gcGF0aDsKCX0sCgkKCWRpc3BhdGNoOiBmdW5jdGlvbihpZCwgZXZlbnROYW1lLCBhcmdzKSB7CgkJLy8gcmVjZWl2ZSBldmVudCBmcm9tIGZsYXNoIG1vdmllLCBzZW5kIHRvIGNsaWVudAkJCgkJdmFyIGNsaWVudCA9IHRoaXMuY2xpZW50c1tpZF07CgkJaWYgKGNsaWVudCkgewoJCQljbGllbnQucmVjZWl2ZUV2ZW50KGV2ZW50TmFtZSwgYXJncyk7CgkJfQoJfSwKCQoJcmVnaXN0ZXI6IGZ1bmN0aW9uKGlkLCBjbGllbnQpIHsKCQkvLyByZWdpc3RlciBuZXcgY2xpZW50IHRvIHJlY2VpdmUgZXZlbnRzCgkJdGhpcy5jbGllbnRzW2lkXSA9IGNsaWVudDsKCX0sCgkKCWdldERPTU9iamVjdFBvc2l0aW9uOiBmdW5jdGlvbihvYmopIHsKCQkvLyBnZXQgYWJzb2x1dGUgY29vcmRpbmF0ZXMgZm9yIGRvbSBlbGVtZW50CgkJdmFyIGluZm8gPSB7CgkJCWxlZnQ6IDAsIAoJCQl0b3A6IDAsIAoJCQl3aWR0aDogb2JqLndpZHRoID8gb2JqLndpZHRoIDogb2JqLm9mZnNldFdpZHRoLCAKCQkJaGVpZ2h0OiBvYmouaGVpZ2h0ID8gb2JqLmhlaWdodCA6IG9iai5vZmZzZXRIZWlnaHQKCQl9OwoJCQoJCWlmICggb2JqLnN0eWxlLndpZHRoICE9ICIiICkKCQkJaW5mby53aWR0aCA9IG9iai5zdHlsZS53aWR0aC5yZXBsYWNlKCJweCIsIiIpOwoJCQoJCWlmICggb2JqLnN0eWxlLmhlaWdodCAhPSAiIiApCgkJCWluZm8uaGVpZ2h0ID0gb2JqLnN0eWxlLmhlaWdodC5yZXBsYWNlKCJweCIsIiIpOwoKCQl3aGlsZSAob2JqKSB7CgkJCWluZm8ubGVmdCArPSBvYmoub2Zmc2V0TGVmdDsKCQkJaW5mby50b3AgKz0gb2JqLm9mZnNldFRvcDsKCQkJb2JqID0gb2JqLm9mZnNldFBhcmVudDsKCQl9CgoJCXJldHVybiBpbmZvOwoJfSwKCQoJQ2xpZW50OiBmdW5jdGlvbihlbGVtKSB7CgkJLy8gY29uc3RydWN0b3IgZm9yIG5ldyBzaW1wbGUgdXBsb2FkIGNsaWVudAoJCXRoaXMuaGFuZGxlcnMgPSB7fTsKCQkKCQkvLyB1bmlxdWUgSUQKCQl0aGlzLmlkID0gWmVyb0NsaXBib2FyZF9UYWJsZVRvb2xzLm5leHRJZCsrOwoJCXRoaXMubW92aWVJZCA9ICdaZXJvQ2xpcGJvYXJkX1RhYmxlVG9vbHNNb3ZpZV8nICsgdGhpcy5pZDsKCQkKCQkvLyByZWdpc3RlciBjbGllbnQgd2l0aCBzaW5nbGV0b24gdG8gcmVjZWl2ZSBmbGFzaCBldmVudHMKCQlaZXJvQ2xpcGJvYXJkX1RhYmxlVG9vbHMucmVnaXN0ZXIodGhpcy5pZCwgdGhpcyk7CgkJCgkJLy8gY3JlYXRlIG1vdmllCgkJaWYgKGVsZW0pIHRoaXMuZ2x1ZShlbGVtKTsKCX0KfTsKClplcm9DbGlwYm9hcmRfVGFibGVUb29scy5DbGllbnQucHJvdG90eXBlID0gewoJCglpZDogMCwgLy8gdW5pcXVlIElEIGZvciB1cwoJcmVhZHk6IGZhbHNlLCAvLyB3aGV0aGVyIG1vdmllIGlzIHJlYWR5IHRvIHJlY2VpdmUgZXZlbnRzIG9yIG5vdAoJbW92aWU6IG51bGwsIC8vIHJlZmVyZW5jZSB0byBtb3ZpZSBvYmplY3QKCWNsaXBUZXh0OiAnJywgLy8gdGV4dCB0byBjb3B5IHRvIGNsaXBib2FyZAoJZmlsZU5hbWU6ICcnLCAvLyBkZWZhdWx0IGZpbGUgc2F2ZSBuYW1lCglhY3Rpb246ICdjb3B5JywgLy8gYWN0aW9uIHRvIHBlcmZvcm0KCWhhbmRDdXJzb3JFbmFibGVkOiB0cnVlLCAvLyB3aGV0aGVyIHRvIHNob3cgaGFuZCBjdXJzb3IsIG9yIGRlZmF1bHQgcG9pbnRlciBjdXJzb3IKCWNzc0VmZmVjdHM6IHRydWUsIC8vIGVuYWJsZSBDU1MgbW91c2UgZWZmZWN0cyBvbiBkb20gY29udGFpbmVyCgloYW5kbGVyczogbnVsbCwgLy8gdXNlciBldmVudCBoYW5kbGVycwoJc2l6ZWQ6IGZhbHNlLAoJCglnbHVlOiBmdW5jdGlvbihlbGVtLCB0aXRsZSkgewoJCS8vIGdsdWUgdG8gRE9NIGVsZW1lbnQKCQkvLyBlbGVtIGNhbiBiZSBJRCBvciBhY3R1YWwgRE9NIGVsZW1lbnQgb2JqZWN0CgkJdGhpcy5kb21FbGVtZW50ID0gWmVyb0NsaXBib2FyZF9UYWJsZVRvb2xzLiQoZWxlbSk7CgkJCgkJLy8gZmxvYXQganVzdCBhYm92ZSBvYmplY3QsIG9yIHpJbmRleCA5OSBpZiBkb20gZWxlbWVudCBpc24ndCBzZXQKCQl2YXIgekluZGV4ID0gOTk7CgkJaWYgKHRoaXMuZG9tRWxlbWVudC5zdHlsZS56SW5kZXgpIHsKCQkJekluZGV4ID0gcGFyc2VJbnQodGhpcy5kb21FbGVtZW50LnN0eWxlLnpJbmRleCkgKyAxOwoJCX0KCQkKCQkvLyBmaW5kIFgvWSBwb3NpdGlvbiBvZiBkb21FbGVtZW50CgkJdmFyIGJveCA9IFplcm9DbGlwYm9hcmRfVGFibGVUb29scy5nZXRET01PYmplY3RQb3NpdGlvbih0aGlzLmRvbUVsZW1lbnQpOwoJCQoJCS8vIGNyZWF0ZSBmbG9hdGluZyBESVYgYWJvdmUgZWxlbWVudAoJCXRoaXMuZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CgkJdmFyIHN0eWxlID0gdGhpcy5kaXYuc3R5bGU7CgkJc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnOwoJCXN0eWxlLmxlZnQgPSAnMHB4JzsKCQlzdHlsZS50b3AgPSAnMHB4JzsKCQlzdHlsZS53aWR0aCA9IChib3gud2lkdGgpICsgJ3B4JzsKCQlzdHlsZS5oZWlnaHQgPSBib3guaGVpZ2h0ICsgJ3B4JzsKCQlzdHlsZS56SW5kZXggPSB6SW5kZXg7CgkJCgkJaWYgKCB0eXBlb2YgdGl0bGUgIT0gInVuZGVmaW5lZCIgJiYgdGl0bGUgIT0gIiIgKSB7CgkJCXRoaXMuZGl2LnRpdGxlID0gdGl0bGU7CgkJfQoJCWlmICggYm94LndpZHRoICE9IDAgJiYgYm94LmhlaWdodCAhPSAwICkgewoJCQl0aGlzLnNpemVkID0gdHJ1ZTsKCQl9CgkJCgkJLy8gc3R5bGUuYmFja2dyb3VuZENvbG9yID0gJyNmMDAnOyAvLyBkZWJ1ZwoJCWlmICggdGhpcy5kb21FbGVtZW50ICkgewoJCQl0aGlzLmRvbUVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5kaXYpOwoJCQl0aGlzLmRpdi5pbm5lckhUTUwgPSB0aGlzLmdldEhUTUwoIGJveC53aWR0aCwgYm94LmhlaWdodCApOwoJCX0KCX0sCgkKCXBvc2l0aW9uRWxlbWVudDogZnVuY3Rpb24oKSB7CgkJdmFyIGJveCA9IFplcm9DbGlwYm9hcmRfVGFibGVUb29scy5nZXRET01PYmplY3RQb3NpdGlvbih0aGlzLmRvbUVsZW1lbnQpOwoJCXZhciBzdHlsZSA9IHRoaXMuZGl2LnN0eWxlOwoJCQoJCXN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJzsKCQkvL3N0eWxlLmxlZnQgPSAodGhpcy5kb21FbGVtZW50Lm9mZnNldExlZnQpKydweCc7CgkJLy9zdHlsZS50b3AgPSB0aGlzLmRvbUVsZW1lbnQub2Zmc2V0VG9wKydweCc7CgkJc3R5bGUud2lkdGggPSBib3gud2lkdGggKyAncHgnOwoJCXN0eWxlLmhlaWdodCA9IGJveC5oZWlnaHQgKyAncHgnOwoJCQoJCWlmICggYm94LndpZHRoICE9IDAgJiYgYm94LmhlaWdodCAhPSAwICkgewoJCQl0aGlzLnNpemVkID0gdHJ1ZTsKCQl9IGVsc2UgewoJCQlyZXR1cm47CgkJfQoJCQoJCXZhciBmbGFzaCA9IHRoaXMuZGl2LmNoaWxkTm9kZXNbMF07CgkJZmxhc2gud2lkdGggPSBib3gud2lkdGg7CgkJZmxhc2guaGVpZ2h0ID0gYm94LmhlaWdodDsKCX0sCgkKCWdldEhUTUw6IGZ1bmN0aW9uKHdpZHRoLCBoZWlnaHQpIHsKCQkvLyByZXR1cm4gSFRNTCBmb3IgbW92aWUKCQl2YXIgaHRtbCA9ICcnOwoJCXZhciBmbGFzaHZhcnMgPSAnaWQ9JyArIHRoaXMuaWQgKyAKCQkJJyZ3aWR0aD0nICsgd2lkdGggKyAKCQkJJyZoZWlnaHQ9JyArIGhlaWdodDsKCQkJCgkJaWYgKG5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL01TSUUvKSkgewoJCQkvLyBJRSBnZXRzIGFuIE9CSkVDVCB0YWcKCQkJdmFyIHByb3RvY29sID0gbG9jYXRpb24uaHJlZi5tYXRjaCgvXmh0dHBzL2kpID8gJ2h0dHBzOi8vJyA6ICdodHRwOi8vJzsKCQkJaHRtbCArPSAnPG9iamVjdCBjbGFzc2lkPSJjbHNpZDpEMjdDREI2RS1BRTZELTExY2YtOTZCOC00NDQ1NTM1NDAwMDAiIGNvZGViYXNlPSInK3Byb3RvY29sKydkb3dubG9hZC5tYWNyb21lZGlhLmNvbS9wdWIvc2hvY2t3YXZlL2NhYnMvZmxhc2gvc3dmbGFzaC5jYWIjdmVyc2lvbj0xMCwwLDAsMCIgd2lkdGg9Iicrd2lkdGgrJyIgaGVpZ2h0PSInK2hlaWdodCsnIiBpZD0iJyt0aGlzLm1vdmllSWQrJyIgYWxpZ249Im1pZGRsZSI+PHBhcmFtIG5hbWU9ImFsbG93U2NyaXB0QWNjZXNzIiB2YWx1ZT0iYWx3YXlzIiAvPjxwYXJhbSBuYW1lPSJhbGxvd0Z1bGxTY3JlZW4iIHZhbHVlPSJmYWxzZSIgLz48cGFyYW0gbmFtZT0ibW92aWUiIHZhbHVlPSInK1plcm9DbGlwYm9hcmRfVGFibGVUb29scy5tb3ZpZVBhdGgrJyIgLz48cGFyYW0gbmFtZT0ibG9vcCIgdmFsdWU9ImZhbHNlIiAvPjxwYXJhbSBuYW1lPSJtZW51IiB2YWx1ZT0iZmFsc2UiIC8+PHBhcmFtIG5hbWU9InF1YWxpdHkiIHZhbHVlPSJiZXN0IiAvPjxwYXJhbSBuYW1lPSJiZ2NvbG9yIiB2YWx1ZT0iI2ZmZmZmZiIgLz48cGFyYW0gbmFtZT0iZmxhc2h2YXJzIiB2YWx1ZT0iJytmbGFzaHZhcnMrJyIvPjxwYXJhbSBuYW1lPSJ3bW9kZSIgdmFsdWU9InRyYW5zcGFyZW50Ii8+PC9vYmplY3Q+JzsKCQl9CgkJZWxzZSB7CgkJCS8vIGFsbCBvdGhlciBicm93c2VycyBnZXQgYW4gRU1CRUQgdGFnCgkJCWh0bWwgKz0gJzxlbWJlZCBpZD0iJyt0aGlzLm1vdmllSWQrJyIgc3JjPSInK1plcm9DbGlwYm9hcmRfVGFibGVUb29scy5tb3ZpZVBhdGgrJyIgbG9vcD0iZmFsc2UiIG1lbnU9ImZhbHNlIiBxdWFsaXR5PSJiZXN0IiBiZ2NvbG9yPSIjZmZmZmZmIiB3aWR0aD0iJyt3aWR0aCsnIiBoZWlnaHQ9IicraGVpZ2h0KyciIG5hbWU9IicrdGhpcy5tb3ZpZUlkKyciIGFsaWduPSJtaWRkbGUiIGFsbG93U2NyaXB0QWNjZXNzPSJhbHdheXMiIGFsbG93RnVsbFNjcmVlbj0iZmFsc2UiIHR5cGU9ImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoIiBwbHVnaW5zcGFnZT0iaHR0cDovL3d3dy5tYWNyb21lZGlhLmNvbS9nby9nZXRmbGFzaHBsYXllciIgZmxhc2h2YXJzPSInK2ZsYXNodmFycysnIiB3bW9kZT0idHJhbnNwYXJlbnQiIC8+JzsKCQl9CgkJcmV0dXJuIGh0bWw7Cgl9LAoJCgloaWRlOiBmdW5jdGlvbigpIHsKCQkvLyB0ZW1wb3JhcmlseSBoaWRlIGZsb2F0ZXIgb2Zmc2NyZWVuCgkJaWYgKHRoaXMuZGl2KSB7CgkJCXRoaXMuZGl2LnN0eWxlLmxlZnQgPSAnLTIwMDBweCc7CgkJfQoJfSwKCQoJc2hvdzogZnVuY3Rpb24oKSB7CgkJLy8gc2hvdyBvdXJzZWx2ZXMgYWZ0ZXIgYSBjYWxsIHRvIGhpZGUoKQoJCXRoaXMucmVwb3NpdGlvbigpOwoJfSwKCQoJZGVzdHJveTogZnVuY3Rpb24oKSB7CgkJLy8gZGVzdHJveSBjb250cm9sIGFuZCBmbG9hdGVyCgkJaWYgKHRoaXMuZG9tRWxlbWVudCAmJiB0aGlzLmRpdikgewoJCQl0aGlzLmhpZGUoKTsKCQkJdGhpcy5kaXYuaW5uZXJIVE1MID0gJyc7CgkJCQoJCQl2YXIgYm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5JylbMF07CgkJCXRyeSB7IGJvZHkucmVtb3ZlQ2hpbGQoIHRoaXMuZGl2ICk7IH0gY2F0Y2goZSkgezt9CgkJCQoJCQl0aGlzLmRvbUVsZW1lbnQgPSBudWxsOwoJCQl0aGlzLmRpdiA9IG51bGw7CgkJfQoJfSwKCQoJcmVwb3NpdGlvbjogZnVuY3Rpb24oZWxlbSkgewoJCS8vIHJlcG9zaXRpb24gb3VyIGZsb2F0aW5nIGRpdiwgb3B0aW9uYWxseSB0byBuZXcgY29udGFpbmVyCgkJLy8gd2FybmluZzogY29udGFpbmVyIENBTk5PVCBjaGFuZ2Ugc2l6ZSwgb25seSBwb3NpdGlvbgoJCWlmIChlbGVtKSB7CgkJCXRoaXMuZG9tRWxlbWVudCA9IFplcm9DbGlwYm9hcmRfVGFibGVUb29scy4kKGVsZW0pOwoJCQlpZiAoIXRoaXMuZG9tRWxlbWVudCkgdGhpcy5oaWRlKCk7CgkJfQoJCQoJCWlmICh0aGlzLmRvbUVsZW1lbnQgJiYgdGhpcy5kaXYpIHsKCQkJdmFyIGJveCA9IFplcm9DbGlwYm9hcmRfVGFibGVUb29scy5nZXRET01PYmplY3RQb3NpdGlvbih0aGlzLmRvbUVsZW1lbnQpOwoJCQl2YXIgc3R5bGUgPSB0aGlzLmRpdi5zdHlsZTsKCQkJc3R5bGUubGVmdCA9ICcnICsgYm94LmxlZnQgKyAncHgnOwoJCQlzdHlsZS50b3AgPSAnJyArIGJveC50b3AgKyAncHgnOwoJCX0KCX0sCgkKCWNsZWFyVGV4dDogZnVuY3Rpb24oKSB7CgkJLy8gY2xlYXIgdGhlIHRleHQgdG8gYmUgY29weSAvIHNhdmVkCgkJdGhpcy5jbGlwVGV4dCA9ICcnOwoJCWlmICh0aGlzLnJlYWR5KSB0aGlzLm1vdmllLmNsZWFyVGV4dCgpOwoJfSwKCQoJYXBwZW5kVGV4dDogZnVuY3Rpb24obmV3VGV4dCkgewoJCS8vIGFwcGVuZCB0ZXh0IHRvIHRoYXQgd2hpY2ggaXMgdG8gYmUgY29waWVkIC8gc2F2ZWQKCQl0aGlzLmNsaXBUZXh0ICs9IG5ld1RleHQ7CgkJaWYgKHRoaXMucmVhZHkpIHsgdGhpcy5tb3ZpZS5hcHBlbmRUZXh0KG5ld1RleHQpIDt9Cgl9LAoJCglzZXRUZXh0OiBmdW5jdGlvbihuZXdUZXh0KSB7CgkJLy8gc2V0IHRleHQgdG8gYmUgY29waWVkIHRvIGJlIGNvcGllZCAvIHNhdmVkCgkJdGhpcy5jbGlwVGV4dCA9IG5ld1RleHQ7CgkJaWYgKHRoaXMucmVhZHkpIHsgdGhpcy5tb3ZpZS5zZXRUZXh0KG5ld1RleHQpIDt9Cgl9LAoJCglzZXRDaGFyU2V0OiBmdW5jdGlvbihjaGFyU2V0KSB7CgkJLy8gc2V0IHRoZSBjaGFyYWN0ZXIgc2V0IChVVEYxNkxFIG9yIFVURjgpCgkJdGhpcy5jaGFyU2V0ID0gY2hhclNldDsKCQlpZiAodGhpcy5yZWFkeSkgeyB0aGlzLm1vdmllLnNldENoYXJTZXQoY2hhclNldCkgO30KCX0sCgkKCXNldEJvbUluYzogZnVuY3Rpb24oYm9tSW5jKSB7CgkJLy8gc2V0IGlmIHRoZSBCT00gc2hvdWxkIGJlIGluY2x1ZGVkIG9yIG5vdAoJCXRoaXMuaW5jQm9tID0gYm9tSW5jOwoJCWlmICh0aGlzLnJlYWR5KSB7IHRoaXMubW92aWUuc2V0Qm9tSW5jKGJvbUluYykgO30KCX0sCgkKCXNldEZpbGVOYW1lOiBmdW5jdGlvbihuZXdUZXh0KSB7CgkJLy8gc2V0IHRoZSBmaWxlIG5hbWUKCQl0aGlzLmZpbGVOYW1lID0gbmV3VGV4dDsKCQlpZiAodGhpcy5yZWFkeSkgdGhpcy5tb3ZpZS5zZXRGaWxlTmFtZShuZXdUZXh0KTsKCX0sCgkKCXNldEFjdGlvbjogZnVuY3Rpb24obmV3VGV4dCkgewoJCS8vIHNldCBhY3Rpb24gKHNhdmUgb3IgY29weSkKCQl0aGlzLmFjdGlvbiA9IG5ld1RleHQ7CgkJaWYgKHRoaXMucmVhZHkpIHRoaXMubW92aWUuc2V0QWN0aW9uKG5ld1RleHQpOwoJfSwKCQoJYWRkRXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24oZXZlbnROYW1lLCBmdW5jKSB7CgkJLy8gYWRkIHVzZXIgZXZlbnQgbGlzdGVuZXIgZm9yIGV2ZW50CgkJLy8gZXZlbnQgdHlwZXM6IGxvYWQsIHF1ZXVlU3RhcnQsIGZpbGVTdGFydCwgZmlsZUNvbXBsZXRlLCBxdWV1ZUNvbXBsZXRlLCBwcm9ncmVzcywgZXJyb3IsIGNhbmNlbAoJCWV2ZW50TmFtZSA9IGV2ZW50TmFtZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXm9uLywgJycpOwoJCWlmICghdGhpcy5oYW5kbGVyc1tldmVudE5hbWVdKSB0aGlzLmhhbmRsZXJzW2V2ZW50TmFtZV0gPSBbXTsKCQl0aGlzLmhhbmRsZXJzW2V2ZW50TmFtZV0ucHVzaChmdW5jKTsKCX0sCgkKCXNldEhhbmRDdXJzb3I6IGZ1bmN0aW9uKGVuYWJsZWQpIHsKCQkvLyBlbmFibGUgaGFuZCBjdXJzb3IgKHRydWUpLCBvciBkZWZhdWx0IGFycm93IGN1cnNvciAoZmFsc2UpCgkJdGhpcy5oYW5kQ3Vyc29yRW5hYmxlZCA9IGVuYWJsZWQ7CgkJaWYgKHRoaXMucmVhZHkpIHRoaXMubW92aWUuc2V0SGFuZEN1cnNvcihlbmFibGVkKTsKCX0sCgkKCXNldENTU0VmZmVjdHM6IGZ1bmN0aW9uKGVuYWJsZWQpIHsKCQkvLyBlbmFibGUgb3IgZGlzYWJsZSBDU1MgZWZmZWN0cyBvbiBET00gY29udGFpbmVyCgkJdGhpcy5jc3NFZmZlY3RzID0gISFlbmFibGVkOwoJfSwKCQoJcmVjZWl2ZUV2ZW50OiBmdW5jdGlvbihldmVudE5hbWUsIGFyZ3MpIHsKCQkvLyByZWNlaXZlIGV2ZW50IGZyb20gZmxhc2gKCQlldmVudE5hbWUgPSBldmVudE5hbWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL15vbi8sICcnKTsKCQkKCQkvLyBzcGVjaWFsIGJlaGF2aW9yIGZvciBjZXJ0YWluIGV2ZW50cwoJCXN3aXRjaCAoZXZlbnROYW1lKSB7CgkJCWNhc2UgJ2xvYWQnOgoJCQkJLy8gbW92aWUgY2xhaW1zIGl0IGlzIHJlYWR5LCBidXQgaW4gSUUgdGhpcyBpc24ndCBhbHdheXMgdGhlIGNhc2UuLi4KCQkJCS8vIGJ1ZyBmaXg6IENhbm5vdCBleHRlbmQgRU1CRUQgRE9NIGVsZW1lbnRzIGluIEZpcmVmb3gsIG11c3QgdXNlIHRyYWRpdGlvbmFsIGZ1bmN0aW9uCgkJCQl0aGlzLm1vdmllID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5tb3ZpZUlkKTsKCQkJCWlmICghdGhpcy5tb3ZpZSkgewoJCQkJCXZhciBzZWxmID0gdGhpczsKCQkJCQlzZXRUaW1lb3V0KCBmdW5jdGlvbigpIHsgc2VsZi5yZWNlaXZlRXZlbnQoJ2xvYWQnLCBudWxsKTsgfSwgMSApOwoJCQkJCXJldHVybjsKCQkJCX0KCQkJCQoJCQkJLy8gZmlyZWZveCBvbiBwYyBuZWVkcyBhICJraWNrIiBpbiBvcmRlciB0byBzZXQgdGhlc2UgaW4gY2VydGFpbiBjYXNlcwoJCQkJaWYgKCF0aGlzLnJlYWR5ICYmIG5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL0ZpcmVmb3gvKSAmJiBuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9XaW5kb3dzLykpIHsKCQkJCQl2YXIgc2VsZiA9IHRoaXM7CgkJCQkJc2V0VGltZW91dCggZnVuY3Rpb24oKSB7IHNlbGYucmVjZWl2ZUV2ZW50KCdsb2FkJywgbnVsbCk7IH0sIDEwMCApOwoJCQkJCXRoaXMucmVhZHkgPSB0cnVlOwoJCQkJCXJldHVybjsKCQkJCX0KCQkJCQoJCQkJdGhpcy5yZWFkeSA9IHRydWU7CgkJCQl0aGlzLm1vdmllLmNsZWFyVGV4dCgpOwoJCQkJdGhpcy5tb3ZpZS5hcHBlbmRUZXh0KCB0aGlzLmNsaXBUZXh0ICk7CgkJCQl0aGlzLm1vdmllLnNldEZpbGVOYW1lKCB0aGlzLmZpbGVOYW1lICk7CgkJCQl0aGlzLm1vdmllLnNldEFjdGlvbiggdGhpcy5hY3Rpb24gKTsKCQkJCXRoaXMubW92aWUuc2V0Q2hhclNldCggdGhpcy5jaGFyU2V0ICk7CgkJCQl0aGlzLm1vdmllLnNldEJvbUluYyggdGhpcy5pbmNCb20gKTsKCQkJCXRoaXMubW92aWUuc2V0SGFuZEN1cnNvciggdGhpcy5oYW5kQ3Vyc29yRW5hYmxlZCApOwoJCQkJYnJlYWs7CgkJCQoJCQljYXNlICdtb3VzZW92ZXInOgoJCQkJaWYgKHRoaXMuZG9tRWxlbWVudCAmJiB0aGlzLmNzc0VmZmVjdHMpIHsKCQkJCQkvL3RoaXMuZG9tRWxlbWVudC5hZGRDbGFzcygnaG92ZXInKTsKCQkJCQlpZiAodGhpcy5yZWNvdmVyQWN0aXZlKSB0aGlzLmRvbUVsZW1lbnQuYWRkQ2xhc3MoJ2FjdGl2ZScpOwoJCQkJfQoJCQkJYnJlYWs7CgkJCQoJCQljYXNlICdtb3VzZW91dCc6CgkJCQlpZiAodGhpcy5kb21FbGVtZW50ICYmIHRoaXMuY3NzRWZmZWN0cykgewoJCQkJCXRoaXMucmVjb3ZlckFjdGl2ZSA9IGZhbHNlOwoJCQkJCWlmICh0aGlzLmRvbUVsZW1lbnQuaGFzQ2xhc3MoJ2FjdGl2ZScpKSB7CgkJCQkJCXRoaXMuZG9tRWxlbWVudC5yZW1vdmVDbGFzcygnYWN0aXZlJyk7CgkJCQkJCXRoaXMucmVjb3ZlckFjdGl2ZSA9IHRydWU7CgkJCQkJfQoJCQkJCS8vdGhpcy5kb21FbGVtZW50LnJlbW92ZUNsYXNzKCdob3ZlcicpOwoJCQkJfQoJCQkJYnJlYWs7CgkJCQoJCQljYXNlICdtb3VzZWRvd24nOgoJCQkJaWYgKHRoaXMuZG9tRWxlbWVudCAmJiB0aGlzLmNzc0VmZmVjdHMpIHsKCQkJCQl0aGlzLmRvbUVsZW1lbnQuYWRkQ2xhc3MoJ2FjdGl2ZScpOwoJCQkJfQoJCQkJYnJlYWs7CgkJCQoJCQljYXNlICdtb3VzZXVwJzoKCQkJCWlmICh0aGlzLmRvbUVsZW1lbnQgJiYgdGhpcy5jc3NFZmZlY3RzKSB7CgkJCQkJdGhpcy5kb21FbGVtZW50LnJlbW92ZUNsYXNzKCdhY3RpdmUnKTsKCQkJCQl0aGlzLnJlY292ZXJBY3RpdmUgPSBmYWxzZTsKCQkJCX0KCQkJCWJyZWFrOwoJCX0gLy8gc3dpdGNoIGV2ZW50TmFtZQoJCQoJCWlmICh0aGlzLmhhbmRsZXJzW2V2ZW50TmFtZV0pIHsKCQkJZm9yICh2YXIgaWR4ID0gMCwgbGVuID0gdGhpcy5oYW5kbGVyc1tldmVudE5hbWVdLmxlbmd0aDsgaWR4IDwgbGVuOyBpZHgrKykgewoJCQkJdmFyIGZ1bmMgPSB0aGlzLmhhbmRsZXJzW2V2ZW50TmFtZV1baWR4XTsKCQkJCgkJCQlpZiAodHlwZW9mKGZ1bmMpID09ICdmdW5jdGlvbicpIHsKCQkJCQkvLyBhY3R1YWwgZnVuY3Rpb24gcmVmZXJlbmNlCgkJCQkJZnVuYyh0aGlzLCBhcmdzKTsKCQkJCX0KCQkJCWVsc2UgaWYgKCh0eXBlb2YoZnVuYykgPT0gJ29iamVjdCcpICYmIChmdW5jLmxlbmd0aCA9PSAyKSkgewoJCQkJCS8vIFBIUCBzdHlsZSBvYmplY3QgKyBtZXRob2QsIGkuZS4gW215T2JqZWN0LCAnbXlNZXRob2QnXQoJCQkJCWZ1bmNbMF1bIGZ1bmNbMV0gXSh0aGlzLCBhcmdzKTsKCQkJCX0KCQkJCWVsc2UgaWYgKHR5cGVvZihmdW5jKSA9PSAnc3RyaW5nJykgewoJCQkJCS8vIG5hbWUgb2YgZnVuY3Rpb24KCQkJCQl3aW5kb3dbZnVuY10odGhpcywgYXJncyk7CgkJCQl9CgkJCX0gLy8gZm9yZWFjaCBldmVudCBoYW5kbGVyIGRlZmluZWQKCQl9IC8vIHVzZXIgZGVmaW5lZCBoYW5kbGVyIGZvciBldmVudAoJfQoJCn07Cg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/TableTools/media/swf/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/TableTools/media/swf/copy_csv_xls.swf</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/extras/TableTools/media/swf/copy_csv_xls_pdf.swf</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/language/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/language/fr_FR.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ewogICJzRW1wdHlUYWJsZSI6ICAgICAiQXVjdW5lIGRvbm7DqWUgZGlzcG9uaWJsZSIsCiAgInNJbmZvIjogICAgICAgICAgICJBZmZpY2hhZ2UgZGUgbCcmZWFjdXRlO2xlbWVudCBfU1RBUlRfICZhZ3JhdmU7IF9FTkRfIHN1ciBfVE9UQUxfICZlYWN1dGU7bCZlYWN1dGU7bWVudHMiLAogICJzSW5mb0VtcHR5IjogICAgICAiQWZmaWNoYWdlIGRlIGwnJmVhY3V0ZTtsZW1lbnQgMCAmYWdyYXZlOyAwIHN1ciAwICZlYWN1dGU7bCZlYWN1dGU7bWVudHMiLAogICJzSW5mb0ZpbHRlcmVkIjogICAiKGZpbHRyJmVhY3V0ZTsgZGUgX01BWF8gJmVhY3V0ZTtsJmVhY3V0ZTttZW50cyBhdSB0b3RhbCkiLAogICJzSW5mb1Bvc3RGaXgiOiAgICAiIiwKICAic0luZm9UaG91c2FuZHMiOiAgIiwiLAogICJzTGVuZ3RoTWVudSI6ICAgICAiQWZmaWNoZXIgX01FTlVfICZlYWN1dGU7bCZlYWN1dGU7bWVudHMiLAogICJzTG9hZGluZ1JlY29yZHMiOiAiQ2hhcmdlbWVudCBlbiBjb3Vycy4uLiIsCiAgInNQcm9jZXNzaW5nIjogICAgICJUcmFpdGVtZW50IGVuIGNvdXJzLi4uIiwKICAic1NlYXJjaCI6ICAgICAgICAgIlJlY2hlcmNoZSBnbG9iYWxlJm5ic3A7OiIsCiAgInNaZXJvUmVjb3JkcyI6ICAgICJBdWN1biAmZWFjdXRlO2wmZWFjdXRlO21lbnQgJmFncmF2ZTsgYWZmaWNoZXIiLAogICJvUGFnaW5hdGUiOiB7CiAgICAic0ZpcnN0IjogICAgICAiUHJlbWllciIsCiAgICAic1ByZXZpb3VzIjogICAiUHImZWFjdXRlO2MmZWFjdXRlO2RlbnQiLAogICAgInNOZXh0IjogICAgICAgIlN1aXZhbnQiLAogICAgInNMYXN0IjogICAgICAgIkRlcm5pZXIiCiAgfSwKICAib0FyaWEiOiB7CiAgICAic1NvcnRBc2NlbmRpbmciOiAgIjogYWN0aXZlciBwb3VyIHRyaWVyIGxhIGNvbG9ubmUgcGFyIG9yZHJlIGNyb2lzc2FudCIsCiAgICAic1NvcnREZXNjZW5kaW5nIjogIjogYWN0aXZlciBwb3VyIHRyaWVyIGxhIGNvbG9ubmUgcGFyIG9yZHJlIGTDqWNyb2lzc2FudCIKICB9Cn0=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/language/us_US.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ewogICAgInNFbXB0eVRhYmxlIjogICAgICJObyBkYXRhIGF2YWlsYWJsZSBpbiB0YWJsZSIsCiAgICAic0luZm8iOiAgICAgICAgICAgIlNob3dpbmcgX1NUQVJUXyB0byBfRU5EXyBvZiBfVE9UQUxfIGVudHJpZXMiLAogICAgInNJbmZvRW1wdHkiOiAgICAgICJTaG93aW5nIDAgdG8gMCBvZiAwIGVudHJpZXMiLAogICAgInNJbmZvRmlsdGVyZWQiOiAgICIoZmlsdGVyZWQgZnJvbSBfTUFYXyB0b3RhbCBlbnRyaWVzKSIsCiAgICAic0luZm9Qb3N0Rml4IjogICAgIiIsCiAgICAic0luZm9UaG91c2FuZHMiOiAgIiwiLAogICAgInNMZW5ndGhNZW51IjogICAgICJTaG93IF9NRU5VXyBlbnRyaWVzIiwKICAgICJzTG9hZGluZ1JlY29yZHMiOiAiTG9hZGluZy4uLiIsCiAgICAic1Byb2Nlc3NpbmciOiAgICAgIlByb2Nlc3NpbmcuLi4iLAogICAgInNTZWFyY2giOiAgICAgICAgICJTZWFyY2g6IiwKICAgICJzWmVyb1JlY29yZHMiOiAgICAiTm8gbWF0Y2hpbmcgcmVjb3JkcyBmb3VuZCIsCiAgICAib1BhZ2luYXRlIjogewogICAgICAgICJzRmlyc3QiOiAgICAiRmlyc3QiLAogICAgICAgICJzTGFzdCI6ICAgICAiTGFzdCIsCiAgICAgICAgInNOZXh0IjogICAgICJOZXh0IiwKICAgICAgICAic1ByZXZpb3VzIjogIlByZXZpb3VzIgogICAgfSwKICAgICJvQXJpYSI6IHsKICAgICAgICAic1NvcnRBc2NlbmRpbmciOiAgIjogYWN0aXZhdGUgdG8gc29ydCBjb2x1bW4gYXNjZW5kaW5nIiwKICAgICAgICAic1NvcnREZXNjZW5kaW5nIjogIjogYWN0aXZhdGUgdG8gc29ydCBjb2x1bW4gZGVzY2VuZGluZyIKICAgIH0KfQ==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/css/demo_page.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ci8qICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqCiAqIEdlbmVyYWwgcGFnZSBzZXR1cAogKi8KI2R0X2V4YW1wbGUgewoJZm9udDogODAlLzEuNDVlbSAiTHVjaWRhIEdyYW5kZSIsIFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7CgltYXJnaW46IDA7CglwYWRkaW5nOiAwOwoJY29sb3I6ICMzMzM7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwp9CgoKI2R0X2V4YW1wbGUgI2NvbnRhaW5lciB7Cgl3aWR0aDogODAwcHg7CgltYXJnaW46IDMwcHggYXV0bzsKCXBhZGRpbmc6IDA7Cn0KCgojZHRfZXhhbXBsZSAjZm9vdGVyIHsKCW1hcmdpbjogNTBweCBhdXRvIDAgYXV0bzsKCXBhZGRpbmc6IDA7Cn0KCiNkdF9leGFtcGxlICNkZW1vIHsKCW1hcmdpbjogMzBweCBhdXRvIDAgYXV0bzsKfQoKI2R0X2V4YW1wbGUgLmRlbW9fanVpIHsKCW1hcmdpbjogMzBweCBhdXRvIDAgYXV0bzsKfQoKI2R0X2V4YW1wbGUgLmJpZyB7Cglmb250LXNpemU6IDEuM2VtOwoJZm9udC13ZWlnaHQ6IGJvbGQ7CglsaW5lLWhlaWdodDogMS42ZW07Cgljb2xvcjogIzRFNkNBMzsKfQoKI2R0X2V4YW1wbGUgLnNwYWNlciB7CgloZWlnaHQ6IDIwcHg7CgljbGVhcjogYm90aDsKfQoKI2R0X2V4YW1wbGUgLmNsZWFyIHsKCWNsZWFyOiBib3RoOwp9CgojZHRfZXhhbXBsZSBwcmUgewoJcGFkZGluZzogMTVweDsKCWJhY2tncm91bmQtY29sb3I6ICNGNUY1RjU7Cglib3JkZXI6IDFweCBzb2xpZCAjQ0NDQ0NDOwp9CgojZHRfZXhhbXBsZSBoMSB7CgltYXJnaW4tdG9wOiAyZW07Cglmb250LXNpemU6IDEuM2VtOwoJZm9udC13ZWlnaHQ6IG5vcm1hbDsKCWxpbmUtaGVpZ2h0OiAxLjZlbTsKCWNvbG9yOiAjNEU2Q0EzOwoJYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNCMEJFRDk7CgljbGVhcjogYm90aDsKfQoKI2R0X2V4YW1wbGUgaDIgewoJZm9udC1zaXplOiAxLjJlbTsKCWZvbnQtd2VpZ2h0OiBub3JtYWw7CglsaW5lLWhlaWdodDogMS42ZW07Cgljb2xvcjogIzRFNkNBMzsKCWNsZWFyOiBib3RoOwp9CgojZHRfZXhhbXBsZSBhIHsKCWNvbG9yOiAjMDA2M0RDOwoJdGV4dC1kZWNvcmF0aW9uOiBub25lOwp9CgojZHRfZXhhbXBsZSBhOmhvdmVyIHsKCXRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwp9CgojZHRfZXhhbXBsZSB1bCB7Cgljb2xvcjogIzRFNkNBMzsKfQoKLmNzc19yaWdodCB7CglmbG9hdDogcmlnaHQ7Cn0KCi5jc3NfbGVmdCB7CglmbG9hdDogbGVmdDsKfQoKLmRlbW9fbGlua3MgewoJZmxvYXQ6IGxlZnQ7Cgl3aWR0aDogNTAlOwoJbWFyZ2luLWJvdHRvbTogMWVtOwp9CgojZGVtb19pbmZvIHsKCXBhZGRpbmc6IDVweDsKCWJvcmRlcjogMXB4IHNvbGlkICNCMEJFRDk7CgloZWlnaHQ6IDEwMHB4OwoJd2lkdGg6IDEwMCU7CglvdmVyZmxvdzogYXV0bzsKfQ==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/css/demo_table.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogIEZpbGU6ICAgICAgICAgZGVtb190YWJsZS5jc3MKICogIENWUzogICAgICAgICAgJElkJAogKiAgRGVzY3JpcHRpb246ICBDU1MgZGVzY3JpcHRpb25zIGZvciBEYXRhVGFibGVzIGRlbW8gcGFnZXMKICogIEF1dGhvcjogICAgICAgQWxsYW4gSmFyZGluZQogKiAgQ3JlYXRlZDogICAgICBUdWUgTWF5IDEyIDA2OjQ3OjIyIEJTVCAyMDA5CiAqICBNb2RpZmllZDogICAgICREYXRlJCBieSAkQXV0aG9yJAogKiAgTGFuZ3VhZ2U6ICAgICBDU1MKICogIFByb2plY3Q6ICAgICAgRGF0YVRhYmxlcwogKgogKiAgQ29weXJpZ2h0IDIwMDkgQWxsYW4gSmFyZGluZS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICoKICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqIERFU0NSSVBUSU9OCiAqCiAqIFRoZSBzdHlsZXMgZ2l2ZW4gaGVyZSBhcmUgc3VpdGFibGUgZm9yIHRoZSBkZW1vcyB0aGF0IGFyZSB1c2VkIHdpdGggdGhlIHN0YW5kYXJkIERhdGFUYWJsZXMKICogZGlzdHJpYnV0aW9uIChzZWUgd3d3LmRhdGF0YWJsZXMubmV0KS4gWW91IHdpbGwgbW9zdCBsaWtlbHkgd2lzaCB0byBtb2RpZnkgdGhlc2Ugc3R5bGVzIHRvCiAqIG1lZXQgdGhlIGxheW91dCByZXF1aXJlbWVudHMgb2YgeW91ciBzaXRlLgogKgogKiBDb21tb24gaXNzdWVzOgogKiAgICdmdWxsX251bWJlcnMnIHBhZ2luYXRpb24gLSBJIHVzZSBhbiBleHRyYSBzZWxlY3RvciBvbiB0aGUgYm9keSB0YWcgdG8gZW5zdXJlIHRoYXQgdGhlcmUgaXMKICogICAgIG5vIGNvbmZsaWN0IGJldHdlZW4gdGhlIHR3byBwYWdpbmF0aW9uIHR5cGVzLiBJZiB5b3Ugd2FudCB0byB1c2UgZnVsbF9udW1iZXJzIHBhZ2luYXRpb24KICogICAgIGVuc3VyZSB0aGF0IHlvdSBlaXRoZXIgaGF2ZSAiZXhhbXBsZV9hbHRfcGFnaW5hdGlvbiIgYXMgYSBib2R5IGNsYXNzIG5hbWUsIG9yIGJldHRlciB5ZXQsCiAqICAgICBtb2RpZnkgdGhhdCBzZWxlY3Rvci4KICogICBOb3RlIHRoYXQgdGhlIHBhdGggdXNlZCBmb3IgSW1hZ2VzIGlzIHJlbGF0aXZlLiBBbGwgaW1hZ2VzIGFyZSBieSBkZWZhdWx0IGxvY2F0ZWQgaW4KICogICAgIC4uL2ltYWdlcy8gLSByZWxhdGl2ZSB0byB0aGlzIENTUyBmaWxlLgogKi8KCi8qICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqCiAqIERhdGFUYWJsZXMgZmVhdHVyZXMKICovCgouZGF0YVRhYmxlc193cmFwcGVyIHsKCXBvc2l0aW9uOiByZWxhdGl2ZTsKCWNsZWFyOiBib3RoOwoJem9vbTogMTsgLyogRmVlbGluZyBzb3JyeSBmb3IgSUUgKi8KfQoKLmRhdGFUYWJsZXNfcHJvY2Vzc2luZyB7Cglwb3NpdGlvbjogYWJzb2x1dGU7Cgl0b3A6IDUwJTsKCWxlZnQ6IDUwJTsKCXdpZHRoOiAyNTBweDsKCWhlaWdodDogMzBweDsKCW1hcmdpbi1sZWZ0OiAtMTI1cHg7CgltYXJnaW4tdG9wOiAtMTVweDsKCXBhZGRpbmc6IDE0cHggMCAycHggMDsKCWJvcmRlcjogMXB4IHNvbGlkICNkZGQ7Cgl0ZXh0LWFsaWduOiBjZW50ZXI7Cgljb2xvcjogIzk5OTsKCWZvbnQtc2l6ZTogMTRweDsKCWJhY2tncm91bmQtY29sb3I6IHdoaXRlOwp9CgouZGF0YVRhYmxlc19sZW5ndGggewoJd2lkdGg6IDQwJTsKCWZsb2F0OiBsZWZ0Owp9CgouZGF0YVRhYmxlc19maWx0ZXIgewoJd2lkdGg6IDUwJTsKCWZsb2F0OiByaWdodDsKCXRleHQtYWxpZ246IHJpZ2h0Owp9CgouZGF0YVRhYmxlc19pbmZvIHsKCXdpZHRoOiA2MCU7CglmbG9hdDogbGVmdDsKfQoKLmRhdGFUYWJsZXNfcGFnaW5hdGUgewoJZmxvYXQ6IHJpZ2h0OwoJdGV4dC1hbGlnbjogcmlnaHQ7Cn0KCi8qIFBhZ2luYXRpb24gbmVzdGVkICovCi5wYWdpbmF0ZV9kaXNhYmxlZF9wcmV2aW91cywgLnBhZ2luYXRlX2VuYWJsZWRfcHJldmlvdXMsCi5wYWdpbmF0ZV9kaXNhYmxlZF9uZXh0LCAucGFnaW5hdGVfZW5hYmxlZF9uZXh0IHsKCWhlaWdodDogMTlweDsKCWZsb2F0OiBsZWZ0OwoJY3Vyc29yOiBwb2ludGVyOwoJKmN1cnNvcjogaGFuZDsKCWNvbG9yOiAjMTExICFpbXBvcnRhbnQ7Cn0KLnBhZ2luYXRlX2Rpc2FibGVkX3ByZXZpb3VzOmhvdmVyLCAucGFnaW5hdGVfZW5hYmxlZF9wcmV2aW91czpob3ZlciwKLnBhZ2luYXRlX2Rpc2FibGVkX25leHQ6aG92ZXIsIC5wYWdpbmF0ZV9lbmFibGVkX25leHQ6aG92ZXIgewoJdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7Cn0KLnBhZ2luYXRlX2Rpc2FibGVkX3ByZXZpb3VzOmFjdGl2ZSwgLnBhZ2luYXRlX2VuYWJsZWRfcHJldmlvdXM6YWN0aXZlLAoucGFnaW5hdGVfZGlzYWJsZWRfbmV4dDphY3RpdmUsIC5wYWdpbmF0ZV9lbmFibGVkX25leHQ6YWN0aXZlIHsKCW91dGxpbmU6IG5vbmU7Cn0KCi5wYWdpbmF0ZV9kaXNhYmxlZF9wcmV2aW91cywKLnBhZ2luYXRlX2Rpc2FibGVkX25leHQgewoJY29sb3I6ICM2NjYgIWltcG9ydGFudDsKfQoucGFnaW5hdGVfZGlzYWJsZWRfcHJldmlvdXMsIC5wYWdpbmF0ZV9lbmFibGVkX3ByZXZpb3VzIHsKCXBhZGRpbmctbGVmdDogMjNweDsKfQoucGFnaW5hdGVfZGlzYWJsZWRfbmV4dCwgLnBhZ2luYXRlX2VuYWJsZWRfbmV4dCB7CglwYWRkaW5nLXJpZ2h0OiAyM3B4OwoJbWFyZ2luLWxlZnQ6IDEwcHg7Cn0KCi5wYWdpbmF0ZV9kaXNhYmxlZF9wcmV2aW91cyB7CgliYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9iYWNrX2Rpc2FibGVkLnBuZycpIG5vLXJlcGVhdCB0b3AgbGVmdDsKfQoKLnBhZ2luYXRlX2VuYWJsZWRfcHJldmlvdXMgewoJYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvYmFja19lbmFibGVkLnBuZycpIG5vLXJlcGVhdCB0b3AgbGVmdDsKfQoucGFnaW5hdGVfZW5hYmxlZF9wcmV2aW91czpob3ZlciB7CgliYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9iYWNrX2VuYWJsZWRfaG92ZXIucG5nJykgbm8tcmVwZWF0IHRvcCBsZWZ0Owp9CgoucGFnaW5hdGVfZGlzYWJsZWRfbmV4dCB7CgliYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9mb3J3YXJkX2Rpc2FibGVkLnBuZycpIG5vLXJlcGVhdCB0b3AgcmlnaHQ7Cn0KCi5wYWdpbmF0ZV9lbmFibGVkX25leHQgewoJYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvZm9yd2FyZF9lbmFibGVkLnBuZycpIG5vLXJlcGVhdCB0b3AgcmlnaHQ7Cn0KLnBhZ2luYXRlX2VuYWJsZWRfbmV4dDpob3ZlciB7CgliYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9mb3J3YXJkX2VuYWJsZWRfaG92ZXIucG5nJykgbm8tcmVwZWF0IHRvcCByaWdodDsKfQoKCgovKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKgogKiBEYXRhVGFibGVzIGRpc3BsYXkKICovCnRhYmxlLmRpc3BsYXkgewoJbWFyZ2luOiAwIGF1dG87CgljbGVhcjogYm90aDsKCXdpZHRoOiAxMDAlOwoJCgkvKiBOb3RlIEZpcmVmb3ggMy41IGFuZCBiZWZvcmUgaGF2ZSBhIGJ1ZyB3aXRoIGJvcmRlci1jb2xsYXBzZQoJICogKCBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3clNUZidWcuY2dpP2lkPTE1NTk1NSApIAoJICogYm9yZGVyLXNwYWNpbmc6IDA7IGlzIG9uZSBwb3NzaWJsZSBvcHRpb24uIENvbmRpdGlvbmFsLWNzcy5jb20gaXMKCSAqIHVzZWZ1bCBmb3IgdGhpcyBraW5kIG9mIHRoaW5nCgkgKgoJICogRnVydGhlciBub3RlIElFIDYvNyBoYXMgcHJvYmxlbXMgd2hlbiBjYWxjdWxhdGluZyB3aWR0aHMgd2l0aCBib3JkZXIgd2lkdGguCgkgKiBJdCBzdWJ0cmFjdHMgb25lIHB4IHJlbGF0aXZlIHRvIHRoZSBvdGhlciBicm93c2VycyBmcm9tIHRoZSBmaXJzdCBjb2x1bW4sIGFuZAoJICogYWRkcyBvbmUgdG8gdGhlIGVuZC4uLgoJICoKCSAqIElmIHlvdSB3YW50IHRoYXQgZWZmZWN0IEknZCBzdWdnZXN0IHNldHRpbmcgYSBib3JkZXItdG9wL2xlZnQgb24gdGgvdGQncyBhbmQgCgkgKiB0aGVuIGZpbGxpbmcgaW4gdGhlIGdhcHMgd2l0aCBvdGhlciBib3JkZXJzLgoJICovCn0KCnRhYmxlLmRpc3BsYXkgdGhlYWQgdGggewoJcGFkZGluZzogM3B4IDE4cHggM3B4IDEwcHg7Cglib3JkZXItYm90dG9tOiAxcHggc29saWQgYmxhY2s7Cglmb250LXdlaWdodDogYm9sZDsKCWN1cnNvcjogcG9pbnRlcjsKCSogY3Vyc29yOiBoYW5kOwp9Cgp0YWJsZS5kaXNwbGF5IHRmb290IHRoIHsKCXBhZGRpbmc6IDNweCAxOHB4IDNweCAxMHB4OwoJYm9yZGVyLXRvcDogMXB4IHNvbGlkIGJsYWNrOwoJZm9udC13ZWlnaHQ6IGJvbGQ7Cn0KCnRhYmxlLmRpc3BsYXkgdHIuaGVhZGluZzIgdGQgewoJYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNhYWE7Cn0KCnRhYmxlLmRpc3BsYXkgdGQgewoJcGFkZGluZzogM3B4IDEwcHg7Cn0KCnRhYmxlLmRpc3BsYXkgdGQuY2VudGVyIHsKCXRleHQtYWxpZ246IGNlbnRlcjsKfQoKCgovKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKgogKiBEYXRhVGFibGVzIHNvcnRpbmcKICovCgouc29ydGluZ19hc2MgewoJYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvc29ydF9hc2MucG5nJykgbm8tcmVwZWF0IGNlbnRlciByaWdodDsKfQoKLnNvcnRpbmdfZGVzYyB7CgliYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9zb3J0X2Rlc2MucG5nJykgbm8tcmVwZWF0IGNlbnRlciByaWdodDsKfQoKLnNvcnRpbmcgewoJYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvc29ydF9ib3RoLnBuZycpIG5vLXJlcGVhdCBjZW50ZXIgcmlnaHQ7Cn0KCi5zb3J0aW5nX2FzY19kaXNhYmxlZCB7CgliYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9zb3J0X2FzY19kaXNhYmxlZC5wbmcnKSBuby1yZXBlYXQgY2VudGVyIHJpZ2h0Owp9Cgouc29ydGluZ19kZXNjX2Rpc2FibGVkIHsKCWJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL3NvcnRfZGVzY19kaXNhYmxlZC5wbmcnKSBuby1yZXBlYXQgY2VudGVyIHJpZ2h0Owp9CiAKdGg6YWN0aXZlIHsKCW91dGxpbmU6IG5vbmU7Cn0KCgoKCi8qICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqCiAqIERhdGFUYWJsZXMgcm93IGNsYXNzZXMKICovCnRhYmxlLmRpc3BsYXkgdHIub2RkLmdyYWRlQSB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZGRmZmRkOwp9Cgp0YWJsZS5kaXNwbGF5IHRyLmV2ZW4uZ3JhZGVBIHsKCWJhY2tncm91bmQtY29sb3I6ICNlZWZmZWU7Cn0KCnRhYmxlLmRpc3BsYXkgdHIub2RkLmdyYWRlQyB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZGRkZGZmOwp9Cgp0YWJsZS5kaXNwbGF5IHRyLmV2ZW4uZ3JhZGVDIHsKCWJhY2tncm91bmQtY29sb3I6ICNlZWVlZmY7Cn0KCnRhYmxlLmRpc3BsYXkgdHIub2RkLmdyYWRlWCB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZmZkZGRkOwp9Cgp0YWJsZS5kaXNwbGF5IHRyLmV2ZW4uZ3JhZGVYIHsKCWJhY2tncm91bmQtY29sb3I6ICNmZmVlZWU7Cn0KCnRhYmxlLmRpc3BsYXkgdHIub2RkLmdyYWRlVSB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOwp9Cgp0YWJsZS5kaXNwbGF5IHRyLmV2ZW4uZ3JhZGVVIHsKCWJhY2tncm91bmQtY29sb3I6ICNlZWU7Cn0KCgp0ci5vZGQgewoJYmFja2dyb3VuZC1jb2xvcjogI0UyRTRGRjsKfQoKdHIuZXZlbiB7CgliYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKfQoKCgoKCi8qICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqCiAqIE1pc2MKICovCi5kYXRhVGFibGVzX3Njcm9sbCB7CgljbGVhcjogYm90aDsKfQoKLmRhdGFUYWJsZXNfc2Nyb2xsQm9keSB7CgkqbWFyZ2luLXRvcDogLTFweDsKCS13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsKfQoKLnRvcCwgLmJvdHRvbSB7CglwYWRkaW5nOiAxNXB4OwoJYmFja2dyb3VuZC1jb2xvcjogI0Y1RjVGNTsKCWJvcmRlcjogMXB4IHNvbGlkICNDQ0NDQ0M7Cn0KCi50b3AgLmRhdGFUYWJsZXNfaW5mbyB7CglmbG9hdDogbm9uZTsKfQoKLmNsZWFyIHsKCWNsZWFyOiBib3RoOwp9CgouZGF0YVRhYmxlc19lbXB0eSB7Cgl0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCnRmb290IGlucHV0IHsKCW1hcmdpbjogMC41ZW0gMDsKCXdpZHRoOiAxMDAlOwoJY29sb3I6ICM0NDQ7Cn0KCnRmb290IGlucHV0LnNlYXJjaF9pbml0IHsKCWNvbG9yOiAjOTk5Owp9Cgp0ZC5ncm91cCB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZDFjZmQwOwoJYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNBMTlCOUU7Cglib3JkZXItdG9wOiAycHggc29saWQgI0ExOUI5RTsKfQoKdGQuZGV0YWlscyB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZDFjZmQwOwoJYm9yZGVyOiAycHggc29saWQgI0ExOUI5RTsKfQoKCi5leGFtcGxlX2FsdF9wYWdpbmF0aW9uIGRpdi5kYXRhVGFibGVzX2luZm8gewoJd2lkdGg6IDQwJTsKfQoKLnBhZ2luZ19mdWxsX251bWJlcnMgewoJd2lkdGg6IDQwMHB4OwoJaGVpZ2h0OiAyMnB4OwoJbGluZS1oZWlnaHQ6IDIycHg7Cn0KCi5wYWdpbmdfZnVsbF9udW1iZXJzIGE6YWN0aXZlIHsKCW91dGxpbmU6IG5vbmUKfQoKLnBhZ2luZ19mdWxsX251bWJlcnMgYTpob3ZlciB7Cgl0ZXh0LWRlY29yYXRpb246IG5vbmU7Cn0KCi5wYWdpbmdfZnVsbF9udW1iZXJzIGEucGFnaW5hdGVfYnV0dG9uLAogCS5wYWdpbmdfZnVsbF9udW1iZXJzIGEucGFnaW5hdGVfYWN0aXZlIHsKCWJvcmRlcjogMXB4IHNvbGlkICNhYWE7Cgktd2Via2l0LWJvcmRlci1yYWRpdXM6IDVweDsKCS1tb3otYm9yZGVyLXJhZGl1czogNXB4OwoJcGFkZGluZzogMnB4IDVweDsKCW1hcmdpbjogMCAzcHg7CgljdXJzb3I6IHBvaW50ZXI7CgkqY3Vyc29yOiBoYW5kOwoJY29sb3I6ICMzMzMgIWltcG9ydGFudDsKfQoKLnBhZ2luZ19mdWxsX251bWJlcnMgYS5wYWdpbmF0ZV9idXR0b24gewoJYmFja2dyb3VuZC1jb2xvcjogI2RkZDsKfQoKLnBhZ2luZ19mdWxsX251bWJlcnMgYS5wYWdpbmF0ZV9idXR0b246aG92ZXIgewoJYmFja2dyb3VuZC1jb2xvcjogI2NjYzsKCXRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50Owp9CgoucGFnaW5nX2Z1bGxfbnVtYmVycyBhLnBhZ2luYXRlX2FjdGl2ZSB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjOTlCM0ZGOwp9Cgp0YWJsZS5kaXNwbGF5IHRyLmV2ZW4ucm93X3NlbGVjdGVkIHRkIHsKCWJhY2tncm91bmQtY29sb3I6ICNCMEJFRDk7Cn0KCnRhYmxlLmRpc3BsYXkgdHIub2RkLnJvd19zZWxlY3RlZCB0ZCB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjOUZBRkQxOwp9CgoKLyoKICogU29ydGluZyBjbGFzc2VzIGZvciBjb2x1bW5zCiAqLwovKiBGb3IgdGhlIHN0YW5kYXJkIG9kZC9ldmVuICovCnRyLm9kZCB0ZC5zb3J0aW5nXzEgewoJYmFja2dyb3VuZC1jb2xvcjogI0QzRDZGRjsKfQoKdHIub2RkIHRkLnNvcnRpbmdfMiB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjREFEQ0ZGOwp9Cgp0ci5vZGQgdGQuc29ydGluZ18zIHsKCWJhY2tncm91bmQtY29sb3I6ICNFMEUyRkY7Cn0KCnRyLmV2ZW4gdGQuc29ydGluZ18xIHsKCWJhY2tncm91bmQtY29sb3I6ICNFQUVCRkY7Cn0KCnRyLmV2ZW4gdGQuc29ydGluZ18yIHsKCWJhY2tncm91bmQtY29sb3I6ICNGMkYzRkY7Cn0KCnRyLmV2ZW4gdGQuc29ydGluZ18zIHsKCWJhY2tncm91bmQtY29sb3I6ICNGOUY5RkY7Cn0KCgovKiBGb3IgdGhlIENvbmRpdGlvbmFsLUNTUyBncmFkaW5nIHJvd3MgKi8KLyoKIAlDb2xvdXIgY2FsY3VsYXRpb25zIChiYXNlZCBvZmYgdGhlIG1haW4gcm93IGNvbG91cnMpCiAgTGV2ZWwgMToKCQlkZCA+IGM0CgkJZWUgPiBkNQoJTGV2ZWwgMjoKCSAgZGQgPiBkMQoJICBlZSA+IGUyCiAqLwp0ci5vZGQuZ3JhZGVBIHRkLnNvcnRpbmdfMSB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjYzRmZmM0Owp9Cgp0ci5vZGQuZ3JhZGVBIHRkLnNvcnRpbmdfMiB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZDFmZmQxOwp9Cgp0ci5vZGQuZ3JhZGVBIHRkLnNvcnRpbmdfMyB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZDFmZmQxOwp9Cgp0ci5ldmVuLmdyYWRlQSB0ZC5zb3J0aW5nXzEgewoJYmFja2dyb3VuZC1jb2xvcjogI2Q1ZmZkNTsKfQoKdHIuZXZlbi5ncmFkZUEgdGQuc29ydGluZ18yIHsKCWJhY2tncm91bmQtY29sb3I6ICNlMmZmZTI7Cn0KCnRyLmV2ZW4uZ3JhZGVBIHRkLnNvcnRpbmdfMyB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZTJmZmUyOwp9Cgp0ci5vZGQuZ3JhZGVDIHRkLnNvcnRpbmdfMSB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjYzRjNGZmOwp9Cgp0ci5vZGQuZ3JhZGVDIHRkLnNvcnRpbmdfMiB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZDFkMWZmOwp9Cgp0ci5vZGQuZ3JhZGVDIHRkLnNvcnRpbmdfMyB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZDFkMWZmOwp9Cgp0ci5ldmVuLmdyYWRlQyB0ZC5zb3J0aW5nXzEgewoJYmFja2dyb3VuZC1jb2xvcjogI2Q1ZDVmZjsKfQoKdHIuZXZlbi5ncmFkZUMgdGQuc29ydGluZ18yIHsKCWJhY2tncm91bmQtY29sb3I6ICNlMmUyZmY7Cn0KCnRyLmV2ZW4uZ3JhZGVDIHRkLnNvcnRpbmdfMyB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZTJlMmZmOwp9Cgp0ci5vZGQuZ3JhZGVYIHRkLnNvcnRpbmdfMSB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZmZjNGM0Owp9Cgp0ci5vZGQuZ3JhZGVYIHRkLnNvcnRpbmdfMiB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZmZkMWQxOwp9Cgp0ci5vZGQuZ3JhZGVYIHRkLnNvcnRpbmdfMyB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZmZkMWQxOwp9Cgp0ci5ldmVuLmdyYWRlWCB0ZC5zb3J0aW5nXzEgewoJYmFja2dyb3VuZC1jb2xvcjogI2ZmZDVkNTsKfQoKdHIuZXZlbi5ncmFkZVggdGQuc29ydGluZ18yIHsKCWJhY2tncm91bmQtY29sb3I6ICNmZmUyZTI7Cn0KCnRyLmV2ZW4uZ3JhZGVYIHRkLnNvcnRpbmdfMyB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZmZlMmUyOwp9Cgp0ci5vZGQuZ3JhZGVVIHRkLnNvcnRpbmdfMSB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjYzRjNGM0Owp9Cgp0ci5vZGQuZ3JhZGVVIHRkLnNvcnRpbmdfMiB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZDFkMWQxOwp9Cgp0ci5vZGQuZ3JhZGVVIHRkLnNvcnRpbmdfMyB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZDFkMWQxOwp9Cgp0ci5ldmVuLmdyYWRlVSB0ZC5zb3J0aW5nXzEgewoJYmFja2dyb3VuZC1jb2xvcjogI2Q1ZDVkNTsKfQoKdHIuZXZlbi5ncmFkZVUgdGQuc29ydGluZ18yIHsKCWJhY2tncm91bmQtY29sb3I6ICNlMmUyZTI7Cn0KCnRyLmV2ZW4uZ3JhZGVVIHRkLnNvcnRpbmdfMyB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZTJlMmUyOwp9CgoKLyoKICogUm93IGhpZ2hsaWdodGluZyBleGFtcGxlCiAqLwouZXhfaGlnaGxpZ2h0ICNleGFtcGxlIHRib2R5IHRyLmV2ZW46aG92ZXIsICNleGFtcGxlIHRib2R5IHRyLmV2ZW4gdGQuaGlnaGxpZ2h0ZWQgewoJYmFja2dyb3VuZC1jb2xvcjogI0VDRkZCMzsKfQoKLmV4X2hpZ2hsaWdodCAjZXhhbXBsZSB0Ym9keSB0ci5vZGQ6aG92ZXIsICNleGFtcGxlIHRib2R5IHRyLm9kZCB0ZC5oaWdobGlnaHRlZCB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjRTZGRjk5Owp9CgouZXhfaGlnaGxpZ2h0X3JvdyAjZXhhbXBsZSB0ci5ldmVuOmhvdmVyIHsKCWJhY2tncm91bmQtY29sb3I6ICNFQ0ZGQjM7Cn0KCi5leF9oaWdobGlnaHRfcm93ICNleGFtcGxlIHRyLmV2ZW46aG92ZXIgdGQuc29ydGluZ18xIHsKCWJhY2tncm91bmQtY29sb3I6ICNEREZGNzU7Cn0KCi5leF9oaWdobGlnaHRfcm93ICNleGFtcGxlIHRyLmV2ZW46aG92ZXIgdGQuc29ydGluZ18yIHsKCWJhY2tncm91bmQtY29sb3I6ICNFN0ZGOUU7Cn0KCi5leF9oaWdobGlnaHRfcm93ICNleGFtcGxlIHRyLmV2ZW46aG92ZXIgdGQuc29ydGluZ18zIHsKCWJhY2tncm91bmQtY29sb3I6ICNFMkZGODk7Cn0KCi5leF9oaWdobGlnaHRfcm93ICNleGFtcGxlIHRyLm9kZDpob3ZlciB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjRTZGRjk5Owp9CgouZXhfaGlnaGxpZ2h0X3JvdyAjZXhhbXBsZSB0ci5vZGQ6aG92ZXIgdGQuc29ydGluZ18xIHsKCWJhY2tncm91bmQtY29sb3I6ICNENkZGNUM7Cn0KCi5leF9oaWdobGlnaHRfcm93ICNleGFtcGxlIHRyLm9kZDpob3ZlciB0ZC5zb3J0aW5nXzIgewoJYmFja2dyb3VuZC1jb2xvcjogI0UwRkY4NDsKfQoKLmV4X2hpZ2hsaWdodF9yb3cgI2V4YW1wbGUgdHIub2RkOmhvdmVyIHRkLnNvcnRpbmdfMyB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjREJGRjcwOwp9CgoKLyoKICogS2V5VGFibGUKICovCnRhYmxlLktleVRhYmxlIHRkIHsKCWJvcmRlcjogM3B4IHNvbGlkIHRyYW5zcGFyZW50Owp9Cgp0YWJsZS5LZXlUYWJsZSB0ZC5mb2N1cyB7Cglib3JkZXI6IDNweCBzb2xpZCAjMzM2NkZGOwp9Cgp0YWJsZS5kaXNwbGF5IHRyLmdyYWRlQSB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZWVmZmVlOwp9Cgp0YWJsZS5kaXNwbGF5IHRyLmdyYWRlQyB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZGRkZGZmOwp9Cgp0YWJsZS5kaXNwbGF5IHRyLmdyYWRlWCB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZmZkZGRkOwp9Cgp0YWJsZS5kaXNwbGF5IHRyLmdyYWRlVSB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOwp9CgpkaXYuYm94IHsKCWhlaWdodDogMTAwcHg7CglwYWRkaW5nOiAxMHB4OwoJb3ZlcmZsb3c6IGF1dG87Cglib3JkZXI6IDFweCBzb2xpZCAjODA4MEZGOwoJYmFja2dyb3VuZC1jb2xvcjogI0U1RTVGRjsKfQo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/css/demo_table_jui.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogIEZpbGU6ICAgICAgICAgZGVtb190YWJsZV9qdWkuY3NzCiAqICBDVlM6ICAgICAgICAgICRJZCQKICogIERlc2NyaXB0aW9uOiAgQ1NTIGRlc2NyaXB0aW9ucyBmb3IgRGF0YVRhYmxlcyBkZW1vIHBhZ2VzCiAqICBBdXRob3I6ICAgICAgIEFsbGFuIEphcmRpbmUKICogIENyZWF0ZWQ6ICAgICAgVHVlIE1heSAxMiAwNjo0NzoyMiBCU1QgMjAwOQogKiAgTW9kaWZpZWQ6ICAgICAkRGF0ZSQgYnkgJEF1dGhvciQKICogIExhbmd1YWdlOiAgICAgQ1NTCiAqICBQcm9qZWN0OiAgICAgIERhdGFUYWJsZXMKICoKICogIENvcHlyaWdodCAyMDA5IEFsbGFuIEphcmRpbmUuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqCiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKiBERVNDUklQVElPTgogKgogKiBUaGUgc3R5bGVzIGdpdmVuIGhlcmUgYXJlIHN1aXRhYmxlIGZvciB0aGUgZGVtb3MgdGhhdCBhcmUgdXNlZCB3aXRoIHRoZSBzdGFuZGFyZCBEYXRhVGFibGVzCiAqIGRpc3RyaWJ1dGlvbiAoc2VlIHd3dy5kYXRhdGFibGVzLm5ldCkuIFlvdSB3aWxsIG1vc3QgbGlrZWx5IHdpc2ggdG8gbW9kaWZ5IHRoZXNlIHN0eWxlcyB0bwogKiBtZWV0IHRoZSBsYXlvdXQgcmVxdWlyZW1lbnRzIG9mIHlvdXIgc2l0ZS4KICoKICogQ29tbW9uIGlzc3VlczoKICogICAnZnVsbF9udW1iZXJzJyBwYWdpbmF0aW9uIC0gSSB1c2UgYW4gZXh0cmEgc2VsZWN0b3Igb24gdGhlIGJvZHkgdGFnIHRvIGVuc3VyZSB0aGF0IHRoZXJlIGlzCiAqICAgICBubyBjb25mbGljdCBiZXR3ZWVuIHRoZSB0d28gcGFnaW5hdGlvbiB0eXBlcy4gSWYgeW91IHdhbnQgdG8gdXNlIGZ1bGxfbnVtYmVycyBwYWdpbmF0aW9uCiAqICAgICBlbnN1cmUgdGhhdCB5b3UgZWl0aGVyIGhhdmUgImV4YW1wbGVfYWx0X3BhZ2luYXRpb24iIGFzIGEgYm9keSBjbGFzcyBuYW1lLCBvciBiZXR0ZXIgeWV0LAogKiAgICAgbW9kaWZ5IHRoYXQgc2VsZWN0b3IuCiAqICAgTm90ZSB0aGF0IHRoZSBwYXRoIHVzZWQgZm9yIEltYWdlcyBpcyByZWxhdGl2ZS4gQWxsIGltYWdlcyBhcmUgYnkgZGVmYXVsdCBsb2NhdGVkIGluCiAqICAgICAuLi9pbWFnZXMvIC0gcmVsYXRpdmUgdG8gdGhpcyBDU1MgZmlsZS4KICovCgoKLyoKICogalF1ZXJ5IFVJIHNwZWNpZmljIHN0eWxpbmcKICovCgoucGFnaW5nX3R3b19idXR0b24gLnVpLWJ1dHRvbiB7CglmbG9hdDogbGVmdDsKCWN1cnNvcjogcG9pbnRlcjsKCSogY3Vyc29yOiBoYW5kOwp9CgoucGFnaW5nX2Z1bGxfbnVtYmVycyAudWktYnV0dG9uIHsKCXBhZGRpbmc6IDJweCA2cHg7CgltYXJnaW46IDA7CgljdXJzb3I6IHBvaW50ZXI7CgkqIGN1cnNvcjogaGFuZDsKCWNvbG9yOiAjMzMzICFpbXBvcnRhbnQ7Cn0KCi5kYXRhVGFibGVzX3BhZ2luYXRlIC51aS1idXR0b24gewoJbWFyZ2luLXJpZ2h0OiAtMC4xZW0gIWltcG9ydGFudDsKfQoKLnBhZ2luZ19mdWxsX251bWJlcnMgewoJd2lkdGg6IDM1MHB4ICFpbXBvcnRhbnQ7Cn0KCi5kYXRhVGFibGVzX3dyYXBwZXIgLnVpLXRvb2xiYXIgewoJcGFkZGluZzogNXB4Owp9CgouZGF0YVRhYmxlc19wYWdpbmF0ZSB7Cgl3aWR0aDogYXV0bzsKfQoKLmRhdGFUYWJsZXNfaW5mbyB7CglwYWRkaW5nLXRvcDogM3B4Owp9Cgp0YWJsZS5kaXNwbGF5IHRoZWFkIHRoIHsKCXBhZGRpbmc6IDNweCAwcHggM3B4IDEwcHg7CgljdXJzb3I6IHBvaW50ZXI7CgkqIGN1cnNvcjogaGFuZDsKfQoKZGl2LmRhdGFUYWJsZXNfd3JhcHBlciAudWktd2lkZ2V0LWhlYWRlciB7Cglmb250LXdlaWdodDogbm9ybWFsOwp9CgoKLyoKICogU29ydCBhcnJvdyBpY29uIHBvc2l0aW9uaW5nCiAqLwp0YWJsZS5kaXNwbGF5IHRoZWFkIHRoIGRpdi5EYXRhVGFibGVzX3NvcnRfd3JhcHBlciB7Cglwb3NpdGlvbjogcmVsYXRpdmU7CglwYWRkaW5nLXJpZ2h0OiAyMHB4Owp9Cgp0YWJsZS5kaXNwbGF5IHRoZWFkIHRoIGRpdi5EYXRhVGFibGVzX3NvcnRfd3JhcHBlciBzcGFuIHsKCXBvc2l0aW9uOiBhYnNvbHV0ZTsKCXRvcDogNTAlOwoJbWFyZ2luLXRvcDogLThweDsKCXJpZ2h0OiAwOwp9CgoKCgovKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKgogKgogKiBFdmVyeXRoaW5nIGJlbG93IHRoaXMgbGluZSBpcyB0aGUgc2FtZSBhcyBkZW1vX3RhYmxlLmNzcy4gVGhpcyBmaWxlIGlzCiAqIHJlcXVpcmVkIGZvciAnY2xlYW5saW5lc3MnIG9mIHRoZSBtYXJrdXAKICoKICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICovCgoKCi8qICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqCiAqIERhdGFUYWJsZXMgZmVhdHVyZXMKICovCgouZGF0YVRhYmxlc193cmFwcGVyIHsKCXBvc2l0aW9uOiByZWxhdGl2ZTsKCWNsZWFyOiBib3RoOwp9CgouZGF0YVRhYmxlc19wcm9jZXNzaW5nIHsKCXBvc2l0aW9uOiBhYnNvbHV0ZTsKCXRvcDogMHB4OwoJbGVmdDogNTAlOwoJd2lkdGg6IDI1MHB4OwoJbWFyZ2luLWxlZnQ6IC0xMjVweDsKCWJvcmRlcjogMXB4IHNvbGlkICNkZGQ7Cgl0ZXh0LWFsaWduOiBjZW50ZXI7Cgljb2xvcjogIzk5OTsKCWZvbnQtc2l6ZTogMTFweDsKCXBhZGRpbmc6IDJweCAwOwp9CgouZGF0YVRhYmxlc19sZW5ndGggewoJd2lkdGg6IDQwJTsKCWZsb2F0OiBsZWZ0Owp9CgouZGF0YVRhYmxlc19maWx0ZXIgewoJd2lkdGg6IDUwJTsKCWZsb2F0OiByaWdodDsKCXRleHQtYWxpZ246IHJpZ2h0Owp9CgouZGF0YVRhYmxlc19pbmZvIHsKCXdpZHRoOiA1MCU7CglmbG9hdDogbGVmdDsKfQoKLmRhdGFUYWJsZXNfcGFnaW5hdGUgewoJZmxvYXQ6IHJpZ2h0OwoJdGV4dC1hbGlnbjogcmlnaHQ7Cn0KCgoKLyogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICoKICogRGF0YVRhYmxlcyBkaXNwbGF5CiAqLwp0YWJsZS5kaXNwbGF5IHsKCW1hcmdpbjogMCBhdXRvOwoJd2lkdGg6IDEwMCU7CgljbGVhcjogYm90aDsKCWJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7Cn0KCnRhYmxlLmRpc3BsYXkgdGZvb3QgdGggewoJcGFkZGluZzogM3B4IDBweCAzcHggMTBweDsKCWZvbnQtd2VpZ2h0OiBib2xkOwoJZm9udC13ZWlnaHQ6IG5vcm1hbDsKfQoKdGFibGUuZGlzcGxheSB0ci5oZWFkaW5nMiB0ZCB7Cglib3JkZXItYm90dG9tOiAxcHggc29saWQgI2FhYTsKfQoKdGFibGUuZGlzcGxheSB0ZCB7CglwYWRkaW5nOiAzcHggMTBweDsKfQoKdGFibGUuZGlzcGxheSB0ZC5jZW50ZXIgewoJdGV4dC1hbGlnbjogY2VudGVyOwp9CgoKCi8qICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqCiAqIERhdGFUYWJsZXMgc29ydGluZwogKi8KCi5zb3J0aW5nX2FzYyB7CgliYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9zb3J0X2FzYy5wbmcnKSBuby1yZXBlYXQgY2VudGVyIHJpZ2h0Owp9Cgouc29ydGluZ19kZXNjIHsKCWJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL3NvcnRfZGVzYy5wbmcnKSBuby1yZXBlYXQgY2VudGVyIHJpZ2h0Owp9Cgouc29ydGluZyB7CgliYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9zb3J0X2JvdGgucG5nJykgbm8tcmVwZWF0IGNlbnRlciByaWdodDsKfQoKLnNvcnRpbmdfYXNjX2Rpc2FibGVkIHsKCWJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL3NvcnRfYXNjX2Rpc2FibGVkLnBuZycpIG5vLXJlcGVhdCBjZW50ZXIgcmlnaHQ7Cn0KCi5zb3J0aW5nX2Rlc2NfZGlzYWJsZWQgewoJYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvc29ydF9kZXNjX2Rpc2FibGVkLnBuZycpIG5vLXJlcGVhdCBjZW50ZXIgcmlnaHQ7Cn0KCgoKCi8qICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqCiAqIERhdGFUYWJsZXMgcm93IGNsYXNzZXMKICovCnRhYmxlLmRpc3BsYXkgdHIub2RkLmdyYWRlQSB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZGRmZmRkOwp9Cgp0YWJsZS5kaXNwbGF5IHRyLmV2ZW4uZ3JhZGVBIHsKCWJhY2tncm91bmQtY29sb3I6ICNlZWZmZWU7Cn0KCgoKCnRhYmxlLmRpc3BsYXkgdHIub2RkLmdyYWRlQSB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZGRmZmRkOwp9Cgp0YWJsZS5kaXNwbGF5IHRyLmV2ZW4uZ3JhZGVBIHsKCWJhY2tncm91bmQtY29sb3I6ICNlZWZmZWU7Cn0KCnRhYmxlLmRpc3BsYXkgdHIub2RkLmdyYWRlQyB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZGRkZGZmOwp9Cgp0YWJsZS5kaXNwbGF5IHRyLmV2ZW4uZ3JhZGVDIHsKCWJhY2tncm91bmQtY29sb3I6ICNlZWVlZmY7Cn0KCnRhYmxlLmRpc3BsYXkgdHIub2RkLmdyYWRlWCB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZmZkZGRkOwp9Cgp0YWJsZS5kaXNwbGF5IHRyLmV2ZW4uZ3JhZGVYIHsKCWJhY2tncm91bmQtY29sb3I6ICNmZmVlZWU7Cn0KCnRhYmxlLmRpc3BsYXkgdHIub2RkLmdyYWRlVSB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOwp9Cgp0YWJsZS5kaXNwbGF5IHRyLmV2ZW4uZ3JhZGVVIHsKCWJhY2tncm91bmQtY29sb3I6ICNlZWU7Cn0KCgp0ci5vZGQgewoJYmFja2dyb3VuZC1jb2xvcjogI0UyRTRGRjsKfQoKdHIuZXZlbiB7CgliYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKfQoKCgoKCi8qICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqCiAqIE1pc2MKICovCi5kYXRhVGFibGVzX3Njcm9sbCB7CgljbGVhcjogYm90aDsKfQoKLmRhdGFUYWJsZXNfc2Nyb2xsQm9keSB7Cgktd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7Cn0KCi50b3AsIC5ib3R0b20gewoJcGFkZGluZzogMTVweDsKCWJhY2tncm91bmQtY29sb3I6ICNGNUY1RjU7Cglib3JkZXI6IDFweCBzb2xpZCAjQ0NDQ0NDOwp9CgoudG9wIC5kYXRhVGFibGVzX2luZm8gewoJZmxvYXQ6IG5vbmU7Cn0KCi5jbGVhciB7CgljbGVhcjogYm90aDsKfQoKLmRhdGFUYWJsZXNfZW1wdHkgewoJdGV4dC1hbGlnbjogY2VudGVyOwp9Cgp0Zm9vdCBpbnB1dCB7CgltYXJnaW46IDAuNWVtIDA7Cgl3aWR0aDogMTAwJTsKCWNvbG9yOiAjNDQ0Owp9Cgp0Zm9vdCBpbnB1dC5zZWFyY2hfaW5pdCB7Cgljb2xvcjogIzk5OTsKfQoKdGQuZ3JvdXAgewoJYmFja2dyb3VuZC1jb2xvcjogI2QxY2ZkMDsKCWJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjQTE5QjlFOwoJYm9yZGVyLXRvcDogMnB4IHNvbGlkICNBMTlCOUU7Cn0KCnRkLmRldGFpbHMgewoJYmFja2dyb3VuZC1jb2xvcjogI2QxY2ZkMDsKCWJvcmRlcjogMnB4IHNvbGlkICNBMTlCOUU7Cn0KCgouZXhhbXBsZV9hbHRfcGFnaW5hdGlvbiBkaXYuZGF0YVRhYmxlc19pbmZvIHsKCXdpZHRoOiA0MCU7Cn0KCi5wYWdpbmdfZnVsbF9udW1iZXJzIGEucGFnaW5hdGVfYnV0dG9uLAogCS5wYWdpbmdfZnVsbF9udW1iZXJzIGEucGFnaW5hdGVfYWN0aXZlIHsKCWJvcmRlcjogMXB4IHNvbGlkICNhYWE7Cgktd2Via2l0LWJvcmRlci1yYWRpdXM6IDVweDsKCS1tb3otYm9yZGVyLXJhZGl1czogNXB4OwoJcGFkZGluZzogMnB4IDVweDsKCW1hcmdpbjogMCAzcHg7CgljdXJzb3I6IHBvaW50ZXI7CgkqY3Vyc29yOiBoYW5kOwoJY29sb3I6ICMzMzMgIWltcG9ydGFudDsKfQoKLnBhZ2luZ19mdWxsX251bWJlcnMgYS5wYWdpbmF0ZV9idXR0b24gewoJYmFja2dyb3VuZC1jb2xvcjogI2RkZDsKfQoKLnBhZ2luZ19mdWxsX251bWJlcnMgYS5wYWdpbmF0ZV9idXR0b246aG92ZXIgewoJYmFja2dyb3VuZC1jb2xvcjogI2NjYzsKCXRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50Owp9CgoucGFnaW5nX2Z1bGxfbnVtYmVycyBhLnBhZ2luYXRlX2FjdGl2ZSB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjOTlCM0ZGOwp9Cgp0YWJsZS5kaXNwbGF5IHRyLmV2ZW4ucm93X3NlbGVjdGVkIHRkIHsKCWJhY2tncm91bmQtY29sb3I6ICNCMEJFRDk7Cn0KCnRhYmxlLmRpc3BsYXkgdHIub2RkLnJvd19zZWxlY3RlZCB0ZCB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjOUZBRkQxOwp9CgoKLyoKICogU29ydGluZyBjbGFzc2VzIGZvciBjb2x1bW5zCiAqLwovKiBGb3IgdGhlIHN0YW5kYXJkIG9kZC9ldmVuICovCnRyLm9kZCB0ZC5zb3J0aW5nXzEgewoJYmFja2dyb3VuZC1jb2xvcjogI0QzRDZGRjsKfQoKdHIub2RkIHRkLnNvcnRpbmdfMiB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjREFEQ0ZGOwp9Cgp0ci5vZGQgdGQuc29ydGluZ18zIHsKCWJhY2tncm91bmQtY29sb3I6ICNFMEUyRkY7Cn0KCnRyLmV2ZW4gdGQuc29ydGluZ18xIHsKCWJhY2tncm91bmQtY29sb3I6ICNFQUVCRkY7Cn0KCnRyLmV2ZW4gdGQuc29ydGluZ18yIHsKCWJhY2tncm91bmQtY29sb3I6ICNGMkYzRkY7Cn0KCnRyLmV2ZW4gdGQuc29ydGluZ18zIHsKCWJhY2tncm91bmQtY29sb3I6ICNGOUY5RkY7Cn0KCgovKiBGb3IgdGhlIENvbmRpdGlvbmFsLUNTUyBncmFkaW5nIHJvd3MgKi8KLyoKIAlDb2xvdXIgY2FsY3VsYXRpb25zIChiYXNlZCBvZmYgdGhlIG1haW4gcm93IGNvbG91cnMpCiAgTGV2ZWwgMToKCQlkZCA+IGM0CgkJZWUgPiBkNQoJTGV2ZWwgMjoKCSAgZGQgPiBkMQoJICBlZSA+IGUyCiAqLwp0ci5vZGQuZ3JhZGVBIHRkLnNvcnRpbmdfMSB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjYzRmZmM0Owp9Cgp0ci5vZGQuZ3JhZGVBIHRkLnNvcnRpbmdfMiB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZDFmZmQxOwp9Cgp0ci5vZGQuZ3JhZGVBIHRkLnNvcnRpbmdfMyB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZDFmZmQxOwp9Cgp0ci5ldmVuLmdyYWRlQSB0ZC5zb3J0aW5nXzEgewoJYmFja2dyb3VuZC1jb2xvcjogI2Q1ZmZkNTsKfQoKdHIuZXZlbi5ncmFkZUEgdGQuc29ydGluZ18yIHsKCWJhY2tncm91bmQtY29sb3I6ICNlMmZmZTI7Cn0KCnRyLmV2ZW4uZ3JhZGVBIHRkLnNvcnRpbmdfMyB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZTJmZmUyOwp9Cgp0ci5vZGQuZ3JhZGVDIHRkLnNvcnRpbmdfMSB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjYzRjNGZmOwp9Cgp0ci5vZGQuZ3JhZGVDIHRkLnNvcnRpbmdfMiB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZDFkMWZmOwp9Cgp0ci5vZGQuZ3JhZGVDIHRkLnNvcnRpbmdfMyB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZDFkMWZmOwp9Cgp0ci5ldmVuLmdyYWRlQyB0ZC5zb3J0aW5nXzEgewoJYmFja2dyb3VuZC1jb2xvcjogI2Q1ZDVmZjsKfQoKdHIuZXZlbi5ncmFkZUMgdGQuc29ydGluZ18yIHsKCWJhY2tncm91bmQtY29sb3I6ICNlMmUyZmY7Cn0KCnRyLmV2ZW4uZ3JhZGVDIHRkLnNvcnRpbmdfMyB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZTJlMmZmOwp9Cgp0ci5vZGQuZ3JhZGVYIHRkLnNvcnRpbmdfMSB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZmZjNGM0Owp9Cgp0ci5vZGQuZ3JhZGVYIHRkLnNvcnRpbmdfMiB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZmZkMWQxOwp9Cgp0ci5vZGQuZ3JhZGVYIHRkLnNvcnRpbmdfMyB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZmZkMWQxOwp9Cgp0ci5ldmVuLmdyYWRlWCB0ZC5zb3J0aW5nXzEgewoJYmFja2dyb3VuZC1jb2xvcjogI2ZmZDVkNTsKfQoKdHIuZXZlbi5ncmFkZVggdGQuc29ydGluZ18yIHsKCWJhY2tncm91bmQtY29sb3I6ICNmZmUyZTI7Cn0KCnRyLmV2ZW4uZ3JhZGVYIHRkLnNvcnRpbmdfMyB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZmZlMmUyOwp9Cgp0ci5vZGQuZ3JhZGVVIHRkLnNvcnRpbmdfMSB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjYzRjNGM0Owp9Cgp0ci5vZGQuZ3JhZGVVIHRkLnNvcnRpbmdfMiB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZDFkMWQxOwp9Cgp0ci5vZGQuZ3JhZGVVIHRkLnNvcnRpbmdfMyB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZDFkMWQxOwp9Cgp0ci5ldmVuLmdyYWRlVSB0ZC5zb3J0aW5nXzEgewoJYmFja2dyb3VuZC1jb2xvcjogI2Q1ZDVkNTsKfQoKdHIuZXZlbi5ncmFkZVUgdGQuc29ydGluZ18yIHsKCWJhY2tncm91bmQtY29sb3I6ICNlMmUyZTI7Cn0KCnRyLmV2ZW4uZ3JhZGVVIHRkLnNvcnRpbmdfMyB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZTJlMmUyOwp9CgoKLyoKICogUm93IGhpZ2hsaWdodGluZyBleGFtcGxlCiAqLwouZXhfaGlnaGxpZ2h0ICNleGFtcGxlIHRib2R5IHRyLmV2ZW46aG92ZXIsICNleGFtcGxlIHRib2R5IHRyLmV2ZW4gdGQuaGlnaGxpZ2h0ZWQgewoJYmFja2dyb3VuZC1jb2xvcjogI0VDRkZCMzsKfQoKLmV4X2hpZ2hsaWdodCAjZXhhbXBsZSB0Ym9keSB0ci5vZGQ6aG92ZXIsICNleGFtcGxlIHRib2R5IHRyLm9kZCB0ZC5oaWdobGlnaHRlZCB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjRTZGRjk5Owp9]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/css/jquery.dataTables.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ci8qCiAqIFRhYmxlCiAqLwp0YWJsZS5kYXRhVGFibGUgewoJbWFyZ2luOiAwIGF1dG87CgljbGVhcjogYm90aDsKCXdpZHRoOiAxMDAlOwp9Cgp0YWJsZS5kYXRhVGFibGUgdGhlYWQgdGggewoJcGFkZGluZzogM3B4IDE4cHggM3B4IDEwcHg7Cglib3JkZXItYm90dG9tOiAxcHggc29saWQgYmxhY2s7Cglmb250LXdlaWdodDogYm9sZDsKCWN1cnNvcjogcG9pbnRlcjsKCSpjdXJzb3I6IGhhbmQ7Cn0KCnRhYmxlLmRhdGFUYWJsZSB0Zm9vdCB0aCB7CglwYWRkaW5nOiAzcHggMThweCAzcHggMTBweDsKCWJvcmRlci10b3A6IDFweCBzb2xpZCBibGFjazsKCWZvbnQtd2VpZ2h0OiBib2xkOwp9Cgp0YWJsZS5kYXRhVGFibGUgdGQgewoJcGFkZGluZzogM3B4IDEwcHg7Cn0KCnRhYmxlLmRhdGFUYWJsZSB0ZC5jZW50ZXIsCnRhYmxlLmRhdGFUYWJsZSB0ZC5kYXRhVGFibGVzX2VtcHR5IHsKCXRleHQtYWxpZ246IGNlbnRlcjsKfQoKdGFibGUuZGF0YVRhYmxlIHRyLm9kZCB7IGJhY2tncm91bmQtY29sb3I6ICNFMkU0RkY7IH0KdGFibGUuZGF0YVRhYmxlIHRyLmV2ZW4geyBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgfQoKdGFibGUuZGF0YVRhYmxlIHRyLm9kZCB0ZC5zb3J0aW5nXzEgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjRDNENkZGOyB9CnRhYmxlLmRhdGFUYWJsZSB0ci5vZGQgdGQuc29ydGluZ18yIHsgYmFja2dyb3VuZC1jb2xvcjogI0RBRENGRjsgfQp0YWJsZS5kYXRhVGFibGUgdHIub2RkIHRkLnNvcnRpbmdfMyB7IGJhY2tncm91bmQtY29sb3I6ICNFMEUyRkY7IH0KdGFibGUuZGF0YVRhYmxlIHRyLmV2ZW4gdGQuc29ydGluZ18xIHsgYmFja2dyb3VuZC1jb2xvcjogI0VBRUJGRjsgfQp0YWJsZS5kYXRhVGFibGUgdHIuZXZlbiB0ZC5zb3J0aW5nXzIgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjRjJGM0ZGOyB9CnRhYmxlLmRhdGFUYWJsZSB0ci5ldmVuIHRkLnNvcnRpbmdfMyB7IGJhY2tncm91bmQtY29sb3I6ICNGOUY5RkY7IH0KCgovKgogKiBUYWJsZSB3cmFwcGVyCiAqLwouZGF0YVRhYmxlc193cmFwcGVyIHsKCXBvc2l0aW9uOiByZWxhdGl2ZTsKCWNsZWFyOiBib3RoOwoJKnpvb206IDE7Cn0KCgovKgogKiBQYWdlIGxlbmd0aCBtZW51CiAqLwouZGF0YVRhYmxlc19sZW5ndGggewoJZmxvYXQ6IGxlZnQ7Cn0KCgovKgogKiBGaWx0ZXIKICovCi5kYXRhVGFibGVzX2ZpbHRlciB7CglmbG9hdDogcmlnaHQ7Cgl0ZXh0LWFsaWduOiByaWdodDsKfQoKCi8qCiAqIFRhYmxlIGluZm9ybWF0aW9uCiAqLwouZGF0YVRhYmxlc19pbmZvIHsKCWNsZWFyOiBib3RoOwoJZmxvYXQ6IGxlZnQ7Cn0KCgovKgogKiBQYWdpbmF0aW9uCiAqLwouZGF0YVRhYmxlc19wYWdpbmF0ZSB7CglmbG9hdDogcmlnaHQ7Cgl0ZXh0LWFsaWduOiByaWdodDsKfQoKLyogVHdvIGJ1dHRvbiBwYWdpbmF0aW9uIC0gcHJldmlvdXMgLyBuZXh0ICovCi5wYWdpbmF0ZV9kaXNhYmxlZF9wcmV2aW91cywKLnBhZ2luYXRlX2VuYWJsZWRfcHJldmlvdXMsCi5wYWdpbmF0ZV9kaXNhYmxlZF9uZXh0LAoucGFnaW5hdGVfZW5hYmxlZF9uZXh0IHsKCWhlaWdodDogMTlweDsKCWZsb2F0OiBsZWZ0OwoJY3Vyc29yOiBwb2ludGVyOwoJKmN1cnNvcjogaGFuZDsKCWNvbG9yOiAjMTExICFpbXBvcnRhbnQ7Cn0KLnBhZ2luYXRlX2Rpc2FibGVkX3ByZXZpb3VzOmhvdmVyLAoucGFnaW5hdGVfZW5hYmxlZF9wcmV2aW91czpob3ZlciwKLnBhZ2luYXRlX2Rpc2FibGVkX25leHQ6aG92ZXIsCi5wYWdpbmF0ZV9lbmFibGVkX25leHQ6aG92ZXIgewoJdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7Cn0KLnBhZ2luYXRlX2Rpc2FibGVkX3ByZXZpb3VzOmFjdGl2ZSwKLnBhZ2luYXRlX2VuYWJsZWRfcHJldmlvdXM6YWN0aXZlLAoucGFnaW5hdGVfZGlzYWJsZWRfbmV4dDphY3RpdmUsCi5wYWdpbmF0ZV9lbmFibGVkX25leHQ6YWN0aXZlIHsKCW91dGxpbmU6IG5vbmU7Cn0KCi5wYWdpbmF0ZV9kaXNhYmxlZF9wcmV2aW91cywKLnBhZ2luYXRlX2Rpc2FibGVkX25leHQgewoJY29sb3I6ICM2NjYgIWltcG9ydGFudDsKfQoucGFnaW5hdGVfZGlzYWJsZWRfcHJldmlvdXMsCi5wYWdpbmF0ZV9lbmFibGVkX3ByZXZpb3VzIHsKCXBhZGRpbmctbGVmdDogMjNweDsKfQoucGFnaW5hdGVfZGlzYWJsZWRfbmV4dCwKLnBhZ2luYXRlX2VuYWJsZWRfbmV4dCB7CglwYWRkaW5nLXJpZ2h0OiAyM3B4OwoJbWFyZ2luLWxlZnQ6IDEwcHg7Cn0KCi5wYWdpbmF0ZV9lbmFibGVkX3ByZXZpb3VzIHsgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvYmFja19lbmFibGVkLnBuZycpIG5vLXJlcGVhdCB0b3AgbGVmdDsgfQoucGFnaW5hdGVfZW5hYmxlZF9wcmV2aW91czpob3ZlciB7IGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL2JhY2tfZW5hYmxlZF9ob3Zlci5wbmcnKSBuby1yZXBlYXQgdG9wIGxlZnQ7IH0KLnBhZ2luYXRlX2Rpc2FibGVkX3ByZXZpb3VzIHsgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvYmFja19kaXNhYmxlZC5wbmcnKSBuby1yZXBlYXQgdG9wIGxlZnQ7IH0KCi5wYWdpbmF0ZV9lbmFibGVkX25leHQgeyBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9mb3J3YXJkX2VuYWJsZWQucG5nJykgbm8tcmVwZWF0IHRvcCByaWdodDsgfQoucGFnaW5hdGVfZW5hYmxlZF9uZXh0OmhvdmVyIHsgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvZm9yd2FyZF9lbmFibGVkX2hvdmVyLnBuZycpIG5vLXJlcGVhdCB0b3AgcmlnaHQ7IH0KLnBhZ2luYXRlX2Rpc2FibGVkX25leHQgeyBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9mb3J3YXJkX2Rpc2FibGVkLnBuZycpIG5vLXJlcGVhdCB0b3AgcmlnaHQ7IH0KCi8qIEZ1bGwgbnVtYmVyIHBhZ2luYXRpb24gKi8KLnBhZ2luZ19mdWxsX251bWJlcnMgewoJaGVpZ2h0OiAyMnB4OwoJbGluZS1oZWlnaHQ6IDIycHg7Cn0KLnBhZ2luZ19mdWxsX251bWJlcnMgYTphY3RpdmUgewoJb3V0bGluZTogbm9uZQp9Ci5wYWdpbmdfZnVsbF9udW1iZXJzIGE6aG92ZXIgewoJdGV4dC1kZWNvcmF0aW9uOiBub25lOwp9CgoucGFnaW5nX2Z1bGxfbnVtYmVycyBhLnBhZ2luYXRlX2J1dHRvbiwKLnBhZ2luZ19mdWxsX251bWJlcnMgYS5wYWdpbmF0ZV9hY3RpdmUgewoJYm9yZGVyOiAxcHggc29saWQgI2FhYTsKCS13ZWJraXQtYm9yZGVyLXJhZGl1czogNXB4OwoJLW1vei1ib3JkZXItcmFkaXVzOiA1cHg7Cglib3JkZXItcmFkaXVzOiA1cHg7CglwYWRkaW5nOiAycHggNXB4OwoJbWFyZ2luOiAwIDNweDsKCWN1cnNvcjogcG9pbnRlcjsKCSpjdXJzb3I6IGhhbmQ7Cgljb2xvcjogIzMzMyAhaW1wb3J0YW50Owp9CgoucGFnaW5nX2Z1bGxfbnVtYmVycyBhLnBhZ2luYXRlX2J1dHRvbiB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOwp9CgoucGFnaW5nX2Z1bGxfbnVtYmVycyBhLnBhZ2luYXRlX2J1dHRvbjpob3ZlciB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjY2NjOwoJdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7Cn0KCi5wYWdpbmdfZnVsbF9udW1iZXJzIGEucGFnaW5hdGVfYWN0aXZlIHsKCWJhY2tncm91bmQtY29sb3I6ICM5OUIzRkY7Cn0KCgovKgogKiBQcm9jZXNzaW5nIGluZGljYXRvcgogKi8KLmRhdGFUYWJsZXNfcHJvY2Vzc2luZyB7Cglwb3NpdGlvbjogYWJzb2x1dGU7Cgl0b3A6IDUwJTsKCWxlZnQ6IDUwJTsKCXdpZHRoOiAyNTBweDsKCWhlaWdodDogMzBweDsKCW1hcmdpbi1sZWZ0OiAtMTI1cHg7CgltYXJnaW4tdG9wOiAtMTVweDsKCXBhZGRpbmc6IDE0cHggMCAycHggMDsKCWJvcmRlcjogMXB4IHNvbGlkICNkZGQ7Cgl0ZXh0LWFsaWduOiBjZW50ZXI7Cgljb2xvcjogIzk5OTsKCWZvbnQtc2l6ZTogMTRweDsKCWJhY2tncm91bmQtY29sb3I6IHdoaXRlOwp9CgoKLyoKICogU29ydGluZwogKi8KLnNvcnRpbmcgeyBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9zb3J0X2JvdGgucG5nJykgbm8tcmVwZWF0IGNlbnRlciByaWdodDsgfQouc29ydGluZ19hc2MgeyBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9zb3J0X2FzYy5wbmcnKSBuby1yZXBlYXQgY2VudGVyIHJpZ2h0OyB9Ci5zb3J0aW5nX2Rlc2MgeyBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9zb3J0X2Rlc2MucG5nJykgbm8tcmVwZWF0IGNlbnRlciByaWdodDsgfQoKLnNvcnRpbmdfYXNjX2Rpc2FibGVkIHsgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvc29ydF9hc2NfZGlzYWJsZWQucG5nJykgbm8tcmVwZWF0IGNlbnRlciByaWdodDsgfQouc29ydGluZ19kZXNjX2Rpc2FibGVkIHsgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvc29ydF9kZXNjX2Rpc2FibGVkLnBuZycpIG5vLXJlcGVhdCBjZW50ZXIgcmlnaHQ7IH0KIAp0YWJsZS5kYXRhVGFibGUgdGg6YWN0aXZlIHsKCW91dGxpbmU6IG5vbmU7Cn0KCgovKgogKiBTY3JvbGxpbmcKICovCi5kYXRhVGFibGVzX3Njcm9sbCB7CgljbGVhcjogYm90aDsKfQoKLmRhdGFUYWJsZXNfc2Nyb2xsQm9keSB7CgkqbWFyZ2luLXRvcDogLTFweDsKCS13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsKfQoK]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/css/jquery.dataTables_themeroller.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CgovKgogKiBUYWJsZQogKi8KdGFibGUuZGF0YVRhYmxlIHsKCW1hcmdpbjogMCBhdXRvOwoJY2xlYXI6IGJvdGg7Cgl3aWR0aDogMTAwJTsKCWJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7Cn0KCnRhYmxlLmRhdGFUYWJsZSB0aGVhZCB0aCB7CglwYWRkaW5nOiAzcHggMHB4IDNweCAxMHB4OwoJY3Vyc29yOiBwb2ludGVyOwoJKmN1cnNvcjogaGFuZDsKfQoKdGFibGUuZGF0YVRhYmxlIHRmb290IHRoIHsKCXBhZGRpbmc6IDNweCAxMHB4Owp9Cgp0YWJsZS5kYXRhVGFibGUgdGQgewoJcGFkZGluZzogM3B4IDEwcHg7Cn0KCnRhYmxlLmRhdGFUYWJsZSB0ZC5jZW50ZXIsCnRhYmxlLmRhdGFUYWJsZSB0ZC5kYXRhVGFibGVzX2VtcHR5IHsKCXRleHQtYWxpZ246IGNlbnRlcjsKfQoKdGFibGUuZGF0YVRhYmxlIHRyLm9kZCB7IGJhY2tncm91bmQtY29sb3I6ICNFMkU0RkY7IH0KdGFibGUuZGF0YVRhYmxlIHRyLmV2ZW4geyBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgfQoKdGFibGUuZGF0YVRhYmxlIHRyLm9kZCB0ZC5zb3J0aW5nXzEgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjRDNENkZGOyB9CnRhYmxlLmRhdGFUYWJsZSB0ci5vZGQgdGQuc29ydGluZ18yIHsgYmFja2dyb3VuZC1jb2xvcjogI0RBRENGRjsgfQp0YWJsZS5kYXRhVGFibGUgdHIub2RkIHRkLnNvcnRpbmdfMyB7IGJhY2tncm91bmQtY29sb3I6ICNFMEUyRkY7IH0KdGFibGUuZGF0YVRhYmxlIHRyLmV2ZW4gdGQuc29ydGluZ18xIHsgYmFja2dyb3VuZC1jb2xvcjogI0VBRUJGRjsgfQp0YWJsZS5kYXRhVGFibGUgdHIuZXZlbiB0ZC5zb3J0aW5nXzIgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjRjJGM0ZGOyB9CnRhYmxlLmRhdGFUYWJsZSB0ci5ldmVuIHRkLnNvcnRpbmdfMyB7IGJhY2tncm91bmQtY29sb3I6ICNGOUY5RkY7IH0KCgovKgogKiBUYWJsZSB3cmFwcGVyCiAqLwouZGF0YVRhYmxlc193cmFwcGVyIHsKCXBvc2l0aW9uOiByZWxhdGl2ZTsKCWNsZWFyOiBib3RoOwoJKnpvb206IDE7Cn0KLmRhdGFUYWJsZXNfd3JhcHBlciAudWktd2lkZ2V0LWhlYWRlciB7Cglmb250LXdlaWdodDogbm9ybWFsOwp9Ci5kYXRhVGFibGVzX3dyYXBwZXIgLnVpLXRvb2xiYXIgewoJcGFkZGluZzogNXB4Owp9CgoKLyoKICogUGFnZSBsZW5ndGggbWVudQogKi8KLmRhdGFUYWJsZXNfbGVuZ3RoIHsKCWZsb2F0OiBsZWZ0Owp9CgoKLyoKICogRmlsdGVyCiAqLwouZGF0YVRhYmxlc19maWx0ZXIgewoJZmxvYXQ6IHJpZ2h0OwoJdGV4dC1hbGlnbjogcmlnaHQ7Cn0KCgovKgogKiBUYWJsZSBpbmZvcm1hdGlvbgogKi8KLmRhdGFUYWJsZXNfaW5mbyB7CglwYWRkaW5nLXRvcDogM3B4OwoJY2xlYXI6IGJvdGg7CglmbG9hdDogbGVmdDsKfQoKCi8qCiAqIFBhZ2luYXRpb24KICovCi5kYXRhVGFibGVzX3BhZ2luYXRlIHsKCWZsb2F0OiByaWdodDsKCXRleHQtYWxpZ246IHJpZ2h0Owp9CgouZGF0YVRhYmxlc19wYWdpbmF0ZSAudWktYnV0dG9uIHsKCW1hcmdpbi1yaWdodDogLTAuMWVtICFpbXBvcnRhbnQ7Cn0KCi5wYWdpbmdfdHdvX2J1dHRvbiAudWktYnV0dG9uIHsKCWZsb2F0OiBsZWZ0OwoJY3Vyc29yOiBwb2ludGVyOwoJKiBjdXJzb3I6IGhhbmQ7Cn0KCi5wYWdpbmdfZnVsbF9udW1iZXJzIC51aS1idXR0b24gewoJcGFkZGluZzogMnB4IDZweDsKCW1hcmdpbjogMDsKCWN1cnNvcjogcG9pbnRlcjsKCSogY3Vyc29yOiBoYW5kOwoJY29sb3I6ICMzMzMgIWltcG9ydGFudDsKfQoKLyogVHdvIGJ1dHRvbiBwYWdpbmF0aW9uIC0gcHJldmlvdXMgLyBuZXh0ICovCi5wYWdpbmF0ZV9kaXNhYmxlZF9wcmV2aW91cywKLnBhZ2luYXRlX2VuYWJsZWRfcHJldmlvdXMsCi5wYWdpbmF0ZV9kaXNhYmxlZF9uZXh0LAoucGFnaW5hdGVfZW5hYmxlZF9uZXh0IHsKCWhlaWdodDogMTlweDsKCWZsb2F0OiBsZWZ0OwoJY3Vyc29yOiBwb2ludGVyOwoJKmN1cnNvcjogaGFuZDsKCWNvbG9yOiAjMTExICFpbXBvcnRhbnQ7Cn0KLnBhZ2luYXRlX2Rpc2FibGVkX3ByZXZpb3VzOmhvdmVyLAoucGFnaW5hdGVfZW5hYmxlZF9wcmV2aW91czpob3ZlciwKLnBhZ2luYXRlX2Rpc2FibGVkX25leHQ6aG92ZXIsCi5wYWdpbmF0ZV9lbmFibGVkX25leHQ6aG92ZXIgewoJdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7Cn0KLnBhZ2luYXRlX2Rpc2FibGVkX3ByZXZpb3VzOmFjdGl2ZSwKLnBhZ2luYXRlX2VuYWJsZWRfcHJldmlvdXM6YWN0aXZlLAoucGFnaW5hdGVfZGlzYWJsZWRfbmV4dDphY3RpdmUsCi5wYWdpbmF0ZV9lbmFibGVkX25leHQ6YWN0aXZlIHsKCW91dGxpbmU6IG5vbmU7Cn0KCi5wYWdpbmF0ZV9kaXNhYmxlZF9wcmV2aW91cywKLnBhZ2luYXRlX2Rpc2FibGVkX25leHQgewoJY29sb3I6ICM2NjYgIWltcG9ydGFudDsKfQoucGFnaW5hdGVfZGlzYWJsZWRfcHJldmlvdXMsCi5wYWdpbmF0ZV9lbmFibGVkX3ByZXZpb3VzIHsKCXBhZGRpbmctbGVmdDogMjNweDsKfQoucGFnaW5hdGVfZGlzYWJsZWRfbmV4dCwKLnBhZ2luYXRlX2VuYWJsZWRfbmV4dCB7CglwYWRkaW5nLXJpZ2h0OiAyM3B4OwoJbWFyZ2luLWxlZnQ6IDEwcHg7Cn0KCi5wYWdpbmF0ZV9lbmFibGVkX3ByZXZpb3VzIHsgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvYmFja19lbmFibGVkLnBuZycpIG5vLXJlcGVhdCB0b3AgbGVmdDsgfQoucGFnaW5hdGVfZW5hYmxlZF9wcmV2aW91czpob3ZlciB7IGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL2JhY2tfZW5hYmxlZF9ob3Zlci5wbmcnKSBuby1yZXBlYXQgdG9wIGxlZnQ7IH0KLnBhZ2luYXRlX2Rpc2FibGVkX3ByZXZpb3VzIHsgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvYmFja19kaXNhYmxlZC5wbmcnKSBuby1yZXBlYXQgdG9wIGxlZnQ7IH0KCi5wYWdpbmF0ZV9lbmFibGVkX25leHQgeyBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9mb3J3YXJkX2VuYWJsZWQucG5nJykgbm8tcmVwZWF0IHRvcCByaWdodDsgfQoucGFnaW5hdGVfZW5hYmxlZF9uZXh0OmhvdmVyIHsgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvZm9yd2FyZF9lbmFibGVkX2hvdmVyLnBuZycpIG5vLXJlcGVhdCB0b3AgcmlnaHQ7IH0KLnBhZ2luYXRlX2Rpc2FibGVkX25leHQgeyBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9mb3J3YXJkX2Rpc2FibGVkLnBuZycpIG5vLXJlcGVhdCB0b3AgcmlnaHQ7IH0KCi8qIEZ1bGwgbnVtYmVyIHBhZ2luYXRpb24gKi8KLnBhZ2luZ19mdWxsX251bWJlcnMgYTphY3RpdmUgewoJb3V0bGluZTogbm9uZQp9Ci5wYWdpbmdfZnVsbF9udW1iZXJzIGE6aG92ZXIgewoJdGV4dC1kZWNvcmF0aW9uOiBub25lOwp9CgoucGFnaW5nX2Z1bGxfbnVtYmVycyBhLnBhZ2luYXRlX2J1dHRvbiwKLnBhZ2luZ19mdWxsX251bWJlcnMgYS5wYWdpbmF0ZV9hY3RpdmUgewoJYm9yZGVyOiAxcHggc29saWQgI2FhYTsKCS13ZWJraXQtYm9yZGVyLXJhZGl1czogNXB4OwoJLW1vei1ib3JkZXItcmFkaXVzOiA1cHg7Cglib3JkZXItcmFkaXVzOiA1cHg7CglwYWRkaW5nOiAycHggNXB4OwoJbWFyZ2luOiAwIDNweDsKCWN1cnNvcjogcG9pbnRlcjsKCSpjdXJzb3I6IGhhbmQ7Cgljb2xvcjogIzMzMyAhaW1wb3J0YW50Owp9CgoucGFnaW5nX2Z1bGxfbnVtYmVycyBhLnBhZ2luYXRlX2J1dHRvbiB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOwp9CgoucGFnaW5nX2Z1bGxfbnVtYmVycyBhLnBhZ2luYXRlX2J1dHRvbjpob3ZlciB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjY2NjOwoJdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7Cn0KCi5wYWdpbmdfZnVsbF9udW1iZXJzIGEucGFnaW5hdGVfYWN0aXZlIHsKCWJhY2tncm91bmQtY29sb3I6ICM5OUIzRkY7Cn0KCgovKgogKiBQcm9jZXNzaW5nIGluZGljYXRvcgogKi8KLmRhdGFUYWJsZXNfcHJvY2Vzc2luZyB7Cglwb3NpdGlvbjogYWJzb2x1dGU7Cgl0b3A6IDUwJTsKCWxlZnQ6IDUwJTsKCXdpZHRoOiAyNTBweDsKCWhlaWdodDogMzBweDsKCW1hcmdpbi1sZWZ0OiAtMTI1cHg7CgltYXJnaW4tdG9wOiAtMTVweDsKCXBhZGRpbmc6IDE0cHggMCAycHggMDsKCWJvcmRlcjogMXB4IHNvbGlkICNkZGQ7Cgl0ZXh0LWFsaWduOiBjZW50ZXI7Cgljb2xvcjogIzk5OTsKCWZvbnQtc2l6ZTogMTRweDsKCWJhY2tncm91bmQtY29sb3I6IHdoaXRlOwp9CgoKLyoKICogU29ydGluZwogKi8KdGFibGUuZGF0YVRhYmxlIHRoZWFkIHRoIGRpdi5EYXRhVGFibGVzX3NvcnRfd3JhcHBlciB7Cglwb3NpdGlvbjogcmVsYXRpdmU7CglwYWRkaW5nLXJpZ2h0OiAyMHB4Owp9Cgp0YWJsZS5kYXRhVGFibGUgdGhlYWQgdGggZGl2LkRhdGFUYWJsZXNfc29ydF93cmFwcGVyIHNwYW4gewoJcG9zaXRpb246IGFic29sdXRlOwoJdG9wOiA1MCU7CgltYXJnaW4tdG9wOiAtOHB4OwoJcmlnaHQ6IDA7Cn0KCnRhYmxlLmRhdGFUYWJsZSB0aDphY3RpdmUgewoJb3V0bGluZTogbm9uZTsKfQoKCi8qCiAqIFNjcm9sbGluZwogKi8KLmRhdGFUYWJsZXNfc2Nyb2xsIHsKCWNsZWFyOiBib3RoOwp9CgouZGF0YVRhYmxlc19zY3JvbGxCb2R5IHsKCSptYXJnaW4tdG9wOiAtMXB4OwoJLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOwp9Cgo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/images/back_disabled.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OENDQ0Q2NzcxQjNDMTFFMTgzMjk4NTg3RjVGMTg0RDIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OENDQ0Q2NzgxQjNDMTFFMTgzMjk4NTg3RjVGMTg0RDIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4Q0NDRDY3NTFCM0MxMUUxODMyOTg1ODdGNUYxODREMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4Q0NDRDY3NjFCM0MxMUUxODMyOTg1ODdGNUYxODREMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PrjJ0tsAAAHFSURBVHjarJM7S8NQFMdzk9CE+ASxQ4NbcaxDtWDaKRB1k0wFP4Do4NTJwY9QCm2guPQLuHQvOBZaOuggOAmZWlQsarCkj8Rz5URiG2IKvfDnnt7e/M7jnkNc12UWtVhmgWuhMIamOUeqpFqtZsvlcgoDIagfxjyREYDswH4JH+7CHgNx/gt8FIphGFscx50QQi5AsmVZt3C8DPoC2aDJv7BSqbQmCMIxAM5Ylt33zvv9PgWtIWQYGlmhUOCTyaQK5jlAjmAX/f9DZBS0Cvr0ajYDKxaLK5Ik7YGZh2h00GaQM9u2JdgErFkgjEBhJZAO9TkNS99xHH66+DN9VqlU3jqdjtHtdq/A+1NIO5Gg8z9pmqbJ1Gq1ZzBvFEUxc7lcXpblrCiK61FeffoBaPeOQYNms/kIutY07T6TyRwkEokUz/OxqDAKcrBv3j270WhYrVbrQVVVJZ1Oa/F4fBtqSvB+aGQUMMKd9s+APv8HrHq9/tput+90XT+Enz3MwPVDiTeX0AZBj8Ph2Cxhk26gTZ29gHqYxYhywibAQa8TjJZGaSGMxVEa4r1Is+mlMfJBLYx4jDB3rkH3RejVkvU5+oV9CzAAh3Ks+xqtzZMAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/images/back_enabled.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OENDQ0Q2NzMxQjNDMTFFMTgzMjk4NTg3RjVGMTg0RDIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OENDQ0Q2NzQxQjNDMTFFMTgzMjk4NTg3RjVGMTg0RDIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0N0UwNjdENjFCM0MxMUUxODMyOTg1ODdGNUYxODREMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4Q0NDRDY3MjFCM0MxMUUxODMyOTg1ODdGNUYxODREMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmyBEQIAAAHXSURBVHjaYvz//z8DtQATAxUBVQ1jAHmTBK8ydk38Zd3W+1kP6hBGKAabQYrLGIGG6AOpyv///5kA+WxAzIysgIUYU9r7vsoyM7NGMTIy5zIyMkp/+fx6H1CYB4i/AfFPIP5L0LDmzrf8bOw8/oyMTBlMTMyWMPFPH5+CDOKHGvILr8sy8/axKCrbOAG9lAk0xAMoxIEs//XLG5BBfED8GRZmGIY1tr/i5eQSMAXKhwNdEwj0kig2y37+/MIFpNihYYbVMEZgwHIBYyWQmZklDZ/3//37w4Ie+BjpbM5073cXzq2c8vLF9Vqg7fdwJieG/4zYxFG8+eTxWYbli+JeAZmrTc0THppbJYdLSutZs7PzCpCTA0Cp9w8Qfz99csGNKf22M3dta5r29PG5M3///vpFyDAWNIP+QdPNRxj74L7eL+dOL7lq45BrpW8Y5ioiqqLGzMTKCFXPgC/Rggz4DaVBLvkOiv7Pn19+2r655s35M8svePm1u3/+/OIF1Af/kQ1lhOVLYDLAFgTM0GzDDU2kwlA2yLLXQPwC6ovfIHPw5YB/UFv/Ql0LcuUXqGFM0Kz0C6qOqLwJ88ZvJEO/QF38B2rYf5IyOpILYWHJhGQR3DCAAAMAeLyzTU4/H0wAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/images/back_enabled_hover.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MUYwQzBGOUUxQjNFMTFFMTgzMjk4NTg3RjVGMTg0RDIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MUYwQzBGOUYxQjNFMTFFMTgzMjk4NTg3RjVGMTg0RDIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxRjBDMEY5QzFCM0UxMUUxODMyOTg1ODdGNUYxODREMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxRjBDMEY5RDFCM0UxMUUxODMyOTg1ODdGNUYxODREMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PpI63WsAAAHTSURBVHjaYvz//z8DtQATAxUBVQ1jAHmTBK8yBkXfsfaPuKYHdQgjFIPNIMVljEBD9IFUJVCnCZDPBsTMyApYiDElIPKGLBMTSxQjI3Mu0DDpnz/f7gMK8wDxNyD+CcR/CRrmG3aRn4WF25+RkTEDaJAlTPz7txcgg/ihhvzC6zI71xUsImImTkBXZAIN8QAKcSDL//r5HmQQHxB/hoUZhmE+oed42dj4TIHy4YyMTIFAWhSbZX9+f+UCUuzQMMNqGCMwYLmAkRLIxMSchs/7//7/ZUEPfIx0dnRfwrsnDzdP+fzxTu2fP1/v4UlQjNhEUbz5/t1lhtNHC18BmavllUMeKqpEhPMLaFqzsHILkJMDQKn3DyjCHt5dc+PAzpCZ1y5NmPbh3ZUz//79/kXIMBY0g/5B081HGPv29dlfHt1ff1VFI9FKRt7blYdXQY2JkYURqp4BX6IFGfAbSoNc8h0U/T9/vPl09UL3m8cPNl7QMSx3//Hj9QuoD/4jG8oIy5fAhIktCJih2YYbmkiFoWyQZa+B+AXUF79B5uDLAf+gtv6Fuhbkyi9Qw5igWekXVB1ReRPmjd9Ihn6BuvgP1LD/JGV0JBfCwpIJySK4YQABBgAZMK2LcOdRHQAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/images/favicon.ico</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[AAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAABMLAAATCwAAAAAAAAAAAAD////////////////c3d5tcXE9Pj4+OThAOjg/Pz9fZGTGycn////////////////////////+/v6ChYY9NjNyUUmsdmzLiH3Qg3m6bGOKUktQPTppbW3r7Oz///////////////9vcnI0JR+8hHfdjYHde3LlkIryw8DsrKbkf3fVd29fOjVTVVX19fX///////+WmZo4KSTKj4LWhnvXeG/denPrqaX219X//v745ePgjojcd3BmPDhkamv////z9PUxLy6hdGjUjoHVf3XZeG/km5XxxsLrsq7kmpX12Nb46+rbjonFaGJFNDLW2tqxtLVUPjfSmIjQh3vVf3TbiIDsu7bxw7/lkIvWb2jQfXfz29rvw8HieXSEQT17f39tbm6HYlbTmYnOjX/Qj4Hetq3p083Ytq7HiX3QdG3UcGvntbHzw8LnfnuwT0xCQUFOTk6YcWPRmorIk4PQppnjzsfgycLDnJCvhHawd2zLbmnttLHytrXocXDEU1I5MjJVVVSYcWPQnIvLnY3ew7no1M3Ws6jElYW8j3+yf3LNiIPut7bunp3nXVzDTkw4MTF+gICFYlbUoZDXs6fo08vhxbvNn4/GloW/kIC9jYDerqrvuLjpfXzpUVGvQT9FQ0PHyspRPjjUo5Pmz8f48e/aua3GkoDEkoDAk4PSrqXrxcLsnZzkWlrvVVV2KSeJjo76+/tFRESWbmDes6Tu39r7+Pfjy8LUsaXZvLPp0czttrTmbGvqUFDIR0YyICDk6Oj////CxcY6Lyu8i3rSnIvau6/38e76+Pfz5eLqvbnkeHXqUE/pVFNJFRR9hYX///////////+ipKUzKSWfdWfUnYvXn4/doJTikYnpc27yWljPRkU9Dw5rcHD///////////////////+ztrdMSEdiSUGFWk+lY1muVlCaOzh1JydHMzKJkJD////////////////////////////8/f2tsLFeYGE6OTk1MzNOUVGSmZrs8PD///////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/images/forward_disabled.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OENDQ0Q2N0IxQjNDMTFFMTgzMjk4NTg3RjVGMTg0RDIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OENDQ0Q2N0MxQjNDMTFFMTgzMjk4NTg3RjVGMTg0RDIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4Q0NDRDY3OTFCM0MxMUUxODMyOTg1ODdGNUYxODREMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4Q0NDRDY3QTFCM0MxMUUxODMyOTg1ODdGNUYxODREMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pu7MQ98AAAHHSURBVHjarJRNSwJRFIbnq5KBHAgXqZC7Fu36AS4iF21c1b8IWrmypbYQI5cuCqJli3DRVhSiiQZCGnftJJghnNEhp1Kbr86VK1y/J/DAi9cz9zyc9565Q3ueRy0rGGqJsVQYN1zQEMVi8QCWu4qiXGaz2RasPayFgY6L7Iy2bTvGMMxZJBK5zeVyR8lkUoA8i5791ybd7/cHRSzL7gmCcJ1IJK4ymcw+pFbwXtovjIHOWMI2HwgEDkOh0E2hULhIp9M7+FgYXwNwHIed2MAwmzzPH0ej0bt8Pn+SSqViECvTuhyx6bruTBscx20Hg8HzcDh8Go/Htwjrk9NcFJZldTRNExuNxossy6uQWgO55MQXwqBbW1XVN0mSHqrV6jNAFQzhxq3Ohem6/l6r1aRKpfJqGIYGqS9QF/RLdDUdBoc9OAN4Rdr1ev2pXC7LYEuF1CeoRaiDtmHgdBhYskzTfCyVSveiKBq4gzYBQdBvDLLHbwgJ85rNpgx2TAB94GfIlg4y8LqHZjHrmtHDTxC8pKh4HbSBfx2QibvpYog7664izkhnuH1U/IOLe1iOnwtPwlxiSsP/zrxu5sEoopgiAL4/xX8CDABNTsnSn2GkBgAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/images/forward_enabled.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDdFMDY3RDQxQjNDMTFFMTgzMjk4NTg3RjVGMTg0RDIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDdFMDY3RDUxQjNDMTFFMTgzMjk4NTg3RjVGMTg0RDIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0N0UwNjdEMjFCM0MxMUUxODMyOTg1ODdGNUYxODREMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0N0UwNjdEMzFCM0MxMUUxODMyOTg1ODdGNUYxODREMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgHnMK0AAAHYSURBVHjaYvz//z8DtQATAxUBVQ1jgTEYgaBr4m8PBob/hs+fXZ7d32n8Fij8H4oJAlBwIbuM8e+fn/JMTCytEpI6K2ubH4e4edXzA8WZQXKkepPx588vYE3MzKyOfPyS8+2diuZU1N1yBgqxQtUyEmsY09+/v5gR3mbiYmfnDRYSVljY3Pm2L7/0lBY0WJiIioA/fxCGwRUwsUhwcglmS0rprq1vfZaXlX9AXkbWmBWbK1G8+f//P5zeYGFhV+Plk+gRl9CqtrBOlUPyOmZsEgJ/fv/49ObN3aOPH50+c/XyZjagEDsQ/0OOcYKG/fv358+L51dvnju97NCRQ5NPAA19CjWEBd2reA179/b+o0sX1pw8cnDKhQ/vH78GCn0B4u9A/AvJVdgNA8YgOAx+/fr67trlzccO7Z9w8dHDU8+AQh+B+C0S/gTEP6EGYjfs//+/v798fnVk2+bqzaeOz30PdcE7JENAhn6FGvQHPYcgG/b/9avbFz99fPoZaNALqBzIW2+A+D2U/QOIf+PKZoywIgiYNUGaeYFYCEr/BeLPUNd8hxryD1deBZmD4jKo80Gav0E1/4Div8RkeGTD/iHFEoz/F59r8BnGgKSZAckAootigAADALCxy490ww3/AAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/images/forward_enabled_hover.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MUYwQzBGOUExQjNFMTFFMTgzMjk4NTg3RjVGMTg0RDIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MUYwQzBGOUIxQjNFMTFFMTgzMjk4NTg3RjVGMTg0RDIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxRjBDMEY5ODFCM0UxMUUxODMyOTg1ODdGNUYxODREMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxRjBDMEY5OTFCM0UxMUUxODMyOTg1ODdGNUYxODREMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Phw0MooAAAHXSURBVHjaYvz//z8DtQDj4DeMEQiCou96MDD8N/z4/ubsvdu83wKF/0MxQQAyhwnZ4H9/f8kzMrK08gmor/QKOhGipVfADxRnBskRYyCKYX/+fANrYmJiceTgFJuvqpk6x93/gDNQiBWqlpFYw5j+/fvFDDeZkYmLhZU7mJtHZqFv2MU+J89NWkBhFjQ9OA1j+PfvNzNGoDKySLCx8WfzC2is9Q4+nWfvtkpeUEiXFZsrmVAj4x9ObzAxs6lxcIr28PKrVCuqRsoheR0OWIiN9r9/f376+vnh0fdvL5159mQPG1CIHeQZ5BhnIRzlf/58+nD75qP7Gw7dvbngBNDQp1BDWNC9itewr18eP3r6aNvJOzcWXPj+7flroNAXIP4OxL+QXIXdMGAMgsMAmETePX+y99id63Muvnt78RlQ6CMQv0XCn4D4J9RA7Ib9///3988fb49cudC1+cGdle+hLniHZAjI0K9Qg/6g5xBkw/5/+fTg4vfvLz4DDXoBlQN56w0Qv4eyfwDxb1zZDDlvgjTzArEQlP4LxJ+hrvkONeQfrrwKMgfZMGZodHNB09BvqEt+QA3+Tyijo5Qa0EwN8/o/qCH/iCk5sBnGgJR2/qPRBA0DCDAAk+Xcf7FLjA8AAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/images/Sorting icons.psd</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[OEJQUwABAAAAAAAAAAQAAAATAAAAEwAIAAMAAAAAAABZOjhCSU0EJQAAAAAAEAAAAAAAAAAAAAAAAAAAAAA4QklNBCQAAAAAOUs8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSIzLjEuMS0xMTIiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iPgogICAgICAgICA8ZGM6Zm9ybWF0PmFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5waG90b3Nob3A8L2RjOmZvcm1hdD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhhcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx4YXA6Q3JlYXRvclRvb2w+QWRvYmUgUGhvdG9zaG9wIENTMiBXaW5kb3dzPC94YXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4YXA6Q3JlYXRlRGF0ZT4yMDEwLTAxLTE3VDA4OjQzOjM5WjwveGFwOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4YXA6TW9kaWZ5RGF0ZT4yMDEwLTAxLTE3VDA5OjUzOjA2WjwveGFwOk1vZGlmeURhdGU+CiAgICAgICAgIDx4YXA6TWV0YWRhdGFEYXRlPjIwMTAtMDEtMTdUMDk6NTM6MDZaPC94YXA6TWV0YWRhdGFEYXRlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eGFwTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iPgogICAgICAgICA8eGFwTU06RG9jdW1lbnRJRD51dWlkOjIyMENGQTY4NDQwM0RGMTFBOUE4QkRCNjAzQTREOTBEPC94YXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eGFwTU06SW5zdGFuY2VJRD51dWlkOkM3QjVFMzNBNDYwM0RGMTFBOUE4QkRCNjAzQTREOTBEPC94YXBNTTpJbnN0YW5jZUlEPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjAwOTAvMTAwMDA8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOllSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6TmF0aXZlRGlnZXN0PjI1NiwyNTcsMjU4LDI1OSwyNjIsMjc0LDI3NywyODQsNTMwLDUzMSwyODIsMjgzLDI5NiwzMDEsMzE4LDMxOSw1MjksNTMyLDMwNiwyNzAsMjcxLDI3MiwzMDUsMzE1LDMzNDMyO0I0MUQ2RDExOEQyNjVFMkUyOEFGNTU3RTk5QzA3MUExPC90aWZmOk5hdGl2ZURpZ2VzdD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjE5PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjE5PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOk5hdGl2ZURpZ2VzdD4zNjg2NCw0MDk2MCw0MDk2MSwzNzEyMSwzNzEyMiw0MDk2Miw0MDk2MywzNzUxMCw0MDk2NCwzNjg2NywzNjg2OCwzMzQzNCwzMzQzNywzNDg1MCwzNDg1MiwzNDg1NSwzNDg1NiwzNzM3NywzNzM3OCwzNzM3OSwzNzM4MCwzNzM4MSwzNzM4MiwzNzM4MywzNzM4NCwzNzM4NSwzNzM4NiwzNzM5Niw0MTQ4Myw0MTQ4NCw0MTQ4Niw0MTQ4Nyw0MTQ4OCw0MTQ5Miw0MTQ5Myw0MTQ5NSw0MTcyOCw0MTcyOSw0MTczMCw0MTk4NSw0MTk4Niw0MTk4Nyw0MTk4OCw0MTk4OSw0MTk5MCw0MTk5MSw0MTk5Miw0MTk5Myw0MTk5NCw0MTk5NSw0MTk5Niw0MjAxNiwwLDIsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsMTYsMTcsMTgsMjAsMjIsMjMsMjQsMjUsMjYsMjcsMjgsMzA7N0E2NzM3NjlEMjBCRUM3MjczQkVGQjA5RkJDQ0Y3QzU8L2V4aWY6TmF0aXZlRGlnZXN0PgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIj4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHBob3Rvc2hvcDpJQ0NQcm9maWxlPnNSR0IgSUVDNjE5NjYtMi4xPC9waG90b3Nob3A6SUNDUHJvZmlsZT4KICAgICAgICAgPHBob3Rvc2hvcDpIaXN0b3J5Lz4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4AOEJJTQPtAAAAAAAQAEgCTgABAAIASAJOAAEAAjhCSU0EJgAAAAAADgAAAAAAAAAAAAA/gAAAOEJJTQPuAAAAAAANDFRyYW5zcGFyZW5jeQA4QklNBBUAAAAAAB4AAAANAFQAcgBhAG4AcwBwAGEAcgBlAG4AYwB5AAA4QklNA+8AAAAAAA4AAP//AAAAAAAAAGQBADhCSU0EHQAAAAAABAAAAAA4QklNBA0AAAAAAAQAAAB4OEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNBAoAAAAAAAEAADhCSU0nEAAAAAAACgABAAAAAAAAAAI4QklNA/UAAAAAAEgAL2ZmAAEAbGZmAAYAAAAAAAEAL2ZmAAEAoZmaAAYAAAAAAAEAMgAAAAEAWgAAAAYAAAAAAAEANQAAAAEALQAAAAYAAAAAAAE4QklNA/gAAAAAAHAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAOEJJTQQAAAAAAAACAAM4QklNBAIAAAAAAAoAAAAAAAAAAAAAOEJJTQQwAAAAAAAFAQEBAQEAOEJJTQQtAAAAAAAGAAEAAAAOOEJJTQQIAAAAAAAQAAAAAQAAAkAAAAJA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AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAD3gAAABAAAAABAAAAAAAOVGFyZ2V0U2V0dGluZ3MAAAATAAAAAENsclRPYmpjAAAAAQAAAAAACkNvbG9yVGFibGUAAAACAAAAAENscnNWbExzAAAAAAAAAAdpc0V4YWN0Ym9vbAAAAAAATXR0Q09iamMAAAABAAAAAAAKTmF0aXZlUXVhZAAAAAMAAAAAQmwgIGxvbmcAAAD/AAAAAEdybiBsb25nAAAA/wAAAABSZCAgbG9uZwAAAP8AAAAAVHJuc2Jvb2wBAAAAC2FkZE1ldGFkYXRhYm9vbAEAAAAKYXV0b1JlZHVjZWJvb2wAAAAAEWNvbG9yVGFibGVDb250cm9sT2JqYwAAAAEAAAAAABFDb2xvclRhYmxlQ29udHJvbAAAAAIAAAAMbG9ja2VkQ29sb3JzVmxMcwAAAAAAAAAMc2hpZnRFbnRyaWVzVmxMcwAAAAAAAAAPZGl0aGVyQWxnb3JpdGhtZW51bQAAAA9EaXRoZXJBbGdvcml0aG0AAAAARGZzbgAAAA1kaXRoZXJQZXJjZW50bG9uZwAAAGQAAAAKZmlsZUZvcm1hdGVudW0AAAAKRmlsZUZvcm1hdAAAAARQTkc4AAAACmludGVybGFjZWRib29sAAAAAAxub01hdHRlQ29sb3Jib29sAAAAAAludW1Db2xvcnNsb25nAAABAAAAABJyZWR1Y3Rpb25BbGdvcml0aG1lbnVtAAAAElJlZHVjdGlvbkFsZ29yaXRobQAAAABTZWxlAAAAFXJvbGxvdmVyTWFzdGVyUGFsZXR0ZWJvb2wAAAAAG3RyYW5zcGFyZW5jeURpdGhlckFsZ29yaXRobWVudW0AAAAPRGl0aGVyQWxnb3JpdGhtAAAAAE5vbmUAAAAYdHJhbnNwYXJlbmN5RGl0aGVyQW1vdW50bG9uZwAAAGQAAAAPd2ViU2hpZnRQZXJjZW50bG9uZwAAAAAAAAALem9uZWREaXRoZXJPYmpjAAAAAQAAAAAACVpvbmVkSW5mbwAAAAQAAAAJY2hhbm5lbElEbG9uZ/////8AAAANZW1waGFzaXplVGV4dGJvb2wAAAAAEGVtcGhhc2l6ZVZlY3RvcnNib29sAAAAAAVmbG9vcmxvbmcAAAAAAAAAFHpvbmVkSGlzdG9ncmFtV2VpZ2h0T2JqYwAAAAEAAAAAAAlab25lZEluZm8AAAAEAAAACWNoYW5uZWxJRGxvbmf/////AAAADWVtcGhhc2l6ZVRleHRib29sAAAAABBlbXBoYXNpemVWZWN0b3JzYm9vbAAAAAAFZmxvb3Jsb25nAAAAADhC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Z2x3AAAAKgAAAAIABQAAAAAAAAAA/////769AAA4QklNc2NybgC/AAD/////vr0AADhCSU1pZ2x3AAAAKwAAAAIABQAAAAAAAAAA/////769AAA4QklNc2NybgC/AQAA/////769AAA4QklNYmV2bAAAAE4AAAACAHgAAAAFAAAABQAAOEJJTXNjcm44QklNbXVsIAAA////////AAAAAAAAAAAAAAAAAr+/AAEAAAD///////8AAAAAAAAAAAAAAAA4QklNc29maQAAACIAAAACOEJJTW5vcm0AAP///////wAAgAEAAP///////wAAAAA4QklNbHVuaQAAACAAAAANAEQAbwB3AG4AIABkAGkAcwBhAGIAbABlAGQAADhCSU1seWlkAAAABAAAAA44QklNY2xibAAAAAQBAAAAOEJJTWluZngAAAAEAAAAADhCSU1rbmtvAAAABAAAAAA4QklNbHNwZgAAAAQAAAAAOEJJTWxjbHIAAAAIAAAAAAAAAAA4QklNZnhycAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAUAAAAJAAAADgAE//8AAABKAAAAAABKAAEAAABKAAIAAABKOEJJTW5vcm3/AAoAAAADjAAAAAAAAAAoAAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wtVcCBEaXNhYmxlZDhCSU1sZngyAAABBAAAAAAAAAAQAAAAAQAAAAAAAG51bGwAAAADAAAAAFNjbCBVbnRGI1ByY0BZAMzcccccAAAADm1hc3RlckZYU3dpdGNoYm9vbAEAAAAAU29GaU9iamMAAAABAAAAAAAAU29GaQAAAAQAAAAAZW5hYmJvb2wBAAAAAE1kICBlbnVtAAAAAEJsbk0AAAAATnJtbAAAAABPcGN0VW50RiNQcmNASQAAAAAAAAAAAABDbHIgT2JqYwAAAAEAAAAAAABSR0JDAAAAAwAAAABSZCAgZG91YkBv4AAAAAAAAAAAAEdybiBkb3ViQG/gAAAAAAAAAAAAQmwgIGRvdWJAb+AAAAAAAAAAOEJJTWxyRlgAAAGMAAAABzhCSU1jbW5TAAAABwAAAAABAAA4QklNZHNkdwAAADMAAAACAAUAAAAAAAAAeAAAAAUAAAAAAAAAAAAAAAA4QklNbXVsIAABvwAAAAAAAAAAAAA4QklNaXNkdwAAADMAAAACAAUAAAAAAAAAeAAAAAUAAAAAAAAAAAAAAAA4QklNbXVsIAABvwAAAAAAAAAAAAA4QklNb2dsdwAAACoAAAACAAUAAAAAAAAAAP////++vQAAOEJJTXNjcm4AvwAA/////769AAA4QklNaWdsdwAAACsAAAACAAUAAAAAAAAAAP////++vQAAOEJJTXNjcm4AvwEAAP////++vQAAOEJJTWJldmwAAABOAAAAAgB4AAAABQAAAAUAADhCSU1zY3JuOEJJTW11bCAAAP///////wAAAAAAAAAAAAAAAAK/vwABAAAA////////AAAAAAAAAAAAAAAAOEJJTXNvZmkAAAAiAAAAAjhCSU1ub3JtAAD///////8AAIABAAD///////8AAAAAOEJJTWx1bmkAAAAcAAAACwBVAHAAIABEAGkAcwBhAGIAbABlAGQAADhCSU1seWlkAAAABAAAAA84QklNY2xibAAAAAQBAAAAOEJJTWluZngAAAAEAAAAADhCSU1rbmtvAAAABAAAAAA4QklNbHNwZgAAAAQAAAAAOEJJTWxjbHIAAAAIAAAAAAAAAAA4QklNZnhycAAAABAAAAAAAAAAAMAQAAAAAAAAAAEAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAu7/7v/u/+7/7v/u/+7/7v/u/+7/7v/u/+7/7v/u/+7/7v/u/+7/AAEAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAu7/7v/u/+7/7v/u/+7/7v/u/+7/7v/u/+7/7v/u/+7/7v/u/+7/AAEAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAu7/7v/u/+7/7v/u/+7/7v/u/+7/7v/u/+7/7v/u/+7/7v/u/+7/AAEAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAu7/7v/u/+7/7v/u/+7/7v/u/+7/7v/u/+7/7v/u/+7/7v/u/+7/AAB4/////////1oG4f//////wwAAWv/////8MAAAAMP///+WAAAAADD8//MbAAAAAACW/3gAAAAAAAASyQYAAAAAAAAACQAAAAAAAQACAAIAAgACAAIAAgACAAL4jPiM+Iz4jPiM+Iz4jPiMAAEAAgACAAIAAgACAAIAAgAC+JP4k/iT+JP4k/iT+JP4kwABAAIAAgACAAIAAgACAAIAAvj++P74/vj++P74/vj++P4AAAAAAAAJAAAAAAAAAAbJEgAAAAAAAHj/lgAAAAAAG/P//DAAAAAAlv///8MAAAAw/P////9aAADD///////hBlr/////////eAABAAIAAgACAAIAAgACAAIAAviM+Iz4jPiM+Iz4jPiM+IwAAQACAAIAAgACAAIAAgACAAL4k/iT+JP4k/iT+JP4k/iTAAEAAgACAAIAAgACAAIAAgAC+P74/vj++P74/vj++P74/gAAeP////////9aBuH//////8MAAFr//////DAAAADD////lgAAAAAw/P/zGwAAAAAAlv94AAAAAAAAEskGAAAAAAAAAAkAAAAAAACbm5qbmpubm5uampuampqbmpubm5ubm5uam5uanJqbm5ubmpubmpubm5ubmpqbm5uam5ucmpuampubmpybm5qbm5uampqbmpsAAJubmpuam5ubm5qam5qampuam5ubm5ubm5qbm5qcmpubm5uam5uam5ubm5uampubm5qbm5yam5qam5uanJubmpubm5qampuamwAAm5uam5qbm5ubmpqbmpqam5qbm5ubm5ubmpubmpyam5ubm5qbm5qbm5ubm5qam5ubmpubnJqbmpqbm5qcm5uam5ubmpqam5qbAAAAAAAACQAAAAAAAAAGyRIAAAAAAAB4/5YAAAAAABvz//wwAAAAAJb////DAAAAMPz/////WgAAw///////4QZa/////////3gAAJubm5ubm5qbm5qbm5uam5ubm5ubm5ubm5qampuam5ubm5uam5ubm5qam5ubm5uampubm5qam5qbm5ubm5ubm5uam5ubm5qanAAAm5ubm5ubmpubmpubm5qbm5ubm5ubm5ubmpqam5qbm5ubm5qbm5ubmpqbm5ubm5qam5ubmpqbmpubm5ubm5ubm5qbm5ubmpqcAACbm5ubm5uam5uam5ubmpubm5ubm5ubm5uampqbmpubm5ubmpubm5uampubm5ubmpqbm5uampuam5ubm5ubm5ubmpubm5uampwAAAAAOEJJTVBhdHQAAAAAAAEAAgACAAIAAgACAAIAAgACAAIAAgAKAAsACwAKAAoACAAIAAYAAgACAAIAAgACAAIAAgACAAIAAgACAAoACwALAAoACgAIAAgABgACAAIAAgACAAIAAgACAAIAAgACAAIACgALAAsACgAKAAgACAAGAAIAAgACAAIAAgACAAIAAgACAAIAAgAKAAsACwAKAAoACAAIAAYAAu7/7v/u/+7/7v/u/+7/7v/u/+7//P8A5/rNAO38//z/Af7T/M0A2fv/+/8A7f3NAc72+//6/wDZ/s0A4vr/+v8E9s7Nz/r6//n/AuLN5/n/+f8C+9j++f/4/wD9+P/u/+7/7v/u/+7/7v/u/+7/7v/u/+7//P8A5/rNAO38//z/Af7T/M0A2fv/+/8A7f3NAc72+//6/wDZ/s0A4vr/+v8E9s7Nz/r6//n/AuLN5/n/+f8C+9j++f/4/wD9+P/u/+7/7v/u/+7/7v/u/+7/7v/u/+7//P8A5/rNAO38//z/Af7T/M0A2fv/+/8A7f3NAc72+//6/wDZ/s0A4vr/+v8E9s7Nz/r6//n/AuLN5/n/+f8C+9j++f/4/wD9+P/u/+4A7gDuAO4A7gDuAO4A7gDuAO4A/AAAePr/AFr8APwAAQbh/P8Aw/sA+wAAWv3/Afww+wD6AADD/v8AlvoA+gAEMPz/8xv6APkAApb/ePkA+QACEskG+QD4AAAJ+ADuAA==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/images/sort_asc.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowMTgwMTE3NDA3MjA2ODExQjM4MkY2QzVGRUYwRTJDNCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4MkFEQzYxNjIyQzExMUUxQTFGMUFEQUQ1QjJBNTM4QyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4MkFEQzYxNTIyQzExMUUxQTFGMUFEQUQ1QjJBNTM4QyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjAyODAxMTc0MDcyMDY4MTFCMzgyRjZDNUZFRjBFMkM0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjAxODAxMTc0MDcyMDY4MTFCMzgyRjZDNUZFRjBFMkM0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+z5ABTAAAAI5JREFUeNpi/P//PwO1ABMDFQELIQXVjfe4gFQbEJe11iv9otRl2UCcBcSphBQy4gszoKu0gNROIJYB4jtA7AF03V2SXQY0iBFIFUMNAgEVIM6DipPsTQcgDkQTSwRia5IMA9rOC6RqgVgQTQokXgOUZyfFZSFQF/zAgh2BOIjkCBjQRDtq2Khh9DAMIMAAT9AmNBDSXegAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/images/sort_asc_disabled.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODJBREM2MTEyMkMxMTFFMUExRjFBREFENUIyQTUzOEMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODJBREM2MTIyMkMxMTFFMUExRjFBREFENUIyQTUzOEMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0M0ZDRUZGRTIyQzExMUUxQTFGMUFEQUQ1QjJBNTM4QyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4MkFEQzYxMDIyQzExMUUxQTFGMUFEQUQ1QjJBNTM4QyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pr4T1OwAAACOSURBVHjaYvz//z8DtQATAxUBCyEF1Y33uIBUGxCXtdYr/aLUZdlAnAXEqYQUMuILM6CrtIDUTiCWAeI7QOwBdN1dkl0GNIgRSBVDDQIBFSDOg4qT7E0HIA5EE0sEYmuSDAPazgukaoFYEE0KJF4DlGcnxWUhUBf8wIIdgTiI5AgY0EQ7atioYfQwDCDAAE/QJjQQ0l3oAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/images/sort_both.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTRDMDM5NjkyMkMxMTFFMUExRjFBREFENUIyQTUzOEMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTRDMDM5NkEyMkMxMTFFMUExRjFBREFENUIyQTUzOEMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxNEMwMzk2NzIyQzExMUUxQTFGMUFEQUQ1QjJBNTM4QyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxNEMwMzk2ODIyQzExMUUxQTFGMUFEQUQ1QjJBNTM4QyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pm8NGvcAAADkSURBVHjaYvz//z8DtQATAxUBCzbBu3fvInO5gLgNiMuA+BdMUFlZmSyXZQNxFhCnUupNLSDOA2JWIC4AOYhcwxiBuBiIZaB8FajBjOQY5gDEgWhiiUBsTaphvEBcC8SCWMRrgJidFMNCoC74gQU7AnEQ1nChZqLFlc4igdQCIP6HwzcZwHQ2n1hvrgPi/UDMgQUfBeI1pITZTyBuAeLPaOLvgbgZizjBpAFyAbpX1gPxAXLSGShmJgHxHSj/CRD3QsXJyk6gHD8BiH9DDb5GcmyigdlArArEUwkpZBy0hSNAgAEA5Ho0sMdEmU8AAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/images/sort_desc.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowMTgwMTE3NDA3MjA2ODExQjM4MkY2QzVGRUYwRTJDNCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4MkFEQzYxQTIyQzExMUUxQTFGMUFEQUQ1QjJBNTM4QyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4MkFEQzYxOTIyQzExMUUxQTFGMUFEQUQ1QjJBNTM4QyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjAyODAxMTc0MDcyMDY4MTFCMzgyRjZDNUZFRjBFMkM0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjAxODAxMTc0MDcyMDY4MTFCMzgyRjZDNUZFRjBFMkM0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+1fsfwAAAAJdJREFUeNpi/P//PwO1ABMDFcGoYaOG0cMwFmyC1Y33IoHUAiD+h8MBGa31SvOJddk6IN4PxBxY8FEgXkO0N4G2/gRSLUD8GU3qPRA3A+U/kxpmIBege2U9EB/ApYERX6kBDDtlILUDiFWA+AkQuwNddY2s2ARqvAukJgDxbyCehM8gnLGJBmYDsSoQTyWkkHHQFo4AAQYAAA0piq4hbqwAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/images/sort_desc_disabled.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDNGQ0VGRjQyMkMxMTFFMUExRjFBREFENUIyQTUzOEMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDNGQ0VGRjUyMkMxMTFFMUExRjFBREFENUIyQTUzOEMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxNEMwMzk2QjIyQzExMUUxQTFGMUFEQUQ1QjJBNTM4QyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxNEMwMzk2QzIyQzExMUUxQTFGMUFEQUQ1QjJBNTM4QyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pnt2WfgAAACJSURBVHjaYvz//z8DtQATAxXBqGGjhtHDMBZsgnfv3o0EUguA+B8OB2QoKyvPJ9Zl64B4PxBzYMFHgXgNKd78CcQtQPwZTfw9EDdjEScYZiAXoHtlPRAfICcCQMXJJCC+A+U/AeJeqDhZsXkXiCcA8W+owddIjk00MBuIVYF4KiGFjIO2cAQIMAAzGSDTlIC38gAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/js/jquery.dataTables.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIEBzdW1tYXJ5ICAgICBEYXRhVGFibGVzCiAqIEBkZXNjcmlwdGlvbiBQYWdpbmF0ZSwgc2VhcmNoIGFuZCBzb3J0IEhUTUwgdGFibGVzCiAqIEB2ZXJzaW9uICAgICAxLjkuMwogKiBAZmlsZSAgICAgICAganF1ZXJ5LmRhdGFUYWJsZXMuanMKICogQGF1dGhvciAgICAgIEFsbGFuIEphcmRpbmUgKHd3dy5zcHJ5bWVkaWEuY28udWspCiAqIEBjb250YWN0ICAgICB3d3cuc3ByeW1lZGlhLmNvLnVrL2NvbnRhY3QKICoKICogQGNvcHlyaWdodCBDb3B5cmlnaHQgMjAwOC0yMDEyIEFsbGFuIEphcmRpbmUsIGFsbCByaWdodHMgcmVzZXJ2ZWQuCiAqCiAqIFRoaXMgc291cmNlIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZSwgdW5kZXIgZWl0aGVyIHRoZSBHUEwgdjIgbGljZW5zZSBvciBhCiAqIEJTRCBzdHlsZSBsaWNlbnNlLCBhdmFpbGFibGUgYXQ6CiAqICAgaHR0cDovL2RhdGF0YWJsZXMubmV0L2xpY2Vuc2VfZ3BsMgogKiAgIGh0dHA6Ly9kYXRhdGFibGVzLm5ldC9saWNlbnNlX2JzZAogKiAKICogVGhpcyBzb3VyY2UgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgCiAqIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIAogKiBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBsaWNlbnNlIGZpbGVzIGZvciBkZXRhaWxzLgogKiAKICogRm9yIGRldGFpbHMgcGxlYXNlIHJlZmVyIHRvOiBodHRwOi8vd3d3LmRhdGF0YWJsZXMubmV0CiAqLwoKLypqc2xpbnQgZXZpbDogdHJ1ZSwgdW5kZWY6IHRydWUsIGJyb3dzZXI6IHRydWUgKi8KLypnbG9iYWxzICQsIGpRdWVyeSxfZm5FeHRlcm5BcGlGdW5jLF9mbkluaXRpYWxpc2UsX2ZuSW5pdENvbXBsZXRlLF9mbkxhbmd1YWdlQ29tcGF0LF9mbkFkZENvbHVtbixfZm5Db2x1bW5PcHRpb25zLF9mbkFkZERhdGEsX2ZuQ3JlYXRlVHIsX2ZuR2F0aGVyRGF0YSxfZm5CdWlsZEhlYWQsX2ZuRHJhd0hlYWQsX2ZuRHJhdyxfZm5SZURyYXcsX2ZuQWpheFVwZGF0ZSxfZm5BamF4UGFyYW1ldGVycyxfZm5BamF4VXBkYXRlRHJhdyxfZm5TZXJ2ZXJQYXJhbXMsX2ZuQWRkT3B0aW9uc0h0bWwsX2ZuRmVhdHVyZUh0bWxUYWJsZSxfZm5TY3JvbGxEcmF3LF9mbkFkanVzdENvbHVtblNpemluZyxfZm5GZWF0dXJlSHRtbEZpbHRlcixfZm5GaWx0ZXJDb21wbGV0ZSxfZm5GaWx0ZXJDdXN0b20sX2ZuRmlsdGVyQ29sdW1uLF9mbkZpbHRlcixfZm5CdWlsZFNlYXJjaEFycmF5LF9mbkJ1aWxkU2VhcmNoUm93LF9mbkZpbHRlckNyZWF0ZVNlYXJjaCxfZm5EYXRhVG9TZWFyY2gsX2ZuU29ydCxfZm5Tb3J0QXR0YWNoTGlzdGVuZXIsX2ZuU29ydGluZ0NsYXNzZXMsX2ZuRmVhdHVyZUh0bWxQYWdpbmF0ZSxfZm5QYWdlQ2hhbmdlLF9mbkZlYXR1cmVIdG1sSW5mbyxfZm5VcGRhdGVJbmZvLF9mbkZlYXR1cmVIdG1sTGVuZ3RoLF9mbkZlYXR1cmVIdG1sUHJvY2Vzc2luZyxfZm5Qcm9jZXNzaW5nRGlzcGxheSxfZm5WaXNpYmxlVG9Db2x1bW5JbmRleCxfZm5Db2x1bW5JbmRleFRvVmlzaWJsZSxfZm5Ob2RlVG9EYXRhSW5kZXgsX2ZuVmlzYmxlQ29sdW1ucyxfZm5DYWxjdWxhdGVFbmQsX2ZuQ29udmVydFRvV2lkdGgsX2ZuQ2FsY3VsYXRlQ29sdW1uV2lkdGhzLF9mblNjcm9sbGluZ1dpZHRoQWRqdXN0LF9mbkdldFdpZGVzdE5vZGUsX2ZuR2V0TWF4TGVuU3RyaW5nLF9mblN0cmluZ1RvQ3NzLF9mbkRldGVjdFR5cGUsX2ZuU2V0dGluZ3NGcm9tTm9kZSxfZm5HZXREYXRhTWFzdGVyLF9mbkdldFRyTm9kZXMsX2ZuR2V0VGROb2RlcyxfZm5Fc2NhcGVSZWdleCxfZm5EZWxldGVJbmRleCxfZm5SZU9yZGVySW5kZXgsX2ZuQ29sdW1uT3JkZXJpbmcsX2ZuTG9nLF9mbkNsZWFyVGFibGUsX2ZuU2F2ZVN0YXRlLF9mbkxvYWRTdGF0ZSxfZm5DcmVhdGVDb29raWUsX2ZuUmVhZENvb2tpZSxfZm5EZXRlY3RIZWFkZXIsX2ZuR2V0VW5pcXVlVGhzLF9mblNjcm9sbEJhcldpZHRoLF9mbkFwcGx5VG9DaGlsZHJlbixfZm5NYXAsX2ZuR2V0Um93RGF0YSxfZm5HZXRDZWxsRGF0YSxfZm5TZXRDZWxsRGF0YSxfZm5HZXRPYmplY3REYXRhRm4sX2ZuU2V0T2JqZWN0RGF0YUZuLF9mbkFwcGx5Q29sdW1uRGVmcyxfZm5CaW5kQWN0aW9uLF9mbkNhbGxiYWNrUmVnLF9mbkNhbGxiYWNrRmlyZSxfZm5Kc29uU3RyaW5nLF9mblJlbmRlcixfZm5Ob2RlVG9Db2x1bW5JbmRleCxfZm5JbmZvTWFjcm9zLF9mbkJyb3dzZXJEZXRlY3QsX2ZuR2V0Q29sdW1ucyovCgooLyoqIEBsZW5kcyA8Z2xvYmFsPiAqL2Z1bmN0aW9uKCQsIHdpbmRvdywgZG9jdW1lbnQsIHVuZGVmaW5lZCkgewoJLyoqIAoJICogRGF0YVRhYmxlcyBpcyBhIHBsdWctaW4gZm9yIHRoZSBqUXVlcnkgSmF2YXNjcmlwdCBsaWJyYXJ5LiBJdCBpcyBhIAoJICogaGlnaGx5IGZsZXhpYmxlIHRvb2wsIGJhc2VkIHVwb24gdGhlIGZvdW5kYXRpb25zIG9mIHByb2dyZXNzaXZlIAoJICogZW5oYW5jZW1lbnQsIHdoaWNoIHdpbGwgYWRkIGFkdmFuY2VkIGludGVyYWN0aW9uIGNvbnRyb2xzIHRvIGFueSAKCSAqIEhUTUwgdGFibGUuIEZvciBhIGZ1bGwgbGlzdCBvZiBmZWF0dXJlcyBwbGVhc2UgcmVmZXIgdG8KCSAqIDxhIGhyZWY9Imh0dHA6Ly9kYXRhdGFibGVzLm5ldCI+RGF0YVRhYmxlcy5uZXQ8L2E+LgoJICoKCSAqIE5vdGUgdGhhdCB0aGUgPGk+RGF0YVRhYmxlPC9pPiBvYmplY3QgaXMgbm90IGEgZ2xvYmFsIHZhcmlhYmxlIGJ1dCBpcwoJICogYWxpYXNlZCB0byA8aT5qUXVlcnkuZm4uRGF0YVRhYmxlPC9pPiBhbmQgPGk+alF1ZXJ5LmZuLmRhdGFUYWJsZTwvaT4gdGhyb3VnaCB3aGljaCAKCSAqIGl0IG1heSBiZSAgYWNjZXNzZWQuCgkgKgoJICogIEBjbGFzcwoJICogIEBwYXJhbSB7b2JqZWN0fSBbb0luaXQ9e31dIENvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciBEYXRhVGFibGVzLiBPcHRpb25zCgkgKiAgICBhcmUgZGVmaW5lZCBieSB7QGxpbmsgRGF0YVRhYmxlLmRlZmF1bHRzfQoJICogIEByZXF1aXJlcyBqUXVlcnkgMS4zKwoJICogCgkgKiAgQGV4YW1wbGUKCSAqICAgIC8vIEJhc2ljIGluaXRpYWxpc2F0aW9uCgkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gewoJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJICogICAgfSApOwoJICogIAoJICogIEBleGFtcGxlCgkgKiAgICAvLyBJbml0aWFsaXNhdGlvbiB3aXRoIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyAtIGluIHRoaXMgY2FzZSwgZGlzYWJsZQoJICogICAgLy8gcGFnaW5hdGlvbiBhbmQgc29ydGluZy4KCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiB7CgkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgICAgICAgImJQYWdpbmF0ZSI6IGZhbHNlLAoJICogICAgICAgICJiU29ydCI6IGZhbHNlIAoJICogICAgICB9ICk7CgkgKiAgICB9ICk7CgkgKi8KCXZhciBEYXRhVGFibGUgPSBmdW5jdGlvbiggb0luaXQgKQoJewoJCQoJCQoJCS8qKgoJCSAqIEFkZCBhIGNvbHVtbiB0byB0aGUgbGlzdCB1c2VkIGZvciB0aGUgdGFibGUgd2l0aCBkZWZhdWx0IHZhbHVlcwoJCSAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CgkJICogIEBwYXJhbSB7bm9kZX0gblRoIFRoZSB0aCBlbGVtZW50IGZvciB0aGlzIGNvbHVtbgoJCSAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKCQkgKi8KCQlmdW5jdGlvbiBfZm5BZGRDb2x1bW4oIG9TZXR0aW5ncywgblRoICkKCQl7CgkJCXZhciBvRGVmYXVsdHMgPSBEYXRhVGFibGUuZGVmYXVsdHMuY29sdW1uczsKCQkJdmFyIGlDb2wgPSBvU2V0dGluZ3MuYW9Db2x1bW5zLmxlbmd0aDsKCQkJdmFyIG9Db2wgPSAkLmV4dGVuZCgge30sIERhdGFUYWJsZS5tb2RlbHMub0NvbHVtbiwgb0RlZmF1bHRzLCB7CgkJCQkic1NvcnRpbmdDbGFzcyI6IG9TZXR0aW5ncy5vQ2xhc3Nlcy5zU29ydGFibGUsCgkJCQkic1NvcnRpbmdDbGFzc0pVSSI6IG9TZXR0aW5ncy5vQ2xhc3Nlcy5zU29ydEpVSSwKCQkJCSJuVGgiOiBuVGggPyBuVGggOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0aCcpLAoJCQkJInNUaXRsZSI6ICAgIG9EZWZhdWx0cy5zVGl0bGUgICAgPyBvRGVmYXVsdHMuc1RpdGxlICAgIDogblRoID8gblRoLmlubmVySFRNTCA6ICcnLAoJCQkJImFEYXRhU29ydCI6IG9EZWZhdWx0cy5hRGF0YVNvcnQgPyBvRGVmYXVsdHMuYURhdGFTb3J0IDogW2lDb2xdLAoJCQkJIm1EYXRhIjogb0RlZmF1bHRzLm1EYXRhID8gb0RlZmF1bHRzLm9EZWZhdWx0cyA6IGlDb2wKCQkJfSApOwoJCQlvU2V0dGluZ3MuYW9Db2x1bW5zLnB1c2goIG9Db2wgKTsKCQkJCgkJCS8qIEFkZCBhIGNvbHVtbiBzcGVjaWZpYyBmaWx0ZXIgKi8KCQkJaWYgKCBvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzWyBpQ29sIF0gPT09IHVuZGVmaW5lZCB8fCBvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzWyBpQ29sIF0gPT09IG51bGwgKQoJCQl7CgkJCQlvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzWyBpQ29sIF0gPSAkLmV4dGVuZCgge30sIERhdGFUYWJsZS5tb2RlbHMub1NlYXJjaCApOwoJCQl9CgkJCWVsc2UKCQkJewoJCQkJdmFyIG9QcmUgPSBvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzWyBpQ29sIF07CgkJCQkKCQkJCS8qIERvbid0IHJlcXVpcmUgdGhhdCB0aGUgdXNlciBtdXN0IHNwZWNpZnkgYlJlZ2V4LCBiU21hcnQgb3IgYkNhc2VJbnNlbnNpdGl2ZSAqLwoJCQkJaWYgKCBvUHJlLmJSZWdleCA9PT0gdW5kZWZpbmVkICkKCQkJCXsKCQkJCQlvUHJlLmJSZWdleCA9IHRydWU7CgkJCQl9CgkJCQkKCQkJCWlmICggb1ByZS5iU21hcnQgPT09IHVuZGVmaW5lZCApCgkJCQl7CgkJCQkJb1ByZS5iU21hcnQgPSB0cnVlOwoJCQkJfQoJCQkJCgkJCQlpZiAoIG9QcmUuYkNhc2VJbnNlbnNpdGl2ZSA9PT0gdW5kZWZpbmVkICkKCQkJCXsKCQkJCQlvUHJlLmJDYXNlSW5zZW5zaXRpdmUgPSB0cnVlOwoJCQkJfQoJCQl9CgkJCQoJCQkvKiBVc2UgdGhlIGNvbHVtbiBvcHRpb25zIGZ1bmN0aW9uIHRvIGluaXRpYWxpc2UgY2xhc3NlcyBldGMgKi8KCQkJX2ZuQ29sdW1uT3B0aW9ucyggb1NldHRpbmdzLCBpQ29sLCBudWxsICk7CgkJfQoJCQoJCQoJCS8qKgoJCSAqIEFwcGx5IG9wdGlvbnMgZm9yIGEgY29sdW1uCgkJICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCQkgKiAgQHBhcmFtIHtpbnR9IGlDb2wgY29sdW1uIGluZGV4IHRvIGNvbnNpZGVyCgkJICogIEBwYXJhbSB7b2JqZWN0fSBvT3B0aW9ucyBvYmplY3Qgd2l0aCBzVHlwZSwgYlZpc2libGUgYW5kIGJTZWFyY2hhYmxlIGV0YwoJCSAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKCQkgKi8KCQlmdW5jdGlvbiBfZm5Db2x1bW5PcHRpb25zKCBvU2V0dGluZ3MsIGlDb2wsIG9PcHRpb25zICkKCQl7CgkJCXZhciBvQ29sID0gb1NldHRpbmdzLmFvQ29sdW1uc1sgaUNvbCBdOwoJCQkKCQkJLyogVXNlciBzcGVjaWZpZWQgY29sdW1uIG9wdGlvbnMgKi8KCQkJaWYgKCBvT3B0aW9ucyAhPT0gdW5kZWZpbmVkICYmIG9PcHRpb25zICE9PSBudWxsICkKCQkJewoJCQkJLyogQmFja3dhcmRzIGNvbXBhdGliaWxpdHkgZm9yIG1EYXRhUHJvcCAqLwoJCQkJaWYgKCBvT3B0aW9ucy5tRGF0YVByb3AgJiYgIW9PcHRpb25zLm1EYXRhICkKCQkJCXsKCQkJCQlvT3B0aW9ucy5tRGF0YSA9IG9PcHRpb25zLm1EYXRhUHJvcDsKCQkJCX0KCQkKCQkJCWlmICggb09wdGlvbnMuc1R5cGUgIT09IHVuZGVmaW5lZCApCgkJCQl7CgkJCQkJb0NvbC5zVHlwZSA9IG9PcHRpb25zLnNUeXBlOwoJCQkJCW9Db2wuX2JBdXRvVHlwZSA9IGZhbHNlOwoJCQkJfQoJCQkJCgkJCQkkLmV4dGVuZCggb0NvbCwgb09wdGlvbnMgKTsKCQkJCV9mbk1hcCggb0NvbCwgb09wdGlvbnMsICJzV2lkdGgiLCAic1dpZHRoT3JpZyIgKTsKCQkKCQkJCS8qIGlEYXRhU29ydCB0byBiZSBhcHBsaWVkIChiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSksIGJ1dCBhRGF0YVNvcnQgd2lsbCB0YWtlCgkJCQkgKiBwcmlvcml0eSBpZiBkZWZpbmVkCgkJCQkgKi8KCQkJCWlmICggb09wdGlvbnMuaURhdGFTb3J0ICE9PSB1bmRlZmluZWQgKQoJCQkJewoJCQkJCW9Db2wuYURhdGFTb3J0ID0gWyBvT3B0aW9ucy5pRGF0YVNvcnQgXTsKCQkJCX0KCQkJCV9mbk1hcCggb0NvbCwgb09wdGlvbnMsICJhRGF0YVNvcnQiICk7CgkJCX0KCQkKCQkJLyogQ2FjaGUgdGhlIGRhdGEgZ2V0IGFuZCBzZXQgZnVuY3Rpb25zIGZvciBzcGVlZCAqLwoJCQl2YXIgbVJlbmRlciA9IG9Db2wubVJlbmRlciA/IF9mbkdldE9iamVjdERhdGFGbiggb0NvbC5tUmVuZGVyICkgOiBudWxsOwoJCQl2YXIgbURhdGEgPSBfZm5HZXRPYmplY3REYXRhRm4oIG9Db2wubURhdGEgKTsKCQkKCQkJb0NvbC5mbkdldERhdGEgPSBmdW5jdGlvbiAob0RhdGEsIHNTcGVjaWZpYykgewoJCQkJdmFyIGlubmVyRGF0YSA9IG1EYXRhKCBvRGF0YSwgc1NwZWNpZmljICk7CgkJCgkJCQlpZiAoIG9Db2wubVJlbmRlciAmJiAoc1NwZWNpZmljICYmIHNTcGVjaWZpYyAhPT0gJycpICkKCQkJCXsKCQkJCQlyZXR1cm4gbVJlbmRlciggaW5uZXJEYXRhLCBzU3BlY2lmaWMsIG9EYXRhICk7CgkJCQl9CgkJCQlyZXR1cm4gaW5uZXJEYXRhOwoJCQl9OwoJCQlvQ29sLmZuU2V0RGF0YSA9IF9mblNldE9iamVjdERhdGFGbiggb0NvbC5tRGF0YSApOwoJCQkKCQkJLyogRmVhdHVyZSBzb3J0aW5nIG92ZXJyaWRlcyBjb2x1bW4gc3BlY2lmaWMgd2hlbiBvZmYgKi8KCQkJaWYgKCAhb1NldHRpbmdzLm9GZWF0dXJlcy5iU29ydCApCgkJCXsKCQkJCW9Db2wuYlNvcnRhYmxlID0gZmFsc2U7CgkJCX0KCQkJCgkJCS8qIENoZWNrIHRoYXQgdGhlIGNsYXNzIGFzc2lnbm1lbnQgaXMgY29ycmVjdCBmb3Igc29ydGluZyAqLwoJCQlpZiAoICFvQ29sLmJTb3J0YWJsZSB8fAoJCQkJICgkLmluQXJyYXkoJ2FzYycsIG9Db2wuYXNTb3J0aW5nKSA9PSAtMSAmJiAkLmluQXJyYXkoJ2Rlc2MnLCBvQ29sLmFzU29ydGluZykgPT0gLTEpICkKCQkJewoJCQkJb0NvbC5zU29ydGluZ0NsYXNzID0gb1NldHRpbmdzLm9DbGFzc2VzLnNTb3J0YWJsZU5vbmU7CgkJCQlvQ29sLnNTb3J0aW5nQ2xhc3NKVUkgPSAiIjsKCQkJfQoJCQllbHNlIGlmICggb0NvbC5iU29ydGFibGUgfHwKCQkJICAgICAgICAgICgkLmluQXJyYXkoJ2FzYycsIG9Db2wuYXNTb3J0aW5nKSA9PSAtMSAmJiAkLmluQXJyYXkoJ2Rlc2MnLCBvQ29sLmFzU29ydGluZykgPT0gLTEpICkKCQkJewoJCQkgIG9Db2wuc1NvcnRpbmdDbGFzcyA9IG9TZXR0aW5ncy5vQ2xhc3Nlcy5zU29ydGFibGU7CgkJCSAgb0NvbC5zU29ydGluZ0NsYXNzSlVJID0gb1NldHRpbmdzLm9DbGFzc2VzLnNTb3J0SlVJOwoJCQl9CgkJCWVsc2UgaWYgKCAkLmluQXJyYXkoJ2FzYycsIG9Db2wuYXNTb3J0aW5nKSAhPSAtMSAmJiAkLmluQXJyYXkoJ2Rlc2MnLCBvQ29sLmFzU29ydGluZykgPT0gLTEgKQoJCQl7CgkJCQlvQ29sLnNTb3J0aW5nQ2xhc3MgPSBvU2V0dGluZ3Mub0NsYXNzZXMuc1NvcnRhYmxlQXNjOwoJCQkJb0NvbC5zU29ydGluZ0NsYXNzSlVJID0gb1NldHRpbmdzLm9DbGFzc2VzLnNTb3J0SlVJQXNjQWxsb3dlZDsKCQkJfQoJCQllbHNlIGlmICggJC5pbkFycmF5KCdhc2MnLCBvQ29sLmFzU29ydGluZykgPT0gLTEgJiYgJC5pbkFycmF5KCdkZXNjJywgb0NvbC5hc1NvcnRpbmcpICE9IC0xICkKCQkJewoJCQkJb0NvbC5zU29ydGluZ0NsYXNzID0gb1NldHRpbmdzLm9DbGFzc2VzLnNTb3J0YWJsZURlc2M7CgkJCQlvQ29sLnNTb3J0aW5nQ2xhc3NKVUkgPSBvU2V0dGluZ3Mub0NsYXNzZXMuc1NvcnRKVUlEZXNjQWxsb3dlZDsKCQkJfQoJCX0KCQkKCQkKCQkvKioKCQkgKiBBZGp1c3QgdGhlIHRhYmxlIGNvbHVtbiB3aWR0aHMgZm9yIG5ldyBkYXRhLiBOb3RlOiB5b3Ugd291bGQgcHJvYmFibHkgd2FudCB0byAKCQkgKiBkbyBhIHJlZHJhdyBhZnRlciBjYWxsaW5nIHRoaXMgZnVuY3Rpb24hCgkJICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCQkgKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCgkJICovCgkJZnVuY3Rpb24gX2ZuQWRqdXN0Q29sdW1uU2l6aW5nICggb1NldHRpbmdzICkKCQl7CgkJCS8qIE5vdCBpbnRlcmVzdGVkIGluIGRvaW5nIGNvbHVtbiB3aWR0aCBjYWxjdWxhdGlvbiBpZiBhdXRvLXdpZHRoIGlzIGRpc2FibGVkICovCgkJCWlmICggb1NldHRpbmdzLm9GZWF0dXJlcy5iQXV0b1dpZHRoID09PSBmYWxzZSApCgkJCXsKCQkJCXJldHVybiBmYWxzZTsKCQkJfQoJCQkKCQkJX2ZuQ2FsY3VsYXRlQ29sdW1uV2lkdGhzKCBvU2V0dGluZ3MgKTsKCQkJZm9yICggdmFyIGk9MCAsIGlMZW49b1NldHRpbmdzLmFvQ29sdW1ucy5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCQl7CgkJCQlvU2V0dGluZ3MuYW9Db2x1bW5zW2ldLm5UaC5zdHlsZS53aWR0aCA9IG9TZXR0aW5ncy5hb0NvbHVtbnNbaV0uc1dpZHRoOwoJCQl9CgkJfQoJCQoJCQoJCS8qKgoJCSAqIENvdmVydCB0aGUgaW5kZXggb2YgYSB2aXNpYmxlIGNvbHVtbiB0byB0aGUgaW5kZXggaW4gdGhlIGRhdGEgYXJyYXkgKHRha2UgYWNjb3VudAoJCSAqIG9mIGhpZGRlbiBjb2x1bW5zKQoJCSAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CgkJICogIEBwYXJhbSB7aW50fSBpTWF0Y2ggVmlzaWJsZSBjb2x1bW4gaW5kZXggdG8gbG9va3VwCgkJICogIEByZXR1cm5zIHtpbnR9IGkgdGhlIGRhdGEgaW5kZXgKCQkgKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCgkJICovCgkJZnVuY3Rpb24gX2ZuVmlzaWJsZVRvQ29sdW1uSW5kZXgoIG9TZXR0aW5ncywgaU1hdGNoICkKCQl7CgkJCXZhciBhaVZpcyA9IF9mbkdldENvbHVtbnMoIG9TZXR0aW5ncywgJ2JWaXNpYmxlJyApOwoJCQoJCQlyZXR1cm4gdHlwZW9mIGFpVmlzW2lNYXRjaF0gPT09ICdudW1iZXInID8KCQkJCWFpVmlzW2lNYXRjaF0gOgoJCQkJbnVsbDsKCQl9CgkJCgkJCgkJLyoqCgkJICogQ292ZXJ0IHRoZSBpbmRleCBvZiBhbiBpbmRleCBpbiB0aGUgZGF0YSBhcnJheSBhbmQgY29udmVydCBpdCB0byB0aGUgdmlzaWJsZQoJCSAqICAgY29sdW1uIGluZGV4ICh0YWtlIGFjY291bnQgb2YgaGlkZGVuIGNvbHVtbnMpCgkJICogIEBwYXJhbSB7aW50fSBpTWF0Y2ggQ29sdW1uIGluZGV4IHRvIGxvb2t1cAoJCSAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CgkJICogIEByZXR1cm5zIHtpbnR9IGkgdGhlIGRhdGEgaW5kZXgKCQkgKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCgkJICovCgkJZnVuY3Rpb24gX2ZuQ29sdW1uSW5kZXhUb1Zpc2libGUoIG9TZXR0aW5ncywgaU1hdGNoICkKCQl7CgkJCXZhciBhaVZpcyA9IF9mbkdldENvbHVtbnMoIG9TZXR0aW5ncywgJ2JWaXNpYmxlJyApOwoJCQl2YXIgaVBvcyA9ICQuaW5BcnJheSggaU1hdGNoLCBhaVZpcyApOwoJCQoJCQlyZXR1cm4gaVBvcyAhPT0gLTEgPyBpUG9zIDogbnVsbDsKCQl9CgkJCgkJCgkJLyoqCgkJICogR2V0IHRoZSBudW1iZXIgb2YgdmlzaWJsZSBjb2x1bW5zCgkJICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCQkgKiAgQHJldHVybnMge2ludH0gaSB0aGUgbnVtYmVyIG9mIHZpc2libGUgY29sdW1ucwoJCSAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKCQkgKi8KCQlmdW5jdGlvbiBfZm5WaXNibGVDb2x1bW5zKCBvU2V0dGluZ3MgKQoJCXsKCQkJcmV0dXJuIF9mbkdldENvbHVtbnMoIG9TZXR0aW5ncywgJ2JWaXNpYmxlJyApLmxlbmd0aDsKCQl9CgkJCgkJCgkJLyoqCgkJICogR2V0IGFuIGFycmF5IG9mIGNvbHVtbiBpbmRleGVzIHRoYXQgbWF0Y2ggYSBnaXZlbiBwcm9wZXJ0eQoJCSAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CgkJICogIEBwYXJhbSB7c3RyaW5nfSBzUGFyYW0gUGFyYW1ldGVyIGluIGFvQ29sdW1ucyB0byBsb29rIGZvciAtIHR5cGljYWxseSAKCQkgKiAgICBiVmlzaWJsZSBvciBiU2VhcmNoYWJsZQoJCSAqICBAcmV0dXJucyB7YXJyYXl9IEFycmF5IG9mIGluZGV4ZXMgd2l0aCBtYXRjaGVkIHByb3BlcnRpZXMKCQkgKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCgkJICovCgkJZnVuY3Rpb24gX2ZuR2V0Q29sdW1ucyggb1NldHRpbmdzLCBzUGFyYW0gKQoJCXsKCQkJdmFyIGEgPSBbXTsKCQkKCQkJJC5tYXAoIG9TZXR0aW5ncy5hb0NvbHVtbnMsIGZ1bmN0aW9uKHZhbCwgaSkgewoJCQkJaWYgKCB2YWxbc1BhcmFtXSApIHsKCQkJCQlhLnB1c2goIGkgKTsKCQkJCX0KCQkJfSApOwoJCQoJCQlyZXR1cm4gYTsKCQl9CgkJCgkJCgkJLyoqCgkJICogR2V0IHRoZSBzb3J0IHR5cGUgYmFzZWQgb24gYW4gaW5wdXQgc3RyaW5nCgkJICogIEBwYXJhbSB7c3RyaW5nfSBzRGF0YSBkYXRhIHdlIHdpc2ggdG8ga25vdyB0aGUgdHlwZSBvZgoJCSAqICBAcmV0dXJucyB7c3RyaW5nfSB0eXBlIChkZWZhdWx0cyB0byAnc3RyaW5nJyBpZiBubyB0eXBlIGNhbiBiZSBkZXRlY3RlZCkKCQkgKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCgkJICovCgkJZnVuY3Rpb24gX2ZuRGV0ZWN0VHlwZSggc0RhdGEgKQoJCXsKCQkJdmFyIGFUeXBlcyA9IERhdGFUYWJsZS5leHQuYVR5cGVzOwoJCQl2YXIgaUxlbiA9IGFUeXBlcy5sZW5ndGg7CgkJCQoJCQlmb3IgKCB2YXIgaT0wIDsgaTxpTGVuIDsgaSsrICkKCQkJewoJCQkJdmFyIHNUeXBlID0gYVR5cGVzW2ldKCBzRGF0YSApOwoJCQkJaWYgKCBzVHlwZSAhPT0gbnVsbCApCgkJCQl7CgkJCQkJcmV0dXJuIHNUeXBlOwoJCQkJfQoJCQl9CgkJCQoJCQlyZXR1cm4gJ3N0cmluZyc7CgkJfQoJCQoJCQoJCS8qKgoJCSAqIEZpZ3VyZSBvdXQgaG93IHRvIHJlb3JkZXIgYSBkaXNwbGF5IGxpc3QKCQkgKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAoJCSAqICBAcmV0dXJucyBhcnJheSB7aW50fSBhaVJldHVybiBpbmRleCBsaXN0IGZvciByZW9yZGVyaW5nCgkJICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQoJCSAqLwoJCWZ1bmN0aW9uIF9mblJlT3JkZXJJbmRleCAoIG9TZXR0aW5ncywgc0NvbHVtbnMgKQoJCXsKCQkJdmFyIGFDb2x1bW5zID0gc0NvbHVtbnMuc3BsaXQoJywnKTsKCQkJdmFyIGFpUmV0dXJuID0gW107CgkJCQoJCQlmb3IgKCB2YXIgaT0wLCBpTGVuPW9TZXR0aW5ncy5hb0NvbHVtbnMubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQkJewoJCQkJZm9yICggdmFyIGo9MCA7IGo8aUxlbiA7IGorKyApCgkJCQl7CgkJCQkJaWYgKCBvU2V0dGluZ3MuYW9Db2x1bW5zW2ldLnNOYW1lID09IGFDb2x1bW5zW2pdICkKCQkJCQl7CgkJCQkJCWFpUmV0dXJuLnB1c2goIGogKTsKCQkJCQkJYnJlYWs7CgkJCQkJfQoJCQkJfQoJCQl9CgkJCQoJCQlyZXR1cm4gYWlSZXR1cm47CgkJfQoJCQoJCQoJCS8qKgoJCSAqIEdldCB0aGUgY29sdW1uIG9yZGVyaW5nIHRoYXQgRGF0YVRhYmxlcyBleHBlY3RzCgkJICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCQkgKiAgQHJldHVybnMge3N0cmluZ30gY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgbmFtZXMKCQkgKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCgkJICovCgkJZnVuY3Rpb24gX2ZuQ29sdW1uT3JkZXJpbmcgKCBvU2V0dGluZ3MgKQoJCXsKCQkJdmFyIHNOYW1lcyA9ICcnOwoJCQlmb3IgKCB2YXIgaT0wLCBpTGVuPW9TZXR0aW5ncy5hb0NvbHVtbnMubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQkJewoJCQkJc05hbWVzICs9IG9TZXR0aW5ncy5hb0NvbHVtbnNbaV0uc05hbWUrJywnOwoJCQl9CgkJCWlmICggc05hbWVzLmxlbmd0aCA9PSBpTGVuICkKCQkJewoJCQkJcmV0dXJuICIiOwoJCQl9CgkJCXJldHVybiBzTmFtZXMuc2xpY2UoMCwgLTEpOwoJCX0KCQkKCQkKCQkvKioKCQkgKiBUYWtlIHRoZSBjb2x1bW4gZGVmaW5pdGlvbnMgYW5kIHN0YXRpYyBjb2x1bW5zIGFycmF5cyBhbmQgY2FsY3VsYXRlIGhvdwoJCSAqIHRoZXkgcmVsYXRlIHRvIGNvbHVtbiBpbmRleGVzLiBUaGUgY2FsbGJhY2sgZnVuY3Rpb24gd2lsbCB0aGVuIGFwcGx5IHRoZQoJCSAqIGRlZmluaXRpb24gZm91bmQgZm9yIGEgY29sdW1uIHRvIGEgc3VpdGFibGUgY29uZmlndXJhdGlvbiBvYmplY3QuCgkJICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCQkgKiAgQHBhcmFtIHthcnJheX0gYW9Db2xEZWZzIFRoZSBhb0NvbHVtbkRlZnMgYXJyYXkgdGhhdCBpcyB0byBiZSBhcHBsaWVkCgkJICogIEBwYXJhbSB7YXJyYXl9IGFvQ29scyBUaGUgYW9Db2x1bW5zIGFycmF5IHRoYXQgZGVmaW5lcyBjb2x1bW5zIGluZGl2aWR1YWxseQoJCSAqICBAcGFyYW0ge2Z1bmN0aW9ufSBmbiBDYWxsYmFjayBmdW5jdGlvbiAtIHRha2VzIHR3byBwYXJhbWV0ZXJzLCB0aGUgY2FsY3VsYXRlZAoJCSAqICAgIGNvbHVtbiBpbmRleCBhbmQgdGhlIGRlZmluaXRpb24gZm9yIHRoYXQgY29sdW1uLgoJCSAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKCQkgKi8KCQlmdW5jdGlvbiBfZm5BcHBseUNvbHVtbkRlZnMoIG9TZXR0aW5ncywgYW9Db2xEZWZzLCBhb0NvbHMsIGZuICkKCQl7CgkJCXZhciBpLCBpTGVuLCBqLCBqTGVuLCBrLCBrTGVuOwoJCQoJCQkvLyBDb2x1bW4gZGVmaW5pdGlvbnMgd2l0aCBhVGFyZ2V0cwoJCQlpZiAoIGFvQ29sRGVmcyApCgkJCXsKCQkJCS8qIExvb3Agb3ZlciB0aGUgZGVmaW5pdGlvbnMgYXJyYXkgLSBsb29wIGluIHJldmVyc2Ugc28gZmlyc3QgaW5zdGFuY2UgaGFzIHByaW9yaXR5ICovCgkJCQlmb3IgKCBpPWFvQ29sRGVmcy5sZW5ndGgtMSA7IGk+PTAgOyBpLS0gKQoJCQkJewoJCQkJCS8qIEVhY2ggZGVmaW5pdGlvbiBjYW4gdGFyZ2V0IG11bHRpcGxlIGNvbHVtbnMsIGFzIGl0IGlzIGFuIGFycmF5ICovCgkJCQkJdmFyIGFUYXJnZXRzID0gYW9Db2xEZWZzW2ldLmFUYXJnZXRzOwoJCQkJCWlmICggISQuaXNBcnJheSggYVRhcmdldHMgKSApCgkJCQkJewoJCQkJCQlfZm5Mb2coIG9TZXR0aW5ncywgMSwgJ2FUYXJnZXRzIG11c3QgYmUgYW4gYXJyYXkgb2YgdGFyZ2V0cywgbm90IGEgJysodHlwZW9mIGFUYXJnZXRzKSApOwoJCQkJCX0KCQkKCQkJCQlmb3IgKCBqPTAsIGpMZW49YVRhcmdldHMubGVuZ3RoIDsgajxqTGVuIDsgaisrICkKCQkJCQl7CgkJCQkJCWlmICggdHlwZW9mIGFUYXJnZXRzW2pdID09PSAnbnVtYmVyJyAmJiBhVGFyZ2V0c1tqXSA+PSAwICkKCQkJCQkJewoJCQkJCQkJLyogQWRkIGNvbHVtbnMgdGhhdCB3ZSBkb24ndCB5ZXQga25vdyBhYm91dCAqLwoJCQkJCQkJd2hpbGUoIG9TZXR0aW5ncy5hb0NvbHVtbnMubGVuZ3RoIDw9IGFUYXJnZXRzW2pdICkKCQkJCQkJCXsKCQkJCQkJCQlfZm5BZGRDb2x1bW4oIG9TZXR0aW5ncyApOwoJCQkJCQkJfQoJCQoJCQkJCQkJLyogSW50ZWdlciwgYmFzaWMgaW5kZXggKi8KCQkJCQkJCWZuKCBhVGFyZ2V0c1tqXSwgYW9Db2xEZWZzW2ldICk7CgkJCQkJCX0KCQkJCQkJZWxzZSBpZiAoIHR5cGVvZiBhVGFyZ2V0c1tqXSA9PT0gJ251bWJlcicgJiYgYVRhcmdldHNbal0gPCAwICkKCQkJCQkJewoJCQkJCQkJLyogTmVnYXRpdmUgaW50ZWdlciwgcmlnaHQgdG8gbGVmdCBjb2x1bW4gY291bnRpbmcgKi8KCQkJCQkJCWZuKCBvU2V0dGluZ3MuYW9Db2x1bW5zLmxlbmd0aCthVGFyZ2V0c1tqXSwgYW9Db2xEZWZzW2ldICk7CgkJCQkJCX0KCQkJCQkJZWxzZSBpZiAoIHR5cGVvZiBhVGFyZ2V0c1tqXSA9PT0gJ3N0cmluZycgKQoJCQkJCQl7CgkJCQkJCQkvKiBDbGFzcyBuYW1lIG1hdGNoaW5nIG9uIFRIIGVsZW1lbnQgKi8KCQkJCQkJCWZvciAoIGs9MCwga0xlbj1vU2V0dGluZ3MuYW9Db2x1bW5zLmxlbmd0aCA7IGs8a0xlbiA7IGsrKyApCgkJCQkJCQl7CgkJCQkJCQkJaWYgKCBhVGFyZ2V0c1tqXSA9PSAiX2FsbCIgfHwKCQkJCQkJCQkgICAgICQob1NldHRpbmdzLmFvQ29sdW1uc1trXS5uVGgpLmhhc0NsYXNzKCBhVGFyZ2V0c1tqXSApICkKCQkJCQkJCQl7CgkJCQkJCQkJCWZuKCBrLCBhb0NvbERlZnNbaV0gKTsKCQkJCQkJCQl9CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCX0KCQkKCQkJLy8gU3RhdGljYWxseSBkZWZpbmVkIGNvbHVtbnMgYXJyYXkKCQkJaWYgKCBhb0NvbHMgKQoJCQl7CgkJCQlmb3IgKCBpPTAsIGlMZW49YW9Db2xzLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJCQl7CgkJCQkJZm4oIGksIGFvQ29sc1tpXSApOwoJCQkJfQoJCQl9CgkJfQoJCQoJCQoJCQoJCS8qKgoJCSAqIEFkZCBhIGRhdGEgYXJyYXkgdG8gdGhlIHRhYmxlLCBjcmVhdGluZyBET00gbm9kZSBldGMuIFRoaXMgaXMgdGhlIHBhcmFsbGVsIHRvIAoJCSAqIF9mbkdhdGhlckRhdGEsIGJ1dCBmb3IgYWRkaW5nIHJvd3MgZnJvbSBhIEphdmFzY3JpcHQgc291cmNlLCByYXRoZXIgdGhhbiBhCgkJICogRE9NIHNvdXJjZS4KCQkgKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAoJCSAqICBAcGFyYW0ge2FycmF5fSBhRGF0YSBkYXRhIGFycmF5IHRvIGJlIGFkZGVkCgkJICogIEByZXR1cm5zIHtpbnR9ID49MCBpZiBzdWNjZXNzZnVsIChpbmRleCBvZiBuZXcgYW9EYXRhIGVudHJ5KSwgLTEgaWYgZmFpbGVkCgkJICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQoJCSAqLwoJCWZ1bmN0aW9uIF9mbkFkZERhdGEgKCBvU2V0dGluZ3MsIGFEYXRhU3VwcGxpZWQgKQoJCXsKCQkJdmFyIG9Db2w7CgkJCQoJCQkvKiBUYWtlIGFuIGluZGVwZW5kZW50IGNvcHkgb2YgdGhlIGRhdGEgc291cmNlIHNvIHdlIGNhbiBiYXNoIGl0IGFib3V0IGFzIHdlIHdpc2ggKi8KCQkJdmFyIGFEYXRhSW4gPSAoJC5pc0FycmF5KGFEYXRhU3VwcGxpZWQpKSA/CgkJCQlhRGF0YVN1cHBsaWVkLnNsaWNlKCkgOgoJCQkJJC5leHRlbmQoIHRydWUsIHt9LCBhRGF0YVN1cHBsaWVkICk7CgkJCQoJCQkvKiBDcmVhdGUgdGhlIG9iamVjdCBmb3Igc3RvcmluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGlzIG5ldyByb3cgKi8KCQkJdmFyIGlSb3cgPSBvU2V0dGluZ3MuYW9EYXRhLmxlbmd0aDsKCQkJdmFyIG9EYXRhID0gJC5leHRlbmQoIHRydWUsIHt9LCBEYXRhVGFibGUubW9kZWxzLm9Sb3cgKTsKCQkJb0RhdGEuX2FEYXRhID0gYURhdGFJbjsKCQkJb1NldHRpbmdzLmFvRGF0YS5wdXNoKCBvRGF0YSApOwoJCQoJCQkvKiBDcmVhdGUgdGhlIGNlbGxzICovCgkJCXZhciBuVGQsIHNUaGlzVHlwZTsKCQkJZm9yICggdmFyIGk9MCwgaUxlbj1vU2V0dGluZ3MuYW9Db2x1bW5zLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJCXsKCQkJCW9Db2wgPSBvU2V0dGluZ3MuYW9Db2x1bW5zW2ldOwoJCQoJCQkJLyogVXNlIHJlbmRlcmVkIGRhdGEgZm9yIGZpbHRlcmluZyAvIHNvcnRpbmcgKi8KCQkJCWlmICggdHlwZW9mIG9Db2wuZm5SZW5kZXIgPT09ICdmdW5jdGlvbicgJiYgb0NvbC5iVXNlUmVuZGVyZWQgJiYgb0NvbC5tRGF0YSAhPT0gbnVsbCApCgkJCQl7CgkJCQkJX2ZuU2V0Q2VsbERhdGEoIG9TZXR0aW5ncywgaVJvdywgaSwgX2ZuUmVuZGVyKG9TZXR0aW5ncywgaVJvdywgaSkgKTsKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQlfZm5TZXRDZWxsRGF0YSggb1NldHRpbmdzLCBpUm93LCBpLCBfZm5HZXRDZWxsRGF0YSggb1NldHRpbmdzLCBpUm93LCBpICkgKTsKCQkJCX0KCQkJCQoJCQkJLyogU2VlIGlmIHdlIHNob3VsZCBhdXRvLWRldGVjdCB0aGUgY29sdW1uIHR5cGUgKi8KCQkJCWlmICggb0NvbC5fYkF1dG9UeXBlICYmIG9Db2wuc1R5cGUgIT0gJ3N0cmluZycgKQoJCQkJewoJCQkJCS8qIEF0dGVtcHQgdG8gYXV0byBkZXRlY3QgdGhlIHR5cGUgLSBzYW1lIGFzIF9mbkdhdGhlckRhdGEoKSAqLwoJCQkJCXZhciBzVmFyVHlwZSA9IF9mbkdldENlbGxEYXRhKCBvU2V0dGluZ3MsIGlSb3csIGksICd0eXBlJyApOwoJCQkJCWlmICggc1ZhclR5cGUgIT09IG51bGwgJiYgc1ZhclR5cGUgIT09ICcnICkKCQkJCQl7CgkJCQkJCXNUaGlzVHlwZSA9IF9mbkRldGVjdFR5cGUoIHNWYXJUeXBlICk7CgkJCQkJCWlmICggb0NvbC5zVHlwZSA9PT0gbnVsbCApCgkJCQkJCXsKCQkJCQkJCW9Db2wuc1R5cGUgPSBzVGhpc1R5cGU7CgkJCQkJCX0KCQkJCQkJZWxzZSBpZiAoIG9Db2wuc1R5cGUgIT0gc1RoaXNUeXBlICYmIG9Db2wuc1R5cGUgIT0gImh0bWwiICkKCQkJCQkJewoJCQkJCQkJLyogU3RyaW5nIGlzIGFsd2F5cyB0aGUgJ2ZhbGxiYWNrJyBvcHRpb24gKi8KCQkJCQkJCW9Db2wuc1R5cGUgPSAnc3RyaW5nJzsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJfQoJCQkKCQkJLyogQWRkIHRvIHRoZSBkaXNwbGF5IGFycmF5ICovCgkJCW9TZXR0aW5ncy5haURpc3BsYXlNYXN0ZXIucHVzaCggaVJvdyApOwoJCQoJCQkvKiBDcmVhdGUgdGhlIERPTSBpbWZvcm1hdGlvbiAqLwoJCQlpZiAoICFvU2V0dGluZ3Mub0ZlYXR1cmVzLmJEZWZlclJlbmRlciApCgkJCXsKCQkJCV9mbkNyZWF0ZVRyKCBvU2V0dGluZ3MsIGlSb3cgKTsKCQkJfQoJCQoJCQlyZXR1cm4gaVJvdzsKCQl9CgkJCgkJCgkJLyoqCgkJICogUmVhZCBpbiB0aGUgZGF0YSBmcm9tIHRoZSB0YXJnZXQgdGFibGUgZnJvbSB0aGUgRE9NCgkJICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCQkgKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCgkJICovCgkJZnVuY3Rpb24gX2ZuR2F0aGVyRGF0YSggb1NldHRpbmdzICkKCQl7CgkJCXZhciBpTG9vcCwgaSwgaUxlbiwgaiwgakxlbiwgaklubmVyLAoJCQkgCW5UZHMsIG5UcnMsIG5UZCwgYUxvY2FsRGF0YSwgaVRoaXNJbmRleCwKCQkJCWlSb3csIGlSb3dzLCBpQ29sdW1uLCBpQ29sdW1ucywgc05vZGVOYW1lLAoJCQkJb0NvbCwgb0RhdGE7CgkJCQoJCQkvKgoJCQkgKiBQcm9jZXNzIGJ5IHJvdyBmaXJzdAoJCQkgKiBBZGQgdGhlIGRhdGEgb2JqZWN0IGZvciB0aGUgd2hvbGUgdGFibGUgLSBzdG9yaW5nIHRoZSB0ciBub2RlLiBOb3RlIC0gbm8gcG9pbnQgaW4gZ2V0dGluZwoJCQkgKiBET00gYmFzZWQgZGF0YSBpZiB3ZSBhcmUgZ29pbmcgdG8gZ28gYW5kIHJlcGxhY2UgaXQgd2l0aCBBamF4IHNvdXJjZSBkYXRhLgoJCQkgKi8KCQkJaWYgKCBvU2V0dGluZ3MuYkRlZmVyTG9hZGluZyB8fCBvU2V0dGluZ3Muc0FqYXhTb3VyY2UgPT09IG51bGwgKQoJCQl7CgkJCQluVHJzID0gb1NldHRpbmdzLm5UQm9keS5jaGlsZE5vZGVzOwoJCQkJZm9yICggaT0wLCBpTGVuPW5UcnMubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQkJCXsKCQkJCQlpZiAoIG5UcnNbaV0ubm9kZU5hbWUudG9VcHBlckNhc2UoKSA9PSAiVFIiICkKCQkJCQl7CgkJCQkJCWlUaGlzSW5kZXggPSBvU2V0dGluZ3MuYW9EYXRhLmxlbmd0aDsKCQkJCQkJblRyc1tpXS5fRFRfUm93SW5kZXggPSBpVGhpc0luZGV4OwoJCQkJCQlvU2V0dGluZ3MuYW9EYXRhLnB1c2goICQuZXh0ZW5kKCB0cnVlLCB7fSwgRGF0YVRhYmxlLm1vZGVscy5vUm93LCB7CgkJCQkJCQkiblRyIjogblRyc1tpXQoJCQkJCQl9ICkgKTsKCQkJCQkJCgkJCQkJCW9TZXR0aW5ncy5haURpc3BsYXlNYXN0ZXIucHVzaCggaVRoaXNJbmRleCApOwoJCQkJCQluVGRzID0gblRyc1tpXS5jaGlsZE5vZGVzOwoJCQkJCQlqSW5uZXIgPSAwOwoJCQkJCQkKCQkJCQkJZm9yICggaj0wLCBqTGVuPW5UZHMubGVuZ3RoIDsgajxqTGVuIDsgaisrICkKCQkJCQkJewoJCQkJCQkJc05vZGVOYW1lID0gblRkc1tqXS5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpOwoJCQkJCQkJaWYgKCBzTm9kZU5hbWUgPT0gIlREIiB8fCBzTm9kZU5hbWUgPT0gIlRIIiApCgkJCQkJCQl7CgkJCQkJCQkJX2ZuU2V0Q2VsbERhdGEoIG9TZXR0aW5ncywgaVRoaXNJbmRleCwgaklubmVyLCAkLnRyaW0oblRkc1tqXS5pbm5lckhUTUwpICk7CgkJCQkJCQkJaklubmVyKys7CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCX0KCQkJCgkJCS8qIEdhdGhlciBpbiB0aGUgVEQgZWxlbWVudHMgb2YgdGhlIFRhYmxlIC0gbm90ZSB0aGF0IHRoaXMgaXMgYmFzaWNhbGx5IHRoZSBzYW1lIGFzCgkJCSAqIGZuR2V0VGROb2RlcywgYnV0IHRoYXQgZnVuY3Rpb24gdGFrZXMgYWNjb3VudCBvZiBoaWRkZW4gY29sdW1ucywgd2hpY2ggd2UgaGF2ZW4ndCB5ZXQKCQkJICogc2V0dXAhCgkJCSAqLwoJCQluVHJzID0gX2ZuR2V0VHJOb2Rlcyggb1NldHRpbmdzICk7CgkJCW5UZHMgPSBbXTsKCQkJZm9yICggaT0wLCBpTGVuPW5UcnMubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQkJewoJCQkJZm9yICggaj0wLCBqTGVuPW5UcnNbaV0uY2hpbGROb2Rlcy5sZW5ndGggOyBqPGpMZW4gOyBqKysgKQoJCQkJewoJCQkJCW5UZCA9IG5UcnNbaV0uY2hpbGROb2Rlc1tqXTsKCQkJCQlzTm9kZU5hbWUgPSBuVGQubm9kZU5hbWUudG9VcHBlckNhc2UoKTsKCQkJCQlpZiAoIHNOb2RlTmFtZSA9PSAiVEQiIHx8IHNOb2RlTmFtZSA9PSAiVEgiICkKCQkJCQl7CgkJCQkJCW5UZHMucHVzaCggblRkICk7CgkJCQkJfQoJCQkJfQoJCQl9CgkJCQoJCQkvKiBOb3cgcHJvY2VzcyBieSBjb2x1bW4gKi8KCQkJZm9yICggaUNvbHVtbj0wLCBpQ29sdW1ucz1vU2V0dGluZ3MuYW9Db2x1bW5zLmxlbmd0aCA7IGlDb2x1bW48aUNvbHVtbnMgOyBpQ29sdW1uKysgKQoJCQl7CgkJCQlvQ29sID0gb1NldHRpbmdzLmFvQ29sdW1uc1tpQ29sdW1uXTsKCQkKCQkJCS8qIEdldCB0aGUgdGl0bGUgb2YgdGhlIGNvbHVtbiAtIHVubGVzcyB0aGVyZSBpcyBhIHVzZXIgc2V0IG9uZSAqLwoJCQkJaWYgKCBvQ29sLnNUaXRsZSA9PT0gbnVsbCApCgkJCQl7CgkJCQkJb0NvbC5zVGl0bGUgPSBvQ29sLm5UaC5pbm5lckhUTUw7CgkJCQl9CgkJCQkKCQkJCXZhcgoJCQkJCWJBdXRvVHlwZSA9IG9Db2wuX2JBdXRvVHlwZSwKCQkJCQliUmVuZGVyID0gdHlwZW9mIG9Db2wuZm5SZW5kZXIgPT09ICdmdW5jdGlvbicsCgkJCQkJYkNsYXNzID0gb0NvbC5zQ2xhc3MgIT09IG51bGwsCgkJCQkJYlZpc2libGUgPSBvQ29sLmJWaXNpYmxlLAoJCQkJCW5DZWxsLCBzVGhpc1R5cGUsIHNSZW5kZXJlZCwgc1ZhbFR5cGU7CgkJCQkKCQkJCS8qIEEgc2luZ2xlIGxvb3AgdG8gcnVsZSB0aGVtIGFsbCAoYW5kIGJlIG1vcmUgZWZmaWNpZW50KSAqLwoJCQkJaWYgKCBiQXV0b1R5cGUgfHwgYlJlbmRlciB8fCBiQ2xhc3MgfHwgIWJWaXNpYmxlICkKCQkJCXsKCQkJCQlmb3IgKCBpUm93PTAsIGlSb3dzPW9TZXR0aW5ncy5hb0RhdGEubGVuZ3RoIDsgaVJvdzxpUm93cyA7IGlSb3crKyApCgkJCQkJewoJCQkJCQlvRGF0YSA9IG9TZXR0aW5ncy5hb0RhdGFbaVJvd107CgkJCQkJCW5DZWxsID0gblRkc1sgKGlSb3cqaUNvbHVtbnMpICsgaUNvbHVtbiBdOwoJCQkJCQkKCQkJCQkJLyogVHlwZSBkZXRlY3Rpb24gKi8KCQkJCQkJaWYgKCBiQXV0b1R5cGUgJiYgb0NvbC5zVHlwZSAhPSAnc3RyaW5nJyApCgkJCQkJCXsKCQkJCQkJCXNWYWxUeXBlID0gX2ZuR2V0Q2VsbERhdGEoIG9TZXR0aW5ncywgaVJvdywgaUNvbHVtbiwgJ3R5cGUnICk7CgkJCQkJCQlpZiAoIHNWYWxUeXBlICE9PSAnJyApCgkJCQkJCQl7CgkJCQkJCQkJc1RoaXNUeXBlID0gX2ZuRGV0ZWN0VHlwZSggc1ZhbFR5cGUgKTsKCQkJCQkJCQlpZiAoIG9Db2wuc1R5cGUgPT09IG51bGwgKQoJCQkJCQkJCXsKCQkJCQkJCQkJb0NvbC5zVHlwZSA9IHNUaGlzVHlwZTsKCQkJCQkJCQl9CgkJCQkJCQkJZWxzZSBpZiAoIG9Db2wuc1R5cGUgIT0gc1RoaXNUeXBlICYmIAoJCQkJCQkJCSAgICAgICAgICBvQ29sLnNUeXBlICE9ICJodG1sIiApCgkJCQkJCQkJewoJCQkJCQkJCQkvKiBTdHJpbmcgaXMgYWx3YXlzIHRoZSAnZmFsbGJhY2snIG9wdGlvbiAqLwoJCQkJCQkJCQlvQ29sLnNUeXBlID0gJ3N0cmluZyc7CgkJCQkJCQkJfQoJCQkJCQkJfQoJCQkJCQl9CgkJCgkJCQkJCWlmICggdHlwZW9mIG9Db2wubURhdGEgPT09ICdmdW5jdGlvbicgKQoJCQkJCQl7CgkJCQkJCQluQ2VsbC5pbm5lckhUTUwgPSBfZm5HZXRDZWxsRGF0YSggb1NldHRpbmdzLCBpUm93LCBpQ29sdW1uLCAnZGlzcGxheScgKTsKCQkJCQkJfQoJCQkJCQkKCQkJCQkJLyogUmVuZGVyaW5nICovCgkJCQkJCWlmICggYlJlbmRlciApCgkJCQkJCXsKCQkJCQkJCXNSZW5kZXJlZCA9IF9mblJlbmRlciggb1NldHRpbmdzLCBpUm93LCBpQ29sdW1uICk7CgkJCQkJCQluQ2VsbC5pbm5lckhUTUwgPSBzUmVuZGVyZWQ7CgkJCQkJCQlpZiAoIG9Db2wuYlVzZVJlbmRlcmVkICkKCQkJCQkJCXsKCQkJCQkJCQkvKiBVc2UgdGhlIHJlbmRlcmVkIGRhdGEgZm9yIGZpbHRlcmluZyAvIHNvcnRpbmcgKi8KCQkJCQkJCQlfZm5TZXRDZWxsRGF0YSggb1NldHRpbmdzLCBpUm93LCBpQ29sdW1uLCBzUmVuZGVyZWQgKTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCQkKCQkJCQkJLyogQ2xhc3NlcyAqLwoJCQkJCQlpZiAoIGJDbGFzcyApCgkJCQkJCXsKCQkJCQkJCW5DZWxsLmNsYXNzTmFtZSArPSAnICcrb0NvbC5zQ2xhc3M7CgkJCQkJCX0KCQkJCQkJCgkJCQkJCS8qIENvbHVtbiB2aXNpYmlsaXR5ICovCgkJCQkJCWlmICggIWJWaXNpYmxlICkKCQkJCQkJewoJCQkJCQkJb0RhdGEuX2FuSGlkZGVuW2lDb2x1bW5dID0gbkNlbGw7CgkJCQkJCQluQ2VsbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKCBuQ2VsbCApOwoJCQkJCQl9CgkJCQkJCWVsc2UKCQkJCQkJewoJCQkJCQkJb0RhdGEuX2FuSGlkZGVuW2lDb2x1bW5dID0gbnVsbDsKCQkJCQkJfQoJCQoJCQkJCQlpZiAoIG9Db2wuZm5DcmVhdGVkQ2VsbCApCgkJCQkJCXsKCQkJCQkJCW9Db2wuZm5DcmVhdGVkQ2VsbC5jYWxsKCBvU2V0dGluZ3Mub0luc3RhbmNlLAoJCQkJCQkJCW5DZWxsLCBfZm5HZXRDZWxsRGF0YSggb1NldHRpbmdzLCBpUm93LCBpQ29sdW1uLCAnZGlzcGxheScgKSwgb0RhdGEuX2FEYXRhLCBpUm93LCBpQ29sdW1uCgkJCQkJCQkpOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9CgkJCgkJCS8qIFJvdyBjcmVhdGVkIGNhbGxiYWNrcyAqLwoJCQlpZiAoIG9TZXR0aW5ncy5hb1Jvd0NyZWF0ZWRDYWxsYmFjay5sZW5ndGggIT09IDAgKQoJCQl7CgkJCQlmb3IgKCBpPTAsIGlMZW49b1NldHRpbmdzLmFvRGF0YS5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCQkJewoJCQkJCW9EYXRhID0gb1NldHRpbmdzLmFvRGF0YVtpXTsKCQkJCQlfZm5DYWxsYmFja0ZpcmUoIG9TZXR0aW5ncywgJ2FvUm93Q3JlYXRlZENhbGxiYWNrJywgbnVsbCwgW29EYXRhLm5Uciwgb0RhdGEuX2FEYXRhLCBpXSApOwoJCQkJfQoJCQl9CgkJfQoJCQoJCQoJCS8qKgoJCSAqIFRha2UgYSBUUiBlbGVtZW50IGFuZCBjb252ZXJ0IGl0IHRvIGFuIGluZGV4IGluIGFvRGF0YQoJCSAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CgkJICogIEBwYXJhbSB7bm9kZX0gbiB0aGUgVFIgZWxlbWVudCB0byBmaW5kCgkJICogIEByZXR1cm5zIHtpbnR9IGluZGV4IGlmIHRoZSBub2RlIGlzIGZvdW5kLCBudWxsIGlmIG5vdAoJCSAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKCQkgKi8KCQlmdW5jdGlvbiBfZm5Ob2RlVG9EYXRhSW5kZXgoIG9TZXR0aW5ncywgbiApCgkJewoJCQlyZXR1cm4gKG4uX0RUX1Jvd0luZGV4IT09dW5kZWZpbmVkKSA/IG4uX0RUX1Jvd0luZGV4IDogbnVsbDsKCQl9CgkJCgkJCgkJLyoqCgkJICogVGFrZSBhIFREIGVsZW1lbnQgYW5kIGNvbnZlcnQgaXQgaW50byBhIGNvbHVtbiBkYXRhIGluZGV4IChub3QgdGhlIHZpc2libGUgaW5kZXgpCgkJICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCQkgKiAgQHBhcmFtIHtpbnR9IGlSb3cgVGhlIHJvdyBudW1iZXIgdGhlIFREL1RIIGNhbiBiZSBmb3VuZCBpbgoJCSAqICBAcGFyYW0ge25vZGV9IG4gVGhlIFREL1RIIGVsZW1lbnQgdG8gZmluZAoJCSAqICBAcmV0dXJucyB7aW50fSBpbmRleCBpZiB0aGUgbm9kZSBpcyBmb3VuZCwgLTEgaWYgbm90CgkJICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQoJCSAqLwoJCWZ1bmN0aW9uIF9mbk5vZGVUb0NvbHVtbkluZGV4KCBvU2V0dGluZ3MsIGlSb3csIG4gKQoJCXsKCQkJdmFyIGFuQ2VsbHMgPSBfZm5HZXRUZE5vZGVzKCBvU2V0dGluZ3MsIGlSb3cgKTsKCQkKCQkJZm9yICggdmFyIGk9MCwgaUxlbj1vU2V0dGluZ3MuYW9Db2x1bW5zLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJCXsKCQkJCWlmICggYW5DZWxsc1tpXSA9PT0gbiApCgkJCQl7CgkJCQkJcmV0dXJuIGk7CgkJCQl9CgkJCX0KCQkJcmV0dXJuIC0xOwoJCX0KCQkKCQkKCQkvKioKCQkgKiBHZXQgYW4gYXJyYXkgb2YgZGF0YSBmb3IgYSBnaXZlbiByb3cgZnJvbSB0aGUgaW50ZXJuYWwgZGF0YSBjYWNoZQoJCSAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CgkJICogIEBwYXJhbSB7aW50fSBpUm93IGFvRGF0YSByb3cgaWQKCQkgKiAgQHBhcmFtIHtzdHJpbmd9IHNTcGVjaWZpYyBkYXRhIGdldCB0eXBlICgndHlwZScgJ2ZpbHRlcicgJ3NvcnQnKQoJCSAqICBAcGFyYW0ge2FycmF5fSBhaUNvbHVtbnMgQXJyYXkgb2YgY29sdW1uIGluZGV4ZXMgdG8gZ2V0IGRhdGEgZnJvbQoJCSAqICBAcmV0dXJucyB7YXJyYXl9IERhdGEgYXJyYXkKCQkgKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCgkJICovCgkJZnVuY3Rpb24gX2ZuR2V0Um93RGF0YSggb1NldHRpbmdzLCBpUm93LCBzU3BlY2lmaWMsIGFpQ29sdW1ucyApCgkJewoJCQl2YXIgb3V0ID0gW107CgkJCWZvciAoIHZhciBpPTAsIGlMZW49YWlDb2x1bW5zLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJCXsKCQkJCW91dC5wdXNoKCBfZm5HZXRDZWxsRGF0YSggb1NldHRpbmdzLCBpUm93LCBhaUNvbHVtbnNbaV0sIHNTcGVjaWZpYyApICk7CgkJCX0KCQkJcmV0dXJuIG91dDsKCQl9CgkJCgkJCgkJLyoqCgkJICogR2V0IHRoZSBkYXRhIGZvciBhIGdpdmVuIGNlbGwgZnJvbSB0aGUgaW50ZXJuYWwgY2FjaGUsIHRha2luZyBpbnRvIGFjY291bnQgZGF0YSBtYXBwaW5nCgkJICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCQkgKiAgQHBhcmFtIHtpbnR9IGlSb3cgYW9EYXRhIHJvdyBpZAoJCSAqICBAcGFyYW0ge2ludH0gaUNvbCBDb2x1bW4gaW5kZXgKCQkgKiAgQHBhcmFtIHtzdHJpbmd9IHNTcGVjaWZpYyBkYXRhIGdldCB0eXBlICgnZGlzcGxheScsICd0eXBlJyAnZmlsdGVyJyAnc29ydCcpCgkJICogIEByZXR1cm5zIHsqfSBDZWxsIGRhdGEKCQkgKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCgkJICovCgkJZnVuY3Rpb24gX2ZuR2V0Q2VsbERhdGEoIG9TZXR0aW5ncywgaVJvdywgaUNvbCwgc1NwZWNpZmljICkKCQl7CgkJCXZhciBzRGF0YTsKCQkJdmFyIG9Db2wgPSBvU2V0dGluZ3MuYW9Db2x1bW5zW2lDb2xdOwoJCQl2YXIgb0RhdGEgPSBvU2V0dGluZ3MuYW9EYXRhW2lSb3ddLl9hRGF0YTsKCQkKCQkJaWYgKCAoc0RhdGE9b0NvbC5mbkdldERhdGEoIG9EYXRhLCBzU3BlY2lmaWMgKSkgPT09IHVuZGVmaW5lZCApCgkJCXsKCQkJCWlmICggb1NldHRpbmdzLmlEcmF3RXJyb3IgIT0gb1NldHRpbmdzLmlEcmF3ICYmIG9Db2wuc0RlZmF1bHRDb250ZW50ID09PSBudWxsICkKCQkJCXsKCQkJCQlfZm5Mb2coIG9TZXR0aW5ncywgMCwgIlJlcXVlc3RlZCB1bmtub3duIHBhcmFtZXRlciAiKwoJCQkJCQkodHlwZW9mIG9Db2wubURhdGE9PSdmdW5jdGlvbicgPyAne21EYXRhIGZ1bmN0aW9ufScgOiAiJyIrb0NvbC5tRGF0YSsiJyIpKwoJCQkJCQkiIGZyb20gdGhlIGRhdGEgc291cmNlIGZvciByb3cgIitpUm93ICk7CgkJCQkJb1NldHRpbmdzLmlEcmF3RXJyb3IgPSBvU2V0dGluZ3MuaURyYXc7CgkJCQl9CgkJCQlyZXR1cm4gb0NvbC5zRGVmYXVsdENvbnRlbnQ7CgkJCX0KCQkKCQkJLyogV2hlbiB0aGUgZGF0YSBzb3VyY2UgaXMgbnVsbCwgd2UgY2FuIHVzZSBkZWZhdWx0IGNvbHVtbiBkYXRhICovCgkJCWlmICggc0RhdGEgPT09IG51bGwgJiYgb0NvbC5zRGVmYXVsdENvbnRlbnQgIT09IG51bGwgKQoJCQl7CgkJCQlzRGF0YSA9IG9Db2wuc0RlZmF1bHRDb250ZW50OwoJCQl9CgkJCWVsc2UgaWYgKCB0eXBlb2Ygc0RhdGEgPT09ICdmdW5jdGlvbicgKQoJCQl7CgkJCQkvKiBJZiB0aGUgZGF0YSBzb3VyY2UgaXMgYSBmdW5jdGlvbiwgdGhlbiB3ZSBydW4gaXQgYW5kIHVzZSB0aGUgcmV0dXJuICovCgkJCQlyZXR1cm4gc0RhdGEoKTsKCQkJfQoJCQoJCQlpZiAoIHNTcGVjaWZpYyA9PSAnZGlzcGxheScgJiYgc0RhdGEgPT09IG51bGwgKQoJCQl7CgkJCQlyZXR1cm4gJyc7CgkJCX0KCQkJcmV0dXJuIHNEYXRhOwoJCX0KCQkKCQkKCQkvKioKCQkgKiBTZXQgdGhlIHZhbHVlIGZvciBhIHNwZWNpZmljIGNlbGwsIGludG8gdGhlIGludGVybmFsIGRhdGEgY2FjaGUKCQkgKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAoJCSAqICBAcGFyYW0ge2ludH0gaVJvdyBhb0RhdGEgcm93IGlkCgkJICogIEBwYXJhbSB7aW50fSBpQ29sIENvbHVtbiBpbmRleAoJCSAqICBAcGFyYW0geyp9IHZhbCBWYWx1ZSB0byBzZXQKCQkgKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCgkJICovCgkJZnVuY3Rpb24gX2ZuU2V0Q2VsbERhdGEoIG9TZXR0aW5ncywgaVJvdywgaUNvbCwgdmFsICkKCQl7CgkJCXZhciBvQ29sID0gb1NldHRpbmdzLmFvQ29sdW1uc1tpQ29sXTsKCQkJdmFyIG9EYXRhID0gb1NldHRpbmdzLmFvRGF0YVtpUm93XS5fYURhdGE7CgkJCgkJCW9Db2wuZm5TZXREYXRhKCBvRGF0YSwgdmFsICk7CgkJfQoJCQoJCQoJCS8vIFByaXZhdGUgdmFyaWFibGUgdGhhdCBpcyB1c2VkIHRvIG1hdGNoIGFycmF5IHN5bnRheCBpbiB0aGUgZGF0YSBwcm9wZXJ0eSBvYmplY3QKCQl2YXIgX19yZUFycmF5ID0gL1xbLio/XF0kLzsKCQkKCQkvKioKCQkgKiBSZXR1cm4gYSBmdW5jdGlvbiB0aGF0IGNhbiBiZSB1c2VkIHRvIGdldCBkYXRhIGZyb20gYSBzb3VyY2Ugb2JqZWN0LCB0YWtpbmcKCQkgKiBpbnRvIGFjY291bnQgdGhlIGFiaWxpdHkgdG8gdXNlIG5lc3RlZCBvYmplY3RzIGFzIGEgc291cmNlCgkJICogIEBwYXJhbSB7c3RyaW5nfGludHxmdW5jdGlvbn0gbVNvdXJjZSBUaGUgZGF0YSBzb3VyY2UgZm9yIHRoZSBvYmplY3QKCQkgKiAgQHJldHVybnMge2Z1bmN0aW9ufSBEYXRhIGdldCBmdW5jdGlvbgoJCSAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKCQkgKi8KCQlmdW5jdGlvbiBfZm5HZXRPYmplY3REYXRhRm4oIG1Tb3VyY2UgKQoJCXsKCQkJaWYgKCBtU291cmNlID09PSBudWxsICkKCQkJewoJCQkJLyogR2l2ZSBhbiBlbXB0eSBzdHJpbmcgZm9yIHJlbmRlcmluZyAvIHNvcnRpbmcgZXRjICovCgkJCQlyZXR1cm4gZnVuY3Rpb24gKGRhdGEsIHR5cGUpIHsKCQkJCQlyZXR1cm4gbnVsbDsKCQkJCX07CgkJCX0KCQkJZWxzZSBpZiAoIHR5cGVvZiBtU291cmNlID09PSAnZnVuY3Rpb24nICkKCQkJewoJCQkJcmV0dXJuIGZ1bmN0aW9uIChkYXRhLCB0eXBlLCBleHRyYSkgewoJCQkJCXJldHVybiBtU291cmNlKCBkYXRhLCB0eXBlLCBleHRyYSApOwoJCQkJfTsKCQkJfQoJCQllbHNlIGlmICggdHlwZW9mIG1Tb3VyY2UgPT09ICdzdHJpbmcnICYmIChtU291cmNlLmluZGV4T2YoJy4nKSAhPT0gLTEgfHwgbVNvdXJjZS5pbmRleE9mKCdbJykgIT09IC0xKSApCgkJCXsKCQkJCS8qIElmIHRoZXJlIGlzIGEgLiBpbiB0aGUgc291cmNlIHN0cmluZyB0aGVuIHRoZSBkYXRhIHNvdXJjZSBpcyBpbiBhIAoJCQkJICogbmVzdGVkIG9iamVjdCBzbyB3ZSBsb29wIG92ZXIgdGhlIGRhdGEgZm9yIGVhY2ggbGV2ZWwgdG8gZ2V0IHRoZSBuZXh0CgkJCQkgKiBsZXZlbCBkb3duLiBPbiBlYWNoIGxvb3Agd2UgdGVzdCBmb3IgdW5kZWZpbmVkLCBhbmQgaWYgZm91bmQgaW1tZWRpYXRlbHkKCQkJCSAqIHJldHVybi4gVGhpcyBhbGxvd3MgZW50aXJlIG9iamVjdHMgdG8gYmUgbWlzc2luZyBhbmQgc0RlZmF1bHRDb250ZW50IHRvCgkJCQkgKiBiZSB1c2VkIGlmIGRlZmluZWQsIHJhdGhlciB0aGFuIHRocm93aW5nIGFuIGVycm9yCgkJCQkgKi8KCQkJCXZhciBmZXRjaERhdGEgPSBmdW5jdGlvbiAoZGF0YSwgdHlwZSwgc3JjKSB7CgkJCQkJdmFyIGEgPSBzcmMuc3BsaXQoJy4nKTsKCQkJCQl2YXIgYXJyYXlOb3RhdGlvbiwgb3V0LCBpbm5lclNyYzsKCQkKCQkJCQlpZiAoIHNyYyAhPT0gIiIgKQoJCQkJCXsKCQkJCQkJZm9yICggdmFyIGk9MCwgaUxlbj1hLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJCQkJCXsKCQkJCQkJCS8vIENoZWNrIGlmIHdlIGFyZSBkZWFsaW5nIHdpdGggYW4gYXJyYXkgbm90YXRpb24gcmVxdWVzdAoJCQkJCQkJYXJyYXlOb3RhdGlvbiA9IGFbaV0ubWF0Y2goX19yZUFycmF5KTsKCQkKCQkJCQkJCWlmICggYXJyYXlOb3RhdGlvbiApIHsKCQkJCQkJCQlhW2ldID0gYVtpXS5yZXBsYWNlKF9fcmVBcnJheSwgJycpOwoJCQoJCQkJCQkJCS8vIENvbmRpdGlvbiBhbGxvd3Mgc2ltcGx5IFtdIHRvIGJlIHBhc3NlZCBpbgoJCQkJCQkJCWlmICggYVtpXSAhPT0gIiIgKSB7CgkJCQkJCQkJCWRhdGEgPSBkYXRhWyBhW2ldIF07CgkJCQkJCQkJfQoJCQkJCQkJCW91dCA9IFtdOwoJCQkJCQkJCQoJCQkJCQkJCS8vIEdldCB0aGUgcmVtYWluZGVyIG9mIHRoZSBuZXN0ZWQgb2JqZWN0IHRvIGdldAoJCQkJCQkJCWEuc3BsaWNlKCAwLCBpKzEgKTsKCQkJCQkJCQlpbm5lclNyYyA9IGEuam9pbignLicpOwoJCQoJCQkJCQkJCS8vIFRyYXZlcnNlIGVhY2ggZW50cnkgaW4gdGhlIGFycmF5IGdldHRpbmcgdGhlIHByb3BlcnRpZXMgcmVxdWVzdGVkCgkJCQkJCQkJZm9yICggdmFyIGo9MCwgakxlbj1kYXRhLmxlbmd0aCA7IGo8akxlbiA7IGorKyApIHsKCQkJCQkJCQkJb3V0LnB1c2goIGZldGNoRGF0YSggZGF0YVtqXSwgdHlwZSwgaW5uZXJTcmMgKSApOwoJCQkJCQkJCX0KCQkKCQkJCQkJCQkvLyBJZiBhIHN0cmluZyBpcyBnaXZlbiBpbiBiZXR3ZWVuIHRoZSBhcnJheSBub3RhdGlvbiBpbmRpY2F0b3JzLCB0aGF0CgkJCQkJCQkJLy8gaXMgdXNlZCB0byBqb2luIHRoZSBzdHJpbmdzIHRvZ2V0aGVyLCBvdGhlcndpc2UgYW4gYXJyYXkgaXMgcmV0dXJuZWQKCQkJCQkJCQl2YXIgam9pbiA9IGFycmF5Tm90YXRpb25bMF0uc3Vic3RyaW5nKDEsIGFycmF5Tm90YXRpb25bMF0ubGVuZ3RoLTEpOwoJCQkJCQkJCWRhdGEgPSAoam9pbj09PSIiKSA/IG91dCA6IG91dC5qb2luKGpvaW4pOwoJCQoJCQkJCQkJCS8vIFRoZSBpbm5lciBjYWxsIHRvIGZldGNoRGF0YSBoYXMgYWxyZWFkeSB0cmF2ZXJzZWQgdGhyb3VnaCB0aGUgcmVtYWluZGVyCgkJCQkJCQkJLy8gb2YgdGhlIHNvdXJjZSByZXF1ZXN0ZWQsIHNvIHdlIGV4aXQgZnJvbSB0aGUgbG9vcAoJCQkJCQkJCWJyZWFrOwoJCQkJCQkJfQoJCQoJCQkJCQkJaWYgKCBkYXRhID09PSBudWxsIHx8IGRhdGFbIGFbaV0gXSA9PT0gdW5kZWZpbmVkICkKCQkJCQkJCXsKCQkJCQkJCQlyZXR1cm4gdW5kZWZpbmVkOwoJCQkJCQkJfQoJCQkJCQkJZGF0YSA9IGRhdGFbIGFbaV0gXTsKCQkJCQkJfQoJCQkJCX0KCQkKCQkJCQlyZXR1cm4gZGF0YTsKCQkJCX07CgkJCgkJCQlyZXR1cm4gZnVuY3Rpb24gKGRhdGEsIHR5cGUpIHsKCQkJCQlyZXR1cm4gZmV0Y2hEYXRhKCBkYXRhLCB0eXBlLCBtU291cmNlICk7CgkJCQl9OwoJCQl9CgkJCWVsc2UKCQkJewoJCQkJLyogQXJyYXkgb3IgZmxhdCBvYmplY3QgbWFwcGluZyAqLwoJCQkJcmV0dXJuIGZ1bmN0aW9uIChkYXRhLCB0eXBlKSB7CgkJCQkJcmV0dXJuIGRhdGFbbVNvdXJjZV07CQoJCQkJfTsKCQkJfQoJCX0KCQkKCQkKCQkvKioKCQkgKiBSZXR1cm4gYSBmdW5jdGlvbiB0aGF0IGNhbiBiZSB1c2VkIHRvIHNldCBkYXRhIGZyb20gYSBzb3VyY2Ugb2JqZWN0LCB0YWtpbmcKCQkgKiBpbnRvIGFjY291bnQgdGhlIGFiaWxpdHkgdG8gdXNlIG5lc3RlZCBvYmplY3RzIGFzIGEgc291cmNlCgkJICogIEBwYXJhbSB7c3RyaW5nfGludHxmdW5jdGlvbn0gbVNvdXJjZSBUaGUgZGF0YSBzb3VyY2UgZm9yIHRoZSBvYmplY3QKCQkgKiAgQHJldHVybnMge2Z1bmN0aW9ufSBEYXRhIHNldCBmdW5jdGlvbgoJCSAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKCQkgKi8KCQlmdW5jdGlvbiBfZm5TZXRPYmplY3REYXRhRm4oIG1Tb3VyY2UgKQoJCXsKCQkJaWYgKCBtU291cmNlID09PSBudWxsICkKCQkJewoJCQkJLyogTm90aGluZyB0byBkbyB3aGVuIHRoZSBkYXRhIHNvdXJjZSBpcyBudWxsICovCgkJCQlyZXR1cm4gZnVuY3Rpb24gKGRhdGEsIHZhbCkge307CgkJCX0KCQkJZWxzZSBpZiAoIHR5cGVvZiBtU291cmNlID09PSAnZnVuY3Rpb24nICkKCQkJewoJCQkJcmV0dXJuIGZ1bmN0aW9uIChkYXRhLCB2YWwpIHsKCQkJCQltU291cmNlKCBkYXRhLCAnc2V0JywgdmFsICk7CgkJCQl9OwoJCQl9CgkJCWVsc2UgaWYgKCB0eXBlb2YgbVNvdXJjZSA9PT0gJ3N0cmluZycgJiYgKG1Tb3VyY2UuaW5kZXhPZignLicpICE9PSAtMSB8fCBtU291cmNlLmluZGV4T2YoJ1snKSAhPT0gLTEpICkKCQkJewoJCQkJLyogTGlrZSB0aGUgZ2V0LCB3ZSBuZWVkIHRvIGdldCBkYXRhIGZyb20gYSBuZXN0ZWQgb2JqZWN0ICovCgkJCQl2YXIgc2V0RGF0YSA9IGZ1bmN0aW9uIChkYXRhLCB2YWwsIHNyYykgewoJCQkJCXZhciBhID0gc3JjLnNwbGl0KCcuJyksIGI7CgkJCQkJdmFyIGFycmF5Tm90YXRpb24sIG8sIGlubmVyU3JjOwoJCQoJCQkJCWZvciAoIHZhciBpPTAsIGlMZW49YS5sZW5ndGgtMSA7IGk8aUxlbiA7IGkrKyApCgkJCQkJewoJCQkJCQkvLyBDaGVjayBpZiB3ZSBhcmUgZGVhbGluZyB3aXRoIGFuIGFycmF5IG5vdGF0aW9uIHJlcXVlc3QKCQkJCQkJYXJyYXlOb3RhdGlvbiA9IGFbaV0ubWF0Y2goX19yZUFycmF5KTsKCQkKCQkJCQkJaWYgKCBhcnJheU5vdGF0aW9uICkKCQkJCQkJewoJCQkJCQkJYVtpXSA9IGFbaV0ucmVwbGFjZShfX3JlQXJyYXksICcnKTsKCQkJCQkJCWRhdGFbIGFbaV0gXSA9IFtdOwoJCQkJCQkJCgkJCQkJCQkvLyBHZXQgdGhlIHJlbWFpbmRlciBvZiB0aGUgbmVzdGVkIG9iamVjdCB0byBzZXQgc28gd2UgY2FuIHJlY3Vyc2UKCQkJCQkJCWIgPSBhLnNsaWNlKCk7CgkJCQkJCQliLnNwbGljZSggMCwgaSsxICk7CgkJCQkJCQlpbm5lclNyYyA9IGIuam9pbignLicpOwoJCQoJCQkJCQkJLy8gVHJhdmVyc2UgZWFjaCBlbnRyeSBpbiB0aGUgYXJyYXkgc2V0dGluZyB0aGUgcHJvcGVydGllcyByZXF1ZXN0ZWQKCQkJCQkJCWZvciAoIHZhciBqPTAsIGpMZW49dmFsLmxlbmd0aCA7IGo8akxlbiA7IGorKyApCgkJCQkJCQl7CgkJCQkJCQkJbyA9IHt9OwoJCQkJCQkJCXNldERhdGEoIG8sIHZhbFtqXSwgaW5uZXJTcmMgKTsKCQkJCQkJCQlkYXRhWyBhW2ldIF0ucHVzaCggbyApOwoJCQkJCQkJfQoJCQoJCQkJCQkJLy8gVGhlIGlubmVyIGNhbGwgdG8gc2V0RGF0YSBoYXMgYWxyZWFkeSB0cmF2ZXJzZWQgdGhyb3VnaCB0aGUgcmVtYWluZGVyCgkJCQkJCQkvLyBvZiB0aGUgc291cmNlIGFuZCBoYXMgc2V0IHRoZSBkYXRhLCB0aHVzIHdlIGNhbiBleGl0IGhlcmUKCQkJCQkJCXJldHVybjsKCQkJCQkJfQoJCQoJCQkJCQkvLyBJZiB0aGUgbmVzdGVkIG9iamVjdCBkb2Vzbid0IGN1cnJlbnRseSBleGlzdCAtIHNpbmNlIHdlIGFyZQoJCQkJCQkvLyB0cnlpbmcgdG8gc2V0IHRoZSB2YWx1ZSAtIGNyZWF0ZSBpdAoJCQkJCQlpZiAoIGRhdGFbIGFbaV0gXSA9PT0gbnVsbCB8fCBkYXRhWyBhW2ldIF0gPT09IHVuZGVmaW5lZCApCgkJCQkJCXsKCQkJCQkJCWRhdGFbIGFbaV0gXSA9IHt9OwoJCQkJCQl9CgkJCQkJCWRhdGEgPSBkYXRhWyBhW2ldIF07CgkJCQkJfQoJCQoJCQkJCS8vIElmIGFycmF5IG5vdGF0aW9uIGlzIHVzZWQsIHdlIGp1c3Qgd2FudCB0byBzdHJpcCBpdCBhbmQgdXNlIHRoZSBwcm9wZXJ0eSBuYW1lCgkJCQkJLy8gYW5kIGFzc2lnbiB0aGUgdmFsdWUuIElmIGl0IGlzbid0IHVzZWQsIHRoZW4gd2UgZ2V0IHRoZSByZXN1bHQgd2Ugd2FudCBhbnl3YXkKCQkJCQlkYXRhWyBhW2EubGVuZ3RoLTFdLnJlcGxhY2UoX19yZUFycmF5LCAnJykgXSA9IHZhbDsKCQkJCX07CgkJCgkJCQlyZXR1cm4gZnVuY3Rpb24gKGRhdGEsIHZhbCkgewoJCQkJCXJldHVybiBzZXREYXRhKCBkYXRhLCB2YWwsIG1Tb3VyY2UgKTsKCQkJCX07CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQkvKiBBcnJheSBvciBmbGF0IG9iamVjdCBtYXBwaW5nICovCgkJCQlyZXR1cm4gZnVuY3Rpb24gKGRhdGEsIHZhbCkgewoJCQkJCWRhdGFbbVNvdXJjZV0gPSB2YWw7CQoJCQkJfTsKCQkJfQoJCX0KCQkKCQkKCQkvKioKCQkgKiBSZXR1cm4gYW4gYXJyYXkgd2l0aCB0aGUgZnVsbCB0YWJsZSBkYXRhCgkJICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCQkgKiAgQHJldHVybnMgYXJyYXkge2FycmF5fSBhRGF0YSBNYXN0ZXIgZGF0YSBhcnJheQoJCSAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKCQkgKi8KCQlmdW5jdGlvbiBfZm5HZXREYXRhTWFzdGVyICggb1NldHRpbmdzICkKCQl7CgkJCXZhciBhRGF0YSA9IFtdOwoJCQl2YXIgaUxlbiA9IG9TZXR0aW5ncy5hb0RhdGEubGVuZ3RoOwoJCQlmb3IgKCB2YXIgaT0wIDsgaTxpTGVuOyBpKysgKQoJCQl7CgkJCQlhRGF0YS5wdXNoKCBvU2V0dGluZ3MuYW9EYXRhW2ldLl9hRGF0YSApOwoJCQl9CgkJCXJldHVybiBhRGF0YTsKCQl9CgkJCgkJCgkJLyoqCgkJICogTnVrZSB0aGUgdGFibGUKCQkgKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAoJCSAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKCQkgKi8KCQlmdW5jdGlvbiBfZm5DbGVhclRhYmxlKCBvU2V0dGluZ3MgKQoJCXsKCQkJb1NldHRpbmdzLmFvRGF0YS5zcGxpY2UoIDAsIG9TZXR0aW5ncy5hb0RhdGEubGVuZ3RoICk7CgkJCW9TZXR0aW5ncy5haURpc3BsYXlNYXN0ZXIuc3BsaWNlKCAwLCBvU2V0dGluZ3MuYWlEaXNwbGF5TWFzdGVyLmxlbmd0aCApOwoJCQlvU2V0dGluZ3MuYWlEaXNwbGF5LnNwbGljZSggMCwgb1NldHRpbmdzLmFpRGlzcGxheS5sZW5ndGggKTsKCQkJX2ZuQ2FsY3VsYXRlRW5kKCBvU2V0dGluZ3MgKTsKCQl9CgkJCgkJCgkJIC8qKgoJCSAqIFRha2UgYW4gYXJyYXkgb2YgaW50ZWdlcnMgKGluZGV4IGFycmF5KSBhbmQgcmVtb3ZlIGEgdGFyZ2V0IGludGVnZXIgKHZhbHVlIC0gbm90IAoJCSAqIHRoZSBrZXkhKQoJCSAqICBAcGFyYW0ge2FycmF5fSBhIEluZGV4IGFycmF5IHRvIHRhcmdldAoJCSAqICBAcGFyYW0ge2ludH0gaVRhcmdldCB2YWx1ZSB0byBmaW5kCgkJICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQoJCSAqLwoJCWZ1bmN0aW9uIF9mbkRlbGV0ZUluZGV4KCBhLCBpVGFyZ2V0ICkKCQl7CgkJCXZhciBpVGFyZ2V0SW5kZXggPSAtMTsKCQkJCgkJCWZvciAoIHZhciBpPTAsIGlMZW49YS5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCQl7CgkJCQlpZiAoIGFbaV0gPT0gaVRhcmdldCApCgkJCQl7CgkJCQkJaVRhcmdldEluZGV4ID0gaTsKCQkJCX0KCQkJCWVsc2UgaWYgKCBhW2ldID4gaVRhcmdldCApCgkJCQl7CgkJCQkJYVtpXS0tOwoJCQkJfQoJCQl9CgkJCQoJCQlpZiAoIGlUYXJnZXRJbmRleCAhPSAtMSApCgkJCXsKCQkJCWEuc3BsaWNlKCBpVGFyZ2V0SW5kZXgsIDEgKTsKCQkJfQoJCX0KCQkKCQkKCQkgLyoqCgkJICogQ2FsbCB0aGUgZGV2ZWxvcGVyIGRlZmluZWQgZm5SZW5kZXIgZnVuY3Rpb24gZm9yIGEgZ2l2ZW4gY2VsbCAocm93L2NvbHVtbikgd2l0aAoJCSAqIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXJzIGFuZCByZXR1cm4gdGhlIHJlc3VsdC4KCQkgKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAoJCSAqICBAcGFyYW0ge2ludH0gaVJvdyBhb0RhdGEgaW5kZXggZm9yIHRoZSByb3cKCQkgKiAgQHBhcmFtIHtpbnR9IGlDb2wgYW9Db2x1bW5zIGluZGV4IGZvciB0aGUgY29sdW1uCgkJICogIEByZXR1cm5zIHsqfSBSZXR1cm4gb2YgdGhlIGRldmVsb3BlcidzIGZuUmVuZGVyIGZ1bmN0aW9uCgkJICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQoJCSAqLwoJCWZ1bmN0aW9uIF9mblJlbmRlciggb1NldHRpbmdzLCBpUm93LCBpQ29sICkKCQl7CgkJCXZhciBvQ29sID0gb1NldHRpbmdzLmFvQ29sdW1uc1tpQ29sXTsKCQkKCQkJcmV0dXJuIG9Db2wuZm5SZW5kZXIoIHsKCQkJCSJpRGF0YVJvdyI6ICAgIGlSb3csCgkJCQkiaURhdGFDb2x1bW4iOiBpQ29sLAoJCQkJIm9TZXR0aW5ncyI6ICAgb1NldHRpbmdzLAoJCQkJImFEYXRhIjogICAgICAgb1NldHRpbmdzLmFvRGF0YVtpUm93XS5fYURhdGEsCgkJCQkibURhdGFQcm9wIjogICBvQ29sLm1EYXRhCgkJCX0sIF9mbkdldENlbGxEYXRhKG9TZXR0aW5ncywgaVJvdywgaUNvbCwgJ2Rpc3BsYXknKSApOwoJCX0KCQkKCQkvKioKCQkgKiBDcmVhdGUgYSBuZXcgVFIgZWxlbWVudCAoYW5kIGl0J3MgVEQgY2hpbGRyZW4pIGZvciBhIHJvdwoJCSAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CgkJICogIEBwYXJhbSB7aW50fSBpUm93IFJvdyB0byBjb25zaWRlcgoJCSAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKCQkgKi8KCQlmdW5jdGlvbiBfZm5DcmVhdGVUciAoIG9TZXR0aW5ncywgaVJvdyApCgkJewoJCQl2YXIgb0RhdGEgPSBvU2V0dGluZ3MuYW9EYXRhW2lSb3ddOwoJCQl2YXIgblRkOwoJCQoJCQlpZiAoIG9EYXRhLm5UciA9PT0gbnVsbCApCgkJCXsKCQkJCW9EYXRhLm5UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCgkJCQkvKiBVc2UgYSBwcml2YXRlIHByb3BlcnR5IG9uIHRoZSBub2RlIHRvIGFsbG93IHJlc2VydmUgbWFwcGluZyBmcm9tIHRoZSBub2RlCgkJCQkgKiB0byB0aGUgYW9EYXRhIGFycmF5IGZvciBmYXN0IGxvb2sgdXAKCQkJCSAqLwoJCQkJb0RhdGEublRyLl9EVF9Sb3dJbmRleCA9IGlSb3c7CgkJCgkJCQkvKiBTcGVjaWFsIHBhcmFtZXRlcnMgY2FuIGJlIGdpdmVuIGJ5IHRoZSBkYXRhIHNvdXJjZSB0byBiZSB1c2VkIG9uIHRoZSByb3cgKi8KCQkJCWlmICggb0RhdGEuX2FEYXRhLkRUX1Jvd0lkICkKCQkJCXsKCQkJCQlvRGF0YS5uVHIuaWQgPSBvRGF0YS5fYURhdGEuRFRfUm93SWQ7CgkJCQl9CgkJCgkJCQlpZiAoIG9EYXRhLl9hRGF0YS5EVF9Sb3dDbGFzcyApCgkJCQl7CgkJCQkJJChvRGF0YS5uVHIpLmFkZENsYXNzKCBvRGF0YS5fYURhdGEuRFRfUm93Q2xhc3MgKTsKCQkJCX0KCQkKCQkJCS8qIFByb2Nlc3MgZWFjaCBjb2x1bW4gKi8KCQkJCWZvciAoIHZhciBpPTAsIGlMZW49b1NldHRpbmdzLmFvQ29sdW1ucy5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCQkJewoJCQkJCXZhciBvQ29sID0gb1NldHRpbmdzLmFvQ29sdW1uc1tpXTsKCQkJCQluVGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBvQ29sLnNDZWxsVHlwZSApOwoJCQoJCQkJCS8qIFJlbmRlciBpZiBuZWVkZWQgLSBpZiBiVXNlUmVuZGVyZWQgaXMgdHJ1ZSB0aGVuIHdlIGFscmVhZHkgaGF2ZSB0aGUgcmVuZGVyZWQKCQkJCQkgKiB2YWx1ZSBpbiB0aGUgZGF0YSBzb3VyY2UgLSBzbyBjYW4ganVzdCB1c2UgdGhhdAoJCQkJCSAqLwoJCQkJCW5UZC5pbm5lckhUTUwgPSAodHlwZW9mIG9Db2wuZm5SZW5kZXIgPT09ICdmdW5jdGlvbicgJiYgKCFvQ29sLmJVc2VSZW5kZXJlZCB8fCBvQ29sLm1EYXRhID09PSBudWxsKSkgPwoJCQkJCQlfZm5SZW5kZXIoIG9TZXR0aW5ncywgaVJvdywgaSApIDoKCQkJCQkJX2ZuR2V0Q2VsbERhdGEoIG9TZXR0aW5ncywgaVJvdywgaSwgJ2Rpc3BsYXknICk7CgkJCQkKCQkJCQkvKiBBZGQgdXNlciBkZWZpbmVkIGNsYXNzICovCgkJCQkJaWYgKCBvQ29sLnNDbGFzcyAhPT0gbnVsbCApCgkJCQkJewoJCQkJCQluVGQuY2xhc3NOYW1lID0gb0NvbC5zQ2xhc3M7CgkJCQkJfQoJCQkJCQoJCQkJCWlmICggb0NvbC5iVmlzaWJsZSApCgkJCQkJewoJCQkJCQlvRGF0YS5uVHIuYXBwZW5kQ2hpbGQoIG5UZCApOwoJCQkJCQlvRGF0YS5fYW5IaWRkZW5baV0gPSBudWxsOwoJCQkJCX0KCQkJCQllbHNlCgkJCQkJewoJCQkJCQlvRGF0YS5fYW5IaWRkZW5baV0gPSBuVGQ7CgkJCQkJfQoJCQoJCQkJCWlmICggb0NvbC5mbkNyZWF0ZWRDZWxsICkKCQkJCQl7CgkJCQkJCW9Db2wuZm5DcmVhdGVkQ2VsbC5jYWxsKCBvU2V0dGluZ3Mub0luc3RhbmNlLAoJCQkJCQkJblRkLCBfZm5HZXRDZWxsRGF0YSggb1NldHRpbmdzLCBpUm93LCBpLCAnZGlzcGxheScgKSwgb0RhdGEuX2FEYXRhLCBpUm93LCBpCgkJCQkJCSk7CgkJCQkJfQoJCQkJfQoJCQoJCQkJX2ZuQ2FsbGJhY2tGaXJlKCBvU2V0dGluZ3MsICdhb1Jvd0NyZWF0ZWRDYWxsYmFjaycsIG51bGwsIFtvRGF0YS5uVHIsIG9EYXRhLl9hRGF0YSwgaVJvd10gKTsKCQkJfQoJCX0KCQkKCQkKCQkvKioKCQkgKiBDcmVhdGUgdGhlIEhUTUwgaGVhZGVyIGZvciB0aGUgdGFibGUKCQkgKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAoJCSAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKCQkgKi8KCQlmdW5jdGlvbiBfZm5CdWlsZEhlYWQoIG9TZXR0aW5ncyApCgkJewoJCQl2YXIgaSwgblRoLCBpTGVuLCBqLCBqTGVuOwoJCQl2YXIgaVRocyA9IG9TZXR0aW5ncy5uVEhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RoJykubGVuZ3RoOwoJCQl2YXIgaUNvcnJlY3RvciA9IDA7CgkJCXZhciBqcUNoaWxkcmVuOwoJCQkKCQkJLyogSWYgdGhlcmUgaXMgYSBoZWFkZXIgaW4gcGxhY2UgLSB0aGVuIHVzZSBpdCAtIG90aGVyd2lzZSBpdCdzIGdvaW5nIHRvIGdldCBudWtlZC4uLiAqLwoJCQlpZiAoIGlUaHMgIT09IDAgKQoJCQl7CgkJCQkvKiBXZSd2ZSBnb3QgYSB0aGVhZCBmcm9tIHRoZSBET00sIHNvIHJlbW92ZSBoaWRkZW4gY29sdW1ucyBhbmQgYXBwbHkgd2lkdGggdG8gdmlzIGNvbHMgKi8KCQkJCWZvciAoIGk9MCwgaUxlbj1vU2V0dGluZ3MuYW9Db2x1bW5zLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJCQl7CgkJCQkJblRoID0gb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5uVGg7CgkJCQkJblRoLnNldEF0dHJpYnV0ZSgncm9sZScsICdjb2x1bW5oZWFkZXInKTsKCQkJCQlpZiAoIG9TZXR0aW5ncy5hb0NvbHVtbnNbaV0uYlNvcnRhYmxlICkKCQkJCQl7CgkJCQkJCW5UaC5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4Jywgb1NldHRpbmdzLmlUYWJJbmRleCk7CgkJCQkJCW5UaC5zZXRBdHRyaWJ1dGUoJ2FyaWEtY29udHJvbHMnLCBvU2V0dGluZ3Muc1RhYmxlSWQpOwoJCQkJCX0KCQkKCQkJCQlpZiAoIG9TZXR0aW5ncy5hb0NvbHVtbnNbaV0uc0NsYXNzICE9PSBudWxsICkKCQkJCQl7CgkJCQkJCSQoblRoKS5hZGRDbGFzcyggb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5zQ2xhc3MgKTsKCQkJCQl9CgkJCQkJCgkJCQkJLyogU2V0IHRoZSB0aXRsZSBvZiB0aGUgY29sdW1uIGlmIGl0IGlzIHVzZXIgZGVmaW5lZCAobm90IHdoYXQgd2FzIGF1dG8gZGV0ZWN0ZWQpICovCgkJCQkJaWYgKCBvU2V0dGluZ3MuYW9Db2x1bW5zW2ldLnNUaXRsZSAhPSBuVGguaW5uZXJIVE1MICkKCQkJCQl7CgkJCQkJCW5UaC5pbm5lckhUTUwgPSBvU2V0dGluZ3MuYW9Db2x1bW5zW2ldLnNUaXRsZTsKCQkJCQl9CgkJCQl9CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQkvKiBXZSBkb24ndCBoYXZlIGEgaGVhZGVyIGluIHRoZSBET00gLSBzbyB3ZSBhcmUgZ29pbmcgdG8gaGF2ZSB0byBjcmVhdGUgb25lICovCgkJCQl2YXIgblRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggInRyIiApOwoJCQkJCgkJCQlmb3IgKCBpPTAsIGlMZW49b1NldHRpbmdzLmFvQ29sdW1ucy5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCQkJewoJCQkJCW5UaCA9IG9TZXR0aW5ncy5hb0NvbHVtbnNbaV0ublRoOwoJCQkJCW5UaC5pbm5lckhUTUwgPSBvU2V0dGluZ3MuYW9Db2x1bW5zW2ldLnNUaXRsZTsKCQkJCQluVGguc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICcwJyk7CgkJCQkJCgkJCQkJaWYgKCBvU2V0dGluZ3MuYW9Db2x1bW5zW2ldLnNDbGFzcyAhPT0gbnVsbCApCgkJCQkJewoJCQkJCQkkKG5UaCkuYWRkQ2xhc3MoIG9TZXR0aW5ncy5hb0NvbHVtbnNbaV0uc0NsYXNzICk7CgkJCQkJfQoJCQkJCQoJCQkJCW5Uci5hcHBlbmRDaGlsZCggblRoICk7CgkJCQl9CgkJCQkkKG9TZXR0aW5ncy5uVEhlYWQpLmh0bWwoICcnIClbMF0uYXBwZW5kQ2hpbGQoIG5UciApOwoJCQkJX2ZuRGV0ZWN0SGVhZGVyKCBvU2V0dGluZ3MuYW9IZWFkZXIsIG9TZXR0aW5ncy5uVEhlYWQgKTsKCQkJfQoJCQkKCQkJLyogQVJJQSByb2xlIGZvciB0aGUgcm93cyAqLwkKCQkJJChvU2V0dGluZ3MublRIZWFkKS5jaGlsZHJlbigndHInKS5hdHRyKCdyb2xlJywgJ3JvdycpOwoJCQkKCQkJLyogQWRkIHRoZSBleHRyYSBtYXJrdXAgbmVlZGVkIGJ5IGpRdWVyeSBVSSdzIHRoZW1lcyAqLwoJCQlpZiAoIG9TZXR0aW5ncy5iSlVJICkKCQkJewoJCQkJZm9yICggaT0wLCBpTGVuPW9TZXR0aW5ncy5hb0NvbHVtbnMubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQkJCXsKCQkJCQluVGggPSBvU2V0dGluZ3MuYW9Db2x1bW5zW2ldLm5UaDsKCQkJCQkKCQkJCQl2YXIgbkRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwoJCQkJCW5EaXYuY2xhc3NOYW1lID0gb1NldHRpbmdzLm9DbGFzc2VzLnNTb3J0SlVJV3JhcHBlcjsKCQkJCQkkKG5UaCkuY29udGVudHMoKS5hcHBlbmRUbyhuRGl2KTsKCQkJCQkKCQkJCQl2YXIgblNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7CgkJCQkJblNwYW4uY2xhc3NOYW1lID0gb1NldHRpbmdzLm9DbGFzc2VzLnNTb3J0SWNvbjsKCQkJCQluRGl2LmFwcGVuZENoaWxkKCBuU3BhbiApOwoJCQkJCW5UaC5hcHBlbmRDaGlsZCggbkRpdiApOwoJCQkJfQoJCQl9CgkJCQoJCQlpZiAoIG9TZXR0aW5ncy5vRmVhdHVyZXMuYlNvcnQgKQoJCQl7CgkJCQlmb3IgKCBpPTAgOyBpPG9TZXR0aW5ncy5hb0NvbHVtbnMubGVuZ3RoIDsgaSsrICkKCQkJCXsKCQkJCQlpZiAoIG9TZXR0aW5ncy5hb0NvbHVtbnNbaV0uYlNvcnRhYmxlICE9PSBmYWxzZSApCgkJCQkJewoJCQkJCQlfZm5Tb3J0QXR0YWNoTGlzdGVuZXIoIG9TZXR0aW5ncywgb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5uVGgsIGkgKTsKCQkJCQl9CgkJCQkJZWxzZQoJCQkJCXsKCQkJCQkJJChvU2V0dGluZ3MuYW9Db2x1bW5zW2ldLm5UaCkuYWRkQ2xhc3MoIG9TZXR0aW5ncy5vQ2xhc3Nlcy5zU29ydGFibGVOb25lICk7CgkJCQkJfQoJCQkJfQoJCQl9CgkJCQoJCQkvKiBEZWFsIHdpdGggdGhlIGZvb3RlciAtIGFkZCBjbGFzc2VzIGlmIHJlcXVpcmVkICovCgkJCWlmICggb1NldHRpbmdzLm9DbGFzc2VzLnNGb290ZXJUSCAhPT0gIiIgKQoJCQl7CgkJCQkkKG9TZXR0aW5ncy5uVEZvb3QpLmNoaWxkcmVuKCd0cicpLmNoaWxkcmVuKCd0aCcpLmFkZENsYXNzKCBvU2V0dGluZ3Mub0NsYXNzZXMuc0Zvb3RlclRIICk7CgkJCX0KCQkJCgkJCS8qIENhY2hlIHRoZSBmb290ZXIgZWxlbWVudHMgKi8KCQkJaWYgKCBvU2V0dGluZ3MublRGb290ICE9PSBudWxsICkKCQkJewoJCQkJdmFyIGFuQ2VsbHMgPSBfZm5HZXRVbmlxdWVUaHMoIG9TZXR0aW5ncywgbnVsbCwgb1NldHRpbmdzLmFvRm9vdGVyICk7CgkJCQlmb3IgKCBpPTAsIGlMZW49b1NldHRpbmdzLmFvQ29sdW1ucy5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCQkJewoJCQkJCWlmICggYW5DZWxsc1tpXSApCgkJCQkJewoJCQkJCQlvU2V0dGluZ3MuYW9Db2x1bW5zW2ldLm5UZiA9IGFuQ2VsbHNbaV07CgkJCQkJCWlmICggb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5zQ2xhc3MgKQoJCQkJCQl7CgkJCQkJCQkkKGFuQ2VsbHNbaV0pLmFkZENsYXNzKCBvU2V0dGluZ3MuYW9Db2x1bW5zW2ldLnNDbGFzcyApOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9CgkJfQoJCQoJCQoJCS8qKgoJCSAqIERyYXcgdGhlIGhlYWRlciAob3IgZm9vdGVyKSBlbGVtZW50IGJhc2VkIG9uIHRoZSBjb2x1bW4gdmlzaWJpbGl0eSBzdGF0ZXMuIFRoZQoJCSAqIG1ldGhvZG9sb2d5IGhlcmUgaXMgdG8gdXNlIHRoZSBsYXlvdXQgYXJyYXkgZnJvbSBfZm5EZXRlY3RIZWFkZXIsIG1vZGlmaWVkIGZvcgoJCSAqIHRoZSBpbnN0YW50YW5lb3VzIGNvbHVtbiB2aXNpYmlsaXR5LCB0byBjb25zdHJ1Y3QgdGhlIG5ldyBsYXlvdXQuIFRoZSBncmlkIGlzCgkJICogdHJhdmVyc2VkIG92ZXIgY2VsbCBhdCBhIHRpbWUgaW4gYSByb3dzIHggY29sdW1ucyBncmlkIGZhc2hpb24sIGFsdGhvdWdoIGVhY2ggCgkJICogY2VsbCBpbnNlcnQgY2FuIGNvdmVyIG11bHRpcGxlIGVsZW1lbnRzIGluIHRoZSBncmlkIC0gd2hpY2ggaXMgdHJhY2tzIHVzaW5nIHRoZQoJCSAqIGFBcHBsaWVkIGFycmF5LiBDZWxsIGluc2VydHMgaW4gdGhlIGdyaWQgd2lsbCBvbmx5IG9jY3VyIHdoZXJlIHRoZXJlIGlzbid0CgkJICogYWxyZWFkeSBhIGNlbGwgaW4gdGhhdCBwb3NpdGlvbi4KCQkgKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAoJCSAqICBAcGFyYW0gYXJyYXkge29iamVjdHN9IGFvU291cmNlIExheW91dCBhcnJheSBmcm9tIF9mbkRldGVjdEhlYWRlcgoJCSAqICBAcGFyYW0ge2Jvb2xlYW59IFtiSW5jbHVkZUhpZGRlbj1mYWxzZV0gSWYgdHJ1ZSB0aGVuIGluY2x1ZGUgdGhlIGhpZGRlbiBjb2x1bW5zIGluIHRoZSBjYWxjLCAKCQkgKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCgkJICovCgkJZnVuY3Rpb24gX2ZuRHJhd0hlYWQoIG9TZXR0aW5ncywgYW9Tb3VyY2UsIGJJbmNsdWRlSGlkZGVuICkKCQl7CgkJCXZhciBpLCBpTGVuLCBqLCBqTGVuLCBrLCBrTGVuLCBuLCBuTG9jYWxUcjsKCQkJdmFyIGFvTG9jYWwgPSBbXTsKCQkJdmFyIGFBcHBsaWVkID0gW107CgkJCXZhciBpQ29sdW1ucyA9IG9TZXR0aW5ncy5hb0NvbHVtbnMubGVuZ3RoOwoJCQl2YXIgaVJvd3NwYW4sIGlDb2xzcGFuOwoJCQoJCQlpZiAoICBiSW5jbHVkZUhpZGRlbiA9PT0gdW5kZWZpbmVkICkKCQkJewoJCQkJYkluY2x1ZGVIaWRkZW4gPSBmYWxzZTsKCQkJfQoJCQoJCQkvKiBNYWtlIGEgY29weSBvZiB0aGUgbWFzdGVyIGxheW91dCBhcnJheSwgYnV0IHdpdGhvdXQgdGhlIHZpc2libGUgY29sdW1ucyBpbiBpdCAqLwoJCQlmb3IgKCBpPTAsIGlMZW49YW9Tb3VyY2UubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQkJewoJCQkJYW9Mb2NhbFtpXSA9IGFvU291cmNlW2ldLnNsaWNlKCk7CgkJCQlhb0xvY2FsW2ldLm5UciA9IGFvU291cmNlW2ldLm5UcjsKCQkKCQkJCS8qIFJlbW92ZSBhbnkgY29sdW1ucyB3aGljaCBhcmUgY3VycmVudGx5IGhpZGRlbiAqLwoJCQkJZm9yICggaj1pQ29sdW1ucy0xIDsgaj49MCA7IGotLSApCgkJCQl7CgkJCQkJaWYgKCAhb1NldHRpbmdzLmFvQ29sdW1uc1tqXS5iVmlzaWJsZSAmJiAhYkluY2x1ZGVIaWRkZW4gKQoJCQkJCXsKCQkJCQkJYW9Mb2NhbFtpXS5zcGxpY2UoIGosIDEgKTsKCQkJCQl9CgkJCQl9CgkJCgkJCQkvKiBQcmVwIHRoZSBhcHBsaWVkIGFycmF5IC0gaXQgbmVlZHMgYW4gZWxlbWVudCBmb3IgZWFjaCByb3cgKi8KCQkJCWFBcHBsaWVkLnB1c2goIFtdICk7CgkJCX0KCQkKCQkJZm9yICggaT0wLCBpTGVuPWFvTG9jYWwubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQkJewoJCQkJbkxvY2FsVHIgPSBhb0xvY2FsW2ldLm5UcjsKCQkJCQoJCQkJLyogQWxsIGNlbGxzIGFyZSBnb2luZyB0byBiZSByZXBsYWNlZCwgc28gZW1wdHkgb3V0IHRoZSByb3cgKi8KCQkJCWlmICggbkxvY2FsVHIgKQoJCQkJewoJCQkJCXdoaWxlKCAobiA9IG5Mb2NhbFRyLmZpcnN0Q2hpbGQpICkKCQkJCQl7CgkJCQkJCW5Mb2NhbFRyLnJlbW92ZUNoaWxkKCBuICk7CgkJCQkJfQoJCQkJfQoJCQoJCQkJZm9yICggaj0wLCBqTGVuPWFvTG9jYWxbaV0ubGVuZ3RoIDsgajxqTGVuIDsgaisrICkKCQkJCXsKCQkJCQlpUm93c3BhbiA9IDE7CgkJCQkJaUNvbHNwYW4gPSAxOwoJCQoJCQkJCS8qIENoZWNrIHRvIHNlZSBpZiB0aGVyZSBpcyBhbHJlYWR5IGEgY2VsbCAocm93L2NvbHNwYW4pIGNvdmVyaW5nIG91ciB0YXJnZXQKCQkJCQkgKiBpbnNlcnQgcG9pbnQuIElmIHRoZXJlIGlzLCB0aGVuIHRoZXJlIGlzIG5vdGhpbmcgdG8gZG8uCgkJCQkJICovCgkJCQkJaWYgKCBhQXBwbGllZFtpXVtqXSA9PT0gdW5kZWZpbmVkICkKCQkJCQl7CgkJCQkJCW5Mb2NhbFRyLmFwcGVuZENoaWxkKCBhb0xvY2FsW2ldW2pdLmNlbGwgKTsKCQkJCQkJYUFwcGxpZWRbaV1bal0gPSAxOwoJCQoJCQkJCQkvKiBFeHBhbmQgdGhlIGNlbGwgdG8gY292ZXIgYXMgbWFueSByb3dzIGFzIG5lZWRlZCAqLwoJCQkJCQl3aGlsZSAoIGFvTG9jYWxbaStpUm93c3Bhbl0gIT09IHVuZGVmaW5lZCAmJgoJCQkJCQkgICAgICAgIGFvTG9jYWxbaV1bal0uY2VsbCA9PSBhb0xvY2FsW2kraVJvd3NwYW5dW2pdLmNlbGwgKQoJCQkJCQl7CgkJCQkJCQlhQXBwbGllZFtpK2lSb3dzcGFuXVtqXSA9IDE7CgkJCQkJCQlpUm93c3BhbisrOwoJCQkJCQl9CgkJCgkJCQkJCS8qIEV4cGFuZCB0aGUgY2VsbCB0byBjb3ZlciBhcyBtYW55IGNvbHVtbnMgYXMgbmVlZGVkICovCgkJCQkJCXdoaWxlICggYW9Mb2NhbFtpXVtqK2lDb2xzcGFuXSAhPT0gdW5kZWZpbmVkICYmCgkJCQkJCSAgICAgICAgYW9Mb2NhbFtpXVtqXS5jZWxsID09IGFvTG9jYWxbaV1baitpQ29sc3Bhbl0uY2VsbCApCgkJCQkJCXsKCQkJCQkJCS8qIE11c3QgdXBkYXRlIHRoZSBhcHBsaWVkIGFycmF5IG92ZXIgdGhlIHJvd3MgZm9yIHRoZSBjb2x1bW5zICovCgkJCQkJCQlmb3IgKCBrPTAgOyBrPGlSb3dzcGFuIDsgaysrICkKCQkJCQkJCXsKCQkJCQkJCQlhQXBwbGllZFtpK2tdW2oraUNvbHNwYW5dID0gMTsKCQkJCQkJCX0KCQkJCQkJCWlDb2xzcGFuKys7CgkJCQkJCX0KCQkKCQkJCQkJLyogRG8gdGhlIGFjdHVhbCBleHBhbnNpb24gaW4gdGhlIERPTSAqLwoJCQkJCQlhb0xvY2FsW2ldW2pdLmNlbGwucm93U3BhbiA9IGlSb3dzcGFuOwoJCQkJCQlhb0xvY2FsW2ldW2pdLmNlbGwuY29sU3BhbiA9IGlDb2xzcGFuOwoJCQkJCX0KCQkJCX0KCQkJfQoJCX0KCQkKCQkKCQkvKioKCQkgKiBJbnNlcnQgdGhlIHJlcXVpcmVkIFRSIG5vZGVzIGludG8gdGhlIHRhYmxlIGZvciBkaXNwbGF5CgkJICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCQkgKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCgkJICovCgkJZnVuY3Rpb24gX2ZuRHJhdyggb1NldHRpbmdzICkKCQl7CgkJCS8qIFByb3ZpZGUgYSBwcmUtY2FsbGJhY2sgZnVuY3Rpb24gd2hpY2ggY2FuIGJlIHVzZWQgdG8gY2FuY2VsIHRoZSBkcmF3IGlzIGZhbHNlIGlzIHJldHVybmVkICovCgkJCXZhciBhUHJlRHJhdyA9IF9mbkNhbGxiYWNrRmlyZSggb1NldHRpbmdzLCAnYW9QcmVEcmF3Q2FsbGJhY2snLCAncHJlRHJhdycsIFtvU2V0dGluZ3NdICk7CgkJCWlmICggJC5pbkFycmF5KCBmYWxzZSwgYVByZURyYXcgKSAhPT0gLTEgKQoJCQl7CgkJCQlfZm5Qcm9jZXNzaW5nRGlzcGxheSggb1NldHRpbmdzLCBmYWxzZSApOwoJCQkJcmV0dXJuOwoJCQl9CgkJCQoJCQl2YXIgaSwgaUxlbiwgbjsKCQkJdmFyIGFuUm93cyA9IFtdOwoJCQl2YXIgaVJvd0NvdW50ID0gMDsKCQkJdmFyIGlTdHJpcGVzID0gb1NldHRpbmdzLmFzU3RyaXBlQ2xhc3Nlcy5sZW5ndGg7CgkJCXZhciBpT3BlblJvd3MgPSBvU2V0dGluZ3MuYW9PcGVuUm93cy5sZW5ndGg7CgkJCQoJCQlvU2V0dGluZ3MuYkRyYXdpbmcgPSB0cnVlOwoJCQkKCQkJLyogQ2hlY2sgYW5kIHNlZSBpZiB3ZSBoYXZlIGFuIGluaXRpYWwgZHJhdyBwb3NpdGlvbiBmcm9tIHN0YXRlIHNhdmluZyAqLwoJCQlpZiAoIG9TZXR0aW5ncy5pSW5pdERpc3BsYXlTdGFydCAhPT0gdW5kZWZpbmVkICYmIG9TZXR0aW5ncy5pSW5pdERpc3BsYXlTdGFydCAhPSAtMSApCgkJCXsKCQkJCWlmICggb1NldHRpbmdzLm9GZWF0dXJlcy5iU2VydmVyU2lkZSApCgkJCQl7CgkJCQkJb1NldHRpbmdzLl9pRGlzcGxheVN0YXJ0ID0gb1NldHRpbmdzLmlJbml0RGlzcGxheVN0YXJ0OwoJCQkJfQoJCQkJZWxzZQoJCQkJewoJCQkJCW9TZXR0aW5ncy5faURpc3BsYXlTdGFydCA9IChvU2V0dGluZ3MuaUluaXREaXNwbGF5U3RhcnQgPj0gb1NldHRpbmdzLmZuUmVjb3Jkc0Rpc3BsYXkoKSkgPwoJCQkJCQkwIDogb1NldHRpbmdzLmlJbml0RGlzcGxheVN0YXJ0OwoJCQkJfQoJCQkJb1NldHRpbmdzLmlJbml0RGlzcGxheVN0YXJ0ID0gLTE7CgkJCQlfZm5DYWxjdWxhdGVFbmQoIG9TZXR0aW5ncyApOwoJCQl9CgkJCQoJCQkvKiBTZXJ2ZXItc2lkZSBwcm9jZXNzaW5nIGRyYXcgaW50ZXJjZXB0ICovCgkJCWlmICggb1NldHRpbmdzLmJEZWZlckxvYWRpbmcgKQoJCQl7CgkJCQlvU2V0dGluZ3MuYkRlZmVyTG9hZGluZyA9IGZhbHNlOwoJCQkJb1NldHRpbmdzLmlEcmF3Kys7CgkJCX0KCQkJZWxzZSBpZiAoICFvU2V0dGluZ3Mub0ZlYXR1cmVzLmJTZXJ2ZXJTaWRlICkKCQkJewoJCQkJb1NldHRpbmdzLmlEcmF3Kys7CgkJCX0KCQkJZWxzZSBpZiAoICFvU2V0dGluZ3MuYkRlc3Ryb3lpbmcgJiYgIV9mbkFqYXhVcGRhdGUoIG9TZXR0aW5ncyApICkKCQkJewoJCQkJcmV0dXJuOwoJCQl9CgkJCQoJCQlpZiAoIG9TZXR0aW5ncy5haURpc3BsYXkubGVuZ3RoICE9PSAwICkKCQkJewoJCQkJdmFyIGlTdGFydCA9IG9TZXR0aW5ncy5faURpc3BsYXlTdGFydDsKCQkJCXZhciBpRW5kID0gb1NldHRpbmdzLl9pRGlzcGxheUVuZDsKCQkJCQoJCQkJaWYgKCBvU2V0dGluZ3Mub0ZlYXR1cmVzLmJTZXJ2ZXJTaWRlICkKCQkJCXsKCQkJCQlpU3RhcnQgPSAwOwoJCQkJCWlFbmQgPSBvU2V0dGluZ3MuYW9EYXRhLmxlbmd0aDsKCQkJCX0KCQkJCQoJCQkJZm9yICggdmFyIGo9aVN0YXJ0IDsgajxpRW5kIDsgaisrICkKCQkJCXsKCQkJCQl2YXIgYW9EYXRhID0gb1NldHRpbmdzLmFvRGF0YVsgb1NldHRpbmdzLmFpRGlzcGxheVtqXSBdOwoJCQkJCWlmICggYW9EYXRhLm5UciA9PT0gbnVsbCApCgkJCQkJewoJCQkJCQlfZm5DcmVhdGVUciggb1NldHRpbmdzLCBvU2V0dGluZ3MuYWlEaXNwbGF5W2pdICk7CgkJCQkJfQoJCQoJCQkJCXZhciBuUm93ID0gYW9EYXRhLm5UcjsKCQkJCQkKCQkJCQkvKiBSZW1vdmUgdGhlIG9sZCBzdHJpcGluZyBjbGFzc2VzIGFuZCB0aGVuIGFkZCB0aGUgbmV3IG9uZSAqLwoJCQkJCWlmICggaVN0cmlwZXMgIT09IDAgKQoJCQkJCXsKCQkJCQkJdmFyIHNTdHJpcGUgPSBvU2V0dGluZ3MuYXNTdHJpcGVDbGFzc2VzWyBpUm93Q291bnQgJSBpU3RyaXBlcyBdOwoJCQkJCQlpZiAoIGFvRGF0YS5fc1Jvd1N0cmlwZSAhPSBzU3RyaXBlICkKCQkJCQkJewoJCQkJCQkJJChuUm93KS5yZW1vdmVDbGFzcyggYW9EYXRhLl9zUm93U3RyaXBlICkuYWRkQ2xhc3MoIHNTdHJpcGUgKTsKCQkJCQkJCWFvRGF0YS5fc1Jvd1N0cmlwZSA9IHNTdHJpcGU7CgkJCQkJCX0KCQkJCQl9CgkJCQkJCgkJCQkJLyogUm93IGNhbGxiYWNrIGZ1bmN0aW9ucyAtIG1pZ2h0IHdhbnQgdG8gbWFuaXB1bGF0ZSB0aGUgcm93ICovCgkJCQkJX2ZuQ2FsbGJhY2tGaXJlKCBvU2V0dGluZ3MsICdhb1Jvd0NhbGxiYWNrJywgbnVsbCwgCgkJCQkJCVtuUm93LCBvU2V0dGluZ3MuYW9EYXRhWyBvU2V0dGluZ3MuYWlEaXNwbGF5W2pdIF0uX2FEYXRhLCBpUm93Q291bnQsIGpdICk7CgkJCQkJCgkJCQkJYW5Sb3dzLnB1c2goIG5Sb3cgKTsKCQkJCQlpUm93Q291bnQrKzsKCQkJCQkKCQkJCQkvKiBJZiB0aGVyZSBpcyBhbiBvcGVuIHJvdyAtIGFuZCBpdCBpcyBhdHRhY2hlZCB0byB0aGlzIHBhcmVudCAtIGF0dGFjaCBpdCBvbiByZWRyYXcgKi8KCQkJCQlpZiAoIGlPcGVuUm93cyAhPT0gMCApCgkJCQkJewoJCQkJCQlmb3IgKCB2YXIgaz0wIDsgazxpT3BlblJvd3MgOyBrKysgKQoJCQkJCQl7CgkJCQkJCQlpZiAoIG5Sb3cgPT0gb1NldHRpbmdzLmFvT3BlblJvd3Nba10ublBhcmVudCApCgkJCQkJCQl7CgkJCQkJCQkJYW5Sb3dzLnB1c2goIG9TZXR0aW5ncy5hb09wZW5Sb3dzW2tdLm5UciApOwoJCQkJCQkJCWJyZWFrOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9CgkJCWVsc2UKCQkJewoJCQkJLyogVGFibGUgaXMgZW1wdHkgLSBjcmVhdGUgYSByb3cgd2l0aCBhbiBlbXB0eSBtZXNzYWdlIGluIGl0ICovCgkJCQlhblJvd3NbIDAgXSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICd0cicgKTsKCQkJCQoJCQkJaWYgKCBvU2V0dGluZ3MuYXNTdHJpcGVDbGFzc2VzWzBdICkKCQkJCXsKCQkJCQlhblJvd3NbIDAgXS5jbGFzc05hbWUgPSBvU2V0dGluZ3MuYXNTdHJpcGVDbGFzc2VzWzBdOwoJCQkJfQoJCQoJCQkJdmFyIG9MYW5nID0gb1NldHRpbmdzLm9MYW5ndWFnZTsKCQkJCXZhciBzWmVybyA9IG9MYW5nLnNaZXJvUmVjb3JkczsKCQkJCWlmICggb1NldHRpbmdzLmlEcmF3ID09IDEgJiYgb1NldHRpbmdzLnNBamF4U291cmNlICE9PSBudWxsICYmICFvU2V0dGluZ3Mub0ZlYXR1cmVzLmJTZXJ2ZXJTaWRlICkKCQkJCXsKCQkJCQlzWmVybyA9IG9MYW5nLnNMb2FkaW5nUmVjb3JkczsKCQkJCX0KCQkJCWVsc2UgaWYgKCBvTGFuZy5zRW1wdHlUYWJsZSAmJiBvU2V0dGluZ3MuZm5SZWNvcmRzVG90YWwoKSA9PT0gMCApCgkJCQl7CgkJCQkJc1plcm8gPSBvTGFuZy5zRW1wdHlUYWJsZTsKCQkJCX0KCQkKCQkJCXZhciBuVGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCAndGQnICk7CgkJCQluVGQuc2V0QXR0cmlidXRlKCAndmFsaWduJywgInRvcCIgKTsKCQkJCW5UZC5jb2xTcGFuID0gX2ZuVmlzYmxlQ29sdW1ucyggb1NldHRpbmdzICk7CgkJCQluVGQuY2xhc3NOYW1lID0gb1NldHRpbmdzLm9DbGFzc2VzLnNSb3dFbXB0eTsKCQkJCW5UZC5pbm5lckhUTUwgPSBfZm5JbmZvTWFjcm9zKCBvU2V0dGluZ3MsIHNaZXJvICk7CgkJCQkKCQkJCWFuUm93c1sgaVJvd0NvdW50IF0uYXBwZW5kQ2hpbGQoIG5UZCApOwoJCQl9CgkJCQoJCQkvKiBIZWFkZXIgYW5kIGZvb3RlciBjYWxsYmFja3MgKi8KCQkJX2ZuQ2FsbGJhY2tGaXJlKCBvU2V0dGluZ3MsICdhb0hlYWRlckNhbGxiYWNrJywgJ2hlYWRlcicsIFsgJChvU2V0dGluZ3MublRIZWFkKS5jaGlsZHJlbigndHInKVswXSwgCgkJCQlfZm5HZXREYXRhTWFzdGVyKCBvU2V0dGluZ3MgKSwgb1NldHRpbmdzLl9pRGlzcGxheVN0YXJ0LCBvU2V0dGluZ3MuZm5EaXNwbGF5RW5kKCksIG9TZXR0aW5ncy5haURpc3BsYXkgXSApOwoJCQkKCQkJX2ZuQ2FsbGJhY2tGaXJlKCBvU2V0dGluZ3MsICdhb0Zvb3RlckNhbGxiYWNrJywgJ2Zvb3RlcicsIFsgJChvU2V0dGluZ3MublRGb290KS5jaGlsZHJlbigndHInKVswXSwgCgkJCQlfZm5HZXREYXRhTWFzdGVyKCBvU2V0dGluZ3MgKSwgb1NldHRpbmdzLl9pRGlzcGxheVN0YXJ0LCBvU2V0dGluZ3MuZm5EaXNwbGF5RW5kKCksIG9TZXR0aW5ncy5haURpc3BsYXkgXSApOwoJCQkKCQkJLyogCgkJCSAqIE5lZWQgdG8gcmVtb3ZlIGFueSBvbGQgcm93IGZyb20gdGhlIGRpc3BsYXkgLSBub3RlIHdlIGNhbid0IGp1c3QgZW1wdHkgdGhlIHRib2R5IHVzaW5nCgkJCSAqICQoKS5odG1sKCcnKSBzaW5jZSB0aGlzIHdpbGwgdW5iaW5kIHRoZSBqUXVlcnkgZXZlbnQgaGFuZGxlcnMgKGV2ZW4gYWx0aG91Z2ggdGhlIG5vZGUgCgkJCSAqIHN0aWxsIGV4aXN0cyEpIC0gZXF1YWxseSB3ZSBjYW4ndCB1c2UgaW5uZXJIVE1MLCBzaW5jZSBJRSB0aHJvd3MgYW4gZXhjZXB0aW9uLgoJCQkgKi8KCQkJdmFyCgkJCQluQWRkRnJhZyA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSwKCQkJCW5SZW1vdmVGcmFnID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLAoJCQkJbkJvZHlQYXIsIG5UcnM7CgkJCQoJCQlpZiAoIG9TZXR0aW5ncy5uVEJvZHkgKQoJCQl7CgkJCQluQm9keVBhciA9IG9TZXR0aW5ncy5uVEJvZHkucGFyZW50Tm9kZTsKCQkJCW5SZW1vdmVGcmFnLmFwcGVuZENoaWxkKCBvU2V0dGluZ3MublRCb2R5ICk7CgkJCQkKCQkJCS8qIFdoZW4gZG9pbmcgaW5maW5pdGUgc2Nyb2xsaW5nLCBvbmx5IHJlbW92ZSBjaGlsZCByb3dzIHdoZW4gc29ydGluZywgZmlsdGVyaW5nIG9yIHN0YXJ0CgkJCQkgKiB1cC4gV2hlbiBub3QgaW5maW5pdGUgc2Nyb2xsLCBhbHdheXMgZG8gaXQuCgkJCQkgKi8KCQkJCWlmICggIW9TZXR0aW5ncy5vU2Nyb2xsLmJJbmZpbml0ZSB8fCAhb1NldHRpbmdzLl9iSW5pdENvbXBsZXRlIHx8CgkJCQkgCW9TZXR0aW5ncy5iU29ydGVkIHx8IG9TZXR0aW5ncy5iRmlsdGVyZWQgKQoJCQkJewoJCQkJCXdoaWxlKCAobiA9IG9TZXR0aW5ncy5uVEJvZHkuZmlyc3RDaGlsZCkgKQoJCQkJCXsKCQkJCQkJb1NldHRpbmdzLm5UQm9keS5yZW1vdmVDaGlsZCggbiApOwoJCQkJCX0KCQkJCX0KCQkJCQoJCQkJLyogUHV0IHRoZSBkcmF3IHRhYmxlIGludG8gdGhlIGRvbSAqLwoJCQkJZm9yICggaT0wLCBpTGVuPWFuUm93cy5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCQkJewoJCQkJCW5BZGRGcmFnLmFwcGVuZENoaWxkKCBhblJvd3NbaV0gKTsKCQkJCX0KCQkJCQoJCQkJb1NldHRpbmdzLm5UQm9keS5hcHBlbmRDaGlsZCggbkFkZEZyYWcgKTsKCQkJCWlmICggbkJvZHlQYXIgIT09IG51bGwgKQoJCQkJewoJCQkJCW5Cb2R5UGFyLmFwcGVuZENoaWxkKCBvU2V0dGluZ3MublRCb2R5ICk7CgkJCQl9CgkJCX0KCQkJCgkJCS8qIENhbGwgYWxsIHJlcXVpcmVkIGNhbGxiYWNrIGZ1bmN0aW9ucyBmb3IgdGhlIGVuZCBvZiBhIGRyYXcgKi8KCQkJX2ZuQ2FsbGJhY2tGaXJlKCBvU2V0dGluZ3MsICdhb0RyYXdDYWxsYmFjaycsICdkcmF3JywgW29TZXR0aW5nc10gKTsKCQkJCgkJCS8qIERyYXcgaXMgY29tcGxldGUsIHNvcnRpbmcgYW5kIGZpbHRlcmluZyBtdXN0IGJlIGFzIHdlbGwgKi8KCQkJb1NldHRpbmdzLmJTb3J0ZWQgPSBmYWxzZTsKCQkJb1NldHRpbmdzLmJGaWx0ZXJlZCA9IGZhbHNlOwoJCQlvU2V0dGluZ3MuYkRyYXdpbmcgPSBmYWxzZTsKCQkJCgkJCWlmICggb1NldHRpbmdzLm9GZWF0dXJlcy5iU2VydmVyU2lkZSApCgkJCXsKCQkJCV9mblByb2Nlc3NpbmdEaXNwbGF5KCBvU2V0dGluZ3MsIGZhbHNlICk7CgkJCQlpZiAoICFvU2V0dGluZ3MuX2JJbml0Q29tcGxldGUgKQoJCQkJewoJCQkJCV9mbkluaXRDb21wbGV0ZSggb1NldHRpbmdzICk7CgkJCQl9CgkJCX0KCQl9CgkJCgkJCgkJLyoqCgkJICogUmVkcmF3IHRoZSB0YWJsZSAtIHRha2luZyBhY2NvdW50IG9mIHRoZSB2YXJpb3VzIGZlYXR1cmVzIHdoaWNoIGFyZSBlbmFibGVkCgkJICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCQkgKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCgkJICovCgkJZnVuY3Rpb24gX2ZuUmVEcmF3KCBvU2V0dGluZ3MgKQoJCXsKCQkJaWYgKCBvU2V0dGluZ3Mub0ZlYXR1cmVzLmJTb3J0ICkKCQkJewoJCQkJLyogU29ydGluZyB3aWxsIHJlZmlsdGVyIGFuZCBkcmF3IGZvciB1cyAqLwoJCQkJX2ZuU29ydCggb1NldHRpbmdzLCBvU2V0dGluZ3Mub1ByZXZpb3VzU2VhcmNoICk7CgkJCX0KCQkJZWxzZSBpZiAoIG9TZXR0aW5ncy5vRmVhdHVyZXMuYkZpbHRlciApCgkJCXsKCQkJCS8qIEZpbHRlcmluZyB3aWxsIHJlZHJhdyBmb3IgdXMgKi8KCQkJCV9mbkZpbHRlckNvbXBsZXRlKCBvU2V0dGluZ3MsIG9TZXR0aW5ncy5vUHJldmlvdXNTZWFyY2ggKTsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCV9mbkNhbGN1bGF0ZUVuZCggb1NldHRpbmdzICk7CgkJCQlfZm5EcmF3KCBvU2V0dGluZ3MgKTsKCQkJfQoJCX0KCQkKCQkKCQkvKioKCQkgKiBBZGQgdGhlIG9wdGlvbnMgdG8gdGhlIHBhZ2UgSFRNTCBmb3IgdGhlIHRhYmxlCgkJICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCQkgKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCgkJICovCgkJZnVuY3Rpb24gX2ZuQWRkT3B0aW9uc0h0bWwgKCBvU2V0dGluZ3MgKQoJCXsKCQkJLyoKCQkJICogQ3JlYXRlIGEgdGVtcG9yYXJ5LCBlbXB0eSwgZGl2IHdoaWNoIHdlIGNhbiBsYXRlciBvbiByZXBsYWNlIHdpdGggd2hhdCB3ZSBoYXZlIGdlbmVyYXRlZAoJCQkgKiB3ZSBkbyBpdCB0aGlzIHdheSB0byByZW5kZXJpbmcgdGhlICdvcHRpb25zJyBodG1sIG9mZmxpbmUgLSBzcGVlZCA6LSkKCQkJICovCgkJCXZhciBuSG9sZGluZyA9ICQoJzxkaXY+PC9kaXY+JylbMF07CgkJCW9TZXR0aW5ncy5uVGFibGUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoIG5Ib2xkaW5nLCBvU2V0dGluZ3MublRhYmxlICk7CgkJCQoJCQkvKiAKCQkJICogQWxsIERhdGFUYWJsZXMgYXJlIHdyYXBwZWQgaW4gYSBkaXYKCQkJICovCgkJCW9TZXR0aW5ncy5uVGFibGVXcmFwcGVyID0gJCgnPGRpdiBpZD0iJytvU2V0dGluZ3Muc1RhYmxlSWQrJ193cmFwcGVyIiBjbGFzcz0iJytvU2V0dGluZ3Mub0NsYXNzZXMuc1dyYXBwZXIrJyIgcm9sZT0iZ3JpZCI+PC9kaXY+JylbMF07CgkJCW9TZXR0aW5ncy5uVGFibGVSZWluc2VydEJlZm9yZSA9IG9TZXR0aW5ncy5uVGFibGUubmV4dFNpYmxpbmc7CgkJCgkJCS8qIFRyYWNrIHdoZXJlIHdlIHdhbnQgdG8gaW5zZXJ0IHRoZSBvcHRpb24gKi8KCQkJdmFyIG5JbnNlcnROb2RlID0gb1NldHRpbmdzLm5UYWJsZVdyYXBwZXI7CgkJCQoJCQkvKiBMb29wIG92ZXIgdGhlIHVzZXIgc2V0IHBvc2l0aW9uaW5nIGFuZCBwbGFjZSB0aGUgZWxlbWVudHMgYXMgbmVlZGVkICovCgkJCXZhciBhRG9tID0gb1NldHRpbmdzLnNEb20uc3BsaXQoJycpOwoJCQl2YXIgblRtcCwgaVB1c2hGZWF0dXJlLCBjT3B0aW9uLCBuTmV3Tm9kZSwgY05leHQsIHNBdHRyLCBqOwoJCQlmb3IgKCB2YXIgaT0wIDsgaTxhRG9tLmxlbmd0aCA7IGkrKyApCgkJCXsKCQkJCWlQdXNoRmVhdHVyZSA9IDA7CgkJCQljT3B0aW9uID0gYURvbVtpXTsKCQkJCQoJCQkJaWYgKCBjT3B0aW9uID09ICc8JyApCgkJCQl7CgkJCQkJLyogTmV3IGNvbnRhaW5lciBkaXYgKi8KCQkJCQluTmV3Tm9kZSA9ICQoJzxkaXY+PC9kaXY+JylbMF07CgkJCQkJCgkJCQkJLyogQ2hlY2sgdG8gc2VlIGlmIHdlIHNob3VsZCBhcHBlbmQgYW4gaWQgYW5kL29yIGEgY2xhc3MgbmFtZSB0byB0aGUgY29udGFpbmVyICovCgkJCQkJY05leHQgPSBhRG9tW2krMV07CgkJCQkJaWYgKCBjTmV4dCA9PSAiJyIgfHwgY05leHQgPT0gJyInICkKCQkJCQl7CgkJCQkJCXNBdHRyID0gIiI7CgkJCQkJCWogPSAyOwoJCQkJCQl3aGlsZSAoIGFEb21baStqXSAhPSBjTmV4dCApCgkJCQkJCXsKCQkJCQkJCXNBdHRyICs9IGFEb21baStqXTsKCQkJCQkJCWorKzsKCQkJCQkJfQoJCQkJCQkKCQkJCQkJLyogUmVwbGFjZSBqUXVlcnkgVUkgY29uc3RhbnRzICovCgkJCQkJCWlmICggc0F0dHIgPT0gIkgiICkKCQkJCQkJewoJCQkJCQkJc0F0dHIgPSBvU2V0dGluZ3Mub0NsYXNzZXMuc0pVSUhlYWRlcjsKCQkJCQkJfQoJCQkJCQllbHNlIGlmICggc0F0dHIgPT0gIkYiICkKCQkJCQkJewoJCQkJCQkJc0F0dHIgPSBvU2V0dGluZ3Mub0NsYXNzZXMuc0pVSUZvb3RlcjsKCQkJCQkJfQoJCQkJCQkKCQkJCQkJLyogVGhlIGF0dHJpYnV0ZSBjYW4gYmUgaW4gdGhlIGZvcm1hdCBvZiAiI2lkLmNsYXNzIiwgIiNpZCIgb3IgImNsYXNzIiBUaGlzIGxvZ2ljCgkJCQkJCSAqIGJyZWFrcyB0aGUgc3RyaW5nIGludG8gcGFydHMgYW5kIGFwcGxpZXMgdGhlbSBhcyBuZWVkZWQKCQkJCQkJICovCgkJCQkJCWlmICggc0F0dHIuaW5kZXhPZignLicpICE9IC0xICkKCQkJCQkJewoJCQkJCQkJdmFyIGFTcGxpdCA9IHNBdHRyLnNwbGl0KCcuJyk7CgkJCQkJCQluTmV3Tm9kZS5pZCA9IGFTcGxpdFswXS5zdWJzdHIoMSwgYVNwbGl0WzBdLmxlbmd0aC0xKTsKCQkJCQkJCW5OZXdOb2RlLmNsYXNzTmFtZSA9IGFTcGxpdFsxXTsKCQkJCQkJfQoJCQkJCQllbHNlIGlmICggc0F0dHIuY2hhckF0KDApID09ICIjIiApCgkJCQkJCXsKCQkJCQkJCW5OZXdOb2RlLmlkID0gc0F0dHIuc3Vic3RyKDEsIHNBdHRyLmxlbmd0aC0xKTsKCQkJCQkJfQoJCQkJCQllbHNlCgkJCQkJCXsKCQkJCQkJCW5OZXdOb2RlLmNsYXNzTmFtZSA9IHNBdHRyOwoJCQkJCQl9CgkJCQkJCQoJCQkJCQlpICs9IGo7IC8qIE1vdmUgYWxvbmcgdGhlIHBvc2l0aW9uIGFycmF5ICovCgkJCQkJfQoJCQkJCQoJCQkJCW5JbnNlcnROb2RlLmFwcGVuZENoaWxkKCBuTmV3Tm9kZSApOwoJCQkJCW5JbnNlcnROb2RlID0gbk5ld05vZGU7CgkJCQl9CgkJCQllbHNlIGlmICggY09wdGlvbiA9PSAnPicgKQoJCQkJewoJCQkJCS8qIEVuZCBjb250YWluZXIgZGl2ICovCgkJCQkJbkluc2VydE5vZGUgPSBuSW5zZXJ0Tm9kZS5wYXJlbnROb2RlOwoJCQkJfQoJCQkJZWxzZSBpZiAoIGNPcHRpb24gPT0gJ2wnICYmIG9TZXR0aW5ncy5vRmVhdHVyZXMuYlBhZ2luYXRlICYmIG9TZXR0aW5ncy5vRmVhdHVyZXMuYkxlbmd0aENoYW5nZSApCgkJCQl7CgkJCQkJLyogTGVuZ3RoICovCgkJCQkJblRtcCA9IF9mbkZlYXR1cmVIdG1sTGVuZ3RoKCBvU2V0dGluZ3MgKTsKCQkJCQlpUHVzaEZlYXR1cmUgPSAxOwoJCQkJfQoJCQkJZWxzZSBpZiAoIGNPcHRpb24gPT0gJ2YnICYmIG9TZXR0aW5ncy5vRmVhdHVyZXMuYkZpbHRlciApCgkJCQl7CgkJCQkJLyogRmlsdGVyICovCgkJCQkJblRtcCA9IF9mbkZlYXR1cmVIdG1sRmlsdGVyKCBvU2V0dGluZ3MgKTsKCQkJCQlpUHVzaEZlYXR1cmUgPSAxOwoJCQkJfQoJCQkJZWxzZSBpZiAoIGNPcHRpb24gPT0gJ3InICYmIG9TZXR0aW5ncy5vRmVhdHVyZXMuYlByb2Nlc3NpbmcgKQoJCQkJewoJCQkJCS8qIHBSb2Nlc3NpbmcgKi8KCQkJCQluVG1wID0gX2ZuRmVhdHVyZUh0bWxQcm9jZXNzaW5nKCBvU2V0dGluZ3MgKTsKCQkJCQlpUHVzaEZlYXR1cmUgPSAxOwoJCQkJfQoJCQkJZWxzZSBpZiAoIGNPcHRpb24gPT0gJ3QnICkKCQkJCXsKCQkJCQkvKiBUYWJsZSAqLwoJCQkJCW5UbXAgPSBfZm5GZWF0dXJlSHRtbFRhYmxlKCBvU2V0dGluZ3MgKTsKCQkJCQlpUHVzaEZlYXR1cmUgPSAxOwoJCQkJfQoJCQkJZWxzZSBpZiAoIGNPcHRpb24gPT0gICdpJyAmJiBvU2V0dGluZ3Mub0ZlYXR1cmVzLmJJbmZvICkKCQkJCXsKCQkJCQkvKiBJbmZvICovCgkJCQkJblRtcCA9IF9mbkZlYXR1cmVIdG1sSW5mbyggb1NldHRpbmdzICk7CgkJCQkJaVB1c2hGZWF0dXJlID0gMTsKCQkJCX0KCQkJCWVsc2UgaWYgKCBjT3B0aW9uID09ICdwJyAmJiBvU2V0dGluZ3Mub0ZlYXR1cmVzLmJQYWdpbmF0ZSApCgkJCQl7CgkJCQkJLyogUGFnaW5hdGlvbiAqLwoJCQkJCW5UbXAgPSBfZm5GZWF0dXJlSHRtbFBhZ2luYXRlKCBvU2V0dGluZ3MgKTsKCQkJCQlpUHVzaEZlYXR1cmUgPSAxOwoJCQkJfQoJCQkJZWxzZSBpZiAoIERhdGFUYWJsZS5leHQuYW9GZWF0dXJlcy5sZW5ndGggIT09IDAgKQoJCQkJewoJCQkJCS8qIFBsdWctaW4gZmVhdHVyZXMgKi8KCQkJCQl2YXIgYW9GZWF0dXJlcyA9IERhdGFUYWJsZS5leHQuYW9GZWF0dXJlczsKCQkJCQlmb3IgKCB2YXIgaz0wLCBrTGVuPWFvRmVhdHVyZXMubGVuZ3RoIDsgazxrTGVuIDsgaysrICkKCQkJCQl7CgkJCQkJCWlmICggY09wdGlvbiA9PSBhb0ZlYXR1cmVzW2tdLmNGZWF0dXJlICkKCQkJCQkJewoJCQkJCQkJblRtcCA9IGFvRmVhdHVyZXNba10uZm5Jbml0KCBvU2V0dGluZ3MgKTsKCQkJCQkJCWlmICggblRtcCApCgkJCQkJCQl7CgkJCQkJCQkJaVB1c2hGZWF0dXJlID0gMTsKCQkJCQkJCX0KCQkJCQkJCWJyZWFrOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQkJCgkJCQkvKiBBZGQgdG8gdGhlIDJEIGZlYXR1cmVzIGFycmF5ICovCgkJCQlpZiAoIGlQdXNoRmVhdHVyZSA9PSAxICYmIG5UbXAgIT09IG51bGwgKQoJCQkJewoJCQkJCWlmICggdHlwZW9mIG9TZXR0aW5ncy5hYW5GZWF0dXJlc1tjT3B0aW9uXSAhPT0gJ29iamVjdCcgKQoJCQkJCXsKCQkJCQkJb1NldHRpbmdzLmFhbkZlYXR1cmVzW2NPcHRpb25dID0gW107CgkJCQkJfQoJCQkJCW9TZXR0aW5ncy5hYW5GZWF0dXJlc1tjT3B0aW9uXS5wdXNoKCBuVG1wICk7CgkJCQkJbkluc2VydE5vZGUuYXBwZW5kQ2hpbGQoIG5UbXAgKTsKCQkJCX0KCQkJfQoJCQkKCQkJLyogQnVpbHQgb3VyIERPTSBzdHJ1Y3R1cmUgLSByZXBsYWNlIHRoZSBob2xkaW5nIGRpdiB3aXRoIHdoYXQgd2Ugd2FudCAqLwoJCQluSG9sZGluZy5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZCggb1NldHRpbmdzLm5UYWJsZVdyYXBwZXIsIG5Ib2xkaW5nICk7CgkJfQoJCQoJCQoJCS8qKgoJCSAqIFVzZSB0aGUgRE9NIHNvdXJjZSB0byBjcmVhdGUgdXAgYW4gYXJyYXkgb2YgaGVhZGVyIGNlbGxzLiBUaGUgaWRlYSBoZXJlIGlzIHRvCgkJICogY3JlYXRlIGEgbGF5b3V0IGdyaWQgKGFycmF5KSBvZiByb3dzIHggY29sdW1ucywgd2hpY2ggY29udGFpbnMgYSByZWZlcmVuY2UKCQkgKiB0byB0aGUgY2VsbCB0aGF0IHRoYXQgcG9pbnQgaW4gdGhlIGdyaWQgKHJlZ2FyZGxlc3Mgb2YgY29sL3Jvd3NwYW4pLCBzdWNoIHRoYXQKCQkgKiBhbnkgY29sdW1uIC8gcm93IGNvdWxkIGJlIHJlbW92ZWQgYW5kIHRoZSBuZXcgZ3JpZCBjb25zdHJ1Y3RlZAoJCSAqICBAcGFyYW0gYXJyYXkge29iamVjdH0gYUxheW91dCBBcnJheSB0byBzdG9yZSB0aGUgY2FsY3VsYXRlZCBsYXlvdXQgaW4KCQkgKiAgQHBhcmFtIHtub2RlfSBuVGhlYWQgVGhlIGhlYWRlci9mb290ZXIgZWxlbWVudCBmb3IgdGhlIHRhYmxlCgkJICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQoJCSAqLwoJCWZ1bmN0aW9uIF9mbkRldGVjdEhlYWRlciAoIGFMYXlvdXQsIG5UaGVhZCApCgkJewoJCQl2YXIgblRycyA9ICQoblRoZWFkKS5jaGlsZHJlbigndHInKTsKCQkJdmFyIG5DZWxsOwoJCQl2YXIgaSwgaiwgaywgbCwgaUxlbiwgakxlbiwgaUNvbFNoaWZ0ZWQ7CgkJCXZhciBmblNoaWZ0Q29sID0gZnVuY3Rpb24gKCBhLCBpLCBqICkgewoJCQkJd2hpbGUgKCBhW2ldW2pdICkgewoJCQkJCWorKzsKCQkJCX0KCQkJCXJldHVybiBqOwoJCQl9OwoJCQoJCQlhTGF5b3V0LnNwbGljZSggMCwgYUxheW91dC5sZW5ndGggKTsKCQkJCgkJCS8qIFdlIGtub3cgaG93IG1hbnkgcm93cyB0aGVyZSBhcmUgaW4gdGhlIGxheW91dCAtIHNvIHByZXAgaXQgKi8KCQkJZm9yICggaT0wLCBpTGVuPW5UcnMubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQkJewoJCQkJYUxheW91dC5wdXNoKCBbXSApOwoJCQl9CgkJCQoJCQkvKiBDYWxjdWxhdGUgYSBsYXlvdXQgYXJyYXkgKi8KCQkJZm9yICggaT0wLCBpTGVuPW5UcnMubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQkJewoJCQkJdmFyIGlDb2x1bW4gPSAwOwoJCQkJCgkJCQkvKiBGb3IgZXZlcnkgY2VsbCBpbiB0aGUgcm93Li4uICovCgkJCQlmb3IgKCBqPTAsIGpMZW49blRyc1tpXS5jaGlsZE5vZGVzLmxlbmd0aCA7IGo8akxlbiA7IGorKyApCgkJCQl7CgkJCQkJbkNlbGwgPSBuVHJzW2ldLmNoaWxkTm9kZXNbal07CgkJCgkJCQkJaWYgKCBuQ2VsbC5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpID09ICJURCIgfHwKCQkJCQkgICAgIG5DZWxsLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCkgPT0gIlRIIiApCgkJCQkJewoJCQkJCQkvKiBHZXQgdGhlIGNvbCBhbmQgcm93c3BhbiBhdHRyaWJ1dGVzIGZyb20gdGhlIERPTSBhbmQgc2FuaXRpc2UgdGhlbSAqLwoJCQkJCQl2YXIgaUNvbHNwYW4gPSBuQ2VsbC5nZXRBdHRyaWJ1dGUoJ2NvbHNwYW4nKSAqIDE7CgkJCQkJCXZhciBpUm93c3BhbiA9IG5DZWxsLmdldEF0dHJpYnV0ZSgncm93c3BhbicpICogMTsKCQkJCQkJaUNvbHNwYW4gPSAoIWlDb2xzcGFuIHx8IGlDb2xzcGFuPT09MCB8fCBpQ29sc3Bhbj09PTEpID8gMSA6IGlDb2xzcGFuOwoJCQkJCQlpUm93c3BhbiA9ICghaVJvd3NwYW4gfHwgaVJvd3NwYW49PT0wIHx8IGlSb3dzcGFuPT09MSkgPyAxIDogaVJvd3NwYW47CgkJCgkJCQkJCS8qIFRoZXJlIG1pZ2h0IGJlIGNvbHNwYW4gY2VsbHMgYWxyZWFkeSBpbiB0aGlzIHJvdywgc28gc2hpZnQgb3VyIHRhcmdldCAKCQkJCQkJICogYWNjb3JkaW5nbHkKCQkJCQkJICovCgkJCQkJCWlDb2xTaGlmdGVkID0gZm5TaGlmdENvbCggYUxheW91dCwgaSwgaUNvbHVtbiApOwoJCQkJCQkKCQkJCQkJLyogSWYgdGhlcmUgaXMgY29sIC8gcm93c3BhbiwgY29weSB0aGUgaW5mb3JtYXRpb24gaW50byB0aGUgbGF5b3V0IGdyaWQgKi8KCQkJCQkJZm9yICggbD0wIDsgbDxpQ29sc3BhbiA7IGwrKyApCgkJCQkJCXsKCQkJCQkJCWZvciAoIGs9MCA7IGs8aVJvd3NwYW4gOyBrKysgKQoJCQkJCQkJewoJCQkJCQkJCWFMYXlvdXRbaStrXVtpQ29sU2hpZnRlZCtsXSA9IHsKCQkJCQkJCQkJImNlbGwiOiBuQ2VsbCwKCQkJCQkJCQkJInVuaXF1ZSI6IGlDb2xzcGFuID09IDEgPyB0cnVlIDogZmFsc2UKCQkJCQkJCQl9OwoJCQkJCQkJCWFMYXlvdXRbaStrXS5uVHIgPSBuVHJzW2ldOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9CgkJfQoJCQoJCQoJCS8qKgoJCSAqIEdldCBhbiBhcnJheSBvZiB1bmlxdWUgdGggZWxlbWVudHMsIG9uZSBmb3IgZWFjaCBjb2x1bW4KCQkgKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAoJCSAqICBAcGFyYW0ge25vZGV9IG5IZWFkZXIgYXV0b21hdGljYWxseSBkZXRlY3QgdGhlIGxheW91dCBmcm9tIHRoaXMgbm9kZSAtIG9wdGlvbmFsCgkJICogIEBwYXJhbSB7YXJyYXl9IGFMYXlvdXQgdGhlYWQvdGZvb3QgbGF5b3V0IGZyb20gX2ZuRGV0ZWN0SGVhZGVyIC0gb3B0aW9uYWwKCQkgKiAgQHJldHVybnMgYXJyYXkge25vZGV9IGFSZXR1cm4gbGlzdCBvZiB1bmlxdWUgdGgncwoJCSAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKCQkgKi8KCQlmdW5jdGlvbiBfZm5HZXRVbmlxdWVUaHMgKCBvU2V0dGluZ3MsIG5IZWFkZXIsIGFMYXlvdXQgKQoJCXsKCQkJdmFyIGFSZXR1cm4gPSBbXTsKCQkJaWYgKCAhYUxheW91dCApCgkJCXsKCQkJCWFMYXlvdXQgPSBvU2V0dGluZ3MuYW9IZWFkZXI7CgkJCQlpZiAoIG5IZWFkZXIgKQoJCQkJewoJCQkJCWFMYXlvdXQgPSBbXTsKCQkJCQlfZm5EZXRlY3RIZWFkZXIoIGFMYXlvdXQsIG5IZWFkZXIgKTsKCQkJCX0KCQkJfQoJCQoJCQlmb3IgKCB2YXIgaT0wLCBpTGVuPWFMYXlvdXQubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQkJewoJCQkJZm9yICggdmFyIGo9MCwgakxlbj1hTGF5b3V0W2ldLmxlbmd0aCA7IGo8akxlbiA7IGorKyApCgkJCQl7CgkJCQkJaWYgKCBhTGF5b3V0W2ldW2pdLnVuaXF1ZSAmJiAKCQkJCQkJICghYVJldHVybltqXSB8fCAhb1NldHRpbmdzLmJTb3J0Q2VsbHNUb3ApICkKCQkJCQl7CgkJCQkJCWFSZXR1cm5bal0gPSBhTGF5b3V0W2ldW2pdLmNlbGw7CgkJCQkJfQoJCQkJfQoJCQl9CgkJCQoJCQlyZXR1cm4gYVJldHVybjsKCQl9CgkJCgkJCgkJCgkJLyoqCgkJICogVXBkYXRlIHRoZSB0YWJsZSB1c2luZyBhbiBBamF4IGNhbGwKCQkgKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAoJCSAqICBAcmV0dXJucyB7Ym9vbGVhbn0gQmxvY2sgdGhlIHRhYmxlIGRyYXdpbmcgb3Igbm90CgkJICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQoJCSAqLwoJCWZ1bmN0aW9uIF9mbkFqYXhVcGRhdGUoIG9TZXR0aW5ncyApCgkJewoJCQlpZiAoIG9TZXR0aW5ncy5iQWpheERhdGFHZXQgKQoJCQl7CgkJCQlvU2V0dGluZ3MuaURyYXcrKzsKCQkJCV9mblByb2Nlc3NpbmdEaXNwbGF5KCBvU2V0dGluZ3MsIHRydWUgKTsKCQkJCXZhciBpQ29sdW1ucyA9IG9TZXR0aW5ncy5hb0NvbHVtbnMubGVuZ3RoOwoJCQkJdmFyIGFvRGF0YSA9IF9mbkFqYXhQYXJhbWV0ZXJzKCBvU2V0dGluZ3MgKTsKCQkJCV9mblNlcnZlclBhcmFtcyggb1NldHRpbmdzLCBhb0RhdGEgKTsKCQkJCQoJCQkJb1NldHRpbmdzLmZuU2VydmVyRGF0YS5jYWxsKCBvU2V0dGluZ3Mub0luc3RhbmNlLCBvU2V0dGluZ3Muc0FqYXhTb3VyY2UsIGFvRGF0YSwKCQkJCQlmdW5jdGlvbihqc29uKSB7CgkJCQkJCV9mbkFqYXhVcGRhdGVEcmF3KCBvU2V0dGluZ3MsIGpzb24gKTsKCQkJCQl9LCBvU2V0dGluZ3MgKTsKCQkJCXJldHVybiBmYWxzZTsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCXJldHVybiB0cnVlOwoJCQl9CgkJfQoJCQoJCQoJCS8qKgoJCSAqIEJ1aWxkIHVwIHRoZSBwYXJhbWV0ZXJzIGluIGFuIG9iamVjdCBuZWVkZWQgZm9yIGEgc2VydmVyLXNpZGUgcHJvY2Vzc2luZyByZXF1ZXN0CgkJICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCQkgKiAgQHJldHVybnMge2Jvb2x9IGJsb2NrIHRoZSB0YWJsZSBkcmF3aW5nIG9yIG5vdAoJCSAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKCQkgKi8KCQlmdW5jdGlvbiBfZm5BamF4UGFyYW1ldGVycyggb1NldHRpbmdzICkKCQl7CgkJCXZhciBpQ29sdW1ucyA9IG9TZXR0aW5ncy5hb0NvbHVtbnMubGVuZ3RoOwoJCQl2YXIgYW9EYXRhID0gW10sIG1EYXRhUHJvcCwgYWFTb3J0LCBhRGF0YVNvcnQ7CgkJCXZhciBpLCBqOwoJCQkKCQkJYW9EYXRhLnB1c2goIHsgIm5hbWUiOiAic0VjaG8iLCAgICAgICAgICAidmFsdWUiOiBvU2V0dGluZ3MuaURyYXcgfSApOwoJCQlhb0RhdGEucHVzaCggeyAibmFtZSI6ICJpQ29sdW1ucyIsICAgICAgICJ2YWx1ZSI6IGlDb2x1bW5zIH0gKTsKCQkJYW9EYXRhLnB1c2goIHsgIm5hbWUiOiAic0NvbHVtbnMiLCAgICAgICAidmFsdWUiOiBfZm5Db2x1bW5PcmRlcmluZyhvU2V0dGluZ3MpIH0gKTsKCQkJYW9EYXRhLnB1c2goIHsgIm5hbWUiOiAiaURpc3BsYXlTdGFydCIsICAidmFsdWUiOiBvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQgfSApOwoJCQlhb0RhdGEucHVzaCggeyAibmFtZSI6ICJpRGlzcGxheUxlbmd0aCIsICJ2YWx1ZSI6IG9TZXR0aW5ncy5vRmVhdHVyZXMuYlBhZ2luYXRlICE9PSBmYWxzZSA/CgkJCQlvU2V0dGluZ3MuX2lEaXNwbGF5TGVuZ3RoIDogLTEgfSApOwoJCQkJCgkJCWZvciAoIGk9MCA7IGk8aUNvbHVtbnMgOyBpKysgKQoJCQl7CgkJCSAgbURhdGFQcm9wID0gb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5tRGF0YTsKCQkJCWFvRGF0YS5wdXNoKCB7ICJuYW1lIjogIm1EYXRhUHJvcF8iK2ksICJ2YWx1ZSI6IHR5cGVvZihtRGF0YVByb3ApPT09ImZ1bmN0aW9uIiA/ICdmdW5jdGlvbicgOiBtRGF0YVByb3AgfSApOwoJCQl9CgkJCQoJCQkvKiBGaWx0ZXJpbmcgKi8KCQkJaWYgKCBvU2V0dGluZ3Mub0ZlYXR1cmVzLmJGaWx0ZXIgIT09IGZhbHNlICkKCQkJewoJCQkJYW9EYXRhLnB1c2goIHsgIm5hbWUiOiAic1NlYXJjaCIsICJ2YWx1ZSI6IG9TZXR0aW5ncy5vUHJldmlvdXNTZWFyY2guc1NlYXJjaCB9ICk7CgkJCQlhb0RhdGEucHVzaCggeyAibmFtZSI6ICJiUmVnZXgiLCAgInZhbHVlIjogb1NldHRpbmdzLm9QcmV2aW91c1NlYXJjaC5iUmVnZXggfSApOwoJCQkJZm9yICggaT0wIDsgaTxpQ29sdW1ucyA7IGkrKyApCgkJCQl7CgkJCQkJYW9EYXRhLnB1c2goIHsgIm5hbWUiOiAic1NlYXJjaF8iK2ksICAgICAidmFsdWUiOiBvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzW2ldLnNTZWFyY2ggfSApOwoJCQkJCWFvRGF0YS5wdXNoKCB7ICJuYW1lIjogImJSZWdleF8iK2ksICAgICAgInZhbHVlIjogb1NldHRpbmdzLmFvUHJlU2VhcmNoQ29sc1tpXS5iUmVnZXggfSApOwoJCQkJCWFvRGF0YS5wdXNoKCB7ICJuYW1lIjogImJTZWFyY2hhYmxlXyIraSwgInZhbHVlIjogb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5iU2VhcmNoYWJsZSB9ICk7CgkJCQl9CgkJCX0KCQkJCgkJCS8qIFNvcnRpbmcgKi8KCQkJaWYgKCBvU2V0dGluZ3Mub0ZlYXR1cmVzLmJTb3J0ICE9PSBmYWxzZSApCgkJCXsKCQkJCXZhciBpQ291bnRlciA9IDA7CgkJCgkJCQlhYVNvcnQgPSAoIG9TZXR0aW5ncy5hYVNvcnRpbmdGaXhlZCAhPT0gbnVsbCApID8KCQkJCQlvU2V0dGluZ3MuYWFTb3J0aW5nRml4ZWQuY29uY2F0KCBvU2V0dGluZ3MuYWFTb3J0aW5nICkgOgoJCQkJCW9TZXR0aW5ncy5hYVNvcnRpbmcuc2xpY2UoKTsKCQkJCQoJCQkJZm9yICggaT0wIDsgaTxhYVNvcnQubGVuZ3RoIDsgaSsrICkKCQkJCXsKCQkJCQlhRGF0YVNvcnQgPSBvU2V0dGluZ3MuYW9Db2x1bW5zWyBhYVNvcnRbaV1bMF0gXS5hRGF0YVNvcnQ7CgkJCQkJCgkJCQkJZm9yICggaj0wIDsgajxhRGF0YVNvcnQubGVuZ3RoIDsgaisrICkKCQkJCQl7CgkJCQkJCWFvRGF0YS5wdXNoKCB7ICJuYW1lIjogImlTb3J0Q29sXyIraUNvdW50ZXIsICAidmFsdWUiOiBhRGF0YVNvcnRbal0gfSApOwoJCQkJCQlhb0RhdGEucHVzaCggeyAibmFtZSI6ICJzU29ydERpcl8iK2lDb3VudGVyLCAgInZhbHVlIjogYWFTb3J0W2ldWzFdIH0gKTsKCQkJCQkJaUNvdW50ZXIrKzsKCQkJCQl9CgkJCQl9CgkJCQlhb0RhdGEucHVzaCggeyAibmFtZSI6ICJpU29ydGluZ0NvbHMiLCAgICJ2YWx1ZSI6IGlDb3VudGVyIH0gKTsKCQkJCQoJCQkJZm9yICggaT0wIDsgaTxpQ29sdW1ucyA7IGkrKyApCgkJCQl7CgkJCQkJYW9EYXRhLnB1c2goIHsgIm5hbWUiOiAiYlNvcnRhYmxlXyIraSwgICJ2YWx1ZSI6IG9TZXR0aW5ncy5hb0NvbHVtbnNbaV0uYlNvcnRhYmxlIH0gKTsKCQkJCX0KCQkJfQoJCQkKCQkJcmV0dXJuIGFvRGF0YTsKCQl9CgkJCgkJCgkJLyoqCgkJICogQWRkIEFqYXggcGFyYW1ldGVycyBmcm9tIHBsdWctaW5zCgkJICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCQkgKiAgQHBhcmFtIGFycmF5IHtvYmplY3RzfSBhb0RhdGEgbmFtZS92YWx1ZSBwYWlycyB0byBzZW5kIHRvIHRoZSBzZXJ2ZXIKCQkgKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCgkJICovCgkJZnVuY3Rpb24gX2ZuU2VydmVyUGFyYW1zKCBvU2V0dGluZ3MsIGFvRGF0YSApCgkJewoJCQlfZm5DYWxsYmFja0ZpcmUoIG9TZXR0aW5ncywgJ2FvU2VydmVyUGFyYW1zJywgJ3NlcnZlclBhcmFtcycsIFthb0RhdGFdICk7CgkJfQoJCQoJCQoJCS8qKgoJCSAqIERhdGEgdGhlIGRhdGEgZnJvbSB0aGUgc2VydmVyIChudWtpbmcgdGhlIG9sZCkgYW5kIHJlZHJhdyB0aGUgdGFibGUKCQkgKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAoJCSAqICBAcGFyYW0ge29iamVjdH0ganNvbiBqc29uIGRhdGEgcmV0dXJuIGZyb20gdGhlIHNlcnZlci4KCQkgKiAgQHBhcmFtIHtzdHJpbmd9IGpzb24uc0VjaG8gVHJhY2tpbmcgZmxhZyBmb3IgRGF0YVRhYmxlcyB0byBtYXRjaCByZXF1ZXN0cwoJCSAqICBAcGFyYW0ge2ludH0ganNvbi5pVG90YWxSZWNvcmRzIE51bWJlciBvZiByZWNvcmRzIGluIHRoZSBkYXRhIHNldCwgbm90IGFjY291bnRpbmcgZm9yIGZpbHRlcmluZwoJCSAqICBAcGFyYW0ge2ludH0ganNvbi5pVG90YWxEaXNwbGF5UmVjb3JkcyBOdW1iZXIgb2YgcmVjb3JkcyBpbiB0aGUgZGF0YSBzZXQsIGFjY291bnRpbmcgZm9yIGZpbHRlcmluZwoJCSAqICBAcGFyYW0ge2FycmF5fSBqc29uLmFhRGF0YSBUaGUgZGF0YSB0byBkaXNwbGF5IG9uIHRoaXMgcGFnZQoJCSAqICBAcGFyYW0ge3N0cmluZ30gW2pzb24uc0NvbHVtbnNdIENvbHVtbiBvcmRlcmluZyAoc05hbWUsIGNvbW1hIHNlcGFyYXRlZCkKCQkgKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCgkJICovCgkJZnVuY3Rpb24gX2ZuQWpheFVwZGF0ZURyYXcgKCBvU2V0dGluZ3MsIGpzb24gKQoJCXsKCQkJaWYgKCBqc29uLnNFY2hvICE9PSB1bmRlZmluZWQgKQoJCQl7CgkJCQkvKiBQcm90ZWN0IGFnYWluc3Qgb2xkIHJldHVybnMgb3Zlci13cml0aW5nIGEgbmV3IG9uZS4gUG9zc2libGUgd2hlbiB5b3UgZ2V0CgkJCQkgKiB2ZXJ5IGZhc3QgaW50ZXJhY3Rpb24sIGFuZCBsYXRlciBxdWVyaWVzIGFyZSBjb21wbGV0ZWQgbXVjaCBmYXN0ZXIKCQkJCSAqLwoJCQkJaWYgKCBqc29uLnNFY2hvKjEgPCBvU2V0dGluZ3MuaURyYXcgKQoJCQkJewoJCQkJCXJldHVybjsKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQlvU2V0dGluZ3MuaURyYXcgPSBqc29uLnNFY2hvICogMTsKCQkJCX0KCQkJfQoJCQkKCQkJaWYgKCAhb1NldHRpbmdzLm9TY3JvbGwuYkluZmluaXRlIHx8CgkJCQkgICAob1NldHRpbmdzLm9TY3JvbGwuYkluZmluaXRlICYmIChvU2V0dGluZ3MuYlNvcnRlZCB8fCBvU2V0dGluZ3MuYkZpbHRlcmVkKSkgKQoJCQl7CgkJCQlfZm5DbGVhclRhYmxlKCBvU2V0dGluZ3MgKTsKCQkJfQoJCQlvU2V0dGluZ3MuX2lSZWNvcmRzVG90YWwgPSBwYXJzZUludChqc29uLmlUb3RhbFJlY29yZHMsIDEwKTsKCQkJb1NldHRpbmdzLl9pUmVjb3Jkc0Rpc3BsYXkgPSBwYXJzZUludChqc29uLmlUb3RhbERpc3BsYXlSZWNvcmRzLCAxMCk7CgkJCQoJCQkvKiBEZXRlcm1pbmUgaWYgcmVvcmRlcmluZyBpcyByZXF1aXJlZCAqLwoJCQl2YXIgc09yZGVyaW5nID0gX2ZuQ29sdW1uT3JkZXJpbmcob1NldHRpbmdzKTsKCQkJdmFyIGJSZU9yZGVyID0gKGpzb24uc0NvbHVtbnMgIT09IHVuZGVmaW5lZCAmJiBzT3JkZXJpbmcgIT09ICIiICYmIGpzb24uc0NvbHVtbnMgIT0gc09yZGVyaW5nICk7CgkJCXZhciBhaUluZGV4OwoJCQlpZiAoIGJSZU9yZGVyICkKCQkJewoJCQkJYWlJbmRleCA9IF9mblJlT3JkZXJJbmRleCggb1NldHRpbmdzLCBqc29uLnNDb2x1bW5zICk7CgkJCX0KCQkJCgkJCXZhciBhRGF0YSA9IF9mbkdldE9iamVjdERhdGFGbiggb1NldHRpbmdzLnNBamF4RGF0YVByb3AgKSgganNvbiApOwoJCQlmb3IgKCB2YXIgaT0wLCBpTGVuPWFEYXRhLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJCXsKCQkJCWlmICggYlJlT3JkZXIgKQoJCQkJewoJCQkJCS8qIElmIHdlIG5lZWQgdG8gcmUtb3JkZXIsIHRoZW4gY3JlYXRlIGEgbmV3IGFycmF5IHdpdGggdGhlIGNvcnJlY3Qgb3JkZXIgYW5kIGFkZCBpdCAqLwoJCQkJCXZhciBhRGF0YVNvcnRlZCA9IFtdOwoJCQkJCWZvciAoIHZhciBqPTAsIGpMZW49b1NldHRpbmdzLmFvQ29sdW1ucy5sZW5ndGggOyBqPGpMZW4gOyBqKysgKQoJCQkJCXsKCQkJCQkJYURhdGFTb3J0ZWQucHVzaCggYURhdGFbaV1bIGFpSW5kZXhbal0gXSApOwoJCQkJCX0KCQkJCQlfZm5BZGREYXRhKCBvU2V0dGluZ3MsIGFEYXRhU29ydGVkICk7CgkJCQl9CgkJCQllbHNlCgkJCQl7CgkJCQkJLyogTm8gcmUtb3JkZXIgcmVxdWlyZWQsIHNldmVyIGdvdCBpdCAicmlnaHQiIC0ganVzdCBzdHJhaWdodCBhZGQgKi8KCQkJCQlfZm5BZGREYXRhKCBvU2V0dGluZ3MsIGFEYXRhW2ldICk7CgkJCQl9CgkJCX0KCQkJb1NldHRpbmdzLmFpRGlzcGxheSA9IG9TZXR0aW5ncy5haURpc3BsYXlNYXN0ZXIuc2xpY2UoKTsKCQkJCgkJCW9TZXR0aW5ncy5iQWpheERhdGFHZXQgPSBmYWxzZTsKCQkJX2ZuRHJhdyggb1NldHRpbmdzICk7CgkJCW9TZXR0aW5ncy5iQWpheERhdGFHZXQgPSB0cnVlOwoJCQlfZm5Qcm9jZXNzaW5nRGlzcGxheSggb1NldHRpbmdzLCBmYWxzZSApOwoJCX0KCQkKCQkKCQkKCQkvKioKCQkgKiBHZW5lcmF0ZSB0aGUgbm9kZSByZXF1aXJlZCBmb3IgZmlsdGVyaW5nIHRleHQKCQkgKiAgQHJldHVybnMge25vZGV9IEZpbHRlciBjb250cm9sIGVsZW1lbnQKCQkgKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAoJCSAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKCQkgKi8KCQlmdW5jdGlvbiBfZm5GZWF0dXJlSHRtbEZpbHRlciAoIG9TZXR0aW5ncyApCgkJewoJCQl2YXIgb1ByZXZpb3VzU2VhcmNoID0gb1NldHRpbmdzLm9QcmV2aW91c1NlYXJjaDsKCQkJCgkJCXZhciBzU2VhcmNoU3RyID0gb1NldHRpbmdzLm9MYW5ndWFnZS5zU2VhcmNoOwoJCQlzU2VhcmNoU3RyID0gKHNTZWFyY2hTdHIuaW5kZXhPZignX0lOUFVUXycpICE9PSAtMSkgPwoJCQkgIHNTZWFyY2hTdHIucmVwbGFjZSgnX0lOUFVUXycsICc8aW5wdXQgdHlwZT0idGV4dCIgLz4nKSA6CgkJCSAgc1NlYXJjaFN0cj09PSIiID8gJzxpbnB1dCB0eXBlPSJ0ZXh0IiAvPicgOiBzU2VhcmNoU3RyKycgPGlucHV0IHR5cGU9InRleHQiIC8+JzsKCQkJCgkJCXZhciBuRmlsdGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggJ2RpdicgKTsKCQkJbkZpbHRlci5jbGFzc05hbWUgPSBvU2V0dGluZ3Mub0NsYXNzZXMuc0ZpbHRlcjsKCQkJbkZpbHRlci5pbm5lckhUTUwgPSAnPGxhYmVsPicrc1NlYXJjaFN0cisnPC9sYWJlbD4nOwoJCQlpZiAoICFvU2V0dGluZ3MuYWFuRmVhdHVyZXMuZiApCgkJCXsKCQkJCW5GaWx0ZXIuaWQgPSBvU2V0dGluZ3Muc1RhYmxlSWQrJ19maWx0ZXInOwoJCQl9CgkJCQoJCQl2YXIganFGaWx0ZXIgPSAkKCdpbnB1dFt0eXBlPSJ0ZXh0Il0nLCBuRmlsdGVyKTsKCQkKCQkJLy8gU3RvcmUgYSByZWZlcmVuY2UgdG8gdGhlIGlucHV0IGVsZW1lbnQsIHNvIG90aGVyIGlucHV0IGVsZW1lbnRzIGNvdWxkIGJlCgkJCS8vIGFkZGVkIHRvIHRoZSBmaWx0ZXIgd3JhcHBlciBpZiBuZWVkZWQgKHN1Ym1pdCBidXR0b24gZm9yIGV4YW1wbGUpCgkJCW5GaWx0ZXIuX0RUX0lucHV0ID0ganFGaWx0ZXJbMF07CgkJCgkJCWpxRmlsdGVyLnZhbCggb1ByZXZpb3VzU2VhcmNoLnNTZWFyY2gucmVwbGFjZSgnIicsJyZxdW90OycpICk7CgkJCWpxRmlsdGVyLmJpbmQoICdrZXl1cC5EVCcsIGZ1bmN0aW9uKGUpIHsKCQkJCS8qIFVwZGF0ZSBhbGwgb3RoZXIgZmlsdGVyIGlucHV0IGVsZW1lbnRzIGZvciB0aGUgbmV3IGRpc3BsYXkgKi8KCQkJCXZhciBuID0gb1NldHRpbmdzLmFhbkZlYXR1cmVzLmY7CgkJCQl2YXIgdmFsID0gdGhpcy52YWx1ZT09PSIiID8gIiIgOiB0aGlzLnZhbHVlOyAvLyBtZW50YWwgSUU4IGZpeCA6LSgKCQkKCQkJCWZvciAoIHZhciBpPTAsIGlMZW49bi5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCQkJewoJCQkJCWlmICggbltpXSAhPSAkKHRoaXMpLnBhcmVudHMoJ2Rpdi5kYXRhVGFibGVzX2ZpbHRlcicpWzBdICkKCQkJCQl7CgkJCQkJCSQobltpXS5fRFRfSW5wdXQpLnZhbCggdmFsICk7CgkJCQkJfQoJCQkJfQoJCQkJCgkJCQkvKiBOb3cgZG8gdGhlIGZpbHRlciAqLwoJCQkJaWYgKCB2YWwgIT0gb1ByZXZpb3VzU2VhcmNoLnNTZWFyY2ggKQoJCQkJewoJCQkJCV9mbkZpbHRlckNvbXBsZXRlKCBvU2V0dGluZ3MsIHsgCgkJCQkJCSJzU2VhcmNoIjogdmFsLCAKCQkJCQkJImJSZWdleCI6IG9QcmV2aW91c1NlYXJjaC5iUmVnZXgsCgkJCQkJCSJiU21hcnQiOiBvUHJldmlvdXNTZWFyY2guYlNtYXJ0ICwKCQkJCQkJImJDYXNlSW5zZW5zaXRpdmUiOiBvUHJldmlvdXNTZWFyY2guYkNhc2VJbnNlbnNpdGl2ZSAKCQkJCQl9ICk7CgkJCQl9CgkJCX0gKTsKCQkKCQkJanFGaWx0ZXIKCQkJCS5hdHRyKCdhcmlhLWNvbnRyb2xzJywgb1NldHRpbmdzLnNUYWJsZUlkKQoJCQkJLmJpbmQoICdrZXlwcmVzcy5EVCcsIGZ1bmN0aW9uKGUpIHsKCQkJCQkvKiBQcmV2ZW50IGZvcm0gc3VibWlzc2lvbiAqLwoJCQkJCWlmICggZS5rZXlDb2RlID09IDEzICkKCQkJCQl7CgkJCQkJCXJldHVybiBmYWxzZTsKCQkJCQl9CgkJCQl9CgkJCSk7CgkJCQoJCQlyZXR1cm4gbkZpbHRlcjsKCQl9CgkJCgkJCgkJLyoqCgkJICogRmlsdGVyIHRoZSB0YWJsZSB1c2luZyBib3RoIHRoZSBnbG9iYWwgZmlsdGVyIGFuZCBjb2x1bW4gYmFzZWQgZmlsdGVyaW5nCgkJICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCQkgKiAgQHBhcmFtIHtvYmplY3R9IG9TZWFyY2ggc2VhcmNoIGluZm9ybWF0aW9uCgkJICogIEBwYXJhbSB7aW50fSBbaUZvcmNlXSBmb3JjZSBhIHJlc2VhcmNoIG9mIHRoZSBtYXN0ZXIgYXJyYXkgKDEpIG9yIG5vdCAodW5kZWZpbmVkIG9yIDApCgkJICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQoJCSAqLwoJCWZ1bmN0aW9uIF9mbkZpbHRlckNvbXBsZXRlICggb1NldHRpbmdzLCBvSW5wdXQsIGlGb3JjZSApCgkJewoJCQl2YXIgb1ByZXZTZWFyY2ggPSBvU2V0dGluZ3Mub1ByZXZpb3VzU2VhcmNoOwoJCQl2YXIgYW9QcmV2U2VhcmNoID0gb1NldHRpbmdzLmFvUHJlU2VhcmNoQ29sczsKCQkJdmFyIGZuU2F2ZUZpbHRlciA9IGZ1bmN0aW9uICggb0ZpbHRlciApIHsKCQkJCS8qIFNhdmUgdGhlIGZpbHRlcmluZyB2YWx1ZXMgKi8KCQkJCW9QcmV2U2VhcmNoLnNTZWFyY2ggPSBvRmlsdGVyLnNTZWFyY2g7CgkJCQlvUHJldlNlYXJjaC5iUmVnZXggPSBvRmlsdGVyLmJSZWdleDsKCQkJCW9QcmV2U2VhcmNoLmJTbWFydCA9IG9GaWx0ZXIuYlNtYXJ0OwoJCQkJb1ByZXZTZWFyY2guYkNhc2VJbnNlbnNpdGl2ZSA9IG9GaWx0ZXIuYkNhc2VJbnNlbnNpdGl2ZTsKCQkJfTsKCQkKCQkJLyogSW4gc2VydmVyLXNpZGUgcHJvY2Vzc2luZyBhbGwgZmlsdGVyaW5nIGlzIGRvbmUgYnkgdGhlIHNlcnZlciwgc28gbm8gcG9pbnQgaGFuZ2luZyBhcm91bmQgaGVyZSAqLwoJCQlpZiAoICFvU2V0dGluZ3Mub0ZlYXR1cmVzLmJTZXJ2ZXJTaWRlICkKCQkJewoJCQkJLyogR2xvYmFsIGZpbHRlciAqLwoJCQkJX2ZuRmlsdGVyKCBvU2V0dGluZ3MsIG9JbnB1dC5zU2VhcmNoLCBpRm9yY2UsIG9JbnB1dC5iUmVnZXgsIG9JbnB1dC5iU21hcnQsIG9JbnB1dC5iQ2FzZUluc2Vuc2l0aXZlICk7CgkJCQlmblNhdmVGaWx0ZXIoIG9JbnB1dCApOwoJCQoJCQkJLyogTm93IGRvIHRoZSBpbmRpdmlkdWFsIGNvbHVtbiBmaWx0ZXIgKi8KCQkJCWZvciAoIHZhciBpPTAgOyBpPG9TZXR0aW5ncy5hb1ByZVNlYXJjaENvbHMubGVuZ3RoIDsgaSsrICkKCQkJCXsKCQkJCQlfZm5GaWx0ZXJDb2x1bW4oIG9TZXR0aW5ncywgYW9QcmV2U2VhcmNoW2ldLnNTZWFyY2gsIGksIGFvUHJldlNlYXJjaFtpXS5iUmVnZXgsIAoJCQkJCQlhb1ByZXZTZWFyY2hbaV0uYlNtYXJ0LCBhb1ByZXZTZWFyY2hbaV0uYkNhc2VJbnNlbnNpdGl2ZSApOwoJCQkJfQoJCQkJCgkJCQkvKiBDdXN0b20gZmlsdGVyaW5nICovCgkJCQlfZm5GaWx0ZXJDdXN0b20oIG9TZXR0aW5ncyApOwoJCQl9CgkJCWVsc2UKCQkJewoJCQkJZm5TYXZlRmlsdGVyKCBvSW5wdXQgKTsKCQkJfQoJCQkKCQkJLyogVGVsbCB0aGUgZHJhdyBmdW5jdGlvbiB3ZSBoYXZlIGJlZW4gZmlsdGVyaW5nICovCgkJCW9TZXR0aW5ncy5iRmlsdGVyZWQgPSB0cnVlOwoJCQkkKG9TZXR0aW5ncy5vSW5zdGFuY2UpLnRyaWdnZXIoJ2ZpbHRlcicsIG9TZXR0aW5ncyk7CgkJCQoJCQkvKiBSZWRyYXcgdGhlIHRhYmxlICovCgkJCW9TZXR0aW5ncy5faURpc3BsYXlTdGFydCA9IDA7CgkJCV9mbkNhbGN1bGF0ZUVuZCggb1NldHRpbmdzICk7CgkJCV9mbkRyYXcoIG9TZXR0aW5ncyApOwoJCQkKCQkJLyogUmVidWlsZCBzZWFyY2ggYXJyYXkgJ29mZmxpbmUnICovCgkJCV9mbkJ1aWxkU2VhcmNoQXJyYXkoIG9TZXR0aW5ncywgMCApOwoJCX0KCQkKCQkKCQkvKioKCQkgKiBBcHBseSBjdXN0b20gZmlsdGVyaW5nIGZ1bmN0aW9ucwoJCSAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CgkJICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQoJCSAqLwoJCWZ1bmN0aW9uIF9mbkZpbHRlckN1c3RvbSggb1NldHRpbmdzICkKCQl7CgkJCXZhciBhZm5GaWx0ZXJzID0gRGF0YVRhYmxlLmV4dC5hZm5GaWx0ZXJpbmc7CgkJCXZhciBhaUZpbHRlckNvbHVtbnMgPSBfZm5HZXRDb2x1bW5zKCBvU2V0dGluZ3MsICdiU2VhcmNoYWJsZScgKTsKCQkKCQkJZm9yICggdmFyIGk9MCwgaUxlbj1hZm5GaWx0ZXJzLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJCXsKCQkJCXZhciBpQ29ycmVjdG9yID0gMDsKCQkJCWZvciAoIHZhciBqPTAsIGpMZW49b1NldHRpbmdzLmFpRGlzcGxheS5sZW5ndGggOyBqPGpMZW4gOyBqKysgKQoJCQkJewoJCQkJCXZhciBpRGlzSW5kZXggPSBvU2V0dGluZ3MuYWlEaXNwbGF5W2otaUNvcnJlY3Rvcl07CgkJCQkJdmFyIGJUZXN0ID0gYWZuRmlsdGVyc1tpXSgKCQkJCQkJb1NldHRpbmdzLAoJCQkJCQlfZm5HZXRSb3dEYXRhKCBvU2V0dGluZ3MsIGlEaXNJbmRleCwgJ2ZpbHRlcicsIGFpRmlsdGVyQ29sdW1ucyApLAoJCQkJCQlpRGlzSW5kZXgKCQkJCQkpOwoJCQkJCQoJCQkJCS8qIENoZWNrIGlmIHdlIHNob3VsZCB1c2UgdGhpcyByb3cgYmFzZWQgb24gdGhlIGZpbHRlcmluZyBmdW5jdGlvbiAqLwoJCQkJCWlmICggIWJUZXN0ICkKCQkJCQl7CgkJCQkJCW9TZXR0aW5ncy5haURpc3BsYXkuc3BsaWNlKCBqLWlDb3JyZWN0b3IsIDEgKTsKCQkJCQkJaUNvcnJlY3RvcisrOwoJCQkJCX0KCQkJCX0KCQkJfQoJCX0KCQkKCQkKCQkvKioKCQkgKiBGaWx0ZXIgdGhlIHRhYmxlIG9uIGEgcGVyLWNvbHVtbiBiYXNpcwoJCSAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CgkJICogIEBwYXJhbSB7c3RyaW5nfSBzSW5wdXQgc3RyaW5nIHRvIGZpbHRlciBvbgoJCSAqICBAcGFyYW0ge2ludH0gaUNvbHVtbiBjb2x1bW4gdG8gZmlsdGVyCgkJICogIEBwYXJhbSB7Ym9vbH0gYlJlZ2V4IHRyZWF0IHNlYXJjaCBzdHJpbmcgYXMgYSByZWd1bGFyIGV4cHJlc3Npb24gb3Igbm90CgkJICogIEBwYXJhbSB7Ym9vbH0gYlNtYXJ0IHVzZSBzbWFydCBmaWx0ZXJpbmcgb3Igbm90CgkJICogIEBwYXJhbSB7Ym9vbH0gYkNhc2VJbnNlbnNpdGl2ZSBEbyBjYXNlIGluc2Vuc3RpdmUgbWF0Y2hpbmcgb3Igbm90CgkJICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQoJCSAqLwoJCWZ1bmN0aW9uIF9mbkZpbHRlckNvbHVtbiAoIG9TZXR0aW5ncywgc0lucHV0LCBpQ29sdW1uLCBiUmVnZXgsIGJTbWFydCwgYkNhc2VJbnNlbnNpdGl2ZSApCgkJewoJCQlpZiAoIHNJbnB1dCA9PT0gIiIgKQoJCQl7CgkJCQlyZXR1cm47CgkJCX0KCQkJCgkJCXZhciBpSW5kZXhDb3JyZWN0b3IgPSAwOwoJCQl2YXIgcnBTZWFyY2ggPSBfZm5GaWx0ZXJDcmVhdGVTZWFyY2goIHNJbnB1dCwgYlJlZ2V4LCBiU21hcnQsIGJDYXNlSW5zZW5zaXRpdmUgKTsKCQkJCgkJCWZvciAoIHZhciBpPW9TZXR0aW5ncy5haURpc3BsYXkubGVuZ3RoLTEgOyBpPj0wIDsgaS0tICkKCQkJewoJCQkJdmFyIHNEYXRhID0gX2ZuRGF0YVRvU2VhcmNoKCBfZm5HZXRDZWxsRGF0YSggb1NldHRpbmdzLCBvU2V0dGluZ3MuYWlEaXNwbGF5W2ldLCBpQ29sdW1uLCAnZmlsdGVyJyApLAoJCQkJCW9TZXR0aW5ncy5hb0NvbHVtbnNbaUNvbHVtbl0uc1R5cGUgKTsKCQkJCWlmICggISBycFNlYXJjaC50ZXN0KCBzRGF0YSApICkKCQkJCXsKCQkJCQlvU2V0dGluZ3MuYWlEaXNwbGF5LnNwbGljZSggaSwgMSApOwoJCQkJCWlJbmRleENvcnJlY3RvcisrOwoJCQkJfQoJCQl9CgkJfQoJCQoJCQoJCS8qKgoJCSAqIEZpbHRlciB0aGUgZGF0YSB0YWJsZSBiYXNlZCBvbiB1c2VyIGlucHV0IGFuZCBkcmF3IHRoZSB0YWJsZQoJCSAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CgkJICogIEBwYXJhbSB7c3RyaW5nfSBzSW5wdXQgc3RyaW5nIHRvIGZpbHRlciBvbgoJCSAqICBAcGFyYW0ge2ludH0gaUZvcmNlIG9wdGlvbmFsIC0gZm9yY2UgYSByZXNlYXJjaCBvZiB0aGUgbWFzdGVyIGFycmF5ICgxKSBvciBub3QgKHVuZGVmaW5lZCBvciAwKQoJCSAqICBAcGFyYW0ge2Jvb2x9IGJSZWdleCB0cmVhdCBhcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBvciBub3QKCQkgKiAgQHBhcmFtIHtib29sfSBiU21hcnQgcGVyZm9ybSBzbWFydCBmaWx0ZXJpbmcgb3Igbm90CgkJICogIEBwYXJhbSB7Ym9vbH0gYkNhc2VJbnNlbnNpdGl2ZSBEbyBjYXNlIGluc2Vuc3RpdmUgbWF0Y2hpbmcgb3Igbm90CgkJICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQoJCSAqLwoJCWZ1bmN0aW9uIF9mbkZpbHRlciggb1NldHRpbmdzLCBzSW5wdXQsIGlGb3JjZSwgYlJlZ2V4LCBiU21hcnQsIGJDYXNlSW5zZW5zaXRpdmUgKQoJCXsKCQkJdmFyIGk7CgkJCXZhciBycFNlYXJjaCA9IF9mbkZpbHRlckNyZWF0ZVNlYXJjaCggc0lucHV0LCBiUmVnZXgsIGJTbWFydCwgYkNhc2VJbnNlbnNpdGl2ZSApOwoJCQl2YXIgb1ByZXZTZWFyY2ggPSBvU2V0dGluZ3Mub1ByZXZpb3VzU2VhcmNoOwoJCQkKCQkJLyogQ2hlY2sgaWYgd2UgYXJlIGZvcmNpbmcgb3Igbm90IC0gb3B0aW9uYWwgcGFyYW1ldGVyICovCgkJCWlmICggIWlGb3JjZSApCgkJCXsKCQkJCWlGb3JjZSA9IDA7CgkJCX0KCQkJCgkJCS8qIE5lZWQgdG8gdGFrZSBhY2NvdW50IG9mIGN1c3RvbSBmaWx0ZXJpbmcgZnVuY3Rpb25zIC0gYWx3YXlzIGZpbHRlciAqLwoJCQlpZiAoIERhdGFUYWJsZS5leHQuYWZuRmlsdGVyaW5nLmxlbmd0aCAhPT0gMCApCgkJCXsKCQkJCWlGb3JjZSA9IDE7CgkJCX0KCQkJCgkJCS8qCgkJCSAqIElmIHRoZSBpbnB1dCBpcyBibGFuayAtIHdlIHdhbnQgdGhlIGZ1bGwgZGF0YSBzZXQKCQkJICovCgkJCWlmICggc0lucHV0Lmxlbmd0aCA8PSAwICkKCQkJewoJCQkJb1NldHRpbmdzLmFpRGlzcGxheS5zcGxpY2UoIDAsIG9TZXR0aW5ncy5haURpc3BsYXkubGVuZ3RoKTsKCQkJCW9TZXR0aW5ncy5haURpc3BsYXkgPSBvU2V0dGluZ3MuYWlEaXNwbGF5TWFzdGVyLnNsaWNlKCk7CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQkvKgoJCQkJICogV2UgYXJlIHN0YXJ0aW5nIGEgbmV3IHNlYXJjaCBvciB0aGUgbmV3IHNlYXJjaCBzdHJpbmcgaXMgc21hbGxlciAKCQkJCSAqIHRoZW4gdGhlIG9sZCBvbmUgKGkuZS4gZGVsZXRlKS4gU2VhcmNoIGZyb20gdGhlIG1hc3RlciBhcnJheQoJCQkgCSAqLwoJCQkJaWYgKCBvU2V0dGluZ3MuYWlEaXNwbGF5Lmxlbmd0aCA9PSBvU2V0dGluZ3MuYWlEaXNwbGF5TWFzdGVyLmxlbmd0aCB8fAoJCQkJCSAgIG9QcmV2U2VhcmNoLnNTZWFyY2gubGVuZ3RoID4gc0lucHV0Lmxlbmd0aCB8fCBpRm9yY2UgPT0gMSB8fAoJCQkJCSAgIHNJbnB1dC5pbmRleE9mKG9QcmV2U2VhcmNoLnNTZWFyY2gpICE9PSAwICkKCQkJCXsKCQkJCQkvKiBOdWtlIHRoZSBvbGQgZGlzcGxheSBhcnJheSAtIHdlIGFyZSBnb2luZyB0byByZWJ1aWxkIGl0ICovCgkJCQkJb1NldHRpbmdzLmFpRGlzcGxheS5zcGxpY2UoIDAsIG9TZXR0aW5ncy5haURpc3BsYXkubGVuZ3RoKTsKCQkJCQkKCQkJCQkvKiBGb3JjZSBhIHJlYnVpbGQgb2YgdGhlIHNlYXJjaCBhcnJheSAqLwoJCQkJCV9mbkJ1aWxkU2VhcmNoQXJyYXkoIG9TZXR0aW5ncywgMSApOwoJCQkJCQoJCQkJCS8qIFNlYXJjaCB0aHJvdWdoIGFsbCByZWNvcmRzIHRvIHBvcHVsYXRlIHRoZSBzZWFyY2ggYXJyYXkKCQkJCQkgKiBUaGUgdGhlIG9TZXR0aW5ncy5haURpc3BsYXlNYXN0ZXIgYW5kIGFzRGF0YVNlYXJjaCBhcnJheXMgaGF2ZSAxIHRvIDEgCgkJCQkJICogbWFwcGluZwoJCQkJCSAqLwoJCQkJCWZvciAoIGk9MCA7IGk8b1NldHRpbmdzLmFpRGlzcGxheU1hc3Rlci5sZW5ndGggOyBpKysgKQoJCQkJCXsKCQkJCQkJaWYgKCBycFNlYXJjaC50ZXN0KG9TZXR0aW5ncy5hc0RhdGFTZWFyY2hbaV0pICkKCQkJCQkJewoJCQkJCQkJb1NldHRpbmdzLmFpRGlzcGxheS5wdXNoKCBvU2V0dGluZ3MuYWlEaXNwbGF5TWFzdGVyW2ldICk7CgkJCQkJCX0KCQkJCQl9CgkJCSAgfQoJCQkgIGVsc2UKCQkJCXsKCQkJICAJLyogVXNpbmcgb2xkIHNlYXJjaCBhcnJheSAtIHJlZmluZSBpdCAtIGRvIGl0IHRoaXMgd2F5IGZvciBzcGVlZAoJCQkgIAkgKiBEb24ndCBoYXZlIHRvIHNlYXJjaCB0aGUgd2hvbGUgbWFzdGVyIGFycmF5IGFnYWluCgkJCQkJICovCgkJCSAgCXZhciBpSW5kZXhDb3JyZWN0b3IgPSAwOwoJCQkgIAkKCQkJICAJLyogU2VhcmNoIHRoZSBjdXJyZW50IHJlc3VsdHMgKi8KCQkJICAJZm9yICggaT0wIDsgaTxvU2V0dGluZ3MuYXNEYXRhU2VhcmNoLmxlbmd0aCA7IGkrKyApCgkJCQkJewoJCQkgIAkJaWYgKCAhIHJwU2VhcmNoLnRlc3Qob1NldHRpbmdzLmFzRGF0YVNlYXJjaFtpXSkgKQoJCQkJCQl7CgkJCSAgCQkJb1NldHRpbmdzLmFpRGlzcGxheS5zcGxpY2UoIGktaUluZGV4Q29ycmVjdG9yLCAxICk7CgkJCSAgCQkJaUluZGV4Q29ycmVjdG9yKys7CgkJCSAgCQl9CgkJCSAgCX0KCQkJICB9CgkJCX0KCQl9CgkJCgkJCgkJLyoqCgkJICogQ3JlYXRlIGFuIGFycmF5IHdoaWNoIGNhbiBiZSBxdWlja2x5IHNlYXJjaCB0aHJvdWdoCgkJICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCQkgKiAgQHBhcmFtIHtpbnR9IGlNYXN0ZXIgdXNlIHRoZSBtYXN0ZXIgZGF0YSBhcnJheSAtIG9wdGlvbmFsCgkJICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQoJCSAqLwoJCWZ1bmN0aW9uIF9mbkJ1aWxkU2VhcmNoQXJyYXkgKCBvU2V0dGluZ3MsIGlNYXN0ZXIgKQoJCXsKCQkJaWYgKCAhb1NldHRpbmdzLm9GZWF0dXJlcy5iU2VydmVyU2lkZSApCgkJCXsKCQkJCS8qIENsZWFyIG91dCB0aGUgb2xkIGRhdGEgKi8KCQkJCW9TZXR0aW5ncy5hc0RhdGFTZWFyY2ggPSBbXTsKCQkKCQkJCXZhciBhaUZpbHRlckNvbHVtbnMgPSBfZm5HZXRDb2x1bW5zKCBvU2V0dGluZ3MsICdiU2VhcmNoYWJsZScgKTsKCQkJCXZhciBhaUluZGV4ID0gKGlNYXN0ZXI9PT0xKSA/CgkJCQkgCW9TZXR0aW5ncy5haURpc3BsYXlNYXN0ZXIgOgoJCQkJIAlvU2V0dGluZ3MuYWlEaXNwbGF5OwoJCQkJCgkJCQlmb3IgKCB2YXIgaT0wLCBpTGVuPWFpSW5kZXgubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQkJCXsKCQkJCQlvU2V0dGluZ3MuYXNEYXRhU2VhcmNoW2ldID0gX2ZuQnVpbGRTZWFyY2hSb3coCgkJCQkJCW9TZXR0aW5ncywKCQkJCQkJX2ZuR2V0Um93RGF0YSggb1NldHRpbmdzLCBhaUluZGV4W2ldLCAnZmlsdGVyJywgYWlGaWx0ZXJDb2x1bW5zICkKCQkJCQkpOwoJCQkJfQoJCQl9CgkJfQoJCQoJCQoJCS8qKgoJCSAqIENyZWF0ZSBhIHNlYXJjaGFibGUgc3RyaW5nIGZyb20gYSBzaW5nbGUgZGF0YSByb3cKCQkgKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAoJCSAqICBAcGFyYW0ge2FycmF5fSBhRGF0YSBSb3cgZGF0YSBhcnJheSB0byB1c2UgZm9yIHRoZSBkYXRhIHRvIHNlYXJjaAoJCSAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKCQkgKi8KCQlmdW5jdGlvbiBfZm5CdWlsZFNlYXJjaFJvdyggb1NldHRpbmdzLCBhRGF0YSApCgkJewoJCQl2YXIgc1NlYXJjaCA9IGFEYXRhLmpvaW4oJyAgJyk7CgkJCQoJCQkvKiBJZiBpdCBsb29rcyBsaWtlIHRoZXJlIGlzIGFuIEhUTUwgZW50aXR5IGluIHRoZSBzdHJpbmcsIGF0dGVtcHQgdG8gZGVjb2RlIGl0ICovCgkJCWlmICggc1NlYXJjaC5pbmRleE9mKCcmJykgIT09IC0xICkKCQkJewoJCQkJc1NlYXJjaCA9ICQoJzxkaXY+JykuaHRtbChzU2VhcmNoKS50ZXh0KCk7CgkJCX0KCQkJCgkJCS8vIFN0cmlwIG5ld2xpbmUgY2hhcmFjdGVycwoJCQlyZXR1cm4gc1NlYXJjaC5yZXBsYWNlKCAvW1xuXHJdL2csICIgIiApOwoJCX0KCQkKCQkvKioKCQkgKiBCdWlsZCBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBvYmplY3Qgc3VpdGFibGUgZm9yIHNlYXJjaGluZyBhIHRhYmxlCgkJICogIEBwYXJhbSB7c3RyaW5nfSBzU2VhcmNoIHN0cmluZyB0byBzZWFyY2ggZm9yCgkJICogIEBwYXJhbSB7Ym9vbH0gYlJlZ2V4IHRyZWF0IGFzIGEgcmVndWxhciBleHByZXNzaW9uIG9yIG5vdAoJCSAqICBAcGFyYW0ge2Jvb2x9IGJTbWFydCBwZXJmb3JtIHNtYXJ0IGZpbHRlcmluZyBvciBub3QKCQkgKiAgQHBhcmFtIHtib29sfSBiQ2FzZUluc2Vuc2l0aXZlIERvIGNhc2UgaW5zZW5zaXRpdmUgbWF0Y2hpbmcgb3Igbm90CgkJICogIEByZXR1cm5zIHtSZWdFeHB9IGNvbnN0cnVjdGVkIG9iamVjdAoJCSAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKCQkgKi8KCQlmdW5jdGlvbiBfZm5GaWx0ZXJDcmVhdGVTZWFyY2goIHNTZWFyY2gsIGJSZWdleCwgYlNtYXJ0LCBiQ2FzZUluc2Vuc2l0aXZlICkKCQl7CgkJCXZhciBhc1NlYXJjaCwgc1JlZ0V4cFN0cmluZzsKCQkJCgkJCWlmICggYlNtYXJ0ICkKCQkJewoJCQkJLyogR2VuZXJhdGUgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byB1c2UuIFNvbWV0aGluZyBhbG9uZyB0aGUgbGluZXMgb2Y6CgkJCQkgKiBeKD89Lio/XGJvbmVcYikoPz0uKj9cYnR3b1xiKSg/PS4qP1xidGhyZWVcYikuKiQKCQkJCSAqLwoJCQkJYXNTZWFyY2ggPSBiUmVnZXggPyBzU2VhcmNoLnNwbGl0KCAnICcgKSA6IF9mbkVzY2FwZVJlZ2V4KCBzU2VhcmNoICkuc3BsaXQoICcgJyApOwoJCQkJc1JlZ0V4cFN0cmluZyA9ICdeKD89Lio/Jythc1NlYXJjaC5qb2luKCAnKSg/PS4qPycgKSsnKS4qJCc7CgkJCQlyZXR1cm4gbmV3IFJlZ0V4cCggc1JlZ0V4cFN0cmluZywgYkNhc2VJbnNlbnNpdGl2ZSA/ICJpIiA6ICIiICk7CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQlzU2VhcmNoID0gYlJlZ2V4ID8gc1NlYXJjaCA6IF9mbkVzY2FwZVJlZ2V4KCBzU2VhcmNoICk7CgkJCQlyZXR1cm4gbmV3IFJlZ0V4cCggc1NlYXJjaCwgYkNhc2VJbnNlbnNpdGl2ZSA/ICJpIiA6ICIiICk7CgkJCX0KCQl9CgkJCgkJCgkJLyoqCgkJICogQ29udmVydCByYXcgZGF0YSBpbnRvIHNvbWV0aGluZyB0aGF0IHRoZSB1c2VyIGNhbiBzZWFyY2ggb24KCQkgKiAgQHBhcmFtIHtzdHJpbmd9IHNEYXRhIGRhdGEgdG8gYmUgbW9kaWZpZWQKCQkgKiAgQHBhcmFtIHtzdHJpbmd9IHNUeXBlIGRhdGEgdHlwZQoJCSAqICBAcmV0dXJucyB7c3RyaW5nfSBzZWFyY2ggc3RyaW5nCgkJICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQoJCSAqLwoJCWZ1bmN0aW9uIF9mbkRhdGFUb1NlYXJjaCAoIHNEYXRhLCBzVHlwZSApCgkJewoJCQlpZiAoIHR5cGVvZiBEYXRhVGFibGUuZXh0Lm9mblNlYXJjaFtzVHlwZV0gPT09ICJmdW5jdGlvbiIgKQoJCQl7CgkJCQlyZXR1cm4gRGF0YVRhYmxlLmV4dC5vZm5TZWFyY2hbc1R5cGVdKCBzRGF0YSApOwoJCQl9CgkJCWVsc2UgaWYgKCBzRGF0YSA9PT0gbnVsbCApCgkJCXsKCQkJCXJldHVybiAnJzsKCQkJfQoJCQllbHNlIGlmICggc1R5cGUgPT0gImh0bWwiICkKCQkJewoJCQkJcmV0dXJuIHNEYXRhLnJlcGxhY2UoL1tcclxuXS9nLCIgIikucmVwbGFjZSggLzwuKj8+L2csICIiICk7CgkJCX0KCQkJZWxzZSBpZiAoIHR5cGVvZiBzRGF0YSA9PT0gInN0cmluZyIgKQoJCQl7CgkJCQlyZXR1cm4gc0RhdGEucmVwbGFjZSgvW1xyXG5dL2csIiAiKTsKCQkJfQoJCQlyZXR1cm4gc0RhdGE7CgkJfQoJCQoJCQoJCS8qKgoJCSAqIHNjYXBlIGEgc3RyaW5nIHN1Y2ggdGhhdCBpdCBjYW4gYmUgdXNlZCBpbiBhIHJlZ3VsYXIgZXhwcmVzc2lvbgoJCSAqICBAcGFyYW0ge3N0cmluZ30gc1ZhbCBzdHJpbmcgdG8gZXNjYXBlCgkJICogIEByZXR1cm5zIHtzdHJpbmd9IGVzY2FwZWQgc3RyaW5nCgkJICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQoJCSAqLwoJCWZ1bmN0aW9uIF9mbkVzY2FwZVJlZ2V4ICggc1ZhbCApCgkJewoJCQl2YXIgYWNFc2NhcGUgPSBbICcvJywgJy4nLCAnKicsICcrJywgJz8nLCAnfCcsICcoJywgJyknLCAnWycsICddJywgJ3snLCAnfScsICdcXCcsICckJywgJ14nLCAnLScgXTsKCQkJdmFyIHJlUmVwbGFjZSA9IG5ldyBSZWdFeHAoICcoXFwnICsgYWNFc2NhcGUuam9pbignfFxcJykgKyAnKScsICdnJyApOwoJCQlyZXR1cm4gc1ZhbC5yZXBsYWNlKHJlUmVwbGFjZSwgJ1xcJDEnKTsKCQl9CgkJCgkJCgkJCgkJLyoqCgkJICogR2VuZXJhdGUgdGhlIG5vZGUgcmVxdWlyZWQgZm9yIHRoZSBpbmZvIGRpc3BsYXkKCQkgKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAoJCSAqICBAcmV0dXJucyB7bm9kZX0gSW5mb3JtYXRpb24gZWxlbWVudAoJCSAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKCQkgKi8KCQlmdW5jdGlvbiBfZm5GZWF0dXJlSHRtbEluZm8gKCBvU2V0dGluZ3MgKQoJCXsKCQkJdmFyIG5JbmZvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggJ2RpdicgKTsKCQkJbkluZm8uY2xhc3NOYW1lID0gb1NldHRpbmdzLm9DbGFzc2VzLnNJbmZvOwoJCQkKCQkJLyogQWN0aW9ucyB0aGF0IGFyZSB0byBiZSB0YWtlbiBvbmNlIG9ubHkgZm9yIHRoaXMgZmVhdHVyZSAqLwoJCQlpZiAoICFvU2V0dGluZ3MuYWFuRmVhdHVyZXMuaSApCgkJCXsKCQkJCS8qIEFkZCBkcmF3IGNhbGxiYWNrICovCgkJCQlvU2V0dGluZ3MuYW9EcmF3Q2FsbGJhY2sucHVzaCggewoJCQkJCSJmbiI6IF9mblVwZGF0ZUluZm8sCgkJCQkJInNOYW1lIjogImluZm9ybWF0aW9uIgoJCQkJfSApOwoJCQkJCgkJCQkvKiBBZGQgaWQgKi8KCQkJCW5JbmZvLmlkID0gb1NldHRpbmdzLnNUYWJsZUlkKydfaW5mbyc7CgkJCX0KCQkJb1NldHRpbmdzLm5UYWJsZS5zZXRBdHRyaWJ1dGUoICdhcmlhLWRlc2NyaWJlZGJ5Jywgb1NldHRpbmdzLnNUYWJsZUlkKydfaW5mbycgKTsKCQkJCgkJCXJldHVybiBuSW5mbzsKCQl9CgkJCgkJCgkJLyoqCgkJICogVXBkYXRlIHRoZSBpbmZvcm1hdGlvbiBlbGVtZW50cyBpbiB0aGUgZGlzcGxheQoJCSAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CgkJICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQoJCSAqLwoJCWZ1bmN0aW9uIF9mblVwZGF0ZUluZm8gKCBvU2V0dGluZ3MgKQoJCXsKCQkJLyogU2hvdyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdGFibGUgKi8KCQkJaWYgKCAhb1NldHRpbmdzLm9GZWF0dXJlcy5iSW5mbyB8fCBvU2V0dGluZ3MuYWFuRmVhdHVyZXMuaS5sZW5ndGggPT09IDAgKQoJCQl7CgkJCQlyZXR1cm47CgkJCX0KCQkJCgkJCXZhcgoJCQkJb0xhbmcgPSBvU2V0dGluZ3Mub0xhbmd1YWdlLAoJCQkJaVN0YXJ0ID0gb1NldHRpbmdzLl9pRGlzcGxheVN0YXJ0KzEsCgkJCQlpRW5kID0gb1NldHRpbmdzLmZuRGlzcGxheUVuZCgpLAoJCQkJaU1heCA9IG9TZXR0aW5ncy5mblJlY29yZHNUb3RhbCgpLAoJCQkJaVRvdGFsID0gb1NldHRpbmdzLmZuUmVjb3Jkc0Rpc3BsYXkoKSwKCQkJCXNPdXQ7CgkJCQoJCQlpZiAoIGlUb3RhbCA9PT0gMCAmJiBpVG90YWwgPT0gaU1heCApCgkJCXsKCQkJCS8qIEVtcHR5IHJlY29yZCBzZXQgKi8KCQkJCXNPdXQgPSBvTGFuZy5zSW5mb0VtcHR5OwoJCQl9CgkJCWVsc2UgaWYgKCBpVG90YWwgPT09IDAgKQoJCQl7CgkJCQkvKiBFbXB0eSByZWNvcmQgc2V0IGFmdGVyIGZpbHRlcmluZyAqLwoJCQkJc091dCA9IG9MYW5nLnNJbmZvRW1wdHkgKycgJysgb0xhbmcuc0luZm9GaWx0ZXJlZDsKCQkJfQoJCQllbHNlIGlmICggaVRvdGFsID09IGlNYXggKQoJCQl7CgkJCQkvKiBOb3JtYWwgcmVjb3JkIHNldCAqLwoJCQkJc091dCA9IG9MYW5nLnNJbmZvOwoJCQl9CgkJCWVsc2UKCQkJewoJCQkJLyogUmVjb3JkIHNldCBhZnRlciBmaWx0ZXJpbmcgKi8KCQkJCXNPdXQgPSBvTGFuZy5zSW5mbyArJyAnKyBvTGFuZy5zSW5mb0ZpbHRlcmVkOwoJCQl9CgkJCgkJCS8vIENvbnZlcnQgdGhlIG1hY3JvcwoJCQlzT3V0ICs9IG9MYW5nLnNJbmZvUG9zdEZpeDsKCQkJc091dCA9IF9mbkluZm9NYWNyb3MoIG9TZXR0aW5ncywgc091dCApOwoJCQkKCQkJaWYgKCBvTGFuZy5mbkluZm9DYWxsYmFjayAhPT0gbnVsbCApCgkJCXsKCQkJCXNPdXQgPSBvTGFuZy5mbkluZm9DYWxsYmFjay5jYWxsKCBvU2V0dGluZ3Mub0luc3RhbmNlLCAKCQkJCQlvU2V0dGluZ3MsIGlTdGFydCwgaUVuZCwgaU1heCwgaVRvdGFsLCBzT3V0ICk7CgkJCX0KCQkJCgkJCXZhciBuID0gb1NldHRpbmdzLmFhbkZlYXR1cmVzLmk7CgkJCWZvciAoIHZhciBpPTAsIGlMZW49bi5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCQl7CgkJCQkkKG5baV0pLmh0bWwoIHNPdXQgKTsKCQkJfQoJCX0KCQkKCQkKCQlmdW5jdGlvbiBfZm5JbmZvTWFjcm9zICggb1NldHRpbmdzLCBzdHIgKQoJCXsKCQkJdmFyCgkJCQlpU3RhcnQgPSBvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQrMSwKCQkJCXNTdGFydCA9IG9TZXR0aW5ncy5mbkZvcm1hdE51bWJlciggaVN0YXJ0ICksCgkJCQlpRW5kID0gb1NldHRpbmdzLmZuRGlzcGxheUVuZCgpLAoJCQkJc0VuZCA9IG9TZXR0aW5ncy5mbkZvcm1hdE51bWJlciggaUVuZCApLAoJCQkJaVRvdGFsID0gb1NldHRpbmdzLmZuUmVjb3Jkc0Rpc3BsYXkoKSwKCQkJCXNUb3RhbCA9IG9TZXR0aW5ncy5mbkZvcm1hdE51bWJlciggaVRvdGFsICksCgkJCQlpTWF4ID0gb1NldHRpbmdzLmZuUmVjb3Jkc1RvdGFsKCksCgkJCQlzTWF4ID0gb1NldHRpbmdzLmZuRm9ybWF0TnVtYmVyKCBpTWF4ICk7CgkJCgkJCS8vIFdoZW4gaW5maW5pdGUgc2Nyb2xsaW5nLCB3ZSBhcmUgYWx3YXlzIHN0YXJ0aW5nIGF0IDEuIF9pRGlzcGxheVN0YXJ0IGlzIHVzZWQgb25seQoJCQkvLyBpbnRlcm5hbGx5CgkJCWlmICggb1NldHRpbmdzLm9TY3JvbGwuYkluZmluaXRlICkKCQkJewoJCQkJc1N0YXJ0ID0gb1NldHRpbmdzLmZuRm9ybWF0TnVtYmVyKCAxICk7CgkJCX0KCQkKCQkJcmV0dXJuIHN0ci4KCQkJCXJlcGxhY2UoJ19TVEFSVF8nLCBzU3RhcnQpLgoJCQkJcmVwbGFjZSgnX0VORF8nLCAgIHNFbmQpLgoJCQkJcmVwbGFjZSgnX1RPVEFMXycsIHNUb3RhbCkuCgkJCQlyZXBsYWNlKCdfTUFYXycsICAgc01heCk7CgkJfQoJCQoJCQoJCQoJCS8qKgoJCSAqIERyYXcgdGhlIHRhYmxlIGZvciB0aGUgZmlyc3QgdGltZSwgYWRkaW5nIGFsbCByZXF1aXJlZCBmZWF0dXJlcwoJCSAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CgkJICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQoJCSAqLwoJCWZ1bmN0aW9uIF9mbkluaXRpYWxpc2UgKCBvU2V0dGluZ3MgKQoJCXsKCQkJdmFyIGksIGlMZW4sIGlBamF4U3RhcnQ9b1NldHRpbmdzLmlJbml0RGlzcGxheVN0YXJ0OwoJCQkKCQkJLyogRW5zdXJlIHRoYXQgdGhlIHRhYmxlIGRhdGEgaXMgZnVsbHkgaW5pdGlhbGlzZWQgKi8KCQkJaWYgKCBvU2V0dGluZ3MuYkluaXRpYWxpc2VkID09PSBmYWxzZSApCgkJCXsKCQkJCXNldFRpbWVvdXQoIGZ1bmN0aW9uKCl7IF9mbkluaXRpYWxpc2UoIG9TZXR0aW5ncyApOyB9LCAyMDAgKTsKCQkJCXJldHVybjsKCQkJfQoJCQkKCQkJLyogU2hvdyB0aGUgZGlzcGxheSBIVE1MIG9wdGlvbnMgKi8KCQkJX2ZuQWRkT3B0aW9uc0h0bWwoIG9TZXR0aW5ncyApOwoJCQkKCQkJLyogQnVpbGQgYW5kIGRyYXcgdGhlIGhlYWRlciAvIGZvb3RlciBmb3IgdGhlIHRhYmxlICovCgkJCV9mbkJ1aWxkSGVhZCggb1NldHRpbmdzICk7CgkJCV9mbkRyYXdIZWFkKCBvU2V0dGluZ3MsIG9TZXR0aW5ncy5hb0hlYWRlciApOwoJCQlpZiAoIG9TZXR0aW5ncy5uVEZvb3QgKQoJCQl7CgkJCQlfZm5EcmF3SGVhZCggb1NldHRpbmdzLCBvU2V0dGluZ3MuYW9Gb290ZXIgKTsKCQkJfQoJCQoJCQkvKiBPa2F5IHRvIHNob3cgdGhhdCBzb21ldGhpbmcgaXMgZ29pbmcgb24gbm93ICovCgkJCV9mblByb2Nlc3NpbmdEaXNwbGF5KCBvU2V0dGluZ3MsIHRydWUgKTsKCQkJCgkJCS8qIENhbGN1bGF0ZSBzaXplcyBmb3IgY29sdW1ucyAqLwoJCQlpZiAoIG9TZXR0aW5ncy5vRmVhdHVyZXMuYkF1dG9XaWR0aCApCgkJCXsKCQkJCV9mbkNhbGN1bGF0ZUNvbHVtbldpZHRocyggb1NldHRpbmdzICk7CgkJCX0KCQkJCgkJCWZvciAoIGk9MCwgaUxlbj1vU2V0dGluZ3MuYW9Db2x1bW5zLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJCXsKCQkJCWlmICggb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5zV2lkdGggIT09IG51bGwgKQoJCQkJewoJCQkJCW9TZXR0aW5ncy5hb0NvbHVtbnNbaV0ublRoLnN0eWxlLndpZHRoID0gX2ZuU3RyaW5nVG9Dc3MoIG9TZXR0aW5ncy5hb0NvbHVtbnNbaV0uc1dpZHRoICk7CgkJCQl9CgkJCX0KCQkJCgkJCS8qIElmIHRoZXJlIGlzIGRlZmF1bHQgc29ydGluZyByZXF1aXJlZCAtIGxldCdzIGRvIGl0LiBUaGUgc29ydCBmdW5jdGlvbiB3aWxsIGRvIHRoZQoJCQkgKiBkcmF3aW5nIGZvciB1cy4gT3RoZXJ3aXNlIHdlIGRyYXcgdGhlIHRhYmxlIHJlZ2FyZGxlc3Mgb2YgdGhlIEFqYXggc291cmNlIC0gdGhpcyBhbGxvd3MKCQkJICogdGhlIHRhYmxlIHRvIGxvb2sgaW5pdGlhbGlzZWQgZm9yIEFqYXggc291cmNpbmcgZGF0YSAoc2hvdyAnbG9hZGluZycgbWVzc2FnZSBwb3NzaWJseSkKCQkJICovCgkJCWlmICggb1NldHRpbmdzLm9GZWF0dXJlcy5iU29ydCApCgkJCXsKCQkJCV9mblNvcnQoIG9TZXR0aW5ncyApOwoJCQl9CgkJCWVsc2UgaWYgKCBvU2V0dGluZ3Mub0ZlYXR1cmVzLmJGaWx0ZXIgKQoJCQl7CgkJCQlfZm5GaWx0ZXJDb21wbGV0ZSggb1NldHRpbmdzLCBvU2V0dGluZ3Mub1ByZXZpb3VzU2VhcmNoICk7CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQlvU2V0dGluZ3MuYWlEaXNwbGF5ID0gb1NldHRpbmdzLmFpRGlzcGxheU1hc3Rlci5zbGljZSgpOwoJCQkJX2ZuQ2FsY3VsYXRlRW5kKCBvU2V0dGluZ3MgKTsKCQkJCV9mbkRyYXcoIG9TZXR0aW5ncyApOwoJCQl9CgkJCQoJCQkvKiBpZiB0aGVyZSBpcyBhbiBhamF4IHNvdXJjZSBsb2FkIHRoZSBkYXRhICovCgkJCWlmICggb1NldHRpbmdzLnNBamF4U291cmNlICE9PSBudWxsICYmICFvU2V0dGluZ3Mub0ZlYXR1cmVzLmJTZXJ2ZXJTaWRlICkKCQkJewoJCQkJdmFyIGFvRGF0YSA9IFtdOwoJCQkJX2ZuU2VydmVyUGFyYW1zKCBvU2V0dGluZ3MsIGFvRGF0YSApOwoJCQkJb1NldHRpbmdzLmZuU2VydmVyRGF0YS5jYWxsKCBvU2V0dGluZ3Mub0luc3RhbmNlLCBvU2V0dGluZ3Muc0FqYXhTb3VyY2UsIGFvRGF0YSwgZnVuY3Rpb24oanNvbikgewoJCQkJCXZhciBhRGF0YSA9IChvU2V0dGluZ3Muc0FqYXhEYXRhUHJvcCAhPT0gIiIpID8KCQkJCQkgCV9mbkdldE9iamVjdERhdGFGbiggb1NldHRpbmdzLnNBamF4RGF0YVByb3AgKShqc29uKSA6IGpzb247CgkJCgkJCQkJLyogR290IHRoZSBkYXRhIC0gYWRkIGl0IHRvIHRoZSB0YWJsZSAqLwoJCQkJCWZvciAoIGk9MCA7IGk8YURhdGEubGVuZ3RoIDsgaSsrICkKCQkJCQl7CgkJCQkJCV9mbkFkZERhdGEoIG9TZXR0aW5ncywgYURhdGFbaV0gKTsKCQkJCQl9CgkJCQkJCgkJCQkJLyogUmVzZXQgdGhlIGluaXQgZGlzcGxheSBmb3IgY29va2llIHNhdmluZy4gV2UndmUgYWxyZWFkeSBkb25lIGEgZmlsdGVyLCBhbmQKCQkJCQkgKiB0aGVyZWZvcmUgY2xlYXJlZCBpdCBiZWZvcmUuIFNvIHdlIG5lZWQgdG8gbWFrZSBpdCBhcHBlYXIgJ2ZyZXNoJwoJCQkJCSAqLwoJCQkJCW9TZXR0aW5ncy5pSW5pdERpc3BsYXlTdGFydCA9IGlBamF4U3RhcnQ7CgkJCQkJCgkJCQkJaWYgKCBvU2V0dGluZ3Mub0ZlYXR1cmVzLmJTb3J0ICkKCQkJCQl7CgkJCQkJCV9mblNvcnQoIG9TZXR0aW5ncyApOwoJCQkJCX0KCQkJCQllbHNlCgkJCQkJewoJCQkJCQlvU2V0dGluZ3MuYWlEaXNwbGF5ID0gb1NldHRpbmdzLmFpRGlzcGxheU1hc3Rlci5zbGljZSgpOwoJCQkJCQlfZm5DYWxjdWxhdGVFbmQoIG9TZXR0aW5ncyApOwoJCQkJCQlfZm5EcmF3KCBvU2V0dGluZ3MgKTsKCQkJCQl9CgkJCQkJCgkJCQkJX2ZuUHJvY2Vzc2luZ0Rpc3BsYXkoIG9TZXR0aW5ncywgZmFsc2UgKTsKCQkJCQlfZm5Jbml0Q29tcGxldGUoIG9TZXR0aW5ncywganNvbiApOwoJCQkJfSwgb1NldHRpbmdzICk7CgkJCQlyZXR1cm47CgkJCX0KCQkJCgkJCS8qIFNlcnZlci1zaWRlIHByb2Nlc3NpbmcgaW5pdGlhbGlzYXRpb24gY29tcGxldGUgaXMgZG9uZSBhdCB0aGUgZW5kIG9mIF9mbkRyYXcgKi8KCQkJaWYgKCAhb1NldHRpbmdzLm9GZWF0dXJlcy5iU2VydmVyU2lkZSApCgkJCXsKCQkJCV9mblByb2Nlc3NpbmdEaXNwbGF5KCBvU2V0dGluZ3MsIGZhbHNlICk7CgkJCQlfZm5Jbml0Q29tcGxldGUoIG9TZXR0aW5ncyApOwoJCQl9CgkJfQoJCQoJCQoJCS8qKgoJCSAqIERyYXcgdGhlIHRhYmxlIGZvciB0aGUgZmlyc3QgdGltZSwgYWRkaW5nIGFsbCByZXF1aXJlZCBmZWF0dXJlcwoJCSAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CgkJICogIEBwYXJhbSB7b2JqZWN0fSBbanNvbl0gSlNPTiBmcm9tIHRoZSBzZXJ2ZXIgdGhhdCBjb21wbGV0ZWQgdGhlIHRhYmxlLCBpZiB1c2luZyBBamF4IHNvdXJjZQoJCSAqICAgIHdpdGggY2xpZW50LXNpZGUgcHJvY2Vzc2luZyAob3B0aW9uYWwpCgkJICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQoJCSAqLwoJCWZ1bmN0aW9uIF9mbkluaXRDb21wbGV0ZSAoIG9TZXR0aW5ncywganNvbiApCgkJewoJCQlvU2V0dGluZ3MuX2JJbml0Q29tcGxldGUgPSB0cnVlOwoJCQlfZm5DYWxsYmFja0ZpcmUoIG9TZXR0aW5ncywgJ2FvSW5pdENvbXBsZXRlJywgJ2luaXQnLCBbb1NldHRpbmdzLCBqc29uXSApOwoJCX0KCQkKCQkKCQkvKioKCQkgKiBMYW5ndWFnZSBjb21wYXRpYmlsaXR5IC0gd2hlbiBjZXJ0YWluIG9wdGlvbnMgYXJlIGdpdmVuLCBhbmQgb3RoZXJzIGFyZW4ndCwgd2UKCQkgKiBuZWVkIHRvIGR1cGxpY2F0ZSB0aGUgdmFsdWVzIG92ZXIsIGluIG9yZGVyIHRvIHByb3ZpZGUgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkKCQkgKiB3aXRoIG9sZGVyIGxhbmd1YWdlIGZpbGVzLgoJCSAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CgkJICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQoJCSAqLwoJCWZ1bmN0aW9uIF9mbkxhbmd1YWdlQ29tcGF0KCBvTGFuZ3VhZ2UgKQoJCXsKCQkJdmFyIG9EZWZhdWx0cyA9IERhdGFUYWJsZS5kZWZhdWx0cy5vTGFuZ3VhZ2U7CgkJCgkJCS8qIEJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IC0gaWYgdGhlcmUgaXMgbm8gc0VtcHR5VGFibGUgZ2l2ZW4sIHRoZW4gdXNlIHRoZSBzYW1lIGFzCgkJCSAqIHNaZXJvUmVjb3JkcyAtIGFzc3VtaW5nIHRoYXQgaXMgZ2l2ZW4uCgkJCSAqLwoJCQlpZiAoICFvTGFuZ3VhZ2Uuc0VtcHR5VGFibGUgJiYgb0xhbmd1YWdlLnNaZXJvUmVjb3JkcyAmJgoJCQkJb0RlZmF1bHRzLnNFbXB0eVRhYmxlID09PSAiTm8gZGF0YSBhdmFpbGFibGUgaW4gdGFibGUiICkKCQkJewoJCQkJX2ZuTWFwKCBvTGFuZ3VhZ2UsIG9MYW5ndWFnZSwgJ3NaZXJvUmVjb3JkcycsICdzRW1wdHlUYWJsZScgKTsKCQkJfQoJCQoJCQkvKiBMaWtld2lzZSB3aXRoIGxvYWRpbmcgcmVjb3JkcyAqLwoJCQlpZiAoICFvTGFuZ3VhZ2Uuc0xvYWRpbmdSZWNvcmRzICYmIG9MYW5ndWFnZS5zWmVyb1JlY29yZHMgJiYKCQkJCW9EZWZhdWx0cy5zTG9hZGluZ1JlY29yZHMgPT09ICJMb2FkaW5nLi4uIiApCgkJCXsKCQkJCV9mbk1hcCggb0xhbmd1YWdlLCBvTGFuZ3VhZ2UsICdzWmVyb1JlY29yZHMnLCAnc0xvYWRpbmdSZWNvcmRzJyApOwoJCQl9CgkJfQoJCQoJCQoJCQoJCS8qKgoJCSAqIEdlbmVyYXRlIHRoZSBub2RlIHJlcXVpcmVkIGZvciB1c2VyIGRpc3BsYXkgbGVuZ3RoIGNoYW5naW5nCgkJICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCQkgKiAgQHJldHVybnMge25vZGV9IERpc3BsYXkgbGVuZ3RoIGZlYXR1cmUgbm9kZQoJCSAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKCQkgKi8KCQlmdW5jdGlvbiBfZm5GZWF0dXJlSHRtbExlbmd0aCAoIG9TZXR0aW5ncyApCgkJewoJCQlpZiAoIG9TZXR0aW5ncy5vU2Nyb2xsLmJJbmZpbml0ZSApCgkJCXsKCQkJCXJldHVybiBudWxsOwoJCQl9CgkJCQoJCQkvKiBUaGlzIGNhbiBiZSBvdmVycnVsZWQgYnkgbm90IHVzaW5nIHRoZSBfTUVOVV8gdmFyL21hY3JvIGluIHRoZSBsYW5ndWFnZSB2YXJpYWJsZSAqLwoJCQl2YXIgc05hbWUgPSAnbmFtZT0iJytvU2V0dGluZ3Muc1RhYmxlSWQrJ19sZW5ndGgiJzsKCQkJdmFyIHNTdGRNZW51ID0gJzxzZWxlY3Qgc2l6ZT0iMSIgJytzTmFtZSsnPic7CgkJCXZhciBpLCBpTGVuOwoJCQl2YXIgYUxlbmd0aE1lbnUgPSBvU2V0dGluZ3MuYUxlbmd0aE1lbnU7CgkJCQoJCQlpZiAoIGFMZW5ndGhNZW51Lmxlbmd0aCA9PSAyICYmIHR5cGVvZiBhTGVuZ3RoTWVudVswXSA9PT0gJ29iamVjdCcgJiYgCgkJCQkJdHlwZW9mIGFMZW5ndGhNZW51WzFdID09PSAnb2JqZWN0JyApCgkJCXsKCQkJCWZvciAoIGk9MCwgaUxlbj1hTGVuZ3RoTWVudVswXS5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCQkJewoJCQkJCXNTdGRNZW51ICs9ICc8b3B0aW9uIHZhbHVlPSInK2FMZW5ndGhNZW51WzBdW2ldKyciPicrYUxlbmd0aE1lbnVbMV1baV0rJzwvb3B0aW9uPic7CgkJCQl9CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQlmb3IgKCBpPTAsIGlMZW49YUxlbmd0aE1lbnUubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQkJCXsKCQkJCQlzU3RkTWVudSArPSAnPG9wdGlvbiB2YWx1ZT0iJythTGVuZ3RoTWVudVtpXSsnIj4nK2FMZW5ndGhNZW51W2ldKyc8L29wdGlvbj4nOwoJCQkJfQoJCQl9CgkJCXNTdGRNZW51ICs9ICc8L3NlbGVjdD4nOwoJCQkKCQkJdmFyIG5MZW5ndGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCAnZGl2JyApOwoJCQlpZiAoICFvU2V0dGluZ3MuYWFuRmVhdHVyZXMubCApCgkJCXsKCQkJCW5MZW5ndGguaWQgPSBvU2V0dGluZ3Muc1RhYmxlSWQrJ19sZW5ndGgnOwoJCQl9CgkJCW5MZW5ndGguY2xhc3NOYW1lID0gb1NldHRpbmdzLm9DbGFzc2VzLnNMZW5ndGg7CgkJCW5MZW5ndGguaW5uZXJIVE1MID0gJzxsYWJlbD4nK29TZXR0aW5ncy5vTGFuZ3VhZ2Uuc0xlbmd0aE1lbnUucmVwbGFjZSggJ19NRU5VXycsIHNTdGRNZW51ICkrJzwvbGFiZWw+JzsKCQkJCgkJCS8qCgkJCSAqIFNldCB0aGUgbGVuZ3RoIHRvIHRoZSBjdXJyZW50IGRpc3BsYXkgbGVuZ3RoIC0gdGhhbmtzIHRvIEFuZHJlYSBQYXZsb3ZpYyBmb3IgdGhpcyBmaXgsCgkJCSAqIGFuZCBTdGVmYW4gU2tvcG5payBmb3IgZml4aW5nIHRoZSBmaXghCgkJCSAqLwoJCQkkKCdzZWxlY3Qgb3B0aW9uW3ZhbHVlPSInK29TZXR0aW5ncy5faURpc3BsYXlMZW5ndGgrJyJdJywgbkxlbmd0aCkuYXR0cigic2VsZWN0ZWQiLCB0cnVlKTsKCQkJCgkJCSQoJ3NlbGVjdCcsIG5MZW5ndGgpLmJpbmQoICdjaGFuZ2UuRFQnLCBmdW5jdGlvbihlKSB7CgkJCQl2YXIgaVZhbCA9ICQodGhpcykudmFsKCk7CgkJCQkKCQkJCS8qIFVwZGF0ZSBhbGwgb3RoZXIgbGVuZ3RoIG9wdGlvbnMgZm9yIHRoZSBuZXcgZGlzcGxheSAqLwoJCQkJdmFyIG4gPSBvU2V0dGluZ3MuYWFuRmVhdHVyZXMubDsKCQkJCWZvciAoIGk9MCwgaUxlbj1uLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJCQl7CgkJCQkJaWYgKCBuW2ldICE9IHRoaXMucGFyZW50Tm9kZSApCgkJCQkJewoJCQkJCQkkKCdzZWxlY3QnLCBuW2ldKS52YWwoIGlWYWwgKTsKCQkJCQl9CgkJCQl9CgkJCQkKCQkJCS8qIFJlZHJhdyB0aGUgdGFibGUgKi8KCQkJCW9TZXR0aW5ncy5faURpc3BsYXlMZW5ndGggPSBwYXJzZUludChpVmFsLCAxMCk7CgkJCQlfZm5DYWxjdWxhdGVFbmQoIG9TZXR0aW5ncyApOwoJCQkJCgkJCQkvKiBJZiB3ZSBoYXZlIHNwYWNlIHRvIHNob3cgZXh0cmEgcm93cyAoYmFja2luZyB1cCBmcm9tIHRoZSBlbmQgcG9pbnQgLSB0aGVuIGRvIHNvICovCgkJCQlpZiAoIG9TZXR0aW5ncy5mbkRpc3BsYXlFbmQoKSA9PSBvU2V0dGluZ3MuZm5SZWNvcmRzRGlzcGxheSgpICkKCQkJCXsKCQkJCQlvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQgPSBvU2V0dGluZ3MuZm5EaXNwbGF5RW5kKCkgLSBvU2V0dGluZ3MuX2lEaXNwbGF5TGVuZ3RoOwoJCQkJCWlmICggb1NldHRpbmdzLl9pRGlzcGxheVN0YXJ0IDwgMCApCgkJCQkJewoJCQkJCQlvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQgPSAwOwoJCQkJCX0KCQkJCX0KCQkJCQoJCQkJaWYgKCBvU2V0dGluZ3MuX2lEaXNwbGF5TGVuZ3RoID09IC0xICkKCQkJCXsKCQkJCQlvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQgPSAwOwoJCQkJfQoJCQkJCgkJCQlfZm5EcmF3KCBvU2V0dGluZ3MgKTsKCQkJfSApOwoJCQoJCQoJCQkkKCdzZWxlY3QnLCBuTGVuZ3RoKS5hdHRyKCdhcmlhLWNvbnRyb2xzJywgb1NldHRpbmdzLnNUYWJsZUlkKTsKCQkJCgkJCXJldHVybiBuTGVuZ3RoOwoJCX0KCQkKCQkKCQkvKioKCQkgKiBSZWNhbGN1bGF0ZSB0aGUgZW5kIHBvaW50IGJhc2VkIG9uIHRoZSBzdGFydCBwb2ludAoJCSAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CgkJICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQoJCSAqLwoJCWZ1bmN0aW9uIF9mbkNhbGN1bGF0ZUVuZCggb1NldHRpbmdzICkKCQl7CgkJCWlmICggb1NldHRpbmdzLm9GZWF0dXJlcy5iUGFnaW5hdGUgPT09IGZhbHNlICkKCQkJewoJCQkJb1NldHRpbmdzLl9pRGlzcGxheUVuZCA9IG9TZXR0aW5ncy5haURpc3BsYXkubGVuZ3RoOwoJCQl9CgkJCWVsc2UKCQkJewoJCQkJLyogU2V0IHRoZSBlbmQgcG9pbnQgb2YgdGhlIGRpc3BsYXkgLSBiYXNlZCBvbiBob3cgbWFueSBlbGVtZW50cyB0aGVyZSBhcmUKCQkJCSAqIHN0aWxsIHRvIGRpc3BsYXkKCQkJCSAqLwoJCQkJaWYgKCBvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQgKyBvU2V0dGluZ3MuX2lEaXNwbGF5TGVuZ3RoID4gb1NldHRpbmdzLmFpRGlzcGxheS5sZW5ndGggfHwKCQkJCQkgICBvU2V0dGluZ3MuX2lEaXNwbGF5TGVuZ3RoID09IC0xICkKCQkJCXsKCQkJCQlvU2V0dGluZ3MuX2lEaXNwbGF5RW5kID0gb1NldHRpbmdzLmFpRGlzcGxheS5sZW5ndGg7CgkJCQl9CgkJCQllbHNlCgkJCQl7CgkJCQkJb1NldHRpbmdzLl9pRGlzcGxheUVuZCA9IG9TZXR0aW5ncy5faURpc3BsYXlTdGFydCArIG9TZXR0aW5ncy5faURpc3BsYXlMZW5ndGg7CgkJCQl9CgkJCX0KCQl9CgkJCgkJCgkJCgkJLyogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICoKCQkgKiBOb3RlIHRoYXQgbW9zdCBvZiB0aGUgcGFnaW5nIGxvZ2ljIGlzIGRvbmUgaW4gCgkJICogRGF0YVRhYmxlLmV4dC5vUGFnaW5hdGlvbgoJCSAqLwoJCQoJCS8qKgoJCSAqIEdlbmVyYXRlIHRoZSBub2RlIHJlcXVpcmVkIGZvciBkZWZhdWx0IHBhZ2luYXRpb24KCQkgKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAoJCSAqICBAcmV0dXJucyB7bm9kZX0gUGFnaW5hdGlvbiBmZWF0dXJlIG5vZGUKCQkgKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCgkJICovCgkJZnVuY3Rpb24gX2ZuRmVhdHVyZUh0bWxQYWdpbmF0ZSAoIG9TZXR0aW5ncyApCgkJewoJCQlpZiAoIG9TZXR0aW5ncy5vU2Nyb2xsLmJJbmZpbml0ZSApCgkJCXsKCQkJCXJldHVybiBudWxsOwoJCQl9CgkJCQoJCQl2YXIgblBhZ2luYXRlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggJ2RpdicgKTsKCQkJblBhZ2luYXRlLmNsYXNzTmFtZSA9IG9TZXR0aW5ncy5vQ2xhc3Nlcy5zUGFnaW5nK29TZXR0aW5ncy5zUGFnaW5hdGlvblR5cGU7CgkJCQoJCQlEYXRhVGFibGUuZXh0Lm9QYWdpbmF0aW9uWyBvU2V0dGluZ3Muc1BhZ2luYXRpb25UeXBlIF0uZm5Jbml0KCBvU2V0dGluZ3MsIG5QYWdpbmF0ZSwgCgkJCQlmdW5jdGlvbiggb1NldHRpbmdzICkgewoJCQkJCV9mbkNhbGN1bGF0ZUVuZCggb1NldHRpbmdzICk7CgkJCQkJX2ZuRHJhdyggb1NldHRpbmdzICk7CgkJCQl9CgkJCSk7CgkJCQoJCQkvKiBBZGQgYSBkcmF3IGNhbGxiYWNrIGZvciB0aGUgcGFnaW5hdGlvbiBvbiBmaXJzdCBpbnN0YW5jZSwgdG8gdXBkYXRlIHRoZSBwYWdpbmcgZGlzcGxheSAqLwoJCQlpZiAoICFvU2V0dGluZ3MuYWFuRmVhdHVyZXMucCApCgkJCXsKCQkJCW9TZXR0aW5ncy5hb0RyYXdDYWxsYmFjay5wdXNoKCB7CgkJCQkJImZuIjogZnVuY3Rpb24oIG9TZXR0aW5ncyApIHsKCQkJCQkJRGF0YVRhYmxlLmV4dC5vUGFnaW5hdGlvblsgb1NldHRpbmdzLnNQYWdpbmF0aW9uVHlwZSBdLmZuVXBkYXRlKCBvU2V0dGluZ3MsIGZ1bmN0aW9uKCBvU2V0dGluZ3MgKSB7CgkJCQkJCQlfZm5DYWxjdWxhdGVFbmQoIG9TZXR0aW5ncyApOwoJCQkJCQkJX2ZuRHJhdyggb1NldHRpbmdzICk7CgkJCQkJCX0gKTsKCQkJCQl9LAoJCQkJCSJzTmFtZSI6ICJwYWdpbmF0aW9uIgoJCQkJfSApOwoJCQl9CgkJCXJldHVybiBuUGFnaW5hdGU7CgkJfQoJCQoJCQoJCS8qKgoJCSAqIEFsdGVyIHRoZSBkaXNwbGF5IHNldHRpbmdzIHRvIGNoYW5nZSB0aGUgcGFnZQoJCSAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CgkJICogIEBwYXJhbSB7c3RyaW5nfGludH0gbUFjdGlvbiBQYWdpbmcgYWN0aW9uIHRvIHRha2U6ICJmaXJzdCIsICJwcmV2aW91cyIsICJuZXh0IiBvciAibGFzdCIKCQkgKiAgICBvciBwYWdlIG51bWJlciB0byBqdW1wIHRvIChpbnRlZ2VyKQoJCSAqICBAcmV0dXJucyB7Ym9vbH0gdHJ1ZSBwYWdlIGhhcyBjaGFuZ2VkLCBmYWxzZSAtIG5vIGNoYW5nZSAobm8gZWZmZWN0KSBlZyAnZmlyc3QnIG9uIHBhZ2UgMQoJCSAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKCQkgKi8KCQlmdW5jdGlvbiBfZm5QYWdlQ2hhbmdlICggb1NldHRpbmdzLCBtQWN0aW9uICkKCQl7CgkJCXZhciBpT2xkU3RhcnQgPSBvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQ7CgkJCQoJCQlpZiAoIHR5cGVvZiBtQWN0aW9uID09PSAibnVtYmVyIiApCgkJCXsKCQkJCW9TZXR0aW5ncy5faURpc3BsYXlTdGFydCA9IG1BY3Rpb24gKiBvU2V0dGluZ3MuX2lEaXNwbGF5TGVuZ3RoOwoJCQkJaWYgKCBvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQgPiBvU2V0dGluZ3MuZm5SZWNvcmRzRGlzcGxheSgpICkKCQkJCXsKCQkJCQlvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQgPSAwOwoJCQkJfQoJCQl9CgkJCWVsc2UgaWYgKCBtQWN0aW9uID09ICJmaXJzdCIgKQoJCQl7CgkJCQlvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQgPSAwOwoJCQl9CgkJCWVsc2UgaWYgKCBtQWN0aW9uID09ICJwcmV2aW91cyIgKQoJCQl7CgkJCQlvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQgPSBvU2V0dGluZ3MuX2lEaXNwbGF5TGVuZ3RoPj0wID8KCQkJCQlvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQgLSBvU2V0dGluZ3MuX2lEaXNwbGF5TGVuZ3RoIDoKCQkJCQkwOwoJCQkJCgkJCQkvKiBDb3JyZWN0IGZvciB1bmRlci1ydW4gKi8KCQkJCWlmICggb1NldHRpbmdzLl9pRGlzcGxheVN0YXJ0IDwgMCApCgkJCQl7CgkJCQkgIG9TZXR0aW5ncy5faURpc3BsYXlTdGFydCA9IDA7CgkJCQl9CgkJCX0KCQkJZWxzZSBpZiAoIG1BY3Rpb24gPT0gIm5leHQiICkKCQkJewoJCQkJaWYgKCBvU2V0dGluZ3MuX2lEaXNwbGF5TGVuZ3RoID49IDAgKQoJCQkJewoJCQkJCS8qIE1ha2Ugc3VyZSB3ZSBhcmUgbm90IG92ZXIgcnVubmluZyB0aGUgZGlzcGxheSBhcnJheSAqLwoJCQkJCWlmICggb1NldHRpbmdzLl9pRGlzcGxheVN0YXJ0ICsgb1NldHRpbmdzLl9pRGlzcGxheUxlbmd0aCA8IG9TZXR0aW5ncy5mblJlY29yZHNEaXNwbGF5KCkgKQoJCQkJCXsKCQkJCQkJb1NldHRpbmdzLl9pRGlzcGxheVN0YXJ0ICs9IG9TZXR0aW5ncy5faURpc3BsYXlMZW5ndGg7CgkJCQkJfQoJCQkJfQoJCQkJZWxzZQoJCQkJewoJCQkJCW9TZXR0aW5ncy5faURpc3BsYXlTdGFydCA9IDA7CgkJCQl9CgkJCX0KCQkJZWxzZSBpZiAoIG1BY3Rpb24gPT0gImxhc3QiICkKCQkJewoJCQkJaWYgKCBvU2V0dGluZ3MuX2lEaXNwbGF5TGVuZ3RoID49IDAgKQoJCQkJewoJCQkJCXZhciBpUGFnZXMgPSBwYXJzZUludCggKG9TZXR0aW5ncy5mblJlY29yZHNEaXNwbGF5KCktMSkgLyBvU2V0dGluZ3MuX2lEaXNwbGF5TGVuZ3RoLCAxMCApICsgMTsKCQkJCQlvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQgPSAoaVBhZ2VzLTEpICogb1NldHRpbmdzLl9pRGlzcGxheUxlbmd0aDsKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQlvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQgPSAwOwoJCQkJfQoJCQl9CgkJCWVsc2UKCQkJewoJCQkJX2ZuTG9nKCBvU2V0dGluZ3MsIDAsICJVbmtub3duIHBhZ2luZyBhY3Rpb246ICIrbUFjdGlvbiApOwoJCQl9CgkJCSQob1NldHRpbmdzLm9JbnN0YW5jZSkudHJpZ2dlcigncGFnZScsIG9TZXR0aW5ncyk7CgkJCQoJCQlyZXR1cm4gaU9sZFN0YXJ0ICE9IG9TZXR0aW5ncy5faURpc3BsYXlTdGFydDsKCQl9CgkJCgkJCgkJCgkJLyoqCgkJICogR2VuZXJhdGUgdGhlIG5vZGUgcmVxdWlyZWQgZm9yIHRoZSBwcm9jZXNzaW5nIG5vZGUKCQkgKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAoJCSAqICBAcmV0dXJucyB7bm9kZX0gUHJvY2Vzc2luZyBlbGVtZW50CgkJICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQoJCSAqLwoJCWZ1bmN0aW9uIF9mbkZlYXR1cmVIdG1sUHJvY2Vzc2luZyAoIG9TZXR0aW5ncyApCgkJewoJCQl2YXIgblByb2Nlc3NpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCAnZGl2JyApOwoJCQkKCQkJaWYgKCAhb1NldHRpbmdzLmFhbkZlYXR1cmVzLnIgKQoJCQl7CgkJCQluUHJvY2Vzc2luZy5pZCA9IG9TZXR0aW5ncy5zVGFibGVJZCsnX3Byb2Nlc3NpbmcnOwoJCQl9CgkJCW5Qcm9jZXNzaW5nLmlubmVySFRNTCA9IG9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc1Byb2Nlc3Npbmc7CgkJCW5Qcm9jZXNzaW5nLmNsYXNzTmFtZSA9IG9TZXR0aW5ncy5vQ2xhc3Nlcy5zUHJvY2Vzc2luZzsKCQkJb1NldHRpbmdzLm5UYWJsZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZSggblByb2Nlc3NpbmcsIG9TZXR0aW5ncy5uVGFibGUgKTsKCQkJCgkJCXJldHVybiBuUHJvY2Vzc2luZzsKCQl9CgkJCgkJCgkJLyoqCgkJICogRGlzcGxheSBvciBoaWRlIHRoZSBwcm9jZXNzaW5nIGluZGljYXRvcgoJCSAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CgkJICogIEBwYXJhbSB7Ym9vbH0gYlNob3cgU2hvdyB0aGUgcHJvY2Vzc2luZyBpbmRpY2F0b3IgKHRydWUpIG9yIG5vdCAoZmFsc2UpCgkJICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQoJCSAqLwoJCWZ1bmN0aW9uIF9mblByb2Nlc3NpbmdEaXNwbGF5ICggb1NldHRpbmdzLCBiU2hvdyApCgkJewoJCQlpZiAoIG9TZXR0aW5ncy5vRmVhdHVyZXMuYlByb2Nlc3NpbmcgKQoJCQl7CgkJCQl2YXIgYW4gPSBvU2V0dGluZ3MuYWFuRmVhdHVyZXMucjsKCQkJCWZvciAoIHZhciBpPTAsIGlMZW49YW4ubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQkJCXsKCQkJCQlhbltpXS5zdHlsZS52aXNpYmlsaXR5ID0gYlNob3cgPyAidmlzaWJsZSIgOiAiaGlkZGVuIjsKCQkJCX0KCQkJfQoJCQoJCQkkKG9TZXR0aW5ncy5vSW5zdGFuY2UpLnRyaWdnZXIoJ3Byb2Nlc3NpbmcnLCBbb1NldHRpbmdzLCBiU2hvd10pOwoJCX0KCQkKCQkKCQkKCQkvKioKCQkgKiBBZGQgYW55IGNvbnRyb2wgZWxlbWVudHMgZm9yIHRoZSB0YWJsZSAtIHNwZWNpZmljYWxseSBzY3JvbGxpbmcKCQkgKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAoJCSAqICBAcmV0dXJucyB7bm9kZX0gTm9kZSB0byBhZGQgdG8gdGhlIERPTQoJCSAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKCQkgKi8KCQlmdW5jdGlvbiBfZm5GZWF0dXJlSHRtbFRhYmxlICggb1NldHRpbmdzICkKCQl7CgkJCS8qIENoZWNrIGlmIHNjcm9sbGluZyBpcyBlbmFibGVkIG9yIG5vdCAtIGlmIG5vdCB0aGVuIGxlYXZlIHRoZSBET00gdW5hbHRlcmVkICovCgkJCWlmICggb1NldHRpbmdzLm9TY3JvbGwuc1ggPT09ICIiICYmIG9TZXR0aW5ncy5vU2Nyb2xsLnNZID09PSAiIiApCgkJCXsKCQkJCXJldHVybiBvU2V0dGluZ3MublRhYmxlOwoJCQl9CgkJCQoJCQkvKgoJCQkgKiBUaGUgSFRNTCBzdHJ1Y3R1cmUgdGhhdCB3ZSB3YW50IHRvIGdlbmVyYXRlIGluIHRoaXMgZnVuY3Rpb24gaXM6CgkJCSAqICBkaXYgLSBuU2Nyb2xsZXIKCQkJICogICAgZGl2IC0gblNjcm9sbEhlYWQKCQkJICogICAgICBkaXYgLSBuU2Nyb2xsSGVhZElubmVyCgkJCSAqICAgICAgICB0YWJsZSAtIG5TY3JvbGxIZWFkVGFibGUKCQkJICogICAgICAgICAgdGhlYWQgLSBuVGhlYWQKCQkJICogICAgZGl2IC0gblNjcm9sbEJvZHkKCQkJICogICAgICB0YWJsZSAtIG9TZXR0aW5ncy5uVGFibGUKCQkJICogICAgICAgIHRoZWFkIC0gblRoZWFkU2l6ZQoJCQkgKiAgICAgICAgdGJvZHkgLSBuVGJvZHkKCQkJICogICAgZGl2IC0gblNjcm9sbEZvb3QKCQkJICogICAgICBkaXYgLSBuU2Nyb2xsRm9vdElubmVyCgkJCSAqICAgICAgICB0YWJsZSAtIG5TY3JvbGxGb290VGFibGUKCQkJICogICAgICAgICAgdGZvb3QgLSBuVGZvb3QKCQkJICovCgkJCXZhcgoJCQkgCW5TY3JvbGxlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLAoJCQkgCW5TY3JvbGxIZWFkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksCgkJCSAJblNjcm9sbEhlYWRJbm5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLAoJCQkgCW5TY3JvbGxCb2R5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksCgkJCSAJblNjcm9sbEZvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSwKCQkJIAluU2Nyb2xsRm9vdElubmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksCgkJCSAJblNjcm9sbEhlYWRUYWJsZSA9IG9TZXR0aW5ncy5uVGFibGUuY2xvbmVOb2RlKGZhbHNlKSwKCQkJIAluU2Nyb2xsRm9vdFRhYmxlID0gb1NldHRpbmdzLm5UYWJsZS5jbG9uZU5vZGUoZmFsc2UpLAoJCQkJblRoZWFkID0gb1NldHRpbmdzLm5UYWJsZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgndGhlYWQnKVswXSwKCQkJIAluVGZvb3QgPSBvU2V0dGluZ3MublRhYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0Zm9vdCcpLmxlbmd0aCA9PT0gMCA/IG51bGwgOiAKCQkJCQlvU2V0dGluZ3MublRhYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0Zm9vdCcpWzBdLAoJCQkJb0NsYXNzZXMgPSBvU2V0dGluZ3Mub0NsYXNzZXM7CgkJCQoJCQluU2Nyb2xsSGVhZC5hcHBlbmRDaGlsZCggblNjcm9sbEhlYWRJbm5lciApOwoJCQluU2Nyb2xsRm9vdC5hcHBlbmRDaGlsZCggblNjcm9sbEZvb3RJbm5lciApOwoJCQluU2Nyb2xsQm9keS5hcHBlbmRDaGlsZCggb1NldHRpbmdzLm5UYWJsZSApOwoJCQluU2Nyb2xsZXIuYXBwZW5kQ2hpbGQoIG5TY3JvbGxIZWFkICk7CgkJCW5TY3JvbGxlci5hcHBlbmRDaGlsZCggblNjcm9sbEJvZHkgKTsKCQkJblNjcm9sbEhlYWRJbm5lci5hcHBlbmRDaGlsZCggblNjcm9sbEhlYWRUYWJsZSApOwoJCQluU2Nyb2xsSGVhZFRhYmxlLmFwcGVuZENoaWxkKCBuVGhlYWQgKTsKCQkJaWYgKCBuVGZvb3QgIT09IG51bGwgKQoJCQl7CgkJCQluU2Nyb2xsZXIuYXBwZW5kQ2hpbGQoIG5TY3JvbGxGb290ICk7CgkJCQluU2Nyb2xsRm9vdElubmVyLmFwcGVuZENoaWxkKCBuU2Nyb2xsRm9vdFRhYmxlICk7CgkJCQluU2Nyb2xsRm9vdFRhYmxlLmFwcGVuZENoaWxkKCBuVGZvb3QgKTsKCQkJfQoJCQkKCQkJblNjcm9sbGVyLmNsYXNzTmFtZSA9IG9DbGFzc2VzLnNTY3JvbGxXcmFwcGVyOwoJCQluU2Nyb2xsSGVhZC5jbGFzc05hbWUgPSBvQ2xhc3Nlcy5zU2Nyb2xsSGVhZDsKCQkJblNjcm9sbEhlYWRJbm5lci5jbGFzc05hbWUgPSBvQ2xhc3Nlcy5zU2Nyb2xsSGVhZElubmVyOwoJCQluU2Nyb2xsQm9keS5jbGFzc05hbWUgPSBvQ2xhc3Nlcy5zU2Nyb2xsQm9keTsKCQkJblNjcm9sbEZvb3QuY2xhc3NOYW1lID0gb0NsYXNzZXMuc1Njcm9sbEZvb3Q7CgkJCW5TY3JvbGxGb290SW5uZXIuY2xhc3NOYW1lID0gb0NsYXNzZXMuc1Njcm9sbEZvb3RJbm5lcjsKCQkJCgkJCWlmICggb1NldHRpbmdzLm9TY3JvbGwuYkF1dG9Dc3MgKQoJCQl7CgkJCQluU2Nyb2xsSGVhZC5zdHlsZS5vdmVyZmxvdyA9ICJoaWRkZW4iOwoJCQkJblNjcm9sbEhlYWQuc3R5bGUucG9zaXRpb24gPSAicmVsYXRpdmUiOwoJCQkJblNjcm9sbEZvb3Quc3R5bGUub3ZlcmZsb3cgPSAiaGlkZGVuIjsKCQkJCW5TY3JvbGxCb2R5LnN0eWxlLm92ZXJmbG93ID0gImF1dG8iOwoJCQl9CgkJCQoJCQluU2Nyb2xsSGVhZC5zdHlsZS5ib3JkZXIgPSAiMCI7CgkJCW5TY3JvbGxIZWFkLnN0eWxlLndpZHRoID0gIjEwMCUiOwoJCQluU2Nyb2xsRm9vdC5zdHlsZS5ib3JkZXIgPSAiMCI7CgkJCW5TY3JvbGxIZWFkSW5uZXIuc3R5bGUud2lkdGggPSBvU2V0dGluZ3Mub1Njcm9sbC5zWElubmVyICE9PSAiIiA/CgkJCQlvU2V0dGluZ3Mub1Njcm9sbC5zWElubmVyIDogIjEwMCUiOyAvKiB3aWxsIGJlIG92ZXJ3cml0dGVuICovCgkJCQoJCQkvKiBNb2RpZnkgYXR0cmlidXRlcyB0byByZXNwZWN0IHRoZSBjbG9uZXMgKi8KCQkJblNjcm9sbEhlYWRUYWJsZS5yZW1vdmVBdHRyaWJ1dGUoJ2lkJyk7CgkJCW5TY3JvbGxIZWFkVGFibGUuc3R5bGUubWFyZ2luTGVmdCA9ICIwIjsKCQkJb1NldHRpbmdzLm5UYWJsZS5zdHlsZS5tYXJnaW5MZWZ0ID0gIjAiOwoJCQlpZiAoIG5UZm9vdCAhPT0gbnVsbCApCgkJCXsKCQkJCW5TY3JvbGxGb290VGFibGUucmVtb3ZlQXR0cmlidXRlKCdpZCcpOwoJCQkJblNjcm9sbEZvb3RUYWJsZS5zdHlsZS5tYXJnaW5MZWZ0ID0gIjAiOwoJCQl9CgkJCQoJCQkvKiBNb3ZlIGNhcHRpb24gZWxlbWVudHMgZnJvbSB0aGUgYm9keSB0byB0aGUgaGVhZGVyLCBmb290ZXIgb3IgbGVhdmUgd2hlcmUgaXQgaXMKCQkJICogZGVwZW5kaW5nIG9uIHRoZSBjb25maWd1cmF0aW9uLiBOb3RlIHRoYXQgdGhlIERURCBzYXlzIHRoZXJlIGNhbiBiZSBvbmx5IG9uZSBjYXB0aW9uICovCgkJCXZhciBuQ2FwdGlvbiA9ICQob1NldHRpbmdzLm5UYWJsZSkuY2hpbGRyZW4oJ2NhcHRpb24nKTsKCQkJaWYgKCBuQ2FwdGlvbi5sZW5ndGggPiAwICkKCQkJewoJCQkJbkNhcHRpb24gPSBuQ2FwdGlvblswXTsKCQkJCWlmICggbkNhcHRpb24uX2NhcHRpb25TaWRlID09PSAidG9wIiApCgkJCQl7CgkJCQkJblNjcm9sbEhlYWRUYWJsZS5hcHBlbmRDaGlsZCggbkNhcHRpb24gKTsKCQkJCX0KCQkJCWVsc2UgaWYgKCBuQ2FwdGlvbi5fY2FwdGlvblNpZGUgPT09ICJib3R0b20iICYmIG5UZm9vdCApCgkJCQl7CgkJCQkJblNjcm9sbEZvb3RUYWJsZS5hcHBlbmRDaGlsZCggbkNhcHRpb24gKTsKCQkJCX0KCQkJfQoJCQkKCQkJLyoKCQkJICogU2l6aW5nCgkJCSAqLwoJCQkvKiBXaGVuIHgtc2Nyb2xsaW5nIGFkZCB0aGUgd2lkdGggYW5kIGEgc2Nyb2xsZXIgdG8gbW92ZSB0aGUgaGVhZGVyIHdpdGggdGhlIGJvZHkgKi8KCQkJaWYgKCBvU2V0dGluZ3Mub1Njcm9sbC5zWCAhPT0gIiIgKQoJCQl7CgkJCQluU2Nyb2xsSGVhZC5zdHlsZS53aWR0aCA9IF9mblN0cmluZ1RvQ3NzKCBvU2V0dGluZ3Mub1Njcm9sbC5zWCApOwoJCQkJblNjcm9sbEJvZHkuc3R5bGUud2lkdGggPSBfZm5TdHJpbmdUb0Nzcyggb1NldHRpbmdzLm9TY3JvbGwuc1ggKTsKCQkJCQoJCQkJaWYgKCBuVGZvb3QgIT09IG51bGwgKQoJCQkJewoJCQkJCW5TY3JvbGxGb290LnN0eWxlLndpZHRoID0gX2ZuU3RyaW5nVG9Dc3MoIG9TZXR0aW5ncy5vU2Nyb2xsLnNYICk7CQoJCQkJfQoJCQkJCgkJCQkvKiBXaGVuIHRoZSBib2R5IGlzIHNjcm9sbGVkLCB0aGVuIHdlIGFsc28gd2FudCB0byBzY3JvbGwgdGhlIGhlYWRlcnMgKi8KCQkJCSQoblNjcm9sbEJvZHkpLnNjcm9sbCggZnVuY3Rpb24gKGUpIHsKCQkJCQluU2Nyb2xsSGVhZC5zY3JvbGxMZWZ0ID0gdGhpcy5zY3JvbGxMZWZ0OwoJCQkJCQoJCQkJCWlmICggblRmb290ICE9PSBudWxsICkKCQkJCQl7CgkJCQkJCW5TY3JvbGxGb290LnNjcm9sbExlZnQgPSB0aGlzLnNjcm9sbExlZnQ7CgkJCQkJfQoJCQkJfSApOwoJCQl9CgkJCQoJCQkvKiBXaGVuIHlzY3JvbGxpbmcsIGFkZCB0aGUgaGVpZ2h0ICovCgkJCWlmICggb1NldHRpbmdzLm9TY3JvbGwuc1kgIT09ICIiICkKCQkJewoJCQkJblNjcm9sbEJvZHkuc3R5bGUuaGVpZ2h0ID0gX2ZuU3RyaW5nVG9Dc3MoIG9TZXR0aW5ncy5vU2Nyb2xsLnNZICk7CgkJCX0KCQkJCgkJCS8qIFJlZHJhdyAtIGFsaWduIGNvbHVtbnMgYWNyb3NzIHRoZSB0YWJsZXMgKi8KCQkJb1NldHRpbmdzLmFvRHJhd0NhbGxiYWNrLnB1c2goIHsKCQkJCSJmbiI6IF9mblNjcm9sbERyYXcsCgkJCQkic05hbWUiOiAic2Nyb2xsaW5nIgoJCQl9ICk7CgkJCQoJCQkvKiBJbmZpbml0ZSBzY3JvbGxpbmcgZXZlbnQgaGFuZGxlcnMgKi8KCQkJaWYgKCBvU2V0dGluZ3Mub1Njcm9sbC5iSW5maW5pdGUgKQoJCQl7CgkJCQkkKG5TY3JvbGxCb2R5KS5zY3JvbGwoIGZ1bmN0aW9uKCkgewoJCQkJCS8qIFVzZSBhIGJsb2NrZXIgdG8gc3RvcCBzY3JvbGxpbmcgZnJvbSBsb2FkaW5nIG1vcmUgZGF0YSB3aGlsZSBvdGhlciBkYXRhIGlzIHN0aWxsIGxvYWRpbmcgKi8KCQkJCQlpZiAoICFvU2V0dGluZ3MuYkRyYXdpbmcgJiYgJCh0aGlzKS5zY3JvbGxUb3AoKSAhPT0gMCApCgkJCQkJewoJCQkJCQkvKiBDaGVjayBpZiB3ZSBzaG91bGQgbG9hZCB0aGUgbmV4dCBkYXRhIHNldCAqLwoJCQkJCQlpZiAoICQodGhpcykuc2Nyb2xsVG9wKCkgKyAkKHRoaXMpLmhlaWdodCgpID4gCgkJCQkJCQkkKG9TZXR0aW5ncy5uVGFibGUpLmhlaWdodCgpIC0gb1NldHRpbmdzLm9TY3JvbGwuaUxvYWRHYXAgKQoJCQkJCQl7CgkJCQkJCQkvKiBPbmx5IGRvIHRoZSByZWRyYXcgaWYgd2UgaGF2ZSB0byAtIHdlIG1pZ2h0IGJlIGF0IHRoZSBlbmQgb2YgdGhlIGRhdGEgKi8KCQkJCQkJCWlmICggb1NldHRpbmdzLmZuRGlzcGxheUVuZCgpIDwgb1NldHRpbmdzLmZuUmVjb3Jkc0Rpc3BsYXkoKSApCgkJCQkJCQl7CgkJCQkJCQkJX2ZuUGFnZUNoYW5nZSggb1NldHRpbmdzLCAnbmV4dCcgKTsKCQkJCQkJCQlfZm5DYWxjdWxhdGVFbmQoIG9TZXR0aW5ncyApOwoJCQkJCQkJCV9mbkRyYXcoIG9TZXR0aW5ncyApOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfQoJCQkJfSApOwoJCQl9CgkJCQoJCQlvU2V0dGluZ3MublNjcm9sbEhlYWQgPSBuU2Nyb2xsSGVhZDsKCQkJb1NldHRpbmdzLm5TY3JvbGxGb290ID0gblNjcm9sbEZvb3Q7CgkJCQoJCQlyZXR1cm4gblNjcm9sbGVyOwoJCX0KCQkKCQkKCQkvKioKCQkgKiBVcGRhdGUgdGhlIHZhcmlvdXMgdGFibGVzIGZvciByZXNpemluZy4gSXQncyBhIGJpdCBvZiBhIHBpZyB0aGlzIGZ1bmN0aW9uLCBidXQKCQkgKiBiYXNpY2FsbHkgdGhlIGlkZWEgdG86CgkJICogICAxLiBSZS1jcmVhdGUgdGhlIHRhYmxlIGluc2lkZSB0aGUgc2Nyb2xsaW5nIGRpdgoJCSAqICAgMi4gVGFrZSBsaXZlIG1lYXN1cmVtZW50cyBmcm9tIHRoZSBET00KCQkgKiAgIDMuIEFwcGx5IHRoZSBtZWFzdXJlbWVudHMKCQkgKiAgIDQuIENsZWFuIHVwCgkJICogIEBwYXJhbSB7b2JqZWN0fSBvIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CgkJICogIEByZXR1cm5zIHtub2RlfSBOb2RlIHRvIGFkZCB0byB0aGUgRE9NCgkJICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQoJCSAqLwoJCWZ1bmN0aW9uIF9mblNjcm9sbERyYXcgKCBvICkKCQl7CgkJCXZhcgoJCQkJblNjcm9sbEhlYWRJbm5lciA9IG8ublNjcm9sbEhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2RpdicpWzBdLAoJCQkJblNjcm9sbEhlYWRUYWJsZSA9IG5TY3JvbGxIZWFkSW5uZXIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RhYmxlJylbMF0sCgkJCQluU2Nyb2xsQm9keSA9IG8ublRhYmxlLnBhcmVudE5vZGUsCgkJCQlpLCBpTGVuLCBqLCBqTGVuLCBhbkhlYWRUb1NpemUsIGFuSGVhZFNpemVycywgYW5Gb290U2l6ZXJzLCBhbkZvb3RUb1NpemUsIG9TdHlsZSwgaVZpcywKCQkJCW5UaGVhZFNpemUsIG5UZm9vdFNpemUsCgkJCQlpV2lkdGgsIGFBcHBsaWVkPVtdLCBpU2FuaXR5V2lkdGgsCgkJCQluU2Nyb2xsRm9vdElubmVyID0gKG8ublRGb290ICE9PSBudWxsKSA/IG8ublNjcm9sbEZvb3QuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2RpdicpWzBdIDogbnVsbCwKCQkJCW5TY3JvbGxGb290VGFibGUgPSAoby5uVEZvb3QgIT09IG51bGwpID8gblNjcm9sbEZvb3RJbm5lci5nZXRFbGVtZW50c0J5VGFnTmFtZSgndGFibGUnKVswXSA6IG51bGwsCgkJCQlpZTY3ID0gby5vQnJvd3Nlci5iU2Nyb2xsT3ZlcnNpemU7CgkJCQoJCQkvKgoJCQkgKiAxLiBSZS1jcmVhdGUgdGhlIHRhYmxlIGluc2lkZSB0aGUgc2Nyb2xsaW5nIGRpdgoJCQkgKi8KCQkJCgkJCS8qIFJlbW92ZSB0aGUgb2xkIG1pbmltaXNlZCB0aGVhZCBhbmQgdGZvb3QgZWxlbWVudHMgaW4gdGhlIGlubmVyIHRhYmxlICovCgkJCSQoby5uVGFibGUpLmNoaWxkcmVuKCd0aGVhZCwgdGZvb3QnKS5yZW1vdmUoKTsKCQkKCQkJLyogQ2xvbmUgdGhlIGN1cnJlbnQgaGVhZGVyIGFuZCBmb290ZXIgZWxlbWVudHMgYW5kIHRoZW4gcGxhY2UgaXQgaW50byB0aGUgaW5uZXIgdGFibGUgKi8KCQkJblRoZWFkU2l6ZSA9ICQoby5uVEhlYWQpLmNsb25lKClbMF07CgkJCW8ublRhYmxlLmluc2VydEJlZm9yZSggblRoZWFkU2l6ZSwgby5uVGFibGUuY2hpbGROb2Rlc1swXSApOwoJCQkKCQkJaWYgKCBvLm5URm9vdCAhPT0gbnVsbCApCgkJCXsKCQkJCW5UZm9vdFNpemUgPSAkKG8ublRGb290KS5jbG9uZSgpWzBdOwoJCQkJby5uVGFibGUuaW5zZXJ0QmVmb3JlKCBuVGZvb3RTaXplLCBvLm5UYWJsZS5jaGlsZE5vZGVzWzFdICk7CgkJCX0KCQkJCgkJCS8qCgkJCSAqIDIuIFRha2UgbGl2ZSBtZWFzdXJlbWVudHMgZnJvbSB0aGUgRE9NIC0gZG8gbm90IGFsdGVyIHRoZSBET00gaXRzZWxmIQoJCQkgKi8KCQkJCgkJCS8qIFJlbW92ZSBvbGQgc2l6aW5nIGFuZCBhcHBseSB0aGUgY2FsY3VsYXRlZCBjb2x1bW4gd2lkdGhzCgkJCSAqIEdldCB0aGUgdW5pcXVlIGNvbHVtbiBoZWFkZXJzIGluIHRoZSBuZXdseSBjcmVhdGVkIChjbG9uZWQpIGhlYWRlci4gV2Ugd2FudCB0byBhcHBseSB0aGUKCQkJICogY2FsY3VsYXRlZCBzaXplcyB0byB0aGlzIGhlYWRlcgoJCQkgKi8KCQkJaWYgKCBvLm9TY3JvbGwuc1ggPT09ICIiICkKCQkJewoJCQkJblNjcm9sbEJvZHkuc3R5bGUud2lkdGggPSAnMTAwJSc7CgkJCQluU2Nyb2xsSGVhZElubmVyLnBhcmVudE5vZGUuc3R5bGUud2lkdGggPSAnMTAwJSc7CgkJCX0KCQkJCgkJCXZhciBuVGhzID0gX2ZuR2V0VW5pcXVlVGhzKCBvLCBuVGhlYWRTaXplICk7CgkJCWZvciAoIGk9MCwgaUxlbj1uVGhzLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJCXsKCQkJCWlWaXMgPSBfZm5WaXNpYmxlVG9Db2x1bW5JbmRleCggbywgaSApOwoJCQkJblRoc1tpXS5zdHlsZS53aWR0aCA9IG8uYW9Db2x1bW5zW2lWaXNdLnNXaWR0aDsKCQkJfQoJCQkKCQkJaWYgKCBvLm5URm9vdCAhPT0gbnVsbCApCgkJCXsKCQkJCV9mbkFwcGx5VG9DaGlsZHJlbiggZnVuY3Rpb24obikgewoJCQkJCW4uc3R5bGUud2lkdGggPSAiIjsKCQkJCX0sIG5UZm9vdFNpemUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RyJykgKTsKCQkJfQoJCQoJCQkvLyBJZiBzY3JvbGwgY29sbGFwc2UgaXMgZW5hYmxlZCwgd2hlbiB3ZSBwdXQgdGhlIGhlYWRlcnMgYmFjayBpbnRvIHRoZSBib2R5IGZvciBzaXppbmcsIHdlCgkJCS8vIHdpbGwgZW5kIHVwIGZvcmNpbmcgdGhlIHNjcm9sbGJhciB0byBhcHBlYXIsIG1ha2luZyBvdXIgbWVhc3VyZW1lbnRzIHdyb25nIGZvciB3aGVuIHdlCgkJCS8vIHRoZW4gaGlkZSBpdCAoZW5kIG9mIHRoaXMgZnVuY3Rpb24pLCBzbyBhZGQgdGhlIGhlYWRlciBoZWlnaHQgdG8gdGhlIGJvZHkgc2Nyb2xsZXIuCgkJCWlmICggby5vU2Nyb2xsLmJDb2xsYXBzZSAmJiBvLm9TY3JvbGwuc1kgIT09ICIiICkKCQkJewoJCQkJblNjcm9sbEJvZHkuc3R5bGUuaGVpZ2h0ID0gKG5TY3JvbGxCb2R5Lm9mZnNldEhlaWdodCArIG8ublRIZWFkLm9mZnNldEhlaWdodCkrInB4IjsKCQkJfQoJCQkKCQkJLyogU2l6ZSB0aGUgdGFibGUgYXMgYSB3aG9sZSAqLwoJCQlpU2FuaXR5V2lkdGggPSAkKG8ublRhYmxlKS5vdXRlcldpZHRoKCk7CgkJCWlmICggby5vU2Nyb2xsLnNYID09PSAiIiApCgkJCXsKCQkJCS8qIE5vIHggc2Nyb2xsaW5nICovCgkJCQlvLm5UYWJsZS5zdHlsZS53aWR0aCA9ICIxMDAlIjsKCQkJCQoJCQkJLyogSSBrbm93IHRoaXMgaXMgcnViYmlzaCAtIGJ1dCBJRTcgd2lsbCBtYWtlIHRoZSB3aWR0aCBvZiB0aGUgdGFibGUgd2hlbiAxMDAlIGluY2x1ZGUKCQkJCSAqIHRoZSBzY3JvbGxiYXIgLSB3aGljaCBpcyBzaG91bGRuJ3QuIFdoZW4gdGhlcmUgaXMgYSBzY3JvbGxiYXIgd2UgbmVlZCB0byB0YWtlIHRoaXMKCQkJCSAqIGludG8gYWNjb3VudC4KCQkJCSAqLwoJCQkJaWYgKCBpZTY3ICYmICgkKCd0Ym9keScsIG5TY3JvbGxCb2R5KS5oZWlnaHQoKSA+IG5TY3JvbGxCb2R5Lm9mZnNldEhlaWdodCB8fCAKCQkJCQkkKG5TY3JvbGxCb2R5KS5jc3MoJ292ZXJmbG93LXknKSA9PSAic2Nyb2xsIikgICkKCQkJCXsKCQkJCQlvLm5UYWJsZS5zdHlsZS53aWR0aCA9IF9mblN0cmluZ1RvQ3NzKCAkKG8ublRhYmxlKS5vdXRlcldpZHRoKCkgLSBvLm9TY3JvbGwuaUJhcldpZHRoKTsKCQkJCX0KCQkJfQoJCQllbHNlCgkJCXsKCQkJCWlmICggby5vU2Nyb2xsLnNYSW5uZXIgIT09ICIiICkKCQkJCXsKCQkJCQkvKiB4IHNjcm9sbCBpbm5lciBoYXMgYmVlbiBnaXZlbiAtIHVzZSBpdCAqLwoJCQkJCW8ublRhYmxlLnN0eWxlLndpZHRoID0gX2ZuU3RyaW5nVG9Dc3Moby5vU2Nyb2xsLnNYSW5uZXIpOwoJCQkJfQoJCQkJZWxzZSBpZiAoIGlTYW5pdHlXaWR0aCA9PSAkKG5TY3JvbGxCb2R5KS53aWR0aCgpICYmCgkJCQkgICAkKG5TY3JvbGxCb2R5KS5oZWlnaHQoKSA8ICQoby5uVGFibGUpLmhlaWdodCgpICkKCQkJCXsKCQkJCQkvKiBUaGVyZSBpcyB5LXNjcm9sbGluZyAtIHRyeSB0byB0YWtlIGFjY291bnQgb2YgdGhlIHkgc2Nyb2xsIGJhciAqLwoJCQkJCW8ublRhYmxlLnN0eWxlLndpZHRoID0gX2ZuU3RyaW5nVG9Dc3MoIGlTYW5pdHlXaWR0aC1vLm9TY3JvbGwuaUJhcldpZHRoICk7CgkJCQkJaWYgKCAkKG8ublRhYmxlKS5vdXRlcldpZHRoKCkgPiBpU2FuaXR5V2lkdGgtby5vU2Nyb2xsLmlCYXJXaWR0aCApCgkJCQkJewoJCQkJCQkvKiBOb3QgcG9zc2libGUgdG8gdGFrZSBhY2NvdW50IG9mIGl0ICovCgkJCQkJCW8ublRhYmxlLnN0eWxlLndpZHRoID0gX2ZuU3RyaW5nVG9Dc3MoIGlTYW5pdHlXaWR0aCApOwoJCQkJCX0KCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQkvKiBBbGwgZWxzZSBmYWlscyAqLwoJCQkJCW8ublRhYmxlLnN0eWxlLndpZHRoID0gX2ZuU3RyaW5nVG9Dc3MoIGlTYW5pdHlXaWR0aCApOwoJCQkJfQoJCQl9CgkJCQoJCQkvKiBSZWNhbGN1bGF0ZSB0aGUgc2FuaXR5IHdpZHRoIC0gbm93IHRoYXQgd2UndmUgYXBwbGllZCB0aGUgcmVxdWlyZWQgd2lkdGgsIGJlZm9yZSBpdCB3YXMKCQkJICogYSB0ZW1wb3JhcnkgdmFyaWFibGUuIFRoaXMgaXMgcmVxdWlyZWQgYmVjYXVzZSB0aGUgY29sdW1uIHdpZHRoIGNhbGN1bGF0aW9uIGlzIGRvbmUKCQkJICogYmVmb3JlIHRoaXMgdGFibGUgRE9NIGlzIGNyZWF0ZWQuCgkJCSAqLwoJCQlpU2FuaXR5V2lkdGggPSAkKG8ublRhYmxlKS5vdXRlcldpZHRoKCk7CgkJCQoJCQkvKiBXZSB3YW50IHRoZSBoaWRkZW4gaGVhZGVyIHRvIGhhdmUgemVybyBoZWlnaHQsIHNvIHJlbW92ZSBwYWRkaW5nIGFuZCBib3JkZXJzLiBUaGVuCgkJCSAqIHNldCB0aGUgd2lkdGggYmFzZWQgb24gdGhlIHJlYWwgaGVhZGVycwoJCQkgKi8KCQkJYW5IZWFkVG9TaXplID0gby5uVEhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RyJyk7CgkJCWFuSGVhZFNpemVycyA9IG5UaGVhZFNpemUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RyJyk7CgkJCQoJCQlfZm5BcHBseVRvQ2hpbGRyZW4oIGZ1bmN0aW9uKG5TaXplciwgblRvU2l6ZSkgewoJCQkJb1N0eWxlID0gblNpemVyLnN0eWxlOwoJCQkJb1N0eWxlLnBhZGRpbmdUb3AgPSAiMCI7CgkJCQlvU3R5bGUucGFkZGluZ0JvdHRvbSA9ICIwIjsKCQkJCW9TdHlsZS5ib3JkZXJUb3BXaWR0aCA9ICIwIjsKCQkJCW9TdHlsZS5ib3JkZXJCb3R0b21XaWR0aCA9ICIwIjsKCQkJCW9TdHlsZS5oZWlnaHQgPSAwOwoJCQkJCgkJCQlpV2lkdGggPSAkKG5TaXplcikud2lkdGgoKTsKCQkJCW5Ub1NpemUuc3R5bGUud2lkdGggPSBfZm5TdHJpbmdUb0NzcyggaVdpZHRoICk7CgkJCQlhQXBwbGllZC5wdXNoKCBpV2lkdGggKTsKCQkJfSwgYW5IZWFkU2l6ZXJzLCBhbkhlYWRUb1NpemUgKTsKCQkJJChhbkhlYWRTaXplcnMpLmhlaWdodCgwKTsKCQkJCgkJCWlmICggby5uVEZvb3QgIT09IG51bGwgKQoJCQl7CgkJCQkvKiBDbG9uZSB0aGUgY3VycmVudCBmb290ZXIgYW5kIHRoZW4gcGxhY2UgaXQgaW50byB0aGUgYm9keSB0YWJsZSBhcyBhICJoaWRkZW4gaGVhZGVyIiAqLwoJCQkJYW5Gb290U2l6ZXJzID0gblRmb290U2l6ZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgndHInKTsKCQkJCWFuRm9vdFRvU2l6ZSA9IG8ublRGb290LmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0cicpOwoJCQkJCgkJCQlfZm5BcHBseVRvQ2hpbGRyZW4oIGZ1bmN0aW9uKG5TaXplciwgblRvU2l6ZSkgewoJCQkJCW9TdHlsZSA9IG5TaXplci5zdHlsZTsKCQkJCQlvU3R5bGUucGFkZGluZ1RvcCA9ICIwIjsKCQkJCQlvU3R5bGUucGFkZGluZ0JvdHRvbSA9ICIwIjsKCQkJCQlvU3R5bGUuYm9yZGVyVG9wV2lkdGggPSAiMCI7CgkJCQkJb1N0eWxlLmJvcmRlckJvdHRvbVdpZHRoID0gIjAiOwoJCQkJCW9TdHlsZS5oZWlnaHQgPSAwOwoJCQkJCQoJCQkJCWlXaWR0aCA9ICQoblNpemVyKS53aWR0aCgpOwoJCQkJCW5Ub1NpemUuc3R5bGUud2lkdGggPSBfZm5TdHJpbmdUb0NzcyggaVdpZHRoICk7CgkJCQkJYUFwcGxpZWQucHVzaCggaVdpZHRoICk7CgkJCQl9LCBhbkZvb3RTaXplcnMsIGFuRm9vdFRvU2l6ZSApOwoJCQkJJChhbkZvb3RTaXplcnMpLmhlaWdodCgwKTsKCQkJfQoJCQkKCQkJLyoKCQkJICogMy4gQXBwbHkgdGhlIG1lYXN1cmVtZW50cwoJCQkgKi8KCQkJCgkJCS8qICJIaWRlIiB0aGUgaGVhZGVyIGFuZCBmb290ZXIgdGhhdCB3ZSB1c2VkIGZvciB0aGUgc2l6aW5nLiBXZSB3YW50IHRvIGFsc28gZml4IHRoZWlyIHdpZHRoCgkJCSAqIHRvIHdoYXQgdGhleSBjdXJyZW50bHkgYXJlCgkJCSAqLwoJCQlfZm5BcHBseVRvQ2hpbGRyZW4oIGZ1bmN0aW9uKG5TaXplcikgewoJCQkJblNpemVyLmlubmVySFRNTCA9ICIiOwoJCQkJblNpemVyLnN0eWxlLndpZHRoID0gX2ZuU3RyaW5nVG9Dc3MoIGFBcHBsaWVkLnNoaWZ0KCkgKTsKCQkJfSwgYW5IZWFkU2l6ZXJzICk7CgkJCQoJCQlpZiAoIG8ublRGb290ICE9PSBudWxsICkKCQkJewoJCQkJX2ZuQXBwbHlUb0NoaWxkcmVuKCBmdW5jdGlvbihuU2l6ZXIpIHsKCQkJCQluU2l6ZXIuaW5uZXJIVE1MID0gIiI7CgkJCQkJblNpemVyLnN0eWxlLndpZHRoID0gX2ZuU3RyaW5nVG9Dc3MoIGFBcHBsaWVkLnNoaWZ0KCkgKTsKCQkJCX0sIGFuRm9vdFNpemVycyApOwoJCQl9CgkJCQoJCQkvKiBTYW5pdHkgY2hlY2sgdGhhdCB0aGUgdGFibGUgaXMgb2YgYSBzZW5zaWJsZSB3aWR0aC4gSWYgbm90IHRoZW4gd2UgYXJlIGdvaW5nIHRvIGdldAoJCQkgKiBtaXNhbGlnbm1lbnQgLSB0cnkgdG8gcHJldmVudCB0aGlzIGJ5IG5vdCBhbGxvd2luZyB0aGUgdGFibGUgdG8gc2hyaW5rIGJlbG93IGl0cyBtaW4gd2lkdGgKCQkJICovCgkJCWlmICggJChvLm5UYWJsZSkub3V0ZXJXaWR0aCgpIDwgaVNhbml0eVdpZHRoICkKCQkJewoJCQkJLyogVGhlIG1pbiB3aWR0aCBkZXBlbmRzIHVwb24gaWYgd2UgaGF2ZSBhIHZlcnRpY2FsIHNjcm9sbGJhciB2aXNpYmxlIG9yIG5vdCAqLwoJCQkJdmFyIGlDb3JyZWN0aW9uID0gKChuU2Nyb2xsQm9keS5zY3JvbGxIZWlnaHQgPiBuU2Nyb2xsQm9keS5vZmZzZXRIZWlnaHQgfHwgCgkJCQkJJChuU2Nyb2xsQm9keSkuY3NzKCdvdmVyZmxvdy15JykgPT0gInNjcm9sbCIpKSA/CgkJCQkJCWlTYW5pdHlXaWR0aCtvLm9TY3JvbGwuaUJhcldpZHRoIDogaVNhbml0eVdpZHRoOwoJCQkJCgkJCQkvKiBJRTYvNyBhcmUgYSBsYXcgdW50byB0aGVtc2VsdmVzLi4uICovCgkJCQlpZiAoIGllNjcgJiYgKG5TY3JvbGxCb2R5LnNjcm9sbEhlaWdodCA+IAoJCQkJCW5TY3JvbGxCb2R5Lm9mZnNldEhlaWdodCB8fCAkKG5TY3JvbGxCb2R5KS5jc3MoJ292ZXJmbG93LXknKSA9PSAic2Nyb2xsIikgICkKCQkJCXsKCQkJCQlvLm5UYWJsZS5zdHlsZS53aWR0aCA9IF9mblN0cmluZ1RvQ3NzKCBpQ29ycmVjdGlvbi1vLm9TY3JvbGwuaUJhcldpZHRoICk7CgkJCQl9CgkJCQkKCQkJCS8qIEFwcGx5IHRoZSBjYWxjdWxhdGVkIG1pbmltdW0gd2lkdGggdG8gdGhlIHRhYmxlIHdyYXBwZXJzICovCgkJCQluU2Nyb2xsQm9keS5zdHlsZS53aWR0aCA9IF9mblN0cmluZ1RvQ3NzKCBpQ29ycmVjdGlvbiApOwoJCQkJblNjcm9sbEhlYWRJbm5lci5wYXJlbnROb2RlLnN0eWxlLndpZHRoID0gX2ZuU3RyaW5nVG9Dc3MoIGlDb3JyZWN0aW9uICk7CgkJCQkKCQkJCWlmICggby5uVEZvb3QgIT09IG51bGwgKQoJCQkJewoJCQkJCW5TY3JvbGxGb290SW5uZXIucGFyZW50Tm9kZS5zdHlsZS53aWR0aCA9IF9mblN0cmluZ1RvQ3NzKCBpQ29ycmVjdGlvbiApOwoJCQkJfQoJCQkJCgkJCQkvKiBBbmQgZ2l2ZSB0aGUgdXNlciBhIHdhcm5pbmcgdGhhdCB3ZSd2ZSBzdG9wcGVkIHRoZSB0YWJsZSBnZXR0aW5nIHRvbyBzbWFsbCAqLwoJCQkJaWYgKCBvLm9TY3JvbGwuc1ggPT09ICIiICkKCQkJCXsKCQkJCQlfZm5Mb2coIG8sIDEsICJUaGUgdGFibGUgY2Fubm90IGZpdCBpbnRvIHRoZSBjdXJyZW50IGVsZW1lbnQgd2hpY2ggd2lsbCBjYXVzZSBjb2x1bW4iKwoJCQkJCQkiIG1pc2FsaWdubWVudC4gVGhlIHRhYmxlIGhhcyBiZWVuIGRyYXduIGF0IGl0cyBtaW5pbXVtIHBvc3NpYmxlIHdpZHRoLiIgKTsKCQkJCX0KCQkJCWVsc2UgaWYgKCBvLm9TY3JvbGwuc1hJbm5lciAhPT0gIiIgKQoJCQkJewoJCQkJCV9mbkxvZyggbywgMSwgIlRoZSB0YWJsZSBjYW5ub3QgZml0IGludG8gdGhlIGN1cnJlbnQgZWxlbWVudCB3aGljaCB3aWxsIGNhdXNlIGNvbHVtbiIrCgkJCQkJCSIgbWlzYWxpZ25tZW50LiBJbmNyZWFzZSB0aGUgc1Njcm9sbFhJbm5lciB2YWx1ZSBvciByZW1vdmUgaXQgdG8gYWxsb3cgYXV0b21hdGljIisKCQkJCQkJIiBjYWxjdWxhdGlvbiIgKTsKCQkJCX0KCQkJfQoJCQllbHNlCgkJCXsKCQkJCW5TY3JvbGxCb2R5LnN0eWxlLndpZHRoID0gX2ZuU3RyaW5nVG9Dc3MoICcxMDAlJyApOwoJCQkJblNjcm9sbEhlYWRJbm5lci5wYXJlbnROb2RlLnN0eWxlLndpZHRoID0gX2ZuU3RyaW5nVG9Dc3MoICcxMDAlJyApOwoJCQkJCgkJCQlpZiAoIG8ublRGb290ICE9PSBudWxsICkKCQkJCXsKCQkJCQluU2Nyb2xsRm9vdElubmVyLnBhcmVudE5vZGUuc3R5bGUud2lkdGggPSBfZm5TdHJpbmdUb0NzcyggJzEwMCUnICk7CgkJCQl9CgkJCX0KCQkJCgkJCQoJCQkvKgoJCQkgKiA0LiBDbGVhbiB1cAoJCQkgKi8KCQkJaWYgKCBvLm9TY3JvbGwuc1kgPT09ICIiICkKCQkJewoJCQkJLyogSUU3PCBwdXRzIGEgdmVydGljYWwgc2Nyb2xsYmFyIGluIHBsYWNlICh3aGVuIGl0IHNob3VsZG4ndCBiZSkgZHVlIHRvIHN1YnRyYWN0aW5nCgkJCQkgKiB0aGUgc2Nyb2xsYmFyIGhlaWdodCBmcm9tIHRoZSB2aXNpYmxlIGRpc3BsYXksIHJhdGhlciB0aGFuIGFkZGluZyBpdCBvbi4gV2UgbmVlZCB0bwoJCQkJICogc2V0IHRoZSBoZWlnaHQgaW4gb3JkZXIgdG8gc29ydCB0aGlzLiBEb24ndCB3YW50IHRvIGRvIGl0IGluIGFueSBvdGhlciBicm93c2Vycy4KCQkJCSAqLwoJCQkJaWYgKCBpZTY3ICkKCQkJCXsKCQkJCQluU2Nyb2xsQm9keS5zdHlsZS5oZWlnaHQgPSBfZm5TdHJpbmdUb0Nzcyggby5uVGFibGUub2Zmc2V0SGVpZ2h0K28ub1Njcm9sbC5pQmFyV2lkdGggKTsKCQkJCX0KCQkJfQoJCQkKCQkJaWYgKCBvLm9TY3JvbGwuc1kgIT09ICIiICYmIG8ub1Njcm9sbC5iQ29sbGFwc2UgKQoJCQl7CgkJCQluU2Nyb2xsQm9keS5zdHlsZS5oZWlnaHQgPSBfZm5TdHJpbmdUb0Nzcyggby5vU2Nyb2xsLnNZICk7CgkJCQkKCQkJCXZhciBpRXh0cmEgPSAoby5vU2Nyb2xsLnNYICE9PSAiIiAmJiBvLm5UYWJsZS5vZmZzZXRXaWR0aCA+IG5TY3JvbGxCb2R5Lm9mZnNldFdpZHRoKSA/CgkJCQkgCW8ub1Njcm9sbC5pQmFyV2lkdGggOiAwOwoJCQkJaWYgKCBvLm5UYWJsZS5vZmZzZXRIZWlnaHQgPCBuU2Nyb2xsQm9keS5vZmZzZXRIZWlnaHQgKQoJCQkJewoJCQkJCW5TY3JvbGxCb2R5LnN0eWxlLmhlaWdodCA9IF9mblN0cmluZ1RvQ3NzKCBvLm5UYWJsZS5vZmZzZXRIZWlnaHQraUV4dHJhICk7CgkJCQl9CgkJCX0KCQkJCgkJCS8qIEZpbmFsbHkgc2V0IHRoZSB3aWR0aCdzIG9mIHRoZSBoZWFkZXIgYW5kIGZvb3RlciB0YWJsZXMgKi8KCQkJdmFyIGlPdXRlcldpZHRoID0gJChvLm5UYWJsZSkub3V0ZXJXaWR0aCgpOwoJCQluU2Nyb2xsSGVhZFRhYmxlLnN0eWxlLndpZHRoID0gX2ZuU3RyaW5nVG9Dc3MoIGlPdXRlcldpZHRoICk7CgkJCW5TY3JvbGxIZWFkSW5uZXIuc3R5bGUud2lkdGggPSBfZm5TdHJpbmdUb0NzcyggaU91dGVyV2lkdGggKTsKCQkKCQkJLy8gRmlndXJlIG91dCBpZiB0aGVyZSBhcmUgc2Nyb2xsYmFyIHByZXNlbnQgLSBpZiBzbyB0aGVuIHdlIG5lZWQgYSB0aGUgaGVhZGVyIGFuZCBmb290ZXIgdG8KCQkJLy8gcHJvdmlkZSBhIGJpdCBtb3JlIHNwYWNlIHRvIGFsbG93ICJvdmVyZmxvdyIgc2Nyb2xsaW5nIChpLmUuIHBhc3QgdGhlIHNjcm9sbGJhcikKCQkJdmFyIGJTY3JvbGxpbmcgPSAkKG8ublRhYmxlKS5oZWlnaHQoKSA+IG5TY3JvbGxCb2R5LmNsaWVudEhlaWdodCB8fCAkKG5TY3JvbGxCb2R5KS5jc3MoJ292ZXJmbG93LXknKSA9PSAic2Nyb2xsIjsKCQkJblNjcm9sbEhlYWRJbm5lci5zdHlsZS5wYWRkaW5nUmlnaHQgPSBiU2Nyb2xsaW5nID8gby5vU2Nyb2xsLmlCYXJXaWR0aCsicHgiIDogIjBweCI7CgkJCQoJCQlpZiAoIG8ublRGb290ICE9PSBudWxsICkKCQkJewoJCQkJblNjcm9sbEZvb3RUYWJsZS5zdHlsZS53aWR0aCA9IF9mblN0cmluZ1RvQ3NzKCBpT3V0ZXJXaWR0aCApOwoJCQkJblNjcm9sbEZvb3RJbm5lci5zdHlsZS53aWR0aCA9IF9mblN0cmluZ1RvQ3NzKCBpT3V0ZXJXaWR0aCApOwoJCQkJblNjcm9sbEZvb3RJbm5lci5zdHlsZS5wYWRkaW5nUmlnaHQgPSBiU2Nyb2xsaW5nID8gby5vU2Nyb2xsLmlCYXJXaWR0aCsicHgiIDogIjBweCI7CgkJCX0KCQkKCQkJLyogQWRqdXN0IHRoZSBwb3NpdGlvbiBvZiB0aGUgaGVhZGVyIGluIGNhc2Ugd2UgbG9vc2UgdGhlIHktc2Nyb2xsYmFyICovCgkJCSQoblNjcm9sbEJvZHkpLnNjcm9sbCgpOwoJCQkKCQkJLyogSWYgc29ydGluZyBvciBmaWx0ZXJpbmcgaGFzIG9jY3VycmVkLCBqdW1wIHRoZSBzY3JvbGxpbmcgYmFjayB0byB0aGUgdG9wICovCgkJCWlmICggby5iU29ydGVkIHx8IG8uYkZpbHRlcmVkICkKCQkJewoJCQkJblNjcm9sbEJvZHkuc2Nyb2xsVG9wID0gMDsKCQkJfQoJCX0KCQkKCQkKCQkvKioKCQkgKiBBcHBseSBhIGdpdmVuIGZ1bmN0aW9uIHRvIHRoZSBkaXNwbGF5IGNoaWxkIG5vZGVzIG9mIGFuIGVsZW1lbnQgYXJyYXkgKHR5cGljYWxseQoJCSAqIFREIGNoaWxkcmVuIG9mIFRSIHJvd3MKCQkgKiAgQHBhcmFtIHtmdW5jdGlvbn0gZm4gTWV0aG9kIHRvIGFwcGx5IHRvIHRoZSBvYmplY3RzCgkJICogIEBwYXJhbSBhcnJheSB7bm9kZXN9IGFuMSBMaXN0IG9mIGVsZW1lbnRzIHRvIGxvb2sgdGhyb3VnaCBmb3IgZGlzcGxheSBjaGlsZHJlbgoJCSAqICBAcGFyYW0gYXJyYXkge25vZGVzfSBhbjIgQW5vdGhlciBsaXN0IChpZGVudGljYWwgc3RydWN0dXJlIHRvIHRoZSBmaXJzdCkgLSBvcHRpb25hbAoJCSAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKCQkgKi8KCQlmdW5jdGlvbiBfZm5BcHBseVRvQ2hpbGRyZW4oIGZuLCBhbjEsIGFuMiApCgkJewoJCQlmb3IgKCB2YXIgaT0wLCBpTGVuPWFuMS5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCQl7CgkJCQlmb3IgKCB2YXIgaj0wLCBqTGVuPWFuMVtpXS5jaGlsZE5vZGVzLmxlbmd0aCA7IGo8akxlbiA7IGorKyApCgkJCQl7CgkJCQkJaWYgKCBhbjFbaV0uY2hpbGROb2Rlc1tqXS5ub2RlVHlwZSA9PSAxICkKCQkJCQl7CgkJCQkJCWlmICggYW4yICkKCQkJCQkJewoJCQkJCQkJZm4oIGFuMVtpXS5jaGlsZE5vZGVzW2pdLCBhbjJbaV0uY2hpbGROb2Rlc1tqXSApOwoJCQkJCQl9CgkJCQkJCWVsc2UKCQkJCQkJewoJCQkJCQkJZm4oIGFuMVtpXS5jaGlsZE5vZGVzW2pdICk7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgkJCgkJCgkJCgkJLyoqCgkJICogQ29udmVydCBhIENTUyB1bml0IHdpZHRoIHRvIHBpeGVscyAoZS5nLiAyZW0pCgkJICogIEBwYXJhbSB7c3RyaW5nfSBzV2lkdGggd2lkdGggdG8gYmUgY29udmVydGVkCgkJICogIEBwYXJhbSB7bm9kZX0gblBhcmVudCBwYXJlbnQgdG8gZ2V0IHRoZSB3aXRoIGZvciAocmVxdWlyZWQgZm9yIHJlbGF0aXZlIHdpZHRocykgLSBvcHRpb25hbAoJCSAqICBAcmV0dXJucyB7aW50fSBpV2lkdGggd2lkdGggaW4gcGl4ZWxzCgkJICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQoJCSAqLwoJCWZ1bmN0aW9uIF9mbkNvbnZlcnRUb1dpZHRoICggc1dpZHRoLCBuUGFyZW50ICkKCQl7CgkJCWlmICggIXNXaWR0aCB8fCBzV2lkdGggPT09IG51bGwgfHwgc1dpZHRoID09PSAnJyApCgkJCXsKCQkJCXJldHVybiAwOwoJCQl9CgkJCQoJCQlpZiAoICFuUGFyZW50ICkKCQkJewoJCQkJblBhcmVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5JylbMF07CgkJCX0KCQkJCgkJCXZhciBpV2lkdGg7CgkJCXZhciBuVG1wID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggImRpdiIgKTsKCQkJblRtcC5zdHlsZS53aWR0aCA9IF9mblN0cmluZ1RvQ3NzKCBzV2lkdGggKTsKCQkJCgkJCW5QYXJlbnQuYXBwZW5kQ2hpbGQoIG5UbXAgKTsKCQkJaVdpZHRoID0gblRtcC5vZmZzZXRXaWR0aDsKCQkJblBhcmVudC5yZW1vdmVDaGlsZCggblRtcCApOwoJCQkKCQkJcmV0dXJuICggaVdpZHRoICk7CgkJfQoJCQoJCQoJCS8qKgoJCSAqIENhbGN1bGF0ZSB0aGUgd2lkdGggb2YgY29sdW1ucyBmb3IgdGhlIHRhYmxlCgkJICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCQkgKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCgkJICovCgkJZnVuY3Rpb24gX2ZuQ2FsY3VsYXRlQ29sdW1uV2lkdGhzICggb1NldHRpbmdzICkKCQl7CgkJCXZhciBpVGFibGVXaWR0aCA9IG9TZXR0aW5ncy5uVGFibGUub2Zmc2V0V2lkdGg7CgkJCXZhciBpVXNlcklucHV0cyA9IDA7CgkJCXZhciBpVG1wV2lkdGg7CgkJCXZhciBpVmlzaWJsZUNvbHVtbnMgPSAwOwoJCQl2YXIgaUNvbHVtcyA9IG9TZXR0aW5ncy5hb0NvbHVtbnMubGVuZ3RoOwoJCQl2YXIgaSwgaUluZGV4LCBpQ29ycmVjdG9yLCBpV2lkdGg7CgkJCXZhciBvSGVhZGVycyA9ICQoJ3RoJywgb1NldHRpbmdzLm5USGVhZCk7CgkJCXZhciB3aWR0aEF0dHIgPSBvU2V0dGluZ3MublRhYmxlLmdldEF0dHJpYnV0ZSgnd2lkdGgnKTsKCQkJCgkJCS8qIENvbnZlcnQgYW55IHVzZXIgaW5wdXQgc2l6ZXMgaW50byBwaXhlbCBzaXplcyAqLwoJCQlmb3IgKCBpPTAgOyBpPGlDb2x1bXMgOyBpKysgKQoJCQl7CgkJCQlpZiAoIG9TZXR0aW5ncy5hb0NvbHVtbnNbaV0uYlZpc2libGUgKQoJCQkJewoJCQkJCWlWaXNpYmxlQ29sdW1ucysrOwoJCQkJCQoJCQkJCWlmICggb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5zV2lkdGggIT09IG51bGwgKQoJCQkJCXsKCQkJCQkJaVRtcFdpZHRoID0gX2ZuQ29udmVydFRvV2lkdGgoIG9TZXR0aW5ncy5hb0NvbHVtbnNbaV0uc1dpZHRoT3JpZywgCgkJCQkJCQlvU2V0dGluZ3MublRhYmxlLnBhcmVudE5vZGUgKTsKCQkJCQkJaWYgKCBpVG1wV2lkdGggIT09IG51bGwgKQoJCQkJCQl7CgkJCQkJCQlvU2V0dGluZ3MuYW9Db2x1bW5zW2ldLnNXaWR0aCA9IF9mblN0cmluZ1RvQ3NzKCBpVG1wV2lkdGggKTsKCQkJCQkJfQoJCQkJCQkJCgkJCQkJCWlVc2VySW5wdXRzKys7CgkJCQkJfQoJCQkJfQoJCQl9CgkJCQoJCQkvKiBJZiB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgaW4gdGhlIERPTSBlcXVhbHMgdGhlIG51bWJlciB0aGF0IHdlIGhhdmUgdG8gcHJvY2VzcyBpbiAKCQkJICogRGF0YVRhYmxlcywgdGhlbiB3ZSBjYW4gdXNlIHRoZSBvZmZzZXRzIHRoYXQgYXJlIGNyZWF0ZWQgYnkgdGhlIHdlYi1icm93c2VyLiBObyBjdXN0b20gCgkJCSAqIHNpemVzIGNhbiBiZSBzZXQgaW4gb3JkZXIgZm9yIHRoaXMgdG8gaGFwcGVuLCBub3Igc2Nyb2xsaW5nIHVzZWQKCQkJICovCgkJCWlmICggaUNvbHVtcyA9PSBvSGVhZGVycy5sZW5ndGggJiYgaVVzZXJJbnB1dHMgPT09IDAgJiYgaVZpc2libGVDb2x1bW5zID09IGlDb2x1bXMgJiYKCQkJCW9TZXR0aW5ncy5vU2Nyb2xsLnNYID09PSAiIiAmJiBvU2V0dGluZ3Mub1Njcm9sbC5zWSA9PT0gIiIgKQoJCQl7CgkJCQlmb3IgKCBpPTAgOyBpPG9TZXR0aW5ncy5hb0NvbHVtbnMubGVuZ3RoIDsgaSsrICkKCQkJCXsKCQkJCQlpVG1wV2lkdGggPSAkKG9IZWFkZXJzW2ldKS53aWR0aCgpOwoJCQkJCWlmICggaVRtcFdpZHRoICE9PSBudWxsICkKCQkJCQl7CgkJCQkJCW9TZXR0aW5ncy5hb0NvbHVtbnNbaV0uc1dpZHRoID0gX2ZuU3RyaW5nVG9Dc3MoIGlUbXBXaWR0aCApOwoJCQkJCX0KCQkJCX0KCQkJfQoJCQllbHNlCgkJCXsKCQkJCS8qIE90aGVyd2lzZSB3ZSBhcmUgZ29pbmcgdG8gaGF2ZSB0byBkbyBzb21lIGNhbGN1bGF0aW9ucyB0byBnZXQgdGhlIHdpZHRoIG9mIGVhY2ggY29sdW1uLgoJCQkJICogQ29uc3RydWN0IGEgMSByb3cgdGFibGUgd2l0aCB0aGUgd2lkZXN0IG5vZGUgaW4gdGhlIGRhdGEsIGFuZCBhbnkgdXNlciBkZWZpbmVkIHdpZHRocywKCQkJCSAqIHRoZW4gaW5zZXJ0IGl0IGludG8gdGhlIERPTSBhbmQgYWxsb3cgdGhlIGJyb3dzZXIgdG8gZG8gYWxsIHRoZSBoYXJkIHdvcmsgb2YKCQkJCSAqIGNhbGN1bGF0aW5nIHRhYmxlIHdpZHRocy4KCQkJCSAqLwoJCQkJdmFyCgkJCQkJbkNhbGNUbXAgPSBvU2V0dGluZ3MublRhYmxlLmNsb25lTm9kZSggZmFsc2UgKSwKCQkJCQluVGhlYWRDbG9uZSA9IG9TZXR0aW5ncy5uVEhlYWQuY2xvbmVOb2RlKHRydWUpLAoJCQkJCW5Cb2R5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggJ3Rib2R5JyApLAoJCQkJCW5UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICd0cicgKSwKCQkJCQluRGl2U2l6aW5nOwoJCQkJCgkJCQluQ2FsY1RtcC5yZW1vdmVBdHRyaWJ1dGUoICJpZCIgKTsKCQkJCW5DYWxjVG1wLmFwcGVuZENoaWxkKCBuVGhlYWRDbG9uZSApOwoJCQkJaWYgKCBvU2V0dGluZ3MublRGb290ICE9PSBudWxsICkKCQkJCXsKCQkJCQluQ2FsY1RtcC5hcHBlbmRDaGlsZCggb1NldHRpbmdzLm5URm9vdC5jbG9uZU5vZGUodHJ1ZSkgKTsKCQkJCQlfZm5BcHBseVRvQ2hpbGRyZW4oIGZ1bmN0aW9uKG4pIHsKCQkJCQkJbi5zdHlsZS53aWR0aCA9ICIiOwoJCQkJCX0sIG5DYWxjVG1wLmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0cicpICk7CgkJCQl9CgkJCQkKCQkJCW5DYWxjVG1wLmFwcGVuZENoaWxkKCBuQm9keSApOwoJCQkJbkJvZHkuYXBwZW5kQ2hpbGQoIG5UciApOwoJCQkJCgkJCQkvKiBSZW1vdmUgYW55IHNpemluZyB0aGF0IHdhcyBwcmV2aW91c2x5IGFwcGxpZWQgYnkgdGhlIHN0eWxlcyAqLwoJCQkJdmFyIGpxQ29sU2l6aW5nID0gJCgndGhlYWQgdGgnLCBuQ2FsY1RtcCk7CgkJCQlpZiAoIGpxQ29sU2l6aW5nLmxlbmd0aCA9PT0gMCApCgkJCQl7CgkJCQkJanFDb2xTaXppbmcgPSAkKCd0Ym9keSB0cjplcSgwKT50ZCcsIG5DYWxjVG1wKTsKCQkJCX0KCQkKCQkJCS8qIEFwcGx5IGN1c3RvbSBzaXppbmcgdG8gdGhlIGNsb25lZCBoZWFkZXIgKi8KCQkJCXZhciBuVGhzID0gX2ZuR2V0VW5pcXVlVGhzKCBvU2V0dGluZ3MsIG5UaGVhZENsb25lICk7CgkJCQlpQ29ycmVjdG9yID0gMDsKCQkJCWZvciAoIGk9MCA7IGk8aUNvbHVtcyA7IGkrKyApCgkJCQl7CgkJCQkJdmFyIG9Db2x1bW4gPSBvU2V0dGluZ3MuYW9Db2x1bW5zW2ldOwoJCQkJCWlmICggb0NvbHVtbi5iVmlzaWJsZSAmJiBvQ29sdW1uLnNXaWR0aE9yaWcgIT09IG51bGwgJiYgb0NvbHVtbi5zV2lkdGhPcmlnICE9PSAiIiApCgkJCQkJewoJCQkJCQluVGhzW2ktaUNvcnJlY3Rvcl0uc3R5bGUud2lkdGggPSBfZm5TdHJpbmdUb0Nzcyggb0NvbHVtbi5zV2lkdGhPcmlnICk7CgkJCQkJfQoJCQkJCWVsc2UgaWYgKCBvQ29sdW1uLmJWaXNpYmxlICkKCQkJCQl7CgkJCQkJCW5UaHNbaS1pQ29ycmVjdG9yXS5zdHlsZS53aWR0aCA9ICIiOwoJCQkJCX0KCQkJCQllbHNlCgkJCQkJewoJCQkJCQlpQ29ycmVjdG9yKys7CgkJCQkJfQoJCQkJfQoJCQoJCQkJLyogRmluZCB0aGUgYmlnZ2VzdCB0ZCBmb3IgZWFjaCBjb2x1bW4gYW5kIHB1dCBpdCBpbnRvIHRoZSB0YWJsZSAqLwoJCQkJZm9yICggaT0wIDsgaTxpQ29sdW1zIDsgaSsrICkKCQkJCXsKCQkJCQlpZiAoIG9TZXR0aW5ncy5hb0NvbHVtbnNbaV0uYlZpc2libGUgKQoJCQkJCXsKCQkJCQkJdmFyIG5UZCA9IF9mbkdldFdpZGVzdE5vZGUoIG9TZXR0aW5ncywgaSApOwoJCQkJCQlpZiAoIG5UZCAhPT0gbnVsbCApCgkJCQkJCXsKCQkJCQkJCW5UZCA9IG5UZC5jbG9uZU5vZGUodHJ1ZSk7CgkJCQkJCQlpZiAoIG9TZXR0aW5ncy5hb0NvbHVtbnNbaV0uc0NvbnRlbnRQYWRkaW5nICE9PSAiIiApCgkJCQkJCQl7CgkJCQkJCQkJblRkLmlubmVySFRNTCArPSBvU2V0dGluZ3MuYW9Db2x1bW5zW2ldLnNDb250ZW50UGFkZGluZzsKCQkJCQkJCX0KCQkJCQkJCW5Uci5hcHBlbmRDaGlsZCggblRkICk7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCQkKCQkJCS8qIEJ1aWxkIHRoZSB0YWJsZSBhbmQgJ2Rpc3BsYXknIGl0ICovCgkJCQl2YXIgbldyYXBwZXIgPSBvU2V0dGluZ3MublRhYmxlLnBhcmVudE5vZGU7CgkJCQluV3JhcHBlci5hcHBlbmRDaGlsZCggbkNhbGNUbXAgKTsKCQkJCQoJCQkJLyogV2hlbiBzY3JvbGxpbmcgKFggb3IgWSkgd2Ugd2FudCB0byBzZXQgdGhlIHdpZHRoIG9mIHRoZSB0YWJsZSBhcyBhcHByb3ByaWF0ZS4gSG93ZXZlciwKCQkJCSAqIHdoZW4gbm90IHNjcm9sbGluZyBsZWF2ZSB0aGUgdGFibGUgd2lkdGggYXMgaXQgaXMuIFRoaXMgcmVzdWx0cyBpbiBzbGlnaHRseSBkaWZmZXJlbnQsCgkJCQkgKiBidXQgSSB0aGluayBjb3JyZWN0IGJlaGF2aW91cgoJCQkJICovCgkJCQlpZiAoIG9TZXR0aW5ncy5vU2Nyb2xsLnNYICE9PSAiIiAmJiBvU2V0dGluZ3Mub1Njcm9sbC5zWElubmVyICE9PSAiIiApCgkJCQl7CgkJCQkJbkNhbGNUbXAuc3R5bGUud2lkdGggPSBfZm5TdHJpbmdUb0NzcyhvU2V0dGluZ3Mub1Njcm9sbC5zWElubmVyKTsKCQkJCX0KCQkJCWVsc2UgaWYgKCBvU2V0dGluZ3Mub1Njcm9sbC5zWCAhPT0gIiIgKQoJCQkJewoJCQkJCW5DYWxjVG1wLnN0eWxlLndpZHRoID0gIiI7CgkJCQkJaWYgKCAkKG5DYWxjVG1wKS53aWR0aCgpIDwgbldyYXBwZXIub2Zmc2V0V2lkdGggKQoJCQkJCXsKCQkJCQkJbkNhbGNUbXAuc3R5bGUud2lkdGggPSBfZm5TdHJpbmdUb0NzcyggbldyYXBwZXIub2Zmc2V0V2lkdGggKTsKCQkJCQl9CgkJCQl9CgkJCQllbHNlIGlmICggb1NldHRpbmdzLm9TY3JvbGwuc1kgIT09ICIiICkKCQkJCXsKCQkJCQluQ2FsY1RtcC5zdHlsZS53aWR0aCA9IF9mblN0cmluZ1RvQ3NzKCBuV3JhcHBlci5vZmZzZXRXaWR0aCApOwoJCQkJfQoJCQkJZWxzZSBpZiAoIHdpZHRoQXR0ciApCgkJCQl7CgkJCQkJbkNhbGNUbXAuc3R5bGUud2lkdGggPSBfZm5TdHJpbmdUb0Nzcyggd2lkdGhBdHRyICk7CgkJCQl9CgkJCQluQ2FsY1RtcC5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CgkJCQkKCQkJCS8qIFNjcm9sbGluZyBjb25zaWRlcmF0aW9ucyAqLwoJCQkJX2ZuU2Nyb2xsaW5nV2lkdGhBZGp1c3QoIG9TZXR0aW5ncywgbkNhbGNUbXAgKTsKCQkJCQoJCQkJLyogUmVhZCB0aGUgd2lkdGgncyBjYWxjdWxhdGVkIGJ5IHRoZSBicm93c2VyIGFuZCBzdG9yZSB0aGVtIGZvciB1c2UgYnkgdGhlIGNhbGxlci4gV2UKCQkJCSAqIGZpcnN0IG9mIGFsbCB0cnkgdG8gdXNlIHRoZSBlbGVtZW50cyBpbiB0aGUgYm9keSwgYnV0IGl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlcmUgYXJlCgkJCQkgKiBubyBlbGVtZW50cyB0aGVyZSwgdW5kZXIgd2hpY2ggY2lyY3Vtc3RhbmNlcyB3ZSB1c2UgdGhlIGhlYWRlciBlbGVtZW50cwoJCQkJICovCgkJCQl2YXIgb05vZGVzID0gJCgidGJvZHkgdHI6ZXEoMCkiLCBuQ2FsY1RtcCkuY2hpbGRyZW4oKTsKCQkJCWlmICggb05vZGVzLmxlbmd0aCA9PT0gMCApCgkJCQl7CgkJCQkJb05vZGVzID0gX2ZuR2V0VW5pcXVlVGhzKCBvU2V0dGluZ3MsICQoJ3RoZWFkJywgbkNhbGNUbXApWzBdICk7CgkJCQl9CgkJCgkJCQkvKiBCcm93c2VycyBuZWVkIGEgYml0IG9mIGEgaGFuZCB3aGVuIGEgd2lkdGggaXMgYXNzaWduZWQgdG8gYW55IGNvbHVtbnMgd2hlbiAKCQkJCSAqIHgtc2Nyb2xsaW5nIGFzIHRoZXkgdGVuZCB0byBjb2xsYXBzZSB0aGUgdGFibGUgdG8gdGhlIG1pbi13aWR0aCwgZXZlbiBpZgoJCQkJICogd2Ugc2VudCB0aGUgY29sdW1uIHdpZHRocy4gU28gd2UgbmVlZCB0byBrZWVwIHRyYWNrIG9mIHdoYXQgdGhlIHRhYmxlIHdpZHRoCgkJCQkgKiBzaG91bGQgYmUgYnkgc3VtbWluZyB0aGUgdXNlciBnaXZlbiB2YWx1ZXMsIGFuZCB0aGUgYXV0b21hdGljIHZhbHVlcwoJCQkJICovCgkJCQlpZiAoIG9TZXR0aW5ncy5vU2Nyb2xsLnNYICE9PSAiIiApCgkJCQl7CgkJCQkJdmFyIGlUb3RhbCA9IDA7CgkJCQkJaUNvcnJlY3RvciA9IDA7CgkJCQkJZm9yICggaT0wIDsgaTxvU2V0dGluZ3MuYW9Db2x1bW5zLmxlbmd0aCA7IGkrKyApCgkJCQkJewoJCQkJCQlpZiAoIG9TZXR0aW5ncy5hb0NvbHVtbnNbaV0uYlZpc2libGUgKQoJCQkJCQl7CgkJCQkJCQlpZiAoIG9TZXR0aW5ncy5hb0NvbHVtbnNbaV0uc1dpZHRoT3JpZyA9PT0gbnVsbCApCgkJCQkJCQl7CgkJCQkJCQkJaVRvdGFsICs9ICQob05vZGVzW2lDb3JyZWN0b3JdKS5vdXRlcldpZHRoKCk7CgkJCQkJCQl9CgkJCQkJCQllbHNlCgkJCQkJCQl7CgkJCQkJCQkJaVRvdGFsICs9IHBhcnNlSW50KG9TZXR0aW5ncy5hb0NvbHVtbnNbaV0uc1dpZHRoLnJlcGxhY2UoJ3B4JywnJyksIDEwKSArCgkJCQkJCQkJCSgkKG9Ob2Rlc1tpQ29ycmVjdG9yXSkub3V0ZXJXaWR0aCgpIC0gJChvTm9kZXNbaUNvcnJlY3Rvcl0pLndpZHRoKCkpOwoJCQkJCQkJfQoJCQkJCQkJaUNvcnJlY3RvcisrOwoJCQkJCQl9CgkJCQkJfQoJCQkJCQoJCQkJCW5DYWxjVG1wLnN0eWxlLndpZHRoID0gX2ZuU3RyaW5nVG9Dc3MoIGlUb3RhbCApOwoJCQkJCW9TZXR0aW5ncy5uVGFibGUuc3R5bGUud2lkdGggPSBfZm5TdHJpbmdUb0NzcyggaVRvdGFsICk7CgkJCQl9CgkJCgkJCQlpQ29ycmVjdG9yID0gMDsKCQkJCWZvciAoIGk9MCA7IGk8b1NldHRpbmdzLmFvQ29sdW1ucy5sZW5ndGggOyBpKysgKQoJCQkJewoJCQkJCWlmICggb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5iVmlzaWJsZSApCgkJCQkJewoJCQkJCQlpV2lkdGggPSAkKG9Ob2Rlc1tpQ29ycmVjdG9yXSkud2lkdGgoKTsKCQkJCQkJaWYgKCBpV2lkdGggIT09IG51bGwgJiYgaVdpZHRoID4gMCApCgkJCQkJCXsKCQkJCQkJCW9TZXR0aW5ncy5hb0NvbHVtbnNbaV0uc1dpZHRoID0gX2ZuU3RyaW5nVG9Dc3MoIGlXaWR0aCApOwoJCQkJCQl9CgkJCQkJCWlDb3JyZWN0b3IrKzsKCQkJCQl9CgkJCQl9CgkJCgkJCQl2YXIgY3NzV2lkdGggPSAkKG5DYWxjVG1wKS5jc3MoJ3dpZHRoJyk7CgkJCQlvU2V0dGluZ3MublRhYmxlLnN0eWxlLndpZHRoID0gKGNzc1dpZHRoLmluZGV4T2YoJyUnKSAhPT0gLTEpID8KCQkJCSAgICBjc3NXaWR0aCA6IF9mblN0cmluZ1RvQ3NzKCAkKG5DYWxjVG1wKS5vdXRlcldpZHRoKCkgKTsKCQkJCW5DYWxjVG1wLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoIG5DYWxjVG1wICk7CgkJCX0KCQkKCQkJaWYgKCB3aWR0aEF0dHIgKQoJCQl7CgkJCQlvU2V0dGluZ3MublRhYmxlLnN0eWxlLndpZHRoID0gX2ZuU3RyaW5nVG9Dc3MoIHdpZHRoQXR0ciApOwoJCQl9CgkJfQoJCQoJCQoJCS8qKgoJCSAqIEFkanVzdCBhIHRhYmxlJ3Mgd2lkdGggdG8gdGFrZSBhY2NvdW50IG9mIHNjcm9sbGluZwoJCSAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CgkJICogIEBwYXJhbSB7bm9kZX0gbiB0YWJsZSBub2RlCgkJICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQoJCSAqLwoJCWZ1bmN0aW9uIF9mblNjcm9sbGluZ1dpZHRoQWRqdXN0ICggb1NldHRpbmdzLCBuICkKCQl7CgkJCWlmICggb1NldHRpbmdzLm9TY3JvbGwuc1ggPT09ICIiICYmIG9TZXR0aW5ncy5vU2Nyb2xsLnNZICE9PSAiIiApCgkJCXsKCQkJCS8qIFdoZW4geS1zY3JvbGxpbmcgb25seSwgd2Ugd2FudCB0byByZW1vdmUgdGhlIHdpZHRoIG9mIHRoZSBzY3JvbGwgYmFyIHNvIHRoZSB0YWJsZQoJCQkJICogKyBzY3JvbGwgYmFyIHdpbGwgZml0IGludG8gdGhlIGFyZWEgYXZhaWFsYmxlLgoJCQkJICovCgkJCQl2YXIgaU9yaWdXaWR0aCA9ICQobikud2lkdGgoKTsKCQkJCW4uc3R5bGUud2lkdGggPSBfZm5TdHJpbmdUb0NzcyggJChuKS5vdXRlcldpZHRoKCktb1NldHRpbmdzLm9TY3JvbGwuaUJhcldpZHRoICk7CgkJCX0KCQkJZWxzZSBpZiAoIG9TZXR0aW5ncy5vU2Nyb2xsLnNYICE9PSAiIiApCgkJCXsKCQkJCS8qIFdoZW4geC1zY3JvbGxpbmcgYm90aCB3YXlzLCBmaXggdGhlIHRhYmxlIGF0IGl0J3MgY3VycmVudCBzaXplLCB3aXRob3V0IGFkanVzdGluZyAqLwoJCQkJbi5zdHlsZS53aWR0aCA9IF9mblN0cmluZ1RvQ3NzKCAkKG4pLm91dGVyV2lkdGgoKSApOwoJCQl9CgkJfQoJCQoJCQoJCS8qKgoJCSAqIEdldCB0aGUgd2lkZXN0IG5vZGUKCQkgKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAoJCSAqICBAcGFyYW0ge2ludH0gaUNvbCBjb2x1bW4gb2YgaW50ZXJlc3QKCQkgKiAgQHJldHVybnMge3N0cmluZ30gbWF4IHN0cmluZyBsZW5ndGggZm9yIGVhY2ggY29sdW1uCgkJICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQoJCSAqLwoJCWZ1bmN0aW9uIF9mbkdldFdpZGVzdE5vZGUoIG9TZXR0aW5ncywgaUNvbCApCgkJewoJCQl2YXIgaU1heEluZGV4ID0gX2ZuR2V0TWF4TGVuU3RyaW5nKCBvU2V0dGluZ3MsIGlDb2wgKTsKCQkJaWYgKCBpTWF4SW5kZXggPCAwICkKCQkJewoJCQkJcmV0dXJuIG51bGw7CgkJCX0KCQkKCQkJaWYgKCBvU2V0dGluZ3MuYW9EYXRhW2lNYXhJbmRleF0ublRyID09PSBudWxsICkKCQkJewoJCQkJdmFyIG4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJbi5pbm5lckhUTUwgPSBfZm5HZXRDZWxsRGF0YSggb1NldHRpbmdzLCBpTWF4SW5kZXgsIGlDb2wsICcnICk7CgkJCQlyZXR1cm4gbjsKCQkJfQoJCQlyZXR1cm4gX2ZuR2V0VGROb2RlcyhvU2V0dGluZ3MsIGlNYXhJbmRleClbaUNvbF07CgkJfQoJCQoJCQoJCS8qKgoJCSAqIEdldCB0aGUgbWF4aW11bSBzdHJsZW4gZm9yIGVhY2ggZGF0YSBjb2x1bW4KCQkgKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAoJCSAqICBAcGFyYW0ge2ludH0gaUNvbCBjb2x1bW4gb2YgaW50ZXJlc3QKCQkgKiAgQHJldHVybnMge3N0cmluZ30gbWF4IHN0cmluZyBsZW5ndGggZm9yIGVhY2ggY29sdW1uCgkJICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQoJCSAqLwoJCWZ1bmN0aW9uIF9mbkdldE1heExlblN0cmluZyggb1NldHRpbmdzLCBpQ29sICkKCQl7CgkJCXZhciBpTWF4ID0gLTE7CgkJCXZhciBpTWF4SW5kZXggPSAtMTsKCQkJCgkJCWZvciAoIHZhciBpPTAgOyBpPG9TZXR0aW5ncy5hb0RhdGEubGVuZ3RoIDsgaSsrICkKCQkJewoJCQkJdmFyIHMgPSBfZm5HZXRDZWxsRGF0YSggb1NldHRpbmdzLCBpLCBpQ29sLCAnZGlzcGxheScgKSsiIjsKCQkJCXMgPSBzLnJlcGxhY2UoIC88Lio/Pi9nLCAiIiApOwoJCQkJaWYgKCBzLmxlbmd0aCA+IGlNYXggKQoJCQkJewoJCQkJCWlNYXggPSBzLmxlbmd0aDsKCQkJCQlpTWF4SW5kZXggPSBpOwoJCQkJfQoJCQl9CgkJCQoJCQlyZXR1cm4gaU1heEluZGV4OwoJCX0KCQkKCQkKCQkvKioKCQkgKiBBcHBlbmQgYSBDU1MgdW5pdCAob25seSBpZiByZXF1aXJlZCkgdG8gYSBzdHJpbmcKCQkgKiAgQHBhcmFtIHthcnJheX0gYUFycmF5MSBmaXJzdCBhcnJheQoJCSAqICBAcGFyYW0ge2FycmF5fSBhQXJyYXkyIHNlY29uZCBhcnJheQoJCSAqICBAcmV0dXJucyB7aW50fSAwIGlmIG1hdGNoLCAxIGlmIGxlbmd0aCBpcyBkaWZmZXJlbnQsIDIgaWYgbm8gbWF0Y2gKCQkgKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCgkJICovCgkJZnVuY3Rpb24gX2ZuU3RyaW5nVG9Dc3MoIHMgKQoJCXsKCQkJaWYgKCBzID09PSBudWxsICkKCQkJewoJCQkJcmV0dXJuICIwcHgiOwoJCQl9CgkJCQoJCQlpZiAoIHR5cGVvZiBzID09ICdudW1iZXInICkKCQkJewoJCQkJaWYgKCBzIDwgMCApCgkJCQl7CgkJCQkJcmV0dXJuICIwcHgiOwoJCQkJfQoJCQkJcmV0dXJuIHMrInB4IjsKCQkJfQoJCQkKCQkJLyogQ2hlY2sgaWYgdGhlIGxhc3QgY2hhcmFjdGVyIGlzIG5vdCAwLTkgKi8KCQkJdmFyIGMgPSBzLmNoYXJDb2RlQXQoIHMubGVuZ3RoLTEgKTsKCQkJaWYgKGMgPCAweDMwIHx8IGMgPiAweDM5KQoJCQl7CgkJCQlyZXR1cm4gczsKCQkJfQoJCQlyZXR1cm4gcysicHgiOwoJCX0KCQkKCQkKCQkvKioKCQkgKiBHZXQgdGhlIHdpZHRoIG9mIGEgc2Nyb2xsIGJhciBpbiB0aGlzIGJyb3dzZXIgYmVpbmcgdXNlZAoJCSAqICBAcmV0dXJucyB7aW50fSB3aWR0aCBpbiBwaXhlbHMKCQkgKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCgkJICovCgkJZnVuY3Rpb24gX2ZuU2Nyb2xsQmFyV2lkdGggKCkKCQl7ICAKCQkJdmFyIGlubmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpOwoJCQl2YXIgc3R5bGUgPSBpbm5lci5zdHlsZTsKCQkJc3R5bGUud2lkdGggPSAiMTAwJSI7CgkJCXN0eWxlLmhlaWdodCA9ICIyMDBweCI7CgkJCXN0eWxlLnBhZGRpbmcgPSAiMHB4IjsKCQkJCgkJCXZhciBvdXRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwoJCQlzdHlsZSA9IG91dGVyLnN0eWxlOwoJCQlzdHlsZS5wb3NpdGlvbiA9ICJhYnNvbHV0ZSI7CgkJCXN0eWxlLnRvcCA9ICIwcHgiOwoJCQlzdHlsZS5sZWZ0ID0gIjBweCI7CgkJCXN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKCQkJc3R5bGUud2lkdGggPSAiMjAwcHgiOwoJCQlzdHlsZS5oZWlnaHQgPSAiMTUwcHgiOwoJCQlzdHlsZS5wYWRkaW5nID0gIjBweCI7CgkJCXN0eWxlLm92ZXJmbG93ID0gImhpZGRlbiI7CgkJCW91dGVyLmFwcGVuZENoaWxkKGlubmVyKTsKCQkJCgkJCWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQob3V0ZXIpOwoJCQl2YXIgdzEgPSBpbm5lci5vZmZzZXRXaWR0aDsKCQkJb3V0ZXIuc3R5bGUub3ZlcmZsb3cgPSAnc2Nyb2xsJzsKCQkJdmFyIHcyID0gaW5uZXIub2Zmc2V0V2lkdGg7CgkJCWlmICggdzEgPT0gdzIgKQoJCQl7CgkJCQl3MiA9IG91dGVyLmNsaWVudFdpZHRoOwoJCQl9CgkJCQoJCQlkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKG91dGVyKTsKCQkJcmV0dXJuICh3MSAtIHcyKTsgIAoJCX0KCQkKCQkKCQkKCQkvKioKCQkgKiBDaGFuZ2UgdGhlIG9yZGVyIG9mIHRoZSB0YWJsZQoJCSAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CgkJICogIEBwYXJhbSB7Ym9vbH0gYkFwcGx5Q2xhc3NlcyBvcHRpb25hbCAtIHNob3VsZCB3ZSBhcHBseSBjbGFzc2VzIG9yIG5vdAoJCSAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKCQkgKi8KCQlmdW5jdGlvbiBfZm5Tb3J0ICggb1NldHRpbmdzLCBiQXBwbHlDbGFzc2VzICkKCQl7CgkJCXZhcgoJCQkJaSwgaUxlbiwgaiwgakxlbiwgaywga0xlbiwKCQkJCXNEYXRhVHlwZSwgblRoLAoJCQkJYWFTb3J0ID0gW10sCgkJCSAJYWlPcmlnID0gW10sCgkJCQlvU29ydCA9IERhdGFUYWJsZS5leHQub1NvcnQsCgkJCQlhb0RhdGEgPSBvU2V0dGluZ3MuYW9EYXRhLAoJCQkJYW9Db2x1bW5zID0gb1NldHRpbmdzLmFvQ29sdW1ucywKCQkJCW9BcmlhID0gb1NldHRpbmdzLm9MYW5ndWFnZS5vQXJpYTsKCQkJCgkJCS8qIE5vIHNvcnRpbmcgcmVxdWlyZWQgaWYgc2VydmVyLXNpZGUgb3Igbm8gc29ydGluZyBhcnJheSAqLwoJCQlpZiAoICFvU2V0dGluZ3Mub0ZlYXR1cmVzLmJTZXJ2ZXJTaWRlICYmIAoJCQkJKG9TZXR0aW5ncy5hYVNvcnRpbmcubGVuZ3RoICE9PSAwIHx8IG9TZXR0aW5ncy5hYVNvcnRpbmdGaXhlZCAhPT0gbnVsbCkgKQoJCQl7CgkJCQlhYVNvcnQgPSAoIG9TZXR0aW5ncy5hYVNvcnRpbmdGaXhlZCAhPT0gbnVsbCApID8KCQkJCQlvU2V0dGluZ3MuYWFTb3J0aW5nRml4ZWQuY29uY2F0KCBvU2V0dGluZ3MuYWFTb3J0aW5nICkgOgoJCQkJCW9TZXR0aW5ncy5hYVNvcnRpbmcuc2xpY2UoKTsKCQkJCQoJCQkJLyogSWYgdGhlcmUgaXMgYSBzb3J0aW5nIGRhdGEgdHlwZSwgYW5kIGEgZnVuY3Rpb24gYmVsb25naW5nIHRvIGl0LCB0aGVuIHdlIG5lZWQgdG8KCQkJCSAqIGdldCB0aGUgZGF0YSBmcm9tIHRoZSBkZXZlbG9wZXIncyBmdW5jdGlvbiBhbmQgYXBwbHkgaXQgZm9yIHRoaXMgY29sdW1uCgkJCQkgKi8KCQkJCWZvciAoIGk9MCA7IGk8YWFTb3J0Lmxlbmd0aCA7IGkrKyApCgkJCQl7CgkJCQkJdmFyIGlDb2x1bW4gPSBhYVNvcnRbaV1bMF07CgkJCQkJdmFyIGlWaXNDb2x1bW4gPSBfZm5Db2x1bW5JbmRleFRvVmlzaWJsZSggb1NldHRpbmdzLCBpQ29sdW1uICk7CgkJCQkJc0RhdGFUeXBlID0gb1NldHRpbmdzLmFvQ29sdW1uc1sgaUNvbHVtbiBdLnNTb3J0RGF0YVR5cGU7CgkJCQkJaWYgKCBEYXRhVGFibGUuZXh0LmFmblNvcnREYXRhW3NEYXRhVHlwZV0gKQoJCQkJCXsKCQkJCQkJdmFyIGFEYXRhID0gRGF0YVRhYmxlLmV4dC5hZm5Tb3J0RGF0YVtzRGF0YVR5cGVdLmNhbGwoIAoJCQkJCQkJb1NldHRpbmdzLm9JbnN0YW5jZSwgb1NldHRpbmdzLCBpQ29sdW1uLCBpVmlzQ29sdW1uCgkJCQkJCSk7CgkJCQkJCWlmICggYURhdGEubGVuZ3RoID09PSBhb0RhdGEubGVuZ3RoICkKCQkJCQkJewoJCQkJCQkJZm9yICggaj0wLCBqTGVuPWFvRGF0YS5sZW5ndGggOyBqPGpMZW4gOyBqKysgKQoJCQkJCQkJewoJCQkJCQkJCV9mblNldENlbGxEYXRhKCBvU2V0dGluZ3MsIGosIGlDb2x1bW4sIGFEYXRhW2pdICk7CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQkJZWxzZQoJCQkJCQl7CgkJCQkJCQlfZm5Mb2coIG9TZXR0aW5ncywgMCwgIlJldHVybmVkIGRhdGEgc29ydCBhcnJheSAoY29sICIraUNvbHVtbisiKSBpcyB0aGUgd3JvbmcgbGVuZ3RoIiApOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQkJCgkJCQkvKiBDcmVhdGUgYSB2YWx1ZSAtIGtleSBhcnJheSBvZiB0aGUgY3VycmVudCByb3cgcG9zaXRpb25zIHN1Y2ggdGhhdCB3ZSBjYW4gdXNlIHRoZWlyCgkJCQkgKiBjdXJyZW50IHBvc2l0aW9uIGR1cmluZyB0aGUgc29ydCwgaWYgdmFsdWVzIG1hdGNoLCBpbiBvcmRlciB0byBwZXJmb3JtIHN0YWJsZSBzb3J0aW5nCgkJCQkgKi8KCQkJCWZvciAoIGk9MCwgaUxlbj1vU2V0dGluZ3MuYWlEaXNwbGF5TWFzdGVyLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJCQl7CgkJCQkJYWlPcmlnWyBvU2V0dGluZ3MuYWlEaXNwbGF5TWFzdGVyW2ldIF0gPSBpOwoJCQkJfQoJCQoJCQkJLyogQnVpbGQgYW4gaW50ZXJuYWwgZGF0YSBhcnJheSB3aGljaCBpcyBzcGVjaWZpYyB0byB0aGUgc29ydCwgc28gd2UgY2FuIGdldCBhbmQgcHJlcAoJCQkJICogdGhlIGRhdGEgdG8gYmUgc29ydGVkIG9ubHkgb25jZSwgcmF0aGVyIHRoYW4gbmVlZGluZyB0byBkbyBpdCBldmVyeSB0aW1lIHRoZSBzb3J0aW5nCgkJCQkgKiBmdW5jdGlvbiBydW5zLiBUaGlzIG1ha2UgdGhlIHNvcnRpbmcgZnVuY3Rpb24gYSB2ZXJ5IHNpbXBsZSBjb21wYXJpc29uCgkJCQkgKi8KCQkJCXZhciBpU29ydExlbiA9IGFhU29ydC5sZW5ndGg7CgkJCQl2YXIgZm5Tb3J0Rm9ybWF0LCBhRGF0YVNvcnQ7CgkJCQlmb3IgKCBpPTAsIGlMZW49YW9EYXRhLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJCQl7CgkJCQkJZm9yICggaj0wIDsgajxpU29ydExlbiA7IGorKyApCgkJCQkJewoJCQkJCQlhRGF0YVNvcnQgPSBhb0NvbHVtbnNbIGFhU29ydFtqXVswXSBdLmFEYXRhU29ydDsKCQkKCQkJCQkJZm9yICggaz0wLCBrTGVuPWFEYXRhU29ydC5sZW5ndGggOyBrPGtMZW4gOyBrKysgKQoJCQkJCQl7CgkJCQkJCQlzRGF0YVR5cGUgPSBhb0NvbHVtbnNbIGFEYXRhU29ydFtrXSBdLnNUeXBlOwoJCQkJCQkJZm5Tb3J0Rm9ybWF0ID0gb1NvcnRbIChzRGF0YVR5cGUgPyBzRGF0YVR5cGUgOiAnc3RyaW5nJykrIi1wcmUiIF07CgkJCQkJCQkKCQkJCQkJCWFvRGF0YVtpXS5fYVNvcnREYXRhWyBhRGF0YVNvcnRba10gXSA9IGZuU29ydEZvcm1hdCA/CgkJCQkJCQkJZm5Tb3J0Rm9ybWF0KCBfZm5HZXRDZWxsRGF0YSggb1NldHRpbmdzLCBpLCBhRGF0YVNvcnRba10sICdzb3J0JyApICkgOgoJCQkJCQkJCV9mbkdldENlbGxEYXRhKCBvU2V0dGluZ3MsIGksIGFEYXRhU29ydFtrXSwgJ3NvcnQnICk7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCQkKCQkJCS8qIERvIHRoZSBzb3J0IC0gaGVyZSB3ZSB3YW50IG11bHRpLWNvbHVtbiBzb3J0aW5nIGJhc2VkIG9uIGEgZ2l2ZW4gZGF0YSBzb3VyY2UgKGNvbHVtbikKCQkJCSAqIGFuZCBzb3J0aW5nIGZ1bmN0aW9uIChmcm9tIG9Tb3J0KSBpbiBhIGNlcnRhaW4gZGlyZWN0aW9uLiBJdCdzIHJlYXNvbmFibHkgY29tcGxleCB0bwoJCQkJICogZm9sbG93IG9uIGl0J3Mgb3duLCBidXQgdGhpcyBpcyB3aGF0IHdlIHdhbnQgKGV4YW1wbGUgdHdvIGNvbHVtbiBzb3J0aW5nKToKCQkJCSAqICBmbkxvY2FsU29ydGluZyA9IGZ1bmN0aW9uKGEsYil7CgkJCQkgKiAgCXZhciBpVGVzdDsKCQkJCSAqICAJaVRlc3QgPSBvU29ydFsnc3RyaW5nLWFzYyddKCdkYXRhMTEnLCAnZGF0YTEyJyk7CgkJCQkgKiAgCWlmIChpVGVzdCAhPT0gMCkKCQkJCSAqICAJCXJldHVybiBpVGVzdDsKCQkJCSAqICAgIGlUZXN0ID0gb1NvcnRbJ251bWVyaWMtZGVzYyddKCdkYXRhMjEnLCAnZGF0YTIyJyk7CgkJCQkgKiAgICBpZiAoaVRlc3QgIT09IDApCgkJCQkgKiAgCQlyZXR1cm4gaVRlc3Q7CgkJCQkgKiAgCXJldHVybiBvU29ydFsnbnVtZXJpYy1hc2MnXSggYWlPcmlnW2FdLCBhaU9yaWdbYl0gKTsKCQkJCSAqICB9CgkJCQkgKiBCYXNpY2FsbHkgd2UgaGF2ZSBhIHRlc3QgZm9yIGVhY2ggc29ydGluZyBjb2x1bW4sIGlmIHRoZSBkYXRhIGluIHRoYXQgY29sdW1uIGlzIGVxdWFsLAoJCQkJICogdGVzdCB0aGUgbmV4dCBjb2x1bW4uIElmIGFsbCBjb2x1bW5zIG1hdGNoLCB0aGVuIHdlIHVzZSBhIG51bWVyaWMgc29ydCBvbiB0aGUgcm93IAoJCQkJICogcG9zaXRpb25zIGluIHRoZSBvcmlnaW5hbCBkYXRhIGFycmF5IHRvIHByb3ZpZGUgYSBzdGFibGUgc29ydC4KCQkJCSAqLwoJCQkJb1NldHRpbmdzLmFpRGlzcGxheU1hc3Rlci5zb3J0KCBmdW5jdGlvbiAoIGEsIGIgKSB7CgkJCQkJdmFyIGssIGwsIGxMZW4sIGlUZXN0LCBhRGF0YVNvcnQsIHNEYXRhVHlwZTsKCQkJCQlmb3IgKCBrPTAgOyBrPGlTb3J0TGVuIDsgaysrICkKCQkJCQl7CgkJCQkJCWFEYXRhU29ydCA9IGFvQ29sdW1uc1sgYWFTb3J0W2tdWzBdIF0uYURhdGFTb3J0OwoJCQoJCQkJCQlmb3IgKCBsPTAsIGxMZW49YURhdGFTb3J0Lmxlbmd0aCA7IGw8bExlbiA7IGwrKyApCgkJCQkJCXsKCQkJCQkJCXNEYXRhVHlwZSA9IGFvQ29sdW1uc1sgYURhdGFTb3J0W2xdIF0uc1R5cGU7CgkJCQkJCQkKCQkJCQkJCWlUZXN0ID0gb1NvcnRbIChzRGF0YVR5cGUgPyBzRGF0YVR5cGUgOiAnc3RyaW5nJykrIi0iK2FhU29ydFtrXVsxXSBdKAoJCQkJCQkJCWFvRGF0YVthXS5fYVNvcnREYXRhWyBhRGF0YVNvcnRbbF0gXSwKCQkJCQkJCQlhb0RhdGFbYl0uX2FTb3J0RGF0YVsgYURhdGFTb3J0W2xdIF0KCQkJCQkJCSk7CgkJCQkJCQoJCQkJCQkJaWYgKCBpVGVzdCAhPT0gMCApCgkJCQkJCQl7CgkJCQkJCQkJcmV0dXJuIGlUZXN0OwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfQoJCQkJCQoJCQkJCXJldHVybiBvU29ydFsnbnVtZXJpYy1hc2MnXSggYWlPcmlnW2FdLCBhaU9yaWdbYl0gKTsKCQkJCX0gKTsKCQkJfQoJCQkKCQkJLyogQWx0ZXIgdGhlIHNvcnRpbmcgY2xhc3NlcyB0byB0YWtlIGFjY291bnQgb2YgdGhlIGNoYW5nZXMgKi8KCQkJaWYgKCAoYkFwcGx5Q2xhc3NlcyA9PT0gdW5kZWZpbmVkIHx8IGJBcHBseUNsYXNzZXMpICYmICFvU2V0dGluZ3Mub0ZlYXR1cmVzLmJEZWZlclJlbmRlciApCgkJCXsKCQkJCV9mblNvcnRpbmdDbGFzc2VzKCBvU2V0dGluZ3MgKTsKCQkJfQoJCQoJCQlmb3IgKCBpPTAsIGlMZW49b1NldHRpbmdzLmFvQ29sdW1ucy5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCQl7CgkJCQl2YXIgc1RpdGxlID0gYW9Db2x1bW5zW2ldLnNUaXRsZS5yZXBsYWNlKCAvPC4qPz4vZywgIiIgKTsKCQkJCW5UaCA9IGFvQ29sdW1uc1tpXS5uVGg7CgkJCQluVGgucmVtb3ZlQXR0cmlidXRlKCdhcmlhLXNvcnQnKTsKCQkJCW5UaC5yZW1vdmVBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnKTsKCQkJCQoJCQkJLyogSW4gQVJJQSBvbmx5IHRoZSBmaXJzdCBzb3J0aW5nIGNvbHVtbiBjYW4gYmUgbWFya2VkIGFzIHNvcnRpbmcgLSBubyBtdWx0aS1zb3J0IG9wdGlvbiAqLwoJCQkJaWYgKCBhb0NvbHVtbnNbaV0uYlNvcnRhYmxlICkKCQkJCXsKCQkJCQlpZiAoIGFhU29ydC5sZW5ndGggPiAwICYmIGFhU29ydFswXVswXSA9PSBpICkKCQkJCQl7CgkJCQkJCW5UaC5zZXRBdHRyaWJ1dGUoJ2FyaWEtc29ydCcsIGFhU29ydFswXVsxXT09ImFzYyIgPyAiYXNjZW5kaW5nIiA6ICJkZXNjZW5kaW5nIiApOwoJCQkJCQkKCQkJCQkJdmFyIG5leHRTb3J0ID0gKGFvQ29sdW1uc1tpXS5hc1NvcnRpbmdbIGFhU29ydFswXVsyXSsxIF0pID8gCgkJCQkJCQlhb0NvbHVtbnNbaV0uYXNTb3J0aW5nWyBhYVNvcnRbMF1bMl0rMSBdIDogYW9Db2x1bW5zW2ldLmFzU29ydGluZ1swXTsKCQkJCQkJblRoLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsIHNUaXRsZSsKCQkJCQkJCShuZXh0U29ydD09ImFzYyIgPyBvQXJpYS5zU29ydEFzY2VuZGluZyA6IG9BcmlhLnNTb3J0RGVzY2VuZGluZykgKTsKCQkJCQl9CgkJCQkJZWxzZQoJCQkJCXsKCQkJCQkJblRoLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsIHNUaXRsZSsKCQkJCQkJCShhb0NvbHVtbnNbaV0uYXNTb3J0aW5nWzBdPT0iYXNjIiA/IG9BcmlhLnNTb3J0QXNjZW5kaW5nIDogb0FyaWEuc1NvcnREZXNjZW5kaW5nKSApOwoJCQkJCX0KCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQluVGguc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgc1RpdGxlKTsKCQkJCX0KCQkJfQoJCQkKCQkJLyogVGVsbCB0aGUgZHJhdyBmdW5jdGlvbiB0aGF0IHdlIGhhdmUgc29ydGVkIHRoZSBkYXRhICovCgkJCW9TZXR0aW5ncy5iU29ydGVkID0gdHJ1ZTsKCQkJJChvU2V0dGluZ3Mub0luc3RhbmNlKS50cmlnZ2VyKCdzb3J0Jywgb1NldHRpbmdzKTsKCQkJCgkJCS8qIENvcHkgdGhlIG1hc3RlciBkYXRhIGludG8gdGhlIGRyYXcgYXJyYXkgYW5kIHJlLWRyYXcgKi8KCQkJaWYgKCBvU2V0dGluZ3Mub0ZlYXR1cmVzLmJGaWx0ZXIgKQoJCQl7CgkJCQkvKiBfZm5GaWx0ZXIoKSB3aWxsIHJlZHJhdyB0aGUgdGFibGUgZm9yIHVzICovCgkJCQlfZm5GaWx0ZXJDb21wbGV0ZSggb1NldHRpbmdzLCBvU2V0dGluZ3Mub1ByZXZpb3VzU2VhcmNoLCAxICk7CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQlvU2V0dGluZ3MuYWlEaXNwbGF5ID0gb1NldHRpbmdzLmFpRGlzcGxheU1hc3Rlci5zbGljZSgpOwoJCQkJb1NldHRpbmdzLl9pRGlzcGxheVN0YXJ0ID0gMDsgLyogcmVzZXQgZGlzcGxheSBiYWNrIHRvIHBhZ2UgMCAqLwoJCQkJX2ZuQ2FsY3VsYXRlRW5kKCBvU2V0dGluZ3MgKTsKCQkJCV9mbkRyYXcoIG9TZXR0aW5ncyApOwoJCQl9CgkJfQoJCQoJCQoJCS8qKgoJCSAqIEF0dGFjaCBhIHNvcnQgaGFuZGxlciAoY2xpY2spIHRvIGEgbm9kZQoJCSAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CgkJICogIEBwYXJhbSB7bm9kZX0gbk5vZGUgbm9kZSB0byBhdHRhY2ggdGhlIGhhbmRsZXIgdG8KCQkgKiAgQHBhcmFtIHtpbnR9IGlEYXRhSW5kZXggY29sdW1uIHNvcnRpbmcgaW5kZXgKCQkgKiAgQHBhcmFtIHtmdW5jdGlvbn0gW2ZuQ2FsbGJhY2tdIGNhbGxiYWNrIGZ1bmN0aW9uCgkJICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQoJCSAqLwoJCWZ1bmN0aW9uIF9mblNvcnRBdHRhY2hMaXN0ZW5lciAoIG9TZXR0aW5ncywgbk5vZGUsIGlEYXRhSW5kZXgsIGZuQ2FsbGJhY2sgKQoJCXsKCQkJX2ZuQmluZEFjdGlvbiggbk5vZGUsIHt9LCBmdW5jdGlvbiAoZSkgewoJCQkJLyogSWYgdGhlIGNvbHVtbiBpcyBub3Qgc29ydGFibGUgLSBkb24ndCB0byBhbnl0aGluZyAqLwoJCQkJaWYgKCBvU2V0dGluZ3MuYW9Db2x1bW5zW2lEYXRhSW5kZXhdLmJTb3J0YWJsZSA9PT0gZmFsc2UgKQoJCQkJewoJCQkJCXJldHVybjsKCQkJCX0KCQkJCQoJCQkJLyoKCQkJCSAqIFRoaXMgaXMgYSBsaXR0bGUgYml0IG9kZCBJIGFkbWl0Li4uIEkgZGVjbGFyZSBhIHRlbXBvcmFyeSBmdW5jdGlvbiBpbnNpZGUgdGhlIHNjb3BlIG9mCgkJCQkgKiBfZm5CdWlsZEhlYWQgYW5kIHRoZSBjbGljayBoYW5kbGVyIGluIG9yZGVyIHRoYXQgdGhlIGNvZGUgcHJlc2VudGVkIGhlcmUgY2FuIGJlIHVzZWQgCgkJCQkgKiB0d2ljZSAtIG9uY2UgZm9yIHdoZW4gYlByb2Nlc3NpbmcgaXMgZW5hYmxlZCwgYW5kIGFub3RoZXIgdGltZSBmb3Igd2hlbiBpdCBpcyAKCQkJCSAqIGRpc2FibGVkLCBhcyB3ZSBuZWVkIHRvIHBlcmZvcm0gc2xpZ2h0bHkgZGlmZmVyZW50IGFjdGlvbnMuCgkJCQkgKiAgIEJhc2ljYWxseSB0aGUgaXNzdWUgaGVyZSBpcyB0aGF0IHRoZSBKYXZhc2NyaXB0IGVuZ2luZSBpbiBtb2Rlcm4gYnJvd3NlcnMgZG9uJ3QgCgkJCQkgKiBhcHBlYXIgdG8gYWxsb3cgdGhlIHJlbmRlcmluZyBlbmdpbmUgdG8gdXBkYXRlIHRoZSBkaXNwbGF5IHdoaWxlIGl0IGlzIHN0aWxsIGV4ZWN1dGluZwoJCQkJICogaXQncyB0aHJlYWQgKHdlbGwgLSBpdCBkb2VzIGJ1dCBvbmx5IGFmdGVyIGxvbmcgaW50ZXJ2YWxzKS4gVGhpcyBtZWFucyB0aGF0IHRoZSAKCQkJCSAqICdwcm9jZXNzaW5nJyBkaXNwbGF5IGRvZXNuJ3QgYXBwZWFyIGZvciBhIHRhYmxlIHNvcnQuIFRvIGJyZWFrIHRoZSBqcyB0aHJlYWQgdXAgYSBiaXQKCQkJCSAqIEkgZm9yY2UgYW4gZXhlY3V0aW9uIGJyZWFrIGJ5IHVzaW5nIHNldFRpbWVvdXQgLSBidXQgdGhpcyBicmVha3MgdGhlIGV4cGVjdGVkIAoJCQkJICogdGhyZWFkIGNvbnRpbnVhdGlvbiBmb3IgdGhlIGVuZC1kZXZlbG9wZXIncyBwb2ludCBvZiB2aWV3ICh0aGVpciBjb2RlIHdvdWxkIGV4ZWN1dGUKCQkJCSAqIHRvbyBlYXJseSksIHNvIHdlIG9ubHkgZG8gaXQgd2hlbiB3ZSBhYnNvbHV0ZWx5IGhhdmUgdG8uCgkJCQkgKi8KCQkJCXZhciBmbklubmVyU29ydGluZyA9IGZ1bmN0aW9uICgpIHsKCQkJCQl2YXIgaUNvbHVtbiwgaU5leHRTb3J0OwoJCQkJCQoJCQkJCS8qIElmIHRoZSBzaGlmdCBrZXkgaXMgcHJlc3NlZCB0aGVuIHdlIGFyZSBtdWx0aXBsZSBjb2x1bW4gc29ydGluZyAqLwoJCQkJCWlmICggZS5zaGlmdEtleSApCgkJCQkJewoJCQkJCQkvKiBBcmUgd2UgYWxyZWFkeSBkb2luZyBzb21lIGtpbmQgb2Ygc29ydCBvbiB0aGlzIGNvbHVtbj8gKi8KCQkJCQkJdmFyIGJGb3VuZCA9IGZhbHNlOwoJCQkJCQlmb3IgKCB2YXIgaT0wIDsgaTxvU2V0dGluZ3MuYWFTb3J0aW5nLmxlbmd0aCA7IGkrKyApCgkJCQkJCXsKCQkJCQkJCWlmICggb1NldHRpbmdzLmFhU29ydGluZ1tpXVswXSA9PSBpRGF0YUluZGV4ICkKCQkJCQkJCXsKCQkJCQkJCQliRm91bmQgPSB0cnVlOwoJCQkJCQkJCWlDb2x1bW4gPSBvU2V0dGluZ3MuYWFTb3J0aW5nW2ldWzBdOwoJCQkJCQkJCWlOZXh0U29ydCA9IG9TZXR0aW5ncy5hYVNvcnRpbmdbaV1bMl0rMTsKCQkJCQkJCQkKCQkJCQkJCQlpZiAoICFvU2V0dGluZ3MuYW9Db2x1bW5zW2lDb2x1bW5dLmFzU29ydGluZ1tpTmV4dFNvcnRdICkKCQkJCQkJCQl7CgkJCQkJCQkJCS8qIFJlYWNoZWQgdGhlIGVuZCBvZiB0aGUgc29ydGluZyBvcHRpb25zLCByZW1vdmUgZnJvbSBtdWx0aS1jb2wgc29ydCAqLwoJCQkJCQkJCQlvU2V0dGluZ3MuYWFTb3J0aW5nLnNwbGljZSggaSwgMSApOwoJCQkJCQkJCX0KCQkJCQkJCQllbHNlCgkJCQkJCQkJewoJCQkJCQkJCQkvKiBNb3ZlIG9udG8gbmV4dCBzb3J0aW5nIGRpcmVjdGlvbiAqLwoJCQkJCQkJCQlvU2V0dGluZ3MuYWFTb3J0aW5nW2ldWzFdID0gb1NldHRpbmdzLmFvQ29sdW1uc1tpQ29sdW1uXS5hc1NvcnRpbmdbaU5leHRTb3J0XTsKCQkJCQkJCQkJb1NldHRpbmdzLmFhU29ydGluZ1tpXVsyXSA9IGlOZXh0U29ydDsKCQkJCQkJCQl9CgkJCQkJCQkJYnJlYWs7CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQkJCgkJCQkJCS8qIE5vIHNvcnQgeWV0IC0gYWRkIGl0IGluICovCgkJCQkJCWlmICggYkZvdW5kID09PSBmYWxzZSApCgkJCQkJCXsKCQkJCQkJCW9TZXR0aW5ncy5hYVNvcnRpbmcucHVzaCggWyBpRGF0YUluZGV4LCAKCQkJCQkJCQlvU2V0dGluZ3MuYW9Db2x1bW5zW2lEYXRhSW5kZXhdLmFzU29ydGluZ1swXSwgMCBdICk7CgkJCQkJCX0KCQkJCQl9CgkJCQkJZWxzZQoJCQkJCXsKCQkJCQkJLyogSWYgbm8gc2hpZnQga2V5IHRoZW4gc2luZ2xlIGNvbHVtbiBzb3J0ICovCgkJCQkJCWlmICggb1NldHRpbmdzLmFhU29ydGluZy5sZW5ndGggPT0gMSAmJiBvU2V0dGluZ3MuYWFTb3J0aW5nWzBdWzBdID09IGlEYXRhSW5kZXggKQoJCQkJCQl7CgkJCQkJCQlpQ29sdW1uID0gb1NldHRpbmdzLmFhU29ydGluZ1swXVswXTsKCQkJCQkJCWlOZXh0U29ydCA9IG9TZXR0aW5ncy5hYVNvcnRpbmdbMF1bMl0rMTsKCQkJCQkJCWlmICggIW9TZXR0aW5ncy5hb0NvbHVtbnNbaUNvbHVtbl0uYXNTb3J0aW5nW2lOZXh0U29ydF0gKQoJCQkJCQkJewoJCQkJCQkJCWlOZXh0U29ydCA9IDA7CgkJCQkJCQl9CgkJCQkJCQlvU2V0dGluZ3MuYWFTb3J0aW5nWzBdWzFdID0gb1NldHRpbmdzLmFvQ29sdW1uc1tpQ29sdW1uXS5hc1NvcnRpbmdbaU5leHRTb3J0XTsKCQkJCQkJCW9TZXR0aW5ncy5hYVNvcnRpbmdbMF1bMl0gPSBpTmV4dFNvcnQ7CgkJCQkJCX0KCQkJCQkJZWxzZQoJCQkJCQl7CgkJCQkJCQlvU2V0dGluZ3MuYWFTb3J0aW5nLnNwbGljZSggMCwgb1NldHRpbmdzLmFhU29ydGluZy5sZW5ndGggKTsKCQkJCQkJCW9TZXR0aW5ncy5hYVNvcnRpbmcucHVzaCggWyBpRGF0YUluZGV4LCAKCQkJCQkJCQlvU2V0dGluZ3MuYW9Db2x1bW5zW2lEYXRhSW5kZXhdLmFzU29ydGluZ1swXSwgMCBdICk7CgkJCQkJCX0KCQkJCQl9CgkJCQkJCgkJCQkJLyogUnVuIHRoZSBzb3J0ICovCgkJCQkJX2ZuU29ydCggb1NldHRpbmdzICk7CgkJCQl9OyAvKiAvZm5Jbm5lclNvcnRpbmcgKi8KCQkJCQoJCQkJaWYgKCAhb1NldHRpbmdzLm9GZWF0dXJlcy5iUHJvY2Vzc2luZyApCgkJCQl7CgkJCQkJZm5Jbm5lclNvcnRpbmcoKTsKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQlfZm5Qcm9jZXNzaW5nRGlzcGxheSggb1NldHRpbmdzLCB0cnVlICk7CgkJCQkJc2V0VGltZW91dCggZnVuY3Rpb24oKSB7CgkJCQkJCWZuSW5uZXJTb3J0aW5nKCk7CgkJCQkJCWlmICggIW9TZXR0aW5ncy5vRmVhdHVyZXMuYlNlcnZlclNpZGUgKQoJCQkJCQl7CgkJCQkJCQlfZm5Qcm9jZXNzaW5nRGlzcGxheSggb1NldHRpbmdzLCBmYWxzZSApOwoJCQkJCQl9CgkJCQkJfSwgMCApOwoJCQkJfQoJCQkJCgkJCQkvKiBDYWxsIHRoZSB1c2VyIHNwZWNpZmllZCBjYWxsYmFjayBmdW5jdGlvbiAtIHVzZWQgZm9yIGFzeW5jIHVzZXIgaW50ZXJhY3Rpb24gKi8KCQkJCWlmICggdHlwZW9mIGZuQ2FsbGJhY2sgPT0gJ2Z1bmN0aW9uJyApCgkJCQl7CgkJCQkJZm5DYWxsYmFjayggb1NldHRpbmdzICk7CgkJCQl9CgkJCX0gKTsKCQl9CgkJCgkJCgkJLyoqCgkJICogU2V0IHRoZSBzb3J0aW5nIGNsYXNzZXMgb24gdGhlIGhlYWRlciwgTm90ZTogaXQgaXMgc2FmZSB0byBjYWxsIHRoaXMgZnVuY3Rpb24gCgkJICogd2hlbiBiU29ydCBhbmQgYlNvcnRDbGFzc2VzIGFyZSBmYWxzZQoJCSAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CgkJICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQoJCSAqLwoJCWZ1bmN0aW9uIF9mblNvcnRpbmdDbGFzc2VzKCBvU2V0dGluZ3MgKQoJCXsKCQkJdmFyIGksIGlMZW4sIGosIGpMZW4sIGlGb3VuZDsKCQkJdmFyIGFhU29ydCwgc0NsYXNzOwoJCQl2YXIgaUNvbHVtbnMgPSBvU2V0dGluZ3MuYW9Db2x1bW5zLmxlbmd0aDsKCQkJdmFyIG9DbGFzc2VzID0gb1NldHRpbmdzLm9DbGFzc2VzOwoJCQkKCQkJZm9yICggaT0wIDsgaTxpQ29sdW1ucyA7IGkrKyApCgkJCXsKCQkJCWlmICggb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5iU29ydGFibGUgKQoJCQkJewoJCQkJCSQob1NldHRpbmdzLmFvQ29sdW1uc1tpXS5uVGgpLnJlbW92ZUNsYXNzKCBvQ2xhc3Nlcy5zU29ydEFzYyArIiAiKyBvQ2xhc3Nlcy5zU29ydERlc2MgKwoJCQkJCQkiICIrIG9TZXR0aW5ncy5hb0NvbHVtbnNbaV0uc1NvcnRpbmdDbGFzcyApOwoJCQkJfQoJCQl9CgkJCQoJCQlpZiAoIG9TZXR0aW5ncy5hYVNvcnRpbmdGaXhlZCAhPT0gbnVsbCApCgkJCXsKCQkJCWFhU29ydCA9IG9TZXR0aW5ncy5hYVNvcnRpbmdGaXhlZC5jb25jYXQoIG9TZXR0aW5ncy5hYVNvcnRpbmcgKTsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCWFhU29ydCA9IG9TZXR0aW5ncy5hYVNvcnRpbmcuc2xpY2UoKTsKCQkJfQoJCQkKCQkJLyogQXBwbHkgdGhlIHJlcXVpcmVkIGNsYXNzZXMgdG8gdGhlIGhlYWRlciAqLwoJCQlmb3IgKCBpPTAgOyBpPG9TZXR0aW5ncy5hb0NvbHVtbnMubGVuZ3RoIDsgaSsrICkKCQkJewoJCQkJaWYgKCBvU2V0dGluZ3MuYW9Db2x1bW5zW2ldLmJTb3J0YWJsZSApCgkJCQl7CgkJCQkJc0NsYXNzID0gb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5zU29ydGluZ0NsYXNzOwoJCQkJCWlGb3VuZCA9IC0xOwoJCQkJCWZvciAoIGo9MCA7IGo8YWFTb3J0Lmxlbmd0aCA7IGorKyApCgkJCQkJewoJCQkJCQlpZiAoIGFhU29ydFtqXVswXSA9PSBpICkKCQkJCQkJewoJCQkJCQkJc0NsYXNzID0gKCBhYVNvcnRbal1bMV0gPT0gImFzYyIgKSA/CgkJCQkJCQkJb0NsYXNzZXMuc1NvcnRBc2MgOiBvQ2xhc3Nlcy5zU29ydERlc2M7CgkJCQkJCQlpRm91bmQgPSBqOwoJCQkJCQkJYnJlYWs7CgkJCQkJCX0KCQkJCQl9CgkJCQkJJChvU2V0dGluZ3MuYW9Db2x1bW5zW2ldLm5UaCkuYWRkQ2xhc3MoIHNDbGFzcyApOwoJCQkJCQoJCQkJCWlmICggb1NldHRpbmdzLmJKVUkgKQoJCQkJCXsKCQkJCQkJLyogalF1ZXJ5IFVJIHVzZXMgZXh0cmEgbWFya3VwICovCgkJCQkJCXZhciBqcVNwYW4gPSAkKCJzcGFuLiIrb0NsYXNzZXMuc1NvcnRJY29uLCAgb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5uVGgpOwoJCQkJCQlqcVNwYW4ucmVtb3ZlQ2xhc3Mob0NsYXNzZXMuc1NvcnRKVUlBc2MgKyIgIisgb0NsYXNzZXMuc1NvcnRKVUlEZXNjICsiICIrIAoJCQkJCQkJb0NsYXNzZXMuc1NvcnRKVUkgKyIgIisgb0NsYXNzZXMuc1NvcnRKVUlBc2NBbGxvd2VkICsiICIrIG9DbGFzc2VzLnNTb3J0SlVJRGVzY0FsbG93ZWQgKTsKCQkJCQkJCgkJCQkJCXZhciBzU3BhbkNsYXNzOwoJCQkJCQlpZiAoIGlGb3VuZCA9PSAtMSApCgkJCQkJCXsKCQkJCQkJIAlzU3BhbkNsYXNzID0gb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5zU29ydGluZ0NsYXNzSlVJOwoJCQkJCQl9CgkJCQkJCWVsc2UgaWYgKCBhYVNvcnRbaUZvdW5kXVsxXSA9PSAiYXNjIiApCgkJCQkJCXsKCQkJCQkJCXNTcGFuQ2xhc3MgPSBvQ2xhc3Nlcy5zU29ydEpVSUFzYzsKCQkJCQkJfQoJCQkJCQllbHNlCgkJCQkJCXsKCQkJCQkJCXNTcGFuQ2xhc3MgPSBvQ2xhc3Nlcy5zU29ydEpVSURlc2M7CgkJCQkJCX0KCQkJCQkJCgkJCQkJCWpxU3Bhbi5hZGRDbGFzcyggc1NwYW5DbGFzcyApOwoJCQkJCX0KCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQkvKiBObyBzb3J0aW5nIG9uIHRoaXMgY29sdW1uLCBzbyBhZGQgdGhlIGJhc2UgY2xhc3MuIFRoaXMgd2lsbCBoYXZlIGJlZW4gYXNzaWduZWQgYnkKCQkJCQkgKiBfZm5BZGRDb2x1bW4KCQkJCQkgKi8KCQkJCQkkKG9TZXR0aW5ncy5hb0NvbHVtbnNbaV0ublRoKS5hZGRDbGFzcyggb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5zU29ydGluZ0NsYXNzICk7CgkJCQl9CgkJCX0KCQkJCgkJCS8qIAoJCQkgKiBBcHBseSB0aGUgcmVxdWlyZWQgY2xhc3NlcyB0byB0aGUgdGFibGUgYm9keQoJCQkgKiBOb3RlIHRoYXQgdGhpcyBpcyBnaXZlbiBhcyBhIGZlYXR1cmUgc3dpdGNoIHNpbmNlIGl0IGNhbiBzaWduaWZpY2FudGx5IHNsb3cgZG93biBhIHNvcnQKCQkJICogb24gbGFyZ2UgZGF0YSBzZXRzIChhZGRpbmcgYW5kIHJlbW92aW5nIG9mIGNsYXNzZXMgaXMgYWx3YXlzIHNsb3cgYXQgdGhlIGJlc3Qgb2YgdGltZXMuLikKCQkJICogRnVydGhlciB0byB0aGlzLCBub3RlIHRoYXQgdGhpcyBjb2RlIGlzIGFkbWl0dGVkbHkgZmFpcmx5IHVnbHkuIEl0IGNvdWxkIGJlIG1hZGUgYSBsb3QgCgkJCSAqIHNpbXBsZXIgdXNpbmcgalF1ZXJ5IHNlbGVjdG9ycyBhbmQgYWRkL3JlbW92ZUNsYXNzLCBidXQgdGhhdCBpcyBzaWduaWZpY2FudGx5IHNsb3dlcgoJCQkgKiAob24gdGhlIG9yZGVyIG9mIDUgdGltZXMgc2xvd2VyKSAtIGhlbmNlIHRoZSBkaXJlY3QgRE9NIG1hbmlwdWxhdGlvbiBoZXJlLgoJCQkgKiBOb3RlIHRoYXQgZm9yIGRlZmVycmVkIGRyYXdpbmcgd2UgZG8gdXNlIGpRdWVyeSAtIHRoZSByZWFzb24gYmVpbmcgdGhhdCB0YWtpbmcgdGhlIGZpcnN0CgkJCSAqIHJvdyBmb3VuZCB0byBzZWUgaWYgdGhlIHdob2xlIGNvbHVtbiBuZWVkcyBwcm9jZXNzZWQgY2FuIG1pc3MgY2xhc3NlcyBzaW5jZSB0aGUgZmlyc3QKCQkJICogY29sdW1uIG1pZ2h0IGJlIG5ldy4KCQkJICovCgkJCXNDbGFzcyA9IG9DbGFzc2VzLnNTb3J0Q29sdW1uOwoJCQkKCQkJaWYgKCBvU2V0dGluZ3Mub0ZlYXR1cmVzLmJTb3J0ICYmIG9TZXR0aW5ncy5vRmVhdHVyZXMuYlNvcnRDbGFzc2VzICkKCQkJewoJCQkJdmFyIG5UZHMgPSBfZm5HZXRUZE5vZGVzKCBvU2V0dGluZ3MgKTsKCQkKCQkJCS8qIFJlbW92ZSB0aGUgb2xkIGNsYXNzZXMgKi8KCQkJCWlmICggb1NldHRpbmdzLm9GZWF0dXJlcy5iRGVmZXJSZW5kZXIgKQoJCQkJewoJCQkJCSQoblRkcykucmVtb3ZlQ2xhc3Moc0NsYXNzKycxICcrc0NsYXNzKycyICcrc0NsYXNzKyczJyk7CgkJCQl9CgkJCQllbHNlIGlmICggblRkcy5sZW5ndGggPj0gaUNvbHVtbnMgKQoJCQkJewoJCQkJCWZvciAoIGk9MCA7IGk8aUNvbHVtbnMgOyBpKysgKQoJCQkJCXsKCQkJCQkJaWYgKCBuVGRzW2ldLmNsYXNzTmFtZS5pbmRleE9mKHNDbGFzcysiMSIpICE9IC0xICkKCQkJCQkJewoJCQkJCQkJZm9yICggaj0wLCBqTGVuPShuVGRzLmxlbmd0aC9pQ29sdW1ucykgOyBqPGpMZW4gOyBqKysgKQoJCQkJCQkJewoJCQkJCQkJCW5UZHNbKGlDb2x1bW5zKmopK2ldLmNsYXNzTmFtZSA9IAoJCQkJCQkJCQkkLnRyaW0oIG5UZHNbKGlDb2x1bW5zKmopK2ldLmNsYXNzTmFtZS5yZXBsYWNlKCBzQ2xhc3MrIjEiLCAiIiApICk7CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQkJZWxzZSBpZiAoIG5UZHNbaV0uY2xhc3NOYW1lLmluZGV4T2Yoc0NsYXNzKyIyIikgIT0gLTEgKQoJCQkJCQl7CgkJCQkJCQlmb3IgKCBqPTAsIGpMZW49KG5UZHMubGVuZ3RoL2lDb2x1bW5zKSA7IGo8akxlbiA7IGorKyApCgkJCQkJCQl7CgkJCQkJCQkJblRkc1soaUNvbHVtbnMqaikraV0uY2xhc3NOYW1lID0gCgkJCQkJCQkJCSQudHJpbSggblRkc1soaUNvbHVtbnMqaikraV0uY2xhc3NOYW1lLnJlcGxhY2UoIHNDbGFzcysiMiIsICIiICkgKTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCQllbHNlIGlmICggblRkc1tpXS5jbGFzc05hbWUuaW5kZXhPZihzQ2xhc3MrIjMiKSAhPSAtMSApCgkJCQkJCXsKCQkJCQkJCWZvciAoIGo9MCwgakxlbj0oblRkcy5sZW5ndGgvaUNvbHVtbnMpIDsgajxqTGVuIDsgaisrICkKCQkJCQkJCXsKCQkJCQkJCQluVGRzWyhpQ29sdW1ucypqKStpXS5jbGFzc05hbWUgPSAKCQkJCQkJCQkJJC50cmltKCBuVGRzWyhpQ29sdW1ucypqKStpXS5jbGFzc05hbWUucmVwbGFjZSggIiAiK3NDbGFzcysiMyIsICIiICkgKTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJCQoJCQkJLyogQWRkIHRoZSBuZXcgY2xhc3NlcyB0byB0aGUgdGFibGUgKi8KCQkJCXZhciBpQ2xhc3MgPSAxLCBpVGFyZ2V0Q29sOwoJCQkJZm9yICggaT0wIDsgaTxhYVNvcnQubGVuZ3RoIDsgaSsrICkKCQkJCXsKCQkJCQlpVGFyZ2V0Q29sID0gcGFyc2VJbnQoIGFhU29ydFtpXVswXSwgMTAgKTsKCQkJCQlmb3IgKCBqPTAsIGpMZW49KG5UZHMubGVuZ3RoL2lDb2x1bW5zKSA7IGo8akxlbiA7IGorKyApCgkJCQkJewoJCQkJCQluVGRzWyhpQ29sdW1ucypqKStpVGFyZ2V0Q29sXS5jbGFzc05hbWUgKz0gIiAiK3NDbGFzcytpQ2xhc3M7CgkJCQkJfQoJCQkJCQoJCQkJCWlmICggaUNsYXNzIDwgMyApCgkJCQkJewoJCQkJCQlpQ2xhc3MrKzsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgkJCgkJCgkJCgkJLyoqCgkJICogU2F2ZSB0aGUgc3RhdGUgb2YgYSB0YWJsZSBpbiBhIGNvb2tpZSBzdWNoIHRoYXQgdGhlIHBhZ2UgY2FuIGJlIHJlbG9hZGVkCgkJICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCQkgKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCgkJICovCgkJZnVuY3Rpb24gX2ZuU2F2ZVN0YXRlICggb1NldHRpbmdzICkKCQl7CgkJCWlmICggIW9TZXR0aW5ncy5vRmVhdHVyZXMuYlN0YXRlU2F2ZSB8fCBvU2V0dGluZ3MuYkRlc3Ryb3lpbmcgKQoJCQl7CgkJCQlyZXR1cm47CgkJCX0KCQkKCQkJLyogU3RvcmUgdGhlIGludGVyZXN0aW5nIHZhcmlhYmxlcyAqLwoJCQl2YXIgaSwgaUxlbiwgYkluZmluaXRlPW9TZXR0aW5ncy5vU2Nyb2xsLmJJbmZpbml0ZTsKCQkJdmFyIG9TdGF0ZSA9IHsKCQkJCSJpQ3JlYXRlIjogICAgICBuZXcgRGF0ZSgpLmdldFRpbWUoKSwKCQkJCSJpU3RhcnQiOiAgICAgICAoYkluZmluaXRlID8gMCA6IG9TZXR0aW5ncy5faURpc3BsYXlTdGFydCksCgkJCQkiaUVuZCI6ICAgICAgICAgKGJJbmZpbml0ZSA/IG9TZXR0aW5ncy5faURpc3BsYXlMZW5ndGggOiBvU2V0dGluZ3MuX2lEaXNwbGF5RW5kKSwKCQkJCSJpTGVuZ3RoIjogICAgICBvU2V0dGluZ3MuX2lEaXNwbGF5TGVuZ3RoLAoJCQkJImFhU29ydGluZyI6ICAgICQuZXh0ZW5kKCB0cnVlLCBbXSwgb1NldHRpbmdzLmFhU29ydGluZyApLAoJCQkJIm9TZWFyY2giOiAgICAgICQuZXh0ZW5kKCB0cnVlLCB7fSwgb1NldHRpbmdzLm9QcmV2aW91c1NlYXJjaCApLAoJCQkJImFvU2VhcmNoQ29scyI6ICQuZXh0ZW5kKCB0cnVlLCBbXSwgb1NldHRpbmdzLmFvUHJlU2VhcmNoQ29scyApLAoJCQkJImFiVmlzQ29scyI6ICAgIFtdCgkJCX07CgkJCgkJCWZvciAoIGk9MCwgaUxlbj1vU2V0dGluZ3MuYW9Db2x1bW5zLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJCXsKCQkJCW9TdGF0ZS5hYlZpc0NvbHMucHVzaCggb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5iVmlzaWJsZSApOwoJCQl9CgkJCgkJCV9mbkNhbGxiYWNrRmlyZSggb1NldHRpbmdzLCAiYW9TdGF0ZVNhdmVQYXJhbXMiLCAnc3RhdGVTYXZlUGFyYW1zJywgW29TZXR0aW5ncywgb1N0YXRlXSApOwoJCQkKCQkJb1NldHRpbmdzLmZuU3RhdGVTYXZlLmNhbGwoIG9TZXR0aW5ncy5vSW5zdGFuY2UsIG9TZXR0aW5ncywgb1N0YXRlICk7CgkJfQoJCQoJCQoJCS8qKgoJCSAqIEF0dGVtcHQgdG8gbG9hZCBhIHNhdmVkIHRhYmxlIHN0YXRlIGZyb20gYSBjb29raWUKCQkgKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAoJCSAqICBAcGFyYW0ge29iamVjdH0gb0luaXQgRGF0YVRhYmxlcyBpbml0IG9iamVjdCBzbyB3ZSBjYW4gb3ZlcnJpZGUgc2V0dGluZ3MKCQkgKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCgkJICovCgkJZnVuY3Rpb24gX2ZuTG9hZFN0YXRlICggb1NldHRpbmdzLCBvSW5pdCApCgkJewoJCQlpZiAoICFvU2V0dGluZ3Mub0ZlYXR1cmVzLmJTdGF0ZVNhdmUgKQoJCQl7CgkJCQlyZXR1cm47CgkJCX0KCQkKCQkJdmFyIG9EYXRhID0gb1NldHRpbmdzLmZuU3RhdGVMb2FkLmNhbGwoIG9TZXR0aW5ncy5vSW5zdGFuY2UsIG9TZXR0aW5ncyApOwoJCQlpZiAoICFvRGF0YSApCgkJCXsKCQkJCXJldHVybjsKCQkJfQoJCQkKCQkJLyogQWxsb3cgY3VzdG9tIGFuZCBwbHVnLWluIG1hbmlwdWxhdGlvbiBmdW5jdGlvbnMgdG8gYWx0ZXIgdGhlIHNhdmVkIGRhdGEgc2V0IGFuZAoJCQkgKiBjYW5jZWxsaW5nIG9mIGxvYWRpbmcgYnkgcmV0dXJuaW5nIGZhbHNlCgkJCSAqLwoJCQl2YXIgYWJTdGF0ZUxvYWQgPSBfZm5DYWxsYmFja0ZpcmUoIG9TZXR0aW5ncywgJ2FvU3RhdGVMb2FkUGFyYW1zJywgJ3N0YXRlTG9hZFBhcmFtcycsIFtvU2V0dGluZ3MsIG9EYXRhXSApOwoJCQlpZiAoICQuaW5BcnJheSggZmFsc2UsIGFiU3RhdGVMb2FkICkgIT09IC0xICkKCQkJewoJCQkJcmV0dXJuOwoJCQl9CgkJCQoJCQkvKiBTdG9yZSB0aGUgc2F2ZWQgc3RhdGUgc28gaXQgbWlnaHQgYmUgYWNjZXNzZWQgYXQgYW55IHRpbWUgKi8KCQkJb1NldHRpbmdzLm9Mb2FkZWRTdGF0ZSA9ICQuZXh0ZW5kKCB0cnVlLCB7fSwgb0RhdGEgKTsKCQkJCgkJCS8qIFJlc3RvcmUga2V5IGZlYXR1cmVzICovCgkJCW9TZXR0aW5ncy5faURpc3BsYXlTdGFydCAgICA9IG9EYXRhLmlTdGFydDsKCQkJb1NldHRpbmdzLmlJbml0RGlzcGxheVN0YXJ0ID0gb0RhdGEuaVN0YXJ0OwoJCQlvU2V0dGluZ3MuX2lEaXNwbGF5RW5kICAgICAgPSBvRGF0YS5pRW5kOwoJCQlvU2V0dGluZ3MuX2lEaXNwbGF5TGVuZ3RoICAgPSBvRGF0YS5pTGVuZ3RoOwoJCQlvU2V0dGluZ3MuYWFTb3J0aW5nICAgICAgICAgPSBvRGF0YS5hYVNvcnRpbmcuc2xpY2UoKTsKCQkJb1NldHRpbmdzLnNhdmVkX2FhU29ydGluZyAgID0gb0RhdGEuYWFTb3J0aW5nLnNsaWNlKCk7CgkJCQoJCQkvKiBTZWFyY2ggZmlsdGVyaW5nICAqLwoJCQkkLmV4dGVuZCggb1NldHRpbmdzLm9QcmV2aW91c1NlYXJjaCwgb0RhdGEub1NlYXJjaCApOwoJCQkkLmV4dGVuZCggdHJ1ZSwgb1NldHRpbmdzLmFvUHJlU2VhcmNoQ29scywgb0RhdGEuYW9TZWFyY2hDb2xzICk7CgkJCQoJCQkvKiBDb2x1bW4gdmlzaWJpbGl0eSBzdGF0ZQoJCQkgKiBQYXNzIGJhY2sgdmlzaWJpbGl0eSBzZXR0aW5ncyB0byB0aGUgaW5pdCBoYW5kbGVyLCBidXQgdG8gZG8gbm90IGhlcmUgb3ZlcnJpZGUKCQkJICogdGhlIGluaXQgb2JqZWN0IHRoYXQgdGhlIHVzZXIgbWlnaHQgaGF2ZSBwYXNzZWQgaW4KCQkJICovCgkJCW9Jbml0LnNhdmVkX2FvQ29sdW1ucyA9IFtdOwoJCQlmb3IgKCB2YXIgaT0wIDsgaTxvRGF0YS5hYlZpc0NvbHMubGVuZ3RoIDsgaSsrICkKCQkJewoJCQkJb0luaXQuc2F2ZWRfYW9Db2x1bW5zW2ldID0ge307CgkJCQlvSW5pdC5zYXZlZF9hb0NvbHVtbnNbaV0uYlZpc2libGUgPSBvRGF0YS5hYlZpc0NvbHNbaV07CgkJCX0KCQkKCQkJX2ZuQ2FsbGJhY2tGaXJlKCBvU2V0dGluZ3MsICdhb1N0YXRlTG9hZGVkJywgJ3N0YXRlTG9hZGVkJywgW29TZXR0aW5ncywgb0RhdGFdICk7CgkJfQoJCQoJCQoJCS8qKgoJCSAqIENyZWF0ZSBhIG5ldyBjb29raWUgd2l0aCBhIHZhbHVlIHRvIHN0b3JlIHRoZSBzdGF0ZSBvZiBhIHRhYmxlCgkJICogIEBwYXJhbSB7c3RyaW5nfSBzTmFtZSBuYW1lIG9mIHRoZSBjb29raWUgdG8gY3JlYXRlCgkJICogIEBwYXJhbSB7c3RyaW5nfSBzVmFsdWUgdGhlIHZhbHVlIHRoZSBjb29raWUgc2hvdWxkIHRha2UKCQkgKiAgQHBhcmFtIHtpbnR9IGlTZWNzIGR1cmF0aW9uIG9mIHRoZSBjb29raWUKCQkgKiAgQHBhcmFtIHtzdHJpbmd9IHNCYXNlTmFtZSBzTmFtZSBpcyBtYWRlIHVwIG9mIHRoZSBiYXNlICsgZmlsZSBuYW1lIC0gdGhpcyBpcyB0aGUgYmFzZQoJCSAqICBAcGFyYW0ge2Z1bmN0aW9ufSBmbkNhbGxiYWNrIFVzZXIgZGVmaW5hYmxlIGZ1bmN0aW9uIHRvIG1vZGlmeSB0aGUgY29va2llCgkJICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQoJCSAqLwoJCWZ1bmN0aW9uIF9mbkNyZWF0ZUNvb2tpZSAoIHNOYW1lLCBzVmFsdWUsIGlTZWNzLCBzQmFzZU5hbWUsIGZuQ2FsbGJhY2sgKQoJCXsKCQkJdmFyIGRhdGUgPSBuZXcgRGF0ZSgpOwoJCQlkYXRlLnNldFRpbWUoIGRhdGUuZ2V0VGltZSgpKyhpU2VjcyoxMDAwKSApOwoJCQkKCQkJLyogCgkJCSAqIFNob2NraW5nIGJ1dCB0cnVlIC0gaXQgd291bGQgYXBwZWFyIElFIGhhcyBtYWpvciBpc3N1ZXMgd2l0aCBoYXZpbmcgdGhlIHBhdGggbm90IGhhdmluZwoJCQkgKiBhIHRyYWlsaW5nIHNsYXNoIG9uIGl0LiBXZSBuZWVkIHRoZSBjb29raWUgdG8gYmUgYXZhaWxhYmxlIGJhc2VkIG9uIHRoZSBwYXRoLCBzbyB3ZQoJCQkgKiBoYXZlIHRvIGFwcGVuZCB0aGUgZmlsZSBuYW1lIHRvIHRoZSBjb29raWUgbmFtZS4gQXBwYWxsaW5nLiBUaGFua3MgdG8gdmV4IGZvciBhZGRpbmcgdGhlCgkJCSAqIHBhdGNoIHRvIHVzZSBhdCBsZWFzdCBzb21lIG9mIHRoZSBwYXRoCgkJCSAqLwoJCQl2YXIgYVBhcnRzID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnNwbGl0KCcvJyk7CgkJCXZhciBzTmFtZUZpbGUgPSBzTmFtZSArICdfJyArIGFQYXJ0cy5wb3AoKS5yZXBsYWNlKC9bXC86XS9nLCIiKS50b0xvd2VyQ2FzZSgpOwoJCQl2YXIgc0Z1bGxDb29raWUsIG9EYXRhOwoJCQkKCQkJaWYgKCBmbkNhbGxiYWNrICE9PSBudWxsICkKCQkJewoJCQkJb0RhdGEgPSAodHlwZW9mICQucGFyc2VKU09OID09PSAnZnVuY3Rpb24nKSA/IAoJCQkJCSQucGFyc2VKU09OKCBzVmFsdWUgKSA6IGV2YWwoICcoJytzVmFsdWUrJyknICk7CgkJCQlzRnVsbENvb2tpZSA9IGZuQ2FsbGJhY2soIHNOYW1lRmlsZSwgb0RhdGEsIGRhdGUudG9HTVRTdHJpbmcoKSwKCQkJCQlhUGFydHMuam9pbignLycpKyIvIiApOwoJCQl9CgkJCWVsc2UKCQkJewoJCQkJc0Z1bGxDb29raWUgPSBzTmFtZUZpbGUgKyAiPSIgKyBlbmNvZGVVUklDb21wb25lbnQoc1ZhbHVlKSArCgkJCQkJIjsgZXhwaXJlcz0iICsgZGF0ZS50b0dNVFN0cmluZygpICsiOyBwYXRoPSIgKyBhUGFydHMuam9pbignLycpKyIvIjsKCQkJfQoJCQkKCQkJLyogQXJlIHdlIGdvaW5nIHRvIGdvIG92ZXIgdGhlIGNvb2tpZSBsaW1pdCBvZiA0S2lCPyBJZiBzbywgdHJ5IHRvIGRlbGV0ZSBhIGNvb2tpZXMKCQkJICogYmVsb25naW5nIHRvIERhdGFUYWJsZXMuIFRoaXMgaXMgRkFSIGZyb20gYnVsbGV0IHByb29mCgkJCSAqLwoJCQl2YXIgc09sZE5hbWU9IiIsIGlPbGRUaW1lPTk5OTk5OTk5OTk5OTk7CgkJCXZhciBpTGVuZ3RoID0gX2ZuUmVhZENvb2tpZSggc05hbWVGaWxlICkhPT1udWxsID8gZG9jdW1lbnQuY29va2llLmxlbmd0aCA6IAoJCQkJc0Z1bGxDb29raWUubGVuZ3RoICsgZG9jdW1lbnQuY29va2llLmxlbmd0aDsKCQkJCgkJCWlmICggaUxlbmd0aCsxMCA+IDQwOTYgKSAvKiBNYWdpYyAxMCBmb3IgcGFkZGluZyAqLwoJCQl7CgkJCQl2YXIgYUNvb2tpZXMgPWRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOycpOwoJCQkJZm9yICggdmFyIGk9MCwgaUxlbj1hQ29va2llcy5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCQkJewoJCQkJCWlmICggYUNvb2tpZXNbaV0uaW5kZXhPZiggc0Jhc2VOYW1lICkgIT0gLTEgKQoJCQkJCXsKCQkJCQkJLyogSXQncyBhIERhdGFUYWJsZXMgY29va2llLCBzbyBldmFsIGl0IGFuZCBjaGVjayB0aGUgdGltZSBzdGFtcCAqLwoJCQkJCQl2YXIgYVNwbGl0Q29va2llID0gYUNvb2tpZXNbaV0uc3BsaXQoJz0nKTsKCQkJCQkJdHJ5IHsgb0RhdGEgPSBldmFsKCAnKCcrZGVjb2RlVVJJQ29tcG9uZW50KGFTcGxpdENvb2tpZVsxXSkrJyknICk7IH0KCQkJCQkJY2F0Y2goIGUgKSB7IGNvbnRpbnVlOyB9CgkJCQkJCQoJCQkJCQlpZiAoIG9EYXRhLmlDcmVhdGUgJiYgb0RhdGEuaUNyZWF0ZSA8IGlPbGRUaW1lICkKCQkJCQkJewoJCQkJCQkJc09sZE5hbWUgPSBhU3BsaXRDb29raWVbMF07CgkJCQkJCQlpT2xkVGltZSA9IG9EYXRhLmlDcmVhdGU7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCQkKCQkJCWlmICggc09sZE5hbWUgIT09ICIiICkKCQkJCXsKCQkJCQlkb2N1bWVudC5jb29raWUgPSBzT2xkTmFtZSsiPTsgZXhwaXJlcz1UaHUsIDAxLUphbi0xOTcwIDAwOjAwOjAxIEdNVDsgcGF0aD0iKwoJCQkJCQlhUGFydHMuam9pbignLycpICsgIi8iOwoJCQkJfQoJCQl9CgkJCQoJCQlkb2N1bWVudC5jb29raWUgPSBzRnVsbENvb2tpZTsKCQl9CgkJCgkJCgkJLyoqCgkJICogUmVhZCBhbiBvbGQgY29va2llIHRvIGdldCBhIGNvb2tpZSB3aXRoIGFuIG9sZCB0YWJsZSBzdGF0ZQoJCSAqICBAcGFyYW0ge3N0cmluZ30gc05hbWUgbmFtZSBvZiB0aGUgY29va2llIHRvIHJlYWQKCQkgKiAgQHJldHVybnMge3N0cmluZ30gY29udGVudHMgb2YgdGhlIGNvb2tpZSAtIG9yIG51bGwgaWYgbm8gY29va2llIHdpdGggdGhhdCBuYW1lIGZvdW5kCgkJICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQoJCSAqLwoJCWZ1bmN0aW9uIF9mblJlYWRDb29raWUgKCBzTmFtZSApCgkJewoJCQl2YXIKCQkJCWFQYXJ0cyA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5zcGxpdCgnLycpLAoJCQkJc05hbWVFUSA9IHNOYW1lICsgJ18nICsgYVBhcnRzW2FQYXJ0cy5sZW5ndGgtMV0ucmVwbGFjZSgvW1wvOl0vZywiIikudG9Mb3dlckNhc2UoKSArICc9JywKCQkJIAlzQ29va2llQ29udGVudHMgPSBkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKTsKCQkJCgkJCWZvciggdmFyIGk9MCA7IGk8c0Nvb2tpZUNvbnRlbnRzLmxlbmd0aCA7IGkrKyApCgkJCXsKCQkJCXZhciBjID0gc0Nvb2tpZUNvbnRlbnRzW2ldOwoJCQkJCgkJCQl3aGlsZSAoYy5jaGFyQXQoMCk9PScgJykKCQkJCXsKCQkJCQljID0gYy5zdWJzdHJpbmcoMSxjLmxlbmd0aCk7CgkJCQl9CgkJCQkKCQkJCWlmIChjLmluZGV4T2Yoc05hbWVFUSkgPT09IDApCgkJCQl7CgkJCQkJcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCggYy5zdWJzdHJpbmcoc05hbWVFUS5sZW5ndGgsYy5sZW5ndGgpICk7CgkJCQl9CgkJCX0KCQkJcmV0dXJuIG51bGw7CgkJfQoJCQoJCQoJCQoJCS8qKgoJCSAqIFJldHVybiB0aGUgc2V0dGluZ3Mgb2JqZWN0IGZvciBhIHBhcnRpY3VsYXIgdGFibGUKCQkgKiAgQHBhcmFtIHtub2RlfSBuVGFibGUgdGFibGUgd2UgYXJlIHVzaW5nIGFzIGEgZGF0YVRhYmxlCgkJICogIEByZXR1cm5zIHtvYmplY3R9IFNldHRpbmdzIG9iamVjdCAtIG9yIG51bGwgaWYgbm90IGZvdW5kCgkJICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQoJCSAqLwoJCWZ1bmN0aW9uIF9mblNldHRpbmdzRnJvbU5vZGUgKCBuVGFibGUgKQoJCXsKCQkJZm9yICggdmFyIGk9MCA7IGk8RGF0YVRhYmxlLnNldHRpbmdzLmxlbmd0aCA7IGkrKyApCgkJCXsKCQkJCWlmICggRGF0YVRhYmxlLnNldHRpbmdzW2ldLm5UYWJsZSA9PT0gblRhYmxlICkKCQkJCXsKCQkJCQlyZXR1cm4gRGF0YVRhYmxlLnNldHRpbmdzW2ldOwoJCQkJfQoJCQl9CgkJCQoJCQlyZXR1cm4gbnVsbDsKCQl9CgkJCgkJCgkJLyoqCgkJICogUmV0dXJuIGFuIGFycmF5IHdpdGggdGhlIFRSIG5vZGVzIGZvciB0aGUgdGFibGUKCQkgKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAoJCSAqICBAcmV0dXJucyB7YXJyYXl9IFRSIGFycmF5CgkJICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQoJCSAqLwoJCWZ1bmN0aW9uIF9mbkdldFRyTm9kZXMgKCBvU2V0dGluZ3MgKQoJCXsKCQkJdmFyIGFOb2RlcyA9IFtdOwoJCQl2YXIgYW9EYXRhID0gb1NldHRpbmdzLmFvRGF0YTsKCQkJZm9yICggdmFyIGk9MCwgaUxlbj1hb0RhdGEubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQkJewoJCQkJaWYgKCBhb0RhdGFbaV0ublRyICE9PSBudWxsICkKCQkJCXsKCQkJCQlhTm9kZXMucHVzaCggYW9EYXRhW2ldLm5UciApOwoJCQkJfQoJCQl9CgkJCXJldHVybiBhTm9kZXM7CgkJfQoJCQoJCQoJCS8qKgoJCSAqIFJldHVybiBhbiBmbGF0IGFycmF5IHdpdGggYWxsIFREIG5vZGVzIGZvciB0aGUgdGFibGUsIG9yIHJvdwoJCSAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CgkJICogIEBwYXJhbSB7aW50fSBbaUluZGl2aWR1YWxSb3ddIGFvRGF0YSBpbmRleCB0byBnZXQgdGhlIG5vZGVzIGZvciAtIG9wdGlvbmFsIAoJCSAqICAgIGlmIG5vdCBnaXZlbiB0aGVuIHRoZSByZXR1cm4gYXJyYXkgd2lsbCBjb250YWluIGFsbCBub2RlcyBmb3IgdGhlIHRhYmxlCgkJICogIEByZXR1cm5zIHthcnJheX0gVEQgYXJyYXkKCQkgKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCgkJICovCgkJZnVuY3Rpb24gX2ZuR2V0VGROb2RlcyAoIG9TZXR0aW5ncywgaUluZGl2aWR1YWxSb3cgKQoJCXsKCQkJdmFyIGFuUmV0dXJuID0gW107CgkJCXZhciBpQ29ycmVjdG9yOwoJCQl2YXIgYW5UZHM7CgkJCXZhciBpUm93LCBpUm93cz1vU2V0dGluZ3MuYW9EYXRhLmxlbmd0aCwKCQkJCWlDb2x1bW4sIGlDb2x1bW5zLCBvRGF0YSwgc05vZGVOYW1lLCBpU3RhcnQ9MCwgaUVuZD1pUm93czsKCQkJCgkJCS8qIEFsbG93IHRoZSBjb2xsZWN0aW9uIHRvIGJlIGxpbWl0ZWQgdG8ganVzdCBvbmUgcm93ICovCgkJCWlmICggaUluZGl2aWR1YWxSb3cgIT09IHVuZGVmaW5lZCApCgkJCXsKCQkJCWlTdGFydCA9IGlJbmRpdmlkdWFsUm93OwoJCQkJaUVuZCA9IGlJbmRpdmlkdWFsUm93KzE7CgkJCX0KCQkKCQkJZm9yICggaVJvdz1pU3RhcnQgOyBpUm93PGlFbmQgOyBpUm93KysgKQoJCQl7CgkJCQlvRGF0YSA9IG9TZXR0aW5ncy5hb0RhdGFbaVJvd107CgkJCQlpZiAoIG9EYXRhLm5UciAhPT0gbnVsbCApCgkJCQl7CgkJCQkJLyogZ2V0IHRoZSBURCBjaGlsZCBub2RlcyAtIHRha2luZyBpbnRvIGFjY291bnQgdGV4dCBldGMgbm9kZXMgKi8KCQkJCQlhblRkcyA9IFtdOwoJCQkJCWZvciAoIGlDb2x1bW49MCwgaUNvbHVtbnM9b0RhdGEublRyLmNoaWxkTm9kZXMubGVuZ3RoIDsgaUNvbHVtbjxpQ29sdW1ucyA7IGlDb2x1bW4rKyApCgkJCQkJewoJCQkJCQlzTm9kZU5hbWUgPSBvRGF0YS5uVHIuY2hpbGROb2Rlc1tpQ29sdW1uXS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpOwoJCQkJCQlpZiAoIHNOb2RlTmFtZSA9PSAndGQnIHx8IHNOb2RlTmFtZSA9PSAndGgnICkKCQkJCQkJewoJCQkJCQkJYW5UZHMucHVzaCggb0RhdGEublRyLmNoaWxkTm9kZXNbaUNvbHVtbl0gKTsKCQkJCQkJfQoJCQkJCX0KCQkKCQkJCQlpQ29ycmVjdG9yID0gMDsKCQkJCQlmb3IgKCBpQ29sdW1uPTAsIGlDb2x1bW5zPW9TZXR0aW5ncy5hb0NvbHVtbnMubGVuZ3RoIDsgaUNvbHVtbjxpQ29sdW1ucyA7IGlDb2x1bW4rKyApCgkJCQkJewoJCQkJCQlpZiAoIG9TZXR0aW5ncy5hb0NvbHVtbnNbaUNvbHVtbl0uYlZpc2libGUgKQoJCQkJCQl7CgkJCQkJCQlhblJldHVybi5wdXNoKCBhblRkc1tpQ29sdW1uLWlDb3JyZWN0b3JdICk7CgkJCQkJCX0KCQkJCQkJZWxzZQoJCQkJCQl7CgkJCQkJCQlhblJldHVybi5wdXNoKCBvRGF0YS5fYW5IaWRkZW5baUNvbHVtbl0gKTsKCQkJCQkJCWlDb3JyZWN0b3IrKzsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJfQoJCQoJCQlyZXR1cm4gYW5SZXR1cm47CgkJfQoJCQoJCQoJCS8qKgoJCSAqIExvZyBhbiBlcnJvciBtZXNzYWdlCgkJICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCQkgKiAgQHBhcmFtIHtpbnR9IGlMZXZlbCBsb2cgZXJyb3IgbWVzc2FnZXMsIG9yIGRpc3BsYXkgdGhlbSB0byB0aGUgdXNlcgoJCSAqICBAcGFyYW0ge3N0cmluZ30gc01lc2cgZXJyb3IgbWVzc2FnZQoJCSAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKCQkgKi8KCQlmdW5jdGlvbiBfZm5Mb2coIG9TZXR0aW5ncywgaUxldmVsLCBzTWVzZyApCgkJewoJCQl2YXIgc0FsZXJ0ID0gKG9TZXR0aW5ncz09PW51bGwpID8KCQkJCSJEYXRhVGFibGVzIHdhcm5pbmc6ICIrc01lc2cgOgoJCQkJIkRhdGFUYWJsZXMgd2FybmluZyAodGFibGUgaWQgPSAnIitvU2V0dGluZ3Muc1RhYmxlSWQrIicpOiAiK3NNZXNnOwoJCQkKCQkJaWYgKCBpTGV2ZWwgPT09IDAgKQoJCQl7CgkJCQlpZiAoIERhdGFUYWJsZS5leHQuc0Vyck1vZGUgPT0gJ2FsZXJ0JyApCgkJCQl7CgkJCQkJYWxlcnQoIHNBbGVydCApOwoJCQkJfQoJCQkJZWxzZQoJCQkJewoJCQkJCXRocm93IG5ldyBFcnJvcihzQWxlcnQpOwoJCQkJfQoJCQkJcmV0dXJuOwoJCQl9CgkJCWVsc2UgaWYgKCB3aW5kb3cuY29uc29sZSAmJiBjb25zb2xlLmxvZyApCgkJCXsKCQkJCWNvbnNvbGUubG9nKCBzQWxlcnQgKTsKCQkJfQoJCX0KCQkKCQkKCQkvKioKCQkgKiBTZWUgaWYgYSBwcm9wZXJ0eSBpcyBkZWZpbmVkIG9uIG9uZSBvYmplY3QsIGlmIHNvIGFzc2lnbiBpdCB0byB0aGUgb3RoZXIgb2JqZWN0CgkJICogIEBwYXJhbSB7b2JqZWN0fSBvUmV0IHRhcmdldCBvYmplY3QKCQkgKiAgQHBhcmFtIHtvYmplY3R9IG9TcmMgc291cmNlIG9iamVjdAoJCSAqICBAcGFyYW0ge3N0cmluZ30gc05hbWUgcHJvcGVydHkKCQkgKiAgQHBhcmFtIHtzdHJpbmd9IFtzTWFwcGVkTmFtZV0gbmFtZSB0byBtYXAgdG9vIC0gb3B0aW9uYWwsIHNOYW1lIHVzZWQgaWYgbm90IGdpdmVuCgkJICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQoJCSAqLwoJCWZ1bmN0aW9uIF9mbk1hcCggb1JldCwgb1NyYywgc05hbWUsIHNNYXBwZWROYW1lICkKCQl7CgkJCWlmICggc01hcHBlZE5hbWUgPT09IHVuZGVmaW5lZCApCgkJCXsKCQkJCXNNYXBwZWROYW1lID0gc05hbWU7CgkJCX0KCQkJaWYgKCBvU3JjW3NOYW1lXSAhPT0gdW5kZWZpbmVkICkKCQkJewoJCQkJb1JldFtzTWFwcGVkTmFtZV0gPSBvU3JjW3NOYW1lXTsKCQkJfQoJCX0KCQkKCQkKCQkvKioKCQkgKiBFeHRlbmQgb2JqZWN0cyAtIHZlcnkgc2ltaWxhciB0byBqUXVlcnkuZXh0ZW5kLCBidXQgZGVlcCBjb3B5IG9iamVjdHMsIGFuZCBzaGFsbG93CgkJICogY29weSBhcnJheXMuIFRoZSByZWFzb24gd2UgbmVlZCB0byBkbyB0aGlzLCBpcyB0aGF0IHdlIGRvbid0IHdhbnQgdG8gZGVlcCBjb3B5IGFycmF5CgkJICogaW5pdCB2YWx1ZXMgKHN1Y2ggYXMgYWFTb3J0aW5nKSBzaW5jZSB0aGUgZGV2IHdvdWxkbid0IGJlIGFibGUgdG8gb3ZlcnJpZGUgdGhlbSwgYnV0CgkJICogd2UgZG8gd2FudCB0byBkZWVwIGNvcHkgYXJyYXlzLgoJCSAqICBAcGFyYW0ge29iamVjdH0gb091dCBPYmplY3QgdG8gZXh0ZW5kCgkJICogIEBwYXJhbSB7b2JqZWN0fSBvRXh0ZW5kZXIgT2JqZWN0IGZyb20gd2hpY2ggdGhlIHByb3BlcnRpZXMgd2lsbCBiZSBhcHBsaWVkIHRvIG9PdXQKCQkgKiAgQHJldHVybnMge29iamVjdH0gb091dCBSZWZlcmVuY2UsIGp1c3QgZm9yIGNvbnZlbmllbmNlIC0gb091dCA9PT0gdGhlIHJldHVybi4KCQkgKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCgkJICogIEB0b2RvIFRoaXMgZG9lc24ndCB0YWtlIGFjY291bnQgb2YgYXJyYXlzIGluc2lkZSB0aGUgZGVlcCBjb3BpZWQgb2JqZWN0cy4KCQkgKi8KCQlmdW5jdGlvbiBfZm5FeHRlbmQoIG9PdXQsIG9FeHRlbmRlciApCgkJewoJCQl2YXIgdmFsOwoJCQkKCQkJZm9yICggdmFyIHByb3AgaW4gb0V4dGVuZGVyICkKCQkJewoJCQkJaWYgKCBvRXh0ZW5kZXIuaGFzT3duUHJvcGVydHkocHJvcCkgKQoJCQkJewoJCQkJCXZhbCA9IG9FeHRlbmRlcltwcm9wXTsKCQkKCQkJCQlpZiAoIHR5cGVvZiBvSW5pdFtwcm9wXSA9PT0gJ29iamVjdCcgJiYgdmFsICE9PSBudWxsICYmICQuaXNBcnJheSh2YWwpID09PSBmYWxzZSApCgkJCQkJewoJCQkJCQkkLmV4dGVuZCggdHJ1ZSwgb091dFtwcm9wXSwgdmFsICk7CgkJCQkJfQoJCQkJCWVsc2UKCQkJCQl7CgkJCQkJCW9PdXRbcHJvcF0gPSB2YWw7CgkJCQkJfQoJCQkJfQoJCQl9CgkJCgkJCXJldHVybiBvT3V0OwoJCX0KCQkKCQkKCQkvKioKCQkgKiBCaW5kIGFuIGV2ZW50IGhhbmRlcnMgdG8gYWxsb3cgYSBjbGljayBvciByZXR1cm4ga2V5IHRvIGFjdGl2YXRlIHRoZSBjYWxsYmFjay4KCQkgKiBUaGlzIGlzIGdvb2QgZm9yIGFjY2Vzc2liaWxpdHkgc2luY2UgYSByZXR1cm4gb24gdGhlIGtleWJvYXJkIHdpbGwgaGF2ZSB0aGUKCQkgKiBzYW1lIGVmZmVjdCBhcyBhIGNsaWNrLCBpZiB0aGUgZWxlbWVudCBoYXMgZm9jdXMuCgkJICogIEBwYXJhbSB7ZWxlbWVudH0gbiBFbGVtZW50IHRvIGJpbmQgdGhlIGFjdGlvbiB0bwoJCSAqICBAcGFyYW0ge29iamVjdH0gb0RhdGEgRGF0YSBvYmplY3QgdG8gcGFzcyB0byB0aGUgdHJpZ2dlcmVkIGZ1bmN0aW9uCgkJICogIEBwYXJhbSB7ZnVuY3Rpb259IGZuIENhbGxiYWNrIGZ1bmN0aW9uIGZvciB3aGVuIHRoZSBldmVudCBpcyB0cmlnZ2VyZWQKCQkgKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCgkJICovCgkJZnVuY3Rpb24gX2ZuQmluZEFjdGlvbiggbiwgb0RhdGEsIGZuICkKCQl7CgkJCSQobikKCQkJCS5iaW5kKCAnY2xpY2suRFQnLCBvRGF0YSwgZnVuY3Rpb24gKGUpIHsKCQkJCQkJbi5ibHVyKCk7IC8vIFJlbW92ZSBmb2N1cyBvdXRsaW5lIGZvciBtb3VzZSB1c2VycwoJCQkJCQlmbihlKTsKCQkJCQl9ICkKCQkJCS5iaW5kKCAna2V5cHJlc3MuRFQnLCBvRGF0YSwgZnVuY3Rpb24gKGUpewoJCQkJCWlmICggZS53aGljaCA9PT0gMTMgKSB7CgkJCQkJCWZuKGUpOwoJCQkJCX0gfSApCgkJCQkuYmluZCggJ3NlbGVjdHN0YXJ0LkRUJywgZnVuY3Rpb24gKCkgewoJCQkJCS8qIFRha2UgdGhlIGJydXRhbCBhcHByb2FjaCB0byBjYW5jZWxsaW5nIHRleHQgc2VsZWN0aW9uICovCgkJCQkJcmV0dXJuIGZhbHNlOwoJCQkJCX0gKTsKCQl9CgkJCgkJCgkJLyoqCgkJICogUmVnaXN0ZXIgYSBjYWxsYmFjayBmdW5jdGlvbi4gRWFzaWx5IGFsbG93cyBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGFkZGVkIHRvCgkJICogYW4gYXJyYXkgc3RvcmUgb2YgY2FsbGJhY2sgZnVuY3Rpb25zIHRoYXQgY2FuIHRoZW4gYWxsIGJlIGNhbGxlZCB0b2dldGhlci4KCQkgKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAoJCSAqICBAcGFyYW0ge3N0cmluZ30gc1N0b3JlIE5hbWUgb2YgdGhlIGFycmF5IHN0b3JhZ2UgZm9yIHRoZSBjYWxsYmFja3MgaW4gb1NldHRpbmdzCgkJICogIEBwYXJhbSB7ZnVuY3Rpb259IGZuIEZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBiYWNrCgkJICogIEBwYXJhbSB7c3RyaW5nfSBzTmFtZSBJZGVudGlmeWluZyBuYW1lIGZvciB0aGUgY2FsbGJhY2sgKGkuZS4gYSBsYWJlbCkKCQkgKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCgkJICovCgkJZnVuY3Rpb24gX2ZuQ2FsbGJhY2tSZWcoIG9TZXR0aW5ncywgc1N0b3JlLCBmbiwgc05hbWUgKQoJCXsKCQkJaWYgKCBmbiApCgkJCXsKCQkJCW9TZXR0aW5nc1tzU3RvcmVdLnB1c2goIHsKCQkJCQkiZm4iOiBmbiwKCQkJCQkic05hbWUiOiBzTmFtZQoJCQkJfSApOwoJCQl9CgkJfQoJCQoJCQoJCS8qKgoJCSAqIEZpcmUgY2FsbGJhY2sgZnVuY3Rpb25zIGFuZCB0cmlnZ2VyIGV2ZW50cy4gTm90ZSB0aGF0IHRoZSBsb29wIG92ZXIgdGhlIGNhbGxiYWNrCgkJICogYXJyYXkgc3RvcmUgaXMgZG9uZSBiYWNrd2FyZHMhIEZ1cnRoZXIgbm90ZSB0aGF0IHlvdSBkbyBub3Qgd2FudCB0byBmaXJlIG9mZiB0cmlnZ2VycwoJCSAqIGluIHRpbWUgc2Vuc2l0aXZlIGFwcGxpY2F0aW9ucyAoZm9yIGV4YW1wbGUgY2VsbCBjcmVhdGlvbikgYXMgaXRzIHNsb3cuCgkJICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCQkgKiAgQHBhcmFtIHtzdHJpbmd9IHNTdG9yZSBOYW1lIG9mIHRoZSBhcnJheSBzdG9yYWdlIGZvciB0aGUgY2FsbGJhY2tzIGluIG9TZXR0aW5ncwoJCSAqICBAcGFyYW0ge3N0cmluZ30gc1RyaWdnZXIgTmFtZSBvZiB0aGUgalF1ZXJ5IGN1c3RvbSBldmVudCB0byB0cmlnZ2VyLiBJZiBudWxsIG5vIHRyaWdnZXIKCQkgKiAgICBpcyBmaXJlZAoJCSAqICBAcGFyYW0ge2FycmF5fSBhQXJncyBBcnJheSBvZiBhcmd1bWVudHMgdG8gcGFzcyB0byB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gLyB0cmlnZ2VyCgkJICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQoJCSAqLwoJCWZ1bmN0aW9uIF9mbkNhbGxiYWNrRmlyZSggb1NldHRpbmdzLCBzU3RvcmUsIHNUcmlnZ2VyLCBhQXJncyApCgkJewoJCQl2YXIgYW9TdG9yZSA9IG9TZXR0aW5nc1tzU3RvcmVdOwoJCQl2YXIgYVJldCA9W107CgkJCgkJCWZvciAoIHZhciBpPWFvU3RvcmUubGVuZ3RoLTEgOyBpPj0wIDsgaS0tICkKCQkJewoJCQkJYVJldC5wdXNoKCBhb1N0b3JlW2ldLmZuLmFwcGx5KCBvU2V0dGluZ3Mub0luc3RhbmNlLCBhQXJncyApICk7CgkJCX0KCQkKCQkJaWYgKCBzVHJpZ2dlciAhPT0gbnVsbCApCgkJCXsKCQkJCSQob1NldHRpbmdzLm9JbnN0YW5jZSkudHJpZ2dlcihzVHJpZ2dlciwgYUFyZ3MpOwoJCQl9CgkJCgkJCXJldHVybiBhUmV0OwoJCX0KCQkKCQkKCQkvKioKCQkgKiBKU09OIHN0cmluZ2lmeS4gSWYgSlNPTi5zdHJpbmdpZnkgaXQgcHJvdmlkZWQgYnkgdGhlIGJyb3dzZXIsIGpzb24yLmpzIG9yIGFueSBvdGhlcgoJCSAqIGxpYnJhcnksIHRoZW4gd2UgdXNlIHRoYXQgYXMgaXQgaXMgZmFzdCwgc2FmZSBhbmQgYWNjdXJhdGUuIElmIHRoZSBmdW5jdGlvbiBpc24ndCAKCQkgKiBhdmFpbGFibGUgdGhlbiB3ZSBuZWVkIHRvIGJ1aWx0IGl0IG91cnNlbHZlcyAtIHRoZSBpbnNwaXJhdGlvbiBmb3IgdGhpcyBmdW5jdGlvbiBjb21lcwoJCSAqIGZyb20gQ3JhaWcgQnVja2xlciAoIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9qYXZhc2NyaXB0LWpzb24tc2VyaWFsaXphdGlvbi8gKS4gSXQgaXMKCQkgKiBub3QgcGVyZmVjdCBhbmQgYWJzb2x1dGVseSBzaG91bGQgbm90IGJlIHVzZWQgYXMgYSByZXBsYWNlbWVudCB0byBqc29uMi5qcyAtIGJ1dCBpdCBkb2VzCgkJICogZG8gd2hhdCB3ZSBuZWVkLCB3aXRob3V0IHJlcXVpcmluZyBhIGRlcGVuZGVuY3kgZm9yIERhdGFUYWJsZXMuCgkJICogIEBwYXJhbSB7b2JqZWN0fSBvIEpTT04gb2JqZWN0IHRvIGJlIGNvbnZlcnRlZAoJCSAqICBAcmV0dXJucyB7c3RyaW5nfSBKU09OIHN0cmluZwoJCSAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKCQkgKi8KCQl2YXIgX2ZuSnNvblN0cmluZyA9ICh3aW5kb3cuSlNPTikgPyBKU09OLnN0cmluZ2lmeSA6IGZ1bmN0aW9uKCBvICkKCQl7CgkJCS8qIE5vdCBhbiBvYmplY3Qgb3IgYXJyYXkgKi8KCQkJdmFyIHNUeXBlID0gdHlwZW9mIG87CgkJCWlmIChzVHlwZSAhPT0gIm9iamVjdCIgfHwgbyA9PT0gbnVsbCkKCQkJewoJCQkJLy8gc2ltcGxlIGRhdGEgdHlwZQoJCQkJaWYgKHNUeXBlID09PSAic3RyaW5nIikKCQkJCXsKCQkJCQlvID0gJyInK28rJyInOwoJCQkJfQoJCQkJcmV0dXJuIG8rIiI7CgkJCX0KCQkKCQkJLyogSWYgb2JqZWN0IG9yIGFycmF5LCBuZWVkIHRvIHJlY3Vyc2Ugb3ZlciBpdCAqLwoJCQl2YXIKCQkJCXNQcm9wLCBtVmFsdWUsCgkJCQlqc29uID0gW10sCgkJCQliQXJyID0gJC5pc0FycmF5KG8pOwoJCQkKCQkJZm9yIChzUHJvcCBpbiBvKQoJCQl7CgkJCQltVmFsdWUgPSBvW3NQcm9wXTsKCQkJCXNUeXBlID0gdHlwZW9mIG1WYWx1ZTsKCQkKCQkJCWlmIChzVHlwZSA9PT0gInN0cmluZyIpCgkJCQl7CgkJCQkJbVZhbHVlID0gJyInK21WYWx1ZSsnIic7CgkJCQl9CgkJCQllbHNlIGlmIChzVHlwZSA9PT0gIm9iamVjdCIgJiYgbVZhbHVlICE9PSBudWxsKQoJCQkJewoJCQkJCW1WYWx1ZSA9IF9mbkpzb25TdHJpbmcobVZhbHVlKTsKCQkJCX0KCQkKCQkJCWpzb24ucHVzaCgoYkFyciA/ICIiIDogJyInK3NQcm9wKyciOicpICsgbVZhbHVlKTsKCQkJfQoJCQoJCQlyZXR1cm4gKGJBcnIgPyAiWyIgOiAieyIpICsganNvbiArIChiQXJyID8gIl0iIDogIn0iKTsKCQl9OwoJCQoJCQoJCS8qKgoJCSAqIEZyb20gc29tZSBicm93c2VycyAoc3BlY2lmaWNhbGx5IElFNi83KSB3ZSBuZWVkIHNwZWNpYWwgaGFuZGxpbmcgdG8gd29yayBhcm91bmQgYnJvd3NlcgoJCSAqIGJ1Z3MgLSB0aGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gZGV0ZWN0IHdoZW4gdGhlc2Ugd29ya2Fyb3VuZHMgYXJlIG5lZWRlZC4KCQkgKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAoJCSAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKCQkgKi8KCQlmdW5jdGlvbiBfZm5Ccm93c2VyRGV0ZWN0KCBvU2V0dGluZ3MgKQoJCXsKCQkJLyogSUU2Lzcgd2lsbCBvdmVyc2l6ZSBhIHdpZHRoIDEwMCUgZWxlbWVudCBpbnNpZGUgYSBzY3JvbGxpbmcgZWxlbWVudCwgdG8gaW5jbHVkZSB0aGUKCQkJICogd2lkdGggb2YgdGhlIHNjcm9sbGJhciwgd2hpbGUgb3RoZXIgYnJvd3NlcnMgZW5zdXJlIHRoZSBpbm5lciBlbGVtZW50IGlzIGNvbnRhaW5lZAoJCQkgKiB3aXRob3V0IGZvcmNpbmcgc2Nyb2xsaW5nCgkJCSAqLwoJCQl2YXIgbiA9ICQoCgkJCQknPGRpdiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBsZWZ0OjA7IGhlaWdodDoxcHg7IHdpZHRoOjFweDsgb3ZlcmZsb3c6aGlkZGVuIj4nKwoJCQkJCSc8ZGl2IHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjFweDsgbGVmdDoxcHg7IHdpZHRoOjEwMHB4OyBoZWlnaHQ6NTBweDsgb3ZlcmZsb3c6c2Nyb2xsOyI+JysKCQkJCQkJJzxkaXYgaWQ9IkRUX0Jyb3dzZXJUZXN0IiBzdHlsZT0id2lkdGg6MTAwJTsgaGVpZ2h0OjEwcHg7Ij48L2Rpdj4nKwoJCQkJCSc8L2Rpdj4nKwoJCQkJJzwvZGl2PicpWzBdOwoJCQoJCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKCBuICk7CgkJCW9TZXR0aW5ncy5vQnJvd3Nlci5iU2Nyb2xsT3ZlcnNpemUgPSAkKCcjRFRfQnJvd3NlclRlc3QnLCBuKVswXS5vZmZzZXRXaWR0aCA9PT0gMTAwID8gdHJ1ZSA6IGZhbHNlOwoJCQlkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKCBuICk7CgkJfQoJCQoKCQkKCQkKCQkvKioKCQkgKiBQZXJmb3JtIGEgalF1ZXJ5IHNlbGVjdG9yIGFjdGlvbiBvbiB0aGUgdGFibGUncyBUUiBlbGVtZW50cyAoZnJvbSB0aGUgdGJvZHkpIGFuZAoJCSAqIHJldHVybiB0aGUgcmVzdWx0aW5nIGpRdWVyeSBvYmplY3QuCgkJICogIEBwYXJhbSB7c3RyaW5nfG5vZGV8alF1ZXJ5fSBzU2VsZWN0b3IgalF1ZXJ5IHNlbGVjdG9yIG9yIG5vZGUgY29sbGVjdGlvbiB0byBhY3Qgb24KCQkgKiAgQHBhcmFtIHtvYmplY3R9IFtvT3B0c10gT3B0aW9uYWwgcGFyYW1ldGVycyBmb3IgbW9kaWZ5aW5nIHRoZSByb3dzIHRvIGJlIGluY2x1ZGVkCgkJICogIEBwYXJhbSB7c3RyaW5nfSBbb09wdHMuZmlsdGVyPW5vbmVdIFNlbGVjdCBUUiBlbGVtZW50cyB0aGF0IG1lZXQgdGhlIGN1cnJlbnQgZmlsdGVyCgkJICogICAgY3JpdGVyaW9uICgiYXBwbGllZCIpIG9yIGFsbCBUUiBlbGVtZW50cyAoaS5lLiBubyBmaWx0ZXIpLgoJCSAqICBAcGFyYW0ge3N0cmluZ30gW29PcHRzLm9yZGVyPWN1cnJlbnRdIE9yZGVyIG9mIHRoZSBUUiBlbGVtZW50cyBpbiB0aGUgcHJvY2Vzc2VkIGFycmF5LgoJCSAqICAgIENhbiBiZSBlaXRoZXIgJ2N1cnJlbnQnLCB3aGVyZWJ5IHRoZSBjdXJyZW50IHNvcnRpbmcgb2YgdGhlIHRhYmxlIGlzIHVzZWQsIG9yCgkJICogICAgJ29yaWdpbmFsJyB3aGVyZWJ5IHRoZSBvcmlnaW5hbCBvcmRlciB0aGUgZGF0YSB3YXMgcmVhZCBpbnRvIHRoZSB0YWJsZSBpcyB1c2VkLgoJCSAqICBAcGFyYW0ge3N0cmluZ30gW29PcHRzLnBhZ2U9YWxsXSBMaW1pdCB0aGUgc2VsZWN0aW9uIHRvIHRoZSBjdXJyZW50bHkgZGlzcGxheWVkIHBhZ2UKCQkgKiAgICAoImN1cnJlbnQiKSBvciBub3QgKCJhbGwiKS4gSWYgJ2N1cnJlbnQnIGlzIGdpdmVuLCB0aGVuIG9yZGVyIGlzIGFzc3VtZWQgdG8gYmUgCgkJICogICAgJ2N1cnJlbnQnIGFuZCBmaWx0ZXIgaXMgJ2FwcGxpZWQnLCByZWdhcmRsZXNzIG9mIHdoYXQgdGhleSBtaWdodCBiZSBnaXZlbiBhcy4KCQkgKiAgQHJldHVybnMge29iamVjdH0galF1ZXJ5IG9iamVjdCwgZmlsdGVyZWQgYnkgdGhlIGdpdmVuIHNlbGVjdG9yLgoJCSAqICBAZHRvcHQgQVBJCgkJICoKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKCQkgKiAgICAgIHZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJCSAqCgkJICogICAgICAvLyBIaWdobGlnaHQgZXZlcnkgc2Vjb25kIHJvdwoJCSAqICAgICAgb1RhYmxlLiQoJ3RyOm9kZCcpLmNzcygnYmFja2dyb3VuZENvbG9yJywgJ2JsdWUnKTsKCQkgKiAgICB9ICk7CgkJICoKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKCQkgKiAgICAgIHZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJCSAqCgkJICogICAgICAvLyBGaWx0ZXIgdG8gcm93cyB3aXRoICdXZWJraXQnIGluIHRoZW0sIGFkZCBhIGJhY2tncm91bmQgY29sb3VyIGFuZCB0aGVuCgkJICogICAgICAvLyByZW1vdmUgdGhlIGZpbHRlciwgdGh1cyBoaWdobGlnaHRpbmcgdGhlICdXZWJraXQnIHJvd3Mgb25seS4KCQkgKiAgICAgIG9UYWJsZS5mbkZpbHRlcignV2Via2l0Jyk7CgkJICogICAgICBvVGFibGUuJCgndHInLCB7ImZpbHRlciI6ICJhcHBsaWVkIn0pLmNzcygnYmFja2dyb3VuZENvbG9yJywgJ2JsdWUnKTsKCQkgKiAgICAgIG9UYWJsZS5mbkZpbHRlcignJyk7CgkJICogICAgfSApOwoJCSAqLwoJCXRoaXMuJCA9IGZ1bmN0aW9uICggc1NlbGVjdG9yLCBvT3B0cyApCgkJewoJCQl2YXIgaSwgaUxlbiwgYSA9IFtdLCB0cjsKCQkJdmFyIG9TZXR0aW5ncyA9IF9mblNldHRpbmdzRnJvbU5vZGUoIHRoaXNbRGF0YVRhYmxlLmV4dC5pQXBpSW5kZXhdICk7CgkJCXZhciBhb0RhdGEgPSBvU2V0dGluZ3MuYW9EYXRhOwoJCQl2YXIgYWlEaXNwbGF5ID0gb1NldHRpbmdzLmFpRGlzcGxheTsKCQkJdmFyIGFpRGlzcGxheU1hc3RlciA9IG9TZXR0aW5ncy5haURpc3BsYXlNYXN0ZXI7CgkJCgkJCWlmICggIW9PcHRzICkKCQkJewoJCQkJb09wdHMgPSB7fTsKCQkJfQoJCQoJCQlvT3B0cyA9ICQuZXh0ZW5kKCB7fSwgewoJCQkJImZpbHRlciI6ICJub25lIiwgLy8gYXBwbGllZAoJCQkJIm9yZGVyIjogImN1cnJlbnQiLCAvLyAib3JpZ2luYWwiCgkJCQkicGFnZSI6ICJhbGwiIC8vIGN1cnJlbnQKCQkJfSwgb09wdHMgKTsKCQkKCQkJLy8gQ3VycmVudCBwYWdlIGltcGxpZXMgdGhhdCBvcmRlcj1jdXJyZW50IGFuZCBmaXRsZXI9YXBwbGllZCwgc2luY2UgaXQgaXMgZmFpcmx5CgkJCS8vIHNlbnNlbGVzcyBvdGhlcndpc2UKCQkJaWYgKCBvT3B0cy5wYWdlID09ICdjdXJyZW50JyApCgkJCXsKCQkJCWZvciAoIGk9b1NldHRpbmdzLl9pRGlzcGxheVN0YXJ0LCBpTGVuPW9TZXR0aW5ncy5mbkRpc3BsYXlFbmQoKSA7IGk8aUxlbiA7IGkrKyApCgkJCQl7CgkJCQkJdHIgPSBhb0RhdGFbIGFpRGlzcGxheVtpXSBdLm5UcjsKCQkJCQlpZiAoIHRyICkKCQkJCQl7CgkJCQkJCWEucHVzaCggdHIgKTsKCQkJCQl9CgkJCQl9CgkJCX0KCQkJZWxzZSBpZiAoIG9PcHRzLm9yZGVyID09ICJjdXJyZW50IiAmJiBvT3B0cy5maWx0ZXIgPT0gIm5vbmUiICkKCQkJewoJCQkJZm9yICggaT0wLCBpTGVuPWFpRGlzcGxheU1hc3Rlci5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCQkJewoJCQkJCXRyID0gYW9EYXRhWyBhaURpc3BsYXlNYXN0ZXJbaV0gXS5uVHI7CgkJCQkJaWYgKCB0ciApCgkJCQkJewoJCQkJCQlhLnB1c2goIHRyICk7CgkJCQkJfQoJCQkJfQoJCQl9CgkJCWVsc2UgaWYgKCBvT3B0cy5vcmRlciA9PSAiY3VycmVudCIgJiYgb09wdHMuZmlsdGVyID09ICJhcHBsaWVkIiApCgkJCXsKCQkJCWZvciAoIGk9MCwgaUxlbj1haURpc3BsYXkubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQkJCXsKCQkJCQl0ciA9IGFvRGF0YVsgYWlEaXNwbGF5W2ldIF0ublRyOwoJCQkJCWlmICggdHIgKQoJCQkJCXsKCQkJCQkJYS5wdXNoKCB0ciApOwoJCQkJCX0KCQkJCX0KCQkJfQoJCQllbHNlIGlmICggb09wdHMub3JkZXIgPT0gIm9yaWdpbmFsIiAmJiBvT3B0cy5maWx0ZXIgPT0gIm5vbmUiICkKCQkJewoJCQkJZm9yICggaT0wLCBpTGVuPWFvRGF0YS5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCQkJewoJCQkJCXRyID0gYW9EYXRhWyBpIF0ublRyIDsKCQkJCQlpZiAoIHRyICkKCQkJCQl7CgkJCQkJCWEucHVzaCggdHIgKTsKCQkJCQl9CgkJCQl9CgkJCX0KCQkJZWxzZSBpZiAoIG9PcHRzLm9yZGVyID09ICJvcmlnaW5hbCIgJiYgb09wdHMuZmlsdGVyID09ICJhcHBsaWVkIiApCgkJCXsKCQkJCWZvciAoIGk9MCwgaUxlbj1hb0RhdGEubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQkJCXsKCQkJCQl0ciA9IGFvRGF0YVsgaSBdLm5UcjsKCQkJCQlpZiAoICQuaW5BcnJheSggaSwgYWlEaXNwbGF5ICkgIT09IC0xICYmIHRyICkKCQkJCQl7CgkJCQkJCWEucHVzaCggdHIgKTsKCQkJCQl9CgkJCQl9CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQlfZm5Mb2coIG9TZXR0aW5ncywgMSwgIlVua25vd24gc2VsZWN0aW9uIG9wdGlvbnMiICk7CgkJCX0KCQkKCQkJLyogV2UgbmVlZCB0byBmaWx0ZXIgb24gdGhlIFRSIGVsZW1lbnRzIGFuZCBhbHNvICdmaW5kJyBpbiB0aGVpciBkZXNjZW5kYW50cwoJCQkgKiB0byBtYWtlIHRoZSBzZWxlY3RvciBhY3QgbGlrZSBpdCB3b3VsZCBpbiBhIGZ1bGwgdGFibGUgLSBzbyB3ZSBuZWVkCgkJCSAqIHRvIGJ1aWxkIGJvdGggcmVzdWx0cyBhbmQgdGhlbiBjb21iaW5lIHRoZW0gdG9nZXRoZXIKCQkJICovCgkJCXZhciBqcUEgPSAkKGEpOwoJCQl2YXIganFUUnMgPSBqcUEuZmlsdGVyKCBzU2VsZWN0b3IgKTsKCQkJdmFyIGpxRGVzY2VuZGFudHMgPSBqcUEuZmluZCggc1NlbGVjdG9yICk7CgkJCgkJCXJldHVybiAkKCBbXS5jb25jYXQoJC5tYWtlQXJyYXkoanFUUnMpLCAkLm1ha2VBcnJheShqcURlc2NlbmRhbnRzKSkgKTsKCQl9OwoJCQoJCQoJCS8qKgoJCSAqIEFsbW9zdCBpZGVudGljYWwgdG8gJCBpbiBvcGVyYXRpb24sIGJ1dCBpbiB0aGlzIGNhc2UgcmV0dXJucyB0aGUgZGF0YSBmb3IgdGhlIG1hdGNoZWQKCQkgKiByb3dzIC0gYXMgc3VjaCwgdGhlIGpRdWVyeSBzZWxlY3RvciB1c2VkIHNob3VsZCBtYXRjaCBUUiByb3cgbm9kZXMgb3IgVEQvVEggY2VsbCBub2RlcwoJCSAqIHJhdGhlciB0aGFuIGFueSBkZXNjZW5kYW50cywgc28gdGhlIGRhdGEgY2FuIGJlIG9idGFpbmVkIGZvciB0aGUgcm93L2NlbGwuIElmIG1hdGNoaW5nCgkJICogcm93cyBhcmUgZm91bmQsIHRoZSBkYXRhIHJldHVybmVkIGlzIHRoZSBvcmlnaW5hbCBkYXRhIGFycmF5L29iamVjdCB0aGF0IHdhcyB1c2VkIHRvICAKCQkgKiBjcmVhdGUgdGhlIHJvdyAob3IgYSBnZW5lcmF0ZWQgYXJyYXkgaWYgZnJvbSBhIERPTSBzb3VyY2UpLgoJCSAqCgkJICogVGhpcyBtZXRob2QgaXMgb2Z0ZW4gdXNlZnVsIGluLWNvbWJpbmF0aW9uIHdpdGggJCB3aGVyZSBib3RoIGZ1bmN0aW9ucyBhcmUgZ2l2ZW4gdGhlCgkJICogc2FtZSBwYXJhbWV0ZXJzIGFuZCB0aGUgYXJyYXkgaW5kZXhlcyB3aWxsIG1hdGNoIGlkZW50aWNhbGx5LgoJCSAqICBAcGFyYW0ge3N0cmluZ3xub2RlfGpRdWVyeX0gc1NlbGVjdG9yIGpRdWVyeSBzZWxlY3RvciBvciBub2RlIGNvbGxlY3Rpb24gdG8gYWN0IG9uCgkJICogIEBwYXJhbSB7b2JqZWN0fSBbb09wdHNdIE9wdGlvbmFsIHBhcmFtZXRlcnMgZm9yIG1vZGlmeWluZyB0aGUgcm93cyB0byBiZSBpbmNsdWRlZAoJCSAqICBAcGFyYW0ge3N0cmluZ30gW29PcHRzLmZpbHRlcj1ub25lXSBTZWxlY3QgZWxlbWVudHMgdGhhdCBtZWV0IHRoZSBjdXJyZW50IGZpbHRlcgoJCSAqICAgIGNyaXRlcmlvbiAoImFwcGxpZWQiKSBvciBhbGwgZWxlbWVudHMgKGkuZS4gbm8gZmlsdGVyKS4KCQkgKiAgQHBhcmFtIHtzdHJpbmd9IFtvT3B0cy5vcmRlcj1jdXJyZW50XSBPcmRlciBvZiB0aGUgZGF0YSBpbiB0aGUgcHJvY2Vzc2VkIGFycmF5LgoJCSAqICAgIENhbiBiZSBlaXRoZXIgJ2N1cnJlbnQnLCB3aGVyZWJ5IHRoZSBjdXJyZW50IHNvcnRpbmcgb2YgdGhlIHRhYmxlIGlzIHVzZWQsIG9yCgkJICogICAgJ29yaWdpbmFsJyB3aGVyZWJ5IHRoZSBvcmlnaW5hbCBvcmRlciB0aGUgZGF0YSB3YXMgcmVhZCBpbnRvIHRoZSB0YWJsZSBpcyB1c2VkLgoJCSAqICBAcGFyYW0ge3N0cmluZ30gW29PcHRzLnBhZ2U9YWxsXSBMaW1pdCB0aGUgc2VsZWN0aW9uIHRvIHRoZSBjdXJyZW50bHkgZGlzcGxheWVkIHBhZ2UKCQkgKiAgICAoImN1cnJlbnQiKSBvciBub3QgKCJhbGwiKS4gSWYgJ2N1cnJlbnQnIGlzIGdpdmVuLCB0aGVuIG9yZGVyIGlzIGFzc3VtZWQgdG8gYmUgCgkJICogICAgJ2N1cnJlbnQnIGFuZCBmaWx0ZXIgaXMgJ2FwcGxpZWQnLCByZWdhcmRsZXNzIG9mIHdoYXQgdGhleSBtaWdodCBiZSBnaXZlbiBhcy4KCQkgKiAgQHJldHVybnMge2FycmF5fSBEYXRhIGZvciB0aGUgbWF0Y2hlZCBlbGVtZW50cy4gSWYgYW55IGVsZW1lbnRzLCBhcyBhIHJlc3VsdCBvZiB0aGUKCQkgKiAgICBzZWxlY3Rvciwgd2VyZSBub3QgVFIsIFREIG9yIFRIIGVsZW1lbnRzIGluIHRoZSBEYXRhVGFibGUsIHRoZXkgd2lsbCBoYXZlIGEgbnVsbCAKCQkgKiAgICBlbnRyeSBpbiB0aGUgYXJyYXkuCgkJICogIEBkdG9wdCBBUEkKCQkgKgoJCSAqICBAZXhhbXBsZQoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgewoJCSAqICAgICAgdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7CgkJICoKCQkgKiAgICAgIC8vIEdldCB0aGUgZGF0YSBmcm9tIHRoZSBmaXJzdCByb3cgaW4gdGhlIHRhYmxlCgkJICogICAgICB2YXIgZGF0YSA9IG9UYWJsZS5fKCd0cjpmaXJzdCcpOwoJCSAqCgkJICogICAgICAvLyBEbyBzb21ldGhpbmcgdXNlZnVsIHdpdGggdGhlIGRhdGEKCQkgKiAgICAgIGFsZXJ0KCAiRmlyc3QgY2VsbCBpczogIitkYXRhWzBdICk7CgkJICogICAgfSApOwoJCSAqCgkJICogIEBleGFtcGxlCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CgkJICogICAgICB2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCQkgKgoJCSAqICAgICAgLy8gRmlsdGVyIHRvICdXZWJraXQnIGFuZCBnZXQgYWxsIGRhdGEgZm9yIAoJCSAqICAgICAgb1RhYmxlLmZuRmlsdGVyKCdXZWJraXQnKTsKCQkgKiAgICAgIHZhciBkYXRhID0gb1RhYmxlLl8oJ3RyJywgeyJmaWx0ZXIiOiAiYXBwbGllZCJ9KTsKCQkgKiAgICAgIAoJCSAqICAgICAgLy8gRG8gc29tZXRoaW5nIHdpdGggdGhlIGRhdGEKCQkgKiAgICAgIGFsZXJ0KCBkYXRhLmxlbmd0aCsiIHJvd3MgbWF0Y2hlZCB0aGUgZmlsdGVyIiApOwoJCSAqICAgIH0gKTsKCQkgKi8KCQl0aGlzLl8gPSBmdW5jdGlvbiAoIHNTZWxlY3Rvciwgb09wdHMgKQoJCXsKCQkJdmFyIGFPdXQgPSBbXTsKCQkJdmFyIGksIGlMZW4sIGlJbmRleDsKCQkJdmFyIGFUcnMgPSB0aGlzLiQoIHNTZWxlY3Rvciwgb09wdHMgKTsKCQkKCQkJZm9yICggaT0wLCBpTGVuPWFUcnMubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQkJewoJCQkJYU91dC5wdXNoKCB0aGlzLmZuR2V0RGF0YShhVHJzW2ldKSApOwoJCQl9CgkJCgkJCXJldHVybiBhT3V0OwoJCX07CgkJCgkJCgkJLyoqCgkJICogQWRkIGEgc2luZ2xlIG5ldyByb3cgb3IgbXVsdGlwbGUgcm93cyBvZiBkYXRhIHRvIHRoZSB0YWJsZS4gUGxlYXNlIG5vdGUKCQkgKiB0aGF0IHRoaXMgaXMgc3VpdGFibGUgZm9yIGNsaWVudC1zaWRlIHByb2Nlc3Npbmcgb25seSAtIGlmIHlvdSBhcmUgdXNpbmcgCgkJICogc2VydmVyLXNpZGUgcHJvY2Vzc2luZyAoaS5lLiAiYlNlcnZlclNpZGUiOiB0cnVlKSwgdGhlbiB0byBhZGQgZGF0YSwgeW91CgkJICogbXVzdCBhZGQgaXQgdG8gdGhlIGRhdGEgc291cmNlLCBpLmUuIHRoZSBzZXJ2ZXItc2lkZSwgdGhyb3VnaCBhbiBBamF4IGNhbGwuCgkJICogIEBwYXJhbSB7YXJyYXl8b2JqZWN0fSBtRGF0YSBUaGUgZGF0YSB0byBiZSBhZGRlZCB0byB0aGUgdGFibGUuIFRoaXMgY2FuIGJlOgoJCSAqICAgIDx1bD4KCQkgKiAgICAgIDxsaT4xRCBhcnJheSBvZiBkYXRhIC0gYWRkIGEgc2luZ2xlIHJvdyB3aXRoIHRoZSBkYXRhIHByb3ZpZGVkPC9saT4KCQkgKiAgICAgIDxsaT4yRCBhcnJheSBvZiBhcnJheXMgLSBhZGQgbXVsdGlwbGUgcm93cyBpbiBhIHNpbmdsZSBjYWxsPC9saT4KCQkgKiAgICAgIDxsaT5vYmplY3QgLSBkYXRhIG9iamVjdCB3aGVuIHVzaW5nIDxpPm1EYXRhPC9pPjwvbGk+CgkJICogICAgICA8bGk+YXJyYXkgb2Ygb2JqZWN0cyAtIG11bHRpcGxlIGRhdGEgb2JqZWN0cyB3aGVuIHVzaW5nIDxpPm1EYXRhPC9pPjwvbGk+CgkJICogICAgPC91bD4KCQkgKiAgQHBhcmFtIHtib29sfSBbYlJlZHJhdz10cnVlXSByZWRyYXcgdGhlIHRhYmxlIG9yIG5vdAoJCSAqICBAcmV0dXJucyB7YXJyYXl9IEFuIGFycmF5IG9mIGludGVnZXJzLCByZXByZXNlbnRpbmcgdGhlIGxpc3Qgb2YgaW5kZXhlcyBpbiAKCQkgKiAgICA8aT5hb0RhdGE8L2k+ICh7QGxpbmsgRGF0YVRhYmxlLm1vZGVscy5vU2V0dGluZ3N9KSB0aGF0IGhhdmUgYmVlbiBhZGRlZCB0byAKCQkgKiAgICB0aGUgdGFibGUuCgkJICogIEBkdG9wdCBBUEkKCQkgKgoJCSAqICBAZXhhbXBsZQoJCSAqICAgIC8vIEdsb2JhbCB2YXIgZm9yIGNvdW50ZXIKCQkgKiAgICB2YXIgZ2lDb3VudCA9IDI7CgkJICogICAgCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CgkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJCSAqICAgIH0gKTsKCQkgKiAgICAKCQkgKiAgICBmdW5jdGlvbiBmbkNsaWNrQWRkUm93KCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKS5mbkFkZERhdGEoIFsKCQkgKiAgICAgICAgZ2lDb3VudCsiLjEiLAoJCSAqICAgICAgICBnaUNvdW50KyIuMiIsCgkJICogICAgICAgIGdpQ291bnQrIi4zIiwKCQkgKiAgICAgICAgZ2lDb3VudCsiLjQiIF0KCQkgKiAgICAgICk7CgkJICogICAgICAgIAoJCSAqICAgICAgZ2lDb3VudCsrOwoJCSAqICAgIH0KCQkgKi8KCQl0aGlzLmZuQWRkRGF0YSA9IGZ1bmN0aW9uKCBtRGF0YSwgYlJlZHJhdyApCgkJewoJCQlpZiAoIG1EYXRhLmxlbmd0aCA9PT0gMCApCgkJCXsKCQkJCXJldHVybiBbXTsKCQkJfQoJCQkKCQkJdmFyIGFpUmV0dXJuID0gW107CgkJCXZhciBpVGVzdDsKCQkJCgkJCS8qIEZpbmQgc2V0dGluZ3MgZnJvbSB0YWJsZSBub2RlICovCgkJCXZhciBvU2V0dGluZ3MgPSBfZm5TZXR0aW5nc0Zyb21Ob2RlKCB0aGlzW0RhdGFUYWJsZS5leHQuaUFwaUluZGV4XSApOwoJCQkKCQkJLyogQ2hlY2sgaWYgd2Ugd2FudCB0byBhZGQgbXVsdGlwbGUgcm93cyBvciBub3QgKi8KCQkJaWYgKCB0eXBlb2YgbURhdGFbMF0gPT09ICJvYmplY3QiICYmIG1EYXRhWzBdICE9PSBudWxsICkKCQkJewoJCQkJZm9yICggdmFyIGk9MCA7IGk8bURhdGEubGVuZ3RoIDsgaSsrICkKCQkJCXsKCQkJCQlpVGVzdCA9IF9mbkFkZERhdGEoIG9TZXR0aW5ncywgbURhdGFbaV0gKTsKCQkJCQlpZiAoIGlUZXN0ID09IC0xICkKCQkJCQl7CgkJCQkJCXJldHVybiBhaVJldHVybjsKCQkJCQl9CgkJCQkJYWlSZXR1cm4ucHVzaCggaVRlc3QgKTsKCQkJCX0KCQkJfQoJCQllbHNlCgkJCXsKCQkJCWlUZXN0ID0gX2ZuQWRkRGF0YSggb1NldHRpbmdzLCBtRGF0YSApOwoJCQkJaWYgKCBpVGVzdCA9PSAtMSApCgkJCQl7CgkJCQkJcmV0dXJuIGFpUmV0dXJuOwoJCQkJfQoJCQkJYWlSZXR1cm4ucHVzaCggaVRlc3QgKTsKCQkJfQoJCQkKCQkJb1NldHRpbmdzLmFpRGlzcGxheSA9IG9TZXR0aW5ncy5haURpc3BsYXlNYXN0ZXIuc2xpY2UoKTsKCQkJCgkJCWlmICggYlJlZHJhdyA9PT0gdW5kZWZpbmVkIHx8IGJSZWRyYXcgKQoJCQl7CgkJCQlfZm5SZURyYXcoIG9TZXR0aW5ncyApOwoJCQl9CgkJCXJldHVybiBhaVJldHVybjsKCQl9OwoJCQoJCQoJCS8qKgoJCSAqIFRoaXMgZnVuY3Rpb24gd2lsbCBtYWtlIERhdGFUYWJsZXMgcmVjYWxjdWxhdGUgdGhlIGNvbHVtbiBzaXplcywgYmFzZWQgb24gdGhlIGRhdGEgCgkJICogY29udGFpbmVkIGluIHRoZSB0YWJsZSBhbmQgdGhlIHNpemVzIGFwcGxpZWQgdG8gdGhlIGNvbHVtbnMgKGluIHRoZSBET00sIENTUyBvciAKCQkgKiB0aHJvdWdoIHRoZSBzV2lkdGggcGFyYW1ldGVyKS4gVGhpcyBjYW4gYmUgdXNlZnVsIHdoZW4gdGhlIHdpZHRoIG9mIHRoZSB0YWJsZSdzIAoJCSAqIHBhcmVudCBlbGVtZW50IGNoYW5nZXMgKGZvciBleGFtcGxlIGEgd2luZG93IHJlc2l6ZSkuCgkJICogIEBwYXJhbSB7Ym9vbGVhbn0gW2JSZWRyYXc9dHJ1ZV0gUmVkcmF3IHRoZSB0YWJsZSBvciBub3QsIHlvdSB3aWxsIHR5cGljYWxseSB3YW50IHRvCgkJICogIEBkdG9wdCBBUEkKCQkgKgoJCSAqICBAZXhhbXBsZQoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgewoJCSAqICAgICAgdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJzU2Nyb2xsWSI6ICIyMDBweCIsCgkJICogICAgICAgICJiUGFnaW5hdGUiOiBmYWxzZQoJCSAqICAgICAgfSApOwoJCSAqICAgICAgCgkJICogICAgICAkKHdpbmRvdykuYmluZCgncmVzaXplJywgZnVuY3Rpb24gKCkgewoJCSAqICAgICAgICBvVGFibGUuZm5BZGp1c3RDb2x1bW5TaXppbmcoKTsKCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICovCgkJdGhpcy5mbkFkanVzdENvbHVtblNpemluZyA9IGZ1bmN0aW9uICggYlJlZHJhdyApCgkJewoJCQl2YXIgb1NldHRpbmdzID0gX2ZuU2V0dGluZ3NGcm9tTm9kZSh0aGlzW0RhdGFUYWJsZS5leHQuaUFwaUluZGV4XSk7CgkJCV9mbkFkanVzdENvbHVtblNpemluZyggb1NldHRpbmdzICk7CgkJCQoJCQlpZiAoIGJSZWRyYXcgPT09IHVuZGVmaW5lZCB8fCBiUmVkcmF3ICkKCQkJewoJCQkJdGhpcy5mbkRyYXcoIGZhbHNlICk7CgkJCX0KCQkJZWxzZSBpZiAoIG9TZXR0aW5ncy5vU2Nyb2xsLnNYICE9PSAiIiB8fCBvU2V0dGluZ3Mub1Njcm9sbC5zWSAhPT0gIiIgKQoJCQl7CgkJCQkvKiBJZiBub3QgcmVkcmF3aW5nLCBidXQgc2Nyb2xsaW5nLCB3ZSB3YW50IHRvIGFwcGx5IHRoZSBuZXcgY29sdW1uIHNpemVzIGFueXdheSAqLwoJCQkJdGhpcy5vQXBpLl9mblNjcm9sbERyYXcob1NldHRpbmdzKTsKCQkJfQoJCX07CgkJCgkJCgkJLyoqCgkJICogUXVpY2tseSBhbmQgc2ltcGx5IGNsZWFyIGEgdGFibGUKCQkgKiAgQHBhcmFtIHtib29sfSBbYlJlZHJhdz10cnVlXSByZWRyYXcgdGhlIHRhYmxlIG9yIG5vdAoJCSAqICBAZHRvcHQgQVBJCgkJICoKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKCQkgKiAgICAgIHZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJCSAqICAgICAgCgkJICogICAgICAvLyBJbW1lZGlhdGVseSAnbnVrZScgdGhlIGN1cnJlbnQgcm93cyAocGVyaGFwcyB3YWl0aW5nIGZvciBhbiBBamF4IGNhbGxiYWNrLi4uKQoJCSAqICAgICAgb1RhYmxlLmZuQ2xlYXJUYWJsZSgpOwoJCSAqICAgIH0gKTsKCQkgKi8KCQl0aGlzLmZuQ2xlYXJUYWJsZSA9IGZ1bmN0aW9uKCBiUmVkcmF3ICkKCQl7CgkJCS8qIEZpbmQgc2V0dGluZ3MgZnJvbSB0YWJsZSBub2RlICovCgkJCXZhciBvU2V0dGluZ3MgPSBfZm5TZXR0aW5nc0Zyb21Ob2RlKCB0aGlzW0RhdGFUYWJsZS5leHQuaUFwaUluZGV4XSApOwoJCQlfZm5DbGVhclRhYmxlKCBvU2V0dGluZ3MgKTsKCQkJCgkJCWlmICggYlJlZHJhdyA9PT0gdW5kZWZpbmVkIHx8IGJSZWRyYXcgKQoJCQl7CgkJCQlfZm5EcmF3KCBvU2V0dGluZ3MgKTsKCQkJfQoJCX07CgkJCgkJCgkJLyoqCgkJICogVGhlIGV4YWN0IG9wcG9zaXRlIG9mICdvcGVuaW5nJyBhIHJvdywgdGhpcyBmdW5jdGlvbiB3aWxsIGNsb3NlIGFueSByb3dzIHdoaWNoIAoJCSAqIGFyZSBjdXJyZW50bHkgJ29wZW4nLgoJCSAqICBAcGFyYW0ge25vZGV9IG5UciB0aGUgdGFibGUgcm93IHRvICdjbG9zZScKCQkgKiAgQHJldHVybnMge2ludH0gMCBvbiBzdWNjZXNzLCBvciAxIGlmIGZhaWxlZCAoY2FuJ3QgZmluZCB0aGUgcm93KQoJCSAqICBAZHRvcHQgQVBJCgkJICoKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKCQkgKiAgICAgIHZhciBvVGFibGU7CgkJICogICAgICAKCQkgKiAgICAgIC8vICdvcGVuJyBhbiBpbmZvcm1hdGlvbiByb3cgd2hlbiBhIHJvdyBpcyBjbGlja2VkIG9uCgkJICogICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmNsaWNrKCBmdW5jdGlvbiAoKSB7CgkJICogICAgICAgIGlmICggb1RhYmxlLmZuSXNPcGVuKHRoaXMpICkgewoJCSAqICAgICAgICAgIG9UYWJsZS5mbkNsb3NlKCB0aGlzICk7CgkJICogICAgICAgIH0gZWxzZSB7CgkJICogICAgICAgICAgb1RhYmxlLmZuT3BlbiggdGhpcywgIlRlbXBvcmFyeSByb3cgb3BlbmVkIiwgImluZm9fcm93IiApOwoJCSAqICAgICAgICB9CgkJICogICAgICB9ICk7CgkJICogICAgICAKCQkgKiAgICAgIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7CgkJICogICAgfSApOwoJCSAqLwoJCXRoaXMuZm5DbG9zZSA9IGZ1bmN0aW9uKCBuVHIgKQoJCXsKCQkJLyogRmluZCBzZXR0aW5ncyBmcm9tIHRhYmxlIG5vZGUgKi8KCQkJdmFyIG9TZXR0aW5ncyA9IF9mblNldHRpbmdzRnJvbU5vZGUoIHRoaXNbRGF0YVRhYmxlLmV4dC5pQXBpSW5kZXhdICk7CgkJCQoJCQlmb3IgKCB2YXIgaT0wIDsgaTxvU2V0dGluZ3MuYW9PcGVuUm93cy5sZW5ndGggOyBpKysgKQoJCQl7CgkJCQlpZiAoIG9TZXR0aW5ncy5hb09wZW5Sb3dzW2ldLm5QYXJlbnQgPT0gblRyICkKCQkJCXsKCQkJCQl2YXIgblRyUGFyZW50ID0gb1NldHRpbmdzLmFvT3BlblJvd3NbaV0ublRyLnBhcmVudE5vZGU7CgkJCQkJaWYgKCBuVHJQYXJlbnQgKQoJCQkJCXsKCQkJCQkJLyogUmVtb3ZlIGl0IGlmIGl0IGlzIGN1cnJlbnRseSBvbiBkaXNwbGF5ICovCgkJCQkJCW5UclBhcmVudC5yZW1vdmVDaGlsZCggb1NldHRpbmdzLmFvT3BlblJvd3NbaV0ublRyICk7CgkJCQkJfQoJCQkJCW9TZXR0aW5ncy5hb09wZW5Sb3dzLnNwbGljZSggaSwgMSApOwoJCQkJCXJldHVybiAwOwoJCQkJfQoJCQl9CgkJCXJldHVybiAxOwoJCX07CgkJCgkJCgkJLyoqCgkJICogUmVtb3ZlIGEgcm93IGZvciB0aGUgdGFibGUKCQkgKiAgQHBhcmFtIHttaXhlZH0gbVRhcmdldCBUaGUgaW5kZXggb2YgdGhlIHJvdyBmcm9tIGFvRGF0YSB0byBiZSBkZWxldGVkLCBvcgoJCSAqICAgIHRoZSBUUiBlbGVtZW50IHlvdSB3YW50IHRvIGRlbGV0ZQoJCSAqICBAcGFyYW0ge2Z1bmN0aW9ufG51bGx9IFtmbkNhbGxCYWNrXSBDYWxsYmFjayBmdW5jdGlvbgoJCSAqICBAcGFyYW0ge2Jvb2x9IFtiUmVkcmF3PXRydWVdIFJlZHJhdyB0aGUgdGFibGUgb3Igbm90CgkJICogIEByZXR1cm5zIHthcnJheX0gVGhlIHJvdyB0aGF0IHdhcyBkZWxldGVkCgkJICogIEBkdG9wdCBBUEkKCQkgKgoJCSAqICBAZXhhbXBsZQoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgewoJCSAqICAgICAgdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7CgkJICogICAgICAKCQkgKiAgICAgIC8vIEltbWVkaWF0ZWx5IHJlbW92ZSB0aGUgZmlyc3Qgcm93CgkJICogICAgICBvVGFibGUuZm5EZWxldGVSb3coIDAgKTsKCQkgKiAgICB9ICk7CgkJICovCgkJdGhpcy5mbkRlbGV0ZVJvdyA9IGZ1bmN0aW9uKCBtVGFyZ2V0LCBmbkNhbGxCYWNrLCBiUmVkcmF3ICkKCQl7CgkJCS8qIEZpbmQgc2V0dGluZ3MgZnJvbSB0YWJsZSBub2RlICovCgkJCXZhciBvU2V0dGluZ3MgPSBfZm5TZXR0aW5nc0Zyb21Ob2RlKCB0aGlzW0RhdGFUYWJsZS5leHQuaUFwaUluZGV4XSApOwoJCQl2YXIgaSwgaUxlbiwgaUFPRGF0YUluZGV4OwoJCQkKCQkJaUFPRGF0YUluZGV4ID0gKHR5cGVvZiBtVGFyZ2V0ID09PSAnb2JqZWN0JykgPyAKCQkJCV9mbk5vZGVUb0RhdGFJbmRleChvU2V0dGluZ3MsIG1UYXJnZXQpIDogbVRhcmdldDsKCQkJCgkJCS8qIFJldHVybiB0aGUgZGF0YSBhcnJheSBmcm9tIHRoaXMgcm93ICovCgkJCXZhciBvRGF0YSA9IG9TZXR0aW5ncy5hb0RhdGEuc3BsaWNlKCBpQU9EYXRhSW5kZXgsIDEgKTsKCQkKCQkJLyogVXBkYXRlIHRoZSBfRFRfUm93SW5kZXggcGFyYW1ldGVyICovCgkJCWZvciAoIGk9MCwgaUxlbj1vU2V0dGluZ3MuYW9EYXRhLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJCXsKCQkJCWlmICggb1NldHRpbmdzLmFvRGF0YVtpXS5uVHIgIT09IG51bGwgKQoJCQkJewoJCQkJCW9TZXR0aW5ncy5hb0RhdGFbaV0ublRyLl9EVF9Sb3dJbmRleCA9IGk7CgkJCQl9CgkJCX0KCQkJCgkJCS8qIFJlbW92ZSB0aGUgdGFyZ2V0IHJvdyBmcm9tIHRoZSBzZWFyY2ggYXJyYXkgKi8KCQkJdmFyIGlEaXNwbGF5SW5kZXggPSAkLmluQXJyYXkoIGlBT0RhdGFJbmRleCwgb1NldHRpbmdzLmFpRGlzcGxheSApOwoJCQlvU2V0dGluZ3MuYXNEYXRhU2VhcmNoLnNwbGljZSggaURpc3BsYXlJbmRleCwgMSApOwoJCQkKCQkJLyogRGVsZXRlIGZyb20gdGhlIGRpc3BsYXkgYXJyYXlzICovCgkJCV9mbkRlbGV0ZUluZGV4KCBvU2V0dGluZ3MuYWlEaXNwbGF5TWFzdGVyLCBpQU9EYXRhSW5kZXggKTsKCQkJX2ZuRGVsZXRlSW5kZXgoIG9TZXR0aW5ncy5haURpc3BsYXksIGlBT0RhdGFJbmRleCApOwoJCQkKCQkJLyogSWYgdGhlcmUgaXMgYSB1c2VyIGNhbGxiYWNrIGZ1bmN0aW9uIC0gY2FsbCBpdCAqLwoJCQlpZiAoIHR5cGVvZiBmbkNhbGxCYWNrID09PSAiZnVuY3Rpb24iICkKCQkJewoJCQkJZm5DYWxsQmFjay5jYWxsKCB0aGlzLCBvU2V0dGluZ3MsIG9EYXRhICk7CgkJCX0KCQkJCgkJCS8qIENoZWNrIGZvciBhbiAnb3ZlcmZsb3cnIHRoZXkgY2FzZSBmb3IgZGlzcGxheWluZyB0aGUgdGFibGUgKi8KCQkJaWYgKCBvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQgPj0gb1NldHRpbmdzLmZuUmVjb3Jkc0Rpc3BsYXkoKSApCgkJCXsKCQkJCW9TZXR0aW5ncy5faURpc3BsYXlTdGFydCAtPSBvU2V0dGluZ3MuX2lEaXNwbGF5TGVuZ3RoOwoJCQkJaWYgKCBvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQgPCAwICkKCQkJCXsKCQkJCQlvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQgPSAwOwoJCQkJfQoJCQl9CgkJCQoJCQlpZiAoIGJSZWRyYXcgPT09IHVuZGVmaW5lZCB8fCBiUmVkcmF3ICkKCQkJewoJCQkJX2ZuQ2FsY3VsYXRlRW5kKCBvU2V0dGluZ3MgKTsKCQkJCV9mbkRyYXcoIG9TZXR0aW5ncyApOwoJCQl9CgkJCQoJCQlyZXR1cm4gb0RhdGE7CgkJfTsKCQkKCQkKCQkvKioKCQkgKiBSZXN0b3JlIHRoZSB0YWJsZSB0byBpdCdzIG9yaWdpbmFsIHN0YXRlIGluIHRoZSBET00gYnkgcmVtb3ZpbmcgYWxsIG9mIERhdGFUYWJsZXMgCgkJICogZW5oYW5jZW1lbnRzLCBhbHRlcmF0aW9ucyB0byB0aGUgRE9NIHN0cnVjdHVyZSBvZiB0aGUgdGFibGUgYW5kIGV2ZW50IGxpc3RlbmVycy4KCQkgKiAgQHBhcmFtIHtib29sZWFufSBbYlJlbW92ZT1mYWxzZV0gQ29tcGxldGVseSByZW1vdmUgdGhlIHRhYmxlIGZyb20gdGhlIERPTQoJCSAqICBAZHRvcHQgQVBJCgkJICoKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKCQkgKiAgICAgIC8vIFRoaXMgZXhhbXBsZSBpcyBmYWlybHkgcG9pbnRsZXNzIGluIHJlYWxpdHksIGJ1dCBzaG93cyBob3cgZm5EZXN0cm95IGNhbiBiZSB1c2VkCgkJICogICAgICB2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCQkgKiAgICAgIG9UYWJsZS5mbkRlc3Ryb3koKTsKCQkgKiAgICB9ICk7CgkJICovCgkJdGhpcy5mbkRlc3Ryb3kgPSBmdW5jdGlvbiAoIGJSZW1vdmUgKQoJCXsKCQkJdmFyIG9TZXR0aW5ncyA9IF9mblNldHRpbmdzRnJvbU5vZGUoIHRoaXNbRGF0YVRhYmxlLmV4dC5pQXBpSW5kZXhdICk7CgkJCXZhciBuT3JpZyA9IG9TZXR0aW5ncy5uVGFibGVXcmFwcGVyLnBhcmVudE5vZGU7CgkJCXZhciBuQm9keSA9IG9TZXR0aW5ncy5uVEJvZHk7CgkJCXZhciBpLCBpTGVuOwoJCQoJCQliUmVtb3ZlID0gKGJSZW1vdmU9PT11bmRlZmluZWQpID8gZmFsc2UgOiB0cnVlOwoJCQkKCQkJLyogRmxhZyB0byBub3RlIHRoYXQgdGhlIHRhYmxlIGlzIGN1cnJlbnRseSBiZWluZyBkZXN0cm95ZWQgLSBubyBhY3Rpb24gc2hvdWxkIGJlIHRha2VuICovCgkJCW9TZXR0aW5ncy5iRGVzdHJveWluZyA9IHRydWU7CgkJCQoJCQkvKiBGaXJlIG9mZiB0aGUgZGVzdHJveSBjYWxsYmFja3MgZm9yIHBsdWctaW5zIGV0YyAqLwoJCQlfZm5DYWxsYmFja0ZpcmUoIG9TZXR0aW5ncywgImFvRGVzdHJveUNhbGxiYWNrIiwgImRlc3Ryb3kiLCBbb1NldHRpbmdzXSApOwoJCQkKCQkJLyogUmVzdG9yZSBoaWRkZW4gY29sdW1ucyAqLwoJCQlmb3IgKCBpPTAsIGlMZW49b1NldHRpbmdzLmFvQ29sdW1ucy5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCQl7CgkJCQlpZiAoIG9TZXR0aW5ncy5hb0NvbHVtbnNbaV0uYlZpc2libGUgPT09IGZhbHNlICkKCQkJCXsKCQkJCQl0aGlzLmZuU2V0Q29sdW1uVmlzKCBpLCB0cnVlICk7CgkJCQl9CgkJCX0KCQkJCgkJCS8qIEJsaXR6IGFsbCBEVCBldmVudHMgKi8KCQkJJChvU2V0dGluZ3MublRhYmxlV3JhcHBlcikuZmluZCgnKicpLmFuZFNlbGYoKS51bmJpbmQoJy5EVCcpOwoJCQkKCQkJLyogSWYgdGhlcmUgaXMgYW4gJ2VtcHR5JyBpbmRpY2F0b3Igcm93LCByZW1vdmUgaXQgKi8KCQkJJCgndGJvZHk+dHI+dGQuJytvU2V0dGluZ3Mub0NsYXNzZXMuc1Jvd0VtcHR5LCBvU2V0dGluZ3MublRhYmxlKS5wYXJlbnQoKS5yZW1vdmUoKTsKCQkJCgkJCS8qIFdoZW4gc2Nyb2xsaW5nIHdlIGhhZCB0byBicmVhayB0aGUgdGFibGUgdXAgLSByZXN0b3JlIGl0ICovCgkJCWlmICggb1NldHRpbmdzLm5UYWJsZSAhPSBvU2V0dGluZ3MublRIZWFkLnBhcmVudE5vZGUgKQoJCQl7CgkJCQkkKG9TZXR0aW5ncy5uVGFibGUpLmNoaWxkcmVuKCd0aGVhZCcpLnJlbW92ZSgpOwoJCQkJb1NldHRpbmdzLm5UYWJsZS5hcHBlbmRDaGlsZCggb1NldHRpbmdzLm5USGVhZCApOwoJCQl9CgkJCQoJCQlpZiAoIG9TZXR0aW5ncy5uVEZvb3QgJiYgb1NldHRpbmdzLm5UYWJsZSAhPSBvU2V0dGluZ3MublRGb290LnBhcmVudE5vZGUgKQoJCQl7CgkJCQkkKG9TZXR0aW5ncy5uVGFibGUpLmNoaWxkcmVuKCd0Zm9vdCcpLnJlbW92ZSgpOwoJCQkJb1NldHRpbmdzLm5UYWJsZS5hcHBlbmRDaGlsZCggb1NldHRpbmdzLm5URm9vdCApOwoJCQl9CgkJCQoJCQkvKiBSZW1vdmUgdGhlIERhdGFUYWJsZXMgZ2VuZXJhdGVkIG5vZGVzLCBldmVudHMgYW5kIGNsYXNzZXMgKi8KCQkJb1NldHRpbmdzLm5UYWJsZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKCBvU2V0dGluZ3MublRhYmxlICk7CgkJCSQob1NldHRpbmdzLm5UYWJsZVdyYXBwZXIpLnJlbW92ZSgpOwoJCQkKCQkJb1NldHRpbmdzLmFhU29ydGluZyA9IFtdOwoJCQlvU2V0dGluZ3MuYWFTb3J0aW5nRml4ZWQgPSBbXTsKCQkJX2ZuU29ydGluZ0NsYXNzZXMoIG9TZXR0aW5ncyApOwoJCQkKCQkJJChfZm5HZXRUck5vZGVzKCBvU2V0dGluZ3MgKSkucmVtb3ZlQ2xhc3MoIG9TZXR0aW5ncy5hc1N0cmlwZUNsYXNzZXMuam9pbignICcpICk7CgkJCQoJCQkkKCd0aCwgdGQnLCBvU2V0dGluZ3MublRIZWFkKS5yZW1vdmVDbGFzcyggWwoJCQkJb1NldHRpbmdzLm9DbGFzc2VzLnNTb3J0YWJsZSwKCQkJCW9TZXR0aW5ncy5vQ2xhc3Nlcy5zU29ydGFibGVBc2MsCgkJCQlvU2V0dGluZ3Mub0NsYXNzZXMuc1NvcnRhYmxlRGVzYywKCQkJCW9TZXR0aW5ncy5vQ2xhc3Nlcy5zU29ydGFibGVOb25lIF0uam9pbignICcpCgkJCSk7CgkJCWlmICggb1NldHRpbmdzLmJKVUkgKQoJCQl7CgkJCQkkKCd0aCBzcGFuLicrb1NldHRpbmdzLm9DbGFzc2VzLnNTb3J0SWNvbgoJCQkJCSsgJywgdGQgc3Bhbi4nK29TZXR0aW5ncy5vQ2xhc3Nlcy5zU29ydEljb24sIG9TZXR0aW5ncy5uVEhlYWQpLnJlbW92ZSgpOwoJCQoJCQkJJCgndGgsIHRkJywgb1NldHRpbmdzLm5USGVhZCkuZWFjaCggZnVuY3Rpb24gKCkgewoJCQkJCXZhciBqcVdyYXBwZXIgPSAkKCdkaXYuJytvU2V0dGluZ3Mub0NsYXNzZXMuc1NvcnRKVUlXcmFwcGVyLCB0aGlzKTsKCQkJCQl2YXIga2lkcyA9IGpxV3JhcHBlci5jb250ZW50cygpOwoJCQkJCSQodGhpcykuYXBwZW5kKCBraWRzICk7CgkJCQkJanFXcmFwcGVyLnJlbW92ZSgpOwoJCQkJfSApOwoJCQl9CgkJCQoJCQkvKiBBZGQgdGhlIFRSIGVsZW1lbnRzIGJhY2sgaW50byB0aGUgdGFibGUgaW4gdGhlaXIgb3JpZ2luYWwgb3JkZXIgKi8KCQkJaWYgKCAhYlJlbW92ZSAmJiBvU2V0dGluZ3MublRhYmxlUmVpbnNlcnRCZWZvcmUgKQoJCQl7CgkJCQluT3JpZy5pbnNlcnRCZWZvcmUoIG9TZXR0aW5ncy5uVGFibGUsIG9TZXR0aW5ncy5uVGFibGVSZWluc2VydEJlZm9yZSApOwoJCQl9CgkJCWVsc2UgaWYgKCAhYlJlbW92ZSApCgkJCXsKCQkJCW5PcmlnLmFwcGVuZENoaWxkKCBvU2V0dGluZ3MublRhYmxlICk7CgkJCX0KCQkKCQkJZm9yICggaT0wLCBpTGVuPW9TZXR0aW5ncy5hb0RhdGEubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQkJewoJCQkJaWYgKCBvU2V0dGluZ3MuYW9EYXRhW2ldLm5UciAhPT0gbnVsbCApCgkJCQl7CgkJCQkJbkJvZHkuYXBwZW5kQ2hpbGQoIG9TZXR0aW5ncy5hb0RhdGFbaV0ublRyICk7CgkJCQl9CgkJCX0KCQkJCgkJCS8qIFJlc3RvcmUgdGhlIHdpZHRoIG9mIHRoZSBvcmlnaW5hbCB0YWJsZSAqLwoJCQlpZiAoIG9TZXR0aW5ncy5vRmVhdHVyZXMuYkF1dG9XaWR0aCA9PT0gdHJ1ZSApCgkJCXsKCQkJICBvU2V0dGluZ3MublRhYmxlLnN0eWxlLndpZHRoID0gX2ZuU3RyaW5nVG9Dc3Mob1NldHRpbmdzLnNEZXN0cm95V2lkdGgpOwoJCQl9CgkJCQoJCQkvKiBJZiB0aGUgd2VyZSBvcmlnaW5hbGx5IG9kZC9ldmVuIHR5cGUgY2xhc3NlcyAtIHRoZW4gd2UgYWRkIHRoZW0gYmFjayBoZXJlLiBOb3RlCgkJCSAqIHRoaXMgaXMgbm90IGZvb2wgcHJvb2YgKGZvciBleGFtcGxlIGlmIG5vdCBhbGwgcm93cyBhcyBvZGQvZXZlbiBjbGFzc2VzIC0gYnV0IAoJCQkgKiBpdCdzIGEgZ29vZCBlZmZvcnQgd2l0aG91dCBnZXR0aW5nIGNhcnJpZWQgYXdheQoJCQkgKi8KCQkJJChuQm9keSkuY2hpbGRyZW4oJ3RyOmV2ZW4nKS5hZGRDbGFzcyggb1NldHRpbmdzLmFzRGVzdHJveVN0cmlwZXNbMF0gKTsKCQkJJChuQm9keSkuY2hpbGRyZW4oJ3RyOm9kZCcpLmFkZENsYXNzKCBvU2V0dGluZ3MuYXNEZXN0cm95U3RyaXBlc1sxXSApOwoJCQkKCQkJLyogUmVtb3ZlIHRoZSBzZXR0aW5ncyBvYmplY3QgZnJvbSB0aGUgc2V0dGluZ3MgYXJyYXkgKi8KCQkJZm9yICggaT0wLCBpTGVuPURhdGFUYWJsZS5zZXR0aW5ncy5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCQl7CgkJCQlpZiAoIERhdGFUYWJsZS5zZXR0aW5nc1tpXSA9PSBvU2V0dGluZ3MgKQoJCQkJewoJCQkJCURhdGFUYWJsZS5zZXR0aW5ncy5zcGxpY2UoIGksIDEgKTsKCQkJCX0KCQkJfQoJCQkKCQkJLyogRW5kIGl0IGFsbCAqLwoJCQlvU2V0dGluZ3MgPSBudWxsOwoJCX07CgkJCgkJCgkJLyoqCgkJICogUmVkcmF3IHRoZSB0YWJsZQoJCSAqICBAcGFyYW0ge2Jvb2x9IFtiQ29tcGxldGU9dHJ1ZV0gUmUtZmlsdGVyIGFuZCByZXNvcnQgKGlmIGVuYWJsZWQpIHRoZSB0YWJsZSBiZWZvcmUgdGhlIGRyYXcuCgkJICogIEBkdG9wdCBBUEkKCQkgKgoJCSAqICBAZXhhbXBsZQoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgewoJCSAqICAgICAgdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7CgkJICogICAgICAKCQkgKiAgICAgIC8vIFJlLWRyYXcgdGhlIHRhYmxlIC0geW91IHdvdWxkbid0IHdhbnQgdG8gZG8gaXQgaGVyZSwgYnV0IGl0J3MgYW4gZXhhbXBsZSA6LSkKCQkgKiAgICAgIG9UYWJsZS5mbkRyYXcoKTsKCQkgKiAgICB9ICk7CgkJICovCgkJdGhpcy5mbkRyYXcgPSBmdW5jdGlvbiggYkNvbXBsZXRlICkKCQl7CgkJCXZhciBvU2V0dGluZ3MgPSBfZm5TZXR0aW5nc0Zyb21Ob2RlKCB0aGlzW0RhdGFUYWJsZS5leHQuaUFwaUluZGV4XSApOwoJCQlpZiAoIGJDb21wbGV0ZSA9PT0gZmFsc2UgKQoJCQl7CgkJCQlfZm5DYWxjdWxhdGVFbmQoIG9TZXR0aW5ncyApOwoJCQkJX2ZuRHJhdyggb1NldHRpbmdzICk7CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQlfZm5SZURyYXcoIG9TZXR0aW5ncyApOwoJCQl9CgkJfTsKCQkKCQkKCQkvKioKCQkgKiBGaWx0ZXIgdGhlIGlucHV0IGJhc2VkIG9uIGRhdGEKCQkgKiAgQHBhcmFtIHtzdHJpbmd9IHNJbnB1dCBTdHJpbmcgdG8gZmlsdGVyIHRoZSB0YWJsZSBvbgoJCSAqICBAcGFyYW0ge2ludHxudWxsfSBbaUNvbHVtbl0gQ29sdW1uIHRvIGxpbWl0IGZpbHRlcmluZyB0bwoJCSAqICBAcGFyYW0ge2Jvb2x9IFtiUmVnZXg9ZmFsc2VdIFRyZWF0IGFzIHJlZ3VsYXIgZXhwcmVzc2lvbiBvciBub3QKCQkgKiAgQHBhcmFtIHtib29sfSBbYlNtYXJ0PXRydWVdIFBlcmZvcm0gc21hcnQgZmlsdGVyaW5nIG9yIG5vdAoJCSAqICBAcGFyYW0ge2Jvb2x9IFtiU2hvd0dsb2JhbD10cnVlXSBTaG93IHRoZSBpbnB1dCBnbG9iYWwgZmlsdGVyIGluIGl0J3MgaW5wdXQgYm94KGVzKQoJCSAqICBAcGFyYW0ge2Jvb2x9IFtiQ2FzZUluc2Vuc2l0aXZlPXRydWVdIERvIGNhc2UtaW5zZW5zaXRpdmUgbWF0Y2hpbmcgKHRydWUpIG9yIG5vdCAoZmFsc2UpCgkJICogIEBkdG9wdCBBUEkKCQkgKgoJCSAqICBAZXhhbXBsZQoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgewoJCSAqICAgICAgdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7CgkJICogICAgICAKCQkgKiAgICAgIC8vIFNvbWV0aW1lIGxhdGVyIC0gZmlsdGVyLi4uCgkJICogICAgICBvVGFibGUuZm5GaWx0ZXIoICd0ZXN0IHN0cmluZycgKTsKCQkgKiAgICB9ICk7CgkJICovCgkJdGhpcy5mbkZpbHRlciA9IGZ1bmN0aW9uKCBzSW5wdXQsIGlDb2x1bW4sIGJSZWdleCwgYlNtYXJ0LCBiU2hvd0dsb2JhbCwgYkNhc2VJbnNlbnNpdGl2ZSApCgkJewoJCQl2YXIgb1NldHRpbmdzID0gX2ZuU2V0dGluZ3NGcm9tTm9kZSggdGhpc1tEYXRhVGFibGUuZXh0LmlBcGlJbmRleF0gKTsKCQkJCgkJCWlmICggIW9TZXR0aW5ncy5vRmVhdHVyZXMuYkZpbHRlciApCgkJCXsKCQkJCXJldHVybjsKCQkJfQoJCQkKCQkJaWYgKCBiUmVnZXggPT09IHVuZGVmaW5lZCB8fCBiUmVnZXggPT09IG51bGwgKQoJCQl7CgkJCQliUmVnZXggPSBmYWxzZTsKCQkJfQoJCQkKCQkJaWYgKCBiU21hcnQgPT09IHVuZGVmaW5lZCB8fCBiU21hcnQgPT09IG51bGwgKQoJCQl7CgkJCQliU21hcnQgPSB0cnVlOwoJCQl9CgkJCQoJCQlpZiAoIGJTaG93R2xvYmFsID09PSB1bmRlZmluZWQgfHwgYlNob3dHbG9iYWwgPT09IG51bGwgKQoJCQl7CgkJCQliU2hvd0dsb2JhbCA9IHRydWU7CgkJCX0KCQkJCgkJCWlmICggYkNhc2VJbnNlbnNpdGl2ZSA9PT0gdW5kZWZpbmVkIHx8IGJDYXNlSW5zZW5zaXRpdmUgPT09IG51bGwgKQoJCQl7CgkJCQliQ2FzZUluc2Vuc2l0aXZlID0gdHJ1ZTsKCQkJfQoJCQkKCQkJaWYgKCBpQ29sdW1uID09PSB1bmRlZmluZWQgfHwgaUNvbHVtbiA9PT0gbnVsbCApCgkJCXsKCQkJCS8qIEdsb2JhbCBmaWx0ZXIgKi8KCQkJCV9mbkZpbHRlckNvbXBsZXRlKCBvU2V0dGluZ3MsIHsKCQkJCQkic1NlYXJjaCI6c0lucHV0KyIiLAoJCQkJCSJiUmVnZXgiOiBiUmVnZXgsCgkJCQkJImJTbWFydCI6IGJTbWFydCwKCQkJCQkiYkNhc2VJbnNlbnNpdGl2ZSI6IGJDYXNlSW5zZW5zaXRpdmUKCQkJCX0sIDEgKTsKCQkJCQoJCQkJaWYgKCBiU2hvd0dsb2JhbCAmJiBvU2V0dGluZ3MuYWFuRmVhdHVyZXMuZiApCgkJCQl7CgkJCQkJdmFyIG4gPSBvU2V0dGluZ3MuYWFuRmVhdHVyZXMuZjsKCQkJCQlmb3IgKCB2YXIgaT0wLCBpTGVuPW4ubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQkJCQl7CgkJCQkJCSQobltpXS5fRFRfSW5wdXQpLnZhbCggc0lucHV0ICk7CgkJCQkJfQoJCQkJfQoJCQl9CgkJCWVsc2UKCQkJewoJCQkJLyogU2luZ2xlIGNvbHVtbiBmaWx0ZXIgKi8KCQkJCSQuZXh0ZW5kKCBvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzWyBpQ29sdW1uIF0sIHsKCQkJCQkic1NlYXJjaCI6IHNJbnB1dCsiIiwKCQkJCQkiYlJlZ2V4IjogYlJlZ2V4LAoJCQkJCSJiU21hcnQiOiBiU21hcnQsCgkJCQkJImJDYXNlSW5zZW5zaXRpdmUiOiBiQ2FzZUluc2Vuc2l0aXZlCgkJCQl9ICk7CgkJCQlfZm5GaWx0ZXJDb21wbGV0ZSggb1NldHRpbmdzLCBvU2V0dGluZ3Mub1ByZXZpb3VzU2VhcmNoLCAxICk7CgkJCX0KCQl9OwoJCQoJCQoJCS8qKgoJCSAqIEdldCB0aGUgZGF0YSBmb3IgdGhlIHdob2xlIHRhYmxlLCBhbiBpbmRpdmlkdWFsIHJvdyBvciBhbiBpbmRpdmlkdWFsIGNlbGwgYmFzZWQgb24gdGhlIAoJCSAqIHByb3ZpZGVkIHBhcmFtZXRlcnMuCgkJICogIEBwYXJhbSB7aW50fG5vZGV9IFttUm93XSBBIFRSIHJvdyBub2RlLCBURC9USCBjZWxsIG5vZGUgb3IgYW4gaW50ZWdlci4gSWYgZ2l2ZW4gYXMKCQkgKiAgICBhIFRSIG5vZGUgdGhlbiB0aGUgZGF0YSBzb3VyY2UgZm9yIHRoZSB3aG9sZSByb3cgd2lsbCBiZSByZXR1cm5lZC4gSWYgZ2l2ZW4gYXMgYQoJCSAqICAgIFREL1RIIGNlbGwgbm9kZSB0aGVuIGlDb2wgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGNhbGN1bGF0ZWQgYW5kIHRoZSBkYXRhIGZvciB0aGUKCQkgKiAgICBjZWxsIHJldHVybmVkLiBJZiBnaXZlbiBhcyBhbiBpbnRlZ2VyLCB0aGVuIHRoaXMgaXMgdHJlYXRlZCBhcyB0aGUgYW9EYXRhIGludGVybmFsCgkJICogICAgZGF0YSBpbmRleCBmb3IgdGhlIHJvdyAoc2VlIGZuR2V0UG9zaXRpb24pIGFuZCB0aGUgZGF0YSBmb3IgdGhhdCByb3cgdXNlZC4KCQkgKiAgQHBhcmFtIHtpbnR9IFtpQ29sXSBPcHRpb25hbCBjb2x1bW4gaW5kZXggdGhhdCB5b3Ugd2FudCB0aGUgZGF0YSBvZi4KCQkgKiAgQHJldHVybnMge2FycmF5fG9iamVjdHxzdHJpbmd9IElmIG1Sb3cgaXMgdW5kZWZpbmVkLCB0aGVuIHRoZSBkYXRhIGZvciBhbGwgcm93cyBpcwoJCSAqICAgIHJldHVybmVkLiBJZiBtUm93IGlzIGRlZmluZWQsIGp1c3QgZGF0YSBmb3IgdGhhdCByb3csIGFuZCBpcyBpQ29sIGlzCgkJICogICAgZGVmaW5lZCwgb25seSBkYXRhIGZvciB0aGUgZGVzaWduYXRlZCBjZWxsIGlzIHJldHVybmVkLgoJCSAqICBAZHRvcHQgQVBJCgkJICoKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAvLyBSb3cgZGF0YQoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgewoJCSAqICAgICAgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCQkgKgoJCSAqICAgICAgb1RhYmxlLiQoJ3RyJykuY2xpY2soIGZ1bmN0aW9uICgpIHsKCQkgKiAgICAgICAgdmFyIGRhdGEgPSBvVGFibGUuZm5HZXREYXRhKCB0aGlzICk7CgkJICogICAgICAgIC8vIC4uLiBkbyBzb21ldGhpbmcgd2l0aCB0aGUgYXJyYXkgLyBvYmplY3Qgb2YgZGF0YSBmb3IgdGhlIHJvdwoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKTsKCQkgKgoJCSAqICBAZXhhbXBsZQoJCSAqICAgIC8vIEluZGl2aWR1YWwgY2VsbCBkYXRhCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CgkJICogICAgICBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJCSAqCgkJICogICAgICBvVGFibGUuJCgndGQnKS5jbGljayggZnVuY3Rpb24gKCkgewoJCSAqICAgICAgICB2YXIgc0RhdGEgPSBvVGFibGUuZm5HZXREYXRhKCB0aGlzICk7CgkJICogICAgICAgIGFsZXJ0KCAnVGhlIGNlbGwgY2xpY2tlZCBvbiBoYWQgdGhlIHZhbHVlIG9mICcrc0RhdGEgKTsKCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICovCgkJdGhpcy5mbkdldERhdGEgPSBmdW5jdGlvbiggbVJvdywgaUNvbCApCgkJewoJCQl2YXIgb1NldHRpbmdzID0gX2ZuU2V0dGluZ3NGcm9tTm9kZSggdGhpc1tEYXRhVGFibGUuZXh0LmlBcGlJbmRleF0gKTsKCQkJCgkJCWlmICggbVJvdyAhPT0gdW5kZWZpbmVkICkKCQkJewoJCQkJdmFyIGlSb3cgPSBtUm93OwoJCQkJaWYgKCB0eXBlb2YgbVJvdyA9PT0gJ29iamVjdCcgKQoJCQkJewoJCQkJCXZhciBzTm9kZSA9IG1Sb3cubm9kZU5hbWUudG9Mb3dlckNhc2UoKTsKCQkJCQlpZiAoc05vZGUgPT09ICJ0ciIgKQoJCQkJCXsKCQkJCQkJaVJvdyA9IF9mbk5vZGVUb0RhdGFJbmRleChvU2V0dGluZ3MsIG1Sb3cpOwoJCQkJCX0KCQkJCQllbHNlIGlmICggc05vZGUgPT09ICJ0ZCIgKQoJCQkJCXsKCQkJCQkJaVJvdyA9IF9mbk5vZGVUb0RhdGFJbmRleChvU2V0dGluZ3MsIG1Sb3cucGFyZW50Tm9kZSk7CgkJCQkJCWlDb2wgPSBfZm5Ob2RlVG9Db2x1bW5JbmRleCggb1NldHRpbmdzLCBpUm93LCBtUm93ICk7CgkJCQkJfQoJCQkJfQoJCQoJCQkJaWYgKCBpQ29sICE9PSB1bmRlZmluZWQgKQoJCQkJewoJCQkJCXJldHVybiBfZm5HZXRDZWxsRGF0YSggb1NldHRpbmdzLCBpUm93LCBpQ29sLCAnJyApOwoJCQkJfQoJCQkJcmV0dXJuIChvU2V0dGluZ3MuYW9EYXRhW2lSb3ddIT09dW5kZWZpbmVkKSA/CgkJCQkJb1NldHRpbmdzLmFvRGF0YVtpUm93XS5fYURhdGEgOiBudWxsOwoJCQl9CgkJCXJldHVybiBfZm5HZXREYXRhTWFzdGVyKCBvU2V0dGluZ3MgKTsKCQl9OwoJCQoJCQoJCS8qKgoJCSAqIEdldCBhbiBhcnJheSBvZiB0aGUgVFIgbm9kZXMgdGhhdCBhcmUgdXNlZCBpbiB0aGUgdGFibGUncyBib2R5LiBOb3RlIHRoYXQgeW91IHdpbGwgCgkJICogdHlwaWNhbGx5IHdhbnQgdG8gdXNlIHRoZSAnJCcgQVBJIG1ldGhvZCBpbiBwcmVmZXJlbmNlIHRvIHRoaXMgYXMgaXQgaXMgbW9yZSAKCQkgKiBmbGV4aWJsZS4KCQkgKiAgQHBhcmFtIHtpbnR9IFtpUm93XSBPcHRpb25hbCByb3cgaW5kZXggZm9yIHRoZSBUUiBlbGVtZW50IHlvdSB3YW50CgkJICogIEByZXR1cm5zIHthcnJheXxub2RlfSBJZiBpUm93IGlzIHVuZGVmaW5lZCwgcmV0dXJucyBhbiBhcnJheSBvZiBhbGwgVFIgZWxlbWVudHMKCQkgKiAgICBpbiB0aGUgdGFibGUncyBib2R5LCBvciBpUm93IGlzIGRlZmluZWQsIGp1c3QgdGhlIFRSIGVsZW1lbnQgcmVxdWVzdGVkLgoJCSAqICBAZHRvcHQgQVBJCgkJICoKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKCQkgKiAgICAgIHZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJCSAqICAgICAgCgkJICogICAgICAvLyBHZXQgdGhlIG5vZGVzIGZyb20gdGhlIHRhYmxlCgkJICogICAgICB2YXIgbk5vZGVzID0gb1RhYmxlLmZuR2V0Tm9kZXMoICk7CgkJICogICAgfSApOwoJCSAqLwoJCXRoaXMuZm5HZXROb2RlcyA9IGZ1bmN0aW9uKCBpUm93ICkKCQl7CgkJCXZhciBvU2V0dGluZ3MgPSBfZm5TZXR0aW5nc0Zyb21Ob2RlKCB0aGlzW0RhdGFUYWJsZS5leHQuaUFwaUluZGV4XSApOwoJCQkKCQkJaWYgKCBpUm93ICE9PSB1bmRlZmluZWQgKSB7CgkJCQlyZXR1cm4gKG9TZXR0aW5ncy5hb0RhdGFbaVJvd10hPT11bmRlZmluZWQpID8KCQkJCQlvU2V0dGluZ3MuYW9EYXRhW2lSb3ddLm5UciA6IG51bGw7CgkJCX0KCQkJcmV0dXJuIF9mbkdldFRyTm9kZXMoIG9TZXR0aW5ncyApOwoJCX07CgkJCgkJCgkJLyoqCgkJICogR2V0IHRoZSBhcnJheSBpbmRleGVzIG9mIGEgcGFydGljdWxhciBjZWxsIGZyb20gaXQncyBET00gZWxlbWVudAoJCSAqIGFuZCBjb2x1bW4gaW5kZXggaW5jbHVkaW5nIGhpZGRlbiBjb2x1bW5zCgkJICogIEBwYXJhbSB7bm9kZX0gbk5vZGUgdGhpcyBjYW4gZWl0aGVyIGJlIGEgVFIsIFREIG9yIFRIIGluIHRoZSB0YWJsZSdzIGJvZHkKCQkgKiAgQHJldHVybnMge2ludH0gSWYgbk5vZGUgaXMgZ2l2ZW4gYXMgYSBUUiwgdGhlbiBhIHNpbmdsZSBpbmRleCBpcyByZXR1cm5lZCwgb3IKCQkgKiAgICBpZiBnaXZlbiBhcyBhIGNlbGwsIGFuIGFycmF5IG9mIFtyb3cgaW5kZXgsIGNvbHVtbiBpbmRleCAodmlzaWJsZSldIGlzIGdpdmVuLgoJCSAqICBAZHRvcHQgQVBJCgkJICoKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlIHRib2R5IHRkJykuY2xpY2soIGZ1bmN0aW9uICgpIHsKCQkgKiAgICAgICAgLy8gR2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgY3VycmVudCBkYXRhIGZyb20gdGhlIG5vZGUKCQkgKiAgICAgICAgdmFyIGFQb3MgPSBvVGFibGUuZm5HZXRQb3NpdGlvbiggdGhpcyApOwoJCSAqICAgICAgICAKCQkgKiAgICAgICAgLy8gR2V0IHRoZSBkYXRhIGFycmF5IGZvciB0aGlzIHJvdwoJCSAqICAgICAgICB2YXIgYURhdGEgPSBvVGFibGUuZm5HZXREYXRhKCBhUG9zWzBdICk7CgkJICogICAgICAgIAoJCSAqICAgICAgICAvLyBVcGRhdGUgdGhlIGRhdGEgYXJyYXkgYW5kIHJldHVybiB0aGUgdmFsdWUKCQkgKiAgICAgICAgYURhdGFbIGFQb3NbMV0gXSA9ICdjbGlja2VkJzsKCQkgKiAgICAgICAgdGhpcy5pbm5lckhUTUwgPSAnY2xpY2tlZCc7CgkJICogICAgICB9ICk7CgkJICogICAgICAKCQkgKiAgICAgIC8vIEluaXQgRGF0YVRhYmxlcwoJCSAqICAgICAgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCQkgKiAgICB9ICk7CgkJICovCgkJdGhpcy5mbkdldFBvc2l0aW9uID0gZnVuY3Rpb24oIG5Ob2RlICkKCQl7CgkJCXZhciBvU2V0dGluZ3MgPSBfZm5TZXR0aW5nc0Zyb21Ob2RlKCB0aGlzW0RhdGFUYWJsZS5leHQuaUFwaUluZGV4XSApOwoJCQl2YXIgc05vZGVOYW1lID0gbk5vZGUubm9kZU5hbWUudG9VcHBlckNhc2UoKTsKCQkJCgkJCWlmICggc05vZGVOYW1lID09ICJUUiIgKQoJCQl7CgkJCQlyZXR1cm4gX2ZuTm9kZVRvRGF0YUluZGV4KG9TZXR0aW5ncywgbk5vZGUpOwoJCQl9CgkJCWVsc2UgaWYgKCBzTm9kZU5hbWUgPT0gIlREIiB8fCBzTm9kZU5hbWUgPT0gIlRIIiApCgkJCXsKCQkJCXZhciBpRGF0YUluZGV4ID0gX2ZuTm9kZVRvRGF0YUluZGV4KCBvU2V0dGluZ3MsIG5Ob2RlLnBhcmVudE5vZGUgKTsKCQkJCXZhciBpQ29sdW1uSW5kZXggPSBfZm5Ob2RlVG9Db2x1bW5JbmRleCggb1NldHRpbmdzLCBpRGF0YUluZGV4LCBuTm9kZSApOwoJCQkJcmV0dXJuIFsgaURhdGFJbmRleCwgX2ZuQ29sdW1uSW5kZXhUb1Zpc2libGUob1NldHRpbmdzLCBpQ29sdW1uSW5kZXggKSwgaUNvbHVtbkluZGV4IF07CgkJCX0KCQkJcmV0dXJuIG51bGw7CgkJfTsKCQkKCQkKCQkvKioKCQkgKiBDaGVjayB0byBzZWUgaWYgYSByb3cgaXMgJ29wZW4nIG9yIG5vdC4KCQkgKiAgQHBhcmFtIHtub2RlfSBuVHIgdGhlIHRhYmxlIHJvdyB0byBjaGVjawoJCSAqICBAcmV0dXJucyB7Ym9vbGVhbn0gdHJ1ZSBpZiB0aGUgcm93IGlzIGN1cnJlbnRseSBvcGVuLCBmYWxzZSBvdGhlcndpc2UKCQkgKiAgQGR0b3B0IEFQSQoJCSAqCgkJICogIEBleGFtcGxlCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CgkJICogICAgICB2YXIgb1RhYmxlOwoJCSAqICAgICAgCgkJICogICAgICAvLyAnb3BlbicgYW4gaW5mb3JtYXRpb24gcm93IHdoZW4gYSByb3cgaXMgY2xpY2tlZCBvbgoJCSAqICAgICAgJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5jbGljayggZnVuY3Rpb24gKCkgewoJCSAqICAgICAgICBpZiAoIG9UYWJsZS5mbklzT3Blbih0aGlzKSApIHsKCQkgKiAgICAgICAgICBvVGFibGUuZm5DbG9zZSggdGhpcyApOwoJCSAqICAgICAgICB9IGVsc2UgewoJCSAqICAgICAgICAgIG9UYWJsZS5mbk9wZW4oIHRoaXMsICJUZW1wb3Jhcnkgcm93IG9wZW5lZCIsICJpbmZvX3JvdyIgKTsKCQkgKiAgICAgICAgfQoJCSAqICAgICAgfSApOwoJCSAqICAgICAgCgkJICogICAgICBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJCSAqICAgIH0gKTsKCQkgKi8KCQl0aGlzLmZuSXNPcGVuID0gZnVuY3Rpb24oIG5UciApCgkJewoJCQl2YXIgb1NldHRpbmdzID0gX2ZuU2V0dGluZ3NGcm9tTm9kZSggdGhpc1tEYXRhVGFibGUuZXh0LmlBcGlJbmRleF0gKTsKCQkJdmFyIGFvT3BlblJvd3MgPSBvU2V0dGluZ3MuYW9PcGVuUm93czsKCQkJCgkJCWZvciAoIHZhciBpPTAgOyBpPG9TZXR0aW5ncy5hb09wZW5Sb3dzLmxlbmd0aCA7IGkrKyApCgkJCXsKCQkJCWlmICggb1NldHRpbmdzLmFvT3BlblJvd3NbaV0ublBhcmVudCA9PSBuVHIgKQoJCQkJewoJCQkJCXJldHVybiB0cnVlOwoJCQkJfQoJCQl9CgkJCXJldHVybiBmYWxzZTsKCQl9OwoJCQoJCQoJCS8qKgoJCSAqIFRoaXMgZnVuY3Rpb24gd2lsbCBwbGFjZSBhIG5ldyByb3cgZGlyZWN0bHkgYWZ0ZXIgYSByb3cgd2hpY2ggaXMgY3VycmVudGx5IAoJCSAqIG9uIGRpc3BsYXkgb24gdGhlIHBhZ2UsIHdpdGggdGhlIEhUTUwgY29udGVudHMgdGhhdCBpcyBwYXNzZWQgaW50byB0aGUgCgkJICogZnVuY3Rpb24uIFRoaXMgY2FuIGJlIHVzZWQsIGZvciBleGFtcGxlLCB0byBhc2sgZm9yIGNvbmZpcm1hdGlvbiB0aGF0IGEgCgkJICogcGFydGljdWxhciByZWNvcmQgc2hvdWxkIGJlIGRlbGV0ZWQuCgkJICogIEBwYXJhbSB7bm9kZX0gblRyIFRoZSB0YWJsZSByb3cgdG8gJ29wZW4nCgkJICogIEBwYXJhbSB7c3RyaW5nfG5vZGV8alF1ZXJ5fSBtSHRtbCBUaGUgSFRNTCB0byBwdXQgaW50byB0aGUgcm93CgkJICogIEBwYXJhbSB7c3RyaW5nfSBzQ2xhc3MgQ2xhc3MgdG8gZ2l2ZSB0aGUgbmV3IFREIGNlbGwKCQkgKiAgQHJldHVybnMge25vZGV9IFRoZSByb3cgb3BlbmVkLiBOb3RlIHRoYXQgaWYgdGhlIHRhYmxlIHJvdyBwYXNzZWQgaW4gYXMgdGhlCgkJICogICAgZmlyc3QgcGFyYW1ldGVyLCBpcyBub3QgZm91bmQgaW4gdGhlIHRhYmxlLCB0aGlzIG1ldGhvZCB3aWxsIHNpbGVudGx5CgkJICogICAgcmV0dXJuLgoJCSAqICBAZHRvcHQgQVBJCgkJICoKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKCQkgKiAgICAgIHZhciBvVGFibGU7CgkJICogICAgICAKCQkgKiAgICAgIC8vICdvcGVuJyBhbiBpbmZvcm1hdGlvbiByb3cgd2hlbiBhIHJvdyBpcyBjbGlja2VkIG9uCgkJICogICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmNsaWNrKCBmdW5jdGlvbiAoKSB7CgkJICogICAgICAgIGlmICggb1RhYmxlLmZuSXNPcGVuKHRoaXMpICkgewoJCSAqICAgICAgICAgIG9UYWJsZS5mbkNsb3NlKCB0aGlzICk7CgkJICogICAgICAgIH0gZWxzZSB7CgkJICogICAgICAgICAgb1RhYmxlLmZuT3BlbiggdGhpcywgIlRlbXBvcmFyeSByb3cgb3BlbmVkIiwgImluZm9fcm93IiApOwoJCSAqICAgICAgICB9CgkJICogICAgICB9ICk7CgkJICogICAgICAKCQkgKiAgICAgIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7CgkJICogICAgfSApOwoJCSAqLwoJCXRoaXMuZm5PcGVuID0gZnVuY3Rpb24oIG5UciwgbUh0bWwsIHNDbGFzcyApCgkJewoJCQkvKiBGaW5kIHNldHRpbmdzIGZyb20gdGFibGUgbm9kZSAqLwoJCQl2YXIgb1NldHRpbmdzID0gX2ZuU2V0dGluZ3NGcm9tTm9kZSggdGhpc1tEYXRhVGFibGUuZXh0LmlBcGlJbmRleF0gKTsKCQkKCQkJLyogQ2hlY2sgdGhhdCB0aGUgcm93IGdpdmVuIGlzIGluIHRoZSB0YWJsZSAqLwoJCQl2YXIgblRhYmxlUm93cyA9IF9mbkdldFRyTm9kZXMoIG9TZXR0aW5ncyApOwoJCQlpZiAoICQuaW5BcnJheShuVHIsIG5UYWJsZVJvd3MpID09PSAtMSApCgkJCXsKCQkJCXJldHVybjsKCQkJfQoJCQkKCQkJLyogdGhlIG9sZCBvcGVuIG9uZSBpZiB0aGVyZSBpcyBvbmUgKi8KCQkJdGhpcy5mbkNsb3NlKCBuVHIgKTsKCQkJCgkJCXZhciBuTmV3Um93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidHIiKTsKCQkJdmFyIG5OZXdDZWxsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGQiKTsKCQkJbk5ld1Jvdy5hcHBlbmRDaGlsZCggbk5ld0NlbGwgKTsKCQkJbk5ld0NlbGwuY2xhc3NOYW1lID0gc0NsYXNzOwoJCQluTmV3Q2VsbC5jb2xTcGFuID0gX2ZuVmlzYmxlQ29sdW1ucyggb1NldHRpbmdzICk7CgkJCgkJCWlmICh0eXBlb2YgbUh0bWwgPT09ICJzdHJpbmciKQoJCQl7CgkJCQluTmV3Q2VsbC5pbm5lckhUTUwgPSBtSHRtbDsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCSQobk5ld0NlbGwpLmh0bWwoIG1IdG1sICk7CgkJCX0KCQkKCQkJLyogSWYgdGhlIG5UciBpc24ndCBvbiB0aGUgcGFnZSBhdCB0aGUgbW9tZW50IC0gdGhlbiB3ZSBkb24ndCBpbnNlcnQgYXQgdGhlIG1vbWVudCAqLwoJCQl2YXIgblRycyA9ICQoJ3RyJywgb1NldHRpbmdzLm5UQm9keSk7CgkJCWlmICggJC5pbkFycmF5KG5UciwgblRycykgIT0gLTEgICkKCQkJewoJCQkJJChuTmV3Um93KS5pbnNlcnRBZnRlcihuVHIpOwoJCQl9CgkJCQoJCQlvU2V0dGluZ3MuYW9PcGVuUm93cy5wdXNoKCB7CgkJCQkiblRyIjogbk5ld1JvdywKCQkJCSJuUGFyZW50IjogblRyCgkJCX0gKTsKCQkJCgkJCXJldHVybiBuTmV3Um93OwoJCX07CgkJCgkJCgkJLyoqCgkJICogQ2hhbmdlIHRoZSBwYWdpbmF0aW9uIC0gcHJvdmlkZXMgdGhlIGludGVybmFsIGxvZ2ljIGZvciBwYWdpbmF0aW9uIGluIGEgc2ltcGxlIEFQSSAKCQkgKiBmdW5jdGlvbi4gV2l0aCB0aGlzIGZ1bmN0aW9uIHlvdSBjYW4gaGF2ZSBhIERhdGFUYWJsZXMgdGFibGUgZ28gdG8gdGhlIG5leHQsIAoJCSAqIHByZXZpb3VzLCBmaXJzdCBvciBsYXN0IHBhZ2VzLgoJCSAqICBAcGFyYW0ge3N0cmluZ3xpbnR9IG1BY3Rpb24gUGFnaW5nIGFjdGlvbiB0byB0YWtlOiAiZmlyc3QiLCAicHJldmlvdXMiLCAibmV4dCIgb3IgImxhc3QiCgkJICogICAgb3IgcGFnZSBudW1iZXIgdG8ganVtcCB0byAoaW50ZWdlciksIG5vdGUgdGhhdCBwYWdlIDAgaXMgdGhlIGZpcnN0IHBhZ2UuCgkJICogIEBwYXJhbSB7Ym9vbH0gW2JSZWRyYXc9dHJ1ZV0gUmVkcmF3IHRoZSB0YWJsZSBvciBub3QKCQkgKiAgQGR0b3B0IEFQSQoJCSAqCgkJICogIEBleGFtcGxlCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CgkJICogICAgICB2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCQkgKiAgICAgIG9UYWJsZS5mblBhZ2VDaGFuZ2UoICduZXh0JyApOwoJCSAqICAgIH0gKTsKCQkgKi8KCQl0aGlzLmZuUGFnZUNoYW5nZSA9IGZ1bmN0aW9uICggbUFjdGlvbiwgYlJlZHJhdyApCgkJewoJCQl2YXIgb1NldHRpbmdzID0gX2ZuU2V0dGluZ3NGcm9tTm9kZSggdGhpc1tEYXRhVGFibGUuZXh0LmlBcGlJbmRleF0gKTsKCQkJX2ZuUGFnZUNoYW5nZSggb1NldHRpbmdzLCBtQWN0aW9uICk7CgkJCV9mbkNhbGN1bGF0ZUVuZCggb1NldHRpbmdzICk7CgkJCQoJCQlpZiAoIGJSZWRyYXcgPT09IHVuZGVmaW5lZCB8fCBiUmVkcmF3ICkKCQkJewoJCQkJX2ZuRHJhdyggb1NldHRpbmdzICk7CgkJCX0KCQl9OwoJCQoJCQoJCS8qKgoJCSAqIFNob3cgYSBwYXJ0aWN1bGFyIGNvbHVtbgoJCSAqICBAcGFyYW0ge2ludH0gaUNvbCBUaGUgY29sdW1uIHdob3NlIGRpc3BsYXkgc2hvdWxkIGJlIGNoYW5nZWQKCQkgKiAgQHBhcmFtIHtib29sfSBiU2hvdyBTaG93ICh0cnVlKSBvciBoaWRlIChmYWxzZSkgdGhlIGNvbHVtbgoJCSAqICBAcGFyYW0ge2Jvb2x9IFtiUmVkcmF3PXRydWVdIFJlZHJhdyB0aGUgdGFibGUgb3Igbm90CgkJICogIEBkdG9wdCBBUEkKCQkgKgoJCSAqICBAZXhhbXBsZQoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgewoJCSAqICAgICAgdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7CgkJICogICAgICAKCQkgKiAgICAgIC8vIEhpZGUgdGhlIHNlY29uZCBjb2x1bW4gYWZ0ZXIgaW5pdGlhbGlzYXRpb24KCQkgKiAgICAgIG9UYWJsZS5mblNldENvbHVtblZpcyggMSwgZmFsc2UgKTsKCQkgKiAgICB9ICk7CgkJICovCgkJdGhpcy5mblNldENvbHVtblZpcyA9IGZ1bmN0aW9uICggaUNvbCwgYlNob3csIGJSZWRyYXcgKQoJCXsKCQkJdmFyIG9TZXR0aW5ncyA9IF9mblNldHRpbmdzRnJvbU5vZGUoIHRoaXNbRGF0YVRhYmxlLmV4dC5pQXBpSW5kZXhdICk7CgkJCXZhciBpLCBpTGVuOwoJCQl2YXIgYW9Db2x1bW5zID0gb1NldHRpbmdzLmFvQ29sdW1uczsKCQkJdmFyIGFvRGF0YSA9IG9TZXR0aW5ncy5hb0RhdGE7CgkJCXZhciBuVGQsIGJBcHBlbmQsIGlCZWZvcmU7CgkJCQoJCQkvKiBObyBwb2ludCBpbiBkb2luZyBhbnl0aGluZyBpZiB3ZSBhcmUgcmVxdWVzdGluZyB3aGF0IGlzIGFscmVhZHkgdHJ1ZSAqLwoJCQlpZiAoIGFvQ29sdW1uc1tpQ29sXS5iVmlzaWJsZSA9PSBiU2hvdyApCgkJCXsKCQkJCXJldHVybjsKCQkJfQoJCQkKCQkJLyogU2hvdyB0aGUgY29sdW1uICovCgkJCWlmICggYlNob3cgKQoJCQl7CgkJCQl2YXIgaUluc2VydCA9IDA7CgkJCQlmb3IgKCBpPTAgOyBpPGlDb2wgOyBpKysgKQoJCQkJewoJCQkJCWlmICggYW9Db2x1bW5zW2ldLmJWaXNpYmxlICkKCQkJCQl7CgkJCQkJCWlJbnNlcnQrKzsKCQkJCQl9CgkJCQl9CgkJCQkKCQkJCS8qIE5lZWQgdG8gZGVjaWRlIGlmIHdlIHNob3VsZCB1c2UgYXBwZW5kQ2hpbGQgb3IgaW5zZXJ0QmVmb3JlICovCgkJCQliQXBwZW5kID0gKGlJbnNlcnQgPj0gX2ZuVmlzYmxlQ29sdW1ucyggb1NldHRpbmdzICkpOwoJCQoJCQkJLyogV2hpY2ggY29sb3VtbiBzaG91bGQgd2UgYmUgaW5zZXJ0aW5nIGJlZm9yZT8gKi8KCQkJCWlmICggIWJBcHBlbmQgKQoJCQkJewoJCQkJCWZvciAoIGk9aUNvbCA7IGk8YW9Db2x1bW5zLmxlbmd0aCA7IGkrKyApCgkJCQkJewoJCQkJCQlpZiAoIGFvQ29sdW1uc1tpXS5iVmlzaWJsZSApCgkJCQkJCXsKCQkJCQkJCWlCZWZvcmUgPSBpOwoJCQkJCQkJYnJlYWs7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCgkJCQlmb3IgKCBpPTAsIGlMZW49YW9EYXRhLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJCQl7CgkJCQkJaWYgKCBhb0RhdGFbaV0ublRyICE9PSBudWxsICkKCQkJCQl7CgkJCQkJCWlmICggYkFwcGVuZCApCgkJCQkJCXsKCQkJCQkJCWFvRGF0YVtpXS5uVHIuYXBwZW5kQ2hpbGQoIAoJCQkJCQkJCWFvRGF0YVtpXS5fYW5IaWRkZW5baUNvbF0KCQkJCQkJCSk7CgkJCQkJCX0KCQkJCQkJZWxzZQoJCQkJCQl7CgkJCQkJCQlhb0RhdGFbaV0ublRyLmluc2VydEJlZm9yZSgKCQkJCQkJCQlhb0RhdGFbaV0uX2FuSGlkZGVuW2lDb2xdLCAKCQkJCQkJCQlfZm5HZXRUZE5vZGVzKCBvU2V0dGluZ3MsIGkgKVtpQmVmb3JlXSApOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9CgkJCWVsc2UKCQkJewoJCQkJLyogUmVtb3ZlIGEgY29sdW1uIGZyb20gZGlzcGxheSAqLwoJCQkJZm9yICggaT0wLCBpTGVuPWFvRGF0YS5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCQkJewoJCQkJCWlmICggYW9EYXRhW2ldLm5UciAhPT0gbnVsbCApCgkJCQkJewoJCQkJCQluVGQgPSBfZm5HZXRUZE5vZGVzKCBvU2V0dGluZ3MsIGkgKVtpQ29sXTsKCQkJCQkJYW9EYXRhW2ldLl9hbkhpZGRlbltpQ29sXSA9IG5UZDsKCQkJCQkJblRkLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoIG5UZCApOwoJCQkJCX0KCQkJCX0KCQkJfQoJCQoJCQkvKiBDbGVhciB0byBzZXQgdGhlIHZpc2libGUgZmxhZyAqLwoJCQlhb0NvbHVtbnNbaUNvbF0uYlZpc2libGUgPSBiU2hvdzsKCQkKCQkJLyogUmVkcmF3IHRoZSBoZWFkZXIgYW5kIGZvb3RlciBiYXNlZCBvbiB0aGUgbmV3IGNvbHVtbiB2aXNpYmlsaXR5ICovCgkJCV9mbkRyYXdIZWFkKCBvU2V0dGluZ3MsIG9TZXR0aW5ncy5hb0hlYWRlciApOwoJCQlpZiAoIG9TZXR0aW5ncy5uVEZvb3QgKQoJCQl7CgkJCQlfZm5EcmF3SGVhZCggb1NldHRpbmdzLCBvU2V0dGluZ3MuYW9Gb290ZXIgKTsKCQkJfQoJCQkKCQkJLyogSWYgdGhlcmUgYXJlIGFueSAnb3Blbicgcm93cywgdGhlbiB3ZSBuZWVkIHRvIGFsdGVyIHRoZSBjb2xzcGFuIGZvciB0aGlzIGNvbCBjaGFuZ2UgKi8KCQkJZm9yICggaT0wLCBpTGVuPW9TZXR0aW5ncy5hb09wZW5Sb3dzLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJCXsKCQkJCW9TZXR0aW5ncy5hb09wZW5Sb3dzW2ldLm5Uci5jb2xTcGFuID0gX2ZuVmlzYmxlQ29sdW1ucyggb1NldHRpbmdzICk7CgkJCX0KCQkJCgkJCS8qIERvIGEgcmVkcmF3IGluY2FzZSBhbnl0aGluZyBkZXBlbmRpbmcgb24gdGhlIHRhYmxlIGNvbHVtbnMgbmVlZHMgaXQgCgkJCSAqIChidWlsdC1pbjogc2Nyb2xsaW5nKSAKCQkJICovCgkJCWlmICggYlJlZHJhdyA9PT0gdW5kZWZpbmVkIHx8IGJSZWRyYXcgKQoJCQl7CgkJCQlfZm5BZGp1c3RDb2x1bW5TaXppbmcoIG9TZXR0aW5ncyApOwoJCQkJX2ZuRHJhdyggb1NldHRpbmdzICk7CgkJCX0KCQkJCgkJCV9mblNhdmVTdGF0ZSggb1NldHRpbmdzICk7CgkJfTsKCQkKCQkKCQkvKioKCQkgKiBHZXQgdGhlIHNldHRpbmdzIGZvciBhIHBhcnRpY3VsYXIgdGFibGUgZm9yIGV4dGVybmFsIG1hbmlwdWxhdGlvbgoJCSAqICBAcmV0dXJucyB7b2JqZWN0fSBEYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdC4gU2VlIAoJCSAqICAgIHtAbGluayBEYXRhVGFibGUubW9kZWxzLm9TZXR0aW5nc30KCQkgKiAgQGR0b3B0IEFQSQoJCSAqCgkJICogIEBleGFtcGxlCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CgkJICogICAgICB2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCQkgKiAgICAgIHZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCSAqICAgICAgCgkJICogICAgICAvLyBTaG93IGFuIGV4YW1wbGUgcGFyYW1ldGVyIGZyb20gdGhlIHNldHRpbmdzCgkJICogICAgICBhbGVydCggb1NldHRpbmdzLl9pRGlzcGxheVN0YXJ0ICk7CgkJICogICAgfSApOwoJCSAqLwoJCXRoaXMuZm5TZXR0aW5ncyA9IGZ1bmN0aW9uKCkKCQl7CgkJCXJldHVybiBfZm5TZXR0aW5nc0Zyb21Ob2RlKCB0aGlzW0RhdGFUYWJsZS5leHQuaUFwaUluZGV4XSApOwoJCX07CgkJCgkJCgkJLyoqCgkJICogU29ydCB0aGUgdGFibGUgYnkgYSBwYXJ0aWN1bGFyIGNvbHVtbgoJCSAqICBAcGFyYW0ge2ludH0gaUNvbCB0aGUgZGF0YSBpbmRleCB0byBzb3J0IG9uLiBOb3RlIHRoYXQgdGhpcyB3aWxsIG5vdCBtYXRjaCB0aGUgCgkJICogICAgJ2Rpc3BsYXkgaW5kZXgnIGlmIHlvdSBoYXZlIGhpZGRlbiBkYXRhIGVudHJpZXMKCQkgKiAgQGR0b3B0IEFQSQoJCSAqCgkJICogIEBleGFtcGxlCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CgkJICogICAgICB2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCQkgKiAgICAgIAoJCSAqICAgICAgLy8gU29ydCBpbW1lZGlhdGVseSB3aXRoIGNvbHVtbnMgMCBhbmQgMQoJCSAqICAgICAgb1RhYmxlLmZuU29ydCggWyBbMCwnYXNjJ10sIFsxLCdhc2MnXSBdICk7CgkJICogICAgfSApOwoJCSAqLwoJCXRoaXMuZm5Tb3J0ID0gZnVuY3Rpb24oIGFhU29ydCApCgkJewoJCQl2YXIgb1NldHRpbmdzID0gX2ZuU2V0dGluZ3NGcm9tTm9kZSggdGhpc1tEYXRhVGFibGUuZXh0LmlBcGlJbmRleF0gKTsKCQkJb1NldHRpbmdzLmFhU29ydGluZyA9IGFhU29ydDsKCQkJX2ZuU29ydCggb1NldHRpbmdzICk7CgkJfTsKCQkKCQkKCQkvKioKCQkgKiBBdHRhY2ggYSBzb3J0IGxpc3RlbmVyIHRvIGFuIGVsZW1lbnQgZm9yIGEgZ2l2ZW4gY29sdW1uCgkJICogIEBwYXJhbSB7bm9kZX0gbk5vZGUgdGhlIGVsZW1lbnQgdG8gYXR0YWNoIHRoZSBzb3J0IGxpc3RlbmVyIHRvCgkJICogIEBwYXJhbSB7aW50fSBpQ29sdW1uIHRoZSBjb2x1bW4gdGhhdCBhIGNsaWNrIG9uIHRoaXMgbm9kZSB3aWxsIHNvcnQgb24KCQkgKiAgQHBhcmFtIHtmdW5jdGlvbn0gW2ZuQ2FsbGJhY2tdIGNhbGxiYWNrIGZ1bmN0aW9uIHdoZW4gc29ydCBpcyBydW4KCQkgKiAgQGR0b3B0IEFQSQoJCSAqCgkJICogIEBleGFtcGxlCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CgkJICogICAgICB2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCQkgKiAgICAgIAoJCSAqICAgICAgLy8gU29ydCBvbiBjb2x1bW4gMSwgd2hlbiAnc29ydGVyJyBpcyBjbGlja2VkIG9uCgkJICogICAgICBvVGFibGUuZm5Tb3J0TGlzdGVuZXIoIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzb3J0ZXInKSwgMSApOwoJCSAqICAgIH0gKTsKCQkgKi8KCQl0aGlzLmZuU29ydExpc3RlbmVyID0gZnVuY3Rpb24oIG5Ob2RlLCBpQ29sdW1uLCBmbkNhbGxiYWNrICkKCQl7CgkJCV9mblNvcnRBdHRhY2hMaXN0ZW5lciggX2ZuU2V0dGluZ3NGcm9tTm9kZSggdGhpc1tEYXRhVGFibGUuZXh0LmlBcGlJbmRleF0gKSwgbk5vZGUsIGlDb2x1bW4sCgkJCSAJZm5DYWxsYmFjayApOwoJCX07CgkJCgkJCgkJLyoqCgkJICogVXBkYXRlIGEgdGFibGUgY2VsbCBvciByb3cgLSB0aGlzIG1ldGhvZCB3aWxsIGFjY2VwdCBlaXRoZXIgYSBzaW5nbGUgdmFsdWUgdG8KCQkgKiB1cGRhdGUgdGhlIGNlbGwgd2l0aCwgYW4gYXJyYXkgb2YgdmFsdWVzIHdpdGggb25lIGVsZW1lbnQgZm9yIGVhY2ggY29sdW1uIG9yCgkJICogYW4gb2JqZWN0IGluIHRoZSBzYW1lIGZvcm1hdCBhcyB0aGUgb3JpZ2luYWwgZGF0YSBzb3VyY2UuIFRoZSBmdW5jdGlvbiBpcwoJCSAqIHNlbGYtcmVmZXJlbmNpbmcgaW4gb3JkZXIgdG8gbWFrZSB0aGUgbXVsdGkgY29sdW1uIHVwZGF0ZXMgZWFzaWVyLgoJCSAqICBAcGFyYW0ge29iamVjdHxhcnJheXxzdHJpbmd9IG1EYXRhIERhdGEgdG8gdXBkYXRlIHRoZSBjZWxsL3JvdyB3aXRoCgkJICogIEBwYXJhbSB7bm9kZXxpbnR9IG1Sb3cgVFIgZWxlbWVudCB5b3Ugd2FudCB0byB1cGRhdGUgb3IgdGhlIGFvRGF0YSBpbmRleAoJCSAqICBAcGFyYW0ge2ludH0gW2lDb2x1bW5dIFRoZSBjb2x1bW4gdG8gdXBkYXRlIChub3QgdXNlZCBvZiBtRGF0YSBpcyBhbiBhcnJheSBvciBvYmplY3QpCgkJICogIEBwYXJhbSB7Ym9vbH0gW2JSZWRyYXc9dHJ1ZV0gUmVkcmF3IHRoZSB0YWJsZSBvciBub3QKCQkgKiAgQHBhcmFtIHtib29sfSBbYkFjdGlvbj10cnVlXSBQZXJmb3JtIHByZS1kcmF3IGFjdGlvbnMgb3Igbm90CgkJICogIEByZXR1cm5zIHtpbnR9IDAgb24gc3VjY2VzcywgMSBvbiBlcnJvcgoJCSAqICBAZHRvcHQgQVBJCgkJICoKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKCQkgKiAgICAgIHZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJCSAqICAgICAgb1RhYmxlLmZuVXBkYXRlKCAnRXhhbXBsZSB1cGRhdGUnLCAwLCAwICk7IC8vIFNpbmdsZSBjZWxsCgkJICogICAgICBvVGFibGUuZm5VcGRhdGUoIFsnYScsICdiJywgJ2MnLCAnZCcsICdlJ10sIDEsIDAgKTsgLy8gUm93CgkJICogICAgfSApOwoJCSAqLwoJCXRoaXMuZm5VcGRhdGUgPSBmdW5jdGlvbiggbURhdGEsIG1Sb3csIGlDb2x1bW4sIGJSZWRyYXcsIGJBY3Rpb24gKQoJCXsKCQkJdmFyIG9TZXR0aW5ncyA9IF9mblNldHRpbmdzRnJvbU5vZGUoIHRoaXNbRGF0YVRhYmxlLmV4dC5pQXBpSW5kZXhdICk7CgkJCXZhciBpLCBpTGVuLCBzRGlzcGxheTsKCQkJdmFyIGlSb3cgPSAodHlwZW9mIG1Sb3cgPT09ICdvYmplY3QnKSA/IAoJCQkJX2ZuTm9kZVRvRGF0YUluZGV4KG9TZXR0aW5ncywgbVJvdykgOiBtUm93OwoJCQkKCQkJaWYgKCAkLmlzQXJyYXkobURhdGEpICYmIGlDb2x1bW4gPT09IHVuZGVmaW5lZCApCgkJCXsKCQkJCS8qIEFycmF5IHVwZGF0ZSAtIHVwZGF0ZSB0aGUgd2hvbGUgcm93ICovCgkJCQlvU2V0dGluZ3MuYW9EYXRhW2lSb3ddLl9hRGF0YSA9IG1EYXRhLnNsaWNlKCk7CgkJCQkKCQkJCS8qIEZsYWcgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgd2UgYXJlIHJlY3Vyc2luZyAqLwoJCQkJZm9yICggaT0wIDsgaTxvU2V0dGluZ3MuYW9Db2x1bW5zLmxlbmd0aCA7IGkrKyApCgkJCQl7CgkJCQkJdGhpcy5mblVwZGF0ZSggX2ZuR2V0Q2VsbERhdGEoIG9TZXR0aW5ncywgaVJvdywgaSApLCBpUm93LCBpLCBmYWxzZSwgZmFsc2UgKTsKCQkJCX0KCQkJfQoJCQllbHNlIGlmICggJC5pc1BsYWluT2JqZWN0KG1EYXRhKSAmJiBpQ29sdW1uID09PSB1bmRlZmluZWQgKQoJCQl7CgkJCQkvKiBPYmplY3QgdXBkYXRlIC0gdXBkYXRlIHRoZSB3aG9sZSByb3cgLSBhc3N1bWUgdGhlIGRldmVsb3BlciBnZXRzIHRoZSBvYmplY3QgcmlnaHQgKi8KCQkJCW9TZXR0aW5ncy5hb0RhdGFbaVJvd10uX2FEYXRhID0gJC5leHRlbmQoIHRydWUsIHt9LCBtRGF0YSApOwoJCQoJCQkJZm9yICggaT0wIDsgaTxvU2V0dGluZ3MuYW9Db2x1bW5zLmxlbmd0aCA7IGkrKyApCgkJCQl7CgkJCQkJdGhpcy5mblVwZGF0ZSggX2ZuR2V0Q2VsbERhdGEoIG9TZXR0aW5ncywgaVJvdywgaSApLCBpUm93LCBpLCBmYWxzZSwgZmFsc2UgKTsKCQkJCX0KCQkJfQoJCQllbHNlCgkJCXsKCQkJCS8qIEluZGl2aWR1YWwgY2VsbCB1cGRhdGUgKi8KCQkJCV9mblNldENlbGxEYXRhKCBvU2V0dGluZ3MsIGlSb3csIGlDb2x1bW4sIG1EYXRhICk7CgkJCQlzRGlzcGxheSA9IF9mbkdldENlbGxEYXRhKCBvU2V0dGluZ3MsIGlSb3csIGlDb2x1bW4sICdkaXNwbGF5JyApOwoJCQkJCgkJCQl2YXIgb0NvbCA9IG9TZXR0aW5ncy5hb0NvbHVtbnNbaUNvbHVtbl07CgkJCQlpZiAoIG9Db2wuZm5SZW5kZXIgIT09IG51bGwgKQoJCQkJewoJCQkJCXNEaXNwbGF5ID0gX2ZuUmVuZGVyKCBvU2V0dGluZ3MsIGlSb3csIGlDb2x1bW4gKTsKCQkJCQlpZiAoIG9Db2wuYlVzZVJlbmRlcmVkICkKCQkJCQl7CgkJCQkJCV9mblNldENlbGxEYXRhKCBvU2V0dGluZ3MsIGlSb3csIGlDb2x1bW4sIHNEaXNwbGF5ICk7CgkJCQkJfQoJCQkJfQoJCQkJCgkJCQlpZiAoIG9TZXR0aW5ncy5hb0RhdGFbaVJvd10ublRyICE9PSBudWxsICkKCQkJCXsKCQkJCQkvKiBEbyB0aGUgYWN0dWFsIEhUTUwgdXBkYXRlICovCgkJCQkJX2ZuR2V0VGROb2Rlcyggb1NldHRpbmdzLCBpUm93IClbaUNvbHVtbl0uaW5uZXJIVE1MID0gc0Rpc3BsYXk7CgkJCQl9CgkJCX0KCQkJCgkJCS8qIE1vZGlmeSB0aGUgc2VhcmNoIGluZGV4IGZvciB0aGlzIHJvdyAoc3RyaWN0bHkgdGhpcyBpcyBsaWtlbHkgbm90IG5lZWRlZCwgc2luY2UgZm5SZURyYXcKCQkJICogd2lsbCByZWJ1aWxkIHRoZSBzZWFyY2ggYXJyYXkgLSBob3dldmVyLCB0aGUgcmVkcmF3IG1pZ2h0IGJlIGRpc2FibGVkIGJ5IHRoZSB1c2VyKQoJCQkgKi8KCQkJdmFyIGlEaXNwbGF5SW5kZXggPSAkLmluQXJyYXkoIGlSb3csIG9TZXR0aW5ncy5haURpc3BsYXkgKTsKCQkJb1NldHRpbmdzLmFzRGF0YVNlYXJjaFtpRGlzcGxheUluZGV4XSA9IF9mbkJ1aWxkU2VhcmNoUm93KAoJCQkJb1NldHRpbmdzLCAKCQkJCV9mbkdldFJvd0RhdGEoIG9TZXR0aW5ncywgaVJvdywgJ2ZpbHRlcicsIF9mbkdldENvbHVtbnMoIG9TZXR0aW5ncywgJ2JTZWFyY2hhYmxlJyApICkKCQkJKTsKCQkJCgkJCS8qIFBlcmZvcm0gcHJlLWRyYXcgYWN0aW9ucyAqLwoJCQlpZiAoIGJBY3Rpb24gPT09IHVuZGVmaW5lZCB8fCBiQWN0aW9uICkKCQkJewoJCQkJX2ZuQWRqdXN0Q29sdW1uU2l6aW5nKCBvU2V0dGluZ3MgKTsKCQkJfQoJCQkKCQkJLyogUmVkcmF3IHRoZSB0YWJsZSAqLwoJCQlpZiAoIGJSZWRyYXcgPT09IHVuZGVmaW5lZCB8fCBiUmVkcmF3ICkKCQkJewoJCQkJX2ZuUmVEcmF3KCBvU2V0dGluZ3MgKTsKCQkJfQoJCQlyZXR1cm4gMDsKCQl9OwoJCQoJCQoJCS8qKgoJCSAqIFByb3ZpZGUgYSBjb21tb24gbWV0aG9kIGZvciBwbHVnLWlucyB0byBjaGVjayB0aGUgdmVyc2lvbiBvZiBEYXRhVGFibGVzIGJlaW5nIHVzZWQsIGluIG9yZGVyCgkJICogdG8gZW5zdXJlIGNvbXBhdGliaWxpdHkuCgkJICogIEBwYXJhbSB7c3RyaW5nfSBzVmVyc2lvbiBWZXJzaW9uIHN0cmluZyB0byBjaGVjayBmb3IsIGluIHRoZSBmb3JtYXQgIlguWS5aIi4gTm90ZSB0aGF0IHRoZQoJCSAqICAgIGZvcm1hdHMgIlgiIGFuZCAiWC5ZIiBhcmUgYWxzbyBhY2NlcHRhYmxlLgoJCSAqICBAcmV0dXJucyB7Ym9vbGVhbn0gdHJ1ZSBpZiB0aGlzIHZlcnNpb24gb2YgRGF0YVRhYmxlcyBpcyBncmVhdGVyIG9yIGVxdWFsIHRvIHRoZSByZXF1aXJlZAoJCSAqICAgIHZlcnNpb24sIG9yIGZhbHNlIGlmIHRoaXMgdmVyc2lvbiBvZiBEYXRhVGFsZXMgaXMgbm90IHN1aXRhYmxlCgkJICogIEBtZXRob2QKCQkgKiAgQGR0b3B0IEFQSQoJCSAqCgkJICogIEBleGFtcGxlCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CgkJICogICAgICB2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCQkgKiAgICAgIGFsZXJ0KCBvVGFibGUuZm5WZXJzaW9uQ2hlY2soICcxLjkuMCcgKSApOwoJCSAqICAgIH0gKTsKCQkgKi8KCQl0aGlzLmZuVmVyc2lvbkNoZWNrID0gRGF0YVRhYmxlLmV4dC5mblZlcnNpb25DaGVjazsKCQkKCQkKCQkvKgoJCSAqIFRoaXMgaXMgcmVhbGx5IGEgZ29vZCBiaXQgcnViYmlzaCB0aGlzIG1ldGhvZCBvZiBleHBvc2luZyB0aGUgaW50ZXJuYWwgbWV0aG9kcwoJCSAqIHB1YmxpY2x5Li4uIC0gVG8gYmUgZml4ZWQgaW4gMi4wIHVzaW5nIG1ldGhvZHMgb24gdGhlIHByb3RvdHlwZQoJCSAqLwoJCQoJCQoJCS8qKgoJCSAqIENyZWF0ZSBhIHdyYXBwZXIgZnVuY3Rpb24gZm9yIGV4cG9ydGluZyBhbiBpbnRlcm5hbCBmdW5jdGlvbnMgdG8gYW4gZXh0ZXJuYWwgQVBJLgoJCSAqICBAcGFyYW0ge3N0cmluZ30gc0Z1bmMgQVBJIGZ1bmN0aW9uIG5hbWUKCQkgKiAgQHJldHVybnMge2Z1bmN0aW9ufSB3cmFwcGVkIGZ1bmN0aW9uCgkJICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQoJCSAqLwoJCWZ1bmN0aW9uIF9mbkV4dGVybkFwaUZ1bmMgKHNGdW5jKQoJCXsKCQkJcmV0dXJuIGZ1bmN0aW9uKCkgewoJCQkJdmFyIGFBcmdzID0gW19mblNldHRpbmdzRnJvbU5vZGUodGhpc1tEYXRhVGFibGUuZXh0LmlBcGlJbmRleF0pXS5jb25jYXQoIAoJCQkJCUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cykgKTsKCQkJCXJldHVybiBEYXRhVGFibGUuZXh0Lm9BcGlbc0Z1bmNdLmFwcGx5KCB0aGlzLCBhQXJncyApOwoJCQl9OwoJCX0KCQkKCQkKCQkvKioKCQkgKiBSZWZlcmVuY2UgdG8gaW50ZXJuYWwgZnVuY3Rpb25zIGZvciB1c2UgYnkgcGx1Zy1pbiBkZXZlbG9wZXJzLiBOb3RlIHRoYXQgdGhlc2UKCQkgKiBtZXRob2RzIGFyZSByZWZlcmVuY2VzIHRvIGludGVybmFsIGZ1bmN0aW9ucyBhbmQgYXJlIGNvbnNpZGVyZWQgdG8gYmUgcHJpdmF0ZS4KCQkgKiBJZiB5b3UgdXNlIHRoZXNlIG1ldGhvZHMsIGJlIGF3YXJlIHRoYXQgdGhleSBhcmUgbGlhYmxlIHRvIGNoYW5nZSBiZXR3ZWVuIHZlcnNpb25zCgkJICogKGNoZWNrIHRoZSB1cGdyYWRlIG5vdGVzKS4KCQkgKiAgQG5hbWVzcGFjZQoJCSAqLwoJCXRoaXMub0FwaSA9IHsKCQkJIl9mbkV4dGVybkFwaUZ1bmMiOiBfZm5FeHRlcm5BcGlGdW5jLAoJCQkiX2ZuSW5pdGlhbGlzZSI6IF9mbkluaXRpYWxpc2UsCgkJCSJfZm5Jbml0Q29tcGxldGUiOiBfZm5Jbml0Q29tcGxldGUsCgkJCSJfZm5MYW5ndWFnZUNvbXBhdCI6IF9mbkxhbmd1YWdlQ29tcGF0LAoJCQkiX2ZuQWRkQ29sdW1uIjogX2ZuQWRkQ29sdW1uLAoJCQkiX2ZuQ29sdW1uT3B0aW9ucyI6IF9mbkNvbHVtbk9wdGlvbnMsCgkJCSJfZm5BZGREYXRhIjogX2ZuQWRkRGF0YSwKCQkJIl9mbkNyZWF0ZVRyIjogX2ZuQ3JlYXRlVHIsCgkJCSJfZm5HYXRoZXJEYXRhIjogX2ZuR2F0aGVyRGF0YSwKCQkJIl9mbkJ1aWxkSGVhZCI6IF9mbkJ1aWxkSGVhZCwKCQkJIl9mbkRyYXdIZWFkIjogX2ZuRHJhd0hlYWQsCgkJCSJfZm5EcmF3IjogX2ZuRHJhdywKCQkJIl9mblJlRHJhdyI6IF9mblJlRHJhdywKCQkJIl9mbkFqYXhVcGRhdGUiOiBfZm5BamF4VXBkYXRlLAoJCQkiX2ZuQWpheFBhcmFtZXRlcnMiOiBfZm5BamF4UGFyYW1ldGVycywKCQkJIl9mbkFqYXhVcGRhdGVEcmF3IjogX2ZuQWpheFVwZGF0ZURyYXcsCgkJCSJfZm5TZXJ2ZXJQYXJhbXMiOiBfZm5TZXJ2ZXJQYXJhbXMsCgkJCSJfZm5BZGRPcHRpb25zSHRtbCI6IF9mbkFkZE9wdGlvbnNIdG1sLAoJCQkiX2ZuRmVhdHVyZUh0bWxUYWJsZSI6IF9mbkZlYXR1cmVIdG1sVGFibGUsCgkJCSJfZm5TY3JvbGxEcmF3IjogX2ZuU2Nyb2xsRHJhdywKCQkJIl9mbkFkanVzdENvbHVtblNpemluZyI6IF9mbkFkanVzdENvbHVtblNpemluZywKCQkJIl9mbkZlYXR1cmVIdG1sRmlsdGVyIjogX2ZuRmVhdHVyZUh0bWxGaWx0ZXIsCgkJCSJfZm5GaWx0ZXJDb21wbGV0ZSI6IF9mbkZpbHRlckNvbXBsZXRlLAoJCQkiX2ZuRmlsdGVyQ3VzdG9tIjogX2ZuRmlsdGVyQ3VzdG9tLAoJCQkiX2ZuRmlsdGVyQ29sdW1uIjogX2ZuRmlsdGVyQ29sdW1uLAoJCQkiX2ZuRmlsdGVyIjogX2ZuRmlsdGVyLAoJCQkiX2ZuQnVpbGRTZWFyY2hBcnJheSI6IF9mbkJ1aWxkU2VhcmNoQXJyYXksCgkJCSJfZm5CdWlsZFNlYXJjaFJvdyI6IF9mbkJ1aWxkU2VhcmNoUm93LAoJCQkiX2ZuRmlsdGVyQ3JlYXRlU2VhcmNoIjogX2ZuRmlsdGVyQ3JlYXRlU2VhcmNoLAoJCQkiX2ZuRGF0YVRvU2VhcmNoIjogX2ZuRGF0YVRvU2VhcmNoLAoJCQkiX2ZuU29ydCI6IF9mblNvcnQsCgkJCSJfZm5Tb3J0QXR0YWNoTGlzdGVuZXIiOiBfZm5Tb3J0QXR0YWNoTGlzdGVuZXIsCgkJCSJfZm5Tb3J0aW5nQ2xhc3NlcyI6IF9mblNvcnRpbmdDbGFzc2VzLAoJCQkiX2ZuRmVhdHVyZUh0bWxQYWdpbmF0ZSI6IF9mbkZlYXR1cmVIdG1sUGFnaW5hdGUsCgkJCSJfZm5QYWdlQ2hhbmdlIjogX2ZuUGFnZUNoYW5nZSwKCQkJIl9mbkZlYXR1cmVIdG1sSW5mbyI6IF9mbkZlYXR1cmVIdG1sSW5mbywKCQkJIl9mblVwZGF0ZUluZm8iOiBfZm5VcGRhdGVJbmZvLAoJCQkiX2ZuRmVhdHVyZUh0bWxMZW5ndGgiOiBfZm5GZWF0dXJlSHRtbExlbmd0aCwKCQkJIl9mbkZlYXR1cmVIdG1sUHJvY2Vzc2luZyI6IF9mbkZlYXR1cmVIdG1sUHJvY2Vzc2luZywKCQkJIl9mblByb2Nlc3NpbmdEaXNwbGF5IjogX2ZuUHJvY2Vzc2luZ0Rpc3BsYXksCgkJCSJfZm5WaXNpYmxlVG9Db2x1bW5JbmRleCI6IF9mblZpc2libGVUb0NvbHVtbkluZGV4LAoJCQkiX2ZuQ29sdW1uSW5kZXhUb1Zpc2libGUiOiBfZm5Db2x1bW5JbmRleFRvVmlzaWJsZSwKCQkJIl9mbk5vZGVUb0RhdGFJbmRleCI6IF9mbk5vZGVUb0RhdGFJbmRleCwKCQkJIl9mblZpc2JsZUNvbHVtbnMiOiBfZm5WaXNibGVDb2x1bW5zLAoJCQkiX2ZuQ2FsY3VsYXRlRW5kIjogX2ZuQ2FsY3VsYXRlRW5kLAoJCQkiX2ZuQ29udmVydFRvV2lkdGgiOiBfZm5Db252ZXJ0VG9XaWR0aCwKCQkJIl9mbkNhbGN1bGF0ZUNvbHVtbldpZHRocyI6IF9mbkNhbGN1bGF0ZUNvbHVtbldpZHRocywKCQkJIl9mblNjcm9sbGluZ1dpZHRoQWRqdXN0IjogX2ZuU2Nyb2xsaW5nV2lkdGhBZGp1c3QsCgkJCSJfZm5HZXRXaWRlc3ROb2RlIjogX2ZuR2V0V2lkZXN0Tm9kZSwKCQkJIl9mbkdldE1heExlblN0cmluZyI6IF9mbkdldE1heExlblN0cmluZywKCQkJIl9mblN0cmluZ1RvQ3NzIjogX2ZuU3RyaW5nVG9Dc3MsCgkJCSJfZm5EZXRlY3RUeXBlIjogX2ZuRGV0ZWN0VHlwZSwKCQkJIl9mblNldHRpbmdzRnJvbU5vZGUiOiBfZm5TZXR0aW5nc0Zyb21Ob2RlLAoJCQkiX2ZuR2V0RGF0YU1hc3RlciI6IF9mbkdldERhdGFNYXN0ZXIsCgkJCSJfZm5HZXRUck5vZGVzIjogX2ZuR2V0VHJOb2RlcywKCQkJIl9mbkdldFRkTm9kZXMiOiBfZm5HZXRUZE5vZGVzLAoJCQkiX2ZuRXNjYXBlUmVnZXgiOiBfZm5Fc2NhcGVSZWdleCwKCQkJIl9mbkRlbGV0ZUluZGV4IjogX2ZuRGVsZXRlSW5kZXgsCgkJCSJfZm5SZU9yZGVySW5kZXgiOiBfZm5SZU9yZGVySW5kZXgsCgkJCSJfZm5Db2x1bW5PcmRlcmluZyI6IF9mbkNvbHVtbk9yZGVyaW5nLAoJCQkiX2ZuTG9nIjogX2ZuTG9nLAoJCQkiX2ZuQ2xlYXJUYWJsZSI6IF9mbkNsZWFyVGFibGUsCgkJCSJfZm5TYXZlU3RhdGUiOiBfZm5TYXZlU3RhdGUsCgkJCSJfZm5Mb2FkU3RhdGUiOiBfZm5Mb2FkU3RhdGUsCgkJCSJfZm5DcmVhdGVDb29raWUiOiBfZm5DcmVhdGVDb29raWUsCgkJCSJfZm5SZWFkQ29va2llIjogX2ZuUmVhZENvb2tpZSwKCQkJIl9mbkRldGVjdEhlYWRlciI6IF9mbkRldGVjdEhlYWRlciwKCQkJIl9mbkdldFVuaXF1ZVRocyI6IF9mbkdldFVuaXF1ZVRocywKCQkJIl9mblNjcm9sbEJhcldpZHRoIjogX2ZuU2Nyb2xsQmFyV2lkdGgsCgkJCSJfZm5BcHBseVRvQ2hpbGRyZW4iOiBfZm5BcHBseVRvQ2hpbGRyZW4sCgkJCSJfZm5NYXAiOiBfZm5NYXAsCgkJCSJfZm5HZXRSb3dEYXRhIjogX2ZuR2V0Um93RGF0YSwKCQkJIl9mbkdldENlbGxEYXRhIjogX2ZuR2V0Q2VsbERhdGEsCgkJCSJfZm5TZXRDZWxsRGF0YSI6IF9mblNldENlbGxEYXRhLAoJCQkiX2ZuR2V0T2JqZWN0RGF0YUZuIjogX2ZuR2V0T2JqZWN0RGF0YUZuLAoJCQkiX2ZuU2V0T2JqZWN0RGF0YUZuIjogX2ZuU2V0T2JqZWN0RGF0YUZuLAoJCQkiX2ZuQXBwbHlDb2x1bW5EZWZzIjogX2ZuQXBwbHlDb2x1bW5EZWZzLAoJCQkiX2ZuQmluZEFjdGlvbiI6IF9mbkJpbmRBY3Rpb24sCgkJCSJfZm5FeHRlbmQiOiBfZm5FeHRlbmQsCgkJCSJfZm5DYWxsYmFja1JlZyI6IF9mbkNhbGxiYWNrUmVnLAoJCQkiX2ZuQ2FsbGJhY2tGaXJlIjogX2ZuQ2FsbGJhY2tGaXJlLAoJCQkiX2ZuSnNvblN0cmluZyI6IF9mbkpzb25TdHJpbmcsCgkJCSJfZm5SZW5kZXIiOiBfZm5SZW5kZXIsCgkJCSJfZm5Ob2RlVG9Db2x1bW5JbmRleCI6IF9mbk5vZGVUb0NvbHVtbkluZGV4LAoJCQkiX2ZuSW5mb01hY3JvcyI6IF9mbkluZm9NYWNyb3MsCgkJCSJfZm5Ccm93c2VyRGV0ZWN0IjogX2ZuQnJvd3NlckRldGVjdCwKCQkJIl9mbkdldENvbHVtbnMiOiBfZm5HZXRDb2x1bW5zCgkJfTsKCQkKCQkkLmV4dGVuZCggRGF0YVRhYmxlLmV4dC5vQXBpLCB0aGlzLm9BcGkgKTsKCQkKCQlmb3IgKCB2YXIgc0Z1bmMgaW4gRGF0YVRhYmxlLmV4dC5vQXBpICkKCQl7CgkJCWlmICggc0Z1bmMgKQoJCQl7CgkJCQl0aGlzW3NGdW5jXSA9IF9mbkV4dGVybkFwaUZ1bmMoc0Z1bmMpOwoJCQl9CgkJfQoJCQoJCQoJCXZhciBfdGhhdCA9IHRoaXM7CgkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJCgkJCXZhciBpPTAsIGlMZW4sIGosIGpMZW4sIGssIGtMZW47CgkJCXZhciBzSWQgPSB0aGlzLmdldEF0dHJpYnV0ZSggJ2lkJyApOwoJCQl2YXIgYkluaXRIYW5kZWRPZmYgPSBmYWxzZTsKCQkJdmFyIGJVc2VQYXNzZWREYXRhID0gZmFsc2U7CgkJCQoJCQkKCQkJLyogU2FuaXR5IGNoZWNrICovCgkJCWlmICggdGhpcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpICE9ICd0YWJsZScgKQoJCQl7CgkJCQlfZm5Mb2coIG51bGwsIDAsICJBdHRlbXB0ZWQgdG8gaW5pdGlhbGlzZSBEYXRhVGFibGVzIG9uIGEgbm9kZSB3aGljaCBpcyBub3QgYSAiKwoJCQkJCSJ0YWJsZTogIit0aGlzLm5vZGVOYW1lICk7CgkJCQlyZXR1cm47CgkJCX0KCQkJCgkJCS8qIENoZWNrIHRvIHNlZSBpZiB3ZSBhcmUgcmUtaW5pdGlhbGlzaW5nIGEgdGFibGUgKi8KCQkJZm9yICggaT0wLCBpTGVuPURhdGFUYWJsZS5zZXR0aW5ncy5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCQl7CgkJCQkvKiBCYXNlIGNoZWNrIG9uIHRhYmxlIG5vZGUgKi8KCQkJCWlmICggRGF0YVRhYmxlLnNldHRpbmdzW2ldLm5UYWJsZSA9PSB0aGlzICkKCQkJCXsKCQkJCQlpZiAoIG9Jbml0ID09PSB1bmRlZmluZWQgfHwgb0luaXQuYlJldHJpZXZlICkKCQkJCQl7CgkJCQkJCXJldHVybiBEYXRhVGFibGUuc2V0dGluZ3NbaV0ub0luc3RhbmNlOwoJCQkJCX0KCQkJCQllbHNlIGlmICggb0luaXQuYkRlc3Ryb3kgKQoJCQkJCXsKCQkJCQkJRGF0YVRhYmxlLnNldHRpbmdzW2ldLm9JbnN0YW5jZS5mbkRlc3Ryb3koKTsKCQkJCQkJYnJlYWs7CgkJCQkJfQoJCQkJCWVsc2UKCQkJCQl7CgkJCQkJCV9mbkxvZyggRGF0YVRhYmxlLnNldHRpbmdzW2ldLCAwLCAiQ2Fubm90IHJlaW5pdGlhbGlzZSBEYXRhVGFibGUuXG5cbiIrCgkJCQkJCQkiVG8gcmV0cmlldmUgdGhlIERhdGFUYWJsZXMgb2JqZWN0IGZvciB0aGlzIHRhYmxlLCBwYXNzIG5vIGFyZ3VtZW50cyBvciBzZWUgIisKCQkJCQkJCSJ0aGUgZG9jcyBmb3IgYlJldHJpZXZlIGFuZCBiRGVzdHJveSIgKTsKCQkJCQkJcmV0dXJuOwoJCQkJCX0KCQkJCX0KCQkJCQoJCQkJLyogSWYgdGhlIGVsZW1lbnQgd2UgYXJlIGluaXRpYWxpc2luZyBoYXMgdGhlIHNhbWUgSUQgYXMgYSB0YWJsZSB3aGljaCB3YXMgcHJldmlvdXNseQoJCQkJICogaW5pdGlhbGlzZWQsIGJ1dCB0aGUgdGFibGUgbm9kZXMgZG9uJ3QgbWF0Y2ggKGZyb20gYmVmb3JlKSB0aGVuIHdlIGRlc3Ryb3kgdGhlIG9sZAoJCQkJICogaW5zdGFuY2UgYnkgc2ltcGx5IGRlbGV0aW5nIGl0LiBUaGlzIGlzIHVuZGVyIHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhlIHRhYmxlIGhhcyBiZWVuCgkJCQkgKiBkZXN0cm95ZWQgYnkgb3RoZXIgbWV0aG9kcy4gQW55b25lIHVzaW5nIG5vbi1pZCBzZWxlY3RvcnMgd2lsbCBuZWVkIHRvIGRvIHRoaXMgbWFudWFsbHkKCQkJCSAqLwoJCQkJaWYgKCBEYXRhVGFibGUuc2V0dGluZ3NbaV0uc1RhYmxlSWQgPT0gdGhpcy5pZCApCgkJCQl7CgkJCQkJRGF0YVRhYmxlLnNldHRpbmdzLnNwbGljZSggaSwgMSApOwoJCQkJCWJyZWFrOwoJCQkJfQoJCQl9CgkJCQoJCQkvKiBFbnN1cmUgdGhlIHRhYmxlIGhhcyBhbiBJRCAtIHJlcXVpcmVkIGZvciBhY2Nlc3NpYmlsaXR5ICovCgkJCWlmICggc0lkID09PSBudWxsIHx8IHNJZCA9PT0gIiIgKQoJCQl7CgkJCQlzSWQgPSAiRGF0YVRhYmxlc19UYWJsZV8iKyhEYXRhVGFibGUuZXh0Ll9vRXh0ZXJuQ29uZmlnLmlOZXh0VW5pcXVlKyspOwoJCQkJdGhpcy5pZCA9IHNJZDsKCQkJfQoJCQkKCQkJLyogQ3JlYXRlIHRoZSBzZXR0aW5ncyBvYmplY3QgZm9yIHRoaXMgdGFibGUgYW5kIHNldCBzb21lIG9mIHRoZSBkZWZhdWx0IHBhcmFtZXRlcnMgKi8KCQkJdmFyIG9TZXR0aW5ncyA9ICQuZXh0ZW5kKCB0cnVlLCB7fSwgRGF0YVRhYmxlLm1vZGVscy5vU2V0dGluZ3MsIHsKCQkJCSJuVGFibGUiOiAgICAgICAgdGhpcywKCQkJCSJvQXBpIjogICAgICAgICAgX3RoYXQub0FwaSwKCQkJCSJvSW5pdCI6ICAgICAgICAgb0luaXQsCgkJCQkic0Rlc3Ryb3lXaWR0aCI6ICQodGhpcykud2lkdGgoKSwKCQkJCSJzSW5zdGFuY2UiOiAgICAgc0lkLAoJCQkJInNUYWJsZUlkIjogICAgICBzSWQKCQkJfSApOwoJCQlEYXRhVGFibGUuc2V0dGluZ3MucHVzaCggb1NldHRpbmdzICk7CgkJCQoJCQkvLyBOZWVkIHRvIGFkZCB0aGUgaW5zdGFuY2UgYWZ0ZXIgdGhlIGluc3RhbmNlIGFmdGVyIHRoZSBzZXR0aW5ncyBvYmplY3QgaGFzIGJlZW4gYWRkZWQKCQkJLy8gdG8gdGhlIHNldHRpbmdzIGFycmF5LCBzbyB3ZSBjYW4gc2VsZiByZWZlcmVuY2UgdGhlIHRhYmxlIGluc3RhbmNlIGlmIG1vcmUgdGhhbiBvbmUKCQkJb1NldHRpbmdzLm9JbnN0YW5jZSA9IChfdGhhdC5sZW5ndGg9PT0xKSA/IF90aGF0IDogJCh0aGlzKS5kYXRhVGFibGUoKTsKCQkJCgkJCS8qIFNldHRpbmcgdXAgdGhlIGluaXRpYWxpc2F0aW9uIG9iamVjdCAqLwoJCQlpZiAoICFvSW5pdCApCgkJCXsKCQkJCW9Jbml0ID0ge307CgkJCX0KCQkJCgkJCS8vIEJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCBiZWZvcmUgd2UgYXBwbHkgYWxsIHRoZSBkZWZhdWx0cwoJCQlpZiAoIG9Jbml0Lm9MYW5ndWFnZSApCgkJCXsKCQkJCV9mbkxhbmd1YWdlQ29tcGF0KCBvSW5pdC5vTGFuZ3VhZ2UgKTsKCQkJfQoJCQkKCQkJb0luaXQgPSBfZm5FeHRlbmQoICQuZXh0ZW5kKHRydWUsIHt9LCBEYXRhVGFibGUuZGVmYXVsdHMpLCBvSW5pdCApOwoJCQkKCQkJLy8gTWFwIHRoZSBpbml0aWFsaXNhdGlvbiBvcHRpb25zIG9udG8gdGhlIHNldHRpbmdzIG9iamVjdAoJCQlfZm5NYXAoIG9TZXR0aW5ncy5vRmVhdHVyZXMsIG9Jbml0LCAiYlBhZ2luYXRlIiApOwoJCQlfZm5NYXAoIG9TZXR0aW5ncy5vRmVhdHVyZXMsIG9Jbml0LCAiYkxlbmd0aENoYW5nZSIgKTsKCQkJX2ZuTWFwKCBvU2V0dGluZ3Mub0ZlYXR1cmVzLCBvSW5pdCwgImJGaWx0ZXIiICk7CgkJCV9mbk1hcCggb1NldHRpbmdzLm9GZWF0dXJlcywgb0luaXQsICJiU29ydCIgKTsKCQkJX2ZuTWFwKCBvU2V0dGluZ3Mub0ZlYXR1cmVzLCBvSW5pdCwgImJJbmZvIiApOwoJCQlfZm5NYXAoIG9TZXR0aW5ncy5vRmVhdHVyZXMsIG9Jbml0LCAiYlByb2Nlc3NpbmciICk7CgkJCV9mbk1hcCggb1NldHRpbmdzLm9GZWF0dXJlcywgb0luaXQsICJiQXV0b1dpZHRoIiApOwoJCQlfZm5NYXAoIG9TZXR0aW5ncy5vRmVhdHVyZXMsIG9Jbml0LCAiYlNvcnRDbGFzc2VzIiApOwoJCQlfZm5NYXAoIG9TZXR0aW5ncy5vRmVhdHVyZXMsIG9Jbml0LCAiYlNlcnZlclNpZGUiICk7CgkJCV9mbk1hcCggb1NldHRpbmdzLm9GZWF0dXJlcywgb0luaXQsICJiRGVmZXJSZW5kZXIiICk7CgkJCV9mbk1hcCggb1NldHRpbmdzLm9TY3JvbGwsIG9Jbml0LCAic1Njcm9sbFgiLCAic1giICk7CgkJCV9mbk1hcCggb1NldHRpbmdzLm9TY3JvbGwsIG9Jbml0LCAic1Njcm9sbFhJbm5lciIsICJzWElubmVyIiApOwoJCQlfZm5NYXAoIG9TZXR0aW5ncy5vU2Nyb2xsLCBvSW5pdCwgInNTY3JvbGxZIiwgInNZIiApOwoJCQlfZm5NYXAoIG9TZXR0aW5ncy5vU2Nyb2xsLCBvSW5pdCwgImJTY3JvbGxDb2xsYXBzZSIsICJiQ29sbGFwc2UiICk7CgkJCV9mbk1hcCggb1NldHRpbmdzLm9TY3JvbGwsIG9Jbml0LCAiYlNjcm9sbEluZmluaXRlIiwgImJJbmZpbml0ZSIgKTsKCQkJX2ZuTWFwKCBvU2V0dGluZ3Mub1Njcm9sbCwgb0luaXQsICJpU2Nyb2xsTG9hZEdhcCIsICJpTG9hZEdhcCIgKTsKCQkJX2ZuTWFwKCBvU2V0dGluZ3Mub1Njcm9sbCwgb0luaXQsICJiU2Nyb2xsQXV0b0NzcyIsICJiQXV0b0NzcyIgKTsKCQkJX2ZuTWFwKCBvU2V0dGluZ3MsIG9Jbml0LCAiYXNTdHJpcGVDbGFzc2VzIiApOwoJCQlfZm5NYXAoIG9TZXR0aW5ncywgb0luaXQsICJhc1N0cmlwQ2xhc3NlcyIsICJhc1N0cmlwZUNsYXNzZXMiICk7IC8vIGxlZ2FjeQoJCQlfZm5NYXAoIG9TZXR0aW5ncywgb0luaXQsICJmblNlcnZlckRhdGEiICk7CgkJCV9mbk1hcCggb1NldHRpbmdzLCBvSW5pdCwgImZuRm9ybWF0TnVtYmVyIiApOwoJCQlfZm5NYXAoIG9TZXR0aW5ncywgb0luaXQsICJzU2VydmVyTWV0aG9kIiApOwoJCQlfZm5NYXAoIG9TZXR0aW5ncywgb0luaXQsICJhYVNvcnRpbmciICk7CgkJCV9mbk1hcCggb1NldHRpbmdzLCBvSW5pdCwgImFhU29ydGluZ0ZpeGVkIiApOwoJCQlfZm5NYXAoIG9TZXR0aW5ncywgb0luaXQsICJhTGVuZ3RoTWVudSIgKTsKCQkJX2ZuTWFwKCBvU2V0dGluZ3MsIG9Jbml0LCAic1BhZ2luYXRpb25UeXBlIiApOwoJCQlfZm5NYXAoIG9TZXR0aW5ncywgb0luaXQsICJzQWpheFNvdXJjZSIgKTsKCQkJX2ZuTWFwKCBvU2V0dGluZ3MsIG9Jbml0LCAic0FqYXhEYXRhUHJvcCIgKTsKCQkJX2ZuTWFwKCBvU2V0dGluZ3MsIG9Jbml0LCAiaUNvb2tpZUR1cmF0aW9uIiApOwoJCQlfZm5NYXAoIG9TZXR0aW5ncywgb0luaXQsICJzQ29va2llUHJlZml4IiApOwoJCQlfZm5NYXAoIG9TZXR0aW5ncywgb0luaXQsICJzRG9tIiApOwoJCQlfZm5NYXAoIG9TZXR0aW5ncywgb0luaXQsICJiU29ydENlbGxzVG9wIiApOwoJCQlfZm5NYXAoIG9TZXR0aW5ncywgb0luaXQsICJpVGFiSW5kZXgiICk7CgkJCV9mbk1hcCggb1NldHRpbmdzLCBvSW5pdCwgIm9TZWFyY2giLCAib1ByZXZpb3VzU2VhcmNoIiApOwoJCQlfZm5NYXAoIG9TZXR0aW5ncywgb0luaXQsICJhb1NlYXJjaENvbHMiLCAiYW9QcmVTZWFyY2hDb2xzIiApOwoJCQlfZm5NYXAoIG9TZXR0aW5ncywgb0luaXQsICJpRGlzcGxheUxlbmd0aCIsICJfaURpc3BsYXlMZW5ndGgiICk7CgkJCV9mbk1hcCggb1NldHRpbmdzLCBvSW5pdCwgImJKUXVlcnlVSSIsICJiSlVJIiApOwoJCQlfZm5NYXAoIG9TZXR0aW5ncywgb0luaXQsICJmbkNvb2tpZUNhbGxiYWNrIiApOwoJCQlfZm5NYXAoIG9TZXR0aW5ncywgb0luaXQsICJmblN0YXRlTG9hZCIgKTsKCQkJX2ZuTWFwKCBvU2V0dGluZ3MsIG9Jbml0LCAiZm5TdGF0ZVNhdmUiICk7CgkJCV9mbk1hcCggb1NldHRpbmdzLm9MYW5ndWFnZSwgb0luaXQsICJmbkluZm9DYWxsYmFjayIgKTsKCQkJCgkJCS8qIENhbGxiYWNrIGZ1bmN0aW9ucyB3aGljaCBhcmUgYXJyYXkgZHJpdmVuICovCgkJCV9mbkNhbGxiYWNrUmVnKCBvU2V0dGluZ3MsICdhb0RyYXdDYWxsYmFjaycsICAgICAgIG9Jbml0LmZuRHJhd0NhbGxiYWNrLCAgICAgICd1c2VyJyApOwoJCQlfZm5DYWxsYmFja1JlZyggb1NldHRpbmdzLCAnYW9TZXJ2ZXJQYXJhbXMnLCAgICAgICBvSW5pdC5mblNlcnZlclBhcmFtcywgICAgICAndXNlcicgKTsKCQkJX2ZuQ2FsbGJhY2tSZWcoIG9TZXR0aW5ncywgJ2FvU3RhdGVTYXZlUGFyYW1zJywgICAgb0luaXQuZm5TdGF0ZVNhdmVQYXJhbXMsICAgJ3VzZXInICk7CgkJCV9mbkNhbGxiYWNrUmVnKCBvU2V0dGluZ3MsICdhb1N0YXRlTG9hZFBhcmFtcycsICAgIG9Jbml0LmZuU3RhdGVMb2FkUGFyYW1zLCAgICd1c2VyJyApOwoJCQlfZm5DYWxsYmFja1JlZyggb1NldHRpbmdzLCAnYW9TdGF0ZUxvYWRlZCcsICAgICAgICBvSW5pdC5mblN0YXRlTG9hZGVkLCAgICAgICAndXNlcicgKTsKCQkJX2ZuQ2FsbGJhY2tSZWcoIG9TZXR0aW5ncywgJ2FvUm93Q2FsbGJhY2snLCAgICAgICAgb0luaXQuZm5Sb3dDYWxsYmFjaywgICAgICAgJ3VzZXInICk7CgkJCV9mbkNhbGxiYWNrUmVnKCBvU2V0dGluZ3MsICdhb1Jvd0NyZWF0ZWRDYWxsYmFjaycsIG9Jbml0LmZuQ3JlYXRlZFJvdywgICAgICAgICd1c2VyJyApOwoJCQlfZm5DYWxsYmFja1JlZyggb1NldHRpbmdzLCAnYW9IZWFkZXJDYWxsYmFjaycsICAgICBvSW5pdC5mbkhlYWRlckNhbGxiYWNrLCAgICAndXNlcicgKTsKCQkJX2ZuQ2FsbGJhY2tSZWcoIG9TZXR0aW5ncywgJ2FvRm9vdGVyQ2FsbGJhY2snLCAgICAgb0luaXQuZm5Gb290ZXJDYWxsYmFjaywgICAgJ3VzZXInICk7CgkJCV9mbkNhbGxiYWNrUmVnKCBvU2V0dGluZ3MsICdhb0luaXRDb21wbGV0ZScsICAgICAgIG9Jbml0LmZuSW5pdENvbXBsZXRlLCAgICAgICd1c2VyJyApOwoJCQlfZm5DYWxsYmFja1JlZyggb1NldHRpbmdzLCAnYW9QcmVEcmF3Q2FsbGJhY2snLCAgICBvSW5pdC5mblByZURyYXdDYWxsYmFjaywgICAndXNlcicgKTsKCQkJCgkJCWlmICggb1NldHRpbmdzLm9GZWF0dXJlcy5iU2VydmVyU2lkZSAmJiBvU2V0dGluZ3Mub0ZlYXR1cmVzLmJTb3J0ICYmCgkJCQkgICBvU2V0dGluZ3Mub0ZlYXR1cmVzLmJTb3J0Q2xhc3NlcyApCgkJCXsKCQkJCS8qIEVuYWJsZSBzb3J0IGNsYXNzZXMgZm9yIHNlcnZlci1zaWRlIHByb2Nlc3NpbmcuIFNhZmUgdG8gZG8gaXQgaGVyZSwgc2luY2Ugc2VydmVyLXNpZGUKCQkJCSAqIHByb2Nlc3NpbmcgbXVzdCBiZSBlbmFibGVkIGJ5IHRoZSBkZXZlbG9wZXIKCQkJCSAqLwoJCQkJX2ZuQ2FsbGJhY2tSZWcoIG9TZXR0aW5ncywgJ2FvRHJhd0NhbGxiYWNrJywgX2ZuU29ydGluZ0NsYXNzZXMsICdzZXJ2ZXJfc2lkZV9zb3J0X2NsYXNzZXMnICk7CgkJCX0KCQkJZWxzZSBpZiAoIG9TZXR0aW5ncy5vRmVhdHVyZXMuYkRlZmVyUmVuZGVyICkKCQkJewoJCQkJX2ZuQ2FsbGJhY2tSZWcoIG9TZXR0aW5ncywgJ2FvRHJhd0NhbGxiYWNrJywgX2ZuU29ydGluZ0NsYXNzZXMsICdkZWZlcl9zb3J0X2NsYXNzZXMnICk7CgkJCX0KCQkJCgkJCWlmICggb0luaXQuYkpRdWVyeVVJICkKCQkJewoJCQkJLyogVXNlIHRoZSBKVUkgY2xhc3NlcyBvYmplY3QgZm9yIGRpc3BsYXkuIFlvdSBjb3VsZCBjbG9uZSB0aGUgb1N0ZENsYXNzZXMgb2JqZWN0IGlmIAoJCQkJICogeW91IHdhbnQgdG8gaGF2ZSBtdWx0aXBsZSB0YWJsZXMgd2l0aCBtdWx0aXBsZSBpbmRlcGVuZGVudCBjbGFzc2VzIAoJCQkJICovCgkJCQkkLmV4dGVuZCggb1NldHRpbmdzLm9DbGFzc2VzLCBEYXRhVGFibGUuZXh0Lm9KVUlDbGFzc2VzICk7CgkJCQkKCQkJCWlmICggb0luaXQuc0RvbSA9PT0gRGF0YVRhYmxlLmRlZmF1bHRzLnNEb20gJiYgRGF0YVRhYmxlLmRlZmF1bHRzLnNEb20gPT09ICJsZnJ0aXAiICkKCQkJCXsKCQkJCQkvKiBTZXQgdGhlIERPTSB0byB1c2UgYSBsYXlvdXQgc3VpdGFibGUgZm9yIGpRdWVyeSBVSSdzIHRoZW1pbmcgKi8KCQkJCQlvU2V0dGluZ3Muc0RvbSA9ICc8IkgibGZyPnQ8IkYiaXA+JzsKCQkJCX0KCQkJfQoJCQllbHNlCgkJCXsKCQkJCSQuZXh0ZW5kKCBvU2V0dGluZ3Mub0NsYXNzZXMsIERhdGFUYWJsZS5leHQub1N0ZENsYXNzZXMgKTsKCQkJfQoJCQkkKHRoaXMpLmFkZENsYXNzKCBvU2V0dGluZ3Mub0NsYXNzZXMuc1RhYmxlICk7CgkJCQoJCQkvKiBDYWxjdWxhdGUgdGhlIHNjcm9sbCBiYXIgd2lkdGggYW5kIGNhY2hlIGl0IGZvciB1c2UgbGF0ZXIgb24gKi8KCQkJaWYgKCBvU2V0dGluZ3Mub1Njcm9sbC5zWCAhPT0gIiIgfHwgb1NldHRpbmdzLm9TY3JvbGwuc1kgIT09ICIiICkKCQkJewoJCQkJb1NldHRpbmdzLm9TY3JvbGwuaUJhcldpZHRoID0gX2ZuU2Nyb2xsQmFyV2lkdGgoKTsKCQkJfQoJCQkKCQkJaWYgKCBvU2V0dGluZ3MuaUluaXREaXNwbGF5U3RhcnQgPT09IHVuZGVmaW5lZCApCgkJCXsKCQkJCS8qIERpc3BsYXkgc3RhcnQgcG9pbnQsIHRha2luZyBpbnRvIGFjY291bnQgdGhlIHNhdmUgc2F2aW5nICovCgkJCQlvU2V0dGluZ3MuaUluaXREaXNwbGF5U3RhcnQgPSBvSW5pdC5pRGlzcGxheVN0YXJ0OwoJCQkJb1NldHRpbmdzLl9pRGlzcGxheVN0YXJ0ID0gb0luaXQuaURpc3BsYXlTdGFydDsKCQkJfQoJCQkKCQkJLyogTXVzdCBiZSBkb25lIGFmdGVyIGV2ZXJ5dGhpbmcgd2hpY2ggY2FuIGJlIG92ZXJyaWRkZW4gYnkgYSBjb29raWUhICovCgkJCWlmICggb0luaXQuYlN0YXRlU2F2ZSApCgkJCXsKCQkJCW9TZXR0aW5ncy5vRmVhdHVyZXMuYlN0YXRlU2F2ZSA9IHRydWU7CgkJCQlfZm5Mb2FkU3RhdGUoIG9TZXR0aW5ncywgb0luaXQgKTsKCQkJCV9mbkNhbGxiYWNrUmVnKCBvU2V0dGluZ3MsICdhb0RyYXdDYWxsYmFjaycsIF9mblNhdmVTdGF0ZSwgJ3N0YXRlX3NhdmUnICk7CgkJCX0KCQkJCgkJCWlmICggb0luaXQuaURlZmVyTG9hZGluZyAhPT0gbnVsbCApCgkJCXsKCQkJCW9TZXR0aW5ncy5iRGVmZXJMb2FkaW5nID0gdHJ1ZTsKCQkJCXZhciB0bXAgPSAkLmlzQXJyYXkoIG9Jbml0LmlEZWZlckxvYWRpbmcgKTsKCQkJCW9TZXR0aW5ncy5faVJlY29yZHNEaXNwbGF5ID0gdG1wID8gb0luaXQuaURlZmVyTG9hZGluZ1swXSA6IG9Jbml0LmlEZWZlckxvYWRpbmc7CgkJCQlvU2V0dGluZ3MuX2lSZWNvcmRzVG90YWwgPSB0bXAgPyBvSW5pdC5pRGVmZXJMb2FkaW5nWzFdIDogb0luaXQuaURlZmVyTG9hZGluZzsKCQkJfQoJCQkKCQkJaWYgKCBvSW5pdC5hYURhdGEgIT09IG51bGwgKQoJCQl7CgkJCQliVXNlUGFzc2VkRGF0YSA9IHRydWU7CgkJCX0KCQkJCgkJCS8qIExhbmd1YWdlIGRlZmluaXRpb25zICovCgkJCWlmICggb0luaXQub0xhbmd1YWdlLnNVcmwgIT09ICIiICkKCQkJewoJCQkJLyogR2V0IHRoZSBsYW5ndWFnZSBkZWZpbml0aW9ucyBmcm9tIGEgZmlsZSAtIGJlY2F1c2UgdGhpcyBBamF4IGNhbGwgbWFrZXMgdGhlIGxhbmd1YWdlCgkJCQkgKiBnZXQgYXN5bmMgdG8gdGhlIHJlbWFpbmRlciBvZiB0aGlzIGZ1bmN0aW9uIHdlIHVzZSBiSW5pdEhhbmRlZE9mZiB0byBpbmRpY2F0ZSB0aGF0IAoJCQkJICogX2ZuSW5pdGlhbGlzZSB3aWxsIGJlIGZpcmVkIGJ5IHRoZSByZXR1cm5lZCBBamF4IGhhbmRsZXIsIHJhdGhlciB0aGFuIHRoZSBjb25zdHJ1Y3RvcgoJCQkJICovCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLnNVcmwgPSBvSW5pdC5vTGFuZ3VhZ2Uuc1VybDsKCQkJCSQuZ2V0SlNPTiggb1NldHRpbmdzLm9MYW5ndWFnZS5zVXJsLCBudWxsLCBmdW5jdGlvbigganNvbiApIHsKCQkJCQlfZm5MYW5ndWFnZUNvbXBhdCgganNvbiApOwoJCQkJCSQuZXh0ZW5kKCB0cnVlLCBvU2V0dGluZ3Mub0xhbmd1YWdlLCBvSW5pdC5vTGFuZ3VhZ2UsIGpzb24gKTsKCQkJCQlfZm5Jbml0aWFsaXNlKCBvU2V0dGluZ3MgKTsKCQkJCX0gKTsKCQkJCWJJbml0SGFuZGVkT2ZmID0gdHJ1ZTsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCSQuZXh0ZW5kKCB0cnVlLCBvU2V0dGluZ3Mub0xhbmd1YWdlLCBvSW5pdC5vTGFuZ3VhZ2UgKTsKCQkJfQoJCQkKCQkJCgkJCS8qCgkJCSAqIFN0cmlwZXMKCQkJICovCgkJCWlmICggb0luaXQuYXNTdHJpcGVDbGFzc2VzID09PSBudWxsICkKCQkJewoJCQkJb1NldHRpbmdzLmFzU3RyaXBlQ2xhc3NlcyA9WwoJCQkJCW9TZXR0aW5ncy5vQ2xhc3Nlcy5zU3RyaXBlT2RkLAoJCQkJCW9TZXR0aW5ncy5vQ2xhc3Nlcy5zU3RyaXBlRXZlbgoJCQkJXTsKCQkJfQoJCQkKCQkJLyogUmVtb3ZlIHJvdyBzdHJpcGUgY2xhc3NlcyBpZiB0aGV5IGFyZSBhbHJlYWR5IG9uIHRoZSB0YWJsZSByb3cgKi8KCQkJdmFyIGJTdHJpcGVSZW1vdmUgPSBmYWxzZTsKCQkJdmFyIGFuUm93cyA9ICQodGhpcykuY2hpbGRyZW4oJ3Rib2R5JykuY2hpbGRyZW4oJ3RyJyk7CgkJCWZvciAoIGk9MCwgaUxlbj1vU2V0dGluZ3MuYXNTdHJpcGVDbGFzc2VzLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJCXsKCQkJCWlmICggYW5Sb3dzLmZpbHRlcigiOmx0KDIpIikuaGFzQ2xhc3MoIG9TZXR0aW5ncy5hc1N0cmlwZUNsYXNzZXNbaV0pICkKCQkJCXsKCQkJCQliU3RyaXBlUmVtb3ZlID0gdHJ1ZTsKCQkJCQlicmVhazsKCQkJCX0KCQkJfQoJCQkJCQoJCQlpZiAoIGJTdHJpcGVSZW1vdmUgKQoJCQl7CgkJCQkvKiBTdG9yZSB0aGUgY2xhc3NlcyB3aGljaCB3ZSBhcmUgYWJvdXQgdG8gcmVtb3ZlIHNvIHRoZXkgY2FuIGJlIHJlLWFkZGVkIG9uIGRlc3Ryb3kgKi8KCQkJCW9TZXR0aW5ncy5hc0Rlc3Ryb3lTdHJpcGVzID0gWyAnJywgJycgXTsKCQkJCWlmICggJChhblJvd3NbMF0pLmhhc0NsYXNzKG9TZXR0aW5ncy5vQ2xhc3Nlcy5zU3RyaXBlT2RkKSApCgkJCQl7CgkJCQkJb1NldHRpbmdzLmFzRGVzdHJveVN0cmlwZXNbMF0gKz0gb1NldHRpbmdzLm9DbGFzc2VzLnNTdHJpcGVPZGQrIiAiOwoJCQkJfQoJCQkJaWYgKCAkKGFuUm93c1swXSkuaGFzQ2xhc3Mob1NldHRpbmdzLm9DbGFzc2VzLnNTdHJpcGVFdmVuKSApCgkJCQl7CgkJCQkJb1NldHRpbmdzLmFzRGVzdHJveVN0cmlwZXNbMF0gKz0gb1NldHRpbmdzLm9DbGFzc2VzLnNTdHJpcGVFdmVuOwoJCQkJfQoJCQkJaWYgKCAkKGFuUm93c1sxXSkuaGFzQ2xhc3Mob1NldHRpbmdzLm9DbGFzc2VzLnNTdHJpcGVPZGQpICkKCQkJCXsKCQkJCQlvU2V0dGluZ3MuYXNEZXN0cm95U3RyaXBlc1sxXSArPSBvU2V0dGluZ3Mub0NsYXNzZXMuc1N0cmlwZU9kZCsiICI7CgkJCQl9CgkJCQlpZiAoICQoYW5Sb3dzWzFdKS5oYXNDbGFzcyhvU2V0dGluZ3Mub0NsYXNzZXMuc1N0cmlwZUV2ZW4pICkKCQkJCXsKCQkJCQlvU2V0dGluZ3MuYXNEZXN0cm95U3RyaXBlc1sxXSArPSBvU2V0dGluZ3Mub0NsYXNzZXMuc1N0cmlwZUV2ZW47CgkJCQl9CgkJCQkKCQkJCWFuUm93cy5yZW1vdmVDbGFzcyggb1NldHRpbmdzLmFzU3RyaXBlQ2xhc3Nlcy5qb2luKCcgJykgKTsKCQkJfQoJCQkKCQkJCgkJCS8qCgkJCSAqIENvbHVtbnMKCQkJICogU2VlIGlmIHdlIHNob3VsZCBsb2FkIGNvbHVtbnMgYXV0b21hdGljYWxseSBvciB1c2UgZGVmaW5lZCBvbmVzCgkJCSAqLwoJCQl2YXIgYW5UaHMgPSBbXTsKCQkJdmFyIGFvQ29sdW1uc0luaXQ7CgkJCXZhciBuVGhlYWQgPSB0aGlzLmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0aGVhZCcpOwoJCQlpZiAoIG5UaGVhZC5sZW5ndGggIT09IDAgKQoJCQl7CgkJCQlfZm5EZXRlY3RIZWFkZXIoIG9TZXR0aW5ncy5hb0hlYWRlciwgblRoZWFkWzBdICk7CgkJCQlhblRocyA9IF9mbkdldFVuaXF1ZVRocyggb1NldHRpbmdzICk7CgkJCX0KCQkJCgkJCS8qIElmIG5vdCBnaXZlbiBhIGNvbHVtbiBhcnJheSwgZ2VuZXJhdGUgb25lIHdpdGggbnVsbHMgKi8KCQkJaWYgKCBvSW5pdC5hb0NvbHVtbnMgPT09IG51bGwgKQoJCQl7CgkJCQlhb0NvbHVtbnNJbml0ID0gW107CgkJCQlmb3IgKCBpPTAsIGlMZW49YW5UaHMubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQkJCXsKCQkJCQlhb0NvbHVtbnNJbml0LnB1c2goIG51bGwgKTsKCQkJCX0KCQkJfQoJCQllbHNlCgkJCXsKCQkJCWFvQ29sdW1uc0luaXQgPSBvSW5pdC5hb0NvbHVtbnM7CgkJCX0KCQkJCgkJCS8qIEFkZCB0aGUgY29sdW1ucyAqLwoJCQlmb3IgKCBpPTAsIGlMZW49YW9Db2x1bW5zSW5pdC5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCQl7CgkJCQkvKiBTaG9ydCBjdXQgLSB1c2UgdGhlIGxvb3AgdG8gY2hlY2sgaWYgd2UgaGF2ZSBjb2x1bW4gdmlzaWJpbGl0eSBzdGF0ZSB0byByZXN0b3JlICovCgkJCQlpZiAoIG9Jbml0LnNhdmVkX2FvQ29sdW1ucyAhPT0gdW5kZWZpbmVkICYmIG9Jbml0LnNhdmVkX2FvQ29sdW1ucy5sZW5ndGggPT0gaUxlbiApCgkJCQl7CgkJCQkJaWYgKCBhb0NvbHVtbnNJbml0W2ldID09PSBudWxsICkKCQkJCQl7CgkJCQkJCWFvQ29sdW1uc0luaXRbaV0gPSB7fTsKCQkJCQl9CgkJCQkJYW9Db2x1bW5zSW5pdFtpXS5iVmlzaWJsZSA9IG9Jbml0LnNhdmVkX2FvQ29sdW1uc1tpXS5iVmlzaWJsZTsKCQkJCX0KCQkJCQoJCQkJX2ZuQWRkQ29sdW1uKCBvU2V0dGluZ3MsIGFuVGhzID8gYW5UaHNbaV0gOiBudWxsICk7CgkJCX0KCQkJCgkJCS8qIEFwcGx5IHRoZSBjb2x1bW4gZGVmaW5pdGlvbnMgKi8KCQkJX2ZuQXBwbHlDb2x1bW5EZWZzKCBvU2V0dGluZ3MsIG9Jbml0LmFvQ29sdW1uRGVmcywgYW9Db2x1bW5zSW5pdCwgZnVuY3Rpb24gKGlDb2wsIG9EZWYpIHsKCQkJCV9mbkNvbHVtbk9wdGlvbnMoIG9TZXR0aW5ncywgaUNvbCwgb0RlZiApOwoJCQl9ICk7CgkJCQoJCQkKCQkJLyoKCQkJICogU29ydGluZwoJCQkgKiBDaGVjayB0aGUgYWFTb3J0aW5nIGFycmF5CgkJCSAqLwoJCQlmb3IgKCBpPTAsIGlMZW49b1NldHRpbmdzLmFhU29ydGluZy5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCQl7CgkJCQlpZiAoIG9TZXR0aW5ncy5hYVNvcnRpbmdbaV1bMF0gPj0gb1NldHRpbmdzLmFvQ29sdW1ucy5sZW5ndGggKQoJCQkJewoJCQkJCW9TZXR0aW5ncy5hYVNvcnRpbmdbaV1bMF0gPSAwOwoJCQkJfQoJCQkJdmFyIG9Db2x1bW4gPSBvU2V0dGluZ3MuYW9Db2x1bW5zWyBvU2V0dGluZ3MuYWFTb3J0aW5nW2ldWzBdIF07CgkJCQkKCQkJCS8qIEFkZCBhIGRlZmF1bHQgc29ydGluZyBpbmRleCAqLwoJCQkJaWYgKCBvU2V0dGluZ3MuYWFTb3J0aW5nW2ldWzJdID09PSB1bmRlZmluZWQgKQoJCQkJewoJCQkJCW9TZXR0aW5ncy5hYVNvcnRpbmdbaV1bMl0gPSAwOwoJCQkJfQoJCQkJCgkJCQkvKiBJZiBhYVNvcnRpbmcgaXMgbm90IGRlZmluZWQsIHRoZW4gd2UgdXNlIHRoZSBmaXJzdCBpbmRpY2F0b3IgaW4gYXNTb3J0aW5nICovCgkJCQlpZiAoIG9Jbml0LmFhU29ydGluZyA9PT0gdW5kZWZpbmVkICYmIG9TZXR0aW5ncy5zYXZlZF9hYVNvcnRpbmcgPT09IHVuZGVmaW5lZCApCgkJCQl7CgkJCQkJb1NldHRpbmdzLmFhU29ydGluZ1tpXVsxXSA9IG9Db2x1bW4uYXNTb3J0aW5nWzBdOwoJCQkJfQoJCQkJCgkJCQkvKiBTZXQgdGhlIGN1cnJlbnQgc29ydGluZyBpbmRleCBiYXNlZCBvbiBhb0NvbHVtbnMuYXNTb3J0aW5nICovCgkJCQlmb3IgKCBqPTAsIGpMZW49b0NvbHVtbi5hc1NvcnRpbmcubGVuZ3RoIDsgajxqTGVuIDsgaisrICkKCQkJCXsKCQkJCQlpZiAoIG9TZXR0aW5ncy5hYVNvcnRpbmdbaV1bMV0gPT0gb0NvbHVtbi5hc1NvcnRpbmdbal0gKQoJCQkJCXsKCQkJCQkJb1NldHRpbmdzLmFhU29ydGluZ1tpXVsyXSA9IGo7CgkJCQkJCWJyZWFrOwoJCQkJCX0KCQkJCX0KCQkJfQoJCQkJCgkJCS8qIERvIGEgZmlyc3QgcGFzcyBvbiB0aGUgc29ydGluZyBjbGFzc2VzIChhbGxvd3MgYW55IHNpemUgY2hhbmdlcyB0byBiZSB0YWtlbiBpbnRvCgkJCSAqIGFjY291bnQsIGFuZCBhbHNvIHdpbGwgYXBwbHkgc29ydGluZyBkaXNhYmxlZCBjbGFzc2VzIGlmIGRpc2FibGVkCgkJCSAqLwoJCQlfZm5Tb3J0aW5nQ2xhc3Nlcyggb1NldHRpbmdzICk7CgkJCQoJCQkKCQkJLyoKCQkJICogRmluYWwgaW5pdAoJCQkgKiBDYWNoZSB0aGUgaGVhZGVyLCBib2R5IGFuZCBmb290ZXIgYXMgcmVxdWlyZWQsIGNyZWF0aW5nIHRoZW0gaWYgbmVlZGVkCgkJCSAqLwoJCQkKCQkJLyogQnJvd3NlciBzdXBwb3J0IGRldGVjdGlvbiAqLwoJCQlfZm5Ccm93c2VyRGV0ZWN0KCBvU2V0dGluZ3MgKTsKCQkJCgkJCS8vIFdvcmsgYXJvdW5kIGZvciBXZWJraXQgYnVnIDgzODY3IC0gc3RvcmUgdGhlIGNhcHRpb24tc2lkZSBiZWZvcmUgcmVtb3ZpbmcgZnJvbSBkb2MKCQkJdmFyIGNhcHRpb25zID0gJCh0aGlzKS5jaGlsZHJlbignY2FwdGlvbicpLmVhY2goIGZ1bmN0aW9uICgpIHsKCQkJCXRoaXMuX2NhcHRpb25TaWRlID0gJCh0aGlzKS5jc3MoJ2NhcHRpb24tc2lkZScpOwoJCQl9ICk7CgkJCQoJCQl2YXIgdGhlYWQgPSAkKHRoaXMpLmNoaWxkcmVuKCd0aGVhZCcpOwoJCQlpZiAoIHRoZWFkLmxlbmd0aCA9PT0gMCApCgkJCXsKCQkJCXRoZWFkID0gWyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCAndGhlYWQnICkgXTsKCQkJCXRoaXMuYXBwZW5kQ2hpbGQoIHRoZWFkWzBdICk7CgkJCX0KCQkJb1NldHRpbmdzLm5USGVhZCA9IHRoZWFkWzBdOwoJCQkKCQkJdmFyIHRib2R5ID0gJCh0aGlzKS5jaGlsZHJlbigndGJvZHknKTsKCQkJaWYgKCB0Ym9keS5sZW5ndGggPT09IDAgKQoJCQl7CgkJCQl0Ym9keSA9IFsgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggJ3Rib2R5JyApIF07CgkJCQl0aGlzLmFwcGVuZENoaWxkKCB0Ym9keVswXSApOwoJCQl9CgkJCW9TZXR0aW5ncy5uVEJvZHkgPSB0Ym9keVswXTsKCQkJb1NldHRpbmdzLm5UQm9keS5zZXRBdHRyaWJ1dGUoICJyb2xlIiwgImFsZXJ0IiApOwoJCQlvU2V0dGluZ3MublRCb2R5LnNldEF0dHJpYnV0ZSggImFyaWEtbGl2ZSIsICJwb2xpdGUiICk7CgkJCW9TZXR0aW5ncy5uVEJvZHkuc2V0QXR0cmlidXRlKCAiYXJpYS1yZWxldmFudCIsICJhbGwiICk7CgkJCQoJCQl2YXIgdGZvb3QgPSAkKHRoaXMpLmNoaWxkcmVuKCd0Zm9vdCcpOwoJCQlpZiAoIHRmb290Lmxlbmd0aCA9PT0gMCAmJiBjYXB0aW9ucy5sZW5ndGggPiAwICYmIChvU2V0dGluZ3Mub1Njcm9sbC5zWCAhPT0gIiIgfHwgb1NldHRpbmdzLm9TY3JvbGwuc1kgIT09ICIiKSApCgkJCXsKCQkJCS8vIElmIHdlIGFyZSBhIHNjcm9sbGluZyB0YWJsZSwgYW5kIG5vIGZvb3RlciBoYXMgYmVlbiBnaXZlbiwgdGhlbiB3ZSBuZWVkIHRvIGNyZWF0ZQoJCQkJLy8gYSB0Zm9vdCBlbGVtZW50IGZvciB0aGUgY2FwdGlvbiBlbGVtZW50IHRvIGJlIGFwcGVuZGVkIHRvCgkJCQl0Zm9vdCA9IFsgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggJ3Rmb290JyApIF07CgkJCQl0aGlzLmFwcGVuZENoaWxkKCB0Zm9vdFswXSApOwoJCQl9CgkJCQoJCQlpZiAoIHRmb290Lmxlbmd0aCA+IDAgKQoJCQl7CgkJCQlvU2V0dGluZ3MublRGb290ID0gdGZvb3RbMF07CgkJCQlfZm5EZXRlY3RIZWFkZXIoIG9TZXR0aW5ncy5hb0Zvb3Rlciwgb1NldHRpbmdzLm5URm9vdCApOwoJCQl9CgkJCQoJCQkvKiBDaGVjayBpZiB0aGVyZSBpcyBkYXRhIHBhc3NpbmcgaW50byB0aGUgY29uc3RydWN0b3IgKi8KCQkJaWYgKCBiVXNlUGFzc2VkRGF0YSApCgkJCXsKCQkJCWZvciAoIGk9MCA7IGk8b0luaXQuYWFEYXRhLmxlbmd0aCA7IGkrKyApCgkJCQl7CgkJCQkJX2ZuQWRkRGF0YSggb1NldHRpbmdzLCBvSW5pdC5hYURhdGFbIGkgXSApOwoJCQkJfQoJCQl9CgkJCWVsc2UKCQkJewoJCQkJLyogR3JhYiB0aGUgZGF0YSBmcm9tIHRoZSBwYWdlICovCgkJCQlfZm5HYXRoZXJEYXRhKCBvU2V0dGluZ3MgKTsKCQkJfQoJCQkKCQkJLyogQ29weSB0aGUgZGF0YSBpbmRleCBhcnJheSAqLwoJCQlvU2V0dGluZ3MuYWlEaXNwbGF5ID0gb1NldHRpbmdzLmFpRGlzcGxheU1hc3Rlci5zbGljZSgpOwoJCQkKCQkJLyogSW5pdGlhbGlzYXRpb24gY29tcGxldGUgLSB0YWJsZSBjYW4gYmUgZHJhd24gKi8KCQkJb1NldHRpbmdzLmJJbml0aWFsaXNlZCA9IHRydWU7CgkJCQoJCQkvKiBDaGVjayBpZiB3ZSBuZWVkIHRvIGluaXRpYWxpc2UgdGhlIHRhYmxlIChpdCBtaWdodCBub3QgaGF2ZSBiZWVuIGhhbmRlZCBvZmYgdG8gdGhlCgkJCSAqIGxhbmd1YWdlIHByb2Nlc3NvcikKCQkJICovCgkJCWlmICggYkluaXRIYW5kZWRPZmYgPT09IGZhbHNlICkKCQkJewoJCQkJX2ZuSW5pdGlhbGlzZSggb1NldHRpbmdzICk7CgkJCX0KCQl9ICk7Cgl9OwoKCQoJCgkvKioKCSAqIFByb3ZpZGUgYSBjb21tb24gbWV0aG9kIGZvciBwbHVnLWlucyB0byBjaGVjayB0aGUgdmVyc2lvbiBvZiBEYXRhVGFibGVzIGJlaW5nIHVzZWQsIGluIG9yZGVyCgkgKiB0byBlbnN1cmUgY29tcGF0aWJpbGl0eS4KCSAqICBAcGFyYW0ge3N0cmluZ30gc1ZlcnNpb24gVmVyc2lvbiBzdHJpbmcgdG8gY2hlY2sgZm9yLCBpbiB0aGUgZm9ybWF0ICJYLlkuWiIuIE5vdGUgdGhhdCB0aGUKCSAqICAgIGZvcm1hdHMgIlgiIGFuZCAiWC5ZIiBhcmUgYWxzbyBhY2NlcHRhYmxlLgoJICogIEByZXR1cm5zIHtib29sZWFufSB0cnVlIGlmIHRoaXMgdmVyc2lvbiBvZiBEYXRhVGFibGVzIGlzIGdyZWF0ZXIgb3IgZXF1YWwgdG8gdGhlIHJlcXVpcmVkCgkgKiAgICB2ZXJzaW9uLCBvciBmYWxzZSBpZiB0aGlzIHZlcnNpb24gb2YgRGF0YVRhbGVzIGlzIG5vdCBzdWl0YWJsZQoJICogIEBzdGF0aWMKCSAqICBAZHRvcHQgQVBJLVN0YXRpYwoJICoKCSAqICBAZXhhbXBsZQoJICogICAgYWxlcnQoICQuZm4uZGF0YVRhYmxlLmZuVmVyc2lvbkNoZWNrKCAnMS45LjAnICkgKTsKCSAqLwoJRGF0YVRhYmxlLmZuVmVyc2lvbkNoZWNrID0gZnVuY3Rpb24oIHNWZXJzaW9uICkKCXsKCQkvKiBUaGlzIGlzIGNoZWFwLCBidXQgZWZmZWN0aXZlICovCgkJdmFyIGZuWlBhZCA9IGZ1bmN0aW9uIChacGFkLCBjb3VudCkKCQl7CgkJCXdoaWxlKFpwYWQubGVuZ3RoIDwgY291bnQpIHsKCQkJCVpwYWQgKz0gJzAnOwoJCQl9CgkJCXJldHVybiBacGFkOwoJCX07CgkJdmFyIGFUaGlzID0gRGF0YVRhYmxlLmV4dC5zVmVyc2lvbi5zcGxpdCgnLicpOwoJCXZhciBhVGhhdCA9IHNWZXJzaW9uLnNwbGl0KCcuJyk7CgkJdmFyIHNUaGlzID0gJycsIHNUaGF0ID0gJyc7CgkJCgkJZm9yICggdmFyIGk9MCwgaUxlbj1hVGhhdC5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCXsKCQkJc1RoaXMgKz0gZm5aUGFkKCBhVGhpc1tpXSwgMyApOwoJCQlzVGhhdCArPSBmblpQYWQoIGFUaGF0W2ldLCAzICk7CgkJfQoJCQoJCXJldHVybiBwYXJzZUludChzVGhpcywgMTApID49IHBhcnNlSW50KHNUaGF0LCAxMCk7Cgl9OwoJCgkKCS8qKgoJICogQ2hlY2sgaWYgYSBUQUJMRSBub2RlIGlzIGEgRGF0YVRhYmxlIHRhYmxlIGFscmVhZHkgb3Igbm90LgoJICogIEBwYXJhbSB7bm9kZX0gblRhYmxlIFRoZSBUQUJMRSBub2RlIHRvIGNoZWNrIGlmIGl0IGlzIGEgRGF0YVRhYmxlIG9yIG5vdCAobm90ZSB0aGF0IG90aGVyCgkgKiAgICBub2RlIHR5cGVzIGNhbiBiZSBwYXNzZWQgaW4sIGJ1dCB3aWxsIGFsd2F5cyByZXR1cm4gZmFsc2UpLgoJICogIEByZXR1cm5zIHtib29sZWFufSB0cnVlIHRoZSB0YWJsZSBnaXZlbiBpcyBhIERhdGFUYWJsZSwgb3IgZmFsc2Ugb3RoZXJ3aXNlCgkgKiAgQHN0YXRpYwoJICogIEBkdG9wdCBBUEktU3RhdGljCgkgKgoJICogIEBleGFtcGxlCgkgKiAgICB2YXIgZXggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZScpOwoJICogICAgaWYgKCAhICQuZm4uRGF0YVRhYmxlLmZuSXNEYXRhVGFibGUoIGV4ICkgKSB7CgkgKiAgICAgICQoZXgpLmRhdGFUYWJsZSgpOwoJICogICAgfQoJICovCglEYXRhVGFibGUuZm5Jc0RhdGFUYWJsZSA9IGZ1bmN0aW9uICggblRhYmxlICkKCXsKCQl2YXIgbyA9IERhdGFUYWJsZS5zZXR0aW5nczsKCQoJCWZvciAoIHZhciBpPTAgOyBpPG8ubGVuZ3RoIDsgaSsrICkKCQl7CgkJCWlmICggb1tpXS5uVGFibGUgPT09IG5UYWJsZSB8fCBvW2ldLm5TY3JvbGxIZWFkID09PSBuVGFibGUgfHwgb1tpXS5uU2Nyb2xsRm9vdCA9PT0gblRhYmxlICkKCQkJewoJCQkJcmV0dXJuIHRydWU7CgkJCX0KCQl9CgkKCQlyZXR1cm4gZmFsc2U7Cgl9OwoJCgkKCS8qKgoJICogR2V0IGFsbCBEYXRhVGFibGUgdGFibGVzIHRoYXQgaGF2ZSBiZWVuIGluaXRpYWxpc2VkIC0gb3B0aW9uYWxseSB5b3UgY2FuIHNlbGVjdCB0bwoJICogZ2V0IG9ubHkgY3VycmVudGx5IHZpc2libGUgdGFibGVzLgoJICogIEBwYXJhbSB7Ym9vbGVhbn0gW2JWaXNpYmxlPWZhbHNlXSBGbGFnIHRvIGluZGljYXRlIGlmIHlvdSB3YW50IGFsbCAoZGVmYXVsdCkgb3IgCgkgKiAgICB2aXNpYmxlIHRhYmxlcyBvbmx5LgoJICogIEByZXR1cm5zIHthcnJheX0gQXJyYXkgb2YgVEFCTEUgbm9kZXMgKG5vdCBEYXRhVGFibGUgaW5zdGFuY2VzKSB3aGljaCBhcmUgRGF0YVRhYmxlcwoJICogIEBzdGF0aWMKCSAqICBAZHRvcHQgQVBJLVN0YXRpYwoJICoKCSAqICBAZXhhbXBsZQoJICogICAgdmFyIHRhYmxlID0gJC5mbi5kYXRhVGFibGUuZm5UYWJsZXModHJ1ZSk7CgkgKiAgICBpZiAoIHRhYmxlLmxlbmd0aCA+IDAgKSB7CgkgKiAgICAgICQodGFibGUpLmRhdGFUYWJsZSgpLmZuQWRqdXN0Q29sdW1uU2l6aW5nKCk7CgkgKiAgICB9CgkgKi8KCURhdGFUYWJsZS5mblRhYmxlcyA9IGZ1bmN0aW9uICggYlZpc2libGUgKQoJewoJCXZhciBvdXQgPSBbXTsKCQoJCWpRdWVyeS5lYWNoKCBEYXRhVGFibGUuc2V0dGluZ3MsIGZ1bmN0aW9uIChpLCBvKSB7CgkJCWlmICggIWJWaXNpYmxlIHx8IChiVmlzaWJsZSA9PT0gdHJ1ZSAmJiAkKG8ublRhYmxlKS5pcygnOnZpc2libGUnKSkgKQoJCQl7CgkJCQlvdXQucHVzaCggby5uVGFibGUgKTsKCQkJfQoJCX0gKTsKCQoJCXJldHVybiBvdXQ7Cgl9OwoJCgoJLyoqCgkgKiBWZXJzaW9uIHN0cmluZyBmb3IgcGx1Zy1pbnMgdG8gY2hlY2sgY29tcGF0aWJpbGl0eS4gQWxsb3dlZCBmb3JtYXQgaXMKCSAqIGEuYi5jLmQuZSB3aGVyZTogYTppbnQsIGI6aW50LCBjOmludCwgZDpzdHJpbmcoZGV2fGJldGEpLCBlOmludC4gZCBhbmQKCSAqIGUgYXJlIG9wdGlvbmFsCgkgKiAgQG1lbWJlcgoJICogIEB0eXBlIHN0cmluZwoJICogIEBkZWZhdWx0IFZlcnNpb24gbnVtYmVyCgkgKi8KCURhdGFUYWJsZS52ZXJzaW9uID0gIjEuOS4zIjsKCgkvKioKCSAqIFByaXZhdGUgZGF0YSBzdG9yZSwgY29udGFpbmluZyBhbGwgb2YgdGhlIHNldHRpbmdzIG9iamVjdHMgdGhhdCBhcmUgY3JlYXRlZCBmb3IgdGhlCgkgKiB0YWJsZXMgb24gYSBnaXZlbiBwYWdlLgoJICogCgkgKiBOb3RlIHRoYXQgdGhlIDxpPkRhdGFUYWJsZS5zZXR0aW5nczwvaT4gb2JqZWN0IGlzIGFsaWFzZWQgdG8gPGk+alF1ZXJ5LmZuLmRhdGFUYWJsZUV4dDwvaT4gCgkgKiB0aHJvdWdoIHdoaWNoIGl0IG1heSBiZSBhY2Nlc3NlZCBhbmQgbWFuaXB1bGF0ZWQsIG9yIDxpPmpRdWVyeS5mbi5kYXRhVGFibGUuc2V0dGluZ3M8L2k+LgoJICogIEBtZW1iZXIKCSAqICBAdHlwZSBhcnJheQoJICogIEBkZWZhdWx0IFtdCgkgKiAgQHByaXZhdGUKCSAqLwoJRGF0YVRhYmxlLnNldHRpbmdzID0gW107CgoJLyoqCgkgKiBPYmplY3QgbW9kZWxzIGNvbnRhaW5lciwgZm9yIHRoZSB2YXJpb3VzIG1vZGVscyB0aGF0IERhdGFUYWJsZXMgaGFzIGF2YWlsYWJsZQoJICogdG8gaXQuIFRoZXNlIG1vZGVscyBkZWZpbmUgdGhlIG9iamVjdHMgdGhhdCBhcmUgdXNlZCB0byBob2xkIHRoZSBhY3RpdmUgc3RhdGUgCgkgKiBhbmQgY29uZmlndXJhdGlvbiBvZiB0aGUgdGFibGUuCgkgKiAgQG5hbWVzcGFjZQoJICovCglEYXRhVGFibGUubW9kZWxzID0ge307CgkKCQoJLyoqCgkgKiBEYXRhVGFibGVzIGV4dGVuc2lvbiBvcHRpb25zIGFuZCBwbHVnLWlucy4gVGhpcyBuYW1lc3BhY2UgYWN0cyBhcyBhIGNvbGxlY3Rpb24gImFyZWEiCgkgKiBmb3IgcGx1Zy1pbnMgdGhhdCBjYW4gYmUgdXNlZCB0byBleHRlbmQgdGhlIGRlZmF1bHQgRGF0YVRhYmxlcyBiZWhhdmlvdXIgLSBpbmRlZWQgbWFueQoJICogb2YgdGhlIGJ1aWxkIGluIG1ldGhvZHMgdXNlIHRoaXMgbWV0aG9kIHRvIHByb3ZpZGUgdGhlaXIgb3duIGNhcGFiaWxpdGllcyAoc29ydGluZyBtZXRob2RzCgkgKiBmb3IgZXhhbXBsZSkuCgkgKiAKCSAqIE5vdGUgdGhhdCB0aGlzIG5hbWVzcGFjZSBpcyBhbGlhc2VkIHRvIGpRdWVyeS5mbi5kYXRhVGFibGVFeHQgc28gaXQgY2FuIGJlIHJlYWRpbHkgYWNjZXNzZWQKCSAqIGFuZCBtb2RpZmllZCBieSBwbHVnLWlucy4KCSAqICBAbmFtZXNwYWNlCgkgKi8KCURhdGFUYWJsZS5tb2RlbHMuZXh0ID0gewoJCS8qKgoJCSAqIFBsdWctaW4gZmlsdGVyaW5nIGZ1bmN0aW9ucyAtIHRoaXMgbWV0aG9kIG9mIGZpbHRlcmluZyBpcyBjb21wbGltZW50YXJ5IHRvIHRoZSBkZWZhdWx0CgkJICogdHlwZSBiYXNlZCBmaWx0ZXJpbmcsIGFuZCBhIGxvdCBtb3JlIGNvbXByZWhlbnNpdmUgYXMgaXQgYWxsb3dzIHlvdSBjb21wbGV0ZSBjb250cm9sCgkJICogb3ZlciB0aGUgZmlsdGVyaW5nIGxvZ2ljLiBFYWNoIGVsZW1lbnQgaW4gdGhpcyBhcnJheSBpcyBhIGZ1bmN0aW9uIChwYXJhbWV0ZXJzCgkJICogZGVzY3JpYmVkIGJlbG93KSB0aGF0IGlzIGNhbGxlZCBmb3IgZXZlcnkgcm93IGluIHRoZSB0YWJsZSwgYW5kIHlvdXIgbG9naWMgZGVjaWRlcyBpZgoJCSAqIGl0IHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgZmlsdGVyZWQgZGF0YSBzZXQgb3Igbm90LgoJCSAqICAgPHVsPgoJCSAqICAgICA8bGk+CgkJICogICAgICAgRnVuY3Rpb24gaW5wdXQgcGFyYW1ldGVyczoKCQkgKiAgICAgICA8dWw+CgkJICogICAgICAgICA8bGk+e29iamVjdH0gRGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3Q6IHNlZSB7QGxpbmsgRGF0YVRhYmxlLm1vZGVscy5vU2V0dGluZ3N9LjwvbGk+CgkJICogICAgICAgICA8bGk+e2FycmF5fG9iamVjdH0gRGF0YSBmb3IgdGhlIHJvdyB0byBiZSBwcm9jZXNzZWQgKHNhbWUgYXMgdGhlIG9yaWdpbmFsIGZvcm1hdAoJCSAqICAgICAgICAgICB0aGF0IHdhcyBwYXNzZWQgaW4gYXMgdGhlIGRhdGEgc291cmNlLCBvciBhbiBhcnJheSBmcm9tIGEgRE9NIGRhdGEgc291cmNlPC9saT4KCQkgKiAgICAgICAgIDxsaT57aW50fSBSb3cgaW5kZXggaW4gYW9EYXRhICh7QGxpbmsgRGF0YVRhYmxlLm1vZGVscy5vU2V0dGluZ3MuYW9EYXRhfSksIHdoaWNoIGNhbgoJCSAqICAgICAgICAgICBiZSB1c2VmdWwgdG8gcmV0cmlldmUgdGhlIFRSIGVsZW1lbnQgaWYgeW91IG5lZWQgRE9NIGludGVyYWN0aW9uLjwvbGk+CgkJICogICAgICAgPC91bD4KCQkgKiAgICAgPC9saT4KCQkgKiAgICAgPGxpPgoJCSAqICAgICAgIEZ1bmN0aW9uIHJldHVybjoKCQkgKiAgICAgICA8dWw+CgkJICogICAgICAgICA8bGk+e2Jvb2xlYW59IEluY2x1ZGUgdGhlIHJvdyBpbiB0aGUgZmlsdGVyZWQgcmVzdWx0IHNldCAodHJ1ZSkgb3Igbm90IChmYWxzZSk8L2xpPgoJCSAqICAgICAgIDwvdWw+CgkJICogICAgIDwvaWw+CgkJICogICA8L3VsPgoJCSAqICBAdHlwZSBhcnJheQoJCSAqICBAZGVmYXVsdCBbXQoJCSAqCgkJICogIEBleGFtcGxlCgkJICogICAgLy8gVGhlIGZvbGxvd2luZyBleGFtcGxlIHNob3dzIGN1c3RvbSBmaWx0ZXJpbmcgYmVpbmcgYXBwbGllZCB0byB0aGUgZm91cnRoIGNvbHVtbiAoaS5lLgoJCSAqICAgIC8vIHRoZSBhRGF0YVszXSBpbmRleCkgYmFzZWQgb24gdHdvIGlucHV0IHZhbHVlcyBmcm9tIHRoZSBlbmQtdXNlciwgbWF0Y2hpbmcgdGhlIGRhdGEgaW4gCgkJICogICAgLy8gYSBjZXJ0YWluIHJhbmdlLgoJCSAqICAgICQuZm4uZGF0YVRhYmxlRXh0LmFmbkZpbHRlcmluZy5wdXNoKAoJCSAqICAgICAgZnVuY3Rpb24oIG9TZXR0aW5ncywgYURhdGEsIGlEYXRhSW5kZXggKSB7CgkJICogICAgICAgIHZhciBpTWluID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21pbicpLnZhbHVlICogMTsKCQkgKiAgICAgICAgdmFyIGlNYXggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWF4JykudmFsdWUgKiAxOwoJCSAqICAgICAgICB2YXIgaVZlcnNpb24gPSBhRGF0YVszXSA9PSAiLSIgPyAwIDogYURhdGFbM10qMTsKCQkgKiAgICAgICAgaWYgKCBpTWluID09ICIiICYmIGlNYXggPT0gIiIgKSB7CgkJICogICAgICAgICAgcmV0dXJuIHRydWU7CgkJICogICAgICAgIH0KCQkgKiAgICAgICAgZWxzZSBpZiAoIGlNaW4gPT0gIiIgJiYgaVZlcnNpb24gPCBpTWF4ICkgewoJCSAqICAgICAgICAgIHJldHVybiB0cnVlOwoJCSAqICAgICAgICB9CgkJICogICAgICAgIGVsc2UgaWYgKCBpTWluIDwgaVZlcnNpb24gJiYgIiIgPT0gaU1heCApIHsKCQkgKiAgICAgICAgICByZXR1cm4gdHJ1ZTsKCQkgKiAgICAgICAgfQoJCSAqICAgICAgICBlbHNlIGlmICggaU1pbiA8IGlWZXJzaW9uICYmIGlWZXJzaW9uIDwgaU1heCApIHsKCQkgKiAgICAgICAgICByZXR1cm4gdHJ1ZTsKCQkgKiAgICAgICAgfQoJCSAqICAgICAgICByZXR1cm4gZmFsc2U7CgkJICogICAgICB9CgkJICogICAgKTsKCQkgKi8KCQkiYWZuRmlsdGVyaW5nIjogW10sCgkKCQoJCS8qKgoJCSAqIFBsdWctaW4gc29ydGluZyBmdW5jdGlvbnMgLSB0aGlzIG1ldGhvZCBvZiBzb3J0aW5nIGlzIGNvbXBsaW1lbnRhcnkgdG8gdGhlIGRlZmF1bHQgdHlwZQoJCSAqIGJhc2VkIHNvcnRpbmcgdGhhdCBEYXRhVGFibGVzIGRvZXMgYXV0b21hdGljYWxseSwgYWxsb3dpbmcgbXVjaCBncmVhdGVyIGNvbnRyb2wgb3ZlciB0aGUKCQkgKiB0aGUgZGF0YSB0aGF0IGlzIGJlaW5nIHVzZWQgdG8gc29ydCBhIGNvbHVtbi4gVGhpcyBpcyB1c2VmdWwgaWYgeW91IHdhbnQgdG8gZG8gc29ydGluZwoJCSAqIGJhc2VkIG9uIGxpdmUgZGF0YSAoZm9yIGV4YW1wbGUgdGhlIGNvbnRlbnRzIG9mIGFuICdpbnB1dCcgZWxlbWVudCkgcmF0aGVyIHRoYW4ganVzdCB0aGUKCQkgKiBzdGF0aWMgc3RyaW5nIHRoYXQgRGF0YVRhYmxlcyBrbm93cyBvZi4gVGhlIHdheSB0aGVzZSBwbHVnLWlucyB3b3JrIGlzIHRoYXQgeW91IGNyZWF0ZQoJCSAqIGFuIGFycmF5IG9mIHRoZSB2YWx1ZXMgeW91IHdpc2ggdG8gYmUgc29ydGVkIGZvciB0aGUgY29sdW1uIGluIHF1ZXN0aW9uIGFuZCB0aGVuIHJldHVybgoJCSAqIHRoYXQgYXJyYXkuIFdoaWNoIHByZS1zb3J0aW5nIGZ1bmN0aW9uIGlzIHJ1biBoZXJlIGRlcGVuZHMgb24gdGhlIHNTb3J0RGF0YVR5cGUgcGFyYW1ldGVyCgkJICogdGhhdCBpcyB1c2VkIGZvciB0aGUgY29sdW1uIChpZiBhbnkpLiBUaGlzIGlzIHRoZSBjb3JvbGxhcnkgb2YgPGk+b2ZuU2VhcmNoPC9pPiBmb3Igc29ydCAKCQkgKiBkYXRhLgoJCSAqICAgPHVsPgoJICAgICAqICAgICA8bGk+CgkgICAgICogICAgICAgRnVuY3Rpb24gaW5wdXQgcGFyYW1ldGVyczoKCSAgICAgKiAgICAgICA8dWw+CgkJICogICAgICAgICA8bGk+e29iamVjdH0gRGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3Q6IHNlZSB7QGxpbmsgRGF0YVRhYmxlLm1vZGVscy5vU2V0dGluZ3N9LjwvbGk+CgkgICAgICogICAgICAgICA8bGk+e2ludH0gVGFyZ2V0IGNvbHVtbiBpbmRleDwvbGk+CgkgICAgICogICAgICAgPC91bD4KCSAgICAgKiAgICAgPC9saT4KCQkgKiAgICAgPGxpPgoJCSAqICAgICAgIEZ1bmN0aW9uIHJldHVybjoKCQkgKiAgICAgICA8dWw+CgkJICogICAgICAgICA8bGk+e2FycmF5fSBEYXRhIGZvciB0aGUgY29sdW1uIHRvIGJlIHNvcnRlZCB1cG9uPC9saT4KCQkgKiAgICAgICA8L3VsPgoJCSAqICAgICA8L2lsPgoJCSAqICAgPC91bD4KCQkgKiAgCgkJICogTm90ZSB0aGF0IGFzIG9mIHYxLjksIGl0IGlzIHR5cGljYWxseSBwcmVmZXJhYmxlIHRvIHVzZSA8aT5tRGF0YTwvaT4gdG8gcHJlcGFyZSBkYXRhIGZvcgoJCSAqIHRoZSBkaWZmZXJlbnQgdXNlcyB0aGF0IERhdGFUYWJsZXMgY2FuIHB1dCB0aGUgZGF0YSB0by4gU3BlY2lmaWNhbGx5IDxpPm1EYXRhPC9pPiB3aGVuCgkJICogdXNlZCBhcyBhIGZ1bmN0aW9uIHdpbGwgZ2l2ZSB5b3UgYSAndHlwZScgKHNvcnRpbmcsIGZpbHRlcmluZyBldGMpIHRoYXQgeW91IGNhbiB1c2UgdG8gCgkJICogcHJlcGFyZSB0aGUgZGF0YSBhcyByZXF1aXJlZCBmb3IgdGhlIGRpZmZlcmVudCB0eXBlcy4gQXMgc3VjaCwgdGhpcyBtZXRob2QgaXMgZGVwcmVjYXRlZC4KCQkgKiAgQHR5cGUgYXJyYXkKCQkgKiAgQGRlZmF1bHQgW10KCQkgKiAgQGRlcHJlY2F0ZWQKCQkgKgoJCSAqICBAZXhhbXBsZQoJCSAqICAgIC8vIFVwZGF0aW5nIHRoZSBjYWNoZWQgc29ydGluZyBpbmZvcm1hdGlvbiB3aXRoIHVzZXIgZW50ZXJlZCB2YWx1ZXMgaW4gSFRNTCBpbnB1dCBlbGVtZW50cwoJCSAqICAgIGpRdWVyeS5mbi5kYXRhVGFibGVFeHQuYWZuU29ydERhdGFbJ2RvbS10ZXh0J10gPSBmdW5jdGlvbiAoIG9TZXR0aW5ncywgaUNvbHVtbiApCgkJICogICAgewoJCSAqICAgICAgdmFyIGFEYXRhID0gW107CgkJICogICAgICAkKCAndGQ6ZXEoJytpQ29sdW1uKycpIGlucHV0Jywgb1NldHRpbmdzLm9BcGkuX2ZuR2V0VHJOb2RlcyhvU2V0dGluZ3MpICkuZWFjaCggZnVuY3Rpb24gKCkgewoJCSAqICAgICAgICBhRGF0YS5wdXNoKCB0aGlzLnZhbHVlICk7CgkJICogICAgICB9ICk7CgkJICogICAgICByZXR1cm4gYURhdGE7CgkJICogICAgfQoJCSAqLwoJCSJhZm5Tb3J0RGF0YSI6IFtdLAoJCgkKCQkvKioKCQkgKiBGZWF0dXJlIHBsdWctaW5zIC0gVGhpcyBpcyBhbiBhcnJheSBvZiBvYmplY3RzIHdoaWNoIGRlc2NyaWJlIHRoZSBmZWF0dXJlIHBsdWctaW5zIHRoYXQgYXJlCgkJICogYXZhaWxhYmxlIHRvIERhdGFUYWJsZXMuIFRoZXNlIGZlYXR1cmUgcGx1Zy1pbnMgYXJlIGFjY2Vzc2libGUgdGhyb3VnaCB0aGUgc0RvbSBpbml0aWFsaXNhdGlvbgoJCSAqIG9wdGlvbi4gQXMgc3VjaCwgZWFjaCBmZWF0dXJlIHBsdWctaW4gbXVzdCBkZXNjcmliZSBhIGZ1bmN0aW9uIHRoYXQgaXMgdXNlZCB0byBpbml0aWFsaXNlCgkJICogaXRzZWxmIChmbkluaXQpLCBhIGNoYXJhY3RlciBzbyB0aGUgZmVhdHVyZSBjYW4gYmUgZW5hYmxlZCBieSBzRG9tIChjRmVhdHVyZSkgYW5kIHRoZSBuYW1lCgkJICogb2YgdGhlIGZlYXR1cmUgKHNGZWF0dXJlKS4gVGh1cyB0aGUgb2JqZWN0cyBhdHRhY2hlZCB0byB0aGlzIG1ldGhvZCBtdXN0IHByb3ZpZGU6CgkJICogICA8dWw+CgkJICogICAgIDxsaT57ZnVuY3Rpb259IGZuSW5pdCBJbml0aWFsaXNhdGlvbiBvZiB0aGUgcGx1Zy1pbgoJCSAqICAgICAgIDx1bD4KCSAgICAgKiAgICAgICAgIDxsaT4KCSAgICAgKiAgICAgICAgICAgRnVuY3Rpb24gaW5wdXQgcGFyYW1ldGVyczoKCSAgICAgKiAgICAgICAgICAgPHVsPgoJCSAqICAgICAgICAgICAgIDxsaT57b2JqZWN0fSBEYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdDogc2VlIHtAbGluayBEYXRhVGFibGUubW9kZWxzLm9TZXR0aW5nc30uPC9saT4KCSAgICAgKiAgICAgICAgICAgPC91bD4KCSAgICAgKiAgICAgICAgIDwvbGk+CgkJICogICAgICAgICA8bGk+CgkJICogICAgICAgICAgIEZ1bmN0aW9uIHJldHVybjoKCQkgKiAgICAgICAgICAgPHVsPgoJCSAqICAgICAgICAgICAgIDxsaT57bm9kZXxudWxsfSBUaGUgZWxlbWVudCB3aGljaCBjb250YWlucyB5b3VyIGZlYXR1cmUuIE5vdGUgdGhhdCB0aGUgcmV0dXJuCgkJICogICAgICAgICAgICAgICAgbWF5IGFsc28gYmUgdm9pZCBpZiB5b3VyIHBsdWctaW4gZG9lcyBub3QgcmVxdWlyZSB0byBpbmplY3QgYW55IERPTSBlbGVtZW50cyAKCQkgKiAgICAgICAgICAgICAgICBpbnRvIERhdGFUYWJsZXMgY29udHJvbCAoc0RvbSkgLSBmb3IgZXhhbXBsZSB0aGlzIG1pZ2h0IGJlIHVzZWZ1bCB3aGVuIAoJCSAqICAgICAgICAgICAgICAgIGRldmVsb3BpbmcgYSBwbHVnLWluIHdoaWNoIGFsbG93cyB0YWJsZSBjb250cm9sIHZpYSBrZXlib2FyZCBlbnRyeS48L2xpPgoJCSAqICAgICAgICAgICA8L3VsPgoJCSAqICAgICAgICAgPC9pbD4KCQkgKiAgICAgICA8L3VsPgoJCSAqICAgICA8L2xpPgoJCSAqICAgICA8bGk+e2NoYXJhY3Rlcn0gY0ZlYXR1cmUgQ2hhcmFjdGVyIHRoYXQgd2lsbCBiZSBtYXRjaGVkIGluIHNEb20gLSBjYXNlIHNlbnNpdGl2ZTwvbGk+CgkJICogICAgIDxsaT57c3RyaW5nfSBzRmVhdHVyZSBGZWF0dXJlIG5hbWU8L2xpPgoJCSAqICAgPC91bD4KCQkgKiAgQHR5cGUgYXJyYXkKCQkgKiAgQGRlZmF1bHQgW10KCQkgKiAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAvLyBIb3cgVGFibGVUb29scyBpbml0aWFsaXNlcyBpdHNlbGYuCgkJICogICAgJC5mbi5kYXRhVGFibGVFeHQuYW9GZWF0dXJlcy5wdXNoKCB7CgkJICogICAgICAiZm5Jbml0IjogZnVuY3Rpb24oIG9TZXR0aW5ncyApIHsKCQkgKiAgICAgICAgcmV0dXJuIG5ldyBUYWJsZVRvb2xzKCB7ICJvRFRTZXR0aW5ncyI6IG9TZXR0aW5ncyB9ICk7CgkJICogICAgICB9LAoJCSAqICAgICAgImNGZWF0dXJlIjogIlQiLAoJCSAqICAgICAgInNGZWF0dXJlIjogIlRhYmxlVG9vbHMiCgkJICogICAgfSApOwoJCSAqLwoJCSJhb0ZlYXR1cmVzIjogW10sCgkKCQoJCS8qKgoJCSAqIFR5cGUgZGV0ZWN0aW9uIHBsdWctaW4gZnVuY3Rpb25zIC0gRGF0YVRhYmxlcyB1dGlsaXNlcyB0eXBlcyB0byBkZWZpbmUgaG93IHNvcnRpbmcgYW5kCgkJICogZmlsdGVyaW5nIGJlaGF2ZSwgYW5kIHR5cGVzIGNhbiBiZSBlaXRoZXIgIGJlIGRlZmluZWQgYnkgdGhlIGRldmVsb3BlciAoc1R5cGUgZm9yIHRoZQoJCSAqIGNvbHVtbikgb3IgdGhleSBjYW4gYmUgYXV0b21hdGljYWxseSBkZXRlY3RlZCBieSB0aGUgbWV0aG9kcyBpbiB0aGlzIGFycmF5LiBUaGUgZnVuY3Rpb25zCgkJICogZGVmaW5lZCBpbiB0aGUgYXJyYXkgYXJlIHF1aXRlIHNpbXBsZSwgdGFraW5nIGEgc2luZ2xlIHBhcmFtZXRlciAodGhlIGRhdGEgdG8gYW5hbHlzZSkgCgkJICogYW5kIHJldHVybmluZyB0aGUgdHlwZSBpZiBpdCBpcyBhIGtub3duIHR5cGUsIG9yIG51bGwgb3RoZXJ3aXNlLgoJCSAqICAgPHVsPgoJICAgICAqICAgICA8bGk+CgkgICAgICogICAgICAgRnVuY3Rpb24gaW5wdXQgcGFyYW1ldGVyczoKCSAgICAgKiAgICAgICA8dWw+CgkJICogICAgICAgICA8bGk+eyp9IERhdGEgZnJvbSB0aGUgY29sdW1uIGNlbGwgdG8gYmUgYW5hbHlzZWQ8L2xpPgoJICAgICAqICAgICAgIDwvdWw+CgkgICAgICogICAgIDwvbGk+CgkJICogICAgIDxsaT4KCQkgKiAgICAgICBGdW5jdGlvbiByZXR1cm46CgkJICogICAgICAgPHVsPgoJCSAqICAgICAgICAgPGxpPntzdHJpbmd8bnVsbH0gRGF0YSB0eXBlIGRldGVjdGVkLCBvciBudWxsIGlmIHVua25vd24gKGFuZCB0aHVzIHBhc3MgaXQKCQkgKiAgICAgICAgICAgb24gdG8gdGhlIG90aGVyIHR5cGUgZGV0ZWN0aW9uIGZ1bmN0aW9ucy48L2xpPgoJCSAqICAgICAgIDwvdWw+CgkJICogICAgIDwvaWw+CgkJICogICA8L3VsPgoJCSAqICBAdHlwZSBhcnJheQoJCSAqICBAZGVmYXVsdCBbXQoJCSAqICAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAvLyBDdXJyZW5jeSB0eXBlIGRldGVjdGlvbiBwbHVnLWluOgoJCSAqICAgIGpRdWVyeS5mbi5kYXRhVGFibGVFeHQuYVR5cGVzLnB1c2goCgkJICogICAgICBmdW5jdGlvbiAoIHNEYXRhICkgewoJCSAqICAgICAgICB2YXIgc1ZhbGlkQ2hhcnMgPSAiMDEyMzQ1Njc4OS4tIjsKCQkgKiAgICAgICAgdmFyIENoYXI7CgkJICogICAgICAgIAoJCSAqICAgICAgICAvLyBDaGVjayB0aGUgbnVtZXJpYyBwYXJ0CgkJICogICAgICAgIGZvciAoIGk9MSA7IGk8c0RhdGEubGVuZ3RoIDsgaSsrICkgewoJCSAqICAgICAgICAgIENoYXIgPSBzRGF0YS5jaGFyQXQoaSk7IAoJCSAqICAgICAgICAgIGlmIChzVmFsaWRDaGFycy5pbmRleE9mKENoYXIpID09IC0xKSB7CgkJICogICAgICAgICAgICByZXR1cm4gbnVsbDsKCQkgKiAgICAgICAgICB9CgkJICogICAgICAgIH0KCQkgKiAgICAgICAgCgkJICogICAgICAgIC8vIENoZWNrIHByZWZpeGVkIGJ5IGN1cnJlbmN5CgkJICogICAgICAgIGlmICggc0RhdGEuY2hhckF0KDApID09ICckJyB8fCBzRGF0YS5jaGFyQXQoMCkgPT0gJyZwb3VuZDsnICkgewoJCSAqICAgICAgICAgIHJldHVybiAnY3VycmVuY3knOwoJCSAqICAgICAgICB9CgkJICogICAgICAgIHJldHVybiBudWxsOwoJCSAqICAgICAgfQoJCSAqICAgICk7CgkJICovCgkJImFUeXBlcyI6IFtdLAoJCgkKCQkvKioKCQkgKiBQcm92aWRlIGEgY29tbW9uIG1ldGhvZCBmb3IgcGx1Zy1pbnMgdG8gY2hlY2sgdGhlIHZlcnNpb24gb2YgRGF0YVRhYmxlcyBiZWluZyB1c2VkLCAKCQkgKiBpbiBvcmRlciB0byBlbnN1cmUgY29tcGF0aWJpbGl0eS4KCQkgKiAgQHR5cGUgZnVuY3Rpb24KCQkgKiAgQHBhcmFtIHtzdHJpbmd9IHNWZXJzaW9uIFZlcnNpb24gc3RyaW5nIHRvIGNoZWNrIGZvciwgaW4gdGhlIGZvcm1hdCAiWC5ZLloiLiBOb3RlIAoJCSAqICAgIHRoYXQgdGhlIGZvcm1hdHMgIlgiIGFuZCAiWC5ZIiBhcmUgYWxzbyBhY2NlcHRhYmxlLgoJCSAqICBAcmV0dXJucyB7Ym9vbGVhbn0gdHJ1ZSBpZiB0aGlzIHZlcnNpb24gb2YgRGF0YVRhYmxlcyBpcyBncmVhdGVyIG9yIGVxdWFsIHRvIHRoZSAKCQkgKiAgICByZXF1aXJlZCB2ZXJzaW9uLCBvciBmYWxzZSBpZiB0aGlzIHZlcnNpb24gb2YgRGF0YVRhbGVzIGlzIG5vdCBzdWl0YWJsZQoJCSAqCgkJICogIEBleGFtcGxlCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CgkJICogICAgICB2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCQkgKiAgICAgIGFsZXJ0KCBvVGFibGUuZm5WZXJzaW9uQ2hlY2soICcxLjkuMCcgKSApOwoJCSAqICAgIH0gKTsKCQkgKi8KCQkiZm5WZXJzaW9uQ2hlY2siOiBEYXRhVGFibGUuZm5WZXJzaW9uQ2hlY2ssCgkKCQoJCS8qKgoJCSAqIEluZGV4IGZvciB3aGF0ICd0aGlzJyBpbmRleCBBUEkgZnVuY3Rpb25zIHNob3VsZCB1c2UKCQkgKiAgQHR5cGUgaW50CgkJICogIEBkZWZhdWx0IDAKCQkgKi8KCQkiaUFwaUluZGV4IjogMCwKCQoJCgkJLyoqCgkJICogUHJlLXByb2Nlc3Npbmcgb2YgZmlsdGVyaW5nIGRhdGEgcGx1Zy1pbnMgLSBXaGVuIHlvdSBhc3NpZ24gdGhlIHNUeXBlIGZvciBhIGNvbHVtbgoJCSAqIChvciBoYXZlIGl0IGF1dG9tYXRpY2FsbHkgZGV0ZWN0ZWQgZm9yIHlvdSBieSBEYXRhVGFibGVzIG9yIGEgdHlwZSBkZXRlY3Rpb24gcGx1Zy1pbiksIAoJCSAqIHlvdSB3aWxsIHR5cGljYWxseSBiZSB1c2luZyB0aGlzIGZvciBjdXN0b20gc29ydGluZywgYnV0IGl0IGNhbiBhbHNvIGJlIHVzZWQgdG8gcHJvdmlkZSAKCQkgKiBjdXN0b20gZmlsdGVyaW5nIGJ5IGFsbG93aW5nIHlvdSB0byBwcmUtcHJvY2Vzc2luZyB0aGUgZGF0YSBhbmQgcmV0dXJuaW5nIHRoZSBkYXRhIGluCgkJICogdGhlIGZvcm1hdCB0aGF0IHNob3VsZCBiZSBmaWx0ZXJlZCB1cG9uLiBUaGlzIGlzIGRvbmUgYnkgYWRkaW5nIGZ1bmN0aW9ucyB0aGlzIG9iamVjdCAKCQkgKiB3aXRoIGEgcGFyYW1ldGVyIG5hbWUgd2hpY2ggbWF0Y2hlcyB0aGUgc1R5cGUgZm9yIHRoYXQgdGFyZ2V0IGNvbHVtbi4gVGhpcyBpcyB0aGUKCQkgKiBjb3JvbGxhcnkgb2YgPGk+YWZuU29ydERhdGE8L2k+IGZvciBmaWx0ZXJpbmcgZGF0YS4KCQkgKiAgIDx1bD4KCSAgICAgKiAgICAgPGxpPgoJICAgICAqICAgICAgIEZ1bmN0aW9uIGlucHV0IHBhcmFtZXRlcnM6CgkgICAgICogICAgICAgPHVsPgoJCSAqICAgICAgICAgPGxpPnsqfSBEYXRhIGZyb20gdGhlIGNvbHVtbiBjZWxsIHRvIGJlIHByZXBhcmVkIGZvciBmaWx0ZXJpbmc8L2xpPgoJICAgICAqICAgICAgIDwvdWw+CgkgICAgICogICAgIDwvbGk+CgkJICogICAgIDxsaT4KCQkgKiAgICAgICBGdW5jdGlvbiByZXR1cm46CgkJICogICAgICAgPHVsPgoJCSAqICAgICAgICAgPGxpPntzdHJpbmd8bnVsbH0gRm9ybWF0dGVkIHN0cmluZyB0aGF0IHdpbGwgYmUgdXNlZCBmb3IgdGhlIGZpbHRlcmluZy48L2xpPgoJCSAqICAgICAgIDwvdWw+CgkJICogICAgIDwvaWw+CgkJICogICA8L3VsPgoJCSAqIAoJCSAqIE5vdGUgdGhhdCBhcyBvZiB2MS45LCBpdCBpcyB0eXBpY2FsbHkgcHJlZmVyYWJsZSB0byB1c2UgPGk+bURhdGE8L2k+IHRvIHByZXBhcmUgZGF0YSBmb3IKCQkgKiB0aGUgZGlmZmVyZW50IHVzZXMgdGhhdCBEYXRhVGFibGVzIGNhbiBwdXQgdGhlIGRhdGEgdG8uIFNwZWNpZmljYWxseSA8aT5tRGF0YTwvaT4gd2hlbgoJCSAqIHVzZWQgYXMgYSBmdW5jdGlvbiB3aWxsIGdpdmUgeW91IGEgJ3R5cGUnIChzb3J0aW5nLCBmaWx0ZXJpbmcgZXRjKSB0aGF0IHlvdSBjYW4gdXNlIHRvIAoJCSAqIHByZXBhcmUgdGhlIGRhdGEgYXMgcmVxdWlyZWQgZm9yIHRoZSBkaWZmZXJlbnQgdHlwZXMuIEFzIHN1Y2gsIHRoaXMgbWV0aG9kIGlzIGRlcHJlY2F0ZWQuCgkJICogIEB0eXBlIG9iamVjdAoJCSAqICBAZGVmYXVsdCB7fQoJCSAqICBAZGVwcmVjYXRlZAoJCSAqCgkJICogIEBleGFtcGxlCgkJICogICAgJC5mbi5kYXRhVGFibGVFeHQub2ZuU2VhcmNoWyd0aXRsZS1udW1lcmljJ10gPSBmdW5jdGlvbiAoIHNEYXRhICkgewoJCSAqICAgICAgcmV0dXJuIHNEYXRhLnJlcGxhY2UoL1xuL2csIiAiKS5yZXBsYWNlKCAvPC4qPz4vZywgIiIgKTsKCQkgKiAgICB9CgkJICovCgkJIm9mblNlYXJjaCI6IHt9LAoJCgkKCQkvKioKCQkgKiBDb250YWluZXIgZm9yIGFsbCBwcml2YXRlIGZ1bmN0aW9ucyBpbiBEYXRhVGFibGVzIHNvIHRoZXkgY2FuIGJlIGV4cG9zZWQgZXh0ZXJuYWxseQoJCSAqICBAdHlwZSBvYmplY3QKCQkgKiAgQGRlZmF1bHQge30KCQkgKi8KCQkib0FwaSI6IHt9LAoJCgkKCQkvKioKCQkgKiBTdG9yYWdlIGZvciB0aGUgdmFyaW91cyBjbGFzc2VzIHRoYXQgRGF0YVRhYmxlcyB1c2VzCgkJICogIEB0eXBlIG9iamVjdAoJCSAqICBAZGVmYXVsdCB7fQoJCSAqLwoJCSJvU3RkQ2xhc3NlcyI6IHt9LAoJCQoJCgkJLyoqCgkJICogU3RvcmFnZSBmb3IgdGhlIHZhcmlvdXMgY2xhc3NlcyB0aGF0IERhdGFUYWJsZXMgdXNlcyAtIGpRdWVyeSBVSSBzdWl0YWJsZQoJCSAqICBAdHlwZSBvYmplY3QKCQkgKiAgQGRlZmF1bHQge30KCQkgKi8KCQkib0pVSUNsYXNzZXMiOiB7fSwKCQoJCgkJLyoqCgkJICogUGFnaW5hdGlvbiBwbHVnLWluIG1ldGhvZHMgLSBUaGUgc3R5bGUgYW5kIGNvbnRyb2xzIG9mIHRoZSBwYWdpbmF0aW9uIGNhbiBzaWduaWZpY2FudGx5IAoJCSAqIGltcGFjdCBvbiBob3cgdGhlIGVuZCB1c2VyIGludGVyYWN0cyB3aXRoIHRoZSBkYXRhIGluIHlvdXIgdGFibGUsIGFuZCBEYXRhVGFibGVzIGFsbG93cyAKCQkgKiB0aGUgYWRkaXRpb24gb2YgcGFnaW5hdGlvbiBjb250cm9scyBieSBleHRlbmRpbmcgdGhpcyBvYmplY3QsIHdoaWNoIGNhbiB0aGVuIGJlIGVuYWJsZWQKCQkgKiB0aHJvdWdoIHRoZSA8aT5zUGFnaW5hdGlvblR5cGU8L2k+IGluaXRpYWxpc2F0aW9uIHBhcmFtZXRlci4gRWFjaCBwYWdpbmF0aW9uIHR5cGUgdGhhdAoJCSAqIGlzIGFkZGVkIGlzIGFuIG9iamVjdCAodGhlIHByb3BlcnR5IG5hbWUgb2Ygd2hpY2ggaXMgd2hhdCA8aT5zUGFnaW5hdGlvblR5cGU8L2k+IHJlZmVycwoJCSAqIHRvKSB0aGF0IGhhcyB0d28gcHJvcGVydGllcywgYm90aCBtZXRob2RzIHRoYXQgYXJlIHVzZWQgYnkgRGF0YVRhYmxlcyB0byB1cGRhdGUgdGhlCgkJICogY29udHJvbCdzIHN0YXRlLgoJCSAqICAgPHVsPgoJCSAqICAgICA8bGk+CgkJICogICAgICAgZm5Jbml0IC0gIEluaXRpYWxpc2F0aW9uIG9mIHRoZSBwYWdpbmcgY29udHJvbHMuIENhbGxlZCBvbmx5IGR1cmluZyBpbml0aWFsaXNhdGlvbiAKCQkgKiAgICAgICAgIG9mIHRoZSB0YWJsZS4gSXQgaXMgZXhwZWN0ZWQgdGhhdCB0aGlzIGZ1bmN0aW9uIHdpbGwgYWRkIHRoZSByZXF1aXJlZCBET00gZWxlbWVudHMgCgkJICogICAgICAgICB0byB0aGUgcGFnZSBmb3IgdGhlIHBhZ2luZyBjb250cm9scyB0byB3b3JrLiBUaGUgZWxlbWVudCBwb2ludGVyIAoJCSAqICAgICAgICAgJ29TZXR0aW5ncy5hYW5GZWF0dXJlcy5wJyBhcnJheSBpcyBwcm92aWRlZCBieSBEYXRhVGFibGVzIHRvIGNvbnRhaW4gdGhlIHBhZ2luZyAKCQkgKiAgICAgICAgIGNvbnRyb2xzIChub3RlIHRoYXQgdGhpcyBpcyBhIDJEIGFycmF5IHRvIGFsbG93IGZvciBtdWx0aXBsZSBpbnN0YW5jZXMgb2YgZWFjaCAKCQkgKiAgICAgICAgIERhdGFUYWJsZXMgRE9NIGVsZW1lbnQpLiBJdCBpcyBzdWdnZXN0ZWQgdGhhdCB5b3UgYWRkIHRoZSBjb250cm9scyB0byB0aGlzIGVsZW1lbnQgCgkJICogICAgICAgICBhcyBjaGlsZHJlbgoJCSAqICAgICAgIDx1bD4KCSAgICAgKiAgICAgICAgIDxsaT4KCSAgICAgKiAgICAgICAgICAgRnVuY3Rpb24gaW5wdXQgcGFyYW1ldGVyczoKCSAgICAgKiAgICAgICAgICAgPHVsPgoJCSAqICAgICAgICAgICAgIDxsaT57b2JqZWN0fSBEYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdDogc2VlIHtAbGluayBEYXRhVGFibGUubW9kZWxzLm9TZXR0aW5nc30uPC9saT4KCQkgKiAgICAgICAgICAgICA8bGk+e25vZGV9IENvbnRhaW5lciBpbnRvIHdoaWNoIHRoZSBwYWdpbmF0aW9uIGNvbnRyb2xzIG11c3QgYmUgaW5zZXJ0ZWQ8L2xpPgoJCSAqICAgICAgICAgICAgIDxsaT57ZnVuY3Rpb259IERyYXcgY2FsbGJhY2sgZnVuY3Rpb24gLSB3aGVuZXZlciB0aGUgY29udHJvbHMgY2F1c2UgYSBwYWdlCgkJICogICAgICAgICAgICAgICBjaGFuZ2UsIHRoaXMgbWV0aG9kIG11c3QgYmUgY2FsbGVkIHRvIHJlZHJhdyB0aGUgdGFibGUuPC9saT4KCSAgICAgKiAgICAgICAgICAgPC91bD4KCSAgICAgKiAgICAgICAgIDwvbGk+CgkJICogICAgICAgICA8bGk+CgkJICogICAgICAgICAgIEZ1bmN0aW9uIHJldHVybjoKCQkgKiAgICAgICAgICAgPHVsPgoJCSAqICAgICAgICAgICAgIDxsaT5ObyByZXR1cm4gcmVxdWlyZWQ8L2xpPgoJCSAqICAgICAgICAgICA8L3VsPgoJCSAqICAgICAgICAgPC9pbD4KCQkgKiAgICAgICA8L3VsPgoJCSAqICAgICA8L2lsPgoJCSAqICAgICA8bGk+CgkJICogICAgICAgZm5Jbml0IC0gIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW5ldmVyIHRoZSBwYWdpbmcgc3RhdHVzIG9mIHRoZSB0YWJsZSBjaGFuZ2VzIGFuZCBpcwoJCSAqICAgICAgICAgdHlwaWNhbGx5IHVzZWQgdG8gdXBkYXRlIGNsYXNzZXMgYW5kL29yIHRleHQgb2YgdGhlIHBhZ2luZyBjb250cm9scyB0byByZWZsZXggdGhlIG5ldyAKCQkgKiAgICAgICAgIHN0YXR1cy4KCQkgKiAgICAgICA8dWw+CgkgICAgICogICAgICAgICA8bGk+CgkgICAgICogICAgICAgICAgIEZ1bmN0aW9uIGlucHV0IHBhcmFtZXRlcnM6CgkgICAgICogICAgICAgICAgIDx1bD4KCQkgKiAgICAgICAgICAgICA8bGk+e29iamVjdH0gRGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3Q6IHNlZSB7QGxpbmsgRGF0YVRhYmxlLm1vZGVscy5vU2V0dGluZ3N9LjwvbGk+CgkJICogICAgICAgICAgICAgPGxpPntmdW5jdGlvbn0gRHJhdyBjYWxsYmFjayBmdW5jdGlvbiAtIGluIGNhc2UgeW91IG5lZWQgdG8gcmVkcmF3IHRoZSB0YWJsZSBhZ2FpbgoJCSAqICAgICAgICAgICAgICAgb3IgYXR0YWNoIG5ldyBldmVudCBsaXN0ZW5lcnM8L2xpPgoJICAgICAqICAgICAgICAgICA8L3VsPgoJICAgICAqICAgICAgICAgPC9saT4KCQkgKiAgICAgICAgIDxsaT4KCQkgKiAgICAgICAgICAgRnVuY3Rpb24gcmV0dXJuOgoJCSAqICAgICAgICAgICA8dWw+CgkJICogICAgICAgICAgICAgPGxpPk5vIHJldHVybiByZXF1aXJlZDwvbGk+CgkJICogICAgICAgICAgIDwvdWw+CgkJICogICAgICAgICA8L2lsPgoJCSAqICAgICAgIDwvdWw+CgkJICogICAgIDwvaWw+CgkJICogICA8L3VsPgoJCSAqICBAdHlwZSBvYmplY3QKCQkgKiAgQGRlZmF1bHQge30KCQkgKgoJCSAqICBAZXhhbXBsZQoJCSAqICAgICQuZm4uZGF0YVRhYmxlRXh0Lm9QYWdpbmF0aW9uLmZvdXJfYnV0dG9uID0gewoJCSAqICAgICAgImZuSW5pdCI6IGZ1bmN0aW9uICggb1NldHRpbmdzLCBuUGFnaW5nLCBmbkNhbGxiYWNrRHJhdyApIHsKCQkgKiAgICAgICAgbkZpcnN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggJ3NwYW4nICk7CgkJICogICAgICAgIG5QcmV2aW91cyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICdzcGFuJyApOwoJCSAqICAgICAgICBuTmV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICdzcGFuJyApOwoJCSAqICAgICAgICBuTGFzdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICdzcGFuJyApOwoJCSAqICAgICAgICAKCQkgKiAgICAgICAgbkZpcnN0LmFwcGVuZENoaWxkKCBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSggb1NldHRpbmdzLm9MYW5ndWFnZS5vUGFnaW5hdGUuc0ZpcnN0ICkgKTsKCQkgKiAgICAgICAgblByZXZpb3VzLmFwcGVuZENoaWxkKCBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSggb1NldHRpbmdzLm9MYW5ndWFnZS5vUGFnaW5hdGUuc1ByZXZpb3VzICkgKTsKCQkgKiAgICAgICAgbk5leHQuYXBwZW5kQ2hpbGQoIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCBvU2V0dGluZ3Mub0xhbmd1YWdlLm9QYWdpbmF0ZS5zTmV4dCApICk7CgkJICogICAgICAgIG5MYXN0LmFwcGVuZENoaWxkKCBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSggb1NldHRpbmdzLm9MYW5ndWFnZS5vUGFnaW5hdGUuc0xhc3QgKSApOwoJCSAqICAgICAgICAKCQkgKiAgICAgICAgbkZpcnN0LmNsYXNzTmFtZSA9ICJwYWdpbmF0ZV9idXR0b24gZmlyc3QiOwoJCSAqICAgICAgICBuUHJldmlvdXMuY2xhc3NOYW1lID0gInBhZ2luYXRlX2J1dHRvbiBwcmV2aW91cyI7CgkJICogICAgICAgIG5OZXh0LmNsYXNzTmFtZT0icGFnaW5hdGVfYnV0dG9uIG5leHQiOwoJCSAqICAgICAgICBuTGFzdC5jbGFzc05hbWUgPSAicGFnaW5hdGVfYnV0dG9uIGxhc3QiOwoJCSAqICAgICAgICAKCQkgKiAgICAgICAgblBhZ2luZy5hcHBlbmRDaGlsZCggbkZpcnN0ICk7CgkJICogICAgICAgIG5QYWdpbmcuYXBwZW5kQ2hpbGQoIG5QcmV2aW91cyApOwoJCSAqICAgICAgICBuUGFnaW5nLmFwcGVuZENoaWxkKCBuTmV4dCApOwoJCSAqICAgICAgICBuUGFnaW5nLmFwcGVuZENoaWxkKCBuTGFzdCApOwoJCSAqICAgICAgICAKCQkgKiAgICAgICAgJChuRmlyc3QpLmNsaWNrKCBmdW5jdGlvbiAoKSB7CgkJICogICAgICAgICAgb1NldHRpbmdzLm9BcGkuX2ZuUGFnZUNoYW5nZSggb1NldHRpbmdzLCAiZmlyc3QiICk7CgkJICogICAgICAgICAgZm5DYWxsYmFja0RyYXcoIG9TZXR0aW5ncyApOwoJCSAqICAgICAgICB9ICk7CgkJICogICAgICAgIAoJCSAqICAgICAgICAkKG5QcmV2aW91cykuY2xpY2soIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgICAgIG9TZXR0aW5ncy5vQXBpLl9mblBhZ2VDaGFuZ2UoIG9TZXR0aW5ncywgInByZXZpb3VzIiApOwoJCSAqICAgICAgICAgIGZuQ2FsbGJhY2tEcmF3KCBvU2V0dGluZ3MgKTsKCQkgKiAgICAgICAgfSApOwoJCSAqICAgICAgICAKCQkgKiAgICAgICAgJChuTmV4dCkuY2xpY2soIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgICAgIG9TZXR0aW5ncy5vQXBpLl9mblBhZ2VDaGFuZ2UoIG9TZXR0aW5ncywgIm5leHQiICk7CgkJICogICAgICAgICAgZm5DYWxsYmFja0RyYXcoIG9TZXR0aW5ncyApOwoJCSAqICAgICAgICB9ICk7CgkJICogICAgICAgIAoJCSAqICAgICAgICAkKG5MYXN0KS5jbGljayggZnVuY3Rpb24oKSB7CgkJICogICAgICAgICAgb1NldHRpbmdzLm9BcGkuX2ZuUGFnZUNoYW5nZSggb1NldHRpbmdzLCAibGFzdCIgKTsKCQkgKiAgICAgICAgICBmbkNhbGxiYWNrRHJhdyggb1NldHRpbmdzICk7CgkJICogICAgICAgIH0gKTsKCQkgKiAgICAgICAgCgkJICogICAgICAgICQobkZpcnN0KS5iaW5kKCAnc2VsZWN0c3RhcnQnLCBmdW5jdGlvbiAoKSB7IHJldHVybiBmYWxzZTsgfSApOwoJCSAqICAgICAgICAkKG5QcmV2aW91cykuYmluZCggJ3NlbGVjdHN0YXJ0JywgZnVuY3Rpb24gKCkgeyByZXR1cm4gZmFsc2U7IH0gKTsKCQkgKiAgICAgICAgJChuTmV4dCkuYmluZCggJ3NlbGVjdHN0YXJ0JywgZnVuY3Rpb24gKCkgeyByZXR1cm4gZmFsc2U7IH0gKTsKCQkgKiAgICAgICAgJChuTGFzdCkuYmluZCggJ3NlbGVjdHN0YXJ0JywgZnVuY3Rpb24gKCkgeyByZXR1cm4gZmFsc2U7IH0gKTsKCQkgKiAgICAgIH0sCgkJICogICAgICAKCQkgKiAgICAgICJmblVwZGF0ZSI6IGZ1bmN0aW9uICggb1NldHRpbmdzLCBmbkNhbGxiYWNrRHJhdyApIHsKCQkgKiAgICAgICAgaWYgKCAhb1NldHRpbmdzLmFhbkZlYXR1cmVzLnAgKSB7CgkJICogICAgICAgICAgcmV0dXJuOwoJCSAqICAgICAgICB9CgkJICogICAgICAgIAoJCSAqICAgICAgICAvLyBMb29wIG92ZXIgZWFjaCBpbnN0YW5jZSBvZiB0aGUgcGFnZXIKCQkgKiAgICAgICAgdmFyIGFuID0gb1NldHRpbmdzLmFhbkZlYXR1cmVzLnA7CgkJICogICAgICAgIGZvciAoIHZhciBpPTAsIGlMZW49YW4ubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkgewoJCSAqICAgICAgICAgIHZhciBidXR0b25zID0gYW5baV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NwYW4nKTsKCQkgKiAgICAgICAgICBpZiAoIG9TZXR0aW5ncy5faURpc3BsYXlTdGFydCA9PT0gMCApIHsKCQkgKiAgICAgICAgICAgIGJ1dHRvbnNbMF0uY2xhc3NOYW1lID0gInBhZ2luYXRlX2Rpc2FibGVkX3ByZXZpb3VzIjsKCQkgKiAgICAgICAgICAgIGJ1dHRvbnNbMV0uY2xhc3NOYW1lID0gInBhZ2luYXRlX2Rpc2FibGVkX3ByZXZpb3VzIjsKCQkgKiAgICAgICAgICB9CgkJICogICAgICAgICAgZWxzZSB7CgkJICogICAgICAgICAgICBidXR0b25zWzBdLmNsYXNzTmFtZSA9ICJwYWdpbmF0ZV9lbmFibGVkX3ByZXZpb3VzIjsKCQkgKiAgICAgICAgICAgIGJ1dHRvbnNbMV0uY2xhc3NOYW1lID0gInBhZ2luYXRlX2VuYWJsZWRfcHJldmlvdXMiOwoJCSAqICAgICAgICAgIH0KCQkgKiAgICAgICAgICAKCQkgKiAgICAgICAgICBpZiAoIG9TZXR0aW5ncy5mbkRpc3BsYXlFbmQoKSA9PSBvU2V0dGluZ3MuZm5SZWNvcmRzRGlzcGxheSgpICkgewoJCSAqICAgICAgICAgICAgYnV0dG9uc1syXS5jbGFzc05hbWUgPSAicGFnaW5hdGVfZGlzYWJsZWRfbmV4dCI7CgkJICogICAgICAgICAgICBidXR0b25zWzNdLmNsYXNzTmFtZSA9ICJwYWdpbmF0ZV9kaXNhYmxlZF9uZXh0IjsKCQkgKiAgICAgICAgICB9CgkJICogICAgICAgICAgZWxzZSB7CgkJICogICAgICAgICAgICBidXR0b25zWzJdLmNsYXNzTmFtZSA9ICJwYWdpbmF0ZV9lbmFibGVkX25leHQiOwoJCSAqICAgICAgICAgICAgYnV0dG9uc1szXS5jbGFzc05hbWUgPSAicGFnaW5hdGVfZW5hYmxlZF9uZXh0IjsKCQkgKiAgICAgICAgICB9CgkJICogICAgICAgIH0KCQkgKiAgICAgIH0KCQkgKiAgICB9OwoJCSAqLwoJCSJvUGFnaW5hdGlvbiI6IHt9LAoJCgkKCQkvKioKCQkgKiBTb3J0aW5nIHBsdWctaW4gbWV0aG9kcyAtIFNvcnRpbmcgaW4gRGF0YVRhYmxlcyBpcyBiYXNlZCBvbiB0aGUgZGV0ZWN0ZWQgdHlwZSBvZiB0aGUKCQkgKiBkYXRhIGNvbHVtbiAoeW91IGNhbiBhZGQgeW91ciBvd24gdHlwZSBkZXRlY3Rpb24gZnVuY3Rpb25zLCBvciBvdmVycmlkZSBhdXRvbWF0aWMgCgkJICogZGV0ZWN0aW9uIHVzaW5nIHNUeXBlKS4gV2l0aCB0aGlzIHNwZWNpZmljIHR5cGUgZ2l2ZW4gdG8gdGhlIGNvbHVtbiwgRGF0YVRhYmxlcyB3aWxsIAoJCSAqIGFwcGx5IHRoZSByZXF1aXJlZCBzb3J0IGZyb20gdGhlIGZ1bmN0aW9ucyBpbiB0aGUgb2JqZWN0LiBFYWNoIHNvcnQgdHlwZSBtdXN0IHByb3ZpZGUKCQkgKiB0d28gbWFuZGF0b3J5IG1ldGhvZHMsIG9uZSBlYWNoIGZvciBhc2NlbmRpbmcgYW5kIGRlc2NlbmRpbmcgc29ydGluZywgYW5kIGNhbiBvcHRpb25hbGx5CgkJICogcHJvdmlkZSBhIHByZS1mb3JtYXR0aW5nIG1ldGhvZCB0aGF0IHdpbGwgaGVscCBzcGVlZCB1cCBzb3J0aW5nIGJ5IGFsbG93aW5nIERhdGFUYWJsZXMKCQkgKiB0byBwcmUtZm9ybWF0IHRoZSBzb3J0IGRhdGEgb25seSBvbmNlIChyYXRoZXIgdGhhbiBldmVyeSB0aW1lIHRoZSBhY3R1YWwgc29ydCBmdW5jdGlvbnMKCQkgKiBhcmUgcnVuKS4gVGhlIHR3byBzb3J0aW5nIGZ1bmN0aW9ucyBhcmUgdHlwaWNhbCBKYXZhc2NyaXB0IHNvcnQgbWV0aG9kczoKCQkgKiAgIDx1bD4KCSAgICAgKiAgICAgPGxpPgoJICAgICAqICAgICAgIEZ1bmN0aW9uIGlucHV0IHBhcmFtZXRlcnM6CgkgICAgICogICAgICAgPHVsPgoJCSAqICAgICAgICAgPGxpPnsqfSBEYXRhIHRvIGNvbXBhcmUgdG8gdGhlIHNlY29uZCBwYXJhbWV0ZXI8L2xpPgoJCSAqICAgICAgICAgPGxpPnsqfSBEYXRhIHRvIGNvbXBhcmUgdG8gdGhlIGZpcnN0IHBhcmFtZXRlcjwvbGk+CgkgICAgICogICAgICAgPC91bD4KCSAgICAgKiAgICAgPC9saT4KCQkgKiAgICAgPGxpPgoJCSAqICAgICAgIEZ1bmN0aW9uIHJldHVybjoKCQkgKiAgICAgICA8dWw+CgkJICogICAgICAgICA8bGk+e2ludH0gU29ydGluZyBtYXRjaDogPDAgaWYgZmlyc3QgcGFyYW1ldGVyIHNob3VsZCBiZSBzb3J0ZWQgbG93ZXIgdGhhbgoJCSAqICAgICAgICAgICB0aGUgc2Vjb25kIHBhcmFtZXRlciwgPT09MCBpZiB0aGUgdHdvIHBhcmFtZXRlcnMgYXJlIGVxdWFsIGFuZCA+MCBpZgoJCSAqICAgICAgICAgICB0aGUgZmlyc3QgcGFyYW1ldGVyIHNob3VsZCBiZSBzb3J0ZWQgaGVpZ2h0IHRoYW4gdGhlIHNlY29uZCBwYXJhbWV0ZXIuPC9saT4KCQkgKiAgICAgICA8L3VsPgoJCSAqICAgICA8L2lsPgoJCSAqICAgPC91bD4KCQkgKiAgQHR5cGUgb2JqZWN0CgkJICogIEBkZWZhdWx0IHt9CgkJICoKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAvLyBDYXNlLXNlbnNpdGl2ZSBzdHJpbmcgc29ydGluZywgd2l0aCBubyBwcmUtZm9ybWF0dGluZyBtZXRob2QKCQkgKiAgICAkLmV4dGVuZCggJC5mbi5kYXRhVGFibGVFeHQub1NvcnQsIHsKCQkgKiAgICAgICJzdHJpbmctY2FzZS1hc2MiOiBmdW5jdGlvbih4LHkpIHsKCQkgKiAgICAgICAgcmV0dXJuICgoeCA8IHkpID8gLTEgOiAoKHggPiB5KSA/IDEgOiAwKSk7CgkJICogICAgICB9LAoJCSAqICAgICAgInN0cmluZy1jYXNlLWRlc2MiOiBmdW5jdGlvbih4LHkpIHsKCQkgKiAgICAgICAgcmV0dXJuICgoeCA8IHkpID8gMSA6ICgoeCA+IHkpID8gLTEgOiAwKSk7CgkJICogICAgICB9CgkJICogICAgfSApOwoJCSAqCgkJICogIEBleGFtcGxlCgkJICogICAgLy8gQ2FzZS1pbnNlbnNpdGl2ZSBzdHJpbmcgc29ydGluZywgd2l0aCBwcmUtZm9ybWF0dGluZwoJCSAqICAgICQuZXh0ZW5kKCAkLmZuLmRhdGFUYWJsZUV4dC5vU29ydCwgewoJCSAqICAgICAgInN0cmluZy1wcmUiOiBmdW5jdGlvbih4KSB7CgkJICogICAgICAgIHJldHVybiB4LnRvTG93ZXJDYXNlKCk7CgkJICogICAgICB9LAoJCSAqICAgICAgInN0cmluZy1hc2MiOiBmdW5jdGlvbih4LHkpIHsKCQkgKiAgICAgICAgcmV0dXJuICgoeCA8IHkpID8gLTEgOiAoKHggPiB5KSA/IDEgOiAwKSk7CgkJICogICAgICB9LAoJCSAqICAgICAgInN0cmluZy1kZXNjIjogZnVuY3Rpb24oeCx5KSB7CgkJICogICAgICAgIHJldHVybiAoKHggPCB5KSA/IDEgOiAoKHggPiB5KSA/IC0xIDogMCkpOwoJCSAqICAgICAgfQoJCSAqICAgIH0gKTsKCQkgKi8KCQkib1NvcnQiOiB7fSwKCQoJCgkJLyoqCgkJICogVmVyc2lvbiBzdHJpbmcgZm9yIHBsdWctaW5zIHRvIGNoZWNrIGNvbXBhdGliaWxpdHkuIEFsbG93ZWQgZm9ybWF0IGlzCgkJICogYS5iLmMuZC5lIHdoZXJlOiBhOmludCwgYjppbnQsIGM6aW50LCBkOnN0cmluZyhkZXZ8YmV0YSksIGU6aW50LiBkIGFuZAoJCSAqIGUgYXJlIG9wdGlvbmFsCgkJICogIEB0eXBlIHN0cmluZwoJCSAqICBAZGVmYXVsdCBWZXJzaW9uIG51bWJlcgoJCSAqLwoJCSJzVmVyc2lvbiI6IERhdGFUYWJsZS52ZXJzaW9uLAoJCgkKCQkvKioKCQkgKiBIb3cgc2hvdWxkIERhdGFUYWJsZXMgcmVwb3J0IGFuIGVycm9yLiBDYW4gdGFrZSB0aGUgdmFsdWUgJ2FsZXJ0JyBvciAndGhyb3cnCgkJICogIEB0eXBlIHN0cmluZwoJCSAqICBAZGVmYXVsdCBhbGVydAoJCSAqLwoJCSJzRXJyTW9kZSI6ICJhbGVydCIsCgkKCQoJCS8qKgoJCSAqIFN0b3JlIGluZm9ybWF0aW9uIGZvciBEYXRhVGFibGVzIHRvIGFjY2VzcyBnbG9iYWxseSBhYm91dCBvdGhlciBpbnN0YW5jZXMKCQkgKiAgQG5hbWVzcGFjZQoJCSAqICBAcHJpdmF0ZQoJCSAqLwoJCSJfb0V4dGVybkNvbmZpZyI6IHsKCQkJLyogaW50OmlOZXh0VW5pcXVlIC0gbmV4dCB1bmlxdWUgbnVtYmVyIGZvciBhbiBpbnN0YW5jZSAqLwoJCQkiaU5leHRVbmlxdWUiOiAwCgkJfQoJfTsKCQoJCgkKCQoJLyoqCgkgKiBUZW1wbGF0ZSBvYmplY3QgZm9yIHRoZSB3YXkgaW4gd2hpY2ggRGF0YVRhYmxlcyBob2xkcyBpbmZvcm1hdGlvbiBhYm91dAoJICogc2VhcmNoIGluZm9ybWF0aW9uIGZvciB0aGUgZ2xvYmFsIGZpbHRlciBhbmQgaW5kaXZpZHVhbCBjb2x1bW4gZmlsdGVycy4KCSAqICBAbmFtZXNwYWNlCgkgKi8KCURhdGFUYWJsZS5tb2RlbHMub1NlYXJjaCA9IHsKCQkvKioKCQkgKiBGbGFnIHRvIGluZGljYXRlIGlmIHRoZSBmaWx0ZXJpbmcgc2hvdWxkIGJlIGNhc2UgaW5zZW5zaXRpdmUgb3Igbm90CgkJICogIEB0eXBlIGJvb2xlYW4KCQkgKiAgQGRlZmF1bHQgdHJ1ZQoJCSAqLwoJCSJiQ2FzZUluc2Vuc2l0aXZlIjogdHJ1ZSwKCQoJCS8qKgoJCSAqIEFwcGxpZWQgc2VhcmNoIHRlcm0KCQkgKiAgQHR5cGUgc3RyaW5nCgkJICogIEBkZWZhdWx0IDxpPkVtcHR5IHN0cmluZzwvaT4KCQkgKi8KCQkic1NlYXJjaCI6ICIiLAoJCgkJLyoqCgkJICogRmxhZyB0byBpbmRpY2F0ZSBpZiB0aGUgc2VhcmNoIHRlcm0gc2hvdWxkIGJlIGludGVycHJldGVkIGFzIGEKCQkgKiByZWd1bGFyIGV4cHJlc3Npb24gKHRydWUpIG9yIG5vdCAoZmFsc2UpIGFuZCB0aGVyZWZvcmUgYW5kIHNwZWNpYWwKCQkgKiByZWdleCBjaGFyYWN0ZXJzIGVzY2FwZWQuCgkJICogIEB0eXBlIGJvb2xlYW4KCQkgKiAgQGRlZmF1bHQgZmFsc2UKCQkgKi8KCQkiYlJlZ2V4IjogZmFsc2UsCgkKCQkvKioKCQkgKiBGbGFnIHRvIGluZGljYXRlIGlmIERhdGFUYWJsZXMgaXMgdG8gdXNlIGl0cyBzbWFydCBmaWx0ZXJpbmcgb3Igbm90LgoJCSAqICBAdHlwZSBib29sZWFuCgkJICogIEBkZWZhdWx0IHRydWUKCQkgKi8KCQkiYlNtYXJ0IjogdHJ1ZQoJfTsKCQoJCgkKCQoJLyoqCgkgKiBUZW1wbGF0ZSBvYmplY3QgZm9yIHRoZSB3YXkgaW4gd2hpY2ggRGF0YVRhYmxlcyBob2xkcyBpbmZvcm1hdGlvbiBhYm91dAoJICogZWFjaCBpbmRpdmlkdWFsIHJvdy4gVGhpcyBpcyB0aGUgb2JqZWN0IGZvcm1hdCB1c2VkIGZvciB0aGUgc2V0dGluZ3MgCgkgKiBhb0RhdGEgYXJyYXkuCgkgKiAgQG5hbWVzcGFjZQoJICovCglEYXRhVGFibGUubW9kZWxzLm9Sb3cgPSB7CgkJLyoqCgkJICogVFIgZWxlbWVudCBmb3IgdGhlIHJvdwoJCSAqICBAdHlwZSBub2RlCgkJICogIEBkZWZhdWx0IG51bGwKCQkgKi8KCQkiblRyIjogbnVsbCwKCQoJCS8qKgoJCSAqIERhdGEgb2JqZWN0IGZyb20gdGhlIG9yaWdpbmFsIGRhdGEgc291cmNlIGZvciB0aGUgcm93LiBUaGlzIGlzIGVpdGhlcgoJCSAqIGFuIGFycmF5IGlmIHVzaW5nIHRoZSB0cmFkaXRpb25hbCBmb3JtIG9mIERhdGFUYWJsZXMsIG9yIGFuIG9iamVjdCBpZgoJCSAqIHVzaW5nIG1EYXRhIG9wdGlvbnMuIFRoZSBleGFjdCB0eXBlIHdpbGwgZGVwZW5kIG9uIHRoZSBwYXNzZWQgaW4KCQkgKiBkYXRhIGZyb20gdGhlIGRhdGEgc291cmNlLCBvciB3aWxsIGJlIGFuIGFycmF5IGlmIHVzaW5nIERPTSBhIGRhdGEgCgkJICogc291cmNlLgoJCSAqICBAdHlwZSBhcnJheXxvYmplY3QKCQkgKiAgQGRlZmF1bHQgW10KCQkgKi8KCQkiX2FEYXRhIjogW10sCgkKCQkvKioKCQkgKiBTb3J0aW5nIGRhdGEgY2FjaGUgLSB0aGlzIGFycmF5IGlzIG9zdGVuc2libHkgdGhlIHNhbWUgbGVuZ3RoIGFzIHRoZQoJCSAqIG51bWJlciBvZiBjb2x1bW5zIChhbHRob3VnaCBlYWNoIGluZGV4IGlzIGdlbmVyYXRlZCBvbmx5IGFzIGl0IGlzIAoJCSAqIG5lZWRlZCksIGFuZCBob2xkcyB0aGUgZGF0YSB0aGF0IGlzIHVzZWQgZm9yIHNvcnRpbmcgZWFjaCBjb2x1bW4gaW4gdGhlCgkJICogcm93LiBXZSBkbyB0aGlzIGNhY2hlIGdlbmVyYXRpb24gYXQgdGhlIHN0YXJ0IG9mIHRoZSBzb3J0IGluIG9yZGVyIHRoYXQKCQkgKiB0aGUgZm9ybWF0dGluZyBvZiB0aGUgc29ydCBkYXRhIG5lZWQgYmUgZG9uZSBvbmx5IG9uY2UgZm9yIGVhY2ggY2VsbAoJCSAqIHBlciBzb3J0LiBUaGlzIGFycmF5IHNob3VsZCBub3QgYmUgcmVhZCBmcm9tIG9yIHdyaXR0ZW4gdG8gYnkgYW55dGhpbmcKCQkgKiBvdGhlciB0aGFuIHRoZSBtYXN0ZXIgc29ydGluZyBtZXRob2RzLgoJCSAqICBAdHlwZSBhcnJheQoJCSAqICBAZGVmYXVsdCBbXQoJCSAqICBAcHJpdmF0ZQoJCSAqLwoJCSJfYVNvcnREYXRhIjogW10sCgkKCQkvKioKCQkgKiBBcnJheSBvZiBURCBlbGVtZW50cyB0aGF0IGFyZSBjYWNoZWQgZm9yIGhpZGRlbiByb3dzLCBzbyB0aGV5IGNhbiBiZQoJCSAqIHJlaW5zZXJ0ZWQgaW50byB0aGUgdGFibGUgaWYgYSBjb2x1bW4gaXMgbWFkZSB2aXNpYmxlIGFnYWluIChvciB0byBhY3QKCQkgKiBhcyBhIHN0b3JlIGlmIGEgY29sdW1uIGlzIG1hZGUgaGlkZGVuKS4gT25seSBoaWRkZW4gY29sdW1ucyBoYXZlIGEgCgkJICogcmVmZXJlbmNlIGluIHRoZSBhcnJheS4gRm9yIG5vbi1oaWRkZW4gY29sdW1ucyB0aGUgdmFsdWUgaXMgZWl0aGVyCgkJICogdW5kZWZpbmVkIG9yIG51bGwuCgkJICogIEB0eXBlIGFycmF5IG5vZGVzCgkJICogIEBkZWZhdWx0IFtdCgkJICogIEBwcml2YXRlCgkJICovCgkJIl9hbkhpZGRlbiI6IFtdLAoJCgkJLyoqCgkJICogQ2FjaGUgb2YgdGhlIGNsYXNzIG5hbWUgdGhhdCBEYXRhVGFibGVzIGhhcyBhcHBsaWVkIHRvIHRoZSByb3csIHNvIHdlCgkJICogY2FuIHF1aWNrbHkgbG9vayBhdCB0aGlzIHZhcmlhYmxlIHJhdGhlciB0aGFuIG5lZWRpbmcgdG8gZG8gYSBET00gY2hlY2sKCQkgKiBvbiBjbGFzc05hbWUgZm9yIHRoZSBuVHIgcHJvcGVydHkuCgkJICogIEB0eXBlIHN0cmluZwoJCSAqICBAZGVmYXVsdCA8aT5FbXB0eSBzdHJpbmc8L2k+CgkJICogIEBwcml2YXRlCgkJICovCgkJIl9zUm93U3RyaXBlIjogIiIKCX07CgkKCQoJCgkvKioKCSAqIFRlbXBsYXRlIG9iamVjdCBmb3IgdGhlIGNvbHVtbiBpbmZvcm1hdGlvbiBvYmplY3QgaW4gRGF0YVRhYmxlcy4gVGhpcyBvYmplY3QKCSAqIGlzIGhlbGQgaW4gdGhlIHNldHRpbmdzIGFvQ29sdW1ucyBhcnJheSBhbmQgY29udGFpbnMgYWxsIHRoZSBpbmZvcm1hdGlvbiB0aGF0CgkgKiBEYXRhVGFibGVzIG5lZWRzIGFib3V0IGVhY2ggaW5kaXZpZHVhbCBjb2x1bW4uCgkgKiAKCSAqIE5vdGUgdGhhdCB0aGlzIG9iamVjdCBpcyByZWxhdGVkIHRvIHtAbGluayBEYXRhVGFibGUuZGVmYXVsdHMuY29sdW1uc30gCgkgKiBidXQgdGhpcyBvbmUgaXMgdGhlIGludGVybmFsIGRhdGEgc3RvcmUgZm9yIERhdGFUYWJsZXMncyBjYWNoZSBvZiBjb2x1bW5zLgoJICogSXQgc2hvdWxkIE5PVCBiZSBtYW5pcHVsYXRlZCBvdXRzaWRlIG9mIERhdGFUYWJsZXMuIEFueSBjb25maWd1cmF0aW9uIHNob3VsZAoJICogYmUgZG9uZSB0aHJvdWdoIHRoZSBpbml0aWFsaXNhdGlvbiBvcHRpb25zLgoJICogIEBuYW1lc3BhY2UKCSAqLwoJRGF0YVRhYmxlLm1vZGVscy5vQ29sdW1uID0gewoJCS8qKgoJCSAqIEEgbGlzdCBvZiB0aGUgY29sdW1ucyB0aGF0IHNvcnRpbmcgc2hvdWxkIG9jY3VyIG9uIHdoZW4gdGhpcyBjb2x1bW4KCQkgKiBpcyBzb3J0ZWQuIFRoYXQgdGhpcyBwcm9wZXJ0eSBpcyBhbiBhcnJheSBhbGxvd3MgbXVsdGktY29sdW1uIHNvcnRpbmcKCQkgKiB0byBiZSBkZWZpbmVkIGZvciBhIGNvbHVtbiAoZm9yIGV4YW1wbGUgZmlyc3QgbmFtZSAvIGxhc3QgbmFtZSBjb2x1bW5zCgkJICogd291bGQgYmVuZWZpdCBmcm9tIHRoaXMpLiBUaGUgdmFsdWVzIGFyZSBpbnRlZ2VycyBwb2ludGluZyB0byB0aGUKCQkgKiBjb2x1bW5zIHRvIGJlIHNvcnRlZCBvbiAodHlwaWNhbGx5IGl0IHdpbGwgYmUgYSBzaW5nbGUgaW50ZWdlciBwb2ludGluZwoJCSAqIGF0IGl0c2VsZiwgYnV0IHRoYXQgZG9lc24ndCBuZWVkIHRvIGJlIHRoZSBjYXNlKS4KCQkgKiAgQHR5cGUgYXJyYXkKCQkgKi8KCQkiYURhdGFTb3J0IjogbnVsbCwKCQoJCS8qKgoJCSAqIERlZmluZSB0aGUgc29ydGluZyBkaXJlY3Rpb25zIHRoYXQgYXJlIGFwcGxpZWQgdG8gdGhlIGNvbHVtbiwgaW4gc2VxdWVuY2UKCQkgKiBhcyB0aGUgY29sdW1uIGlzIHJlcGVhdGVkbHkgc29ydGVkIHVwb24gLSBpLmUuIHRoZSBmaXJzdCB2YWx1ZSBpcyB1c2VkCgkJICogYXMgdGhlIHNvcnRpbmcgZGlyZWN0aW9uIHdoZW4gdGhlIGNvbHVtbiBpZiBmaXJzdCBzb3J0ZWQgKGNsaWNrZWQgb24pLgoJCSAqIFNvcnQgaXQgYWdhaW4gKGNsaWNrIGFnYWluKSBhbmQgaXQgd2lsbCBtb3ZlIG9uIHRvIHRoZSBuZXh0IGluZGV4LgoJCSAqIFJlcGVhdCB1bnRpbCBsb29wLgoJCSAqICBAdHlwZSBhcnJheQoJCSAqLwoJCSJhc1NvcnRpbmciOiBudWxsLAoJCQoJCS8qKgoJCSAqIEZsYWcgdG8gaW5kaWNhdGUgaWYgdGhlIGNvbHVtbiBpcyBzZWFyY2hhYmxlLCBhbmQgdGh1cyBzaG91bGQgYmUgaW5jbHVkZWQKCQkgKiBpbiB0aGUgZmlsdGVyaW5nIG9yIG5vdC4KCQkgKiAgQHR5cGUgYm9vbGVhbgoJCSAqLwoJCSJiU2VhcmNoYWJsZSI6IG51bGwsCgkJCgkJLyoqCgkJICogRmxhZyB0byBpbmRpY2F0ZSBpZiB0aGUgY29sdW1uIGlzIHNvcnRhYmxlIG9yIG5vdC4KCQkgKiAgQHR5cGUgYm9vbGVhbgoJCSAqLwoJCSJiU29ydGFibGUiOiBudWxsLAoJCQoJCS8qKgoJCSAqIFdoZW4gdXNpbmcgZm5SZW5kZXIsIHlvdSBoYXZlIHR3byBvcHRpb25zIGZvciB3aGF0IHRvIGRvIHdpdGggdGhlIGRhdGEsCgkJICogYW5kIHRoaXMgcHJvcGVydHkgc2VydmVzIGFzIHRoZSBzd2l0Y2guIEZpcnN0bHksIHlvdSBjYW4gaGF2ZSB0aGUgc29ydGluZwoJCSAqIGFuZCBmaWx0ZXJpbmcgdXNlIHRoZSByZW5kZXJlZCB2YWx1ZSAodHJ1ZSAtIGRlZmF1bHQpLCBvciB5b3UgY2FuIGhhdmUKCQkgKiB0aGUgc29ydGluZyBhbmQgZmlsdGVyaW5nIHVzIHRoZSBvcmlnaW5hbCB2YWx1ZSAoZmFsc2UpLgoJCSAqIAoJCSAqICpOT1RFKiBJdCBpcyBpdCBpcyBhZHZpc2FibGUgbm93IHRvIHVzZSBtRGF0YSBhcyBhIGZ1bmN0aW9uIGFuZCBtYWtlIAoJCSAqIHVzZSBvZiB0aGUgJ3R5cGUnIHRoYXQgaXQgZ2l2ZXMsIGFsbG93aW5nIChwb3RlbnRpYWxseSkgZGlmZmVyZW50IGRhdGEgdG8KCQkgKiBiZSB1c2VkIGZvciBzb3J0aW5nLCBmaWx0ZXJpbmcsIGRpc3BsYXkgYW5kIHR5cGUgZGV0ZWN0aW9uLgoJCSAqICBAdHlwZSBib29sZWFuCgkJICogIEBkZXByZWNhdGVkCgkJICovCgkJImJVc2VSZW5kZXJlZCI6IG51bGwsCgkJCgkJLyoqCgkJICogRmxhZyB0byBpbmRpY2F0ZSBpZiB0aGUgY29sdW1uIGlzIGN1cnJlbnRseSB2aXNpYmxlIGluIHRoZSB0YWJsZSBvciBub3QKCQkgKiAgQHR5cGUgYm9vbGVhbgoJCSAqLwoJCSJiVmlzaWJsZSI6IG51bGwsCgkJCgkJLyoqCgkJICogRmxhZyB0byBpbmRpY2F0ZSB0byB0aGUgdHlwZSBkZXRlY3Rpb24gbWV0aG9kIGlmIHRoZSBhdXRvbWF0aWMgdHlwZQoJCSAqIGRldGVjdGlvbiBzaG91bGQgYmUgdXNlZCwgb3IgaWYgYSBjb2x1bW4gdHlwZSAoc1R5cGUpIGhhcyBiZWVuIHNwZWNpZmllZAoJCSAqICBAdHlwZSBib29sZWFuCgkJICogIEBkZWZhdWx0IHRydWUKCQkgKiAgQHByaXZhdGUKCQkgKi8KCQkiX2JBdXRvVHlwZSI6IHRydWUsCgkJCgkJLyoqCgkJICogRGV2ZWxvcGVyIGRlZmluYWJsZSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB3aGVuZXZlciBhIGNlbGwgaXMgY3JlYXRlZCAoQWpheCBzb3VyY2UsCgkJICogZXRjKSBvciBwcm9jZXNzZWQgZm9yIGlucHV0IChET00gc291cmNlKS4gVGhpcyBjYW4gYmUgdXNlZCBhcyBhIGNvbXBsaW1lbnQgdG8gZm5SZW5kZXIKCQkgKiBhbGxvd2luZyB5b3UgdG8gbW9kaWZ5IHRoZSBET00gZWxlbWVudCAoYWRkIGJhY2tncm91bmQgY29sb3VyIGZvciBleGFtcGxlKSB3aGVuIHRoZQoJCSAqIGVsZW1lbnQgaXMgYXZhaWxhYmxlIChzaW5jZSBpdCBpcyBub3Qgd2hlbiBmblJlbmRlciBpcyBjYWxsZWQpLgoJCSAqICBAdHlwZSBmdW5jdGlvbgoJCSAqICBAcGFyYW0ge2VsZW1lbnR9IG5UZCBUaGUgVEQgbm9kZSB0aGF0IGhhcyBiZWVuIGNyZWF0ZWQKCQkgKiAgQHBhcmFtIHsqfSBzRGF0YSBUaGUgRGF0YSBmb3IgdGhlIGNlbGwKCQkgKiAgQHBhcmFtIHthcnJheXxvYmplY3R9IG9EYXRhIFRoZSBkYXRhIGZvciB0aGUgd2hvbGUgcm93CgkJICogIEBwYXJhbSB7aW50fSBpUm93IFRoZSByb3cgaW5kZXggZm9yIHRoZSBhb0RhdGEgZGF0YSBzdG9yZQoJCSAqICBAZGVmYXVsdCBudWxsCgkJICovCgkJImZuQ3JlYXRlZENlbGwiOiBudWxsLAoJCQoJCS8qKgoJCSAqIEZ1bmN0aW9uIHRvIGdldCBkYXRhIGZyb20gYSBjZWxsIGluIGEgY29sdW1uLiBZb3Ugc2hvdWxkIDxiPm5ldmVyPC9iPgoJCSAqIGFjY2VzcyBkYXRhIGRpcmVjdGx5IHRocm91Z2ggX2FEYXRhIGludGVybmFsbHkgaW4gRGF0YVRhYmxlcyAtIGFsd2F5cyB1c2UKCQkgKiB0aGUgbWV0aG9kIGF0dGFjaGVkIHRvIHRoaXMgcHJvcGVydHkuIEl0IGFsbG93cyBtRGF0YSB0byBmdW5jdGlvbiBhcwoJCSAqIHJlcXVpcmVkLiBUaGlzIGZ1bmN0aW9uIGlzIGF1dG9tYXRpY2FsbHkgYXNzaWduZWQgYnkgdGhlIGNvbHVtbiAKCQkgKiBpbml0aWFsaXNhdGlvbiBtZXRob2QKCQkgKiAgQHR5cGUgZnVuY3Rpb24KCQkgKiAgQHBhcmFtIHthcnJheXxvYmplY3R9IG9EYXRhIFRoZSBkYXRhIGFycmF5L29iamVjdCBmb3IgdGhlIGFycmF5IAoJCSAqICAgIChpLmUuIGFvRGF0YVtdLl9hRGF0YSkKCQkgKiAgQHBhcmFtIHtzdHJpbmd9IHNTcGVjaWZpYyBUaGUgc3BlY2lmaWMgZGF0YSB0eXBlIHlvdSB3YW50IHRvIGdldCAtIAoJCSAqICAgICdkaXNwbGF5JywgJ3R5cGUnICdmaWx0ZXInICdzb3J0JwoJCSAqICBAcmV0dXJucyB7Kn0gVGhlIGRhdGEgZm9yIHRoZSBjZWxsIGZyb20gdGhlIGdpdmVuIHJvdydzIGRhdGEKCQkgKiAgQGRlZmF1bHQgbnVsbAoJCSAqLwoJCSJmbkdldERhdGEiOiBudWxsLAoJCQoJCS8qKgoJCSAqIEN1c3RvbSBkaXNwbGF5IGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgZm9yIHRoZSBkaXNwbGF5IG9mIGVhY2ggY2VsbCAKCQkgKiBpbiB0aGlzIGNvbHVtbi4KCQkgKiAgQHR5cGUgZnVuY3Rpb24KCQkgKiAgQHBhcmFtIHtvYmplY3R9IG8gT2JqZWN0IHdpdGggdGhlIGZvbGxvd2luZyBwYXJhbWV0ZXJzOgoJCSAqICBAcGFyYW0ge2ludH0gICAgby5pRGF0YVJvdyBUaGUgcm93IGluIGFvRGF0YQoJCSAqICBAcGFyYW0ge2ludH0gICAgby5pRGF0YUNvbHVtbiBUaGUgY29sdW1uIGluIHF1ZXN0aW9uCgkJICogIEBwYXJhbSB7YXJyYXl9ICBvLmFEYXRhIFRoZSBkYXRhIGZvciB0aGUgcm93IGluIHF1ZXN0aW9uCgkJICogIEBwYXJhbSB7b2JqZWN0fSBvLm9TZXR0aW5ncyBUaGUgc2V0dGluZ3Mgb2JqZWN0IGZvciB0aGlzIERhdGFUYWJsZXMgaW5zdGFuY2UKCQkgKiAgQHJldHVybnMge3N0cmluZ30gVGhlIHN0cmluZyB5b3Ugd2hpY2ggdG8gdXNlIGluIHRoZSBkaXNwbGF5CgkJICogIEBkZWZhdWx0IG51bGwKCQkgKi8KCQkiZm5SZW5kZXIiOiBudWxsLAoJCQoJCS8qKgoJCSAqIEZ1bmN0aW9uIHRvIHNldCBkYXRhIGZvciBhIGNlbGwgaW4gdGhlIGNvbHVtbi4gWW91IHNob3VsZCA8Yj5uZXZlcjwvYj4gCgkJICogc2V0IHRoZSBkYXRhIGRpcmVjdGx5IHRvIF9hRGF0YSBpbnRlcm5hbGx5IGluIERhdGFUYWJsZXMgLSBhbHdheXMgdXNlCgkJICogdGhpcyBtZXRob2QuIEl0IGFsbG93cyBtRGF0YSB0byBmdW5jdGlvbiBhcyByZXF1aXJlZC4gVGhpcyBmdW5jdGlvbgoJCSAqIGlzIGF1dG9tYXRpY2FsbHkgYXNzaWduZWQgYnkgdGhlIGNvbHVtbiBpbml0aWFsaXNhdGlvbiBtZXRob2QKCQkgKiAgQHR5cGUgZnVuY3Rpb24KCQkgKiAgQHBhcmFtIHthcnJheXxvYmplY3R9IG9EYXRhIFRoZSBkYXRhIGFycmF5L29iamVjdCBmb3IgdGhlIGFycmF5IAoJCSAqICAgIChpLmUuIGFvRGF0YVtdLl9hRGF0YSkKCQkgKiAgQHBhcmFtIHsqfSBzVmFsdWUgVmFsdWUgdG8gc2V0CgkJICogIEBkZWZhdWx0IG51bGwKCQkgKi8KCQkiZm5TZXREYXRhIjogbnVsbCwKCQkKCQkvKioKCQkgKiBQcm9wZXJ0eSB0byByZWFkIHRoZSB2YWx1ZSBmb3IgdGhlIGNlbGxzIGluIHRoZSBjb2x1bW4gZnJvbSB0aGUgZGF0YSAKCQkgKiBzb3VyY2UgYXJyYXkgLyBvYmplY3QuIElmIG51bGwsIHRoZW4gdGhlIGRlZmF1bHQgY29udGVudCBpcyB1c2VkLCBpZiBhCgkJICogZnVuY3Rpb24gaXMgZ2l2ZW4gdGhlbiB0aGUgcmV0dXJuIGZyb20gdGhlIGZ1bmN0aW9uIGlzIHVzZWQuCgkJICogIEB0eXBlIGZ1bmN0aW9ufGludHxzdHJpbmd8bnVsbAoJCSAqICBAZGVmYXVsdCBudWxsCgkJICovCgkJIm1EYXRhIjogbnVsbCwKCQkKCQkvKioKCQkgKiBQYXJ0bmVyIHByb3BlcnR5IHRvIG1EYXRhIHdoaWNoIGlzIHVzZWQgKG9ubHkgd2hlbiBkZWZpbmVkKSB0byBnZXQKCQkgKiB0aGUgZGF0YSAtIGkuZS4gaXQgaXMgYmFzaWNhbGx5IHRoZSBzYW1lIGFzIG1EYXRhLCBidXQgd2l0aG91dCB0aGUKCQkgKiAnc2V0JyBvcHRpb24sIGFuZCBhbHNvIHRoZSBkYXRhIGZlZCB0byBpdCBpcyB0aGUgcmVzdWx0IGZyb20gbURhdGEuCgkJICogVGhpcyBpcyB0aGUgcmVuZGVyaW5nIG1ldGhvZCB0byBtYXRjaCB0aGUgZGF0YSBtZXRob2Qgb2YgbURhdGEuCgkJICogIEB0eXBlIGZ1bmN0aW9ufGludHxzdHJpbmd8bnVsbAoJCSAqICBAZGVmYXVsdCBudWxsCgkJICovCgkJIm1SZW5kZXIiOiBudWxsLAoJCQoJCS8qKgoJCSAqIFVuaXF1ZSBoZWFkZXIgVEgvVEQgZWxlbWVudCBmb3IgdGhpcyBjb2x1bW4gLSB0aGlzIGlzIHdoYXQgdGhlIHNvcnRpbmcKCQkgKiBsaXN0ZW5lciBpcyBhdHRhY2hlZCB0byAoaWYgc29ydGluZyBpcyBlbmFibGVkLikKCQkgKiAgQHR5cGUgbm9kZQoJCSAqICBAZGVmYXVsdCBudWxsCgkJICovCgkJIm5UaCI6IG51bGwsCgkJCgkJLyoqCgkJICogVW5pcXVlIGZvb3RlciBUSC9URCBlbGVtZW50IGZvciB0aGlzIGNvbHVtbiAoaWYgdGhlcmUgaXMgb25lKS4gTm90IHVzZWQgCgkJICogaW4gRGF0YVRhYmxlcyBhcyBzdWNoLCBidXQgY2FuIGJlIHVzZWQgZm9yIHBsdWctaW5zIHRvIHJlZmVyZW5jZSB0aGUgCgkJICogZm9vdGVyIGZvciBlYWNoIGNvbHVtbi4KCQkgKiAgQHR5cGUgbm9kZQoJCSAqICBAZGVmYXVsdCBudWxsCgkJICovCgkJIm5UZiI6IG51bGwsCgkJCgkJLyoqCgkJICogVGhlIGNsYXNzIHRvIGFwcGx5IHRvIGFsbCBURCBlbGVtZW50cyBpbiB0aGUgdGFibGUncyBUQk9EWSBmb3IgdGhlIGNvbHVtbgoJCSAqICBAdHlwZSBzdHJpbmcKCQkgKiAgQGRlZmF1bHQgbnVsbAoJCSAqLwoJCSJzQ2xhc3MiOiBudWxsLAoJCQoJCS8qKgoJCSAqIFdoZW4gRGF0YVRhYmxlcyBjYWxjdWxhdGVzIHRoZSBjb2x1bW4gd2lkdGhzIHRvIGFzc2lnbiB0byBlYWNoIGNvbHVtbiwKCQkgKiBpdCBmaW5kcyB0aGUgbG9uZ2VzdCBzdHJpbmcgaW4gZWFjaCBjb2x1bW4gYW5kIHRoZW4gY29uc3RydWN0cyBhCgkJICogdGVtcG9yYXJ5IHRhYmxlIGFuZCByZWFkcyB0aGUgd2lkdGhzIGZyb20gdGhhdC4gVGhlIHByb2JsZW0gd2l0aCB0aGlzCgkJICogaXMgdGhhdCAibW1tIiBpcyBtdWNoIHdpZGVyIHRoZW4gImlpaWkiLCBidXQgdGhlIGxhdHRlciBpcyBhIGxvbmdlciAKCQkgKiBzdHJpbmcgLSB0aHVzIHRoZSBjYWxjdWxhdGlvbiBjYW4gZ28gd3JvbmcgKGRvaW5nIGl0IHByb3Blcmx5IGFuZCBwdXR0aW5nCgkJICogaXQgaW50byBhbiBET00gb2JqZWN0IGFuZCBtZWFzdXJpbmcgdGhhdCBpcyBob3JyaWJseSghKSBzbG93KS4gVGh1cyBhcwoJCSAqIGEgIndvcmsgYXJvdW5kIiB3ZSBwcm92aWRlIHRoaXMgb3B0aW9uLiBJdCB3aWxsIGFwcGVuZCBpdHMgdmFsdWUgdG8gdGhlCgkJICogdGV4dCB0aGF0IGlzIGZvdW5kIHRvIGJlIHRoZSBsb25nZXN0IHN0cmluZyBmb3IgdGhlIGNvbHVtbiAtIGkuZS4gcGFkZGluZy4KCQkgKiAgQHR5cGUgc3RyaW5nCgkJICovCgkJInNDb250ZW50UGFkZGluZyI6IG51bGwsCgkJCgkJLyoqCgkJICogQWxsb3dzIGEgZGVmYXVsdCB2YWx1ZSB0byBiZSBnaXZlbiBmb3IgYSBjb2x1bW4ncyBkYXRhLCBhbmQgd2lsbCBiZSB1c2VkCgkJICogd2hlbmV2ZXIgYSBudWxsIGRhdGEgc291cmNlIGlzIGVuY291bnRlcmVkICh0aGlzIGNhbiBiZSBiZWNhdXNlIG1EYXRhCgkJICogaXMgc2V0IHRvIG51bGwsIG9yIGJlY2F1c2UgdGhlIGRhdGEgc291cmNlIGl0c2VsZiBpcyBudWxsKS4KCQkgKiAgQHR5cGUgc3RyaW5nCgkJICogIEBkZWZhdWx0IG51bGwKCQkgKi8KCQkic0RlZmF1bHRDb250ZW50IjogbnVsbCwKCQkKCQkvKioKCQkgKiBOYW1lIGZvciB0aGUgY29sdW1uLCBhbGxvd2luZyByZWZlcmVuY2UgdG8gdGhlIGNvbHVtbiBieSBuYW1lIGFzIHdlbGwgYXMKCQkgKiBieSBpbmRleCAobmVlZHMgYSBsb29rdXAgdG8gd29yayBieSBuYW1lKS4KCQkgKiAgQHR5cGUgc3RyaW5nCgkJICovCgkJInNOYW1lIjogbnVsbCwKCQkKCQkvKioKCQkgKiBDdXN0b20gc29ydGluZyBkYXRhIHR5cGUgLSBkZWZpbmVzIHdoaWNoIG9mIHRoZSBhdmFpbGFibGUgcGx1Zy1pbnMgaW4KCQkgKiBhZm5Tb3J0RGF0YSB0aGUgY3VzdG9tIHNvcnRpbmcgd2lsbCB1c2UgLSBpZiBhbnkgaXMgZGVmaW5lZC4KCQkgKiAgQHR5cGUgc3RyaW5nCgkJICogIEBkZWZhdWx0IHN0ZAoJCSAqLwoJCSJzU29ydERhdGFUeXBlIjogJ3N0ZCcsCgkJCgkJLyoqCgkJICogQ2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGUgaGVhZGVyIGVsZW1lbnQgd2hlbiBzb3J0aW5nIG9uIHRoaXMgY29sdW1uCgkJICogIEB0eXBlIHN0cmluZwoJCSAqICBAZGVmYXVsdCBudWxsCgkJICovCgkJInNTb3J0aW5nQ2xhc3MiOiBudWxsLAoJCQoJCS8qKgoJCSAqIENsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGhlYWRlciBlbGVtZW50IHdoZW4gc29ydGluZyBvbiB0aGlzIGNvbHVtbiAtCgkJICogd2hlbiBqUXVlcnkgVUkgdGhlbWluZyBpcyB1c2VkLgoJCSAqICBAdHlwZSBzdHJpbmcKCQkgKiAgQGRlZmF1bHQgbnVsbAoJCSAqLwoJCSJzU29ydGluZ0NsYXNzSlVJIjogbnVsbCwKCQkKCQkvKioKCQkgKiBUaXRsZSBvZiB0aGUgY29sdW1uIC0gd2hhdCBpcyBzZWVuIGluIHRoZSBUSCBlbGVtZW50IChuVGgpLgoJCSAqICBAdHlwZSBzdHJpbmcKCQkgKi8KCQkic1RpdGxlIjogbnVsbCwKCQkKCQkvKioKCQkgKiBDb2x1bW4gc29ydGluZyBhbmQgZmlsdGVyaW5nIHR5cGUKCQkgKiAgQHR5cGUgc3RyaW5nCgkJICogIEBkZWZhdWx0IG51bGwKCQkgKi8KCQkic1R5cGUiOiBudWxsLAoJCQoJCS8qKgoJCSAqIFdpZHRoIG9mIHRoZSBjb2x1bW4KCQkgKiAgQHR5cGUgc3RyaW5nCgkJICogIEBkZWZhdWx0IG51bGwKCQkgKi8KCQkic1dpZHRoIjogbnVsbCwKCQkKCQkvKioKCQkgKiBXaWR0aCBvZiB0aGUgY29sdW1uIHdoZW4gaXQgd2FzIGZpcnN0ICJlbmNvdW50ZXJlZCIKCQkgKiAgQHR5cGUgc3RyaW5nCgkJICogIEBkZWZhdWx0IG51bGwKCQkgKi8KCQkic1dpZHRoT3JpZyI6IG51bGwKCX07CgkKCQoJCgkvKioKCSAqIEluaXRpYWxpc2F0aW9uIG9wdGlvbnMgdGhhdCBjYW4gYmUgZ2l2ZW4gdG8gRGF0YVRhYmxlcyBhdCBpbml0aWFsaXNhdGlvbiAKCSAqIHRpbWUuCgkgKiAgQG5hbWVzcGFjZQoJICovCglEYXRhVGFibGUuZGVmYXVsdHMgPSB7CgkJLyoqCgkJICogQW4gYXJyYXkgb2YgZGF0YSB0byB1c2UgZm9yIHRoZSB0YWJsZSwgcGFzc2VkIGluIGF0IGluaXRpYWxpc2F0aW9uIHdoaWNoIAoJCSAqIHdpbGwgYmUgdXNlZCBpbiBwcmVmZXJlbmNlIHRvIGFueSBkYXRhIHdoaWNoIGlzIGFscmVhZHkgaW4gdGhlIERPTS4gVGhpcyBpcwoJCSAqIHBhcnRpY3VsYXJseSB1c2VmdWwgZm9yIGNvbnN0cnVjdGluZyB0YWJsZXMgcHVyZWx5IGluIEphdmFzY3JpcHQsIGZvcgoJCSAqIGV4YW1wbGUgd2l0aCBhIGN1c3RvbSBBamF4IGNhbGwuCgkJICogIEB0eXBlIGFycmF5CgkJICogIEBkZWZhdWx0IG51bGwKCQkgKiAgQGR0b3B0IE9wdGlvbgoJCSAqIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgIC8vIFVzaW5nIGEgMkQgYXJyYXkgZGF0YSBzb3VyY2UKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgImFhRGF0YSI6IFsKCQkgKiAgICAgICAgICBbJ1RyaWRlbnQnLCAnSW50ZXJuZXQgRXhwbG9yZXIgNC4wJywgJ1dpbiA5NSsnLCA0LCAnWCddLAoJCSAqICAgICAgICAgIFsnVHJpZGVudCcsICdJbnRlcm5ldCBFeHBsb3JlciA1LjAnLCAnV2luIDk1KycsIDUsICdDJ10sCgkJICogICAgICAgIF0sCgkJICogICAgICAgICJhb0NvbHVtbnMiOiBbCgkJICogICAgICAgICAgeyAic1RpdGxlIjogIkVuZ2luZSIgfSwKCQkgKiAgICAgICAgICB7ICJzVGl0bGUiOiAiQnJvd3NlciIgfSwKCQkgKiAgICAgICAgICB7ICJzVGl0bGUiOiAiUGxhdGZvcm0iIH0sCgkJICogICAgICAgICAgeyAic1RpdGxlIjogIlZlcnNpb24iIH0sCgkJICogICAgICAgICAgeyAic1RpdGxlIjogIkdyYWRlIiB9CgkJICogICAgICAgIF0KCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICogICAgCgkJICogIEBleGFtcGxlCgkJICogICAgLy8gVXNpbmcgYW4gYXJyYXkgb2Ygb2JqZWN0cyBhcyBhIGRhdGEgc291cmNlIChtRGF0YSkKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgImFhRGF0YSI6IFsKCQkgKiAgICAgICAgICB7CgkJICogICAgICAgICAgICAiZW5naW5lIjogICAiVHJpZGVudCIsCgkJICogICAgICAgICAgICAiYnJvd3NlciI6ICAiSW50ZXJuZXQgRXhwbG9yZXIgNC4wIiwKCQkgKiAgICAgICAgICAgICJwbGF0Zm9ybSI6ICJXaW4gOTUrIiwKCQkgKiAgICAgICAgICAgICJ2ZXJzaW9uIjogIDQsCgkJICogICAgICAgICAgICAiZ3JhZGUiOiAgICAiWCIKCQkgKiAgICAgICAgICB9LAoJCSAqICAgICAgICAgIHsKCQkgKiAgICAgICAgICAgICJlbmdpbmUiOiAgICJUcmlkZW50IiwKCQkgKiAgICAgICAgICAgICJicm93c2VyIjogICJJbnRlcm5ldCBFeHBsb3JlciA1LjAiLAoJCSAqICAgICAgICAgICAgInBsYXRmb3JtIjogIldpbiA5NSsiLAoJCSAqICAgICAgICAgICAgInZlcnNpb24iOiAgNSwKCQkgKiAgICAgICAgICAgICJncmFkZSI6ICAgICJDIgoJCSAqICAgICAgICAgIH0KCQkgKiAgICAgICAgXSwKCQkgKiAgICAgICAgImFvQ29sdW1ucyI6IFsKCQkgKiAgICAgICAgICB7ICJzVGl0bGUiOiAiRW5naW5lIiwgICAibURhdGEiOiAiZW5naW5lIiB9LAoJCSAqICAgICAgICAgIHsgInNUaXRsZSI6ICJCcm93c2VyIiwgICJtRGF0YSI6ICJicm93c2VyIiB9LAoJCSAqICAgICAgICAgIHsgInNUaXRsZSI6ICJQbGF0Zm9ybSIsICJtRGF0YSI6ICJwbGF0Zm9ybSIgfSwKCQkgKiAgICAgICAgICB7ICJzVGl0bGUiOiAiVmVyc2lvbiIsICAibURhdGEiOiAidmVyc2lvbiIgfSwKCQkgKiAgICAgICAgICB7ICJzVGl0bGUiOiAiR3JhZGUiLCAgICAibURhdGEiOiAiZ3JhZGUiIH0KCQkgKiAgICAgICAgXQoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKTsKCQkgKi8KCQkiYWFEYXRhIjogbnVsbCwKCQoJCgkJLyoqCgkJICogSWYgc29ydGluZyBpcyBlbmFibGVkLCB0aGVuIERhdGFUYWJsZXMgd2lsbCBwZXJmb3JtIGEgZmlyc3QgcGFzcyBzb3J0IG9uIAoJCSAqIGluaXRpYWxpc2F0aW9uLiBZb3UgY2FuIGRlZmluZSB3aGljaCBjb2x1bW4ocykgdGhlIHNvcnQgaXMgcGVyZm9ybWVkIHVwb24sIAoJCSAqIGFuZCB0aGUgc29ydGluZyBkaXJlY3Rpb24sIHdpdGggdGhpcyB2YXJpYWJsZS4gVGhlIGFhU29ydGluZyBhcnJheSBzaG91bGQgCgkJICogY29udGFpbiBhbiBhcnJheSBmb3IgZWFjaCBjb2x1bW4gdG8gYmUgc29ydGVkIGluaXRpYWxseSBjb250YWluaW5nIHRoZSAKCQkgKiBjb2x1bW4ncyBpbmRleCBhbmQgYSBkaXJlY3Rpb24gc3RyaW5nICgnYXNjJyBvciAnZGVzYycpLgoJCSAqICBAdHlwZSBhcnJheQoJCSAqICBAZGVmYXVsdCBbWzAsJ2FzYyddXQoJCSAqICBAZHRvcHQgT3B0aW9uCgkJICogCgkJICogIEBleGFtcGxlCgkJICogICAgLy8gU29ydCBieSAzcmQgY29sdW1uIGZpcnN0LCBhbmQgdGhlbiA0dGggY29sdW1uCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgImFhU29ydGluZyI6IFtbMiwnYXNjJ10sIFszLCdkZXNjJ11dCgkJICogICAgICB9ICk7CgkJICogICAgfSApOwoJCSAqICAgIAoJCSAqICAgIC8vIE5vIGluaXRpYWwgc29ydGluZwoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJhYVNvcnRpbmciOiBbXQoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKTsKCQkgKi8KCQkiYWFTb3J0aW5nIjogW1swLCdhc2MnXV0sCgkKCQoJCS8qKgoJCSAqIFRoaXMgcGFyYW1ldGVyIGlzIGJhc2ljYWxseSBpZGVudGljYWwgdG8gdGhlIGFhU29ydGluZyBwYXJhbWV0ZXIsIGJ1dCAKCQkgKiBjYW5ub3QgYmUgb3ZlcnJpZGRlbiBieSB1c2VyIGludGVyYWN0aW9uIHdpdGggdGhlIHRhYmxlLiBXaGF0IHRoaXMgbWVhbnMgCgkJICogaXMgdGhhdCB5b3UgY291bGQgaGF2ZSBhIGNvbHVtbiAodmlzaWJsZSBvciBoaWRkZW4pIHdoaWNoIHRoZSBzb3J0aW5nIHdpbGwgCgkJICogYWx3YXlzIGJlIGZvcmNlZCBvbiBmaXJzdCAtIGFueSBzb3J0aW5nIGFmdGVyIHRoYXQgKGZyb20gdGhlIHVzZXIpIHdpbGwgCgkJICogdGhlbiBiZSBwZXJmb3JtZWQgYXMgcmVxdWlyZWQuIFRoaXMgY2FuIGJlIHVzZWZ1bCBmb3IgZ3JvdXBpbmcgcm93cyAKCQkgKiB0b2dldGhlci4KCQkgKiAgQHR5cGUgYXJyYXkKCQkgKiAgQGRlZmF1bHQgbnVsbAoJCSAqICBAZHRvcHQgT3B0aW9uCgkJICogCgkJICogIEBleGFtcGxlCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgImFhU29ydGluZ0ZpeGVkIjogW1swLCdhc2MnXV0KCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICkKCQkgKi8KCQkiYWFTb3J0aW5nRml4ZWQiOiBudWxsLAoJCgkKCQkvKioKCQkgKiBUaGlzIHBhcmFtZXRlciBhbGxvd3MgeW91IHRvIHJlYWRpbHkgc3BlY2lmeSB0aGUgZW50cmllcyBpbiB0aGUgbGVuZ3RoIGRyb3AKCQkgKiBkb3duIG1lbnUgdGhhdCBEYXRhVGFibGVzIHNob3dzIHdoZW4gcGFnaW5hdGlvbiBpcyBlbmFibGVkLiBJdCBjYW4gYmUgCgkJICogZWl0aGVyIGEgMUQgYXJyYXkgb2Ygb3B0aW9ucyB3aGljaCB3aWxsIGJlIHVzZWQgZm9yIGJvdGggdGhlIGRpc3BsYXllZCAKCQkgKiBvcHRpb24gYW5kIHRoZSB2YWx1ZSwgb3IgYSAyRCBhcnJheSB3aGljaCB3aWxsIHVzZSB0aGUgYXJyYXkgaW4gdGhlIGZpcnN0IAoJCSAqIHBvc2l0aW9uIGFzIHRoZSB2YWx1ZSwgYW5kIHRoZSBhcnJheSBpbiB0aGUgc2Vjb25kIHBvc2l0aW9uIGFzIHRoZSAKCQkgKiBkaXNwbGF5ZWQgb3B0aW9ucyAodXNlZnVsIGZvciBsYW5ndWFnZSBzdHJpbmdzIHN1Y2ggYXMgJ0FsbCcpLgoJCSAqICBAdHlwZSBhcnJheQoJCSAqICBAZGVmYXVsdCBbIDEwLCAyNSwgNTAsIDEwMCBdCgkJICogIEBkdG9wdCBPcHRpb24KCQkgKiAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAiYUxlbmd0aE1lbnUiOiBbWzEwLCAyNSwgNTAsIC0xXSwgWzEwLCAyNSwgNTAsICJBbGwiXV0KCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICogIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgIC8vIFNldHRpbmcgdGhlIGRlZmF1bHQgZGlzcGxheSBsZW5ndGggYXMgd2VsbCBhcyBsZW5ndGggbWVudQoJCSAqICAgIC8vIFRoaXMgaXMgbGlrZWx5IHRvIGJlIHdhbnRlZCBpZiB5b3UgcmVtb3ZlIHRoZSAnMTAnIG9wdGlvbiB3aGljaAoJCSAqICAgIC8vIGlzIHRoZSBpRGlzcGxheUxlbmd0aCBkZWZhdWx0LgoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJpRGlzcGxheUxlbmd0aCI6IDI1LAoJCSAqICAgICAgICAiYUxlbmd0aE1lbnUiOiBbWzI1LCA1MCwgMTAwLCAtMV0sIFsyNSwgNTAsIDEwMCwgIkFsbCJdXQoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKTsKCQkgKi8KCQkiYUxlbmd0aE1lbnUiOiBbIDEwLCAyNSwgNTAsIDEwMCBdLAoJCgkKCQkvKioKCQkgKiBUaGUgYW9Db2x1bW5zIG9wdGlvbiBpbiB0aGUgaW5pdGlhbGlzYXRpb24gcGFyYW1ldGVyIGFsbG93cyB5b3UgdG8gZGVmaW5lCgkJICogZGV0YWlscyBhYm91dCB0aGUgd2F5IGluZGl2aWR1YWwgY29sdW1ucyBiZWhhdmUuIEZvciBhIGZ1bGwgbGlzdCBvZgoJCSAqIGNvbHVtbiBvcHRpb25zIHRoYXQgY2FuIGJlIHNldCwgcGxlYXNlIHNlZSAKCQkgKiB7QGxpbmsgRGF0YVRhYmxlLmRlZmF1bHRzLmNvbHVtbnN9LiBOb3RlIHRoYXQgaWYgeW91IHVzZSBhb0NvbHVtbnMgdG8KCQkgKiBkZWZpbmUgeW91ciBjb2x1bW5zLCB5b3UgbXVzdCBoYXZlIGFuIGVudHJ5IGluIHRoZSBhcnJheSBmb3IgZXZlcnkgc2luZ2xlCgkJICogY29sdW1uIHRoYXQgeW91IGhhdmUgaW4geW91ciB0YWJsZSAodGhlc2UgY2FuIGJlIG51bGwgaWYgeW91IGRvbid0IHdoaWNoCgkJICogdG8gc3BlY2lmeSBhbnkgb3B0aW9ucykuCgkJICogIEBtZW1iZXIKCQkgKi8KCQkiYW9Db2x1bW5zIjogbnVsbCwKCQoJCS8qKgoJCSAqIFZlcnkgc2ltaWxhciB0byBhb0NvbHVtbnMsIGFvQ29sdW1uRGVmcyBhbGxvd3MgeW91IHRvIHRhcmdldCBhIHNwZWNpZmljIAoJCSAqIGNvbHVtbiwgbXVsdGlwbGUgY29sdW1ucywgb3IgYWxsIGNvbHVtbnMsIHVzaW5nIHRoZSBhVGFyZ2V0cyBwcm9wZXJ0eSBvZiAKCQkgKiBlYWNoIG9iamVjdCBpbiB0aGUgYXJyYXkuIFRoaXMgYWxsb3dzIGdyZWF0IGZsZXhpYmlsaXR5IHdoZW4gY3JlYXRpbmcgCgkJICogdGFibGVzLCBhcyB0aGUgYW9Db2x1bW5EZWZzIGFycmF5cyBjYW4gYmUgb2YgYW55IGxlbmd0aCwgdGFyZ2V0aW5nIHRoZSAKCQkgKiBjb2x1bW5zIHlvdSBzcGVjaWZpY2FsbHkgd2FudC4gYW9Db2x1bW5EZWZzIG1heSB1c2UgYW55IG9mIHRoZSBjb2x1bW4gCgkJICogb3B0aW9ucyBhdmFpbGFibGU6IHtAbGluayBEYXRhVGFibGUuZGVmYXVsdHMuY29sdW1uc30sIGJ1dCBpdCBfbXVzdF8KCQkgKiBoYXZlIGFUYXJnZXRzIGRlZmluZWQgaW4gZWFjaCBvYmplY3QgaW4gdGhlIGFycmF5LiBWYWx1ZXMgaW4gdGhlIGFUYXJnZXRzCgkJICogYXJyYXkgbWF5IGJlOgoJCSAqICAgPHVsPgoJCSAqICAgICA8bGk+YSBzdHJpbmcgLSBjbGFzcyBuYW1lIHdpbGwgYmUgbWF0Y2hlZCBvbiB0aGUgVEggZm9yIHRoZSBjb2x1bW48L2xpPgoJCSAqICAgICA8bGk+MCBvciBhIHBvc2l0aXZlIGludGVnZXIgLSBjb2x1bW4gaW5kZXggY291bnRpbmcgZnJvbSB0aGUgbGVmdDwvbGk+CgkJICogICAgIDxsaT5hIG5lZ2F0aXZlIGludGVnZXIgLSBjb2x1bW4gaW5kZXggY291bnRpbmcgZnJvbSB0aGUgcmlnaHQ8L2xpPgoJCSAqICAgICA8bGk+dGhlIHN0cmluZyAiX2FsbCIgLSBhbGwgY29sdW1ucyAoaS5lLiBhc3NpZ24gYSBkZWZhdWx0KTwvbGk+CgkJICogICA8L3VsPgoJCSAqICBAbWVtYmVyCgkJICovCgkJImFvQ29sdW1uRGVmcyI6IG51bGwsCgkKCQoJCS8qKgoJCSAqIEJhc2ljYWxseSB0aGUgc2FtZSBhcyBvU2VhcmNoLCB0aGlzIHBhcmFtZXRlciBkZWZpbmVzIHRoZSBpbmRpdmlkdWFsIGNvbHVtbgoJCSAqIGZpbHRlcmluZyBzdGF0ZSBhdCBpbml0aWFsaXNhdGlvbiB0aW1lLiBUaGUgYXJyYXkgbXVzdCBiZSBvZiB0aGUgc2FtZSBzaXplIAoJCSAqIGFzIHRoZSBudW1iZXIgb2YgY29sdW1ucywgYW5kIGVhY2ggZWxlbWVudCBiZSBhbiBvYmplY3Qgd2l0aCB0aGUgcGFyYW1ldGVycwoJCSAqICJzU2VhcmNoIiBhbmQgImJFc2NhcGVSZWdleCIgKHRoZSBsYXR0ZXIgaXMgb3B0aW9uYWwpLiAnbnVsbCcgaXMgYWxzbwoJCSAqIGFjY2VwdGVkIGFuZCB0aGUgZGVmYXVsdCB3aWxsIGJlIHVzZWQuCgkJICogIEB0eXBlIGFycmF5CgkJICogIEBkZWZhdWx0IFtdCgkJICogIEBkdG9wdCBPcHRpb24KCQkgKiAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAiYW9TZWFyY2hDb2xzIjogWwoJCSAqICAgICAgICAgIG51bGwsCgkJICogICAgICAgICAgeyAic1NlYXJjaCI6ICJNeSBmaWx0ZXIiIH0sCgkJICogICAgICAgICAgbnVsbCwKCQkgKiAgICAgICAgICB7ICJzU2VhcmNoIjogIl5bMC05XSIsICJiRXNjYXBlUmVnZXgiOiBmYWxzZSB9CgkJICogICAgICAgIF0KCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICkKCQkgKi8KCQkiYW9TZWFyY2hDb2xzIjogW10sCgkKCQoJCS8qKgoJCSAqIEFuIGFycmF5IG9mIENTUyBjbGFzc2VzIHRoYXQgc2hvdWxkIGJlIGFwcGxpZWQgdG8gZGlzcGxheWVkIHJvd3MuIFRoaXMgCgkJICogYXJyYXkgbWF5IGJlIG9mIGFueSBsZW5ndGgsIGFuZCBEYXRhVGFibGVzIHdpbGwgYXBwbHkgZWFjaCBjbGFzcyAKCQkgKiBzZXF1ZW50aWFsbHksIGxvb3Bpbmcgd2hlbiByZXF1aXJlZC4KCQkgKiAgQHR5cGUgYXJyYXkKCQkgKiAgQGRlZmF1bHQgbnVsbCA8aT5XaWxsIHRha2UgdGhlIHZhbHVlcyBkZXRlcm1pbmVkIGJ5IHRoZSBvQ2xhc3Nlcy5zU3RyaXBlKgoJCSAqICAgIG9wdGlvbnM8L2k+CgkJICogIEBkdG9wdCBPcHRpb24KCQkgKiAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAiYXNTdHJpcGVDbGFzc2VzIjogWyAnc3RyaXAxJywgJ3N0cmlwMicsICdzdHJpcDMnIF0KCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICkKCQkgKi8KCQkiYXNTdHJpcGVDbGFzc2VzIjogbnVsbCwKCQoJCgkJLyoqCgkJICogRW5hYmxlIG9yIGRpc2FibGUgYXV0b21hdGljIGNvbHVtbiB3aWR0aCBjYWxjdWxhdGlvbi4gVGhpcyBjYW4gYmUgZGlzYWJsZWQKCQkgKiBhcyBhbiBvcHRpbWlzYXRpb24gKGl0IHRha2VzIHNvbWUgdGltZSB0byBjYWxjdWxhdGUgdGhlIHdpZHRocykgaWYgdGhlCgkJICogdGFibGVzIHdpZHRocyBhcmUgcGFzc2VkIGluIHVzaW5nIGFvQ29sdW1ucy4KCQkgKiAgQHR5cGUgYm9vbGVhbgoJCSAqICBAZGVmYXVsdCB0cnVlCgkJICogIEBkdG9wdCBGZWF0dXJlcwoJCSAqIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAiYkF1dG9XaWR0aCI6IGZhbHNlCgkJICogICAgICB9ICk7CgkJICogICAgfSApOwoJCSAqLwoJCSJiQXV0b1dpZHRoIjogdHJ1ZSwKCQoJCgkJLyoqCgkJICogRGVmZXJyZWQgcmVuZGVyaW5nIGNhbiBwcm92aWRlIERhdGFUYWJsZXMgd2l0aCBhIGh1Z2Ugc3BlZWQgYm9vc3Qgd2hlbiB5b3UKCQkgKiBhcmUgdXNpbmcgYW4gQWpheCBvciBKUyBkYXRhIHNvdXJjZSBmb3IgdGhlIHRhYmxlLiBUaGlzIG9wdGlvbiwgd2hlbiBzZXQgdG8KCQkgKiB0cnVlLCB3aWxsIGNhdXNlIERhdGFUYWJsZXMgdG8gZGVmZXIgdGhlIGNyZWF0aW9uIG9mIHRoZSB0YWJsZSBlbGVtZW50cyBmb3IKCQkgKiBlYWNoIHJvdyB1bnRpbCB0aGV5IGFyZSBuZWVkZWQgZm9yIGEgZHJhdyAtIHNhdmluZyBhIHNpZ25pZmljYW50IGFtb3VudCBvZgoJCSAqIHRpbWUuCgkJICogIEB0eXBlIGJvb2xlYW4KCQkgKiAgQGRlZmF1bHQgZmFsc2UKCQkgKiAgQGR0b3B0IEZlYXR1cmVzCgkJICogCgkJICogIEBleGFtcGxlCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJzQWpheFNvdXJjZSI6ICJzb3VyY2VzL2FycmF5cy50eHQiLAoJCSAqICAgICAgICAiYkRlZmVyUmVuZGVyIjogdHJ1ZQoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKTsKCQkgKi8KCQkiYkRlZmVyUmVuZGVyIjogZmFsc2UsCgkKCQoJCS8qKgoJCSAqIFJlcGxhY2UgYSBEYXRhVGFibGUgd2hpY2ggbWF0Y2hlcyB0aGUgZ2l2ZW4gc2VsZWN0b3IgYW5kIHJlcGxhY2UgaXQgd2l0aCAKCQkgKiBvbmUgd2hpY2ggaGFzIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBuZXcgaW5pdGlhbGlzYXRpb24gb2JqZWN0IHBhc3NlZC4gSWYgbm8KCQkgKiB0YWJsZSBtYXRjaGVzIHRoZSBzZWxlY3RvciwgdGhlbiB0aGUgbmV3IERhdGFUYWJsZSB3aWxsIGJlIGNvbnN0cnVjdGVkIGFzCgkJICogcGVyIG5vcm1hbC4KCQkgKiAgQHR5cGUgYm9vbGVhbgoJCSAqICBAZGVmYXVsdCBmYWxzZQoJCSAqICBAZHRvcHQgT3B0aW9ucwoJCSAqIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJzU2Nyb2xsWSI6ICIyMDBweCIsCgkJICogICAgICAgICJiUGFnaW5hdGUiOiBmYWxzZQoJCSAqICAgICAgfSApOwoJCSAqICAgICAgCgkJICogICAgICAvLyBTb21lIHRpbWUgbGF0ZXIuLi4uCgkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAiYkZpbHRlciI6IGZhbHNlLAoJCSAqICAgICAgICAiYkRlc3Ryb3kiOiB0cnVlCgkJICogICAgICB9ICk7CgkJICogICAgfSApOwoJCSAqLwoJCSJiRGVzdHJveSI6IGZhbHNlLAoJCgkKCQkvKioKCQkgKiBFbmFibGUgb3IgZGlzYWJsZSBmaWx0ZXJpbmcgb2YgZGF0YS4gRmlsdGVyaW5nIGluIERhdGFUYWJsZXMgaXMgInNtYXJ0IiBpbgoJCSAqIHRoYXQgaXQgYWxsb3dzIHRoZSBlbmQgdXNlciB0byBpbnB1dCBtdWx0aXBsZSB3b3JkcyAoc3BhY2Ugc2VwYXJhdGVkKSBhbmQKCQkgKiB3aWxsIG1hdGNoIGEgcm93IGNvbnRhaW5pbmcgdGhvc2Ugd29yZHMsIGV2ZW4gaWYgbm90IGluIHRoZSBvcmRlciB0aGF0IHdhcwoJCSAqIHNwZWNpZmllZCAodGhpcyBhbGxvdyBtYXRjaGluZyBhY3Jvc3MgbXVsdGlwbGUgY29sdW1ucykuIE5vdGUgdGhhdCBpZiB5b3UKCQkgKiB3aXNoIHRvIHVzZSBmaWx0ZXJpbmcgaW4gRGF0YVRhYmxlcyB0aGlzIG11c3QgcmVtYWluICd0cnVlJyAtIHRvIHJlbW92ZSB0aGUKCQkgKiBkZWZhdWx0IGZpbHRlcmluZyBpbnB1dCBib3ggYW5kIHJldGFpbiBmaWx0ZXJpbmcgYWJpbGl0aWVzLCBwbGVhc2UgdXNlCgkJICoge0BsaW5rIERhdGFUYWJsZS5kZWZhdWx0cy5zRG9tfS4KCQkgKiAgQHR5cGUgYm9vbGVhbgoJCSAqICBAZGVmYXVsdCB0cnVlCgkJICogIEBkdG9wdCBGZWF0dXJlcwoJCSAqIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAiYkZpbHRlciI6IGZhbHNlCgkJICogICAgICB9ICk7CgkJICogICAgfSApOwoJCSAqLwoJCSJiRmlsdGVyIjogdHJ1ZSwKCQoJCgkJLyoqCgkJICogRW5hYmxlIG9yIGRpc2FibGUgdGhlIHRhYmxlIGluZm9ybWF0aW9uIGRpc3BsYXkuIFRoaXMgc2hvd3MgaW5mb3JtYXRpb24gCgkJICogYWJvdXQgdGhlIGRhdGEgdGhhdCBpcyBjdXJyZW50bHkgdmlzaWJsZSBvbiB0aGUgcGFnZSwgaW5jbHVkaW5nIGluZm9ybWF0aW9uCgkJICogYWJvdXQgZmlsdGVyZWQgZGF0YSBpZiB0aGF0IGFjdGlvbiBpcyBiZWluZyBwZXJmb3JtZWQuCgkJICogIEB0eXBlIGJvb2xlYW4KCQkgKiAgQGRlZmF1bHQgdHJ1ZQoJCSAqICBAZHRvcHQgRmVhdHVyZXMKCQkgKiAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgImJJbmZvIjogZmFsc2UKCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICovCgkJImJJbmZvIjogdHJ1ZSwKCQoJCgkJLyoqCgkJICogRW5hYmxlIGpRdWVyeSBVSSBUaGVtZVJvbGxlciBzdXBwb3J0IChyZXF1aXJlZCBhcyBUaGVtZVJvbGxlciByZXF1aXJlcyBzb21lCgkJICogc2xpZ2h0bHkgZGlmZmVyZW50IGFuZCBhZGRpdGlvbmFsIG1hcmstdXAgZnJvbSB3aGF0IERhdGFUYWJsZXMgaGFzCgkJICogdHJhZGl0aW9uYWxseSB1c2VkKS4KCQkgKiAgQHR5cGUgYm9vbGVhbgoJCSAqICBAZGVmYXVsdCBmYWxzZQoJCSAqICBAZHRvcHQgRmVhdHVyZXMKCQkgKiAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAiYkpRdWVyeVVJIjogdHJ1ZQoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKTsKCQkgKi8KCQkiYkpRdWVyeVVJIjogZmFsc2UsCgkKCQoJCS8qKgoJCSAqIEFsbG93cyB0aGUgZW5kIHVzZXIgdG8gc2VsZWN0IHRoZSBzaXplIG9mIGEgZm9ybWF0dGVkIHBhZ2UgZnJvbSBhIHNlbGVjdAoJCSAqIG1lbnUgKHNpemVzIGFyZSAxMCwgMjUsIDUwIGFuZCAxMDApLiBSZXF1aXJlcyBwYWdpbmF0aW9uIChiUGFnaW5hdGUpLgoJCSAqICBAdHlwZSBib29sZWFuCgkJICogIEBkZWZhdWx0IHRydWUKCQkgKiAgQGR0b3B0IEZlYXR1cmVzCgkJICogCgkJICogIEBleGFtcGxlCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJiTGVuZ3RoQ2hhbmdlIjogZmFsc2UKCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICovCgkJImJMZW5ndGhDaGFuZ2UiOiB0cnVlLAoJCgkKCQkvKioKCQkgKiBFbmFibGUgb3IgZGlzYWJsZSBwYWdpbmF0aW9uLgoJCSAqICBAdHlwZSBib29sZWFuCgkJICogIEBkZWZhdWx0IHRydWUKCQkgKiAgQGR0b3B0IEZlYXR1cmVzCgkJICogCgkJICogIEBleGFtcGxlCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJiUGFnaW5hdGUiOiBmYWxzZQoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKTsKCQkgKi8KCQkiYlBhZ2luYXRlIjogdHJ1ZSwKCQoJCgkJLyoqCgkJICogRW5hYmxlIG9yIGRpc2FibGUgdGhlIGRpc3BsYXkgb2YgYSAncHJvY2Vzc2luZycgaW5kaWNhdG9yIHdoZW4gdGhlIHRhYmxlIGlzCgkJICogYmVpbmcgcHJvY2Vzc2VkIChlLmcuIGEgc29ydCkuIFRoaXMgaXMgcGFydGljdWxhcmx5IHVzZWZ1bCBmb3IgdGFibGVzIHdpdGgKCQkgKiBsYXJnZSBhbW91bnRzIG9mIGRhdGEgd2hlcmUgaXQgY2FuIHRha2UgYSBub3RpY2VhYmxlIGFtb3VudCBvZiB0aW1lIHRvIHNvcnQKCQkgKiB0aGUgZW50cmllcy4KCQkgKiAgQHR5cGUgYm9vbGVhbgoJCSAqICBAZGVmYXVsdCBmYWxzZQoJCSAqICBAZHRvcHQgRmVhdHVyZXMKCQkgKiAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgImJQcm9jZXNzaW5nIjogdHJ1ZQoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKTsKCQkgKi8KCQkiYlByb2Nlc3NpbmciOiBmYWxzZSwKCQoJCgkJLyoqCgkJICogUmV0cmlldmUgdGhlIERhdGFUYWJsZXMgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gc2VsZWN0b3IuIE5vdGUgdGhhdCBpZiB0aGUKCQkgKiB0YWJsZSBoYXMgYWxyZWFkeSBiZWVuIGluaXRpYWxpc2VkLCB0aGlzIHBhcmFtZXRlciB3aWxsIGNhdXNlIERhdGFUYWJsZXMKCQkgKiB0byBzaW1wbHkgcmV0dXJuIHRoZSBvYmplY3QgdGhhdCBoYXMgYWxyZWFkeSBiZWVuIHNldCB1cCAtIGl0IHdpbGwgbm90IHRha2UKCQkgKiBhY2NvdW50IG9mIGFueSBjaGFuZ2VzIHlvdSBtaWdodCBoYXZlIG1hZGUgdG8gdGhlIGluaXRpYWxpc2F0aW9uIG9iamVjdAoJCSAqIHBhc3NlZCB0byBEYXRhVGFibGVzIChzZXR0aW5nIHRoaXMgcGFyYW1ldGVyIHRvIHRydWUgaXMgYW4gYWNrbm93bGVkZ2VtZW50CgkJICogdGhhdCB5b3UgdW5kZXJzdGFuZCB0aGlzKS4gYkRlc3Ryb3kgY2FuIGJlIHVzZWQgdG8gcmVpbml0aWFsaXNlIGEgdGFibGUgaWYKCQkgKiB5b3UgbmVlZC4KCQkgKiAgQHR5cGUgYm9vbGVhbgoJCSAqICBAZGVmYXVsdCBmYWxzZQoJCSAqICBAZHRvcHQgT3B0aW9ucwoJCSAqIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgIGluaXRUYWJsZSgpOwoJCSAqICAgICAgdGFibGVBY3Rpb25zKCk7CgkJICogICAgfSApOwoJCSAqICAgIAoJCSAqICAgIGZ1bmN0aW9uIGluaXRUYWJsZSAoKQoJCSAqICAgIHsKCQkgKiAgICAgIHJldHVybiAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAic1Njcm9sbFkiOiAiMjAwcHgiLAoJCSAqICAgICAgICAiYlBhZ2luYXRlIjogZmFsc2UsCgkJICogICAgICAgICJiUmV0cmlldmUiOiB0cnVlCgkJICogICAgICB9ICk7CgkJICogICAgfQoJCSAqICAgIAoJCSAqICAgIGZ1bmN0aW9uIHRhYmxlQWN0aW9ucyAoKQoJCSAqICAgIHsKCQkgKiAgICAgIHZhciBvVGFibGUgPSBpbml0VGFibGUoKTsKCQkgKiAgICAgIC8vIHBlcmZvcm0gQVBJIG9wZXJhdGlvbnMgd2l0aCBvVGFibGUgCgkJICogICAgfQoJCSAqLwoJCSJiUmV0cmlldmUiOiBmYWxzZSwKCQoJCgkJLyoqCgkJICogSW5kaWNhdGUgaWYgRGF0YVRhYmxlcyBzaG91bGQgYmUgYWxsb3dlZCB0byBzZXQgdGhlIHBhZGRpbmcgLyBtYXJnaW4KCQkgKiBldGMgZm9yIHRoZSBzY3JvbGxpbmcgaGVhZGVyIGVsZW1lbnRzIG9yIG5vdC4gVHlwaWNhbGx5IHlvdSB3aWxsIHdhbnQKCQkgKiB0aGlzLgoJCSAqICBAdHlwZSBib29sZWFuCgkJICogIEBkZWZhdWx0IHRydWUKCQkgKiAgQGR0b3B0IE9wdGlvbnMKCQkgKiAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAiYlNjcm9sbEF1dG9Dc3MiOiBmYWxzZSwKCQkgKiAgICAgICAgInNTY3JvbGxZIjogIjIwMHB4IgoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKTsKCQkgKi8KCQkiYlNjcm9sbEF1dG9Dc3MiOiB0cnVlLAoJCgkKCQkvKioKCQkgKiBXaGVuIHZlcnRpY2FsICh5KSBzY3JvbGxpbmcgaXMgZW5hYmxlZCwgRGF0YVRhYmxlcyB3aWxsIGZvcmNlIHRoZSBoZWlnaHQgb2YKCQkgKiB0aGUgdGFibGUncyB2aWV3cG9ydCB0byB0aGUgZ2l2ZW4gaGVpZ2h0IGF0IGFsbCB0aW1lcyAodXNlZnVsIGZvciBsYXlvdXQpLgoJCSAqIEhvd2V2ZXIsIHRoaXMgY2FuIGxvb2sgb2RkIHdoZW4gZmlsdGVyaW5nIGRhdGEgZG93biB0byBhIHNtYWxsIGRhdGEgc2V0LAoJCSAqIGFuZCB0aGUgZm9vdGVyIGlzIGxlZnQgImZsb2F0aW5nIiBmdXJ0aGVyIGRvd24uIFRoaXMgcGFyYW1ldGVyICh3aGVuCgkJICogZW5hYmxlZCkgd2lsbCBjYXVzZSBEYXRhVGFibGVzIHRvIGNvbGxhcHNlIHRoZSB0YWJsZSdzIHZpZXdwb3J0IGRvd24gd2hlbgoJCSAqIHRoZSByZXN1bHQgc2V0IHdpbGwgZml0IHdpdGhpbiB0aGUgZ2l2ZW4gWSBoZWlnaHQuCgkJICogIEB0eXBlIGJvb2xlYW4KCQkgKiAgQGRlZmF1bHQgZmFsc2UKCQkgKiAgQGR0b3B0IE9wdGlvbnMKCQkgKiAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAic1Njcm9sbFkiOiAiMjAwIiwKCQkgKiAgICAgICAgImJTY3JvbGxDb2xsYXBzZSI6IHRydWUKCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICovCgkJImJTY3JvbGxDb2xsYXBzZSI6IGZhbHNlLAoJCgkKCQkvKioKCQkgKiBFbmFibGUgaW5maW5pdGUgc2Nyb2xsaW5nIGZvciBEYXRhVGFibGVzICh0byBiZSB1c2VkIGluIGNvbWJpbmF0aW9uIHdpdGgKCQkgKiBzU2Nyb2xsWSkuIEluZmluaXRlIHNjcm9sbGluZyBtZWFucyB0aGF0IERhdGFUYWJsZXMgd2lsbCBjb250aW51YWxseSBsb2FkCgkJICogZGF0YSBhcyBhIHVzZXIgc2Nyb2xscyB0aHJvdWdoIGEgdGFibGUsIHdoaWNoIGlzIHZlcnkgdXNlZnVsIGZvciBsYXJnZQoJCSAqIGRhdGFzZXQuIFRoaXMgY2Fubm90IGJlIHVzZWQgd2l0aCBwYWdpbmF0aW9uLCB3aGljaCBpcyBhdXRvbWF0aWNhbGx5CgkJICogZGlzYWJsZWQuIE5vdGUgLSB0aGUgU2Nyb2xsZXIgZXh0cmEgZm9yIERhdGFUYWJsZXMgaXMgcmVjb21tZW5kZWQgaW4KCQkgKiBpbiBwcmVmZXJlbmNlIHRvIHRoaXMgb3B0aW9uLgoJCSAqICBAdHlwZSBib29sZWFuCgkJICogIEBkZWZhdWx0IGZhbHNlCgkJICogIEBkdG9wdCBGZWF0dXJlcwoJCSAqIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJiU2Nyb2xsSW5maW5pdGUiOiB0cnVlLAoJCSAqICAgICAgICAiYlNjcm9sbENvbGxhcHNlIjogdHJ1ZSwKCQkgKiAgICAgICAgInNTY3JvbGxZIjogIjIwMHB4IgoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKTsKCQkgKi8KCQkiYlNjcm9sbEluZmluaXRlIjogZmFsc2UsCgkKCQoJCS8qKgoJCSAqIENvbmZpZ3VyZSBEYXRhVGFibGVzIHRvIHVzZSBzZXJ2ZXItc2lkZSBwcm9jZXNzaW5nLiBOb3RlIHRoYXQgdGhlCgkJICogc0FqYXhTb3VyY2UgcGFyYW1ldGVyIG11c3QgYWxzbyBiZSBnaXZlbiBpbiBvcmRlciB0byBnaXZlIERhdGFUYWJsZXMgYQoJCSAqIHNvdXJjZSB0byBvYnRhaW4gdGhlIHJlcXVpcmVkIGRhdGEgZm9yIGVhY2ggZHJhdy4KCQkgKiAgQHR5cGUgYm9vbGVhbgoJCSAqICBAZGVmYXVsdCBmYWxzZQoJCSAqICBAZHRvcHQgRmVhdHVyZXMKCQkgKiAgQGR0b3B0IFNlcnZlci1zaWRlCgkJICogCgkJICogIEBleGFtcGxlCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJiU2VydmVyU2lkZSI6IHRydWUsCgkJICogICAgICAgICJzQWpheFNvdXJjZSI6ICJ4aHIucGhwIgoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKTsKCQkgKi8KCQkiYlNlcnZlclNpZGUiOiBmYWxzZSwKCQoJCgkJLyoqCgkJICogRW5hYmxlIG9yIGRpc2FibGUgc29ydGluZyBvZiBjb2x1bW5zLiBTb3J0aW5nIG9mIGluZGl2aWR1YWwgY29sdW1ucyBjYW4gYmUKCQkgKiBkaXNhYmxlZCBieSB0aGUgImJTb3J0YWJsZSIgb3B0aW9uIGZvciBlYWNoIGNvbHVtbi4KCQkgKiAgQHR5cGUgYm9vbGVhbgoJCSAqICBAZGVmYXVsdCB0cnVlCgkJICogIEBkdG9wdCBGZWF0dXJlcwoJCSAqIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAiYlNvcnQiOiBmYWxzZQoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKTsKCQkgKi8KCQkiYlNvcnQiOiB0cnVlLAoJCgkKCQkvKioKCQkgKiBBbGxvd3MgY29udHJvbCBvdmVyIHdoZXRoZXIgRGF0YVRhYmxlcyBzaG91bGQgdXNlIHRoZSB0b3AgKHRydWUpIHVuaXF1ZQoJCSAqIGNlbGwgdGhhdCBpcyBmb3VuZCBmb3IgYSBzaW5nbGUgY29sdW1uLCBvciB0aGUgYm90dG9tIChmYWxzZSAtIGRlZmF1bHQpLgoJCSAqIFRoaXMgaXMgdXNlZnVsIHdoZW4gdXNpbmcgY29tcGxleCBoZWFkZXJzLgoJCSAqICBAdHlwZSBib29sZWFuCgkJICogIEBkZWZhdWx0IGZhbHNlCgkJICogIEBkdG9wdCBPcHRpb25zCgkJICogCgkJICogIEBleGFtcGxlCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgImJTb3J0Q2VsbHNUb3AiOiB0cnVlCgkJICogICAgICB9ICk7CgkJICogICAgfSApOwoJCSAqLwoJCSJiU29ydENlbGxzVG9wIjogZmFsc2UsCgkKCQoJCS8qKgoJCSAqIEVuYWJsZSBvciBkaXNhYmxlIHRoZSBhZGRpdGlvbiBvZiB0aGUgY2xhc3NlcyAnc29ydGluZ18xJywgJ3NvcnRpbmdfMicgYW5kCgkJICogJ3NvcnRpbmdfMycgdG8gdGhlIGNvbHVtbnMgd2hpY2ggYXJlIGN1cnJlbnRseSBiZWluZyBzb3J0ZWQgb24uIFRoaXMgaXMKCQkgKiBwcmVzZW50ZWQgYXMgYSBmZWF0dXJlIHN3aXRjaCBhcyBpdCBjYW4gaW5jcmVhc2UgcHJvY2Vzc2luZyB0aW1lICh3aGlsZQoJCSAqIGNsYXNzZXMgYXJlIHJlbW92ZWQgYW5kIGFkZGVkKSBzbyBmb3IgbGFyZ2UgZGF0YSBzZXRzIHlvdSBtaWdodCB3YW50IHRvCgkJICogdHVybiB0aGlzIG9mZi4KCQkgKiAgQHR5cGUgYm9vbGVhbgoJCSAqICBAZGVmYXVsdCB0cnVlCgkJICogIEBkdG9wdCBGZWF0dXJlcwoJCSAqIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAiYlNvcnRDbGFzc2VzIjogZmFsc2UKCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICovCgkJImJTb3J0Q2xhc3NlcyI6IHRydWUsCgkKCQoJCS8qKgoJCSAqIEVuYWJsZSBvciBkaXNhYmxlIHN0YXRlIHNhdmluZy4gV2hlbiBlbmFibGVkIGEgY29va2llIHdpbGwgYmUgdXNlZCB0byBzYXZlCgkJICogdGFibGUgZGlzcGxheSBpbmZvcm1hdGlvbiBzdWNoIGFzIHBhZ2luYXRpb24gaW5mb3JtYXRpb24sIGRpc3BsYXkgbGVuZ3RoLAoJCSAqIGZpbHRlcmluZyBhbmQgc29ydGluZy4gQXMgc3VjaCB3aGVuIHRoZSBlbmQgdXNlciByZWxvYWRzIHRoZSBwYWdlIHRoZQoJCSAqIGRpc3BsYXkgZGlzcGxheSB3aWxsIG1hdGNoIHdoYXQgdGh5IGhhZCBwcmV2aW91c2x5IHNldCB1cC4KCQkgKiAgQHR5cGUgYm9vbGVhbgoJCSAqICBAZGVmYXVsdCBmYWxzZQoJCSAqICBAZHRvcHQgRmVhdHVyZXMKCQkgKiAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgImJTdGF0ZVNhdmUiOiB0cnVlCgkJICogICAgICB9ICk7CgkJICogICAgfSApOwoJCSAqLwoJCSJiU3RhdGVTYXZlIjogZmFsc2UsCgkKCQoJCS8qKgoJCSAqIEN1c3RvbWlzZSB0aGUgY29va2llIGFuZCAvIG9yIHRoZSBwYXJhbWV0ZXJzIGJlaW5nIHN0b3JlZCB3aGVuIHVzaW5nCgkJICogRGF0YVRhYmxlcyB3aXRoIHN0YXRlIHNhdmluZyBlbmFibGVkLiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuZXZlcgoJCSAqIHRoZSBjb29raWUgaXMgbW9kaWZpZWQsIGFuZCBpdCBleHBlY3RzIGEgZnVsbHkgZm9ybWVkIGNvb2tpZSBzdHJpbmcgdG8gYmUKCQkgKiByZXR1cm5lZC4gTm90ZSB0aGF0IHRoZSBkYXRhIG9iamVjdCBwYXNzZWQgaW4gaXMgYSBKYXZhc2NyaXB0IG9iamVjdCB3aGljaAoJCSAqIG11c3QgYmUgY29udmVydGVkIHRvIGEgc3RyaW5nIChKU09OLnN0cmluZ2lmeSBmb3IgZXhhbXBsZSkuCgkJICogIEB0eXBlIGZ1bmN0aW9uCgkJICogIEBwYXJhbSB7c3RyaW5nfSBzTmFtZSBOYW1lIG9mIHRoZSBjb29raWUgZGVmaW5lZCBieSBEYXRhVGFibGVzCgkJICogIEBwYXJhbSB7b2JqZWN0fSBvRGF0YSBEYXRhIHRvIGJlIHN0b3JlZCBpbiB0aGUgY29va2llCgkJICogIEBwYXJhbSB7c3RyaW5nfSBzRXhwaXJlcyBDb29raWUgZXhwaXJlcyBzdHJpbmcKCQkgKiAgQHBhcmFtIHtzdHJpbmd9IHNQYXRoIFBhdGggb2YgdGhlIGNvb2tpZSB0byBzZXQKCQkgKiAgQHJldHVybnMge3N0cmluZ30gQ29va2llIGZvcm1hdHRlZCBzdHJpbmcgKHdoaWNoIHNob3VsZCBiZSBlbmNvZGVkIGJ5CgkJICogICAgdXNpbmcgZW5jb2RlVVJJQ29tcG9uZW50KCkpCgkJICogIEBkdG9wdCBDYWxsYmFja3MKCQkgKiAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgImZuQ29va2llQ2FsbGJhY2siOiBmdW5jdGlvbiAoc05hbWUsIG9EYXRhLCBzRXhwaXJlcywgc1BhdGgpIHsKCQkgKiAgICAgICAgICAvLyBDdXN0b21pc2Ugb0RhdGEgb3Igc05hbWUgb3Igd2hhdGV2ZXIgZWxzZSBoZXJlCgkJICogICAgICAgICAgcmV0dXJuIHNOYW1lICsgIj0iK0pTT04uc3RyaW5naWZ5KG9EYXRhKSsiOyBleHBpcmVzPSIgKyBzRXhwaXJlcyArIjsgcGF0aD0iICsgc1BhdGg7CgkJICogICAgICAgIH0KCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICovCgkJImZuQ29va2llQ2FsbGJhY2siOiBudWxsLAoJCgkKCQkvKioKCQkgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIGEgVFIgZWxlbWVudCBpcyBjcmVhdGVkIChhbmQgYWxsIFREIGNoaWxkCgkJICogZWxlbWVudHMgaGF2ZSBiZWVuIGluc2VydGVkKSwgb3IgcmVnaXN0ZXJlZCBpZiB1c2luZyBhIERPTSBzb3VyY2UsIGFsbG93aW5nCgkJICogbWFuaXB1bGF0aW9uIG9mIHRoZSBUUiBlbGVtZW50IChhZGRpbmcgY2xhc3NlcyBldGMpLgoJCSAqICBAdHlwZSBmdW5jdGlvbgoJCSAqICBAcGFyYW0ge25vZGV9IG5Sb3cgIlRSIiBlbGVtZW50IGZvciB0aGUgY3VycmVudCByb3cKCQkgKiAgQHBhcmFtIHthcnJheX0gYURhdGEgUmF3IGRhdGEgYXJyYXkgZm9yIHRoaXMgcm93CgkJICogIEBwYXJhbSB7aW50fSBpRGF0YUluZGV4IFRoZSBpbmRleCBvZiB0aGlzIHJvdyBpbiBhb0RhdGEKCQkgKiAgQGR0b3B0IENhbGxiYWNrcwoJCSAqIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJmbkNyZWF0ZWRSb3ciOiBmdW5jdGlvbiggblJvdywgYURhdGEsIGlEYXRhSW5kZXggKSB7CgkJICogICAgICAgICAgLy8gQm9sZCB0aGUgZ3JhZGUgZm9yIGFsbCAnQScgZ3JhZGUgYnJvd3NlcnMKCQkgKiAgICAgICAgICBpZiAoIGFEYXRhWzRdID09ICJBIiApCgkJICogICAgICAgICAgewoJCSAqICAgICAgICAgICAgJCgndGQ6ZXEoNCknLCBuUm93KS5odG1sKCAnPGI+QTwvYj4nICk7CgkJICogICAgICAgICAgfQoJCSAqICAgICAgICB9CgkJICogICAgICB9ICk7CgkJICogICAgfSApOwoJCSAqLwoJCSJmbkNyZWF0ZWRSb3ciOiBudWxsLAoJCgkKCQkvKioKCQkgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBvbiBldmVyeSAnZHJhdycgZXZlbnQsIGFuZCBhbGxvd3MgeW91IHRvCgkJICogZHluYW1pY2FsbHkgbW9kaWZ5IGFueSBhc3BlY3QgeW91IHdhbnQgYWJvdXQgdGhlIGNyZWF0ZWQgRE9NLgoJCSAqICBAdHlwZSBmdW5jdGlvbgoJCSAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIERhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CgkJICogIEBkdG9wdCBDYWxsYmFja3MKCQkgKiAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAiZm5EcmF3Q2FsbGJhY2siOiBmdW5jdGlvbiggb1NldHRpbmdzICkgewoJCSAqICAgICAgICAgIGFsZXJ0KCAnRGF0YVRhYmxlcyBoYXMgcmVkcmF3biB0aGUgdGFibGUnICk7CgkJICogICAgICAgIH0KCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICovCgkJImZuRHJhd0NhbGxiYWNrIjogbnVsbCwKCQoJCgkJLyoqCgkJICogSWRlbnRpY2FsIHRvIGZuSGVhZGVyQ2FsbGJhY2soKSBidXQgZm9yIHRoZSB0YWJsZSBmb290ZXIgdGhpcyBmdW5jdGlvbgoJCSAqIGFsbG93cyB5b3UgdG8gbW9kaWZ5IHRoZSB0YWJsZSBmb290ZXIgb24gZXZlcnkgJ2RyYXcnIGV2ZW4uCgkJICogIEB0eXBlIGZ1bmN0aW9uCgkJICogIEBwYXJhbSB7bm9kZX0gbkZvb3QgIlRSIiBlbGVtZW50IGZvciB0aGUgZm9vdGVyCgkJICogIEBwYXJhbSB7YXJyYXl9IGFEYXRhIEZ1bGwgdGFibGUgZGF0YSAoYXMgZGVyaXZlZCBmcm9tIHRoZSBvcmlnaW5hbCBIVE1MKQoJCSAqICBAcGFyYW0ge2ludH0gaVN0YXJ0IEluZGV4IGZvciB0aGUgY3VycmVudCBkaXNwbGF5IHN0YXJ0aW5nIHBvaW50IGluIHRoZSAKCQkgKiAgICBkaXNwbGF5IGFycmF5CgkJICogIEBwYXJhbSB7aW50fSBpRW5kIEluZGV4IGZvciB0aGUgY3VycmVudCBkaXNwbGF5IGVuZGluZyBwb2ludCBpbiB0aGUgCgkJICogICAgZGlzcGxheSBhcnJheQoJCSAqICBAcGFyYW0ge2FycmF5IGludH0gYWlEaXNwbGF5IEluZGV4IGFycmF5IHRvIHRyYW5zbGF0ZSB0aGUgdmlzdWFsIHBvc2l0aW9uCgkJICogICAgdG8gdGhlIGZ1bGwgZGF0YSBhcnJheQoJCSAqICBAZHRvcHQgQ2FsbGJhY2tzCgkJICogCgkJICogIEBleGFtcGxlCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgImZuRm9vdGVyQ2FsbGJhY2siOiBmdW5jdGlvbiggbkZvb3QsIGFEYXRhLCBpU3RhcnQsIGlFbmQsIGFpRGlzcGxheSApIHsKCQkgKiAgICAgICAgICBuRm9vdC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndGgnKVswXS5pbm5lckhUTUwgPSAiU3RhcnRpbmcgaW5kZXggaXMgIitpU3RhcnQ7CgkJICogICAgICAgIH0KCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICkKCQkgKi8KCQkiZm5Gb290ZXJDYWxsYmFjayI6IG51bGwsCgkKCQoJCS8qKgoJCSAqIFdoZW4gcmVuZGVyaW5nIGxhcmdlIG51bWJlcnMgaW4gdGhlIGluZm9ybWF0aW9uIGVsZW1lbnQgZm9yIHRoZSB0YWJsZQoJCSAqIChpLmUuICJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyIpIERhdGFUYWJsZXMgd2lsbCByZW5kZXIgbGFyZ2UgbnVtYmVycwoJCSAqIHRvIGhhdmUgYSBjb21tYSBzZXBhcmF0b3IgZm9yIHRoZSAndGhvdXNhbmRzJyB1bml0cyAoZS5nLiAxIG1pbGxpb24gaXMKCQkgKiByZW5kZXJlZCBhcyAiMSwwMDAsMDAwIikgdG8gaGVscCByZWFkYWJpbGl0eSBmb3IgdGhlIGVuZCB1c2VyLiBUaGlzCgkJICogZnVuY3Rpb24gd2lsbCBvdmVycmlkZSB0aGUgZGVmYXVsdCBtZXRob2QgRGF0YVRhYmxlcyB1c2VzLgoJCSAqICBAdHlwZSBmdW5jdGlvbgoJCSAqICBAbWVtYmVyCgkJICogIEBwYXJhbSB7aW50fSBpSW4gbnVtYmVyIHRvIGJlIGZvcm1hdHRlZAoJCSAqICBAcmV0dXJucyB7c3RyaW5nfSBmb3JtYXR0ZWQgc3RyaW5nIGZvciBEYXRhVGFibGVzIHRvIHNob3cgdGhlIG51bWJlcgoJCSAqICBAZHRvcHQgQ2FsbGJhY2tzCgkJICogCgkJICogIEBleGFtcGxlCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgImZuRm9ybWF0TnVtYmVyIjogZnVuY3Rpb24gKCBpSW4gKSB7CgkJICogICAgICAgICAgaWYgKCBpSW4gJmx0OyAxMDAwICkgewoJCSAqICAgICAgICAgICAgcmV0dXJuIGlJbjsKCQkgKiAgICAgICAgICB9IGVsc2UgewoJCSAqICAgICAgICAgICAgdmFyIAoJCSAqICAgICAgICAgICAgICBzPShpSW4rIiIpLCAKCQkgKiAgICAgICAgICAgICAgYT1zLnNwbGl0KCIiKSwgb3V0PSIiLCAKCQkgKiAgICAgICAgICAgICAgaUxlbj1zLmxlbmd0aDsKCQkgKiAgICAgICAgICAgIAoJCSAqICAgICAgICAgICAgZm9yICggdmFyIGk9MCA7IGkmbHQ7aUxlbiA7IGkrKyApIHsKCQkgKiAgICAgICAgICAgICAgaWYgKCBpJTMgPT09IDAgJmFtcDsmYW1wOyBpICE9PSAwICkgewoJCSAqICAgICAgICAgICAgICAgIG91dCA9ICInIitvdXQ7CgkJICogICAgICAgICAgICAgIH0KCQkgKiAgICAgICAgICAgICAgb3V0ID0gYVtpTGVuLWktMV0rb3V0OwoJCSAqICAgICAgICAgICAgfQoJCSAqICAgICAgICAgIH0KCQkgKiAgICAgICAgICByZXR1cm4gb3V0OwoJCSAqICAgICAgICB9OwoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKTsKCQkgKi8KCQkiZm5Gb3JtYXROdW1iZXIiOiBmdW5jdGlvbiAoIGlJbiApIHsKCQkJaWYgKCBpSW4gPCAxMDAwICkKCQkJewoJCQkJLy8gQSBzbWFsbCBvcHRpbWlzYXRpb24gZm9yIHdoYXQgaXMgbGlrZWx5IHRvIGJlIHRoZSBtYWpvcml0eSBvZiB1c2UgY2FzZXMKCQkJCXJldHVybiBpSW47CgkJCX0KCQoJCQl2YXIgcz0oaUluKyIiKSwgYT1zLnNwbGl0KCIiKSwgb3V0PSIiLCBpTGVuPXMubGVuZ3RoOwoJCQkKCQkJZm9yICggdmFyIGk9MCA7IGk8aUxlbiA7IGkrKyApCgkJCXsKCQkJCWlmICggaSUzID09PSAwICYmIGkgIT09IDAgKQoJCQkJewoJCQkJCW91dCA9IHRoaXMub0xhbmd1YWdlLnNJbmZvVGhvdXNhbmRzK291dDsKCQkJCX0KCQkJCW91dCA9IGFbaUxlbi1pLTFdK291dDsKCQkJfQoJCQlyZXR1cm4gb3V0OwoJCX0sCgkKCQoJCS8qKgoJCSAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIG9uIGV2ZXJ5ICdkcmF3JyBldmVudCwgYW5kIGFsbG93cyB5b3UgdG8KCQkgKiBkeW5hbWljYWxseSBtb2RpZnkgdGhlIGhlYWRlciByb3cuIFRoaXMgY2FuIGJlIHVzZWQgdG8gY2FsY3VsYXRlIGFuZAoJCSAqIGRpc3BsYXkgdXNlZnVsIGluZm9ybWF0aW9uIGFib3V0IHRoZSB0YWJsZS4KCQkgKiAgQHR5cGUgZnVuY3Rpb24KCQkgKiAgQHBhcmFtIHtub2RlfSBuSGVhZCAiVFIiIGVsZW1lbnQgZm9yIHRoZSBoZWFkZXIKCQkgKiAgQHBhcmFtIHthcnJheX0gYURhdGEgRnVsbCB0YWJsZSBkYXRhIChhcyBkZXJpdmVkIGZyb20gdGhlIG9yaWdpbmFsIEhUTUwpCgkJICogIEBwYXJhbSB7aW50fSBpU3RhcnQgSW5kZXggZm9yIHRoZSBjdXJyZW50IGRpc3BsYXkgc3RhcnRpbmcgcG9pbnQgaW4gdGhlCgkJICogICAgZGlzcGxheSBhcnJheQoJCSAqICBAcGFyYW0ge2ludH0gaUVuZCBJbmRleCBmb3IgdGhlIGN1cnJlbnQgZGlzcGxheSBlbmRpbmcgcG9pbnQgaW4gdGhlCgkJICogICAgZGlzcGxheSBhcnJheQoJCSAqICBAcGFyYW0ge2FycmF5IGludH0gYWlEaXNwbGF5IEluZGV4IGFycmF5IHRvIHRyYW5zbGF0ZSB0aGUgdmlzdWFsIHBvc2l0aW9uCgkJICogICAgdG8gdGhlIGZ1bGwgZGF0YSBhcnJheQoJCSAqICBAZHRvcHQgQ2FsbGJhY2tzCgkJICogCgkJICogIEBleGFtcGxlCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgImZuSGVhZGVyQ2FsbGJhY2siOiBmdW5jdGlvbiggbkhlYWQsIGFEYXRhLCBpU3RhcnQsIGlFbmQsIGFpRGlzcGxheSApIHsKCQkgKiAgICAgICAgICBuSGVhZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndGgnKVswXS5pbm5lckhUTUwgPSAiRGlzcGxheWluZyAiKyhpRW5kLWlTdGFydCkrIiByZWNvcmRzIjsKCQkgKiAgICAgICAgfQoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKQoJCSAqLwoJCSJmbkhlYWRlckNhbGxiYWNrIjogbnVsbCwKCQoJCgkJLyoqCgkJICogVGhlIGluZm9ybWF0aW9uIGVsZW1lbnQgY2FuIGJlIHVzZWQgdG8gY29udmV5IGluZm9ybWF0aW9uIGFib3V0IHRoZSBjdXJyZW50CgkJICogc3RhdGUgb2YgdGhlIHRhYmxlLiBBbHRob3VnaCB0aGUgaW50ZXJuYXRpb25hbGlzYXRpb24gb3B0aW9ucyBwcmVzZW50ZWQgYnkKCQkgKiBEYXRhVGFibGVzIGFyZSBxdWl0ZSBjYXBhYmxlIG9mIGRlYWxpbmcgd2l0aCBtb3N0IGN1c3RvbWlzYXRpb25zLCB0aGVyZSBtYXkKCQkgKiBiZSB0aW1lcyB3aGVyZSB5b3Ugd2lzaCB0byBjdXN0b21pc2UgdGhlIHN0cmluZyBmdXJ0aGVyLiBUaGlzIGNhbGxiYWNrCgkJICogYWxsb3dzIHlvdSB0byBkbyBleGFjdGx5IHRoYXQuCgkJICogIEB0eXBlIGZ1bmN0aW9uCgkJICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgRGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCQkgKiAgQHBhcmFtIHtpbnR9IGlTdGFydCBTdGFydGluZyBwb3NpdGlvbiBpbiBkYXRhIGZvciB0aGUgZHJhdwoJCSAqICBAcGFyYW0ge2ludH0gaUVuZCBFbmQgcG9zaXRpb24gaW4gZGF0YSBmb3IgdGhlIGRyYXcKCQkgKiAgQHBhcmFtIHtpbnR9IGlNYXggVG90YWwgbnVtYmVyIG9mIHJvd3MgaW4gdGhlIHRhYmxlIChyZWdhcmRsZXNzIG9mCgkJICogICAgZmlsdGVyaW5nKQoJCSAqICBAcGFyYW0ge2ludH0gaVRvdGFsIFRvdGFsIG51bWJlciBvZiByb3dzIGluIHRoZSBkYXRhIHNldCwgYWZ0ZXIgZmlsdGVyaW5nCgkJICogIEBwYXJhbSB7c3RyaW5nfSBzUHJlIFRoZSBzdHJpbmcgdGhhdCBEYXRhVGFibGVzIGhhcyBmb3JtYXR0ZWQgdXNpbmcgaXQncwoJCSAqICAgIG93biBydWxlcwoJCSAqICBAcmV0dXJucyB7c3RyaW5nfSBUaGUgc3RyaW5nIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgaW5mb3JtYXRpb24gZWxlbWVudC4KCQkgKiAgQGR0b3B0IENhbGxiYWNrcwoJCSAqIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAiZm5JbmZvQ2FsbGJhY2siOiBmdW5jdGlvbiggb1NldHRpbmdzLCBpU3RhcnQsIGlFbmQsIGlNYXgsIGlUb3RhbCwgc1ByZSApIHsKCQkgKiAgICAgICAgcmV0dXJuIGlTdGFydCArIiB0byAiKyBpRW5kOwoJCSAqICAgICAgfQoJCSAqICAgIH0gKTsKCQkgKi8KCQkiZm5JbmZvQ2FsbGJhY2siOiBudWxsLAoJCgkKCQkvKioKCQkgKiBDYWxsZWQgd2hlbiB0aGUgdGFibGUgaGFzIGJlZW4gaW5pdGlhbGlzZWQuIE5vcm1hbGx5IERhdGFUYWJsZXMgd2lsbAoJCSAqIGluaXRpYWxpc2Ugc2VxdWVudGlhbGx5IGFuZCB0aGVyZSB3aWxsIGJlIG5vIG5lZWQgZm9yIHRoaXMgZnVuY3Rpb24sCgkJICogaG93ZXZlciwgdGhpcyBkb2VzIG5vdCBob2xkIHRydWUgd2hlbiB1c2luZyBleHRlcm5hbCBsYW5ndWFnZSBpbmZvcm1hdGlvbgoJCSAqIHNpbmNlIHRoYXQgaXMgb2J0YWluZWQgdXNpbmcgYW4gYXN5bmMgWEhSIGNhbGwuCgkJICogIEB0eXBlIGZ1bmN0aW9uCgkJICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgRGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCQkgKiAgQHBhcmFtIHtvYmplY3R9IGpzb24gVGhlIEpTT04gb2JqZWN0IHJlcXVlc3QgZnJvbSB0aGUgc2VydmVyIC0gb25seQoJCSAqICAgIHByZXNlbnQgaWYgY2xpZW50LXNpZGUgQWpheCBzb3VyY2VkIGRhdGEgaXMgdXNlZAoJCSAqICBAZHRvcHQgQ2FsbGJhY2tzCgkJICogCgkJICogIEBleGFtcGxlCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgImZuSW5pdENvbXBsZXRlIjogZnVuY3Rpb24ob1NldHRpbmdzLCBqc29uKSB7CgkJICogICAgICAgICAgYWxlcnQoICdEYXRhVGFibGVzIGhhcyBmaW5pc2hlZCBpdHMgaW5pdGlhbGlzYXRpb24uJyApOwoJCSAqICAgICAgICB9CgkJICogICAgICB9ICk7CgkJICogICAgfSApCgkJICovCgkJImZuSW5pdENvbXBsZXRlIjogbnVsbCwKCQoJCgkJLyoqCgkJICogQ2FsbGVkIGF0IHRoZSB2ZXJ5IHN0YXJ0IG9mIGVhY2ggdGFibGUgZHJhdyBhbmQgY2FuIGJlIHVzZWQgdG8gY2FuY2VsIHRoZQoJCSAqIGRyYXcgYnkgcmV0dXJuaW5nIGZhbHNlLCBhbnkgb3RoZXIgcmV0dXJuIChpbmNsdWRpbmcgdW5kZWZpbmVkKSByZXN1bHRzIGluCgkJICogdGhlIGZ1bGwgZHJhdyBvY2N1cnJpbmcpLgoJCSAqICBAdHlwZSBmdW5jdGlvbgoJCSAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIERhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CgkJICogIEByZXR1cm5zIHtib29sZWFufSBGYWxzZSB3aWxsIGNhbmNlbCB0aGUgZHJhdywgYW55dGhpbmcgZWxzZSAoaW5jbHVkaW5nIG5vCgkJICogICAgcmV0dXJuKSB3aWxsIGFsbG93IGl0IHRvIGNvbXBsZXRlLgoJCSAqICBAZHRvcHQgQ2FsbGJhY2tzCgkJICogCgkJICogIEBleGFtcGxlCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgImZuUHJlRHJhd0NhbGxiYWNrIjogZnVuY3Rpb24oIG9TZXR0aW5ncyApIHsKCQkgKiAgICAgICAgICBpZiAoICQoJyN0ZXN0JykudmFsKCkgPT0gMSApIHsKCQkgKiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKCQkgKiAgICAgICAgICB9CgkJICogICAgICAgIH0KCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICovCgkJImZuUHJlRHJhd0NhbGxiYWNrIjogbnVsbCwKCQoJCgkJLyoqCgkJICogVGhpcyBmdW5jdGlvbiBhbGxvd3MgeW91IHRvICdwb3N0IHByb2Nlc3MnIGVhY2ggcm93IGFmdGVyIGl0IGhhdmUgYmVlbgoJCSAqIGdlbmVyYXRlZCBmb3IgZWFjaCB0YWJsZSBkcmF3LCBidXQgYmVmb3JlIGl0IGlzIHJlbmRlcmVkIG9uIHNjcmVlbi4gVGhpcwoJCSAqIGZ1bmN0aW9uIG1pZ2h0IGJlIHVzZWQgZm9yIHNldHRpbmcgdGhlIHJvdyBjbGFzcyBuYW1lIGV0Yy4KCQkgKiAgQHR5cGUgZnVuY3Rpb24KCQkgKiAgQHBhcmFtIHtub2RlfSBuUm93ICJUUiIgZWxlbWVudCBmb3IgdGhlIGN1cnJlbnQgcm93CgkJICogIEBwYXJhbSB7YXJyYXl9IGFEYXRhIFJhdyBkYXRhIGFycmF5IGZvciB0aGlzIHJvdwoJCSAqICBAcGFyYW0ge2ludH0gaURpc3BsYXlJbmRleCBUaGUgZGlzcGxheSBpbmRleCBmb3IgdGhlIGN1cnJlbnQgdGFibGUgZHJhdwoJCSAqICBAcGFyYW0ge2ludH0gaURpc3BsYXlJbmRleEZ1bGwgVGhlIGluZGV4IG9mIHRoZSBkYXRhIGluIHRoZSBmdWxsIGxpc3Qgb2YKCQkgKiAgICByb3dzIChhZnRlciBmaWx0ZXJpbmcpCgkJICogIEBkdG9wdCBDYWxsYmFja3MKCQkgKiAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAiZm5Sb3dDYWxsYmFjayI6IGZ1bmN0aW9uKCBuUm93LCBhRGF0YSwgaURpc3BsYXlJbmRleCwgaURpc3BsYXlJbmRleEZ1bGwgKSB7CgkJICogICAgICAgICAgLy8gQm9sZCB0aGUgZ3JhZGUgZm9yIGFsbCAnQScgZ3JhZGUgYnJvd3NlcnMKCQkgKiAgICAgICAgICBpZiAoIGFEYXRhWzRdID09ICJBIiApCgkJICogICAgICAgICAgewoJCSAqICAgICAgICAgICAgJCgndGQ6ZXEoNCknLCBuUm93KS5odG1sKCAnPGI+QTwvYj4nICk7CgkJICogICAgICAgICAgfQoJCSAqICAgICAgICB9CgkJICogICAgICB9ICk7CgkJICogICAgfSApOwoJCSAqLwoJCSJmblJvd0NhbGxiYWNrIjogbnVsbCwKCQoJCgkJLyoqCgkJICogVGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHlvdSB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBmdW5jdGlvbiB3aGljaCBvYnRhaW5zCgkJICogdGhlIGRhdGEgZnJvbSB0aGUgc2VydmVyICgkLmdldEpTT04pIHNvIHNvbWV0aGluZyBtb3JlIHN1aXRhYmxlIGZvciB5b3VyCgkJICogYXBwbGljYXRpb24uIEZvciBleGFtcGxlIHlvdSBjb3VsZCB1c2UgUE9TVCBkYXRhLCBvciBwdWxsIGluZm9ybWF0aW9uIGZyb20KCQkgKiBhIEdlYXJzIG9yIEFJUiBkYXRhYmFzZS4KCQkgKiAgQHR5cGUgZnVuY3Rpb24KCQkgKiAgQG1lbWJlcgoJCSAqICBAcGFyYW0ge3N0cmluZ30gc1NvdXJjZSBIVFRQIHNvdXJjZSB0byBvYnRhaW4gdGhlIGRhdGEgZnJvbSAoc0FqYXhTb3VyY2UpCgkJICogIEBwYXJhbSB7YXJyYXl9IGFvRGF0YSBBIGtleS92YWx1ZSBwYWlyIG9iamVjdCBjb250YWluaW5nIHRoZSBkYXRhIHRvIHNlbmQKCQkgKiAgICB0byB0aGUgc2VydmVyCgkJICogIEBwYXJhbSB7ZnVuY3Rpb259IGZuQ2FsbGJhY2sgdG8gYmUgY2FsbGVkIG9uIGNvbXBsZXRpb24gb2YgdGhlIGRhdGEgZ2V0CgkJICogICAgcHJvY2VzcyB0aGF0IHdpbGwgZHJhdyB0aGUgZGF0YSBvbiB0aGUgcGFnZS4KCQkgKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBEYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAoJCSAqICBAZHRvcHQgQ2FsbGJhY2tzCgkJICogIEBkdG9wdCBTZXJ2ZXItc2lkZQoJCSAqIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgIC8vIFBPU1QgZGF0YSB0byBzZXJ2ZXIKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAiYlByb2Nlc3NpbmciOiB0cnVlLAoJCSAqICAgICAgICAiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSAqICAgICAgICAic0FqYXhTb3VyY2UiOiAieGhyLnBocCIsCgkJICogICAgICAgICJmblNlcnZlckRhdGEiOiBmdW5jdGlvbiAoIHNTb3VyY2UsIGFvRGF0YSwgZm5DYWxsYmFjaywgb1NldHRpbmdzICkgewoJCSAqICAgICAgICAgIG9TZXR0aW5ncy5qcVhIUiA9ICQuYWpheCggewoJCSAqICAgICAgICAgICAgImRhdGFUeXBlIjogJ2pzb24nLCAKCQkgKiAgICAgICAgICAgICJ0eXBlIjogIlBPU1QiLCAKCQkgKiAgICAgICAgICAgICJ1cmwiOiBzU291cmNlLCAKCQkgKiAgICAgICAgICAgICJkYXRhIjogYW9EYXRhLCAKCQkgKiAgICAgICAgICAgICJzdWNjZXNzIjogZm5DYWxsYmFjawoJCSAqICAgICAgICAgIH0gKTsKCQkgKiAgICAgICAgfQoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKTsKCQkgKi8KCQkiZm5TZXJ2ZXJEYXRhIjogZnVuY3Rpb24gKCBzVXJsLCBhb0RhdGEsIGZuQ2FsbGJhY2ssIG9TZXR0aW5ncyApIHsKCQkJb1NldHRpbmdzLmpxWEhSID0gJC5hamF4KCB7CgkJCQkidXJsIjogIHNVcmwsCgkJCQkiZGF0YSI6IGFvRGF0YSwKCQkJCSJzdWNjZXNzIjogZnVuY3Rpb24gKGpzb24pIHsKCQkJCQlpZiAoIGpzb24uc0Vycm9yICkgewoJCQkJCQlvU2V0dGluZ3Mub0FwaS5fZm5Mb2coIG9TZXR0aW5ncywgMCwganNvbi5zRXJyb3IgKTsKCQkJCQl9CgkJCQkJCgkJCQkJJChvU2V0dGluZ3Mub0luc3RhbmNlKS50cmlnZ2VyKCd4aHInLCBbb1NldHRpbmdzLCBqc29uXSk7CgkJCQkJZm5DYWxsYmFjaygganNvbiApOwoJCQkJfSwKCQkJCSJkYXRhVHlwZSI6ICJqc29uIiwKCQkJCSJjYWNoZSI6IGZhbHNlLAoJCQkJInR5cGUiOiBvU2V0dGluZ3Muc1NlcnZlck1ldGhvZCwKCQkJCSJlcnJvciI6IGZ1bmN0aW9uICh4aHIsIGVycm9yLCB0aHJvd24pIHsKCQkJCQlpZiAoIGVycm9yID09ICJwYXJzZXJlcnJvciIgKSB7CgkJCQkJCW9TZXR0aW5ncy5vQXBpLl9mbkxvZyggb1NldHRpbmdzLCAwLCAiRGF0YVRhYmxlcyB3YXJuaW5nOiBKU09OIGRhdGEgZnJvbSAiKwoJCQkJCQkJInNlcnZlciBjb3VsZCBub3QgYmUgcGFyc2VkLiBUaGlzIGlzIGNhdXNlZCBieSBhIEpTT04gZm9ybWF0dGluZyBlcnJvci4iICk7CgkJCQkJfQoJCQkJfQoJCQl9ICk7CgkJfSwKCQoJCgkJLyoqCgkJICogSXQgaXMgb2Z0ZW4gdXNlZnVsIHRvIHNlbmQgZXh0cmEgZGF0YSB0byB0aGUgc2VydmVyIHdoZW4gbWFraW5nIGFuIEFqYXgKCQkgKiByZXF1ZXN0IC0gZm9yIGV4YW1wbGUgY3VzdG9tIGZpbHRlcmluZyBpbmZvcm1hdGlvbiwgYW5kIHRoaXMgY2FsbGJhY2sKCQkgKiBmdW5jdGlvbiBtYWtlcyBpdCB0cml2aWFsIHRvIHNlbmQgZXh0cmEgaW5mb3JtYXRpb24gdG8gdGhlIHNlcnZlci4gVGhlCgkJICogcGFzc2VkIGluIHBhcmFtZXRlciBpcyB0aGUgZGF0YSBzZXQgdGhhdCBoYXMgYmVlbiBjb25zdHJ1Y3RlZCBieQoJCSAqIERhdGFUYWJsZXMsIGFuZCB5b3UgY2FuIGFkZCB0byB0aGlzIG9yIG1vZGlmeSBpdCBhcyB5b3UgcmVxdWlyZS4KCQkgKiAgQHR5cGUgZnVuY3Rpb24KCQkgKiAgQHBhcmFtIHthcnJheX0gYW9EYXRhIERhdGEgYXJyYXkgKGFycmF5IG9mIG9iamVjdHMgd2hpY2ggYXJlIG5hbWUvdmFsdWUKCQkgKiAgICBwYWlycykgdGhhdCBoYXMgYmVlbiBjb25zdHJ1Y3RlZCBieSBEYXRhVGFibGVzIGFuZCB3aWxsIGJlIHNlbnQgdG8gdGhlCgkJICogICAgc2VydmVyLiBJbiB0aGUgY2FzZSBvZiBBamF4IHNvdXJjZWQgZGF0YSB3aXRoIHNlcnZlci1zaWRlIHByb2Nlc3NpbmcKCQkgKiAgICB0aGlzIHdpbGwgYmUgYW4gZW1wdHkgYXJyYXksIGZvciBzZXJ2ZXItc2lkZSBwcm9jZXNzaW5nIHRoZXJlIHdpbGwgYmUgYQoJCSAqICAgIHNpZ25pZmljYW50IG51bWJlciBvZiBwYXJhbWV0ZXJzIQoJCSAqICBAcmV0dXJucyB7dW5kZWZpbmVkfSBFbnN1cmUgdGhhdCB5b3UgbW9kaWZ5IHRoZSBhb0RhdGEgYXJyYXkgcGFzc2VkIGluLAoJCSAqICAgIGFzIHRoaXMgaXMgcGFzc2VkIGJ5IHJlZmVyZW5jZS4KCQkgKiAgQGR0b3B0IENhbGxiYWNrcwoJCSAqICBAZHRvcHQgU2VydmVyLXNpZGUKCQkgKiAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAiYlByb2Nlc3NpbmciOiB0cnVlLAoJCSAqICAgICAgICAiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSAqICAgICAgICAic0FqYXhTb3VyY2UiOiAic2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCSAqICAgICAgICAiZm5TZXJ2ZXJQYXJhbXMiOiBmdW5jdGlvbiAoIGFvRGF0YSApIHsKCQkgKiAgICAgICAgICBhb0RhdGEucHVzaCggeyAibmFtZSI6ICJtb3JlX2RhdGEiLCAidmFsdWUiOiAibXlfdmFsdWUiIH0gKTsKCQkgKiAgICAgICAgfQoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKTsKCQkgKi8KCQkiZm5TZXJ2ZXJQYXJhbXMiOiBudWxsLAoJCgkKCQkvKioKCQkgKiBMb2FkIHRoZSB0YWJsZSBzdGF0ZS4gV2l0aCB0aGlzIGZ1bmN0aW9uIHlvdSBjYW4gZGVmaW5lIGZyb20gd2hlcmUsIGFuZCBob3csIHRoZQoJCSAqIHN0YXRlIG9mIGEgdGFibGUgaXMgbG9hZGVkLiBCeSBkZWZhdWx0IERhdGFUYWJsZXMgd2lsbCBsb2FkIGZyb20gaXRzIHN0YXRlIHNhdmluZwoJCSAqIGNvb2tpZSwgYnV0IHlvdSBtaWdodCB3aXNoIHRvIHVzZSBsb2NhbCBzdG9yYWdlIChIVE1MNSkgb3IgYSBzZXJ2ZXItc2lkZSBkYXRhYmFzZS4KCQkgKiAgQHR5cGUgZnVuY3Rpb24KCQkgKiAgQG1lbWJlcgoJCSAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIERhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CgkJICogIEByZXR1cm4ge29iamVjdH0gVGhlIERhdGFUYWJsZXMgc3RhdGUgb2JqZWN0IHRvIGJlIGxvYWRlZAoJCSAqICBAZHRvcHQgQ2FsbGJhY2tzCgkJICogCgkJICogIEBleGFtcGxlCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgImJTdGF0ZVNhdmUiOiB0cnVlLAoJCSAqICAgICAgICAiZm5TdGF0ZUxvYWQiOiBmdW5jdGlvbiAob1NldHRpbmdzKSB7CgkJICogICAgICAgICAgdmFyIG87CgkJICogICAgICAgICAgCgkJICogICAgICAgICAgLy8gU2VuZCBhbiBBamF4IHJlcXVlc3QgdG8gdGhlIHNlcnZlciB0byBnZXQgdGhlIGRhdGEuIE5vdGUgdGhhdAoJCSAqICAgICAgICAgIC8vIHRoaXMgaXMgYSBzeW5jaHJvbm91cyByZXF1ZXN0LgoJCSAqICAgICAgICAgICQuYWpheCggewoJCSAqICAgICAgICAgICAgInVybCI6ICIvc3RhdGVfbG9hZCIsCgkJICogICAgICAgICAgICAiYXN5bmMiOiBmYWxzZSwKCQkgKiAgICAgICAgICAgICJkYXRhVHlwZSI6ICJqc29uIiwKCQkgKiAgICAgICAgICAgICJzdWNjZXNzIjogZnVuY3Rpb24gKGpzb24pIHsKCQkgKiAgICAgICAgICAgICAgbyA9IGpzb247CgkJICogICAgICAgICAgICB9CgkJICogICAgICAgICAgfSApOwoJCSAqICAgICAgICAgIAoJCSAqICAgICAgICAgIHJldHVybiBvOwoJCSAqICAgICAgICB9CgkJICogICAgICB9ICk7CgkJICogICAgfSApOwoJCSAqLwoJCSJmblN0YXRlTG9hZCI6IGZ1bmN0aW9uICggb1NldHRpbmdzICkgewoJCQl2YXIgc0RhdGEgPSB0aGlzLm9BcGkuX2ZuUmVhZENvb2tpZSggb1NldHRpbmdzLnNDb29raWVQcmVmaXgrb1NldHRpbmdzLnNJbnN0YW5jZSApOwoJCQl2YXIgb0RhdGE7CgkKCQkJdHJ5IHsKCQkJCW9EYXRhID0gKHR5cGVvZiAkLnBhcnNlSlNPTiA9PT0gJ2Z1bmN0aW9uJykgPyAKCQkJCQkkLnBhcnNlSlNPTihzRGF0YSkgOiBldmFsKCAnKCcrc0RhdGErJyknICk7CgkJCX0gY2F0Y2ggKGUpIHsKCQkJCW9EYXRhID0gbnVsbDsKCQkJfQoJCgkJCXJldHVybiBvRGF0YTsKCQl9LAoJCgkKCQkvKioKCQkgKiBDYWxsYmFjayB3aGljaCBhbGxvd3MgbW9kaWZpY2F0aW9uIG9mIHRoZSBzYXZlZCBzdGF0ZSBwcmlvciB0byBsb2FkaW5nIHRoYXQgc3RhdGUuCgkJICogVGhpcyBjYWxsYmFjayBpcyBjYWxsZWQgd2hlbiB0aGUgdGFibGUgaXMgbG9hZGluZyBzdGF0ZSBmcm9tIHRoZSBzdG9yZWQgZGF0YSwgYnV0CgkJICogcHJpb3IgdG8gdGhlIHNldHRpbmdzIG9iamVjdCBiZWluZyBtb2RpZmllZCBieSB0aGUgc2F2ZWQgc3RhdGUuIE5vdGUgdGhhdCBmb3IgCgkJICogcGx1Zy1pbiBhdXRob3JzLCB5b3Ugc2hvdWxkIHVzZSB0aGUgJ3N0YXRlTG9hZFBhcmFtcycgZXZlbnQgdG8gbG9hZCBwYXJhbWV0ZXJzIGZvciAKCQkgKiBhIHBsdWctaW4uCgkJICogIEB0eXBlIGZ1bmN0aW9uCgkJICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgRGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCQkgKiAgQHBhcmFtIHtvYmplY3R9IG9EYXRhIFRoZSBzdGF0ZSBvYmplY3QgdGhhdCBpcyB0byBiZSBsb2FkZWQKCQkgKiAgQGR0b3B0IENhbGxiYWNrcwoJCSAqIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgIC8vIFJlbW92ZSBhIHNhdmVkIGZpbHRlciwgc28gZmlsdGVyaW5nIGlzIG5ldmVyIGxvYWRlZAoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJiU3RhdGVTYXZlIjogdHJ1ZSwKCQkgKiAgICAgICAgImZuU3RhdGVMb2FkUGFyYW1zIjogZnVuY3Rpb24gKG9TZXR0aW5ncywgb0RhdGEpIHsKCQkgKiAgICAgICAgICBvRGF0YS5vU2VhcmNoLnNTZWFyY2ggPSAiIjsKCQkgKiAgICAgICAgfQoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKTsKCQkgKiAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAvLyBEaXNhbGxvdyBzdGF0ZSBsb2FkaW5nIGJ5IHJldHVybmluZyBmYWxzZQoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJiU3RhdGVTYXZlIjogdHJ1ZSwKCQkgKiAgICAgICAgImZuU3RhdGVMb2FkUGFyYW1zIjogZnVuY3Rpb24gKG9TZXR0aW5ncywgb0RhdGEpIHsKCQkgKiAgICAgICAgICByZXR1cm4gZmFsc2U7CgkJICogICAgICAgIH0KCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICovCgkJImZuU3RhdGVMb2FkUGFyYW1zIjogbnVsbCwKCQoJCgkJLyoqCgkJICogQ2FsbGJhY2sgdGhhdCBpcyBjYWxsZWQgd2hlbiB0aGUgc3RhdGUgaGFzIGJlZW4gbG9hZGVkIGZyb20gdGhlIHN0YXRlIHNhdmluZyBtZXRob2QKCQkgKiBhbmQgdGhlIERhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0IGhhcyBiZWVuIG1vZGlmaWVkIGFzIGEgcmVzdWx0IG9mIHRoZSBsb2FkZWQgc3RhdGUuCgkJICogIEB0eXBlIGZ1bmN0aW9uCgkJICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgRGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCQkgKiAgQHBhcmFtIHtvYmplY3R9IG9EYXRhIFRoZSBzdGF0ZSBvYmplY3QgdGhhdCB3YXMgbG9hZGVkCgkJICogIEBkdG9wdCBDYWxsYmFja3MKCQkgKiAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAvLyBTaG93IGFuIGFsZXJ0IHdpdGggdGhlIGZpbHRlcmluZyB2YWx1ZSB0aGF0IHdhcyBzYXZlZAoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJiU3RhdGVTYXZlIjogdHJ1ZSwKCQkgKiAgICAgICAgImZuU3RhdGVMb2FkZWQiOiBmdW5jdGlvbiAob1NldHRpbmdzLCBvRGF0YSkgewoJCSAqICAgICAgICAgIGFsZXJ0KCAnU2F2ZWQgZmlsdGVyIHdhczogJytvRGF0YS5vU2VhcmNoLnNTZWFyY2ggKTsKCQkgKiAgICAgICAgfQoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKTsKCQkgKi8KCQkiZm5TdGF0ZUxvYWRlZCI6IG51bGwsCgkKCQoJCS8qKgoJCSAqIFNhdmUgdGhlIHRhYmxlIHN0YXRlLiBUaGlzIGZ1bmN0aW9uIGFsbG93cyB5b3UgdG8gZGVmaW5lIHdoZXJlIGFuZCBob3cgdGhlIHN0YXRlCgkJICogaW5mb3JtYXRpb24gZm9yIHRoZSB0YWJsZSBpcyBzdG9yZWQgLSBieSBkZWZhdWx0IGl0IHdpbGwgdXNlIGEgY29va2llLCBidXQgeW91CgkJICogbWlnaHQgd2FudCB0byB1c2UgbG9jYWwgc3RvcmFnZSAoSFRNTDUpIG9yIGEgc2VydmVyLXNpZGUgZGF0YWJhc2UuCgkJICogIEB0eXBlIGZ1bmN0aW9uCgkJICogIEBtZW1iZXIKCQkgKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBEYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAoJCSAqICBAcGFyYW0ge29iamVjdH0gb0RhdGEgVGhlIHN0YXRlIG9iamVjdCB0byBiZSBzYXZlZAoJCSAqICBAZHRvcHQgQ2FsbGJhY2tzCgkJICogCgkJICogIEBleGFtcGxlCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgImJTdGF0ZVNhdmUiOiB0cnVlLAoJCSAqICAgICAgICAiZm5TdGF0ZVNhdmUiOiBmdW5jdGlvbiAob1NldHRpbmdzLCBvRGF0YSkgewoJCSAqICAgICAgICAgIC8vIFNlbmQgYW4gQWpheCByZXF1ZXN0IHRvIHRoZSBzZXJ2ZXIgd2l0aCB0aGUgc3RhdGUgb2JqZWN0CgkJICogICAgICAgICAgJC5hamF4KCB7CgkJICogICAgICAgICAgICAidXJsIjogIi9zdGF0ZV9zYXZlIiwKCQkgKiAgICAgICAgICAgICJkYXRhIjogb0RhdGEsCgkJICogICAgICAgICAgICAiZGF0YVR5cGUiOiAianNvbiIsCgkJICogICAgICAgICAgICAibWV0aG9kIjogIlBPU1QiCgkJICogICAgICAgICAgICAic3VjY2VzcyI6IGZ1bmN0aW9uICgpIHt9CgkJICogICAgICAgICAgfSApOwoJCSAqICAgICAgICB9CgkJICogICAgICB9ICk7CgkJICogICAgfSApOwoJCSAqLwoJCSJmblN0YXRlU2F2ZSI6IGZ1bmN0aW9uICggb1NldHRpbmdzLCBvRGF0YSApIHsKCQkJdGhpcy5vQXBpLl9mbkNyZWF0ZUNvb2tpZSggCgkJCQlvU2V0dGluZ3Muc0Nvb2tpZVByZWZpeCtvU2V0dGluZ3Muc0luc3RhbmNlLCAKCQkJCXRoaXMub0FwaS5fZm5Kc29uU3RyaW5nKG9EYXRhKSwgCgkJCQlvU2V0dGluZ3MuaUNvb2tpZUR1cmF0aW9uLCAKCQkJCW9TZXR0aW5ncy5zQ29va2llUHJlZml4LCAKCQkJCW9TZXR0aW5ncy5mbkNvb2tpZUNhbGxiYWNrCgkJCSk7CgkJfSwKCQoJCgkJLyoqCgkJICogQ2FsbGJhY2sgd2hpY2ggYWxsb3dzIG1vZGlmaWNhdGlvbiBvZiB0aGUgc3RhdGUgdG8gYmUgc2F2ZWQuIENhbGxlZCB3aGVuIHRoZSB0YWJsZSAKCQkgKiBoYXMgY2hhbmdlZCBzdGF0ZSBhIG5ldyBzdGF0ZSBzYXZlIGlzIHJlcXVpcmVkLiBUaGlzIG1ldGhvZCBhbGxvd3MgbW9kaWZpY2F0aW9uIG9mCgkJICogdGhlIHN0YXRlIHNhdmluZyBvYmplY3QgcHJpb3IgdG8gYWN0dWFsbHkgZG9pbmcgdGhlIHNhdmUsIGluY2x1ZGluZyBhZGRpdGlvbiBvciAKCQkgKiBvdGhlciBzdGF0ZSBwcm9wZXJ0aWVzIG9yIG1vZGlmaWNhdGlvbi4gTm90ZSB0aGF0IGZvciBwbHVnLWluIGF1dGhvcnMsIHlvdSBzaG91bGQgCgkJICogdXNlIHRoZSAnc3RhdGVTYXZlUGFyYW1zJyBldmVudCB0byBzYXZlIHBhcmFtZXRlcnMgZm9yIGEgcGx1Zy1pbi4KCQkgKiAgQHR5cGUgZnVuY3Rpb24KCQkgKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBEYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAoJCSAqICBAcGFyYW0ge29iamVjdH0gb0RhdGEgVGhlIHN0YXRlIG9iamVjdCB0byBiZSBzYXZlZAoJCSAqICBAZHRvcHQgQ2FsbGJhY2tzCgkJICogCgkJICogIEBleGFtcGxlCgkJICogICAgLy8gUmVtb3ZlIGEgc2F2ZWQgZmlsdGVyLCBzbyBmaWx0ZXJpbmcgaXMgbmV2ZXIgc2F2ZWQKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAiYlN0YXRlU2F2ZSI6IHRydWUsCgkJICogICAgICAgICJmblN0YXRlU2F2ZVBhcmFtcyI6IGZ1bmN0aW9uIChvU2V0dGluZ3MsIG9EYXRhKSB7CgkJICogICAgICAgICAgb0RhdGEub1NlYXJjaC5zU2VhcmNoID0gIiI7CgkJICogICAgICAgIH0KCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICovCgkJImZuU3RhdGVTYXZlUGFyYW1zIjogbnVsbCwKCQoJCgkJLyoqCgkJICogRHVyYXRpb24gb2YgdGhlIGNvb2tpZSB3aGljaCBpcyB1c2VkIGZvciBzdG9yaW5nIHNlc3Npb24gaW5mb3JtYXRpb24uIFRoaXMKCQkgKiB2YWx1ZSBpcyBnaXZlbiBpbiBzZWNvbmRzLgoJCSAqICBAdHlwZSBpbnQKCQkgKiAgQGRlZmF1bHQgNzIwMCA8aT4oMiBob3Vycyk8L2k+CgkJICogIEBkdG9wdCBPcHRpb25zCgkJICogCgkJICogIEBleGFtcGxlCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgImlDb29raWVEdXJhdGlvbiI6IDYwKjYwKjI0OyAvLyAxIGRheQoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKQoJCSAqLwoJCSJpQ29va2llRHVyYXRpb24iOiA3MjAwLAoJCgkKCQkvKioKCQkgKiBXaGVuIGVuYWJsZWQgRGF0YVRhYmxlcyB3aWxsIG5vdCBtYWtlIGEgcmVxdWVzdCB0byB0aGUgc2VydmVyIGZvciB0aGUgZmlyc3QKCQkgKiBwYWdlIGRyYXcgLSByYXRoZXIgaXQgd2lsbCB1c2UgdGhlIGRhdGEgYWxyZWFkeSBvbiB0aGUgcGFnZSAobm8gc29ydGluZyBldGMKCQkgKiB3aWxsIGJlIGFwcGxpZWQgdG8gaXQpLCB0aHVzIHNhdmluZyBvbiBhbiBYSFIgYXQgbG9hZCB0aW1lLiBpRGVmZXJMb2FkaW5nCgkJICogaXMgdXNlZCB0byBpbmRpY2F0ZSB0aGF0IGRlZmVycmVkIGxvYWRpbmcgaXMgcmVxdWlyZWQsIGJ1dCBpdCBpcyBhbHNvIHVzZWQKCQkgKiB0byB0ZWxsIERhdGFUYWJsZXMgaG93IG1hbnkgcmVjb3JkcyB0aGVyZSBhcmUgaW4gdGhlIGZ1bGwgdGFibGUgKGFsbG93aW5nCgkJICogdGhlIGluZm9ybWF0aW9uIGVsZW1lbnQgYW5kIHBhZ2luYXRpb24gdG8gYmUgZGlzcGxheWVkIGNvcnJlY3RseSkuIEluIHRoZSBjYXNlCgkJICogd2hlcmUgYSBmaWx0ZXJpbmcgaXMgYXBwbGllZCB0byB0aGUgdGFibGUgb24gaW5pdGlhbCBsb2FkLCB0aGlzIGNhbiBiZQoJCSAqIGluZGljYXRlZCBieSBnaXZpbmcgdGhlIHBhcmFtZXRlciBhcyBhbiBhcnJheSwgd2hlcmUgdGhlIGZpcnN0IGVsZW1lbnQgaXMKCQkgKiB0aGUgbnVtYmVyIG9mIHJlY29yZHMgYXZhaWxhYmxlIGFmdGVyIGZpbHRlcmluZyBhbmQgdGhlIHNlY29uZCBlbGVtZW50IGlzIHRoZQoJCSAqIG51bWJlciBvZiByZWNvcmRzIHdpdGhvdXQgZmlsdGVyaW5nIChhbGxvd2luZyB0aGUgdGFibGUgaW5mb3JtYXRpb24gZWxlbWVudAoJCSAqIHRvIGJlIHNob3duIGNvcnJlY3RseSkuCgkJICogIEB0eXBlIGludCB8IGFycmF5CgkJICogIEBkZWZhdWx0IG51bGwKCQkgKiAgQGR0b3B0IE9wdGlvbnMKCQkgKiAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAvLyA1NyByZWNvcmRzIGF2YWlsYWJsZSBpbiB0aGUgdGFibGUsIG5vIGZpbHRlcmluZyBhcHBsaWVkCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkgKiAgICAgICAgInNBamF4U291cmNlIjogInNjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkgKiAgICAgICAgImlEZWZlckxvYWRpbmciOiA1NwoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKTsKCQkgKiAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAvLyA1NyByZWNvcmRzIGFmdGVyIGZpbHRlcmluZywgMTAwIHdpdGhvdXQgZmlsdGVyaW5nIChhbiBpbml0aWFsIGZpbHRlciBhcHBsaWVkKQoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJiU2VydmVyU2lkZSI6IHRydWUsCgkJICogICAgICAgICJzQWpheFNvdXJjZSI6ICJzY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJICogICAgICAgICJpRGVmZXJMb2FkaW5nIjogWyA1NywgMTAwIF0sCgkJICogICAgICAgICJvU2VhcmNoIjogewoJCSAqICAgICAgICAgICJzU2VhcmNoIjogIm15X2ZpbHRlciIKCQkgKiAgICAgICAgfQoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKTsKCQkgKi8KCQkiaURlZmVyTG9hZGluZyI6IG51bGwsCgkKCQoJCS8qKgoJCSAqIE51bWJlciBvZiByb3dzIHRvIGRpc3BsYXkgb24gYSBzaW5nbGUgcGFnZSB3aGVuIHVzaW5nIHBhZ2luYXRpb24uIElmCgkJICogZmVhdHVyZSBlbmFibGVkIChiTGVuZ3RoQ2hhbmdlKSB0aGVuIHRoZSBlbmQgdXNlciB3aWxsIGJlIGFibGUgdG8gb3ZlcnJpZGUKCQkgKiB0aGlzIHRvIGEgY3VzdG9tIHNldHRpbmcgdXNpbmcgYSBwb3AtdXAgbWVudS4KCQkgKiAgQHR5cGUgaW50CgkJICogIEBkZWZhdWx0IDEwCgkJICogIEBkdG9wdCBPcHRpb25zCgkJICogCgkJICogIEBleGFtcGxlCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgImlEaXNwbGF5TGVuZ3RoIjogNTAKCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICkKCQkgKi8KCQkiaURpc3BsYXlMZW5ndGgiOiAxMCwKCQoJCgkJLyoqCgkJICogRGVmaW5lIHRoZSBzdGFydGluZyBwb2ludCBmb3IgZGF0YSBkaXNwbGF5IHdoZW4gdXNpbmcgRGF0YVRhYmxlcyB3aXRoCgkJICogcGFnaW5hdGlvbi4gTm90ZSB0aGF0IHRoaXMgcGFyYW1ldGVyIGlzIHRoZSBudW1iZXIgb2YgcmVjb3JkcywgcmF0aGVyIHRoYW4KCQkgKiB0aGUgcGFnZSBudW1iZXIsIHNvIGlmIHlvdSBoYXZlIDEwIHJlY29yZHMgcGVyIHBhZ2UgYW5kIHdhbnQgdG8gc3RhcnQgb24KCQkgKiB0aGUgdGhpcmQgcGFnZSwgaXQgc2hvdWxkIGJlICIyMCIuCgkJICogIEB0eXBlIGludAoJCSAqICBAZGVmYXVsdCAwCgkJICogIEBkdG9wdCBPcHRpb25zCgkJICogCgkJICogIEBleGFtcGxlCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgImlEaXNwbGF5U3RhcnQiOiAyMAoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKQoJCSAqLwoJCSJpRGlzcGxheVN0YXJ0IjogMCwKCQoJCgkJLyoqCgkJICogVGhlIHNjcm9sbCBnYXAgaXMgdGhlIGFtb3VudCBvZiBzY3JvbGxpbmcgdGhhdCBpcyBsZWZ0IHRvIGdvIGJlZm9yZQoJCSAqIERhdGFUYWJsZXMgd2lsbCBsb2FkIHRoZSBuZXh0ICdwYWdlJyBvZiBkYXRhIGF1dG9tYXRpY2FsbHkuIFlvdSB0eXBpY2FsbHkKCQkgKiB3YW50IGEgZ2FwIHdoaWNoIGlzIGJpZyBlbm91Z2ggdGhhdCB0aGUgc2Nyb2xsaW5nIHdpbGwgYmUgc21vb3RoIGZvciB0aGUKCQkgKiB1c2VyLCB3aGlsZSBub3Qgc28gbGFyZ2UgdGhhdCBpdCB3aWxsIGxvYWQgbW9yZSBkYXRhIHRoYW4gbmVlZC4KCQkgKiAgQHR5cGUgaW50CgkJICogIEBkZWZhdWx0IDEwMAoJCSAqICBAZHRvcHQgT3B0aW9ucwoJCSAqIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJiU2Nyb2xsSW5maW5pdGUiOiB0cnVlLAoJCSAqICAgICAgICAiYlNjcm9sbENvbGxhcHNlIjogdHJ1ZSwKCQkgKiAgICAgICAgInNTY3JvbGxZIjogIjIwMHB4IiwKCQkgKiAgICAgICAgImlTY3JvbGxMb2FkR2FwIjogNTAKCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICovCgkJImlTY3JvbGxMb2FkR2FwIjogMTAwLAoJCgkKCQkvKioKCQkgKiBCeSBkZWZhdWx0IERhdGFUYWJsZXMgYWxsb3dzIGtleWJvYXJkIG5hdmlnYXRpb24gb2YgdGhlIHRhYmxlIChzb3J0aW5nLCBwYWdpbmcsCgkJICogYW5kIGZpbHRlcmluZykgYnkgYWRkaW5nIGEgdGFiaW5kZXggYXR0cmlidXRlIHRvIHRoZSByZXF1aXJlZCBlbGVtZW50cy4gVGhpcwoJCSAqIGFsbG93cyB5b3UgdG8gdGFiIHRocm91Z2ggdGhlIGNvbnRyb2xzIGFuZCBwcmVzcyB0aGUgZW50ZXIga2V5IHRvIGFjdGl2YXRlIHRoZW0uCgkJICogVGhlIHRhYmluZGV4IGlzIGRlZmF1bHQgMCwgbWVhbmluZyB0aGF0IHRoZSB0YWIgZm9sbG93cyB0aGUgZmxvdyBvZiB0aGUgZG9jdW1lbnQuCgkJICogWW91IGNhbiBvdmVycnVsZSB0aGlzIHVzaW5nIHRoaXMgcGFyYW1ldGVyIGlmIHlvdSB3aXNoLiBVc2UgYSB2YWx1ZSBvZiAtMSB0bwoJCSAqIGRpc2FibGUgYnVpbHQtaW4ga2V5Ym9hcmQgbmF2aWdhdGlvbi4KCQkgKiAgQHR5cGUgaW50CgkJICogIEBkZWZhdWx0IDAKCQkgKiAgQGR0b3B0IE9wdGlvbnMKCQkgKiAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAiaVRhYkluZGV4IjogMQoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKTsKCQkgKi8KCQkiaVRhYkluZGV4IjogMCwKCQoJCgkJLyoqCgkJICogQWxsIHN0cmluZ3MgdGhhdCBEYXRhVGFibGVzIHVzZXMgaW4gdGhlIHVzZXIgaW50ZXJmYWNlIHRoYXQgaXQgY3JlYXRlcwoJCSAqIGFyZSBkZWZpbmVkIGluIHRoaXMgb2JqZWN0LCBhbGxvd2luZyB5b3UgdG8gbW9kaWZpZWQgdGhlbSBpbmRpdmlkdWFsbHkgb3IKCQkgKiBjb21wbGV0ZWx5IHJlcGxhY2UgdGhlbSBhbGwgYXMgcmVxdWlyZWQuCgkJICogIEBuYW1lc3BhY2UKCQkgKi8KCQkib0xhbmd1YWdlIjogewoJCQkvKioKCQkJICogU3RyaW5ncyB0aGF0IGFyZSB1c2VkIGZvciBXQUktQVJJQSBsYWJlbHMgYW5kIGNvbnRyb2xzIG9ubHkgKHRoZXNlIGFyZSBub3QKCQkJICogYWN0dWFsbHkgdmlzaWJsZSBvbiB0aGUgcGFnZSwgYnV0IHdpbGwgYmUgcmVhZCBieSBzY3JlZW5yZWFkZXJzLCBhbmQgdGh1cwoJCQkgKiBtdXN0IGJlIGludGVybmF0aW9uYWxpc2VkIGFzIHdlbGwpLgoJCQkgKiAgQG5hbWVzcGFjZQoJCQkgKi8KCQkJIm9BcmlhIjogewoJCQkJLyoqCgkJCQkgKiBBUklBIGxhYmVsIHRoYXQgaXMgYWRkZWQgdG8gdGhlIHRhYmxlIGhlYWRlcnMgd2hlbiB0aGUgY29sdW1uIG1heSBiZQoJCQkJICogc29ydGVkIGFzY2VuZGluZyBieSBhY3RpdmluZyB0aGUgY29sdW1uIChjbGljayBvciByZXR1cm4gd2hlbiBmb2N1c2VkKS4KCQkJCSAqIE5vdGUgdGhhdCB0aGUgY29sdW1uIGhlYWRlciBpcyBwcmVmaXhlZCB0byB0aGlzIHN0cmluZy4KCQkJCSAqICBAdHlwZSBzdHJpbmcKCQkJCSAqICBAZGVmYXVsdCA6IGFjdGl2YXRlIHRvIHNvcnQgY29sdW1uIGFzY2VuZGluZwoJCQkJICogIEBkdG9wdCBMYW5ndWFnZQoJCQkJICogCgkJCQkgKiAgQGV4YW1wbGUKCQkJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSAqICAgICAgICAib0xhbmd1YWdlIjogewoJCQkJICogICAgICAgICAgIm9BcmlhIjogewoJCQkJICogICAgICAgICAgICAic1NvcnRBc2NlbmRpbmciOiAiIC0gY2xpY2svcmV0dXJuIHRvIHNvcnQgYXNjZW5kaW5nIgoJCQkJICogICAgICAgICAgfQoJCQkJICogICAgICAgIH0KCQkJCSAqICAgICAgfSApOwoJCQkJICogICAgfSApOwoJCQkJICovCgkJCQkic1NvcnRBc2NlbmRpbmciOiAiOiBhY3RpdmF0ZSB0byBzb3J0IGNvbHVtbiBhc2NlbmRpbmciLAoJCgkJCQkvKioKCQkJCSAqIEFSSUEgbGFiZWwgdGhhdCBpcyBhZGRlZCB0byB0aGUgdGFibGUgaGVhZGVycyB3aGVuIHRoZSBjb2x1bW4gbWF5IGJlCgkJCQkgKiBzb3J0ZWQgZGVzY2VuZGluZyBieSBhY3RpdmluZyB0aGUgY29sdW1uIChjbGljayBvciByZXR1cm4gd2hlbiBmb2N1c2VkKS4KCQkJCSAqIE5vdGUgdGhhdCB0aGUgY29sdW1uIGhlYWRlciBpcyBwcmVmaXhlZCB0byB0aGlzIHN0cmluZy4KCQkJCSAqICBAdHlwZSBzdHJpbmcKCQkJCSAqICBAZGVmYXVsdCA6IGFjdGl2YXRlIHRvIHNvcnQgY29sdW1uIGFzY2VuZGluZwoJCQkJICogIEBkdG9wdCBMYW5ndWFnZQoJCQkJICogCgkJCQkgKiAgQGV4YW1wbGUKCQkJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSAqICAgICAgICAib0xhbmd1YWdlIjogewoJCQkJICogICAgICAgICAgIm9BcmlhIjogewoJCQkJICogICAgICAgICAgICAic1NvcnREZXNjZW5kaW5nIjogIiAtIGNsaWNrL3JldHVybiB0byBzb3J0IGRlc2NlbmRpbmciCgkJCQkgKiAgICAgICAgICB9CgkJCQkgKiAgICAgICAgfQoJCQkJICogICAgICB9ICk7CgkJCQkgKiAgICB9ICk7CgkJCQkgKi8KCQkJCSJzU29ydERlc2NlbmRpbmciOiAiOiBhY3RpdmF0ZSB0byBzb3J0IGNvbHVtbiBkZXNjZW5kaW5nIgoJCQl9LAoJCgkJCS8qKgoJCQkgKiBQYWdpbmF0aW9uIHN0cmluZyB1c2VkIGJ5IERhdGFUYWJsZXMgZm9yIHRoZSB0d28gYnVpbHQtaW4gcGFnaW5hdGlvbgoJCQkgKiBjb250cm9sIHR5cGVzICgidHdvX2J1dHRvbiIgYW5kICJmdWxsX251bWJlcnMiKQoJCQkgKiAgQG5hbWVzcGFjZQoJCQkgKi8KCQkJIm9QYWdpbmF0ZSI6IHsKCQkJCS8qKgoJCQkJICogVGV4dCB0byB1c2Ugd2hlbiB1c2luZyB0aGUgJ2Z1bGxfbnVtYmVycycgdHlwZSBvZiBwYWdpbmF0aW9uIGZvciB0aGUKCQkJCSAqIGJ1dHRvbiB0byB0YWtlIHRoZSB1c2VyIHRvIHRoZSBmaXJzdCBwYWdlLgoJCQkJICogIEB0eXBlIHN0cmluZwoJCQkJICogIEBkZWZhdWx0IEZpcnN0CgkJCQkgKiAgQGR0b3B0IExhbmd1YWdlCgkJCQkgKiAKCQkJCSAqICBAZXhhbXBsZQoJCQkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCQkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJICogICAgICAgICJvTGFuZ3VhZ2UiOiB7CgkJCQkgKiAgICAgICAgICAib1BhZ2luYXRlIjogewoJCQkJICogICAgICAgICAgICAic0ZpcnN0IjogIkZpcnN0IHBhZ2UiCgkJCQkgKiAgICAgICAgICB9CgkJCQkgKiAgICAgICAgfQoJCQkJICogICAgICB9ICk7CgkJCQkgKiAgICB9ICk7CgkJCQkgKi8KCQkJCSJzRmlyc3QiOiAiRmlyc3QiLAoJCQkKCQkJCgkJCQkvKioKCQkJCSAqIFRleHQgdG8gdXNlIHdoZW4gdXNpbmcgdGhlICdmdWxsX251bWJlcnMnIHR5cGUgb2YgcGFnaW5hdGlvbiBmb3IgdGhlCgkJCQkgKiBidXR0b24gdG8gdGFrZSB0aGUgdXNlciB0byB0aGUgbGFzdCBwYWdlLgoJCQkJICogIEB0eXBlIHN0cmluZwoJCQkJICogIEBkZWZhdWx0IExhc3QKCQkJCSAqICBAZHRvcHQgTGFuZ3VhZ2UKCQkJCSAqIAoJCQkJICogIEBleGFtcGxlCgkJCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkgKiAgICAgICAgIm9MYW5ndWFnZSI6IHsKCQkJCSAqICAgICAgICAgICJvUGFnaW5hdGUiOiB7CgkJCQkgKiAgICAgICAgICAgICJzTGFzdCI6ICJMYXN0IHBhZ2UiCgkJCQkgKiAgICAgICAgICB9CgkJCQkgKiAgICAgICAgfQoJCQkJICogICAgICB9ICk7CgkJCQkgKiAgICB9ICk7CgkJCQkgKi8KCQkJCSJzTGFzdCI6ICJMYXN0IiwKCQkJCgkJCQoJCQkJLyoqCgkJCQkgKiBUZXh0IHRvIHVzZSB3aGVuIHVzaW5nIHRoZSAnZnVsbF9udW1iZXJzJyB0eXBlIG9mIHBhZ2luYXRpb24gZm9yIHRoZQoJCQkJICogYnV0dG9uIHRvIHRha2UgdGhlIHVzZXIgdG8gdGhlIG5leHQgcGFnZS4KCQkJCSAqICBAdHlwZSBzdHJpbmcKCQkJCSAqICBAZGVmYXVsdCBOZXh0CgkJCQkgKiAgQGR0b3B0IExhbmd1YWdlCgkJCQkgKiAKCQkJCSAqICBAZXhhbXBsZQoJCQkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCQkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJICogICAgICAgICJvTGFuZ3VhZ2UiOiB7CgkJCQkgKiAgICAgICAgICAib1BhZ2luYXRlIjogewoJCQkJICogICAgICAgICAgICAic05leHQiOiAiTmV4dCBwYWdlIgoJCQkJICogICAgICAgICAgfQoJCQkJICogICAgICAgIH0KCQkJCSAqICAgICAgfSApOwoJCQkJICogICAgfSApOwoJCQkJICovCgkJCQkic05leHQiOiAiTmV4dCIsCgkJCQoJCQkKCQkJCS8qKgoJCQkJICogVGV4dCB0byB1c2Ugd2hlbiB1c2luZyB0aGUgJ2Z1bGxfbnVtYmVycycgdHlwZSBvZiBwYWdpbmF0aW9uIGZvciB0aGUKCQkJCSAqIGJ1dHRvbiB0byB0YWtlIHRoZSB1c2VyIHRvIHRoZSBwcmV2aW91cyBwYWdlLgoJCQkJICogIEB0eXBlIHN0cmluZwoJCQkJICogIEBkZWZhdWx0IFByZXZpb3VzCgkJCQkgKiAgQGR0b3B0IExhbmd1YWdlCgkJCQkgKiAKCQkJCSAqICBAZXhhbXBsZQoJCQkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCQkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJICogICAgICAgICJvTGFuZ3VhZ2UiOiB7CgkJCQkgKiAgICAgICAgICAib1BhZ2luYXRlIjogewoJCQkJICogICAgICAgICAgICAic1ByZXZpb3VzIjogIlByZXZpb3VzIHBhZ2UiCgkJCQkgKiAgICAgICAgICB9CgkJCQkgKiAgICAgICAgfQoJCQkJICogICAgICB9ICk7CgkJCQkgKiAgICB9ICk7CgkJCQkgKi8KCQkJCSJzUHJldmlvdXMiOiAiUHJldmlvdXMiCgkJCX0sCgkJCgkJCS8qKgoJCQkgKiBUaGlzIHN0cmluZyBpcyBzaG93biBpbiBwcmVmZXJlbmNlIHRvIHNaZXJvUmVjb3JkcyB3aGVuIHRoZSB0YWJsZSBpcwoJCQkgKiBlbXB0eSBvZiBkYXRhIChyZWdhcmRsZXNzIG9mIGZpbHRlcmluZykuIE5vdGUgdGhhdCB0aGlzIGlzIGFuIG9wdGlvbmFsCgkJCSAqIHBhcmFtZXRlciAtIGlmIGl0IGlzIG5vdCBnaXZlbiwgdGhlIHZhbHVlIG9mIHNaZXJvUmVjb3JkcyB3aWxsIGJlIHVzZWQKCQkJICogaW5zdGVhZCAoZWl0aGVyIHRoZSBkZWZhdWx0IG9yIGdpdmVuIHZhbHVlKS4KCQkJICogIEB0eXBlIHN0cmluZwoJCQkgKiAgQGRlZmF1bHQgTm8gZGF0YSBhdmFpbGFibGUgaW4gdGFibGUKCQkJICogIEBkdG9wdCBMYW5ndWFnZQoJCQkgKiAKCQkJICogIEBleGFtcGxlCgkJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkgKiAgICAgICAgIm9MYW5ndWFnZSI6IHsKCQkJICogICAgICAgICAgInNFbXB0eVRhYmxlIjogIk5vIGRhdGEgYXZhaWxhYmxlIGluIHRhYmxlIgoJCQkgKiAgICAgICAgfQoJCQkgKiAgICAgIH0gKTsKCQkJICogICAgfSApOwoJCQkgKi8KCQkJInNFbXB0eVRhYmxlIjogIk5vIGRhdGEgYXZhaWxhYmxlIGluIHRhYmxlIiwKCQkKCQkKCQkJLyoqCgkJCSAqIFRoaXMgc3RyaW5nIGdpdmVzIGluZm9ybWF0aW9uIHRvIHRoZSBlbmQgdXNlciBhYm91dCB0aGUgaW5mb3JtYXRpb24gdGhhdCAKCQkJICogaXMgY3VycmVudCBvbiBkaXNwbGF5IG9uIHRoZSBwYWdlLiBUaGUgX1NUQVJUXywgX0VORF8gYW5kIF9UT1RBTF8gCgkJCSAqIHZhcmlhYmxlcyBhcmUgYWxsIGR5bmFtaWNhbGx5IHJlcGxhY2VkIGFzIHRoZSB0YWJsZSBkaXNwbGF5IHVwZGF0ZXMsIGFuZCAKCQkJICogY2FuIGJlIGZyZWVseSBtb3ZlZCBvciByZW1vdmVkIGFzIHRoZSBsYW5ndWFnZSByZXF1aXJlbWVudHMgY2hhbmdlLgoJCQkgKiAgQHR5cGUgc3RyaW5nCgkJCSAqICBAZGVmYXVsdCBTaG93aW5nIF9TVEFSVF8gdG8gX0VORF8gb2YgX1RPVEFMXyBlbnRyaWVzCgkJCSAqICBAZHRvcHQgTGFuZ3VhZ2UKCQkJICogCgkJCSAqICBAZXhhbXBsZQoJCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJICogICAgICAgICJvTGFuZ3VhZ2UiOiB7CgkJCSAqICAgICAgICAgICJzSW5mbyI6ICJHb3QgYSB0b3RhbCBvZiBfVE9UQUxfIGVudHJpZXMgdG8gc2hvdyAoX1NUQVJUXyB0byBfRU5EXykiCgkJCSAqICAgICAgICB9CgkJCSAqICAgICAgfSApOwoJCQkgKiAgICB9ICk7CgkJCSAqLwoJCQkic0luZm8iOiAiU2hvd2luZyBfU1RBUlRfIHRvIF9FTkRfIG9mIF9UT1RBTF8gZW50cmllcyIsCgkJCgkJCgkJCS8qKgoJCQkgKiBEaXNwbGF5IGluZm9ybWF0aW9uIHN0cmluZyBmb3Igd2hlbiB0aGUgdGFibGUgaXMgZW1wdHkuIFR5cGljYWxseSB0aGUgCgkJCSAqIGZvcm1hdCBvZiB0aGlzIHN0cmluZyBzaG91bGQgbWF0Y2ggc0luZm8uCgkJCSAqICBAdHlwZSBzdHJpbmcKCQkJICogIEBkZWZhdWx0IFNob3dpbmcgMCB0byAwIG9mIDAgZW50cmllcwoJCQkgKiAgQGR0b3B0IExhbmd1YWdlCgkJCSAqIAoJCQkgKiAgQGV4YW1wbGUKCQkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCSAqICAgICAgICAib0xhbmd1YWdlIjogewoJCQkgKiAgICAgICAgICAic0luZm9FbXB0eSI6ICJObyBlbnRyaWVzIHRvIHNob3ciCgkJCSAqICAgICAgICB9CgkJCSAqICAgICAgfSApOwoJCQkgKiAgICB9ICk7CgkJCSAqLwoJCQkic0luZm9FbXB0eSI6ICJTaG93aW5nIDAgdG8gMCBvZiAwIGVudHJpZXMiLAoJCQoJCQoJCQkvKioKCQkJICogV2hlbiBhIHVzZXIgZmlsdGVycyB0aGUgaW5mb3JtYXRpb24gaW4gYSB0YWJsZSwgdGhpcyBzdHJpbmcgaXMgYXBwZW5kZWQgCgkJCSAqIHRvIHRoZSBpbmZvcm1hdGlvbiAoc0luZm8pIHRvIGdpdmUgYW4gaWRlYSBvZiBob3cgc3Ryb25nIHRoZSBmaWx0ZXJpbmcgCgkJCSAqIGlzLiBUaGUgdmFyaWFibGUgX01BWF8gaXMgZHluYW1pY2FsbHkgdXBkYXRlZC4KCQkJICogIEB0eXBlIHN0cmluZwoJCQkgKiAgQGRlZmF1bHQgKGZpbHRlcmVkIGZyb20gX01BWF8gdG90YWwgZW50cmllcykKCQkJICogIEBkdG9wdCBMYW5ndWFnZQoJCQkgKiAKCQkJICogIEBleGFtcGxlCgkJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkgKiAgICAgICAgIm9MYW5ndWFnZSI6IHsKCQkJICogICAgICAgICAgInNJbmZvRmlsdGVyZWQiOiAiIC0gZmlsdGVyaW5nIGZyb20gX01BWF8gcmVjb3JkcyIKCQkJICogICAgICAgIH0KCQkJICogICAgICB9ICk7CgkJCSAqICAgIH0gKTsKCQkJICovCgkJCSJzSW5mb0ZpbHRlcmVkIjogIihmaWx0ZXJlZCBmcm9tIF9NQVhfIHRvdGFsIGVudHJpZXMpIiwKCQkKCQkKCQkJLyoqCgkJCSAqIElmIGNhbiBiZSB1c2VmdWwgdG8gYXBwZW5kIGV4dHJhIGluZm9ybWF0aW9uIHRvIHRoZSBpbmZvIHN0cmluZyBhdCB0aW1lcywKCQkJICogYW5kIHRoaXMgdmFyaWFibGUgZG9lcyBleGFjdGx5IHRoYXQuIFRoaXMgaW5mb3JtYXRpb24gd2lsbCBiZSBhcHBlbmRlZCB0bwoJCQkgKiB0aGUgc0luZm8gKHNJbmZvRW1wdHkgYW5kIHNJbmZvRmlsdGVyZWQgaW4gd2hhdGV2ZXIgY29tYmluYXRpb24gdGhleSBhcmUKCQkJICogYmVpbmcgdXNlZCkgYXQgYWxsIHRpbWVzLgoJCQkgKiAgQHR5cGUgc3RyaW5nCgkJCSAqICBAZGVmYXVsdCA8aT5FbXB0eSBzdHJpbmc8L2k+CgkJCSAqICBAZHRvcHQgTGFuZ3VhZ2UKCQkJICogCgkJCSAqICBAZXhhbXBsZQoJCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJICogICAgICAgICJvTGFuZ3VhZ2UiOiB7CgkJCSAqICAgICAgICAgICJzSW5mb1Bvc3RGaXgiOiAiQWxsIHJlY29yZHMgc2hvd24gYXJlIGRlcml2ZWQgZnJvbSByZWFsIGluZm9ybWF0aW9uLiIKCQkJICogICAgICAgIH0KCQkJICogICAgICB9ICk7CgkJCSAqICAgIH0gKTsKCQkJICovCgkJCSJzSW5mb1Bvc3RGaXgiOiAiIiwKCQkKCQkKCQkJLyoqCgkJCSAqIERhdGFUYWJsZXMgaGFzIGEgYnVpbGQgaW4gbnVtYmVyIGZvcm1hdHRlciAoZm5Gb3JtYXROdW1iZXIpIHdoaWNoIGlzIHVzZWQKCQkJICogdG8gZm9ybWF0IGxhcmdlIG51bWJlcnMgdGhhdCBhcmUgdXNlZCBpbiB0aGUgdGFibGUgaW5mb3JtYXRpb24uIEJ5CgkJCSAqIGRlZmF1bHQgYSBjb21tYSBpcyB1c2VkLCBidXQgdGhpcyBjYW4gYmUgdHJpdmlhbGx5IGNoYW5nZWQgdG8gYW55CgkJCSAqIGNoYXJhY3RlciB5b3Ugd2lzaCB3aXRoIHRoaXMgcGFyYW1ldGVyLgoJCQkgKiAgQHR5cGUgc3RyaW5nCgkJCSAqICBAZGVmYXVsdCAsCgkJCSAqICBAZHRvcHQgTGFuZ3VhZ2UKCQkJICogCgkJCSAqICBAZXhhbXBsZQoJCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJICogICAgICAgICJvTGFuZ3VhZ2UiOiB7CgkJCSAqICAgICAgICAgICJzSW5mb1Rob3VzYW5kcyI6ICInIgoJCQkgKiAgICAgICAgfQoJCQkgKiAgICAgIH0gKTsKCQkJICogICAgfSApOwoJCQkgKi8KCQkJInNJbmZvVGhvdXNhbmRzIjogIiwiLAoJCQoJCQoJCQkvKioKCQkJICogRGV0YWlsIHRoZSBhY3Rpb24gdGhhdCB3aWxsIGJlIHRha2VuIHdoZW4gdGhlIGRyb3AgZG93biBtZW51IGZvciB0aGUKCQkJICogcGFnaW5hdGlvbiBsZW5ndGggb3B0aW9uIGlzIGNoYW5nZWQuIFRoZSAnX01FTlVfJyB2YXJpYWJsZSBpcyByZXBsYWNlZAoJCQkgKiB3aXRoIGEgZGVmYXVsdCBzZWxlY3QgbGlzdCBvZiAxMCwgMjUsIDUwIGFuZCAxMDAsIGFuZCBjYW4gYmUgcmVwbGFjZWQKCQkJICogd2l0aCBhIGN1c3RvbSBzZWxlY3QgYm94IGlmIHJlcXVpcmVkLgoJCQkgKiAgQHR5cGUgc3RyaW5nCgkJCSAqICBAZGVmYXVsdCBTaG93IF9NRU5VXyBlbnRyaWVzCgkJCSAqICBAZHRvcHQgTGFuZ3VhZ2UKCQkJICogCgkJCSAqICBAZXhhbXBsZQoJCQkgKiAgICAvLyBMYW5ndWFnZSBjaGFuZ2Ugb25seQoJCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJICogICAgICAgICJvTGFuZ3VhZ2UiOiB7CgkJCSAqICAgICAgICAgICJzTGVuZ3RoTWVudSI6ICJEaXNwbGF5IF9NRU5VXyByZWNvcmRzIgoJCQkgKiAgICAgICAgfQoJCQkgKiAgICAgIH0gKTsKCQkJICogICAgfSApOwoJCQkgKiAgICAKCQkJICogIEBleGFtcGxlCgkJCSAqICAgIC8vIExhbmd1YWdlIGFuZCBvcHRpb25zIGNoYW5nZQoJCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJICogICAgICAgICJvTGFuZ3VhZ2UiOiB7CgkJCSAqICAgICAgICAgICJzTGVuZ3RoTWVudSI6ICdEaXNwbGF5IDxzZWxlY3Q+JysKCQkJICogICAgICAgICAgICAnPG9wdGlvbiB2YWx1ZT0iMTAiPjEwPC9vcHRpb24+JysKCQkJICogICAgICAgICAgICAnPG9wdGlvbiB2YWx1ZT0iMjAiPjIwPC9vcHRpb24+JysKCQkJICogICAgICAgICAgICAnPG9wdGlvbiB2YWx1ZT0iMzAiPjMwPC9vcHRpb24+JysKCQkJICogICAgICAgICAgICAnPG9wdGlvbiB2YWx1ZT0iNDAiPjQwPC9vcHRpb24+JysKCQkJICogICAgICAgICAgICAnPG9wdGlvbiB2YWx1ZT0iNTAiPjUwPC9vcHRpb24+JysKCQkJICogICAgICAgICAgICAnPG9wdGlvbiB2YWx1ZT0iLTEiPkFsbDwvb3B0aW9uPicrCgkJCSAqICAgICAgICAgICAgJzwvc2VsZWN0PiByZWNvcmRzJwoJCQkgKiAgICAgICAgfQoJCQkgKiAgICAgIH0gKTsKCQkJICogICAgfSApOwoJCQkgKi8KCQkJInNMZW5ndGhNZW51IjogIlNob3cgX01FTlVfIGVudHJpZXMiLAoJCQoJCQoJCQkvKioKCQkJICogV2hlbiB1c2luZyBBamF4IHNvdXJjZWQgZGF0YSBhbmQgZHVyaW5nIHRoZSBmaXJzdCBkcmF3IHdoZW4gRGF0YVRhYmxlcyBpcwoJCQkgKiBnYXRoZXJpbmcgdGhlIGRhdGEsIHRoaXMgbWVzc2FnZSBpcyBzaG93biBpbiBhbiBlbXB0eSByb3cgaW4gdGhlIHRhYmxlIHRvCgkJCSAqIGluZGljYXRlIHRvIHRoZSBlbmQgdXNlciB0aGUgdGhlIGRhdGEgaXMgYmVpbmcgbG9hZGVkLiBOb3RlIHRoYXQgdGhpcwoJCQkgKiBwYXJhbWV0ZXIgaXMgbm90IHVzZWQgd2hlbiBsb2FkaW5nIGRhdGEgYnkgc2VydmVyLXNpZGUgcHJvY2Vzc2luZywganVzdAoJCQkgKiBBamF4IHNvdXJjZWQgZGF0YSB3aXRoIGNsaWVudC1zaWRlIHByb2Nlc3NpbmcuCgkJCSAqICBAdHlwZSBzdHJpbmcKCQkJICogIEBkZWZhdWx0IExvYWRpbmcuLi4KCQkJICogIEBkdG9wdCBMYW5ndWFnZQoJCQkgKiAKCQkJICogIEBleGFtcGxlCgkJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkgKiAgICAgICAgIm9MYW5ndWFnZSI6IHsKCQkJICogICAgICAgICAgInNMb2FkaW5nUmVjb3JkcyI6ICJQbGVhc2Ugd2FpdCAtIGxvYWRpbmcuLi4iCgkJCSAqICAgICAgICB9CgkJCSAqICAgICAgfSApOwoJCQkgKiAgICB9ICk7CgkJCSAqLwoJCQkic0xvYWRpbmdSZWNvcmRzIjogIkxvYWRpbmcuLi4iLAoJCQoJCQoJCQkvKioKCQkJICogVGV4dCB3aGljaCBpcyBkaXNwbGF5ZWQgd2hlbiB0aGUgdGFibGUgaXMgcHJvY2Vzc2luZyBhIHVzZXIgYWN0aW9uCgkJCSAqICh1c3VhbGx5IGEgc29ydCBjb21tYW5kIG9yIHNpbWlsYXIpLgoJCQkgKiAgQHR5cGUgc3RyaW5nCgkJCSAqICBAZGVmYXVsdCBQcm9jZXNzaW5nLi4uCgkJCSAqICBAZHRvcHQgTGFuZ3VhZ2UKCQkJICogCgkJCSAqICBAZXhhbXBsZQoJCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJICogICAgICAgICJvTGFuZ3VhZ2UiOiB7CgkJCSAqICAgICAgICAgICJzUHJvY2Vzc2luZyI6ICJEYXRhVGFibGVzIGlzIGN1cnJlbnRseSBidXN5IgoJCQkgKiAgICAgICAgfQoJCQkgKiAgICAgIH0gKTsKCQkJICogICAgfSApOwoJCQkgKi8KCQkJInNQcm9jZXNzaW5nIjogIlByb2Nlc3NpbmcuLi4iLAoJCQoJCQoJCQkvKioKCQkJICogRGV0YWlscyB0aGUgYWN0aW9ucyB0aGF0IHdpbGwgYmUgdGFrZW4gd2hlbiB0aGUgdXNlciB0eXBlcyBpbnRvIHRoZQoJCQkgKiBmaWx0ZXJpbmcgaW5wdXQgdGV4dCBib3guIFRoZSB2YXJpYWJsZSAiX0lOUFVUXyIsIGlmIHVzZWQgaW4gdGhlIHN0cmluZywKCQkJICogaXMgcmVwbGFjZWQgd2l0aCB0aGUgSFRNTCB0ZXh0IGJveCBmb3IgdGhlIGZpbHRlcmluZyBpbnB1dCBhbGxvd2luZwoJCQkgKiBjb250cm9sIG92ZXIgd2hlcmUgaXQgYXBwZWFycyBpbiB0aGUgc3RyaW5nLiBJZiAiX0lOUFVUXyIgaXMgbm90IGdpdmVuCgkJCSAqIHRoZW4gdGhlIGlucHV0IGJveCBpcyBhcHBlbmRlZCB0byB0aGUgc3RyaW5nIGF1dG9tYXRpY2FsbHkuCgkJCSAqICBAdHlwZSBzdHJpbmcKCQkJICogIEBkZWZhdWx0IFNlYXJjaDoKCQkJICogIEBkdG9wdCBMYW5ndWFnZQoJCQkgKiAKCQkJICogIEBleGFtcGxlCgkJCSAqICAgIC8vIElucHV0IHRleHQgYm94IHdpbGwgYmUgYXBwZW5kZWQgYXQgdGhlIGVuZCBhdXRvbWF0aWNhbGx5CgkJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkgKiAgICAgICAgIm9MYW5ndWFnZSI6IHsKCQkJICogICAgICAgICAgInNTZWFyY2giOiAiRmlsdGVyIHJlY29yZHM6IgoJCQkgKiAgICAgICAgfQoJCQkgKiAgICAgIH0gKTsKCQkJICogICAgfSApOwoJCQkgKiAgICAKCQkJICogIEBleGFtcGxlCgkJCSAqICAgIC8vIFNwZWNpZnkgd2hlcmUgdGhlIGZpbHRlciBzaG91bGQgYXBwZWFyCgkJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkgKiAgICAgICAgIm9MYW5ndWFnZSI6IHsKCQkJICogICAgICAgICAgInNTZWFyY2giOiAiQXBwbHkgZmlsdGVyIF9JTlBVVF8gdG8gdGFibGUiCgkJCSAqICAgICAgICB9CgkJCSAqICAgICAgfSApOwoJCQkgKiAgICB9ICk7CgkJCSAqLwoJCQkic1NlYXJjaCI6ICJTZWFyY2g6IiwKCQkKCQkKCQkJLyoqCgkJCSAqIEFsbCBvZiB0aGUgbGFuZ3VhZ2UgaW5mb3JtYXRpb24gY2FuIGJlIHN0b3JlZCBpbiBhIGZpbGUgb24gdGhlCgkJCSAqIHNlcnZlci1zaWRlLCB3aGljaCBEYXRhVGFibGVzIHdpbGwgbG9vayB1cCBpZiB0aGlzIHBhcmFtZXRlciBpcyBwYXNzZWQuCgkJCSAqIEl0IG11c3Qgc3RvcmUgdGhlIFVSTCBvZiB0aGUgbGFuZ3VhZ2UgZmlsZSwgd2hpY2ggaXMgaW4gYSBKU09OIGZvcm1hdCwKCQkJICogYW5kIHRoZSBvYmplY3QgaGFzIHRoZSBzYW1lIHByb3BlcnRpZXMgYXMgdGhlIG9MYW5ndWFnZSBvYmplY3QgaW4gdGhlCgkJCSAqIGluaXRpYWxpc2VyIG9iamVjdCAoaS5lLiB0aGUgYWJvdmUgcGFyYW1ldGVycykuIFBsZWFzZSByZWZlciB0byBvbmUgb2YKCQkJICogdGhlIGV4YW1wbGUgbGFuZ3VhZ2UgZmlsZXMgdG8gc2VlIGhvdyB0aGlzIHdvcmtzIGluIGFjdGlvbi4KCQkJICogIEB0eXBlIHN0cmluZwoJCQkgKiAgQGRlZmF1bHQgPGk+RW1wdHkgc3RyaW5nIC0gaS5lLiBkaXNhYmxlZDwvaT4KCQkJICogIEBkdG9wdCBMYW5ndWFnZQoJCQkgKiAKCQkJICogIEBleGFtcGxlCgkJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkgKiAgICAgICAgIm9MYW5ndWFnZSI6IHsKCQkJICogICAgICAgICAgInNVcmwiOiAiaHR0cDovL3d3dy5zcHJ5bWVkaWEuY28udWsvZGF0YVRhYmxlcy9sYW5nLnR4dCIKCQkJICogICAgICAgIH0KCQkJICogICAgICB9ICk7CgkJCSAqICAgIH0gKTsKCQkJICovCgkJCSJzVXJsIjogIiIsCgkJCgkJCgkJCS8qKgoJCQkgKiBUZXh0IHNob3duIGluc2lkZSB0aGUgdGFibGUgcmVjb3JkcyB3aGVuIHRoZSBpcyBubyBpbmZvcm1hdGlvbiB0byBiZQoJCQkgKiBkaXNwbGF5ZWQgYWZ0ZXIgZmlsdGVyaW5nLiBzRW1wdHlUYWJsZSBpcyBzaG93biB3aGVuIHRoZXJlIGlzIHNpbXBseSBubwoJCQkgKiBpbmZvcm1hdGlvbiBpbiB0aGUgdGFibGUgYXQgYWxsIChyZWdhcmRsZXNzIG9mIGZpbHRlcmluZykuCgkJCSAqICBAdHlwZSBzdHJpbmcKCQkJICogIEBkZWZhdWx0IE5vIG1hdGNoaW5nIHJlY29yZHMgZm91bmQKCQkJICogIEBkdG9wdCBMYW5ndWFnZQoJCQkgKiAKCQkJICogIEBleGFtcGxlCgkJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkgKiAgICAgICAgIm9MYW5ndWFnZSI6IHsKCQkJICogICAgICAgICAgInNaZXJvUmVjb3JkcyI6ICJObyByZWNvcmRzIHRvIGRpc3BsYXkiCgkJCSAqICAgICAgICB9CgkJCSAqICAgICAgfSApOwoJCQkgKiAgICB9ICk7CgkJCSAqLwoJCQkic1plcm9SZWNvcmRzIjogIk5vIG1hdGNoaW5nIHJlY29yZHMgZm91bmQiCgkJfSwKCQoJCgkJLyoqCgkJICogVGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHlvdSB0byBoYXZlIGRlZmluZSB0aGUgZ2xvYmFsIGZpbHRlcmluZyBzdGF0ZSBhdAoJCSAqIGluaXRpYWxpc2F0aW9uIHRpbWUuIEFzIGFuIG9iamVjdCB0aGUgInNTZWFyY2giIHBhcmFtZXRlciBtdXN0IGJlCgkJICogZGVmaW5lZCwgYnV0IGFsbCBvdGhlciBwYXJhbWV0ZXJzIGFyZSBvcHRpb25hbC4gV2hlbiAiYlJlZ2V4IiBpcyB0cnVlLAoJCSAqIHRoZSBzZWFyY2ggc3RyaW5nIHdpbGwgYmUgdHJlYXRlZCBhcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiwgd2hlbiBmYWxzZQoJCSAqIChkZWZhdWx0KSBpdCB3aWxsIGJlIHRyZWF0ZWQgYXMgYSBzdHJhaWdodCBzdHJpbmcuIFdoZW4gImJTbWFydCIKCQkgKiBEYXRhVGFibGVzIHdpbGwgdXNlIGl0J3Mgc21hcnQgZmlsdGVyaW5nIG1ldGhvZHMgKHRvIHdvcmQgbWF0Y2ggYXQKCQkgKiBhbnkgcG9pbnQgaW4gdGhlIGRhdGEpLCB3aGVuIGZhbHNlIHRoaXMgd2lsbCBub3QgYmUgZG9uZS4KCQkgKiAgQG5hbWVzcGFjZQoJCSAqICBAZXh0ZW5kcyBEYXRhVGFibGUubW9kZWxzLm9TZWFyY2gKCQkgKiAgQGR0b3B0IE9wdGlvbnMKCQkgKiAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAib1NlYXJjaCI6IHsic1NlYXJjaCI6ICJJbml0aWFsIHNlYXJjaCJ9CgkJICogICAgICB9ICk7CgkJICogICAgfSApCgkJICovCgkJIm9TZWFyY2giOiAkLmV4dGVuZCgge30sIERhdGFUYWJsZS5tb2RlbHMub1NlYXJjaCApLAoJCgkKCQkvKioKCQkgKiBCeSBkZWZhdWx0IERhdGFUYWJsZXMgd2lsbCBsb29rIGZvciB0aGUgcHJvcGVydHkgJ2FhRGF0YScgd2hlbiBvYnRhaW5pbmcKCQkgKiBkYXRhIGZyb20gYW4gQWpheCBzb3VyY2Ugb3IgZm9yIHNlcnZlci1zaWRlIHByb2Nlc3NpbmcgLSB0aGlzIHBhcmFtZXRlcgoJCSAqIGFsbG93cyB0aGF0IHByb3BlcnR5IHRvIGJlIGNoYW5nZWQuIFlvdSBjYW4gdXNlIEphdmFzY3JpcHQgZG90dGVkIG9iamVjdAoJCSAqIG5vdGF0aW9uIHRvIGdldCBhIGRhdGEgc291cmNlIGZvciBtdWx0aXBsZSBsZXZlbHMgb2YgbmVzdGluZy4KCQkgKiAgQHR5cGUgc3RyaW5nCgkJICogIEBkZWZhdWx0IGFhRGF0YQoJCSAqICBAZHRvcHQgT3B0aW9ucwoJCSAqICBAZHRvcHQgU2VydmVyLXNpZGUKCQkgKiAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAvLyBHZXQgZGF0YSBmcm9tIHsgImRhdGEiOiBbLi4uXSB9CgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJzQWpheFNvdXJjZSI6ICJzb3VyY2VzL2RhdGEudHh0IiwKCQkgKiAgICAgICAgInNBamF4RGF0YVByb3AiOiAiZGF0YSIKCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICogICAgCgkJICogIEBleGFtcGxlCgkJICogICAgLy8gR2V0IGRhdGEgZnJvbSB7ICJkYXRhIjogeyAiaW5uZXIiOiBbLi4uXSB9IH0KCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJICogICAgICB2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgInNBamF4U291cmNlIjogInNvdXJjZXMvZGF0YS50eHQiLAoJCSAqICAgICAgICAic0FqYXhEYXRhUHJvcCI6ICJkYXRhLmlubmVyIgoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKTsKCQkgKi8KCQkic0FqYXhEYXRhUHJvcCI6ICJhYURhdGEiLAoJCgkKCQkvKioKCQkgKiBZb3UgY2FuIGluc3RydWN0IERhdGFUYWJsZXMgdG8gbG9hZCBkYXRhIGZyb20gYW4gZXh0ZXJuYWwgc291cmNlIHVzaW5nIHRoaXMKCQkgKiBwYXJhbWV0ZXIgKHVzZSBhRGF0YSBpZiB5b3Ugd2FudCB0byBwYXNzIGRhdGEgaW4geW91IGFscmVhZHkgaGF2ZSkuIFNpbXBseQoJCSAqIHByb3ZpZGUgYSB1cmwgYSBKU09OIG9iamVjdCBjYW4gYmUgb2J0YWluZWQgZnJvbS4gVGhpcyBvYmplY3QgbXVzdCBpbmNsdWRlCgkJICogdGhlIHBhcmFtZXRlciAnYWFEYXRhJyB3aGljaCBpcyB0aGUgZGF0YSBzb3VyY2UgZm9yIHRoZSB0YWJsZS4KCQkgKiAgQHR5cGUgc3RyaW5nCgkJICogIEBkZWZhdWx0IG51bGwKCQkgKiAgQGR0b3B0IE9wdGlvbnMKCQkgKiAgQGR0b3B0IFNlcnZlci1zaWRlCgkJICogCgkJICogIEBleGFtcGxlCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgInNBamF4U291cmNlIjogImh0dHA6Ly93d3cuc3ByeW1lZGlhLmNvLnVrL2RhdGFUYWJsZXMvanNvbi5waHAiCgkJICogICAgICB9ICk7CgkJICogICAgfSApCgkJICovCgkJInNBamF4U291cmNlIjogbnVsbCwKCQoJCgkJLyoqCgkJICogVGhpcyBwYXJhbWV0ZXIgY2FuIGJlIHVzZWQgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgcHJlZml4IHRoYXQgRGF0YVRhYmxlcwoJCSAqIGFzc2lnbnMgdG8gYSBjb29raWUgd2hlbiBzdGF0ZSBzYXZpbmcgaXMgZW5hYmxlZC4KCQkgKiAgQHR5cGUgc3RyaW5nCgkJICogIEBkZWZhdWx0IFNwcnlNZWRpYV9EYXRhVGFibGVzXwoJCSAqICBAZHRvcHQgT3B0aW9ucwoJCSAqIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJzQ29va2llUHJlZml4IjogIm15X2RhdGF0YWJsZV8iLAoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKTsKCQkgKi8KCQkic0Nvb2tpZVByZWZpeCI6ICJTcHJ5TWVkaWFfRGF0YVRhYmxlc18iLAoJCgkKCQkvKioKCQkgKiBUaGlzIGluaXRpYWxpc2F0aW9uIHZhcmlhYmxlIGFsbG93cyB5b3UgdG8gc3BlY2lmeSBleGFjdGx5IHdoZXJlIGluIHRoZQoJCSAqIERPTSB5b3Ugd2FudCBEYXRhVGFibGVzIHRvIGluamVjdCB0aGUgdmFyaW91cyBjb250cm9scyBpdCBhZGRzIHRvIHRoZSBwYWdlCgkJICogKGZvciBleGFtcGxlIHlvdSBtaWdodCB3YW50IHRoZSBwYWdpbmF0aW9uIGNvbnRyb2xzIGF0IHRoZSB0b3Agb2YgdGhlCgkJICogdGFibGUpLiBESVYgZWxlbWVudHMgKHdpdGggb3Igd2l0aG91dCBhIGN1c3RvbSBjbGFzcykgY2FuIGFsc28gYmUgYWRkZWQgdG8KCQkgKiBhaWQgc3R5bGluZy4gVGhlIGZvbGxvdyBzeW50YXggaXMgdXNlZDoKCQkgKiAgIDx1bD4KCQkgKiAgICAgPGxpPlRoZSBmb2xsb3dpbmcgb3B0aW9ucyBhcmUgYWxsb3dlZDoJCgkJICogICAgICAgPHVsPgoJCSAqICAgICAgICAgPGxpPidsJyAtIExlbmd0aCBjaGFuZ2luZzwvbGkKCQkgKiAgICAgICAgIDxsaT4nZicgLSBGaWx0ZXJpbmcgaW5wdXQ8L2xpPgoJCSAqICAgICAgICAgPGxpPid0JyAtIFRoZSB0YWJsZSE8L2xpPgoJCSAqICAgICAgICAgPGxpPidpJyAtIEluZm9ybWF0aW9uPC9saT4KCQkgKiAgICAgICAgIDxsaT4ncCcgLSBQYWdpbmF0aW9uPC9saT4KCQkgKiAgICAgICAgIDxsaT4ncicgLSBwUm9jZXNzaW5nPC9saT4KCQkgKiAgICAgICA8L3VsPgoJCSAqICAgICA8L2xpPgoJCSAqICAgICA8bGk+VGhlIGZvbGxvd2luZyBjb25zdGFudHMgYXJlIGFsbG93ZWQ6CgkJICogICAgICAgPHVsPgoJCSAqICAgICAgICAgPGxpPidIJyAtIGpRdWVyeVVJIHRoZW1lICJoZWFkZXIiIGNsYXNzZXMgKCdmZy10b29sYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktY29ybmVyLXRsIHVpLWNvcm5lci10ciB1aS1oZWxwZXItY2xlYXJmaXgnKTwvbGk+CgkJICogICAgICAgICA8bGk+J0YnIC0galF1ZXJ5VUkgdGhlbWUgImZvb3RlciIgY2xhc3NlcyAoJ2ZnLXRvb2xiYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1jb3JuZXItYmwgdWktY29ybmVyLWJyIHVpLWhlbHBlci1jbGVhcmZpeCcpPC9saT4KCQkgKiAgICAgICA8L3VsPgoJCSAqICAgICA8L2xpPgoJCSAqICAgICA8bGk+VGhlIGZvbGxvd2luZyBzeW50YXggaXMgZXhwZWN0ZWQ6CgkJICogICAgICAgPHVsPgoJCSAqICAgICAgICAgPGxpPicmbHQ7JyBhbmQgJyZndDsnIC0gZGl2IGVsZW1lbnRzPC9saT4KCQkgKiAgICAgICAgIDxsaT4nJmx0OyJjbGFzcyIgYW5kICcmZ3Q7JyAtIGRpdiB3aXRoIGEgY2xhc3M8L2xpPgoJCSAqICAgICAgICAgPGxpPicmbHQ7IiNpZCIgYW5kICcmZ3Q7JyAtIGRpdiB3aXRoIGFuIElEPC9saT4KCQkgKiAgICAgICA8L3VsPgoJCSAqICAgICA8L2xpPgoJCSAqICAgICA8bGk+RXhhbXBsZXM6CgkJICogICAgICAgPHVsPgoJCSAqICAgICAgICAgPGxpPicmbHQ7IndyYXBwZXIiZmxpcHQmZ3Q7JzwvbGk+CgkJICogICAgICAgICA8bGk+JyZsdDtsZiZsdDt0Jmd0O2lwJmd0Oyc8L2xpPgoJCSAqICAgICAgIDwvdWw+CgkJICogICAgIDwvbGk+CgkJICogICA8L3VsPgoJCSAqICBAdHlwZSBzdHJpbmcKCQkgKiAgQGRlZmF1bHQgbGZydGlwIDxpPih3aGVuIGJKUXVlcnlVSSBpcyBmYWxzZSk8L2k+IDxiPm9yPC9iPiAKCQkgKiAgICA8IkgibGZyPnQ8IkYiaXA+IDxpPih3aGVuIGJKUXVlcnlVSSBpcyB0cnVlKTwvaT4KCQkgKiAgQGR0b3B0IE9wdGlvbnMKCQkgKiAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAic0RvbSI6ICcmbHQ7InRvcCJpJmd0O3J0Jmx0OyJib3R0b20iZmxwJmd0OyZsdDsiY2xlYXIiJmd0OycKCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICovCgkJInNEb20iOiAibGZydGlwIiwKCQoJCgkJLyoqCgkJICogRGF0YVRhYmxlcyBmZWF0dXJlcyB0d28gZGlmZmVyZW50IGJ1aWx0LWluIHBhZ2luYXRpb24gaW50ZXJhY3Rpb24gbWV0aG9kcwoJCSAqICgndHdvX2J1dHRvbicgb3IgJ2Z1bGxfbnVtYmVycycpIHdoaWNoIHByZXNlbnQgZGlmZmVyZW50IHBhZ2UgY29udHJvbHMgdG8KCQkgKiB0aGUgZW5kIHVzZXIuIEZ1cnRoZXIgbWV0aG9kcyBjYW4gYmUgYWRkZWQgdXNpbmcgdGhlIEFQSSAoc2VlIGJlbG93KS4KCQkgKiAgQHR5cGUgc3RyaW5nCgkJICogIEBkZWZhdWx0IHR3b19idXR0b24KCQkgKiAgQGR0b3B0IE9wdGlvbnMKCQkgKiAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAic1BhZ2luYXRpb25UeXBlIjogImZ1bGxfbnVtYmVycyIKCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICkKCQkgKi8KCQkic1BhZ2luYXRpb25UeXBlIjogInR3b19idXR0b24iLAoJCgkKCQkvKioKCQkgKiBFbmFibGUgaG9yaXpvbnRhbCBzY3JvbGxpbmcuIFdoZW4gYSB0YWJsZSBpcyB0b28gd2lkZSB0byBmaXQgaW50byBhIGNlcnRhaW4KCQkgKiBsYXlvdXQsIG9yIHlvdSBoYXZlIGEgbGFyZ2UgbnVtYmVyIG9mIGNvbHVtbnMgaW4gdGhlIHRhYmxlLCB5b3UgY2FuIGVuYWJsZQoJCSAqIHgtc2Nyb2xsaW5nIHRvIHNob3cgdGhlIHRhYmxlIGluIGEgdmlld3BvcnQsIHdoaWNoIGNhbiBiZSBzY3JvbGxlZC4gVGhpcwoJCSAqIHByb3BlcnR5IGNhbiBiZSBhbnkgQ1NTIHVuaXQsIG9yIGEgbnVtYmVyIChpbiB3aGljaCBjYXNlIGl0IHdpbGwgYmUgdHJlYXRlZAoJCSAqIGFzIGEgcGl4ZWwgbWVhc3VyZW1lbnQpLgoJCSAqICBAdHlwZSBzdHJpbmcKCQkgKiAgQGRlZmF1bHQgPGk+Ymxhbmsgc3RyaW5nIC0gaS5lLiBkaXNhYmxlZDwvaT4KCQkgKiAgQGR0b3B0IEZlYXR1cmVzCgkJICogCgkJICogIEBleGFtcGxlCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgInNTY3JvbGxYIjogIjEwMCUiLAoJCSAqICAgICAgICAiYlNjcm9sbENvbGxhcHNlIjogdHJ1ZQoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKTsKCQkgKi8KCQkic1Njcm9sbFgiOiAiIiwKCQoJCgkJLyoqCgkJICogVGhpcyBwcm9wZXJ0eSBjYW4gYmUgdXNlZCB0byBmb3JjZSBhIERhdGFUYWJsZSB0byB1c2UgbW9yZSB3aWR0aCB0aGFuIGl0CgkJICogbWlnaHQgb3RoZXJ3aXNlIGRvIHdoZW4geC1zY3JvbGxpbmcgaXMgZW5hYmxlZC4gRm9yIGV4YW1wbGUgaWYgeW91IGhhdmUgYQoJCSAqIHRhYmxlIHdoaWNoIHJlcXVpcmVzIHRvIGJlIHdlbGwgc3BhY2VkLCB0aGlzIHBhcmFtZXRlciBpcyB1c2VmdWwgZm9yCgkJICogIm92ZXItc2l6aW5nIiB0aGUgdGFibGUsIGFuZCB0aHVzIGZvcmNpbmcgc2Nyb2xsaW5nLiBUaGlzIHByb3BlcnR5IGNhbiBieQoJCSAqIGFueSBDU1MgdW5pdCwgb3IgYSBudW1iZXIgKGluIHdoaWNoIGNhc2UgaXQgd2lsbCBiZSB0cmVhdGVkIGFzIGEgcGl4ZWwKCQkgKiBtZWFzdXJlbWVudCkuCgkJICogIEB0eXBlIHN0cmluZwoJCSAqICBAZGVmYXVsdCA8aT5ibGFuayBzdHJpbmcgLSBpLmUuIGRpc2FibGVkPC9pPgoJCSAqICBAZHRvcHQgT3B0aW9ucwoJCSAqIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJzU2Nyb2xsWCI6ICIxMDAlIiwKCQkgKiAgICAgICAgInNTY3JvbGxYSW5uZXIiOiAiMTEwJSIKCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICovCgkJInNTY3JvbGxYSW5uZXIiOiAiIiwKCQoJCgkJLyoqCgkJICogRW5hYmxlIHZlcnRpY2FsIHNjcm9sbGluZy4gVmVydGljYWwgc2Nyb2xsaW5nIHdpbGwgY29uc3RyYWluIHRoZSBEYXRhVGFibGUKCQkgKiB0byB0aGUgZ2l2ZW4gaGVpZ2h0LCBhbmQgZW5hYmxlIHNjcm9sbGluZyBmb3IgYW55IGRhdGEgd2hpY2ggb3ZlcmZsb3dzIHRoZQoJCSAqIGN1cnJlbnQgdmlld3BvcnQuIFRoaXMgY2FuIGJlIHVzZWQgYXMgYW4gYWx0ZXJuYXRpdmUgdG8gcGFnaW5nIHRvIGRpc3BsYXkKCQkgKiBhIGxvdCBvZiBkYXRhIGluIGEgc21hbGwgYXJlYSAoYWx0aG91Z2ggcGFnaW5nIGFuZCBzY3JvbGxpbmcgY2FuIGJvdGggYmUKCQkgKiBlbmFibGVkIGF0IHRoZSBzYW1lIHRpbWUpLiBUaGlzIHByb3BlcnR5IGNhbiBiZSBhbnkgQ1NTIHVuaXQsIG9yIGEgbnVtYmVyCgkJICogKGluIHdoaWNoIGNhc2UgaXQgd2lsbCBiZSB0cmVhdGVkIGFzIGEgcGl4ZWwgbWVhc3VyZW1lbnQpLgoJCSAqICBAdHlwZSBzdHJpbmcKCQkgKiAgQGRlZmF1bHQgPGk+Ymxhbmsgc3RyaW5nIC0gaS5lLiBkaXNhYmxlZDwvaT4KCQkgKiAgQGR0b3B0IEZlYXR1cmVzCgkJICogCgkJICogIEBleGFtcGxlCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgInNTY3JvbGxZIjogIjIwMHB4IiwKCQkgKiAgICAgICAgImJQYWdpbmF0ZSI6IGZhbHNlCgkJICogICAgICB9ICk7CgkJICogICAgfSApOwoJCSAqLwoJCSJzU2Nyb2xsWSI6ICIiLAoJCgkKCQkvKioKCQkgKiBTZXQgdGhlIEhUVFAgbWV0aG9kIHRoYXQgaXMgdXNlZCB0byBtYWtlIHRoZSBBamF4IGNhbGwgZm9yIHNlcnZlci1zaWRlCgkJICogcHJvY2Vzc2luZyBvciBBamF4IHNvdXJjZWQgZGF0YS4KCQkgKiAgQHR5cGUgc3RyaW5nCgkJICogIEBkZWZhdWx0IEdFVAoJCSAqICBAZHRvcHQgT3B0aW9ucwoJCSAqICBAZHRvcHQgU2VydmVyLXNpZGUKCQkgKiAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSAqICAgICAgICAic0FqYXhTb3VyY2UiOiAic2NyaXB0cy9wb3N0LnBocCIsCgkJICogICAgICAgICJzU2VydmVyTWV0aG9kIjogIlBPU1QiCgkJICogICAgICB9ICk7CgkJICogICAgfSApOwoJCSAqLwoJCSJzU2VydmVyTWV0aG9kIjogIkdFVCIKCX07CgkKCQoJCgkvKioKCSAqIENvbHVtbiBvcHRpb25zIHRoYXQgY2FuIGJlIGdpdmVuIHRvIERhdGFUYWJsZXMgYXQgaW5pdGlhbGlzYXRpb24gdGltZS4KCSAqICBAbmFtZXNwYWNlCgkgKi8KCURhdGFUYWJsZS5kZWZhdWx0cy5jb2x1bW5zID0gewoJCS8qKgoJCSAqIEFsbG93cyBhIGNvbHVtbidzIHNvcnRpbmcgdG8gdGFrZSBtdWx0aXBsZSBjb2x1bW5zIGludG8gYWNjb3VudCB3aGVuIAoJCSAqIGRvaW5nIGEgc29ydC4gRm9yIGV4YW1wbGUgZmlyc3QgbmFtZSAvIGxhc3QgbmFtZSBjb2x1bW5zIG1ha2Ugc2Vuc2UgdG8gCgkJICogZG8gYSBtdWx0aS1jb2x1bW4gc29ydCBvdmVyIHRoZSB0d28gY29sdW1ucy4KCQkgKiAgQHR5cGUgYXJyYXkKCQkgKiAgQGRlZmF1bHQgbnVsbCA8aT5UYWtlcyB0aGUgdmFsdWUgb2YgdGhlIGNvbHVtbiBpbmRleCBhdXRvbWF0aWNhbGx5PC9pPgoJCSAqICBAZHRvcHQgQ29sdW1ucwoJCSAqIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgIC8vIFVzaW5nIGFvQ29sdW1uRGVmcwoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJhb0NvbHVtbkRlZnMiOiBbCgkJICogICAgICAgICAgeyAiYURhdGFTb3J0IjogWyAwLCAxIF0sICJhVGFyZ2V0cyI6IFsgMCBdIH0sCgkJICogICAgICAgICAgeyAiYURhdGFTb3J0IjogWyAxLCAwIF0sICJhVGFyZ2V0cyI6IFsgMSBdIH0sCgkJICogICAgICAgICAgeyAiYURhdGFTb3J0IjogWyAyLCAzLCA0IF0sICJhVGFyZ2V0cyI6IFsgMiBdIH0KCQkgKiAgICAgICAgXQoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKTsKCQkgKiAgICAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAvLyBVc2luZyBhb0NvbHVtbnMKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAiYW9Db2x1bW5zIjogWwoJCSAqICAgICAgICAgIHsgImFEYXRhU29ydCI6IFsgMCwgMSBdIH0sCgkJICogICAgICAgICAgeyAiYURhdGFTb3J0IjogWyAxLCAwIF0gfSwKCQkgKiAgICAgICAgICB7ICJhRGF0YVNvcnQiOiBbIDIsIDMsIDQgXSB9LAoJCSAqICAgICAgICAgIG51bGwsCgkJICogICAgICAgICAgbnVsbAoJCSAqICAgICAgICBdCgkJICogICAgICB9ICk7CgkJICogICAgfSApOwoJCSAqLwoJCSJhRGF0YVNvcnQiOiBudWxsLAoJCgkKCQkvKioKCQkgKiBZb3UgY2FuIGNvbnRyb2wgdGhlIGRlZmF1bHQgc29ydGluZyBkaXJlY3Rpb24sIGFuZCBldmVuIGFsdGVyIHRoZSBiZWhhdmlvdXIKCQkgKiBvZiB0aGUgc29ydCBoYW5kbGVyIChpLmUuIG9ubHkgYWxsb3cgYXNjZW5kaW5nIHNvcnRpbmcgZXRjKSB1c2luZyB0aGlzCgkJICogcGFyYW1ldGVyLgoJCSAqICBAdHlwZSBhcnJheQoJCSAqICBAZGVmYXVsdCBbICdhc2MnLCAnZGVzYycgXQoJCSAqICBAZHRvcHQgQ29sdW1ucwoJCSAqIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgIC8vIFVzaW5nIGFvQ29sdW1uRGVmcwoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJhb0NvbHVtbkRlZnMiOiBbCgkJICogICAgICAgICAgeyAiYXNTb3J0aW5nIjogWyAiYXNjIiBdLCAiYVRhcmdldHMiOiBbIDEgXSB9LAoJCSAqICAgICAgICAgIHsgImFzU29ydGluZyI6IFsgImRlc2MiLCAiYXNjIiwgImFzYyIgXSwgImFUYXJnZXRzIjogWyAyIF0gfSwKCQkgKiAgICAgICAgICB7ICJhc1NvcnRpbmciOiBbICJkZXNjIiBdLCAiYVRhcmdldHMiOiBbIDMgXSB9CgkJICogICAgICAgIF0KCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICogICAgCgkJICogIEBleGFtcGxlCgkJICogICAgLy8gVXNpbmcgYW9Db2x1bW5zCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgImFvQ29sdW1ucyI6IFsKCQkgKiAgICAgICAgICBudWxsLAoJCSAqICAgICAgICAgIHsgImFzU29ydGluZyI6IFsgImFzYyIgXSB9LAoJCSAqICAgICAgICAgIHsgImFzU29ydGluZyI6IFsgImRlc2MiLCAiYXNjIiwgImFzYyIgXSB9LAoJCSAqICAgICAgICAgIHsgImFzU29ydGluZyI6IFsgImRlc2MiIF0gfSwKCQkgKiAgICAgICAgICBudWxsCgkJICogICAgICAgIF0KCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICovCgkJImFzU29ydGluZyI6IFsgJ2FzYycsICdkZXNjJyBdLAoJCgkKCQkvKioKCQkgKiBFbmFibGUgb3IgZGlzYWJsZSBmaWx0ZXJpbmcgb24gdGhlIGRhdGEgaW4gdGhpcyBjb2x1bW4uCgkJICogIEB0eXBlIGJvb2xlYW4KCQkgKiAgQGRlZmF1bHQgdHJ1ZQoJCSAqICBAZHRvcHQgQ29sdW1ucwoJCSAqIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgIC8vIFVzaW5nIGFvQ29sdW1uRGVmcwoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJhb0NvbHVtbkRlZnMiOiBbIAoJCSAqICAgICAgICAgIHsgImJTZWFyY2hhYmxlIjogZmFsc2UsICJhVGFyZ2V0cyI6IFsgMCBdIH0KCQkgKiAgICAgICAgXSB9ICk7CgkJICogICAgfSApOwoJCSAqICAgIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgIC8vIFVzaW5nIGFvQ29sdW1ucwoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJhb0NvbHVtbnMiOiBbIAoJCSAqICAgICAgICAgIHsgImJTZWFyY2hhYmxlIjogZmFsc2UgfSwKCQkgKiAgICAgICAgICBudWxsLAoJCSAqICAgICAgICAgIG51bGwsCgkJICogICAgICAgICAgbnVsbCwKCQkgKiAgICAgICAgICBudWxsCgkJICogICAgICAgIF0gfSApOwoJCSAqICAgIH0gKTsKCQkgKi8KCQkiYlNlYXJjaGFibGUiOiB0cnVlLAoJCgkKCQkvKioKCQkgKiBFbmFibGUgb3IgZGlzYWJsZSBzb3J0aW5nIG9uIHRoaXMgY29sdW1uLgoJCSAqICBAdHlwZSBib29sZWFuCgkJICogIEBkZWZhdWx0IHRydWUKCQkgKiAgQGR0b3B0IENvbHVtbnMKCQkgKiAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAvLyBVc2luZyBhb0NvbHVtbkRlZnMKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAiYW9Db2x1bW5EZWZzIjogWyAKCQkgKiAgICAgICAgICB7ICJiU29ydGFibGUiOiBmYWxzZSwgImFUYXJnZXRzIjogWyAwIF0gfQoJCSAqICAgICAgICBdIH0gKTsKCQkgKiAgICB9ICk7CgkJICogICAgCgkJICogIEBleGFtcGxlCgkJICogICAgLy8gVXNpbmcgYW9Db2x1bW5zCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgImFvQ29sdW1ucyI6IFsgCgkJICogICAgICAgICAgeyAiYlNvcnRhYmxlIjogZmFsc2UgfSwKCQkgKiAgICAgICAgICBudWxsLAoJCSAqICAgICAgICAgIG51bGwsCgkJICogICAgICAgICAgbnVsbCwKCQkgKiAgICAgICAgICBudWxsCgkJICogICAgICAgIF0gfSApOwoJCSAqICAgIH0gKTsKCQkgKi8KCQkiYlNvcnRhYmxlIjogdHJ1ZSwKCQoJCgkJLyoqCgkJICogV2hlbiB1c2luZyBmblJlbmRlcigpIGZvciBhIGNvbHVtbiwgeW91IG1heSB3aXNoIHRvIHVzZSB0aGUgb3JpZ2luYWwgZGF0YQoJCSAqIChiZWZvcmUgcmVuZGVyaW5nKSBmb3Igc29ydGluZyBhbmQgZmlsdGVyaW5nICh0aGUgZGVmYXVsdCBpcyB0byB1c2VkIHRoZQoJCSAqIHJlbmRlcmVkIGRhdGEgdGhhdCB0aGUgdXNlciBjYW4gc2VlKS4gVGhpcyBtYXkgYmUgdXNlZnVsIGZvciBkYXRlcyBldGMuCgkJICogCgkJICogKk5PVEUqIFRoaXMgcHJvcGVydHkgaXMgbm93IGRlcHJlY2F0ZWQsIGFuZCBpdCBpcyBzdWdnZXN0ZWQgdGhhdCB5b3UgdXNlCgkJICogbURhdGEgYW5kIC8gb3IgbVJlbmRlciB0byByZW5kZXIgZGF0YSBmb3IgdGhlIERhdGFUYWJsZS4KCQkgKiAgQHR5cGUgYm9vbGVhbgoJCSAqICBAZGVmYXVsdCB0cnVlCgkJICogIEBkdG9wdCBDb2x1bW5zCgkJICogIEBkZXByZWNhdGVkCgkJICogCgkJICogIEBleGFtcGxlCgkJICogICAgLy8gVXNpbmcgYW9Db2x1bW5EZWZzCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgImFvQ29sdW1uRGVmcyI6IFsgCgkJICogICAgICAgICAgewoJCSAqICAgICAgICAgICAgImZuUmVuZGVyIjogZnVuY3Rpb24gKCBvT2JqICkgewoJCSAqICAgICAgICAgICAgICByZXR1cm4gb09iai5hRGF0YVswXSArJyAnKyBvT2JqLmFEYXRhWzNdOwoJCSAqICAgICAgICAgICAgfSwKCQkgKiAgICAgICAgICAgICJiVXNlUmVuZGVyZWQiOiBmYWxzZSwKCQkgKiAgICAgICAgICAgICJhVGFyZ2V0cyI6IFsgMCBdCgkJICogICAgICAgICAgfQoJCSAqICAgICAgICBdCgkJICogICAgICB9ICk7CgkJICogICAgfSApOwoJCSAqICAgIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgIC8vIFVzaW5nIGFvQ29sdW1ucwoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJhb0NvbHVtbnMiOiBbIAoJCSAqICAgICAgICAgIHsKCQkgKiAgICAgICAgICAgICJmblJlbmRlciI6IGZ1bmN0aW9uICggb09iaiApIHsKCQkgKiAgICAgICAgICAgICAgcmV0dXJuIG9PYmouYURhdGFbMF0gKycgJysgb09iai5hRGF0YVszXTsKCQkgKiAgICAgICAgICAgIH0sCgkJICogICAgICAgICAgICAiYlVzZVJlbmRlcmVkIjogZmFsc2UKCQkgKiAgICAgICAgICB9LAoJCSAqICAgICAgICAgIG51bGwsCgkJICogICAgICAgICAgbnVsbCwKCQkgKiAgICAgICAgICBudWxsLAoJCSAqICAgICAgICAgIG51bGwKCQkgKiAgICAgICAgXQoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKTsKCQkgKi8KCQkiYlVzZVJlbmRlcmVkIjogdHJ1ZSwKCQoJCgkJLyoqCgkJICogRW5hYmxlIG9yIGRpc2FibGUgdGhlIGRpc3BsYXkgb2YgdGhpcyBjb2x1bW4uCgkJICogIEB0eXBlIGJvb2xlYW4KCQkgKiAgQGRlZmF1bHQgdHJ1ZQoJCSAqICBAZHRvcHQgQ29sdW1ucwoJCSAqIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgIC8vIFVzaW5nIGFvQ29sdW1uRGVmcwoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJhb0NvbHVtbkRlZnMiOiBbIAoJCSAqICAgICAgICAgIHsgImJWaXNpYmxlIjogZmFsc2UsICJhVGFyZ2V0cyI6IFsgMCBdIH0KCQkgKiAgICAgICAgXSB9ICk7CgkJICogICAgfSApOwoJCSAqICAgIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgIC8vIFVzaW5nIGFvQ29sdW1ucwoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJhb0NvbHVtbnMiOiBbIAoJCSAqICAgICAgICAgIHsgImJWaXNpYmxlIjogZmFsc2UgfSwKCQkgKiAgICAgICAgICBudWxsLAoJCSAqICAgICAgICAgIG51bGwsCgkJICogICAgICAgICAgbnVsbCwKCQkgKiAgICAgICAgICBudWxsCgkJICogICAgICAgIF0gfSApOwoJCSAqICAgIH0gKTsKCQkgKi8KCQkiYlZpc2libGUiOiB0cnVlLAoJCQoJCQoJCS8qKgoJCSAqIERldmVsb3BlciBkZWZpbmFibGUgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgd2hlbmV2ZXIgYSBjZWxsIGlzIGNyZWF0ZWQgKEFqYXggc291cmNlLAoJCSAqIGV0Yykgb3IgcHJvY2Vzc2VkIGZvciBpbnB1dCAoRE9NIHNvdXJjZSkuIFRoaXMgY2FuIGJlIHVzZWQgYXMgYSBjb21wbGltZW50IHRvIGZuUmVuZGVyCgkJICogYWxsb3dpbmcgeW91IHRvIG1vZGlmeSB0aGUgRE9NIGVsZW1lbnQgKGFkZCBiYWNrZ3JvdW5kIGNvbG91ciBmb3IgZXhhbXBsZSkgd2hlbiB0aGUKCQkgKiBlbGVtZW50IGlzIGF2YWlsYWJsZSAoc2luY2UgaXQgaXMgbm90IHdoZW4gZm5SZW5kZXIgaXMgY2FsbGVkKS4KCQkgKiAgQHR5cGUgZnVuY3Rpb24KCQkgKiAgQHBhcmFtIHtlbGVtZW50fSBuVGQgVGhlIFREIG5vZGUgdGhhdCBoYXMgYmVlbiBjcmVhdGVkCgkJICogIEBwYXJhbSB7Kn0gc0RhdGEgVGhlIERhdGEgZm9yIHRoZSBjZWxsCgkJICogIEBwYXJhbSB7YXJyYXl8b2JqZWN0fSBvRGF0YSBUaGUgZGF0YSBmb3IgdGhlIHdob2xlIHJvdwoJCSAqICBAcGFyYW0ge2ludH0gaVJvdyBUaGUgcm93IGluZGV4IGZvciB0aGUgYW9EYXRhIGRhdGEgc3RvcmUKCQkgKiAgQHBhcmFtIHtpbnR9IGlDb2wgVGhlIGNvbHVtbiBpbmRleCBmb3IgYW9Db2x1bW5zCgkJICogIEBkdG9wdCBDb2x1bW5zCgkJICogCgkJICogIEBleGFtcGxlCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgImFvQ29sdW1uRGVmcyI6IFsgewoJCSAqICAgICAgICAgICJhVGFyZ2V0cyI6IFszXSwKCQkgKiAgICAgICAgICAiZm5DcmVhdGVkQ2VsbCI6IGZ1bmN0aW9uIChuVGQsIHNEYXRhLCBvRGF0YSwgaVJvdywgaUNvbCkgewoJCSAqICAgICAgICAgICAgaWYgKCBzRGF0YSA9PSAiMS43IiApIHsKCQkgKiAgICAgICAgICAgICAgJChuVGQpLmNzcygnY29sb3InLCAnYmx1ZScpCgkJICogICAgICAgICAgICB9CgkJICogICAgICAgICAgfQoJCSAqICAgICAgICB9IF0KCQkgKiAgICAgIH0pOwoJCSAqICAgIH0gKTsKCQkgKi8KCQkiZm5DcmVhdGVkQ2VsbCI6IG51bGwsCgkKCQoJCS8qKgoJCSAqIEN1c3RvbSBkaXNwbGF5IGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgZm9yIHRoZSBkaXNwbGF5IG9mIGVhY2ggY2VsbCBpbgoJCSAqIHRoaXMgY29sdW1uLgoJCSAqICBAdHlwZSBmdW5jdGlvbgoJCSAqICBAcGFyYW0ge29iamVjdH0gbyBPYmplY3Qgd2l0aCB0aGUgZm9sbG93aW5nIHBhcmFtZXRlcnM6CgkJICogIEBwYXJhbSB7aW50fSAgICBvLmlEYXRhUm93IFRoZSByb3cgaW4gYW9EYXRhCgkJICogIEBwYXJhbSB7aW50fSAgICBvLmlEYXRhQ29sdW1uIFRoZSBjb2x1bW4gaW4gcXVlc3Rpb24KCQkgKiAgQHBhcmFtIHthcnJheX0gIG8uYURhdGEgVGhlIGRhdGEgZm9yIHRoZSByb3cgaW4gcXVlc3Rpb24KCQkgKiAgQHBhcmFtIHtvYmplY3R9IG8ub1NldHRpbmdzIFRoZSBzZXR0aW5ncyBvYmplY3QgZm9yIHRoaXMgRGF0YVRhYmxlcyBpbnN0YW5jZQoJCSAqICBAcGFyYW0ge29iamVjdH0gby5tRGF0YVByb3AgVGhlIGRhdGEgcHJvcGVydHkgdXNlZCBmb3IgdGhpcyBjb2x1bW4KCQkgKiAgQHBhcmFtIHsqfSAgICAgIHZhbCBUaGUgY3VycmVudCBjZWxsIHZhbHVlCgkJICogIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBzdHJpbmcgeW91IHdoaWNoIHRvIHVzZSBpbiB0aGUgZGlzcGxheQoJCSAqICBAZHRvcHQgQ29sdW1ucwoJCSAqIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgIC8vIFVzaW5nIGFvQ29sdW1uRGVmcwoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJhb0NvbHVtbkRlZnMiOiBbIAoJCSAqICAgICAgICAgIHsKCQkgKiAgICAgICAgICAgICJmblJlbmRlciI6IGZ1bmN0aW9uICggbywgdmFsICkgewoJCSAqICAgICAgICAgICAgICByZXR1cm4gby5hRGF0YVswXSArJyAnKyBvLmFEYXRhWzNdOwoJCSAqICAgICAgICAgICAgfSwKCQkgKiAgICAgICAgICAgICJhVGFyZ2V0cyI6IFsgMCBdCgkJICogICAgICAgICAgfQoJCSAqICAgICAgICBdCgkJICogICAgICB9ICk7CgkJICogICAgfSApOwoJCSAqICAgIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgIC8vIFVzaW5nIGFvQ29sdW1ucwoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJhb0NvbHVtbnMiOiBbIAoJCSAqICAgICAgICAgIHsgImZuUmVuZGVyIjogZnVuY3Rpb24gKCBvLCB2YWwgKSB7CgkJICogICAgICAgICAgICByZXR1cm4gby5hRGF0YVswXSArJyAnKyBvLmFEYXRhWzNdOwoJCSAqICAgICAgICAgIH0gfSwKCQkgKiAgICAgICAgICBudWxsLAoJCSAqICAgICAgICAgIG51bGwsCgkJICogICAgICAgICAgbnVsbCwKCQkgKiAgICAgICAgICBudWxsCgkJICogICAgICAgIF0KCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICovCgkJImZuUmVuZGVyIjogbnVsbCwKCQoJCgkJLyoqCgkJICogVGhlIGNvbHVtbiBpbmRleCAoc3RhcnRpbmcgZnJvbSAwISkgdGhhdCB5b3Ugd2lzaCBhIHNvcnQgdG8gYmUgcGVyZm9ybWVkCgkJICogdXBvbiB3aGVuIHRoaXMgY29sdW1uIGlzIHNlbGVjdGVkIGZvciBzb3J0aW5nLiBUaGlzIGNhbiBiZSB1c2VkIGZvciBzb3J0aW5nCgkJICogb24gaGlkZGVuIGNvbHVtbnMgZm9yIGV4YW1wbGUuCgkJICogIEB0eXBlIGludAoJCSAqICBAZGVmYXVsdCAtMSA8aT5Vc2UgYXV0b21hdGljYWxseSBjYWxjdWxhdGVkIGNvbHVtbiBpbmRleDwvaT4KCQkgKiAgQGR0b3B0IENvbHVtbnMKCQkgKiAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAvLyBVc2luZyBhb0NvbHVtbkRlZnMKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAiYW9Db2x1bW5EZWZzIjogWyAKCQkgKiAgICAgICAgICB7ICJpRGF0YVNvcnQiOiAxLCAiYVRhcmdldHMiOiBbIDAgXSB9CgkJICogICAgICAgIF0KCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICogICAgCgkJICogIEBleGFtcGxlCgkJICogICAgLy8gVXNpbmcgYW9Db2x1bW5zCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgImFvQ29sdW1ucyI6IFsgCgkJICogICAgICAgICAgeyAiaURhdGFTb3J0IjogMSB9LAoJCSAqICAgICAgICAgIG51bGwsCgkJICogICAgICAgICAgbnVsbCwKCQkgKiAgICAgICAgICBudWxsLAoJCSAqICAgICAgICAgIG51bGwKCQkgKiAgICAgICAgXQoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKTsKCQkgKi8KCQkiaURhdGFTb3J0IjogLTEsCgkKCQoJCS8qKgoJCSAqIFRoaXMgcGFyYW1ldGVyIGhhcyBiZWVuIHJlcGxhY2VkIGJ5IG1EYXRhIGluIERhdGFUYWJsZXMgdG8gZW5zdXJlIG5hbWluZwoJCSAqIGNvbnNpc3RlbmN5LiBtRGF0YVByb3AgY2FuIHN0aWxsIGJlIHVzZWQsIGFzIHRoZXJlIGlzIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5CgkJICogaW4gRGF0YVRhYmxlcyBmb3IgdGhpcyBvcHRpb24sIGJ1dCBpdCBpcyBzdHJvbmdseSByZWNvbW1lbmRlZCB0aGF0IHlvdSB1c2UKCQkgKiBtRGF0YSBpbiBwcmVmZXJlbmNlIHRvIG1EYXRhUHJvcC4KCQkgKiAgQG5hbWUgRGF0YVRhYmxlLmRlZmF1bHRzLmNvbHVtbnMubURhdGFQcm9wCgkJICovCgkKCQoJCS8qKgoJCSAqIFRoaXMgcHJvcGVydHkgY2FuIGJlIHVzZWQgdG8gcmVhZCBkYXRhIGZyb20gYW55IEpTT04gZGF0YSBzb3VyY2UgcHJvcGVydHksCgkJICogaW5jbHVkaW5nIGRlZXBseSBuZXN0ZWQgb2JqZWN0cyAvIHByb3BlcnRpZXMuIG1EYXRhIGNhbiBiZSBnaXZlbiBpbiBhCgkJICogbnVtYmVyIG9mIGRpZmZlcmVudCB3YXlzIHdoaWNoIGVmZmVjdCBpdHMgYmVoYXZpb3VyOgoJCSAqICAgPHVsPgoJCSAqICAgICA8bGk+aW50ZWdlciAtIHRyZWF0ZWQgYXMgYW4gYXJyYXkgaW5kZXggZm9yIHRoZSBkYXRhIHNvdXJjZS4gVGhpcyBpcyB0aGUKCQkgKiAgICAgICBkZWZhdWx0IHRoYXQgRGF0YVRhYmxlcyB1c2VzIChpbmNyZW1lbnRhbGx5IGluY3JlYXNlZCBmb3IgZWFjaCBjb2x1bW4pLjwvbGk+CgkJICogICAgIDxsaT5zdHJpbmcgLSByZWFkIGFuIG9iamVjdCBwcm9wZXJ0eSBmcm9tIHRoZSBkYXRhIHNvdXJjZS4gTm90ZSB0aGF0IHlvdSBjYW4KCQkgKiAgICAgICB1c2UgSmF2YXNjcmlwdCBkb3R0ZWQgbm90YXRpb24gdG8gcmVhZCBkZWVwIHByb3BlcnRpZXMgLyBhcnJheXMgZnJvbSB0aGUKCQkgKiAgICAgICBkYXRhIHNvdXJjZS48L2xpPgoJCSAqICAgICA8bGk+bnVsbCAtIHRoZSBzRGVmYXVsdENvbnRlbnQgb3B0aW9uIHdpbGwgYmUgdXNlZCBmb3IgdGhlIGNlbGwgKG51bGwKCQkgKiAgICAgICBieSBkZWZhdWx0LCBzbyB5b3Ugd2lsbCBuZWVkIHRvIHNwZWNpZnkgdGhlIGRlZmF1bHQgY29udGVudCB5b3Ugd2FudCAtCgkJICogICAgICAgdHlwaWNhbGx5IGFuIGVtcHR5IHN0cmluZykuIFRoaXMgY2FuIGJlIHVzZWZ1bCBvbiBnZW5lcmF0ZWQgY29sdW1ucyBzdWNoIAoJCSAqICAgICAgIGFzIGVkaXQgLyBkZWxldGUgYWN0aW9uIGNvbHVtbnMuPC9saT4KCQkgKiAgICAgPGxpPmZ1bmN0aW9uIC0gdGhlIGZ1bmN0aW9uIGdpdmVuIHdpbGwgYmUgZXhlY3V0ZWQgd2hlbmV2ZXIgRGF0YVRhYmxlcyAKCQkgKiAgICAgICBuZWVkcyB0byBzZXQgb3IgZ2V0IHRoZSBkYXRhIGZvciBhIGNlbGwgaW4gdGhlIGNvbHVtbi4gVGhlIGZ1bmN0aW9uIAoJCSAqICAgICAgIHRha2VzIHRocmVlIHBhcmFtZXRlcnM6CgkJICogICAgICAgPHVsPgoJCSAqICAgICAgICAgPGxpPnthcnJheXxvYmplY3R9IFRoZSBkYXRhIHNvdXJjZSBmb3IgdGhlIHJvdzwvbGk+CgkJICogICAgICAgICA8bGk+e3N0cmluZ30gVGhlIHR5cGUgY2FsbCBkYXRhIHJlcXVlc3RlZCAtIHRoaXMgd2lsbCBiZSAnc2V0JyB3aGVuCgkJICogICAgICAgICAgIHNldHRpbmcgZGF0YSBvciAnZmlsdGVyJywgJ2Rpc3BsYXknLCAndHlwZScsICdzb3J0JyBvciB1bmRlZmluZWQgd2hlbiAKCQkgKiAgICAgICAgICAgZ2F0aGVyaW5nIGRhdGEuIE5vdGUgdGhhdCB3aGVuIDxpPnVuZGVmaW5lZDwvaT4gaXMgZ2l2ZW4gZm9yIHRoZSB0eXBlCgkJICogICAgICAgICAgIERhdGFUYWJsZXMgZXhwZWN0cyB0byBnZXQgdGhlIHJhdyBkYXRhIGZvciB0aGUgb2JqZWN0IGJhY2s8L2xpPgoJCSAqICAgICAgICAgPGxpPnsqfSBEYXRhIHRvIHNldCB3aGVuIHRoZSBzZWNvbmQgcGFyYW1ldGVyIGlzICdzZXQnLjwvbGk+CgkJICogICAgICAgPC91bD4KCQkgKiAgICAgICBUaGUgcmV0dXJuIHZhbHVlIGZyb20gdGhlIGZ1bmN0aW9uIGlzIG5vdCByZXF1aXJlZCB3aGVuICdzZXQnIGlzIHRoZSB0eXBlCgkJICogICAgICAgb2YgY2FsbCwgYnV0IG90aGVyd2lzZSB0aGUgcmV0dXJuIGlzIHdoYXQgd2lsbCBiZSB1c2VkIGZvciB0aGUgZGF0YQoJCSAqICAgICAgIHJlcXVlc3RlZC48L2xpPgoJCSAqICAgIDwvdWw+CgkJICoKCQkgKiBOb3RlIHRoYXQgcHJpb3IgdG8gRGF0YVRhYmxlcyAxLjkuMiBtRGF0YSB3YXMgY2FsbGVkIG1EYXRhUHJvcC4gVGhlIG5hbWUgY2hhbmdlCgkJICogcmVmbGVjdHMgdGhlIGZsZXhpYmlsaXR5IG9mIHRoaXMgcHJvcGVydHkgYW5kIGlzIGNvbnNpc3RlbnQgd2l0aCB0aGUgbmFtaW5nIG9mCgkJICogbVJlbmRlci4gSWYgJ21EYXRhUHJvcCcgaXMgZ2l2ZW4sIHRoZW4gaXQgd2lsbCBzdGlsbCBiZSB1c2VkIGJ5IERhdGFUYWJsZXMsIGFzCgkJICogaXQgYXV0b21hdGljYWxseSBtYXBzIHRoZSBvbGQgbmFtZSB0byB0aGUgbmV3IGlmIHJlcXVpcmVkLgoJCSAqICBAdHlwZSBzdHJpbmd8aW50fGZ1bmN0aW9ufG51bGwKCQkgKiAgQGRlZmF1bHQgbnVsbCA8aT5Vc2UgYXV0b21hdGljYWxseSBjYWxjdWxhdGVkIGNvbHVtbiBpbmRleDwvaT4KCQkgKiAgQGR0b3B0IENvbHVtbnMKCQkgKiAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAvLyBSZWFkIHRhYmxlIGRhdGEgZnJvbSBvYmplY3RzCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJzQWpheFNvdXJjZSI6ICJzb3VyY2VzL2RlZXAudHh0IiwKCQkgKiAgICAgICAgImFvQ29sdW1ucyI6IFsKCQkgKiAgICAgICAgICB7ICJtRGF0YSI6ICJlbmdpbmUiIH0sCgkJICogICAgICAgICAgeyAibURhdGEiOiAiYnJvd3NlciIgfSwKCQkgKiAgICAgICAgICB7ICJtRGF0YSI6ICJwbGF0Zm9ybS5pbm5lciIgfSwKCQkgKiAgICAgICAgICB7ICJtRGF0YSI6ICJwbGF0Zm9ybS5kZXRhaWxzLjAiIH0sCgkJICogICAgICAgICAgeyAibURhdGEiOiAicGxhdGZvcm0uZGV0YWlscy4xIiB9CgkJICogICAgICAgIF0KCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICogCgkJICogIEBleGFtcGxlCgkJICogICAgLy8gVXNpbmcgbURhdGEgYXMgYSBmdW5jdGlvbiB0byBwcm92aWRlIGRpZmZlcmVudCBpbmZvcm1hdGlvbiBmb3IKCQkgKiAgICAvLyBzb3J0aW5nLCBmaWx0ZXJpbmcgYW5kIGRpc3BsYXkuIEluIHRoaXMgY2FzZSwgY3VycmVuY3kgKHByaWNlKQoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgIHZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAiYW9Db2x1bW5EZWZzIjogWyB7CgkJICogICAgICAgICAgImFUYXJnZXRzIjogWyAwIF0sCgkJICogICAgICAgICAgIm1EYXRhIjogZnVuY3Rpb24gKCBzb3VyY2UsIHR5cGUsIHZhbCApIHsKCQkgKiAgICAgICAgICAgIGlmICh0eXBlID09PSAnc2V0JykgewoJCSAqICAgICAgICAgICAgICBzb3VyY2UucHJpY2UgPSB2YWw7CgkJICogICAgICAgICAgICAgIC8vIFN0b3JlIHRoZSBjb21wdXRlZCBkaXNsYXkgYW5kIGZpbHRlciB2YWx1ZXMgZm9yIGVmZmljaWVuY3kKCQkgKiAgICAgICAgICAgICAgc291cmNlLnByaWNlX2Rpc3BsYXkgPSB2YWw9PSIiID8gIiIgOiAiJCIrbnVtYmVyRm9ybWF0KHZhbCk7CgkJICogICAgICAgICAgICAgIHNvdXJjZS5wcmljZV9maWx0ZXIgID0gdmFsPT0iIiA/ICIiIDogIiQiK251bWJlckZvcm1hdCh2YWwpKyIgIit2YWw7CgkJICogICAgICAgICAgICAgIHJldHVybjsKCQkgKiAgICAgICAgICAgIH0KCQkgKiAgICAgICAgICAgIGVsc2UgaWYgKHR5cGUgPT09ICdkaXNwbGF5JykgewoJCSAqICAgICAgICAgICAgICByZXR1cm4gc291cmNlLnByaWNlX2Rpc3BsYXk7CgkJICogICAgICAgICAgICB9CgkJICogICAgICAgICAgICBlbHNlIGlmICh0eXBlID09PSAnZmlsdGVyJykgewoJCSAqICAgICAgICAgICAgICByZXR1cm4gc291cmNlLnByaWNlX2ZpbHRlcjsKCQkgKiAgICAgICAgICAgIH0KCQkgKiAgICAgICAgICAgIC8vICdzb3J0JywgJ3R5cGUnIGFuZCB1bmRlZmluZWQgYWxsIGp1c3QgdXNlIHRoZSBpbnRlZ2VyCgkJICogICAgICAgICAgICByZXR1cm4gc291cmNlLnByaWNlOwoJCSAqICAgICAgICAgIH0KCQkgKiAgICAgICAgfSBdCgkJICogICAgICB9ICk7CgkJICogICAgfSApOwoJCSAqLwoJCSJtRGF0YSI6IG51bGwsCgkKCQoJCS8qKgoJCSAqIFRoaXMgcHJvcGVydHkgaXMgdGhlIHJlbmRlcmluZyBwYXJ0bmVyIHRvIG1EYXRhIGFuZCBpdCBpcyBzdWdnZXN0ZWQgdGhhdAoJCSAqIHdoZW4geW91IHdhbnQgdG8gbWFuaXB1bGF0ZSBkYXRhIGZvciBkaXNwbGF5IChpbmNsdWRpbmcgZmlsdGVyaW5nLCBzb3J0aW5nIGV0YykKCQkgKiBidXQgbm90IGFsdGVyaW5nIHRoZSB1bmRlcmx5aW5nIGRhdGEgZm9yIHRoZSB0YWJsZSwgdXNlIHRoaXMgcHJvcGVydHkuIG1EYXRhCgkJICogY2FuIGFjdHVhbGx5IGRvIGV2ZXJ5dGhpbmcgdGhpcyBwcm9wZXJ0eSBjYW4gYW5kIG1vcmUsIGJ1dCB0aGlzIHBhcmFtZXRlciBpcwoJCSAqIGVhc2llciB0byB1c2Ugc2luY2UgdGhlcmUgaXMgbm8gJ3NldCcgb3B0aW9uLiBMaWtlIG1EYXRhIGlzIGNhbiBiZSBnaXZlbgoJCSAqIGluIGEgbnVtYmVyIG9mIGRpZmZlcmVudCB3YXlzIHRvIGVmZmVjdCBpdHMgYmVoYXZpb3VyLCB3aXRoIHRoZSBhZGRpdGlvbiBvZiAKCQkgKiBzdXBwb3J0aW5nIGFycmF5IHN5bnRheCBmb3IgZWFzeSBvdXRwdXR0aW5nIG9mIGFycmF5cyAoaW5jbHVkaW5nIGFycmF5cyBvZgoJCSAqIG9iamVjdHMpOgoJCSAqICAgPHVsPgoJCSAqICAgICA8bGk+aW50ZWdlciAtIHRyZWF0ZWQgYXMgYW4gYXJyYXkgaW5kZXggZm9yIHRoZSBkYXRhIHNvdXJjZS4gVGhpcyBpcyB0aGUKCQkgKiAgICAgICBkZWZhdWx0IHRoYXQgRGF0YVRhYmxlcyB1c2VzIChpbmNyZW1lbnRhbGx5IGluY3JlYXNlZCBmb3IgZWFjaCBjb2x1bW4pLjwvbGk+CgkJICogICAgIDxsaT5zdHJpbmcgLSByZWFkIGFuIG9iamVjdCBwcm9wZXJ0eSBmcm9tIHRoZSBkYXRhIHNvdXJjZS4gTm90ZSB0aGF0IHlvdSBjYW4KCQkgKiAgICAgICB1c2UgSmF2YXNjcmlwdCBkb3R0ZWQgbm90YXRpb24gdG8gcmVhZCBkZWVwIHByb3BlcnRpZXMgLyBhcnJheXMgZnJvbSB0aGUKCQkgKiAgICAgICBkYXRhIHNvdXJjZSBhbmQgYWxzbyBhcnJheSBicmFja2V0cyB0byBpbmRpY2F0ZSB0aGF0IHRoZSBkYXRhIHJlYWRlciBzaG91bGQKCQkgKiAgICAgICBsb29wIG92ZXIgdGhlIGRhdGEgc291cmNlIGFycmF5LiBXaGVuIGNoYXJhY3RlcnMgYXJlIGdpdmVuIGJldHdlZW4gdGhlIGFycmF5CgkJICogICAgICAgYnJhY2tldHMsIHRoZXNlIGNoYXJhY3RlcnMgYXJlIHVzZWQgdG8gam9pbiB0aGUgZGF0YSBzb3VyY2UgYXJyYXkgdG9nZXRoZXIuCgkJICogICAgICAgRm9yIGV4YW1wbGU6ICJhY2NvdW50c1ssIF0ubmFtZSIgd291bGQgcmVzdWx0IGluIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgd2l0aAoJCSAqICAgICAgIHRoZSAnbmFtZScgdmFsdWUgZnJvbSB0aGUgJ2FjY291bnRzJyBhcnJheSBvZiBvYmplY3RzLjwvbGk+CgkJICogICAgIDxsaT5mdW5jdGlvbiAtIHRoZSBmdW5jdGlvbiBnaXZlbiB3aWxsIGJlIGV4ZWN1dGVkIHdoZW5ldmVyIERhdGFUYWJsZXMgCgkJICogICAgICAgbmVlZHMgdG8gc2V0IG9yIGdldCB0aGUgZGF0YSBmb3IgYSBjZWxsIGluIHRoZSBjb2x1bW4uIFRoZSBmdW5jdGlvbiAKCQkgKiAgICAgICB0YWtlcyB0aHJlZSBwYXJhbWV0ZXJzOgoJCSAqICAgICAgIDx1bD4KCQkgKiAgICAgICAgIDxsaT57YXJyYXl8b2JqZWN0fSBUaGUgZGF0YSBzb3VyY2UgZm9yIHRoZSByb3cgKGJhc2VkIG9uIG1EYXRhKTwvbGk+CgkJICogICAgICAgICA8bGk+e3N0cmluZ30gVGhlIHR5cGUgY2FsbCBkYXRhIHJlcXVlc3RlZCAtIHRoaXMgd2lsbCBiZSAnZmlsdGVyJywgJ2Rpc3BsYXknLCAKCQkgKiAgICAgICAgICAgJ3R5cGUnIG9yICdzb3J0Jy48L2xpPgoJCSAqICAgICAgICAgPGxpPnthcnJheXxvYmplY3R9IFRoZSBmdWxsIGRhdGEgc291cmNlIGZvciB0aGUgcm93IChub3QgYmFzZWQgb24gbURhdGEpPC9saT4KCQkgKiAgICAgICA8L3VsPgoJCSAqICAgICAgIFRoZSByZXR1cm4gdmFsdWUgZnJvbSB0aGUgZnVuY3Rpb24gaXMgd2hhdCB3aWxsIGJlIHVzZWQgZm9yIHRoZSBkYXRhCgkJICogICAgICAgcmVxdWVzdGVkLjwvbGk+CgkJICogICAgPC91bD4KCQkgKiAgQHR5cGUgc3RyaW5nfGludHxmdW5jdGlvbnxudWxsCgkJICogIEBkZWZhdWx0IG51bGwgPGk+VXNlIG1EYXRhPC9pPgoJCSAqICBAZHRvcHQgQ29sdW1ucwoJCSAqIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgIC8vIENyZWF0ZSBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IGZyb20gYW4gYXJyYXkgb2Ygb2JqZWN0cwoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgIHZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAic0FqYXhTb3VyY2UiOiAic291cmNlcy9kZWVwLnR4dCIsCgkJICogICAgICAgICJhb0NvbHVtbnMiOiBbCgkJICogICAgICAgICAgeyAibURhdGEiOiAiZW5naW5lIiB9LAoJCSAqICAgICAgICAgIHsgIm1EYXRhIjogImJyb3dzZXIiIH0sCgkJICogICAgICAgICAgewoJCSAqICAgICAgICAgICAgIm1EYXRhIjogInBsYXRmb3JtIiwKCQkgKiAgICAgICAgICAgICJtUmVuZGVyIjogIlssIF0ubmFtZSIKCQkgKiAgICAgICAgICB9CgkJICogICAgICAgIF0KCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICogCgkJICogIEBleGFtcGxlCgkJICogICAgLy8gVXNlIGFzIGEgZnVuY3Rpb24gdG8gY3JlYXRlIGEgbGluayBmcm9tIHRoZSBkYXRhIHNvdXJjZQoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgIHZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAiYW9Db2x1bW5EZWZzIjogWwoJCSAqICAgICAgICB7CgkJICogICAgICAgICAgImFUYXJnZXRzIjogWyAwIF0sCgkJICogICAgICAgICAgIm1EYXRhIjogImRvd25sb2FkX2xpbmsiLAoJCSAqICAgICAgICAgICJtUmVuZGVyIjogZnVuY3Rpb24gKCBkYXRhLCB0eXBlLCBmdWxsICkgewoJCSAqICAgICAgICAgICAgcmV0dXJuICc8YSBocmVmPSInK2RhdGErJyI+RG93bmxvYWQ8L2E+JzsKCQkgKiAgICAgICAgICB9CgkJICogICAgICAgIF0KCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICovCgkJIm1SZW5kZXIiOiBudWxsLAoJCgkKCQkvKioKCQkgKiBDaGFuZ2UgdGhlIGNlbGwgdHlwZSBjcmVhdGVkIGZvciB0aGUgY29sdW1uIC0gZWl0aGVyIFREIGNlbGxzIG9yIFRIIGNlbGxzLiBUaGlzCgkJICogY2FuIGJlIHVzZWZ1bCBhcyBUSCBjZWxscyBoYXZlIHNlbWFudGljIG1lYW5pbmcgaW4gdGhlIHRhYmxlIGJvZHksIGFsbG93aW5nIHRoZW0KCQkgKiB0byBhY3QgYXMgYSBoZWFkZXIgZm9yIGEgcm93ICh5b3UgbWF5IHdpc2ggdG8gYWRkIHNjb3BlPSdyb3cnIHRvIHRoZSBUSCBlbGVtZW50cykuCgkJICogIEB0eXBlIHN0cmluZwoJCSAqICBAZGVmYXVsdCB0ZAoJCSAqICBAZHRvcHQgQ29sdW1ucwoJCSAqIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgIC8vIE1ha2UgdGhlIGZpcnN0IGNvbHVtbiB1c2UgVEggY2VsbHMKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJICogICAgICB2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgImFvQ29sdW1uRGVmcyI6IFsgewoJCSAqICAgICAgICAgICJhVGFyZ2V0cyI6IFsgMCBdLAoJCSAqICAgICAgICAgICJzQ2VsbFR5cGUiOiAidGgiCgkJICogICAgICAgIH0gXQoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKTsKCQkgKi8KCQkic0NlbGxUeXBlIjogInRkIiwKCQoJCgkJLyoqCgkJICogQ2xhc3MgdG8gZ2l2ZSB0byBlYWNoIGNlbGwgaW4gdGhpcyBjb2x1bW4uCgkJICogIEB0eXBlIHN0cmluZwoJCSAqICBAZGVmYXVsdCA8aT5FbXB0eSBzdHJpbmc8L2k+CgkJICogIEBkdG9wdCBDb2x1bW5zCgkJICogCgkJICogIEBleGFtcGxlCgkJICogICAgLy8gVXNpbmcgYW9Db2x1bW5EZWZzCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgImFvQ29sdW1uRGVmcyI6IFsgCgkJICogICAgICAgICAgeyAic0NsYXNzIjogIm15X2NsYXNzIiwgImFUYXJnZXRzIjogWyAwIF0gfQoJCSAqICAgICAgICBdCgkJICogICAgICB9ICk7CgkJICogICAgfSApOwoJCSAqICAgIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgIC8vIFVzaW5nIGFvQ29sdW1ucwoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJhb0NvbHVtbnMiOiBbIAoJCSAqICAgICAgICAgIHsgInNDbGFzcyI6ICJteV9jbGFzcyIgfSwKCQkgKiAgICAgICAgICBudWxsLAoJCSAqICAgICAgICAgIG51bGwsCgkJICogICAgICAgICAgbnVsbCwKCQkgKiAgICAgICAgICBudWxsCgkJICogICAgICAgIF0KCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICovCgkJInNDbGFzcyI6ICIiLAoJCQoJCS8qKgoJCSAqIFdoZW4gRGF0YVRhYmxlcyBjYWxjdWxhdGVzIHRoZSBjb2x1bW4gd2lkdGhzIHRvIGFzc2lnbiB0byBlYWNoIGNvbHVtbiwKCQkgKiBpdCBmaW5kcyB0aGUgbG9uZ2VzdCBzdHJpbmcgaW4gZWFjaCBjb2x1bW4gYW5kIHRoZW4gY29uc3RydWN0cyBhCgkJICogdGVtcG9yYXJ5IHRhYmxlIGFuZCByZWFkcyB0aGUgd2lkdGhzIGZyb20gdGhhdC4gVGhlIHByb2JsZW0gd2l0aCB0aGlzCgkJICogaXMgdGhhdCAibW1tIiBpcyBtdWNoIHdpZGVyIHRoZW4gImlpaWkiLCBidXQgdGhlIGxhdHRlciBpcyBhIGxvbmdlciAKCQkgKiBzdHJpbmcgLSB0aHVzIHRoZSBjYWxjdWxhdGlvbiBjYW4gZ28gd3JvbmcgKGRvaW5nIGl0IHByb3Blcmx5IGFuZCBwdXR0aW5nCgkJICogaXQgaW50byBhbiBET00gb2JqZWN0IGFuZCBtZWFzdXJpbmcgdGhhdCBpcyBob3JyaWJseSghKSBzbG93KS4gVGh1cyBhcwoJCSAqIGEgIndvcmsgYXJvdW5kIiB3ZSBwcm92aWRlIHRoaXMgb3B0aW9uLiBJdCB3aWxsIGFwcGVuZCBpdHMgdmFsdWUgdG8gdGhlCgkJICogdGV4dCB0aGF0IGlzIGZvdW5kIHRvIGJlIHRoZSBsb25nZXN0IHN0cmluZyBmb3IgdGhlIGNvbHVtbiAtIGkuZS4gcGFkZGluZy4KCQkgKiBHZW5lcmFsbHkgeW91IHNob3VsZG4ndCBuZWVkIHRoaXMsIGFuZCBpdCBpcyBub3QgZG9jdW1lbnRlZCBvbiB0aGUgCgkJICogZ2VuZXJhbCBEYXRhVGFibGVzLm5ldCBkb2N1bWVudGF0aW9uCgkJICogIEB0eXBlIHN0cmluZwoJCSAqICBAZGVmYXVsdCA8aT5FbXB0eSBzdHJpbmc8aT4KCQkgKiAgQGR0b3B0IENvbHVtbnMKCQkgKiAgICAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAvLyBVc2luZyBhb0NvbHVtbnMKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAiYW9Db2x1bW5zIjogWyAKCQkgKiAgICAgICAgICBudWxsLAoJCSAqICAgICAgICAgIG51bGwsCgkJICogICAgICAgICAgbnVsbCwKCQkgKiAgICAgICAgICB7CgkJICogICAgICAgICAgICAic0NvbnRlbnRQYWRkaW5nIjogIm1tbSIKCQkgKiAgICAgICAgICB9CgkJICogICAgICAgIF0KCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICovCgkJInNDb250ZW50UGFkZGluZyI6ICIiLAoJCgkKCQkvKioKCQkgKiBBbGxvd3MgYSBkZWZhdWx0IHZhbHVlIHRvIGJlIGdpdmVuIGZvciBhIGNvbHVtbidzIGRhdGEsIGFuZCB3aWxsIGJlIHVzZWQKCQkgKiB3aGVuZXZlciBhIG51bGwgZGF0YSBzb3VyY2UgaXMgZW5jb3VudGVyZWQgKHRoaXMgY2FuIGJlIGJlY2F1c2UgbURhdGEKCQkgKiBpcyBzZXQgdG8gbnVsbCwgb3IgYmVjYXVzZSB0aGUgZGF0YSBzb3VyY2UgaXRzZWxmIGlzIG51bGwpLgoJCSAqICBAdHlwZSBzdHJpbmcKCQkgKiAgQGRlZmF1bHQgbnVsbAoJCSAqICBAZHRvcHQgQ29sdW1ucwoJCSAqIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgIC8vIFVzaW5nIGFvQ29sdW1uRGVmcwoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJhb0NvbHVtbkRlZnMiOiBbIAoJCSAqICAgICAgICAgIHsKCQkgKiAgICAgICAgICAgICJtRGF0YSI6IG51bGwsCgkJICogICAgICAgICAgICAic0RlZmF1bHRDb250ZW50IjogIkVkaXQiLAoJCSAqICAgICAgICAgICAgImFUYXJnZXRzIjogWyAtMSBdCgkJICogICAgICAgICAgfQoJCSAqICAgICAgICBdCgkJICogICAgICB9ICk7CgkJICogICAgfSApOwoJCSAqICAgIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgIC8vIFVzaW5nIGFvQ29sdW1ucwoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJhb0NvbHVtbnMiOiBbIAoJCSAqICAgICAgICAgIG51bGwsCgkJICogICAgICAgICAgbnVsbCwKCQkgKiAgICAgICAgICBudWxsLAoJCSAqICAgICAgICAgIHsKCQkgKiAgICAgICAgICAgICJtRGF0YSI6IG51bGwsCgkJICogICAgICAgICAgICAic0RlZmF1bHRDb250ZW50IjogIkVkaXQiCgkJICogICAgICAgICAgfQoJCSAqICAgICAgICBdCgkJICogICAgICB9ICk7CgkJICogICAgfSApOwoJCSAqLwoJCSJzRGVmYXVsdENvbnRlbnQiOiBudWxsLAoJCgkKCQkvKioKCQkgKiBUaGlzIHBhcmFtZXRlciBpcyBvbmx5IHVzZWQgaW4gRGF0YVRhYmxlcycgc2VydmVyLXNpZGUgcHJvY2Vzc2luZy4gSXQgY2FuCgkJICogYmUgZXhjZXB0aW9uYWxseSB1c2VmdWwgdG8ga25vdyB3aGF0IGNvbHVtbnMgYXJlIGJlaW5nIGRpc3BsYXllZCBvbiB0aGUKCQkgKiBjbGllbnQgc2lkZSwgYW5kIHRvIG1hcCB0aGVzZSB0byBkYXRhYmFzZSBmaWVsZHMuIFdoZW4gZGVmaW5lZCwgdGhlIG5hbWVzCgkJICogYWxzbyBhbGxvdyBEYXRhVGFibGVzIHRvIHJlb3JkZXIgaW5mb3JtYXRpb24gZnJvbSB0aGUgc2VydmVyIGlmIGl0IGNvbWVzCgkJICogYmFjayBpbiBhbiB1bmV4cGVjdGVkIG9yZGVyIChpLmUuIGlmIHlvdSBzd2l0Y2ggeW91ciBjb2x1bW5zIGFyb3VuZCBvbiB0aGUKCQkgKiBjbGllbnQtc2lkZSwgeW91ciBzZXJ2ZXItc2lkZSBjb2RlIGRvZXMgbm90IGFsc28gbmVlZCB1cGRhdGluZykuCgkJICogIEB0eXBlIHN0cmluZwoJCSAqICBAZGVmYXVsdCA8aT5FbXB0eSBzdHJpbmc8L2k+CgkJICogIEBkdG9wdCBDb2x1bW5zCgkJICogCgkJICogIEBleGFtcGxlCgkJICogICAgLy8gVXNpbmcgYW9Db2x1bW5EZWZzCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgImFvQ29sdW1uRGVmcyI6IFsgCgkJICogICAgICAgICAgeyAic05hbWUiOiAiZW5naW5lIiwgImFUYXJnZXRzIjogWyAwIF0gfSwKCQkgKiAgICAgICAgICB7ICJzTmFtZSI6ICJicm93c2VyIiwgImFUYXJnZXRzIjogWyAxIF0gfSwKCQkgKiAgICAgICAgICB7ICJzTmFtZSI6ICJwbGF0Zm9ybSIsICJhVGFyZ2V0cyI6IFsgMiBdIH0sCgkJICogICAgICAgICAgeyAic05hbWUiOiAidmVyc2lvbiIsICJhVGFyZ2V0cyI6IFsgMyBdIH0sCgkJICogICAgICAgICAgeyAic05hbWUiOiAiZ3JhZGUiLCAiYVRhcmdldHMiOiBbIDQgXSB9CgkJICogICAgICAgIF0KCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICogICAgCgkJICogIEBleGFtcGxlCgkJICogICAgLy8gVXNpbmcgYW9Db2x1bW5zCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgImFvQ29sdW1ucyI6IFsgCgkJICogICAgICAgICAgeyAic05hbWUiOiAiZW5naW5lIiB9LAoJCSAqICAgICAgICAgIHsgInNOYW1lIjogImJyb3dzZXIiIH0sCgkJICogICAgICAgICAgeyAic05hbWUiOiAicGxhdGZvcm0iIH0sCgkJICogICAgICAgICAgeyAic05hbWUiOiAidmVyc2lvbiIgfSwKCQkgKiAgICAgICAgICB7ICJzTmFtZSI6ICJncmFkZSIgfQoJCSAqICAgICAgICBdCgkJICogICAgICB9ICk7CgkJICogICAgfSApOwoJCSAqLwoJCSJzTmFtZSI6ICIiLAoJCgkKCQkvKioKCQkgKiBEZWZpbmVzIGEgZGF0YSBzb3VyY2UgdHlwZSBmb3IgdGhlIHNvcnRpbmcgd2hpY2ggY2FuIGJlIHVzZWQgdG8gcmVhZAoJCSAqIHJlYWwtdGltZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSB0YWJsZSAodXBkYXRpbmcgdGhlIGludGVybmFsbHkgY2FjaGVkCgkJICogdmVyc2lvbikgcHJpb3IgdG8gc29ydGluZy4gVGhpcyBhbGxvd3Mgc29ydGluZyB0byBvY2N1ciBvbiB1c2VyIGVkaXRhYmxlCgkJICogZWxlbWVudHMgc3VjaCBhcyBmb3JtIGlucHV0cy4KCQkgKiAgQHR5cGUgc3RyaW5nCgkJICogIEBkZWZhdWx0IHN0ZAoJCSAqICBAZHRvcHQgQ29sdW1ucwoJCSAqIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgIC8vIFVzaW5nIGFvQ29sdW1uRGVmcwoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJhb0NvbHVtbkRlZnMiOiBbCgkJICogICAgICAgICAgeyAic1NvcnREYXRhVHlwZSI6ICJkb20tdGV4dCIsICJhVGFyZ2V0cyI6IFsgMiwgMyBdIH0sCgkJICogICAgICAgICAgeyAic1R5cGUiOiAibnVtZXJpYyIsICJhVGFyZ2V0cyI6IFsgMyBdIH0sCgkJICogICAgICAgICAgeyAic1NvcnREYXRhVHlwZSI6ICJkb20tc2VsZWN0IiwgImFUYXJnZXRzIjogWyA0IF0gfSwKCQkgKiAgICAgICAgICB7ICJzU29ydERhdGFUeXBlIjogImRvbS1jaGVja2JveCIsICJhVGFyZ2V0cyI6IFsgNSBdIH0KCQkgKiAgICAgICAgXQoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKTsKCQkgKiAgICAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAvLyBVc2luZyBhb0NvbHVtbnMKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAiYW9Db2x1bW5zIjogWwoJCSAqICAgICAgICAgIG51bGwsCgkJICogICAgICAgICAgbnVsbCwKCQkgKiAgICAgICAgICB7ICJzU29ydERhdGFUeXBlIjogImRvbS10ZXh0IiB9LAoJCSAqICAgICAgICAgIHsgInNTb3J0RGF0YVR5cGUiOiAiZG9tLXRleHQiLCAic1R5cGUiOiAibnVtZXJpYyIgfSwKCQkgKiAgICAgICAgICB7ICJzU29ydERhdGFUeXBlIjogImRvbS1zZWxlY3QiIH0sCgkJICogICAgICAgICAgeyAic1NvcnREYXRhVHlwZSI6ICJkb20tY2hlY2tib3giIH0KCQkgKiAgICAgICAgXQoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKTsKCQkgKi8KCQkic1NvcnREYXRhVHlwZSI6ICJzdGQiLAoJCgkKCQkvKioKCQkgKiBUaGUgdGl0bGUgb2YgdGhpcyBjb2x1bW4uCgkJICogIEB0eXBlIHN0cmluZwoJCSAqICBAZGVmYXVsdCBudWxsIDxpPkRlcml2ZWQgZnJvbSB0aGUgJ1RIJyB2YWx1ZSBmb3IgdGhpcyBjb2x1bW4gaW4gdGhlIAoJCSAqICAgIG9yaWdpbmFsIEhUTUwgdGFibGUuPC9pPgoJCSAqICBAZHRvcHQgQ29sdW1ucwoJCSAqIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgIC8vIFVzaW5nIGFvQ29sdW1uRGVmcwoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJhb0NvbHVtbkRlZnMiOiBbIAoJCSAqICAgICAgICAgIHsgInNUaXRsZSI6ICJNeSBjb2x1bW4gdGl0bGUiLCAiYVRhcmdldHMiOiBbIDAgXSB9CgkJICogICAgICAgIF0KCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICogICAgCgkJICogIEBleGFtcGxlCgkJICogICAgLy8gVXNpbmcgYW9Db2x1bW5zCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgImFvQ29sdW1ucyI6IFsgCgkJICogICAgICAgICAgeyAic1RpdGxlIjogIk15IGNvbHVtbiB0aXRsZSIgfSwKCQkgKiAgICAgICAgICBudWxsLAoJCSAqICAgICAgICAgIG51bGwsCgkJICogICAgICAgICAgbnVsbCwKCQkgKiAgICAgICAgICBudWxsCgkJICogICAgICAgIF0KCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICovCgkJInNUaXRsZSI6IG51bGwsCgkKCQoJCS8qKgoJCSAqIFRoZSB0eXBlIGFsbG93cyB5b3UgdG8gc3BlY2lmeSBob3cgdGhlIGRhdGEgZm9yIHRoaXMgY29sdW1uIHdpbGwgYmUgc29ydGVkLgoJCSAqIEZvdXIgdHlwZXMgKHN0cmluZywgbnVtZXJpYywgZGF0ZSBhbmQgaHRtbCAod2hpY2ggd2lsbCBzdHJpcCBIVE1MIHRhZ3MKCQkgKiBiZWZvcmUgc29ydGluZykpIGFyZSBjdXJyZW50bHkgYXZhaWxhYmxlLiBOb3RlIHRoYXQgb25seSBkYXRlIGZvcm1hdHMKCQkgKiB1bmRlcnN0b29kIGJ5IEphdmFzY3JpcHQncyBEYXRlKCkgb2JqZWN0IHdpbGwgYmUgYWNjZXB0ZWQgYXMgdHlwZSBkYXRlLiBGb3IKCQkgKiBleGFtcGxlOiAiTWFyIDI2LCAyMDA4IDU6MDMgUE0iLiBNYXkgdGFrZSB0aGUgdmFsdWVzOiAnc3RyaW5nJywgJ251bWVyaWMnLAoJCSAqICdkYXRlJyBvciAnaHRtbCcgKGJ5IGRlZmF1bHQpLiBGdXJ0aGVyIHR5cGVzIGNhbiBiZSBhZGRpbmcgdGhyb3VnaAoJCSAqIHBsdWctaW5zLgoJCSAqICBAdHlwZSBzdHJpbmcKCQkgKiAgQGRlZmF1bHQgbnVsbCA8aT5BdXRvLWRldGVjdGVkIGZyb20gcmF3IGRhdGE8L2k+CgkJICogIEBkdG9wdCBDb2x1bW5zCgkJICogCgkJICogIEBleGFtcGxlCgkJICogICAgLy8gVXNpbmcgYW9Db2x1bW5EZWZzCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgImFvQ29sdW1uRGVmcyI6IFsgCgkJICogICAgICAgICAgeyAic1R5cGUiOiAiaHRtbCIsICJhVGFyZ2V0cyI6IFsgMCBdIH0KCQkgKiAgICAgICAgXQoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKTsKCQkgKiAgICAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAvLyBVc2luZyBhb0NvbHVtbnMKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAiYW9Db2x1bW5zIjogWyAKCQkgKiAgICAgICAgICB7ICJzVHlwZSI6ICJodG1sIiB9LAoJCSAqICAgICAgICAgIG51bGwsCgkJICogICAgICAgICAgbnVsbCwKCQkgKiAgICAgICAgICBudWxsLAoJCSAqICAgICAgICAgIG51bGwKCQkgKiAgICAgICAgXQoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKTsKCQkgKi8KCQkic1R5cGUiOiBudWxsLAoJCgkKCQkvKioKCQkgKiBEZWZpbmluZyB0aGUgd2lkdGggb2YgdGhlIGNvbHVtbiwgdGhpcyBwYXJhbWV0ZXIgbWF5IHRha2UgYW55IENTUyB2YWx1ZQoJCSAqICgzZW0sIDIwcHggZXRjKS4gRGF0YVRhYmxlcyBhcHBsZXMgJ3NtYXJ0JyB3aWR0aHMgdG8gY29sdW1ucyB3aGljaCBoYXZlIG5vdAoJCSAqIGJlZW4gZ2l2ZW4gYSBzcGVjaWZpYyB3aWR0aCB0aHJvdWdoIHRoaXMgaW50ZXJmYWNlIGVuc3VyaW5nIHRoYXQgdGhlIHRhYmxlCgkJICogcmVtYWlucyByZWFkYWJsZS4KCQkgKiAgQHR5cGUgc3RyaW5nCgkJICogIEBkZWZhdWx0IG51bGwgPGk+QXV0b21hdGljPC9pPgoJCSAqICBAZHRvcHQgQ29sdW1ucwoJCSAqIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgIC8vIFVzaW5nIGFvQ29sdW1uRGVmcwoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJhb0NvbHVtbkRlZnMiOiBbIAoJCSAqICAgICAgICAgIHsgInNXaWR0aCI6ICIyMCUiLCAiYVRhcmdldHMiOiBbIDAgXSB9CgkJICogICAgICAgIF0KCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICogICAgCgkJICogIEBleGFtcGxlCgkJICogICAgLy8gVXNpbmcgYW9Db2x1bW5zCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgImFvQ29sdW1ucyI6IFsgCgkJICogICAgICAgICAgeyAic1dpZHRoIjogIjIwJSIgfSwKCQkgKiAgICAgICAgICBudWxsLAoJCSAqICAgICAgICAgIG51bGwsCgkJICogICAgICAgICAgbnVsbCwKCQkgKiAgICAgICAgICBudWxsCgkJICogICAgICAgIF0KCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICovCgkJInNXaWR0aCI6IG51bGwKCX07CgkKCQoJCgkvKioKCSAqIERhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0IC0gdGhpcyBob2xkcyBhbGwgdGhlIGluZm9ybWF0aW9uIG5lZWRlZCBmb3IgYQoJICogZ2l2ZW4gdGFibGUsIGluY2x1ZGluZyBjb25maWd1cmF0aW9uLCBkYXRhIGFuZCBjdXJyZW50IGFwcGxpY2F0aW9uIG9mIHRoZQoJICogdGFibGUgb3B0aW9ucy4gRGF0YVRhYmxlcyBkb2VzIG5vdCBoYXZlIGEgc2luZ2xlIGluc3RhbmNlIGZvciBlYWNoIERhdGFUYWJsZQoJICogd2l0aCB0aGUgc2V0dGluZ3MgYXR0YWNoZWQgdG8gdGhhdCBpbnN0YW5jZSwgYnV0IHJhdGhlciBpbnN0YW5jZXMgb2YgdGhlCgkgKiBEYXRhVGFibGUgImNsYXNzIiBhcmUgY3JlYXRlZCBvbi10aGUtZmx5IGFzIG5lZWRlZCAodHlwaWNhbGx5IGJ5IGEgCgkgKiAkKCkuZGF0YVRhYmxlKCkgY2FsbCkgYW5kIHRoZSBzZXR0aW5ncyBvYmplY3QgaXMgdGhlbiBhcHBsaWVkIHRvIHRoYXQKCSAqIGluc3RhbmNlLgoJICogCgkgKiBOb3RlIHRoYXQgdGhpcyBvYmplY3QgaXMgcmVsYXRlZCB0byB7QGxpbmsgRGF0YVRhYmxlLmRlZmF1bHRzfSBidXQgdGhpcyAKCSAqIG9uZSBpcyB0aGUgaW50ZXJuYWwgZGF0YSBzdG9yZSBmb3IgRGF0YVRhYmxlcydzIGNhY2hlIG9mIGNvbHVtbnMuIEl0IHNob3VsZAoJICogTk9UIGJlIG1hbmlwdWxhdGVkIG91dHNpZGUgb2YgRGF0YVRhYmxlcy4gQW55IGNvbmZpZ3VyYXRpb24gc2hvdWxkIGJlIGRvbmUKCSAqIHRocm91Z2ggdGhlIGluaXRpYWxpc2F0aW9uIG9wdGlvbnMuCgkgKiAgQG5hbWVzcGFjZQoJICogIEB0b2RvIFJlYWxseSBzaG91bGQgYXR0YWNoIHRoZSBzZXR0aW5ncyBvYmplY3QgdG8gaW5kaXZpZHVhbCBpbnN0YW5jZXMgc28gd2UKCSAqICAgIGRvbid0IG5lZWQgdG8gY3JlYXRlIG5ldyBpbnN0YW5jZXMgb24gZWFjaCAkKCkuZGF0YVRhYmxlKCkgY2FsbCAoaWYgdGhlCgkgKiAgICB0YWJsZSBhbHJlYWR5IGV4aXN0cykuIEl0IHdvdWxkIGFsc28gc2F2ZSBwYXNzaW5nIG9TZXR0aW5ncyBhcm91bmQgYW5kCgkgKiAgICBpbnRvIGV2ZXJ5IHNpbmdsZSBmdW5jdGlvbi4gSG93ZXZlciwgdGhpcyBpcyBhIHZlcnkgc2lnbmlmaWNhbnQgCgkgKiAgICBhcmNoaXRlY3R1cmUgY2hhbmdlIGZvciBEYXRhVGFibGVzIGFuZCB3aWxsIGFsbW9zdCBjZXJ0YWlubHkgYnJlYWsKCSAqICAgIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggb2xkZXIgaW5zdGFsbGF0aW9ucy4gVGhpcyBpcyBzb21ldGhpbmcgdGhhdAoJICogICAgd2lsbCBiZSBkb25lIGluIDIuMC4KCSAqLwoJRGF0YVRhYmxlLm1vZGVscy5vU2V0dGluZ3MgPSB7CgkJLyoqCgkJICogUHJpbWFyeSBmZWF0dXJlcyBvZiBEYXRhVGFibGVzIGFuZCB0aGVpciBlbmFibGVtZW50IHN0YXRlLgoJCSAqICBAbmFtZXNwYWNlCgkJICovCgkJIm9GZWF0dXJlcyI6IHsKCQkJCgkJCS8qKgoJCQkgKiBGbGFnIHRvIHNheSBpZiBEYXRhVGFibGVzIHNob3VsZCBhdXRvbWF0aWNhbGx5IHRyeSB0byBjYWxjdWxhdGUgdGhlCgkJCSAqIG9wdGltdW0gdGFibGUgYW5kIGNvbHVtbnMgd2lkdGhzICh0cnVlKSBvciBub3QgKGZhbHNlKS4KCQkJICogTm90ZSB0aGF0IHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgc2V0IGJ5IHRoZSBpbml0aWFsaXNhdGlvbiByb3V0aW5lLiBUbwoJCQkgKiBzZXQgYSBkZWZhdWx0IHVzZSB7QGxpbmsgRGF0YVRhYmxlLmRlZmF1bHRzfS4KCQkJICogIEB0eXBlIGJvb2xlYW4KCQkJICovCgkJCSJiQXV0b1dpZHRoIjogbnVsbCwKCQoJCQkvKioKCQkJICogRGVsYXkgdGhlIGNyZWF0aW9uIG9mIFRSIGFuZCBURCBlbGVtZW50cyB1bnRpbCB0aGV5IGFyZSBhY3R1YWxseQoJCQkgKiBuZWVkZWQgYnkgYSBkcml2ZW4gcGFnZSBkcmF3LiBUaGlzIGNhbiBnaXZlIGEgc2lnbmlmaWNhbnQgc3BlZWQKCQkJICogaW5jcmVhc2UgZm9yIEFqYXggc291cmNlIGFuZCBKYXZhc2NyaXB0IHNvdXJjZSBkYXRhLCBidXQgbWFrZXMgbm8KCQkJICogZGlmZmVyZW5jZSBhdCBhbGwgZnJvIERPTSBhbmQgc2VydmVyLXNpZGUgcHJvY2Vzc2luZyB0YWJsZXMuCgkJCSAqIE5vdGUgdGhhdCB0aGlzIHBhcmFtZXRlciB3aWxsIGJlIHNldCBieSB0aGUgaW5pdGlhbGlzYXRpb24gcm91dGluZS4gVG8KCQkJICogc2V0IGEgZGVmYXVsdCB1c2Uge0BsaW5rIERhdGFUYWJsZS5kZWZhdWx0c30uCgkJCSAqICBAdHlwZSBib29sZWFuCgkJCSAqLwoJCQkiYkRlZmVyUmVuZGVyIjogbnVsbCwKCQkJCgkJCS8qKgoJCQkgKiBFbmFibGUgZmlsdGVyaW5nIG9uIHRoZSB0YWJsZSBvciBub3QuIE5vdGUgdGhhdCBpZiB0aGlzIGlzIGRpc2FibGVkCgkJCSAqIHRoZW4gdGhlcmUgaXMgbm8gZmlsdGVyaW5nIGF0IGFsbCBvbiB0aGUgdGFibGUsIGluY2x1ZGluZyBmbkZpbHRlci4KCQkJICogVG8ganVzdCByZW1vdmUgdGhlIGZpbHRlcmluZyBpbnB1dCB1c2Ugc0RvbSBhbmQgcmVtb3ZlIHRoZSAnZicgb3B0aW9uLgoJCQkgKiBOb3RlIHRoYXQgdGhpcyBwYXJhbWV0ZXIgd2lsbCBiZSBzZXQgYnkgdGhlIGluaXRpYWxpc2F0aW9uIHJvdXRpbmUuIFRvCgkJCSAqIHNldCBhIGRlZmF1bHQgdXNlIHtAbGluayBEYXRhVGFibGUuZGVmYXVsdHN9LgoJCQkgKiAgQHR5cGUgYm9vbGVhbgoJCQkgKi8KCQkJImJGaWx0ZXIiOiBudWxsLAoJCQkKCQkJLyoqCgkJCSAqIFRhYmxlIGluZm9ybWF0aW9uIGVsZW1lbnQgKHRoZSAnU2hvd2luZyB4IG9mIHkgcmVjb3JkcycgZGl2KSBlbmFibGUKCQkJICogZmxhZy4KCQkJICogTm90ZSB0aGF0IHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgc2V0IGJ5IHRoZSBpbml0aWFsaXNhdGlvbiByb3V0aW5lLiBUbwoJCQkgKiBzZXQgYSBkZWZhdWx0IHVzZSB7QGxpbmsgRGF0YVRhYmxlLmRlZmF1bHRzfS4KCQkJICogIEB0eXBlIGJvb2xlYW4KCQkJICovCgkJCSJiSW5mbyI6IG51bGwsCgkJCQoJCQkvKioKCQkJICogUHJlc2VudCBhIHVzZXIgY29udHJvbCBhbGxvd2luZyB0aGUgZW5kIHVzZXIgdG8gY2hhbmdlIHRoZSBwYWdlIHNpemUKCQkJICogd2hlbiBwYWdpbmF0aW9uIGlzIGVuYWJsZWQuCgkJCSAqIE5vdGUgdGhhdCB0aGlzIHBhcmFtZXRlciB3aWxsIGJlIHNldCBieSB0aGUgaW5pdGlhbGlzYXRpb24gcm91dGluZS4gVG8KCQkJICogc2V0IGEgZGVmYXVsdCB1c2Uge0BsaW5rIERhdGFUYWJsZS5kZWZhdWx0c30uCgkJCSAqICBAdHlwZSBib29sZWFuCgkJCSAqLwoJCQkiYkxlbmd0aENoYW5nZSI6IG51bGwsCgkKCQkJLyoqCgkJCSAqIFBhZ2luYXRpb24gZW5hYmxlZCBvciBub3QuIE5vdGUgdGhhdCBpZiB0aGlzIGlzIGRpc2FibGVkIHRoZW4gbGVuZ3RoCgkJCSAqIGNoYW5naW5nIG11c3QgYWxzbyBiZSBkaXNhYmxlZC4KCQkJICogTm90ZSB0aGF0IHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgc2V0IGJ5IHRoZSBpbml0aWFsaXNhdGlvbiByb3V0aW5lLiBUbwoJCQkgKiBzZXQgYSBkZWZhdWx0IHVzZSB7QGxpbmsgRGF0YVRhYmxlLmRlZmF1bHRzfS4KCQkJICogIEB0eXBlIGJvb2xlYW4KCQkJICovCgkJCSJiUGFnaW5hdGUiOiBudWxsLAoJCQkKCQkJLyoqCgkJCSAqIFByb2Nlc3NpbmcgaW5kaWNhdG9yIGVuYWJsZSBmbGFnIHdoZW5ldmVyIERhdGFUYWJsZXMgaXMgZW5hY3RpbmcgYQoJCQkgKiB1c2VyIHJlcXVlc3QgLSB0eXBpY2FsbHkgYW4gQWpheCByZXF1ZXN0IGZvciBzZXJ2ZXItc2lkZSBwcm9jZXNzaW5nLgoJCQkgKiBOb3RlIHRoYXQgdGhpcyBwYXJhbWV0ZXIgd2lsbCBiZSBzZXQgYnkgdGhlIGluaXRpYWxpc2F0aW9uIHJvdXRpbmUuIFRvCgkJCSAqIHNldCBhIGRlZmF1bHQgdXNlIHtAbGluayBEYXRhVGFibGUuZGVmYXVsdHN9LgoJCQkgKiAgQHR5cGUgYm9vbGVhbgoJCQkgKi8KCQkJImJQcm9jZXNzaW5nIjogbnVsbCwKCQkJCgkJCS8qKgoJCQkgKiBTZXJ2ZXItc2lkZSBwcm9jZXNzaW5nIGVuYWJsZWQgZmxhZyAtIHdoZW4gZW5hYmxlZCBEYXRhVGFibGVzIHdpbGwKCQkJICogZ2V0IGFsbCBkYXRhIGZyb20gdGhlIHNlcnZlciBmb3IgZXZlcnkgZHJhdyAtIHRoZXJlIGlzIG5vIGZpbHRlcmluZywKCQkJICogc29ydGluZyBvciBwYWdpbmcgZG9uZSBvbiB0aGUgY2xpZW50LXNpZGUuCgkJCSAqIE5vdGUgdGhhdCB0aGlzIHBhcmFtZXRlciB3aWxsIGJlIHNldCBieSB0aGUgaW5pdGlhbGlzYXRpb24gcm91dGluZS4gVG8KCQkJICogc2V0IGEgZGVmYXVsdCB1c2Uge0BsaW5rIERhdGFUYWJsZS5kZWZhdWx0c30uCgkJCSAqICBAdHlwZSBib29sZWFuCgkJCSAqLwoJCQkiYlNlcnZlclNpZGUiOiBudWxsLAoJCQkKCQkJLyoqCgkJCSAqIFNvcnRpbmcgZW5hYmxlbWVudCBmbGFnLgoJCQkgKiBOb3RlIHRoYXQgdGhpcyBwYXJhbWV0ZXIgd2lsbCBiZSBzZXQgYnkgdGhlIGluaXRpYWxpc2F0aW9uIHJvdXRpbmUuIFRvCgkJCSAqIHNldCBhIGRlZmF1bHQgdXNlIHtAbGluayBEYXRhVGFibGUuZGVmYXVsdHN9LgoJCQkgKiAgQHR5cGUgYm9vbGVhbgoJCQkgKi8KCQkJImJTb3J0IjogbnVsbCwKCQkJCgkJCS8qKgoJCQkgKiBBcHBseSBhIGNsYXNzIHRvIHRoZSBjb2x1bW5zIHdoaWNoIGFyZSBiZWluZyBzb3J0ZWQgdG8gcHJvdmlkZSBhCgkJCSAqIHZpc3VhbCBoaWdobGlnaHQgb3Igbm90LiBUaGlzIGNhbiBzbG93IHRoaW5ncyBkb3duIHdoZW4gZW5hYmxlZCBzaW5jZQoJCQkgKiB0aGVyZSBpcyBhIGxvdCBvZiBET00gaW50ZXJhY3Rpb24uCgkJCSAqIE5vdGUgdGhhdCB0aGlzIHBhcmFtZXRlciB3aWxsIGJlIHNldCBieSB0aGUgaW5pdGlhbGlzYXRpb24gcm91dGluZS4gVG8KCQkJICogc2V0IGEgZGVmYXVsdCB1c2Uge0BsaW5rIERhdGFUYWJsZS5kZWZhdWx0c30uCgkJCSAqICBAdHlwZSBib29sZWFuCgkJCSAqLwoJCQkiYlNvcnRDbGFzc2VzIjogbnVsbCwKCQkJCgkJCS8qKgoJCQkgKiBTdGF0ZSBzYXZpbmcgZW5hYmxlbWVudCBmbGFnLgoJCQkgKiBOb3RlIHRoYXQgdGhpcyBwYXJhbWV0ZXIgd2lsbCBiZSBzZXQgYnkgdGhlIGluaXRpYWxpc2F0aW9uIHJvdXRpbmUuIFRvCgkJCSAqIHNldCBhIGRlZmF1bHQgdXNlIHtAbGluayBEYXRhVGFibGUuZGVmYXVsdHN9LgoJCQkgKiAgQHR5cGUgYm9vbGVhbgoJCQkgKi8KCQkJImJTdGF0ZVNhdmUiOiBudWxsCgkJfSwKCQkKCQoJCS8qKgoJCSAqIFNjcm9sbGluZyBzZXR0aW5ncyBmb3IgYSB0YWJsZS4KCQkgKiAgQG5hbWVzcGFjZQoJCSAqLwoJCSJvU2Nyb2xsIjogewoJCQkvKioKCQkJICogSW5kaWNhdGUgaWYgRGF0YVRhYmxlcyBzaG91bGQgYmUgYWxsb3dlZCB0byBzZXQgdGhlIHBhZGRpbmcgLyBtYXJnaW4KCQkJICogZXRjIGZvciB0aGUgc2Nyb2xsaW5nIGhlYWRlciBlbGVtZW50cyBvciBub3QuIFR5cGljYWxseSB5b3Ugd2lsbCB3YW50CgkJCSAqIHRoaXMuCgkJCSAqIE5vdGUgdGhhdCB0aGlzIHBhcmFtZXRlciB3aWxsIGJlIHNldCBieSB0aGUgaW5pdGlhbGlzYXRpb24gcm91dGluZS4gVG8KCQkJICogc2V0IGEgZGVmYXVsdCB1c2Uge0BsaW5rIERhdGFUYWJsZS5kZWZhdWx0c30uCgkJCSAqICBAdHlwZSBib29sZWFuCgkJCSAqLwoJCQkiYkF1dG9Dc3MiOiBudWxsLAoJCQkKCQkJLyoqCgkJCSAqIFdoZW4gdGhlIHRhYmxlIGlzIHNob3J0ZXIgaW4gaGVpZ2h0IHRoYW4gc1Njcm9sbFksIGNvbGxhcHNlIHRoZQoJCQkgKiB0YWJsZSBjb250YWluZXIgZG93biB0byB0aGUgaGVpZ2h0IG9mIHRoZSB0YWJsZSAod2hlbiB0cnVlKS4KCQkJICogTm90ZSB0aGF0IHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgc2V0IGJ5IHRoZSBpbml0aWFsaXNhdGlvbiByb3V0aW5lLiBUbwoJCQkgKiBzZXQgYSBkZWZhdWx0IHVzZSB7QGxpbmsgRGF0YVRhYmxlLmRlZmF1bHRzfS4KCQkJICogIEB0eXBlIGJvb2xlYW4KCQkJICovCgkJCSJiQ29sbGFwc2UiOiBudWxsLAoJCQkKCQkJLyoqCgkJCSAqIEluZmluaXRlIHNjcm9sbGluZyBlbmFibGVtZW50IGZsYWcuIE5vdyBkZXByZWNhdGVkIGluIGZhdm91ciBvZgoJCQkgKiB1c2luZyB0aGUgU2Nyb2xsZXIgcGx1Zy1pbi4KCQkJICogTm90ZSB0aGF0IHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgc2V0IGJ5IHRoZSBpbml0aWFsaXNhdGlvbiByb3V0aW5lLiBUbwoJCQkgKiBzZXQgYSBkZWZhdWx0IHVzZSB7QGxpbmsgRGF0YVRhYmxlLmRlZmF1bHRzfS4KCQkJICogIEB0eXBlIGJvb2xlYW4KCQkJICovCgkJCSJiSW5maW5pdGUiOiBudWxsLAoJCQkKCQkJLyoqCgkJCSAqIFdpZHRoIG9mIHRoZSBzY3JvbGxiYXIgZm9yIHRoZSB3ZWItYnJvd3NlcidzIHBsYXRmb3JtLiBDYWxjdWxhdGVkCgkJCSAqIGR1cmluZyB0YWJsZSBpbml0aWFsaXNhdGlvbi4KCQkJICogIEB0eXBlIGludAoJCQkgKiAgQGRlZmF1bHQgMAoJCQkgKi8KCQkJImlCYXJXaWR0aCI6IDAsCgkJCQoJCQkvKioKCQkJICogU3BhY2UgKGluIHBpeGVscykgYmV0d2VlbiB0aGUgYm90dG9tIG9mIHRoZSBzY3JvbGxpbmcgY29udGFpbmVyIGFuZCAKCQkJICogdGhlIGJvdHRvbSBvZiB0aGUgc2Nyb2xsaW5nIHZpZXdwb3J0IGJlZm9yZSB0aGUgbmV4dCBwYWdlIGlzIGxvYWRlZAoJCQkgKiB3aGVuIHVzaW5nIGluZmluaXRlIHNjcm9sbGluZy4KCQkJICogTm90ZSB0aGF0IHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgc2V0IGJ5IHRoZSBpbml0aWFsaXNhdGlvbiByb3V0aW5lLiBUbwoJCQkgKiBzZXQgYSBkZWZhdWx0IHVzZSB7QGxpbmsgRGF0YVRhYmxlLmRlZmF1bHRzfS4KCQkJICogIEB0eXBlIGludAoJCQkgKi8KCQkJImlMb2FkR2FwIjogbnVsbCwKCQkJCgkJCS8qKgoJCQkgKiBWaWV3cG9ydCB3aWR0aCBmb3IgaG9yaXpvbnRhbCBzY3JvbGxpbmcuIEhvcml6b250YWwgc2Nyb2xsaW5nIGlzIAoJCQkgKiBkaXNhYmxlZCBpZiBhbiBlbXB0eSBzdHJpbmcuCgkJCSAqIE5vdGUgdGhhdCB0aGlzIHBhcmFtZXRlciB3aWxsIGJlIHNldCBieSB0aGUgaW5pdGlhbGlzYXRpb24gcm91dGluZS4gVG8KCQkJICogc2V0IGEgZGVmYXVsdCB1c2Uge0BsaW5rIERhdGFUYWJsZS5kZWZhdWx0c30uCgkJCSAqICBAdHlwZSBzdHJpbmcKCQkJICovCgkJCSJzWCI6IG51bGwsCgkJCQoJCQkvKioKCQkJICogV2lkdGggdG8gZXhwYW5kIHRoZSB0YWJsZSB0byB3aGVuIHVzaW5nIHgtc2Nyb2xsaW5nLiBUeXBpY2FsbHkgeW91CgkJCSAqIHNob3VsZCBub3QgbmVlZCB0byB1c2UgdGhpcy4KCQkJICogTm90ZSB0aGF0IHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgc2V0IGJ5IHRoZSBpbml0aWFsaXNhdGlvbiByb3V0aW5lLiBUbwoJCQkgKiBzZXQgYSBkZWZhdWx0IHVzZSB7QGxpbmsgRGF0YVRhYmxlLmRlZmF1bHRzfS4KCQkJICogIEB0eXBlIHN0cmluZwoJCQkgKiAgQGRlcHJlY2F0ZWQKCQkJICovCgkJCSJzWElubmVyIjogbnVsbCwKCQkJCgkJCS8qKgoJCQkgKiBWaWV3cG9ydCBoZWlnaHQgZm9yIHZlcnRpY2FsIHNjcm9sbGluZy4gVmVydGljYWwgc2Nyb2xsaW5nIGlzIGRpc2FibGVkCgkJCSAqIGlmIGFuIGVtcHR5IHN0cmluZy4KCQkJICogTm90ZSB0aGF0IHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgc2V0IGJ5IHRoZSBpbml0aWFsaXNhdGlvbiByb3V0aW5lLiBUbwoJCQkgKiBzZXQgYSBkZWZhdWx0IHVzZSB7QGxpbmsgRGF0YVRhYmxlLmRlZmF1bHRzfS4KCQkJICogIEB0eXBlIHN0cmluZwoJCQkgKi8KCQkJInNZIjogbnVsbAoJCX0sCgkJCgkJLyoqCgkJICogTGFuZ3VhZ2UgaW5mb3JtYXRpb24gZm9yIHRoZSB0YWJsZS4KCQkgKiAgQG5hbWVzcGFjZQoJCSAqICBAZXh0ZW5kcyBEYXRhVGFibGUuZGVmYXVsdHMub0xhbmd1YWdlCgkJICovCgkJIm9MYW5ndWFnZSI6IHsKCQkJLyoqCgkJCSAqIEluZm9ybWF0aW9uIGNhbGxiYWNrIGZ1bmN0aW9uLiBTZWUgCgkJCSAqIHtAbGluayBEYXRhVGFibGUuZGVmYXVsdHMuZm5JbmZvQ2FsbGJhY2t9CgkJCSAqICBAdHlwZSBmdW5jdGlvbgoJCQkgKiAgQGRlZmF1bHQgbnVsbAoJCQkgKi8KCQkJImZuSW5mb0NhbGxiYWNrIjogbnVsbAoJCX0sCgkJCgkJLyoqCgkJICogQnJvd3NlciBzdXBwb3J0IHBhcmFtZXRlcnMKCQkgKiAgQG5hbWVzcGFjZQoJCSAqLwoJCSJvQnJvd3NlciI6IHsKCQkJLyoqCgkJCSAqIEluZGljYXRlIGlmIHRoZSBicm93c2VyIGluY29ycmVjdGx5IGNhbGN1bGF0ZXMgd2lkdGg6MTAwJSBpbnNpZGUgYQoJCQkgKiBzY3JvbGxpbmcgZWxlbWVudCAoSUU2LzcpCgkJCSAqICBAdHlwZSBib29sZWFuCgkJCSAqICBAZGVmYXVsdCBmYWxzZQoJCQkgKi8KCQkJImJTY3JvbGxPdmVyc2l6ZSI6IGZhbHNlCgkJfSwKCQkKCQkvKioKCQkgKiBBcnJheSByZWZlcmVuY2luZyB0aGUgbm9kZXMgd2hpY2ggYXJlIHVzZWQgZm9yIHRoZSBmZWF0dXJlcy4gVGhlIAoJCSAqIHBhcmFtZXRlcnMgb2YgdGhpcyBvYmplY3QgbWF0Y2ggd2hhdCBpcyBhbGxvd2VkIGJ5IHNEb20gLSBpLmUuCgkJICogICA8dWw+CgkJICogICAgIDxsaT4nbCcgLSBMZW5ndGggY2hhbmdpbmc8L2xpPgoJCSAqICAgICA8bGk+J2YnIC0gRmlsdGVyaW5nIGlucHV0PC9saT4KCQkgKiAgICAgPGxpPid0JyAtIFRoZSB0YWJsZSE8L2xpPgoJCSAqICAgICA8bGk+J2knIC0gSW5mb3JtYXRpb248L2xpPgoJCSAqICAgICA8bGk+J3AnIC0gUGFnaW5hdGlvbjwvbGk+CgkJICogICAgIDxsaT4ncicgLSBwUm9jZXNzaW5nPC9saT4KCQkgKiAgIDwvdWw+CgkJICogIEB0eXBlIGFycmF5CgkJICogIEBkZWZhdWx0IFtdCgkJICovCgkJImFhbkZlYXR1cmVzIjogW10sCgkJCgkJLyoqCgkJICogU3RvcmUgZGF0YSBpbmZvcm1hdGlvbiAtIHNlZSB7QGxpbmsgRGF0YVRhYmxlLm1vZGVscy5vUm93fSBmb3IgZGV0YWlsZWQKCQkgKiBpbmZvcm1hdGlvbi4KCQkgKiAgQHR5cGUgYXJyYXkKCQkgKiAgQGRlZmF1bHQgW10KCQkgKi8KCQkiYW9EYXRhIjogW10sCgkJCgkJLyoqCgkJICogQXJyYXkgb2YgaW5kZXhlcyB3aGljaCBhcmUgaW4gdGhlIGN1cnJlbnQgZGlzcGxheSAoYWZ0ZXIgZmlsdGVyaW5nIGV0YykKCQkgKiAgQHR5cGUgYXJyYXkKCQkgKiAgQGRlZmF1bHQgW10KCQkgKi8KCQkiYWlEaXNwbGF5IjogW10sCgkJCgkJLyoqCgkJICogQXJyYXkgb2YgaW5kZXhlcyBmb3IgZGlzcGxheSAtIG5vIGZpbHRlcmluZwoJCSAqICBAdHlwZSBhcnJheQoJCSAqICBAZGVmYXVsdCBbXQoJCSAqLwoJCSJhaURpc3BsYXlNYXN0ZXIiOiBbXSwKCQkKCQkvKioKCQkgKiBTdG9yZSBpbmZvcm1hdGlvbiBhYm91dCBlYWNoIGNvbHVtbiB0aGF0IGlzIGluIHVzZQoJCSAqICBAdHlwZSBhcnJheQoJCSAqICBAZGVmYXVsdCBbXQoJCSAqLwoJCSJhb0NvbHVtbnMiOiBbXSwKCQkKCQkvKioKCQkgKiBTdG9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdGFibGUncyBoZWFkZXIKCQkgKiAgQHR5cGUgYXJyYXkKCQkgKiAgQGRlZmF1bHQgW10KCQkgKi8KCQkiYW9IZWFkZXIiOiBbXSwKCQkKCQkvKioKCQkgKiBTdG9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdGFibGUncyBmb290ZXIKCQkgKiAgQHR5cGUgYXJyYXkKCQkgKiAgQGRlZmF1bHQgW10KCQkgKi8KCQkiYW9Gb290ZXIiOiBbXSwKCQkKCQkvKioKCQkgKiBTZWFyY2ggZGF0YSBhcnJheSBmb3IgcmVndWxhciBleHByZXNzaW9uIHNlYXJjaGluZwoJCSAqICBAdHlwZSBhcnJheQoJCSAqICBAZGVmYXVsdCBbXQoJCSAqLwoJCSJhc0RhdGFTZWFyY2giOiBbXSwKCQkKCQkvKioKCQkgKiBTdG9yZSB0aGUgYXBwbGllZCBnbG9iYWwgc2VhcmNoIGluZm9ybWF0aW9uIGluIGNhc2Ugd2Ugd2FudCB0byBmb3JjZSBhIAoJCSAqIHJlc2VhcmNoIG9yIGNvbXBhcmUgdGhlIG9sZCBzZWFyY2ggdG8gYSBuZXcgb25lLgoJCSAqIE5vdGUgdGhhdCB0aGlzIHBhcmFtZXRlciB3aWxsIGJlIHNldCBieSB0aGUgaW5pdGlhbGlzYXRpb24gcm91dGluZS4gVG8KCQkgKiBzZXQgYSBkZWZhdWx0IHVzZSB7QGxpbmsgRGF0YVRhYmxlLmRlZmF1bHRzfS4KCQkgKiAgQG5hbWVzcGFjZQoJCSAqICBAZXh0ZW5kcyBEYXRhVGFibGUubW9kZWxzLm9TZWFyY2gKCQkgKi8KCQkib1ByZXZpb3VzU2VhcmNoIjoge30sCgkJCgkJLyoqCgkJICogU3RvcmUgdGhlIGFwcGxpZWQgc2VhcmNoIGZvciBlYWNoIGNvbHVtbiAtIHNlZSAKCQkgKiB7QGxpbmsgRGF0YVRhYmxlLm1vZGVscy5vU2VhcmNofSBmb3IgdGhlIGZvcm1hdCB0aGF0IGlzIHVzZWQgZm9yIHRoZQoJCSAqIGZpbHRlcmluZyBpbmZvcm1hdGlvbiBmb3IgZWFjaCBjb2x1bW4uCgkJICogIEB0eXBlIGFycmF5CgkJICogIEBkZWZhdWx0IFtdCgkJICovCgkJImFvUHJlU2VhcmNoQ29scyI6IFtdLAoJCQoJCS8qKgoJCSAqIFNvcnRpbmcgdGhhdCBpcyBhcHBsaWVkIHRvIHRoZSB0YWJsZS4gTm90ZSB0aGF0IHRoZSBpbm5lciBhcnJheXMgYXJlCgkJICogdXNlZCBpbiB0aGUgZm9sbG93aW5nIG1hbm5lcjoKCQkgKiA8dWw+CgkJICogICA8bGk+SW5kZXggMCAtIGNvbHVtbiBudW1iZXI8L2xpPgoJCSAqICAgPGxpPkluZGV4IDEgLSBjdXJyZW50IHNvcnRpbmcgZGlyZWN0aW9uPC9saT4KCQkgKiAgIDxsaT5JbmRleCAyIC0gaW5kZXggb2YgYXNTb3J0aW5nIGZvciB0aGlzIGNvbHVtbjwvbGk+CgkJICogPC91bD4KCQkgKiBOb3RlIHRoYXQgdGhpcyBwYXJhbWV0ZXIgd2lsbCBiZSBzZXQgYnkgdGhlIGluaXRpYWxpc2F0aW9uIHJvdXRpbmUuIFRvCgkJICogc2V0IGEgZGVmYXVsdCB1c2Uge0BsaW5rIERhdGFUYWJsZS5kZWZhdWx0c30uCgkJICogIEB0eXBlIGFycmF5CgkJICogIEB0b2RvIFRoZXNlIGlubmVyIGFycmF5cyBzaG91bGQgcmVhbGx5IGJlIG9iamVjdHMKCQkgKi8KCQkiYWFTb3J0aW5nIjogbnVsbCwKCQkKCQkvKioKCQkgKiBTb3J0aW5nIHRoYXQgaXMgYWx3YXlzIGFwcGxpZWQgdG8gdGhlIHRhYmxlIChpLmUuIHByZWZpeGVkIGluIGZyb250IG9mCgkJICogYWFTb3J0aW5nKS4KCQkgKiBOb3RlIHRoYXQgdGhpcyBwYXJhbWV0ZXIgd2lsbCBiZSBzZXQgYnkgdGhlIGluaXRpYWxpc2F0aW9uIHJvdXRpbmUuIFRvCgkJICogc2V0IGEgZGVmYXVsdCB1c2Uge0BsaW5rIERhdGFUYWJsZS5kZWZhdWx0c30uCgkJICogIEB0eXBlIGFycmF5fG51bGwKCQkgKiAgQGRlZmF1bHQgbnVsbAoJCSAqLwoJCSJhYVNvcnRpbmdGaXhlZCI6IG51bGwsCgkJCgkJLyoqCgkJICogQ2xhc3NlcyB0byB1c2UgZm9yIHRoZSBzdHJpcGluZyBvZiBhIHRhYmxlLgoJCSAqIE5vdGUgdGhhdCB0aGlzIHBhcmFtZXRlciB3aWxsIGJlIHNldCBieSB0aGUgaW5pdGlhbGlzYXRpb24gcm91dGluZS4gVG8KCQkgKiBzZXQgYSBkZWZhdWx0IHVzZSB7QGxpbmsgRGF0YVRhYmxlLmRlZmF1bHRzfS4KCQkgKiAgQHR5cGUgYXJyYXkKCQkgKiAgQGRlZmF1bHQgW10KCQkgKi8KCQkiYXNTdHJpcGVDbGFzc2VzIjogbnVsbCwKCQkKCQkvKioKCQkgKiBJZiByZXN0b3JpbmcgYSB0YWJsZSAtIHdlIHNob3VsZCByZXN0b3JlIGl0cyBzdHJpcGluZyBjbGFzc2VzIGFzIHdlbGwKCQkgKiAgQHR5cGUgYXJyYXkKCQkgKiAgQGRlZmF1bHQgW10KCQkgKi8KCQkiYXNEZXN0cm95U3RyaXBlcyI6IFtdLAoJCQoJCS8qKgoJCSAqIElmIHJlc3RvcmluZyBhIHRhYmxlIC0gd2Ugc2hvdWxkIHJlc3RvcmUgaXRzIHdpZHRoIAoJCSAqICBAdHlwZSBpbnQKCQkgKiAgQGRlZmF1bHQgMAoJCSAqLwoJCSJzRGVzdHJveVdpZHRoIjogMCwKCQkKCQkvKioKCQkgKiBDYWxsYmFjayBmdW5jdGlvbnMgYXJyYXkgZm9yIGV2ZXJ5IHRpbWUgYSByb3cgaXMgaW5zZXJ0ZWQgKGkuZS4gb24gYSBkcmF3KS4KCQkgKiAgQHR5cGUgYXJyYXkKCQkgKiAgQGRlZmF1bHQgW10KCQkgKi8KCQkiYW9Sb3dDYWxsYmFjayI6IFtdLAoJCQoJCS8qKgoJCSAqIENhbGxiYWNrIGZ1bmN0aW9ucyBmb3IgdGhlIGhlYWRlciBvbiBlYWNoIGRyYXcuCgkJICogIEB0eXBlIGFycmF5CgkJICogIEBkZWZhdWx0IFtdCgkJICovCgkJImFvSGVhZGVyQ2FsbGJhY2siOiBbXSwKCQkKCQkvKioKCQkgKiBDYWxsYmFjayBmdW5jdGlvbiBmb3IgdGhlIGZvb3RlciBvbiBlYWNoIGRyYXcuCgkJICogIEB0eXBlIGFycmF5CgkJICogIEBkZWZhdWx0IFtdCgkJICovCgkJImFvRm9vdGVyQ2FsbGJhY2siOiBbXSwKCQkKCQkvKioKCQkgKiBBcnJheSBvZiBjYWxsYmFjayBmdW5jdGlvbnMgZm9yIGRyYXcgY2FsbGJhY2sgZnVuY3Rpb25zCgkJICogIEB0eXBlIGFycmF5CgkJICogIEBkZWZhdWx0IFtdCgkJICovCgkJImFvRHJhd0NhbGxiYWNrIjogW10sCgkJCgkJLyoqCgkJICogQXJyYXkgb2YgY2FsbGJhY2sgZnVuY3Rpb25zIGZvciByb3cgY3JlYXRlZCBmdW5jdGlvbgoJCSAqICBAdHlwZSBhcnJheQoJCSAqICBAZGVmYXVsdCBbXQoJCSAqLwoJCSJhb1Jvd0NyZWF0ZWRDYWxsYmFjayI6IFtdLAoJCQoJCS8qKgoJCSAqIENhbGxiYWNrIGZ1bmN0aW9ucyBmb3IganVzdCBiZWZvcmUgdGhlIHRhYmxlIGlzIHJlZHJhd24uIEEgcmV0dXJuIG9mIAoJCSAqIGZhbHNlIHdpbGwgYmUgdXNlZCB0byBjYW5jZWwgdGhlIGRyYXcuCgkJICogIEB0eXBlIGFycmF5CgkJICogIEBkZWZhdWx0IFtdCgkJICovCgkJImFvUHJlRHJhd0NhbGxiYWNrIjogW10sCgkJCgkJLyoqCgkJICogQ2FsbGJhY2sgZnVuY3Rpb25zIGZvciB3aGVuIHRoZSB0YWJsZSBoYXMgYmVlbiBpbml0aWFsaXNlZC4KCQkgKiAgQHR5cGUgYXJyYXkKCQkgKiAgQGRlZmF1bHQgW10KCQkgKi8KCQkiYW9Jbml0Q29tcGxldGUiOiBbXSwKCQoJCQoJCS8qKgoJCSAqIENhbGxiYWNrcyBmb3IgbW9kaWZ5aW5nIHRoZSBzZXR0aW5ncyB0byBiZSBzdG9yZWQgZm9yIHN0YXRlIHNhdmluZywgcHJpb3IgdG8KCQkgKiBzYXZpbmcgc3RhdGUuCgkJICogIEB0eXBlIGFycmF5CgkJICogIEBkZWZhdWx0IFtdCgkJICovCgkJImFvU3RhdGVTYXZlUGFyYW1zIjogW10sCgkJCgkJLyoqCgkJICogQ2FsbGJhY2tzIGZvciBtb2RpZnlpbmcgdGhlIHNldHRpbmdzIHRoYXQgaGF2ZSBiZWVuIHN0b3JlZCBmb3Igc3RhdGUgc2F2aW5nCgkJICogcHJpb3IgdG8gdXNpbmcgdGhlIHN0b3JlZCB2YWx1ZXMgdG8gcmVzdG9yZSB0aGUgc3RhdGUuCgkJICogIEB0eXBlIGFycmF5CgkJICogIEBkZWZhdWx0IFtdCgkJICovCgkJImFvU3RhdGVMb2FkUGFyYW1zIjogW10sCgkJCgkJLyoqCgkJICogQ2FsbGJhY2tzIGZvciBvcGVyYXRpbmcgb24gdGhlIHNldHRpbmdzIG9iamVjdCBvbmNlIHRoZSBzYXZlZCBzdGF0ZSBoYXMgYmVlbgoJCSAqIGxvYWRlZAoJCSAqICBAdHlwZSBhcnJheQoJCSAqICBAZGVmYXVsdCBbXQoJCSAqLwoJCSJhb1N0YXRlTG9hZGVkIjogW10sCgkJCgkJLyoqCgkJICogQ2FjaGUgdGhlIHRhYmxlIElEIGZvciBxdWljayBhY2Nlc3MKCQkgKiAgQHR5cGUgc3RyaW5nCgkJICogIEBkZWZhdWx0IDxpPkVtcHR5IHN0cmluZzwvaT4KCQkgKi8KCQkic1RhYmxlSWQiOiAiIiwKCQkKCQkvKioKCQkgKiBUaGUgVEFCTEUgbm9kZSBmb3IgdGhlIG1haW4gdGFibGUKCQkgKiAgQHR5cGUgbm9kZQoJCSAqICBAZGVmYXVsdCBudWxsCgkJICovCgkJIm5UYWJsZSI6IG51bGwsCgkJCgkJLyoqCgkJICogUGVybWFuZW50IHJlZiB0byB0aGUgdGhlYWQgZWxlbWVudAoJCSAqICBAdHlwZSBub2RlCgkJICogIEBkZWZhdWx0IG51bGwKCQkgKi8KCQkiblRIZWFkIjogbnVsbCwKCQkKCQkvKioKCQkgKiBQZXJtYW5lbnQgcmVmIHRvIHRoZSB0Zm9vdCBlbGVtZW50IC0gaWYgaXQgZXhpc3RzCgkJICogIEB0eXBlIG5vZGUKCQkgKiAgQGRlZmF1bHQgbnVsbAoJCSAqLwoJCSJuVEZvb3QiOiBudWxsLAoJCQoJCS8qKgoJCSAqIFBlcm1hbmVudCByZWYgdG8gdGhlIHRib2R5IGVsZW1lbnQKCQkgKiAgQHR5cGUgbm9kZQoJCSAqICBAZGVmYXVsdCBudWxsCgkJICovCgkJIm5UQm9keSI6IG51bGwsCgkJCgkJLyoqCgkJICogQ2FjaGUgdGhlIHdyYXBwZXIgbm9kZSAoY29udGFpbnMgYWxsIERhdGFUYWJsZXMgY29udHJvbGxlZCBlbGVtZW50cykKCQkgKiAgQHR5cGUgbm9kZQoJCSAqICBAZGVmYXVsdCBudWxsCgkJICovCgkJIm5UYWJsZVdyYXBwZXIiOiBudWxsLAoJCQoJCS8qKgoJCSAqIEluZGljYXRlIGlmIHdoZW4gdXNpbmcgc2VydmVyLXNpZGUgcHJvY2Vzc2luZyB0aGUgbG9hZGluZyBvZiBkYXRhIAoJCSAqIHNob3VsZCBiZSBkZWZlcnJlZCB1bnRpbCB0aGUgc2Vjb25kIGRyYXcuCgkJICogTm90ZSB0aGF0IHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgc2V0IGJ5IHRoZSBpbml0aWFsaXNhdGlvbiByb3V0aW5lLiBUbwoJCSAqIHNldCBhIGRlZmF1bHQgdXNlIHtAbGluayBEYXRhVGFibGUuZGVmYXVsdHN9LgoJCSAqICBAdHlwZSBib29sZWFuCgkJICogIEBkZWZhdWx0IGZhbHNlCgkJICovCgkJImJEZWZlckxvYWRpbmciOiBmYWxzZSwKCQkKCQkvKioKCQkgKiBJbmRpY2F0ZSBpZiBhbGwgcmVxdWlyZWQgaW5mb3JtYXRpb24gaGFzIGJlZW4gcmVhZCBpbgoJCSAqICBAdHlwZSBib29sZWFuCgkJICogIEBkZWZhdWx0IGZhbHNlCgkJICovCgkJImJJbml0aWFsaXNlZCI6IGZhbHNlLAoJCQoJCS8qKgoJCSAqIEluZm9ybWF0aW9uIGFib3V0IG9wZW4gcm93cy4gRWFjaCBvYmplY3QgaW4gdGhlIGFycmF5IGhhcyB0aGUgcGFyYW1ldGVycwoJCSAqICduVHInIGFuZCAnblBhcmVudCcKCQkgKiAgQHR5cGUgYXJyYXkKCQkgKiAgQGRlZmF1bHQgW10KCQkgKi8KCQkiYW9PcGVuUm93cyI6IFtdLAoJCQoJCS8qKgoJCSAqIERpY3RhdGUgdGhlIHBvc2l0aW9uaW5nIG9mIERhdGFUYWJsZXMnIGNvbnRyb2wgZWxlbWVudHMgLSBzZWUKCQkgKiB7QGxpbmsgRGF0YVRhYmxlLm1vZGVsLm9Jbml0LnNEb219LgoJCSAqIE5vdGUgdGhhdCB0aGlzIHBhcmFtZXRlciB3aWxsIGJlIHNldCBieSB0aGUgaW5pdGlhbGlzYXRpb24gcm91dGluZS4gVG8KCQkgKiBzZXQgYSBkZWZhdWx0IHVzZSB7QGxpbmsgRGF0YVRhYmxlLmRlZmF1bHRzfS4KCQkgKiAgQHR5cGUgc3RyaW5nCgkJICogIEBkZWZhdWx0IG51bGwKCQkgKi8KCQkic0RvbSI6IG51bGwsCgkJCgkJLyoqCgkJICogV2hpY2ggdHlwZSBvZiBwYWdpbmF0aW9uIHNob3VsZCBiZSB1c2VkLgoJCSAqIE5vdGUgdGhhdCB0aGlzIHBhcmFtZXRlciB3aWxsIGJlIHNldCBieSB0aGUgaW5pdGlhbGlzYXRpb24gcm91dGluZS4gVG8KCQkgKiBzZXQgYSBkZWZhdWx0IHVzZSB7QGxpbmsgRGF0YVRhYmxlLmRlZmF1bHRzfS4KCQkgKiAgQHR5cGUgc3RyaW5nIAoJCSAqICBAZGVmYXVsdCB0d29fYnV0dG9uCgkJICovCgkJInNQYWdpbmF0aW9uVHlwZSI6ICJ0d29fYnV0dG9uIiwKCQkKCQkvKioKCQkgKiBUaGUgY29va2llIGR1cmF0aW9uIChmb3IgYlN0YXRlU2F2ZSkgaW4gc2Vjb25kcy4KCQkgKiBOb3RlIHRoYXQgdGhpcyBwYXJhbWV0ZXIgd2lsbCBiZSBzZXQgYnkgdGhlIGluaXRpYWxpc2F0aW9uIHJvdXRpbmUuIFRvCgkJICogc2V0IGEgZGVmYXVsdCB1c2Uge0BsaW5rIERhdGFUYWJsZS5kZWZhdWx0c30uCgkJICogIEB0eXBlIGludAoJCSAqICBAZGVmYXVsdCAwCgkJICovCgkJImlDb29raWVEdXJhdGlvbiI6IDAsCgkJCgkJLyoqCgkJICogVGhlIGNvb2tpZSBuYW1lIHByZWZpeC4KCQkgKiBOb3RlIHRoYXQgdGhpcyBwYXJhbWV0ZXIgd2lsbCBiZSBzZXQgYnkgdGhlIGluaXRpYWxpc2F0aW9uIHJvdXRpbmUuIFRvCgkJICogc2V0IGEgZGVmYXVsdCB1c2Uge0BsaW5rIERhdGFUYWJsZS5kZWZhdWx0c30uCgkJICogIEB0eXBlIHN0cmluZwoJCSAqICBAZGVmYXVsdCA8aT5FbXB0eSBzdHJpbmc8L2k+CgkJICovCgkJInNDb29raWVQcmVmaXgiOiAiIiwKCQkKCQkvKioKCQkgKiBDYWxsYmFjayBmdW5jdGlvbiBmb3IgY29va2llIGNyZWF0aW9uLgoJCSAqIE5vdGUgdGhhdCB0aGlzIHBhcmFtZXRlciB3aWxsIGJlIHNldCBieSB0aGUgaW5pdGlhbGlzYXRpb24gcm91dGluZS4gVG8KCQkgKiBzZXQgYSBkZWZhdWx0IHVzZSB7QGxpbmsgRGF0YVRhYmxlLmRlZmF1bHRzfS4KCQkgKiAgQHR5cGUgZnVuY3Rpb24KCQkgKiAgQGRlZmF1bHQgbnVsbAoJCSAqLwoJCSJmbkNvb2tpZUNhbGxiYWNrIjogbnVsbCwKCQkKCQkvKioKCQkgKiBBcnJheSBvZiBjYWxsYmFjayBmdW5jdGlvbnMgZm9yIHN0YXRlIHNhdmluZy4gRWFjaCBhcnJheSBlbGVtZW50IGlzIGFuIAoJCSAqIG9iamVjdCB3aXRoIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVyczoKCQkgKiAgIDx1bD4KCQkgKiAgICAgPGxpPmZ1bmN0aW9uOmZuIC0gZnVuY3Rpb24gdG8gY2FsbC4gVGFrZXMgdHdvIHBhcmFtZXRlcnMsIG9TZXR0aW5ncwoJCSAqICAgICAgIGFuZCB0aGUgSlNPTiBzdHJpbmcgdG8gc2F2ZSB0aGF0IGhhcyBiZWVuIHRodXMgZmFyIGNyZWF0ZWQuIFJldHVybnMKCQkgKiAgICAgICBhIEpTT04gc3RyaW5nIHRvIGJlIGluc2VydGVkIGludG8gYSBqc29uIG9iamVjdCAKCQkgKiAgICAgICAoaS5lLiAnInBhcmFtIjogWyAwLCAxLCAyXScpPC9saT4KCQkgKiAgICAgPGxpPnN0cmluZzpzTmFtZSAtIG5hbWUgb2YgY2FsbGJhY2s8L2xpPgoJCSAqICAgPC91bD4KCQkgKiAgQHR5cGUgYXJyYXkKCQkgKiAgQGRlZmF1bHQgW10KCQkgKi8KCQkiYW9TdGF0ZVNhdmUiOiBbXSwKCQkKCQkvKioKCQkgKiBBcnJheSBvZiBjYWxsYmFjayBmdW5jdGlvbnMgZm9yIHN0YXRlIGxvYWRpbmcuIEVhY2ggYXJyYXkgZWxlbWVudCBpcyBhbiAKCQkgKiBvYmplY3Qgd2l0aCB0aGUgZm9sbG93aW5nIHBhcmFtZXRlcnM6CgkJICogICA8dWw+CgkJICogICAgIDxsaT5mdW5jdGlvbjpmbiAtIGZ1bmN0aW9uIHRvIGNhbGwuIFRha2VzIHR3byBwYXJhbWV0ZXJzLCBvU2V0dGluZ3MgCgkJICogICAgICAgYW5kIHRoZSBvYmplY3Qgc3RvcmVkLiBNYXkgcmV0dXJuIGZhbHNlIHRvIGNhbmNlbCBzdGF0ZSBsb2FkaW5nPC9saT4KCQkgKiAgICAgPGxpPnN0cmluZzpzTmFtZSAtIG5hbWUgb2YgY2FsbGJhY2s8L2xpPgoJCSAqICAgPC91bD4KCQkgKiAgQHR5cGUgYXJyYXkKCQkgKiAgQGRlZmF1bHQgW10KCQkgKi8KCQkiYW9TdGF0ZUxvYWQiOiBbXSwKCQkKCQkvKioKCQkgKiBTdGF0ZSB0aGF0IHdhcyBsb2FkZWQgZnJvbSB0aGUgY29va2llLiBVc2VmdWwgZm9yIGJhY2sgcmVmZXJlbmNlCgkJICogIEB0eXBlIG9iamVjdAoJCSAqICBAZGVmYXVsdCBudWxsCgkJICovCgkJIm9Mb2FkZWRTdGF0ZSI6IG51bGwsCgkJCgkJLyoqCgkJICogU291cmNlIHVybCBmb3IgQUpBWCBkYXRhIGZvciB0aGUgdGFibGUuCgkJICogTm90ZSB0aGF0IHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgc2V0IGJ5IHRoZSBpbml0aWFsaXNhdGlvbiByb3V0aW5lLiBUbwoJCSAqIHNldCBhIGRlZmF1bHQgdXNlIHtAbGluayBEYXRhVGFibGUuZGVmYXVsdHN9LgoJCSAqICBAdHlwZSBzdHJpbmcKCQkgKiAgQGRlZmF1bHQgbnVsbAoJCSAqLwoJCSJzQWpheFNvdXJjZSI6IG51bGwsCgkJCgkJLyoqCgkJICogUHJvcGVydHkgZnJvbSBhIGdpdmVuIG9iamVjdCBmcm9tIHdoaWNoIHRvIHJlYWQgdGhlIHRhYmxlIGRhdGEgZnJvbS4gVGhpcwoJCSAqIGNhbiBiZSBhbiBlbXB0eSBzdHJpbmcgKHdoZW4gbm90IHNlcnZlci1zaWRlIHByb2Nlc3NpbmcpLCBpbiB3aGljaCBjYXNlIAoJCSAqIGl0IGlzICBhc3N1bWVkIGFuIGFuIGFycmF5IGlzIGdpdmVuIGRpcmVjdGx5LgoJCSAqIE5vdGUgdGhhdCB0aGlzIHBhcmFtZXRlciB3aWxsIGJlIHNldCBieSB0aGUgaW5pdGlhbGlzYXRpb24gcm91dGluZS4gVG8KCQkgKiBzZXQgYSBkZWZhdWx0IHVzZSB7QGxpbmsgRGF0YVRhYmxlLmRlZmF1bHRzfS4KCQkgKiAgQHR5cGUgc3RyaW5nCgkJICovCgkJInNBamF4RGF0YVByb3AiOiBudWxsLAoJCQoJCS8qKgoJCSAqIE5vdGUgaWYgZHJhdyBzaG91bGQgYmUgYmxvY2tlZCB3aGlsZSBnZXR0aW5nIGRhdGEKCQkgKiAgQHR5cGUgYm9vbGVhbgoJCSAqICBAZGVmYXVsdCB0cnVlCgkJICovCgkJImJBamF4RGF0YUdldCI6IHRydWUsCgkJCgkJLyoqCgkJICogVGhlIGxhc3QgalF1ZXJ5IFhIUiBvYmplY3QgdGhhdCB3YXMgdXNlZCBmb3Igc2VydmVyLXNpZGUgZGF0YSBnYXRoZXJpbmcuIAoJCSAqIFRoaXMgY2FuIGJlIHVzZWQgZm9yIHdvcmtpbmcgd2l0aCB0aGUgWEhSIGluZm9ybWF0aW9uIGluIG9uZSBvZiB0aGUgCgkJICogY2FsbGJhY2tzCgkJICogIEB0eXBlIG9iamVjdAoJCSAqICBAZGVmYXVsdCBudWxsCgkJICovCgkJImpxWEhSIjogbnVsbCwKCQkKCQkvKioKCQkgKiBGdW5jdGlvbiB0byBnZXQgdGhlIHNlcnZlci1zaWRlIGRhdGEuCgkJICogTm90ZSB0aGF0IHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgc2V0IGJ5IHRoZSBpbml0aWFsaXNhdGlvbiByb3V0aW5lLiBUbwoJCSAqIHNldCBhIGRlZmF1bHQgdXNlIHtAbGluayBEYXRhVGFibGUuZGVmYXVsdHN9LgoJCSAqICBAdHlwZSBmdW5jdGlvbgoJCSAqLwoJCSJmblNlcnZlckRhdGEiOiBudWxsLAoJCQoJCS8qKgoJCSAqIEZ1bmN0aW9ucyB3aGljaCBhcmUgY2FsbGVkIHByaW9yIHRvIHNlbmRpbmcgYW4gQWpheCByZXF1ZXN0IHNvIGV4dHJhIAoJCSAqIHBhcmFtZXRlcnMgY2FuIGVhc2lseSBiZSBzZW50IHRvIHRoZSBzZXJ2ZXIKCQkgKiAgQHR5cGUgYXJyYXkKCQkgKiAgQGRlZmF1bHQgW10KCQkgKi8KCQkiYW9TZXJ2ZXJQYXJhbXMiOiBbXSwKCQkKCQkvKioKCQkgKiBTZW5kIHRoZSBYSFIgSFRUUCBtZXRob2QgLSBHRVQgb3IgUE9TVCAoY291bGQgYmUgUFVUIG9yIERFTEVURSBpZiAKCQkgKiByZXF1aXJlZCkuCgkJICogTm90ZSB0aGF0IHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgc2V0IGJ5IHRoZSBpbml0aWFsaXNhdGlvbiByb3V0aW5lLiBUbwoJCSAqIHNldCBhIGRlZmF1bHQgdXNlIHtAbGluayBEYXRhVGFibGUuZGVmYXVsdHN9LgoJCSAqICBAdHlwZSBzdHJpbmcKCQkgKi8KCQkic1NlcnZlck1ldGhvZCI6IG51bGwsCgkJCgkJLyoqCgkJICogRm9ybWF0IG51bWJlcnMgZm9yIGRpc3BsYXkuCgkJICogTm90ZSB0aGF0IHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgc2V0IGJ5IHRoZSBpbml0aWFsaXNhdGlvbiByb3V0aW5lLiBUbwoJCSAqIHNldCBhIGRlZmF1bHQgdXNlIHtAbGluayBEYXRhVGFibGUuZGVmYXVsdHN9LgoJCSAqICBAdHlwZSBmdW5jdGlvbgoJCSAqLwoJCSJmbkZvcm1hdE51bWJlciI6IG51bGwsCgkJCgkJLyoqCgkJICogTGlzdCBvZiBvcHRpb25zIHRoYXQgY2FuIGJlIHVzZWQgZm9yIHRoZSB1c2VyIHNlbGVjdGFibGUgbGVuZ3RoIG1lbnUuCgkJICogTm90ZSB0aGF0IHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgc2V0IGJ5IHRoZSBpbml0aWFsaXNhdGlvbiByb3V0aW5lLiBUbwoJCSAqIHNldCBhIGRlZmF1bHQgdXNlIHtAbGluayBEYXRhVGFibGUuZGVmYXVsdHN9LgoJCSAqICBAdHlwZSBhcnJheQoJCSAqICBAZGVmYXVsdCBbXQoJCSAqLwoJCSJhTGVuZ3RoTWVudSI6IG51bGwsCgkJCgkJLyoqCgkJICogQ291bnRlciBmb3IgdGhlIGRyYXdzIHRoYXQgdGhlIHRhYmxlIGRvZXMuIEFsc28gdXNlZCBhcyBhIHRyYWNrZXIgZm9yCgkJICogc2VydmVyLXNpZGUgcHJvY2Vzc2luZwoJCSAqICBAdHlwZSBpbnQKCQkgKiAgQGRlZmF1bHQgMAoJCSAqLwoJCSJpRHJhdyI6IDAsCgkJCgkJLyoqCgkJICogSW5kaWNhdGUgaWYgYSByZWRyYXcgaXMgYmVpbmcgZG9uZSAtIHVzZWZ1bCBmb3IgQWpheAoJCSAqICBAdHlwZSBib29sZWFuCgkJICogIEBkZWZhdWx0IGZhbHNlCgkJICovCgkJImJEcmF3aW5nIjogZmFsc2UsCgkJCgkJLyoqCgkJICogRHJhdyBpbmRleCAoaURyYXcpIG9mIHRoZSBsYXN0IGVycm9yIHdoZW4gcGFyc2luZyB0aGUgcmV0dXJuZWQgZGF0YQoJCSAqICBAdHlwZSBpbnQKCQkgKiAgQGRlZmF1bHQgLTEKCQkgKi8KCQkiaURyYXdFcnJvciI6IC0xLAoJCQoJCS8qKgoJCSAqIFBhZ2luZyBkaXNwbGF5IGxlbmd0aAoJCSAqICBAdHlwZSBpbnQKCQkgKiAgQGRlZmF1bHQgMTAKCQkgKi8KCQkiX2lEaXNwbGF5TGVuZ3RoIjogMTAsCgkKCQkvKioKCQkgKiBQYWdpbmcgc3RhcnQgcG9pbnQgLSBhaURpc3BsYXkgaW5kZXgKCQkgKiAgQHR5cGUgaW50CgkJICogIEBkZWZhdWx0IDAKCQkgKi8KCQkiX2lEaXNwbGF5U3RhcnQiOiAwLAoJCgkJLyoqCgkJICogUGFnaW5nIGVuZCBwb2ludCAtIGFpRGlzcGxheSBpbmRleC4gVXNlIGZuRGlzcGxheUVuZCByYXRoZXIgdGhhbgoJCSAqIHRoaXMgcHJvcGVydHkgdG8gZ2V0IHRoZSBlbmQgcG9pbnQKCQkgKiAgQHR5cGUgaW50CgkJICogIEBkZWZhdWx0IDEwCgkJICogIEBwcml2YXRlCgkJICovCgkJIl9pRGlzcGxheUVuZCI6IDEwLAoJCQoJCS8qKgoJCSAqIFNlcnZlci1zaWRlIHByb2Nlc3NpbmcgLSBudW1iZXIgb2YgcmVjb3JkcyBpbiB0aGUgcmVzdWx0IHNldAoJCSAqIChpLmUuIGJlZm9yZSBmaWx0ZXJpbmcpLCBVc2UgZm5SZWNvcmRzVG90YWwgcmF0aGVyIHRoYW4KCQkgKiB0aGlzIHByb3BlcnR5IHRvIGdldCB0aGUgdmFsdWUgb2YgdGhlIG51bWJlciBvZiByZWNvcmRzLCByZWdhcmRsZXNzIG9mCgkJICogdGhlIHNlcnZlci1zaWRlIHByb2Nlc3Npbmcgc2V0dGluZy4KCQkgKiAgQHR5cGUgaW50CgkJICogIEBkZWZhdWx0IDAKCQkgKiAgQHByaXZhdGUKCQkgKi8KCQkiX2lSZWNvcmRzVG90YWwiOiAwLAoJCgkJLyoqCgkJICogU2VydmVyLXNpZGUgcHJvY2Vzc2luZyAtIG51bWJlciBvZiByZWNvcmRzIGluIHRoZSBjdXJyZW50IGRpc3BsYXkgc2V0CgkJICogKGkuZS4gYWZ0ZXIgZmlsdGVyaW5nKS4gVXNlIGZuUmVjb3Jkc0Rpc3BsYXkgcmF0aGVyIHRoYW4KCQkgKiB0aGlzIHByb3BlcnR5IHRvIGdldCB0aGUgdmFsdWUgb2YgdGhlIG51bWJlciBvZiByZWNvcmRzLCByZWdhcmRsZXNzIG9mCgkJICogdGhlIHNlcnZlci1zaWRlIHByb2Nlc3Npbmcgc2V0dGluZy4KCQkgKiAgQHR5cGUgYm9vbGVhbgoJCSAqICBAZGVmYXVsdCAwCgkJICogIEBwcml2YXRlCgkJICovCgkJIl9pUmVjb3Jkc0Rpc3BsYXkiOiAwLAoJCQoJCS8qKgoJCSAqIEZsYWcgdG8gaW5kaWNhdGUgaWYgalF1ZXJ5IFVJIG1hcmtpbmcgYW5kIGNsYXNzZXMgc2hvdWxkIGJlIHVzZWQuCgkJICogTm90ZSB0aGF0IHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgc2V0IGJ5IHRoZSBpbml0aWFsaXNhdGlvbiByb3V0aW5lLiBUbwoJCSAqIHNldCBhIGRlZmF1bHQgdXNlIHtAbGluayBEYXRhVGFibGUuZGVmYXVsdHN9LgoJCSAqICBAdHlwZSBib29sZWFuCgkJICovCgkJImJKVUkiOiBudWxsLAoJCQoJCS8qKgoJCSAqIFRoZSBjbGFzc2VzIHRvIHVzZSBmb3IgdGhlIHRhYmxlCgkJICogIEB0eXBlIG9iamVjdAoJCSAqICBAZGVmYXVsdCB7fQoJCSAqLwoJCSJvQ2xhc3NlcyI6IHt9LAoJCQoJCS8qKgoJCSAqIEZsYWcgYXR0YWNoZWQgdG8gdGhlIHNldHRpbmdzIG9iamVjdCBzbyB5b3UgY2FuIGNoZWNrIGluIHRoZSBkcmF3IAoJCSAqIGNhbGxiYWNrIGlmIGZpbHRlcmluZyBoYXMgYmVlbiBkb25lIGluIHRoZSBkcmF3LiBEZXByZWNhdGVkIGluIGZhdm91ciBvZgoJCSAqIGV2ZW50cy4KCQkgKiAgQHR5cGUgYm9vbGVhbgoJCSAqICBAZGVmYXVsdCBmYWxzZQoJCSAqICBAZGVwcmVjYXRlZAoJCSAqLwoJCSJiRmlsdGVyZWQiOiBmYWxzZSwKCQkKCQkvKioKCQkgKiBGbGFnIGF0dGFjaGVkIHRvIHRoZSBzZXR0aW5ncyBvYmplY3Qgc28geW91IGNhbiBjaGVjayBpbiB0aGUgZHJhdyAKCQkgKiBjYWxsYmFjayBpZiBzb3J0aW5nIGhhcyBiZWVuIGRvbmUgaW4gdGhlIGRyYXcuIERlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mCgkJICogZXZlbnRzLgoJCSAqICBAdHlwZSBib29sZWFuCgkJICogIEBkZWZhdWx0IGZhbHNlCgkJICogIEBkZXByZWNhdGVkCgkJICovCgkJImJTb3J0ZWQiOiBmYWxzZSwKCQkKCQkvKioKCQkgKiBJbmRpY2F0ZSB0aGF0IGlmIG11bHRpcGxlIHJvd3MgYXJlIGluIHRoZSBoZWFkZXIgYW5kIHRoZXJlIGlzIG1vcmUgdGhhbiAKCQkgKiBvbmUgdW5pcXVlIGNlbGwgcGVyIGNvbHVtbiwgaWYgdGhlIHRvcCBvbmUgKHRydWUpIG9yIGJvdHRvbSBvbmUgKGZhbHNlKSAKCQkgKiBzaG91bGQgYmUgdXNlZCBmb3Igc29ydGluZyAvIHRpdGxlIGJ5IERhdGFUYWJsZXMuCgkJICogTm90ZSB0aGF0IHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgc2V0IGJ5IHRoZSBpbml0aWFsaXNhdGlvbiByb3V0aW5lLiBUbwoJCSAqIHNldCBhIGRlZmF1bHQgdXNlIHtAbGluayBEYXRhVGFibGUuZGVmYXVsdHN9LgoJCSAqICBAdHlwZSBib29sZWFuCgkJICovCgkJImJTb3J0Q2VsbHNUb3AiOiBudWxsLAoJCQoJCS8qKgoJCSAqIEluaXRpYWxpc2F0aW9uIG9iamVjdCB0aGF0IGlzIHVzZWQgZm9yIHRoZSB0YWJsZQoJCSAqICBAdHlwZSBvYmplY3QKCQkgKiAgQGRlZmF1bHQgbnVsbAoJCSAqLwoJCSJvSW5pdCI6IG51bGwsCgkJCgkJLyoqCgkJICogRGVzdHJveSBjYWxsYmFjayBmdW5jdGlvbnMgLSBmb3IgcGx1Zy1pbnMgdG8gYXR0YWNoIHRoZW1zZWx2ZXMgdG8gdGhlCgkJICogZGVzdHJveSBzbyB0aGV5IGNhbiBjbGVhbiB1cCBtYXJrdXAgYW5kIGV2ZW50cy4KCQkgKiAgQHR5cGUgYXJyYXkKCQkgKiAgQGRlZmF1bHQgW10KCQkgKi8KCQkiYW9EZXN0cm95Q2FsbGJhY2siOiBbXSwKCQoJCQoJCS8qKgoJCSAqIEdldCB0aGUgbnVtYmVyIG9mIHJlY29yZHMgaW4gdGhlIGN1cnJlbnQgcmVjb3JkIHNldCwgYmVmb3JlIGZpbHRlcmluZwoJCSAqICBAdHlwZSBmdW5jdGlvbgoJCSAqLwoJCSJmblJlY29yZHNUb3RhbCI6IGZ1bmN0aW9uICgpCgkJewoJCQlpZiAoIHRoaXMub0ZlYXR1cmVzLmJTZXJ2ZXJTaWRlICkgewoJCQkJcmV0dXJuIHBhcnNlSW50KHRoaXMuX2lSZWNvcmRzVG90YWwsIDEwKTsKCQkJfSBlbHNlIHsKCQkJCXJldHVybiB0aGlzLmFpRGlzcGxheU1hc3Rlci5sZW5ndGg7CgkJCX0KCQl9LAoJCQoJCS8qKgoJCSAqIEdldCB0aGUgbnVtYmVyIG9mIHJlY29yZHMgaW4gdGhlIGN1cnJlbnQgcmVjb3JkIHNldCwgYWZ0ZXIgZmlsdGVyaW5nCgkJICogIEB0eXBlIGZ1bmN0aW9uCgkJICovCgkJImZuUmVjb3Jkc0Rpc3BsYXkiOiBmdW5jdGlvbiAoKQoJCXsKCQkJaWYgKCB0aGlzLm9GZWF0dXJlcy5iU2VydmVyU2lkZSApIHsKCQkJCXJldHVybiBwYXJzZUludCh0aGlzLl9pUmVjb3Jkc0Rpc3BsYXksIDEwKTsKCQkJfSBlbHNlIHsKCQkJCXJldHVybiB0aGlzLmFpRGlzcGxheS5sZW5ndGg7CgkJCX0KCQl9LAoJCQoJCS8qKgoJCSAqIFNldCB0aGUgZGlzcGxheSBlbmQgcG9pbnQgLSBhaURpc3BsYXkgaW5kZXgKCQkgKiAgQHR5cGUgZnVuY3Rpb24KCQkgKiAgQHRvZG8gU2hvdWxkIGRvIGF3YXkgd2l0aCBfaURpc3BsYXlFbmQgYW5kIGNhbGN1bGF0ZSBpdCBvbi10aGUtZmx5IGhlcmUKCQkgKi8KCQkiZm5EaXNwbGF5RW5kIjogZnVuY3Rpb24gKCkKCQl7CgkJCWlmICggdGhpcy5vRmVhdHVyZXMuYlNlcnZlclNpZGUgKSB7CgkJCQlpZiAoIHRoaXMub0ZlYXR1cmVzLmJQYWdpbmF0ZSA9PT0gZmFsc2UgfHwgdGhpcy5faURpc3BsYXlMZW5ndGggPT0gLTEgKSB7CgkJCQkJcmV0dXJuIHRoaXMuX2lEaXNwbGF5U3RhcnQrdGhpcy5haURpc3BsYXkubGVuZ3RoOwoJCQkJfSBlbHNlIHsKCQkJCQlyZXR1cm4gTWF0aC5taW4oIHRoaXMuX2lEaXNwbGF5U3RhcnQrdGhpcy5faURpc3BsYXlMZW5ndGgsIAoJCQkJCQl0aGlzLl9pUmVjb3Jkc0Rpc3BsYXkgKTsKCQkJCX0KCQkJfSBlbHNlIHsKCQkJCXJldHVybiB0aGlzLl9pRGlzcGxheUVuZDsKCQkJfQoJCX0sCgkJCgkJLyoqCgkJICogVGhlIERhdGFUYWJsZXMgb2JqZWN0IGZvciB0aGlzIHRhYmxlCgkJICogIEB0eXBlIG9iamVjdAoJCSAqICBAZGVmYXVsdCBudWxsCgkJICovCgkJIm9JbnN0YW5jZSI6IG51bGwsCgkJCgkJLyoqCgkJICogVW5pcXVlIGlkZW50aWZpZXIgZm9yIGVhY2ggaW5zdGFuY2Ugb2YgdGhlIERhdGFUYWJsZXMgb2JqZWN0LiBJZiB0aGVyZQoJCSAqIGlzIGFuIElEIG9uIHRoZSB0YWJsZSBub2RlLCB0aGVuIGl0IHRha2VzIHRoYXQgdmFsdWUsIG90aGVyd2lzZSBhbgoJCSAqIGluY3JlbWVudGluZyBpbnRlcm5hbCBjb3VudGVyIGlzIHVzZWQuCgkJICogIEB0eXBlIHN0cmluZwoJCSAqICBAZGVmYXVsdCBudWxsCgkJICovCgkJInNJbnN0YW5jZSI6IG51bGwsCgkKCQkvKioKCQkgKiB0YWJpbmRleCBhdHRyaWJ1dGUgdmFsdWUgdGhhdCBpcyBhZGRlZCB0byBEYXRhVGFibGVzIGNvbnRyb2wgZWxlbWVudHMsIGFsbG93aW5nCgkJICoga2V5Ym9hcmQgbmF2aWdhdGlvbiBvZiB0aGUgdGFibGUgYW5kIGl0cyBjb250cm9scy4KCQkgKi8KCQkiaVRhYkluZGV4IjogMCwKCQoJCS8qKgoJCSAqIERJViBjb250YWluZXIgZm9yIHRoZSBmb290ZXIgc2Nyb2xsaW5nIHRhYmxlIGlmIHNjcm9sbGluZwoJCSAqLwoJCSJuU2Nyb2xsSGVhZCI6IG51bGwsCgkKCQkvKioKCQkgKiBESVYgY29udGFpbmVyIGZvciB0aGUgZm9vdGVyIHNjcm9sbGluZyB0YWJsZSBpZiBzY3JvbGxpbmcKCQkgKi8KCQkiblNjcm9sbEZvb3QiOiBudWxsCgl9OwoKCS8qKgoJICogRXh0ZW5zaW9uIG9iamVjdCBmb3IgRGF0YVRhYmxlcyB0aGF0IGlzIHVzZWQgdG8gcHJvdmlkZSBhbGwgZXh0ZW5zaW9uIG9wdGlvbnMuCgkgKiAKCSAqIE5vdGUgdGhhdCB0aGUgPGk+RGF0YVRhYmxlLmV4dDwvaT4gb2JqZWN0IGlzIGF2YWlsYWJsZSB0aHJvdWdoCgkgKiA8aT5qUXVlcnkuZm4uZGF0YVRhYmxlLmV4dDwvaT4gd2hlcmUgaXQgbWF5IGJlIGFjY2Vzc2VkIGFuZCBtYW5pcHVsYXRlZC4gSXQgaXMKCSAqIGFsc28gYWxpYXNlZCB0byA8aT5qUXVlcnkuZm4uZGF0YVRhYmxlRXh0PC9pPiBmb3IgaGlzdG9yaWMgcmVhc29ucy4KCSAqICBAbmFtZXNwYWNlCgkgKiAgQGV4dGVuZHMgRGF0YVRhYmxlLm1vZGVscy5leHQKCSAqLwoJRGF0YVRhYmxlLmV4dCA9ICQuZXh0ZW5kKCB0cnVlLCB7fSwgRGF0YVRhYmxlLm1vZGVscy5leHQgKTsKCQoJJC5leHRlbmQoIERhdGFUYWJsZS5leHQub1N0ZENsYXNzZXMsIHsKCQkic1RhYmxlIjogImRhdGFUYWJsZSIsCgkKCQkvKiBUd28gYnV0dG9ucyBidXR0b25zICovCgkJInNQYWdlUHJldkVuYWJsZWQiOiAicGFnaW5hdGVfZW5hYmxlZF9wcmV2aW91cyIsCgkJInNQYWdlUHJldkRpc2FibGVkIjogInBhZ2luYXRlX2Rpc2FibGVkX3ByZXZpb3VzIiwKCQkic1BhZ2VOZXh0RW5hYmxlZCI6ICJwYWdpbmF0ZV9lbmFibGVkX25leHQiLAoJCSJzUGFnZU5leHREaXNhYmxlZCI6ICJwYWdpbmF0ZV9kaXNhYmxlZF9uZXh0IiwKCQkic1BhZ2VKVUlOZXh0IjogIiIsCgkJInNQYWdlSlVJUHJldiI6ICIiLAoJCQoJCS8qIEZ1bGwgbnVtYmVycyBwYWdpbmcgYnV0dG9ucyAqLwoJCSJzUGFnZUJ1dHRvbiI6ICJwYWdpbmF0ZV9idXR0b24iLAoJCSJzUGFnZUJ1dHRvbkFjdGl2ZSI6ICJwYWdpbmF0ZV9hY3RpdmUiLAoJCSJzUGFnZUJ1dHRvblN0YXRpY0Rpc2FibGVkIjogInBhZ2luYXRlX2J1dHRvbiBwYWdpbmF0ZV9idXR0b25fZGlzYWJsZWQiLAoJCSJzUGFnZUZpcnN0IjogImZpcnN0IiwKCQkic1BhZ2VQcmV2aW91cyI6ICJwcmV2aW91cyIsCgkJInNQYWdlTmV4dCI6ICJuZXh0IiwKCQkic1BhZ2VMYXN0IjogImxhc3QiLAoJCQoJCS8qIFN0cmlwaW5nIGNsYXNzZXMgKi8KCQkic1N0cmlwZU9kZCI6ICJvZGQiLAoJCSJzU3RyaXBlRXZlbiI6ICJldmVuIiwKCQkKCQkvKiBFbXB0eSByb3cgKi8KCQkic1Jvd0VtcHR5IjogImRhdGFUYWJsZXNfZW1wdHkiLAoJCQoJCS8qIEZlYXR1cmVzICovCgkJInNXcmFwcGVyIjogImRhdGFUYWJsZXNfd3JhcHBlciIsCgkJInNGaWx0ZXIiOiAiZGF0YVRhYmxlc19maWx0ZXIiLAoJCSJzSW5mbyI6ICJkYXRhVGFibGVzX2luZm8iLAoJCSJzUGFnaW5nIjogImRhdGFUYWJsZXNfcGFnaW5hdGUgcGFnaW5nXyIsIC8qIE5vdGUgdGhhdCB0aGUgdHlwZSBpcyBwb3N0Zml4ZWQgKi8KCQkic0xlbmd0aCI6ICJkYXRhVGFibGVzX2xlbmd0aCIsCgkJInNQcm9jZXNzaW5nIjogImRhdGFUYWJsZXNfcHJvY2Vzc2luZyIsCgkJCgkJLyogU29ydGluZyAqLwoJCSJzU29ydEFzYyI6ICJzb3J0aW5nX2FzYyIsCgkJInNTb3J0RGVzYyI6ICJzb3J0aW5nX2Rlc2MiLAoJCSJzU29ydGFibGUiOiAic29ydGluZyIsIC8qIFNvcnRhYmxlIGluIGJvdGggZGlyZWN0aW9ucyAqLwoJCSJzU29ydGFibGVBc2MiOiAic29ydGluZ19hc2NfZGlzYWJsZWQiLAoJCSJzU29ydGFibGVEZXNjIjogInNvcnRpbmdfZGVzY19kaXNhYmxlZCIsCgkJInNTb3J0YWJsZU5vbmUiOiAic29ydGluZ19kaXNhYmxlZCIsCgkJInNTb3J0Q29sdW1uIjogInNvcnRpbmdfIiwgLyogTm90ZSB0aGF0IGFuIGludCBpcyBwb3N0Zml4ZWQgZm9yIHRoZSBzb3J0aW5nIG9yZGVyICovCgkJInNTb3J0SlVJQXNjIjogIiIsCgkJInNTb3J0SlVJRGVzYyI6ICIiLAoJCSJzU29ydEpVSSI6ICIiLAoJCSJzU29ydEpVSUFzY0FsbG93ZWQiOiAiIiwKCQkic1NvcnRKVUlEZXNjQWxsb3dlZCI6ICIiLAoJCSJzU29ydEpVSVdyYXBwZXIiOiAiIiwKCQkic1NvcnRJY29uIjogIiIsCgkJCgkJLyogU2Nyb2xsaW5nICovCgkJInNTY3JvbGxXcmFwcGVyIjogImRhdGFUYWJsZXNfc2Nyb2xsIiwKCQkic1Njcm9sbEhlYWQiOiAiZGF0YVRhYmxlc19zY3JvbGxIZWFkIiwKCQkic1Njcm9sbEhlYWRJbm5lciI6ICJkYXRhVGFibGVzX3Njcm9sbEhlYWRJbm5lciIsCgkJInNTY3JvbGxCb2R5IjogImRhdGFUYWJsZXNfc2Nyb2xsQm9keSIsCgkJInNTY3JvbGxGb290IjogImRhdGFUYWJsZXNfc2Nyb2xsRm9vdCIsCgkJInNTY3JvbGxGb290SW5uZXIiOiAiZGF0YVRhYmxlc19zY3JvbGxGb290SW5uZXIiLAoJCQoJCS8qIE1pc2MgKi8KCQkic0Zvb3RlclRIIjogIiIsCgkJInNKVUlIZWFkZXIiOiAiIiwKCQkic0pVSUZvb3RlciI6ICIiCgl9ICk7CgkKCQoJJC5leHRlbmQoIERhdGFUYWJsZS5leHQub0pVSUNsYXNzZXMsIERhdGFUYWJsZS5leHQub1N0ZENsYXNzZXMsIHsKCQkvKiBUd28gYnV0dG9ucyBidXR0b25zICovCgkJInNQYWdlUHJldkVuYWJsZWQiOiAiZmctYnV0dG9uIHVpLWJ1dHRvbiB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1sZWZ0IiwKCQkic1BhZ2VQcmV2RGlzYWJsZWQiOiAiZmctYnV0dG9uIHVpLWJ1dHRvbiB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1sZWZ0IHVpLXN0YXRlLWRpc2FibGVkIiwKCQkic1BhZ2VOZXh0RW5hYmxlZCI6ICJmZy1idXR0b24gdWktYnV0dG9uIHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLXJpZ2h0IiwKCQkic1BhZ2VOZXh0RGlzYWJsZWQiOiAiZmctYnV0dG9uIHVpLWJ1dHRvbiB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1yaWdodCB1aS1zdGF0ZS1kaXNhYmxlZCIsCgkJInNQYWdlSlVJTmV4dCI6ICJ1aS1pY29uIHVpLWljb24tY2lyY2xlLWFycm93LWUiLAoJCSJzUGFnZUpVSVByZXYiOiAidWktaWNvbiB1aS1pY29uLWNpcmNsZS1hcnJvdy13IiwKCQkKCQkvKiBGdWxsIG51bWJlcnMgcGFnaW5nIGJ1dHRvbnMgKi8KCQkic1BhZ2VCdXR0b24iOiAiZmctYnV0dG9uIHVpLWJ1dHRvbiB1aS1zdGF0ZS1kZWZhdWx0IiwKCQkic1BhZ2VCdXR0b25BY3RpdmUiOiAiZmctYnV0dG9uIHVpLWJ1dHRvbiB1aS1zdGF0ZS1kZWZhdWx0IHVpLXN0YXRlLWRpc2FibGVkIiwKCQkic1BhZ2VCdXR0b25TdGF0aWNEaXNhYmxlZCI6ICJmZy1idXR0b24gdWktYnV0dG9uIHVpLXN0YXRlLWRlZmF1bHQgdWktc3RhdGUtZGlzYWJsZWQiLAoJCSJzUGFnZUZpcnN0IjogImZpcnN0IHVpLWNvcm5lci10bCB1aS1jb3JuZXItYmwiLAoJCSJzUGFnZUxhc3QiOiAibGFzdCB1aS1jb3JuZXItdHIgdWktY29ybmVyLWJyIiwKCQkKCQkvKiBGZWF0dXJlcyAqLwoJCSJzUGFnaW5nIjogImRhdGFUYWJsZXNfcGFnaW5hdGUgZmctYnV0dG9uc2V0IHVpLWJ1dHRvbnNldCBmZy1idXR0b25zZXQtbXVsdGkgIisKCQkJInVpLWJ1dHRvbnNldC1tdWx0aSBwYWdpbmdfIiwgLyogTm90ZSB0aGF0IHRoZSB0eXBlIGlzIHBvc3RmaXhlZCAqLwoJCQoJCS8qIFNvcnRpbmcgKi8KCQkic1NvcnRBc2MiOiAidWktc3RhdGUtZGVmYXVsdCIsCgkJInNTb3J0RGVzYyI6ICJ1aS1zdGF0ZS1kZWZhdWx0IiwKCQkic1NvcnRhYmxlIjogInVpLXN0YXRlLWRlZmF1bHQiLAoJCSJzU29ydGFibGVBc2MiOiAidWktc3RhdGUtZGVmYXVsdCIsCgkJInNTb3J0YWJsZURlc2MiOiAidWktc3RhdGUtZGVmYXVsdCIsCgkJInNTb3J0YWJsZU5vbmUiOiAidWktc3RhdGUtZGVmYXVsdCIsCgkJInNTb3J0SlVJQXNjIjogImNzc19yaWdodCB1aS1pY29uIHVpLWljb24tdHJpYW5nbGUtMS1uIiwKCQkic1NvcnRKVUlEZXNjIjogImNzc19yaWdodCB1aS1pY29uIHVpLWljb24tdHJpYW5nbGUtMS1zIiwKCQkic1NvcnRKVUkiOiAiY3NzX3JpZ2h0IHVpLWljb24gdWktaWNvbi1jYXJhdC0yLW4tcyIsCgkJInNTb3J0SlVJQXNjQWxsb3dlZCI6ICJjc3NfcmlnaHQgdWktaWNvbiB1aS1pY29uLWNhcmF0LTEtbiIsCgkJInNTb3J0SlVJRGVzY0FsbG93ZWQiOiAiY3NzX3JpZ2h0IHVpLWljb24gdWktaWNvbi1jYXJhdC0xLXMiLAoJCSJzU29ydEpVSVdyYXBwZXIiOiAiRGF0YVRhYmxlc19zb3J0X3dyYXBwZXIiLAoJCSJzU29ydEljb24iOiAiRGF0YVRhYmxlc19zb3J0X2ljb24iLAoJCQoJCS8qIFNjcm9sbGluZyAqLwoJCSJzU2Nyb2xsSGVhZCI6ICJkYXRhVGFibGVzX3Njcm9sbEhlYWQgdWktc3RhdGUtZGVmYXVsdCIsCgkJInNTY3JvbGxGb290IjogImRhdGFUYWJsZXNfc2Nyb2xsRm9vdCB1aS1zdGF0ZS1kZWZhdWx0IiwKCQkKCQkvKiBNaXNjICovCgkJInNGb290ZXJUSCI6ICJ1aS1zdGF0ZS1kZWZhdWx0IiwKCQkic0pVSUhlYWRlciI6ICJmZy10b29sYmFyIHVpLXRvb2xiYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1jb3JuZXItdGwgdWktY29ybmVyLXRyIHVpLWhlbHBlci1jbGVhcmZpeCIsCgkJInNKVUlGb290ZXIiOiAiZmctdG9vbGJhciB1aS10b29sYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktY29ybmVyLWJsIHVpLWNvcm5lci1iciB1aS1oZWxwZXItY2xlYXJmaXgiCgl9ICk7CgkKCQoJLyoKCSAqIFZhcmlhYmxlOiBvUGFnaW5hdGlvbgoJICogUHVycG9zZTogIAoJICogU2NvcGU6ICAgIGpRdWVyeS5mbi5kYXRhVGFibGVFeHQKCSAqLwoJJC5leHRlbmQoIERhdGFUYWJsZS5leHQub1BhZ2luYXRpb24sIHsKCQkvKgoJCSAqIFZhcmlhYmxlOiB0d29fYnV0dG9uCgkJICogUHVycG9zZTogIFN0YW5kYXJkIHR3byBidXR0b24gKGZvcndhcmQvYmFjaykgcGFnaW5hdGlvbgoJCSAqIFNjb3BlOiAgICBqUXVlcnkuZm4uZGF0YVRhYmxlRXh0Lm9QYWdpbmF0aW9uCgkJICovCgkJInR3b19idXR0b24iOiB7CgkJCS8qCgkJCSAqIEZ1bmN0aW9uOiBvUGFnaW5hdGlvbi50d29fYnV0dG9uLmZuSW5pdAoJCQkgKiBQdXJwb3NlOiAgSW5pdGlhbGlzZSBkb20gZWxlbWVudHMgcmVxdWlyZWQgZm9yIHBhZ2luYXRpb24gd2l0aCBmb3J3YXJkL2JhY2sgYnV0dG9ucyBvbmx5CgkJCSAqIFJldHVybnM6ICAtCgkJCSAqIElucHV0czogICBvYmplY3Q6b1NldHRpbmdzIC0gZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCQkJICogICAgICAgICAgIG5vZGU6blBhZ2luZyAtIHRoZSBESVYgd2hpY2ggY29udGFpbnMgdGhpcyBwYWdpbmF0aW9uIGNvbnRyb2wKCQkJICogICAgICAgICAgIGZ1bmN0aW9uOmZuQ2FsbGJhY2tEcmF3IC0gZHJhdyBmdW5jdGlvbiB3aGljaCBtdXN0IGJlIGNhbGxlZCBvbiB1cGRhdGUKCQkJICovCgkJCSJmbkluaXQiOiBmdW5jdGlvbiAoIG9TZXR0aW5ncywgblBhZ2luZywgZm5DYWxsYmFja0RyYXcgKQoJCQl7CgkJCQl2YXIgb0xhbmcgPSBvU2V0dGluZ3Mub0xhbmd1YWdlLm9QYWdpbmF0ZTsKCQkJCXZhciBvQ2xhc3NlcyA9IG9TZXR0aW5ncy5vQ2xhc3NlczsKCQkJCXZhciBmbkNsaWNrSGFuZGxlciA9IGZ1bmN0aW9uICggZSApIHsKCQkJCQlpZiAoIG9TZXR0aW5ncy5vQXBpLl9mblBhZ2VDaGFuZ2UoIG9TZXR0aW5ncywgZS5kYXRhLmFjdGlvbiApICkKCQkJCQl7CgkJCQkJCWZuQ2FsbGJhY2tEcmF3KCBvU2V0dGluZ3MgKTsKCQkJCQl9CgkJCQl9OwoJCgkJCQl2YXIgc0FwcGVuZCA9ICghb1NldHRpbmdzLmJKVUkpID8KCQkJCQknPGEgY2xhc3M9Iicrb1NldHRpbmdzLm9DbGFzc2VzLnNQYWdlUHJldkRpc2FibGVkKyciIHRhYmluZGV4PSInK29TZXR0aW5ncy5pVGFiSW5kZXgrJyIgcm9sZT0iYnV0dG9uIj4nK29MYW5nLnNQcmV2aW91cysnPC9hPicrCgkJCQkJJzxhIGNsYXNzPSInK29TZXR0aW5ncy5vQ2xhc3Nlcy5zUGFnZU5leHREaXNhYmxlZCsnIiB0YWJpbmRleD0iJytvU2V0dGluZ3MuaVRhYkluZGV4KyciIHJvbGU9ImJ1dHRvbiI+JytvTGFuZy5zTmV4dCsnPC9hPicKCQkJCQk6CgkJCQkJJzxhIGNsYXNzPSInK29TZXR0aW5ncy5vQ2xhc3Nlcy5zUGFnZVByZXZEaXNhYmxlZCsnIiB0YWJpbmRleD0iJytvU2V0dGluZ3MuaVRhYkluZGV4KyciIHJvbGU9ImJ1dHRvbiI+PHNwYW4gY2xhc3M9Iicrb1NldHRpbmdzLm9DbGFzc2VzLnNQYWdlSlVJUHJldisnIj48L3NwYW4+PC9hPicrCgkJCQkJJzxhIGNsYXNzPSInK29TZXR0aW5ncy5vQ2xhc3Nlcy5zUGFnZU5leHREaXNhYmxlZCsnIiB0YWJpbmRleD0iJytvU2V0dGluZ3MuaVRhYkluZGV4KyciIHJvbGU9ImJ1dHRvbiI+PHNwYW4gY2xhc3M9Iicrb1NldHRpbmdzLm9DbGFzc2VzLnNQYWdlSlVJTmV4dCsnIj48L3NwYW4+PC9hPic7CgkJCQkkKG5QYWdpbmcpLmFwcGVuZCggc0FwcGVuZCApOwoJCQkJCgkJCQl2YXIgZWxzID0gJCgnYScsIG5QYWdpbmcpOwoJCQkJdmFyIG5QcmV2aW91cyA9IGVsc1swXSwKCQkJCQluTmV4dCA9IGVsc1sxXTsKCQkJCQoJCQkJb1NldHRpbmdzLm9BcGkuX2ZuQmluZEFjdGlvbiggblByZXZpb3VzLCB7YWN0aW9uOiAicHJldmlvdXMifSwgZm5DbGlja0hhbmRsZXIgKTsKCQkJCW9TZXR0aW5ncy5vQXBpLl9mbkJpbmRBY3Rpb24oIG5OZXh0LCAgICAge2FjdGlvbjogIm5leHQifSwgICAgIGZuQ2xpY2tIYW5kbGVyICk7CgkJCQkKCQkJCS8qIElEIHRoZSBmaXJzdCBlbGVtZW50cyBvbmx5ICovCgkJCQlpZiAoICFvU2V0dGluZ3MuYWFuRmVhdHVyZXMucCApCgkJCQl7CgkJCQkJblBhZ2luZy5pZCA9IG9TZXR0aW5ncy5zVGFibGVJZCsnX3BhZ2luYXRlJzsKCQkJCQluUHJldmlvdXMuaWQgPSBvU2V0dGluZ3Muc1RhYmxlSWQrJ19wcmV2aW91cyc7CgkJCQkJbk5leHQuaWQgPSBvU2V0dGluZ3Muc1RhYmxlSWQrJ19uZXh0JzsKCQoJCQkJCW5QcmV2aW91cy5zZXRBdHRyaWJ1dGUoJ2FyaWEtY29udHJvbHMnLCBvU2V0dGluZ3Muc1RhYmxlSWQpOwoJCQkJCW5OZXh0LnNldEF0dHJpYnV0ZSgnYXJpYS1jb250cm9scycsIG9TZXR0aW5ncy5zVGFibGVJZCk7CgkJCQl9CgkJCX0sCgkJCQoJCQkvKgoJCQkgKiBGdW5jdGlvbjogb1BhZ2luYXRpb24udHdvX2J1dHRvbi5mblVwZGF0ZQoJCQkgKiBQdXJwb3NlOiAgVXBkYXRlIHRoZSB0d28gYnV0dG9uIHBhZ2luYXRpb24gYXQgdGhlIGVuZCBvZiB0aGUgZHJhdwoJCQkgKiBSZXR1cm5zOiAgLQoJCQkgKiBJbnB1dHM6ICAgb2JqZWN0Om9TZXR0aW5ncyAtIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CgkJCSAqICAgICAgICAgICBmdW5jdGlvbjpmbkNhbGxiYWNrRHJhdyAtIGRyYXcgZnVuY3Rpb24gdG8gY2FsbCBvbiBwYWdlIGNoYW5nZQoJCQkgKi8KCQkJImZuVXBkYXRlIjogZnVuY3Rpb24gKCBvU2V0dGluZ3MsIGZuQ2FsbGJhY2tEcmF3ICkKCQkJewoJCQkJaWYgKCAhb1NldHRpbmdzLmFhbkZlYXR1cmVzLnAgKQoJCQkJewoJCQkJCXJldHVybjsKCQkJCX0KCQkJCQoJCQkJdmFyIG9DbGFzc2VzID0gb1NldHRpbmdzLm9DbGFzc2VzOwoJCQkJdmFyIGFuID0gb1NldHRpbmdzLmFhbkZlYXR1cmVzLnA7CgkKCQkJCS8qIExvb3Agb3ZlciBlYWNoIGluc3RhbmNlIG9mIHRoZSBwYWdlciAqLwoJCQkJZm9yICggdmFyIGk9MCwgaUxlbj1hbi5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCQkJewoJCQkJCWlmICggYW5baV0uY2hpbGROb2Rlcy5sZW5ndGggIT09IDAgKQoJCQkJCXsKCQkJCQkJYW5baV0uY2hpbGROb2Rlc1swXS5jbGFzc05hbWUgPSAoIG9TZXR0aW5ncy5faURpc3BsYXlTdGFydCA9PT0gMCApID8gCgkJCQkJCQlvQ2xhc3Nlcy5zUGFnZVByZXZEaXNhYmxlZCA6IG9DbGFzc2VzLnNQYWdlUHJldkVuYWJsZWQ7CgkJCQkJCQoJCQkJCQlhbltpXS5jaGlsZE5vZGVzWzFdLmNsYXNzTmFtZSA9ICggb1NldHRpbmdzLmZuRGlzcGxheUVuZCgpID09IG9TZXR0aW5ncy5mblJlY29yZHNEaXNwbGF5KCkgKSA/IAoJCQkJCQkJb0NsYXNzZXMuc1BhZ2VOZXh0RGlzYWJsZWQgOiBvQ2xhc3Nlcy5zUGFnZU5leHRFbmFibGVkOwoJCQkJCX0KCQkJCX0KCQkJfQoJCX0sCgkJCgkJCgkJLyoKCQkgKiBWYXJpYWJsZTogaUZ1bGxOdW1iZXJzU2hvd1BhZ2VzCgkJICogUHVycG9zZTogIENoYW5nZSB0aGUgbnVtYmVyIG9mIHBhZ2VzIHdoaWNoIGNhbiBiZSBzZWVuCgkJICogU2NvcGU6ICAgIGpRdWVyeS5mbi5kYXRhVGFibGVFeHQub1BhZ2luYXRpb24KCQkgKi8KCQkiaUZ1bGxOdW1iZXJzU2hvd1BhZ2VzIjogNSwKCQkKCQkvKgoJCSAqIFZhcmlhYmxlOiBmdWxsX251bWJlcnMKCQkgKiBQdXJwb3NlOiAgRnVsbCBudW1iZXJzIHBhZ2luYXRpb24KCQkgKiBTY29wZTogICAgalF1ZXJ5LmZuLmRhdGFUYWJsZUV4dC5vUGFnaW5hdGlvbgoJCSAqLwoJCSJmdWxsX251bWJlcnMiOiB7CgkJCS8qCgkJCSAqIEZ1bmN0aW9uOiBvUGFnaW5hdGlvbi5mdWxsX251bWJlcnMuZm5Jbml0CgkJCSAqIFB1cnBvc2U6ICBJbml0aWFsaXNlIGRvbSBlbGVtZW50cyByZXF1aXJlZCBmb3IgcGFnaW5hdGlvbiB3aXRoIGEgbGlzdCBvZiB0aGUgcGFnZXMKCQkJICogUmV0dXJuczogIC0KCQkJICogSW5wdXRzOiAgIG9iamVjdDpvU2V0dGluZ3MgLSBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAoJCQkgKiAgICAgICAgICAgbm9kZTpuUGFnaW5nIC0gdGhlIERJViB3aGljaCBjb250YWlucyB0aGlzIHBhZ2luYXRpb24gY29udHJvbAoJCQkgKiAgICAgICAgICAgZnVuY3Rpb246Zm5DYWxsYmFja0RyYXcgLSBkcmF3IGZ1bmN0aW9uIHdoaWNoIG11c3QgYmUgY2FsbGVkIG9uIHVwZGF0ZQoJCQkgKi8KCQkJImZuSW5pdCI6IGZ1bmN0aW9uICggb1NldHRpbmdzLCBuUGFnaW5nLCBmbkNhbGxiYWNrRHJhdyApCgkJCXsKCQkJCXZhciBvTGFuZyA9IG9TZXR0aW5ncy5vTGFuZ3VhZ2Uub1BhZ2luYXRlOwoJCQkJdmFyIG9DbGFzc2VzID0gb1NldHRpbmdzLm9DbGFzc2VzOwoJCQkJdmFyIGZuQ2xpY2tIYW5kbGVyID0gZnVuY3Rpb24gKCBlICkgewoJCQkJCWlmICggb1NldHRpbmdzLm9BcGkuX2ZuUGFnZUNoYW5nZSggb1NldHRpbmdzLCBlLmRhdGEuYWN0aW9uICkgKQoJCQkJCXsKCQkJCQkJZm5DYWxsYmFja0RyYXcoIG9TZXR0aW5ncyApOwoJCQkJCX0KCQkJCX07CgkKCQkJCSQoblBhZ2luZykuYXBwZW5kKAoJCQkJCSc8YSAgdGFiaW5kZXg9Iicrb1NldHRpbmdzLmlUYWJJbmRleCsnIiBjbGFzcz0iJytvQ2xhc3Nlcy5zUGFnZUJ1dHRvbisiICIrb0NsYXNzZXMuc1BhZ2VGaXJzdCsnIj4nK29MYW5nLnNGaXJzdCsnPC9hPicrCgkJCQkJJzxhICB0YWJpbmRleD0iJytvU2V0dGluZ3MuaVRhYkluZGV4KyciIGNsYXNzPSInK29DbGFzc2VzLnNQYWdlQnV0dG9uKyIgIitvQ2xhc3Nlcy5zUGFnZVByZXZpb3VzKyciPicrb0xhbmcuc1ByZXZpb3VzKyc8L2E+JysKCQkJCQknPHNwYW4+PC9zcGFuPicrCgkJCQkJJzxhIHRhYmluZGV4PSInK29TZXR0aW5ncy5pVGFiSW5kZXgrJyIgY2xhc3M9Iicrb0NsYXNzZXMuc1BhZ2VCdXR0b24rIiAiK29DbGFzc2VzLnNQYWdlTmV4dCsnIj4nK29MYW5nLnNOZXh0Kyc8L2E+JysKCQkJCQknPGEgdGFiaW5kZXg9Iicrb1NldHRpbmdzLmlUYWJJbmRleCsnIiBjbGFzcz0iJytvQ2xhc3Nlcy5zUGFnZUJ1dHRvbisiICIrb0NsYXNzZXMuc1BhZ2VMYXN0KyciPicrb0xhbmcuc0xhc3QrJzwvYT4nCgkJCQkpOwoJCQkJdmFyIGVscyA9ICQoJ2EnLCBuUGFnaW5nKTsKCQkJCXZhciBuRmlyc3QgPSBlbHNbMF0sCgkJCQkJblByZXYgPSBlbHNbMV0sCgkJCQkJbk5leHQgPSBlbHNbMl0sCgkJCQkJbkxhc3QgPSBlbHNbM107CgkJCQkKCQkJCW9TZXR0aW5ncy5vQXBpLl9mbkJpbmRBY3Rpb24oIG5GaXJzdCwge2FjdGlvbjogImZpcnN0In0sICAgIGZuQ2xpY2tIYW5kbGVyICk7CgkJCQlvU2V0dGluZ3Mub0FwaS5fZm5CaW5kQWN0aW9uKCBuUHJldiwgIHthY3Rpb246ICJwcmV2aW91cyJ9LCBmbkNsaWNrSGFuZGxlciApOwoJCQkJb1NldHRpbmdzLm9BcGkuX2ZuQmluZEFjdGlvbiggbk5leHQsICB7YWN0aW9uOiAibmV4dCJ9LCAgICAgZm5DbGlja0hhbmRsZXIgKTsKCQkJCW9TZXR0aW5ncy5vQXBpLl9mbkJpbmRBY3Rpb24oIG5MYXN0LCAge2FjdGlvbjogImxhc3QifSwgICAgIGZuQ2xpY2tIYW5kbGVyICk7CgkJCQkKCQkJCS8qIElEIHRoZSBmaXJzdCBlbGVtZW50cyBvbmx5ICovCgkJCQlpZiAoICFvU2V0dGluZ3MuYWFuRmVhdHVyZXMucCApCgkJCQl7CgkJCQkJblBhZ2luZy5pZCA9IG9TZXR0aW5ncy5zVGFibGVJZCsnX3BhZ2luYXRlJzsKCQkJCQluRmlyc3QuaWQgPW9TZXR0aW5ncy5zVGFibGVJZCsnX2ZpcnN0JzsKCQkJCQluUHJldi5pZCA9b1NldHRpbmdzLnNUYWJsZUlkKydfcHJldmlvdXMnOwoJCQkJCW5OZXh0LmlkID1vU2V0dGluZ3Muc1RhYmxlSWQrJ19uZXh0JzsKCQkJCQluTGFzdC5pZCA9b1NldHRpbmdzLnNUYWJsZUlkKydfbGFzdCc7CgkJCQl9CgkJCX0sCgkJCQoJCQkvKgoJCQkgKiBGdW5jdGlvbjogb1BhZ2luYXRpb24uZnVsbF9udW1iZXJzLmZuVXBkYXRlCgkJCSAqIFB1cnBvc2U6ICBVcGRhdGUgdGhlIGxpc3Qgb2YgcGFnZSBidXR0b25zIHNob3dzCgkJCSAqIFJldHVybnM6ICAtCgkJCSAqIElucHV0czogICBvYmplY3Q6b1NldHRpbmdzIC0gZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCQkJICogICAgICAgICAgIGZ1bmN0aW9uOmZuQ2FsbGJhY2tEcmF3IC0gZHJhdyBmdW5jdGlvbiB0byBjYWxsIG9uIHBhZ2UgY2hhbmdlCgkJCSAqLwoJCQkiZm5VcGRhdGUiOiBmdW5jdGlvbiAoIG9TZXR0aW5ncywgZm5DYWxsYmFja0RyYXcgKQoJCQl7CgkJCQlpZiAoICFvU2V0dGluZ3MuYWFuRmVhdHVyZXMucCApCgkJCQl7CgkJCQkJcmV0dXJuOwoJCQkJfQoJCQkJCgkJCQl2YXIgaVBhZ2VDb3VudCA9IERhdGFUYWJsZS5leHQub1BhZ2luYXRpb24uaUZ1bGxOdW1iZXJzU2hvd1BhZ2VzOwoJCQkJdmFyIGlQYWdlQ291bnRIYWxmID0gTWF0aC5mbG9vcihpUGFnZUNvdW50IC8gMik7CgkJCQl2YXIgaVBhZ2VzID0gTWF0aC5jZWlsKChvU2V0dGluZ3MuZm5SZWNvcmRzRGlzcGxheSgpKSAvIG9TZXR0aW5ncy5faURpc3BsYXlMZW5ndGgpOwoJCQkJdmFyIGlDdXJyZW50UGFnZSA9IE1hdGguY2VpbChvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQgLyBvU2V0dGluZ3MuX2lEaXNwbGF5TGVuZ3RoKSArIDE7CgkJCQl2YXIgc0xpc3QgPSAiIjsKCQkJCXZhciBpU3RhcnRCdXR0b24sIGlFbmRCdXR0b24sIGksIGlMZW47CgkJCQl2YXIgb0NsYXNzZXMgPSBvU2V0dGluZ3Mub0NsYXNzZXM7CgkJCQl2YXIgYW5CdXR0b25zLCBhblN0YXRpYywgblBhZ2luYXRlTGlzdDsKCQkJCXZhciBhbiA9IG9TZXR0aW5ncy5hYW5GZWF0dXJlcy5wOwoJCQkJdmFyIGZuQmluZCA9IGZ1bmN0aW9uIChqKSB7CgkJCQkJb1NldHRpbmdzLm9BcGkuX2ZuQmluZEFjdGlvbiggdGhpcywgeyJwYWdlIjogaitpU3RhcnRCdXR0b24tMX0sIGZ1bmN0aW9uKGUpIHsKCQkJCQkJLyogVXNlIHRoZSBpbmZvcm1hdGlvbiBpbiB0aGUgZWxlbWVudCB0byBqdW1wIHRvIHRoZSByZXF1aXJlZCBwYWdlICovCgkJCQkJCW9TZXR0aW5ncy5vQXBpLl9mblBhZ2VDaGFuZ2UoIG9TZXR0aW5ncywgZS5kYXRhLnBhZ2UgKTsKCQkJCQkJZm5DYWxsYmFja0RyYXcoIG9TZXR0aW5ncyApOwoJCQkJCQllLnByZXZlbnREZWZhdWx0KCk7CgkJCQkJfSApOwoJCQkJfTsKCQkJCQoJCQkJLyogUGFnZXMgY2FsY3VsYXRpb24gKi8KCQkJCWlmICggb1NldHRpbmdzLl9pRGlzcGxheUxlbmd0aCA9PT0gLTEgKQoJCQkJewoJCQkJCWlTdGFydEJ1dHRvbiA9IDE7CgkJCQkJaUVuZEJ1dHRvbiA9IDE7CgkJCQkJaUN1cnJlbnRQYWdlID0gMTsKCQkJCX0KCQkJCWVsc2UgaWYgKGlQYWdlcyA8IGlQYWdlQ291bnQpCgkJCQl7CgkJCQkJaVN0YXJ0QnV0dG9uID0gMTsKCQkJCQlpRW5kQnV0dG9uID0gaVBhZ2VzOwoJCQkJfQoJCQkJZWxzZSBpZiAoaUN1cnJlbnRQYWdlIDw9IGlQYWdlQ291bnRIYWxmKQoJCQkJewoJCQkJCWlTdGFydEJ1dHRvbiA9IDE7CgkJCQkJaUVuZEJ1dHRvbiA9IGlQYWdlQ291bnQ7CgkJCQl9CgkJCQllbHNlIGlmIChpQ3VycmVudFBhZ2UgPj0gKGlQYWdlcyAtIGlQYWdlQ291bnRIYWxmKSkKCQkJCXsKCQkJCQlpU3RhcnRCdXR0b24gPSBpUGFnZXMgLSBpUGFnZUNvdW50ICsgMTsKCQkJCQlpRW5kQnV0dG9uID0gaVBhZ2VzOwoJCQkJfQoJCQkJZWxzZQoJCQkJewoJCQkJCWlTdGFydEJ1dHRvbiA9IGlDdXJyZW50UGFnZSAtIE1hdGguY2VpbChpUGFnZUNvdW50IC8gMikgKyAxOwoJCQkJCWlFbmRCdXR0b24gPSBpU3RhcnRCdXR0b24gKyBpUGFnZUNvdW50IC0gMTsKCQkJCX0KCQoJCQkJCgkJCQkvKiBCdWlsZCB0aGUgZHluYW1pYyBsaXN0ICovCgkJCQlmb3IgKCBpPWlTdGFydEJ1dHRvbiA7IGk8PWlFbmRCdXR0b24gOyBpKysgKQoJCQkJewoJCQkJCXNMaXN0ICs9IChpQ3VycmVudFBhZ2UgIT09IGkpID8KCQkJCQkJJzxhIHRhYmluZGV4PSInK29TZXR0aW5ncy5pVGFiSW5kZXgrJyIgY2xhc3M9Iicrb0NsYXNzZXMuc1BhZ2VCdXR0b24rJyI+JytvU2V0dGluZ3MuZm5Gb3JtYXROdW1iZXIoaSkrJzwvYT4nIDoKCQkJCQkJJzxhIHRhYmluZGV4PSInK29TZXR0aW5ncy5pVGFiSW5kZXgrJyIgY2xhc3M9Iicrb0NsYXNzZXMuc1BhZ2VCdXR0b25BY3RpdmUrJyI+JytvU2V0dGluZ3MuZm5Gb3JtYXROdW1iZXIoaSkrJzwvYT4nOwoJCQkJfQoJCQkJCgkJCQkvKiBMb29wIG92ZXIgZWFjaCBpbnN0YW5jZSBvZiB0aGUgcGFnZXIgKi8KCQkJCWZvciAoIGk9MCwgaUxlbj1hbi5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCQkJewoJCQkJCWlmICggYW5baV0uY2hpbGROb2Rlcy5sZW5ndGggPT09IDAgKQoJCQkJCXsKCQkJCQkJY29udGludWU7CgkJCQkJfQoJCQkJCQoJCQkJCS8qIEJ1aWxkIHVwIHRoZSBkeW5hbWljIGxpc3QgZmlyc3QgLSBodG1sIGFuZCBsaXN0ZW5lcnMgKi8KCQkJCQkkKCdzcGFuOmVxKDApJywgYW5baV0pCgkJCQkJCS5odG1sKCBzTGlzdCApCgkJCQkJCS5jaGlsZHJlbignYScpLmVhY2goIGZuQmluZCApOwoJCQkJCQoJCQkJCS8qIFVwZGF0ZSB0aGUgcGVybWFuZW50IGJ1dHRvbidzIGNsYXNzZXMgKi8KCQkJCQlhbkJ1dHRvbnMgPSBhbltpXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYScpOwoJCQkJCWFuU3RhdGljID0gWwoJCQkJCQlhbkJ1dHRvbnNbMF0sIGFuQnV0dG9uc1sxXSwgCgkJCQkJCWFuQnV0dG9uc1thbkJ1dHRvbnMubGVuZ3RoLTJdLCBhbkJ1dHRvbnNbYW5CdXR0b25zLmxlbmd0aC0xXQoJCQkJCV07CgkKCQkJCQkkKGFuU3RhdGljKS5yZW1vdmVDbGFzcyggb0NsYXNzZXMuc1BhZ2VCdXR0b24rIiAiK29DbGFzc2VzLnNQYWdlQnV0dG9uQWN0aXZlKyIgIitvQ2xhc3Nlcy5zUGFnZUJ1dHRvblN0YXRpY0Rpc2FibGVkICk7CgkJCQkJJChbYW5TdGF0aWNbMF0sIGFuU3RhdGljWzFdXSkuYWRkQ2xhc3MoIAoJCQkJCQkoaUN1cnJlbnRQYWdlPT0xKSA/CgkJCQkJCQlvQ2xhc3Nlcy5zUGFnZUJ1dHRvblN0YXRpY0Rpc2FibGVkIDoKCQkJCQkJCW9DbGFzc2VzLnNQYWdlQnV0dG9uCgkJCQkJKTsKCQkJCQkkKFthblN0YXRpY1syXSwgYW5TdGF0aWNbM11dKS5hZGRDbGFzcygKCQkJCQkJKGlQYWdlcz09PTAgfHwgaUN1cnJlbnRQYWdlPT09aVBhZ2VzIHx8IG9TZXR0aW5ncy5faURpc3BsYXlMZW5ndGg9PT0tMSkgPwoJCQkJCQkJb0NsYXNzZXMuc1BhZ2VCdXR0b25TdGF0aWNEaXNhYmxlZCA6CgkJCQkJCQlvQ2xhc3Nlcy5zUGFnZUJ1dHRvbgoJCQkJCSk7CgkJCQl9CgkJCX0KCQl9Cgl9ICk7CgkKCSQuZXh0ZW5kKCBEYXRhVGFibGUuZXh0Lm9Tb3J0LCB7CgkJLyoKCQkgKiB0ZXh0IHNvcnRpbmcKCQkgKi8KCQkic3RyaW5nLXByZSI6IGZ1bmN0aW9uICggYSApCgkJewoJCQlpZiAoIHR5cGVvZiBhICE9ICdzdHJpbmcnICkgewoJCQkJYSA9IChhICE9PSBudWxsICYmIGEudG9TdHJpbmcpID8gYS50b1N0cmluZygpIDogJyc7CgkJCX0KCQkJcmV0dXJuIGEudG9Mb3dlckNhc2UoKTsKCQl9LAoJCgkJInN0cmluZy1hc2MiOiBmdW5jdGlvbiAoIHgsIHkgKQoJCXsKCQkJcmV0dXJuICgoeCA8IHkpID8gLTEgOiAoKHggPiB5KSA/IDEgOiAwKSk7CgkJfSwKCQkKCQkic3RyaW5nLWRlc2MiOiBmdW5jdGlvbiAoIHgsIHkgKQoJCXsKCQkJcmV0dXJuICgoeCA8IHkpID8gMSA6ICgoeCA+IHkpID8gLTEgOiAwKSk7CgkJfSwKCQkKCQkKCQkvKgoJCSAqIGh0bWwgc29ydGluZyAoaWdub3JlIGh0bWwgdGFncykKCQkgKi8KCQkiaHRtbC1wcmUiOiBmdW5jdGlvbiAoIGEgKQoJCXsKCQkJcmV0dXJuIGEucmVwbGFjZSggLzwuKj8+L2csICIiICkudG9Mb3dlckNhc2UoKTsKCQl9LAoJCQoJCSJodG1sLWFzYyI6IGZ1bmN0aW9uICggeCwgeSApCgkJewoJCQlyZXR1cm4gKCh4IDwgeSkgPyAtMSA6ICgoeCA+IHkpID8gMSA6IDApKTsKCQl9LAoJCQoJCSJodG1sLWRlc2MiOiBmdW5jdGlvbiAoIHgsIHkgKQoJCXsKCQkJcmV0dXJuICgoeCA8IHkpID8gMSA6ICgoeCA+IHkpID8gLTEgOiAwKSk7CgkJfSwKCQkKCQkKCQkvKgoJCSAqIGRhdGUgc29ydGluZwoJCSAqLwoJCSJkYXRlLXByZSI6IGZ1bmN0aW9uICggYSApCgkJewoJCQl2YXIgeCA9IERhdGUucGFyc2UoIGEgKTsKCQkJCgkJCWlmICggaXNOYU4oeCkgfHwgeD09PSIiICkKCQkJewoJCQkJeCA9IERhdGUucGFyc2UoICIwMS8wMS8xOTcwIDAwOjAwOjAwIiApOwoJCQl9CgkJCXJldHVybiB4OwoJCX0sCgkKCQkiZGF0ZS1hc2MiOiBmdW5jdGlvbiAoIHgsIHkgKQoJCXsKCQkJcmV0dXJuIHggLSB5OwoJCX0sCgkJCgkJImRhdGUtZGVzYyI6IGZ1bmN0aW9uICggeCwgeSApCgkJewoJCQlyZXR1cm4geSAtIHg7CgkJfSwKCQkKCQkKCQkvKgoJCSAqIG51bWVyaWNhbCBzb3J0aW5nCgkJICovCgkJIm51bWVyaWMtcHJlIjogZnVuY3Rpb24gKCBhICkKCQl7CgkJCXJldHVybiAoYT09Ii0iIHx8IGE9PT0iIikgPyAwIDogYSoxOwoJCX0sCgkKCQkibnVtZXJpYy1hc2MiOiBmdW5jdGlvbiAoIHgsIHkgKQoJCXsKCQkJcmV0dXJuIHggLSB5OwoJCX0sCgkJCgkJIm51bWVyaWMtZGVzYyI6IGZ1bmN0aW9uICggeCwgeSApCgkJewoJCQlyZXR1cm4geSAtIHg7CgkJfQoJfSApOwoJCgkKCSQuZXh0ZW5kKCBEYXRhVGFibGUuZXh0LmFUeXBlcywgWwoJCS8qCgkJICogRnVuY3Rpb246IC0KCQkgKiBQdXJwb3NlOiAgQ2hlY2sgdG8gc2VlIGlmIGEgc3RyaW5nIGlzIG51bWVyaWMKCQkgKiBSZXR1cm5zOiAgc3RyaW5nOidudW1lcmljJyBvciBudWxsCgkJICogSW5wdXRzOiAgIG1peGVkOnNUZXh0IC0gc3RyaW5nIHRvIGNoZWNrCgkJICovCgkJZnVuY3Rpb24gKCBzRGF0YSApCgkJewoJCQkvKiBBbGxvdyB6ZXJvIGxlbmd0aCBzdHJpbmdzIGFzIGEgbnVtYmVyICovCgkJCWlmICggdHlwZW9mIHNEYXRhID09PSAnbnVtYmVyJyApCgkJCXsKCQkJCXJldHVybiAnbnVtZXJpYyc7CgkJCX0KCQkJZWxzZSBpZiAoIHR5cGVvZiBzRGF0YSAhPT0gJ3N0cmluZycgKQoJCQl7CgkJCQlyZXR1cm4gbnVsbDsKCQkJfQoJCQkKCQkJdmFyIHNWYWxpZEZpcnN0Q2hhcnMgPSAiMDEyMzQ1Njc4OS0iOwoJCQl2YXIgc1ZhbGlkQ2hhcnMgPSAiMDEyMzQ1Njc4OS4iOwoJCQl2YXIgQ2hhcjsKCQkJdmFyIGJEZWNpbWFsID0gZmFsc2U7CgkJCQoJCQkvKiBDaGVjayBmb3IgYSB2YWxpZCBmaXJzdCBjaGFyIChubyBwZXJpb2QgYW5kIGFsbG93IG5lZ2F0aXZlcykgKi8KCQkJQ2hhciA9IHNEYXRhLmNoYXJBdCgwKTsgCgkJCWlmIChzVmFsaWRGaXJzdENoYXJzLmluZGV4T2YoQ2hhcikgPT0gLTEpIAoJCQl7CgkJCQlyZXR1cm4gbnVsbDsKCQkJfQoJCQkKCQkJLyogQ2hlY2sgYWxsIHRoZSBvdGhlciBjaGFyYWN0ZXJzIGFyZSB2YWxpZCAqLwoJCQlmb3IgKCB2YXIgaT0xIDsgaTxzRGF0YS5sZW5ndGggOyBpKysgKSAKCQkJewoJCQkJQ2hhciA9IHNEYXRhLmNoYXJBdChpKTsgCgkJCQlpZiAoc1ZhbGlkQ2hhcnMuaW5kZXhPZihDaGFyKSA9PSAtMSkgCgkJCQl7CgkJCQkJcmV0dXJuIG51bGw7CgkJCQl9CgkJCQkKCQkJCS8qIE9ubHkgYWxsb3dlZCBvbmUgZGVjaW1hbCBwbGFjZS4uLiAqLwoJCQkJaWYgKCBDaGFyID09ICIuIiApCgkJCQl7CgkJCQkJaWYgKCBiRGVjaW1hbCApCgkJCQkJewoJCQkJCQlyZXR1cm4gbnVsbDsKCQkJCQl9CgkJCQkJYkRlY2ltYWwgPSB0cnVlOwoJCQkJfQoJCQl9CgkJCQoJCQlyZXR1cm4gJ251bWVyaWMnOwoJCX0sCgkJCgkJLyoKCQkgKiBGdW5jdGlvbjogLQoJCSAqIFB1cnBvc2U6ICBDaGVjayB0byBzZWUgaWYgYSBzdHJpbmcgaXMgYWN0dWFsbHkgYSBmb3JtYXR0ZWQgZGF0ZQoJCSAqIFJldHVybnM6ICBzdHJpbmc6J2RhdGUnIG9yIG51bGwKCQkgKiBJbnB1dHM6ICAgc3RyaW5nOnNUZXh0IC0gc3RyaW5nIHRvIGNoZWNrCgkJICovCgkJZnVuY3Rpb24gKCBzRGF0YSApCgkJewoJCQl2YXIgaVBhcnNlID0gRGF0ZS5wYXJzZShzRGF0YSk7CgkJCWlmICggKGlQYXJzZSAhPT0gbnVsbCAmJiAhaXNOYU4oaVBhcnNlKSkgfHwgKHR5cGVvZiBzRGF0YSA9PT0gJ3N0cmluZycgJiYgc0RhdGEubGVuZ3RoID09PSAwKSApCgkJCXsKCQkJCXJldHVybiAnZGF0ZSc7CgkJCX0KCQkJcmV0dXJuIG51bGw7CgkJfSwKCQkKCQkvKgoJCSAqIEZ1bmN0aW9uOiAtCgkJICogUHVycG9zZTogIENoZWNrIHRvIHNlZSBpZiBhIHN0cmluZyBzaG91bGQgYmUgdHJlYXRlZCBhcyBhbiBIVE1MIHN0cmluZwoJCSAqIFJldHVybnM6ICBzdHJpbmc6J2h0bWwnIG9yIG51bGwKCQkgKiBJbnB1dHM6ICAgc3RyaW5nOnNUZXh0IC0gc3RyaW5nIHRvIGNoZWNrCgkJICovCgkJZnVuY3Rpb24gKCBzRGF0YSApCgkJewoJCQlpZiAoIHR5cGVvZiBzRGF0YSA9PT0gJ3N0cmluZycgJiYgc0RhdGEuaW5kZXhPZignPCcpICE9IC0xICYmIHNEYXRhLmluZGV4T2YoJz4nKSAhPSAtMSApCgkJCXsKCQkJCXJldHVybiAnaHRtbCc7CgkJCX0KCQkJcmV0dXJuIG51bGw7CgkJfQoJXSApOwoJCgoJLy8galF1ZXJ5IGFsaWFzZXMKCSQuZm4uRGF0YVRhYmxlID0gRGF0YVRhYmxlOwoJJC5mbi5kYXRhVGFibGUgPSBEYXRhVGFibGU7CgkkLmZuLmRhdGFUYWJsZVNldHRpbmdzID0gRGF0YVRhYmxlLnNldHRpbmdzOwoJJC5mbi5kYXRhVGFibGVFeHQgPSBEYXRhVGFibGUuZXh0OwoKCgkvLyBJbmZvcm1hdGlvbiBhYm91dCBldmVudHMgZmlyZWQgYnkgRGF0YVRhYmxlcyAtIGZvciBkb2N1bWVudGF0aW9uLgoJLyoqCgkgKiBEcmF3IGV2ZW50LCBmaXJlZCB3aGVuZXZlciB0aGUgdGFibGUgaXMgcmVkcmF3biBvbiB0aGUgcGFnZSwgYXQgdGhlIHNhbWUgcG9pbnQgYXMKCSAqIGZuRHJhd0NhbGxiYWNrLiBUaGlzIG1heSBiZSB1c2VmdWwgZm9yIGJpbmRpbmcgZXZlbnRzIG9yIHBlcmZvcm1pbmcgY2FsY3VsYXRpb25zIHdoZW4KCSAqIHRoZSB0YWJsZSBpcyBhbHRlcmVkIGF0IGFsbC4KCSAqICBAbmFtZSBEYXRhVGFibGUjZHJhdwoJICogIEBldmVudAoJICogIEBwYXJhbSB7ZXZlbnR9IGUgalF1ZXJ5IGV2ZW50IG9iamVjdAoJICogIEBwYXJhbSB7b2JqZWN0fSBvIERhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0IHtAbGluayBEYXRhVGFibGUubW9kZWxzLm9TZXR0aW5nc30KCSAqLwoKCS8qKgoJICogRmlsdGVyIGV2ZW50LCBmaXJlZCB3aGVuIHRoZSBmaWx0ZXJpbmcgYXBwbGllZCB0byB0aGUgdGFibGUgKHVzaW5nIHRoZSBidWlsZCBpbiBnbG9iYWwKCSAqIGdsb2JhbCBmaWx0ZXIsIG9yIGNvbHVtbiBmaWx0ZXJzKSBpcyBhbHRlcmVkLgoJICogIEBuYW1lIERhdGFUYWJsZSNmaWx0ZXIKCSAqICBAZXZlbnQKCSAqICBAcGFyYW0ge2V2ZW50fSBlIGpRdWVyeSBldmVudCBvYmplY3QKCSAqICBAcGFyYW0ge29iamVjdH0gbyBEYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdCB7QGxpbmsgRGF0YVRhYmxlLm1vZGVscy5vU2V0dGluZ3N9CgkgKi8KCgkvKioKCSAqIFBhZ2UgY2hhbmdlIGV2ZW50LCBmaXJlZCB3aGVuIHRoZSBwYWdpbmcgb2YgdGhlIHRhYmxlIGlzIGFsdGVyZWQuCgkgKiAgQG5hbWUgRGF0YVRhYmxlI3BhZ2UKCSAqICBAZXZlbnQKCSAqICBAcGFyYW0ge2V2ZW50fSBlIGpRdWVyeSBldmVudCBvYmplY3QKCSAqICBAcGFyYW0ge29iamVjdH0gbyBEYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdCB7QGxpbmsgRGF0YVRhYmxlLm1vZGVscy5vU2V0dGluZ3N9CgkgKi8KCgkvKioKCSAqIFNvcnQgZXZlbnQsIGZpcmVkIHdoZW4gdGhlIHNvcnRpbmcgYXBwbGllZCB0byB0aGUgdGFibGUgaXMgYWx0ZXJlZC4KCSAqICBAbmFtZSBEYXRhVGFibGUjc29ydAoJICogIEBldmVudAoJICogIEBwYXJhbSB7ZXZlbnR9IGUgalF1ZXJ5IGV2ZW50IG9iamVjdAoJICogIEBwYXJhbSB7b2JqZWN0fSBvIERhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0IHtAbGluayBEYXRhVGFibGUubW9kZWxzLm9TZXR0aW5nc30KCSAqLwoKCS8qKgoJICogRGF0YVRhYmxlcyBpbml0aWFsaXNhdGlvbiBjb21wbGV0ZSBldmVudCwgZmlyZWQgd2hlbiB0aGUgdGFibGUgaXMgZnVsbHkgZHJhd24sCgkgKiBpbmNsdWRpbmcgQWpheCBkYXRhIGxvYWRlZCwgaWYgQWpheCBkYXRhIGlzIHJlcXVpcmVkLgoJICogIEBuYW1lIERhdGFUYWJsZSNpbml0CgkgKiAgQGV2ZW50CgkgKiAgQHBhcmFtIHtldmVudH0gZSBqUXVlcnkgZXZlbnQgb2JqZWN0CgkgKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBEYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAoJICogIEBwYXJhbSB7b2JqZWN0fSBqc29uIFRoZSBKU09OIG9iamVjdCByZXF1ZXN0IGZyb20gdGhlIHNlcnZlciAtIG9ubHkKCSAqICAgIHByZXNlbnQgaWYgY2xpZW50LXNpZGUgQWpheCBzb3VyY2VkIGRhdGEgaXMgdXNlZDwvbGk+PC9vbD4KCSAqLwoKCS8qKgoJICogU3RhdGUgc2F2ZSBldmVudCwgZmlyZWQgd2hlbiB0aGUgdGFibGUgaGFzIGNoYW5nZWQgc3RhdGUgYSBuZXcgc3RhdGUgc2F2ZSBpcyByZXF1aXJlZC4KCSAqIFRoaXMgbWV0aG9kIGFsbG93cyBtb2RpZmljYXRpb24gb2YgdGhlIHN0YXRlIHNhdmluZyBvYmplY3QgcHJpb3IgdG8gYWN0dWFsbHkgZG9pbmcgdGhlCgkgKiBzYXZlLCBpbmNsdWRpbmcgYWRkaXRpb24gb3Igb3RoZXIgc3RhdGUgcHJvcGVydGllcyAoZm9yIHBsdWctaW5zKSBvciBtb2RpZmljYXRpb24KCSAqIG9mIGEgRGF0YVRhYmxlcyBjb3JlIHByb3BlcnR5LgoJICogIEBuYW1lIERhdGFUYWJsZSNzdGF0ZVNhdmVQYXJhbXMKCSAqICBAZXZlbnQKCSAqICBAcGFyYW0ge2V2ZW50fSBlIGpRdWVyeSBldmVudCBvYmplY3QKCSAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIERhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CgkgKiAgQHBhcmFtIHtvYmplY3R9IGpzb24gVGhlIHN0YXRlIGluZm9ybWF0aW9uIHRvIGJlIHNhdmVkCgkgKi8KCgkvKioKCSAqIFN0YXRlIGxvYWQgZXZlbnQsIGZpcmVkIHdoZW4gdGhlIHRhYmxlIGlzIGxvYWRpbmcgc3RhdGUgZnJvbSB0aGUgc3RvcmVkIGRhdGEsIGJ1dAoJICogcHJpb3IgdG8gdGhlIHNldHRpbmdzIG9iamVjdCBiZWluZyBtb2RpZmllZCBieSB0aGUgc2F2ZWQgc3RhdGUgLSBhbGxvd2luZyBtb2RpZmljYXRpb24KCSAqIG9mIHRoZSBzYXZlZCBzdGF0ZSBpcyByZXF1aXJlZCBvciBsb2FkaW5nIG9mIHN0YXRlIGZvciBhIHBsdWctaW4uCgkgKiAgQG5hbWUgRGF0YVRhYmxlI3N0YXRlTG9hZFBhcmFtcwoJICogIEBldmVudAoJICogIEBwYXJhbSB7ZXZlbnR9IGUgalF1ZXJ5IGV2ZW50IG9iamVjdAoJICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgRGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCSAqICBAcGFyYW0ge29iamVjdH0ganNvbiBUaGUgc2F2ZWQgc3RhdGUgaW5mb3JtYXRpb24KCSAqLwoKCS8qKgoJICogU3RhdGUgbG9hZGVkIGV2ZW50LCBmaXJlZCB3aGVuIHN0YXRlIGhhcyBiZWVuIGxvYWRlZCBmcm9tIHN0b3JlZCBkYXRhIGFuZCB0aGUgc2V0dGluZ3MKCSAqIG9iamVjdCBoYXMgYmVlbiBtb2RpZmllZCBieSB0aGUgbG9hZGVkIGRhdGEuCgkgKiAgQG5hbWUgRGF0YVRhYmxlI3N0YXRlTG9hZGVkCgkgKiAgQGV2ZW50CgkgKiAgQHBhcmFtIHtldmVudH0gZSBqUXVlcnkgZXZlbnQgb2JqZWN0CgkgKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBEYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAoJICogIEBwYXJhbSB7b2JqZWN0fSBqc29uIFRoZSBzYXZlZCBzdGF0ZSBpbmZvcm1hdGlvbgoJICovCgoJLyoqCgkgKiBQcm9jZXNzaW5nIGV2ZW50LCBmaXJlZCB3aGVuIERhdGFUYWJsZXMgaXMgZG9pbmcgc29tZSBraW5kIG9mIHByb2Nlc3NpbmcgKGJlIGl0LAoJICogc29ydCwgZmlsdGVyIG9yIGFueXRoaW5nIGVsc2UpLiBDYW4gYmUgdXNlZCB0byBpbmRpY2F0ZSB0byB0aGUgZW5kIHVzZXIgdGhhdAoJICogdGhlcmUgaXMgc29tZXRoaW5nIGhhcHBlbmluZywgb3IgdGhhdCBzb21ldGhpbmcgaGFzIGZpbmlzaGVkLgoJICogIEBuYW1lIERhdGFUYWJsZSNwcm9jZXNzaW5nCgkgKiAgQGV2ZW50CgkgKiAgQHBhcmFtIHtldmVudH0gZSBqUXVlcnkgZXZlbnQgb2JqZWN0CgkgKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBEYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAoJICogIEBwYXJhbSB7Ym9vbGVhbn0gYlNob3cgRmxhZyBmb3IgaWYgRGF0YVRhYmxlcyBpcyBkb2luZyBwcm9jZXNzaW5nIG9yIG5vdAoJICovCgoJLyoqCgkgKiBBamF4IChYSFIpIGV2ZW50LCBmaXJlZCB3aGVuZXZlciBhbiBBamF4IHJlcXVlc3QgaXMgY29tcGxldGVkIGZyb20gYSByZXF1ZXN0IHRvIAoJICogbWFkZSB0byB0aGUgc2VydmVyIGZvciBuZXcgZGF0YSAobm90ZSB0aGF0IHRoaXMgdHJpZ2dlciBpcyBjYWxsZWQgaW4gZm5TZXJ2ZXJEYXRhLAoJICogaWYgeW91IG92ZXJyaWRlIGZuU2VydmVyRGF0YSBhbmQgd2hpY2ggdG8gdXNlIHRoaXMgZXZlbnQsIHlvdSBuZWVkIHRvIHRyaWdnZXIgaXQgaW4KCSAqIHlvdSBzdWNjZXNzIGZ1bmN0aW9uKS4KCSAqICBAbmFtZSBEYXRhVGFibGUjeGhyCgkgKiAgQGV2ZW50CgkgKiAgQHBhcmFtIHtldmVudH0gZSBqUXVlcnkgZXZlbnQgb2JqZWN0CgkgKiAgQHBhcmFtIHtvYmplY3R9IG8gRGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3Qge0BsaW5rIERhdGFUYWJsZS5tb2RlbHMub1NldHRpbmdzfQoJICogIEBwYXJhbSB7b2JqZWN0fSBqc29uIEpTT04gcmV0dXJuZWQgZnJvbSB0aGUgc2VydmVyCgkgKi8KCgkvKioKCSAqIERlc3Ryb3kgZXZlbnQsIGZpcmVkIHdoZW4gdGhlIERhdGFUYWJsZSBpcyBkZXN0cm95ZWQgYnkgY2FsbGluZyBmbkRlc3Ryb3kgb3IgcGFzc2luZwoJICogdGhlIGJEZXN0cm95OnRydWUgcGFyYW1ldGVyIGluIHRoZSBpbml0aWFsaXNhdGlvbiBvYmplY3QuIFRoaXMgY2FuIGJlIHVzZWQgdG8gcmVtb3ZlCgkgKiBib3VuZCBldmVudHMsIGFkZGVkIERPTSBub2RlcywgZXRjLgoJICogIEBuYW1lIERhdGFUYWJsZSNkZXN0cm95CgkgKiAgQGV2ZW50CgkgKiAgQHBhcmFtIHtldmVudH0gZSBqUXVlcnkgZXZlbnQgb2JqZWN0CgkgKiAgQHBhcmFtIHtvYmplY3R9IG8gRGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3Qge0BsaW5rIERhdGFUYWJsZS5tb2RlbHMub1NldHRpbmdzfQoJICovCn0oalF1ZXJ5LCB3aW5kb3csIGRvY3VtZW50LCB1bmRlZmluZWQpKTsK]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/js/jquery.dataTables.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogRmlsZTogICAgICAgIGpxdWVyeS5kYXRhVGFibGVzLm1pbi5qcwogKiBWZXJzaW9uOiAgICAgMS45LjMKICogQXV0aG9yOiAgICAgIEFsbGFuIEphcmRpbmUgKHd3dy5zcHJ5bWVkaWEuY28udWspCiAqIEluZm86ICAgICAgICB3d3cuZGF0YXRhYmxlcy5uZXQKICogCiAqIENvcHlyaWdodCAyMDA4LTIwMTIgQWxsYW4gSmFyZGluZSwgYWxsIHJpZ2h0cyByZXNlcnZlZC4KICoKICogVGhpcyBzb3VyY2UgZmlsZSBpcyBmcmVlIHNvZnR3YXJlLCB1bmRlciBlaXRoZXIgdGhlIEdQTCB2MiBsaWNlbnNlIG9yIGEKICogQlNEIHN0eWxlIGxpY2Vuc2UsIGF2YWlsYWJsZSBhdDoKICogICBodHRwOi8vZGF0YXRhYmxlcy5uZXQvbGljZW5zZV9ncGwyCiAqICAgaHR0cDovL2RhdGF0YWJsZXMubmV0L2xpY2Vuc2VfYnNkCiAqIAogKiBUaGlzIHNvdXJjZSBmaWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCAKICogV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgCiAqIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIGxpY2Vuc2UgZmlsZXMgZm9yIGRldGFpbHMuCiAqLwooZnVuY3Rpb24oaSxPLGwsbil7dmFyIGo9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gbyhhLGIpe3ZhciBjPWouZGVmYXVsdHMuY29sdW1ucyxkPWEuYW9Db2x1bW5zLmxlbmd0aCxjPWkuZXh0ZW5kKHt9LGoubW9kZWxzLm9Db2x1bW4sYyx7c1NvcnRpbmdDbGFzczphLm9DbGFzc2VzLnNTb3J0YWJsZSxzU29ydGluZ0NsYXNzSlVJOmEub0NsYXNzZXMuc1NvcnRKVUksblRoOmI/YjpsLmNyZWF0ZUVsZW1lbnQoInRoIiksc1RpdGxlOmMuc1RpdGxlP2Muc1RpdGxlOmI/Yi5pbm5lckhUTUw6IiIsYURhdGFTb3J0OmMuYURhdGFTb3J0P2MuYURhdGFTb3J0OltkXSxtRGF0YTpjLm1EYXRhP2Mub0RlZmF1bHRzOmR9KTthLmFvQ29sdW1ucy5wdXNoKGMpO2lmKGEuYW9QcmVTZWFyY2hDb2xzW2RdPT09bnx8bnVsbD09PWEuYW9QcmVTZWFyY2hDb2xzW2RdKWEuYW9QcmVTZWFyY2hDb2xzW2RdPWkuZXh0ZW5kKHt9LGoubW9kZWxzLm9TZWFyY2gpO2Vsc2UgaWYoYz1hLmFvUHJlU2VhcmNoQ29sc1tkXSwKYy5iUmVnZXg9PT1uJiYoYy5iUmVnZXg9ITApLGMuYlNtYXJ0PT09biYmKGMuYlNtYXJ0PSEwKSxjLmJDYXNlSW5zZW5zaXRpdmU9PT1uKWMuYkNhc2VJbnNlbnNpdGl2ZT0hMDtyKGEsZCxudWxsKX1mdW5jdGlvbiByKGEsYixjKXt2YXIgZD1hLmFvQ29sdW1uc1tiXTtjIT09biYmbnVsbCE9PWMmJihjLm1EYXRhUHJvcCYmIWMubURhdGEmJihjLm1EYXRhPWMubURhdGFQcm9wKSxjLnNUeXBlIT09biYmKGQuc1R5cGU9Yy5zVHlwZSxkLl9iQXV0b1R5cGU9ITEpLGkuZXh0ZW5kKGQsYykscChkLGMsInNXaWR0aCIsInNXaWR0aE9yaWciKSxjLmlEYXRhU29ydCE9PW4mJihkLmFEYXRhU29ydD1bYy5pRGF0YVNvcnRdKSxwKGQsYywiYURhdGFTb3J0IikpO3ZhciBoPWQubVJlbmRlcj9TKGQubVJlbmRlcik6bnVsbCxmPVMoZC5tRGF0YSk7ZC5mbkdldERhdGE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1mKGEsYik7cmV0dXJuIGQubVJlbmRlciYmYiYmIiIhPT1iP2goYyxiLGEpOmN9O2QuZm5TZXREYXRhPQp0YShkLm1EYXRhKTthLm9GZWF0dXJlcy5iU29ydHx8KGQuYlNvcnRhYmxlPSExKTshZC5iU29ydGFibGV8fC0xPT1pLmluQXJyYXkoImFzYyIsZC5hc1NvcnRpbmcpJiYtMT09aS5pbkFycmF5KCJkZXNjIixkLmFzU29ydGluZyk/KGQuc1NvcnRpbmdDbGFzcz1hLm9DbGFzc2VzLnNTb3J0YWJsZU5vbmUsZC5zU29ydGluZ0NsYXNzSlVJPSIiKTpkLmJTb3J0YWJsZXx8LTE9PWkuaW5BcnJheSgiYXNjIixkLmFzU29ydGluZykmJi0xPT1pLmluQXJyYXkoImRlc2MiLGQuYXNTb3J0aW5nKT8oZC5zU29ydGluZ0NsYXNzPWEub0NsYXNzZXMuc1NvcnRhYmxlLGQuc1NvcnRpbmdDbGFzc0pVST1hLm9DbGFzc2VzLnNTb3J0SlVJKTotMSE9aS5pbkFycmF5KCJhc2MiLGQuYXNTb3J0aW5nKSYmLTE9PWkuaW5BcnJheSgiZGVzYyIsZC5hc1NvcnRpbmcpPyhkLnNTb3J0aW5nQ2xhc3M9YS5vQ2xhc3Nlcy5zU29ydGFibGVBc2MsZC5zU29ydGluZ0NsYXNzSlVJPWEub0NsYXNzZXMuc1NvcnRKVUlBc2NBbGxvd2VkKToKLTE9PWkuaW5BcnJheSgiYXNjIixkLmFzU29ydGluZykmJi0xIT1pLmluQXJyYXkoImRlc2MiLGQuYXNTb3J0aW5nKSYmKGQuc1NvcnRpbmdDbGFzcz1hLm9DbGFzc2VzLnNTb3J0YWJsZURlc2MsZC5zU29ydGluZ0NsYXNzSlVJPWEub0NsYXNzZXMuc1NvcnRKVUlEZXNjQWxsb3dlZCl9ZnVuY3Rpb24gayhhKXtpZighMT09PWEub0ZlYXR1cmVzLmJBdXRvV2lkdGgpcmV0dXJuITE7Y2EoYSk7Zm9yKHZhciBiPTAsYz1hLmFvQ29sdW1ucy5sZW5ndGg7YjxjO2IrKylhLmFvQ29sdW1uc1tiXS5uVGguc3R5bGUud2lkdGg9YS5hb0NvbHVtbnNbYl0uc1dpZHRofWZ1bmN0aW9uIEcoYSxiKXt2YXIgYz12KGEsImJWaXNpYmxlIik7cmV0dXJuIm51bWJlciI9PT10eXBlb2YgY1tiXT9jW2JdOm51bGx9ZnVuY3Rpb24gdChhLGIpe3ZhciBjPXYoYSwiYlZpc2libGUiKSxjPWkuaW5BcnJheShiLGMpO3JldHVybi0xIT09Yz9jOm51bGx9ZnVuY3Rpb24gdyhhKXtyZXR1cm4gdihhLCJiVmlzaWJsZSIpLmxlbmd0aH0KZnVuY3Rpb24gdihhLGIpe3ZhciBjPVtdO2kubWFwKGEuYW9Db2x1bW5zLGZ1bmN0aW9uKGEsaCl7YVtiXSYmYy5wdXNoKGgpfSk7cmV0dXJuIGN9ZnVuY3Rpb24gRChhKXtmb3IodmFyIGI9ai5leHQuYVR5cGVzLGM9Yi5sZW5ndGgsZD0wO2Q8YztkKyspe3ZhciBoPWJbZF0oYSk7aWYobnVsbCE9PWgpcmV0dXJuIGh9cmV0dXJuInN0cmluZyJ9ZnVuY3Rpb24geShhLGIpe2Zvcih2YXIgYz1iLnNwbGl0KCIsIiksZD1bXSxoPTAsZj1hLmFvQ29sdW1ucy5sZW5ndGg7aDxmO2grKylmb3IodmFyIGc9MDtnPGY7ZysrKWlmKGEuYW9Db2x1bW5zW2hdLnNOYW1lPT1jW2ddKXtkLnB1c2goZyk7YnJlYWt9cmV0dXJuIGR9ZnVuY3Rpb24gSChhKXtmb3IodmFyIGI9IiIsYz0wLGQ9YS5hb0NvbHVtbnMubGVuZ3RoO2M8ZDtjKyspYis9YS5hb0NvbHVtbnNbY10uc05hbWUrIiwiO3JldHVybiBiLmxlbmd0aD09ZD8iIjpiLnNsaWNlKDAsLTEpfWZ1bmN0aW9uIHVhKGEsYixjLGQpe3ZhciBoLGYsCmcsZSxzO2lmKGIpZm9yKGg9Yi5sZW5ndGgtMTswPD1oO2gtLSl7dmFyIG09YltoXS5hVGFyZ2V0cztpLmlzQXJyYXkobSl8fEUoYSwxLCJhVGFyZ2V0cyBtdXN0IGJlIGFuIGFycmF5IG9mIHRhcmdldHMsIG5vdCBhICIrdHlwZW9mIG0pO2Y9MDtmb3IoZz1tLmxlbmd0aDtmPGc7ZisrKWlmKCJudW1iZXIiPT09dHlwZW9mIG1bZl0mJjA8PW1bZl0pe2Zvcig7YS5hb0NvbHVtbnMubGVuZ3RoPD1tW2ZdOylvKGEpO2QobVtmXSxiW2hdKX1lbHNlIGlmKCJudW1iZXIiPT09dHlwZW9mIG1bZl0mJjA+bVtmXSlkKGEuYW9Db2x1bW5zLmxlbmd0aCttW2ZdLGJbaF0pO2Vsc2UgaWYoInN0cmluZyI9PT10eXBlb2YgbVtmXSl7ZT0wO2ZvcihzPWEuYW9Db2x1bW5zLmxlbmd0aDtlPHM7ZSsrKSgiX2FsbCI9PW1bZl18fGkoYS5hb0NvbHVtbnNbZV0ublRoKS5oYXNDbGFzcyhtW2ZdKSkmJmQoZSxiW2hdKX19aWYoYyl7aD0wO2ZvcihhPWMubGVuZ3RoO2g8YTtoKyspZChoLGNbaF0pfX1mdW5jdGlvbiBKKGEsCmIpe3ZhciBjO2M9aS5pc0FycmF5KGIpP2Iuc2xpY2UoKTppLmV4dGVuZCghMCx7fSxiKTt2YXIgZD1hLmFvRGF0YS5sZW5ndGgsaD1pLmV4dGVuZCghMCx7fSxqLm1vZGVscy5vUm93KTtoLl9hRGF0YT1jO2EuYW9EYXRhLnB1c2goaCk7Zm9yKHZhciBmLGg9MCxnPWEuYW9Db2x1bW5zLmxlbmd0aDtoPGc7aCsrKWM9YS5hb0NvbHVtbnNbaF0sImZ1bmN0aW9uIj09PXR5cGVvZiBjLmZuUmVuZGVyJiZjLmJVc2VSZW5kZXJlZCYmbnVsbCE9PWMubURhdGE/SShhLGQsaCxUKGEsZCxoKSk6SShhLGQsaCx4KGEsZCxoKSksYy5fYkF1dG9UeXBlJiYic3RyaW5nIiE9Yy5zVHlwZSYmKGY9eChhLGQsaCwidHlwZSIpLG51bGwhPT1mJiYiIiE9PWYmJihmPUQoZiksbnVsbD09PWMuc1R5cGU/Yy5zVHlwZT1mOmMuc1R5cGUhPWYmJiJodG1sIiE9Yy5zVHlwZSYmKGMuc1R5cGU9InN0cmluZyIpKSk7YS5haURpc3BsYXlNYXN0ZXIucHVzaChkKTthLm9GZWF0dXJlcy5iRGVmZXJSZW5kZXJ8fGRhKGEsCmQpO3JldHVybiBkfWZ1bmN0aW9uIHZhKGEpe3ZhciBiLGMsZCxoLGYsZyxlLHMsbTtpZihhLmJEZWZlckxvYWRpbmd8fG51bGw9PT1hLnNBamF4U291cmNlKXtlPWEublRCb2R5LmNoaWxkTm9kZXM7Yj0wO2ZvcihjPWUubGVuZ3RoO2I8YztiKyspaWYoIlRSIj09ZVtiXS5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpKXtzPWEuYW9EYXRhLmxlbmd0aDtlW2JdLl9EVF9Sb3dJbmRleD1zO2EuYW9EYXRhLnB1c2goaS5leHRlbmQoITAse30sai5tb2RlbHMub1Jvdyx7blRyOmVbYl19KSk7YS5haURpc3BsYXlNYXN0ZXIucHVzaChzKTtnPWVbYl0uY2hpbGROb2RlcztkPWY9MDtmb3IoaD1nLmxlbmd0aDtkPGg7ZCsrKWlmKG09Z1tkXS5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpLCJURCI9PW18fCJUSCI9PW0pSShhLHMsZixpLnRyaW0oZ1tkXS5pbm5lckhUTUwpKSxmKyt9fWU9VShhKTtnPVtdO2I9MDtmb3IoYz1lLmxlbmd0aDtiPGM7YisrKXtkPTA7Zm9yKGg9ZVtiXS5jaGlsZE5vZGVzLmxlbmd0aDtkPApoO2QrKylmPWVbYl0uY2hpbGROb2Rlc1tkXSxtPWYubm9kZU5hbWUudG9VcHBlckNhc2UoKSwoIlREIj09bXx8IlRIIj09bSkmJmcucHVzaChmKX1oPTA7Zm9yKGU9YS5hb0NvbHVtbnMubGVuZ3RoO2g8ZTtoKyspe209YS5hb0NvbHVtbnNbaF07bnVsbD09PW0uc1RpdGxlJiYobS5zVGl0bGU9bS5uVGguaW5uZXJIVE1MKTtmPW0uX2JBdXRvVHlwZTtzPSJmdW5jdGlvbiI9PT10eXBlb2YgbS5mblJlbmRlcjt2YXIgbz1udWxsIT09bS5zQ2xhc3Msaz1tLmJWaXNpYmxlLHIsbjtpZihmfHxzfHxvfHwhayl7Yj0wO2ZvcihjPWEuYW9EYXRhLmxlbmd0aDtiPGM7YisrKWQ9YS5hb0RhdGFbYl0scj1nW2IqZStoXSxmJiYic3RyaW5nIiE9bS5zVHlwZSYmKG49eChhLGIsaCwidHlwZSIpLCIiIT09biYmKG49RChuKSxudWxsPT09bS5zVHlwZT9tLnNUeXBlPW46bS5zVHlwZSE9biYmImh0bWwiIT1tLnNUeXBlJiYobS5zVHlwZT0ic3RyaW5nIikpKSwiZnVuY3Rpb24iPT09dHlwZW9mIG0ubURhdGEmJgooci5pbm5lckhUTUw9eChhLGIsaCwiZGlzcGxheSIpKSxzJiYobj1UKGEsYixoKSxyLmlubmVySFRNTD1uLG0uYlVzZVJlbmRlcmVkJiZJKGEsYixoLG4pKSxvJiYoci5jbGFzc05hbWUrPSIgIittLnNDbGFzcyksaz9kLl9hbkhpZGRlbltoXT1udWxsOihkLl9hbkhpZGRlbltoXT1yLHIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChyKSksbS5mbkNyZWF0ZWRDZWxsJiZtLmZuQ3JlYXRlZENlbGwuY2FsbChhLm9JbnN0YW5jZSxyLHgoYSxiLGgsImRpc3BsYXkiKSxkLl9hRGF0YSxiLGgpfX1pZigwIT09YS5hb1Jvd0NyZWF0ZWRDYWxsYmFjay5sZW5ndGgpe2I9MDtmb3IoYz1hLmFvRGF0YS5sZW5ndGg7YjxjO2IrKylkPWEuYW9EYXRhW2JdLEMoYSwiYW9Sb3dDcmVhdGVkQ2FsbGJhY2siLG51bGwsW2QublRyLGQuX2FEYXRhLGJdKX19ZnVuY3Rpb24gSyhhLGIpe3JldHVybiBiLl9EVF9Sb3dJbmRleCE9PW4/Yi5fRFRfUm93SW5kZXg6bnVsbH1mdW5jdGlvbiBlYShhLGIsYyl7Zm9yKHZhciBiPQpMKGEsYiksZD0wLGE9YS5hb0NvbHVtbnMubGVuZ3RoO2Q8YTtkKyspaWYoYltkXT09PWMpcmV0dXJuIGQ7cmV0dXJuLTF9ZnVuY3Rpb24gWShhLGIsYyxkKXtmb3IodmFyIGg9W10sZj0wLGc9ZC5sZW5ndGg7ZjxnO2YrKyloLnB1c2goeChhLGIsZFtmXSxjKSk7cmV0dXJuIGh9ZnVuY3Rpb24geChhLGIsYyxkKXt2YXIgaD1hLmFvQ29sdW1uc1tjXTtpZigoYz1oLmZuR2V0RGF0YShhLmFvRGF0YVtiXS5fYURhdGEsZCkpPT09bilyZXR1cm4gYS5pRHJhd0Vycm9yIT1hLmlEcmF3JiZudWxsPT09aC5zRGVmYXVsdENvbnRlbnQmJihFKGEsMCwiUmVxdWVzdGVkIHVua25vd24gcGFyYW1ldGVyICIrKCJmdW5jdGlvbiI9PXR5cGVvZiBoLm1EYXRhPyJ7bURhdGEgZnVuY3Rpb259IjoiJyIraC5tRGF0YSsiJyIpKyIgZnJvbSB0aGUgZGF0YSBzb3VyY2UgZm9yIHJvdyAiK2IpLGEuaURyYXdFcnJvcj1hLmlEcmF3KSxoLnNEZWZhdWx0Q29udGVudDtpZihudWxsPT09YyYmbnVsbCE9PWguc0RlZmF1bHRDb250ZW50KWM9Cmguc0RlZmF1bHRDb250ZW50O2Vsc2UgaWYoImZ1bmN0aW9uIj09PXR5cGVvZiBjKXJldHVybiBjKCk7cmV0dXJuImRpc3BsYXkiPT1kJiZudWxsPT09Yz8iIjpjfWZ1bmN0aW9uIEkoYSxiLGMsZCl7YS5hb0NvbHVtbnNbY10uZm5TZXREYXRhKGEuYW9EYXRhW2JdLl9hRGF0YSxkKX1mdW5jdGlvbiBTKGEpe2lmKG51bGw9PT1hKXJldHVybiBmdW5jdGlvbigpe3JldHVybiBudWxsfTtpZigiZnVuY3Rpb24iPT09dHlwZW9mIGEpcmV0dXJuIGZ1bmN0aW9uKGIsZCxoKXtyZXR1cm4gYShiLGQsaCl9O2lmKCJzdHJpbmciPT09dHlwZW9mIGEmJigtMSE9PWEuaW5kZXhPZigiLiIpfHwtMSE9PWEuaW5kZXhPZigiWyIpKSl7dmFyIGI9ZnVuY3Rpb24oYSxkLGgpe3ZhciBmPWguc3BsaXQoIi4iKSxnO2lmKCIiIT09aCl7dmFyIGU9MDtmb3IoZz1mLmxlbmd0aDtlPGc7ZSsrKXtpZihoPWZbZV0ubWF0Y2goVikpe2ZbZV09ZltlXS5yZXBsYWNlKFYsIiIpOyIiIT09ZltlXSYmKGE9YVtmW2VdXSk7Cmc9W107Zi5zcGxpY2UoMCxlKzEpO2Zvcih2YXIgZj1mLmpvaW4oIi4iKSxlPTAsaT1hLmxlbmd0aDtlPGk7ZSsrKWcucHVzaChiKGFbZV0sZCxmKSk7YT1oWzBdLnN1YnN0cmluZygxLGhbMF0ubGVuZ3RoLTEpO2E9IiI9PT1hP2c6Zy5qb2luKGEpO2JyZWFrfWlmKG51bGw9PT1hfHxhW2ZbZV1dPT09bilyZXR1cm4gbjthPWFbZltlXV19fXJldHVybiBhfTtyZXR1cm4gZnVuY3Rpb24oYyxkKXtyZXR1cm4gYihjLGQsYSl9fXJldHVybiBmdW5jdGlvbihiKXtyZXR1cm4gYlthXX19ZnVuY3Rpb24gdGEoYSl7aWYobnVsbD09PWEpcmV0dXJuIGZ1bmN0aW9uKCl7fTtpZigiZnVuY3Rpb24iPT09dHlwZW9mIGEpcmV0dXJuIGZ1bmN0aW9uKGIsZCl7YShiLCJzZXQiLGQpfTtpZigic3RyaW5nIj09PXR5cGVvZiBhJiYoLTEhPT1hLmluZGV4T2YoIi4iKXx8LTEhPT1hLmluZGV4T2YoIlsiKSkpe3ZhciBiPWZ1bmN0aW9uKGEsZCxoKXt2YXIgaD1oLnNwbGl0KCIuIiksZixnLGU9MDtmb3IoZz0KaC5sZW5ndGgtMTtlPGc7ZSsrKXtpZihmPWhbZV0ubWF0Y2goVikpe2hbZV09aFtlXS5yZXBsYWNlKFYsIiIpO2FbaFtlXV09W107Zj1oLnNsaWNlKCk7Zi5zcGxpY2UoMCxlKzEpO2c9Zi5qb2luKCIuIik7Zm9yKHZhciBpPTAsbT1kLmxlbmd0aDtpPG07aSsrKWY9e30sYihmLGRbaV0sZyksYVtoW2VdXS5wdXNoKGYpO3JldHVybn1pZihudWxsPT09YVtoW2VdXXx8YVtoW2VdXT09PW4pYVtoW2VdXT17fTthPWFbaFtlXV19YVtoW2gubGVuZ3RoLTFdLnJlcGxhY2UoViwiIildPWR9O3JldHVybiBmdW5jdGlvbihjLGQpe3JldHVybiBiKGMsZCxhKX19cmV0dXJuIGZ1bmN0aW9uKGIsZCl7YlthXT1kfX1mdW5jdGlvbiBaKGEpe2Zvcih2YXIgYj1bXSxjPWEuYW9EYXRhLmxlbmd0aCxkPTA7ZDxjO2QrKyliLnB1c2goYS5hb0RhdGFbZF0uX2FEYXRhKTtyZXR1cm4gYn1mdW5jdGlvbiBmYShhKXthLmFvRGF0YS5zcGxpY2UoMCxhLmFvRGF0YS5sZW5ndGgpO2EuYWlEaXNwbGF5TWFzdGVyLnNwbGljZSgwLAphLmFpRGlzcGxheU1hc3Rlci5sZW5ndGgpO2EuYWlEaXNwbGF5LnNwbGljZSgwLGEuYWlEaXNwbGF5Lmxlbmd0aCk7QShhKX1mdW5jdGlvbiBnYShhLGIpe2Zvcih2YXIgYz0tMSxkPTAsaD1hLmxlbmd0aDtkPGg7ZCsrKWFbZF09PWI/Yz1kOmFbZF0+YiYmYVtkXS0tOyAtMSE9YyYmYS5zcGxpY2UoYywxKX1mdW5jdGlvbiBUKGEsYixjKXt2YXIgZD1hLmFvQ29sdW1uc1tjXTtyZXR1cm4gZC5mblJlbmRlcih7aURhdGFSb3c6YixpRGF0YUNvbHVtbjpjLG9TZXR0aW5nczphLGFEYXRhOmEuYW9EYXRhW2JdLl9hRGF0YSxtRGF0YVByb3A6ZC5tRGF0YX0seChhLGIsYywiZGlzcGxheSIpKX1mdW5jdGlvbiBkYShhLGIpe3ZhciBjPWEuYW9EYXRhW2JdLGQ7aWYobnVsbD09PWMublRyKXtjLm5Ucj1sLmNyZWF0ZUVsZW1lbnQoInRyIik7Yy5uVHIuX0RUX1Jvd0luZGV4PWI7Yy5fYURhdGEuRFRfUm93SWQmJihjLm5Uci5pZD1jLl9hRGF0YS5EVF9Sb3dJZCk7Yy5fYURhdGEuRFRfUm93Q2xhc3MmJgppKGMublRyKS5hZGRDbGFzcyhjLl9hRGF0YS5EVF9Sb3dDbGFzcyk7Zm9yKHZhciBoPTAsZj1hLmFvQ29sdW1ucy5sZW5ndGg7aDxmO2grKyl7dmFyIGc9YS5hb0NvbHVtbnNbaF07ZD1sLmNyZWF0ZUVsZW1lbnQoZy5zQ2VsbFR5cGUpO2QuaW5uZXJIVE1MPSJmdW5jdGlvbiI9PT10eXBlb2YgZy5mblJlbmRlciYmKCFnLmJVc2VSZW5kZXJlZHx8bnVsbD09PWcubURhdGEpP1QoYSxiLGgpOngoYSxiLGgsImRpc3BsYXkiKTtudWxsIT09Zy5zQ2xhc3MmJihkLmNsYXNzTmFtZT1nLnNDbGFzcyk7Zy5iVmlzaWJsZT8oYy5uVHIuYXBwZW5kQ2hpbGQoZCksYy5fYW5IaWRkZW5baF09bnVsbCk6Yy5fYW5IaWRkZW5baF09ZDtnLmZuQ3JlYXRlZENlbGwmJmcuZm5DcmVhdGVkQ2VsbC5jYWxsKGEub0luc3RhbmNlLGQseChhLGIsaCwiZGlzcGxheSIpLGMuX2FEYXRhLGIsaCl9QyhhLCJhb1Jvd0NyZWF0ZWRDYWxsYmFjayIsbnVsbCxbYy5uVHIsYy5fYURhdGEsYl0pfX1mdW5jdGlvbiB3YShhKXt2YXIgYiwKYyxkO2lmKDAhPT1hLm5USGVhZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGgiKS5sZW5ndGgpe2I9MDtmb3IoZD1hLmFvQ29sdW1ucy5sZW5ndGg7YjxkO2IrKylpZihjPWEuYW9Db2x1bW5zW2JdLm5UaCxjLnNldEF0dHJpYnV0ZSgicm9sZSIsImNvbHVtbmhlYWRlciIpLGEuYW9Db2x1bW5zW2JdLmJTb3J0YWJsZSYmKGMuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsYS5pVGFiSW5kZXgpLGMuc2V0QXR0cmlidXRlKCJhcmlhLWNvbnRyb2xzIixhLnNUYWJsZUlkKSksbnVsbCE9PWEuYW9Db2x1bW5zW2JdLnNDbGFzcyYmaShjKS5hZGRDbGFzcyhhLmFvQ29sdW1uc1tiXS5zQ2xhc3MpLGEuYW9Db2x1bW5zW2JdLnNUaXRsZSE9Yy5pbm5lckhUTUwpYy5pbm5lckhUTUw9YS5hb0NvbHVtbnNbYl0uc1RpdGxlfWVsc2V7dmFyIGg9bC5jcmVhdGVFbGVtZW50KCJ0ciIpO2I9MDtmb3IoZD1hLmFvQ29sdW1ucy5sZW5ndGg7YjxkO2IrKyljPWEuYW9Db2x1bW5zW2JdLm5UaCxjLmlubmVySFRNTD0KYS5hb0NvbHVtbnNbYl0uc1RpdGxlLGMuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIjAiKSxudWxsIT09YS5hb0NvbHVtbnNbYl0uc0NsYXNzJiZpKGMpLmFkZENsYXNzKGEuYW9Db2x1bW5zW2JdLnNDbGFzcyksaC5hcHBlbmRDaGlsZChjKTtpKGEublRIZWFkKS5odG1sKCIiKVswXS5hcHBlbmRDaGlsZChoKTtXKGEuYW9IZWFkZXIsYS5uVEhlYWQpfWkoYS5uVEhlYWQpLmNoaWxkcmVuKCJ0ciIpLmF0dHIoInJvbGUiLCJyb3ciKTtpZihhLmJKVUkpe2I9MDtmb3IoZD1hLmFvQ29sdW1ucy5sZW5ndGg7YjxkO2IrKyl7Yz1hLmFvQ29sdW1uc1tiXS5uVGg7aD1sLmNyZWF0ZUVsZW1lbnQoImRpdiIpO2guY2xhc3NOYW1lPWEub0NsYXNzZXMuc1NvcnRKVUlXcmFwcGVyO2koYykuY29udGVudHMoKS5hcHBlbmRUbyhoKTt2YXIgZj1sLmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtmLmNsYXNzTmFtZT1hLm9DbGFzc2VzLnNTb3J0SWNvbjtoLmFwcGVuZENoaWxkKGYpO2MuYXBwZW5kQ2hpbGQoaCl9fWlmKGEub0ZlYXR1cmVzLmJTb3J0KWZvcihiPQowO2I8YS5hb0NvbHVtbnMubGVuZ3RoO2IrKykhMSE9PWEuYW9Db2x1bW5zW2JdLmJTb3J0YWJsZT9oYShhLGEuYW9Db2x1bW5zW2JdLm5UaCxiKTppKGEuYW9Db2x1bW5zW2JdLm5UaCkuYWRkQ2xhc3MoYS5vQ2xhc3Nlcy5zU29ydGFibGVOb25lKTsiIiE9PWEub0NsYXNzZXMuc0Zvb3RlclRIJiZpKGEublRGb290KS5jaGlsZHJlbigidHIiKS5jaGlsZHJlbigidGgiKS5hZGRDbGFzcyhhLm9DbGFzc2VzLnNGb290ZXJUSCk7aWYobnVsbCE9PWEublRGb290KXtjPVAoYSxudWxsLGEuYW9Gb290ZXIpO2I9MDtmb3IoZD1hLmFvQ29sdW1ucy5sZW5ndGg7YjxkO2IrKyljW2JdJiYoYS5hb0NvbHVtbnNbYl0ublRmPWNbYl0sYS5hb0NvbHVtbnNbYl0uc0NsYXNzJiZpKGNbYl0pLmFkZENsYXNzKGEuYW9Db2x1bW5zW2JdLnNDbGFzcykpfX1mdW5jdGlvbiBYKGEsYixjKXt2YXIgZCxoLGYsZz1bXSxlPVtdLGk9YS5hb0NvbHVtbnMubGVuZ3RoLG07Yz09PW4mJihjPSExKTtkPTA7Zm9yKGg9CmIubGVuZ3RoO2Q8aDtkKyspe2dbZF09YltkXS5zbGljZSgpO2dbZF0ublRyPWJbZF0ublRyO2ZvcihmPWktMTswPD1mO2YtLSkhYS5hb0NvbHVtbnNbZl0uYlZpc2libGUmJiFjJiZnW2RdLnNwbGljZShmLDEpO2UucHVzaChbXSl9ZD0wO2ZvcihoPWcubGVuZ3RoO2Q8aDtkKyspe2lmKGE9Z1tkXS5uVHIpZm9yKDtmPWEuZmlyc3RDaGlsZDspYS5yZW1vdmVDaGlsZChmKTtmPTA7Zm9yKGI9Z1tkXS5sZW5ndGg7ZjxiO2YrKylpZihtPWk9MSxlW2RdW2ZdPT09bil7YS5hcHBlbmRDaGlsZChnW2RdW2ZdLmNlbGwpO2ZvcihlW2RdW2ZdPTE7Z1tkK2ldIT09biYmZ1tkXVtmXS5jZWxsPT1nW2QraV1bZl0uY2VsbDspZVtkK2ldW2ZdPTEsaSsrO2Zvcig7Z1tkXVtmK21dIT09biYmZ1tkXVtmXS5jZWxsPT1nW2RdW2YrbV0uY2VsbDspe2ZvcihjPTA7YzxpO2MrKyllW2QrY11bZittXT0xO20rK31nW2RdW2ZdLmNlbGwucm93U3Bhbj1pO2dbZF1bZl0uY2VsbC5jb2xTcGFuPW19fX1mdW5jdGlvbiB6KGEpe3ZhciBiPQpDKGEsImFvUHJlRHJhd0NhbGxiYWNrIiwicHJlRHJhdyIsW2FdKTtpZigtMSE9PWkuaW5BcnJheSghMSxiKSlGKGEsITEpO2Vsc2V7dmFyIGMsZCxiPVtdLGg9MCxmPWEuYXNTdHJpcGVDbGFzc2VzLmxlbmd0aDtjPWEuYW9PcGVuUm93cy5sZW5ndGg7YS5iRHJhd2luZz0hMDthLmlJbml0RGlzcGxheVN0YXJ0IT09biYmLTEhPWEuaUluaXREaXNwbGF5U3RhcnQmJihhLl9pRGlzcGxheVN0YXJ0PWEub0ZlYXR1cmVzLmJTZXJ2ZXJTaWRlP2EuaUluaXREaXNwbGF5U3RhcnQ6YS5pSW5pdERpc3BsYXlTdGFydD49YS5mblJlY29yZHNEaXNwbGF5KCk/MDphLmlJbml0RGlzcGxheVN0YXJ0LGEuaUluaXREaXNwbGF5U3RhcnQ9LTEsQShhKSk7aWYoYS5iRGVmZXJMb2FkaW5nKWEuYkRlZmVyTG9hZGluZz0hMSxhLmlEcmF3Kys7ZWxzZSBpZihhLm9GZWF0dXJlcy5iU2VydmVyU2lkZSl7aWYoIWEuYkRlc3Ryb3lpbmcmJiF4YShhKSlyZXR1cm59ZWxzZSBhLmlEcmF3Kys7aWYoMCE9PWEuYWlEaXNwbGF5Lmxlbmd0aCl7dmFyIGc9CmEuX2lEaXNwbGF5U3RhcnQ7ZD1hLl9pRGlzcGxheUVuZDthLm9GZWF0dXJlcy5iU2VydmVyU2lkZSYmKGc9MCxkPWEuYW9EYXRhLmxlbmd0aCk7Zm9yKDtnPGQ7ZysrKXt2YXIgZT1hLmFvRGF0YVthLmFpRGlzcGxheVtnXV07bnVsbD09PWUublRyJiZkYShhLGEuYWlEaXNwbGF5W2ddKTt2YXIgcz1lLm5UcjtpZigwIT09Zil7dmFyIG09YS5hc1N0cmlwZUNsYXNzZXNbaCVmXTtlLl9zUm93U3RyaXBlIT1tJiYoaShzKS5yZW1vdmVDbGFzcyhlLl9zUm93U3RyaXBlKS5hZGRDbGFzcyhtKSxlLl9zUm93U3RyaXBlPW0pfUMoYSwiYW9Sb3dDYWxsYmFjayIsbnVsbCxbcyxhLmFvRGF0YVthLmFpRGlzcGxheVtnXV0uX2FEYXRhLGgsZ10pO2IucHVzaChzKTtoKys7aWYoMCE9PWMpZm9yKGU9MDtlPGM7ZSsrKWlmKHM9PWEuYW9PcGVuUm93c1tlXS5uUGFyZW50KXtiLnB1c2goYS5hb09wZW5Sb3dzW2VdLm5Ucik7YnJlYWt9fX1lbHNlIGJbMF09bC5jcmVhdGVFbGVtZW50KCJ0ciIpLGEuYXNTdHJpcGVDbGFzc2VzWzBdJiYKKGJbMF0uY2xhc3NOYW1lPWEuYXNTdHJpcGVDbGFzc2VzWzBdKSxjPWEub0xhbmd1YWdlLGY9Yy5zWmVyb1JlY29yZHMsMT09YS5pRHJhdyYmbnVsbCE9PWEuc0FqYXhTb3VyY2UmJiFhLm9GZWF0dXJlcy5iU2VydmVyU2lkZT9mPWMuc0xvYWRpbmdSZWNvcmRzOmMuc0VtcHR5VGFibGUmJjA9PT1hLmZuUmVjb3Jkc1RvdGFsKCkmJihmPWMuc0VtcHR5VGFibGUpLGM9bC5jcmVhdGVFbGVtZW50KCJ0ZCIpLGMuc2V0QXR0cmlidXRlKCJ2YWxpZ24iLCJ0b3AiKSxjLmNvbFNwYW49dyhhKSxjLmNsYXNzTmFtZT1hLm9DbGFzc2VzLnNSb3dFbXB0eSxjLmlubmVySFRNTD1pYShhLGYpLGJbaF0uYXBwZW5kQ2hpbGQoYyk7QyhhLCJhb0hlYWRlckNhbGxiYWNrIiwiaGVhZGVyIixbaShhLm5USGVhZCkuY2hpbGRyZW4oInRyIilbMF0sWihhKSxhLl9pRGlzcGxheVN0YXJ0LGEuZm5EaXNwbGF5RW5kKCksYS5haURpc3BsYXldKTtDKGEsImFvRm9vdGVyQ2FsbGJhY2siLCJmb290ZXIiLFtpKGEublRGb290KS5jaGlsZHJlbigidHIiKVswXSwKWihhKSxhLl9pRGlzcGxheVN0YXJ0LGEuZm5EaXNwbGF5RW5kKCksYS5haURpc3BsYXldKTtoPWwuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO2M9bC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7aWYoYS5uVEJvZHkpe2Y9YS5uVEJvZHkucGFyZW50Tm9kZTtjLmFwcGVuZENoaWxkKGEublRCb2R5KTtpZighYS5vU2Nyb2xsLmJJbmZpbml0ZXx8IWEuX2JJbml0Q29tcGxldGV8fGEuYlNvcnRlZHx8YS5iRmlsdGVyZWQpZm9yKDtjPWEublRCb2R5LmZpcnN0Q2hpbGQ7KWEublRCb2R5LnJlbW92ZUNoaWxkKGMpO2M9MDtmb3IoZD1iLmxlbmd0aDtjPGQ7YysrKWguYXBwZW5kQ2hpbGQoYltjXSk7YS5uVEJvZHkuYXBwZW5kQ2hpbGQoaCk7bnVsbCE9PWYmJmYuYXBwZW5kQ2hpbGQoYS5uVEJvZHkpfUMoYSwiYW9EcmF3Q2FsbGJhY2siLCJkcmF3IixbYV0pO2EuYlNvcnRlZD0hMTthLmJGaWx0ZXJlZD0hMTthLmJEcmF3aW5nPSExO2Eub0ZlYXR1cmVzLmJTZXJ2ZXJTaWRlJiYoRihhLCExKSwKYS5fYkluaXRDb21wbGV0ZXx8JChhKSl9fWZ1bmN0aW9uIGFhKGEpe2Eub0ZlYXR1cmVzLmJTb3J0P1EoYSxhLm9QcmV2aW91c1NlYXJjaCk6YS5vRmVhdHVyZXMuYkZpbHRlcj9NKGEsYS5vUHJldmlvdXNTZWFyY2gpOihBKGEpLHooYSkpfWZ1bmN0aW9uIHlhKGEpe3ZhciBiPWkoIjxkaXY+PC9kaXY+IilbMF07YS5uVGFibGUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYixhLm5UYWJsZSk7YS5uVGFibGVXcmFwcGVyPWkoJzxkaXYgaWQ9IicrYS5zVGFibGVJZCsnX3dyYXBwZXIiIGNsYXNzPSInK2Eub0NsYXNzZXMuc1dyYXBwZXIrJyIgcm9sZT0iZ3JpZCI+PC9kaXY+JylbMF07YS5uVGFibGVSZWluc2VydEJlZm9yZT1hLm5UYWJsZS5uZXh0U2libGluZztmb3IodmFyIGM9YS5uVGFibGVXcmFwcGVyLGQ9YS5zRG9tLnNwbGl0KCIiKSxoLGYsZyxlLHMsbSxvLGs9MDtrPGQubGVuZ3RoO2srKyl7Zj0wO2c9ZFtrXTtpZigiPCI9PWcpe2U9aSgiPGRpdj48L2Rpdj4iKVswXTtzPWRbaysKMV07aWYoIiciPT1zfHwnIic9PXMpe209IiI7Zm9yKG89MjtkW2srb10hPXM7KW0rPWRbaytvXSxvKys7IkgiPT1tP209YS5vQ2xhc3Nlcy5zSlVJSGVhZGVyOiJGIj09bSYmKG09YS5vQ2xhc3Nlcy5zSlVJRm9vdGVyKTstMSE9bS5pbmRleE9mKCIuIik/KHM9bS5zcGxpdCgiLiIpLGUuaWQ9c1swXS5zdWJzdHIoMSxzWzBdLmxlbmd0aC0xKSxlLmNsYXNzTmFtZT1zWzFdKToiIyI9PW0uY2hhckF0KDApP2UuaWQ9bS5zdWJzdHIoMSxtLmxlbmd0aC0xKTplLmNsYXNzTmFtZT1tO2srPW99Yy5hcHBlbmRDaGlsZChlKTtjPWV9ZWxzZSBpZigiPiI9PWcpYz1jLnBhcmVudE5vZGU7ZWxzZSBpZigibCI9PWcmJmEub0ZlYXR1cmVzLmJQYWdpbmF0ZSYmYS5vRmVhdHVyZXMuYkxlbmd0aENoYW5nZSloPXphKGEpLGY9MTtlbHNlIGlmKCJmIj09ZyYmYS5vRmVhdHVyZXMuYkZpbHRlciloPUFhKGEpLGY9MTtlbHNlIGlmKCJyIj09ZyYmYS5vRmVhdHVyZXMuYlByb2Nlc3NpbmcpaD1CYShhKSxmPQoxO2Vsc2UgaWYoInQiPT1nKWg9Q2EoYSksZj0xO2Vsc2UgaWYoImkiPT1nJiZhLm9GZWF0dXJlcy5iSW5mbyloPURhKGEpLGY9MTtlbHNlIGlmKCJwIj09ZyYmYS5vRmVhdHVyZXMuYlBhZ2luYXRlKWg9RWEoYSksZj0xO2Vsc2UgaWYoMCE9PWouZXh0LmFvRmVhdHVyZXMubGVuZ3RoKXtlPWouZXh0LmFvRmVhdHVyZXM7bz0wO2ZvcihzPWUubGVuZ3RoO288cztvKyspaWYoZz09ZVtvXS5jRmVhdHVyZSl7KGg9ZVtvXS5mbkluaXQoYSkpJiYoZj0xKTticmVha319MT09ZiYmbnVsbCE9PWgmJigib2JqZWN0IiE9PXR5cGVvZiBhLmFhbkZlYXR1cmVzW2ddJiYoYS5hYW5GZWF0dXJlc1tnXT1bXSksYS5hYW5GZWF0dXJlc1tnXS5wdXNoKGgpLGMuYXBwZW5kQ2hpbGQoaCkpfWIucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQoYS5uVGFibGVXcmFwcGVyLGIpfWZ1bmN0aW9uIFcoYSxiKXt2YXIgYz1pKGIpLmNoaWxkcmVuKCJ0ciIpLGQsaCxmLGcsZSxzLG0sajthLnNwbGljZSgwLGEubGVuZ3RoKTsKaD0wO2ZvcihzPWMubGVuZ3RoO2g8cztoKyspYS5wdXNoKFtdKTtoPTA7Zm9yKHM9Yy5sZW5ndGg7aDxzO2grKyl7Zj0wO2ZvcihtPWNbaF0uY2hpbGROb2Rlcy5sZW5ndGg7ZjxtO2YrKylpZihkPWNbaF0uY2hpbGROb2Rlc1tmXSwiVEQiPT1kLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCl8fCJUSCI9PWQubm9kZU5hbWUudG9VcHBlckNhc2UoKSl7dmFyIG89MSpkLmdldEF0dHJpYnV0ZSgiY29sc3BhbiIpLGs9MSpkLmdldEF0dHJpYnV0ZSgicm93c3BhbiIpLG89IW98fDA9PT1vfHwxPT09bz8xOm8saz0ha3x8MD09PWt8fDE9PT1rPzE6aztmb3IoZz0wO2FbaF1bZ107KWcrKztqPWc7Zm9yKGU9MDtlPG87ZSsrKWZvcihnPTA7ZzxrO2crKylhW2grZ11baitlXT17Y2VsbDpkLHVuaXF1ZToxPT1vPyEwOiExfSxhW2grZ10ublRyPWNbaF19fX1mdW5jdGlvbiBQKGEsYixjKXt2YXIgZD1bXTtjfHwoYz1hLmFvSGVhZGVyLGImJihjPVtdLFcoYyxiKSkpO2Zvcih2YXIgYj0wLGg9Yy5sZW5ndGg7YjwKaDtiKyspZm9yKHZhciBmPTAsZz1jW2JdLmxlbmd0aDtmPGc7ZisrKWlmKGNbYl1bZl0udW5pcXVlJiYoIWRbZl18fCFhLmJTb3J0Q2VsbHNUb3ApKWRbZl09Y1tiXVtmXS5jZWxsO3JldHVybiBkfWZ1bmN0aW9uIHhhKGEpe2lmKGEuYkFqYXhEYXRhR2V0KXthLmlEcmF3Kys7RihhLCEwKTt2YXIgYj1GYShhKTtqYShhLGIpO2EuZm5TZXJ2ZXJEYXRhLmNhbGwoYS5vSW5zdGFuY2UsYS5zQWpheFNvdXJjZSxiLGZ1bmN0aW9uKGIpe0dhKGEsYil9LGEpO3JldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIEZhKGEpe3ZhciBiPWEuYW9Db2x1bW5zLmxlbmd0aCxjPVtdLGQsaCxmLGc7Yy5wdXNoKHtuYW1lOiJzRWNobyIsdmFsdWU6YS5pRHJhd30pO2MucHVzaCh7bmFtZToiaUNvbHVtbnMiLHZhbHVlOmJ9KTtjLnB1c2goe25hbWU6InNDb2x1bW5zIix2YWx1ZTpIKGEpfSk7Yy5wdXNoKHtuYW1lOiJpRGlzcGxheVN0YXJ0Iix2YWx1ZTphLl9pRGlzcGxheVN0YXJ0fSk7Yy5wdXNoKHtuYW1lOiJpRGlzcGxheUxlbmd0aCIsCnZhbHVlOiExIT09YS5vRmVhdHVyZXMuYlBhZ2luYXRlP2EuX2lEaXNwbGF5TGVuZ3RoOi0xfSk7Zm9yKGY9MDtmPGI7ZisrKWQ9YS5hb0NvbHVtbnNbZl0ubURhdGEsYy5wdXNoKHtuYW1lOiJtRGF0YVByb3BfIitmLHZhbHVlOiJmdW5jdGlvbiI9PT10eXBlb2YgZD8iZnVuY3Rpb24iOmR9KTtpZighMSE9PWEub0ZlYXR1cmVzLmJGaWx0ZXIpe2MucHVzaCh7bmFtZToic1NlYXJjaCIsdmFsdWU6YS5vUHJldmlvdXNTZWFyY2guc1NlYXJjaH0pO2MucHVzaCh7bmFtZToiYlJlZ2V4Iix2YWx1ZTphLm9QcmV2aW91c1NlYXJjaC5iUmVnZXh9KTtmb3IoZj0wO2Y8YjtmKyspYy5wdXNoKHtuYW1lOiJzU2VhcmNoXyIrZix2YWx1ZTphLmFvUHJlU2VhcmNoQ29sc1tmXS5zU2VhcmNofSksYy5wdXNoKHtuYW1lOiJiUmVnZXhfIitmLHZhbHVlOmEuYW9QcmVTZWFyY2hDb2xzW2ZdLmJSZWdleH0pLGMucHVzaCh7bmFtZToiYlNlYXJjaGFibGVfIitmLHZhbHVlOmEuYW9Db2x1bW5zW2ZdLmJTZWFyY2hhYmxlfSl9aWYoITEhPT0KYS5vRmVhdHVyZXMuYlNvcnQpe3ZhciBlPTA7ZD1udWxsIT09YS5hYVNvcnRpbmdGaXhlZD9hLmFhU29ydGluZ0ZpeGVkLmNvbmNhdChhLmFhU29ydGluZyk6YS5hYVNvcnRpbmcuc2xpY2UoKTtmb3IoZj0wO2Y8ZC5sZW5ndGg7ZisrKXtoPWEuYW9Db2x1bW5zW2RbZl1bMF1dLmFEYXRhU29ydDtmb3IoZz0wO2c8aC5sZW5ndGg7ZysrKWMucHVzaCh7bmFtZToiaVNvcnRDb2xfIitlLHZhbHVlOmhbZ119KSxjLnB1c2goe25hbWU6InNTb3J0RGlyXyIrZSx2YWx1ZTpkW2ZdWzFdfSksZSsrfWMucHVzaCh7bmFtZToiaVNvcnRpbmdDb2xzIix2YWx1ZTplfSk7Zm9yKGY9MDtmPGI7ZisrKWMucHVzaCh7bmFtZToiYlNvcnRhYmxlXyIrZix2YWx1ZTphLmFvQ29sdW1uc1tmXS5iU29ydGFibGV9KX1yZXR1cm4gY31mdW5jdGlvbiBqYShhLGIpe0MoYSwiYW9TZXJ2ZXJQYXJhbXMiLCJzZXJ2ZXJQYXJhbXMiLFtiXSl9ZnVuY3Rpb24gR2EoYSxiKXtpZihiLnNFY2hvIT09bil7aWYoMSpiLnNFY2hvPAphLmlEcmF3KXJldHVybjthLmlEcmF3PTEqYi5zRWNob30oIWEub1Njcm9sbC5iSW5maW5pdGV8fGEub1Njcm9sbC5iSW5maW5pdGUmJihhLmJTb3J0ZWR8fGEuYkZpbHRlcmVkKSkmJmZhKGEpO2EuX2lSZWNvcmRzVG90YWw9cGFyc2VJbnQoYi5pVG90YWxSZWNvcmRzLDEwKTthLl9pUmVjb3Jkc0Rpc3BsYXk9cGFyc2VJbnQoYi5pVG90YWxEaXNwbGF5UmVjb3JkcywxMCk7dmFyIGM9SChhKSxjPWIuc0NvbHVtbnMhPT1uJiYiIiE9PWMmJmIuc0NvbHVtbnMhPWMsZDtjJiYoZD15KGEsYi5zQ29sdW1ucykpO2Zvcih2YXIgaD1TKGEuc0FqYXhEYXRhUHJvcCkoYiksZj0wLGc9aC5sZW5ndGg7ZjxnO2YrKylpZihjKXtmb3IodmFyIGU9W10saT0wLG09YS5hb0NvbHVtbnMubGVuZ3RoO2k8bTtpKyspZS5wdXNoKGhbZl1bZFtpXV0pO0ooYSxlKX1lbHNlIEooYSxoW2ZdKTthLmFpRGlzcGxheT1hLmFpRGlzcGxheU1hc3Rlci5zbGljZSgpO2EuYkFqYXhEYXRhR2V0PSExO3ooYSk7YS5iQWpheERhdGFHZXQ9CiEwO0YoYSwhMSl9ZnVuY3Rpb24gQWEoYSl7dmFyIGI9YS5vUHJldmlvdXNTZWFyY2gsYz1hLm9MYW5ndWFnZS5zU2VhcmNoLGM9LTEhPT1jLmluZGV4T2YoIl9JTlBVVF8iKT9jLnJlcGxhY2UoIl9JTlBVVF8iLCc8aW5wdXQgdHlwZT0idGV4dCIgLz4nKToiIj09PWM/JzxpbnB1dCB0eXBlPSJ0ZXh0IiAvPic6YysnIDxpbnB1dCB0eXBlPSJ0ZXh0IiAvPicsZD1sLmNyZWF0ZUVsZW1lbnQoImRpdiIpO2QuY2xhc3NOYW1lPWEub0NsYXNzZXMuc0ZpbHRlcjtkLmlubmVySFRNTD0iPGxhYmVsPiIrYysiPC9sYWJlbD4iO2EuYWFuRmVhdHVyZXMuZnx8KGQuaWQ9YS5zVGFibGVJZCsiX2ZpbHRlciIpO2M9aSgnaW5wdXRbdHlwZT0idGV4dCJdJyxkKTtkLl9EVF9JbnB1dD1jWzBdO2MudmFsKGIuc1NlYXJjaC5yZXBsYWNlKCciJywiJnF1b3Q7IikpO2MuYmluZCgia2V5dXAuRFQiLGZ1bmN0aW9uKCl7Zm9yKHZhciBjPWEuYWFuRmVhdHVyZXMuZixkPXRoaXMudmFsdWU9PT0iIj8iIjp0aGlzLnZhbHVlLApnPTAsZT1jLmxlbmd0aDtnPGU7ZysrKWNbZ10hPWkodGhpcykucGFyZW50cygiZGl2LmRhdGFUYWJsZXNfZmlsdGVyIilbMF0mJmkoY1tnXS5fRFRfSW5wdXQpLnZhbChkKTtkIT1iLnNTZWFyY2gmJk0oYSx7c1NlYXJjaDpkLGJSZWdleDpiLmJSZWdleCxiU21hcnQ6Yi5iU21hcnQsYkNhc2VJbnNlbnNpdGl2ZTpiLmJDYXNlSW5zZW5zaXRpdmV9KX0pO2MuYXR0cigiYXJpYS1jb250cm9scyIsYS5zVGFibGVJZCkuYmluZCgia2V5cHJlc3MuRFQiLGZ1bmN0aW9uKGEpe2lmKGEua2V5Q29kZT09MTMpcmV0dXJuIGZhbHNlfSk7cmV0dXJuIGR9ZnVuY3Rpb24gTShhLGIsYyl7dmFyIGQ9YS5vUHJldmlvdXNTZWFyY2gsaD1hLmFvUHJlU2VhcmNoQ29scyxmPWZ1bmN0aW9uKGEpe2Quc1NlYXJjaD1hLnNTZWFyY2g7ZC5iUmVnZXg9YS5iUmVnZXg7ZC5iU21hcnQ9YS5iU21hcnQ7ZC5iQ2FzZUluc2Vuc2l0aXZlPWEuYkNhc2VJbnNlbnNpdGl2ZX07aWYoYS5vRmVhdHVyZXMuYlNlcnZlclNpZGUpZihiKTsKZWxzZXtIYShhLGIuc1NlYXJjaCxjLGIuYlJlZ2V4LGIuYlNtYXJ0LGIuYkNhc2VJbnNlbnNpdGl2ZSk7ZihiKTtmb3IoYj0wO2I8YS5hb1ByZVNlYXJjaENvbHMubGVuZ3RoO2IrKylJYShhLGhbYl0uc1NlYXJjaCxiLGhbYl0uYlJlZ2V4LGhbYl0uYlNtYXJ0LGhbYl0uYkNhc2VJbnNlbnNpdGl2ZSk7SmEoYSl9YS5iRmlsdGVyZWQ9ITA7aShhLm9JbnN0YW5jZSkudHJpZ2dlcigiZmlsdGVyIixhKTthLl9pRGlzcGxheVN0YXJ0PTA7QShhKTt6KGEpO2thKGEsMCl9ZnVuY3Rpb24gSmEoYSl7Zm9yKHZhciBiPWouZXh0LmFmbkZpbHRlcmluZyxjPXYoYSwiYlNlYXJjaGFibGUiKSxkPTAsaD1iLmxlbmd0aDtkPGg7ZCsrKWZvcih2YXIgZj0wLGc9MCxlPWEuYWlEaXNwbGF5Lmxlbmd0aDtnPGU7ZysrKXt2YXIgaT1hLmFpRGlzcGxheVtnLWZdO2JbZF0oYSxZKGEsaSwiZmlsdGVyIixjKSxpKXx8KGEuYWlEaXNwbGF5LnNwbGljZShnLWYsMSksZisrKX19ZnVuY3Rpb24gSWEoYSxiLGMsCmQsaCxmKXtpZigiIiE9PWIpZm9yKHZhciBnPTAsYj1sYShiLGQsaCxmKSxkPWEuYWlEaXNwbGF5Lmxlbmd0aC0xOzA8PWQ7ZC0tKWg9S2EoeChhLGEuYWlEaXNwbGF5W2RdLGMsImZpbHRlciIpLGEuYW9Db2x1bW5zW2NdLnNUeXBlKSxiLnRlc3QoaCl8fChhLmFpRGlzcGxheS5zcGxpY2UoZCwxKSxnKyspfWZ1bmN0aW9uIEhhKGEsYixjLGQsaCxmKXtkPWxhKGIsZCxoLGYpO2g9YS5vUHJldmlvdXNTZWFyY2g7Y3x8KGM9MCk7MCE9PWouZXh0LmFmbkZpbHRlcmluZy5sZW5ndGgmJihjPTEpO2lmKDA+PWIubGVuZ3RoKWEuYWlEaXNwbGF5LnNwbGljZSgwLGEuYWlEaXNwbGF5Lmxlbmd0aCksYS5haURpc3BsYXk9YS5haURpc3BsYXlNYXN0ZXIuc2xpY2UoKTtlbHNlIGlmKGEuYWlEaXNwbGF5Lmxlbmd0aD09YS5haURpc3BsYXlNYXN0ZXIubGVuZ3RofHxoLnNTZWFyY2gubGVuZ3RoPmIubGVuZ3RofHwxPT1jfHwwIT09Yi5pbmRleE9mKGguc1NlYXJjaCkpe2EuYWlEaXNwbGF5LnNwbGljZSgwLAphLmFpRGlzcGxheS5sZW5ndGgpO2thKGEsMSk7Zm9yKGI9MDtiPGEuYWlEaXNwbGF5TWFzdGVyLmxlbmd0aDtiKyspZC50ZXN0KGEuYXNEYXRhU2VhcmNoW2JdKSYmYS5haURpc3BsYXkucHVzaChhLmFpRGlzcGxheU1hc3RlcltiXSl9ZWxzZSBmb3IoYj1jPTA7YjxhLmFzRGF0YVNlYXJjaC5sZW5ndGg7YisrKWQudGVzdChhLmFzRGF0YVNlYXJjaFtiXSl8fChhLmFpRGlzcGxheS5zcGxpY2UoYi1jLDEpLGMrKyl9ZnVuY3Rpb24ga2EoYSxiKXtpZighYS5vRmVhdHVyZXMuYlNlcnZlclNpZGUpe2EuYXNEYXRhU2VhcmNoPVtdO2Zvcih2YXIgYz12KGEsImJTZWFyY2hhYmxlIiksZD0xPT09Yj9hLmFpRGlzcGxheU1hc3RlcjphLmFpRGlzcGxheSxoPTAsZj1kLmxlbmd0aDtoPGY7aCsrKWEuYXNEYXRhU2VhcmNoW2hdPW1hKGEsWShhLGRbaF0sImZpbHRlciIsYykpfX1mdW5jdGlvbiBtYShhLGIpe3ZhciBjPWIuam9pbigiICAiKTstMSE9PWMuaW5kZXhPZigiJiIpJiYoYz1pKCI8ZGl2PiIpLmh0bWwoYykudGV4dCgpKTsKcmV0dXJuIGMucmVwbGFjZSgvW1xuXHJdL2csIiAiKX1mdW5jdGlvbiBsYShhLGIsYyxkKXtpZihjKXJldHVybiBhPWI/YS5zcGxpdCgiICIpOm5hKGEpLnNwbGl0KCIgIiksYT0iXig/PS4qPyIrYS5qb2luKCIpKD89Lio/IikrIikuKiQiLFJlZ0V4cChhLGQ/ImkiOiIiKTthPWI/YTpuYShhKTtyZXR1cm4gUmVnRXhwKGEsZD8iaSI6IiIpfWZ1bmN0aW9uIEthKGEsYil7cmV0dXJuImZ1bmN0aW9uIj09PXR5cGVvZiBqLmV4dC5vZm5TZWFyY2hbYl0/ai5leHQub2ZuU2VhcmNoW2JdKGEpOm51bGw9PT1hPyIiOiJodG1sIj09Yj9hLnJlcGxhY2UoL1tcclxuXS9nLCIgIikucmVwbGFjZSgvPC4qPz4vZywiIik6InN0cmluZyI9PT10eXBlb2YgYT9hLnJlcGxhY2UoL1tcclxuXS9nLCIgIik6YX1mdW5jdGlvbiBuYShhKXtyZXR1cm4gYS5yZXBsYWNlKFJlZ0V4cCgiKFxcL3xcXC58XFwqfFxcK3xcXD98XFx8fFxcKHxcXCl8XFxbfFxcXXxcXHt8XFx9fFxcXFx8XFwkfFxcXnxcXC0pIiwiZyIpLAoiXFwkMSIpfWZ1bmN0aW9uIERhKGEpe3ZhciBiPWwuY3JlYXRlRWxlbWVudCgiZGl2Iik7Yi5jbGFzc05hbWU9YS5vQ2xhc3Nlcy5zSW5mbzthLmFhbkZlYXR1cmVzLml8fChhLmFvRHJhd0NhbGxiYWNrLnB1c2goe2ZuOkxhLHNOYW1lOiJpbmZvcm1hdGlvbiJ9KSxiLmlkPWEuc1RhYmxlSWQrIl9pbmZvIik7YS5uVGFibGUuc2V0QXR0cmlidXRlKCJhcmlhLWRlc2NyaWJlZGJ5IixhLnNUYWJsZUlkKyJfaW5mbyIpO3JldHVybiBifWZ1bmN0aW9uIExhKGEpe2lmKGEub0ZlYXR1cmVzLmJJbmZvJiYwIT09YS5hYW5GZWF0dXJlcy5pLmxlbmd0aCl7dmFyIGI9YS5vTGFuZ3VhZ2UsYz1hLl9pRGlzcGxheVN0YXJ0KzEsZD1hLmZuRGlzcGxheUVuZCgpLGg9YS5mblJlY29yZHNUb3RhbCgpLGY9YS5mblJlY29yZHNEaXNwbGF5KCksZztnPTA9PT1mJiZmPT1oP2Iuc0luZm9FbXB0eTowPT09Zj9iLnNJbmZvRW1wdHkrIiAiK2Iuc0luZm9GaWx0ZXJlZDpmPT1oP2Iuc0luZm86Yi5zSW5mbysKIiAiK2Iuc0luZm9GaWx0ZXJlZDtnKz1iLnNJbmZvUG9zdEZpeDtnPWlhKGEsZyk7bnVsbCE9PWIuZm5JbmZvQ2FsbGJhY2smJihnPWIuZm5JbmZvQ2FsbGJhY2suY2FsbChhLm9JbnN0YW5jZSxhLGMsZCxoLGYsZykpO2E9YS5hYW5GZWF0dXJlcy5pO2I9MDtmb3IoYz1hLmxlbmd0aDtiPGM7YisrKWkoYVtiXSkuaHRtbChnKX19ZnVuY3Rpb24gaWEoYSxiKXt2YXIgYz1hLmZuRm9ybWF0TnVtYmVyKGEuX2lEaXNwbGF5U3RhcnQrMSksZD1hLmZuRGlzcGxheUVuZCgpLGQ9YS5mbkZvcm1hdE51bWJlcihkKSxoPWEuZm5SZWNvcmRzRGlzcGxheSgpLGg9YS5mbkZvcm1hdE51bWJlcihoKSxmPWEuZm5SZWNvcmRzVG90YWwoKSxmPWEuZm5Gb3JtYXROdW1iZXIoZik7YS5vU2Nyb2xsLmJJbmZpbml0ZSYmKGM9YS5mbkZvcm1hdE51bWJlcigxKSk7cmV0dXJuIGIucmVwbGFjZSgiX1NUQVJUXyIsYykucmVwbGFjZSgiX0VORF8iLGQpLnJlcGxhY2UoIl9UT1RBTF8iLGgpLnJlcGxhY2UoIl9NQVhfIiwKZil9ZnVuY3Rpb24gYmEoYSl7dmFyIGIsYyxkPWEuaUluaXREaXNwbGF5U3RhcnQ7aWYoITE9PT1hLmJJbml0aWFsaXNlZClzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YmEoYSl9LDIwMCk7ZWxzZXt5YShhKTt3YShhKTtYKGEsYS5hb0hlYWRlcik7YS5uVEZvb3QmJlgoYSxhLmFvRm9vdGVyKTtGKGEsITApO2Eub0ZlYXR1cmVzLmJBdXRvV2lkdGgmJmNhKGEpO2I9MDtmb3IoYz1hLmFvQ29sdW1ucy5sZW5ndGg7YjxjO2IrKyludWxsIT09YS5hb0NvbHVtbnNbYl0uc1dpZHRoJiYoYS5hb0NvbHVtbnNbYl0ublRoLnN0eWxlLndpZHRoPXEoYS5hb0NvbHVtbnNbYl0uc1dpZHRoKSk7YS5vRmVhdHVyZXMuYlNvcnQ/UShhKTphLm9GZWF0dXJlcy5iRmlsdGVyP00oYSxhLm9QcmV2aW91c1NlYXJjaCk6KGEuYWlEaXNwbGF5PWEuYWlEaXNwbGF5TWFzdGVyLnNsaWNlKCksQShhKSx6KGEpKTtudWxsIT09YS5zQWpheFNvdXJjZSYmIWEub0ZlYXR1cmVzLmJTZXJ2ZXJTaWRlPyhjPVtdLGphKGEsCmMpLGEuZm5TZXJ2ZXJEYXRhLmNhbGwoYS5vSW5zdGFuY2UsYS5zQWpheFNvdXJjZSxjLGZ1bmN0aW9uKGMpe3ZhciBmPWEuc0FqYXhEYXRhUHJvcCE9PSIiP1MoYS5zQWpheERhdGFQcm9wKShjKTpjO2ZvcihiPTA7YjxmLmxlbmd0aDtiKyspSihhLGZbYl0pO2EuaUluaXREaXNwbGF5U3RhcnQ9ZDtpZihhLm9GZWF0dXJlcy5iU29ydClRKGEpO2Vsc2V7YS5haURpc3BsYXk9YS5haURpc3BsYXlNYXN0ZXIuc2xpY2UoKTtBKGEpO3ooYSl9RihhLGZhbHNlKTskKGEsYyl9LGEpKTphLm9GZWF0dXJlcy5iU2VydmVyU2lkZXx8KEYoYSwhMSksJChhKSl9fWZ1bmN0aW9uICQoYSxiKXthLl9iSW5pdENvbXBsZXRlPSEwO0MoYSwiYW9Jbml0Q29tcGxldGUiLCJpbml0IixbYSxiXSl9ZnVuY3Rpb24gb2EoYSl7dmFyIGI9ai5kZWZhdWx0cy5vTGFuZ3VhZ2U7IWEuc0VtcHR5VGFibGUmJihhLnNaZXJvUmVjb3JkcyYmIk5vIGRhdGEgYXZhaWxhYmxlIGluIHRhYmxlIj09PWIuc0VtcHR5VGFibGUpJiYKcChhLGEsInNaZXJvUmVjb3JkcyIsInNFbXB0eVRhYmxlIik7IWEuc0xvYWRpbmdSZWNvcmRzJiYoYS5zWmVyb1JlY29yZHMmJiJMb2FkaW5nLi4uIj09PWIuc0xvYWRpbmdSZWNvcmRzKSYmcChhLGEsInNaZXJvUmVjb3JkcyIsInNMb2FkaW5nUmVjb3JkcyIpfWZ1bmN0aW9uIHphKGEpe2lmKGEub1Njcm9sbC5iSW5maW5pdGUpcmV0dXJuIG51bGw7dmFyIGI9JzxzZWxlY3Qgc2l6ZT0iMSIgJysoJ25hbWU9IicrYS5zVGFibGVJZCsnX2xlbmd0aCInKSsiPiIsYyxkLGg9YS5hTGVuZ3RoTWVudTtpZigyPT1oLmxlbmd0aCYmIm9iamVjdCI9PT10eXBlb2YgaFswXSYmIm9iamVjdCI9PT10eXBlb2YgaFsxXSl7Yz0wO2ZvcihkPWhbMF0ubGVuZ3RoO2M8ZDtjKyspYis9JzxvcHRpb24gdmFsdWU9IicraFswXVtjXSsnIj4nK2hbMV1bY10rIjwvb3B0aW9uPiJ9ZWxzZXtjPTA7Zm9yKGQ9aC5sZW5ndGg7YzxkO2MrKyliKz0nPG9wdGlvbiB2YWx1ZT0iJytoW2NdKyciPicraFtjXSsiPC9vcHRpb24+In1iKz0KIjwvc2VsZWN0PiI7aD1sLmNyZWF0ZUVsZW1lbnQoImRpdiIpO2EuYWFuRmVhdHVyZXMubHx8KGguaWQ9YS5zVGFibGVJZCsiX2xlbmd0aCIpO2guY2xhc3NOYW1lPWEub0NsYXNzZXMuc0xlbmd0aDtoLmlubmVySFRNTD0iPGxhYmVsPiIrYS5vTGFuZ3VhZ2Uuc0xlbmd0aE1lbnUucmVwbGFjZSgiX01FTlVfIixiKSsiPC9sYWJlbD4iO2koJ3NlbGVjdCBvcHRpb25bdmFsdWU9IicrYS5faURpc3BsYXlMZW5ndGgrJyJdJyxoKS5hdHRyKCJzZWxlY3RlZCIsITApO2koInNlbGVjdCIsaCkuYmluZCgiY2hhbmdlLkRUIixmdW5jdGlvbigpe3ZhciBiPWkodGhpcykudmFsKCksaD1hLmFhbkZlYXR1cmVzLmw7Yz0wO2ZvcihkPWgubGVuZ3RoO2M8ZDtjKyspaFtjXSE9dGhpcy5wYXJlbnROb2RlJiZpKCJzZWxlY3QiLGhbY10pLnZhbChiKTthLl9pRGlzcGxheUxlbmd0aD1wYXJzZUludChiLDEwKTtBKGEpO2lmKGEuZm5EaXNwbGF5RW5kKCk9PWEuZm5SZWNvcmRzRGlzcGxheSgpKXthLl9pRGlzcGxheVN0YXJ0PQphLmZuRGlzcGxheUVuZCgpLWEuX2lEaXNwbGF5TGVuZ3RoO2lmKGEuX2lEaXNwbGF5U3RhcnQ8MClhLl9pRGlzcGxheVN0YXJ0PTB9aWYoYS5faURpc3BsYXlMZW5ndGg9PS0xKWEuX2lEaXNwbGF5U3RhcnQ9MDt6KGEpfSk7aSgic2VsZWN0IixoKS5hdHRyKCJhcmlhLWNvbnRyb2xzIixhLnNUYWJsZUlkKTtyZXR1cm4gaH1mdW5jdGlvbiBBKGEpe2EuX2lEaXNwbGF5RW5kPSExPT09YS5vRmVhdHVyZXMuYlBhZ2luYXRlP2EuYWlEaXNwbGF5Lmxlbmd0aDphLl9pRGlzcGxheVN0YXJ0K2EuX2lEaXNwbGF5TGVuZ3RoPmEuYWlEaXNwbGF5Lmxlbmd0aHx8LTE9PWEuX2lEaXNwbGF5TGVuZ3RoP2EuYWlEaXNwbGF5Lmxlbmd0aDphLl9pRGlzcGxheVN0YXJ0K2EuX2lEaXNwbGF5TGVuZ3RofWZ1bmN0aW9uIEVhKGEpe2lmKGEub1Njcm9sbC5iSW5maW5pdGUpcmV0dXJuIG51bGw7dmFyIGI9bC5jcmVhdGVFbGVtZW50KCJkaXYiKTtiLmNsYXNzTmFtZT1hLm9DbGFzc2VzLnNQYWdpbmcrYS5zUGFnaW5hdGlvblR5cGU7CmouZXh0Lm9QYWdpbmF0aW9uW2Euc1BhZ2luYXRpb25UeXBlXS5mbkluaXQoYSxiLGZ1bmN0aW9uKGEpe0EoYSk7eihhKX0pO2EuYWFuRmVhdHVyZXMucHx8YS5hb0RyYXdDYWxsYmFjay5wdXNoKHtmbjpmdW5jdGlvbihhKXtqLmV4dC5vUGFnaW5hdGlvblthLnNQYWdpbmF0aW9uVHlwZV0uZm5VcGRhdGUoYSxmdW5jdGlvbihhKXtBKGEpO3ooYSl9KX0sc05hbWU6InBhZ2luYXRpb24ifSk7cmV0dXJuIGJ9ZnVuY3Rpb24gcGEoYSxiKXt2YXIgYz1hLl9pRGlzcGxheVN0YXJ0O2lmKCJudW1iZXIiPT09dHlwZW9mIGIpYS5faURpc3BsYXlTdGFydD1iKmEuX2lEaXNwbGF5TGVuZ3RoLGEuX2lEaXNwbGF5U3RhcnQ+YS5mblJlY29yZHNEaXNwbGF5KCkmJihhLl9pRGlzcGxheVN0YXJ0PTApO2Vsc2UgaWYoImZpcnN0Ij09YilhLl9pRGlzcGxheVN0YXJ0PTA7ZWxzZSBpZigicHJldmlvdXMiPT1iKWEuX2lEaXNwbGF5U3RhcnQ9MDw9YS5faURpc3BsYXlMZW5ndGg/YS5faURpc3BsYXlTdGFydC0KYS5faURpc3BsYXlMZW5ndGg6MCwwPmEuX2lEaXNwbGF5U3RhcnQmJihhLl9pRGlzcGxheVN0YXJ0PTApO2Vsc2UgaWYoIm5leHQiPT1iKTA8PWEuX2lEaXNwbGF5TGVuZ3RoP2EuX2lEaXNwbGF5U3RhcnQrYS5faURpc3BsYXlMZW5ndGg8YS5mblJlY29yZHNEaXNwbGF5KCkmJihhLl9pRGlzcGxheVN0YXJ0Kz1hLl9pRGlzcGxheUxlbmd0aCk6YS5faURpc3BsYXlTdGFydD0wO2Vsc2UgaWYoImxhc3QiPT1iKWlmKDA8PWEuX2lEaXNwbGF5TGVuZ3RoKXt2YXIgZD1wYXJzZUludCgoYS5mblJlY29yZHNEaXNwbGF5KCktMSkvYS5faURpc3BsYXlMZW5ndGgsMTApKzE7YS5faURpc3BsYXlTdGFydD0oZC0xKSphLl9pRGlzcGxheUxlbmd0aH1lbHNlIGEuX2lEaXNwbGF5U3RhcnQ9MDtlbHNlIEUoYSwwLCJVbmtub3duIHBhZ2luZyBhY3Rpb246ICIrYik7aShhLm9JbnN0YW5jZSkudHJpZ2dlcigicGFnZSIsYSk7cmV0dXJuIGMhPWEuX2lEaXNwbGF5U3RhcnR9ZnVuY3Rpb24gQmEoYSl7dmFyIGI9CmwuY3JlYXRlRWxlbWVudCgiZGl2Iik7YS5hYW5GZWF0dXJlcy5yfHwoYi5pZD1hLnNUYWJsZUlkKyJfcHJvY2Vzc2luZyIpO2IuaW5uZXJIVE1MPWEub0xhbmd1YWdlLnNQcm9jZXNzaW5nO2IuY2xhc3NOYW1lPWEub0NsYXNzZXMuc1Byb2Nlc3Npbmc7YS5uVGFibGUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYixhLm5UYWJsZSk7cmV0dXJuIGJ9ZnVuY3Rpb24gRihhLGIpe2lmKGEub0ZlYXR1cmVzLmJQcm9jZXNzaW5nKWZvcih2YXIgYz1hLmFhbkZlYXR1cmVzLnIsZD0wLGg9Yy5sZW5ndGg7ZDxoO2QrKyljW2RdLnN0eWxlLnZpc2liaWxpdHk9Yj8idmlzaWJsZSI6ImhpZGRlbiI7aShhLm9JbnN0YW5jZSkudHJpZ2dlcigicHJvY2Vzc2luZyIsW2EsYl0pfWZ1bmN0aW9uIENhKGEpe2lmKCIiPT09YS5vU2Nyb2xsLnNYJiYiIj09PWEub1Njcm9sbC5zWSlyZXR1cm4gYS5uVGFibGU7dmFyIGI9bC5jcmVhdGVFbGVtZW50KCJkaXYiKSxjPWwuY3JlYXRlRWxlbWVudCgiZGl2IiksZD0KbC5jcmVhdGVFbGVtZW50KCJkaXYiKSxoPWwuY3JlYXRlRWxlbWVudCgiZGl2IiksZj1sLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGc9bC5jcmVhdGVFbGVtZW50KCJkaXYiKSxlPWEublRhYmxlLmNsb25lTm9kZSghMSksaj1hLm5UYWJsZS5jbG9uZU5vZGUoITEpLG09YS5uVGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRoZWFkIilbMF0sbz0wPT09YS5uVGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRmb290IikubGVuZ3RoP251bGw6YS5uVGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRmb290IilbMF0saz1hLm9DbGFzc2VzO2MuYXBwZW5kQ2hpbGQoZCk7Zi5hcHBlbmRDaGlsZChnKTtoLmFwcGVuZENoaWxkKGEublRhYmxlKTtiLmFwcGVuZENoaWxkKGMpO2IuYXBwZW5kQ2hpbGQoaCk7ZC5hcHBlbmRDaGlsZChlKTtlLmFwcGVuZENoaWxkKG0pO251bGwhPT1vJiYoYi5hcHBlbmRDaGlsZChmKSxnLmFwcGVuZENoaWxkKGopLGouYXBwZW5kQ2hpbGQobykpO2IuY2xhc3NOYW1lPQprLnNTY3JvbGxXcmFwcGVyO2MuY2xhc3NOYW1lPWsuc1Njcm9sbEhlYWQ7ZC5jbGFzc05hbWU9ay5zU2Nyb2xsSGVhZElubmVyO2guY2xhc3NOYW1lPWsuc1Njcm9sbEJvZHk7Zi5jbGFzc05hbWU9ay5zU2Nyb2xsRm9vdDtnLmNsYXNzTmFtZT1rLnNTY3JvbGxGb290SW5uZXI7YS5vU2Nyb2xsLmJBdXRvQ3NzJiYoYy5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIixjLnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSIsZi5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIixoLnN0eWxlLm92ZXJmbG93PSJhdXRvIik7Yy5zdHlsZS5ib3JkZXI9IjAiO2Muc3R5bGUud2lkdGg9IjEwMCUiO2Yuc3R5bGUuYm9yZGVyPSIwIjtkLnN0eWxlLndpZHRoPSIiIT09YS5vU2Nyb2xsLnNYSW5uZXI/YS5vU2Nyb2xsLnNYSW5uZXI6IjEwMCUiO2UucmVtb3ZlQXR0cmlidXRlKCJpZCIpO2Uuc3R5bGUubWFyZ2luTGVmdD0iMCI7YS5uVGFibGUuc3R5bGUubWFyZ2luTGVmdD0iMCI7bnVsbCE9PW8mJihqLnJlbW92ZUF0dHJpYnV0ZSgiaWQiKSwKai5zdHlsZS5tYXJnaW5MZWZ0PSIwIik7ZD1pKGEublRhYmxlKS5jaGlsZHJlbigiY2FwdGlvbiIpOzA8ZC5sZW5ndGgmJihkPWRbMF0sInRvcCI9PT1kLl9jYXB0aW9uU2lkZT9lLmFwcGVuZENoaWxkKGQpOiJib3R0b20iPT09ZC5fY2FwdGlvblNpZGUmJm8mJmouYXBwZW5kQ2hpbGQoZCkpOyIiIT09YS5vU2Nyb2xsLnNYJiYoYy5zdHlsZS53aWR0aD1xKGEub1Njcm9sbC5zWCksaC5zdHlsZS53aWR0aD1xKGEub1Njcm9sbC5zWCksbnVsbCE9PW8mJihmLnN0eWxlLndpZHRoPXEoYS5vU2Nyb2xsLnNYKSksaShoKS5zY3JvbGwoZnVuY3Rpb24oKXtjLnNjcm9sbExlZnQ9dGhpcy5zY3JvbGxMZWZ0O2lmKG8hPT1udWxsKWYuc2Nyb2xsTGVmdD10aGlzLnNjcm9sbExlZnR9KSk7IiIhPT1hLm9TY3JvbGwuc1kmJihoLnN0eWxlLmhlaWdodD1xKGEub1Njcm9sbC5zWSkpO2EuYW9EcmF3Q2FsbGJhY2sucHVzaCh7Zm46TWEsc05hbWU6InNjcm9sbGluZyJ9KTthLm9TY3JvbGwuYkluZmluaXRlJiYKaShoKS5zY3JvbGwoZnVuY3Rpb24oKXtpZighYS5iRHJhd2luZyYmaSh0aGlzKS5zY3JvbGxUb3AoKSE9PTAmJmkodGhpcykuc2Nyb2xsVG9wKCkraSh0aGlzKS5oZWlnaHQoKT5pKGEublRhYmxlKS5oZWlnaHQoKS1hLm9TY3JvbGwuaUxvYWRHYXAmJmEuZm5EaXNwbGF5RW5kKCk8YS5mblJlY29yZHNEaXNwbGF5KCkpe3BhKGEsIm5leHQiKTtBKGEpO3ooYSl9fSk7YS5uU2Nyb2xsSGVhZD1jO2EublNjcm9sbEZvb3Q9ZjtyZXR1cm4gYn1mdW5jdGlvbiBNYShhKXt2YXIgYj1hLm5TY3JvbGxIZWFkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJkaXYiKVswXSxjPWIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRhYmxlIilbMF0sZD1hLm5UYWJsZS5wYXJlbnROb2RlLGgsZixnLGUsaixtLG8sayxyPVtdLG49bnVsbCE9PWEublRGb290P2EublNjcm9sbEZvb3QuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImRpdiIpWzBdOm51bGwscD1udWxsIT09YS5uVEZvb3Q/bi5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGFibGUiKVswXToKbnVsbCxsPWEub0Jyb3dzZXIuYlNjcm9sbE92ZXJzaXplO2koYS5uVGFibGUpLmNoaWxkcmVuKCJ0aGVhZCwgdGZvb3QiKS5yZW1vdmUoKTtnPWkoYS5uVEhlYWQpLmNsb25lKClbMF07YS5uVGFibGUuaW5zZXJ0QmVmb3JlKGcsYS5uVGFibGUuY2hpbGROb2Rlc1swXSk7bnVsbCE9PWEublRGb290JiYoaj1pKGEublRGb290KS5jbG9uZSgpWzBdLGEublRhYmxlLmluc2VydEJlZm9yZShqLGEublRhYmxlLmNoaWxkTm9kZXNbMV0pKTsiIj09PWEub1Njcm9sbC5zWCYmKGQuc3R5bGUud2lkdGg9IjEwMCUiLGIucGFyZW50Tm9kZS5zdHlsZS53aWR0aD0iMTAwJSIpO3ZhciB0PVAoYSxnKTtoPTA7Zm9yKGY9dC5sZW5ndGg7aDxmO2grKylvPUcoYSxoKSx0W2hdLnN0eWxlLndpZHRoPWEuYW9Db2x1bW5zW29dLnNXaWR0aDtudWxsIT09YS5uVEZvb3QmJk4oZnVuY3Rpb24oYSl7YS5zdHlsZS53aWR0aD0iIn0sai5nZXRFbGVtZW50c0J5VGFnTmFtZSgidHIiKSk7YS5vU2Nyb2xsLmJDb2xsYXBzZSYmCiIiIT09YS5vU2Nyb2xsLnNZJiYoZC5zdHlsZS5oZWlnaHQ9ZC5vZmZzZXRIZWlnaHQrYS5uVEhlYWQub2Zmc2V0SGVpZ2h0KyJweCIpO2g9aShhLm5UYWJsZSkub3V0ZXJXaWR0aCgpO2lmKCIiPT09YS5vU2Nyb2xsLnNYKXtpZihhLm5UYWJsZS5zdHlsZS53aWR0aD0iMTAwJSIsbCYmKGkoInRib2R5IixkKS5oZWlnaHQoKT5kLm9mZnNldEhlaWdodHx8InNjcm9sbCI9PWkoZCkuY3NzKCJvdmVyZmxvdy15IikpKWEublRhYmxlLnN0eWxlLndpZHRoPXEoaShhLm5UYWJsZSkub3V0ZXJXaWR0aCgpLWEub1Njcm9sbC5pQmFyV2lkdGgpfWVsc2UiIiE9PWEub1Njcm9sbC5zWElubmVyP2EublRhYmxlLnN0eWxlLndpZHRoPXEoYS5vU2Nyb2xsLnNYSW5uZXIpOmg9PWkoZCkud2lkdGgoKSYmaShkKS5oZWlnaHQoKTxpKGEublRhYmxlKS5oZWlnaHQoKT8oYS5uVGFibGUuc3R5bGUud2lkdGg9cShoLWEub1Njcm9sbC5pQmFyV2lkdGgpLGkoYS5uVGFibGUpLm91dGVyV2lkdGgoKT5oLWEub1Njcm9sbC5pQmFyV2lkdGgmJgooYS5uVGFibGUuc3R5bGUud2lkdGg9cShoKSkpOmEublRhYmxlLnN0eWxlLndpZHRoPXEoaCk7aD1pKGEublRhYmxlKS5vdXRlcldpZHRoKCk7Zj1hLm5USGVhZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgidHIiKTtnPWcuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRyIik7TihmdW5jdGlvbihhLGIpe209YS5zdHlsZTttLnBhZGRpbmdUb3A9IjAiO20ucGFkZGluZ0JvdHRvbT0iMCI7bS5ib3JkZXJUb3BXaWR0aD0iMCI7bS5ib3JkZXJCb3R0b21XaWR0aD0iMCI7bS5oZWlnaHQ9MDtrPWkoYSkud2lkdGgoKTtiLnN0eWxlLndpZHRoPXEoayk7ci5wdXNoKGspfSxnLGYpO2koZykuaGVpZ2h0KDApO251bGwhPT1hLm5URm9vdCYmKGU9ai5nZXRFbGVtZW50c0J5VGFnTmFtZSgidHIiKSxqPWEublRGb290LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0ciIpLE4oZnVuY3Rpb24oYSxiKXttPWEuc3R5bGU7bS5wYWRkaW5nVG9wPSIwIjttLnBhZGRpbmdCb3R0b209IjAiO20uYm9yZGVyVG9wV2lkdGg9CiIwIjttLmJvcmRlckJvdHRvbVdpZHRoPSIwIjttLmhlaWdodD0wO2s9aShhKS53aWR0aCgpO2Iuc3R5bGUud2lkdGg9cShrKTtyLnB1c2goayl9LGUsaiksaShlKS5oZWlnaHQoMCkpO04oZnVuY3Rpb24oYSl7YS5pbm5lckhUTUw9IiI7YS5zdHlsZS53aWR0aD1xKHIuc2hpZnQoKSl9LGcpO251bGwhPT1hLm5URm9vdCYmTihmdW5jdGlvbihhKXthLmlubmVySFRNTD0iIjthLnN0eWxlLndpZHRoPXEoci5zaGlmdCgpKX0sZSk7aWYoaShhLm5UYWJsZSkub3V0ZXJXaWR0aCgpPGgpe2U9ZC5zY3JvbGxIZWlnaHQ+ZC5vZmZzZXRIZWlnaHR8fCJzY3JvbGwiPT1pKGQpLmNzcygib3ZlcmZsb3cteSIpP2grYS5vU2Nyb2xsLmlCYXJXaWR0aDpoO2lmKGwmJihkLnNjcm9sbEhlaWdodD5kLm9mZnNldEhlaWdodHx8InNjcm9sbCI9PWkoZCkuY3NzKCJvdmVyZmxvdy15IikpKWEublRhYmxlLnN0eWxlLndpZHRoPXEoZS1hLm9TY3JvbGwuaUJhcldpZHRoKTtkLnN0eWxlLndpZHRoPXEoZSk7Yi5wYXJlbnROb2RlLnN0eWxlLndpZHRoPQpxKGUpO251bGwhPT1hLm5URm9vdCYmKG4ucGFyZW50Tm9kZS5zdHlsZS53aWR0aD1xKGUpKTsiIj09PWEub1Njcm9sbC5zWD9FKGEsMSwiVGhlIHRhYmxlIGNhbm5vdCBmaXQgaW50byB0aGUgY3VycmVudCBlbGVtZW50IHdoaWNoIHdpbGwgY2F1c2UgY29sdW1uIG1pc2FsaWdubWVudC4gVGhlIHRhYmxlIGhhcyBiZWVuIGRyYXduIGF0IGl0cyBtaW5pbXVtIHBvc3NpYmxlIHdpZHRoLiIpOiIiIT09YS5vU2Nyb2xsLnNYSW5uZXImJkUoYSwxLCJUaGUgdGFibGUgY2Fubm90IGZpdCBpbnRvIHRoZSBjdXJyZW50IGVsZW1lbnQgd2hpY2ggd2lsbCBjYXVzZSBjb2x1bW4gbWlzYWxpZ25tZW50LiBJbmNyZWFzZSB0aGUgc1Njcm9sbFhJbm5lciB2YWx1ZSBvciByZW1vdmUgaXQgdG8gYWxsb3cgYXV0b21hdGljIGNhbGN1bGF0aW9uIil9ZWxzZSBkLnN0eWxlLndpZHRoPXEoIjEwMCUiKSxiLnBhcmVudE5vZGUuc3R5bGUud2lkdGg9cSgiMTAwJSIpLG51bGwhPT1hLm5URm9vdCYmKG4ucGFyZW50Tm9kZS5zdHlsZS53aWR0aD0KcSgiMTAwJSIpKTsiIj09PWEub1Njcm9sbC5zWSYmbCYmKGQuc3R5bGUuaGVpZ2h0PXEoYS5uVGFibGUub2Zmc2V0SGVpZ2h0K2Eub1Njcm9sbC5pQmFyV2lkdGgpKTsiIiE9PWEub1Njcm9sbC5zWSYmYS5vU2Nyb2xsLmJDb2xsYXBzZSYmKGQuc3R5bGUuaGVpZ2h0PXEoYS5vU2Nyb2xsLnNZKSxsPSIiIT09YS5vU2Nyb2xsLnNYJiZhLm5UYWJsZS5vZmZzZXRXaWR0aD5kLm9mZnNldFdpZHRoP2Eub1Njcm9sbC5pQmFyV2lkdGg6MCxhLm5UYWJsZS5vZmZzZXRIZWlnaHQ8ZC5vZmZzZXRIZWlnaHQmJihkLnN0eWxlLmhlaWdodD1xKGEublRhYmxlLm9mZnNldEhlaWdodCtsKSkpO2w9aShhLm5UYWJsZSkub3V0ZXJXaWR0aCgpO2Muc3R5bGUud2lkdGg9cShsKTtiLnN0eWxlLndpZHRoPXEobCk7Yz1pKGEublRhYmxlKS5oZWlnaHQoKT5kLmNsaWVudEhlaWdodHx8InNjcm9sbCI9PWkoZCkuY3NzKCJvdmVyZmxvdy15Iik7Yi5zdHlsZS5wYWRkaW5nUmlnaHQ9Yz9hLm9TY3JvbGwuaUJhcldpZHRoKwoicHgiOiIwcHgiO251bGwhPT1hLm5URm9vdCYmKHAuc3R5bGUud2lkdGg9cShsKSxuLnN0eWxlLndpZHRoPXEobCksbi5zdHlsZS5wYWRkaW5nUmlnaHQ9Yz9hLm9TY3JvbGwuaUJhcldpZHRoKyJweCI6IjBweCIpO2koZCkuc2Nyb2xsKCk7aWYoYS5iU29ydGVkfHxhLmJGaWx0ZXJlZClkLnNjcm9sbFRvcD0wfWZ1bmN0aW9uIE4oYSxiLGMpe2Zvcih2YXIgZD0wLGg9Yi5sZW5ndGg7ZDxoO2QrKylmb3IodmFyIGY9MCxnPWJbZF0uY2hpbGROb2Rlcy5sZW5ndGg7ZjxnO2YrKykxPT1iW2RdLmNoaWxkTm9kZXNbZl0ubm9kZVR5cGUmJihjP2EoYltkXS5jaGlsZE5vZGVzW2ZdLGNbZF0uY2hpbGROb2Rlc1tmXSk6YShiW2RdLmNoaWxkTm9kZXNbZl0pKX1mdW5jdGlvbiBOYShhLGIpe2lmKCFhfHxudWxsPT09YXx8IiI9PT1hKXJldHVybiAwO2J8fChiPWwuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKVswXSk7dmFyIGMsZD1sLmNyZWF0ZUVsZW1lbnQoImRpdiIpO2Quc3R5bGUud2lkdGg9CnEoYSk7Yi5hcHBlbmRDaGlsZChkKTtjPWQub2Zmc2V0V2lkdGg7Yi5yZW1vdmVDaGlsZChkKTtyZXR1cm4gY31mdW5jdGlvbiBjYShhKXt2YXIgYj0wLGMsZD0wLGg9YS5hb0NvbHVtbnMubGVuZ3RoLGYsZz1pKCJ0aCIsYS5uVEhlYWQpLGU9YS5uVGFibGUuZ2V0QXR0cmlidXRlKCJ3aWR0aCIpO2ZvcihmPTA7ZjxoO2YrKylhLmFvQ29sdW1uc1tmXS5iVmlzaWJsZSYmKGQrKyxudWxsIT09YS5hb0NvbHVtbnNbZl0uc1dpZHRoJiYoYz1OYShhLmFvQ29sdW1uc1tmXS5zV2lkdGhPcmlnLGEublRhYmxlLnBhcmVudE5vZGUpLG51bGwhPT1jJiYoYS5hb0NvbHVtbnNbZl0uc1dpZHRoPXEoYykpLGIrKykpO2lmKGg9PWcubGVuZ3RoJiYwPT09YiYmZD09aCYmIiI9PT1hLm9TY3JvbGwuc1gmJiIiPT09YS5vU2Nyb2xsLnNZKWZvcihmPTA7ZjxhLmFvQ29sdW1ucy5sZW5ndGg7ZisrKWM9aShnW2ZdKS53aWR0aCgpLG51bGwhPT1jJiYoYS5hb0NvbHVtbnNbZl0uc1dpZHRoPXEoYykpO2Vsc2V7Yj0KYS5uVGFibGUuY2xvbmVOb2RlKCExKTtmPWEublRIZWFkLmNsb25lTm9kZSghMCk7ZD1sLmNyZWF0ZUVsZW1lbnQoInRib2R5Iik7Yz1sLmNyZWF0ZUVsZW1lbnQoInRyIik7Yi5yZW1vdmVBdHRyaWJ1dGUoImlkIik7Yi5hcHBlbmRDaGlsZChmKTtudWxsIT09YS5uVEZvb3QmJihiLmFwcGVuZENoaWxkKGEublRGb290LmNsb25lTm9kZSghMCkpLE4oZnVuY3Rpb24oYSl7YS5zdHlsZS53aWR0aD0iIn0sYi5nZXRFbGVtZW50c0J5VGFnTmFtZSgidHIiKSkpO2IuYXBwZW5kQ2hpbGQoZCk7ZC5hcHBlbmRDaGlsZChjKTtkPWkoInRoZWFkIHRoIixiKTswPT09ZC5sZW5ndGgmJihkPWkoInRib2R5IHRyOmVxKDApPnRkIixiKSk7Zz1QKGEsZik7Zm9yKGY9ZD0wO2Y8aDtmKyspe3ZhciBqPWEuYW9Db2x1bW5zW2ZdO2ouYlZpc2libGUmJm51bGwhPT1qLnNXaWR0aE9yaWcmJiIiIT09ai5zV2lkdGhPcmlnP2dbZi1kXS5zdHlsZS53aWR0aD1xKGouc1dpZHRoT3JpZyk6ai5iVmlzaWJsZT9nW2YtCmRdLnN0eWxlLndpZHRoPSIiOmQrK31mb3IoZj0wO2Y8aDtmKyspYS5hb0NvbHVtbnNbZl0uYlZpc2libGUmJihkPU9hKGEsZiksbnVsbCE9PWQmJihkPWQuY2xvbmVOb2RlKCEwKSwiIiE9PWEuYW9Db2x1bW5zW2ZdLnNDb250ZW50UGFkZGluZyYmKGQuaW5uZXJIVE1MKz1hLmFvQ29sdW1uc1tmXS5zQ29udGVudFBhZGRpbmcpLGMuYXBwZW5kQ2hpbGQoZCkpKTtoPWEublRhYmxlLnBhcmVudE5vZGU7aC5hcHBlbmRDaGlsZChiKTsiIiE9PWEub1Njcm9sbC5zWCYmIiIhPT1hLm9TY3JvbGwuc1hJbm5lcj9iLnN0eWxlLndpZHRoPXEoYS5vU2Nyb2xsLnNYSW5uZXIpOiIiIT09YS5vU2Nyb2xsLnNYPyhiLnN0eWxlLndpZHRoPSIiLGkoYikud2lkdGgoKTxoLm9mZnNldFdpZHRoJiYoYi5zdHlsZS53aWR0aD1xKGgub2Zmc2V0V2lkdGgpKSk6IiIhPT1hLm9TY3JvbGwuc1k/Yi5zdHlsZS53aWR0aD1xKGgub2Zmc2V0V2lkdGgpOmUmJihiLnN0eWxlLndpZHRoPXEoZSkpO2Iuc3R5bGUudmlzaWJpbGl0eT0KImhpZGRlbiI7UGEoYSxiKTtoPWkoInRib2R5IHRyOmVxKDApIixiKS5jaGlsZHJlbigpOzA9PT1oLmxlbmd0aCYmKGg9UChhLGkoInRoZWFkIixiKVswXSkpO2lmKCIiIT09YS5vU2Nyb2xsLnNYKXtmb3IoZj1kPWM9MDtmPGEuYW9Db2x1bW5zLmxlbmd0aDtmKyspYS5hb0NvbHVtbnNbZl0uYlZpc2libGUmJihjPW51bGw9PT1hLmFvQ29sdW1uc1tmXS5zV2lkdGhPcmlnP2MraShoW2RdKS5vdXRlcldpZHRoKCk6YysocGFyc2VJbnQoYS5hb0NvbHVtbnNbZl0uc1dpZHRoLnJlcGxhY2UoInB4IiwiIiksMTApKyhpKGhbZF0pLm91dGVyV2lkdGgoKS1pKGhbZF0pLndpZHRoKCkpKSxkKyspO2Iuc3R5bGUud2lkdGg9cShjKTthLm5UYWJsZS5zdHlsZS53aWR0aD1xKGMpfWZvcihmPWQ9MDtmPGEuYW9Db2x1bW5zLmxlbmd0aDtmKyspYS5hb0NvbHVtbnNbZl0uYlZpc2libGUmJihjPWkoaFtkXSkud2lkdGgoKSxudWxsIT09YyYmMDxjJiYoYS5hb0NvbHVtbnNbZl0uc1dpZHRoPXEoYykpLApkKyspO2g9aShiKS5jc3MoIndpZHRoIik7YS5uVGFibGUuc3R5bGUud2lkdGg9LTEhPT1oLmluZGV4T2YoIiUiKT9oOnEoaShiKS5vdXRlcldpZHRoKCkpO2IucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChiKX1lJiYoYS5uVGFibGUuc3R5bGUud2lkdGg9cShlKSl9ZnVuY3Rpb24gUGEoYSxiKXsiIj09PWEub1Njcm9sbC5zWCYmIiIhPT1hLm9TY3JvbGwuc1k/KGkoYikud2lkdGgoKSxiLnN0eWxlLndpZHRoPXEoaShiKS5vdXRlcldpZHRoKCktYS5vU2Nyb2xsLmlCYXJXaWR0aCkpOiIiIT09YS5vU2Nyb2xsLnNYJiYoYi5zdHlsZS53aWR0aD1xKGkoYikub3V0ZXJXaWR0aCgpKSl9ZnVuY3Rpb24gT2EoYSxiKXt2YXIgYz1RYShhLGIpO2lmKDA+YylyZXR1cm4gbnVsbDtpZihudWxsPT09YS5hb0RhdGFbY10ublRyKXt2YXIgZD1sLmNyZWF0ZUVsZW1lbnQoInRkIik7ZC5pbm5lckhUTUw9eChhLGMsYiwiIik7cmV0dXJuIGR9cmV0dXJuIEwoYSxjKVtiXX1mdW5jdGlvbiBRYShhLGIpe2Zvcih2YXIgYz0KLTEsZD0tMSxoPTA7aDxhLmFvRGF0YS5sZW5ndGg7aCsrKXt2YXIgZj14KGEsaCxiLCJkaXNwbGF5IikrIiIsZj1mLnJlcGxhY2UoLzwuKj8+L2csIiIpO2YubGVuZ3RoPmMmJihjPWYubGVuZ3RoLGQ9aCl9cmV0dXJuIGR9ZnVuY3Rpb24gcShhKXtpZihudWxsPT09YSlyZXR1cm4iMHB4IjtpZigibnVtYmVyIj09dHlwZW9mIGEpcmV0dXJuIDA+YT8iMHB4IjphKyJweCI7dmFyIGI9YS5jaGFyQ29kZUF0KGEubGVuZ3RoLTEpO3JldHVybiA0OD5ifHw1NzxiP2E6YSsicHgifWZ1bmN0aW9uIFJhKCl7dmFyIGE9bC5jcmVhdGVFbGVtZW50KCJwIiksYj1hLnN0eWxlO2Iud2lkdGg9IjEwMCUiO2IuaGVpZ2h0PSIyMDBweCI7Yi5wYWRkaW5nPSIwcHgiO3ZhciBjPWwuY3JlYXRlRWxlbWVudCgiZGl2IiksYj1jLnN0eWxlO2IucG9zaXRpb249ImFic29sdXRlIjtiLnRvcD0iMHB4IjtiLmxlZnQ9IjBweCI7Yi52aXNpYmlsaXR5PSJoaWRkZW4iO2Iud2lkdGg9IjIwMHB4IjtiLmhlaWdodD0iMTUwcHgiOwpiLnBhZGRpbmc9IjBweCI7Yi5vdmVyZmxvdz0iaGlkZGVuIjtjLmFwcGVuZENoaWxkKGEpO2wuYm9keS5hcHBlbmRDaGlsZChjKTtiPWEub2Zmc2V0V2lkdGg7Yy5zdHlsZS5vdmVyZmxvdz0ic2Nyb2xsIjthPWEub2Zmc2V0V2lkdGg7Yj09YSYmKGE9Yy5jbGllbnRXaWR0aCk7bC5ib2R5LnJlbW92ZUNoaWxkKGMpO3JldHVybiBiLWF9ZnVuY3Rpb24gUShhLGIpe3ZhciBjLGQsaCxmLGcsZSxvPVtdLG09W10saz1qLmV4dC5vU29ydCxyPWEuYW9EYXRhLGw9YS5hb0NvbHVtbnMscD1hLm9MYW5ndWFnZS5vQXJpYTtpZighYS5vRmVhdHVyZXMuYlNlcnZlclNpZGUmJigwIT09YS5hYVNvcnRpbmcubGVuZ3RofHxudWxsIT09YS5hYVNvcnRpbmdGaXhlZCkpe289bnVsbCE9PWEuYWFTb3J0aW5nRml4ZWQ/YS5hYVNvcnRpbmdGaXhlZC5jb25jYXQoYS5hYVNvcnRpbmcpOmEuYWFTb3J0aW5nLnNsaWNlKCk7Zm9yKGM9MDtjPG8ubGVuZ3RoO2MrKylpZihkPW9bY11bMF0saD10KGEsZCksZj0KYS5hb0NvbHVtbnNbZF0uc1NvcnREYXRhVHlwZSxqLmV4dC5hZm5Tb3J0RGF0YVtmXSlpZihnPWouZXh0LmFmblNvcnREYXRhW2ZdLmNhbGwoYS5vSW5zdGFuY2UsYSxkLGgpLGcubGVuZ3RoPT09ci5sZW5ndGgpe2g9MDtmb3IoZj1yLmxlbmd0aDtoPGY7aCsrKUkoYSxoLGQsZ1toXSl9ZWxzZSBFKGEsMCwiUmV0dXJuZWQgZGF0YSBzb3J0IGFycmF5IChjb2wgIitkKyIpIGlzIHRoZSB3cm9uZyBsZW5ndGgiKTtjPTA7Zm9yKGQ9YS5haURpc3BsYXlNYXN0ZXIubGVuZ3RoO2M8ZDtjKyspbVthLmFpRGlzcGxheU1hc3RlcltjXV09Yzt2YXIgcT1vLmxlbmd0aCxHO2M9MDtmb3IoZD1yLmxlbmd0aDtjPGQ7YysrKWZvcihoPTA7aDxxO2grKyl7Rz1sW29baF1bMF1dLmFEYXRhU29ydDtnPTA7Zm9yKGU9Ry5sZW5ndGg7ZzxlO2crKylmPWxbR1tnXV0uc1R5cGUsZj1rWyhmP2Y6InN0cmluZyIpKyItcHJlIl0scltjXS5fYVNvcnREYXRhW0dbZ11dPWY/Zih4KGEsYyxHW2ddLCJzb3J0IikpOgp4KGEsYyxHW2ddLCJzb3J0Iil9YS5haURpc3BsYXlNYXN0ZXIuc29ydChmdW5jdGlvbihhLGIpe3ZhciBjLGQsaCxmLGc7Zm9yKGM9MDtjPHE7YysrKXtnPWxbb1tjXVswXV0uYURhdGFTb3J0O2Q9MDtmb3IoaD1nLmxlbmd0aDtkPGg7ZCsrKWlmKGY9bFtnW2RdXS5zVHlwZSxmPWtbKGY/Zjoic3RyaW5nIikrIi0iK29bY11bMV1dKHJbYV0uX2FTb3J0RGF0YVtnW2RdXSxyW2JdLl9hU29ydERhdGFbZ1tkXV0pLDAhPT1mKXJldHVybiBmfXJldHVybiBrWyJudW1lcmljLWFzYyJdKG1bYV0sbVtiXSl9KX0oYj09PW58fGIpJiYhYS5vRmVhdHVyZXMuYkRlZmVyUmVuZGVyJiZSKGEpO2M9MDtmb3IoZD1hLmFvQ29sdW1ucy5sZW5ndGg7YzxkO2MrKylmPWxbY10uc1RpdGxlLnJlcGxhY2UoLzwuKj8+L2csIiIpLGg9bFtjXS5uVGgsaC5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtc29ydCIpLGgucmVtb3ZlQXR0cmlidXRlKCJhcmlhLWxhYmVsIiksbFtjXS5iU29ydGFibGU/MDxvLmxlbmd0aCYmCm9bMF1bMF09PWM/KGguc2V0QXR0cmlidXRlKCJhcmlhLXNvcnQiLCJhc2MiPT1vWzBdWzFdPyJhc2NlbmRpbmciOiJkZXNjZW5kaW5nIiksaC5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLGYrKCJhc2MiPT0obFtjXS5hc1NvcnRpbmdbb1swXVsyXSsxXT9sW2NdLmFzU29ydGluZ1tvWzBdWzJdKzFdOmxbY10uYXNTb3J0aW5nWzBdKT9wLnNTb3J0QXNjZW5kaW5nOnAuc1NvcnREZXNjZW5kaW5nKSkpOmguc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixmKygiYXNjIj09bFtjXS5hc1NvcnRpbmdbMF0/cC5zU29ydEFzY2VuZGluZzpwLnNTb3J0RGVzY2VuZGluZykpOmguc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixmKTthLmJTb3J0ZWQ9ITA7aShhLm9JbnN0YW5jZSkudHJpZ2dlcigic29ydCIsYSk7YS5vRmVhdHVyZXMuYkZpbHRlcj9NKGEsYS5vUHJldmlvdXNTZWFyY2gsMSk6KGEuYWlEaXNwbGF5PWEuYWlEaXNwbGF5TWFzdGVyLnNsaWNlKCksYS5faURpc3BsYXlTdGFydD0wLApBKGEpLHooYSkpfWZ1bmN0aW9uIGhhKGEsYixjLGQpe1NhKGIse30sZnVuY3Rpb24oYil7aWYoITEhPT1hLmFvQ29sdW1uc1tjXS5iU29ydGFibGUpe3ZhciBmPWZ1bmN0aW9uKCl7dmFyIGQsZjtpZihiLnNoaWZ0S2V5KXtmb3IodmFyIGU9ITEsaT0wO2k8YS5hYVNvcnRpbmcubGVuZ3RoO2krKylpZihhLmFhU29ydGluZ1tpXVswXT09Yyl7ZT0hMDtkPWEuYWFTb3J0aW5nW2ldWzBdO2Y9YS5hYVNvcnRpbmdbaV1bMl0rMTthLmFvQ29sdW1uc1tkXS5hc1NvcnRpbmdbZl0/KGEuYWFTb3J0aW5nW2ldWzFdPWEuYW9Db2x1bW5zW2RdLmFzU29ydGluZ1tmXSxhLmFhU29ydGluZ1tpXVsyXT1mKTphLmFhU29ydGluZy5zcGxpY2UoaSwxKTticmVha30hMT09PWUmJmEuYWFTb3J0aW5nLnB1c2goW2MsYS5hb0NvbHVtbnNbY10uYXNTb3J0aW5nWzBdLDBdKX1lbHNlIDE9PWEuYWFTb3J0aW5nLmxlbmd0aCYmYS5hYVNvcnRpbmdbMF1bMF09PWM/KGQ9YS5hYVNvcnRpbmdbMF1bMF0sZj1hLmFhU29ydGluZ1swXVsyXSsKMSxhLmFvQ29sdW1uc1tkXS5hc1NvcnRpbmdbZl18fChmPTApLGEuYWFTb3J0aW5nWzBdWzFdPWEuYW9Db2x1bW5zW2RdLmFzU29ydGluZ1tmXSxhLmFhU29ydGluZ1swXVsyXT1mKTooYS5hYVNvcnRpbmcuc3BsaWNlKDAsYS5hYVNvcnRpbmcubGVuZ3RoKSxhLmFhU29ydGluZy5wdXNoKFtjLGEuYW9Db2x1bW5zW2NdLmFzU29ydGluZ1swXSwwXSkpO1EoYSl9O2Eub0ZlYXR1cmVzLmJQcm9jZXNzaW5nPyhGKGEsITApLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtmKCk7YS5vRmVhdHVyZXMuYlNlcnZlclNpZGV8fEYoYSwhMSl9LDApKTpmKCk7ImZ1bmN0aW9uIj09dHlwZW9mIGQmJmQoYSl9fSl9ZnVuY3Rpb24gUihhKXt2YXIgYixjLGQsaCxmLGU9YS5hb0NvbHVtbnMubGVuZ3RoLGo9YS5vQ2xhc3Nlcztmb3IoYj0wO2I8ZTtiKyspYS5hb0NvbHVtbnNbYl0uYlNvcnRhYmxlJiZpKGEuYW9Db2x1bW5zW2JdLm5UaCkucmVtb3ZlQ2xhc3Moai5zU29ydEFzYysiICIrai5zU29ydERlc2MrCiIgIithLmFvQ29sdW1uc1tiXS5zU29ydGluZ0NsYXNzKTtoPW51bGwhPT1hLmFhU29ydGluZ0ZpeGVkP2EuYWFTb3J0aW5nRml4ZWQuY29uY2F0KGEuYWFTb3J0aW5nKTphLmFhU29ydGluZy5zbGljZSgpO2ZvcihiPTA7YjxhLmFvQ29sdW1ucy5sZW5ndGg7YisrKWlmKGEuYW9Db2x1bW5zW2JdLmJTb3J0YWJsZSl7Zj1hLmFvQ29sdW1uc1tiXS5zU29ydGluZ0NsYXNzO2Q9LTE7Zm9yKGM9MDtjPGgubGVuZ3RoO2MrKylpZihoW2NdWzBdPT1iKXtmPSJhc2MiPT1oW2NdWzFdP2ouc1NvcnRBc2M6ai5zU29ydERlc2M7ZD1jO2JyZWFrfWkoYS5hb0NvbHVtbnNbYl0ublRoKS5hZGRDbGFzcyhmKTthLmJKVUkmJihjPWkoInNwYW4uIitqLnNTb3J0SWNvbixhLmFvQ29sdW1uc1tiXS5uVGgpLGMucmVtb3ZlQ2xhc3Moai5zU29ydEpVSUFzYysiICIrai5zU29ydEpVSURlc2MrIiAiK2ouc1NvcnRKVUkrIiAiK2ouc1NvcnRKVUlBc2NBbGxvd2VkKyIgIitqLnNTb3J0SlVJRGVzY0FsbG93ZWQpLApjLmFkZENsYXNzKC0xPT1kP2EuYW9Db2x1bW5zW2JdLnNTb3J0aW5nQ2xhc3NKVUk6ImFzYyI9PWhbZF1bMV0/ai5zU29ydEpVSUFzYzpqLnNTb3J0SlVJRGVzYykpfWVsc2UgaShhLmFvQ29sdW1uc1tiXS5uVGgpLmFkZENsYXNzKGEuYW9Db2x1bW5zW2JdLnNTb3J0aW5nQ2xhc3MpO2Y9ai5zU29ydENvbHVtbjtpZihhLm9GZWF0dXJlcy5iU29ydCYmYS5vRmVhdHVyZXMuYlNvcnRDbGFzc2VzKXtkPUwoYSk7aWYoYS5vRmVhdHVyZXMuYkRlZmVyUmVuZGVyKWkoZCkucmVtb3ZlQ2xhc3MoZisiMSAiK2YrIjIgIitmKyIzIik7ZWxzZSBpZihkLmxlbmd0aD49ZSlmb3IoYj0wO2I8ZTtiKyspaWYoLTEhPWRbYl0uY2xhc3NOYW1lLmluZGV4T2YoZisiMSIpKXtjPTA7Zm9yKGE9ZC5sZW5ndGgvZTtjPGE7YysrKWRbZSpjK2JdLmNsYXNzTmFtZT1pLnRyaW0oZFtlKmMrYl0uY2xhc3NOYW1lLnJlcGxhY2UoZisiMSIsIiIpKX1lbHNlIGlmKC0xIT1kW2JdLmNsYXNzTmFtZS5pbmRleE9mKGYrCiIyIikpe2M9MDtmb3IoYT1kLmxlbmd0aC9lO2M8YTtjKyspZFtlKmMrYl0uY2xhc3NOYW1lPWkudHJpbShkW2UqYytiXS5jbGFzc05hbWUucmVwbGFjZShmKyIyIiwiIikpfWVsc2UgaWYoLTEhPWRbYl0uY2xhc3NOYW1lLmluZGV4T2YoZisiMyIpKXtjPTA7Zm9yKGE9ZC5sZW5ndGgvZTtjPGE7YysrKWRbZSpjK2JdLmNsYXNzTmFtZT1pLnRyaW0oZFtlKmMrYl0uY2xhc3NOYW1lLnJlcGxhY2UoIiAiK2YrIjMiLCIiKSl9dmFyIGo9MSxvO2ZvcihiPTA7YjxoLmxlbmd0aDtiKyspe289cGFyc2VJbnQoaFtiXVswXSwxMCk7Yz0wO2ZvcihhPWQubGVuZ3RoL2U7YzxhO2MrKylkW2UqYytvXS5jbGFzc05hbWUrPSIgIitmK2o7Mz5qJiZqKyt9fX1mdW5jdGlvbiBxYShhKXtpZihhLm9GZWF0dXJlcy5iU3RhdGVTYXZlJiYhYS5iRGVzdHJveWluZyl7dmFyIGIsYztiPWEub1Njcm9sbC5iSW5maW5pdGU7dmFyIGQ9e2lDcmVhdGU6KG5ldyBEYXRlKS5nZXRUaW1lKCksaVN0YXJ0OmI/MDphLl9pRGlzcGxheVN0YXJ0LAppRW5kOmI/YS5faURpc3BsYXlMZW5ndGg6YS5faURpc3BsYXlFbmQsaUxlbmd0aDphLl9pRGlzcGxheUxlbmd0aCxhYVNvcnRpbmc6aS5leHRlbmQoITAsW10sYS5hYVNvcnRpbmcpLG9TZWFyY2g6aS5leHRlbmQoITAse30sYS5vUHJldmlvdXNTZWFyY2gpLGFvU2VhcmNoQ29sczppLmV4dGVuZCghMCxbXSxhLmFvUHJlU2VhcmNoQ29scyksYWJWaXNDb2xzOltdfTtiPTA7Zm9yKGM9YS5hb0NvbHVtbnMubGVuZ3RoO2I8YztiKyspZC5hYlZpc0NvbHMucHVzaChhLmFvQ29sdW1uc1tiXS5iVmlzaWJsZSk7QyhhLCJhb1N0YXRlU2F2ZVBhcmFtcyIsInN0YXRlU2F2ZVBhcmFtcyIsW2EsZF0pO2EuZm5TdGF0ZVNhdmUuY2FsbChhLm9JbnN0YW5jZSxhLGQpfX1mdW5jdGlvbiBUYShhLGIpe2lmKGEub0ZlYXR1cmVzLmJTdGF0ZVNhdmUpe3ZhciBjPWEuZm5TdGF0ZUxvYWQuY2FsbChhLm9JbnN0YW5jZSxhKTtpZihjKXt2YXIgZD1DKGEsImFvU3RhdGVMb2FkUGFyYW1zIiwic3RhdGVMb2FkUGFyYW1zIiwKW2EsY10pO2lmKC0xPT09aS5pbkFycmF5KCExLGQpKXthLm9Mb2FkZWRTdGF0ZT1pLmV4dGVuZCghMCx7fSxjKTthLl9pRGlzcGxheVN0YXJ0PWMuaVN0YXJ0O2EuaUluaXREaXNwbGF5U3RhcnQ9Yy5pU3RhcnQ7YS5faURpc3BsYXlFbmQ9Yy5pRW5kO2EuX2lEaXNwbGF5TGVuZ3RoPWMuaUxlbmd0aDthLmFhU29ydGluZz1jLmFhU29ydGluZy5zbGljZSgpO2Euc2F2ZWRfYWFTb3J0aW5nPWMuYWFTb3J0aW5nLnNsaWNlKCk7aS5leHRlbmQoYS5vUHJldmlvdXNTZWFyY2gsYy5vU2VhcmNoKTtpLmV4dGVuZCghMCxhLmFvUHJlU2VhcmNoQ29scyxjLmFvU2VhcmNoQ29scyk7Yi5zYXZlZF9hb0NvbHVtbnM9W107Zm9yKGQ9MDtkPGMuYWJWaXNDb2xzLmxlbmd0aDtkKyspYi5zYXZlZF9hb0NvbHVtbnNbZF09e30sYi5zYXZlZF9hb0NvbHVtbnNbZF0uYlZpc2libGU9Yy5hYlZpc0NvbHNbZF07QyhhLCJhb1N0YXRlTG9hZGVkIiwic3RhdGVMb2FkZWQiLFthLGNdKX19fX1mdW5jdGlvbiBVYShhKXtmb3IodmFyIGI9Ck8ubG9jYXRpb24ucGF0aG5hbWUuc3BsaXQoIi8iKSxhPWErIl8iK2JbYi5sZW5ndGgtMV0ucmVwbGFjZSgvW1wvOl0vZywiIikudG9Mb3dlckNhc2UoKSsiPSIsYj1sLmNvb2tpZS5zcGxpdCgiOyIpLGM9MDtjPGIubGVuZ3RoO2MrKyl7Zm9yKHZhciBkPWJbY107IiAiPT1kLmNoYXJBdCgwKTspZD1kLnN1YnN0cmluZygxLGQubGVuZ3RoKTtpZigwPT09ZC5pbmRleE9mKGEpKXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoZC5zdWJzdHJpbmcoYS5sZW5ndGgsZC5sZW5ndGgpKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiB1KGEpe2Zvcih2YXIgYj0wO2I8ai5zZXR0aW5ncy5sZW5ndGg7YisrKWlmKGouc2V0dGluZ3NbYl0ublRhYmxlPT09YSlyZXR1cm4gai5zZXR0aW5nc1tiXTtyZXR1cm4gbnVsbH1mdW5jdGlvbiBVKGEpe2Zvcih2YXIgYj1bXSxhPWEuYW9EYXRhLGM9MCxkPWEubGVuZ3RoO2M8ZDtjKyspbnVsbCE9PWFbY10ublRyJiZiLnB1c2goYVtjXS5uVHIpO3JldHVybiBifWZ1bmN0aW9uIEwoYSwKYil7dmFyIGM9W10sZCxoLGYsZSxpLGo7aD0wO3ZhciBvPWEuYW9EYXRhLmxlbmd0aDtiIT09biYmKGg9YixvPWIrMSk7Zm9yKGY9aDtmPG87ZisrKWlmKGo9YS5hb0RhdGFbZl0sbnVsbCE9PWoublRyKXtoPVtdO2U9MDtmb3IoaT1qLm5Uci5jaGlsZE5vZGVzLmxlbmd0aDtlPGk7ZSsrKWQ9ai5uVHIuY2hpbGROb2Rlc1tlXS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLCgidGQiPT1kfHwidGgiPT1kKSYmaC5wdXNoKGoublRyLmNoaWxkTm9kZXNbZV0pO2U9ZD0wO2ZvcihpPWEuYW9Db2x1bW5zLmxlbmd0aDtlPGk7ZSsrKWEuYW9Db2x1bW5zW2VdLmJWaXNpYmxlP2MucHVzaChoW2UtZF0pOihjLnB1c2goai5fYW5IaWRkZW5bZV0pLGQrKyl9cmV0dXJuIGN9ZnVuY3Rpb24gRShhLGIsYyl7YT1udWxsPT09YT8iRGF0YVRhYmxlcyB3YXJuaW5nOiAiK2M6IkRhdGFUYWJsZXMgd2FybmluZyAodGFibGUgaWQgPSAnIithLnNUYWJsZUlkKyInKTogIitjO2lmKDA9PT1iKWlmKCJhbGVydCI9PQpqLmV4dC5zRXJyTW9kZSlhbGVydChhKTtlbHNlIHRocm93IEVycm9yKGEpO2Vsc2UgTy5jb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coYSl9ZnVuY3Rpb24gcChhLGIsYyxkKXtkPT09biYmKGQ9Yyk7YltjXSE9PW4mJihhW2RdPWJbY10pfWZ1bmN0aW9uIFZhKGEsYil7dmFyIGMsZDtmb3IoZCBpbiBiKWIuaGFzT3duUHJvcGVydHkoZCkmJihjPWJbZF0sIm9iamVjdCI9PT10eXBlb2YgZVtkXSYmbnVsbCE9PWMmJiExPT09aS5pc0FycmF5KGMpP2kuZXh0ZW5kKCEwLGFbZF0sYyk6YVtkXT1jKTtyZXR1cm4gYX1mdW5jdGlvbiBTYShhLGIsYyl7aShhKS5iaW5kKCJjbGljay5EVCIsYixmdW5jdGlvbihiKXthLmJsdXIoKTtjKGIpfSkuYmluZCgia2V5cHJlc3MuRFQiLGIsZnVuY3Rpb24oYSl7MTM9PT1hLndoaWNoJiZjKGEpfSkuYmluZCgic2VsZWN0c3RhcnQuRFQiLGZ1bmN0aW9uKCl7cmV0dXJuITF9KX1mdW5jdGlvbiBCKGEsYixjLGQpe2MmJmFbYl0ucHVzaCh7Zm46YywKc05hbWU6ZH0pfWZ1bmN0aW9uIEMoYSxiLGMsZCl7Zm9yKHZhciBiPWFbYl0saD1bXSxlPWIubGVuZ3RoLTE7MDw9ZTtlLS0paC5wdXNoKGJbZV0uZm4uYXBwbHkoYS5vSW5zdGFuY2UsZCkpO251bGwhPT1jJiZpKGEub0luc3RhbmNlKS50cmlnZ2VyKGMsZCk7cmV0dXJuIGh9ZnVuY3Rpb24gV2EoYSl7dmFyIGI9aSgnPGRpdiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBsZWZ0OjA7IGhlaWdodDoxcHg7IHdpZHRoOjFweDsgb3ZlcmZsb3c6aGlkZGVuIj48ZGl2IHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjFweDsgbGVmdDoxcHg7IHdpZHRoOjEwMHB4OyBoZWlnaHQ6NTBweDsgb3ZlcmZsb3c6c2Nyb2xsOyI+PGRpdiBpZD0iRFRfQnJvd3NlclRlc3QiIHN0eWxlPSJ3aWR0aDoxMDAlOyBoZWlnaHQ6MTBweDsiPjwvZGl2PjwvZGl2PjwvZGl2PicpWzBdO2wuYm9keS5hcHBlbmRDaGlsZChiKTthLm9Ccm93c2VyLmJTY3JvbGxPdmVyc2l6ZT0xMDA9PT1pKCIjRFRfQnJvd3NlclRlc3QiLApiKVswXS5vZmZzZXRXaWR0aD8hMDohMTtsLmJvZHkucmVtb3ZlQ2hpbGQoYil9ZnVuY3Rpb24gWGEoYSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGI9W3UodGhpc1tqLmV4dC5pQXBpSW5kZXhdKV0uY29uY2F0KEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cykpO3JldHVybiBqLmV4dC5vQXBpW2FdLmFwcGx5KHRoaXMsYil9fXZhciBWPS9cWy4qP1xdJC8sWWE9Ty5KU09OP0pTT04uc3RyaW5naWZ5OmZ1bmN0aW9uKGEpe3ZhciBiPXR5cGVvZiBhO2lmKCJvYmplY3QiIT09Ynx8bnVsbD09PWEpcmV0dXJuInN0cmluZyI9PT1iJiYoYT0nIicrYSsnIicpLGErIiI7dmFyIGMsZCxoPVtdLGU9aS5pc0FycmF5KGEpO2ZvcihjIGluIGEpZD1hW2NdLGI9dHlwZW9mIGQsInN0cmluZyI9PT1iP2Q9JyInK2QrJyInOiJvYmplY3QiPT09YiYmbnVsbCE9PWQmJihkPVlhKGQpKSxoLnB1c2goKGU/IiI6JyInK2MrJyI6JykrZCk7cmV0dXJuKGU/IlsiOiJ7IikraCsoZT8iXSI6In0iKX07CnRoaXMuJD1mdW5jdGlvbihhLGIpe3ZhciBjLGQsaD1bXSxlO2Q9dSh0aGlzW2ouZXh0LmlBcGlJbmRleF0pO3ZhciBnPWQuYW9EYXRhLG89ZC5haURpc3BsYXksaz1kLmFpRGlzcGxheU1hc3RlcjtifHwoYj17fSk7Yj1pLmV4dGVuZCh7fSx7ZmlsdGVyOiJub25lIixvcmRlcjoiY3VycmVudCIscGFnZToiYWxsIn0sYik7aWYoImN1cnJlbnQiPT1iLnBhZ2Upe2M9ZC5faURpc3BsYXlTdGFydDtmb3IoZD1kLmZuRGlzcGxheUVuZCgpO2M8ZDtjKyspKGU9Z1tvW2NdXS5uVHIpJiZoLnB1c2goZSl9ZWxzZSBpZigiY3VycmVudCI9PWIub3JkZXImJiJub25lIj09Yi5maWx0ZXIpe2M9MDtmb3IoZD1rLmxlbmd0aDtjPGQ7YysrKShlPWdba1tjXV0ublRyKSYmaC5wdXNoKGUpfWVsc2UgaWYoImN1cnJlbnQiPT1iLm9yZGVyJiYiYXBwbGllZCI9PWIuZmlsdGVyKXtjPTA7Zm9yKGQ9by5sZW5ndGg7YzxkO2MrKykoZT1nW29bY11dLm5UcikmJmgucHVzaChlKX1lbHNlIGlmKCJvcmlnaW5hbCI9PQpiLm9yZGVyJiYibm9uZSI9PWIuZmlsdGVyKXtjPTA7Zm9yKGQ9Zy5sZW5ndGg7YzxkO2MrKykoZT1nW2NdLm5UcikmJmgucHVzaChlKX1lbHNlIGlmKCJvcmlnaW5hbCI9PWIub3JkZXImJiJhcHBsaWVkIj09Yi5maWx0ZXIpe2M9MDtmb3IoZD1nLmxlbmd0aDtjPGQ7YysrKWU9Z1tjXS5uVHIsLTEhPT1pLmluQXJyYXkoYyxvKSYmZSYmaC5wdXNoKGUpfWVsc2UgRShkLDEsIlVua25vd24gc2VsZWN0aW9uIG9wdGlvbnMiKTtoPWkoaCk7Yz1oLmZpbHRlcihhKTtoPWguZmluZChhKTtyZXR1cm4gaShbXS5jb25jYXQoaS5tYWtlQXJyYXkoYyksaS5tYWtlQXJyYXkoaCkpKX07dGhpcy5fPWZ1bmN0aW9uKGEsYil7dmFyIGM9W10sZCxlLGY9dGhpcy4kKGEsYik7ZD0wO2ZvcihlPWYubGVuZ3RoO2Q8ZTtkKyspYy5wdXNoKHRoaXMuZm5HZXREYXRhKGZbZF0pKTtyZXR1cm4gY307dGhpcy5mbkFkZERhdGE9ZnVuY3Rpb24oYSxiKXtpZigwPT09YS5sZW5ndGgpcmV0dXJuW107dmFyIGM9W10sCmQsZT11KHRoaXNbai5leHQuaUFwaUluZGV4XSk7aWYoIm9iamVjdCI9PT10eXBlb2YgYVswXSYmbnVsbCE9PWFbMF0pZm9yKHZhciBmPTA7ZjxhLmxlbmd0aDtmKyspe2Q9SihlLGFbZl0pO2lmKC0xPT1kKXJldHVybiBjO2MucHVzaChkKX1lbHNle2Q9SihlLGEpO2lmKC0xPT1kKXJldHVybiBjO2MucHVzaChkKX1lLmFpRGlzcGxheT1lLmFpRGlzcGxheU1hc3Rlci5zbGljZSgpOyhiPT09bnx8YikmJmFhKGUpO3JldHVybiBjfTt0aGlzLmZuQWRqdXN0Q29sdW1uU2l6aW5nPWZ1bmN0aW9uKGEpe3ZhciBiPXUodGhpc1tqLmV4dC5pQXBpSW5kZXhdKTtrKGIpO2E9PT1ufHxhP3RoaXMuZm5EcmF3KCExKTooIiIhPT1iLm9TY3JvbGwuc1h8fCIiIT09Yi5vU2Nyb2xsLnNZKSYmdGhpcy5vQXBpLl9mblNjcm9sbERyYXcoYil9O3RoaXMuZm5DbGVhclRhYmxlPWZ1bmN0aW9uKGEpe3ZhciBiPXUodGhpc1tqLmV4dC5pQXBpSW5kZXhdKTtmYShiKTsoYT09PW58fGEpJiZ6KGIpfTt0aGlzLmZuQ2xvc2U9CmZ1bmN0aW9uKGEpe2Zvcih2YXIgYj11KHRoaXNbai5leHQuaUFwaUluZGV4XSksYz0wO2M8Yi5hb09wZW5Sb3dzLmxlbmd0aDtjKyspaWYoYi5hb09wZW5Sb3dzW2NdLm5QYXJlbnQ9PWEpcmV0dXJuKGE9Yi5hb09wZW5Sb3dzW2NdLm5Uci5wYXJlbnROb2RlKSYmYS5yZW1vdmVDaGlsZChiLmFvT3BlblJvd3NbY10ublRyKSxiLmFvT3BlblJvd3Muc3BsaWNlKGMsMSksMDtyZXR1cm4gMX07dGhpcy5mbkRlbGV0ZVJvdz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dSh0aGlzW2ouZXh0LmlBcGlJbmRleF0pLGUsZixhPSJvYmplY3QiPT09dHlwZW9mIGE/SyhkLGEpOmEsZz1kLmFvRGF0YS5zcGxpY2UoYSwxKTtlPTA7Zm9yKGY9ZC5hb0RhdGEubGVuZ3RoO2U8ZjtlKyspbnVsbCE9PWQuYW9EYXRhW2VdLm5UciYmKGQuYW9EYXRhW2VdLm5Uci5fRFRfUm93SW5kZXg9ZSk7ZT1pLmluQXJyYXkoYSxkLmFpRGlzcGxheSk7ZC5hc0RhdGFTZWFyY2guc3BsaWNlKGUsMSk7Z2EoZC5haURpc3BsYXlNYXN0ZXIsCmEpO2dhKGQuYWlEaXNwbGF5LGEpOyJmdW5jdGlvbiI9PT10eXBlb2YgYiYmYi5jYWxsKHRoaXMsZCxnKTtkLl9pRGlzcGxheVN0YXJ0Pj1kLmZuUmVjb3Jkc0Rpc3BsYXkoKSYmKGQuX2lEaXNwbGF5U3RhcnQtPWQuX2lEaXNwbGF5TGVuZ3RoLDA+ZC5faURpc3BsYXlTdGFydCYmKGQuX2lEaXNwbGF5U3RhcnQ9MCkpO2lmKGM9PT1ufHxjKUEoZCkseihkKTtyZXR1cm4gZ307dGhpcy5mbkRlc3Ryb3k9ZnVuY3Rpb24oYSl7dmFyIGI9dSh0aGlzW2ouZXh0LmlBcGlJbmRleF0pLGM9Yi5uVGFibGVXcmFwcGVyLnBhcmVudE5vZGUsZD1iLm5UQm9keSxlLGYsYT1hPT09bj8hMTohMDtiLmJEZXN0cm95aW5nPSEwO0MoYiwiYW9EZXN0cm95Q2FsbGJhY2siLCJkZXN0cm95IixbYl0pO2U9MDtmb3IoZj1iLmFvQ29sdW1ucy5sZW5ndGg7ZTxmO2UrKykhMT09PWIuYW9Db2x1bW5zW2VdLmJWaXNpYmxlJiZ0aGlzLmZuU2V0Q29sdW1uVmlzKGUsITApO2koYi5uVGFibGVXcmFwcGVyKS5maW5kKCIqIikuYW5kU2VsZigpLnVuYmluZCgiLkRUIik7CmkoInRib2R5PnRyPnRkLiIrYi5vQ2xhc3Nlcy5zUm93RW1wdHksYi5uVGFibGUpLnBhcmVudCgpLnJlbW92ZSgpO2IublRhYmxlIT1iLm5USGVhZC5wYXJlbnROb2RlJiYoaShiLm5UYWJsZSkuY2hpbGRyZW4oInRoZWFkIikucmVtb3ZlKCksYi5uVGFibGUuYXBwZW5kQ2hpbGQoYi5uVEhlYWQpKTtiLm5URm9vdCYmYi5uVGFibGUhPWIublRGb290LnBhcmVudE5vZGUmJihpKGIublRhYmxlKS5jaGlsZHJlbigidGZvb3QiKS5yZW1vdmUoKSxiLm5UYWJsZS5hcHBlbmRDaGlsZChiLm5URm9vdCkpO2IublRhYmxlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYi5uVGFibGUpO2koYi5uVGFibGVXcmFwcGVyKS5yZW1vdmUoKTtiLmFhU29ydGluZz1bXTtiLmFhU29ydGluZ0ZpeGVkPVtdO1IoYik7aShVKGIpKS5yZW1vdmVDbGFzcyhiLmFzU3RyaXBlQ2xhc3Nlcy5qb2luKCIgIikpO2koInRoLCB0ZCIsYi5uVEhlYWQpLnJlbW92ZUNsYXNzKFtiLm9DbGFzc2VzLnNTb3J0YWJsZSxiLm9DbGFzc2VzLnNTb3J0YWJsZUFzYywKYi5vQ2xhc3Nlcy5zU29ydGFibGVEZXNjLGIub0NsYXNzZXMuc1NvcnRhYmxlTm9uZV0uam9pbigiICIpKTtiLmJKVUkmJihpKCJ0aCBzcGFuLiIrYi5vQ2xhc3Nlcy5zU29ydEljb24rIiwgdGQgc3Bhbi4iK2Iub0NsYXNzZXMuc1NvcnRJY29uLGIublRIZWFkKS5yZW1vdmUoKSxpKCJ0aCwgdGQiLGIublRIZWFkKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGE9aSgiZGl2LiIrYi5vQ2xhc3Nlcy5zU29ydEpVSVdyYXBwZXIsdGhpcyksYz1hLmNvbnRlbnRzKCk7aSh0aGlzKS5hcHBlbmQoYyk7YS5yZW1vdmUoKX0pKTshYSYmYi5uVGFibGVSZWluc2VydEJlZm9yZT9jLmluc2VydEJlZm9yZShiLm5UYWJsZSxiLm5UYWJsZVJlaW5zZXJ0QmVmb3JlKTphfHxjLmFwcGVuZENoaWxkKGIublRhYmxlKTtlPTA7Zm9yKGY9Yi5hb0RhdGEubGVuZ3RoO2U8ZjtlKyspbnVsbCE9PWIuYW9EYXRhW2VdLm5UciYmZC5hcHBlbmRDaGlsZChiLmFvRGF0YVtlXS5uVHIpOyEwPT09Yi5vRmVhdHVyZXMuYkF1dG9XaWR0aCYmCihiLm5UYWJsZS5zdHlsZS53aWR0aD1xKGIuc0Rlc3Ryb3lXaWR0aCkpO2koZCkuY2hpbGRyZW4oInRyOmV2ZW4iKS5hZGRDbGFzcyhiLmFzRGVzdHJveVN0cmlwZXNbMF0pO2koZCkuY2hpbGRyZW4oInRyOm9kZCIpLmFkZENsYXNzKGIuYXNEZXN0cm95U3RyaXBlc1sxXSk7ZT0wO2ZvcihmPWouc2V0dGluZ3MubGVuZ3RoO2U8ZjtlKyspai5zZXR0aW5nc1tlXT09YiYmai5zZXR0aW5ncy5zcGxpY2UoZSwxKTtiPW51bGx9O3RoaXMuZm5EcmF3PWZ1bmN0aW9uKGEpe3ZhciBiPXUodGhpc1tqLmV4dC5pQXBpSW5kZXhdKTshMT09PWE/KEEoYikseihiKSk6YWEoYil9O3RoaXMuZm5GaWx0ZXI9ZnVuY3Rpb24oYSxiLGMsZCxlLGYpe3ZhciBnPXUodGhpc1tqLmV4dC5pQXBpSW5kZXhdKTtpZihnLm9GZWF0dXJlcy5iRmlsdGVyKXtpZihjPT09bnx8bnVsbD09PWMpYz0hMTtpZihkPT09bnx8bnVsbD09PWQpZD0hMDtpZihlPT09bnx8bnVsbD09PWUpZT0hMDtpZihmPT09bnx8bnVsbD09PQpmKWY9ITA7aWYoYj09PW58fG51bGw9PT1iKXtpZihNKGcse3NTZWFyY2g6YSsiIixiUmVnZXg6YyxiU21hcnQ6ZCxiQ2FzZUluc2Vuc2l0aXZlOmZ9LDEpLGUmJmcuYWFuRmVhdHVyZXMuZil7Yj1nLmFhbkZlYXR1cmVzLmY7Yz0wO2ZvcihkPWIubGVuZ3RoO2M8ZDtjKyspaShiW2NdLl9EVF9JbnB1dCkudmFsKGEpfX1lbHNlIGkuZXh0ZW5kKGcuYW9QcmVTZWFyY2hDb2xzW2JdLHtzU2VhcmNoOmErIiIsYlJlZ2V4OmMsYlNtYXJ0OmQsYkNhc2VJbnNlbnNpdGl2ZTpmfSksTShnLGcub1ByZXZpb3VzU2VhcmNoLDEpfX07dGhpcy5mbkdldERhdGE9ZnVuY3Rpb24oYSxiKXt2YXIgYz11KHRoaXNbai5leHQuaUFwaUluZGV4XSk7aWYoYSE9PW4pe3ZhciBkPWE7aWYoIm9iamVjdCI9PT10eXBlb2YgYSl7dmFyIGU9YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpOyJ0ciI9PT1lP2Q9SyhjLGEpOiJ0ZCI9PT1lJiYoZD1LKGMsYS5wYXJlbnROb2RlKSxiPWVhKGMsZCxhKSl9cmV0dXJuIGIhPT0Kbj94KGMsZCxiLCIiKTpjLmFvRGF0YVtkXSE9PW4/Yy5hb0RhdGFbZF0uX2FEYXRhOm51bGx9cmV0dXJuIFooYyl9O3RoaXMuZm5HZXROb2Rlcz1mdW5jdGlvbihhKXt2YXIgYj11KHRoaXNbai5leHQuaUFwaUluZGV4XSk7cmV0dXJuIGEhPT1uP2IuYW9EYXRhW2FdIT09bj9iLmFvRGF0YVthXS5uVHI6bnVsbDpVKGIpfTt0aGlzLmZuR2V0UG9zaXRpb249ZnVuY3Rpb24oYSl7dmFyIGI9dSh0aGlzW2ouZXh0LmlBcGlJbmRleF0pLGM9YS5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpO3JldHVybiJUUiI9PWM/SyhiLGEpOiJURCI9PWN8fCJUSCI9PWM/KGM9SyhiLGEucGFyZW50Tm9kZSksYT1lYShiLGMsYSksW2MsdChiLGEpLGFdKTpudWxsfTt0aGlzLmZuSXNPcGVuPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj11KHRoaXNbai5leHQuaUFwaUluZGV4XSksYz0wO2M8Yi5hb09wZW5Sb3dzLmxlbmd0aDtjKyspaWYoYi5hb09wZW5Sb3dzW2NdLm5QYXJlbnQ9PWEpcmV0dXJuITA7cmV0dXJuITF9Owp0aGlzLmZuT3Blbj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dSh0aGlzW2ouZXh0LmlBcGlJbmRleF0pLGU9VShkKTtpZigtMSE9PWkuaW5BcnJheShhLGUpKXt0aGlzLmZuQ2xvc2UoYSk7dmFyIGU9bC5jcmVhdGVFbGVtZW50KCJ0ciIpLGY9bC5jcmVhdGVFbGVtZW50KCJ0ZCIpO2UuYXBwZW5kQ2hpbGQoZik7Zi5jbGFzc05hbWU9YztmLmNvbFNwYW49dyhkKTsic3RyaW5nIj09PXR5cGVvZiBiP2YuaW5uZXJIVE1MPWI6aShmKS5odG1sKGIpO2I9aSgidHIiLGQublRCb2R5KTstMSE9aS5pbkFycmF5KGEsYikmJmkoZSkuaW5zZXJ0QWZ0ZXIoYSk7ZC5hb09wZW5Sb3dzLnB1c2goe25UcjplLG5QYXJlbnQ6YX0pO3JldHVybiBlfX07dGhpcy5mblBhZ2VDaGFuZ2U9ZnVuY3Rpb24oYSxiKXt2YXIgYz11KHRoaXNbai5leHQuaUFwaUluZGV4XSk7cGEoYyxhKTtBKGMpOyhiPT09bnx8YikmJnooYyl9O3RoaXMuZm5TZXRDb2x1bW5WaXM9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXUodGhpc1tqLmV4dC5pQXBpSW5kZXhdKSwKZSxmLGc9ZC5hb0NvbHVtbnMsaT1kLmFvRGF0YSxvLG07aWYoZ1thXS5iVmlzaWJsZSE9Yil7aWYoYil7Zm9yKGU9Zj0wO2U8YTtlKyspZ1tlXS5iVmlzaWJsZSYmZisrO209Zj49dyhkKTtpZighbSlmb3IoZT1hO2U8Zy5sZW5ndGg7ZSsrKWlmKGdbZV0uYlZpc2libGUpe289ZTticmVha31lPTA7Zm9yKGY9aS5sZW5ndGg7ZTxmO2UrKyludWxsIT09aVtlXS5uVHImJihtP2lbZV0ublRyLmFwcGVuZENoaWxkKGlbZV0uX2FuSGlkZGVuW2FdKTppW2VdLm5Uci5pbnNlcnRCZWZvcmUoaVtlXS5fYW5IaWRkZW5bYV0sTChkLGUpW29dKSl9ZWxzZXtlPTA7Zm9yKGY9aS5sZW5ndGg7ZTxmO2UrKyludWxsIT09aVtlXS5uVHImJihvPUwoZCxlKVthXSxpW2VdLl9hbkhpZGRlblthXT1vLG8ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChvKSl9Z1thXS5iVmlzaWJsZT1iO1goZCxkLmFvSGVhZGVyKTtkLm5URm9vdCYmWChkLGQuYW9Gb290ZXIpO2U9MDtmb3IoZj1kLmFvT3BlblJvd3MubGVuZ3RoO2U8CmY7ZSsrKWQuYW9PcGVuUm93c1tlXS5uVHIuY29sU3Bhbj13KGQpO2lmKGM9PT1ufHxjKWsoZCkseihkKTtxYShkKX19O3RoaXMuZm5TZXR0aW5ncz1mdW5jdGlvbigpe3JldHVybiB1KHRoaXNbai5leHQuaUFwaUluZGV4XSl9O3RoaXMuZm5Tb3J0PWZ1bmN0aW9uKGEpe3ZhciBiPXUodGhpc1tqLmV4dC5pQXBpSW5kZXhdKTtiLmFhU29ydGluZz1hO1EoYil9O3RoaXMuZm5Tb3J0TGlzdGVuZXI9ZnVuY3Rpb24oYSxiLGMpe2hhKHUodGhpc1tqLmV4dC5pQXBpSW5kZXhdKSxhLGIsYyl9O3RoaXMuZm5VcGRhdGU9ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj11KHRoaXNbai5leHQuaUFwaUluZGV4XSksYj0ib2JqZWN0Ij09PXR5cGVvZiBiP0soZixiKTpiO2lmKGkuaXNBcnJheShhKSYmYz09PW4pe2YuYW9EYXRhW2JdLl9hRGF0YT1hLnNsaWNlKCk7Zm9yKGM9MDtjPGYuYW9Db2x1bW5zLmxlbmd0aDtjKyspdGhpcy5mblVwZGF0ZSh4KGYsYixjKSxiLGMsITEsITEpfWVsc2UgaWYoaS5pc1BsYWluT2JqZWN0KGEpJiYKYz09PW4pe2YuYW9EYXRhW2JdLl9hRGF0YT1pLmV4dGVuZCghMCx7fSxhKTtmb3IoYz0wO2M8Zi5hb0NvbHVtbnMubGVuZ3RoO2MrKyl0aGlzLmZuVXBkYXRlKHgoZixiLGMpLGIsYywhMSwhMSl9ZWxzZXtJKGYsYixjLGEpO3ZhciBhPXgoZixiLGMsImRpc3BsYXkiKSxnPWYuYW9Db2x1bW5zW2NdO251bGwhPT1nLmZuUmVuZGVyJiYoYT1UKGYsYixjKSxnLmJVc2VSZW5kZXJlZCYmSShmLGIsYyxhKSk7bnVsbCE9PWYuYW9EYXRhW2JdLm5UciYmKEwoZixiKVtjXS5pbm5lckhUTUw9YSl9Yz1pLmluQXJyYXkoYixmLmFpRGlzcGxheSk7Zi5hc0RhdGFTZWFyY2hbY109bWEoZixZKGYsYiwiZmlsdGVyIix2KGYsImJTZWFyY2hhYmxlIikpKTsoZT09PW58fGUpJiZrKGYpOyhkPT09bnx8ZCkmJmFhKGYpO3JldHVybiAwfTt0aGlzLmZuVmVyc2lvbkNoZWNrPWouZXh0LmZuVmVyc2lvbkNoZWNrO3RoaXMub0FwaT17X2ZuRXh0ZXJuQXBpRnVuYzpYYSxfZm5Jbml0aWFsaXNlOmJhLF9mbkluaXRDb21wbGV0ZTokLApfZm5MYW5ndWFnZUNvbXBhdDpvYSxfZm5BZGRDb2x1bW46byxfZm5Db2x1bW5PcHRpb25zOnIsX2ZuQWRkRGF0YTpKLF9mbkNyZWF0ZVRyOmRhLF9mbkdhdGhlckRhdGE6dmEsX2ZuQnVpbGRIZWFkOndhLF9mbkRyYXdIZWFkOlgsX2ZuRHJhdzp6LF9mblJlRHJhdzphYSxfZm5BamF4VXBkYXRlOnhhLF9mbkFqYXhQYXJhbWV0ZXJzOkZhLF9mbkFqYXhVcGRhdGVEcmF3OkdhLF9mblNlcnZlclBhcmFtczpqYSxfZm5BZGRPcHRpb25zSHRtbDp5YSxfZm5GZWF0dXJlSHRtbFRhYmxlOkNhLF9mblNjcm9sbERyYXc6TWEsX2ZuQWRqdXN0Q29sdW1uU2l6aW5nOmssX2ZuRmVhdHVyZUh0bWxGaWx0ZXI6QWEsX2ZuRmlsdGVyQ29tcGxldGU6TSxfZm5GaWx0ZXJDdXN0b206SmEsX2ZuRmlsdGVyQ29sdW1uOklhLF9mbkZpbHRlcjpIYSxfZm5CdWlsZFNlYXJjaEFycmF5OmthLF9mbkJ1aWxkU2VhcmNoUm93Om1hLF9mbkZpbHRlckNyZWF0ZVNlYXJjaDpsYSxfZm5EYXRhVG9TZWFyY2g6S2EsX2ZuU29ydDpRLApfZm5Tb3J0QXR0YWNoTGlzdGVuZXI6aGEsX2ZuU29ydGluZ0NsYXNzZXM6UixfZm5GZWF0dXJlSHRtbFBhZ2luYXRlOkVhLF9mblBhZ2VDaGFuZ2U6cGEsX2ZuRmVhdHVyZUh0bWxJbmZvOkRhLF9mblVwZGF0ZUluZm86TGEsX2ZuRmVhdHVyZUh0bWxMZW5ndGg6emEsX2ZuRmVhdHVyZUh0bWxQcm9jZXNzaW5nOkJhLF9mblByb2Nlc3NpbmdEaXNwbGF5OkYsX2ZuVmlzaWJsZVRvQ29sdW1uSW5kZXg6RyxfZm5Db2x1bW5JbmRleFRvVmlzaWJsZTp0LF9mbk5vZGVUb0RhdGFJbmRleDpLLF9mblZpc2JsZUNvbHVtbnM6dyxfZm5DYWxjdWxhdGVFbmQ6QSxfZm5Db252ZXJ0VG9XaWR0aDpOYSxfZm5DYWxjdWxhdGVDb2x1bW5XaWR0aHM6Y2EsX2ZuU2Nyb2xsaW5nV2lkdGhBZGp1c3Q6UGEsX2ZuR2V0V2lkZXN0Tm9kZTpPYSxfZm5HZXRNYXhMZW5TdHJpbmc6UWEsX2ZuU3RyaW5nVG9Dc3M6cSxfZm5EZXRlY3RUeXBlOkQsX2ZuU2V0dGluZ3NGcm9tTm9kZTp1LF9mbkdldERhdGFNYXN0ZXI6WiwKX2ZuR2V0VHJOb2RlczpVLF9mbkdldFRkTm9kZXM6TCxfZm5Fc2NhcGVSZWdleDpuYSxfZm5EZWxldGVJbmRleDpnYSxfZm5SZU9yZGVySW5kZXg6eSxfZm5Db2x1bW5PcmRlcmluZzpILF9mbkxvZzpFLF9mbkNsZWFyVGFibGU6ZmEsX2ZuU2F2ZVN0YXRlOnFhLF9mbkxvYWRTdGF0ZTpUYSxfZm5DcmVhdGVDb29raWU6ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj1uZXcgRGF0ZTtmLnNldFRpbWUoZi5nZXRUaW1lKCkrMUUzKmMpO3ZhciBjPU8ubG9jYXRpb24ucGF0aG5hbWUuc3BsaXQoIi8iKSxhPWErIl8iK2MucG9wKCkucmVwbGFjZSgvW1wvOl0vZywiIikudG9Mb3dlckNhc2UoKSxnO251bGwhPT1lPyhnPSJmdW5jdGlvbiI9PT10eXBlb2YgaS5wYXJzZUpTT04/aS5wYXJzZUpTT04oYik6ZXZhbCgiKCIrYisiKSIpLGI9ZShhLGcsZi50b0dNVFN0cmluZygpLGMuam9pbigiLyIpKyIvIikpOmI9YSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGIpKyI7IGV4cGlyZXM9IitmLnRvR01UU3RyaW5nKCkrCiI7IHBhdGg9IitjLmpvaW4oIi8iKSsiLyI7ZT0iIjtmPTk5OTk5OTk5OTk5OTk7aWYoNDA5NjwobnVsbCE9PVVhKGEpP2wuY29va2llLmxlbmd0aDpiLmxlbmd0aCtsLmNvb2tpZS5sZW5ndGgpKzEwKXtmb3IodmFyIGE9bC5jb29raWUuc3BsaXQoIjsiKSxqPTAsbz1hLmxlbmd0aDtqPG87aisrKWlmKC0xIT1hW2pdLmluZGV4T2YoZCkpe3ZhciBrPWFbal0uc3BsaXQoIj0iKTt0cnl7Zz1ldmFsKCIoIitkZWNvZGVVUklDb21wb25lbnQoa1sxXSkrIikiKX1jYXRjaChyKXtjb250aW51ZX1nLmlDcmVhdGUmJmcuaUNyZWF0ZTxmJiYoZT1rWzBdLGY9Zy5pQ3JlYXRlKX0iIiE9PWUmJihsLmNvb2tpZT1lKyI9OyBleHBpcmVzPVRodSwgMDEtSmFuLTE5NzAgMDA6MDA6MDEgR01UOyBwYXRoPSIrYy5qb2luKCIvIikrIi8iKX1sLmNvb2tpZT1ifSxfZm5SZWFkQ29va2llOlVhLF9mbkRldGVjdEhlYWRlcjpXLF9mbkdldFVuaXF1ZVRoczpQLF9mblNjcm9sbEJhcldpZHRoOlJhLF9mbkFwcGx5VG9DaGlsZHJlbjpOLApfZm5NYXA6cCxfZm5HZXRSb3dEYXRhOlksX2ZuR2V0Q2VsbERhdGE6eCxfZm5TZXRDZWxsRGF0YTpJLF9mbkdldE9iamVjdERhdGFGbjpTLF9mblNldE9iamVjdERhdGFGbjp0YSxfZm5BcHBseUNvbHVtbkRlZnM6dWEsX2ZuQmluZEFjdGlvbjpTYSxfZm5FeHRlbmQ6VmEsX2ZuQ2FsbGJhY2tSZWc6QixfZm5DYWxsYmFja0ZpcmU6QyxfZm5Kc29uU3RyaW5nOllhLF9mblJlbmRlcjpULF9mbk5vZGVUb0NvbHVtbkluZGV4OmVhLF9mbkluZm9NYWNyb3M6aWEsX2ZuQnJvd3NlckRldGVjdDpXYSxfZm5HZXRDb2x1bW5zOnZ9O2kuZXh0ZW5kKGouZXh0Lm9BcGksdGhpcy5vQXBpKTtmb3IodmFyIHJhIGluIGouZXh0Lm9BcGkpcmEmJih0aGlzW3JhXT1YYShyYSkpO3ZhciBzYT10aGlzO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYT0wLGIsYyxkO2M9dGhpcy5nZXRBdHRyaWJ1dGUoImlkIik7dmFyIGg9ITEsZj0hMTtpZigidGFibGUiIT10aGlzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpRShudWxsLAowLCJBdHRlbXB0ZWQgdG8gaW5pdGlhbGlzZSBEYXRhVGFibGVzIG9uIGEgbm9kZSB3aGljaCBpcyBub3QgYSB0YWJsZTogIit0aGlzLm5vZGVOYW1lKTtlbHNle2E9MDtmb3IoYj1qLnNldHRpbmdzLmxlbmd0aDthPGI7YSsrKXtpZihqLnNldHRpbmdzW2FdLm5UYWJsZT09dGhpcyl7aWYoZT09PW58fGUuYlJldHJpZXZlKXJldHVybiBqLnNldHRpbmdzW2FdLm9JbnN0YW5jZTtpZihlLmJEZXN0cm95KXtqLnNldHRpbmdzW2FdLm9JbnN0YW5jZS5mbkRlc3Ryb3koKTticmVha31lbHNle0Uoai5zZXR0aW5nc1thXSwwLCJDYW5ub3QgcmVpbml0aWFsaXNlIERhdGFUYWJsZS5cblxuVG8gcmV0cmlldmUgdGhlIERhdGFUYWJsZXMgb2JqZWN0IGZvciB0aGlzIHRhYmxlLCBwYXNzIG5vIGFyZ3VtZW50cyBvciBzZWUgdGhlIGRvY3MgZm9yIGJSZXRyaWV2ZSBhbmQgYkRlc3Ryb3kiKTtyZXR1cm59fWlmKGouc2V0dGluZ3NbYV0uc1RhYmxlSWQ9PXRoaXMuaWQpe2ouc2V0dGluZ3Muc3BsaWNlKGEsCjEpO2JyZWFrfX1pZihudWxsPT09Y3x8IiI9PT1jKXRoaXMuaWQ9Yz0iRGF0YVRhYmxlc19UYWJsZV8iK2ouZXh0Ll9vRXh0ZXJuQ29uZmlnLmlOZXh0VW5pcXVlKys7dmFyIGc9aS5leHRlbmQoITAse30sai5tb2RlbHMub1NldHRpbmdzLHtuVGFibGU6dGhpcyxvQXBpOnNhLm9BcGksb0luaXQ6ZSxzRGVzdHJveVdpZHRoOmkodGhpcykud2lkdGgoKSxzSW5zdGFuY2U6YyxzVGFibGVJZDpjfSk7ai5zZXR0aW5ncy5wdXNoKGcpO2cub0luc3RhbmNlPTE9PT1zYS5sZW5ndGg/c2E6aSh0aGlzKS5kYXRhVGFibGUoKTtlfHwoZT17fSk7ZS5vTGFuZ3VhZ2UmJm9hKGUub0xhbmd1YWdlKTtlPVZhKGkuZXh0ZW5kKCEwLHt9LGouZGVmYXVsdHMpLGUpO3AoZy5vRmVhdHVyZXMsZSwiYlBhZ2luYXRlIik7cChnLm9GZWF0dXJlcyxlLCJiTGVuZ3RoQ2hhbmdlIik7cChnLm9GZWF0dXJlcyxlLCJiRmlsdGVyIik7cChnLm9GZWF0dXJlcyxlLCJiU29ydCIpO3AoZy5vRmVhdHVyZXMsZSwiYkluZm8iKTsKcChnLm9GZWF0dXJlcyxlLCJiUHJvY2Vzc2luZyIpO3AoZy5vRmVhdHVyZXMsZSwiYkF1dG9XaWR0aCIpO3AoZy5vRmVhdHVyZXMsZSwiYlNvcnRDbGFzc2VzIik7cChnLm9GZWF0dXJlcyxlLCJiU2VydmVyU2lkZSIpO3AoZy5vRmVhdHVyZXMsZSwiYkRlZmVyUmVuZGVyIik7cChnLm9TY3JvbGwsZSwic1Njcm9sbFgiLCJzWCIpO3AoZy5vU2Nyb2xsLGUsInNTY3JvbGxYSW5uZXIiLCJzWElubmVyIik7cChnLm9TY3JvbGwsZSwic1Njcm9sbFkiLCJzWSIpO3AoZy5vU2Nyb2xsLGUsImJTY3JvbGxDb2xsYXBzZSIsImJDb2xsYXBzZSIpO3AoZy5vU2Nyb2xsLGUsImJTY3JvbGxJbmZpbml0ZSIsImJJbmZpbml0ZSIpO3AoZy5vU2Nyb2xsLGUsImlTY3JvbGxMb2FkR2FwIiwiaUxvYWRHYXAiKTtwKGcub1Njcm9sbCxlLCJiU2Nyb2xsQXV0b0NzcyIsImJBdXRvQ3NzIik7cChnLGUsImFzU3RyaXBlQ2xhc3NlcyIpO3AoZyxlLCJhc1N0cmlwQ2xhc3NlcyIsImFzU3RyaXBlQ2xhc3NlcyIpOwpwKGcsZSwiZm5TZXJ2ZXJEYXRhIik7cChnLGUsImZuRm9ybWF0TnVtYmVyIik7cChnLGUsInNTZXJ2ZXJNZXRob2QiKTtwKGcsZSwiYWFTb3J0aW5nIik7cChnLGUsImFhU29ydGluZ0ZpeGVkIik7cChnLGUsImFMZW5ndGhNZW51Iik7cChnLGUsInNQYWdpbmF0aW9uVHlwZSIpO3AoZyxlLCJzQWpheFNvdXJjZSIpO3AoZyxlLCJzQWpheERhdGFQcm9wIik7cChnLGUsImlDb29raWVEdXJhdGlvbiIpO3AoZyxlLCJzQ29va2llUHJlZml4Iik7cChnLGUsInNEb20iKTtwKGcsZSwiYlNvcnRDZWxsc1RvcCIpO3AoZyxlLCJpVGFiSW5kZXgiKTtwKGcsZSwib1NlYXJjaCIsIm9QcmV2aW91c1NlYXJjaCIpO3AoZyxlLCJhb1NlYXJjaENvbHMiLCJhb1ByZVNlYXJjaENvbHMiKTtwKGcsZSwiaURpc3BsYXlMZW5ndGgiLCJfaURpc3BsYXlMZW5ndGgiKTtwKGcsZSwiYkpRdWVyeVVJIiwiYkpVSSIpO3AoZyxlLCJmbkNvb2tpZUNhbGxiYWNrIik7cChnLGUsImZuU3RhdGVMb2FkIik7cChnLGUsCiJmblN0YXRlU2F2ZSIpO3AoZy5vTGFuZ3VhZ2UsZSwiZm5JbmZvQ2FsbGJhY2siKTtCKGcsImFvRHJhd0NhbGxiYWNrIixlLmZuRHJhd0NhbGxiYWNrLCJ1c2VyIik7QihnLCJhb1NlcnZlclBhcmFtcyIsZS5mblNlcnZlclBhcmFtcywidXNlciIpO0IoZywiYW9TdGF0ZVNhdmVQYXJhbXMiLGUuZm5TdGF0ZVNhdmVQYXJhbXMsInVzZXIiKTtCKGcsImFvU3RhdGVMb2FkUGFyYW1zIixlLmZuU3RhdGVMb2FkUGFyYW1zLCJ1c2VyIik7QihnLCJhb1N0YXRlTG9hZGVkIixlLmZuU3RhdGVMb2FkZWQsInVzZXIiKTtCKGcsImFvUm93Q2FsbGJhY2siLGUuZm5Sb3dDYWxsYmFjaywidXNlciIpO0IoZywiYW9Sb3dDcmVhdGVkQ2FsbGJhY2siLGUuZm5DcmVhdGVkUm93LCJ1c2VyIik7QihnLCJhb0hlYWRlckNhbGxiYWNrIixlLmZuSGVhZGVyQ2FsbGJhY2ssInVzZXIiKTtCKGcsImFvRm9vdGVyQ2FsbGJhY2siLGUuZm5Gb290ZXJDYWxsYmFjaywidXNlciIpO0IoZywiYW9Jbml0Q29tcGxldGUiLAplLmZuSW5pdENvbXBsZXRlLCJ1c2VyIik7QihnLCJhb1ByZURyYXdDYWxsYmFjayIsZS5mblByZURyYXdDYWxsYmFjaywidXNlciIpO2cub0ZlYXR1cmVzLmJTZXJ2ZXJTaWRlJiZnLm9GZWF0dXJlcy5iU29ydCYmZy5vRmVhdHVyZXMuYlNvcnRDbGFzc2VzP0IoZywiYW9EcmF3Q2FsbGJhY2siLFIsInNlcnZlcl9zaWRlX3NvcnRfY2xhc3NlcyIpOmcub0ZlYXR1cmVzLmJEZWZlclJlbmRlciYmQihnLCJhb0RyYXdDYWxsYmFjayIsUiwiZGVmZXJfc29ydF9jbGFzc2VzIik7ZS5iSlF1ZXJ5VUk/KGkuZXh0ZW5kKGcub0NsYXNzZXMsai5leHQub0pVSUNsYXNzZXMpLGUuc0RvbT09PWouZGVmYXVsdHMuc0RvbSYmImxmcnRpcCI9PT1qLmRlZmF1bHRzLnNEb20mJihnLnNEb209JzwiSCJsZnI+dDwiRiJpcD4nKSk6aS5leHRlbmQoZy5vQ2xhc3NlcyxqLmV4dC5vU3RkQ2xhc3Nlcyk7aSh0aGlzKS5hZGRDbGFzcyhnLm9DbGFzc2VzLnNUYWJsZSk7aWYoIiIhPT1nLm9TY3JvbGwuc1h8fCIiIT09Cmcub1Njcm9sbC5zWSlnLm9TY3JvbGwuaUJhcldpZHRoPVJhKCk7Zy5pSW5pdERpc3BsYXlTdGFydD09PW4mJihnLmlJbml0RGlzcGxheVN0YXJ0PWUuaURpc3BsYXlTdGFydCxnLl9pRGlzcGxheVN0YXJ0PWUuaURpc3BsYXlTdGFydCk7ZS5iU3RhdGVTYXZlJiYoZy5vRmVhdHVyZXMuYlN0YXRlU2F2ZT0hMCxUYShnLGUpLEIoZywiYW9EcmF3Q2FsbGJhY2siLHFhLCJzdGF0ZV9zYXZlIikpO251bGwhPT1lLmlEZWZlckxvYWRpbmcmJihnLmJEZWZlckxvYWRpbmc9ITAsYT1pLmlzQXJyYXkoZS5pRGVmZXJMb2FkaW5nKSxnLl9pUmVjb3Jkc0Rpc3BsYXk9YT9lLmlEZWZlckxvYWRpbmdbMF06ZS5pRGVmZXJMb2FkaW5nLGcuX2lSZWNvcmRzVG90YWw9YT9lLmlEZWZlckxvYWRpbmdbMV06ZS5pRGVmZXJMb2FkaW5nKTtudWxsIT09ZS5hYURhdGEmJihmPSEwKTsiIiE9PWUub0xhbmd1YWdlLnNVcmw/KGcub0xhbmd1YWdlLnNVcmw9ZS5vTGFuZ3VhZ2Uuc1VybCxpLmdldEpTT04oZy5vTGFuZ3VhZ2Uuc1VybCwKbnVsbCxmdW5jdGlvbihhKXtvYShhKTtpLmV4dGVuZCh0cnVlLGcub0xhbmd1YWdlLGUub0xhbmd1YWdlLGEpO2JhKGcpfSksaD0hMCk6aS5leHRlbmQoITAsZy5vTGFuZ3VhZ2UsZS5vTGFuZ3VhZ2UpO251bGw9PT1lLmFzU3RyaXBlQ2xhc3NlcyYmKGcuYXNTdHJpcGVDbGFzc2VzPVtnLm9DbGFzc2VzLnNTdHJpcGVPZGQsZy5vQ2xhc3Nlcy5zU3RyaXBlRXZlbl0pO2M9ITE7ZD1pKHRoaXMpLmNoaWxkcmVuKCJ0Ym9keSIpLmNoaWxkcmVuKCJ0ciIpO2E9MDtmb3IoYj1nLmFzU3RyaXBlQ2xhc3Nlcy5sZW5ndGg7YTxiO2ErKylpZihkLmZpbHRlcigiOmx0KDIpIikuaGFzQ2xhc3MoZy5hc1N0cmlwZUNsYXNzZXNbYV0pKXtjPSEwO2JyZWFrfWMmJihnLmFzRGVzdHJveVN0cmlwZXM9WyIiLCIiXSxpKGRbMF0pLmhhc0NsYXNzKGcub0NsYXNzZXMuc1N0cmlwZU9kZCkmJihnLmFzRGVzdHJveVN0cmlwZXNbMF0rPWcub0NsYXNzZXMuc1N0cmlwZU9kZCsiICIpLGkoZFswXSkuaGFzQ2xhc3MoZy5vQ2xhc3Nlcy5zU3RyaXBlRXZlbikmJgooZy5hc0Rlc3Ryb3lTdHJpcGVzWzBdKz1nLm9DbGFzc2VzLnNTdHJpcGVFdmVuKSxpKGRbMV0pLmhhc0NsYXNzKGcub0NsYXNzZXMuc1N0cmlwZU9kZCkmJihnLmFzRGVzdHJveVN0cmlwZXNbMV0rPWcub0NsYXNzZXMuc1N0cmlwZU9kZCsiICIpLGkoZFsxXSkuaGFzQ2xhc3MoZy5vQ2xhc3Nlcy5zU3RyaXBlRXZlbikmJihnLmFzRGVzdHJveVN0cmlwZXNbMV0rPWcub0NsYXNzZXMuc1N0cmlwZUV2ZW4pLGQucmVtb3ZlQ2xhc3MoZy5hc1N0cmlwZUNsYXNzZXMuam9pbigiICIpKSk7Yz1bXTthPXRoaXMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRoZWFkIik7MCE9PWEubGVuZ3RoJiYoVyhnLmFvSGVhZGVyLGFbMF0pLGM9UChnKSk7aWYobnVsbD09PWUuYW9Db2x1bW5zKXtkPVtdO2E9MDtmb3IoYj1jLmxlbmd0aDthPGI7YSsrKWQucHVzaChudWxsKX1lbHNlIGQ9ZS5hb0NvbHVtbnM7YT0wO2ZvcihiPWQubGVuZ3RoO2E8YjthKyspZS5zYXZlZF9hb0NvbHVtbnMhPT1uJiZlLnNhdmVkX2FvQ29sdW1ucy5sZW5ndGg9PQpiJiYobnVsbD09PWRbYV0mJihkW2FdPXt9KSxkW2FdLmJWaXNpYmxlPWUuc2F2ZWRfYW9Db2x1bW5zW2FdLmJWaXNpYmxlKSxvKGcsYz9jW2FdOm51bGwpO3VhKGcsZS5hb0NvbHVtbkRlZnMsZCxmdW5jdGlvbihhLGIpe3IoZyxhLGIpfSk7YT0wO2ZvcihiPWcuYWFTb3J0aW5nLmxlbmd0aDthPGI7YSsrKXtnLmFhU29ydGluZ1thXVswXT49Zy5hb0NvbHVtbnMubGVuZ3RoJiYoZy5hYVNvcnRpbmdbYV1bMF09MCk7dmFyIGs9Zy5hb0NvbHVtbnNbZy5hYVNvcnRpbmdbYV1bMF1dO2cuYWFTb3J0aW5nW2FdWzJdPT09biYmKGcuYWFTb3J0aW5nW2FdWzJdPTApO2UuYWFTb3J0aW5nPT09biYmZy5zYXZlZF9hYVNvcnRpbmc9PT1uJiYoZy5hYVNvcnRpbmdbYV1bMV09ay5hc1NvcnRpbmdbMF0pO2M9MDtmb3IoZD1rLmFzU29ydGluZy5sZW5ndGg7YzxkO2MrKylpZihnLmFhU29ydGluZ1thXVsxXT09ay5hc1NvcnRpbmdbY10pe2cuYWFTb3J0aW5nW2FdWzJdPWM7YnJlYWt9fVIoZyk7V2EoZyk7CmE9aSh0aGlzKS5jaGlsZHJlbigiY2FwdGlvbiIpLmVhY2goZnVuY3Rpb24oKXt0aGlzLl9jYXB0aW9uU2lkZT1pKHRoaXMpLmNzcygiY2FwdGlvbi1zaWRlIil9KTtiPWkodGhpcykuY2hpbGRyZW4oInRoZWFkIik7MD09PWIubGVuZ3RoJiYoYj1bbC5jcmVhdGVFbGVtZW50KCJ0aGVhZCIpXSx0aGlzLmFwcGVuZENoaWxkKGJbMF0pKTtnLm5USGVhZD1iWzBdO2I9aSh0aGlzKS5jaGlsZHJlbigidGJvZHkiKTswPT09Yi5sZW5ndGgmJihiPVtsLmNyZWF0ZUVsZW1lbnQoInRib2R5IildLHRoaXMuYXBwZW5kQ2hpbGQoYlswXSkpO2cublRCb2R5PWJbMF07Zy5uVEJvZHkuc2V0QXR0cmlidXRlKCJyb2xlIiwiYWxlcnQiKTtnLm5UQm9keS5zZXRBdHRyaWJ1dGUoImFyaWEtbGl2ZSIsInBvbGl0ZSIpO2cublRCb2R5LnNldEF0dHJpYnV0ZSgiYXJpYS1yZWxldmFudCIsImFsbCIpO2I9aSh0aGlzKS5jaGlsZHJlbigidGZvb3QiKTtpZigwPT09Yi5sZW5ndGgmJjA8YS5sZW5ndGgmJigiIiE9PQpnLm9TY3JvbGwuc1h8fCIiIT09Zy5vU2Nyb2xsLnNZKSliPVtsLmNyZWF0ZUVsZW1lbnQoInRmb290IildLHRoaXMuYXBwZW5kQ2hpbGQoYlswXSk7MDxiLmxlbmd0aCYmKGcublRGb290PWJbMF0sVyhnLmFvRm9vdGVyLGcublRGb290KSk7aWYoZilmb3IoYT0wO2E8ZS5hYURhdGEubGVuZ3RoO2ErKylKKGcsZS5hYURhdGFbYV0pO2Vsc2UgdmEoZyk7Zy5haURpc3BsYXk9Zy5haURpc3BsYXlNYXN0ZXIuc2xpY2UoKTtnLmJJbml0aWFsaXNlZD0hMDshMT09PWgmJmJhKGcpfX0pfTtqLmZuVmVyc2lvbkNoZWNrPWZ1bmN0aW9uKGUpe2Zvcih2YXIgaT1mdW5jdGlvbihlLGkpe2Zvcig7ZS5sZW5ndGg8aTspZSs9IjAiO3JldHVybiBlfSxyPWouZXh0LnNWZXJzaW9uLnNwbGl0KCIuIiksZT1lLnNwbGl0KCIuIiksaz0iIixsPSIiLG49MCx3PWUubGVuZ3RoO248dztuKyspays9aShyW25dLDMpLGwrPWkoZVtuXSwzKTtyZXR1cm4gcGFyc2VJbnQoaywxMCk+PXBhcnNlSW50KGwsMTApfTsKai5mbklzRGF0YVRhYmxlPWZ1bmN0aW9uKGUpe2Zvcih2YXIgaT1qLnNldHRpbmdzLHI9MDtyPGkubGVuZ3RoO3IrKylpZihpW3JdLm5UYWJsZT09PWV8fGlbcl0ublNjcm9sbEhlYWQ9PT1lfHxpW3JdLm5TY3JvbGxGb290PT09ZSlyZXR1cm4hMDtyZXR1cm4hMX07ai5mblRhYmxlcz1mdW5jdGlvbihlKXt2YXIgbz1bXTtqUXVlcnkuZWFjaChqLnNldHRpbmdzLGZ1bmN0aW9uKGosayl7KCFlfHwhMD09PWUmJmkoay5uVGFibGUpLmlzKCI6dmlzaWJsZSIpKSYmby5wdXNoKGsublRhYmxlKX0pO3JldHVybiBvfTtqLnZlcnNpb249IjEuOS4zIjtqLnNldHRpbmdzPVtdO2oubW9kZWxzPXt9O2oubW9kZWxzLmV4dD17YWZuRmlsdGVyaW5nOltdLGFmblNvcnREYXRhOltdLGFvRmVhdHVyZXM6W10sYVR5cGVzOltdLGZuVmVyc2lvbkNoZWNrOmouZm5WZXJzaW9uQ2hlY2ssaUFwaUluZGV4OjAsb2ZuU2VhcmNoOnt9LG9BcGk6e30sb1N0ZENsYXNzZXM6e30sb0pVSUNsYXNzZXM6e30sb1BhZ2luYXRpb246e30sCm9Tb3J0Ont9LHNWZXJzaW9uOmoudmVyc2lvbixzRXJyTW9kZToiYWxlcnQiLF9vRXh0ZXJuQ29uZmlnOntpTmV4dFVuaXF1ZTowfX07ai5tb2RlbHMub1NlYXJjaD17YkNhc2VJbnNlbnNpdGl2ZTohMCxzU2VhcmNoOiIiLGJSZWdleDohMSxiU21hcnQ6ITB9O2oubW9kZWxzLm9Sb3c9e25UcjpudWxsLF9hRGF0YTpbXSxfYVNvcnREYXRhOltdLF9hbkhpZGRlbjpbXSxfc1Jvd1N0cmlwZToiIn07ai5tb2RlbHMub0NvbHVtbj17YURhdGFTb3J0Om51bGwsYXNTb3J0aW5nOm51bGwsYlNlYXJjaGFibGU6bnVsbCxiU29ydGFibGU6bnVsbCxiVXNlUmVuZGVyZWQ6bnVsbCxiVmlzaWJsZTpudWxsLF9iQXV0b1R5cGU6ITAsZm5DcmVhdGVkQ2VsbDpudWxsLGZuR2V0RGF0YTpudWxsLGZuUmVuZGVyOm51bGwsZm5TZXREYXRhOm51bGwsbURhdGE6bnVsbCxtUmVuZGVyOm51bGwsblRoOm51bGwsblRmOm51bGwsc0NsYXNzOm51bGwsc0NvbnRlbnRQYWRkaW5nOm51bGwsc0RlZmF1bHRDb250ZW50Om51bGwsCnNOYW1lOm51bGwsc1NvcnREYXRhVHlwZToic3RkIixzU29ydGluZ0NsYXNzOm51bGwsc1NvcnRpbmdDbGFzc0pVSTpudWxsLHNUaXRsZTpudWxsLHNUeXBlOm51bGwsc1dpZHRoOm51bGwsc1dpZHRoT3JpZzpudWxsfTtqLmRlZmF1bHRzPXthYURhdGE6bnVsbCxhYVNvcnRpbmc6W1swLCJhc2MiXV0sYWFTb3J0aW5nRml4ZWQ6bnVsbCxhTGVuZ3RoTWVudTpbMTAsMjUsNTAsMTAwXSxhb0NvbHVtbnM6bnVsbCxhb0NvbHVtbkRlZnM6bnVsbCxhb1NlYXJjaENvbHM6W10sYXNTdHJpcGVDbGFzc2VzOm51bGwsYkF1dG9XaWR0aDohMCxiRGVmZXJSZW5kZXI6ITEsYkRlc3Ryb3k6ITEsYkZpbHRlcjohMCxiSW5mbzohMCxiSlF1ZXJ5VUk6ITEsYkxlbmd0aENoYW5nZTohMCxiUGFnaW5hdGU6ITAsYlByb2Nlc3Npbmc6ITEsYlJldHJpZXZlOiExLGJTY3JvbGxBdXRvQ3NzOiEwLGJTY3JvbGxDb2xsYXBzZTohMSxiU2Nyb2xsSW5maW5pdGU6ITEsYlNlcnZlclNpZGU6ITEsYlNvcnQ6ITAsYlNvcnRDZWxsc1RvcDohMSwKYlNvcnRDbGFzc2VzOiEwLGJTdGF0ZVNhdmU6ITEsZm5Db29raWVDYWxsYmFjazpudWxsLGZuQ3JlYXRlZFJvdzpudWxsLGZuRHJhd0NhbGxiYWNrOm51bGwsZm5Gb290ZXJDYWxsYmFjazpudWxsLGZuRm9ybWF0TnVtYmVyOmZ1bmN0aW9uKGUpe2lmKDFFMz5lKXJldHVybiBlO2Zvcih2YXIgaT1lKyIiLGU9aS5zcGxpdCgiIiksaj0iIixpPWkubGVuZ3RoLGs9MDtrPGk7aysrKTA9PT1rJTMmJjAhPT1rJiYoaj10aGlzLm9MYW5ndWFnZS5zSW5mb1Rob3VzYW5kcytqKSxqPWVbaS1rLTFdK2o7cmV0dXJuIGp9LGZuSGVhZGVyQ2FsbGJhY2s6bnVsbCxmbkluZm9DYWxsYmFjazpudWxsLGZuSW5pdENvbXBsZXRlOm51bGwsZm5QcmVEcmF3Q2FsbGJhY2s6bnVsbCxmblJvd0NhbGxiYWNrOm51bGwsZm5TZXJ2ZXJEYXRhOmZ1bmN0aW9uKGUsaixuLGspe2suanFYSFI9aS5hamF4KHt1cmw6ZSxkYXRhOmosc3VjY2VzczpmdW5jdGlvbihlKXtlLnNFcnJvciYmay5vQXBpLl9mbkxvZyhrLDAsCmUuc0Vycm9yKTtpKGsub0luc3RhbmNlKS50cmlnZ2VyKCJ4aHIiLFtrLGVdKTtuKGUpfSxkYXRhVHlwZToianNvbiIsY2FjaGU6ITEsdHlwZTprLnNTZXJ2ZXJNZXRob2QsZXJyb3I6ZnVuY3Rpb24oZSxpKXsicGFyc2VyZXJyb3IiPT1pJiZrLm9BcGkuX2ZuTG9nKGssMCwiRGF0YVRhYmxlcyB3YXJuaW5nOiBKU09OIGRhdGEgZnJvbSBzZXJ2ZXIgY291bGQgbm90IGJlIHBhcnNlZC4gVGhpcyBpcyBjYXVzZWQgYnkgYSBKU09OIGZvcm1hdHRpbmcgZXJyb3IuIil9fSl9LGZuU2VydmVyUGFyYW1zOm51bGwsZm5TdGF0ZUxvYWQ6ZnVuY3Rpb24oZSl7dmFyIGU9dGhpcy5vQXBpLl9mblJlYWRDb29raWUoZS5zQ29va2llUHJlZml4K2Uuc0luc3RhbmNlKSxqO3RyeXtqPSJmdW5jdGlvbiI9PT10eXBlb2YgaS5wYXJzZUpTT04/aS5wYXJzZUpTT04oZSk6ZXZhbCgiKCIrZSsiKSIpfWNhdGNoKG4pe2o9bnVsbH1yZXR1cm4gan0sZm5TdGF0ZUxvYWRQYXJhbXM6bnVsbCxmblN0YXRlTG9hZGVkOm51bGwsCmZuU3RhdGVTYXZlOmZ1bmN0aW9uKGUsaSl7dGhpcy5vQXBpLl9mbkNyZWF0ZUNvb2tpZShlLnNDb29raWVQcmVmaXgrZS5zSW5zdGFuY2UsdGhpcy5vQXBpLl9mbkpzb25TdHJpbmcoaSksZS5pQ29va2llRHVyYXRpb24sZS5zQ29va2llUHJlZml4LGUuZm5Db29raWVDYWxsYmFjayl9LGZuU3RhdGVTYXZlUGFyYW1zOm51bGwsaUNvb2tpZUR1cmF0aW9uOjcyMDAsaURlZmVyTG9hZGluZzpudWxsLGlEaXNwbGF5TGVuZ3RoOjEwLGlEaXNwbGF5U3RhcnQ6MCxpU2Nyb2xsTG9hZEdhcDoxMDAsaVRhYkluZGV4OjAsb0xhbmd1YWdlOntvQXJpYTp7c1NvcnRBc2NlbmRpbmc6IjogYWN0aXZhdGUgdG8gc29ydCBjb2x1bW4gYXNjZW5kaW5nIixzU29ydERlc2NlbmRpbmc6IjogYWN0aXZhdGUgdG8gc29ydCBjb2x1bW4gZGVzY2VuZGluZyJ9LG9QYWdpbmF0ZTp7c0ZpcnN0OiJGaXJzdCIsc0xhc3Q6Ikxhc3QiLHNOZXh0OiJOZXh0IixzUHJldmlvdXM6IlByZXZpb3VzIn0sc0VtcHR5VGFibGU6Ik5vIGRhdGEgYXZhaWxhYmxlIGluIHRhYmxlIiwKc0luZm86IlNob3dpbmcgX1NUQVJUXyB0byBfRU5EXyBvZiBfVE9UQUxfIGVudHJpZXMiLHNJbmZvRW1wdHk6IlNob3dpbmcgMCB0byAwIG9mIDAgZW50cmllcyIsc0luZm9GaWx0ZXJlZDoiKGZpbHRlcmVkIGZyb20gX01BWF8gdG90YWwgZW50cmllcykiLHNJbmZvUG9zdEZpeDoiIixzSW5mb1Rob3VzYW5kczoiLCIsc0xlbmd0aE1lbnU6IlNob3cgX01FTlVfIGVudHJpZXMiLHNMb2FkaW5nUmVjb3JkczoiTG9hZGluZy4uLiIsc1Byb2Nlc3Npbmc6IlByb2Nlc3NpbmcuLi4iLHNTZWFyY2g6IlNlYXJjaDoiLHNVcmw6IiIsc1plcm9SZWNvcmRzOiJObyBtYXRjaGluZyByZWNvcmRzIGZvdW5kIn0sb1NlYXJjaDppLmV4dGVuZCh7fSxqLm1vZGVscy5vU2VhcmNoKSxzQWpheERhdGFQcm9wOiJhYURhdGEiLHNBamF4U291cmNlOm51bGwsc0Nvb2tpZVByZWZpeDoiU3ByeU1lZGlhX0RhdGFUYWJsZXNfIixzRG9tOiJsZnJ0aXAiLHNQYWdpbmF0aW9uVHlwZToidHdvX2J1dHRvbiIsc1Njcm9sbFg6IiIsCnNTY3JvbGxYSW5uZXI6IiIsc1Njcm9sbFk6IiIsc1NlcnZlck1ldGhvZDoiR0VUIn07ai5kZWZhdWx0cy5jb2x1bW5zPXthRGF0YVNvcnQ6bnVsbCxhc1NvcnRpbmc6WyJhc2MiLCJkZXNjIl0sYlNlYXJjaGFibGU6ITAsYlNvcnRhYmxlOiEwLGJVc2VSZW5kZXJlZDohMCxiVmlzaWJsZTohMCxmbkNyZWF0ZWRDZWxsOm51bGwsZm5SZW5kZXI6bnVsbCxpRGF0YVNvcnQ6LTEsbURhdGE6bnVsbCxtUmVuZGVyOm51bGwsc0NlbGxUeXBlOiJ0ZCIsc0NsYXNzOiIiLHNDb250ZW50UGFkZGluZzoiIixzRGVmYXVsdENvbnRlbnQ6bnVsbCxzTmFtZToiIixzU29ydERhdGFUeXBlOiJzdGQiLHNUaXRsZTpudWxsLHNUeXBlOm51bGwsc1dpZHRoOm51bGx9O2oubW9kZWxzLm9TZXR0aW5ncz17b0ZlYXR1cmVzOntiQXV0b1dpZHRoOm51bGwsYkRlZmVyUmVuZGVyOm51bGwsYkZpbHRlcjpudWxsLGJJbmZvOm51bGwsYkxlbmd0aENoYW5nZTpudWxsLGJQYWdpbmF0ZTpudWxsLGJQcm9jZXNzaW5nOm51bGwsCmJTZXJ2ZXJTaWRlOm51bGwsYlNvcnQ6bnVsbCxiU29ydENsYXNzZXM6bnVsbCxiU3RhdGVTYXZlOm51bGx9LG9TY3JvbGw6e2JBdXRvQ3NzOm51bGwsYkNvbGxhcHNlOm51bGwsYkluZmluaXRlOm51bGwsaUJhcldpZHRoOjAsaUxvYWRHYXA6bnVsbCxzWDpudWxsLHNYSW5uZXI6bnVsbCxzWTpudWxsfSxvTGFuZ3VhZ2U6e2ZuSW5mb0NhbGxiYWNrOm51bGx9LG9Ccm93c2VyOntiU2Nyb2xsT3ZlcnNpemU6ITF9LGFhbkZlYXR1cmVzOltdLGFvRGF0YTpbXSxhaURpc3BsYXk6W10sYWlEaXNwbGF5TWFzdGVyOltdLGFvQ29sdW1uczpbXSxhb0hlYWRlcjpbXSxhb0Zvb3RlcjpbXSxhc0RhdGFTZWFyY2g6W10sb1ByZXZpb3VzU2VhcmNoOnt9LGFvUHJlU2VhcmNoQ29sczpbXSxhYVNvcnRpbmc6bnVsbCxhYVNvcnRpbmdGaXhlZDpudWxsLGFzU3RyaXBlQ2xhc3NlczpudWxsLGFzRGVzdHJveVN0cmlwZXM6W10sc0Rlc3Ryb3lXaWR0aDowLGFvUm93Q2FsbGJhY2s6W10sYW9IZWFkZXJDYWxsYmFjazpbXSwKYW9Gb290ZXJDYWxsYmFjazpbXSxhb0RyYXdDYWxsYmFjazpbXSxhb1Jvd0NyZWF0ZWRDYWxsYmFjazpbXSxhb1ByZURyYXdDYWxsYmFjazpbXSxhb0luaXRDb21wbGV0ZTpbXSxhb1N0YXRlU2F2ZVBhcmFtczpbXSxhb1N0YXRlTG9hZFBhcmFtczpbXSxhb1N0YXRlTG9hZGVkOltdLHNUYWJsZUlkOiIiLG5UYWJsZTpudWxsLG5USGVhZDpudWxsLG5URm9vdDpudWxsLG5UQm9keTpudWxsLG5UYWJsZVdyYXBwZXI6bnVsbCxiRGVmZXJMb2FkaW5nOiExLGJJbml0aWFsaXNlZDohMSxhb09wZW5Sb3dzOltdLHNEb206bnVsbCxzUGFnaW5hdGlvblR5cGU6InR3b19idXR0b24iLGlDb29raWVEdXJhdGlvbjowLHNDb29raWVQcmVmaXg6IiIsZm5Db29raWVDYWxsYmFjazpudWxsLGFvU3RhdGVTYXZlOltdLGFvU3RhdGVMb2FkOltdLG9Mb2FkZWRTdGF0ZTpudWxsLHNBamF4U291cmNlOm51bGwsc0FqYXhEYXRhUHJvcDpudWxsLGJBamF4RGF0YUdldDohMCxqcVhIUjpudWxsLGZuU2VydmVyRGF0YTpudWxsLAphb1NlcnZlclBhcmFtczpbXSxzU2VydmVyTWV0aG9kOm51bGwsZm5Gb3JtYXROdW1iZXI6bnVsbCxhTGVuZ3RoTWVudTpudWxsLGlEcmF3OjAsYkRyYXdpbmc6ITEsaURyYXdFcnJvcjotMSxfaURpc3BsYXlMZW5ndGg6MTAsX2lEaXNwbGF5U3RhcnQ6MCxfaURpc3BsYXlFbmQ6MTAsX2lSZWNvcmRzVG90YWw6MCxfaVJlY29yZHNEaXNwbGF5OjAsYkpVSTpudWxsLG9DbGFzc2VzOnt9LGJGaWx0ZXJlZDohMSxiU29ydGVkOiExLGJTb3J0Q2VsbHNUb3A6bnVsbCxvSW5pdDpudWxsLGFvRGVzdHJveUNhbGxiYWNrOltdLGZuUmVjb3Jkc1RvdGFsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub0ZlYXR1cmVzLmJTZXJ2ZXJTaWRlP3BhcnNlSW50KHRoaXMuX2lSZWNvcmRzVG90YWwsMTApOnRoaXMuYWlEaXNwbGF5TWFzdGVyLmxlbmd0aH0sZm5SZWNvcmRzRGlzcGxheTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm9GZWF0dXJlcy5iU2VydmVyU2lkZT9wYXJzZUludCh0aGlzLl9pUmVjb3Jkc0Rpc3BsYXksCjEwKTp0aGlzLmFpRGlzcGxheS5sZW5ndGh9LGZuRGlzcGxheUVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm9GZWF0dXJlcy5iU2VydmVyU2lkZT8hMT09PXRoaXMub0ZlYXR1cmVzLmJQYWdpbmF0ZXx8LTE9PXRoaXMuX2lEaXNwbGF5TGVuZ3RoP3RoaXMuX2lEaXNwbGF5U3RhcnQrdGhpcy5haURpc3BsYXkubGVuZ3RoOk1hdGgubWluKHRoaXMuX2lEaXNwbGF5U3RhcnQrdGhpcy5faURpc3BsYXlMZW5ndGgsdGhpcy5faVJlY29yZHNEaXNwbGF5KTp0aGlzLl9pRGlzcGxheUVuZH0sb0luc3RhbmNlOm51bGwsc0luc3RhbmNlOm51bGwsaVRhYkluZGV4OjAsblNjcm9sbEhlYWQ6bnVsbCxuU2Nyb2xsRm9vdDpudWxsfTtqLmV4dD1pLmV4dGVuZCghMCx7fSxqLm1vZGVscy5leHQpO2kuZXh0ZW5kKGouZXh0Lm9TdGRDbGFzc2VzLHtzVGFibGU6ImRhdGFUYWJsZSIsc1BhZ2VQcmV2RW5hYmxlZDoicGFnaW5hdGVfZW5hYmxlZF9wcmV2aW91cyIsc1BhZ2VQcmV2RGlzYWJsZWQ6InBhZ2luYXRlX2Rpc2FibGVkX3ByZXZpb3VzIiwKc1BhZ2VOZXh0RW5hYmxlZDoicGFnaW5hdGVfZW5hYmxlZF9uZXh0IixzUGFnZU5leHREaXNhYmxlZDoicGFnaW5hdGVfZGlzYWJsZWRfbmV4dCIsc1BhZ2VKVUlOZXh0OiIiLHNQYWdlSlVJUHJldjoiIixzUGFnZUJ1dHRvbjoicGFnaW5hdGVfYnV0dG9uIixzUGFnZUJ1dHRvbkFjdGl2ZToicGFnaW5hdGVfYWN0aXZlIixzUGFnZUJ1dHRvblN0YXRpY0Rpc2FibGVkOiJwYWdpbmF0ZV9idXR0b24gcGFnaW5hdGVfYnV0dG9uX2Rpc2FibGVkIixzUGFnZUZpcnN0OiJmaXJzdCIsc1BhZ2VQcmV2aW91czoicHJldmlvdXMiLHNQYWdlTmV4dDoibmV4dCIsc1BhZ2VMYXN0OiJsYXN0IixzU3RyaXBlT2RkOiJvZGQiLHNTdHJpcGVFdmVuOiJldmVuIixzUm93RW1wdHk6ImRhdGFUYWJsZXNfZW1wdHkiLHNXcmFwcGVyOiJkYXRhVGFibGVzX3dyYXBwZXIiLHNGaWx0ZXI6ImRhdGFUYWJsZXNfZmlsdGVyIixzSW5mbzoiZGF0YVRhYmxlc19pbmZvIixzUGFnaW5nOiJkYXRhVGFibGVzX3BhZ2luYXRlIHBhZ2luZ18iLApzTGVuZ3RoOiJkYXRhVGFibGVzX2xlbmd0aCIsc1Byb2Nlc3Npbmc6ImRhdGFUYWJsZXNfcHJvY2Vzc2luZyIsc1NvcnRBc2M6InNvcnRpbmdfYXNjIixzU29ydERlc2M6InNvcnRpbmdfZGVzYyIsc1NvcnRhYmxlOiJzb3J0aW5nIixzU29ydGFibGVBc2M6InNvcnRpbmdfYXNjX2Rpc2FibGVkIixzU29ydGFibGVEZXNjOiJzb3J0aW5nX2Rlc2NfZGlzYWJsZWQiLHNTb3J0YWJsZU5vbmU6InNvcnRpbmdfZGlzYWJsZWQiLHNTb3J0Q29sdW1uOiJzb3J0aW5nXyIsc1NvcnRKVUlBc2M6IiIsc1NvcnRKVUlEZXNjOiIiLHNTb3J0SlVJOiIiLHNTb3J0SlVJQXNjQWxsb3dlZDoiIixzU29ydEpVSURlc2NBbGxvd2VkOiIiLHNTb3J0SlVJV3JhcHBlcjoiIixzU29ydEljb246IiIsc1Njcm9sbFdyYXBwZXI6ImRhdGFUYWJsZXNfc2Nyb2xsIixzU2Nyb2xsSGVhZDoiZGF0YVRhYmxlc19zY3JvbGxIZWFkIixzU2Nyb2xsSGVhZElubmVyOiJkYXRhVGFibGVzX3Njcm9sbEhlYWRJbm5lciIsc1Njcm9sbEJvZHk6ImRhdGFUYWJsZXNfc2Nyb2xsQm9keSIsCnNTY3JvbGxGb290OiJkYXRhVGFibGVzX3Njcm9sbEZvb3QiLHNTY3JvbGxGb290SW5uZXI6ImRhdGFUYWJsZXNfc2Nyb2xsRm9vdElubmVyIixzRm9vdGVyVEg6IiIsc0pVSUhlYWRlcjoiIixzSlVJRm9vdGVyOiIifSk7aS5leHRlbmQoai5leHQub0pVSUNsYXNzZXMsai5leHQub1N0ZENsYXNzZXMse3NQYWdlUHJldkVuYWJsZWQ6ImZnLWJ1dHRvbiB1aS1idXR0b24gdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItbGVmdCIsc1BhZ2VQcmV2RGlzYWJsZWQ6ImZnLWJ1dHRvbiB1aS1idXR0b24gdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItbGVmdCB1aS1zdGF0ZS1kaXNhYmxlZCIsc1BhZ2VOZXh0RW5hYmxlZDoiZmctYnV0dG9uIHVpLWJ1dHRvbiB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1yaWdodCIsc1BhZ2VOZXh0RGlzYWJsZWQ6ImZnLWJ1dHRvbiB1aS1idXR0b24gdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItcmlnaHQgdWktc3RhdGUtZGlzYWJsZWQiLHNQYWdlSlVJTmV4dDoidWktaWNvbiB1aS1pY29uLWNpcmNsZS1hcnJvdy1lIiwKc1BhZ2VKVUlQcmV2OiJ1aS1pY29uIHVpLWljb24tY2lyY2xlLWFycm93LXciLHNQYWdlQnV0dG9uOiJmZy1idXR0b24gdWktYnV0dG9uIHVpLXN0YXRlLWRlZmF1bHQiLHNQYWdlQnV0dG9uQWN0aXZlOiJmZy1idXR0b24gdWktYnV0dG9uIHVpLXN0YXRlLWRlZmF1bHQgdWktc3RhdGUtZGlzYWJsZWQiLHNQYWdlQnV0dG9uU3RhdGljRGlzYWJsZWQ6ImZnLWJ1dHRvbiB1aS1idXR0b24gdWktc3RhdGUtZGVmYXVsdCB1aS1zdGF0ZS1kaXNhYmxlZCIsc1BhZ2VGaXJzdDoiZmlyc3QgdWktY29ybmVyLXRsIHVpLWNvcm5lci1ibCIsc1BhZ2VMYXN0OiJsYXN0IHVpLWNvcm5lci10ciB1aS1jb3JuZXItYnIiLHNQYWdpbmc6ImRhdGFUYWJsZXNfcGFnaW5hdGUgZmctYnV0dG9uc2V0IHVpLWJ1dHRvbnNldCBmZy1idXR0b25zZXQtbXVsdGkgdWktYnV0dG9uc2V0LW11bHRpIHBhZ2luZ18iLHNTb3J0QXNjOiJ1aS1zdGF0ZS1kZWZhdWx0IixzU29ydERlc2M6InVpLXN0YXRlLWRlZmF1bHQiLApzU29ydGFibGU6InVpLXN0YXRlLWRlZmF1bHQiLHNTb3J0YWJsZUFzYzoidWktc3RhdGUtZGVmYXVsdCIsc1NvcnRhYmxlRGVzYzoidWktc3RhdGUtZGVmYXVsdCIsc1NvcnRhYmxlTm9uZToidWktc3RhdGUtZGVmYXVsdCIsc1NvcnRKVUlBc2M6ImNzc19yaWdodCB1aS1pY29uIHVpLWljb24tdHJpYW5nbGUtMS1uIixzU29ydEpVSURlc2M6ImNzc19yaWdodCB1aS1pY29uIHVpLWljb24tdHJpYW5nbGUtMS1zIixzU29ydEpVSToiY3NzX3JpZ2h0IHVpLWljb24gdWktaWNvbi1jYXJhdC0yLW4tcyIsc1NvcnRKVUlBc2NBbGxvd2VkOiJjc3NfcmlnaHQgdWktaWNvbiB1aS1pY29uLWNhcmF0LTEtbiIsc1NvcnRKVUlEZXNjQWxsb3dlZDoiY3NzX3JpZ2h0IHVpLWljb24gdWktaWNvbi1jYXJhdC0xLXMiLHNTb3J0SlVJV3JhcHBlcjoiRGF0YVRhYmxlc19zb3J0X3dyYXBwZXIiLHNTb3J0SWNvbjoiRGF0YVRhYmxlc19zb3J0X2ljb24iLHNTY3JvbGxIZWFkOiJkYXRhVGFibGVzX3Njcm9sbEhlYWQgdWktc3RhdGUtZGVmYXVsdCIsCnNTY3JvbGxGb290OiJkYXRhVGFibGVzX3Njcm9sbEZvb3QgdWktc3RhdGUtZGVmYXVsdCIsc0Zvb3RlclRIOiJ1aS1zdGF0ZS1kZWZhdWx0IixzSlVJSGVhZGVyOiJmZy10b29sYmFyIHVpLXRvb2xiYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1jb3JuZXItdGwgdWktY29ybmVyLXRyIHVpLWhlbHBlci1jbGVhcmZpeCIsc0pVSUZvb3RlcjoiZmctdG9vbGJhciB1aS10b29sYmFyIHVpLXdpZGdldC1oZWFkZXIgdWktY29ybmVyLWJsIHVpLWNvcm5lci1iciB1aS1oZWxwZXItY2xlYXJmaXgifSk7aS5leHRlbmQoai5leHQub1BhZ2luYXRpb24se3R3b19idXR0b246e2ZuSW5pdDpmdW5jdGlvbihlLGosbil7dmFyIGs9ZS5vTGFuZ3VhZ2Uub1BhZ2luYXRlLGw9ZnVuY3Rpb24oaSl7ZS5vQXBpLl9mblBhZ2VDaGFuZ2UoZSxpLmRhdGEuYWN0aW9uKSYmbihlKX0saz0hZS5iSlVJPyc8YSBjbGFzcz0iJytlLm9DbGFzc2VzLnNQYWdlUHJldkRpc2FibGVkKyciIHRhYmluZGV4PSInK2UuaVRhYkluZGV4KwonIiByb2xlPSJidXR0b24iPicray5zUHJldmlvdXMrJzwvYT48YSBjbGFzcz0iJytlLm9DbGFzc2VzLnNQYWdlTmV4dERpc2FibGVkKyciIHRhYmluZGV4PSInK2UuaVRhYkluZGV4KyciIHJvbGU9ImJ1dHRvbiI+JytrLnNOZXh0KyI8L2E+IjonPGEgY2xhc3M9IicrZS5vQ2xhc3Nlcy5zUGFnZVByZXZEaXNhYmxlZCsnIiB0YWJpbmRleD0iJytlLmlUYWJJbmRleCsnIiByb2xlPSJidXR0b24iPjxzcGFuIGNsYXNzPSInK2Uub0NsYXNzZXMuc1BhZ2VKVUlQcmV2KyciPjwvc3Bhbj48L2E+PGEgY2xhc3M9IicrZS5vQ2xhc3Nlcy5zUGFnZU5leHREaXNhYmxlZCsnIiB0YWJpbmRleD0iJytlLmlUYWJJbmRleCsnIiByb2xlPSJidXR0b24iPjxzcGFuIGNsYXNzPSInK2Uub0NsYXNzZXMuc1BhZ2VKVUlOZXh0KyciPjwvc3Bhbj48L2E+JztpKGopLmFwcGVuZChrKTt2YXIgdD1pKCJhIixqKSxrPXRbMF0sdD10WzFdO2Uub0FwaS5fZm5CaW5kQWN0aW9uKGsse2FjdGlvbjoicHJldmlvdXMifSwKbCk7ZS5vQXBpLl9mbkJpbmRBY3Rpb24odCx7YWN0aW9uOiJuZXh0In0sbCk7ZS5hYW5GZWF0dXJlcy5wfHwoai5pZD1lLnNUYWJsZUlkKyJfcGFnaW5hdGUiLGsuaWQ9ZS5zVGFibGVJZCsiX3ByZXZpb3VzIix0LmlkPWUuc1RhYmxlSWQrIl9uZXh0IixrLnNldEF0dHJpYnV0ZSgiYXJpYS1jb250cm9scyIsZS5zVGFibGVJZCksdC5zZXRBdHRyaWJ1dGUoImFyaWEtY29udHJvbHMiLGUuc1RhYmxlSWQpKX0sZm5VcGRhdGU6ZnVuY3Rpb24oZSl7aWYoZS5hYW5GZWF0dXJlcy5wKWZvcih2YXIgaT1lLm9DbGFzc2VzLGo9ZS5hYW5GZWF0dXJlcy5wLGs9MCxuPWoubGVuZ3RoO2s8bjtrKyspMCE9PWpba10uY2hpbGROb2Rlcy5sZW5ndGgmJihqW2tdLmNoaWxkTm9kZXNbMF0uY2xhc3NOYW1lPTA9PT1lLl9pRGlzcGxheVN0YXJ0P2kuc1BhZ2VQcmV2RGlzYWJsZWQ6aS5zUGFnZVByZXZFbmFibGVkLGpba10uY2hpbGROb2Rlc1sxXS5jbGFzc05hbWU9ZS5mbkRpc3BsYXlFbmQoKT09ZS5mblJlY29yZHNEaXNwbGF5KCk/Cmkuc1BhZ2VOZXh0RGlzYWJsZWQ6aS5zUGFnZU5leHRFbmFibGVkKX19LGlGdWxsTnVtYmVyc1Nob3dQYWdlczo1LGZ1bGxfbnVtYmVyczp7Zm5Jbml0OmZ1bmN0aW9uKGUsaixuKXt2YXIgaz1lLm9MYW5ndWFnZS5vUGFnaW5hdGUsbD1lLm9DbGFzc2VzLHQ9ZnVuY3Rpb24oaSl7ZS5vQXBpLl9mblBhZ2VDaGFuZ2UoZSxpLmRhdGEuYWN0aW9uKSYmbihlKX07aShqKS5hcHBlbmQoJzxhICB0YWJpbmRleD0iJytlLmlUYWJJbmRleCsnIiBjbGFzcz0iJytsLnNQYWdlQnV0dG9uKyIgIitsLnNQYWdlRmlyc3QrJyI+JytrLnNGaXJzdCsnPC9hPjxhICB0YWJpbmRleD0iJytlLmlUYWJJbmRleCsnIiBjbGFzcz0iJytsLnNQYWdlQnV0dG9uKyIgIitsLnNQYWdlUHJldmlvdXMrJyI+JytrLnNQcmV2aW91cysnPC9hPjxzcGFuPjwvc3Bhbj48YSB0YWJpbmRleD0iJytlLmlUYWJJbmRleCsnIiBjbGFzcz0iJytsLnNQYWdlQnV0dG9uKyIgIitsLnNQYWdlTmV4dCsnIj4nK2suc05leHQrJzwvYT48YSB0YWJpbmRleD0iJysKZS5pVGFiSW5kZXgrJyIgY2xhc3M9IicrbC5zUGFnZUJ1dHRvbisiICIrbC5zUGFnZUxhc3QrJyI+JytrLnNMYXN0KyI8L2E+Iik7dmFyIHc9aSgiYSIsaiksaz13WzBdLGw9d1sxXSx2PXdbMl0sdz13WzNdO2Uub0FwaS5fZm5CaW5kQWN0aW9uKGsse2FjdGlvbjoiZmlyc3QifSx0KTtlLm9BcGkuX2ZuQmluZEFjdGlvbihsLHthY3Rpb246InByZXZpb3VzIn0sdCk7ZS5vQXBpLl9mbkJpbmRBY3Rpb24odix7YWN0aW9uOiJuZXh0In0sdCk7ZS5vQXBpLl9mbkJpbmRBY3Rpb24odyx7YWN0aW9uOiJsYXN0In0sdCk7ZS5hYW5GZWF0dXJlcy5wfHwoai5pZD1lLnNUYWJsZUlkKyJfcGFnaW5hdGUiLGsuaWQ9ZS5zVGFibGVJZCsiX2ZpcnN0IixsLmlkPWUuc1RhYmxlSWQrIl9wcmV2aW91cyIsdi5pZD1lLnNUYWJsZUlkKyJfbmV4dCIsdy5pZD1lLnNUYWJsZUlkKyJfbGFzdCIpfSxmblVwZGF0ZTpmdW5jdGlvbihlLG8pe2lmKGUuYWFuRmVhdHVyZXMucCl7dmFyIGw9ai5leHQub1BhZ2luYXRpb24uaUZ1bGxOdW1iZXJzU2hvd1BhZ2VzLAprPU1hdGguZmxvb3IobC8yKSxuPU1hdGguY2VpbChlLmZuUmVjb3Jkc0Rpc3BsYXkoKS9lLl9pRGlzcGxheUxlbmd0aCksdD1NYXRoLmNlaWwoZS5faURpc3BsYXlTdGFydC9lLl9pRGlzcGxheUxlbmd0aCkrMSx3PSIiLHYsRD1lLm9DbGFzc2VzLHksSD1lLmFhbkZlYXR1cmVzLnAsTz1mdW5jdGlvbihpKXtlLm9BcGkuX2ZuQmluZEFjdGlvbih0aGlzLHtwYWdlOmkrdi0xfSxmdW5jdGlvbihpKXtlLm9BcGkuX2ZuUGFnZUNoYW5nZShlLGkuZGF0YS5wYWdlKTtvKGUpO2kucHJldmVudERlZmF1bHQoKX0pfTstMT09PWUuX2lEaXNwbGF5TGVuZ3RoP3Q9az12PTE6bjxsPyh2PTEsaz1uKTp0PD1rPyh2PTEsaz1sKTp0Pj1uLWs/KHY9bi1sKzEsaz1uKToodj10LU1hdGguY2VpbChsLzIpKzEsaz12K2wtMSk7Zm9yKGw9djtsPD1rO2wrKyl3Kz10IT09bD8nPGEgdGFiaW5kZXg9IicrZS5pVGFiSW5kZXgrJyIgY2xhc3M9IicrRC5zUGFnZUJ1dHRvbisnIj4nK2UuZm5Gb3JtYXROdW1iZXIobCkrCiI8L2E+IjonPGEgdGFiaW5kZXg9IicrZS5pVGFiSW5kZXgrJyIgY2xhc3M9IicrRC5zUGFnZUJ1dHRvbkFjdGl2ZSsnIj4nK2UuZm5Gb3JtYXROdW1iZXIobCkrIjwvYT4iO2w9MDtmb3Ioaz1ILmxlbmd0aDtsPGs7bCsrKTAhPT1IW2xdLmNoaWxkTm9kZXMubGVuZ3RoJiYoaSgic3BhbjplcSgwKSIsSFtsXSkuaHRtbCh3KS5jaGlsZHJlbigiYSIpLmVhY2goTykseT1IW2xdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJhIikseT1beVswXSx5WzFdLHlbeS5sZW5ndGgtMl0seVt5Lmxlbmd0aC0xXV0saSh5KS5yZW1vdmVDbGFzcyhELnNQYWdlQnV0dG9uKyIgIitELnNQYWdlQnV0dG9uQWN0aXZlKyIgIitELnNQYWdlQnV0dG9uU3RhdGljRGlzYWJsZWQpLGkoW3lbMF0seVsxXV0pLmFkZENsYXNzKDE9PXQ/RC5zUGFnZUJ1dHRvblN0YXRpY0Rpc2FibGVkOkQuc1BhZ2VCdXR0b24pLGkoW3lbMl0seVszXV0pLmFkZENsYXNzKDA9PT1ufHx0PT09bnx8LTE9PT1lLl9pRGlzcGxheUxlbmd0aD8KRC5zUGFnZUJ1dHRvblN0YXRpY0Rpc2FibGVkOkQuc1BhZ2VCdXR0b24pKX19fX0pO2kuZXh0ZW5kKGouZXh0Lm9Tb3J0LHsic3RyaW5nLXByZSI6ZnVuY3Rpb24oZSl7InN0cmluZyIhPXR5cGVvZiBlJiYoZT1udWxsIT09ZSYmZS50b1N0cmluZz9lLnRvU3RyaW5nKCk6IiIpO3JldHVybiBlLnRvTG93ZXJDYXNlKCl9LCJzdHJpbmctYXNjIjpmdW5jdGlvbihlLGkpe3JldHVybiBlPGk/LTE6ZT5pPzE6MH0sInN0cmluZy1kZXNjIjpmdW5jdGlvbihlLGkpe3JldHVybiBlPGk/MTplPmk/LTE6MH0sImh0bWwtcHJlIjpmdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKC88Lio/Pi9nLCIiKS50b0xvd2VyQ2FzZSgpfSwiaHRtbC1hc2MiOmZ1bmN0aW9uKGUsaSl7cmV0dXJuIGU8aT8tMTplPmk/MTowfSwiaHRtbC1kZXNjIjpmdW5jdGlvbihlLGkpe3JldHVybiBlPGk/MTplPmk/LTE6MH0sImRhdGUtcHJlIjpmdW5jdGlvbihlKXtlPURhdGUucGFyc2UoZSk7aWYoaXNOYU4oZSl8fCIiPT09CmUpZT1EYXRlLnBhcnNlKCIwMS8wMS8xOTcwIDAwOjAwOjAwIik7cmV0dXJuIGV9LCJkYXRlLWFzYyI6ZnVuY3Rpb24oZSxpKXtyZXR1cm4gZS1pfSwiZGF0ZS1kZXNjIjpmdW5jdGlvbihlLGkpe3JldHVybiBpLWV9LCJudW1lcmljLXByZSI6ZnVuY3Rpb24oZSl7cmV0dXJuIi0iPT1lfHwiIj09PWU/MDoxKmV9LCJudW1lcmljLWFzYyI6ZnVuY3Rpb24oZSxpKXtyZXR1cm4gZS1pfSwibnVtZXJpYy1kZXNjIjpmdW5jdGlvbihlLGkpe3JldHVybiBpLWV9fSk7aS5leHRlbmQoai5leHQuYVR5cGVzLFtmdW5jdGlvbihlKXtpZigibnVtYmVyIj09PXR5cGVvZiBlKXJldHVybiJudW1lcmljIjtpZigic3RyaW5nIiE9PXR5cGVvZiBlKXJldHVybiBudWxsO3ZhciBpLGo9ITE7aT1lLmNoYXJBdCgwKTtpZigtMT09IjAxMjM0NTY3ODktIi5pbmRleE9mKGkpKXJldHVybiBudWxsO2Zvcih2YXIgaz0xO2s8ZS5sZW5ndGg7aysrKXtpPWUuY2hhckF0KGspO2lmKC0xPT0iMDEyMzQ1Njc4OS4iLmluZGV4T2YoaSkpcmV0dXJuIG51bGw7CmlmKCIuIj09aSl7aWYoailyZXR1cm4gbnVsbDtqPSEwfX1yZXR1cm4ibnVtZXJpYyJ9LGZ1bmN0aW9uKGUpe3ZhciBpPURhdGUucGFyc2UoZSk7cmV0dXJuIG51bGwhPT1pJiYhaXNOYU4oaSl8fCJzdHJpbmciPT09dHlwZW9mIGUmJjA9PT1lLmxlbmd0aD8iZGF0ZSI6bnVsbH0sZnVuY3Rpb24oZSl7cmV0dXJuInN0cmluZyI9PT10eXBlb2YgZSYmLTEhPWUuaW5kZXhPZigiPCIpJiYtMSE9ZS5pbmRleE9mKCI+Iik/Imh0bWwiOm51bGx9XSk7aS5mbi5EYXRhVGFibGU9ajtpLmZuLmRhdGFUYWJsZT1qO2kuZm4uZGF0YVRhYmxlU2V0dGluZ3M9ai5zZXR0aW5ncztpLmZuLmRhdGFUYWJsZUV4dD1qLmV4dH0pKGpRdWVyeSx3aW5kb3csZG9jdW1lbnQsdm9pZCAwKTsK]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/js/jquery.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyohIGpRdWVyeSB2MS43LjEganF1ZXJ5LmNvbSB8IGpxdWVyeS5vcmcvbGljZW5zZSAqLwooZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjeShhKXtyZXR1cm4gZi5pc1dpbmRvdyhhKT9hOmEubm9kZVR5cGU9PT05P2EuZGVmYXVsdFZpZXd8fGEucGFyZW50V2luZG93OiExfWZ1bmN0aW9uIGN2KGEpe2lmKCFja1thXSl7dmFyIGI9Yy5ib2R5LGQ9ZigiPCIrYSsiPiIpLmFwcGVuZFRvKGIpLGU9ZC5jc3MoImRpc3BsYXkiKTtkLnJlbW92ZSgpO2lmKGU9PT0ibm9uZSJ8fGU9PT0iIil7Y2x8fChjbD1jLmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpLGNsLmZyYW1lQm9yZGVyPWNsLndpZHRoPWNsLmhlaWdodD0wKSxiLmFwcGVuZENoaWxkKGNsKTtpZighY218fCFjbC5jcmVhdGVFbGVtZW50KWNtPShjbC5jb250ZW50V2luZG93fHxjbC5jb250ZW50RG9jdW1lbnQpLmRvY3VtZW50LGNtLndyaXRlKChjLmNvbXBhdE1vZGU9PT0iQ1NTMUNvbXBhdCI/IjwhZG9jdHlwZSBodG1sPiI6IiIpKyI8aHRtbD48Ym9keT4iKSxjbS5jbG9zZSgpO2Q9Y20uY3JlYXRlRWxlbWVudChhKSxjbS5ib2R5LmFwcGVuZENoaWxkKGQpLGU9Zi5jc3MoZCwiZGlzcGxheSIpLGIucmVtb3ZlQ2hpbGQoY2wpfWNrW2FdPWV9cmV0dXJuIGNrW2FdfWZ1bmN0aW9uIGN1KGEsYil7dmFyIGM9e307Zi5lYWNoKGNxLmNvbmNhdC5hcHBseShbXSxjcS5zbGljZSgwLGIpKSxmdW5jdGlvbigpe2NbdGhpc109YX0pO3JldHVybiBjfWZ1bmN0aW9uIGN0KCl7Y3I9Yn1mdW5jdGlvbiBjcygpe3NldFRpbWVvdXQoY3QsMCk7cmV0dXJuIGNyPWYubm93KCl9ZnVuY3Rpb24gY2ooKXt0cnl7cmV0dXJuIG5ldyBhLkFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxIVFRQIil9Y2F0Y2goYil7fX1mdW5jdGlvbiBjaSgpe3RyeXtyZXR1cm4gbmV3IGEuWE1MSHR0cFJlcXVlc3R9Y2F0Y2goYil7fX1mdW5jdGlvbiBjYyhhLGMpe2EuZGF0YUZpbHRlciYmKGM9YS5kYXRhRmlsdGVyKGMsYS5kYXRhVHlwZSkpO3ZhciBkPWEuZGF0YVR5cGVzLGU9e30sZyxoLGk9ZC5sZW5ndGgsaixrPWRbMF0sbCxtLG4sbyxwO2ZvcihnPTE7ZzxpO2crKyl7aWYoZz09PTEpZm9yKGggaW4gYS5jb252ZXJ0ZXJzKXR5cGVvZiBoPT0ic3RyaW5nIiYmKGVbaC50b0xvd2VyQ2FzZSgpXT1hLmNvbnZlcnRlcnNbaF0pO2w9ayxrPWRbZ107aWYoaz09PSIqIilrPWw7ZWxzZSBpZihsIT09IioiJiZsIT09ayl7bT1sKyIgIitrLG49ZVttXXx8ZVsiKiAiK2tdO2lmKCFuKXtwPWI7Zm9yKG8gaW4gZSl7aj1vLnNwbGl0KCIgIik7aWYoalswXT09PWx8fGpbMF09PT0iKiIpe3A9ZVtqWzFdKyIgIitrXTtpZihwKXtvPWVbb10sbz09PSEwP249cDpwPT09ITAmJihuPW8pO2JyZWFrfX19fSFuJiYhcCYmZi5lcnJvcigiTm8gY29udmVyc2lvbiBmcm9tICIrbS5yZXBsYWNlKCIgIiwiIHRvICIpKSxuIT09ITAmJihjPW4/bihjKTpwKG8oYykpKX19cmV0dXJuIGN9ZnVuY3Rpb24gY2IoYSxjLGQpe3ZhciBlPWEuY29udGVudHMsZj1hLmRhdGFUeXBlcyxnPWEucmVzcG9uc2VGaWVsZHMsaCxpLGosaztmb3IoaSBpbiBnKWkgaW4gZCYmKGNbZ1tpXV09ZFtpXSk7d2hpbGUoZlswXT09PSIqIilmLnNoaWZ0KCksaD09PWImJihoPWEubWltZVR5cGV8fGMuZ2V0UmVzcG9uc2VIZWFkZXIoImNvbnRlbnQtdHlwZSIpKTtpZihoKWZvcihpIGluIGUpaWYoZVtpXSYmZVtpXS50ZXN0KGgpKXtmLnVuc2hpZnQoaSk7YnJlYWt9aWYoZlswXWluIGQpaj1mWzBdO2Vsc2V7Zm9yKGkgaW4gZCl7aWYoIWZbMF18fGEuY29udmVydGVyc1tpKyIgIitmWzBdXSl7aj1pO2JyZWFrfWt8fChrPWkpfWo9anx8a31pZihqKXtqIT09ZlswXSYmZi51bnNoaWZ0KGopO3JldHVybiBkW2pdfX1mdW5jdGlvbiBjYShhLGIsYyxkKXtpZihmLmlzQXJyYXkoYikpZi5lYWNoKGIsZnVuY3Rpb24oYixlKXtjfHxiRS50ZXN0KGEpP2QoYSxlKTpjYShhKyJbIisodHlwZW9mIGU9PSJvYmplY3QifHxmLmlzQXJyYXkoZSk/YjoiIikrIl0iLGUsYyxkKX0pO2Vsc2UgaWYoIWMmJmIhPW51bGwmJnR5cGVvZiBiPT0ib2JqZWN0Iilmb3IodmFyIGUgaW4gYiljYShhKyJbIitlKyJdIixiW2VdLGMsZCk7ZWxzZSBkKGEsYil9ZnVuY3Rpb24gYl8oYSxjKXt2YXIgZCxlLGc9Zi5hamF4U2V0dGluZ3MuZmxhdE9wdGlvbnN8fHt9O2ZvcihkIGluIGMpY1tkXSE9PWImJigoZ1tkXT9hOmV8fChlPXt9KSlbZF09Y1tkXSk7ZSYmZi5leHRlbmQoITAsYSxlKX1mdW5jdGlvbiBiJChhLGMsZCxlLGYsZyl7Zj1mfHxjLmRhdGFUeXBlc1swXSxnPWd8fHt9LGdbZl09ITA7dmFyIGg9YVtmXSxpPTAsaj1oP2gubGVuZ3RoOjAsaz1hPT09YlQsbDtmb3IoO2k8aiYmKGt8fCFsKTtpKyspbD1oW2ldKGMsZCxlKSx0eXBlb2YgbD09InN0cmluZyImJigha3x8Z1tsXT9sPWI6KGMuZGF0YVR5cGVzLnVuc2hpZnQobCksbD1iJChhLGMsZCxlLGwsZykpKTsoa3x8IWwpJiYhZ1siKiJdJiYobD1iJChhLGMsZCxlLCIqIixnKSk7cmV0dXJuIGx9ZnVuY3Rpb24gYlooYSl7cmV0dXJuIGZ1bmN0aW9uKGIsYyl7dHlwZW9mIGIhPSJzdHJpbmciJiYoYz1iLGI9IioiKTtpZihmLmlzRnVuY3Rpb24oYykpe3ZhciBkPWIudG9Mb3dlckNhc2UoKS5zcGxpdChiUCksZT0wLGc9ZC5sZW5ndGgsaCxpLGo7Zm9yKDtlPGc7ZSsrKWg9ZFtlXSxqPS9eXCsvLnRlc3QoaCksaiYmKGg9aC5zdWJzdHIoMSl8fCIqIiksaT1hW2hdPWFbaF18fFtdLGlbaj8idW5zaGlmdCI6InB1c2giXShjKX19fWZ1bmN0aW9uIGJDKGEsYixjKXt2YXIgZD1iPT09IndpZHRoIj9hLm9mZnNldFdpZHRoOmEub2Zmc2V0SGVpZ2h0LGU9Yj09PSJ3aWR0aCI/Yng6YnksZz0wLGg9ZS5sZW5ndGg7aWYoZD4wKXtpZihjIT09ImJvcmRlciIpZm9yKDtnPGg7ZysrKWN8fChkLT1wYXJzZUZsb2F0KGYuY3NzKGEsInBhZGRpbmciK2VbZ10pKXx8MCksYz09PSJtYXJnaW4iP2QrPXBhcnNlRmxvYXQoZi5jc3MoYSxjK2VbZ10pKXx8MDpkLT1wYXJzZUZsb2F0KGYuY3NzKGEsImJvcmRlciIrZVtnXSsiV2lkdGgiKSl8fDA7cmV0dXJuIGQrInB4In1kPWJ6KGEsYixiKTtpZihkPDB8fGQ9PW51bGwpZD1hLnN0eWxlW2JdfHwwO2Q9cGFyc2VGbG9hdChkKXx8MDtpZihjKWZvcig7ZzxoO2crKylkKz1wYXJzZUZsb2F0KGYuY3NzKGEsInBhZGRpbmciK2VbZ10pKXx8MCxjIT09InBhZGRpbmciJiYoZCs9cGFyc2VGbG9hdChmLmNzcyhhLCJib3JkZXIiK2VbZ10rIldpZHRoIikpfHwwKSxjPT09Im1hcmdpbiImJihkKz1wYXJzZUZsb2F0KGYuY3NzKGEsYytlW2ddKSl8fDApO3JldHVybiBkKyJweCJ9ZnVuY3Rpb24gYnAoYSxiKXtiLnNyYz9mLmFqYXgoe3VybDpiLnNyYyxhc3luYzohMSxkYXRhVHlwZToic2NyaXB0In0pOmYuZ2xvYmFsRXZhbCgoYi50ZXh0fHxiLnRleHRDb250ZW50fHxiLmlubmVySFRNTHx8IiIpLnJlcGxhY2UoYmYsIi8qJDAqLyIpKSxiLnBhcmVudE5vZGUmJmIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChiKX1mdW5jdGlvbiBibyhhKXt2YXIgYj1jLmNyZWF0ZUVsZW1lbnQoImRpdiIpO2JoLmFwcGVuZENoaWxkKGIpLGIuaW5uZXJIVE1MPWEub3V0ZXJIVE1MO3JldHVybiBiLmZpcnN0Q2hpbGR9ZnVuY3Rpb24gYm4oYSl7dmFyIGI9KGEubm9kZU5hbWV8fCIiKS50b0xvd2VyQ2FzZSgpO2I9PT0iaW5wdXQiP2JtKGEpOmIhPT0ic2NyaXB0IiYmdHlwZW9mIGEuZ2V0RWxlbWVudHNCeVRhZ05hbWUhPSJ1bmRlZmluZWQiJiZmLmdyZXAoYS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKSxibSl9ZnVuY3Rpb24gYm0oYSl7aWYoYS50eXBlPT09ImNoZWNrYm94Inx8YS50eXBlPT09InJhZGlvIilhLmRlZmF1bHRDaGVja2VkPWEuY2hlY2tlZH1mdW5jdGlvbiBibChhKXtyZXR1cm4gdHlwZW9mIGEuZ2V0RWxlbWVudHNCeVRhZ05hbWUhPSJ1bmRlZmluZWQiP2EuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKTp0eXBlb2YgYS5xdWVyeVNlbGVjdG9yQWxsIT0idW5kZWZpbmVkIj9hLnF1ZXJ5U2VsZWN0b3JBbGwoIioiKTpbXX1mdW5jdGlvbiBiayhhLGIpe3ZhciBjO2lmKGIubm9kZVR5cGU9PT0xKXtiLmNsZWFyQXR0cmlidXRlcyYmYi5jbGVhckF0dHJpYnV0ZXMoKSxiLm1lcmdlQXR0cmlidXRlcyYmYi5tZXJnZUF0dHJpYnV0ZXMoYSksYz1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7aWYoYz09PSJvYmplY3QiKWIub3V0ZXJIVE1MPWEub3V0ZXJIVE1MO2Vsc2UgaWYoYyE9PSJpbnB1dCJ8fGEudHlwZSE9PSJjaGVja2JveCImJmEudHlwZSE9PSJyYWRpbyIpe2lmKGM9PT0ib3B0aW9uIiliLnNlbGVjdGVkPWEuZGVmYXVsdFNlbGVjdGVkO2Vsc2UgaWYoYz09PSJpbnB1dCJ8fGM9PT0idGV4dGFyZWEiKWIuZGVmYXVsdFZhbHVlPWEuZGVmYXVsdFZhbHVlfWVsc2UgYS5jaGVja2VkJiYoYi5kZWZhdWx0Q2hlY2tlZD1iLmNoZWNrZWQ9YS5jaGVja2VkKSxiLnZhbHVlIT09YS52YWx1ZSYmKGIudmFsdWU9YS52YWx1ZSk7Yi5yZW1vdmVBdHRyaWJ1dGUoZi5leHBhbmRvKX19ZnVuY3Rpb24gYmooYSxiKXtpZihiLm5vZGVUeXBlPT09MSYmISFmLmhhc0RhdGEoYSkpe3ZhciBjLGQsZSxnPWYuX2RhdGEoYSksaD1mLl9kYXRhKGIsZyksaT1nLmV2ZW50cztpZihpKXtkZWxldGUgaC5oYW5kbGUsaC5ldmVudHM9e307Zm9yKGMgaW4gaSlmb3IoZD0wLGU9aVtjXS5sZW5ndGg7ZDxlO2QrKylmLmV2ZW50LmFkZChiLGMrKGlbY11bZF0ubmFtZXNwYWNlPyIuIjoiIikraVtjXVtkXS5uYW1lc3BhY2UsaVtjXVtkXSxpW2NdW2RdLmRhdGEpfWguZGF0YSYmKGguZGF0YT1mLmV4dGVuZCh7fSxoLmRhdGEpKX19ZnVuY3Rpb24gYmkoYSxiKXtyZXR1cm4gZi5ub2RlTmFtZShhLCJ0YWJsZSIpP2EuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRib2R5IilbMF18fGEuYXBwZW5kQ2hpbGQoYS5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRib2R5IikpOmF9ZnVuY3Rpb24gVShhKXt2YXIgYj1WLnNwbGl0KCJ8IiksYz1hLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtpZihjLmNyZWF0ZUVsZW1lbnQpd2hpbGUoYi5sZW5ndGgpYy5jcmVhdGVFbGVtZW50KGIucG9wKCkpO3JldHVybiBjfWZ1bmN0aW9uIFQoYSxiLGMpe2I9Ynx8MDtpZihmLmlzRnVuY3Rpb24oYikpcmV0dXJuIGYuZ3JlcChhLGZ1bmN0aW9uKGEsZCl7dmFyIGU9ISFiLmNhbGwoYSxkLGEpO3JldHVybiBlPT09Y30pO2lmKGIubm9kZVR5cGUpcmV0dXJuIGYuZ3JlcChhLGZ1bmN0aW9uKGEsZCl7cmV0dXJuIGE9PT1iPT09Y30pO2lmKHR5cGVvZiBiPT0ic3RyaW5nIil7dmFyIGQ9Zi5ncmVwKGEsZnVuY3Rpb24oYSl7cmV0dXJuIGEubm9kZVR5cGU9PT0xfSk7aWYoTy50ZXN0KGIpKXJldHVybiBmLmZpbHRlcihiLGQsIWMpO2I9Zi5maWx0ZXIoYixkKX1yZXR1cm4gZi5ncmVwKGEsZnVuY3Rpb24oYSxkKXtyZXR1cm4gZi5pbkFycmF5KGEsYik+PTA9PT1jfSl9ZnVuY3Rpb24gUyhhKXtyZXR1cm4hYXx8IWEucGFyZW50Tm9kZXx8YS5wYXJlbnROb2RlLm5vZGVUeXBlPT09MTF9ZnVuY3Rpb24gSygpe3JldHVybiEwfWZ1bmN0aW9uIEooKXtyZXR1cm4hMX1mdW5jdGlvbiBuKGEsYixjKXt2YXIgZD1iKyJkZWZlciIsZT1iKyJxdWV1ZSIsZz1iKyJtYXJrIixoPWYuX2RhdGEoYSxkKTtoJiYoYz09PSJxdWV1ZSJ8fCFmLl9kYXRhKGEsZSkpJiYoYz09PSJtYXJrInx8IWYuX2RhdGEoYSxnKSkmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXshZi5fZGF0YShhLGUpJiYhZi5fZGF0YShhLGcpJiYoZi5yZW1vdmVEYXRhKGEsZCwhMCksaC5maXJlKCkpfSwwKX1mdW5jdGlvbiBtKGEpe2Zvcih2YXIgYiBpbiBhKXtpZihiPT09ImRhdGEiJiZmLmlzRW1wdHlPYmplY3QoYVtiXSkpY29udGludWU7aWYoYiE9PSJ0b0pTT04iKXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIGwoYSxjLGQpe2lmKGQ9PT1iJiZhLm5vZGVUeXBlPT09MSl7dmFyIGU9ImRhdGEtIitjLnJlcGxhY2UoaywiLSQxIikudG9Mb3dlckNhc2UoKTtkPWEuZ2V0QXR0cmlidXRlKGUpO2lmKHR5cGVvZiBkPT0ic3RyaW5nIil7dHJ5e2Q9ZD09PSJ0cnVlIj8hMDpkPT09ImZhbHNlIj8hMTpkPT09Im51bGwiP251bGw6Zi5pc051bWVyaWMoZCk/cGFyc2VGbG9hdChkKTpqLnRlc3QoZCk/Zi5wYXJzZUpTT04oZCk6ZH1jYXRjaChnKXt9Zi5kYXRhKGEsYyxkKX1lbHNlIGQ9Yn1yZXR1cm4gZH1mdW5jdGlvbiBoKGEpe3ZhciBiPWdbYV09e30sYyxkO2E9YS5zcGxpdCgvXHMrLyk7Zm9yKGM9MCxkPWEubGVuZ3RoO2M8ZDtjKyspYlthW2NdXT0hMDtyZXR1cm4gYn12YXIgYz1hLmRvY3VtZW50LGQ9YS5uYXZpZ2F0b3IsZT1hLmxvY2F0aW9uLGY9ZnVuY3Rpb24oKXtmdW5jdGlvbiBKKCl7aWYoIWUuaXNSZWFkeSl7dHJ5e2MuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsKCJsZWZ0Iil9Y2F0Y2goYSl7c2V0VGltZW91dChKLDEpO3JldHVybn1lLnJlYWR5KCl9fXZhciBlPWZ1bmN0aW9uKGEsYil7cmV0dXJuIG5ldyBlLmZuLmluaXQoYSxiLGgpfSxmPWEualF1ZXJ5LGc9YS4kLGgsaT0vXig/OlteIzxdKig8W1x3XFddKz4pW14+XSokfCMoW1x3XC1dKikkKS8saj0vXFMvLGs9L15ccysvLGw9L1xzKyQvLG09L148KFx3KylccypcLz8+KD86PFwvXDE+KT8kLyxuPS9eW1xdLDp7fVxzXSokLyxvPS9cXCg/OlsiXFxcL2JmbnJ0XXx1WzAtOWEtZkEtRl17NH0pL2cscD0vIlteIlxcXG5ccl0qInx0cnVlfGZhbHNlfG51bGx8LT9cZCsoPzpcLlxkKik/KD86W2VFXVsrXC1dP1xkKyk/L2cscT0vKD86Xnw6fCwpKD86XHMqXFspKy9nLHI9Lyh3ZWJraXQpWyBcL10oW1x3Ll0rKS8scz0vKG9wZXJhKSg/Oi4qdmVyc2lvbik/WyBcL10oW1x3Ll0rKS8sdD0vKG1zaWUpIChbXHcuXSspLyx1PS8obW96aWxsYSkoPzouKj8gcnY6KFtcdy5dKykpPy8sdj0vLShbYS16XXxbMC05XSkvaWcsdz0vXi1tcy0vLHg9ZnVuY3Rpb24oYSxiKXtyZXR1cm4oYisiIikudG9VcHBlckNhc2UoKX0seT1kLnVzZXJBZ2VudCx6LEEsQixDPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsRD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LEU9QXJyYXkucHJvdG90eXBlLnB1c2gsRj1BcnJheS5wcm90b3R5cGUuc2xpY2UsRz1TdHJpbmcucHJvdG90eXBlLnRyaW0sSD1BcnJheS5wcm90b3R5cGUuaW5kZXhPZixJPXt9O2UuZm49ZS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmUsaW5pdDpmdW5jdGlvbihhLGQsZil7dmFyIGcsaCxqLGs7aWYoIWEpcmV0dXJuIHRoaXM7aWYoYS5ub2RlVHlwZSl7dGhpcy5jb250ZXh0PXRoaXNbMF09YSx0aGlzLmxlbmd0aD0xO3JldHVybiB0aGlzfWlmKGE9PT0iYm9keSImJiFkJiZjLmJvZHkpe3RoaXMuY29udGV4dD1jLHRoaXNbMF09Yy5ib2R5LHRoaXMuc2VsZWN0b3I9YSx0aGlzLmxlbmd0aD0xO3JldHVybiB0aGlzfWlmKHR5cGVvZiBhPT0ic3RyaW5nIil7YS5jaGFyQXQoMCkhPT0iPCJ8fGEuY2hhckF0KGEubGVuZ3RoLTEpIT09Ij4ifHxhLmxlbmd0aDwzP2c9aS5leGVjKGEpOmc9W251bGwsYSxudWxsXTtpZihnJiYoZ1sxXXx8IWQpKXtpZihnWzFdKXtkPWQgaW5zdGFuY2VvZiBlP2RbMF06ZCxrPWQ/ZC5vd25lckRvY3VtZW50fHxkOmMsaj1tLmV4ZWMoYSksaj9lLmlzUGxhaW5PYmplY3QoZCk/KGE9W2MuY3JlYXRlRWxlbWVudChqWzFdKV0sZS5mbi5hdHRyLmNhbGwoYSxkLCEwKSk6YT1bay5jcmVhdGVFbGVtZW50KGpbMV0pXTooaj1lLmJ1aWxkRnJhZ21lbnQoW2dbMV1dLFtrXSksYT0oai5jYWNoZWFibGU/ZS5jbG9uZShqLmZyYWdtZW50KTpqLmZyYWdtZW50KS5jaGlsZE5vZGVzKTtyZXR1cm4gZS5tZXJnZSh0aGlzLGEpfWg9Yy5nZXRFbGVtZW50QnlJZChnWzJdKTtpZihoJiZoLnBhcmVudE5vZGUpe2lmKGguaWQhPT1nWzJdKXJldHVybiBmLmZpbmQoYSk7dGhpcy5sZW5ndGg9MSx0aGlzWzBdPWh9dGhpcy5jb250ZXh0PWMsdGhpcy5zZWxlY3Rvcj1hO3JldHVybiB0aGlzfXJldHVybiFkfHxkLmpxdWVyeT8oZHx8ZikuZmluZChhKTp0aGlzLmNvbnN0cnVjdG9yKGQpLmZpbmQoYSl9aWYoZS5pc0Z1bmN0aW9uKGEpKXJldHVybiBmLnJlYWR5KGEpO2Euc2VsZWN0b3IhPT1iJiYodGhpcy5zZWxlY3Rvcj1hLnNlbGVjdG9yLHRoaXMuY29udGV4dD1hLmNvbnRleHQpO3JldHVybiBlLm1ha2VBcnJheShhLHRoaXMpfSxzZWxlY3RvcjoiIixqcXVlcnk6IjEuNy4xIixsZW5ndGg6MCxzaXplOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGVuZ3RofSx0b0FycmF5OmZ1bmN0aW9uKCl7cmV0dXJuIEYuY2FsbCh0aGlzLDApfSxnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PW51bGw/dGhpcy50b0FycmF5KCk6YTwwP3RoaXNbdGhpcy5sZW5ndGgrYV06dGhpc1thXX0scHVzaFN0YWNrOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLmNvbnN0cnVjdG9yKCk7ZS5pc0FycmF5KGEpP0UuYXBwbHkoZCxhKTplLm1lcmdlKGQsYSksZC5wcmV2T2JqZWN0PXRoaXMsZC5jb250ZXh0PXRoaXMuY29udGV4dCxiPT09ImZpbmQiP2Quc2VsZWN0b3I9dGhpcy5zZWxlY3RvcisodGhpcy5zZWxlY3Rvcj8iICI6IiIpK2M6YiYmKGQuc2VsZWN0b3I9dGhpcy5zZWxlY3RvcisiLiIrYisiKCIrYysiKSIpO3JldHVybiBkfSxlYWNoOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGUuZWFjaCh0aGlzLGEsYil9LHJlYWR5OmZ1bmN0aW9uKGEpe2UuYmluZFJlYWR5KCksQS5hZGQoYSk7cmV0dXJuIHRoaXN9LGVxOmZ1bmN0aW9uKGEpe2E9K2E7cmV0dXJuIGE9PT0tMT90aGlzLnNsaWNlKGEpOnRoaXMuc2xpY2UoYSxhKzEpfSxmaXJzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKDApfSxsYXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoLTEpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhGLmFwcGx5KHRoaXMsYXJndW1lbnRzKSwic2xpY2UiLEYuY2FsbChhcmd1bWVudHMpLmpvaW4oIiwiKSl9LG1hcDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZS5tYXAodGhpcyxmdW5jdGlvbihiLGMpe3JldHVybiBhLmNhbGwoYixjLGIpfSkpfSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcmV2T2JqZWN0fHx0aGlzLmNvbnN0cnVjdG9yKG51bGwpfSxwdXNoOkUsc29ydDpbXS5zb3J0LHNwbGljZTpbXS5zcGxpY2V9LGUuZm4uaW5pdC5wcm90b3R5cGU9ZS5mbixlLmV4dGVuZD1lLmZuLmV4dGVuZD1mdW5jdGlvbigpe3ZhciBhLGMsZCxmLGcsaCxpPWFyZ3VtZW50c1swXXx8e30saj0xLGs9YXJndW1lbnRzLmxlbmd0aCxsPSExO3R5cGVvZiBpPT0iYm9vbGVhbiImJihsPWksaT1hcmd1bWVudHNbMV18fHt9LGo9MiksdHlwZW9mIGkhPSJvYmplY3QiJiYhZS5pc0Z1bmN0aW9uKGkpJiYoaT17fSksaz09PWomJihpPXRoaXMsLS1qKTtmb3IoO2o8aztqKyspaWYoKGE9YXJndW1lbnRzW2pdKSE9bnVsbClmb3IoYyBpbiBhKXtkPWlbY10sZj1hW2NdO2lmKGk9PT1mKWNvbnRpbnVlO2wmJmYmJihlLmlzUGxhaW5PYmplY3QoZil8fChnPWUuaXNBcnJheShmKSkpPyhnPyhnPSExLGg9ZCYmZS5pc0FycmF5KGQpP2Q6W10pOmg9ZCYmZS5pc1BsYWluT2JqZWN0KGQpP2Q6e30saVtjXT1lLmV4dGVuZChsLGgsZikpOmYhPT1iJiYoaVtjXT1mKX1yZXR1cm4gaX0sZS5leHRlbmQoe25vQ29uZmxpY3Q6ZnVuY3Rpb24oYil7YS4kPT09ZSYmKGEuJD1nKSxiJiZhLmpRdWVyeT09PWUmJihhLmpRdWVyeT1mKTtyZXR1cm4gZX0saXNSZWFkeTohMSxyZWFkeVdhaXQ6MSxob2xkUmVhZHk6ZnVuY3Rpb24oYSl7YT9lLnJlYWR5V2FpdCsrOmUucmVhZHkoITApfSxyZWFkeTpmdW5jdGlvbihhKXtpZihhPT09ITAmJiEtLWUucmVhZHlXYWl0fHxhIT09ITAmJiFlLmlzUmVhZHkpe2lmKCFjLmJvZHkpcmV0dXJuIHNldFRpbWVvdXQoZS5yZWFkeSwxKTtlLmlzUmVhZHk9ITA7aWYoYSE9PSEwJiYtLWUucmVhZHlXYWl0PjApcmV0dXJuO0EuZmlyZVdpdGgoYyxbZV0pLGUuZm4udHJpZ2dlciYmZShjKS50cmlnZ2VyKCJyZWFkeSIpLm9mZigicmVhZHkiKX19LGJpbmRSZWFkeTpmdW5jdGlvbigpe2lmKCFBKXtBPWUuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpO2lmKGMucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSIpcmV0dXJuIHNldFRpbWVvdXQoZS5yZWFkeSwxKTtpZihjLmFkZEV2ZW50TGlzdGVuZXIpYy5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixCLCExKSxhLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGUucmVhZHksITEpO2Vsc2UgaWYoYy5hdHRhY2hFdmVudCl7Yy5hdHRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIixCKSxhLmF0dGFjaEV2ZW50KCJvbmxvYWQiLGUucmVhZHkpO3ZhciBiPSExO3RyeXtiPWEuZnJhbWVFbGVtZW50PT1udWxsfWNhdGNoKGQpe31jLmRvY3VtZW50RWxlbWVudC5kb1Njcm9sbCYmYiYmSigpfX19LGlzRnVuY3Rpb246ZnVuY3Rpb24oYSl7cmV0dXJuIGUudHlwZShhKT09PSJmdW5jdGlvbiJ9LGlzQXJyYXk6QXJyYXkuaXNBcnJheXx8ZnVuY3Rpb24oYSl7cmV0dXJuIGUudHlwZShhKT09PSJhcnJheSJ9LGlzV2luZG93OmZ1bmN0aW9uKGEpe3JldHVybiBhJiZ0eXBlb2YgYT09Im9iamVjdCImJiJzZXRJbnRlcnZhbCJpbiBhfSxpc051bWVyaWM6ZnVuY3Rpb24oYSl7cmV0dXJuIWlzTmFOKHBhcnNlRmxvYXQoYSkpJiZpc0Zpbml0ZShhKX0sdHlwZTpmdW5jdGlvbihhKXtyZXR1cm4gYT09bnVsbD9TdHJpbmcoYSk6SVtDLmNhbGwoYSldfHwib2JqZWN0In0saXNQbGFpbk9iamVjdDpmdW5jdGlvbihhKXtpZighYXx8ZS50eXBlKGEpIT09Im9iamVjdCJ8fGEubm9kZVR5cGV8fGUuaXNXaW5kb3coYSkpcmV0dXJuITE7dHJ5e2lmKGEuY29uc3RydWN0b3ImJiFELmNhbGwoYSwiY29uc3RydWN0b3IiKSYmIUQuY2FsbChhLmNvbnN0cnVjdG9yLnByb3RvdHlwZSwiaXNQcm90b3R5cGVPZiIpKXJldHVybiExfWNhdGNoKGMpe3JldHVybiExfXZhciBkO2ZvcihkIGluIGEpO3JldHVybiBkPT09Ynx8RC5jYWxsKGEsZCl9LGlzRW1wdHlPYmplY3Q6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiIGluIGEpcmV0dXJuITE7cmV0dXJuITB9LGVycm9yOmZ1bmN0aW9uKGEpe3Rocm93IG5ldyBFcnJvcihhKX0scGFyc2VKU09OOmZ1bmN0aW9uKGIpe2lmKHR5cGVvZiBiIT0ic3RyaW5nInx8IWIpcmV0dXJuIG51bGw7Yj1lLnRyaW0oYik7aWYoYS5KU09OJiZhLkpTT04ucGFyc2UpcmV0dXJuIGEuSlNPTi5wYXJzZShiKTtpZihuLnRlc3QoYi5yZXBsYWNlKG8sIkAiKS5yZXBsYWNlKHAsIl0iKS5yZXBsYWNlKHEsIiIpKSlyZXR1cm4obmV3IEZ1bmN0aW9uKCJyZXR1cm4gIitiKSkoKTtlLmVycm9yKCJJbnZhbGlkIEpTT046ICIrYil9LHBhcnNlWE1MOmZ1bmN0aW9uKGMpe3ZhciBkLGY7dHJ5e2EuRE9NUGFyc2VyPyhmPW5ldyBET01QYXJzZXIsZD1mLnBhcnNlRnJvbVN0cmluZyhjLCJ0ZXh0L3htbCIpKTooZD1uZXcgQWN0aXZlWE9iamVjdCgiTWljcm9zb2Z0LlhNTERPTSIpLGQuYXN5bmM9ImZhbHNlIixkLmxvYWRYTUwoYykpfWNhdGNoKGcpe2Q9Yn0oIWR8fCFkLmRvY3VtZW50RWxlbWVudHx8ZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgicGFyc2VyZXJyb3IiKS5sZW5ndGgpJiZlLmVycm9yKCJJbnZhbGlkIFhNTDogIitjKTtyZXR1cm4gZH0sbm9vcDpmdW5jdGlvbigpe30sZ2xvYmFsRXZhbDpmdW5jdGlvbihiKXtiJiZqLnRlc3QoYikmJihhLmV4ZWNTY3JpcHR8fGZ1bmN0aW9uKGIpe2EuZXZhbC5jYWxsKGEsYil9KShiKX0sY2FtZWxDYXNlOmZ1bmN0aW9uKGEpe3JldHVybiBhLnJlcGxhY2UodywibXMtIikucmVwbGFjZSh2LHgpfSxub2RlTmFtZTpmdW5jdGlvbihhLGIpe3JldHVybiBhLm5vZGVOYW1lJiZhLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCk9PT1iLnRvVXBwZXJDYXNlKCl9LGVhY2g6ZnVuY3Rpb24oYSxjLGQpe3ZhciBmLGc9MCxoPWEubGVuZ3RoLGk9aD09PWJ8fGUuaXNGdW5jdGlvbihhKTtpZihkKXtpZihpKXtmb3IoZiBpbiBhKWlmKGMuYXBwbHkoYVtmXSxkKT09PSExKWJyZWFrfWVsc2UgZm9yKDtnPGg7KWlmKGMuYXBwbHkoYVtnKytdLGQpPT09ITEpYnJlYWt9ZWxzZSBpZihpKXtmb3IoZiBpbiBhKWlmKGMuY2FsbChhW2ZdLGYsYVtmXSk9PT0hMSlicmVha31lbHNlIGZvcig7ZzxoOylpZihjLmNhbGwoYVtnXSxnLGFbZysrXSk9PT0hMSlicmVhaztyZXR1cm4gYX0sdHJpbTpHP2Z1bmN0aW9uKGEpe3JldHVybiBhPT1udWxsPyIiOkcuY2FsbChhKX06ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PW51bGw/IiI6KGErIiIpLnJlcGxhY2UoaywiIikucmVwbGFjZShsLCIiKX0sbWFrZUFycmF5OmZ1bmN0aW9uKGEsYil7dmFyIGM9Ynx8W107aWYoYSE9bnVsbCl7dmFyIGQ9ZS50eXBlKGEpO2EubGVuZ3RoPT1udWxsfHxkPT09InN0cmluZyJ8fGQ9PT0iZnVuY3Rpb24ifHxkPT09InJlZ2V4cCJ8fGUuaXNXaW5kb3coYSk/RS5jYWxsKGMsYSk6ZS5tZXJnZShjLGEpfXJldHVybiBjfSxpbkFycmF5OmZ1bmN0aW9uKGEsYixjKXt2YXIgZDtpZihiKXtpZihIKXJldHVybiBILmNhbGwoYixhLGMpO2Q9Yi5sZW5ndGgsYz1jP2M8MD9NYXRoLm1heCgwLGQrYyk6YzowO2Zvcig7YzxkO2MrKylpZihjIGluIGImJmJbY109PT1hKXJldHVybiBjfXJldHVybi0xfSxtZXJnZTpmdW5jdGlvbihhLGMpe3ZhciBkPWEubGVuZ3RoLGU9MDtpZih0eXBlb2YgYy5sZW5ndGg9PSJudW1iZXIiKWZvcih2YXIgZj1jLmxlbmd0aDtlPGY7ZSsrKWFbZCsrXT1jW2VdO2Vsc2Ugd2hpbGUoY1tlXSE9PWIpYVtkKytdPWNbZSsrXTthLmxlbmd0aD1kO3JldHVybiBhfSxncmVwOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1bXSxlO2M9ISFjO2Zvcih2YXIgZj0wLGc9YS5sZW5ndGg7ZjxnO2YrKyllPSEhYihhW2ZdLGYpLGMhPT1lJiZkLnB1c2goYVtmXSk7cmV0dXJuIGR9LG1hcDpmdW5jdGlvbihhLGMsZCl7dmFyIGYsZyxoPVtdLGk9MCxqPWEubGVuZ3RoLGs9YSBpbnN0YW5jZW9mIGV8fGohPT1iJiZ0eXBlb2Ygaj09Im51bWJlciImJihqPjAmJmFbMF0mJmFbai0xXXx8aj09PTB8fGUuaXNBcnJheShhKSk7aWYoaylmb3IoO2k8ajtpKyspZj1jKGFbaV0saSxkKSxmIT1udWxsJiYoaFtoLmxlbmd0aF09Zik7ZWxzZSBmb3IoZyBpbiBhKWY9YyhhW2ddLGcsZCksZiE9bnVsbCYmKGhbaC5sZW5ndGhdPWYpO3JldHVybiBoLmNvbmNhdC5hcHBseShbXSxoKX0sZ3VpZDoxLHByb3h5OmZ1bmN0aW9uKGEsYyl7aWYodHlwZW9mIGM9PSJzdHJpbmciKXt2YXIgZD1hW2NdO2M9YSxhPWR9aWYoIWUuaXNGdW5jdGlvbihhKSlyZXR1cm4gYjt2YXIgZj1GLmNhbGwoYXJndW1lbnRzLDIpLGc9ZnVuY3Rpb24oKXtyZXR1cm4gYS5hcHBseShjLGYuY29uY2F0KEYuY2FsbChhcmd1bWVudHMpKSl9O2cuZ3VpZD1hLmd1aWQ9YS5ndWlkfHxnLmd1aWR8fGUuZ3VpZCsrO3JldHVybiBnfSxhY2Nlc3M6ZnVuY3Rpb24oYSxjLGQsZixnLGgpe3ZhciBpPWEubGVuZ3RoO2lmKHR5cGVvZiBjPT0ib2JqZWN0Iil7Zm9yKHZhciBqIGluIGMpZS5hY2Nlc3MoYSxqLGNbal0sZixnLGQpO3JldHVybiBhfWlmKGQhPT1iKXtmPSFoJiZmJiZlLmlzRnVuY3Rpb24oZCk7Zm9yKHZhciBrPTA7azxpO2srKylnKGFba10sYyxmP2QuY2FsbChhW2tdLGssZyhhW2tdLGMpKTpkLGgpO3JldHVybiBhfXJldHVybiBpP2coYVswXSxjKTpifSxub3c6ZnVuY3Rpb24oKXtyZXR1cm4obmV3IERhdGUpLmdldFRpbWUoKX0sdWFNYXRjaDpmdW5jdGlvbihhKXthPWEudG9Mb3dlckNhc2UoKTt2YXIgYj1yLmV4ZWMoYSl8fHMuZXhlYyhhKXx8dC5leGVjKGEpfHxhLmluZGV4T2YoImNvbXBhdGlibGUiKTwwJiZ1LmV4ZWMoYSl8fFtdO3JldHVybnticm93c2VyOmJbMV18fCIiLHZlcnNpb246YlsyXXx8IjAifX0sc3ViOmZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiLGMpe3JldHVybiBuZXcgYS5mbi5pbml0KGIsYyl9ZS5leHRlbmQoITAsYSx0aGlzKSxhLnN1cGVyY2xhc3M9dGhpcyxhLmZuPWEucHJvdG90eXBlPXRoaXMoKSxhLmZuLmNvbnN0cnVjdG9yPWEsYS5zdWI9dGhpcy5zdWIsYS5mbi5pbml0PWZ1bmN0aW9uKGQsZil7ZiYmZiBpbnN0YW5jZW9mIGUmJiEoZiBpbnN0YW5jZW9mIGEpJiYoZj1hKGYpKTtyZXR1cm4gZS5mbi5pbml0LmNhbGwodGhpcyxkLGYsYil9LGEuZm4uaW5pdC5wcm90b3R5cGU9YS5mbjt2YXIgYj1hKGMpO3JldHVybiBhfSxicm93c2VyOnt9fSksZS5lYWNoKCJCb29sZWFuIE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJyYXkgRGF0ZSBSZWdFeHAgT2JqZWN0Ii5zcGxpdCgiICIpLGZ1bmN0aW9uKGEsYil7SVsiW29iamVjdCAiK2IrIl0iXT1iLnRvTG93ZXJDYXNlKCl9KSx6PWUudWFNYXRjaCh5KSx6LmJyb3dzZXImJihlLmJyb3dzZXJbei5icm93c2VyXT0hMCxlLmJyb3dzZXIudmVyc2lvbj16LnZlcnNpb24pLGUuYnJvd3Nlci53ZWJraXQmJihlLmJyb3dzZXIuc2FmYXJpPSEwKSxqLnRlc3QoIiAiKSYmKGs9L15bXHNceEEwXSsvLGw9L1tcc1x4QTBdKyQvKSxoPWUoYyksYy5hZGRFdmVudExpc3RlbmVyP0I9ZnVuY3Rpb24oKXtjLnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLEIsITEpLGUucmVhZHkoKX06Yy5hdHRhY2hFdmVudCYmKEI9ZnVuY3Rpb24oKXtjLnJlYWR5U3RhdGU9PT0iY29tcGxldGUiJiYoYy5kZXRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIixCKSxlLnJlYWR5KCkpfSk7cmV0dXJuIGV9KCksZz17fTtmLkNhbGxiYWNrcz1mdW5jdGlvbihhKXthPWE/Z1thXXx8aChhKTp7fTt2YXIgYz1bXSxkPVtdLGUsaSxqLGssbCxtPWZ1bmN0aW9uKGIpe3ZhciBkLGUsZyxoLGk7Zm9yKGQ9MCxlPWIubGVuZ3RoO2Q8ZTtkKyspZz1iW2RdLGg9Zi50eXBlKGcpLGg9PT0iYXJyYXkiP20oZyk6aD09PSJmdW5jdGlvbiImJighYS51bmlxdWV8fCFvLmhhcyhnKSkmJmMucHVzaChnKX0sbj1mdW5jdGlvbihiLGYpe2Y9Znx8W10sZT0hYS5tZW1vcnl8fFtiLGZdLGk9ITAsbD1qfHwwLGo9MCxrPWMubGVuZ3RoO2Zvcig7YyYmbDxrO2wrKylpZihjW2xdLmFwcGx5KGIsZik9PT0hMSYmYS5zdG9wT25GYWxzZSl7ZT0hMDticmVha31pPSExLGMmJihhLm9uY2U/ZT09PSEwP28uZGlzYWJsZSgpOmM9W106ZCYmZC5sZW5ndGgmJihlPWQuc2hpZnQoKSxvLmZpcmVXaXRoKGVbMF0sZVsxXSkpKX0sbz17YWRkOmZ1bmN0aW9uKCl7aWYoYyl7dmFyIGE9Yy5sZW5ndGg7bShhcmd1bWVudHMpLGk/az1jLmxlbmd0aDplJiZlIT09ITAmJihqPWEsbihlWzBdLGVbMV0pKX1yZXR1cm4gdGhpc30scmVtb3ZlOmZ1bmN0aW9uKCl7aWYoYyl7dmFyIGI9YXJndW1lbnRzLGQ9MCxlPWIubGVuZ3RoO2Zvcig7ZDxlO2QrKylmb3IodmFyIGY9MDtmPGMubGVuZ3RoO2YrKylpZihiW2RdPT09Y1tmXSl7aSYmZjw9ayYmKGstLSxmPD1sJiZsLS0pLGMuc3BsaWNlKGYtLSwxKTtpZihhLnVuaXF1ZSlicmVha319cmV0dXJuIHRoaXN9LGhhczpmdW5jdGlvbihhKXtpZihjKXt2YXIgYj0wLGQ9Yy5sZW5ndGg7Zm9yKDtiPGQ7YisrKWlmKGE9PT1jW2JdKXJldHVybiEwfXJldHVybiExfSxlbXB0eTpmdW5jdGlvbigpe2M9W107cmV0dXJuIHRoaXN9LGRpc2FibGU6ZnVuY3Rpb24oKXtjPWQ9ZT1iO3JldHVybiB0aGlzfSxkaXNhYmxlZDpmdW5jdGlvbigpe3JldHVybiFjfSxsb2NrOmZ1bmN0aW9uKCl7ZD1iLCghZXx8ZT09PSEwKSYmby5kaXNhYmxlKCk7cmV0dXJuIHRoaXN9LGxvY2tlZDpmdW5jdGlvbigpe3JldHVybiFkfSxmaXJlV2l0aDpmdW5jdGlvbihiLGMpe2QmJihpP2Eub25jZXx8ZC5wdXNoKFtiLGNdKTooIWEub25jZXx8IWUpJiZuKGIsYykpO3JldHVybiB0aGlzfSxmaXJlOmZ1bmN0aW9uKCl7by5maXJlV2l0aCh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIHRoaXN9LGZpcmVkOmZ1bmN0aW9uKCl7cmV0dXJuISFlfX07cmV0dXJuIG99O3ZhciBpPVtdLnNsaWNlO2YuZXh0ZW5kKHtEZWZlcnJlZDpmdW5jdGlvbihhKXt2YXIgYj1mLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSxjPWYuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLGQ9Zi5DYWxsYmFja3MoIm1lbW9yeSIpLGU9InBlbmRpbmciLGc9e3Jlc29sdmU6YixyZWplY3Q6Yyxub3RpZnk6ZH0saD17ZG9uZTpiLmFkZCxmYWlsOmMuYWRkLHByb2dyZXNzOmQuYWRkLHN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIGV9LGlzUmVzb2x2ZWQ6Yi5maXJlZCxpc1JlamVjdGVkOmMuZmlyZWQsdGhlbjpmdW5jdGlvbihhLGIsYyl7aS5kb25lKGEpLmZhaWwoYikucHJvZ3Jlc3MoYyk7cmV0dXJuIHRoaXN9LGFsd2F5czpmdW5jdGlvbigpe2kuZG9uZS5hcHBseShpLGFyZ3VtZW50cykuZmFpbC5hcHBseShpLGFyZ3VtZW50cyk7cmV0dXJuIHRoaXN9LHBpcGU6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBmLkRlZmVycmVkKGZ1bmN0aW9uKGQpe2YuZWFjaCh7ZG9uZTpbYSwicmVzb2x2ZSJdLGZhaWw6W2IsInJlamVjdCJdLHByb2dyZXNzOltjLCJub3RpZnkiXX0sZnVuY3Rpb24oYSxiKXt2YXIgYz1iWzBdLGU9YlsxXSxnO2YuaXNGdW5jdGlvbihjKT9pW2FdKGZ1bmN0aW9uKCl7Zz1jLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxnJiZmLmlzRnVuY3Rpb24oZy5wcm9taXNlKT9nLnByb21pc2UoKS50aGVuKGQucmVzb2x2ZSxkLnJlamVjdCxkLm5vdGlmeSk6ZFtlKyJXaXRoIl0odGhpcz09PWk/ZDp0aGlzLFtnXSl9KTppW2FdKGRbZV0pfSl9KS5wcm9taXNlKCl9LHByb21pc2U6ZnVuY3Rpb24oYSl7aWYoYT09bnVsbClhPWg7ZWxzZSBmb3IodmFyIGIgaW4gaClhW2JdPWhbYl07cmV0dXJuIGF9fSxpPWgucHJvbWlzZSh7fSksajtmb3IoaiBpbiBnKWlbal09Z1tqXS5maXJlLGlbaisiV2l0aCJdPWdbal0uZmlyZVdpdGg7aS5kb25lKGZ1bmN0aW9uKCl7ZT0icmVzb2x2ZWQifSxjLmRpc2FibGUsZC5sb2NrKS5mYWlsKGZ1bmN0aW9uKCl7ZT0icmVqZWN0ZWQifSxiLmRpc2FibGUsZC5sb2NrKSxhJiZhLmNhbGwoaSxpKTtyZXR1cm4gaX0sd2hlbjpmdW5jdGlvbihhKXtmdW5jdGlvbiBtKGEpe3JldHVybiBmdW5jdGlvbihiKXtlW2FdPWFyZ3VtZW50cy5sZW5ndGg+MT9pLmNhbGwoYXJndW1lbnRzLDApOmIsai5ub3RpZnlXaXRoKGssZSl9fWZ1bmN0aW9uIGwoYSl7cmV0dXJuIGZ1bmN0aW9uKGMpe2JbYV09YXJndW1lbnRzLmxlbmd0aD4xP2kuY2FsbChhcmd1bWVudHMsMCk6YywtLWd8fGoucmVzb2x2ZVdpdGgoaixiKX19dmFyIGI9aS5jYWxsKGFyZ3VtZW50cywwKSxjPTAsZD1iLmxlbmd0aCxlPUFycmF5KGQpLGc9ZCxoPWQsaj1kPD0xJiZhJiZmLmlzRnVuY3Rpb24oYS5wcm9taXNlKT9hOmYuRGVmZXJyZWQoKSxrPWoucHJvbWlzZSgpO2lmKGQ+MSl7Zm9yKDtjPGQ7YysrKWJbY10mJmJbY10ucHJvbWlzZSYmZi5pc0Z1bmN0aW9uKGJbY10ucHJvbWlzZSk/YltjXS5wcm9taXNlKCkudGhlbihsKGMpLGoucmVqZWN0LG0oYykpOi0tZztnfHxqLnJlc29sdmVXaXRoKGosYil9ZWxzZSBqIT09YSYmai5yZXNvbHZlV2l0aChqLGQ/W2FdOltdKTtyZXR1cm4ga319KSxmLnN1cHBvcnQ9ZnVuY3Rpb24oKXt2YXIgYixkLGUsZyxoLGksaixrLGwsbSxuLG8scCxxPWMuY3JlYXRlRWxlbWVudCgiZGl2Iikscj1jLmRvY3VtZW50RWxlbWVudDtxLnNldEF0dHJpYnV0ZSgiY2xhc3NOYW1lIiwidCIpLHEuaW5uZXJIVE1MPSIgICA8bGluay8+PHRhYmxlPjwvdGFibGU+PGEgaHJlZj0nL2EnIHN0eWxlPSd0b3A6MXB4O2Zsb2F0OmxlZnQ7b3BhY2l0eTouNTU7Jz5hPC9hPjxpbnB1dCB0eXBlPSdjaGVja2JveCcvPiIsZD1xLmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIiksZT1xLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJhIilbMF07aWYoIWR8fCFkLmxlbmd0aHx8IWUpcmV0dXJue307Zz1jLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpLGg9Zy5hcHBlbmRDaGlsZChjLmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpKSxpPXEuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMF0sYj17bGVhZGluZ1doaXRlc3BhY2U6cS5maXJzdENoaWxkLm5vZGVUeXBlPT09Myx0Ym9keTohcS5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJvZHkiKS5sZW5ndGgsaHRtbFNlcmlhbGl6ZTohIXEuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImxpbmsiKS5sZW5ndGgsc3R5bGU6L3RvcC8udGVzdChlLmdldEF0dHJpYnV0ZSgic3R5bGUiKSksaHJlZk5vcm1hbGl6ZWQ6ZS5nZXRBdHRyaWJ1dGUoImhyZWYiKT09PSIvYSIsb3BhY2l0eTovXjAuNTUvLnRlc3QoZS5zdHlsZS5vcGFjaXR5KSxjc3NGbG9hdDohIWUuc3R5bGUuY3NzRmxvYXQsY2hlY2tPbjppLnZhbHVlPT09Im9uIixvcHRTZWxlY3RlZDpoLnNlbGVjdGVkLGdldFNldEF0dHJpYnV0ZTpxLmNsYXNzTmFtZSE9PSJ0IixlbmN0eXBlOiEhYy5jcmVhdGVFbGVtZW50KCJmb3JtIikuZW5jdHlwZSxodG1sNUNsb25lOmMuY3JlYXRlRWxlbWVudCgibmF2IikuY2xvbmVOb2RlKCEwKS5vdXRlckhUTUwhPT0iPDpuYXY+PC86bmF2PiIsc3VibWl0QnViYmxlczohMCxjaGFuZ2VCdWJibGVzOiEwLGZvY3VzaW5CdWJibGVzOiExLGRlbGV0ZUV4cGFuZG86ITAsbm9DbG9uZUV2ZW50OiEwLGlubGluZUJsb2NrTmVlZHNMYXlvdXQ6ITEsc2hyaW5rV3JhcEJsb2NrczohMSxyZWxpYWJsZU1hcmdpblJpZ2h0OiEwfSxpLmNoZWNrZWQ9ITAsYi5ub0Nsb25lQ2hlY2tlZD1pLmNsb25lTm9kZSghMCkuY2hlY2tlZCxnLmRpc2FibGVkPSEwLGIub3B0RGlzYWJsZWQ9IWguZGlzYWJsZWQ7dHJ5e2RlbGV0ZSBxLnRlc3R9Y2F0Y2gocyl7Yi5kZWxldGVFeHBhbmRvPSExfSFxLmFkZEV2ZW50TGlzdGVuZXImJnEuYXR0YWNoRXZlbnQmJnEuZmlyZUV2ZW50JiYocS5hdHRhY2hFdmVudCgib25jbGljayIsZnVuY3Rpb24oKXtiLm5vQ2xvbmVFdmVudD0hMX0pLHEuY2xvbmVOb2RlKCEwKS5maXJlRXZlbnQoIm9uY2xpY2siKSksaT1jLmNyZWF0ZUVsZW1lbnQoImlucHV0IiksaS52YWx1ZT0idCIsaS5zZXRBdHRyaWJ1dGUoInR5cGUiLCJyYWRpbyIpLGIucmFkaW9WYWx1ZT1pLnZhbHVlPT09InQiLGkuc2V0QXR0cmlidXRlKCJjaGVja2VkIiwiY2hlY2tlZCIpLHEuYXBwZW5kQ2hpbGQoaSksaz1jLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxrLmFwcGVuZENoaWxkKHEubGFzdENoaWxkKSxiLmNoZWNrQ2xvbmU9ay5jbG9uZU5vZGUoITApLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmNoZWNrZWQsYi5hcHBlbmRDaGVja2VkPWkuY2hlY2tlZCxrLnJlbW92ZUNoaWxkKGkpLGsuYXBwZW5kQ2hpbGQocSkscS5pbm5lckhUTUw9IiIsYS5nZXRDb21wdXRlZFN0eWxlJiYoaj1jLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGouc3R5bGUud2lkdGg9IjAiLGouc3R5bGUubWFyZ2luUmlnaHQ9IjAiLHEuc3R5bGUud2lkdGg9IjJweCIscS5hcHBlbmRDaGlsZChqKSxiLnJlbGlhYmxlTWFyZ2luUmlnaHQ9KHBhcnNlSW50KChhLmdldENvbXB1dGVkU3R5bGUoaixudWxsKXx8e21hcmdpblJpZ2h0OjB9KS5tYXJnaW5SaWdodCwxMCl8fDApPT09MCk7aWYocS5hdHRhY2hFdmVudClmb3IobyBpbntzdWJtaXQ6MSxjaGFuZ2U6MSxmb2N1c2luOjF9KW49Im9uIitvLHA9biBpbiBxLHB8fChxLnNldEF0dHJpYnV0ZShuLCJyZXR1cm47IikscD10eXBlb2YgcVtuXT09ImZ1bmN0aW9uIiksYltvKyJCdWJibGVzIl09cDtrLnJlbW92ZUNoaWxkKHEpLGs9Zz1oPWo9cT1pPW51bGwsZihmdW5jdGlvbigpe3ZhciBhLGQsZSxnLGgsaSxqLGssbSxuLG8scj1jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF07IXJ8fChqPTEsaz0icG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjFweDtoZWlnaHQ6MXB4O21hcmdpbjowOyIsbT0idmlzaWJpbGl0eTpoaWRkZW47Ym9yZGVyOjA7IixuPSJzdHlsZT0nIitrKyJib3JkZXI6NXB4IHNvbGlkICMwMDA7cGFkZGluZzowOyciLG89IjxkaXYgIituKyI+PGRpdj48L2Rpdj48L2Rpdj4iKyI8dGFibGUgIituKyIgY2VsbHBhZGRpbmc9JzAnIGNlbGxzcGFjaW5nPScwJz4iKyI8dHI+PHRkPjwvdGQ+PC90cj48L3RhYmxlPiIsYT1jLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGEuc3R5bGUuY3NzVGV4dD1tKyJ3aWR0aDowO2hlaWdodDowO3Bvc2l0aW9uOnN0YXRpYzt0b3A6MDttYXJnaW4tdG9wOiIraisicHgiLHIuaW5zZXJ0QmVmb3JlKGEsci5maXJzdENoaWxkKSxxPWMuY3JlYXRlRWxlbWVudCgiZGl2IiksYS5hcHBlbmRDaGlsZChxKSxxLmlubmVySFRNTD0iPHRhYmxlPjx0cj48dGQgc3R5bGU9J3BhZGRpbmc6MDtib3JkZXI6MDtkaXNwbGF5Om5vbmUnPjwvdGQ+PHRkPnQ8L3RkPjwvdHI+PC90YWJsZT4iLGw9cS5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGQiKSxwPWxbMF0ub2Zmc2V0SGVpZ2h0PT09MCxsWzBdLnN0eWxlLmRpc3BsYXk9IiIsbFsxXS5zdHlsZS5kaXNwbGF5PSJub25lIixiLnJlbGlhYmxlSGlkZGVuT2Zmc2V0cz1wJiZsWzBdLm9mZnNldEhlaWdodD09PTAscS5pbm5lckhUTUw9IiIscS5zdHlsZS53aWR0aD1xLnN0eWxlLnBhZGRpbmdMZWZ0PSIxcHgiLGYuYm94TW9kZWw9Yi5ib3hNb2RlbD1xLm9mZnNldFdpZHRoPT09Mix0eXBlb2YgcS5zdHlsZS56b29tIT0idW5kZWZpbmVkIiYmKHEuc3R5bGUuZGlzcGxheT0iaW5saW5lIixxLnN0eWxlLnpvb209MSxiLmlubGluZUJsb2NrTmVlZHNMYXlvdXQ9cS5vZmZzZXRXaWR0aD09PTIscS5zdHlsZS5kaXNwbGF5PSIiLHEuaW5uZXJIVE1MPSI8ZGl2IHN0eWxlPSd3aWR0aDo0cHg7Jz48L2Rpdj4iLGIuc2hyaW5rV3JhcEJsb2Nrcz1xLm9mZnNldFdpZHRoIT09MikscS5zdHlsZS5jc3NUZXh0PWsrbSxxLmlubmVySFRNTD1vLGQ9cS5maXJzdENoaWxkLGU9ZC5maXJzdENoaWxkLGg9ZC5uZXh0U2libGluZy5maXJzdENoaWxkLmZpcnN0Q2hpbGQsaT17ZG9lc05vdEFkZEJvcmRlcjplLm9mZnNldFRvcCE9PTUsZG9lc0FkZEJvcmRlckZvclRhYmxlQW5kQ2VsbHM6aC5vZmZzZXRUb3A9PT01fSxlLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsZS5zdHlsZS50b3A9IjIwcHgiLGkuZml4ZWRQb3NpdGlvbj1lLm9mZnNldFRvcD09PTIwfHxlLm9mZnNldFRvcD09PTE1LGUuc3R5bGUucG9zaXRpb249ZS5zdHlsZS50b3A9IiIsZC5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIixkLnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSIsaS5zdWJ0cmFjdHNCb3JkZXJGb3JPdmVyZmxvd05vdFZpc2libGU9ZS5vZmZzZXRUb3A9PT0tNSxpLmRvZXNOb3RJbmNsdWRlTWFyZ2luSW5Cb2R5T2Zmc2V0PXIub2Zmc2V0VG9wIT09aixyLnJlbW92ZUNoaWxkKGEpLHE9YT1udWxsLGYuZXh0ZW5kKGIsaSkpfSk7cmV0dXJuIGJ9KCk7dmFyIGo9L14oPzpcey4qXH18XFsuKlxdKSQvLGs9LyhbQS1aXSkvZztmLmV4dGVuZCh7Y2FjaGU6e30sdXVpZDowLGV4cGFuZG86ImpRdWVyeSIrKGYuZm4uanF1ZXJ5K01hdGgucmFuZG9tKCkpLnJlcGxhY2UoL1xEL2csIiIpLG5vRGF0YTp7ZW1iZWQ6ITAsb2JqZWN0OiJjbHNpZDpEMjdDREI2RS1BRTZELTExY2YtOTZCOC00NDQ1NTM1NDAwMDAiLGFwcGxldDohMH0saGFzRGF0YTpmdW5jdGlvbihhKXthPWEubm9kZVR5cGU/Zi5jYWNoZVthW2YuZXhwYW5kb11dOmFbZi5leHBhbmRvXTtyZXR1cm4hIWEmJiFtKGEpfSxkYXRhOmZ1bmN0aW9uKGEsYyxkLGUpe2lmKCEhZi5hY2NlcHREYXRhKGEpKXt2YXIgZyxoLGksaj1mLmV4cGFuZG8saz10eXBlb2YgYz09InN0cmluZyIsbD1hLm5vZGVUeXBlLG09bD9mLmNhY2hlOmEsbj1sP2Fbal06YVtqXSYmaixvPWM9PT0iZXZlbnRzIjtpZigoIW58fCFtW25dfHwhbyYmIWUmJiFtW25dLmRhdGEpJiZrJiZkPT09YilyZXR1cm47bnx8KGw/YVtqXT1uPSsrZi51dWlkOm49aiksbVtuXXx8KG1bbl09e30sbHx8KG1bbl0udG9KU09OPWYubm9vcCkpO2lmKHR5cGVvZiBjPT0ib2JqZWN0Inx8dHlwZW9mIGM9PSJmdW5jdGlvbiIpZT9tW25dPWYuZXh0ZW5kKG1bbl0sYyk6bVtuXS5kYXRhPWYuZXh0ZW5kKG1bbl0uZGF0YSxjKTtnPWg9bVtuXSxlfHwoaC5kYXRhfHwoaC5kYXRhPXt9KSxoPWguZGF0YSksZCE9PWImJihoW2YuY2FtZWxDYXNlKGMpXT1kKTtpZihvJiYhaFtjXSlyZXR1cm4gZy5ldmVudHM7az8oaT1oW2NdLGk9PW51bGwmJihpPWhbZi5jYW1lbENhc2UoYyldKSk6aT1oO3JldHVybiBpfX0scmVtb3ZlRGF0YTpmdW5jdGlvbihhLGIsYyl7aWYoISFmLmFjY2VwdERhdGEoYSkpe3ZhciBkLGUsZyxoPWYuZXhwYW5kbyxpPWEubm9kZVR5cGUsaj1pP2YuY2FjaGU6YSxrPWk/YVtoXTpoO2lmKCFqW2tdKXJldHVybjtpZihiKXtkPWM/altrXTpqW2tdLmRhdGE7aWYoZCl7Zi5pc0FycmF5KGIpfHwoYiBpbiBkP2I9W2JdOihiPWYuY2FtZWxDYXNlKGIpLGIgaW4gZD9iPVtiXTpiPWIuc3BsaXQoIiAiKSkpO2ZvcihlPTAsZz1iLmxlbmd0aDtlPGc7ZSsrKWRlbGV0ZSBkW2JbZV1dO2lmKCEoYz9tOmYuaXNFbXB0eU9iamVjdCkoZCkpcmV0dXJufX1pZighYyl7ZGVsZXRlIGpba10uZGF0YTtpZighbShqW2tdKSlyZXR1cm59Zi5zdXBwb3J0LmRlbGV0ZUV4cGFuZG98fCFqLnNldEludGVydmFsP2RlbGV0ZSBqW2tdOmpba109bnVsbCxpJiYoZi5zdXBwb3J0LmRlbGV0ZUV4cGFuZG8/ZGVsZXRlIGFbaF06YS5yZW1vdmVBdHRyaWJ1dGU/YS5yZW1vdmVBdHRyaWJ1dGUoaCk6YVtoXT1udWxsKX19LF9kYXRhOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZi5kYXRhKGEsYixjLCEwKX0sYWNjZXB0RGF0YTpmdW5jdGlvbihhKXtpZihhLm5vZGVOYW1lKXt2YXIgYj1mLm5vRGF0YVthLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldO2lmKGIpcmV0dXJuIGIhPT0hMCYmYS5nZXRBdHRyaWJ1dGUoImNsYXNzaWQiKT09PWJ9cmV0dXJuITB9fSksZi5mbi5leHRlbmQoe2RhdGE6ZnVuY3Rpb24oYSxjKXt2YXIgZCxlLGcsaD1udWxsO2lmKHR5cGVvZiBhPT0idW5kZWZpbmVkIil7aWYodGhpcy5sZW5ndGgpe2g9Zi5kYXRhKHRoaXNbMF0pO2lmKHRoaXNbMF0ubm9kZVR5cGU9PT0xJiYhZi5fZGF0YSh0aGlzWzBdLCJwYXJzZWRBdHRycyIpKXtlPXRoaXNbMF0uYXR0cmlidXRlcztmb3IodmFyIGk9MCxqPWUubGVuZ3RoO2k8ajtpKyspZz1lW2ldLm5hbWUsZy5pbmRleE9mKCJkYXRhLSIpPT09MCYmKGc9Zi5jYW1lbENhc2UoZy5zdWJzdHJpbmcoNSkpLGwodGhpc1swXSxnLGhbZ10pKTtmLl9kYXRhKHRoaXNbMF0sInBhcnNlZEF0dHJzIiwhMCl9fXJldHVybiBofWlmKHR5cGVvZiBhPT0ib2JqZWN0IilyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Zi5kYXRhKHRoaXMsYSl9KTtkPWEuc3BsaXQoIi4iKSxkWzFdPWRbMV0/Ii4iK2RbMV06IiI7aWYoYz09PWIpe2g9dGhpcy50cmlnZ2VySGFuZGxlcigiZ2V0RGF0YSIrZFsxXSsiISIsW2RbMF1dKSxoPT09YiYmdGhpcy5sZW5ndGgmJihoPWYuZGF0YSh0aGlzWzBdLGEpLGg9bCh0aGlzWzBdLGEsaCkpO3JldHVybiBoPT09YiYmZFsxXT90aGlzLmRhdGEoZFswXSk6aH1yZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9Zih0aGlzKSxlPVtkWzBdLGNdO2IudHJpZ2dlckhhbmRsZXIoInNldERhdGEiK2RbMV0rIiEiLGUpLGYuZGF0YSh0aGlzLGEsYyksYi50cmlnZ2VySGFuZGxlcigiY2hhbmdlRGF0YSIrZFsxXSsiISIsZSl9KX0scmVtb3ZlRGF0YTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Zi5yZW1vdmVEYXRhKHRoaXMsYSl9KX19KSxmLmV4dGVuZCh7X21hcms6ZnVuY3Rpb24oYSxiKXthJiYoYj0oYnx8ImZ4IikrIm1hcmsiLGYuX2RhdGEoYSxiLChmLl9kYXRhKGEsYil8fDApKzEpKX0sX3VubWFyazpmdW5jdGlvbihhLGIsYyl7YSE9PSEwJiYoYz1iLGI9YSxhPSExKTtpZihiKXtjPWN8fCJmeCI7dmFyIGQ9YysibWFyayIsZT1hPzA6KGYuX2RhdGEoYixkKXx8MSktMTtlP2YuX2RhdGEoYixkLGUpOihmLnJlbW92ZURhdGEoYixkLCEwKSxuKGIsYywibWFyayIpKX19LHF1ZXVlOmZ1bmN0aW9uKGEsYixjKXt2YXIgZDtpZihhKXtiPShifHwiZngiKSsicXVldWUiLGQ9Zi5fZGF0YShhLGIpLGMmJighZHx8Zi5pc0FycmF5KGMpP2Q9Zi5fZGF0YShhLGIsZi5tYWtlQXJyYXkoYykpOmQucHVzaChjKSk7cmV0dXJuIGR8fFtdfX0sZGVxdWV1ZTpmdW5jdGlvbihhLGIpe2I9Ynx8ImZ4Ijt2YXIgYz1mLnF1ZXVlKGEsYiksZD1jLnNoaWZ0KCksZT17fTtkPT09ImlucHJvZ3Jlc3MiJiYoZD1jLnNoaWZ0KCkpLGQmJihiPT09ImZ4IiYmYy51bnNoaWZ0KCJpbnByb2dyZXNzIiksZi5fZGF0YShhLGIrIi5ydW4iLGUpLGQuY2FsbChhLGZ1bmN0aW9uKCl7Zi5kZXF1ZXVlKGEsYil9LGUpKSxjLmxlbmd0aHx8KGYucmVtb3ZlRGF0YShhLGIrInF1ZXVlICIrYisiLnJ1biIsITApLG4oYSxiLCJxdWV1ZSIpKX19KSxmLmZuLmV4dGVuZCh7cXVldWU6ZnVuY3Rpb24oYSxjKXt0eXBlb2YgYSE9InN0cmluZyImJihjPWEsYT0iZngiKTtpZihjPT09YilyZXR1cm4gZi5xdWV1ZSh0aGlzWzBdLGEpO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYj1mLnF1ZXVlKHRoaXMsYSxjKTthPT09ImZ4IiYmYlswXSE9PSJpbnByb2dyZXNzIiYmZi5kZXF1ZXVlKHRoaXMsYSl9KX0sZGVxdWV1ZTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Zi5kZXF1ZXVlKHRoaXMsYSl9KX0sZGVsYXk6ZnVuY3Rpb24oYSxiKXthPWYuZng/Zi5meC5zcGVlZHNbYV18fGE6YSxiPWJ8fCJmeCI7cmV0dXJuIHRoaXMucXVldWUoYixmdW5jdGlvbihiLGMpe3ZhciBkPXNldFRpbWVvdXQoYixhKTtjLnN0b3A9ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoZCl9fSl9LGNsZWFyUXVldWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucXVldWUoYXx8ImZ4IixbXSl9LHByb21pc2U6ZnVuY3Rpb24oYSxjKXtmdW5jdGlvbiBtKCl7LS1ofHxkLnJlc29sdmVXaXRoKGUsW2VdKX10eXBlb2YgYSE9InN0cmluZyImJihjPWEsYT1iKSxhPWF8fCJmeCI7dmFyIGQ9Zi5EZWZlcnJlZCgpLGU9dGhpcyxnPWUubGVuZ3RoLGg9MSxpPWErImRlZmVyIixqPWErInF1ZXVlIixrPWErIm1hcmsiLGw7d2hpbGUoZy0tKWlmKGw9Zi5kYXRhKGVbZ10saSxiLCEwKXx8KGYuZGF0YShlW2ddLGosYiwhMCl8fGYuZGF0YShlW2ddLGssYiwhMCkpJiZmLmRhdGEoZVtnXSxpLGYuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLCEwKSloKyssbC5hZGQobSk7bSgpO3JldHVybiBkLnByb21pc2UoKX19KTt2YXIgbz0vW1xuXHRccl0vZyxwPS9ccysvLHE9L1xyL2cscj0vXig/OmJ1dHRvbnxpbnB1dCkkL2kscz0vXig/OmJ1dHRvbnxpbnB1dHxvYmplY3R8c2VsZWN0fHRleHRhcmVhKSQvaSx0PS9eYSg/OnJlYSk/JC9pLHU9L14oPzphdXRvZm9jdXN8YXV0b3BsYXl8YXN5bmN8Y2hlY2tlZHxjb250cm9sc3xkZWZlcnxkaXNhYmxlZHxoaWRkZW58bG9vcHxtdWx0aXBsZXxvcGVufHJlYWRvbmx5fHJlcXVpcmVkfHNjb3BlZHxzZWxlY3RlZCkkL2ksdj1mLnN1cHBvcnQuZ2V0U2V0QXR0cmlidXRlLHcseCx5O2YuZm4uZXh0ZW5kKHthdHRyOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGYuYWNjZXNzKHRoaXMsYSxiLCEwLGYuYXR0cil9LHJlbW92ZUF0dHI6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2YucmVtb3ZlQXR0cih0aGlzLGEpfSl9LHByb3A6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZi5hY2Nlc3ModGhpcyxhLGIsITAsZi5wcm9wKX0scmVtb3ZlUHJvcDpmdW5jdGlvbihhKXthPWYucHJvcEZpeFthXXx8YTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dHJ5e3RoaXNbYV09YixkZWxldGUgdGhpc1thXX1jYXRjaChjKXt9fSl9LGFkZENsYXNzOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlLGcsaCxpO2lmKGYuaXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGIpe2YodGhpcykuYWRkQ2xhc3MoYS5jYWxsKHRoaXMsYix0aGlzLmNsYXNzTmFtZSkpfSk7aWYoYSYmdHlwZW9mIGE9PSJzdHJpbmciKXtiPWEuc3BsaXQocCk7Zm9yKGM9MCxkPXRoaXMubGVuZ3RoO2M8ZDtjKyspe2U9dGhpc1tjXTtpZihlLm5vZGVUeXBlPT09MSlpZighZS5jbGFzc05hbWUmJmIubGVuZ3RoPT09MSllLmNsYXNzTmFtZT1hO2Vsc2V7Zz0iICIrZS5jbGFzc05hbWUrIiAiO2ZvcihoPTAsaT1iLmxlbmd0aDtoPGk7aCsrKX5nLmluZGV4T2YoIiAiK2JbaF0rIiAiKXx8KGcrPWJbaF0rIiAiKTtlLmNsYXNzTmFtZT1mLnRyaW0oZyl9fX1yZXR1cm4gdGhpc30scmVtb3ZlQ2xhc3M6ZnVuY3Rpb24oYSl7dmFyIGMsZCxlLGcsaCxpLGo7aWYoZi5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYil7Zih0aGlzKS5yZW1vdmVDbGFzcyhhLmNhbGwodGhpcyxiLHRoaXMuY2xhc3NOYW1lKSl9KTtpZihhJiZ0eXBlb2YgYT09InN0cmluZyJ8fGE9PT1iKXtjPShhfHwiIikuc3BsaXQocCk7Zm9yKGQ9MCxlPXRoaXMubGVuZ3RoO2Q8ZTtkKyspe2c9dGhpc1tkXTtpZihnLm5vZGVUeXBlPT09MSYmZy5jbGFzc05hbWUpaWYoYSl7aD0oIiAiK2cuY2xhc3NOYW1lKyIgIikucmVwbGFjZShvLCIgIik7Zm9yKGk9MCxqPWMubGVuZ3RoO2k8ajtpKyspaD1oLnJlcGxhY2UoIiAiK2NbaV0rIiAiLCIgIik7Zy5jbGFzc05hbWU9Zi50cmltKGgpfWVsc2UgZy5jbGFzc05hbWU9IiJ9fXJldHVybiB0aGlzfSx0b2dnbGVDbGFzczpmdW5jdGlvbihhLGIpe3ZhciBjPXR5cGVvZiBhLGQ9dHlwZW9mIGI9PSJib29sZWFuIjtpZihmLmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihjKXtmKHRoaXMpLnRvZ2dsZUNsYXNzKGEuY2FsbCh0aGlzLGMsdGhpcy5jbGFzc05hbWUsYiksYil9KTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7aWYoYz09PSJzdHJpbmciKXt2YXIgZSxnPTAsaD1mKHRoaXMpLGk9YixqPWEuc3BsaXQocCk7d2hpbGUoZT1qW2crK10paT1kP2k6IWguaGFzQ2xhc3MoZSksaFtpPyJhZGRDbGFzcyI6InJlbW92ZUNsYXNzIl0oZSl9ZWxzZSBpZihjPT09InVuZGVmaW5lZCJ8fGM9PT0iYm9vbGVhbiIpdGhpcy5jbGFzc05hbWUmJmYuX2RhdGEodGhpcywiX19jbGFzc05hbWVfXyIsdGhpcy5jbGFzc05hbWUpLHRoaXMuY2xhc3NOYW1lPXRoaXMuY2xhc3NOYW1lfHxhPT09ITE/IiI6Zi5fZGF0YSh0aGlzLCJfX2NsYXNzTmFtZV9fIil8fCIifSl9LGhhc0NsYXNzOmZ1bmN0aW9uKGEpe3ZhciBiPSIgIithKyIgIixjPTAsZD10aGlzLmxlbmd0aDtmb3IoO2M8ZDtjKyspaWYodGhpc1tjXS5ub2RlVHlwZT09PTEmJigiICIrdGhpc1tjXS5jbGFzc05hbWUrIiAiKS5yZXBsYWNlKG8sIiAiKS5pbmRleE9mKGIpPi0xKXJldHVybiEwO3JldHVybiExfSx2YWw6ZnVuY3Rpb24oYSl7dmFyIGMsZCxlLGc9dGhpc1swXTt7aWYoISFhcmd1bWVudHMubGVuZ3RoKXtlPWYuaXNGdW5jdGlvbihhKTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGQpe3ZhciBnPWYodGhpcyksaDtpZih0aGlzLm5vZGVUeXBlPT09MSl7ZT9oPWEuY2FsbCh0aGlzLGQsZy52YWwoKSk6aD1hLGg9PW51bGw/aD0iIjp0eXBlb2YgaD09Im51bWJlciI/aCs9IiI6Zi5pc0FycmF5KGgpJiYoaD1mLm1hcChoLGZ1bmN0aW9uKGEpe3JldHVybiBhPT1udWxsPyIiOmErIiJ9KSksYz1mLnZhbEhvb2tzW3RoaXMubm9kZU5hbWUudG9Mb3dlckNhc2UoKV18fGYudmFsSG9va3NbdGhpcy50eXBlXTtpZighY3x8ISgic2V0ImluIGMpfHxjLnNldCh0aGlzLGgsInZhbHVlIik9PT1iKXRoaXMudmFsdWU9aH19KX1pZihnKXtjPWYudmFsSG9va3NbZy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXXx8Zi52YWxIb29rc1tnLnR5cGVdO2lmKGMmJiJnZXQiaW4gYyYmKGQ9Yy5nZXQoZywidmFsdWUiKSkhPT1iKXJldHVybiBkO2Q9Zy52YWx1ZTtyZXR1cm4gdHlwZW9mIGQ9PSJzdHJpbmciP2QucmVwbGFjZShxLCIiKTpkPT1udWxsPyIiOmR9fX19KSxmLmV4dGVuZCh7dmFsSG9va3M6e29wdGlvbjp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiPWEuYXR0cmlidXRlcy52YWx1ZTtyZXR1cm4hYnx8Yi5zcGVjaWZpZWQ/YS52YWx1ZTphLnRleHR9fSxzZWxlY3Q6e2dldDpmdW5jdGlvbihhKXt2YXIgYixjLGQsZSxnPWEuc2VsZWN0ZWRJbmRleCxoPVtdLGk9YS5vcHRpb25zLGo9YS50eXBlPT09InNlbGVjdC1vbmUiO2lmKGc8MClyZXR1cm4gbnVsbDtjPWo/ZzowLGQ9aj9nKzE6aS5sZW5ndGg7Zm9yKDtjPGQ7YysrKXtlPWlbY107aWYoZS5zZWxlY3RlZCYmKGYuc3VwcG9ydC5vcHREaXNhYmxlZD8hZS5kaXNhYmxlZDplLmdldEF0dHJpYnV0ZSgiZGlzYWJsZWQiKT09PW51bGwpJiYoIWUucGFyZW50Tm9kZS5kaXNhYmxlZHx8IWYubm9kZU5hbWUoZS5wYXJlbnROb2RlLCJvcHRncm91cCIpKSl7Yj1mKGUpLnZhbCgpO2lmKGopcmV0dXJuIGI7aC5wdXNoKGIpfX1pZihqJiYhaC5sZW5ndGgmJmkubGVuZ3RoKXJldHVybiBmKGlbZ10pLnZhbCgpO3JldHVybiBofSxzZXQ6ZnVuY3Rpb24oYSxiKXt2YXIgYz1mLm1ha2VBcnJheShiKTtmKGEpLmZpbmQoIm9wdGlvbiIpLmVhY2goZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGVkPWYuaW5BcnJheShmKHRoaXMpLnZhbCgpLGMpPj0wfSksYy5sZW5ndGh8fChhLnNlbGVjdGVkSW5kZXg9LTEpO3JldHVybiBjfX19LGF0dHJGbjp7dmFsOiEwLGNzczohMCxodG1sOiEwLHRleHQ6ITAsZGF0YTohMCx3aWR0aDohMCxoZWlnaHQ6ITAsb2Zmc2V0OiEwfSxhdHRyOmZ1bmN0aW9uKGEsYyxkLGUpe3ZhciBnLGgsaSxqPWEubm9kZVR5cGU7aWYoISFhJiZqIT09MyYmaiE9PTgmJmohPT0yKXtpZihlJiZjIGluIGYuYXR0ckZuKXJldHVybiBmKGEpW2NdKGQpO2lmKHR5cGVvZiBhLmdldEF0dHJpYnV0ZT09InVuZGVmaW5lZCIpcmV0dXJuIGYucHJvcChhLGMsZCk7aT1qIT09MXx8IWYuaXNYTUxEb2MoYSksaSYmKGM9Yy50b0xvd2VyQ2FzZSgpLGg9Zi5hdHRySG9va3NbY118fCh1LnRlc3QoYyk/eDp3KSk7aWYoZCE9PWIpe2lmKGQ9PT1udWxsKXtmLnJlbW92ZUF0dHIoYSxjKTtyZXR1cm59aWYoaCYmInNldCJpbiBoJiZpJiYoZz1oLnNldChhLGQsYykpIT09YilyZXR1cm4gZzthLnNldEF0dHJpYnV0ZShjLCIiK2QpO3JldHVybiBkfWlmKGgmJiJnZXQiaW4gaCYmaSYmKGc9aC5nZXQoYSxjKSkhPT1udWxsKXJldHVybiBnO2c9YS5nZXRBdHRyaWJ1dGUoYyk7cmV0dXJuIGc9PT1udWxsP2I6Z319LHJlbW92ZUF0dHI6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGUsZyxoPTA7aWYoYiYmYS5ub2RlVHlwZT09PTEpe2Q9Yi50b0xvd2VyQ2FzZSgpLnNwbGl0KHApLGc9ZC5sZW5ndGg7Zm9yKDtoPGc7aCsrKWU9ZFtoXSxlJiYoYz1mLnByb3BGaXhbZV18fGUsZi5hdHRyKGEsZSwiIiksYS5yZW1vdmVBdHRyaWJ1dGUodj9lOmMpLHUudGVzdChlKSYmYyBpbiBhJiYoYVtjXT0hMSkpfX0sYXR0ckhvb2tzOnt0eXBlOntzZXQ6ZnVuY3Rpb24oYSxiKXtpZihyLnRlc3QoYS5ub2RlTmFtZSkmJmEucGFyZW50Tm9kZSlmLmVycm9yKCJ0eXBlIHByb3BlcnR5IGNhbid0IGJlIGNoYW5nZWQiKTtlbHNlIGlmKCFmLnN1cHBvcnQucmFkaW9WYWx1ZSYmYj09PSJyYWRpbyImJmYubm9kZU5hbWUoYSwiaW5wdXQiKSl7dmFyIGM9YS52YWx1ZTthLnNldEF0dHJpYnV0ZSgidHlwZSIsYiksYyYmKGEudmFsdWU9Yyk7cmV0dXJuIGJ9fX0sdmFsdWU6e2dldDpmdW5jdGlvbihhLGIpe2lmKHcmJmYubm9kZU5hbWUoYSwiYnV0dG9uIikpcmV0dXJuIHcuZ2V0KGEsYik7cmV0dXJuIGIgaW4gYT9hLnZhbHVlOm51bGx9LHNldDpmdW5jdGlvbihhLGIsYyl7aWYodyYmZi5ub2RlTmFtZShhLCJidXR0b24iKSlyZXR1cm4gdy5zZXQoYSxiLGMpO2EudmFsdWU9Yn19fSxwcm9wRml4Ont0YWJpbmRleDoidGFiSW5kZXgiLHJlYWRvbmx5OiJyZWFkT25seSIsImZvciI6Imh0bWxGb3IiLCJjbGFzcyI6ImNsYXNzTmFtZSIsbWF4bGVuZ3RoOiJtYXhMZW5ndGgiLGNlbGxzcGFjaW5nOiJjZWxsU3BhY2luZyIsY2VsbHBhZGRpbmc6ImNlbGxQYWRkaW5nIixyb3dzcGFuOiJyb3dTcGFuIixjb2xzcGFuOiJjb2xTcGFuIix1c2VtYXA6InVzZU1hcCIsZnJhbWVib3JkZXI6ImZyYW1lQm9yZGVyIixjb250ZW50ZWRpdGFibGU6ImNvbnRlbnRFZGl0YWJsZSJ9LHByb3A6ZnVuY3Rpb24oYSxjLGQpe3ZhciBlLGcsaCxpPWEubm9kZVR5cGU7aWYoISFhJiZpIT09MyYmaSE9PTgmJmkhPT0yKXtoPWkhPT0xfHwhZi5pc1hNTERvYyhhKSxoJiYoYz1mLnByb3BGaXhbY118fGMsZz1mLnByb3BIb29rc1tjXSk7cmV0dXJuIGQhPT1iP2cmJiJzZXQiaW4gZyYmKGU9Zy5zZXQoYSxkLGMpKSE9PWI/ZTphW2NdPWQ6ZyYmImdldCJpbiBnJiYoZT1nLmdldChhLGMpKSE9PW51bGw/ZTphW2NdfX0scHJvcEhvb2tzOnt0YWJJbmRleDp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBjPWEuZ2V0QXR0cmlidXRlTm9kZSgidGFiaW5kZXgiKTtyZXR1cm4gYyYmYy5zcGVjaWZpZWQ/cGFyc2VJbnQoYy52YWx1ZSwxMCk6cy50ZXN0KGEubm9kZU5hbWUpfHx0LnRlc3QoYS5ub2RlTmFtZSkmJmEuaHJlZj8wOmJ9fX19KSxmLmF0dHJIb29rcy50YWJpbmRleD1mLnByb3BIb29rcy50YWJJbmRleCx4PXtnZXQ6ZnVuY3Rpb24oYSxjKXt2YXIgZCxlPWYucHJvcChhLGMpO3JldHVybiBlPT09ITB8fHR5cGVvZiBlIT0iYm9vbGVhbiImJihkPWEuZ2V0QXR0cmlidXRlTm9kZShjKSkmJmQubm9kZVZhbHVlIT09ITE/Yy50b0xvd2VyQ2FzZSgpOmJ9LHNldDpmdW5jdGlvbihhLGIsYyl7dmFyIGQ7Yj09PSExP2YucmVtb3ZlQXR0cihhLGMpOihkPWYucHJvcEZpeFtjXXx8YyxkIGluIGEmJihhW2RdPSEwKSxhLnNldEF0dHJpYnV0ZShjLGMudG9Mb3dlckNhc2UoKSkpO3JldHVybiBjfX0sdnx8KHk9e25hbWU6ITAsaWQ6ITB9LHc9Zi52YWxIb29rcy5idXR0b249e2dldDpmdW5jdGlvbihhLGMpe3ZhciBkO2Q9YS5nZXRBdHRyaWJ1dGVOb2RlKGMpO3JldHVybiBkJiYoeVtjXT9kLm5vZGVWYWx1ZSE9PSIiOmQuc3BlY2lmaWVkKT9kLm5vZGVWYWx1ZTpifSxzZXQ6ZnVuY3Rpb24oYSxiLGQpe3ZhciBlPWEuZ2V0QXR0cmlidXRlTm9kZShkKTtlfHwoZT1jLmNyZWF0ZUF0dHJpYnV0ZShkKSxhLnNldEF0dHJpYnV0ZU5vZGUoZSkpO3JldHVybiBlLm5vZGVWYWx1ZT1iKyIifX0sZi5hdHRySG9va3MudGFiaW5kZXguc2V0PXcuc2V0LGYuZWFjaChbIndpZHRoIiwiaGVpZ2h0Il0sZnVuY3Rpb24oYSxiKXtmLmF0dHJIb29rc1tiXT1mLmV4dGVuZChmLmF0dHJIb29rc1tiXSx7c2V0OmZ1bmN0aW9uKGEsYyl7aWYoYz09PSIiKXthLnNldEF0dHJpYnV0ZShiLCJhdXRvIik7cmV0dXJuIGN9fX0pfSksZi5hdHRySG9va3MuY29udGVudGVkaXRhYmxlPXtnZXQ6dy5nZXQsc2V0OmZ1bmN0aW9uKGEsYixjKXtiPT09IiImJihiPSJmYWxzZSIpLHcuc2V0KGEsYixjKX19KSxmLnN1cHBvcnQuaHJlZk5vcm1hbGl6ZWR8fGYuZWFjaChbImhyZWYiLCJzcmMiLCJ3aWR0aCIsImhlaWdodCJdLGZ1bmN0aW9uKGEsYyl7Zi5hdHRySG9va3NbY109Zi5leHRlbmQoZi5hdHRySG9va3NbY10se2dldDpmdW5jdGlvbihhKXt2YXIgZD1hLmdldEF0dHJpYnV0ZShjLDIpO3JldHVybiBkPT09bnVsbD9iOmR9fSl9KSxmLnN1cHBvcnQuc3R5bGV8fChmLmF0dHJIb29rcy5zdHlsZT17Z2V0OmZ1bmN0aW9uKGEpe3JldHVybiBhLnN0eWxlLmNzc1RleHQudG9Mb3dlckNhc2UoKXx8Yn0sc2V0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuc3R5bGUuY3NzVGV4dD0iIitifX0pLGYuc3VwcG9ydC5vcHRTZWxlY3RlZHx8KGYucHJvcEhvb2tzLnNlbGVjdGVkPWYuZXh0ZW5kKGYucHJvcEhvb2tzLnNlbGVjdGVkLHtnZXQ6ZnVuY3Rpb24oYSl7dmFyIGI9YS5wYXJlbnROb2RlO2ImJihiLnNlbGVjdGVkSW5kZXgsYi5wYXJlbnROb2RlJiZiLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCk7cmV0dXJuIG51bGx9fSkpLGYuc3VwcG9ydC5lbmN0eXBlfHwoZi5wcm9wRml4LmVuY3R5cGU9ImVuY29kaW5nIiksZi5zdXBwb3J0LmNoZWNrT258fGYuZWFjaChbInJhZGlvIiwiY2hlY2tib3giXSxmdW5jdGlvbigpe2YudmFsSG9va3NbdGhpc109e2dldDpmdW5jdGlvbihhKXtyZXR1cm4gYS5nZXRBdHRyaWJ1dGUoInZhbHVlIik9PT1udWxsPyJvbiI6YS52YWx1ZX19fSksZi5lYWNoKFsicmFkaW8iLCJjaGVja2JveCJdLGZ1bmN0aW9uKCl7Zi52YWxIb29rc1t0aGlzXT1mLmV4dGVuZChmLnZhbEhvb2tzW3RoaXNdLHtzZXQ6ZnVuY3Rpb24oYSxiKXtpZihmLmlzQXJyYXkoYikpcmV0dXJuIGEuY2hlY2tlZD1mLmluQXJyYXkoZihhKS52YWwoKSxiKT49MH19KX0pO3ZhciB6PS9eKD86dGV4dGFyZWF8aW5wdXR8c2VsZWN0KSQvaSxBPS9eKFteXC5dKik/KD86XC4oLispKT8kLyxCPS9cYmhvdmVyKFwuXFMrKT9cYi8sQz0vXmtleS8sRD0vXig/Om1vdXNlfGNvbnRleHRtZW51KXxjbGljay8sRT0vXig/OmZvY3VzaW5mb2N1c3xmb2N1c291dGJsdXIpJC8sRj0vXihcdyopKD86IyhbXHdcLV0rKSk/KD86XC4oW1x3XC1dKykpPyQvLEc9ZnVuY3Rpb24oYSl7dmFyIGI9Ri5leGVjKGEpO2ImJihiWzFdPShiWzFdfHwiIikudG9Mb3dlckNhc2UoKSxiWzNdPWJbM10mJm5ldyBSZWdFeHAoIig/Ol58XFxzKSIrYlszXSsiKD86XFxzfCQpIikpO3JldHVybiBifSxIPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5hdHRyaWJ1dGVzfHx7fTtyZXR1cm4oIWJbMV18fGEubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PWJbMV0pJiYoIWJbMl18fChjLmlkfHx7fSkudmFsdWU9PT1iWzJdKSYmKCFiWzNdfHxiWzNdLnRlc3QoKGNbImNsYXNzIl18fHt9KS52YWx1ZSkpfSxJPWZ1bmN0aW9uKGEpe3JldHVybiBmLmV2ZW50LnNwZWNpYWwuaG92ZXI/YTphLnJlcGxhY2UoQiwibW91c2VlbnRlciQxIG1vdXNlbGVhdmUkMSIpfTsKZi5ldmVudD17YWRkOmZ1bmN0aW9uKGEsYyxkLGUsZyl7dmFyIGgsaSxqLGssbCxtLG4sbyxwLHEscixzO2lmKCEoYS5ub2RlVHlwZT09PTN8fGEubm9kZVR5cGU9PT04fHwhY3x8IWR8fCEoaD1mLl9kYXRhKGEpKSkpe2QuaGFuZGxlciYmKHA9ZCxkPXAuaGFuZGxlciksZC5ndWlkfHwoZC5ndWlkPWYuZ3VpZCsrKSxqPWguZXZlbnRzLGp8fChoLmV2ZW50cz1qPXt9KSxpPWguaGFuZGxlLGl8fChoLmhhbmRsZT1pPWZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgZiE9InVuZGVmaW5lZCImJighYXx8Zi5ldmVudC50cmlnZ2VyZWQhPT1hLnR5cGUpP2YuZXZlbnQuZGlzcGF0Y2guYXBwbHkoaS5lbGVtLGFyZ3VtZW50cyk6Yn0saS5lbGVtPWEpLGM9Zi50cmltKEkoYykpLnNwbGl0KCIgIik7Zm9yKGs9MDtrPGMubGVuZ3RoO2srKyl7bD1BLmV4ZWMoY1trXSl8fFtdLG09bFsxXSxuPShsWzJdfHwiIikuc3BsaXQoIi4iKS5zb3J0KCkscz1mLmV2ZW50LnNwZWNpYWxbbV18fHt9LG09KGc/cy5kZWxlZ2F0ZVR5cGU6cy5iaW5kVHlwZSl8fG0scz1mLmV2ZW50LnNwZWNpYWxbbV18fHt9LG89Zi5leHRlbmQoe3R5cGU6bSxvcmlnVHlwZTpsWzFdLGRhdGE6ZSxoYW5kbGVyOmQsZ3VpZDpkLmd1aWQsc2VsZWN0b3I6ZyxxdWljazpHKGcpLG5hbWVzcGFjZTpuLmpvaW4oIi4iKX0scCkscj1qW21dO2lmKCFyKXtyPWpbbV09W10sci5kZWxlZ2F0ZUNvdW50PTA7aWYoIXMuc2V0dXB8fHMuc2V0dXAuY2FsbChhLGUsbixpKT09PSExKWEuYWRkRXZlbnRMaXN0ZW5lcj9hLmFkZEV2ZW50TGlzdGVuZXIobSxpLCExKTphLmF0dGFjaEV2ZW50JiZhLmF0dGFjaEV2ZW50KCJvbiIrbSxpKX1zLmFkZCYmKHMuYWRkLmNhbGwoYSxvKSxvLmhhbmRsZXIuZ3VpZHx8KG8uaGFuZGxlci5ndWlkPWQuZ3VpZCkpLGc/ci5zcGxpY2Uoci5kZWxlZ2F0ZUNvdW50KyssMCxvKTpyLnB1c2gobyksZi5ldmVudC5nbG9iYWxbbV09ITB9YT1udWxsfX0sZ2xvYmFsOnt9LHJlbW92ZTpmdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBnPWYuaGFzRGF0YShhKSYmZi5fZGF0YShhKSxoLGksaixrLGwsbSxuLG8scCxxLHIscztpZighIWcmJiEhKG89Zy5ldmVudHMpKXtiPWYudHJpbShJKGJ8fCIiKSkuc3BsaXQoIiAiKTtmb3IoaD0wO2g8Yi5sZW5ndGg7aCsrKXtpPUEuZXhlYyhiW2hdKXx8W10saj1rPWlbMV0sbD1pWzJdO2lmKCFqKXtmb3IoaiBpbiBvKWYuZXZlbnQucmVtb3ZlKGEsaitiW2hdLGMsZCwhMCk7Y29udGludWV9cD1mLmV2ZW50LnNwZWNpYWxbal18fHt9LGo9KGQ/cC5kZWxlZ2F0ZVR5cGU6cC5iaW5kVHlwZSl8fGoscj1vW2pdfHxbXSxtPXIubGVuZ3RoLGw9bD9uZXcgUmVnRXhwKCIoXnxcXC4pIitsLnNwbGl0KCIuIikuc29ydCgpLmpvaW4oIlxcLig/Oi4qXFwuKT8iKSsiKFxcLnwkKSIpOm51bGw7Zm9yKG49MDtuPHIubGVuZ3RoO24rKylzPXJbbl0sKGV8fGs9PT1zLm9yaWdUeXBlKSYmKCFjfHxjLmd1aWQ9PT1zLmd1aWQpJiYoIWx8fGwudGVzdChzLm5hbWVzcGFjZSkpJiYoIWR8fGQ9PT1zLnNlbGVjdG9yfHxkPT09IioqIiYmcy5zZWxlY3RvcikmJihyLnNwbGljZShuLS0sMSkscy5zZWxlY3RvciYmci5kZWxlZ2F0ZUNvdW50LS0scC5yZW1vdmUmJnAucmVtb3ZlLmNhbGwoYSxzKSk7ci5sZW5ndGg9PT0wJiZtIT09ci5sZW5ndGgmJigoIXAudGVhcmRvd258fHAudGVhcmRvd24uY2FsbChhLGwpPT09ITEpJiZmLnJlbW92ZUV2ZW50KGEsaixnLmhhbmRsZSksZGVsZXRlIG9bal0pfWYuaXNFbXB0eU9iamVjdChvKSYmKHE9Zy5oYW5kbGUscSYmKHEuZWxlbT1udWxsKSxmLnJlbW92ZURhdGEoYSxbImV2ZW50cyIsImhhbmRsZSJdLCEwKSl9fSxjdXN0b21FdmVudDp7Z2V0RGF0YTohMCxzZXREYXRhOiEwLGNoYW5nZURhdGE6ITB9LHRyaWdnZXI6ZnVuY3Rpb24oYyxkLGUsZyl7aWYoIWV8fGUubm9kZVR5cGUhPT0zJiZlLm5vZGVUeXBlIT09OCl7dmFyIGg9Yy50eXBlfHxjLGk9W10saixrLGwsbSxuLG8scCxxLHIscztpZihFLnRlc3QoaCtmLmV2ZW50LnRyaWdnZXJlZCkpcmV0dXJuO2guaW5kZXhPZigiISIpPj0wJiYoaD1oLnNsaWNlKDAsLTEpLGs9ITApLGguaW5kZXhPZigiLiIpPj0wJiYoaT1oLnNwbGl0KCIuIiksaD1pLnNoaWZ0KCksaS5zb3J0KCkpO2lmKCghZXx8Zi5ldmVudC5jdXN0b21FdmVudFtoXSkmJiFmLmV2ZW50Lmdsb2JhbFtoXSlyZXR1cm47Yz10eXBlb2YgYz09Im9iamVjdCI/Y1tmLmV4cGFuZG9dP2M6bmV3IGYuRXZlbnQoaCxjKTpuZXcgZi5FdmVudChoKSxjLnR5cGU9aCxjLmlzVHJpZ2dlcj0hMCxjLmV4Y2x1c2l2ZT1rLGMubmFtZXNwYWNlPWkuam9pbigiLiIpLGMubmFtZXNwYWNlX3JlPWMubmFtZXNwYWNlP25ldyBSZWdFeHAoIihefFxcLikiK2kuam9pbigiXFwuKD86LipcXC4pPyIpKyIoXFwufCQpIik6bnVsbCxvPWguaW5kZXhPZigiOiIpPDA/Im9uIitoOiIiO2lmKCFlKXtqPWYuY2FjaGU7Zm9yKGwgaW4gailqW2xdLmV2ZW50cyYmaltsXS5ldmVudHNbaF0mJmYuZXZlbnQudHJpZ2dlcihjLGQsaltsXS5oYW5kbGUuZWxlbSwhMCk7cmV0dXJufWMucmVzdWx0PWIsYy50YXJnZXR8fChjLnRhcmdldD1lKSxkPWQhPW51bGw/Zi5tYWtlQXJyYXkoZCk6W10sZC51bnNoaWZ0KGMpLHA9Zi5ldmVudC5zcGVjaWFsW2hdfHx7fTtpZihwLnRyaWdnZXImJnAudHJpZ2dlci5hcHBseShlLGQpPT09ITEpcmV0dXJuO3I9W1tlLHAuYmluZFR5cGV8fGhdXTtpZighZyYmIXAubm9CdWJibGUmJiFmLmlzV2luZG93KGUpKXtzPXAuZGVsZWdhdGVUeXBlfHxoLG09RS50ZXN0KHMraCk/ZTplLnBhcmVudE5vZGUsbj1udWxsO2Zvcig7bTttPW0ucGFyZW50Tm9kZSlyLnB1c2goW20sc10pLG49bTtuJiZuPT09ZS5vd25lckRvY3VtZW50JiZyLnB1c2goW24uZGVmYXVsdFZpZXd8fG4ucGFyZW50V2luZG93fHxhLHNdKX1mb3IobD0wO2w8ci5sZW5ndGgmJiFjLmlzUHJvcGFnYXRpb25TdG9wcGVkKCk7bCsrKW09cltsXVswXSxjLnR5cGU9cltsXVsxXSxxPShmLl9kYXRhKG0sImV2ZW50cyIpfHx7fSlbYy50eXBlXSYmZi5fZGF0YShtLCJoYW5kbGUiKSxxJiZxLmFwcGx5KG0sZCkscT1vJiZtW29dLHEmJmYuYWNjZXB0RGF0YShtKSYmcS5hcHBseShtLGQpPT09ITEmJmMucHJldmVudERlZmF1bHQoKTtjLnR5cGU9aCwhZyYmIWMuaXNEZWZhdWx0UHJldmVudGVkKCkmJighcC5fZGVmYXVsdHx8cC5fZGVmYXVsdC5hcHBseShlLm93bmVyRG9jdW1lbnQsZCk9PT0hMSkmJihoIT09ImNsaWNrInx8IWYubm9kZU5hbWUoZSwiYSIpKSYmZi5hY2NlcHREYXRhKGUpJiZvJiZlW2hdJiYoaCE9PSJmb2N1cyImJmghPT0iYmx1ciJ8fGMudGFyZ2V0Lm9mZnNldFdpZHRoIT09MCkmJiFmLmlzV2luZG93KGUpJiYobj1lW29dLG4mJihlW29dPW51bGwpLGYuZXZlbnQudHJpZ2dlcmVkPWgsZVtoXSgpLGYuZXZlbnQudHJpZ2dlcmVkPWIsbiYmKGVbb109bikpO3JldHVybiBjLnJlc3VsdH19LGRpc3BhdGNoOmZ1bmN0aW9uKGMpe2M9Zi5ldmVudC5maXgoY3x8YS5ldmVudCk7dmFyIGQ9KGYuX2RhdGEodGhpcywiZXZlbnRzIil8fHt9KVtjLnR5cGVdfHxbXSxlPWQuZGVsZWdhdGVDb3VudCxnPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApLGg9IWMuZXhjbHVzaXZlJiYhYy5uYW1lc3BhY2UsaT1bXSxqLGssbCxtLG4sbyxwLHEscixzLHQ7Z1swXT1jLGMuZGVsZWdhdGVUYXJnZXQ9dGhpcztpZihlJiYhYy50YXJnZXQuZGlzYWJsZWQmJighYy5idXR0b258fGMudHlwZSE9PSJjbGljayIpKXttPWYodGhpcyksbS5jb250ZXh0PXRoaXMub3duZXJEb2N1bWVudHx8dGhpcztmb3IobD1jLnRhcmdldDtsIT10aGlzO2w9bC5wYXJlbnROb2RlfHx0aGlzKXtvPXt9LHE9W10sbVswXT1sO2ZvcihqPTA7ajxlO2orKylyPWRbal0scz1yLnNlbGVjdG9yLG9bc109PT1iJiYob1tzXT1yLnF1aWNrP0gobCxyLnF1aWNrKTptLmlzKHMpKSxvW3NdJiZxLnB1c2gocik7cS5sZW5ndGgmJmkucHVzaCh7ZWxlbTpsLG1hdGNoZXM6cX0pfX1kLmxlbmd0aD5lJiZpLnB1c2goe2VsZW06dGhpcyxtYXRjaGVzOmQuc2xpY2UoZSl9KTtmb3Ioaj0wO2o8aS5sZW5ndGgmJiFjLmlzUHJvcGFnYXRpb25TdG9wcGVkKCk7aisrKXtwPWlbal0sYy5jdXJyZW50VGFyZ2V0PXAuZWxlbTtmb3Ioaz0wO2s8cC5tYXRjaGVzLmxlbmd0aCYmIWMuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQoKTtrKyspe3I9cC5tYXRjaGVzW2tdO2lmKGh8fCFjLm5hbWVzcGFjZSYmIXIubmFtZXNwYWNlfHxjLm5hbWVzcGFjZV9yZSYmYy5uYW1lc3BhY2VfcmUudGVzdChyLm5hbWVzcGFjZSkpYy5kYXRhPXIuZGF0YSxjLmhhbmRsZU9iaj1yLG49KChmLmV2ZW50LnNwZWNpYWxbci5vcmlnVHlwZV18fHt9KS5oYW5kbGV8fHIuaGFuZGxlcikuYXBwbHkocC5lbGVtLGcpLG4hPT1iJiYoYy5yZXN1bHQ9bixuPT09ITEmJihjLnByZXZlbnREZWZhdWx0KCksYy5zdG9wUHJvcGFnYXRpb24oKSkpfX1yZXR1cm4gYy5yZXN1bHR9LHByb3BzOiJhdHRyQ2hhbmdlIGF0dHJOYW1lIHJlbGF0ZWROb2RlIHNyY0VsZW1lbnQgYWx0S2V5IGJ1YmJsZXMgY2FuY2VsYWJsZSBjdHJsS2V5IGN1cnJlbnRUYXJnZXQgZXZlbnRQaGFzZSBtZXRhS2V5IHJlbGF0ZWRUYXJnZXQgc2hpZnRLZXkgdGFyZ2V0IHRpbWVTdGFtcCB2aWV3IHdoaWNoIi5zcGxpdCgiICIpLGZpeEhvb2tzOnt9LGtleUhvb2tzOntwcm9wczoiY2hhciBjaGFyQ29kZSBrZXkga2V5Q29kZSIuc3BsaXQoIiAiKSxmaWx0ZXI6ZnVuY3Rpb24oYSxiKXthLndoaWNoPT1udWxsJiYoYS53aGljaD1iLmNoYXJDb2RlIT1udWxsP2IuY2hhckNvZGU6Yi5rZXlDb2RlKTtyZXR1cm4gYX19LG1vdXNlSG9va3M6e3Byb3BzOiJidXR0b24gYnV0dG9ucyBjbGllbnRYIGNsaWVudFkgZnJvbUVsZW1lbnQgb2Zmc2V0WCBvZmZzZXRZIHBhZ2VYIHBhZ2VZIHNjcmVlblggc2NyZWVuWSB0b0VsZW1lbnQiLnNwbGl0KCIgIiksZmlsdGVyOmZ1bmN0aW9uKGEsZCl7dmFyIGUsZixnLGg9ZC5idXR0b24saT1kLmZyb21FbGVtZW50O2EucGFnZVg9PW51bGwmJmQuY2xpZW50WCE9bnVsbCYmKGU9YS50YXJnZXQub3duZXJEb2N1bWVudHx8YyxmPWUuZG9jdW1lbnRFbGVtZW50LGc9ZS5ib2R5LGEucGFnZVg9ZC5jbGllbnRYKyhmJiZmLnNjcm9sbExlZnR8fGcmJmcuc2Nyb2xsTGVmdHx8MCktKGYmJmYuY2xpZW50TGVmdHx8ZyYmZy5jbGllbnRMZWZ0fHwwKSxhLnBhZ2VZPWQuY2xpZW50WSsoZiYmZi5zY3JvbGxUb3B8fGcmJmcuc2Nyb2xsVG9wfHwwKS0oZiYmZi5jbGllbnRUb3B8fGcmJmcuY2xpZW50VG9wfHwwKSksIWEucmVsYXRlZFRhcmdldCYmaSYmKGEucmVsYXRlZFRhcmdldD1pPT09YS50YXJnZXQ/ZC50b0VsZW1lbnQ6aSksIWEud2hpY2gmJmghPT1iJiYoYS53aGljaD1oJjE/MTpoJjI/MzpoJjQ/MjowKTtyZXR1cm4gYX19LGZpeDpmdW5jdGlvbihhKXtpZihhW2YuZXhwYW5kb10pcmV0dXJuIGE7dmFyIGQsZSxnPWEsaD1mLmV2ZW50LmZpeEhvb2tzW2EudHlwZV18fHt9LGk9aC5wcm9wcz90aGlzLnByb3BzLmNvbmNhdChoLnByb3BzKTp0aGlzLnByb3BzO2E9Zi5FdmVudChnKTtmb3IoZD1pLmxlbmd0aDtkOyllPWlbLS1kXSxhW2VdPWdbZV07YS50YXJnZXR8fChhLnRhcmdldD1nLnNyY0VsZW1lbnR8fGMpLGEudGFyZ2V0Lm5vZGVUeXBlPT09MyYmKGEudGFyZ2V0PWEudGFyZ2V0LnBhcmVudE5vZGUpLGEubWV0YUtleT09PWImJihhLm1ldGFLZXk9YS5jdHJsS2V5KTtyZXR1cm4gaC5maWx0ZXI/aC5maWx0ZXIoYSxnKTphfSxzcGVjaWFsOntyZWFkeTp7c2V0dXA6Zi5iaW5kUmVhZHl9LGxvYWQ6e25vQnViYmxlOiEwfSxmb2N1czp7ZGVsZWdhdGVUeXBlOiJmb2N1c2luIn0sYmx1cjp7ZGVsZWdhdGVUeXBlOiJmb2N1c291dCJ9LGJlZm9yZXVubG9hZDp7c2V0dXA6ZnVuY3Rpb24oYSxiLGMpe2YuaXNXaW5kb3codGhpcykmJih0aGlzLm9uYmVmb3JldW5sb2FkPWMpfSx0ZWFyZG93bjpmdW5jdGlvbihhLGIpe3RoaXMub25iZWZvcmV1bmxvYWQ9PT1iJiYodGhpcy5vbmJlZm9yZXVubG9hZD1udWxsKX19fSxzaW11bGF0ZTpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1mLmV4dGVuZChuZXcgZi5FdmVudCxjLHt0eXBlOmEsaXNTaW11bGF0ZWQ6ITAsb3JpZ2luYWxFdmVudDp7fX0pO2Q/Zi5ldmVudC50cmlnZ2VyKGUsbnVsbCxiKTpmLmV2ZW50LmRpc3BhdGNoLmNhbGwoYixlKSxlLmlzRGVmYXVsdFByZXZlbnRlZCgpJiZjLnByZXZlbnREZWZhdWx0KCl9fSxmLmV2ZW50LmhhbmRsZT1mLmV2ZW50LmRpc3BhdGNoLGYucmVtb3ZlRXZlbnQ9Yy5yZW1vdmVFdmVudExpc3RlbmVyP2Z1bmN0aW9uKGEsYixjKXthLnJlbW92ZUV2ZW50TGlzdGVuZXImJmEucmVtb3ZlRXZlbnRMaXN0ZW5lcihiLGMsITEpfTpmdW5jdGlvbihhLGIsYyl7YS5kZXRhY2hFdmVudCYmYS5kZXRhY2hFdmVudCgib24iK2IsYyl9LGYuRXZlbnQ9ZnVuY3Rpb24oYSxiKXtpZighKHRoaXMgaW5zdGFuY2VvZiBmLkV2ZW50KSlyZXR1cm4gbmV3IGYuRXZlbnQoYSxiKTthJiZhLnR5cGU/KHRoaXMub3JpZ2luYWxFdmVudD1hLHRoaXMudHlwZT1hLnR5cGUsdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9YS5kZWZhdWx0UHJldmVudGVkfHxhLnJldHVyblZhbHVlPT09ITF8fGEuZ2V0UHJldmVudERlZmF1bHQmJmEuZ2V0UHJldmVudERlZmF1bHQoKT9LOkopOnRoaXMudHlwZT1hLGImJmYuZXh0ZW5kKHRoaXMsYiksdGhpcy50aW1lU3RhbXA9YSYmYS50aW1lU3RhbXB8fGYubm93KCksdGhpc1tmLmV4cGFuZG9dPSEwfSxmLkV2ZW50LnByb3RvdHlwZT17cHJldmVudERlZmF1bHQ6ZnVuY3Rpb24oKXt0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1LO3ZhciBhPXRoaXMub3JpZ2luYWxFdmVudDshYXx8KGEucHJldmVudERlZmF1bHQ/YS5wcmV2ZW50RGVmYXVsdCgpOmEucmV0dXJuVmFsdWU9ITEpfSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPUs7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50OyFhfHwoYS5zdG9wUHJvcGFnYXRpb24mJmEuc3RvcFByb3BhZ2F0aW9uKCksYS5jYW5jZWxCdWJibGU9ITApfSxzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt0aGlzLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkPUssdGhpcy5zdG9wUHJvcGFnYXRpb24oKX0saXNEZWZhdWx0UHJldmVudGVkOkosaXNQcm9wYWdhdGlvblN0b3BwZWQ6Sixpc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZDpKfSxmLmVhY2goe21vdXNlZW50ZXI6Im1vdXNlb3ZlciIsbW91c2VsZWF2ZToibW91c2VvdXQifSxmdW5jdGlvbihhLGIpe2YuZXZlbnQuc3BlY2lhbFthXT17ZGVsZWdhdGVUeXBlOmIsYmluZFR5cGU6YixoYW5kbGU6ZnVuY3Rpb24oYSl7dmFyIGM9dGhpcyxkPWEucmVsYXRlZFRhcmdldCxlPWEuaGFuZGxlT2JqLGc9ZS5zZWxlY3RvcixoO2lmKCFkfHxkIT09YyYmIWYuY29udGFpbnMoYyxkKSlhLnR5cGU9ZS5vcmlnVHlwZSxoPWUuaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksYS50eXBlPWI7cmV0dXJuIGh9fX0pLGYuc3VwcG9ydC5zdWJtaXRCdWJibGVzfHwoZi5ldmVudC5zcGVjaWFsLnN1Ym1pdD17c2V0dXA6ZnVuY3Rpb24oKXtpZihmLm5vZGVOYW1lKHRoaXMsImZvcm0iKSlyZXR1cm4hMTtmLmV2ZW50LmFkZCh0aGlzLCJjbGljay5fc3VibWl0IGtleXByZXNzLl9zdWJtaXQiLGZ1bmN0aW9uKGEpe3ZhciBjPWEudGFyZ2V0LGQ9Zi5ub2RlTmFtZShjLCJpbnB1dCIpfHxmLm5vZGVOYW1lKGMsImJ1dHRvbiIpP2MuZm9ybTpiO2QmJiFkLl9zdWJtaXRfYXR0YWNoZWQmJihmLmV2ZW50LmFkZChkLCJzdWJtaXQuX3N1Ym1pdCIsZnVuY3Rpb24oYSl7dGhpcy5wYXJlbnROb2RlJiYhYS5pc1RyaWdnZXImJmYuZXZlbnQuc2ltdWxhdGUoInN1Ym1pdCIsdGhpcy5wYXJlbnROb2RlLGEsITApfSksZC5fc3VibWl0X2F0dGFjaGVkPSEwKX0pfSx0ZWFyZG93bjpmdW5jdGlvbigpe2lmKGYubm9kZU5hbWUodGhpcywiZm9ybSIpKXJldHVybiExO2YuZXZlbnQucmVtb3ZlKHRoaXMsIi5fc3VibWl0Iil9fSksZi5zdXBwb3J0LmNoYW5nZUJ1YmJsZXN8fChmLmV2ZW50LnNwZWNpYWwuY2hhbmdlPXtzZXR1cDpmdW5jdGlvbigpe2lmKHoudGVzdCh0aGlzLm5vZGVOYW1lKSl7aWYodGhpcy50eXBlPT09ImNoZWNrYm94Inx8dGhpcy50eXBlPT09InJhZGlvIilmLmV2ZW50LmFkZCh0aGlzLCJwcm9wZXJ0eWNoYW5nZS5fY2hhbmdlIixmdW5jdGlvbihhKXthLm9yaWdpbmFsRXZlbnQucHJvcGVydHlOYW1lPT09ImNoZWNrZWQiJiYodGhpcy5fanVzdF9jaGFuZ2VkPSEwKX0pLGYuZXZlbnQuYWRkKHRoaXMsImNsaWNrLl9jaGFuZ2UiLGZ1bmN0aW9uKGEpe3RoaXMuX2p1c3RfY2hhbmdlZCYmIWEuaXNUcmlnZ2VyJiYodGhpcy5fanVzdF9jaGFuZ2VkPSExLGYuZXZlbnQuc2ltdWxhdGUoImNoYW5nZSIsdGhpcyxhLCEwKSl9KTtyZXR1cm4hMX1mLmV2ZW50LmFkZCh0aGlzLCJiZWZvcmVhY3RpdmF0ZS5fY2hhbmdlIixmdW5jdGlvbihhKXt2YXIgYj1hLnRhcmdldDt6LnRlc3QoYi5ub2RlTmFtZSkmJiFiLl9jaGFuZ2VfYXR0YWNoZWQmJihmLmV2ZW50LmFkZChiLCJjaGFuZ2UuX2NoYW5nZSIsZnVuY3Rpb24oYSl7dGhpcy5wYXJlbnROb2RlJiYhYS5pc1NpbXVsYXRlZCYmIWEuaXNUcmlnZ2VyJiZmLmV2ZW50LnNpbXVsYXRlKCJjaGFuZ2UiLHRoaXMucGFyZW50Tm9kZSxhLCEwKX0pLGIuX2NoYW5nZV9hdHRhY2hlZD0hMCl9KX0saGFuZGxlOmZ1bmN0aW9uKGEpe3ZhciBiPWEudGFyZ2V0O2lmKHRoaXMhPT1ifHxhLmlzU2ltdWxhdGVkfHxhLmlzVHJpZ2dlcnx8Yi50eXBlIT09InJhZGlvIiYmYi50eXBlIT09ImNoZWNrYm94IilyZXR1cm4gYS5oYW5kbGVPYmouaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LHRlYXJkb3duOmZ1bmN0aW9uKCl7Zi5ldmVudC5yZW1vdmUodGhpcywiLl9jaGFuZ2UiKTtyZXR1cm4gei50ZXN0KHRoaXMubm9kZU5hbWUpfX0pLGYuc3VwcG9ydC5mb2N1c2luQnViYmxlc3x8Zi5lYWNoKHtmb2N1czoiZm9jdXNpbiIsYmx1cjoiZm9jdXNvdXQifSxmdW5jdGlvbihhLGIpe3ZhciBkPTAsZT1mdW5jdGlvbihhKXtmLmV2ZW50LnNpbXVsYXRlKGIsYS50YXJnZXQsZi5ldmVudC5maXgoYSksITApfTtmLmV2ZW50LnNwZWNpYWxbYl09e3NldHVwOmZ1bmN0aW9uKCl7ZCsrPT09MCYmYy5hZGRFdmVudExpc3RlbmVyKGEsZSwhMCl9LHRlYXJkb3duOmZ1bmN0aW9uKCl7LS1kPT09MCYmYy5yZW1vdmVFdmVudExpc3RlbmVyKGEsZSwhMCl9fX0pLGYuZm4uZXh0ZW5kKHtvbjpmdW5jdGlvbihhLGMsZCxlLGcpe3ZhciBoLGk7aWYodHlwZW9mIGE9PSJvYmplY3QiKXt0eXBlb2YgYyE9InN0cmluZyImJihkPWMsYz1iKTtmb3IoaSBpbiBhKXRoaXMub24oaSxjLGQsYVtpXSxnKTtyZXR1cm4gdGhpc31kPT1udWxsJiZlPT1udWxsPyhlPWMsZD1jPWIpOmU9PW51bGwmJih0eXBlb2YgYz09InN0cmluZyI/KGU9ZCxkPWIpOihlPWQsZD1jLGM9YikpO2lmKGU9PT0hMSllPUo7ZWxzZSBpZighZSlyZXR1cm4gdGhpcztnPT09MSYmKGg9ZSxlPWZ1bmN0aW9uKGEpe2YoKS5vZmYoYSk7cmV0dXJuIGguYXBwbHkodGhpcyxhcmd1bWVudHMpfSxlLmd1aWQ9aC5ndWlkfHwoaC5ndWlkPWYuZ3VpZCsrKSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2YuZXZlbnQuYWRkKHRoaXMsYSxlLGQsYyl9KX0sb25lOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0aGlzLm9uLmNhbGwodGhpcyxhLGIsYyxkLDEpfSxvZmY6ZnVuY3Rpb24oYSxjLGQpe2lmKGEmJmEucHJldmVudERlZmF1bHQmJmEuaGFuZGxlT2JqKXt2YXIgZT1hLmhhbmRsZU9iajtmKGEuZGVsZWdhdGVUYXJnZXQpLm9mZihlLm5hbWVzcGFjZT9lLnR5cGUrIi4iK2UubmFtZXNwYWNlOmUudHlwZSxlLnNlbGVjdG9yLGUuaGFuZGxlcik7cmV0dXJuIHRoaXN9aWYodHlwZW9mIGE9PSJvYmplY3QiKXtmb3IodmFyIGcgaW4gYSl0aGlzLm9mZihnLGMsYVtnXSk7cmV0dXJuIHRoaXN9aWYoYz09PSExfHx0eXBlb2YgYz09ImZ1bmN0aW9uIilkPWMsYz1iO2Q9PT0hMSYmKGQ9Sik7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2YuZXZlbnQucmVtb3ZlKHRoaXMsYSxkLGMpfSl9LGJpbmQ6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiB0aGlzLm9uKGEsbnVsbCxiLGMpfSx1bmJpbmQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5vZmYoYSxudWxsLGIpfSxsaXZlOmZ1bmN0aW9uKGEsYixjKXtmKHRoaXMuY29udGV4dCkub24oYSx0aGlzLnNlbGVjdG9yLGIsYyk7cmV0dXJuIHRoaXN9LGRpZTpmdW5jdGlvbihhLGIpe2YodGhpcy5jb250ZXh0KS5vZmYoYSx0aGlzLnNlbGVjdG9yfHwiKioiLGIpO3JldHVybiB0aGlzfSxkZWxlZ2F0ZTpmdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gdGhpcy5vbihiLGEsYyxkKX0sdW5kZWxlZ2F0ZTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg9PTE/dGhpcy5vZmYoYSwiKioiKTp0aGlzLm9mZihiLGEsYyl9LHRyaWdnZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Zi5ldmVudC50cmlnZ2VyKGEsYix0aGlzKX0pfSx0cmlnZ2VySGFuZGxlcjpmdW5jdGlvbihhLGIpe2lmKHRoaXNbMF0pcmV0dXJuIGYuZXZlbnQudHJpZ2dlcihhLGIsdGhpc1swXSwhMCl9LHRvZ2dsZTpmdW5jdGlvbihhKXt2YXIgYj1hcmd1bWVudHMsYz1hLmd1aWR8fGYuZ3VpZCsrLGQ9MCxlPWZ1bmN0aW9uKGMpe3ZhciBlPShmLl9kYXRhKHRoaXMsImxhc3RUb2dnbGUiK2EuZ3VpZCl8fDApJWQ7Zi5fZGF0YSh0aGlzLCJsYXN0VG9nZ2xlIithLmd1aWQsZSsxKSxjLnByZXZlbnREZWZhdWx0KCk7cmV0dXJuIGJbZV0uYXBwbHkodGhpcyxhcmd1bWVudHMpfHwhMX07ZS5ndWlkPWM7d2hpbGUoZDxiLmxlbmd0aCliW2QrK10uZ3VpZD1jO3JldHVybiB0aGlzLmNsaWNrKGUpfSxob3ZlcjpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLm1vdXNlZW50ZXIoYSkubW91c2VsZWF2ZShifHxhKX19KSxmLmVhY2goImJsdXIgZm9jdXMgZm9jdXNpbiBmb2N1c291dCBsb2FkIHJlc2l6ZSBzY3JvbGwgdW5sb2FkIGNsaWNrIGRibGNsaWNrIG1vdXNlZG93biBtb3VzZXVwIG1vdXNlbW92ZSBtb3VzZW92ZXIgbW91c2VvdXQgbW91c2VlbnRlciBtb3VzZWxlYXZlIGNoYW5nZSBzZWxlY3Qgc3VibWl0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgZXJyb3IgY29udGV4dG1lbnUiLnNwbGl0KCIgIiksZnVuY3Rpb24oYSxiKXtmLmZuW2JdPWZ1bmN0aW9uKGEsYyl7Yz09bnVsbCYmKGM9YSxhPW51bGwpO3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjA/dGhpcy5vbihiLG51bGwsYSxjKTp0aGlzLnRyaWdnZXIoYil9LGYuYXR0ckZuJiYoZi5hdHRyRm5bYl09ITApLEMudGVzdChiKSYmKGYuZXZlbnQuZml4SG9va3NbYl09Zi5ldmVudC5rZXlIb29rcyksRC50ZXN0KGIpJiYoZi5ldmVudC5maXhIb29rc1tiXT1mLmV2ZW50Lm1vdXNlSG9va3MpfSksZnVuY3Rpb24oKXtmdW5jdGlvbiB4KGEsYixjLGUsZixnKXtmb3IodmFyIGg9MCxpPWUubGVuZ3RoO2g8aTtoKyspe3ZhciBqPWVbaF07aWYoail7dmFyIGs9ITE7aj1qW2FdO3doaWxlKGope2lmKGpbZF09PT1jKXtrPWVbai5zaXpzZXRdO2JyZWFrfWlmKGoubm9kZVR5cGU9PT0xKXtnfHwoaltkXT1jLGouc2l6c2V0PWgpO2lmKHR5cGVvZiBiIT0ic3RyaW5nIil7aWYoaj09PWIpe2s9ITA7YnJlYWt9fWVsc2UgaWYobS5maWx0ZXIoYixbal0pLmxlbmd0aD4wKXtrPWo7YnJlYWt9fWo9althXX1lW2hdPWt9fX1mdW5jdGlvbiB3KGEsYixjLGUsZixnKXtmb3IodmFyIGg9MCxpPWUubGVuZ3RoO2g8aTtoKyspe3ZhciBqPWVbaF07aWYoail7dmFyIGs9ITE7aj1qW2FdO3doaWxlKGope2lmKGpbZF09PT1jKXtrPWVbai5zaXpzZXRdO2JyZWFrfWoubm9kZVR5cGU9PT0xJiYhZyYmKGpbZF09YyxqLnNpenNldD1oKTtpZihqLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1iKXtrPWo7YnJlYWt9aj1qW2FdfWVbaF09a319fXZhciBhPS8oKD86XCgoPzpcKFteKCldK1wpfFteKCldKykrXCl8XFsoPzpcW1teXFtcXV0qXF18WyciXVteJyJdKlsnIl18W15cW1xdJyJdKykrXF18XFwufFteID4rfiwoXFtcXF0rKSt8Wz4rfl0pKFxzKixccyopPygoPzoufFxyfFxuKSopL2csZD0ic2l6Y2FjaGUiKyhNYXRoLnJhbmRvbSgpKyIiKS5yZXBsYWNlKCIuIiwiIiksZT0wLGc9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxoPSExLGk9ITAsaj0vXFwvZyxrPS9cclxuL2csbD0vXFcvO1swLDBdLnNvcnQoZnVuY3Rpb24oKXtpPSExO3JldHVybiAwfSk7dmFyIG09ZnVuY3Rpb24oYixkLGUsZil7ZT1lfHxbXSxkPWR8fGM7dmFyIGg9ZDtpZihkLm5vZGVUeXBlIT09MSYmZC5ub2RlVHlwZSE9PTkpcmV0dXJuW107aWYoIWJ8fHR5cGVvZiBiIT0ic3RyaW5nIilyZXR1cm4gZTt2YXIgaSxqLGssbCxuLHEscix0LHU9ITAsdj1tLmlzWE1MKGQpLHc9W10seD1iO2Rve2EuZXhlYygiIiksaT1hLmV4ZWMoeCk7aWYoaSl7eD1pWzNdLHcucHVzaChpWzFdKTtpZihpWzJdKXtsPWlbM107YnJlYWt9fX13aGlsZShpKTtpZih3Lmxlbmd0aD4xJiZwLmV4ZWMoYikpaWYody5sZW5ndGg9PT0yJiZvLnJlbGF0aXZlW3dbMF1dKWo9eSh3WzBdK3dbMV0sZCxmKTtlbHNle2o9by5yZWxhdGl2ZVt3WzBdXT9bZF06bSh3LnNoaWZ0KCksZCk7d2hpbGUody5sZW5ndGgpYj13LnNoaWZ0KCksby5yZWxhdGl2ZVtiXSYmKGIrPXcuc2hpZnQoKSksaj15KGIsaixmKX1lbHNleyFmJiZ3Lmxlbmd0aD4xJiZkLm5vZGVUeXBlPT09OSYmIXYmJm8ubWF0Y2guSUQudGVzdCh3WzBdKSYmIW8ubWF0Y2guSUQudGVzdCh3W3cubGVuZ3RoLTFdKSYmKG49bS5maW5kKHcuc2hpZnQoKSxkLHYpLGQ9bi5leHByP20uZmlsdGVyKG4uZXhwcixuLnNldClbMF06bi5zZXRbMF0pO2lmKGQpe249Zj97ZXhwcjp3LnBvcCgpLHNldDpzKGYpfTptLmZpbmQody5wb3AoKSx3Lmxlbmd0aD09PTEmJih3WzBdPT09In4ifHx3WzBdPT09IisiKSYmZC5wYXJlbnROb2RlP2QucGFyZW50Tm9kZTpkLHYpLGo9bi5leHByP20uZmlsdGVyKG4uZXhwcixuLnNldCk6bi5zZXQsdy5sZW5ndGg+MD9rPXMoaik6dT0hMTt3aGlsZSh3Lmxlbmd0aClxPXcucG9wKCkscj1xLG8ucmVsYXRpdmVbcV0/cj13LnBvcCgpOnE9IiIscj09bnVsbCYmKHI9ZCksby5yZWxhdGl2ZVtxXShrLHIsdil9ZWxzZSBrPXc9W119a3x8KGs9aiksa3x8bS5lcnJvcihxfHxiKTtpZihnLmNhbGwoayk9PT0iW29iamVjdCBBcnJheV0iKWlmKCF1KWUucHVzaC5hcHBseShlLGspO2Vsc2UgaWYoZCYmZC5ub2RlVHlwZT09PTEpZm9yKHQ9MDtrW3RdIT1udWxsO3QrKylrW3RdJiYoa1t0XT09PSEwfHxrW3RdLm5vZGVUeXBlPT09MSYmbS5jb250YWlucyhkLGtbdF0pKSYmZS5wdXNoKGpbdF0pO2Vsc2UgZm9yKHQ9MDtrW3RdIT1udWxsO3QrKylrW3RdJiZrW3RdLm5vZGVUeXBlPT09MSYmZS5wdXNoKGpbdF0pO2Vsc2UgcyhrLGUpO2wmJihtKGwsaCxlLGYpLG0udW5pcXVlU29ydChlKSk7cmV0dXJuIGV9O20udW5pcXVlU29ydD1mdW5jdGlvbihhKXtpZih1KXtoPWksYS5zb3J0KHUpO2lmKGgpZm9yKHZhciBiPTE7YjxhLmxlbmd0aDtiKyspYVtiXT09PWFbYi0xXSYmYS5zcGxpY2UoYi0tLDEpfXJldHVybiBhfSxtLm1hdGNoZXM9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbShhLG51bGwsbnVsbCxiKX0sbS5tYXRjaGVzU2VsZWN0b3I9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbShiLG51bGwsbnVsbCxbYV0pLmxlbmd0aD4wfSxtLmZpbmQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZixnLGgsaTtpZighYSlyZXR1cm5bXTtmb3IoZT0wLGY9by5vcmRlci5sZW5ndGg7ZTxmO2UrKyl7aD1vLm9yZGVyW2VdO2lmKGc9by5sZWZ0TWF0Y2hbaF0uZXhlYyhhKSl7aT1nWzFdLGcuc3BsaWNlKDEsMSk7aWYoaS5zdWJzdHIoaS5sZW5ndGgtMSkhPT0iXFwiKXtnWzFdPShnWzFdfHwiIikucmVwbGFjZShqLCIiKSxkPW8uZmluZFtoXShnLGIsYyk7aWYoZCE9bnVsbCl7YT1hLnJlcGxhY2Uoby5tYXRjaFtoXSwiIik7YnJlYWt9fX19ZHx8KGQ9dHlwZW9mIGIuZ2V0RWxlbWVudHNCeVRhZ05hbWUhPSJ1bmRlZmluZWQiP2IuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKTpbXSk7cmV0dXJue3NldDpkLGV4cHI6YX19LG0uZmlsdGVyPWZ1bmN0aW9uKGEsYyxkLGUpe3ZhciBmLGcsaCxpLGosayxsLG4scCxxPWEscj1bXSxzPWMsdD1jJiZjWzBdJiZtLmlzWE1MKGNbMF0pO3doaWxlKGEmJmMubGVuZ3RoKXtmb3IoaCBpbiBvLmZpbHRlcilpZigoZj1vLmxlZnRNYXRjaFtoXS5leGVjKGEpKSE9bnVsbCYmZlsyXSl7az1vLmZpbHRlcltoXSxsPWZbMV0sZz0hMSxmLnNwbGljZSgxLDEpO2lmKGwuc3Vic3RyKGwubGVuZ3RoLTEpPT09IlxcIiljb250aW51ZTtzPT09ciYmKHI9W10pO2lmKG8ucHJlRmlsdGVyW2hdKXtmPW8ucHJlRmlsdGVyW2hdKGYscyxkLHIsZSx0KTtpZighZilnPWk9ITA7ZWxzZSBpZihmPT09ITApY29udGludWV9aWYoZilmb3Iobj0wOyhqPXNbbl0pIT1udWxsO24rKylqJiYoaT1rKGosZixuLHMpLHA9ZV5pLGQmJmkhPW51bGw/cD9nPSEwOnNbbl09ITE6cCYmKHIucHVzaChqKSxnPSEwKSk7aWYoaSE9PWIpe2R8fChzPXIpLGE9YS5yZXBsYWNlKG8ubWF0Y2hbaF0sIiIpO2lmKCFnKXJldHVybltdO2JyZWFrfX1pZihhPT09cSlpZihnPT1udWxsKW0uZXJyb3IoYSk7ZWxzZSBicmVhaztxPWF9cmV0dXJuIHN9LG0uZXJyb3I9ZnVuY3Rpb24oYSl7dGhyb3cgbmV3IEVycm9yKCJTeW50YXggZXJyb3IsIHVucmVjb2duaXplZCBleHByZXNzaW9uOiAiK2EpfTt2YXIgbj1tLmdldFRleHQ9ZnVuY3Rpb24oYSl7dmFyIGIsYyxkPWEubm9kZVR5cGUsZT0iIjtpZihkKXtpZihkPT09MXx8ZD09PTkpe2lmKHR5cGVvZiBhLnRleHRDb250ZW50PT0ic3RyaW5nIilyZXR1cm4gYS50ZXh0Q29udGVudDtpZih0eXBlb2YgYS5pbm5lclRleHQ9PSJzdHJpbmciKXJldHVybiBhLmlubmVyVGV4dC5yZXBsYWNlKGssIiIpO2ZvcihhPWEuZmlyc3RDaGlsZDthO2E9YS5uZXh0U2libGluZyllKz1uKGEpfWVsc2UgaWYoZD09PTN8fGQ9PT00KXJldHVybiBhLm5vZGVWYWx1ZX1lbHNlIGZvcihiPTA7Yz1hW2JdO2IrKyljLm5vZGVUeXBlIT09OCYmKGUrPW4oYykpO3JldHVybiBlfSxvPW0uc2VsZWN0b3JzPXtvcmRlcjpbIklEIiwiTkFNRSIsIlRBRyJdLG1hdGNoOntJRDovIygoPzpbXHdcdTAwYzAtXHVGRkZGXC1dfFxcLikrKS8sQ0xBU1M6L1wuKCg/Oltcd1x1MDBjMC1cdUZGRkZcLV18XFwuKSspLyxOQU1FOi9cW25hbWU9WyciXSooKD86W1x3XHUwMGMwLVx1RkZGRlwtXXxcXC4pKylbJyJdKlxdLyxBVFRSOi9cW1xzKigoPzpbXHdcdTAwYzAtXHVGRkZGXC1dfFxcLikrKVxzKig/OihcUz89KVxzKig/OihbJyJdKSguKj8pXDN8KCM/KD86W1x3XHUwMGMwLVx1RkZGRlwtXXxcXC4pKil8KXwpXHMqXF0vLFRBRzovXigoPzpbXHdcdTAwYzAtXHVGRkZGXCpcLV18XFwuKSspLyxDSElMRDovOihvbmx5fG50aHxsYXN0fGZpcnN0KS1jaGlsZCg/OlwoXHMqKGV2ZW58b2RkfCg/OlsrXC1dP1xkK3woPzpbK1wtXT9cZCopP25ccyooPzpbK1wtXVxzKlxkKyk/KSlccypcKSk/LyxQT1M6LzoobnRofGVxfGd0fGx0fGZpcnN0fGxhc3R8ZXZlbnxvZGQpKD86XCgoXGQqKVwpKT8oPz1bXlwtXXwkKS8sUFNFVURPOi86KCg/Oltcd1x1MDBjMC1cdUZGRkZcLV18XFwuKSspKD86XCgoWyciXT8pKCg/OlwoW15cKV0rXCl8W15cKFwpXSopKylcMlwpKT8vfSxsZWZ0TWF0Y2g6e30sYXR0ck1hcDp7ImNsYXNzIjoiY2xhc3NOYW1lIiwiZm9yIjoiaHRtbEZvciJ9LGF0dHJIYW5kbGU6e2hyZWY6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuZ2V0QXR0cmlidXRlKCJocmVmIil9LHR5cGU6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuZ2V0QXR0cmlidXRlKCJ0eXBlIil9fSxyZWxhdGl2ZTp7IisiOmZ1bmN0aW9uKGEsYil7dmFyIGM9dHlwZW9mIGI9PSJzdHJpbmciLGQ9YyYmIWwudGVzdChiKSxlPWMmJiFkO2QmJihiPWIudG9Mb3dlckNhc2UoKSk7Zm9yKHZhciBmPTAsZz1hLmxlbmd0aCxoO2Y8ZztmKyspaWYoaD1hW2ZdKXt3aGlsZSgoaD1oLnByZXZpb3VzU2libGluZykmJmgubm9kZVR5cGUhPT0xKTthW2ZdPWV8fGgmJmgubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PWI/aHx8ITE6aD09PWJ9ZSYmbS5maWx0ZXIoYixhLCEwKX0sIj4iOmZ1bmN0aW9uKGEsYil7dmFyIGMsZD10eXBlb2YgYj09InN0cmluZyIsZT0wLGY9YS5sZW5ndGg7aWYoZCYmIWwudGVzdChiKSl7Yj1iLnRvTG93ZXJDYXNlKCk7Zm9yKDtlPGY7ZSsrKXtjPWFbZV07aWYoYyl7dmFyIGc9Yy5wYXJlbnROb2RlO2FbZV09Zy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09Yj9nOiExfX19ZWxzZXtmb3IoO2U8ZjtlKyspYz1hW2VdLGMmJihhW2VdPWQ/Yy5wYXJlbnROb2RlOmMucGFyZW50Tm9kZT09PWIpO2QmJm0uZmlsdGVyKGIsYSwhMCl9fSwiIjpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZj1lKyssZz14O3R5cGVvZiBiPT0ic3RyaW5nIiYmIWwudGVzdChiKSYmKGI9Yi50b0xvd2VyQ2FzZSgpLGQ9YixnPXcpLGcoInBhcmVudE5vZGUiLGIsZixhLGQsYyl9LCJ+IjpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZj1lKyssZz14O3R5cGVvZiBiPT0ic3RyaW5nIiYmIWwudGVzdChiKSYmKGI9Yi50b0xvd2VyQ2FzZSgpLGQ9YixnPXcpLGcoInByZXZpb3VzU2libGluZyIsYixmLGEsZCxjKX19LGZpbmQ6e0lEOmZ1bmN0aW9uKGEsYixjKXtpZih0eXBlb2YgYi5nZXRFbGVtZW50QnlJZCE9InVuZGVmaW5lZCImJiFjKXt2YXIgZD1iLmdldEVsZW1lbnRCeUlkKGFbMV0pO3JldHVybiBkJiZkLnBhcmVudE5vZGU/W2RdOltdfX0sTkFNRTpmdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBiLmdldEVsZW1lbnRzQnlOYW1lIT0idW5kZWZpbmVkIil7dmFyIGM9W10sZD1iLmdldEVsZW1lbnRzQnlOYW1lKGFbMV0pO2Zvcih2YXIgZT0wLGY9ZC5sZW5ndGg7ZTxmO2UrKylkW2VdLmdldEF0dHJpYnV0ZSgibmFtZSIpPT09YVsxXSYmYy5wdXNoKGRbZV0pO3JldHVybiBjLmxlbmd0aD09PTA/bnVsbDpjfX0sVEFHOmZ1bmN0aW9uKGEsYil7aWYodHlwZW9mIGIuZ2V0RWxlbWVudHNCeVRhZ05hbWUhPSJ1bmRlZmluZWQiKXJldHVybiBiLmdldEVsZW1lbnRzQnlUYWdOYW1lKGFbMV0pfX0scHJlRmlsdGVyOntDTEFTUzpmdW5jdGlvbihhLGIsYyxkLGUsZil7YT0iICIrYVsxXS5yZXBsYWNlKGosIiIpKyIgIjtpZihmKXJldHVybiBhO2Zvcih2YXIgZz0wLGg7KGg9YltnXSkhPW51bGw7ZysrKWgmJihlXihoLmNsYXNzTmFtZSYmKCIgIitoLmNsYXNzTmFtZSsiICIpLnJlcGxhY2UoL1tcdFxuXHJdL2csIiAiKS5pbmRleE9mKGEpPj0wKT9jfHxkLnB1c2goaCk6YyYmKGJbZ109ITEpKTtyZXR1cm4hMX0sSUQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGFbMV0ucmVwbGFjZShqLCIiKX0sVEFHOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGFbMV0ucmVwbGFjZShqLCIiKS50b0xvd2VyQ2FzZSgpfSxDSElMRDpmdW5jdGlvbihhKXtpZihhWzFdPT09Im50aCIpe2FbMl18fG0uZXJyb3IoYVswXSksYVsyXT1hWzJdLnJlcGxhY2UoL15cK3xccyovZywiIik7dmFyIGI9LygtPykoXGQqKSg/Om4oWytcLV0/XGQqKSk/Ly5leGVjKGFbMl09PT0iZXZlbiImJiIybiJ8fGFbMl09PT0ib2RkIiYmIjJuKzEifHwhL1xELy50ZXN0KGFbMl0pJiYiMG4rIithWzJdfHxhWzJdKTthWzJdPWJbMV0rKGJbMl18fDEpLTAsYVszXT1iWzNdLTB9ZWxzZSBhWzJdJiZtLmVycm9yKGFbMF0pO2FbMF09ZSsrO3JldHVybiBhfSxBVFRSOmZ1bmN0aW9uKGEsYixjLGQsZSxmKXt2YXIgZz1hWzFdPWFbMV0ucmVwbGFjZShqLCIiKTshZiYmby5hdHRyTWFwW2ddJiYoYVsxXT1vLmF0dHJNYXBbZ10pLGFbNF09KGFbNF18fGFbNV18fCIiKS5yZXBsYWNlKGosIiIpLGFbMl09PT0ifj0iJiYoYVs0XT0iICIrYVs0XSsiICIpO3JldHVybiBhfSxQU0VVRE86ZnVuY3Rpb24oYixjLGQsZSxmKXtpZihiWzFdPT09Im5vdCIpaWYoKGEuZXhlYyhiWzNdKXx8IiIpLmxlbmd0aD4xfHwvXlx3Ly50ZXN0KGJbM10pKWJbM109bShiWzNdLG51bGwsbnVsbCxjKTtlbHNle3ZhciBnPW0uZmlsdGVyKGJbM10sYyxkLCEwXmYpO2R8fGUucHVzaC5hcHBseShlLGcpO3JldHVybiExfWVsc2UgaWYoby5tYXRjaC5QT1MudGVzdChiWzBdKXx8by5tYXRjaC5DSElMRC50ZXN0KGJbMF0pKXJldHVybiEwO3JldHVybiBifSxQT1M6ZnVuY3Rpb24oYSl7YS51bnNoaWZ0KCEwKTtyZXR1cm4gYX19LGZpbHRlcnM6e2VuYWJsZWQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuZGlzYWJsZWQ9PT0hMSYmYS50eXBlIT09ImhpZGRlbiJ9LGRpc2FibGVkOmZ1bmN0aW9uKGEpe3JldHVybiBhLmRpc2FibGVkPT09ITB9LGNoZWNrZWQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuY2hlY2tlZD09PSEwfSxzZWxlY3RlZDpmdW5jdGlvbihhKXthLnBhcmVudE5vZGUmJmEucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4O3JldHVybiBhLnNlbGVjdGVkPT09ITB9LHBhcmVudDpmdW5jdGlvbihhKXtyZXR1cm4hIWEuZmlyc3RDaGlsZH0sZW1wdHk6ZnVuY3Rpb24oYSl7cmV0dXJuIWEuZmlyc3RDaGlsZH0saGFzOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4hIW0oY1szXSxhKS5sZW5ndGh9LGhlYWRlcjpmdW5jdGlvbihhKXtyZXR1cm4vaFxkL2kudGVzdChhLm5vZGVOYW1lKX0sdGV4dDpmdW5jdGlvbihhKXt2YXIgYj1hLmdldEF0dHJpYnV0ZSgidHlwZSIpLGM9YS50eXBlO3JldHVybiBhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT0iaW5wdXQiJiYidGV4dCI9PT1jJiYoYj09PWN8fGI9PT1udWxsKX0scmFkaW86ZnVuY3Rpb24oYSl7cmV0dXJuIGEubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PSJpbnB1dCImJiJyYWRpbyI9PT1hLnR5cGV9LGNoZWNrYm94OmZ1bmN0aW9uKGEpe3JldHVybiBhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT0iaW5wdXQiJiYiY2hlY2tib3giPT09YS50eXBlfSxmaWxlOmZ1bmN0aW9uKGEpe3JldHVybiBhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT0iaW5wdXQiJiYiZmlsZSI9PT1hLnR5cGV9LHBhc3N3b3JkOmZ1bmN0aW9uKGEpe3JldHVybiBhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT0iaW5wdXQiJiYicGFzc3dvcmQiPT09YS50eXBlfSxzdWJtaXQ6ZnVuY3Rpb24oYSl7dmFyIGI9YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybihiPT09ImlucHV0Inx8Yj09PSJidXR0b24iKSYmInN1Ym1pdCI9PT1hLnR5cGV9LGltYWdlOmZ1bmN0aW9uKGEpe3JldHVybiBhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT0iaW5wdXQiJiYiaW1hZ2UiPT09YS50eXBlfSxyZXNldDpmdW5jdGlvbihhKXt2YXIgYj1hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuKGI9PT0iaW5wdXQifHxiPT09ImJ1dHRvbiIpJiYicmVzZXQiPT09YS50eXBlfSxidXR0b246ZnVuY3Rpb24oYSl7dmFyIGI9YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiBiPT09ImlucHV0IiYmImJ1dHRvbiI9PT1hLnR5cGV8fGI9PT0iYnV0dG9uIn0saW5wdXQ6ZnVuY3Rpb24oYSl7cmV0dXJuL2lucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24vaS50ZXN0KGEubm9kZU5hbWUpfSxmb2N1czpmdW5jdGlvbihhKXtyZXR1cm4gYT09PWEub3duZXJEb2N1bWVudC5hY3RpdmVFbGVtZW50fX0sc2V0RmlsdGVyczp7Zmlyc3Q6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj09PTB9LGxhc3Q6ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIGI9PT1kLmxlbmd0aC0xfSxldmVuOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGIlMj09PTB9LG9kZDpmdW5jdGlvbihhLGIpe3JldHVybiBiJTI9PT0xfSxsdDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGI8Y1szXS0wfSxndDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGI+Y1szXS0wfSxudGg6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBjWzNdLTA9PT1ifSxlcTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGNbM10tMD09PWJ9fSxmaWx0ZXI6e1BTRVVETzpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1iWzFdLGY9by5maWx0ZXJzW2VdO2lmKGYpcmV0dXJuIGYoYSxjLGIsZCk7aWYoZT09PSJjb250YWlucyIpcmV0dXJuKGEudGV4dENvbnRlbnR8fGEuaW5uZXJUZXh0fHxuKFthXSl8fCIiKS5pbmRleE9mKGJbM10pPj0wO2lmKGU9PT0ibm90Iil7dmFyIGc9YlszXTtmb3IodmFyIGg9MCxpPWcubGVuZ3RoO2g8aTtoKyspaWYoZ1toXT09PWEpcmV0dXJuITE7cmV0dXJuITB9bS5lcnJvcihlKX0sQ0hJTEQ6ZnVuY3Rpb24oYSxiKXt2YXIgYyxlLGYsZyxoLGksaixrPWJbMV0sbD1hO3N3aXRjaChrKXtjYXNlIm9ubHkiOmNhc2UiZmlyc3QiOndoaWxlKGw9bC5wcmV2aW91c1NpYmxpbmcpaWYobC5ub2RlVHlwZT09PTEpcmV0dXJuITE7aWYoaz09PSJmaXJzdCIpcmV0dXJuITA7bD1hO2Nhc2UibGFzdCI6d2hpbGUobD1sLm5leHRTaWJsaW5nKWlmKGwubm9kZVR5cGU9PT0xKXJldHVybiExO3JldHVybiEwO2Nhc2UibnRoIjpjPWJbMl0sZT1iWzNdO2lmKGM9PT0xJiZlPT09MClyZXR1cm4hMDtmPWJbMF0sZz1hLnBhcmVudE5vZGU7aWYoZyYmKGdbZF0hPT1mfHwhYS5ub2RlSW5kZXgpKXtpPTA7Zm9yKGw9Zy5maXJzdENoaWxkO2w7bD1sLm5leHRTaWJsaW5nKWwubm9kZVR5cGU9PT0xJiYobC5ub2RlSW5kZXg9KytpKTtnW2RdPWZ9aj1hLm5vZGVJbmRleC1lO3JldHVybiBjPT09MD9qPT09MDpqJWM9PT0wJiZqL2M+PTB9fSxJRDpmdW5jdGlvbihhLGIpe3JldHVybiBhLm5vZGVUeXBlPT09MSYmYS5nZXRBdHRyaWJ1dGUoImlkIik9PT1ifSxUQUc6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj09PSIqIiYmYS5ub2RlVHlwZT09PTF8fCEhYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09Yn0sQ0xBU1M6ZnVuY3Rpb24oYSxiKXtyZXR1cm4oIiAiKyhhLmNsYXNzTmFtZXx8YS5nZXRBdHRyaWJ1dGUoImNsYXNzIikpKyIgIikuaW5kZXhPZihiKT4tMX0sQVRUUjpmdW5jdGlvbihhLGIpe3ZhciBjPWJbMV0sZD1tLmF0dHI/bS5hdHRyKGEsYyk6by5hdHRySGFuZGxlW2NdP28uYXR0ckhhbmRsZVtjXShhKTphW2NdIT1udWxsP2FbY106YS5nZXRBdHRyaWJ1dGUoYyksZT1kKyIiLGY9YlsyXSxnPWJbNF07cmV0dXJuIGQ9PW51bGw/Zj09PSIhPSI6IWYmJm0uYXR0cj9kIT1udWxsOmY9PT0iPSI/ZT09PWc6Zj09PSIqPSI/ZS5pbmRleE9mKGcpPj0wOmY9PT0ifj0iPygiICIrZSsiICIpLmluZGV4T2YoZyk+PTA6Zz9mPT09IiE9Ij9lIT09ZzpmPT09Il49Ij9lLmluZGV4T2YoZyk9PT0wOmY9PT0iJD0iP2Uuc3Vic3RyKGUubGVuZ3RoLWcubGVuZ3RoKT09PWc6Zj09PSJ8PSI/ZT09PWd8fGUuc3Vic3RyKDAsZy5sZW5ndGgrMSk9PT1nKyItIjohMTplJiZkIT09ITF9LFBPUzpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1iWzJdLGY9by5zZXRGaWx0ZXJzW2VdO2lmKGYpcmV0dXJuIGYoYSxjLGIsZCl9fX0scD1vLm1hdGNoLlBPUyxxPWZ1bmN0aW9uKGEsYil7cmV0dXJuIlxcIisoYi0wKzEpfTtmb3IodmFyIHIgaW4gby5tYXRjaClvLm1hdGNoW3JdPW5ldyBSZWdFeHAoby5tYXRjaFtyXS5zb3VyY2UrLyg/IVteXFtdKlxdKSg/IVteXChdKlwpKS8uc291cmNlKSxvLmxlZnRNYXRjaFtyXT1uZXcgUmVnRXhwKC8oXig/Oi58XHJ8XG4pKj8pLy5zb3VyY2Urby5tYXRjaFtyXS5zb3VyY2UucmVwbGFjZSgvXFwoXGQrKS9nLHEpKTt2YXIgcz1mdW5jdGlvbihhLGIpe2E9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYSwwKTtpZihiKXtiLnB1c2guYXBwbHkoYixhKTtyZXR1cm4gYn1yZXR1cm4gYX07dHJ5e0FycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGMuZG9jdW1lbnRFbGVtZW50LmNoaWxkTm9kZXMsMClbMF0ubm9kZVR5cGV9Y2F0Y2godCl7cz1mdW5jdGlvbihhLGIpe3ZhciBjPTAsZD1ifHxbXTtpZihnLmNhbGwoYSk9PT0iW29iamVjdCBBcnJheV0iKUFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KGQsYSk7ZWxzZSBpZih0eXBlb2YgYS5sZW5ndGg9PSJudW1iZXIiKWZvcih2YXIgZT1hLmxlbmd0aDtjPGU7YysrKWQucHVzaChhW2NdKTtlbHNlIGZvcig7YVtjXTtjKyspZC5wdXNoKGFbY10pO3JldHVybiBkfX12YXIgdSx2O2MuZG9jdW1lbnRFbGVtZW50LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uP3U9ZnVuY3Rpb24oYSxiKXtpZihhPT09Yil7aD0hMDtyZXR1cm4gMH1pZighYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbnx8IWIuY29tcGFyZURvY3VtZW50UG9zaXRpb24pcmV0dXJuIGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24/LTE6MTtyZXR1cm4gYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKSY0Py0xOjF9Oih1PWZ1bmN0aW9uKGEsYil7aWYoYT09PWIpe2g9ITA7cmV0dXJuIDB9aWYoYS5zb3VyY2VJbmRleCYmYi5zb3VyY2VJbmRleClyZXR1cm4gYS5zb3VyY2VJbmRleC1iLnNvdXJjZUluZGV4O3ZhciBjLGQsZT1bXSxmPVtdLGc9YS5wYXJlbnROb2RlLGk9Yi5wYXJlbnROb2RlLGo9ZztpZihnPT09aSlyZXR1cm4gdihhLGIpO2lmKCFnKXJldHVybi0xO2lmKCFpKXJldHVybiAxO3doaWxlKGopZS51bnNoaWZ0KGopLGo9ai5wYXJlbnROb2RlO2o9aTt3aGlsZShqKWYudW5zaGlmdChqKSxqPWoucGFyZW50Tm9kZTtjPWUubGVuZ3RoLGQ9Zi5sZW5ndGg7Zm9yKHZhciBrPTA7azxjJiZrPGQ7aysrKWlmKGVba10hPT1mW2tdKXJldHVybiB2KGVba10sZltrXSk7cmV0dXJuIGs9PT1jP3YoYSxmW2tdLC0xKTp2KGVba10sYiwxKX0sdj1mdW5jdGlvbihhLGIsYyl7aWYoYT09PWIpcmV0dXJuIGM7dmFyIGQ9YS5uZXh0U2libGluZzt3aGlsZShkKXtpZihkPT09YilyZXR1cm4tMTtkPWQubmV4dFNpYmxpbmd9cmV0dXJuIDF9KSxmdW5jdGlvbigpe3ZhciBhPWMuY3JlYXRlRWxlbWVudCgiZGl2IiksZD0ic2NyaXB0IisobmV3IERhdGUpLmdldFRpbWUoKSxlPWMuZG9jdW1lbnRFbGVtZW50O2EuaW5uZXJIVE1MPSI8YSBuYW1lPSciK2QrIicvPiIsZS5pbnNlcnRCZWZvcmUoYSxlLmZpcnN0Q2hpbGQpLGMuZ2V0RWxlbWVudEJ5SWQoZCkmJihvLmZpbmQuSUQ9ZnVuY3Rpb24oYSxjLGQpe2lmKHR5cGVvZiBjLmdldEVsZW1lbnRCeUlkIT0idW5kZWZpbmVkIiYmIWQpe3ZhciBlPWMuZ2V0RWxlbWVudEJ5SWQoYVsxXSk7cmV0dXJuIGU/ZS5pZD09PWFbMV18fHR5cGVvZiBlLmdldEF0dHJpYnV0ZU5vZGUhPSJ1bmRlZmluZWQiJiZlLmdldEF0dHJpYnV0ZU5vZGUoImlkIikubm9kZVZhbHVlPT09YVsxXT9bZV06YjpbXX19LG8uZmlsdGVyLklEPWZ1bmN0aW9uKGEsYil7dmFyIGM9dHlwZW9mIGEuZ2V0QXR0cmlidXRlTm9kZSE9InVuZGVmaW5lZCImJmEuZ2V0QXR0cmlidXRlTm9kZSgiaWQiKTtyZXR1cm4gYS5ub2RlVHlwZT09PTEmJmMmJmMubm9kZVZhbHVlPT09Yn0pLGUucmVtb3ZlQ2hpbGQoYSksZT1hPW51bGx9KCksZnVuY3Rpb24oKXt2YXIgYT1jLmNyZWF0ZUVsZW1lbnQoImRpdiIpO2EuYXBwZW5kQ2hpbGQoYy5jcmVhdGVDb21tZW50KCIiKSksYS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLmxlbmd0aD4wJiYoby5maW5kLlRBRz1mdW5jdGlvbihhLGIpe3ZhciBjPWIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYVsxXSk7aWYoYVsxXT09PSIqIil7dmFyIGQ9W107Zm9yKHZhciBlPTA7Y1tlXTtlKyspY1tlXS5ub2RlVHlwZT09PTEmJmQucHVzaChjW2VdKTtjPWR9cmV0dXJuIGN9KSxhLmlubmVySFRNTD0iPGEgaHJlZj0nIyc+PC9hPiIsYS5maXJzdENoaWxkJiZ0eXBlb2YgYS5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSE9InVuZGVmaW5lZCImJmEuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoImhyZWYiKSE9PSIjIiYmKG8uYXR0ckhhbmRsZS5ocmVmPWZ1bmN0aW9uKGEpe3JldHVybiBhLmdldEF0dHJpYnV0ZSgiaHJlZiIsMil9KSxhPW51bGx9KCksYy5xdWVyeVNlbGVjdG9yQWxsJiZmdW5jdGlvbigpe3ZhciBhPW0sYj1jLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGQ9Il9fc2l6emxlX18iO2IuaW5uZXJIVE1MPSI8cCBjbGFzcz0nVEVTVCc+PC9wPiI7aWYoIWIucXVlcnlTZWxlY3RvckFsbHx8Yi5xdWVyeVNlbGVjdG9yQWxsKCIuVEVTVCIpLmxlbmd0aCE9PTApe209ZnVuY3Rpb24oYixlLGYsZyl7ZT1lfHxjO2lmKCFnJiYhbS5pc1hNTChlKSl7dmFyIGg9L14oXHcrJCl8XlwuKFtcd1wtXSskKXxeIyhbXHdcLV0rJCkvLmV4ZWMoYik7aWYoaCYmKGUubm9kZVR5cGU9PT0xfHxlLm5vZGVUeXBlPT09OSkpe2lmKGhbMV0pcmV0dXJuIHMoZS5nZXRFbGVtZW50c0J5VGFnTmFtZShiKSxmKTtpZihoWzJdJiZvLmZpbmQuQ0xBU1MmJmUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSlyZXR1cm4gcyhlLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoaFsyXSksZil9aWYoZS5ub2RlVHlwZT09PTkpe2lmKGI9PT0iYm9keSImJmUuYm9keSlyZXR1cm4gcyhbZS5ib2R5XSxmKTtpZihoJiZoWzNdKXt2YXIgaT1lLmdldEVsZW1lbnRCeUlkKGhbM10pO2lmKCFpfHwhaS5wYXJlbnROb2RlKXJldHVybiBzKFtdLGYpO2lmKGkuaWQ9PT1oWzNdKXJldHVybiBzKFtpXSxmKX10cnl7cmV0dXJuIHMoZS5xdWVyeVNlbGVjdG9yQWxsKGIpLGYpfWNhdGNoKGope319ZWxzZSBpZihlLm5vZGVUeXBlPT09MSYmZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpIT09Im9iamVjdCIpe3ZhciBrPWUsbD1lLmdldEF0dHJpYnV0ZSgiaWQiKSxuPWx8fGQscD1lLnBhcmVudE5vZGUscT0vXlxzKlsrfl0vLnRlc3QoYik7bD9uPW4ucmVwbGFjZSgvJy9nLCJcXCQmIik6ZS5zZXRBdHRyaWJ1dGUoImlkIixuKSxxJiZwJiYoZT1lLnBhcmVudE5vZGUpO3RyeXtpZighcXx8cClyZXR1cm4gcyhlLnF1ZXJ5U2VsZWN0b3JBbGwoIltpZD0nIituKyInXSAiK2IpLGYpfWNhdGNoKHIpe31maW5hbGx5e2x8fGsucmVtb3ZlQXR0cmlidXRlKCJpZCIpfX19cmV0dXJuIGEoYixlLGYsZyl9O2Zvcih2YXIgZSBpbiBhKW1bZV09YVtlXTtiPW51bGx9fSgpLGZ1bmN0aW9uKCl7dmFyIGE9Yy5kb2N1bWVudEVsZW1lbnQsYj1hLm1hdGNoZXNTZWxlY3Rvcnx8YS5tb3pNYXRjaGVzU2VsZWN0b3J8fGEud2Via2l0TWF0Y2hlc1NlbGVjdG9yfHxhLm1zTWF0Y2hlc1NlbGVjdG9yO2lmKGIpe3ZhciBkPSFiLmNhbGwoYy5jcmVhdGVFbGVtZW50KCJkaXYiKSwiZGl2IiksZT0hMTt0cnl7Yi5jYWxsKGMuZG9jdW1lbnRFbGVtZW50LCJbdGVzdCE9JyddOnNpenpsZSIpfWNhdGNoKGYpe2U9ITB9bS5tYXRjaGVzU2VsZWN0b3I9ZnVuY3Rpb24oYSxjKXtjPWMucmVwbGFjZSgvXD1ccyooW14nIlxdXSopXHMqXF0vZywiPSckMSddIik7aWYoIW0uaXNYTUwoYSkpdHJ5e2lmKGV8fCFvLm1hdGNoLlBTRVVETy50ZXN0KGMpJiYhLyE9Ly50ZXN0KGMpKXt2YXIgZj1iLmNhbGwoYSxjKTtpZihmfHwhZHx8YS5kb2N1bWVudCYmYS5kb2N1bWVudC5ub2RlVHlwZSE9PTExKXJldHVybiBmfX1jYXRjaChnKXt9cmV0dXJuIG0oYyxudWxsLG51bGwsW2FdKS5sZW5ndGg+MH19fSgpLGZ1bmN0aW9uKCl7dmFyIGE9Yy5jcmVhdGVFbGVtZW50KCJkaXYiKTthLmlubmVySFRNTD0iPGRpdiBjbGFzcz0ndGVzdCBlJz48L2Rpdj48ZGl2IGNsYXNzPSd0ZXN0Jz48L2Rpdj4iO2lmKCEhYS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lJiZhLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImUiKS5sZW5ndGghPT0wKXthLmxhc3RDaGlsZC5jbGFzc05hbWU9ImUiO2lmKGEuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiZSIpLmxlbmd0aD09PTEpcmV0dXJuO28ub3JkZXIuc3BsaWNlKDEsMCwiQ0xBU1MiKSxvLmZpbmQuQ0xBU1M9ZnVuY3Rpb24oYSxiLGMpe2lmKHR5cGVvZiBiLmdldEVsZW1lbnRzQnlDbGFzc05hbWUhPSJ1bmRlZmluZWQiJiYhYylyZXR1cm4gYi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGFbMV0pfSxhPW51bGx9fSgpLGMuZG9jdW1lbnRFbGVtZW50LmNvbnRhaW5zP20uY29udGFpbnM9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYSE9PWImJihhLmNvbnRhaW5zP2EuY29udGFpbnMoYik6ITApfTpjLmRvY3VtZW50RWxlbWVudC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbj9tLmNvbnRhaW5zPWZ1bmN0aW9uKGEsYil7cmV0dXJuISEoYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKSYxNil9Om0uY29udGFpbnM9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sbS5pc1hNTD1mdW5jdGlvbihhKXt2YXIgYj0oYT9hLm93bmVyRG9jdW1lbnR8fGE6MCkuZG9jdW1lbnRFbGVtZW50O3JldHVybiBiP2Iubm9kZU5hbWUhPT0iSFRNTCI6ITF9O3ZhciB5PWZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlPVtdLGY9IiIsZz1iLm5vZGVUeXBlP1tiXTpiO3doaWxlKGQ9by5tYXRjaC5QU0VVRE8uZXhlYyhhKSlmKz1kWzBdLGE9YS5yZXBsYWNlKG8ubWF0Y2guUFNFVURPLCIiKTthPW8ucmVsYXRpdmVbYV0/YSsiKiI6YTtmb3IodmFyIGg9MCxpPWcubGVuZ3RoO2g8aTtoKyspbShhLGdbaF0sZSxjKTtyZXR1cm4gbS5maWx0ZXIoZixlKX07bS5hdHRyPWYuYXR0cixtLnNlbGVjdG9ycy5hdHRyTWFwPXt9LGYuZmluZD1tLGYuZXhwcj1tLnNlbGVjdG9ycyxmLmV4cHJbIjoiXT1mLmV4cHIuZmlsdGVycyxmLnVuaXF1ZT1tLnVuaXF1ZVNvcnQsZi50ZXh0PW0uZ2V0VGV4dCxmLmlzWE1MRG9jPW0uaXNYTUwsZi5jb250YWlucz1tLmNvbnRhaW5zfSgpO3ZhciBMPS9VbnRpbCQvLE09L14oPzpwYXJlbnRzfHByZXZVbnRpbHxwcmV2QWxsKS8sTj0vLC8sTz0vXi5bXjojXFtcLixdKiQvLFA9QXJyYXkucHJvdG90eXBlLnNsaWNlLFE9Zi5leHByLm1hdGNoLlBPUyxSPXtjaGlsZHJlbjohMCxjb250ZW50czohMCxuZXh0OiEwLHByZXY6ITB9O2YuZm4uZXh0ZW5kKHtmaW5kOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYyxkO2lmKHR5cGVvZiBhIT0ic3RyaW5nIilyZXR1cm4gZihhKS5maWx0ZXIoZnVuY3Rpb24oKXtmb3IoYz0wLGQ9Yi5sZW5ndGg7YzxkO2MrKylpZihmLmNvbnRhaW5zKGJbY10sdGhpcykpcmV0dXJuITB9KTt2YXIgZT10aGlzLnB1c2hTdGFjaygiIiwiZmluZCIsYSksZyxoLGk7Zm9yKGM9MCxkPXRoaXMubGVuZ3RoO2M8ZDtjKyspe2c9ZS5sZW5ndGgsZi5maW5kKGEsdGhpc1tjXSxlKTtpZihjPjApZm9yKGg9ZztoPGUubGVuZ3RoO2grKylmb3IoaT0wO2k8ZztpKyspaWYoZVtpXT09PWVbaF0pe2Uuc3BsaWNlKGgtLSwxKTticmVha319cmV0dXJuIGV9LGhhczpmdW5jdGlvbihhKXt2YXIgYj1mKGEpO3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbigpe2Zvcih2YXIgYT0wLGM9Yi5sZW5ndGg7YTxjO2ErKylpZihmLmNvbnRhaW5zKHRoaXMsYlthXSkpcmV0dXJuITB9KX0sbm90OmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnB1c2hTdGFjayhUKHRoaXMsYSwhMSksIm5vdCIsYSl9LGZpbHRlcjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soVCh0aGlzLGEsITApLCJmaWx0ZXIiLGEpfSxpczpmdW5jdGlvbihhKXtyZXR1cm4hIWEmJih0eXBlb2YgYT09InN0cmluZyI/US50ZXN0KGEpP2YoYSx0aGlzLmNvbnRleHQpLmluZGV4KHRoaXNbMF0pPj0wOmYuZmlsdGVyKGEsdGhpcykubGVuZ3RoPjA6dGhpcy5maWx0ZXIoYSkubGVuZ3RoPjApfSxjbG9zZXN0OmZ1bmN0aW9uKGEsYil7dmFyIGM9W10sZCxlLGc9dGhpc1swXTtpZihmLmlzQXJyYXkoYSkpe3ZhciBoPTE7d2hpbGUoZyYmZy5vd25lckRvY3VtZW50JiZnIT09Yil7Zm9yKGQ9MDtkPGEubGVuZ3RoO2QrKylmKGcpLmlzKGFbZF0pJiZjLnB1c2goe3NlbGVjdG9yOmFbZF0sZWxlbTpnLGxldmVsOmh9KTtnPWcucGFyZW50Tm9kZSxoKyt9cmV0dXJuIGN9dmFyIGk9US50ZXN0KGEpfHx0eXBlb2YgYSE9InN0cmluZyI/ZihhLGJ8fHRoaXMuY29udGV4dCk6MDtmb3IoZD0wLGU9dGhpcy5sZW5ndGg7ZDxlO2QrKyl7Zz10aGlzW2RdO3doaWxlKGcpe2lmKGk/aS5pbmRleChnKT4tMTpmLmZpbmQubWF0Y2hlc1NlbGVjdG9yKGcsYSkpe2MucHVzaChnKTticmVha31nPWcucGFyZW50Tm9kZTtpZighZ3x8IWcub3duZXJEb2N1bWVudHx8Zz09PWJ8fGcubm9kZVR5cGU9PT0xMSlicmVha319Yz1jLmxlbmd0aD4xP2YudW5pcXVlKGMpOmM7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGMsImNsb3Nlc3QiLGEpfSxpbmRleDpmdW5jdGlvbihhKXtpZighYSlyZXR1cm4gdGhpc1swXSYmdGhpc1swXS5wYXJlbnROb2RlP3RoaXMucHJldkFsbCgpLmxlbmd0aDotMTtpZih0eXBlb2YgYT09InN0cmluZyIpcmV0dXJuIGYuaW5BcnJheSh0aGlzWzBdLGYoYSkpO3JldHVybiBmLmluQXJyYXkoYS5qcXVlcnk/YVswXTphLHRoaXMpfSxhZGQ6ZnVuY3Rpb24oYSxiKXt2YXIgYz10eXBlb2YgYT09InN0cmluZyI/ZihhLGIpOmYubWFrZUFycmF5KGEmJmEubm9kZVR5cGU/W2FdOmEpLGQ9Zi5tZXJnZSh0aGlzLmdldCgpLGMpO3JldHVybiB0aGlzLnB1c2hTdGFjayhTKGNbMF0pfHxTKGRbMF0pP2Q6Zi51bmlxdWUoZCkpfSxhbmRTZWxmOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYWRkKHRoaXMucHJldk9iamVjdCl9fSksZi5lYWNoKHtwYXJlbnQ6ZnVuY3Rpb24oYSl7dmFyIGI9YS5wYXJlbnROb2RlO3JldHVybiBiJiZiLm5vZGVUeXBlIT09MTE/YjpudWxsfSxwYXJlbnRzOmZ1bmN0aW9uKGEpe3JldHVybiBmLmRpcihhLCJwYXJlbnROb2RlIil9LHBhcmVudHNVbnRpbDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGYuZGlyKGEsInBhcmVudE5vZGUiLGMpfSxuZXh0OmZ1bmN0aW9uKGEpe3JldHVybiBmLm50aChhLDIsIm5leHRTaWJsaW5nIil9LHByZXY6ZnVuY3Rpb24oYSl7cmV0dXJuIGYubnRoKGEsMiwicHJldmlvdXNTaWJsaW5nIil9LG5leHRBbGw6ZnVuY3Rpb24oYSl7cmV0dXJuIGYuZGlyKGEsIm5leHRTaWJsaW5nIil9LHByZXZBbGw6ZnVuY3Rpb24oYSl7cmV0dXJuIGYuZGlyKGEsInByZXZpb3VzU2libGluZyIpfSxuZXh0VW50aWw6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBmLmRpcihhLCJuZXh0U2libGluZyIsYyl9LHByZXZVbnRpbDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGYuZGlyKGEsInByZXZpb3VzU2libGluZyIsYyl9LHNpYmxpbmdzOmZ1bmN0aW9uKGEpe3JldHVybiBmLnNpYmxpbmcoYS5wYXJlbnROb2RlLmZpcnN0Q2hpbGQsYSl9LGNoaWxkcmVuOmZ1bmN0aW9uKGEpe3JldHVybiBmLnNpYmxpbmcoYS5maXJzdENoaWxkKX0sY29udGVudHM6ZnVuY3Rpb24oYSl7cmV0dXJuIGYubm9kZU5hbWUoYSwiaWZyYW1lIik/YS5jb250ZW50RG9jdW1lbnR8fGEuY29udGVudFdpbmRvdy5kb2N1bWVudDpmLm1ha2VBcnJheShhLmNoaWxkTm9kZXMpfX0sZnVuY3Rpb24oYSxiKXtmLmZuW2FdPWZ1bmN0aW9uKGMsZCl7dmFyIGU9Zi5tYXAodGhpcyxiLGMpO0wudGVzdChhKXx8KGQ9YyksZCYmdHlwZW9mIGQ9PSJzdHJpbmciJiYoZT1mLmZpbHRlcihkLGUpKSxlPXRoaXMubGVuZ3RoPjEmJiFSW2FdP2YudW5pcXVlKGUpOmUsKHRoaXMubGVuZ3RoPjF8fE4udGVzdChkKSkmJk0udGVzdChhKSYmKGU9ZS5yZXZlcnNlKCkpO3JldHVybiB0aGlzLnB1c2hTdGFjayhlLGEsUC5jYWxsKGFyZ3VtZW50cykuam9pbigiLCIpKX19KSxmLmV4dGVuZCh7ZmlsdGVyOmZ1bmN0aW9uKGEsYixjKXtjJiYoYT0iOm5vdCgiK2ErIikiKTtyZXR1cm4gYi5sZW5ndGg9PT0xP2YuZmluZC5tYXRjaGVzU2VsZWN0b3IoYlswXSxhKT9bYlswXV06W106Zi5maW5kLm1hdGNoZXMoYSxiKX0sZGlyOmZ1bmN0aW9uKGEsYyxkKXt2YXIgZT1bXSxnPWFbY107d2hpbGUoZyYmZy5ub2RlVHlwZSE9PTkmJihkPT09Ynx8Zy5ub2RlVHlwZSE9PTF8fCFmKGcpLmlzKGQpKSlnLm5vZGVUeXBlPT09MSYmZS5wdXNoKGcpLGc9Z1tjXTtyZXR1cm4gZX0sbnRoOmZ1bmN0aW9uKGEsYixjLGQpe2I9Ynx8MTt2YXIgZT0wO2Zvcig7YTthPWFbY10paWYoYS5ub2RlVHlwZT09PTEmJisrZT09PWIpYnJlYWs7cmV0dXJuIGF9LHNpYmxpbmc6ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXTtmb3IoO2E7YT1hLm5leHRTaWJsaW5nKWEubm9kZVR5cGU9PT0xJiZhIT09YiYmYy5wdXNoKGEpO3JldHVybiBjfX0pO3ZhciBWPSJhYmJyfGFydGljbGV8YXNpZGV8YXVkaW98Y2FudmFzfGRhdGFsaXN0fGRldGFpbHN8ZmlnY2FwdGlvbnxmaWd1cmV8Zm9vdGVyfGhlYWRlcnxoZ3JvdXB8bWFya3xtZXRlcnxuYXZ8b3V0cHV0fHByb2dyZXNzfHNlY3Rpb258c3VtbWFyeXx0aW1lfHZpZGVvIixXPS8galF1ZXJ5XGQrPSIoPzpcZCt8bnVsbCkiL2csWD0vXlxzKy8sWT0vPCg/IWFyZWF8YnJ8Y29sfGVtYmVkfGhyfGltZ3xpbnB1dHxsaW5rfG1ldGF8cGFyYW0pKChbXHc6XSspW14+XSopXC8+L2lnLFo9LzwoW1x3Ol0rKS8sJD0vPHRib2R5L2ksXz0vPHwmIz9cdys7LyxiYT0vPCg/OnNjcmlwdHxzdHlsZSkvaSxiYj0vPCg/OnNjcmlwdHxvYmplY3R8ZW1iZWR8b3B0aW9ufHN0eWxlKS9pLGJjPW5ldyBSZWdFeHAoIjwoPzoiK1YrIikiLCJpIiksYmQ9L2NoZWNrZWRccyooPzpbXj1dfD1ccyouY2hlY2tlZC4pL2ksYmU9L1wvKGphdmF8ZWNtYSlzY3JpcHQvaSxiZj0vXlxzKjwhKD86XFtDREFUQVxbfFwtXC0pLyxiZz17b3B0aW9uOlsxLCI8c2VsZWN0IG11bHRpcGxlPSdtdWx0aXBsZSc+IiwiPC9zZWxlY3Q+Il0sbGVnZW5kOlsxLCI8ZmllbGRzZXQ+IiwiPC9maWVsZHNldD4iXSx0aGVhZDpbMSwiPHRhYmxlPiIsIjwvdGFibGU+Il0sdHI6WzIsIjx0YWJsZT48dGJvZHk+IiwiPC90Ym9keT48L3RhYmxlPiJdLHRkOlszLCI8dGFibGU+PHRib2R5Pjx0cj4iLCI8L3RyPjwvdGJvZHk+PC90YWJsZT4iXSxjb2w6WzIsIjx0YWJsZT48dGJvZHk+PC90Ym9keT48Y29sZ3JvdXA+IiwiPC9jb2xncm91cD48L3RhYmxlPiJdLGFyZWE6WzEsIjxtYXA+IiwiPC9tYXA+Il0sX2RlZmF1bHQ6WzAsIiIsIiJdfSxiaD1VKGMpO2JnLm9wdGdyb3VwPWJnLm9wdGlvbixiZy50Ym9keT1iZy50Zm9vdD1iZy5jb2xncm91cD1iZy5jYXB0aW9uPWJnLnRoZWFkLGJnLnRoPWJnLnRkLGYuc3VwcG9ydC5odG1sU2VyaWFsaXplfHwoYmcuX2RlZmF1bHQ9WzEsImRpdjxkaXY+IiwiPC9kaXY+Il0pLGYuZm4uZXh0ZW5kKHt0ZXh0OmZ1bmN0aW9uKGEpe2lmKGYuaXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGIpe3ZhciBjPWYodGhpcyk7Yy50ZXh0KGEuY2FsbCh0aGlzLGIsYy50ZXh0KCkpKX0pO2lmKHR5cGVvZiBhIT0ib2JqZWN0IiYmYSE9PWIpcmV0dXJuIHRoaXMuZW1wdHkoKS5hcHBlbmQoKHRoaXNbMF0mJnRoaXNbMF0ub3duZXJEb2N1bWVudHx8YykuY3JlYXRlVGV4dE5vZGUoYSkpO3JldHVybiBmLnRleHQodGhpcyl9LHdyYXBBbGw6ZnVuY3Rpb24oYSl7aWYoZi5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYil7Zih0aGlzKS53cmFwQWxsKGEuY2FsbCh0aGlzLGIpKX0pO2lmKHRoaXNbMF0pe3ZhciBiPWYoYSx0aGlzWzBdLm93bmVyRG9jdW1lbnQpLmVxKDApLmNsb25lKCEwKTt0aGlzWzBdLnBhcmVudE5vZGUmJmIuaW5zZXJ0QmVmb3JlKHRoaXNbMF0pLGIubWFwKGZ1bmN0aW9uKCl7dmFyIGE9dGhpczt3aGlsZShhLmZpcnN0Q2hpbGQmJmEuZmlyc3RDaGlsZC5ub2RlVHlwZT09PTEpYT1hLmZpcnN0Q2hpbGQ7cmV0dXJuIGF9KS5hcHBlbmQodGhpcyl9cmV0dXJuIHRoaXN9LHdyYXBJbm5lcjpmdW5jdGlvbihhKXtpZihmLmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihiKXtmKHRoaXMpLndyYXBJbm5lcihhLmNhbGwodGhpcyxiKSl9KTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9Zih0aGlzKSxjPWIuY29udGVudHMoKTtjLmxlbmd0aD9jLndyYXBBbGwoYSk6Yi5hcHBlbmQoYSl9KX0sd3JhcDpmdW5jdGlvbihhKXt2YXIgYj1mLmlzRnVuY3Rpb24oYSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihjKXtmKHRoaXMpLndyYXBBbGwoYj9hLmNhbGwodGhpcyxjKTphKX0pfSx1bndyYXA6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXJlbnQoKS5lYWNoKGZ1bmN0aW9uKCl7Zi5ub2RlTmFtZSh0aGlzLCJib2R5Iil8fGYodGhpcykucmVwbGFjZVdpdGgodGhpcy5jaGlsZE5vZGVzKX0pLmVuZCgpfSxhcHBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsITAsZnVuY3Rpb24oYSl7dGhpcy5ub2RlVHlwZT09PTEmJnRoaXMuYXBwZW5kQ2hpbGQoYSl9KX0scHJlcGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cywhMCxmdW5jdGlvbihhKXt0aGlzLm5vZGVUeXBlPT09MSYmdGhpcy5pbnNlcnRCZWZvcmUoYSx0aGlzLmZpcnN0Q2hpbGQpfSl9LGJlZm9yZTpmdW5jdGlvbigpe2lmKHRoaXNbMF0mJnRoaXNbMF0ucGFyZW50Tm9kZSlyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsITEsZnVuY3Rpb24oYSl7dGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLHRoaXMpfSk7aWYoYXJndW1lbnRzLmxlbmd0aCl7dmFyIGE9Zi5jbGVhbihhcmd1bWVudHMpO2EucHVzaC5hcHBseShhLHRoaXMudG9BcnJheSgpKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soYSwiYmVmb3JlIixhcmd1bWVudHMpfX0sYWZ0ZXI6ZnVuY3Rpb24oKXtpZih0aGlzWzBdJiZ0aGlzWzBdLnBhcmVudE5vZGUpcmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLCExLGZ1bmN0aW9uKGEpe3RoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSx0aGlzLm5leHRTaWJsaW5nKX0pO2lmKGFyZ3VtZW50cy5sZW5ndGgpe3ZhciBhPXRoaXMucHVzaFN0YWNrKHRoaXMsImFmdGVyIixhcmd1bWVudHMpO2EucHVzaC5hcHBseShhLGYuY2xlYW4oYXJndW1lbnRzKSk7cmV0dXJuIGF9fSxyZW1vdmU6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MCxkOyhkPXRoaXNbY10pIT1udWxsO2MrKylpZighYXx8Zi5maWx0ZXIoYSxbZF0pLmxlbmd0aCkhYiYmZC5ub2RlVHlwZT09PTEmJihmLmNsZWFuRGF0YShkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIikpLGYuY2xlYW5EYXRhKFtkXSkpLGQucGFyZW50Tm9kZSYmZC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGQpO3JldHVybiB0aGlzfSxlbXB0eTpmdW5jdGlvbigpCntmb3IodmFyIGE9MCxiOyhiPXRoaXNbYV0pIT1udWxsO2ErKyl7Yi5ub2RlVHlwZT09PTEmJmYuY2xlYW5EYXRhKGIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSk7d2hpbGUoYi5maXJzdENoaWxkKWIucmVtb3ZlQ2hpbGQoYi5maXJzdENoaWxkKX1yZXR1cm4gdGhpc30sY2xvbmU6ZnVuY3Rpb24oYSxiKXthPWE9PW51bGw/ITE6YSxiPWI9PW51bGw/YTpiO3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe3JldHVybiBmLmNsb25lKHRoaXMsYSxiKX0pfSxodG1sOmZ1bmN0aW9uKGEpe2lmKGE9PT1iKXJldHVybiB0aGlzWzBdJiZ0aGlzWzBdLm5vZGVUeXBlPT09MT90aGlzWzBdLmlubmVySFRNTC5yZXBsYWNlKFcsIiIpOm51bGw7aWYodHlwZW9mIGE9PSJzdHJpbmciJiYhYmEudGVzdChhKSYmKGYuc3VwcG9ydC5sZWFkaW5nV2hpdGVzcGFjZXx8IVgudGVzdChhKSkmJiFiZ1soWi5leGVjKGEpfHxbIiIsIiJdKVsxXS50b0xvd2VyQ2FzZSgpXSl7YT1hLnJlcGxhY2UoWSwiPCQxPjwvJDI+Iik7dHJ5e2Zvcih2YXIgYz0wLGQ9dGhpcy5sZW5ndGg7YzxkO2MrKyl0aGlzW2NdLm5vZGVUeXBlPT09MSYmKGYuY2xlYW5EYXRhKHRoaXNbY10uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSksdGhpc1tjXS5pbm5lckhUTUw9YSl9Y2F0Y2goZSl7dGhpcy5lbXB0eSgpLmFwcGVuZChhKX19ZWxzZSBmLmlzRnVuY3Rpb24oYSk/dGhpcy5lYWNoKGZ1bmN0aW9uKGIpe3ZhciBjPWYodGhpcyk7Yy5odG1sKGEuY2FsbCh0aGlzLGIsYy5odG1sKCkpKX0pOnRoaXMuZW1wdHkoKS5hcHBlbmQoYSk7cmV0dXJuIHRoaXN9LHJlcGxhY2VXaXRoOmZ1bmN0aW9uKGEpe2lmKHRoaXNbMF0mJnRoaXNbMF0ucGFyZW50Tm9kZSl7aWYoZi5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYil7dmFyIGM9Zih0aGlzKSxkPWMuaHRtbCgpO2MucmVwbGFjZVdpdGgoYS5jYWxsKHRoaXMsYixkKSl9KTt0eXBlb2YgYSE9InN0cmluZyImJihhPWYoYSkuZGV0YWNoKCkpO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYj10aGlzLm5leHRTaWJsaW5nLGM9dGhpcy5wYXJlbnROb2RlO2YodGhpcykucmVtb3ZlKCksYj9mKGIpLmJlZm9yZShhKTpmKGMpLmFwcGVuZChhKX0pfXJldHVybiB0aGlzLmxlbmd0aD90aGlzLnB1c2hTdGFjayhmKGYuaXNGdW5jdGlvbihhKT9hKCk6YSksInJlcGxhY2VXaXRoIixhKTp0aGlzfSxkZXRhY2g6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucmVtb3ZlKGEsITApfSxkb21NYW5pcDpmdW5jdGlvbihhLGMsZCl7dmFyIGUsZyxoLGksaj1hWzBdLGs9W107aWYoIWYuc3VwcG9ydC5jaGVja0Nsb25lJiZhcmd1bWVudHMubGVuZ3RoPT09MyYmdHlwZW9mIGo9PSJzdHJpbmciJiZiZC50ZXN0KGopKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtmKHRoaXMpLmRvbU1hbmlwKGEsYyxkLCEwKX0pO2lmKGYuaXNGdW5jdGlvbihqKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGUpe3ZhciBnPWYodGhpcyk7YVswXT1qLmNhbGwodGhpcyxlLGM/Zy5odG1sKCk6YiksZy5kb21NYW5pcChhLGMsZCl9KTtpZih0aGlzWzBdKXtpPWomJmoucGFyZW50Tm9kZSxmLnN1cHBvcnQucGFyZW50Tm9kZSYmaSYmaS5ub2RlVHlwZT09PTExJiZpLmNoaWxkTm9kZXMubGVuZ3RoPT09dGhpcy5sZW5ndGg/ZT17ZnJhZ21lbnQ6aX06ZT1mLmJ1aWxkRnJhZ21lbnQoYSx0aGlzLGspLGg9ZS5mcmFnbWVudCxoLmNoaWxkTm9kZXMubGVuZ3RoPT09MT9nPWg9aC5maXJzdENoaWxkOmc9aC5maXJzdENoaWxkO2lmKGcpe2M9YyYmZi5ub2RlTmFtZShnLCJ0ciIpO2Zvcih2YXIgbD0wLG09dGhpcy5sZW5ndGgsbj1tLTE7bDxtO2wrKylkLmNhbGwoYz9iaSh0aGlzW2xdLGcpOnRoaXNbbF0sZS5jYWNoZWFibGV8fG0+MSYmbDxuP2YuY2xvbmUoaCwhMCwhMCk6aCl9ay5sZW5ndGgmJmYuZWFjaChrLGJwKX1yZXR1cm4gdGhpc319KSxmLmJ1aWxkRnJhZ21lbnQ9ZnVuY3Rpb24oYSxiLGQpe3ZhciBlLGcsaCxpLGo9YVswXTtiJiZiWzBdJiYoaT1iWzBdLm93bmVyRG9jdW1lbnR8fGJbMF0pLGkuY3JlYXRlRG9jdW1lbnRGcmFnbWVudHx8KGk9YyksYS5sZW5ndGg9PT0xJiZ0eXBlb2Ygaj09InN0cmluZyImJmoubGVuZ3RoPDUxMiYmaT09PWMmJmouY2hhckF0KDApPT09IjwiJiYhYmIudGVzdChqKSYmKGYuc3VwcG9ydC5jaGVja0Nsb25lfHwhYmQudGVzdChqKSkmJihmLnN1cHBvcnQuaHRtbDVDbG9uZXx8IWJjLnRlc3QoaikpJiYoZz0hMCxoPWYuZnJhZ21lbnRzW2pdLGgmJmghPT0xJiYoZT1oKSksZXx8KGU9aS5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksZi5jbGVhbihhLGksZSxkKSksZyYmKGYuZnJhZ21lbnRzW2pdPWg/ZToxKTtyZXR1cm57ZnJhZ21lbnQ6ZSxjYWNoZWFibGU6Z319LGYuZnJhZ21lbnRzPXt9LGYuZWFjaCh7YXBwZW5kVG86ImFwcGVuZCIscHJlcGVuZFRvOiJwcmVwZW5kIixpbnNlcnRCZWZvcmU6ImJlZm9yZSIsaW5zZXJ0QWZ0ZXI6ImFmdGVyIixyZXBsYWNlQWxsOiJyZXBsYWNlV2l0aCJ9LGZ1bmN0aW9uKGEsYil7Zi5mblthXT1mdW5jdGlvbihjKXt2YXIgZD1bXSxlPWYoYyksZz10aGlzLmxlbmd0aD09PTEmJnRoaXNbMF0ucGFyZW50Tm9kZTtpZihnJiZnLm5vZGVUeXBlPT09MTEmJmcuY2hpbGROb2Rlcy5sZW5ndGg9PT0xJiZlLmxlbmd0aD09PTEpe2VbYl0odGhpc1swXSk7cmV0dXJuIHRoaXN9Zm9yKHZhciBoPTAsaT1lLmxlbmd0aDtoPGk7aCsrKXt2YXIgaj0oaD4wP3RoaXMuY2xvbmUoITApOnRoaXMpLmdldCgpO2YoZVtoXSlbYl0oaiksZD1kLmNvbmNhdChqKX1yZXR1cm4gdGhpcy5wdXNoU3RhY2soZCxhLGUuc2VsZWN0b3IpfX0pLGYuZXh0ZW5kKHtjbG9uZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxnLGg9Zi5zdXBwb3J0Lmh0bWw1Q2xvbmV8fCFiYy50ZXN0KCI8IithLm5vZGVOYW1lKT9hLmNsb25lTm9kZSghMCk6Ym8oYSk7aWYoKCFmLnN1cHBvcnQubm9DbG9uZUV2ZW50fHwhZi5zdXBwb3J0Lm5vQ2xvbmVDaGVja2VkKSYmKGEubm9kZVR5cGU9PT0xfHxhLm5vZGVUeXBlPT09MTEpJiYhZi5pc1hNTERvYyhhKSl7YmsoYSxoKSxkPWJsKGEpLGU9YmwoaCk7Zm9yKGc9MDtkW2ddOysrZyllW2ddJiZiayhkW2ddLGVbZ10pfWlmKGIpe2JqKGEsaCk7aWYoYyl7ZD1ibChhKSxlPWJsKGgpO2ZvcihnPTA7ZFtnXTsrK2cpYmooZFtnXSxlW2ddKX19ZD1lPW51bGw7cmV0dXJuIGh9LGNsZWFuOmZ1bmN0aW9uKGEsYixkLGUpe3ZhciBnO2I9Ynx8Yyx0eXBlb2YgYi5jcmVhdGVFbGVtZW50PT0idW5kZWZpbmVkIiYmKGI9Yi5vd25lckRvY3VtZW50fHxiWzBdJiZiWzBdLm93bmVyRG9jdW1lbnR8fGMpO3ZhciBoPVtdLGk7Zm9yKHZhciBqPTAsazsoaz1hW2pdKSE9bnVsbDtqKyspe3R5cGVvZiBrPT0ibnVtYmVyIiYmKGsrPSIiKTtpZighayljb250aW51ZTtpZih0eXBlb2Ygaz09InN0cmluZyIpaWYoIV8udGVzdChrKSlrPWIuY3JlYXRlVGV4dE5vZGUoayk7ZWxzZXtrPWsucmVwbGFjZShZLCI8JDE+PC8kMj4iKTt2YXIgbD0oWi5leGVjKGspfHxbIiIsIiJdKVsxXS50b0xvd2VyQ2FzZSgpLG09YmdbbF18fGJnLl9kZWZhdWx0LG49bVswXSxvPWIuY3JlYXRlRWxlbWVudCgiZGl2Iik7Yj09PWM/YmguYXBwZW5kQ2hpbGQobyk6VShiKS5hcHBlbmRDaGlsZChvKSxvLmlubmVySFRNTD1tWzFdK2srbVsyXTt3aGlsZShuLS0pbz1vLmxhc3RDaGlsZDtpZighZi5zdXBwb3J0LnRib2R5KXt2YXIgcD0kLnRlc3QoaykscT1sPT09InRhYmxlIiYmIXA/by5maXJzdENoaWxkJiZvLmZpcnN0Q2hpbGQuY2hpbGROb2RlczptWzFdPT09Ijx0YWJsZT4iJiYhcD9vLmNoaWxkTm9kZXM6W107Zm9yKGk9cS5sZW5ndGgtMTtpPj0wOy0taSlmLm5vZGVOYW1lKHFbaV0sInRib2R5IikmJiFxW2ldLmNoaWxkTm9kZXMubGVuZ3RoJiZxW2ldLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQocVtpXSl9IWYuc3VwcG9ydC5sZWFkaW5nV2hpdGVzcGFjZSYmWC50ZXN0KGspJiZvLmluc2VydEJlZm9yZShiLmNyZWF0ZVRleHROb2RlKFguZXhlYyhrKVswXSksby5maXJzdENoaWxkKSxrPW8uY2hpbGROb2Rlc312YXIgcjtpZighZi5zdXBwb3J0LmFwcGVuZENoZWNrZWQpaWYoa1swXSYmdHlwZW9mIChyPWsubGVuZ3RoKT09Im51bWJlciIpZm9yKGk9MDtpPHI7aSsrKWJuKGtbaV0pO2Vsc2UgYm4oayk7ay5ub2RlVHlwZT9oLnB1c2goayk6aD1mLm1lcmdlKGgsayl9aWYoZCl7Zz1mdW5jdGlvbihhKXtyZXR1cm4hYS50eXBlfHxiZS50ZXN0KGEudHlwZSl9O2ZvcihqPTA7aFtqXTtqKyspaWYoZSYmZi5ub2RlTmFtZShoW2pdLCJzY3JpcHQiKSYmKCFoW2pdLnR5cGV8fGhbal0udHlwZS50b0xvd2VyQ2FzZSgpPT09InRleHQvamF2YXNjcmlwdCIpKWUucHVzaChoW2pdLnBhcmVudE5vZGU/aFtqXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGhbal0pOmhbal0pO2Vsc2V7aWYoaFtqXS5ub2RlVHlwZT09PTEpe3ZhciBzPWYuZ3JlcChoW2pdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKSxnKTtoLnNwbGljZS5hcHBseShoLFtqKzEsMF0uY29uY2F0KHMpKX1kLmFwcGVuZENoaWxkKGhbal0pfX1yZXR1cm4gaH0sY2xlYW5EYXRhOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZD1mLmNhY2hlLGU9Zi5ldmVudC5zcGVjaWFsLGc9Zi5zdXBwb3J0LmRlbGV0ZUV4cGFuZG87Zm9yKHZhciBoPTAsaTsoaT1hW2hdKSE9bnVsbDtoKyspe2lmKGkubm9kZU5hbWUmJmYubm9EYXRhW2kubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pY29udGludWU7Yz1pW2YuZXhwYW5kb107aWYoYyl7Yj1kW2NdO2lmKGImJmIuZXZlbnRzKXtmb3IodmFyIGogaW4gYi5ldmVudHMpZVtqXT9mLmV2ZW50LnJlbW92ZShpLGopOmYucmVtb3ZlRXZlbnQoaSxqLGIuaGFuZGxlKTtiLmhhbmRsZSYmKGIuaGFuZGxlLmVsZW09bnVsbCl9Zz9kZWxldGUgaVtmLmV4cGFuZG9dOmkucmVtb3ZlQXR0cmlidXRlJiZpLnJlbW92ZUF0dHJpYnV0ZShmLmV4cGFuZG8pLGRlbGV0ZSBkW2NdfX19fSk7dmFyIGJxPS9hbHBoYVwoW14pXSpcKS9pLGJyPS9vcGFjaXR5PShbXildKikvLGJzPS8oW0EtWl18Xm1zKS9nLGJ0PS9eLT9cZCsoPzpweCk/JC9pLGJ1PS9eLT9cZC8sYnY9L14oW1wtK10pPShbXC0rLlxkZV0rKS8sYnc9e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdmlzaWJpbGl0eToiaGlkZGVuIixkaXNwbGF5OiJibG9jayJ9LGJ4PVsiTGVmdCIsIlJpZ2h0Il0sYnk9WyJUb3AiLCJCb3R0b20iXSxieixiQSxiQjtmLmZuLmNzcz1mdW5jdGlvbihhLGMpe2lmKGFyZ3VtZW50cy5sZW5ndGg9PT0yJiZjPT09YilyZXR1cm4gdGhpcztyZXR1cm4gZi5hY2Nlc3ModGhpcyxhLGMsITAsZnVuY3Rpb24oYSxjLGQpe3JldHVybiBkIT09Yj9mLnN0eWxlKGEsYyxkKTpmLmNzcyhhLGMpfSl9LGYuZXh0ZW5kKHtjc3NIb29rczp7b3BhY2l0eTp7Z2V0OmZ1bmN0aW9uKGEsYil7aWYoYil7dmFyIGM9YnooYSwib3BhY2l0eSIsIm9wYWNpdHkiKTtyZXR1cm4gYz09PSIiPyIxIjpjfXJldHVybiBhLnN0eWxlLm9wYWNpdHl9fX0sY3NzTnVtYmVyOntmaWxsT3BhY2l0eTohMCxmb250V2VpZ2h0OiEwLGxpbmVIZWlnaHQ6ITAsb3BhY2l0eTohMCxvcnBoYW5zOiEwLHdpZG93czohMCx6SW5kZXg6ITAsem9vbTohMH0sY3NzUHJvcHM6eyJmbG9hdCI6Zi5zdXBwb3J0LmNzc0Zsb2F0PyJjc3NGbG9hdCI6InN0eWxlRmxvYXQifSxzdHlsZTpmdW5jdGlvbihhLGMsZCxlKXtpZighIWEmJmEubm9kZVR5cGUhPT0zJiZhLm5vZGVUeXBlIT09OCYmISFhLnN0eWxlKXt2YXIgZyxoLGk9Zi5jYW1lbENhc2UoYyksaj1hLnN0eWxlLGs9Zi5jc3NIb29rc1tpXTtjPWYuY3NzUHJvcHNbaV18fGk7aWYoZD09PWIpe2lmKGsmJiJnZXQiaW4gayYmKGc9ay5nZXQoYSwhMSxlKSkhPT1iKXJldHVybiBnO3JldHVybiBqW2NdfWg9dHlwZW9mIGQsaD09PSJzdHJpbmciJiYoZz1idi5leGVjKGQpKSYmKGQ9KyhnWzFdKzEpKitnWzJdK3BhcnNlRmxvYXQoZi5jc3MoYSxjKSksaD0ibnVtYmVyIik7aWYoZD09bnVsbHx8aD09PSJudW1iZXIiJiZpc05hTihkKSlyZXR1cm47aD09PSJudW1iZXIiJiYhZi5jc3NOdW1iZXJbaV0mJihkKz0icHgiKTtpZigha3x8ISgic2V0ImluIGspfHwoZD1rLnNldChhLGQpKSE9PWIpdHJ5e2pbY109ZH1jYXRjaChsKXt9fX0sY3NzOmZ1bmN0aW9uKGEsYyxkKXt2YXIgZSxnO2M9Zi5jYW1lbENhc2UoYyksZz1mLmNzc0hvb2tzW2NdLGM9Zi5jc3NQcm9wc1tjXXx8YyxjPT09ImNzc0Zsb2F0IiYmKGM9ImZsb2F0Iik7aWYoZyYmImdldCJpbiBnJiYoZT1nLmdldChhLCEwLGQpKSE9PWIpcmV0dXJuIGU7aWYoYnopcmV0dXJuIGJ6KGEsYyl9LHN3YXA6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXt9O2Zvcih2YXIgZSBpbiBiKWRbZV09YS5zdHlsZVtlXSxhLnN0eWxlW2VdPWJbZV07Yy5jYWxsKGEpO2ZvcihlIGluIGIpYS5zdHlsZVtlXT1kW2VdfX0pLGYuY3VyQ1NTPWYuY3NzLGYuZWFjaChbImhlaWdodCIsIndpZHRoIl0sZnVuY3Rpb24oYSxiKXtmLmNzc0hvb2tzW2JdPXtnZXQ6ZnVuY3Rpb24oYSxjLGQpe3ZhciBlO2lmKGMpe2lmKGEub2Zmc2V0V2lkdGghPT0wKXJldHVybiBiQyhhLGIsZCk7Zi5zd2FwKGEsYncsZnVuY3Rpb24oKXtlPWJDKGEsYixkKX0pO3JldHVybiBlfX0sc2V0OmZ1bmN0aW9uKGEsYil7aWYoIWJ0LnRlc3QoYikpcmV0dXJuIGI7Yj1wYXJzZUZsb2F0KGIpO2lmKGI+PTApcmV0dXJuIGIrInB4In19fSksZi5zdXBwb3J0Lm9wYWNpdHl8fChmLmNzc0hvb2tzLm9wYWNpdHk9e2dldDpmdW5jdGlvbihhLGIpe3JldHVybiBici50ZXN0KChiJiZhLmN1cnJlbnRTdHlsZT9hLmN1cnJlbnRTdHlsZS5maWx0ZXI6YS5zdHlsZS5maWx0ZXIpfHwiIik/cGFyc2VGbG9hdChSZWdFeHAuJDEpLzEwMCsiIjpiPyIxIjoiIn0sc2V0OmZ1bmN0aW9uKGEsYil7dmFyIGM9YS5zdHlsZSxkPWEuY3VycmVudFN0eWxlLGU9Zi5pc051bWVyaWMoYik/ImFscGhhKG9wYWNpdHk9IitiKjEwMCsiKSI6IiIsZz1kJiZkLmZpbHRlcnx8Yy5maWx0ZXJ8fCIiO2Muem9vbT0xO2lmKGI+PTEmJmYudHJpbShnLnJlcGxhY2UoYnEsIiIpKT09PSIiKXtjLnJlbW92ZUF0dHJpYnV0ZSgiZmlsdGVyIik7aWYoZCYmIWQuZmlsdGVyKXJldHVybn1jLmZpbHRlcj1icS50ZXN0KGcpP2cucmVwbGFjZShicSxlKTpnKyIgIitlfX0pLGYoZnVuY3Rpb24oKXtmLnN1cHBvcnQucmVsaWFibGVNYXJnaW5SaWdodHx8KGYuY3NzSG9va3MubWFyZ2luUmlnaHQ9e2dldDpmdW5jdGlvbihhLGIpe3ZhciBjO2Yuc3dhcChhLHtkaXNwbGF5OiJpbmxpbmUtYmxvY2sifSxmdW5jdGlvbigpe2I/Yz1ieihhLCJtYXJnaW4tcmlnaHQiLCJtYXJnaW5SaWdodCIpOmM9YS5zdHlsZS5tYXJnaW5SaWdodH0pO3JldHVybiBjfX0pfSksYy5kZWZhdWx0VmlldyYmYy5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlJiYoYkE9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGU7Yj1iLnJlcGxhY2UoYnMsIi0kMSIpLnRvTG93ZXJDYXNlKCksKGQ9YS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3KSYmKGU9ZC5nZXRDb21wdXRlZFN0eWxlKGEsbnVsbCkpJiYoYz1lLmdldFByb3BlcnR5VmFsdWUoYiksYz09PSIiJiYhZi5jb250YWlucyhhLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGEpJiYoYz1mLnN0eWxlKGEsYikpKTtyZXR1cm4gY30pLGMuZG9jdW1lbnRFbGVtZW50LmN1cnJlbnRTdHlsZSYmKGJCPWZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlLGY9YS5jdXJyZW50U3R5bGUmJmEuY3VycmVudFN0eWxlW2JdLGc9YS5zdHlsZTtmPT09bnVsbCYmZyYmKGU9Z1tiXSkmJihmPWUpLCFidC50ZXN0KGYpJiZidS50ZXN0KGYpJiYoYz1nLmxlZnQsZD1hLnJ1bnRpbWVTdHlsZSYmYS5ydW50aW1lU3R5bGUubGVmdCxkJiYoYS5ydW50aW1lU3R5bGUubGVmdD1hLmN1cnJlbnRTdHlsZS5sZWZ0KSxnLmxlZnQ9Yj09PSJmb250U2l6ZSI/IjFlbSI6Znx8MCxmPWcucGl4ZWxMZWZ0KyJweCIsZy5sZWZ0PWMsZCYmKGEucnVudGltZVN0eWxlLmxlZnQ9ZCkpO3JldHVybiBmPT09IiI/ImF1dG8iOmZ9KSxiej1iQXx8YkIsZi5leHByJiZmLmV4cHIuZmlsdGVycyYmKGYuZXhwci5maWx0ZXJzLmhpZGRlbj1mdW5jdGlvbihhKXt2YXIgYj1hLm9mZnNldFdpZHRoLGM9YS5vZmZzZXRIZWlnaHQ7cmV0dXJuIGI9PT0wJiZjPT09MHx8IWYuc3VwcG9ydC5yZWxpYWJsZUhpZGRlbk9mZnNldHMmJihhLnN0eWxlJiZhLnN0eWxlLmRpc3BsYXl8fGYuY3NzKGEsImRpc3BsYXkiKSk9PT0ibm9uZSJ9LGYuZXhwci5maWx0ZXJzLnZpc2libGU9ZnVuY3Rpb24oYSl7cmV0dXJuIWYuZXhwci5maWx0ZXJzLmhpZGRlbihhKX0pO3ZhciBiRD0vJTIwL2csYkU9L1xbXF0kLyxiRj0vXHI/XG4vZyxiRz0vIy4qJC8sYkg9L14oLio/KTpbIFx0XSooW15cclxuXSopXHI/JC9tZyxiST0vXig/OmNvbG9yfGRhdGV8ZGF0ZXRpbWV8ZGF0ZXRpbWUtbG9jYWx8ZW1haWx8aGlkZGVufG1vbnRofG51bWJlcnxwYXNzd29yZHxyYW5nZXxzZWFyY2h8dGVsfHRleHR8dGltZXx1cmx8d2VlaykkL2ksYko9L14oPzphYm91dHxhcHB8YXBwXC1zdG9yYWdlfC4rXC1leHRlbnNpb258ZmlsZXxyZXN8d2lkZ2V0KTokLyxiSz0vXig/OkdFVHxIRUFEKSQvLGJMPS9eXC9cLy8sYk09L1w/LyxiTj0vPHNjcmlwdFxiW148XSooPzooPyE8XC9zY3JpcHQ+KTxbXjxdKikqPFwvc2NyaXB0Pi9naSxiTz0vXig/OnNlbGVjdHx0ZXh0YXJlYSkvaSxiUD0vXHMrLyxiUT0vKFs/Jl0pXz1bXiZdKi8sYlI9L14oW1x3XCtcLlwtXSs6KSg/OlwvXC8oW15cLz8jOl0qKSg/OjooXGQrKSk/KT8vLGJTPWYuZm4ubG9hZCxiVD17fSxiVT17fSxiVixiVyxiWD1bIiovIl0rWyIqIl07dHJ5e2JWPWUuaHJlZn1jYXRjaChiWSl7YlY9Yy5jcmVhdGVFbGVtZW50KCJhIiksYlYuaHJlZj0iIixiVj1iVi5ocmVmfWJXPWJSLmV4ZWMoYlYudG9Mb3dlckNhc2UoKSl8fFtdLGYuZm4uZXh0ZW5kKHtsb2FkOmZ1bmN0aW9uKGEsYyxkKXtpZih0eXBlb2YgYSE9InN0cmluZyImJmJTKXJldHVybiBiUy5hcHBseSh0aGlzLGFyZ3VtZW50cyk7aWYoIXRoaXMubGVuZ3RoKXJldHVybiB0aGlzO3ZhciBlPWEuaW5kZXhPZigiICIpO2lmKGU+PTApe3ZhciBnPWEuc2xpY2UoZSxhLmxlbmd0aCk7YT1hLnNsaWNlKDAsZSl9dmFyIGg9IkdFVCI7YyYmKGYuaXNGdW5jdGlvbihjKT8oZD1jLGM9Yik6dHlwZW9mIGM9PSJvYmplY3QiJiYoYz1mLnBhcmFtKGMsZi5hamF4U2V0dGluZ3MudHJhZGl0aW9uYWwpLGg9IlBPU1QiKSk7dmFyIGk9dGhpcztmLmFqYXgoe3VybDphLHR5cGU6aCxkYXRhVHlwZToiaHRtbCIsZGF0YTpjLGNvbXBsZXRlOmZ1bmN0aW9uKGEsYixjKXtjPWEucmVzcG9uc2VUZXh0LGEuaXNSZXNvbHZlZCgpJiYoYS5kb25lKGZ1bmN0aW9uKGEpe2M9YX0pLGkuaHRtbChnP2YoIjxkaXY+IikuYXBwZW5kKGMucmVwbGFjZShiTiwiIikpLmZpbmQoZyk6YykpLGQmJmkuZWFjaChkLFtjLGIsYV0pfX0pO3JldHVybiB0aGlzfSxzZXJpYWxpemU6ZnVuY3Rpb24oKXtyZXR1cm4gZi5wYXJhbSh0aGlzLnNlcmlhbGl6ZUFycmF5KCkpfSxzZXJpYWxpemVBcnJheTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe3JldHVybiB0aGlzLmVsZW1lbnRzP2YubWFrZUFycmF5KHRoaXMuZWxlbWVudHMpOnRoaXN9KS5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uYW1lJiYhdGhpcy5kaXNhYmxlZCYmKHRoaXMuY2hlY2tlZHx8Yk8udGVzdCh0aGlzLm5vZGVOYW1lKXx8YkkudGVzdCh0aGlzLnR5cGUpKX0pLm1hcChmdW5jdGlvbihhLGIpe3ZhciBjPWYodGhpcykudmFsKCk7cmV0dXJuIGM9PW51bGw/bnVsbDpmLmlzQXJyYXkoYyk/Zi5tYXAoYyxmdW5jdGlvbihhLGMpe3JldHVybntuYW1lOmIubmFtZSx2YWx1ZTphLnJlcGxhY2UoYkYsIlxyXG4iKX19KTp7bmFtZTpiLm5hbWUsdmFsdWU6Yy5yZXBsYWNlKGJGLCJcclxuIil9fSkuZ2V0KCl9fSksZi5lYWNoKCJhamF4U3RhcnQgYWpheFN0b3AgYWpheENvbXBsZXRlIGFqYXhFcnJvciBhamF4U3VjY2VzcyBhamF4U2VuZCIuc3BsaXQoIiAiKSxmdW5jdGlvbihhLGIpe2YuZm5bYl09ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMub24oYixhKX19KSxmLmVhY2goWyJnZXQiLCJwb3N0Il0sZnVuY3Rpb24oYSxjKXtmW2NdPWZ1bmN0aW9uKGEsZCxlLGcpe2YuaXNGdW5jdGlvbihkKSYmKGc9Z3x8ZSxlPWQsZD1iKTtyZXR1cm4gZi5hamF4KHt0eXBlOmMsdXJsOmEsZGF0YTpkLHN1Y2Nlc3M6ZSxkYXRhVHlwZTpnfSl9fSksZi5leHRlbmQoe2dldFNjcmlwdDpmdW5jdGlvbihhLGMpe3JldHVybiBmLmdldChhLGIsYywic2NyaXB0Iil9LGdldEpTT046ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBmLmdldChhLGIsYywianNvbiIpfSxhamF4U2V0dXA6ZnVuY3Rpb24oYSxiKXtiP2JfKGEsZi5hamF4U2V0dGluZ3MpOihiPWEsYT1mLmFqYXhTZXR0aW5ncyksYl8oYSxiKTtyZXR1cm4gYX0sYWpheFNldHRpbmdzOnt1cmw6YlYsaXNMb2NhbDpiSi50ZXN0KGJXWzFdKSxnbG9iYWw6ITAsdHlwZToiR0VUIixjb250ZW50VHlwZToiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIixwcm9jZXNzRGF0YTohMCxhc3luYzohMCxhY2NlcHRzOnt4bWw6ImFwcGxpY2F0aW9uL3htbCwgdGV4dC94bWwiLGh0bWw6InRleHQvaHRtbCIsdGV4dDoidGV4dC9wbGFpbiIsanNvbjoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0IiwiKiI6Ylh9LGNvbnRlbnRzOnt4bWw6L3htbC8saHRtbDovaHRtbC8sanNvbjovanNvbi99LHJlc3BvbnNlRmllbGRzOnt4bWw6InJlc3BvbnNlWE1MIix0ZXh0OiJyZXNwb25zZVRleHQifSxjb252ZXJ0ZXJzOnsiKiB0ZXh0IjphLlN0cmluZywidGV4dCBodG1sIjohMCwidGV4dCBqc29uIjpmLnBhcnNlSlNPTiwidGV4dCB4bWwiOmYucGFyc2VYTUx9LGZsYXRPcHRpb25zOntjb250ZXh0OiEwLHVybDohMH19LGFqYXhQcmVmaWx0ZXI6YlooYlQpLGFqYXhUcmFuc3BvcnQ6YlooYlUpLGFqYXg6ZnVuY3Rpb24oYSxjKXtmdW5jdGlvbiB3KGEsYyxsLG0pe2lmKHMhPT0yKXtzPTIscSYmY2xlYXJUaW1lb3V0KHEpLHA9YixuPW18fCIiLHYucmVhZHlTdGF0ZT1hPjA/NDowO3ZhciBvLHIsdSx3PWMseD1sP2NiKGQsdixsKTpiLHksejtpZihhPj0yMDAmJmE8MzAwfHxhPT09MzA0KXtpZihkLmlmTW9kaWZpZWQpe2lmKHk9di5nZXRSZXNwb25zZUhlYWRlcigiTGFzdC1Nb2RpZmllZCIpKWYubGFzdE1vZGlmaWVkW2tdPXk7aWYoej12LmdldFJlc3BvbnNlSGVhZGVyKCJFdGFnIikpZi5ldGFnW2tdPXp9aWYoYT09PTMwNCl3PSJub3Rtb2RpZmllZCIsbz0hMDtlbHNlIHRyeXtyPWNjKGQseCksdz0ic3VjY2VzcyIsbz0hMH1jYXRjaChBKXt3PSJwYXJzZXJlcnJvciIsdT1BfX1lbHNle3U9dztpZighd3x8YSl3PSJlcnJvciIsYTwwJiYoYT0wKX12LnN0YXR1cz1hLHYuc3RhdHVzVGV4dD0iIisoY3x8dyksbz9oLnJlc29sdmVXaXRoKGUsW3Isdyx2XSk6aC5yZWplY3RXaXRoKGUsW3Ysdyx1XSksdi5zdGF0dXNDb2RlKGopLGo9Yix0JiZnLnRyaWdnZXIoImFqYXgiKyhvPyJTdWNjZXNzIjoiRXJyb3IiKSxbdixkLG8/cjp1XSksaS5maXJlV2l0aChlLFt2LHddKSx0JiYoZy50cmlnZ2VyKCJhamF4Q29tcGxldGUiLFt2LGRdKSwtLWYuYWN0aXZlfHxmLmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIikpfX10eXBlb2YgYT09Im9iamVjdCImJihjPWEsYT1iKSxjPWN8fHt9O3ZhciBkPWYuYWpheFNldHVwKHt9LGMpLGU9ZC5jb250ZXh0fHxkLGc9ZSE9PWQmJihlLm5vZGVUeXBlfHxlIGluc3RhbmNlb2YgZik/ZihlKTpmLmV2ZW50LGg9Zi5EZWZlcnJlZCgpLGk9Zi5DYWxsYmFja3MoIm9uY2UgbWVtb3J5Iiksaj1kLnN0YXR1c0NvZGV8fHt9LGssbD17fSxtPXt9LG4sbyxwLHEscixzPTAsdCx1LHY9e3JlYWR5U3RhdGU6MCxzZXRSZXF1ZXN0SGVhZGVyOmZ1bmN0aW9uKGEsYil7aWYoIXMpe3ZhciBjPWEudG9Mb3dlckNhc2UoKTthPW1bY109bVtjXXx8YSxsW2FdPWJ9cmV0dXJuIHRoaXN9LGdldEFsbFJlc3BvbnNlSGVhZGVyczpmdW5jdGlvbigpe3JldHVybiBzPT09Mj9uOm51bGx9LGdldFJlc3BvbnNlSGVhZGVyOmZ1bmN0aW9uKGEpe3ZhciBjO2lmKHM9PT0yKXtpZighbyl7bz17fTt3aGlsZShjPWJILmV4ZWMobikpb1tjWzFdLnRvTG93ZXJDYXNlKCldPWNbMl19Yz1vW2EudG9Mb3dlckNhc2UoKV19cmV0dXJuIGM9PT1iP251bGw6Y30sb3ZlcnJpZGVNaW1lVHlwZTpmdW5jdGlvbihhKXtzfHwoZC5taW1lVHlwZT1hKTtyZXR1cm4gdGhpc30sYWJvcnQ6ZnVuY3Rpb24oYSl7YT1hfHwiYWJvcnQiLHAmJnAuYWJvcnQoYSksdygwLGEpO3JldHVybiB0aGlzfX07aC5wcm9taXNlKHYpLHYuc3VjY2Vzcz12LmRvbmUsdi5lcnJvcj12LmZhaWwsdi5jb21wbGV0ZT1pLmFkZCx2LnN0YXR1c0NvZGU9ZnVuY3Rpb24oYSl7aWYoYSl7dmFyIGI7aWYoczwyKWZvcihiIGluIGEpaltiXT1baltiXSxhW2JdXTtlbHNlIGI9YVt2LnN0YXR1c10sdi50aGVuKGIsYil9cmV0dXJuIHRoaXN9LGQudXJsPSgoYXx8ZC51cmwpKyIiKS5yZXBsYWNlKGJHLCIiKS5yZXBsYWNlKGJMLGJXWzFdKyIvLyIpLGQuZGF0YVR5cGVzPWYudHJpbShkLmRhdGFUeXBlfHwiKiIpLnRvTG93ZXJDYXNlKCkuc3BsaXQoYlApLGQuY3Jvc3NEb21haW49PW51bGwmJihyPWJSLmV4ZWMoZC51cmwudG9Mb3dlckNhc2UoKSksZC5jcm9zc0RvbWFpbj0hKCFyfHxyWzFdPT1iV1sxXSYmclsyXT09YldbMl0mJihyWzNdfHwoclsxXT09PSJodHRwOiI/ODA6NDQzKSk9PShiV1szXXx8KGJXWzFdPT09Imh0dHA6Ij84MDo0NDMpKSkpLGQuZGF0YSYmZC5wcm9jZXNzRGF0YSYmdHlwZW9mIGQuZGF0YSE9InN0cmluZyImJihkLmRhdGE9Zi5wYXJhbShkLmRhdGEsZC50cmFkaXRpb25hbCkpLGIkKGJULGQsYyx2KTtpZihzPT09MilyZXR1cm4hMTt0PWQuZ2xvYmFsLGQudHlwZT1kLnR5cGUudG9VcHBlckNhc2UoKSxkLmhhc0NvbnRlbnQ9IWJLLnRlc3QoZC50eXBlKSx0JiZmLmFjdGl2ZSsrPT09MCYmZi5ldmVudC50cmlnZ2VyKCJhamF4U3RhcnQiKTtpZighZC5oYXNDb250ZW50KXtkLmRhdGEmJihkLnVybCs9KGJNLnRlc3QoZC51cmwpPyImIjoiPyIpK2QuZGF0YSxkZWxldGUgZC5kYXRhKSxrPWQudXJsO2lmKGQuY2FjaGU9PT0hMSl7dmFyIHg9Zi5ub3coKSx5PWQudXJsLnJlcGxhY2UoYlEsIiQxXz0iK3gpO2QudXJsPXkrKHk9PT1kLnVybD8oYk0udGVzdChkLnVybCk/IiYiOiI/IikrIl89Iit4OiIiKX19KGQuZGF0YSYmZC5oYXNDb250ZW50JiZkLmNvbnRlbnRUeXBlIT09ITF8fGMuY29udGVudFR5cGUpJiZ2LnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsZC5jb250ZW50VHlwZSksZC5pZk1vZGlmaWVkJiYoaz1rfHxkLnVybCxmLmxhc3RNb2RpZmllZFtrXSYmdi5zZXRSZXF1ZXN0SGVhZGVyKCJJZi1Nb2RpZmllZC1TaW5jZSIsZi5sYXN0TW9kaWZpZWRba10pLGYuZXRhZ1trXSYmdi5zZXRSZXF1ZXN0SGVhZGVyKCJJZi1Ob25lLU1hdGNoIixmLmV0YWdba10pKSx2LnNldFJlcXVlc3RIZWFkZXIoIkFjY2VwdCIsZC5kYXRhVHlwZXNbMF0mJmQuYWNjZXB0c1tkLmRhdGFUeXBlc1swXV0/ZC5hY2NlcHRzW2QuZGF0YVR5cGVzWzBdXSsoZC5kYXRhVHlwZXNbMF0hPT0iKiI/IiwgIitiWCsiOyBxPTAuMDEiOiIiKTpkLmFjY2VwdHNbIioiXSk7Zm9yKHUgaW4gZC5oZWFkZXJzKXYuc2V0UmVxdWVzdEhlYWRlcih1LGQuaGVhZGVyc1t1XSk7aWYoZC5iZWZvcmVTZW5kJiYoZC5iZWZvcmVTZW5kLmNhbGwoZSx2LGQpPT09ITF8fHM9PT0yKSl7di5hYm9ydCgpO3JldHVybiExfWZvcih1IGlue3N1Y2Nlc3M6MSxlcnJvcjoxLGNvbXBsZXRlOjF9KXZbdV0oZFt1XSk7cD1iJChiVSxkLGMsdik7aWYoIXApdygtMSwiTm8gVHJhbnNwb3J0Iik7ZWxzZXt2LnJlYWR5U3RhdGU9MSx0JiZnLnRyaWdnZXIoImFqYXhTZW5kIixbdixkXSksZC5hc3luYyYmZC50aW1lb3V0PjAmJihxPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt2LmFib3J0KCJ0aW1lb3V0Iil9LGQudGltZW91dCkpO3RyeXtzPTEscC5zZW5kKGwsdyl9Y2F0Y2goeil7aWYoczwyKXcoLTEseik7ZWxzZSB0aHJvdyB6fX1yZXR1cm4gdn0scGFyYW06ZnVuY3Rpb24oYSxjKXt2YXIgZD1bXSxlPWZ1bmN0aW9uKGEsYil7Yj1mLmlzRnVuY3Rpb24oYik/YigpOmIsZFtkLmxlbmd0aF09ZW5jb2RlVVJJQ29tcG9uZW50KGEpKyI9IitlbmNvZGVVUklDb21wb25lbnQoYil9O2M9PT1iJiYoYz1mLmFqYXhTZXR0aW5ncy50cmFkaXRpb25hbCk7aWYoZi5pc0FycmF5KGEpfHxhLmpxdWVyeSYmIWYuaXNQbGFpbk9iamVjdChhKSlmLmVhY2goYSxmdW5jdGlvbigpe2UodGhpcy5uYW1lLHRoaXMudmFsdWUpfSk7ZWxzZSBmb3IodmFyIGcgaW4gYSljYShnLGFbZ10sYyxlKTtyZXR1cm4gZC5qb2luKCImIikucmVwbGFjZShiRCwiKyIpfX0pLGYuZXh0ZW5kKHthY3RpdmU6MCxsYXN0TW9kaWZpZWQ6e30sZXRhZzp7fX0pO3ZhciBjZD1mLm5vdygpLGNlPS8oXD0pXD8oJnwkKXxcP1w/L2k7Zi5hamF4U2V0dXAoe2pzb25wOiJjYWxsYmFjayIsanNvbnBDYWxsYmFjazpmdW5jdGlvbigpe3JldHVybiBmLmV4cGFuZG8rIl8iK2NkKyt9fSksZi5hamF4UHJlZmlsdGVyKCJqc29uIGpzb25wIixmdW5jdGlvbihiLGMsZCl7dmFyIGU9Yi5jb250ZW50VHlwZT09PSJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiJiZ0eXBlb2YgYi5kYXRhPT0ic3RyaW5nIjtpZihiLmRhdGFUeXBlc1swXT09PSJqc29ucCJ8fGIuanNvbnAhPT0hMSYmKGNlLnRlc3QoYi51cmwpfHxlJiZjZS50ZXN0KGIuZGF0YSkpKXt2YXIgZyxoPWIuanNvbnBDYWxsYmFjaz1mLmlzRnVuY3Rpb24oYi5qc29ucENhbGxiYWNrKT9iLmpzb25wQ2FsbGJhY2soKTpiLmpzb25wQ2FsbGJhY2ssaT1hW2hdLGo9Yi51cmwsaz1iLmRhdGEsbD0iJDEiK2grIiQyIjtiLmpzb25wIT09ITEmJihqPWoucmVwbGFjZShjZSxsKSxiLnVybD09PWomJihlJiYoaz1rLnJlcGxhY2UoY2UsbCkpLGIuZGF0YT09PWsmJihqKz0oL1w/Ly50ZXN0KGopPyImIjoiPyIpK2IuanNvbnArIj0iK2gpKSksYi51cmw9aixiLmRhdGE9ayxhW2hdPWZ1bmN0aW9uKGEpe2c9W2FdfSxkLmFsd2F5cyhmdW5jdGlvbigpe2FbaF09aSxnJiZmLmlzRnVuY3Rpb24oaSkmJmFbaF0oZ1swXSl9KSxiLmNvbnZlcnRlcnNbInNjcmlwdCBqc29uIl09ZnVuY3Rpb24oKXtnfHxmLmVycm9yKGgrIiB3YXMgbm90IGNhbGxlZCIpO3JldHVybiBnWzBdfSxiLmRhdGFUeXBlc1swXT0ianNvbiI7cmV0dXJuInNjcmlwdCJ9fSksZi5hamF4U2V0dXAoe2FjY2VwdHM6e3NjcmlwdDoidGV4dC9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9lY21hc2NyaXB0LCBhcHBsaWNhdGlvbi94LWVjbWFzY3JpcHQifSxjb250ZW50czp7c2NyaXB0Oi9qYXZhc2NyaXB0fGVjbWFzY3JpcHQvfSxjb252ZXJ0ZXJzOnsidGV4dCBzY3JpcHQiOmZ1bmN0aW9uKGEpe2YuZ2xvYmFsRXZhbChhKTtyZXR1cm4gYX19fSksZi5hamF4UHJlZmlsdGVyKCJzY3JpcHQiLGZ1bmN0aW9uKGEpe2EuY2FjaGU9PT1iJiYoYS5jYWNoZT0hMSksYS5jcm9zc0RvbWFpbiYmKGEudHlwZT0iR0VUIixhLmdsb2JhbD0hMSl9KSxmLmFqYXhUcmFuc3BvcnQoInNjcmlwdCIsZnVuY3Rpb24oYSl7aWYoYS5jcm9zc0RvbWFpbil7dmFyIGQsZT1jLmhlYWR8fGMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXXx8Yy5kb2N1bWVudEVsZW1lbnQ7cmV0dXJue3NlbmQ6ZnVuY3Rpb24oZixnKXtkPWMuY3JlYXRlRWxlbWVudCgic2NyaXB0IiksZC5hc3luYz0iYXN5bmMiLGEuc2NyaXB0Q2hhcnNldCYmKGQuY2hhcnNldD1hLnNjcmlwdENoYXJzZXQpLGQuc3JjPWEudXJsLGQub25sb2FkPWQub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKGEsYyl7aWYoY3x8IWQucmVhZHlTdGF0ZXx8L2xvYWRlZHxjb21wbGV0ZS8udGVzdChkLnJlYWR5U3RhdGUpKWQub25sb2FkPWQub25yZWFkeXN0YXRlY2hhbmdlPW51bGwsZSYmZC5wYXJlbnROb2RlJiZlLnJlbW92ZUNoaWxkKGQpLGQ9YixjfHxnKDIwMCwic3VjY2VzcyIpfSxlLmluc2VydEJlZm9yZShkLGUuZmlyc3RDaGlsZCl9LGFib3J0OmZ1bmN0aW9uKCl7ZCYmZC5vbmxvYWQoMCwxKX19fX0pO3ZhciBjZj1hLkFjdGl2ZVhPYmplY3Q/ZnVuY3Rpb24oKXtmb3IodmFyIGEgaW4gY2gpY2hbYV0oMCwxKX06ITEsY2c9MCxjaDtmLmFqYXhTZXR0aW5ncy54aHI9YS5BY3RpdmVYT2JqZWN0P2Z1bmN0aW9uKCl7cmV0dXJuIXRoaXMuaXNMb2NhbCYmY2koKXx8Y2ooKX06Y2ksZnVuY3Rpb24oYSl7Zi5leHRlbmQoZi5zdXBwb3J0LHthamF4OiEhYSxjb3JzOiEhYSYmIndpdGhDcmVkZW50aWFscyJpbiBhfSl9KGYuYWpheFNldHRpbmdzLnhocigpKSxmLnN1cHBvcnQuYWpheCYmZi5hamF4VHJhbnNwb3J0KGZ1bmN0aW9uKGMpe2lmKCFjLmNyb3NzRG9tYWlufHxmLnN1cHBvcnQuY29ycyl7dmFyIGQ7cmV0dXJue3NlbmQ6ZnVuY3Rpb24oZSxnKXt2YXIgaD1jLnhocigpLGksajtjLnVzZXJuYW1lP2gub3BlbihjLnR5cGUsYy51cmwsYy5hc3luYyxjLnVzZXJuYW1lLGMucGFzc3dvcmQpOmgub3BlbihjLnR5cGUsYy51cmwsYy5hc3luYyk7aWYoYy54aHJGaWVsZHMpZm9yKGogaW4gYy54aHJGaWVsZHMpaFtqXT1jLnhockZpZWxkc1tqXTtjLm1pbWVUeXBlJiZoLm92ZXJyaWRlTWltZVR5cGUmJmgub3ZlcnJpZGVNaW1lVHlwZShjLm1pbWVUeXBlKSwhYy5jcm9zc0RvbWFpbiYmIWVbIlgtUmVxdWVzdGVkLVdpdGgiXSYmKGVbIlgtUmVxdWVzdGVkLVdpdGgiXT0iWE1MSHR0cFJlcXVlc3QiKTt0cnl7Zm9yKGogaW4gZSloLnNldFJlcXVlc3RIZWFkZXIoaixlW2pdKX1jYXRjaChrKXt9aC5zZW5kKGMuaGFzQ29udGVudCYmYy5kYXRhfHxudWxsKSxkPWZ1bmN0aW9uKGEsZSl7dmFyIGosayxsLG0sbjt0cnl7aWYoZCYmKGV8fGgucmVhZHlTdGF0ZT09PTQpKXtkPWIsaSYmKGgub25yZWFkeXN0YXRlY2hhbmdlPWYubm9vcCxjZiYmZGVsZXRlIGNoW2ldKTtpZihlKWgucmVhZHlTdGF0ZSE9PTQmJmguYWJvcnQoKTtlbHNle2o9aC5zdGF0dXMsbD1oLmdldEFsbFJlc3BvbnNlSGVhZGVycygpLG09e30sbj1oLnJlc3BvbnNlWE1MLG4mJm4uZG9jdW1lbnRFbGVtZW50JiYobS54bWw9biksbS50ZXh0PWgucmVzcG9uc2VUZXh0O3RyeXtrPWguc3RhdHVzVGV4dH1jYXRjaChvKXtrPSIifSFqJiZjLmlzTG9jYWwmJiFjLmNyb3NzRG9tYWluP2o9bS50ZXh0PzIwMDo0MDQ6aj09PTEyMjMmJihqPTIwNCl9fX1jYXRjaChwKXtlfHxnKC0xLHApfW0mJmcoaixrLG0sbCl9LCFjLmFzeW5jfHxoLnJlYWR5U3RhdGU9PT00P2QoKTooaT0rK2NnLGNmJiYoY2h8fChjaD17fSxmKGEpLnVubG9hZChjZikpLGNoW2ldPWQpLGgub25yZWFkeXN0YXRlY2hhbmdlPWQpfSxhYm9ydDpmdW5jdGlvbigpe2QmJmQoMCwxKX19fX0pO3ZhciBjaz17fSxjbCxjbSxjbj0vXig/OnRvZ2dsZXxzaG93fGhpZGUpJC8sY289L14oWytcLV09KT8oW1xkKy5cLV0rKShbYS16JV0qKSQvaSxjcCxjcT1bWyJoZWlnaHQiLCJtYXJnaW5Ub3AiLCJtYXJnaW5Cb3R0b20iLCJwYWRkaW5nVG9wIiwicGFkZGluZ0JvdHRvbSJdLFsid2lkdGgiLCJtYXJnaW5MZWZ0IiwibWFyZ2luUmlnaHQiLCJwYWRkaW5nTGVmdCIsInBhZGRpbmdSaWdodCJdLFsib3BhY2l0eSJdXSxjcjtmLmZuLmV4dGVuZCh7c2hvdzpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZTtpZihhfHxhPT09MClyZXR1cm4gdGhpcy5hbmltYXRlKGN1KCJzaG93IiwzKSxhLGIsYyk7Zm9yKHZhciBnPTAsaD10aGlzLmxlbmd0aDtnPGg7ZysrKWQ9dGhpc1tnXSxkLnN0eWxlJiYoZT1kLnN0eWxlLmRpc3BsYXksIWYuX2RhdGEoZCwib2xkZGlzcGxheSIpJiZlPT09Im5vbmUiJiYoZT1kLnN0eWxlLmRpc3BsYXk9IiIpLGU9PT0iIiYmZi5jc3MoZCwiZGlzcGxheSIpPT09Im5vbmUiJiZmLl9kYXRhKGQsIm9sZGRpc3BsYXkiLGN2KGQubm9kZU5hbWUpKSk7Zm9yKGc9MDtnPGg7ZysrKXtkPXRoaXNbZ107aWYoZC5zdHlsZSl7ZT1kLnN0eWxlLmRpc3BsYXk7aWYoZT09PSIifHxlPT09Im5vbmUiKWQuc3R5bGUuZGlzcGxheT1mLl9kYXRhKGQsIm9sZGRpc3BsYXkiKXx8IiJ9fXJldHVybiB0aGlzfSxoaWRlOmZ1bmN0aW9uKGEsYixjKXtpZihhfHxhPT09MClyZXR1cm4gdGhpcy5hbmltYXRlKGN1KCJoaWRlIiwzKSxhLGIsYyk7dmFyIGQsZSxnPTAsaD10aGlzLmxlbmd0aDtmb3IoO2c8aDtnKyspZD10aGlzW2ddLGQuc3R5bGUmJihlPWYuY3NzKGQsImRpc3BsYXkiKSxlIT09Im5vbmUiJiYhZi5fZGF0YShkLCJvbGRkaXNwbGF5IikmJmYuX2RhdGEoZCwib2xkZGlzcGxheSIsZSkpO2ZvcihnPTA7ZzxoO2crKyl0aGlzW2ddLnN0eWxlJiYodGhpc1tnXS5zdHlsZS5kaXNwbGF5PSJub25lIik7cmV0dXJuIHRoaXN9LF90b2dnbGU6Zi5mbi50b2dnbGUsdG9nZ2xlOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD10eXBlb2YgYT09ImJvb2xlYW4iO2YuaXNGdW5jdGlvbihhKSYmZi5pc0Z1bmN0aW9uKGIpP3RoaXMuX3RvZ2dsZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6YT09bnVsbHx8ZD90aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYj1kP2E6Zih0aGlzKS5pcygiOmhpZGRlbiIpO2YodGhpcylbYj8ic2hvdyI6ImhpZGUiXSgpfSk6dGhpcy5hbmltYXRlKGN1KCJ0b2dnbGUiLDMpLGEsYixjKTtyZXR1cm4gdGhpc30sZmFkZVRvOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0aGlzLmZpbHRlcigiOmhpZGRlbiIpLmNzcygib3BhY2l0eSIsMCkuc2hvdygpLmVuZCgpLmFuaW1hdGUoe29wYWNpdHk6Yn0sYSxjLGQpfSxhbmltYXRlOmZ1bmN0aW9uKGEsYixjLGQpe2Z1bmN0aW9uIGcoKXtlLnF1ZXVlPT09ITEmJmYuX21hcmsodGhpcyk7dmFyIGI9Zi5leHRlbmQoe30sZSksYz10aGlzLm5vZGVUeXBlPT09MSxkPWMmJmYodGhpcykuaXMoIjpoaWRkZW4iKSxnLGgsaSxqLGssbCxtLG4sbztiLmFuaW1hdGVkUHJvcGVydGllcz17fTtmb3IoaSBpbiBhKXtnPWYuY2FtZWxDYXNlKGkpLGkhPT1nJiYoYVtnXT1hW2ldLGRlbGV0ZSBhW2ldKSxoPWFbZ10sZi5pc0FycmF5KGgpPyhiLmFuaW1hdGVkUHJvcGVydGllc1tnXT1oWzFdLGg9YVtnXT1oWzBdKTpiLmFuaW1hdGVkUHJvcGVydGllc1tnXT1iLnNwZWNpYWxFYXNpbmcmJmIuc3BlY2lhbEVhc2luZ1tnXXx8Yi5lYXNpbmd8fCJzd2luZyI7aWYoaD09PSJoaWRlIiYmZHx8aD09PSJzaG93IiYmIWQpcmV0dXJuIGIuY29tcGxldGUuY2FsbCh0aGlzKTtjJiYoZz09PSJoZWlnaHQifHxnPT09IndpZHRoIikmJihiLm92ZXJmbG93PVt0aGlzLnN0eWxlLm92ZXJmbG93LHRoaXMuc3R5bGUub3ZlcmZsb3dYLHRoaXMuc3R5bGUub3ZlcmZsb3dZXSxmLmNzcyh0aGlzLCJkaXNwbGF5Iik9PT0iaW5saW5lIiYmZi5jc3ModGhpcywiZmxvYXQiKT09PSJub25lIiYmKCFmLnN1cHBvcnQuaW5saW5lQmxvY2tOZWVkc0xheW91dHx8Y3YodGhpcy5ub2RlTmFtZSk9PT0iaW5saW5lIj90aGlzLnN0eWxlLmRpc3BsYXk9ImlubGluZS1ibG9jayI6dGhpcy5zdHlsZS56b29tPTEpKX1iLm92ZXJmbG93IT1udWxsJiYodGhpcy5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIik7Zm9yKGkgaW4gYSlqPW5ldyBmLmZ4KHRoaXMsYixpKSxoPWFbaV0sY24udGVzdChoKT8obz1mLl9kYXRhKHRoaXMsInRvZ2dsZSIraSl8fChoPT09InRvZ2dsZSI/ZD8ic2hvdyI6ImhpZGUiOjApLG8/KGYuX2RhdGEodGhpcywidG9nZ2xlIitpLG89PT0ic2hvdyI/ImhpZGUiOiJzaG93IiksaltvXSgpKTpqW2hdKCkpOihrPWNvLmV4ZWMoaCksbD1qLmN1cigpLGs/KG09cGFyc2VGbG9hdChrWzJdKSxuPWtbM118fChmLmNzc051bWJlcltpXT8iIjoicHgiKSxuIT09InB4IiYmKGYuc3R5bGUodGhpcyxpLChtfHwxKStuKSxsPShtfHwxKS9qLmN1cigpKmwsZi5zdHlsZSh0aGlzLGksbCtuKSksa1sxXSYmKG09KGtbMV09PT0iLT0iPy0xOjEpKm0rbCksai5jdXN0b20obCxtLG4pKTpqLmN1c3RvbShsLGgsIiIpKTtyZXR1cm4hMH12YXIgZT1mLnNwZWVkKGIsYyxkKTtpZihmLmlzRW1wdHlPYmplY3QoYSkpcmV0dXJuIHRoaXMuZWFjaChlLmNvbXBsZXRlLFshMV0pO2E9Zi5leHRlbmQoe30sYSk7cmV0dXJuIGUucXVldWU9PT0hMT90aGlzLmVhY2goZyk6dGhpcy5xdWV1ZShlLnF1ZXVlLGcpfSxzdG9wOmZ1bmN0aW9uKGEsYyxkKXt0eXBlb2YgYSE9InN0cmluZyImJihkPWMsYz1hLGE9YiksYyYmYSE9PSExJiZ0aGlzLnF1ZXVlKGF8fCJmeCIsW10pO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtmdW5jdGlvbiBoKGEsYixjKXt2YXIgZT1iW2NdO2YucmVtb3ZlRGF0YShhLGMsITApLGUuc3RvcChkKX12YXIgYixjPSExLGU9Zi50aW1lcnMsZz1mLl9kYXRhKHRoaXMpO2R8fGYuX3VubWFyayghMCx0aGlzKTtpZihhPT1udWxsKWZvcihiIGluIGcpZ1tiXSYmZ1tiXS5zdG9wJiZiLmluZGV4T2YoIi5ydW4iKT09PWIubGVuZ3RoLTQmJmgodGhpcyxnLGIpO2Vsc2UgZ1tiPWErIi5ydW4iXSYmZ1tiXS5zdG9wJiZoKHRoaXMsZyxiKTtmb3IoYj1lLmxlbmd0aDtiLS07KWVbYl0uZWxlbT09PXRoaXMmJihhPT1udWxsfHxlW2JdLnF1ZXVlPT09YSkmJihkP2VbYl0oITApOmVbYl0uc2F2ZVN0YXRlKCksYz0hMCxlLnNwbGljZShiLDEpKTsoIWR8fCFjKSYmZi5kZXF1ZXVlKHRoaXMsYSl9KX19KSxmLmVhY2goe3NsaWRlRG93bjpjdSgic2hvdyIsMSksc2xpZGVVcDpjdSgiaGlkZSIsMSksc2xpZGVUb2dnbGU6Y3UoInRvZ2dsZSIsMSksZmFkZUluOntvcGFjaXR5OiJzaG93In0sZmFkZU91dDp7b3BhY2l0eToiaGlkZSJ9LGZhZGVUb2dnbGU6e29wYWNpdHk6InRvZ2dsZSJ9fSxmdW5jdGlvbihhLGIpe2YuZm5bYV09ZnVuY3Rpb24oYSxjLGQpe3JldHVybiB0aGlzLmFuaW1hdGUoYixhLGMsZCl9fSksZi5leHRlbmQoe3NwZWVkOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hJiZ0eXBlb2YgYT09Im9iamVjdCI/Zi5leHRlbmQoe30sYSk6e2NvbXBsZXRlOmN8fCFjJiZifHxmLmlzRnVuY3Rpb24oYSkmJmEsZHVyYXRpb246YSxlYXNpbmc6YyYmYnx8YiYmIWYuaXNGdW5jdGlvbihiKSYmYn07ZC5kdXJhdGlvbj1mLmZ4Lm9mZj8wOnR5cGVvZiBkLmR1cmF0aW9uPT0ibnVtYmVyIj9kLmR1cmF0aW9uOmQuZHVyYXRpb24gaW4gZi5meC5zcGVlZHM/Zi5meC5zcGVlZHNbZC5kdXJhdGlvbl06Zi5meC5zcGVlZHMuX2RlZmF1bHQ7aWYoZC5xdWV1ZT09bnVsbHx8ZC5xdWV1ZT09PSEwKWQucXVldWU9ImZ4IjtkLm9sZD1kLmNvbXBsZXRlLGQuY29tcGxldGU9ZnVuY3Rpb24oYSl7Zi5pc0Z1bmN0aW9uKGQub2xkKSYmZC5vbGQuY2FsbCh0aGlzKSxkLnF1ZXVlP2YuZGVxdWV1ZSh0aGlzLGQucXVldWUpOmEhPT0hMSYmZi5fdW5tYXJrKHRoaXMpfTtyZXR1cm4gZH0sZWFzaW5nOntsaW5lYXI6ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIGMrZCphfSxzd2luZzpmdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4oLU1hdGguY29zKGEqTWF0aC5QSSkvMisuNSkqZCtjfX0sdGltZXJzOltdLGZ4OmZ1bmN0aW9uKGEsYixjKXt0aGlzLm9wdGlvbnM9Yix0aGlzLmVsZW09YSx0aGlzLnByb3A9YyxiLm9yaWc9Yi5vcmlnfHx7fX19KSxmLmZ4LnByb3RvdHlwZT17dXBkYXRlOmZ1bmN0aW9uKCl7dGhpcy5vcHRpb25zLnN0ZXAmJnRoaXMub3B0aW9ucy5zdGVwLmNhbGwodGhpcy5lbGVtLHRoaXMubm93LHRoaXMpLChmLmZ4LnN0ZXBbdGhpcy5wcm9wXXx8Zi5meC5zdGVwLl9kZWZhdWx0KSh0aGlzKX0sY3VyOmZ1bmN0aW9uKCl7aWYodGhpcy5lbGVtW3RoaXMucHJvcF0hPW51bGwmJighdGhpcy5lbGVtLnN0eWxlfHx0aGlzLmVsZW0uc3R5bGVbdGhpcy5wcm9wXT09bnVsbCkpcmV0dXJuIHRoaXMuZWxlbVt0aGlzLnByb3BdO3ZhciBhLGI9Zi5jc3ModGhpcy5lbGVtLHRoaXMucHJvcCk7cmV0dXJuIGlzTmFOKGE9cGFyc2VGbG9hdChiKSk/IWJ8fGI9PT0iYXV0byI/MDpiOmF9LGN1c3RvbTpmdW5jdGlvbihhLGMsZCl7ZnVuY3Rpb24gaChhKXtyZXR1cm4gZS5zdGVwKGEpfXZhciBlPXRoaXMsZz1mLmZ4O3RoaXMuc3RhcnRUaW1lPWNyfHxjcygpLHRoaXMuZW5kPWMsdGhpcy5ub3c9dGhpcy5zdGFydD1hLHRoaXMucG9zPXRoaXMuc3RhdGU9MCx0aGlzLnVuaXQ9ZHx8dGhpcy51bml0fHwoZi5jc3NOdW1iZXJbdGhpcy5wcm9wXT8iIjoicHgiKSxoLnF1ZXVlPXRoaXMub3B0aW9ucy5xdWV1ZSxoLmVsZW09dGhpcy5lbGVtLGguc2F2ZVN0YXRlPWZ1bmN0aW9uKCl7ZS5vcHRpb25zLmhpZGUmJmYuX2RhdGEoZS5lbGVtLCJmeHNob3ciK2UucHJvcCk9PT1iJiZmLl9kYXRhKGUuZWxlbSwiZnhzaG93IitlLnByb3AsZS5zdGFydCl9LGgoKSYmZi50aW1lcnMucHVzaChoKSYmIWNwJiYoY3A9c2V0SW50ZXJ2YWwoZy50aWNrLGcuaW50ZXJ2YWwpKX0sc2hvdzpmdW5jdGlvbigpe3ZhciBhPWYuX2RhdGEodGhpcy5lbGVtLCJmeHNob3ciK3RoaXMucHJvcCk7dGhpcy5vcHRpb25zLm9yaWdbdGhpcy5wcm9wXT1hfHxmLnN0eWxlKHRoaXMuZWxlbSx0aGlzLnByb3ApLHRoaXMub3B0aW9ucy5zaG93PSEwLGEhPT1iP3RoaXMuY3VzdG9tKHRoaXMuY3VyKCksYSk6dGhpcy5jdXN0b20odGhpcy5wcm9wPT09IndpZHRoInx8dGhpcy5wcm9wPT09ImhlaWdodCI/MTowLHRoaXMuY3VyKCkpLGYodGhpcy5lbGVtKS5zaG93KCl9LGhpZGU6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMub3JpZ1t0aGlzLnByb3BdPWYuX2RhdGEodGhpcy5lbGVtLCJmeHNob3ciK3RoaXMucHJvcCl8fGYuc3R5bGUodGhpcy5lbGVtLHRoaXMucHJvcCksdGhpcy5vcHRpb25zLmhpZGU9ITAsdGhpcy5jdXN0b20odGhpcy5jdXIoKSwwKX0sc3RlcDpmdW5jdGlvbihhKXt2YXIgYixjLGQsZT1jcnx8Y3MoKSxnPSEwLGg9dGhpcy5lbGVtLGk9dGhpcy5vcHRpb25zO2lmKGF8fGU+PWkuZHVyYXRpb24rdGhpcy5zdGFydFRpbWUpe3RoaXMubm93PXRoaXMuZW5kLHRoaXMucG9zPXRoaXMuc3RhdGU9MSx0aGlzLnVwZGF0ZSgpLGkuYW5pbWF0ZWRQcm9wZXJ0aWVzW3RoaXMucHJvcF09ITA7Zm9yKGIgaW4gaS5hbmltYXRlZFByb3BlcnRpZXMpaS5hbmltYXRlZFByb3BlcnRpZXNbYl0hPT0hMCYmKGc9ITEpO2lmKGcpe2kub3ZlcmZsb3chPW51bGwmJiFmLnN1cHBvcnQuc2hyaW5rV3JhcEJsb2NrcyYmZi5lYWNoKFsiIiwiWCIsIlkiXSxmdW5jdGlvbihhLGIpe2guc3R5bGVbIm92ZXJmbG93IitiXT1pLm92ZXJmbG93W2FdfSksaS5oaWRlJiZmKGgpLmhpZGUoKTtpZihpLmhpZGV8fGkuc2hvdylmb3IoYiBpbiBpLmFuaW1hdGVkUHJvcGVydGllcylmLnN0eWxlKGgsYixpLm9yaWdbYl0pLGYucmVtb3ZlRGF0YShoLCJmeHNob3ciK2IsITApLGYucmVtb3ZlRGF0YShoLCJ0b2dnbGUiK2IsITApO2Q9aS5jb21wbGV0ZSxkJiYoaS5jb21wbGV0ZT0hMSxkLmNhbGwoaCkpfXJldHVybiExfWkuZHVyYXRpb249PUluZmluaXR5P3RoaXMubm93PWU6KGM9ZS10aGlzLnN0YXJ0VGltZSx0aGlzLnN0YXRlPWMvaS5kdXJhdGlvbix0aGlzLnBvcz1mLmVhc2luZ1tpLmFuaW1hdGVkUHJvcGVydGllc1t0aGlzLnByb3BdXSh0aGlzLnN0YXRlLGMsMCwxLGkuZHVyYXRpb24pLHRoaXMubm93PXRoaXMuc3RhcnQrKHRoaXMuZW5kLXRoaXMuc3RhcnQpKnRoaXMucG9zKSx0aGlzLnVwZGF0ZSgpO3JldHVybiEwfX0sZi5leHRlbmQoZi5meCx7dGljazpmdW5jdGlvbigpe3ZhciBhLGI9Zi50aW1lcnMsYz0wO2Zvcig7YzxiLmxlbmd0aDtjKyspYT1iW2NdLCFhKCkmJmJbY109PT1hJiZiLnNwbGljZShjLS0sMSk7Yi5sZW5ndGh8fGYuZnguc3RvcCgpfSxpbnRlcnZhbDoxMyxzdG9wOmZ1bmN0aW9uKCl7Y2xlYXJJbnRlcnZhbChjcCksY3A9bnVsbH0sc3BlZWRzOntzbG93OjYwMCxmYXN0OjIwMCxfZGVmYXVsdDo0MDB9LHN0ZXA6e29wYWNpdHk6ZnVuY3Rpb24oYSl7Zi5zdHlsZShhLmVsZW0sIm9wYWNpdHkiLGEubm93KX0sX2RlZmF1bHQ6ZnVuY3Rpb24oYSl7YS5lbGVtLnN0eWxlJiZhLmVsZW0uc3R5bGVbYS5wcm9wXSE9bnVsbD9hLmVsZW0uc3R5bGVbYS5wcm9wXT1hLm5vdythLnVuaXQ6YS5lbGVtW2EucHJvcF09YS5ub3d9fX0pLGYuZWFjaChbIndpZHRoIiwiaGVpZ2h0Il0sZnVuY3Rpb24oYSxiKXtmLmZ4LnN0ZXBbYl09ZnVuY3Rpb24oYSl7Zi5zdHlsZShhLmVsZW0sYixNYXRoLm1heCgwLGEubm93KSthLnVuaXQpfX0pLGYuZXhwciYmZi5leHByLmZpbHRlcnMmJihmLmV4cHIuZmlsdGVycy5hbmltYXRlZD1mdW5jdGlvbihhKXtyZXR1cm4gZi5ncmVwKGYudGltZXJzLGZ1bmN0aW9uKGIpe3JldHVybiBhPT09Yi5lbGVtfSkubGVuZ3RofSk7dmFyIGN3PS9edCg/OmFibGV8ZHxoKSQvaSxjeD0vXig/OmJvZHl8aHRtbCkkL2k7ImdldEJvdW5kaW5nQ2xpZW50UmVjdCJpbiBjLmRvY3VtZW50RWxlbWVudD9mLmZuLm9mZnNldD1mdW5jdGlvbihhKXt2YXIgYj10aGlzWzBdLGM7aWYoYSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGIpe2Yub2Zmc2V0LnNldE9mZnNldCh0aGlzLGEsYil9KTtpZighYnx8IWIub3duZXJEb2N1bWVudClyZXR1cm4gbnVsbDtpZihiPT09Yi5vd25lckRvY3VtZW50LmJvZHkpcmV0dXJuIGYub2Zmc2V0LmJvZHlPZmZzZXQoYik7dHJ5e2M9Yi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKX1jYXRjaChkKXt9dmFyIGU9Yi5vd25lckRvY3VtZW50LGc9ZS5kb2N1bWVudEVsZW1lbnQ7aWYoIWN8fCFmLmNvbnRhaW5zKGcsYikpcmV0dXJuIGM/e3RvcDpjLnRvcCxsZWZ0OmMubGVmdH06e3RvcDowLGxlZnQ6MH07dmFyIGg9ZS5ib2R5LGk9Y3koZSksaj1nLmNsaWVudFRvcHx8aC5jbGllbnRUb3B8fDAsaz1nLmNsaWVudExlZnR8fGguY2xpZW50TGVmdHx8MCxsPWkucGFnZVlPZmZzZXR8fGYuc3VwcG9ydC5ib3hNb2RlbCYmZy5zY3JvbGxUb3B8fGguc2Nyb2xsVG9wLG09aS5wYWdlWE9mZnNldHx8Zi5zdXBwb3J0LmJveE1vZGVsJiZnLnNjcm9sbExlZnR8fGguc2Nyb2xsTGVmdCxuPWMudG9wK2wtaixvPWMubGVmdCttLWs7cmV0dXJue3RvcDpuLGxlZnQ6b319OmYuZm4ub2Zmc2V0PWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXNbMF07aWYoYSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGIpe2Yub2Zmc2V0LnNldE9mZnNldCh0aGlzLGEsYil9KTtpZighYnx8IWIub3duZXJEb2N1bWVudClyZXR1cm4gbnVsbDtpZihiPT09Yi5vd25lckRvY3VtZW50LmJvZHkpcmV0dXJuIGYub2Zmc2V0LmJvZHlPZmZzZXQoYik7dmFyIGMsZD1iLm9mZnNldFBhcmVudCxlPWIsZz1iLm93bmVyRG9jdW1lbnQsaD1nLmRvY3VtZW50RWxlbWVudCxpPWcuYm9keSxqPWcuZGVmYXVsdFZpZXcsaz1qP2ouZ2V0Q29tcHV0ZWRTdHlsZShiLG51bGwpOmIuY3VycmVudFN0eWxlLGw9Yi5vZmZzZXRUb3AsbT1iLm9mZnNldExlZnQ7d2hpbGUoKGI9Yi5wYXJlbnROb2RlKSYmYiE9PWkmJmIhPT1oKXtpZihmLnN1cHBvcnQuZml4ZWRQb3NpdGlvbiYmay5wb3NpdGlvbj09PSJmaXhlZCIpYnJlYWs7Yz1qP2ouZ2V0Q29tcHV0ZWRTdHlsZShiLG51bGwpOmIuY3VycmVudFN0eWxlLGwtPWIuc2Nyb2xsVG9wLG0tPWIuc2Nyb2xsTGVmdCxiPT09ZCYmKGwrPWIub2Zmc2V0VG9wLG0rPWIub2Zmc2V0TGVmdCxmLnN1cHBvcnQuZG9lc05vdEFkZEJvcmRlciYmKCFmLnN1cHBvcnQuZG9lc0FkZEJvcmRlckZvclRhYmxlQW5kQ2VsbHN8fCFjdy50ZXN0KGIubm9kZU5hbWUpKSYmKGwrPXBhcnNlRmxvYXQoYy5ib3JkZXJUb3BXaWR0aCl8fDAsbSs9cGFyc2VGbG9hdChjLmJvcmRlckxlZnRXaWR0aCl8fDApLGU9ZCxkPWIub2Zmc2V0UGFyZW50KSxmLnN1cHBvcnQuc3VidHJhY3RzQm9yZGVyRm9yT3ZlcmZsb3dOb3RWaXNpYmxlJiZjLm92ZXJmbG93IT09InZpc2libGUiJiYobCs9cGFyc2VGbG9hdChjLmJvcmRlclRvcFdpZHRoKXx8MCxtKz1wYXJzZUZsb2F0KGMuYm9yZGVyTGVmdFdpZHRoKXx8MCksaz1jfWlmKGsucG9zaXRpb249PT0icmVsYXRpdmUifHxrLnBvc2l0aW9uPT09InN0YXRpYyIpbCs9aS5vZmZzZXRUb3AsbSs9aS5vZmZzZXRMZWZ0O2Yuc3VwcG9ydC5maXhlZFBvc2l0aW9uJiZrLnBvc2l0aW9uPT09ImZpeGVkIiYmKGwrPU1hdGgubWF4KGguc2Nyb2xsVG9wLGkuc2Nyb2xsVG9wKSxtKz1NYXRoLm1heChoLnNjcm9sbExlZnQsaS5zY3JvbGxMZWZ0KSk7cmV0dXJue3RvcDpsLGxlZnQ6bX19LGYub2Zmc2V0PXtib2R5T2Zmc2V0OmZ1bmN0aW9uKGEpe3ZhciBiPWEub2Zmc2V0VG9wLGM9YS5vZmZzZXRMZWZ0O2Yuc3VwcG9ydC5kb2VzTm90SW5jbHVkZU1hcmdpbkluQm9keU9mZnNldCYmKGIrPXBhcnNlRmxvYXQoZi5jc3MoYSwibWFyZ2luVG9wIikpfHwwLGMrPXBhcnNlRmxvYXQoZi5jc3MoYSwibWFyZ2luTGVmdCIpKXx8MCk7cmV0dXJue3RvcDpiLGxlZnQ6Y319LHNldE9mZnNldDpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9Zi5jc3MoYSwicG9zaXRpb24iKTtkPT09InN0YXRpYyImJihhLnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSIpO3ZhciBlPWYoYSksZz1lLm9mZnNldCgpLGg9Zi5jc3MoYSwidG9wIiksaT1mLmNzcyhhLCJsZWZ0Iiksaj0oZD09PSJhYnNvbHV0ZSJ8fGQ9PT0iZml4ZWQiKSYmZi5pbkFycmF5KCJhdXRvIixbaCxpXSk+LTEsaz17fSxsPXt9LG0sbjtqPyhsPWUucG9zaXRpb24oKSxtPWwudG9wLG49bC5sZWZ0KToobT1wYXJzZUZsb2F0KGgpfHwwLG49cGFyc2VGbG9hdChpKXx8MCksZi5pc0Z1bmN0aW9uKGIpJiYoYj1iLmNhbGwoYSxjLGcpKSxiLnRvcCE9bnVsbCYmKGsudG9wPWIudG9wLWcudG9wK20pLGIubGVmdCE9bnVsbCYmKGsubGVmdD1iLmxlZnQtZy5sZWZ0K24pLCJ1c2luZyJpbiBiP2IudXNpbmcuY2FsbChhLGspOmUuY3NzKGspfX0sZi5mbi5leHRlbmQoe3Bvc2l0aW9uOmZ1bmN0aW9uKCl7aWYoIXRoaXNbMF0pcmV0dXJuIG51bGw7dmFyIGE9dGhpc1swXSxiPXRoaXMub2Zmc2V0UGFyZW50KCksYz10aGlzLm9mZnNldCgpLGQ9Y3gudGVzdChiWzBdLm5vZGVOYW1lKT97dG9wOjAsbGVmdDowfTpiLm9mZnNldCgpO2MudG9wLT1wYXJzZUZsb2F0KGYuY3NzKGEsIm1hcmdpblRvcCIpKXx8MCxjLmxlZnQtPXBhcnNlRmxvYXQoZi5jc3MoYSwibWFyZ2luTGVmdCIpKXx8MCxkLnRvcCs9cGFyc2VGbG9hdChmLmNzcyhiWzBdLCJib3JkZXJUb3BXaWR0aCIpKXx8MCxkLmxlZnQrPXBhcnNlRmxvYXQoZi5jc3MoYlswXSwiYm9yZGVyTGVmdFdpZHRoIikpfHwwO3JldHVybnt0b3A6Yy50b3AtZC50b3AsbGVmdDpjLmxlZnQtZC5sZWZ0fX0sb2Zmc2V0UGFyZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vZmZzZXRQYXJlbnR8fGMuYm9keTt3aGlsZShhJiYhY3gudGVzdChhLm5vZGVOYW1lKSYmZi5jc3MoYSwicG9zaXRpb24iKT09PSJzdGF0aWMiKWE9YS5vZmZzZXRQYXJlbnQ7cmV0dXJuIGF9KX19KSxmLmVhY2goWyJMZWZ0IiwiVG9wIl0sZnVuY3Rpb24oYSxjKXt2YXIgZD0ic2Nyb2xsIitjO2YuZm5bZF09ZnVuY3Rpb24oYyl7dmFyIGUsZztpZihjPT09Yil7ZT10aGlzWzBdO2lmKCFlKXJldHVybiBudWxsO2c9Y3koZSk7cmV0dXJuIGc/InBhZ2VYT2Zmc2V0ImluIGc/Z1thPyJwYWdlWU9mZnNldCI6InBhZ2VYT2Zmc2V0Il06Zi5zdXBwb3J0LmJveE1vZGVsJiZnLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFtkXXx8Zy5kb2N1bWVudC5ib2R5W2RdOmVbZF19cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2c9Y3kodGhpcyksZz9nLnNjcm9sbFRvKGE/ZihnKS5zY3JvbGxMZWZ0KCk6YyxhP2M6ZihnKS5zY3JvbGxUb3AoKSk6dGhpc1tkXT1jfSl9fSksZi5lYWNoKFsiSGVpZ2h0IiwiV2lkdGgiXSxmdW5jdGlvbihhLGMpe3ZhciBkPWMudG9Mb3dlckNhc2UoKTtmLmZuWyJpbm5lciIrY109ZnVuY3Rpb24oKXt2YXIgYT10aGlzWzBdO3JldHVybiBhP2Euc3R5bGU/cGFyc2VGbG9hdChmLmNzcyhhLGQsInBhZGRpbmciKSk6dGhpc1tkXSgpOm51bGx9LGYuZm5bIm91dGVyIitjXT1mdW5jdGlvbihhKXt2YXIgYj10aGlzWzBdO3JldHVybiBiP2Iuc3R5bGU/cGFyc2VGbG9hdChmLmNzcyhiLGQsYT8ibWFyZ2luIjoiYm9yZGVyIikpOnRoaXNbZF0oKTpudWxsfSxmLmZuW2RdPWZ1bmN0aW9uKGEpe3ZhciBlPXRoaXNbMF07aWYoIWUpcmV0dXJuIGE9PW51bGw/bnVsbDp0aGlzO2lmKGYuaXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGIpe3ZhciBjPWYodGhpcyk7Y1tkXShhLmNhbGwodGhpcyxiLGNbZF0oKSkpfSk7aWYoZi5pc1dpbmRvdyhlKSl7dmFyIGc9ZS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbImNsaWVudCIrY10saD1lLmRvY3VtZW50LmJvZHk7cmV0dXJuIGUuZG9jdW1lbnQuY29tcGF0TW9kZT09PSJDU1MxQ29tcGF0IiYmZ3x8aCYmaFsiY2xpZW50IitjXXx8Z31pZihlLm5vZGVUeXBlPT09OSlyZXR1cm4gTWF0aC5tYXgoZS5kb2N1bWVudEVsZW1lbnRbImNsaWVudCIrY10sZS5ib2R5WyJzY3JvbGwiK2NdLGUuZG9jdW1lbnRFbGVtZW50WyJzY3JvbGwiK2NdLGUuYm9keVsib2Zmc2V0IitjXSxlLmRvY3VtZW50RWxlbWVudFsib2Zmc2V0IitjXSk7aWYoYT09PWIpe3ZhciBpPWYuY3NzKGUsZCksaj1wYXJzZUZsb2F0KGkpO3JldHVybiBmLmlzTnVtZXJpYyhqKT9qOml9cmV0dXJuIHRoaXMuY3NzKGQsdHlwZW9mIGE9PSJzdHJpbmciP2E6YSsicHgiKX19KSxhLmpRdWVyeT1hLiQ9Zix0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kJiZkZWZpbmUuYW1kLmpRdWVyeSYmZGVmaW5lKCJqcXVlcnkiLFtdLGZ1bmN0aW9uKCl7cmV0dXJuIGZ9KX0pKHdpbmRvdyk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/api/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/api/api.internal.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ci8qCiAqIFRoaXMgaXMgcmVhbGx5IGEgZ29vZCBiaXQgcnViYmlzaCB0aGlzIG1ldGhvZCBvZiBleHBvc2luZyB0aGUgaW50ZXJuYWwgbWV0aG9kcwogKiBwdWJsaWNseS4uLiAtIFRvIGJlIGZpeGVkIGluIDIuMCB1c2luZyBtZXRob2RzIG9uIHRoZSBwcm90b3R5cGUKICovCgoKLyoqCiAqIENyZWF0ZSBhIHdyYXBwZXIgZnVuY3Rpb24gZm9yIGV4cG9ydGluZyBhbiBpbnRlcm5hbCBmdW5jdGlvbnMgdG8gYW4gZXh0ZXJuYWwgQVBJLgogKiAgQHBhcmFtIHtzdHJpbmd9IHNGdW5jIEFQSSBmdW5jdGlvbiBuYW1lCiAqICBAcmV0dXJucyB7ZnVuY3Rpb259IHdyYXBwZWQgZnVuY3Rpb24KICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQogKi8KZnVuY3Rpb24gX2ZuRXh0ZXJuQXBpRnVuYyAoc0Z1bmMpCnsKCXJldHVybiBmdW5jdGlvbigpIHsKCQl2YXIgYUFyZ3MgPSBbX2ZuU2V0dGluZ3NGcm9tTm9kZSh0aGlzW0RhdGFUYWJsZS5leHQuaUFwaUluZGV4XSldLmNvbmNhdCggCgkJCUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cykgKTsKCQlyZXR1cm4gRGF0YVRhYmxlLmV4dC5vQXBpW3NGdW5jXS5hcHBseSggdGhpcywgYUFyZ3MgKTsKCX07Cn0KCgovKioKICogUmVmZXJlbmNlIHRvIGludGVybmFsIGZ1bmN0aW9ucyBmb3IgdXNlIGJ5IHBsdWctaW4gZGV2ZWxvcGVycy4gTm90ZSB0aGF0IHRoZXNlCiAqIG1ldGhvZHMgYXJlIHJlZmVyZW5jZXMgdG8gaW50ZXJuYWwgZnVuY3Rpb25zIGFuZCBhcmUgY29uc2lkZXJlZCB0byBiZSBwcml2YXRlLgogKiBJZiB5b3UgdXNlIHRoZXNlIG1ldGhvZHMsIGJlIGF3YXJlIHRoYXQgdGhleSBhcmUgbGlhYmxlIHRvIGNoYW5nZSBiZXR3ZWVuIHZlcnNpb25zCiAqIChjaGVjayB0aGUgdXBncmFkZSBub3RlcykuCiAqICBAbmFtZXNwYWNlCiAqLwp0aGlzLm9BcGkgPSB7CgkiX2ZuRXh0ZXJuQXBpRnVuYyI6IF9mbkV4dGVybkFwaUZ1bmMsCgkiX2ZuSW5pdGlhbGlzZSI6IF9mbkluaXRpYWxpc2UsCgkiX2ZuSW5pdENvbXBsZXRlIjogX2ZuSW5pdENvbXBsZXRlLAoJIl9mbkxhbmd1YWdlQ29tcGF0IjogX2ZuTGFuZ3VhZ2VDb21wYXQsCgkiX2ZuQWRkQ29sdW1uIjogX2ZuQWRkQ29sdW1uLAoJIl9mbkNvbHVtbk9wdGlvbnMiOiBfZm5Db2x1bW5PcHRpb25zLAoJIl9mbkFkZERhdGEiOiBfZm5BZGREYXRhLAoJIl9mbkNyZWF0ZVRyIjogX2ZuQ3JlYXRlVHIsCgkiX2ZuR2F0aGVyRGF0YSI6IF9mbkdhdGhlckRhdGEsCgkiX2ZuQnVpbGRIZWFkIjogX2ZuQnVpbGRIZWFkLAoJIl9mbkRyYXdIZWFkIjogX2ZuRHJhd0hlYWQsCgkiX2ZuRHJhdyI6IF9mbkRyYXcsCgkiX2ZuUmVEcmF3IjogX2ZuUmVEcmF3LAoJIl9mbkFqYXhVcGRhdGUiOiBfZm5BamF4VXBkYXRlLAoJIl9mbkFqYXhQYXJhbWV0ZXJzIjogX2ZuQWpheFBhcmFtZXRlcnMsCgkiX2ZuQWpheFVwZGF0ZURyYXciOiBfZm5BamF4VXBkYXRlRHJhdywKCSJfZm5TZXJ2ZXJQYXJhbXMiOiBfZm5TZXJ2ZXJQYXJhbXMsCgkiX2ZuQWRkT3B0aW9uc0h0bWwiOiBfZm5BZGRPcHRpb25zSHRtbCwKCSJfZm5GZWF0dXJlSHRtbFRhYmxlIjogX2ZuRmVhdHVyZUh0bWxUYWJsZSwKCSJfZm5TY3JvbGxEcmF3IjogX2ZuU2Nyb2xsRHJhdywKCSJfZm5BZGp1c3RDb2x1bW5TaXppbmciOiBfZm5BZGp1c3RDb2x1bW5TaXppbmcsCgkiX2ZuRmVhdHVyZUh0bWxGaWx0ZXIiOiBfZm5GZWF0dXJlSHRtbEZpbHRlciwKCSJfZm5GaWx0ZXJDb21wbGV0ZSI6IF9mbkZpbHRlckNvbXBsZXRlLAoJIl9mbkZpbHRlckN1c3RvbSI6IF9mbkZpbHRlckN1c3RvbSwKCSJfZm5GaWx0ZXJDb2x1bW4iOiBfZm5GaWx0ZXJDb2x1bW4sCgkiX2ZuRmlsdGVyIjogX2ZuRmlsdGVyLAoJIl9mbkJ1aWxkU2VhcmNoQXJyYXkiOiBfZm5CdWlsZFNlYXJjaEFycmF5LAoJIl9mbkJ1aWxkU2VhcmNoUm93IjogX2ZuQnVpbGRTZWFyY2hSb3csCgkiX2ZuRmlsdGVyQ3JlYXRlU2VhcmNoIjogX2ZuRmlsdGVyQ3JlYXRlU2VhcmNoLAoJIl9mbkRhdGFUb1NlYXJjaCI6IF9mbkRhdGFUb1NlYXJjaCwKCSJfZm5Tb3J0IjogX2ZuU29ydCwKCSJfZm5Tb3J0QXR0YWNoTGlzdGVuZXIiOiBfZm5Tb3J0QXR0YWNoTGlzdGVuZXIsCgkiX2ZuU29ydGluZ0NsYXNzZXMiOiBfZm5Tb3J0aW5nQ2xhc3NlcywKCSJfZm5GZWF0dXJlSHRtbFBhZ2luYXRlIjogX2ZuRmVhdHVyZUh0bWxQYWdpbmF0ZSwKCSJfZm5QYWdlQ2hhbmdlIjogX2ZuUGFnZUNoYW5nZSwKCSJfZm5GZWF0dXJlSHRtbEluZm8iOiBfZm5GZWF0dXJlSHRtbEluZm8sCgkiX2ZuVXBkYXRlSW5mbyI6IF9mblVwZGF0ZUluZm8sCgkiX2ZuRmVhdHVyZUh0bWxMZW5ndGgiOiBfZm5GZWF0dXJlSHRtbExlbmd0aCwKCSJfZm5GZWF0dXJlSHRtbFByb2Nlc3NpbmciOiBfZm5GZWF0dXJlSHRtbFByb2Nlc3NpbmcsCgkiX2ZuUHJvY2Vzc2luZ0Rpc3BsYXkiOiBfZm5Qcm9jZXNzaW5nRGlzcGxheSwKCSJfZm5WaXNpYmxlVG9Db2x1bW5JbmRleCI6IF9mblZpc2libGVUb0NvbHVtbkluZGV4LAoJIl9mbkNvbHVtbkluZGV4VG9WaXNpYmxlIjogX2ZuQ29sdW1uSW5kZXhUb1Zpc2libGUsCgkiX2ZuTm9kZVRvRGF0YUluZGV4IjogX2ZuTm9kZVRvRGF0YUluZGV4LAoJIl9mblZpc2JsZUNvbHVtbnMiOiBfZm5WaXNibGVDb2x1bW5zLAoJIl9mbkNhbGN1bGF0ZUVuZCI6IF9mbkNhbGN1bGF0ZUVuZCwKCSJfZm5Db252ZXJ0VG9XaWR0aCI6IF9mbkNvbnZlcnRUb1dpZHRoLAoJIl9mbkNhbGN1bGF0ZUNvbHVtbldpZHRocyI6IF9mbkNhbGN1bGF0ZUNvbHVtbldpZHRocywKCSJfZm5TY3JvbGxpbmdXaWR0aEFkanVzdCI6IF9mblNjcm9sbGluZ1dpZHRoQWRqdXN0LAoJIl9mbkdldFdpZGVzdE5vZGUiOiBfZm5HZXRXaWRlc3ROb2RlLAoJIl9mbkdldE1heExlblN0cmluZyI6IF9mbkdldE1heExlblN0cmluZywKCSJfZm5TdHJpbmdUb0NzcyI6IF9mblN0cmluZ1RvQ3NzLAoJIl9mbkRldGVjdFR5cGUiOiBfZm5EZXRlY3RUeXBlLAoJIl9mblNldHRpbmdzRnJvbU5vZGUiOiBfZm5TZXR0aW5nc0Zyb21Ob2RlLAoJIl9mbkdldERhdGFNYXN0ZXIiOiBfZm5HZXREYXRhTWFzdGVyLAoJIl9mbkdldFRyTm9kZXMiOiBfZm5HZXRUck5vZGVzLAoJIl9mbkdldFRkTm9kZXMiOiBfZm5HZXRUZE5vZGVzLAoJIl9mbkVzY2FwZVJlZ2V4IjogX2ZuRXNjYXBlUmVnZXgsCgkiX2ZuRGVsZXRlSW5kZXgiOiBfZm5EZWxldGVJbmRleCwKCSJfZm5SZU9yZGVySW5kZXgiOiBfZm5SZU9yZGVySW5kZXgsCgkiX2ZuQ29sdW1uT3JkZXJpbmciOiBfZm5Db2x1bW5PcmRlcmluZywKCSJfZm5Mb2ciOiBfZm5Mb2csCgkiX2ZuQ2xlYXJUYWJsZSI6IF9mbkNsZWFyVGFibGUsCgkiX2ZuU2F2ZVN0YXRlIjogX2ZuU2F2ZVN0YXRlLAoJIl9mbkxvYWRTdGF0ZSI6IF9mbkxvYWRTdGF0ZSwKCSJfZm5DcmVhdGVDb29raWUiOiBfZm5DcmVhdGVDb29raWUsCgkiX2ZuUmVhZENvb2tpZSI6IF9mblJlYWRDb29raWUsCgkiX2ZuRGV0ZWN0SGVhZGVyIjogX2ZuRGV0ZWN0SGVhZGVyLAoJIl9mbkdldFVuaXF1ZVRocyI6IF9mbkdldFVuaXF1ZVRocywKCSJfZm5TY3JvbGxCYXJXaWR0aCI6IF9mblNjcm9sbEJhcldpZHRoLAoJIl9mbkFwcGx5VG9DaGlsZHJlbiI6IF9mbkFwcGx5VG9DaGlsZHJlbiwKCSJfZm5NYXAiOiBfZm5NYXAsCgkiX2ZuR2V0Um93RGF0YSI6IF9mbkdldFJvd0RhdGEsCgkiX2ZuR2V0Q2VsbERhdGEiOiBfZm5HZXRDZWxsRGF0YSwKCSJfZm5TZXRDZWxsRGF0YSI6IF9mblNldENlbGxEYXRhLAoJIl9mbkdldE9iamVjdERhdGFGbiI6IF9mbkdldE9iamVjdERhdGFGbiwKCSJfZm5TZXRPYmplY3REYXRhRm4iOiBfZm5TZXRPYmplY3REYXRhRm4sCgkiX2ZuQXBwbHlDb2x1bW5EZWZzIjogX2ZuQXBwbHlDb2x1bW5EZWZzLAoJIl9mbkJpbmRBY3Rpb24iOiBfZm5CaW5kQWN0aW9uLAoJIl9mbkV4dGVuZCI6IF9mbkV4dGVuZCwKCSJfZm5DYWxsYmFja1JlZyI6IF9mbkNhbGxiYWNrUmVnLAoJIl9mbkNhbGxiYWNrRmlyZSI6IF9mbkNhbGxiYWNrRmlyZSwKCSJfZm5Kc29uU3RyaW5nIjogX2ZuSnNvblN0cmluZywKCSJfZm5SZW5kZXIiOiBfZm5SZW5kZXIsCgkiX2ZuTm9kZVRvQ29sdW1uSW5kZXgiOiBfZm5Ob2RlVG9Db2x1bW5JbmRleCwKCSJfZm5JbmZvTWFjcm9zIjogX2ZuSW5mb01hY3JvcywKCSJfZm5Ccm93c2VyRGV0ZWN0IjogX2ZuQnJvd3NlckRldGVjdCwKCSJfZm5HZXRDb2x1bW5zIjogX2ZuR2V0Q29sdW1ucwp9OwoKJC5leHRlbmQoIERhdGFUYWJsZS5leHQub0FwaSwgdGhpcy5vQXBpICk7Cgpmb3IgKCB2YXIgc0Z1bmMgaW4gRGF0YVRhYmxlLmV4dC5vQXBpICkKewoJaWYgKCBzRnVuYyApCgl7CgkJdGhpc1tzRnVuY10gPSBfZm5FeHRlcm5BcGlGdW5jKHNGdW5jKTsKCX0KfQoK]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/api/api.methods.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CgovKioKICogUGVyZm9ybSBhIGpRdWVyeSBzZWxlY3RvciBhY3Rpb24gb24gdGhlIHRhYmxlJ3MgVFIgZWxlbWVudHMgKGZyb20gdGhlIHRib2R5KSBhbmQKICogcmV0dXJuIHRoZSByZXN1bHRpbmcgalF1ZXJ5IG9iamVjdC4KICogIEBwYXJhbSB7c3RyaW5nfG5vZGV8alF1ZXJ5fSBzU2VsZWN0b3IgalF1ZXJ5IHNlbGVjdG9yIG9yIG5vZGUgY29sbGVjdGlvbiB0byBhY3Qgb24KICogIEBwYXJhbSB7b2JqZWN0fSBbb09wdHNdIE9wdGlvbmFsIHBhcmFtZXRlcnMgZm9yIG1vZGlmeWluZyB0aGUgcm93cyB0byBiZSBpbmNsdWRlZAogKiAgQHBhcmFtIHtzdHJpbmd9IFtvT3B0cy5maWx0ZXI9bm9uZV0gU2VsZWN0IFRSIGVsZW1lbnRzIHRoYXQgbWVldCB0aGUgY3VycmVudCBmaWx0ZXIKICogICAgY3JpdGVyaW9uICgiYXBwbGllZCIpIG9yIGFsbCBUUiBlbGVtZW50cyAoaS5lLiBubyBmaWx0ZXIpLgogKiAgQHBhcmFtIHtzdHJpbmd9IFtvT3B0cy5vcmRlcj1jdXJyZW50XSBPcmRlciBvZiB0aGUgVFIgZWxlbWVudHMgaW4gdGhlIHByb2Nlc3NlZCBhcnJheS4KICogICAgQ2FuIGJlIGVpdGhlciAnY3VycmVudCcsIHdoZXJlYnkgdGhlIGN1cnJlbnQgc29ydGluZyBvZiB0aGUgdGFibGUgaXMgdXNlZCwgb3IKICogICAgJ29yaWdpbmFsJyB3aGVyZWJ5IHRoZSBvcmlnaW5hbCBvcmRlciB0aGUgZGF0YSB3YXMgcmVhZCBpbnRvIHRoZSB0YWJsZSBpcyB1c2VkLgogKiAgQHBhcmFtIHtzdHJpbmd9IFtvT3B0cy5wYWdlPWFsbF0gTGltaXQgdGhlIHNlbGVjdGlvbiB0byB0aGUgY3VycmVudGx5IGRpc3BsYXllZCBwYWdlCiAqICAgICgiY3VycmVudCIpIG9yIG5vdCAoImFsbCIpLiBJZiAnY3VycmVudCcgaXMgZ2l2ZW4sIHRoZW4gb3JkZXIgaXMgYXNzdW1lZCB0byBiZSAKICogICAgJ2N1cnJlbnQnIGFuZCBmaWx0ZXIgaXMgJ2FwcGxpZWQnLCByZWdhcmRsZXNzIG9mIHdoYXQgdGhleSBtaWdodCBiZSBnaXZlbiBhcy4KICogIEByZXR1cm5zIHtvYmplY3R9IGpRdWVyeSBvYmplY3QsIGZpbHRlcmVkIGJ5IHRoZSBnaXZlbiBzZWxlY3Rvci4KICogIEBkdG9wdCBBUEkKICoKICogIEBleGFtcGxlCiAqICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgewogKiAgICAgIHZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwogKgogKiAgICAgIC8vIEhpZ2hsaWdodCBldmVyeSBzZWNvbmQgcm93CiAqICAgICAgb1RhYmxlLiQoJ3RyOm9kZCcpLmNzcygnYmFja2dyb3VuZENvbG9yJywgJ2JsdWUnKTsKICogICAgfSApOwogKgogKiAgQGV4YW1wbGUKICogICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CiAqICAgICAgdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7CiAqCiAqICAgICAgLy8gRmlsdGVyIHRvIHJvd3Mgd2l0aCAnV2Via2l0JyBpbiB0aGVtLCBhZGQgYSBiYWNrZ3JvdW5kIGNvbG91ciBhbmQgdGhlbgogKiAgICAgIC8vIHJlbW92ZSB0aGUgZmlsdGVyLCB0aHVzIGhpZ2hsaWdodGluZyB0aGUgJ1dlYmtpdCcgcm93cyBvbmx5LgogKiAgICAgIG9UYWJsZS5mbkZpbHRlcignV2Via2l0Jyk7CiAqICAgICAgb1RhYmxlLiQoJ3RyJywgeyJmaWx0ZXIiOiAiYXBwbGllZCJ9KS5jc3MoJ2JhY2tncm91bmRDb2xvcicsICdibHVlJyk7CiAqICAgICAgb1RhYmxlLmZuRmlsdGVyKCcnKTsKICogICAgfSApOwogKi8KdGhpcy4kID0gZnVuY3Rpb24gKCBzU2VsZWN0b3IsIG9PcHRzICkKewoJdmFyIGksIGlMZW4sIGEgPSBbXSwgdHI7Cgl2YXIgb1NldHRpbmdzID0gX2ZuU2V0dGluZ3NGcm9tTm9kZSggdGhpc1tEYXRhVGFibGUuZXh0LmlBcGlJbmRleF0gKTsKCXZhciBhb0RhdGEgPSBvU2V0dGluZ3MuYW9EYXRhOwoJdmFyIGFpRGlzcGxheSA9IG9TZXR0aW5ncy5haURpc3BsYXk7Cgl2YXIgYWlEaXNwbGF5TWFzdGVyID0gb1NldHRpbmdzLmFpRGlzcGxheU1hc3RlcjsKCglpZiAoICFvT3B0cyApCgl7CgkJb09wdHMgPSB7fTsKCX0KCglvT3B0cyA9ICQuZXh0ZW5kKCB7fSwgewoJCSJmaWx0ZXIiOiAibm9uZSIsIC8vIGFwcGxpZWQKCQkib3JkZXIiOiAiY3VycmVudCIsIC8vICJvcmlnaW5hbCIKCQkicGFnZSI6ICJhbGwiIC8vIGN1cnJlbnQKCX0sIG9PcHRzICk7CgoJLy8gQ3VycmVudCBwYWdlIGltcGxpZXMgdGhhdCBvcmRlcj1jdXJyZW50IGFuZCBmaXRsZXI9YXBwbGllZCwgc2luY2UgaXQgaXMgZmFpcmx5CgkvLyBzZW5zZWxlc3Mgb3RoZXJ3aXNlCglpZiAoIG9PcHRzLnBhZ2UgPT0gJ2N1cnJlbnQnICkKCXsKCQlmb3IgKCBpPW9TZXR0aW5ncy5faURpc3BsYXlTdGFydCwgaUxlbj1vU2V0dGluZ3MuZm5EaXNwbGF5RW5kKCkgOyBpPGlMZW4gOyBpKysgKQoJCXsKCQkJdHIgPSBhb0RhdGFbIGFpRGlzcGxheVtpXSBdLm5UcjsKCQkJaWYgKCB0ciApCgkJCXsKCQkJCWEucHVzaCggdHIgKTsKCQkJfQoJCX0KCX0KCWVsc2UgaWYgKCBvT3B0cy5vcmRlciA9PSAiY3VycmVudCIgJiYgb09wdHMuZmlsdGVyID09ICJub25lIiApCgl7CgkJZm9yICggaT0wLCBpTGVuPWFpRGlzcGxheU1hc3Rlci5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCXsKCQkJdHIgPSBhb0RhdGFbIGFpRGlzcGxheU1hc3RlcltpXSBdLm5UcjsKCQkJaWYgKCB0ciApCgkJCXsKCQkJCWEucHVzaCggdHIgKTsKCQkJfQoJCX0KCX0KCWVsc2UgaWYgKCBvT3B0cy5vcmRlciA9PSAiY3VycmVudCIgJiYgb09wdHMuZmlsdGVyID09ICJhcHBsaWVkIiApCgl7CgkJZm9yICggaT0wLCBpTGVuPWFpRGlzcGxheS5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCXsKCQkJdHIgPSBhb0RhdGFbIGFpRGlzcGxheVtpXSBdLm5UcjsKCQkJaWYgKCB0ciApCgkJCXsKCQkJCWEucHVzaCggdHIgKTsKCQkJfQoJCX0KCX0KCWVsc2UgaWYgKCBvT3B0cy5vcmRlciA9PSAib3JpZ2luYWwiICYmIG9PcHRzLmZpbHRlciA9PSAibm9uZSIgKQoJewoJCWZvciAoIGk9MCwgaUxlbj1hb0RhdGEubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQl7CgkJCXRyID0gYW9EYXRhWyBpIF0ublRyIDsKCQkJaWYgKCB0ciApCgkJCXsKCQkJCWEucHVzaCggdHIgKTsKCQkJfQoJCX0KCX0KCWVsc2UgaWYgKCBvT3B0cy5vcmRlciA9PSAib3JpZ2luYWwiICYmIG9PcHRzLmZpbHRlciA9PSAiYXBwbGllZCIgKQoJewoJCWZvciAoIGk9MCwgaUxlbj1hb0RhdGEubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQl7CgkJCXRyID0gYW9EYXRhWyBpIF0ublRyOwoJCQlpZiAoICQuaW5BcnJheSggaSwgYWlEaXNwbGF5ICkgIT09IC0xICYmIHRyICkKCQkJewoJCQkJYS5wdXNoKCB0ciApOwoJCQl9CgkJfQoJfQoJZWxzZQoJewoJCV9mbkxvZyggb1NldHRpbmdzLCAxLCAiVW5rbm93biBzZWxlY3Rpb24gb3B0aW9ucyIgKTsKCX0KCgkvKiBXZSBuZWVkIHRvIGZpbHRlciBvbiB0aGUgVFIgZWxlbWVudHMgYW5kIGFsc28gJ2ZpbmQnIGluIHRoZWlyIGRlc2NlbmRhbnRzCgkgKiB0byBtYWtlIHRoZSBzZWxlY3RvciBhY3QgbGlrZSBpdCB3b3VsZCBpbiBhIGZ1bGwgdGFibGUgLSBzbyB3ZSBuZWVkCgkgKiB0byBidWlsZCBib3RoIHJlc3VsdHMgYW5kIHRoZW4gY29tYmluZSB0aGVtIHRvZ2V0aGVyCgkgKi8KCXZhciBqcUEgPSAkKGEpOwoJdmFyIGpxVFJzID0ganFBLmZpbHRlciggc1NlbGVjdG9yICk7Cgl2YXIganFEZXNjZW5kYW50cyA9IGpxQS5maW5kKCBzU2VsZWN0b3IgKTsKCglyZXR1cm4gJCggW10uY29uY2F0KCQubWFrZUFycmF5KGpxVFJzKSwgJC5tYWtlQXJyYXkoanFEZXNjZW5kYW50cykpICk7Cn07CgoKLyoqCiAqIEFsbW9zdCBpZGVudGljYWwgdG8gJCBpbiBvcGVyYXRpb24sIGJ1dCBpbiB0aGlzIGNhc2UgcmV0dXJucyB0aGUgZGF0YSBmb3IgdGhlIG1hdGNoZWQKICogcm93cyAtIGFzIHN1Y2gsIHRoZSBqUXVlcnkgc2VsZWN0b3IgdXNlZCBzaG91bGQgbWF0Y2ggVFIgcm93IG5vZGVzIG9yIFREL1RIIGNlbGwgbm9kZXMKICogcmF0aGVyIHRoYW4gYW55IGRlc2NlbmRhbnRzLCBzbyB0aGUgZGF0YSBjYW4gYmUgb2J0YWluZWQgZm9yIHRoZSByb3cvY2VsbC4gSWYgbWF0Y2hpbmcKICogcm93cyBhcmUgZm91bmQsIHRoZSBkYXRhIHJldHVybmVkIGlzIHRoZSBvcmlnaW5hbCBkYXRhIGFycmF5L29iamVjdCB0aGF0IHdhcyB1c2VkIHRvICAKICogY3JlYXRlIHRoZSByb3cgKG9yIGEgZ2VuZXJhdGVkIGFycmF5IGlmIGZyb20gYSBET00gc291cmNlKS4KICoKICogVGhpcyBtZXRob2QgaXMgb2Z0ZW4gdXNlZnVsIGluLWNvbWJpbmF0aW9uIHdpdGggJCB3aGVyZSBib3RoIGZ1bmN0aW9ucyBhcmUgZ2l2ZW4gdGhlCiAqIHNhbWUgcGFyYW1ldGVycyBhbmQgdGhlIGFycmF5IGluZGV4ZXMgd2lsbCBtYXRjaCBpZGVudGljYWxseS4KICogIEBwYXJhbSB7c3RyaW5nfG5vZGV8alF1ZXJ5fSBzU2VsZWN0b3IgalF1ZXJ5IHNlbGVjdG9yIG9yIG5vZGUgY29sbGVjdGlvbiB0byBhY3Qgb24KICogIEBwYXJhbSB7b2JqZWN0fSBbb09wdHNdIE9wdGlvbmFsIHBhcmFtZXRlcnMgZm9yIG1vZGlmeWluZyB0aGUgcm93cyB0byBiZSBpbmNsdWRlZAogKiAgQHBhcmFtIHtzdHJpbmd9IFtvT3B0cy5maWx0ZXI9bm9uZV0gU2VsZWN0IGVsZW1lbnRzIHRoYXQgbWVldCB0aGUgY3VycmVudCBmaWx0ZXIKICogICAgY3JpdGVyaW9uICgiYXBwbGllZCIpIG9yIGFsbCBlbGVtZW50cyAoaS5lLiBubyBmaWx0ZXIpLgogKiAgQHBhcmFtIHtzdHJpbmd9IFtvT3B0cy5vcmRlcj1jdXJyZW50XSBPcmRlciBvZiB0aGUgZGF0YSBpbiB0aGUgcHJvY2Vzc2VkIGFycmF5LgogKiAgICBDYW4gYmUgZWl0aGVyICdjdXJyZW50Jywgd2hlcmVieSB0aGUgY3VycmVudCBzb3J0aW5nIG9mIHRoZSB0YWJsZSBpcyB1c2VkLCBvcgogKiAgICAnb3JpZ2luYWwnIHdoZXJlYnkgdGhlIG9yaWdpbmFsIG9yZGVyIHRoZSBkYXRhIHdhcyByZWFkIGludG8gdGhlIHRhYmxlIGlzIHVzZWQuCiAqICBAcGFyYW0ge3N0cmluZ30gW29PcHRzLnBhZ2U9YWxsXSBMaW1pdCB0aGUgc2VsZWN0aW9uIHRvIHRoZSBjdXJyZW50bHkgZGlzcGxheWVkIHBhZ2UKICogICAgKCJjdXJyZW50Iikgb3Igbm90ICgiYWxsIikuIElmICdjdXJyZW50JyBpcyBnaXZlbiwgdGhlbiBvcmRlciBpcyBhc3N1bWVkIHRvIGJlIAogKiAgICAnY3VycmVudCcgYW5kIGZpbHRlciBpcyAnYXBwbGllZCcsIHJlZ2FyZGxlc3Mgb2Ygd2hhdCB0aGV5IG1pZ2h0IGJlIGdpdmVuIGFzLgogKiAgQHJldHVybnMge2FycmF5fSBEYXRhIGZvciB0aGUgbWF0Y2hlZCBlbGVtZW50cy4gSWYgYW55IGVsZW1lbnRzLCBhcyBhIHJlc3VsdCBvZiB0aGUKICogICAgc2VsZWN0b3IsIHdlcmUgbm90IFRSLCBURCBvciBUSCBlbGVtZW50cyBpbiB0aGUgRGF0YVRhYmxlLCB0aGV5IHdpbGwgaGF2ZSBhIG51bGwgCiAqICAgIGVudHJ5IGluIHRoZSBhcnJheS4KICogIEBkdG9wdCBBUEkKICoKICogIEBleGFtcGxlCiAqICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgewogKiAgICAgIHZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwogKgogKiAgICAgIC8vIEdldCB0aGUgZGF0YSBmcm9tIHRoZSBmaXJzdCByb3cgaW4gdGhlIHRhYmxlCiAqICAgICAgdmFyIGRhdGEgPSBvVGFibGUuXygndHI6Zmlyc3QnKTsKICoKICogICAgICAvLyBEbyBzb21ldGhpbmcgdXNlZnVsIHdpdGggdGhlIGRhdGEKICogICAgICBhbGVydCggIkZpcnN0IGNlbGwgaXM6ICIrZGF0YVswXSApOwogKiAgICB9ICk7CiAqCiAqICBAZXhhbXBsZQogKiAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKICogICAgICB2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKICoKICogICAgICAvLyBGaWx0ZXIgdG8gJ1dlYmtpdCcgYW5kIGdldCBhbGwgZGF0YSBmb3IgCiAqICAgICAgb1RhYmxlLmZuRmlsdGVyKCdXZWJraXQnKTsKICogICAgICB2YXIgZGF0YSA9IG9UYWJsZS5fKCd0cicsIHsiZmlsdGVyIjogImFwcGxpZWQifSk7CiAqICAgICAgCiAqICAgICAgLy8gRG8gc29tZXRoaW5nIHdpdGggdGhlIGRhdGEKICogICAgICBhbGVydCggZGF0YS5sZW5ndGgrIiByb3dzIG1hdGNoZWQgdGhlIGZpbHRlciIgKTsKICogICAgfSApOwogKi8KdGhpcy5fID0gZnVuY3Rpb24gKCBzU2VsZWN0b3IsIG9PcHRzICkKewoJdmFyIGFPdXQgPSBbXTsKCXZhciBpLCBpTGVuLCBpSW5kZXg7Cgl2YXIgYVRycyA9IHRoaXMuJCggc1NlbGVjdG9yLCBvT3B0cyApOwoKCWZvciAoIGk9MCwgaUxlbj1hVHJzLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgl7CgkJYU91dC5wdXNoKCB0aGlzLmZuR2V0RGF0YShhVHJzW2ldKSApOwoJfQoKCXJldHVybiBhT3V0Owp9OwoKCi8qKgogKiBBZGQgYSBzaW5nbGUgbmV3IHJvdyBvciBtdWx0aXBsZSByb3dzIG9mIGRhdGEgdG8gdGhlIHRhYmxlLiBQbGVhc2Ugbm90ZQogKiB0aGF0IHRoaXMgaXMgc3VpdGFibGUgZm9yIGNsaWVudC1zaWRlIHByb2Nlc3Npbmcgb25seSAtIGlmIHlvdSBhcmUgdXNpbmcgCiAqIHNlcnZlci1zaWRlIHByb2Nlc3NpbmcgKGkuZS4gImJTZXJ2ZXJTaWRlIjogdHJ1ZSksIHRoZW4gdG8gYWRkIGRhdGEsIHlvdQogKiBtdXN0IGFkZCBpdCB0byB0aGUgZGF0YSBzb3VyY2UsIGkuZS4gdGhlIHNlcnZlci1zaWRlLCB0aHJvdWdoIGFuIEFqYXggY2FsbC4KICogIEBwYXJhbSB7YXJyYXl8b2JqZWN0fSBtRGF0YSBUaGUgZGF0YSB0byBiZSBhZGRlZCB0byB0aGUgdGFibGUuIFRoaXMgY2FuIGJlOgogKiAgICA8dWw+CiAqICAgICAgPGxpPjFEIGFycmF5IG9mIGRhdGEgLSBhZGQgYSBzaW5nbGUgcm93IHdpdGggdGhlIGRhdGEgcHJvdmlkZWQ8L2xpPgogKiAgICAgIDxsaT4yRCBhcnJheSBvZiBhcnJheXMgLSBhZGQgbXVsdGlwbGUgcm93cyBpbiBhIHNpbmdsZSBjYWxsPC9saT4KICogICAgICA8bGk+b2JqZWN0IC0gZGF0YSBvYmplY3Qgd2hlbiB1c2luZyA8aT5tRGF0YTwvaT48L2xpPgogKiAgICAgIDxsaT5hcnJheSBvZiBvYmplY3RzIC0gbXVsdGlwbGUgZGF0YSBvYmplY3RzIHdoZW4gdXNpbmcgPGk+bURhdGE8L2k+PC9saT4KICogICAgPC91bD4KICogIEBwYXJhbSB7Ym9vbH0gW2JSZWRyYXc9dHJ1ZV0gcmVkcmF3IHRoZSB0YWJsZSBvciBub3QKICogIEByZXR1cm5zIHthcnJheX0gQW4gYXJyYXkgb2YgaW50ZWdlcnMsIHJlcHJlc2VudGluZyB0aGUgbGlzdCBvZiBpbmRleGVzIGluIAogKiAgICA8aT5hb0RhdGE8L2k+ICh7QGxpbmsgRGF0YVRhYmxlLm1vZGVscy5vU2V0dGluZ3N9KSB0aGF0IGhhdmUgYmVlbiBhZGRlZCB0byAKICogICAgdGhlIHRhYmxlLgogKiAgQGR0b3B0IEFQSQogKgogKiAgQGV4YW1wbGUKICogICAgLy8gR2xvYmFsIHZhciBmb3IgY291bnRlcgogKiAgICB2YXIgZ2lDb3VudCA9IDI7CiAqICAgIAogKiAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwogKiAgICB9ICk7CiAqICAgIAogKiAgICBmdW5jdGlvbiBmbkNsaWNrQWRkUm93KCkgewogKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCkuZm5BZGREYXRhKCBbCiAqICAgICAgICBnaUNvdW50KyIuMSIsCiAqICAgICAgICBnaUNvdW50KyIuMiIsCiAqICAgICAgICBnaUNvdW50KyIuMyIsCiAqICAgICAgICBnaUNvdW50KyIuNCIgXQogKiAgICAgICk7CiAqICAgICAgICAKICogICAgICBnaUNvdW50Kys7CiAqICAgIH0KICovCnRoaXMuZm5BZGREYXRhID0gZnVuY3Rpb24oIG1EYXRhLCBiUmVkcmF3ICkKewoJaWYgKCBtRGF0YS5sZW5ndGggPT09IDAgKQoJewoJCXJldHVybiBbXTsKCX0KCQoJdmFyIGFpUmV0dXJuID0gW107Cgl2YXIgaVRlc3Q7CgkKCS8qIEZpbmQgc2V0dGluZ3MgZnJvbSB0YWJsZSBub2RlICovCgl2YXIgb1NldHRpbmdzID0gX2ZuU2V0dGluZ3NGcm9tTm9kZSggdGhpc1tEYXRhVGFibGUuZXh0LmlBcGlJbmRleF0gKTsKCQoJLyogQ2hlY2sgaWYgd2Ugd2FudCB0byBhZGQgbXVsdGlwbGUgcm93cyBvciBub3QgKi8KCWlmICggdHlwZW9mIG1EYXRhWzBdID09PSAib2JqZWN0IiAmJiBtRGF0YVswXSAhPT0gbnVsbCApCgl7CgkJZm9yICggdmFyIGk9MCA7IGk8bURhdGEubGVuZ3RoIDsgaSsrICkKCQl7CgkJCWlUZXN0ID0gX2ZuQWRkRGF0YSggb1NldHRpbmdzLCBtRGF0YVtpXSApOwoJCQlpZiAoIGlUZXN0ID09IC0xICkKCQkJewoJCQkJcmV0dXJuIGFpUmV0dXJuOwoJCQl9CgkJCWFpUmV0dXJuLnB1c2goIGlUZXN0ICk7CgkJfQoJfQoJZWxzZQoJewoJCWlUZXN0ID0gX2ZuQWRkRGF0YSggb1NldHRpbmdzLCBtRGF0YSApOwoJCWlmICggaVRlc3QgPT0gLTEgKQoJCXsKCQkJcmV0dXJuIGFpUmV0dXJuOwoJCX0KCQlhaVJldHVybi5wdXNoKCBpVGVzdCApOwoJfQoJCglvU2V0dGluZ3MuYWlEaXNwbGF5ID0gb1NldHRpbmdzLmFpRGlzcGxheU1hc3Rlci5zbGljZSgpOwoJCglpZiAoIGJSZWRyYXcgPT09IHVuZGVmaW5lZCB8fCBiUmVkcmF3ICkKCXsKCQlfZm5SZURyYXcoIG9TZXR0aW5ncyApOwoJfQoJcmV0dXJuIGFpUmV0dXJuOwp9OwoKCi8qKgogKiBUaGlzIGZ1bmN0aW9uIHdpbGwgbWFrZSBEYXRhVGFibGVzIHJlY2FsY3VsYXRlIHRoZSBjb2x1bW4gc2l6ZXMsIGJhc2VkIG9uIHRoZSBkYXRhIAogKiBjb250YWluZWQgaW4gdGhlIHRhYmxlIGFuZCB0aGUgc2l6ZXMgYXBwbGllZCB0byB0aGUgY29sdW1ucyAoaW4gdGhlIERPTSwgQ1NTIG9yIAogKiB0aHJvdWdoIHRoZSBzV2lkdGggcGFyYW1ldGVyKS4gVGhpcyBjYW4gYmUgdXNlZnVsIHdoZW4gdGhlIHdpZHRoIG9mIHRoZSB0YWJsZSdzIAogKiBwYXJlbnQgZWxlbWVudCBjaGFuZ2VzIChmb3IgZXhhbXBsZSBhIHdpbmRvdyByZXNpemUpLgogKiAgQHBhcmFtIHtib29sZWFufSBbYlJlZHJhdz10cnVlXSBSZWRyYXcgdGhlIHRhYmxlIG9yIG5vdCwgeW91IHdpbGwgdHlwaWNhbGx5IHdhbnQgdG8KICogIEBkdG9wdCBBUEkKICoKICogIEBleGFtcGxlCiAqICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgewogKiAgICAgIHZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewogKiAgICAgICAgInNTY3JvbGxZIjogIjIwMHB4IiwKICogICAgICAgICJiUGFnaW5hdGUiOiBmYWxzZQogKiAgICAgIH0gKTsKICogICAgICAKICogICAgICAkKHdpbmRvdykuYmluZCgncmVzaXplJywgZnVuY3Rpb24gKCkgewogKiAgICAgICAgb1RhYmxlLmZuQWRqdXN0Q29sdW1uU2l6aW5nKCk7CiAqICAgICAgfSApOwogKiAgICB9ICk7CiAqLwp0aGlzLmZuQWRqdXN0Q29sdW1uU2l6aW5nID0gZnVuY3Rpb24gKCBiUmVkcmF3ICkKewoJdmFyIG9TZXR0aW5ncyA9IF9mblNldHRpbmdzRnJvbU5vZGUodGhpc1tEYXRhVGFibGUuZXh0LmlBcGlJbmRleF0pOwoJX2ZuQWRqdXN0Q29sdW1uU2l6aW5nKCBvU2V0dGluZ3MgKTsKCQoJaWYgKCBiUmVkcmF3ID09PSB1bmRlZmluZWQgfHwgYlJlZHJhdyApCgl7CgkJdGhpcy5mbkRyYXcoIGZhbHNlICk7Cgl9CgllbHNlIGlmICggb1NldHRpbmdzLm9TY3JvbGwuc1ggIT09ICIiIHx8IG9TZXR0aW5ncy5vU2Nyb2xsLnNZICE9PSAiIiApCgl7CgkJLyogSWYgbm90IHJlZHJhd2luZywgYnV0IHNjcm9sbGluZywgd2Ugd2FudCB0byBhcHBseSB0aGUgbmV3IGNvbHVtbiBzaXplcyBhbnl3YXkgKi8KCQl0aGlzLm9BcGkuX2ZuU2Nyb2xsRHJhdyhvU2V0dGluZ3MpOwoJfQp9OwoKCi8qKgogKiBRdWlja2x5IGFuZCBzaW1wbHkgY2xlYXIgYSB0YWJsZQogKiAgQHBhcmFtIHtib29sfSBbYlJlZHJhdz10cnVlXSByZWRyYXcgdGhlIHRhYmxlIG9yIG5vdAogKiAgQGR0b3B0IEFQSQogKgogKiAgQGV4YW1wbGUKICogICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CiAqICAgICAgdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7CiAqICAgICAgCiAqICAgICAgLy8gSW1tZWRpYXRlbHkgJ251a2UnIHRoZSBjdXJyZW50IHJvd3MgKHBlcmhhcHMgd2FpdGluZyBmb3IgYW4gQWpheCBjYWxsYmFjay4uLikKICogICAgICBvVGFibGUuZm5DbGVhclRhYmxlKCk7CiAqICAgIH0gKTsKICovCnRoaXMuZm5DbGVhclRhYmxlID0gZnVuY3Rpb24oIGJSZWRyYXcgKQp7CgkvKiBGaW5kIHNldHRpbmdzIGZyb20gdGFibGUgbm9kZSAqLwoJdmFyIG9TZXR0aW5ncyA9IF9mblNldHRpbmdzRnJvbU5vZGUoIHRoaXNbRGF0YVRhYmxlLmV4dC5pQXBpSW5kZXhdICk7CglfZm5DbGVhclRhYmxlKCBvU2V0dGluZ3MgKTsKCQoJaWYgKCBiUmVkcmF3ID09PSB1bmRlZmluZWQgfHwgYlJlZHJhdyApCgl7CgkJX2ZuRHJhdyggb1NldHRpbmdzICk7Cgl9Cn07CgoKLyoqCiAqIFRoZSBleGFjdCBvcHBvc2l0ZSBvZiAnb3BlbmluZycgYSByb3csIHRoaXMgZnVuY3Rpb24gd2lsbCBjbG9zZSBhbnkgcm93cyB3aGljaCAKICogYXJlIGN1cnJlbnRseSAnb3BlbicuCiAqICBAcGFyYW0ge25vZGV9IG5UciB0aGUgdGFibGUgcm93IHRvICdjbG9zZScKICogIEByZXR1cm5zIHtpbnR9IDAgb24gc3VjY2Vzcywgb3IgMSBpZiBmYWlsZWQgKGNhbid0IGZpbmQgdGhlIHJvdykKICogIEBkdG9wdCBBUEkKICoKICogIEBleGFtcGxlCiAqICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgewogKiAgICAgIHZhciBvVGFibGU7CiAqICAgICAgCiAqICAgICAgLy8gJ29wZW4nIGFuIGluZm9ybWF0aW9uIHJvdyB3aGVuIGEgcm93IGlzIGNsaWNrZWQgb24KICogICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmNsaWNrKCBmdW5jdGlvbiAoKSB7CiAqICAgICAgICBpZiAoIG9UYWJsZS5mbklzT3Blbih0aGlzKSApIHsKICogICAgICAgICAgb1RhYmxlLmZuQ2xvc2UoIHRoaXMgKTsKICogICAgICAgIH0gZWxzZSB7CiAqICAgICAgICAgIG9UYWJsZS5mbk9wZW4oIHRoaXMsICJUZW1wb3Jhcnkgcm93IG9wZW5lZCIsICJpbmZvX3JvdyIgKTsKICogICAgICAgIH0KICogICAgICB9ICk7CiAqICAgICAgCiAqICAgICAgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKICogICAgfSApOwogKi8KdGhpcy5mbkNsb3NlID0gZnVuY3Rpb24oIG5UciApCnsKCS8qIEZpbmQgc2V0dGluZ3MgZnJvbSB0YWJsZSBub2RlICovCgl2YXIgb1NldHRpbmdzID0gX2ZuU2V0dGluZ3NGcm9tTm9kZSggdGhpc1tEYXRhVGFibGUuZXh0LmlBcGlJbmRleF0gKTsKCQoJZm9yICggdmFyIGk9MCA7IGk8b1NldHRpbmdzLmFvT3BlblJvd3MubGVuZ3RoIDsgaSsrICkKCXsKCQlpZiAoIG9TZXR0aW5ncy5hb09wZW5Sb3dzW2ldLm5QYXJlbnQgPT0gblRyICkKCQl7CgkJCXZhciBuVHJQYXJlbnQgPSBvU2V0dGluZ3MuYW9PcGVuUm93c1tpXS5uVHIucGFyZW50Tm9kZTsKCQkJaWYgKCBuVHJQYXJlbnQgKQoJCQl7CgkJCQkvKiBSZW1vdmUgaXQgaWYgaXQgaXMgY3VycmVudGx5IG9uIGRpc3BsYXkgKi8KCQkJCW5UclBhcmVudC5yZW1vdmVDaGlsZCggb1NldHRpbmdzLmFvT3BlblJvd3NbaV0ublRyICk7CgkJCX0KCQkJb1NldHRpbmdzLmFvT3BlblJvd3Muc3BsaWNlKCBpLCAxICk7CgkJCXJldHVybiAwOwoJCX0KCX0KCXJldHVybiAxOwp9OwoKCi8qKgogKiBSZW1vdmUgYSByb3cgZm9yIHRoZSB0YWJsZQogKiAgQHBhcmFtIHttaXhlZH0gbVRhcmdldCBUaGUgaW5kZXggb2YgdGhlIHJvdyBmcm9tIGFvRGF0YSB0byBiZSBkZWxldGVkLCBvcgogKiAgICB0aGUgVFIgZWxlbWVudCB5b3Ugd2FudCB0byBkZWxldGUKICogIEBwYXJhbSB7ZnVuY3Rpb258bnVsbH0gW2ZuQ2FsbEJhY2tdIENhbGxiYWNrIGZ1bmN0aW9uCiAqICBAcGFyYW0ge2Jvb2x9IFtiUmVkcmF3PXRydWVdIFJlZHJhdyB0aGUgdGFibGUgb3Igbm90CiAqICBAcmV0dXJucyB7YXJyYXl9IFRoZSByb3cgdGhhdCB3YXMgZGVsZXRlZAogKiAgQGR0b3B0IEFQSQogKgogKiAgQGV4YW1wbGUKICogICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CiAqICAgICAgdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7CiAqICAgICAgCiAqICAgICAgLy8gSW1tZWRpYXRlbHkgcmVtb3ZlIHRoZSBmaXJzdCByb3cKICogICAgICBvVGFibGUuZm5EZWxldGVSb3coIDAgKTsKICogICAgfSApOwogKi8KdGhpcy5mbkRlbGV0ZVJvdyA9IGZ1bmN0aW9uKCBtVGFyZ2V0LCBmbkNhbGxCYWNrLCBiUmVkcmF3ICkKewoJLyogRmluZCBzZXR0aW5ncyBmcm9tIHRhYmxlIG5vZGUgKi8KCXZhciBvU2V0dGluZ3MgPSBfZm5TZXR0aW5nc0Zyb21Ob2RlKCB0aGlzW0RhdGFUYWJsZS5leHQuaUFwaUluZGV4XSApOwoJdmFyIGksIGlMZW4sIGlBT0RhdGFJbmRleDsKCQoJaUFPRGF0YUluZGV4ID0gKHR5cGVvZiBtVGFyZ2V0ID09PSAnb2JqZWN0JykgPyAKCQlfZm5Ob2RlVG9EYXRhSW5kZXgob1NldHRpbmdzLCBtVGFyZ2V0KSA6IG1UYXJnZXQ7CgkKCS8qIFJldHVybiB0aGUgZGF0YSBhcnJheSBmcm9tIHRoaXMgcm93ICovCgl2YXIgb0RhdGEgPSBvU2V0dGluZ3MuYW9EYXRhLnNwbGljZSggaUFPRGF0YUluZGV4LCAxICk7CgoJLyogVXBkYXRlIHRoZSBfRFRfUm93SW5kZXggcGFyYW1ldGVyICovCglmb3IgKCBpPTAsIGlMZW49b1NldHRpbmdzLmFvRGF0YS5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJewoJCWlmICggb1NldHRpbmdzLmFvRGF0YVtpXS5uVHIgIT09IG51bGwgKQoJCXsKCQkJb1NldHRpbmdzLmFvRGF0YVtpXS5uVHIuX0RUX1Jvd0luZGV4ID0gaTsKCQl9Cgl9CgkKCS8qIFJlbW92ZSB0aGUgdGFyZ2V0IHJvdyBmcm9tIHRoZSBzZWFyY2ggYXJyYXkgKi8KCXZhciBpRGlzcGxheUluZGV4ID0gJC5pbkFycmF5KCBpQU9EYXRhSW5kZXgsIG9TZXR0aW5ncy5haURpc3BsYXkgKTsKCW9TZXR0aW5ncy5hc0RhdGFTZWFyY2guc3BsaWNlKCBpRGlzcGxheUluZGV4LCAxICk7CgkKCS8qIERlbGV0ZSBmcm9tIHRoZSBkaXNwbGF5IGFycmF5cyAqLwoJX2ZuRGVsZXRlSW5kZXgoIG9TZXR0aW5ncy5haURpc3BsYXlNYXN0ZXIsIGlBT0RhdGFJbmRleCApOwoJX2ZuRGVsZXRlSW5kZXgoIG9TZXR0aW5ncy5haURpc3BsYXksIGlBT0RhdGFJbmRleCApOwoJCgkvKiBJZiB0aGVyZSBpcyBhIHVzZXIgY2FsbGJhY2sgZnVuY3Rpb24gLSBjYWxsIGl0ICovCglpZiAoIHR5cGVvZiBmbkNhbGxCYWNrID09PSAiZnVuY3Rpb24iICkKCXsKCQlmbkNhbGxCYWNrLmNhbGwoIHRoaXMsIG9TZXR0aW5ncywgb0RhdGEgKTsKCX0KCQoJLyogQ2hlY2sgZm9yIGFuICdvdmVyZmxvdycgdGhleSBjYXNlIGZvciBkaXNwbGF5aW5nIHRoZSB0YWJsZSAqLwoJaWYgKCBvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQgPj0gb1NldHRpbmdzLmZuUmVjb3Jkc0Rpc3BsYXkoKSApCgl7CgkJb1NldHRpbmdzLl9pRGlzcGxheVN0YXJ0IC09IG9TZXR0aW5ncy5faURpc3BsYXlMZW5ndGg7CgkJaWYgKCBvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQgPCAwICkKCQl7CgkJCW9TZXR0aW5ncy5faURpc3BsYXlTdGFydCA9IDA7CgkJfQoJfQoJCglpZiAoIGJSZWRyYXcgPT09IHVuZGVmaW5lZCB8fCBiUmVkcmF3ICkKCXsKCQlfZm5DYWxjdWxhdGVFbmQoIG9TZXR0aW5ncyApOwoJCV9mbkRyYXcoIG9TZXR0aW5ncyApOwoJfQoJCglyZXR1cm4gb0RhdGE7Cn07CgoKLyoqCiAqIFJlc3RvcmUgdGhlIHRhYmxlIHRvIGl0J3Mgb3JpZ2luYWwgc3RhdGUgaW4gdGhlIERPTSBieSByZW1vdmluZyBhbGwgb2YgRGF0YVRhYmxlcyAKICogZW5oYW5jZW1lbnRzLCBhbHRlcmF0aW9ucyB0byB0aGUgRE9NIHN0cnVjdHVyZSBvZiB0aGUgdGFibGUgYW5kIGV2ZW50IGxpc3RlbmVycy4KICogIEBwYXJhbSB7Ym9vbGVhbn0gW2JSZW1vdmU9ZmFsc2VdIENvbXBsZXRlbHkgcmVtb3ZlIHRoZSB0YWJsZSBmcm9tIHRoZSBET00KICogIEBkdG9wdCBBUEkKICoKICogIEBleGFtcGxlCiAqICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgewogKiAgICAgIC8vIFRoaXMgZXhhbXBsZSBpcyBmYWlybHkgcG9pbnRsZXNzIGluIHJlYWxpdHksIGJ1dCBzaG93cyBob3cgZm5EZXN0cm95IGNhbiBiZSB1c2VkCiAqICAgICAgdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7CiAqICAgICAgb1RhYmxlLmZuRGVzdHJveSgpOwogKiAgICB9ICk7CiAqLwp0aGlzLmZuRGVzdHJveSA9IGZ1bmN0aW9uICggYlJlbW92ZSApCnsKCXZhciBvU2V0dGluZ3MgPSBfZm5TZXR0aW5nc0Zyb21Ob2RlKCB0aGlzW0RhdGFUYWJsZS5leHQuaUFwaUluZGV4XSApOwoJdmFyIG5PcmlnID0gb1NldHRpbmdzLm5UYWJsZVdyYXBwZXIucGFyZW50Tm9kZTsKCXZhciBuQm9keSA9IG9TZXR0aW5ncy5uVEJvZHk7Cgl2YXIgaSwgaUxlbjsKCgliUmVtb3ZlID0gKGJSZW1vdmU9PT11bmRlZmluZWQpID8gZmFsc2UgOiB0cnVlOwoJCgkvKiBGbGFnIHRvIG5vdGUgdGhhdCB0aGUgdGFibGUgaXMgY3VycmVudGx5IGJlaW5nIGRlc3Ryb3llZCAtIG5vIGFjdGlvbiBzaG91bGQgYmUgdGFrZW4gKi8KCW9TZXR0aW5ncy5iRGVzdHJveWluZyA9IHRydWU7CgkKCS8qIEZpcmUgb2ZmIHRoZSBkZXN0cm95IGNhbGxiYWNrcyBmb3IgcGx1Zy1pbnMgZXRjICovCglfZm5DYWxsYmFja0ZpcmUoIG9TZXR0aW5ncywgImFvRGVzdHJveUNhbGxiYWNrIiwgImRlc3Ryb3kiLCBbb1NldHRpbmdzXSApOwoJCgkvKiBSZXN0b3JlIGhpZGRlbiBjb2x1bW5zICovCglmb3IgKCBpPTAsIGlMZW49b1NldHRpbmdzLmFvQ29sdW1ucy5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJewoJCWlmICggb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5iVmlzaWJsZSA9PT0gZmFsc2UgKQoJCXsKCQkJdGhpcy5mblNldENvbHVtblZpcyggaSwgdHJ1ZSApOwoJCX0KCX0KCQoJLyogQmxpdHogYWxsIERUIGV2ZW50cyAqLwoJJChvU2V0dGluZ3MublRhYmxlV3JhcHBlcikuZmluZCgnKicpLmFuZFNlbGYoKS51bmJpbmQoJy5EVCcpOwoJCgkvKiBJZiB0aGVyZSBpcyBhbiAnZW1wdHknIGluZGljYXRvciByb3csIHJlbW92ZSBpdCAqLwoJJCgndGJvZHk+dHI+dGQuJytvU2V0dGluZ3Mub0NsYXNzZXMuc1Jvd0VtcHR5LCBvU2V0dGluZ3MublRhYmxlKS5wYXJlbnQoKS5yZW1vdmUoKTsKCQoJLyogV2hlbiBzY3JvbGxpbmcgd2UgaGFkIHRvIGJyZWFrIHRoZSB0YWJsZSB1cCAtIHJlc3RvcmUgaXQgKi8KCWlmICggb1NldHRpbmdzLm5UYWJsZSAhPSBvU2V0dGluZ3MublRIZWFkLnBhcmVudE5vZGUgKQoJewoJCSQob1NldHRpbmdzLm5UYWJsZSkuY2hpbGRyZW4oJ3RoZWFkJykucmVtb3ZlKCk7CgkJb1NldHRpbmdzLm5UYWJsZS5hcHBlbmRDaGlsZCggb1NldHRpbmdzLm5USGVhZCApOwoJfQoJCglpZiAoIG9TZXR0aW5ncy5uVEZvb3QgJiYgb1NldHRpbmdzLm5UYWJsZSAhPSBvU2V0dGluZ3MublRGb290LnBhcmVudE5vZGUgKQoJewoJCSQob1NldHRpbmdzLm5UYWJsZSkuY2hpbGRyZW4oJ3Rmb290JykucmVtb3ZlKCk7CgkJb1NldHRpbmdzLm5UYWJsZS5hcHBlbmRDaGlsZCggb1NldHRpbmdzLm5URm9vdCApOwoJfQoJCgkvKiBSZW1vdmUgdGhlIERhdGFUYWJsZXMgZ2VuZXJhdGVkIG5vZGVzLCBldmVudHMgYW5kIGNsYXNzZXMgKi8KCW9TZXR0aW5ncy5uVGFibGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCggb1NldHRpbmdzLm5UYWJsZSApOwoJJChvU2V0dGluZ3MublRhYmxlV3JhcHBlcikucmVtb3ZlKCk7CgkKCW9TZXR0aW5ncy5hYVNvcnRpbmcgPSBbXTsKCW9TZXR0aW5ncy5hYVNvcnRpbmdGaXhlZCA9IFtdOwoJX2ZuU29ydGluZ0NsYXNzZXMoIG9TZXR0aW5ncyApOwoJCgkkKF9mbkdldFRyTm9kZXMoIG9TZXR0aW5ncyApKS5yZW1vdmVDbGFzcyggb1NldHRpbmdzLmFzU3RyaXBlQ2xhc3Nlcy5qb2luKCcgJykgKTsKCQoJJCgndGgsIHRkJywgb1NldHRpbmdzLm5USGVhZCkucmVtb3ZlQ2xhc3MoIFsKCQlvU2V0dGluZ3Mub0NsYXNzZXMuc1NvcnRhYmxlLAoJCW9TZXR0aW5ncy5vQ2xhc3Nlcy5zU29ydGFibGVBc2MsCgkJb1NldHRpbmdzLm9DbGFzc2VzLnNTb3J0YWJsZURlc2MsCgkJb1NldHRpbmdzLm9DbGFzc2VzLnNTb3J0YWJsZU5vbmUgXS5qb2luKCcgJykKCSk7CglpZiAoIG9TZXR0aW5ncy5iSlVJICkKCXsKCQkkKCd0aCBzcGFuLicrb1NldHRpbmdzLm9DbGFzc2VzLnNTb3J0SWNvbgoJCQkrICcsIHRkIHNwYW4uJytvU2V0dGluZ3Mub0NsYXNzZXMuc1NvcnRJY29uLCBvU2V0dGluZ3MublRIZWFkKS5yZW1vdmUoKTsKCgkJJCgndGgsIHRkJywgb1NldHRpbmdzLm5USGVhZCkuZWFjaCggZnVuY3Rpb24gKCkgewoJCQl2YXIganFXcmFwcGVyID0gJCgnZGl2Licrb1NldHRpbmdzLm9DbGFzc2VzLnNTb3J0SlVJV3JhcHBlciwgdGhpcyk7CgkJCXZhciBraWRzID0ganFXcmFwcGVyLmNvbnRlbnRzKCk7CgkJCSQodGhpcykuYXBwZW5kKCBraWRzICk7CgkJCWpxV3JhcHBlci5yZW1vdmUoKTsKCQl9ICk7Cgl9CgkKCS8qIEFkZCB0aGUgVFIgZWxlbWVudHMgYmFjayBpbnRvIHRoZSB0YWJsZSBpbiB0aGVpciBvcmlnaW5hbCBvcmRlciAqLwoJaWYgKCAhYlJlbW92ZSAmJiBvU2V0dGluZ3MublRhYmxlUmVpbnNlcnRCZWZvcmUgKQoJewoJCW5PcmlnLmluc2VydEJlZm9yZSggb1NldHRpbmdzLm5UYWJsZSwgb1NldHRpbmdzLm5UYWJsZVJlaW5zZXJ0QmVmb3JlICk7Cgl9CgllbHNlIGlmICggIWJSZW1vdmUgKQoJewoJCW5PcmlnLmFwcGVuZENoaWxkKCBvU2V0dGluZ3MublRhYmxlICk7Cgl9CgoJZm9yICggaT0wLCBpTGVuPW9TZXR0aW5ncy5hb0RhdGEubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCXsKCQlpZiAoIG9TZXR0aW5ncy5hb0RhdGFbaV0ublRyICE9PSBudWxsICkKCQl7CgkJCW5Cb2R5LmFwcGVuZENoaWxkKCBvU2V0dGluZ3MuYW9EYXRhW2ldLm5UciApOwoJCX0KCX0KCQoJLyogUmVzdG9yZSB0aGUgd2lkdGggb2YgdGhlIG9yaWdpbmFsIHRhYmxlICovCglpZiAoIG9TZXR0aW5ncy5vRmVhdHVyZXMuYkF1dG9XaWR0aCA9PT0gdHJ1ZSApCgl7CgkgIG9TZXR0aW5ncy5uVGFibGUuc3R5bGUud2lkdGggPSBfZm5TdHJpbmdUb0NzcyhvU2V0dGluZ3Muc0Rlc3Ryb3lXaWR0aCk7Cgl9CgkKCS8qIElmIHRoZSB3ZXJlIG9yaWdpbmFsbHkgb2RkL2V2ZW4gdHlwZSBjbGFzc2VzIC0gdGhlbiB3ZSBhZGQgdGhlbSBiYWNrIGhlcmUuIE5vdGUKCSAqIHRoaXMgaXMgbm90IGZvb2wgcHJvb2YgKGZvciBleGFtcGxlIGlmIG5vdCBhbGwgcm93cyBhcyBvZGQvZXZlbiBjbGFzc2VzIC0gYnV0IAoJICogaXQncyBhIGdvb2QgZWZmb3J0IHdpdGhvdXQgZ2V0dGluZyBjYXJyaWVkIGF3YXkKCSAqLwoJJChuQm9keSkuY2hpbGRyZW4oJ3RyOmV2ZW4nKS5hZGRDbGFzcyggb1NldHRpbmdzLmFzRGVzdHJveVN0cmlwZXNbMF0gKTsKCSQobkJvZHkpLmNoaWxkcmVuKCd0cjpvZGQnKS5hZGRDbGFzcyggb1NldHRpbmdzLmFzRGVzdHJveVN0cmlwZXNbMV0gKTsKCQoJLyogUmVtb3ZlIHRoZSBzZXR0aW5ncyBvYmplY3QgZnJvbSB0aGUgc2V0dGluZ3MgYXJyYXkgKi8KCWZvciAoIGk9MCwgaUxlbj1EYXRhVGFibGUuc2V0dGluZ3MubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCXsKCQlpZiAoIERhdGFUYWJsZS5zZXR0aW5nc1tpXSA9PSBvU2V0dGluZ3MgKQoJCXsKCQkJRGF0YVRhYmxlLnNldHRpbmdzLnNwbGljZSggaSwgMSApOwoJCX0KCX0KCQoJLyogRW5kIGl0IGFsbCAqLwoJb1NldHRpbmdzID0gbnVsbDsKfTsKCgovKioKICogUmVkcmF3IHRoZSB0YWJsZQogKiAgQHBhcmFtIHtib29sfSBbYkNvbXBsZXRlPXRydWVdIFJlLWZpbHRlciBhbmQgcmVzb3J0IChpZiBlbmFibGVkKSB0aGUgdGFibGUgYmVmb3JlIHRoZSBkcmF3LgogKiAgQGR0b3B0IEFQSQogKgogKiAgQGV4YW1wbGUKICogICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CiAqICAgICAgdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7CiAqICAgICAgCiAqICAgICAgLy8gUmUtZHJhdyB0aGUgdGFibGUgLSB5b3Ugd291bGRuJ3Qgd2FudCB0byBkbyBpdCBoZXJlLCBidXQgaXQncyBhbiBleGFtcGxlIDotKQogKiAgICAgIG9UYWJsZS5mbkRyYXcoKTsKICogICAgfSApOwogKi8KdGhpcy5mbkRyYXcgPSBmdW5jdGlvbiggYkNvbXBsZXRlICkKewoJdmFyIG9TZXR0aW5ncyA9IF9mblNldHRpbmdzRnJvbU5vZGUoIHRoaXNbRGF0YVRhYmxlLmV4dC5pQXBpSW5kZXhdICk7CglpZiAoIGJDb21wbGV0ZSA9PT0gZmFsc2UgKQoJewoJCV9mbkNhbGN1bGF0ZUVuZCggb1NldHRpbmdzICk7CgkJX2ZuRHJhdyggb1NldHRpbmdzICk7Cgl9CgllbHNlCgl7CgkJX2ZuUmVEcmF3KCBvU2V0dGluZ3MgKTsKCX0KfTsKCgovKioKICogRmlsdGVyIHRoZSBpbnB1dCBiYXNlZCBvbiBkYXRhCiAqICBAcGFyYW0ge3N0cmluZ30gc0lucHV0IFN0cmluZyB0byBmaWx0ZXIgdGhlIHRhYmxlIG9uCiAqICBAcGFyYW0ge2ludHxudWxsfSBbaUNvbHVtbl0gQ29sdW1uIHRvIGxpbWl0IGZpbHRlcmluZyB0bwogKiAgQHBhcmFtIHtib29sfSBbYlJlZ2V4PWZhbHNlXSBUcmVhdCBhcyByZWd1bGFyIGV4cHJlc3Npb24gb3Igbm90CiAqICBAcGFyYW0ge2Jvb2x9IFtiU21hcnQ9dHJ1ZV0gUGVyZm9ybSBzbWFydCBmaWx0ZXJpbmcgb3Igbm90CiAqICBAcGFyYW0ge2Jvb2x9IFtiU2hvd0dsb2JhbD10cnVlXSBTaG93IHRoZSBpbnB1dCBnbG9iYWwgZmlsdGVyIGluIGl0J3MgaW5wdXQgYm94KGVzKQogKiAgQHBhcmFtIHtib29sfSBbYkNhc2VJbnNlbnNpdGl2ZT10cnVlXSBEbyBjYXNlLWluc2Vuc2l0aXZlIG1hdGNoaW5nICh0cnVlKSBvciBub3QgKGZhbHNlKQogKiAgQGR0b3B0IEFQSQogKgogKiAgQGV4YW1wbGUKICogICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CiAqICAgICAgdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7CiAqICAgICAgCiAqICAgICAgLy8gU29tZXRpbWUgbGF0ZXIgLSBmaWx0ZXIuLi4KICogICAgICBvVGFibGUuZm5GaWx0ZXIoICd0ZXN0IHN0cmluZycgKTsKICogICAgfSApOwogKi8KdGhpcy5mbkZpbHRlciA9IGZ1bmN0aW9uKCBzSW5wdXQsIGlDb2x1bW4sIGJSZWdleCwgYlNtYXJ0LCBiU2hvd0dsb2JhbCwgYkNhc2VJbnNlbnNpdGl2ZSApCnsKCXZhciBvU2V0dGluZ3MgPSBfZm5TZXR0aW5nc0Zyb21Ob2RlKCB0aGlzW0RhdGFUYWJsZS5leHQuaUFwaUluZGV4XSApOwoJCglpZiAoICFvU2V0dGluZ3Mub0ZlYXR1cmVzLmJGaWx0ZXIgKQoJewoJCXJldHVybjsKCX0KCQoJaWYgKCBiUmVnZXggPT09IHVuZGVmaW5lZCB8fCBiUmVnZXggPT09IG51bGwgKQoJewoJCWJSZWdleCA9IGZhbHNlOwoJfQoJCglpZiAoIGJTbWFydCA9PT0gdW5kZWZpbmVkIHx8IGJTbWFydCA9PT0gbnVsbCApCgl7CgkJYlNtYXJ0ID0gdHJ1ZTsKCX0KCQoJaWYgKCBiU2hvd0dsb2JhbCA9PT0gdW5kZWZpbmVkIHx8IGJTaG93R2xvYmFsID09PSBudWxsICkKCXsKCQliU2hvd0dsb2JhbCA9IHRydWU7Cgl9CgkKCWlmICggYkNhc2VJbnNlbnNpdGl2ZSA9PT0gdW5kZWZpbmVkIHx8IGJDYXNlSW5zZW5zaXRpdmUgPT09IG51bGwgKQoJewoJCWJDYXNlSW5zZW5zaXRpdmUgPSB0cnVlOwoJfQoJCglpZiAoIGlDb2x1bW4gPT09IHVuZGVmaW5lZCB8fCBpQ29sdW1uID09PSBudWxsICkKCXsKCQkvKiBHbG9iYWwgZmlsdGVyICovCgkJX2ZuRmlsdGVyQ29tcGxldGUoIG9TZXR0aW5ncywgewoJCQkic1NlYXJjaCI6c0lucHV0KyIiLAoJCQkiYlJlZ2V4IjogYlJlZ2V4LAoJCQkiYlNtYXJ0IjogYlNtYXJ0LAoJCQkiYkNhc2VJbnNlbnNpdGl2ZSI6IGJDYXNlSW5zZW5zaXRpdmUKCQl9LCAxICk7CgkJCgkJaWYgKCBiU2hvd0dsb2JhbCAmJiBvU2V0dGluZ3MuYWFuRmVhdHVyZXMuZiApCgkJewoJCQl2YXIgbiA9IG9TZXR0aW5ncy5hYW5GZWF0dXJlcy5mOwoJCQlmb3IgKCB2YXIgaT0wLCBpTGVuPW4ubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQkJewoJCQkJJChuW2ldLl9EVF9JbnB1dCkudmFsKCBzSW5wdXQgKTsKCQkJfQoJCX0KCX0KCWVsc2UKCXsKCQkvKiBTaW5nbGUgY29sdW1uIGZpbHRlciAqLwoJCSQuZXh0ZW5kKCBvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzWyBpQ29sdW1uIF0sIHsKCQkJInNTZWFyY2giOiBzSW5wdXQrIiIsCgkJCSJiUmVnZXgiOiBiUmVnZXgsCgkJCSJiU21hcnQiOiBiU21hcnQsCgkJCSJiQ2FzZUluc2Vuc2l0aXZlIjogYkNhc2VJbnNlbnNpdGl2ZQoJCX0gKTsKCQlfZm5GaWx0ZXJDb21wbGV0ZSggb1NldHRpbmdzLCBvU2V0dGluZ3Mub1ByZXZpb3VzU2VhcmNoLCAxICk7Cgl9Cn07CgoKLyoqCiAqIEdldCB0aGUgZGF0YSBmb3IgdGhlIHdob2xlIHRhYmxlLCBhbiBpbmRpdmlkdWFsIHJvdyBvciBhbiBpbmRpdmlkdWFsIGNlbGwgYmFzZWQgb24gdGhlIAogKiBwcm92aWRlZCBwYXJhbWV0ZXJzLgogKiAgQHBhcmFtIHtpbnR8bm9kZX0gW21Sb3ddIEEgVFIgcm93IG5vZGUsIFREL1RIIGNlbGwgbm9kZSBvciBhbiBpbnRlZ2VyLiBJZiBnaXZlbiBhcwogKiAgICBhIFRSIG5vZGUgdGhlbiB0aGUgZGF0YSBzb3VyY2UgZm9yIHRoZSB3aG9sZSByb3cgd2lsbCBiZSByZXR1cm5lZC4gSWYgZ2l2ZW4gYXMgYQogKiAgICBURC9USCBjZWxsIG5vZGUgdGhlbiBpQ29sIHdpbGwgYmUgYXV0b21hdGljYWxseSBjYWxjdWxhdGVkIGFuZCB0aGUgZGF0YSBmb3IgdGhlCiAqICAgIGNlbGwgcmV0dXJuZWQuIElmIGdpdmVuIGFzIGFuIGludGVnZXIsIHRoZW4gdGhpcyBpcyB0cmVhdGVkIGFzIHRoZSBhb0RhdGEgaW50ZXJuYWwKICogICAgZGF0YSBpbmRleCBmb3IgdGhlIHJvdyAoc2VlIGZuR2V0UG9zaXRpb24pIGFuZCB0aGUgZGF0YSBmb3IgdGhhdCByb3cgdXNlZC4KICogIEBwYXJhbSB7aW50fSBbaUNvbF0gT3B0aW9uYWwgY29sdW1uIGluZGV4IHRoYXQgeW91IHdhbnQgdGhlIGRhdGEgb2YuCiAqICBAcmV0dXJucyB7YXJyYXl8b2JqZWN0fHN0cmluZ30gSWYgbVJvdyBpcyB1bmRlZmluZWQsIHRoZW4gdGhlIGRhdGEgZm9yIGFsbCByb3dzIGlzCiAqICAgIHJldHVybmVkLiBJZiBtUm93IGlzIGRlZmluZWQsIGp1c3QgZGF0YSBmb3IgdGhhdCByb3csIGFuZCBpcyBpQ29sIGlzCiAqICAgIGRlZmluZWQsIG9ubHkgZGF0YSBmb3IgdGhlIGRlc2lnbmF0ZWQgY2VsbCBpcyByZXR1cm5lZC4KICogIEBkdG9wdCBBUEkKICoKICogIEBleGFtcGxlCiAqICAgIC8vIFJvdyBkYXRhCiAqICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgewogKiAgICAgIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7CiAqCiAqICAgICAgb1RhYmxlLiQoJ3RyJykuY2xpY2soIGZ1bmN0aW9uICgpIHsKICogICAgICAgIHZhciBkYXRhID0gb1RhYmxlLmZuR2V0RGF0YSggdGhpcyApOwogKiAgICAgICAgLy8gLi4uIGRvIHNvbWV0aGluZyB3aXRoIHRoZSBhcnJheSAvIG9iamVjdCBvZiBkYXRhIGZvciB0aGUgcm93CiAqICAgICAgfSApOwogKiAgICB9ICk7CiAqCiAqICBAZXhhbXBsZQogKiAgICAvLyBJbmRpdmlkdWFsIGNlbGwgZGF0YQogKiAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKICogICAgICBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwogKgogKiAgICAgIG9UYWJsZS4kKCd0ZCcpLmNsaWNrKCBmdW5jdGlvbiAoKSB7CiAqICAgICAgICB2YXIgc0RhdGEgPSBvVGFibGUuZm5HZXREYXRhKCB0aGlzICk7CiAqICAgICAgICBhbGVydCggJ1RoZSBjZWxsIGNsaWNrZWQgb24gaGFkIHRoZSB2YWx1ZSBvZiAnK3NEYXRhICk7CiAqICAgICAgfSApOwogKiAgICB9ICk7CiAqLwp0aGlzLmZuR2V0RGF0YSA9IGZ1bmN0aW9uKCBtUm93LCBpQ29sICkKewoJdmFyIG9TZXR0aW5ncyA9IF9mblNldHRpbmdzRnJvbU5vZGUoIHRoaXNbRGF0YVRhYmxlLmV4dC5pQXBpSW5kZXhdICk7CgkKCWlmICggbVJvdyAhPT0gdW5kZWZpbmVkICkKCXsKCQl2YXIgaVJvdyA9IG1Sb3c7CgkJaWYgKCB0eXBlb2YgbVJvdyA9PT0gJ29iamVjdCcgKQoJCXsKCQkJdmFyIHNOb2RlID0gbVJvdy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpOwoJCQlpZiAoc05vZGUgPT09ICJ0ciIgKQoJCQl7CgkJCQlpUm93ID0gX2ZuTm9kZVRvRGF0YUluZGV4KG9TZXR0aW5ncywgbVJvdyk7CgkJCX0KCQkJZWxzZSBpZiAoIHNOb2RlID09PSAidGQiICkKCQkJewoJCQkJaVJvdyA9IF9mbk5vZGVUb0RhdGFJbmRleChvU2V0dGluZ3MsIG1Sb3cucGFyZW50Tm9kZSk7CgkJCQlpQ29sID0gX2ZuTm9kZVRvQ29sdW1uSW5kZXgoIG9TZXR0aW5ncywgaVJvdywgbVJvdyApOwoJCQl9CgkJfQoKCQlpZiAoIGlDb2wgIT09IHVuZGVmaW5lZCApCgkJewoJCQlyZXR1cm4gX2ZuR2V0Q2VsbERhdGEoIG9TZXR0aW5ncywgaVJvdywgaUNvbCwgJycgKTsKCQl9CgkJcmV0dXJuIChvU2V0dGluZ3MuYW9EYXRhW2lSb3ddIT09dW5kZWZpbmVkKSA/CgkJCW9TZXR0aW5ncy5hb0RhdGFbaVJvd10uX2FEYXRhIDogbnVsbDsKCX0KCXJldHVybiBfZm5HZXREYXRhTWFzdGVyKCBvU2V0dGluZ3MgKTsKfTsKCgovKioKICogR2V0IGFuIGFycmF5IG9mIHRoZSBUUiBub2RlcyB0aGF0IGFyZSB1c2VkIGluIHRoZSB0YWJsZSdzIGJvZHkuIE5vdGUgdGhhdCB5b3Ugd2lsbCAKICogdHlwaWNhbGx5IHdhbnQgdG8gdXNlIHRoZSAnJCcgQVBJIG1ldGhvZCBpbiBwcmVmZXJlbmNlIHRvIHRoaXMgYXMgaXQgaXMgbW9yZSAKICogZmxleGlibGUuCiAqICBAcGFyYW0ge2ludH0gW2lSb3ddIE9wdGlvbmFsIHJvdyBpbmRleCBmb3IgdGhlIFRSIGVsZW1lbnQgeW91IHdhbnQKICogIEByZXR1cm5zIHthcnJheXxub2RlfSBJZiBpUm93IGlzIHVuZGVmaW5lZCwgcmV0dXJucyBhbiBhcnJheSBvZiBhbGwgVFIgZWxlbWVudHMKICogICAgaW4gdGhlIHRhYmxlJ3MgYm9keSwgb3IgaVJvdyBpcyBkZWZpbmVkLCBqdXN0IHRoZSBUUiBlbGVtZW50IHJlcXVlc3RlZC4KICogIEBkdG9wdCBBUEkKICoKICogIEBleGFtcGxlCiAqICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgewogKiAgICAgIHZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwogKiAgICAgIAogKiAgICAgIC8vIEdldCB0aGUgbm9kZXMgZnJvbSB0aGUgdGFibGUKICogICAgICB2YXIgbk5vZGVzID0gb1RhYmxlLmZuR2V0Tm9kZXMoICk7CiAqICAgIH0gKTsKICovCnRoaXMuZm5HZXROb2RlcyA9IGZ1bmN0aW9uKCBpUm93ICkKewoJdmFyIG9TZXR0aW5ncyA9IF9mblNldHRpbmdzRnJvbU5vZGUoIHRoaXNbRGF0YVRhYmxlLmV4dC5pQXBpSW5kZXhdICk7CgkKCWlmICggaVJvdyAhPT0gdW5kZWZpbmVkICkgewoJCXJldHVybiAob1NldHRpbmdzLmFvRGF0YVtpUm93XSE9PXVuZGVmaW5lZCkgPwoJCQlvU2V0dGluZ3MuYW9EYXRhW2lSb3ddLm5UciA6IG51bGw7Cgl9CglyZXR1cm4gX2ZuR2V0VHJOb2Rlcyggb1NldHRpbmdzICk7Cn07CgoKLyoqCiAqIEdldCB0aGUgYXJyYXkgaW5kZXhlcyBvZiBhIHBhcnRpY3VsYXIgY2VsbCBmcm9tIGl0J3MgRE9NIGVsZW1lbnQKICogYW5kIGNvbHVtbiBpbmRleCBpbmNsdWRpbmcgaGlkZGVuIGNvbHVtbnMKICogIEBwYXJhbSB7bm9kZX0gbk5vZGUgdGhpcyBjYW4gZWl0aGVyIGJlIGEgVFIsIFREIG9yIFRIIGluIHRoZSB0YWJsZSdzIGJvZHkKICogIEByZXR1cm5zIHtpbnR9IElmIG5Ob2RlIGlzIGdpdmVuIGFzIGEgVFIsIHRoZW4gYSBzaW5nbGUgaW5kZXggaXMgcmV0dXJuZWQsIG9yCiAqICAgIGlmIGdpdmVuIGFzIGEgY2VsbCwgYW4gYXJyYXkgb2YgW3JvdyBpbmRleCwgY29sdW1uIGluZGV4ICh2aXNpYmxlKV0gaXMgZ2l2ZW4uCiAqICBAZHRvcHQgQVBJCiAqCiAqICBAZXhhbXBsZQogKiAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKICogICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0ZCcpLmNsaWNrKCBmdW5jdGlvbiAoKSB7CiAqICAgICAgICAvLyBHZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSBjdXJyZW50IGRhdGEgZnJvbSB0aGUgbm9kZQogKiAgICAgICAgdmFyIGFQb3MgPSBvVGFibGUuZm5HZXRQb3NpdGlvbiggdGhpcyApOwogKiAgICAgICAgCiAqICAgICAgICAvLyBHZXQgdGhlIGRhdGEgYXJyYXkgZm9yIHRoaXMgcm93CiAqICAgICAgICB2YXIgYURhdGEgPSBvVGFibGUuZm5HZXREYXRhKCBhUG9zWzBdICk7CiAqICAgICAgICAKICogICAgICAgIC8vIFVwZGF0ZSB0aGUgZGF0YSBhcnJheSBhbmQgcmV0dXJuIHRoZSB2YWx1ZQogKiAgICAgICAgYURhdGFbIGFQb3NbMV0gXSA9ICdjbGlja2VkJzsKICogICAgICAgIHRoaXMuaW5uZXJIVE1MID0gJ2NsaWNrZWQnOwogKiAgICAgIH0gKTsKICogICAgICAKICogICAgICAvLyBJbml0IERhdGFUYWJsZXMKICogICAgICBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwogKiAgICB9ICk7CiAqLwp0aGlzLmZuR2V0UG9zaXRpb24gPSBmdW5jdGlvbiggbk5vZGUgKQp7Cgl2YXIgb1NldHRpbmdzID0gX2ZuU2V0dGluZ3NGcm9tTm9kZSggdGhpc1tEYXRhVGFibGUuZXh0LmlBcGlJbmRleF0gKTsKCXZhciBzTm9kZU5hbWUgPSBuTm9kZS5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpOwoJCglpZiAoIHNOb2RlTmFtZSA9PSAiVFIiICkKCXsKCQlyZXR1cm4gX2ZuTm9kZVRvRGF0YUluZGV4KG9TZXR0aW5ncywgbk5vZGUpOwoJfQoJZWxzZSBpZiAoIHNOb2RlTmFtZSA9PSAiVEQiIHx8IHNOb2RlTmFtZSA9PSAiVEgiICkKCXsKCQl2YXIgaURhdGFJbmRleCA9IF9mbk5vZGVUb0RhdGFJbmRleCggb1NldHRpbmdzLCBuTm9kZS5wYXJlbnROb2RlICk7CgkJdmFyIGlDb2x1bW5JbmRleCA9IF9mbk5vZGVUb0NvbHVtbkluZGV4KCBvU2V0dGluZ3MsIGlEYXRhSW5kZXgsIG5Ob2RlICk7CgkJcmV0dXJuIFsgaURhdGFJbmRleCwgX2ZuQ29sdW1uSW5kZXhUb1Zpc2libGUob1NldHRpbmdzLCBpQ29sdW1uSW5kZXggKSwgaUNvbHVtbkluZGV4IF07Cgl9CglyZXR1cm4gbnVsbDsKfTsKCgovKioKICogQ2hlY2sgdG8gc2VlIGlmIGEgcm93IGlzICdvcGVuJyBvciBub3QuCiAqICBAcGFyYW0ge25vZGV9IG5UciB0aGUgdGFibGUgcm93IHRvIGNoZWNrCiAqICBAcmV0dXJucyB7Ym9vbGVhbn0gdHJ1ZSBpZiB0aGUgcm93IGlzIGN1cnJlbnRseSBvcGVuLCBmYWxzZSBvdGhlcndpc2UKICogIEBkdG9wdCBBUEkKICoKICogIEBleGFtcGxlCiAqICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgewogKiAgICAgIHZhciBvVGFibGU7CiAqICAgICAgCiAqICAgICAgLy8gJ29wZW4nIGFuIGluZm9ybWF0aW9uIHJvdyB3aGVuIGEgcm93IGlzIGNsaWNrZWQgb24KICogICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmNsaWNrKCBmdW5jdGlvbiAoKSB7CiAqICAgICAgICBpZiAoIG9UYWJsZS5mbklzT3Blbih0aGlzKSApIHsKICogICAgICAgICAgb1RhYmxlLmZuQ2xvc2UoIHRoaXMgKTsKICogICAgICAgIH0gZWxzZSB7CiAqICAgICAgICAgIG9UYWJsZS5mbk9wZW4oIHRoaXMsICJUZW1wb3Jhcnkgcm93IG9wZW5lZCIsICJpbmZvX3JvdyIgKTsKICogICAgICAgIH0KICogICAgICB9ICk7CiAqICAgICAgCiAqICAgICAgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKICogICAgfSApOwogKi8KdGhpcy5mbklzT3BlbiA9IGZ1bmN0aW9uKCBuVHIgKQp7Cgl2YXIgb1NldHRpbmdzID0gX2ZuU2V0dGluZ3NGcm9tTm9kZSggdGhpc1tEYXRhVGFibGUuZXh0LmlBcGlJbmRleF0gKTsKCXZhciBhb09wZW5Sb3dzID0gb1NldHRpbmdzLmFvT3BlblJvd3M7CgkKCWZvciAoIHZhciBpPTAgOyBpPG9TZXR0aW5ncy5hb09wZW5Sb3dzLmxlbmd0aCA7IGkrKyApCgl7CgkJaWYgKCBvU2V0dGluZ3MuYW9PcGVuUm93c1tpXS5uUGFyZW50ID09IG5UciApCgkJewoJCQlyZXR1cm4gdHJ1ZTsKCQl9Cgl9CglyZXR1cm4gZmFsc2U7Cn07CgoKLyoqCiAqIFRoaXMgZnVuY3Rpb24gd2lsbCBwbGFjZSBhIG5ldyByb3cgZGlyZWN0bHkgYWZ0ZXIgYSByb3cgd2hpY2ggaXMgY3VycmVudGx5IAogKiBvbiBkaXNwbGF5IG9uIHRoZSBwYWdlLCB3aXRoIHRoZSBIVE1MIGNvbnRlbnRzIHRoYXQgaXMgcGFzc2VkIGludG8gdGhlIAogKiBmdW5jdGlvbi4gVGhpcyBjYW4gYmUgdXNlZCwgZm9yIGV4YW1wbGUsIHRvIGFzayBmb3IgY29uZmlybWF0aW9uIHRoYXQgYSAKICogcGFydGljdWxhciByZWNvcmQgc2hvdWxkIGJlIGRlbGV0ZWQuCiAqICBAcGFyYW0ge25vZGV9IG5UciBUaGUgdGFibGUgcm93IHRvICdvcGVuJwogKiAgQHBhcmFtIHtzdHJpbmd8bm9kZXxqUXVlcnl9IG1IdG1sIFRoZSBIVE1MIHRvIHB1dCBpbnRvIHRoZSByb3cKICogIEBwYXJhbSB7c3RyaW5nfSBzQ2xhc3MgQ2xhc3MgdG8gZ2l2ZSB0aGUgbmV3IFREIGNlbGwKICogIEByZXR1cm5zIHtub2RlfSBUaGUgcm93IG9wZW5lZC4gTm90ZSB0aGF0IGlmIHRoZSB0YWJsZSByb3cgcGFzc2VkIGluIGFzIHRoZQogKiAgICBmaXJzdCBwYXJhbWV0ZXIsIGlzIG5vdCBmb3VuZCBpbiB0aGUgdGFibGUsIHRoaXMgbWV0aG9kIHdpbGwgc2lsZW50bHkKICogICAgcmV0dXJuLgogKiAgQGR0b3B0IEFQSQogKgogKiAgQGV4YW1wbGUKICogICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CiAqICAgICAgdmFyIG9UYWJsZTsKICogICAgICAKICogICAgICAvLyAnb3BlbicgYW4gaW5mb3JtYXRpb24gcm93IHdoZW4gYSByb3cgaXMgY2xpY2tlZCBvbgogKiAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyJykuY2xpY2soIGZ1bmN0aW9uICgpIHsKICogICAgICAgIGlmICggb1RhYmxlLmZuSXNPcGVuKHRoaXMpICkgewogKiAgICAgICAgICBvVGFibGUuZm5DbG9zZSggdGhpcyApOwogKiAgICAgICAgfSBlbHNlIHsKICogICAgICAgICAgb1RhYmxlLmZuT3BlbiggdGhpcywgIlRlbXBvcmFyeSByb3cgb3BlbmVkIiwgImluZm9fcm93IiApOwogKiAgICAgICAgfQogKiAgICAgIH0gKTsKICogICAgICAKICogICAgICBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwogKiAgICB9ICk7CiAqLwp0aGlzLmZuT3BlbiA9IGZ1bmN0aW9uKCBuVHIsIG1IdG1sLCBzQ2xhc3MgKQp7CgkvKiBGaW5kIHNldHRpbmdzIGZyb20gdGFibGUgbm9kZSAqLwoJdmFyIG9TZXR0aW5ncyA9IF9mblNldHRpbmdzRnJvbU5vZGUoIHRoaXNbRGF0YVRhYmxlLmV4dC5pQXBpSW5kZXhdICk7CgoJLyogQ2hlY2sgdGhhdCB0aGUgcm93IGdpdmVuIGlzIGluIHRoZSB0YWJsZSAqLwoJdmFyIG5UYWJsZVJvd3MgPSBfZm5HZXRUck5vZGVzKCBvU2V0dGluZ3MgKTsKCWlmICggJC5pbkFycmF5KG5UciwgblRhYmxlUm93cykgPT09IC0xICkKCXsKCQlyZXR1cm47Cgl9CgkKCS8qIHRoZSBvbGQgb3BlbiBvbmUgaWYgdGhlcmUgaXMgb25lICovCgl0aGlzLmZuQ2xvc2UoIG5UciApOwoJCgl2YXIgbk5ld1JvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRyIik7Cgl2YXIgbk5ld0NlbGwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZCIpOwoJbk5ld1Jvdy5hcHBlbmRDaGlsZCggbk5ld0NlbGwgKTsKCW5OZXdDZWxsLmNsYXNzTmFtZSA9IHNDbGFzczsKCW5OZXdDZWxsLmNvbFNwYW4gPSBfZm5WaXNibGVDb2x1bW5zKCBvU2V0dGluZ3MgKTsKCglpZiAodHlwZW9mIG1IdG1sID09PSAic3RyaW5nIikKCXsKCQluTmV3Q2VsbC5pbm5lckhUTUwgPSBtSHRtbDsKCX0KCWVsc2UKCXsKCQkkKG5OZXdDZWxsKS5odG1sKCBtSHRtbCApOwoJfQoKCS8qIElmIHRoZSBuVHIgaXNuJ3Qgb24gdGhlIHBhZ2UgYXQgdGhlIG1vbWVudCAtIHRoZW4gd2UgZG9uJ3QgaW5zZXJ0IGF0IHRoZSBtb21lbnQgKi8KCXZhciBuVHJzID0gJCgndHInLCBvU2V0dGluZ3MublRCb2R5KTsKCWlmICggJC5pbkFycmF5KG5UciwgblRycykgIT0gLTEgICkKCXsKCQkkKG5OZXdSb3cpLmluc2VydEFmdGVyKG5Ucik7Cgl9CgkKCW9TZXR0aW5ncy5hb09wZW5Sb3dzLnB1c2goIHsKCQkiblRyIjogbk5ld1JvdywKCQkiblBhcmVudCI6IG5UcgoJfSApOwoJCglyZXR1cm4gbk5ld1JvdzsKfTsKCgovKioKICogQ2hhbmdlIHRoZSBwYWdpbmF0aW9uIC0gcHJvdmlkZXMgdGhlIGludGVybmFsIGxvZ2ljIGZvciBwYWdpbmF0aW9uIGluIGEgc2ltcGxlIEFQSSAKICogZnVuY3Rpb24uIFdpdGggdGhpcyBmdW5jdGlvbiB5b3UgY2FuIGhhdmUgYSBEYXRhVGFibGVzIHRhYmxlIGdvIHRvIHRoZSBuZXh0LCAKICogcHJldmlvdXMsIGZpcnN0IG9yIGxhc3QgcGFnZXMuCiAqICBAcGFyYW0ge3N0cmluZ3xpbnR9IG1BY3Rpb24gUGFnaW5nIGFjdGlvbiB0byB0YWtlOiAiZmlyc3QiLCAicHJldmlvdXMiLCAibmV4dCIgb3IgImxhc3QiCiAqICAgIG9yIHBhZ2UgbnVtYmVyIHRvIGp1bXAgdG8gKGludGVnZXIpLCBub3RlIHRoYXQgcGFnZSAwIGlzIHRoZSBmaXJzdCBwYWdlLgogKiAgQHBhcmFtIHtib29sfSBbYlJlZHJhdz10cnVlXSBSZWRyYXcgdGhlIHRhYmxlIG9yIG5vdAogKiAgQGR0b3B0IEFQSQogKgogKiAgQGV4YW1wbGUKICogICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CiAqICAgICAgdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7CiAqICAgICAgb1RhYmxlLmZuUGFnZUNoYW5nZSggJ25leHQnICk7CiAqICAgIH0gKTsKICovCnRoaXMuZm5QYWdlQ2hhbmdlID0gZnVuY3Rpb24gKCBtQWN0aW9uLCBiUmVkcmF3ICkKewoJdmFyIG9TZXR0aW5ncyA9IF9mblNldHRpbmdzRnJvbU5vZGUoIHRoaXNbRGF0YVRhYmxlLmV4dC5pQXBpSW5kZXhdICk7CglfZm5QYWdlQ2hhbmdlKCBvU2V0dGluZ3MsIG1BY3Rpb24gKTsKCV9mbkNhbGN1bGF0ZUVuZCggb1NldHRpbmdzICk7CgkKCWlmICggYlJlZHJhdyA9PT0gdW5kZWZpbmVkIHx8IGJSZWRyYXcgKQoJewoJCV9mbkRyYXcoIG9TZXR0aW5ncyApOwoJfQp9OwoKCi8qKgogKiBTaG93IGEgcGFydGljdWxhciBjb2x1bW4KICogIEBwYXJhbSB7aW50fSBpQ29sIFRoZSBjb2x1bW4gd2hvc2UgZGlzcGxheSBzaG91bGQgYmUgY2hhbmdlZAogKiAgQHBhcmFtIHtib29sfSBiU2hvdyBTaG93ICh0cnVlKSBvciBoaWRlIChmYWxzZSkgdGhlIGNvbHVtbgogKiAgQHBhcmFtIHtib29sfSBbYlJlZHJhdz10cnVlXSBSZWRyYXcgdGhlIHRhYmxlIG9yIG5vdAogKiAgQGR0b3B0IEFQSQogKgogKiAgQGV4YW1wbGUKICogICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CiAqICAgICAgdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7CiAqICAgICAgCiAqICAgICAgLy8gSGlkZSB0aGUgc2Vjb25kIGNvbHVtbiBhZnRlciBpbml0aWFsaXNhdGlvbgogKiAgICAgIG9UYWJsZS5mblNldENvbHVtblZpcyggMSwgZmFsc2UgKTsKICogICAgfSApOwogKi8KdGhpcy5mblNldENvbHVtblZpcyA9IGZ1bmN0aW9uICggaUNvbCwgYlNob3csIGJSZWRyYXcgKQp7Cgl2YXIgb1NldHRpbmdzID0gX2ZuU2V0dGluZ3NGcm9tTm9kZSggdGhpc1tEYXRhVGFibGUuZXh0LmlBcGlJbmRleF0gKTsKCXZhciBpLCBpTGVuOwoJdmFyIGFvQ29sdW1ucyA9IG9TZXR0aW5ncy5hb0NvbHVtbnM7Cgl2YXIgYW9EYXRhID0gb1NldHRpbmdzLmFvRGF0YTsKCXZhciBuVGQsIGJBcHBlbmQsIGlCZWZvcmU7CgkKCS8qIE5vIHBvaW50IGluIGRvaW5nIGFueXRoaW5nIGlmIHdlIGFyZSByZXF1ZXN0aW5nIHdoYXQgaXMgYWxyZWFkeSB0cnVlICovCglpZiAoIGFvQ29sdW1uc1tpQ29sXS5iVmlzaWJsZSA9PSBiU2hvdyApCgl7CgkJcmV0dXJuOwoJfQoJCgkvKiBTaG93IHRoZSBjb2x1bW4gKi8KCWlmICggYlNob3cgKQoJewoJCXZhciBpSW5zZXJ0ID0gMDsKCQlmb3IgKCBpPTAgOyBpPGlDb2wgOyBpKysgKQoJCXsKCQkJaWYgKCBhb0NvbHVtbnNbaV0uYlZpc2libGUgKQoJCQl7CgkJCQlpSW5zZXJ0Kys7CgkJCX0KCQl9CgkJCgkJLyogTmVlZCB0byBkZWNpZGUgaWYgd2Ugc2hvdWxkIHVzZSBhcHBlbmRDaGlsZCBvciBpbnNlcnRCZWZvcmUgKi8KCQliQXBwZW5kID0gKGlJbnNlcnQgPj0gX2ZuVmlzYmxlQ29sdW1ucyggb1NldHRpbmdzICkpOwoKCQkvKiBXaGljaCBjb2xvdW1uIHNob3VsZCB3ZSBiZSBpbnNlcnRpbmcgYmVmb3JlPyAqLwoJCWlmICggIWJBcHBlbmQgKQoJCXsKCQkJZm9yICggaT1pQ29sIDsgaTxhb0NvbHVtbnMubGVuZ3RoIDsgaSsrICkKCQkJewoJCQkJaWYgKCBhb0NvbHVtbnNbaV0uYlZpc2libGUgKQoJCQkJewoJCQkJCWlCZWZvcmUgPSBpOwoJCQkJCWJyZWFrOwoJCQkJfQoJCQl9CgkJfQoKCQlmb3IgKCBpPTAsIGlMZW49YW9EYXRhLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJewoJCQlpZiAoIGFvRGF0YVtpXS5uVHIgIT09IG51bGwgKQoJCQl7CgkJCQlpZiAoIGJBcHBlbmQgKQoJCQkJewoJCQkJCWFvRGF0YVtpXS5uVHIuYXBwZW5kQ2hpbGQoIAoJCQkJCQlhb0RhdGFbaV0uX2FuSGlkZGVuW2lDb2xdCgkJCQkJKTsKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQlhb0RhdGFbaV0ublRyLmluc2VydEJlZm9yZSgKCQkJCQkJYW9EYXRhW2ldLl9hbkhpZGRlbltpQ29sXSwgCgkJCQkJCV9mbkdldFRkTm9kZXMoIG9TZXR0aW5ncywgaSApW2lCZWZvcmVdICk7CgkJCQl9CgkJCX0KCQl9Cgl9CgllbHNlCgl7CgkJLyogUmVtb3ZlIGEgY29sdW1uIGZyb20gZGlzcGxheSAqLwoJCWZvciAoIGk9MCwgaUxlbj1hb0RhdGEubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQl7CgkJCWlmICggYW9EYXRhW2ldLm5UciAhPT0gbnVsbCApCgkJCXsKCQkJCW5UZCA9IF9mbkdldFRkTm9kZXMoIG9TZXR0aW5ncywgaSApW2lDb2xdOwoJCQkJYW9EYXRhW2ldLl9hbkhpZGRlbltpQ29sXSA9IG5UZDsKCQkJCW5UZC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKCBuVGQgKTsKCQkJfQoJCX0KCX0KCgkvKiBDbGVhciB0byBzZXQgdGhlIHZpc2libGUgZmxhZyAqLwoJYW9Db2x1bW5zW2lDb2xdLmJWaXNpYmxlID0gYlNob3c7CgoJLyogUmVkcmF3IHRoZSBoZWFkZXIgYW5kIGZvb3RlciBiYXNlZCBvbiB0aGUgbmV3IGNvbHVtbiB2aXNpYmlsaXR5ICovCglfZm5EcmF3SGVhZCggb1NldHRpbmdzLCBvU2V0dGluZ3MuYW9IZWFkZXIgKTsKCWlmICggb1NldHRpbmdzLm5URm9vdCApCgl7CgkJX2ZuRHJhd0hlYWQoIG9TZXR0aW5ncywgb1NldHRpbmdzLmFvRm9vdGVyICk7Cgl9CgkKCS8qIElmIHRoZXJlIGFyZSBhbnkgJ29wZW4nIHJvd3MsIHRoZW4gd2UgbmVlZCB0byBhbHRlciB0aGUgY29sc3BhbiBmb3IgdGhpcyBjb2wgY2hhbmdlICovCglmb3IgKCBpPTAsIGlMZW49b1NldHRpbmdzLmFvT3BlblJvd3MubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCXsKCQlvU2V0dGluZ3MuYW9PcGVuUm93c1tpXS5uVHIuY29sU3BhbiA9IF9mblZpc2JsZUNvbHVtbnMoIG9TZXR0aW5ncyApOwoJfQoJCgkvKiBEbyBhIHJlZHJhdyBpbmNhc2UgYW55dGhpbmcgZGVwZW5kaW5nIG9uIHRoZSB0YWJsZSBjb2x1bW5zIG5lZWRzIGl0IAoJICogKGJ1aWx0LWluOiBzY3JvbGxpbmcpIAoJICovCglpZiAoIGJSZWRyYXcgPT09IHVuZGVmaW5lZCB8fCBiUmVkcmF3ICkKCXsKCQlfZm5BZGp1c3RDb2x1bW5TaXppbmcoIG9TZXR0aW5ncyApOwoJCV9mbkRyYXcoIG9TZXR0aW5ncyApOwoJfQoJCglfZm5TYXZlU3RhdGUoIG9TZXR0aW5ncyApOwp9OwoKCi8qKgogKiBHZXQgdGhlIHNldHRpbmdzIGZvciBhIHBhcnRpY3VsYXIgdGFibGUgZm9yIGV4dGVybmFsIG1hbmlwdWxhdGlvbgogKiAgQHJldHVybnMge29iamVjdH0gRGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QuIFNlZSAKICogICAge0BsaW5rIERhdGFUYWJsZS5tb2RlbHMub1NldHRpbmdzfQogKiAgQGR0b3B0IEFQSQogKgogKiAgQGV4YW1wbGUKICogICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CiAqICAgICAgdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7CiAqICAgICAgdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CiAqICAgICAgCiAqICAgICAgLy8gU2hvdyBhbiBleGFtcGxlIHBhcmFtZXRlciBmcm9tIHRoZSBzZXR0aW5ncwogKiAgICAgIGFsZXJ0KCBvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQgKTsKICogICAgfSApOwogKi8KdGhpcy5mblNldHRpbmdzID0gZnVuY3Rpb24oKQp7CglyZXR1cm4gX2ZuU2V0dGluZ3NGcm9tTm9kZSggdGhpc1tEYXRhVGFibGUuZXh0LmlBcGlJbmRleF0gKTsKfTsKCgovKioKICogU29ydCB0aGUgdGFibGUgYnkgYSBwYXJ0aWN1bGFyIGNvbHVtbgogKiAgQHBhcmFtIHtpbnR9IGlDb2wgdGhlIGRhdGEgaW5kZXggdG8gc29ydCBvbi4gTm90ZSB0aGF0IHRoaXMgd2lsbCBub3QgbWF0Y2ggdGhlIAogKiAgICAnZGlzcGxheSBpbmRleCcgaWYgeW91IGhhdmUgaGlkZGVuIGRhdGEgZW50cmllcwogKiAgQGR0b3B0IEFQSQogKgogKiAgQGV4YW1wbGUKICogICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CiAqICAgICAgdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7CiAqICAgICAgCiAqICAgICAgLy8gU29ydCBpbW1lZGlhdGVseSB3aXRoIGNvbHVtbnMgMCBhbmQgMQogKiAgICAgIG9UYWJsZS5mblNvcnQoIFsgWzAsJ2FzYyddLCBbMSwnYXNjJ10gXSApOwogKiAgICB9ICk7CiAqLwp0aGlzLmZuU29ydCA9IGZ1bmN0aW9uKCBhYVNvcnQgKQp7Cgl2YXIgb1NldHRpbmdzID0gX2ZuU2V0dGluZ3NGcm9tTm9kZSggdGhpc1tEYXRhVGFibGUuZXh0LmlBcGlJbmRleF0gKTsKCW9TZXR0aW5ncy5hYVNvcnRpbmcgPSBhYVNvcnQ7CglfZm5Tb3J0KCBvU2V0dGluZ3MgKTsKfTsKCgovKioKICogQXR0YWNoIGEgc29ydCBsaXN0ZW5lciB0byBhbiBlbGVtZW50IGZvciBhIGdpdmVuIGNvbHVtbgogKiAgQHBhcmFtIHtub2RlfSBuTm9kZSB0aGUgZWxlbWVudCB0byBhdHRhY2ggdGhlIHNvcnQgbGlzdGVuZXIgdG8KICogIEBwYXJhbSB7aW50fSBpQ29sdW1uIHRoZSBjb2x1bW4gdGhhdCBhIGNsaWNrIG9uIHRoaXMgbm9kZSB3aWxsIHNvcnQgb24KICogIEBwYXJhbSB7ZnVuY3Rpb259IFtmbkNhbGxiYWNrXSBjYWxsYmFjayBmdW5jdGlvbiB3aGVuIHNvcnQgaXMgcnVuCiAqICBAZHRvcHQgQVBJCiAqCiAqICBAZXhhbXBsZQogKiAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKICogICAgICB2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKICogICAgICAKICogICAgICAvLyBTb3J0IG9uIGNvbHVtbiAxLCB3aGVuICdzb3J0ZXInIGlzIGNsaWNrZWQgb24KICogICAgICBvVGFibGUuZm5Tb3J0TGlzdGVuZXIoIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzb3J0ZXInKSwgMSApOwogKiAgICB9ICk7CiAqLwp0aGlzLmZuU29ydExpc3RlbmVyID0gZnVuY3Rpb24oIG5Ob2RlLCBpQ29sdW1uLCBmbkNhbGxiYWNrICkKewoJX2ZuU29ydEF0dGFjaExpc3RlbmVyKCBfZm5TZXR0aW5nc0Zyb21Ob2RlKCB0aGlzW0RhdGFUYWJsZS5leHQuaUFwaUluZGV4XSApLCBuTm9kZSwgaUNvbHVtbiwKCSAJZm5DYWxsYmFjayApOwp9OwoKCi8qKgogKiBVcGRhdGUgYSB0YWJsZSBjZWxsIG9yIHJvdyAtIHRoaXMgbWV0aG9kIHdpbGwgYWNjZXB0IGVpdGhlciBhIHNpbmdsZSB2YWx1ZSB0bwogKiB1cGRhdGUgdGhlIGNlbGwgd2l0aCwgYW4gYXJyYXkgb2YgdmFsdWVzIHdpdGggb25lIGVsZW1lbnQgZm9yIGVhY2ggY29sdW1uIG9yCiAqIGFuIG9iamVjdCBpbiB0aGUgc2FtZSBmb3JtYXQgYXMgdGhlIG9yaWdpbmFsIGRhdGEgc291cmNlLiBUaGUgZnVuY3Rpb24gaXMKICogc2VsZi1yZWZlcmVuY2luZyBpbiBvcmRlciB0byBtYWtlIHRoZSBtdWx0aSBjb2x1bW4gdXBkYXRlcyBlYXNpZXIuCiAqICBAcGFyYW0ge29iamVjdHxhcnJheXxzdHJpbmd9IG1EYXRhIERhdGEgdG8gdXBkYXRlIHRoZSBjZWxsL3JvdyB3aXRoCiAqICBAcGFyYW0ge25vZGV8aW50fSBtUm93IFRSIGVsZW1lbnQgeW91IHdhbnQgdG8gdXBkYXRlIG9yIHRoZSBhb0RhdGEgaW5kZXgKICogIEBwYXJhbSB7aW50fSBbaUNvbHVtbl0gVGhlIGNvbHVtbiB0byB1cGRhdGUgKG5vdCB1c2VkIG9mIG1EYXRhIGlzIGFuIGFycmF5IG9yIG9iamVjdCkKICogIEBwYXJhbSB7Ym9vbH0gW2JSZWRyYXc9dHJ1ZV0gUmVkcmF3IHRoZSB0YWJsZSBvciBub3QKICogIEBwYXJhbSB7Ym9vbH0gW2JBY3Rpb249dHJ1ZV0gUGVyZm9ybSBwcmUtZHJhdyBhY3Rpb25zIG9yIG5vdAogKiAgQHJldHVybnMge2ludH0gMCBvbiBzdWNjZXNzLCAxIG9uIGVycm9yCiAqICBAZHRvcHQgQVBJCiAqCiAqICBAZXhhbXBsZQogKiAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKICogICAgICB2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKICogICAgICBvVGFibGUuZm5VcGRhdGUoICdFeGFtcGxlIHVwZGF0ZScsIDAsIDAgKTsgLy8gU2luZ2xlIGNlbGwKICogICAgICBvVGFibGUuZm5VcGRhdGUoIFsnYScsICdiJywgJ2MnLCAnZCcsICdlJ10sIDEsIDAgKTsgLy8gUm93CiAqICAgIH0gKTsKICovCnRoaXMuZm5VcGRhdGUgPSBmdW5jdGlvbiggbURhdGEsIG1Sb3csIGlDb2x1bW4sIGJSZWRyYXcsIGJBY3Rpb24gKQp7Cgl2YXIgb1NldHRpbmdzID0gX2ZuU2V0dGluZ3NGcm9tTm9kZSggdGhpc1tEYXRhVGFibGUuZXh0LmlBcGlJbmRleF0gKTsKCXZhciBpLCBpTGVuLCBzRGlzcGxheTsKCXZhciBpUm93ID0gKHR5cGVvZiBtUm93ID09PSAnb2JqZWN0JykgPyAKCQlfZm5Ob2RlVG9EYXRhSW5kZXgob1NldHRpbmdzLCBtUm93KSA6IG1Sb3c7CgkKCWlmICggJC5pc0FycmF5KG1EYXRhKSAmJiBpQ29sdW1uID09PSB1bmRlZmluZWQgKQoJewoJCS8qIEFycmF5IHVwZGF0ZSAtIHVwZGF0ZSB0aGUgd2hvbGUgcm93ICovCgkJb1NldHRpbmdzLmFvRGF0YVtpUm93XS5fYURhdGEgPSBtRGF0YS5zbGljZSgpOwoJCQoJCS8qIEZsYWcgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgd2UgYXJlIHJlY3Vyc2luZyAqLwoJCWZvciAoIGk9MCA7IGk8b1NldHRpbmdzLmFvQ29sdW1ucy5sZW5ndGggOyBpKysgKQoJCXsKCQkJdGhpcy5mblVwZGF0ZSggX2ZuR2V0Q2VsbERhdGEoIG9TZXR0aW5ncywgaVJvdywgaSApLCBpUm93LCBpLCBmYWxzZSwgZmFsc2UgKTsKCQl9Cgl9CgllbHNlIGlmICggJC5pc1BsYWluT2JqZWN0KG1EYXRhKSAmJiBpQ29sdW1uID09PSB1bmRlZmluZWQgKQoJewoJCS8qIE9iamVjdCB1cGRhdGUgLSB1cGRhdGUgdGhlIHdob2xlIHJvdyAtIGFzc3VtZSB0aGUgZGV2ZWxvcGVyIGdldHMgdGhlIG9iamVjdCByaWdodCAqLwoJCW9TZXR0aW5ncy5hb0RhdGFbaVJvd10uX2FEYXRhID0gJC5leHRlbmQoIHRydWUsIHt9LCBtRGF0YSApOwoKCQlmb3IgKCBpPTAgOyBpPG9TZXR0aW5ncy5hb0NvbHVtbnMubGVuZ3RoIDsgaSsrICkKCQl7CgkJCXRoaXMuZm5VcGRhdGUoIF9mbkdldENlbGxEYXRhKCBvU2V0dGluZ3MsIGlSb3csIGkgKSwgaVJvdywgaSwgZmFsc2UsIGZhbHNlICk7CgkJfQoJfQoJZWxzZQoJewoJCS8qIEluZGl2aWR1YWwgY2VsbCB1cGRhdGUgKi8KCQlfZm5TZXRDZWxsRGF0YSggb1NldHRpbmdzLCBpUm93LCBpQ29sdW1uLCBtRGF0YSApOwoJCXNEaXNwbGF5ID0gX2ZuR2V0Q2VsbERhdGEoIG9TZXR0aW5ncywgaVJvdywgaUNvbHVtbiwgJ2Rpc3BsYXknICk7CgkJCgkJdmFyIG9Db2wgPSBvU2V0dGluZ3MuYW9Db2x1bW5zW2lDb2x1bW5dOwoJCWlmICggb0NvbC5mblJlbmRlciAhPT0gbnVsbCApCgkJewoJCQlzRGlzcGxheSA9IF9mblJlbmRlciggb1NldHRpbmdzLCBpUm93LCBpQ29sdW1uICk7CgkJCWlmICggb0NvbC5iVXNlUmVuZGVyZWQgKQoJCQl7CgkJCQlfZm5TZXRDZWxsRGF0YSggb1NldHRpbmdzLCBpUm93LCBpQ29sdW1uLCBzRGlzcGxheSApOwoJCQl9CgkJfQoJCQoJCWlmICggb1NldHRpbmdzLmFvRGF0YVtpUm93XS5uVHIgIT09IG51bGwgKQoJCXsKCQkJLyogRG8gdGhlIGFjdHVhbCBIVE1MIHVwZGF0ZSAqLwoJCQlfZm5HZXRUZE5vZGVzKCBvU2V0dGluZ3MsIGlSb3cgKVtpQ29sdW1uXS5pbm5lckhUTUwgPSBzRGlzcGxheTsKCQl9Cgl9CgkKCS8qIE1vZGlmeSB0aGUgc2VhcmNoIGluZGV4IGZvciB0aGlzIHJvdyAoc3RyaWN0bHkgdGhpcyBpcyBsaWtlbHkgbm90IG5lZWRlZCwgc2luY2UgZm5SZURyYXcKCSAqIHdpbGwgcmVidWlsZCB0aGUgc2VhcmNoIGFycmF5IC0gaG93ZXZlciwgdGhlIHJlZHJhdyBtaWdodCBiZSBkaXNhYmxlZCBieSB0aGUgdXNlcikKCSAqLwoJdmFyIGlEaXNwbGF5SW5kZXggPSAkLmluQXJyYXkoIGlSb3csIG9TZXR0aW5ncy5haURpc3BsYXkgKTsKCW9TZXR0aW5ncy5hc0RhdGFTZWFyY2hbaURpc3BsYXlJbmRleF0gPSBfZm5CdWlsZFNlYXJjaFJvdygKCQlvU2V0dGluZ3MsIAoJCV9mbkdldFJvd0RhdGEoIG9TZXR0aW5ncywgaVJvdywgJ2ZpbHRlcicsIF9mbkdldENvbHVtbnMoIG9TZXR0aW5ncywgJ2JTZWFyY2hhYmxlJyApICkKCSk7CgkKCS8qIFBlcmZvcm0gcHJlLWRyYXcgYWN0aW9ucyAqLwoJaWYgKCBiQWN0aW9uID09PSB1bmRlZmluZWQgfHwgYkFjdGlvbiApCgl7CgkJX2ZuQWRqdXN0Q29sdW1uU2l6aW5nKCBvU2V0dGluZ3MgKTsKCX0KCQoJLyogUmVkcmF3IHRoZSB0YWJsZSAqLwoJaWYgKCBiUmVkcmF3ID09PSB1bmRlZmluZWQgfHwgYlJlZHJhdyApCgl7CgkJX2ZuUmVEcmF3KCBvU2V0dGluZ3MgKTsKCX0KCXJldHVybiAwOwp9OwoKCi8qKgogKiBQcm92aWRlIGEgY29tbW9uIG1ldGhvZCBmb3IgcGx1Zy1pbnMgdG8gY2hlY2sgdGhlIHZlcnNpb24gb2YgRGF0YVRhYmxlcyBiZWluZyB1c2VkLCBpbiBvcmRlcgogKiB0byBlbnN1cmUgY29tcGF0aWJpbGl0eS4KICogIEBwYXJhbSB7c3RyaW5nfSBzVmVyc2lvbiBWZXJzaW9uIHN0cmluZyB0byBjaGVjayBmb3IsIGluIHRoZSBmb3JtYXQgIlguWS5aIi4gTm90ZSB0aGF0IHRoZQogKiAgICBmb3JtYXRzICJYIiBhbmQgIlguWSIgYXJlIGFsc28gYWNjZXB0YWJsZS4KICogIEByZXR1cm5zIHtib29sZWFufSB0cnVlIGlmIHRoaXMgdmVyc2lvbiBvZiBEYXRhVGFibGVzIGlzIGdyZWF0ZXIgb3IgZXF1YWwgdG8gdGhlIHJlcXVpcmVkCiAqICAgIHZlcnNpb24sIG9yIGZhbHNlIGlmIHRoaXMgdmVyc2lvbiBvZiBEYXRhVGFsZXMgaXMgbm90IHN1aXRhYmxlCiAqICBAbWV0aG9kCiAqICBAZHRvcHQgQVBJCiAqCiAqICBAZXhhbXBsZQogKiAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKICogICAgICB2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKICogICAgICBhbGVydCggb1RhYmxlLmZuVmVyc2lvbkNoZWNrKCAnMS45LjAnICkgKTsKICogICAgfSApOwogKi8KdGhpcy5mblZlcnNpb25DaGVjayA9IERhdGFUYWJsZS5leHQuZm5WZXJzaW9uQ2hlY2s7Cgo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/api/api.static.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CgovKioKICogUHJvdmlkZSBhIGNvbW1vbiBtZXRob2QgZm9yIHBsdWctaW5zIHRvIGNoZWNrIHRoZSB2ZXJzaW9uIG9mIERhdGFUYWJsZXMgYmVpbmcgdXNlZCwgaW4gb3JkZXIKICogdG8gZW5zdXJlIGNvbXBhdGliaWxpdHkuCiAqICBAcGFyYW0ge3N0cmluZ30gc1ZlcnNpb24gVmVyc2lvbiBzdHJpbmcgdG8gY2hlY2sgZm9yLCBpbiB0aGUgZm9ybWF0ICJYLlkuWiIuIE5vdGUgdGhhdCB0aGUKICogICAgZm9ybWF0cyAiWCIgYW5kICJYLlkiIGFyZSBhbHNvIGFjY2VwdGFibGUuCiAqICBAcmV0dXJucyB7Ym9vbGVhbn0gdHJ1ZSBpZiB0aGlzIHZlcnNpb24gb2YgRGF0YVRhYmxlcyBpcyBncmVhdGVyIG9yIGVxdWFsIHRvIHRoZSByZXF1aXJlZAogKiAgICB2ZXJzaW9uLCBvciBmYWxzZSBpZiB0aGlzIHZlcnNpb24gb2YgRGF0YVRhbGVzIGlzIG5vdCBzdWl0YWJsZQogKiAgQHN0YXRpYwogKiAgQGR0b3B0IEFQSS1TdGF0aWMKICoKICogIEBleGFtcGxlCiAqICAgIGFsZXJ0KCAkLmZuLmRhdGFUYWJsZS5mblZlcnNpb25DaGVjayggJzEuOS4wJyApICk7CiAqLwpEYXRhVGFibGUuZm5WZXJzaW9uQ2hlY2sgPSBmdW5jdGlvbiggc1ZlcnNpb24gKQp7CgkvKiBUaGlzIGlzIGNoZWFwLCBidXQgZWZmZWN0aXZlICovCgl2YXIgZm5aUGFkID0gZnVuY3Rpb24gKFpwYWQsIGNvdW50KQoJewoJCXdoaWxlKFpwYWQubGVuZ3RoIDwgY291bnQpIHsKCQkJWnBhZCArPSAnMCc7CgkJfQoJCXJldHVybiBacGFkOwoJfTsKCXZhciBhVGhpcyA9IERhdGFUYWJsZS5leHQuc1ZlcnNpb24uc3BsaXQoJy4nKTsKCXZhciBhVGhhdCA9IHNWZXJzaW9uLnNwbGl0KCcuJyk7Cgl2YXIgc1RoaXMgPSAnJywgc1RoYXQgPSAnJzsKCQoJZm9yICggdmFyIGk9MCwgaUxlbj1hVGhhdC5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJewoJCXNUaGlzICs9IGZuWlBhZCggYVRoaXNbaV0sIDMgKTsKCQlzVGhhdCArPSBmblpQYWQoIGFUaGF0W2ldLCAzICk7Cgl9CgkKCXJldHVybiBwYXJzZUludChzVGhpcywgMTApID49IHBhcnNlSW50KHNUaGF0LCAxMCk7Cn07CgoKLyoqCiAqIENoZWNrIGlmIGEgVEFCTEUgbm9kZSBpcyBhIERhdGFUYWJsZSB0YWJsZSBhbHJlYWR5IG9yIG5vdC4KICogIEBwYXJhbSB7bm9kZX0gblRhYmxlIFRoZSBUQUJMRSBub2RlIHRvIGNoZWNrIGlmIGl0IGlzIGEgRGF0YVRhYmxlIG9yIG5vdCAobm90ZSB0aGF0IG90aGVyCiAqICAgIG5vZGUgdHlwZXMgY2FuIGJlIHBhc3NlZCBpbiwgYnV0IHdpbGwgYWx3YXlzIHJldHVybiBmYWxzZSkuCiAqICBAcmV0dXJucyB7Ym9vbGVhbn0gdHJ1ZSB0aGUgdGFibGUgZ2l2ZW4gaXMgYSBEYXRhVGFibGUsIG9yIGZhbHNlIG90aGVyd2lzZQogKiAgQHN0YXRpYwogKiAgQGR0b3B0IEFQSS1TdGF0aWMKICoKICogIEBleGFtcGxlCiAqICAgIHZhciBleCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlJyk7CiAqICAgIGlmICggISAkLmZuLkRhdGFUYWJsZS5mbklzRGF0YVRhYmxlKCBleCApICkgewogKiAgICAgICQoZXgpLmRhdGFUYWJsZSgpOwogKiAgICB9CiAqLwpEYXRhVGFibGUuZm5Jc0RhdGFUYWJsZSA9IGZ1bmN0aW9uICggblRhYmxlICkKewoJdmFyIG8gPSBEYXRhVGFibGUuc2V0dGluZ3M7CgoJZm9yICggdmFyIGk9MCA7IGk8by5sZW5ndGggOyBpKysgKQoJewoJCWlmICggb1tpXS5uVGFibGUgPT09IG5UYWJsZSB8fCBvW2ldLm5TY3JvbGxIZWFkID09PSBuVGFibGUgfHwgb1tpXS5uU2Nyb2xsRm9vdCA9PT0gblRhYmxlICkKCQl7CgkJCXJldHVybiB0cnVlOwoJCX0KCX0KCglyZXR1cm4gZmFsc2U7Cn07CgoKLyoqCiAqIEdldCBhbGwgRGF0YVRhYmxlIHRhYmxlcyB0aGF0IGhhdmUgYmVlbiBpbml0aWFsaXNlZCAtIG9wdGlvbmFsbHkgeW91IGNhbiBzZWxlY3QgdG8KICogZ2V0IG9ubHkgY3VycmVudGx5IHZpc2libGUgdGFibGVzLgogKiAgQHBhcmFtIHtib29sZWFufSBbYlZpc2libGU9ZmFsc2VdIEZsYWcgdG8gaW5kaWNhdGUgaWYgeW91IHdhbnQgYWxsIChkZWZhdWx0KSBvciAKICogICAgdmlzaWJsZSB0YWJsZXMgb25seS4KICogIEByZXR1cm5zIHthcnJheX0gQXJyYXkgb2YgVEFCTEUgbm9kZXMgKG5vdCBEYXRhVGFibGUgaW5zdGFuY2VzKSB3aGljaCBhcmUgRGF0YVRhYmxlcwogKiAgQHN0YXRpYwogKiAgQGR0b3B0IEFQSS1TdGF0aWMKICoKICogIEBleGFtcGxlCiAqICAgIHZhciB0YWJsZSA9ICQuZm4uZGF0YVRhYmxlLmZuVGFibGVzKHRydWUpOwogKiAgICBpZiAoIHRhYmxlLmxlbmd0aCA+IDAgKSB7CiAqICAgICAgJCh0YWJsZSkuZGF0YVRhYmxlKCkuZm5BZGp1c3RDb2x1bW5TaXppbmcoKTsKICogICAgfQogKi8KRGF0YVRhYmxlLmZuVGFibGVzID0gZnVuY3Rpb24gKCBiVmlzaWJsZSApCnsKCXZhciBvdXQgPSBbXTsKCglqUXVlcnkuZWFjaCggRGF0YVRhYmxlLnNldHRpbmdzLCBmdW5jdGlvbiAoaSwgbykgewoJCWlmICggIWJWaXNpYmxlIHx8IChiVmlzaWJsZSA9PT0gdHJ1ZSAmJiAkKG8ublRhYmxlKS5pcygnOnZpc2libGUnKSkgKQoJCXsKCQkJb3V0LnB1c2goIG8ublRhYmxlICk7CgkJfQoJfSApOwoKCXJldHVybiBvdXQ7Cn07Cgo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/core/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/core/core.ajax.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CgovKioKICogVXBkYXRlIHRoZSB0YWJsZSB1c2luZyBhbiBBamF4IGNhbGwKICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKICogIEByZXR1cm5zIHtib29sZWFufSBCbG9jayB0aGUgdGFibGUgZHJhd2luZyBvciBub3QKICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQogKi8KZnVuY3Rpb24gX2ZuQWpheFVwZGF0ZSggb1NldHRpbmdzICkKewoJaWYgKCBvU2V0dGluZ3MuYkFqYXhEYXRhR2V0ICkKCXsKCQlvU2V0dGluZ3MuaURyYXcrKzsKCQlfZm5Qcm9jZXNzaW5nRGlzcGxheSggb1NldHRpbmdzLCB0cnVlICk7CgkJdmFyIGlDb2x1bW5zID0gb1NldHRpbmdzLmFvQ29sdW1ucy5sZW5ndGg7CgkJdmFyIGFvRGF0YSA9IF9mbkFqYXhQYXJhbWV0ZXJzKCBvU2V0dGluZ3MgKTsKCQlfZm5TZXJ2ZXJQYXJhbXMoIG9TZXR0aW5ncywgYW9EYXRhICk7CgkJCgkJb1NldHRpbmdzLmZuU2VydmVyRGF0YS5jYWxsKCBvU2V0dGluZ3Mub0luc3RhbmNlLCBvU2V0dGluZ3Muc0FqYXhTb3VyY2UsIGFvRGF0YSwKCQkJZnVuY3Rpb24oanNvbikgewoJCQkJX2ZuQWpheFVwZGF0ZURyYXcoIG9TZXR0aW5ncywganNvbiApOwoJCQl9LCBvU2V0dGluZ3MgKTsKCQlyZXR1cm4gZmFsc2U7Cgl9CgllbHNlCgl7CgkJcmV0dXJuIHRydWU7Cgl9Cn0KCgovKioKICogQnVpbGQgdXAgdGhlIHBhcmFtZXRlcnMgaW4gYW4gb2JqZWN0IG5lZWRlZCBmb3IgYSBzZXJ2ZXItc2lkZSBwcm9jZXNzaW5nIHJlcXVlc3QKICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKICogIEByZXR1cm5zIHtib29sfSBibG9jayB0aGUgdGFibGUgZHJhd2luZyBvciBub3QKICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQogKi8KZnVuY3Rpb24gX2ZuQWpheFBhcmFtZXRlcnMoIG9TZXR0aW5ncyApCnsKCXZhciBpQ29sdW1ucyA9IG9TZXR0aW5ncy5hb0NvbHVtbnMubGVuZ3RoOwoJdmFyIGFvRGF0YSA9IFtdLCBtRGF0YVByb3AsIGFhU29ydCwgYURhdGFTb3J0OwoJdmFyIGksIGo7CgkKCWFvRGF0YS5wdXNoKCB7ICJuYW1lIjogInNFY2hvIiwgICAgICAgICAgInZhbHVlIjogb1NldHRpbmdzLmlEcmF3IH0gKTsKCWFvRGF0YS5wdXNoKCB7ICJuYW1lIjogImlDb2x1bW5zIiwgICAgICAgInZhbHVlIjogaUNvbHVtbnMgfSApOwoJYW9EYXRhLnB1c2goIHsgIm5hbWUiOiAic0NvbHVtbnMiLCAgICAgICAidmFsdWUiOiBfZm5Db2x1bW5PcmRlcmluZyhvU2V0dGluZ3MpIH0gKTsKCWFvRGF0YS5wdXNoKCB7ICJuYW1lIjogImlEaXNwbGF5U3RhcnQiLCAgInZhbHVlIjogb1NldHRpbmdzLl9pRGlzcGxheVN0YXJ0IH0gKTsKCWFvRGF0YS5wdXNoKCB7ICJuYW1lIjogImlEaXNwbGF5TGVuZ3RoIiwgInZhbHVlIjogb1NldHRpbmdzLm9GZWF0dXJlcy5iUGFnaW5hdGUgIT09IGZhbHNlID8KCQlvU2V0dGluZ3MuX2lEaXNwbGF5TGVuZ3RoIDogLTEgfSApOwoJCQoJZm9yICggaT0wIDsgaTxpQ29sdW1ucyA7IGkrKyApCgl7CgkgIG1EYXRhUHJvcCA9IG9TZXR0aW5ncy5hb0NvbHVtbnNbaV0ubURhdGE7CgkJYW9EYXRhLnB1c2goIHsgIm5hbWUiOiAibURhdGFQcm9wXyIraSwgInZhbHVlIjogdHlwZW9mKG1EYXRhUHJvcCk9PT0iZnVuY3Rpb24iID8gJ2Z1bmN0aW9uJyA6IG1EYXRhUHJvcCB9ICk7Cgl9CgkKCS8qIEZpbHRlcmluZyAqLwoJaWYgKCBvU2V0dGluZ3Mub0ZlYXR1cmVzLmJGaWx0ZXIgIT09IGZhbHNlICkKCXsKCQlhb0RhdGEucHVzaCggeyAibmFtZSI6ICJzU2VhcmNoIiwgInZhbHVlIjogb1NldHRpbmdzLm9QcmV2aW91c1NlYXJjaC5zU2VhcmNoIH0gKTsKCQlhb0RhdGEucHVzaCggeyAibmFtZSI6ICJiUmVnZXgiLCAgInZhbHVlIjogb1NldHRpbmdzLm9QcmV2aW91c1NlYXJjaC5iUmVnZXggfSApOwoJCWZvciAoIGk9MCA7IGk8aUNvbHVtbnMgOyBpKysgKQoJCXsKCQkJYW9EYXRhLnB1c2goIHsgIm5hbWUiOiAic1NlYXJjaF8iK2ksICAgICAidmFsdWUiOiBvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzW2ldLnNTZWFyY2ggfSApOwoJCQlhb0RhdGEucHVzaCggeyAibmFtZSI6ICJiUmVnZXhfIitpLCAgICAgICJ2YWx1ZSI6IG9TZXR0aW5ncy5hb1ByZVNlYXJjaENvbHNbaV0uYlJlZ2V4IH0gKTsKCQkJYW9EYXRhLnB1c2goIHsgIm5hbWUiOiAiYlNlYXJjaGFibGVfIitpLCAidmFsdWUiOiBvU2V0dGluZ3MuYW9Db2x1bW5zW2ldLmJTZWFyY2hhYmxlIH0gKTsKCQl9Cgl9CgkKCS8qIFNvcnRpbmcgKi8KCWlmICggb1NldHRpbmdzLm9GZWF0dXJlcy5iU29ydCAhPT0gZmFsc2UgKQoJewoJCXZhciBpQ291bnRlciA9IDA7CgoJCWFhU29ydCA9ICggb1NldHRpbmdzLmFhU29ydGluZ0ZpeGVkICE9PSBudWxsICkgPwoJCQlvU2V0dGluZ3MuYWFTb3J0aW5nRml4ZWQuY29uY2F0KCBvU2V0dGluZ3MuYWFTb3J0aW5nICkgOgoJCQlvU2V0dGluZ3MuYWFTb3J0aW5nLnNsaWNlKCk7CgkJCgkJZm9yICggaT0wIDsgaTxhYVNvcnQubGVuZ3RoIDsgaSsrICkKCQl7CgkJCWFEYXRhU29ydCA9IG9TZXR0aW5ncy5hb0NvbHVtbnNbIGFhU29ydFtpXVswXSBdLmFEYXRhU29ydDsKCQkJCgkJCWZvciAoIGo9MCA7IGo8YURhdGFTb3J0Lmxlbmd0aCA7IGorKyApCgkJCXsKCQkJCWFvRGF0YS5wdXNoKCB7ICJuYW1lIjogImlTb3J0Q29sXyIraUNvdW50ZXIsICAidmFsdWUiOiBhRGF0YVNvcnRbal0gfSApOwoJCQkJYW9EYXRhLnB1c2goIHsgIm5hbWUiOiAic1NvcnREaXJfIitpQ291bnRlciwgICJ2YWx1ZSI6IGFhU29ydFtpXVsxXSB9ICk7CgkJCQlpQ291bnRlcisrOwoJCQl9CgkJfQoJCWFvRGF0YS5wdXNoKCB7ICJuYW1lIjogImlTb3J0aW5nQ29scyIsICAgInZhbHVlIjogaUNvdW50ZXIgfSApOwoJCQoJCWZvciAoIGk9MCA7IGk8aUNvbHVtbnMgOyBpKysgKQoJCXsKCQkJYW9EYXRhLnB1c2goIHsgIm5hbWUiOiAiYlNvcnRhYmxlXyIraSwgICJ2YWx1ZSI6IG9TZXR0aW5ncy5hb0NvbHVtbnNbaV0uYlNvcnRhYmxlIH0gKTsKCQl9Cgl9CgkKCXJldHVybiBhb0RhdGE7Cn0KCgovKioKICogQWRkIEFqYXggcGFyYW1ldGVycyBmcm9tIHBsdWctaW5zCiAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CiAqICBAcGFyYW0gYXJyYXkge29iamVjdHN9IGFvRGF0YSBuYW1lL3ZhbHVlIHBhaXJzIHRvIHNlbmQgdG8gdGhlIHNlcnZlcgogKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCiAqLwpmdW5jdGlvbiBfZm5TZXJ2ZXJQYXJhbXMoIG9TZXR0aW5ncywgYW9EYXRhICkKewoJX2ZuQ2FsbGJhY2tGaXJlKCBvU2V0dGluZ3MsICdhb1NlcnZlclBhcmFtcycsICdzZXJ2ZXJQYXJhbXMnLCBbYW9EYXRhXSApOwp9CgoKLyoqCiAqIERhdGEgdGhlIGRhdGEgZnJvbSB0aGUgc2VydmVyIChudWtpbmcgdGhlIG9sZCkgYW5kIHJlZHJhdyB0aGUgdGFibGUKICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKICogIEBwYXJhbSB7b2JqZWN0fSBqc29uIGpzb24gZGF0YSByZXR1cm4gZnJvbSB0aGUgc2VydmVyLgogKiAgQHBhcmFtIHtzdHJpbmd9IGpzb24uc0VjaG8gVHJhY2tpbmcgZmxhZyBmb3IgRGF0YVRhYmxlcyB0byBtYXRjaCByZXF1ZXN0cwogKiAgQHBhcmFtIHtpbnR9IGpzb24uaVRvdGFsUmVjb3JkcyBOdW1iZXIgb2YgcmVjb3JkcyBpbiB0aGUgZGF0YSBzZXQsIG5vdCBhY2NvdW50aW5nIGZvciBmaWx0ZXJpbmcKICogIEBwYXJhbSB7aW50fSBqc29uLmlUb3RhbERpc3BsYXlSZWNvcmRzIE51bWJlciBvZiByZWNvcmRzIGluIHRoZSBkYXRhIHNldCwgYWNjb3VudGluZyBmb3IgZmlsdGVyaW5nCiAqICBAcGFyYW0ge2FycmF5fSBqc29uLmFhRGF0YSBUaGUgZGF0YSB0byBkaXNwbGF5IG9uIHRoaXMgcGFnZQogKiAgQHBhcmFtIHtzdHJpbmd9IFtqc29uLnNDb2x1bW5zXSBDb2x1bW4gb3JkZXJpbmcgKHNOYW1lLCBjb21tYSBzZXBhcmF0ZWQpCiAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKICovCmZ1bmN0aW9uIF9mbkFqYXhVcGRhdGVEcmF3ICggb1NldHRpbmdzLCBqc29uICkKewoJaWYgKCBqc29uLnNFY2hvICE9PSB1bmRlZmluZWQgKQoJewoJCS8qIFByb3RlY3QgYWdhaW5zdCBvbGQgcmV0dXJucyBvdmVyLXdyaXRpbmcgYSBuZXcgb25lLiBQb3NzaWJsZSB3aGVuIHlvdSBnZXQKCQkgKiB2ZXJ5IGZhc3QgaW50ZXJhY3Rpb24sIGFuZCBsYXRlciBxdWVyaWVzIGFyZSBjb21wbGV0ZWQgbXVjaCBmYXN0ZXIKCQkgKi8KCQlpZiAoIGpzb24uc0VjaG8qMSA8IG9TZXR0aW5ncy5pRHJhdyApCgkJewoJCQlyZXR1cm47CgkJfQoJCWVsc2UKCQl7CgkJCW9TZXR0aW5ncy5pRHJhdyA9IGpzb24uc0VjaG8gKiAxOwoJCX0KCX0KCQoJaWYgKCAhb1NldHRpbmdzLm9TY3JvbGwuYkluZmluaXRlIHx8CgkJICAgKG9TZXR0aW5ncy5vU2Nyb2xsLmJJbmZpbml0ZSAmJiAob1NldHRpbmdzLmJTb3J0ZWQgfHwgb1NldHRpbmdzLmJGaWx0ZXJlZCkpICkKCXsKCQlfZm5DbGVhclRhYmxlKCBvU2V0dGluZ3MgKTsKCX0KCW9TZXR0aW5ncy5faVJlY29yZHNUb3RhbCA9IHBhcnNlSW50KGpzb24uaVRvdGFsUmVjb3JkcywgMTApOwoJb1NldHRpbmdzLl9pUmVjb3Jkc0Rpc3BsYXkgPSBwYXJzZUludChqc29uLmlUb3RhbERpc3BsYXlSZWNvcmRzLCAxMCk7CgkKCS8qIERldGVybWluZSBpZiByZW9yZGVyaW5nIGlzIHJlcXVpcmVkICovCgl2YXIgc09yZGVyaW5nID0gX2ZuQ29sdW1uT3JkZXJpbmcob1NldHRpbmdzKTsKCXZhciBiUmVPcmRlciA9IChqc29uLnNDb2x1bW5zICE9PSB1bmRlZmluZWQgJiYgc09yZGVyaW5nICE9PSAiIiAmJiBqc29uLnNDb2x1bW5zICE9IHNPcmRlcmluZyApOwoJdmFyIGFpSW5kZXg7CglpZiAoIGJSZU9yZGVyICkKCXsKCQlhaUluZGV4ID0gX2ZuUmVPcmRlckluZGV4KCBvU2V0dGluZ3MsIGpzb24uc0NvbHVtbnMgKTsKCX0KCQoJdmFyIGFEYXRhID0gX2ZuR2V0T2JqZWN0RGF0YUZuKCBvU2V0dGluZ3Muc0FqYXhEYXRhUHJvcCApKCBqc29uICk7Cglmb3IgKCB2YXIgaT0wLCBpTGVuPWFEYXRhLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgl7CgkJaWYgKCBiUmVPcmRlciApCgkJewoJCQkvKiBJZiB3ZSBuZWVkIHRvIHJlLW9yZGVyLCB0aGVuIGNyZWF0ZSBhIG5ldyBhcnJheSB3aXRoIHRoZSBjb3JyZWN0IG9yZGVyIGFuZCBhZGQgaXQgKi8KCQkJdmFyIGFEYXRhU29ydGVkID0gW107CgkJCWZvciAoIHZhciBqPTAsIGpMZW49b1NldHRpbmdzLmFvQ29sdW1ucy5sZW5ndGggOyBqPGpMZW4gOyBqKysgKQoJCQl7CgkJCQlhRGF0YVNvcnRlZC5wdXNoKCBhRGF0YVtpXVsgYWlJbmRleFtqXSBdICk7CgkJCX0KCQkJX2ZuQWRkRGF0YSggb1NldHRpbmdzLCBhRGF0YVNvcnRlZCApOwoJCX0KCQllbHNlCgkJewoJCQkvKiBObyByZS1vcmRlciByZXF1aXJlZCwgc2V2ZXIgZ290IGl0ICJyaWdodCIgLSBqdXN0IHN0cmFpZ2h0IGFkZCAqLwoJCQlfZm5BZGREYXRhKCBvU2V0dGluZ3MsIGFEYXRhW2ldICk7CgkJfQoJfQoJb1NldHRpbmdzLmFpRGlzcGxheSA9IG9TZXR0aW5ncy5haURpc3BsYXlNYXN0ZXIuc2xpY2UoKTsKCQoJb1NldHRpbmdzLmJBamF4RGF0YUdldCA9IGZhbHNlOwoJX2ZuRHJhdyggb1NldHRpbmdzICk7CglvU2V0dGluZ3MuYkFqYXhEYXRhR2V0ID0gdHJ1ZTsKCV9mblByb2Nlc3NpbmdEaXNwbGF5KCBvU2V0dGluZ3MsIGZhbHNlICk7Cn0KCg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/core/core.columns.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CgovKioKICogQWRkIGEgY29sdW1uIHRvIHRoZSBsaXN0IHVzZWQgZm9yIHRoZSB0YWJsZSB3aXRoIGRlZmF1bHQgdmFsdWVzCiAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CiAqICBAcGFyYW0ge25vZGV9IG5UaCBUaGUgdGggZWxlbWVudCBmb3IgdGhpcyBjb2x1bW4KICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQogKi8KZnVuY3Rpb24gX2ZuQWRkQ29sdW1uKCBvU2V0dGluZ3MsIG5UaCApCnsKCXZhciBvRGVmYXVsdHMgPSBEYXRhVGFibGUuZGVmYXVsdHMuY29sdW1uczsKCXZhciBpQ29sID0gb1NldHRpbmdzLmFvQ29sdW1ucy5sZW5ndGg7Cgl2YXIgb0NvbCA9ICQuZXh0ZW5kKCB7fSwgRGF0YVRhYmxlLm1vZGVscy5vQ29sdW1uLCBvRGVmYXVsdHMsIHsKCQkic1NvcnRpbmdDbGFzcyI6IG9TZXR0aW5ncy5vQ2xhc3Nlcy5zU29ydGFibGUsCgkJInNTb3J0aW5nQ2xhc3NKVUkiOiBvU2V0dGluZ3Mub0NsYXNzZXMuc1NvcnRKVUksCgkJIm5UaCI6IG5UaCA/IG5UaCA6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RoJyksCgkJInNUaXRsZSI6ICAgIG9EZWZhdWx0cy5zVGl0bGUgICAgPyBvRGVmYXVsdHMuc1RpdGxlICAgIDogblRoID8gblRoLmlubmVySFRNTCA6ICcnLAoJCSJhRGF0YVNvcnQiOiBvRGVmYXVsdHMuYURhdGFTb3J0ID8gb0RlZmF1bHRzLmFEYXRhU29ydCA6IFtpQ29sXSwKCQkibURhdGEiOiBvRGVmYXVsdHMubURhdGEgPyBvRGVmYXVsdHMub0RlZmF1bHRzIDogaUNvbAoJfSApOwoJb1NldHRpbmdzLmFvQ29sdW1ucy5wdXNoKCBvQ29sICk7CgkKCS8qIEFkZCBhIGNvbHVtbiBzcGVjaWZpYyBmaWx0ZXIgKi8KCWlmICggb1NldHRpbmdzLmFvUHJlU2VhcmNoQ29sc1sgaUNvbCBdID09PSB1bmRlZmluZWQgfHwgb1NldHRpbmdzLmFvUHJlU2VhcmNoQ29sc1sgaUNvbCBdID09PSBudWxsICkKCXsKCQlvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzWyBpQ29sIF0gPSAkLmV4dGVuZCgge30sIERhdGFUYWJsZS5tb2RlbHMub1NlYXJjaCApOwoJfQoJZWxzZQoJewoJCXZhciBvUHJlID0gb1NldHRpbmdzLmFvUHJlU2VhcmNoQ29sc1sgaUNvbCBdOwoJCQoJCS8qIERvbid0IHJlcXVpcmUgdGhhdCB0aGUgdXNlciBtdXN0IHNwZWNpZnkgYlJlZ2V4LCBiU21hcnQgb3IgYkNhc2VJbnNlbnNpdGl2ZSAqLwoJCWlmICggb1ByZS5iUmVnZXggPT09IHVuZGVmaW5lZCApCgkJewoJCQlvUHJlLmJSZWdleCA9IHRydWU7CgkJfQoJCQoJCWlmICggb1ByZS5iU21hcnQgPT09IHVuZGVmaW5lZCApCgkJewoJCQlvUHJlLmJTbWFydCA9IHRydWU7CgkJfQoJCQoJCWlmICggb1ByZS5iQ2FzZUluc2Vuc2l0aXZlID09PSB1bmRlZmluZWQgKQoJCXsKCQkJb1ByZS5iQ2FzZUluc2Vuc2l0aXZlID0gdHJ1ZTsKCQl9Cgl9CgkKCS8qIFVzZSB0aGUgY29sdW1uIG9wdGlvbnMgZnVuY3Rpb24gdG8gaW5pdGlhbGlzZSBjbGFzc2VzIGV0YyAqLwoJX2ZuQ29sdW1uT3B0aW9ucyggb1NldHRpbmdzLCBpQ29sLCBudWxsICk7Cn0KCgovKioKICogQXBwbHkgb3B0aW9ucyBmb3IgYSBjb2x1bW4KICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKICogIEBwYXJhbSB7aW50fSBpQ29sIGNvbHVtbiBpbmRleCB0byBjb25zaWRlcgogKiAgQHBhcmFtIHtvYmplY3R9IG9PcHRpb25zIG9iamVjdCB3aXRoIHNUeXBlLCBiVmlzaWJsZSBhbmQgYlNlYXJjaGFibGUgZXRjCiAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKICovCmZ1bmN0aW9uIF9mbkNvbHVtbk9wdGlvbnMoIG9TZXR0aW5ncywgaUNvbCwgb09wdGlvbnMgKQp7Cgl2YXIgb0NvbCA9IG9TZXR0aW5ncy5hb0NvbHVtbnNbIGlDb2wgXTsKCQoJLyogVXNlciBzcGVjaWZpZWQgY29sdW1uIG9wdGlvbnMgKi8KCWlmICggb09wdGlvbnMgIT09IHVuZGVmaW5lZCAmJiBvT3B0aW9ucyAhPT0gbnVsbCApCgl7CgkJLyogQmFja3dhcmRzIGNvbXBhdGliaWxpdHkgZm9yIG1EYXRhUHJvcCAqLwoJCWlmICggb09wdGlvbnMubURhdGFQcm9wICYmICFvT3B0aW9ucy5tRGF0YSApCgkJewoJCQlvT3B0aW9ucy5tRGF0YSA9IG9PcHRpb25zLm1EYXRhUHJvcDsKCQl9CgoJCWlmICggb09wdGlvbnMuc1R5cGUgIT09IHVuZGVmaW5lZCApCgkJewoJCQlvQ29sLnNUeXBlID0gb09wdGlvbnMuc1R5cGU7CgkJCW9Db2wuX2JBdXRvVHlwZSA9IGZhbHNlOwoJCX0KCQkKCQkkLmV4dGVuZCggb0NvbCwgb09wdGlvbnMgKTsKCQlfZm5NYXAoIG9Db2wsIG9PcHRpb25zLCAic1dpZHRoIiwgInNXaWR0aE9yaWciICk7CgoJCS8qIGlEYXRhU29ydCB0byBiZSBhcHBsaWVkIChiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSksIGJ1dCBhRGF0YVNvcnQgd2lsbCB0YWtlCgkJICogcHJpb3JpdHkgaWYgZGVmaW5lZAoJCSAqLwoJCWlmICggb09wdGlvbnMuaURhdGFTb3J0ICE9PSB1bmRlZmluZWQgKQoJCXsKCQkJb0NvbC5hRGF0YVNvcnQgPSBbIG9PcHRpb25zLmlEYXRhU29ydCBdOwoJCX0KCQlfZm5NYXAoIG9Db2wsIG9PcHRpb25zLCAiYURhdGFTb3J0IiApOwoJfQoKCS8qIENhY2hlIHRoZSBkYXRhIGdldCBhbmQgc2V0IGZ1bmN0aW9ucyBmb3Igc3BlZWQgKi8KCXZhciBtUmVuZGVyID0gb0NvbC5tUmVuZGVyID8gX2ZuR2V0T2JqZWN0RGF0YUZuKCBvQ29sLm1SZW5kZXIgKSA6IG51bGw7Cgl2YXIgbURhdGEgPSBfZm5HZXRPYmplY3REYXRhRm4oIG9Db2wubURhdGEgKTsKCglvQ29sLmZuR2V0RGF0YSA9IGZ1bmN0aW9uIChvRGF0YSwgc1NwZWNpZmljKSB7CgkJdmFyIGlubmVyRGF0YSA9IG1EYXRhKCBvRGF0YSwgc1NwZWNpZmljICk7CgoJCWlmICggb0NvbC5tUmVuZGVyICYmIChzU3BlY2lmaWMgJiYgc1NwZWNpZmljICE9PSAnJykgKQoJCXsKCQkJcmV0dXJuIG1SZW5kZXIoIGlubmVyRGF0YSwgc1NwZWNpZmljLCBvRGF0YSApOwoJCX0KCQlyZXR1cm4gaW5uZXJEYXRhOwoJfTsKCW9Db2wuZm5TZXREYXRhID0gX2ZuU2V0T2JqZWN0RGF0YUZuKCBvQ29sLm1EYXRhICk7CgkKCS8qIEZlYXR1cmUgc29ydGluZyBvdmVycmlkZXMgY29sdW1uIHNwZWNpZmljIHdoZW4gb2ZmICovCglpZiAoICFvU2V0dGluZ3Mub0ZlYXR1cmVzLmJTb3J0ICkKCXsKCQlvQ29sLmJTb3J0YWJsZSA9IGZhbHNlOwoJfQoJCgkvKiBDaGVjayB0aGF0IHRoZSBjbGFzcyBhc3NpZ25tZW50IGlzIGNvcnJlY3QgZm9yIHNvcnRpbmcgKi8KCWlmICggIW9Db2wuYlNvcnRhYmxlIHx8CgkJICgkLmluQXJyYXkoJ2FzYycsIG9Db2wuYXNTb3J0aW5nKSA9PSAtMSAmJiAkLmluQXJyYXkoJ2Rlc2MnLCBvQ29sLmFzU29ydGluZykgPT0gLTEpICkKCXsKCQlvQ29sLnNTb3J0aW5nQ2xhc3MgPSBvU2V0dGluZ3Mub0NsYXNzZXMuc1NvcnRhYmxlTm9uZTsKCQlvQ29sLnNTb3J0aW5nQ2xhc3NKVUkgPSAiIjsKCX0KCWVsc2UgaWYgKCBvQ29sLmJTb3J0YWJsZSB8fAoJICAgICAgICAgICgkLmluQXJyYXkoJ2FzYycsIG9Db2wuYXNTb3J0aW5nKSA9PSAtMSAmJiAkLmluQXJyYXkoJ2Rlc2MnLCBvQ29sLmFzU29ydGluZykgPT0gLTEpICkKCXsKCSAgb0NvbC5zU29ydGluZ0NsYXNzID0gb1NldHRpbmdzLm9DbGFzc2VzLnNTb3J0YWJsZTsKCSAgb0NvbC5zU29ydGluZ0NsYXNzSlVJID0gb1NldHRpbmdzLm9DbGFzc2VzLnNTb3J0SlVJOwoJfQoJZWxzZSBpZiAoICQuaW5BcnJheSgnYXNjJywgb0NvbC5hc1NvcnRpbmcpICE9IC0xICYmICQuaW5BcnJheSgnZGVzYycsIG9Db2wuYXNTb3J0aW5nKSA9PSAtMSApCgl7CgkJb0NvbC5zU29ydGluZ0NsYXNzID0gb1NldHRpbmdzLm9DbGFzc2VzLnNTb3J0YWJsZUFzYzsKCQlvQ29sLnNTb3J0aW5nQ2xhc3NKVUkgPSBvU2V0dGluZ3Mub0NsYXNzZXMuc1NvcnRKVUlBc2NBbGxvd2VkOwoJfQoJZWxzZSBpZiAoICQuaW5BcnJheSgnYXNjJywgb0NvbC5hc1NvcnRpbmcpID09IC0xICYmICQuaW5BcnJheSgnZGVzYycsIG9Db2wuYXNTb3J0aW5nKSAhPSAtMSApCgl7CgkJb0NvbC5zU29ydGluZ0NsYXNzID0gb1NldHRpbmdzLm9DbGFzc2VzLnNTb3J0YWJsZURlc2M7CgkJb0NvbC5zU29ydGluZ0NsYXNzSlVJID0gb1NldHRpbmdzLm9DbGFzc2VzLnNTb3J0SlVJRGVzY0FsbG93ZWQ7Cgl9Cn0KCgovKioKICogQWRqdXN0IHRoZSB0YWJsZSBjb2x1bW4gd2lkdGhzIGZvciBuZXcgZGF0YS4gTm90ZTogeW91IHdvdWxkIHByb2JhYmx5IHdhbnQgdG8gCiAqIGRvIGEgcmVkcmF3IGFmdGVyIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiEKICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQogKi8KZnVuY3Rpb24gX2ZuQWRqdXN0Q29sdW1uU2l6aW5nICggb1NldHRpbmdzICkKewoJLyogTm90IGludGVyZXN0ZWQgaW4gZG9pbmcgY29sdW1uIHdpZHRoIGNhbGN1bGF0aW9uIGlmIGF1dG8td2lkdGggaXMgZGlzYWJsZWQgKi8KCWlmICggb1NldHRpbmdzLm9GZWF0dXJlcy5iQXV0b1dpZHRoID09PSBmYWxzZSApCgl7CgkJcmV0dXJuIGZhbHNlOwoJfQoJCglfZm5DYWxjdWxhdGVDb2x1bW5XaWR0aHMoIG9TZXR0aW5ncyApOwoJZm9yICggdmFyIGk9MCAsIGlMZW49b1NldHRpbmdzLmFvQ29sdW1ucy5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJewoJCW9TZXR0aW5ncy5hb0NvbHVtbnNbaV0ublRoLnN0eWxlLndpZHRoID0gb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5zV2lkdGg7Cgl9Cn0KCgovKioKICogQ292ZXJ0IHRoZSBpbmRleCBvZiBhIHZpc2libGUgY29sdW1uIHRvIHRoZSBpbmRleCBpbiB0aGUgZGF0YSBhcnJheSAodGFrZSBhY2NvdW50CiAqIG9mIGhpZGRlbiBjb2x1bW5zKQogKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAogKiAgQHBhcmFtIHtpbnR9IGlNYXRjaCBWaXNpYmxlIGNvbHVtbiBpbmRleCB0byBsb29rdXAKICogIEByZXR1cm5zIHtpbnR9IGkgdGhlIGRhdGEgaW5kZXgKICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQogKi8KZnVuY3Rpb24gX2ZuVmlzaWJsZVRvQ29sdW1uSW5kZXgoIG9TZXR0aW5ncywgaU1hdGNoICkKewoJdmFyIGFpVmlzID0gX2ZuR2V0Q29sdW1ucyggb1NldHRpbmdzLCAnYlZpc2libGUnICk7CgoJcmV0dXJuIHR5cGVvZiBhaVZpc1tpTWF0Y2hdID09PSAnbnVtYmVyJyA/CgkJYWlWaXNbaU1hdGNoXSA6CgkJbnVsbDsKfQoKCi8qKgogKiBDb3ZlcnQgdGhlIGluZGV4IG9mIGFuIGluZGV4IGluIHRoZSBkYXRhIGFycmF5IGFuZCBjb252ZXJ0IGl0IHRvIHRoZSB2aXNpYmxlCiAqICAgY29sdW1uIGluZGV4ICh0YWtlIGFjY291bnQgb2YgaGlkZGVuIGNvbHVtbnMpCiAqICBAcGFyYW0ge2ludH0gaU1hdGNoIENvbHVtbiBpbmRleCB0byBsb29rdXAKICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKICogIEByZXR1cm5zIHtpbnR9IGkgdGhlIGRhdGEgaW5kZXgKICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQogKi8KZnVuY3Rpb24gX2ZuQ29sdW1uSW5kZXhUb1Zpc2libGUoIG9TZXR0aW5ncywgaU1hdGNoICkKewoJdmFyIGFpVmlzID0gX2ZuR2V0Q29sdW1ucyggb1NldHRpbmdzLCAnYlZpc2libGUnICk7Cgl2YXIgaVBvcyA9ICQuaW5BcnJheSggaU1hdGNoLCBhaVZpcyApOwoKCXJldHVybiBpUG9zICE9PSAtMSA/IGlQb3MgOiBudWxsOwp9CgoKLyoqCiAqIEdldCB0aGUgbnVtYmVyIG9mIHZpc2libGUgY29sdW1ucwogKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAogKiAgQHJldHVybnMge2ludH0gaSB0aGUgbnVtYmVyIG9mIHZpc2libGUgY29sdW1ucwogKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCiAqLwpmdW5jdGlvbiBfZm5WaXNibGVDb2x1bW5zKCBvU2V0dGluZ3MgKQp7CglyZXR1cm4gX2ZuR2V0Q29sdW1ucyggb1NldHRpbmdzLCAnYlZpc2libGUnICkubGVuZ3RoOwp9CgoKLyoqCiAqIEdldCBhbiBhcnJheSBvZiBjb2x1bW4gaW5kZXhlcyB0aGF0IG1hdGNoIGEgZ2l2ZW4gcHJvcGVydHkKICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKICogIEBwYXJhbSB7c3RyaW5nfSBzUGFyYW0gUGFyYW1ldGVyIGluIGFvQ29sdW1ucyB0byBsb29rIGZvciAtIHR5cGljYWxseSAKICogICAgYlZpc2libGUgb3IgYlNlYXJjaGFibGUKICogIEByZXR1cm5zIHthcnJheX0gQXJyYXkgb2YgaW5kZXhlcyB3aXRoIG1hdGNoZWQgcHJvcGVydGllcwogKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCiAqLwpmdW5jdGlvbiBfZm5HZXRDb2x1bW5zKCBvU2V0dGluZ3MsIHNQYXJhbSApCnsKCXZhciBhID0gW107CgoJJC5tYXAoIG9TZXR0aW5ncy5hb0NvbHVtbnMsIGZ1bmN0aW9uKHZhbCwgaSkgewoJCWlmICggdmFsW3NQYXJhbV0gKSB7CgkJCWEucHVzaCggaSApOwoJCX0KCX0gKTsKCglyZXR1cm4gYTsKfQoKCi8qKgogKiBHZXQgdGhlIHNvcnQgdHlwZSBiYXNlZCBvbiBhbiBpbnB1dCBzdHJpbmcKICogIEBwYXJhbSB7c3RyaW5nfSBzRGF0YSBkYXRhIHdlIHdpc2ggdG8ga25vdyB0aGUgdHlwZSBvZgogKiAgQHJldHVybnMge3N0cmluZ30gdHlwZSAoZGVmYXVsdHMgdG8gJ3N0cmluZycgaWYgbm8gdHlwZSBjYW4gYmUgZGV0ZWN0ZWQpCiAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKICovCmZ1bmN0aW9uIF9mbkRldGVjdFR5cGUoIHNEYXRhICkKewoJdmFyIGFUeXBlcyA9IERhdGFUYWJsZS5leHQuYVR5cGVzOwoJdmFyIGlMZW4gPSBhVHlwZXMubGVuZ3RoOwoJCglmb3IgKCB2YXIgaT0wIDsgaTxpTGVuIDsgaSsrICkKCXsKCQl2YXIgc1R5cGUgPSBhVHlwZXNbaV0oIHNEYXRhICk7CgkJaWYgKCBzVHlwZSAhPT0gbnVsbCApCgkJewoJCQlyZXR1cm4gc1R5cGU7CgkJfQoJfQoJCglyZXR1cm4gJ3N0cmluZyc7Cn0KCgovKioKICogRmlndXJlIG91dCBob3cgdG8gcmVvcmRlciBhIGRpc3BsYXkgbGlzdAogKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAogKiAgQHJldHVybnMgYXJyYXkge2ludH0gYWlSZXR1cm4gaW5kZXggbGlzdCBmb3IgcmVvcmRlcmluZwogKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCiAqLwpmdW5jdGlvbiBfZm5SZU9yZGVySW5kZXggKCBvU2V0dGluZ3MsIHNDb2x1bW5zICkKewoJdmFyIGFDb2x1bW5zID0gc0NvbHVtbnMuc3BsaXQoJywnKTsKCXZhciBhaVJldHVybiA9IFtdOwoJCglmb3IgKCB2YXIgaT0wLCBpTGVuPW9TZXR0aW5ncy5hb0NvbHVtbnMubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCXsKCQlmb3IgKCB2YXIgaj0wIDsgajxpTGVuIDsgaisrICkKCQl7CgkJCWlmICggb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5zTmFtZSA9PSBhQ29sdW1uc1tqXSApCgkJCXsKCQkJCWFpUmV0dXJuLnB1c2goIGogKTsKCQkJCWJyZWFrOwoJCQl9CgkJfQoJfQoJCglyZXR1cm4gYWlSZXR1cm47Cn0KCgovKioKICogR2V0IHRoZSBjb2x1bW4gb3JkZXJpbmcgdGhhdCBEYXRhVGFibGVzIGV4cGVjdHMKICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKICogIEByZXR1cm5zIHtzdHJpbmd9IGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIG5hbWVzCiAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKICovCmZ1bmN0aW9uIF9mbkNvbHVtbk9yZGVyaW5nICggb1NldHRpbmdzICkKewoJdmFyIHNOYW1lcyA9ICcnOwoJZm9yICggdmFyIGk9MCwgaUxlbj1vU2V0dGluZ3MuYW9Db2x1bW5zLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgl7CgkJc05hbWVzICs9IG9TZXR0aW5ncy5hb0NvbHVtbnNbaV0uc05hbWUrJywnOwoJfQoJaWYgKCBzTmFtZXMubGVuZ3RoID09IGlMZW4gKQoJewoJCXJldHVybiAiIjsKCX0KCXJldHVybiBzTmFtZXMuc2xpY2UoMCwgLTEpOwp9CgoKLyoqCiAqIFRha2UgdGhlIGNvbHVtbiBkZWZpbml0aW9ucyBhbmQgc3RhdGljIGNvbHVtbnMgYXJyYXlzIGFuZCBjYWxjdWxhdGUgaG93CiAqIHRoZXkgcmVsYXRlIHRvIGNvbHVtbiBpbmRleGVzLiBUaGUgY2FsbGJhY2sgZnVuY3Rpb24gd2lsbCB0aGVuIGFwcGx5IHRoZQogKiBkZWZpbml0aW9uIGZvdW5kIGZvciBhIGNvbHVtbiB0byBhIHN1aXRhYmxlIGNvbmZpZ3VyYXRpb24gb2JqZWN0LgogKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAogKiAgQHBhcmFtIHthcnJheX0gYW9Db2xEZWZzIFRoZSBhb0NvbHVtbkRlZnMgYXJyYXkgdGhhdCBpcyB0byBiZSBhcHBsaWVkCiAqICBAcGFyYW0ge2FycmF5fSBhb0NvbHMgVGhlIGFvQ29sdW1ucyBhcnJheSB0aGF0IGRlZmluZXMgY29sdW1ucyBpbmRpdmlkdWFsbHkKICogIEBwYXJhbSB7ZnVuY3Rpb259IGZuIENhbGxiYWNrIGZ1bmN0aW9uIC0gdGFrZXMgdHdvIHBhcmFtZXRlcnMsIHRoZSBjYWxjdWxhdGVkCiAqICAgIGNvbHVtbiBpbmRleCBhbmQgdGhlIGRlZmluaXRpb24gZm9yIHRoYXQgY29sdW1uLgogKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCiAqLwpmdW5jdGlvbiBfZm5BcHBseUNvbHVtbkRlZnMoIG9TZXR0aW5ncywgYW9Db2xEZWZzLCBhb0NvbHMsIGZuICkKewoJdmFyIGksIGlMZW4sIGosIGpMZW4sIGssIGtMZW47CgoJLy8gQ29sdW1uIGRlZmluaXRpb25zIHdpdGggYVRhcmdldHMKCWlmICggYW9Db2xEZWZzICkKCXsKCQkvKiBMb29wIG92ZXIgdGhlIGRlZmluaXRpb25zIGFycmF5IC0gbG9vcCBpbiByZXZlcnNlIHNvIGZpcnN0IGluc3RhbmNlIGhhcyBwcmlvcml0eSAqLwoJCWZvciAoIGk9YW9Db2xEZWZzLmxlbmd0aC0xIDsgaT49MCA7IGktLSApCgkJewoJCQkvKiBFYWNoIGRlZmluaXRpb24gY2FuIHRhcmdldCBtdWx0aXBsZSBjb2x1bW5zLCBhcyBpdCBpcyBhbiBhcnJheSAqLwoJCQl2YXIgYVRhcmdldHMgPSBhb0NvbERlZnNbaV0uYVRhcmdldHM7CgkJCWlmICggISQuaXNBcnJheSggYVRhcmdldHMgKSApCgkJCXsKCQkJCV9mbkxvZyggb1NldHRpbmdzLCAxLCAnYVRhcmdldHMgbXVzdCBiZSBhbiBhcnJheSBvZiB0YXJnZXRzLCBub3QgYSAnKyh0eXBlb2YgYVRhcmdldHMpICk7CgkJCX0KCgkJCWZvciAoIGo9MCwgakxlbj1hVGFyZ2V0cy5sZW5ndGggOyBqPGpMZW4gOyBqKysgKQoJCQl7CgkJCQlpZiAoIHR5cGVvZiBhVGFyZ2V0c1tqXSA9PT0gJ251bWJlcicgJiYgYVRhcmdldHNbal0gPj0gMCApCgkJCQl7CgkJCQkJLyogQWRkIGNvbHVtbnMgdGhhdCB3ZSBkb24ndCB5ZXQga25vdyBhYm91dCAqLwoJCQkJCXdoaWxlKCBvU2V0dGluZ3MuYW9Db2x1bW5zLmxlbmd0aCA8PSBhVGFyZ2V0c1tqXSApCgkJCQkJewoJCQkJCQlfZm5BZGRDb2x1bW4oIG9TZXR0aW5ncyApOwoJCQkJCX0KCgkJCQkJLyogSW50ZWdlciwgYmFzaWMgaW5kZXggKi8KCQkJCQlmbiggYVRhcmdldHNbal0sIGFvQ29sRGVmc1tpXSApOwoJCQkJfQoJCQkJZWxzZSBpZiAoIHR5cGVvZiBhVGFyZ2V0c1tqXSA9PT0gJ251bWJlcicgJiYgYVRhcmdldHNbal0gPCAwICkKCQkJCXsKCQkJCQkvKiBOZWdhdGl2ZSBpbnRlZ2VyLCByaWdodCB0byBsZWZ0IGNvbHVtbiBjb3VudGluZyAqLwoJCQkJCWZuKCBvU2V0dGluZ3MuYW9Db2x1bW5zLmxlbmd0aCthVGFyZ2V0c1tqXSwgYW9Db2xEZWZzW2ldICk7CgkJCQl9CgkJCQllbHNlIGlmICggdHlwZW9mIGFUYXJnZXRzW2pdID09PSAnc3RyaW5nJyApCgkJCQl7CgkJCQkJLyogQ2xhc3MgbmFtZSBtYXRjaGluZyBvbiBUSCBlbGVtZW50ICovCgkJCQkJZm9yICggaz0wLCBrTGVuPW9TZXR0aW5ncy5hb0NvbHVtbnMubGVuZ3RoIDsgazxrTGVuIDsgaysrICkKCQkJCQl7CgkJCQkJCWlmICggYVRhcmdldHNbal0gPT0gIl9hbGwiIHx8CgkJCQkJCSAgICAgJChvU2V0dGluZ3MuYW9Db2x1bW5zW2tdLm5UaCkuaGFzQ2xhc3MoIGFUYXJnZXRzW2pdICkgKQoJCQkJCQl7CgkJCQkJCQlmbiggaywgYW9Db2xEZWZzW2ldICk7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCX0KCQl9Cgl9CgoJLy8gU3RhdGljYWxseSBkZWZpbmVkIGNvbHVtbnMgYXJyYXkKCWlmICggYW9Db2xzICkKCXsKCQlmb3IgKCBpPTAsIGlMZW49YW9Db2xzLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJewoJCQlmbiggaSwgYW9Db2xzW2ldICk7CgkJfQoJfQp9Cgo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/core/core.constructor.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CnZhciBpPTAsIGlMZW4sIGosIGpMZW4sIGssIGtMZW47CnZhciBzSWQgPSB0aGlzLmdldEF0dHJpYnV0ZSggJ2lkJyApOwp2YXIgYkluaXRIYW5kZWRPZmYgPSBmYWxzZTsKdmFyIGJVc2VQYXNzZWREYXRhID0gZmFsc2U7CgoKLyogU2FuaXR5IGNoZWNrICovCmlmICggdGhpcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpICE9ICd0YWJsZScgKQp7CglfZm5Mb2coIG51bGwsIDAsICJBdHRlbXB0ZWQgdG8gaW5pdGlhbGlzZSBEYXRhVGFibGVzIG9uIGEgbm9kZSB3aGljaCBpcyBub3QgYSAiKwoJCSJ0YWJsZTogIit0aGlzLm5vZGVOYW1lICk7CglyZXR1cm47Cn0KCi8qIENoZWNrIHRvIHNlZSBpZiB3ZSBhcmUgcmUtaW5pdGlhbGlzaW5nIGEgdGFibGUgKi8KZm9yICggaT0wLCBpTGVuPURhdGFUYWJsZS5zZXR0aW5ncy5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQp7CgkvKiBCYXNlIGNoZWNrIG9uIHRhYmxlIG5vZGUgKi8KCWlmICggRGF0YVRhYmxlLnNldHRpbmdzW2ldLm5UYWJsZSA9PSB0aGlzICkKCXsKCQlpZiAoIG9Jbml0ID09PSB1bmRlZmluZWQgfHwgb0luaXQuYlJldHJpZXZlICkKCQl7CgkJCXJldHVybiBEYXRhVGFibGUuc2V0dGluZ3NbaV0ub0luc3RhbmNlOwoJCX0KCQllbHNlIGlmICggb0luaXQuYkRlc3Ryb3kgKQoJCXsKCQkJRGF0YVRhYmxlLnNldHRpbmdzW2ldLm9JbnN0YW5jZS5mbkRlc3Ryb3koKTsKCQkJYnJlYWs7CgkJfQoJCWVsc2UKCQl7CgkJCV9mbkxvZyggRGF0YVRhYmxlLnNldHRpbmdzW2ldLCAwLCAiQ2Fubm90IHJlaW5pdGlhbGlzZSBEYXRhVGFibGUuXG5cbiIrCgkJCQkiVG8gcmV0cmlldmUgdGhlIERhdGFUYWJsZXMgb2JqZWN0IGZvciB0aGlzIHRhYmxlLCBwYXNzIG5vIGFyZ3VtZW50cyBvciBzZWUgIisKCQkJCSJ0aGUgZG9jcyBmb3IgYlJldHJpZXZlIGFuZCBiRGVzdHJveSIgKTsKCQkJcmV0dXJuOwoJCX0KCX0KCQoJLyogSWYgdGhlIGVsZW1lbnQgd2UgYXJlIGluaXRpYWxpc2luZyBoYXMgdGhlIHNhbWUgSUQgYXMgYSB0YWJsZSB3aGljaCB3YXMgcHJldmlvdXNseQoJICogaW5pdGlhbGlzZWQsIGJ1dCB0aGUgdGFibGUgbm9kZXMgZG9uJ3QgbWF0Y2ggKGZyb20gYmVmb3JlKSB0aGVuIHdlIGRlc3Ryb3kgdGhlIG9sZAoJICogaW5zdGFuY2UgYnkgc2ltcGx5IGRlbGV0aW5nIGl0LiBUaGlzIGlzIHVuZGVyIHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhlIHRhYmxlIGhhcyBiZWVuCgkgKiBkZXN0cm95ZWQgYnkgb3RoZXIgbWV0aG9kcy4gQW55b25lIHVzaW5nIG5vbi1pZCBzZWxlY3RvcnMgd2lsbCBuZWVkIHRvIGRvIHRoaXMgbWFudWFsbHkKCSAqLwoJaWYgKCBEYXRhVGFibGUuc2V0dGluZ3NbaV0uc1RhYmxlSWQgPT0gdGhpcy5pZCApCgl7CgkJRGF0YVRhYmxlLnNldHRpbmdzLnNwbGljZSggaSwgMSApOwoJCWJyZWFrOwoJfQp9CgovKiBFbnN1cmUgdGhlIHRhYmxlIGhhcyBhbiBJRCAtIHJlcXVpcmVkIGZvciBhY2Nlc3NpYmlsaXR5ICovCmlmICggc0lkID09PSBudWxsIHx8IHNJZCA9PT0gIiIgKQp7CglzSWQgPSAiRGF0YVRhYmxlc19UYWJsZV8iKyhEYXRhVGFibGUuZXh0Ll9vRXh0ZXJuQ29uZmlnLmlOZXh0VW5pcXVlKyspOwoJdGhpcy5pZCA9IHNJZDsKfQoKLyogQ3JlYXRlIHRoZSBzZXR0aW5ncyBvYmplY3QgZm9yIHRoaXMgdGFibGUgYW5kIHNldCBzb21lIG9mIHRoZSBkZWZhdWx0IHBhcmFtZXRlcnMgKi8KdmFyIG9TZXR0aW5ncyA9ICQuZXh0ZW5kKCB0cnVlLCB7fSwgRGF0YVRhYmxlLm1vZGVscy5vU2V0dGluZ3MsIHsKCSJuVGFibGUiOiAgICAgICAgdGhpcywKCSJvQXBpIjogICAgICAgICAgX3RoYXQub0FwaSwKCSJvSW5pdCI6ICAgICAgICAgb0luaXQsCgkic0Rlc3Ryb3lXaWR0aCI6ICQodGhpcykud2lkdGgoKSwKCSJzSW5zdGFuY2UiOiAgICAgc0lkLAoJInNUYWJsZUlkIjogICAgICBzSWQKfSApOwpEYXRhVGFibGUuc2V0dGluZ3MucHVzaCggb1NldHRpbmdzICk7CgovLyBOZWVkIHRvIGFkZCB0aGUgaW5zdGFuY2UgYWZ0ZXIgdGhlIGluc3RhbmNlIGFmdGVyIHRoZSBzZXR0aW5ncyBvYmplY3QgaGFzIGJlZW4gYWRkZWQKLy8gdG8gdGhlIHNldHRpbmdzIGFycmF5LCBzbyB3ZSBjYW4gc2VsZiByZWZlcmVuY2UgdGhlIHRhYmxlIGluc3RhbmNlIGlmIG1vcmUgdGhhbiBvbmUKb1NldHRpbmdzLm9JbnN0YW5jZSA9IChfdGhhdC5sZW5ndGg9PT0xKSA/IF90aGF0IDogJCh0aGlzKS5kYXRhVGFibGUoKTsKCi8qIFNldHRpbmcgdXAgdGhlIGluaXRpYWxpc2F0aW9uIG9iamVjdCAqLwppZiAoICFvSW5pdCApCnsKCW9Jbml0ID0ge307Cn0KCi8vIEJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCBiZWZvcmUgd2UgYXBwbHkgYWxsIHRoZSBkZWZhdWx0cwppZiAoIG9Jbml0Lm9MYW5ndWFnZSApCnsKCV9mbkxhbmd1YWdlQ29tcGF0KCBvSW5pdC5vTGFuZ3VhZ2UgKTsKfQoKb0luaXQgPSBfZm5FeHRlbmQoICQuZXh0ZW5kKHRydWUsIHt9LCBEYXRhVGFibGUuZGVmYXVsdHMpLCBvSW5pdCApOwoKLy8gTWFwIHRoZSBpbml0aWFsaXNhdGlvbiBvcHRpb25zIG9udG8gdGhlIHNldHRpbmdzIG9iamVjdApfZm5NYXAoIG9TZXR0aW5ncy5vRmVhdHVyZXMsIG9Jbml0LCAiYlBhZ2luYXRlIiApOwpfZm5NYXAoIG9TZXR0aW5ncy5vRmVhdHVyZXMsIG9Jbml0LCAiYkxlbmd0aENoYW5nZSIgKTsKX2ZuTWFwKCBvU2V0dGluZ3Mub0ZlYXR1cmVzLCBvSW5pdCwgImJGaWx0ZXIiICk7Cl9mbk1hcCggb1NldHRpbmdzLm9GZWF0dXJlcywgb0luaXQsICJiU29ydCIgKTsKX2ZuTWFwKCBvU2V0dGluZ3Mub0ZlYXR1cmVzLCBvSW5pdCwgImJJbmZvIiApOwpfZm5NYXAoIG9TZXR0aW5ncy5vRmVhdHVyZXMsIG9Jbml0LCAiYlByb2Nlc3NpbmciICk7Cl9mbk1hcCggb1NldHRpbmdzLm9GZWF0dXJlcywgb0luaXQsICJiQXV0b1dpZHRoIiApOwpfZm5NYXAoIG9TZXR0aW5ncy5vRmVhdHVyZXMsIG9Jbml0LCAiYlNvcnRDbGFzc2VzIiApOwpfZm5NYXAoIG9TZXR0aW5ncy5vRmVhdHVyZXMsIG9Jbml0LCAiYlNlcnZlclNpZGUiICk7Cl9mbk1hcCggb1NldHRpbmdzLm9GZWF0dXJlcywgb0luaXQsICJiRGVmZXJSZW5kZXIiICk7Cl9mbk1hcCggb1NldHRpbmdzLm9TY3JvbGwsIG9Jbml0LCAic1Njcm9sbFgiLCAic1giICk7Cl9mbk1hcCggb1NldHRpbmdzLm9TY3JvbGwsIG9Jbml0LCAic1Njcm9sbFhJbm5lciIsICJzWElubmVyIiApOwpfZm5NYXAoIG9TZXR0aW5ncy5vU2Nyb2xsLCBvSW5pdCwgInNTY3JvbGxZIiwgInNZIiApOwpfZm5NYXAoIG9TZXR0aW5ncy5vU2Nyb2xsLCBvSW5pdCwgImJTY3JvbGxDb2xsYXBzZSIsICJiQ29sbGFwc2UiICk7Cl9mbk1hcCggb1NldHRpbmdzLm9TY3JvbGwsIG9Jbml0LCAiYlNjcm9sbEluZmluaXRlIiwgImJJbmZpbml0ZSIgKTsKX2ZuTWFwKCBvU2V0dGluZ3Mub1Njcm9sbCwgb0luaXQsICJpU2Nyb2xsTG9hZEdhcCIsICJpTG9hZEdhcCIgKTsKX2ZuTWFwKCBvU2V0dGluZ3Mub1Njcm9sbCwgb0luaXQsICJiU2Nyb2xsQXV0b0NzcyIsICJiQXV0b0NzcyIgKTsKX2ZuTWFwKCBvU2V0dGluZ3MsIG9Jbml0LCAiYXNTdHJpcGVDbGFzc2VzIiApOwpfZm5NYXAoIG9TZXR0aW5ncywgb0luaXQsICJhc1N0cmlwQ2xhc3NlcyIsICJhc1N0cmlwZUNsYXNzZXMiICk7IC8vIGxlZ2FjeQpfZm5NYXAoIG9TZXR0aW5ncywgb0luaXQsICJmblNlcnZlckRhdGEiICk7Cl9mbk1hcCggb1NldHRpbmdzLCBvSW5pdCwgImZuRm9ybWF0TnVtYmVyIiApOwpfZm5NYXAoIG9TZXR0aW5ncywgb0luaXQsICJzU2VydmVyTWV0aG9kIiApOwpfZm5NYXAoIG9TZXR0aW5ncywgb0luaXQsICJhYVNvcnRpbmciICk7Cl9mbk1hcCggb1NldHRpbmdzLCBvSW5pdCwgImFhU29ydGluZ0ZpeGVkIiApOwpfZm5NYXAoIG9TZXR0aW5ncywgb0luaXQsICJhTGVuZ3RoTWVudSIgKTsKX2ZuTWFwKCBvU2V0dGluZ3MsIG9Jbml0LCAic1BhZ2luYXRpb25UeXBlIiApOwpfZm5NYXAoIG9TZXR0aW5ncywgb0luaXQsICJzQWpheFNvdXJjZSIgKTsKX2ZuTWFwKCBvU2V0dGluZ3MsIG9Jbml0LCAic0FqYXhEYXRhUHJvcCIgKTsKX2ZuTWFwKCBvU2V0dGluZ3MsIG9Jbml0LCAiaUNvb2tpZUR1cmF0aW9uIiApOwpfZm5NYXAoIG9TZXR0aW5ncywgb0luaXQsICJzQ29va2llUHJlZml4IiApOwpfZm5NYXAoIG9TZXR0aW5ncywgb0luaXQsICJzRG9tIiApOwpfZm5NYXAoIG9TZXR0aW5ncywgb0luaXQsICJiU29ydENlbGxzVG9wIiApOwpfZm5NYXAoIG9TZXR0aW5ncywgb0luaXQsICJpVGFiSW5kZXgiICk7Cl9mbk1hcCggb1NldHRpbmdzLCBvSW5pdCwgIm9TZWFyY2giLCAib1ByZXZpb3VzU2VhcmNoIiApOwpfZm5NYXAoIG9TZXR0aW5ncywgb0luaXQsICJhb1NlYXJjaENvbHMiLCAiYW9QcmVTZWFyY2hDb2xzIiApOwpfZm5NYXAoIG9TZXR0aW5ncywgb0luaXQsICJpRGlzcGxheUxlbmd0aCIsICJfaURpc3BsYXlMZW5ndGgiICk7Cl9mbk1hcCggb1NldHRpbmdzLCBvSW5pdCwgImJKUXVlcnlVSSIsICJiSlVJIiApOwpfZm5NYXAoIG9TZXR0aW5ncywgb0luaXQsICJmbkNvb2tpZUNhbGxiYWNrIiApOwpfZm5NYXAoIG9TZXR0aW5ncywgb0luaXQsICJmblN0YXRlTG9hZCIgKTsKX2ZuTWFwKCBvU2V0dGluZ3MsIG9Jbml0LCAiZm5TdGF0ZVNhdmUiICk7Cl9mbk1hcCggb1NldHRpbmdzLm9MYW5ndWFnZSwgb0luaXQsICJmbkluZm9DYWxsYmFjayIgKTsKCi8qIENhbGxiYWNrIGZ1bmN0aW9ucyB3aGljaCBhcmUgYXJyYXkgZHJpdmVuICovCl9mbkNhbGxiYWNrUmVnKCBvU2V0dGluZ3MsICdhb0RyYXdDYWxsYmFjaycsICAgICAgIG9Jbml0LmZuRHJhd0NhbGxiYWNrLCAgICAgICd1c2VyJyApOwpfZm5DYWxsYmFja1JlZyggb1NldHRpbmdzLCAnYW9TZXJ2ZXJQYXJhbXMnLCAgICAgICBvSW5pdC5mblNlcnZlclBhcmFtcywgICAgICAndXNlcicgKTsKX2ZuQ2FsbGJhY2tSZWcoIG9TZXR0aW5ncywgJ2FvU3RhdGVTYXZlUGFyYW1zJywgICAgb0luaXQuZm5TdGF0ZVNhdmVQYXJhbXMsICAgJ3VzZXInICk7Cl9mbkNhbGxiYWNrUmVnKCBvU2V0dGluZ3MsICdhb1N0YXRlTG9hZFBhcmFtcycsICAgIG9Jbml0LmZuU3RhdGVMb2FkUGFyYW1zLCAgICd1c2VyJyApOwpfZm5DYWxsYmFja1JlZyggb1NldHRpbmdzLCAnYW9TdGF0ZUxvYWRlZCcsICAgICAgICBvSW5pdC5mblN0YXRlTG9hZGVkLCAgICAgICAndXNlcicgKTsKX2ZuQ2FsbGJhY2tSZWcoIG9TZXR0aW5ncywgJ2FvUm93Q2FsbGJhY2snLCAgICAgICAgb0luaXQuZm5Sb3dDYWxsYmFjaywgICAgICAgJ3VzZXInICk7Cl9mbkNhbGxiYWNrUmVnKCBvU2V0dGluZ3MsICdhb1Jvd0NyZWF0ZWRDYWxsYmFjaycsIG9Jbml0LmZuQ3JlYXRlZFJvdywgICAgICAgICd1c2VyJyApOwpfZm5DYWxsYmFja1JlZyggb1NldHRpbmdzLCAnYW9IZWFkZXJDYWxsYmFjaycsICAgICBvSW5pdC5mbkhlYWRlckNhbGxiYWNrLCAgICAndXNlcicgKTsKX2ZuQ2FsbGJhY2tSZWcoIG9TZXR0aW5ncywgJ2FvRm9vdGVyQ2FsbGJhY2snLCAgICAgb0luaXQuZm5Gb290ZXJDYWxsYmFjaywgICAgJ3VzZXInICk7Cl9mbkNhbGxiYWNrUmVnKCBvU2V0dGluZ3MsICdhb0luaXRDb21wbGV0ZScsICAgICAgIG9Jbml0LmZuSW5pdENvbXBsZXRlLCAgICAgICd1c2VyJyApOwpfZm5DYWxsYmFja1JlZyggb1NldHRpbmdzLCAnYW9QcmVEcmF3Q2FsbGJhY2snLCAgICBvSW5pdC5mblByZURyYXdDYWxsYmFjaywgICAndXNlcicgKTsKCmlmICggb1NldHRpbmdzLm9GZWF0dXJlcy5iU2VydmVyU2lkZSAmJiBvU2V0dGluZ3Mub0ZlYXR1cmVzLmJTb3J0ICYmCgkgICBvU2V0dGluZ3Mub0ZlYXR1cmVzLmJTb3J0Q2xhc3NlcyApCnsKCS8qIEVuYWJsZSBzb3J0IGNsYXNzZXMgZm9yIHNlcnZlci1zaWRlIHByb2Nlc3NpbmcuIFNhZmUgdG8gZG8gaXQgaGVyZSwgc2luY2Ugc2VydmVyLXNpZGUKCSAqIHByb2Nlc3NpbmcgbXVzdCBiZSBlbmFibGVkIGJ5IHRoZSBkZXZlbG9wZXIKCSAqLwoJX2ZuQ2FsbGJhY2tSZWcoIG9TZXR0aW5ncywgJ2FvRHJhd0NhbGxiYWNrJywgX2ZuU29ydGluZ0NsYXNzZXMsICdzZXJ2ZXJfc2lkZV9zb3J0X2NsYXNzZXMnICk7Cn0KZWxzZSBpZiAoIG9TZXR0aW5ncy5vRmVhdHVyZXMuYkRlZmVyUmVuZGVyICkKewoJX2ZuQ2FsbGJhY2tSZWcoIG9TZXR0aW5ncywgJ2FvRHJhd0NhbGxiYWNrJywgX2ZuU29ydGluZ0NsYXNzZXMsICdkZWZlcl9zb3J0X2NsYXNzZXMnICk7Cn0KCmlmICggb0luaXQuYkpRdWVyeVVJICkKewoJLyogVXNlIHRoZSBKVUkgY2xhc3NlcyBvYmplY3QgZm9yIGRpc3BsYXkuIFlvdSBjb3VsZCBjbG9uZSB0aGUgb1N0ZENsYXNzZXMgb2JqZWN0IGlmIAoJICogeW91IHdhbnQgdG8gaGF2ZSBtdWx0aXBsZSB0YWJsZXMgd2l0aCBtdWx0aXBsZSBpbmRlcGVuZGVudCBjbGFzc2VzIAoJICovCgkkLmV4dGVuZCggb1NldHRpbmdzLm9DbGFzc2VzLCBEYXRhVGFibGUuZXh0Lm9KVUlDbGFzc2VzICk7CgkKCWlmICggb0luaXQuc0RvbSA9PT0gRGF0YVRhYmxlLmRlZmF1bHRzLnNEb20gJiYgRGF0YVRhYmxlLmRlZmF1bHRzLnNEb20gPT09ICJsZnJ0aXAiICkKCXsKCQkvKiBTZXQgdGhlIERPTSB0byB1c2UgYSBsYXlvdXQgc3VpdGFibGUgZm9yIGpRdWVyeSBVSSdzIHRoZW1pbmcgKi8KCQlvU2V0dGluZ3Muc0RvbSA9ICc8IkgibGZyPnQ8IkYiaXA+JzsKCX0KfQplbHNlCnsKCSQuZXh0ZW5kKCBvU2V0dGluZ3Mub0NsYXNzZXMsIERhdGFUYWJsZS5leHQub1N0ZENsYXNzZXMgKTsKfQokKHRoaXMpLmFkZENsYXNzKCBvU2V0dGluZ3Mub0NsYXNzZXMuc1RhYmxlICk7CgovKiBDYWxjdWxhdGUgdGhlIHNjcm9sbCBiYXIgd2lkdGggYW5kIGNhY2hlIGl0IGZvciB1c2UgbGF0ZXIgb24gKi8KaWYgKCBvU2V0dGluZ3Mub1Njcm9sbC5zWCAhPT0gIiIgfHwgb1NldHRpbmdzLm9TY3JvbGwuc1kgIT09ICIiICkKewoJb1NldHRpbmdzLm9TY3JvbGwuaUJhcldpZHRoID0gX2ZuU2Nyb2xsQmFyV2lkdGgoKTsKfQoKaWYgKCBvU2V0dGluZ3MuaUluaXREaXNwbGF5U3RhcnQgPT09IHVuZGVmaW5lZCApCnsKCS8qIERpc3BsYXkgc3RhcnQgcG9pbnQsIHRha2luZyBpbnRvIGFjY291bnQgdGhlIHNhdmUgc2F2aW5nICovCglvU2V0dGluZ3MuaUluaXREaXNwbGF5U3RhcnQgPSBvSW5pdC5pRGlzcGxheVN0YXJ0OwoJb1NldHRpbmdzLl9pRGlzcGxheVN0YXJ0ID0gb0luaXQuaURpc3BsYXlTdGFydDsKfQoKLyogTXVzdCBiZSBkb25lIGFmdGVyIGV2ZXJ5dGhpbmcgd2hpY2ggY2FuIGJlIG92ZXJyaWRkZW4gYnkgYSBjb29raWUhICovCmlmICggb0luaXQuYlN0YXRlU2F2ZSApCnsKCW9TZXR0aW5ncy5vRmVhdHVyZXMuYlN0YXRlU2F2ZSA9IHRydWU7CglfZm5Mb2FkU3RhdGUoIG9TZXR0aW5ncywgb0luaXQgKTsKCV9mbkNhbGxiYWNrUmVnKCBvU2V0dGluZ3MsICdhb0RyYXdDYWxsYmFjaycsIF9mblNhdmVTdGF0ZSwgJ3N0YXRlX3NhdmUnICk7Cn0KCmlmICggb0luaXQuaURlZmVyTG9hZGluZyAhPT0gbnVsbCApCnsKCW9TZXR0aW5ncy5iRGVmZXJMb2FkaW5nID0gdHJ1ZTsKCXZhciB0bXAgPSAkLmlzQXJyYXkoIG9Jbml0LmlEZWZlckxvYWRpbmcgKTsKCW9TZXR0aW5ncy5faVJlY29yZHNEaXNwbGF5ID0gdG1wID8gb0luaXQuaURlZmVyTG9hZGluZ1swXSA6IG9Jbml0LmlEZWZlckxvYWRpbmc7CglvU2V0dGluZ3MuX2lSZWNvcmRzVG90YWwgPSB0bXAgPyBvSW5pdC5pRGVmZXJMb2FkaW5nWzFdIDogb0luaXQuaURlZmVyTG9hZGluZzsKfQoKaWYgKCBvSW5pdC5hYURhdGEgIT09IG51bGwgKQp7CgliVXNlUGFzc2VkRGF0YSA9IHRydWU7Cn0KCi8qIExhbmd1YWdlIGRlZmluaXRpb25zICovCmlmICggb0luaXQub0xhbmd1YWdlLnNVcmwgIT09ICIiICkKewoJLyogR2V0IHRoZSBsYW5ndWFnZSBkZWZpbml0aW9ucyBmcm9tIGEgZmlsZSAtIGJlY2F1c2UgdGhpcyBBamF4IGNhbGwgbWFrZXMgdGhlIGxhbmd1YWdlCgkgKiBnZXQgYXN5bmMgdG8gdGhlIHJlbWFpbmRlciBvZiB0aGlzIGZ1bmN0aW9uIHdlIHVzZSBiSW5pdEhhbmRlZE9mZiB0byBpbmRpY2F0ZSB0aGF0IAoJICogX2ZuSW5pdGlhbGlzZSB3aWxsIGJlIGZpcmVkIGJ5IHRoZSByZXR1cm5lZCBBamF4IGhhbmRsZXIsIHJhdGhlciB0aGFuIHRoZSBjb25zdHJ1Y3RvcgoJICovCglvU2V0dGluZ3Mub0xhbmd1YWdlLnNVcmwgPSBvSW5pdC5vTGFuZ3VhZ2Uuc1VybDsKCSQuZ2V0SlNPTiggb1NldHRpbmdzLm9MYW5ndWFnZS5zVXJsLCBudWxsLCBmdW5jdGlvbigganNvbiApIHsKCQlfZm5MYW5ndWFnZUNvbXBhdCgganNvbiApOwoJCSQuZXh0ZW5kKCB0cnVlLCBvU2V0dGluZ3Mub0xhbmd1YWdlLCBvSW5pdC5vTGFuZ3VhZ2UsIGpzb24gKTsKCQlfZm5Jbml0aWFsaXNlKCBvU2V0dGluZ3MgKTsKCX0gKTsKCWJJbml0SGFuZGVkT2ZmID0gdHJ1ZTsKfQplbHNlCnsKCSQuZXh0ZW5kKCB0cnVlLCBvU2V0dGluZ3Mub0xhbmd1YWdlLCBvSW5pdC5vTGFuZ3VhZ2UgKTsKfQoKCi8qCiAqIFN0cmlwZXMKICovCmlmICggb0luaXQuYXNTdHJpcGVDbGFzc2VzID09PSBudWxsICkKewoJb1NldHRpbmdzLmFzU3RyaXBlQ2xhc3NlcyA9WwoJCW9TZXR0aW5ncy5vQ2xhc3Nlcy5zU3RyaXBlT2RkLAoJCW9TZXR0aW5ncy5vQ2xhc3Nlcy5zU3RyaXBlRXZlbgoJXTsKfQoKLyogUmVtb3ZlIHJvdyBzdHJpcGUgY2xhc3NlcyBpZiB0aGV5IGFyZSBhbHJlYWR5IG9uIHRoZSB0YWJsZSByb3cgKi8KdmFyIGJTdHJpcGVSZW1vdmUgPSBmYWxzZTsKdmFyIGFuUm93cyA9ICQodGhpcykuY2hpbGRyZW4oJ3Rib2R5JykuY2hpbGRyZW4oJ3RyJyk7CmZvciAoIGk9MCwgaUxlbj1vU2V0dGluZ3MuYXNTdHJpcGVDbGFzc2VzLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCnsKCWlmICggYW5Sb3dzLmZpbHRlcigiOmx0KDIpIikuaGFzQ2xhc3MoIG9TZXR0aW5ncy5hc1N0cmlwZUNsYXNzZXNbaV0pICkKCXsKCQliU3RyaXBlUmVtb3ZlID0gdHJ1ZTsKCQlicmVhazsKCX0KfQoJCQppZiAoIGJTdHJpcGVSZW1vdmUgKQp7CgkvKiBTdG9yZSB0aGUgY2xhc3NlcyB3aGljaCB3ZSBhcmUgYWJvdXQgdG8gcmVtb3ZlIHNvIHRoZXkgY2FuIGJlIHJlLWFkZGVkIG9uIGRlc3Ryb3kgKi8KCW9TZXR0aW5ncy5hc0Rlc3Ryb3lTdHJpcGVzID0gWyAnJywgJycgXTsKCWlmICggJChhblJvd3NbMF0pLmhhc0NsYXNzKG9TZXR0aW5ncy5vQ2xhc3Nlcy5zU3RyaXBlT2RkKSApCgl7CgkJb1NldHRpbmdzLmFzRGVzdHJveVN0cmlwZXNbMF0gKz0gb1NldHRpbmdzLm9DbGFzc2VzLnNTdHJpcGVPZGQrIiAiOwoJfQoJaWYgKCAkKGFuUm93c1swXSkuaGFzQ2xhc3Mob1NldHRpbmdzLm9DbGFzc2VzLnNTdHJpcGVFdmVuKSApCgl7CgkJb1NldHRpbmdzLmFzRGVzdHJveVN0cmlwZXNbMF0gKz0gb1NldHRpbmdzLm9DbGFzc2VzLnNTdHJpcGVFdmVuOwoJfQoJaWYgKCAkKGFuUm93c1sxXSkuaGFzQ2xhc3Mob1NldHRpbmdzLm9DbGFzc2VzLnNTdHJpcGVPZGQpICkKCXsKCQlvU2V0dGluZ3MuYXNEZXN0cm95U3RyaXBlc1sxXSArPSBvU2V0dGluZ3Mub0NsYXNzZXMuc1N0cmlwZU9kZCsiICI7Cgl9CglpZiAoICQoYW5Sb3dzWzFdKS5oYXNDbGFzcyhvU2V0dGluZ3Mub0NsYXNzZXMuc1N0cmlwZUV2ZW4pICkKCXsKCQlvU2V0dGluZ3MuYXNEZXN0cm95U3RyaXBlc1sxXSArPSBvU2V0dGluZ3Mub0NsYXNzZXMuc1N0cmlwZUV2ZW47Cgl9CgkKCWFuUm93cy5yZW1vdmVDbGFzcyggb1NldHRpbmdzLmFzU3RyaXBlQ2xhc3Nlcy5qb2luKCcgJykgKTsKfQoKCi8qCiAqIENvbHVtbnMKICogU2VlIGlmIHdlIHNob3VsZCBsb2FkIGNvbHVtbnMgYXV0b21hdGljYWxseSBvciB1c2UgZGVmaW5lZCBvbmVzCiAqLwp2YXIgYW5UaHMgPSBbXTsKdmFyIGFvQ29sdW1uc0luaXQ7CnZhciBuVGhlYWQgPSB0aGlzLmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0aGVhZCcpOwppZiAoIG5UaGVhZC5sZW5ndGggIT09IDAgKQp7CglfZm5EZXRlY3RIZWFkZXIoIG9TZXR0aW5ncy5hb0hlYWRlciwgblRoZWFkWzBdICk7CglhblRocyA9IF9mbkdldFVuaXF1ZVRocyggb1NldHRpbmdzICk7Cn0KCi8qIElmIG5vdCBnaXZlbiBhIGNvbHVtbiBhcnJheSwgZ2VuZXJhdGUgb25lIHdpdGggbnVsbHMgKi8KaWYgKCBvSW5pdC5hb0NvbHVtbnMgPT09IG51bGwgKQp7Cglhb0NvbHVtbnNJbml0ID0gW107Cglmb3IgKCBpPTAsIGlMZW49YW5UaHMubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCXsKCQlhb0NvbHVtbnNJbml0LnB1c2goIG51bGwgKTsKCX0KfQplbHNlCnsKCWFvQ29sdW1uc0luaXQgPSBvSW5pdC5hb0NvbHVtbnM7Cn0KCi8qIEFkZCB0aGUgY29sdW1ucyAqLwpmb3IgKCBpPTAsIGlMZW49YW9Db2x1bW5zSW5pdC5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQp7CgkvKiBTaG9ydCBjdXQgLSB1c2UgdGhlIGxvb3AgdG8gY2hlY2sgaWYgd2UgaGF2ZSBjb2x1bW4gdmlzaWJpbGl0eSBzdGF0ZSB0byByZXN0b3JlICovCglpZiAoIG9Jbml0LnNhdmVkX2FvQ29sdW1ucyAhPT0gdW5kZWZpbmVkICYmIG9Jbml0LnNhdmVkX2FvQ29sdW1ucy5sZW5ndGggPT0gaUxlbiApCgl7CgkJaWYgKCBhb0NvbHVtbnNJbml0W2ldID09PSBudWxsICkKCQl7CgkJCWFvQ29sdW1uc0luaXRbaV0gPSB7fTsKCQl9CgkJYW9Db2x1bW5zSW5pdFtpXS5iVmlzaWJsZSA9IG9Jbml0LnNhdmVkX2FvQ29sdW1uc1tpXS5iVmlzaWJsZTsKCX0KCQoJX2ZuQWRkQ29sdW1uKCBvU2V0dGluZ3MsIGFuVGhzID8gYW5UaHNbaV0gOiBudWxsICk7Cn0KCi8qIEFwcGx5IHRoZSBjb2x1bW4gZGVmaW5pdGlvbnMgKi8KX2ZuQXBwbHlDb2x1bW5EZWZzKCBvU2V0dGluZ3MsIG9Jbml0LmFvQ29sdW1uRGVmcywgYW9Db2x1bW5zSW5pdCwgZnVuY3Rpb24gKGlDb2wsIG9EZWYpIHsKCV9mbkNvbHVtbk9wdGlvbnMoIG9TZXR0aW5ncywgaUNvbCwgb0RlZiApOwp9ICk7CgoKLyoKICogU29ydGluZwogKiBDaGVjayB0aGUgYWFTb3J0aW5nIGFycmF5CiAqLwpmb3IgKCBpPTAsIGlMZW49b1NldHRpbmdzLmFhU29ydGluZy5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQp7CglpZiAoIG9TZXR0aW5ncy5hYVNvcnRpbmdbaV1bMF0gPj0gb1NldHRpbmdzLmFvQ29sdW1ucy5sZW5ndGggKQoJewoJCW9TZXR0aW5ncy5hYVNvcnRpbmdbaV1bMF0gPSAwOwoJfQoJdmFyIG9Db2x1bW4gPSBvU2V0dGluZ3MuYW9Db2x1bW5zWyBvU2V0dGluZ3MuYWFTb3J0aW5nW2ldWzBdIF07CgkKCS8qIEFkZCBhIGRlZmF1bHQgc29ydGluZyBpbmRleCAqLwoJaWYgKCBvU2V0dGluZ3MuYWFTb3J0aW5nW2ldWzJdID09PSB1bmRlZmluZWQgKQoJewoJCW9TZXR0aW5ncy5hYVNvcnRpbmdbaV1bMl0gPSAwOwoJfQoJCgkvKiBJZiBhYVNvcnRpbmcgaXMgbm90IGRlZmluZWQsIHRoZW4gd2UgdXNlIHRoZSBmaXJzdCBpbmRpY2F0b3IgaW4gYXNTb3J0aW5nICovCglpZiAoIG9Jbml0LmFhU29ydGluZyA9PT0gdW5kZWZpbmVkICYmIG9TZXR0aW5ncy5zYXZlZF9hYVNvcnRpbmcgPT09IHVuZGVmaW5lZCApCgl7CgkJb1NldHRpbmdzLmFhU29ydGluZ1tpXVsxXSA9IG9Db2x1bW4uYXNTb3J0aW5nWzBdOwoJfQoJCgkvKiBTZXQgdGhlIGN1cnJlbnQgc29ydGluZyBpbmRleCBiYXNlZCBvbiBhb0NvbHVtbnMuYXNTb3J0aW5nICovCglmb3IgKCBqPTAsIGpMZW49b0NvbHVtbi5hc1NvcnRpbmcubGVuZ3RoIDsgajxqTGVuIDsgaisrICkKCXsKCQlpZiAoIG9TZXR0aW5ncy5hYVNvcnRpbmdbaV1bMV0gPT0gb0NvbHVtbi5hc1NvcnRpbmdbal0gKQoJCXsKCQkJb1NldHRpbmdzLmFhU29ydGluZ1tpXVsyXSA9IGo7CgkJCWJyZWFrOwoJCX0KCX0KfQoJCi8qIERvIGEgZmlyc3QgcGFzcyBvbiB0aGUgc29ydGluZyBjbGFzc2VzIChhbGxvd3MgYW55IHNpemUgY2hhbmdlcyB0byBiZSB0YWtlbiBpbnRvCiAqIGFjY291bnQsIGFuZCBhbHNvIHdpbGwgYXBwbHkgc29ydGluZyBkaXNhYmxlZCBjbGFzc2VzIGlmIGRpc2FibGVkCiAqLwpfZm5Tb3J0aW5nQ2xhc3Nlcyggb1NldHRpbmdzICk7CgoKLyoKICogRmluYWwgaW5pdAogKiBDYWNoZSB0aGUgaGVhZGVyLCBib2R5IGFuZCBmb290ZXIgYXMgcmVxdWlyZWQsIGNyZWF0aW5nIHRoZW0gaWYgbmVlZGVkCiAqLwoKLyogQnJvd3NlciBzdXBwb3J0IGRldGVjdGlvbiAqLwpfZm5Ccm93c2VyRGV0ZWN0KCBvU2V0dGluZ3MgKTsKCi8vIFdvcmsgYXJvdW5kIGZvciBXZWJraXQgYnVnIDgzODY3IC0gc3RvcmUgdGhlIGNhcHRpb24tc2lkZSBiZWZvcmUgcmVtb3ZpbmcgZnJvbSBkb2MKdmFyIGNhcHRpb25zID0gJCh0aGlzKS5jaGlsZHJlbignY2FwdGlvbicpLmVhY2goIGZ1bmN0aW9uICgpIHsKCXRoaXMuX2NhcHRpb25TaWRlID0gJCh0aGlzKS5jc3MoJ2NhcHRpb24tc2lkZScpOwp9ICk7Cgp2YXIgdGhlYWQgPSAkKHRoaXMpLmNoaWxkcmVuKCd0aGVhZCcpOwppZiAoIHRoZWFkLmxlbmd0aCA9PT0gMCApCnsKCXRoZWFkID0gWyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCAndGhlYWQnICkgXTsKCXRoaXMuYXBwZW5kQ2hpbGQoIHRoZWFkWzBdICk7Cn0Kb1NldHRpbmdzLm5USGVhZCA9IHRoZWFkWzBdOwoKdmFyIHRib2R5ID0gJCh0aGlzKS5jaGlsZHJlbigndGJvZHknKTsKaWYgKCB0Ym9keS5sZW5ndGggPT09IDAgKQp7Cgl0Ym9keSA9IFsgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggJ3Rib2R5JyApIF07Cgl0aGlzLmFwcGVuZENoaWxkKCB0Ym9keVswXSApOwp9Cm9TZXR0aW5ncy5uVEJvZHkgPSB0Ym9keVswXTsKb1NldHRpbmdzLm5UQm9keS5zZXRBdHRyaWJ1dGUoICJyb2xlIiwgImFsZXJ0IiApOwpvU2V0dGluZ3MublRCb2R5LnNldEF0dHJpYnV0ZSggImFyaWEtbGl2ZSIsICJwb2xpdGUiICk7Cm9TZXR0aW5ncy5uVEJvZHkuc2V0QXR0cmlidXRlKCAiYXJpYS1yZWxldmFudCIsICJhbGwiICk7Cgp2YXIgdGZvb3QgPSAkKHRoaXMpLmNoaWxkcmVuKCd0Zm9vdCcpOwppZiAoIHRmb290Lmxlbmd0aCA9PT0gMCAmJiBjYXB0aW9ucy5sZW5ndGggPiAwICYmIChvU2V0dGluZ3Mub1Njcm9sbC5zWCAhPT0gIiIgfHwgb1NldHRpbmdzLm9TY3JvbGwuc1kgIT09ICIiKSApCnsKCS8vIElmIHdlIGFyZSBhIHNjcm9sbGluZyB0YWJsZSwgYW5kIG5vIGZvb3RlciBoYXMgYmVlbiBnaXZlbiwgdGhlbiB3ZSBuZWVkIHRvIGNyZWF0ZQoJLy8gYSB0Zm9vdCBlbGVtZW50IGZvciB0aGUgY2FwdGlvbiBlbGVtZW50IHRvIGJlIGFwcGVuZGVkIHRvCgl0Zm9vdCA9IFsgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggJ3Rmb290JyApIF07Cgl0aGlzLmFwcGVuZENoaWxkKCB0Zm9vdFswXSApOwp9CgppZiAoIHRmb290Lmxlbmd0aCA+IDAgKQp7CglvU2V0dGluZ3MublRGb290ID0gdGZvb3RbMF07CglfZm5EZXRlY3RIZWFkZXIoIG9TZXR0aW5ncy5hb0Zvb3Rlciwgb1NldHRpbmdzLm5URm9vdCApOwp9CgovKiBDaGVjayBpZiB0aGVyZSBpcyBkYXRhIHBhc3NpbmcgaW50byB0aGUgY29uc3RydWN0b3IgKi8KaWYgKCBiVXNlUGFzc2VkRGF0YSApCnsKCWZvciAoIGk9MCA7IGk8b0luaXQuYWFEYXRhLmxlbmd0aCA7IGkrKyApCgl7CgkJX2ZuQWRkRGF0YSggb1NldHRpbmdzLCBvSW5pdC5hYURhdGFbIGkgXSApOwoJfQp9CmVsc2UKewoJLyogR3JhYiB0aGUgZGF0YSBmcm9tIHRoZSBwYWdlICovCglfZm5HYXRoZXJEYXRhKCBvU2V0dGluZ3MgKTsKfQoKLyogQ29weSB0aGUgZGF0YSBpbmRleCBhcnJheSAqLwpvU2V0dGluZ3MuYWlEaXNwbGF5ID0gb1NldHRpbmdzLmFpRGlzcGxheU1hc3Rlci5zbGljZSgpOwoKLyogSW5pdGlhbGlzYXRpb24gY29tcGxldGUgLSB0YWJsZSBjYW4gYmUgZHJhd24gKi8Kb1NldHRpbmdzLmJJbml0aWFsaXNlZCA9IHRydWU7CgovKiBDaGVjayBpZiB3ZSBuZWVkIHRvIGluaXRpYWxpc2UgdGhlIHRhYmxlIChpdCBtaWdodCBub3QgaGF2ZSBiZWVuIGhhbmRlZCBvZmYgdG8gdGhlCiAqIGxhbmd1YWdlIHByb2Nlc3NvcikKICovCmlmICggYkluaXRIYW5kZWRPZmYgPT09IGZhbHNlICkKewoJX2ZuSW5pdGlhbGlzZSggb1NldHRpbmdzICk7Cn0K]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/core/core.data.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CgovKioKICogQWRkIGEgZGF0YSBhcnJheSB0byB0aGUgdGFibGUsIGNyZWF0aW5nIERPTSBub2RlIGV0Yy4gVGhpcyBpcyB0aGUgcGFyYWxsZWwgdG8gCiAqIF9mbkdhdGhlckRhdGEsIGJ1dCBmb3IgYWRkaW5nIHJvd3MgZnJvbSBhIEphdmFzY3JpcHQgc291cmNlLCByYXRoZXIgdGhhbiBhCiAqIERPTSBzb3VyY2UuCiAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CiAqICBAcGFyYW0ge2FycmF5fSBhRGF0YSBkYXRhIGFycmF5IHRvIGJlIGFkZGVkCiAqICBAcmV0dXJucyB7aW50fSA+PTAgaWYgc3VjY2Vzc2Z1bCAoaW5kZXggb2YgbmV3IGFvRGF0YSBlbnRyeSksIC0xIGlmIGZhaWxlZAogKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCiAqLwpmdW5jdGlvbiBfZm5BZGREYXRhICggb1NldHRpbmdzLCBhRGF0YVN1cHBsaWVkICkKewoJdmFyIG9Db2w7CgkKCS8qIFRha2UgYW4gaW5kZXBlbmRlbnQgY29weSBvZiB0aGUgZGF0YSBzb3VyY2Ugc28gd2UgY2FuIGJhc2ggaXQgYWJvdXQgYXMgd2Ugd2lzaCAqLwoJdmFyIGFEYXRhSW4gPSAoJC5pc0FycmF5KGFEYXRhU3VwcGxpZWQpKSA/CgkJYURhdGFTdXBwbGllZC5zbGljZSgpIDoKCQkkLmV4dGVuZCggdHJ1ZSwge30sIGFEYXRhU3VwcGxpZWQgKTsKCQoJLyogQ3JlYXRlIHRoZSBvYmplY3QgZm9yIHN0b3JpbmcgaW5mb3JtYXRpb24gYWJvdXQgdGhpcyBuZXcgcm93ICovCgl2YXIgaVJvdyA9IG9TZXR0aW5ncy5hb0RhdGEubGVuZ3RoOwoJdmFyIG9EYXRhID0gJC5leHRlbmQoIHRydWUsIHt9LCBEYXRhVGFibGUubW9kZWxzLm9Sb3cgKTsKCW9EYXRhLl9hRGF0YSA9IGFEYXRhSW47CglvU2V0dGluZ3MuYW9EYXRhLnB1c2goIG9EYXRhICk7CgoJLyogQ3JlYXRlIHRoZSBjZWxscyAqLwoJdmFyIG5UZCwgc1RoaXNUeXBlOwoJZm9yICggdmFyIGk9MCwgaUxlbj1vU2V0dGluZ3MuYW9Db2x1bW5zLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgl7CgkJb0NvbCA9IG9TZXR0aW5ncy5hb0NvbHVtbnNbaV07CgoJCS8qIFVzZSByZW5kZXJlZCBkYXRhIGZvciBmaWx0ZXJpbmcgLyBzb3J0aW5nICovCgkJaWYgKCB0eXBlb2Ygb0NvbC5mblJlbmRlciA9PT0gJ2Z1bmN0aW9uJyAmJiBvQ29sLmJVc2VSZW5kZXJlZCAmJiBvQ29sLm1EYXRhICE9PSBudWxsICkKCQl7CgkJCV9mblNldENlbGxEYXRhKCBvU2V0dGluZ3MsIGlSb3csIGksIF9mblJlbmRlcihvU2V0dGluZ3MsIGlSb3csIGkpICk7CgkJfQoJCWVsc2UKCQl7CgkJCV9mblNldENlbGxEYXRhKCBvU2V0dGluZ3MsIGlSb3csIGksIF9mbkdldENlbGxEYXRhKCBvU2V0dGluZ3MsIGlSb3csIGkgKSApOwoJCX0KCQkKCQkvKiBTZWUgaWYgd2Ugc2hvdWxkIGF1dG8tZGV0ZWN0IHRoZSBjb2x1bW4gdHlwZSAqLwoJCWlmICggb0NvbC5fYkF1dG9UeXBlICYmIG9Db2wuc1R5cGUgIT0gJ3N0cmluZycgKQoJCXsKCQkJLyogQXR0ZW1wdCB0byBhdXRvIGRldGVjdCB0aGUgdHlwZSAtIHNhbWUgYXMgX2ZuR2F0aGVyRGF0YSgpICovCgkJCXZhciBzVmFyVHlwZSA9IF9mbkdldENlbGxEYXRhKCBvU2V0dGluZ3MsIGlSb3csIGksICd0eXBlJyApOwoJCQlpZiAoIHNWYXJUeXBlICE9PSBudWxsICYmIHNWYXJUeXBlICE9PSAnJyApCgkJCXsKCQkJCXNUaGlzVHlwZSA9IF9mbkRldGVjdFR5cGUoIHNWYXJUeXBlICk7CgkJCQlpZiAoIG9Db2wuc1R5cGUgPT09IG51bGwgKQoJCQkJewoJCQkJCW9Db2wuc1R5cGUgPSBzVGhpc1R5cGU7CgkJCQl9CgkJCQllbHNlIGlmICggb0NvbC5zVHlwZSAhPSBzVGhpc1R5cGUgJiYgb0NvbC5zVHlwZSAhPSAiaHRtbCIgKQoJCQkJewoJCQkJCS8qIFN0cmluZyBpcyBhbHdheXMgdGhlICdmYWxsYmFjaycgb3B0aW9uICovCgkJCQkJb0NvbC5zVHlwZSA9ICdzdHJpbmcnOwoJCQkJfQoJCQl9CgkJfQoJfQoJCgkvKiBBZGQgdG8gdGhlIGRpc3BsYXkgYXJyYXkgKi8KCW9TZXR0aW5ncy5haURpc3BsYXlNYXN0ZXIucHVzaCggaVJvdyApOwoKCS8qIENyZWF0ZSB0aGUgRE9NIGltZm9ybWF0aW9uICovCglpZiAoICFvU2V0dGluZ3Mub0ZlYXR1cmVzLmJEZWZlclJlbmRlciApCgl7CgkJX2ZuQ3JlYXRlVHIoIG9TZXR0aW5ncywgaVJvdyApOwoJfQoKCXJldHVybiBpUm93Owp9CgoKLyoqCiAqIFJlYWQgaW4gdGhlIGRhdGEgZnJvbSB0aGUgdGFyZ2V0IHRhYmxlIGZyb20gdGhlIERPTQogKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAogKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCiAqLwpmdW5jdGlvbiBfZm5HYXRoZXJEYXRhKCBvU2V0dGluZ3MgKQp7Cgl2YXIgaUxvb3AsIGksIGlMZW4sIGosIGpMZW4sIGpJbm5lciwKCSAJblRkcywgblRycywgblRkLCBhTG9jYWxEYXRhLCBpVGhpc0luZGV4LAoJCWlSb3csIGlSb3dzLCBpQ29sdW1uLCBpQ29sdW1ucywgc05vZGVOYW1lLAoJCW9Db2wsIG9EYXRhOwoJCgkvKgoJICogUHJvY2VzcyBieSByb3cgZmlyc3QKCSAqIEFkZCB0aGUgZGF0YSBvYmplY3QgZm9yIHRoZSB3aG9sZSB0YWJsZSAtIHN0b3JpbmcgdGhlIHRyIG5vZGUuIE5vdGUgLSBubyBwb2ludCBpbiBnZXR0aW5nCgkgKiBET00gYmFzZWQgZGF0YSBpZiB3ZSBhcmUgZ29pbmcgdG8gZ28gYW5kIHJlcGxhY2UgaXQgd2l0aCBBamF4IHNvdXJjZSBkYXRhLgoJICovCglpZiAoIG9TZXR0aW5ncy5iRGVmZXJMb2FkaW5nIHx8IG9TZXR0aW5ncy5zQWpheFNvdXJjZSA9PT0gbnVsbCApCgl7CgkJblRycyA9IG9TZXR0aW5ncy5uVEJvZHkuY2hpbGROb2RlczsKCQlmb3IgKCBpPTAsIGlMZW49blRycy5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCXsKCQkJaWYgKCBuVHJzW2ldLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCkgPT0gIlRSIiApCgkJCXsKCQkJCWlUaGlzSW5kZXggPSBvU2V0dGluZ3MuYW9EYXRhLmxlbmd0aDsKCQkJCW5UcnNbaV0uX0RUX1Jvd0luZGV4ID0gaVRoaXNJbmRleDsKCQkJCW9TZXR0aW5ncy5hb0RhdGEucHVzaCggJC5leHRlbmQoIHRydWUsIHt9LCBEYXRhVGFibGUubW9kZWxzLm9Sb3csIHsKCQkJCQkiblRyIjogblRyc1tpXQoJCQkJfSApICk7CgkJCQkKCQkJCW9TZXR0aW5ncy5haURpc3BsYXlNYXN0ZXIucHVzaCggaVRoaXNJbmRleCApOwoJCQkJblRkcyA9IG5UcnNbaV0uY2hpbGROb2RlczsKCQkJCWpJbm5lciA9IDA7CgkJCQkKCQkJCWZvciAoIGo9MCwgakxlbj1uVGRzLmxlbmd0aCA7IGo8akxlbiA7IGorKyApCgkJCQl7CgkJCQkJc05vZGVOYW1lID0gblRkc1tqXS5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpOwoJCQkJCWlmICggc05vZGVOYW1lID09ICJURCIgfHwgc05vZGVOYW1lID09ICJUSCIgKQoJCQkJCXsKCQkJCQkJX2ZuU2V0Q2VsbERhdGEoIG9TZXR0aW5ncywgaVRoaXNJbmRleCwgaklubmVyLCAkLnRyaW0oblRkc1tqXS5pbm5lckhUTUwpICk7CgkJCQkJCWpJbm5lcisrOwoJCQkJCX0KCQkJCX0KCQkJfQoJCX0KCX0KCQoJLyogR2F0aGVyIGluIHRoZSBURCBlbGVtZW50cyBvZiB0aGUgVGFibGUgLSBub3RlIHRoYXQgdGhpcyBpcyBiYXNpY2FsbHkgdGhlIHNhbWUgYXMKCSAqIGZuR2V0VGROb2RlcywgYnV0IHRoYXQgZnVuY3Rpb24gdGFrZXMgYWNjb3VudCBvZiBoaWRkZW4gY29sdW1ucywgd2hpY2ggd2UgaGF2ZW4ndCB5ZXQKCSAqIHNldHVwIQoJICovCgluVHJzID0gX2ZuR2V0VHJOb2Rlcyggb1NldHRpbmdzICk7CgluVGRzID0gW107Cglmb3IgKCBpPTAsIGlMZW49blRycy5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJewoJCWZvciAoIGo9MCwgakxlbj1uVHJzW2ldLmNoaWxkTm9kZXMubGVuZ3RoIDsgajxqTGVuIDsgaisrICkKCQl7CgkJCW5UZCA9IG5UcnNbaV0uY2hpbGROb2Rlc1tqXTsKCQkJc05vZGVOYW1lID0gblRkLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCk7CgkJCWlmICggc05vZGVOYW1lID09ICJURCIgfHwgc05vZGVOYW1lID09ICJUSCIgKQoJCQl7CgkJCQluVGRzLnB1c2goIG5UZCApOwoJCQl9CgkJfQoJfQoJCgkvKiBOb3cgcHJvY2VzcyBieSBjb2x1bW4gKi8KCWZvciAoIGlDb2x1bW49MCwgaUNvbHVtbnM9b1NldHRpbmdzLmFvQ29sdW1ucy5sZW5ndGggOyBpQ29sdW1uPGlDb2x1bW5zIDsgaUNvbHVtbisrICkKCXsKCQlvQ29sID0gb1NldHRpbmdzLmFvQ29sdW1uc1tpQ29sdW1uXTsKCgkJLyogR2V0IHRoZSB0aXRsZSBvZiB0aGUgY29sdW1uIC0gdW5sZXNzIHRoZXJlIGlzIGEgdXNlciBzZXQgb25lICovCgkJaWYgKCBvQ29sLnNUaXRsZSA9PT0gbnVsbCApCgkJewoJCQlvQ29sLnNUaXRsZSA9IG9Db2wublRoLmlubmVySFRNTDsKCQl9CgkJCgkJdmFyCgkJCWJBdXRvVHlwZSA9IG9Db2wuX2JBdXRvVHlwZSwKCQkJYlJlbmRlciA9IHR5cGVvZiBvQ29sLmZuUmVuZGVyID09PSAnZnVuY3Rpb24nLAoJCQliQ2xhc3MgPSBvQ29sLnNDbGFzcyAhPT0gbnVsbCwKCQkJYlZpc2libGUgPSBvQ29sLmJWaXNpYmxlLAoJCQluQ2VsbCwgc1RoaXNUeXBlLCBzUmVuZGVyZWQsIHNWYWxUeXBlOwoJCQoJCS8qIEEgc2luZ2xlIGxvb3AgdG8gcnVsZSB0aGVtIGFsbCAoYW5kIGJlIG1vcmUgZWZmaWNpZW50KSAqLwoJCWlmICggYkF1dG9UeXBlIHx8IGJSZW5kZXIgfHwgYkNsYXNzIHx8ICFiVmlzaWJsZSApCgkJewoJCQlmb3IgKCBpUm93PTAsIGlSb3dzPW9TZXR0aW5ncy5hb0RhdGEubGVuZ3RoIDsgaVJvdzxpUm93cyA7IGlSb3crKyApCgkJCXsKCQkJCW9EYXRhID0gb1NldHRpbmdzLmFvRGF0YVtpUm93XTsKCQkJCW5DZWxsID0gblRkc1sgKGlSb3cqaUNvbHVtbnMpICsgaUNvbHVtbiBdOwoJCQkJCgkJCQkvKiBUeXBlIGRldGVjdGlvbiAqLwoJCQkJaWYgKCBiQXV0b1R5cGUgJiYgb0NvbC5zVHlwZSAhPSAnc3RyaW5nJyApCgkJCQl7CgkJCQkJc1ZhbFR5cGUgPSBfZm5HZXRDZWxsRGF0YSggb1NldHRpbmdzLCBpUm93LCBpQ29sdW1uLCAndHlwZScgKTsKCQkJCQlpZiAoIHNWYWxUeXBlICE9PSAnJyApCgkJCQkJewoJCQkJCQlzVGhpc1R5cGUgPSBfZm5EZXRlY3RUeXBlKCBzVmFsVHlwZSApOwoJCQkJCQlpZiAoIG9Db2wuc1R5cGUgPT09IG51bGwgKQoJCQkJCQl7CgkJCQkJCQlvQ29sLnNUeXBlID0gc1RoaXNUeXBlOwoJCQkJCQl9CgkJCQkJCWVsc2UgaWYgKCBvQ29sLnNUeXBlICE9IHNUaGlzVHlwZSAmJiAKCQkJCQkJICAgICAgICAgIG9Db2wuc1R5cGUgIT0gImh0bWwiICkKCQkJCQkJewoJCQkJCQkJLyogU3RyaW5nIGlzIGFsd2F5cyB0aGUgJ2ZhbGxiYWNrJyBvcHRpb24gKi8KCQkJCQkJCW9Db2wuc1R5cGUgPSAnc3RyaW5nJzsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCgkJCQlpZiAoIHR5cGVvZiBvQ29sLm1EYXRhID09PSAnZnVuY3Rpb24nICkKCQkJCXsKCQkJCQluQ2VsbC5pbm5lckhUTUwgPSBfZm5HZXRDZWxsRGF0YSggb1NldHRpbmdzLCBpUm93LCBpQ29sdW1uLCAnZGlzcGxheScgKTsKCQkJCX0KCQkJCQoJCQkJLyogUmVuZGVyaW5nICovCgkJCQlpZiAoIGJSZW5kZXIgKQoJCQkJewoJCQkJCXNSZW5kZXJlZCA9IF9mblJlbmRlciggb1NldHRpbmdzLCBpUm93LCBpQ29sdW1uICk7CgkJCQkJbkNlbGwuaW5uZXJIVE1MID0gc1JlbmRlcmVkOwoJCQkJCWlmICggb0NvbC5iVXNlUmVuZGVyZWQgKQoJCQkJCXsKCQkJCQkJLyogVXNlIHRoZSByZW5kZXJlZCBkYXRhIGZvciBmaWx0ZXJpbmcgLyBzb3J0aW5nICovCgkJCQkJCV9mblNldENlbGxEYXRhKCBvU2V0dGluZ3MsIGlSb3csIGlDb2x1bW4sIHNSZW5kZXJlZCApOwoJCQkJCX0KCQkJCX0KCQkJCQoJCQkJLyogQ2xhc3NlcyAqLwoJCQkJaWYgKCBiQ2xhc3MgKQoJCQkJewoJCQkJCW5DZWxsLmNsYXNzTmFtZSArPSAnICcrb0NvbC5zQ2xhc3M7CgkJCQl9CgkJCQkKCQkJCS8qIENvbHVtbiB2aXNpYmlsaXR5ICovCgkJCQlpZiAoICFiVmlzaWJsZSApCgkJCQl7CgkJCQkJb0RhdGEuX2FuSGlkZGVuW2lDb2x1bW5dID0gbkNlbGw7CgkJCQkJbkNlbGwucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCggbkNlbGwgKTsKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQlvRGF0YS5fYW5IaWRkZW5baUNvbHVtbl0gPSBudWxsOwoJCQkJfQoKCQkJCWlmICggb0NvbC5mbkNyZWF0ZWRDZWxsICkKCQkJCXsKCQkJCQlvQ29sLmZuQ3JlYXRlZENlbGwuY2FsbCggb1NldHRpbmdzLm9JbnN0YW5jZSwKCQkJCQkJbkNlbGwsIF9mbkdldENlbGxEYXRhKCBvU2V0dGluZ3MsIGlSb3csIGlDb2x1bW4sICdkaXNwbGF5JyApLCBvRGF0YS5fYURhdGEsIGlSb3csIGlDb2x1bW4KCQkJCQkpOwoJCQkJfQoJCQl9CgkJfQoJfQoKCS8qIFJvdyBjcmVhdGVkIGNhbGxiYWNrcyAqLwoJaWYgKCBvU2V0dGluZ3MuYW9Sb3dDcmVhdGVkQ2FsbGJhY2subGVuZ3RoICE9PSAwICkKCXsKCQlmb3IgKCBpPTAsIGlMZW49b1NldHRpbmdzLmFvRGF0YS5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCXsKCQkJb0RhdGEgPSBvU2V0dGluZ3MuYW9EYXRhW2ldOwoJCQlfZm5DYWxsYmFja0ZpcmUoIG9TZXR0aW5ncywgJ2FvUm93Q3JlYXRlZENhbGxiYWNrJywgbnVsbCwgW29EYXRhLm5Uciwgb0RhdGEuX2FEYXRhLCBpXSApOwoJCX0KCX0KfQoKCi8qKgogKiBUYWtlIGEgVFIgZWxlbWVudCBhbmQgY29udmVydCBpdCB0byBhbiBpbmRleCBpbiBhb0RhdGEKICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKICogIEBwYXJhbSB7bm9kZX0gbiB0aGUgVFIgZWxlbWVudCB0byBmaW5kCiAqICBAcmV0dXJucyB7aW50fSBpbmRleCBpZiB0aGUgbm9kZSBpcyBmb3VuZCwgbnVsbCBpZiBub3QKICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQogKi8KZnVuY3Rpb24gX2ZuTm9kZVRvRGF0YUluZGV4KCBvU2V0dGluZ3MsIG4gKQp7CglyZXR1cm4gKG4uX0RUX1Jvd0luZGV4IT09dW5kZWZpbmVkKSA/IG4uX0RUX1Jvd0luZGV4IDogbnVsbDsKfQoKCi8qKgogKiBUYWtlIGEgVEQgZWxlbWVudCBhbmQgY29udmVydCBpdCBpbnRvIGEgY29sdW1uIGRhdGEgaW5kZXggKG5vdCB0aGUgdmlzaWJsZSBpbmRleCkKICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKICogIEBwYXJhbSB7aW50fSBpUm93IFRoZSByb3cgbnVtYmVyIHRoZSBURC9USCBjYW4gYmUgZm91bmQgaW4KICogIEBwYXJhbSB7bm9kZX0gbiBUaGUgVEQvVEggZWxlbWVudCB0byBmaW5kCiAqICBAcmV0dXJucyB7aW50fSBpbmRleCBpZiB0aGUgbm9kZSBpcyBmb3VuZCwgLTEgaWYgbm90CiAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKICovCmZ1bmN0aW9uIF9mbk5vZGVUb0NvbHVtbkluZGV4KCBvU2V0dGluZ3MsIGlSb3csIG4gKQp7Cgl2YXIgYW5DZWxscyA9IF9mbkdldFRkTm9kZXMoIG9TZXR0aW5ncywgaVJvdyApOwoKCWZvciAoIHZhciBpPTAsIGlMZW49b1NldHRpbmdzLmFvQ29sdW1ucy5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJewoJCWlmICggYW5DZWxsc1tpXSA9PT0gbiApCgkJewoJCQlyZXR1cm4gaTsKCQl9Cgl9CglyZXR1cm4gLTE7Cn0KCgovKioKICogR2V0IGFuIGFycmF5IG9mIGRhdGEgZm9yIGEgZ2l2ZW4gcm93IGZyb20gdGhlIGludGVybmFsIGRhdGEgY2FjaGUKICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKICogIEBwYXJhbSB7aW50fSBpUm93IGFvRGF0YSByb3cgaWQKICogIEBwYXJhbSB7c3RyaW5nfSBzU3BlY2lmaWMgZGF0YSBnZXQgdHlwZSAoJ3R5cGUnICdmaWx0ZXInICdzb3J0JykKICogIEBwYXJhbSB7YXJyYXl9IGFpQ29sdW1ucyBBcnJheSBvZiBjb2x1bW4gaW5kZXhlcyB0byBnZXQgZGF0YSBmcm9tCiAqICBAcmV0dXJucyB7YXJyYXl9IERhdGEgYXJyYXkKICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQogKi8KZnVuY3Rpb24gX2ZuR2V0Um93RGF0YSggb1NldHRpbmdzLCBpUm93LCBzU3BlY2lmaWMsIGFpQ29sdW1ucyApCnsKCXZhciBvdXQgPSBbXTsKCWZvciAoIHZhciBpPTAsIGlMZW49YWlDb2x1bW5zLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgl7CgkJb3V0LnB1c2goIF9mbkdldENlbGxEYXRhKCBvU2V0dGluZ3MsIGlSb3csIGFpQ29sdW1uc1tpXSwgc1NwZWNpZmljICkgKTsKCX0KCXJldHVybiBvdXQ7Cn0KCgovKioKICogR2V0IHRoZSBkYXRhIGZvciBhIGdpdmVuIGNlbGwgZnJvbSB0aGUgaW50ZXJuYWwgY2FjaGUsIHRha2luZyBpbnRvIGFjY291bnQgZGF0YSBtYXBwaW5nCiAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CiAqICBAcGFyYW0ge2ludH0gaVJvdyBhb0RhdGEgcm93IGlkCiAqICBAcGFyYW0ge2ludH0gaUNvbCBDb2x1bW4gaW5kZXgKICogIEBwYXJhbSB7c3RyaW5nfSBzU3BlY2lmaWMgZGF0YSBnZXQgdHlwZSAoJ2Rpc3BsYXknLCAndHlwZScgJ2ZpbHRlcicgJ3NvcnQnKQogKiAgQHJldHVybnMgeyp9IENlbGwgZGF0YQogKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCiAqLwpmdW5jdGlvbiBfZm5HZXRDZWxsRGF0YSggb1NldHRpbmdzLCBpUm93LCBpQ29sLCBzU3BlY2lmaWMgKQp7Cgl2YXIgc0RhdGE7Cgl2YXIgb0NvbCA9IG9TZXR0aW5ncy5hb0NvbHVtbnNbaUNvbF07Cgl2YXIgb0RhdGEgPSBvU2V0dGluZ3MuYW9EYXRhW2lSb3ddLl9hRGF0YTsKCglpZiAoIChzRGF0YT1vQ29sLmZuR2V0RGF0YSggb0RhdGEsIHNTcGVjaWZpYyApKSA9PT0gdW5kZWZpbmVkICkKCXsKCQlpZiAoIG9TZXR0aW5ncy5pRHJhd0Vycm9yICE9IG9TZXR0aW5ncy5pRHJhdyAmJiBvQ29sLnNEZWZhdWx0Q29udGVudCA9PT0gbnVsbCApCgkJewoJCQlfZm5Mb2coIG9TZXR0aW5ncywgMCwgIlJlcXVlc3RlZCB1bmtub3duIHBhcmFtZXRlciAiKwoJCQkJKHR5cGVvZiBvQ29sLm1EYXRhPT0nZnVuY3Rpb24nID8gJ3ttRGF0YSBmdW5jdGlvbn0nIDogIiciK29Db2wubURhdGErIiciKSsKCQkJCSIgZnJvbSB0aGUgZGF0YSBzb3VyY2UgZm9yIHJvdyAiK2lSb3cgKTsKCQkJb1NldHRpbmdzLmlEcmF3RXJyb3IgPSBvU2V0dGluZ3MuaURyYXc7CgkJfQoJCXJldHVybiBvQ29sLnNEZWZhdWx0Q29udGVudDsKCX0KCgkvKiBXaGVuIHRoZSBkYXRhIHNvdXJjZSBpcyBudWxsLCB3ZSBjYW4gdXNlIGRlZmF1bHQgY29sdW1uIGRhdGEgKi8KCWlmICggc0RhdGEgPT09IG51bGwgJiYgb0NvbC5zRGVmYXVsdENvbnRlbnQgIT09IG51bGwgKQoJewoJCXNEYXRhID0gb0NvbC5zRGVmYXVsdENvbnRlbnQ7Cgl9CgllbHNlIGlmICggdHlwZW9mIHNEYXRhID09PSAnZnVuY3Rpb24nICkKCXsKCQkvKiBJZiB0aGUgZGF0YSBzb3VyY2UgaXMgYSBmdW5jdGlvbiwgdGhlbiB3ZSBydW4gaXQgYW5kIHVzZSB0aGUgcmV0dXJuICovCgkJcmV0dXJuIHNEYXRhKCk7Cgl9CgoJaWYgKCBzU3BlY2lmaWMgPT0gJ2Rpc3BsYXknICYmIHNEYXRhID09PSBudWxsICkKCXsKCQlyZXR1cm4gJyc7Cgl9CglyZXR1cm4gc0RhdGE7Cn0KCgovKioKICogU2V0IHRoZSB2YWx1ZSBmb3IgYSBzcGVjaWZpYyBjZWxsLCBpbnRvIHRoZSBpbnRlcm5hbCBkYXRhIGNhY2hlCiAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CiAqICBAcGFyYW0ge2ludH0gaVJvdyBhb0RhdGEgcm93IGlkCiAqICBAcGFyYW0ge2ludH0gaUNvbCBDb2x1bW4gaW5kZXgKICogIEBwYXJhbSB7Kn0gdmFsIFZhbHVlIHRvIHNldAogKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCiAqLwpmdW5jdGlvbiBfZm5TZXRDZWxsRGF0YSggb1NldHRpbmdzLCBpUm93LCBpQ29sLCB2YWwgKQp7Cgl2YXIgb0NvbCA9IG9TZXR0aW5ncy5hb0NvbHVtbnNbaUNvbF07Cgl2YXIgb0RhdGEgPSBvU2V0dGluZ3MuYW9EYXRhW2lSb3ddLl9hRGF0YTsKCglvQ29sLmZuU2V0RGF0YSggb0RhdGEsIHZhbCApOwp9CgoKLy8gUHJpdmF0ZSB2YXJpYWJsZSB0aGF0IGlzIHVzZWQgdG8gbWF0Y2ggYXJyYXkgc3ludGF4IGluIHRoZSBkYXRhIHByb3BlcnR5IG9iamVjdAp2YXIgX19yZUFycmF5ID0gL1xbLio/XF0kLzsKCi8qKgogKiBSZXR1cm4gYSBmdW5jdGlvbiB0aGF0IGNhbiBiZSB1c2VkIHRvIGdldCBkYXRhIGZyb20gYSBzb3VyY2Ugb2JqZWN0LCB0YWtpbmcKICogaW50byBhY2NvdW50IHRoZSBhYmlsaXR5IHRvIHVzZSBuZXN0ZWQgb2JqZWN0cyBhcyBhIHNvdXJjZQogKiAgQHBhcmFtIHtzdHJpbmd8aW50fGZ1bmN0aW9ufSBtU291cmNlIFRoZSBkYXRhIHNvdXJjZSBmb3IgdGhlIG9iamVjdAogKiAgQHJldHVybnMge2Z1bmN0aW9ufSBEYXRhIGdldCBmdW5jdGlvbgogKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCiAqLwpmdW5jdGlvbiBfZm5HZXRPYmplY3REYXRhRm4oIG1Tb3VyY2UgKQp7CglpZiAoIG1Tb3VyY2UgPT09IG51bGwgKQoJewoJCS8qIEdpdmUgYW4gZW1wdHkgc3RyaW5nIGZvciByZW5kZXJpbmcgLyBzb3J0aW5nIGV0YyAqLwoJCXJldHVybiBmdW5jdGlvbiAoZGF0YSwgdHlwZSkgewoJCQlyZXR1cm4gbnVsbDsKCQl9OwoJfQoJZWxzZSBpZiAoIHR5cGVvZiBtU291cmNlID09PSAnZnVuY3Rpb24nICkKCXsKCQlyZXR1cm4gZnVuY3Rpb24gKGRhdGEsIHR5cGUsIGV4dHJhKSB7CgkJCXJldHVybiBtU291cmNlKCBkYXRhLCB0eXBlLCBleHRyYSApOwoJCX07Cgl9CgllbHNlIGlmICggdHlwZW9mIG1Tb3VyY2UgPT09ICdzdHJpbmcnICYmIChtU291cmNlLmluZGV4T2YoJy4nKSAhPT0gLTEgfHwgbVNvdXJjZS5pbmRleE9mKCdbJykgIT09IC0xKSApCgl7CgkJLyogSWYgdGhlcmUgaXMgYSAuIGluIHRoZSBzb3VyY2Ugc3RyaW5nIHRoZW4gdGhlIGRhdGEgc291cmNlIGlzIGluIGEgCgkJICogbmVzdGVkIG9iamVjdCBzbyB3ZSBsb29wIG92ZXIgdGhlIGRhdGEgZm9yIGVhY2ggbGV2ZWwgdG8gZ2V0IHRoZSBuZXh0CgkJICogbGV2ZWwgZG93bi4gT24gZWFjaCBsb29wIHdlIHRlc3QgZm9yIHVuZGVmaW5lZCwgYW5kIGlmIGZvdW5kIGltbWVkaWF0ZWx5CgkJICogcmV0dXJuLiBUaGlzIGFsbG93cyBlbnRpcmUgb2JqZWN0cyB0byBiZSBtaXNzaW5nIGFuZCBzRGVmYXVsdENvbnRlbnQgdG8KCQkgKiBiZSB1c2VkIGlmIGRlZmluZWQsIHJhdGhlciB0aGFuIHRocm93aW5nIGFuIGVycm9yCgkJICovCgkJdmFyIGZldGNoRGF0YSA9IGZ1bmN0aW9uIChkYXRhLCB0eXBlLCBzcmMpIHsKCQkJdmFyIGEgPSBzcmMuc3BsaXQoJy4nKTsKCQkJdmFyIGFycmF5Tm90YXRpb24sIG91dCwgaW5uZXJTcmM7CgoJCQlpZiAoIHNyYyAhPT0gIiIgKQoJCQl7CgkJCQlmb3IgKCB2YXIgaT0wLCBpTGVuPWEubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQkJCXsKCQkJCQkvLyBDaGVjayBpZiB3ZSBhcmUgZGVhbGluZyB3aXRoIGFuIGFycmF5IG5vdGF0aW9uIHJlcXVlc3QKCQkJCQlhcnJheU5vdGF0aW9uID0gYVtpXS5tYXRjaChfX3JlQXJyYXkpOwoKCQkJCQlpZiAoIGFycmF5Tm90YXRpb24gKSB7CgkJCQkJCWFbaV0gPSBhW2ldLnJlcGxhY2UoX19yZUFycmF5LCAnJyk7CgoJCQkJCQkvLyBDb25kaXRpb24gYWxsb3dzIHNpbXBseSBbXSB0byBiZSBwYXNzZWQgaW4KCQkJCQkJaWYgKCBhW2ldICE9PSAiIiApIHsKCQkJCQkJCWRhdGEgPSBkYXRhWyBhW2ldIF07CgkJCQkJCX0KCQkJCQkJb3V0ID0gW107CgkJCQkJCQoJCQkJCQkvLyBHZXQgdGhlIHJlbWFpbmRlciBvZiB0aGUgbmVzdGVkIG9iamVjdCB0byBnZXQKCQkJCQkJYS5zcGxpY2UoIDAsIGkrMSApOwoJCQkJCQlpbm5lclNyYyA9IGEuam9pbignLicpOwoKCQkJCQkJLy8gVHJhdmVyc2UgZWFjaCBlbnRyeSBpbiB0aGUgYXJyYXkgZ2V0dGluZyB0aGUgcHJvcGVydGllcyByZXF1ZXN0ZWQKCQkJCQkJZm9yICggdmFyIGo9MCwgakxlbj1kYXRhLmxlbmd0aCA7IGo8akxlbiA7IGorKyApIHsKCQkJCQkJCW91dC5wdXNoKCBmZXRjaERhdGEoIGRhdGFbal0sIHR5cGUsIGlubmVyU3JjICkgKTsKCQkJCQkJfQoKCQkJCQkJLy8gSWYgYSBzdHJpbmcgaXMgZ2l2ZW4gaW4gYmV0d2VlbiB0aGUgYXJyYXkgbm90YXRpb24gaW5kaWNhdG9ycywgdGhhdAoJCQkJCQkvLyBpcyB1c2VkIHRvIGpvaW4gdGhlIHN0cmluZ3MgdG9nZXRoZXIsIG90aGVyd2lzZSBhbiBhcnJheSBpcyByZXR1cm5lZAoJCQkJCQl2YXIgam9pbiA9IGFycmF5Tm90YXRpb25bMF0uc3Vic3RyaW5nKDEsIGFycmF5Tm90YXRpb25bMF0ubGVuZ3RoLTEpOwoJCQkJCQlkYXRhID0gKGpvaW49PT0iIikgPyBvdXQgOiBvdXQuam9pbihqb2luKTsKCgkJCQkJCS8vIFRoZSBpbm5lciBjYWxsIHRvIGZldGNoRGF0YSBoYXMgYWxyZWFkeSB0cmF2ZXJzZWQgdGhyb3VnaCB0aGUgcmVtYWluZGVyCgkJCQkJCS8vIG9mIHRoZSBzb3VyY2UgcmVxdWVzdGVkLCBzbyB3ZSBleGl0IGZyb20gdGhlIGxvb3AKCQkJCQkJYnJlYWs7CgkJCQkJfQoKCQkJCQlpZiAoIGRhdGEgPT09IG51bGwgfHwgZGF0YVsgYVtpXSBdID09PSB1bmRlZmluZWQgKQoJCQkJCXsKCQkJCQkJcmV0dXJuIHVuZGVmaW5lZDsKCQkJCQl9CgkJCQkJZGF0YSA9IGRhdGFbIGFbaV0gXTsKCQkJCX0KCQkJfQoKCQkJcmV0dXJuIGRhdGE7CgkJfTsKCgkJcmV0dXJuIGZ1bmN0aW9uIChkYXRhLCB0eXBlKSB7CgkJCXJldHVybiBmZXRjaERhdGEoIGRhdGEsIHR5cGUsIG1Tb3VyY2UgKTsKCQl9OwoJfQoJZWxzZQoJewoJCS8qIEFycmF5IG9yIGZsYXQgb2JqZWN0IG1hcHBpbmcgKi8KCQlyZXR1cm4gZnVuY3Rpb24gKGRhdGEsIHR5cGUpIHsKCQkJcmV0dXJuIGRhdGFbbVNvdXJjZV07CQoJCX07Cgl9Cn0KCgovKioKICogUmV0dXJuIGEgZnVuY3Rpb24gdGhhdCBjYW4gYmUgdXNlZCB0byBzZXQgZGF0YSBmcm9tIGEgc291cmNlIG9iamVjdCwgdGFraW5nCiAqIGludG8gYWNjb3VudCB0aGUgYWJpbGl0eSB0byB1c2UgbmVzdGVkIG9iamVjdHMgYXMgYSBzb3VyY2UKICogIEBwYXJhbSB7c3RyaW5nfGludHxmdW5jdGlvbn0gbVNvdXJjZSBUaGUgZGF0YSBzb3VyY2UgZm9yIHRoZSBvYmplY3QKICogIEByZXR1cm5zIHtmdW5jdGlvbn0gRGF0YSBzZXQgZnVuY3Rpb24KICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQogKi8KZnVuY3Rpb24gX2ZuU2V0T2JqZWN0RGF0YUZuKCBtU291cmNlICkKewoJaWYgKCBtU291cmNlID09PSBudWxsICkKCXsKCQkvKiBOb3RoaW5nIHRvIGRvIHdoZW4gdGhlIGRhdGEgc291cmNlIGlzIG51bGwgKi8KCQlyZXR1cm4gZnVuY3Rpb24gKGRhdGEsIHZhbCkge307Cgl9CgllbHNlIGlmICggdHlwZW9mIG1Tb3VyY2UgPT09ICdmdW5jdGlvbicgKQoJewoJCXJldHVybiBmdW5jdGlvbiAoZGF0YSwgdmFsKSB7CgkJCW1Tb3VyY2UoIGRhdGEsICdzZXQnLCB2YWwgKTsKCQl9OwoJfQoJZWxzZSBpZiAoIHR5cGVvZiBtU291cmNlID09PSAnc3RyaW5nJyAmJiAobVNvdXJjZS5pbmRleE9mKCcuJykgIT09IC0xIHx8IG1Tb3VyY2UuaW5kZXhPZignWycpICE9PSAtMSkgKQoJewoJCS8qIExpa2UgdGhlIGdldCwgd2UgbmVlZCB0byBnZXQgZGF0YSBmcm9tIGEgbmVzdGVkIG9iamVjdCAqLwoJCXZhciBzZXREYXRhID0gZnVuY3Rpb24gKGRhdGEsIHZhbCwgc3JjKSB7CgkJCXZhciBhID0gc3JjLnNwbGl0KCcuJyksIGI7CgkJCXZhciBhcnJheU5vdGF0aW9uLCBvLCBpbm5lclNyYzsKCgkJCWZvciAoIHZhciBpPTAsIGlMZW49YS5sZW5ndGgtMSA7IGk8aUxlbiA7IGkrKyApCgkJCXsKCQkJCS8vIENoZWNrIGlmIHdlIGFyZSBkZWFsaW5nIHdpdGggYW4gYXJyYXkgbm90YXRpb24gcmVxdWVzdAoJCQkJYXJyYXlOb3RhdGlvbiA9IGFbaV0ubWF0Y2goX19yZUFycmF5KTsKCgkJCQlpZiAoIGFycmF5Tm90YXRpb24gKQoJCQkJewoJCQkJCWFbaV0gPSBhW2ldLnJlcGxhY2UoX19yZUFycmF5LCAnJyk7CgkJCQkJZGF0YVsgYVtpXSBdID0gW107CgkJCQkJCgkJCQkJLy8gR2V0IHRoZSByZW1haW5kZXIgb2YgdGhlIG5lc3RlZCBvYmplY3QgdG8gc2V0IHNvIHdlIGNhbiByZWN1cnNlCgkJCQkJYiA9IGEuc2xpY2UoKTsKCQkJCQliLnNwbGljZSggMCwgaSsxICk7CgkJCQkJaW5uZXJTcmMgPSBiLmpvaW4oJy4nKTsKCgkJCQkJLy8gVHJhdmVyc2UgZWFjaCBlbnRyeSBpbiB0aGUgYXJyYXkgc2V0dGluZyB0aGUgcHJvcGVydGllcyByZXF1ZXN0ZWQKCQkJCQlmb3IgKCB2YXIgaj0wLCBqTGVuPXZhbC5sZW5ndGggOyBqPGpMZW4gOyBqKysgKQoJCQkJCXsKCQkJCQkJbyA9IHt9OwoJCQkJCQlzZXREYXRhKCBvLCB2YWxbal0sIGlubmVyU3JjICk7CgkJCQkJCWRhdGFbIGFbaV0gXS5wdXNoKCBvICk7CgkJCQkJfQoKCQkJCQkvLyBUaGUgaW5uZXIgY2FsbCB0byBzZXREYXRhIGhhcyBhbHJlYWR5IHRyYXZlcnNlZCB0aHJvdWdoIHRoZSByZW1haW5kZXIKCQkJCQkvLyBvZiB0aGUgc291cmNlIGFuZCBoYXMgc2V0IHRoZSBkYXRhLCB0aHVzIHdlIGNhbiBleGl0IGhlcmUKCQkJCQlyZXR1cm47CgkJCQl9CgoJCQkJLy8gSWYgdGhlIG5lc3RlZCBvYmplY3QgZG9lc24ndCBjdXJyZW50bHkgZXhpc3QgLSBzaW5jZSB3ZSBhcmUKCQkJCS8vIHRyeWluZyB0byBzZXQgdGhlIHZhbHVlIC0gY3JlYXRlIGl0CgkJCQlpZiAoIGRhdGFbIGFbaV0gXSA9PT0gbnVsbCB8fCBkYXRhWyBhW2ldIF0gPT09IHVuZGVmaW5lZCApCgkJCQl7CgkJCQkJZGF0YVsgYVtpXSBdID0ge307CgkJCQl9CgkJCQlkYXRhID0gZGF0YVsgYVtpXSBdOwoJCQl9CgoJCQkvLyBJZiBhcnJheSBub3RhdGlvbiBpcyB1c2VkLCB3ZSBqdXN0IHdhbnQgdG8gc3RyaXAgaXQgYW5kIHVzZSB0aGUgcHJvcGVydHkgbmFtZQoJCQkvLyBhbmQgYXNzaWduIHRoZSB2YWx1ZS4gSWYgaXQgaXNuJ3QgdXNlZCwgdGhlbiB3ZSBnZXQgdGhlIHJlc3VsdCB3ZSB3YW50IGFueXdheQoJCQlkYXRhWyBhW2EubGVuZ3RoLTFdLnJlcGxhY2UoX19yZUFycmF5LCAnJykgXSA9IHZhbDsKCQl9OwoKCQlyZXR1cm4gZnVuY3Rpb24gKGRhdGEsIHZhbCkgewoJCQlyZXR1cm4gc2V0RGF0YSggZGF0YSwgdmFsLCBtU291cmNlICk7CgkJfTsKCX0KCWVsc2UKCXsKCQkvKiBBcnJheSBvciBmbGF0IG9iamVjdCBtYXBwaW5nICovCgkJcmV0dXJuIGZ1bmN0aW9uIChkYXRhLCB2YWwpIHsKCQkJZGF0YVttU291cmNlXSA9IHZhbDsJCgkJfTsKCX0KfQoKCi8qKgogKiBSZXR1cm4gYW4gYXJyYXkgd2l0aCB0aGUgZnVsbCB0YWJsZSBkYXRhCiAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CiAqICBAcmV0dXJucyBhcnJheSB7YXJyYXl9IGFEYXRhIE1hc3RlciBkYXRhIGFycmF5CiAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKICovCmZ1bmN0aW9uIF9mbkdldERhdGFNYXN0ZXIgKCBvU2V0dGluZ3MgKQp7Cgl2YXIgYURhdGEgPSBbXTsKCXZhciBpTGVuID0gb1NldHRpbmdzLmFvRGF0YS5sZW5ndGg7Cglmb3IgKCB2YXIgaT0wIDsgaTxpTGVuOyBpKysgKQoJewoJCWFEYXRhLnB1c2goIG9TZXR0aW5ncy5hb0RhdGFbaV0uX2FEYXRhICk7Cgl9CglyZXR1cm4gYURhdGE7Cn0KCgovKioKICogTnVrZSB0aGUgdGFibGUKICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQogKi8KZnVuY3Rpb24gX2ZuQ2xlYXJUYWJsZSggb1NldHRpbmdzICkKewoJb1NldHRpbmdzLmFvRGF0YS5zcGxpY2UoIDAsIG9TZXR0aW5ncy5hb0RhdGEubGVuZ3RoICk7CglvU2V0dGluZ3MuYWlEaXNwbGF5TWFzdGVyLnNwbGljZSggMCwgb1NldHRpbmdzLmFpRGlzcGxheU1hc3Rlci5sZW5ndGggKTsKCW9TZXR0aW5ncy5haURpc3BsYXkuc3BsaWNlKCAwLCBvU2V0dGluZ3MuYWlEaXNwbGF5Lmxlbmd0aCApOwoJX2ZuQ2FsY3VsYXRlRW5kKCBvU2V0dGluZ3MgKTsKfQoKCiAvKioKICogVGFrZSBhbiBhcnJheSBvZiBpbnRlZ2VycyAoaW5kZXggYXJyYXkpIGFuZCByZW1vdmUgYSB0YXJnZXQgaW50ZWdlciAodmFsdWUgLSBub3QgCiAqIHRoZSBrZXkhKQogKiAgQHBhcmFtIHthcnJheX0gYSBJbmRleCBhcnJheSB0byB0YXJnZXQKICogIEBwYXJhbSB7aW50fSBpVGFyZ2V0IHZhbHVlIHRvIGZpbmQKICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQogKi8KZnVuY3Rpb24gX2ZuRGVsZXRlSW5kZXgoIGEsIGlUYXJnZXQgKQp7Cgl2YXIgaVRhcmdldEluZGV4ID0gLTE7CgkKCWZvciAoIHZhciBpPTAsIGlMZW49YS5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJewoJCWlmICggYVtpXSA9PSBpVGFyZ2V0ICkKCQl7CgkJCWlUYXJnZXRJbmRleCA9IGk7CgkJfQoJCWVsc2UgaWYgKCBhW2ldID4gaVRhcmdldCApCgkJewoJCQlhW2ldLS07CgkJfQoJfQoJCglpZiAoIGlUYXJnZXRJbmRleCAhPSAtMSApCgl7CgkJYS5zcGxpY2UoIGlUYXJnZXRJbmRleCwgMSApOwoJfQp9CgoKIC8qKgogKiBDYWxsIHRoZSBkZXZlbG9wZXIgZGVmaW5lZCBmblJlbmRlciBmdW5jdGlvbiBmb3IgYSBnaXZlbiBjZWxsIChyb3cvY29sdW1uKSB3aXRoCiAqIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXJzIGFuZCByZXR1cm4gdGhlIHJlc3VsdC4KICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKICogIEBwYXJhbSB7aW50fSBpUm93IGFvRGF0YSBpbmRleCBmb3IgdGhlIHJvdwogKiAgQHBhcmFtIHtpbnR9IGlDb2wgYW9Db2x1bW5zIGluZGV4IGZvciB0aGUgY29sdW1uCiAqICBAcmV0dXJucyB7Kn0gUmV0dXJuIG9mIHRoZSBkZXZlbG9wZXIncyBmblJlbmRlciBmdW5jdGlvbgogKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCiAqLwpmdW5jdGlvbiBfZm5SZW5kZXIoIG9TZXR0aW5ncywgaVJvdywgaUNvbCApCnsKCXZhciBvQ29sID0gb1NldHRpbmdzLmFvQ29sdW1uc1tpQ29sXTsKCglyZXR1cm4gb0NvbC5mblJlbmRlciggewoJCSJpRGF0YVJvdyI6ICAgIGlSb3csCgkJImlEYXRhQ29sdW1uIjogaUNvbCwKCQkib1NldHRpbmdzIjogICBvU2V0dGluZ3MsCgkJImFEYXRhIjogICAgICAgb1NldHRpbmdzLmFvRGF0YVtpUm93XS5fYURhdGEsCgkJIm1EYXRhUHJvcCI6ICAgb0NvbC5tRGF0YQoJfSwgX2ZuR2V0Q2VsbERhdGEob1NldHRpbmdzLCBpUm93LCBpQ29sLCAnZGlzcGxheScpICk7Cn0K]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/core/core.draw.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ci8qKgogKiBDcmVhdGUgYSBuZXcgVFIgZWxlbWVudCAoYW5kIGl0J3MgVEQgY2hpbGRyZW4pIGZvciBhIHJvdwogKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAogKiAgQHBhcmFtIHtpbnR9IGlSb3cgUm93IHRvIGNvbnNpZGVyCiAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKICovCmZ1bmN0aW9uIF9mbkNyZWF0ZVRyICggb1NldHRpbmdzLCBpUm93ICkKewoJdmFyIG9EYXRhID0gb1NldHRpbmdzLmFvRGF0YVtpUm93XTsKCXZhciBuVGQ7CgoJaWYgKCBvRGF0YS5uVHIgPT09IG51bGwgKQoJewoJCW9EYXRhLm5UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgoJCS8qIFVzZSBhIHByaXZhdGUgcHJvcGVydHkgb24gdGhlIG5vZGUgdG8gYWxsb3cgcmVzZXJ2ZSBtYXBwaW5nIGZyb20gdGhlIG5vZGUKCQkgKiB0byB0aGUgYW9EYXRhIGFycmF5IGZvciBmYXN0IGxvb2sgdXAKCQkgKi8KCQlvRGF0YS5uVHIuX0RUX1Jvd0luZGV4ID0gaVJvdzsKCgkJLyogU3BlY2lhbCBwYXJhbWV0ZXJzIGNhbiBiZSBnaXZlbiBieSB0aGUgZGF0YSBzb3VyY2UgdG8gYmUgdXNlZCBvbiB0aGUgcm93ICovCgkJaWYgKCBvRGF0YS5fYURhdGEuRFRfUm93SWQgKQoJCXsKCQkJb0RhdGEublRyLmlkID0gb0RhdGEuX2FEYXRhLkRUX1Jvd0lkOwoJCX0KCgkJaWYgKCBvRGF0YS5fYURhdGEuRFRfUm93Q2xhc3MgKQoJCXsKCQkJJChvRGF0YS5uVHIpLmFkZENsYXNzKCBvRGF0YS5fYURhdGEuRFRfUm93Q2xhc3MgKTsKCQl9CgoJCS8qIFByb2Nlc3MgZWFjaCBjb2x1bW4gKi8KCQlmb3IgKCB2YXIgaT0wLCBpTGVuPW9TZXR0aW5ncy5hb0NvbHVtbnMubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQl7CgkJCXZhciBvQ29sID0gb1NldHRpbmdzLmFvQ29sdW1uc1tpXTsKCQkJblRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggb0NvbC5zQ2VsbFR5cGUgKTsKCgkJCS8qIFJlbmRlciBpZiBuZWVkZWQgLSBpZiBiVXNlUmVuZGVyZWQgaXMgdHJ1ZSB0aGVuIHdlIGFscmVhZHkgaGF2ZSB0aGUgcmVuZGVyZWQKCQkJICogdmFsdWUgaW4gdGhlIGRhdGEgc291cmNlIC0gc28gY2FuIGp1c3QgdXNlIHRoYXQKCQkJICovCgkJCW5UZC5pbm5lckhUTUwgPSAodHlwZW9mIG9Db2wuZm5SZW5kZXIgPT09ICdmdW5jdGlvbicgJiYgKCFvQ29sLmJVc2VSZW5kZXJlZCB8fCBvQ29sLm1EYXRhID09PSBudWxsKSkgPwoJCQkJX2ZuUmVuZGVyKCBvU2V0dGluZ3MsIGlSb3csIGkgKSA6CgkJCQlfZm5HZXRDZWxsRGF0YSggb1NldHRpbmdzLCBpUm93LCBpLCAnZGlzcGxheScgKTsKCQkKCQkJLyogQWRkIHVzZXIgZGVmaW5lZCBjbGFzcyAqLwoJCQlpZiAoIG9Db2wuc0NsYXNzICE9PSBudWxsICkKCQkJewoJCQkJblRkLmNsYXNzTmFtZSA9IG9Db2wuc0NsYXNzOwoJCQl9CgkJCQoJCQlpZiAoIG9Db2wuYlZpc2libGUgKQoJCQl7CgkJCQlvRGF0YS5uVHIuYXBwZW5kQ2hpbGQoIG5UZCApOwoJCQkJb0RhdGEuX2FuSGlkZGVuW2ldID0gbnVsbDsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCW9EYXRhLl9hbkhpZGRlbltpXSA9IG5UZDsKCQkJfQoKCQkJaWYgKCBvQ29sLmZuQ3JlYXRlZENlbGwgKQoJCQl7CgkJCQlvQ29sLmZuQ3JlYXRlZENlbGwuY2FsbCggb1NldHRpbmdzLm9JbnN0YW5jZSwKCQkJCQluVGQsIF9mbkdldENlbGxEYXRhKCBvU2V0dGluZ3MsIGlSb3csIGksICdkaXNwbGF5JyApLCBvRGF0YS5fYURhdGEsIGlSb3csIGkKCQkJCSk7CgkJCX0KCQl9CgoJCV9mbkNhbGxiYWNrRmlyZSggb1NldHRpbmdzLCAnYW9Sb3dDcmVhdGVkQ2FsbGJhY2snLCBudWxsLCBbb0RhdGEublRyLCBvRGF0YS5fYURhdGEsIGlSb3ddICk7Cgl9Cn0KCgovKioKICogQ3JlYXRlIHRoZSBIVE1MIGhlYWRlciBmb3IgdGhlIHRhYmxlCiAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CiAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKICovCmZ1bmN0aW9uIF9mbkJ1aWxkSGVhZCggb1NldHRpbmdzICkKewoJdmFyIGksIG5UaCwgaUxlbiwgaiwgakxlbjsKCXZhciBpVGhzID0gb1NldHRpbmdzLm5USGVhZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndGgnKS5sZW5ndGg7Cgl2YXIgaUNvcnJlY3RvciA9IDA7Cgl2YXIganFDaGlsZHJlbjsKCQoJLyogSWYgdGhlcmUgaXMgYSBoZWFkZXIgaW4gcGxhY2UgLSB0aGVuIHVzZSBpdCAtIG90aGVyd2lzZSBpdCdzIGdvaW5nIHRvIGdldCBudWtlZC4uLiAqLwoJaWYgKCBpVGhzICE9PSAwICkKCXsKCQkvKiBXZSd2ZSBnb3QgYSB0aGVhZCBmcm9tIHRoZSBET00sIHNvIHJlbW92ZSBoaWRkZW4gY29sdW1ucyBhbmQgYXBwbHkgd2lkdGggdG8gdmlzIGNvbHMgKi8KCQlmb3IgKCBpPTAsIGlMZW49b1NldHRpbmdzLmFvQ29sdW1ucy5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCXsKCQkJblRoID0gb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5uVGg7CgkJCW5UaC5zZXRBdHRyaWJ1dGUoJ3JvbGUnLCAnY29sdW1uaGVhZGVyJyk7CgkJCWlmICggb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5iU29ydGFibGUgKQoJCQl7CgkJCQluVGguc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsIG9TZXR0aW5ncy5pVGFiSW5kZXgpOwoJCQkJblRoLnNldEF0dHJpYnV0ZSgnYXJpYS1jb250cm9scycsIG9TZXR0aW5ncy5zVGFibGVJZCk7CgkJCX0KCgkJCWlmICggb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5zQ2xhc3MgIT09IG51bGwgKQoJCQl7CgkJCQkkKG5UaCkuYWRkQ2xhc3MoIG9TZXR0aW5ncy5hb0NvbHVtbnNbaV0uc0NsYXNzICk7CgkJCX0KCQkJCgkJCS8qIFNldCB0aGUgdGl0bGUgb2YgdGhlIGNvbHVtbiBpZiBpdCBpcyB1c2VyIGRlZmluZWQgKG5vdCB3aGF0IHdhcyBhdXRvIGRldGVjdGVkKSAqLwoJCQlpZiAoIG9TZXR0aW5ncy5hb0NvbHVtbnNbaV0uc1RpdGxlICE9IG5UaC5pbm5lckhUTUwgKQoJCQl7CgkJCQluVGguaW5uZXJIVE1MID0gb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5zVGl0bGU7CgkJCX0KCQl9Cgl9CgllbHNlCgl7CgkJLyogV2UgZG9uJ3QgaGF2ZSBhIGhlYWRlciBpbiB0aGUgRE9NIC0gc28gd2UgYXJlIGdvaW5nIHRvIGhhdmUgdG8gY3JlYXRlIG9uZSAqLwoJCXZhciBuVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCAidHIiICk7CgkJCgkJZm9yICggaT0wLCBpTGVuPW9TZXR0aW5ncy5hb0NvbHVtbnMubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQl7CgkJCW5UaCA9IG9TZXR0aW5ncy5hb0NvbHVtbnNbaV0ublRoOwoJCQluVGguaW5uZXJIVE1MID0gb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5zVGl0bGU7CgkJCW5UaC5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJzAnKTsKCQkJCgkJCWlmICggb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5zQ2xhc3MgIT09IG51bGwgKQoJCQl7CgkJCQkkKG5UaCkuYWRkQ2xhc3MoIG9TZXR0aW5ncy5hb0NvbHVtbnNbaV0uc0NsYXNzICk7CgkJCX0KCQkJCgkJCW5Uci5hcHBlbmRDaGlsZCggblRoICk7CgkJfQoJCSQob1NldHRpbmdzLm5USGVhZCkuaHRtbCggJycgKVswXS5hcHBlbmRDaGlsZCggblRyICk7CgkJX2ZuRGV0ZWN0SGVhZGVyKCBvU2V0dGluZ3MuYW9IZWFkZXIsIG9TZXR0aW5ncy5uVEhlYWQgKTsKCX0KCQoJLyogQVJJQSByb2xlIGZvciB0aGUgcm93cyAqLwkKCSQob1NldHRpbmdzLm5USGVhZCkuY2hpbGRyZW4oJ3RyJykuYXR0cigncm9sZScsICdyb3cnKTsKCQoJLyogQWRkIHRoZSBleHRyYSBtYXJrdXAgbmVlZGVkIGJ5IGpRdWVyeSBVSSdzIHRoZW1lcyAqLwoJaWYgKCBvU2V0dGluZ3MuYkpVSSApCgl7CgkJZm9yICggaT0wLCBpTGVuPW9TZXR0aW5ncy5hb0NvbHVtbnMubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQl7CgkJCW5UaCA9IG9TZXR0aW5ncy5hb0NvbHVtbnNbaV0ublRoOwoJCQkKCQkJdmFyIG5EaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKCQkJbkRpdi5jbGFzc05hbWUgPSBvU2V0dGluZ3Mub0NsYXNzZXMuc1NvcnRKVUlXcmFwcGVyOwoJCQkkKG5UaCkuY29udGVudHMoKS5hcHBlbmRUbyhuRGl2KTsKCQkJCgkJCXZhciBuU3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKCQkJblNwYW4uY2xhc3NOYW1lID0gb1NldHRpbmdzLm9DbGFzc2VzLnNTb3J0SWNvbjsKCQkJbkRpdi5hcHBlbmRDaGlsZCggblNwYW4gKTsKCQkJblRoLmFwcGVuZENoaWxkKCBuRGl2ICk7CgkJfQoJfQoJCglpZiAoIG9TZXR0aW5ncy5vRmVhdHVyZXMuYlNvcnQgKQoJewoJCWZvciAoIGk9MCA7IGk8b1NldHRpbmdzLmFvQ29sdW1ucy5sZW5ndGggOyBpKysgKQoJCXsKCQkJaWYgKCBvU2V0dGluZ3MuYW9Db2x1bW5zW2ldLmJTb3J0YWJsZSAhPT0gZmFsc2UgKQoJCQl7CgkJCQlfZm5Tb3J0QXR0YWNoTGlzdGVuZXIoIG9TZXR0aW5ncywgb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5uVGgsIGkgKTsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCSQob1NldHRpbmdzLmFvQ29sdW1uc1tpXS5uVGgpLmFkZENsYXNzKCBvU2V0dGluZ3Mub0NsYXNzZXMuc1NvcnRhYmxlTm9uZSApOwoJCQl9CgkJfQoJfQoJCgkvKiBEZWFsIHdpdGggdGhlIGZvb3RlciAtIGFkZCBjbGFzc2VzIGlmIHJlcXVpcmVkICovCglpZiAoIG9TZXR0aW5ncy5vQ2xhc3Nlcy5zRm9vdGVyVEggIT09ICIiICkKCXsKCQkkKG9TZXR0aW5ncy5uVEZvb3QpLmNoaWxkcmVuKCd0cicpLmNoaWxkcmVuKCd0aCcpLmFkZENsYXNzKCBvU2V0dGluZ3Mub0NsYXNzZXMuc0Zvb3RlclRIICk7Cgl9CgkKCS8qIENhY2hlIHRoZSBmb290ZXIgZWxlbWVudHMgKi8KCWlmICggb1NldHRpbmdzLm5URm9vdCAhPT0gbnVsbCApCgl7CgkJdmFyIGFuQ2VsbHMgPSBfZm5HZXRVbmlxdWVUaHMoIG9TZXR0aW5ncywgbnVsbCwgb1NldHRpbmdzLmFvRm9vdGVyICk7CgkJZm9yICggaT0wLCBpTGVuPW9TZXR0aW5ncy5hb0NvbHVtbnMubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQl7CgkJCWlmICggYW5DZWxsc1tpXSApCgkJCXsKCQkJCW9TZXR0aW5ncy5hb0NvbHVtbnNbaV0ublRmID0gYW5DZWxsc1tpXTsKCQkJCWlmICggb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5zQ2xhc3MgKQoJCQkJewoJCQkJCSQoYW5DZWxsc1tpXSkuYWRkQ2xhc3MoIG9TZXR0aW5ncy5hb0NvbHVtbnNbaV0uc0NsYXNzICk7CgkJCQl9CgkJCX0KCQl9Cgl9Cn0KCgovKioKICogRHJhdyB0aGUgaGVhZGVyIChvciBmb290ZXIpIGVsZW1lbnQgYmFzZWQgb24gdGhlIGNvbHVtbiB2aXNpYmlsaXR5IHN0YXRlcy4gVGhlCiAqIG1ldGhvZG9sb2d5IGhlcmUgaXMgdG8gdXNlIHRoZSBsYXlvdXQgYXJyYXkgZnJvbSBfZm5EZXRlY3RIZWFkZXIsIG1vZGlmaWVkIGZvcgogKiB0aGUgaW5zdGFudGFuZW91cyBjb2x1bW4gdmlzaWJpbGl0eSwgdG8gY29uc3RydWN0IHRoZSBuZXcgbGF5b3V0LiBUaGUgZ3JpZCBpcwogKiB0cmF2ZXJzZWQgb3ZlciBjZWxsIGF0IGEgdGltZSBpbiBhIHJvd3MgeCBjb2x1bW5zIGdyaWQgZmFzaGlvbiwgYWx0aG91Z2ggZWFjaCAKICogY2VsbCBpbnNlcnQgY2FuIGNvdmVyIG11bHRpcGxlIGVsZW1lbnRzIGluIHRoZSBncmlkIC0gd2hpY2ggaXMgdHJhY2tzIHVzaW5nIHRoZQogKiBhQXBwbGllZCBhcnJheS4gQ2VsbCBpbnNlcnRzIGluIHRoZSBncmlkIHdpbGwgb25seSBvY2N1ciB3aGVyZSB0aGVyZSBpc24ndAogKiBhbHJlYWR5IGEgY2VsbCBpbiB0aGF0IHBvc2l0aW9uLgogKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAogKiAgQHBhcmFtIGFycmF5IHtvYmplY3RzfSBhb1NvdXJjZSBMYXlvdXQgYXJyYXkgZnJvbSBfZm5EZXRlY3RIZWFkZXIKICogIEBwYXJhbSB7Ym9vbGVhbn0gW2JJbmNsdWRlSGlkZGVuPWZhbHNlXSBJZiB0cnVlIHRoZW4gaW5jbHVkZSB0aGUgaGlkZGVuIGNvbHVtbnMgaW4gdGhlIGNhbGMsIAogKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCiAqLwpmdW5jdGlvbiBfZm5EcmF3SGVhZCggb1NldHRpbmdzLCBhb1NvdXJjZSwgYkluY2x1ZGVIaWRkZW4gKQp7Cgl2YXIgaSwgaUxlbiwgaiwgakxlbiwgaywga0xlbiwgbiwgbkxvY2FsVHI7Cgl2YXIgYW9Mb2NhbCA9IFtdOwoJdmFyIGFBcHBsaWVkID0gW107Cgl2YXIgaUNvbHVtbnMgPSBvU2V0dGluZ3MuYW9Db2x1bW5zLmxlbmd0aDsKCXZhciBpUm93c3BhbiwgaUNvbHNwYW47CgoJaWYgKCAgYkluY2x1ZGVIaWRkZW4gPT09IHVuZGVmaW5lZCApCgl7CgkJYkluY2x1ZGVIaWRkZW4gPSBmYWxzZTsKCX0KCgkvKiBNYWtlIGEgY29weSBvZiB0aGUgbWFzdGVyIGxheW91dCBhcnJheSwgYnV0IHdpdGhvdXQgdGhlIHZpc2libGUgY29sdW1ucyBpbiBpdCAqLwoJZm9yICggaT0wLCBpTGVuPWFvU291cmNlLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgl7CgkJYW9Mb2NhbFtpXSA9IGFvU291cmNlW2ldLnNsaWNlKCk7CgkJYW9Mb2NhbFtpXS5uVHIgPSBhb1NvdXJjZVtpXS5uVHI7CgoJCS8qIFJlbW92ZSBhbnkgY29sdW1ucyB3aGljaCBhcmUgY3VycmVudGx5IGhpZGRlbiAqLwoJCWZvciAoIGo9aUNvbHVtbnMtMSA7IGo+PTAgOyBqLS0gKQoJCXsKCQkJaWYgKCAhb1NldHRpbmdzLmFvQ29sdW1uc1tqXS5iVmlzaWJsZSAmJiAhYkluY2x1ZGVIaWRkZW4gKQoJCQl7CgkJCQlhb0xvY2FsW2ldLnNwbGljZSggaiwgMSApOwoJCQl9CgkJfQoKCQkvKiBQcmVwIHRoZSBhcHBsaWVkIGFycmF5IC0gaXQgbmVlZHMgYW4gZWxlbWVudCBmb3IgZWFjaCByb3cgKi8KCQlhQXBwbGllZC5wdXNoKCBbXSApOwoJfQoKCWZvciAoIGk9MCwgaUxlbj1hb0xvY2FsLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgl7CgkJbkxvY2FsVHIgPSBhb0xvY2FsW2ldLm5UcjsKCQkKCQkvKiBBbGwgY2VsbHMgYXJlIGdvaW5nIHRvIGJlIHJlcGxhY2VkLCBzbyBlbXB0eSBvdXQgdGhlIHJvdyAqLwoJCWlmICggbkxvY2FsVHIgKQoJCXsKCQkJd2hpbGUoIChuID0gbkxvY2FsVHIuZmlyc3RDaGlsZCkgKQoJCQl7CgkJCQluTG9jYWxUci5yZW1vdmVDaGlsZCggbiApOwoJCQl9CgkJfQoKCQlmb3IgKCBqPTAsIGpMZW49YW9Mb2NhbFtpXS5sZW5ndGggOyBqPGpMZW4gOyBqKysgKQoJCXsKCQkJaVJvd3NwYW4gPSAxOwoJCQlpQ29sc3BhbiA9IDE7CgoJCQkvKiBDaGVjayB0byBzZWUgaWYgdGhlcmUgaXMgYWxyZWFkeSBhIGNlbGwgKHJvdy9jb2xzcGFuKSBjb3ZlcmluZyBvdXIgdGFyZ2V0CgkJCSAqIGluc2VydCBwb2ludC4gSWYgdGhlcmUgaXMsIHRoZW4gdGhlcmUgaXMgbm90aGluZyB0byBkby4KCQkJICovCgkJCWlmICggYUFwcGxpZWRbaV1bal0gPT09IHVuZGVmaW5lZCApCgkJCXsKCQkJCW5Mb2NhbFRyLmFwcGVuZENoaWxkKCBhb0xvY2FsW2ldW2pdLmNlbGwgKTsKCQkJCWFBcHBsaWVkW2ldW2pdID0gMTsKCgkJCQkvKiBFeHBhbmQgdGhlIGNlbGwgdG8gY292ZXIgYXMgbWFueSByb3dzIGFzIG5lZWRlZCAqLwoJCQkJd2hpbGUgKCBhb0xvY2FsW2kraVJvd3NwYW5dICE9PSB1bmRlZmluZWQgJiYKCQkJCSAgICAgICAgYW9Mb2NhbFtpXVtqXS5jZWxsID09IGFvTG9jYWxbaStpUm93c3Bhbl1bal0uY2VsbCApCgkJCQl7CgkJCQkJYUFwcGxpZWRbaStpUm93c3Bhbl1bal0gPSAxOwoJCQkJCWlSb3dzcGFuKys7CgkJCQl9CgoJCQkJLyogRXhwYW5kIHRoZSBjZWxsIHRvIGNvdmVyIGFzIG1hbnkgY29sdW1ucyBhcyBuZWVkZWQgKi8KCQkJCXdoaWxlICggYW9Mb2NhbFtpXVtqK2lDb2xzcGFuXSAhPT0gdW5kZWZpbmVkICYmCgkJCQkgICAgICAgIGFvTG9jYWxbaV1bal0uY2VsbCA9PSBhb0xvY2FsW2ldW2oraUNvbHNwYW5dLmNlbGwgKQoJCQkJewoJCQkJCS8qIE11c3QgdXBkYXRlIHRoZSBhcHBsaWVkIGFycmF5IG92ZXIgdGhlIHJvd3MgZm9yIHRoZSBjb2x1bW5zICovCgkJCQkJZm9yICggaz0wIDsgazxpUm93c3BhbiA7IGsrKyApCgkJCQkJewoJCQkJCQlhQXBwbGllZFtpK2tdW2oraUNvbHNwYW5dID0gMTsKCQkJCQl9CgkJCQkJaUNvbHNwYW4rKzsKCQkJCX0KCgkJCQkvKiBEbyB0aGUgYWN0dWFsIGV4cGFuc2lvbiBpbiB0aGUgRE9NICovCgkJCQlhb0xvY2FsW2ldW2pdLmNlbGwucm93U3BhbiA9IGlSb3dzcGFuOwoJCQkJYW9Mb2NhbFtpXVtqXS5jZWxsLmNvbFNwYW4gPSBpQ29sc3BhbjsKCQkJfQoJCX0KCX0KfQoKCi8qKgogKiBJbnNlcnQgdGhlIHJlcXVpcmVkIFRSIG5vZGVzIGludG8gdGhlIHRhYmxlIGZvciBkaXNwbGF5CiAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CiAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKICovCmZ1bmN0aW9uIF9mbkRyYXcoIG9TZXR0aW5ncyApCnsKCS8qIFByb3ZpZGUgYSBwcmUtY2FsbGJhY2sgZnVuY3Rpb24gd2hpY2ggY2FuIGJlIHVzZWQgdG8gY2FuY2VsIHRoZSBkcmF3IGlzIGZhbHNlIGlzIHJldHVybmVkICovCgl2YXIgYVByZURyYXcgPSBfZm5DYWxsYmFja0ZpcmUoIG9TZXR0aW5ncywgJ2FvUHJlRHJhd0NhbGxiYWNrJywgJ3ByZURyYXcnLCBbb1NldHRpbmdzXSApOwoJaWYgKCAkLmluQXJyYXkoIGZhbHNlLCBhUHJlRHJhdyApICE9PSAtMSApCgl7CgkJX2ZuUHJvY2Vzc2luZ0Rpc3BsYXkoIG9TZXR0aW5ncywgZmFsc2UgKTsKCQlyZXR1cm47Cgl9CgkKCXZhciBpLCBpTGVuLCBuOwoJdmFyIGFuUm93cyA9IFtdOwoJdmFyIGlSb3dDb3VudCA9IDA7Cgl2YXIgaVN0cmlwZXMgPSBvU2V0dGluZ3MuYXNTdHJpcGVDbGFzc2VzLmxlbmd0aDsKCXZhciBpT3BlblJvd3MgPSBvU2V0dGluZ3MuYW9PcGVuUm93cy5sZW5ndGg7CgkKCW9TZXR0aW5ncy5iRHJhd2luZyA9IHRydWU7CgkKCS8qIENoZWNrIGFuZCBzZWUgaWYgd2UgaGF2ZSBhbiBpbml0aWFsIGRyYXcgcG9zaXRpb24gZnJvbSBzdGF0ZSBzYXZpbmcgKi8KCWlmICggb1NldHRpbmdzLmlJbml0RGlzcGxheVN0YXJ0ICE9PSB1bmRlZmluZWQgJiYgb1NldHRpbmdzLmlJbml0RGlzcGxheVN0YXJ0ICE9IC0xICkKCXsKCQlpZiAoIG9TZXR0aW5ncy5vRmVhdHVyZXMuYlNlcnZlclNpZGUgKQoJCXsKCQkJb1NldHRpbmdzLl9pRGlzcGxheVN0YXJ0ID0gb1NldHRpbmdzLmlJbml0RGlzcGxheVN0YXJ0OwoJCX0KCQllbHNlCgkJewoJCQlvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQgPSAob1NldHRpbmdzLmlJbml0RGlzcGxheVN0YXJ0ID49IG9TZXR0aW5ncy5mblJlY29yZHNEaXNwbGF5KCkpID8KCQkJCTAgOiBvU2V0dGluZ3MuaUluaXREaXNwbGF5U3RhcnQ7CgkJfQoJCW9TZXR0aW5ncy5pSW5pdERpc3BsYXlTdGFydCA9IC0xOwoJCV9mbkNhbGN1bGF0ZUVuZCggb1NldHRpbmdzICk7Cgl9CgkKCS8qIFNlcnZlci1zaWRlIHByb2Nlc3NpbmcgZHJhdyBpbnRlcmNlcHQgKi8KCWlmICggb1NldHRpbmdzLmJEZWZlckxvYWRpbmcgKQoJewoJCW9TZXR0aW5ncy5iRGVmZXJMb2FkaW5nID0gZmFsc2U7CgkJb1NldHRpbmdzLmlEcmF3Kys7Cgl9CgllbHNlIGlmICggIW9TZXR0aW5ncy5vRmVhdHVyZXMuYlNlcnZlclNpZGUgKQoJewoJCW9TZXR0aW5ncy5pRHJhdysrOwoJfQoJZWxzZSBpZiAoICFvU2V0dGluZ3MuYkRlc3Ryb3lpbmcgJiYgIV9mbkFqYXhVcGRhdGUoIG9TZXR0aW5ncyApICkKCXsKCQlyZXR1cm47Cgl9CgkKCWlmICggb1NldHRpbmdzLmFpRGlzcGxheS5sZW5ndGggIT09IDAgKQoJewoJCXZhciBpU3RhcnQgPSBvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQ7CgkJdmFyIGlFbmQgPSBvU2V0dGluZ3MuX2lEaXNwbGF5RW5kOwoJCQoJCWlmICggb1NldHRpbmdzLm9GZWF0dXJlcy5iU2VydmVyU2lkZSApCgkJewoJCQlpU3RhcnQgPSAwOwoJCQlpRW5kID0gb1NldHRpbmdzLmFvRGF0YS5sZW5ndGg7CgkJfQoJCQoJCWZvciAoIHZhciBqPWlTdGFydCA7IGo8aUVuZCA7IGorKyApCgkJewoJCQl2YXIgYW9EYXRhID0gb1NldHRpbmdzLmFvRGF0YVsgb1NldHRpbmdzLmFpRGlzcGxheVtqXSBdOwoJCQlpZiAoIGFvRGF0YS5uVHIgPT09IG51bGwgKQoJCQl7CgkJCQlfZm5DcmVhdGVUciggb1NldHRpbmdzLCBvU2V0dGluZ3MuYWlEaXNwbGF5W2pdICk7CgkJCX0KCgkJCXZhciBuUm93ID0gYW9EYXRhLm5UcjsKCQkJCgkJCS8qIFJlbW92ZSB0aGUgb2xkIHN0cmlwaW5nIGNsYXNzZXMgYW5kIHRoZW4gYWRkIHRoZSBuZXcgb25lICovCgkJCWlmICggaVN0cmlwZXMgIT09IDAgKQoJCQl7CgkJCQl2YXIgc1N0cmlwZSA9IG9TZXR0aW5ncy5hc1N0cmlwZUNsYXNzZXNbIGlSb3dDb3VudCAlIGlTdHJpcGVzIF07CgkJCQlpZiAoIGFvRGF0YS5fc1Jvd1N0cmlwZSAhPSBzU3RyaXBlICkKCQkJCXsKCQkJCQkkKG5Sb3cpLnJlbW92ZUNsYXNzKCBhb0RhdGEuX3NSb3dTdHJpcGUgKS5hZGRDbGFzcyggc1N0cmlwZSApOwoJCQkJCWFvRGF0YS5fc1Jvd1N0cmlwZSA9IHNTdHJpcGU7CgkJCQl9CgkJCX0KCQkJCgkJCS8qIFJvdyBjYWxsYmFjayBmdW5jdGlvbnMgLSBtaWdodCB3YW50IHRvIG1hbmlwdWxhdGUgdGhlIHJvdyAqLwoJCQlfZm5DYWxsYmFja0ZpcmUoIG9TZXR0aW5ncywgJ2FvUm93Q2FsbGJhY2snLCBudWxsLCAKCQkJCVtuUm93LCBvU2V0dGluZ3MuYW9EYXRhWyBvU2V0dGluZ3MuYWlEaXNwbGF5W2pdIF0uX2FEYXRhLCBpUm93Q291bnQsIGpdICk7CgkJCQoJCQlhblJvd3MucHVzaCggblJvdyApOwoJCQlpUm93Q291bnQrKzsKCQkJCgkJCS8qIElmIHRoZXJlIGlzIGFuIG9wZW4gcm93IC0gYW5kIGl0IGlzIGF0dGFjaGVkIHRvIHRoaXMgcGFyZW50IC0gYXR0YWNoIGl0IG9uIHJlZHJhdyAqLwoJCQlpZiAoIGlPcGVuUm93cyAhPT0gMCApCgkJCXsKCQkJCWZvciAoIHZhciBrPTAgOyBrPGlPcGVuUm93cyA7IGsrKyApCgkJCQl7CgkJCQkJaWYgKCBuUm93ID09IG9TZXR0aW5ncy5hb09wZW5Sb3dzW2tdLm5QYXJlbnQgKQoJCQkJCXsKCQkJCQkJYW5Sb3dzLnB1c2goIG9TZXR0aW5ncy5hb09wZW5Sb3dzW2tdLm5UciApOwoJCQkJCQlicmVhazsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9Cgl9CgllbHNlCgl7CgkJLyogVGFibGUgaXMgZW1wdHkgLSBjcmVhdGUgYSByb3cgd2l0aCBhbiBlbXB0eSBtZXNzYWdlIGluIGl0ICovCgkJYW5Sb3dzWyAwIF0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCAndHInICk7CgkJCgkJaWYgKCBvU2V0dGluZ3MuYXNTdHJpcGVDbGFzc2VzWzBdICkKCQl7CgkJCWFuUm93c1sgMCBdLmNsYXNzTmFtZSA9IG9TZXR0aW5ncy5hc1N0cmlwZUNsYXNzZXNbMF07CgkJfQoKCQl2YXIgb0xhbmcgPSBvU2V0dGluZ3Mub0xhbmd1YWdlOwoJCXZhciBzWmVybyA9IG9MYW5nLnNaZXJvUmVjb3JkczsKCQlpZiAoIG9TZXR0aW5ncy5pRHJhdyA9PSAxICYmIG9TZXR0aW5ncy5zQWpheFNvdXJjZSAhPT0gbnVsbCAmJiAhb1NldHRpbmdzLm9GZWF0dXJlcy5iU2VydmVyU2lkZSApCgkJewoJCQlzWmVybyA9IG9MYW5nLnNMb2FkaW5nUmVjb3JkczsKCQl9CgkJZWxzZSBpZiAoIG9MYW5nLnNFbXB0eVRhYmxlICYmIG9TZXR0aW5ncy5mblJlY29yZHNUb3RhbCgpID09PSAwICkKCQl7CgkJCXNaZXJvID0gb0xhbmcuc0VtcHR5VGFibGU7CgkJfQoKCQl2YXIgblRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggJ3RkJyApOwoJCW5UZC5zZXRBdHRyaWJ1dGUoICd2YWxpZ24nLCAidG9wIiApOwoJCW5UZC5jb2xTcGFuID0gX2ZuVmlzYmxlQ29sdW1ucyggb1NldHRpbmdzICk7CgkJblRkLmNsYXNzTmFtZSA9IG9TZXR0aW5ncy5vQ2xhc3Nlcy5zUm93RW1wdHk7CgkJblRkLmlubmVySFRNTCA9IF9mbkluZm9NYWNyb3MoIG9TZXR0aW5ncywgc1plcm8gKTsKCQkKCQlhblJvd3NbIGlSb3dDb3VudCBdLmFwcGVuZENoaWxkKCBuVGQgKTsKCX0KCQoJLyogSGVhZGVyIGFuZCBmb290ZXIgY2FsbGJhY2tzICovCglfZm5DYWxsYmFja0ZpcmUoIG9TZXR0aW5ncywgJ2FvSGVhZGVyQ2FsbGJhY2snLCAnaGVhZGVyJywgWyAkKG9TZXR0aW5ncy5uVEhlYWQpLmNoaWxkcmVuKCd0cicpWzBdLCAKCQlfZm5HZXREYXRhTWFzdGVyKCBvU2V0dGluZ3MgKSwgb1NldHRpbmdzLl9pRGlzcGxheVN0YXJ0LCBvU2V0dGluZ3MuZm5EaXNwbGF5RW5kKCksIG9TZXR0aW5ncy5haURpc3BsYXkgXSApOwoJCglfZm5DYWxsYmFja0ZpcmUoIG9TZXR0aW5ncywgJ2FvRm9vdGVyQ2FsbGJhY2snLCAnZm9vdGVyJywgWyAkKG9TZXR0aW5ncy5uVEZvb3QpLmNoaWxkcmVuKCd0cicpWzBdLCAKCQlfZm5HZXREYXRhTWFzdGVyKCBvU2V0dGluZ3MgKSwgb1NldHRpbmdzLl9pRGlzcGxheVN0YXJ0LCBvU2V0dGluZ3MuZm5EaXNwbGF5RW5kKCksIG9TZXR0aW5ncy5haURpc3BsYXkgXSApOwoJCgkvKiAKCSAqIE5lZWQgdG8gcmVtb3ZlIGFueSBvbGQgcm93IGZyb20gdGhlIGRpc3BsYXkgLSBub3RlIHdlIGNhbid0IGp1c3QgZW1wdHkgdGhlIHRib2R5IHVzaW5nCgkgKiAkKCkuaHRtbCgnJykgc2luY2UgdGhpcyB3aWxsIHVuYmluZCB0aGUgalF1ZXJ5IGV2ZW50IGhhbmRsZXJzIChldmVuIGFsdGhvdWdoIHRoZSBub2RlIAoJICogc3RpbGwgZXhpc3RzISkgLSBlcXVhbGx5IHdlIGNhbid0IHVzZSBpbm5lckhUTUwsIHNpbmNlIElFIHRocm93cyBhbiBleGNlcHRpb24uCgkgKi8KCXZhcgoJCW5BZGRGcmFnID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLAoJCW5SZW1vdmVGcmFnID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLAoJCW5Cb2R5UGFyLCBuVHJzOwoJCglpZiAoIG9TZXR0aW5ncy5uVEJvZHkgKQoJewoJCW5Cb2R5UGFyID0gb1NldHRpbmdzLm5UQm9keS5wYXJlbnROb2RlOwoJCW5SZW1vdmVGcmFnLmFwcGVuZENoaWxkKCBvU2V0dGluZ3MublRCb2R5ICk7CgkJCgkJLyogV2hlbiBkb2luZyBpbmZpbml0ZSBzY3JvbGxpbmcsIG9ubHkgcmVtb3ZlIGNoaWxkIHJvd3Mgd2hlbiBzb3J0aW5nLCBmaWx0ZXJpbmcgb3Igc3RhcnQKCQkgKiB1cC4gV2hlbiBub3QgaW5maW5pdGUgc2Nyb2xsLCBhbHdheXMgZG8gaXQuCgkJICovCgkJaWYgKCAhb1NldHRpbmdzLm9TY3JvbGwuYkluZmluaXRlIHx8ICFvU2V0dGluZ3MuX2JJbml0Q29tcGxldGUgfHwKCQkgCW9TZXR0aW5ncy5iU29ydGVkIHx8IG9TZXR0aW5ncy5iRmlsdGVyZWQgKQoJCXsKCQkJd2hpbGUoIChuID0gb1NldHRpbmdzLm5UQm9keS5maXJzdENoaWxkKSApCgkJCXsKCQkJCW9TZXR0aW5ncy5uVEJvZHkucmVtb3ZlQ2hpbGQoIG4gKTsKCQkJfQoJCX0KCQkKCQkvKiBQdXQgdGhlIGRyYXcgdGFibGUgaW50byB0aGUgZG9tICovCgkJZm9yICggaT0wLCBpTGVuPWFuUm93cy5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCXsKCQkJbkFkZEZyYWcuYXBwZW5kQ2hpbGQoIGFuUm93c1tpXSApOwoJCX0KCQkKCQlvU2V0dGluZ3MublRCb2R5LmFwcGVuZENoaWxkKCBuQWRkRnJhZyApOwoJCWlmICggbkJvZHlQYXIgIT09IG51bGwgKQoJCXsKCQkJbkJvZHlQYXIuYXBwZW5kQ2hpbGQoIG9TZXR0aW5ncy5uVEJvZHkgKTsKCQl9Cgl9CgkKCS8qIENhbGwgYWxsIHJlcXVpcmVkIGNhbGxiYWNrIGZ1bmN0aW9ucyBmb3IgdGhlIGVuZCBvZiBhIGRyYXcgKi8KCV9mbkNhbGxiYWNrRmlyZSggb1NldHRpbmdzLCAnYW9EcmF3Q2FsbGJhY2snLCAnZHJhdycsIFtvU2V0dGluZ3NdICk7CgkKCS8qIERyYXcgaXMgY29tcGxldGUsIHNvcnRpbmcgYW5kIGZpbHRlcmluZyBtdXN0IGJlIGFzIHdlbGwgKi8KCW9TZXR0aW5ncy5iU29ydGVkID0gZmFsc2U7CglvU2V0dGluZ3MuYkZpbHRlcmVkID0gZmFsc2U7CglvU2V0dGluZ3MuYkRyYXdpbmcgPSBmYWxzZTsKCQoJaWYgKCBvU2V0dGluZ3Mub0ZlYXR1cmVzLmJTZXJ2ZXJTaWRlICkKCXsKCQlfZm5Qcm9jZXNzaW5nRGlzcGxheSggb1NldHRpbmdzLCBmYWxzZSApOwoJCWlmICggIW9TZXR0aW5ncy5fYkluaXRDb21wbGV0ZSApCgkJewoJCQlfZm5Jbml0Q29tcGxldGUoIG9TZXR0aW5ncyApOwoJCX0KCX0KfQoKCi8qKgogKiBSZWRyYXcgdGhlIHRhYmxlIC0gdGFraW5nIGFjY291bnQgb2YgdGhlIHZhcmlvdXMgZmVhdHVyZXMgd2hpY2ggYXJlIGVuYWJsZWQKICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQogKi8KZnVuY3Rpb24gX2ZuUmVEcmF3KCBvU2V0dGluZ3MgKQp7CglpZiAoIG9TZXR0aW5ncy5vRmVhdHVyZXMuYlNvcnQgKQoJewoJCS8qIFNvcnRpbmcgd2lsbCByZWZpbHRlciBhbmQgZHJhdyBmb3IgdXMgKi8KCQlfZm5Tb3J0KCBvU2V0dGluZ3MsIG9TZXR0aW5ncy5vUHJldmlvdXNTZWFyY2ggKTsKCX0KCWVsc2UgaWYgKCBvU2V0dGluZ3Mub0ZlYXR1cmVzLmJGaWx0ZXIgKQoJewoJCS8qIEZpbHRlcmluZyB3aWxsIHJlZHJhdyBmb3IgdXMgKi8KCQlfZm5GaWx0ZXJDb21wbGV0ZSggb1NldHRpbmdzLCBvU2V0dGluZ3Mub1ByZXZpb3VzU2VhcmNoICk7Cgl9CgllbHNlCgl7CgkJX2ZuQ2FsY3VsYXRlRW5kKCBvU2V0dGluZ3MgKTsKCQlfZm5EcmF3KCBvU2V0dGluZ3MgKTsKCX0KfQoKCi8qKgogKiBBZGQgdGhlIG9wdGlvbnMgdG8gdGhlIHBhZ2UgSFRNTCBmb3IgdGhlIHRhYmxlCiAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CiAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKICovCmZ1bmN0aW9uIF9mbkFkZE9wdGlvbnNIdG1sICggb1NldHRpbmdzICkKewoJLyoKCSAqIENyZWF0ZSBhIHRlbXBvcmFyeSwgZW1wdHksIGRpdiB3aGljaCB3ZSBjYW4gbGF0ZXIgb24gcmVwbGFjZSB3aXRoIHdoYXQgd2UgaGF2ZSBnZW5lcmF0ZWQKCSAqIHdlIGRvIGl0IHRoaXMgd2F5IHRvIHJlbmRlcmluZyB0aGUgJ29wdGlvbnMnIGh0bWwgb2ZmbGluZSAtIHNwZWVkIDotKQoJICovCgl2YXIgbkhvbGRpbmcgPSAkKCc8ZGl2PjwvZGl2PicpWzBdOwoJb1NldHRpbmdzLm5UYWJsZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZSggbkhvbGRpbmcsIG9TZXR0aW5ncy5uVGFibGUgKTsKCQoJLyogCgkgKiBBbGwgRGF0YVRhYmxlcyBhcmUgd3JhcHBlZCBpbiBhIGRpdgoJICovCglvU2V0dGluZ3MublRhYmxlV3JhcHBlciA9ICQoJzxkaXYgaWQ9Iicrb1NldHRpbmdzLnNUYWJsZUlkKydfd3JhcHBlciIgY2xhc3M9Iicrb1NldHRpbmdzLm9DbGFzc2VzLnNXcmFwcGVyKyciIHJvbGU9ImdyaWQiPjwvZGl2PicpWzBdOwoJb1NldHRpbmdzLm5UYWJsZVJlaW5zZXJ0QmVmb3JlID0gb1NldHRpbmdzLm5UYWJsZS5uZXh0U2libGluZzsKCgkvKiBUcmFjayB3aGVyZSB3ZSB3YW50IHRvIGluc2VydCB0aGUgb3B0aW9uICovCgl2YXIgbkluc2VydE5vZGUgPSBvU2V0dGluZ3MublRhYmxlV3JhcHBlcjsKCQoJLyogTG9vcCBvdmVyIHRoZSB1c2VyIHNldCBwb3NpdGlvbmluZyBhbmQgcGxhY2UgdGhlIGVsZW1lbnRzIGFzIG5lZWRlZCAqLwoJdmFyIGFEb20gPSBvU2V0dGluZ3Muc0RvbS5zcGxpdCgnJyk7Cgl2YXIgblRtcCwgaVB1c2hGZWF0dXJlLCBjT3B0aW9uLCBuTmV3Tm9kZSwgY05leHQsIHNBdHRyLCBqOwoJZm9yICggdmFyIGk9MCA7IGk8YURvbS5sZW5ndGggOyBpKysgKQoJewoJCWlQdXNoRmVhdHVyZSA9IDA7CgkJY09wdGlvbiA9IGFEb21baV07CgkJCgkJaWYgKCBjT3B0aW9uID09ICc8JyApCgkJewoJCQkvKiBOZXcgY29udGFpbmVyIGRpdiAqLwoJCQluTmV3Tm9kZSA9ICQoJzxkaXY+PC9kaXY+JylbMF07CgkJCQoJCQkvKiBDaGVjayB0byBzZWUgaWYgd2Ugc2hvdWxkIGFwcGVuZCBhbiBpZCBhbmQvb3IgYSBjbGFzcyBuYW1lIHRvIHRoZSBjb250YWluZXIgKi8KCQkJY05leHQgPSBhRG9tW2krMV07CgkJCWlmICggY05leHQgPT0gIiciIHx8IGNOZXh0ID09ICciJyApCgkJCXsKCQkJCXNBdHRyID0gIiI7CgkJCQlqID0gMjsKCQkJCXdoaWxlICggYURvbVtpK2pdICE9IGNOZXh0ICkKCQkJCXsKCQkJCQlzQXR0ciArPSBhRG9tW2kral07CgkJCQkJaisrOwoJCQkJfQoJCQkJCgkJCQkvKiBSZXBsYWNlIGpRdWVyeSBVSSBjb25zdGFudHMgKi8KCQkJCWlmICggc0F0dHIgPT0gIkgiICkKCQkJCXsKCQkJCQlzQXR0ciA9IG9TZXR0aW5ncy5vQ2xhc3Nlcy5zSlVJSGVhZGVyOwoJCQkJfQoJCQkJZWxzZSBpZiAoIHNBdHRyID09ICJGIiApCgkJCQl7CgkJCQkJc0F0dHIgPSBvU2V0dGluZ3Mub0NsYXNzZXMuc0pVSUZvb3RlcjsKCQkJCX0KCQkJCQoJCQkJLyogVGhlIGF0dHJpYnV0ZSBjYW4gYmUgaW4gdGhlIGZvcm1hdCBvZiAiI2lkLmNsYXNzIiwgIiNpZCIgb3IgImNsYXNzIiBUaGlzIGxvZ2ljCgkJCQkgKiBicmVha3MgdGhlIHN0cmluZyBpbnRvIHBhcnRzIGFuZCBhcHBsaWVzIHRoZW0gYXMgbmVlZGVkCgkJCQkgKi8KCQkJCWlmICggc0F0dHIuaW5kZXhPZignLicpICE9IC0xICkKCQkJCXsKCQkJCQl2YXIgYVNwbGl0ID0gc0F0dHIuc3BsaXQoJy4nKTsKCQkJCQluTmV3Tm9kZS5pZCA9IGFTcGxpdFswXS5zdWJzdHIoMSwgYVNwbGl0WzBdLmxlbmd0aC0xKTsKCQkJCQluTmV3Tm9kZS5jbGFzc05hbWUgPSBhU3BsaXRbMV07CgkJCQl9CgkJCQllbHNlIGlmICggc0F0dHIuY2hhckF0KDApID09ICIjIiApCgkJCQl7CgkJCQkJbk5ld05vZGUuaWQgPSBzQXR0ci5zdWJzdHIoMSwgc0F0dHIubGVuZ3RoLTEpOwoJCQkJfQoJCQkJZWxzZQoJCQkJewoJCQkJCW5OZXdOb2RlLmNsYXNzTmFtZSA9IHNBdHRyOwoJCQkJfQoJCQkJCgkJCQlpICs9IGo7IC8qIE1vdmUgYWxvbmcgdGhlIHBvc2l0aW9uIGFycmF5ICovCgkJCX0KCQkJCgkJCW5JbnNlcnROb2RlLmFwcGVuZENoaWxkKCBuTmV3Tm9kZSApOwoJCQluSW5zZXJ0Tm9kZSA9IG5OZXdOb2RlOwoJCX0KCQllbHNlIGlmICggY09wdGlvbiA9PSAnPicgKQoJCXsKCQkJLyogRW5kIGNvbnRhaW5lciBkaXYgKi8KCQkJbkluc2VydE5vZGUgPSBuSW5zZXJ0Tm9kZS5wYXJlbnROb2RlOwoJCX0KCQllbHNlIGlmICggY09wdGlvbiA9PSAnbCcgJiYgb1NldHRpbmdzLm9GZWF0dXJlcy5iUGFnaW5hdGUgJiYgb1NldHRpbmdzLm9GZWF0dXJlcy5iTGVuZ3RoQ2hhbmdlICkKCQl7CgkJCS8qIExlbmd0aCAqLwoJCQluVG1wID0gX2ZuRmVhdHVyZUh0bWxMZW5ndGgoIG9TZXR0aW5ncyApOwoJCQlpUHVzaEZlYXR1cmUgPSAxOwoJCX0KCQllbHNlIGlmICggY09wdGlvbiA9PSAnZicgJiYgb1NldHRpbmdzLm9GZWF0dXJlcy5iRmlsdGVyICkKCQl7CgkJCS8qIEZpbHRlciAqLwoJCQluVG1wID0gX2ZuRmVhdHVyZUh0bWxGaWx0ZXIoIG9TZXR0aW5ncyApOwoJCQlpUHVzaEZlYXR1cmUgPSAxOwoJCX0KCQllbHNlIGlmICggY09wdGlvbiA9PSAncicgJiYgb1NldHRpbmdzLm9GZWF0dXJlcy5iUHJvY2Vzc2luZyApCgkJewoJCQkvKiBwUm9jZXNzaW5nICovCgkJCW5UbXAgPSBfZm5GZWF0dXJlSHRtbFByb2Nlc3NpbmcoIG9TZXR0aW5ncyApOwoJCQlpUHVzaEZlYXR1cmUgPSAxOwoJCX0KCQllbHNlIGlmICggY09wdGlvbiA9PSAndCcgKQoJCXsKCQkJLyogVGFibGUgKi8KCQkJblRtcCA9IF9mbkZlYXR1cmVIdG1sVGFibGUoIG9TZXR0aW5ncyApOwoJCQlpUHVzaEZlYXR1cmUgPSAxOwoJCX0KCQllbHNlIGlmICggY09wdGlvbiA9PSAgJ2knICYmIG9TZXR0aW5ncy5vRmVhdHVyZXMuYkluZm8gKQoJCXsKCQkJLyogSW5mbyAqLwoJCQluVG1wID0gX2ZuRmVhdHVyZUh0bWxJbmZvKCBvU2V0dGluZ3MgKTsKCQkJaVB1c2hGZWF0dXJlID0gMTsKCQl9CgkJZWxzZSBpZiAoIGNPcHRpb24gPT0gJ3AnICYmIG9TZXR0aW5ncy5vRmVhdHVyZXMuYlBhZ2luYXRlICkKCQl7CgkJCS8qIFBhZ2luYXRpb24gKi8KCQkJblRtcCA9IF9mbkZlYXR1cmVIdG1sUGFnaW5hdGUoIG9TZXR0aW5ncyApOwoJCQlpUHVzaEZlYXR1cmUgPSAxOwoJCX0KCQllbHNlIGlmICggRGF0YVRhYmxlLmV4dC5hb0ZlYXR1cmVzLmxlbmd0aCAhPT0gMCApCgkJewoJCQkvKiBQbHVnLWluIGZlYXR1cmVzICovCgkJCXZhciBhb0ZlYXR1cmVzID0gRGF0YVRhYmxlLmV4dC5hb0ZlYXR1cmVzOwoJCQlmb3IgKCB2YXIgaz0wLCBrTGVuPWFvRmVhdHVyZXMubGVuZ3RoIDsgazxrTGVuIDsgaysrICkKCQkJewoJCQkJaWYgKCBjT3B0aW9uID09IGFvRmVhdHVyZXNba10uY0ZlYXR1cmUgKQoJCQkJewoJCQkJCW5UbXAgPSBhb0ZlYXR1cmVzW2tdLmZuSW5pdCggb1NldHRpbmdzICk7CgkJCQkJaWYgKCBuVG1wICkKCQkJCQl7CgkJCQkJCWlQdXNoRmVhdHVyZSA9IDE7CgkJCQkJfQoJCQkJCWJyZWFrOwoJCQkJfQoJCQl9CgkJfQoJCQoJCS8qIEFkZCB0byB0aGUgMkQgZmVhdHVyZXMgYXJyYXkgKi8KCQlpZiAoIGlQdXNoRmVhdHVyZSA9PSAxICYmIG5UbXAgIT09IG51bGwgKQoJCXsKCQkJaWYgKCB0eXBlb2Ygb1NldHRpbmdzLmFhbkZlYXR1cmVzW2NPcHRpb25dICE9PSAnb2JqZWN0JyApCgkJCXsKCQkJCW9TZXR0aW5ncy5hYW5GZWF0dXJlc1tjT3B0aW9uXSA9IFtdOwoJCQl9CgkJCW9TZXR0aW5ncy5hYW5GZWF0dXJlc1tjT3B0aW9uXS5wdXNoKCBuVG1wICk7CgkJCW5JbnNlcnROb2RlLmFwcGVuZENoaWxkKCBuVG1wICk7CgkJfQoJfQoJCgkvKiBCdWlsdCBvdXIgRE9NIHN0cnVjdHVyZSAtIHJlcGxhY2UgdGhlIGhvbGRpbmcgZGl2IHdpdGggd2hhdCB3ZSB3YW50ICovCgluSG9sZGluZy5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZCggb1NldHRpbmdzLm5UYWJsZVdyYXBwZXIsIG5Ib2xkaW5nICk7Cn0KCgovKioKICogVXNlIHRoZSBET00gc291cmNlIHRvIGNyZWF0ZSB1cCBhbiBhcnJheSBvZiBoZWFkZXIgY2VsbHMuIFRoZSBpZGVhIGhlcmUgaXMgdG8KICogY3JlYXRlIGEgbGF5b3V0IGdyaWQgKGFycmF5KSBvZiByb3dzIHggY29sdW1ucywgd2hpY2ggY29udGFpbnMgYSByZWZlcmVuY2UKICogdG8gdGhlIGNlbGwgdGhhdCB0aGF0IHBvaW50IGluIHRoZSBncmlkIChyZWdhcmRsZXNzIG9mIGNvbC9yb3dzcGFuKSwgc3VjaCB0aGF0CiAqIGFueSBjb2x1bW4gLyByb3cgY291bGQgYmUgcmVtb3ZlZCBhbmQgdGhlIG5ldyBncmlkIGNvbnN0cnVjdGVkCiAqICBAcGFyYW0gYXJyYXkge29iamVjdH0gYUxheW91dCBBcnJheSB0byBzdG9yZSB0aGUgY2FsY3VsYXRlZCBsYXlvdXQgaW4KICogIEBwYXJhbSB7bm9kZX0gblRoZWFkIFRoZSBoZWFkZXIvZm9vdGVyIGVsZW1lbnQgZm9yIHRoZSB0YWJsZQogKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCiAqLwpmdW5jdGlvbiBfZm5EZXRlY3RIZWFkZXIgKCBhTGF5b3V0LCBuVGhlYWQgKQp7Cgl2YXIgblRycyA9ICQoblRoZWFkKS5jaGlsZHJlbigndHInKTsKCXZhciBuQ2VsbDsKCXZhciBpLCBqLCBrLCBsLCBpTGVuLCBqTGVuLCBpQ29sU2hpZnRlZDsKCXZhciBmblNoaWZ0Q29sID0gZnVuY3Rpb24gKCBhLCBpLCBqICkgewoJCXdoaWxlICggYVtpXVtqXSApIHsKCQkJaisrOwoJCX0KCQlyZXR1cm4gajsKCX07CgoJYUxheW91dC5zcGxpY2UoIDAsIGFMYXlvdXQubGVuZ3RoICk7CgkKCS8qIFdlIGtub3cgaG93IG1hbnkgcm93cyB0aGVyZSBhcmUgaW4gdGhlIGxheW91dCAtIHNvIHByZXAgaXQgKi8KCWZvciAoIGk9MCwgaUxlbj1uVHJzLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgl7CgkJYUxheW91dC5wdXNoKCBbXSApOwoJfQoJCgkvKiBDYWxjdWxhdGUgYSBsYXlvdXQgYXJyYXkgKi8KCWZvciAoIGk9MCwgaUxlbj1uVHJzLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgl7CgkJdmFyIGlDb2x1bW4gPSAwOwoJCQoJCS8qIEZvciBldmVyeSBjZWxsIGluIHRoZSByb3cuLi4gKi8KCQlmb3IgKCBqPTAsIGpMZW49blRyc1tpXS5jaGlsZE5vZGVzLmxlbmd0aCA7IGo8akxlbiA7IGorKyApCgkJewoJCQluQ2VsbCA9IG5UcnNbaV0uY2hpbGROb2Rlc1tqXTsKCgkJCWlmICggbkNlbGwubm9kZU5hbWUudG9VcHBlckNhc2UoKSA9PSAiVEQiIHx8CgkJCSAgICAgbkNlbGwubm9kZU5hbWUudG9VcHBlckNhc2UoKSA9PSAiVEgiICkKCQkJewoJCQkJLyogR2V0IHRoZSBjb2wgYW5kIHJvd3NwYW4gYXR0cmlidXRlcyBmcm9tIHRoZSBET00gYW5kIHNhbml0aXNlIHRoZW0gKi8KCQkJCXZhciBpQ29sc3BhbiA9IG5DZWxsLmdldEF0dHJpYnV0ZSgnY29sc3BhbicpICogMTsKCQkJCXZhciBpUm93c3BhbiA9IG5DZWxsLmdldEF0dHJpYnV0ZSgncm93c3BhbicpICogMTsKCQkJCWlDb2xzcGFuID0gKCFpQ29sc3BhbiB8fCBpQ29sc3Bhbj09PTAgfHwgaUNvbHNwYW49PT0xKSA/IDEgOiBpQ29sc3BhbjsKCQkJCWlSb3dzcGFuID0gKCFpUm93c3BhbiB8fCBpUm93c3Bhbj09PTAgfHwgaVJvd3NwYW49PT0xKSA/IDEgOiBpUm93c3BhbjsKCgkJCQkvKiBUaGVyZSBtaWdodCBiZSBjb2xzcGFuIGNlbGxzIGFscmVhZHkgaW4gdGhpcyByb3csIHNvIHNoaWZ0IG91ciB0YXJnZXQgCgkJCQkgKiBhY2NvcmRpbmdseQoJCQkJICovCgkJCQlpQ29sU2hpZnRlZCA9IGZuU2hpZnRDb2woIGFMYXlvdXQsIGksIGlDb2x1bW4gKTsKCQkJCQoJCQkJLyogSWYgdGhlcmUgaXMgY29sIC8gcm93c3BhbiwgY29weSB0aGUgaW5mb3JtYXRpb24gaW50byB0aGUgbGF5b3V0IGdyaWQgKi8KCQkJCWZvciAoIGw9MCA7IGw8aUNvbHNwYW4gOyBsKysgKQoJCQkJewoJCQkJCWZvciAoIGs9MCA7IGs8aVJvd3NwYW4gOyBrKysgKQoJCQkJCXsKCQkJCQkJYUxheW91dFtpK2tdW2lDb2xTaGlmdGVkK2xdID0gewoJCQkJCQkJImNlbGwiOiBuQ2VsbCwKCQkJCQkJCSJ1bmlxdWUiOiBpQ29sc3BhbiA9PSAxID8gdHJ1ZSA6IGZhbHNlCgkJCQkJCX07CgkJCQkJCWFMYXlvdXRbaStrXS5uVHIgPSBuVHJzW2ldOwoJCQkJCX0KCQkJCX0KCQkJfQoJCX0KCX0KfQoKCi8qKgogKiBHZXQgYW4gYXJyYXkgb2YgdW5pcXVlIHRoIGVsZW1lbnRzLCBvbmUgZm9yIGVhY2ggY29sdW1uCiAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CiAqICBAcGFyYW0ge25vZGV9IG5IZWFkZXIgYXV0b21hdGljYWxseSBkZXRlY3QgdGhlIGxheW91dCBmcm9tIHRoaXMgbm9kZSAtIG9wdGlvbmFsCiAqICBAcGFyYW0ge2FycmF5fSBhTGF5b3V0IHRoZWFkL3Rmb290IGxheW91dCBmcm9tIF9mbkRldGVjdEhlYWRlciAtIG9wdGlvbmFsCiAqICBAcmV0dXJucyBhcnJheSB7bm9kZX0gYVJldHVybiBsaXN0IG9mIHVuaXF1ZSB0aCdzCiAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKICovCmZ1bmN0aW9uIF9mbkdldFVuaXF1ZVRocyAoIG9TZXR0aW5ncywgbkhlYWRlciwgYUxheW91dCApCnsKCXZhciBhUmV0dXJuID0gW107CglpZiAoICFhTGF5b3V0ICkKCXsKCQlhTGF5b3V0ID0gb1NldHRpbmdzLmFvSGVhZGVyOwoJCWlmICggbkhlYWRlciApCgkJewoJCQlhTGF5b3V0ID0gW107CgkJCV9mbkRldGVjdEhlYWRlciggYUxheW91dCwgbkhlYWRlciApOwoJCX0KCX0KCglmb3IgKCB2YXIgaT0wLCBpTGVuPWFMYXlvdXQubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCXsKCQlmb3IgKCB2YXIgaj0wLCBqTGVuPWFMYXlvdXRbaV0ubGVuZ3RoIDsgajxqTGVuIDsgaisrICkKCQl7CgkJCWlmICggYUxheW91dFtpXVtqXS51bmlxdWUgJiYgCgkJCQkgKCFhUmV0dXJuW2pdIHx8ICFvU2V0dGluZ3MuYlNvcnRDZWxsc1RvcCkgKQoJCQl7CgkJCQlhUmV0dXJuW2pdID0gYUxheW91dFtpXVtqXS5jZWxsOwoJCQl9CgkJfQoJfQoJCglyZXR1cm4gYVJldHVybjsKfQoK]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/core/core.filter.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CgovKioKICogR2VuZXJhdGUgdGhlIG5vZGUgcmVxdWlyZWQgZm9yIGZpbHRlcmluZyB0ZXh0CiAqICBAcmV0dXJucyB7bm9kZX0gRmlsdGVyIGNvbnRyb2wgZWxlbWVudAogKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAogKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCiAqLwpmdW5jdGlvbiBfZm5GZWF0dXJlSHRtbEZpbHRlciAoIG9TZXR0aW5ncyApCnsKCXZhciBvUHJldmlvdXNTZWFyY2ggPSBvU2V0dGluZ3Mub1ByZXZpb3VzU2VhcmNoOwoJCgl2YXIgc1NlYXJjaFN0ciA9IG9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc1NlYXJjaDsKCXNTZWFyY2hTdHIgPSAoc1NlYXJjaFN0ci5pbmRleE9mKCdfSU5QVVRfJykgIT09IC0xKSA/CgkgIHNTZWFyY2hTdHIucmVwbGFjZSgnX0lOUFVUXycsICc8aW5wdXQgdHlwZT0idGV4dCIgLz4nKSA6CgkgIHNTZWFyY2hTdHI9PT0iIiA/ICc8aW5wdXQgdHlwZT0idGV4dCIgLz4nIDogc1NlYXJjaFN0cisnIDxpbnB1dCB0eXBlPSJ0ZXh0IiAvPic7CgkKCXZhciBuRmlsdGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggJ2RpdicgKTsKCW5GaWx0ZXIuY2xhc3NOYW1lID0gb1NldHRpbmdzLm9DbGFzc2VzLnNGaWx0ZXI7CgluRmlsdGVyLmlubmVySFRNTCA9ICc8bGFiZWw+JytzU2VhcmNoU3RyKyc8L2xhYmVsPic7CglpZiAoICFvU2V0dGluZ3MuYWFuRmVhdHVyZXMuZiApCgl7CgkJbkZpbHRlci5pZCA9IG9TZXR0aW5ncy5zVGFibGVJZCsnX2ZpbHRlcic7Cgl9CgkKCXZhciBqcUZpbHRlciA9ICQoJ2lucHV0W3R5cGU9InRleHQiXScsIG5GaWx0ZXIpOwoKCS8vIFN0b3JlIGEgcmVmZXJlbmNlIHRvIHRoZSBpbnB1dCBlbGVtZW50LCBzbyBvdGhlciBpbnB1dCBlbGVtZW50cyBjb3VsZCBiZQoJLy8gYWRkZWQgdG8gdGhlIGZpbHRlciB3cmFwcGVyIGlmIG5lZWRlZCAoc3VibWl0IGJ1dHRvbiBmb3IgZXhhbXBsZSkKCW5GaWx0ZXIuX0RUX0lucHV0ID0ganFGaWx0ZXJbMF07CgoJanFGaWx0ZXIudmFsKCBvUHJldmlvdXNTZWFyY2guc1NlYXJjaC5yZXBsYWNlKCciJywnJnF1b3Q7JykgKTsKCWpxRmlsdGVyLmJpbmQoICdrZXl1cC5EVCcsIGZ1bmN0aW9uKGUpIHsKCQkvKiBVcGRhdGUgYWxsIG90aGVyIGZpbHRlciBpbnB1dCBlbGVtZW50cyBmb3IgdGhlIG5ldyBkaXNwbGF5ICovCgkJdmFyIG4gPSBvU2V0dGluZ3MuYWFuRmVhdHVyZXMuZjsKCQl2YXIgdmFsID0gdGhpcy52YWx1ZT09PSIiID8gIiIgOiB0aGlzLnZhbHVlOyAvLyBtZW50YWwgSUU4IGZpeCA6LSgKCgkJZm9yICggdmFyIGk9MCwgaUxlbj1uLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJewoJCQlpZiAoIG5baV0gIT0gJCh0aGlzKS5wYXJlbnRzKCdkaXYuZGF0YVRhYmxlc19maWx0ZXInKVswXSApCgkJCXsKCQkJCSQobltpXS5fRFRfSW5wdXQpLnZhbCggdmFsICk7CgkJCX0KCQl9CgkJCgkJLyogTm93IGRvIHRoZSBmaWx0ZXIgKi8KCQlpZiAoIHZhbCAhPSBvUHJldmlvdXNTZWFyY2guc1NlYXJjaCApCgkJewoJCQlfZm5GaWx0ZXJDb21wbGV0ZSggb1NldHRpbmdzLCB7IAoJCQkJInNTZWFyY2giOiB2YWwsIAoJCQkJImJSZWdleCI6IG9QcmV2aW91c1NlYXJjaC5iUmVnZXgsCgkJCQkiYlNtYXJ0Ijogb1ByZXZpb3VzU2VhcmNoLmJTbWFydCAsCgkJCQkiYkNhc2VJbnNlbnNpdGl2ZSI6IG9QcmV2aW91c1NlYXJjaC5iQ2FzZUluc2Vuc2l0aXZlIAoJCQl9ICk7CgkJfQoJfSApOwoKCWpxRmlsdGVyCgkJLmF0dHIoJ2FyaWEtY29udHJvbHMnLCBvU2V0dGluZ3Muc1RhYmxlSWQpCgkJLmJpbmQoICdrZXlwcmVzcy5EVCcsIGZ1bmN0aW9uKGUpIHsKCQkJLyogUHJldmVudCBmb3JtIHN1Ym1pc3Npb24gKi8KCQkJaWYgKCBlLmtleUNvZGUgPT0gMTMgKQoJCQl7CgkJCQlyZXR1cm4gZmFsc2U7CgkJCX0KCQl9CgkpOwoJCglyZXR1cm4gbkZpbHRlcjsKfQoKCi8qKgogKiBGaWx0ZXIgdGhlIHRhYmxlIHVzaW5nIGJvdGggdGhlIGdsb2JhbCBmaWx0ZXIgYW5kIGNvbHVtbiBiYXNlZCBmaWx0ZXJpbmcKICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKICogIEBwYXJhbSB7b2JqZWN0fSBvU2VhcmNoIHNlYXJjaCBpbmZvcm1hdGlvbgogKiAgQHBhcmFtIHtpbnR9IFtpRm9yY2VdIGZvcmNlIGEgcmVzZWFyY2ggb2YgdGhlIG1hc3RlciBhcnJheSAoMSkgb3Igbm90ICh1bmRlZmluZWQgb3IgMCkKICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQogKi8KZnVuY3Rpb24gX2ZuRmlsdGVyQ29tcGxldGUgKCBvU2V0dGluZ3MsIG9JbnB1dCwgaUZvcmNlICkKewoJdmFyIG9QcmV2U2VhcmNoID0gb1NldHRpbmdzLm9QcmV2aW91c1NlYXJjaDsKCXZhciBhb1ByZXZTZWFyY2ggPSBvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzOwoJdmFyIGZuU2F2ZUZpbHRlciA9IGZ1bmN0aW9uICggb0ZpbHRlciApIHsKCQkvKiBTYXZlIHRoZSBmaWx0ZXJpbmcgdmFsdWVzICovCgkJb1ByZXZTZWFyY2guc1NlYXJjaCA9IG9GaWx0ZXIuc1NlYXJjaDsKCQlvUHJldlNlYXJjaC5iUmVnZXggPSBvRmlsdGVyLmJSZWdleDsKCQlvUHJldlNlYXJjaC5iU21hcnQgPSBvRmlsdGVyLmJTbWFydDsKCQlvUHJldlNlYXJjaC5iQ2FzZUluc2Vuc2l0aXZlID0gb0ZpbHRlci5iQ2FzZUluc2Vuc2l0aXZlOwoJfTsKCgkvKiBJbiBzZXJ2ZXItc2lkZSBwcm9jZXNzaW5nIGFsbCBmaWx0ZXJpbmcgaXMgZG9uZSBieSB0aGUgc2VydmVyLCBzbyBubyBwb2ludCBoYW5naW5nIGFyb3VuZCBoZXJlICovCglpZiAoICFvU2V0dGluZ3Mub0ZlYXR1cmVzLmJTZXJ2ZXJTaWRlICkKCXsKCQkvKiBHbG9iYWwgZmlsdGVyICovCgkJX2ZuRmlsdGVyKCBvU2V0dGluZ3MsIG9JbnB1dC5zU2VhcmNoLCBpRm9yY2UsIG9JbnB1dC5iUmVnZXgsIG9JbnB1dC5iU21hcnQsIG9JbnB1dC5iQ2FzZUluc2Vuc2l0aXZlICk7CgkJZm5TYXZlRmlsdGVyKCBvSW5wdXQgKTsKCgkJLyogTm93IGRvIHRoZSBpbmRpdmlkdWFsIGNvbHVtbiBmaWx0ZXIgKi8KCQlmb3IgKCB2YXIgaT0wIDsgaTxvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzLmxlbmd0aCA7IGkrKyApCgkJewoJCQlfZm5GaWx0ZXJDb2x1bW4oIG9TZXR0aW5ncywgYW9QcmV2U2VhcmNoW2ldLnNTZWFyY2gsIGksIGFvUHJldlNlYXJjaFtpXS5iUmVnZXgsIAoJCQkJYW9QcmV2U2VhcmNoW2ldLmJTbWFydCwgYW9QcmV2U2VhcmNoW2ldLmJDYXNlSW5zZW5zaXRpdmUgKTsKCQl9CgkJCgkJLyogQ3VzdG9tIGZpbHRlcmluZyAqLwoJCV9mbkZpbHRlckN1c3RvbSggb1NldHRpbmdzICk7Cgl9CgllbHNlCgl7CgkJZm5TYXZlRmlsdGVyKCBvSW5wdXQgKTsKCX0KCQoJLyogVGVsbCB0aGUgZHJhdyBmdW5jdGlvbiB3ZSBoYXZlIGJlZW4gZmlsdGVyaW5nICovCglvU2V0dGluZ3MuYkZpbHRlcmVkID0gdHJ1ZTsKCSQob1NldHRpbmdzLm9JbnN0YW5jZSkudHJpZ2dlcignZmlsdGVyJywgb1NldHRpbmdzKTsKCQoJLyogUmVkcmF3IHRoZSB0YWJsZSAqLwoJb1NldHRpbmdzLl9pRGlzcGxheVN0YXJ0ID0gMDsKCV9mbkNhbGN1bGF0ZUVuZCggb1NldHRpbmdzICk7CglfZm5EcmF3KCBvU2V0dGluZ3MgKTsKCQoJLyogUmVidWlsZCBzZWFyY2ggYXJyYXkgJ29mZmxpbmUnICovCglfZm5CdWlsZFNlYXJjaEFycmF5KCBvU2V0dGluZ3MsIDAgKTsKfQoKCi8qKgogKiBBcHBseSBjdXN0b20gZmlsdGVyaW5nIGZ1bmN0aW9ucwogKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAogKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCiAqLwpmdW5jdGlvbiBfZm5GaWx0ZXJDdXN0b20oIG9TZXR0aW5ncyApCnsKCXZhciBhZm5GaWx0ZXJzID0gRGF0YVRhYmxlLmV4dC5hZm5GaWx0ZXJpbmc7Cgl2YXIgYWlGaWx0ZXJDb2x1bW5zID0gX2ZuR2V0Q29sdW1ucyggb1NldHRpbmdzLCAnYlNlYXJjaGFibGUnICk7CgoJZm9yICggdmFyIGk9MCwgaUxlbj1hZm5GaWx0ZXJzLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgl7CgkJdmFyIGlDb3JyZWN0b3IgPSAwOwoJCWZvciAoIHZhciBqPTAsIGpMZW49b1NldHRpbmdzLmFpRGlzcGxheS5sZW5ndGggOyBqPGpMZW4gOyBqKysgKQoJCXsKCQkJdmFyIGlEaXNJbmRleCA9IG9TZXR0aW5ncy5haURpc3BsYXlbai1pQ29ycmVjdG9yXTsKCQkJdmFyIGJUZXN0ID0gYWZuRmlsdGVyc1tpXSgKCQkJCW9TZXR0aW5ncywKCQkJCV9mbkdldFJvd0RhdGEoIG9TZXR0aW5ncywgaURpc0luZGV4LCAnZmlsdGVyJywgYWlGaWx0ZXJDb2x1bW5zICksCgkJCQlpRGlzSW5kZXgKCQkJKTsKCQkJCgkJCS8qIENoZWNrIGlmIHdlIHNob3VsZCB1c2UgdGhpcyByb3cgYmFzZWQgb24gdGhlIGZpbHRlcmluZyBmdW5jdGlvbiAqLwoJCQlpZiAoICFiVGVzdCApCgkJCXsKCQkJCW9TZXR0aW5ncy5haURpc3BsYXkuc3BsaWNlKCBqLWlDb3JyZWN0b3IsIDEgKTsKCQkJCWlDb3JyZWN0b3IrKzsKCQkJfQoJCX0KCX0KfQoKCi8qKgogKiBGaWx0ZXIgdGhlIHRhYmxlIG9uIGEgcGVyLWNvbHVtbiBiYXNpcwogKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAogKiAgQHBhcmFtIHtzdHJpbmd9IHNJbnB1dCBzdHJpbmcgdG8gZmlsdGVyIG9uCiAqICBAcGFyYW0ge2ludH0gaUNvbHVtbiBjb2x1bW4gdG8gZmlsdGVyCiAqICBAcGFyYW0ge2Jvb2x9IGJSZWdleCB0cmVhdCBzZWFyY2ggc3RyaW5nIGFzIGEgcmVndWxhciBleHByZXNzaW9uIG9yIG5vdAogKiAgQHBhcmFtIHtib29sfSBiU21hcnQgdXNlIHNtYXJ0IGZpbHRlcmluZyBvciBub3QKICogIEBwYXJhbSB7Ym9vbH0gYkNhc2VJbnNlbnNpdGl2ZSBEbyBjYXNlIGluc2Vuc3RpdmUgbWF0Y2hpbmcgb3Igbm90CiAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKICovCmZ1bmN0aW9uIF9mbkZpbHRlckNvbHVtbiAoIG9TZXR0aW5ncywgc0lucHV0LCBpQ29sdW1uLCBiUmVnZXgsIGJTbWFydCwgYkNhc2VJbnNlbnNpdGl2ZSApCnsKCWlmICggc0lucHV0ID09PSAiIiApCgl7CgkJcmV0dXJuOwoJfQoJCgl2YXIgaUluZGV4Q29ycmVjdG9yID0gMDsKCXZhciBycFNlYXJjaCA9IF9mbkZpbHRlckNyZWF0ZVNlYXJjaCggc0lucHV0LCBiUmVnZXgsIGJTbWFydCwgYkNhc2VJbnNlbnNpdGl2ZSApOwoJCglmb3IgKCB2YXIgaT1vU2V0dGluZ3MuYWlEaXNwbGF5Lmxlbmd0aC0xIDsgaT49MCA7IGktLSApCgl7CgkJdmFyIHNEYXRhID0gX2ZuRGF0YVRvU2VhcmNoKCBfZm5HZXRDZWxsRGF0YSggb1NldHRpbmdzLCBvU2V0dGluZ3MuYWlEaXNwbGF5W2ldLCBpQ29sdW1uLCAnZmlsdGVyJyApLAoJCQlvU2V0dGluZ3MuYW9Db2x1bW5zW2lDb2x1bW5dLnNUeXBlICk7CgkJaWYgKCAhIHJwU2VhcmNoLnRlc3QoIHNEYXRhICkgKQoJCXsKCQkJb1NldHRpbmdzLmFpRGlzcGxheS5zcGxpY2UoIGksIDEgKTsKCQkJaUluZGV4Q29ycmVjdG9yKys7CgkJfQoJfQp9CgoKLyoqCiAqIEZpbHRlciB0aGUgZGF0YSB0YWJsZSBiYXNlZCBvbiB1c2VyIGlucHV0IGFuZCBkcmF3IHRoZSB0YWJsZQogKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAogKiAgQHBhcmFtIHtzdHJpbmd9IHNJbnB1dCBzdHJpbmcgdG8gZmlsdGVyIG9uCiAqICBAcGFyYW0ge2ludH0gaUZvcmNlIG9wdGlvbmFsIC0gZm9yY2UgYSByZXNlYXJjaCBvZiB0aGUgbWFzdGVyIGFycmF5ICgxKSBvciBub3QgKHVuZGVmaW5lZCBvciAwKQogKiAgQHBhcmFtIHtib29sfSBiUmVnZXggdHJlYXQgYXMgYSByZWd1bGFyIGV4cHJlc3Npb24gb3Igbm90CiAqICBAcGFyYW0ge2Jvb2x9IGJTbWFydCBwZXJmb3JtIHNtYXJ0IGZpbHRlcmluZyBvciBub3QKICogIEBwYXJhbSB7Ym9vbH0gYkNhc2VJbnNlbnNpdGl2ZSBEbyBjYXNlIGluc2Vuc3RpdmUgbWF0Y2hpbmcgb3Igbm90CiAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKICovCmZ1bmN0aW9uIF9mbkZpbHRlciggb1NldHRpbmdzLCBzSW5wdXQsIGlGb3JjZSwgYlJlZ2V4LCBiU21hcnQsIGJDYXNlSW5zZW5zaXRpdmUgKQp7Cgl2YXIgaTsKCXZhciBycFNlYXJjaCA9IF9mbkZpbHRlckNyZWF0ZVNlYXJjaCggc0lucHV0LCBiUmVnZXgsIGJTbWFydCwgYkNhc2VJbnNlbnNpdGl2ZSApOwoJdmFyIG9QcmV2U2VhcmNoID0gb1NldHRpbmdzLm9QcmV2aW91c1NlYXJjaDsKCQoJLyogQ2hlY2sgaWYgd2UgYXJlIGZvcmNpbmcgb3Igbm90IC0gb3B0aW9uYWwgcGFyYW1ldGVyICovCglpZiAoICFpRm9yY2UgKQoJewoJCWlGb3JjZSA9IDA7Cgl9CgkKCS8qIE5lZWQgdG8gdGFrZSBhY2NvdW50IG9mIGN1c3RvbSBmaWx0ZXJpbmcgZnVuY3Rpb25zIC0gYWx3YXlzIGZpbHRlciAqLwoJaWYgKCBEYXRhVGFibGUuZXh0LmFmbkZpbHRlcmluZy5sZW5ndGggIT09IDAgKQoJewoJCWlGb3JjZSA9IDE7Cgl9CgkKCS8qCgkgKiBJZiB0aGUgaW5wdXQgaXMgYmxhbmsgLSB3ZSB3YW50IHRoZSBmdWxsIGRhdGEgc2V0CgkgKi8KCWlmICggc0lucHV0Lmxlbmd0aCA8PSAwICkKCXsKCQlvU2V0dGluZ3MuYWlEaXNwbGF5LnNwbGljZSggMCwgb1NldHRpbmdzLmFpRGlzcGxheS5sZW5ndGgpOwoJCW9TZXR0aW5ncy5haURpc3BsYXkgPSBvU2V0dGluZ3MuYWlEaXNwbGF5TWFzdGVyLnNsaWNlKCk7Cgl9CgllbHNlCgl7CgkJLyoKCQkgKiBXZSBhcmUgc3RhcnRpbmcgYSBuZXcgc2VhcmNoIG9yIHRoZSBuZXcgc2VhcmNoIHN0cmluZyBpcyBzbWFsbGVyIAoJCSAqIHRoZW4gdGhlIG9sZCBvbmUgKGkuZS4gZGVsZXRlKS4gU2VhcmNoIGZyb20gdGhlIG1hc3RlciBhcnJheQoJIAkgKi8KCQlpZiAoIG9TZXR0aW5ncy5haURpc3BsYXkubGVuZ3RoID09IG9TZXR0aW5ncy5haURpc3BsYXlNYXN0ZXIubGVuZ3RoIHx8CgkJCSAgIG9QcmV2U2VhcmNoLnNTZWFyY2gubGVuZ3RoID4gc0lucHV0Lmxlbmd0aCB8fCBpRm9yY2UgPT0gMSB8fAoJCQkgICBzSW5wdXQuaW5kZXhPZihvUHJldlNlYXJjaC5zU2VhcmNoKSAhPT0gMCApCgkJewoJCQkvKiBOdWtlIHRoZSBvbGQgZGlzcGxheSBhcnJheSAtIHdlIGFyZSBnb2luZyB0byByZWJ1aWxkIGl0ICovCgkJCW9TZXR0aW5ncy5haURpc3BsYXkuc3BsaWNlKCAwLCBvU2V0dGluZ3MuYWlEaXNwbGF5Lmxlbmd0aCk7CgkJCQoJCQkvKiBGb3JjZSBhIHJlYnVpbGQgb2YgdGhlIHNlYXJjaCBhcnJheSAqLwoJCQlfZm5CdWlsZFNlYXJjaEFycmF5KCBvU2V0dGluZ3MsIDEgKTsKCQkJCgkJCS8qIFNlYXJjaCB0aHJvdWdoIGFsbCByZWNvcmRzIHRvIHBvcHVsYXRlIHRoZSBzZWFyY2ggYXJyYXkKCQkJICogVGhlIHRoZSBvU2V0dGluZ3MuYWlEaXNwbGF5TWFzdGVyIGFuZCBhc0RhdGFTZWFyY2ggYXJyYXlzIGhhdmUgMSB0byAxIAoJCQkgKiBtYXBwaW5nCgkJCSAqLwoJCQlmb3IgKCBpPTAgOyBpPG9TZXR0aW5ncy5haURpc3BsYXlNYXN0ZXIubGVuZ3RoIDsgaSsrICkKCQkJewoJCQkJaWYgKCBycFNlYXJjaC50ZXN0KG9TZXR0aW5ncy5hc0RhdGFTZWFyY2hbaV0pICkKCQkJCXsKCQkJCQlvU2V0dGluZ3MuYWlEaXNwbGF5LnB1c2goIG9TZXR0aW5ncy5haURpc3BsYXlNYXN0ZXJbaV0gKTsKCQkJCX0KCQkJfQoJICB9CgkgIGVsc2UKCQl7CgkgIAkvKiBVc2luZyBvbGQgc2VhcmNoIGFycmF5IC0gcmVmaW5lIGl0IC0gZG8gaXQgdGhpcyB3YXkgZm9yIHNwZWVkCgkgIAkgKiBEb24ndCBoYXZlIHRvIHNlYXJjaCB0aGUgd2hvbGUgbWFzdGVyIGFycmF5IGFnYWluCgkJCSAqLwoJICAJdmFyIGlJbmRleENvcnJlY3RvciA9IDA7CgkgIAkKCSAgCS8qIFNlYXJjaCB0aGUgY3VycmVudCByZXN1bHRzICovCgkgIAlmb3IgKCBpPTAgOyBpPG9TZXR0aW5ncy5hc0RhdGFTZWFyY2gubGVuZ3RoIDsgaSsrICkKCQkJewoJICAJCWlmICggISBycFNlYXJjaC50ZXN0KG9TZXR0aW5ncy5hc0RhdGFTZWFyY2hbaV0pICkKCQkJCXsKCSAgCQkJb1NldHRpbmdzLmFpRGlzcGxheS5zcGxpY2UoIGktaUluZGV4Q29ycmVjdG9yLCAxICk7CgkgIAkJCWlJbmRleENvcnJlY3RvcisrOwoJICAJCX0KCSAgCX0KCSAgfQoJfQp9CgoKLyoqCiAqIENyZWF0ZSBhbiBhcnJheSB3aGljaCBjYW4gYmUgcXVpY2tseSBzZWFyY2ggdGhyb3VnaAogKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAogKiAgQHBhcmFtIHtpbnR9IGlNYXN0ZXIgdXNlIHRoZSBtYXN0ZXIgZGF0YSBhcnJheSAtIG9wdGlvbmFsCiAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKICovCmZ1bmN0aW9uIF9mbkJ1aWxkU2VhcmNoQXJyYXkgKCBvU2V0dGluZ3MsIGlNYXN0ZXIgKQp7CglpZiAoICFvU2V0dGluZ3Mub0ZlYXR1cmVzLmJTZXJ2ZXJTaWRlICkKCXsKCQkvKiBDbGVhciBvdXQgdGhlIG9sZCBkYXRhICovCgkJb1NldHRpbmdzLmFzRGF0YVNlYXJjaCA9IFtdOwoKCQl2YXIgYWlGaWx0ZXJDb2x1bW5zID0gX2ZuR2V0Q29sdW1ucyggb1NldHRpbmdzLCAnYlNlYXJjaGFibGUnICk7CgkJdmFyIGFpSW5kZXggPSAoaU1hc3Rlcj09PTEpID8KCQkgCW9TZXR0aW5ncy5haURpc3BsYXlNYXN0ZXIgOgoJCSAJb1NldHRpbmdzLmFpRGlzcGxheTsKCQkKCQlmb3IgKCB2YXIgaT0wLCBpTGVuPWFpSW5kZXgubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQl7CgkJCW9TZXR0aW5ncy5hc0RhdGFTZWFyY2hbaV0gPSBfZm5CdWlsZFNlYXJjaFJvdygKCQkJCW9TZXR0aW5ncywKCQkJCV9mbkdldFJvd0RhdGEoIG9TZXR0aW5ncywgYWlJbmRleFtpXSwgJ2ZpbHRlcicsIGFpRmlsdGVyQ29sdW1ucyApCgkJCSk7CgkJfQoJfQp9CgoKLyoqCiAqIENyZWF0ZSBhIHNlYXJjaGFibGUgc3RyaW5nIGZyb20gYSBzaW5nbGUgZGF0YSByb3cKICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKICogIEBwYXJhbSB7YXJyYXl9IGFEYXRhIFJvdyBkYXRhIGFycmF5IHRvIHVzZSBmb3IgdGhlIGRhdGEgdG8gc2VhcmNoCiAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKICovCmZ1bmN0aW9uIF9mbkJ1aWxkU2VhcmNoUm93KCBvU2V0dGluZ3MsIGFEYXRhICkKewoJdmFyIHNTZWFyY2ggPSBhRGF0YS5qb2luKCcgICcpOwoJCgkvKiBJZiBpdCBsb29rcyBsaWtlIHRoZXJlIGlzIGFuIEhUTUwgZW50aXR5IGluIHRoZSBzdHJpbmcsIGF0dGVtcHQgdG8gZGVjb2RlIGl0ICovCglpZiAoIHNTZWFyY2guaW5kZXhPZignJicpICE9PSAtMSApCgl7CgkJc1NlYXJjaCA9ICQoJzxkaXY+JykuaHRtbChzU2VhcmNoKS50ZXh0KCk7Cgl9CgkKCS8vIFN0cmlwIG5ld2xpbmUgY2hhcmFjdGVycwoJcmV0dXJuIHNTZWFyY2gucmVwbGFjZSggL1tcblxyXS9nLCAiICIgKTsKfQoKLyoqCiAqIEJ1aWxkIGEgcmVndWxhciBleHByZXNzaW9uIG9iamVjdCBzdWl0YWJsZSBmb3Igc2VhcmNoaW5nIGEgdGFibGUKICogIEBwYXJhbSB7c3RyaW5nfSBzU2VhcmNoIHN0cmluZyB0byBzZWFyY2ggZm9yCiAqICBAcGFyYW0ge2Jvb2x9IGJSZWdleCB0cmVhdCBhcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBvciBub3QKICogIEBwYXJhbSB7Ym9vbH0gYlNtYXJ0IHBlcmZvcm0gc21hcnQgZmlsdGVyaW5nIG9yIG5vdAogKiAgQHBhcmFtIHtib29sfSBiQ2FzZUluc2Vuc2l0aXZlIERvIGNhc2UgaW5zZW5zaXRpdmUgbWF0Y2hpbmcgb3Igbm90CiAqICBAcmV0dXJucyB7UmVnRXhwfSBjb25zdHJ1Y3RlZCBvYmplY3QKICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQogKi8KZnVuY3Rpb24gX2ZuRmlsdGVyQ3JlYXRlU2VhcmNoKCBzU2VhcmNoLCBiUmVnZXgsIGJTbWFydCwgYkNhc2VJbnNlbnNpdGl2ZSApCnsKCXZhciBhc1NlYXJjaCwgc1JlZ0V4cFN0cmluZzsKCQoJaWYgKCBiU21hcnQgKQoJewoJCS8qIEdlbmVyYXRlIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gdG8gdXNlLiBTb21ldGhpbmcgYWxvbmcgdGhlIGxpbmVzIG9mOgoJCSAqIF4oPz0uKj9cYm9uZVxiKSg/PS4qP1xidHdvXGIpKD89Lio/XGJ0aHJlZVxiKS4qJAoJCSAqLwoJCWFzU2VhcmNoID0gYlJlZ2V4ID8gc1NlYXJjaC5zcGxpdCggJyAnICkgOiBfZm5Fc2NhcGVSZWdleCggc1NlYXJjaCApLnNwbGl0KCAnICcgKTsKCQlzUmVnRXhwU3RyaW5nID0gJ14oPz0uKj8nK2FzU2VhcmNoLmpvaW4oICcpKD89Lio/JyApKycpLiokJzsKCQlyZXR1cm4gbmV3IFJlZ0V4cCggc1JlZ0V4cFN0cmluZywgYkNhc2VJbnNlbnNpdGl2ZSA/ICJpIiA6ICIiICk7Cgl9CgllbHNlCgl7CgkJc1NlYXJjaCA9IGJSZWdleCA/IHNTZWFyY2ggOiBfZm5Fc2NhcGVSZWdleCggc1NlYXJjaCApOwoJCXJldHVybiBuZXcgUmVnRXhwKCBzU2VhcmNoLCBiQ2FzZUluc2Vuc2l0aXZlID8gImkiIDogIiIgKTsKCX0KfQoKCi8qKgogKiBDb252ZXJ0IHJhdyBkYXRhIGludG8gc29tZXRoaW5nIHRoYXQgdGhlIHVzZXIgY2FuIHNlYXJjaCBvbgogKiAgQHBhcmFtIHtzdHJpbmd9IHNEYXRhIGRhdGEgdG8gYmUgbW9kaWZpZWQKICogIEBwYXJhbSB7c3RyaW5nfSBzVHlwZSBkYXRhIHR5cGUKICogIEByZXR1cm5zIHtzdHJpbmd9IHNlYXJjaCBzdHJpbmcKICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQogKi8KZnVuY3Rpb24gX2ZuRGF0YVRvU2VhcmNoICggc0RhdGEsIHNUeXBlICkKewoJaWYgKCB0eXBlb2YgRGF0YVRhYmxlLmV4dC5vZm5TZWFyY2hbc1R5cGVdID09PSAiZnVuY3Rpb24iICkKCXsKCQlyZXR1cm4gRGF0YVRhYmxlLmV4dC5vZm5TZWFyY2hbc1R5cGVdKCBzRGF0YSApOwoJfQoJZWxzZSBpZiAoIHNEYXRhID09PSBudWxsICkKCXsKCQlyZXR1cm4gJyc7Cgl9CgllbHNlIGlmICggc1R5cGUgPT0gImh0bWwiICkKCXsKCQlyZXR1cm4gc0RhdGEucmVwbGFjZSgvW1xyXG5dL2csIiAiKS5yZXBsYWNlKCAvPC4qPz4vZywgIiIgKTsKCX0KCWVsc2UgaWYgKCB0eXBlb2Ygc0RhdGEgPT09ICJzdHJpbmciICkKCXsKCQlyZXR1cm4gc0RhdGEucmVwbGFjZSgvW1xyXG5dL2csIiAiKTsKCX0KCXJldHVybiBzRGF0YTsKfQoKCi8qKgogKiBzY2FwZSBhIHN0cmluZyBzdWNoIHRoYXQgaXQgY2FuIGJlIHVzZWQgaW4gYSByZWd1bGFyIGV4cHJlc3Npb24KICogIEBwYXJhbSB7c3RyaW5nfSBzVmFsIHN0cmluZyB0byBlc2NhcGUKICogIEByZXR1cm5zIHtzdHJpbmd9IGVzY2FwZWQgc3RyaW5nCiAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKICovCmZ1bmN0aW9uIF9mbkVzY2FwZVJlZ2V4ICggc1ZhbCApCnsKCXZhciBhY0VzY2FwZSA9IFsgJy8nLCAnLicsICcqJywgJysnLCAnPycsICd8JywgJygnLCAnKScsICdbJywgJ10nLCAneycsICd9JywgJ1xcJywgJyQnLCAnXicsICctJyBdOwoJdmFyIHJlUmVwbGFjZSA9IG5ldyBSZWdFeHAoICcoXFwnICsgYWNFc2NhcGUuam9pbignfFxcJykgKyAnKScsICdnJyApOwoJcmV0dXJuIHNWYWwucmVwbGFjZShyZVJlcGxhY2UsICdcXCQxJyk7Cn0KCg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/core/core.info.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CgovKioKICogR2VuZXJhdGUgdGhlIG5vZGUgcmVxdWlyZWQgZm9yIHRoZSBpbmZvIGRpc3BsYXkKICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKICogIEByZXR1cm5zIHtub2RlfSBJbmZvcm1hdGlvbiBlbGVtZW50CiAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKICovCmZ1bmN0aW9uIF9mbkZlYXR1cmVIdG1sSW5mbyAoIG9TZXR0aW5ncyApCnsKCXZhciBuSW5mbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICdkaXYnICk7CgluSW5mby5jbGFzc05hbWUgPSBvU2V0dGluZ3Mub0NsYXNzZXMuc0luZm87CgkKCS8qIEFjdGlvbnMgdGhhdCBhcmUgdG8gYmUgdGFrZW4gb25jZSBvbmx5IGZvciB0aGlzIGZlYXR1cmUgKi8KCWlmICggIW9TZXR0aW5ncy5hYW5GZWF0dXJlcy5pICkKCXsKCQkvKiBBZGQgZHJhdyBjYWxsYmFjayAqLwoJCW9TZXR0aW5ncy5hb0RyYXdDYWxsYmFjay5wdXNoKCB7CgkJCSJmbiI6IF9mblVwZGF0ZUluZm8sCgkJCSJzTmFtZSI6ICJpbmZvcm1hdGlvbiIKCQl9ICk7CgkJCgkJLyogQWRkIGlkICovCgkJbkluZm8uaWQgPSBvU2V0dGluZ3Muc1RhYmxlSWQrJ19pbmZvJzsKCX0KCW9TZXR0aW5ncy5uVGFibGUuc2V0QXR0cmlidXRlKCAnYXJpYS1kZXNjcmliZWRieScsIG9TZXR0aW5ncy5zVGFibGVJZCsnX2luZm8nICk7CgkKCXJldHVybiBuSW5mbzsKfQoKCi8qKgogKiBVcGRhdGUgdGhlIGluZm9ybWF0aW9uIGVsZW1lbnRzIGluIHRoZSBkaXNwbGF5CiAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CiAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKICovCmZ1bmN0aW9uIF9mblVwZGF0ZUluZm8gKCBvU2V0dGluZ3MgKQp7CgkvKiBTaG93IGluZm9ybWF0aW9uIGFib3V0IHRoZSB0YWJsZSAqLwoJaWYgKCAhb1NldHRpbmdzLm9GZWF0dXJlcy5iSW5mbyB8fCBvU2V0dGluZ3MuYWFuRmVhdHVyZXMuaS5sZW5ndGggPT09IDAgKQoJewoJCXJldHVybjsKCX0KCQoJdmFyCgkJb0xhbmcgPSBvU2V0dGluZ3Mub0xhbmd1YWdlLAoJCWlTdGFydCA9IG9TZXR0aW5ncy5faURpc3BsYXlTdGFydCsxLAoJCWlFbmQgPSBvU2V0dGluZ3MuZm5EaXNwbGF5RW5kKCksCgkJaU1heCA9IG9TZXR0aW5ncy5mblJlY29yZHNUb3RhbCgpLAoJCWlUb3RhbCA9IG9TZXR0aW5ncy5mblJlY29yZHNEaXNwbGF5KCksCgkJc091dDsKCQoJaWYgKCBpVG90YWwgPT09IDAgJiYgaVRvdGFsID09IGlNYXggKQoJewoJCS8qIEVtcHR5IHJlY29yZCBzZXQgKi8KCQlzT3V0ID0gb0xhbmcuc0luZm9FbXB0eTsKCX0KCWVsc2UgaWYgKCBpVG90YWwgPT09IDAgKQoJewoJCS8qIEVtcHR5IHJlY29yZCBzZXQgYWZ0ZXIgZmlsdGVyaW5nICovCgkJc091dCA9IG9MYW5nLnNJbmZvRW1wdHkgKycgJysgb0xhbmcuc0luZm9GaWx0ZXJlZDsKCX0KCWVsc2UgaWYgKCBpVG90YWwgPT0gaU1heCApCgl7CgkJLyogTm9ybWFsIHJlY29yZCBzZXQgKi8KCQlzT3V0ID0gb0xhbmcuc0luZm87Cgl9CgllbHNlCgl7CgkJLyogUmVjb3JkIHNldCBhZnRlciBmaWx0ZXJpbmcgKi8KCQlzT3V0ID0gb0xhbmcuc0luZm8gKycgJysgb0xhbmcuc0luZm9GaWx0ZXJlZDsKCX0KCgkvLyBDb252ZXJ0IHRoZSBtYWNyb3MKCXNPdXQgKz0gb0xhbmcuc0luZm9Qb3N0Rml4OwoJc091dCA9IF9mbkluZm9NYWNyb3MoIG9TZXR0aW5ncywgc091dCApOwoJCglpZiAoIG9MYW5nLmZuSW5mb0NhbGxiYWNrICE9PSBudWxsICkKCXsKCQlzT3V0ID0gb0xhbmcuZm5JbmZvQ2FsbGJhY2suY2FsbCggb1NldHRpbmdzLm9JbnN0YW5jZSwgCgkJCW9TZXR0aW5ncywgaVN0YXJ0LCBpRW5kLCBpTWF4LCBpVG90YWwsIHNPdXQgKTsKCX0KCQoJdmFyIG4gPSBvU2V0dGluZ3MuYWFuRmVhdHVyZXMuaTsKCWZvciAoIHZhciBpPTAsIGlMZW49bi5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJewoJCSQobltpXSkuaHRtbCggc091dCApOwoJfQp9CgoKZnVuY3Rpb24gX2ZuSW5mb01hY3JvcyAoIG9TZXR0aW5ncywgc3RyICkKewoJdmFyCgkJaVN0YXJ0ID0gb1NldHRpbmdzLl9pRGlzcGxheVN0YXJ0KzEsCgkJc1N0YXJ0ID0gb1NldHRpbmdzLmZuRm9ybWF0TnVtYmVyKCBpU3RhcnQgKSwKCQlpRW5kID0gb1NldHRpbmdzLmZuRGlzcGxheUVuZCgpLAoJCXNFbmQgPSBvU2V0dGluZ3MuZm5Gb3JtYXROdW1iZXIoIGlFbmQgKSwKCQlpVG90YWwgPSBvU2V0dGluZ3MuZm5SZWNvcmRzRGlzcGxheSgpLAoJCXNUb3RhbCA9IG9TZXR0aW5ncy5mbkZvcm1hdE51bWJlciggaVRvdGFsICksCgkJaU1heCA9IG9TZXR0aW5ncy5mblJlY29yZHNUb3RhbCgpLAoJCXNNYXggPSBvU2V0dGluZ3MuZm5Gb3JtYXROdW1iZXIoIGlNYXggKTsKCgkvLyBXaGVuIGluZmluaXRlIHNjcm9sbGluZywgd2UgYXJlIGFsd2F5cyBzdGFydGluZyBhdCAxLiBfaURpc3BsYXlTdGFydCBpcyB1c2VkIG9ubHkKCS8vIGludGVybmFsbHkKCWlmICggb1NldHRpbmdzLm9TY3JvbGwuYkluZmluaXRlICkKCXsKCQlzU3RhcnQgPSBvU2V0dGluZ3MuZm5Gb3JtYXROdW1iZXIoIDEgKTsKCX0KCglyZXR1cm4gc3RyLgoJCXJlcGxhY2UoJ19TVEFSVF8nLCBzU3RhcnQpLgoJCXJlcGxhY2UoJ19FTkRfJywgICBzRW5kKS4KCQlyZXBsYWNlKCdfVE9UQUxfJywgc1RvdGFsKS4KCQlyZXBsYWNlKCdfTUFYXycsICAgc01heCk7Cn0KCg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/core/core.init.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CgovKioKICogRHJhdyB0aGUgdGFibGUgZm9yIHRoZSBmaXJzdCB0aW1lLCBhZGRpbmcgYWxsIHJlcXVpcmVkIGZlYXR1cmVzCiAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CiAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKICovCmZ1bmN0aW9uIF9mbkluaXRpYWxpc2UgKCBvU2V0dGluZ3MgKQp7Cgl2YXIgaSwgaUxlbiwgaUFqYXhTdGFydD1vU2V0dGluZ3MuaUluaXREaXNwbGF5U3RhcnQ7CgkKCS8qIEVuc3VyZSB0aGF0IHRoZSB0YWJsZSBkYXRhIGlzIGZ1bGx5IGluaXRpYWxpc2VkICovCglpZiAoIG9TZXR0aW5ncy5iSW5pdGlhbGlzZWQgPT09IGZhbHNlICkKCXsKCQlzZXRUaW1lb3V0KCBmdW5jdGlvbigpeyBfZm5Jbml0aWFsaXNlKCBvU2V0dGluZ3MgKTsgfSwgMjAwICk7CgkJcmV0dXJuOwoJfQoJCgkvKiBTaG93IHRoZSBkaXNwbGF5IEhUTUwgb3B0aW9ucyAqLwoJX2ZuQWRkT3B0aW9uc0h0bWwoIG9TZXR0aW5ncyApOwoJCgkvKiBCdWlsZCBhbmQgZHJhdyB0aGUgaGVhZGVyIC8gZm9vdGVyIGZvciB0aGUgdGFibGUgKi8KCV9mbkJ1aWxkSGVhZCggb1NldHRpbmdzICk7CglfZm5EcmF3SGVhZCggb1NldHRpbmdzLCBvU2V0dGluZ3MuYW9IZWFkZXIgKTsKCWlmICggb1NldHRpbmdzLm5URm9vdCApCgl7CgkJX2ZuRHJhd0hlYWQoIG9TZXR0aW5ncywgb1NldHRpbmdzLmFvRm9vdGVyICk7Cgl9CgoJLyogT2theSB0byBzaG93IHRoYXQgc29tZXRoaW5nIGlzIGdvaW5nIG9uIG5vdyAqLwoJX2ZuUHJvY2Vzc2luZ0Rpc3BsYXkoIG9TZXR0aW5ncywgdHJ1ZSApOwoJCgkvKiBDYWxjdWxhdGUgc2l6ZXMgZm9yIGNvbHVtbnMgKi8KCWlmICggb1NldHRpbmdzLm9GZWF0dXJlcy5iQXV0b1dpZHRoICkKCXsKCQlfZm5DYWxjdWxhdGVDb2x1bW5XaWR0aHMoIG9TZXR0aW5ncyApOwoJfQoJCglmb3IgKCBpPTAsIGlMZW49b1NldHRpbmdzLmFvQ29sdW1ucy5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJewoJCWlmICggb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5zV2lkdGggIT09IG51bGwgKQoJCXsKCQkJb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5uVGguc3R5bGUud2lkdGggPSBfZm5TdHJpbmdUb0Nzcyggb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5zV2lkdGggKTsKCQl9Cgl9CgkKCS8qIElmIHRoZXJlIGlzIGRlZmF1bHQgc29ydGluZyByZXF1aXJlZCAtIGxldCdzIGRvIGl0LiBUaGUgc29ydCBmdW5jdGlvbiB3aWxsIGRvIHRoZQoJICogZHJhd2luZyBmb3IgdXMuIE90aGVyd2lzZSB3ZSBkcmF3IHRoZSB0YWJsZSByZWdhcmRsZXNzIG9mIHRoZSBBamF4IHNvdXJjZSAtIHRoaXMgYWxsb3dzCgkgKiB0aGUgdGFibGUgdG8gbG9vayBpbml0aWFsaXNlZCBmb3IgQWpheCBzb3VyY2luZyBkYXRhIChzaG93ICdsb2FkaW5nJyBtZXNzYWdlIHBvc3NpYmx5KQoJICovCglpZiAoIG9TZXR0aW5ncy5vRmVhdHVyZXMuYlNvcnQgKQoJewoJCV9mblNvcnQoIG9TZXR0aW5ncyApOwoJfQoJZWxzZSBpZiAoIG9TZXR0aW5ncy5vRmVhdHVyZXMuYkZpbHRlciApCgl7CgkJX2ZuRmlsdGVyQ29tcGxldGUoIG9TZXR0aW5ncywgb1NldHRpbmdzLm9QcmV2aW91c1NlYXJjaCApOwoJfQoJZWxzZQoJewoJCW9TZXR0aW5ncy5haURpc3BsYXkgPSBvU2V0dGluZ3MuYWlEaXNwbGF5TWFzdGVyLnNsaWNlKCk7CgkJX2ZuQ2FsY3VsYXRlRW5kKCBvU2V0dGluZ3MgKTsKCQlfZm5EcmF3KCBvU2V0dGluZ3MgKTsKCX0KCQoJLyogaWYgdGhlcmUgaXMgYW4gYWpheCBzb3VyY2UgbG9hZCB0aGUgZGF0YSAqLwoJaWYgKCBvU2V0dGluZ3Muc0FqYXhTb3VyY2UgIT09IG51bGwgJiYgIW9TZXR0aW5ncy5vRmVhdHVyZXMuYlNlcnZlclNpZGUgKQoJewoJCXZhciBhb0RhdGEgPSBbXTsKCQlfZm5TZXJ2ZXJQYXJhbXMoIG9TZXR0aW5ncywgYW9EYXRhICk7CgkJb1NldHRpbmdzLmZuU2VydmVyRGF0YS5jYWxsKCBvU2V0dGluZ3Mub0luc3RhbmNlLCBvU2V0dGluZ3Muc0FqYXhTb3VyY2UsIGFvRGF0YSwgZnVuY3Rpb24oanNvbikgewoJCQl2YXIgYURhdGEgPSAob1NldHRpbmdzLnNBamF4RGF0YVByb3AgIT09ICIiKSA/CgkJCSAJX2ZuR2V0T2JqZWN0RGF0YUZuKCBvU2V0dGluZ3Muc0FqYXhEYXRhUHJvcCApKGpzb24pIDoganNvbjsKCgkJCS8qIEdvdCB0aGUgZGF0YSAtIGFkZCBpdCB0byB0aGUgdGFibGUgKi8KCQkJZm9yICggaT0wIDsgaTxhRGF0YS5sZW5ndGggOyBpKysgKQoJCQl7CgkJCQlfZm5BZGREYXRhKCBvU2V0dGluZ3MsIGFEYXRhW2ldICk7CgkJCX0KCQkJCgkJCS8qIFJlc2V0IHRoZSBpbml0IGRpc3BsYXkgZm9yIGNvb2tpZSBzYXZpbmcuIFdlJ3ZlIGFscmVhZHkgZG9uZSBhIGZpbHRlciwgYW5kCgkJCSAqIHRoZXJlZm9yZSBjbGVhcmVkIGl0IGJlZm9yZS4gU28gd2UgbmVlZCB0byBtYWtlIGl0IGFwcGVhciAnZnJlc2gnCgkJCSAqLwoJCQlvU2V0dGluZ3MuaUluaXREaXNwbGF5U3RhcnQgPSBpQWpheFN0YXJ0OwoJCQkKCQkJaWYgKCBvU2V0dGluZ3Mub0ZlYXR1cmVzLmJTb3J0ICkKCQkJewoJCQkJX2ZuU29ydCggb1NldHRpbmdzICk7CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQlvU2V0dGluZ3MuYWlEaXNwbGF5ID0gb1NldHRpbmdzLmFpRGlzcGxheU1hc3Rlci5zbGljZSgpOwoJCQkJX2ZuQ2FsY3VsYXRlRW5kKCBvU2V0dGluZ3MgKTsKCQkJCV9mbkRyYXcoIG9TZXR0aW5ncyApOwoJCQl9CgkJCQoJCQlfZm5Qcm9jZXNzaW5nRGlzcGxheSggb1NldHRpbmdzLCBmYWxzZSApOwoJCQlfZm5Jbml0Q29tcGxldGUoIG9TZXR0aW5ncywganNvbiApOwoJCX0sIG9TZXR0aW5ncyApOwoJCXJldHVybjsKCX0KCQoJLyogU2VydmVyLXNpZGUgcHJvY2Vzc2luZyBpbml0aWFsaXNhdGlvbiBjb21wbGV0ZSBpcyBkb25lIGF0IHRoZSBlbmQgb2YgX2ZuRHJhdyAqLwoJaWYgKCAhb1NldHRpbmdzLm9GZWF0dXJlcy5iU2VydmVyU2lkZSApCgl7CgkJX2ZuUHJvY2Vzc2luZ0Rpc3BsYXkoIG9TZXR0aW5ncywgZmFsc2UgKTsKCQlfZm5Jbml0Q29tcGxldGUoIG9TZXR0aW5ncyApOwoJfQp9CgoKLyoqCiAqIERyYXcgdGhlIHRhYmxlIGZvciB0aGUgZmlyc3QgdGltZSwgYWRkaW5nIGFsbCByZXF1aXJlZCBmZWF0dXJlcwogKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAogKiAgQHBhcmFtIHtvYmplY3R9IFtqc29uXSBKU09OIGZyb20gdGhlIHNlcnZlciB0aGF0IGNvbXBsZXRlZCB0aGUgdGFibGUsIGlmIHVzaW5nIEFqYXggc291cmNlCiAqICAgIHdpdGggY2xpZW50LXNpZGUgcHJvY2Vzc2luZyAob3B0aW9uYWwpCiAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKICovCmZ1bmN0aW9uIF9mbkluaXRDb21wbGV0ZSAoIG9TZXR0aW5ncywganNvbiApCnsKCW9TZXR0aW5ncy5fYkluaXRDb21wbGV0ZSA9IHRydWU7CglfZm5DYWxsYmFja0ZpcmUoIG9TZXR0aW5ncywgJ2FvSW5pdENvbXBsZXRlJywgJ2luaXQnLCBbb1NldHRpbmdzLCBqc29uXSApOwp9CgoKLyoqCiAqIExhbmd1YWdlIGNvbXBhdGliaWxpdHkgLSB3aGVuIGNlcnRhaW4gb3B0aW9ucyBhcmUgZ2l2ZW4sIGFuZCBvdGhlcnMgYXJlbid0LCB3ZQogKiBuZWVkIHRvIGR1cGxpY2F0ZSB0aGUgdmFsdWVzIG92ZXIsIGluIG9yZGVyIHRvIHByb3ZpZGUgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkKICogd2l0aCBvbGRlciBsYW5ndWFnZSBmaWxlcy4KICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQogKi8KZnVuY3Rpb24gX2ZuTGFuZ3VhZ2VDb21wYXQoIG9MYW5ndWFnZSApCnsKCXZhciBvRGVmYXVsdHMgPSBEYXRhVGFibGUuZGVmYXVsdHMub0xhbmd1YWdlOwoKCS8qIEJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IC0gaWYgdGhlcmUgaXMgbm8gc0VtcHR5VGFibGUgZ2l2ZW4sIHRoZW4gdXNlIHRoZSBzYW1lIGFzCgkgKiBzWmVyb1JlY29yZHMgLSBhc3N1bWluZyB0aGF0IGlzIGdpdmVuLgoJICovCglpZiAoICFvTGFuZ3VhZ2Uuc0VtcHR5VGFibGUgJiYgb0xhbmd1YWdlLnNaZXJvUmVjb3JkcyAmJgoJCW9EZWZhdWx0cy5zRW1wdHlUYWJsZSA9PT0gIk5vIGRhdGEgYXZhaWxhYmxlIGluIHRhYmxlIiApCgl7CgkJX2ZuTWFwKCBvTGFuZ3VhZ2UsIG9MYW5ndWFnZSwgJ3NaZXJvUmVjb3JkcycsICdzRW1wdHlUYWJsZScgKTsKCX0KCgkvKiBMaWtld2lzZSB3aXRoIGxvYWRpbmcgcmVjb3JkcyAqLwoJaWYgKCAhb0xhbmd1YWdlLnNMb2FkaW5nUmVjb3JkcyAmJiBvTGFuZ3VhZ2Uuc1plcm9SZWNvcmRzICYmCgkJb0RlZmF1bHRzLnNMb2FkaW5nUmVjb3JkcyA9PT0gIkxvYWRpbmcuLi4iICkKCXsKCQlfZm5NYXAoIG9MYW5ndWFnZSwgb0xhbmd1YWdlLCAnc1plcm9SZWNvcmRzJywgJ3NMb2FkaW5nUmVjb3JkcycgKTsKCX0KfQoK]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/core/core.length.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CgovKioKICogR2VuZXJhdGUgdGhlIG5vZGUgcmVxdWlyZWQgZm9yIHVzZXIgZGlzcGxheSBsZW5ndGggY2hhbmdpbmcKICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKICogIEByZXR1cm5zIHtub2RlfSBEaXNwbGF5IGxlbmd0aCBmZWF0dXJlIG5vZGUKICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQogKi8KZnVuY3Rpb24gX2ZuRmVhdHVyZUh0bWxMZW5ndGggKCBvU2V0dGluZ3MgKQp7CglpZiAoIG9TZXR0aW5ncy5vU2Nyb2xsLmJJbmZpbml0ZSApCgl7CgkJcmV0dXJuIG51bGw7Cgl9CgkKCS8qIFRoaXMgY2FuIGJlIG92ZXJydWxlZCBieSBub3QgdXNpbmcgdGhlIF9NRU5VXyB2YXIvbWFjcm8gaW4gdGhlIGxhbmd1YWdlIHZhcmlhYmxlICovCgl2YXIgc05hbWUgPSAnbmFtZT0iJytvU2V0dGluZ3Muc1RhYmxlSWQrJ19sZW5ndGgiJzsKCXZhciBzU3RkTWVudSA9ICc8c2VsZWN0IHNpemU9IjEiICcrc05hbWUrJz4nOwoJdmFyIGksIGlMZW47Cgl2YXIgYUxlbmd0aE1lbnUgPSBvU2V0dGluZ3MuYUxlbmd0aE1lbnU7CgkKCWlmICggYUxlbmd0aE1lbnUubGVuZ3RoID09IDIgJiYgdHlwZW9mIGFMZW5ndGhNZW51WzBdID09PSAnb2JqZWN0JyAmJiAKCQkJdHlwZW9mIGFMZW5ndGhNZW51WzFdID09PSAnb2JqZWN0JyApCgl7CgkJZm9yICggaT0wLCBpTGVuPWFMZW5ndGhNZW51WzBdLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJewoJCQlzU3RkTWVudSArPSAnPG9wdGlvbiB2YWx1ZT0iJythTGVuZ3RoTWVudVswXVtpXSsnIj4nK2FMZW5ndGhNZW51WzFdW2ldKyc8L29wdGlvbj4nOwoJCX0KCX0KCWVsc2UKCXsKCQlmb3IgKCBpPTAsIGlMZW49YUxlbmd0aE1lbnUubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQl7CgkJCXNTdGRNZW51ICs9ICc8b3B0aW9uIHZhbHVlPSInK2FMZW5ndGhNZW51W2ldKyciPicrYUxlbmd0aE1lbnVbaV0rJzwvb3B0aW9uPic7CgkJfQoJfQoJc1N0ZE1lbnUgKz0gJzwvc2VsZWN0Pic7CgkKCXZhciBuTGVuZ3RoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggJ2RpdicgKTsKCWlmICggIW9TZXR0aW5ncy5hYW5GZWF0dXJlcy5sICkKCXsKCQluTGVuZ3RoLmlkID0gb1NldHRpbmdzLnNUYWJsZUlkKydfbGVuZ3RoJzsKCX0KCW5MZW5ndGguY2xhc3NOYW1lID0gb1NldHRpbmdzLm9DbGFzc2VzLnNMZW5ndGg7CgluTGVuZ3RoLmlubmVySFRNTCA9ICc8bGFiZWw+JytvU2V0dGluZ3Mub0xhbmd1YWdlLnNMZW5ndGhNZW51LnJlcGxhY2UoICdfTUVOVV8nLCBzU3RkTWVudSApKyc8L2xhYmVsPic7CgkKCS8qCgkgKiBTZXQgdGhlIGxlbmd0aCB0byB0aGUgY3VycmVudCBkaXNwbGF5IGxlbmd0aCAtIHRoYW5rcyB0byBBbmRyZWEgUGF2bG92aWMgZm9yIHRoaXMgZml4LAoJICogYW5kIFN0ZWZhbiBTa29wbmlrIGZvciBmaXhpbmcgdGhlIGZpeCEKCSAqLwoJJCgnc2VsZWN0IG9wdGlvblt2YWx1ZT0iJytvU2V0dGluZ3MuX2lEaXNwbGF5TGVuZ3RoKyciXScsIG5MZW5ndGgpLmF0dHIoInNlbGVjdGVkIiwgdHJ1ZSk7CgkKCSQoJ3NlbGVjdCcsIG5MZW5ndGgpLmJpbmQoICdjaGFuZ2UuRFQnLCBmdW5jdGlvbihlKSB7CgkJdmFyIGlWYWwgPSAkKHRoaXMpLnZhbCgpOwoJCQoJCS8qIFVwZGF0ZSBhbGwgb3RoZXIgbGVuZ3RoIG9wdGlvbnMgZm9yIHRoZSBuZXcgZGlzcGxheSAqLwoJCXZhciBuID0gb1NldHRpbmdzLmFhbkZlYXR1cmVzLmw7CgkJZm9yICggaT0wLCBpTGVuPW4ubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQl7CgkJCWlmICggbltpXSAhPSB0aGlzLnBhcmVudE5vZGUgKQoJCQl7CgkJCQkkKCdzZWxlY3QnLCBuW2ldKS52YWwoIGlWYWwgKTsKCQkJfQoJCX0KCQkKCQkvKiBSZWRyYXcgdGhlIHRhYmxlICovCgkJb1NldHRpbmdzLl9pRGlzcGxheUxlbmd0aCA9IHBhcnNlSW50KGlWYWwsIDEwKTsKCQlfZm5DYWxjdWxhdGVFbmQoIG9TZXR0aW5ncyApOwoJCQoJCS8qIElmIHdlIGhhdmUgc3BhY2UgdG8gc2hvdyBleHRyYSByb3dzIChiYWNraW5nIHVwIGZyb20gdGhlIGVuZCBwb2ludCAtIHRoZW4gZG8gc28gKi8KCQlpZiAoIG9TZXR0aW5ncy5mbkRpc3BsYXlFbmQoKSA9PSBvU2V0dGluZ3MuZm5SZWNvcmRzRGlzcGxheSgpICkKCQl7CgkJCW9TZXR0aW5ncy5faURpc3BsYXlTdGFydCA9IG9TZXR0aW5ncy5mbkRpc3BsYXlFbmQoKSAtIG9TZXR0aW5ncy5faURpc3BsYXlMZW5ndGg7CgkJCWlmICggb1NldHRpbmdzLl9pRGlzcGxheVN0YXJ0IDwgMCApCgkJCXsKCQkJCW9TZXR0aW5ncy5faURpc3BsYXlTdGFydCA9IDA7CgkJCX0KCQl9CgkJCgkJaWYgKCBvU2V0dGluZ3MuX2lEaXNwbGF5TGVuZ3RoID09IC0xICkKCQl7CgkJCW9TZXR0aW5ncy5faURpc3BsYXlTdGFydCA9IDA7CgkJfQoJCQoJCV9mbkRyYXcoIG9TZXR0aW5ncyApOwoJfSApOwoKCgkkKCdzZWxlY3QnLCBuTGVuZ3RoKS5hdHRyKCdhcmlhLWNvbnRyb2xzJywgb1NldHRpbmdzLnNUYWJsZUlkKTsKCQoJcmV0dXJuIG5MZW5ndGg7Cn0KCgovKioKICogUmVjYWxjdWxhdGUgdGhlIGVuZCBwb2ludCBiYXNlZCBvbiB0aGUgc3RhcnQgcG9pbnQKICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQogKi8KZnVuY3Rpb24gX2ZuQ2FsY3VsYXRlRW5kKCBvU2V0dGluZ3MgKQp7CglpZiAoIG9TZXR0aW5ncy5vRmVhdHVyZXMuYlBhZ2luYXRlID09PSBmYWxzZSApCgl7CgkJb1NldHRpbmdzLl9pRGlzcGxheUVuZCA9IG9TZXR0aW5ncy5haURpc3BsYXkubGVuZ3RoOwoJfQoJZWxzZQoJewoJCS8qIFNldCB0aGUgZW5kIHBvaW50IG9mIHRoZSBkaXNwbGF5IC0gYmFzZWQgb24gaG93IG1hbnkgZWxlbWVudHMgdGhlcmUgYXJlCgkJICogc3RpbGwgdG8gZGlzcGxheQoJCSAqLwoJCWlmICggb1NldHRpbmdzLl9pRGlzcGxheVN0YXJ0ICsgb1NldHRpbmdzLl9pRGlzcGxheUxlbmd0aCA+IG9TZXR0aW5ncy5haURpc3BsYXkubGVuZ3RoIHx8CgkJCSAgIG9TZXR0aW5ncy5faURpc3BsYXlMZW5ndGggPT0gLTEgKQoJCXsKCQkJb1NldHRpbmdzLl9pRGlzcGxheUVuZCA9IG9TZXR0aW5ncy5haURpc3BsYXkubGVuZ3RoOwoJCX0KCQllbHNlCgkJewoJCQlvU2V0dGluZ3MuX2lEaXNwbGF5RW5kID0gb1NldHRpbmdzLl9pRGlzcGxheVN0YXJ0ICsgb1NldHRpbmdzLl9pRGlzcGxheUxlbmd0aDsKCQl9Cgl9Cn0KCg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/core/core.page.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CgovKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKgogKiBOb3RlIHRoYXQgbW9zdCBvZiB0aGUgcGFnaW5nIGxvZ2ljIGlzIGRvbmUgaW4gCiAqIERhdGFUYWJsZS5leHQub1BhZ2luYXRpb24KICovCgovKioKICogR2VuZXJhdGUgdGhlIG5vZGUgcmVxdWlyZWQgZm9yIGRlZmF1bHQgcGFnaW5hdGlvbgogKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAogKiAgQHJldHVybnMge25vZGV9IFBhZ2luYXRpb24gZmVhdHVyZSBub2RlCiAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKICovCmZ1bmN0aW9uIF9mbkZlYXR1cmVIdG1sUGFnaW5hdGUgKCBvU2V0dGluZ3MgKQp7CglpZiAoIG9TZXR0aW5ncy5vU2Nyb2xsLmJJbmZpbml0ZSApCgl7CgkJcmV0dXJuIG51bGw7Cgl9CgkKCXZhciBuUGFnaW5hdGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCAnZGl2JyApOwoJblBhZ2luYXRlLmNsYXNzTmFtZSA9IG9TZXR0aW5ncy5vQ2xhc3Nlcy5zUGFnaW5nK29TZXR0aW5ncy5zUGFnaW5hdGlvblR5cGU7CgkKCURhdGFUYWJsZS5leHQub1BhZ2luYXRpb25bIG9TZXR0aW5ncy5zUGFnaW5hdGlvblR5cGUgXS5mbkluaXQoIG9TZXR0aW5ncywgblBhZ2luYXRlLCAKCQlmdW5jdGlvbiggb1NldHRpbmdzICkgewoJCQlfZm5DYWxjdWxhdGVFbmQoIG9TZXR0aW5ncyApOwoJCQlfZm5EcmF3KCBvU2V0dGluZ3MgKTsKCQl9CgkpOwoJCgkvKiBBZGQgYSBkcmF3IGNhbGxiYWNrIGZvciB0aGUgcGFnaW5hdGlvbiBvbiBmaXJzdCBpbnN0YW5jZSwgdG8gdXBkYXRlIHRoZSBwYWdpbmcgZGlzcGxheSAqLwoJaWYgKCAhb1NldHRpbmdzLmFhbkZlYXR1cmVzLnAgKQoJewoJCW9TZXR0aW5ncy5hb0RyYXdDYWxsYmFjay5wdXNoKCB7CgkJCSJmbiI6IGZ1bmN0aW9uKCBvU2V0dGluZ3MgKSB7CgkJCQlEYXRhVGFibGUuZXh0Lm9QYWdpbmF0aW9uWyBvU2V0dGluZ3Muc1BhZ2luYXRpb25UeXBlIF0uZm5VcGRhdGUoIG9TZXR0aW5ncywgZnVuY3Rpb24oIG9TZXR0aW5ncyApIHsKCQkJCQlfZm5DYWxjdWxhdGVFbmQoIG9TZXR0aW5ncyApOwoJCQkJCV9mbkRyYXcoIG9TZXR0aW5ncyApOwoJCQkJfSApOwoJCQl9LAoJCQkic05hbWUiOiAicGFnaW5hdGlvbiIKCQl9ICk7Cgl9CglyZXR1cm4gblBhZ2luYXRlOwp9CgoKLyoqCiAqIEFsdGVyIHRoZSBkaXNwbGF5IHNldHRpbmdzIHRvIGNoYW5nZSB0aGUgcGFnZQogKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAogKiAgQHBhcmFtIHtzdHJpbmd8aW50fSBtQWN0aW9uIFBhZ2luZyBhY3Rpb24gdG8gdGFrZTogImZpcnN0IiwgInByZXZpb3VzIiwgIm5leHQiIG9yICJsYXN0IgogKiAgICBvciBwYWdlIG51bWJlciB0byBqdW1wIHRvIChpbnRlZ2VyKQogKiAgQHJldHVybnMge2Jvb2x9IHRydWUgcGFnZSBoYXMgY2hhbmdlZCwgZmFsc2UgLSBubyBjaGFuZ2UgKG5vIGVmZmVjdCkgZWcgJ2ZpcnN0JyBvbiBwYWdlIDEKICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQogKi8KZnVuY3Rpb24gX2ZuUGFnZUNoYW5nZSAoIG9TZXR0aW5ncywgbUFjdGlvbiApCnsKCXZhciBpT2xkU3RhcnQgPSBvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQ7CgkKCWlmICggdHlwZW9mIG1BY3Rpb24gPT09ICJudW1iZXIiICkKCXsKCQlvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQgPSBtQWN0aW9uICogb1NldHRpbmdzLl9pRGlzcGxheUxlbmd0aDsKCQlpZiAoIG9TZXR0aW5ncy5faURpc3BsYXlTdGFydCA+IG9TZXR0aW5ncy5mblJlY29yZHNEaXNwbGF5KCkgKQoJCXsKCQkJb1NldHRpbmdzLl9pRGlzcGxheVN0YXJ0ID0gMDsKCQl9Cgl9CgllbHNlIGlmICggbUFjdGlvbiA9PSAiZmlyc3QiICkKCXsKCQlvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQgPSAwOwoJfQoJZWxzZSBpZiAoIG1BY3Rpb24gPT0gInByZXZpb3VzIiApCgl7CgkJb1NldHRpbmdzLl9pRGlzcGxheVN0YXJ0ID0gb1NldHRpbmdzLl9pRGlzcGxheUxlbmd0aD49MCA/CgkJCW9TZXR0aW5ncy5faURpc3BsYXlTdGFydCAtIG9TZXR0aW5ncy5faURpc3BsYXlMZW5ndGggOgoJCQkwOwoJCQoJCS8qIENvcnJlY3QgZm9yIHVuZGVyLXJ1biAqLwoJCWlmICggb1NldHRpbmdzLl9pRGlzcGxheVN0YXJ0IDwgMCApCgkJewoJCSAgb1NldHRpbmdzLl9pRGlzcGxheVN0YXJ0ID0gMDsKCQl9Cgl9CgllbHNlIGlmICggbUFjdGlvbiA9PSAibmV4dCIgKQoJewoJCWlmICggb1NldHRpbmdzLl9pRGlzcGxheUxlbmd0aCA+PSAwICkKCQl7CgkJCS8qIE1ha2Ugc3VyZSB3ZSBhcmUgbm90IG92ZXIgcnVubmluZyB0aGUgZGlzcGxheSBhcnJheSAqLwoJCQlpZiAoIG9TZXR0aW5ncy5faURpc3BsYXlTdGFydCArIG9TZXR0aW5ncy5faURpc3BsYXlMZW5ndGggPCBvU2V0dGluZ3MuZm5SZWNvcmRzRGlzcGxheSgpICkKCQkJewoJCQkJb1NldHRpbmdzLl9pRGlzcGxheVN0YXJ0ICs9IG9TZXR0aW5ncy5faURpc3BsYXlMZW5ndGg7CgkJCX0KCQl9CgkJZWxzZQoJCXsKCQkJb1NldHRpbmdzLl9pRGlzcGxheVN0YXJ0ID0gMDsKCQl9Cgl9CgllbHNlIGlmICggbUFjdGlvbiA9PSAibGFzdCIgKQoJewoJCWlmICggb1NldHRpbmdzLl9pRGlzcGxheUxlbmd0aCA+PSAwICkKCQl7CgkJCXZhciBpUGFnZXMgPSBwYXJzZUludCggKG9TZXR0aW5ncy5mblJlY29yZHNEaXNwbGF5KCktMSkgLyBvU2V0dGluZ3MuX2lEaXNwbGF5TGVuZ3RoLCAxMCApICsgMTsKCQkJb1NldHRpbmdzLl9pRGlzcGxheVN0YXJ0ID0gKGlQYWdlcy0xKSAqIG9TZXR0aW5ncy5faURpc3BsYXlMZW5ndGg7CgkJfQoJCWVsc2UKCQl7CgkJCW9TZXR0aW5ncy5faURpc3BsYXlTdGFydCA9IDA7CgkJfQoJfQoJZWxzZQoJewoJCV9mbkxvZyggb1NldHRpbmdzLCAwLCAiVW5rbm93biBwYWdpbmcgYWN0aW9uOiAiK21BY3Rpb24gKTsKCX0KCSQob1NldHRpbmdzLm9JbnN0YW5jZSkudHJpZ2dlcigncGFnZScsIG9TZXR0aW5ncyk7CgkKCXJldHVybiBpT2xkU3RhcnQgIT0gb1NldHRpbmdzLl9pRGlzcGxheVN0YXJ0Owp9Cgo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/core/core.processing.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CgovKioKICogR2VuZXJhdGUgdGhlIG5vZGUgcmVxdWlyZWQgZm9yIHRoZSBwcm9jZXNzaW5nIG5vZGUKICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKICogIEByZXR1cm5zIHtub2RlfSBQcm9jZXNzaW5nIGVsZW1lbnQKICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQogKi8KZnVuY3Rpb24gX2ZuRmVhdHVyZUh0bWxQcm9jZXNzaW5nICggb1NldHRpbmdzICkKewoJdmFyIG5Qcm9jZXNzaW5nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggJ2RpdicgKTsKCQoJaWYgKCAhb1NldHRpbmdzLmFhbkZlYXR1cmVzLnIgKQoJewoJCW5Qcm9jZXNzaW5nLmlkID0gb1NldHRpbmdzLnNUYWJsZUlkKydfcHJvY2Vzc2luZyc7Cgl9CgluUHJvY2Vzc2luZy5pbm5lckhUTUwgPSBvU2V0dGluZ3Mub0xhbmd1YWdlLnNQcm9jZXNzaW5nOwoJblByb2Nlc3NpbmcuY2xhc3NOYW1lID0gb1NldHRpbmdzLm9DbGFzc2VzLnNQcm9jZXNzaW5nOwoJb1NldHRpbmdzLm5UYWJsZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZSggblByb2Nlc3NpbmcsIG9TZXR0aW5ncy5uVGFibGUgKTsKCQoJcmV0dXJuIG5Qcm9jZXNzaW5nOwp9CgoKLyoqCiAqIERpc3BsYXkgb3IgaGlkZSB0aGUgcHJvY2Vzc2luZyBpbmRpY2F0b3IKICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKICogIEBwYXJhbSB7Ym9vbH0gYlNob3cgU2hvdyB0aGUgcHJvY2Vzc2luZyBpbmRpY2F0b3IgKHRydWUpIG9yIG5vdCAoZmFsc2UpCiAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKICovCmZ1bmN0aW9uIF9mblByb2Nlc3NpbmdEaXNwbGF5ICggb1NldHRpbmdzLCBiU2hvdyApCnsKCWlmICggb1NldHRpbmdzLm9GZWF0dXJlcy5iUHJvY2Vzc2luZyApCgl7CgkJdmFyIGFuID0gb1NldHRpbmdzLmFhbkZlYXR1cmVzLnI7CgkJZm9yICggdmFyIGk9MCwgaUxlbj1hbi5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCXsKCQkJYW5baV0uc3R5bGUudmlzaWJpbGl0eSA9IGJTaG93ID8gInZpc2libGUiIDogImhpZGRlbiI7CgkJfQoJfQoKCSQob1NldHRpbmdzLm9JbnN0YW5jZSkudHJpZ2dlcigncHJvY2Vzc2luZycsIFtvU2V0dGluZ3MsIGJTaG93XSk7Cn0KCg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/core/core.scrolling.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CgovKioKICogQWRkIGFueSBjb250cm9sIGVsZW1lbnRzIGZvciB0aGUgdGFibGUgLSBzcGVjaWZpY2FsbHkgc2Nyb2xsaW5nCiAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CiAqICBAcmV0dXJucyB7bm9kZX0gTm9kZSB0byBhZGQgdG8gdGhlIERPTQogKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCiAqLwpmdW5jdGlvbiBfZm5GZWF0dXJlSHRtbFRhYmxlICggb1NldHRpbmdzICkKewoJLyogQ2hlY2sgaWYgc2Nyb2xsaW5nIGlzIGVuYWJsZWQgb3Igbm90IC0gaWYgbm90IHRoZW4gbGVhdmUgdGhlIERPTSB1bmFsdGVyZWQgKi8KCWlmICggb1NldHRpbmdzLm9TY3JvbGwuc1ggPT09ICIiICYmIG9TZXR0aW5ncy5vU2Nyb2xsLnNZID09PSAiIiApCgl7CgkJcmV0dXJuIG9TZXR0aW5ncy5uVGFibGU7Cgl9CgkKCS8qCgkgKiBUaGUgSFRNTCBzdHJ1Y3R1cmUgdGhhdCB3ZSB3YW50IHRvIGdlbmVyYXRlIGluIHRoaXMgZnVuY3Rpb24gaXM6CgkgKiAgZGl2IC0gblNjcm9sbGVyCgkgKiAgICBkaXYgLSBuU2Nyb2xsSGVhZAoJICogICAgICBkaXYgLSBuU2Nyb2xsSGVhZElubmVyCgkgKiAgICAgICAgdGFibGUgLSBuU2Nyb2xsSGVhZFRhYmxlCgkgKiAgICAgICAgICB0aGVhZCAtIG5UaGVhZAoJICogICAgZGl2IC0gblNjcm9sbEJvZHkKCSAqICAgICAgdGFibGUgLSBvU2V0dGluZ3MublRhYmxlCgkgKiAgICAgICAgdGhlYWQgLSBuVGhlYWRTaXplCgkgKiAgICAgICAgdGJvZHkgLSBuVGJvZHkKCSAqICAgIGRpdiAtIG5TY3JvbGxGb290CgkgKiAgICAgIGRpdiAtIG5TY3JvbGxGb290SW5uZXIKCSAqICAgICAgICB0YWJsZSAtIG5TY3JvbGxGb290VGFibGUKCSAqICAgICAgICAgIHRmb290IC0gblRmb290CgkgKi8KCXZhcgoJIAluU2Nyb2xsZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSwKCSAJblNjcm9sbEhlYWQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSwKCSAJblNjcm9sbEhlYWRJbm5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLAoJIAluU2Nyb2xsQm9keSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLAoJIAluU2Nyb2xsRm9vdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLAoJIAluU2Nyb2xsRm9vdElubmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksCgkgCW5TY3JvbGxIZWFkVGFibGUgPSBvU2V0dGluZ3MublRhYmxlLmNsb25lTm9kZShmYWxzZSksCgkgCW5TY3JvbGxGb290VGFibGUgPSBvU2V0dGluZ3MublRhYmxlLmNsb25lTm9kZShmYWxzZSksCgkJblRoZWFkID0gb1NldHRpbmdzLm5UYWJsZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgndGhlYWQnKVswXSwKCSAJblRmb290ID0gb1NldHRpbmdzLm5UYWJsZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgndGZvb3QnKS5sZW5ndGggPT09IDAgPyBudWxsIDogCgkJCW9TZXR0aW5ncy5uVGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3Rmb290JylbMF0sCgkJb0NsYXNzZXMgPSBvU2V0dGluZ3Mub0NsYXNzZXM7CgkKCW5TY3JvbGxIZWFkLmFwcGVuZENoaWxkKCBuU2Nyb2xsSGVhZElubmVyICk7CgluU2Nyb2xsRm9vdC5hcHBlbmRDaGlsZCggblNjcm9sbEZvb3RJbm5lciApOwoJblNjcm9sbEJvZHkuYXBwZW5kQ2hpbGQoIG9TZXR0aW5ncy5uVGFibGUgKTsKCW5TY3JvbGxlci5hcHBlbmRDaGlsZCggblNjcm9sbEhlYWQgKTsKCW5TY3JvbGxlci5hcHBlbmRDaGlsZCggblNjcm9sbEJvZHkgKTsKCW5TY3JvbGxIZWFkSW5uZXIuYXBwZW5kQ2hpbGQoIG5TY3JvbGxIZWFkVGFibGUgKTsKCW5TY3JvbGxIZWFkVGFibGUuYXBwZW5kQ2hpbGQoIG5UaGVhZCApOwoJaWYgKCBuVGZvb3QgIT09IG51bGwgKQoJewoJCW5TY3JvbGxlci5hcHBlbmRDaGlsZCggblNjcm9sbEZvb3QgKTsKCQluU2Nyb2xsRm9vdElubmVyLmFwcGVuZENoaWxkKCBuU2Nyb2xsRm9vdFRhYmxlICk7CgkJblNjcm9sbEZvb3RUYWJsZS5hcHBlbmRDaGlsZCggblRmb290ICk7Cgl9CgkKCW5TY3JvbGxlci5jbGFzc05hbWUgPSBvQ2xhc3Nlcy5zU2Nyb2xsV3JhcHBlcjsKCW5TY3JvbGxIZWFkLmNsYXNzTmFtZSA9IG9DbGFzc2VzLnNTY3JvbGxIZWFkOwoJblNjcm9sbEhlYWRJbm5lci5jbGFzc05hbWUgPSBvQ2xhc3Nlcy5zU2Nyb2xsSGVhZElubmVyOwoJblNjcm9sbEJvZHkuY2xhc3NOYW1lID0gb0NsYXNzZXMuc1Njcm9sbEJvZHk7CgluU2Nyb2xsRm9vdC5jbGFzc05hbWUgPSBvQ2xhc3Nlcy5zU2Nyb2xsRm9vdDsKCW5TY3JvbGxGb290SW5uZXIuY2xhc3NOYW1lID0gb0NsYXNzZXMuc1Njcm9sbEZvb3RJbm5lcjsKCQoJaWYgKCBvU2V0dGluZ3Mub1Njcm9sbC5iQXV0b0NzcyApCgl7CgkJblNjcm9sbEhlYWQuc3R5bGUub3ZlcmZsb3cgPSAiaGlkZGVuIjsKCQluU2Nyb2xsSGVhZC5zdHlsZS5wb3NpdGlvbiA9ICJyZWxhdGl2ZSI7CgkJblNjcm9sbEZvb3Quc3R5bGUub3ZlcmZsb3cgPSAiaGlkZGVuIjsKCQluU2Nyb2xsQm9keS5zdHlsZS5vdmVyZmxvdyA9ICJhdXRvIjsKCX0KCQoJblNjcm9sbEhlYWQuc3R5bGUuYm9yZGVyID0gIjAiOwoJblNjcm9sbEhlYWQuc3R5bGUud2lkdGggPSAiMTAwJSI7CgluU2Nyb2xsRm9vdC5zdHlsZS5ib3JkZXIgPSAiMCI7CgluU2Nyb2xsSGVhZElubmVyLnN0eWxlLndpZHRoID0gb1NldHRpbmdzLm9TY3JvbGwuc1hJbm5lciAhPT0gIiIgPwoJCW9TZXR0aW5ncy5vU2Nyb2xsLnNYSW5uZXIgOiAiMTAwJSI7IC8qIHdpbGwgYmUgb3ZlcndyaXR0ZW4gKi8KCQoJLyogTW9kaWZ5IGF0dHJpYnV0ZXMgdG8gcmVzcGVjdCB0aGUgY2xvbmVzICovCgluU2Nyb2xsSGVhZFRhYmxlLnJlbW92ZUF0dHJpYnV0ZSgnaWQnKTsKCW5TY3JvbGxIZWFkVGFibGUuc3R5bGUubWFyZ2luTGVmdCA9ICIwIjsKCW9TZXR0aW5ncy5uVGFibGUuc3R5bGUubWFyZ2luTGVmdCA9ICIwIjsKCWlmICggblRmb290ICE9PSBudWxsICkKCXsKCQluU2Nyb2xsRm9vdFRhYmxlLnJlbW92ZUF0dHJpYnV0ZSgnaWQnKTsKCQluU2Nyb2xsRm9vdFRhYmxlLnN0eWxlLm1hcmdpbkxlZnQgPSAiMCI7Cgl9CgkKCS8qIE1vdmUgY2FwdGlvbiBlbGVtZW50cyBmcm9tIHRoZSBib2R5IHRvIHRoZSBoZWFkZXIsIGZvb3RlciBvciBsZWF2ZSB3aGVyZSBpdCBpcwoJICogZGVwZW5kaW5nIG9uIHRoZSBjb25maWd1cmF0aW9uLiBOb3RlIHRoYXQgdGhlIERURCBzYXlzIHRoZXJlIGNhbiBiZSBvbmx5IG9uZSBjYXB0aW9uICovCgl2YXIgbkNhcHRpb24gPSAkKG9TZXR0aW5ncy5uVGFibGUpLmNoaWxkcmVuKCdjYXB0aW9uJyk7CglpZiAoIG5DYXB0aW9uLmxlbmd0aCA+IDAgKQoJewoJCW5DYXB0aW9uID0gbkNhcHRpb25bMF07CgkJaWYgKCBuQ2FwdGlvbi5fY2FwdGlvblNpZGUgPT09ICJ0b3AiICkKCQl7CgkJCW5TY3JvbGxIZWFkVGFibGUuYXBwZW5kQ2hpbGQoIG5DYXB0aW9uICk7CgkJfQoJCWVsc2UgaWYgKCBuQ2FwdGlvbi5fY2FwdGlvblNpZGUgPT09ICJib3R0b20iICYmIG5UZm9vdCApCgkJewoJCQluU2Nyb2xsRm9vdFRhYmxlLmFwcGVuZENoaWxkKCBuQ2FwdGlvbiApOwoJCX0KCX0KCQoJLyoKCSAqIFNpemluZwoJICovCgkvKiBXaGVuIHgtc2Nyb2xsaW5nIGFkZCB0aGUgd2lkdGggYW5kIGEgc2Nyb2xsZXIgdG8gbW92ZSB0aGUgaGVhZGVyIHdpdGggdGhlIGJvZHkgKi8KCWlmICggb1NldHRpbmdzLm9TY3JvbGwuc1ggIT09ICIiICkKCXsKCQluU2Nyb2xsSGVhZC5zdHlsZS53aWR0aCA9IF9mblN0cmluZ1RvQ3NzKCBvU2V0dGluZ3Mub1Njcm9sbC5zWCApOwoJCW5TY3JvbGxCb2R5LnN0eWxlLndpZHRoID0gX2ZuU3RyaW5nVG9Dc3MoIG9TZXR0aW5ncy5vU2Nyb2xsLnNYICk7CgkJCgkJaWYgKCBuVGZvb3QgIT09IG51bGwgKQoJCXsKCQkJblNjcm9sbEZvb3Quc3R5bGUud2lkdGggPSBfZm5TdHJpbmdUb0Nzcyggb1NldHRpbmdzLm9TY3JvbGwuc1ggKTsJCgkJfQoJCQoJCS8qIFdoZW4gdGhlIGJvZHkgaXMgc2Nyb2xsZWQsIHRoZW4gd2UgYWxzbyB3YW50IHRvIHNjcm9sbCB0aGUgaGVhZGVycyAqLwoJCSQoblNjcm9sbEJvZHkpLnNjcm9sbCggZnVuY3Rpb24gKGUpIHsKCQkJblNjcm9sbEhlYWQuc2Nyb2xsTGVmdCA9IHRoaXMuc2Nyb2xsTGVmdDsKCQkJCgkJCWlmICggblRmb290ICE9PSBudWxsICkKCQkJewoJCQkJblNjcm9sbEZvb3Quc2Nyb2xsTGVmdCA9IHRoaXMuc2Nyb2xsTGVmdDsKCQkJfQoJCX0gKTsKCX0KCQoJLyogV2hlbiB5c2Nyb2xsaW5nLCBhZGQgdGhlIGhlaWdodCAqLwoJaWYgKCBvU2V0dGluZ3Mub1Njcm9sbC5zWSAhPT0gIiIgKQoJewoJCW5TY3JvbGxCb2R5LnN0eWxlLmhlaWdodCA9IF9mblN0cmluZ1RvQ3NzKCBvU2V0dGluZ3Mub1Njcm9sbC5zWSApOwoJfQoJCgkvKiBSZWRyYXcgLSBhbGlnbiBjb2x1bW5zIGFjcm9zcyB0aGUgdGFibGVzICovCglvU2V0dGluZ3MuYW9EcmF3Q2FsbGJhY2sucHVzaCggewoJCSJmbiI6IF9mblNjcm9sbERyYXcsCgkJInNOYW1lIjogInNjcm9sbGluZyIKCX0gKTsKCQoJLyogSW5maW5pdGUgc2Nyb2xsaW5nIGV2ZW50IGhhbmRsZXJzICovCglpZiAoIG9TZXR0aW5ncy5vU2Nyb2xsLmJJbmZpbml0ZSApCgl7CgkJJChuU2Nyb2xsQm9keSkuc2Nyb2xsKCBmdW5jdGlvbigpIHsKCQkJLyogVXNlIGEgYmxvY2tlciB0byBzdG9wIHNjcm9sbGluZyBmcm9tIGxvYWRpbmcgbW9yZSBkYXRhIHdoaWxlIG90aGVyIGRhdGEgaXMgc3RpbGwgbG9hZGluZyAqLwoJCQlpZiAoICFvU2V0dGluZ3MuYkRyYXdpbmcgJiYgJCh0aGlzKS5zY3JvbGxUb3AoKSAhPT0gMCApCgkJCXsKCQkJCS8qIENoZWNrIGlmIHdlIHNob3VsZCBsb2FkIHRoZSBuZXh0IGRhdGEgc2V0ICovCgkJCQlpZiAoICQodGhpcykuc2Nyb2xsVG9wKCkgKyAkKHRoaXMpLmhlaWdodCgpID4gCgkJCQkJJChvU2V0dGluZ3MublRhYmxlKS5oZWlnaHQoKSAtIG9TZXR0aW5ncy5vU2Nyb2xsLmlMb2FkR2FwICkKCQkJCXsKCQkJCQkvKiBPbmx5IGRvIHRoZSByZWRyYXcgaWYgd2UgaGF2ZSB0byAtIHdlIG1pZ2h0IGJlIGF0IHRoZSBlbmQgb2YgdGhlIGRhdGEgKi8KCQkJCQlpZiAoIG9TZXR0aW5ncy5mbkRpc3BsYXlFbmQoKSA8IG9TZXR0aW5ncy5mblJlY29yZHNEaXNwbGF5KCkgKQoJCQkJCXsKCQkJCQkJX2ZuUGFnZUNoYW5nZSggb1NldHRpbmdzLCAnbmV4dCcgKTsKCQkJCQkJX2ZuQ2FsY3VsYXRlRW5kKCBvU2V0dGluZ3MgKTsKCQkJCQkJX2ZuRHJhdyggb1NldHRpbmdzICk7CgkJCQkJfQoJCQkJfQoJCQl9CgkJfSApOwoJfQoJCglvU2V0dGluZ3MublNjcm9sbEhlYWQgPSBuU2Nyb2xsSGVhZDsKCW9TZXR0aW5ncy5uU2Nyb2xsRm9vdCA9IG5TY3JvbGxGb290OwoJCglyZXR1cm4gblNjcm9sbGVyOwp9CgoKLyoqCiAqIFVwZGF0ZSB0aGUgdmFyaW91cyB0YWJsZXMgZm9yIHJlc2l6aW5nLiBJdCdzIGEgYml0IG9mIGEgcGlnIHRoaXMgZnVuY3Rpb24sIGJ1dAogKiBiYXNpY2FsbHkgdGhlIGlkZWEgdG86CiAqICAgMS4gUmUtY3JlYXRlIHRoZSB0YWJsZSBpbnNpZGUgdGhlIHNjcm9sbGluZyBkaXYKICogICAyLiBUYWtlIGxpdmUgbWVhc3VyZW1lbnRzIGZyb20gdGhlIERPTQogKiAgIDMuIEFwcGx5IHRoZSBtZWFzdXJlbWVudHMKICogICA0LiBDbGVhbiB1cAogKiAgQHBhcmFtIHtvYmplY3R9IG8gZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKICogIEByZXR1cm5zIHtub2RlfSBOb2RlIHRvIGFkZCB0byB0aGUgRE9NCiAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKICovCmZ1bmN0aW9uIF9mblNjcm9sbERyYXcgKCBvICkKewoJdmFyCgkJblNjcm9sbEhlYWRJbm5lciA9IG8ublNjcm9sbEhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2RpdicpWzBdLAoJCW5TY3JvbGxIZWFkVGFibGUgPSBuU2Nyb2xsSGVhZElubmVyLmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0YWJsZScpWzBdLAoJCW5TY3JvbGxCb2R5ID0gby5uVGFibGUucGFyZW50Tm9kZSwKCQlpLCBpTGVuLCBqLCBqTGVuLCBhbkhlYWRUb1NpemUsIGFuSGVhZFNpemVycywgYW5Gb290U2l6ZXJzLCBhbkZvb3RUb1NpemUsIG9TdHlsZSwgaVZpcywKCQluVGhlYWRTaXplLCBuVGZvb3RTaXplLAoJCWlXaWR0aCwgYUFwcGxpZWQ9W10sIGlTYW5pdHlXaWR0aCwKCQluU2Nyb2xsRm9vdElubmVyID0gKG8ublRGb290ICE9PSBudWxsKSA/IG8ublNjcm9sbEZvb3QuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2RpdicpWzBdIDogbnVsbCwKCQluU2Nyb2xsRm9vdFRhYmxlID0gKG8ublRGb290ICE9PSBudWxsKSA/IG5TY3JvbGxGb290SW5uZXIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RhYmxlJylbMF0gOiBudWxsLAoJCWllNjcgPSBvLm9Ccm93c2VyLmJTY3JvbGxPdmVyc2l6ZTsKCQoJLyoKCSAqIDEuIFJlLWNyZWF0ZSB0aGUgdGFibGUgaW5zaWRlIHRoZSBzY3JvbGxpbmcgZGl2CgkgKi8KCQoJLyogUmVtb3ZlIHRoZSBvbGQgbWluaW1pc2VkIHRoZWFkIGFuZCB0Zm9vdCBlbGVtZW50cyBpbiB0aGUgaW5uZXIgdGFibGUgKi8KCSQoby5uVGFibGUpLmNoaWxkcmVuKCd0aGVhZCwgdGZvb3QnKS5yZW1vdmUoKTsKCgkvKiBDbG9uZSB0aGUgY3VycmVudCBoZWFkZXIgYW5kIGZvb3RlciBlbGVtZW50cyBhbmQgdGhlbiBwbGFjZSBpdCBpbnRvIHRoZSBpbm5lciB0YWJsZSAqLwoJblRoZWFkU2l6ZSA9ICQoby5uVEhlYWQpLmNsb25lKClbMF07CglvLm5UYWJsZS5pbnNlcnRCZWZvcmUoIG5UaGVhZFNpemUsIG8ublRhYmxlLmNoaWxkTm9kZXNbMF0gKTsKCQoJaWYgKCBvLm5URm9vdCAhPT0gbnVsbCApCgl7CgkJblRmb290U2l6ZSA9ICQoby5uVEZvb3QpLmNsb25lKClbMF07CgkJby5uVGFibGUuaW5zZXJ0QmVmb3JlKCBuVGZvb3RTaXplLCBvLm5UYWJsZS5jaGlsZE5vZGVzWzFdICk7Cgl9CgkKCS8qCgkgKiAyLiBUYWtlIGxpdmUgbWVhc3VyZW1lbnRzIGZyb20gdGhlIERPTSAtIGRvIG5vdCBhbHRlciB0aGUgRE9NIGl0c2VsZiEKCSAqLwoJCgkvKiBSZW1vdmUgb2xkIHNpemluZyBhbmQgYXBwbHkgdGhlIGNhbGN1bGF0ZWQgY29sdW1uIHdpZHRocwoJICogR2V0IHRoZSB1bmlxdWUgY29sdW1uIGhlYWRlcnMgaW4gdGhlIG5ld2x5IGNyZWF0ZWQgKGNsb25lZCkgaGVhZGVyLiBXZSB3YW50IHRvIGFwcGx5IHRoZQoJICogY2FsY3VsYXRlZCBzaXplcyB0byB0aGlzIGhlYWRlcgoJICovCglpZiAoIG8ub1Njcm9sbC5zWCA9PT0gIiIgKQoJewoJCW5TY3JvbGxCb2R5LnN0eWxlLndpZHRoID0gJzEwMCUnOwoJCW5TY3JvbGxIZWFkSW5uZXIucGFyZW50Tm9kZS5zdHlsZS53aWR0aCA9ICcxMDAlJzsKCX0KCQoJdmFyIG5UaHMgPSBfZm5HZXRVbmlxdWVUaHMoIG8sIG5UaGVhZFNpemUgKTsKCWZvciAoIGk9MCwgaUxlbj1uVGhzLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgl7CgkJaVZpcyA9IF9mblZpc2libGVUb0NvbHVtbkluZGV4KCBvLCBpICk7CgkJblRoc1tpXS5zdHlsZS53aWR0aCA9IG8uYW9Db2x1bW5zW2lWaXNdLnNXaWR0aDsKCX0KCQoJaWYgKCBvLm5URm9vdCAhPT0gbnVsbCApCgl7CgkJX2ZuQXBwbHlUb0NoaWxkcmVuKCBmdW5jdGlvbihuKSB7CgkJCW4uc3R5bGUud2lkdGggPSAiIjsKCQl9LCBuVGZvb3RTaXplLmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0cicpICk7Cgl9CgoJLy8gSWYgc2Nyb2xsIGNvbGxhcHNlIGlzIGVuYWJsZWQsIHdoZW4gd2UgcHV0IHRoZSBoZWFkZXJzIGJhY2sgaW50byB0aGUgYm9keSBmb3Igc2l6aW5nLCB3ZQoJLy8gd2lsbCBlbmQgdXAgZm9yY2luZyB0aGUgc2Nyb2xsYmFyIHRvIGFwcGVhciwgbWFraW5nIG91ciBtZWFzdXJlbWVudHMgd3JvbmcgZm9yIHdoZW4gd2UKCS8vIHRoZW4gaGlkZSBpdCAoZW5kIG9mIHRoaXMgZnVuY3Rpb24pLCBzbyBhZGQgdGhlIGhlYWRlciBoZWlnaHQgdG8gdGhlIGJvZHkgc2Nyb2xsZXIuCglpZiAoIG8ub1Njcm9sbC5iQ29sbGFwc2UgJiYgby5vU2Nyb2xsLnNZICE9PSAiIiApCgl7CgkJblNjcm9sbEJvZHkuc3R5bGUuaGVpZ2h0ID0gKG5TY3JvbGxCb2R5Lm9mZnNldEhlaWdodCArIG8ublRIZWFkLm9mZnNldEhlaWdodCkrInB4IjsKCX0KCQoJLyogU2l6ZSB0aGUgdGFibGUgYXMgYSB3aG9sZSAqLwoJaVNhbml0eVdpZHRoID0gJChvLm5UYWJsZSkub3V0ZXJXaWR0aCgpOwoJaWYgKCBvLm9TY3JvbGwuc1ggPT09ICIiICkKCXsKCQkvKiBObyB4IHNjcm9sbGluZyAqLwoJCW8ublRhYmxlLnN0eWxlLndpZHRoID0gIjEwMCUiOwoJCQoJCS8qIEkga25vdyB0aGlzIGlzIHJ1YmJpc2ggLSBidXQgSUU3IHdpbGwgbWFrZSB0aGUgd2lkdGggb2YgdGhlIHRhYmxlIHdoZW4gMTAwJSBpbmNsdWRlCgkJICogdGhlIHNjcm9sbGJhciAtIHdoaWNoIGlzIHNob3VsZG4ndC4gV2hlbiB0aGVyZSBpcyBhIHNjcm9sbGJhciB3ZSBuZWVkIHRvIHRha2UgdGhpcwoJCSAqIGludG8gYWNjb3VudC4KCQkgKi8KCQlpZiAoIGllNjcgJiYgKCQoJ3Rib2R5JywgblNjcm9sbEJvZHkpLmhlaWdodCgpID4gblNjcm9sbEJvZHkub2Zmc2V0SGVpZ2h0IHx8IAoJCQkkKG5TY3JvbGxCb2R5KS5jc3MoJ292ZXJmbG93LXknKSA9PSAic2Nyb2xsIikgICkKCQl7CgkJCW8ublRhYmxlLnN0eWxlLndpZHRoID0gX2ZuU3RyaW5nVG9Dc3MoICQoby5uVGFibGUpLm91dGVyV2lkdGgoKSAtIG8ub1Njcm9sbC5pQmFyV2lkdGgpOwoJCX0KCX0KCWVsc2UKCXsKCQlpZiAoIG8ub1Njcm9sbC5zWElubmVyICE9PSAiIiApCgkJewoJCQkvKiB4IHNjcm9sbCBpbm5lciBoYXMgYmVlbiBnaXZlbiAtIHVzZSBpdCAqLwoJCQlvLm5UYWJsZS5zdHlsZS53aWR0aCA9IF9mblN0cmluZ1RvQ3NzKG8ub1Njcm9sbC5zWElubmVyKTsKCQl9CgkJZWxzZSBpZiAoIGlTYW5pdHlXaWR0aCA9PSAkKG5TY3JvbGxCb2R5KS53aWR0aCgpICYmCgkJICAgJChuU2Nyb2xsQm9keSkuaGVpZ2h0KCkgPCAkKG8ublRhYmxlKS5oZWlnaHQoKSApCgkJewoJCQkvKiBUaGVyZSBpcyB5LXNjcm9sbGluZyAtIHRyeSB0byB0YWtlIGFjY291bnQgb2YgdGhlIHkgc2Nyb2xsIGJhciAqLwoJCQlvLm5UYWJsZS5zdHlsZS53aWR0aCA9IF9mblN0cmluZ1RvQ3NzKCBpU2FuaXR5V2lkdGgtby5vU2Nyb2xsLmlCYXJXaWR0aCApOwoJCQlpZiAoICQoby5uVGFibGUpLm91dGVyV2lkdGgoKSA+IGlTYW5pdHlXaWR0aC1vLm9TY3JvbGwuaUJhcldpZHRoICkKCQkJewoJCQkJLyogTm90IHBvc3NpYmxlIHRvIHRha2UgYWNjb3VudCBvZiBpdCAqLwoJCQkJby5uVGFibGUuc3R5bGUud2lkdGggPSBfZm5TdHJpbmdUb0NzcyggaVNhbml0eVdpZHRoICk7CgkJCX0KCQl9CgkJZWxzZQoJCXsKCQkJLyogQWxsIGVsc2UgZmFpbHMgKi8KCQkJby5uVGFibGUuc3R5bGUud2lkdGggPSBfZm5TdHJpbmdUb0NzcyggaVNhbml0eVdpZHRoICk7CgkJfQoJfQoJCgkvKiBSZWNhbGN1bGF0ZSB0aGUgc2FuaXR5IHdpZHRoIC0gbm93IHRoYXQgd2UndmUgYXBwbGllZCB0aGUgcmVxdWlyZWQgd2lkdGgsIGJlZm9yZSBpdCB3YXMKCSAqIGEgdGVtcG9yYXJ5IHZhcmlhYmxlLiBUaGlzIGlzIHJlcXVpcmVkIGJlY2F1c2UgdGhlIGNvbHVtbiB3aWR0aCBjYWxjdWxhdGlvbiBpcyBkb25lCgkgKiBiZWZvcmUgdGhpcyB0YWJsZSBET00gaXMgY3JlYXRlZC4KCSAqLwoJaVNhbml0eVdpZHRoID0gJChvLm5UYWJsZSkub3V0ZXJXaWR0aCgpOwoJCgkvKiBXZSB3YW50IHRoZSBoaWRkZW4gaGVhZGVyIHRvIGhhdmUgemVybyBoZWlnaHQsIHNvIHJlbW92ZSBwYWRkaW5nIGFuZCBib3JkZXJzLiBUaGVuCgkgKiBzZXQgdGhlIHdpZHRoIGJhc2VkIG9uIHRoZSByZWFsIGhlYWRlcnMKCSAqLwoJYW5IZWFkVG9TaXplID0gby5uVEhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RyJyk7CglhbkhlYWRTaXplcnMgPSBuVGhlYWRTaXplLmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0cicpOwoJCglfZm5BcHBseVRvQ2hpbGRyZW4oIGZ1bmN0aW9uKG5TaXplciwgblRvU2l6ZSkgewoJCW9TdHlsZSA9IG5TaXplci5zdHlsZTsKCQlvU3R5bGUucGFkZGluZ1RvcCA9ICIwIjsKCQlvU3R5bGUucGFkZGluZ0JvdHRvbSA9ICIwIjsKCQlvU3R5bGUuYm9yZGVyVG9wV2lkdGggPSAiMCI7CgkJb1N0eWxlLmJvcmRlckJvdHRvbVdpZHRoID0gIjAiOwoJCW9TdHlsZS5oZWlnaHQgPSAwOwoJCQoJCWlXaWR0aCA9ICQoblNpemVyKS53aWR0aCgpOwoJCW5Ub1NpemUuc3R5bGUud2lkdGggPSBfZm5TdHJpbmdUb0NzcyggaVdpZHRoICk7CgkJYUFwcGxpZWQucHVzaCggaVdpZHRoICk7Cgl9LCBhbkhlYWRTaXplcnMsIGFuSGVhZFRvU2l6ZSApOwoJJChhbkhlYWRTaXplcnMpLmhlaWdodCgwKTsKCQoJaWYgKCBvLm5URm9vdCAhPT0gbnVsbCApCgl7CgkJLyogQ2xvbmUgdGhlIGN1cnJlbnQgZm9vdGVyIGFuZCB0aGVuIHBsYWNlIGl0IGludG8gdGhlIGJvZHkgdGFibGUgYXMgYSAiaGlkZGVuIGhlYWRlciIgKi8KCQlhbkZvb3RTaXplcnMgPSBuVGZvb3RTaXplLmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0cicpOwoJCWFuRm9vdFRvU2l6ZSA9IG8ublRGb290LmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0cicpOwoJCQoJCV9mbkFwcGx5VG9DaGlsZHJlbiggZnVuY3Rpb24oblNpemVyLCBuVG9TaXplKSB7CgkJCW9TdHlsZSA9IG5TaXplci5zdHlsZTsKCQkJb1N0eWxlLnBhZGRpbmdUb3AgPSAiMCI7CgkJCW9TdHlsZS5wYWRkaW5nQm90dG9tID0gIjAiOwoJCQlvU3R5bGUuYm9yZGVyVG9wV2lkdGggPSAiMCI7CgkJCW9TdHlsZS5ib3JkZXJCb3R0b21XaWR0aCA9ICIwIjsKCQkJb1N0eWxlLmhlaWdodCA9IDA7CgkJCQoJCQlpV2lkdGggPSAkKG5TaXplcikud2lkdGgoKTsKCQkJblRvU2l6ZS5zdHlsZS53aWR0aCA9IF9mblN0cmluZ1RvQ3NzKCBpV2lkdGggKTsKCQkJYUFwcGxpZWQucHVzaCggaVdpZHRoICk7CgkJfSwgYW5Gb290U2l6ZXJzLCBhbkZvb3RUb1NpemUgKTsKCQkkKGFuRm9vdFNpemVycykuaGVpZ2h0KDApOwoJfQoJCgkvKgoJICogMy4gQXBwbHkgdGhlIG1lYXN1cmVtZW50cwoJICovCgkKCS8qICJIaWRlIiB0aGUgaGVhZGVyIGFuZCBmb290ZXIgdGhhdCB3ZSB1c2VkIGZvciB0aGUgc2l6aW5nLiBXZSB3YW50IHRvIGFsc28gZml4IHRoZWlyIHdpZHRoCgkgKiB0byB3aGF0IHRoZXkgY3VycmVudGx5IGFyZQoJICovCglfZm5BcHBseVRvQ2hpbGRyZW4oIGZ1bmN0aW9uKG5TaXplcikgewoJCW5TaXplci5pbm5lckhUTUwgPSAiIjsKCQluU2l6ZXIuc3R5bGUud2lkdGggPSBfZm5TdHJpbmdUb0NzcyggYUFwcGxpZWQuc2hpZnQoKSApOwoJfSwgYW5IZWFkU2l6ZXJzICk7CgkKCWlmICggby5uVEZvb3QgIT09IG51bGwgKQoJewoJCV9mbkFwcGx5VG9DaGlsZHJlbiggZnVuY3Rpb24oblNpemVyKSB7CgkJCW5TaXplci5pbm5lckhUTUwgPSAiIjsKCQkJblNpemVyLnN0eWxlLndpZHRoID0gX2ZuU3RyaW5nVG9Dc3MoIGFBcHBsaWVkLnNoaWZ0KCkgKTsKCQl9LCBhbkZvb3RTaXplcnMgKTsKCX0KCQoJLyogU2FuaXR5IGNoZWNrIHRoYXQgdGhlIHRhYmxlIGlzIG9mIGEgc2Vuc2libGUgd2lkdGguIElmIG5vdCB0aGVuIHdlIGFyZSBnb2luZyB0byBnZXQKCSAqIG1pc2FsaWdubWVudCAtIHRyeSB0byBwcmV2ZW50IHRoaXMgYnkgbm90IGFsbG93aW5nIHRoZSB0YWJsZSB0byBzaHJpbmsgYmVsb3cgaXRzIG1pbiB3aWR0aAoJICovCglpZiAoICQoby5uVGFibGUpLm91dGVyV2lkdGgoKSA8IGlTYW5pdHlXaWR0aCApCgl7CgkJLyogVGhlIG1pbiB3aWR0aCBkZXBlbmRzIHVwb24gaWYgd2UgaGF2ZSBhIHZlcnRpY2FsIHNjcm9sbGJhciB2aXNpYmxlIG9yIG5vdCAqLwoJCXZhciBpQ29ycmVjdGlvbiA9ICgoblNjcm9sbEJvZHkuc2Nyb2xsSGVpZ2h0ID4gblNjcm9sbEJvZHkub2Zmc2V0SGVpZ2h0IHx8IAoJCQkkKG5TY3JvbGxCb2R5KS5jc3MoJ292ZXJmbG93LXknKSA9PSAic2Nyb2xsIikpID8KCQkJCWlTYW5pdHlXaWR0aCtvLm9TY3JvbGwuaUJhcldpZHRoIDogaVNhbml0eVdpZHRoOwoJCQoJCS8qIElFNi83IGFyZSBhIGxhdyB1bnRvIHRoZW1zZWx2ZXMuLi4gKi8KCQlpZiAoIGllNjcgJiYgKG5TY3JvbGxCb2R5LnNjcm9sbEhlaWdodCA+IAoJCQluU2Nyb2xsQm9keS5vZmZzZXRIZWlnaHQgfHwgJChuU2Nyb2xsQm9keSkuY3NzKCdvdmVyZmxvdy15JykgPT0gInNjcm9sbCIpICApCgkJewoJCQlvLm5UYWJsZS5zdHlsZS53aWR0aCA9IF9mblN0cmluZ1RvQ3NzKCBpQ29ycmVjdGlvbi1vLm9TY3JvbGwuaUJhcldpZHRoICk7CgkJfQoJCQoJCS8qIEFwcGx5IHRoZSBjYWxjdWxhdGVkIG1pbmltdW0gd2lkdGggdG8gdGhlIHRhYmxlIHdyYXBwZXJzICovCgkJblNjcm9sbEJvZHkuc3R5bGUud2lkdGggPSBfZm5TdHJpbmdUb0NzcyggaUNvcnJlY3Rpb24gKTsKCQluU2Nyb2xsSGVhZElubmVyLnBhcmVudE5vZGUuc3R5bGUud2lkdGggPSBfZm5TdHJpbmdUb0NzcyggaUNvcnJlY3Rpb24gKTsKCQkKCQlpZiAoIG8ublRGb290ICE9PSBudWxsICkKCQl7CgkJCW5TY3JvbGxGb290SW5uZXIucGFyZW50Tm9kZS5zdHlsZS53aWR0aCA9IF9mblN0cmluZ1RvQ3NzKCBpQ29ycmVjdGlvbiApOwoJCX0KCQkKCQkvKiBBbmQgZ2l2ZSB0aGUgdXNlciBhIHdhcm5pbmcgdGhhdCB3ZSd2ZSBzdG9wcGVkIHRoZSB0YWJsZSBnZXR0aW5nIHRvbyBzbWFsbCAqLwoJCWlmICggby5vU2Nyb2xsLnNYID09PSAiIiApCgkJewoJCQlfZm5Mb2coIG8sIDEsICJUaGUgdGFibGUgY2Fubm90IGZpdCBpbnRvIHRoZSBjdXJyZW50IGVsZW1lbnQgd2hpY2ggd2lsbCBjYXVzZSBjb2x1bW4iKwoJCQkJIiBtaXNhbGlnbm1lbnQuIFRoZSB0YWJsZSBoYXMgYmVlbiBkcmF3biBhdCBpdHMgbWluaW11bSBwb3NzaWJsZSB3aWR0aC4iICk7CgkJfQoJCWVsc2UgaWYgKCBvLm9TY3JvbGwuc1hJbm5lciAhPT0gIiIgKQoJCXsKCQkJX2ZuTG9nKCBvLCAxLCAiVGhlIHRhYmxlIGNhbm5vdCBmaXQgaW50byB0aGUgY3VycmVudCBlbGVtZW50IHdoaWNoIHdpbGwgY2F1c2UgY29sdW1uIisKCQkJCSIgbWlzYWxpZ25tZW50LiBJbmNyZWFzZSB0aGUgc1Njcm9sbFhJbm5lciB2YWx1ZSBvciByZW1vdmUgaXQgdG8gYWxsb3cgYXV0b21hdGljIisKCQkJCSIgY2FsY3VsYXRpb24iICk7CgkJfQoJfQoJZWxzZQoJewoJCW5TY3JvbGxCb2R5LnN0eWxlLndpZHRoID0gX2ZuU3RyaW5nVG9Dc3MoICcxMDAlJyApOwoJCW5TY3JvbGxIZWFkSW5uZXIucGFyZW50Tm9kZS5zdHlsZS53aWR0aCA9IF9mblN0cmluZ1RvQ3NzKCAnMTAwJScgKTsKCQkKCQlpZiAoIG8ublRGb290ICE9PSBudWxsICkKCQl7CgkJCW5TY3JvbGxGb290SW5uZXIucGFyZW50Tm9kZS5zdHlsZS53aWR0aCA9IF9mblN0cmluZ1RvQ3NzKCAnMTAwJScgKTsKCQl9Cgl9CgkKCQoJLyoKCSAqIDQuIENsZWFuIHVwCgkgKi8KCWlmICggby5vU2Nyb2xsLnNZID09PSAiIiApCgl7CgkJLyogSUU3PCBwdXRzIGEgdmVydGljYWwgc2Nyb2xsYmFyIGluIHBsYWNlICh3aGVuIGl0IHNob3VsZG4ndCBiZSkgZHVlIHRvIHN1YnRyYWN0aW5nCgkJICogdGhlIHNjcm9sbGJhciBoZWlnaHQgZnJvbSB0aGUgdmlzaWJsZSBkaXNwbGF5LCByYXRoZXIgdGhhbiBhZGRpbmcgaXQgb24uIFdlIG5lZWQgdG8KCQkgKiBzZXQgdGhlIGhlaWdodCBpbiBvcmRlciB0byBzb3J0IHRoaXMuIERvbid0IHdhbnQgdG8gZG8gaXQgaW4gYW55IG90aGVyIGJyb3dzZXJzLgoJCSAqLwoJCWlmICggaWU2NyApCgkJewoJCQluU2Nyb2xsQm9keS5zdHlsZS5oZWlnaHQgPSBfZm5TdHJpbmdUb0Nzcyggby5uVGFibGUub2Zmc2V0SGVpZ2h0K28ub1Njcm9sbC5pQmFyV2lkdGggKTsKCQl9Cgl9CgkKCWlmICggby5vU2Nyb2xsLnNZICE9PSAiIiAmJiBvLm9TY3JvbGwuYkNvbGxhcHNlICkKCXsKCQluU2Nyb2xsQm9keS5zdHlsZS5oZWlnaHQgPSBfZm5TdHJpbmdUb0Nzcyggby5vU2Nyb2xsLnNZICk7CgkJCgkJdmFyIGlFeHRyYSA9IChvLm9TY3JvbGwuc1ggIT09ICIiICYmIG8ublRhYmxlLm9mZnNldFdpZHRoID4gblNjcm9sbEJvZHkub2Zmc2V0V2lkdGgpID8KCQkgCW8ub1Njcm9sbC5pQmFyV2lkdGggOiAwOwoJCWlmICggby5uVGFibGUub2Zmc2V0SGVpZ2h0IDwgblNjcm9sbEJvZHkub2Zmc2V0SGVpZ2h0ICkKCQl7CgkJCW5TY3JvbGxCb2R5LnN0eWxlLmhlaWdodCA9IF9mblN0cmluZ1RvQ3NzKCBvLm5UYWJsZS5vZmZzZXRIZWlnaHQraUV4dHJhICk7CgkJfQoJfQoJCgkvKiBGaW5hbGx5IHNldCB0aGUgd2lkdGgncyBvZiB0aGUgaGVhZGVyIGFuZCBmb290ZXIgdGFibGVzICovCgl2YXIgaU91dGVyV2lkdGggPSAkKG8ublRhYmxlKS5vdXRlcldpZHRoKCk7CgluU2Nyb2xsSGVhZFRhYmxlLnN0eWxlLndpZHRoID0gX2ZuU3RyaW5nVG9Dc3MoIGlPdXRlcldpZHRoICk7CgluU2Nyb2xsSGVhZElubmVyLnN0eWxlLndpZHRoID0gX2ZuU3RyaW5nVG9Dc3MoIGlPdXRlcldpZHRoICk7CgoJLy8gRmlndXJlIG91dCBpZiB0aGVyZSBhcmUgc2Nyb2xsYmFyIHByZXNlbnQgLSBpZiBzbyB0aGVuIHdlIG5lZWQgYSB0aGUgaGVhZGVyIGFuZCBmb290ZXIgdG8KCS8vIHByb3ZpZGUgYSBiaXQgbW9yZSBzcGFjZSB0byBhbGxvdyAib3ZlcmZsb3ciIHNjcm9sbGluZyAoaS5lLiBwYXN0IHRoZSBzY3JvbGxiYXIpCgl2YXIgYlNjcm9sbGluZyA9ICQoby5uVGFibGUpLmhlaWdodCgpID4gblNjcm9sbEJvZHkuY2xpZW50SGVpZ2h0IHx8ICQoblNjcm9sbEJvZHkpLmNzcygnb3ZlcmZsb3cteScpID09ICJzY3JvbGwiOwoJblNjcm9sbEhlYWRJbm5lci5zdHlsZS5wYWRkaW5nUmlnaHQgPSBiU2Nyb2xsaW5nID8gby5vU2Nyb2xsLmlCYXJXaWR0aCsicHgiIDogIjBweCI7CgkKCWlmICggby5uVEZvb3QgIT09IG51bGwgKQoJewoJCW5TY3JvbGxGb290VGFibGUuc3R5bGUud2lkdGggPSBfZm5TdHJpbmdUb0NzcyggaU91dGVyV2lkdGggKTsKCQluU2Nyb2xsRm9vdElubmVyLnN0eWxlLndpZHRoID0gX2ZuU3RyaW5nVG9Dc3MoIGlPdXRlcldpZHRoICk7CgkJblNjcm9sbEZvb3RJbm5lci5zdHlsZS5wYWRkaW5nUmlnaHQgPSBiU2Nyb2xsaW5nID8gby5vU2Nyb2xsLmlCYXJXaWR0aCsicHgiIDogIjBweCI7Cgl9CgoJLyogQWRqdXN0IHRoZSBwb3NpdGlvbiBvZiB0aGUgaGVhZGVyIGluIGNhc2Ugd2UgbG9vc2UgdGhlIHktc2Nyb2xsYmFyICovCgkkKG5TY3JvbGxCb2R5KS5zY3JvbGwoKTsKCQoJLyogSWYgc29ydGluZyBvciBmaWx0ZXJpbmcgaGFzIG9jY3VycmVkLCBqdW1wIHRoZSBzY3JvbGxpbmcgYmFjayB0byB0aGUgdG9wICovCglpZiAoIG8uYlNvcnRlZCB8fCBvLmJGaWx0ZXJlZCApCgl7CgkJblNjcm9sbEJvZHkuc2Nyb2xsVG9wID0gMDsKCX0KfQoKCi8qKgogKiBBcHBseSBhIGdpdmVuIGZ1bmN0aW9uIHRvIHRoZSBkaXNwbGF5IGNoaWxkIG5vZGVzIG9mIGFuIGVsZW1lbnQgYXJyYXkgKHR5cGljYWxseQogKiBURCBjaGlsZHJlbiBvZiBUUiByb3dzCiAqICBAcGFyYW0ge2Z1bmN0aW9ufSBmbiBNZXRob2QgdG8gYXBwbHkgdG8gdGhlIG9iamVjdHMKICogIEBwYXJhbSBhcnJheSB7bm9kZXN9IGFuMSBMaXN0IG9mIGVsZW1lbnRzIHRvIGxvb2sgdGhyb3VnaCBmb3IgZGlzcGxheSBjaGlsZHJlbgogKiAgQHBhcmFtIGFycmF5IHtub2Rlc30gYW4yIEFub3RoZXIgbGlzdCAoaWRlbnRpY2FsIHN0cnVjdHVyZSB0byB0aGUgZmlyc3QpIC0gb3B0aW9uYWwKICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQogKi8KZnVuY3Rpb24gX2ZuQXBwbHlUb0NoaWxkcmVuKCBmbiwgYW4xLCBhbjIgKQp7Cglmb3IgKCB2YXIgaT0wLCBpTGVuPWFuMS5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJewoJCWZvciAoIHZhciBqPTAsIGpMZW49YW4xW2ldLmNoaWxkTm9kZXMubGVuZ3RoIDsgajxqTGVuIDsgaisrICkKCQl7CgkJCWlmICggYW4xW2ldLmNoaWxkTm9kZXNbal0ubm9kZVR5cGUgPT0gMSApCgkJCXsKCQkJCWlmICggYW4yICkKCQkJCXsKCQkJCQlmbiggYW4xW2ldLmNoaWxkTm9kZXNbal0sIGFuMltpXS5jaGlsZE5vZGVzW2pdICk7CgkJCQl9CgkJCQllbHNlCgkJCQl7CgkJCQkJZm4oIGFuMVtpXS5jaGlsZE5vZGVzW2pdICk7CgkJCQl9CgkJCX0KCQl9Cgl9Cn0KCg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/core/core.sizing.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CgovKioKICogQ29udmVydCBhIENTUyB1bml0IHdpZHRoIHRvIHBpeGVscyAoZS5nLiAyZW0pCiAqICBAcGFyYW0ge3N0cmluZ30gc1dpZHRoIHdpZHRoIHRvIGJlIGNvbnZlcnRlZAogKiAgQHBhcmFtIHtub2RlfSBuUGFyZW50IHBhcmVudCB0byBnZXQgdGhlIHdpdGggZm9yIChyZXF1aXJlZCBmb3IgcmVsYXRpdmUgd2lkdGhzKSAtIG9wdGlvbmFsCiAqICBAcmV0dXJucyB7aW50fSBpV2lkdGggd2lkdGggaW4gcGl4ZWxzCiAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKICovCmZ1bmN0aW9uIF9mbkNvbnZlcnRUb1dpZHRoICggc1dpZHRoLCBuUGFyZW50ICkKewoJaWYgKCAhc1dpZHRoIHx8IHNXaWR0aCA9PT0gbnVsbCB8fCBzV2lkdGggPT09ICcnICkKCXsKCQlyZXR1cm4gMDsKCX0KCQoJaWYgKCAhblBhcmVudCApCgl7CgkJblBhcmVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5JylbMF07Cgl9CgkKCXZhciBpV2lkdGg7Cgl2YXIgblRtcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICJkaXYiICk7CgluVG1wLnN0eWxlLndpZHRoID0gX2ZuU3RyaW5nVG9Dc3MoIHNXaWR0aCApOwoJCgluUGFyZW50LmFwcGVuZENoaWxkKCBuVG1wICk7CglpV2lkdGggPSBuVG1wLm9mZnNldFdpZHRoOwoJblBhcmVudC5yZW1vdmVDaGlsZCggblRtcCApOwoJCglyZXR1cm4gKCBpV2lkdGggKTsKfQoKCi8qKgogKiBDYWxjdWxhdGUgdGhlIHdpZHRoIG9mIGNvbHVtbnMgZm9yIHRoZSB0YWJsZQogKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAogKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCiAqLwpmdW5jdGlvbiBfZm5DYWxjdWxhdGVDb2x1bW5XaWR0aHMgKCBvU2V0dGluZ3MgKQp7Cgl2YXIgaVRhYmxlV2lkdGggPSBvU2V0dGluZ3MublRhYmxlLm9mZnNldFdpZHRoOwoJdmFyIGlVc2VySW5wdXRzID0gMDsKCXZhciBpVG1wV2lkdGg7Cgl2YXIgaVZpc2libGVDb2x1bW5zID0gMDsKCXZhciBpQ29sdW1zID0gb1NldHRpbmdzLmFvQ29sdW1ucy5sZW5ndGg7Cgl2YXIgaSwgaUluZGV4LCBpQ29ycmVjdG9yLCBpV2lkdGg7Cgl2YXIgb0hlYWRlcnMgPSAkKCd0aCcsIG9TZXR0aW5ncy5uVEhlYWQpOwoJdmFyIHdpZHRoQXR0ciA9IG9TZXR0aW5ncy5uVGFibGUuZ2V0QXR0cmlidXRlKCd3aWR0aCcpOwoJCgkvKiBDb252ZXJ0IGFueSB1c2VyIGlucHV0IHNpemVzIGludG8gcGl4ZWwgc2l6ZXMgKi8KCWZvciAoIGk9MCA7IGk8aUNvbHVtcyA7IGkrKyApCgl7CgkJaWYgKCBvU2V0dGluZ3MuYW9Db2x1bW5zW2ldLmJWaXNpYmxlICkKCQl7CgkJCWlWaXNpYmxlQ29sdW1ucysrOwoJCQkKCQkJaWYgKCBvU2V0dGluZ3MuYW9Db2x1bW5zW2ldLnNXaWR0aCAhPT0gbnVsbCApCgkJCXsKCQkJCWlUbXBXaWR0aCA9IF9mbkNvbnZlcnRUb1dpZHRoKCBvU2V0dGluZ3MuYW9Db2x1bW5zW2ldLnNXaWR0aE9yaWcsIAoJCQkJCW9TZXR0aW5ncy5uVGFibGUucGFyZW50Tm9kZSApOwoJCQkJaWYgKCBpVG1wV2lkdGggIT09IG51bGwgKQoJCQkJewoJCQkJCW9TZXR0aW5ncy5hb0NvbHVtbnNbaV0uc1dpZHRoID0gX2ZuU3RyaW5nVG9Dc3MoIGlUbXBXaWR0aCApOwoJCQkJfQoJCQkJCQoJCQkJaVVzZXJJbnB1dHMrKzsKCQkJfQoJCX0KCX0KCQoJLyogSWYgdGhlIG51bWJlciBvZiBjb2x1bW5zIGluIHRoZSBET00gZXF1YWxzIHRoZSBudW1iZXIgdGhhdCB3ZSBoYXZlIHRvIHByb2Nlc3MgaW4gCgkgKiBEYXRhVGFibGVzLCB0aGVuIHdlIGNhbiB1c2UgdGhlIG9mZnNldHMgdGhhdCBhcmUgY3JlYXRlZCBieSB0aGUgd2ViLWJyb3dzZXIuIE5vIGN1c3RvbSAKCSAqIHNpemVzIGNhbiBiZSBzZXQgaW4gb3JkZXIgZm9yIHRoaXMgdG8gaGFwcGVuLCBub3Igc2Nyb2xsaW5nIHVzZWQKCSAqLwoJaWYgKCBpQ29sdW1zID09IG9IZWFkZXJzLmxlbmd0aCAmJiBpVXNlcklucHV0cyA9PT0gMCAmJiBpVmlzaWJsZUNvbHVtbnMgPT0gaUNvbHVtcyAmJgoJCW9TZXR0aW5ncy5vU2Nyb2xsLnNYID09PSAiIiAmJiBvU2V0dGluZ3Mub1Njcm9sbC5zWSA9PT0gIiIgKQoJewoJCWZvciAoIGk9MCA7IGk8b1NldHRpbmdzLmFvQ29sdW1ucy5sZW5ndGggOyBpKysgKQoJCXsKCQkJaVRtcFdpZHRoID0gJChvSGVhZGVyc1tpXSkud2lkdGgoKTsKCQkJaWYgKCBpVG1wV2lkdGggIT09IG51bGwgKQoJCQl7CgkJCQlvU2V0dGluZ3MuYW9Db2x1bW5zW2ldLnNXaWR0aCA9IF9mblN0cmluZ1RvQ3NzKCBpVG1wV2lkdGggKTsKCQkJfQoJCX0KCX0KCWVsc2UKCXsKCQkvKiBPdGhlcndpc2Ugd2UgYXJlIGdvaW5nIHRvIGhhdmUgdG8gZG8gc29tZSBjYWxjdWxhdGlvbnMgdG8gZ2V0IHRoZSB3aWR0aCBvZiBlYWNoIGNvbHVtbi4KCQkgKiBDb25zdHJ1Y3QgYSAxIHJvdyB0YWJsZSB3aXRoIHRoZSB3aWRlc3Qgbm9kZSBpbiB0aGUgZGF0YSwgYW5kIGFueSB1c2VyIGRlZmluZWQgd2lkdGhzLAoJCSAqIHRoZW4gaW5zZXJ0IGl0IGludG8gdGhlIERPTSBhbmQgYWxsb3cgdGhlIGJyb3dzZXIgdG8gZG8gYWxsIHRoZSBoYXJkIHdvcmsgb2YKCQkgKiBjYWxjdWxhdGluZyB0YWJsZSB3aWR0aHMuCgkJICovCgkJdmFyCgkJCW5DYWxjVG1wID0gb1NldHRpbmdzLm5UYWJsZS5jbG9uZU5vZGUoIGZhbHNlICksCgkJCW5UaGVhZENsb25lID0gb1NldHRpbmdzLm5USGVhZC5jbG9uZU5vZGUodHJ1ZSksCgkJCW5Cb2R5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggJ3Rib2R5JyApLAoJCQluVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCAndHInICksCgkJCW5EaXZTaXppbmc7CgkJCgkJbkNhbGNUbXAucmVtb3ZlQXR0cmlidXRlKCAiaWQiICk7CgkJbkNhbGNUbXAuYXBwZW5kQ2hpbGQoIG5UaGVhZENsb25lICk7CgkJaWYgKCBvU2V0dGluZ3MublRGb290ICE9PSBudWxsICkKCQl7CgkJCW5DYWxjVG1wLmFwcGVuZENoaWxkKCBvU2V0dGluZ3MublRGb290LmNsb25lTm9kZSh0cnVlKSApOwoJCQlfZm5BcHBseVRvQ2hpbGRyZW4oIGZ1bmN0aW9uKG4pIHsKCQkJCW4uc3R5bGUud2lkdGggPSAiIjsKCQkJfSwgbkNhbGNUbXAuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RyJykgKTsKCQl9CgkJCgkJbkNhbGNUbXAuYXBwZW5kQ2hpbGQoIG5Cb2R5ICk7CgkJbkJvZHkuYXBwZW5kQ2hpbGQoIG5UciApOwoJCQoJCS8qIFJlbW92ZSBhbnkgc2l6aW5nIHRoYXQgd2FzIHByZXZpb3VzbHkgYXBwbGllZCBieSB0aGUgc3R5bGVzICovCgkJdmFyIGpxQ29sU2l6aW5nID0gJCgndGhlYWQgdGgnLCBuQ2FsY1RtcCk7CgkJaWYgKCBqcUNvbFNpemluZy5sZW5ndGggPT09IDAgKQoJCXsKCQkJanFDb2xTaXppbmcgPSAkKCd0Ym9keSB0cjplcSgwKT50ZCcsIG5DYWxjVG1wKTsKCQl9CgoJCS8qIEFwcGx5IGN1c3RvbSBzaXppbmcgdG8gdGhlIGNsb25lZCBoZWFkZXIgKi8KCQl2YXIgblRocyA9IF9mbkdldFVuaXF1ZVRocyggb1NldHRpbmdzLCBuVGhlYWRDbG9uZSApOwoJCWlDb3JyZWN0b3IgPSAwOwoJCWZvciAoIGk9MCA7IGk8aUNvbHVtcyA7IGkrKyApCgkJewoJCQl2YXIgb0NvbHVtbiA9IG9TZXR0aW5ncy5hb0NvbHVtbnNbaV07CgkJCWlmICggb0NvbHVtbi5iVmlzaWJsZSAmJiBvQ29sdW1uLnNXaWR0aE9yaWcgIT09IG51bGwgJiYgb0NvbHVtbi5zV2lkdGhPcmlnICE9PSAiIiApCgkJCXsKCQkJCW5UaHNbaS1pQ29ycmVjdG9yXS5zdHlsZS53aWR0aCA9IF9mblN0cmluZ1RvQ3NzKCBvQ29sdW1uLnNXaWR0aE9yaWcgKTsKCQkJfQoJCQllbHNlIGlmICggb0NvbHVtbi5iVmlzaWJsZSApCgkJCXsKCQkJCW5UaHNbaS1pQ29ycmVjdG9yXS5zdHlsZS53aWR0aCA9ICIiOwoJCQl9CgkJCWVsc2UKCQkJewoJCQkJaUNvcnJlY3RvcisrOwoJCQl9CgkJfQoKCQkvKiBGaW5kIHRoZSBiaWdnZXN0IHRkIGZvciBlYWNoIGNvbHVtbiBhbmQgcHV0IGl0IGludG8gdGhlIHRhYmxlICovCgkJZm9yICggaT0wIDsgaTxpQ29sdW1zIDsgaSsrICkKCQl7CgkJCWlmICggb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5iVmlzaWJsZSApCgkJCXsKCQkJCXZhciBuVGQgPSBfZm5HZXRXaWRlc3ROb2RlKCBvU2V0dGluZ3MsIGkgKTsKCQkJCWlmICggblRkICE9PSBudWxsICkKCQkJCXsKCQkJCQluVGQgPSBuVGQuY2xvbmVOb2RlKHRydWUpOwoJCQkJCWlmICggb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5zQ29udGVudFBhZGRpbmcgIT09ICIiICkKCQkJCQl7CgkJCQkJCW5UZC5pbm5lckhUTUwgKz0gb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5zQ29udGVudFBhZGRpbmc7CgkJCQkJfQoJCQkJCW5Uci5hcHBlbmRDaGlsZCggblRkICk7CgkJCQl9CgkJCX0KCQl9CgkJCgkJLyogQnVpbGQgdGhlIHRhYmxlIGFuZCAnZGlzcGxheScgaXQgKi8KCQl2YXIgbldyYXBwZXIgPSBvU2V0dGluZ3MublRhYmxlLnBhcmVudE5vZGU7CgkJbldyYXBwZXIuYXBwZW5kQ2hpbGQoIG5DYWxjVG1wICk7CgkJCgkJLyogV2hlbiBzY3JvbGxpbmcgKFggb3IgWSkgd2Ugd2FudCB0byBzZXQgdGhlIHdpZHRoIG9mIHRoZSB0YWJsZSBhcyBhcHByb3ByaWF0ZS4gSG93ZXZlciwKCQkgKiB3aGVuIG5vdCBzY3JvbGxpbmcgbGVhdmUgdGhlIHRhYmxlIHdpZHRoIGFzIGl0IGlzLiBUaGlzIHJlc3VsdHMgaW4gc2xpZ2h0bHkgZGlmZmVyZW50LAoJCSAqIGJ1dCBJIHRoaW5rIGNvcnJlY3QgYmVoYXZpb3VyCgkJICovCgkJaWYgKCBvU2V0dGluZ3Mub1Njcm9sbC5zWCAhPT0gIiIgJiYgb1NldHRpbmdzLm9TY3JvbGwuc1hJbm5lciAhPT0gIiIgKQoJCXsKCQkJbkNhbGNUbXAuc3R5bGUud2lkdGggPSBfZm5TdHJpbmdUb0NzcyhvU2V0dGluZ3Mub1Njcm9sbC5zWElubmVyKTsKCQl9CgkJZWxzZSBpZiAoIG9TZXR0aW5ncy5vU2Nyb2xsLnNYICE9PSAiIiApCgkJewoJCQluQ2FsY1RtcC5zdHlsZS53aWR0aCA9ICIiOwoJCQlpZiAoICQobkNhbGNUbXApLndpZHRoKCkgPCBuV3JhcHBlci5vZmZzZXRXaWR0aCApCgkJCXsKCQkJCW5DYWxjVG1wLnN0eWxlLndpZHRoID0gX2ZuU3RyaW5nVG9Dc3MoIG5XcmFwcGVyLm9mZnNldFdpZHRoICk7CgkJCX0KCQl9CgkJZWxzZSBpZiAoIG9TZXR0aW5ncy5vU2Nyb2xsLnNZICE9PSAiIiApCgkJewoJCQluQ2FsY1RtcC5zdHlsZS53aWR0aCA9IF9mblN0cmluZ1RvQ3NzKCBuV3JhcHBlci5vZmZzZXRXaWR0aCApOwoJCX0KCQllbHNlIGlmICggd2lkdGhBdHRyICkKCQl7CgkJCW5DYWxjVG1wLnN0eWxlLndpZHRoID0gX2ZuU3RyaW5nVG9Dc3MoIHdpZHRoQXR0ciApOwoJCX0KCQluQ2FsY1RtcC5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CgkJCgkJLyogU2Nyb2xsaW5nIGNvbnNpZGVyYXRpb25zICovCgkJX2ZuU2Nyb2xsaW5nV2lkdGhBZGp1c3QoIG9TZXR0aW5ncywgbkNhbGNUbXAgKTsKCQkKCQkvKiBSZWFkIHRoZSB3aWR0aCdzIGNhbGN1bGF0ZWQgYnkgdGhlIGJyb3dzZXIgYW5kIHN0b3JlIHRoZW0gZm9yIHVzZSBieSB0aGUgY2FsbGVyLiBXZQoJCSAqIGZpcnN0IG9mIGFsbCB0cnkgdG8gdXNlIHRoZSBlbGVtZW50cyBpbiB0aGUgYm9keSwgYnV0IGl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlcmUgYXJlCgkJICogbm8gZWxlbWVudHMgdGhlcmUsIHVuZGVyIHdoaWNoIGNpcmN1bXN0YW5jZXMgd2UgdXNlIHRoZSBoZWFkZXIgZWxlbWVudHMKCQkgKi8KCQl2YXIgb05vZGVzID0gJCgidGJvZHkgdHI6ZXEoMCkiLCBuQ2FsY1RtcCkuY2hpbGRyZW4oKTsKCQlpZiAoIG9Ob2Rlcy5sZW5ndGggPT09IDAgKQoJCXsKCQkJb05vZGVzID0gX2ZuR2V0VW5pcXVlVGhzKCBvU2V0dGluZ3MsICQoJ3RoZWFkJywgbkNhbGNUbXApWzBdICk7CgkJfQoKCQkvKiBCcm93c2VycyBuZWVkIGEgYml0IG9mIGEgaGFuZCB3aGVuIGEgd2lkdGggaXMgYXNzaWduZWQgdG8gYW55IGNvbHVtbnMgd2hlbiAKCQkgKiB4LXNjcm9sbGluZyBhcyB0aGV5IHRlbmQgdG8gY29sbGFwc2UgdGhlIHRhYmxlIHRvIHRoZSBtaW4td2lkdGgsIGV2ZW4gaWYKCQkgKiB3ZSBzZW50IHRoZSBjb2x1bW4gd2lkdGhzLiBTbyB3ZSBuZWVkIHRvIGtlZXAgdHJhY2sgb2Ygd2hhdCB0aGUgdGFibGUgd2lkdGgKCQkgKiBzaG91bGQgYmUgYnkgc3VtbWluZyB0aGUgdXNlciBnaXZlbiB2YWx1ZXMsIGFuZCB0aGUgYXV0b21hdGljIHZhbHVlcwoJCSAqLwoJCWlmICggb1NldHRpbmdzLm9TY3JvbGwuc1ggIT09ICIiICkKCQl7CgkJCXZhciBpVG90YWwgPSAwOwoJCQlpQ29ycmVjdG9yID0gMDsKCQkJZm9yICggaT0wIDsgaTxvU2V0dGluZ3MuYW9Db2x1bW5zLmxlbmd0aCA7IGkrKyApCgkJCXsKCQkJCWlmICggb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5iVmlzaWJsZSApCgkJCQl7CgkJCQkJaWYgKCBvU2V0dGluZ3MuYW9Db2x1bW5zW2ldLnNXaWR0aE9yaWcgPT09IG51bGwgKQoJCQkJCXsKCQkJCQkJaVRvdGFsICs9ICQob05vZGVzW2lDb3JyZWN0b3JdKS5vdXRlcldpZHRoKCk7CgkJCQkJfQoJCQkJCWVsc2UKCQkJCQl7CgkJCQkJCWlUb3RhbCArPSBwYXJzZUludChvU2V0dGluZ3MuYW9Db2x1bW5zW2ldLnNXaWR0aC5yZXBsYWNlKCdweCcsJycpLCAxMCkgKwoJCQkJCQkJKCQob05vZGVzW2lDb3JyZWN0b3JdKS5vdXRlcldpZHRoKCkgLSAkKG9Ob2Rlc1tpQ29ycmVjdG9yXSkud2lkdGgoKSk7CgkJCQkJfQoJCQkJCWlDb3JyZWN0b3IrKzsKCQkJCX0KCQkJfQoJCQkKCQkJbkNhbGNUbXAuc3R5bGUud2lkdGggPSBfZm5TdHJpbmdUb0NzcyggaVRvdGFsICk7CgkJCW9TZXR0aW5ncy5uVGFibGUuc3R5bGUud2lkdGggPSBfZm5TdHJpbmdUb0NzcyggaVRvdGFsICk7CgkJfQoKCQlpQ29ycmVjdG9yID0gMDsKCQlmb3IgKCBpPTAgOyBpPG9TZXR0aW5ncy5hb0NvbHVtbnMubGVuZ3RoIDsgaSsrICkKCQl7CgkJCWlmICggb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5iVmlzaWJsZSApCgkJCXsKCQkJCWlXaWR0aCA9ICQob05vZGVzW2lDb3JyZWN0b3JdKS53aWR0aCgpOwoJCQkJaWYgKCBpV2lkdGggIT09IG51bGwgJiYgaVdpZHRoID4gMCApCgkJCQl7CgkJCQkJb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5zV2lkdGggPSBfZm5TdHJpbmdUb0NzcyggaVdpZHRoICk7CgkJCQl9CgkJCQlpQ29ycmVjdG9yKys7CgkJCX0KCQl9CgoJCXZhciBjc3NXaWR0aCA9ICQobkNhbGNUbXApLmNzcygnd2lkdGgnKTsKCQlvU2V0dGluZ3MublRhYmxlLnN0eWxlLndpZHRoID0gKGNzc1dpZHRoLmluZGV4T2YoJyUnKSAhPT0gLTEpID8KCQkgICAgY3NzV2lkdGggOiBfZm5TdHJpbmdUb0NzcyggJChuQ2FsY1RtcCkub3V0ZXJXaWR0aCgpICk7CgkJbkNhbGNUbXAucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCggbkNhbGNUbXAgKTsKCX0KCglpZiAoIHdpZHRoQXR0ciApCgl7CgkJb1NldHRpbmdzLm5UYWJsZS5zdHlsZS53aWR0aCA9IF9mblN0cmluZ1RvQ3NzKCB3aWR0aEF0dHIgKTsKCX0KfQoKCi8qKgogKiBBZGp1c3QgYSB0YWJsZSdzIHdpZHRoIHRvIHRha2UgYWNjb3VudCBvZiBzY3JvbGxpbmcKICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKICogIEBwYXJhbSB7bm9kZX0gbiB0YWJsZSBub2RlCiAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKICovCmZ1bmN0aW9uIF9mblNjcm9sbGluZ1dpZHRoQWRqdXN0ICggb1NldHRpbmdzLCBuICkKewoJaWYgKCBvU2V0dGluZ3Mub1Njcm9sbC5zWCA9PT0gIiIgJiYgb1NldHRpbmdzLm9TY3JvbGwuc1kgIT09ICIiICkKCXsKCQkvKiBXaGVuIHktc2Nyb2xsaW5nIG9ubHksIHdlIHdhbnQgdG8gcmVtb3ZlIHRoZSB3aWR0aCBvZiB0aGUgc2Nyb2xsIGJhciBzbyB0aGUgdGFibGUKCQkgKiArIHNjcm9sbCBiYXIgd2lsbCBmaXQgaW50byB0aGUgYXJlYSBhdmFpYWxibGUuCgkJICovCgkJdmFyIGlPcmlnV2lkdGggPSAkKG4pLndpZHRoKCk7CgkJbi5zdHlsZS53aWR0aCA9IF9mblN0cmluZ1RvQ3NzKCAkKG4pLm91dGVyV2lkdGgoKS1vU2V0dGluZ3Mub1Njcm9sbC5pQmFyV2lkdGggKTsKCX0KCWVsc2UgaWYgKCBvU2V0dGluZ3Mub1Njcm9sbC5zWCAhPT0gIiIgKQoJewoJCS8qIFdoZW4geC1zY3JvbGxpbmcgYm90aCB3YXlzLCBmaXggdGhlIHRhYmxlIGF0IGl0J3MgY3VycmVudCBzaXplLCB3aXRob3V0IGFkanVzdGluZyAqLwoJCW4uc3R5bGUud2lkdGggPSBfZm5TdHJpbmdUb0NzcyggJChuKS5vdXRlcldpZHRoKCkgKTsKCX0KfQoKCi8qKgogKiBHZXQgdGhlIHdpZGVzdCBub2RlCiAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CiAqICBAcGFyYW0ge2ludH0gaUNvbCBjb2x1bW4gb2YgaW50ZXJlc3QKICogIEByZXR1cm5zIHtzdHJpbmd9IG1heCBzdHJpbmcgbGVuZ3RoIGZvciBlYWNoIGNvbHVtbgogKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCiAqLwpmdW5jdGlvbiBfZm5HZXRXaWRlc3ROb2RlKCBvU2V0dGluZ3MsIGlDb2wgKQp7Cgl2YXIgaU1heEluZGV4ID0gX2ZuR2V0TWF4TGVuU3RyaW5nKCBvU2V0dGluZ3MsIGlDb2wgKTsKCWlmICggaU1heEluZGV4IDwgMCApCgl7CgkJcmV0dXJuIG51bGw7Cgl9CgoJaWYgKCBvU2V0dGluZ3MuYW9EYXRhW2lNYXhJbmRleF0ublRyID09PSBudWxsICkKCXsKCQl2YXIgbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJbi5pbm5lckhUTUwgPSBfZm5HZXRDZWxsRGF0YSggb1NldHRpbmdzLCBpTWF4SW5kZXgsIGlDb2wsICcnICk7CgkJcmV0dXJuIG47Cgl9CglyZXR1cm4gX2ZuR2V0VGROb2RlcyhvU2V0dGluZ3MsIGlNYXhJbmRleClbaUNvbF07Cn0KCgovKioKICogR2V0IHRoZSBtYXhpbXVtIHN0cmxlbiBmb3IgZWFjaCBkYXRhIGNvbHVtbgogKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAogKiAgQHBhcmFtIHtpbnR9IGlDb2wgY29sdW1uIG9mIGludGVyZXN0CiAqICBAcmV0dXJucyB7c3RyaW5nfSBtYXggc3RyaW5nIGxlbmd0aCBmb3IgZWFjaCBjb2x1bW4KICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQogKi8KZnVuY3Rpb24gX2ZuR2V0TWF4TGVuU3RyaW5nKCBvU2V0dGluZ3MsIGlDb2wgKQp7Cgl2YXIgaU1heCA9IC0xOwoJdmFyIGlNYXhJbmRleCA9IC0xOwoJCglmb3IgKCB2YXIgaT0wIDsgaTxvU2V0dGluZ3MuYW9EYXRhLmxlbmd0aCA7IGkrKyApCgl7CgkJdmFyIHMgPSBfZm5HZXRDZWxsRGF0YSggb1NldHRpbmdzLCBpLCBpQ29sLCAnZGlzcGxheScgKSsiIjsKCQlzID0gcy5yZXBsYWNlKCAvPC4qPz4vZywgIiIgKTsKCQlpZiAoIHMubGVuZ3RoID4gaU1heCApCgkJewoJCQlpTWF4ID0gcy5sZW5ndGg7CgkJCWlNYXhJbmRleCA9IGk7CgkJfQoJfQoJCglyZXR1cm4gaU1heEluZGV4Owp9CgoKLyoqCiAqIEFwcGVuZCBhIENTUyB1bml0IChvbmx5IGlmIHJlcXVpcmVkKSB0byBhIHN0cmluZwogKiAgQHBhcmFtIHthcnJheX0gYUFycmF5MSBmaXJzdCBhcnJheQogKiAgQHBhcmFtIHthcnJheX0gYUFycmF5MiBzZWNvbmQgYXJyYXkKICogIEByZXR1cm5zIHtpbnR9IDAgaWYgbWF0Y2gsIDEgaWYgbGVuZ3RoIGlzIGRpZmZlcmVudCwgMiBpZiBubyBtYXRjaAogKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCiAqLwpmdW5jdGlvbiBfZm5TdHJpbmdUb0NzcyggcyApCnsKCWlmICggcyA9PT0gbnVsbCApCgl7CgkJcmV0dXJuICIwcHgiOwoJfQoJCglpZiAoIHR5cGVvZiBzID09ICdudW1iZXInICkKCXsKCQlpZiAoIHMgPCAwICkKCQl7CgkJCXJldHVybiAiMHB4IjsKCQl9CgkJcmV0dXJuIHMrInB4IjsKCX0KCQoJLyogQ2hlY2sgaWYgdGhlIGxhc3QgY2hhcmFjdGVyIGlzIG5vdCAwLTkgKi8KCXZhciBjID0gcy5jaGFyQ29kZUF0KCBzLmxlbmd0aC0xICk7CglpZiAoYyA8IDB4MzAgfHwgYyA+IDB4MzkpCgl7CgkJcmV0dXJuIHM7Cgl9CglyZXR1cm4gcysicHgiOwp9CgoKLyoqCiAqIEdldCB0aGUgd2lkdGggb2YgYSBzY3JvbGwgYmFyIGluIHRoaXMgYnJvd3NlciBiZWluZyB1c2VkCiAqICBAcmV0dXJucyB7aW50fSB3aWR0aCBpbiBwaXhlbHMKICogIEBtZW1iZXJvZiBEYXRhVGFibGUjb0FwaQogKi8KZnVuY3Rpb24gX2ZuU2Nyb2xsQmFyV2lkdGggKCkKeyAgCgl2YXIgaW5uZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7Cgl2YXIgc3R5bGUgPSBpbm5lci5zdHlsZTsKCXN0eWxlLndpZHRoID0gIjEwMCUiOwoJc3R5bGUuaGVpZ2h0ID0gIjIwMHB4IjsKCXN0eWxlLnBhZGRpbmcgPSAiMHB4IjsKCQoJdmFyIG91dGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CglzdHlsZSA9IG91dGVyLnN0eWxlOwoJc3R5bGUucG9zaXRpb24gPSAiYWJzb2x1dGUiOwoJc3R5bGUudG9wID0gIjBweCI7CglzdHlsZS5sZWZ0ID0gIjBweCI7CglzdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CglzdHlsZS53aWR0aCA9ICIyMDBweCI7CglzdHlsZS5oZWlnaHQgPSAiMTUwcHgiOwoJc3R5bGUucGFkZGluZyA9ICIwcHgiOwoJc3R5bGUub3ZlcmZsb3cgPSAiaGlkZGVuIjsKCW91dGVyLmFwcGVuZENoaWxkKGlubmVyKTsKCQoJZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChvdXRlcik7Cgl2YXIgdzEgPSBpbm5lci5vZmZzZXRXaWR0aDsKCW91dGVyLnN0eWxlLm92ZXJmbG93ID0gJ3Njcm9sbCc7Cgl2YXIgdzIgPSBpbm5lci5vZmZzZXRXaWR0aDsKCWlmICggdzEgPT0gdzIgKQoJewoJCXcyID0gb3V0ZXIuY2xpZW50V2lkdGg7Cgl9CgkKCWRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQob3V0ZXIpOwoJcmV0dXJuICh3MSAtIHcyKTsgIAp9Cgo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/core/core.sort.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CgovKioKICogQ2hhbmdlIHRoZSBvcmRlciBvZiB0aGUgdGFibGUKICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKICogIEBwYXJhbSB7Ym9vbH0gYkFwcGx5Q2xhc3NlcyBvcHRpb25hbCAtIHNob3VsZCB3ZSBhcHBseSBjbGFzc2VzIG9yIG5vdAogKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCiAqLwpmdW5jdGlvbiBfZm5Tb3J0ICggb1NldHRpbmdzLCBiQXBwbHlDbGFzc2VzICkKewoJdmFyCgkJaSwgaUxlbiwgaiwgakxlbiwgaywga0xlbiwKCQlzRGF0YVR5cGUsIG5UaCwKCQlhYVNvcnQgPSBbXSwKCSAJYWlPcmlnID0gW10sCgkJb1NvcnQgPSBEYXRhVGFibGUuZXh0Lm9Tb3J0LAoJCWFvRGF0YSA9IG9TZXR0aW5ncy5hb0RhdGEsCgkJYW9Db2x1bW5zID0gb1NldHRpbmdzLmFvQ29sdW1ucywKCQlvQXJpYSA9IG9TZXR0aW5ncy5vTGFuZ3VhZ2Uub0FyaWE7CgkKCS8qIE5vIHNvcnRpbmcgcmVxdWlyZWQgaWYgc2VydmVyLXNpZGUgb3Igbm8gc29ydGluZyBhcnJheSAqLwoJaWYgKCAhb1NldHRpbmdzLm9GZWF0dXJlcy5iU2VydmVyU2lkZSAmJiAKCQkob1NldHRpbmdzLmFhU29ydGluZy5sZW5ndGggIT09IDAgfHwgb1NldHRpbmdzLmFhU29ydGluZ0ZpeGVkICE9PSBudWxsKSApCgl7CgkJYWFTb3J0ID0gKCBvU2V0dGluZ3MuYWFTb3J0aW5nRml4ZWQgIT09IG51bGwgKSA/CgkJCW9TZXR0aW5ncy5hYVNvcnRpbmdGaXhlZC5jb25jYXQoIG9TZXR0aW5ncy5hYVNvcnRpbmcgKSA6CgkJCW9TZXR0aW5ncy5hYVNvcnRpbmcuc2xpY2UoKTsKCQkKCQkvKiBJZiB0aGVyZSBpcyBhIHNvcnRpbmcgZGF0YSB0eXBlLCBhbmQgYSBmdW5jdGlvbiBiZWxvbmdpbmcgdG8gaXQsIHRoZW4gd2UgbmVlZCB0bwoJCSAqIGdldCB0aGUgZGF0YSBmcm9tIHRoZSBkZXZlbG9wZXIncyBmdW5jdGlvbiBhbmQgYXBwbHkgaXQgZm9yIHRoaXMgY29sdW1uCgkJICovCgkJZm9yICggaT0wIDsgaTxhYVNvcnQubGVuZ3RoIDsgaSsrICkKCQl7CgkJCXZhciBpQ29sdW1uID0gYWFTb3J0W2ldWzBdOwoJCQl2YXIgaVZpc0NvbHVtbiA9IF9mbkNvbHVtbkluZGV4VG9WaXNpYmxlKCBvU2V0dGluZ3MsIGlDb2x1bW4gKTsKCQkJc0RhdGFUeXBlID0gb1NldHRpbmdzLmFvQ29sdW1uc1sgaUNvbHVtbiBdLnNTb3J0RGF0YVR5cGU7CgkJCWlmICggRGF0YVRhYmxlLmV4dC5hZm5Tb3J0RGF0YVtzRGF0YVR5cGVdICkKCQkJewoJCQkJdmFyIGFEYXRhID0gRGF0YVRhYmxlLmV4dC5hZm5Tb3J0RGF0YVtzRGF0YVR5cGVdLmNhbGwoIAoJCQkJCW9TZXR0aW5ncy5vSW5zdGFuY2UsIG9TZXR0aW5ncywgaUNvbHVtbiwgaVZpc0NvbHVtbgoJCQkJKTsKCQkJCWlmICggYURhdGEubGVuZ3RoID09PSBhb0RhdGEubGVuZ3RoICkKCQkJCXsKCQkJCQlmb3IgKCBqPTAsIGpMZW49YW9EYXRhLmxlbmd0aCA7IGo8akxlbiA7IGorKyApCgkJCQkJewoJCQkJCQlfZm5TZXRDZWxsRGF0YSggb1NldHRpbmdzLCBqLCBpQ29sdW1uLCBhRGF0YVtqXSApOwoJCQkJCX0KCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQlfZm5Mb2coIG9TZXR0aW5ncywgMCwgIlJldHVybmVkIGRhdGEgc29ydCBhcnJheSAoY29sICIraUNvbHVtbisiKSBpcyB0aGUgd3JvbmcgbGVuZ3RoIiApOwoJCQkJfQoJCQl9CgkJfQoJCQoJCS8qIENyZWF0ZSBhIHZhbHVlIC0ga2V5IGFycmF5IG9mIHRoZSBjdXJyZW50IHJvdyBwb3NpdGlvbnMgc3VjaCB0aGF0IHdlIGNhbiB1c2UgdGhlaXIKCQkgKiBjdXJyZW50IHBvc2l0aW9uIGR1cmluZyB0aGUgc29ydCwgaWYgdmFsdWVzIG1hdGNoLCBpbiBvcmRlciB0byBwZXJmb3JtIHN0YWJsZSBzb3J0aW5nCgkJICovCgkJZm9yICggaT0wLCBpTGVuPW9TZXR0aW5ncy5haURpc3BsYXlNYXN0ZXIubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQl7CgkJCWFpT3JpZ1sgb1NldHRpbmdzLmFpRGlzcGxheU1hc3RlcltpXSBdID0gaTsKCQl9CgoJCS8qIEJ1aWxkIGFuIGludGVybmFsIGRhdGEgYXJyYXkgd2hpY2ggaXMgc3BlY2lmaWMgdG8gdGhlIHNvcnQsIHNvIHdlIGNhbiBnZXQgYW5kIHByZXAKCQkgKiB0aGUgZGF0YSB0byBiZSBzb3J0ZWQgb25seSBvbmNlLCByYXRoZXIgdGhhbiBuZWVkaW5nIHRvIGRvIGl0IGV2ZXJ5IHRpbWUgdGhlIHNvcnRpbmcKCQkgKiBmdW5jdGlvbiBydW5zLiBUaGlzIG1ha2UgdGhlIHNvcnRpbmcgZnVuY3Rpb24gYSB2ZXJ5IHNpbXBsZSBjb21wYXJpc29uCgkJICovCgkJdmFyIGlTb3J0TGVuID0gYWFTb3J0Lmxlbmd0aDsKCQl2YXIgZm5Tb3J0Rm9ybWF0LCBhRGF0YVNvcnQ7CgkJZm9yICggaT0wLCBpTGVuPWFvRGF0YS5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCXsKCQkJZm9yICggaj0wIDsgajxpU29ydExlbiA7IGorKyApCgkJCXsKCQkJCWFEYXRhU29ydCA9IGFvQ29sdW1uc1sgYWFTb3J0W2pdWzBdIF0uYURhdGFTb3J0OwoKCQkJCWZvciAoIGs9MCwga0xlbj1hRGF0YVNvcnQubGVuZ3RoIDsgazxrTGVuIDsgaysrICkKCQkJCXsKCQkJCQlzRGF0YVR5cGUgPSBhb0NvbHVtbnNbIGFEYXRhU29ydFtrXSBdLnNUeXBlOwoJCQkJCWZuU29ydEZvcm1hdCA9IG9Tb3J0WyAoc0RhdGFUeXBlID8gc0RhdGFUeXBlIDogJ3N0cmluZycpKyItcHJlIiBdOwoJCQkJCQoJCQkJCWFvRGF0YVtpXS5fYVNvcnREYXRhWyBhRGF0YVNvcnRba10gXSA9IGZuU29ydEZvcm1hdCA/CgkJCQkJCWZuU29ydEZvcm1hdCggX2ZuR2V0Q2VsbERhdGEoIG9TZXR0aW5ncywgaSwgYURhdGFTb3J0W2tdLCAnc29ydCcgKSApIDoKCQkJCQkJX2ZuR2V0Q2VsbERhdGEoIG9TZXR0aW5ncywgaSwgYURhdGFTb3J0W2tdLCAnc29ydCcgKTsKCQkJCX0KCQkJfQoJCX0KCQkKCQkvKiBEbyB0aGUgc29ydCAtIGhlcmUgd2Ugd2FudCBtdWx0aS1jb2x1bW4gc29ydGluZyBiYXNlZCBvbiBhIGdpdmVuIGRhdGEgc291cmNlIChjb2x1bW4pCgkJICogYW5kIHNvcnRpbmcgZnVuY3Rpb24gKGZyb20gb1NvcnQpIGluIGEgY2VydGFpbiBkaXJlY3Rpb24uIEl0J3MgcmVhc29uYWJseSBjb21wbGV4IHRvCgkJICogZm9sbG93IG9uIGl0J3Mgb3duLCBidXQgdGhpcyBpcyB3aGF0IHdlIHdhbnQgKGV4YW1wbGUgdHdvIGNvbHVtbiBzb3J0aW5nKToKCQkgKiAgZm5Mb2NhbFNvcnRpbmcgPSBmdW5jdGlvbihhLGIpewoJCSAqICAJdmFyIGlUZXN0OwoJCSAqICAJaVRlc3QgPSBvU29ydFsnc3RyaW5nLWFzYyddKCdkYXRhMTEnLCAnZGF0YTEyJyk7CgkJICogIAlpZiAoaVRlc3QgIT09IDApCgkJICogIAkJcmV0dXJuIGlUZXN0OwoJCSAqICAgIGlUZXN0ID0gb1NvcnRbJ251bWVyaWMtZGVzYyddKCdkYXRhMjEnLCAnZGF0YTIyJyk7CgkJICogICAgaWYgKGlUZXN0ICE9PSAwKQoJCSAqICAJCXJldHVybiBpVGVzdDsKCQkgKiAgCXJldHVybiBvU29ydFsnbnVtZXJpYy1hc2MnXSggYWlPcmlnW2FdLCBhaU9yaWdbYl0gKTsKCQkgKiAgfQoJCSAqIEJhc2ljYWxseSB3ZSBoYXZlIGEgdGVzdCBmb3IgZWFjaCBzb3J0aW5nIGNvbHVtbiwgaWYgdGhlIGRhdGEgaW4gdGhhdCBjb2x1bW4gaXMgZXF1YWwsCgkJICogdGVzdCB0aGUgbmV4dCBjb2x1bW4uIElmIGFsbCBjb2x1bW5zIG1hdGNoLCB0aGVuIHdlIHVzZSBhIG51bWVyaWMgc29ydCBvbiB0aGUgcm93IAoJCSAqIHBvc2l0aW9ucyBpbiB0aGUgb3JpZ2luYWwgZGF0YSBhcnJheSB0byBwcm92aWRlIGEgc3RhYmxlIHNvcnQuCgkJICovCgkJb1NldHRpbmdzLmFpRGlzcGxheU1hc3Rlci5zb3J0KCBmdW5jdGlvbiAoIGEsIGIgKSB7CgkJCXZhciBrLCBsLCBsTGVuLCBpVGVzdCwgYURhdGFTb3J0LCBzRGF0YVR5cGU7CgkJCWZvciAoIGs9MCA7IGs8aVNvcnRMZW4gOyBrKysgKQoJCQl7CgkJCQlhRGF0YVNvcnQgPSBhb0NvbHVtbnNbIGFhU29ydFtrXVswXSBdLmFEYXRhU29ydDsKCgkJCQlmb3IgKCBsPTAsIGxMZW49YURhdGFTb3J0Lmxlbmd0aCA7IGw8bExlbiA7IGwrKyApCgkJCQl7CgkJCQkJc0RhdGFUeXBlID0gYW9Db2x1bW5zWyBhRGF0YVNvcnRbbF0gXS5zVHlwZTsKCQkJCQkKCQkJCQlpVGVzdCA9IG9Tb3J0WyAoc0RhdGFUeXBlID8gc0RhdGFUeXBlIDogJ3N0cmluZycpKyItIithYVNvcnRba11bMV0gXSgKCQkJCQkJYW9EYXRhW2FdLl9hU29ydERhdGFbIGFEYXRhU29ydFtsXSBdLAoJCQkJCQlhb0RhdGFbYl0uX2FTb3J0RGF0YVsgYURhdGFTb3J0W2xdIF0KCQkJCQkpOwoJCQkJCgkJCQkJaWYgKCBpVGVzdCAhPT0gMCApCgkJCQkJewoJCQkJCQlyZXR1cm4gaVRlc3Q7CgkJCQkJfQoJCQkJfQoJCQl9CgkJCQoJCQlyZXR1cm4gb1NvcnRbJ251bWVyaWMtYXNjJ10oIGFpT3JpZ1thXSwgYWlPcmlnW2JdICk7CgkJfSApOwoJfQoJCgkvKiBBbHRlciB0aGUgc29ydGluZyBjbGFzc2VzIHRvIHRha2UgYWNjb3VudCBvZiB0aGUgY2hhbmdlcyAqLwoJaWYgKCAoYkFwcGx5Q2xhc3NlcyA9PT0gdW5kZWZpbmVkIHx8IGJBcHBseUNsYXNzZXMpICYmICFvU2V0dGluZ3Mub0ZlYXR1cmVzLmJEZWZlclJlbmRlciApCgl7CgkJX2ZuU29ydGluZ0NsYXNzZXMoIG9TZXR0aW5ncyApOwoJfQoKCWZvciAoIGk9MCwgaUxlbj1vU2V0dGluZ3MuYW9Db2x1bW5zLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgl7CgkJdmFyIHNUaXRsZSA9IGFvQ29sdW1uc1tpXS5zVGl0bGUucmVwbGFjZSggLzwuKj8+L2csICIiICk7CgkJblRoID0gYW9Db2x1bW5zW2ldLm5UaDsKCQluVGgucmVtb3ZlQXR0cmlidXRlKCdhcmlhLXNvcnQnKTsKCQluVGgucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWxhYmVsJyk7CgkJCgkJLyogSW4gQVJJQSBvbmx5IHRoZSBmaXJzdCBzb3J0aW5nIGNvbHVtbiBjYW4gYmUgbWFya2VkIGFzIHNvcnRpbmcgLSBubyBtdWx0aS1zb3J0IG9wdGlvbiAqLwoJCWlmICggYW9Db2x1bW5zW2ldLmJTb3J0YWJsZSApCgkJewoJCQlpZiAoIGFhU29ydC5sZW5ndGggPiAwICYmIGFhU29ydFswXVswXSA9PSBpICkKCQkJewoJCQkJblRoLnNldEF0dHJpYnV0ZSgnYXJpYS1zb3J0JywgYWFTb3J0WzBdWzFdPT0iYXNjIiA/ICJhc2NlbmRpbmciIDogImRlc2NlbmRpbmciICk7CgkJCQkKCQkJCXZhciBuZXh0U29ydCA9IChhb0NvbHVtbnNbaV0uYXNTb3J0aW5nWyBhYVNvcnRbMF1bMl0rMSBdKSA/IAoJCQkJCWFvQ29sdW1uc1tpXS5hc1NvcnRpbmdbIGFhU29ydFswXVsyXSsxIF0gOiBhb0NvbHVtbnNbaV0uYXNTb3J0aW5nWzBdOwoJCQkJblRoLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsIHNUaXRsZSsKCQkJCQkobmV4dFNvcnQ9PSJhc2MiID8gb0FyaWEuc1NvcnRBc2NlbmRpbmcgOiBvQXJpYS5zU29ydERlc2NlbmRpbmcpICk7CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQluVGguc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgc1RpdGxlKwoJCQkJCShhb0NvbHVtbnNbaV0uYXNTb3J0aW5nWzBdPT0iYXNjIiA/IG9BcmlhLnNTb3J0QXNjZW5kaW5nIDogb0FyaWEuc1NvcnREZXNjZW5kaW5nKSApOwoJCQl9CgkJfQoJCWVsc2UKCQl7CgkJCW5UaC5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCBzVGl0bGUpOwoJCX0KCX0KCQoJLyogVGVsbCB0aGUgZHJhdyBmdW5jdGlvbiB0aGF0IHdlIGhhdmUgc29ydGVkIHRoZSBkYXRhICovCglvU2V0dGluZ3MuYlNvcnRlZCA9IHRydWU7CgkkKG9TZXR0aW5ncy5vSW5zdGFuY2UpLnRyaWdnZXIoJ3NvcnQnLCBvU2V0dGluZ3MpOwoJCgkvKiBDb3B5IHRoZSBtYXN0ZXIgZGF0YSBpbnRvIHRoZSBkcmF3IGFycmF5IGFuZCByZS1kcmF3ICovCglpZiAoIG9TZXR0aW5ncy5vRmVhdHVyZXMuYkZpbHRlciApCgl7CgkJLyogX2ZuRmlsdGVyKCkgd2lsbCByZWRyYXcgdGhlIHRhYmxlIGZvciB1cyAqLwoJCV9mbkZpbHRlckNvbXBsZXRlKCBvU2V0dGluZ3MsIG9TZXR0aW5ncy5vUHJldmlvdXNTZWFyY2gsIDEgKTsKCX0KCWVsc2UKCXsKCQlvU2V0dGluZ3MuYWlEaXNwbGF5ID0gb1NldHRpbmdzLmFpRGlzcGxheU1hc3Rlci5zbGljZSgpOwoJCW9TZXR0aW5ncy5faURpc3BsYXlTdGFydCA9IDA7IC8qIHJlc2V0IGRpc3BsYXkgYmFjayB0byBwYWdlIDAgKi8KCQlfZm5DYWxjdWxhdGVFbmQoIG9TZXR0aW5ncyApOwoJCV9mbkRyYXcoIG9TZXR0aW5ncyApOwoJfQp9CgoKLyoqCiAqIEF0dGFjaCBhIHNvcnQgaGFuZGxlciAoY2xpY2spIHRvIGEgbm9kZQogKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAogKiAgQHBhcmFtIHtub2RlfSBuTm9kZSBub2RlIHRvIGF0dGFjaCB0aGUgaGFuZGxlciB0bwogKiAgQHBhcmFtIHtpbnR9IGlEYXRhSW5kZXggY29sdW1uIHNvcnRpbmcgaW5kZXgKICogIEBwYXJhbSB7ZnVuY3Rpb259IFtmbkNhbGxiYWNrXSBjYWxsYmFjayBmdW5jdGlvbgogKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCiAqLwpmdW5jdGlvbiBfZm5Tb3J0QXR0YWNoTGlzdGVuZXIgKCBvU2V0dGluZ3MsIG5Ob2RlLCBpRGF0YUluZGV4LCBmbkNhbGxiYWNrICkKewoJX2ZuQmluZEFjdGlvbiggbk5vZGUsIHt9LCBmdW5jdGlvbiAoZSkgewoJCS8qIElmIHRoZSBjb2x1bW4gaXMgbm90IHNvcnRhYmxlIC0gZG9uJ3QgdG8gYW55dGhpbmcgKi8KCQlpZiAoIG9TZXR0aW5ncy5hb0NvbHVtbnNbaURhdGFJbmRleF0uYlNvcnRhYmxlID09PSBmYWxzZSApCgkJewoJCQlyZXR1cm47CgkJfQoJCQoJCS8qCgkJICogVGhpcyBpcyBhIGxpdHRsZSBiaXQgb2RkIEkgYWRtaXQuLi4gSSBkZWNsYXJlIGEgdGVtcG9yYXJ5IGZ1bmN0aW9uIGluc2lkZSB0aGUgc2NvcGUgb2YKCQkgKiBfZm5CdWlsZEhlYWQgYW5kIHRoZSBjbGljayBoYW5kbGVyIGluIG9yZGVyIHRoYXQgdGhlIGNvZGUgcHJlc2VudGVkIGhlcmUgY2FuIGJlIHVzZWQgCgkJICogdHdpY2UgLSBvbmNlIGZvciB3aGVuIGJQcm9jZXNzaW5nIGlzIGVuYWJsZWQsIGFuZCBhbm90aGVyIHRpbWUgZm9yIHdoZW4gaXQgaXMgCgkJICogZGlzYWJsZWQsIGFzIHdlIG5lZWQgdG8gcGVyZm9ybSBzbGlnaHRseSBkaWZmZXJlbnQgYWN0aW9ucy4KCQkgKiAgIEJhc2ljYWxseSB0aGUgaXNzdWUgaGVyZSBpcyB0aGF0IHRoZSBKYXZhc2NyaXB0IGVuZ2luZSBpbiBtb2Rlcm4gYnJvd3NlcnMgZG9uJ3QgCgkJICogYXBwZWFyIHRvIGFsbG93IHRoZSByZW5kZXJpbmcgZW5naW5lIHRvIHVwZGF0ZSB0aGUgZGlzcGxheSB3aGlsZSBpdCBpcyBzdGlsbCBleGVjdXRpbmcKCQkgKiBpdCdzIHRocmVhZCAod2VsbCAtIGl0IGRvZXMgYnV0IG9ubHkgYWZ0ZXIgbG9uZyBpbnRlcnZhbHMpLiBUaGlzIG1lYW5zIHRoYXQgdGhlIAoJCSAqICdwcm9jZXNzaW5nJyBkaXNwbGF5IGRvZXNuJ3QgYXBwZWFyIGZvciBhIHRhYmxlIHNvcnQuIFRvIGJyZWFrIHRoZSBqcyB0aHJlYWQgdXAgYSBiaXQKCQkgKiBJIGZvcmNlIGFuIGV4ZWN1dGlvbiBicmVhayBieSB1c2luZyBzZXRUaW1lb3V0IC0gYnV0IHRoaXMgYnJlYWtzIHRoZSBleHBlY3RlZCAKCQkgKiB0aHJlYWQgY29udGludWF0aW9uIGZvciB0aGUgZW5kLWRldmVsb3BlcidzIHBvaW50IG9mIHZpZXcgKHRoZWlyIGNvZGUgd291bGQgZXhlY3V0ZQoJCSAqIHRvbyBlYXJseSksIHNvIHdlIG9ubHkgZG8gaXQgd2hlbiB3ZSBhYnNvbHV0ZWx5IGhhdmUgdG8uCgkJICovCgkJdmFyIGZuSW5uZXJTb3J0aW5nID0gZnVuY3Rpb24gKCkgewoJCQl2YXIgaUNvbHVtbiwgaU5leHRTb3J0OwoJCQkKCQkJLyogSWYgdGhlIHNoaWZ0IGtleSBpcyBwcmVzc2VkIHRoZW4gd2UgYXJlIG11bHRpcGxlIGNvbHVtbiBzb3J0aW5nICovCgkJCWlmICggZS5zaGlmdEtleSApCgkJCXsKCQkJCS8qIEFyZSB3ZSBhbHJlYWR5IGRvaW5nIHNvbWUga2luZCBvZiBzb3J0IG9uIHRoaXMgY29sdW1uPyAqLwoJCQkJdmFyIGJGb3VuZCA9IGZhbHNlOwoJCQkJZm9yICggdmFyIGk9MCA7IGk8b1NldHRpbmdzLmFhU29ydGluZy5sZW5ndGggOyBpKysgKQoJCQkJewoJCQkJCWlmICggb1NldHRpbmdzLmFhU29ydGluZ1tpXVswXSA9PSBpRGF0YUluZGV4ICkKCQkJCQl7CgkJCQkJCWJGb3VuZCA9IHRydWU7CgkJCQkJCWlDb2x1bW4gPSBvU2V0dGluZ3MuYWFTb3J0aW5nW2ldWzBdOwoJCQkJCQlpTmV4dFNvcnQgPSBvU2V0dGluZ3MuYWFTb3J0aW5nW2ldWzJdKzE7CgkJCQkJCQoJCQkJCQlpZiAoICFvU2V0dGluZ3MuYW9Db2x1bW5zW2lDb2x1bW5dLmFzU29ydGluZ1tpTmV4dFNvcnRdICkKCQkJCQkJewoJCQkJCQkJLyogUmVhY2hlZCB0aGUgZW5kIG9mIHRoZSBzb3J0aW5nIG9wdGlvbnMsIHJlbW92ZSBmcm9tIG11bHRpLWNvbCBzb3J0ICovCgkJCQkJCQlvU2V0dGluZ3MuYWFTb3J0aW5nLnNwbGljZSggaSwgMSApOwoJCQkJCQl9CgkJCQkJCWVsc2UKCQkJCQkJewoJCQkJCQkJLyogTW92ZSBvbnRvIG5leHQgc29ydGluZyBkaXJlY3Rpb24gKi8KCQkJCQkJCW9TZXR0aW5ncy5hYVNvcnRpbmdbaV1bMV0gPSBvU2V0dGluZ3MuYW9Db2x1bW5zW2lDb2x1bW5dLmFzU29ydGluZ1tpTmV4dFNvcnRdOwoJCQkJCQkJb1NldHRpbmdzLmFhU29ydGluZ1tpXVsyXSA9IGlOZXh0U29ydDsKCQkJCQkJfQoJCQkJCQlicmVhazsKCQkJCQl9CgkJCQl9CgkJCQkKCQkJCS8qIE5vIHNvcnQgeWV0IC0gYWRkIGl0IGluICovCgkJCQlpZiAoIGJGb3VuZCA9PT0gZmFsc2UgKQoJCQkJewoJCQkJCW9TZXR0aW5ncy5hYVNvcnRpbmcucHVzaCggWyBpRGF0YUluZGV4LCAKCQkJCQkJb1NldHRpbmdzLmFvQ29sdW1uc1tpRGF0YUluZGV4XS5hc1NvcnRpbmdbMF0sIDAgXSApOwoJCQkJfQoJCQl9CgkJCWVsc2UKCQkJewoJCQkJLyogSWYgbm8gc2hpZnQga2V5IHRoZW4gc2luZ2xlIGNvbHVtbiBzb3J0ICovCgkJCQlpZiAoIG9TZXR0aW5ncy5hYVNvcnRpbmcubGVuZ3RoID09IDEgJiYgb1NldHRpbmdzLmFhU29ydGluZ1swXVswXSA9PSBpRGF0YUluZGV4ICkKCQkJCXsKCQkJCQlpQ29sdW1uID0gb1NldHRpbmdzLmFhU29ydGluZ1swXVswXTsKCQkJCQlpTmV4dFNvcnQgPSBvU2V0dGluZ3MuYWFTb3J0aW5nWzBdWzJdKzE7CgkJCQkJaWYgKCAhb1NldHRpbmdzLmFvQ29sdW1uc1tpQ29sdW1uXS5hc1NvcnRpbmdbaU5leHRTb3J0XSApCgkJCQkJewoJCQkJCQlpTmV4dFNvcnQgPSAwOwoJCQkJCX0KCQkJCQlvU2V0dGluZ3MuYWFTb3J0aW5nWzBdWzFdID0gb1NldHRpbmdzLmFvQ29sdW1uc1tpQ29sdW1uXS5hc1NvcnRpbmdbaU5leHRTb3J0XTsKCQkJCQlvU2V0dGluZ3MuYWFTb3J0aW5nWzBdWzJdID0gaU5leHRTb3J0OwoJCQkJfQoJCQkJZWxzZQoJCQkJewoJCQkJCW9TZXR0aW5ncy5hYVNvcnRpbmcuc3BsaWNlKCAwLCBvU2V0dGluZ3MuYWFTb3J0aW5nLmxlbmd0aCApOwoJCQkJCW9TZXR0aW5ncy5hYVNvcnRpbmcucHVzaCggWyBpRGF0YUluZGV4LCAKCQkJCQkJb1NldHRpbmdzLmFvQ29sdW1uc1tpRGF0YUluZGV4XS5hc1NvcnRpbmdbMF0sIDAgXSApOwoJCQkJfQoJCQl9CgkJCQoJCQkvKiBSdW4gdGhlIHNvcnQgKi8KCQkJX2ZuU29ydCggb1NldHRpbmdzICk7CgkJfTsgLyogL2ZuSW5uZXJTb3J0aW5nICovCgkJCgkJaWYgKCAhb1NldHRpbmdzLm9GZWF0dXJlcy5iUHJvY2Vzc2luZyApCgkJewoJCQlmbklubmVyU29ydGluZygpOwoJCX0KCQllbHNlCgkJewoJCQlfZm5Qcm9jZXNzaW5nRGlzcGxheSggb1NldHRpbmdzLCB0cnVlICk7CgkJCXNldFRpbWVvdXQoIGZ1bmN0aW9uKCkgewoJCQkJZm5Jbm5lclNvcnRpbmcoKTsKCQkJCWlmICggIW9TZXR0aW5ncy5vRmVhdHVyZXMuYlNlcnZlclNpZGUgKQoJCQkJewoJCQkJCV9mblByb2Nlc3NpbmdEaXNwbGF5KCBvU2V0dGluZ3MsIGZhbHNlICk7CgkJCQl9CgkJCX0sIDAgKTsKCQl9CgkJCgkJLyogQ2FsbCB0aGUgdXNlciBzcGVjaWZpZWQgY2FsbGJhY2sgZnVuY3Rpb24gLSB1c2VkIGZvciBhc3luYyB1c2VyIGludGVyYWN0aW9uICovCgkJaWYgKCB0eXBlb2YgZm5DYWxsYmFjayA9PSAnZnVuY3Rpb24nICkKCQl7CgkJCWZuQ2FsbGJhY2soIG9TZXR0aW5ncyApOwoJCX0KCX0gKTsKfQoKCi8qKgogKiBTZXQgdGhlIHNvcnRpbmcgY2xhc3NlcyBvbiB0aGUgaGVhZGVyLCBOb3RlOiBpdCBpcyBzYWZlIHRvIGNhbGwgdGhpcyBmdW5jdGlvbiAKICogd2hlbiBiU29ydCBhbmQgYlNvcnRDbGFzc2VzIGFyZSBmYWxzZQogKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAogKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCiAqLwpmdW5jdGlvbiBfZm5Tb3J0aW5nQ2xhc3Nlcyggb1NldHRpbmdzICkKewoJdmFyIGksIGlMZW4sIGosIGpMZW4sIGlGb3VuZDsKCXZhciBhYVNvcnQsIHNDbGFzczsKCXZhciBpQ29sdW1ucyA9IG9TZXR0aW5ncy5hb0NvbHVtbnMubGVuZ3RoOwoJdmFyIG9DbGFzc2VzID0gb1NldHRpbmdzLm9DbGFzc2VzOwoJCglmb3IgKCBpPTAgOyBpPGlDb2x1bW5zIDsgaSsrICkKCXsKCQlpZiAoIG9TZXR0aW5ncy5hb0NvbHVtbnNbaV0uYlNvcnRhYmxlICkKCQl7CgkJCSQob1NldHRpbmdzLmFvQ29sdW1uc1tpXS5uVGgpLnJlbW92ZUNsYXNzKCBvQ2xhc3Nlcy5zU29ydEFzYyArIiAiKyBvQ2xhc3Nlcy5zU29ydERlc2MgKwoJCQkJIiAiKyBvU2V0dGluZ3MuYW9Db2x1bW5zW2ldLnNTb3J0aW5nQ2xhc3MgKTsKCQl9Cgl9CgkKCWlmICggb1NldHRpbmdzLmFhU29ydGluZ0ZpeGVkICE9PSBudWxsICkKCXsKCQlhYVNvcnQgPSBvU2V0dGluZ3MuYWFTb3J0aW5nRml4ZWQuY29uY2F0KCBvU2V0dGluZ3MuYWFTb3J0aW5nICk7Cgl9CgllbHNlCgl7CgkJYWFTb3J0ID0gb1NldHRpbmdzLmFhU29ydGluZy5zbGljZSgpOwoJfQoJCgkvKiBBcHBseSB0aGUgcmVxdWlyZWQgY2xhc3NlcyB0byB0aGUgaGVhZGVyICovCglmb3IgKCBpPTAgOyBpPG9TZXR0aW5ncy5hb0NvbHVtbnMubGVuZ3RoIDsgaSsrICkKCXsKCQlpZiAoIG9TZXR0aW5ncy5hb0NvbHVtbnNbaV0uYlNvcnRhYmxlICkKCQl7CgkJCXNDbGFzcyA9IG9TZXR0aW5ncy5hb0NvbHVtbnNbaV0uc1NvcnRpbmdDbGFzczsKCQkJaUZvdW5kID0gLTE7CgkJCWZvciAoIGo9MCA7IGo8YWFTb3J0Lmxlbmd0aCA7IGorKyApCgkJCXsKCQkJCWlmICggYWFTb3J0W2pdWzBdID09IGkgKQoJCQkJewoJCQkJCXNDbGFzcyA9ICggYWFTb3J0W2pdWzFdID09ICJhc2MiICkgPwoJCQkJCQlvQ2xhc3Nlcy5zU29ydEFzYyA6IG9DbGFzc2VzLnNTb3J0RGVzYzsKCQkJCQlpRm91bmQgPSBqOwoJCQkJCWJyZWFrOwoJCQkJfQoJCQl9CgkJCSQob1NldHRpbmdzLmFvQ29sdW1uc1tpXS5uVGgpLmFkZENsYXNzKCBzQ2xhc3MgKTsKCQkJCgkJCWlmICggb1NldHRpbmdzLmJKVUkgKQoJCQl7CgkJCQkvKiBqUXVlcnkgVUkgdXNlcyBleHRyYSBtYXJrdXAgKi8KCQkJCXZhciBqcVNwYW4gPSAkKCJzcGFuLiIrb0NsYXNzZXMuc1NvcnRJY29uLCAgb1NldHRpbmdzLmFvQ29sdW1uc1tpXS5uVGgpOwoJCQkJanFTcGFuLnJlbW92ZUNsYXNzKG9DbGFzc2VzLnNTb3J0SlVJQXNjICsiICIrIG9DbGFzc2VzLnNTb3J0SlVJRGVzYyArIiAiKyAKCQkJCQlvQ2xhc3Nlcy5zU29ydEpVSSArIiAiKyBvQ2xhc3Nlcy5zU29ydEpVSUFzY0FsbG93ZWQgKyIgIisgb0NsYXNzZXMuc1NvcnRKVUlEZXNjQWxsb3dlZCApOwoJCQkJCgkJCQl2YXIgc1NwYW5DbGFzczsKCQkJCWlmICggaUZvdW5kID09IC0xICkKCQkJCXsKCQkJCSAJc1NwYW5DbGFzcyA9IG9TZXR0aW5ncy5hb0NvbHVtbnNbaV0uc1NvcnRpbmdDbGFzc0pVSTsKCQkJCX0KCQkJCWVsc2UgaWYgKCBhYVNvcnRbaUZvdW5kXVsxXSA9PSAiYXNjIiApCgkJCQl7CgkJCQkJc1NwYW5DbGFzcyA9IG9DbGFzc2VzLnNTb3J0SlVJQXNjOwoJCQkJfQoJCQkJZWxzZQoJCQkJewoJCQkJCXNTcGFuQ2xhc3MgPSBvQ2xhc3Nlcy5zU29ydEpVSURlc2M7CgkJCQl9CgkJCQkKCQkJCWpxU3Bhbi5hZGRDbGFzcyggc1NwYW5DbGFzcyApOwoJCQl9CgkJfQoJCWVsc2UKCQl7CgkJCS8qIE5vIHNvcnRpbmcgb24gdGhpcyBjb2x1bW4sIHNvIGFkZCB0aGUgYmFzZSBjbGFzcy4gVGhpcyB3aWxsIGhhdmUgYmVlbiBhc3NpZ25lZCBieQoJCQkgKiBfZm5BZGRDb2x1bW4KCQkJICovCgkJCSQob1NldHRpbmdzLmFvQ29sdW1uc1tpXS5uVGgpLmFkZENsYXNzKCBvU2V0dGluZ3MuYW9Db2x1bW5zW2ldLnNTb3J0aW5nQ2xhc3MgKTsKCQl9Cgl9CgkKCS8qIAoJICogQXBwbHkgdGhlIHJlcXVpcmVkIGNsYXNzZXMgdG8gdGhlIHRhYmxlIGJvZHkKCSAqIE5vdGUgdGhhdCB0aGlzIGlzIGdpdmVuIGFzIGEgZmVhdHVyZSBzd2l0Y2ggc2luY2UgaXQgY2FuIHNpZ25pZmljYW50bHkgc2xvdyBkb3duIGEgc29ydAoJICogb24gbGFyZ2UgZGF0YSBzZXRzIChhZGRpbmcgYW5kIHJlbW92aW5nIG9mIGNsYXNzZXMgaXMgYWx3YXlzIHNsb3cgYXQgdGhlIGJlc3Qgb2YgdGltZXMuLikKCSAqIEZ1cnRoZXIgdG8gdGhpcywgbm90ZSB0aGF0IHRoaXMgY29kZSBpcyBhZG1pdHRlZGx5IGZhaXJseSB1Z2x5LiBJdCBjb3VsZCBiZSBtYWRlIGEgbG90IAoJICogc2ltcGxlciB1c2luZyBqUXVlcnkgc2VsZWN0b3JzIGFuZCBhZGQvcmVtb3ZlQ2xhc3MsIGJ1dCB0aGF0IGlzIHNpZ25pZmljYW50bHkgc2xvd2VyCgkgKiAob24gdGhlIG9yZGVyIG9mIDUgdGltZXMgc2xvd2VyKSAtIGhlbmNlIHRoZSBkaXJlY3QgRE9NIG1hbmlwdWxhdGlvbiBoZXJlLgoJICogTm90ZSB0aGF0IGZvciBkZWZlcnJlZCBkcmF3aW5nIHdlIGRvIHVzZSBqUXVlcnkgLSB0aGUgcmVhc29uIGJlaW5nIHRoYXQgdGFraW5nIHRoZSBmaXJzdAoJICogcm93IGZvdW5kIHRvIHNlZSBpZiB0aGUgd2hvbGUgY29sdW1uIG5lZWRzIHByb2Nlc3NlZCBjYW4gbWlzcyBjbGFzc2VzIHNpbmNlIHRoZSBmaXJzdAoJICogY29sdW1uIG1pZ2h0IGJlIG5ldy4KCSAqLwoJc0NsYXNzID0gb0NsYXNzZXMuc1NvcnRDb2x1bW47CgkKCWlmICggb1NldHRpbmdzLm9GZWF0dXJlcy5iU29ydCAmJiBvU2V0dGluZ3Mub0ZlYXR1cmVzLmJTb3J0Q2xhc3NlcyApCgl7CgkJdmFyIG5UZHMgPSBfZm5HZXRUZE5vZGVzKCBvU2V0dGluZ3MgKTsKCgkJLyogUmVtb3ZlIHRoZSBvbGQgY2xhc3NlcyAqLwoJCWlmICggb1NldHRpbmdzLm9GZWF0dXJlcy5iRGVmZXJSZW5kZXIgKQoJCXsKCQkJJChuVGRzKS5yZW1vdmVDbGFzcyhzQ2xhc3MrJzEgJytzQ2xhc3MrJzIgJytzQ2xhc3MrJzMnKTsKCQl9CgkJZWxzZSBpZiAoIG5UZHMubGVuZ3RoID49IGlDb2x1bW5zICkKCQl7CgkJCWZvciAoIGk9MCA7IGk8aUNvbHVtbnMgOyBpKysgKQoJCQl7CgkJCQlpZiAoIG5UZHNbaV0uY2xhc3NOYW1lLmluZGV4T2Yoc0NsYXNzKyIxIikgIT0gLTEgKQoJCQkJewoJCQkJCWZvciAoIGo9MCwgakxlbj0oblRkcy5sZW5ndGgvaUNvbHVtbnMpIDsgajxqTGVuIDsgaisrICkKCQkJCQl7CgkJCQkJCW5UZHNbKGlDb2x1bW5zKmopK2ldLmNsYXNzTmFtZSA9IAoJCQkJCQkJJC50cmltKCBuVGRzWyhpQ29sdW1ucypqKStpXS5jbGFzc05hbWUucmVwbGFjZSggc0NsYXNzKyIxIiwgIiIgKSApOwoJCQkJCX0KCQkJCX0KCQkJCWVsc2UgaWYgKCBuVGRzW2ldLmNsYXNzTmFtZS5pbmRleE9mKHNDbGFzcysiMiIpICE9IC0xICkKCQkJCXsKCQkJCQlmb3IgKCBqPTAsIGpMZW49KG5UZHMubGVuZ3RoL2lDb2x1bW5zKSA7IGo8akxlbiA7IGorKyApCgkJCQkJewoJCQkJCQluVGRzWyhpQ29sdW1ucypqKStpXS5jbGFzc05hbWUgPSAKCQkJCQkJCSQudHJpbSggblRkc1soaUNvbHVtbnMqaikraV0uY2xhc3NOYW1lLnJlcGxhY2UoIHNDbGFzcysiMiIsICIiICkgKTsKCQkJCQl9CgkJCQl9CgkJCQllbHNlIGlmICggblRkc1tpXS5jbGFzc05hbWUuaW5kZXhPZihzQ2xhc3MrIjMiKSAhPSAtMSApCgkJCQl7CgkJCQkJZm9yICggaj0wLCBqTGVuPShuVGRzLmxlbmd0aC9pQ29sdW1ucykgOyBqPGpMZW4gOyBqKysgKQoJCQkJCXsKCQkJCQkJblRkc1soaUNvbHVtbnMqaikraV0uY2xhc3NOYW1lID0gCgkJCQkJCQkkLnRyaW0oIG5UZHNbKGlDb2x1bW5zKmopK2ldLmNsYXNzTmFtZS5yZXBsYWNlKCAiICIrc0NsYXNzKyIzIiwgIiIgKSApOwoJCQkJCX0KCQkJCX0KCQkJfQoJCX0KCQkKCQkvKiBBZGQgdGhlIG5ldyBjbGFzc2VzIHRvIHRoZSB0YWJsZSAqLwoJCXZhciBpQ2xhc3MgPSAxLCBpVGFyZ2V0Q29sOwoJCWZvciAoIGk9MCA7IGk8YWFTb3J0Lmxlbmd0aCA7IGkrKyApCgkJewoJCQlpVGFyZ2V0Q29sID0gcGFyc2VJbnQoIGFhU29ydFtpXVswXSwgMTAgKTsKCQkJZm9yICggaj0wLCBqTGVuPShuVGRzLmxlbmd0aC9pQ29sdW1ucykgOyBqPGpMZW4gOyBqKysgKQoJCQl7CgkJCQluVGRzWyhpQ29sdW1ucypqKStpVGFyZ2V0Q29sXS5jbGFzc05hbWUgKz0gIiAiK3NDbGFzcytpQ2xhc3M7CgkJCX0KCQkJCgkJCWlmICggaUNsYXNzIDwgMyApCgkJCXsKCQkJCWlDbGFzcysrOwoJCQl9CgkJfQoJfQp9Cgo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/core/core.state.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CgovKioKICogU2F2ZSB0aGUgc3RhdGUgb2YgYSB0YWJsZSBpbiBhIGNvb2tpZSBzdWNoIHRoYXQgdGhlIHBhZ2UgY2FuIGJlIHJlbG9hZGVkCiAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CiAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKICovCmZ1bmN0aW9uIF9mblNhdmVTdGF0ZSAoIG9TZXR0aW5ncyApCnsKCWlmICggIW9TZXR0aW5ncy5vRmVhdHVyZXMuYlN0YXRlU2F2ZSB8fCBvU2V0dGluZ3MuYkRlc3Ryb3lpbmcgKQoJewoJCXJldHVybjsKCX0KCgkvKiBTdG9yZSB0aGUgaW50ZXJlc3RpbmcgdmFyaWFibGVzICovCgl2YXIgaSwgaUxlbiwgYkluZmluaXRlPW9TZXR0aW5ncy5vU2Nyb2xsLmJJbmZpbml0ZTsKCXZhciBvU3RhdGUgPSB7CgkJImlDcmVhdGUiOiAgICAgIG5ldyBEYXRlKCkuZ2V0VGltZSgpLAoJCSJpU3RhcnQiOiAgICAgICAoYkluZmluaXRlID8gMCA6IG9TZXR0aW5ncy5faURpc3BsYXlTdGFydCksCgkJImlFbmQiOiAgICAgICAgIChiSW5maW5pdGUgPyBvU2V0dGluZ3MuX2lEaXNwbGF5TGVuZ3RoIDogb1NldHRpbmdzLl9pRGlzcGxheUVuZCksCgkJImlMZW5ndGgiOiAgICAgIG9TZXR0aW5ncy5faURpc3BsYXlMZW5ndGgsCgkJImFhU29ydGluZyI6ICAgICQuZXh0ZW5kKCB0cnVlLCBbXSwgb1NldHRpbmdzLmFhU29ydGluZyApLAoJCSJvU2VhcmNoIjogICAgICAkLmV4dGVuZCggdHJ1ZSwge30sIG9TZXR0aW5ncy5vUHJldmlvdXNTZWFyY2ggKSwKCQkiYW9TZWFyY2hDb2xzIjogJC5leHRlbmQoIHRydWUsIFtdLCBvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzICksCgkJImFiVmlzQ29scyI6ICAgIFtdCgl9OwoKCWZvciAoIGk9MCwgaUxlbj1vU2V0dGluZ3MuYW9Db2x1bW5zLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgl7CgkJb1N0YXRlLmFiVmlzQ29scy5wdXNoKCBvU2V0dGluZ3MuYW9Db2x1bW5zW2ldLmJWaXNpYmxlICk7Cgl9CgoJX2ZuQ2FsbGJhY2tGaXJlKCBvU2V0dGluZ3MsICJhb1N0YXRlU2F2ZVBhcmFtcyIsICdzdGF0ZVNhdmVQYXJhbXMnLCBbb1NldHRpbmdzLCBvU3RhdGVdICk7CgkKCW9TZXR0aW5ncy5mblN0YXRlU2F2ZS5jYWxsKCBvU2V0dGluZ3Mub0luc3RhbmNlLCBvU2V0dGluZ3MsIG9TdGF0ZSApOwp9CgoKLyoqCiAqIEF0dGVtcHQgdG8gbG9hZCBhIHNhdmVkIHRhYmxlIHN0YXRlIGZyb20gYSBjb29raWUKICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKICogIEBwYXJhbSB7b2JqZWN0fSBvSW5pdCBEYXRhVGFibGVzIGluaXQgb2JqZWN0IHNvIHdlIGNhbiBvdmVycmlkZSBzZXR0aW5ncwogKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCiAqLwpmdW5jdGlvbiBfZm5Mb2FkU3RhdGUgKCBvU2V0dGluZ3MsIG9Jbml0ICkKewoJaWYgKCAhb1NldHRpbmdzLm9GZWF0dXJlcy5iU3RhdGVTYXZlICkKCXsKCQlyZXR1cm47Cgl9CgoJdmFyIG9EYXRhID0gb1NldHRpbmdzLmZuU3RhdGVMb2FkLmNhbGwoIG9TZXR0aW5ncy5vSW5zdGFuY2UsIG9TZXR0aW5ncyApOwoJaWYgKCAhb0RhdGEgKQoJewoJCXJldHVybjsKCX0KCQoJLyogQWxsb3cgY3VzdG9tIGFuZCBwbHVnLWluIG1hbmlwdWxhdGlvbiBmdW5jdGlvbnMgdG8gYWx0ZXIgdGhlIHNhdmVkIGRhdGEgc2V0IGFuZAoJICogY2FuY2VsbGluZyBvZiBsb2FkaW5nIGJ5IHJldHVybmluZyBmYWxzZQoJICovCgl2YXIgYWJTdGF0ZUxvYWQgPSBfZm5DYWxsYmFja0ZpcmUoIG9TZXR0aW5ncywgJ2FvU3RhdGVMb2FkUGFyYW1zJywgJ3N0YXRlTG9hZFBhcmFtcycsIFtvU2V0dGluZ3MsIG9EYXRhXSApOwoJaWYgKCAkLmluQXJyYXkoIGZhbHNlLCBhYlN0YXRlTG9hZCApICE9PSAtMSApCgl7CgkJcmV0dXJuOwoJfQoJCgkvKiBTdG9yZSB0aGUgc2F2ZWQgc3RhdGUgc28gaXQgbWlnaHQgYmUgYWNjZXNzZWQgYXQgYW55IHRpbWUgKi8KCW9TZXR0aW5ncy5vTG9hZGVkU3RhdGUgPSAkLmV4dGVuZCggdHJ1ZSwge30sIG9EYXRhICk7CgkKCS8qIFJlc3RvcmUga2V5IGZlYXR1cmVzICovCglvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQgICAgPSBvRGF0YS5pU3RhcnQ7CglvU2V0dGluZ3MuaUluaXREaXNwbGF5U3RhcnQgPSBvRGF0YS5pU3RhcnQ7CglvU2V0dGluZ3MuX2lEaXNwbGF5RW5kICAgICAgPSBvRGF0YS5pRW5kOwoJb1NldHRpbmdzLl9pRGlzcGxheUxlbmd0aCAgID0gb0RhdGEuaUxlbmd0aDsKCW9TZXR0aW5ncy5hYVNvcnRpbmcgICAgICAgICA9IG9EYXRhLmFhU29ydGluZy5zbGljZSgpOwoJb1NldHRpbmdzLnNhdmVkX2FhU29ydGluZyAgID0gb0RhdGEuYWFTb3J0aW5nLnNsaWNlKCk7CgkKCS8qIFNlYXJjaCBmaWx0ZXJpbmcgICovCgkkLmV4dGVuZCggb1NldHRpbmdzLm9QcmV2aW91c1NlYXJjaCwgb0RhdGEub1NlYXJjaCApOwoJJC5leHRlbmQoIHRydWUsIG9TZXR0aW5ncy5hb1ByZVNlYXJjaENvbHMsIG9EYXRhLmFvU2VhcmNoQ29scyApOwoJCgkvKiBDb2x1bW4gdmlzaWJpbGl0eSBzdGF0ZQoJICogUGFzcyBiYWNrIHZpc2liaWxpdHkgc2V0dGluZ3MgdG8gdGhlIGluaXQgaGFuZGxlciwgYnV0IHRvIGRvIG5vdCBoZXJlIG92ZXJyaWRlCgkgKiB0aGUgaW5pdCBvYmplY3QgdGhhdCB0aGUgdXNlciBtaWdodCBoYXZlIHBhc3NlZCBpbgoJICovCglvSW5pdC5zYXZlZF9hb0NvbHVtbnMgPSBbXTsKCWZvciAoIHZhciBpPTAgOyBpPG9EYXRhLmFiVmlzQ29scy5sZW5ndGggOyBpKysgKQoJewoJCW9Jbml0LnNhdmVkX2FvQ29sdW1uc1tpXSA9IHt9OwoJCW9Jbml0LnNhdmVkX2FvQ29sdW1uc1tpXS5iVmlzaWJsZSA9IG9EYXRhLmFiVmlzQ29sc1tpXTsKCX0KCglfZm5DYWxsYmFja0ZpcmUoIG9TZXR0aW5ncywgJ2FvU3RhdGVMb2FkZWQnLCAnc3RhdGVMb2FkZWQnLCBbb1NldHRpbmdzLCBvRGF0YV0gKTsKfQoKCi8qKgogKiBDcmVhdGUgYSBuZXcgY29va2llIHdpdGggYSB2YWx1ZSB0byBzdG9yZSB0aGUgc3RhdGUgb2YgYSB0YWJsZQogKiAgQHBhcmFtIHtzdHJpbmd9IHNOYW1lIG5hbWUgb2YgdGhlIGNvb2tpZSB0byBjcmVhdGUKICogIEBwYXJhbSB7c3RyaW5nfSBzVmFsdWUgdGhlIHZhbHVlIHRoZSBjb29raWUgc2hvdWxkIHRha2UKICogIEBwYXJhbSB7aW50fSBpU2VjcyBkdXJhdGlvbiBvZiB0aGUgY29va2llCiAqICBAcGFyYW0ge3N0cmluZ30gc0Jhc2VOYW1lIHNOYW1lIGlzIG1hZGUgdXAgb2YgdGhlIGJhc2UgKyBmaWxlIG5hbWUgLSB0aGlzIGlzIHRoZSBiYXNlCiAqICBAcGFyYW0ge2Z1bmN0aW9ufSBmbkNhbGxiYWNrIFVzZXIgZGVmaW5hYmxlIGZ1bmN0aW9uIHRvIG1vZGlmeSB0aGUgY29va2llCiAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKICovCmZ1bmN0aW9uIF9mbkNyZWF0ZUNvb2tpZSAoIHNOYW1lLCBzVmFsdWUsIGlTZWNzLCBzQmFzZU5hbWUsIGZuQ2FsbGJhY2sgKQp7Cgl2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7CglkYXRlLnNldFRpbWUoIGRhdGUuZ2V0VGltZSgpKyhpU2VjcyoxMDAwKSApOwoJCgkvKiAKCSAqIFNob2NraW5nIGJ1dCB0cnVlIC0gaXQgd291bGQgYXBwZWFyIElFIGhhcyBtYWpvciBpc3N1ZXMgd2l0aCBoYXZpbmcgdGhlIHBhdGggbm90IGhhdmluZwoJICogYSB0cmFpbGluZyBzbGFzaCBvbiBpdC4gV2UgbmVlZCB0aGUgY29va2llIHRvIGJlIGF2YWlsYWJsZSBiYXNlZCBvbiB0aGUgcGF0aCwgc28gd2UKCSAqIGhhdmUgdG8gYXBwZW5kIHRoZSBmaWxlIG5hbWUgdG8gdGhlIGNvb2tpZSBuYW1lLiBBcHBhbGxpbmcuIFRoYW5rcyB0byB2ZXggZm9yIGFkZGluZyB0aGUKCSAqIHBhdGNoIHRvIHVzZSBhdCBsZWFzdCBzb21lIG9mIHRoZSBwYXRoCgkgKi8KCXZhciBhUGFydHMgPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUuc3BsaXQoJy8nKTsKCXZhciBzTmFtZUZpbGUgPSBzTmFtZSArICdfJyArIGFQYXJ0cy5wb3AoKS5yZXBsYWNlKC9bXC86XS9nLCIiKS50b0xvd2VyQ2FzZSgpOwoJdmFyIHNGdWxsQ29va2llLCBvRGF0YTsKCQoJaWYgKCBmbkNhbGxiYWNrICE9PSBudWxsICkKCXsKCQlvRGF0YSA9ICh0eXBlb2YgJC5wYXJzZUpTT04gPT09ICdmdW5jdGlvbicpID8gCgkJCSQucGFyc2VKU09OKCBzVmFsdWUgKSA6IGV2YWwoICcoJytzVmFsdWUrJyknICk7CgkJc0Z1bGxDb29raWUgPSBmbkNhbGxiYWNrKCBzTmFtZUZpbGUsIG9EYXRhLCBkYXRlLnRvR01UU3RyaW5nKCksCgkJCWFQYXJ0cy5qb2luKCcvJykrIi8iICk7Cgl9CgllbHNlCgl7CgkJc0Z1bGxDb29raWUgPSBzTmFtZUZpbGUgKyAiPSIgKyBlbmNvZGVVUklDb21wb25lbnQoc1ZhbHVlKSArCgkJCSI7IGV4cGlyZXM9IiArIGRhdGUudG9HTVRTdHJpbmcoKSArIjsgcGF0aD0iICsgYVBhcnRzLmpvaW4oJy8nKSsiLyI7Cgl9CgkKCS8qIEFyZSB3ZSBnb2luZyB0byBnbyBvdmVyIHRoZSBjb29raWUgbGltaXQgb2YgNEtpQj8gSWYgc28sIHRyeSB0byBkZWxldGUgYSBjb29raWVzCgkgKiBiZWxvbmdpbmcgdG8gRGF0YVRhYmxlcy4gVGhpcyBpcyBGQVIgZnJvbSBidWxsZXQgcHJvb2YKCSAqLwoJdmFyIHNPbGROYW1lPSIiLCBpT2xkVGltZT05OTk5OTk5OTk5OTk5OwoJdmFyIGlMZW5ndGggPSBfZm5SZWFkQ29va2llKCBzTmFtZUZpbGUgKSE9PW51bGwgPyBkb2N1bWVudC5jb29raWUubGVuZ3RoIDogCgkJc0Z1bGxDb29raWUubGVuZ3RoICsgZG9jdW1lbnQuY29va2llLmxlbmd0aDsKCQoJaWYgKCBpTGVuZ3RoKzEwID4gNDA5NiApIC8qIE1hZ2ljIDEwIGZvciBwYWRkaW5nICovCgl7CgkJdmFyIGFDb29raWVzID1kb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKTsKCQlmb3IgKCB2YXIgaT0wLCBpTGVuPWFDb29raWVzLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJewoJCQlpZiAoIGFDb29raWVzW2ldLmluZGV4T2YoIHNCYXNlTmFtZSApICE9IC0xICkKCQkJewoJCQkJLyogSXQncyBhIERhdGFUYWJsZXMgY29va2llLCBzbyBldmFsIGl0IGFuZCBjaGVjayB0aGUgdGltZSBzdGFtcCAqLwoJCQkJdmFyIGFTcGxpdENvb2tpZSA9IGFDb29raWVzW2ldLnNwbGl0KCc9Jyk7CgkJCQl0cnkgeyBvRGF0YSA9IGV2YWwoICcoJytkZWNvZGVVUklDb21wb25lbnQoYVNwbGl0Q29va2llWzFdKSsnKScgKTsgfQoJCQkJY2F0Y2goIGUgKSB7IGNvbnRpbnVlOyB9CgkJCQkKCQkJCWlmICggb0RhdGEuaUNyZWF0ZSAmJiBvRGF0YS5pQ3JlYXRlIDwgaU9sZFRpbWUgKQoJCQkJewoJCQkJCXNPbGROYW1lID0gYVNwbGl0Q29va2llWzBdOwoJCQkJCWlPbGRUaW1lID0gb0RhdGEuaUNyZWF0ZTsKCQkJCX0KCQkJfQoJCX0KCQkKCQlpZiAoIHNPbGROYW1lICE9PSAiIiApCgkJewoJCQlkb2N1bWVudC5jb29raWUgPSBzT2xkTmFtZSsiPTsgZXhwaXJlcz1UaHUsIDAxLUphbi0xOTcwIDAwOjAwOjAxIEdNVDsgcGF0aD0iKwoJCQkJYVBhcnRzLmpvaW4oJy8nKSArICIvIjsKCQl9Cgl9CgkKCWRvY3VtZW50LmNvb2tpZSA9IHNGdWxsQ29va2llOwp9CgoKLyoqCiAqIFJlYWQgYW4gb2xkIGNvb2tpZSB0byBnZXQgYSBjb29raWUgd2l0aCBhbiBvbGQgdGFibGUgc3RhdGUKICogIEBwYXJhbSB7c3RyaW5nfSBzTmFtZSBuYW1lIG9mIHRoZSBjb29raWUgdG8gcmVhZAogKiAgQHJldHVybnMge3N0cmluZ30gY29udGVudHMgb2YgdGhlIGNvb2tpZSAtIG9yIG51bGwgaWYgbm8gY29va2llIHdpdGggdGhhdCBuYW1lIGZvdW5kCiAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKICovCmZ1bmN0aW9uIF9mblJlYWRDb29raWUgKCBzTmFtZSApCnsKCXZhcgoJCWFQYXJ0cyA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5zcGxpdCgnLycpLAoJCXNOYW1lRVEgPSBzTmFtZSArICdfJyArIGFQYXJ0c1thUGFydHMubGVuZ3RoLTFdLnJlcGxhY2UoL1tcLzpdL2csIiIpLnRvTG93ZXJDYXNlKCkgKyAnPScsCgkgCXNDb29raWVDb250ZW50cyA9IGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOycpOwoJCglmb3IoIHZhciBpPTAgOyBpPHNDb29raWVDb250ZW50cy5sZW5ndGggOyBpKysgKQoJewoJCXZhciBjID0gc0Nvb2tpZUNvbnRlbnRzW2ldOwoJCQoJCXdoaWxlIChjLmNoYXJBdCgwKT09JyAnKQoJCXsKCQkJYyA9IGMuc3Vic3RyaW5nKDEsYy5sZW5ndGgpOwoJCX0KCQkKCQlpZiAoYy5pbmRleE9mKHNOYW1lRVEpID09PSAwKQoJCXsKCQkJcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCggYy5zdWJzdHJpbmcoc05hbWVFUS5sZW5ndGgsYy5sZW5ndGgpICk7CgkJfQoJfQoJcmV0dXJuIG51bGw7Cn0KCg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/core/core.support.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CgovKioKICogUmV0dXJuIHRoZSBzZXR0aW5ncyBvYmplY3QgZm9yIGEgcGFydGljdWxhciB0YWJsZQogKiAgQHBhcmFtIHtub2RlfSBuVGFibGUgdGFibGUgd2UgYXJlIHVzaW5nIGFzIGEgZGF0YVRhYmxlCiAqICBAcmV0dXJucyB7b2JqZWN0fSBTZXR0aW5ncyBvYmplY3QgLSBvciBudWxsIGlmIG5vdCBmb3VuZAogKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCiAqLwpmdW5jdGlvbiBfZm5TZXR0aW5nc0Zyb21Ob2RlICggblRhYmxlICkKewoJZm9yICggdmFyIGk9MCA7IGk8RGF0YVRhYmxlLnNldHRpbmdzLmxlbmd0aCA7IGkrKyApCgl7CgkJaWYgKCBEYXRhVGFibGUuc2V0dGluZ3NbaV0ublRhYmxlID09PSBuVGFibGUgKQoJCXsKCQkJcmV0dXJuIERhdGFUYWJsZS5zZXR0aW5nc1tpXTsKCQl9Cgl9CgkKCXJldHVybiBudWxsOwp9CgoKLyoqCiAqIFJldHVybiBhbiBhcnJheSB3aXRoIHRoZSBUUiBub2RlcyBmb3IgdGhlIHRhYmxlCiAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CiAqICBAcmV0dXJucyB7YXJyYXl9IFRSIGFycmF5CiAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKICovCmZ1bmN0aW9uIF9mbkdldFRyTm9kZXMgKCBvU2V0dGluZ3MgKQp7Cgl2YXIgYU5vZGVzID0gW107Cgl2YXIgYW9EYXRhID0gb1NldHRpbmdzLmFvRGF0YTsKCWZvciAoIHZhciBpPTAsIGlMZW49YW9EYXRhLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgl7CgkJaWYgKCBhb0RhdGFbaV0ublRyICE9PSBudWxsICkKCQl7CgkJCWFOb2Rlcy5wdXNoKCBhb0RhdGFbaV0ublRyICk7CgkJfQoJfQoJcmV0dXJuIGFOb2RlczsKfQoKCi8qKgogKiBSZXR1cm4gYW4gZmxhdCBhcnJheSB3aXRoIGFsbCBURCBub2RlcyBmb3IgdGhlIHRhYmxlLCBvciByb3cKICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKICogIEBwYXJhbSB7aW50fSBbaUluZGl2aWR1YWxSb3ddIGFvRGF0YSBpbmRleCB0byBnZXQgdGhlIG5vZGVzIGZvciAtIG9wdGlvbmFsIAogKiAgICBpZiBub3QgZ2l2ZW4gdGhlbiB0aGUgcmV0dXJuIGFycmF5IHdpbGwgY29udGFpbiBhbGwgbm9kZXMgZm9yIHRoZSB0YWJsZQogKiAgQHJldHVybnMge2FycmF5fSBURCBhcnJheQogKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCiAqLwpmdW5jdGlvbiBfZm5HZXRUZE5vZGVzICggb1NldHRpbmdzLCBpSW5kaXZpZHVhbFJvdyApCnsKCXZhciBhblJldHVybiA9IFtdOwoJdmFyIGlDb3JyZWN0b3I7Cgl2YXIgYW5UZHM7Cgl2YXIgaVJvdywgaVJvd3M9b1NldHRpbmdzLmFvRGF0YS5sZW5ndGgsCgkJaUNvbHVtbiwgaUNvbHVtbnMsIG9EYXRhLCBzTm9kZU5hbWUsIGlTdGFydD0wLCBpRW5kPWlSb3dzOwoJCgkvKiBBbGxvdyB0aGUgY29sbGVjdGlvbiB0byBiZSBsaW1pdGVkIHRvIGp1c3Qgb25lIHJvdyAqLwoJaWYgKCBpSW5kaXZpZHVhbFJvdyAhPT0gdW5kZWZpbmVkICkKCXsKCQlpU3RhcnQgPSBpSW5kaXZpZHVhbFJvdzsKCQlpRW5kID0gaUluZGl2aWR1YWxSb3crMTsKCX0KCglmb3IgKCBpUm93PWlTdGFydCA7IGlSb3c8aUVuZCA7IGlSb3crKyApCgl7CgkJb0RhdGEgPSBvU2V0dGluZ3MuYW9EYXRhW2lSb3ddOwoJCWlmICggb0RhdGEublRyICE9PSBudWxsICkKCQl7CgkJCS8qIGdldCB0aGUgVEQgY2hpbGQgbm9kZXMgLSB0YWtpbmcgaW50byBhY2NvdW50IHRleHQgZXRjIG5vZGVzICovCgkJCWFuVGRzID0gW107CgkJCWZvciAoIGlDb2x1bW49MCwgaUNvbHVtbnM9b0RhdGEublRyLmNoaWxkTm9kZXMubGVuZ3RoIDsgaUNvbHVtbjxpQ29sdW1ucyA7IGlDb2x1bW4rKyApCgkJCXsKCQkJCXNOb2RlTmFtZSA9IG9EYXRhLm5Uci5jaGlsZE5vZGVzW2lDb2x1bW5dLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7CgkJCQlpZiAoIHNOb2RlTmFtZSA9PSAndGQnIHx8IHNOb2RlTmFtZSA9PSAndGgnICkKCQkJCXsKCQkJCQlhblRkcy5wdXNoKCBvRGF0YS5uVHIuY2hpbGROb2Rlc1tpQ29sdW1uXSApOwoJCQkJfQoJCQl9CgoJCQlpQ29ycmVjdG9yID0gMDsKCQkJZm9yICggaUNvbHVtbj0wLCBpQ29sdW1ucz1vU2V0dGluZ3MuYW9Db2x1bW5zLmxlbmd0aCA7IGlDb2x1bW48aUNvbHVtbnMgOyBpQ29sdW1uKysgKQoJCQl7CgkJCQlpZiAoIG9TZXR0aW5ncy5hb0NvbHVtbnNbaUNvbHVtbl0uYlZpc2libGUgKQoJCQkJewoJCQkJCWFuUmV0dXJuLnB1c2goIGFuVGRzW2lDb2x1bW4taUNvcnJlY3Rvcl0gKTsKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQlhblJldHVybi5wdXNoKCBvRGF0YS5fYW5IaWRkZW5baUNvbHVtbl0gKTsKCQkJCQlpQ29ycmVjdG9yKys7CgkJCQl9CgkJCX0KCQl9Cgl9CgoJcmV0dXJuIGFuUmV0dXJuOwp9CgoKLyoqCiAqIExvZyBhbiBlcnJvciBtZXNzYWdlCiAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CiAqICBAcGFyYW0ge2ludH0gaUxldmVsIGxvZyBlcnJvciBtZXNzYWdlcywgb3IgZGlzcGxheSB0aGVtIHRvIHRoZSB1c2VyCiAqICBAcGFyYW0ge3N0cmluZ30gc01lc2cgZXJyb3IgbWVzc2FnZQogKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCiAqLwpmdW5jdGlvbiBfZm5Mb2coIG9TZXR0aW5ncywgaUxldmVsLCBzTWVzZyApCnsKCXZhciBzQWxlcnQgPSAob1NldHRpbmdzPT09bnVsbCkgPwoJCSJEYXRhVGFibGVzIHdhcm5pbmc6ICIrc01lc2cgOgoJCSJEYXRhVGFibGVzIHdhcm5pbmcgKHRhYmxlIGlkID0gJyIrb1NldHRpbmdzLnNUYWJsZUlkKyInKTogIitzTWVzZzsKCQoJaWYgKCBpTGV2ZWwgPT09IDAgKQoJewoJCWlmICggRGF0YVRhYmxlLmV4dC5zRXJyTW9kZSA9PSAnYWxlcnQnICkKCQl7CgkJCWFsZXJ0KCBzQWxlcnQgKTsKCQl9CgkJZWxzZQoJCXsKCQkJdGhyb3cgbmV3IEVycm9yKHNBbGVydCk7CgkJfQoJCXJldHVybjsKCX0KCWVsc2UgaWYgKCB3aW5kb3cuY29uc29sZSAmJiBjb25zb2xlLmxvZyApCgl7CgkJY29uc29sZS5sb2coIHNBbGVydCApOwoJfQp9CgoKLyoqCiAqIFNlZSBpZiBhIHByb3BlcnR5IGlzIGRlZmluZWQgb24gb25lIG9iamVjdCwgaWYgc28gYXNzaWduIGl0IHRvIHRoZSBvdGhlciBvYmplY3QKICogIEBwYXJhbSB7b2JqZWN0fSBvUmV0IHRhcmdldCBvYmplY3QKICogIEBwYXJhbSB7b2JqZWN0fSBvU3JjIHNvdXJjZSBvYmplY3QKICogIEBwYXJhbSB7c3RyaW5nfSBzTmFtZSBwcm9wZXJ0eQogKiAgQHBhcmFtIHtzdHJpbmd9IFtzTWFwcGVkTmFtZV0gbmFtZSB0byBtYXAgdG9vIC0gb3B0aW9uYWwsIHNOYW1lIHVzZWQgaWYgbm90IGdpdmVuCiAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKICovCmZ1bmN0aW9uIF9mbk1hcCggb1JldCwgb1NyYywgc05hbWUsIHNNYXBwZWROYW1lICkKewoJaWYgKCBzTWFwcGVkTmFtZSA9PT0gdW5kZWZpbmVkICkKCXsKCQlzTWFwcGVkTmFtZSA9IHNOYW1lOwoJfQoJaWYgKCBvU3JjW3NOYW1lXSAhPT0gdW5kZWZpbmVkICkKCXsKCQlvUmV0W3NNYXBwZWROYW1lXSA9IG9TcmNbc05hbWVdOwoJfQp9CgoKLyoqCiAqIEV4dGVuZCBvYmplY3RzIC0gdmVyeSBzaW1pbGFyIHRvIGpRdWVyeS5leHRlbmQsIGJ1dCBkZWVwIGNvcHkgb2JqZWN0cywgYW5kIHNoYWxsb3cKICogY29weSBhcnJheXMuIFRoZSByZWFzb24gd2UgbmVlZCB0byBkbyB0aGlzLCBpcyB0aGF0IHdlIGRvbid0IHdhbnQgdG8gZGVlcCBjb3B5IGFycmF5CiAqIGluaXQgdmFsdWVzIChzdWNoIGFzIGFhU29ydGluZykgc2luY2UgdGhlIGRldiB3b3VsZG4ndCBiZSBhYmxlIHRvIG92ZXJyaWRlIHRoZW0sIGJ1dAogKiB3ZSBkbyB3YW50IHRvIGRlZXAgY29weSBhcnJheXMuCiAqICBAcGFyYW0ge29iamVjdH0gb091dCBPYmplY3QgdG8gZXh0ZW5kCiAqICBAcGFyYW0ge29iamVjdH0gb0V4dGVuZGVyIE9iamVjdCBmcm9tIHdoaWNoIHRoZSBwcm9wZXJ0aWVzIHdpbGwgYmUgYXBwbGllZCB0byBvT3V0CiAqICBAcmV0dXJucyB7b2JqZWN0fSBvT3V0IFJlZmVyZW5jZSwganVzdCBmb3IgY29udmVuaWVuY2UgLSBvT3V0ID09PSB0aGUgcmV0dXJuLgogKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCiAqICBAdG9kbyBUaGlzIGRvZXNuJ3QgdGFrZSBhY2NvdW50IG9mIGFycmF5cyBpbnNpZGUgdGhlIGRlZXAgY29waWVkIG9iamVjdHMuCiAqLwpmdW5jdGlvbiBfZm5FeHRlbmQoIG9PdXQsIG9FeHRlbmRlciApCnsKCXZhciB2YWw7CgkKCWZvciAoIHZhciBwcm9wIGluIG9FeHRlbmRlciApCgl7CgkJaWYgKCBvRXh0ZW5kZXIuaGFzT3duUHJvcGVydHkocHJvcCkgKQoJCXsKCQkJdmFsID0gb0V4dGVuZGVyW3Byb3BdOwoKCQkJaWYgKCB0eXBlb2Ygb0luaXRbcHJvcF0gPT09ICdvYmplY3QnICYmIHZhbCAhPT0gbnVsbCAmJiAkLmlzQXJyYXkodmFsKSA9PT0gZmFsc2UgKQoJCQl7CgkJCQkkLmV4dGVuZCggdHJ1ZSwgb091dFtwcm9wXSwgdmFsICk7CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQlvT3V0W3Byb3BdID0gdmFsOwoJCQl9CgkJfQoJfQoKCXJldHVybiBvT3V0Owp9CgoKLyoqCiAqIEJpbmQgYW4gZXZlbnQgaGFuZGVycyB0byBhbGxvdyBhIGNsaWNrIG9yIHJldHVybiBrZXkgdG8gYWN0aXZhdGUgdGhlIGNhbGxiYWNrLgogKiBUaGlzIGlzIGdvb2QgZm9yIGFjY2Vzc2liaWxpdHkgc2luY2UgYSByZXR1cm4gb24gdGhlIGtleWJvYXJkIHdpbGwgaGF2ZSB0aGUKICogc2FtZSBlZmZlY3QgYXMgYSBjbGljaywgaWYgdGhlIGVsZW1lbnQgaGFzIGZvY3VzLgogKiAgQHBhcmFtIHtlbGVtZW50fSBuIEVsZW1lbnQgdG8gYmluZCB0aGUgYWN0aW9uIHRvCiAqICBAcGFyYW0ge29iamVjdH0gb0RhdGEgRGF0YSBvYmplY3QgdG8gcGFzcyB0byB0aGUgdHJpZ2dlcmVkIGZ1bmN0aW9uCiAqICBAcGFyYW0ge2Z1bmN0aW9ufSBmbiBDYWxsYmFjayBmdW5jdGlvbiBmb3Igd2hlbiB0aGUgZXZlbnQgaXMgdHJpZ2dlcmVkCiAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKICovCmZ1bmN0aW9uIF9mbkJpbmRBY3Rpb24oIG4sIG9EYXRhLCBmbiApCnsKCSQobikKCQkuYmluZCggJ2NsaWNrLkRUJywgb0RhdGEsIGZ1bmN0aW9uIChlKSB7CgkJCQluLmJsdXIoKTsgLy8gUmVtb3ZlIGZvY3VzIG91dGxpbmUgZm9yIG1vdXNlIHVzZXJzCgkJCQlmbihlKTsKCQkJfSApCgkJLmJpbmQoICdrZXlwcmVzcy5EVCcsIG9EYXRhLCBmdW5jdGlvbiAoZSl7CgkJCWlmICggZS53aGljaCA9PT0gMTMgKSB7CgkJCQlmbihlKTsKCQkJfSB9ICkKCQkuYmluZCggJ3NlbGVjdHN0YXJ0LkRUJywgZnVuY3Rpb24gKCkgewoJCQkvKiBUYWtlIHRoZSBicnV0YWwgYXBwcm9hY2ggdG8gY2FuY2VsbGluZyB0ZXh0IHNlbGVjdGlvbiAqLwoJCQlyZXR1cm4gZmFsc2U7CgkJCX0gKTsKfQoKCi8qKgogKiBSZWdpc3RlciBhIGNhbGxiYWNrIGZ1bmN0aW9uLiBFYXNpbHkgYWxsb3dzIGEgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgYWRkZWQgdG8KICogYW4gYXJyYXkgc3RvcmUgb2YgY2FsbGJhY2sgZnVuY3Rpb25zIHRoYXQgY2FuIHRoZW4gYWxsIGJlIGNhbGxlZCB0b2dldGhlci4KICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKICogIEBwYXJhbSB7c3RyaW5nfSBzU3RvcmUgTmFtZSBvZiB0aGUgYXJyYXkgc3RvcmFnZSBmb3IgdGhlIGNhbGxiYWNrcyBpbiBvU2V0dGluZ3MKICogIEBwYXJhbSB7ZnVuY3Rpb259IGZuIEZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBiYWNrCiAqICBAcGFyYW0ge3N0cmluZ30gc05hbWUgSWRlbnRpZnlpbmcgbmFtZSBmb3IgdGhlIGNhbGxiYWNrIChpLmUuIGEgbGFiZWwpCiAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKICovCmZ1bmN0aW9uIF9mbkNhbGxiYWNrUmVnKCBvU2V0dGluZ3MsIHNTdG9yZSwgZm4sIHNOYW1lICkKewoJaWYgKCBmbiApCgl7CgkJb1NldHRpbmdzW3NTdG9yZV0ucHVzaCggewoJCQkiZm4iOiBmbiwKCQkJInNOYW1lIjogc05hbWUKCQl9ICk7Cgl9Cn0KCgovKioKICogRmlyZSBjYWxsYmFjayBmdW5jdGlvbnMgYW5kIHRyaWdnZXIgZXZlbnRzLiBOb3RlIHRoYXQgdGhlIGxvb3Agb3ZlciB0aGUgY2FsbGJhY2sKICogYXJyYXkgc3RvcmUgaXMgZG9uZSBiYWNrd2FyZHMhIEZ1cnRoZXIgbm90ZSB0aGF0IHlvdSBkbyBub3Qgd2FudCB0byBmaXJlIG9mZiB0cmlnZ2VycwogKiBpbiB0aW1lIHNlbnNpdGl2ZSBhcHBsaWNhdGlvbnMgKGZvciBleGFtcGxlIGNlbGwgY3JlYXRpb24pIGFzIGl0cyBzbG93LgogKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBkYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAogKiAgQHBhcmFtIHtzdHJpbmd9IHNTdG9yZSBOYW1lIG9mIHRoZSBhcnJheSBzdG9yYWdlIGZvciB0aGUgY2FsbGJhY2tzIGluIG9TZXR0aW5ncwogKiAgQHBhcmFtIHtzdHJpbmd9IHNUcmlnZ2VyIE5hbWUgb2YgdGhlIGpRdWVyeSBjdXN0b20gZXZlbnQgdG8gdHJpZ2dlci4gSWYgbnVsbCBubyB0cmlnZ2VyCiAqICAgIGlzIGZpcmVkCiAqICBAcGFyYW0ge2FycmF5fSBhQXJncyBBcnJheSBvZiBhcmd1bWVudHMgdG8gcGFzcyB0byB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gLyB0cmlnZ2VyCiAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKICovCmZ1bmN0aW9uIF9mbkNhbGxiYWNrRmlyZSggb1NldHRpbmdzLCBzU3RvcmUsIHNUcmlnZ2VyLCBhQXJncyApCnsKCXZhciBhb1N0b3JlID0gb1NldHRpbmdzW3NTdG9yZV07Cgl2YXIgYVJldCA9W107CgoJZm9yICggdmFyIGk9YW9TdG9yZS5sZW5ndGgtMSA7IGk+PTAgOyBpLS0gKQoJewoJCWFSZXQucHVzaCggYW9TdG9yZVtpXS5mbi5hcHBseSggb1NldHRpbmdzLm9JbnN0YW5jZSwgYUFyZ3MgKSApOwoJfQoKCWlmICggc1RyaWdnZXIgIT09IG51bGwgKQoJewoJCSQob1NldHRpbmdzLm9JbnN0YW5jZSkudHJpZ2dlcihzVHJpZ2dlciwgYUFyZ3MpOwoJfQoKCXJldHVybiBhUmV0Owp9CgoKLyoqCiAqIEpTT04gc3RyaW5naWZ5LiBJZiBKU09OLnN0cmluZ2lmeSBpdCBwcm92aWRlZCBieSB0aGUgYnJvd3NlciwganNvbjIuanMgb3IgYW55IG90aGVyCiAqIGxpYnJhcnksIHRoZW4gd2UgdXNlIHRoYXQgYXMgaXQgaXMgZmFzdCwgc2FmZSBhbmQgYWNjdXJhdGUuIElmIHRoZSBmdW5jdGlvbiBpc24ndCAKICogYXZhaWxhYmxlIHRoZW4gd2UgbmVlZCB0byBidWlsdCBpdCBvdXJzZWx2ZXMgLSB0aGUgaW5zcGlyYXRpb24gZm9yIHRoaXMgZnVuY3Rpb24gY29tZXMKICogZnJvbSBDcmFpZyBCdWNrbGVyICggaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2phdmFzY3JpcHQtanNvbi1zZXJpYWxpemF0aW9uLyApLiBJdCBpcwogKiBub3QgcGVyZmVjdCBhbmQgYWJzb2x1dGVseSBzaG91bGQgbm90IGJlIHVzZWQgYXMgYSByZXBsYWNlbWVudCB0byBqc29uMi5qcyAtIGJ1dCBpdCBkb2VzCiAqIGRvIHdoYXQgd2UgbmVlZCwgd2l0aG91dCByZXF1aXJpbmcgYSBkZXBlbmRlbmN5IGZvciBEYXRhVGFibGVzLgogKiAgQHBhcmFtIHtvYmplY3R9IG8gSlNPTiBvYmplY3QgdG8gYmUgY29udmVydGVkCiAqICBAcmV0dXJucyB7c3RyaW5nfSBKU09OIHN0cmluZwogKiAgQG1lbWJlcm9mIERhdGFUYWJsZSNvQXBpCiAqLwp2YXIgX2ZuSnNvblN0cmluZyA9ICh3aW5kb3cuSlNPTikgPyBKU09OLnN0cmluZ2lmeSA6IGZ1bmN0aW9uKCBvICkKewoJLyogTm90IGFuIG9iamVjdCBvciBhcnJheSAqLwoJdmFyIHNUeXBlID0gdHlwZW9mIG87CglpZiAoc1R5cGUgIT09ICJvYmplY3QiIHx8IG8gPT09IG51bGwpCgl7CgkJLy8gc2ltcGxlIGRhdGEgdHlwZQoJCWlmIChzVHlwZSA9PT0gInN0cmluZyIpCgkJewoJCQlvID0gJyInK28rJyInOwoJCX0KCQlyZXR1cm4gbysiIjsKCX0KCgkvKiBJZiBvYmplY3Qgb3IgYXJyYXksIG5lZWQgdG8gcmVjdXJzZSBvdmVyIGl0ICovCgl2YXIKCQlzUHJvcCwgbVZhbHVlLAoJCWpzb24gPSBbXSwKCQliQXJyID0gJC5pc0FycmF5KG8pOwoJCglmb3IgKHNQcm9wIGluIG8pCgl7CgkJbVZhbHVlID0gb1tzUHJvcF07CgkJc1R5cGUgPSB0eXBlb2YgbVZhbHVlOwoKCQlpZiAoc1R5cGUgPT09ICJzdHJpbmciKQoJCXsKCQkJbVZhbHVlID0gJyInK21WYWx1ZSsnIic7CgkJfQoJCWVsc2UgaWYgKHNUeXBlID09PSAib2JqZWN0IiAmJiBtVmFsdWUgIT09IG51bGwpCgkJewoJCQltVmFsdWUgPSBfZm5Kc29uU3RyaW5nKG1WYWx1ZSk7CgkJfQoKCQlqc29uLnB1c2goKGJBcnIgPyAiIiA6ICciJytzUHJvcCsnIjonKSArIG1WYWx1ZSk7Cgl9CgoJcmV0dXJuIChiQXJyID8gIlsiIDogInsiKSArIGpzb24gKyAoYkFyciA/ICJdIiA6ICJ9Iik7Cn07CgoKLyoqCiAqIEZyb20gc29tZSBicm93c2VycyAoc3BlY2lmaWNhbGx5IElFNi83KSB3ZSBuZWVkIHNwZWNpYWwgaGFuZGxpbmcgdG8gd29yayBhcm91bmQgYnJvd3NlcgogKiBidWdzIC0gdGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGRldGVjdCB3aGVuIHRoZXNlIHdvcmthcm91bmRzIGFyZSBuZWVkZWQuCiAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CiAqICBAbWVtYmVyb2YgRGF0YVRhYmxlI29BcGkKICovCmZ1bmN0aW9uIF9mbkJyb3dzZXJEZXRlY3QoIG9TZXR0aW5ncyApCnsKCS8qIElFNi83IHdpbGwgb3ZlcnNpemUgYSB3aWR0aCAxMDAlIGVsZW1lbnQgaW5zaWRlIGEgc2Nyb2xsaW5nIGVsZW1lbnQsIHRvIGluY2x1ZGUgdGhlCgkgKiB3aWR0aCBvZiB0aGUgc2Nyb2xsYmFyLCB3aGlsZSBvdGhlciBicm93c2VycyBlbnN1cmUgdGhlIGlubmVyIGVsZW1lbnQgaXMgY29udGFpbmVkCgkgKiB3aXRob3V0IGZvcmNpbmcgc2Nyb2xsaW5nCgkgKi8KCXZhciBuID0gJCgKCQknPGRpdiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBsZWZ0OjA7IGhlaWdodDoxcHg7IHdpZHRoOjFweDsgb3ZlcmZsb3c6aGlkZGVuIj4nKwoJCQknPGRpdiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7IHRvcDoxcHg7IGxlZnQ6MXB4OyB3aWR0aDoxMDBweDsgaGVpZ2h0OjUwcHg7IG92ZXJmbG93OnNjcm9sbDsiPicrCgkJCQknPGRpdiBpZD0iRFRfQnJvd3NlclRlc3QiIHN0eWxlPSJ3aWR0aDoxMDAlOyBoZWlnaHQ6MTBweDsiPjwvZGl2PicrCgkJCSc8L2Rpdj4nKwoJCSc8L2Rpdj4nKVswXTsKCglkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKCBuICk7CglvU2V0dGluZ3Mub0Jyb3dzZXIuYlNjcm9sbE92ZXJzaXplID0gJCgnI0RUX0Jyb3dzZXJUZXN0JywgbilbMF0ub2Zmc2V0V2lkdGggPT09IDEwMCA/IHRydWUgOiBmYWxzZTsKCWRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoIG4gKTsKfQoK]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/DataTables.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIEBzdW1tYXJ5ICAgICBEYXRhVGFibGVzCiAqIEBkZXNjcmlwdGlvbiBQYWdpbmF0ZSwgc2VhcmNoIGFuZCBzb3J0IEhUTUwgdGFibGVzCiAqIEB2ZXJzaW9uICAgICAxLjkuMwogKiBAZmlsZSAgICAgICAganF1ZXJ5LmRhdGFUYWJsZXMuanMKICogQGF1dGhvciAgICAgIEFsbGFuIEphcmRpbmUgKHd3dy5zcHJ5bWVkaWEuY28udWspCiAqIEBjb250YWN0ICAgICB3d3cuc3ByeW1lZGlhLmNvLnVrL2NvbnRhY3QKICoKICogQGNvcHlyaWdodCBDb3B5cmlnaHQgMjAwOC0yMDEyIEFsbGFuIEphcmRpbmUsIGFsbCByaWdodHMgcmVzZXJ2ZWQuCiAqCiAqIFRoaXMgc291cmNlIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZSwgdW5kZXIgZWl0aGVyIHRoZSBHUEwgdjIgbGljZW5zZSBvciBhCiAqIEJTRCBzdHlsZSBsaWNlbnNlLCBhdmFpbGFibGUgYXQ6CiAqICAgaHR0cDovL2RhdGF0YWJsZXMubmV0L2xpY2Vuc2VfZ3BsMgogKiAgIGh0dHA6Ly9kYXRhdGFibGVzLm5ldC9saWNlbnNlX2JzZAogKiAKICogVGhpcyBzb3VyY2UgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgCiAqIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIAogKiBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBsaWNlbnNlIGZpbGVzIGZvciBkZXRhaWxzLgogKiAKICogRm9yIGRldGFpbHMgcGxlYXNlIHJlZmVyIHRvOiBodHRwOi8vd3d3LmRhdGF0YWJsZXMubmV0CiAqLwoKLypqc2xpbnQgZXZpbDogdHJ1ZSwgdW5kZWY6IHRydWUsIGJyb3dzZXI6IHRydWUgKi8KLypnbG9iYWxzICQsIGpRdWVyeSxfZm5FeHRlcm5BcGlGdW5jLF9mbkluaXRpYWxpc2UsX2ZuSW5pdENvbXBsZXRlLF9mbkxhbmd1YWdlQ29tcGF0LF9mbkFkZENvbHVtbixfZm5Db2x1bW5PcHRpb25zLF9mbkFkZERhdGEsX2ZuQ3JlYXRlVHIsX2ZuR2F0aGVyRGF0YSxfZm5CdWlsZEhlYWQsX2ZuRHJhd0hlYWQsX2ZuRHJhdyxfZm5SZURyYXcsX2ZuQWpheFVwZGF0ZSxfZm5BamF4UGFyYW1ldGVycyxfZm5BamF4VXBkYXRlRHJhdyxfZm5TZXJ2ZXJQYXJhbXMsX2ZuQWRkT3B0aW9uc0h0bWwsX2ZuRmVhdHVyZUh0bWxUYWJsZSxfZm5TY3JvbGxEcmF3LF9mbkFkanVzdENvbHVtblNpemluZyxfZm5GZWF0dXJlSHRtbEZpbHRlcixfZm5GaWx0ZXJDb21wbGV0ZSxfZm5GaWx0ZXJDdXN0b20sX2ZuRmlsdGVyQ29sdW1uLF9mbkZpbHRlcixfZm5CdWlsZFNlYXJjaEFycmF5LF9mbkJ1aWxkU2VhcmNoUm93LF9mbkZpbHRlckNyZWF0ZVNlYXJjaCxfZm5EYXRhVG9TZWFyY2gsX2ZuU29ydCxfZm5Tb3J0QXR0YWNoTGlzdGVuZXIsX2ZuU29ydGluZ0NsYXNzZXMsX2ZuRmVhdHVyZUh0bWxQYWdpbmF0ZSxfZm5QYWdlQ2hhbmdlLF9mbkZlYXR1cmVIdG1sSW5mbyxfZm5VcGRhdGVJbmZvLF9mbkZlYXR1cmVIdG1sTGVuZ3RoLF9mbkZlYXR1cmVIdG1sUHJvY2Vzc2luZyxfZm5Qcm9jZXNzaW5nRGlzcGxheSxfZm5WaXNpYmxlVG9Db2x1bW5JbmRleCxfZm5Db2x1bW5JbmRleFRvVmlzaWJsZSxfZm5Ob2RlVG9EYXRhSW5kZXgsX2ZuVmlzYmxlQ29sdW1ucyxfZm5DYWxjdWxhdGVFbmQsX2ZuQ29udmVydFRvV2lkdGgsX2ZuQ2FsY3VsYXRlQ29sdW1uV2lkdGhzLF9mblNjcm9sbGluZ1dpZHRoQWRqdXN0LF9mbkdldFdpZGVzdE5vZGUsX2ZuR2V0TWF4TGVuU3RyaW5nLF9mblN0cmluZ1RvQ3NzLF9mbkRldGVjdFR5cGUsX2ZuU2V0dGluZ3NGcm9tTm9kZSxfZm5HZXREYXRhTWFzdGVyLF9mbkdldFRyTm9kZXMsX2ZuR2V0VGROb2RlcyxfZm5Fc2NhcGVSZWdleCxfZm5EZWxldGVJbmRleCxfZm5SZU9yZGVySW5kZXgsX2ZuQ29sdW1uT3JkZXJpbmcsX2ZuTG9nLF9mbkNsZWFyVGFibGUsX2ZuU2F2ZVN0YXRlLF9mbkxvYWRTdGF0ZSxfZm5DcmVhdGVDb29raWUsX2ZuUmVhZENvb2tpZSxfZm5EZXRlY3RIZWFkZXIsX2ZuR2V0VW5pcXVlVGhzLF9mblNjcm9sbEJhcldpZHRoLF9mbkFwcGx5VG9DaGlsZHJlbixfZm5NYXAsX2ZuR2V0Um93RGF0YSxfZm5HZXRDZWxsRGF0YSxfZm5TZXRDZWxsRGF0YSxfZm5HZXRPYmplY3REYXRhRm4sX2ZuU2V0T2JqZWN0RGF0YUZuLF9mbkFwcGx5Q29sdW1uRGVmcyxfZm5CaW5kQWN0aW9uLF9mbkNhbGxiYWNrUmVnLF9mbkNhbGxiYWNrRmlyZSxfZm5Kc29uU3RyaW5nLF9mblJlbmRlcixfZm5Ob2RlVG9Db2x1bW5JbmRleCxfZm5JbmZvTWFjcm9zLF9mbkJyb3dzZXJEZXRlY3QsX2ZuR2V0Q29sdW1ucyovCgooLyoqIEBsZW5kcyA8Z2xvYmFsPiAqL2Z1bmN0aW9uKCQsIHdpbmRvdywgZG9jdW1lbnQsIHVuZGVmaW5lZCkgewoJLyoqIAoJICogRGF0YVRhYmxlcyBpcyBhIHBsdWctaW4gZm9yIHRoZSBqUXVlcnkgSmF2YXNjcmlwdCBsaWJyYXJ5LiBJdCBpcyBhIAoJICogaGlnaGx5IGZsZXhpYmxlIHRvb2wsIGJhc2VkIHVwb24gdGhlIGZvdW5kYXRpb25zIG9mIHByb2dyZXNzaXZlIAoJICogZW5oYW5jZW1lbnQsIHdoaWNoIHdpbGwgYWRkIGFkdmFuY2VkIGludGVyYWN0aW9uIGNvbnRyb2xzIHRvIGFueSAKCSAqIEhUTUwgdGFibGUuIEZvciBhIGZ1bGwgbGlzdCBvZiBmZWF0dXJlcyBwbGVhc2UgcmVmZXIgdG8KCSAqIDxhIGhyZWY9Imh0dHA6Ly9kYXRhdGFibGVzLm5ldCI+RGF0YVRhYmxlcy5uZXQ8L2E+LgoJICoKCSAqIE5vdGUgdGhhdCB0aGUgPGk+RGF0YVRhYmxlPC9pPiBvYmplY3QgaXMgbm90IGEgZ2xvYmFsIHZhcmlhYmxlIGJ1dCBpcwoJICogYWxpYXNlZCB0byA8aT5qUXVlcnkuZm4uRGF0YVRhYmxlPC9pPiBhbmQgPGk+alF1ZXJ5LmZuLmRhdGFUYWJsZTwvaT4gdGhyb3VnaCB3aGljaCAKCSAqIGl0IG1heSBiZSAgYWNjZXNzZWQuCgkgKgoJICogIEBjbGFzcwoJICogIEBwYXJhbSB7b2JqZWN0fSBbb0luaXQ9e31dIENvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciBEYXRhVGFibGVzLiBPcHRpb25zCgkgKiAgICBhcmUgZGVmaW5lZCBieSB7QGxpbmsgRGF0YVRhYmxlLmRlZmF1bHRzfQoJICogIEByZXF1aXJlcyBqUXVlcnkgMS4zKwoJICogCgkgKiAgQGV4YW1wbGUKCSAqICAgIC8vIEJhc2ljIGluaXRpYWxpc2F0aW9uCgkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gewoJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJICogICAgfSApOwoJICogIAoJICogIEBleGFtcGxlCgkgKiAgICAvLyBJbml0aWFsaXNhdGlvbiB3aXRoIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyAtIGluIHRoaXMgY2FzZSwgZGlzYWJsZQoJICogICAgLy8gcGFnaW5hdGlvbiBhbmQgc29ydGluZy4KCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiB7CgkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgICAgICAgImJQYWdpbmF0ZSI6IGZhbHNlLAoJICogICAgICAgICJiU29ydCI6IGZhbHNlIAoJICogICAgICB9ICk7CgkgKiAgICB9ICk7CgkgKi8KCXZhciBEYXRhVGFibGUgPSBmdW5jdGlvbiggb0luaXQgKQoJewoJCXJlcXVpcmUoJ2NvcmUuY29sdW1ucy5qcycpOwoJCXJlcXVpcmUoJ2NvcmUuZGF0YS5qcycpOwoJCXJlcXVpcmUoJ2NvcmUuZHJhdy5qcycpOwoJCXJlcXVpcmUoJ2NvcmUuYWpheC5qcycpOwoJCXJlcXVpcmUoJ2NvcmUuZmlsdGVyLmpzJyk7CgkJcmVxdWlyZSgnY29yZS5pbmZvLmpzJyk7CgkJcmVxdWlyZSgnY29yZS5pbml0LmpzJyk7CgkJcmVxdWlyZSgnY29yZS5sZW5ndGguanMnKTsKCQlyZXF1aXJlKCdjb3JlLnBhZ2UuanMnKTsKCQlyZXF1aXJlKCdjb3JlLnByb2Nlc3NpbmcuanMnKTsKCQlyZXF1aXJlKCdjb3JlLnNjcm9sbGluZy5qcycpOwoJCXJlcXVpcmUoJ2NvcmUuc2l6aW5nLmpzJyk7CgkJcmVxdWlyZSgnY29yZS5zb3J0LmpzJyk7CgkJcmVxdWlyZSgnY29yZS5zdGF0ZS5qcycpOwoJCXJlcXVpcmUoJ2NvcmUuc3VwcG9ydC5qcycpOwoKCQlyZXF1aXJlKCdhcGkubWV0aG9kcy5qcycpOwoJCXJlcXVpcmUoJ2FwaS5pbnRlcm5hbC5qcycpOwoJCQoJCXZhciBfdGhhdCA9IHRoaXM7CgkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsKCQkJcmVxdWlyZSgnY29yZS5jb25zdHJ1Y3Rvci5qcycpOwoJCX0gKTsKCX07CgoJcmVxdWlyZSgnYXBpLnN0YXRpYy5qcycpOwoKCS8qKgoJICogVmVyc2lvbiBzdHJpbmcgZm9yIHBsdWctaW5zIHRvIGNoZWNrIGNvbXBhdGliaWxpdHkuIEFsbG93ZWQgZm9ybWF0IGlzCgkgKiBhLmIuYy5kLmUgd2hlcmU6IGE6aW50LCBiOmludCwgYzppbnQsIGQ6c3RyaW5nKGRldnxiZXRhKSwgZTppbnQuIGQgYW5kCgkgKiBlIGFyZSBvcHRpb25hbAoJICogIEBtZW1iZXIKCSAqICBAdHlwZSBzdHJpbmcKCSAqICBAZGVmYXVsdCBWZXJzaW9uIG51bWJlcgoJICovCglEYXRhVGFibGUudmVyc2lvbiA9ICIxLjkuMyI7CgoJLyoqCgkgKiBQcml2YXRlIGRhdGEgc3RvcmUsIGNvbnRhaW5pbmcgYWxsIG9mIHRoZSBzZXR0aW5ncyBvYmplY3RzIHRoYXQgYXJlIGNyZWF0ZWQgZm9yIHRoZQoJICogdGFibGVzIG9uIGEgZ2l2ZW4gcGFnZS4KCSAqIAoJICogTm90ZSB0aGF0IHRoZSA8aT5EYXRhVGFibGUuc2V0dGluZ3M8L2k+IG9iamVjdCBpcyBhbGlhc2VkIHRvIDxpPmpRdWVyeS5mbi5kYXRhVGFibGVFeHQ8L2k+IAoJICogdGhyb3VnaCB3aGljaCBpdCBtYXkgYmUgYWNjZXNzZWQgYW5kIG1hbmlwdWxhdGVkLCBvciA8aT5qUXVlcnkuZm4uZGF0YVRhYmxlLnNldHRpbmdzPC9pPi4KCSAqICBAbWVtYmVyCgkgKiAgQHR5cGUgYXJyYXkKCSAqICBAZGVmYXVsdCBbXQoJICogIEBwcml2YXRlCgkgKi8KCURhdGFUYWJsZS5zZXR0aW5ncyA9IFtdOwoKCS8qKgoJICogT2JqZWN0IG1vZGVscyBjb250YWluZXIsIGZvciB0aGUgdmFyaW91cyBtb2RlbHMgdGhhdCBEYXRhVGFibGVzIGhhcyBhdmFpbGFibGUKCSAqIHRvIGl0LiBUaGVzZSBtb2RlbHMgZGVmaW5lIHRoZSBvYmplY3RzIHRoYXQgYXJlIHVzZWQgdG8gaG9sZCB0aGUgYWN0aXZlIHN0YXRlIAoJICogYW5kIGNvbmZpZ3VyYXRpb24gb2YgdGhlIHRhYmxlLgoJICogIEBuYW1lc3BhY2UKCSAqLwoJRGF0YVRhYmxlLm1vZGVscyA9IHt9OwoJcmVxdWlyZSgnbW9kZWwuZXh0LmpzJyk7CglyZXF1aXJlKCdtb2RlbC5zZWFyY2guanMnKTsKCXJlcXVpcmUoJ21vZGVsLnJvdy5qcycpOwoJcmVxdWlyZSgnbW9kZWwuY29sdW1uLmpzJyk7CglyZXF1aXJlKCdtb2RlbC5kZWZhdWx0cy5qcycpOwoJcmVxdWlyZSgnbW9kZWwuZGVmYXVsdHMuY29sdW1ucy5qcycpOwoJcmVxdWlyZSgnbW9kZWwuc2V0dGluZ3MuanMnKTsKCgkvKioKCSAqIEV4dGVuc2lvbiBvYmplY3QgZm9yIERhdGFUYWJsZXMgdGhhdCBpcyB1c2VkIHRvIHByb3ZpZGUgYWxsIGV4dGVuc2lvbiBvcHRpb25zLgoJICogCgkgKiBOb3RlIHRoYXQgdGhlIDxpPkRhdGFUYWJsZS5leHQ8L2k+IG9iamVjdCBpcyBhdmFpbGFibGUgdGhyb3VnaAoJICogPGk+alF1ZXJ5LmZuLmRhdGFUYWJsZS5leHQ8L2k+IHdoZXJlIGl0IG1heSBiZSBhY2Nlc3NlZCBhbmQgbWFuaXB1bGF0ZWQuIEl0IGlzCgkgKiBhbHNvIGFsaWFzZWQgdG8gPGk+alF1ZXJ5LmZuLmRhdGFUYWJsZUV4dDwvaT4gZm9yIGhpc3RvcmljIHJlYXNvbnMuCgkgKiAgQG5hbWVzcGFjZQoJICogIEBleHRlbmRzIERhdGFUYWJsZS5tb2RlbHMuZXh0CgkgKi8KCURhdGFUYWJsZS5leHQgPSAkLmV4dGVuZCggdHJ1ZSwge30sIERhdGFUYWJsZS5tb2RlbHMuZXh0ICk7CglyZXF1aXJlKCdleHQuY2xhc3Nlcy5qcycpOwoJcmVxdWlyZSgnZXh0LnBhZ2luZy5qcycpOwoJcmVxdWlyZSgnZXh0LnNvcnRpbmcuanMnKTsKCXJlcXVpcmUoJ2V4dC50eXBlcy5qcycpOwoKCS8vIGpRdWVyeSBhbGlhc2VzCgkkLmZuLkRhdGFUYWJsZSA9IERhdGFUYWJsZTsKCSQuZm4uZGF0YVRhYmxlID0gRGF0YVRhYmxlOwoJJC5mbi5kYXRhVGFibGVTZXR0aW5ncyA9IERhdGFUYWJsZS5zZXR0aW5nczsKCSQuZm4uZGF0YVRhYmxlRXh0ID0gRGF0YVRhYmxlLmV4dDsKCgoJLy8gSW5mb3JtYXRpb24gYWJvdXQgZXZlbnRzIGZpcmVkIGJ5IERhdGFUYWJsZXMgLSBmb3IgZG9jdW1lbnRhdGlvbi4KCS8qKgoJICogRHJhdyBldmVudCwgZmlyZWQgd2hlbmV2ZXIgdGhlIHRhYmxlIGlzIHJlZHJhd24gb24gdGhlIHBhZ2UsIGF0IHRoZSBzYW1lIHBvaW50IGFzCgkgKiBmbkRyYXdDYWxsYmFjay4gVGhpcyBtYXkgYmUgdXNlZnVsIGZvciBiaW5kaW5nIGV2ZW50cyBvciBwZXJmb3JtaW5nIGNhbGN1bGF0aW9ucyB3aGVuCgkgKiB0aGUgdGFibGUgaXMgYWx0ZXJlZCBhdCBhbGwuCgkgKiAgQG5hbWUgRGF0YVRhYmxlI2RyYXcKCSAqICBAZXZlbnQKCSAqICBAcGFyYW0ge2V2ZW50fSBlIGpRdWVyeSBldmVudCBvYmplY3QKCSAqICBAcGFyYW0ge29iamVjdH0gbyBEYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdCB7QGxpbmsgRGF0YVRhYmxlLm1vZGVscy5vU2V0dGluZ3N9CgkgKi8KCgkvKioKCSAqIEZpbHRlciBldmVudCwgZmlyZWQgd2hlbiB0aGUgZmlsdGVyaW5nIGFwcGxpZWQgdG8gdGhlIHRhYmxlICh1c2luZyB0aGUgYnVpbGQgaW4gZ2xvYmFsCgkgKiBnbG9iYWwgZmlsdGVyLCBvciBjb2x1bW4gZmlsdGVycykgaXMgYWx0ZXJlZC4KCSAqICBAbmFtZSBEYXRhVGFibGUjZmlsdGVyCgkgKiAgQGV2ZW50CgkgKiAgQHBhcmFtIHtldmVudH0gZSBqUXVlcnkgZXZlbnQgb2JqZWN0CgkgKiAgQHBhcmFtIHtvYmplY3R9IG8gRGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3Qge0BsaW5rIERhdGFUYWJsZS5tb2RlbHMub1NldHRpbmdzfQoJICovCgoJLyoqCgkgKiBQYWdlIGNoYW5nZSBldmVudCwgZmlyZWQgd2hlbiB0aGUgcGFnaW5nIG9mIHRoZSB0YWJsZSBpcyBhbHRlcmVkLgoJICogIEBuYW1lIERhdGFUYWJsZSNwYWdlCgkgKiAgQGV2ZW50CgkgKiAgQHBhcmFtIHtldmVudH0gZSBqUXVlcnkgZXZlbnQgb2JqZWN0CgkgKiAgQHBhcmFtIHtvYmplY3R9IG8gRGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3Qge0BsaW5rIERhdGFUYWJsZS5tb2RlbHMub1NldHRpbmdzfQoJICovCgoJLyoqCgkgKiBTb3J0IGV2ZW50LCBmaXJlZCB3aGVuIHRoZSBzb3J0aW5nIGFwcGxpZWQgdG8gdGhlIHRhYmxlIGlzIGFsdGVyZWQuCgkgKiAgQG5hbWUgRGF0YVRhYmxlI3NvcnQKCSAqICBAZXZlbnQKCSAqICBAcGFyYW0ge2V2ZW50fSBlIGpRdWVyeSBldmVudCBvYmplY3QKCSAqICBAcGFyYW0ge29iamVjdH0gbyBEYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdCB7QGxpbmsgRGF0YVRhYmxlLm1vZGVscy5vU2V0dGluZ3N9CgkgKi8KCgkvKioKCSAqIERhdGFUYWJsZXMgaW5pdGlhbGlzYXRpb24gY29tcGxldGUgZXZlbnQsIGZpcmVkIHdoZW4gdGhlIHRhYmxlIGlzIGZ1bGx5IGRyYXduLAoJICogaW5jbHVkaW5nIEFqYXggZGF0YSBsb2FkZWQsIGlmIEFqYXggZGF0YSBpcyByZXF1aXJlZC4KCSAqICBAbmFtZSBEYXRhVGFibGUjaW5pdAoJICogIEBldmVudAoJICogIEBwYXJhbSB7ZXZlbnR9IGUgalF1ZXJ5IGV2ZW50IG9iamVjdAoJICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgRGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCSAqICBAcGFyYW0ge29iamVjdH0ganNvbiBUaGUgSlNPTiBvYmplY3QgcmVxdWVzdCBmcm9tIHRoZSBzZXJ2ZXIgLSBvbmx5CgkgKiAgICBwcmVzZW50IGlmIGNsaWVudC1zaWRlIEFqYXggc291cmNlZCBkYXRhIGlzIHVzZWQ8L2xpPjwvb2w+CgkgKi8KCgkvKioKCSAqIFN0YXRlIHNhdmUgZXZlbnQsIGZpcmVkIHdoZW4gdGhlIHRhYmxlIGhhcyBjaGFuZ2VkIHN0YXRlIGEgbmV3IHN0YXRlIHNhdmUgaXMgcmVxdWlyZWQuCgkgKiBUaGlzIG1ldGhvZCBhbGxvd3MgbW9kaWZpY2F0aW9uIG9mIHRoZSBzdGF0ZSBzYXZpbmcgb2JqZWN0IHByaW9yIHRvIGFjdHVhbGx5IGRvaW5nIHRoZQoJICogc2F2ZSwgaW5jbHVkaW5nIGFkZGl0aW9uIG9yIG90aGVyIHN0YXRlIHByb3BlcnRpZXMgKGZvciBwbHVnLWlucykgb3IgbW9kaWZpY2F0aW9uCgkgKiBvZiBhIERhdGFUYWJsZXMgY29yZSBwcm9wZXJ0eS4KCSAqICBAbmFtZSBEYXRhVGFibGUjc3RhdGVTYXZlUGFyYW1zCgkgKiAgQGV2ZW50CgkgKiAgQHBhcmFtIHtldmVudH0gZSBqUXVlcnkgZXZlbnQgb2JqZWN0CgkgKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBEYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAoJICogIEBwYXJhbSB7b2JqZWN0fSBqc29uIFRoZSBzdGF0ZSBpbmZvcm1hdGlvbiB0byBiZSBzYXZlZAoJICovCgoJLyoqCgkgKiBTdGF0ZSBsb2FkIGV2ZW50LCBmaXJlZCB3aGVuIHRoZSB0YWJsZSBpcyBsb2FkaW5nIHN0YXRlIGZyb20gdGhlIHN0b3JlZCBkYXRhLCBidXQKCSAqIHByaW9yIHRvIHRoZSBzZXR0aW5ncyBvYmplY3QgYmVpbmcgbW9kaWZpZWQgYnkgdGhlIHNhdmVkIHN0YXRlIC0gYWxsb3dpbmcgbW9kaWZpY2F0aW9uCgkgKiBvZiB0aGUgc2F2ZWQgc3RhdGUgaXMgcmVxdWlyZWQgb3IgbG9hZGluZyBvZiBzdGF0ZSBmb3IgYSBwbHVnLWluLgoJICogIEBuYW1lIERhdGFUYWJsZSNzdGF0ZUxvYWRQYXJhbXMKCSAqICBAZXZlbnQKCSAqICBAcGFyYW0ge2V2ZW50fSBlIGpRdWVyeSBldmVudCBvYmplY3QKCSAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIERhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CgkgKiAgQHBhcmFtIHtvYmplY3R9IGpzb24gVGhlIHNhdmVkIHN0YXRlIGluZm9ybWF0aW9uCgkgKi8KCgkvKioKCSAqIFN0YXRlIGxvYWRlZCBldmVudCwgZmlyZWQgd2hlbiBzdGF0ZSBoYXMgYmVlbiBsb2FkZWQgZnJvbSBzdG9yZWQgZGF0YSBhbmQgdGhlIHNldHRpbmdzCgkgKiBvYmplY3QgaGFzIGJlZW4gbW9kaWZpZWQgYnkgdGhlIGxvYWRlZCBkYXRhLgoJICogIEBuYW1lIERhdGFUYWJsZSNzdGF0ZUxvYWRlZAoJICogIEBldmVudAoJICogIEBwYXJhbSB7ZXZlbnR9IGUgalF1ZXJ5IGV2ZW50IG9iamVjdAoJICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgRGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCSAqICBAcGFyYW0ge29iamVjdH0ganNvbiBUaGUgc2F2ZWQgc3RhdGUgaW5mb3JtYXRpb24KCSAqLwoKCS8qKgoJICogUHJvY2Vzc2luZyBldmVudCwgZmlyZWQgd2hlbiBEYXRhVGFibGVzIGlzIGRvaW5nIHNvbWUga2luZCBvZiBwcm9jZXNzaW5nIChiZSBpdCwKCSAqIHNvcnQsIGZpbHRlciBvciBhbnl0aGluZyBlbHNlKS4gQ2FuIGJlIHVzZWQgdG8gaW5kaWNhdGUgdG8gdGhlIGVuZCB1c2VyIHRoYXQKCSAqIHRoZXJlIGlzIHNvbWV0aGluZyBoYXBwZW5pbmcsIG9yIHRoYXQgc29tZXRoaW5nIGhhcyBmaW5pc2hlZC4KCSAqICBAbmFtZSBEYXRhVGFibGUjcHJvY2Vzc2luZwoJICogIEBldmVudAoJICogIEBwYXJhbSB7ZXZlbnR9IGUgalF1ZXJ5IGV2ZW50IG9iamVjdAoJICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgRGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCSAqICBAcGFyYW0ge2Jvb2xlYW59IGJTaG93IEZsYWcgZm9yIGlmIERhdGFUYWJsZXMgaXMgZG9pbmcgcHJvY2Vzc2luZyBvciBub3QKCSAqLwoKCS8qKgoJICogQWpheCAoWEhSKSBldmVudCwgZmlyZWQgd2hlbmV2ZXIgYW4gQWpheCByZXF1ZXN0IGlzIGNvbXBsZXRlZCBmcm9tIGEgcmVxdWVzdCB0byAKCSAqIG1hZGUgdG8gdGhlIHNlcnZlciBmb3IgbmV3IGRhdGEgKG5vdGUgdGhhdCB0aGlzIHRyaWdnZXIgaXMgY2FsbGVkIGluIGZuU2VydmVyRGF0YSwKCSAqIGlmIHlvdSBvdmVycmlkZSBmblNlcnZlckRhdGEgYW5kIHdoaWNoIHRvIHVzZSB0aGlzIGV2ZW50LCB5b3UgbmVlZCB0byB0cmlnZ2VyIGl0IGluCgkgKiB5b3Ugc3VjY2VzcyBmdW5jdGlvbikuCgkgKiAgQG5hbWUgRGF0YVRhYmxlI3hocgoJICogIEBldmVudAoJICogIEBwYXJhbSB7ZXZlbnR9IGUgalF1ZXJ5IGV2ZW50IG9iamVjdAoJICogIEBwYXJhbSB7b2JqZWN0fSBvIERhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0IHtAbGluayBEYXRhVGFibGUubW9kZWxzLm9TZXR0aW5nc30KCSAqICBAcGFyYW0ge29iamVjdH0ganNvbiBKU09OIHJldHVybmVkIGZyb20gdGhlIHNlcnZlcgoJICovCgoJLyoqCgkgKiBEZXN0cm95IGV2ZW50LCBmaXJlZCB3aGVuIHRoZSBEYXRhVGFibGUgaXMgZGVzdHJveWVkIGJ5IGNhbGxpbmcgZm5EZXN0cm95IG9yIHBhc3NpbmcKCSAqIHRoZSBiRGVzdHJveTp0cnVlIHBhcmFtZXRlciBpbiB0aGUgaW5pdGlhbGlzYXRpb24gb2JqZWN0LiBUaGlzIGNhbiBiZSB1c2VkIHRvIHJlbW92ZQoJICogYm91bmQgZXZlbnRzLCBhZGRlZCBET00gbm9kZXMsIGV0Yy4KCSAqICBAbmFtZSBEYXRhVGFibGUjZGVzdHJveQoJICogIEBldmVudAoJICogIEBwYXJhbSB7ZXZlbnR9IGUgalF1ZXJ5IGV2ZW50IG9iamVjdAoJICogIEBwYXJhbSB7b2JqZWN0fSBvIERhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0IHtAbGluayBEYXRhVGFibGUubW9kZWxzLm9TZXR0aW5nc30KCSAqLwp9KGpRdWVyeSwgd2luZG93LCBkb2N1bWVudCwgdW5kZWZpbmVkKSk7Cg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/ext/ext.classes.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CiQuZXh0ZW5kKCBEYXRhVGFibGUuZXh0Lm9TdGRDbGFzc2VzLCB7Cgkic1RhYmxlIjogImRhdGFUYWJsZSIsCgoJLyogVHdvIGJ1dHRvbnMgYnV0dG9ucyAqLwoJInNQYWdlUHJldkVuYWJsZWQiOiAicGFnaW5hdGVfZW5hYmxlZF9wcmV2aW91cyIsCgkic1BhZ2VQcmV2RGlzYWJsZWQiOiAicGFnaW5hdGVfZGlzYWJsZWRfcHJldmlvdXMiLAoJInNQYWdlTmV4dEVuYWJsZWQiOiAicGFnaW5hdGVfZW5hYmxlZF9uZXh0IiwKCSJzUGFnZU5leHREaXNhYmxlZCI6ICJwYWdpbmF0ZV9kaXNhYmxlZF9uZXh0IiwKCSJzUGFnZUpVSU5leHQiOiAiIiwKCSJzUGFnZUpVSVByZXYiOiAiIiwKCQoJLyogRnVsbCBudW1iZXJzIHBhZ2luZyBidXR0b25zICovCgkic1BhZ2VCdXR0b24iOiAicGFnaW5hdGVfYnV0dG9uIiwKCSJzUGFnZUJ1dHRvbkFjdGl2ZSI6ICJwYWdpbmF0ZV9hY3RpdmUiLAoJInNQYWdlQnV0dG9uU3RhdGljRGlzYWJsZWQiOiAicGFnaW5hdGVfYnV0dG9uIHBhZ2luYXRlX2J1dHRvbl9kaXNhYmxlZCIsCgkic1BhZ2VGaXJzdCI6ICJmaXJzdCIsCgkic1BhZ2VQcmV2aW91cyI6ICJwcmV2aW91cyIsCgkic1BhZ2VOZXh0IjogIm5leHQiLAoJInNQYWdlTGFzdCI6ICJsYXN0IiwKCQoJLyogU3RyaXBpbmcgY2xhc3NlcyAqLwoJInNTdHJpcGVPZGQiOiAib2RkIiwKCSJzU3RyaXBlRXZlbiI6ICJldmVuIiwKCQoJLyogRW1wdHkgcm93ICovCgkic1Jvd0VtcHR5IjogImRhdGFUYWJsZXNfZW1wdHkiLAoJCgkvKiBGZWF0dXJlcyAqLwoJInNXcmFwcGVyIjogImRhdGFUYWJsZXNfd3JhcHBlciIsCgkic0ZpbHRlciI6ICJkYXRhVGFibGVzX2ZpbHRlciIsCgkic0luZm8iOiAiZGF0YVRhYmxlc19pbmZvIiwKCSJzUGFnaW5nIjogImRhdGFUYWJsZXNfcGFnaW5hdGUgcGFnaW5nXyIsIC8qIE5vdGUgdGhhdCB0aGUgdHlwZSBpcyBwb3N0Zml4ZWQgKi8KCSJzTGVuZ3RoIjogImRhdGFUYWJsZXNfbGVuZ3RoIiwKCSJzUHJvY2Vzc2luZyI6ICJkYXRhVGFibGVzX3Byb2Nlc3NpbmciLAoJCgkvKiBTb3J0aW5nICovCgkic1NvcnRBc2MiOiAic29ydGluZ19hc2MiLAoJInNTb3J0RGVzYyI6ICJzb3J0aW5nX2Rlc2MiLAoJInNTb3J0YWJsZSI6ICJzb3J0aW5nIiwgLyogU29ydGFibGUgaW4gYm90aCBkaXJlY3Rpb25zICovCgkic1NvcnRhYmxlQXNjIjogInNvcnRpbmdfYXNjX2Rpc2FibGVkIiwKCSJzU29ydGFibGVEZXNjIjogInNvcnRpbmdfZGVzY19kaXNhYmxlZCIsCgkic1NvcnRhYmxlTm9uZSI6ICJzb3J0aW5nX2Rpc2FibGVkIiwKCSJzU29ydENvbHVtbiI6ICJzb3J0aW5nXyIsIC8qIE5vdGUgdGhhdCBhbiBpbnQgaXMgcG9zdGZpeGVkIGZvciB0aGUgc29ydGluZyBvcmRlciAqLwoJInNTb3J0SlVJQXNjIjogIiIsCgkic1NvcnRKVUlEZXNjIjogIiIsCgkic1NvcnRKVUkiOiAiIiwKCSJzU29ydEpVSUFzY0FsbG93ZWQiOiAiIiwKCSJzU29ydEpVSURlc2NBbGxvd2VkIjogIiIsCgkic1NvcnRKVUlXcmFwcGVyIjogIiIsCgkic1NvcnRJY29uIjogIiIsCgkKCS8qIFNjcm9sbGluZyAqLwoJInNTY3JvbGxXcmFwcGVyIjogImRhdGFUYWJsZXNfc2Nyb2xsIiwKCSJzU2Nyb2xsSGVhZCI6ICJkYXRhVGFibGVzX3Njcm9sbEhlYWQiLAoJInNTY3JvbGxIZWFkSW5uZXIiOiAiZGF0YVRhYmxlc19zY3JvbGxIZWFkSW5uZXIiLAoJInNTY3JvbGxCb2R5IjogImRhdGFUYWJsZXNfc2Nyb2xsQm9keSIsCgkic1Njcm9sbEZvb3QiOiAiZGF0YVRhYmxlc19zY3JvbGxGb290IiwKCSJzU2Nyb2xsRm9vdElubmVyIjogImRhdGFUYWJsZXNfc2Nyb2xsRm9vdElubmVyIiwKCQoJLyogTWlzYyAqLwoJInNGb290ZXJUSCI6ICIiLAoJInNKVUlIZWFkZXIiOiAiIiwKCSJzSlVJRm9vdGVyIjogIiIKfSApOwoKCiQuZXh0ZW5kKCBEYXRhVGFibGUuZXh0Lm9KVUlDbGFzc2VzLCBEYXRhVGFibGUuZXh0Lm9TdGRDbGFzc2VzLCB7CgkvKiBUd28gYnV0dG9ucyBidXR0b25zICovCgkic1BhZ2VQcmV2RW5hYmxlZCI6ICJmZy1idXR0b24gdWktYnV0dG9uIHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLWxlZnQiLAoJInNQYWdlUHJldkRpc2FibGVkIjogImZnLWJ1dHRvbiB1aS1idXR0b24gdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItbGVmdCB1aS1zdGF0ZS1kaXNhYmxlZCIsCgkic1BhZ2VOZXh0RW5hYmxlZCI6ICJmZy1idXR0b24gdWktYnV0dG9uIHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLXJpZ2h0IiwKCSJzUGFnZU5leHREaXNhYmxlZCI6ICJmZy1idXR0b24gdWktYnV0dG9uIHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLXJpZ2h0IHVpLXN0YXRlLWRpc2FibGVkIiwKCSJzUGFnZUpVSU5leHQiOiAidWktaWNvbiB1aS1pY29uLWNpcmNsZS1hcnJvdy1lIiwKCSJzUGFnZUpVSVByZXYiOiAidWktaWNvbiB1aS1pY29uLWNpcmNsZS1hcnJvdy13IiwKCQoJLyogRnVsbCBudW1iZXJzIHBhZ2luZyBidXR0b25zICovCgkic1BhZ2VCdXR0b24iOiAiZmctYnV0dG9uIHVpLWJ1dHRvbiB1aS1zdGF0ZS1kZWZhdWx0IiwKCSJzUGFnZUJ1dHRvbkFjdGl2ZSI6ICJmZy1idXR0b24gdWktYnV0dG9uIHVpLXN0YXRlLWRlZmF1bHQgdWktc3RhdGUtZGlzYWJsZWQiLAoJInNQYWdlQnV0dG9uU3RhdGljRGlzYWJsZWQiOiAiZmctYnV0dG9uIHVpLWJ1dHRvbiB1aS1zdGF0ZS1kZWZhdWx0IHVpLXN0YXRlLWRpc2FibGVkIiwKCSJzUGFnZUZpcnN0IjogImZpcnN0IHVpLWNvcm5lci10bCB1aS1jb3JuZXItYmwiLAoJInNQYWdlTGFzdCI6ICJsYXN0IHVpLWNvcm5lci10ciB1aS1jb3JuZXItYnIiLAoJCgkvKiBGZWF0dXJlcyAqLwoJInNQYWdpbmciOiAiZGF0YVRhYmxlc19wYWdpbmF0ZSBmZy1idXR0b25zZXQgdWktYnV0dG9uc2V0IGZnLWJ1dHRvbnNldC1tdWx0aSAiKwoJCSJ1aS1idXR0b25zZXQtbXVsdGkgcGFnaW5nXyIsIC8qIE5vdGUgdGhhdCB0aGUgdHlwZSBpcyBwb3N0Zml4ZWQgKi8KCQoJLyogU29ydGluZyAqLwoJInNTb3J0QXNjIjogInVpLXN0YXRlLWRlZmF1bHQiLAoJInNTb3J0RGVzYyI6ICJ1aS1zdGF0ZS1kZWZhdWx0IiwKCSJzU29ydGFibGUiOiAidWktc3RhdGUtZGVmYXVsdCIsCgkic1NvcnRhYmxlQXNjIjogInVpLXN0YXRlLWRlZmF1bHQiLAoJInNTb3J0YWJsZURlc2MiOiAidWktc3RhdGUtZGVmYXVsdCIsCgkic1NvcnRhYmxlTm9uZSI6ICJ1aS1zdGF0ZS1kZWZhdWx0IiwKCSJzU29ydEpVSUFzYyI6ICJjc3NfcmlnaHQgdWktaWNvbiB1aS1pY29uLXRyaWFuZ2xlLTEtbiIsCgkic1NvcnRKVUlEZXNjIjogImNzc19yaWdodCB1aS1pY29uIHVpLWljb24tdHJpYW5nbGUtMS1zIiwKCSJzU29ydEpVSSI6ICJjc3NfcmlnaHQgdWktaWNvbiB1aS1pY29uLWNhcmF0LTItbi1zIiwKCSJzU29ydEpVSUFzY0FsbG93ZWQiOiAiY3NzX3JpZ2h0IHVpLWljb24gdWktaWNvbi1jYXJhdC0xLW4iLAoJInNTb3J0SlVJRGVzY0FsbG93ZWQiOiAiY3NzX3JpZ2h0IHVpLWljb24gdWktaWNvbi1jYXJhdC0xLXMiLAoJInNTb3J0SlVJV3JhcHBlciI6ICJEYXRhVGFibGVzX3NvcnRfd3JhcHBlciIsCgkic1NvcnRJY29uIjogIkRhdGFUYWJsZXNfc29ydF9pY29uIiwKCQoJLyogU2Nyb2xsaW5nICovCgkic1Njcm9sbEhlYWQiOiAiZGF0YVRhYmxlc19zY3JvbGxIZWFkIHVpLXN0YXRlLWRlZmF1bHQiLAoJInNTY3JvbGxGb290IjogImRhdGFUYWJsZXNfc2Nyb2xsRm9vdCB1aS1zdGF0ZS1kZWZhdWx0IiwKCQoJLyogTWlzYyAqLwoJInNGb290ZXJUSCI6ICJ1aS1zdGF0ZS1kZWZhdWx0IiwKCSJzSlVJSGVhZGVyIjogImZnLXRvb2xiYXIgdWktdG9vbGJhciB1aS13aWRnZXQtaGVhZGVyIHVpLWNvcm5lci10bCB1aS1jb3JuZXItdHIgdWktaGVscGVyLWNsZWFyZml4IiwKCSJzSlVJRm9vdGVyIjogImZnLXRvb2xiYXIgdWktdG9vbGJhciB1aS13aWRnZXQtaGVhZGVyIHVpLWNvcm5lci1ibCB1aS1jb3JuZXItYnIgdWktaGVscGVyLWNsZWFyZml4Igp9ICk7Cgo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/ext/ext.paging.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ci8qCiAqIFZhcmlhYmxlOiBvUGFnaW5hdGlvbgogKiBQdXJwb3NlOiAgCiAqIFNjb3BlOiAgICBqUXVlcnkuZm4uZGF0YVRhYmxlRXh0CiAqLwokLmV4dGVuZCggRGF0YVRhYmxlLmV4dC5vUGFnaW5hdGlvbiwgewoJLyoKCSAqIFZhcmlhYmxlOiB0d29fYnV0dG9uCgkgKiBQdXJwb3NlOiAgU3RhbmRhcmQgdHdvIGJ1dHRvbiAoZm9yd2FyZC9iYWNrKSBwYWdpbmF0aW9uCgkgKiBTY29wZTogICAgalF1ZXJ5LmZuLmRhdGFUYWJsZUV4dC5vUGFnaW5hdGlvbgoJICovCgkidHdvX2J1dHRvbiI6IHsKCQkvKgoJCSAqIEZ1bmN0aW9uOiBvUGFnaW5hdGlvbi50d29fYnV0dG9uLmZuSW5pdAoJCSAqIFB1cnBvc2U6ICBJbml0aWFsaXNlIGRvbSBlbGVtZW50cyByZXF1aXJlZCBmb3IgcGFnaW5hdGlvbiB3aXRoIGZvcndhcmQvYmFjayBidXR0b25zIG9ubHkKCQkgKiBSZXR1cm5zOiAgLQoJCSAqIElucHV0czogICBvYmplY3Q6b1NldHRpbmdzIC0gZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCQkgKiAgICAgICAgICAgbm9kZTpuUGFnaW5nIC0gdGhlIERJViB3aGljaCBjb250YWlucyB0aGlzIHBhZ2luYXRpb24gY29udHJvbAoJCSAqICAgICAgICAgICBmdW5jdGlvbjpmbkNhbGxiYWNrRHJhdyAtIGRyYXcgZnVuY3Rpb24gd2hpY2ggbXVzdCBiZSBjYWxsZWQgb24gdXBkYXRlCgkJICovCgkJImZuSW5pdCI6IGZ1bmN0aW9uICggb1NldHRpbmdzLCBuUGFnaW5nLCBmbkNhbGxiYWNrRHJhdyApCgkJewoJCQl2YXIgb0xhbmcgPSBvU2V0dGluZ3Mub0xhbmd1YWdlLm9QYWdpbmF0ZTsKCQkJdmFyIG9DbGFzc2VzID0gb1NldHRpbmdzLm9DbGFzc2VzOwoJCQl2YXIgZm5DbGlja0hhbmRsZXIgPSBmdW5jdGlvbiAoIGUgKSB7CgkJCQlpZiAoIG9TZXR0aW5ncy5vQXBpLl9mblBhZ2VDaGFuZ2UoIG9TZXR0aW5ncywgZS5kYXRhLmFjdGlvbiApICkKCQkJCXsKCQkJCQlmbkNhbGxiYWNrRHJhdyggb1NldHRpbmdzICk7CgkJCQl9CgkJCX07CgoJCQl2YXIgc0FwcGVuZCA9ICghb1NldHRpbmdzLmJKVUkpID8KCQkJCSc8YSBjbGFzcz0iJytvU2V0dGluZ3Mub0NsYXNzZXMuc1BhZ2VQcmV2RGlzYWJsZWQrJyIgdGFiaW5kZXg9Iicrb1NldHRpbmdzLmlUYWJJbmRleCsnIiByb2xlPSJidXR0b24iPicrb0xhbmcuc1ByZXZpb3VzKyc8L2E+JysKCQkJCSc8YSBjbGFzcz0iJytvU2V0dGluZ3Mub0NsYXNzZXMuc1BhZ2VOZXh0RGlzYWJsZWQrJyIgdGFiaW5kZXg9Iicrb1NldHRpbmdzLmlUYWJJbmRleCsnIiByb2xlPSJidXR0b24iPicrb0xhbmcuc05leHQrJzwvYT4nCgkJCQk6CgkJCQknPGEgY2xhc3M9Iicrb1NldHRpbmdzLm9DbGFzc2VzLnNQYWdlUHJldkRpc2FibGVkKyciIHRhYmluZGV4PSInK29TZXR0aW5ncy5pVGFiSW5kZXgrJyIgcm9sZT0iYnV0dG9uIj48c3BhbiBjbGFzcz0iJytvU2V0dGluZ3Mub0NsYXNzZXMuc1BhZ2VKVUlQcmV2KyciPjwvc3Bhbj48L2E+JysKCQkJCSc8YSBjbGFzcz0iJytvU2V0dGluZ3Mub0NsYXNzZXMuc1BhZ2VOZXh0RGlzYWJsZWQrJyIgdGFiaW5kZXg9Iicrb1NldHRpbmdzLmlUYWJJbmRleCsnIiByb2xlPSJidXR0b24iPjxzcGFuIGNsYXNzPSInK29TZXR0aW5ncy5vQ2xhc3Nlcy5zUGFnZUpVSU5leHQrJyI+PC9zcGFuPjwvYT4nOwoJCQkkKG5QYWdpbmcpLmFwcGVuZCggc0FwcGVuZCApOwoJCQkKCQkJdmFyIGVscyA9ICQoJ2EnLCBuUGFnaW5nKTsKCQkJdmFyIG5QcmV2aW91cyA9IGVsc1swXSwKCQkJCW5OZXh0ID0gZWxzWzFdOwoJCQkKCQkJb1NldHRpbmdzLm9BcGkuX2ZuQmluZEFjdGlvbiggblByZXZpb3VzLCB7YWN0aW9uOiAicHJldmlvdXMifSwgZm5DbGlja0hhbmRsZXIgKTsKCQkJb1NldHRpbmdzLm9BcGkuX2ZuQmluZEFjdGlvbiggbk5leHQsICAgICB7YWN0aW9uOiAibmV4dCJ9LCAgICAgZm5DbGlja0hhbmRsZXIgKTsKCQkJCgkJCS8qIElEIHRoZSBmaXJzdCBlbGVtZW50cyBvbmx5ICovCgkJCWlmICggIW9TZXR0aW5ncy5hYW5GZWF0dXJlcy5wICkKCQkJewoJCQkJblBhZ2luZy5pZCA9IG9TZXR0aW5ncy5zVGFibGVJZCsnX3BhZ2luYXRlJzsKCQkJCW5QcmV2aW91cy5pZCA9IG9TZXR0aW5ncy5zVGFibGVJZCsnX3ByZXZpb3VzJzsKCQkJCW5OZXh0LmlkID0gb1NldHRpbmdzLnNUYWJsZUlkKydfbmV4dCc7CgoJCQkJblByZXZpb3VzLnNldEF0dHJpYnV0ZSgnYXJpYS1jb250cm9scycsIG9TZXR0aW5ncy5zVGFibGVJZCk7CgkJCQluTmV4dC5zZXRBdHRyaWJ1dGUoJ2FyaWEtY29udHJvbHMnLCBvU2V0dGluZ3Muc1RhYmxlSWQpOwoJCQl9CgkJfSwKCQkKCQkvKgoJCSAqIEZ1bmN0aW9uOiBvUGFnaW5hdGlvbi50d29fYnV0dG9uLmZuVXBkYXRlCgkJICogUHVycG9zZTogIFVwZGF0ZSB0aGUgdHdvIGJ1dHRvbiBwYWdpbmF0aW9uIGF0IHRoZSBlbmQgb2YgdGhlIGRyYXcKCQkgKiBSZXR1cm5zOiAgLQoJCSAqIElucHV0czogICBvYmplY3Q6b1NldHRpbmdzIC0gZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCQkgKiAgICAgICAgICAgZnVuY3Rpb246Zm5DYWxsYmFja0RyYXcgLSBkcmF3IGZ1bmN0aW9uIHRvIGNhbGwgb24gcGFnZSBjaGFuZ2UKCQkgKi8KCQkiZm5VcGRhdGUiOiBmdW5jdGlvbiAoIG9TZXR0aW5ncywgZm5DYWxsYmFja0RyYXcgKQoJCXsKCQkJaWYgKCAhb1NldHRpbmdzLmFhbkZlYXR1cmVzLnAgKQoJCQl7CgkJCQlyZXR1cm47CgkJCX0KCQkJCgkJCXZhciBvQ2xhc3NlcyA9IG9TZXR0aW5ncy5vQ2xhc3NlczsKCQkJdmFyIGFuID0gb1NldHRpbmdzLmFhbkZlYXR1cmVzLnA7CgoJCQkvKiBMb29wIG92ZXIgZWFjaCBpbnN0YW5jZSBvZiB0aGUgcGFnZXIgKi8KCQkJZm9yICggdmFyIGk9MCwgaUxlbj1hbi5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCQl7CgkJCQlpZiAoIGFuW2ldLmNoaWxkTm9kZXMubGVuZ3RoICE9PSAwICkKCQkJCXsKCQkJCQlhbltpXS5jaGlsZE5vZGVzWzBdLmNsYXNzTmFtZSA9ICggb1NldHRpbmdzLl9pRGlzcGxheVN0YXJ0ID09PSAwICkgPyAKCQkJCQkJb0NsYXNzZXMuc1BhZ2VQcmV2RGlzYWJsZWQgOiBvQ2xhc3Nlcy5zUGFnZVByZXZFbmFibGVkOwoJCQkJCQoJCQkJCWFuW2ldLmNoaWxkTm9kZXNbMV0uY2xhc3NOYW1lID0gKCBvU2V0dGluZ3MuZm5EaXNwbGF5RW5kKCkgPT0gb1NldHRpbmdzLmZuUmVjb3Jkc0Rpc3BsYXkoKSApID8gCgkJCQkJCW9DbGFzc2VzLnNQYWdlTmV4dERpc2FibGVkIDogb0NsYXNzZXMuc1BhZ2VOZXh0RW5hYmxlZDsKCQkJCX0KCQkJfQoJCX0KCX0sCgkKCQoJLyoKCSAqIFZhcmlhYmxlOiBpRnVsbE51bWJlcnNTaG93UGFnZXMKCSAqIFB1cnBvc2U6ICBDaGFuZ2UgdGhlIG51bWJlciBvZiBwYWdlcyB3aGljaCBjYW4gYmUgc2VlbgoJICogU2NvcGU6ICAgIGpRdWVyeS5mbi5kYXRhVGFibGVFeHQub1BhZ2luYXRpb24KCSAqLwoJImlGdWxsTnVtYmVyc1Nob3dQYWdlcyI6IDUsCgkKCS8qCgkgKiBWYXJpYWJsZTogZnVsbF9udW1iZXJzCgkgKiBQdXJwb3NlOiAgRnVsbCBudW1iZXJzIHBhZ2luYXRpb24KCSAqIFNjb3BlOiAgICBqUXVlcnkuZm4uZGF0YVRhYmxlRXh0Lm9QYWdpbmF0aW9uCgkgKi8KCSJmdWxsX251bWJlcnMiOiB7CgkJLyoKCQkgKiBGdW5jdGlvbjogb1BhZ2luYXRpb24uZnVsbF9udW1iZXJzLmZuSW5pdAoJCSAqIFB1cnBvc2U6ICBJbml0aWFsaXNlIGRvbSBlbGVtZW50cyByZXF1aXJlZCBmb3IgcGFnaW5hdGlvbiB3aXRoIGEgbGlzdCBvZiB0aGUgcGFnZXMKCQkgKiBSZXR1cm5zOiAgLQoJCSAqIElucHV0czogICBvYmplY3Q6b1NldHRpbmdzIC0gZGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCQkgKiAgICAgICAgICAgbm9kZTpuUGFnaW5nIC0gdGhlIERJViB3aGljaCBjb250YWlucyB0aGlzIHBhZ2luYXRpb24gY29udHJvbAoJCSAqICAgICAgICAgICBmdW5jdGlvbjpmbkNhbGxiYWNrRHJhdyAtIGRyYXcgZnVuY3Rpb24gd2hpY2ggbXVzdCBiZSBjYWxsZWQgb24gdXBkYXRlCgkJICovCgkJImZuSW5pdCI6IGZ1bmN0aW9uICggb1NldHRpbmdzLCBuUGFnaW5nLCBmbkNhbGxiYWNrRHJhdyApCgkJewoJCQl2YXIgb0xhbmcgPSBvU2V0dGluZ3Mub0xhbmd1YWdlLm9QYWdpbmF0ZTsKCQkJdmFyIG9DbGFzc2VzID0gb1NldHRpbmdzLm9DbGFzc2VzOwoJCQl2YXIgZm5DbGlja0hhbmRsZXIgPSBmdW5jdGlvbiAoIGUgKSB7CgkJCQlpZiAoIG9TZXR0aW5ncy5vQXBpLl9mblBhZ2VDaGFuZ2UoIG9TZXR0aW5ncywgZS5kYXRhLmFjdGlvbiApICkKCQkJCXsKCQkJCQlmbkNhbGxiYWNrRHJhdyggb1NldHRpbmdzICk7CgkJCQl9CgkJCX07CgoJCQkkKG5QYWdpbmcpLmFwcGVuZCgKCQkJCSc8YSAgdGFiaW5kZXg9Iicrb1NldHRpbmdzLmlUYWJJbmRleCsnIiBjbGFzcz0iJytvQ2xhc3Nlcy5zUGFnZUJ1dHRvbisiICIrb0NsYXNzZXMuc1BhZ2VGaXJzdCsnIj4nK29MYW5nLnNGaXJzdCsnPC9hPicrCgkJCQknPGEgIHRhYmluZGV4PSInK29TZXR0aW5ncy5pVGFiSW5kZXgrJyIgY2xhc3M9Iicrb0NsYXNzZXMuc1BhZ2VCdXR0b24rIiAiK29DbGFzc2VzLnNQYWdlUHJldmlvdXMrJyI+JytvTGFuZy5zUHJldmlvdXMrJzwvYT4nKwoJCQkJJzxzcGFuPjwvc3Bhbj4nKwoJCQkJJzxhIHRhYmluZGV4PSInK29TZXR0aW5ncy5pVGFiSW5kZXgrJyIgY2xhc3M9Iicrb0NsYXNzZXMuc1BhZ2VCdXR0b24rIiAiK29DbGFzc2VzLnNQYWdlTmV4dCsnIj4nK29MYW5nLnNOZXh0Kyc8L2E+JysKCQkJCSc8YSB0YWJpbmRleD0iJytvU2V0dGluZ3MuaVRhYkluZGV4KyciIGNsYXNzPSInK29DbGFzc2VzLnNQYWdlQnV0dG9uKyIgIitvQ2xhc3Nlcy5zUGFnZUxhc3QrJyI+JytvTGFuZy5zTGFzdCsnPC9hPicKCQkJKTsKCQkJdmFyIGVscyA9ICQoJ2EnLCBuUGFnaW5nKTsKCQkJdmFyIG5GaXJzdCA9IGVsc1swXSwKCQkJCW5QcmV2ID0gZWxzWzFdLAoJCQkJbk5leHQgPSBlbHNbMl0sCgkJCQluTGFzdCA9IGVsc1szXTsKCQkJCgkJCW9TZXR0aW5ncy5vQXBpLl9mbkJpbmRBY3Rpb24oIG5GaXJzdCwge2FjdGlvbjogImZpcnN0In0sICAgIGZuQ2xpY2tIYW5kbGVyICk7CgkJCW9TZXR0aW5ncy5vQXBpLl9mbkJpbmRBY3Rpb24oIG5QcmV2LCAge2FjdGlvbjogInByZXZpb3VzIn0sIGZuQ2xpY2tIYW5kbGVyICk7CgkJCW9TZXR0aW5ncy5vQXBpLl9mbkJpbmRBY3Rpb24oIG5OZXh0LCAge2FjdGlvbjogIm5leHQifSwgICAgIGZuQ2xpY2tIYW5kbGVyICk7CgkJCW9TZXR0aW5ncy5vQXBpLl9mbkJpbmRBY3Rpb24oIG5MYXN0LCAge2FjdGlvbjogImxhc3QifSwgICAgIGZuQ2xpY2tIYW5kbGVyICk7CgkJCQoJCQkvKiBJRCB0aGUgZmlyc3QgZWxlbWVudHMgb25seSAqLwoJCQlpZiAoICFvU2V0dGluZ3MuYWFuRmVhdHVyZXMucCApCgkJCXsKCQkJCW5QYWdpbmcuaWQgPSBvU2V0dGluZ3Muc1RhYmxlSWQrJ19wYWdpbmF0ZSc7CgkJCQluRmlyc3QuaWQgPW9TZXR0aW5ncy5zVGFibGVJZCsnX2ZpcnN0JzsKCQkJCW5QcmV2LmlkID1vU2V0dGluZ3Muc1RhYmxlSWQrJ19wcmV2aW91cyc7CgkJCQluTmV4dC5pZCA9b1NldHRpbmdzLnNUYWJsZUlkKydfbmV4dCc7CgkJCQluTGFzdC5pZCA9b1NldHRpbmdzLnNUYWJsZUlkKydfbGFzdCc7CgkJCX0KCQl9LAoJCQoJCS8qCgkJICogRnVuY3Rpb246IG9QYWdpbmF0aW9uLmZ1bGxfbnVtYmVycy5mblVwZGF0ZQoJCSAqIFB1cnBvc2U6ICBVcGRhdGUgdGhlIGxpc3Qgb2YgcGFnZSBidXR0b25zIHNob3dzCgkJICogUmV0dXJuczogIC0KCQkgKiBJbnB1dHM6ICAgb2JqZWN0Om9TZXR0aW5ncyAtIGRhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CgkJICogICAgICAgICAgIGZ1bmN0aW9uOmZuQ2FsbGJhY2tEcmF3IC0gZHJhdyBmdW5jdGlvbiB0byBjYWxsIG9uIHBhZ2UgY2hhbmdlCgkJICovCgkJImZuVXBkYXRlIjogZnVuY3Rpb24gKCBvU2V0dGluZ3MsIGZuQ2FsbGJhY2tEcmF3ICkKCQl7CgkJCWlmICggIW9TZXR0aW5ncy5hYW5GZWF0dXJlcy5wICkKCQkJewoJCQkJcmV0dXJuOwoJCQl9CgkJCQoJCQl2YXIgaVBhZ2VDb3VudCA9IERhdGFUYWJsZS5leHQub1BhZ2luYXRpb24uaUZ1bGxOdW1iZXJzU2hvd1BhZ2VzOwoJCQl2YXIgaVBhZ2VDb3VudEhhbGYgPSBNYXRoLmZsb29yKGlQYWdlQ291bnQgLyAyKTsKCQkJdmFyIGlQYWdlcyA9IE1hdGguY2VpbCgob1NldHRpbmdzLmZuUmVjb3Jkc0Rpc3BsYXkoKSkgLyBvU2V0dGluZ3MuX2lEaXNwbGF5TGVuZ3RoKTsKCQkJdmFyIGlDdXJyZW50UGFnZSA9IE1hdGguY2VpbChvU2V0dGluZ3MuX2lEaXNwbGF5U3RhcnQgLyBvU2V0dGluZ3MuX2lEaXNwbGF5TGVuZ3RoKSArIDE7CgkJCXZhciBzTGlzdCA9ICIiOwoJCQl2YXIgaVN0YXJ0QnV0dG9uLCBpRW5kQnV0dG9uLCBpLCBpTGVuOwoJCQl2YXIgb0NsYXNzZXMgPSBvU2V0dGluZ3Mub0NsYXNzZXM7CgkJCXZhciBhbkJ1dHRvbnMsIGFuU3RhdGljLCBuUGFnaW5hdGVMaXN0OwoJCQl2YXIgYW4gPSBvU2V0dGluZ3MuYWFuRmVhdHVyZXMucDsKCQkJdmFyIGZuQmluZCA9IGZ1bmN0aW9uIChqKSB7CgkJCQlvU2V0dGluZ3Mub0FwaS5fZm5CaW5kQWN0aW9uKCB0aGlzLCB7InBhZ2UiOiBqK2lTdGFydEJ1dHRvbi0xfSwgZnVuY3Rpb24oZSkgewoJCQkJCS8qIFVzZSB0aGUgaW5mb3JtYXRpb24gaW4gdGhlIGVsZW1lbnQgdG8ganVtcCB0byB0aGUgcmVxdWlyZWQgcGFnZSAqLwoJCQkJCW9TZXR0aW5ncy5vQXBpLl9mblBhZ2VDaGFuZ2UoIG9TZXR0aW5ncywgZS5kYXRhLnBhZ2UgKTsKCQkJCQlmbkNhbGxiYWNrRHJhdyggb1NldHRpbmdzICk7CgkJCQkJZS5wcmV2ZW50RGVmYXVsdCgpOwoJCQkJfSApOwoJCQl9OwoJCQkKCQkJLyogUGFnZXMgY2FsY3VsYXRpb24gKi8KCQkJaWYgKCBvU2V0dGluZ3MuX2lEaXNwbGF5TGVuZ3RoID09PSAtMSApCgkJCXsKCQkJCWlTdGFydEJ1dHRvbiA9IDE7CgkJCQlpRW5kQnV0dG9uID0gMTsKCQkJCWlDdXJyZW50UGFnZSA9IDE7CgkJCX0KCQkJZWxzZSBpZiAoaVBhZ2VzIDwgaVBhZ2VDb3VudCkKCQkJewoJCQkJaVN0YXJ0QnV0dG9uID0gMTsKCQkJCWlFbmRCdXR0b24gPSBpUGFnZXM7CgkJCX0KCQkJZWxzZSBpZiAoaUN1cnJlbnRQYWdlIDw9IGlQYWdlQ291bnRIYWxmKQoJCQl7CgkJCQlpU3RhcnRCdXR0b24gPSAxOwoJCQkJaUVuZEJ1dHRvbiA9IGlQYWdlQ291bnQ7CgkJCX0KCQkJZWxzZSBpZiAoaUN1cnJlbnRQYWdlID49IChpUGFnZXMgLSBpUGFnZUNvdW50SGFsZikpCgkJCXsKCQkJCWlTdGFydEJ1dHRvbiA9IGlQYWdlcyAtIGlQYWdlQ291bnQgKyAxOwoJCQkJaUVuZEJ1dHRvbiA9IGlQYWdlczsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCWlTdGFydEJ1dHRvbiA9IGlDdXJyZW50UGFnZSAtIE1hdGguY2VpbChpUGFnZUNvdW50IC8gMikgKyAxOwoJCQkJaUVuZEJ1dHRvbiA9IGlTdGFydEJ1dHRvbiArIGlQYWdlQ291bnQgLSAxOwoJCQl9CgoJCQkKCQkJLyogQnVpbGQgdGhlIGR5bmFtaWMgbGlzdCAqLwoJCQlmb3IgKCBpPWlTdGFydEJ1dHRvbiA7IGk8PWlFbmRCdXR0b24gOyBpKysgKQoJCQl7CgkJCQlzTGlzdCArPSAoaUN1cnJlbnRQYWdlICE9PSBpKSA/CgkJCQkJJzxhIHRhYmluZGV4PSInK29TZXR0aW5ncy5pVGFiSW5kZXgrJyIgY2xhc3M9Iicrb0NsYXNzZXMuc1BhZ2VCdXR0b24rJyI+JytvU2V0dGluZ3MuZm5Gb3JtYXROdW1iZXIoaSkrJzwvYT4nIDoKCQkJCQknPGEgdGFiaW5kZXg9Iicrb1NldHRpbmdzLmlUYWJJbmRleCsnIiBjbGFzcz0iJytvQ2xhc3Nlcy5zUGFnZUJ1dHRvbkFjdGl2ZSsnIj4nK29TZXR0aW5ncy5mbkZvcm1hdE51bWJlcihpKSsnPC9hPic7CgkJCX0KCQkJCgkJCS8qIExvb3Agb3ZlciBlYWNoIGluc3RhbmNlIG9mIHRoZSBwYWdlciAqLwoJCQlmb3IgKCBpPTAsIGlMZW49YW4ubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQkJewoJCQkJaWYgKCBhbltpXS5jaGlsZE5vZGVzLmxlbmd0aCA9PT0gMCApCgkJCQl7CgkJCQkJY29udGludWU7CgkJCQl9CgkJCQkKCQkJCS8qIEJ1aWxkIHVwIHRoZSBkeW5hbWljIGxpc3QgZmlyc3QgLSBodG1sIGFuZCBsaXN0ZW5lcnMgKi8KCQkJCSQoJ3NwYW46ZXEoMCknLCBhbltpXSkKCQkJCQkuaHRtbCggc0xpc3QgKQoJCQkJCS5jaGlsZHJlbignYScpLmVhY2goIGZuQmluZCApOwoJCQkJCgkJCQkvKiBVcGRhdGUgdGhlIHBlcm1hbmVudCBidXR0b24ncyBjbGFzc2VzICovCgkJCQlhbkJ1dHRvbnMgPSBhbltpXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYScpOwoJCQkJYW5TdGF0aWMgPSBbCgkJCQkJYW5CdXR0b25zWzBdLCBhbkJ1dHRvbnNbMV0sIAoJCQkJCWFuQnV0dG9uc1thbkJ1dHRvbnMubGVuZ3RoLTJdLCBhbkJ1dHRvbnNbYW5CdXR0b25zLmxlbmd0aC0xXQoJCQkJXTsKCgkJCQkkKGFuU3RhdGljKS5yZW1vdmVDbGFzcyggb0NsYXNzZXMuc1BhZ2VCdXR0b24rIiAiK29DbGFzc2VzLnNQYWdlQnV0dG9uQWN0aXZlKyIgIitvQ2xhc3Nlcy5zUGFnZUJ1dHRvblN0YXRpY0Rpc2FibGVkICk7CgkJCQkkKFthblN0YXRpY1swXSwgYW5TdGF0aWNbMV1dKS5hZGRDbGFzcyggCgkJCQkJKGlDdXJyZW50UGFnZT09MSkgPwoJCQkJCQlvQ2xhc3Nlcy5zUGFnZUJ1dHRvblN0YXRpY0Rpc2FibGVkIDoKCQkJCQkJb0NsYXNzZXMuc1BhZ2VCdXR0b24KCQkJCSk7CgkJCQkkKFthblN0YXRpY1syXSwgYW5TdGF0aWNbM11dKS5hZGRDbGFzcygKCQkJCQkoaVBhZ2VzPT09MCB8fCBpQ3VycmVudFBhZ2U9PT1pUGFnZXMgfHwgb1NldHRpbmdzLl9pRGlzcGxheUxlbmd0aD09PS0xKSA/CgkJCQkJCW9DbGFzc2VzLnNQYWdlQnV0dG9uU3RhdGljRGlzYWJsZWQgOgoJCQkJCQlvQ2xhc3Nlcy5zUGFnZUJ1dHRvbgoJCQkJKTsKCQkJfQoJCX0KCX0KfSApOwo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/ext/ext.sorting.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CiQuZXh0ZW5kKCBEYXRhVGFibGUuZXh0Lm9Tb3J0LCB7CgkvKgoJICogdGV4dCBzb3J0aW5nCgkgKi8KCSJzdHJpbmctcHJlIjogZnVuY3Rpb24gKCBhICkKCXsKCQlpZiAoIHR5cGVvZiBhICE9ICdzdHJpbmcnICkgewoJCQlhID0gKGEgIT09IG51bGwgJiYgYS50b1N0cmluZykgPyBhLnRvU3RyaW5nKCkgOiAnJzsKCQl9CgkJcmV0dXJuIGEudG9Mb3dlckNhc2UoKTsKCX0sCgoJInN0cmluZy1hc2MiOiBmdW5jdGlvbiAoIHgsIHkgKQoJewoJCXJldHVybiAoKHggPCB5KSA/IC0xIDogKCh4ID4geSkgPyAxIDogMCkpOwoJfSwKCQoJInN0cmluZy1kZXNjIjogZnVuY3Rpb24gKCB4LCB5ICkKCXsKCQlyZXR1cm4gKCh4IDwgeSkgPyAxIDogKCh4ID4geSkgPyAtMSA6IDApKTsKCX0sCgkKCQoJLyoKCSAqIGh0bWwgc29ydGluZyAoaWdub3JlIGh0bWwgdGFncykKCSAqLwoJImh0bWwtcHJlIjogZnVuY3Rpb24gKCBhICkKCXsKCQlyZXR1cm4gYS5yZXBsYWNlKCAvPC4qPz4vZywgIiIgKS50b0xvd2VyQ2FzZSgpOwoJfSwKCQoJImh0bWwtYXNjIjogZnVuY3Rpb24gKCB4LCB5ICkKCXsKCQlyZXR1cm4gKCh4IDwgeSkgPyAtMSA6ICgoeCA+IHkpID8gMSA6IDApKTsKCX0sCgkKCSJodG1sLWRlc2MiOiBmdW5jdGlvbiAoIHgsIHkgKQoJewoJCXJldHVybiAoKHggPCB5KSA/IDEgOiAoKHggPiB5KSA/IC0xIDogMCkpOwoJfSwKCQoJCgkvKgoJICogZGF0ZSBzb3J0aW5nCgkgKi8KCSJkYXRlLXByZSI6IGZ1bmN0aW9uICggYSApCgl7CgkJdmFyIHggPSBEYXRlLnBhcnNlKCBhICk7CgkJCgkJaWYgKCBpc05hTih4KSB8fCB4PT09IiIgKQoJCXsKCQkJeCA9IERhdGUucGFyc2UoICIwMS8wMS8xOTcwIDAwOjAwOjAwIiApOwoJCX0KCQlyZXR1cm4geDsKCX0sCgoJImRhdGUtYXNjIjogZnVuY3Rpb24gKCB4LCB5ICkKCXsKCQlyZXR1cm4geCAtIHk7Cgl9LAoJCgkiZGF0ZS1kZXNjIjogZnVuY3Rpb24gKCB4LCB5ICkKCXsKCQlyZXR1cm4geSAtIHg7Cgl9LAoJCgkKCS8qCgkgKiBudW1lcmljYWwgc29ydGluZwoJICovCgkibnVtZXJpYy1wcmUiOiBmdW5jdGlvbiAoIGEgKQoJewoJCXJldHVybiAoYT09Ii0iIHx8IGE9PT0iIikgPyAwIDogYSoxOwoJfSwKCgkibnVtZXJpYy1hc2MiOiBmdW5jdGlvbiAoIHgsIHkgKQoJewoJCXJldHVybiB4IC0geTsKCX0sCgkKCSJudW1lcmljLWRlc2MiOiBmdW5jdGlvbiAoIHgsIHkgKQoJewoJCXJldHVybiB5IC0geDsKCX0KfSApOwo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/ext/ext.types.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CgokLmV4dGVuZCggRGF0YVRhYmxlLmV4dC5hVHlwZXMsIFsKCS8qCgkgKiBGdW5jdGlvbjogLQoJICogUHVycG9zZTogIENoZWNrIHRvIHNlZSBpZiBhIHN0cmluZyBpcyBudW1lcmljCgkgKiBSZXR1cm5zOiAgc3RyaW5nOidudW1lcmljJyBvciBudWxsCgkgKiBJbnB1dHM6ICAgbWl4ZWQ6c1RleHQgLSBzdHJpbmcgdG8gY2hlY2sKCSAqLwoJZnVuY3Rpb24gKCBzRGF0YSApCgl7CgkJLyogQWxsb3cgemVybyBsZW5ndGggc3RyaW5ncyBhcyBhIG51bWJlciAqLwoJCWlmICggdHlwZW9mIHNEYXRhID09PSAnbnVtYmVyJyApCgkJewoJCQlyZXR1cm4gJ251bWVyaWMnOwoJCX0KCQllbHNlIGlmICggdHlwZW9mIHNEYXRhICE9PSAnc3RyaW5nJyApCgkJewoJCQlyZXR1cm4gbnVsbDsKCQl9CgkJCgkJdmFyIHNWYWxpZEZpcnN0Q2hhcnMgPSAiMDEyMzQ1Njc4OS0iOwoJCXZhciBzVmFsaWRDaGFycyA9ICIwMTIzNDU2Nzg5LiI7CgkJdmFyIENoYXI7CgkJdmFyIGJEZWNpbWFsID0gZmFsc2U7CgkJCgkJLyogQ2hlY2sgZm9yIGEgdmFsaWQgZmlyc3QgY2hhciAobm8gcGVyaW9kIGFuZCBhbGxvdyBuZWdhdGl2ZXMpICovCgkJQ2hhciA9IHNEYXRhLmNoYXJBdCgwKTsgCgkJaWYgKHNWYWxpZEZpcnN0Q2hhcnMuaW5kZXhPZihDaGFyKSA9PSAtMSkgCgkJewoJCQlyZXR1cm4gbnVsbDsKCQl9CgkJCgkJLyogQ2hlY2sgYWxsIHRoZSBvdGhlciBjaGFyYWN0ZXJzIGFyZSB2YWxpZCAqLwoJCWZvciAoIHZhciBpPTEgOyBpPHNEYXRhLmxlbmd0aCA7IGkrKyApIAoJCXsKCQkJQ2hhciA9IHNEYXRhLmNoYXJBdChpKTsgCgkJCWlmIChzVmFsaWRDaGFycy5pbmRleE9mKENoYXIpID09IC0xKSAKCQkJewoJCQkJcmV0dXJuIG51bGw7CgkJCX0KCQkJCgkJCS8qIE9ubHkgYWxsb3dlZCBvbmUgZGVjaW1hbCBwbGFjZS4uLiAqLwoJCQlpZiAoIENoYXIgPT0gIi4iICkKCQkJewoJCQkJaWYgKCBiRGVjaW1hbCApCgkJCQl7CgkJCQkJcmV0dXJuIG51bGw7CgkJCQl9CgkJCQliRGVjaW1hbCA9IHRydWU7CgkJCX0KCQl9CgkJCgkJcmV0dXJuICdudW1lcmljJzsKCX0sCgkKCS8qCgkgKiBGdW5jdGlvbjogLQoJICogUHVycG9zZTogIENoZWNrIHRvIHNlZSBpZiBhIHN0cmluZyBpcyBhY3R1YWxseSBhIGZvcm1hdHRlZCBkYXRlCgkgKiBSZXR1cm5zOiAgc3RyaW5nOidkYXRlJyBvciBudWxsCgkgKiBJbnB1dHM6ICAgc3RyaW5nOnNUZXh0IC0gc3RyaW5nIHRvIGNoZWNrCgkgKi8KCWZ1bmN0aW9uICggc0RhdGEgKQoJewoJCXZhciBpUGFyc2UgPSBEYXRlLnBhcnNlKHNEYXRhKTsKCQlpZiAoIChpUGFyc2UgIT09IG51bGwgJiYgIWlzTmFOKGlQYXJzZSkpIHx8ICh0eXBlb2Ygc0RhdGEgPT09ICdzdHJpbmcnICYmIHNEYXRhLmxlbmd0aCA9PT0gMCkgKQoJCXsKCQkJcmV0dXJuICdkYXRlJzsKCQl9CgkJcmV0dXJuIG51bGw7Cgl9LAoJCgkvKgoJICogRnVuY3Rpb246IC0KCSAqIFB1cnBvc2U6ICBDaGVjayB0byBzZWUgaWYgYSBzdHJpbmcgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYW4gSFRNTCBzdHJpbmcKCSAqIFJldHVybnM6ICBzdHJpbmc6J2h0bWwnIG9yIG51bGwKCSAqIElucHV0czogICBzdHJpbmc6c1RleHQgLSBzdHJpbmcgdG8gY2hlY2sKCSAqLwoJZnVuY3Rpb24gKCBzRGF0YSApCgl7CgkJaWYgKCB0eXBlb2Ygc0RhdGEgPT09ICdzdHJpbmcnICYmIHNEYXRhLmluZGV4T2YoJzwnKSAhPSAtMSAmJiBzRGF0YS5pbmRleE9mKCc+JykgIT0gLTEgKQoJCXsKCQkJcmV0dXJuICdodG1sJzsKCQl9CgkJcmV0dXJuIG51bGw7Cgl9Cl0gKTsKCg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/model/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/model/model.column.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CgoKLyoqCiAqIFRlbXBsYXRlIG9iamVjdCBmb3IgdGhlIGNvbHVtbiBpbmZvcm1hdGlvbiBvYmplY3QgaW4gRGF0YVRhYmxlcy4gVGhpcyBvYmplY3QKICogaXMgaGVsZCBpbiB0aGUgc2V0dGluZ3MgYW9Db2x1bW5zIGFycmF5IGFuZCBjb250YWlucyBhbGwgdGhlIGluZm9ybWF0aW9uIHRoYXQKICogRGF0YVRhYmxlcyBuZWVkcyBhYm91dCBlYWNoIGluZGl2aWR1YWwgY29sdW1uLgogKiAKICogTm90ZSB0aGF0IHRoaXMgb2JqZWN0IGlzIHJlbGF0ZWQgdG8ge0BsaW5rIERhdGFUYWJsZS5kZWZhdWx0cy5jb2x1bW5zfSAKICogYnV0IHRoaXMgb25lIGlzIHRoZSBpbnRlcm5hbCBkYXRhIHN0b3JlIGZvciBEYXRhVGFibGVzJ3MgY2FjaGUgb2YgY29sdW1ucy4KICogSXQgc2hvdWxkIE5PVCBiZSBtYW5pcHVsYXRlZCBvdXRzaWRlIG9mIERhdGFUYWJsZXMuIEFueSBjb25maWd1cmF0aW9uIHNob3VsZAogKiBiZSBkb25lIHRocm91Z2ggdGhlIGluaXRpYWxpc2F0aW9uIG9wdGlvbnMuCiAqICBAbmFtZXNwYWNlCiAqLwpEYXRhVGFibGUubW9kZWxzLm9Db2x1bW4gPSB7CgkvKioKCSAqIEEgbGlzdCBvZiB0aGUgY29sdW1ucyB0aGF0IHNvcnRpbmcgc2hvdWxkIG9jY3VyIG9uIHdoZW4gdGhpcyBjb2x1bW4KCSAqIGlzIHNvcnRlZC4gVGhhdCB0aGlzIHByb3BlcnR5IGlzIGFuIGFycmF5IGFsbG93cyBtdWx0aS1jb2x1bW4gc29ydGluZwoJICogdG8gYmUgZGVmaW5lZCBmb3IgYSBjb2x1bW4gKGZvciBleGFtcGxlIGZpcnN0IG5hbWUgLyBsYXN0IG5hbWUgY29sdW1ucwoJICogd291bGQgYmVuZWZpdCBmcm9tIHRoaXMpLiBUaGUgdmFsdWVzIGFyZSBpbnRlZ2VycyBwb2ludGluZyB0byB0aGUKCSAqIGNvbHVtbnMgdG8gYmUgc29ydGVkIG9uICh0eXBpY2FsbHkgaXQgd2lsbCBiZSBhIHNpbmdsZSBpbnRlZ2VyIHBvaW50aW5nCgkgKiBhdCBpdHNlbGYsIGJ1dCB0aGF0IGRvZXNuJ3QgbmVlZCB0byBiZSB0aGUgY2FzZSkuCgkgKiAgQHR5cGUgYXJyYXkKCSAqLwoJImFEYXRhU29ydCI6IG51bGwsCgoJLyoqCgkgKiBEZWZpbmUgdGhlIHNvcnRpbmcgZGlyZWN0aW9ucyB0aGF0IGFyZSBhcHBsaWVkIHRvIHRoZSBjb2x1bW4sIGluIHNlcXVlbmNlCgkgKiBhcyB0aGUgY29sdW1uIGlzIHJlcGVhdGVkbHkgc29ydGVkIHVwb24gLSBpLmUuIHRoZSBmaXJzdCB2YWx1ZSBpcyB1c2VkCgkgKiBhcyB0aGUgc29ydGluZyBkaXJlY3Rpb24gd2hlbiB0aGUgY29sdW1uIGlmIGZpcnN0IHNvcnRlZCAoY2xpY2tlZCBvbikuCgkgKiBTb3J0IGl0IGFnYWluIChjbGljayBhZ2FpbikgYW5kIGl0IHdpbGwgbW92ZSBvbiB0byB0aGUgbmV4dCBpbmRleC4KCSAqIFJlcGVhdCB1bnRpbCBsb29wLgoJICogIEB0eXBlIGFycmF5CgkgKi8KCSJhc1NvcnRpbmciOiBudWxsLAoJCgkvKioKCSAqIEZsYWcgdG8gaW5kaWNhdGUgaWYgdGhlIGNvbHVtbiBpcyBzZWFyY2hhYmxlLCBhbmQgdGh1cyBzaG91bGQgYmUgaW5jbHVkZWQKCSAqIGluIHRoZSBmaWx0ZXJpbmcgb3Igbm90LgoJICogIEB0eXBlIGJvb2xlYW4KCSAqLwoJImJTZWFyY2hhYmxlIjogbnVsbCwKCQoJLyoqCgkgKiBGbGFnIHRvIGluZGljYXRlIGlmIHRoZSBjb2x1bW4gaXMgc29ydGFibGUgb3Igbm90LgoJICogIEB0eXBlIGJvb2xlYW4KCSAqLwoJImJTb3J0YWJsZSI6IG51bGwsCgkKCS8qKgoJICogV2hlbiB1c2luZyBmblJlbmRlciwgeW91IGhhdmUgdHdvIG9wdGlvbnMgZm9yIHdoYXQgdG8gZG8gd2l0aCB0aGUgZGF0YSwKCSAqIGFuZCB0aGlzIHByb3BlcnR5IHNlcnZlcyBhcyB0aGUgc3dpdGNoLiBGaXJzdGx5LCB5b3UgY2FuIGhhdmUgdGhlIHNvcnRpbmcKCSAqIGFuZCBmaWx0ZXJpbmcgdXNlIHRoZSByZW5kZXJlZCB2YWx1ZSAodHJ1ZSAtIGRlZmF1bHQpLCBvciB5b3UgY2FuIGhhdmUKCSAqIHRoZSBzb3J0aW5nIGFuZCBmaWx0ZXJpbmcgdXMgdGhlIG9yaWdpbmFsIHZhbHVlIChmYWxzZSkuCgkgKiAKCSAqICpOT1RFKiBJdCBpcyBpdCBpcyBhZHZpc2FibGUgbm93IHRvIHVzZSBtRGF0YSBhcyBhIGZ1bmN0aW9uIGFuZCBtYWtlIAoJICogdXNlIG9mIHRoZSAndHlwZScgdGhhdCBpdCBnaXZlcywgYWxsb3dpbmcgKHBvdGVudGlhbGx5KSBkaWZmZXJlbnQgZGF0YSB0bwoJICogYmUgdXNlZCBmb3Igc29ydGluZywgZmlsdGVyaW5nLCBkaXNwbGF5IGFuZCB0eXBlIGRldGVjdGlvbi4KCSAqICBAdHlwZSBib29sZWFuCgkgKiAgQGRlcHJlY2F0ZWQKCSAqLwoJImJVc2VSZW5kZXJlZCI6IG51bGwsCgkKCS8qKgoJICogRmxhZyB0byBpbmRpY2F0ZSBpZiB0aGUgY29sdW1uIGlzIGN1cnJlbnRseSB2aXNpYmxlIGluIHRoZSB0YWJsZSBvciBub3QKCSAqICBAdHlwZSBib29sZWFuCgkgKi8KCSJiVmlzaWJsZSI6IG51bGwsCgkKCS8qKgoJICogRmxhZyB0byBpbmRpY2F0ZSB0byB0aGUgdHlwZSBkZXRlY3Rpb24gbWV0aG9kIGlmIHRoZSBhdXRvbWF0aWMgdHlwZQoJICogZGV0ZWN0aW9uIHNob3VsZCBiZSB1c2VkLCBvciBpZiBhIGNvbHVtbiB0eXBlIChzVHlwZSkgaGFzIGJlZW4gc3BlY2lmaWVkCgkgKiAgQHR5cGUgYm9vbGVhbgoJICogIEBkZWZhdWx0IHRydWUKCSAqICBAcHJpdmF0ZQoJICovCgkiX2JBdXRvVHlwZSI6IHRydWUsCgkKCS8qKgoJICogRGV2ZWxvcGVyIGRlZmluYWJsZSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB3aGVuZXZlciBhIGNlbGwgaXMgY3JlYXRlZCAoQWpheCBzb3VyY2UsCgkgKiBldGMpIG9yIHByb2Nlc3NlZCBmb3IgaW5wdXQgKERPTSBzb3VyY2UpLiBUaGlzIGNhbiBiZSB1c2VkIGFzIGEgY29tcGxpbWVudCB0byBmblJlbmRlcgoJICogYWxsb3dpbmcgeW91IHRvIG1vZGlmeSB0aGUgRE9NIGVsZW1lbnQgKGFkZCBiYWNrZ3JvdW5kIGNvbG91ciBmb3IgZXhhbXBsZSkgd2hlbiB0aGUKCSAqIGVsZW1lbnQgaXMgYXZhaWxhYmxlIChzaW5jZSBpdCBpcyBub3Qgd2hlbiBmblJlbmRlciBpcyBjYWxsZWQpLgoJICogIEB0eXBlIGZ1bmN0aW9uCgkgKiAgQHBhcmFtIHtlbGVtZW50fSBuVGQgVGhlIFREIG5vZGUgdGhhdCBoYXMgYmVlbiBjcmVhdGVkCgkgKiAgQHBhcmFtIHsqfSBzRGF0YSBUaGUgRGF0YSBmb3IgdGhlIGNlbGwKCSAqICBAcGFyYW0ge2FycmF5fG9iamVjdH0gb0RhdGEgVGhlIGRhdGEgZm9yIHRoZSB3aG9sZSByb3cKCSAqICBAcGFyYW0ge2ludH0gaVJvdyBUaGUgcm93IGluZGV4IGZvciB0aGUgYW9EYXRhIGRhdGEgc3RvcmUKCSAqICBAZGVmYXVsdCBudWxsCgkgKi8KCSJmbkNyZWF0ZWRDZWxsIjogbnVsbCwKCQoJLyoqCgkgKiBGdW5jdGlvbiB0byBnZXQgZGF0YSBmcm9tIGEgY2VsbCBpbiBhIGNvbHVtbi4gWW91IHNob3VsZCA8Yj5uZXZlcjwvYj4KCSAqIGFjY2VzcyBkYXRhIGRpcmVjdGx5IHRocm91Z2ggX2FEYXRhIGludGVybmFsbHkgaW4gRGF0YVRhYmxlcyAtIGFsd2F5cyB1c2UKCSAqIHRoZSBtZXRob2QgYXR0YWNoZWQgdG8gdGhpcyBwcm9wZXJ0eS4gSXQgYWxsb3dzIG1EYXRhIHRvIGZ1bmN0aW9uIGFzCgkgKiByZXF1aXJlZC4gVGhpcyBmdW5jdGlvbiBpcyBhdXRvbWF0aWNhbGx5IGFzc2lnbmVkIGJ5IHRoZSBjb2x1bW4gCgkgKiBpbml0aWFsaXNhdGlvbiBtZXRob2QKCSAqICBAdHlwZSBmdW5jdGlvbgoJICogIEBwYXJhbSB7YXJyYXl8b2JqZWN0fSBvRGF0YSBUaGUgZGF0YSBhcnJheS9vYmplY3QgZm9yIHRoZSBhcnJheSAKCSAqICAgIChpLmUuIGFvRGF0YVtdLl9hRGF0YSkKCSAqICBAcGFyYW0ge3N0cmluZ30gc1NwZWNpZmljIFRoZSBzcGVjaWZpYyBkYXRhIHR5cGUgeW91IHdhbnQgdG8gZ2V0IC0gCgkgKiAgICAnZGlzcGxheScsICd0eXBlJyAnZmlsdGVyJyAnc29ydCcKCSAqICBAcmV0dXJucyB7Kn0gVGhlIGRhdGEgZm9yIHRoZSBjZWxsIGZyb20gdGhlIGdpdmVuIHJvdydzIGRhdGEKCSAqICBAZGVmYXVsdCBudWxsCgkgKi8KCSJmbkdldERhdGEiOiBudWxsLAoJCgkvKioKCSAqIEN1c3RvbSBkaXNwbGF5IGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgZm9yIHRoZSBkaXNwbGF5IG9mIGVhY2ggY2VsbCAKCSAqIGluIHRoaXMgY29sdW1uLgoJICogIEB0eXBlIGZ1bmN0aW9uCgkgKiAgQHBhcmFtIHtvYmplY3R9IG8gT2JqZWN0IHdpdGggdGhlIGZvbGxvd2luZyBwYXJhbWV0ZXJzOgoJICogIEBwYXJhbSB7aW50fSAgICBvLmlEYXRhUm93IFRoZSByb3cgaW4gYW9EYXRhCgkgKiAgQHBhcmFtIHtpbnR9ICAgIG8uaURhdGFDb2x1bW4gVGhlIGNvbHVtbiBpbiBxdWVzdGlvbgoJICogIEBwYXJhbSB7YXJyYXl9ICBvLmFEYXRhIFRoZSBkYXRhIGZvciB0aGUgcm93IGluIHF1ZXN0aW9uCgkgKiAgQHBhcmFtIHtvYmplY3R9IG8ub1NldHRpbmdzIFRoZSBzZXR0aW5ncyBvYmplY3QgZm9yIHRoaXMgRGF0YVRhYmxlcyBpbnN0YW5jZQoJICogIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBzdHJpbmcgeW91IHdoaWNoIHRvIHVzZSBpbiB0aGUgZGlzcGxheQoJICogIEBkZWZhdWx0IG51bGwKCSAqLwoJImZuUmVuZGVyIjogbnVsbCwKCQoJLyoqCgkgKiBGdW5jdGlvbiB0byBzZXQgZGF0YSBmb3IgYSBjZWxsIGluIHRoZSBjb2x1bW4uIFlvdSBzaG91bGQgPGI+bmV2ZXI8L2I+IAoJICogc2V0IHRoZSBkYXRhIGRpcmVjdGx5IHRvIF9hRGF0YSBpbnRlcm5hbGx5IGluIERhdGFUYWJsZXMgLSBhbHdheXMgdXNlCgkgKiB0aGlzIG1ldGhvZC4gSXQgYWxsb3dzIG1EYXRhIHRvIGZ1bmN0aW9uIGFzIHJlcXVpcmVkLiBUaGlzIGZ1bmN0aW9uCgkgKiBpcyBhdXRvbWF0aWNhbGx5IGFzc2lnbmVkIGJ5IHRoZSBjb2x1bW4gaW5pdGlhbGlzYXRpb24gbWV0aG9kCgkgKiAgQHR5cGUgZnVuY3Rpb24KCSAqICBAcGFyYW0ge2FycmF5fG9iamVjdH0gb0RhdGEgVGhlIGRhdGEgYXJyYXkvb2JqZWN0IGZvciB0aGUgYXJyYXkgCgkgKiAgICAoaS5lLiBhb0RhdGFbXS5fYURhdGEpCgkgKiAgQHBhcmFtIHsqfSBzVmFsdWUgVmFsdWUgdG8gc2V0CgkgKiAgQGRlZmF1bHQgbnVsbAoJICovCgkiZm5TZXREYXRhIjogbnVsbCwKCQoJLyoqCgkgKiBQcm9wZXJ0eSB0byByZWFkIHRoZSB2YWx1ZSBmb3IgdGhlIGNlbGxzIGluIHRoZSBjb2x1bW4gZnJvbSB0aGUgZGF0YSAKCSAqIHNvdXJjZSBhcnJheSAvIG9iamVjdC4gSWYgbnVsbCwgdGhlbiB0aGUgZGVmYXVsdCBjb250ZW50IGlzIHVzZWQsIGlmIGEKCSAqIGZ1bmN0aW9uIGlzIGdpdmVuIHRoZW4gdGhlIHJldHVybiBmcm9tIHRoZSBmdW5jdGlvbiBpcyB1c2VkLgoJICogIEB0eXBlIGZ1bmN0aW9ufGludHxzdHJpbmd8bnVsbAoJICogIEBkZWZhdWx0IG51bGwKCSAqLwoJIm1EYXRhIjogbnVsbCwKCQoJLyoqCgkgKiBQYXJ0bmVyIHByb3BlcnR5IHRvIG1EYXRhIHdoaWNoIGlzIHVzZWQgKG9ubHkgd2hlbiBkZWZpbmVkKSB0byBnZXQKCSAqIHRoZSBkYXRhIC0gaS5lLiBpdCBpcyBiYXNpY2FsbHkgdGhlIHNhbWUgYXMgbURhdGEsIGJ1dCB3aXRob3V0IHRoZQoJICogJ3NldCcgb3B0aW9uLCBhbmQgYWxzbyB0aGUgZGF0YSBmZWQgdG8gaXQgaXMgdGhlIHJlc3VsdCBmcm9tIG1EYXRhLgoJICogVGhpcyBpcyB0aGUgcmVuZGVyaW5nIG1ldGhvZCB0byBtYXRjaCB0aGUgZGF0YSBtZXRob2Qgb2YgbURhdGEuCgkgKiAgQHR5cGUgZnVuY3Rpb258aW50fHN0cmluZ3xudWxsCgkgKiAgQGRlZmF1bHQgbnVsbAoJICovCgkibVJlbmRlciI6IG51bGwsCgkKCS8qKgoJICogVW5pcXVlIGhlYWRlciBUSC9URCBlbGVtZW50IGZvciB0aGlzIGNvbHVtbiAtIHRoaXMgaXMgd2hhdCB0aGUgc29ydGluZwoJICogbGlzdGVuZXIgaXMgYXR0YWNoZWQgdG8gKGlmIHNvcnRpbmcgaXMgZW5hYmxlZC4pCgkgKiAgQHR5cGUgbm9kZQoJICogIEBkZWZhdWx0IG51bGwKCSAqLwoJIm5UaCI6IG51bGwsCgkKCS8qKgoJICogVW5pcXVlIGZvb3RlciBUSC9URCBlbGVtZW50IGZvciB0aGlzIGNvbHVtbiAoaWYgdGhlcmUgaXMgb25lKS4gTm90IHVzZWQgCgkgKiBpbiBEYXRhVGFibGVzIGFzIHN1Y2gsIGJ1dCBjYW4gYmUgdXNlZCBmb3IgcGx1Zy1pbnMgdG8gcmVmZXJlbmNlIHRoZSAKCSAqIGZvb3RlciBmb3IgZWFjaCBjb2x1bW4uCgkgKiAgQHR5cGUgbm9kZQoJICogIEBkZWZhdWx0IG51bGwKCSAqLwoJIm5UZiI6IG51bGwsCgkKCS8qKgoJICogVGhlIGNsYXNzIHRvIGFwcGx5IHRvIGFsbCBURCBlbGVtZW50cyBpbiB0aGUgdGFibGUncyBUQk9EWSBmb3IgdGhlIGNvbHVtbgoJICogIEB0eXBlIHN0cmluZwoJICogIEBkZWZhdWx0IG51bGwKCSAqLwoJInNDbGFzcyI6IG51bGwsCgkKCS8qKgoJICogV2hlbiBEYXRhVGFibGVzIGNhbGN1bGF0ZXMgdGhlIGNvbHVtbiB3aWR0aHMgdG8gYXNzaWduIHRvIGVhY2ggY29sdW1uLAoJICogaXQgZmluZHMgdGhlIGxvbmdlc3Qgc3RyaW5nIGluIGVhY2ggY29sdW1uIGFuZCB0aGVuIGNvbnN0cnVjdHMgYQoJICogdGVtcG9yYXJ5IHRhYmxlIGFuZCByZWFkcyB0aGUgd2lkdGhzIGZyb20gdGhhdC4gVGhlIHByb2JsZW0gd2l0aCB0aGlzCgkgKiBpcyB0aGF0ICJtbW0iIGlzIG11Y2ggd2lkZXIgdGhlbiAiaWlpaSIsIGJ1dCB0aGUgbGF0dGVyIGlzIGEgbG9uZ2VyIAoJICogc3RyaW5nIC0gdGh1cyB0aGUgY2FsY3VsYXRpb24gY2FuIGdvIHdyb25nIChkb2luZyBpdCBwcm9wZXJseSBhbmQgcHV0dGluZwoJICogaXQgaW50byBhbiBET00gb2JqZWN0IGFuZCBtZWFzdXJpbmcgdGhhdCBpcyBob3JyaWJseSghKSBzbG93KS4gVGh1cyBhcwoJICogYSAid29yayBhcm91bmQiIHdlIHByb3ZpZGUgdGhpcyBvcHRpb24uIEl0IHdpbGwgYXBwZW5kIGl0cyB2YWx1ZSB0byB0aGUKCSAqIHRleHQgdGhhdCBpcyBmb3VuZCB0byBiZSB0aGUgbG9uZ2VzdCBzdHJpbmcgZm9yIHRoZSBjb2x1bW4gLSBpLmUuIHBhZGRpbmcuCgkgKiAgQHR5cGUgc3RyaW5nCgkgKi8KCSJzQ29udGVudFBhZGRpbmciOiBudWxsLAoJCgkvKioKCSAqIEFsbG93cyBhIGRlZmF1bHQgdmFsdWUgdG8gYmUgZ2l2ZW4gZm9yIGEgY29sdW1uJ3MgZGF0YSwgYW5kIHdpbGwgYmUgdXNlZAoJICogd2hlbmV2ZXIgYSBudWxsIGRhdGEgc291cmNlIGlzIGVuY291bnRlcmVkICh0aGlzIGNhbiBiZSBiZWNhdXNlIG1EYXRhCgkgKiBpcyBzZXQgdG8gbnVsbCwgb3IgYmVjYXVzZSB0aGUgZGF0YSBzb3VyY2UgaXRzZWxmIGlzIG51bGwpLgoJICogIEB0eXBlIHN0cmluZwoJICogIEBkZWZhdWx0IG51bGwKCSAqLwoJInNEZWZhdWx0Q29udGVudCI6IG51bGwsCgkKCS8qKgoJICogTmFtZSBmb3IgdGhlIGNvbHVtbiwgYWxsb3dpbmcgcmVmZXJlbmNlIHRvIHRoZSBjb2x1bW4gYnkgbmFtZSBhcyB3ZWxsIGFzCgkgKiBieSBpbmRleCAobmVlZHMgYSBsb29rdXAgdG8gd29yayBieSBuYW1lKS4KCSAqICBAdHlwZSBzdHJpbmcKCSAqLwoJInNOYW1lIjogbnVsbCwKCQoJLyoqCgkgKiBDdXN0b20gc29ydGluZyBkYXRhIHR5cGUgLSBkZWZpbmVzIHdoaWNoIG9mIHRoZSBhdmFpbGFibGUgcGx1Zy1pbnMgaW4KCSAqIGFmblNvcnREYXRhIHRoZSBjdXN0b20gc29ydGluZyB3aWxsIHVzZSAtIGlmIGFueSBpcyBkZWZpbmVkLgoJICogIEB0eXBlIHN0cmluZwoJICogIEBkZWZhdWx0IHN0ZAoJICovCgkic1NvcnREYXRhVHlwZSI6ICdzdGQnLAoJCgkvKioKCSAqIENsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGhlYWRlciBlbGVtZW50IHdoZW4gc29ydGluZyBvbiB0aGlzIGNvbHVtbgoJICogIEB0eXBlIHN0cmluZwoJICogIEBkZWZhdWx0IG51bGwKCSAqLwoJInNTb3J0aW5nQ2xhc3MiOiBudWxsLAoJCgkvKioKCSAqIENsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGhlYWRlciBlbGVtZW50IHdoZW4gc29ydGluZyBvbiB0aGlzIGNvbHVtbiAtCgkgKiB3aGVuIGpRdWVyeSBVSSB0aGVtaW5nIGlzIHVzZWQuCgkgKiAgQHR5cGUgc3RyaW5nCgkgKiAgQGRlZmF1bHQgbnVsbAoJICovCgkic1NvcnRpbmdDbGFzc0pVSSI6IG51bGwsCgkKCS8qKgoJICogVGl0bGUgb2YgdGhlIGNvbHVtbiAtIHdoYXQgaXMgc2VlbiBpbiB0aGUgVEggZWxlbWVudCAoblRoKS4KCSAqICBAdHlwZSBzdHJpbmcKCSAqLwoJInNUaXRsZSI6IG51bGwsCgkKCS8qKgoJICogQ29sdW1uIHNvcnRpbmcgYW5kIGZpbHRlcmluZyB0eXBlCgkgKiAgQHR5cGUgc3RyaW5nCgkgKiAgQGRlZmF1bHQgbnVsbAoJICovCgkic1R5cGUiOiBudWxsLAoJCgkvKioKCSAqIFdpZHRoIG9mIHRoZSBjb2x1bW4KCSAqICBAdHlwZSBzdHJpbmcKCSAqICBAZGVmYXVsdCBudWxsCgkgKi8KCSJzV2lkdGgiOiBudWxsLAoJCgkvKioKCSAqIFdpZHRoIG9mIHRoZSBjb2x1bW4gd2hlbiBpdCB3YXMgZmlyc3QgImVuY291bnRlcmVkIgoJICogIEB0eXBlIHN0cmluZwoJICogIEBkZWZhdWx0IG51bGwKCSAqLwoJInNXaWR0aE9yaWciOiBudWxsCn07Cgo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/model/model.defaults.columns.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CgovKioKICogQ29sdW1uIG9wdGlvbnMgdGhhdCBjYW4gYmUgZ2l2ZW4gdG8gRGF0YVRhYmxlcyBhdCBpbml0aWFsaXNhdGlvbiB0aW1lLgogKiAgQG5hbWVzcGFjZQogKi8KRGF0YVRhYmxlLmRlZmF1bHRzLmNvbHVtbnMgPSB7CgkvKioKCSAqIEFsbG93cyBhIGNvbHVtbidzIHNvcnRpbmcgdG8gdGFrZSBtdWx0aXBsZSBjb2x1bW5zIGludG8gYWNjb3VudCB3aGVuIAoJICogZG9pbmcgYSBzb3J0LiBGb3IgZXhhbXBsZSBmaXJzdCBuYW1lIC8gbGFzdCBuYW1lIGNvbHVtbnMgbWFrZSBzZW5zZSB0byAKCSAqIGRvIGEgbXVsdGktY29sdW1uIHNvcnQgb3ZlciB0aGUgdHdvIGNvbHVtbnMuCgkgKiAgQHR5cGUgYXJyYXkKCSAqICBAZGVmYXVsdCBudWxsIDxpPlRha2VzIHRoZSB2YWx1ZSBvZiB0aGUgY29sdW1uIGluZGV4IGF1dG9tYXRpY2FsbHk8L2k+CgkgKiAgQGR0b3B0IENvbHVtbnMKCSAqIAoJICogIEBleGFtcGxlCgkgKiAgICAvLyBVc2luZyBhb0NvbHVtbkRlZnMKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiYW9Db2x1bW5EZWZzIjogWwoJICogICAgICAgICAgeyAiYURhdGFTb3J0IjogWyAwLCAxIF0sICJhVGFyZ2V0cyI6IFsgMCBdIH0sCgkgKiAgICAgICAgICB7ICJhRGF0YVNvcnQiOiBbIDEsIDAgXSwgImFUYXJnZXRzIjogWyAxIF0gfSwKCSAqICAgICAgICAgIHsgImFEYXRhU29ydCI6IFsgMiwgMywgNCBdLCAiYVRhcmdldHMiOiBbIDIgXSB9CgkgKiAgICAgICAgXQoJICogICAgICB9ICk7CgkgKiAgICB9ICk7CgkgKiAgICAKCSAqICBAZXhhbXBsZQoJICogICAgLy8gVXNpbmcgYW9Db2x1bW5zCgkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgICAgICAgImFvQ29sdW1ucyI6IFsKCSAqICAgICAgICAgIHsgImFEYXRhU29ydCI6IFsgMCwgMSBdIH0sCgkgKiAgICAgICAgICB7ICJhRGF0YVNvcnQiOiBbIDEsIDAgXSB9LAoJICogICAgICAgICAgeyAiYURhdGFTb3J0IjogWyAyLCAzLCA0IF0gfSwKCSAqICAgICAgICAgIG51bGwsCgkgKiAgICAgICAgICBudWxsCgkgKiAgICAgICAgXQoJICogICAgICB9ICk7CgkgKiAgICB9ICk7CgkgKi8KCSJhRGF0YVNvcnQiOiBudWxsLAoKCgkvKioKCSAqIFlvdSBjYW4gY29udHJvbCB0aGUgZGVmYXVsdCBzb3J0aW5nIGRpcmVjdGlvbiwgYW5kIGV2ZW4gYWx0ZXIgdGhlIGJlaGF2aW91cgoJICogb2YgdGhlIHNvcnQgaGFuZGxlciAoaS5lLiBvbmx5IGFsbG93IGFzY2VuZGluZyBzb3J0aW5nIGV0YykgdXNpbmcgdGhpcwoJICogcGFyYW1ldGVyLgoJICogIEB0eXBlIGFycmF5CgkgKiAgQGRlZmF1bHQgWyAnYXNjJywgJ2Rlc2MnIF0KCSAqICBAZHRvcHQgQ29sdW1ucwoJICogCgkgKiAgQGV4YW1wbGUKCSAqICAgIC8vIFVzaW5nIGFvQ29sdW1uRGVmcwoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogICAgICAgICJhb0NvbHVtbkRlZnMiOiBbCgkgKiAgICAgICAgICB7ICJhc1NvcnRpbmciOiBbICJhc2MiIF0sICJhVGFyZ2V0cyI6IFsgMSBdIH0sCgkgKiAgICAgICAgICB7ICJhc1NvcnRpbmciOiBbICJkZXNjIiwgImFzYyIsICJhc2MiIF0sICJhVGFyZ2V0cyI6IFsgMiBdIH0sCgkgKiAgICAgICAgICB7ICJhc1NvcnRpbmciOiBbICJkZXNjIiBdLCAiYVRhcmdldHMiOiBbIDMgXSB9CgkgKiAgICAgICAgXQoJICogICAgICB9ICk7CgkgKiAgICB9ICk7CgkgKiAgICAKCSAqICBAZXhhbXBsZQoJICogICAgLy8gVXNpbmcgYW9Db2x1bW5zCgkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgICAgICAgImFvQ29sdW1ucyI6IFsKCSAqICAgICAgICAgIG51bGwsCgkgKiAgICAgICAgICB7ICJhc1NvcnRpbmciOiBbICJhc2MiIF0gfSwKCSAqICAgICAgICAgIHsgImFzU29ydGluZyI6IFsgImRlc2MiLCAiYXNjIiwgImFzYyIgXSB9LAoJICogICAgICAgICAgeyAiYXNTb3J0aW5nIjogWyAiZGVzYyIgXSB9LAoJICogICAgICAgICAgbnVsbAoJICogICAgICAgIF0KCSAqICAgICAgfSApOwoJICogICAgfSApOwoJICovCgkiYXNTb3J0aW5nIjogWyAnYXNjJywgJ2Rlc2MnIF0sCgoKCS8qKgoJICogRW5hYmxlIG9yIGRpc2FibGUgZmlsdGVyaW5nIG9uIHRoZSBkYXRhIGluIHRoaXMgY29sdW1uLgoJICogIEB0eXBlIGJvb2xlYW4KCSAqICBAZGVmYXVsdCB0cnVlCgkgKiAgQGR0b3B0IENvbHVtbnMKCSAqIAoJICogIEBleGFtcGxlCgkgKiAgICAvLyBVc2luZyBhb0NvbHVtbkRlZnMKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiYW9Db2x1bW5EZWZzIjogWyAKCSAqICAgICAgICAgIHsgImJTZWFyY2hhYmxlIjogZmFsc2UsICJhVGFyZ2V0cyI6IFsgMCBdIH0KCSAqICAgICAgICBdIH0gKTsKCSAqICAgIH0gKTsKCSAqICAgIAoJICogIEBleGFtcGxlCgkgKiAgICAvLyBVc2luZyBhb0NvbHVtbnMKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiYW9Db2x1bW5zIjogWyAKCSAqICAgICAgICAgIHsgImJTZWFyY2hhYmxlIjogZmFsc2UgfSwKCSAqICAgICAgICAgIG51bGwsCgkgKiAgICAgICAgICBudWxsLAoJICogICAgICAgICAgbnVsbCwKCSAqICAgICAgICAgIG51bGwKCSAqICAgICAgICBdIH0gKTsKCSAqICAgIH0gKTsKCSAqLwoJImJTZWFyY2hhYmxlIjogdHJ1ZSwKCgoJLyoqCgkgKiBFbmFibGUgb3IgZGlzYWJsZSBzb3J0aW5nIG9uIHRoaXMgY29sdW1uLgoJICogIEB0eXBlIGJvb2xlYW4KCSAqICBAZGVmYXVsdCB0cnVlCgkgKiAgQGR0b3B0IENvbHVtbnMKCSAqIAoJICogIEBleGFtcGxlCgkgKiAgICAvLyBVc2luZyBhb0NvbHVtbkRlZnMKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiYW9Db2x1bW5EZWZzIjogWyAKCSAqICAgICAgICAgIHsgImJTb3J0YWJsZSI6IGZhbHNlLCAiYVRhcmdldHMiOiBbIDAgXSB9CgkgKiAgICAgICAgXSB9ICk7CgkgKiAgICB9ICk7CgkgKiAgICAKCSAqICBAZXhhbXBsZQoJICogICAgLy8gVXNpbmcgYW9Db2x1bW5zCgkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgICAgICAgImFvQ29sdW1ucyI6IFsgCgkgKiAgICAgICAgICB7ICJiU29ydGFibGUiOiBmYWxzZSB9LAoJICogICAgICAgICAgbnVsbCwKCSAqICAgICAgICAgIG51bGwsCgkgKiAgICAgICAgICBudWxsLAoJICogICAgICAgICAgbnVsbAoJICogICAgICAgIF0gfSApOwoJICogICAgfSApOwoJICovCgkiYlNvcnRhYmxlIjogdHJ1ZSwKCgoJLyoqCgkgKiBXaGVuIHVzaW5nIGZuUmVuZGVyKCkgZm9yIGEgY29sdW1uLCB5b3UgbWF5IHdpc2ggdG8gdXNlIHRoZSBvcmlnaW5hbCBkYXRhCgkgKiAoYmVmb3JlIHJlbmRlcmluZykgZm9yIHNvcnRpbmcgYW5kIGZpbHRlcmluZyAodGhlIGRlZmF1bHQgaXMgdG8gdXNlZCB0aGUKCSAqIHJlbmRlcmVkIGRhdGEgdGhhdCB0aGUgdXNlciBjYW4gc2VlKS4gVGhpcyBtYXkgYmUgdXNlZnVsIGZvciBkYXRlcyBldGMuCgkgKiAKCSAqICpOT1RFKiBUaGlzIHByb3BlcnR5IGlzIG5vdyBkZXByZWNhdGVkLCBhbmQgaXQgaXMgc3VnZ2VzdGVkIHRoYXQgeW91IHVzZQoJICogbURhdGEgYW5kIC8gb3IgbVJlbmRlciB0byByZW5kZXIgZGF0YSBmb3IgdGhlIERhdGFUYWJsZS4KCSAqICBAdHlwZSBib29sZWFuCgkgKiAgQGRlZmF1bHQgdHJ1ZQoJICogIEBkdG9wdCBDb2x1bW5zCgkgKiAgQGRlcHJlY2F0ZWQKCSAqIAoJICogIEBleGFtcGxlCgkgKiAgICAvLyBVc2luZyBhb0NvbHVtbkRlZnMKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiYW9Db2x1bW5EZWZzIjogWyAKCSAqICAgICAgICAgIHsKCSAqICAgICAgICAgICAgImZuUmVuZGVyIjogZnVuY3Rpb24gKCBvT2JqICkgewoJICogICAgICAgICAgICAgIHJldHVybiBvT2JqLmFEYXRhWzBdICsnICcrIG9PYmouYURhdGFbM107CgkgKiAgICAgICAgICAgIH0sCgkgKiAgICAgICAgICAgICJiVXNlUmVuZGVyZWQiOiBmYWxzZSwKCSAqICAgICAgICAgICAgImFUYXJnZXRzIjogWyAwIF0KCSAqICAgICAgICAgIH0KCSAqICAgICAgICBdCgkgKiAgICAgIH0gKTsKCSAqICAgIH0gKTsKCSAqICAgIAoJICogIEBleGFtcGxlCgkgKiAgICAvLyBVc2luZyBhb0NvbHVtbnMKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiYW9Db2x1bW5zIjogWyAKCSAqICAgICAgICAgIHsKCSAqICAgICAgICAgICAgImZuUmVuZGVyIjogZnVuY3Rpb24gKCBvT2JqICkgewoJICogICAgICAgICAgICAgIHJldHVybiBvT2JqLmFEYXRhWzBdICsnICcrIG9PYmouYURhdGFbM107CgkgKiAgICAgICAgICAgIH0sCgkgKiAgICAgICAgICAgICJiVXNlUmVuZGVyZWQiOiBmYWxzZQoJICogICAgICAgICAgfSwKCSAqICAgICAgICAgIG51bGwsCgkgKiAgICAgICAgICBudWxsLAoJICogICAgICAgICAgbnVsbCwKCSAqICAgICAgICAgIG51bGwKCSAqICAgICAgICBdCgkgKiAgICAgIH0gKTsKCSAqICAgIH0gKTsKCSAqLwoJImJVc2VSZW5kZXJlZCI6IHRydWUsCgoKCS8qKgoJICogRW5hYmxlIG9yIGRpc2FibGUgdGhlIGRpc3BsYXkgb2YgdGhpcyBjb2x1bW4uCgkgKiAgQHR5cGUgYm9vbGVhbgoJICogIEBkZWZhdWx0IHRydWUKCSAqICBAZHRvcHQgQ29sdW1ucwoJICogCgkgKiAgQGV4YW1wbGUKCSAqICAgIC8vIFVzaW5nIGFvQ29sdW1uRGVmcwoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogICAgICAgICJhb0NvbHVtbkRlZnMiOiBbIAoJICogICAgICAgICAgeyAiYlZpc2libGUiOiBmYWxzZSwgImFUYXJnZXRzIjogWyAwIF0gfQoJICogICAgICAgIF0gfSApOwoJICogICAgfSApOwoJICogICAgCgkgKiAgQGV4YW1wbGUKCSAqICAgIC8vIFVzaW5nIGFvQ29sdW1ucwoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogICAgICAgICJhb0NvbHVtbnMiOiBbIAoJICogICAgICAgICAgeyAiYlZpc2libGUiOiBmYWxzZSB9LAoJICogICAgICAgICAgbnVsbCwKCSAqICAgICAgICAgIG51bGwsCgkgKiAgICAgICAgICBudWxsLAoJICogICAgICAgICAgbnVsbAoJICogICAgICAgIF0gfSApOwoJICogICAgfSApOwoJICovCgkiYlZpc2libGUiOiB0cnVlLAoJCgkKCS8qKgoJICogRGV2ZWxvcGVyIGRlZmluYWJsZSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB3aGVuZXZlciBhIGNlbGwgaXMgY3JlYXRlZCAoQWpheCBzb3VyY2UsCgkgKiBldGMpIG9yIHByb2Nlc3NlZCBmb3IgaW5wdXQgKERPTSBzb3VyY2UpLiBUaGlzIGNhbiBiZSB1c2VkIGFzIGEgY29tcGxpbWVudCB0byBmblJlbmRlcgoJICogYWxsb3dpbmcgeW91IHRvIG1vZGlmeSB0aGUgRE9NIGVsZW1lbnQgKGFkZCBiYWNrZ3JvdW5kIGNvbG91ciBmb3IgZXhhbXBsZSkgd2hlbiB0aGUKCSAqIGVsZW1lbnQgaXMgYXZhaWxhYmxlIChzaW5jZSBpdCBpcyBub3Qgd2hlbiBmblJlbmRlciBpcyBjYWxsZWQpLgoJICogIEB0eXBlIGZ1bmN0aW9uCgkgKiAgQHBhcmFtIHtlbGVtZW50fSBuVGQgVGhlIFREIG5vZGUgdGhhdCBoYXMgYmVlbiBjcmVhdGVkCgkgKiAgQHBhcmFtIHsqfSBzRGF0YSBUaGUgRGF0YSBmb3IgdGhlIGNlbGwKCSAqICBAcGFyYW0ge2FycmF5fG9iamVjdH0gb0RhdGEgVGhlIGRhdGEgZm9yIHRoZSB3aG9sZSByb3cKCSAqICBAcGFyYW0ge2ludH0gaVJvdyBUaGUgcm93IGluZGV4IGZvciB0aGUgYW9EYXRhIGRhdGEgc3RvcmUKCSAqICBAcGFyYW0ge2ludH0gaUNvbCBUaGUgY29sdW1uIGluZGV4IGZvciBhb0NvbHVtbnMKCSAqICBAZHRvcHQgQ29sdW1ucwoJICogCgkgKiAgQGV4YW1wbGUKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiYW9Db2x1bW5EZWZzIjogWyB7CgkgKiAgICAgICAgICAiYVRhcmdldHMiOiBbM10sCgkgKiAgICAgICAgICAiZm5DcmVhdGVkQ2VsbCI6IGZ1bmN0aW9uIChuVGQsIHNEYXRhLCBvRGF0YSwgaVJvdywgaUNvbCkgewoJICogICAgICAgICAgICBpZiAoIHNEYXRhID09ICIxLjciICkgewoJICogICAgICAgICAgICAgICQoblRkKS5jc3MoJ2NvbG9yJywgJ2JsdWUnKQoJICogICAgICAgICAgICB9CgkgKiAgICAgICAgICB9CgkgKiAgICAgICAgfSBdCgkgKiAgICAgIH0pOwoJICogICAgfSApOwoJICovCgkiZm5DcmVhdGVkQ2VsbCI6IG51bGwsCgoKCS8qKgoJICogQ3VzdG9tIGRpc3BsYXkgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCBmb3IgdGhlIGRpc3BsYXkgb2YgZWFjaCBjZWxsIGluCgkgKiB0aGlzIGNvbHVtbi4KCSAqICBAdHlwZSBmdW5jdGlvbgoJICogIEBwYXJhbSB7b2JqZWN0fSBvIE9iamVjdCB3aXRoIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVyczoKCSAqICBAcGFyYW0ge2ludH0gICAgby5pRGF0YVJvdyBUaGUgcm93IGluIGFvRGF0YQoJICogIEBwYXJhbSB7aW50fSAgICBvLmlEYXRhQ29sdW1uIFRoZSBjb2x1bW4gaW4gcXVlc3Rpb24KCSAqICBAcGFyYW0ge2FycmF5fSAgby5hRGF0YSBUaGUgZGF0YSBmb3IgdGhlIHJvdyBpbiBxdWVzdGlvbgoJICogIEBwYXJhbSB7b2JqZWN0fSBvLm9TZXR0aW5ncyBUaGUgc2V0dGluZ3Mgb2JqZWN0IGZvciB0aGlzIERhdGFUYWJsZXMgaW5zdGFuY2UKCSAqICBAcGFyYW0ge29iamVjdH0gby5tRGF0YVByb3AgVGhlIGRhdGEgcHJvcGVydHkgdXNlZCBmb3IgdGhpcyBjb2x1bW4KCSAqICBAcGFyYW0geyp9ICAgICAgdmFsIFRoZSBjdXJyZW50IGNlbGwgdmFsdWUKCSAqICBAcmV0dXJucyB7c3RyaW5nfSBUaGUgc3RyaW5nIHlvdSB3aGljaCB0byB1c2UgaW4gdGhlIGRpc3BsYXkKCSAqICBAZHRvcHQgQ29sdW1ucwoJICogCgkgKiAgQGV4YW1wbGUKCSAqICAgIC8vIFVzaW5nIGFvQ29sdW1uRGVmcwoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogICAgICAgICJhb0NvbHVtbkRlZnMiOiBbIAoJICogICAgICAgICAgewoJICogICAgICAgICAgICAiZm5SZW5kZXIiOiBmdW5jdGlvbiAoIG8sIHZhbCApIHsKCSAqICAgICAgICAgICAgICByZXR1cm4gby5hRGF0YVswXSArJyAnKyBvLmFEYXRhWzNdOwoJICogICAgICAgICAgICB9LAoJICogICAgICAgICAgICAiYVRhcmdldHMiOiBbIDAgXQoJICogICAgICAgICAgfQoJICogICAgICAgIF0KCSAqICAgICAgfSApOwoJICogICAgfSApOwoJICogICAgCgkgKiAgQGV4YW1wbGUKCSAqICAgIC8vIFVzaW5nIGFvQ29sdW1ucwoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogICAgICAgICJhb0NvbHVtbnMiOiBbIAoJICogICAgICAgICAgeyAiZm5SZW5kZXIiOiBmdW5jdGlvbiAoIG8sIHZhbCApIHsKCSAqICAgICAgICAgICAgcmV0dXJuIG8uYURhdGFbMF0gKycgJysgby5hRGF0YVszXTsKCSAqICAgICAgICAgIH0gfSwKCSAqICAgICAgICAgIG51bGwsCgkgKiAgICAgICAgICBudWxsLAoJICogICAgICAgICAgbnVsbCwKCSAqICAgICAgICAgIG51bGwKCSAqICAgICAgICBdCgkgKiAgICAgIH0gKTsKCSAqICAgIH0gKTsKCSAqLwoJImZuUmVuZGVyIjogbnVsbCwKCgoJLyoqCgkgKiBUaGUgY29sdW1uIGluZGV4IChzdGFydGluZyBmcm9tIDAhKSB0aGF0IHlvdSB3aXNoIGEgc29ydCB0byBiZSBwZXJmb3JtZWQKCSAqIHVwb24gd2hlbiB0aGlzIGNvbHVtbiBpcyBzZWxlY3RlZCBmb3Igc29ydGluZy4gVGhpcyBjYW4gYmUgdXNlZCBmb3Igc29ydGluZwoJICogb24gaGlkZGVuIGNvbHVtbnMgZm9yIGV4YW1wbGUuCgkgKiAgQHR5cGUgaW50CgkgKiAgQGRlZmF1bHQgLTEgPGk+VXNlIGF1dG9tYXRpY2FsbHkgY2FsY3VsYXRlZCBjb2x1bW4gaW5kZXg8L2k+CgkgKiAgQGR0b3B0IENvbHVtbnMKCSAqIAoJICogIEBleGFtcGxlCgkgKiAgICAvLyBVc2luZyBhb0NvbHVtbkRlZnMKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiYW9Db2x1bW5EZWZzIjogWyAKCSAqICAgICAgICAgIHsgImlEYXRhU29ydCI6IDEsICJhVGFyZ2V0cyI6IFsgMCBdIH0KCSAqICAgICAgICBdCgkgKiAgICAgIH0gKTsKCSAqICAgIH0gKTsKCSAqICAgIAoJICogIEBleGFtcGxlCgkgKiAgICAvLyBVc2luZyBhb0NvbHVtbnMKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiYW9Db2x1bW5zIjogWyAKCSAqICAgICAgICAgIHsgImlEYXRhU29ydCI6IDEgfSwKCSAqICAgICAgICAgIG51bGwsCgkgKiAgICAgICAgICBudWxsLAoJICogICAgICAgICAgbnVsbCwKCSAqICAgICAgICAgIG51bGwKCSAqICAgICAgICBdCgkgKiAgICAgIH0gKTsKCSAqICAgIH0gKTsKCSAqLwoJImlEYXRhU29ydCI6IC0xLAoKCgkvKioKCSAqIFRoaXMgcGFyYW1ldGVyIGhhcyBiZWVuIHJlcGxhY2VkIGJ5IG1EYXRhIGluIERhdGFUYWJsZXMgdG8gZW5zdXJlIG5hbWluZwoJICogY29uc2lzdGVuY3kuIG1EYXRhUHJvcCBjYW4gc3RpbGwgYmUgdXNlZCwgYXMgdGhlcmUgaXMgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkKCSAqIGluIERhdGFUYWJsZXMgZm9yIHRoaXMgb3B0aW9uLCBidXQgaXQgaXMgc3Ryb25nbHkgcmVjb21tZW5kZWQgdGhhdCB5b3UgdXNlCgkgKiBtRGF0YSBpbiBwcmVmZXJlbmNlIHRvIG1EYXRhUHJvcC4KCSAqICBAbmFtZSBEYXRhVGFibGUuZGVmYXVsdHMuY29sdW1ucy5tRGF0YVByb3AKCSAqLwoKCgkvKioKCSAqIFRoaXMgcHJvcGVydHkgY2FuIGJlIHVzZWQgdG8gcmVhZCBkYXRhIGZyb20gYW55IEpTT04gZGF0YSBzb3VyY2UgcHJvcGVydHksCgkgKiBpbmNsdWRpbmcgZGVlcGx5IG5lc3RlZCBvYmplY3RzIC8gcHJvcGVydGllcy4gbURhdGEgY2FuIGJlIGdpdmVuIGluIGEKCSAqIG51bWJlciBvZiBkaWZmZXJlbnQgd2F5cyB3aGljaCBlZmZlY3QgaXRzIGJlaGF2aW91cjoKCSAqICAgPHVsPgoJICogICAgIDxsaT5pbnRlZ2VyIC0gdHJlYXRlZCBhcyBhbiBhcnJheSBpbmRleCBmb3IgdGhlIGRhdGEgc291cmNlLiBUaGlzIGlzIHRoZQoJICogICAgICAgZGVmYXVsdCB0aGF0IERhdGFUYWJsZXMgdXNlcyAoaW5jcmVtZW50YWxseSBpbmNyZWFzZWQgZm9yIGVhY2ggY29sdW1uKS48L2xpPgoJICogICAgIDxsaT5zdHJpbmcgLSByZWFkIGFuIG9iamVjdCBwcm9wZXJ0eSBmcm9tIHRoZSBkYXRhIHNvdXJjZS4gTm90ZSB0aGF0IHlvdSBjYW4KCSAqICAgICAgIHVzZSBKYXZhc2NyaXB0IGRvdHRlZCBub3RhdGlvbiB0byByZWFkIGRlZXAgcHJvcGVydGllcyAvIGFycmF5cyBmcm9tIHRoZQoJICogICAgICAgZGF0YSBzb3VyY2UuPC9saT4KCSAqICAgICA8bGk+bnVsbCAtIHRoZSBzRGVmYXVsdENvbnRlbnQgb3B0aW9uIHdpbGwgYmUgdXNlZCBmb3IgdGhlIGNlbGwgKG51bGwKCSAqICAgICAgIGJ5IGRlZmF1bHQsIHNvIHlvdSB3aWxsIG5lZWQgdG8gc3BlY2lmeSB0aGUgZGVmYXVsdCBjb250ZW50IHlvdSB3YW50IC0KCSAqICAgICAgIHR5cGljYWxseSBhbiBlbXB0eSBzdHJpbmcpLiBUaGlzIGNhbiBiZSB1c2VmdWwgb24gZ2VuZXJhdGVkIGNvbHVtbnMgc3VjaCAKCSAqICAgICAgIGFzIGVkaXQgLyBkZWxldGUgYWN0aW9uIGNvbHVtbnMuPC9saT4KCSAqICAgICA8bGk+ZnVuY3Rpb24gLSB0aGUgZnVuY3Rpb24gZ2l2ZW4gd2lsbCBiZSBleGVjdXRlZCB3aGVuZXZlciBEYXRhVGFibGVzIAoJICogICAgICAgbmVlZHMgdG8gc2V0IG9yIGdldCB0aGUgZGF0YSBmb3IgYSBjZWxsIGluIHRoZSBjb2x1bW4uIFRoZSBmdW5jdGlvbiAKCSAqICAgICAgIHRha2VzIHRocmVlIHBhcmFtZXRlcnM6CgkgKiAgICAgICA8dWw+CgkgKiAgICAgICAgIDxsaT57YXJyYXl8b2JqZWN0fSBUaGUgZGF0YSBzb3VyY2UgZm9yIHRoZSByb3c8L2xpPgoJICogICAgICAgICA8bGk+e3N0cmluZ30gVGhlIHR5cGUgY2FsbCBkYXRhIHJlcXVlc3RlZCAtIHRoaXMgd2lsbCBiZSAnc2V0JyB3aGVuCgkgKiAgICAgICAgICAgc2V0dGluZyBkYXRhIG9yICdmaWx0ZXInLCAnZGlzcGxheScsICd0eXBlJywgJ3NvcnQnIG9yIHVuZGVmaW5lZCB3aGVuIAoJICogICAgICAgICAgIGdhdGhlcmluZyBkYXRhLiBOb3RlIHRoYXQgd2hlbiA8aT51bmRlZmluZWQ8L2k+IGlzIGdpdmVuIGZvciB0aGUgdHlwZQoJICogICAgICAgICAgIERhdGFUYWJsZXMgZXhwZWN0cyB0byBnZXQgdGhlIHJhdyBkYXRhIGZvciB0aGUgb2JqZWN0IGJhY2s8L2xpPgoJICogICAgICAgICA8bGk+eyp9IERhdGEgdG8gc2V0IHdoZW4gdGhlIHNlY29uZCBwYXJhbWV0ZXIgaXMgJ3NldCcuPC9saT4KCSAqICAgICAgIDwvdWw+CgkgKiAgICAgICBUaGUgcmV0dXJuIHZhbHVlIGZyb20gdGhlIGZ1bmN0aW9uIGlzIG5vdCByZXF1aXJlZCB3aGVuICdzZXQnIGlzIHRoZSB0eXBlCgkgKiAgICAgICBvZiBjYWxsLCBidXQgb3RoZXJ3aXNlIHRoZSByZXR1cm4gaXMgd2hhdCB3aWxsIGJlIHVzZWQgZm9yIHRoZSBkYXRhCgkgKiAgICAgICByZXF1ZXN0ZWQuPC9saT4KCSAqICAgIDwvdWw+CgkgKgoJICogTm90ZSB0aGF0IHByaW9yIHRvIERhdGFUYWJsZXMgMS45LjIgbURhdGEgd2FzIGNhbGxlZCBtRGF0YVByb3AuIFRoZSBuYW1lIGNoYW5nZQoJICogcmVmbGVjdHMgdGhlIGZsZXhpYmlsaXR5IG9mIHRoaXMgcHJvcGVydHkgYW5kIGlzIGNvbnNpc3RlbnQgd2l0aCB0aGUgbmFtaW5nIG9mCgkgKiBtUmVuZGVyLiBJZiAnbURhdGFQcm9wJyBpcyBnaXZlbiwgdGhlbiBpdCB3aWxsIHN0aWxsIGJlIHVzZWQgYnkgRGF0YVRhYmxlcywgYXMKCSAqIGl0IGF1dG9tYXRpY2FsbHkgbWFwcyB0aGUgb2xkIG5hbWUgdG8gdGhlIG5ldyBpZiByZXF1aXJlZC4KCSAqICBAdHlwZSBzdHJpbmd8aW50fGZ1bmN0aW9ufG51bGwKCSAqICBAZGVmYXVsdCBudWxsIDxpPlVzZSBhdXRvbWF0aWNhbGx5IGNhbGN1bGF0ZWQgY29sdW1uIGluZGV4PC9pPgoJICogIEBkdG9wdCBDb2x1bW5zCgkgKiAKCSAqICBAZXhhbXBsZQoJICogICAgLy8gUmVhZCB0YWJsZSBkYXRhIGZyb20gb2JqZWN0cwoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJICogICAgICB2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAic0FqYXhTb3VyY2UiOiAic291cmNlcy9kZWVwLnR4dCIsCgkgKiAgICAgICAgImFvQ29sdW1ucyI6IFsKCSAqICAgICAgICAgIHsgIm1EYXRhIjogImVuZ2luZSIgfSwKCSAqICAgICAgICAgIHsgIm1EYXRhIjogImJyb3dzZXIiIH0sCgkgKiAgICAgICAgICB7ICJtRGF0YSI6ICJwbGF0Zm9ybS5pbm5lciIgfSwKCSAqICAgICAgICAgIHsgIm1EYXRhIjogInBsYXRmb3JtLmRldGFpbHMuMCIgfSwKCSAqICAgICAgICAgIHsgIm1EYXRhIjogInBsYXRmb3JtLmRldGFpbHMuMSIgfQoJICogICAgICAgIF0KCSAqICAgICAgfSApOwoJICogICAgfSApOwoJICogCgkgKiAgQGV4YW1wbGUKCSAqICAgIC8vIFVzaW5nIG1EYXRhIGFzIGEgZnVuY3Rpb24gdG8gcHJvdmlkZSBkaWZmZXJlbnQgaW5mb3JtYXRpb24gZm9yCgkgKiAgICAvLyBzb3J0aW5nLCBmaWx0ZXJpbmcgYW5kIGRpc3BsYXkuIEluIHRoaXMgY2FzZSwgY3VycmVuY3kgKHByaWNlKQoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJICogICAgICB2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiYW9Db2x1bW5EZWZzIjogWyB7CgkgKiAgICAgICAgICAiYVRhcmdldHMiOiBbIDAgXSwKCSAqICAgICAgICAgICJtRGF0YSI6IGZ1bmN0aW9uICggc291cmNlLCB0eXBlLCB2YWwgKSB7CgkgKiAgICAgICAgICAgIGlmICh0eXBlID09PSAnc2V0JykgewoJICogICAgICAgICAgICAgIHNvdXJjZS5wcmljZSA9IHZhbDsKCSAqICAgICAgICAgICAgICAvLyBTdG9yZSB0aGUgY29tcHV0ZWQgZGlzbGF5IGFuZCBmaWx0ZXIgdmFsdWVzIGZvciBlZmZpY2llbmN5CgkgKiAgICAgICAgICAgICAgc291cmNlLnByaWNlX2Rpc3BsYXkgPSB2YWw9PSIiID8gIiIgOiAiJCIrbnVtYmVyRm9ybWF0KHZhbCk7CgkgKiAgICAgICAgICAgICAgc291cmNlLnByaWNlX2ZpbHRlciAgPSB2YWw9PSIiID8gIiIgOiAiJCIrbnVtYmVyRm9ybWF0KHZhbCkrIiAiK3ZhbDsKCSAqICAgICAgICAgICAgICByZXR1cm47CgkgKiAgICAgICAgICAgIH0KCSAqICAgICAgICAgICAgZWxzZSBpZiAodHlwZSA9PT0gJ2Rpc3BsYXknKSB7CgkgKiAgICAgICAgICAgICAgcmV0dXJuIHNvdXJjZS5wcmljZV9kaXNwbGF5OwoJICogICAgICAgICAgICB9CgkgKiAgICAgICAgICAgIGVsc2UgaWYgKHR5cGUgPT09ICdmaWx0ZXInKSB7CgkgKiAgICAgICAgICAgICAgcmV0dXJuIHNvdXJjZS5wcmljZV9maWx0ZXI7CgkgKiAgICAgICAgICAgIH0KCSAqICAgICAgICAgICAgLy8gJ3NvcnQnLCAndHlwZScgYW5kIHVuZGVmaW5lZCBhbGwganVzdCB1c2UgdGhlIGludGVnZXIKCSAqICAgICAgICAgICAgcmV0dXJuIHNvdXJjZS5wcmljZTsKCSAqICAgICAgICAgIH0KCSAqICAgICAgICB9IF0KCSAqICAgICAgfSApOwoJICogICAgfSApOwoJICovCgkibURhdGEiOiBudWxsLAoKCgkvKioKCSAqIFRoaXMgcHJvcGVydHkgaXMgdGhlIHJlbmRlcmluZyBwYXJ0bmVyIHRvIG1EYXRhIGFuZCBpdCBpcyBzdWdnZXN0ZWQgdGhhdAoJICogd2hlbiB5b3Ugd2FudCB0byBtYW5pcHVsYXRlIGRhdGEgZm9yIGRpc3BsYXkgKGluY2x1ZGluZyBmaWx0ZXJpbmcsIHNvcnRpbmcgZXRjKQoJICogYnV0IG5vdCBhbHRlcmluZyB0aGUgdW5kZXJseWluZyBkYXRhIGZvciB0aGUgdGFibGUsIHVzZSB0aGlzIHByb3BlcnR5LiBtRGF0YQoJICogY2FuIGFjdHVhbGx5IGRvIGV2ZXJ5dGhpbmcgdGhpcyBwcm9wZXJ0eSBjYW4gYW5kIG1vcmUsIGJ1dCB0aGlzIHBhcmFtZXRlciBpcwoJICogZWFzaWVyIHRvIHVzZSBzaW5jZSB0aGVyZSBpcyBubyAnc2V0JyBvcHRpb24uIExpa2UgbURhdGEgaXMgY2FuIGJlIGdpdmVuCgkgKiBpbiBhIG51bWJlciBvZiBkaWZmZXJlbnQgd2F5cyB0byBlZmZlY3QgaXRzIGJlaGF2aW91ciwgd2l0aCB0aGUgYWRkaXRpb24gb2YgCgkgKiBzdXBwb3J0aW5nIGFycmF5IHN5bnRheCBmb3IgZWFzeSBvdXRwdXR0aW5nIG9mIGFycmF5cyAoaW5jbHVkaW5nIGFycmF5cyBvZgoJICogb2JqZWN0cyk6CgkgKiAgIDx1bD4KCSAqICAgICA8bGk+aW50ZWdlciAtIHRyZWF0ZWQgYXMgYW4gYXJyYXkgaW5kZXggZm9yIHRoZSBkYXRhIHNvdXJjZS4gVGhpcyBpcyB0aGUKCSAqICAgICAgIGRlZmF1bHQgdGhhdCBEYXRhVGFibGVzIHVzZXMgKGluY3JlbWVudGFsbHkgaW5jcmVhc2VkIGZvciBlYWNoIGNvbHVtbikuPC9saT4KCSAqICAgICA8bGk+c3RyaW5nIC0gcmVhZCBhbiBvYmplY3QgcHJvcGVydHkgZnJvbSB0aGUgZGF0YSBzb3VyY2UuIE5vdGUgdGhhdCB5b3UgY2FuCgkgKiAgICAgICB1c2UgSmF2YXNjcmlwdCBkb3R0ZWQgbm90YXRpb24gdG8gcmVhZCBkZWVwIHByb3BlcnRpZXMgLyBhcnJheXMgZnJvbSB0aGUKCSAqICAgICAgIGRhdGEgc291cmNlIGFuZCBhbHNvIGFycmF5IGJyYWNrZXRzIHRvIGluZGljYXRlIHRoYXQgdGhlIGRhdGEgcmVhZGVyIHNob3VsZAoJICogICAgICAgbG9vcCBvdmVyIHRoZSBkYXRhIHNvdXJjZSBhcnJheS4gV2hlbiBjaGFyYWN0ZXJzIGFyZSBnaXZlbiBiZXR3ZWVuIHRoZSBhcnJheQoJICogICAgICAgYnJhY2tldHMsIHRoZXNlIGNoYXJhY3RlcnMgYXJlIHVzZWQgdG8gam9pbiB0aGUgZGF0YSBzb3VyY2UgYXJyYXkgdG9nZXRoZXIuCgkgKiAgICAgICBGb3IgZXhhbXBsZTogImFjY291bnRzWywgXS5uYW1lIiB3b3VsZCByZXN1bHQgaW4gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCB3aXRoCgkgKiAgICAgICB0aGUgJ25hbWUnIHZhbHVlIGZyb20gdGhlICdhY2NvdW50cycgYXJyYXkgb2Ygb2JqZWN0cy48L2xpPgoJICogICAgIDxsaT5mdW5jdGlvbiAtIHRoZSBmdW5jdGlvbiBnaXZlbiB3aWxsIGJlIGV4ZWN1dGVkIHdoZW5ldmVyIERhdGFUYWJsZXMgCgkgKiAgICAgICBuZWVkcyB0byBzZXQgb3IgZ2V0IHRoZSBkYXRhIGZvciBhIGNlbGwgaW4gdGhlIGNvbHVtbi4gVGhlIGZ1bmN0aW9uIAoJICogICAgICAgdGFrZXMgdGhyZWUgcGFyYW1ldGVyczoKCSAqICAgICAgIDx1bD4KCSAqICAgICAgICAgPGxpPnthcnJheXxvYmplY3R9IFRoZSBkYXRhIHNvdXJjZSBmb3IgdGhlIHJvdyAoYmFzZWQgb24gbURhdGEpPC9saT4KCSAqICAgICAgICAgPGxpPntzdHJpbmd9IFRoZSB0eXBlIGNhbGwgZGF0YSByZXF1ZXN0ZWQgLSB0aGlzIHdpbGwgYmUgJ2ZpbHRlcicsICdkaXNwbGF5JywgCgkgKiAgICAgICAgICAgJ3R5cGUnIG9yICdzb3J0Jy48L2xpPgoJICogICAgICAgICA8bGk+e2FycmF5fG9iamVjdH0gVGhlIGZ1bGwgZGF0YSBzb3VyY2UgZm9yIHRoZSByb3cgKG5vdCBiYXNlZCBvbiBtRGF0YSk8L2xpPgoJICogICAgICAgPC91bD4KCSAqICAgICAgIFRoZSByZXR1cm4gdmFsdWUgZnJvbSB0aGUgZnVuY3Rpb24gaXMgd2hhdCB3aWxsIGJlIHVzZWQgZm9yIHRoZSBkYXRhCgkgKiAgICAgICByZXF1ZXN0ZWQuPC9saT4KCSAqICAgIDwvdWw+CgkgKiAgQHR5cGUgc3RyaW5nfGludHxmdW5jdGlvbnxudWxsCgkgKiAgQGRlZmF1bHQgbnVsbCA8aT5Vc2UgbURhdGE8L2k+CgkgKiAgQGR0b3B0IENvbHVtbnMKCSAqIAoJICogIEBleGFtcGxlCgkgKiAgICAvLyBDcmVhdGUgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBmcm9tIGFuIGFycmF5IG9mIG9iamVjdHMKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCSAqICAgICAgdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgICAgICAgInNBamF4U291cmNlIjogInNvdXJjZXMvZGVlcC50eHQiLAoJICogICAgICAgICJhb0NvbHVtbnMiOiBbCgkgKiAgICAgICAgICB7ICJtRGF0YSI6ICJlbmdpbmUiIH0sCgkgKiAgICAgICAgICB7ICJtRGF0YSI6ICJicm93c2VyIiB9LAoJICogICAgICAgICAgewoJICogICAgICAgICAgICAibURhdGEiOiAicGxhdGZvcm0iLAoJICogICAgICAgICAgICAibVJlbmRlciI6ICJbLCBdLm5hbWUiCgkgKiAgICAgICAgICB9CgkgKiAgICAgICAgXQoJICogICAgICB9ICk7CgkgKiAgICB9ICk7CgkgKiAKCSAqICBAZXhhbXBsZQoJICogICAgLy8gVXNlIGFzIGEgZnVuY3Rpb24gdG8gY3JlYXRlIGEgbGluayBmcm9tIHRoZSBkYXRhIHNvdXJjZQoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJICogICAgICB2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiYW9Db2x1bW5EZWZzIjogWwoJICogICAgICAgIHsKCSAqICAgICAgICAgICJhVGFyZ2V0cyI6IFsgMCBdLAoJICogICAgICAgICAgIm1EYXRhIjogImRvd25sb2FkX2xpbmsiLAoJICogICAgICAgICAgIm1SZW5kZXIiOiBmdW5jdGlvbiAoIGRhdGEsIHR5cGUsIGZ1bGwgKSB7CgkgKiAgICAgICAgICAgIHJldHVybiAnPGEgaHJlZj0iJytkYXRhKyciPkRvd25sb2FkPC9hPic7CgkgKiAgICAgICAgICB9CgkgKiAgICAgICAgXQoJICogICAgICB9ICk7CgkgKiAgICB9ICk7CgkgKi8KCSJtUmVuZGVyIjogbnVsbCwKCgoJLyoqCgkgKiBDaGFuZ2UgdGhlIGNlbGwgdHlwZSBjcmVhdGVkIGZvciB0aGUgY29sdW1uIC0gZWl0aGVyIFREIGNlbGxzIG9yIFRIIGNlbGxzLiBUaGlzCgkgKiBjYW4gYmUgdXNlZnVsIGFzIFRIIGNlbGxzIGhhdmUgc2VtYW50aWMgbWVhbmluZyBpbiB0aGUgdGFibGUgYm9keSwgYWxsb3dpbmcgdGhlbQoJICogdG8gYWN0IGFzIGEgaGVhZGVyIGZvciBhIHJvdyAoeW91IG1heSB3aXNoIHRvIGFkZCBzY29wZT0ncm93JyB0byB0aGUgVEggZWxlbWVudHMpLgoJICogIEB0eXBlIHN0cmluZwoJICogIEBkZWZhdWx0IHRkCgkgKiAgQGR0b3B0IENvbHVtbnMKCSAqIAoJICogIEBleGFtcGxlCgkgKiAgICAvLyBNYWtlIHRoZSBmaXJzdCBjb2x1bW4gdXNlIFRIIGNlbGxzCgkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkgKiAgICAgIHZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogICAgICAgICJhb0NvbHVtbkRlZnMiOiBbIHsKCSAqICAgICAgICAgICJhVGFyZ2V0cyI6IFsgMCBdLAoJICogICAgICAgICAgInNDZWxsVHlwZSI6ICJ0aCIKCSAqICAgICAgICB9IF0KCSAqICAgICAgfSApOwoJICogICAgfSApOwoJICovCgkic0NlbGxUeXBlIjogInRkIiwKCgoJLyoqCgkgKiBDbGFzcyB0byBnaXZlIHRvIGVhY2ggY2VsbCBpbiB0aGlzIGNvbHVtbi4KCSAqICBAdHlwZSBzdHJpbmcKCSAqICBAZGVmYXVsdCA8aT5FbXB0eSBzdHJpbmc8L2k+CgkgKiAgQGR0b3B0IENvbHVtbnMKCSAqIAoJICogIEBleGFtcGxlCgkgKiAgICAvLyBVc2luZyBhb0NvbHVtbkRlZnMKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiYW9Db2x1bW5EZWZzIjogWyAKCSAqICAgICAgICAgIHsgInNDbGFzcyI6ICJteV9jbGFzcyIsICJhVGFyZ2V0cyI6IFsgMCBdIH0KCSAqICAgICAgICBdCgkgKiAgICAgIH0gKTsKCSAqICAgIH0gKTsKCSAqICAgIAoJICogIEBleGFtcGxlCgkgKiAgICAvLyBVc2luZyBhb0NvbHVtbnMKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiYW9Db2x1bW5zIjogWyAKCSAqICAgICAgICAgIHsgInNDbGFzcyI6ICJteV9jbGFzcyIgfSwKCSAqICAgICAgICAgIG51bGwsCgkgKiAgICAgICAgICBudWxsLAoJICogICAgICAgICAgbnVsbCwKCSAqICAgICAgICAgIG51bGwKCSAqICAgICAgICBdCgkgKiAgICAgIH0gKTsKCSAqICAgIH0gKTsKCSAqLwoJInNDbGFzcyI6ICIiLAoJCgkvKioKCSAqIFdoZW4gRGF0YVRhYmxlcyBjYWxjdWxhdGVzIHRoZSBjb2x1bW4gd2lkdGhzIHRvIGFzc2lnbiB0byBlYWNoIGNvbHVtbiwKCSAqIGl0IGZpbmRzIHRoZSBsb25nZXN0IHN0cmluZyBpbiBlYWNoIGNvbHVtbiBhbmQgdGhlbiBjb25zdHJ1Y3RzIGEKCSAqIHRlbXBvcmFyeSB0YWJsZSBhbmQgcmVhZHMgdGhlIHdpZHRocyBmcm9tIHRoYXQuIFRoZSBwcm9ibGVtIHdpdGggdGhpcwoJICogaXMgdGhhdCAibW1tIiBpcyBtdWNoIHdpZGVyIHRoZW4gImlpaWkiLCBidXQgdGhlIGxhdHRlciBpcyBhIGxvbmdlciAKCSAqIHN0cmluZyAtIHRodXMgdGhlIGNhbGN1bGF0aW9uIGNhbiBnbyB3cm9uZyAoZG9pbmcgaXQgcHJvcGVybHkgYW5kIHB1dHRpbmcKCSAqIGl0IGludG8gYW4gRE9NIG9iamVjdCBhbmQgbWVhc3VyaW5nIHRoYXQgaXMgaG9ycmlibHkoISkgc2xvdykuIFRodXMgYXMKCSAqIGEgIndvcmsgYXJvdW5kIiB3ZSBwcm92aWRlIHRoaXMgb3B0aW9uLiBJdCB3aWxsIGFwcGVuZCBpdHMgdmFsdWUgdG8gdGhlCgkgKiB0ZXh0IHRoYXQgaXMgZm91bmQgdG8gYmUgdGhlIGxvbmdlc3Qgc3RyaW5nIGZvciB0aGUgY29sdW1uIC0gaS5lLiBwYWRkaW5nLgoJICogR2VuZXJhbGx5IHlvdSBzaG91bGRuJ3QgbmVlZCB0aGlzLCBhbmQgaXQgaXMgbm90IGRvY3VtZW50ZWQgb24gdGhlIAoJICogZ2VuZXJhbCBEYXRhVGFibGVzLm5ldCBkb2N1bWVudGF0aW9uCgkgKiAgQHR5cGUgc3RyaW5nCgkgKiAgQGRlZmF1bHQgPGk+RW1wdHkgc3RyaW5nPGk+CgkgKiAgQGR0b3B0IENvbHVtbnMKCSAqICAgIAoJICogIEBleGFtcGxlCgkgKiAgICAvLyBVc2luZyBhb0NvbHVtbnMKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiYW9Db2x1bW5zIjogWyAKCSAqICAgICAgICAgIG51bGwsCgkgKiAgICAgICAgICBudWxsLAoJICogICAgICAgICAgbnVsbCwKCSAqICAgICAgICAgIHsKCSAqICAgICAgICAgICAgInNDb250ZW50UGFkZGluZyI6ICJtbW0iCgkgKiAgICAgICAgICB9CgkgKiAgICAgICAgXQoJICogICAgICB9ICk7CgkgKiAgICB9ICk7CgkgKi8KCSJzQ29udGVudFBhZGRpbmciOiAiIiwKCgoJLyoqCgkgKiBBbGxvd3MgYSBkZWZhdWx0IHZhbHVlIHRvIGJlIGdpdmVuIGZvciBhIGNvbHVtbidzIGRhdGEsIGFuZCB3aWxsIGJlIHVzZWQKCSAqIHdoZW5ldmVyIGEgbnVsbCBkYXRhIHNvdXJjZSBpcyBlbmNvdW50ZXJlZCAodGhpcyBjYW4gYmUgYmVjYXVzZSBtRGF0YQoJICogaXMgc2V0IHRvIG51bGwsIG9yIGJlY2F1c2UgdGhlIGRhdGEgc291cmNlIGl0c2VsZiBpcyBudWxsKS4KCSAqICBAdHlwZSBzdHJpbmcKCSAqICBAZGVmYXVsdCBudWxsCgkgKiAgQGR0b3B0IENvbHVtbnMKCSAqIAoJICogIEBleGFtcGxlCgkgKiAgICAvLyBVc2luZyBhb0NvbHVtbkRlZnMKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiYW9Db2x1bW5EZWZzIjogWyAKCSAqICAgICAgICAgIHsKCSAqICAgICAgICAgICAgIm1EYXRhIjogbnVsbCwKCSAqICAgICAgICAgICAgInNEZWZhdWx0Q29udGVudCI6ICJFZGl0IiwKCSAqICAgICAgICAgICAgImFUYXJnZXRzIjogWyAtMSBdCgkgKiAgICAgICAgICB9CgkgKiAgICAgICAgXQoJICogICAgICB9ICk7CgkgKiAgICB9ICk7CgkgKiAgICAKCSAqICBAZXhhbXBsZQoJICogICAgLy8gVXNpbmcgYW9Db2x1bW5zCgkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgICAgICAgImFvQ29sdW1ucyI6IFsgCgkgKiAgICAgICAgICBudWxsLAoJICogICAgICAgICAgbnVsbCwKCSAqICAgICAgICAgIG51bGwsCgkgKiAgICAgICAgICB7CgkgKiAgICAgICAgICAgICJtRGF0YSI6IG51bGwsCgkgKiAgICAgICAgICAgICJzRGVmYXVsdENvbnRlbnQiOiAiRWRpdCIKCSAqICAgICAgICAgIH0KCSAqICAgICAgICBdCgkgKiAgICAgIH0gKTsKCSAqICAgIH0gKTsKCSAqLwoJInNEZWZhdWx0Q29udGVudCI6IG51bGwsCgoKCS8qKgoJICogVGhpcyBwYXJhbWV0ZXIgaXMgb25seSB1c2VkIGluIERhdGFUYWJsZXMnIHNlcnZlci1zaWRlIHByb2Nlc3NpbmcuIEl0IGNhbgoJICogYmUgZXhjZXB0aW9uYWxseSB1c2VmdWwgdG8ga25vdyB3aGF0IGNvbHVtbnMgYXJlIGJlaW5nIGRpc3BsYXllZCBvbiB0aGUKCSAqIGNsaWVudCBzaWRlLCBhbmQgdG8gbWFwIHRoZXNlIHRvIGRhdGFiYXNlIGZpZWxkcy4gV2hlbiBkZWZpbmVkLCB0aGUgbmFtZXMKCSAqIGFsc28gYWxsb3cgRGF0YVRhYmxlcyB0byByZW9yZGVyIGluZm9ybWF0aW9uIGZyb20gdGhlIHNlcnZlciBpZiBpdCBjb21lcwoJICogYmFjayBpbiBhbiB1bmV4cGVjdGVkIG9yZGVyIChpLmUuIGlmIHlvdSBzd2l0Y2ggeW91ciBjb2x1bW5zIGFyb3VuZCBvbiB0aGUKCSAqIGNsaWVudC1zaWRlLCB5b3VyIHNlcnZlci1zaWRlIGNvZGUgZG9lcyBub3QgYWxzbyBuZWVkIHVwZGF0aW5nKS4KCSAqICBAdHlwZSBzdHJpbmcKCSAqICBAZGVmYXVsdCA8aT5FbXB0eSBzdHJpbmc8L2k+CgkgKiAgQGR0b3B0IENvbHVtbnMKCSAqIAoJICogIEBleGFtcGxlCgkgKiAgICAvLyBVc2luZyBhb0NvbHVtbkRlZnMKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiYW9Db2x1bW5EZWZzIjogWyAKCSAqICAgICAgICAgIHsgInNOYW1lIjogImVuZ2luZSIsICJhVGFyZ2V0cyI6IFsgMCBdIH0sCgkgKiAgICAgICAgICB7ICJzTmFtZSI6ICJicm93c2VyIiwgImFUYXJnZXRzIjogWyAxIF0gfSwKCSAqICAgICAgICAgIHsgInNOYW1lIjogInBsYXRmb3JtIiwgImFUYXJnZXRzIjogWyAyIF0gfSwKCSAqICAgICAgICAgIHsgInNOYW1lIjogInZlcnNpb24iLCAiYVRhcmdldHMiOiBbIDMgXSB9LAoJICogICAgICAgICAgeyAic05hbWUiOiAiZ3JhZGUiLCAiYVRhcmdldHMiOiBbIDQgXSB9CgkgKiAgICAgICAgXQoJICogICAgICB9ICk7CgkgKiAgICB9ICk7CgkgKiAgICAKCSAqICBAZXhhbXBsZQoJICogICAgLy8gVXNpbmcgYW9Db2x1bW5zCgkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgICAgICAgImFvQ29sdW1ucyI6IFsgCgkgKiAgICAgICAgICB7ICJzTmFtZSI6ICJlbmdpbmUiIH0sCgkgKiAgICAgICAgICB7ICJzTmFtZSI6ICJicm93c2VyIiB9LAoJICogICAgICAgICAgeyAic05hbWUiOiAicGxhdGZvcm0iIH0sCgkgKiAgICAgICAgICB7ICJzTmFtZSI6ICJ2ZXJzaW9uIiB9LAoJICogICAgICAgICAgeyAic05hbWUiOiAiZ3JhZGUiIH0KCSAqICAgICAgICBdCgkgKiAgICAgIH0gKTsKCSAqICAgIH0gKTsKCSAqLwoJInNOYW1lIjogIiIsCgoKCS8qKgoJICogRGVmaW5lcyBhIGRhdGEgc291cmNlIHR5cGUgZm9yIHRoZSBzb3J0aW5nIHdoaWNoIGNhbiBiZSB1c2VkIHRvIHJlYWQKCSAqIHJlYWwtdGltZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSB0YWJsZSAodXBkYXRpbmcgdGhlIGludGVybmFsbHkgY2FjaGVkCgkgKiB2ZXJzaW9uKSBwcmlvciB0byBzb3J0aW5nLiBUaGlzIGFsbG93cyBzb3J0aW5nIHRvIG9jY3VyIG9uIHVzZXIgZWRpdGFibGUKCSAqIGVsZW1lbnRzIHN1Y2ggYXMgZm9ybSBpbnB1dHMuCgkgKiAgQHR5cGUgc3RyaW5nCgkgKiAgQGRlZmF1bHQgc3RkCgkgKiAgQGR0b3B0IENvbHVtbnMKCSAqIAoJICogIEBleGFtcGxlCgkgKiAgICAvLyBVc2luZyBhb0NvbHVtbkRlZnMKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiYW9Db2x1bW5EZWZzIjogWwoJICogICAgICAgICAgeyAic1NvcnREYXRhVHlwZSI6ICJkb20tdGV4dCIsICJhVGFyZ2V0cyI6IFsgMiwgMyBdIH0sCgkgKiAgICAgICAgICB7ICJzVHlwZSI6ICJudW1lcmljIiwgImFUYXJnZXRzIjogWyAzIF0gfSwKCSAqICAgICAgICAgIHsgInNTb3J0RGF0YVR5cGUiOiAiZG9tLXNlbGVjdCIsICJhVGFyZ2V0cyI6IFsgNCBdIH0sCgkgKiAgICAgICAgICB7ICJzU29ydERhdGFUeXBlIjogImRvbS1jaGVja2JveCIsICJhVGFyZ2V0cyI6IFsgNSBdIH0KCSAqICAgICAgICBdCgkgKiAgICAgIH0gKTsKCSAqICAgIH0gKTsKCSAqICAgIAoJICogIEBleGFtcGxlCgkgKiAgICAvLyBVc2luZyBhb0NvbHVtbnMKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiYW9Db2x1bW5zIjogWwoJICogICAgICAgICAgbnVsbCwKCSAqICAgICAgICAgIG51bGwsCgkgKiAgICAgICAgICB7ICJzU29ydERhdGFUeXBlIjogImRvbS10ZXh0IiB9LAoJICogICAgICAgICAgeyAic1NvcnREYXRhVHlwZSI6ICJkb20tdGV4dCIsICJzVHlwZSI6ICJudW1lcmljIiB9LAoJICogICAgICAgICAgeyAic1NvcnREYXRhVHlwZSI6ICJkb20tc2VsZWN0IiB9LAoJICogICAgICAgICAgeyAic1NvcnREYXRhVHlwZSI6ICJkb20tY2hlY2tib3giIH0KCSAqICAgICAgICBdCgkgKiAgICAgIH0gKTsKCSAqICAgIH0gKTsKCSAqLwoJInNTb3J0RGF0YVR5cGUiOiAic3RkIiwKCgoJLyoqCgkgKiBUaGUgdGl0bGUgb2YgdGhpcyBjb2x1bW4uCgkgKiAgQHR5cGUgc3RyaW5nCgkgKiAgQGRlZmF1bHQgbnVsbCA8aT5EZXJpdmVkIGZyb20gdGhlICdUSCcgdmFsdWUgZm9yIHRoaXMgY29sdW1uIGluIHRoZSAKCSAqICAgIG9yaWdpbmFsIEhUTUwgdGFibGUuPC9pPgoJICogIEBkdG9wdCBDb2x1bW5zCgkgKiAKCSAqICBAZXhhbXBsZQoJICogICAgLy8gVXNpbmcgYW9Db2x1bW5EZWZzCgkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgICAgICAgImFvQ29sdW1uRGVmcyI6IFsgCgkgKiAgICAgICAgICB7ICJzVGl0bGUiOiAiTXkgY29sdW1uIHRpdGxlIiwgImFUYXJnZXRzIjogWyAwIF0gfQoJICogICAgICAgIF0KCSAqICAgICAgfSApOwoJICogICAgfSApOwoJICogICAgCgkgKiAgQGV4YW1wbGUKCSAqICAgIC8vIFVzaW5nIGFvQ29sdW1ucwoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogICAgICAgICJhb0NvbHVtbnMiOiBbIAoJICogICAgICAgICAgeyAic1RpdGxlIjogIk15IGNvbHVtbiB0aXRsZSIgfSwKCSAqICAgICAgICAgIG51bGwsCgkgKiAgICAgICAgICBudWxsLAoJICogICAgICAgICAgbnVsbCwKCSAqICAgICAgICAgIG51bGwKCSAqICAgICAgICBdCgkgKiAgICAgIH0gKTsKCSAqICAgIH0gKTsKCSAqLwoJInNUaXRsZSI6IG51bGwsCgoKCS8qKgoJICogVGhlIHR5cGUgYWxsb3dzIHlvdSB0byBzcGVjaWZ5IGhvdyB0aGUgZGF0YSBmb3IgdGhpcyBjb2x1bW4gd2lsbCBiZSBzb3J0ZWQuCgkgKiBGb3VyIHR5cGVzIChzdHJpbmcsIG51bWVyaWMsIGRhdGUgYW5kIGh0bWwgKHdoaWNoIHdpbGwgc3RyaXAgSFRNTCB0YWdzCgkgKiBiZWZvcmUgc29ydGluZykpIGFyZSBjdXJyZW50bHkgYXZhaWxhYmxlLiBOb3RlIHRoYXQgb25seSBkYXRlIGZvcm1hdHMKCSAqIHVuZGVyc3Rvb2QgYnkgSmF2YXNjcmlwdCdzIERhdGUoKSBvYmplY3Qgd2lsbCBiZSBhY2NlcHRlZCBhcyB0eXBlIGRhdGUuIEZvcgoJICogZXhhbXBsZTogIk1hciAyNiwgMjAwOCA1OjAzIFBNIi4gTWF5IHRha2UgdGhlIHZhbHVlczogJ3N0cmluZycsICdudW1lcmljJywKCSAqICdkYXRlJyBvciAnaHRtbCcgKGJ5IGRlZmF1bHQpLiBGdXJ0aGVyIHR5cGVzIGNhbiBiZSBhZGRpbmcgdGhyb3VnaAoJICogcGx1Zy1pbnMuCgkgKiAgQHR5cGUgc3RyaW5nCgkgKiAgQGRlZmF1bHQgbnVsbCA8aT5BdXRvLWRldGVjdGVkIGZyb20gcmF3IGRhdGE8L2k+CgkgKiAgQGR0b3B0IENvbHVtbnMKCSAqIAoJICogIEBleGFtcGxlCgkgKiAgICAvLyBVc2luZyBhb0NvbHVtbkRlZnMKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiYW9Db2x1bW5EZWZzIjogWyAKCSAqICAgICAgICAgIHsgInNUeXBlIjogImh0bWwiLCAiYVRhcmdldHMiOiBbIDAgXSB9CgkgKiAgICAgICAgXQoJICogICAgICB9ICk7CgkgKiAgICB9ICk7CgkgKiAgICAKCSAqICBAZXhhbXBsZQoJICogICAgLy8gVXNpbmcgYW9Db2x1bW5zCgkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgICAgICAgImFvQ29sdW1ucyI6IFsgCgkgKiAgICAgICAgICB7ICJzVHlwZSI6ICJodG1sIiB9LAoJICogICAgICAgICAgbnVsbCwKCSAqICAgICAgICAgIG51bGwsCgkgKiAgICAgICAgICBudWxsLAoJICogICAgICAgICAgbnVsbAoJICogICAgICAgIF0KCSAqICAgICAgfSApOwoJICogICAgfSApOwoJICovCgkic1R5cGUiOiBudWxsLAoKCgkvKioKCSAqIERlZmluaW5nIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1uLCB0aGlzIHBhcmFtZXRlciBtYXkgdGFrZSBhbnkgQ1NTIHZhbHVlCgkgKiAoM2VtLCAyMHB4IGV0YykuIERhdGFUYWJsZXMgYXBwbGVzICdzbWFydCcgd2lkdGhzIHRvIGNvbHVtbnMgd2hpY2ggaGF2ZSBub3QKCSAqIGJlZW4gZ2l2ZW4gYSBzcGVjaWZpYyB3aWR0aCB0aHJvdWdoIHRoaXMgaW50ZXJmYWNlIGVuc3VyaW5nIHRoYXQgdGhlIHRhYmxlCgkgKiByZW1haW5zIHJlYWRhYmxlLgoJICogIEB0eXBlIHN0cmluZwoJICogIEBkZWZhdWx0IG51bGwgPGk+QXV0b21hdGljPC9pPgoJICogIEBkdG9wdCBDb2x1bW5zCgkgKiAKCSAqICBAZXhhbXBsZQoJICogICAgLy8gVXNpbmcgYW9Db2x1bW5EZWZzCgkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgICAgICAgImFvQ29sdW1uRGVmcyI6IFsgCgkgKiAgICAgICAgICB7ICJzV2lkdGgiOiAiMjAlIiwgImFUYXJnZXRzIjogWyAwIF0gfQoJICogICAgICAgIF0KCSAqICAgICAgfSApOwoJICogICAgfSApOwoJICogICAgCgkgKiAgQGV4YW1wbGUKCSAqICAgIC8vIFVzaW5nIGFvQ29sdW1ucwoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogICAgICAgICJhb0NvbHVtbnMiOiBbIAoJICogICAgICAgICAgeyAic1dpZHRoIjogIjIwJSIgfSwKCSAqICAgICAgICAgIG51bGwsCgkgKiAgICAgICAgICBudWxsLAoJICogICAgICAgICAgbnVsbCwKCSAqICAgICAgICAgIG51bGwKCSAqICAgICAgICBdCgkgKiAgICAgIH0gKTsKCSAqICAgIH0gKTsKCSAqLwoJInNXaWR0aCI6IG51bGwKfTsKCg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/model/model.defaults.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CgovKioKICogSW5pdGlhbGlzYXRpb24gb3B0aW9ucyB0aGF0IGNhbiBiZSBnaXZlbiB0byBEYXRhVGFibGVzIGF0IGluaXRpYWxpc2F0aW9uIAogKiB0aW1lLgogKiAgQG5hbWVzcGFjZQogKi8KRGF0YVRhYmxlLmRlZmF1bHRzID0gewoJLyoqCgkgKiBBbiBhcnJheSBvZiBkYXRhIHRvIHVzZSBmb3IgdGhlIHRhYmxlLCBwYXNzZWQgaW4gYXQgaW5pdGlhbGlzYXRpb24gd2hpY2ggCgkgKiB3aWxsIGJlIHVzZWQgaW4gcHJlZmVyZW5jZSB0byBhbnkgZGF0YSB3aGljaCBpcyBhbHJlYWR5IGluIHRoZSBET00uIFRoaXMgaXMKCSAqIHBhcnRpY3VsYXJseSB1c2VmdWwgZm9yIGNvbnN0cnVjdGluZyB0YWJsZXMgcHVyZWx5IGluIEphdmFzY3JpcHQsIGZvcgoJICogZXhhbXBsZSB3aXRoIGEgY3VzdG9tIEFqYXggY2FsbC4KCSAqICBAdHlwZSBhcnJheQoJICogIEBkZWZhdWx0IG51bGwKCSAqICBAZHRvcHQgT3B0aW9uCgkgKiAKCSAqICBAZXhhbXBsZQoJICogICAgLy8gVXNpbmcgYSAyRCBhcnJheSBkYXRhIHNvdXJjZQoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiYWFEYXRhIjogWwoJICogICAgICAgICAgWydUcmlkZW50JywgJ0ludGVybmV0IEV4cGxvcmVyIDQuMCcsICdXaW4gOTUrJywgNCwgJ1gnXSwKCSAqICAgICAgICAgIFsnVHJpZGVudCcsICdJbnRlcm5ldCBFeHBsb3JlciA1LjAnLCAnV2luIDk1KycsIDUsICdDJ10sCgkgKiAgICAgICAgXSwKCSAqICAgICAgICAiYW9Db2x1bW5zIjogWwoJICogICAgICAgICAgeyAic1RpdGxlIjogIkVuZ2luZSIgfSwKCSAqICAgICAgICAgIHsgInNUaXRsZSI6ICJCcm93c2VyIiB9LAoJICogICAgICAgICAgeyAic1RpdGxlIjogIlBsYXRmb3JtIiB9LAoJICogICAgICAgICAgeyAic1RpdGxlIjogIlZlcnNpb24iIH0sCgkgKiAgICAgICAgICB7ICJzVGl0bGUiOiAiR3JhZGUiIH0KCSAqICAgICAgICBdCgkgKiAgICAgIH0gKTsKCSAqICAgIH0gKTsKCSAqICAgIAoJICogIEBleGFtcGxlCgkgKiAgICAvLyBVc2luZyBhbiBhcnJheSBvZiBvYmplY3RzIGFzIGEgZGF0YSBzb3VyY2UgKG1EYXRhKQoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiYWFEYXRhIjogWwoJICogICAgICAgICAgewoJICogICAgICAgICAgICAiZW5naW5lIjogICAiVHJpZGVudCIsCgkgKiAgICAgICAgICAgICJicm93c2VyIjogICJJbnRlcm5ldCBFeHBsb3JlciA0LjAiLAoJICogICAgICAgICAgICAicGxhdGZvcm0iOiAiV2luIDk1KyIsCgkgKiAgICAgICAgICAgICJ2ZXJzaW9uIjogIDQsCgkgKiAgICAgICAgICAgICJncmFkZSI6ICAgICJYIgoJICogICAgICAgICAgfSwKCSAqICAgICAgICAgIHsKCSAqICAgICAgICAgICAgImVuZ2luZSI6ICAgIlRyaWRlbnQiLAoJICogICAgICAgICAgICAiYnJvd3NlciI6ICAiSW50ZXJuZXQgRXhwbG9yZXIgNS4wIiwKCSAqICAgICAgICAgICAgInBsYXRmb3JtIjogIldpbiA5NSsiLAoJICogICAgICAgICAgICAidmVyc2lvbiI6ICA1LAoJICogICAgICAgICAgICAiZ3JhZGUiOiAgICAiQyIKCSAqICAgICAgICAgIH0KCSAqICAgICAgICBdLAoJICogICAgICAgICJhb0NvbHVtbnMiOiBbCgkgKiAgICAgICAgICB7ICJzVGl0bGUiOiAiRW5naW5lIiwgICAibURhdGEiOiAiZW5naW5lIiB9LAoJICogICAgICAgICAgeyAic1RpdGxlIjogIkJyb3dzZXIiLCAgIm1EYXRhIjogImJyb3dzZXIiIH0sCgkgKiAgICAgICAgICB7ICJzVGl0bGUiOiAiUGxhdGZvcm0iLCAibURhdGEiOiAicGxhdGZvcm0iIH0sCgkgKiAgICAgICAgICB7ICJzVGl0bGUiOiAiVmVyc2lvbiIsICAibURhdGEiOiAidmVyc2lvbiIgfSwKCSAqICAgICAgICAgIHsgInNUaXRsZSI6ICJHcmFkZSIsICAgICJtRGF0YSI6ICJncmFkZSIgfQoJICogICAgICAgIF0KCSAqICAgICAgfSApOwoJICogICAgfSApOwoJICovCgkiYWFEYXRhIjogbnVsbCwKCgoJLyoqCgkgKiBJZiBzb3J0aW5nIGlzIGVuYWJsZWQsIHRoZW4gRGF0YVRhYmxlcyB3aWxsIHBlcmZvcm0gYSBmaXJzdCBwYXNzIHNvcnQgb24gCgkgKiBpbml0aWFsaXNhdGlvbi4gWW91IGNhbiBkZWZpbmUgd2hpY2ggY29sdW1uKHMpIHRoZSBzb3J0IGlzIHBlcmZvcm1lZCB1cG9uLCAKCSAqIGFuZCB0aGUgc29ydGluZyBkaXJlY3Rpb24sIHdpdGggdGhpcyB2YXJpYWJsZS4gVGhlIGFhU29ydGluZyBhcnJheSBzaG91bGQgCgkgKiBjb250YWluIGFuIGFycmF5IGZvciBlYWNoIGNvbHVtbiB0byBiZSBzb3J0ZWQgaW5pdGlhbGx5IGNvbnRhaW5pbmcgdGhlIAoJICogY29sdW1uJ3MgaW5kZXggYW5kIGEgZGlyZWN0aW9uIHN0cmluZyAoJ2FzYycgb3IgJ2Rlc2MnKS4KCSAqICBAdHlwZSBhcnJheQoJICogIEBkZWZhdWx0IFtbMCwnYXNjJ11dCgkgKiAgQGR0b3B0IE9wdGlvbgoJICogCgkgKiAgQGV4YW1wbGUKCSAqICAgIC8vIFNvcnQgYnkgM3JkIGNvbHVtbiBmaXJzdCwgYW5kIHRoZW4gNHRoIGNvbHVtbgoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogICAgICAgICJhYVNvcnRpbmciOiBbWzIsJ2FzYyddLCBbMywnZGVzYyddXQoJICogICAgICB9ICk7CgkgKiAgICB9ICk7CgkgKiAgICAKCSAqICAgIC8vIE5vIGluaXRpYWwgc29ydGluZwoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogICAgICAgICJhYVNvcnRpbmciOiBbXQoJICogICAgICB9ICk7CgkgKiAgICB9ICk7CgkgKi8KCSJhYVNvcnRpbmciOiBbWzAsJ2FzYyddXSwKCgoJLyoqCgkgKiBUaGlzIHBhcmFtZXRlciBpcyBiYXNpY2FsbHkgaWRlbnRpY2FsIHRvIHRoZSBhYVNvcnRpbmcgcGFyYW1ldGVyLCBidXQgCgkgKiBjYW5ub3QgYmUgb3ZlcnJpZGRlbiBieSB1c2VyIGludGVyYWN0aW9uIHdpdGggdGhlIHRhYmxlLiBXaGF0IHRoaXMgbWVhbnMgCgkgKiBpcyB0aGF0IHlvdSBjb3VsZCBoYXZlIGEgY29sdW1uICh2aXNpYmxlIG9yIGhpZGRlbikgd2hpY2ggdGhlIHNvcnRpbmcgd2lsbCAKCSAqIGFsd2F5cyBiZSBmb3JjZWQgb24gZmlyc3QgLSBhbnkgc29ydGluZyBhZnRlciB0aGF0IChmcm9tIHRoZSB1c2VyKSB3aWxsIAoJICogdGhlbiBiZSBwZXJmb3JtZWQgYXMgcmVxdWlyZWQuIFRoaXMgY2FuIGJlIHVzZWZ1bCBmb3IgZ3JvdXBpbmcgcm93cyAKCSAqIHRvZ2V0aGVyLgoJICogIEB0eXBlIGFycmF5CgkgKiAgQGRlZmF1bHQgbnVsbAoJICogIEBkdG9wdCBPcHRpb24KCSAqIAoJICogIEBleGFtcGxlCgkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgICAgICAgImFhU29ydGluZ0ZpeGVkIjogW1swLCdhc2MnXV0KCSAqICAgICAgfSApOwoJICogICAgfSApCgkgKi8KCSJhYVNvcnRpbmdGaXhlZCI6IG51bGwsCgoKCS8qKgoJICogVGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHlvdSB0byByZWFkaWx5IHNwZWNpZnkgdGhlIGVudHJpZXMgaW4gdGhlIGxlbmd0aCBkcm9wCgkgKiBkb3duIG1lbnUgdGhhdCBEYXRhVGFibGVzIHNob3dzIHdoZW4gcGFnaW5hdGlvbiBpcyBlbmFibGVkLiBJdCBjYW4gYmUgCgkgKiBlaXRoZXIgYSAxRCBhcnJheSBvZiBvcHRpb25zIHdoaWNoIHdpbGwgYmUgdXNlZCBmb3IgYm90aCB0aGUgZGlzcGxheWVkIAoJICogb3B0aW9uIGFuZCB0aGUgdmFsdWUsIG9yIGEgMkQgYXJyYXkgd2hpY2ggd2lsbCB1c2UgdGhlIGFycmF5IGluIHRoZSBmaXJzdCAKCSAqIHBvc2l0aW9uIGFzIHRoZSB2YWx1ZSwgYW5kIHRoZSBhcnJheSBpbiB0aGUgc2Vjb25kIHBvc2l0aW9uIGFzIHRoZSAKCSAqIGRpc3BsYXllZCBvcHRpb25zICh1c2VmdWwgZm9yIGxhbmd1YWdlIHN0cmluZ3Mgc3VjaCBhcyAnQWxsJykuCgkgKiAgQHR5cGUgYXJyYXkKCSAqICBAZGVmYXVsdCBbIDEwLCAyNSwgNTAsIDEwMCBdCgkgKiAgQGR0b3B0IE9wdGlvbgoJICogCgkgKiAgQGV4YW1wbGUKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiYUxlbmd0aE1lbnUiOiBbWzEwLCAyNSwgNTAsIC0xXSwgWzEwLCAyNSwgNTAsICJBbGwiXV0KCSAqICAgICAgfSApOwoJICogICAgfSApOwoJICogIAoJICogIEBleGFtcGxlCgkgKiAgICAvLyBTZXR0aW5nIHRoZSBkZWZhdWx0IGRpc3BsYXkgbGVuZ3RoIGFzIHdlbGwgYXMgbGVuZ3RoIG1lbnUKCSAqICAgIC8vIFRoaXMgaXMgbGlrZWx5IHRvIGJlIHdhbnRlZCBpZiB5b3UgcmVtb3ZlIHRoZSAnMTAnIG9wdGlvbiB3aGljaAoJICogICAgLy8gaXMgdGhlIGlEaXNwbGF5TGVuZ3RoIGRlZmF1bHQuCgkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgICAgICAgImlEaXNwbGF5TGVuZ3RoIjogMjUsCgkgKiAgICAgICAgImFMZW5ndGhNZW51IjogW1syNSwgNTAsIDEwMCwgLTFdLCBbMjUsIDUwLCAxMDAsICJBbGwiXV0KCSAqICAgICAgfSApOwoJICogICAgfSApOwoJICovCgkiYUxlbmd0aE1lbnUiOiBbIDEwLCAyNSwgNTAsIDEwMCBdLAoKCgkvKioKCSAqIFRoZSBhb0NvbHVtbnMgb3B0aW9uIGluIHRoZSBpbml0aWFsaXNhdGlvbiBwYXJhbWV0ZXIgYWxsb3dzIHlvdSB0byBkZWZpbmUKCSAqIGRldGFpbHMgYWJvdXQgdGhlIHdheSBpbmRpdmlkdWFsIGNvbHVtbnMgYmVoYXZlLiBGb3IgYSBmdWxsIGxpc3Qgb2YKCSAqIGNvbHVtbiBvcHRpb25zIHRoYXQgY2FuIGJlIHNldCwgcGxlYXNlIHNlZSAKCSAqIHtAbGluayBEYXRhVGFibGUuZGVmYXVsdHMuY29sdW1uc30uIE5vdGUgdGhhdCBpZiB5b3UgdXNlIGFvQ29sdW1ucyB0bwoJICogZGVmaW5lIHlvdXIgY29sdW1ucywgeW91IG11c3QgaGF2ZSBhbiBlbnRyeSBpbiB0aGUgYXJyYXkgZm9yIGV2ZXJ5IHNpbmdsZQoJICogY29sdW1uIHRoYXQgeW91IGhhdmUgaW4geW91ciB0YWJsZSAodGhlc2UgY2FuIGJlIG51bGwgaWYgeW91IGRvbid0IHdoaWNoCgkgKiB0byBzcGVjaWZ5IGFueSBvcHRpb25zKS4KCSAqICBAbWVtYmVyCgkgKi8KCSJhb0NvbHVtbnMiOiBudWxsLAoKCS8qKgoJICogVmVyeSBzaW1pbGFyIHRvIGFvQ29sdW1ucywgYW9Db2x1bW5EZWZzIGFsbG93cyB5b3UgdG8gdGFyZ2V0IGEgc3BlY2lmaWMgCgkgKiBjb2x1bW4sIG11bHRpcGxlIGNvbHVtbnMsIG9yIGFsbCBjb2x1bW5zLCB1c2luZyB0aGUgYVRhcmdldHMgcHJvcGVydHkgb2YgCgkgKiBlYWNoIG9iamVjdCBpbiB0aGUgYXJyYXkuIFRoaXMgYWxsb3dzIGdyZWF0IGZsZXhpYmlsaXR5IHdoZW4gY3JlYXRpbmcgCgkgKiB0YWJsZXMsIGFzIHRoZSBhb0NvbHVtbkRlZnMgYXJyYXlzIGNhbiBiZSBvZiBhbnkgbGVuZ3RoLCB0YXJnZXRpbmcgdGhlIAoJICogY29sdW1ucyB5b3Ugc3BlY2lmaWNhbGx5IHdhbnQuIGFvQ29sdW1uRGVmcyBtYXkgdXNlIGFueSBvZiB0aGUgY29sdW1uIAoJICogb3B0aW9ucyBhdmFpbGFibGU6IHtAbGluayBEYXRhVGFibGUuZGVmYXVsdHMuY29sdW1uc30sIGJ1dCBpdCBfbXVzdF8KCSAqIGhhdmUgYVRhcmdldHMgZGVmaW5lZCBpbiBlYWNoIG9iamVjdCBpbiB0aGUgYXJyYXkuIFZhbHVlcyBpbiB0aGUgYVRhcmdldHMKCSAqIGFycmF5IG1heSBiZToKCSAqICAgPHVsPgoJICogICAgIDxsaT5hIHN0cmluZyAtIGNsYXNzIG5hbWUgd2lsbCBiZSBtYXRjaGVkIG9uIHRoZSBUSCBmb3IgdGhlIGNvbHVtbjwvbGk+CgkgKiAgICAgPGxpPjAgb3IgYSBwb3NpdGl2ZSBpbnRlZ2VyIC0gY29sdW1uIGluZGV4IGNvdW50aW5nIGZyb20gdGhlIGxlZnQ8L2xpPgoJICogICAgIDxsaT5hIG5lZ2F0aXZlIGludGVnZXIgLSBjb2x1bW4gaW5kZXggY291bnRpbmcgZnJvbSB0aGUgcmlnaHQ8L2xpPgoJICogICAgIDxsaT50aGUgc3RyaW5nICJfYWxsIiAtIGFsbCBjb2x1bW5zIChpLmUuIGFzc2lnbiBhIGRlZmF1bHQpPC9saT4KCSAqICAgPC91bD4KCSAqICBAbWVtYmVyCgkgKi8KCSJhb0NvbHVtbkRlZnMiOiBudWxsLAoKCgkvKioKCSAqIEJhc2ljYWxseSB0aGUgc2FtZSBhcyBvU2VhcmNoLCB0aGlzIHBhcmFtZXRlciBkZWZpbmVzIHRoZSBpbmRpdmlkdWFsIGNvbHVtbgoJICogZmlsdGVyaW5nIHN0YXRlIGF0IGluaXRpYWxpc2F0aW9uIHRpbWUuIFRoZSBhcnJheSBtdXN0IGJlIG9mIHRoZSBzYW1lIHNpemUgCgkgKiBhcyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMsIGFuZCBlYWNoIGVsZW1lbnQgYmUgYW4gb2JqZWN0IHdpdGggdGhlIHBhcmFtZXRlcnMKCSAqICJzU2VhcmNoIiBhbmQgImJFc2NhcGVSZWdleCIgKHRoZSBsYXR0ZXIgaXMgb3B0aW9uYWwpLiAnbnVsbCcgaXMgYWxzbwoJICogYWNjZXB0ZWQgYW5kIHRoZSBkZWZhdWx0IHdpbGwgYmUgdXNlZC4KCSAqICBAdHlwZSBhcnJheQoJICogIEBkZWZhdWx0IFtdCgkgKiAgQGR0b3B0IE9wdGlvbgoJICogCgkgKiAgQGV4YW1wbGUKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiYW9TZWFyY2hDb2xzIjogWwoJICogICAgICAgICAgbnVsbCwKCSAqICAgICAgICAgIHsgInNTZWFyY2giOiAiTXkgZmlsdGVyIiB9LAoJICogICAgICAgICAgbnVsbCwKCSAqICAgICAgICAgIHsgInNTZWFyY2giOiAiXlswLTldIiwgImJFc2NhcGVSZWdleCI6IGZhbHNlIH0KCSAqICAgICAgICBdCgkgKiAgICAgIH0gKTsKCSAqICAgIH0gKQoJICovCgkiYW9TZWFyY2hDb2xzIjogW10sCgoKCS8qKgoJICogQW4gYXJyYXkgb2YgQ1NTIGNsYXNzZXMgdGhhdCBzaG91bGQgYmUgYXBwbGllZCB0byBkaXNwbGF5ZWQgcm93cy4gVGhpcyAKCSAqIGFycmF5IG1heSBiZSBvZiBhbnkgbGVuZ3RoLCBhbmQgRGF0YVRhYmxlcyB3aWxsIGFwcGx5IGVhY2ggY2xhc3MgCgkgKiBzZXF1ZW50aWFsbHksIGxvb3Bpbmcgd2hlbiByZXF1aXJlZC4KCSAqICBAdHlwZSBhcnJheQoJICogIEBkZWZhdWx0IG51bGwgPGk+V2lsbCB0YWtlIHRoZSB2YWx1ZXMgZGV0ZXJtaW5lZCBieSB0aGUgb0NsYXNzZXMuc1N0cmlwZSoKCSAqICAgIG9wdGlvbnM8L2k+CgkgKiAgQGR0b3B0IE9wdGlvbgoJICogCgkgKiAgQGV4YW1wbGUKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiYXNTdHJpcGVDbGFzc2VzIjogWyAnc3RyaXAxJywgJ3N0cmlwMicsICdzdHJpcDMnIF0KCSAqICAgICAgfSApOwoJICogICAgfSApCgkgKi8KCSJhc1N0cmlwZUNsYXNzZXMiOiBudWxsLAoKCgkvKioKCSAqIEVuYWJsZSBvciBkaXNhYmxlIGF1dG9tYXRpYyBjb2x1bW4gd2lkdGggY2FsY3VsYXRpb24uIFRoaXMgY2FuIGJlIGRpc2FibGVkCgkgKiBhcyBhbiBvcHRpbWlzYXRpb24gKGl0IHRha2VzIHNvbWUgdGltZSB0byBjYWxjdWxhdGUgdGhlIHdpZHRocykgaWYgdGhlCgkgKiB0YWJsZXMgd2lkdGhzIGFyZSBwYXNzZWQgaW4gdXNpbmcgYW9Db2x1bW5zLgoJICogIEB0eXBlIGJvb2xlYW4KCSAqICBAZGVmYXVsdCB0cnVlCgkgKiAgQGR0b3B0IEZlYXR1cmVzCgkgKiAKCSAqICBAZXhhbXBsZQoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiYkF1dG9XaWR0aCI6IGZhbHNlCgkgKiAgICAgIH0gKTsKCSAqICAgIH0gKTsKCSAqLwoJImJBdXRvV2lkdGgiOiB0cnVlLAoKCgkvKioKCSAqIERlZmVycmVkIHJlbmRlcmluZyBjYW4gcHJvdmlkZSBEYXRhVGFibGVzIHdpdGggYSBodWdlIHNwZWVkIGJvb3N0IHdoZW4geW91CgkgKiBhcmUgdXNpbmcgYW4gQWpheCBvciBKUyBkYXRhIHNvdXJjZSBmb3IgdGhlIHRhYmxlLiBUaGlzIG9wdGlvbiwgd2hlbiBzZXQgdG8KCSAqIHRydWUsIHdpbGwgY2F1c2UgRGF0YVRhYmxlcyB0byBkZWZlciB0aGUgY3JlYXRpb24gb2YgdGhlIHRhYmxlIGVsZW1lbnRzIGZvcgoJICogZWFjaCByb3cgdW50aWwgdGhleSBhcmUgbmVlZGVkIGZvciBhIGRyYXcgLSBzYXZpbmcgYSBzaWduaWZpY2FudCBhbW91bnQgb2YKCSAqIHRpbWUuCgkgKiAgQHR5cGUgYm9vbGVhbgoJICogIEBkZWZhdWx0IGZhbHNlCgkgKiAgQGR0b3B0IEZlYXR1cmVzCgkgKiAKCSAqICBAZXhhbXBsZQoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJICogICAgICB2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAic0FqYXhTb3VyY2UiOiAic291cmNlcy9hcnJheXMudHh0IiwKCSAqICAgICAgICAiYkRlZmVyUmVuZGVyIjogdHJ1ZQoJICogICAgICB9ICk7CgkgKiAgICB9ICk7CgkgKi8KCSJiRGVmZXJSZW5kZXIiOiBmYWxzZSwKCgoJLyoqCgkgKiBSZXBsYWNlIGEgRGF0YVRhYmxlIHdoaWNoIG1hdGNoZXMgdGhlIGdpdmVuIHNlbGVjdG9yIGFuZCByZXBsYWNlIGl0IHdpdGggCgkgKiBvbmUgd2hpY2ggaGFzIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBuZXcgaW5pdGlhbGlzYXRpb24gb2JqZWN0IHBhc3NlZC4gSWYgbm8KCSAqIHRhYmxlIG1hdGNoZXMgdGhlIHNlbGVjdG9yLCB0aGVuIHRoZSBuZXcgRGF0YVRhYmxlIHdpbGwgYmUgY29uc3RydWN0ZWQgYXMKCSAqIHBlciBub3JtYWwuCgkgKiAgQHR5cGUgYm9vbGVhbgoJICogIEBkZWZhdWx0IGZhbHNlCgkgKiAgQGR0b3B0IE9wdGlvbnMKCSAqIAoJICogIEBleGFtcGxlCgkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgICAgICAgInNTY3JvbGxZIjogIjIwMHB4IiwKCSAqICAgICAgICAiYlBhZ2luYXRlIjogZmFsc2UKCSAqICAgICAgfSApOwoJICogICAgICAKCSAqICAgICAgLy8gU29tZSB0aW1lIGxhdGVyLi4uLgoJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogICAgICAgICJiRmlsdGVyIjogZmFsc2UsCgkgKiAgICAgICAgImJEZXN0cm95IjogdHJ1ZQoJICogICAgICB9ICk7CgkgKiAgICB9ICk7CgkgKi8KCSJiRGVzdHJveSI6IGZhbHNlLAoKCgkvKioKCSAqIEVuYWJsZSBvciBkaXNhYmxlIGZpbHRlcmluZyBvZiBkYXRhLiBGaWx0ZXJpbmcgaW4gRGF0YVRhYmxlcyBpcyAic21hcnQiIGluCgkgKiB0aGF0IGl0IGFsbG93cyB0aGUgZW5kIHVzZXIgdG8gaW5wdXQgbXVsdGlwbGUgd29yZHMgKHNwYWNlIHNlcGFyYXRlZCkgYW5kCgkgKiB3aWxsIG1hdGNoIGEgcm93IGNvbnRhaW5pbmcgdGhvc2Ugd29yZHMsIGV2ZW4gaWYgbm90IGluIHRoZSBvcmRlciB0aGF0IHdhcwoJICogc3BlY2lmaWVkICh0aGlzIGFsbG93IG1hdGNoaW5nIGFjcm9zcyBtdWx0aXBsZSBjb2x1bW5zKS4gTm90ZSB0aGF0IGlmIHlvdQoJICogd2lzaCB0byB1c2UgZmlsdGVyaW5nIGluIERhdGFUYWJsZXMgdGhpcyBtdXN0IHJlbWFpbiAndHJ1ZScgLSB0byByZW1vdmUgdGhlCgkgKiBkZWZhdWx0IGZpbHRlcmluZyBpbnB1dCBib3ggYW5kIHJldGFpbiBmaWx0ZXJpbmcgYWJpbGl0aWVzLCBwbGVhc2UgdXNlCgkgKiB7QGxpbmsgRGF0YVRhYmxlLmRlZmF1bHRzLnNEb219LgoJICogIEB0eXBlIGJvb2xlYW4KCSAqICBAZGVmYXVsdCB0cnVlCgkgKiAgQGR0b3B0IEZlYXR1cmVzCgkgKiAKCSAqICBAZXhhbXBsZQoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiYkZpbHRlciI6IGZhbHNlCgkgKiAgICAgIH0gKTsKCSAqICAgIH0gKTsKCSAqLwoJImJGaWx0ZXIiOiB0cnVlLAoKCgkvKioKCSAqIEVuYWJsZSBvciBkaXNhYmxlIHRoZSB0YWJsZSBpbmZvcm1hdGlvbiBkaXNwbGF5LiBUaGlzIHNob3dzIGluZm9ybWF0aW9uIAoJICogYWJvdXQgdGhlIGRhdGEgdGhhdCBpcyBjdXJyZW50bHkgdmlzaWJsZSBvbiB0aGUgcGFnZSwgaW5jbHVkaW5nIGluZm9ybWF0aW9uCgkgKiBhYm91dCBmaWx0ZXJlZCBkYXRhIGlmIHRoYXQgYWN0aW9uIGlzIGJlaW5nIHBlcmZvcm1lZC4KCSAqICBAdHlwZSBib29sZWFuCgkgKiAgQGRlZmF1bHQgdHJ1ZQoJICogIEBkdG9wdCBGZWF0dXJlcwoJICogCgkgKiAgQGV4YW1wbGUKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgICAgICAgImJJbmZvIjogZmFsc2UKCSAqICAgICAgfSApOwoJICogICAgfSApOwoJICovCgkiYkluZm8iOiB0cnVlLAoKCgkvKioKCSAqIEVuYWJsZSBqUXVlcnkgVUkgVGhlbWVSb2xsZXIgc3VwcG9ydCAocmVxdWlyZWQgYXMgVGhlbWVSb2xsZXIgcmVxdWlyZXMgc29tZQoJICogc2xpZ2h0bHkgZGlmZmVyZW50IGFuZCBhZGRpdGlvbmFsIG1hcmstdXAgZnJvbSB3aGF0IERhdGFUYWJsZXMgaGFzCgkgKiB0cmFkaXRpb25hbGx5IHVzZWQpLgoJICogIEB0eXBlIGJvb2xlYW4KCSAqICBAZGVmYXVsdCBmYWxzZQoJICogIEBkdG9wdCBGZWF0dXJlcwoJICogCgkgKiAgQGV4YW1wbGUKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiYkpRdWVyeVVJIjogdHJ1ZQoJICogICAgICB9ICk7CgkgKiAgICB9ICk7CgkgKi8KCSJiSlF1ZXJ5VUkiOiBmYWxzZSwKCgoJLyoqCgkgKiBBbGxvd3MgdGhlIGVuZCB1c2VyIHRvIHNlbGVjdCB0aGUgc2l6ZSBvZiBhIGZvcm1hdHRlZCBwYWdlIGZyb20gYSBzZWxlY3QKCSAqIG1lbnUgKHNpemVzIGFyZSAxMCwgMjUsIDUwIGFuZCAxMDApLiBSZXF1aXJlcyBwYWdpbmF0aW9uIChiUGFnaW5hdGUpLgoJICogIEB0eXBlIGJvb2xlYW4KCSAqICBAZGVmYXVsdCB0cnVlCgkgKiAgQGR0b3B0IEZlYXR1cmVzCgkgKiAKCSAqICBAZXhhbXBsZQoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiYkxlbmd0aENoYW5nZSI6IGZhbHNlCgkgKiAgICAgIH0gKTsKCSAqICAgIH0gKTsKCSAqLwoJImJMZW5ndGhDaGFuZ2UiOiB0cnVlLAoKCgkvKioKCSAqIEVuYWJsZSBvciBkaXNhYmxlIHBhZ2luYXRpb24uCgkgKiAgQHR5cGUgYm9vbGVhbgoJICogIEBkZWZhdWx0IHRydWUKCSAqICBAZHRvcHQgRmVhdHVyZXMKCSAqIAoJICogIEBleGFtcGxlCgkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogICAgICAgICJiUGFnaW5hdGUiOiBmYWxzZQoJICogICAgICB9ICk7CgkgKiAgICB9ICk7CgkgKi8KCSJiUGFnaW5hdGUiOiB0cnVlLAoKCgkvKioKCSAqIEVuYWJsZSBvciBkaXNhYmxlIHRoZSBkaXNwbGF5IG9mIGEgJ3Byb2Nlc3NpbmcnIGluZGljYXRvciB3aGVuIHRoZSB0YWJsZSBpcwoJICogYmVpbmcgcHJvY2Vzc2VkIChlLmcuIGEgc29ydCkuIFRoaXMgaXMgcGFydGljdWxhcmx5IHVzZWZ1bCBmb3IgdGFibGVzIHdpdGgKCSAqIGxhcmdlIGFtb3VudHMgb2YgZGF0YSB3aGVyZSBpdCBjYW4gdGFrZSBhIG5vdGljZWFibGUgYW1vdW50IG9mIHRpbWUgdG8gc29ydAoJICogdGhlIGVudHJpZXMuCgkgKiAgQHR5cGUgYm9vbGVhbgoJICogIEBkZWZhdWx0IGZhbHNlCgkgKiAgQGR0b3B0IEZlYXR1cmVzCgkgKiAKCSAqICBAZXhhbXBsZQoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiYlByb2Nlc3NpbmciOiB0cnVlCgkgKiAgICAgIH0gKTsKCSAqICAgIH0gKTsKCSAqLwoJImJQcm9jZXNzaW5nIjogZmFsc2UsCgoKCS8qKgoJICogUmV0cmlldmUgdGhlIERhdGFUYWJsZXMgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gc2VsZWN0b3IuIE5vdGUgdGhhdCBpZiB0aGUKCSAqIHRhYmxlIGhhcyBhbHJlYWR5IGJlZW4gaW5pdGlhbGlzZWQsIHRoaXMgcGFyYW1ldGVyIHdpbGwgY2F1c2UgRGF0YVRhYmxlcwoJICogdG8gc2ltcGx5IHJldHVybiB0aGUgb2JqZWN0IHRoYXQgaGFzIGFscmVhZHkgYmVlbiBzZXQgdXAgLSBpdCB3aWxsIG5vdCB0YWtlCgkgKiBhY2NvdW50IG9mIGFueSBjaGFuZ2VzIHlvdSBtaWdodCBoYXZlIG1hZGUgdG8gdGhlIGluaXRpYWxpc2F0aW9uIG9iamVjdAoJICogcGFzc2VkIHRvIERhdGFUYWJsZXMgKHNldHRpbmcgdGhpcyBwYXJhbWV0ZXIgdG8gdHJ1ZSBpcyBhbiBhY2tub3dsZWRnZW1lbnQKCSAqIHRoYXQgeW91IHVuZGVyc3RhbmQgdGhpcykuIGJEZXN0cm95IGNhbiBiZSB1c2VkIHRvIHJlaW5pdGlhbGlzZSBhIHRhYmxlIGlmCgkgKiB5b3UgbmVlZC4KCSAqICBAdHlwZSBib29sZWFuCgkgKiAgQGRlZmF1bHQgZmFsc2UKCSAqICBAZHRvcHQgT3B0aW9ucwoJICogCgkgKiAgQGV4YW1wbGUKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCSAqICAgICAgaW5pdFRhYmxlKCk7CgkgKiAgICAgIHRhYmxlQWN0aW9ucygpOwoJICogICAgfSApOwoJICogICAgCgkgKiAgICBmdW5jdGlvbiBpbml0VGFibGUgKCkKCSAqICAgIHsKCSAqICAgICAgcmV0dXJuICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgICAgICAgInNTY3JvbGxZIjogIjIwMHB4IiwKCSAqICAgICAgICAiYlBhZ2luYXRlIjogZmFsc2UsCgkgKiAgICAgICAgImJSZXRyaWV2ZSI6IHRydWUKCSAqICAgICAgfSApOwoJICogICAgfQoJICogICAgCgkgKiAgICBmdW5jdGlvbiB0YWJsZUFjdGlvbnMgKCkKCSAqICAgIHsKCSAqICAgICAgdmFyIG9UYWJsZSA9IGluaXRUYWJsZSgpOwoJICogICAgICAvLyBwZXJmb3JtIEFQSSBvcGVyYXRpb25zIHdpdGggb1RhYmxlIAoJICogICAgfQoJICovCgkiYlJldHJpZXZlIjogZmFsc2UsCgoKCS8qKgoJICogSW5kaWNhdGUgaWYgRGF0YVRhYmxlcyBzaG91bGQgYmUgYWxsb3dlZCB0byBzZXQgdGhlIHBhZGRpbmcgLyBtYXJnaW4KCSAqIGV0YyBmb3IgdGhlIHNjcm9sbGluZyBoZWFkZXIgZWxlbWVudHMgb3Igbm90LiBUeXBpY2FsbHkgeW91IHdpbGwgd2FudAoJICogdGhpcy4KCSAqICBAdHlwZSBib29sZWFuCgkgKiAgQGRlZmF1bHQgdHJ1ZQoJICogIEBkdG9wdCBPcHRpb25zCgkgKiAKCSAqICBAZXhhbXBsZQoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogICAgICAgICJiU2Nyb2xsQXV0b0NzcyI6IGZhbHNlLAoJICogICAgICAgICJzU2Nyb2xsWSI6ICIyMDBweCIKCSAqICAgICAgfSApOwoJICogICAgfSApOwoJICovCgkiYlNjcm9sbEF1dG9Dc3MiOiB0cnVlLAoKCgkvKioKCSAqIFdoZW4gdmVydGljYWwgKHkpIHNjcm9sbGluZyBpcyBlbmFibGVkLCBEYXRhVGFibGVzIHdpbGwgZm9yY2UgdGhlIGhlaWdodCBvZgoJICogdGhlIHRhYmxlJ3Mgdmlld3BvcnQgdG8gdGhlIGdpdmVuIGhlaWdodCBhdCBhbGwgdGltZXMgKHVzZWZ1bCBmb3IgbGF5b3V0KS4KCSAqIEhvd2V2ZXIsIHRoaXMgY2FuIGxvb2sgb2RkIHdoZW4gZmlsdGVyaW5nIGRhdGEgZG93biB0byBhIHNtYWxsIGRhdGEgc2V0LAoJICogYW5kIHRoZSBmb290ZXIgaXMgbGVmdCAiZmxvYXRpbmciIGZ1cnRoZXIgZG93bi4gVGhpcyBwYXJhbWV0ZXIgKHdoZW4KCSAqIGVuYWJsZWQpIHdpbGwgY2F1c2UgRGF0YVRhYmxlcyB0byBjb2xsYXBzZSB0aGUgdGFibGUncyB2aWV3cG9ydCBkb3duIHdoZW4KCSAqIHRoZSByZXN1bHQgc2V0IHdpbGwgZml0IHdpdGhpbiB0aGUgZ2l2ZW4gWSBoZWlnaHQuCgkgKiAgQHR5cGUgYm9vbGVhbgoJICogIEBkZWZhdWx0IGZhbHNlCgkgKiAgQGR0b3B0IE9wdGlvbnMKCSAqIAoJICogIEBleGFtcGxlCgkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgICAgICAgInNTY3JvbGxZIjogIjIwMCIsCgkgKiAgICAgICAgImJTY3JvbGxDb2xsYXBzZSI6IHRydWUKCSAqICAgICAgfSApOwoJICogICAgfSApOwoJICovCgkiYlNjcm9sbENvbGxhcHNlIjogZmFsc2UsCgoKCS8qKgoJICogRW5hYmxlIGluZmluaXRlIHNjcm9sbGluZyBmb3IgRGF0YVRhYmxlcyAodG8gYmUgdXNlZCBpbiBjb21iaW5hdGlvbiB3aXRoCgkgKiBzU2Nyb2xsWSkuIEluZmluaXRlIHNjcm9sbGluZyBtZWFucyB0aGF0IERhdGFUYWJsZXMgd2lsbCBjb250aW51YWxseSBsb2FkCgkgKiBkYXRhIGFzIGEgdXNlciBzY3JvbGxzIHRocm91Z2ggYSB0YWJsZSwgd2hpY2ggaXMgdmVyeSB1c2VmdWwgZm9yIGxhcmdlCgkgKiBkYXRhc2V0LiBUaGlzIGNhbm5vdCBiZSB1c2VkIHdpdGggcGFnaW5hdGlvbiwgd2hpY2ggaXMgYXV0b21hdGljYWxseQoJICogZGlzYWJsZWQuIE5vdGUgLSB0aGUgU2Nyb2xsZXIgZXh0cmEgZm9yIERhdGFUYWJsZXMgaXMgcmVjb21tZW5kZWQgaW4KCSAqIGluIHByZWZlcmVuY2UgdG8gdGhpcyBvcHRpb24uCgkgKiAgQHR5cGUgYm9vbGVhbgoJICogIEBkZWZhdWx0IGZhbHNlCgkgKiAgQGR0b3B0IEZlYXR1cmVzCgkgKiAKCSAqICBAZXhhbXBsZQoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogICAgICAgICJiU2Nyb2xsSW5maW5pdGUiOiB0cnVlLAoJICogICAgICAgICJiU2Nyb2xsQ29sbGFwc2UiOiB0cnVlLAoJICogICAgICAgICJzU2Nyb2xsWSI6ICIyMDBweCIKCSAqICAgICAgfSApOwoJICogICAgfSApOwoJICovCgkiYlNjcm9sbEluZmluaXRlIjogZmFsc2UsCgoKCS8qKgoJICogQ29uZmlndXJlIERhdGFUYWJsZXMgdG8gdXNlIHNlcnZlci1zaWRlIHByb2Nlc3NpbmcuIE5vdGUgdGhhdCB0aGUKCSAqIHNBamF4U291cmNlIHBhcmFtZXRlciBtdXN0IGFsc28gYmUgZ2l2ZW4gaW4gb3JkZXIgdG8gZ2l2ZSBEYXRhVGFibGVzIGEKCSAqIHNvdXJjZSB0byBvYnRhaW4gdGhlIHJlcXVpcmVkIGRhdGEgZm9yIGVhY2ggZHJhdy4KCSAqICBAdHlwZSBib29sZWFuCgkgKiAgQGRlZmF1bHQgZmFsc2UKCSAqICBAZHRvcHQgRmVhdHVyZXMKCSAqICBAZHRvcHQgU2VydmVyLXNpZGUKCSAqIAoJICogIEBleGFtcGxlCgkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogICAgICAgICJiU2VydmVyU2lkZSI6IHRydWUsCgkgKiAgICAgICAgInNBamF4U291cmNlIjogInhoci5waHAiCgkgKiAgICAgIH0gKTsKCSAqICAgIH0gKTsKCSAqLwoJImJTZXJ2ZXJTaWRlIjogZmFsc2UsCgoKCS8qKgoJICogRW5hYmxlIG9yIGRpc2FibGUgc29ydGluZyBvZiBjb2x1bW5zLiBTb3J0aW5nIG9mIGluZGl2aWR1YWwgY29sdW1ucyBjYW4gYmUKCSAqIGRpc2FibGVkIGJ5IHRoZSAiYlNvcnRhYmxlIiBvcHRpb24gZm9yIGVhY2ggY29sdW1uLgoJICogIEB0eXBlIGJvb2xlYW4KCSAqICBAZGVmYXVsdCB0cnVlCgkgKiAgQGR0b3B0IEZlYXR1cmVzCgkgKiAKCSAqICBAZXhhbXBsZQoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiYlNvcnQiOiBmYWxzZQoJICogICAgICB9ICk7CgkgKiAgICB9ICk7CgkgKi8KCSJiU29ydCI6IHRydWUsCgoKCS8qKgoJICogQWxsb3dzIGNvbnRyb2wgb3ZlciB3aGV0aGVyIERhdGFUYWJsZXMgc2hvdWxkIHVzZSB0aGUgdG9wICh0cnVlKSB1bmlxdWUKCSAqIGNlbGwgdGhhdCBpcyBmb3VuZCBmb3IgYSBzaW5nbGUgY29sdW1uLCBvciB0aGUgYm90dG9tIChmYWxzZSAtIGRlZmF1bHQpLgoJICogVGhpcyBpcyB1c2VmdWwgd2hlbiB1c2luZyBjb21wbGV4IGhlYWRlcnMuCgkgKiAgQHR5cGUgYm9vbGVhbgoJICogIEBkZWZhdWx0IGZhbHNlCgkgKiAgQGR0b3B0IE9wdGlvbnMKCSAqIAoJICogIEBleGFtcGxlCgkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgICAgICAgImJTb3J0Q2VsbHNUb3AiOiB0cnVlCgkgKiAgICAgIH0gKTsKCSAqICAgIH0gKTsKCSAqLwoJImJTb3J0Q2VsbHNUb3AiOiBmYWxzZSwKCgoJLyoqCgkgKiBFbmFibGUgb3IgZGlzYWJsZSB0aGUgYWRkaXRpb24gb2YgdGhlIGNsYXNzZXMgJ3NvcnRpbmdfMScsICdzb3J0aW5nXzInIGFuZAoJICogJ3NvcnRpbmdfMycgdG8gdGhlIGNvbHVtbnMgd2hpY2ggYXJlIGN1cnJlbnRseSBiZWluZyBzb3J0ZWQgb24uIFRoaXMgaXMKCSAqIHByZXNlbnRlZCBhcyBhIGZlYXR1cmUgc3dpdGNoIGFzIGl0IGNhbiBpbmNyZWFzZSBwcm9jZXNzaW5nIHRpbWUgKHdoaWxlCgkgKiBjbGFzc2VzIGFyZSByZW1vdmVkIGFuZCBhZGRlZCkgc28gZm9yIGxhcmdlIGRhdGEgc2V0cyB5b3UgbWlnaHQgd2FudCB0bwoJICogdHVybiB0aGlzIG9mZi4KCSAqICBAdHlwZSBib29sZWFuCgkgKiAgQGRlZmF1bHQgdHJ1ZQoJICogIEBkdG9wdCBGZWF0dXJlcwoJICogCgkgKiAgQGV4YW1wbGUKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgICAgICAgImJTb3J0Q2xhc3NlcyI6IGZhbHNlCgkgKiAgICAgIH0gKTsKCSAqICAgIH0gKTsKCSAqLwoJImJTb3J0Q2xhc3NlcyI6IHRydWUsCgoKCS8qKgoJICogRW5hYmxlIG9yIGRpc2FibGUgc3RhdGUgc2F2aW5nLiBXaGVuIGVuYWJsZWQgYSBjb29raWUgd2lsbCBiZSB1c2VkIHRvIHNhdmUKCSAqIHRhYmxlIGRpc3BsYXkgaW5mb3JtYXRpb24gc3VjaCBhcyBwYWdpbmF0aW9uIGluZm9ybWF0aW9uLCBkaXNwbGF5IGxlbmd0aCwKCSAqIGZpbHRlcmluZyBhbmQgc29ydGluZy4gQXMgc3VjaCB3aGVuIHRoZSBlbmQgdXNlciByZWxvYWRzIHRoZSBwYWdlIHRoZQoJICogZGlzcGxheSBkaXNwbGF5IHdpbGwgbWF0Y2ggd2hhdCB0aHkgaGFkIHByZXZpb3VzbHkgc2V0IHVwLgoJICogIEB0eXBlIGJvb2xlYW4KCSAqICBAZGVmYXVsdCBmYWxzZQoJICogIEBkdG9wdCBGZWF0dXJlcwoJICogCgkgKiAgQGV4YW1wbGUKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgICAgICAgImJTdGF0ZVNhdmUiOiB0cnVlCgkgKiAgICAgIH0gKTsKCSAqICAgIH0gKTsKCSAqLwoJImJTdGF0ZVNhdmUiOiBmYWxzZSwKCgoJLyoqCgkgKiBDdXN0b21pc2UgdGhlIGNvb2tpZSBhbmQgLyBvciB0aGUgcGFyYW1ldGVycyBiZWluZyBzdG9yZWQgd2hlbiB1c2luZwoJICogRGF0YVRhYmxlcyB3aXRoIHN0YXRlIHNhdmluZyBlbmFibGVkLiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuZXZlcgoJICogdGhlIGNvb2tpZSBpcyBtb2RpZmllZCwgYW5kIGl0IGV4cGVjdHMgYSBmdWxseSBmb3JtZWQgY29va2llIHN0cmluZyB0byBiZQoJICogcmV0dXJuZWQuIE5vdGUgdGhhdCB0aGUgZGF0YSBvYmplY3QgcGFzc2VkIGluIGlzIGEgSmF2YXNjcmlwdCBvYmplY3Qgd2hpY2gKCSAqIG11c3QgYmUgY29udmVydGVkIHRvIGEgc3RyaW5nIChKU09OLnN0cmluZ2lmeSBmb3IgZXhhbXBsZSkuCgkgKiAgQHR5cGUgZnVuY3Rpb24KCSAqICBAcGFyYW0ge3N0cmluZ30gc05hbWUgTmFtZSBvZiB0aGUgY29va2llIGRlZmluZWQgYnkgRGF0YVRhYmxlcwoJICogIEBwYXJhbSB7b2JqZWN0fSBvRGF0YSBEYXRhIHRvIGJlIHN0b3JlZCBpbiB0aGUgY29va2llCgkgKiAgQHBhcmFtIHtzdHJpbmd9IHNFeHBpcmVzIENvb2tpZSBleHBpcmVzIHN0cmluZwoJICogIEBwYXJhbSB7c3RyaW5nfSBzUGF0aCBQYXRoIG9mIHRoZSBjb29raWUgdG8gc2V0CgkgKiAgQHJldHVybnMge3N0cmluZ30gQ29va2llIGZvcm1hdHRlZCBzdHJpbmcgKHdoaWNoIHNob3VsZCBiZSBlbmNvZGVkIGJ5CgkgKiAgICB1c2luZyBlbmNvZGVVUklDb21wb25lbnQoKSkKCSAqICBAZHRvcHQgQ2FsbGJhY2tzCgkgKiAKCSAqICBAZXhhbXBsZQoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiZm5Db29raWVDYWxsYmFjayI6IGZ1bmN0aW9uIChzTmFtZSwgb0RhdGEsIHNFeHBpcmVzLCBzUGF0aCkgewoJICogICAgICAgICAgLy8gQ3VzdG9taXNlIG9EYXRhIG9yIHNOYW1lIG9yIHdoYXRldmVyIGVsc2UgaGVyZQoJICogICAgICAgICAgcmV0dXJuIHNOYW1lICsgIj0iK0pTT04uc3RyaW5naWZ5KG9EYXRhKSsiOyBleHBpcmVzPSIgKyBzRXhwaXJlcyArIjsgcGF0aD0iICsgc1BhdGg7CgkgKiAgICAgICAgfQoJICogICAgICB9ICk7CgkgKiAgICB9ICk7CgkgKi8KCSJmbkNvb2tpZUNhbGxiYWNrIjogbnVsbCwKCgoJLyoqCgkgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIGEgVFIgZWxlbWVudCBpcyBjcmVhdGVkIChhbmQgYWxsIFREIGNoaWxkCgkgKiBlbGVtZW50cyBoYXZlIGJlZW4gaW5zZXJ0ZWQpLCBvciByZWdpc3RlcmVkIGlmIHVzaW5nIGEgRE9NIHNvdXJjZSwgYWxsb3dpbmcKCSAqIG1hbmlwdWxhdGlvbiBvZiB0aGUgVFIgZWxlbWVudCAoYWRkaW5nIGNsYXNzZXMgZXRjKS4KCSAqICBAdHlwZSBmdW5jdGlvbgoJICogIEBwYXJhbSB7bm9kZX0gblJvdyAiVFIiIGVsZW1lbnQgZm9yIHRoZSBjdXJyZW50IHJvdwoJICogIEBwYXJhbSB7YXJyYXl9IGFEYXRhIFJhdyBkYXRhIGFycmF5IGZvciB0aGlzIHJvdwoJICogIEBwYXJhbSB7aW50fSBpRGF0YUluZGV4IFRoZSBpbmRleCBvZiB0aGlzIHJvdyBpbiBhb0RhdGEKCSAqICBAZHRvcHQgQ2FsbGJhY2tzCgkgKiAKCSAqICBAZXhhbXBsZQoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogICAgICAgICJmbkNyZWF0ZWRSb3ciOiBmdW5jdGlvbiggblJvdywgYURhdGEsIGlEYXRhSW5kZXggKSB7CgkgKiAgICAgICAgICAvLyBCb2xkIHRoZSBncmFkZSBmb3IgYWxsICdBJyBncmFkZSBicm93c2VycwoJICogICAgICAgICAgaWYgKCBhRGF0YVs0XSA9PSAiQSIgKQoJICogICAgICAgICAgewoJICogICAgICAgICAgICAkKCd0ZDplcSg0KScsIG5Sb3cpLmh0bWwoICc8Yj5BPC9iPicgKTsKCSAqICAgICAgICAgIH0KCSAqICAgICAgICB9CgkgKiAgICAgIH0gKTsKCSAqICAgIH0gKTsKCSAqLwoJImZuQ3JlYXRlZFJvdyI6IG51bGwsCgoKCS8qKgoJICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgb24gZXZlcnkgJ2RyYXcnIGV2ZW50LCBhbmQgYWxsb3dzIHlvdSB0bwoJICogZHluYW1pY2FsbHkgbW9kaWZ5IGFueSBhc3BlY3QgeW91IHdhbnQgYWJvdXQgdGhlIGNyZWF0ZWQgRE9NLgoJICogIEB0eXBlIGZ1bmN0aW9uCgkgKiAgQHBhcmFtIHtvYmplY3R9IG9TZXR0aW5ncyBEYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdAoJICogIEBkdG9wdCBDYWxsYmFja3MKCSAqIAoJICogIEBleGFtcGxlCgkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgICAgICAgImZuRHJhd0NhbGxiYWNrIjogZnVuY3Rpb24oIG9TZXR0aW5ncyApIHsKCSAqICAgICAgICAgIGFsZXJ0KCAnRGF0YVRhYmxlcyBoYXMgcmVkcmF3biB0aGUgdGFibGUnICk7CgkgKiAgICAgICAgfQoJICogICAgICB9ICk7CgkgKiAgICB9ICk7CgkgKi8KCSJmbkRyYXdDYWxsYmFjayI6IG51bGwsCgoKCS8qKgoJICogSWRlbnRpY2FsIHRvIGZuSGVhZGVyQ2FsbGJhY2soKSBidXQgZm9yIHRoZSB0YWJsZSBmb290ZXIgdGhpcyBmdW5jdGlvbgoJICogYWxsb3dzIHlvdSB0byBtb2RpZnkgdGhlIHRhYmxlIGZvb3RlciBvbiBldmVyeSAnZHJhdycgZXZlbi4KCSAqICBAdHlwZSBmdW5jdGlvbgoJICogIEBwYXJhbSB7bm9kZX0gbkZvb3QgIlRSIiBlbGVtZW50IGZvciB0aGUgZm9vdGVyCgkgKiAgQHBhcmFtIHthcnJheX0gYURhdGEgRnVsbCB0YWJsZSBkYXRhIChhcyBkZXJpdmVkIGZyb20gdGhlIG9yaWdpbmFsIEhUTUwpCgkgKiAgQHBhcmFtIHtpbnR9IGlTdGFydCBJbmRleCBmb3IgdGhlIGN1cnJlbnQgZGlzcGxheSBzdGFydGluZyBwb2ludCBpbiB0aGUgCgkgKiAgICBkaXNwbGF5IGFycmF5CgkgKiAgQHBhcmFtIHtpbnR9IGlFbmQgSW5kZXggZm9yIHRoZSBjdXJyZW50IGRpc3BsYXkgZW5kaW5nIHBvaW50IGluIHRoZSAKCSAqICAgIGRpc3BsYXkgYXJyYXkKCSAqICBAcGFyYW0ge2FycmF5IGludH0gYWlEaXNwbGF5IEluZGV4IGFycmF5IHRvIHRyYW5zbGF0ZSB0aGUgdmlzdWFsIHBvc2l0aW9uCgkgKiAgICB0byB0aGUgZnVsbCBkYXRhIGFycmF5CgkgKiAgQGR0b3B0IENhbGxiYWNrcwoJICogCgkgKiAgQGV4YW1wbGUKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiZm5Gb290ZXJDYWxsYmFjayI6IGZ1bmN0aW9uKCBuRm9vdCwgYURhdGEsIGlTdGFydCwgaUVuZCwgYWlEaXNwbGF5ICkgewoJICogICAgICAgICAgbkZvb3QuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RoJylbMF0uaW5uZXJIVE1MID0gIlN0YXJ0aW5nIGluZGV4IGlzICIraVN0YXJ0OwoJICogICAgICAgIH0KCSAqICAgICAgfSApOwoJICogICAgfSApCgkgKi8KCSJmbkZvb3RlckNhbGxiYWNrIjogbnVsbCwKCgoJLyoqCgkgKiBXaGVuIHJlbmRlcmluZyBsYXJnZSBudW1iZXJzIGluIHRoZSBpbmZvcm1hdGlvbiBlbGVtZW50IGZvciB0aGUgdGFibGUKCSAqIChpLmUuICJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyIpIERhdGFUYWJsZXMgd2lsbCByZW5kZXIgbGFyZ2UgbnVtYmVycwoJICogdG8gaGF2ZSBhIGNvbW1hIHNlcGFyYXRvciBmb3IgdGhlICd0aG91c2FuZHMnIHVuaXRzIChlLmcuIDEgbWlsbGlvbiBpcwoJICogcmVuZGVyZWQgYXMgIjEsMDAwLDAwMCIpIHRvIGhlbHAgcmVhZGFiaWxpdHkgZm9yIHRoZSBlbmQgdXNlci4gVGhpcwoJICogZnVuY3Rpb24gd2lsbCBvdmVycmlkZSB0aGUgZGVmYXVsdCBtZXRob2QgRGF0YVRhYmxlcyB1c2VzLgoJICogIEB0eXBlIGZ1bmN0aW9uCgkgKiAgQG1lbWJlcgoJICogIEBwYXJhbSB7aW50fSBpSW4gbnVtYmVyIHRvIGJlIGZvcm1hdHRlZAoJICogIEByZXR1cm5zIHtzdHJpbmd9IGZvcm1hdHRlZCBzdHJpbmcgZm9yIERhdGFUYWJsZXMgdG8gc2hvdyB0aGUgbnVtYmVyCgkgKiAgQGR0b3B0IENhbGxiYWNrcwoJICogCgkgKiAgQGV4YW1wbGUKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiZm5Gb3JtYXROdW1iZXIiOiBmdW5jdGlvbiAoIGlJbiApIHsKCSAqICAgICAgICAgIGlmICggaUluICZsdDsgMTAwMCApIHsKCSAqICAgICAgICAgICAgcmV0dXJuIGlJbjsKCSAqICAgICAgICAgIH0gZWxzZSB7CgkgKiAgICAgICAgICAgIHZhciAKCSAqICAgICAgICAgICAgICBzPShpSW4rIiIpLCAKCSAqICAgICAgICAgICAgICBhPXMuc3BsaXQoIiIpLCBvdXQ9IiIsIAoJICogICAgICAgICAgICAgIGlMZW49cy5sZW5ndGg7CgkgKiAgICAgICAgICAgIAoJICogICAgICAgICAgICBmb3IgKCB2YXIgaT0wIDsgaSZsdDtpTGVuIDsgaSsrICkgewoJICogICAgICAgICAgICAgIGlmICggaSUzID09PSAwICZhbXA7JmFtcDsgaSAhPT0gMCApIHsKCSAqICAgICAgICAgICAgICAgIG91dCA9ICInIitvdXQ7CgkgKiAgICAgICAgICAgICAgfQoJICogICAgICAgICAgICAgIG91dCA9IGFbaUxlbi1pLTFdK291dDsKCSAqICAgICAgICAgICAgfQoJICogICAgICAgICAgfQoJICogICAgICAgICAgcmV0dXJuIG91dDsKCSAqICAgICAgICB9OwoJICogICAgICB9ICk7CgkgKiAgICB9ICk7CgkgKi8KCSJmbkZvcm1hdE51bWJlciI6IGZ1bmN0aW9uICggaUluICkgewoJCWlmICggaUluIDwgMTAwMCApCgkJewoJCQkvLyBBIHNtYWxsIG9wdGltaXNhdGlvbiBmb3Igd2hhdCBpcyBsaWtlbHkgdG8gYmUgdGhlIG1ham9yaXR5IG9mIHVzZSBjYXNlcwoJCQlyZXR1cm4gaUluOwoJCX0KCgkJdmFyIHM9KGlJbisiIiksIGE9cy5zcGxpdCgiIiksIG91dD0iIiwgaUxlbj1zLmxlbmd0aDsKCQkKCQlmb3IgKCB2YXIgaT0wIDsgaTxpTGVuIDsgaSsrICkKCQl7CgkJCWlmICggaSUzID09PSAwICYmIGkgIT09IDAgKQoJCQl7CgkJCQlvdXQgPSB0aGlzLm9MYW5ndWFnZS5zSW5mb1Rob3VzYW5kcytvdXQ7CgkJCX0KCQkJb3V0ID0gYVtpTGVuLWktMV0rb3V0OwoJCX0KCQlyZXR1cm4gb3V0OwoJfSwKCgoJLyoqCgkgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBvbiBldmVyeSAnZHJhdycgZXZlbnQsIGFuZCBhbGxvd3MgeW91IHRvCgkgKiBkeW5hbWljYWxseSBtb2RpZnkgdGhlIGhlYWRlciByb3cuIFRoaXMgY2FuIGJlIHVzZWQgdG8gY2FsY3VsYXRlIGFuZAoJICogZGlzcGxheSB1c2VmdWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHRhYmxlLgoJICogIEB0eXBlIGZ1bmN0aW9uCgkgKiAgQHBhcmFtIHtub2RlfSBuSGVhZCAiVFIiIGVsZW1lbnQgZm9yIHRoZSBoZWFkZXIKCSAqICBAcGFyYW0ge2FycmF5fSBhRGF0YSBGdWxsIHRhYmxlIGRhdGEgKGFzIGRlcml2ZWQgZnJvbSB0aGUgb3JpZ2luYWwgSFRNTCkKCSAqICBAcGFyYW0ge2ludH0gaVN0YXJ0IEluZGV4IGZvciB0aGUgY3VycmVudCBkaXNwbGF5IHN0YXJ0aW5nIHBvaW50IGluIHRoZQoJICogICAgZGlzcGxheSBhcnJheQoJICogIEBwYXJhbSB7aW50fSBpRW5kIEluZGV4IGZvciB0aGUgY3VycmVudCBkaXNwbGF5IGVuZGluZyBwb2ludCBpbiB0aGUKCSAqICAgIGRpc3BsYXkgYXJyYXkKCSAqICBAcGFyYW0ge2FycmF5IGludH0gYWlEaXNwbGF5IEluZGV4IGFycmF5IHRvIHRyYW5zbGF0ZSB0aGUgdmlzdWFsIHBvc2l0aW9uCgkgKiAgICB0byB0aGUgZnVsbCBkYXRhIGFycmF5CgkgKiAgQGR0b3B0IENhbGxiYWNrcwoJICogCgkgKiAgQGV4YW1wbGUKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiZm5IZWFkZXJDYWxsYmFjayI6IGZ1bmN0aW9uKCBuSGVhZCwgYURhdGEsIGlTdGFydCwgaUVuZCwgYWlEaXNwbGF5ICkgewoJICogICAgICAgICAgbkhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RoJylbMF0uaW5uZXJIVE1MID0gIkRpc3BsYXlpbmcgIisoaUVuZC1pU3RhcnQpKyIgcmVjb3JkcyI7CgkgKiAgICAgICAgfQoJICogICAgICB9ICk7CgkgKiAgICB9ICkKCSAqLwoJImZuSGVhZGVyQ2FsbGJhY2siOiBudWxsLAoKCgkvKioKCSAqIFRoZSBpbmZvcm1hdGlvbiBlbGVtZW50IGNhbiBiZSB1c2VkIHRvIGNvbnZleSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY3VycmVudAoJICogc3RhdGUgb2YgdGhlIHRhYmxlLiBBbHRob3VnaCB0aGUgaW50ZXJuYXRpb25hbGlzYXRpb24gb3B0aW9ucyBwcmVzZW50ZWQgYnkKCSAqIERhdGFUYWJsZXMgYXJlIHF1aXRlIGNhcGFibGUgb2YgZGVhbGluZyB3aXRoIG1vc3QgY3VzdG9taXNhdGlvbnMsIHRoZXJlIG1heQoJICogYmUgdGltZXMgd2hlcmUgeW91IHdpc2ggdG8gY3VzdG9taXNlIHRoZSBzdHJpbmcgZnVydGhlci4gVGhpcyBjYWxsYmFjawoJICogYWxsb3dzIHlvdSB0byBkbyBleGFjdGx5IHRoYXQuCgkgKiAgQHR5cGUgZnVuY3Rpb24KCSAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIERhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CgkgKiAgQHBhcmFtIHtpbnR9IGlTdGFydCBTdGFydGluZyBwb3NpdGlvbiBpbiBkYXRhIGZvciB0aGUgZHJhdwoJICogIEBwYXJhbSB7aW50fSBpRW5kIEVuZCBwb3NpdGlvbiBpbiBkYXRhIGZvciB0aGUgZHJhdwoJICogIEBwYXJhbSB7aW50fSBpTWF4IFRvdGFsIG51bWJlciBvZiByb3dzIGluIHRoZSB0YWJsZSAocmVnYXJkbGVzcyBvZgoJICogICAgZmlsdGVyaW5nKQoJICogIEBwYXJhbSB7aW50fSBpVG90YWwgVG90YWwgbnVtYmVyIG9mIHJvd3MgaW4gdGhlIGRhdGEgc2V0LCBhZnRlciBmaWx0ZXJpbmcKCSAqICBAcGFyYW0ge3N0cmluZ30gc1ByZSBUaGUgc3RyaW5nIHRoYXQgRGF0YVRhYmxlcyBoYXMgZm9ybWF0dGVkIHVzaW5nIGl0J3MKCSAqICAgIG93biBydWxlcwoJICogIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBzdHJpbmcgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBpbmZvcm1hdGlvbiBlbGVtZW50LgoJICogIEBkdG9wdCBDYWxsYmFja3MKCSAqIAoJICogIEBleGFtcGxlCgkgKiAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogICAgICAiZm5JbmZvQ2FsbGJhY2siOiBmdW5jdGlvbiggb1NldHRpbmdzLCBpU3RhcnQsIGlFbmQsIGlNYXgsIGlUb3RhbCwgc1ByZSApIHsKCSAqICAgICAgICByZXR1cm4gaVN0YXJ0ICsiIHRvICIrIGlFbmQ7CgkgKiAgICAgIH0KCSAqICAgIH0gKTsKCSAqLwoJImZuSW5mb0NhbGxiYWNrIjogbnVsbCwKCgoJLyoqCgkgKiBDYWxsZWQgd2hlbiB0aGUgdGFibGUgaGFzIGJlZW4gaW5pdGlhbGlzZWQuIE5vcm1hbGx5IERhdGFUYWJsZXMgd2lsbAoJICogaW5pdGlhbGlzZSBzZXF1ZW50aWFsbHkgYW5kIHRoZXJlIHdpbGwgYmUgbm8gbmVlZCBmb3IgdGhpcyBmdW5jdGlvbiwKCSAqIGhvd2V2ZXIsIHRoaXMgZG9lcyBub3QgaG9sZCB0cnVlIHdoZW4gdXNpbmcgZXh0ZXJuYWwgbGFuZ3VhZ2UgaW5mb3JtYXRpb24KCSAqIHNpbmNlIHRoYXQgaXMgb2J0YWluZWQgdXNpbmcgYW4gYXN5bmMgWEhSIGNhbGwuCgkgKiAgQHR5cGUgZnVuY3Rpb24KCSAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIERhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CgkgKiAgQHBhcmFtIHtvYmplY3R9IGpzb24gVGhlIEpTT04gb2JqZWN0IHJlcXVlc3QgZnJvbSB0aGUgc2VydmVyIC0gb25seQoJICogICAgcHJlc2VudCBpZiBjbGllbnQtc2lkZSBBamF4IHNvdXJjZWQgZGF0YSBpcyB1c2VkCgkgKiAgQGR0b3B0IENhbGxiYWNrcwoJICogCgkgKiAgQGV4YW1wbGUKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiZm5Jbml0Q29tcGxldGUiOiBmdW5jdGlvbihvU2V0dGluZ3MsIGpzb24pIHsKCSAqICAgICAgICAgIGFsZXJ0KCAnRGF0YVRhYmxlcyBoYXMgZmluaXNoZWQgaXRzIGluaXRpYWxpc2F0aW9uLicgKTsKCSAqICAgICAgICB9CgkgKiAgICAgIH0gKTsKCSAqICAgIH0gKQoJICovCgkiZm5Jbml0Q29tcGxldGUiOiBudWxsLAoKCgkvKioKCSAqIENhbGxlZCBhdCB0aGUgdmVyeSBzdGFydCBvZiBlYWNoIHRhYmxlIGRyYXcgYW5kIGNhbiBiZSB1c2VkIHRvIGNhbmNlbCB0aGUKCSAqIGRyYXcgYnkgcmV0dXJuaW5nIGZhbHNlLCBhbnkgb3RoZXIgcmV0dXJuIChpbmNsdWRpbmcgdW5kZWZpbmVkKSByZXN1bHRzIGluCgkgKiB0aGUgZnVsbCBkcmF3IG9jY3VycmluZykuCgkgKiAgQHR5cGUgZnVuY3Rpb24KCSAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIERhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CgkgKiAgQHJldHVybnMge2Jvb2xlYW59IEZhbHNlIHdpbGwgY2FuY2VsIHRoZSBkcmF3LCBhbnl0aGluZyBlbHNlIChpbmNsdWRpbmcgbm8KCSAqICAgIHJldHVybikgd2lsbCBhbGxvdyBpdCB0byBjb21wbGV0ZS4KCSAqICBAZHRvcHQgQ2FsbGJhY2tzCgkgKiAKCSAqICBAZXhhbXBsZQoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogICAgICAgICJmblByZURyYXdDYWxsYmFjayI6IGZ1bmN0aW9uKCBvU2V0dGluZ3MgKSB7CgkgKiAgICAgICAgICBpZiAoICQoJyN0ZXN0JykudmFsKCkgPT0gMSApIHsKCSAqICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwoJICogICAgICAgICAgfQoJICogICAgICAgIH0KCSAqICAgICAgfSApOwoJICogICAgfSApOwoJICovCgkiZm5QcmVEcmF3Q2FsbGJhY2siOiBudWxsLAoKCgkvKioKCSAqIFRoaXMgZnVuY3Rpb24gYWxsb3dzIHlvdSB0byAncG9zdCBwcm9jZXNzJyBlYWNoIHJvdyBhZnRlciBpdCBoYXZlIGJlZW4KCSAqIGdlbmVyYXRlZCBmb3IgZWFjaCB0YWJsZSBkcmF3LCBidXQgYmVmb3JlIGl0IGlzIHJlbmRlcmVkIG9uIHNjcmVlbi4gVGhpcwoJICogZnVuY3Rpb24gbWlnaHQgYmUgdXNlZCBmb3Igc2V0dGluZyB0aGUgcm93IGNsYXNzIG5hbWUgZXRjLgoJICogIEB0eXBlIGZ1bmN0aW9uCgkgKiAgQHBhcmFtIHtub2RlfSBuUm93ICJUUiIgZWxlbWVudCBmb3IgdGhlIGN1cnJlbnQgcm93CgkgKiAgQHBhcmFtIHthcnJheX0gYURhdGEgUmF3IGRhdGEgYXJyYXkgZm9yIHRoaXMgcm93CgkgKiAgQHBhcmFtIHtpbnR9IGlEaXNwbGF5SW5kZXggVGhlIGRpc3BsYXkgaW5kZXggZm9yIHRoZSBjdXJyZW50IHRhYmxlIGRyYXcKCSAqICBAcGFyYW0ge2ludH0gaURpc3BsYXlJbmRleEZ1bGwgVGhlIGluZGV4IG9mIHRoZSBkYXRhIGluIHRoZSBmdWxsIGxpc3Qgb2YKCSAqICAgIHJvd3MgKGFmdGVyIGZpbHRlcmluZykKCSAqICBAZHRvcHQgQ2FsbGJhY2tzCgkgKiAKCSAqICBAZXhhbXBsZQoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogICAgICAgICJmblJvd0NhbGxiYWNrIjogZnVuY3Rpb24oIG5Sb3csIGFEYXRhLCBpRGlzcGxheUluZGV4LCBpRGlzcGxheUluZGV4RnVsbCApIHsKCSAqICAgICAgICAgIC8vIEJvbGQgdGhlIGdyYWRlIGZvciBhbGwgJ0EnIGdyYWRlIGJyb3dzZXJzCgkgKiAgICAgICAgICBpZiAoIGFEYXRhWzRdID09ICJBIiApCgkgKiAgICAgICAgICB7CgkgKiAgICAgICAgICAgICQoJ3RkOmVxKDQpJywgblJvdykuaHRtbCggJzxiPkE8L2I+JyApOwoJICogICAgICAgICAgfQoJICogICAgICAgIH0KCSAqICAgICAgfSApOwoJICogICAgfSApOwoJICovCgkiZm5Sb3dDYWxsYmFjayI6IG51bGwsCgoKCS8qKgoJICogVGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHlvdSB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBmdW5jdGlvbiB3aGljaCBvYnRhaW5zCgkgKiB0aGUgZGF0YSBmcm9tIHRoZSBzZXJ2ZXIgKCQuZ2V0SlNPTikgc28gc29tZXRoaW5nIG1vcmUgc3VpdGFibGUgZm9yIHlvdXIKCSAqIGFwcGxpY2F0aW9uLiBGb3IgZXhhbXBsZSB5b3UgY291bGQgdXNlIFBPU1QgZGF0YSwgb3IgcHVsbCBpbmZvcm1hdGlvbiBmcm9tCgkgKiBhIEdlYXJzIG9yIEFJUiBkYXRhYmFzZS4KCSAqICBAdHlwZSBmdW5jdGlvbgoJICogIEBtZW1iZXIKCSAqICBAcGFyYW0ge3N0cmluZ30gc1NvdXJjZSBIVFRQIHNvdXJjZSB0byBvYnRhaW4gdGhlIGRhdGEgZnJvbSAoc0FqYXhTb3VyY2UpCgkgKiAgQHBhcmFtIHthcnJheX0gYW9EYXRhIEEga2V5L3ZhbHVlIHBhaXIgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGRhdGEgdG8gc2VuZAoJICogICAgdG8gdGhlIHNlcnZlcgoJICogIEBwYXJhbSB7ZnVuY3Rpb259IGZuQ2FsbGJhY2sgdG8gYmUgY2FsbGVkIG9uIGNvbXBsZXRpb24gb2YgdGhlIGRhdGEgZ2V0CgkgKiAgICBwcm9jZXNzIHRoYXQgd2lsbCBkcmF3IHRoZSBkYXRhIG9uIHRoZSBwYWdlLgoJICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgRGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCSAqICBAZHRvcHQgQ2FsbGJhY2tzCgkgKiAgQGR0b3B0IFNlcnZlci1zaWRlCgkgKiAKCSAqICBAZXhhbXBsZQoJICogICAgLy8gUE9TVCBkYXRhIHRvIHNlcnZlcgoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogICAgICAgICJiUHJvY2Vzc2luZyI6IHRydWUsCgkgKiAgICAgICAgImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCSAqICAgICAgICAic0FqYXhTb3VyY2UiOiAieGhyLnBocCIsCgkgKiAgICAgICAgImZuU2VydmVyRGF0YSI6IGZ1bmN0aW9uICggc1NvdXJjZSwgYW9EYXRhLCBmbkNhbGxiYWNrLCBvU2V0dGluZ3MgKSB7CgkgKiAgICAgICAgICBvU2V0dGluZ3MuanFYSFIgPSAkLmFqYXgoIHsKCSAqICAgICAgICAgICAgImRhdGFUeXBlIjogJ2pzb24nLCAKCSAqICAgICAgICAgICAgInR5cGUiOiAiUE9TVCIsIAoJICogICAgICAgICAgICAidXJsIjogc1NvdXJjZSwgCgkgKiAgICAgICAgICAgICJkYXRhIjogYW9EYXRhLCAKCSAqICAgICAgICAgICAgInN1Y2Nlc3MiOiBmbkNhbGxiYWNrCgkgKiAgICAgICAgICB9ICk7CgkgKiAgICAgICAgfQoJICogICAgICB9ICk7CgkgKiAgICB9ICk7CgkgKi8KCSJmblNlcnZlckRhdGEiOiBmdW5jdGlvbiAoIHNVcmwsIGFvRGF0YSwgZm5DYWxsYmFjaywgb1NldHRpbmdzICkgewoJCW9TZXR0aW5ncy5qcVhIUiA9ICQuYWpheCggewoJCQkidXJsIjogIHNVcmwsCgkJCSJkYXRhIjogYW9EYXRhLAoJCQkic3VjY2VzcyI6IGZ1bmN0aW9uIChqc29uKSB7CgkJCQlpZiAoIGpzb24uc0Vycm9yICkgewoJCQkJCW9TZXR0aW5ncy5vQXBpLl9mbkxvZyggb1NldHRpbmdzLCAwLCBqc29uLnNFcnJvciApOwoJCQkJfQoJCQkJCgkJCQkkKG9TZXR0aW5ncy5vSW5zdGFuY2UpLnRyaWdnZXIoJ3hocicsIFtvU2V0dGluZ3MsIGpzb25dKTsKCQkJCWZuQ2FsbGJhY2soIGpzb24gKTsKCQkJfSwKCQkJImRhdGFUeXBlIjogImpzb24iLAoJCQkiY2FjaGUiOiBmYWxzZSwKCQkJInR5cGUiOiBvU2V0dGluZ3Muc1NlcnZlck1ldGhvZCwKCQkJImVycm9yIjogZnVuY3Rpb24gKHhociwgZXJyb3IsIHRocm93bikgewoJCQkJaWYgKCBlcnJvciA9PSAicGFyc2VyZXJyb3IiICkgewoJCQkJCW9TZXR0aW5ncy5vQXBpLl9mbkxvZyggb1NldHRpbmdzLCAwLCAiRGF0YVRhYmxlcyB3YXJuaW5nOiBKU09OIGRhdGEgZnJvbSAiKwoJCQkJCQkic2VydmVyIGNvdWxkIG5vdCBiZSBwYXJzZWQuIFRoaXMgaXMgY2F1c2VkIGJ5IGEgSlNPTiBmb3JtYXR0aW5nIGVycm9yLiIgKTsKCQkJCX0KCQkJfQoJCX0gKTsKCX0sCgoKCS8qKgoJICogSXQgaXMgb2Z0ZW4gdXNlZnVsIHRvIHNlbmQgZXh0cmEgZGF0YSB0byB0aGUgc2VydmVyIHdoZW4gbWFraW5nIGFuIEFqYXgKCSAqIHJlcXVlc3QgLSBmb3IgZXhhbXBsZSBjdXN0b20gZmlsdGVyaW5nIGluZm9ybWF0aW9uLCBhbmQgdGhpcyBjYWxsYmFjawoJICogZnVuY3Rpb24gbWFrZXMgaXQgdHJpdmlhbCB0byBzZW5kIGV4dHJhIGluZm9ybWF0aW9uIHRvIHRoZSBzZXJ2ZXIuIFRoZQoJICogcGFzc2VkIGluIHBhcmFtZXRlciBpcyB0aGUgZGF0YSBzZXQgdGhhdCBoYXMgYmVlbiBjb25zdHJ1Y3RlZCBieQoJICogRGF0YVRhYmxlcywgYW5kIHlvdSBjYW4gYWRkIHRvIHRoaXMgb3IgbW9kaWZ5IGl0IGFzIHlvdSByZXF1aXJlLgoJICogIEB0eXBlIGZ1bmN0aW9uCgkgKiAgQHBhcmFtIHthcnJheX0gYW9EYXRhIERhdGEgYXJyYXkgKGFycmF5IG9mIG9iamVjdHMgd2hpY2ggYXJlIG5hbWUvdmFsdWUKCSAqICAgIHBhaXJzKSB0aGF0IGhhcyBiZWVuIGNvbnN0cnVjdGVkIGJ5IERhdGFUYWJsZXMgYW5kIHdpbGwgYmUgc2VudCB0byB0aGUKCSAqICAgIHNlcnZlci4gSW4gdGhlIGNhc2Ugb2YgQWpheCBzb3VyY2VkIGRhdGEgd2l0aCBzZXJ2ZXItc2lkZSBwcm9jZXNzaW5nCgkgKiAgICB0aGlzIHdpbGwgYmUgYW4gZW1wdHkgYXJyYXksIGZvciBzZXJ2ZXItc2lkZSBwcm9jZXNzaW5nIHRoZXJlIHdpbGwgYmUgYQoJICogICAgc2lnbmlmaWNhbnQgbnVtYmVyIG9mIHBhcmFtZXRlcnMhCgkgKiAgQHJldHVybnMge3VuZGVmaW5lZH0gRW5zdXJlIHRoYXQgeW91IG1vZGlmeSB0aGUgYW9EYXRhIGFycmF5IHBhc3NlZCBpbiwKCSAqICAgIGFzIHRoaXMgaXMgcGFzc2VkIGJ5IHJlZmVyZW5jZS4KCSAqICBAZHRvcHQgQ2FsbGJhY2tzCgkgKiAgQGR0b3B0IFNlcnZlci1zaWRlCgkgKiAKCSAqICBAZXhhbXBsZQoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogICAgICAgICJiUHJvY2Vzc2luZyI6IHRydWUsCgkgKiAgICAgICAgImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCSAqICAgICAgICAic0FqYXhTb3VyY2UiOiAic2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJICogICAgICAgICJmblNlcnZlclBhcmFtcyI6IGZ1bmN0aW9uICggYW9EYXRhICkgewoJICogICAgICAgICAgYW9EYXRhLnB1c2goIHsgIm5hbWUiOiAibW9yZV9kYXRhIiwgInZhbHVlIjogIm15X3ZhbHVlIiB9ICk7CgkgKiAgICAgICAgfQoJICogICAgICB9ICk7CgkgKiAgICB9ICk7CgkgKi8KCSJmblNlcnZlclBhcmFtcyI6IG51bGwsCgoKCS8qKgoJICogTG9hZCB0aGUgdGFibGUgc3RhdGUuIFdpdGggdGhpcyBmdW5jdGlvbiB5b3UgY2FuIGRlZmluZSBmcm9tIHdoZXJlLCBhbmQgaG93LCB0aGUKCSAqIHN0YXRlIG9mIGEgdGFibGUgaXMgbG9hZGVkLiBCeSBkZWZhdWx0IERhdGFUYWJsZXMgd2lsbCBsb2FkIGZyb20gaXRzIHN0YXRlIHNhdmluZwoJICogY29va2llLCBidXQgeW91IG1pZ2h0IHdpc2ggdG8gdXNlIGxvY2FsIHN0b3JhZ2UgKEhUTUw1KSBvciBhIHNlcnZlci1zaWRlIGRhdGFiYXNlLgoJICogIEB0eXBlIGZ1bmN0aW9uCgkgKiAgQG1lbWJlcgoJICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgRGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCSAqICBAcmV0dXJuIHtvYmplY3R9IFRoZSBEYXRhVGFibGVzIHN0YXRlIG9iamVjdCB0byBiZSBsb2FkZWQKCSAqICBAZHRvcHQgQ2FsbGJhY2tzCgkgKiAKCSAqICBAZXhhbXBsZQoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogICAgICAgICJiU3RhdGVTYXZlIjogdHJ1ZSwKCSAqICAgICAgICAiZm5TdGF0ZUxvYWQiOiBmdW5jdGlvbiAob1NldHRpbmdzKSB7CgkgKiAgICAgICAgICB2YXIgbzsKCSAqICAgICAgICAgIAoJICogICAgICAgICAgLy8gU2VuZCBhbiBBamF4IHJlcXVlc3QgdG8gdGhlIHNlcnZlciB0byBnZXQgdGhlIGRhdGEuIE5vdGUgdGhhdAoJICogICAgICAgICAgLy8gdGhpcyBpcyBhIHN5bmNocm9ub3VzIHJlcXVlc3QuCgkgKiAgICAgICAgICAkLmFqYXgoIHsKCSAqICAgICAgICAgICAgInVybCI6ICIvc3RhdGVfbG9hZCIsCgkgKiAgICAgICAgICAgICJhc3luYyI6IGZhbHNlLAoJICogICAgICAgICAgICAiZGF0YVR5cGUiOiAianNvbiIsCgkgKiAgICAgICAgICAgICJzdWNjZXNzIjogZnVuY3Rpb24gKGpzb24pIHsKCSAqICAgICAgICAgICAgICBvID0ganNvbjsKCSAqICAgICAgICAgICAgfQoJICogICAgICAgICAgfSApOwoJICogICAgICAgICAgCgkgKiAgICAgICAgICByZXR1cm4gbzsKCSAqICAgICAgICB9CgkgKiAgICAgIH0gKTsKCSAqICAgIH0gKTsKCSAqLwoJImZuU3RhdGVMb2FkIjogZnVuY3Rpb24gKCBvU2V0dGluZ3MgKSB7CgkJdmFyIHNEYXRhID0gdGhpcy5vQXBpLl9mblJlYWRDb29raWUoIG9TZXR0aW5ncy5zQ29va2llUHJlZml4K29TZXR0aW5ncy5zSW5zdGFuY2UgKTsKCQl2YXIgb0RhdGE7CgoJCXRyeSB7CgkJCW9EYXRhID0gKHR5cGVvZiAkLnBhcnNlSlNPTiA9PT0gJ2Z1bmN0aW9uJykgPyAKCQkJCSQucGFyc2VKU09OKHNEYXRhKSA6IGV2YWwoICcoJytzRGF0YSsnKScgKTsKCQl9IGNhdGNoIChlKSB7CgkJCW9EYXRhID0gbnVsbDsKCQl9CgoJCXJldHVybiBvRGF0YTsKCX0sCgoKCS8qKgoJICogQ2FsbGJhY2sgd2hpY2ggYWxsb3dzIG1vZGlmaWNhdGlvbiBvZiB0aGUgc2F2ZWQgc3RhdGUgcHJpb3IgdG8gbG9hZGluZyB0aGF0IHN0YXRlLgoJICogVGhpcyBjYWxsYmFjayBpcyBjYWxsZWQgd2hlbiB0aGUgdGFibGUgaXMgbG9hZGluZyBzdGF0ZSBmcm9tIHRoZSBzdG9yZWQgZGF0YSwgYnV0CgkgKiBwcmlvciB0byB0aGUgc2V0dGluZ3Mgb2JqZWN0IGJlaW5nIG1vZGlmaWVkIGJ5IHRoZSBzYXZlZCBzdGF0ZS4gTm90ZSB0aGF0IGZvciAKCSAqIHBsdWctaW4gYXV0aG9ycywgeW91IHNob3VsZCB1c2UgdGhlICdzdGF0ZUxvYWRQYXJhbXMnIGV2ZW50IHRvIGxvYWQgcGFyYW1ldGVycyBmb3IgCgkgKiBhIHBsdWctaW4uCgkgKiAgQHR5cGUgZnVuY3Rpb24KCSAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIERhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CgkgKiAgQHBhcmFtIHtvYmplY3R9IG9EYXRhIFRoZSBzdGF0ZSBvYmplY3QgdGhhdCBpcyB0byBiZSBsb2FkZWQKCSAqICBAZHRvcHQgQ2FsbGJhY2tzCgkgKiAKCSAqICBAZXhhbXBsZQoJICogICAgLy8gUmVtb3ZlIGEgc2F2ZWQgZmlsdGVyLCBzbyBmaWx0ZXJpbmcgaXMgbmV2ZXIgbG9hZGVkCgkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgICAgICAgImJTdGF0ZVNhdmUiOiB0cnVlLAoJICogICAgICAgICJmblN0YXRlTG9hZFBhcmFtcyI6IGZ1bmN0aW9uIChvU2V0dGluZ3MsIG9EYXRhKSB7CgkgKiAgICAgICAgICBvRGF0YS5vU2VhcmNoLnNTZWFyY2ggPSAiIjsKCSAqICAgICAgICB9CgkgKiAgICAgIH0gKTsKCSAqICAgIH0gKTsKCSAqIAoJICogIEBleGFtcGxlCgkgKiAgICAvLyBEaXNhbGxvdyBzdGF0ZSBsb2FkaW5nIGJ5IHJldHVybmluZyBmYWxzZQoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogICAgICAgICJiU3RhdGVTYXZlIjogdHJ1ZSwKCSAqICAgICAgICAiZm5TdGF0ZUxvYWRQYXJhbXMiOiBmdW5jdGlvbiAob1NldHRpbmdzLCBvRGF0YSkgewoJICogICAgICAgICAgcmV0dXJuIGZhbHNlOwoJICogICAgICAgIH0KCSAqICAgICAgfSApOwoJICogICAgfSApOwoJICovCgkiZm5TdGF0ZUxvYWRQYXJhbXMiOiBudWxsLAoKCgkvKioKCSAqIENhbGxiYWNrIHRoYXQgaXMgY2FsbGVkIHdoZW4gdGhlIHN0YXRlIGhhcyBiZWVuIGxvYWRlZCBmcm9tIHRoZSBzdGF0ZSBzYXZpbmcgbWV0aG9kCgkgKiBhbmQgdGhlIERhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0IGhhcyBiZWVuIG1vZGlmaWVkIGFzIGEgcmVzdWx0IG9mIHRoZSBsb2FkZWQgc3RhdGUuCgkgKiAgQHR5cGUgZnVuY3Rpb24KCSAqICBAcGFyYW0ge29iamVjdH0gb1NldHRpbmdzIERhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0CgkgKiAgQHBhcmFtIHtvYmplY3R9IG9EYXRhIFRoZSBzdGF0ZSBvYmplY3QgdGhhdCB3YXMgbG9hZGVkCgkgKiAgQGR0b3B0IENhbGxiYWNrcwoJICogCgkgKiAgQGV4YW1wbGUKCSAqICAgIC8vIFNob3cgYW4gYWxlcnQgd2l0aCB0aGUgZmlsdGVyaW5nIHZhbHVlIHRoYXQgd2FzIHNhdmVkCgkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgICAgICAgImJTdGF0ZVNhdmUiOiB0cnVlLAoJICogICAgICAgICJmblN0YXRlTG9hZGVkIjogZnVuY3Rpb24gKG9TZXR0aW5ncywgb0RhdGEpIHsKCSAqICAgICAgICAgIGFsZXJ0KCAnU2F2ZWQgZmlsdGVyIHdhczogJytvRGF0YS5vU2VhcmNoLnNTZWFyY2ggKTsKCSAqICAgICAgICB9CgkgKiAgICAgIH0gKTsKCSAqICAgIH0gKTsKCSAqLwoJImZuU3RhdGVMb2FkZWQiOiBudWxsLAoKCgkvKioKCSAqIFNhdmUgdGhlIHRhYmxlIHN0YXRlLiBUaGlzIGZ1bmN0aW9uIGFsbG93cyB5b3UgdG8gZGVmaW5lIHdoZXJlIGFuZCBob3cgdGhlIHN0YXRlCgkgKiBpbmZvcm1hdGlvbiBmb3IgdGhlIHRhYmxlIGlzIHN0b3JlZCAtIGJ5IGRlZmF1bHQgaXQgd2lsbCB1c2UgYSBjb29raWUsIGJ1dCB5b3UKCSAqIG1pZ2h0IHdhbnQgdG8gdXNlIGxvY2FsIHN0b3JhZ2UgKEhUTUw1KSBvciBhIHNlcnZlci1zaWRlIGRhdGFiYXNlLgoJICogIEB0eXBlIGZ1bmN0aW9uCgkgKiAgQG1lbWJlcgoJICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgRGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCSAqICBAcGFyYW0ge29iamVjdH0gb0RhdGEgVGhlIHN0YXRlIG9iamVjdCB0byBiZSBzYXZlZAoJICogIEBkdG9wdCBDYWxsYmFja3MKCSAqIAoJICogIEBleGFtcGxlCgkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgICAgICAgImJTdGF0ZVNhdmUiOiB0cnVlLAoJICogICAgICAgICJmblN0YXRlU2F2ZSI6IGZ1bmN0aW9uIChvU2V0dGluZ3MsIG9EYXRhKSB7CgkgKiAgICAgICAgICAvLyBTZW5kIGFuIEFqYXggcmVxdWVzdCB0byB0aGUgc2VydmVyIHdpdGggdGhlIHN0YXRlIG9iamVjdAoJICogICAgICAgICAgJC5hamF4KCB7CgkgKiAgICAgICAgICAgICJ1cmwiOiAiL3N0YXRlX3NhdmUiLAoJICogICAgICAgICAgICAiZGF0YSI6IG9EYXRhLAoJICogICAgICAgICAgICAiZGF0YVR5cGUiOiAianNvbiIsCgkgKiAgICAgICAgICAgICJtZXRob2QiOiAiUE9TVCIKCSAqICAgICAgICAgICAgInN1Y2Nlc3MiOiBmdW5jdGlvbiAoKSB7fQoJICogICAgICAgICAgfSApOwoJICogICAgICAgIH0KCSAqICAgICAgfSApOwoJICogICAgfSApOwoJICovCgkiZm5TdGF0ZVNhdmUiOiBmdW5jdGlvbiAoIG9TZXR0aW5ncywgb0RhdGEgKSB7CgkJdGhpcy5vQXBpLl9mbkNyZWF0ZUNvb2tpZSggCgkJCW9TZXR0aW5ncy5zQ29va2llUHJlZml4K29TZXR0aW5ncy5zSW5zdGFuY2UsIAoJCQl0aGlzLm9BcGkuX2ZuSnNvblN0cmluZyhvRGF0YSksIAoJCQlvU2V0dGluZ3MuaUNvb2tpZUR1cmF0aW9uLCAKCQkJb1NldHRpbmdzLnNDb29raWVQcmVmaXgsIAoJCQlvU2V0dGluZ3MuZm5Db29raWVDYWxsYmFjawoJCSk7Cgl9LAoKCgkvKioKCSAqIENhbGxiYWNrIHdoaWNoIGFsbG93cyBtb2RpZmljYXRpb24gb2YgdGhlIHN0YXRlIHRvIGJlIHNhdmVkLiBDYWxsZWQgd2hlbiB0aGUgdGFibGUgCgkgKiBoYXMgY2hhbmdlZCBzdGF0ZSBhIG5ldyBzdGF0ZSBzYXZlIGlzIHJlcXVpcmVkLiBUaGlzIG1ldGhvZCBhbGxvd3MgbW9kaWZpY2F0aW9uIG9mCgkgKiB0aGUgc3RhdGUgc2F2aW5nIG9iamVjdCBwcmlvciB0byBhY3R1YWxseSBkb2luZyB0aGUgc2F2ZSwgaW5jbHVkaW5nIGFkZGl0aW9uIG9yIAoJICogb3RoZXIgc3RhdGUgcHJvcGVydGllcyBvciBtb2RpZmljYXRpb24uIE5vdGUgdGhhdCBmb3IgcGx1Zy1pbiBhdXRob3JzLCB5b3Ugc2hvdWxkIAoJICogdXNlIHRoZSAnc3RhdGVTYXZlUGFyYW1zJyBldmVudCB0byBzYXZlIHBhcmFtZXRlcnMgZm9yIGEgcGx1Zy1pbi4KCSAqICBAdHlwZSBmdW5jdGlvbgoJICogIEBwYXJhbSB7b2JqZWN0fSBvU2V0dGluZ3MgRGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QKCSAqICBAcGFyYW0ge29iamVjdH0gb0RhdGEgVGhlIHN0YXRlIG9iamVjdCB0byBiZSBzYXZlZAoJICogIEBkdG9wdCBDYWxsYmFja3MKCSAqIAoJICogIEBleGFtcGxlCgkgKiAgICAvLyBSZW1vdmUgYSBzYXZlZCBmaWx0ZXIsIHNvIGZpbHRlcmluZyBpcyBuZXZlciBzYXZlZAoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogICAgICAgICJiU3RhdGVTYXZlIjogdHJ1ZSwKCSAqICAgICAgICAiZm5TdGF0ZVNhdmVQYXJhbXMiOiBmdW5jdGlvbiAob1NldHRpbmdzLCBvRGF0YSkgewoJICogICAgICAgICAgb0RhdGEub1NlYXJjaC5zU2VhcmNoID0gIiI7CgkgKiAgICAgICAgfQoJICogICAgICB9ICk7CgkgKiAgICB9ICk7CgkgKi8KCSJmblN0YXRlU2F2ZVBhcmFtcyI6IG51bGwsCgoKCS8qKgoJICogRHVyYXRpb24gb2YgdGhlIGNvb2tpZSB3aGljaCBpcyB1c2VkIGZvciBzdG9yaW5nIHNlc3Npb24gaW5mb3JtYXRpb24uIFRoaXMKCSAqIHZhbHVlIGlzIGdpdmVuIGluIHNlY29uZHMuCgkgKiAgQHR5cGUgaW50CgkgKiAgQGRlZmF1bHQgNzIwMCA8aT4oMiBob3Vycyk8L2k+CgkgKiAgQGR0b3B0IE9wdGlvbnMKCSAqIAoJICogIEBleGFtcGxlCgkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgICAgICAgImlDb29raWVEdXJhdGlvbiI6IDYwKjYwKjI0OyAvLyAxIGRheQoJICogICAgICB9ICk7CgkgKiAgICB9ICkKCSAqLwoJImlDb29raWVEdXJhdGlvbiI6IDcyMDAsCgoKCS8qKgoJICogV2hlbiBlbmFibGVkIERhdGFUYWJsZXMgd2lsbCBub3QgbWFrZSBhIHJlcXVlc3QgdG8gdGhlIHNlcnZlciBmb3IgdGhlIGZpcnN0CgkgKiBwYWdlIGRyYXcgLSByYXRoZXIgaXQgd2lsbCB1c2UgdGhlIGRhdGEgYWxyZWFkeSBvbiB0aGUgcGFnZSAobm8gc29ydGluZyBldGMKCSAqIHdpbGwgYmUgYXBwbGllZCB0byBpdCksIHRodXMgc2F2aW5nIG9uIGFuIFhIUiBhdCBsb2FkIHRpbWUuIGlEZWZlckxvYWRpbmcKCSAqIGlzIHVzZWQgdG8gaW5kaWNhdGUgdGhhdCBkZWZlcnJlZCBsb2FkaW5nIGlzIHJlcXVpcmVkLCBidXQgaXQgaXMgYWxzbyB1c2VkCgkgKiB0byB0ZWxsIERhdGFUYWJsZXMgaG93IG1hbnkgcmVjb3JkcyB0aGVyZSBhcmUgaW4gdGhlIGZ1bGwgdGFibGUgKGFsbG93aW5nCgkgKiB0aGUgaW5mb3JtYXRpb24gZWxlbWVudCBhbmQgcGFnaW5hdGlvbiB0byBiZSBkaXNwbGF5ZWQgY29ycmVjdGx5KS4gSW4gdGhlIGNhc2UKCSAqIHdoZXJlIGEgZmlsdGVyaW5nIGlzIGFwcGxpZWQgdG8gdGhlIHRhYmxlIG9uIGluaXRpYWwgbG9hZCwgdGhpcyBjYW4gYmUKCSAqIGluZGljYXRlZCBieSBnaXZpbmcgdGhlIHBhcmFtZXRlciBhcyBhbiBhcnJheSwgd2hlcmUgdGhlIGZpcnN0IGVsZW1lbnQgaXMKCSAqIHRoZSBudW1iZXIgb2YgcmVjb3JkcyBhdmFpbGFibGUgYWZ0ZXIgZmlsdGVyaW5nIGFuZCB0aGUgc2Vjb25kIGVsZW1lbnQgaXMgdGhlCgkgKiBudW1iZXIgb2YgcmVjb3JkcyB3aXRob3V0IGZpbHRlcmluZyAoYWxsb3dpbmcgdGhlIHRhYmxlIGluZm9ybWF0aW9uIGVsZW1lbnQKCSAqIHRvIGJlIHNob3duIGNvcnJlY3RseSkuCgkgKiAgQHR5cGUgaW50IHwgYXJyYXkKCSAqICBAZGVmYXVsdCBudWxsCgkgKiAgQGR0b3B0IE9wdGlvbnMKCSAqIAoJICogIEBleGFtcGxlCgkgKiAgICAvLyA1NyByZWNvcmRzIGF2YWlsYWJsZSBpbiB0aGUgdGFibGUsIG5vIGZpbHRlcmluZyBhcHBsaWVkCgkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgICAgICAgImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCSAqICAgICAgICAic0FqYXhTb3VyY2UiOiAic2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJICogICAgICAgICJpRGVmZXJMb2FkaW5nIjogNTcKCSAqICAgICAgfSApOwoJICogICAgfSApOwoJICogCgkgKiAgQGV4YW1wbGUKCSAqICAgIC8vIDU3IHJlY29yZHMgYWZ0ZXIgZmlsdGVyaW5nLCAxMDAgd2l0aG91dCBmaWx0ZXJpbmcgKGFuIGluaXRpYWwgZmlsdGVyIGFwcGxpZWQpCgkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgICAgICAgImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCSAqICAgICAgICAic0FqYXhTb3VyY2UiOiAic2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJICogICAgICAgICJpRGVmZXJMb2FkaW5nIjogWyA1NywgMTAwIF0sCgkgKiAgICAgICAgIm9TZWFyY2giOiB7CgkgKiAgICAgICAgICAic1NlYXJjaCI6ICJteV9maWx0ZXIiCgkgKiAgICAgICAgfQoJICogICAgICB9ICk7CgkgKiAgICB9ICk7CgkgKi8KCSJpRGVmZXJMb2FkaW5nIjogbnVsbCwKCgoJLyoqCgkgKiBOdW1iZXIgb2Ygcm93cyB0byBkaXNwbGF5IG9uIGEgc2luZ2xlIHBhZ2Ugd2hlbiB1c2luZyBwYWdpbmF0aW9uLiBJZgoJICogZmVhdHVyZSBlbmFibGVkIChiTGVuZ3RoQ2hhbmdlKSB0aGVuIHRoZSBlbmQgdXNlciB3aWxsIGJlIGFibGUgdG8gb3ZlcnJpZGUKCSAqIHRoaXMgdG8gYSBjdXN0b20gc2V0dGluZyB1c2luZyBhIHBvcC11cCBtZW51LgoJICogIEB0eXBlIGludAoJICogIEBkZWZhdWx0IDEwCgkgKiAgQGR0b3B0IE9wdGlvbnMKCSAqIAoJICogIEBleGFtcGxlCgkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgICAgICAgImlEaXNwbGF5TGVuZ3RoIjogNTAKCSAqICAgICAgfSApOwoJICogICAgfSApCgkgKi8KCSJpRGlzcGxheUxlbmd0aCI6IDEwLAoKCgkvKioKCSAqIERlZmluZSB0aGUgc3RhcnRpbmcgcG9pbnQgZm9yIGRhdGEgZGlzcGxheSB3aGVuIHVzaW5nIERhdGFUYWJsZXMgd2l0aAoJICogcGFnaW5hdGlvbi4gTm90ZSB0aGF0IHRoaXMgcGFyYW1ldGVyIGlzIHRoZSBudW1iZXIgb2YgcmVjb3JkcywgcmF0aGVyIHRoYW4KCSAqIHRoZSBwYWdlIG51bWJlciwgc28gaWYgeW91IGhhdmUgMTAgcmVjb3JkcyBwZXIgcGFnZSBhbmQgd2FudCB0byBzdGFydCBvbgoJICogdGhlIHRoaXJkIHBhZ2UsIGl0IHNob3VsZCBiZSAiMjAiLgoJICogIEB0eXBlIGludAoJICogIEBkZWZhdWx0IDAKCSAqICBAZHRvcHQgT3B0aW9ucwoJICogCgkgKiAgQGV4YW1wbGUKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiaURpc3BsYXlTdGFydCI6IDIwCgkgKiAgICAgIH0gKTsKCSAqICAgIH0gKQoJICovCgkiaURpc3BsYXlTdGFydCI6IDAsCgoKCS8qKgoJICogVGhlIHNjcm9sbCBnYXAgaXMgdGhlIGFtb3VudCBvZiBzY3JvbGxpbmcgdGhhdCBpcyBsZWZ0IHRvIGdvIGJlZm9yZQoJICogRGF0YVRhYmxlcyB3aWxsIGxvYWQgdGhlIG5leHQgJ3BhZ2UnIG9mIGRhdGEgYXV0b21hdGljYWxseS4gWW91IHR5cGljYWxseQoJICogd2FudCBhIGdhcCB3aGljaCBpcyBiaWcgZW5vdWdoIHRoYXQgdGhlIHNjcm9sbGluZyB3aWxsIGJlIHNtb290aCBmb3IgdGhlCgkgKiB1c2VyLCB3aGlsZSBub3Qgc28gbGFyZ2UgdGhhdCBpdCB3aWxsIGxvYWQgbW9yZSBkYXRhIHRoYW4gbmVlZC4KCSAqICBAdHlwZSBpbnQKCSAqICBAZGVmYXVsdCAxMDAKCSAqICBAZHRvcHQgT3B0aW9ucwoJICogCgkgKiAgQGV4YW1wbGUKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiYlNjcm9sbEluZmluaXRlIjogdHJ1ZSwKCSAqICAgICAgICAiYlNjcm9sbENvbGxhcHNlIjogdHJ1ZSwKCSAqICAgICAgICAic1Njcm9sbFkiOiAiMjAwcHgiLAoJICogICAgICAgICJpU2Nyb2xsTG9hZEdhcCI6IDUwCgkgKiAgICAgIH0gKTsKCSAqICAgIH0gKTsKCSAqLwoJImlTY3JvbGxMb2FkR2FwIjogMTAwLAoKCgkvKioKCSAqIEJ5IGRlZmF1bHQgRGF0YVRhYmxlcyBhbGxvd3Mga2V5Ym9hcmQgbmF2aWdhdGlvbiBvZiB0aGUgdGFibGUgKHNvcnRpbmcsIHBhZ2luZywKCSAqIGFuZCBmaWx0ZXJpbmcpIGJ5IGFkZGluZyBhIHRhYmluZGV4IGF0dHJpYnV0ZSB0byB0aGUgcmVxdWlyZWQgZWxlbWVudHMuIFRoaXMKCSAqIGFsbG93cyB5b3UgdG8gdGFiIHRocm91Z2ggdGhlIGNvbnRyb2xzIGFuZCBwcmVzcyB0aGUgZW50ZXIga2V5IHRvIGFjdGl2YXRlIHRoZW0uCgkgKiBUaGUgdGFiaW5kZXggaXMgZGVmYXVsdCAwLCBtZWFuaW5nIHRoYXQgdGhlIHRhYiBmb2xsb3dzIHRoZSBmbG93IG9mIHRoZSBkb2N1bWVudC4KCSAqIFlvdSBjYW4gb3ZlcnJ1bGUgdGhpcyB1c2luZyB0aGlzIHBhcmFtZXRlciBpZiB5b3Ugd2lzaC4gVXNlIGEgdmFsdWUgb2YgLTEgdG8KCSAqIGRpc2FibGUgYnVpbHQtaW4ga2V5Ym9hcmQgbmF2aWdhdGlvbi4KCSAqICBAdHlwZSBpbnQKCSAqICBAZGVmYXVsdCAwCgkgKiAgQGR0b3B0IE9wdGlvbnMKCSAqIAoJICogIEBleGFtcGxlCgkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgICAgICAgImlUYWJJbmRleCI6IDEKCSAqICAgICAgfSApOwoJICogICAgfSApOwoJICovCgkiaVRhYkluZGV4IjogMCwKCgoJLyoqCgkgKiBBbGwgc3RyaW5ncyB0aGF0IERhdGFUYWJsZXMgdXNlcyBpbiB0aGUgdXNlciBpbnRlcmZhY2UgdGhhdCBpdCBjcmVhdGVzCgkgKiBhcmUgZGVmaW5lZCBpbiB0aGlzIG9iamVjdCwgYWxsb3dpbmcgeW91IHRvIG1vZGlmaWVkIHRoZW0gaW5kaXZpZHVhbGx5IG9yCgkgKiBjb21wbGV0ZWx5IHJlcGxhY2UgdGhlbSBhbGwgYXMgcmVxdWlyZWQuCgkgKiAgQG5hbWVzcGFjZQoJICovCgkib0xhbmd1YWdlIjogewoJCS8qKgoJCSAqIFN0cmluZ3MgdGhhdCBhcmUgdXNlZCBmb3IgV0FJLUFSSUEgbGFiZWxzIGFuZCBjb250cm9scyBvbmx5ICh0aGVzZSBhcmUgbm90CgkJICogYWN0dWFsbHkgdmlzaWJsZSBvbiB0aGUgcGFnZSwgYnV0IHdpbGwgYmUgcmVhZCBieSBzY3JlZW5yZWFkZXJzLCBhbmQgdGh1cwoJCSAqIG11c3QgYmUgaW50ZXJuYXRpb25hbGlzZWQgYXMgd2VsbCkuCgkJICogIEBuYW1lc3BhY2UKCQkgKi8KCQkib0FyaWEiOiB7CgkJCS8qKgoJCQkgKiBBUklBIGxhYmVsIHRoYXQgaXMgYWRkZWQgdG8gdGhlIHRhYmxlIGhlYWRlcnMgd2hlbiB0aGUgY29sdW1uIG1heSBiZQoJCQkgKiBzb3J0ZWQgYXNjZW5kaW5nIGJ5IGFjdGl2aW5nIHRoZSBjb2x1bW4gKGNsaWNrIG9yIHJldHVybiB3aGVuIGZvY3VzZWQpLgoJCQkgKiBOb3RlIHRoYXQgdGhlIGNvbHVtbiBoZWFkZXIgaXMgcHJlZml4ZWQgdG8gdGhpcyBzdHJpbmcuCgkJCSAqICBAdHlwZSBzdHJpbmcKCQkJICogIEBkZWZhdWx0IDogYWN0aXZhdGUgdG8gc29ydCBjb2x1bW4gYXNjZW5kaW5nCgkJCSAqICBAZHRvcHQgTGFuZ3VhZ2UKCQkJICogCgkJCSAqICBAZXhhbXBsZQoJCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJICogICAgICAgICJvTGFuZ3VhZ2UiOiB7CgkJCSAqICAgICAgICAgICJvQXJpYSI6IHsKCQkJICogICAgICAgICAgICAic1NvcnRBc2NlbmRpbmciOiAiIC0gY2xpY2svcmV0dXJuIHRvIHNvcnQgYXNjZW5kaW5nIgoJCQkgKiAgICAgICAgICB9CgkJCSAqICAgICAgICB9CgkJCSAqICAgICAgfSApOwoJCQkgKiAgICB9ICk7CgkJCSAqLwoJCQkic1NvcnRBc2NlbmRpbmciOiAiOiBhY3RpdmF0ZSB0byBzb3J0IGNvbHVtbiBhc2NlbmRpbmciLAoKCQkJLyoqCgkJCSAqIEFSSUEgbGFiZWwgdGhhdCBpcyBhZGRlZCB0byB0aGUgdGFibGUgaGVhZGVycyB3aGVuIHRoZSBjb2x1bW4gbWF5IGJlCgkJCSAqIHNvcnRlZCBkZXNjZW5kaW5nIGJ5IGFjdGl2aW5nIHRoZSBjb2x1bW4gKGNsaWNrIG9yIHJldHVybiB3aGVuIGZvY3VzZWQpLgoJCQkgKiBOb3RlIHRoYXQgdGhlIGNvbHVtbiBoZWFkZXIgaXMgcHJlZml4ZWQgdG8gdGhpcyBzdHJpbmcuCgkJCSAqICBAdHlwZSBzdHJpbmcKCQkJICogIEBkZWZhdWx0IDogYWN0aXZhdGUgdG8gc29ydCBjb2x1bW4gYXNjZW5kaW5nCgkJCSAqICBAZHRvcHQgTGFuZ3VhZ2UKCQkJICogCgkJCSAqICBAZXhhbXBsZQoJCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJICogICAgICAgICJvTGFuZ3VhZ2UiOiB7CgkJCSAqICAgICAgICAgICJvQXJpYSI6IHsKCQkJICogICAgICAgICAgICAic1NvcnREZXNjZW5kaW5nIjogIiAtIGNsaWNrL3JldHVybiB0byBzb3J0IGRlc2NlbmRpbmciCgkJCSAqICAgICAgICAgIH0KCQkJICogICAgICAgIH0KCQkJICogICAgICB9ICk7CgkJCSAqICAgIH0gKTsKCQkJICovCgkJCSJzU29ydERlc2NlbmRpbmciOiAiOiBhY3RpdmF0ZSB0byBzb3J0IGNvbHVtbiBkZXNjZW5kaW5nIgoJCX0sCgoJCS8qKgoJCSAqIFBhZ2luYXRpb24gc3RyaW5nIHVzZWQgYnkgRGF0YVRhYmxlcyBmb3IgdGhlIHR3byBidWlsdC1pbiBwYWdpbmF0aW9uCgkJICogY29udHJvbCB0eXBlcyAoInR3b19idXR0b24iIGFuZCAiZnVsbF9udW1iZXJzIikKCQkgKiAgQG5hbWVzcGFjZQoJCSAqLwoJCSJvUGFnaW5hdGUiOiB7CgkJCS8qKgoJCQkgKiBUZXh0IHRvIHVzZSB3aGVuIHVzaW5nIHRoZSAnZnVsbF9udW1iZXJzJyB0eXBlIG9mIHBhZ2luYXRpb24gZm9yIHRoZQoJCQkgKiBidXR0b24gdG8gdGFrZSB0aGUgdXNlciB0byB0aGUgZmlyc3QgcGFnZS4KCQkJICogIEB0eXBlIHN0cmluZwoJCQkgKiAgQGRlZmF1bHQgRmlyc3QKCQkJICogIEBkdG9wdCBMYW5ndWFnZQoJCQkgKiAKCQkJICogIEBleGFtcGxlCgkJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkgKiAgICAgICAgIm9MYW5ndWFnZSI6IHsKCQkJICogICAgICAgICAgIm9QYWdpbmF0ZSI6IHsKCQkJICogICAgICAgICAgICAic0ZpcnN0IjogIkZpcnN0IHBhZ2UiCgkJCSAqICAgICAgICAgIH0KCQkJICogICAgICAgIH0KCQkJICogICAgICB9ICk7CgkJCSAqICAgIH0gKTsKCQkJICovCgkJCSJzRmlyc3QiOiAiRmlyc3QiLAoJCQoJCQoJCQkvKioKCQkJICogVGV4dCB0byB1c2Ugd2hlbiB1c2luZyB0aGUgJ2Z1bGxfbnVtYmVycycgdHlwZSBvZiBwYWdpbmF0aW9uIGZvciB0aGUKCQkJICogYnV0dG9uIHRvIHRha2UgdGhlIHVzZXIgdG8gdGhlIGxhc3QgcGFnZS4KCQkJICogIEB0eXBlIHN0cmluZwoJCQkgKiAgQGRlZmF1bHQgTGFzdAoJCQkgKiAgQGR0b3B0IExhbmd1YWdlCgkJCSAqIAoJCQkgKiAgQGV4YW1wbGUKCQkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCSAqICAgICAgICAib0xhbmd1YWdlIjogewoJCQkgKiAgICAgICAgICAib1BhZ2luYXRlIjogewoJCQkgKiAgICAgICAgICAgICJzTGFzdCI6ICJMYXN0IHBhZ2UiCgkJCSAqICAgICAgICAgIH0KCQkJICogICAgICAgIH0KCQkJICogICAgICB9ICk7CgkJCSAqICAgIH0gKTsKCQkJICovCgkJCSJzTGFzdCI6ICJMYXN0IiwKCQkKCQkKCQkJLyoqCgkJCSAqIFRleHQgdG8gdXNlIHdoZW4gdXNpbmcgdGhlICdmdWxsX251bWJlcnMnIHR5cGUgb2YgcGFnaW5hdGlvbiBmb3IgdGhlCgkJCSAqIGJ1dHRvbiB0byB0YWtlIHRoZSB1c2VyIHRvIHRoZSBuZXh0IHBhZ2UuCgkJCSAqICBAdHlwZSBzdHJpbmcKCQkJICogIEBkZWZhdWx0IE5leHQKCQkJICogIEBkdG9wdCBMYW5ndWFnZQoJCQkgKiAKCQkJICogIEBleGFtcGxlCgkJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkgKiAgICAgICAgIm9MYW5ndWFnZSI6IHsKCQkJICogICAgICAgICAgIm9QYWdpbmF0ZSI6IHsKCQkJICogICAgICAgICAgICAic05leHQiOiAiTmV4dCBwYWdlIgoJCQkgKiAgICAgICAgICB9CgkJCSAqICAgICAgICB9CgkJCSAqICAgICAgfSApOwoJCQkgKiAgICB9ICk7CgkJCSAqLwoJCQkic05leHQiOiAiTmV4dCIsCgkJCgkJCgkJCS8qKgoJCQkgKiBUZXh0IHRvIHVzZSB3aGVuIHVzaW5nIHRoZSAnZnVsbF9udW1iZXJzJyB0eXBlIG9mIHBhZ2luYXRpb24gZm9yIHRoZQoJCQkgKiBidXR0b24gdG8gdGFrZSB0aGUgdXNlciB0byB0aGUgcHJldmlvdXMgcGFnZS4KCQkJICogIEB0eXBlIHN0cmluZwoJCQkgKiAgQGRlZmF1bHQgUHJldmlvdXMKCQkJICogIEBkdG9wdCBMYW5ndWFnZQoJCQkgKiAKCQkJICogIEBleGFtcGxlCgkJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkgKiAgICAgICAgIm9MYW5ndWFnZSI6IHsKCQkJICogICAgICAgICAgIm9QYWdpbmF0ZSI6IHsKCQkJICogICAgICAgICAgICAic1ByZXZpb3VzIjogIlByZXZpb3VzIHBhZ2UiCgkJCSAqICAgICAgICAgIH0KCQkJICogICAgICAgIH0KCQkJICogICAgICB9ICk7CgkJCSAqICAgIH0gKTsKCQkJICovCgkJCSJzUHJldmlvdXMiOiAiUHJldmlvdXMiCgkJfSwKCQoJCS8qKgoJCSAqIFRoaXMgc3RyaW5nIGlzIHNob3duIGluIHByZWZlcmVuY2UgdG8gc1plcm9SZWNvcmRzIHdoZW4gdGhlIHRhYmxlIGlzCgkJICogZW1wdHkgb2YgZGF0YSAocmVnYXJkbGVzcyBvZiBmaWx0ZXJpbmcpLiBOb3RlIHRoYXQgdGhpcyBpcyBhbiBvcHRpb25hbAoJCSAqIHBhcmFtZXRlciAtIGlmIGl0IGlzIG5vdCBnaXZlbiwgdGhlIHZhbHVlIG9mIHNaZXJvUmVjb3JkcyB3aWxsIGJlIHVzZWQKCQkgKiBpbnN0ZWFkIChlaXRoZXIgdGhlIGRlZmF1bHQgb3IgZ2l2ZW4gdmFsdWUpLgoJCSAqICBAdHlwZSBzdHJpbmcKCQkgKiAgQGRlZmF1bHQgTm8gZGF0YSBhdmFpbGFibGUgaW4gdGFibGUKCQkgKiAgQGR0b3B0IExhbmd1YWdlCgkJICogCgkJICogIEBleGFtcGxlCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgIm9MYW5ndWFnZSI6IHsKCQkgKiAgICAgICAgICAic0VtcHR5VGFibGUiOiAiTm8gZGF0YSBhdmFpbGFibGUgaW4gdGFibGUiCgkJICogICAgICAgIH0KCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICovCgkJInNFbXB0eVRhYmxlIjogIk5vIGRhdGEgYXZhaWxhYmxlIGluIHRhYmxlIiwKCQoJCgkJLyoqCgkJICogVGhpcyBzdHJpbmcgZ2l2ZXMgaW5mb3JtYXRpb24gdG8gdGhlIGVuZCB1c2VyIGFib3V0IHRoZSBpbmZvcm1hdGlvbiB0aGF0IAoJCSAqIGlzIGN1cnJlbnQgb24gZGlzcGxheSBvbiB0aGUgcGFnZS4gVGhlIF9TVEFSVF8sIF9FTkRfIGFuZCBfVE9UQUxfIAoJCSAqIHZhcmlhYmxlcyBhcmUgYWxsIGR5bmFtaWNhbGx5IHJlcGxhY2VkIGFzIHRoZSB0YWJsZSBkaXNwbGF5IHVwZGF0ZXMsIGFuZCAKCQkgKiBjYW4gYmUgZnJlZWx5IG1vdmVkIG9yIHJlbW92ZWQgYXMgdGhlIGxhbmd1YWdlIHJlcXVpcmVtZW50cyBjaGFuZ2UuCgkJICogIEB0eXBlIHN0cmluZwoJCSAqICBAZGVmYXVsdCBTaG93aW5nIF9TVEFSVF8gdG8gX0VORF8gb2YgX1RPVEFMXyBlbnRyaWVzCgkJICogIEBkdG9wdCBMYW5ndWFnZQoJCSAqIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJvTGFuZ3VhZ2UiOiB7CgkJICogICAgICAgICAgInNJbmZvIjogIkdvdCBhIHRvdGFsIG9mIF9UT1RBTF8gZW50cmllcyB0byBzaG93IChfU1RBUlRfIHRvIF9FTkRfKSIKCQkgKiAgICAgICAgfQoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKTsKCQkgKi8KCQkic0luZm8iOiAiU2hvd2luZyBfU1RBUlRfIHRvIF9FTkRfIG9mIF9UT1RBTF8gZW50cmllcyIsCgkKCQoJCS8qKgoJCSAqIERpc3BsYXkgaW5mb3JtYXRpb24gc3RyaW5nIGZvciB3aGVuIHRoZSB0YWJsZSBpcyBlbXB0eS4gVHlwaWNhbGx5IHRoZSAKCQkgKiBmb3JtYXQgb2YgdGhpcyBzdHJpbmcgc2hvdWxkIG1hdGNoIHNJbmZvLgoJCSAqICBAdHlwZSBzdHJpbmcKCQkgKiAgQGRlZmF1bHQgU2hvd2luZyAwIHRvIDAgb2YgMCBlbnRyaWVzCgkJICogIEBkdG9wdCBMYW5ndWFnZQoJCSAqIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJvTGFuZ3VhZ2UiOiB7CgkJICogICAgICAgICAgInNJbmZvRW1wdHkiOiAiTm8gZW50cmllcyB0byBzaG93IgoJCSAqICAgICAgICB9CgkJICogICAgICB9ICk7CgkJICogICAgfSApOwoJCSAqLwoJCSJzSW5mb0VtcHR5IjogIlNob3dpbmcgMCB0byAwIG9mIDAgZW50cmllcyIsCgkKCQoJCS8qKgoJCSAqIFdoZW4gYSB1c2VyIGZpbHRlcnMgdGhlIGluZm9ybWF0aW9uIGluIGEgdGFibGUsIHRoaXMgc3RyaW5nIGlzIGFwcGVuZGVkIAoJCSAqIHRvIHRoZSBpbmZvcm1hdGlvbiAoc0luZm8pIHRvIGdpdmUgYW4gaWRlYSBvZiBob3cgc3Ryb25nIHRoZSBmaWx0ZXJpbmcgCgkJICogaXMuIFRoZSB2YXJpYWJsZSBfTUFYXyBpcyBkeW5hbWljYWxseSB1cGRhdGVkLgoJCSAqICBAdHlwZSBzdHJpbmcKCQkgKiAgQGRlZmF1bHQgKGZpbHRlcmVkIGZyb20gX01BWF8gdG90YWwgZW50cmllcykKCQkgKiAgQGR0b3B0IExhbmd1YWdlCgkJICogCgkJICogIEBleGFtcGxlCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgIm9MYW5ndWFnZSI6IHsKCQkgKiAgICAgICAgICAic0luZm9GaWx0ZXJlZCI6ICIgLSBmaWx0ZXJpbmcgZnJvbSBfTUFYXyByZWNvcmRzIgoJCSAqICAgICAgICB9CgkJICogICAgICB9ICk7CgkJICogICAgfSApOwoJCSAqLwoJCSJzSW5mb0ZpbHRlcmVkIjogIihmaWx0ZXJlZCBmcm9tIF9NQVhfIHRvdGFsIGVudHJpZXMpIiwKCQoJCgkJLyoqCgkJICogSWYgY2FuIGJlIHVzZWZ1bCB0byBhcHBlbmQgZXh0cmEgaW5mb3JtYXRpb24gdG8gdGhlIGluZm8gc3RyaW5nIGF0IHRpbWVzLAoJCSAqIGFuZCB0aGlzIHZhcmlhYmxlIGRvZXMgZXhhY3RseSB0aGF0LiBUaGlzIGluZm9ybWF0aW9uIHdpbGwgYmUgYXBwZW5kZWQgdG8KCQkgKiB0aGUgc0luZm8gKHNJbmZvRW1wdHkgYW5kIHNJbmZvRmlsdGVyZWQgaW4gd2hhdGV2ZXIgY29tYmluYXRpb24gdGhleSBhcmUKCQkgKiBiZWluZyB1c2VkKSBhdCBhbGwgdGltZXMuCgkJICogIEB0eXBlIHN0cmluZwoJCSAqICBAZGVmYXVsdCA8aT5FbXB0eSBzdHJpbmc8L2k+CgkJICogIEBkdG9wdCBMYW5ndWFnZQoJCSAqIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJvTGFuZ3VhZ2UiOiB7CgkJICogICAgICAgICAgInNJbmZvUG9zdEZpeCI6ICJBbGwgcmVjb3JkcyBzaG93biBhcmUgZGVyaXZlZCBmcm9tIHJlYWwgaW5mb3JtYXRpb24uIgoJCSAqICAgICAgICB9CgkJICogICAgICB9ICk7CgkJICogICAgfSApOwoJCSAqLwoJCSJzSW5mb1Bvc3RGaXgiOiAiIiwKCQoJCgkJLyoqCgkJICogRGF0YVRhYmxlcyBoYXMgYSBidWlsZCBpbiBudW1iZXIgZm9ybWF0dGVyIChmbkZvcm1hdE51bWJlcikgd2hpY2ggaXMgdXNlZAoJCSAqIHRvIGZvcm1hdCBsYXJnZSBudW1iZXJzIHRoYXQgYXJlIHVzZWQgaW4gdGhlIHRhYmxlIGluZm9ybWF0aW9uLiBCeQoJCSAqIGRlZmF1bHQgYSBjb21tYSBpcyB1c2VkLCBidXQgdGhpcyBjYW4gYmUgdHJpdmlhbGx5IGNoYW5nZWQgdG8gYW55CgkJICogY2hhcmFjdGVyIHlvdSB3aXNoIHdpdGggdGhpcyBwYXJhbWV0ZXIuCgkJICogIEB0eXBlIHN0cmluZwoJCSAqICBAZGVmYXVsdCAsCgkJICogIEBkdG9wdCBMYW5ndWFnZQoJCSAqIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJvTGFuZ3VhZ2UiOiB7CgkJICogICAgICAgICAgInNJbmZvVGhvdXNhbmRzIjogIiciCgkJICogICAgICAgIH0KCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICovCgkJInNJbmZvVGhvdXNhbmRzIjogIiwiLAoJCgkKCQkvKioKCQkgKiBEZXRhaWwgdGhlIGFjdGlvbiB0aGF0IHdpbGwgYmUgdGFrZW4gd2hlbiB0aGUgZHJvcCBkb3duIG1lbnUgZm9yIHRoZQoJCSAqIHBhZ2luYXRpb24gbGVuZ3RoIG9wdGlvbiBpcyBjaGFuZ2VkLiBUaGUgJ19NRU5VXycgdmFyaWFibGUgaXMgcmVwbGFjZWQKCQkgKiB3aXRoIGEgZGVmYXVsdCBzZWxlY3QgbGlzdCBvZiAxMCwgMjUsIDUwIGFuZCAxMDAsIGFuZCBjYW4gYmUgcmVwbGFjZWQKCQkgKiB3aXRoIGEgY3VzdG9tIHNlbGVjdCBib3ggaWYgcmVxdWlyZWQuCgkJICogIEB0eXBlIHN0cmluZwoJCSAqICBAZGVmYXVsdCBTaG93IF9NRU5VXyBlbnRyaWVzCgkJICogIEBkdG9wdCBMYW5ndWFnZQoJCSAqIAoJCSAqICBAZXhhbXBsZQoJCSAqICAgIC8vIExhbmd1YWdlIGNoYW5nZSBvbmx5CgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgIm9MYW5ndWFnZSI6IHsKCQkgKiAgICAgICAgICAic0xlbmd0aE1lbnUiOiAiRGlzcGxheSBfTUVOVV8gcmVjb3JkcyIKCQkgKiAgICAgICAgfQoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKTsKCQkgKiAgICAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAvLyBMYW5ndWFnZSBhbmQgb3B0aW9ucyBjaGFuZ2UKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAib0xhbmd1YWdlIjogewoJCSAqICAgICAgICAgICJzTGVuZ3RoTWVudSI6ICdEaXNwbGF5IDxzZWxlY3Q+JysKCQkgKiAgICAgICAgICAgICc8b3B0aW9uIHZhbHVlPSIxMCI+MTA8L29wdGlvbj4nKwoJCSAqICAgICAgICAgICAgJzxvcHRpb24gdmFsdWU9IjIwIj4yMDwvb3B0aW9uPicrCgkJICogICAgICAgICAgICAnPG9wdGlvbiB2YWx1ZT0iMzAiPjMwPC9vcHRpb24+JysKCQkgKiAgICAgICAgICAgICc8b3B0aW9uIHZhbHVlPSI0MCI+NDA8L29wdGlvbj4nKwoJCSAqICAgICAgICAgICAgJzxvcHRpb24gdmFsdWU9IjUwIj41MDwvb3B0aW9uPicrCgkJICogICAgICAgICAgICAnPG9wdGlvbiB2YWx1ZT0iLTEiPkFsbDwvb3B0aW9uPicrCgkJICogICAgICAgICAgICAnPC9zZWxlY3Q+IHJlY29yZHMnCgkJICogICAgICAgIH0KCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICovCgkJInNMZW5ndGhNZW51IjogIlNob3cgX01FTlVfIGVudHJpZXMiLAoJCgkKCQkvKioKCQkgKiBXaGVuIHVzaW5nIEFqYXggc291cmNlZCBkYXRhIGFuZCBkdXJpbmcgdGhlIGZpcnN0IGRyYXcgd2hlbiBEYXRhVGFibGVzIGlzCgkJICogZ2F0aGVyaW5nIHRoZSBkYXRhLCB0aGlzIG1lc3NhZ2UgaXMgc2hvd24gaW4gYW4gZW1wdHkgcm93IGluIHRoZSB0YWJsZSB0bwoJCSAqIGluZGljYXRlIHRvIHRoZSBlbmQgdXNlciB0aGUgdGhlIGRhdGEgaXMgYmVpbmcgbG9hZGVkLiBOb3RlIHRoYXQgdGhpcwoJCSAqIHBhcmFtZXRlciBpcyBub3QgdXNlZCB3aGVuIGxvYWRpbmcgZGF0YSBieSBzZXJ2ZXItc2lkZSBwcm9jZXNzaW5nLCBqdXN0CgkJICogQWpheCBzb3VyY2VkIGRhdGEgd2l0aCBjbGllbnQtc2lkZSBwcm9jZXNzaW5nLgoJCSAqICBAdHlwZSBzdHJpbmcKCQkgKiAgQGRlZmF1bHQgTG9hZGluZy4uLgoJCSAqICBAZHRvcHQgTGFuZ3VhZ2UKCQkgKiAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAib0xhbmd1YWdlIjogewoJCSAqICAgICAgICAgICJzTG9hZGluZ1JlY29yZHMiOiAiUGxlYXNlIHdhaXQgLSBsb2FkaW5nLi4uIgoJCSAqICAgICAgICB9CgkJICogICAgICB9ICk7CgkJICogICAgfSApOwoJCSAqLwoJCSJzTG9hZGluZ1JlY29yZHMiOiAiTG9hZGluZy4uLiIsCgkKCQoJCS8qKgoJCSAqIFRleHQgd2hpY2ggaXMgZGlzcGxheWVkIHdoZW4gdGhlIHRhYmxlIGlzIHByb2Nlc3NpbmcgYSB1c2VyIGFjdGlvbgoJCSAqICh1c3VhbGx5IGEgc29ydCBjb21tYW5kIG9yIHNpbWlsYXIpLgoJCSAqICBAdHlwZSBzdHJpbmcKCQkgKiAgQGRlZmF1bHQgUHJvY2Vzc2luZy4uLgoJCSAqICBAZHRvcHQgTGFuZ3VhZ2UKCQkgKiAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAib0xhbmd1YWdlIjogewoJCSAqICAgICAgICAgICJzUHJvY2Vzc2luZyI6ICJEYXRhVGFibGVzIGlzIGN1cnJlbnRseSBidXN5IgoJCSAqICAgICAgICB9CgkJICogICAgICB9ICk7CgkJICogICAgfSApOwoJCSAqLwoJCSJzUHJvY2Vzc2luZyI6ICJQcm9jZXNzaW5nLi4uIiwKCQoJCgkJLyoqCgkJICogRGV0YWlscyB0aGUgYWN0aW9ucyB0aGF0IHdpbGwgYmUgdGFrZW4gd2hlbiB0aGUgdXNlciB0eXBlcyBpbnRvIHRoZQoJCSAqIGZpbHRlcmluZyBpbnB1dCB0ZXh0IGJveC4gVGhlIHZhcmlhYmxlICJfSU5QVVRfIiwgaWYgdXNlZCBpbiB0aGUgc3RyaW5nLAoJCSAqIGlzIHJlcGxhY2VkIHdpdGggdGhlIEhUTUwgdGV4dCBib3ggZm9yIHRoZSBmaWx0ZXJpbmcgaW5wdXQgYWxsb3dpbmcKCQkgKiBjb250cm9sIG92ZXIgd2hlcmUgaXQgYXBwZWFycyBpbiB0aGUgc3RyaW5nLiBJZiAiX0lOUFVUXyIgaXMgbm90IGdpdmVuCgkJICogdGhlbiB0aGUgaW5wdXQgYm94IGlzIGFwcGVuZGVkIHRvIHRoZSBzdHJpbmcgYXV0b21hdGljYWxseS4KCQkgKiAgQHR5cGUgc3RyaW5nCgkJICogIEBkZWZhdWx0IFNlYXJjaDoKCQkgKiAgQGR0b3B0IExhbmd1YWdlCgkJICogCgkJICogIEBleGFtcGxlCgkJICogICAgLy8gSW5wdXQgdGV4dCBib3ggd2lsbCBiZSBhcHBlbmRlZCBhdCB0aGUgZW5kIGF1dG9tYXRpY2FsbHkKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAib0xhbmd1YWdlIjogewoJCSAqICAgICAgICAgICJzU2VhcmNoIjogIkZpbHRlciByZWNvcmRzOiIKCQkgKiAgICAgICAgfQoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKTsKCQkgKiAgICAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAvLyBTcGVjaWZ5IHdoZXJlIHRoZSBmaWx0ZXIgc2hvdWxkIGFwcGVhcgoJCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCQkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJICogICAgICAgICJvTGFuZ3VhZ2UiOiB7CgkJICogICAgICAgICAgInNTZWFyY2giOiAiQXBwbHkgZmlsdGVyIF9JTlBVVF8gdG8gdGFibGUiCgkJICogICAgICAgIH0KCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICovCgkJInNTZWFyY2giOiAiU2VhcmNoOiIsCgkKCQoJCS8qKgoJCSAqIEFsbCBvZiB0aGUgbGFuZ3VhZ2UgaW5mb3JtYXRpb24gY2FuIGJlIHN0b3JlZCBpbiBhIGZpbGUgb24gdGhlCgkJICogc2VydmVyLXNpZGUsIHdoaWNoIERhdGFUYWJsZXMgd2lsbCBsb29rIHVwIGlmIHRoaXMgcGFyYW1ldGVyIGlzIHBhc3NlZC4KCQkgKiBJdCBtdXN0IHN0b3JlIHRoZSBVUkwgb2YgdGhlIGxhbmd1YWdlIGZpbGUsIHdoaWNoIGlzIGluIGEgSlNPTiBmb3JtYXQsCgkJICogYW5kIHRoZSBvYmplY3QgaGFzIHRoZSBzYW1lIHByb3BlcnRpZXMgYXMgdGhlIG9MYW5ndWFnZSBvYmplY3QgaW4gdGhlCgkJICogaW5pdGlhbGlzZXIgb2JqZWN0IChpLmUuIHRoZSBhYm92ZSBwYXJhbWV0ZXJzKS4gUGxlYXNlIHJlZmVyIHRvIG9uZSBvZgoJCSAqIHRoZSBleGFtcGxlIGxhbmd1YWdlIGZpbGVzIHRvIHNlZSBob3cgdGhpcyB3b3JrcyBpbiBhY3Rpb24uCgkJICogIEB0eXBlIHN0cmluZwoJCSAqICBAZGVmYXVsdCA8aT5FbXB0eSBzdHJpbmcgLSBpLmUuIGRpc2FibGVkPC9pPgoJCSAqICBAZHRvcHQgTGFuZ3VhZ2UKCQkgKiAKCQkgKiAgQGV4YW1wbGUKCQkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSAqICAgICAgICAib0xhbmd1YWdlIjogewoJCSAqICAgICAgICAgICJzVXJsIjogImh0dHA6Ly93d3cuc3ByeW1lZGlhLmNvLnVrL2RhdGFUYWJsZXMvbGFuZy50eHQiCgkJICogICAgICAgIH0KCQkgKiAgICAgIH0gKTsKCQkgKiAgICB9ICk7CgkJICovCgkJInNVcmwiOiAiIiwKCQoJCgkJLyoqCgkJICogVGV4dCBzaG93biBpbnNpZGUgdGhlIHRhYmxlIHJlY29yZHMgd2hlbiB0aGUgaXMgbm8gaW5mb3JtYXRpb24gdG8gYmUKCQkgKiBkaXNwbGF5ZWQgYWZ0ZXIgZmlsdGVyaW5nLiBzRW1wdHlUYWJsZSBpcyBzaG93biB3aGVuIHRoZXJlIGlzIHNpbXBseSBubwoJCSAqIGluZm9ybWF0aW9uIGluIHRoZSB0YWJsZSBhdCBhbGwgKHJlZ2FyZGxlc3Mgb2YgZmlsdGVyaW5nKS4KCQkgKiAgQHR5cGUgc3RyaW5nCgkJICogIEBkZWZhdWx0IE5vIG1hdGNoaW5nIHJlY29yZHMgZm91bmQKCQkgKiAgQGR0b3B0IExhbmd1YWdlCgkJICogCgkJICogIEBleGFtcGxlCgkJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkgKiAgICAgICAgIm9MYW5ndWFnZSI6IHsKCQkgKiAgICAgICAgICAic1plcm9SZWNvcmRzIjogIk5vIHJlY29yZHMgdG8gZGlzcGxheSIKCQkgKiAgICAgICAgfQoJCSAqICAgICAgfSApOwoJCSAqICAgIH0gKTsKCQkgKi8KCQkic1plcm9SZWNvcmRzIjogIk5vIG1hdGNoaW5nIHJlY29yZHMgZm91bmQiCgl9LAoKCgkvKioKCSAqIFRoaXMgcGFyYW1ldGVyIGFsbG93cyB5b3UgdG8gaGF2ZSBkZWZpbmUgdGhlIGdsb2JhbCBmaWx0ZXJpbmcgc3RhdGUgYXQKCSAqIGluaXRpYWxpc2F0aW9uIHRpbWUuIEFzIGFuIG9iamVjdCB0aGUgInNTZWFyY2giIHBhcmFtZXRlciBtdXN0IGJlCgkgKiBkZWZpbmVkLCBidXQgYWxsIG90aGVyIHBhcmFtZXRlcnMgYXJlIG9wdGlvbmFsLiBXaGVuICJiUmVnZXgiIGlzIHRydWUsCgkgKiB0aGUgc2VhcmNoIHN0cmluZyB3aWxsIGJlIHRyZWF0ZWQgYXMgYSByZWd1bGFyIGV4cHJlc3Npb24sIHdoZW4gZmFsc2UKCSAqIChkZWZhdWx0KSBpdCB3aWxsIGJlIHRyZWF0ZWQgYXMgYSBzdHJhaWdodCBzdHJpbmcuIFdoZW4gImJTbWFydCIKCSAqIERhdGFUYWJsZXMgd2lsbCB1c2UgaXQncyBzbWFydCBmaWx0ZXJpbmcgbWV0aG9kcyAodG8gd29yZCBtYXRjaCBhdAoJICogYW55IHBvaW50IGluIHRoZSBkYXRhKSwgd2hlbiBmYWxzZSB0aGlzIHdpbGwgbm90IGJlIGRvbmUuCgkgKiAgQG5hbWVzcGFjZQoJICogIEBleHRlbmRzIERhdGFUYWJsZS5tb2RlbHMub1NlYXJjaAoJICogIEBkdG9wdCBPcHRpb25zCgkgKiAKCSAqICBAZXhhbXBsZQoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogICAgICAgICJvU2VhcmNoIjogeyJzU2VhcmNoIjogIkluaXRpYWwgc2VhcmNoIn0KCSAqICAgICAgfSApOwoJICogICAgfSApCgkgKi8KCSJvU2VhcmNoIjogJC5leHRlbmQoIHt9LCBEYXRhVGFibGUubW9kZWxzLm9TZWFyY2ggKSwKCgoJLyoqCgkgKiBCeSBkZWZhdWx0IERhdGFUYWJsZXMgd2lsbCBsb29rIGZvciB0aGUgcHJvcGVydHkgJ2FhRGF0YScgd2hlbiBvYnRhaW5pbmcKCSAqIGRhdGEgZnJvbSBhbiBBamF4IHNvdXJjZSBvciBmb3Igc2VydmVyLXNpZGUgcHJvY2Vzc2luZyAtIHRoaXMgcGFyYW1ldGVyCgkgKiBhbGxvd3MgdGhhdCBwcm9wZXJ0eSB0byBiZSBjaGFuZ2VkLiBZb3UgY2FuIHVzZSBKYXZhc2NyaXB0IGRvdHRlZCBvYmplY3QKCSAqIG5vdGF0aW9uIHRvIGdldCBhIGRhdGEgc291cmNlIGZvciBtdWx0aXBsZSBsZXZlbHMgb2YgbmVzdGluZy4KCSAqICBAdHlwZSBzdHJpbmcKCSAqICBAZGVmYXVsdCBhYURhdGEKCSAqICBAZHRvcHQgT3B0aW9ucwoJICogIEBkdG9wdCBTZXJ2ZXItc2lkZQoJICogCgkgKiAgQGV4YW1wbGUKCSAqICAgIC8vIEdldCBkYXRhIGZyb20geyAiZGF0YSI6IFsuLi5dIH0KCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCSAqICAgICAgdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgICAgICAgInNBamF4U291cmNlIjogInNvdXJjZXMvZGF0YS50eHQiLAoJICogICAgICAgICJzQWpheERhdGFQcm9wIjogImRhdGEiCgkgKiAgICAgIH0gKTsKCSAqICAgIH0gKTsKCSAqICAgIAoJICogIEBleGFtcGxlCgkgKiAgICAvLyBHZXQgZGF0YSBmcm9tIHsgImRhdGEiOiB7ICJpbm5lciI6IFsuLi5dIH0gfQoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJICogICAgICB2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAic0FqYXhTb3VyY2UiOiAic291cmNlcy9kYXRhLnR4dCIsCgkgKiAgICAgICAgInNBamF4RGF0YVByb3AiOiAiZGF0YS5pbm5lciIKCSAqICAgICAgfSApOwoJICogICAgfSApOwoJICovCgkic0FqYXhEYXRhUHJvcCI6ICJhYURhdGEiLAoKCgkvKioKCSAqIFlvdSBjYW4gaW5zdHJ1Y3QgRGF0YVRhYmxlcyB0byBsb2FkIGRhdGEgZnJvbSBhbiBleHRlcm5hbCBzb3VyY2UgdXNpbmcgdGhpcwoJICogcGFyYW1ldGVyICh1c2UgYURhdGEgaWYgeW91IHdhbnQgdG8gcGFzcyBkYXRhIGluIHlvdSBhbHJlYWR5IGhhdmUpLiBTaW1wbHkKCSAqIHByb3ZpZGUgYSB1cmwgYSBKU09OIG9iamVjdCBjYW4gYmUgb2J0YWluZWQgZnJvbS4gVGhpcyBvYmplY3QgbXVzdCBpbmNsdWRlCgkgKiB0aGUgcGFyYW1ldGVyICdhYURhdGEnIHdoaWNoIGlzIHRoZSBkYXRhIHNvdXJjZSBmb3IgdGhlIHRhYmxlLgoJICogIEB0eXBlIHN0cmluZwoJICogIEBkZWZhdWx0IG51bGwKCSAqICBAZHRvcHQgT3B0aW9ucwoJICogIEBkdG9wdCBTZXJ2ZXItc2lkZQoJICogCgkgKiAgQGV4YW1wbGUKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAic0FqYXhTb3VyY2UiOiAiaHR0cDovL3d3dy5zcHJ5bWVkaWEuY28udWsvZGF0YVRhYmxlcy9qc29uLnBocCIKCSAqICAgICAgfSApOwoJICogICAgfSApCgkgKi8KCSJzQWpheFNvdXJjZSI6IG51bGwsCgoKCS8qKgoJICogVGhpcyBwYXJhbWV0ZXIgY2FuIGJlIHVzZWQgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgcHJlZml4IHRoYXQgRGF0YVRhYmxlcwoJICogYXNzaWducyB0byBhIGNvb2tpZSB3aGVuIHN0YXRlIHNhdmluZyBpcyBlbmFibGVkLgoJICogIEB0eXBlIHN0cmluZwoJICogIEBkZWZhdWx0IFNwcnlNZWRpYV9EYXRhVGFibGVzXwoJICogIEBkdG9wdCBPcHRpb25zCgkgKiAKCSAqICBAZXhhbXBsZQoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogICAgICAgICJzQ29va2llUHJlZml4IjogIm15X2RhdGF0YWJsZV8iLAoJICogICAgICB9ICk7CgkgKiAgICB9ICk7CgkgKi8KCSJzQ29va2llUHJlZml4IjogIlNwcnlNZWRpYV9EYXRhVGFibGVzXyIsCgoKCS8qKgoJICogVGhpcyBpbml0aWFsaXNhdGlvbiB2YXJpYWJsZSBhbGxvd3MgeW91IHRvIHNwZWNpZnkgZXhhY3RseSB3aGVyZSBpbiB0aGUKCSAqIERPTSB5b3Ugd2FudCBEYXRhVGFibGVzIHRvIGluamVjdCB0aGUgdmFyaW91cyBjb250cm9scyBpdCBhZGRzIHRvIHRoZSBwYWdlCgkgKiAoZm9yIGV4YW1wbGUgeW91IG1pZ2h0IHdhbnQgdGhlIHBhZ2luYXRpb24gY29udHJvbHMgYXQgdGhlIHRvcCBvZiB0aGUKCSAqIHRhYmxlKS4gRElWIGVsZW1lbnRzICh3aXRoIG9yIHdpdGhvdXQgYSBjdXN0b20gY2xhc3MpIGNhbiBhbHNvIGJlIGFkZGVkIHRvCgkgKiBhaWQgc3R5bGluZy4gVGhlIGZvbGxvdyBzeW50YXggaXMgdXNlZDoKCSAqICAgPHVsPgoJICogICAgIDxsaT5UaGUgZm9sbG93aW5nIG9wdGlvbnMgYXJlIGFsbG93ZWQ6CQoJICogICAgICAgPHVsPgoJICogICAgICAgICA8bGk+J2wnIC0gTGVuZ3RoIGNoYW5naW5nPC9saQoJICogICAgICAgICA8bGk+J2YnIC0gRmlsdGVyaW5nIGlucHV0PC9saT4KCSAqICAgICAgICAgPGxpPid0JyAtIFRoZSB0YWJsZSE8L2xpPgoJICogICAgICAgICA8bGk+J2knIC0gSW5mb3JtYXRpb248L2xpPgoJICogICAgICAgICA8bGk+J3AnIC0gUGFnaW5hdGlvbjwvbGk+CgkgKiAgICAgICAgIDxsaT4ncicgLSBwUm9jZXNzaW5nPC9saT4KCSAqICAgICAgIDwvdWw+CgkgKiAgICAgPC9saT4KCSAqICAgICA8bGk+VGhlIGZvbGxvd2luZyBjb25zdGFudHMgYXJlIGFsbG93ZWQ6CgkgKiAgICAgICA8dWw+CgkgKiAgICAgICAgIDxsaT4nSCcgLSBqUXVlcnlVSSB0aGVtZSAiaGVhZGVyIiBjbGFzc2VzICgnZmctdG9vbGJhciB1aS13aWRnZXQtaGVhZGVyIHVpLWNvcm5lci10bCB1aS1jb3JuZXItdHIgdWktaGVscGVyLWNsZWFyZml4Jyk8L2xpPgoJICogICAgICAgICA8bGk+J0YnIC0galF1ZXJ5VUkgdGhlbWUgImZvb3RlciIgY2xhc3NlcyAoJ2ZnLXRvb2xiYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1jb3JuZXItYmwgdWktY29ybmVyLWJyIHVpLWhlbHBlci1jbGVhcmZpeCcpPC9saT4KCSAqICAgICAgIDwvdWw+CgkgKiAgICAgPC9saT4KCSAqICAgICA8bGk+VGhlIGZvbGxvd2luZyBzeW50YXggaXMgZXhwZWN0ZWQ6CgkgKiAgICAgICA8dWw+CgkgKiAgICAgICAgIDxsaT4nJmx0OycgYW5kICcmZ3Q7JyAtIGRpdiBlbGVtZW50czwvbGk+CgkgKiAgICAgICAgIDxsaT4nJmx0OyJjbGFzcyIgYW5kICcmZ3Q7JyAtIGRpdiB3aXRoIGEgY2xhc3M8L2xpPgoJICogICAgICAgICA8bGk+JyZsdDsiI2lkIiBhbmQgJyZndDsnIC0gZGl2IHdpdGggYW4gSUQ8L2xpPgoJICogICAgICAgPC91bD4KCSAqICAgICA8L2xpPgoJICogICAgIDxsaT5FeGFtcGxlczoKCSAqICAgICAgIDx1bD4KCSAqICAgICAgICAgPGxpPicmbHQ7IndyYXBwZXIiZmxpcHQmZ3Q7JzwvbGk+CgkgKiAgICAgICAgIDxsaT4nJmx0O2xmJmx0O3QmZ3Q7aXAmZ3Q7JzwvbGk+CgkgKiAgICAgICA8L3VsPgoJICogICAgIDwvbGk+CgkgKiAgIDwvdWw+CgkgKiAgQHR5cGUgc3RyaW5nCgkgKiAgQGRlZmF1bHQgbGZydGlwIDxpPih3aGVuIGJKUXVlcnlVSSBpcyBmYWxzZSk8L2k+IDxiPm9yPC9iPiAKCSAqICAgIDwiSCJsZnI+dDwiRiJpcD4gPGk+KHdoZW4gYkpRdWVyeVVJIGlzIHRydWUpPC9pPgoJICogIEBkdG9wdCBPcHRpb25zCgkgKiAKCSAqICBAZXhhbXBsZQoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogICAgICAgICJzRG9tIjogJyZsdDsidG9wImkmZ3Q7cnQmbHQ7ImJvdHRvbSJmbHAmZ3Q7Jmx0OyJjbGVhciImZ3Q7JwoJICogICAgICB9ICk7CgkgKiAgICB9ICk7CgkgKi8KCSJzRG9tIjogImxmcnRpcCIsCgoKCS8qKgoJICogRGF0YVRhYmxlcyBmZWF0dXJlcyB0d28gZGlmZmVyZW50IGJ1aWx0LWluIHBhZ2luYXRpb24gaW50ZXJhY3Rpb24gbWV0aG9kcwoJICogKCd0d29fYnV0dG9uJyBvciAnZnVsbF9udW1iZXJzJykgd2hpY2ggcHJlc2VudCBkaWZmZXJlbnQgcGFnZSBjb250cm9scyB0bwoJICogdGhlIGVuZCB1c2VyLiBGdXJ0aGVyIG1ldGhvZHMgY2FuIGJlIGFkZGVkIHVzaW5nIHRoZSBBUEkgKHNlZSBiZWxvdykuCgkgKiAgQHR5cGUgc3RyaW5nCgkgKiAgQGRlZmF1bHQgdHdvX2J1dHRvbgoJICogIEBkdG9wdCBPcHRpb25zCgkgKiAKCSAqICBAZXhhbXBsZQoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogICAgICAgICJzUGFnaW5hdGlvblR5cGUiOiAiZnVsbF9udW1iZXJzIgoJICogICAgICB9ICk7CgkgKiAgICB9ICkKCSAqLwoJInNQYWdpbmF0aW9uVHlwZSI6ICJ0d29fYnV0dG9uIiwKCgoJLyoqCgkgKiBFbmFibGUgaG9yaXpvbnRhbCBzY3JvbGxpbmcuIFdoZW4gYSB0YWJsZSBpcyB0b28gd2lkZSB0byBmaXQgaW50byBhIGNlcnRhaW4KCSAqIGxheW91dCwgb3IgeW91IGhhdmUgYSBsYXJnZSBudW1iZXIgb2YgY29sdW1ucyBpbiB0aGUgdGFibGUsIHlvdSBjYW4gZW5hYmxlCgkgKiB4LXNjcm9sbGluZyB0byBzaG93IHRoZSB0YWJsZSBpbiBhIHZpZXdwb3J0LCB3aGljaCBjYW4gYmUgc2Nyb2xsZWQuIFRoaXMKCSAqIHByb3BlcnR5IGNhbiBiZSBhbnkgQ1NTIHVuaXQsIG9yIGEgbnVtYmVyIChpbiB3aGljaCBjYXNlIGl0IHdpbGwgYmUgdHJlYXRlZAoJICogYXMgYSBwaXhlbCBtZWFzdXJlbWVudCkuCgkgKiAgQHR5cGUgc3RyaW5nCgkgKiAgQGRlZmF1bHQgPGk+Ymxhbmsgc3RyaW5nIC0gaS5lLiBkaXNhYmxlZDwvaT4KCSAqICBAZHRvcHQgRmVhdHVyZXMKCSAqIAoJICogIEBleGFtcGxlCgkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgICAgICAgInNTY3JvbGxYIjogIjEwMCUiLAoJICogICAgICAgICJiU2Nyb2xsQ29sbGFwc2UiOiB0cnVlCgkgKiAgICAgIH0gKTsKCSAqICAgIH0gKTsKCSAqLwoJInNTY3JvbGxYIjogIiIsCgoKCS8qKgoJICogVGhpcyBwcm9wZXJ0eSBjYW4gYmUgdXNlZCB0byBmb3JjZSBhIERhdGFUYWJsZSB0byB1c2UgbW9yZSB3aWR0aCB0aGFuIGl0CgkgKiBtaWdodCBvdGhlcndpc2UgZG8gd2hlbiB4LXNjcm9sbGluZyBpcyBlbmFibGVkLiBGb3IgZXhhbXBsZSBpZiB5b3UgaGF2ZSBhCgkgKiB0YWJsZSB3aGljaCByZXF1aXJlcyB0byBiZSB3ZWxsIHNwYWNlZCwgdGhpcyBwYXJhbWV0ZXIgaXMgdXNlZnVsIGZvcgoJICogIm92ZXItc2l6aW5nIiB0aGUgdGFibGUsIGFuZCB0aHVzIGZvcmNpbmcgc2Nyb2xsaW5nLiBUaGlzIHByb3BlcnR5IGNhbiBieQoJICogYW55IENTUyB1bml0LCBvciBhIG51bWJlciAoaW4gd2hpY2ggY2FzZSBpdCB3aWxsIGJlIHRyZWF0ZWQgYXMgYSBwaXhlbAoJICogbWVhc3VyZW1lbnQpLgoJICogIEB0eXBlIHN0cmluZwoJICogIEBkZWZhdWx0IDxpPmJsYW5rIHN0cmluZyAtIGkuZS4gZGlzYWJsZWQ8L2k+CgkgKiAgQGR0b3B0IE9wdGlvbnMKCSAqIAoJICogIEBleGFtcGxlCgkgKiAgICAkKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24oKSB7CgkgKiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkgKiAgICAgICAgInNTY3JvbGxYIjogIjEwMCUiLAoJICogICAgICAgICJzU2Nyb2xsWElubmVyIjogIjExMCUiCgkgKiAgICAgIH0gKTsKCSAqICAgIH0gKTsKCSAqLwoJInNTY3JvbGxYSW5uZXIiOiAiIiwKCgoJLyoqCgkgKiBFbmFibGUgdmVydGljYWwgc2Nyb2xsaW5nLiBWZXJ0aWNhbCBzY3JvbGxpbmcgd2lsbCBjb25zdHJhaW4gdGhlIERhdGFUYWJsZQoJICogdG8gdGhlIGdpdmVuIGhlaWdodCwgYW5kIGVuYWJsZSBzY3JvbGxpbmcgZm9yIGFueSBkYXRhIHdoaWNoIG92ZXJmbG93cyB0aGUKCSAqIGN1cnJlbnQgdmlld3BvcnQuIFRoaXMgY2FuIGJlIHVzZWQgYXMgYW4gYWx0ZXJuYXRpdmUgdG8gcGFnaW5nIHRvIGRpc3BsYXkKCSAqIGEgbG90IG9mIGRhdGEgaW4gYSBzbWFsbCBhcmVhIChhbHRob3VnaCBwYWdpbmcgYW5kIHNjcm9sbGluZyBjYW4gYm90aCBiZQoJICogZW5hYmxlZCBhdCB0aGUgc2FtZSB0aW1lKS4gVGhpcyBwcm9wZXJ0eSBjYW4gYmUgYW55IENTUyB1bml0LCBvciBhIG51bWJlcgoJICogKGluIHdoaWNoIGNhc2UgaXQgd2lsbCBiZSB0cmVhdGVkIGFzIGEgcGl4ZWwgbWVhc3VyZW1lbnQpLgoJICogIEB0eXBlIHN0cmluZwoJICogIEBkZWZhdWx0IDxpPmJsYW5rIHN0cmluZyAtIGkuZS4gZGlzYWJsZWQ8L2k+CgkgKiAgQGR0b3B0IEZlYXR1cmVzCgkgKiAKCSAqICBAZXhhbXBsZQoJICogICAgJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJICogICAgICAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJICogICAgICAgICJzU2Nyb2xsWSI6ICIyMDBweCIsCgkgKiAgICAgICAgImJQYWdpbmF0ZSI6IGZhbHNlCgkgKiAgICAgIH0gKTsKCSAqICAgIH0gKTsKCSAqLwoJInNTY3JvbGxZIjogIiIsCgoKCS8qKgoJICogU2V0IHRoZSBIVFRQIG1ldGhvZCB0aGF0IGlzIHVzZWQgdG8gbWFrZSB0aGUgQWpheCBjYWxsIGZvciBzZXJ2ZXItc2lkZQoJICogcHJvY2Vzc2luZyBvciBBamF4IHNvdXJjZWQgZGF0YS4KCSAqICBAdHlwZSBzdHJpbmcKCSAqICBAZGVmYXVsdCBHRVQKCSAqICBAZHRvcHQgT3B0aW9ucwoJICogIEBkdG9wdCBTZXJ2ZXItc2lkZQoJICogCgkgKiAgQGV4YW1wbGUKCSAqICAgICQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbigpIHsKCSAqICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCSAqICAgICAgICAiYlNlcnZlclNpZGUiOiB0cnVlLAoJICogICAgICAgICJzQWpheFNvdXJjZSI6ICJzY3JpcHRzL3Bvc3QucGhwIiwKCSAqICAgICAgICAic1NlcnZlck1ldGhvZCI6ICJQT1NUIgoJICogICAgICB9ICk7CgkgKiAgICB9ICk7CgkgKi8KCSJzU2VydmVyTWV0aG9kIjogIkdFVCIKfTsKCg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/model/model.ext.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CgovKioKICogRGF0YVRhYmxlcyBleHRlbnNpb24gb3B0aW9ucyBhbmQgcGx1Zy1pbnMuIFRoaXMgbmFtZXNwYWNlIGFjdHMgYXMgYSBjb2xsZWN0aW9uICJhcmVhIgogKiBmb3IgcGx1Zy1pbnMgdGhhdCBjYW4gYmUgdXNlZCB0byBleHRlbmQgdGhlIGRlZmF1bHQgRGF0YVRhYmxlcyBiZWhhdmlvdXIgLSBpbmRlZWQgbWFueQogKiBvZiB0aGUgYnVpbGQgaW4gbWV0aG9kcyB1c2UgdGhpcyBtZXRob2QgdG8gcHJvdmlkZSB0aGVpciBvd24gY2FwYWJpbGl0aWVzIChzb3J0aW5nIG1ldGhvZHMKICogZm9yIGV4YW1wbGUpLgogKiAKICogTm90ZSB0aGF0IHRoaXMgbmFtZXNwYWNlIGlzIGFsaWFzZWQgdG8galF1ZXJ5LmZuLmRhdGFUYWJsZUV4dCBzbyBpdCBjYW4gYmUgcmVhZGlseSBhY2Nlc3NlZAogKiBhbmQgbW9kaWZpZWQgYnkgcGx1Zy1pbnMuCiAqICBAbmFtZXNwYWNlCiAqLwpEYXRhVGFibGUubW9kZWxzLmV4dCA9IHsKCS8qKgoJICogUGx1Zy1pbiBmaWx0ZXJpbmcgZnVuY3Rpb25zIC0gdGhpcyBtZXRob2Qgb2YgZmlsdGVyaW5nIGlzIGNvbXBsaW1lbnRhcnkgdG8gdGhlIGRlZmF1bHQKCSAqIHR5cGUgYmFzZWQgZmlsdGVyaW5nLCBhbmQgYSBsb3QgbW9yZSBjb21wcmVoZW5zaXZlIGFzIGl0IGFsbG93cyB5b3UgY29tcGxldGUgY29udHJvbAoJICogb3ZlciB0aGUgZmlsdGVyaW5nIGxvZ2ljLiBFYWNoIGVsZW1lbnQgaW4gdGhpcyBhcnJheSBpcyBhIGZ1bmN0aW9uIChwYXJhbWV0ZXJzCgkgKiBkZXNjcmliZWQgYmVsb3cpIHRoYXQgaXMgY2FsbGVkIGZvciBldmVyeSByb3cgaW4gdGhlIHRhYmxlLCBhbmQgeW91ciBsb2dpYyBkZWNpZGVzIGlmCgkgKiBpdCBzaG91bGQgYmUgaW5jbHVkZWQgaW4gdGhlIGZpbHRlcmVkIGRhdGEgc2V0IG9yIG5vdC4KCSAqICAgPHVsPgoJICogICAgIDxsaT4KCSAqICAgICAgIEZ1bmN0aW9uIGlucHV0IHBhcmFtZXRlcnM6CgkgKiAgICAgICA8dWw+CgkgKiAgICAgICAgIDxsaT57b2JqZWN0fSBEYXRhVGFibGVzIHNldHRpbmdzIG9iamVjdDogc2VlIHtAbGluayBEYXRhVGFibGUubW9kZWxzLm9TZXR0aW5nc30uPC9saT4KCSAqICAgICAgICAgPGxpPnthcnJheXxvYmplY3R9IERhdGEgZm9yIHRoZSByb3cgdG8gYmUgcHJvY2Vzc2VkIChzYW1lIGFzIHRoZSBvcmlnaW5hbCBmb3JtYXQKCSAqICAgICAgICAgICB0aGF0IHdhcyBwYXNzZWQgaW4gYXMgdGhlIGRhdGEgc291cmNlLCBvciBhbiBhcnJheSBmcm9tIGEgRE9NIGRhdGEgc291cmNlPC9saT4KCSAqICAgICAgICAgPGxpPntpbnR9IFJvdyBpbmRleCBpbiBhb0RhdGEgKHtAbGluayBEYXRhVGFibGUubW9kZWxzLm9TZXR0aW5ncy5hb0RhdGF9KSwgd2hpY2ggY2FuCgkgKiAgICAgICAgICAgYmUgdXNlZnVsIHRvIHJldHJpZXZlIHRoZSBUUiBlbGVtZW50IGlmIHlvdSBuZWVkIERPTSBpbnRlcmFjdGlvbi48L2xpPgoJICogICAgICAgPC91bD4KCSAqICAgICA8L2xpPgoJICogICAgIDxsaT4KCSAqICAgICAgIEZ1bmN0aW9uIHJldHVybjoKCSAqICAgICAgIDx1bD4KCSAqICAgICAgICAgPGxpPntib29sZWFufSBJbmNsdWRlIHRoZSByb3cgaW4gdGhlIGZpbHRlcmVkIHJlc3VsdCBzZXQgKHRydWUpIG9yIG5vdCAoZmFsc2UpPC9saT4KCSAqICAgICAgIDwvdWw+CgkgKiAgICAgPC9pbD4KCSAqICAgPC91bD4KCSAqICBAdHlwZSBhcnJheQoJICogIEBkZWZhdWx0IFtdCgkgKgoJICogIEBleGFtcGxlCgkgKiAgICAvLyBUaGUgZm9sbG93aW5nIGV4YW1wbGUgc2hvd3MgY3VzdG9tIGZpbHRlcmluZyBiZWluZyBhcHBsaWVkIHRvIHRoZSBmb3VydGggY29sdW1uIChpLmUuCgkgKiAgICAvLyB0aGUgYURhdGFbM10gaW5kZXgpIGJhc2VkIG9uIHR3byBpbnB1dCB2YWx1ZXMgZnJvbSB0aGUgZW5kLXVzZXIsIG1hdGNoaW5nIHRoZSBkYXRhIGluIAoJICogICAgLy8gYSBjZXJ0YWluIHJhbmdlLgoJICogICAgJC5mbi5kYXRhVGFibGVFeHQuYWZuRmlsdGVyaW5nLnB1c2goCgkgKiAgICAgIGZ1bmN0aW9uKCBvU2V0dGluZ3MsIGFEYXRhLCBpRGF0YUluZGV4ICkgewoJICogICAgICAgIHZhciBpTWluID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21pbicpLnZhbHVlICogMTsKCSAqICAgICAgICB2YXIgaU1heCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYXgnKS52YWx1ZSAqIDE7CgkgKiAgICAgICAgdmFyIGlWZXJzaW9uID0gYURhdGFbM10gPT0gIi0iID8gMCA6IGFEYXRhWzNdKjE7CgkgKiAgICAgICAgaWYgKCBpTWluID09ICIiICYmIGlNYXggPT0gIiIgKSB7CgkgKiAgICAgICAgICByZXR1cm4gdHJ1ZTsKCSAqICAgICAgICB9CgkgKiAgICAgICAgZWxzZSBpZiAoIGlNaW4gPT0gIiIgJiYgaVZlcnNpb24gPCBpTWF4ICkgewoJICogICAgICAgICAgcmV0dXJuIHRydWU7CgkgKiAgICAgICAgfQoJICogICAgICAgIGVsc2UgaWYgKCBpTWluIDwgaVZlcnNpb24gJiYgIiIgPT0gaU1heCApIHsKCSAqICAgICAgICAgIHJldHVybiB0cnVlOwoJICogICAgICAgIH0KCSAqICAgICAgICBlbHNlIGlmICggaU1pbiA8IGlWZXJzaW9uICYmIGlWZXJzaW9uIDwgaU1heCApIHsKCSAqICAgICAgICAgIHJldHVybiB0cnVlOwoJICogICAgICAgIH0KCSAqICAgICAgICByZXR1cm4gZmFsc2U7CgkgKiAgICAgIH0KCSAqICAgICk7CgkgKi8KCSJhZm5GaWx0ZXJpbmciOiBbXSwKCgoJLyoqCgkgKiBQbHVnLWluIHNvcnRpbmcgZnVuY3Rpb25zIC0gdGhpcyBtZXRob2Qgb2Ygc29ydGluZyBpcyBjb21wbGltZW50YXJ5IHRvIHRoZSBkZWZhdWx0IHR5cGUKCSAqIGJhc2VkIHNvcnRpbmcgdGhhdCBEYXRhVGFibGVzIGRvZXMgYXV0b21hdGljYWxseSwgYWxsb3dpbmcgbXVjaCBncmVhdGVyIGNvbnRyb2wgb3ZlciB0aGUKCSAqIHRoZSBkYXRhIHRoYXQgaXMgYmVpbmcgdXNlZCB0byBzb3J0IGEgY29sdW1uLiBUaGlzIGlzIHVzZWZ1bCBpZiB5b3Ugd2FudCB0byBkbyBzb3J0aW5nCgkgKiBiYXNlZCBvbiBsaXZlIGRhdGEgKGZvciBleGFtcGxlIHRoZSBjb250ZW50cyBvZiBhbiAnaW5wdXQnIGVsZW1lbnQpIHJhdGhlciB0aGFuIGp1c3QgdGhlCgkgKiBzdGF0aWMgc3RyaW5nIHRoYXQgRGF0YVRhYmxlcyBrbm93cyBvZi4gVGhlIHdheSB0aGVzZSBwbHVnLWlucyB3b3JrIGlzIHRoYXQgeW91IGNyZWF0ZQoJICogYW4gYXJyYXkgb2YgdGhlIHZhbHVlcyB5b3Ugd2lzaCB0byBiZSBzb3J0ZWQgZm9yIHRoZSBjb2x1bW4gaW4gcXVlc3Rpb24gYW5kIHRoZW4gcmV0dXJuCgkgKiB0aGF0IGFycmF5LiBXaGljaCBwcmUtc29ydGluZyBmdW5jdGlvbiBpcyBydW4gaGVyZSBkZXBlbmRzIG9uIHRoZSBzU29ydERhdGFUeXBlIHBhcmFtZXRlcgoJICogdGhhdCBpcyB1c2VkIGZvciB0aGUgY29sdW1uIChpZiBhbnkpLiBUaGlzIGlzIHRoZSBjb3JvbGxhcnkgb2YgPGk+b2ZuU2VhcmNoPC9pPiBmb3Igc29ydCAKCSAqIGRhdGEuCgkgKiAgIDx1bD4KICAgICAqICAgICA8bGk+CiAgICAgKiAgICAgICBGdW5jdGlvbiBpbnB1dCBwYXJhbWV0ZXJzOgogICAgICogICAgICAgPHVsPgoJICogICAgICAgICA8bGk+e29iamVjdH0gRGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3Q6IHNlZSB7QGxpbmsgRGF0YVRhYmxlLm1vZGVscy5vU2V0dGluZ3N9LjwvbGk+CiAgICAgKiAgICAgICAgIDxsaT57aW50fSBUYXJnZXQgY29sdW1uIGluZGV4PC9saT4KICAgICAqICAgICAgIDwvdWw+CiAgICAgKiAgICAgPC9saT4KCSAqICAgICA8bGk+CgkgKiAgICAgICBGdW5jdGlvbiByZXR1cm46CgkgKiAgICAgICA8dWw+CgkgKiAgICAgICAgIDxsaT57YXJyYXl9IERhdGEgZm9yIHRoZSBjb2x1bW4gdG8gYmUgc29ydGVkIHVwb248L2xpPgoJICogICAgICAgPC91bD4KCSAqICAgICA8L2lsPgoJICogICA8L3VsPgoJICogIAoJICogTm90ZSB0aGF0IGFzIG9mIHYxLjksIGl0IGlzIHR5cGljYWxseSBwcmVmZXJhYmxlIHRvIHVzZSA8aT5tRGF0YTwvaT4gdG8gcHJlcGFyZSBkYXRhIGZvcgoJICogdGhlIGRpZmZlcmVudCB1c2VzIHRoYXQgRGF0YVRhYmxlcyBjYW4gcHV0IHRoZSBkYXRhIHRvLiBTcGVjaWZpY2FsbHkgPGk+bURhdGE8L2k+IHdoZW4KCSAqIHVzZWQgYXMgYSBmdW5jdGlvbiB3aWxsIGdpdmUgeW91IGEgJ3R5cGUnIChzb3J0aW5nLCBmaWx0ZXJpbmcgZXRjKSB0aGF0IHlvdSBjYW4gdXNlIHRvIAoJICogcHJlcGFyZSB0aGUgZGF0YSBhcyByZXF1aXJlZCBmb3IgdGhlIGRpZmZlcmVudCB0eXBlcy4gQXMgc3VjaCwgdGhpcyBtZXRob2QgaXMgZGVwcmVjYXRlZC4KCSAqICBAdHlwZSBhcnJheQoJICogIEBkZWZhdWx0IFtdCgkgKiAgQGRlcHJlY2F0ZWQKCSAqCgkgKiAgQGV4YW1wbGUKCSAqICAgIC8vIFVwZGF0aW5nIHRoZSBjYWNoZWQgc29ydGluZyBpbmZvcm1hdGlvbiB3aXRoIHVzZXIgZW50ZXJlZCB2YWx1ZXMgaW4gSFRNTCBpbnB1dCBlbGVtZW50cwoJICogICAgalF1ZXJ5LmZuLmRhdGFUYWJsZUV4dC5hZm5Tb3J0RGF0YVsnZG9tLXRleHQnXSA9IGZ1bmN0aW9uICggb1NldHRpbmdzLCBpQ29sdW1uICkKCSAqICAgIHsKCSAqICAgICAgdmFyIGFEYXRhID0gW107CgkgKiAgICAgICQoICd0ZDplcSgnK2lDb2x1bW4rJykgaW5wdXQnLCBvU2V0dGluZ3Mub0FwaS5fZm5HZXRUck5vZGVzKG9TZXR0aW5ncykgKS5lYWNoKCBmdW5jdGlvbiAoKSB7CgkgKiAgICAgICAgYURhdGEucHVzaCggdGhpcy52YWx1ZSApOwoJICogICAgICB9ICk7CgkgKiAgICAgIHJldHVybiBhRGF0YTsKCSAqICAgIH0KCSAqLwoJImFmblNvcnREYXRhIjogW10sCgoKCS8qKgoJICogRmVhdHVyZSBwbHVnLWlucyAtIFRoaXMgaXMgYW4gYXJyYXkgb2Ygb2JqZWN0cyB3aGljaCBkZXNjcmliZSB0aGUgZmVhdHVyZSBwbHVnLWlucyB0aGF0IGFyZQoJICogYXZhaWxhYmxlIHRvIERhdGFUYWJsZXMuIFRoZXNlIGZlYXR1cmUgcGx1Zy1pbnMgYXJlIGFjY2Vzc2libGUgdGhyb3VnaCB0aGUgc0RvbSBpbml0aWFsaXNhdGlvbgoJICogb3B0aW9uLiBBcyBzdWNoLCBlYWNoIGZlYXR1cmUgcGx1Zy1pbiBtdXN0IGRlc2NyaWJlIGEgZnVuY3Rpb24gdGhhdCBpcyB1c2VkIHRvIGluaXRpYWxpc2UKCSAqIGl0c2VsZiAoZm5Jbml0KSwgYSBjaGFyYWN0ZXIgc28gdGhlIGZlYXR1cmUgY2FuIGJlIGVuYWJsZWQgYnkgc0RvbSAoY0ZlYXR1cmUpIGFuZCB0aGUgbmFtZQoJICogb2YgdGhlIGZlYXR1cmUgKHNGZWF0dXJlKS4gVGh1cyB0aGUgb2JqZWN0cyBhdHRhY2hlZCB0byB0aGlzIG1ldGhvZCBtdXN0IHByb3ZpZGU6CgkgKiAgIDx1bD4KCSAqICAgICA8bGk+e2Z1bmN0aW9ufSBmbkluaXQgSW5pdGlhbGlzYXRpb24gb2YgdGhlIHBsdWctaW4KCSAqICAgICAgIDx1bD4KICAgICAqICAgICAgICAgPGxpPgogICAgICogICAgICAgICAgIEZ1bmN0aW9uIGlucHV0IHBhcmFtZXRlcnM6CiAgICAgKiAgICAgICAgICAgPHVsPgoJICogICAgICAgICAgICAgPGxpPntvYmplY3R9IERhdGFUYWJsZXMgc2V0dGluZ3Mgb2JqZWN0OiBzZWUge0BsaW5rIERhdGFUYWJsZS5tb2RlbHMub1NldHRpbmdzfS48L2xpPgogICAgICogICAgICAgICAgIDwvdWw+CiAgICAgKiAgICAgICAgIDwvbGk+CgkgKiAgICAgICAgIDxsaT4KCSAqICAgICAgICAgICBGdW5jdGlvbiByZXR1cm46CgkgKiAgICAgICAgICAgPHVsPgoJICogICAgICAgICAgICAgPGxpPntub2RlfG51bGx9IFRoZSBlbGVtZW50IHdoaWNoIGNvbnRhaW5zIHlvdXIgZmVhdHVyZS4gTm90ZSB0aGF0IHRoZSByZXR1cm4KCSAqICAgICAgICAgICAgICAgIG1heSBhbHNvIGJlIHZvaWQgaWYgeW91ciBwbHVnLWluIGRvZXMgbm90IHJlcXVpcmUgdG8gaW5qZWN0IGFueSBET00gZWxlbWVudHMgCgkgKiAgICAgICAgICAgICAgICBpbnRvIERhdGFUYWJsZXMgY29udHJvbCAoc0RvbSkgLSBmb3IgZXhhbXBsZSB0aGlzIG1pZ2h0IGJlIHVzZWZ1bCB3aGVuIAoJICogICAgICAgICAgICAgICAgZGV2ZWxvcGluZyBhIHBsdWctaW4gd2hpY2ggYWxsb3dzIHRhYmxlIGNvbnRyb2wgdmlhIGtleWJvYXJkIGVudHJ5LjwvbGk+CgkgKiAgICAgICAgICAgPC91bD4KCSAqICAgICAgICAgPC9pbD4KCSAqICAgICAgIDwvdWw+CgkgKiAgICAgPC9saT4KCSAqICAgICA8bGk+e2NoYXJhY3Rlcn0gY0ZlYXR1cmUgQ2hhcmFjdGVyIHRoYXQgd2lsbCBiZSBtYXRjaGVkIGluIHNEb20gLSBjYXNlIHNlbnNpdGl2ZTwvbGk+CgkgKiAgICAgPGxpPntzdHJpbmd9IHNGZWF0dXJlIEZlYXR1cmUgbmFtZTwvbGk+CgkgKiAgIDwvdWw+CgkgKiAgQHR5cGUgYXJyYXkKCSAqICBAZGVmYXVsdCBbXQoJICogCgkgKiAgQGV4YW1wbGUKCSAqICAgIC8vIEhvdyBUYWJsZVRvb2xzIGluaXRpYWxpc2VzIGl0c2VsZi4KCSAqICAgICQuZm4uZGF0YVRhYmxlRXh0LmFvRmVhdHVyZXMucHVzaCggewoJICogICAgICAiZm5Jbml0IjogZnVuY3Rpb24oIG9TZXR0aW5ncyApIHsKCSAqICAgICAgICByZXR1cm4gbmV3IFRhYmxlVG9vbHMoIHsgIm9EVFNldHRpbmdzIjogb1NldHRpbmdzIH0gKTsKCSAqICAgICAgfSwKCSAqICAgICAgImNGZWF0dXJlIjogIlQiLAoJICogICAgICAic0ZlYXR1cmUiOiAiVGFibGVUb29scyIKCSAqICAgIH0gKTsKCSAqLwoJImFvRmVhdHVyZXMiOiBbXSwKCgoJLyoqCgkgKiBUeXBlIGRldGVjdGlvbiBwbHVnLWluIGZ1bmN0aW9ucyAtIERhdGFUYWJsZXMgdXRpbGlzZXMgdHlwZXMgdG8gZGVmaW5lIGhvdyBzb3J0aW5nIGFuZAoJICogZmlsdGVyaW5nIGJlaGF2ZSwgYW5kIHR5cGVzIGNhbiBiZSBlaXRoZXIgIGJlIGRlZmluZWQgYnkgdGhlIGRldmVsb3BlciAoc1R5cGUgZm9yIHRoZQoJICogY29sdW1uKSBvciB0aGV5IGNhbiBiZSBhdXRvbWF0aWNhbGx5IGRldGVjdGVkIGJ5IHRoZSBtZXRob2RzIGluIHRoaXMgYXJyYXkuIFRoZSBmdW5jdGlvbnMKCSAqIGRlZmluZWQgaW4gdGhlIGFycmF5IGFyZSBxdWl0ZSBzaW1wbGUsIHRha2luZyBhIHNpbmdsZSBwYXJhbWV0ZXIgKHRoZSBkYXRhIHRvIGFuYWx5c2UpIAoJICogYW5kIHJldHVybmluZyB0aGUgdHlwZSBpZiBpdCBpcyBhIGtub3duIHR5cGUsIG9yIG51bGwgb3RoZXJ3aXNlLgoJICogICA8dWw+CiAgICAgKiAgICAgPGxpPgogICAgICogICAgICAgRnVuY3Rpb24gaW5wdXQgcGFyYW1ldGVyczoKICAgICAqICAgICAgIDx1bD4KCSAqICAgICAgICAgPGxpPnsqfSBEYXRhIGZyb20gdGhlIGNvbHVtbiBjZWxsIHRvIGJlIGFuYWx5c2VkPC9saT4KICAgICAqICAgICAgIDwvdWw+CiAgICAgKiAgICAgPC9saT4KCSAqICAgICA8bGk+CgkgKiAgICAgICBGdW5jdGlvbiByZXR1cm46CgkgKiAgICAgICA8dWw+CgkgKiAgICAgICAgIDxsaT57c3RyaW5nfG51bGx9IERhdGEgdHlwZSBkZXRlY3RlZCwgb3IgbnVsbCBpZiB1bmtub3duIChhbmQgdGh1cyBwYXNzIGl0CgkgKiAgICAgICAgICAgb24gdG8gdGhlIG90aGVyIHR5cGUgZGV0ZWN0aW9uIGZ1bmN0aW9ucy48L2xpPgoJICogICAgICAgPC91bD4KCSAqICAgICA8L2lsPgoJICogICA8L3VsPgoJICogIEB0eXBlIGFycmF5CgkgKiAgQGRlZmF1bHQgW10KCSAqICAKCSAqICBAZXhhbXBsZQoJICogICAgLy8gQ3VycmVuY3kgdHlwZSBkZXRlY3Rpb24gcGx1Zy1pbjoKCSAqICAgIGpRdWVyeS5mbi5kYXRhVGFibGVFeHQuYVR5cGVzLnB1c2goCgkgKiAgICAgIGZ1bmN0aW9uICggc0RhdGEgKSB7CgkgKiAgICAgICAgdmFyIHNWYWxpZENoYXJzID0gIjAxMjM0NTY3ODkuLSI7CgkgKiAgICAgICAgdmFyIENoYXI7CgkgKiAgICAgICAgCgkgKiAgICAgICAgLy8gQ2hlY2sgdGhlIG51bWVyaWMgcGFydAoJICogICAgICAgIGZvciAoIGk9MSA7IGk8c0RhdGEubGVuZ3RoIDsgaSsrICkgewoJICogICAgICAgICAgQ2hhciA9IHNEYXRhLmNoYXJBdChpKTsgCgkgKiAgICAgICAgICBpZiAoc1ZhbGlkQ2hhcnMuaW5kZXhPZihDaGFyKSA9PSAtMSkgewoJICogICAgICAgICAgICByZXR1cm4gbnVsbDsKCSAqICAgICAgICAgIH0KCSAqICAgICAgICB9CgkgKiAgICAgICAgCgkgKiAgICAgICAgLy8gQ2hlY2sgcHJlZml4ZWQgYnkgY3VycmVuY3kKCSAqICAgICAgICBpZiAoIHNEYXRhLmNoYXJBdCgwKSA9PSAnJCcgfHwgc0RhdGEuY2hhckF0KDApID09ICcmcG91bmQ7JyApIHsKCSAqICAgICAgICAgIHJldHVybiAnY3VycmVuY3knOwoJICogICAgICAgIH0KCSAqICAgICAgICByZXR1cm4gbnVsbDsKCSAqICAgICAgfQoJICogICAgKTsKCSAqLwoJImFUeXBlcyI6IFtdLAoKCgkvKioKCSAqIFByb3ZpZGUgYSBjb21tb24gbWV0aG9kIGZvciBwbHVnLWlucyB0byBjaGVjayB0aGUgdmVyc2lvbiBvZiBEYXRhVGFibGVzIGJlaW5nIHVzZWQsIAoJICogaW4gb3JkZXIgdG8gZW5zdXJlIGNvbXBhdGliaWxpdHkuCgkgKiAgQHR5cGUgZnVuY3Rpb24KCSAqICBAcGFyYW0ge3N0cmluZ30gc1ZlcnNpb24gVmVyc2lvbiBzdHJpbmcgdG8gY2hlY2sgZm9yLCBpbiB0aGUgZm9ybWF0ICJYLlkuWiIuIE5vdGUgCgkgKiAgICB0aGF0IHRoZSBmb3JtYXRzICJYIiBhbmQgIlguWSIgYXJlIGFsc28gYWNjZXB0YWJsZS4KCSAqICBAcmV0dXJucyB7Ym9vbGVhbn0gdHJ1ZSBpZiB0aGlzIHZlcnNpb24gb2YgRGF0YVRhYmxlcyBpcyBncmVhdGVyIG9yIGVxdWFsIHRvIHRoZSAKCSAqICAgIHJlcXVpcmVkIHZlcnNpb24sIG9yIGZhbHNlIGlmIHRoaXMgdmVyc2lvbiBvZiBEYXRhVGFsZXMgaXMgbm90IHN1aXRhYmxlCgkgKgoJICogIEBleGFtcGxlCgkgKiAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKCSAqICAgICAgdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7CgkgKiAgICAgIGFsZXJ0KCBvVGFibGUuZm5WZXJzaW9uQ2hlY2soICcxLjkuMCcgKSApOwoJICogICAgfSApOwoJICovCgkiZm5WZXJzaW9uQ2hlY2siOiBEYXRhVGFibGUuZm5WZXJzaW9uQ2hlY2ssCgoKCS8qKgoJICogSW5kZXggZm9yIHdoYXQgJ3RoaXMnIGluZGV4IEFQSSBmdW5jdGlvbnMgc2hvdWxkIHVzZQoJICogIEB0eXBlIGludAoJICogIEBkZWZhdWx0IDAKCSAqLwoJImlBcGlJbmRleCI6IDAsCgoKCS8qKgoJICogUHJlLXByb2Nlc3Npbmcgb2YgZmlsdGVyaW5nIGRhdGEgcGx1Zy1pbnMgLSBXaGVuIHlvdSBhc3NpZ24gdGhlIHNUeXBlIGZvciBhIGNvbHVtbgoJICogKG9yIGhhdmUgaXQgYXV0b21hdGljYWxseSBkZXRlY3RlZCBmb3IgeW91IGJ5IERhdGFUYWJsZXMgb3IgYSB0eXBlIGRldGVjdGlvbiBwbHVnLWluKSwgCgkgKiB5b3Ugd2lsbCB0eXBpY2FsbHkgYmUgdXNpbmcgdGhpcyBmb3IgY3VzdG9tIHNvcnRpbmcsIGJ1dCBpdCBjYW4gYWxzbyBiZSB1c2VkIHRvIHByb3ZpZGUgCgkgKiBjdXN0b20gZmlsdGVyaW5nIGJ5IGFsbG93aW5nIHlvdSB0byBwcmUtcHJvY2Vzc2luZyB0aGUgZGF0YSBhbmQgcmV0dXJuaW5nIHRoZSBkYXRhIGluCgkgKiB0aGUgZm9ybWF0IHRoYXQgc2hvdWxkIGJlIGZpbHRlcmVkIHVwb24uIFRoaXMgaXMgZG9uZSBieSBhZGRpbmcgZnVuY3Rpb25zIHRoaXMgb2JqZWN0IAoJICogd2l0aCBhIHBhcmFtZXRlciBuYW1lIHdoaWNoIG1hdGNoZXMgdGhlIHNUeXBlIGZvciB0aGF0IHRhcmdldCBjb2x1bW4uIFRoaXMgaXMgdGhlCgkgKiBjb3JvbGxhcnkgb2YgPGk+YWZuU29ydERhdGE8L2k+IGZvciBmaWx0ZXJpbmcgZGF0YS4KCSAqICAgPHVsPgogICAgICogICAgIDxsaT4KICAgICAqICAgICAgIEZ1bmN0aW9uIGlucHV0IHBhcmFtZXRlcnM6CiAgICAgKiAgICAgICA8dWw+CgkgKiAgICAgICAgIDxsaT57Kn0gRGF0YSBmcm9tIHRoZSBjb2x1bW4gY2VsbCB0byBiZSBwcmVwYXJlZCBmb3IgZmlsdGVyaW5nPC9saT4KICAgICAqICAgICAgIDwvdWw+CiAgICAgKiAgICAgPC9saT4KCSAqICAgICA8bGk+CgkgKiAgICAgICBGdW5jdGlvbiByZXR1cm46CgkgKiAgICAgICA8dWw+CgkgKiAgICAgICAgIDxsaT57c3RyaW5nfG51bGx9IEZvcm1hdHRlZCBzdHJpbmcgdGhhdCB3aWxsIGJlIHVzZWQgZm9yIHRoZSBmaWx0ZXJpbmcuPC9saT4KCSAqICAgICAgIDwvdWw+CgkgKiAgICAgPC9pbD4KCSAqICAgPC91bD4KCSAqIAoJICogTm90ZSB0aGF0IGFzIG9mIHYxLjksIGl0IGlzIHR5cGljYWxseSBwcmVmZXJhYmxlIHRvIHVzZSA8aT5tRGF0YTwvaT4gdG8gcHJlcGFyZSBkYXRhIGZvcgoJICogdGhlIGRpZmZlcmVudCB1c2VzIHRoYXQgRGF0YVRhYmxlcyBjYW4gcHV0IHRoZSBkYXRhIHRvLiBTcGVjaWZpY2FsbHkgPGk+bURhdGE8L2k+IHdoZW4KCSAqIHVzZWQgYXMgYSBmdW5jdGlvbiB3aWxsIGdpdmUgeW91IGEgJ3R5cGUnIChzb3J0aW5nLCBmaWx0ZXJpbmcgZXRjKSB0aGF0IHlvdSBjYW4gdXNlIHRvIAoJICogcHJlcGFyZSB0aGUgZGF0YSBhcyByZXF1aXJlZCBmb3IgdGhlIGRpZmZlcmVudCB0eXBlcy4gQXMgc3VjaCwgdGhpcyBtZXRob2QgaXMgZGVwcmVjYXRlZC4KCSAqICBAdHlwZSBvYmplY3QKCSAqICBAZGVmYXVsdCB7fQoJICogIEBkZXByZWNhdGVkCgkgKgoJICogIEBleGFtcGxlCgkgKiAgICAkLmZuLmRhdGFUYWJsZUV4dC5vZm5TZWFyY2hbJ3RpdGxlLW51bWVyaWMnXSA9IGZ1bmN0aW9uICggc0RhdGEgKSB7CgkgKiAgICAgIHJldHVybiBzRGF0YS5yZXBsYWNlKC9cbi9nLCIgIikucmVwbGFjZSggLzwuKj8+L2csICIiICk7CgkgKiAgICB9CgkgKi8KCSJvZm5TZWFyY2giOiB7fSwKCgoJLyoqCgkgKiBDb250YWluZXIgZm9yIGFsbCBwcml2YXRlIGZ1bmN0aW9ucyBpbiBEYXRhVGFibGVzIHNvIHRoZXkgY2FuIGJlIGV4cG9zZWQgZXh0ZXJuYWxseQoJICogIEB0eXBlIG9iamVjdAoJICogIEBkZWZhdWx0IHt9CgkgKi8KCSJvQXBpIjoge30sCgoKCS8qKgoJICogU3RvcmFnZSBmb3IgdGhlIHZhcmlvdXMgY2xhc3NlcyB0aGF0IERhdGFUYWJsZXMgdXNlcwoJICogIEB0eXBlIG9iamVjdAoJICogIEBkZWZhdWx0IHt9CgkgKi8KCSJvU3RkQ2xhc3NlcyI6IHt9LAoJCgoJLyoqCgkgKiBTdG9yYWdlIGZvciB0aGUgdmFyaW91cyBjbGFzc2VzIHRoYXQgRGF0YVRhYmxlcyB1c2VzIC0galF1ZXJ5IFVJIHN1aXRhYmxlCgkgKiAgQHR5cGUgb2JqZWN0CgkgKiAgQGRlZmF1bHQge30KCSAqLwoJIm9KVUlDbGFzc2VzIjoge30sCgoKCS8qKgoJICogUGFnaW5hdGlvbiBwbHVnLWluIG1ldGhvZHMgLSBUaGUgc3R5bGUgYW5kIGNvbnRyb2xzIG9mIHRoZSBwYWdpbmF0aW9uIGNhbiBzaWduaWZpY2FudGx5IAoJICogaW1wYWN0IG9uIGhvdyB0aGUgZW5kIHVzZXIgaW50ZXJhY3RzIHdpdGggdGhlIGRhdGEgaW4geW91ciB0YWJsZSwgYW5kIERhdGFUYWJsZXMgYWxsb3dzIAoJICogdGhlIGFkZGl0aW9uIG9mIHBhZ2luYXRpb24gY29udHJvbHMgYnkgZXh0ZW5kaW5nIHRoaXMgb2JqZWN0LCB3aGljaCBjYW4gdGhlbiBiZSBlbmFibGVkCgkgKiB0aHJvdWdoIHRoZSA8aT5zUGFnaW5hdGlvblR5cGU8L2k+IGluaXRpYWxpc2F0aW9uIHBhcmFtZXRlci4gRWFjaCBwYWdpbmF0aW9uIHR5cGUgdGhhdAoJICogaXMgYWRkZWQgaXMgYW4gb2JqZWN0ICh0aGUgcHJvcGVydHkgbmFtZSBvZiB3aGljaCBpcyB3aGF0IDxpPnNQYWdpbmF0aW9uVHlwZTwvaT4gcmVmZXJzCgkgKiB0bykgdGhhdCBoYXMgdHdvIHByb3BlcnRpZXMsIGJvdGggbWV0aG9kcyB0aGF0IGFyZSB1c2VkIGJ5IERhdGFUYWJsZXMgdG8gdXBkYXRlIHRoZQoJICogY29udHJvbCdzIHN0YXRlLgoJICogICA8dWw+CgkgKiAgICAgPGxpPgoJICogICAgICAgZm5Jbml0IC0gIEluaXRpYWxpc2F0aW9uIG9mIHRoZSBwYWdpbmcgY29udHJvbHMuIENhbGxlZCBvbmx5IGR1cmluZyBpbml0aWFsaXNhdGlvbiAKCSAqICAgICAgICAgb2YgdGhlIHRhYmxlLiBJdCBpcyBleHBlY3RlZCB0aGF0IHRoaXMgZnVuY3Rpb24gd2lsbCBhZGQgdGhlIHJlcXVpcmVkIERPTSBlbGVtZW50cyAKCSAqICAgICAgICAgdG8gdGhlIHBhZ2UgZm9yIHRoZSBwYWdpbmcgY29udHJvbHMgdG8gd29yay4gVGhlIGVsZW1lbnQgcG9pbnRlciAKCSAqICAgICAgICAgJ29TZXR0aW5ncy5hYW5GZWF0dXJlcy5wJyBhcnJheSBpcyBwcm92aWRlZCBieSBEYXRhVGFibGVzIHRvIGNvbnRhaW4gdGhlIHBhZ2luZyAKCSAqICAgICAgICAgY29udHJvbHMgKG5vdGUgdGhhdCB0aGlzIGlzIGEgMkQgYXJyYXkgdG8gYWxsb3cgZm9yIG11bHRpcGxlIGluc3RhbmNlcyBvZiBlYWNoIAoJICogICAgICAgICBEYXRhVGFibGVzIERPTSBlbGVtZW50KS4gSXQgaXMgc3VnZ2VzdGVkIHRoYXQgeW91IGFkZCB0aGUgY29udHJvbHMgdG8gdGhpcyBlbGVtZW50IAoJICogICAgICAgICBhcyBjaGlsZHJlbgoJICogICAgICAgPHVsPgogICAgICogICAgICAgICA8bGk+CiAgICAgKiAgICAgICAgICAgRnVuY3Rpb24gaW5wdXQgcGFyYW1ldGVyczoKICAgICAqICAgICAgICAgICA8dWw+CgkgKiAgICAgICAgICAgICA8bGk+e29iamVjdH0gRGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3Q6IHNlZSB7QGxpbmsgRGF0YVRhYmxlLm1vZGVscy5vU2V0dGluZ3N9LjwvbGk+CgkgKiAgICAgICAgICAgICA8bGk+e25vZGV9IENvbnRhaW5lciBpbnRvIHdoaWNoIHRoZSBwYWdpbmF0aW9uIGNvbnRyb2xzIG11c3QgYmUgaW5zZXJ0ZWQ8L2xpPgoJICogICAgICAgICAgICAgPGxpPntmdW5jdGlvbn0gRHJhdyBjYWxsYmFjayBmdW5jdGlvbiAtIHdoZW5ldmVyIHRoZSBjb250cm9scyBjYXVzZSBhIHBhZ2UKCSAqICAgICAgICAgICAgICAgY2hhbmdlLCB0aGlzIG1ldGhvZCBtdXN0IGJlIGNhbGxlZCB0byByZWRyYXcgdGhlIHRhYmxlLjwvbGk+CiAgICAgKiAgICAgICAgICAgPC91bD4KICAgICAqICAgICAgICAgPC9saT4KCSAqICAgICAgICAgPGxpPgoJICogICAgICAgICAgIEZ1bmN0aW9uIHJldHVybjoKCSAqICAgICAgICAgICA8dWw+CgkgKiAgICAgICAgICAgICA8bGk+Tm8gcmV0dXJuIHJlcXVpcmVkPC9saT4KCSAqICAgICAgICAgICA8L3VsPgoJICogICAgICAgICA8L2lsPgoJICogICAgICAgPC91bD4KCSAqICAgICA8L2lsPgoJICogICAgIDxsaT4KCSAqICAgICAgIGZuSW5pdCAtICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuZXZlciB0aGUgcGFnaW5nIHN0YXR1cyBvZiB0aGUgdGFibGUgY2hhbmdlcyBhbmQgaXMKCSAqICAgICAgICAgdHlwaWNhbGx5IHVzZWQgdG8gdXBkYXRlIGNsYXNzZXMgYW5kL29yIHRleHQgb2YgdGhlIHBhZ2luZyBjb250cm9scyB0byByZWZsZXggdGhlIG5ldyAKCSAqICAgICAgICAgc3RhdHVzLgoJICogICAgICAgPHVsPgogICAgICogICAgICAgICA8bGk+CiAgICAgKiAgICAgICAgICAgRnVuY3Rpb24gaW5wdXQgcGFyYW1ldGVyczoKICAgICAqICAgICAgICAgICA8dWw+CgkgKiAgICAgICAgICAgICA8bGk+e29iamVjdH0gRGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3Q6IHNlZSB7QGxpbmsgRGF0YVRhYmxlLm1vZGVscy5vU2V0dGluZ3N9LjwvbGk+CgkgKiAgICAgICAgICAgICA8bGk+e2Z1bmN0aW9ufSBEcmF3IGNhbGxiYWNrIGZ1bmN0aW9uIC0gaW4gY2FzZSB5b3UgbmVlZCB0byByZWRyYXcgdGhlIHRhYmxlIGFnYWluCgkgKiAgICAgICAgICAgICAgIG9yIGF0dGFjaCBuZXcgZXZlbnQgbGlzdGVuZXJzPC9saT4KICAgICAqICAgICAgICAgICA8L3VsPgogICAgICogICAgICAgICA8L2xpPgoJICogICAgICAgICA8bGk+CgkgKiAgICAgICAgICAgRnVuY3Rpb24gcmV0dXJuOgoJICogICAgICAgICAgIDx1bD4KCSAqICAgICAgICAgICAgIDxsaT5ObyByZXR1cm4gcmVxdWlyZWQ8L2xpPgoJICogICAgICAgICAgIDwvdWw+CgkgKiAgICAgICAgIDwvaWw+CgkgKiAgICAgICA8L3VsPgoJICogICAgIDwvaWw+CgkgKiAgIDwvdWw+CgkgKiAgQHR5cGUgb2JqZWN0CgkgKiAgQGRlZmF1bHQge30KCSAqCgkgKiAgQGV4YW1wbGUKCSAqICAgICQuZm4uZGF0YVRhYmxlRXh0Lm9QYWdpbmF0aW9uLmZvdXJfYnV0dG9uID0gewoJICogICAgICAiZm5Jbml0IjogZnVuY3Rpb24gKCBvU2V0dGluZ3MsIG5QYWdpbmcsIGZuQ2FsbGJhY2tEcmF3ICkgewoJICogICAgICAgIG5GaXJzdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICdzcGFuJyApOwoJICogICAgICAgIG5QcmV2aW91cyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICdzcGFuJyApOwoJICogICAgICAgIG5OZXh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggJ3NwYW4nICk7CgkgKiAgICAgICAgbkxhc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCAnc3BhbicgKTsKCSAqICAgICAgICAKCSAqICAgICAgICBuRmlyc3QuYXBwZW5kQ2hpbGQoIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCBvU2V0dGluZ3Mub0xhbmd1YWdlLm9QYWdpbmF0ZS5zRmlyc3QgKSApOwoJICogICAgICAgIG5QcmV2aW91cy5hcHBlbmRDaGlsZCggZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIG9TZXR0aW5ncy5vTGFuZ3VhZ2Uub1BhZ2luYXRlLnNQcmV2aW91cyApICk7CgkgKiAgICAgICAgbk5leHQuYXBwZW5kQ2hpbGQoIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCBvU2V0dGluZ3Mub0xhbmd1YWdlLm9QYWdpbmF0ZS5zTmV4dCApICk7CgkgKiAgICAgICAgbkxhc3QuYXBwZW5kQ2hpbGQoIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCBvU2V0dGluZ3Mub0xhbmd1YWdlLm9QYWdpbmF0ZS5zTGFzdCApICk7CgkgKiAgICAgICAgCgkgKiAgICAgICAgbkZpcnN0LmNsYXNzTmFtZSA9ICJwYWdpbmF0ZV9idXR0b24gZmlyc3QiOwoJICogICAgICAgIG5QcmV2aW91cy5jbGFzc05hbWUgPSAicGFnaW5hdGVfYnV0dG9uIHByZXZpb3VzIjsKCSAqICAgICAgICBuTmV4dC5jbGFzc05hbWU9InBhZ2luYXRlX2J1dHRvbiBuZXh0IjsKCSAqICAgICAgICBuTGFzdC5jbGFzc05hbWUgPSAicGFnaW5hdGVfYnV0dG9uIGxhc3QiOwoJICogICAgICAgIAoJICogICAgICAgIG5QYWdpbmcuYXBwZW5kQ2hpbGQoIG5GaXJzdCApOwoJICogICAgICAgIG5QYWdpbmcuYXBwZW5kQ2hpbGQoIG5QcmV2aW91cyApOwoJICogICAgICAgIG5QYWdpbmcuYXBwZW5kQ2hpbGQoIG5OZXh0ICk7CgkgKiAgICAgICAgblBhZ2luZy5hcHBlbmRDaGlsZCggbkxhc3QgKTsKCSAqICAgICAgICAKCSAqICAgICAgICAkKG5GaXJzdCkuY2xpY2soIGZ1bmN0aW9uICgpIHsKCSAqICAgICAgICAgIG9TZXR0aW5ncy5vQXBpLl9mblBhZ2VDaGFuZ2UoIG9TZXR0aW5ncywgImZpcnN0IiApOwoJICogICAgICAgICAgZm5DYWxsYmFja0RyYXcoIG9TZXR0aW5ncyApOwoJICogICAgICAgIH0gKTsKCSAqICAgICAgICAKCSAqICAgICAgICAkKG5QcmV2aW91cykuY2xpY2soIGZ1bmN0aW9uKCkgewoJICogICAgICAgICAgb1NldHRpbmdzLm9BcGkuX2ZuUGFnZUNoYW5nZSggb1NldHRpbmdzLCAicHJldmlvdXMiICk7CgkgKiAgICAgICAgICBmbkNhbGxiYWNrRHJhdyggb1NldHRpbmdzICk7CgkgKiAgICAgICAgfSApOwoJICogICAgICAgIAoJICogICAgICAgICQobk5leHQpLmNsaWNrKCBmdW5jdGlvbigpIHsKCSAqICAgICAgICAgIG9TZXR0aW5ncy5vQXBpLl9mblBhZ2VDaGFuZ2UoIG9TZXR0aW5ncywgIm5leHQiICk7CgkgKiAgICAgICAgICBmbkNhbGxiYWNrRHJhdyggb1NldHRpbmdzICk7CgkgKiAgICAgICAgfSApOwoJICogICAgICAgIAoJICogICAgICAgICQobkxhc3QpLmNsaWNrKCBmdW5jdGlvbigpIHsKCSAqICAgICAgICAgIG9TZXR0aW5ncy5vQXBpLl9mblBhZ2VDaGFuZ2UoIG9TZXR0aW5ncywgImxhc3QiICk7CgkgKiAgICAgICAgICBmbkNhbGxiYWNrRHJhdyggb1NldHRpbmdzICk7CgkgKiAgICAgICAgfSApOwoJICogICAgICAgIAoJICogICAgICAgICQobkZpcnN0KS5iaW5kKCAnc2VsZWN0c3RhcnQnLCBmdW5jdGlvbiAoKSB7IHJldHVybiBmYWxzZTsgfSApOwoJICogICAgICAgICQoblByZXZpb3VzKS5iaW5kKCAnc2VsZWN0c3RhcnQnLCBmdW5jdGlvbiAoKSB7IHJldHVybiBmYWxzZTsgfSApOwoJICogICAgICAgICQobk5leHQpLmJpbmQoICdzZWxlY3RzdGFydCcsIGZ1bmN0aW9uICgpIHsgcmV0dXJuIGZhbHNlOyB9ICk7CgkgKiAgICAgICAgJChuTGFzdCkuYmluZCggJ3NlbGVjdHN0YXJ0JywgZnVuY3Rpb24gKCkgeyByZXR1cm4gZmFsc2U7IH0gKTsKCSAqICAgICAgfSwKCSAqICAgICAgCgkgKiAgICAgICJmblVwZGF0ZSI6IGZ1bmN0aW9uICggb1NldHRpbmdzLCBmbkNhbGxiYWNrRHJhdyApIHsKCSAqICAgICAgICBpZiAoICFvU2V0dGluZ3MuYWFuRmVhdHVyZXMucCApIHsKCSAqICAgICAgICAgIHJldHVybjsKCSAqICAgICAgICB9CgkgKiAgICAgICAgCgkgKiAgICAgICAgLy8gTG9vcCBvdmVyIGVhY2ggaW5zdGFuY2Ugb2YgdGhlIHBhZ2VyCgkgKiAgICAgICAgdmFyIGFuID0gb1NldHRpbmdzLmFhbkZlYXR1cmVzLnA7CgkgKiAgICAgICAgZm9yICggdmFyIGk9MCwgaUxlbj1hbi5sZW5ndGggOyBpPGlMZW4gOyBpKysgKSB7CgkgKiAgICAgICAgICB2YXIgYnV0dG9ucyA9IGFuW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzcGFuJyk7CgkgKiAgICAgICAgICBpZiAoIG9TZXR0aW5ncy5faURpc3BsYXlTdGFydCA9PT0gMCApIHsKCSAqICAgICAgICAgICAgYnV0dG9uc1swXS5jbGFzc05hbWUgPSAicGFnaW5hdGVfZGlzYWJsZWRfcHJldmlvdXMiOwoJICogICAgICAgICAgICBidXR0b25zWzFdLmNsYXNzTmFtZSA9ICJwYWdpbmF0ZV9kaXNhYmxlZF9wcmV2aW91cyI7CgkgKiAgICAgICAgICB9CgkgKiAgICAgICAgICBlbHNlIHsKCSAqICAgICAgICAgICAgYnV0dG9uc1swXS5jbGFzc05hbWUgPSAicGFnaW5hdGVfZW5hYmxlZF9wcmV2aW91cyI7CgkgKiAgICAgICAgICAgIGJ1dHRvbnNbMV0uY2xhc3NOYW1lID0gInBhZ2luYXRlX2VuYWJsZWRfcHJldmlvdXMiOwoJICogICAgICAgICAgfQoJICogICAgICAgICAgCgkgKiAgICAgICAgICBpZiAoIG9TZXR0aW5ncy5mbkRpc3BsYXlFbmQoKSA9PSBvU2V0dGluZ3MuZm5SZWNvcmRzRGlzcGxheSgpICkgewoJICogICAgICAgICAgICBidXR0b25zWzJdLmNsYXNzTmFtZSA9ICJwYWdpbmF0ZV9kaXNhYmxlZF9uZXh0IjsKCSAqICAgICAgICAgICAgYnV0dG9uc1szXS5jbGFzc05hbWUgPSAicGFnaW5hdGVfZGlzYWJsZWRfbmV4dCI7CgkgKiAgICAgICAgICB9CgkgKiAgICAgICAgICBlbHNlIHsKCSAqICAgICAgICAgICAgYnV0dG9uc1syXS5jbGFzc05hbWUgPSAicGFnaW5hdGVfZW5hYmxlZF9uZXh0IjsKCSAqICAgICAgICAgICAgYnV0dG9uc1szXS5jbGFzc05hbWUgPSAicGFnaW5hdGVfZW5hYmxlZF9uZXh0IjsKCSAqICAgICAgICAgIH0KCSAqICAgICAgICB9CgkgKiAgICAgIH0KCSAqICAgIH07CgkgKi8KCSJvUGFnaW5hdGlvbiI6IHt9LAoKCgkvKioKCSAqIFNvcnRpbmcgcGx1Zy1pbiBtZXRob2RzIC0gU29ydGluZyBpbiBEYXRhVGFibGVzIGlzIGJhc2VkIG9uIHRoZSBkZXRlY3RlZCB0eXBlIG9mIHRoZQoJICogZGF0YSBjb2x1bW4gKHlvdSBjYW4gYWRkIHlvdXIgb3duIHR5cGUgZGV0ZWN0aW9uIGZ1bmN0aW9ucywgb3Igb3ZlcnJpZGUgYXV0b21hdGljIAoJICogZGV0ZWN0aW9uIHVzaW5nIHNUeXBlKS4gV2l0aCB0aGlzIHNwZWNpZmljIHR5cGUgZ2l2ZW4gdG8gdGhlIGNvbHVtbiwgRGF0YVRhYmxlcyB3aWxsIAoJICogYXBwbHkgdGhlIHJlcXVpcmVkIHNvcnQgZnJvbSB0aGUgZnVuY3Rpb25zIGluIHRoZSBvYmplY3QuIEVhY2ggc29ydCB0eXBlIG11c3QgcHJvdmlkZQoJICogdHdvIG1hbmRhdG9yeSBtZXRob2RzLCBvbmUgZWFjaCBmb3IgYXNjZW5kaW5nIGFuZCBkZXNjZW5kaW5nIHNvcnRpbmcsIGFuZCBjYW4gb3B0aW9uYWxseQoJICogcHJvdmlkZSBhIHByZS1mb3JtYXR0aW5nIG1ldGhvZCB0aGF0IHdpbGwgaGVscCBzcGVlZCB1cCBzb3J0aW5nIGJ5IGFsbG93aW5nIERhdGFUYWJsZXMKCSAqIHRvIHByZS1mb3JtYXQgdGhlIHNvcnQgZGF0YSBvbmx5IG9uY2UgKHJhdGhlciB0aGFuIGV2ZXJ5IHRpbWUgdGhlIGFjdHVhbCBzb3J0IGZ1bmN0aW9ucwoJICogYXJlIHJ1bikuIFRoZSB0d28gc29ydGluZyBmdW5jdGlvbnMgYXJlIHR5cGljYWwgSmF2YXNjcmlwdCBzb3J0IG1ldGhvZHM6CgkgKiAgIDx1bD4KICAgICAqICAgICA8bGk+CiAgICAgKiAgICAgICBGdW5jdGlvbiBpbnB1dCBwYXJhbWV0ZXJzOgogICAgICogICAgICAgPHVsPgoJICogICAgICAgICA8bGk+eyp9IERhdGEgdG8gY29tcGFyZSB0byB0aGUgc2Vjb25kIHBhcmFtZXRlcjwvbGk+CgkgKiAgICAgICAgIDxsaT57Kn0gRGF0YSB0byBjb21wYXJlIHRvIHRoZSBmaXJzdCBwYXJhbWV0ZXI8L2xpPgogICAgICogICAgICAgPC91bD4KICAgICAqICAgICA8L2xpPgoJICogICAgIDxsaT4KCSAqICAgICAgIEZ1bmN0aW9uIHJldHVybjoKCSAqICAgICAgIDx1bD4KCSAqICAgICAgICAgPGxpPntpbnR9IFNvcnRpbmcgbWF0Y2g6IDwwIGlmIGZpcnN0IHBhcmFtZXRlciBzaG91bGQgYmUgc29ydGVkIGxvd2VyIHRoYW4KCSAqICAgICAgICAgICB0aGUgc2Vjb25kIHBhcmFtZXRlciwgPT09MCBpZiB0aGUgdHdvIHBhcmFtZXRlcnMgYXJlIGVxdWFsIGFuZCA+MCBpZgoJICogICAgICAgICAgIHRoZSBmaXJzdCBwYXJhbWV0ZXIgc2hvdWxkIGJlIHNvcnRlZCBoZWlnaHQgdGhhbiB0aGUgc2Vjb25kIHBhcmFtZXRlci48L2xpPgoJICogICAgICAgPC91bD4KCSAqICAgICA8L2lsPgoJICogICA8L3VsPgoJICogIEB0eXBlIG9iamVjdAoJICogIEBkZWZhdWx0IHt9CgkgKgoJICogIEBleGFtcGxlCgkgKiAgICAvLyBDYXNlLXNlbnNpdGl2ZSBzdHJpbmcgc29ydGluZywgd2l0aCBubyBwcmUtZm9ybWF0dGluZyBtZXRob2QKCSAqICAgICQuZXh0ZW5kKCAkLmZuLmRhdGFUYWJsZUV4dC5vU29ydCwgewoJICogICAgICAic3RyaW5nLWNhc2UtYXNjIjogZnVuY3Rpb24oeCx5KSB7CgkgKiAgICAgICAgcmV0dXJuICgoeCA8IHkpID8gLTEgOiAoKHggPiB5KSA/IDEgOiAwKSk7CgkgKiAgICAgIH0sCgkgKiAgICAgICJzdHJpbmctY2FzZS1kZXNjIjogZnVuY3Rpb24oeCx5KSB7CgkgKiAgICAgICAgcmV0dXJuICgoeCA8IHkpID8gMSA6ICgoeCA+IHkpID8gLTEgOiAwKSk7CgkgKiAgICAgIH0KCSAqICAgIH0gKTsKCSAqCgkgKiAgQGV4YW1wbGUKCSAqICAgIC8vIENhc2UtaW5zZW5zaXRpdmUgc3RyaW5nIHNvcnRpbmcsIHdpdGggcHJlLWZvcm1hdHRpbmcKCSAqICAgICQuZXh0ZW5kKCAkLmZuLmRhdGFUYWJsZUV4dC5vU29ydCwgewoJICogICAgICAic3RyaW5nLXByZSI6IGZ1bmN0aW9uKHgpIHsKCSAqICAgICAgICByZXR1cm4geC50b0xvd2VyQ2FzZSgpOwoJICogICAgICB9LAoJICogICAgICAic3RyaW5nLWFzYyI6IGZ1bmN0aW9uKHgseSkgewoJICogICAgICAgIHJldHVybiAoKHggPCB5KSA/IC0xIDogKCh4ID4geSkgPyAxIDogMCkpOwoJICogICAgICB9LAoJICogICAgICAic3RyaW5nLWRlc2MiOiBmdW5jdGlvbih4LHkpIHsKCSAqICAgICAgICByZXR1cm4gKCh4IDwgeSkgPyAxIDogKCh4ID4geSkgPyAtMSA6IDApKTsKCSAqICAgICAgfQoJICogICAgfSApOwoJICovCgkib1NvcnQiOiB7fSwKCgoJLyoqCgkgKiBWZXJzaW9uIHN0cmluZyBmb3IgcGx1Zy1pbnMgdG8gY2hlY2sgY29tcGF0aWJpbGl0eS4gQWxsb3dlZCBmb3JtYXQgaXMKCSAqIGEuYi5jLmQuZSB3aGVyZTogYTppbnQsIGI6aW50LCBjOmludCwgZDpzdHJpbmcoZGV2fGJldGEpLCBlOmludC4gZCBhbmQKCSAqIGUgYXJlIG9wdGlvbmFsCgkgKiAgQHR5cGUgc3RyaW5nCgkgKiAgQGRlZmF1bHQgVmVyc2lvbiBudW1iZXIKCSAqLwoJInNWZXJzaW9uIjogRGF0YVRhYmxlLnZlcnNpb24sCgoKCS8qKgoJICogSG93IHNob3VsZCBEYXRhVGFibGVzIHJlcG9ydCBhbiBlcnJvci4gQ2FuIHRha2UgdGhlIHZhbHVlICdhbGVydCcgb3IgJ3Rocm93JwoJICogIEB0eXBlIHN0cmluZwoJICogIEBkZWZhdWx0IGFsZXJ0CgkgKi8KCSJzRXJyTW9kZSI6ICJhbGVydCIsCgoKCS8qKgoJICogU3RvcmUgaW5mb3JtYXRpb24gZm9yIERhdGFUYWJsZXMgdG8gYWNjZXNzIGdsb2JhbGx5IGFib3V0IG90aGVyIGluc3RhbmNlcwoJICogIEBuYW1lc3BhY2UKCSAqICBAcHJpdmF0ZQoJICovCgkiX29FeHRlcm5Db25maWciOiB7CgkJLyogaW50OmlOZXh0VW5pcXVlIC0gbmV4dCB1bmlxdWUgbnVtYmVyIGZvciBhbiBpbnN0YW5jZSAqLwoJCSJpTmV4dFVuaXF1ZSI6IDAKCX0KfTsKCg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/model/model.row.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CgoKLyoqCiAqIFRlbXBsYXRlIG9iamVjdCBmb3IgdGhlIHdheSBpbiB3aGljaCBEYXRhVGFibGVzIGhvbGRzIGluZm9ybWF0aW9uIGFib3V0CiAqIGVhY2ggaW5kaXZpZHVhbCByb3cuIFRoaXMgaXMgdGhlIG9iamVjdCBmb3JtYXQgdXNlZCBmb3IgdGhlIHNldHRpbmdzIAogKiBhb0RhdGEgYXJyYXkuCiAqICBAbmFtZXNwYWNlCiAqLwpEYXRhVGFibGUubW9kZWxzLm9Sb3cgPSB7CgkvKioKCSAqIFRSIGVsZW1lbnQgZm9yIHRoZSByb3cKCSAqICBAdHlwZSBub2RlCgkgKiAgQGRlZmF1bHQgbnVsbAoJICovCgkiblRyIjogbnVsbCwKCgkvKioKCSAqIERhdGEgb2JqZWN0IGZyb20gdGhlIG9yaWdpbmFsIGRhdGEgc291cmNlIGZvciB0aGUgcm93LiBUaGlzIGlzIGVpdGhlcgoJICogYW4gYXJyYXkgaWYgdXNpbmcgdGhlIHRyYWRpdGlvbmFsIGZvcm0gb2YgRGF0YVRhYmxlcywgb3IgYW4gb2JqZWN0IGlmCgkgKiB1c2luZyBtRGF0YSBvcHRpb25zLiBUaGUgZXhhY3QgdHlwZSB3aWxsIGRlcGVuZCBvbiB0aGUgcGFzc2VkIGluCgkgKiBkYXRhIGZyb20gdGhlIGRhdGEgc291cmNlLCBvciB3aWxsIGJlIGFuIGFycmF5IGlmIHVzaW5nIERPTSBhIGRhdGEgCgkgKiBzb3VyY2UuCgkgKiAgQHR5cGUgYXJyYXl8b2JqZWN0CgkgKiAgQGRlZmF1bHQgW10KCSAqLwoJIl9hRGF0YSI6IFtdLAoKCS8qKgoJICogU29ydGluZyBkYXRhIGNhY2hlIC0gdGhpcyBhcnJheSBpcyBvc3RlbnNpYmx5IHRoZSBzYW1lIGxlbmd0aCBhcyB0aGUKCSAqIG51bWJlciBvZiBjb2x1bW5zIChhbHRob3VnaCBlYWNoIGluZGV4IGlzIGdlbmVyYXRlZCBvbmx5IGFzIGl0IGlzIAoJICogbmVlZGVkKSwgYW5kIGhvbGRzIHRoZSBkYXRhIHRoYXQgaXMgdXNlZCBmb3Igc29ydGluZyBlYWNoIGNvbHVtbiBpbiB0aGUKCSAqIHJvdy4gV2UgZG8gdGhpcyBjYWNoZSBnZW5lcmF0aW9uIGF0IHRoZSBzdGFydCBvZiB0aGUgc29ydCBpbiBvcmRlciB0aGF0CgkgKiB0aGUgZm9ybWF0dGluZyBvZiB0aGUgc29ydCBkYXRhIG5lZWQgYmUgZG9uZSBvbmx5IG9uY2UgZm9yIGVhY2ggY2VsbAoJICogcGVyIHNvcnQuIFRoaXMgYXJyYXkgc2hvdWxkIG5vdCBiZSByZWFkIGZyb20gb3Igd3JpdHRlbiB0byBieSBhbnl0aGluZwoJICogb3RoZXIgdGhhbiB0aGUgbWFzdGVyIHNvcnRpbmcgbWV0aG9kcy4KCSAqICBAdHlwZSBhcnJheQoJICogIEBkZWZhdWx0IFtdCgkgKiAgQHByaXZhdGUKCSAqLwoJIl9hU29ydERhdGEiOiBbXSwKCgkvKioKCSAqIEFycmF5IG9mIFREIGVsZW1lbnRzIHRoYXQgYXJlIGNhY2hlZCBmb3IgaGlkZGVuIHJvd3MsIHNvIHRoZXkgY2FuIGJlCgkgKiByZWluc2VydGVkIGludG8gdGhlIHRhYmxlIGlmIGEgY29sdW1uIGlzIG1hZGUgdmlzaWJsZSBhZ2FpbiAob3IgdG8gYWN0CgkgKiBhcyBhIHN0b3JlIGlmIGEgY29sdW1uIGlzIG1hZGUgaGlkZGVuKS4gT25seSBoaWRkZW4gY29sdW1ucyBoYXZlIGEgCgkgKiByZWZlcmVuY2UgaW4gdGhlIGFycmF5LiBGb3Igbm9uLWhpZGRlbiBjb2x1bW5zIHRoZSB2YWx1ZSBpcyBlaXRoZXIKCSAqIHVuZGVmaW5lZCBvciBudWxsLgoJICogIEB0eXBlIGFycmF5IG5vZGVzCgkgKiAgQGRlZmF1bHQgW10KCSAqICBAcHJpdmF0ZQoJICovCgkiX2FuSGlkZGVuIjogW10sCgoJLyoqCgkgKiBDYWNoZSBvZiB0aGUgY2xhc3MgbmFtZSB0aGF0IERhdGFUYWJsZXMgaGFzIGFwcGxpZWQgdG8gdGhlIHJvdywgc28gd2UKCSAqIGNhbiBxdWlja2x5IGxvb2sgYXQgdGhpcyB2YXJpYWJsZSByYXRoZXIgdGhhbiBuZWVkaW5nIHRvIGRvIGEgRE9NIGNoZWNrCgkgKiBvbiBjbGFzc05hbWUgZm9yIHRoZSBuVHIgcHJvcGVydHkuCgkgKiAgQHR5cGUgc3RyaW5nCgkgKiAgQGRlZmF1bHQgPGk+RW1wdHkgc3RyaW5nPC9pPgoJICogIEBwcml2YXRlCgkgKi8KCSJfc1Jvd1N0cmlwZSI6ICIiCn07Cg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/model/model.search.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CgoKLyoqCiAqIFRlbXBsYXRlIG9iamVjdCBmb3IgdGhlIHdheSBpbiB3aGljaCBEYXRhVGFibGVzIGhvbGRzIGluZm9ybWF0aW9uIGFib3V0CiAqIHNlYXJjaCBpbmZvcm1hdGlvbiBmb3IgdGhlIGdsb2JhbCBmaWx0ZXIgYW5kIGluZGl2aWR1YWwgY29sdW1uIGZpbHRlcnMuCiAqICBAbmFtZXNwYWNlCiAqLwpEYXRhVGFibGUubW9kZWxzLm9TZWFyY2ggPSB7CgkvKioKCSAqIEZsYWcgdG8gaW5kaWNhdGUgaWYgdGhlIGZpbHRlcmluZyBzaG91bGQgYmUgY2FzZSBpbnNlbnNpdGl2ZSBvciBub3QKCSAqICBAdHlwZSBib29sZWFuCgkgKiAgQGRlZmF1bHQgdHJ1ZQoJICovCgkiYkNhc2VJbnNlbnNpdGl2ZSI6IHRydWUsCgoJLyoqCgkgKiBBcHBsaWVkIHNlYXJjaCB0ZXJtCgkgKiAgQHR5cGUgc3RyaW5nCgkgKiAgQGRlZmF1bHQgPGk+RW1wdHkgc3RyaW5nPC9pPgoJICovCgkic1NlYXJjaCI6ICIiLAoKCS8qKgoJICogRmxhZyB0byBpbmRpY2F0ZSBpZiB0aGUgc2VhcmNoIHRlcm0gc2hvdWxkIGJlIGludGVycHJldGVkIGFzIGEKCSAqIHJlZ3VsYXIgZXhwcmVzc2lvbiAodHJ1ZSkgb3Igbm90IChmYWxzZSkgYW5kIHRoZXJlZm9yZSBhbmQgc3BlY2lhbAoJICogcmVnZXggY2hhcmFjdGVycyBlc2NhcGVkLgoJICogIEB0eXBlIGJvb2xlYW4KCSAqICBAZGVmYXVsdCBmYWxzZQoJICovCgkiYlJlZ2V4IjogZmFsc2UsCgoJLyoqCgkgKiBGbGFnIHRvIGluZGljYXRlIGlmIERhdGFUYWJsZXMgaXMgdG8gdXNlIGl0cyBzbWFydCBmaWx0ZXJpbmcgb3Igbm90LgoJICogIEB0eXBlIGJvb2xlYW4KCSAqICBAZGVmYXVsdCB0cnVlCgkgKi8KCSJiU21hcnQiOiB0cnVlCn07Cgo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/src/model/model.settings.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CgovKioKICogRGF0YVRhYmxlcyBzZXR0aW5ncyBvYmplY3QgLSB0aGlzIGhvbGRzIGFsbCB0aGUgaW5mb3JtYXRpb24gbmVlZGVkIGZvciBhCiAqIGdpdmVuIHRhYmxlLCBpbmNsdWRpbmcgY29uZmlndXJhdGlvbiwgZGF0YSBhbmQgY3VycmVudCBhcHBsaWNhdGlvbiBvZiB0aGUKICogdGFibGUgb3B0aW9ucy4gRGF0YVRhYmxlcyBkb2VzIG5vdCBoYXZlIGEgc2luZ2xlIGluc3RhbmNlIGZvciBlYWNoIERhdGFUYWJsZQogKiB3aXRoIHRoZSBzZXR0aW5ncyBhdHRhY2hlZCB0byB0aGF0IGluc3RhbmNlLCBidXQgcmF0aGVyIGluc3RhbmNlcyBvZiB0aGUKICogRGF0YVRhYmxlICJjbGFzcyIgYXJlIGNyZWF0ZWQgb24tdGhlLWZseSBhcyBuZWVkZWQgKHR5cGljYWxseSBieSBhIAogKiAkKCkuZGF0YVRhYmxlKCkgY2FsbCkgYW5kIHRoZSBzZXR0aW5ncyBvYmplY3QgaXMgdGhlbiBhcHBsaWVkIHRvIHRoYXQKICogaW5zdGFuY2UuCiAqIAogKiBOb3RlIHRoYXQgdGhpcyBvYmplY3QgaXMgcmVsYXRlZCB0byB7QGxpbmsgRGF0YVRhYmxlLmRlZmF1bHRzfSBidXQgdGhpcyAKICogb25lIGlzIHRoZSBpbnRlcm5hbCBkYXRhIHN0b3JlIGZvciBEYXRhVGFibGVzJ3MgY2FjaGUgb2YgY29sdW1ucy4gSXQgc2hvdWxkCiAqIE5PVCBiZSBtYW5pcHVsYXRlZCBvdXRzaWRlIG9mIERhdGFUYWJsZXMuIEFueSBjb25maWd1cmF0aW9uIHNob3VsZCBiZSBkb25lCiAqIHRocm91Z2ggdGhlIGluaXRpYWxpc2F0aW9uIG9wdGlvbnMuCiAqICBAbmFtZXNwYWNlCiAqICBAdG9kbyBSZWFsbHkgc2hvdWxkIGF0dGFjaCB0aGUgc2V0dGluZ3Mgb2JqZWN0IHRvIGluZGl2aWR1YWwgaW5zdGFuY2VzIHNvIHdlCiAqICAgIGRvbid0IG5lZWQgdG8gY3JlYXRlIG5ldyBpbnN0YW5jZXMgb24gZWFjaCAkKCkuZGF0YVRhYmxlKCkgY2FsbCAoaWYgdGhlCiAqICAgIHRhYmxlIGFscmVhZHkgZXhpc3RzKS4gSXQgd291bGQgYWxzbyBzYXZlIHBhc3Npbmcgb1NldHRpbmdzIGFyb3VuZCBhbmQKICogICAgaW50byBldmVyeSBzaW5nbGUgZnVuY3Rpb24uIEhvd2V2ZXIsIHRoaXMgaXMgYSB2ZXJ5IHNpZ25pZmljYW50IAogKiAgICBhcmNoaXRlY3R1cmUgY2hhbmdlIGZvciBEYXRhVGFibGVzIGFuZCB3aWxsIGFsbW9zdCBjZXJ0YWlubHkgYnJlYWsKICogICAgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgd2l0aCBvbGRlciBpbnN0YWxsYXRpb25zLiBUaGlzIGlzIHNvbWV0aGluZyB0aGF0CiAqICAgIHdpbGwgYmUgZG9uZSBpbiAyLjAuCiAqLwpEYXRhVGFibGUubW9kZWxzLm9TZXR0aW5ncyA9IHsKCS8qKgoJICogUHJpbWFyeSBmZWF0dXJlcyBvZiBEYXRhVGFibGVzIGFuZCB0aGVpciBlbmFibGVtZW50IHN0YXRlLgoJICogIEBuYW1lc3BhY2UKCSAqLwoJIm9GZWF0dXJlcyI6IHsKCQkKCQkvKioKCQkgKiBGbGFnIHRvIHNheSBpZiBEYXRhVGFibGVzIHNob3VsZCBhdXRvbWF0aWNhbGx5IHRyeSB0byBjYWxjdWxhdGUgdGhlCgkJICogb3B0aW11bSB0YWJsZSBhbmQgY29sdW1ucyB3aWR0aHMgKHRydWUpIG9yIG5vdCAoZmFsc2UpLgoJCSAqIE5vdGUgdGhhdCB0aGlzIHBhcmFtZXRlciB3aWxsIGJlIHNldCBieSB0aGUgaW5pdGlhbGlzYXRpb24gcm91dGluZS4gVG8KCQkgKiBzZXQgYSBkZWZhdWx0IHVzZSB7QGxpbmsgRGF0YVRhYmxlLmRlZmF1bHRzfS4KCQkgKiAgQHR5cGUgYm9vbGVhbgoJCSAqLwoJCSJiQXV0b1dpZHRoIjogbnVsbCwKCgkJLyoqCgkJICogRGVsYXkgdGhlIGNyZWF0aW9uIG9mIFRSIGFuZCBURCBlbGVtZW50cyB1bnRpbCB0aGV5IGFyZSBhY3R1YWxseQoJCSAqIG5lZWRlZCBieSBhIGRyaXZlbiBwYWdlIGRyYXcuIFRoaXMgY2FuIGdpdmUgYSBzaWduaWZpY2FudCBzcGVlZAoJCSAqIGluY3JlYXNlIGZvciBBamF4IHNvdXJjZSBhbmQgSmF2YXNjcmlwdCBzb3VyY2UgZGF0YSwgYnV0IG1ha2VzIG5vCgkJICogZGlmZmVyZW5jZSBhdCBhbGwgZnJvIERPTSBhbmQgc2VydmVyLXNpZGUgcHJvY2Vzc2luZyB0YWJsZXMuCgkJICogTm90ZSB0aGF0IHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgc2V0IGJ5IHRoZSBpbml0aWFsaXNhdGlvbiByb3V0aW5lLiBUbwoJCSAqIHNldCBhIGRlZmF1bHQgdXNlIHtAbGluayBEYXRhVGFibGUuZGVmYXVsdHN9LgoJCSAqICBAdHlwZSBib29sZWFuCgkJICovCgkJImJEZWZlclJlbmRlciI6IG51bGwsCgkJCgkJLyoqCgkJICogRW5hYmxlIGZpbHRlcmluZyBvbiB0aGUgdGFibGUgb3Igbm90LiBOb3RlIHRoYXQgaWYgdGhpcyBpcyBkaXNhYmxlZAoJCSAqIHRoZW4gdGhlcmUgaXMgbm8gZmlsdGVyaW5nIGF0IGFsbCBvbiB0aGUgdGFibGUsIGluY2x1ZGluZyBmbkZpbHRlci4KCQkgKiBUbyBqdXN0IHJlbW92ZSB0aGUgZmlsdGVyaW5nIGlucHV0IHVzZSBzRG9tIGFuZCByZW1vdmUgdGhlICdmJyBvcHRpb24uCgkJICogTm90ZSB0aGF0IHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgc2V0IGJ5IHRoZSBpbml0aWFsaXNhdGlvbiByb3V0aW5lLiBUbwoJCSAqIHNldCBhIGRlZmF1bHQgdXNlIHtAbGluayBEYXRhVGFibGUuZGVmYXVsdHN9LgoJCSAqICBAdHlwZSBib29sZWFuCgkJICovCgkJImJGaWx0ZXIiOiBudWxsLAoJCQoJCS8qKgoJCSAqIFRhYmxlIGluZm9ybWF0aW9uIGVsZW1lbnQgKHRoZSAnU2hvd2luZyB4IG9mIHkgcmVjb3JkcycgZGl2KSBlbmFibGUKCQkgKiBmbGFnLgoJCSAqIE5vdGUgdGhhdCB0aGlzIHBhcmFtZXRlciB3aWxsIGJlIHNldCBieSB0aGUgaW5pdGlhbGlzYXRpb24gcm91dGluZS4gVG8KCQkgKiBzZXQgYSBkZWZhdWx0IHVzZSB7QGxpbmsgRGF0YVRhYmxlLmRlZmF1bHRzfS4KCQkgKiAgQHR5cGUgYm9vbGVhbgoJCSAqLwoJCSJiSW5mbyI6IG51bGwsCgkJCgkJLyoqCgkJICogUHJlc2VudCBhIHVzZXIgY29udHJvbCBhbGxvd2luZyB0aGUgZW5kIHVzZXIgdG8gY2hhbmdlIHRoZSBwYWdlIHNpemUKCQkgKiB3aGVuIHBhZ2luYXRpb24gaXMgZW5hYmxlZC4KCQkgKiBOb3RlIHRoYXQgdGhpcyBwYXJhbWV0ZXIgd2lsbCBiZSBzZXQgYnkgdGhlIGluaXRpYWxpc2F0aW9uIHJvdXRpbmUuIFRvCgkJICogc2V0IGEgZGVmYXVsdCB1c2Uge0BsaW5rIERhdGFUYWJsZS5kZWZhdWx0c30uCgkJICogIEB0eXBlIGJvb2xlYW4KCQkgKi8KCQkiYkxlbmd0aENoYW5nZSI6IG51bGwsCgoJCS8qKgoJCSAqIFBhZ2luYXRpb24gZW5hYmxlZCBvciBub3QuIE5vdGUgdGhhdCBpZiB0aGlzIGlzIGRpc2FibGVkIHRoZW4gbGVuZ3RoCgkJICogY2hhbmdpbmcgbXVzdCBhbHNvIGJlIGRpc2FibGVkLgoJCSAqIE5vdGUgdGhhdCB0aGlzIHBhcmFtZXRlciB3aWxsIGJlIHNldCBieSB0aGUgaW5pdGlhbGlzYXRpb24gcm91dGluZS4gVG8KCQkgKiBzZXQgYSBkZWZhdWx0IHVzZSB7QGxpbmsgRGF0YVRhYmxlLmRlZmF1bHRzfS4KCQkgKiAgQHR5cGUgYm9vbGVhbgoJCSAqLwoJCSJiUGFnaW5hdGUiOiBudWxsLAoJCQoJCS8qKgoJCSAqIFByb2Nlc3NpbmcgaW5kaWNhdG9yIGVuYWJsZSBmbGFnIHdoZW5ldmVyIERhdGFUYWJsZXMgaXMgZW5hY3RpbmcgYQoJCSAqIHVzZXIgcmVxdWVzdCAtIHR5cGljYWxseSBhbiBBamF4IHJlcXVlc3QgZm9yIHNlcnZlci1zaWRlIHByb2Nlc3NpbmcuCgkJICogTm90ZSB0aGF0IHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgc2V0IGJ5IHRoZSBpbml0aWFsaXNhdGlvbiByb3V0aW5lLiBUbwoJCSAqIHNldCBhIGRlZmF1bHQgdXNlIHtAbGluayBEYXRhVGFibGUuZGVmYXVsdHN9LgoJCSAqICBAdHlwZSBib29sZWFuCgkJICovCgkJImJQcm9jZXNzaW5nIjogbnVsbCwKCQkKCQkvKioKCQkgKiBTZXJ2ZXItc2lkZSBwcm9jZXNzaW5nIGVuYWJsZWQgZmxhZyAtIHdoZW4gZW5hYmxlZCBEYXRhVGFibGVzIHdpbGwKCQkgKiBnZXQgYWxsIGRhdGEgZnJvbSB0aGUgc2VydmVyIGZvciBldmVyeSBkcmF3IC0gdGhlcmUgaXMgbm8gZmlsdGVyaW5nLAoJCSAqIHNvcnRpbmcgb3IgcGFnaW5nIGRvbmUgb24gdGhlIGNsaWVudC1zaWRlLgoJCSAqIE5vdGUgdGhhdCB0aGlzIHBhcmFtZXRlciB3aWxsIGJlIHNldCBieSB0aGUgaW5pdGlhbGlzYXRpb24gcm91dGluZS4gVG8KCQkgKiBzZXQgYSBkZWZhdWx0IHVzZSB7QGxpbmsgRGF0YVRhYmxlLmRlZmF1bHRzfS4KCQkgKiAgQHR5cGUgYm9vbGVhbgoJCSAqLwoJCSJiU2VydmVyU2lkZSI6IG51bGwsCgkJCgkJLyoqCgkJICogU29ydGluZyBlbmFibGVtZW50IGZsYWcuCgkJICogTm90ZSB0aGF0IHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgc2V0IGJ5IHRoZSBpbml0aWFsaXNhdGlvbiByb3V0aW5lLiBUbwoJCSAqIHNldCBhIGRlZmF1bHQgdXNlIHtAbGluayBEYXRhVGFibGUuZGVmYXVsdHN9LgoJCSAqICBAdHlwZSBib29sZWFuCgkJICovCgkJImJTb3J0IjogbnVsbCwKCQkKCQkvKioKCQkgKiBBcHBseSBhIGNsYXNzIHRvIHRoZSBjb2x1bW5zIHdoaWNoIGFyZSBiZWluZyBzb3J0ZWQgdG8gcHJvdmlkZSBhCgkJICogdmlzdWFsIGhpZ2hsaWdodCBvciBub3QuIFRoaXMgY2FuIHNsb3cgdGhpbmdzIGRvd24gd2hlbiBlbmFibGVkIHNpbmNlCgkJICogdGhlcmUgaXMgYSBsb3Qgb2YgRE9NIGludGVyYWN0aW9uLgoJCSAqIE5vdGUgdGhhdCB0aGlzIHBhcmFtZXRlciB3aWxsIGJlIHNldCBieSB0aGUgaW5pdGlhbGlzYXRpb24gcm91dGluZS4gVG8KCQkgKiBzZXQgYSBkZWZhdWx0IHVzZSB7QGxpbmsgRGF0YVRhYmxlLmRlZmF1bHRzfS4KCQkgKiAgQHR5cGUgYm9vbGVhbgoJCSAqLwoJCSJiU29ydENsYXNzZXMiOiBudWxsLAoJCQoJCS8qKgoJCSAqIFN0YXRlIHNhdmluZyBlbmFibGVtZW50IGZsYWcuCgkJICogTm90ZSB0aGF0IHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgc2V0IGJ5IHRoZSBpbml0aWFsaXNhdGlvbiByb3V0aW5lLiBUbwoJCSAqIHNldCBhIGRlZmF1bHQgdXNlIHtAbGluayBEYXRhVGFibGUuZGVmYXVsdHN9LgoJCSAqICBAdHlwZSBib29sZWFuCgkJICovCgkJImJTdGF0ZVNhdmUiOiBudWxsCgl9LAoJCgoJLyoqCgkgKiBTY3JvbGxpbmcgc2V0dGluZ3MgZm9yIGEgdGFibGUuCgkgKiAgQG5hbWVzcGFjZQoJICovCgkib1Njcm9sbCI6IHsKCQkvKioKCQkgKiBJbmRpY2F0ZSBpZiBEYXRhVGFibGVzIHNob3VsZCBiZSBhbGxvd2VkIHRvIHNldCB0aGUgcGFkZGluZyAvIG1hcmdpbgoJCSAqIGV0YyBmb3IgdGhlIHNjcm9sbGluZyBoZWFkZXIgZWxlbWVudHMgb3Igbm90LiBUeXBpY2FsbHkgeW91IHdpbGwgd2FudAoJCSAqIHRoaXMuCgkJICogTm90ZSB0aGF0IHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgc2V0IGJ5IHRoZSBpbml0aWFsaXNhdGlvbiByb3V0aW5lLiBUbwoJCSAqIHNldCBhIGRlZmF1bHQgdXNlIHtAbGluayBEYXRhVGFibGUuZGVmYXVsdHN9LgoJCSAqICBAdHlwZSBib29sZWFuCgkJICovCgkJImJBdXRvQ3NzIjogbnVsbCwKCQkKCQkvKioKCQkgKiBXaGVuIHRoZSB0YWJsZSBpcyBzaG9ydGVyIGluIGhlaWdodCB0aGFuIHNTY3JvbGxZLCBjb2xsYXBzZSB0aGUKCQkgKiB0YWJsZSBjb250YWluZXIgZG93biB0byB0aGUgaGVpZ2h0IG9mIHRoZSB0YWJsZSAod2hlbiB0cnVlKS4KCQkgKiBOb3RlIHRoYXQgdGhpcyBwYXJhbWV0ZXIgd2lsbCBiZSBzZXQgYnkgdGhlIGluaXRpYWxpc2F0aW9uIHJvdXRpbmUuIFRvCgkJICogc2V0IGEgZGVmYXVsdCB1c2Uge0BsaW5rIERhdGFUYWJsZS5kZWZhdWx0c30uCgkJICogIEB0eXBlIGJvb2xlYW4KCQkgKi8KCQkiYkNvbGxhcHNlIjogbnVsbCwKCQkKCQkvKioKCQkgKiBJbmZpbml0ZSBzY3JvbGxpbmcgZW5hYmxlbWVudCBmbGFnLiBOb3cgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YKCQkgKiB1c2luZyB0aGUgU2Nyb2xsZXIgcGx1Zy1pbi4KCQkgKiBOb3RlIHRoYXQgdGhpcyBwYXJhbWV0ZXIgd2lsbCBiZSBzZXQgYnkgdGhlIGluaXRpYWxpc2F0aW9uIHJvdXRpbmUuIFRvCgkJICogc2V0IGEgZGVmYXVsdCB1c2Uge0BsaW5rIERhdGFUYWJsZS5kZWZhdWx0c30uCgkJICogIEB0eXBlIGJvb2xlYW4KCQkgKi8KCQkiYkluZmluaXRlIjogbnVsbCwKCQkKCQkvKioKCQkgKiBXaWR0aCBvZiB0aGUgc2Nyb2xsYmFyIGZvciB0aGUgd2ViLWJyb3dzZXIncyBwbGF0Zm9ybS4gQ2FsY3VsYXRlZAoJCSAqIGR1cmluZyB0YWJsZSBpbml0aWFsaXNhdGlvbi4KCQkgKiAgQHR5cGUgaW50CgkJICogIEBkZWZhdWx0IDAKCQkgKi8KCQkiaUJhcldpZHRoIjogMCwKCQkKCQkvKioKCQkgKiBTcGFjZSAoaW4gcGl4ZWxzKSBiZXR3ZWVuIHRoZSBib3R0b20gb2YgdGhlIHNjcm9sbGluZyBjb250YWluZXIgYW5kIAoJCSAqIHRoZSBib3R0b20gb2YgdGhlIHNjcm9sbGluZyB2aWV3cG9ydCBiZWZvcmUgdGhlIG5leHQgcGFnZSBpcyBsb2FkZWQKCQkgKiB3aGVuIHVzaW5nIGluZmluaXRlIHNjcm9sbGluZy4KCQkgKiBOb3RlIHRoYXQgdGhpcyBwYXJhbWV0ZXIgd2lsbCBiZSBzZXQgYnkgdGhlIGluaXRpYWxpc2F0aW9uIHJvdXRpbmUuIFRvCgkJICogc2V0IGEgZGVmYXVsdCB1c2Uge0BsaW5rIERhdGFUYWJsZS5kZWZhdWx0c30uCgkJICogIEB0eXBlIGludAoJCSAqLwoJCSJpTG9hZEdhcCI6IG51bGwsCgkJCgkJLyoqCgkJICogVmlld3BvcnQgd2lkdGggZm9yIGhvcml6b250YWwgc2Nyb2xsaW5nLiBIb3Jpem9udGFsIHNjcm9sbGluZyBpcyAKCQkgKiBkaXNhYmxlZCBpZiBhbiBlbXB0eSBzdHJpbmcuCgkJICogTm90ZSB0aGF0IHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgc2V0IGJ5IHRoZSBpbml0aWFsaXNhdGlvbiByb3V0aW5lLiBUbwoJCSAqIHNldCBhIGRlZmF1bHQgdXNlIHtAbGluayBEYXRhVGFibGUuZGVmYXVsdHN9LgoJCSAqICBAdHlwZSBzdHJpbmcKCQkgKi8KCQkic1giOiBudWxsLAoJCQoJCS8qKgoJCSAqIFdpZHRoIHRvIGV4cGFuZCB0aGUgdGFibGUgdG8gd2hlbiB1c2luZyB4LXNjcm9sbGluZy4gVHlwaWNhbGx5IHlvdQoJCSAqIHNob3VsZCBub3QgbmVlZCB0byB1c2UgdGhpcy4KCQkgKiBOb3RlIHRoYXQgdGhpcyBwYXJhbWV0ZXIgd2lsbCBiZSBzZXQgYnkgdGhlIGluaXRpYWxpc2F0aW9uIHJvdXRpbmUuIFRvCgkJICogc2V0IGEgZGVmYXVsdCB1c2Uge0BsaW5rIERhdGFUYWJsZS5kZWZhdWx0c30uCgkJICogIEB0eXBlIHN0cmluZwoJCSAqICBAZGVwcmVjYXRlZAoJCSAqLwoJCSJzWElubmVyIjogbnVsbCwKCQkKCQkvKioKCQkgKiBWaWV3cG9ydCBoZWlnaHQgZm9yIHZlcnRpY2FsIHNjcm9sbGluZy4gVmVydGljYWwgc2Nyb2xsaW5nIGlzIGRpc2FibGVkCgkJICogaWYgYW4gZW1wdHkgc3RyaW5nLgoJCSAqIE5vdGUgdGhhdCB0aGlzIHBhcmFtZXRlciB3aWxsIGJlIHNldCBieSB0aGUgaW5pdGlhbGlzYXRpb24gcm91dGluZS4gVG8KCQkgKiBzZXQgYSBkZWZhdWx0IHVzZSB7QGxpbmsgRGF0YVRhYmxlLmRlZmF1bHRzfS4KCQkgKiAgQHR5cGUgc3RyaW5nCgkJICovCgkJInNZIjogbnVsbAoJfSwKCQoJLyoqCgkgKiBMYW5ndWFnZSBpbmZvcm1hdGlvbiBmb3IgdGhlIHRhYmxlLgoJICogIEBuYW1lc3BhY2UKCSAqICBAZXh0ZW5kcyBEYXRhVGFibGUuZGVmYXVsdHMub0xhbmd1YWdlCgkgKi8KCSJvTGFuZ3VhZ2UiOiB7CgkJLyoqCgkJICogSW5mb3JtYXRpb24gY2FsbGJhY2sgZnVuY3Rpb24uIFNlZSAKCQkgKiB7QGxpbmsgRGF0YVRhYmxlLmRlZmF1bHRzLmZuSW5mb0NhbGxiYWNrfQoJCSAqICBAdHlwZSBmdW5jdGlvbgoJCSAqICBAZGVmYXVsdCBudWxsCgkJICovCgkJImZuSW5mb0NhbGxiYWNrIjogbnVsbAoJfSwKCQoJLyoqCgkgKiBCcm93c2VyIHN1cHBvcnQgcGFyYW1ldGVycwoJICogIEBuYW1lc3BhY2UKCSAqLwoJIm9Ccm93c2VyIjogewoJCS8qKgoJCSAqIEluZGljYXRlIGlmIHRoZSBicm93c2VyIGluY29ycmVjdGx5IGNhbGN1bGF0ZXMgd2lkdGg6MTAwJSBpbnNpZGUgYQoJCSAqIHNjcm9sbGluZyBlbGVtZW50IChJRTYvNykKCQkgKiAgQHR5cGUgYm9vbGVhbgoJCSAqICBAZGVmYXVsdCBmYWxzZQoJCSAqLwoJCSJiU2Nyb2xsT3ZlcnNpemUiOiBmYWxzZQoJfSwKCQoJLyoqCgkgKiBBcnJheSByZWZlcmVuY2luZyB0aGUgbm9kZXMgd2hpY2ggYXJlIHVzZWQgZm9yIHRoZSBmZWF0dXJlcy4gVGhlIAoJICogcGFyYW1ldGVycyBvZiB0aGlzIG9iamVjdCBtYXRjaCB3aGF0IGlzIGFsbG93ZWQgYnkgc0RvbSAtIGkuZS4KCSAqICAgPHVsPgoJICogICAgIDxsaT4nbCcgLSBMZW5ndGggY2hhbmdpbmc8L2xpPgoJICogICAgIDxsaT4nZicgLSBGaWx0ZXJpbmcgaW5wdXQ8L2xpPgoJICogICAgIDxsaT4ndCcgLSBUaGUgdGFibGUhPC9saT4KCSAqICAgICA8bGk+J2knIC0gSW5mb3JtYXRpb248L2xpPgoJICogICAgIDxsaT4ncCcgLSBQYWdpbmF0aW9uPC9saT4KCSAqICAgICA8bGk+J3InIC0gcFJvY2Vzc2luZzwvbGk+CgkgKiAgIDwvdWw+CgkgKiAgQHR5cGUgYXJyYXkKCSAqICBAZGVmYXVsdCBbXQoJICovCgkiYWFuRmVhdHVyZXMiOiBbXSwKCQoJLyoqCgkgKiBTdG9yZSBkYXRhIGluZm9ybWF0aW9uIC0gc2VlIHtAbGluayBEYXRhVGFibGUubW9kZWxzLm9Sb3d9IGZvciBkZXRhaWxlZAoJICogaW5mb3JtYXRpb24uCgkgKiAgQHR5cGUgYXJyYXkKCSAqICBAZGVmYXVsdCBbXQoJICovCgkiYW9EYXRhIjogW10sCgkKCS8qKgoJICogQXJyYXkgb2YgaW5kZXhlcyB3aGljaCBhcmUgaW4gdGhlIGN1cnJlbnQgZGlzcGxheSAoYWZ0ZXIgZmlsdGVyaW5nIGV0YykKCSAqICBAdHlwZSBhcnJheQoJICogIEBkZWZhdWx0IFtdCgkgKi8KCSJhaURpc3BsYXkiOiBbXSwKCQoJLyoqCgkgKiBBcnJheSBvZiBpbmRleGVzIGZvciBkaXNwbGF5IC0gbm8gZmlsdGVyaW5nCgkgKiAgQHR5cGUgYXJyYXkKCSAqICBAZGVmYXVsdCBbXQoJICovCgkiYWlEaXNwbGF5TWFzdGVyIjogW10sCgkKCS8qKgoJICogU3RvcmUgaW5mb3JtYXRpb24gYWJvdXQgZWFjaCBjb2x1bW4gdGhhdCBpcyBpbiB1c2UKCSAqICBAdHlwZSBhcnJheQoJICogIEBkZWZhdWx0IFtdCgkgKi8KCSJhb0NvbHVtbnMiOiBbXSwKCQoJLyoqCgkgKiBTdG9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdGFibGUncyBoZWFkZXIKCSAqICBAdHlwZSBhcnJheQoJICogIEBkZWZhdWx0IFtdCgkgKi8KCSJhb0hlYWRlciI6IFtdLAoJCgkvKioKCSAqIFN0b3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSB0YWJsZSdzIGZvb3RlcgoJICogIEB0eXBlIGFycmF5CgkgKiAgQGRlZmF1bHQgW10KCSAqLwoJImFvRm9vdGVyIjogW10sCgkKCS8qKgoJICogU2VhcmNoIGRhdGEgYXJyYXkgZm9yIHJlZ3VsYXIgZXhwcmVzc2lvbiBzZWFyY2hpbmcKCSAqICBAdHlwZSBhcnJheQoJICogIEBkZWZhdWx0IFtdCgkgKi8KCSJhc0RhdGFTZWFyY2giOiBbXSwKCQoJLyoqCgkgKiBTdG9yZSB0aGUgYXBwbGllZCBnbG9iYWwgc2VhcmNoIGluZm9ybWF0aW9uIGluIGNhc2Ugd2Ugd2FudCB0byBmb3JjZSBhIAoJICogcmVzZWFyY2ggb3IgY29tcGFyZSB0aGUgb2xkIHNlYXJjaCB0byBhIG5ldyBvbmUuCgkgKiBOb3RlIHRoYXQgdGhpcyBwYXJhbWV0ZXIgd2lsbCBiZSBzZXQgYnkgdGhlIGluaXRpYWxpc2F0aW9uIHJvdXRpbmUuIFRvCgkgKiBzZXQgYSBkZWZhdWx0IHVzZSB7QGxpbmsgRGF0YVRhYmxlLmRlZmF1bHRzfS4KCSAqICBAbmFtZXNwYWNlCgkgKiAgQGV4dGVuZHMgRGF0YVRhYmxlLm1vZGVscy5vU2VhcmNoCgkgKi8KCSJvUHJldmlvdXNTZWFyY2giOiB7fSwKCQoJLyoqCgkgKiBTdG9yZSB0aGUgYXBwbGllZCBzZWFyY2ggZm9yIGVhY2ggY29sdW1uIC0gc2VlIAoJICoge0BsaW5rIERhdGFUYWJsZS5tb2RlbHMub1NlYXJjaH0gZm9yIHRoZSBmb3JtYXQgdGhhdCBpcyB1c2VkIGZvciB0aGUKCSAqIGZpbHRlcmluZyBpbmZvcm1hdGlvbiBmb3IgZWFjaCBjb2x1bW4uCgkgKiAgQHR5cGUgYXJyYXkKCSAqICBAZGVmYXVsdCBbXQoJICovCgkiYW9QcmVTZWFyY2hDb2xzIjogW10sCgkKCS8qKgoJICogU29ydGluZyB0aGF0IGlzIGFwcGxpZWQgdG8gdGhlIHRhYmxlLiBOb3RlIHRoYXQgdGhlIGlubmVyIGFycmF5cyBhcmUKCSAqIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBtYW5uZXI6CgkgKiA8dWw+CgkgKiAgIDxsaT5JbmRleCAwIC0gY29sdW1uIG51bWJlcjwvbGk+CgkgKiAgIDxsaT5JbmRleCAxIC0gY3VycmVudCBzb3J0aW5nIGRpcmVjdGlvbjwvbGk+CgkgKiAgIDxsaT5JbmRleCAyIC0gaW5kZXggb2YgYXNTb3J0aW5nIGZvciB0aGlzIGNvbHVtbjwvbGk+CgkgKiA8L3VsPgoJICogTm90ZSB0aGF0IHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgc2V0IGJ5IHRoZSBpbml0aWFsaXNhdGlvbiByb3V0aW5lLiBUbwoJICogc2V0IGEgZGVmYXVsdCB1c2Uge0BsaW5rIERhdGFUYWJsZS5kZWZhdWx0c30uCgkgKiAgQHR5cGUgYXJyYXkKCSAqICBAdG9kbyBUaGVzZSBpbm5lciBhcnJheXMgc2hvdWxkIHJlYWxseSBiZSBvYmplY3RzCgkgKi8KCSJhYVNvcnRpbmciOiBudWxsLAoJCgkvKioKCSAqIFNvcnRpbmcgdGhhdCBpcyBhbHdheXMgYXBwbGllZCB0byB0aGUgdGFibGUgKGkuZS4gcHJlZml4ZWQgaW4gZnJvbnQgb2YKCSAqIGFhU29ydGluZykuCgkgKiBOb3RlIHRoYXQgdGhpcyBwYXJhbWV0ZXIgd2lsbCBiZSBzZXQgYnkgdGhlIGluaXRpYWxpc2F0aW9uIHJvdXRpbmUuIFRvCgkgKiBzZXQgYSBkZWZhdWx0IHVzZSB7QGxpbmsgRGF0YVRhYmxlLmRlZmF1bHRzfS4KCSAqICBAdHlwZSBhcnJheXxudWxsCgkgKiAgQGRlZmF1bHQgbnVsbAoJICovCgkiYWFTb3J0aW5nRml4ZWQiOiBudWxsLAoJCgkvKioKCSAqIENsYXNzZXMgdG8gdXNlIGZvciB0aGUgc3RyaXBpbmcgb2YgYSB0YWJsZS4KCSAqIE5vdGUgdGhhdCB0aGlzIHBhcmFtZXRlciB3aWxsIGJlIHNldCBieSB0aGUgaW5pdGlhbGlzYXRpb24gcm91dGluZS4gVG8KCSAqIHNldCBhIGRlZmF1bHQgdXNlIHtAbGluayBEYXRhVGFibGUuZGVmYXVsdHN9LgoJICogIEB0eXBlIGFycmF5CgkgKiAgQGRlZmF1bHQgW10KCSAqLwoJImFzU3RyaXBlQ2xhc3NlcyI6IG51bGwsCgkKCS8qKgoJICogSWYgcmVzdG9yaW5nIGEgdGFibGUgLSB3ZSBzaG91bGQgcmVzdG9yZSBpdHMgc3RyaXBpbmcgY2xhc3NlcyBhcyB3ZWxsCgkgKiAgQHR5cGUgYXJyYXkKCSAqICBAZGVmYXVsdCBbXQoJICovCgkiYXNEZXN0cm95U3RyaXBlcyI6IFtdLAoJCgkvKioKCSAqIElmIHJlc3RvcmluZyBhIHRhYmxlIC0gd2Ugc2hvdWxkIHJlc3RvcmUgaXRzIHdpZHRoIAoJICogIEB0eXBlIGludAoJICogIEBkZWZhdWx0IDAKCSAqLwoJInNEZXN0cm95V2lkdGgiOiAwLAoJCgkvKioKCSAqIENhbGxiYWNrIGZ1bmN0aW9ucyBhcnJheSBmb3IgZXZlcnkgdGltZSBhIHJvdyBpcyBpbnNlcnRlZCAoaS5lLiBvbiBhIGRyYXcpLgoJICogIEB0eXBlIGFycmF5CgkgKiAgQGRlZmF1bHQgW10KCSAqLwoJImFvUm93Q2FsbGJhY2siOiBbXSwKCQoJLyoqCgkgKiBDYWxsYmFjayBmdW5jdGlvbnMgZm9yIHRoZSBoZWFkZXIgb24gZWFjaCBkcmF3LgoJICogIEB0eXBlIGFycmF5CgkgKiAgQGRlZmF1bHQgW10KCSAqLwoJImFvSGVhZGVyQ2FsbGJhY2siOiBbXSwKCQoJLyoqCgkgKiBDYWxsYmFjayBmdW5jdGlvbiBmb3IgdGhlIGZvb3RlciBvbiBlYWNoIGRyYXcuCgkgKiAgQHR5cGUgYXJyYXkKCSAqICBAZGVmYXVsdCBbXQoJICovCgkiYW9Gb290ZXJDYWxsYmFjayI6IFtdLAoJCgkvKioKCSAqIEFycmF5IG9mIGNhbGxiYWNrIGZ1bmN0aW9ucyBmb3IgZHJhdyBjYWxsYmFjayBmdW5jdGlvbnMKCSAqICBAdHlwZSBhcnJheQoJICogIEBkZWZhdWx0IFtdCgkgKi8KCSJhb0RyYXdDYWxsYmFjayI6IFtdLAoJCgkvKioKCSAqIEFycmF5IG9mIGNhbGxiYWNrIGZ1bmN0aW9ucyBmb3Igcm93IGNyZWF0ZWQgZnVuY3Rpb24KCSAqICBAdHlwZSBhcnJheQoJICogIEBkZWZhdWx0IFtdCgkgKi8KCSJhb1Jvd0NyZWF0ZWRDYWxsYmFjayI6IFtdLAoJCgkvKioKCSAqIENhbGxiYWNrIGZ1bmN0aW9ucyBmb3IganVzdCBiZWZvcmUgdGhlIHRhYmxlIGlzIHJlZHJhd24uIEEgcmV0dXJuIG9mIAoJICogZmFsc2Ugd2lsbCBiZSB1c2VkIHRvIGNhbmNlbCB0aGUgZHJhdy4KCSAqICBAdHlwZSBhcnJheQoJICogIEBkZWZhdWx0IFtdCgkgKi8KCSJhb1ByZURyYXdDYWxsYmFjayI6IFtdLAoJCgkvKioKCSAqIENhbGxiYWNrIGZ1bmN0aW9ucyBmb3Igd2hlbiB0aGUgdGFibGUgaGFzIGJlZW4gaW5pdGlhbGlzZWQuCgkgKiAgQHR5cGUgYXJyYXkKCSAqICBAZGVmYXVsdCBbXQoJICovCgkiYW9Jbml0Q29tcGxldGUiOiBbXSwKCgkKCS8qKgoJICogQ2FsbGJhY2tzIGZvciBtb2RpZnlpbmcgdGhlIHNldHRpbmdzIHRvIGJlIHN0b3JlZCBmb3Igc3RhdGUgc2F2aW5nLCBwcmlvciB0bwoJICogc2F2aW5nIHN0YXRlLgoJICogIEB0eXBlIGFycmF5CgkgKiAgQGRlZmF1bHQgW10KCSAqLwoJImFvU3RhdGVTYXZlUGFyYW1zIjogW10sCgkKCS8qKgoJICogQ2FsbGJhY2tzIGZvciBtb2RpZnlpbmcgdGhlIHNldHRpbmdzIHRoYXQgaGF2ZSBiZWVuIHN0b3JlZCBmb3Igc3RhdGUgc2F2aW5nCgkgKiBwcmlvciB0byB1c2luZyB0aGUgc3RvcmVkIHZhbHVlcyB0byByZXN0b3JlIHRoZSBzdGF0ZS4KCSAqICBAdHlwZSBhcnJheQoJICogIEBkZWZhdWx0IFtdCgkgKi8KCSJhb1N0YXRlTG9hZFBhcmFtcyI6IFtdLAoJCgkvKioKCSAqIENhbGxiYWNrcyBmb3Igb3BlcmF0aW5nIG9uIHRoZSBzZXR0aW5ncyBvYmplY3Qgb25jZSB0aGUgc2F2ZWQgc3RhdGUgaGFzIGJlZW4KCSAqIGxvYWRlZAoJICogIEB0eXBlIGFycmF5CgkgKiAgQGRlZmF1bHQgW10KCSAqLwoJImFvU3RhdGVMb2FkZWQiOiBbXSwKCQoJLyoqCgkgKiBDYWNoZSB0aGUgdGFibGUgSUQgZm9yIHF1aWNrIGFjY2VzcwoJICogIEB0eXBlIHN0cmluZwoJICogIEBkZWZhdWx0IDxpPkVtcHR5IHN0cmluZzwvaT4KCSAqLwoJInNUYWJsZUlkIjogIiIsCgkKCS8qKgoJICogVGhlIFRBQkxFIG5vZGUgZm9yIHRoZSBtYWluIHRhYmxlCgkgKiAgQHR5cGUgbm9kZQoJICogIEBkZWZhdWx0IG51bGwKCSAqLwoJIm5UYWJsZSI6IG51bGwsCgkKCS8qKgoJICogUGVybWFuZW50IHJlZiB0byB0aGUgdGhlYWQgZWxlbWVudAoJICogIEB0eXBlIG5vZGUKCSAqICBAZGVmYXVsdCBudWxsCgkgKi8KCSJuVEhlYWQiOiBudWxsLAoJCgkvKioKCSAqIFBlcm1hbmVudCByZWYgdG8gdGhlIHRmb290IGVsZW1lbnQgLSBpZiBpdCBleGlzdHMKCSAqICBAdHlwZSBub2RlCgkgKiAgQGRlZmF1bHQgbnVsbAoJICovCgkiblRGb290IjogbnVsbCwKCQoJLyoqCgkgKiBQZXJtYW5lbnQgcmVmIHRvIHRoZSB0Ym9keSBlbGVtZW50CgkgKiAgQHR5cGUgbm9kZQoJICogIEBkZWZhdWx0IG51bGwKCSAqLwoJIm5UQm9keSI6IG51bGwsCgkKCS8qKgoJICogQ2FjaGUgdGhlIHdyYXBwZXIgbm9kZSAoY29udGFpbnMgYWxsIERhdGFUYWJsZXMgY29udHJvbGxlZCBlbGVtZW50cykKCSAqICBAdHlwZSBub2RlCgkgKiAgQGRlZmF1bHQgbnVsbAoJICovCgkiblRhYmxlV3JhcHBlciI6IG51bGwsCgkKCS8qKgoJICogSW5kaWNhdGUgaWYgd2hlbiB1c2luZyBzZXJ2ZXItc2lkZSBwcm9jZXNzaW5nIHRoZSBsb2FkaW5nIG9mIGRhdGEgCgkgKiBzaG91bGQgYmUgZGVmZXJyZWQgdW50aWwgdGhlIHNlY29uZCBkcmF3LgoJICogTm90ZSB0aGF0IHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgc2V0IGJ5IHRoZSBpbml0aWFsaXNhdGlvbiByb3V0aW5lLiBUbwoJICogc2V0IGEgZGVmYXVsdCB1c2Uge0BsaW5rIERhdGFUYWJsZS5kZWZhdWx0c30uCgkgKiAgQHR5cGUgYm9vbGVhbgoJICogIEBkZWZhdWx0IGZhbHNlCgkgKi8KCSJiRGVmZXJMb2FkaW5nIjogZmFsc2UsCgkKCS8qKgoJICogSW5kaWNhdGUgaWYgYWxsIHJlcXVpcmVkIGluZm9ybWF0aW9uIGhhcyBiZWVuIHJlYWQgaW4KCSAqICBAdHlwZSBib29sZWFuCgkgKiAgQGRlZmF1bHQgZmFsc2UKCSAqLwoJImJJbml0aWFsaXNlZCI6IGZhbHNlLAoJCgkvKioKCSAqIEluZm9ybWF0aW9uIGFib3V0IG9wZW4gcm93cy4gRWFjaCBvYmplY3QgaW4gdGhlIGFycmF5IGhhcyB0aGUgcGFyYW1ldGVycwoJICogJ25UcicgYW5kICduUGFyZW50JwoJICogIEB0eXBlIGFycmF5CgkgKiAgQGRlZmF1bHQgW10KCSAqLwoJImFvT3BlblJvd3MiOiBbXSwKCQoJLyoqCgkgKiBEaWN0YXRlIHRoZSBwb3NpdGlvbmluZyBvZiBEYXRhVGFibGVzJyBjb250cm9sIGVsZW1lbnRzIC0gc2VlCgkgKiB7QGxpbmsgRGF0YVRhYmxlLm1vZGVsLm9Jbml0LnNEb219LgoJICogTm90ZSB0aGF0IHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgc2V0IGJ5IHRoZSBpbml0aWFsaXNhdGlvbiByb3V0aW5lLiBUbwoJICogc2V0IGEgZGVmYXVsdCB1c2Uge0BsaW5rIERhdGFUYWJsZS5kZWZhdWx0c30uCgkgKiAgQHR5cGUgc3RyaW5nCgkgKiAgQGRlZmF1bHQgbnVsbAoJICovCgkic0RvbSI6IG51bGwsCgkKCS8qKgoJICogV2hpY2ggdHlwZSBvZiBwYWdpbmF0aW9uIHNob3VsZCBiZSB1c2VkLgoJICogTm90ZSB0aGF0IHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgc2V0IGJ5IHRoZSBpbml0aWFsaXNhdGlvbiByb3V0aW5lLiBUbwoJICogc2V0IGEgZGVmYXVsdCB1c2Uge0BsaW5rIERhdGFUYWJsZS5kZWZhdWx0c30uCgkgKiAgQHR5cGUgc3RyaW5nIAoJICogIEBkZWZhdWx0IHR3b19idXR0b24KCSAqLwoJInNQYWdpbmF0aW9uVHlwZSI6ICJ0d29fYnV0dG9uIiwKCQoJLyoqCgkgKiBUaGUgY29va2llIGR1cmF0aW9uIChmb3IgYlN0YXRlU2F2ZSkgaW4gc2Vjb25kcy4KCSAqIE5vdGUgdGhhdCB0aGlzIHBhcmFtZXRlciB3aWxsIGJlIHNldCBieSB0aGUgaW5pdGlhbGlzYXRpb24gcm91dGluZS4gVG8KCSAqIHNldCBhIGRlZmF1bHQgdXNlIHtAbGluayBEYXRhVGFibGUuZGVmYXVsdHN9LgoJICogIEB0eXBlIGludAoJICogIEBkZWZhdWx0IDAKCSAqLwoJImlDb29raWVEdXJhdGlvbiI6IDAsCgkKCS8qKgoJICogVGhlIGNvb2tpZSBuYW1lIHByZWZpeC4KCSAqIE5vdGUgdGhhdCB0aGlzIHBhcmFtZXRlciB3aWxsIGJlIHNldCBieSB0aGUgaW5pdGlhbGlzYXRpb24gcm91dGluZS4gVG8KCSAqIHNldCBhIGRlZmF1bHQgdXNlIHtAbGluayBEYXRhVGFibGUuZGVmYXVsdHN9LgoJICogIEB0eXBlIHN0cmluZwoJICogIEBkZWZhdWx0IDxpPkVtcHR5IHN0cmluZzwvaT4KCSAqLwoJInNDb29raWVQcmVmaXgiOiAiIiwKCQoJLyoqCgkgKiBDYWxsYmFjayBmdW5jdGlvbiBmb3IgY29va2llIGNyZWF0aW9uLgoJICogTm90ZSB0aGF0IHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgc2V0IGJ5IHRoZSBpbml0aWFsaXNhdGlvbiByb3V0aW5lLiBUbwoJICogc2V0IGEgZGVmYXVsdCB1c2Uge0BsaW5rIERhdGFUYWJsZS5kZWZhdWx0c30uCgkgKiAgQHR5cGUgZnVuY3Rpb24KCSAqICBAZGVmYXVsdCBudWxsCgkgKi8KCSJmbkNvb2tpZUNhbGxiYWNrIjogbnVsbCwKCQoJLyoqCgkgKiBBcnJheSBvZiBjYWxsYmFjayBmdW5jdGlvbnMgZm9yIHN0YXRlIHNhdmluZy4gRWFjaCBhcnJheSBlbGVtZW50IGlzIGFuIAoJICogb2JqZWN0IHdpdGggdGhlIGZvbGxvd2luZyBwYXJhbWV0ZXJzOgoJICogICA8dWw+CgkgKiAgICAgPGxpPmZ1bmN0aW9uOmZuIC0gZnVuY3Rpb24gdG8gY2FsbC4gVGFrZXMgdHdvIHBhcmFtZXRlcnMsIG9TZXR0aW5ncwoJICogICAgICAgYW5kIHRoZSBKU09OIHN0cmluZyB0byBzYXZlIHRoYXQgaGFzIGJlZW4gdGh1cyBmYXIgY3JlYXRlZC4gUmV0dXJucwoJICogICAgICAgYSBKU09OIHN0cmluZyB0byBiZSBpbnNlcnRlZCBpbnRvIGEganNvbiBvYmplY3QgCgkgKiAgICAgICAoaS5lLiAnInBhcmFtIjogWyAwLCAxLCAyXScpPC9saT4KCSAqICAgICA8bGk+c3RyaW5nOnNOYW1lIC0gbmFtZSBvZiBjYWxsYmFjazwvbGk+CgkgKiAgIDwvdWw+CgkgKiAgQHR5cGUgYXJyYXkKCSAqICBAZGVmYXVsdCBbXQoJICovCgkiYW9TdGF0ZVNhdmUiOiBbXSwKCQoJLyoqCgkgKiBBcnJheSBvZiBjYWxsYmFjayBmdW5jdGlvbnMgZm9yIHN0YXRlIGxvYWRpbmcuIEVhY2ggYXJyYXkgZWxlbWVudCBpcyBhbiAKCSAqIG9iamVjdCB3aXRoIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVyczoKCSAqICAgPHVsPgoJICogICAgIDxsaT5mdW5jdGlvbjpmbiAtIGZ1bmN0aW9uIHRvIGNhbGwuIFRha2VzIHR3byBwYXJhbWV0ZXJzLCBvU2V0dGluZ3MgCgkgKiAgICAgICBhbmQgdGhlIG9iamVjdCBzdG9yZWQuIE1heSByZXR1cm4gZmFsc2UgdG8gY2FuY2VsIHN0YXRlIGxvYWRpbmc8L2xpPgoJICogICAgIDxsaT5zdHJpbmc6c05hbWUgLSBuYW1lIG9mIGNhbGxiYWNrPC9saT4KCSAqICAgPC91bD4KCSAqICBAdHlwZSBhcnJheQoJICogIEBkZWZhdWx0IFtdCgkgKi8KCSJhb1N0YXRlTG9hZCI6IFtdLAoJCgkvKioKCSAqIFN0YXRlIHRoYXQgd2FzIGxvYWRlZCBmcm9tIHRoZSBjb29raWUuIFVzZWZ1bCBmb3IgYmFjayByZWZlcmVuY2UKCSAqICBAdHlwZSBvYmplY3QKCSAqICBAZGVmYXVsdCBudWxsCgkgKi8KCSJvTG9hZGVkU3RhdGUiOiBudWxsLAoJCgkvKioKCSAqIFNvdXJjZSB1cmwgZm9yIEFKQVggZGF0YSBmb3IgdGhlIHRhYmxlLgoJICogTm90ZSB0aGF0IHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgc2V0IGJ5IHRoZSBpbml0aWFsaXNhdGlvbiByb3V0aW5lLiBUbwoJICogc2V0IGEgZGVmYXVsdCB1c2Uge0BsaW5rIERhdGFUYWJsZS5kZWZhdWx0c30uCgkgKiAgQHR5cGUgc3RyaW5nCgkgKiAgQGRlZmF1bHQgbnVsbAoJICovCgkic0FqYXhTb3VyY2UiOiBudWxsLAoJCgkvKioKCSAqIFByb3BlcnR5IGZyb20gYSBnaXZlbiBvYmplY3QgZnJvbSB3aGljaCB0byByZWFkIHRoZSB0YWJsZSBkYXRhIGZyb20uIFRoaXMKCSAqIGNhbiBiZSBhbiBlbXB0eSBzdHJpbmcgKHdoZW4gbm90IHNlcnZlci1zaWRlIHByb2Nlc3NpbmcpLCBpbiB3aGljaCBjYXNlIAoJICogaXQgaXMgIGFzc3VtZWQgYW4gYW4gYXJyYXkgaXMgZ2l2ZW4gZGlyZWN0bHkuCgkgKiBOb3RlIHRoYXQgdGhpcyBwYXJhbWV0ZXIgd2lsbCBiZSBzZXQgYnkgdGhlIGluaXRpYWxpc2F0aW9uIHJvdXRpbmUuIFRvCgkgKiBzZXQgYSBkZWZhdWx0IHVzZSB7QGxpbmsgRGF0YVRhYmxlLmRlZmF1bHRzfS4KCSAqICBAdHlwZSBzdHJpbmcKCSAqLwoJInNBamF4RGF0YVByb3AiOiBudWxsLAoJCgkvKioKCSAqIE5vdGUgaWYgZHJhdyBzaG91bGQgYmUgYmxvY2tlZCB3aGlsZSBnZXR0aW5nIGRhdGEKCSAqICBAdHlwZSBib29sZWFuCgkgKiAgQGRlZmF1bHQgdHJ1ZQoJICovCgkiYkFqYXhEYXRhR2V0IjogdHJ1ZSwKCQoJLyoqCgkgKiBUaGUgbGFzdCBqUXVlcnkgWEhSIG9iamVjdCB0aGF0IHdhcyB1c2VkIGZvciBzZXJ2ZXItc2lkZSBkYXRhIGdhdGhlcmluZy4gCgkgKiBUaGlzIGNhbiBiZSB1c2VkIGZvciB3b3JraW5nIHdpdGggdGhlIFhIUiBpbmZvcm1hdGlvbiBpbiBvbmUgb2YgdGhlIAoJICogY2FsbGJhY2tzCgkgKiAgQHR5cGUgb2JqZWN0CgkgKiAgQGRlZmF1bHQgbnVsbAoJICovCgkianFYSFIiOiBudWxsLAoJCgkvKioKCSAqIEZ1bmN0aW9uIHRvIGdldCB0aGUgc2VydmVyLXNpZGUgZGF0YS4KCSAqIE5vdGUgdGhhdCB0aGlzIHBhcmFtZXRlciB3aWxsIGJlIHNldCBieSB0aGUgaW5pdGlhbGlzYXRpb24gcm91dGluZS4gVG8KCSAqIHNldCBhIGRlZmF1bHQgdXNlIHtAbGluayBEYXRhVGFibGUuZGVmYXVsdHN9LgoJICogIEB0eXBlIGZ1bmN0aW9uCgkgKi8KCSJmblNlcnZlckRhdGEiOiBudWxsLAoJCgkvKioKCSAqIEZ1bmN0aW9ucyB3aGljaCBhcmUgY2FsbGVkIHByaW9yIHRvIHNlbmRpbmcgYW4gQWpheCByZXF1ZXN0IHNvIGV4dHJhIAoJICogcGFyYW1ldGVycyBjYW4gZWFzaWx5IGJlIHNlbnQgdG8gdGhlIHNlcnZlcgoJICogIEB0eXBlIGFycmF5CgkgKiAgQGRlZmF1bHQgW10KCSAqLwoJImFvU2VydmVyUGFyYW1zIjogW10sCgkKCS8qKgoJICogU2VuZCB0aGUgWEhSIEhUVFAgbWV0aG9kIC0gR0VUIG9yIFBPU1QgKGNvdWxkIGJlIFBVVCBvciBERUxFVEUgaWYgCgkgKiByZXF1aXJlZCkuCgkgKiBOb3RlIHRoYXQgdGhpcyBwYXJhbWV0ZXIgd2lsbCBiZSBzZXQgYnkgdGhlIGluaXRpYWxpc2F0aW9uIHJvdXRpbmUuIFRvCgkgKiBzZXQgYSBkZWZhdWx0IHVzZSB7QGxpbmsgRGF0YVRhYmxlLmRlZmF1bHRzfS4KCSAqICBAdHlwZSBzdHJpbmcKCSAqLwoJInNTZXJ2ZXJNZXRob2QiOiBudWxsLAoJCgkvKioKCSAqIEZvcm1hdCBudW1iZXJzIGZvciBkaXNwbGF5LgoJICogTm90ZSB0aGF0IHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgc2V0IGJ5IHRoZSBpbml0aWFsaXNhdGlvbiByb3V0aW5lLiBUbwoJICogc2V0IGEgZGVmYXVsdCB1c2Uge0BsaW5rIERhdGFUYWJsZS5kZWZhdWx0c30uCgkgKiAgQHR5cGUgZnVuY3Rpb24KCSAqLwoJImZuRm9ybWF0TnVtYmVyIjogbnVsbCwKCQoJLyoqCgkgKiBMaXN0IG9mIG9wdGlvbnMgdGhhdCBjYW4gYmUgdXNlZCBmb3IgdGhlIHVzZXIgc2VsZWN0YWJsZSBsZW5ndGggbWVudS4KCSAqIE5vdGUgdGhhdCB0aGlzIHBhcmFtZXRlciB3aWxsIGJlIHNldCBieSB0aGUgaW5pdGlhbGlzYXRpb24gcm91dGluZS4gVG8KCSAqIHNldCBhIGRlZmF1bHQgdXNlIHtAbGluayBEYXRhVGFibGUuZGVmYXVsdHN9LgoJICogIEB0eXBlIGFycmF5CgkgKiAgQGRlZmF1bHQgW10KCSAqLwoJImFMZW5ndGhNZW51IjogbnVsbCwKCQoJLyoqCgkgKiBDb3VudGVyIGZvciB0aGUgZHJhd3MgdGhhdCB0aGUgdGFibGUgZG9lcy4gQWxzbyB1c2VkIGFzIGEgdHJhY2tlciBmb3IKCSAqIHNlcnZlci1zaWRlIHByb2Nlc3NpbmcKCSAqICBAdHlwZSBpbnQKCSAqICBAZGVmYXVsdCAwCgkgKi8KCSJpRHJhdyI6IDAsCgkKCS8qKgoJICogSW5kaWNhdGUgaWYgYSByZWRyYXcgaXMgYmVpbmcgZG9uZSAtIHVzZWZ1bCBmb3IgQWpheAoJICogIEB0eXBlIGJvb2xlYW4KCSAqICBAZGVmYXVsdCBmYWxzZQoJICovCgkiYkRyYXdpbmciOiBmYWxzZSwKCQoJLyoqCgkgKiBEcmF3IGluZGV4IChpRHJhdykgb2YgdGhlIGxhc3QgZXJyb3Igd2hlbiBwYXJzaW5nIHRoZSByZXR1cm5lZCBkYXRhCgkgKiAgQHR5cGUgaW50CgkgKiAgQGRlZmF1bHQgLTEKCSAqLwoJImlEcmF3RXJyb3IiOiAtMSwKCQoJLyoqCgkgKiBQYWdpbmcgZGlzcGxheSBsZW5ndGgKCSAqICBAdHlwZSBpbnQKCSAqICBAZGVmYXVsdCAxMAoJICovCgkiX2lEaXNwbGF5TGVuZ3RoIjogMTAsCgoJLyoqCgkgKiBQYWdpbmcgc3RhcnQgcG9pbnQgLSBhaURpc3BsYXkgaW5kZXgKCSAqICBAdHlwZSBpbnQKCSAqICBAZGVmYXVsdCAwCgkgKi8KCSJfaURpc3BsYXlTdGFydCI6IDAsCgoJLyoqCgkgKiBQYWdpbmcgZW5kIHBvaW50IC0gYWlEaXNwbGF5IGluZGV4LiBVc2UgZm5EaXNwbGF5RW5kIHJhdGhlciB0aGFuCgkgKiB0aGlzIHByb3BlcnR5IHRvIGdldCB0aGUgZW5kIHBvaW50CgkgKiAgQHR5cGUgaW50CgkgKiAgQGRlZmF1bHQgMTAKCSAqICBAcHJpdmF0ZQoJICovCgkiX2lEaXNwbGF5RW5kIjogMTAsCgkKCS8qKgoJICogU2VydmVyLXNpZGUgcHJvY2Vzc2luZyAtIG51bWJlciBvZiByZWNvcmRzIGluIHRoZSByZXN1bHQgc2V0CgkgKiAoaS5lLiBiZWZvcmUgZmlsdGVyaW5nKSwgVXNlIGZuUmVjb3Jkc1RvdGFsIHJhdGhlciB0aGFuCgkgKiB0aGlzIHByb3BlcnR5IHRvIGdldCB0aGUgdmFsdWUgb2YgdGhlIG51bWJlciBvZiByZWNvcmRzLCByZWdhcmRsZXNzIG9mCgkgKiB0aGUgc2VydmVyLXNpZGUgcHJvY2Vzc2luZyBzZXR0aW5nLgoJICogIEB0eXBlIGludAoJICogIEBkZWZhdWx0IDAKCSAqICBAcHJpdmF0ZQoJICovCgkiX2lSZWNvcmRzVG90YWwiOiAwLAoKCS8qKgoJICogU2VydmVyLXNpZGUgcHJvY2Vzc2luZyAtIG51bWJlciBvZiByZWNvcmRzIGluIHRoZSBjdXJyZW50IGRpc3BsYXkgc2V0CgkgKiAoaS5lLiBhZnRlciBmaWx0ZXJpbmcpLiBVc2UgZm5SZWNvcmRzRGlzcGxheSByYXRoZXIgdGhhbgoJICogdGhpcyBwcm9wZXJ0eSB0byBnZXQgdGhlIHZhbHVlIG9mIHRoZSBudW1iZXIgb2YgcmVjb3JkcywgcmVnYXJkbGVzcyBvZgoJICogdGhlIHNlcnZlci1zaWRlIHByb2Nlc3Npbmcgc2V0dGluZy4KCSAqICBAdHlwZSBib29sZWFuCgkgKiAgQGRlZmF1bHQgMAoJICogIEBwcml2YXRlCgkgKi8KCSJfaVJlY29yZHNEaXNwbGF5IjogMCwKCQoJLyoqCgkgKiBGbGFnIHRvIGluZGljYXRlIGlmIGpRdWVyeSBVSSBtYXJraW5nIGFuZCBjbGFzc2VzIHNob3VsZCBiZSB1c2VkLgoJICogTm90ZSB0aGF0IHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgc2V0IGJ5IHRoZSBpbml0aWFsaXNhdGlvbiByb3V0aW5lLiBUbwoJICogc2V0IGEgZGVmYXVsdCB1c2Uge0BsaW5rIERhdGFUYWJsZS5kZWZhdWx0c30uCgkgKiAgQHR5cGUgYm9vbGVhbgoJICovCgkiYkpVSSI6IG51bGwsCgkKCS8qKgoJICogVGhlIGNsYXNzZXMgdG8gdXNlIGZvciB0aGUgdGFibGUKCSAqICBAdHlwZSBvYmplY3QKCSAqICBAZGVmYXVsdCB7fQoJICovCgkib0NsYXNzZXMiOiB7fSwKCQoJLyoqCgkgKiBGbGFnIGF0dGFjaGVkIHRvIHRoZSBzZXR0aW5ncyBvYmplY3Qgc28geW91IGNhbiBjaGVjayBpbiB0aGUgZHJhdyAKCSAqIGNhbGxiYWNrIGlmIGZpbHRlcmluZyBoYXMgYmVlbiBkb25lIGluIHRoZSBkcmF3LiBEZXByZWNhdGVkIGluIGZhdm91ciBvZgoJICogZXZlbnRzLgoJICogIEB0eXBlIGJvb2xlYW4KCSAqICBAZGVmYXVsdCBmYWxzZQoJICogIEBkZXByZWNhdGVkCgkgKi8KCSJiRmlsdGVyZWQiOiBmYWxzZSwKCQoJLyoqCgkgKiBGbGFnIGF0dGFjaGVkIHRvIHRoZSBzZXR0aW5ncyBvYmplY3Qgc28geW91IGNhbiBjaGVjayBpbiB0aGUgZHJhdyAKCSAqIGNhbGxiYWNrIGlmIHNvcnRpbmcgaGFzIGJlZW4gZG9uZSBpbiB0aGUgZHJhdy4gRGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YKCSAqIGV2ZW50cy4KCSAqICBAdHlwZSBib29sZWFuCgkgKiAgQGRlZmF1bHQgZmFsc2UKCSAqICBAZGVwcmVjYXRlZAoJICovCgkiYlNvcnRlZCI6IGZhbHNlLAoJCgkvKioKCSAqIEluZGljYXRlIHRoYXQgaWYgbXVsdGlwbGUgcm93cyBhcmUgaW4gdGhlIGhlYWRlciBhbmQgdGhlcmUgaXMgbW9yZSB0aGFuIAoJICogb25lIHVuaXF1ZSBjZWxsIHBlciBjb2x1bW4sIGlmIHRoZSB0b3Agb25lICh0cnVlKSBvciBib3R0b20gb25lIChmYWxzZSkgCgkgKiBzaG91bGQgYmUgdXNlZCBmb3Igc29ydGluZyAvIHRpdGxlIGJ5IERhdGFUYWJsZXMuCgkgKiBOb3RlIHRoYXQgdGhpcyBwYXJhbWV0ZXIgd2lsbCBiZSBzZXQgYnkgdGhlIGluaXRpYWxpc2F0aW9uIHJvdXRpbmUuIFRvCgkgKiBzZXQgYSBkZWZhdWx0IHVzZSB7QGxpbmsgRGF0YVRhYmxlLmRlZmF1bHRzfS4KCSAqICBAdHlwZSBib29sZWFuCgkgKi8KCSJiU29ydENlbGxzVG9wIjogbnVsbCwKCQoJLyoqCgkgKiBJbml0aWFsaXNhdGlvbiBvYmplY3QgdGhhdCBpcyB1c2VkIGZvciB0aGUgdGFibGUKCSAqICBAdHlwZSBvYmplY3QKCSAqICBAZGVmYXVsdCBudWxsCgkgKi8KCSJvSW5pdCI6IG51bGwsCgkKCS8qKgoJICogRGVzdHJveSBjYWxsYmFjayBmdW5jdGlvbnMgLSBmb3IgcGx1Zy1pbnMgdG8gYXR0YWNoIHRoZW1zZWx2ZXMgdG8gdGhlCgkgKiBkZXN0cm95IHNvIHRoZXkgY2FuIGNsZWFuIHVwIG1hcmt1cCBhbmQgZXZlbnRzLgoJICogIEB0eXBlIGFycmF5CgkgKiAgQGRlZmF1bHQgW10KCSAqLwoJImFvRGVzdHJveUNhbGxiYWNrIjogW10sCgoJCgkvKioKCSAqIEdldCB0aGUgbnVtYmVyIG9mIHJlY29yZHMgaW4gdGhlIGN1cnJlbnQgcmVjb3JkIHNldCwgYmVmb3JlIGZpbHRlcmluZwoJICogIEB0eXBlIGZ1bmN0aW9uCgkgKi8KCSJmblJlY29yZHNUb3RhbCI6IGZ1bmN0aW9uICgpCgl7CgkJaWYgKCB0aGlzLm9GZWF0dXJlcy5iU2VydmVyU2lkZSApIHsKCQkJcmV0dXJuIHBhcnNlSW50KHRoaXMuX2lSZWNvcmRzVG90YWwsIDEwKTsKCQl9IGVsc2UgewoJCQlyZXR1cm4gdGhpcy5haURpc3BsYXlNYXN0ZXIubGVuZ3RoOwoJCX0KCX0sCgkKCS8qKgoJICogR2V0IHRoZSBudW1iZXIgb2YgcmVjb3JkcyBpbiB0aGUgY3VycmVudCByZWNvcmQgc2V0LCBhZnRlciBmaWx0ZXJpbmcKCSAqICBAdHlwZSBmdW5jdGlvbgoJICovCgkiZm5SZWNvcmRzRGlzcGxheSI6IGZ1bmN0aW9uICgpCgl7CgkJaWYgKCB0aGlzLm9GZWF0dXJlcy5iU2VydmVyU2lkZSApIHsKCQkJcmV0dXJuIHBhcnNlSW50KHRoaXMuX2lSZWNvcmRzRGlzcGxheSwgMTApOwoJCX0gZWxzZSB7CgkJCXJldHVybiB0aGlzLmFpRGlzcGxheS5sZW5ndGg7CgkJfQoJfSwKCQoJLyoqCgkgKiBTZXQgdGhlIGRpc3BsYXkgZW5kIHBvaW50IC0gYWlEaXNwbGF5IGluZGV4CgkgKiAgQHR5cGUgZnVuY3Rpb24KCSAqICBAdG9kbyBTaG91bGQgZG8gYXdheSB3aXRoIF9pRGlzcGxheUVuZCBhbmQgY2FsY3VsYXRlIGl0IG9uLXRoZS1mbHkgaGVyZQoJICovCgkiZm5EaXNwbGF5RW5kIjogZnVuY3Rpb24gKCkKCXsKCQlpZiAoIHRoaXMub0ZlYXR1cmVzLmJTZXJ2ZXJTaWRlICkgewoJCQlpZiAoIHRoaXMub0ZlYXR1cmVzLmJQYWdpbmF0ZSA9PT0gZmFsc2UgfHwgdGhpcy5faURpc3BsYXlMZW5ndGggPT0gLTEgKSB7CgkJCQlyZXR1cm4gdGhpcy5faURpc3BsYXlTdGFydCt0aGlzLmFpRGlzcGxheS5sZW5ndGg7CgkJCX0gZWxzZSB7CgkJCQlyZXR1cm4gTWF0aC5taW4oIHRoaXMuX2lEaXNwbGF5U3RhcnQrdGhpcy5faURpc3BsYXlMZW5ndGgsIAoJCQkJCXRoaXMuX2lSZWNvcmRzRGlzcGxheSApOwoJCQl9CgkJfSBlbHNlIHsKCQkJcmV0dXJuIHRoaXMuX2lEaXNwbGF5RW5kOwoJCX0KCX0sCgkKCS8qKgoJICogVGhlIERhdGFUYWJsZXMgb2JqZWN0IGZvciB0aGlzIHRhYmxlCgkgKiAgQHR5cGUgb2JqZWN0CgkgKiAgQGRlZmF1bHQgbnVsbAoJICovCgkib0luc3RhbmNlIjogbnVsbCwKCQoJLyoqCgkgKiBVbmlxdWUgaWRlbnRpZmllciBmb3IgZWFjaCBpbnN0YW5jZSBvZiB0aGUgRGF0YVRhYmxlcyBvYmplY3QuIElmIHRoZXJlCgkgKiBpcyBhbiBJRCBvbiB0aGUgdGFibGUgbm9kZSwgdGhlbiBpdCB0YWtlcyB0aGF0IHZhbHVlLCBvdGhlcndpc2UgYW4KCSAqIGluY3JlbWVudGluZyBpbnRlcm5hbCBjb3VudGVyIGlzIHVzZWQuCgkgKiAgQHR5cGUgc3RyaW5nCgkgKiAgQGRlZmF1bHQgbnVsbAoJICovCgkic0luc3RhbmNlIjogbnVsbCwKCgkvKioKCSAqIHRhYmluZGV4IGF0dHJpYnV0ZSB2YWx1ZSB0aGF0IGlzIGFkZGVkIHRvIERhdGFUYWJsZXMgY29udHJvbCBlbGVtZW50cywgYWxsb3dpbmcKCSAqIGtleWJvYXJkIG5hdmlnYXRpb24gb2YgdGhlIHRhYmxlIGFuZCBpdHMgY29udHJvbHMuCgkgKi8KCSJpVGFiSW5kZXgiOiAwLAoKCS8qKgoJICogRElWIGNvbnRhaW5lciBmb3IgdGhlIGZvb3RlciBzY3JvbGxpbmcgdGFibGUgaWYgc2Nyb2xsaW5nCgkgKi8KCSJuU2Nyb2xsSGVhZCI6IG51bGwsCgoJLyoqCgkgKiBESVYgY29udGFpbmVyIGZvciB0aGUgZm9vdGVyIHNjcm9sbGluZyB0YWJsZSBpZiBzY3JvbGxpbmcKCSAqLwoJIm5TY3JvbGxGb290IjogbnVsbAp9Owo=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/controller.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[dmFyIGdpVG90YWxUZXN0Q291bnQgPSAwOwp2YXIgZ2lBY3RpdmVNb2R1bGUgPSAwOwp2YXIgZ2lNb2R1bGVUZXN0czsKdmFyIGdpU3RhcnRUaW1lOwp2YXIgZ2lUZXN0Owp2YXIgZ2JTdG9wID0gZmFsc2U7CnZhciBndG9UZXN0OwoKZnVuY3Rpb24gZm5UZXN0U3RhcnQgKCBzVGVzdEluZm8gKQp7CglnYW9UZXN0WyBnaUFjdGl2ZU1vZHVsZSBdLmlUZXN0cysrOwoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3RfaW5mbycpLmlubmVySFRNTCArPSAKCQkoZ2lBY3RpdmVNb2R1bGUrMSkrJy4nKyhnaU1vZHVsZVRlc3RzKzEpKycuICcrc1Rlc3RJbmZvKycuLi4gJzsKCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0X251bWJlcicpLmlubmVySFRNTCA9IGdpVG90YWxUZXN0Q291bnQrMTsKCWdpTW9kdWxlVGVzdHMrKzsKCWdpVG90YWxUZXN0Q291bnQrKzsKCQoJLyogU2V0IGEgdGltZXIgdG8gY2F0Y2ggc3RhbGxlZCBzY3JpcHQgKi8KCWd0b1Rlc3QgPSBzZXRUaW1lb3V0KCBmdW5jdGlvbiAoKSB7CgkJZm5NZXNzYWdlKCAnPHNwYW4gY2xhc3M9ImVycm9yIj5XQVJOSU5HIC0gdGVzdCBzY3JpcHQgc3RhbGxlZC4gTGlrZWx5IGEgSlMgZXJyb3I8L3NwYW4+JyApOwoJCWdiU3RvcCA9IHRydWU7Cgl9LCAzMDAwICk7Cn0KCmZ1bmN0aW9uIGZuVGVzdFJlc3VsdCAoIGJSZXN1bHQgKQp7CgljbGVhclRpbWVvdXQoIGd0b1Rlc3QgKTsKCWlmICggYlJlc3VsdCApCgl7CgkJZm5NZXNzYWdlKCAnUGFzc2VkJyApOwoJfQoJZWxzZQoJewoJCWZuTWVzc2FnZSggJzxzcGFuIGNsYXNzPSJlcnJvciI+RkFJTEVEPC9zcGFuPicgKTsKCQlnYlN0b3AgPSB0cnVlOwoJCWZuRW5kKCBmYWxzZSApOwoJfQp9CgpmdW5jdGlvbiBmblVuaXRTdGFydCggaVRlc3QgKQp7CglpZiAoICFnYlN0b3AgKQoJewoJCWdpTW9kdWxlVGVzdHMgPSAwOwoJCXdpbmRvdy5wYXJlbnQudGVzdF9hcmVuYS5sb2NhdGlvbi5ocmVmID0gCgkJCShpVGVzdD09MD8iIjoiLi4vIikrJ3RlbXBsYXRlcy8nK2dhb1Rlc3RbaVRlc3RdLnNUZW1wbGF0ZSsnLnBocD9zY3JpcHRzPScrZ2FvVGVzdFtpVGVzdF0uc1Rlc3Q7CgkJZ2lUZXN0ID0gaVRlc3Q7Cgl9Cn0KCmZ1bmN0aW9uIGZuU3RhcnRNZXNzYWdlKCBzTWVzc2FnZSApCnsKCWZuTWVzc2FnZSggJzxicj48Yj4nK2dhb1Rlc3RbZ2lUZXN0XS5zR3JvdXArJyAtICcrc01lc3NhZ2UrJzwvYj4nICk7Cn0KCmZ1bmN0aW9uIGZuTWVzc2FnZSggc01lc3NhZ2UgKQp7Cgl2YXIgbkluZm8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdF9pbmZvJyk7CgluSW5mby5pbm5lckhUTUwgKz0gc01lc3NhZ2UrJzxicj4nOwoJbkluZm8uc2Nyb2xsVG9wID0gbkluZm8uc2Nyb2xsSGVpZ2h0Owp9CgpmdW5jdGlvbiBmblVuaXRDb21wbGV0ZSgpCnsKCWlmICggZ2lBY3RpdmVNb2R1bGUgPCBnYW9UZXN0Lmxlbmd0aCAtIDEgKQoJewoJCWZuVW5pdFN0YXJ0KCArK2dpQWN0aXZlTW9kdWxlICk7Cgl9CgllbHNlCgl7CgkJZm5FbmQoIHRydWUgKTsKCX0KfQoKZnVuY3Rpb24gZm5FbmQoIGJTdWNjZXNzICkKeyAKCXZhciBpRW5kVGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOwoJdmFyIHNUaW1lID0gJzxicj5UaGlzIHRlc3QgcnVuIHRvb2sgJytwYXJzZUludCgoaUVuZFRpbWUtZ2lTdGFydFRpbWUpLzEwMDAsIDEwKSsKCQkJJyBzZWNvbmQocykgdG8gY29tcGxldGUuJzsKCQoJaWYgKCBiU3VjY2VzcyApCgl7CgkJJCgnI3Rlc3RfcnVubmluZycpLmh0bWwoICdUZXN0cyBjb21wbGV0ZS4gJytnaVRvdGFsVGVzdENvdW50KycgdGVzdHMgd2VyZSBydW4uJytzVGltZSApOwoJfQoJZWxzZQoJewoJCSQoJyN0ZXN0X3J1bm5pbmcnKS5odG1sKCAnVW5pdCB0ZXN0cyBmYWlsZWQgYXQgdGVzdCAnK2dpVG90YWxUZXN0Q291bnQrJy4nK3NUaW1lICk7Cgl9Cn0KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CglnaVN0YXJ0VGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOwoJZm5Vbml0U3RhcnQoIGdpQWN0aXZlTW9kdWxlICk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/controller.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCWhlYWRlciggJ0V4cGlyZXM6IFNhdCwgMjYgSnVsIDE5OTcgMDU6MDA6MDAgR01UJyApOyAKCWhlYWRlciggJ0xhc3QtTW9kaWZpZWQ6ICcgLiBnbWRhdGUoICdELCBkIE0gWSBIOmk6cycgKSAuICcgR01UJyApOyAKCWhlYWRlciggJ0NhY2hlLUNvbnRyb2w6IG5vLXN0b3JlLCBuby1jYWNoZSwgbXVzdC1yZXZhbGlkYXRlJyApOyAKCWhlYWRlciggJ0NhY2hlLUNvbnRyb2w6IHBvc3QtY2hlY2s9MCwgcHJlLWNoZWNrPTAnLCBmYWxzZSApOyAKCWhlYWRlciggJ1ByYWdtYTogbm8tY2FjaGUnICk7IAo/PjwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIKCSJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9zdHJpY3QuZHRkIj4KPGh0bWw+Cgk8aGVhZD4KCQk8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LXR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI+CgkJPHRpdGxlPkRhdGFUYWJsZXMgdW5pdCB0ZXN0IGNvbnRyb2xsZXI8L3RpdGxlPgoJCQoJCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CgkJCSNjb250cm9sbGVyIHsKCQkJCWZvbnQ6IDEycHgvMS40NWVtICJMdWNpZGEgR3JhbmRlIiwgVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsKCQkJCW1hcmdpbjogMDsKCQkJCXBhZGRpbmc6IDAgMCAwIDAuNWVtOwoJCQkJY29sb3I6ICMzMzM7CgkJCQliYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwoJCQl9CgkJCQoJCQkjdGVzdF9pbmZvIHsKCQkJCXBvc2l0aW9uOiBhYnNvbHV0ZTsKCQkJCXRvcDogMDsKCQkJCXJpZ2h0OiAwOwoJCQkJd2lkdGg6IDUwJTsKCQkJCWhlaWdodDogMTAwJTsKCQkJCWZvbnQtc2l6ZTogMTFweDsKCQkJCW92ZXJmbG93OiBhdXRvOwoJCQl9CgkJCQoJCQkuZXJyb3IgewoJCQkJY29sb3I6IHJlZDsKCQkJfQoJCQkKCQkJI2NvbnRyb2xsZXIgaDEgewoJCQkJY29sb3I6ICM0RTZDQTM7CgkJCQlmb250LXNpemU6IDE4cHg7CgkJCX0KCQk8L3N0eWxlPgoJCQoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBsYW5ndWFnZT0iamF2YXNjcmlwdCIgc3JjPSIuLi9qcy9qcXVlcnkuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CgkJCXZhciBnYW9UZXN0ID0gWwoJCQk8P3BocAoJCQkJZnVuY3Rpb24gZm5SZWFkRGlyKCAmJGFSZXR1cm4sICRwYXRoICkKCQkJCXsKCQkJCQkkckRpciA9IG9wZW5kaXIoICRwYXRoICk7CiAgICAgICAgCXdoaWxlICggKCRmaWxlID0gcmVhZGRpcigkckRpcikpICE9PSBmYWxzZSApCgkJCQkJewoJCQkJCQlpZiAoICRmaWxlID09ICIuIiB8fCAkZmlsZSA9PSAiLi4iIHx8ICRmaWxlID09ICIuRFNfU3RvcmUiICkKCQkJCQkJewoJCQkJCQkJY29udGludWU7CgkJCQkJCX0KCQkJCQkJZWxzZSBpZiAoIGlzX2RpciggJHBhdGguJy8nLiRmaWxlICkgKQoJCQkJCQl7CgkJCQkJCQlmblJlYWREaXIoICRhUmV0dXJuLCAkcGF0aC4nLycuJGZpbGUgKTsKCQkJCQkJfQoJCQkJCQllbHNlCgkJCQkJCXsKCQkJCQkJCWFycmF5X3B1c2goICRhUmV0dXJuLCAkcGF0aC4nLycuJGZpbGUgKTsKCQkJCQkJfQoJCQkJCX0KCQkJCQljbG9zZWRpcigkckRpcik7CgkJCQl9CgkJCQkKCQkJCS8qIEdldCB0aGUgdGVzdHMgZHluYW1pY2FsbHkgZnJvbSB0aGUgJ3Rlc3RzJyBkaXJlY3RvcnksIGFuZCB0aGVpciB0ZW1wbGF0ZXMgKi8KCQkJCSRhRmlsZXMgPSBhcnJheSgpOwoJCQkJZm5SZWFkRGlyKCAkYUZpbGVzLCAidGVzdHMiICk7CgkJCQkKCQkJCWZvciAoICRpPTAgOyAkaTxjb3VudCgkYUZpbGVzKSA7ICRpKysgKQoJCQkJewoJCQkJCSRzVGVtcGxhdGU7CgkJCQkJJGZwID0gZm9wZW4oICRhRmlsZXNbJGldLCAiciIgKTsKCQkJCQlmc2NhbmYoICRmcCwgIi8vIERBVEFfVEVNUExBVEU6ICVzIiwgJHNUZW1wbGF0ZSApOwoJCQkJCWZjbG9zZSggJGZwICk7CgkJCQkJCgkJCQkJJGFQYXRoID0gZXhwbG9kZSgnLycsICRhRmlsZXNbJGldKTsKCQkJCQkKCQkJCQllY2hvICd7ICcuCgkJCQkJCScic1RlbXBsYXRlIjogIicuJHNUZW1wbGF0ZS4nIiwgJy4KCQkJCQkJJyJzVGVzdCI6ICInLiRhRmlsZXNbJGldLiciLCAnLgoJCQkJCQknInNHcm91cCI6ICInLiRhUGF0aFsxXS4nIn0sJy4iXG4iOwoJCQkJfQoJCQkJCgkJCT8+CgkJCW51bGwgXTsKCQkJZ2FvVGVzdC5wb3AoKTsgLyogTm8gaW50ZXJlc3QgaW4gdGhlIG51bGwgKi8KCQk8L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iY29udHJvbGxlci5qcyI+PC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keSBpZD0iY29udHJvbGxlciI+CgkJPGgxPkRhdGFUYWJsZXMgdW5pdCB0ZXN0aW5nPC9oMT4KCQk8ZGl2IGlkPSJ0ZXN0X3J1bm5pbmciPlJ1bm5pbmcgdGVzdDogPHNwYW4gaWQ9InRlc3RfbnVtYmVyIj48L3NwYW4+PC9kaXY+CgkJPGRpdiBpZD0idGVzdF9pbmZvIj4KCQkJPGI+VGVzdCBpbmZvcm1hdGlvbjo8L2I+PGJyPgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgRnJhbWVzZXQvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvZnJhbWVzZXQuZHRkIj4KPGh0bWw+Cgk8ZnJhbWVzZXQgcm93cz0iMjAlLDgwJSI+CgkJPGZyYW1lIG5hbWU9ImNvbnRyb2xsZXIiIGlkPSJjb250cm9sbGVyIiBzcmM9ImNvbnRyb2xsZXIucGhwIj4KCQk8ZnJhbWUgbmFtZT0idGVzdF9hcmVuYSIgaWQ9InRlc3RfYXJlbmEiPgoJPC9mcmFtZXNldD4KPC9odG1sPg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/performance/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/performance/draw.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+CgkJPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiB0eXBlPSJpbWFnZS9pY28iIGhyZWY9Imh0dHA6Ly93d3cuZGF0YXRhYmxlcy5uZXQvZmF2aWNvbi5pY28iIC8+CgkJCgkJPHRpdGxlPkRhdGFUYWJsZXMgZXhhbXBsZTwvdGl0bGU+CgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iY3VycmVudFN0eWxlIj4KCQkJQGltcG9ydCAiLi4vLi4vY3NzL2RlbW9fcGFnZS5jc3MiOwoJCQlAaW1wb3J0ICIuLi8uLi9jc3MvZGVtb190YWJsZS5jc3MiOwoJCTwvc3R5bGU+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGxhbmd1YWdlPSJqYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGxhbmd1YWdlPSJqYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2pzL2pxdWVyeS5kYXRhVGFibGVzLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgoJCQkkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKCQkJCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJCQkJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJCQl2YXIgaVN0YXJ0ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7CgkJCQkKCQkJCS8vY29uc29sZS5wcm9maWxlKCk7CgkJCQkvL2ZvciAoIHZhciBpPTAsIGlMZW49MTAwMCA7IGk8aUxlbiA7IGkrKyApCgkJCQkvL3sKCQkJCS8vCW9TZXR0aW5ncy5faURpc3BsYXlMZW5ndGggPSAxMDA7CgkJCQkvLwlvVGFibGUub0FwaS5fZm5DYWxjdWxhdGVFbmQoIG9TZXR0aW5ncyApOwoJCQkJLy8Jb1RhYmxlLm9BcGkuX2ZuRHJhdyggb1NldHRpbmdzICk7CgkJCQkvLwkKCQkJCS8vCW9TZXR0aW5ncy5faURpc3BsYXlMZW5ndGggPSAxMDsKCQkJCS8vCW9UYWJsZS5vQXBpLl9mbkNhbGN1bGF0ZUVuZCggb1NldHRpbmdzICk7CgkJCQkvLwlvVGFibGUub0FwaS5fZm5EcmF3KCBvU2V0dGluZ3MgKTsKCQkJCS8vfQoJCQkJLy9jb25zb2xlLnByb2ZpbGVFbmQoKTsKCQkJCQoJCQkJdmFyIGlFbmQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKCQkJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdXRwdXQnKS5pbm5lckhUTUwgPSAiVGVzdCB0b29rICIrKGlFbmQtaVN0YXJ0KSsibVMiOwoJCQl9ICk7CgkJPC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keSBpZD0iZHRfZXhhbXBsZSI+CgkJPGRpdiBpZD0iY29udGFpbmVyIj4KCQkJPGRpdiBjbGFzcz0iZnVsbF93aWR0aCBiaWciPgoJCQkJPGk+RGF0YVRhYmxlczwvaT4gcGVyZm9ybWFuY2UgdGVzdCAtIGRyYXcKCQkJPC9kaXY+CgkJCTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+CgkJCQoJCQk8ZGl2IGlkPSJkZW1vIj4KPHRhYmxlIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgYm9yZGVyPSIwIiBjbGFzcz0iZGlzcGxheSIgaWQ9ImV4YW1wbGUiPgoJPHRoZWFkPgoJCTx0cj4KCQkJPHRoPlJlbmRlcmluZyBlbmdpbmU8L3RoPgoJCQk8dGg+QnJvd3NlcjwvdGg+CgkJCTx0aD5QbGF0Zm9ybShzKTwvdGg+CgkJCTx0aD5FbmdpbmUgdmVyc2lvbjwvdGg+CgkJCTx0aD5DU1MgZ3JhZGU8L3RoPgoJCTwvdHI+Cgk8L3RoZWFkPgoJPHRib2R5PgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA0LjA8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDUuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNS41PC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDY8L3RkPgoJCQk8dGQ+V2luIDk4KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA3PC90ZD4KCQkJPHRkPldpbiBYUCBTUDIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkFPTCBicm93c2VyIChBT0wgZGVza3RvcCk8L3RkPgoJCQk8dGQ+V2luIFhQPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMS41PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAyLjA8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDMuMDwvdGQ+CgkJCTx0ZD5XaW4gMmsrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkNhbWlubyAxLjA8L3RkPgoJCQk8dGQ+T1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkNhbWlubyAxLjU8L3RkPgoJCQk8dGQ+T1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIDcuMjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gTWFjIE9TIDguNi05LjI8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgQnJvd3NlciA4PC90ZD4KCQkJPHRkPldpbiA5OFNFKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSBOYXZpZ2F0b3IgOTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4xPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjI8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjI8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMzwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS40PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS40PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS43PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjg8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5TZWFtb25rZXkgMS4xPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RXBpcGhhbnkgMi4yMDwvdGQ+CgkJCTx0ZD5Hbm9tZTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDEuMjwvdGQ+CgkJCTx0ZD5PU1guMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xMjUuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMS4zPC90ZD4KCQkJPHRkPk9TWC4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMxMi44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAyLjA8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQxOS4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAzLjA8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUyMi4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPk9tbmlXZWIgNS41PC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MjA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+aVBvZCBUb3VjaCAvIGlQaG9uZTwvdGQ+CgkJCTx0ZD5pUG9kPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQyMC4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlM2MDwvdGQ+CgkJCTx0ZD5TNjA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDEzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDcuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgNy41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA4LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDguNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjI8L3RkPgoJCQk8dGQ+V2luIDg4KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuNTwvdGQ+CgkJCTx0ZD5XaW4gODgrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgZm9yIFdpaTwvdGQ+CgkJCTx0ZD5XaWk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5Ob2tpYSBOODAwPC90ZD4KCQkJPHRkPk44MDA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5OaW50ZW5kbyBEUyBicm93c2VyPC90ZD4KCQkJPHRkPk5pbnRlbmRvIERTPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjguNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DL0E8c3VwPjE8L3N1cD48L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjE8L3RkPgoJCQk8dGQ+S0RFIDMuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuMzwvdGQ+CgkJCTx0ZD5LREUgMy4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy41PC90ZD4KCQkJPHRkPktERSAzLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDQuNTwvdGQ+CgkJCTx0ZD5NYWMgT1MgOC05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4xPC90ZD4KCQkJPHRkPk1hYyBPUyA3LjYtOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMjwvdGQ+CgkJCTx0ZD5NYWMgT1MgOC1YPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPk5ldEZyb250IDMuMTwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPk5ldEZyb250IDMuNDwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkRpbGxvIDAuODwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkxpbmtzPC90ZD4KCQkJPHRkPlRleHQgb25seTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5MeW54PC90ZD4KCQkJPHRkPlRleHQgb25seTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5JRSBNb2JpbGU8L3RkPgoJCQk8dGQ+V2luZG93cyBNb2JpbGUgNjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5QU1AgYnJvd3NlcjwvdGQ+CgkJCTx0ZD5QU1A8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVVIj4KCQkJPHRkPk90aGVyIGJyb3dzZXJzPC90ZD4KCQkJPHRkPkFsbCBvdGhlcnM8L3RkPgoJCQk8dGQ+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlU8L3RkPgoJCTwvdHI+Cgk8L3Rib2R5PgoJPHRmb290PgoJCTx0cj4KCQkJPHRoPlJlbmRlcmluZyBlbmdpbmU8L3RoPgoJCQk8dGg+QnJvd3NlcjwvdGg+CgkJCTx0aD5QbGF0Zm9ybShzKTwvdGg+CgkJCTx0aD5FbmdpbmUgdmVyc2lvbjwvdGg+CgkJCTx0aD5DU1MgZ3JhZGU8L3RoPgoJCTwvdHI+Cgk8L3Rmb290Pgo8L3RhYmxlPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0ic3BhY2VyIj48L2Rpdj4KCQkJCgkJCQoJCQk8ZGl2IGlkPSJmb290ZXIiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjsiPgoJCQkJPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMHB4OyI+CgkJCQkJRGF0YVRhYmxlcyAmY29weTsgQWxsYW4gSmFyZGluZSAyMDA4LTIwMDkuCgkJCQk8L3NwYW4+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/performance/large.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKICAvKiBNeVNRTCBjb25uZWN0aW9uICovCglpbmNsdWRlKCAkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddLiIvZGF0YXRhYmxlcy9teXNxbC5waHAiICk7IC8qIDstKSAqLwoJCgkkZ2FTcWxbJ2xpbmsnXSA9ICBteXNxbF9wY29ubmVjdCggJGdhU3FsWydzZXJ2ZXInXSwgJGdhU3FsWyd1c2VyJ10sICRnYVNxbFsncGFzc3dvcmQnXSAgKSBvcgoJCWRpZSggJ0NvdWxkIG5vdCBvcGVuIGNvbm5lY3Rpb24gdG8gc2VydmVyJyApOwoJCglteXNxbF9zZWxlY3RfZGIoICRnYVNxbFsnZGInXSwgJGdhU3FsWydsaW5rJ10gKSBvciAKCQlkaWUoICdDb3VsZCBub3Qgc2VsZWN0IGRhdGFiYXNlICcuICRnYVNxbFsnZGInXSApOwoKPz48IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9zdHJpY3QuZHRkIj4KPGh0bWw+Cgk8aGVhZD4KCQk8bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LXR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIgLz4KCQk8bGluayByZWw9InNob3J0Y3V0IGljb24iIHR5cGU9ImltYWdlL2ljbyIgaHJlZj0iaHR0cDovL3d3dy5kYXRhdGFibGVzLm5ldC9mYXZpY29uLmljbyIgLz4KCQkKCQk8dGl0bGU+RGF0YVRhYmxlcyBleGFtcGxlPC90aXRsZT4KCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJjdXJyZW50U3R5bGUiPgoJCQlAaW1wb3J0ICIuLi8uLi9jc3MvZGVtb19wYWdlLmNzcyI7CgkJCUBpbXBvcnQgIi4uLy4uL2Nzcy9kZW1vX3RhYmxlLmNzcyI7CgkJPC9zdHlsZT4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vLi4vanMvanF1ZXJ5LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vLi4vanMvanF1ZXJ5LmRhdGFUYWJsZXMuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CgkJCSQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgewoJCQkJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7CgkJCQl2YXIgaVN0YXJ0ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7CgkJCQkKCQkJCS8vaWYgKCB0eXBlb2YgY29uc29sZSAhPSAndW5kZWZpbmVkJyApIHsKCQkJCS8vCWNvbnNvbGUucHJvZmlsZSgpOwoJCQkJLy99CgkJCQlmb3IgKCB2YXIgaT0wIDsgaTwxMCA7IGkrKyApCgkJCQl7CgkJCQkJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKHsiYkRlc3Ryb3kiOiB0cnVlfSk7CgkJCQl9CgkJCQkvL2lmICggdHlwZW9mIGNvbnNvbGUgIT0gJ3VuZGVmaW5lZCcgKSB7CgkJCQkvLwljb25zb2xlLnByb2ZpbGVFbmQoKTsKCQkJCS8vfQoJCQkJCgkJCQkvL29UYWJsZS5mblNvcnQoIFtbIDEsICdhc2MnIF1dICk7CgkJCQkvL29UYWJsZS5mblNvcnQoIFtbIDEsICdhc2MnIF1dICk7CgkJCQkvL29UYWJsZS5mblNvcnQoIFtbIDIsICdhc2MnIF1dICk7CgkJCQkvL29UYWJsZS5mblNvcnQoIFtbIDEsICdhc2MnIF1dICk7CgkJCQkvL29UYWJsZS5mblNvcnQoIFtbIDIsICdhc2MnIF1dICk7CgkJCQkKCQkJCXZhciBpRW5kID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7CgkJCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb3V0cHV0JykuaW5uZXJIVE1MID0gIlRlc3QgdG9vayAiKyhpRW5kLWlTdGFydCkrIiBtUyI7CgkJCX0gKTsKCQk8L3NjcmlwdD4KCTwvaGVhZD4KCTxib2R5IGlkPSJkdF9leGFtcGxlIj4KCQk8ZGl2IGlkPSJjb250YWluZXIiPgoJCQk8ZGl2IGNsYXNzPSJmdWxsX3dpZHRoIGJpZyI+CgkJCQk8aT5EYXRhVGFibGVzPC9pPiBwZXJmb3JtYW5jZSB0ZXN0IC0gZHJhdwoJCQk8L2Rpdj4KCQkJPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KCgkJCTxkaXYgaWQ9ImRlbW8iPgo8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIGNsYXNzPSJkaXNwbGF5IiBpZD0iZXhhbXBsZSI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGg+aWQ8L3RoPgoJCQk8dGg+bmFtZTwvdGg+CgkJCTx0aD5waG9uZTwvdGg+CgkJCTx0aD5lbWFpbDwvdGg+CgkJCTx0aD5jaXR5PC90aD4KCQkJPHRoPnppcDwvdGg+CgkJCTx0aD5zdGF0ZTwvdGg+CgkJCTx0aD5jb3VudHJ5PC90aD4KCQkJPHRoPnppcDI8L3RoPgoJCTwvdHI+Cgk8L3RoZWFkPgoJPHRib2R5Pgo8P3BocAoJJHNRdWVyeSA9ICIKCQlTRUxFQ1QgKgoJCUZST00gICB0ZXN0RGF0YQoJCUxJTUlUICAyMDAwCgkiOwoJJHJSZXN1bHQgPSBteXNxbF9xdWVyeSggJHNRdWVyeSwgJGdhU3FsWydsaW5rJ10gKSBvciBkaWUobXlzcWxfZXJyb3IoKSk7Cgl3aGlsZSAoICRhUm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoICRyUmVzdWx0ICkgKQoJewoJCWVjaG8gJzx0cj4nOwoJCWVjaG8gJzx0ZD48YSBocmVmPSIxIj4nLiRhUm93WydpZCddLic8L2E+PC90ZD4nOwoJCWVjaG8gJzx0ZD4nLiRhUm93WyduYW1lJ10uJzwvdGQ+JzsKCQllY2hvICc8dGQ+Jy4kYVJvd1sncGhvbmUnXS4nPC90ZD4nOwoJCWVjaG8gJzx0ZD4nLiRhUm93WydlbWFpbCddLic8L3RkPic7CgkJZWNobyAnPHRkPicuJGFSb3dbJ2NpdHknXS4nPC90ZD4nOwoJCWVjaG8gJzx0ZD4nLiRhUm93Wyd6aXAnXS4nPC90ZD4nOwoJCWVjaG8gJzx0ZD4nLiRhUm93WydzdGF0ZSddLic8L3RkPic7CgkJZWNobyAnPHRkPicuJGFSb3dbJ2NvdW50cnknXS4nPC90ZD4nOwoJCWVjaG8gJzx0ZD4nLiRhUm93Wyd6aXAyJ10uJzwvdGQ+JzsKCQllY2hvICc8L3RyPic7Cgl9Cj8+Cgk8L3Rib2R5Pgo8L3RhYmxlPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0ic3BhY2VyIj48L2Rpdj4KCQkJCgkJCTxkaXYgaWQ9ImZvb3RlciIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyOyI+CgkJCQk8c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwcHg7Ij4KCQkJCQlEYXRhVGFibGVzICZjb3B5OyBBbGxhbiBKYXJkaW5lIDIwMDgtMjAwOS4KCQkJCTwvc3Bhbj4KCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2JvZHk+CjwvaHRtbD4=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/performance/page.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+CgkJPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiB0eXBlPSJpbWFnZS9pY28iIGhyZWY9Imh0dHA6Ly93d3cuZGF0YXRhYmxlcy5uZXQvZmF2aWNvbi5pY28iIC8+CgkJCgkJPHRpdGxlPkRhdGFUYWJsZXMgZXhhbXBsZTwvdGl0bGU+CgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iY3VycmVudFN0eWxlIj4KCQkJQGltcG9ydCAiLi4vLi4vY3NzL2RlbW9fcGFnZS5jc3MiOwoJCQlAaW1wb3J0ICIuLi8uLi9jc3MvZGVtb190YWJsZS5jc3MiOwoJCTwvc3R5bGU+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGxhbmd1YWdlPSJqYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGxhbmd1YWdlPSJqYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2pzL2pxdWVyeS5kYXRhVGFibGVzLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgoJCQkkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKCQkJCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJCQkJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJCQl2YXIgaVN0YXJ0ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7CgkJCQkKCQkJCS8vZm9yICggdmFyIGk9MCwgaUxlbj0xMDAgOyBpPGlMZW4gOyBpKysgKQoJCQkJLy97CgkJCQljb25zb2xlLnByb2ZpbGUoICk7CgkJCQkJb1RhYmxlLmZuUGFnZUNoYW5nZSggIm5leHQiICk7CgkJCQkJb1RhYmxlLmZuUGFnZUNoYW5nZSggInByZXZpb3VzIiApOwoJCQkJY29uc29sZS5wcm9maWxlRW5kKCApOwoJCQkJLy99CgkJCQkKCQkJCXZhciBpRW5kID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7CgkJCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb3V0cHV0JykuaW5uZXJIVE1MID0gIlRlc3QgdG9vayAiKyhpRW5kLWlTdGFydCkrIm1TIjsKCQkJfSApOwoJCTwvc2NyaXB0PgoJPC9oZWFkPgoJPGJvZHkgaWQ9ImR0X2V4YW1wbGUiPgoJCTxkaXYgaWQ9ImNvbnRhaW5lciI+CgkJCTxkaXYgY2xhc3M9ImZ1bGxfd2lkdGggYmlnIj4KCQkJCTxpPkRhdGFUYWJsZXM8L2k+IHBlcmZvcm1hbmNlIHRlc3QgLSBkcmF3CgkJCTwvZGl2PgoJCQk8ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgoJCQkKCQkJPGRpdiBpZD0iZGVtbyI+Cjx0YWJsZSBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIGJvcmRlcj0iMCIgY2xhc3M9ImRpc3BsYXkiIGlkPSJleGFtcGxlIj4KCTx0aGVhZD4KCQk8dHI+CgkJCTx0aD5SZW5kZXJpbmcgZW5naW5lPC90aD4KCQkJPHRoPkJyb3dzZXI8L3RoPgoJCQk8dGg+UGxhdGZvcm0ocyk8L3RoPgoJCQk8dGg+RW5naW5lIHZlcnNpb248L3RoPgoJCQk8dGg+Q1NTIGdyYWRlPC90aD4KCQk8L3RyPgoJPC90aGVhZD4KCTx0Ym9keT4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNC4wPC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA1LjA8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDUuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA2PC90ZD4KCQkJPHRkPldpbiA5OCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNzwvdGQ+CgkJCTx0ZD5XaW4gWFAgU1AyKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5BT0wgYnJvd3NlciAoQU9MIGRlc2t0b3ApPC90ZD4KCQkJPHRkPldpbiBYUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjA8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDEuNTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMi4wPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAzLjA8L3RkPgoJCQk8dGQ+V2luIDJrKyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5DYW1pbm8gMS4wPC90ZD4KCQkJPHRkPk9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5DYW1pbm8gMS41PC90ZD4KCQkJPHRkPk9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSA3LjI8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE1hYyBPUyA4LjYtOS4yPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIEJyb3dzZXIgODwvdGQ+CgkJCTx0ZD5XaW4gOThTRSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgTmF2aWdhdG9yIDk8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4yPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4yPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjM8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjY8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNzwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS44PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+U2VhbW9ua2V5IDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkVwaXBoYW55IDIuMjA8L3RkPgoJCQk8dGQ+R25vbWU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjI8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTI1LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDEuMzwvdGQ+CgkJCTx0ZD5PU1guMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zMTIuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMi4wPC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTkuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMy4wPC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41MjIuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5PbW5pV2ViIDUuNTwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPmlQb2QgVG91Y2ggLyBpUGhvbmU8L3RkPgoJCQk8dGQ+aVBvZDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MjAuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TNjA8L3RkPgoJCQk8dGQ+UzYwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQxMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA3LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDcuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOC4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA4LjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS4yPC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjU8L3RkPgoJCQk8dGQ+V2luIDg4KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIGZvciBXaWk8L3RkPgoJCQk8dGQ+V2lpPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+Tm9raWEgTjgwMDwvdGQ+CgkJCTx0ZD5OODAwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+TmludGVuZG8gRFMgYnJvd3NlcjwvdGQ+CgkJCTx0ZD5OaW50ZW5kbyBEUzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj44LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+Qy9BPHN1cD4xPC9zdXA+PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy4xPC90ZD4KCQkJPHRkPktERSAzLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjM8L3RkPgoJCQk8dGQ+S0RFIDMuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuNTwvdGQ+CgkJCTx0ZD5LREUgMy41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA0LjU8L3RkPgoJCQk8dGQ+TWFjIE9TIDgtOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMTwvdGQ+CgkJCTx0ZD5NYWMgT1MgNy42LTk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjI8L3RkPgoJCQk8dGQ+TWFjIE9TIDgtWDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5OZXRGcm9udCAzLjE8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5OZXRGcm9udCAzLjQ8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5EaWxsbyAwLjg8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5MaW5rczwvdGQ+CgkJCTx0ZD5UZXh0IG9ubHk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+THlueDwvdGQ+CgkJCTx0ZD5UZXh0IG9ubHk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+SUUgTW9iaWxlPC90ZD4KCQkJPHRkPldpbmRvd3MgTW9iaWxlIDY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+UFNQIGJyb3dzZXI8L3RkPgoJCQk8dGQ+UFNQPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlVSI+CgkJCTx0ZD5PdGhlciBicm93c2VyczwvdGQ+CgkJCTx0ZD5BbGwgb3RoZXJzPC90ZD4KCQkJPHRkPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5VPC90ZD4KCQk8L3RyPgoJPC90Ym9keT4KCTx0Zm9vdD4KCQk8dHI+CgkJCTx0aD5SZW5kZXJpbmcgZW5naW5lPC90aD4KCQkJPHRoPkJyb3dzZXI8L3RoPgoJCQk8dGg+UGxhdGZvcm0ocyk8L3RoPgoJCQk8dGg+RW5naW5lIHZlcnNpb248L3RoPgoJCQk8dGg+Q1NTIGdyYWRlPC90aD4KCQk8L3RyPgoJPC90Zm9vdD4KPC90YWJsZT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CgkJCQoJCQkKCQkJPGRpdiBpZD0iZm9vdGVyIiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7Ij4KCQkJCTxzcGFuIHN0eWxlPSJmb250LXNpemU6MTBweDsiPgoJCQkJCURhdGFUYWJsZXMgJmNvcHk7IEFsbGFuIEphcmRpbmUgMjAwOC0yMDA5LgoJCQkJPC9zcGFuPgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/performance/sort.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+CgkJPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiB0eXBlPSJpbWFnZS9pY28iIGhyZWY9Imh0dHA6Ly93d3cuZGF0YXRhYmxlcy5uZXQvZmF2aWNvbi5pY28iIC8+CgkJCgkJPHRpdGxlPkRhdGFUYWJsZXMgZXhhbXBsZTwvdGl0bGU+CgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iY3VycmVudFN0eWxlIj4KCQkJQGltcG9ydCAiLi4vLi4vY3NzL2RlbW9fcGFnZS5jc3MiOwoJCQlAaW1wb3J0ICIuLi8uLi9jc3MvZGVtb190YWJsZS5jc3MiOwoJCTwvc3R5bGU+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGxhbmd1YWdlPSJqYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2pzL2pxdWVyeS5qcyI+PC9zY3JpcHQ+CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGxhbmd1YWdlPSJqYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2pzL2pxdWVyeS5kYXRhVGFibGVzLmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgoJCQkkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKCQkJCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJCQkJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJCQl2YXIgaVN0YXJ0ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7CgkJCQkKCQkJCWZvciAoIHZhciBpPTAsIGlMZW49MTAwIDsgaTxpTGVuIDsgaSsrICkKCQkJCXsKCQkJCWNvbnNvbGUucHJvZmlsZSggKTsKCQkJCQlvVGFibGUuZm5Tb3J0KCBbWzEsICdhc2MnXV0gKTsKCQkJCQlvVGFibGUuZm5Tb3J0KCBbWzAsICdhc2MnXV0gKTsKCQkJCWNvbnNvbGUucHJvZmlsZUVuZCggKTsKCQkJCX0KCQkJCQoJCQkJdmFyIGlFbmQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKCQkJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdXRwdXQnKS5pbm5lckhUTUwgPSAiVGVzdCB0b29rICIrKGlFbmQtaVN0YXJ0KSsibVMiOwoJCQl9ICk7CgkJPC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keSBpZD0iZHRfZXhhbXBsZSI+CgkJPGRpdiBpZD0iY29udGFpbmVyIj4KCQkJPGRpdiBjbGFzcz0iZnVsbF93aWR0aCBiaWciPgoJCQkJPGk+RGF0YVRhYmxlczwvaT4gcGVyZm9ybWFuY2UgdGVzdCAtIGRyYXcKCQkJPC9kaXY+CgkJCTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+CgkJCQoJCQk8ZGl2IGlkPSJkZW1vIj4KPHRhYmxlIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgYm9yZGVyPSIwIiBjbGFzcz0iZGlzcGxheSIgaWQ9ImV4YW1wbGUiPgoJPHRoZWFkPgoJCTx0cj4KCQkJPHRoPlJlbmRlcmluZyBlbmdpbmU8L3RoPgoJCQk8dGg+QnJvd3NlcjwvdGg+CgkJCTx0aD5QbGF0Zm9ybShzKTwvdGg+CgkJCTx0aD5FbmdpbmUgdmVyc2lvbjwvdGg+CgkJCTx0aD5DU1MgZ3JhZGU8L3RoPgoJCTwvdHI+Cgk8L3RoZWFkPgoJPHRib2R5PgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA0LjA8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDUuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNS41PC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDY8L3RkPgoJCQk8dGQ+V2luIDk4KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA3PC90ZD4KCQkJPHRkPldpbiBYUCBTUDIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkFPTCBicm93c2VyIChBT0wgZGVza3RvcCk8L3RkPgoJCQk8dGQ+V2luIFhQPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMS41PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAyLjA8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDMuMDwvdGQ+CgkJCTx0ZD5XaW4gMmsrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkNhbWlubyAxLjA8L3RkPgoJCQk8dGQ+T1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkNhbWlubyAxLjU8L3RkPgoJCQk8dGQ+T1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIDcuMjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gTWFjIE9TIDguNi05LjI8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgQnJvd3NlciA4PC90ZD4KCQkJPHRkPldpbiA5OFNFKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSBOYXZpZ2F0b3IgOTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4xPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjI8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjI8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMzwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS40PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS40PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS43PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjg8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5TZWFtb25rZXkgMS4xPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RXBpcGhhbnkgMi4yMDwvdGQ+CgkJCTx0ZD5Hbm9tZTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDEuMjwvdGQ+CgkJCTx0ZD5PU1guMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xMjUuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMS4zPC90ZD4KCQkJPHRkPk9TWC4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMxMi44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAyLjA8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQxOS4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAzLjA8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUyMi4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPk9tbmlXZWIgNS41PC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MjA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+aVBvZCBUb3VjaCAvIGlQaG9uZTwvdGQ+CgkJCTx0ZD5pUG9kPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQyMC4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlM2MDwvdGQ+CgkJCTx0ZD5TNjA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDEzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDcuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgNy41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA4LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDguNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjI8L3RkPgoJCQk8dGQ+V2luIDg4KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuNTwvdGQ+CgkJCTx0ZD5XaW4gODgrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgZm9yIFdpaTwvdGQ+CgkJCTx0ZD5XaWk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5Ob2tpYSBOODAwPC90ZD4KCQkJPHRkPk44MDA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5OaW50ZW5kbyBEUyBicm93c2VyPC90ZD4KCQkJPHRkPk5pbnRlbmRvIERTPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjguNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DL0E8c3VwPjE8L3N1cD48L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjE8L3RkPgoJCQk8dGQ+S0RFIDMuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuMzwvdGQ+CgkJCTx0ZD5LREUgMy4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy41PC90ZD4KCQkJPHRkPktERSAzLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDQuNTwvdGQ+CgkJCTx0ZD5NYWMgT1MgOC05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4xPC90ZD4KCQkJPHRkPk1hYyBPUyA3LjYtOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMjwvdGQ+CgkJCTx0ZD5NYWMgT1MgOC1YPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPk5ldEZyb250IDMuMTwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPk5ldEZyb250IDMuNDwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkRpbGxvIDAuODwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkxpbmtzPC90ZD4KCQkJPHRkPlRleHQgb25seTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5MeW54PC90ZD4KCQkJPHRkPlRleHQgb25seTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5JRSBNb2JpbGU8L3RkPgoJCQk8dGQ+V2luZG93cyBNb2JpbGUgNjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5QU1AgYnJvd3NlcjwvdGQ+CgkJCTx0ZD5QU1A8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVVIj4KCQkJPHRkPk90aGVyIGJyb3dzZXJzPC90ZD4KCQkJPHRkPkFsbCBvdGhlcnM8L3RkPgoJCQk8dGQ+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlU8L3RkPgoJCTwvdHI+Cgk8L3Rib2R5PgoJPHRmb290PgoJCTx0cj4KCQkJPHRoPlJlbmRlcmluZyBlbmdpbmU8L3RoPgoJCQk8dGg+QnJvd3NlcjwvdGg+CgkJCTx0aD5QbGF0Zm9ybShzKTwvdGg+CgkJCTx0aD5FbmdpbmUgdmVyc2lvbjwvdGg+CgkJCTx0aD5DU1MgZ3JhZGU8L3RoPgoJCTwvdHI+Cgk8L3Rmb290Pgo8L3RhYmxlPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0ic3BhY2VyIj48L2Rpdj4KCQkJCgkJCQoJCQk8ZGl2IGlkPSJmb290ZXIiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjsiPgoJCQkJPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMHB4OyI+CgkJCQkJRGF0YVRhYmxlcyAmY29weTsgQWxsYW4gSmFyZGluZSAyMDA4LTIwMDkuCgkJCQk8L3NwYW4+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/templates/-complex_header.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCWhlYWRlciggJ0V4cGlyZXM6IFNhdCwgMjYgSnVsIDE5OTcgMDU6MDA6MDAgR01UJyApOyAKCWhlYWRlciggJ0xhc3QtTW9kaWZpZWQ6ICcgLiBnbWRhdGUoICdELCBkIE0gWSBIOmk6cycgKSAuICcgR01UJyApOyAKCWhlYWRlciggJ0NhY2hlLUNvbnRyb2w6IG5vLXN0b3JlLCBuby1jYWNoZSwgbXVzdC1yZXZhbGlkYXRlJyApOyAKCWhlYWRlciggJ0NhY2hlLUNvbnRyb2w6IHBvc3QtY2hlY2s9MCwgcHJlLWNoZWNrPTAnLCBmYWxzZSApOyAKCWhlYWRlciggJ1ByYWdtYTogbm8tY2FjaGUnICk7IAo/PjwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiPgo8aHRtbD4KCTxoZWFkPgoJCTxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iIC8+CgkJCgkJPHRpdGxlPkRhdGFUYWJsZXMgdW5pdCB0ZXN0aW5nPC90aXRsZT4KCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJjdXJyZW50U3R5bGUiPgoJCQlAaW1wb3J0ICIuLi8uLi9jc3MvZGVtb19wYWdlLmNzcyI7CgkJCUBpbXBvcnQgIi4uLy4uL2Nzcy9kZW1vX3RhYmxlLmNzcyI7CgkJPC9zdHlsZT4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vLi4vanMvanF1ZXJ5LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vLi4vanMvanF1ZXJ5LmRhdGFUYWJsZXMuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBsYW5ndWFnZT0iamF2YXNjcmlwdCIgc3JjPSIuLi91bml0X3Rlc3QuanMiPjwvc2NyaXB0PgoJCTw/cGhwCgkJCSRhU2NyaXB0cyA9IGV4cGxvZGUoICI6IiwgJF9HRVRbJ3NjcmlwdHMnXSApOwoJCQlmb3IgKCAkaT0wIDsgJGk8Y291bnQoJGFTY3JpcHRzKSA7ICRpKysgKQoJCQl7CgkJCQllY2hvICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vJy4kYVNjcmlwdHNbJGldLic/cmFuZD0nLnJhbmQoKS4nIj48L3NjcmlwdD4nLiJcbiI7CgkJCX0KCQk/PgoJPC9oZWFkPgoJPGJvZHkgaWQ9ImR0X2V4YW1wbGUiPgoJCTxkaXYgaWQ9ImNvbnRhaW5lciI+CgkJCTxkaXYgY2xhc3M9ImZ1bGxfd2lkdGggYmlnIj4KCQkJCTxpPkRhdGFUYWJsZXM8L2k+IHVuaXQgdGVzdCB0ZW1wbGF0ZSBmb3IgcmVhZGluZyBET00gZGF0YQoJCQk8L2Rpdj4KCQkJCgkJCTxkaXYgaWQ9ImRlbW8iPgo8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIGNsYXNzPSJkaXNwbGF5IiBpZD0iZXhhbXBsZSI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGggcm93c3Bhbj0iMiIgY2xhc3M9ImJsIGJ0Ij5SZW5kZXJpbmcgZW5naW5lPC90aD4KCQkJPHRoIGNvbHNwYW49IjMiIGNsYXNzPSJibCBiciBidCI+QnJvd3NlciBkZXRhaWxzPC90aD4KCQkJPHRoIGNsYXNzPSJiciBidCI+Q1NTIGdyYWRlPC90aD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRoIGNsYXNzPSJibCI+QnJvd3NlcjwvdGg+CgkJCTx0aD5QbGF0Zm9ybShzKTwvdGg+CgkJCTx0aCBjbGFzcz0iYnIiPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoIGNsYXNzPSJiciBidCI+Q1NTIGdyYWRlPC90aD4KCQk8L3RyPgoJPC90aGVhZD4KCTx0Ym9keT4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNC4wPC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA1LjA8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDUuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA2PC90ZD4KCQkJPHRkPldpbiA5OCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNzwvdGQ+CgkJCTx0ZD5XaW4gWFAgU1AyKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5BT0wgYnJvd3NlciAoQU9MIGRlc2t0b3ApPC90ZD4KCQkJPHRkPldpbiBYUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjA8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDEuNTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMi4wPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAzLjA8L3RkPgoJCQk8dGQ+V2luIDJrKyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5DYW1pbm8gMS4wPC90ZD4KCQkJPHRkPk9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5DYW1pbm8gMS41PC90ZD4KCQkJPHRkPk9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSA3LjI8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE1hYyBPUyA4LjYtOS4yPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIEJyb3dzZXIgODwvdGQ+CgkJCTx0ZD5XaW4gOThTRSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgTmF2aWdhdG9yIDk8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4yPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4yPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjM8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjY8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNzwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS44PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+U2VhbW9ua2V5IDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkVwaXBoYW55IDIuMjA8L3RkPgoJCQk8dGQ+R25vbWU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjI8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTI1LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDEuMzwvdGQ+CgkJCTx0ZD5PU1guMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zMTIuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMi4wPC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTkuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMy4wPC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41MjIuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5PbW5pV2ViIDUuNTwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPmlQb2QgVG91Y2ggLyBpUGhvbmU8L3RkPgoJCQk8dGQ+aVBvZDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MjAuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TNjA8L3RkPgoJCQk8dGQ+UzYwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQxMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA3LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDcuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOC4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA4LjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS4yPC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjU8L3RkPgoJCQk8dGQ+V2luIDg4KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIGZvciBXaWk8L3RkPgoJCQk8dGQ+V2lpPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+Tm9raWEgTjgwMDwvdGQ+CgkJCTx0ZD5OODAwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+TmludGVuZG8gRFMgYnJvd3NlcjwvdGQ+CgkJCTx0ZD5OaW50ZW5kbyBEUzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj44LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+Qy9BPHN1cD4xPC9zdXA+PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy4xPC90ZD4KCQkJPHRkPktERSAzLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjM8L3RkPgoJCQk8dGQ+S0RFIDMuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuNTwvdGQ+CgkJCTx0ZD5LREUgMy41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA0LjU8L3RkPgoJCQk8dGQ+TWFjIE9TIDgtOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMTwvdGQ+CgkJCTx0ZD5NYWMgT1MgNy42LTk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjI8L3RkPgoJCQk8dGQ+TWFjIE9TIDgtWDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5OZXRGcm9udCAzLjE8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5OZXRGcm9udCAzLjQ8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5EaWxsbyAwLjg8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5MaW5rczwvdGQ+CgkJCTx0ZD5UZXh0IG9ubHk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+THlueDwvdGQ+CgkJCTx0ZD5UZXh0IG9ubHk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+SUUgTW9iaWxlPC90ZD4KCQkJPHRkPldpbmRvd3MgTW9iaWxlIDY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+UFNQIGJyb3dzZXI8L3RkPgoJCQk8dGQ+UFNQPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlVSI+CgkJCTx0ZD5PdGhlciBicm93c2VyczwvdGQ+CgkJCTx0ZD5BbGwgb3RoZXJzPC90ZD4KCQkJPHRkPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5VPC90ZD4KCQk8L3RyPgoJPC90Ym9keT4KCTx0Zm9vdD4KCQk8dHI+CgkJCTx0aD5SZW5kZXJpbmcgZW5naW5lPC90aD4KCQkJPHRoPkJyb3dzZXI8L3RoPgoJCQk8dGg+UGxhdGZvcm0ocyk8L3RoPgoJCQk8dGg+RW5naW5lIHZlcnNpb248L3RoPgoJCQk8dGg+Q1NTIGdyYWRlPC90aD4KCQk8L3RyPgoJPC90Zm9vdD4KPC90YWJsZT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CgkJPC9kaXY+Cgk8L2JvZHk+CjwvaHRtbD4=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/templates/2512.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCWhlYWRlciggJ0V4cGlyZXM6IFNhdCwgMjYgSnVsIDE5OTcgMDU6MDA6MDAgR01UJyApOyAKCWhlYWRlciggJ0xhc3QtTW9kaWZpZWQ6ICcgLiBnbWRhdGUoICdELCBkIE0gWSBIOmk6cycgKSAuICcgR01UJyApOyAKCWhlYWRlciggJ0NhY2hlLUNvbnRyb2w6IG5vLXN0b3JlLCBuby1jYWNoZSwgbXVzdC1yZXZhbGlkYXRlJyApOyAKCWhlYWRlciggJ0NhY2hlLUNvbnRyb2w6IHBvc3QtY2hlY2s9MCwgcHJlLWNoZWNrPTAnLCBmYWxzZSApOyAKCWhlYWRlciggJ1ByYWdtYTogbm8tY2FjaGUnICk7IAo/PjwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiPgo8aHRtbD4KCTxoZWFkPgoJCTxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iIC8+CgkJCgkJPHRpdGxlPkRhdGFUYWJsZXMgdW5pdCB0ZXN0aW5nPC90aXRsZT4KCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJjdXJyZW50U3R5bGUiPgoJCQlAaW1wb3J0ICIuLi8uLi9jc3MvZGVtb19wYWdlLmNzcyI7CgkJCUBpbXBvcnQgIi4uLy4uL2Nzcy9kZW1vX3RhYmxlLmNzcyI7CgkJPC9zdHlsZT4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vLi4vanMvanF1ZXJ5LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vLi4vanMvanF1ZXJ5LmRhdGFUYWJsZXMuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBsYW5ndWFnZT0iamF2YXNjcmlwdCIgc3JjPSIuLi91bml0X3Rlc3QuanMiPjwvc2NyaXB0PgoJCTw/cGhwCgkJCSRhU2NyaXB0cyA9IGV4cGxvZGUoICI6IiwgJF9HRVRbJ3NjcmlwdHMnXSApOwoJCQlmb3IgKCAkaT0wIDsgJGk8Y291bnQoJGFTY3JpcHRzKSA7ICRpKysgKQoJCQl7CgkJCQllY2hvICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vJy4kYVNjcmlwdHNbJGldLic/cmFuZD0nLnJhbmQoKS4nIj48L3NjcmlwdD4nLiJcbiI7CgkJCX0KCQk/PgoJPC9oZWFkPgoJPGJvZHkgaWQ9ImR0X2V4YW1wbGUiPgoJCTxkaXYgaWQ9ImNvbnRhaW5lciI+CgkJCTxkaXYgY2xhc3M9ImZ1bGxfd2lkdGggYmlnIj4KCQkJCTxpPkRhdGFUYWJsZXM8L2k+IHVuaXQgdGVzdCB0ZW1wbGF0ZSBmb3IgcmVhZGluZyBET00gZGF0YQoJCQk8L2Rpdj4KCQkJCgkJCTxkaXYgaWQ9ImRlbW8iPgo8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIGNsYXNzPSJkaXNwbGF5IiBpZD0iZXhhbXBsZSI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGJvZHk+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD50ZXN0c2VhcmNoc3RyaW5nIDxicj5odG1sICZhbXA7IGVudGl0eTwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNS4wPC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA1LjU8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNjwvdGQ+CgkJCTx0ZD5XaW4gOTgrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDc8L3RkPgoJCQk8dGQ+V2luIFhQIFNQMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+QU9MIGJyb3dzZXIgKEFPTCBkZXNrdG9wKTwvdGQ+CgkJCTx0ZD5XaW4gWFA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMS4wPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjU8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDIuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMy4wPC90ZD4KCQkJPHRkPldpbiAyaysgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS45PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuMDwvdGQ+CgkJCTx0ZD5PU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuNTwvdGQ+CgkJCTx0ZD5PU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgNy4yPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBNYWMgT1MgOC42LTkuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSBCcm93c2VyIDg8L3RkPgoJCQk8dGQ+V2luIDk4U0UrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIE5hdmlnYXRvciA5PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjE8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4zPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjQ8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS42PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjc8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuODwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPlNlYW1vbmtleSAxLjE8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5FcGlwaGFueSAyLjIwPC90ZD4KCQkJPHRkPkdub21lPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMS4yPC90ZD4KCQkJPHRkPk9TWC4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEyNS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjM8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MzEyLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDIuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDE5LjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDMuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTIyLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+T21uaVdlYiA1LjU8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQyMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5pUG9kIFRvdWNoIC8gaVBob25lPC90ZD4KCQkJPHRkPmlQb2Q8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+UzYwPC90ZD4KCQkJPHRkPlM2MDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgNy4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA3LjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDguMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOC41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuMjwvdGQ+CgkJCTx0ZD5XaW4gODgrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS41PC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSBmb3IgV2lpPC90ZD4KCQkJPHRkPldpaTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5va2lhIE44MDA8L3RkPgoJCQk8dGQ+TjgwMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5pbnRlbmRvIERTIGJyb3dzZXI8L3RkPgoJCQk8dGQ+TmludGVuZG8gRFM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+OC41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkMvQTxzdXA+MTwvc3VwPjwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuMTwvdGQ+CgkJCTx0ZD5LREUgMy4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy4zPC90ZD4KCQkJPHRkPktERSAzLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjU8L3RkPgoJCQk8dGQ+S0RFIDMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNC41PC90ZD4KCQkJPHRkPk1hYyBPUyA4LTk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjE8L3RkPgoJCQk8dGQ+TWFjIE9TIDcuNi05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4yPC90ZD4KCQkJPHRkPk1hYyBPUyA4LVg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy4xPC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy40PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+RGlsbG8gMC44PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TGlua3M8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkx5bng8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPklFIE1vYmlsZTwvdGQ+CgkJCTx0ZD5XaW5kb3dzIE1vYmlsZSA2PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPlBTUCBicm93c2VyPC90ZD4KCQkJPHRkPlBTUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVUiPgoJCQk8dGQ+T3RoZXIgYnJvd3NlcnM8L3RkPgoJCQk8dGQ+QWxsIG90aGVyczwvdGQ+CgkJCTx0ZD4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+VTwvdGQ+CgkJPC90cj4KCTwvdGJvZHk+Cgk8dGZvb3Q+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGZvb3Q+CjwvdGFibGU+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/templates/6776.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCWhlYWRlciggJ0V4cGlyZXM6IFNhdCwgMjYgSnVsIDE5OTcgMDU6MDA6MDAgR01UJyApOyAKCWhlYWRlciggJ0xhc3QtTW9kaWZpZWQ6ICcgLiBnbWRhdGUoICdELCBkIE0gWSBIOmk6cycgKSAuICcgR01UJyApOyAKCWhlYWRlciggJ0NhY2hlLUNvbnRyb2w6IG5vLXN0b3JlLCBuby1jYWNoZSwgbXVzdC1yZXZhbGlkYXRlJyApOyAKCWhlYWRlciggJ0NhY2hlLUNvbnRyb2w6IHBvc3QtY2hlY2s9MCwgcHJlLWNoZWNrPTAnLCBmYWxzZSApOyAKCWhlYWRlciggJ1ByYWdtYTogbm8tY2FjaGUnICk7IAo/PjwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiPgo8aHRtbD4KCTxoZWFkPgoJCTxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iIC8+CgkJCgkJPHRpdGxlPkRhdGFUYWJsZXMgdW5pdCB0ZXN0aW5nPC90aXRsZT4KCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJjdXJyZW50U3R5bGUiPgoJCQlAaW1wb3J0ICIuLi8uLi9jc3MvZGVtb19wYWdlLmNzcyI7CgkJCUBpbXBvcnQgIi4uLy4uL2Nzcy9kZW1vX3RhYmxlLmNzcyI7CgkJPC9zdHlsZT4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vLi4vanMvanF1ZXJ5LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vLi4vanMvanF1ZXJ5LmRhdGFUYWJsZXMuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBsYW5ndWFnZT0iamF2YXNjcmlwdCIgc3JjPSIuLi91bml0X3Rlc3QuanMiPjwvc2NyaXB0PgoJCTw/cGhwCgkJCSRhU2NyaXB0cyA9IGV4cGxvZGUoICI6IiwgJF9HRVRbJ3NjcmlwdHMnXSApOwoJCQlmb3IgKCAkaT0wIDsgJGk8Y291bnQoJGFTY3JpcHRzKSA7ICRpKysgKQoJCQl7CgkJCQllY2hvICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vJy4kYVNjcmlwdHNbJGldLic/cmFuZD0nLnJhbmQoKS4nIj48L3NjcmlwdD4nLiJcbiI7CgkJCX0KCQk/PgoJPC9oZWFkPgogIDxib2R5IGlkPSJkdF9leGFtcGxlIj4KICAgIDxkaXYgaWQ9ImNvbnRhaW5lciI+CiAgICA8ZGl2IGlkPSJkZW1vIj4KICAgICAgPGgxPkxpdmUgZXhhbXBsZTwvaDE+CiAgICAgIDx0YWJsZT4KICAgICAgICA8dGhlYWQvPgogICAgICAgIDx0Ym9keT4KICAgICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgIDx0YWJsZSBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIGJvcmRlcj0iMCIgY2xhc3M9ImRpc3BsYXkiIGlkPSJleGFtcGxlIj4KICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgIDx0aD5SZW5kZXJpbmcgZW5naW5lPC90aD4KICAgICAgICAgICAgICAgICAgICA8dGggd2lkdGg9IjI1JSI+QnJvd3NlcjwvdGg+CiAgICAgICAgICAgICAgICAgICAgPHRoPlBsYXRmb3JtKHMpPC90aD4KICAgICAgICAgICAgICAgICAgICA8dGg+RW5naW5lIHZlcnNpb248L3RoPgogICAgICAgICAgICAgICAgICAgIDx0aD5DU1MgZ3JhZGU8L3RoPgogICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJvZGQgZ3JhZGVYIj4KICAgICAgICAgICAgICAgICAgICA8dGQ+VHJpZGVudDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkPkludGVybmV0IEV4cGxvcmVyIDQuMDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkPldpbiA5NSs8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iY2VudGVyIj4gNDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgogICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9Im9kZCBncmFkZVgiPgogICAgICAgICAgICAgICAgICAgIDx0ZD5UcmlkZW50PC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNC4wPC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQ+V2luIDk1KzwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJjZW50ZXIiPiA0PC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CiAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0ib2RkIGdyYWRlWCI+CiAgICAgICAgICAgICAgICAgICAgPHRkPlRyaWRlbnQ8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZD5JbnRlcm5ldCBFeHBsb3JlciA0LjA8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZD5XaW4gOTUrPC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImNlbnRlciI+IDQ8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJvZGQgZ3JhZGVYIj4KICAgICAgICAgICAgICAgICAgICA8dGQ+VHJpZGVudDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkPkludGVybmV0IEV4cGxvcmVyIDQuMDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkPldpbiA5NSs8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iY2VudGVyIj4gNDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgogICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9Im9kZCBncmFkZVgiPgogICAgICAgICAgICAgICAgICAgIDx0ZD5UcmlkZW50PC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNC4wPC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQ+V2luIDk1KzwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJjZW50ZXIiPiA0PC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CiAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0ib2RkIGdyYWRlWCI+CiAgICAgICAgICAgICAgICAgICAgPHRkPlRyaWRlbnQ8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZD5JbnRlcm5ldCBFeHBsb3JlciA0LjA8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZD5XaW4gOTUrPC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImNlbnRlciI+IDQ8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJvZGQgZ3JhZGVYIj4KICAgICAgICAgICAgICAgICAgICA8dGQ+VHJpZGVudDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkPkludGVybmV0IEV4cGxvcmVyIDQuMDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkPldpbiA5NSs8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iY2VudGVyIj4gNDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgogICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9Im9kZCBncmFkZVgiPgogICAgICAgICAgICAgICAgICAgIDx0ZD5UcmlkZW50PC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNC4wPC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQ+V2luIDk1KzwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJjZW50ZXIiPiA0PC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CiAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICA8L3RyPgogICAgICAgIDwvdGJvZHk+CiAgICAgIDwvdGFibGU+CiAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvYm9keT4KPC9odG1sPg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/templates/complex_header_2.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCWhlYWRlciggJ0V4cGlyZXM6IFNhdCwgMjYgSnVsIDE5OTcgMDU6MDA6MDAgR01UJyApOyAKCWhlYWRlciggJ0xhc3QtTW9kaWZpZWQ6ICcgLiBnbWRhdGUoICdELCBkIE0gWSBIOmk6cycgKSAuICcgR01UJyApOyAKCWhlYWRlciggJ0NhY2hlLUNvbnRyb2w6IG5vLXN0b3JlLCBuby1jYWNoZSwgbXVzdC1yZXZhbGlkYXRlJyApOyAKCWhlYWRlciggJ0NhY2hlLUNvbnRyb2w6IHBvc3QtY2hlY2s9MCwgcHJlLWNoZWNrPTAnLCBmYWxzZSApOyAKCWhlYWRlciggJ1ByYWdtYTogbm8tY2FjaGUnICk7IAo/PjwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiPgo8aHRtbD4KCTxoZWFkPgoJCTxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iIC8+CgkJCgkJPHRpdGxlPkRhdGFUYWJsZXMgdW5pdCB0ZXN0aW5nPC90aXRsZT4KCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJjdXJyZW50U3R5bGUiPgoJCQlAaW1wb3J0ICIuLi8uLi9jc3MvZGVtb19wYWdlLmNzcyI7CgkJCUBpbXBvcnQgIi4uLy4uL2Nzcy9kZW1vX3RhYmxlLmNzcyI7CgkJPC9zdHlsZT4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vLi4vanMvanF1ZXJ5LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vLi4vanMvanF1ZXJ5LmRhdGFUYWJsZXMuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBsYW5ndWFnZT0iamF2YXNjcmlwdCIgc3JjPSIuLi91bml0X3Rlc3QuanMiPjwvc2NyaXB0PgoJCTw/cGhwCgkJCSRhU2NyaXB0cyA9IGV4cGxvZGUoICI6IiwgJF9HRVRbJ3NjcmlwdHMnXSApOwoJCQlmb3IgKCAkaT0wIDsgJGk8Y291bnQoJGFTY3JpcHRzKSA7ICRpKysgKQoJCQl7CgkJCQllY2hvICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vJy4kYVNjcmlwdHNbJGldLic/cmFuZD0nLnJhbmQoKS4nIj48L3NjcmlwdD4nLiJcbiI7CgkJCX0KCQk/PgoJPC9oZWFkPgoJPGJvZHkgaWQ9ImR0X2V4YW1wbGUiPgoJCTxkaXYgaWQ9ImNvbnRhaW5lciI+CgkJCTxkaXYgY2xhc3M9ImZ1bGxfd2lkdGggYmlnIj4KCQkJCTxpPkRhdGFUYWJsZXM8L2k+IHVuaXQgdGVzdCB0ZW1wbGF0ZSBmb3IgcmVhZGluZyBET00gZGF0YQoJCQk8L2Rpdj4KCQkJCgkJCTxkaXYgaWQ9ImRlbW8iPgo8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIGNsYXNzPSJkaXNwbGF5IiBpZD0iZXhhbXBsZSI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGggY2xhc3M9ImJsIGJ0Ij4xPC90aD4KCQkJPHRoIGNvbHNwYW49IjMiIHJvd3NwYW49IjIiIGNsYXNzPSJibCBiciBidCI+MjwvdGg+CgkJCTx0aCBjbGFzcz0iYnIgYnQiPjM8L3RoPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGggY2xhc3M9ImJsIGJyIiByb3dzcGFuPSIzIj40PC90aD4KCQkJPHRkIGNsYXNzPSJibCBiciI+NTwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0aCBjbGFzcz0iYmwgYnIiIGNvbHNwYW49IjIiPjY8L3RoPgoJCQk8dGggY2xhc3M9ImJyIiByb3dzcGFuPSIzIj43PC90aD4KCQkJPHRoIGNsYXNzPSJiciBidCIgcm93c3Bhbj0iMyI+ODwvdGg+CgkJPC90cj4KCQk8dHI+CgkJCTx0aCBjbGFzcz0iYmwgYnIiPjk8L3RoPgoJCQk8dGggY2xhc3M9ImJsIGJyIj4xMDwvdGg+CgkJPC90cj4KCQk8dHI+CgkJCTx0aCBjbGFzcz0iYmwgYnIiIGNvbHNwYW49IjIiPjExPC90aD4KCQkJPHRoIGNsYXNzPSJibCBiciI+MTI8L3RoPgoJCTwvdHI+Cgk8L3RoZWFkPgoJPHRmb290PgoJCTx0cj4KCQkJPHRoIGNsYXNzPSJibCBidCI+MTwvdGg+CgkJCTx0aCBjb2xzcGFuPSIzIiByb3dzcGFuPSIyIiBjbGFzcz0iYmwgYnIgYnQiPjI8L3RoPgoJCQk8dGggY2xhc3M9ImJyIGJ0Ij4zPC90aD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRoIGNsYXNzPSJibCBiciI+NDwvdGg+CgkJCTx0aCBjbGFzcz0iYmwgYnIiPjU8L3RoPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGggY2xhc3M9ImJsIGJyIiBjb2xzcGFuPSI1Ij42PC90aD4KCQk8L3RyPgoJPC90Zm9vdD4KCTx0Ym9keT4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNC4wPC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA1LjA8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDUuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA2PC90ZD4KCQkJPHRkPldpbiA5OCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNzwvdGQ+CgkJCTx0ZD5XaW4gWFAgU1AyKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5BT0wgYnJvd3NlciAoQU9MIGRlc2t0b3ApPC90ZD4KCQkJPHRkPldpbiBYUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjA8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDEuNTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMi4wPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAzLjA8L3RkPgoJCQk8dGQ+V2luIDJrKyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5DYW1pbm8gMS4wPC90ZD4KCQkJPHRkPk9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5DYW1pbm8gMS41PC90ZD4KCQkJPHRkPk9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSA3LjI8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE1hYyBPUyA4LjYtOS4yPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIEJyb3dzZXIgODwvdGQ+CgkJCTx0ZD5XaW4gOThTRSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgTmF2aWdhdG9yIDk8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4yPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4yPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjM8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjY8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNzwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS44PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+U2VhbW9ua2V5IDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkVwaXBoYW55IDIuMjA8L3RkPgoJCQk8dGQ+R25vbWU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjI8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTI1LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDEuMzwvdGQ+CgkJCTx0ZD5PU1guMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zMTIuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMi4wPC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTkuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMy4wPC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41MjIuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5PbW5pV2ViIDUuNTwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPmlQb2QgVG91Y2ggLyBpUGhvbmU8L3RkPgoJCQk8dGQ+aVBvZDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MjAuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TNjA8L3RkPgoJCQk8dGQ+UzYwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQxMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA3LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDcuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOC4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA4LjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS4yPC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjU8L3RkPgoJCQk8dGQ+V2luIDg4KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIGZvciBXaWk8L3RkPgoJCQk8dGQ+V2lpPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+Tm9raWEgTjgwMDwvdGQ+CgkJCTx0ZD5OODAwPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+TmludGVuZG8gRFMgYnJvd3NlcjwvdGQ+CgkJCTx0ZD5OaW50ZW5kbyBEUzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj44LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+Qy9BPHN1cD4xPC9zdXA+PC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy4xPC90ZD4KCQkJPHRkPktERSAzLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjM8L3RkPgoJCQk8dGQ+S0RFIDMuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuNTwvdGQ+CgkJCTx0ZD5LREUgMy41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA0LjU8L3RkPgoJCQk8dGQ+TWFjIE9TIDgtOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMTwvdGQ+CgkJCTx0ZD5NYWMgT1MgNy42LTk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjI8L3RkPgoJCQk8dGQ+TWFjIE9TIDgtWDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5OZXRGcm9udCAzLjE8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5OZXRGcm9udCAzLjQ8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5EaWxsbyAwLjg8L3RkPgoJCQk8dGQ+RW1iZWRkZWQgZGV2aWNlczwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5MaW5rczwvdGQ+CgkJCTx0ZD5UZXh0IG9ubHk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+THlueDwvdGQ+CgkJCTx0ZD5UZXh0IG9ubHk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+SUUgTW9iaWxlPC90ZD4KCQkJPHRkPldpbmRvd3MgTW9iaWxlIDY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+UFNQIGJyb3dzZXI8L3RkPgoJCQk8dGQ+UFNQPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlVSI+CgkJCTx0ZD5PdGhlciBicm93c2VyczwvdGQ+CgkJCTx0ZD5BbGwgb3RoZXJzPC90ZD4KCQkJPHRkPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5VPC90ZD4KCQk8L3RyPgoJPC90Ym9keT4KPC90YWJsZT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CgkJPC9kaXY+Cgk8L2JvZHk+CjwvaHRtbD4=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/templates/deferred_table.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCWhlYWRlciggJ0V4cGlyZXM6IFNhdCwgMjYgSnVsIDE5OTcgMDU6MDA6MDAgR01UJyApOyAKCWhlYWRlciggJ0xhc3QtTW9kaWZpZWQ6ICcgLiBnbWRhdGUoICdELCBkIE0gWSBIOmk6cycgKSAuICcgR01UJyApOyAKCWhlYWRlciggJ0NhY2hlLUNvbnRyb2w6IG5vLXN0b3JlLCBuby1jYWNoZSwgbXVzdC1yZXZhbGlkYXRlJyApOyAKCWhlYWRlciggJ0NhY2hlLUNvbnRyb2w6IHBvc3QtY2hlY2s9MCwgcHJlLWNoZWNrPTAnLCBmYWxzZSApOyAKCWhlYWRlciggJ1ByYWdtYTogbm8tY2FjaGUnICk7IAo/PjwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiPgo8aHRtbD4KCTxoZWFkPgoJCTxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iIC8+CgkJCgkJPHRpdGxlPkRhdGFUYWJsZXMgdW5pdCB0ZXN0aW5nPC90aXRsZT4KCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJjdXJyZW50U3R5bGUiPgoJCQlAaW1wb3J0ICIuLi8uLi9jc3MvZGVtb19wYWdlLmNzcyI7CgkJCUBpbXBvcnQgIi4uLy4uL2Nzcy9kZW1vX3RhYmxlLmNzcyI7CgkJPC9zdHlsZT4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vLi4vanMvanF1ZXJ5LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vLi4vanMvanF1ZXJ5LmRhdGFUYWJsZXMuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBsYW5ndWFnZT0iamF2YXNjcmlwdCIgc3JjPSIuLi91bml0X3Rlc3QuanMiPjwvc2NyaXB0PgoJCTw/cGhwCgkJCSRhU2NyaXB0cyA9IGV4cGxvZGUoICI6IiwgJF9HRVRbJ3NjcmlwdHMnXSApOwoJCQlmb3IgKCAkaT0wIDsgJGk8Y291bnQoJGFTY3JpcHRzKSA7ICRpKysgKQoJCQl7CgkJCQllY2hvICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vJy4kYVNjcmlwdHNbJGldLic/cmFuZD0nLnJhbmQoKS4nIj48L3NjcmlwdD4nLiJcbiI7CgkJCX0KCQk/PgoJPC9oZWFkPgoJPGJvZHkgaWQ9ImR0X2V4YW1wbGUiPgoJCTxkaXYgaWQ9ImNvbnRhaW5lciI+CgkJCTxkaXYgY2xhc3M9ImZ1bGxfd2lkdGggYmlnIj4KCQkJCTxpPkRhdGFUYWJsZXM8L2k+IHVuaXQgdGVzdCB0ZW1wbGF0ZSBmb3IgcmVhZGluZyBET00gZGF0YQoJCQk8L2Rpdj4KCQkJCgkJCTxkaXYgaWQ9ImRlbW8iPgo8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIGNsYXNzPSJkaXNwbGF5IiBpZD0iZXhhbXBsZSI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGJvZHk+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjA8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDEuNTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMi4wPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAzLjA8L3RkPgoJCQk8dGQ+V2luIDJrKyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5DYW1pbm8gMS4wPC90ZD4KCQkJPHRkPk9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5DYW1pbm8gMS41PC90ZD4KCQkJPHRkPk9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSA3LjI8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE1hYyBPUyA4LjYtOS4yPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIEJyb3dzZXIgODwvdGQ+CgkJCTx0ZD5XaW4gOThTRSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgTmF2aWdhdG9yIDk8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCTwvdGJvZHk+Cgk8dGZvb3Q+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGZvb3Q+CjwvdGFibGU+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/templates/dom_data.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCWhlYWRlciggJ0V4cGlyZXM6IFNhdCwgMjYgSnVsIDE5OTcgMDU6MDA6MDAgR01UJyApOyAKCWhlYWRlciggJ0xhc3QtTW9kaWZpZWQ6ICcgLiBnbWRhdGUoICdELCBkIE0gWSBIOmk6cycgKSAuICcgR01UJyApOyAKCWhlYWRlciggJ0NhY2hlLUNvbnRyb2w6IG5vLXN0b3JlLCBuby1jYWNoZSwgbXVzdC1yZXZhbGlkYXRlJyApOyAKCWhlYWRlciggJ0NhY2hlLUNvbnRyb2w6IHBvc3QtY2hlY2s9MCwgcHJlLWNoZWNrPTAnLCBmYWxzZSApOyAKCWhlYWRlciggJ1ByYWdtYTogbm8tY2FjaGUnICk7IAo/PjwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiPgo8aHRtbD4KCTxoZWFkPgoJCTxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iIC8+CgkJCgkJPHRpdGxlPkRhdGFUYWJsZXMgdW5pdCB0ZXN0aW5nPC90aXRsZT4KCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJjdXJyZW50U3R5bGUiPgoJCQlAaW1wb3J0ICIuLi8uLi9jc3MvZGVtb19wYWdlLmNzcyI7CgkJCUBpbXBvcnQgIi4uLy4uL2Nzcy9kZW1vX3RhYmxlLmNzcyI7CgkJPC9zdHlsZT4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vLi4vanMvanF1ZXJ5LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vLi4vanMvanF1ZXJ5LmRhdGFUYWJsZXMuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBsYW5ndWFnZT0iamF2YXNjcmlwdCIgc3JjPSIuLi91bml0X3Rlc3QuanMiPjwvc2NyaXB0PgoJCTw/cGhwCgkJCSRhU2NyaXB0cyA9IGV4cGxvZGUoICI6IiwgJF9HRVRbJ3NjcmlwdHMnXSApOwoJCQlmb3IgKCAkaT0wIDsgJGk8Y291bnQoJGFTY3JpcHRzKSA7ICRpKysgKQoJCQl7CgkJCQllY2hvICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vJy4kYVNjcmlwdHNbJGldLic/cmFuZD0nLnJhbmQoKS4nIj48L3NjcmlwdD4nLiJcbiI7CgkJCX0KCQk/PgoJPC9oZWFkPgoJPGJvZHkgaWQ9ImR0X2V4YW1wbGUiPgoJCTxkaXYgaWQ9ImNvbnRhaW5lciI+CgkJCTxkaXYgY2xhc3M9ImZ1bGxfd2lkdGggYmlnIj4KCQkJCTxpPkRhdGFUYWJsZXM8L2k+IHVuaXQgdGVzdCB0ZW1wbGF0ZSBmb3IgcmVhZGluZyBET00gZGF0YQoJCQk8L2Rpdj4KCQkJCgkJCTxkaXYgaWQ9ImRlbW8iPgo8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIGNsYXNzPSJkaXNwbGF5IiBpZD0iZXhhbXBsZSI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGJvZHk+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDQuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNS4wPC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA1LjU8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNjwvdGQ+CgkJCTx0ZD5XaW4gOTgrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDc8L3RkPgoJCQk8dGQ+V2luIFhQIFNQMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+QU9MIGJyb3dzZXIgKEFPTCBkZXNrdG9wKTwvdGQ+CgkJCTx0ZD5XaW4gWFA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMS4wPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjU8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDIuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMy4wPC90ZD4KCQkJPHRkPldpbiAyaysgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS45PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuMDwvdGQ+CgkJCTx0ZD5PU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuNTwvdGQ+CgkJCTx0ZD5PU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgNy4yPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBNYWMgT1MgOC42LTkuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSBCcm93c2VyIDg8L3RkPgoJCQk8dGQ+V2luIDk4U0UrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIE5hdmlnYXRvciA5PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjE8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4zPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjQ8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS42PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjc8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuODwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPlNlYW1vbmtleSAxLjE8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5FcGlwaGFueSAyLjIwPC90ZD4KCQkJPHRkPkdub21lPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMS4yPC90ZD4KCQkJPHRkPk9TWC4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEyNS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjM8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MzEyLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDIuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDE5LjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDMuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTIyLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+T21uaVdlYiA1LjU8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQyMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5pUG9kIFRvdWNoIC8gaVBob25lPC90ZD4KCQkJPHRkPmlQb2Q8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+UzYwPC90ZD4KCQkJPHRkPlM2MDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgNy4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA3LjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDguMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOC41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuMjwvdGQ+CgkJCTx0ZD5XaW4gODgrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS41PC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSBmb3IgV2lpPC90ZD4KCQkJPHRkPldpaTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5va2lhIE44MDA8L3RkPgoJCQk8dGQ+TjgwMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5pbnRlbmRvIERTIGJyb3dzZXI8L3RkPgoJCQk8dGQ+TmludGVuZG8gRFM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+OC41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkMvQTxzdXA+MTwvc3VwPjwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuMTwvdGQ+CgkJCTx0ZD5LREUgMy4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy4zPC90ZD4KCQkJPHRkPktERSAzLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjU8L3RkPgoJCQk8dGQ+S0RFIDMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNC41PC90ZD4KCQkJPHRkPk1hYyBPUyA4LTk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjE8L3RkPgoJCQk8dGQ+TWFjIE9TIDcuNi05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4yPC90ZD4KCQkJPHRkPk1hYyBPUyA4LVg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy4xPC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy40PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+RGlsbG8gMC44PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TGlua3M8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkx5bng8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPklFIE1vYmlsZTwvdGQ+CgkJCTx0ZD5XaW5kb3dzIE1vYmlsZSA2PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPlBTUCBicm93c2VyPC90ZD4KCQkJPHRkPlBTUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVUiPgoJCQk8dGQ+T3RoZXIgYnJvd3NlcnM8L3RkPgoJCQk8dGQ+QWxsIG90aGVyczwvdGQ+CgkJCTx0ZD4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+VTwvdGQ+CgkJPC90cj4KCTwvdGJvZHk+Cgk8dGZvb3Q+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGZvb3Q+CjwvdGFibGU+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/templates/dom_data_th.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCWhlYWRlciggJ0V4cGlyZXM6IFNhdCwgMjYgSnVsIDE5OTcgMDU6MDA6MDAgR01UJyApOyAKCWhlYWRlciggJ0xhc3QtTW9kaWZpZWQ6ICcgLiBnbWRhdGUoICdELCBkIE0gWSBIOmk6cycgKSAuICcgR01UJyApOyAKCWhlYWRlciggJ0NhY2hlLUNvbnRyb2w6IG5vLXN0b3JlLCBuby1jYWNoZSwgbXVzdC1yZXZhbGlkYXRlJyApOyAKCWhlYWRlciggJ0NhY2hlLUNvbnRyb2w6IHBvc3QtY2hlY2s9MCwgcHJlLWNoZWNrPTAnLCBmYWxzZSApOyAKCWhlYWRlciggJ1ByYWdtYTogbm8tY2FjaGUnICk7IAo/PjwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiPgo8aHRtbD4KCTxoZWFkPgoJCTxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iIC8+CgkJCgkJPHRpdGxlPkRhdGFUYWJsZXMgdW5pdCB0ZXN0aW5nPC90aXRsZT4KCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJjdXJyZW50U3R5bGUiPgoJCQlAaW1wb3J0ICIuLi8uLi9jc3MvZGVtb19wYWdlLmNzcyI7CgkJCUBpbXBvcnQgIi4uLy4uL2Nzcy9kZW1vX3RhYmxlLmNzcyI7CgkJPC9zdHlsZT4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vLi4vanMvanF1ZXJ5LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vLi4vanMvanF1ZXJ5LmRhdGFUYWJsZXMuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBsYW5ndWFnZT0iamF2YXNjcmlwdCIgc3JjPSIuLi91bml0X3Rlc3QuanMiPjwvc2NyaXB0PgoJCTw/cGhwCgkJCSRhU2NyaXB0cyA9IGV4cGxvZGUoICI6IiwgJF9HRVRbJ3NjcmlwdHMnXSApOwoJCQlmb3IgKCAkaT0wIDsgJGk8Y291bnQoJGFTY3JpcHRzKSA7ICRpKysgKQoJCQl7CgkJCQllY2hvICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vJy4kYVNjcmlwdHNbJGldLic/cmFuZD0nLnJhbmQoKS4nIj48L3NjcmlwdD4nLiJcbiI7CgkJCX0KCQk/PgoJPC9oZWFkPgoJPGJvZHkgaWQ9ImR0X2V4YW1wbGUiPgoJCTxkaXYgaWQ9ImNvbnRhaW5lciI+CgkJCTxkaXYgY2xhc3M9ImZ1bGxfd2lkdGggYmlnIj4KCQkJCTxpPkRhdGFUYWJsZXM8L2k+IHVuaXQgdGVzdCB0ZW1wbGF0ZSBmb3IgcmVhZGluZyBET00gZGF0YQoJCQk8L2Rpdj4KCQkJCgkJCTxkaXYgaWQ9ImRlbW8iPgo8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIGNsYXNzPSJkaXNwbGF5IiBpZD0iZXhhbXBsZSI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGJvZHk+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDQuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNS4wPC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA1LjU8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj41LjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNjwvdGQ+CgkJCTx0ZD5XaW4gOTgrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDc8L3RkPgoJCQk8dGQ+V2luIFhQIFNQMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+QU9MIGJyb3dzZXIgKEFPTCBkZXNrdG9wKTwvdGQ+CgkJCTx0ZD5XaW4gWFA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMS4wPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjU8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDIuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMy4wPC90ZD4KCQkJPHRkPldpbiAyaysgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS45PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuMDwvdGQ+CgkJCTx0ZD5PU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuNTwvdGQ+CgkJCTx0ZD5PU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgNy4yPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBNYWMgT1MgOC42LTkuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSBCcm93c2VyIDg8L3RkPgoJCQk8dGQ+V2luIDk4U0UrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRoPkdlY2tvPC90aD4KCQkJPHRoPk5ldHNjYXBlIE5hdmlnYXRvciA5PC90aD4KCQkJPHRoPldpbiA5OCsgLyBPU1guMis8L3RoPgoJCQk8dGggY2xhc3M9ImNlbnRlciI+MS44PC90aD4KCQkJPHRoIGNsYXNzPSJjZW50ZXIiPkE8L3RoPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGg+TW96aWxsYSAxLjA8L3RoPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjE8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4zPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjQ8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjQ8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS42PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjc8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuODwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPlNlYW1vbmtleSAxLjE8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5FcGlwaGFueSAyLjIwPC90ZD4KCQkJPHRkPkdub21lPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMS4yPC90ZD4KCQkJPHRkPk9TWC4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEyNS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAxLjM8L3RkPgoJCQk8dGQ+T1NYLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MzEyLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDIuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDE5LjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDMuMDwvdGQ+CgkJCTx0ZD5PU1guNCs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NTIyLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+T21uaVdlYiA1LjU8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQyMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5pUG9kIFRvdWNoIC8gaVBob25lPC90ZD4KCQkJPHRkPmlQb2Q8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDIwLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+UzYwPC90ZD4KCQkJPHRkPlM2MDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MTM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgNy4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA3LjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDguMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOC41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuMjwvdGQ+CgkJCTx0ZD5XaW4gODgrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS41PC90ZD4KCQkJPHRkPldpbiA4OCsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSBmb3IgV2lpPC90ZD4KCQkJPHRkPldpaTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5va2lhIE44MDA8L3RkPgoJCQk8dGQ+TjgwMDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk5pbnRlbmRvIERTIGJyb3dzZXI8L3RkPgoJCQk8dGQ+TmludGVuZG8gRFM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+OC41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkMvQTxzdXA+MTwvc3VwPjwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuMTwvdGQ+CgkJCTx0ZD5LREUgMy4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy4zPC90ZD4KCQkJPHRkPktERSAzLjM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjU8L3RkPgoJCQk8dGQ+S0RFIDMuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNC41PC90ZD4KCQkJPHRkPk1hYyBPUyA4LTk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVDIj4KCQkJPHRkPlRhc21hbjwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA1LjE8L3RkPgoJCQk8dGQ+TWFjIE9TIDcuNi05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4yPC90ZD4KCQkJPHRkPk1hYyBPUyA4LVg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy4xPC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TmV0RnJvbnQgMy40PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+RGlsbG8gMC44PC90ZD4KCQkJPHRkPkVtYmVkZGVkIGRldmljZXM8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5YPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPk1pc2M8L3RkPgoJCQk8dGQ+TGlua3M8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkx5bng8L3RkPgoJCQk8dGQ+VGV4dCBvbmx5PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPklFIE1vYmlsZTwvdGQ+CgkJCTx0ZD5XaW5kb3dzIE1vYmlsZSA2PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPlBTUCBicm93c2VyPC90ZD4KCQkJPHRkPlBTUDwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVUiPgoJCQk8dGQ+T3RoZXIgYnJvd3NlcnM8L3RkPgoJCQk8dGQ+QWxsIG90aGVyczwvdGQ+CgkJCTx0ZD4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+VTwvdGQ+CgkJPC90cj4KCTwvdGJvZHk+Cgk8dGZvb3Q+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGZvb3Q+CjwvdGFibGU+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/templates/dom_data_two_headers.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCWhlYWRlciggJ0V4cGlyZXM6IFNhdCwgMjYgSnVsIDE5OTcgMDU6MDA6MDAgR01UJyApOyAKCWhlYWRlciggJ0xhc3QtTW9kaWZpZWQ6ICcgLiBnbWRhdGUoICdELCBkIE0gWSBIOmk6cycgKSAuICcgR01UJyApOyAKCWhlYWRlciggJ0NhY2hlLUNvbnRyb2w6IG5vLXN0b3JlLCBuby1jYWNoZSwgbXVzdC1yZXZhbGlkYXRlJyApOyAKCWhlYWRlciggJ0NhY2hlLUNvbnRyb2w6IHBvc3QtY2hlY2s9MCwgcHJlLWNoZWNrPTAnLCBmYWxzZSApOyAKCWhlYWRlciggJ1ByYWdtYTogbm8tY2FjaGUnICk7IAo/PjwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiPgo8aHRtbD4KCTxoZWFkPgoJCTxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iIC8+CgkJCgkJPHRpdGxlPkRhdGFUYWJsZXMgdW5pdCB0ZXN0aW5nPC90aXRsZT4KCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJjdXJyZW50U3R5bGUiPgoJCQlAaW1wb3J0ICIuLi8uLi9jc3MvZGVtb19wYWdlLmNzcyI7CgkJCUBpbXBvcnQgIi4uLy4uL2Nzcy9kZW1vX3RhYmxlLmNzcyI7CgkJPC9zdHlsZT4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vLi4vanMvanF1ZXJ5LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vLi4vanMvanF1ZXJ5LmRhdGFUYWJsZXMuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBsYW5ndWFnZT0iamF2YXNjcmlwdCIgc3JjPSIuLi91bml0X3Rlc3QuanMiPjwvc2NyaXB0PgoJCTw/cGhwCgkJCSRhU2NyaXB0cyA9IGV4cGxvZGUoICI6IiwgJF9HRVRbJ3NjcmlwdHMnXSApOwoJCQlmb3IgKCAkaT0wIDsgJGk8Y291bnQoJGFTY3JpcHRzKSA7ICRpKysgKQoJCQl7CgkJCQllY2hvICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vJy4kYVNjcmlwdHNbJGldLic/cmFuZD0nLnJhbmQoKS4nIj48L3NjcmlwdD4nLiJcbiI7CgkJCX0KCQk/PgoJPC9oZWFkPgoJPGJvZHkgaWQ9ImR0X2V4YW1wbGUiPgoJCTxkaXYgaWQ9ImNvbnRhaW5lciI+CgkJCTxkaXYgY2xhc3M9ImZ1bGxfd2lkdGggYmlnIj4KCQkJCTxpPkRhdGFUYWJsZXM8L2k+IHVuaXQgdGVzdCB0ZW1wbGF0ZSBmb3IgcmVhZGluZyBET00gZGF0YSAtIHdpdGggdHdvIHJvd3MgaW4gaGVhZGVyCgkJCTwvZGl2PgoJCQkKCQkJPGRpdiBpZD0iZGVtbyI+Cjx0YWJsZSBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIGJvcmRlcj0iMCIgY2xhc3M9ImRpc3BsYXkiIGlkPSJleGFtcGxlIj4KCTx0aGVhZD4KCQk8dHI+CgkJCTx0aD5SZW5kZXJpbmcgZW5naW5lPC90aD4KCQkJPHRoPkJyb3dzZXI8L3RoPgoJCQk8dGg+UGxhdGZvcm0ocyk8L3RoPgoJCQk8dGg+RW5naW5lIHZlcnNpb248L3RoPgoJCQk8dGg+Q1NTIGdyYWRlPC90aD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRoPlJlbmRlcmluZyBlbmdpbmU8L3RoPgoJCQk8dGg+QnJvd3NlcjwvdGg+CgkJCTx0aD5QbGF0Zm9ybShzKTwvdGg+CgkJCTx0aD5FbmdpbmUgdmVyc2lvbjwvdGg+CgkJCTx0aD5DU1MgZ3JhZGU8L3RoPgoJCTwvdHI+Cgk8L3RoZWFkPgoJPHRib2R5PgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+SW50ZXJuZXQKCQkJCSBFeHBsb3JlciA0LjA8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDUuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNS41PC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDY8L3RkPgoJCQk8dGQ+V2luIDk4KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA3PC90ZD4KCQkJPHRkPldpbiBYUCBTUDIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkFPTCBicm93c2VyIChBT0wgZGVza3RvcCk8L3RkPgoJCQk8dGQ+V2luIFhQPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDEuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMS41PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAyLjA8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDMuMDwvdGQ+CgkJCTx0ZD5XaW4gMmsrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkNhbWlubyAxLjA8L3RkPgoJCQk8dGQ+T1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkNhbWlubyAxLjU8L3RkPgoJCQk8dGQ+T1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIDcuMjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gTWFjIE9TIDguNi05LjI8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgQnJvd3NlciA4PC90ZD4KCQkJPHRkPldpbiA5OFNFKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSBOYXZpZ2F0b3IgOTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuODwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4xPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjI8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjI8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMzwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS40PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS40PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjU8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNjwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjEuNjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS43PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS43PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjg8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4xKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5TZWFtb25rZXkgMS4xPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+MS44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RXBpcGhhbnkgMi4yMDwvdGQ+CgkJCTx0ZD5Hbm9tZTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xLjg8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+U2FmYXJpIDEuMjwvdGQ+CgkJCTx0ZD5PU1guMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xMjUuNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPldlYmtpdDwvdGQ+CgkJCTx0ZD5TYWZhcmkgMS4zPC90ZD4KCQkJPHRkPk9TWC4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMxMi44PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAyLjA8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQxOS4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlNhZmFyaSAzLjA8L3RkPgoJCQk8dGQ+T1NYLjQrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjUyMi4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPk9tbmlXZWIgNS41PC90ZD4KCQkJPHRkPk9TWC40KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40MjA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5XZWJraXQ8L3RkPgoJCQk8dGQ+aVBvZCBUb3VjaCAvIGlQaG9uZTwvdGQ+CgkJCTx0ZD5pUG9kPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjQyMC4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+V2Via2l0PC90ZD4KCQkJPHRkPlM2MDwvdGQ+CgkJCTx0ZD5TNjA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NDEzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDcuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgNy41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMis8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA4LjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4yKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDguNTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgOS4wPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMys8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5PcGVyYSA5LjI8L3RkPgoJCQk8dGQ+V2luIDg4KyAvIE9TWC4zKzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+UHJlc3RvPC90ZD4KCQkJPHRkPk9wZXJhIDkuNTwvdGQ+CgkJCTx0ZD5XaW4gODgrIC8gT1NYLjMrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5QcmVzdG88L3RkPgoJCQk8dGQ+T3BlcmEgZm9yIFdpaTwvdGQ+CgkJCTx0ZD5XaWk8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5Ob2tpYSBOODAwPC90ZD4KCQkJPHRkPk44MDA8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPlByZXN0bzwvdGQ+CgkJCTx0ZD5OaW50ZW5kbyBEUyBicm93c2VyPC90ZD4KCQkJPHRkPk5pbnRlbmRvIERTPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjguNTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DL0E8c3VwPjE8L3N1cD48L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+S0hUTUw8L3RkPgoJCQk8dGQ+S29ucXVyZXJvciAzLjE8L3RkPgoJCQk8dGQ+S0RFIDMuMTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4zLjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5LSFRNTDwvdGQ+CgkJCTx0ZD5Lb25xdXJlcm9yIDMuMzwvdGQ+CgkJCTx0ZD5LREUgMy4zPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjMuMzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5BPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPktIVE1MPC90ZD4KCQkJPHRkPktvbnF1cmVyb3IgMy41PC90ZD4KCQkJPHRkPktERSAzLjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+My41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDQuNTwvdGQ+CgkJCTx0ZD5NYWMgT1MgOC05PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQyI+CgkJCTx0ZD5UYXNtYW48L3RkPgoJCQk8dGQ+SW50ZXJuZXQgRXhwbG9yZXIgNS4xPC90ZD4KCQkJPHRkPk1hYyBPUyA3LjYtOTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4xPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+VGFzbWFuPC90ZD4KCQkJPHRkPkludGVybmV0IEV4cGxvcmVyIDUuMjwvdGQ+CgkJCTx0ZD5NYWMgT1MgOC1YPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjE8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPk5ldEZyb250IDMuMTwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPk5ldEZyb250IDMuNDwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkRpbGxvIDAuODwvdGQ+CgkJCTx0ZD5FbWJlZGRlZCBkZXZpY2VzPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPi08L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+WDwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlWCI+CgkJCTx0ZD5NaXNjPC90ZD4KCQkJPHRkPkxpbmtzPC90ZD4KCQkJPHRkPlRleHQgb25seTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZVgiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5MeW54PC90ZD4KCQkJPHRkPlRleHQgb25seTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5JRSBNb2JpbGU8L3RkPgoJCQk8dGQ+V2luZG93cyBNb2JpbGUgNjwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkM8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+TWlzYzwvdGQ+CgkJCTx0ZD5QU1AgYnJvd3NlcjwvdGQ+CgkJCTx0ZD5QU1A8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj5DPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVVIj4KCQkJPHRkPk90aGVyIGJyb3dzZXJzPC90ZD4KCQkJPHRkPkFsbCBvdGhlcnM8L3RkPgoJCQk8dGQ+LTwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj4tPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlU8L3RkPgoJCTwvdHI+Cgk8L3Rib2R5PgoJPHRmb290PgoJCTx0cj4KCQkJPHRoPlJlbmRlcmluZyBlbmdpbmU8L3RoPgoJCQk8dGg+QnJvd3NlcjwvdGg+CgkJCTx0aD5QbGF0Zm9ybShzKTwvdGg+CgkJCTx0aD5FbmdpbmUgdmVyc2lvbjwvdGg+CgkJCTx0aD5DU1MgZ3JhZGU8L3RoPgoJCTwvdHI+Cgk8L3Rmb290Pgo8L3RhYmxlPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0ic3BhY2VyIj48L2Rpdj4KCQk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/templates/dymanic_table.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCWhlYWRlciggJ0V4cGlyZXM6IFNhdCwgMjYgSnVsIDE5OTcgMDU6MDA6MDAgR01UJyApOyAKCWhlYWRlciggJ0xhc3QtTW9kaWZpZWQ6ICcgLiBnbWRhdGUoICdELCBkIE0gWSBIOmk6cycgKSAuICcgR01UJyApOyAKCWhlYWRlciggJ0NhY2hlLUNvbnRyb2w6IG5vLXN0b3JlLCBuby1jYWNoZSwgbXVzdC1yZXZhbGlkYXRlJyApOyAKCWhlYWRlciggJ0NhY2hlLUNvbnRyb2w6IHBvc3QtY2hlY2s9MCwgcHJlLWNoZWNrPTAnLCBmYWxzZSApOyAKCWhlYWRlciggJ1ByYWdtYTogbm8tY2FjaGUnICk7IAo/PjwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiPgo8aHRtbD4KCTxoZWFkPgoJCTxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iIC8+CgkJCgkJPHRpdGxlPkRhdGFUYWJsZXMgdW5pdCB0ZXN0aW5nPC90aXRsZT4KCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJjdXJyZW50U3R5bGUiPgoJCQlAaW1wb3J0ICIuLi8uLi9jc3MvZGVtb19wYWdlLmNzcyI7CgkJCUBpbXBvcnQgIi4uLy4uL2Nzcy9kZW1vX3RhYmxlLmNzcyI7CgkJPC9zdHlsZT4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vLi4vanMvanF1ZXJ5LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vLi4vanMvanF1ZXJ5LmRhdGFUYWJsZXMuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBsYW5ndWFnZT0iamF2YXNjcmlwdCIgc3JjPSIuLi91bml0X3Rlc3QuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CgkJCSQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkJCQkkKCcjZGVtbycpLmh0bWwoICc8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIGNsYXNzPSJkaXNwbGF5IiBpZD0iZXhhbXBsZSI+PC90YWJsZT4nICk7CgkJCX0gKTsKCQk8L3NjcmlwdD4KCQk8P3BocAoJCQkkYVNjcmlwdHMgPSBleHBsb2RlKCAiOiIsICRfR0VUWydzY3JpcHRzJ10gKTsKCQkJZm9yICggJGk9MCA7ICRpPGNvdW50KCRhU2NyaXB0cykgOyAkaSsrICkKCQkJewoJCQkJZWNobyAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGxhbmd1YWdlPSJqYXZhc2NyaXB0IiBzcmM9Ii4uLycuJGFTY3JpcHRzWyRpXS4nP3JhbmQ9Jy5yYW5kKCkuJyI+PC9zY3JpcHQ+Jy4iXG4iOwoJCQl9CgkJPz4KCTwvaGVhZD4KCTxib2R5IGlkPSJkdF9leGFtcGxlIj4KCQk8ZGl2IGlkPSJjb250YWluZXIiPgoJCQk8ZGl2IGNsYXNzPSJmdWxsX3dpZHRoIGJpZyI+CgkJCQk8aT5EYXRhVGFibGVzPC9pPiBkeW5hbWljIHRhYmxlIHRlbXBsYXRlCgkJCTwvZGl2PgoJCQkKCQkJPGgxPkxpdmUgZXhhbXBsZTwvaDE+CgkJCTxkaXYgaWQ9ImRlbW8iPjwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/templates/empty_table.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCWhlYWRlciggJ0V4cGlyZXM6IFNhdCwgMjYgSnVsIDE5OTcgMDU6MDA6MDAgR01UJyApOyAKCWhlYWRlciggJ0xhc3QtTW9kaWZpZWQ6ICcgLiBnbWRhdGUoICdELCBkIE0gWSBIOmk6cycgKSAuICcgR01UJyApOyAKCWhlYWRlciggJ0NhY2hlLUNvbnRyb2w6IG5vLXN0b3JlLCBuby1jYWNoZSwgbXVzdC1yZXZhbGlkYXRlJyApOyAKCWhlYWRlciggJ0NhY2hlLUNvbnRyb2w6IHBvc3QtY2hlY2s9MCwgcHJlLWNoZWNrPTAnLCBmYWxzZSApOyAKCWhlYWRlciggJ1ByYWdtYTogbm8tY2FjaGUnICk7IAo/PjwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiPgo8aHRtbD4KCTxoZWFkPgoJCTxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iIC8+CgkJCgkJPHRpdGxlPkRhdGFUYWJsZXMgdW5pdCB0ZXN0aW5nPC90aXRsZT4KCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJjdXJyZW50U3R5bGUiPgoJCQlAaW1wb3J0ICIuLi8uLi9jc3MvZGVtb19wYWdlLmNzcyI7CgkJCUBpbXBvcnQgIi4uLy4uL2Nzcy9kZW1vX3RhYmxlLmNzcyI7CgkJPC9zdHlsZT4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vLi4vanMvanF1ZXJ5LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vLi4vanMvanF1ZXJ5LmRhdGFUYWJsZXMuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBsYW5ndWFnZT0iamF2YXNjcmlwdCIgc3JjPSIuLi91bml0X3Rlc3QuanMiPjwvc2NyaXB0PgoJCTw/cGhwCgkJCSRhU2NyaXB0cyA9IGV4cGxvZGUoICI6IiwgJF9HRVRbJ3NjcmlwdHMnXSApOwoJCQlmb3IgKCAkaT0wIDsgJGk8Y291bnQoJGFTY3JpcHRzKSA7ICRpKysgKQoJCQl7CgkJCQllY2hvICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vJy4kYVNjcmlwdHNbJGldLic/cmFuZD0nLnJhbmQoKS4nIj48L3NjcmlwdD4nLiJcbiI7CgkJCX0KCQk/PgoJPC9oZWFkPgoJPGJvZHkgaWQ9ImR0X2V4YW1wbGUiPgoJCTxkaXYgaWQ9ImNvbnRhaW5lciI+CgkJCTxkaXYgY2xhc3M9ImZ1bGxfd2lkdGggYmlnIj4KCQkJCTxpPkRhdGFUYWJsZXM8L2k+IGVtcHR5IHRhYmxlIHRlbXBsYXRlCgkJCTwvZGl2PgoJCQkKCQkJPGgxPkxpdmUgZXhhbXBsZTwvaDE+CgkJCTxkaXYgaWQ9ImRlbW8iPgo8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIGNsYXNzPSJkaXNwbGF5IiBpZD0iZXhhbXBsZSI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGJvZHk+CgkJCgk8L3Rib2R5Pgo8L3RhYmxlPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0ic3BhY2VyIj48L2Rpdj4KCQk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/templates/html_table.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCWhlYWRlciggJ0V4cGlyZXM6IFNhdCwgMjYgSnVsIDE5OTcgMDU6MDA6MDAgR01UJyApOyAKCWhlYWRlciggJ0xhc3QtTW9kaWZpZWQ6ICcgLiBnbWRhdGUoICdELCBkIE0gWSBIOmk6cycgKSAuICcgR01UJyApOyAKCWhlYWRlciggJ0NhY2hlLUNvbnRyb2w6IG5vLXN0b3JlLCBuby1jYWNoZSwgbXVzdC1yZXZhbGlkYXRlJyApOyAKCWhlYWRlciggJ0NhY2hlLUNvbnRyb2w6IHBvc3QtY2hlY2s9MCwgcHJlLWNoZWNrPTAnLCBmYWxzZSApOyAKCWhlYWRlciggJ1ByYWdtYTogbm8tY2FjaGUnICk7IAo/PjwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiPgo8aHRtbD4KCTxoZWFkPgoJCTxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iIC8+CgkJCgkJPHRpdGxlPkRhdGFUYWJsZXMgdW5pdCB0ZXN0aW5nPC90aXRsZT4KCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJjdXJyZW50U3R5bGUiPgoJCQlAaW1wb3J0ICIuLi8uLi9jc3MvZGVtb19wYWdlLmNzcyI7CgkJCUBpbXBvcnQgIi4uLy4uL2Nzcy9kZW1vX3RhYmxlLmNzcyI7CgkJPC9zdHlsZT4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vLi4vanMvanF1ZXJ5LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vLi4vanMvanF1ZXJ5LmRhdGFUYWJsZXMuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBsYW5ndWFnZT0iamF2YXNjcmlwdCIgc3JjPSIuLi91bml0X3Rlc3QuanMiPjwvc2NyaXB0PgoJCTw/cGhwCgkJCSRhU2NyaXB0cyA9IGV4cGxvZGUoICI6IiwgJF9HRVRbJ3NjcmlwdHMnXSApOwoJCQlmb3IgKCAkaT0wIDsgJGk8Y291bnQoJGFTY3JpcHRzKSA7ICRpKysgKQoJCQl7CgkJCQllY2hvICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vJy4kYVNjcmlwdHNbJGldLic/cmFuZD0nLnJhbmQoKS4nIj48L3NjcmlwdD4nLiJcbiI7CgkJCX0KCQk/PgoJPC9oZWFkPgoJPGJvZHkgaWQ9ImR0X2V4YW1wbGUiPgoJCTxkaXYgaWQ9ImNvbnRhaW5lciI+CgkJCTxkaXYgY2xhc3M9ImZ1bGxfd2lkdGggYmlnIj4KCQkJCTxpPkRhdGFUYWJsZXM8L2k+IHRhYmxlIHdpdGggSFRNTCBlbGVtZW50cyB0ZW1wbGF0ZQoJCQk8L2Rpdj4KCQkJCgkJCTxoMT5MaXZlIGV4YW1wbGU8L2gxPgoJCQk8ZGl2IGlkPSJkZW1vIj4KPHRhYmxlIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgYm9yZGVyPSIwIiBjbGFzcz0iZGlzcGxheSIgaWQ9ImV4YW1wbGUiPgoJPHRoZWFkPgoJCTx0cj4KCQkJPHRoPlJlZmxlY3Rpb248L3RoPgoJCQk8dGg+TGluazwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGJvZHk+CgkJPHRyPgoJCQk8dGQ+MTwvdGQ+CgkJCTx0ZD48YSBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9hcnRpY2xlL0RhdGFUYWJsZXMiPkRhdGFUYWJsZXM8L2E+PC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPjI8L3RkPgoJCQk8dGQ+PGEgaHJlZj0iaHR0cDovL3d3dy5zcHJ5bWVkaWEuY28udWsvYXJ0aWNsZS9JbnRlZ3JpdHkiPkEgbGluayB0byBJbnRlZ3JpdHk8L2E+PC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPjM8L3RkPgoJCQk8dGQ+PGEgaHJlZj0iaHR0cDovL3d3dy5zcHJ5bWVkaWEuY28udWsvYXJ0aWNsZS9JbnRlZ3JpdHkiPkludGVncml0eTwvYT48L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+NDwvdGQ+CgkJCTx0ZD5FSW50ZWdyaXR5PC90ZD4KCQk8L3RyPgo8L3RhYmxlPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0ic3BhY2VyIj48L2Rpdj4KCQk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/templates/js_data.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCWhlYWRlciggJ0V4cGlyZXM6IFNhdCwgMjYgSnVsIDE5OTcgMDU6MDA6MDAgR01UJyApOyAKCWhlYWRlciggJ0xhc3QtTW9kaWZpZWQ6ICcgLiBnbWRhdGUoICdELCBkIE0gWSBIOmk6cycgKSAuICcgR01UJyApOyAKCWhlYWRlciggJ0NhY2hlLUNvbnRyb2w6IG5vLXN0b3JlLCBuby1jYWNoZSwgbXVzdC1yZXZhbGlkYXRlJyApOyAKCWhlYWRlciggJ0NhY2hlLUNvbnRyb2w6IHBvc3QtY2hlY2s9MCwgcHJlLWNoZWNrPTAnLCBmYWxzZSApOyAKCWhlYWRlciggJ1ByYWdtYTogbm8tY2FjaGUnICk7IAo/PjwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiPgo8aHRtbD4KCTxoZWFkPgoJCTxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iIC8+CgkJCgkJPHRpdGxlPkRhdGFUYWJsZXMgdW5pdCB0ZXN0aW5nPC90aXRsZT4KCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJjdXJyZW50U3R5bGUiPgoJCQlAaW1wb3J0ICIuLi8uLi9jc3MvZGVtb19wYWdlLmNzcyI7CgkJCUBpbXBvcnQgIi4uLy4uL2Nzcy9kZW1vX3RhYmxlLmNzcyI7CgkJPC9zdHlsZT4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vLi4vanMvanF1ZXJ5LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vLi4vanMvanF1ZXJ5LmRhdGFUYWJsZXMuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBsYW5ndWFnZT0iamF2YXNjcmlwdCIgc3JjPSIuLi91bml0X3Rlc3QuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CgkJCS8qIE1ha2UgdGhlIGRhdGEgc291cmNlIGF2YWlsYWJsZSBmb3IgdGVzdGluZyAqLwoJCQl2YXIgZ2FhRGF0YSA9IFsKCQkJCVsnVHJpZGVudCcsJ0ludGVybmV0IEV4cGxvcmVyIDQuMCcsJ1dpbiA5NSsnLCc0JywnWCddLAoJCQkJWydUcmlkZW50JywnSW50ZXJuZXQgRXhwbG9yZXIgNS4wJywnV2luIDk1KycsJzUnLCdDJ10sCgkJCQlbJ1RyaWRlbnQnLCdJbnRlcm5ldCBFeHBsb3JlciA1LjUnLCdXaW4gOTUrJywnNS41JywnQSddLAoJCQkJWydUcmlkZW50JywnSW50ZXJuZXQgRXhwbG9yZXIgNicsJ1dpbiA5OCsnLCc2JywnQSddLAoJCQkJWydUcmlkZW50JywnSW50ZXJuZXQgRXhwbG9yZXIgNycsJ1dpbiBYUCBTUDIrJywnNycsJ0EnXSwKCQkJCVsnVHJpZGVudCcsJ0FPTCBicm93c2VyIChBT0wgZGVza3RvcCknLCdXaW4gWFAnLCc2JywnQSddLAoJCQkJWydHZWNrbycsJ0ZpcmVmb3ggMS4wJywnV2luIDk4KyAvIE9TWC4yKycsJzEuNycsJ0EnXSwKCQkJCVsnR2Vja28nLCdGaXJlZm94IDEuNScsJ1dpbiA5OCsgLyBPU1guMisnLCcxLjgnLCdBJ10sCgkJCQlbJ0dlY2tvJywnRmlyZWZveCAyLjAnLCdXaW4gOTgrIC8gT1NYLjIrJywnMS44JywnQSddLAoJCQkJWydHZWNrbycsJ0ZpcmVmb3ggMy4wJywnV2luIDJrKyAvIE9TWC4zKycsJzEuOScsJ0EnXSwKCQkJCVsnR2Vja28nLCdDYW1pbm8gMS4wJywnT1NYLjIrJywnMS44JywnQSddLAoJCQkJWydHZWNrbycsJ0NhbWlubyAxLjUnLCdPU1guMysnLCcxLjgnLCdBJ10sCgkJCQlbJ0dlY2tvJywnTmV0c2NhcGUgNy4yJywnV2luIDk1KyAvIE1hYyBPUyA4LjYtOS4yJywnMS43JywnQSddLAoJCQkJWydHZWNrbycsJ05ldHNjYXBlIEJyb3dzZXIgOCcsJ1dpbiA5OFNFKycsJzEuNycsJ0EnXSwKCQkJCVsnR2Vja28nLCdOZXRzY2FwZSBOYXZpZ2F0b3IgOScsJ1dpbiA5OCsgLyBPU1guMisnLCcxLjgnLCdBJ10sCgkJCQlbJ0dlY2tvJywnTW96aWxsYSAxLjAnLCdXaW4gOTUrIC8gT1NYLjErJywxLCdBJ10sCgkJCQlbJ0dlY2tvJywnTW96aWxsYSAxLjEnLCdXaW4gOTUrIC8gT1NYLjErJywxLjEsJ0EnXSwKCQkJCVsnR2Vja28nLCdNb3ppbGxhIDEuMicsJ1dpbiA5NSsgLyBPU1guMSsnLDEuMiwnQSddLAoJCQkJWydHZWNrbycsJ01vemlsbGEgMS4zJywnV2luIDk1KyAvIE9TWC4xKycsMS4zLCdBJ10sCgkJCQlbJ0dlY2tvJywnTW96aWxsYSAxLjQnLCdXaW4gOTUrIC8gT1NYLjErJywxLjQsJ0EnXSwKCQkJCVsnR2Vja28nLCdNb3ppbGxhIDEuNScsJ1dpbiA5NSsgLyBPU1guMSsnLDEuNSwnQSddLAoJCQkJWydHZWNrbycsJ01vemlsbGEgMS42JywnV2luIDk1KyAvIE9TWC4xKycsMS42LCdBJ10sCgkJCQlbJ0dlY2tvJywnTW96aWxsYSAxLjcnLCdXaW4gOTgrIC8gT1NYLjErJywxLjcsJ0EnXSwKCQkJCVsnR2Vja28nLCdNb3ppbGxhIDEuOCcsJ1dpbiA5OCsgLyBPU1guMSsnLDEuOCwnQSddLAoJCQkJWydHZWNrbycsJ1NlYW1vbmtleSAxLjEnLCdXaW4gOTgrIC8gT1NYLjIrJywnMS44JywnQSddLAoJCQkJWydHZWNrbycsJ0VwaXBoYW55IDIuMjAnLCdHbm9tZScsJzEuOCcsJ0EnXSwKCQkJCVsnV2Via2l0JywnU2FmYXJpIDEuMicsJ09TWC4zJywnMTI1LjUnLCdBJ10sCgkJCQlbJ1dlYmtpdCcsJ1NhZmFyaSAxLjMnLCdPU1guMycsJzMxMi44JywnQSddLAoJCQkJWydXZWJraXQnLCdTYWZhcmkgMi4wJywnT1NYLjQrJywnNDE5LjMnLCdBJ10sCgkJCQlbJ1dlYmtpdCcsJ1NhZmFyaSAzLjAnLCdPU1guNCsnLCc1MjIuMScsJ0EnXSwKCQkJCVsnV2Via2l0JywnT21uaVdlYiA1LjUnLCdPU1guNCsnLCc0MjAnLCdBJ10sCgkJCQlbJ1dlYmtpdCcsJ2lQb2QgVG91Y2ggLyBpUGhvbmUnLCdpUG9kJywnNDIwLjEnLCdBJ10sCgkJCQlbJ1dlYmtpdCcsJ1M2MCcsJ1M2MCcsJzQxMycsJ0EnXSwKCQkJCVsnUHJlc3RvJywnT3BlcmEgNy4wJywnV2luIDk1KyAvIE9TWC4xKycsJy0nLCdBJ10sCgkJCQlbJ1ByZXN0bycsJ09wZXJhIDcuNScsJ1dpbiA5NSsgLyBPU1guMisnLCctJywnQSddLAoJCQkJWydQcmVzdG8nLCdPcGVyYSA4LjAnLCdXaW4gOTUrIC8gT1NYLjIrJywnLScsJ0EnXSwKCQkJCVsnUHJlc3RvJywnT3BlcmEgOC41JywnV2luIDk1KyAvIE9TWC4yKycsJy0nLCdBJ10sCgkJCQlbJ1ByZXN0bycsJ09wZXJhIDkuMCcsJ1dpbiA5NSsgLyBPU1guMysnLCctJywnQSddLAoJCQkJWydQcmVzdG8nLCdPcGVyYSA5LjInLCdXaW4gODgrIC8gT1NYLjMrJywnLScsJ0EnXSwKCQkJCVsnUHJlc3RvJywnT3BlcmEgOS41JywnV2luIDg4KyAvIE9TWC4zKycsJy0nLCdBJ10sCgkJCQlbJ1ByZXN0bycsJ09wZXJhIGZvciBXaWknLCdXaWknLCctJywnQSddLAoJCQkJWydQcmVzdG8nLCdOb2tpYSBOODAwJywnTjgwMCcsJy0nLCdBJ10sCgkJCQlbJ1ByZXN0bycsJ05pbnRlbmRvIERTIGJyb3dzZXInLCdOaW50ZW5kbyBEUycsJzguNScsJ0MvQTxzdXA+MTwvc3VwPiddLAoJCQkJWydLSFRNTCcsJ0tvbnF1cmVyb3IgMy4xJywnS0RFIDMuMScsJzMuMScsJ0MnXSwKCQkJCVsnS0hUTUwnLCdLb25xdXJlcm9yIDMuMycsJ0tERSAzLjMnLCczLjMnLCdBJ10sCgkJCQlbJ0tIVE1MJywnS29ucXVyZXJvciAzLjUnLCdLREUgMy41JywnMy41JywnQSddLAoJCQkJWydUYXNtYW4nLCdJbnRlcm5ldCBFeHBsb3JlciA0LjUnLCdNYWMgT1MgOC05JywnLScsJ1gnXSwKCQkJCVsnVGFzbWFuJywnSW50ZXJuZXQgRXhwbG9yZXIgNS4xJywnTWFjIE9TIDcuNi05JywnMScsJ0MnXSwKCQkJCVsnVGFzbWFuJywnSW50ZXJuZXQgRXhwbG9yZXIgNS4yJywnTWFjIE9TIDgtWCcsJzEnLCdDJ10sCgkJCQlbJ01pc2MnLCdOZXRGcm9udCAzLjEnLCdFbWJlZGRlZCBkZXZpY2VzJywnLScsJ0MnXSwKCQkJCVsnTWlzYycsJ05ldEZyb250IDMuNCcsJ0VtYmVkZGVkIGRldmljZXMnLCctJywnQSddLAoJCQkJWydNaXNjJywnRGlsbG8gMC44JywnRW1iZWRkZWQgZGV2aWNlcycsJy0nLCdYJ10sCgkJCQlbJ01pc2MnLCdMaW5rcycsJ1RleHQgb25seScsJy0nLCdYJ10sCgkJCQlbJ01pc2MnLCdMeW54JywnVGV4dCBvbmx5JywnLScsJ1gnXSwKCQkJCVsnTWlzYycsJ0lFIE1vYmlsZScsJ1dpbmRvd3MgTW9iaWxlIDYnLCctJywnQyddLAoJCQkJWydNaXNjJywnUFNQIGJyb3dzZXInLCdQU1AnLCctJywnQyddLAoJCQkJWydPdGhlciBicm93c2VycycsJ0FsbCBvdGhlcnMnLCctJywnLScsJ1UnXQoJCQldOwoJCTwvc2NyaXB0PgoJCTw/cGhwCgkJCSRhU2NyaXB0cyA9IGV4cGxvZGUoICI6IiwgJF9HRVRbJ3NjcmlwdHMnXSApOwoJCQlmb3IgKCAkaT0wIDsgJGk8Y291bnQoJGFTY3JpcHRzKSA7ICRpKysgKQoJCQl7CgkJCQllY2hvICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vJy4kYVNjcmlwdHNbJGldLic/cmFuZD0nLnJhbmQoKS4nIj48L3NjcmlwdD4nLiJcbiI7CgkJCX0KCQk/PgoJPC9oZWFkPgoJPGJvZHkgaWQ9ImR0X2V4YW1wbGUiPgoJCTxkaXYgaWQ9ImNvbnRhaW5lciI+CgkJCTxkaXYgY2xhc3M9ImZ1bGxfd2lkdGggYmlnIj4KCQkJCTxpPkRhdGFUYWJsZXM8L2k+IHVuaXQgdGVzdCB0ZW1wbGF0ZSBmb3IgcmVhZGluZyBET00gZGF0YQoJCQk8L2Rpdj4KCQkJCgkJCTxkaXYgaWQ9ImRlbW8iPgo8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIGNsYXNzPSJkaXNwbGF5IiBpZD0iZXhhbXBsZSI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGJvZHk+Cgk8L3Rib2R5PgoJPHRmb290PgoJCTx0cj4KCQkJPHRoPlJlbmRlcmluZyBlbmdpbmU8L3RoPgoJCQk8dGg+QnJvd3NlcjwvdGg+CgkJCTx0aD5QbGF0Zm9ybShzKTwvdGg+CgkJCTx0aD5FbmdpbmUgdmVyc2lvbjwvdGg+CgkJCTx0aD5DU1MgZ3JhZGU8L3RoPgoJCTwvdHI+Cgk8L3Rmb290Pgo8L3RhYmxlPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0ic3BhY2VyIj48L2Rpdj4KCQk8L2Rpdj4KCTwvYm9keT4KPC9odG1sPg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/templates/js_data_mixed_types.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCWhlYWRlciggJ0V4cGlyZXM6IFNhdCwgMjYgSnVsIDE5OTcgMDU6MDA6MDAgR01UJyApOyAKCWhlYWRlciggJ0xhc3QtTW9kaWZpZWQ6ICcgLiBnbWRhdGUoICdELCBkIE0gWSBIOmk6cycgKSAuICcgR01UJyApOyAKCWhlYWRlciggJ0NhY2hlLUNvbnRyb2w6IG5vLXN0b3JlLCBuby1jYWNoZSwgbXVzdC1yZXZhbGlkYXRlJyApOyAKCWhlYWRlciggJ0NhY2hlLUNvbnRyb2w6IHBvc3QtY2hlY2s9MCwgcHJlLWNoZWNrPTAnLCBmYWxzZSApOyAKCWhlYWRlciggJ1ByYWdtYTogbm8tY2FjaGUnICk7IAo/PjwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiPgo8aHRtbD4KCTxoZWFkPgoJCTxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iIC8+CgkJCgkJPHRpdGxlPkRhdGFUYWJsZXMgdW5pdCB0ZXN0aW5nPC90aXRsZT4KCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJjdXJyZW50U3R5bGUiPgoJCQlAaW1wb3J0ICIuLi8uLi9jc3MvZGVtb19wYWdlLmNzcyI7CgkJCUBpbXBvcnQgIi4uLy4uL2Nzcy9kZW1vX3RhYmxlLmNzcyI7CgkJPC9zdHlsZT4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vLi4vanMvanF1ZXJ5LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vLi4vanMvanF1ZXJ5LmRhdGFUYWJsZXMuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBsYW5ndWFnZT0iamF2YXNjcmlwdCIgc3JjPSIuLi91bml0X3Rlc3QuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CgkJCS8qIE1ha2UgdGhlIGRhdGEgc291cmNlIGF2YWlsYWJsZSBmb3IgdGVzdGluZyAqLwoJCQl2YXIgZ2FhRGF0YSA9IFsKCQkJCVsiVHJpZGVudCIsbnVsbCwiV2luIDk1KyIsIjQiLCJYIl0sCgkJCQlbIlRyaWRlbnQiLCJJbnRlcm5ldCBFeHBsb3JlciA1LjAiLCJXaW4gOTUrIiwiNSIsIkMiXSwKCQkJCVsiVHJpZGVudCIsIkludGVybmV0IEV4cGxvcmVyIDUuNSIsIldpbiA5NSsiLCI1LjUiLCJBIl0sCgkJCQlbbnVsbCwiSW50ZXJuZXQgRXhwbG9yZXIgNiIsIldpbiA5OCsiLCI2IiwiQSJdLAoJCQkJWyJUcmlkZW50IiwiSW50ZXJuZXQgRXhwbG9yZXIgNyIsIldpbiBYUCBTUDIrIiwiNyIsIkEiXSwKCQkJCVsiVHJpZGVudCIsIkFPTCBicm93c2VyIChBT0wgZGVza3RvcCkiLCJXaW4gWFAiLCI2IiwiQSJdLAoJCQkJWyJHZWNrbyIsIkZpcmVmb3ggMS4wIiwiV2luIDk4KyAvIE9TWC4yKyIsIjEuNyIsIkEiXSwKCQkJCVsiR2Vja28iLCJGaXJlZm94IDEuNSIsIldpbiA5OCsgLyBPU1guMisiLG51bGwsIkEiXSwKCQkJCVsiR2Vja28iLCJGaXJlZm94IDIuMCIsIldpbiA5OCsgLyBPU1guMisiLDEuOCwiQSJdLAoJCQkJWyJHZWNrbyIsIkZpcmVmb3ggMy4wIiwiV2luIDJrKyAvIE9TWC4zKyIsIiIsIkEiXSwKCQkJCVsiR2Vja28iLCJDYW1pbm8gMS4wIiwiT1NYLjIrIiwiMS44IiwiQSJdLAoJCQkJWyJHZWNrbyIsIkNhbWlubyAxLjUiLCJPU1guMysiLCIxLjgiLCJBIl0sCgkJCQlbIkdlY2tvIiwiTmV0c2NhcGUgNy4yIiwiV2luIDk1KyAvIE1hYyBPUyA4LjYtOS4yIiwiMS43IiwiQSJdLAoJCQkJWyJHZWNrbyIsIk5ldHNjYXBlIEJyb3dzZXIgOCIsIldpbiA5OFNFKyIsIjEuNyIsIkEiXSwKCQkJCVsiR2Vja28iLCJOZXRzY2FwZSBOYXZpZ2F0b3IgOSIsIldpbiA5OCsgLyBPU1guMisiLCIxLjgiLCJBIl0sCgkJCQlbIkdlY2tvIiwiTW96aWxsYSAxLjAiLCJXaW4gOTUrIC8gT1NYLjErIiwxLCJBIl0sCgkJCQlbIkdlY2tvIiwiTW96aWxsYSAxLjEiLCJXaW4gOTUrIC8gT1NYLjErIiwxLjEsIkEiXSwKCQkJCVsiR2Vja28iLHRydWUsIldpbiA5NSsgLyBPU1guMSsiLDEuMiwiQSJdLAoJCQkJWyJHZWNrbyIsZmFsc2UsIldpbiA5NSsgLyBPU1guMSsiLDEuMywiQSJdLAoJCQkJWyJHZWNrbyIsIk1vemlsbGEgMS40IiwiV2luIDk1KyAvIE9TWC4xKyIsMS40LCJBIl0sCgkJCQlbIkdlY2tvIiwiTW96aWxsYSAxLjUiLCJXaW4gOTUrIC8gT1NYLjErIiwxLjUsIkEiXSwKCQkJCVsiR2Vja28iLCJNb3ppbGxhIDEuNiIsIldpbiA5NSsgLyBPU1guMSsiLDEuNiwiQSJdLAoJCQkJWyJHZWNrbyIsIk1vemlsbGEgMS43IiwiV2luIDk4KyAvIE9TWC4xKyIsMS43LCJBIl0sCgkJCQlbIkdlY2tvIiwiTW96aWxsYSAxLjgiLCJXaW4gOTgrIC8gT1NYLjErIiwxLjgsIkEiXSwKCQkJCVsiR2Vja28iLCJTZWFtb25rZXkgMS4xIiwiV2luIDk4KyAvIE9TWC4yKyIsIjEuOCIsIkEiXSwKCQkJCVsiR2Vja28iLCJFcGlwaGFueSAyLjIwIiwiR25vbWUiLCIxLjgiLCJBIl0sCgkJCQlbIldlYmtpdCIsIlNhZmFyaSAxLjIiLCJPU1guMyIsIjEyNS41IiwiQSJdLAoJCQkJWyJXZWJraXQiLCJTYWZhcmkgMS4zIiwiT1NYLjMiLCIzMTIuOCIsIkEiXSwKCQkJCVsiV2Via2l0IiwiU2FmYXJpIDIuMCIsIk9TWC40KyIsIjQxOS4zIiwiQSJdLAoJCQkJWyJXZWJraXQiLCJTYWZhcmkgMy4wIiwiT1NYLjQrIiwiNTIyLjEiLCJBIl0sCgkJCQlbIldlYmtpdCIsIk9tbmlXZWIgNS41IiwiT1NYLjQrIiwiNDIwIiwiQSJdLAoJCQkJWyJXZWJraXQiLCJpUG9kIFRvdWNoIC8gaVBob25lIiwiaVBvZCIsIjQyMC4xIiwiQSJdLAoJCQkJWyJXZWJraXQiLCJTNjAiLCJTNjAiLCI0MTMiLCJBIl0sCgkJCQlbIlByZXN0byIsIk9wZXJhIDcuMCIsIldpbiA5NSsgLyBPU1guMSsiLCItIiwiQSJdLAoJCQkJWyJQcmVzdG8iLCJPcGVyYSA3LjUiLCJXaW4gOTUrIC8gT1NYLjIrIiwiLSIsIkEiXSwKCQkJCVsiUHJlc3RvIiwiT3BlcmEgOC4wIiwiV2luIDk1KyAvIE9TWC4yKyIsIi0iLCJBIl0sCgkJCQlbIlByZXN0byIsIk9wZXJhIDguNSIsIldpbiA5NSsgLyBPU1guMisiLCItIiwiQSJdLAoJCQkJWyJQcmVzdG8iLCJPcGVyYSA5LjAiLCJXaW4gOTUrIC8gT1NYLjMrIiwiLSIsIkEiXSwKCQkJCVsiUHJlc3RvIiwiT3BlcmEgOS4yIiwiV2luIDg4KyAvIE9TWC4zKyIsIi0iLCJBIl0sCgkJCQlbIlByZXN0byIsIk9wZXJhIDkuNSIsIldpbiA4OCsgLyBPU1guMysiLCItIiwiQSJdLAoJCQkJWyJQcmVzdG8iLCJPcGVyYSBmb3IgV2lpIiwiV2lpIiwiLSIsIkEiXSwKCQkJCVsiUHJlc3RvIiwiTm9raWEgTjgwMCIsIk44MDAiLCItIiwiQSJdLAoJCQkJWyJQcmVzdG8iLCJOaW50ZW5kbyBEUyBicm93c2VyIiwiTmludGVuZG8gRFMiLCI4LjUiLCJDL0E8c3VwPjE8L3N1cD4iXSwKCQkJCVsiS0hUTUwiLCJLb25xdXJlcm9yIDMuMSIsIktERSAzLjEiLCIzLjEiLCJDIl0sCgkJCQlbIktIVE1MIiwiS29ucXVyZXJvciAzLjMiLCJLREUgMy4zIiwiMy4zIiwiQSJdLAoJCQkJWyJLSFRNTCIsIktvbnF1cmVyb3IgMy41IiwiS0RFIDMuNSIsIjMuNSIsIkEiXSwKCQkJCVsiVGFzbWFuIiwiSW50ZXJuZXQgRXhwbG9yZXIgNC41IiwiTWFjIE9TIDgtOSIsIi0iLCJYIl0sCgkJCQlbIlRhc21hbiIsIkludGVybmV0IEV4cGxvcmVyIDUuMSIsIk1hYyBPUyA3LjYtOSIsIjEiLCJDIl0sCgkJCQlbIlRhc21hbiIsIkludGVybmV0IEV4cGxvcmVyIDUuMiIsIk1hYyBPUyA4LVgiLCIxIiwiQyJdLAoJCQkJWyJNaXNjIiwiTmV0RnJvbnQgMy4xIiwiRW1iZWRkZWQgZGV2aWNlcyIsIi0iLCJDIl0sCgkJCQlbIk1pc2MiLCJOZXRGcm9udCAzLjQiLCJFbWJlZGRlZCBkZXZpY2VzIiwiLSIsIkEiXSwKCQkJCVsiTWlzYyIsIkRpbGxvIDAuOCIsIkVtYmVkZGVkIGRldmljZXMiLCItIiwiWCJdLAoJCQkJWyJNaXNjIiwiTGlua3MiLCJUZXh0IG9ubHkiLCItIiwiWCJdLAoJCQkJWyJNaXNjIiwiTHlueCIsIlRleHQgb25seSIsIi0iLCJYIl0sCgkJCQlbIk1pc2MiLCJJRSBNb2JpbGUiLCJXaW5kb3dzIE1vYmlsZSA2IiwiLSIsIkMiXSwKCQkJCVsiTWlzYyIsIlBTUCBicm93c2VyIiwiUFNQIiwiLSIsIkMiXSwKCQkJCVsiT3RoZXIgYnJvd3NlcnMiLCJBbGwgb3RoZXJzIiwiLSIsIi0iLCJVIl0KCQkJXTsKCQk8L3NjcmlwdD4KCQk8P3BocAoJCQkkYVNjcmlwdHMgPSBleHBsb2RlKCAiOiIsICRfR0VUWydzY3JpcHRzJ10gKTsKCQkJZm9yICggJGk9MCA7ICRpPGNvdW50KCRhU2NyaXB0cykgOyAkaSsrICkKCQkJewoJCQkJZWNobyAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGxhbmd1YWdlPSJqYXZhc2NyaXB0IiBzcmM9Ii4uLycuJGFTY3JpcHRzWyRpXS4nP3JhbmQ9Jy5yYW5kKCkuJyI+PC9zY3JpcHQ+Jy4iXG4iOwoJCQl9CgkJPz4KCTwvaGVhZD4KCTxib2R5IGlkPSJkdF9leGFtcGxlIj4KCQk8ZGl2IGlkPSJjb250YWluZXIiPgoJCQk8ZGl2IGNsYXNzPSJmdWxsX3dpZHRoIGJpZyI+CgkJCQk8aT5EYXRhVGFibGVzPC9pPiB1bml0IHRlc3QgdGVtcGxhdGUgZm9yIHJlYWRpbmcgRE9NIGRhdGEKCQkJPC9kaXY+CgkJCQoJCQk8ZGl2IGlkPSJkZW1vIj4KPHRhYmxlIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgYm9yZGVyPSIwIiBjbGFzcz0iZGlzcGxheSIgaWQ9ImV4YW1wbGUiPgoJPHRoZWFkPgoJCTx0cj4KCQkJPHRoPlJlbmRlcmluZyBlbmdpbmU8L3RoPgoJCQk8dGg+QnJvd3NlcjwvdGg+CgkJCTx0aD5QbGF0Zm9ybShzKTwvdGg+CgkJCTx0aD5FbmdpbmUgdmVyc2lvbjwvdGg+CgkJCTx0aD5DU1MgZ3JhZGU8L3RoPgoJCTwvdHI+Cgk8L3RoZWFkPgoJPHRib2R5PgoJPC90Ym9keT4KCTx0Zm9vdD4KCQk8dHI+CgkJCTx0aD5SZW5kZXJpbmcgZW5naW5lPC90aD4KCQkJPHRoPkJyb3dzZXI8L3RoPgoJCQk8dGg+UGxhdGZvcm0ocyk8L3RoPgoJCQk8dGg+RW5naW5lIHZlcnNpb248L3RoPgoJCQk8dGg+Q1NTIGdyYWRlPC90aD4KCQk8L3RyPgoJPC90Zm9vdD4KPC90YWJsZT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CgkJPC9kaXY+Cgk8L2JvZHk+CjwvaHRtbD4=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/templates/two_tables.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCWhlYWRlciggJ0V4cGlyZXM6IFNhdCwgMjYgSnVsIDE5OTcgMDU6MDA6MDAgR01UJyApOyAKCWhlYWRlciggJ0xhc3QtTW9kaWZpZWQ6ICcgLiBnbWRhdGUoICdELCBkIE0gWSBIOmk6cycgKSAuICcgR01UJyApOyAKCWhlYWRlciggJ0NhY2hlLUNvbnRyb2w6IG5vLXN0b3JlLCBuby1jYWNoZSwgbXVzdC1yZXZhbGlkYXRlJyApOyAKCWhlYWRlciggJ0NhY2hlLUNvbnRyb2w6IHBvc3QtY2hlY2s9MCwgcHJlLWNoZWNrPTAnLCBmYWxzZSApOyAKCWhlYWRlciggJ1ByYWdtYTogbm8tY2FjaGUnICk7IAo/PjwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiPgo8aHRtbD4KCTxoZWFkPgoJCTxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgoJCTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UvaWNvIiBocmVmPSJodHRwOi8vd3d3LnNwcnltZWRpYS5jby51ay9tZWRpYS9pbWFnZXMvZmF2aWNvbi5pY28iIC8+CgkJCgkJPHRpdGxlPkRhdGFUYWJsZXMgdW5pdCB0ZXN0aW5nPC90aXRsZT4KCQk8c3R5bGUgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJjdXJyZW50U3R5bGUiPgoJCQlAaW1wb3J0ICIuLi8uLi9jc3MvZGVtb19wYWdlLmNzcyI7CgkJCUBpbXBvcnQgIi4uLy4uL2Nzcy9kZW1vX3RhYmxlLmNzcyI7CgkJPC9zdHlsZT4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vLi4vanMvanF1ZXJ5LmpzIj48L3NjcmlwdD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vLi4vanMvanF1ZXJ5LmRhdGFUYWJsZXMuanMiPjwvc2NyaXB0PgoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBsYW5ndWFnZT0iamF2YXNjcmlwdCIgc3JjPSIuLi91bml0X3Rlc3QuanMiPjwvc2NyaXB0PgoJCTw/cGhwCgkJCSRhU2NyaXB0cyA9IGV4cGxvZGUoICI6IiwgJF9HRVRbJ3NjcmlwdHMnXSApOwoJCQlmb3IgKCAkaT0wIDsgJGk8Y291bnQoJGFTY3JpcHRzKSA7ICRpKysgKQoJCQl7CgkJCQllY2hvICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iLi4vJy4kYVNjcmlwdHNbJGldLic/cmFuZD0nLnJhbmQoKS4nIj48L3NjcmlwdD4nLiJcbiI7CgkJCX0KCQk/PgoJPC9oZWFkPgoJPGJvZHkgaWQ9ImR0X2V4YW1wbGUiPgoJCTxkaXYgaWQ9ImNvbnRhaW5lciI+CgkJCTxkaXYgY2xhc3M9ImZ1bGxfd2lkdGggYmlnIj4KCQkJCTxpPkRhdGFUYWJsZXM8L2k+IHVuaXQgdGVzdCB0ZW1wbGF0ZSBmb3IgdHdvIHRhYmxlcwoJCQk8L2Rpdj4KCQkJCgkJCTxkaXYgaWQ9ImRlbW8iPgo8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIGNsYXNzPSJkaXNwbGF5IiBpZD0iZXhhbXBsZTEiPgoJPHRoZWFkPgoJCTx0cj4KCQkJPHRoPlJlbmRlcmluZyBlbmdpbmU8L3RoPgoJCQk8dGg+QnJvd3NlcjwvdGg+CgkJCTx0aD5QbGF0Zm9ybShzKTwvdGg+CgkJCTx0aD5FbmdpbmUgdmVyc2lvbjwvdGg+CgkJCTx0aD5DU1MgZ3JhZGU8L3RoPgoJCTwvdHI+Cgk8L3RoZWFkPgoJPHRib2R5PgoJCTx0ciBjbGFzcz0iZ3JhZGVYIj4KCQkJPHRkPlRyaWRlbnQ8L3RkPgoJCQk8dGQ+dGVzdHNlYXJjaHN0cmluZyA8YnI+aHRtbCAmYW1wOyBlbnRpdHk8L3RkPgoJCQk8dGQ+V2luIDk1KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj40PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPlg8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUMiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDUuMDwvdGQ+CgkJCTx0ZD5XaW4gOTUrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjU8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkludGVybmV0CgkJCQkgRXhwbG9yZXIgNS41PC90ZD4KCQkJPHRkPldpbiA5NSs8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+NS41PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldAoJCQkJIEV4cGxvcmVyIDY8L3RkPgoJCQk8dGQ+V2luIDk4KzwvdGQ+CgkJCTx0ZCBjbGFzcz0iY2VudGVyIj42PC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPkE8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+VHJpZGVudDwvdGQ+CgkJCTx0ZD5JbnRlcm5ldCBFeHBsb3JlciA3PC90ZD4KCQkJPHRkPldpbiBYUCBTUDIrPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjc8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5UcmlkZW50PC90ZD4KCQkJPHRkPkFPTCBicm93c2VyIChBT0wgZGVza3RvcCk8L3RkPgoJCQk8dGQ+V2luIFhQPC90ZD4KCQkJPHRkIGNsYXNzPSJjZW50ZXIiPjY8L3RkPgoJCQk8dGQgY2xhc3M9ImNlbnRlciI+QTwvdGQ+CgkJPC90cj4KCTwvdGJvZHk+Cgk8dGZvb3Q+CgkJPHRyPgoJCQk8dGg+UmVuZGVyaW5nIGVuZ2luZTwvdGg+CgkJCTx0aD5Ccm93c2VyPC90aD4KCQkJPHRoPlBsYXRmb3JtKHMpPC90aD4KCQkJPHRoPkVuZ2luZSB2ZXJzaW9uPC90aD4KCQkJPHRoPkNTUyBncmFkZTwvdGg+CgkJPC90cj4KCTwvdGZvb3Q+CjwvdGFibGU+CgoKPHRhYmxlIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgYm9yZGVyPSIwIiBjbGFzcz0iZGlzcGxheSIgaWQ9ImV4YW1wbGUyIj4KCTx0aGVhZD4KCQk8dHI+CgkJCTx0aD5SZW5kZXJpbmcgZW5naW5lPC90aD4KCQkJPHRoPkJyb3dzZXI8L3RoPgoJCQk8dGg+UGxhdGZvcm0ocyk8L3RoPgoJCTwvdHI+Cgk8L3RoZWFkPgoJPHRib2R5PgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMS4wPC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+RmlyZWZveCAxLjU8L3RkPgoJCQk8dGQ+V2luIDk4KyAvIE9TWC4yKzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5GaXJlZm94IDIuMDwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkZpcmVmb3ggMy4wPC90ZD4KCQkJPHRkPldpbiAyaysgLyBPU1guMys8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuMDwvdGQ+CgkJCTx0ZD5PU1guMis8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+Q2FtaW5vIDEuNTwvdGQ+CgkJCTx0ZD5PU1guMys8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TmV0c2NhcGUgNy4yPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBNYWMgT1MgOC42LTkuMjwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5OZXRzY2FwZSBCcm93c2VyIDg8L3RkPgoJCQk8dGQ+V2luIDk4U0UrPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk5ldHNjYXBlIE5hdmlnYXRvciA5PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMis8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjA8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS4yPC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjM8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNDwvdGQ+CgkJCTx0ZD5XaW4gOTUrIC8gT1NYLjErPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS41PC90ZD4KCQkJPHRkPldpbiA5NSsgLyBPU1guMSs8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+TW96aWxsYSAxLjY8L3RkPgoJCQk8dGQ+V2luIDk1KyAvIE9TWC4xKzwvdGQ+CgkJPC90cj4KCQk8dHIgY2xhc3M9ImdyYWRlQSI+CgkJCTx0ZD5HZWNrbzwvdGQ+CgkJCTx0ZD5Nb3ppbGxhIDEuNzwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjErPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPk1vemlsbGEgMS44PC90ZD4KCQkJPHRkPldpbiA5OCsgLyBPU1guMSs8L3RkPgoJCTwvdHI+CgkJPHRyIGNsYXNzPSJncmFkZUEiPgoJCQk8dGQ+R2Vja288L3RkPgoJCQk8dGQ+U2VhbW9ua2V5IDEuMTwvdGQ+CgkJCTx0ZD5XaW4gOTgrIC8gT1NYLjIrPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZ3JhZGVBIj4KCQkJPHRkPkdlY2tvPC90ZD4KCQkJPHRkPkVwaXBoYW55IDIuMjA8L3RkPgoJCQk8dGQ+R25vbWU8L3RkPgoJCTwvdHI+Cgk8L3Rib2R5PgoJPHRmb290PgoJCTx0cj4KCQkJPHRoPlJlbmRlcmluZyBlbmdpbmU8L3RoPgoJCQk8dGg+QnJvd3NlcjwvdGg+CgkJCTx0aD5QbGF0Zm9ybShzKTwvdGg+CgkJPC90cj4KCTwvdGZvb3Q+CjwvdGFibGU+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgoJCTwvZGl2PgoJPC9ib2R5Pgo8L2h0bWw+]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests/1_dom/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests/1_dom/_zero_config.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggIlNhbml0eSBjaGVja3MgZm9yIERhdGFUYWJsZXMgd2l0aCBET00gZGF0YSIgKTsKCm9UZXN0LmZuVGVzdCggCgkialF1ZXJ5LmRhdGFUYWJsZSBmdW5jdGlvbiIsCgludWxsLAoJZnVuY3Rpb24gKCkgeyByZXR1cm4gdHlwZW9mIGpRdWVyeSgpLmRhdGFUYWJsZSA9PSAiZnVuY3Rpb24iOyB9Cik7CgpvVGVzdC5mblRlc3QoCgkialF1ZXJ5LmRhdGFUYWJsZVNldHRpbmdzIHN0b3JhZ2UgYXJyYXkiLAoJbnVsbCwKCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVvZiBqUXVlcnkoKS5kYXRhVGFibGVTZXR0aW5ncyA9PSAib2JqZWN0IjsgfQopOwoKb1Rlc3QuZm5UZXN0KAoJImpRdWVyeS5kYXRhVGFibGVFeHQgcGx1Z2luIG9iamVjdCIsCgludWxsLAoJZnVuY3Rpb24gKCkgeyByZXR1cm4gdHlwZW9mIGpRdWVyeSgpLmRhdGFUYWJsZUV4dCA9PSAib2JqZWN0IjsgfQopOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7CgkKCS8qIEJhc2ljIGNoZWNrcyAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiTGVuZ3RoIGNoYW5naW5nIGRpdiBleGlzdHMiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfbGVuZ3RoJykgIT0gbnVsbDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiRmlsdGVyaW5nIGRpdiBleGlzdHMiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfZmlsdGVyJykgIT0gbnVsbDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiSW5mb3JtYXRpb24gZGl2IGV4aXN0cyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykgIT0gbnVsbDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUGFnaW5hdGlvbiBkaXYgZXhpc3RzIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3BhZ2luYXRlJykgIT0gbnVsbDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUHJvY2Vzc2luZyBkaXYgaXMgb2ZmIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcHJvY2Vzc2luZycpID09IG51bGw7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIjEwIHJvd3Mgc2hvd24gb24gdGhlIGZpcnN0IHBhZ2UiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMTA7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkluaXRpYWwgc29ydCBvY2N1cmVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDApJykuaHRtbCgpID09ICJHZWNrbyI7IH0KCSk7CgkKCS8qIE5lZWQgdG8gdXNlIHRoZSBXYWl0VGVzdCBmb3Igc29ydGluZyBkdWUgdG8gdGhlIHNldFRpbWVvdXQgZGF0YXRhYmxlcyB1c2VzICovCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIChmaXJzdCBjbGljaykgb24gc2Vjb25kIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIChzZWNvbmQgY2xpY2spIG9uIHNlY29uZCBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJTZWFtb25rZXkgMS4xIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyAodGhpcmQgY2xpY2spIG9uIHNlY29uZCBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyAoZmlyc3QgY2xpY2spIG9uIG51bWVyaWMgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiLSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgKHNlY29uZCBjbGljaykgb24gbnVtZXJpYyBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMyknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDMpJykuaHRtbCgpID09ICI1MjIuMSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgbXVsdGktY29sdW1uIChmaXJzdCBjbGljaykiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDApJykuY2xpY2soKTsKCQkJb0Rpc3BhY2hlci5jbGljayggJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKVswXSwgeyAnc2hpZnQnOiB0cnVlIH0gKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHZhciBiID0gCgkJCSQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDApJykuaHRtbCgpID09ICJHZWNrbyIgJiYgCgkJCSQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJDYW1pbm8gMS4wIjsgcmV0dXJuIGI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgbXVsdGktY29sdW1uIC0gc29ydGluZyBzZWNvbmQgY29sdW1uIG9ubHkiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCS8qIEJhc2ljIHBhZ2luZyAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiUGFnaW5nIHRvIHNlY29uZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJJRSBNb2JpbGUiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJQYWdpbmcgdG8gZmlyc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJBdHRlbXB0aW5nIHRvIHBhZ2UgYmFjayBiZXlvbmQgdGhlIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJLyogQ2hhbmdpbmcgbGVuZ3RoICovCglvVGVzdC5mblRlc3QoIAoJCSJDaGFuZ2luZyB0YWJsZSBsZW5ndGggdG8gMjUgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzI1JykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMjU7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoYW5naW5nIHRhYmxlIGxlbmd0aCB0byA1MCByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7ICQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnNTAnKS5jaGFuZ2UoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSA1MDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2hhbmdpbmcgdGFibGUgbGVuZ3RoIHRvIDEwMCByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7ICQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnMTAwJykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gNTc7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoYW5naW5nIHRhYmxlIGxlbmd0aCB0byAxMCByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7ICQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnMTAnKS5jaGFuZ2UoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSAxMDsgfQoJKTsKCQoJLyoKCSAqIEluZm9ybWF0aW9uIGVsZW1lbnQKCSAqLwoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiBvbiB6ZXJvIGNvbmZpZyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gb24gc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAxMSB0byAyMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiBvbiB0aGlyZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMjEgdG8gMzAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gb24gbGFzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDUxIHRvIDU3IG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIGJhY2sgb24gZmlyc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIDI1IHJlY29yZHMiLAoJCWZ1bmN0aW9uICgpIHsgJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcyNScpLmNoYW5nZSgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMSB0byAyNSBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIDI1IHJlY29yZHMgLSBzZWNvbmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDI2IHRvIDUwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggMTAwIHJlY29yZHMgLSBmaXJzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcxMDAnKS5jaGFuZ2UoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMSB0byA1NyBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiBiYWNrIHRvIDEwIHJlY29yZHMiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzEwJykuY2hhbmdlKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbiciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXaW4iKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbicgc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMTEgdG8gMjAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbicgbGFzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDMxIHRvIDMxIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyICdXaW4nIGJhY2sgdG8gZmlyc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciAnV2luJyBzZWNvbmQgcGFnZSAtIHNlY29uZCB0aW1lIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMTEgdG8gMjAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgaW5jcmVhc2VkIHRvICdXaW4gOTgnIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2luIDk4Iikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDkgb2YgOSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciBkZWNyZWFzZWQgdG8gJ1dpbiciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXaW4iKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbicgc2Vjb25kIHBhZ2UgLSB0aGlyZCB0aW1lIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMTEgdG8gMjAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgcmVtb3ZlZCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIiIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJCgkvKgoJICogRmlsdGVyaW5nCgkgKi8KCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXJyAtIHJvd3MiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCS8qIFJlc2V0IHRoZSB0YWJsZSBzdWNoIHRoYXQgdGhlIG9sZCBzb3J0aW5nIGRvZXNuJ3QgbWVzcyB0aGluZ3MgdXAgKi8KCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7CgkJCSQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiVyIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gIkdlY2tvIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1cnIC0gaW5mbyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDQyIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2knIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2kiKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgMzIgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaW4nIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2luIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luJyAtIHNvcnRpbmcgY29sdW1uIDEiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICJBT0wgYnJvd3NlciAoQU9MIGRlc2t0b3ApIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbicgLSBzb3J0aW5nIGNvbHVtbiAxIGluZm8iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbicgLSBzb3J0aW5nIGNvbHVtbiAxIHJldmVyc2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICJTZWFtb25rZXkgMS4xIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbiBYUCcgLSBtYWludGFpbmcgcmV2ZXJzZSBzb3J0aW5nIGNvbCAxIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2luIFhQIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiSW50ZXJuZXQgRXhwbG9yZXIgNyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaW4gWFAnIC0gc29ydGluZyBjb2wgMyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIjQiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luIFhQJyAtIHNvcnRpbmcgY29sIDMgLSByZXZlcnNlZCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIjciOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luJyAtIHNvcnRpbmcgY29sIDMgLSByZXZlcnNlZCBpbmZvIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gNiBvZiA2IGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnbm90aGluZ2hlcmUnIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgibm90aGluZ2hlcmUiKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09IAoJCQkiTm8gbWF0Y2hpbmcgcmVjb3JkcyBmb3VuZCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdub3RoaW5naGVyZScgLSBpbmZvIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDAgdG8gMCBvZiAwIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciBiYWNrIHRvIGJsYW5rIGFuZCAxc3QgY29sdW1uIHNvcnRpbmciLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCIiKS5rZXl1cCgpOwoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgwKScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIlByZWZpeGluZyBhIGZpbHRlciBlbnRyeSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIldpbiIpLmtleXVwKCk7CgkJCSQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiR2Vja29XaW4iKS5rZXl1cCgpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMCB0byAwIG9mIDAgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiUHJlZml4aW5nIGEgZmlsdGVyIGVudHJ5IHdpdGggc3BhY2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJHZWNrbyBXaW4iKS5rZXl1cCgpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAxNyBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJCgkKCQoJCgkKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/-complex_header.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogLWNvbXBsZXhfaGVhZGVyCm9UZXN0LmZuU3RhcnQoICJDb21wbGV4IGhlYWRlciIgKTsKCgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyBvbiBjb2xzcGFuIGhhcyBubyBlZmZlY3QiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyIHRkOmVxKDEpJykuaHRtbCgpID09ICJGaXJlZm94IDEuMCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgb24gbm9uLXVuaXF1ZSBUSCBhbmQgZmlyc3QgVEggaGFzIG5vIGVmZmVjdCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgyKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHIgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkZpcmVmb3ggMS4wIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyBvbiBub24tdW5pcXVlIFRIIGFuZCBzZWNvbmQgVEggd2lsbCBzb3J0IiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDYpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ciB0ZDplcSg0KScpLmh0bWwoKSA9PSAiQSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgb24gbm9uLXVuaXF1ZSBUSCBhbmQgc2Vjb25kIFRIIHdpbGwgc29ydCAtIHJlc2VydmUiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoNiknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyIHRkOmVxKDQpJykuaHRtbCgpID09ICJYIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyBvbiB1bmlxdWUgVEggd2lsbCBzb3J0IiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDUpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ciB0ZDplcSgzKScpLmh0bWwoKSA9PSAiLSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgb24gdW5pcXVlIFRIIHdpbGwgc29ydCAtIHJlc2VydmUiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoNSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyIHRkOmVxKDMpJykuaHRtbCgpID09ICI1MjIuMSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgb24gdW5pcXVlIHJvd3NwYW4gVEggd2lsbCBzb3J0IiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDApJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ciB0ZDplcSgwKScpLmh0bWwoKSA9PSAiR2Vja28iOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/-iDraw.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImlEcmF3IC0gY2hlY2sgdGhhdCBpRHJhdyBpbmNyZW1lbnRzIGZvciBlYWNoIGRyYXciICk7CgoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkFmdGVyIGZpcnN0IGRyYXcsIGlEcmF3IGlzIDEiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLmlEcmF3ID09IDE7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkFmdGVyIHNlY29uZCBkcmF3LCBpRHJhdyBpcyAyIiwKCQlmdW5jdGlvbiAoKSB7IG9UYWJsZS5mbkRyYXcoKSB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5pRHJhdyA9PSAyOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJBZnRlciBzb3J0IiwKCQlmdW5jdGlvbiAoKSB7IG9UYWJsZS5mblNvcnQoW1sxLCdhc2MnXV0pIH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLmlEcmF3ID09IDM7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkFmdGVyIGZpbHRlciIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUuZm5GaWx0ZXIoJ2dlY2tvJykgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3MuaURyYXcgPT0gNDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQWZ0ZXIgYW5vdGhlciBmaWx0ZXIiLAoJCWZ1bmN0aW9uICgpIHsgb1RhYmxlLmZuRmlsdGVyKCdnZWMnKSB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5pRHJhdyA9PSA1OyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/2512.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogMjUxMgpvVGVzdC5mblN0YXJ0KCAiQ2hlY2sgZmlsdGVyaW5nIHdpdGggQlIgYW5kIEhUTUwgZW50aXR5IiApOwoKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJCgkvKiBCYXNpYyBjaGVja3MgKi8KCW9UZXN0LmZuVGVzdCggCgkJIkNoZWNrIGZpbHRlcmluZyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpLmZuRmlsdGVyKCd0ZXN0c2VhcmNoc3RyaW5nJyk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMTsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/2530-2.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggIlVzZXIgZ2l2ZW4gd2l0aCBpcyBsZWZ0IHdoZW4gbm8gc2Nyb2xsaW5nIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCSQoJyNleGFtcGxlJylbMF0uc3R5bGUud2lkdGggPSAiODAlIjsKCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoZWNrIHVzZXIgd2lkdGggaXMgbGVmdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZScpLndpZHRoKCkgPT0gNjQwOyB9CgkpOwoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/2530.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZHltYW5pY190YWJsZQpvVGVzdC5mblN0YXJ0KCAiMjUzMCAtIENoZWNrIHdpZHRoJ3Mgd2hlbiBkZWFsaW5nIHdpdGggZW1wdHkgc3RyaW5ncyIgKTsKCgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkiYWFEYXRhIjogWwoJCQlbJycsJ0ludGVybmV0IEV4cGxvcmVyIDQuMCcsJ1dpbiA5NSsnLCc0JywnWCddLAoJCQlbJycsJ0ludGVybmV0IEV4cGxvcmVyIDUuMCcsJ1dpbiA5NSsnLCc1JywnQyddCgkJXSwKCQkiYW9Db2x1bW5zIjogWwoJCQl7ICJzVGl0bGUiOiAiIiwgInNXaWR0aCI6ICI0MHB4IiB9LAoJCQl7ICJzVGl0bGUiOiAiQnJvd3NlciIgfSwKCQkJeyAic1RpdGxlIjogIlBsYXRmb3JtIiB9LAoJCQl7ICJzVGl0bGUiOiAiVmVyc2lvbiIsICJzQ2xhc3MiOiAiY2VudGVyIiB9LAoJCQl7ICJzVGl0bGUiOiAiR3JhZGUiLCAic0NsYXNzIjogImNlbnRlciIgfQoJCV0KCX0gKTsKCQoJLyogQmFzaWMgY2hlY2tzICovCglvVGVzdC5mblRlc3QoIAoJCSJDaGVjayBjYWxjdWxhdGVkIHdpZHRocyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ciB0ZDplcSgwKScpLndpZHRoKCkgPCAxMDA7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/2569.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggIkRlc3Ryb3kgd2l0aCBoaWRkZW4gY29sdW1ucyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJhb0NvbHVtbkRlZnMiOiBbIAoJCQl7ICJiU2VhcmNoYWJsZSI6IGZhbHNlLCAiYlZpc2libGUiOiBmYWxzZSwgImFUYXJnZXRzIjogWyAyIF0gfSwKCQkJeyAiYlZpc2libGUiOiBmYWxzZSwgImFUYXJnZXRzIjogWyAzIF0gfQoJCV0KCX0gKTsKCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCkuZm5EZXN0cm95KCk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoZWNrIHRoYXQgdGhlIG51bWJlciBvZiBjb2x1bW5zIGluIHRhYmxlIGlzIGNvcnJlY3QiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQnKS5sZW5ndGggPT0gNTsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJBbmQgd2l0aCBzY3JvbGxpbmciLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzU2Nyb2xsWSI6IDIwMCwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbIAoJCQkJCXsgImJTZWFyY2hhYmxlIjogZmFsc2UsICJiVmlzaWJsZSI6IGZhbHNlLCAiYVRhcmdldHMiOiBbIDIgXSB9LAoJCQkJCXsgImJWaXNpYmxlIjogZmFsc2UsICJhVGFyZ2V0cyI6IFsgMyBdIH0KCQkJCV0KCQkJfSApOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpLmZuRGVzdHJveSgpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQnKS5sZW5ndGggPT0gNTsgfQoJKTsKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/2600.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggIjI2MDAgLSBEaXNwbGF5IHJld2luZCB3aGVuIGNoYW5naW5nIGxlbmd0aCIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJbmZvIGNvcnJlY3Qgb24gaW5pdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9pbmZvJykuaHRtbCgpID09ICJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlBhZ2UgMiIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9pbmZvJykuaHRtbCgpID09ICJTaG93aW5nIDExIHRvIDIwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJQYWdlIDMiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGVfaW5mbycpLmh0bWwoKSA9PSAiU2hvd2luZyAyMSB0byAzMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUGFnZSA0IiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlX2luZm8nKS5odG1sKCkgPT0gIlNob3dpbmcgMzEgdG8gNDAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlBhZ2UgNSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9pbmZvJykuaHRtbCgpID09ICJTaG93aW5nIDQxIHRvIDUwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJSZXdpbmQiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbGVuZ3RoIHNlbGVjdCcpLnZhbCgnMTAwJyk7ICQoJyNleGFtcGxlX2xlbmd0aCBzZWxlY3QnKS5jaGFuZ2UoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9pbmZvJykuaHRtbCgpID09ICJTaG93aW5nIDEgdG8gNTcgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/2608.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggIjI2MDggLSBTdGF0ZSBzYXZpbmcgZXNjYXBpbmcgZmlsdGVycyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJiU3RhdGVTYXZlIjogdHJ1ZQoJfSApOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTZXQgdGhlIGZpbHRlciIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoICdcXHMqQ1ZNXFxzKiQnICk7CgkJCSQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLmtleXVwKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoKSA9PSAnXFxzKkNWTVxccyokJzsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiRGVzdHJveSB0aGUgdGFibGUgYW5kIHJlbWFrZSBpdCAtIGNoZWNraW5nIHRoZSBmaWx0ZXIgd2FzIHNhdmVkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlN0YXRlU2F2ZSI6IHRydWUsCgkJCQkiYkRlc3Ryb3kiOiB0cnVlCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgpID09ICdcXHMqQ1ZNXFxzKiQnOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJEbyBpdCBhZ2FpbiB3aXRob3V0IHN0YXRlIHNhdmluZyBhbmQgbWFrZSBzdXJlIGZpbHRlciBpcyBlbXB0eSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJEZXN0cm95IjogdHJ1ZQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoKSA9PSAnJzsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2xlYW4gdXAiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiU3RhdGVTYXZlIjogdHJ1ZSwKCQkJCSJiRGVzdHJveSI6IHRydWUKCQkJfSApOwoJCQkkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoICcnICk7CgkJCSQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLmtleXVwKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoKSA9PSAnJzsgfQoJKTsKCQoJb1Rlc3QuZm5Db29raWVEZXN0cm95KCAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpICk7CglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/2635.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggIjI2MzUgLSBIaWRpbmcgY29sdW1uIGFuZCBzdGF0ZSBzYXZpbmciICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkiYlN0YXRlU2F2ZSI6IHRydWUKCX0gKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU2V0IHRoZSBoaWRkZW4gY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCkuZm5TZXRDb2x1bW5WaXMoIDIsIGZhbHNlICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0aCcpLmxlbmd0aCA9PSA0OyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJEZXN0cm95IHRoZSB0YWJsZSBhbmQgcmVtYWtlIGl0IC0gY2hlY2tpbmcgb25lIGNvbHVtbiB3YXMgcmVtb3ZlZCIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTdGF0ZVNhdmUiOiB0cnVlLAoJCQkJImJEZXN0cm95IjogdHJ1ZQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0aCcpLmxlbmd0aCA9PSA0OyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJEbyBpdCBhZ2FpbiB3aXRob3V0IHN0YXRlIHNhdmluZyBhbmQgbWFrZSBzdXJlIHdlIGFyZSBiYWNrIHRvIDUgY29sdW1ucyIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJEZXN0cm95IjogdHJ1ZQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0aCcpLmxlbmd0aCA9PSA1OyB9CgkpOwoJCglvVGVzdC5mbkNvb2tpZURlc3Ryb3koICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCkgKTsKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/2746-stable-sort.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggIjI3NDYgLSBTdGFibGUgc29ydGluZyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJbml0aWFsIHNvcnQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgcmV0ID0KCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09ICdHZWNrbycgJiYKCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDEpIHRkOmVxKDApJykuaHRtbCgpID09ICdHZWNrbycgJiYKCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICdGaXJlZm94IDEuMCcgJiYKCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDEpIHRkOmVxKDEpJykuaHRtbCgpID09ICdGaXJlZm94IDEuNScgJiYKCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDIpIHRkOmVxKDEpJykuaHRtbCgpID09ICdGaXJlZm94IDIuMCc7CgkJCXJldHVybiByZXQ7CgkJfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUmVzZXJ2ZSBpbml0aWFsIHNvcnQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMCknKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgcmV0ID0KCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09ICdXZWJraXQnICYmCgkJCQkkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAnV2Via2l0JyAmJgoJCQkJJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gJ1NhZmFyaSAxLjInICYmCgkJCQkkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAnU2FmYXJpIDEuMycgJiYKCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDIpIHRkOmVxKDEpJykuaHRtbCgpID09ICdTYWZhcmkgMi4wJzsKCQkJcmV0dXJuIHJldDsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJSZXNlcnZlIHRvIGdvIGJhY2sgdG8gaW5pdGlhbCBzb3J0IHNvcnQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMCknKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgcmV0ID0KCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09ICdHZWNrbycgJiYKCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDEpIHRkOmVxKDApJykuaHRtbCgpID09ICdHZWNrbycgJiYKCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICdGaXJlZm94IDEuMCcgJiYKCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDEpIHRkOmVxKDEpJykuaHRtbCgpID09ICdGaXJlZm94IDEuNScgJiYKCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDIpIHRkOmVxKDEpJykuaHRtbCgpID09ICdGaXJlZm94IDIuMCc7CgkJCXJldHVybiByZXQ7CgkJfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUmVzZXJ2ZSBpbml0aWFsIHNvcnQgYWdhaW4iLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMCknKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgcmV0ID0KCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09ICdXZWJraXQnICYmCgkJCQkkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAnV2Via2l0JyAmJgoJCQkJJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gJ1NhZmFyaSAxLjInICYmCgkJCQkkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAnU2FmYXJpIDEuMycgJiYKCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDIpIHRkOmVxKDEpJykuaHRtbCgpID09ICdTYWZhcmkgMi4wJzsKCQkJcmV0dXJuIHJldDsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJBbmQgb25jZSBtb3JlIGJhY2sgdG8gdGhlIGluaXRpYWwgc29ydCIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgwKScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciByZXQgPQoJCQkJJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gJ0dlY2tvJyAmJgoJCQkJJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMSkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gJ0dlY2tvJyAmJgoJCQkJJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gJ0ZpcmVmb3ggMS4wJyAmJgoJCQkJJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMSkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gJ0ZpcmVmb3ggMS41JyAmJgoJCQkJJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMikgdGQ6ZXEoMSknKS5odG1sKCkgPT0gJ0ZpcmVmb3ggMi4wJzsKCQkJcmV0dXJuIHJldDsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0IG9uIHNlY29uZCBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgcmV0ID0KCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09ICdPdGhlciBicm93c2VycycgJiYKCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDEpIHRkOmVxKDApJykuaHRtbCgpID09ICdUcmlkZW50JyAmJgoJCQkJJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gJ0FsbCBvdGhlcnMnICYmCgkJCQkkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAnQU9MIGJyb3dzZXIgKEFPTCBkZXNrdG9wKScgJiYKCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDIpIHRkOmVxKDEpJykuaHRtbCgpID09ICdDYW1pbm8gMS4wJzsKCQkJcmV0dXJuIHJldDsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJSZXNlcnZlIHNvcnQgb24gc2Vjb25kIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciByZXQgPQoJCQkJJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gJ0dlY2tvJyAmJgoJCQkJJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMSkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gJ1dlYmtpdCcgJiYKCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICdTZWFtb25rZXkgMS4xJyAmJgoJCQkJJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMSkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gJ1NhZmFyaSAzLjAnICYmCgkJCQkkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgyKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAnU2FmYXJpIDIuMCc7CgkJCXJldHVybiByZXQ7CgkJfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQW5kIGJhY2sgdG8gYXNjIHNvcnRpbmcgb24gc2Vjb25kIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciByZXQgPQoJCQkJJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gJ090aGVyIGJyb3dzZXJzJyAmJgoJCQkJJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMSkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gJ1RyaWRlbnQnICYmCgkJCQkkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAnQWxsIG90aGVycycgJiYKCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDEpIHRkOmVxKDEpJykuaHRtbCgpID09ICdBT0wgYnJvd3NlciAoQU9MIGRlc2t0b3ApJyAmJgoJCQkJJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMikgdGQ6ZXEoMSknKS5odG1sKCkgPT0gJ0NhbWlubyAxLjAnOwoJCQlyZXR1cm4gcmV0OwoJCX0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnQgb24gdGhpcmQgY29sdW1uLCBoYXZpbmcgbm93IHNvcnRlZCBvbiBzZWNvbmQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMiknKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgcmV0ID0KCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09ICdPdGhlciBicm93c2VycycgJiYKCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDEpIHRkOmVxKDApJykuaHRtbCgpID09ICdNaXNjJyAmJgoJCQkJJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gJ0FsbCBvdGhlcnMnICYmCgkJCQkkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAnRGlsbG8gMC44JyAmJgoJCQkJJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMikgdGQ6ZXEoMSknKS5odG1sKCkgPT0gJ05ldEZyb250IDMuMSc7CgkJCXJldHVybiByZXQ7CgkJfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUmVzZXJ2ZSBzb3J0IG9uIHRoaXJkIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgyKScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciByZXQgPQoJCQkJJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gJ01pc2MnICYmCgkJCQkkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAnVHJpZGVudCcgJiYKCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICdJRSBNb2JpbGUnICYmCgkJCQkkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAnSW50ZXJuZXQgRXhwbG9yZXIgNycgJiYKCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDIpIHRkOmVxKDEpJykuaHRtbCgpID09ICdBT0wgYnJvd3NlciAoQU9MIGRlc2t0b3ApJzsKCQkJcmV0dXJuIHJldDsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJSZXR1cm4gc29ydGluZyBvbiB0aGlyZCBjb2x1bW4gdG8gYXNjIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDIpJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIHJldCA9CgkJCQkkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAnT3RoZXIgYnJvd3NlcnMnICYmCgkJCQkkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAnTWlzYycgJiYKCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICdBbGwgb3RoZXJzJyAmJgoJCQkJJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMSkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gJ0RpbGxvIDAuOCcgJiYKCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDIpIHRkOmVxKDEpJykuaHRtbCgpID09ICdOZXRGcm9udCAzLjEnOwoJCQlyZXR1cm4gcmV0OwoJCX0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnQgb24gZmlyc3QgY29sdW1uIGhhdmluZyBzb3J0ZWQgb24gc2Vjb25kIHRoZW4gdGhpcmQgY29sdW1ucyIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgwKScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciByZXQgPQoJCQkJJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gJ0dlY2tvJyAmJgoJCQkJJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMSkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gJ0dlY2tvJyAmJgoJCQkJJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gJ0VwaXBoYW55IDIuMjAnICYmCgkJCQkkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAnQ2FtaW5vIDEuMCcgJiYKCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDIpIHRkOmVxKDEpJykuaHRtbCgpID09ICdDYW1pbm8gMS41JzsKCQkJcmV0dXJuIHJldDsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/2799.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogdHdvX3RhYmxlcwpvVGVzdC5mblN0YXJ0KCAiSW5pdGlhbGlzZSB0d28gdGFibGVzIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCSQoJ3RhYmxlLmRpc3BsYXknKS5kYXRhVGFibGUoKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2hlY2sgdGhhdCBpbml0aWFsaXNhdGlvbiB3YXMgb2theSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiB0cnVlOyB9CgkpOwoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/2840-restore-table-width.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggIjI4NDAgLSBSZXN0b3JlIHRhYmxlIHdpZHRoIG9uIGZuRGVzdHJveSIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cglkb2N1bWVudC5jb29raWUgPSAiIjsKCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNTY3JvbGxYIjogIjEwMCUiLAoJCSJzU2Nyb2xsWElubmVyIjogIjExMCUiCgl9ICk7CgkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpLmZuRGVzdHJveSgpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJXaWR0aCBhZnRlciBkZXN0cm95IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlJykud2lkdGgoKSA9PSAiODAwIjsgfQoJKTsKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/2914-state-save-sort.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggIjI5MTQgLSBTdGF0ZSBzYXZpbmcgd2l0aCBhbiBlbXB0eSBhcnJheSIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cglkb2N1bWVudC5jb29raWUgPSAiIjsKCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImJTdGF0ZVNhdmUiOiB0cnVlLAoJCSJhYVNvcnRpbmciOiBbXQoJfSApOwoJCglvVGVzdC5mblRlc3QoIAoJCSJObyBzb3J0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDMpJykuaHRtbCgpID09ICI0IjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiTmV4dCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCkuZm5QYWdlQ2hhbmdlKCAnbmV4dCcgKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJDYW1pbm8gMS4wIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiRGVzdHJveSB0aGUgdGFibGUgYW5kIHJlbWFrZSBpdCAtIGNoZWNraW5nIHdlIGFyZSBzdGlsbCBvbiB0aGUgbmV4dCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlN0YXRlU2F2ZSI6IHRydWUsCgkJCQkJImFhU29ydGluZyI6IFtdLAoJCQkJImJEZXN0cm95IjogdHJ1ZQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQ2FtaW5vIDEuMCI7IH0KCSk7CgkKCW9UZXN0LmZuQ29va2llRGVzdHJveSggJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKSApOwoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/5396-fnUpdate-arrays-mData.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIjUzOTYgLSBmblVwZGF0ZSB3aXRoIDJEIGFycmF5cyBmb3IgYSBzaW5nbGUgcm93IiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCSQoJyNleGFtcGxlIHRoZWFkIHRyJykuYXBwZW5kKCAnPHRoPjY8L3RoPicgKTsKCSQoJyNleGFtcGxlIHRoZWFkIHRyJykuYXBwZW5kKCAnPHRoPjc8L3RoPicgKTsKCSQoJyNleGFtcGxlIHRoZWFkIHRyJykuYXBwZW5kKCAnPHRoPjg8L3RoPicgKTsKCSQoJyNleGFtcGxlIHRoZWFkIHRyJykuYXBwZW5kKCAnPHRoPjk8L3RoPicgKTsKCSQoJyNleGFtcGxlIHRoZWFkIHRyJykuYXBwZW5kKCAnPHRoPjEwPC90aD4nICk7CgkKCXZhciBhRGF0YVNldCA9IFsKICAgIFsKICAgICAgICAiMSIsCiAgICAgICAgIu2Zjeq4uOuPmSIsCiAgICAgICAgIjExNTQzMTUiLAogICAgICAgICJldGMxIiwKICAgICAgICBbCiAgICAgICAgICAgIFsgInRlc3QxQGRhdW0ubmV0IiwgIjIwMTEtMDMtMDQiIF0sCiAgICAgICAgICAgIFsgInRlc3QxQG5hdmVyLmNvbSIsICIyMDA5LTA3LTA2IiBdLAogICAgICAgICAgICBbICJ0ZXN0NEBuYXZlci5jb20iLCAiLGhpZGUiIF0sCiAgICAgICAgICAgIFsgInRlc3Q1P0BuYXZlci5jb20iLCAiIiBdCiAgICAgICAgXSwKICAgICAgICAiMjAxMS0wMy0wNCIsCiAgICAgICAgInNob3ciCiAgICBdLAogICAgWwogICAgICAgICIyIiwKICAgICAgICAi7ZmN6ri47IicIiwKICAgICAgICAiMjE1NDMxNSIsCiAgICAgICAgImV0YzIiLAogICAgICAgIFsKICAgICAgICAgICAgWyAidGVzdDJAZGF1bS5uZXQiLCAiMjAwOS0wOS0yNiIgXSwKICAgICAgICAgICAgWyAidGVzdDJAbmF2ZXIuY29tIiwgIjIwMDktMDUtMjEsaGlkZSIgXSwgCiAgICAgICAgICAgIFsgImxzYkBuYXZlci5jb20iLCAiMjAxMC0wMy0wNSIgXSwKICAgICAgICAgICAgWyAibHNiM0BuYXZlci5jb20iLCAiLGhpZGUiIF0sCiAgICAgICAgICAgIFsgInNvb2Jva2xlZTlAZGF1bS5uZXQiLCAiMjAxMC0wMy0wNSIgXQogICAgICAgIF0sCiAgICAgICAgIjIwMTAtMDMtMDUiLAogICAgICAgICJzaG93IgogICAgXQpdCgkKICAgIHZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSh7CiAgICAgICAgImFhRGF0YSI6IGFEYXRhU2V0LAogICAgICAgICJhb0NvbHVtbnMiOiBbCiAgICAgICAgICB7ICJtRGF0YSI6ICIwIn0sCiAgICAgICAgICB7ICJtRGF0YSI6ICIxIn0sCiAgICAgICAgICB7ICJtRGF0YSI6ICIyIn0sCiAgICAgICAgICB7ICJtRGF0YSI6ICIzIn0sCiAgICAgICAgICB7ICJtRGF0YSI6ICI0LjAuMCJ9LAogICAgICAgICAgeyAibURhdGEiOiAiNC4wLjEifSwKICAgICAgICAgIHsgIm1EYXRhIjogIjQuMS4wIn0sCiAgICAgICAgICB7ICJtRGF0YSI6ICI0LjEuMSJ9LAogICAgICAgICAgeyAibURhdGEiOiAiNSJ9LAogICAgICAgICAgeyAibURhdGEiOiAiNiJ9CiAgICAgICAgXQogICAgfSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiSW5pdGlhbGlzYXRpb24iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gJzEnOwoJCX0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlVwZGF0ZSByb3ciLAoJCWZ1bmN0aW9uICgpIHsKICAgICAgJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKS5mblVwZGF0ZSggWwogICAgICAgICAgIjAiLAogICAgICAgICAgIu2Zjeq4uOyInCIsCiAgICAgICAgICAiMjE1NDMxNSIsCiAgICAgICAgICAiZXRjMiIsCiAgICAgICAgICBbCiAgICAgICAgICAgICAgWyAidGVzdDJAZGF1bS5uZXQiLCAiMjAwOS0wOS0yNiIgXSwKICAgICAgICAgICAgICBbICJ0ZXN0MkBuYXZlci5jb20iLCAiMjAwOS0wNS0yMSxoaWRlIiBdLCAKICAgICAgICAgICAgICBbICJsc2JAbmF2ZXIuY29tIiwgIjIwMTAtMDMtMDUiIF0sCiAgICAgICAgICAgICAgWyAibHNiM0BuYXZlci5jb20iLCAiLGhpZGUiIF0sCiAgICAgICAgICAgICAgWyAic29vYm9rbGVlOUBkYXVtLm5ldCIsICIyMDEwLTAzLTA1IiBdCiAgICAgICAgICBdLAogICAgICAgICAgIjIwMTAtMDMtMDUiLAogICAgICAgICAgInNob3ciCiAgICAgIF0sIDEgKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09ICcwJzsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJPcmlnaW5hbCByb3cgcHJlc2VydmVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDEpIHRkOmVxKDApJykuaHRtbCgpID09ICcxJzsKCQl9CgkpOwoJCgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/5396-fnUpdate-arrays.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIjUzOTYgLSBmblVwZGF0ZSB3aXRoIDJEIGFycmF5cyBmb3IgYSBzaW5nbGUgcm93IiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCSQoJyNleGFtcGxlIHRoZWFkIHRyJykuYXBwZW5kKCAnPHRoPjY8L3RoPicgKTsKCSQoJyNleGFtcGxlIHRoZWFkIHRyJykuYXBwZW5kKCAnPHRoPjc8L3RoPicgKTsKCSQoJyNleGFtcGxlIHRoZWFkIHRyJykuYXBwZW5kKCAnPHRoPjg8L3RoPicgKTsKCSQoJyNleGFtcGxlIHRoZWFkIHRyJykuYXBwZW5kKCAnPHRoPjk8L3RoPicgKTsKCSQoJyNleGFtcGxlIHRoZWFkIHRyJykuYXBwZW5kKCAnPHRoPjEwPC90aD4nICk7CgkKCXZhciBhRGF0YVNldCA9IFsKICAgIFsKICAgICAgICAiMSIsCiAgICAgICAgIu2Zjeq4uOuPmSIsCiAgICAgICAgIjExNTQzMTUiLAogICAgICAgICJldGMxIiwKICAgICAgICBbCiAgICAgICAgICAgIFsgInRlc3QxQGRhdW0ubmV0IiwgIjIwMTEtMDMtMDQiIF0sCiAgICAgICAgICAgIFsgInRlc3QxQG5hdmVyLmNvbSIsICIyMDA5LTA3LTA2IiBdLAogICAgICAgICAgICBbICJ0ZXN0NEBuYXZlci5jb20iLCAiLGhpZGUiIF0sCiAgICAgICAgICAgIFsgInRlc3Q1P0BuYXZlci5jb20iLCAiIiBdCiAgICAgICAgXSwKICAgICAgICAiMjAxMS0wMy0wNCIsCiAgICAgICAgInNob3ciCiAgICBdLAogICAgWwogICAgICAgICIyIiwKICAgICAgICAi7ZmN6ri47IicIiwKICAgICAgICAiMjE1NDMxNSIsCiAgICAgICAgImV0YzIiLAogICAgICAgIFsKICAgICAgICAgICAgWyAidGVzdDJAZGF1bS5uZXQiLCAiMjAwOS0wOS0yNiIgXSwKICAgICAgICAgICAgWyAidGVzdDJAbmF2ZXIuY29tIiwgIjIwMDktMDUtMjEsaGlkZSIgXSwgCiAgICAgICAgICAgIFsgImxzYkBuYXZlci5jb20iLCAiMjAxMC0wMy0wNSIgXSwKICAgICAgICAgICAgWyAibHNiM0BuYXZlci5jb20iLCAiLGhpZGUiIF0sCiAgICAgICAgICAgIFsgInNvb2Jva2xlZTlAZGF1bS5uZXQiLCAiMjAxMC0wMy0wNSIgXQogICAgICAgIF0sCiAgICAgICAgIjIwMTAtMDMtMDUiLAogICAgICAgICJzaG93IgogICAgXQpdCgkKICAgIHZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSh7CiAgICAgICAgImFhRGF0YSI6IGFEYXRhU2V0LAogICAgICAgICJhb0NvbHVtbnMiOiBbCiAgICAgICAgICB7ICJtRGF0YVByb3AiOiAiMCJ9LAogICAgICAgICAgeyAibURhdGFQcm9wIjogIjEifSwKICAgICAgICAgIHsgIm1EYXRhUHJvcCI6ICIyIn0sCiAgICAgICAgICB7ICJtRGF0YVByb3AiOiAiMyJ9LAogICAgICAgICAgeyAibURhdGFQcm9wIjogIjQuMC4wIn0sCiAgICAgICAgICB7ICJtRGF0YVByb3AiOiAiNC4wLjEifSwKICAgICAgICAgIHsgIm1EYXRhUHJvcCI6ICI0LjEuMCJ9LAogICAgICAgICAgeyAibURhdGFQcm9wIjogIjQuMS4xIn0sCiAgICAgICAgICB7ICJtRGF0YVByb3AiOiAiNSJ9LAogICAgICAgICAgeyAibURhdGFQcm9wIjogIjYifQogICAgICAgIF0KICAgIH0pOwoJCgkKCW9UZXN0LmZuVGVzdCggCgkJIkluaXRpYWxpc2F0aW9uIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09ICcxJzsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJVcGRhdGUgcm93IiwKCQlmdW5jdGlvbiAoKSB7CiAgICAgICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCkuZm5VcGRhdGUoIFsKICAgICAgICAgICIwIiwKICAgICAgICAgICLtmY3quLjsiJwiLAogICAgICAgICAgIjIxNTQzMTUiLAogICAgICAgICAgImV0YzIiLAogICAgICAgICAgWwogICAgICAgICAgICAgIFsgInRlc3QyQGRhdW0ubmV0IiwgIjIwMDktMDktMjYiIF0sCiAgICAgICAgICAgICAgWyAidGVzdDJAbmF2ZXIuY29tIiwgIjIwMDktMDUtMjEsaGlkZSIgXSwgCiAgICAgICAgICAgICAgWyAibHNiQG5hdmVyLmNvbSIsICIyMDEwLTAzLTA1IiBdLAogICAgICAgICAgICAgIFsgImxzYjNAbmF2ZXIuY29tIiwgIixoaWRlIiBdLAogICAgICAgICAgICAgIFsgInNvb2Jva2xlZTlAZGF1bS5uZXQiLCAiMjAxMC0wMy0wNSIgXQogICAgICAgICAgXSwKICAgICAgICAgICIyMDEwLTAzLTA1IiwKICAgICAgICAgICJzaG93IgogICAgICBdLCAxICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAnMCc7CgkJfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiT3JpZ2luYWwgcm93IHByZXNlcnZlZCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAnMSc7CgkJfQoJKTsKCQoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/5508-xscroll-zero-content.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggIjU1MDggLSBUYWJsZSBjb250YWluZXIgd2lkdGggZG9lc24ndCBjaGFuZ2Ugd2hlbiBmaWx0ZXJpbmcgYXBwbGllZCB0byBzY3JvbGxpbmcgdGFibGUiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic1Njcm9sbFkiOiAiMzAwcHgiLAoJCSJiUGFnaW5hdGUiOiBmYWxzZQoJfSApOwoJCglvVGVzdC5mblRlc3QoIAoJCSJXaWR0aCBvZiBjb250YWluZXIgODAwcHggb24gaW5pdCB3aXRoIHNjcm9sbCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCdkaXYuZGF0YVRhYmxlc19zY3JvbGxCb2R5Jykud2lkdGgoKSA9PSA4MDA7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlVuYWx0ZXJlZCB3aGVuIGZpbHRlciBhcHBsaWVkIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCkuZm5GaWx0ZXIoJzEyMycpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJ2Rpdi5kYXRhVGFibGVzX3Njcm9sbEJvZHknKS53aWR0aCgpID09IDgwMDsgfQoJKTsKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/6776-scrolling-table-grows.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogNjc3NgpvVGVzdC5mblN0YXJ0KCAiQWN0aW9ucyBvbiBhIHNjcm9sbGluZyB0YWJsZSBrZWVwIHdpZHRoIiApOwoKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKICAgICAgICAiYkZpbHRlciI6IHRydWUsCiAgICAgICAgImJTb3J0IjogdHJ1ZSwKICAgICAgICAic1Njcm9sbFkiOiAiMTAwcHgiLAogICAgICAgICJiUGFnaW5hdGUiOiBmYWxzZQoJfSApOwoJCgl2YXIgaVdpZHRoID0gJCgnZGl2LmRhdGFUYWJsZXNfd3JhcHBlcicpLndpZHRoKCk7CgoJb1Rlc3QuZm5UZXN0KCAKCQkiRmlyc3Qgc29ydCBoYXMgbm8gZWZmZWN0IG9uIHdpZHRoIiwKCQlmdW5jdGlvbiAoKSB7ICQoJ3RoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCdkaXYuZGF0YVRhYmxlc193cmFwcGVyJykud2lkdGgoKSA9PSBpV2lkdGg7IH0KCSk7CgoJb1Rlc3QuZm5UZXN0KCAKCQkiU2Vjb25kIHNvcnQgaGFzIG5vIGVmZmVjdCBvbiB3aWR0aCIsCgkJZnVuY3Rpb24gKCkgeyAkKCd0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnZGl2LmRhdGFUYWJsZXNfd3JhcHBlcicpLndpZHRoKCkgPT0gaVdpZHRoOyB9CgkpOwoKCW9UZXN0LmZuVGVzdCggCgkJIlRoaXJkIHNvcnQgaGFzIG5vIGVmZmVjdCBvbiB3aWR0aCIsCgkJZnVuY3Rpb24gKCkgeyAkKCd0aDplcSgyKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnZGl2LmRhdGFUYWJsZXNfd3JhcHBlcicpLndpZHRoKCkgPT0gaVdpZHRoOyB9CgkpOwoKCW9UZXN0LmZuVGVzdCggCgkJIkZpbHRlciBoYXMgbm8gZWZmZWN0IG9uIHdpZHRoIiwKCQlmdW5jdGlvbiAoKSB7IG9UYWJsZS5mbkZpbHRlcignaScpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJ2Rpdi5kYXRhVGFibGVzX3dyYXBwZXInKS53aWR0aCgpID09IGlXaWR0aDsgfQoJKTsKCglvVGVzdC5mblRlc3QoIAoJCSJGaWx0ZXIgMiBoYXMgbm8gZWZmZWN0IG9uIHdpZHRoIiwKCQlmdW5jdGlvbiAoKSB7IG9UYWJsZS5mbkZpbHRlcignaW4nKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCdkaXYuZGF0YVRhYmxlc193cmFwcGVyJykud2lkdGgoKSA9PSBpV2lkdGg7IH0KCSk7CgoJb1Rlc3QuZm5UZXN0KCAKCQkiTm8gcmVzdWx0IGZpbHRlciBoYXMgaGVhZGVyIGFuZCBib2R5IGF0IHNhbWUgd2lkdGgiLAoJCWZ1bmN0aW9uICgpIHsgb1RhYmxlLmZuRmlsdGVyKCd4eHgnKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZScpLndpZHRoKCkgPT0gJCgnZGl2LmRhdGFUYWJsZXNfc2Nyb2xsSGVhZElubmVyJykud2lkdGgoKTsgfQoJKTsKCglvVGVzdC5mblRlc3QoIAoJCSJGaWx0ZXIgd2l0aCBubyByZXN1bHRzIGhhcyBubyBlZmZlY3Qgb24gd2lkdGgiLAoJCWZ1bmN0aW9uICgpIHsgb1RhYmxlLmZuRmlsdGVyKCd4eHgnKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCdkaXYuZGF0YVRhYmxlc193cmFwcGVyJykud2lkdGgoKSA9PSBpV2lkdGg7IH0KCSk7CgoJb1Rlc3QuZm5UZXN0KCAKCQkiRmlsdGVyIHdpdGggbm8gcmVzdWx0cyBoYXMgdGFibGUgZXF1YWwgdG8gd3JhcHBlciB3aWR0aCIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUuZm5GaWx0ZXIoJ3h4eCcpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJ2Rpdi5kYXRhVGFibGVzX3dyYXBwZXInKS53aWR0aCgpID09ICQoJyNleGFtcGxlJykud2lkdGgoKTsgfQoJKTsKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/aaSorting.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImFhU29ydGluZyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiRGVmYXVsdCBzb3J0aW5nIGlzIHNpbmdsZSBjb2x1bW4iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gb1NldHRpbmdzLmFhU29ydGluZy5sZW5ndGggPT0gMSAmJiB0eXBlb2Ygb1NldHRpbmdzLmFhU29ydGluZ1swXSA9PSAnb2JqZWN0JzsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJEZWZhdWx0IHNvcnRpbmcgaXMgZmlyc3QgY29sdW1uIGFzYyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiBvU2V0dGluZ3MuYWFTb3J0aW5nWzBdLmxlbmd0aCA9PSAzICYmIG9TZXR0aW5ncy5hYVNvcnRpbmdbMF1bMF0gPT0gMCAmJgoJCQkJb1NldHRpbmdzLmFhU29ydGluZ1swXVsxXSA9PSAnYXNjJzsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIGlzIGFwcGxpZWQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gIkdlY2tvIjsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJDdXN0b20gc29ydGluZyBvbiBzaW5nbGUgc3RyaW5nIGNvbHVtbiBhc2MiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFTb3J0aW5nIjogW1snMScsJ2FzYyddXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ3VzdG9tIHNvcnRpbmcgb24gc2luZ2xlIHN0cmluZyBjb2x1bW4gZGVzYyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYVNvcnRpbmciOiBbWycxJywnZGVzYyddXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiU2VhbW9ua2V5IDEuMSI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ3VzdG9tIHNvcnRpbmcgb24gc2luZ2xlIGludCBjb2x1bW4gYXNjIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhU29ydGluZyI6IFtbJzEnLCdhc2MnXV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIi0iOyB9CgkpOwoJCgkKCW9UZXN0LmZuVGVzdCggCgkJIkN1c3RvbSBzb3J0aW5nIG9uIHNpbmdsZSBpbnQgY29sdW1uIGRlc2MiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFTb3J0aW5nIjogW1snMScsJ2Rlc2MnXV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIlNlYW1vbmtleSAxLjEiOyB9CgkpOwoJCgkKCW9UZXN0LmZuVGVzdCggCgkJIk11bHRpLWNvbHVtbiBzb3J0aW5nICgyIGNvbHVtbikgLSBzdHJpbmcgYXNjIC8gc3RyaW5nIGFzYyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYVNvcnRpbmciOiBbWycwJywnYXNjJ10sIFsnMScsJ2FzYyddXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQ2FtaW5vIDEuMCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIk11bHRpLWNvbHVtbiBzb3J0aW5nICgyIGNvbHVtbikgLSBzdHJpbmcgYXNjIC8gc3RyaW5nIGRlc2MiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFTb3J0aW5nIjogW1snMCcsJ2FzYyddLCBbJzEnLCdkZXNjJ11dCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJTZWFtb25rZXkgMS4xIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiTXVsdGktY29sdW1uIHNvcnRpbmcgKDIgY29sdW1uKSAtIHN0cmluZyBkZXNjIC8gc3RyaW5nIGFzYyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYVNvcnRpbmciOiBbWycwJywnZGVzYyddLCBbJzEnLCdhc2MnXV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gImlQb2QgVG91Y2ggLyBpUGhvbmUiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJNdWx0aS1jb2x1bW4gc29ydGluZyAoMiBjb2x1bW4pIC0gc3RyaW5nIGRlc2MgLyBzdHJpbmcgZGVzYyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYVNvcnRpbmciOiBbWycwJywnZGVzYyddLCBbJzEnLCdkZXNjJ11dCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJTYWZhcmkgMy4wIjsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJNdWx0aS1jb2x1bW4gc29ydGluZyAoMiBjb2x1bW4pIC0gc3RyaW5nIGFzYyAvIGludCBhc2MiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFTb3J0aW5nIjogW1snMCcsJ2FzYyddLCBbJzMnLCdhc2MnXV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIjEiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJNdWx0aS1jb2x1bW4gc29ydGluZyAoMiBjb2x1bW4pIC0gc3RyaW5nIGFzYyAvIGludCBkZXNjIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhU29ydGluZyI6IFtbJzAnLCdhc2MnXSwgWyczJywnZGVzYyddXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiMS45IjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiTXVsdGktY29sdW1uIHNvcnRpbmcgKDIgY29sdW1uKSAtIHN0cmluZyBkZXNjIC8gaW50IGFzYyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYVNvcnRpbmciOiBbWycwJywnZGVzYyddLCBbJzMnLCdhc2MnXV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIjEyNS41IjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiTXVsdGktY29sdW1uIHNvcnRpbmcgKDIgY29sdW1uKSAtIHN0cmluZyBkZXNjIC8gaW50IGRlc2MiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFTb3J0aW5nIjogW1snMCcsJ2Rlc2MnXSwgWyczJywnZGVzYyddXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiNTIyLjEiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJNdWx0aS1jb2x1bW4gc29ydGluZyAoMyBjb2x1bW4pIC0gc3RyaW5nIGFzYyAvIGludCBhc2MgLyBzdHJpbmcgYXNjIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhU29ydGluZyI6IFtbJzAnLCdhc2MnXSwgWyczJywnYXNjJ10sIFsnMScsJ2FzYyddXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSg3KSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiRmlyZWZveCAxLjAiOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/aaSortingFixed.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImFhU29ydGluZ0ZpeGVkIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJObyBmaXhlZCBzb3J0aW5nIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gb1NldHRpbmdzLmFhU29ydGluZ0ZpeGVkID09IG51bGw7CgkJfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJGaXhlZCBzb3J0aW5nIG9uIGZpcnN0IGNvbHVtbiAoc3RyaW5nL2FzYykgd2l0aCB1c2VyIHNvcnRpbmcgb24gc2Vjb25kIGNvbHVtbiAoc3RyaW5nL2FzYykiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFTb3J0aW5nRml4ZWQiOiBbWycwJywnYXNjJ11dCgkJCX0gKTsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkNhbWlubyAxLjAiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJGaXhlZCBzb3J0aW5nIG9uIGZpcnN0IGNvbHVtbiAoc3RyaW5nL2FzYykgd2l0aCB1c2VyIHNvcnRpbmcgb24gc2Vjb25kIGNvbHVtbiAoc3RyaW5nL2Rlc2MpIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJTZWFtb25rZXkgMS4xIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiRml4ZWQgc29ydGluZyBvbiBmb3VydGggY29sdW1uIChpbnQvYXNjKSB3aXRoIHVzZXIgc29ydGluZyBvbiBzZWNvbmQgY29sdW1uIChzdHJpbmcvYXNjKSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYVNvcnRpbmdGaXhlZCI6IFtbJzMnLCdhc2MnXV0KCQkJfSApOwoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkZpeGVkIHNvcnRpbmcgb24gZm91cnRoIGNvbHVtbiAoaW50L2FzYykgd2l0aCB1c2VyIHNvcnRpbmcgb24gc2Vjb25kIGNvbHVtbiAoc3RyaW5nL2Rlc2MpIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJQU1AgYnJvd3NlciI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/aoColumns.bSearchable.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5iU2VhY2hhYmxlIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDb2x1bW5zIGFyZSBzZWFyY2hhYmxlIGJ5IGRlZmF1bHQiLAoJCWZ1bmN0aW9uICgpIHsgb1RhYmxlLmZuRmlsdGVyKCJDYW1pbm8iKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKS5tYXRjaCgvQ2FtaW5vLyk7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkRpc2FibGluZyBzb3J0aW5nIG9uIGEgY29sdW1uIHJlbW92ZXMgaXQgZnJvbSB0aGUgZ2xvYmFsIGZpbHRlciIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJbnVsbCwKCQkJCQl7ICJiU2VhcmNoYWJsZSI6IGZhbHNlIH0sCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCQlvVGFibGUuZm5GaWx0ZXIoIkNhbWlubyIpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gIk5vIG1hdGNoaW5nIHJlY29yZHMgZm91bmQiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJEaXNhYmxlZCBvbiBvbmUgY29sdW1uIGhhcyBubyBlZmZlY3Qgb24gb3RoZXIgY29sdW1ucyIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUuZm5GaWx0ZXIoIldlYmtpdCIpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09ICJXZWJraXQiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJEaXNhYmxlIGZpbHRlcmluZyBvbiBtdWx0aXBsZSBjb2x1bW5zIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQl7ICJiU2VhcmNoYWJsZSI6IGZhbHNlIH0sCgkJCQkJeyAiYlNlYXJjaGFibGUiOiBmYWxzZSB9LAoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQkJb1RhYmxlLmZuRmlsdGVyKCJXZWJraXQiKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09ICJObyBtYXRjaGluZyByZWNvcmRzIGZvdW5kIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiRmlsdGVyIG9uIHNlY29uZCBkaXNhYmxlZCBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgb1RhYmxlLmZuRmlsdGVyKCJDYW1pbm8iKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiTm8gbWF0Y2hpbmcgcmVjb3JkcyBmb3VuZCI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/aoColumns.bSortable.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5iU29ydGFibGUiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkFsbCBjb2x1bW5zIGFyZSBzb3J0YWJsZSBieSBkZWZhdWx0IiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNhbiBkaXNhYmxlIHNvcnRpbmcgZnJvbSBvbmUgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQludWxsLAoJCQkJCXsgImJTb3J0YWJsZSI6IGZhbHNlIH0sCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSAhPSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkRpc2FibGVkIGNvbHVtbiBoYXMgbm8gc29ydGluZyBjbGFzcyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmhhc0NsYXNzKCJzb3J0aW5nX2FzYyIpID09IGZhbHNlOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJPdGhlciBjb2x1bW5zIGNhbiBzdGlsbCBzb3J0IiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDQpJykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoNCknKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoNCknKS5odG1sKCkgPT0gIlgiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJEaXNhYmxlIHNvcnRpbmcgb24gbXVsdGlwbGUgY29sdW1ucyAtIG5vIHNvcnRpbmcgY2xhc3NlcyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJbnVsbCwKCQkJCQl7ICJiU29ydGFibGUiOiBmYWxzZSB9LAoJCQkJCW51bGwsCgkJCQkJeyAiYlNvcnRhYmxlIjogZmFsc2UgfSwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuaGFzQ2xhc3MoInNvcnRpbmciKSB8fAoJCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMyknKS5oYXNDbGFzcygic29ydGluZyIpCgkJCXJldHVybiBiUmV0dXJuID09IGZhbHNlOwoJCX0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgb24gZGlzYWJsZWQgY29sdW1uIDEgaGFzIG5vIGVmZmVjdCIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSAhPSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgb24gZGlzYWJsZWQgY29sdW1uIDIgaGFzIG5vIGVmZmVjdCIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgzKScpLmh0bWwoKSAhPSAiLSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNlY29uZCBzb3J0IG9uIGRpc2FibGVkIGNvbHVtbiAyIGhhcyBubyBlZmZlY3QiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMyknKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMyknKS5odG1sKCkgIT0gIi0iOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJFdmVuIHdpdGggbXVsdGlwbGUgZGlzYWJsZWQgc29ydGluZyBjb2x1bW5zIG90aGVyIGNvbHVtbnMgY2FuIHN0aWxsIHNvcnQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoNCknKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSg0KScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSg0KScpLmh0bWwoKSA9PSAiWCI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/aoColumns.bUseRendered.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5iVXNlUmVuZGVyZWQiICk7CgovKiBiVXNlUmVuZGVyZWQgaXMgdXNlZCB0byBhbHRlciBzb3J0aW5nIGRhdGEsIGlmIGZhbHNlIHRoZW4gdGhlIG9yaWdpbmFsIGRhdGEgaXMgdXNlZCBmb3IKICogc29ydGluZyByYXRoZXIgdGhhbiB0aGUgcmVuZGVyZWQgZGF0YQogKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG1UbXAgPSAwOwoJCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkiYW9Db2x1bW5zIjogWwoJCQludWxsLAoJCQl7ICJmblJlbmRlciI6IGZ1bmN0aW9uIChhKSB7CgkJCQlpZiAoIG1UbXAgPT0gMCApIHsKCQkJCQltVG1wKys7CgkJCQkJcmV0dXJuICJhYWEiOwoJCQkJfSBlbHNlCgkJCQkJcmV0dXJuIGEuYURhdGFbYS5pRGF0YUNvbHVtbl07CgkJCX0gfSwKCQkJbnVsbCwKCQkJbnVsbCwKCQkJbnVsbAoJCV0KCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJEZWZhdWx0IGZvciBiVXNlUmVuZGVyZWQgaXMgdHJ1ZSAtIHJlbmRlcmVkIGRhdGEgaXMgdXNlZCBmb3Igc29ydGluZyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gJ2FhYSc7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIldoZW4gYlVzZVJlbmRlcmVkIGlzIGZhbHNlLCBvcmlnaW5hbCBkYXRhIGlzIHVzZWQgZm9yIHNvcnRpbmciLAoJCWZ1bmN0aW9uICgpIHsKCQkJbVRtcCA9IDA7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQludWxsLAoJCQkJCXsgCgkJCQkJCSJiVXNlUmVuZGVyZWQiOiBmYWxzZSwKCQkJCQkJImZuUmVuZGVyIjogZnVuY3Rpb24gKGEpIHsKCQkJCQkJCWlmICggbVRtcCA9PSAwICkgewoJCQkJCQkJCW1UbXArKzsKCQkJCQkJCQlyZXR1cm4gImFhYSI7CgkJCQkJCQl9IGVsc2UgewoJCQkJCQkJCXJldHVybiBhLmFEYXRhW2EuaURhdGFDb2x1bW5dOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfSwKCQkJCQludWxsLAoJCQkJCW51bGwsCgkJCQkJbnVsbAoJCQkJXQoJCQl9ICk7CgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICdBbGwgb3RoZXJzJzsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJiVXNlUmVuZGVyZWQgc2V0IHRvIGZhbHNlIG9uIG9uZSBjb2x1bW5zIGFuZCB0cnVlIChkZWZhdWx0KSBvbiB0d28gb3RoZXJzIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW1UbXAgPSAwOwoJCQl2YXIgbVRtcDIgPSAwOwoJCQl2YXIgbVRtcDMgPSAwOwoJCQkKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCXsKCQkJCQkJImZuUmVuZGVyIjogZnVuY3Rpb24gKGEpIHsKCQkJCQkJCWlmICggbVRtcCA9PSAwICkgewoJCQkJCQkJCW1UbXArKzsKCQkJCQkJCQlyZXR1cm4gImFhYTEiOwoJCQkJCQkJfSBlbHNlIHsKCQkJCQkJCQlyZXR1cm4gYS5hRGF0YVthLmlEYXRhQ29sdW1uXTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCX0sCgkJCQkJeyAKCQkJCQkJImJVc2VSZW5kZXJlZCI6IGZhbHNlLAoJCQkJCQkiZm5SZW5kZXIiOiBmdW5jdGlvbiAoYSkgewoJCQkJCQkJaWYgKCBtVG1wMiA9PSAwICkgewoJCQkJCQkJCW1UbXAyKys7CgkJCQkJCQkJcmV0dXJuICJhYWEyIjsKCQkJCQkJCX0gZWxzZSB7CgkJCQkJCQkJcmV0dXJuIGEuYURhdGFbYS5pRGF0YUNvbHVtbl07CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQl9LAoJCQkJCXsKCQkJCQkJImZuUmVuZGVyIjogZnVuY3Rpb24gKGEpIHsKCQkJCQkJCWlmICggbVRtcDMgPT0gMCApIHsKCQkJCQkJCQltVG1wMysrOwoJCQkJCQkJCXJldHVybiAienp6MyI7CgkJCQkJCQl9IGVsc2UgewoJCQkJCQkJCXJldHVybiBhLmFEYXRhW2EuaURhdGFDb2x1bW5dOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfSwKCQkJCQludWxsLAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gJ2FhYTEnOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJNdWx0aS1jb2x1bW4gcmVuZGVyaW5nIC0gMm5kIGNvbHVtbiBzb3J0aW5nIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAnQWxsIG90aGVycyc7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIk11bHRpLWNvbHVtbiByZW5kZXJpbmcgLSAzcmQgY29sdW1uIHNvcnRpbmciLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMiknKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgyKScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgyKScpLmh0bWwoKSA9PSAnenp6Myc7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIk11bHRpLWNvbHVtbiByZW5kZXJpbmcgLSA0dGggY29sdW1uIHNvcnRpbmciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMyknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDMpJykuaHRtbCgpID09ICctJzsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiTXVsdGktY29sdW1uIHJlbmRlcmluZyAtIDV0aCBjb2x1bW4gc29ydGluZyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSg0KScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoNCknKS5odG1sKCkgPT0gJ0EnOyB9CgkpOwoJCgkKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/aoColumns.bVisible.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5iVmlzaWJsZSIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQWxsIGNvbHVtbnMgYXJlIHZpc2libGUgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZCcpLmxlbmd0aCA9PSA1OyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDYW4gaGlkZSBvbmUgY29sdW1uIGFuZCBpdCByZW1vdmVzIHRkIGNvbHVtbiBmcm9tIERPTSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJbnVsbCwKCQkJCQl7ICJiVmlzaWJsZSI6IGZhbHNlIH0sCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQnKS5sZW5ndGggPT0gNDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2FuIGhpZGUgb25lIGNvbHVtbiBhbmQgaXQgcmVtb3ZlcyB0aGVhZCB0aCBjb2x1bW4gZnJvbSBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGgnKS5sZW5ndGggPT0gNDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2FuIGhpZGUgb25lIGNvbHVtbiBhbmQgaXQgcmVtb3ZlcyB0Zm9vdCB0aCBjb2x1bW4gZnJvbSBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGZvb3QgdHI6ZXEoMCkgdGgnKS5sZW5ndGggPT0gNDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiVGhlIGNvcnJlY3QgdGhlYWQgY29sdW1uIGhhcyBiZWVuIGhpZGRlbiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBqcU5vZGVzID0gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGgnKTsKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCWpxTm9kZXNbMF0uaW5uZXJIVE1MID09ICJSZW5kZXJpbmcgZW5naW5lIiAmJgoJCQkJanFOb2Rlc1sxXS5pbm5lckhUTUwgPT0gIlBsYXRmb3JtKHMpIiAmJgoJCQkJanFOb2Rlc1syXS5pbm5lckhUTUwgPT0gIkVuZ2luZSB2ZXJzaW9uIiAmJgoJCQkJanFOb2Rlc1szXS5pbm5lckhUTUwgPT0gIkNTUyBncmFkZSI7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlRoZSBjb3JyZWN0IHRib2R5IGNvbHVtbiBoYXMgYmVlbiBoaWRkZW4iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb0Rpc3BhY2hlci5jbGljayggJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKVswXSwgeyAnc2hpZnQnOiB0cnVlIH0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGpxTm9kZXMgPSAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZCcpOwoJCQl2YXIgYlJldHVybiA9IAoJCQkJanFOb2Rlc1swXS5pbm5lckhUTUwgPT0gIkdlY2tvIiAmJgoJCQkJanFOb2Rlc1sxXS5pbm5lckhUTUwgPT0gIkdub21lIiAmJgoJCQkJanFOb2Rlc1syXS5pbm5lckhUTUwgPT0gIjEuOCIgJiYKCQkJCWpxTm9kZXNbM10uaW5uZXJIVE1MID09ICJBIjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJDYW4gaGlkZSBtdWx0aXBsZSBjb2x1bW5zIGFuZCBpdCByZW1vdmVzIHRkIGNvbHVtbiBmcm9tIERPTSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJbnVsbCwKCQkJCQl7ICJiVmlzaWJsZSI6IGZhbHNlIH0sCgkJCQkJeyAiYlZpc2libGUiOiBmYWxzZSB9LAoJCQkJCW51bGwsCgkJCQkJeyAiYlZpc2libGUiOiBmYWxzZSB9CgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkJykubGVuZ3RoID09IDI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIk11bHRpcGxlIGhpZGUgLSByZW1vdmVzIHRoZWFkIHRoIGNvbHVtbiBmcm9tIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSgwKSB0aCcpLmxlbmd0aCA9PSAyOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJNdWx0aXBsZSBoaWRlIC0gcmVtb3ZlcyB0Zm9vdCB0aCBjb2x1bW4gZnJvbSBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGZvb3QgdHI6ZXEoMCkgdGgnKS5sZW5ndGggPT0gMjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiTXVsdGlwbGUgaGlkZSAtIHRoZSBjb3JyZWN0IHRoZWFkIGNvbHVtbnMgaGF2ZSBiZWVuIGhpZGRlbiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBqcU5vZGVzID0gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGgnKTsKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCWpxTm9kZXNbMF0uaW5uZXJIVE1MID09ICJSZW5kZXJpbmcgZW5naW5lIiAmJgoJCQkJanFOb2Rlc1sxXS5pbm5lckhUTUwgPT0gIkVuZ2luZSB2ZXJzaW9uIgoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJNdWx0aXBsZSBoaWRlIC0gdGhlIGNvcnJlY3QgdGJvZHkgY29sdW1ucyBoYXZlIGJlZW4gaGlkZGVuIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9EaXNwYWNoZXIuY2xpY2soICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJylbMF0sIHsgJ3NoaWZ0JzogdHJ1ZSB9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBqcU5vZGVzID0gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQnKTsKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCWpxTm9kZXNbMF0uaW5uZXJIVE1MID09ICJHZWNrbyIgJiYKCQkJCWpxTm9kZXNbMV0uaW5uZXJIVE1MID09ICIxIgoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/aoColumns.bVisible2.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogY29tcGxleF9oZWFkZXJfMgpvVGVzdC5mblN0YXJ0KCAiYW9Db2x1bW5zLmJWaXNpYmxlIHdpdGggY29tcGxleCBoZWFkZXJzIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJBbGwgY29sdW1ucyBhcmUgdmlzaWJsZSBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkJykubGVuZ3RoID09IDU7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkhpZGUgdGhlIGZpcnN0IGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJeyAiYlZpc2libGUiOiBmYWxzZSB9LAoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQnKS5sZW5ndGggPT0gNDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaXJzdCBjZWxsIGlzICcyJyAtIGZpcnN0IGNvbHVtbiBoaWRkZW4iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGg6ZXEoMCknKS5odG1sKCkgPT0gIjIiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpcnN0IGNlbGwgaGFzIGNvbHNwYW4gb2YgMyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSgwKSB0aDplcSgwKScpWzBdLmdldEF0dHJpYnV0ZSgnY29sc3BhbicpID09IDM7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlyc3QgY2VsbCBoYXMgcm93c3BhbiBvZiAyIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDApIHRoOmVxKDApJylbMF0uZ2V0QXR0cmlidXRlKCdyb3dzcGFuJykgPT0gMjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaXJzdCBjZWxsIGluIGxhc3QgY29sdW1uIGlzICcxMSciLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoNCkgdGg6ZXEoMCknKS5odG1sKCkgPT0gMTE7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlyc3QgY2VsbCBpbiBsYXN0IGNvbHVtbiBoYXMgYmVlbiB0cnVuY2F0ZWQgdG8gb25lIGNvbHVtbiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSg0KSB0aDplcSgwKScpWzBdLmdldEF0dHJpYnV0ZSgnY29sc3BhbicpID09IDE7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiSGlkZSB0aGUgc2Vjb25kIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJbnVsbCwKCQkJCQl7ICJiVmlzaWJsZSI6IGZhbHNlIH0sCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQnKS5sZW5ndGggPT0gNDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaXJzdCBjZWxsIGlzICcxJyAtIHNlY29uZCBjb2x1bW4gaGlkZGVuIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDApIHRoOmVxKDApJykuaHRtbCgpID09ICIxIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJTZWNvbmQgY2VsbCBpcyAnMicgLSBzZWNvbmQgY29sdW1uIGhpZGRlbiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSgwKSB0aDplcSgxKScpLmh0bWwoKSA9PSAiMiI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlyc3QgY2VsbCBpbiBmb3VydGggcm93IGlzICcxMCcgKHZpc2libHkgdGhlIGZpcnN0KSAtIHNlY29uZCBjb2x1bW4gaGlkZGVuIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDMpIHRoOmVxKDApJykuaHRtbCgpID09ICIxMCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlyc3QgY2VsbCBoYXMgY29sc3BhbiBvZiAxIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDApIHRoOmVxKDApJylbMF0uZ2V0QXR0cmlidXRlKCdjb2xzcGFuJykgPT0gMTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJTZWNvbmQgY2VsbCBoYXMgY29sc3BhbiBvZiAyIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDApIHRoOmVxKDEpJylbMF0uZ2V0QXR0cmlidXRlKCdjb2xzcGFuJykgPT0gMjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaXJzdCBjZWxsIGhhcyByb3dzcGFuIG9mIDEiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGg6ZXEoMCknKVswXS5nZXRBdHRyaWJ1dGUoJ3Jvd3NwYW4nKSA9PSAxOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIlNlY29uZCBjZWxsIGhhcyByb3dzcGFuIG9mIDIiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGg6ZXEoMSknKVswXS5nZXRBdHRyaWJ1dGUoJ3Jvd3NwYW4nKSA9PSAyOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpcnN0IGNlbGwgaW4gbGFzdCBjb2x1bW4gaXMgJzExJyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSg0KSB0aDplcSgwKScpLmh0bWwoKSA9PSAxMTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaXJzdCBjZWxsIGluIGxhc3QgY29sdW1uIGhhcyBiZWVuIHRydW5jYXRlZCB0byBvbmUgY29sdW1uIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDQpIHRoOmVxKDApJylbMF0uZ2V0QXR0cmlidXRlKCdjb2xzcGFuJykgPT0gMTsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJIaWRlIHRoZSBmaXJzdCB0d28gY29sdW1ucyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJeyAiYlZpc2libGUiOiBmYWxzZSB9LAoJCQkJCXsgImJWaXNpYmxlIjogZmFsc2UgfSwKCQkJCQludWxsLAoJCQkJCW51bGwsCgkJCQkJbnVsbAoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZCcpLmxlbmd0aCA9PSAzOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpcnN0IGNlbGwgaXMgJzInIC0gZmlyc3QgdHdvIGNvbHVtbnMgaGlkZGVuIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDApIHRoOmVxKDApJykuaHRtbCgpID09ICIyIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJTZWNvbmQgY2VsbCBpcyAnMycgLSBmaXJzdCB0d28gY29sdW1ucyBoaWRkZW4iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGg6ZXEoMSknKS5odG1sKCkgPT0gIjMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpcnN0IGNlbGwgaW4gdGhpcmQgcm93IGlzICc2JyAtIGZpcnN0IHR3byBjb2x1bW5zIGhpZGRlbiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSgyKSB0aDplcSgwKScpLmh0bWwoKSA9PSAiNiI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlyc3QgY2VsbCBoYXMgY29sc3BhbiBvZiAyIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDApIHRoOmVxKDApJylbMF0uZ2V0QXR0cmlidXRlKCdjb2xzcGFuJykgPT0gMjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaXJzdCBjZWxsIGhhcyByb3dzcGFuIG9mIDIiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGg6ZXEoMCknKVswXS5nZXRBdHRyaWJ1dGUoJ3Jvd3NwYW4nKSA9PSAyOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIlNlY29uZCBjZWxsIGhhcyByb3dzcGFuIG9mIDEiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGg6ZXEoMSknKVswXS5nZXRBdHRyaWJ1dGUoJ3Jvd3NwYW4nKSA9PSAxOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpcnN0IGNlbGwgaW4gbGFzdCBjb2x1bW4gaXMgJzEyJyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSg0KSB0aDplcSgwKScpLmh0bWwoKSA9PSAxMjsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJIaWRlIHRoZSB0aGlyZCBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQl7ICJiVmlzaWJsZSI6IGZhbHNlIH0sCgkJCQkJbnVsbCwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkJykubGVuZ3RoID09IDQ7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlyc3QgY2VsbCBpcyAnMScgLSB0aGlyZCBjb2x1bW4gaGlkZGVuIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDApIHRoOmVxKDApJykuaHRtbCgpID09ICIxIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJTZWNvbmQgY2VsbCBpcyAnMicgLSB0aGlyZCBjb2x1bW4gaGlkZGVuIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDApIHRoOmVxKDEpJykuaHRtbCgpID09ICIyIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaXJzdCBjZWxsICh2aXNpYmxlIHNlY29uZCkgaW4gdGhpcmQgcm93IGlzICc2JyAtIHRoaXJkIGNvbHVtbiBoaWRkZW4iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMikgdGg6ZXEoMCknKS5odG1sKCkgPT0gIjYiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIlNlY29uZCBjZWxsIGhhcyBjb2xzcGFuIG9mIDIiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGg6ZXEoMSknKVswXS5nZXRBdHRyaWJ1dGUoJ2NvbHNwYW4nKSA9PSAyOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIlNlY29uZCBjZWxsIGhhcyByb3dzcGFuIG9mIDIiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGg6ZXEoMSknKVswXS5nZXRBdHRyaWJ1dGUoJ3Jvd3NwYW4nKSA9PSAyOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIlRoaXJkIHJvdyBmaXJzdCBjZWxsIChzZWNvbmQgdmlzaWJsZSkgY29sc3BhbiBpcyAxIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDIpIHRoOmVxKDApJylbMF0uZ2V0QXR0cmlidXRlKCdjb2xzcGFuJykgPT0gMTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJUaGlyZCByb3cgc2Vjb25kIGNlbGwgKHRoaXJkIHZpc2libGUpIHZhbHVlIGlzIDciLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMikgdGg6ZXEoMSknKS5odG1sKCkgPT0gIjciOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIlRoaXJkIHJvdyBzZWNvbmQgY2VsbCAodGhpcmQgdmlzaWJsZSkgY29sc3BhbiBpcyAxIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDIpIHRoOmVxKDEpJylbMF0uZ2V0QXR0cmlidXRlKCdjb2xzcGFuJykgPT0gMTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJUaGlyZCByb3cgc2Vjb25kIGNlbGwgKHRoaXJkIHZpc2libGUpIHJvd3NwYW4gaXMgMyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSgyKSB0aDplcSgxKScpWzBdLmdldEF0dHJpYnV0ZSgncm93c3BhbicpID09IDM7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/aoColumns.fnRender.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5mblJlbmRlciIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG1UbXAgPSAwOwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImFvQ29sdW1ucyI6IFsKCQkJbnVsbCwKCQkJeyAiZm5SZW5kZXIiOiBmdW5jdGlvbiAoYSkgewoJCQkJbVRtcCsrOwoJCQkJcmV0dXJuIGEuYURhdGFbYS5pRGF0YUNvbHVtbl07CgkJCX0gfSwKCQkJbnVsbCwKCQkJbnVsbCwKCQkJbnVsbAoJCV0KCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTaW5nbGUgY29sdW1uIC0gZm5SZW5kZXIgaXMgY2FsbGVkIG9uY2UgZm9yIGVhY2ggcm93IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1UbXAgPT0gNTc7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNvbmZpcm0gdGhhdCBmblJlbmRlciBwYXNzZXMgdHdvIGFyZ3VtZW50cyB3aXRoIGZvdXIgcGFyYW1ldGVycyIsCgkJZnVuY3Rpb24gKCkgewoJCQltVG1wID0gdHJ1ZTsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCW51bGwsCgkJCQkJeyAiZm5SZW5kZXIiOiBmdW5jdGlvbiAoYSwgdikgewoJCQkJCQlpZiAoIGFyZ3VtZW50cy5sZW5ndGggIT0gMiB8fCB0eXBlb2YgYS5pRGF0YVJvdz09J3VuZGVmaW5lZCcgfHwKCQkJCQkJIAl0eXBlb2YgYS5pRGF0YUNvbHVtbj09J3VuZGVmaW5lZCcgfHwgdHlwZW9mIGEuYURhdGE9PSd1bmRlZmluZWQnIHx8CgkJCQkJCSAJdHlwZW9mIGEubURhdGFQcm9wPT0ndW5kZWZpbmVkJyApCgkJCQkJCXsKCQkJCQkJCW1UbXAgPSBmYWxzZTsKCQkJCQkJfQoJCQkJCQlyZXR1cm4gYS5hRGF0YVthLmlEYXRhQ29sdW1uXTsKCQkJCQl9IH0sCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVRtcDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiZm5SZW5kZXIgaURhdGFDb2x1bW4gaXMgcm93IG51bWJlciIsCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgaUNvdW50ID0gMDsKCQkJbVRtcCA9IHRydWU7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQludWxsLAoJCQkJCXsgImZuUmVuZGVyIjogZnVuY3Rpb24gKGEpIHsKCQkJCQkJaWYgKCBpQ291bnQgIT0gYS5pRGF0YVJvdyApCgkJCQkJCXsKCQkJCQkJCW1UbXAgPSBmYWxzZTsKCQkJCQkJfQoJCQkJCQlpQ291bnQrKzsKCQkJCQkJcmV0dXJuIGEuYURhdGFbYS5pRGF0YUNvbHVtbl07CgkJCQkJfSB9LAoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1UbXA7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJImZuUmVuZGVyIGlEYXRhQ29sdW1uIGlzIHRoZSBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsKCQkJbVRtcCA9IHRydWU7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQludWxsLAoJCQkJCXsgImZuUmVuZGVyIjogZnVuY3Rpb24gKGEpIHsKCQkJCQkJaWYgKCBhLmlEYXRhQ29sdW1uICE9IDEgKQoJCQkJCQl7CgkJCQkJCQltVG1wID0gZmFsc2U7CgkJCQkJCX0KCQkJCQkJcmV0dXJuIGEuYURhdGFbYS5pRGF0YUNvbHVtbl07CgkJCQkJfSB9LAoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1UbXA7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJImZuUmVuZGVyIGFEYXRhIGlzIGRhdGEgYXJyYXkgb2YgY29ycmVjdCBzaXplIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW1UbXAgPSB0cnVlOwoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJbnVsbCwKCQkJCQl7ICJmblJlbmRlciI6IGZ1bmN0aW9uIChhKSB7CgkJCQkJCWlmICggYS5hRGF0YS5sZW5ndGggIT0gNSApCgkJCQkJCXsKCQkJCQkJCW1UbXAgPSBmYWxzZTsKCQkJCQkJfQoJCQkJCQlyZXR1cm4gYS5hRGF0YVthLmlEYXRhQ29sdW1uXTsKCQkJCQl9IH0sCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVRtcDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUGFzc2VkIGJhY2sgZGF0YSBpcyBwdXQgaW50byB0aGUgRE9NIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQludWxsLAoJCQkJCXsgImZuUmVuZGVyIjogZnVuY3Rpb24gKGEpIHsKCQkJCQkJcmV0dXJuICd1bml0dGVzdCc7CgkJCQkJfSB9LAoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICd1bml0dGVzdCc7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlBhc3NlZCBiYWNrIGRhdGEgaXMgcHV0IGludG8gdGhlIERPTSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCXsgImZuUmVuZGVyIjogZnVuY3Rpb24gKGEpIHsKCQkJCQkJcmV0dXJuICd1bml0dGVzdDEnOwoJCQkJCX0gfSwKCQkJCQl7ICJmblJlbmRlciI6IGZ1bmN0aW9uIChhKSB7CgkJCQkJCXJldHVybiAndW5pdHRlc3QyJzsKCQkJCQl9IH0sCgkJCQkJbnVsbAoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBiUmV0dXJuID0gCgkJCQkkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgyKScpLmh0bWwoKSA9PSAndW5pdHRlc3QxJyAmJgoJCQkJJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gJ3VuaXR0ZXN0Mic7CgkJCXJldHVybiBiUmV0dXJuOyB9CgkpOwoJCgkKCQoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/aoColumns.iDataSort.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5pRGF0YVNvcnQiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogU2hvdWxkIGtub3cgdGhhdCBzb3J0aW5nIGFscmVhZHkgd29ya3MgYnkgZGVmYXVsdCBmcm9tIG90aGVyIHRlc3RzLCBzbyB3ZSBjYW4ganVtcAoJICogcmlnaHQgaW4gaGVyZQoJICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkiYW9Db2x1bW5zIjogWwoJCQludWxsLAoJCQl7ICJpRGF0YVNvcnQiOiA0IH0sCgkJCW51bGwsCgkJCW51bGwsCgkJCW51bGwKCQldCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyBvbiBmaXJzdCBjb2x1bW4gaXMgdW5lZmZlY3RlZCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAnR2Vja28nOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIG9uIHNlY29uZCBjb2x1bW4gaXMgdGhlIG9yZGVyIG9mIHRoZSBmaWZ0aCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoNCknKS5odG1sKCkgPT0gJ0EnOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJSZXNlcnZlIHNvcnRpbmcgb24gc2Vjb25kIGNvbHVtbiB1c2VzIGZpZnRoIGNvbHVtbiBhcyB3ZWxsIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSg0KScpLmh0bWwoKSA9PSAnWCc7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgb24gNXRoIGNvbHVtbiByZXRhaW5zIGl0J3Mgb3duIHNvcnRpbmciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoNCknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDQpJykuaHRtbCgpID09ICdBJzsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJVc2UgMm5kIGNvbCBmb3Igc29ydGluZyA1dGggY29sIGFuZCB2aWEtdmVyc2EgLSBubyBlZmZlY3Qgb24gZmlyc3QgY29sIHNvcnRpbmciLAoJCWZ1bmN0aW9uICgpIHsKCQkJbVRtcCA9IDA7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQludWxsLAoJCQkJCXsgImlEYXRhU29ydCI6IDQgfSwKCQkJCQludWxsLAoJCQkJCW51bGwsCgkJCQkJeyAiaURhdGFTb3J0IjogMSB9CgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09ICdHZWNrbyc7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIjJuZCBjb2wgc29ydGluZyB1c2VzIGZpZnRoIGNvbCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoNCknKS5odG1sKCkgPT0gJ0EnOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSIybmQgY29sIHNvcnRpbmcgdXNlcyBmaWZ0aCBjb2wgLSByZXZlcnNlZCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoNCknKS5odG1sKCkgPT0gJ1gnOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSI1dGggY29sIHNvcnRpbmcgdXNlcyAybmQgY29sIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDQpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAnQWxsIG90aGVycyc7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIjV0aCBjb2wgc29ydGluZyB1c2VzIDJuZCBjb2wgLSByZXZlcnNlZCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSg0KScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gJ1NlYW1vbmtleSAxLjEnOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/aoColumns.sClass.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5zQ2xhc3MiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkJ5IGRlZmF1bHQgdGhlIHRlc3QgY2xhc3MgaGFzbid0IGJlZW4gYXBwbGllZCB0byB0aGUgY29sdW1uIChzYW5pdHkhKSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgyKScpLmhhc0NsYXNzKCd1bml0dGVzdCcpID09IGZhbHNlOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJBZGQgYSBjbGFzcyB0byBhIHNpbmdsZSBjb2x1bW4gLSBmaXJzdCByb3ciLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQl7ICJzQ2xhc3MiOiAndW5pdHRlc3QnIH0sCgkJCQkJbnVsbCwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDEpIHRkOmVxKDIpJykuaGFzQ2xhc3MoJ3VuaXR0ZXN0Jyk7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkFkZCBhIGNsYXNzIHRvIGEgc2luZ2xlIGNvbHVtbiAtIHRoaXJkIHJvdyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgzKSB0ZDplcSgyKScpLmhhc0NsYXNzKCd1bml0dGVzdCcpOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJBZGQgYSBjbGFzcyB0byBhIHNpbmdsZSBjb2x1bW4gLSBsYXN0IHJvdyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSg5KSB0ZDplcSgyKScpLmhhc0NsYXNzKCd1bml0dGVzdCcpOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJBZGQgYSBjbGFzcyB0byBhIHNpbmdsZSBjb2x1bW4gLSBoYXMgbm90IGFwcGxpZWQgdG8gb3RoZXIgY29sdW1ucyAtIDFzdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgzKSB0ZDplcSgwKScpLmhhc0NsYXNzKCd1bml0dGVzdCcpID09IGZhbHNlOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJBZGQgYSBjbGFzcyB0byBhIHNpbmdsZSBjb2x1bW4gLSBoYXMgbm90IGFwcGxpZWQgdG8gb3RoZXIgY29sdW1ucyAtIDV0aCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgzKSB0ZDplcSg0KScpLmhhc0NsYXNzKCd1bml0dGVzdCcpID09IGZhbHNlOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJBZGQgYSBjbGFzcyB0byBhIHNpbmdsZSBjb2x1bW4gLSBzZXZlbnRoIHJvdyAtIHNlY29uZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDYpIHRkOmVxKDIpJykuaGFzQ2xhc3MoJ3VuaXR0ZXN0Jyk7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkFkZCBhIGNsYXNzIHRvIGEgc2luZ2xlIGNvbHVtbiAtIGhhcyBub3QgYXBwbGllZCB0byBoZWFkZXIiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMykgdGg6ZXEoNCknKS5oYXNDbGFzcygndW5pdHRlc3QnKSA9PSBmYWxzZTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQWRkIGEgY2xhc3MgdG8gYSBzaW5nbGUgY29sdW1uIC0gaGFzIG5vdCBhcHBsaWVkIHRvIGZvb3RlciIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSgzKSB0aDplcSg0KScpLmhhc0NsYXNzKCd1bml0dGVzdCcpID09IGZhbHNlOyB9CgkpOwoJCgkKCW9UZXN0LmZuVGVzdCggCgkJIkNsYXNzIGRlZmluZWQgZm9yIG11bHRpcGxlIGNvbHVtbnMgLSBmaXJzdCByb3ciLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCXsgInNDbGFzcyI6ICd1bml0dGVzdDInIH0sCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCXsgInNDbGFzcyI6ICd1bml0dGVzdDEnIH0sCgkJCQkJbnVsbAoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBiUmV0dXJuID0gCgkJCQkkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgzKSB0ZDplcSgwKScpLmhhc0NsYXNzKCd1bml0dGVzdDInKSAmJgoJCQkJJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoOCkgdGQ6ZXEoMyknKS5oYXNDbGFzcygndW5pdHRlc3QxJyk7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNsYXNzIGRlZmluZWQgZm9yIG11bHRpcGxlIGNvbHVtbnMgLSBoYXMgbm90IGFwcGxpZWQgdG8gb3RoZXIgY29sdW1ucyAtIDV0aCAxIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDQpJykuaGFzQ2xhc3MoJ3VuaXR0ZXN0MScpID09IGZhbHNlOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDbGFzcyBkZWZpbmVkIGZvciBtdWx0aXBsZSBjb2x1bW5zIC0gaGFzIG5vdCBhcHBsaWVkIHRvIG90aGVyIGNvbHVtbnMgLSA1dGggMiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSg2KSB0ZDplcSg0KScpLmhhc0NsYXNzKCd1bml0dGVzdDInKSA9PSBmYWxzZTsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/aoColumns.sName.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5zTmFtZSIgKTsKCi8qIFRoaXMgaGFzIG5vIGVmZmVjdCBhdCBhbGwgaW4gRE9NIG1ldGhvZHMgLSBzbyB3ZSBqdXN0IGNoZWNrIHRoYXQgaXQgaGFzIGFwcGxpZWQgdGhlIG5hbWUgKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImFvQ29sdW1ucyI6IFsKCQkJbnVsbCwKCQkJbnVsbCwKCQkJbnVsbCwKCQkJeyAic05hbWUiOiAndW5pdCB0ZXN0JyB9LAoJCQludWxsCgkJXQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIk5hbWVzIGFyZSBzdG9yZWQgaW4gdGhlIGNvbHVtbnMgb2JqZWN0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5hb0NvbHVtbnNbM10uc05hbWUgPT0idW5pdCB0ZXN0IjsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/aoColumns.sTitle.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5zVGl0bGUiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNvbHVtbiBuYW1lcyBhcmUgcmVhZCBmcm9tIHRoZSBET00gYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBqcU5vZGVzID0gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGgnKTsKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCWpxTm9kZXNbMF0uaW5uZXJIVE1MID09ICJSZW5kZXJpbmcgZW5naW5lIiAmJgoJCQkJanFOb2Rlc1sxXS5pbm5lckhUTUwgPT0gIkJyb3dzZXIiICYmCgkJCQlqcU5vZGVzWzJdLmlubmVySFRNTCA9PSAiUGxhdGZvcm0ocykiICYmCgkJCQlqcU5vZGVzWzNdLmlubmVySFRNTCA9PSAiRW5naW5lIHZlcnNpb24iICYmCgkJCQlqcU5vZGVzWzRdLmlubmVySFRNTCA9PSAiQ1NTIGdyYWRlIjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2FuIHNldCBhIHNpbmdsZSBjb2x1bW4gdGl0bGUgLSBhbmQgb3RoZXJzIGFyZSByZWFkIGZyb20gRE9NIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQludWxsLAoJCQkJCXsgInNUaXRsZSI6ICd1bml0IHRlc3QnIH0sCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIganFOb2RlcyA9ICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDApIHRoJyk7CgkJCXZhciBiUmV0dXJuID0gCgkJCQlqcU5vZGVzWzBdLmlubmVySFRNTCA9PSAiUmVuZGVyaW5nIGVuZ2luZSIgJiYKCQkJCWpxTm9kZXNbMV0uaW5uZXJIVE1MID09ICJ1bml0IHRlc3QiICYmCgkJCQlqcU5vZGVzWzJdLmlubmVySFRNTCA9PSAiUGxhdGZvcm0ocykiICYmCgkJCQlqcU5vZGVzWzNdLmlubmVySFRNTCA9PSAiRW5naW5lIHZlcnNpb24iICYmCgkJCQlqcU5vZGVzWzRdLmlubmVySFRNTCA9PSAiQ1NTIGdyYWRlIjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2FuIHNldCBtdWx0aXBsZSBjb2x1bW4gdGl0bGVzIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQludWxsLAoJCQkJCXsgInNUaXRsZSI6ICd1bml0IHRlc3QgMScgfSwKCQkJCQludWxsLAoJCQkJCW51bGwsCgkJCQkJeyAic1RpdGxlIjogJ3VuaXQgdGVzdCAyJyB9CgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGpxTm9kZXMgPSAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSgwKSB0aCcpOwoJCQl2YXIgYlJldHVybiA9IAoJCQkJanFOb2Rlc1swXS5pbm5lckhUTUwgPT0gIlJlbmRlcmluZyBlbmdpbmUiICYmCgkJCQlqcU5vZGVzWzFdLmlubmVySFRNTCA9PSAidW5pdCB0ZXN0IDEiICYmCgkJCQlqcU5vZGVzWzJdLmlubmVySFRNTCA9PSAiUGxhdGZvcm0ocykiICYmCgkJCQlqcU5vZGVzWzNdLmlubmVySFRNTCA9PSAiRW5naW5lIHZlcnNpb24iICYmCgkJCQlqcU5vZGVzWzRdLmlubmVySFRNTCA9PSAidW5pdCB0ZXN0IDIiOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/aoColumns.sWidth.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5zV2lkdGgiICk7CgovKiBOT1RFIC0gd2UgbmVlZCB0byBkaXNhYmxlIHRoZSBhdXRvIHdpZHRoIGZvciB0aGUgbWFqb3JpdHkgb2YgdGhlc2UgdGVzdCBpbiBvcmRlciB0byBwcmVmb3JtIAogKiB0aGVzZSB0ZXN0cyBhcyB0aGUgYXV0byB3aWR0aCB3aWxsIGNvbnZlcnQgdGhlIHdpZHRoIHRvIGEgcHggdmFsdWUuIFdlIGNhbiBkbyAnbm9uLWV4YWN0JyB0ZXN0cwogKiB3aXRoIGF1dG8gd2lkdGggZW5hYmxlZCBob3dldmVyIHRvIGVuc3VyZSBpdCBzY2FsZXMgY29sdW1ucyBhcyByZXF1aXJlZAogKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImJBdXRvV2lkdGgiOiBmYWxzZSwKCQkiYW9Db2x1bW5zIjogWwoJCQludWxsLAoJCQl7ICJzV2lkdGgiOiAnNDAlJyB9LAoJCQludWxsLAoJCQludWxsLAoJCQludWxsCgkJXQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIldpdGggYXV0byB3aWR0aCBkaXNhYmxlZCB0aGUgd2lkdGggZm9yIG9uZSBjb2x1bW4gaXMgYXBwbGVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJylbMF0uc3R5bGUud2lkdGggPT0gIjQwJSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIldpdGggYXV0byB3aWR0aCBkaXNhYmxlZCB0aGUgd2lkdGggZm9yIG9uZSBjb2x1bW4gaXMgYXBwbGVkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJBdXRvV2lkdGgiOiBmYWxzZSwKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCXsgInNXaWR0aCI6ICcyMCUnIH0sCgkJCQkJeyAic1dpZHRoIjogJzMwJScgfSwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGJSZXR1cm4gPQoJCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMiknKVswXS5zdHlsZS53aWR0aCA9PSAiMjAlIiAmJgoJCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMyknKVswXS5zdHlsZS53aWR0aCA9PSAiMzAlIjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJXaXRoIGF1dG8gd2lkdGgsIGl0IHdpbGwgbWFrZSB0aGUgc21hbGxlc3QgY29sdW1uIHRoZSBsYXJnZXN0IHdpdGggcGVyY2VudGFnZSB3aWR0aCBnaXZlbiIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCW51bGwsCgkJCQkJeyAic1dpZHRoIjogJzQwJScgfSwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGFuVGhzID0gJCgnI2V4YW1wbGUgdGhlYWQgdGgnKTsKCQkJdmFyIGEwID0gYW5UaHNbMF0ub2Zmc2V0V2lkdGg7CgkJCXZhciBhMSA9IGFuVGhzWzFdLm9mZnNldFdpZHRoOwoJCQl2YXIgYTIgPSBhblRoc1syXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGEzID0gYW5UaHNbM10ub2Zmc2V0V2lkdGg7CgkJCXZhciBhNCA9IGFuVGhzWzRdLm9mZnNldFdpZHRoOwoJCQkKCQkJaWYgKCBhMz5hMCAmJiBhMz5hMSAmJiBhMz5hMiAmJiBhMz5hNCApCgkJCQlyZXR1cm4gdHJ1ZTsKCQkJZWxzZQoJCQkJcmV0dXJuIGZhbHNlOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/aoSearchCols.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImFvU2VhcmNoQ29scyIgKTsKCi8qIFdlIGNvdWxkIGJlIGhlcmUgZm9yZXZlciB0ZXN0aW5nIHRoaXMgb25lLCBzbyB3ZSB0ZXN0IGEgbGltaXRlZCBzdWJzZXQgb24gYSBjb3VwbGUgb2YgY29sdW1zICovCgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkRlZmF1bHQgc2hvdWxkIGJlIHRvIGhhdmUgYSBlbXB0eSBjb2x1bXMgYXJyYXkiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYlJldHVybiA9IAoJCQkJb1NldHRpbmdzLmFvUHJlU2VhcmNoQ29sc1swXS5zU2VhcmNoID09IDAgJiYgIW9TZXR0aW5ncy5hb1ByZVNlYXJjaENvbHNbMF0uYlJlZ2V4ICYmCgkJCQlvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzWzFdLnNTZWFyY2ggPT0gMCAmJiAhb1NldHRpbmdzLmFvUHJlU2VhcmNoQ29sc1sxXS5iUmVnZXggJiYKCQkJCW9TZXR0aW5ncy5hb1ByZVNlYXJjaENvbHNbMl0uc1NlYXJjaCA9PSAwICYmICFvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzWzJdLmJSZWdleCAmJgoJCQkJb1NldHRpbmdzLmFvUHJlU2VhcmNoQ29sc1szXS5zU2VhcmNoID09IDAgJiYgIW9TZXR0aW5ncy5hb1ByZVNlYXJjaENvbHNbM10uYlJlZ2V4ICYmCgkJCQlvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzWzRdLnNTZWFyY2ggPT0gMCAmJiAhb1NldHRpbmdzLmFvUHJlU2VhcmNoQ29sc1s0XS5iUmVnZXg7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU2VhcmNoIG9uIGEgc2luZ2xlIGNvbHVtbiAtIG5vIHJlZ2V4IHN0YXRlbWVudCBnaXZlbiIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhb1NlYXJjaENvbHMiOiBbCgkJCQkJbnVsbCwKCQkJCQl7ICJzU2VhcmNoIjogIk1vemlsbGEiIH0sCgkJCQkJbnVsbCwKCQkJCQl7ICJzU2VhcmNoIjogIjEiIH0sCgkJCQkJbnVsbAoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9pbmZvJykuaHRtbCgpID09ICJTaG93aW5nIDEgdG8gOSBvZiA5IGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTZWFyY2ggb24gdHdvIGNvbHVtbnMgLSBubyByZWdleCBzdGF0ZW1lbnQgZ2l2ZW4iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYW9TZWFyY2hDb2xzIjogWwoJCQkJCW51bGwsCgkJCQkJeyAic1NlYXJjaCI6ICJNb3ppbGxhIiB9LAoJCQkJCW51bGwsCgkJCQkJeyAic1NlYXJjaCI6ICIxLjUiIH0sCgkJCQkJbnVsbAoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiMS41IjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU2VhcmNoIG9uIHNpbmdsZSBjb2x1bW4gLSBlc2NhcGUgcmVnZXggZmFsc2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYW9TZWFyY2hDb2xzIjogWwoJCQkJCXsgInNTZWFyY2giOiAiLipNTCIsICJiRXNjYXBlUmVnZXgiOiBmYWxzZSB9LAoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGVfaW5mbycpLmh0bWwoKSA9PSAiU2hvd2luZyAxIHRvIDMgb2YgMyBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU2VhcmNoIG9uIHR3byBjb2x1bW5zIC0gZXNjYXBlIHJlZ2V4IGZhbHNlIG9uIGZpcnN0LCB0cnVlIG9uIHNlY29uZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhb1NlYXJjaENvbHMiOiBbCgkJCQkJeyAic1NlYXJjaCI6ICIuKk1MIiwgImJFc2NhcGVSZWdleCI6IGZhbHNlIH0sCgkJCQkJeyAic1NlYXJjaCI6ICIzLjMiLCAiYkVzY2FwZVJlZ2V4IjogdHJ1ZSB9LAoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICJLb25xdXJlcm9yIDMuMyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNlYXJjaCBvbiB0d28gY29sdW1ucyAobm8gcmVjb3JkcykgLSBlc2NhcGUgcmVnZXggZmFsc2Ugb24gZmlyc3QsIHRydWUgb24gc2Vjb25kIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFvU2VhcmNoQ29scyI6IFsKCQkJCQl7ICJzU2VhcmNoIjogIi4qTUwiLCAiYkVzY2FwZVJlZ2V4IjogZmFsc2UgfSwKCQkJCQl7ICJzU2VhcmNoIjogIkFsbGFuIiwgImJFc2NhcGVSZWdleCI6IHRydWUgfSwKCQkJCQludWxsLAoJCQkJCW51bGwsCgkJCQkJbnVsbAoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiTm8gbWF0Y2hpbmcgcmVjb3JkcyBmb3VuZCI7IH0KCSk7CgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/asStripClasses.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImFzU3RyaXBlQ2xhc3NlcyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiRGVmYXVsdCByb3cgc3RyaXBpbmcgaXMgYXBwbGllZCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKScpLmhhc0NsYXNzKCdvZGQnKSAmJgoJCQkgICAgICAgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMSknKS5oYXNDbGFzcygnZXZlbicpICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgyKScpLmhhc0NsYXNzKCdvZGQnKSAmJgoJCQkgICAgICAgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMyknKS5oYXNDbGFzcygnZXZlbicpOwoJCX0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlJvdyBzdHJpcGluZyBkb2VzIG5vdCBlZmZlY3QgY3VycmVudCBjbGFzc2VzIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApJykuaGFzQ2xhc3MoJ2dyYWRlQScpICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKScpLmhhc0NsYXNzKCdncmFkZUEnKSAmJgoJCQkgICAgICAgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMiknKS5oYXNDbGFzcygnZ3JhZGVBJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDMpJykuaGFzQ2xhc3MoJ2dyYWRlQScpOwoJCX0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlJvdyBzdHJpcGluZyBvbiB0aGUgc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCknKS5oYXNDbGFzcygnb2RkJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDEpJykuaGFzQ2xhc3MoJ2V2ZW4nKSAmJgoJCQkgICAgICAgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMiknKS5oYXNDbGFzcygnb2RkJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDMpJykuaGFzQ2xhc3MoJ2V2ZW4nKTsKCQl9CgkpOwoJCgkvKiBObyBzdHJpcGluZyAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiTm8gcm93IHN0cmlwaW5nIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFzU3RyaXBlQ2xhc3NlcyI6IFtdCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApJylbMF0uY2xhc3NOYW1lID09ICJncmFkZUEiICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKScpWzBdLmNsYXNzTmFtZSA9PSAiZ3JhZGVBIiAmJgoJCQkgICAgICAgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMiknKVswXS5jbGFzc05hbWUgPT0gImdyYWRlQSIgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDMpJylbMF0uY2xhc3NOYW1lID09ICJncmFkZUEiOwoJCX0KCSk7CgkKCS8qIEN1c3RvbSBzdHJpcGluZyAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiQ3VzdG9tIHN0cmlwaW5nIFsyXSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhc1N0cmlwZUNsYXNzZXMiOiBbICd0ZXN0MScsICd0ZXN0MicgXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKScpLmhhc0NsYXNzKCd0ZXN0MScpICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKScpLmhhc0NsYXNzKCd0ZXN0MicpICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgyKScpLmhhc0NsYXNzKCd0ZXN0MScpICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgzKScpLmhhc0NsYXNzKCd0ZXN0MicpOwoJCX0KCSk7CgkKCQoJLyogbG9uZyBhcnJheSBvZiBzdHJpcGluZyAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiQ3VzdG9tIHN0cmlwaW5nIFs0XSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhc1N0cmlwZUNsYXNzZXMiOiBbICd0ZXN0MScsICd0ZXN0MicsICd0ZXN0MycsICd0ZXN0NCcgXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKScpLmhhc0NsYXNzKCd0ZXN0MScpICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKScpLmhhc0NsYXNzKCd0ZXN0MicpICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgyKScpLmhhc0NsYXNzKCd0ZXN0MycpICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgzKScpLmhhc0NsYXNzKCd0ZXN0NCcpOwoJCX0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkN1c3RvbSBzdHJpcGluZyBpcyByZXN0YXJ0ZWQgb24gc2Vjb25kIHBhZ2UgWzJdIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApJykuaGFzQ2xhc3MoJ3Rlc3QxJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDEpJykuaGFzQ2xhc3MoJ3Rlc3QyJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDIpJykuaGFzQ2xhc3MoJ3Rlc3QzJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDMpJykuaGFzQ2xhc3MoJ3Rlc3Q0Jyk7CgkJfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/bAutoWidth.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImJBdXRvV2lkdGgiICk7CgovKiBJdCdzIGFjdHVhbGx5IGEgbGl0dGxlIHRyaWNreSB0byB0ZXN0IHRoaXMuIFdlIGNhbid0IHRlc3QgYWJzb2x1dGUgbnVtYmVycyBiZWNhdXNlCiAqIGRpZmZlcmVudCBicm93c2VycyBhbmQgZGlmZmVyZW50IHBsYXRmb3JtcyB3aWxsIHJlbmRlciB0aGUgd2lkdGggb2YgdGhlIGNvbHVtbnMgc2xpZ2h0bHkKICogZGlmZmVyZW50bHkuIEhvd2V2ZXIsIHdlIGNlcnRhaW5seSBjYW4gdGVzdCB0aGUgcHJpbmNpcGxlIG9mIHdoYXQgc2hvdWxkIGhhcHBlbiAoY29sdW1uIAogKiB3aWR0aCBkb2Vzbid0IGNoYW5nZSBvdmVyIHBhZ2VzKQogKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQXV0byB3aWR0aCBpcyBlbmFibGVkIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9GZWF0dXJlcy5iQXV0b1dpZHRoOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJGaXJzdCBjb2x1bW4gaGFzIGEgd2lkdGggYXNzaWduZWQgdG8gaXQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMCknKS5hdHRyKCdzdHlsZScpLm1hdGNoKC93aWR0aC9pKTsgfQoJKTsKCQoJLyoKCVRoaXMgd291bGQgc2VlbSBsaWtlIGEgYmV0dGVyIHRlc3QgLSBidXQgdGhlcmUgYXBwZWFyIHRvIGJlIGRpZmZpY3VsdGllcyB3aXRoIHRhYmxlcwoJd2hpY2ggYXJlIGJpZ2dlciAoY2FsY3VsYXRlZCkgdGhhbiB0aGVyZSBpcyBhY3R1YWxseSByb29tIGZvci4gSSBzdXNwZWN0IHRoaXMgaXMgYWN0dWFsbHkKCWEgYnVnIGluIGRhdGF0YWJsZXMKCW9UZXN0LmZuVGVzdCggCgkJIkNoZWNrIGNvbHVtbiB3aWR0aHMgb24gZmlyc3QgcGFnZSBtYXRjaCBzZWNvbmQgcGFnZSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBhblRocyA9ICQoJyNleGFtcGxlIHRoZWFkIHRoJyk7CgkJCXZhciBhMCA9IGFuVGhzWzBdLm9mZnNldFdpZHRoOwoJCQl2YXIgYTEgPSBhblRoc1sxXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGEyID0gYW5UaHNbMl0ub2Zmc2V0V2lkdGg7CgkJCXZhciBhMyA9IGFuVGhzWzNdLm9mZnNldFdpZHRoOwoJCQl2YXIgYTQgPSBhblRoc1s0XS5vZmZzZXRXaWR0aDsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJCXZhciBiMCA9IGFuVGhzWzBdLm9mZnNldFdpZHRoOwoJCQl2YXIgYjEgPSBhblRoc1sxXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGIyID0gYW5UaHNbMl0ub2Zmc2V0V2lkdGg7CgkJCXZhciBiMyA9IGFuVGhzWzNdLm9mZnNldFdpZHRoOwoJCQl2YXIgYjQgPSBhblRoc1s0XS5vZmZzZXRXaWR0aDsKCQkJY29uc29sZS5sb2coIGEwLCBiMCwgYTEsIGIxLCBhMiwgYjIsIGEzLCBiMyApOwoJCQlpZiAoIGEwPT1iMCAmJiBhMT09YjEgJiYgYTI9PWIyICYmIGEzPT1iMyApCgkJCQlyZXR1cm4gdHJ1ZTsKCQkJZWxzZQoJCQkJcmV0dXJuIGZhbHNlOwoJCX0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoZWNrIGNvbHVtbiB3aWR0aHMgb24gc2Vjb25kIHBhZ2UgbWF0Y2ggdGhpZCBwYWdlIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGFuVGhzID0gJCgnI2V4YW1wbGUgdGhlYWQgdGgnKTsKCQkJdmFyIGEwID0gYW5UaHNbMF0ub2Zmc2V0V2lkdGg7CgkJCXZhciBhMSA9IGFuVGhzWzFdLm9mZnNldFdpZHRoOwoJCQl2YXIgYTIgPSBhblRoc1syXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGEzID0gYW5UaHNbM10ub2Zmc2V0V2lkdGg7CgkJCXZhciBhNCA9IGFuVGhzWzRdLm9mZnNldFdpZHRoOwoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQkJdmFyIGIwID0gYW5UaHNbMF0ub2Zmc2V0V2lkdGg7CgkJCXZhciBiMSA9IGFuVGhzWzFdLm9mZnNldFdpZHRoOwoJCQl2YXIgYjIgPSBhblRoc1syXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGIzID0gYW5UaHNbM10ub2Zmc2V0V2lkdGg7CgkJCXZhciBiNCA9IGFuVGhzWzRdLm9mZnNldFdpZHRoOwoJCQlpZiAoIGEwPT1iMCAmJiBhMT09YjEgJiYgYTI9PWIyICYmIGEzPT1iMyApCgkJCQlyZXR1cm4gdHJ1ZTsKCQkJZWxzZQoJCQkJcmV0dXJuIGZhbHNlOwoJCX0KCSk7CgkqLwoJCgkvKiBDaGVjayBjYW4gZGlzYWJsZSAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiQXV0byB3aWR0aCBjYW4gYmUgZGlzYWJsZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYkF1dG9XaWR0aCI6IGZhbHNlCgkJCX0gKTsKCSAJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0ZlYXR1cmVzLmJBdXRvV2lkdGggPT0gZmFsc2U7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkZpcnN0IGNvbHVtbiBkb2VzIG5vdCBoYXZlIGEgd2lkdGggYXNzaWduZWQgdG8gaXQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMCknKS5hdHRyKCdzdHlsZScpID09IG51bGw7IH0KCSk7CgkKCS8qCglvVGVzdC5mblRlc3QoIAoJCSJDaGVjayBjb2x1bW4gd2lkdGhzIG9uIGZpcnN0IHBhZ2UgZG8gbm90IG1hdGNoIHNlY29uZCBwYWdlIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGFuVGhzID0gJCgnI2V4YW1wbGUgdGhlYWQgdGgnKTsKCQkJdmFyIGEwID0gYW5UaHNbMF0ub2Zmc2V0V2lkdGg7CgkJCXZhciBhMSA9IGFuVGhzWzFdLm9mZnNldFdpZHRoOwoJCQl2YXIgYTIgPSBhblRoc1syXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGEzID0gYW5UaHNbM10ub2Zmc2V0V2lkdGg7CgkJCXZhciBhNCA9IGFuVGhzWzRdLm9mZnNldFdpZHRoOwoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQkJdmFyIGIwID0gYW5UaHNbMF0ub2Zmc2V0V2lkdGg7CgkJCXZhciBiMSA9IGFuVGhzWzFdLm9mZnNldFdpZHRoOwoJCQl2YXIgYjIgPSBhblRoc1syXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGIzID0gYW5UaHNbM10ub2Zmc2V0V2lkdGg7CgkJCXZhciBiNCA9IGFuVGhzWzRdLm9mZnNldFdpZHRoOwoJCQlpZiAoIGEwPT1iMCAmJiBhMT09YjEgJiYgYTI9PWIyICYmIGEzPT1iMyApCgkJCQlyZXR1cm4gZmFsc2U7CgkJCWVsc2UKCQkJCXJldHVybiB0cnVlOwoJCX0KCSk7CgkqLwoJCgkvKiBFbmFibGUgbWFrZXMgbm8gZGlmZmVyZW5jZSAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiQXV0byB3aWR0aCBlbmFibGVkIG92ZXJyaWRlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJBdXRvV2lkdGgiOiB0cnVlCgkJCX0gKTsKCSAJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0ZlYXR1cmVzLmJBdXRvV2lkdGg7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/bFilter.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImJGaWx0ZXIiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkZpbHRlcmluZyBkaXYgZXhpc3RzIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfZmlsdGVyJykgIT0gbnVsbDsgfQoJKTsKCQoJLyogQ2hlY2sgY2FuIGRpc2FibGUgKi8KCW9UZXN0LmZuVGVzdCggCgkJIkZsdGVyaW5nIGNhbiBiZSBkaXNhYmxlZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiRmlsdGVyIjogZmFsc2UKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfZmlsdGVyJykgPT0gbnVsbDsgfQoJKTsKCQoJLyogRW5hYmxlIG1ha2VzIG5vIGRpZmZlcmVuY2UgKi8KCW9UZXN0LmZuVGVzdCggCgkJIkZpbHRlcmluZyBlbmFibGVkIG92ZXJyaWRlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJGaWx0ZXIiOiB0cnVlCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2ZpbHRlcicpICE9IG51bGw7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/bInfiniteScroll.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImJJbmZpbml0ZVNjcm9sbCIgKTsKCgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImJTY3JvbGxJbmZpbml0ZSI6IHRydWUsCgkJInNTY3JvbGxZIjogIjIwMHB4IgoJfSApOwoJCglvVGVzdC5mblRlc3QoIAoJCSIxMCByb3dzIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMTA7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkluZm8iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGVfaW5mbycpLmh0bWwoKSA9PSAiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJHZXQgbm9kZXMiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHk+dHInKS5sZW5ndGggPT0gMTA7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTY3JvbGwgb24gMjBweCBhZGRzIDEwIHJvd3MiLAoJCWZ1bmN0aW9uICgpIHsgJCgnZGl2LmRhdGFUYWJsZXNfc2Nyb2xsQm9keScpLnNjcm9sbFRvcCgyMCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMjA7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkluZm8gYWZ0ZXIgMjBweCBzY3JvbGwiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGVfaW5mbycpLmh0bWwoKSA9PSAiU2hvd2luZyAxIHRvIDIwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJHZXQgbm9kZXMgYWZ0ZXIgMjBweCBzY3JvbGwiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHk+dHInKS5sZW5ndGggPT0gMjA7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNjcm9sbCBvbiAxMHB4IG1vcmUgcmVzdWx0cyBpbiB0aGUgc2FtZSBudW1iZXIgb2Ygcm93cyIsCgkJZnVuY3Rpb24gKCkgeyAkKCdkaXYuZGF0YVRhYmxlc19zY3JvbGxCb2R5Jykuc2Nyb2xsVG9wKDMwKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSAyMDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiSW5mbyBhZnRlciAxMCBtb3JlIHB4IHNjcm9sbCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9pbmZvJykuaHRtbCgpID09ICJTaG93aW5nIDEgdG8gMjAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTY3JvbGwgdG8gMjQwcHggYWRkcyBhbm90aGVyIDEwIHJvd3MiLAoJCWZ1bmN0aW9uICgpIHsgJCgnZGl2LmRhdGFUYWJsZXNfc2Nyb2xsQm9keScpLnNjcm9sbFRvcCgyNDApOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDMwOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJbmZvIGFmdGVyIDI0MHB4IHNjcm9sbCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9pbmZvJykuaHRtbCgpID09ICJTaG93aW5nIDEgdG8gMzAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkdldCBub2RlcyBhZnRlciAyNDBweCBzY3JvbGwiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHk+dHInKS5sZW5ndGggPT0gMzA7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkZpbHRlcmluZyB3aWxsIGRyb3AgYmFjayB0byAxMCByb3dzIiwKCQlmdW5jdGlvbiAoKSB7IAoJCQkkKCdkaXYuZGF0YVRhYmxlc19zY3JvbGxCb2R5Jykuc2Nyb2xsVG9wKDApOwoJCQlvVGFibGUuZm5GaWx0ZXIoJ2dlYycpCgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSAxMDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiSW5mbyBhZnRlciBmaWx0ZXJpbmciLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGVfaW5mbycpLmh0bWwoKSA9PSAiU2hvd2luZyAxIHRvIDEwIG9mIDIwIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJHZXQgbm9kZXMgYWZ0ZXIgZmlsdGVyaW5nIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5PnRyJykubGVuZ3RoID09IDEwOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU2Nyb2xsIGFmdGVyIGZpbHRlcmluZyBhZGRzIDEwIiwKCQlmdW5jdGlvbiAoKSB7ICQoJ2Rpdi5kYXRhVGFibGVzX3Njcm9sbEJvZHknKS5zY3JvbGxUb3AoMjApOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDIwOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJHZXQgbm9kZXMgYWZ0ZXIgZmlsdGVyaW5nIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5PnRyJykubGVuZ3RoID09IDIwOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIHdpbGwgZHJvcCBiYWNrIHRvIDEwIHJvd3MiLAoJCWZ1bmN0aW9uICgpIHsgb1RhYmxlLmZuU29ydChbWzEsJ2FzYyddXSkgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSAxMDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNjcm9sbCBhZnRlciBzb3J0aW5nIGFkZHMgMTAiLAoJCWZ1bmN0aW9uICgpIHsgJCgnZGl2LmRhdGFUYWJsZXNfc2Nyb2xsQm9keScpLnNjcm9sbFRvcCgyMCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMjA7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkdldCBub2RlcyBhZnRlciBzY3JvbGxpbmciLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHk+dHInKS5sZW5ndGggPT0gMjA7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/bInfo.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImJJbmZvIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJbmZvIGRpdiBleGlzdHMgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykgIT0gbnVsbDsgfQoJKTsKCQoJLyogQ2hlY2sgY2FuIGRpc2FibGUgKi8KCW9UZXN0LmZuVGVzdCggCgkJIkluZm8gY2FuIGJlIGRpc2FibGVkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJJbmZvIjogZmFsc2UKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpID09IG51bGw7IH0KCSk7CgkKCS8qIEVuYWJsZSBtYWtlcyBubyBkaWZmZXJlbmNlICovCglvVGVzdC5mblRlc3QoIAoJCSJJbmZvIGVuYWJsZWQgb3ZlcnJpZGUiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYkluZm8iOiB0cnVlCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKSAhPSBudWxsOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/bJQueryUI.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImJKUXVlcnlVSSIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJiSlF1ZXJ5VUkiOiB0cnVlCgl9ICk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkhlYWRlciBlbGVtZW50cyBhcmUgZnVsbHkgd3JhcHBlZCBieSBESVZzIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIHRlc3QgPSB0cnVlOwoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aCcpLmVhY2goIGZ1bmN0aW9uICgpIHsKCQkJCWlmICggdGhpcy5jaGlsZE5vZGVzID4gMSApIHsKCQkJCQl0ZXN0ID0gZmFsc2U7CgkJCQl9CgkJCX0gKTsKCQkJcmV0dXJuIHRlc3Q7CgkJfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiT25lIGRpdiBmb3IgZWFjaCBoZWFkZXIgZWxlbWVudCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0aCBkaXYnKS5sZW5ndGggPT0gNTsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJPbmUgc3BhbiBmb3IgZWFjaCBoZWFkZXIgZWxlbWVudCwgbmVzdGVkIGFzIGNoaWxkIG9mIGRpdiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0aCBkaXY+c3BhbicpLmxlbmd0aCA9PSA1OwoJCX0KCSk7CgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/bLengthChange.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImJMZW5ndGhDaGFuZ2UiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkxlbmd0aCBkaXYgZXhpc3RzIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfbGVuZ3RoJykgIT0gbnVsbDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGb3VyIGRlZmF1bHQgb3B0aW9ucyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0gb3B0aW9uIikubGVuZ3RoID09IDQ7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRGVmYXVsdCBvcHRpb25zIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIG9wdHMgPSAkKCJzZWxlY3RbbmFtZT0nZXhhbXBsZV9sZW5ndGgnXSBvcHRpb24iKTsKCQkJcmV0dXJuIG9wdHNbMF0uZ2V0QXR0cmlidXRlKCd2YWx1ZScpID09IDEwICYmIG9wdHNbMV0uZ2V0QXR0cmlidXRlKCd2YWx1ZScpID09IDI1ICYmCgkJCQlvcHRzWzJdLmdldEF0dHJpYnV0ZSgndmFsdWUnKSA9PSA1MCAmJiBvcHRzWzNdLmdldEF0dHJpYnV0ZSgndmFsdWUnKSA9PSAxMDA7CgkJfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvIHRha2VzIGxlbmd0aCBpbnRvIGFjY291bnQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJLyogQ2hlY2sgY2FuIGRpc2FibGUgKi8KCW9UZXN0LmZuVGVzdCggCgkJIkNoYW5nZSBsZW5ndGggY2FuIGJlIGRpc2FibGVkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJMZW5ndGhDaGFuZ2UiOiBmYWxzZQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9sZW5ndGgnKSA9PSBudWxsOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHRha2VzIGxlbmd0aCBkaXNhYmxlZCBpbnRvIGFjY291bnQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJLyogRW5hYmxlIG1ha2VzIG5vIGRpZmZlcmVuY2UgKi8KCW9UZXN0LmZuVGVzdCggCgkJIkxlbmd0aCBjaGFuZ2UgZW5hYmxlZCBvdmVycmlkZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiTGVuZ3RoQ2hhbmdlIjogdHJ1ZQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9sZW5ndGgnKSAhPSBudWxsOyB9CgkpOwoJCgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/bPaginate.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImJQYWdpbmF0ZSIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUGFnaWFudGlvbiBkaXYgZXhpc3RzIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcGFnaW5hdGUnKSAhPSBudWxsOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIGRpdiB0YWtlcyBwYWdpbmcgaW50byBhY2NvdW50IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCS8qIENoZWNrIGNhbiBkaXNhYmxlICovCglvVGVzdC5mblRlc3QoIAoJCSJQYWdpYW50aW9uIGNhbiBiZSBkaXNhYmxlZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiUGFnaW5hdGUiOiBmYWxzZQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wYWdpbmF0ZScpID09IG51bGw7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gZGl2IHRha2VzIHBhZ2luZyBkaXNhYmxlZCBpbnRvIGFjY291bnQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byA1NyBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJLyogRW5hYmxlIG1ha2VzIG5vIGRpZmZlcmVuY2UgKi8KCW9UZXN0LmZuVGVzdCggCgkJIlBhZ2lhbnRpb24gZW5hYmxlZCBvdmVycmlkZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiUGFnaW5hdGUiOiB0cnVlCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3BhZ2luYXRlJykgIT0gbnVsbDsgfQoJKTsKCQoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/bProcessing.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImJQcm9jZXNzaW5nIiApOwoKLyogSXQncyBhY3R1YWxseSBhIGJpdCBoYXJkIHRvIHNldCB0aGlzIG9uZSBkdWUgdG8gdGhlIGZhY3QgdGhhdCBpdCB3aWxsIG9ubHkgYmUgc2hvd24KICogd2hlbiBEYXRhVGFibGVzIGlzIGRvaW5nIHNvbWUga2luZCBvZiBwcm9jZXNzaW5nLiBUaGUgc2VydmVyLXNpZGUgcHJvY2Vzc2luZyBpcyBhIGJpdAogKiBiZXR0ZXIgdG8gdGVzdCB0aGlzIHRoYW4gaGVyZSAtIHNvIHdlIGp1c3QgdGhlIGludGVyYWwgZnVuY3Rpb25zIHRvIGVuYWJsZSBpdCBhbmQgY2hlY2sKICogdGhhdCBpdCBpcyBhdmFpbGFibGUKICovCgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlByb2Nlc3NpbmcgaXMgb2ZmIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9GZWF0dXJlcy5iUHJvY2Vzc2luZyA9PSBmYWxzZTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUHJvY2Vzc2luZyBkaXYgaXMgbm90IGluIHRoZSBET00iLAoJCWZ1bmN0aW9uICgpIHsgb1RhYmxlLm9BcGkuX2ZuUHJvY2Vzc2luZ0Rpc3BsYXkoIG9TZXR0aW5ncywgdHJ1ZSApOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3Byb2Nlc3NpbmcnKSA9PSBudWxsOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJQcm9jZXNzaW5nIGRpdiBjYW5ub3QgYmUgc2hvd24iLAoJCWZ1bmN0aW9uICgpIHsgb1RhYmxlLm9BcGkuX2ZuUHJvY2Vzc2luZ0Rpc3BsYXkoIG9TZXR0aW5ncywgdHJ1ZSApOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3Byb2Nlc3NpbmcnKSA9PSBudWxsOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJQcm9jZXNzaW5nIGRpdiBjYW5ub3QgYmUgaGlkZGVuIiwKCQlmdW5jdGlvbiAoKSB7IG9UYWJsZS5vQXBpLl9mblByb2Nlc3NpbmdEaXNwbGF5KCBvU2V0dGluZ3MsIGZhbHNlICk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcHJvY2Vzc2luZycpID09IG51bGw7IH0KCSk7CgkKCQoJLyogQ2hlY2sgY2FuIGRpc2FibGUgKi8KCW9UZXN0LmZuVGVzdCggCgkJIlByb2Nlc3NpbmcgY2FuIGJlIGVuYWJsZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlByb2Nlc3NpbmciOiB0cnVlCgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vRmVhdHVyZXMuYlByb2Nlc3NpbmcgPT0gdHJ1ZTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUHJvY2Vzc2luZyBkaXYgaXMgaW4gdGhlIERPTSIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUub0FwaS5fZm5Qcm9jZXNzaW5nRGlzcGxheSggb1NldHRpbmdzLCB0cnVlICk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcHJvY2Vzc2luZycpOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJQcm9jZXNzaW5nIGRpdiBpcyBoaWRkZW4gYnkgZGVmYXVsdCIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUub0FwaS5fZm5Qcm9jZXNzaW5nRGlzcGxheSggb1NldHRpbmdzLCB0cnVlICk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcHJvY2Vzc2luZycpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUHJvY2Vzc2luZyBkaXYgY2FuIGJlIHNob3duIiwKCQlmdW5jdGlvbiAoKSB7IG9UYWJsZS5vQXBpLl9mblByb2Nlc3NpbmdEaXNwbGF5KCBvU2V0dGluZ3MsIHRydWUgKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wcm9jZXNzaW5nJykuc3R5bGUudmlzaWJpbGl0eSA9ICJ2aXNpYmxlIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUHJvY2Vzc2luZyBkaXYgY2FuIGJlIGhpZGRlbiIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUub0FwaS5fZm5Qcm9jZXNzaW5nRGlzcGxheSggb1NldHRpbmdzLCBmYWxzZSApOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3Byb2Nlc3NpbmcnKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7IH0KCSk7CgkKCS8qIEVuYWJsZSBtYWtlcyBubyBkaWZmZXJlbmNlICovCglvVGVzdC5mblRlc3QoIAoJCSJQcm9jZXNzaW5nIGRpc2FibGVkIG92ZXJyaWRlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJQcm9jZXNzaW5nIjogZmFsc2UKCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9GZWF0dXJlcy5iUHJvY2Vzc2luZyA9PSBmYWxzZTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUHJvY2Vzc2luZyBkaXYgaXMgbm90IGluIHRoZSBET00iLAoJCWZ1bmN0aW9uICgpIHsgb1RhYmxlLm9BcGkuX2ZuUHJvY2Vzc2luZ0Rpc3BsYXkoIG9TZXR0aW5ncywgdHJ1ZSApOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3Byb2Nlc3NpbmcnKSA9PSBudWxsOyB9CgkpOwoJCgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/bServerSide.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImJTZXJ2ZXJTaWRlIiApOwoKLyogTm90IGludGVyZXN0ZWQgaW4gc2VydmVyLXNpZGUgcHJvY2Vzc2luZyBoZXJlIG90aGVyIHRoYW4gdG8gY2hlY2sgdGhhdCBpdCBpcyBvZmYgKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU2VydmVyIHNpZGUgaXMgb2ZmIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9GZWF0dXJlcy5iU2VydmVyU2lkZSA9PSBmYWxzZTsgfQoJKTsKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/bSort.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImJTb3J0IiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIGlzIG9uIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gIkdlY2tvIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyBBc2MgYnkgZGVmYXVsdCBjbGFzcyBhcHBsaWVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDApJykuaGFzQ2xhc3MoInNvcnRpbmdfYXNjIik7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiQ2xpY2sgb24gc2Vjb25kIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIGNsYXNzIHJlbW92ZWQgZnJvbSBmaXJzdCBjb2x1bW4iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMCknKS5oYXNDbGFzcygic29ydGluZ19hc2MiKSAhPSB0cnVlOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIGFzYyBjbGFzcyBhcHBsaWVkIHRvIHNlY29uZCBjb2x1bW4iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5oYXNDbGFzcygic29ydGluZ19hc2MiKTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJSZXZlcnNlIG9uIHNlY29uZCBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJTZWFtb25rZXkgMS4xIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyBhY3MgY2xhc3MgcmVtb3ZlZCBmcm9tIHNlY29uZCBjb2x1bW4iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5oYXNDbGFzcygic29ydGluZ19hc2MiKSAhPSB0cnVlOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIGRlc2MgY2xhc3MgYXBwbGllZCB0byBzZWNvbmQgY29sdW1uIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuaGFzQ2xhc3MoInNvcnRpbmdfZGVzYyIpOyB9CgkpOwoJCgkvKiBDaGVjayBjYW4gZGlzYWJsZSAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiUGFnaWFudGlvbiBjYW4gYmUgZGlzYWJsZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNvcnQiOiBmYWxzZQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiNCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRGlzYWJsZWQgY2xhc3NlcyBhcHBsaWVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDApJykuaGFzQ2xhc3MoJ3NvcnRpbmdfZGlzYWJsZWQnKTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJDbGljayBvbiBzZWNvbmQgY29sdW1uIGhhcyBubyBlZmZlY3QiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDMpJykuaHRtbCgpID09ICI0IjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJSZXZlcnNlIG9uIHNlY29uZCBjb2x1bW4gaGFzIG5vIGVmZmVjdCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIjQiOyB9CgkpOwoJCgkvKiBFbmFibGUgbWFrZXMgbm8gZGlmZmVyZW5jZSAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyBlbmFibGVkIG92ZXJyaWRlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTb3J0IjogdHJ1ZQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiR2Vja28iOyB9CgkpOwoJCgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/bSortCellsTop.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGFfdHdvX2hlYWRlcnMKb1Rlc3QuZm5TdGFydCggImJTb3J0Q2VsbHNUb3AiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgY2xhc3MgaXMgb24gdGhlIGJvdHRvbSBjZWxscyBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDEpIHRoOmVxKDApJykuaGFzQ2xhc3MoJ3NvcnRpbmdfYXNjJyk7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgaXMgcGVyZm9ybWVkIG9uIGJvdHRvbSBjZWxscyIsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMSkgdGg6ZXEoMCknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09ICJXZWJraXQiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIGNsYXNzIGlzIHVwZGF0ZWQgb24gdGhlIGJvdHRvbSBjZWxscyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSgxKSB0aDplcSgwKScpLmhhc0NsYXNzKCdzb3J0aW5nX2Rlc2MnKTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2xpY2tpbmcgb24gdG9wIGNlbGxzIGhhcyBubyBlZmZlY3QiLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDApIHRoOmVxKDApJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiV2Via2l0IjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2xpY2tpbmcgb24gYW5vdGhlciB0b3AgY2VsbCBoYXMgbm8gZWZmZWN0IiwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSgwKSB0aDplcSgzKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gIldlYmtpdCI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyBjbGFzcyBpcyBvbiB0aGUgdG9wIGNlbGwgd2hlbiBiU29ydENlbGxzVG9wIGlzIHRydWUiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNvcnRDZWxsc1RvcCI6IHRydWUKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGg6ZXEoMCknKS5oYXNDbGFzcygnc29ydGluZ19hc2MnKTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyBpcyBwZXJmb3JtZWQgb24gdG9wIGNlbGxzIG5vdyIsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGg6ZXEoMCknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09ICJXZWJraXQiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIGNsYXNzIGlzIHVwZGF0ZWQgb24gdGhlIHRvcCBjZWxscyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSgwKSB0aDplcSgwKScpLmhhc0NsYXNzKCdzb3J0aW5nX2Rlc2MnKTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2xpY2tpbmcgb24gYm90dG9tIGNlbGxzIGhhcyBubyBlZmZlY3QiLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDEpIHRoOmVxKDApJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiV2Via2l0IjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2xpY2tpbmcgb24gYW5vdGhlciBib3R0b20gY2VsbCBoYXMgbm8gZWZmZWN0IiwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSgxKSB0aDplcSgzKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gIldlYmtpdCI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/bSortClasses.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImJTb3J0Q2xhc3NlcyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyBjbGFzc2VzIGFyZSBhcHBsaWVkIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5oYXNDbGFzcygnc29ydGluZ18xJyk7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgY2xhc3NlcyBhcmUgYXBwbGllZCB0byBhbGwgcmVxdWlyZWQgY2VsbHMiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoNykgdGQ6ZXEoMCknKS5oYXNDbGFzcygnc29ydGluZ18xJyk7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgY2xhc3NlcyBhcmUgbm90IGFwcGxpZWQgdG8gbm9uLXNvcnRpbmcgY29sdW1ucyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmhhc0NsYXNzKCdzb3J0aW5nXzEnKSA9PSBmYWxzZTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyBtdWx0aS1jb2x1bW4gLSBhZGQgY29sdW1uIDEiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCW9EaXNwYWNoZXIuY2xpY2soICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJylbMF0sIHsgJ3NoaWZ0JzogdHJ1ZSB9ICk7IH0sCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5oYXNDbGFzcygnc29ydGluZ18xJykgJiYKCQkJCQkJICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMicpOwoJCX0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgbXVsdGktY29sdW1uIC0gYWRkIGNvbHVtbiAyIiwKCQlmdW5jdGlvbiAoKSB7IAoJCQlvRGlzcGFjaGVyLmNsaWNrKCAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgyKScpWzBdLCB7ICdzaGlmdCc6IHRydWUgfSApOyB9LAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMScpICYmCgkJCQkJCSAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmhhc0NsYXNzKCdzb3J0aW5nXzInKSAmJgoJCQkJCQkgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMiknKS5oYXNDbGFzcygnc29ydGluZ18zJyk7CgkJfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyBtdWx0aS1jb2x1bW4gLSBhZGQgY29sdW1uIDMiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCW9EaXNwYWNoZXIuY2xpY2soICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJylbMF0sIHsgJ3NoaWZ0JzogdHJ1ZSB9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmhhc0NsYXNzKCdzb3J0aW5nXzEnKSAmJgoJCQkJCQkgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5oYXNDbGFzcygnc29ydGluZ18yJykgJiYKCQkJCQkJICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDIpJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMycpICYmCgkJCQkJCSAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgzKScpLmhhc0NsYXNzKCdzb3J0aW5nXzMnKTsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJSZW1vdmUgc29ydGluZyBjbGFzc2VzIG9uIHNpbmdsZSBjb2x1bW4gc29ydCIsCgkJZnVuY3Rpb24gKCkgeyAKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoNCknKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5oYXNDbGFzcygnc29ydGluZ18xJykgPT0gZmFsc2UgJiYKCQkJCQkJICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMicpID09IGZhbHNlICYmCgkJCQkJCSAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgyKScpLmhhc0NsYXNzKCdzb3J0aW5nXzMnKSA9PSBmYWxzZSAmJgoJCQkJCQkgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMyknKS5oYXNDbGFzcygnc29ydGluZ18zJykgPT0gZmFsc2U7CgkJfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyBjbGFzcyAxIHdhcyBhZGRlZCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKSB0ZDplcSg0KScpLmhhc0NsYXNzKCdzb3J0aW5nXzEnKTsgfQoJKTsKCQoJCgkvKiBDaGVjayBjYW4gZGlzYWJsZSAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyBjbGFzc2VzIGNhbiBiZSBkaXNhYmxlZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiU29ydENsYXNzZXMiOiBmYWxzZQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmhhc0NsYXNzKCdzb3J0aW5nXzEnKSA9PSBmYWxzZTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyBjbGFzc2VzIGRpc2FibGVkIC0gYWRkIGNvbHVtbiAxIC0gbm8gZWZmZWN0IiwKCQlmdW5jdGlvbiAoKSB7IAoJCQlvRGlzcGFjaGVyLmNsaWNrKCAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpWzBdLCB7ICdzaGlmdCc6IHRydWUgfSApOyB9LAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMScpID09IGZhbHNlICYmCgkJCQkJCSAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmhhc0NsYXNzKCdzb3J0aW5nXzInKSA9PSBmYWxzZTsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIGNsYXNzZXMgZGlzYWJsZWQgLSBhZGQgY29sdW1uIDIgLSBubyBlZmZlY3QiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCW9EaXNwYWNoZXIuY2xpY2soICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDIpJylbMF0sIHsgJ3NoaWZ0JzogdHJ1ZSB9ICk7IH0sCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5oYXNDbGFzcygnc29ydGluZ18xJykgPT0gZmFsc2UgJiYKCQkJCQkJICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMicpID09IGZhbHNlICYmCgkJCQkJCSAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgyKScpLmhhc0NsYXNzKCdzb3J0aW5nXzMnKSA9PSBmYWxzZTsKCQl9CgkpOwoJCgkKCS8qIEVuYWJsZSBtYWtlcyBubyBkaWZmZXJlbmNlICovCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIGNsYXNzZXMgZW5hYmxlZCBvdmVycmlkZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiU29ydENsYXNzZXMiOiB0cnVlCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMScpOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/fnCookieCallback.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggIkNvb2tpZSBjYWxsYmFjayIgKTsKCgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJdmFyIG1QYXNzOwoJLyogTm90ZSB0aGF0IGluIG9yZGVyIHRvIGJlIGZ1bGx5IGVmZmVjdGl2ZSBoZXJlIGZvciBzYXZpbmcgc3RhdGUsIHRoZXJlIHdvdWxkIG5lZWQgdG8gYmUgYQoJICogc3RyaW5naWZ5IGZ1bmN0aW9uIHRvIHNlcmlhbGlzZSB0aGUgZGF0YSBhcnJheQoJICovCgkKCW9UZXN0LmZuVGVzdCggCgkJIm51bGwgYnkgZGVmYXVsdCIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKS5mblNldHRpbmdzKCkuZm5Db29raWVDYWxsYmFjayA9PSBudWxsOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJOdW1iZXIgb2YgYXJndW1lbnRzIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYkRlc3Ryb3kiOiB0cnVlLAoJCQkJImJTdGF0ZVNhdmUiOiB0cnVlLAoJCQkJImZuQ29va2llQ2FsbGJhY2siOiBmdW5jdGlvbiAoc05hbWUsIG9EYXRhLCBzRXhwaXJlcywgc1BhdGgpIHsKCQkJCQltUGFzcyA9IGFyZ3VtZW50cy5sZW5ndGg7CgkJCQkJcmV0dXJuIHNOYW1lICsgIj07IGV4cGlyZXM9IiArIHNFeHBpcmVzICsiOyBwYXRoPSIgKyBzUGF0aDsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3MgPT0gNDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiTmFtZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJEZXN0cm95IjogdHJ1ZSwKCQkJCSJiU3RhdGVTYXZlIjogdHJ1ZSwKCQkJCSJmbkNvb2tpZUNhbGxiYWNrIjogZnVuY3Rpb24gKHNOYW1lLCBvRGF0YSwgc0V4cGlyZXMsIHNQYXRoKSB7CgkJCQkJbVBhc3MgPSBzTmFtZT09IlNwcnlNZWRpYV9EYXRhVGFibGVzX2V4YW1wbGVfZG9tX2RhdGEucGhwIjsKCQkJCQlyZXR1cm4gc05hbWUgKyAiPTsgZXhwaXJlcz0iICsgc0V4cGlyZXMgKyI7IHBhdGg9IiArIHNQYXRoOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzczsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiRGF0YSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJEZXN0cm95IjogdHJ1ZSwKCQkJCSJiU3RhdGVTYXZlIjogdHJ1ZSwKCQkJCSJmbkNvb2tpZUNhbGxiYWNrIjogZnVuY3Rpb24gKHNOYW1lLCBvRGF0YSwgc0V4cGlyZXMsIHNQYXRoKSB7CgkJCQkJbVBhc3MgPSB0eXBlb2Ygb0RhdGEuaVN0YXJ0ICE9ICd1bmRlZmluZWQnOwoJCQkJCXJldHVybiBzTmFtZSArICI9OyBleHBpcmVzPSIgKyBzRXhwaXJlcyArIjsgcGF0aD0iICsgc1BhdGg7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJFeHBpcmVzIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYkRlc3Ryb3kiOiB0cnVlLAoJCQkJImJTdGF0ZVNhdmUiOiB0cnVlLAoJCQkJImZuQ29va2llQ2FsbGJhY2siOiBmdW5jdGlvbiAoc05hbWUsIG9EYXRhLCBzRXhwaXJlcywgc1BhdGgpIHsKCQkJCQltUGFzcyA9IHR5cGVvZiBzRXhwaXJlcyA9PSAnc3RyaW5nJzsKCQkJCQlyZXR1cm4gc05hbWUgKyAiPTsgZXhwaXJlcz0iICsgc0V4cGlyZXMgKyI7IHBhdGg9IiArIHNQYXRoOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzczsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUGF0aCIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJEZXN0cm95IjogdHJ1ZSwKCQkJCSJiU3RhdGVTYXZlIjogdHJ1ZSwKCQkJCSJmbkNvb2tpZUNhbGxiYWNrIjogZnVuY3Rpb24gKHNOYW1lLCBvRGF0YSwgc0V4cGlyZXMsIHNQYXRoKSB7CgkJCQkJbVBhc3MgPSBzUGF0aC5tYXRjaCgvbWVkaWFcL3VuaXRfdGVzdGluZ1wvdGVtcGxhdGVzLyk7CgkJCQkJcmV0dXJuIHNOYW1lICsgIj07IGV4cGlyZXM9IiArIHNFeHBpcmVzICsiOyBwYXRoPSIgKyBzUGF0aDsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3M7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db29raWVEZXN0cm95KCAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpICk7CglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/fnCreatedCell.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImZuQ3JlYXRlZENlbGwgdGVzdHMiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJdmFyIHRtcCA9IDA7CgoJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkiYW9Db2x1bW5EZWZzIjogWyB7CgkJCWZuQ3JlYXRlZENlbGw6IGZ1bmN0aW9uICgpIHsKCQkJCXRtcCsrOwoJCQl9LAoJCQkiYVRhcmdldHMiOiBbIl9hbGwiXQoJCX0gXQoJfSApOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDZWxsIGNyZWF0ZWQgaXMgY2FsbGVkIG9uY2UgZm9yIGVhY2ggY2VsbCBvbiBpbml0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHRtcD09PTI4NTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ3JlYXRlZCBpc24ndCBjYWxsZWQgYmFjayBvbiBvdGhlciBkcmF3cyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gdG1wPT09Mjg1OyB9CgkpOwoKCW9UZXN0LmZuVGVzdCgKCQkiRm91ciBhcmd1bWVudHMgZm9yIHRoZSBmdW5jdGlvbiIsCgkJZnVuY3Rpb24gKCkgeyAKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCXRtcCA9IHRydWU7CgoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFvQ29sdW1uRGVmcyI6IFsgewoJCQkJCWZuQ3JlYXRlZFJvdzogZnVuY3Rpb24gKCkgewoJCQkJCQlpZiAoIGFyZ3VtZW50cy5sZW5ndGggIT09IDQgKSB7CgkJCQkJCQl0bXAgPSBmYWxzZTsKCQkJCQkJfQoJCQkJCX0sCgkJCQkJImFUYXJnZXRzIjogWyJfYWxsIl0KCQkJCX0gXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiB0bXA7IH0KCSk7CgoJb1Rlc3QuZm5UZXN0KAoJCSJGaXJzdCBhcmd1bWVudCBpcyBhIFREIGVsZW1lbnQiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQl0bXAgPSB0cnVlOwoKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhb0NvbHVtbkRlZnMiOiBbIHsKCQkJCQlmbkNyZWF0ZWRSb3c6IGZ1bmN0aW9uICgpIHsKCQkJCQkJaWYgKCBhcmd1bWVudHNbMF0ubm9kZU5hbWUgIT09ICJURCIgKSB7CgkJCQkJCQl0bXAgPSBmYWxzZTsKCQkJCQkJfQoJCQkJCX0sCgkJCQkJImFUYXJnZXRzIjogWyJfYWxsIl0KCQkJCX0gXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiB0bXA7IH0KCSk7CgoJb1Rlc3QuZm5UZXN0KAoJCSJTZWNvbmQgYXJndW1lbnQgaXMgdGhlIEhUTUwgdmFsdWUiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQl0bXAgPSB0cnVlOwoKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhb0NvbHVtbkRlZnMiOiBbIHsKCQkJCQlmbkNyZWF0ZWRSb3c6IGZ1bmN0aW9uICgpIHsKCQkJCQkJaWYgKCBhcmd1bWVudHNbMV0gIT0gJCgndGQnKS5odG1sKCkgKSB7CgkJCQkJCQl0bXAgPSBmYWxzZTsKCQkJCQkJfQoJCQkJCX0sCgkJCQkJImFUYXJnZXRzIjogWyJfYWxsIl0KCQkJCX0gXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiB0bXA7IH0KCSk7CgoJb1Rlc3QuZm5UZXN0KAoJCSJUaGlyZCBhcmd1bWVudCBpcyB0aGUgZGF0YSBhcnJheSIsCgkJZnVuY3Rpb24gKCkgeyAKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCXRtcCA9IHRydWU7CgoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFvQ29sdW1uRGVmcyI6IFsgewoJCQkJCWZuQ3JlYXRlZFJvdzogZnVuY3Rpb24gKCkgewoJCQkJCQlpZiAoIGFyZ3VtZW50c1syXS5sZW5ndGggIT09IDUgKSB7CgkJCQkJCQl0bXAgPSBmYWxzZTsKCQkJCQkJfQoJCQkJCX0sCgkJCQkJImFUYXJnZXRzIjogWyJfYWxsIl0KCQkJCX0gXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiB0bXA7IH0KCSk7CgoJb1Rlc3QuZm5UZXN0KAoJCSJGb3VydGggYXJndW1lbnQgaXMgdGhlIGRhdGEgc291cmNlIGZvciB0aGUgcm93IiwKCQlmdW5jdGlvbiAoKSB7IAoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJdG1wID0gdHJ1ZTsKCgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYW9Db2x1bW5EZWZzIjogWyB7CgkJCQkJZm5DcmVhdGVkUm93OiBmdW5jdGlvbiAoKSB7CgkJCQkJCWlmICggYXJndW1lbnRzWzJdICE9PSB0aGlzLmZuU2V0dGluZ3MoKS5hb0RhdGFbIGFyZ3VtZW50c1syXSBdLl9hRGF0YSApIHsKCQkJCQkJCXRtcCA9IGZhbHNlOwoJCQkJCQl9CgkJCQkJfSwKCQkJCQkiYVRhcmdldHMiOiBbIl9hbGwiXQoJCQkJfSBdCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHRtcDsgfQoJKTsKCglvVGVzdC5mblRlc3QoCgkJIkZpZnRoIGFyZ3VtZW50IGlzIHRoZSB0aGUgY29sIGluZGV4IiwKCQlmdW5jdGlvbiAoKSB7IAoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJdG1wID0gdHJ1ZTsKCgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYW9Db2x1bW5EZWZzIjogWyB7CgkJCQkJZm5DcmVhdGVkUm93OiBmdW5jdGlvbiAoKSB7CgkJCQkJCWlmICggYXJndW1lbnRzWzFdICE9ICQoJ3RkOmVxKCcrYXJndW1lbnRzWzRdKycpJywgYXJndW1lbnRzWzBdLnBhcmVudE5vZGUpLmh0bWwoKSApIHsKCQkJCQkJCXRtcCA9IGZhbHNlOwoJCQkJCQl9CgkJCQkJfSwKCQkJCQkiYVRhcmdldHMiOiBbIl9hbGwiXQoJCQkJfSBdCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHRtcDsgfQoJKTsKCQoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/fnCreatedRow.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImZuQ3JlYXRlZFJvdyB0ZXN0cyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIgdG1wID0gMDsKCgkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCWZuQ3JlYXRlZFJvdzogZnVuY3Rpb24gKCkgewoJCQl0bXArKzsKCQl9Cgl9ICk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlJvdyBjcmVhdGVkIGlzIGNhbGxlZCBvbmNlIGZvciBlYWNoIHJvdyBvbiBpbml0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHRtcD09PTU3OyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDcmVhdGVkIGlzbid0IGNhbGxlZCBiYWNrIG9uIG90aGVyIGRyYXdzIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiB0bXA9PT01NzsgfQoJKTsKCglvVGVzdC5mblRlc3QoCgkJIlRocmVlIGFyZ3VtZW50cyBmb3IgdGhlIGZ1bmN0aW9uIiwKCQlmdW5jdGlvbiAoKSB7IAoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJdG1wID0gdHJ1ZTsKCgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQlmbkNyZWF0ZWRSb3c6IGZ1bmN0aW9uICgpIHsKCQkJCQlpZiAoIGFyZ3VtZW50cy5sZW5ndGggIT09IDMgKSB7CgkJCQkJCXRtcCA9IGZhbHNlOwoJCQkJCX0KCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gdG1wOyB9CgkpOwoKCW9UZXN0LmZuVGVzdCgKCQkiRmlyc3QgYXJndW1lbnQgaXMgYSBUUiBlbGVtZW50IiwKCQlmdW5jdGlvbiAoKSB7IAoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJdG1wID0gdHJ1ZTsKCgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQlmbkNyZWF0ZWRSb3c6IGZ1bmN0aW9uICgpIHsKCQkJCQlpZiAoIGFyZ3VtZW50c1swXS5ub2RlTmFtZSAhPT0gIlRSIiApIHsKCQkJCQkJdG1wID0gZmFsc2U7CgkJCQkJfQoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiB0bXA7IH0KCSk7CgoJb1Rlc3QuZm5UZXN0KAoJCSJTZWNvbmQgYXJndW1lbnQgaXMgYW4gYXJyYXkgd2l0aCA1IGVsZW1lbnRzIiwKCQlmdW5jdGlvbiAoKSB7IAoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJdG1wID0gdHJ1ZTsKCgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQlmbkNyZWF0ZWRSb3c6IGZ1bmN0aW9uICgpIHsKCQkJCQlpZiAoIGFyZ3VtZW50c1sxXS5sZW5ndGggIT09IDUgKSB7CgkJCQkJCXRtcCA9IGZhbHNlOwoJCQkJCX0KCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gdG1wOyB9CgkpOwoKCW9UZXN0LmZuVGVzdCgKCQkiVGhpcmQgYXJndW1lbnQgaXMgdGhlIGRhdGEgc291cmNlIGZvciB0aGUgcm93IiwKCQlmdW5jdGlvbiAoKSB7IAoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJdG1wID0gdHJ1ZTsKCgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQlmbkNyZWF0ZWRSb3c6IGZ1bmN0aW9uICgpIHsKCQkJCQlpZiAoIGFyZ3VtZW50c1sxXSAhPT0gdGhpcy5mblNldHRpbmdzKCkuYW9EYXRhWyBhcmd1bWVudHNbMl0gXS5fYURhdGEgKSB7CgkJCQkJCXRtcCA9IGZhbHNlOwoJCQkJCX0KCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gdG1wOyB9CgkpOwoKCW9UZXN0LmZuVGVzdCgKCQkiVFIgZWxlbWVudCBpcyB0aWVkIHRvIHRoZSBjb3JyZWN0IGRhdGEiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQl0bXAgPSBmYWxzZTsKCgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQlmbkNyZWF0ZWRSb3c6IGZ1bmN0aW9uICh0ciwgZGF0YSwgaW5kZXgpIHsKCQkJCQlpZiAoIGRhdGFbMV0gPT09ICJGaXJlZm94IDEuMCIgKSB7CgkJCQkJCWlmICggJCgndGQ6ZXEoMyknLCB0cikuaHRtbCgpID09ICIxLjciICkgewoJCQkJCQkJdG1wID0gdHJ1ZTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gdG1wOyB9CgkpOwoJCgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/fnDeleteRow.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImZuRGVsZXRlUm93IiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDaGVjayB0aGF0IHRoZSBkZWZhdWx0IGRhdGEgaXMgc2FuZSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3MuYXNEYXRhU2VhcmNoLmpvaW4oJyAnKS5tYXRjaCgvNC4wL2cpLmxlbmd0aCA9PSAzOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJSZW1vdmUgdGhlIGZpcnN0IGRhdGEgcm93LCBhbmQgY2hlY2sgdGhhdCBodGUgc2VhcmNoIGRhdGEgaGFzIGJlZW4gdXBkYXRlZCIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUuZm5EZWxldGVSb3coIDAgKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3MuYXNEYXRhU2VhcmNoLmpvaW4oJyAnKS5tYXRjaCgvNC4wL2cpLmxlbmd0aCA9PSAyOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDaGVjayB0aGF0IHRoZSBpbmZvIGVsZW1lbnQgaGFzIGJlZW4gdXBkYXRlZCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9pbmZvJykuaHRtbCgpID09ICJTaG93aW5nIDEgdG8gMTAgb2YgNTYgZW50cmllcyI7IH0KCSk7CgkKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/fnDrawCallback.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImZuRHJhd0NhbGxiYWNrIiApOwoKLyogRmFpcmx5IGJvcmluZyBmdW5jdGlvbiBjb21wYXJlZCB0byB0aGUgb3RoZXJzISAqLwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJdmFyIG1QYXNzOwoJCglvVGVzdC5mblRlc3QoIAoJCSJEZWZhdWx0IHNob3VsZCBiZSBudWxsIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5mbkRyYXdDYWxsYmFjayA9PSBudWxsOyB9CgkpOwoJCgkKCW9UZXN0LmZuVGVzdCggCgkJIk9uZSBhcmd1bWVudCBwYXNzZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IC0xOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImZuRHJhd0NhbGxiYWNrIjogZnVuY3Rpb24gKCApIHsKCQkJCQltUGFzcyA9IGFyZ3VtZW50cy5sZW5ndGg7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzID09IDE7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiVGhhdCBvbmUgYXJndW1lbnQgaXMgdGhlIHNldHRpbmdzIG9iamVjdCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiZm5EcmF3Q2FsbGJhY2siOiBmdW5jdGlvbiAoIG9TZXR0aW5ncyApIHsKCQkJCQltUGFzcyA9IG9TZXR0aW5nczsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1RhYmxlLmZuU2V0dGluZ3MoKSA9PSBtUGFzczsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJmblJvd0NhbGxiYWNrIGNhbGxlZCBvbmNlIG9uIGZpcnN0IGRyYXciLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IDA7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiZm5EcmF3Q2FsbGJhY2siOiBmdW5jdGlvbiAoICkgewoJCQkJCW1QYXNzKys7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzID09IDE7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJImZuUm93Q2FsbGJhY2sgY2FsbGVkIG9uY2Ugb24gZWFjaCBkcmF3IHRoZXJlIGFmdGVyIGFzIHdlbGwiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzID09IDQ7IH0KCSk7CgkKCQoJCgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/fnFilter.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImZuRmlsdGVyIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCW9UYWJsZS5mbkZpbHRlcigxKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiRmlsdGVyaW5nIHdpdGggYSBub24tc3RyaW5nIGlucHV0IGlzIHZhbGlkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlX2luZm8nKS5odG1sKCkgPT0gIlNob3dpbmcgMSB0byAxMCBvZiAzMiBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/fnFooterCallback.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImZuRm9vdGVyQ2FsbGJhY2siICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7Cgl2YXIgbVBhc3M7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkRlZmF1bHQgc2hvdWxkIGJlIG51bGwiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLmZuRm9vdGVyQ2FsbGJhY2sgPT0gbnVsbDsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJGaXZlIGFyZ3VtZW50cyBwYXNzZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IC0xOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImZuRm9vdGVyQ2FsbGJhY2siOiBmdW5jdGlvbiAoICkgewoJCQkJCW1QYXNzID0gYXJndW1lbnRzLmxlbmd0aDsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3MgPT0gNTsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJmblJvd0NhbGxiYWNrIGNhbGxlZCBvbmNlIHBlciBkcmF3IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSAwOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImZuRm9vdGVyQ2FsbGJhY2siOiBmdW5jdGlvbiAoIG5Gb290LCBhYXNEYXRhLCBpU3RhcnQsIGlFbmQsIGFpRGlzcGxheSApIHsKCQkJCQltUGFzcysrOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzcyA9PSAxOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJmblJvd0NhbGxiYWNrIGNhbGxlZCBvbiBwYWdpbmcgKGkuZS4gYW5vdGhlciBkcmF3KSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzcyA9PSAyOyB9CgkpOwoJCgkKCW9UZXN0LmZuVGVzdCggCgkJImZuUm93Q2FsbGJhY2sgYWxsb3dzIHVzIHRvIGFsdGVyIHJvdyBpbmZvcm1hdGlvbiIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJmbkZvb3RlckNhbGxiYWNrIjogZnVuY3Rpb24gKCBuRm9vdCwgYWFzRGF0YSwgaVN0YXJ0LCBpRW5kLCBhaURpc3BsYXkgKSB7CgkJCQkJbkZvb3QuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RoJylbMF0uaW5uZXJIVE1MID0gIkRpc3BsYXlpbmcgIisoaUVuZC1pU3RhcnQpKyIgcmVjb3JkcyI7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRmb290IHRoOmVxKDApJykuaHRtbCgpID09ICJEaXNwbGF5aW5nIDEwIHJlY29yZHMiOyB9CgkpOwoJCgkKCW9UZXN0LmZuVGVzdCggCgkJIkRhdGEgYXJyYXkgaGFzIGxlbmd0aCBtYXRjaGluZyBvcmlnaW5hbCBkYXRhIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSB0cnVlOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImZuRm9vdGVyQ2FsbGJhY2siOiBmdW5jdGlvbiAoIG5Gb290LCBhYXNEYXRhLCBpU3RhcnQsIGlFbmQsIGFpRGlzcGxheSApIHsKCQkJCQlpZiAoIGFhc0RhdGEubGVuZ3RoICE9IDU3ICkKCQkJCQl7CgkJCQkJCW1QYXNzID0gZmFsc2U7CgkJCQkJfQoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzczsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiRGF0YSBhcnJheSdzIGNvbHVtbiBsZW5ndGhzIG1hdGNoIG9yaWdpbmFsIGRhdGEiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IHRydWU7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiZm5Gb290ZXJDYWxsYmFjayI6IGZ1bmN0aW9uICggbkZvb3QsIGFhc0RhdGEsIGlTdGFydCwgaUVuZCwgYWlEaXNwbGF5ICkgewoJCQkJCWZvciAoIHZhciBpPTAsIGlMZW49YWFzRGF0YS5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCQkJCXsKCQkJCQkJaWYgKCBhYXNEYXRhW2ldLmxlbmd0aCAhPSA1ICkKCQkJCQkJewoJCQkJCQkJbVBhc3MgPSBmYWxzZTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3M7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiaVN0YXJ0IGNvcnJlY3Qgb24gZmlyc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gdHJ1ZTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJmbkZvb3RlckNhbGxiYWNrIjogZnVuY3Rpb24gKCBuRm9vdCwgYWFzRGF0YSwgaVN0YXJ0LCBpRW5kLCBhaURpc3BsYXkgKSB7CgkJCQkJaWYgKCBpU3RhcnQgIT0gMCApCgkJCQkJewoJCQkJCQltUGFzcyA9IGZhbHNlOwoJCQkJCX0KCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3M7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiaVN0YXJ0IGNvcnJlY3Qgb24gc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IGZhbHNlOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImZuRm9vdGVyQ2FsbGJhY2siOiBmdW5jdGlvbiAoIG5Gb290LCBhYXNEYXRhLCBpU3RhcnQsIGlFbmQsIGFpRGlzcGxheSApIHsKCQkJCQlpZiAoIGlTdGFydCA9PSAxMCApCgkJCQkJewoJCQkJCQltUGFzcyA9IHRydWU7CgkJCQkJfQoJCQkJfQoJCQl9ICk7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3M7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiaUVuZCBjb3JyZWN0IG9uIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IHRydWU7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiZm5Gb290ZXJDYWxsYmFjayI6IGZ1bmN0aW9uICggbkZvb3QsIGFhc0RhdGEsIGlTdGFydCwgaUVuZCwgYWlEaXNwbGF5ICkgewoJCQkJCWlmICggaUVuZCAhPSAxMCApCgkJCQkJewoJCQkJCQltUGFzcyA9IGZhbHNlOwoJCQkJCX0KCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3M7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiaUVuZCBjb3JyZWN0IG9uIHNlY29uZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSBmYWxzZTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJmbkZvb3RlckNhbGxiYWNrIjogZnVuY3Rpb24gKCBuRm9vdCwgYWFzRGF0YSwgaVN0YXJ0LCBpRW5kLCBhaURpc3BsYXkgKSB7CgkJCQkJaWYgKCBpRW5kID09IDIwICkKCQkJCQl7CgkJCQkJCW1QYXNzID0gdHJ1ZTsKCQkJCQl9CgkJCQl9CgkJCX0gKTsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzczsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJhaURpc3BsYXkgbGVuZ3RoIGlzIGZ1bGwgZGF0YSB3aGVuIG5vdCBmaWx0ZXJlZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gZmFsc2U7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiZm5Gb290ZXJDYWxsYmFjayI6IGZ1bmN0aW9uICggbkZvb3QsIGFhc0RhdGEsIGlTdGFydCwgaUVuZCwgYWlEaXNwbGF5ICkgewoJCQkJCWlmICggYWlEaXNwbGF5Lmxlbmd0aCA9PSA1NyApCgkJCQkJewoJCQkJCQltUGFzcyA9IHRydWU7CgkJCQkJfQoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzczsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiYWlEaXNwbGF5IGxlbmd0aCBpcyA5IHdoZW4gZmlsdGVyaW5nIG9uICdNb3ppbGxhJyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gZmFsc2U7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiZm5Gb290ZXJDYWxsYmFjayI6IGZ1bmN0aW9uICggbkZvb3QsIGFhc0RhdGEsIGlTdGFydCwgaUVuZCwgYWlEaXNwbGF5ICkgewoJCQkJCWlmICggYWlEaXNwbGF5Lmxlbmd0aCA9PSA5ICkKCQkJCQl7CgkJCQkJCW1QYXNzID0gdHJ1ZTsKCQkJCQl9CgkJCQl9CgkJCX0gKTsKCQkJb1RhYmxlLmZuRmlsdGVyKCAiTW96aWxsYSIgKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzOyB9CgkpOwoJCgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/fnHeaderCallback.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImZuSGVhZGVyQ2FsbGJhY2siICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7Cgl2YXIgbVBhc3M7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkRlZmF1bHQgc2hvdWxkIGJlIG51bGwiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLmZuSGVhZGVyQ2FsbGJhY2sgPT0gbnVsbDsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJGaXZlIGFyZ3VtZW50cyBwYXNzZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IC0xOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImZuSGVhZGVyQ2FsbGJhY2siOiBmdW5jdGlvbiAoICkgewoJCQkJCW1QYXNzID0gYXJndW1lbnRzLmxlbmd0aDsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3MgPT0gNTsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJmblJvd0NhbGxiYWNrIGNhbGxlZCBvbmNlIHBlciBkcmF3IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSAwOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImZuSGVhZGVyQ2FsbGJhY2siOiBmdW5jdGlvbiAoIG5IZWFkLCBhYXNEYXRhLCBpU3RhcnQsIGlFbmQsIGFpRGlzcGxheSApIHsKCQkJCQltUGFzcysrOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzcyA9PSAxOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJmblJvd0NhbGxiYWNrIGNhbGxlZCBvbiBwYWdpbmcgKGkuZS4gYW5vdGhlciBkcmF3KSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzcyA9PSAyOyB9CgkpOwoJCgkKCW9UZXN0LmZuVGVzdCggCgkJImZuUm93Q2FsbGJhY2sgYWxsb3dzIHVzIHRvIGFsdGVyIHJvdyBpbmZvcm1hdGlvbiIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJmbkhlYWRlckNhbGxiYWNrIjogZnVuY3Rpb24gKCBuSGVhZCwgYWFzRGF0YSwgaVN0YXJ0LCBpRW5kLCBhaURpc3BsYXkgKSB7CgkJCQkJbkhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RoJylbMF0uaW5uZXJIVE1MID0gIkRpc3BsYXlpbmcgIisoaUVuZC1pU3RhcnQpKyIgcmVjb3JkcyI7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDApJykuaHRtbCgpID09ICJEaXNwbGF5aW5nIDEwIHJlY29yZHMiOyB9CgkpOwoJCgkKCW9UZXN0LmZuVGVzdCggCgkJIkRhdGEgYXJyYXkgaGFzIGxlbmd0aCBtYXRjaGluZyBvcmlnaW5hbCBkYXRhIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSB0cnVlOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImZuSGVhZGVyQ2FsbGJhY2siOiBmdW5jdGlvbiAoIG5IZWFkLCBhYXNEYXRhLCBpU3RhcnQsIGlFbmQsIGFpRGlzcGxheSApIHsKCQkJCQlpZiAoIGFhc0RhdGEubGVuZ3RoICE9IDU3ICkKCQkJCQl7CgkJCQkJCW1QYXNzID0gZmFsc2U7CgkJCQkJfQoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzczsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiRGF0YSBhcnJheSdzIGNvbHVtbiBsZW5ndGhzIG1hdGNoIG9yaWdpbmFsIGRhdGEiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IHRydWU7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiZm5IZWFkZXJDYWxsYmFjayI6IGZ1bmN0aW9uICggbkhlYWQsIGFhc0RhdGEsIGlTdGFydCwgaUVuZCwgYWlEaXNwbGF5ICkgewoJCQkJCWZvciAoIHZhciBpPTAsIGlMZW49YWFzRGF0YS5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCQkJCXsKCQkJCQkJaWYgKCBhYXNEYXRhW2ldLmxlbmd0aCAhPSA1ICkKCQkJCQkJewoJCQkJCQkJbVBhc3MgPSBmYWxzZTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3M7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiaVN0YXJ0IGNvcnJlY3Qgb24gZmlyc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gdHJ1ZTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJmbkhlYWRlckNhbGxiYWNrIjogZnVuY3Rpb24gKCBuSGVhZCwgYWFzRGF0YSwgaVN0YXJ0LCBpRW5kLCBhaURpc3BsYXkgKSB7CgkJCQkJaWYgKCBpU3RhcnQgIT0gMCApCgkJCQkJewoJCQkJCQltUGFzcyA9IGZhbHNlOwoJCQkJCX0KCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3M7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiaVN0YXJ0IGNvcnJlY3Qgb24gc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IGZhbHNlOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImZuSGVhZGVyQ2FsbGJhY2siOiBmdW5jdGlvbiAoIG5IZWFkLCBhYXNEYXRhLCBpU3RhcnQsIGlFbmQsIGFpRGlzcGxheSApIHsKCQkJCQlpZiAoIGlTdGFydCA9PSAxMCApCgkJCQkJewoJCQkJCQltUGFzcyA9IHRydWU7CgkJCQkJfQoJCQkJfQoJCQl9ICk7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3M7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiaUVuZCBjb3JyZWN0IG9uIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IHRydWU7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiZm5IZWFkZXJDYWxsYmFjayI6IGZ1bmN0aW9uICggbkhlYWQsIGFhc0RhdGEsIGlTdGFydCwgaUVuZCwgYWlEaXNwbGF5ICkgewoJCQkJCWlmICggaUVuZCAhPSAxMCApCgkJCQkJewoJCQkJCQltUGFzcyA9IGZhbHNlOwoJCQkJCX0KCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3M7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiaUVuZCBjb3JyZWN0IG9uIHNlY29uZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSBmYWxzZTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJmbkhlYWRlckNhbGxiYWNrIjogZnVuY3Rpb24gKCBuSGVhZCwgYWFzRGF0YSwgaVN0YXJ0LCBpRW5kLCBhaURpc3BsYXkgKSB7CgkJCQkJaWYgKCBpRW5kID09IDIwICkKCQkJCQl7CgkJCQkJCW1QYXNzID0gdHJ1ZTsKCQkJCQl9CgkJCQl9CgkJCX0gKTsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzczsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJhaURpc3BsYXkgbGVuZ3RoIGlzIGZ1bGwgZGF0YSB3aGVuIG5vdCBmaWx0ZXJlZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gZmFsc2U7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiZm5IZWFkZXJDYWxsYmFjayI6IGZ1bmN0aW9uICggbkhlYWQsIGFhc0RhdGEsIGlTdGFydCwgaUVuZCwgYWlEaXNwbGF5ICkgewoJCQkJCWlmICggYWlEaXNwbGF5Lmxlbmd0aCA9PSA1NyApCgkJCQkJewoJCQkJCQltUGFzcyA9IHRydWU7CgkJCQkJfQoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzczsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiYWlEaXNwbGF5IGxlbmd0aCBpcyA5IHdoZW4gZmlsdGVyaW5nIG9uICdNb3ppbGxhJyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gZmFsc2U7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiZm5IZWFkZXJDYWxsYmFjayI6IGZ1bmN0aW9uICggbkhlYWQsIGFhc0RhdGEsIGlTdGFydCwgaUVuZCwgYWlEaXNwbGF5ICkgewoJCQkJCWlmICggYWlEaXNwbGF5Lmxlbmd0aCA9PSA5ICkKCQkJCQl7CgkJCQkJCW1QYXNzID0gdHJ1ZTsKCQkJCQl9CgkJCQl9CgkJCX0gKTsKCQkJb1RhYmxlLmZuRmlsdGVyKCAiTW96aWxsYSIgKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzOyB9CgkpOwoJCgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/fnInfoCallback.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImZuSW5mb0NhbGxiYWNrIGNoZWNrcyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIgbVBhc3M7CgkKCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7CgkKCS8qIEJhc2ljIGNoZWNrcyAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkibnVsbCBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCkuZm5TZXR0aW5ncygpLm9MYW5ndWFnZS5mbkluZm9DYWxsYmFjayA9PSBudWxsOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJBZ3J1bWVudCBsZW5ndGgiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiRGVzdHJveSI6IHRydWUsCgkJCQkiZm5JbmZvQ2FsbGJhY2siOiBmdW5jdGlvbiggb1MsIGlTdGFydCwgaUVuZCwgaU1heCwgaVRvdGFsLCBzUHJlICkgewoJCQkJCW1QYXNzID0gYXJndW1lbnRzLmxlbmd0aDsKCQkJCQlyZXR1cm4gc1ByZTsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3MgPT0gNjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU2V0dGluZ3MgZmlyc3QiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiRGVzdHJveSI6IHRydWUsCgkJCQkiZm5JbmZvQ2FsbGJhY2siOiBmdW5jdGlvbiggb1MsIGlTdGFydCwgaUVuZCwgaU1heCwgaVRvdGFsLCBzUHJlICkgewoJCQkJCW1QYXNzID0gKG9TID09ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCkuZm5TZXR0aW5ncygpKSA/IHRydWUgOiBmYWxzZTsKCQkJCQlyZXR1cm4gc1ByZTsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3M7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlN0YXJ0IGFyZyIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJEZXN0cm95IjogdHJ1ZSwKCQkJCSJmbkluZm9DYWxsYmFjayI6IGZ1bmN0aW9uKCBvUywgaVN0YXJ0LCBpRW5kLCBpTWF4LCBpVG90YWwsIHNQcmUgKSB7CgkJCQkJcmV0dXJuIGlTdGFydDsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGVfaW5mbycpLmh0bWwoKSA9PSAiMSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkVuZCBhcmciLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiRGVzdHJveSI6IHRydWUsCgkJCQkiZm5JbmZvQ2FsbGJhY2siOiBmdW5jdGlvbiggb1MsIGlTdGFydCwgaUVuZCwgaU1heCwgaVRvdGFsLCBzUHJlICkgewoJCQkJCXJldHVybiBpRW5kOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9pbmZvJykuaHRtbCgpID09ICIxMCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIk1heCBhcmciLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiRGVzdHJveSI6IHRydWUsCgkJCQkiZm5JbmZvQ2FsbGJhY2siOiBmdW5jdGlvbiggb1MsIGlTdGFydCwgaUVuZCwgaU1heCwgaVRvdGFsLCBzUHJlICkgewoJCQkJCXJldHVybiBpTWF4OwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9pbmZvJykuaHRtbCgpID09ICI1NyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIk1heCBhcmcgLSBmaWx0ZXIiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKS5mbkZpbHRlcigiMS4wIik7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9pbmZvJykuaHRtbCgpID09ICI1NyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlRvdGFsIGFyZyIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJEZXN0cm95IjogdHJ1ZSwKCQkJCSJmbkluZm9DYWxsYmFjayI6IGZ1bmN0aW9uKCBvUywgaVN0YXJ0LCBpRW5kLCBpTWF4LCBpVG90YWwsIHNQcmUgKSB7CgkJCQkJcmV0dXJuIGlUb3RhbDsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGVfaW5mbycpLmh0bWwoKSA9PSAiNTciOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJUb3RhbCBhcmcgLSBmaWx0ZXIiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKS5mbkZpbHRlcigiMS4wIik7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9pbmZvJykuaHRtbCgpID09ICIzIjsgfQoJKTsKCQoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/fnInitComplete.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImZuSW5pdENvbXBsZXRlIiApOwoKLyogRmFpcmx5IGJvcmluZyBmdW5jdGlvbiBjb21wYXJlZCB0byB0aGUgb3RoZXJzISAqLwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJdmFyIG1QYXNzOwoJCglvVGVzdC5mblRlc3QoIAoJCSJEZWZhdWx0IHNob3VsZCBiZSBudWxsIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5mbkluaXRDb21wbGV0ZSA9PSBudWxsOyB9CgkpOwoJCgkKCW9UZXN0LmZuVGVzdCggCgkJIlR3byBhcmd1bWVudHMgcGFzc2VkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSAtMTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJmbkluaXRDb21wbGV0ZSI6IGZ1bmN0aW9uICggKSB7CgkJCQkJbVBhc3MgPSBhcmd1bWVudHMubGVuZ3RoPT09MiAmJiBhcmd1bWVudHNbMV09PT11bmRlZmluZWQ7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzOyB9CgkpOwoJCgkKCW9UZXN0LmZuVGVzdCggCgkJIlRoYXQgb25lIGFyZ3VtZW50IGlzIHRoZSBzZXR0aW5ncyBvYmplY3QiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImZuSW5pdENvbXBsZXRlIjogZnVuY3Rpb24gKCBvU2V0dGluZ3MgKSB7CgkJCQkJbVBhc3MgPSBvU2V0dGluZ3M7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9UYWJsZS5mblNldHRpbmdzKCkgPT0gbVBhc3M7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiZm5Jbml0Q29tcGxldGUgY2FsbGVkIG9uY2Ugb24gZmlyc3QgZHJhdyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gMDsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJmbkluaXRDb21wbGV0ZSI6IGZ1bmN0aW9uICggKSB7CgkJCQkJbVBhc3MrKzsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3MgPT0gMTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiZm5Jbml0Q29tcGxldGUgbmV2ZXIgY2FsbGVkIHRoZXJlIGFmdGVyIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzcyA9PSAxOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSIxMCByb3dzIGluIHRoZSB0YWJsZSBvbiBjb21wbGV0ZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gMDsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJmbkluaXRDb21wbGV0ZSI6IGZ1bmN0aW9uICggKSB7CgkJCQkJbVBhc3MgPSAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aDsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3MgPT0gMTA7IH0KCSk7CgkKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/fnRowCallback.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImZuUm93Q2FsbGJhY2siICk7CgovKiBOb3RlIC0gZm5Sb3dDYWxsYmFjayBNVVNUIHJldHVybiB0aGUgZmlyc3QgYXJndW1lbnRzIChtb2RpZmllZCBvciBub3QpICovCgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7Cgl2YXIgbVBhc3M7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkRlZmF1bHQgc2hvdWxkIGJlIG51bGwiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLmZuUm93Q2FsbGJhY2sgPT0gbnVsbDsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJGb3VyIGFyZ3VtZW50cyBwYXNzZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IC0xOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImZuUm93Q2FsbGJhY2siOiBmdW5jdGlvbiAoIG5UciApIHsKCQkJCQltUGFzcyA9IGFyZ3VtZW50cy5sZW5ndGg7CgkJCQkJcmV0dXJuIG5UcjsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3MgPT0gNDsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJmblJvd0NhbGxiYWNrIGNhbGxlZCBvbmNlIGZvciBlYWNoIGRyYXduIHJvdyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gMDsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJmblJvd0NhbGxiYWNrIjogZnVuY3Rpb24gKCBuVHIsIGFzRGF0YSwgaURyYXdJbmRleCwgaURhdGFJbmRleCApIHsKCQkJCQltUGFzcysrOwoJCQkJCXJldHVybiBuVHI7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzID09IDEwOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJmblJvd0NhbGxiYWNrIGFsbG93cyB1cyB0byBhbHRlciByb3cgaW5mb3JtYXRpb24iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiZm5Sb3dDYWxsYmFjayI6IGZ1bmN0aW9uICggblRyLCBhc0RhdGEsIGlEcmF3SW5kZXgsIGlEYXRhSW5kZXggKSB7CgkJCQkJJChuVHIpLmFkZENsYXNzKCd1bml0X3Rlc3QnKTsKCQkJCQlyZXR1cm4gblRyOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKScpLmhhc0NsYXNzKCd1bml0X3Rlc3QnKTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiRGF0YSBhcnJheSBoYXMgbGVuZ3RoIG1hdGNoaW5nIGNvbHVtbnMiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IHRydWU7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiZm5Sb3dDYWxsYmFjayI6IGZ1bmN0aW9uICggblRyLCBhc0RhdGEsIGlEcmF3SW5kZXgsIGlEYXRhSW5kZXggKSB7CgkJCQkJaWYgKCBhc0RhdGEubGVuZ3RoICE9IDUgKQoJCQkJCQltUGFzcyA9IGZhbHNlOwoJCQkJCXJldHVybiBuVHI7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJEYXRhIGFycmF5IGhhcyBsZW5ndGggbWF0Y2hpbmcgY29sdW1ucyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gdHJ1ZTsKCQkJdmFyIGlDb3VudCA9IDA7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiZm5Sb3dDYWxsYmFjayI6IGZ1bmN0aW9uICggblRyLCBhc0RhdGEsIGlEcmF3SW5kZXgsIGlEYXRhSW5kZXggKSB7CgkJCQkJaWYgKCBpQ291bnQgIT0gaURyYXdJbmRleCApCgkJCQkJCW1QYXNzID0gZmFsc2U7CgkJCQkJaUNvdW50Kys7CgkJCQkJcmV0dXJuIG5UcjsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3M7IH0KCSk7CgkKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/fnSetColumnVis.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImZuU2V0Q29sdW1uVmlzIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJBbGwgY29sdW1ucyBhcmUgdmlzaWJsZSBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkJykubGVuZ3RoID09IDU7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNhbiBoaWRlIG9uZSBjb2x1bW4gYW5kIGl0IHJlbW92ZXMgdGQgY29sdW1uIGZyb20gRE9NIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpLmZuU2V0Q29sdW1uVmlzKCAxLCBmYWxzZSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQnKS5sZW5ndGggPT0gNDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2FuIGhpZGUgb25lIGNvbHVtbiBhbmQgaXQgcmVtb3ZlcyB0aGVhZCB0aCBjb2x1bW4gZnJvbSBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGgnKS5sZW5ndGggPT0gNDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2FuIGhpZGUgb25lIGNvbHVtbiBhbmQgaXQgcmVtb3ZlcyB0Zm9vdCB0aCBjb2x1bW4gZnJvbSBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGZvb3QgdHI6ZXEoMCkgdGgnKS5sZW5ndGggPT0gNDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiVGhlIGNvcnJlY3QgdGhlYWQgY29sdW1uIGhhcyBiZWVuIGhpZGRlbiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBqcU5vZGVzID0gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGgnKTsKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCWpxTm9kZXNbMF0uaW5uZXJIVE1MID09ICJSZW5kZXJpbmcgZW5naW5lIiAmJgoJCQkJanFOb2Rlc1sxXS5pbm5lckhUTUwgPT0gIlBsYXRmb3JtKHMpIiAmJgoJCQkJanFOb2Rlc1syXS5pbm5lckhUTUwgPT0gIkVuZ2luZSB2ZXJzaW9uIiAmJgoJCQkJanFOb2Rlc1szXS5pbm5lckhUTUwgPT0gIkNTUyBncmFkZSI7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlRoZSBjb3JyZWN0IHRib2R5IGNvbHVtbiBoYXMgYmVlbiBoaWRkZW4iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb0Rpc3BhY2hlci5jbGljayggJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKVswXSwgeyAnc2hpZnQnOiB0cnVlIH0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGpxTm9kZXMgPSAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZCcpOwoJCQl2YXIgYlJldHVybiA9IAoJCQkJanFOb2Rlc1swXS5pbm5lckhUTUwgPT0gIkdlY2tvIiAmJgoJCQkJanFOb2Rlc1sxXS5pbm5lckhUTUwgPT0gIkdub21lIiAmJgoJCQkJanFOb2Rlc1syXS5pbm5lckhUTUwgPT0gIjEuOCIgJiYKCQkJCWpxTm9kZXNbM10uaW5uZXJIVE1MID09ICJBIjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJDYW4gaGlkZSBtdWx0aXBsZSBjb2x1bW5zIGFuZCBpdCByZW1vdmVzIHRkIGNvbHVtbiBmcm9tIERPTSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKS5mblNldENvbHVtblZpcyggMSwgZmFsc2UgKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKS5mblNldENvbHVtblZpcyggMiwgZmFsc2UgKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKS5mblNldENvbHVtblZpcyggNCwgZmFsc2UgKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkJykubGVuZ3RoID09IDI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIk11bHRpcGxlIGhpZGUgLSByZW1vdmVzIHRoZWFkIHRoIGNvbHVtbiBmcm9tIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSgwKSB0aCcpLmxlbmd0aCA9PSAyOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJNdWx0aXBsZSBoaWRlIC0gcmVtb3ZlcyB0Zm9vdCB0aCBjb2x1bW4gZnJvbSBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGZvb3QgdHI6ZXEoMCkgdGgnKS5sZW5ndGggPT0gMjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiTXVsdGlwbGUgaGlkZSAtIHRoZSBjb3JyZWN0IHRoZWFkIGNvbHVtbnMgaGF2ZSBiZWVuIGhpZGRlbiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBqcU5vZGVzID0gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGgnKTsKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCWpxTm9kZXNbMF0uaW5uZXJIVE1MID09ICJSZW5kZXJpbmcgZW5naW5lIiAmJgoJCQkJanFOb2Rlc1sxXS5pbm5lckhUTUwgPT0gIkVuZ2luZSB2ZXJzaW9uIgoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJNdWx0aXBsZSBoaWRlIC0gdGhlIGNvcnJlY3QgdGJvZHkgY29sdW1ucyBoYXZlIGJlZW4gaGlkZGVuIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9EaXNwYWNoZXIuY2xpY2soICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJylbMF0sIHsgJ3NoaWZ0JzogdHJ1ZSB9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBqcU5vZGVzID0gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQnKTsKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCWpxTm9kZXNbMF0uaW5uZXJIVE1MID09ICJHZWNrbyIgJiYKCQkJCWpxTm9kZXNbMV0uaW5uZXJIVE1MID09ICIxIgoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/fnSetColumnVis2.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogY29tcGxleF9oZWFkZXJfMgpvVGVzdC5mblN0YXJ0KCAiZm5TZXRDb2x1bW5WaXMgd2l0aCBjb21wbGV4IGhlYWRlcnMiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkFsbCBjb2x1bW5zIGFyZSB2aXNpYmxlIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQnKS5sZW5ndGggPT0gNTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiSGlkZSB0aGUgZmlyc3QgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCkuZm5TZXRDb2x1bW5WaXMoIDAsIGZhbHNlICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZCcpLmxlbmd0aCA9PSA0OyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpcnN0IGNlbGwgaXMgJzInIC0gZmlyc3QgY29sdW1uIGhpZGRlbiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSgwKSB0aDplcSgwKScpLmh0bWwoKSA9PSAiMiI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlyc3QgY2VsbCBoYXMgY29sc3BhbiBvZiAzIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDApIHRoOmVxKDApJylbMF0uZ2V0QXR0cmlidXRlKCdjb2xzcGFuJykgPT0gMzsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaXJzdCBjZWxsIGhhcyByb3dzcGFuIG9mIDIiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGg6ZXEoMCknKVswXS5nZXRBdHRyaWJ1dGUoJ3Jvd3NwYW4nKSA9PSAyOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpcnN0IGNlbGwgaW4gbGFzdCBjb2x1bW4gaXMgJzExJyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSg0KSB0aDplcSgwKScpLmh0bWwoKSA9PSAxMTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaXJzdCBjZWxsIGluIGxhc3QgY29sdW1uIGhhcyBiZWVuIHRydW5jYXRlZCB0byBvbmUgY29sdW1uIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDQpIHRoOmVxKDApJylbMF0uZ2V0QXR0cmlidXRlKCdjb2xzcGFuJykgPT0gMTsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJIaWRlIHRoZSBzZWNvbmQgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCkuZm5TZXRDb2x1bW5WaXMoIDAsIHRydWUgKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKS5mblNldENvbHVtblZpcyggMSwgZmFsc2UgKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkJykubGVuZ3RoID09IDQ7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlyc3QgY2VsbCBpcyAnMScgLSBzZWNvbmQgY29sdW1uIGhpZGRlbiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSgwKSB0aDplcSgwKScpLmh0bWwoKSA9PSAiMSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiU2Vjb25kIGNlbGwgaXMgJzInIC0gc2Vjb25kIGNvbHVtbiBoaWRkZW4iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGg6ZXEoMSknKS5odG1sKCkgPT0gIjIiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpcnN0IGNlbGwgaW4gZm91cnRoIHJvdyBpcyAnMTAnICh2aXNpYmx5IHRoZSBmaXJzdCkgLSBzZWNvbmQgY29sdW1uIGhpZGRlbiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSgzKSB0aDplcSgwKScpLmh0bWwoKSA9PSAiMTAiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpcnN0IGNlbGwgaGFzIGNvbHNwYW4gb2YgMSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSgwKSB0aDplcSgwKScpWzBdLmdldEF0dHJpYnV0ZSgnY29sc3BhbicpID09IDE7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiU2Vjb25kIGNlbGwgaGFzIGNvbHNwYW4gb2YgMiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSgwKSB0aDplcSgxKScpWzBdLmdldEF0dHJpYnV0ZSgnY29sc3BhbicpID09IDI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlyc3QgY2VsbCBoYXMgcm93c3BhbiBvZiAxIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDApIHRoOmVxKDApJylbMF0uZ2V0QXR0cmlidXRlKCdyb3dzcGFuJykgPT0gMTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJTZWNvbmQgY2VsbCBoYXMgcm93c3BhbiBvZiAyIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDApIHRoOmVxKDEpJylbMF0uZ2V0QXR0cmlidXRlKCdyb3dzcGFuJykgPT0gMjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaXJzdCBjZWxsIGluIGxhc3QgY29sdW1uIGlzICcxMSciLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoNCkgdGg6ZXEoMCknKS5odG1sKCkgPT0gMTE7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlyc3QgY2VsbCBpbiBsYXN0IGNvbHVtbiBoYXMgYmVlbiB0cnVuY2F0ZWQgdG8gb25lIGNvbHVtbiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSg0KSB0aDplcSgwKScpWzBdLmdldEF0dHJpYnV0ZSgnY29sc3BhbicpID09IDE7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiSGlkZSB0aGUgZmlyc3QgdHdvIGNvbHVtbnMiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKS5mblNldENvbHVtblZpcyggMCwgZmFsc2UgKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKS5mblNldENvbHVtblZpcyggMSwgZmFsc2UgKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkJykubGVuZ3RoID09IDM7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlyc3QgY2VsbCBpcyAnMicgLSBmaXJzdCB0d28gY29sdW1ucyBoaWRkZW4iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGg6ZXEoMCknKS5odG1sKCkgPT0gIjIiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIlNlY29uZCBjZWxsIGlzICczJyAtIGZpcnN0IHR3byBjb2x1bW5zIGhpZGRlbiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSgwKSB0aDplcSgxKScpLmh0bWwoKSA9PSAiMyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlyc3QgY2VsbCBpbiB0aGlyZCByb3cgaXMgJzYnIC0gZmlyc3QgdHdvIGNvbHVtbnMgaGlkZGVuIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDIpIHRoOmVxKDApJykuaHRtbCgpID09ICI2IjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaXJzdCBjZWxsIGhhcyBjb2xzcGFuIG9mIDIiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGg6ZXEoMCknKVswXS5nZXRBdHRyaWJ1dGUoJ2NvbHNwYW4nKSA9PSAyOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpcnN0IGNlbGwgaGFzIHJvd3NwYW4gb2YgMiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSgwKSB0aDplcSgwKScpWzBdLmdldEF0dHJpYnV0ZSgncm93c3BhbicpID09IDI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiU2Vjb25kIGNlbGwgaGFzIHJvd3NwYW4gb2YgMSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSgwKSB0aDplcSgxKScpWzBdLmdldEF0dHJpYnV0ZSgncm93c3BhbicpID09IDE7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlyc3QgY2VsbCBpbiBsYXN0IGNvbHVtbiBpcyAnMTInIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDQpIHRoOmVxKDApJykuaHRtbCgpID09IDEyOyB9CgkpOwoJCgkKCW9UZXN0LmZuVGVzdCggCgkJIkhpZGUgdGhlIHRoaXJkIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpLmZuU2V0Q29sdW1uVmlzKCAwLCB0cnVlICk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCkuZm5TZXRDb2x1bW5WaXMoIDEsIHRydWUgKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKS5mblNldENvbHVtblZpcyggMiwgZmFsc2UgKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkJykubGVuZ3RoID09IDQ7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlyc3QgY2VsbCBpcyAnMScgLSB0aGlyZCBjb2x1bW4gaGlkZGVuIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDApIHRoOmVxKDApJykuaHRtbCgpID09ICIxIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJTZWNvbmQgY2VsbCBpcyAnMicgLSB0aGlyZCBjb2x1bW4gaGlkZGVuIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDApIHRoOmVxKDEpJykuaHRtbCgpID09ICIyIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaXJzdCBjZWxsICh2aXNpYmxlIHNlY29uZCkgaW4gdGhpcmQgcm93IGlzICc2JyAtIHRoaXJkIGNvbHVtbiBoaWRkZW4iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMikgdGg6ZXEoMCknKS5odG1sKCkgPT0gIjYiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIlNlY29uZCBjZWxsIGhhcyBjb2xzcGFuIG9mIDIiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGg6ZXEoMSknKVswXS5nZXRBdHRyaWJ1dGUoJ2NvbHNwYW4nKSA9PSAyOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIlNlY29uZCBjZWxsIGhhcyByb3dzcGFuIG9mIDIiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGg6ZXEoMSknKVswXS5nZXRBdHRyaWJ1dGUoJ3Jvd3NwYW4nKSA9PSAyOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIlRoaXJkIHJvdyBmaXJzdCBjZWxsIChzZWNvbmQgdmlzaWJsZSkgY29sc3BhbiBpcyAxIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDIpIHRoOmVxKDApJylbMF0uZ2V0QXR0cmlidXRlKCdjb2xzcGFuJykgPT0gMTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJUaGlyZCByb3cgc2Vjb25kIGNlbGwgKHRoaXJkIHZpc2libGUpIHZhbHVlIGlzIDciLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMikgdGg6ZXEoMSknKS5odG1sKCkgPT0gIjciOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIlRoaXJkIHJvdyBzZWNvbmQgY2VsbCAodGhpcmQgdmlzaWJsZSkgY29sc3BhbiBpcyAxIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDIpIHRoOmVxKDEpJylbMF0uZ2V0QXR0cmlidXRlKCdjb2xzcGFuJykgPT0gMTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJUaGlyZCByb3cgc2Vjb25kIGNlbGwgKHRoaXJkIHZpc2libGUpIHJvd3NwYW4gaXMgMyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSgyKSB0aDplcSgxKScpWzBdLmdldEF0dHJpYnV0ZSgncm93c3BhbicpID09IDM7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/html-autodetect-sort.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogaHRtbF90YWJsZQpvVGVzdC5mblN0YXJ0KCAiSFRNTCBhdXRvIGRldGVjdCIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiSW5pdGlhbCBzb3J0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIHJldCA9CgkJCQkkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAnMScgJiYKCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDEpIHRkOmVxKDApJykuaHRtbCgpID09ICcyJyAmJgoJCQkJJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMikgdGQ6ZXEoMCknKS5odG1sKCkgPT0gJzMnOwoJCQlyZXR1cm4gcmV0OwoJCX0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkhUTUwgc29ydCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCkgfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciByZXQgPQoJCQkJJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gJzInICYmCgkJCQkkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAnMScgJiYKCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDIpIHRkOmVxKDApJykuaHRtbCgpID09ICc0JzsKCQkJcmV0dXJuIHJldDsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJIVE1MIHJldmVyc2Ugc29ydCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCkgfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciByZXQgPQoJCQkJJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gJzMnICYmCgkJCQkkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAnNCcgJiYKCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDIpIHRkOmVxKDApJykuaHRtbCgpID09ICcxJzsKCQkJcmV0dXJuIHJldDsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJOdW1lcmljIHNvcnQiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMCknKS5jbGljaygpIH0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgcmV0ID0KCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09ICcxJyAmJgoJCQkJJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMSkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gJzInICYmCgkJCQkkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgyKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAnMyc7CgkJCXJldHVybiByZXQ7CgkJfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/iDisplayLength.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggImlEaXNwbGF5TGVuZ3RoIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJEZWZhdWx0IGxlbmd0aCBpcyB0ZW4iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMTA7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNlbGVjdCBtZW51IHNob3dzIDEwIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlX2xlbmd0aCBzZWxlY3QnKS52YWwoKSA9PSAxMDsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJTZXQgaW5pdGlhbCBsZW5ndGggdG8gMjUiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiaURpc3BsYXlMZW5ndGgiOiAyNQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSAyNTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU2VsZWN0IG1lbnUgc2hvd3MgMjUiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGVfbGVuZ3RoIHNlbGVjdCcpLnZhbCgpID09IDI1OyB9CgkpOwoJCgkKCW9UZXN0LmZuVGVzdCggCgkJIlNldCBpbml0aWFsIGxlbmd0aCB0byAxMDAiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiaURpc3BsYXlMZW5ndGgiOiAxMDAKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gNTc7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNlbGVjdCBtZW51IHNob3dzIDI1IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlX2xlbmd0aCBzZWxlY3QnKS52YWwoKSA9PSAxMDA7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU2V0IGluaXRpYWwgbGVuZ3RoIHRvIDIzICh1bmtub3duIHNlbGVjdCBtZW51IGxlbmd0aCkiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiaURpc3BsYXlMZW5ndGgiOiAyMwoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSAyMzsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU2VsZWN0IG1lbnUgc2hvd3MgMTAgKHNpbmNlIDIzIGlzIHVua25vdykiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGVfbGVuZ3RoIHNlbGVjdCcpLnZhbCgpID09IDEwOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/oLanguage.oPaginate.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5vUGFnaW5hdGUiICk7CgovKiBOb3RlIHRoYXQgdGhlIHBhZ2luZyBsYW5ndWFnZSBpbmZvcm1hdGlvbiBvbmx5IGhhcyByZWxldmVuY2UgaW4gZnVsbCBudW1iZXJzICovCgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggeyAic1BhZ2luYXRpb25UeXBlIjogImZ1bGxfbnVtYmVycyIgfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIm9MYW5ndWFnZS5vUGFnaW5hdGUgZGVmYXVsdHMiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYlJldHVybiA9IAoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5vUGFnaW5hdGUuc0ZpcnN0ID09ICJGaXJzdCIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uub1BhZ2luYXRlLnNQcmV2aW91cyA9PSAiUHJldmlvdXMiICYmCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLm9QYWdpbmF0ZS5zTmV4dCA9PSAiTmV4dCIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uub1BhZ2luYXRlLnNMYXN0ID09ICJMYXN0IjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkib0xhbmd1YWdlLm9QYWdpbmF0ZSBkZWZhdWx0cyBhcmUgaW4gdGhlIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBiUmV0dXJuID0gCgkJCQkkKCcjZXhhbXBsZV9wYWdpbmF0ZSAuZmlyc3QnKS5odG1sKCkgPT0gIkZpcnN0IiAmJgoJCQkJJCgnI2V4YW1wbGVfcGFnaW5hdGUgLnByZXZpb3VzJykuaHRtbCgpID09ICJQcmV2aW91cyIgJiYKCQkJCSQoJyNleGFtcGxlX3BhZ2luYXRlIC5uZXh0JykuaHRtbCgpID09ICJOZXh0IiAmJgoJCQkJJCgnI2V4YW1wbGVfcGFnaW5hdGUgLmxhc3QnKS5odG1sKCkgPT0gIkxhc3QiOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuVGVzdCggCgkJIm9MYW5ndWFnZS5vUGFnaW5hdGUgY2FuIGJlIGRlZmluZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic1BhZ2luYXRpb25UeXBlIjogImZ1bGxfbnVtYmVycyIsCgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJvUGFnaW5hdGUiOiB7CgkJCQkJCSJzRmlyc3QiOiAgICAidW5pdDEiLAoJCQkJCQkic1ByZXZpb3VzIjogInRlc3QyIiwKCQkJCQkJInNOZXh0IjogICAgICJ1bml0MyIsCgkJCQkJCSJzTGFzdCI6ICAgICAidGVzdDQiCgkJCQkJfQoJCQkJfQoJCQl9ICk7CgkJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBiUmV0dXJuID0gCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLm9QYWdpbmF0ZS5zRmlyc3QgPT0gInVuaXQxIiAmJgoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5vUGFnaW5hdGUuc1ByZXZpb3VzID09ICJ0ZXN0MiIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uub1BhZ2luYXRlLnNOZXh0ID09ICJ1bml0MyIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uub1BhZ2luYXRlLnNMYXN0ID09ICJ0ZXN0NCI7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIm9MYW5ndWFnZS5vUGFnaW5hdGUgZGVmaW5pdGlvbnMgYXJlIGluIHRoZSBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYlJldHVybiA9IAoJCQkJJCgnI2V4YW1wbGVfcGFnaW5hdGUgLmZpcnN0JykuaHRtbCgpID09ICJ1bml0MSIgJiYKCQkJCSQoJyNleGFtcGxlX3BhZ2luYXRlIC5wcmV2aW91cycpLmh0bWwoKSA9PSAidGVzdDIiICYmCgkJCQkkKCcjZXhhbXBsZV9wYWdpbmF0ZSAubmV4dCcpLmh0bWwoKSA9PSAidW5pdDMiICYmCgkJCQkkKCcjZXhhbXBsZV9wYWdpbmF0ZSAubGFzdCcpLmh0bWwoKSA9PSAidGVzdDQiOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/oLanguage.sInfo.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zSW5mbyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiSW5mbyBsYW5ndWFnZSBpcyAnU2hvd2luZyBfU1RBUlRfIHRvIF9FTkRfIG9mIF9UT1RBTF8gZW50cmllcycgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0xhbmd1YWdlLnNJbmZvID09ICJTaG93aW5nIF9TVEFSVF8gdG8gX0VORF8gb2YgX1RPVEFMXyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiSW5mbyBsYW5ndWFnZSBkZWZhdWx0IGlzIGluIHRoZSBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9ICJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiSW5mbyBsYW5ndWFnZSBjYW4gYmUgZGVmaW5lZCAtIHdpdGhvdXQgYW55IG1hY3JvcyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNJbmZvIjogInVuaXQgdGVzdCIKCQkJCX0KCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9MYW5ndWFnZS5zSW5mbyA9PSAidW5pdCB0ZXN0IjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiSW5mbyBsYW5ndWFnZSBkZWZpbml0aW9uIGlzIGluIHRoZSBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9ICJ1bml0IHRlc3QiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJbmZvIGxhbmd1YWdlIGNhbiBiZSBkZWZpbmVkIC0gd2l0aCBtYWNybyBfU1RBUlRfIG9ubHkiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzSW5mbyI6ICJ1bml0IF9TVEFSVF8gdGVzdCIKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9ICJ1bml0IDEgdGVzdCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkluZm8gbGFuZ3VhZ2UgY2FuIGJlIGRlZmluZWQgLSB3aXRoIG1hY3JvIF9FTkRfIG9ubHkiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzSW5mbyI6ICJ1bml0IF9FTkRfIHRlc3QiCgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPSAidW5pdCAxMCB0ZXN0IjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiSW5mbyBsYW5ndWFnZSBjYW4gYmUgZGVmaW5lZCAtIHdpdGggbWFjcm8gX1RPVEFMXyBvbmx5IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic0luZm8iOiAidW5pdCBfRU5EXyB0ZXN0IgoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID0gInVuaXQgNTcgdGVzdCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkluZm8gbGFuZ3VhZ2UgY2FuIGJlIGRlZmluZWQgLSB3aXRoIG1hY3JvcyBfU1RBUlRfIGFuZCBfRU5EXyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNJbmZvIjogInVuaXQgX1NUQVJUXyBfRU5EXyB0ZXN0IgoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID0gInVuaXQgMSAxMCB0ZXN0IjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiSW5mbyBsYW5ndWFnZSBjYW4gYmUgZGVmaW5lZCAtIHdpdGggbWFjcm9zIF9TVEFSVF8sIF9FTkRfIGFuZCBfVE9UQUxfIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic0luZm8iOiAidW5pdCBfU1RBUlRfIF9FTkRfIF9UT1RBTF8gdGVzdCIKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9ICJ1bml0IDEgMTAgNTcgdGVzdCI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/oLanguage.sInfoEmpty.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zSW5mb0VtcHR5IiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJbmZvIGVtcHR5IGxhbmd1YWdlIGlzICdTaG93aW5nIDAgdG8gMCBvZiAwIGVudHJpZXMnIGJ5IGRlZmF1bHQiLAoJCWZ1bmN0aW9uICgpIHsgb1RhYmxlLmZuRmlsdGVyKCJub3RoaW5naGVyZSIpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc0luZm9FbXB0eSA9PSAiU2hvd2luZyAwIHRvIDAgb2YgMCBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiSW5mbyBlbXB0eSBsYW5ndWFnZSBkZWZhdWx0IGlzIGluIHRoZSBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYlJldHVybiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwucmVwbGFjZSggCgkJCQknICcrb1NldHRpbmdzLm9MYW5ndWFnZS5zSW5mb0ZpbHRlcmVkLnJlcGxhY2UoICdfTUFYXycsICc1NycgKSwgIiIgKSA9PQoJCQkJCSJTaG93aW5nIDAgdG8gMCBvZiAwIGVudHJpZXMiOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuVGVzdCggCgkJIkluZm8gZW1wdHkgbGFuZ3VhZ2UgY2FuIGJlIGRlZmluZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzSW5mb0VtcHR5IjogInVuaXQgdGVzdCIKCQkJCX0KCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCQlvVGFibGUuZm5GaWx0ZXIoIm5vdGhpbmdoZXJlIik7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0xhbmd1YWdlLnNJbmZvRW1wdHkgPT0gInVuaXQgdGVzdCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkluZm8gZW1wdHkgbGFuZ3VhZ2UgZGVmYXVsdCBpcyBpbiB0aGUgRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGJSZXR1cm4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MLnJlcGxhY2UoIAoJCQkJJyAnK29TZXR0aW5ncy5vTGFuZ3VhZ2Uuc0luZm9GaWx0ZXJlZC5yZXBsYWNlKCAnX01BWF8nLCAnNTcnICksICIiICkgPT0KCQkJCQkidW5pdCB0ZXN0IjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJNYWNybydzIHJlcGxhY2VkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic0luZm9FbXB0eSI6ICJ1bml0IF9TVEFSVF8gX0VORF8gX1RPVEFMXyB0ZXN0IgoJCQkJfQoJCQl9ICk7CgkJCW9UYWJsZS5mbkZpbHRlcigibm90aGluZ2hlcmUiKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGJSZXR1cm4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MLnJlcGxhY2UoIAoJCQkJJyAnK29TZXR0aW5ncy5vTGFuZ3VhZ2Uuc0luZm9GaWx0ZXJlZC5yZXBsYWNlKCAnX01BWF8nLCAnNTcnICksICIiICkgPT0KCQkJCQkidW5pdCAxIDAgMCB0ZXN0IjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/oLanguage.sInfoPostFix.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zSW5mb1Bvc3RGaXgiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkluZm8gcG9zdCBmaXggbGFuZ3VhZ2UgaXMgJycgKGJsYW5rKSBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc0luZm9Qb3N0Rml4ID09ICIiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJXaWR0aCBubyBwb3N0IGZpeCwgdGhlIGJhc2ljIGluZm8gc2hvd3MiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9ICJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiSW5mbyBwb3N0IGZpeCBsYW5ndWFnZSBjYW4gYmUgZGVmaW5lZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNJbmZvUG9zdEZpeCI6ICJ1bml0IHRlc3QiCgkJCQl9CgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc0luZm9Qb3N0Rml4ID09ICJ1bml0IHRlc3QiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJbmZvIGVtcHR5IGxhbmd1YWdlIGRlZmF1bHQgaXMgaW4gdGhlIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID0gIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIHVuaXQgdGVzdCI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiTWFjcm9zIGhhdmUgbm8gZWZmZWN0IGluIHRoZSBwb3N0IGZpeCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNJbmZvUG9zdEZpeCI6ICJ1bml0IF9TVEFSVF8gX0VORF8gX1RPVEFMXyB0ZXN0IgoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID0gIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIHVuaXQgX1NUQVJUXyBfRU5EXyBfVE9UQUxfIHRlc3QiOyB9CgkpOwoJCgkKCW9UZXN0LmZuVGVzdCggCgkJIlBvc3QgZml4IGlzIGFwcGxpZWQgYWZ0ZXIgZmludGVyaW5nIGluZm8iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzSW5mb1Bvc3RGaXgiOiAidW5pdCB0ZXN0IgoJCQkJfQoJCQl9ICk7CgkJCW9UYWJsZS5mbkZpbHRlcigibm90aGluZ2hlcmUiKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPSAiU2hvd2luZyAwIHRvIDAgb2YgMCBlbnRyaWVzIHVuaXQgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykgdGVzdCI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/oLanguage.sLengthMenu.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zTGVuZ3RoTWVudSIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiTWVudSBsYW5ndWFnZSBpcyAnU2hvdyBfTUVOVV8gZW50cmllcycgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0xhbmd1YWdlLnNMZW5ndGhNZW51ID09ICJTaG93IF9NRU5VXyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJfTUVOVV8gbWFjcm8gaXMgcmVwbGFjZWQgYnkgc2VsZWN0IG1lbnUgaW4gRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJ3NlbGVjdCcsIG9TZXR0aW5ncy5hYW5GZWF0dXJlcy5sWzBdKS5sZW5ndGggPT0gMSB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkEgbGFiZWwgaW5wdXQgaXMgdXNlZCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCdsYWJlbCcsIG9TZXR0aW5ncy5hYW5GZWF0dXJlcy5sWzBdKS5sZW5ndGggPT0gMSB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkRlZmF1bHQgaXMgcHV0IGludG8gRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGFuQ2hpbGRyZW4gPSAkKCdsYWJlbCcsb1NldHRpbmdzLmFhbkZlYXR1cmVzLmxbMF0pWzBdLmNoaWxkTm9kZXM7CgkJCXZhciBiUmV0dXJuID0KCQkJCWFuQ2hpbGRyZW5bMF0ubm9kZVZhbHVlID09ICJTaG93ICIgJiYKCQkJCWFuQ2hpbGRyZW5bMl0ubm9kZVZhbHVlID09ICIgZW50cmllcyI7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiTWVudSBsZW5ndGggbGFuZ3VhZ2UgY2FuIGJlIGRlZmluZWQgLSBubyBfTUVOVV8gbWFjcm8iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzTGVuZ3RoTWVudSI6ICJ1bml0IHRlc3QiCgkJCQl9CgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc0xlbmd0aE1lbnUgPT0gInVuaXQgdGVzdCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIk1lbnUgbGVuZ3RoIGxhbmd1YWdlIGRlZmluaXRpb24gaXMgaW4gdGhlIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiAkKCdsYWJlbCcsIG9TZXR0aW5ncy5hYW5GZWF0dXJlcy5sWzBdKS50ZXh0KCkgPT0gInVuaXQgdGVzdCI7CgkJfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJNZW51IGxlbmd0aCBsYW5ndWFnZSBjYW4gYmUgZGVmaW5lZCAtIHdpdGggX01FTlVfIG1hY3JvIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic0xlbmd0aE1lbnUiOiAidW5pdCBfTUVOVV8gdGVzdCIKCQkJCX0KCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYW5DaGlsZHJlbiA9ICQoJ2xhYmVsJyxvU2V0dGluZ3MuYWFuRmVhdHVyZXMubFswXSlbMF0uY2hpbGROb2RlczsKCQkJdmFyIGJSZXR1cm4gPQoJCQkJYW5DaGlsZHJlblswXS5ub2RlVmFsdWUgPT0gInVuaXQgIiAmJgoJCQkJYW5DaGlsZHJlblsyXS5ub2RlVmFsdWUgPT0gIiB0ZXN0IjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJPbmx5IHRoZSBfTUVOVV8gbWFjcm8iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzTGVuZ3RoTWVudSI6ICJfTUVOVV8iCgkJCQl9CgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGFuQ2hpbGRyZW4gPSBvU2V0dGluZ3MuYWFuRmVhdHVyZXMubFswXS5jaGlsZE5vZGVzOwoJCQl2YXIgYlJldHVybiA9CgkJCQlhbkNoaWxkcmVuLmxlbmd0aCA9PSAxICYmCgkJCQkkKCdzZWxlY3QnLCBvU2V0dGluZ3MuYWFuRmVhdHVyZXMubFswXSkubGVuZ3RoID09IDE7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/oLanguage.sProcessing.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zUHJvY2Vzc2luZyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImJQcm9jZXNzaW5nIjogdHJ1ZQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlByb2Nlc3NpbmcgbGFuZ3VhZ2UgaXMgJ1Byb2Nlc3NpbmcuLi4nIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9MYW5ndWFnZS5zUHJvY2Vzc2luZyA9PSAiUHJvY2Vzc2luZy4uLiI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlByb2Nlc3NpbmcgbGFuZ3VhZ2UgZGVmYXVsdCBpcyBpbiB0aGUgRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3Byb2Nlc3NpbmcnKS5pbm5lckhUTUwgPSAiUHJvY2Vzc2luZy4uLiI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUHJvY2Vzc2luZyBsYW5ndWFnZSBjYW4gYmUgZGVmaW5lZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiUHJvY2Vzc2luZyI6IHRydWUsCgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzUHJvY2Vzc2luZyI6ICJ1bml0IHRlc3QiCgkJCQl9CgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc1Byb2Nlc3NpbmcgPT0gInVuaXQgdGVzdCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlByb2Nlc3NpbmcgbGFuZ3VhZ2UgZGVmaW5pdGlvbiBpcyBpbiB0aGUgRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3Byb2Nlc3NpbmcnKS5pbm5lckhUTUwgPSAidW5pdCB0ZXN0IjsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/oLanguage.sSearch.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zU2VhcmNoIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTZWFyY2ggbGFuZ3VhZ2UgaXMgJ1NlYXJjaDonIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9MYW5ndWFnZS5zU2VhcmNoID09ICJTZWFyY2g6IjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJBIGxhYmVsIGlucHV0IGlzIHVzZWQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnbGFiZWwnLCBvU2V0dGluZ3MuYWFuRmVhdHVyZXMuZlswXSkubGVuZ3RoID09IDEgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU2VhcmNoIGxhbmd1YWdlIGRlZmF1bHQgaXMgaW4gdGhlIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCdsYWJlbCcsIG9TZXR0aW5ncy5hYW5GZWF0dXJlcy5mWzBdKS50ZXh0KCkKCQkgCT09ICJTZWFyY2g6ICI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU2VhcmNoIGxhbmd1YWdlIGNhbiBiZSBkZWZpbmVkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic1NlYXJjaCI6ICJ1bml0IHRlc3QiCgkJCQl9CgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc1NlYXJjaCA9PSAidW5pdCB0ZXN0IjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiSW5mbyBsYW5ndWFnZSBkZWZpbml0aW9uIGlzIGluIHRoZSBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnbGFiZWwnLCBvU2V0dGluZ3MuYWFuRmVhdHVyZXMuZlswXSkudGV4dCgpLmluZGV4T2YoJ3VuaXQgdGVzdCcpICE9PSAtMTsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJCbGFuayBzZWFyY2ggaGFzIGEgbm8gKHNlcGFyYXRvcikgaW5zZXJ0ZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzU2VhcmNoIjogIiIKCQkJCX0KCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfZmlsdGVyJykuY2hpbGROb2Rlcy5sZW5ndGggPT0gMTsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/oLanguage.sUrl.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zVXJsIiApOwoKLyogTm90ZSB0aGF0IHdlIG9ubHkgdGVzdCB0aGUgaW50ZXJuYWwgc3RvcmFnZSBvZiBsYW5ndWFnZSBpbmZvcm1hdGlvbiBwdWxsZWQgZm9ybSBhIGZpbGUgaGVyZQogKiBhcyB0aGUgb3RoZXIgbGFuZ3VhZ2UgdGVzdHMgd2lsbCBjaGVjayBpdCBnb2VzIGludG8gdGhlIERPTSBjb3JyZWN0bHkKICovCgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuVGVzdCggCgkJInNVcmwgaXMgYmxhbmsgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0xhbmd1YWdlLnNVcmwgPT0gIiI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkxvYWRpbmcgb2YgR2VybWFuIGZpbGUgbG9hZHMgbGFuZ3VhZ2UgaW5mb3JtYXRpb24iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzVXJsIjogIi4uLy4uLy4uL2V4YW1wbGVzL2V4YW1wbGVzX3N1cHBvcnQvZGVfREUudHh0IgoJCQkJfQoJCQl9ICk7CgkJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBiUmV0dXJuID0gCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLnNQcm9jZXNzaW5nID09ICJCaXR0ZSB3YXJ0ZW4uLi4iICYmCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLnNMZW5ndGhNZW51ID09ICJfTUVOVV8gRWludHLDpGdlIGFuemVpZ2VuIiAmJgoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5zWmVyb1JlY29yZHMgPT0gIktlaW5lIEVpbnRyw6RnZSB2b3JoYW5kZW4uIiAmJgoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5zSW5mbyA9PSAiX1NUQVJUXyBiaXMgX0VORF8gdm9uIF9UT1RBTF8gRWludHLDpGdlbiIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc0luZm9FbXB0eSA9PSAiMCBiaXMgMCB2b24gMCBFaW50csOkZ2VuIiAmJgoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5zSW5mb0ZpbHRlcmVkID09ICIoZ2VmaWx0ZXJ0IHZvbiBfTUFYXyAgRWludHLDpGdlbikiICYmCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLnNJbmZvUG9zdEZpeCA9PSAiIiAmJgoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5zU2VhcmNoID09ICJTdWNoZW4iICYmCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLm9QYWdpbmF0ZS5zRmlyc3QgPT0gIkVyc3RlciIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uub1BhZ2luYXRlLnNQcmV2aW91cyA9PSAiWnVyw7xjayIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uub1BhZ2luYXRlLnNOZXh0ID09ICJOw6RjaHN0ZXIiICYmCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLm9QYWdpbmF0ZS5zTGFzdCA9PSAiTGV0enRlciI7CgkJCQkKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJLyogT25lIERPTSBjaGVjayBqdXN0IHRvIGVuc3VyZSB0aGF0IHRoZXkgZ28gaW50byB0aGUgRE9NICovCglvVGVzdC5mblRlc3QoCgkJIkxvYWRlZCBsYW5ndWFnZSBnb2VzIGludG8gdGhlIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID0gIjEgYmlzIDEwIHZvbiA1NyBFaW50csOkZ2VuIjsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/oLanguage.sZeroRecords.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zWmVyb1JlY29yZHMiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlplcm8gcmVjb3JkcyBsYW5ndWFnZSBpcyAnTm8gbWF0Y2hpbmcgcmVjb3JkcyBmb3VuZCcgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0xhbmd1YWdlLnNaZXJvUmVjb3JkcyA9PSAiTm8gbWF0Y2hpbmcgcmVjb3JkcyBmb3VuZCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiVGV4dCBpcyBzaG93biB3aGVuIGVtcHR5IHRhYmxlIChhZnRlciBmaWx0ZXJpbmcpIiwKCQlmdW5jdGlvbiAoKSB7IG9UYWJsZS5mbkZpbHRlcignbm90aGluZ2hlcmUnKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ciB0ZCcpWzBdLmlubmVySFRNTCA9PSAiTm8gbWF0Y2hpbmcgcmVjb3JkcyBmb3VuZCIgfQoJKTsKCQoJCgkKCW9UZXN0LmZuVGVzdCggCgkJIlplcm8gcmVjb3JkcyBsYW5ndWFnZSBjYW4gYmUgZGVmaW5lZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNaZXJvUmVjb3JkcyI6ICJ1bml0IHRlc3QiCgkJCQl9CgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc1plcm9SZWNvcmRzID09ICJ1bml0IHRlc3QiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIlRleHQgaXMgc2hvd24gd2hlbiBlbXB0eSB0YWJsZSAoYWZ0ZXIgZmlsdGVyaW5nKSIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUuZm5GaWx0ZXIoJ25vdGhpbmdoZXJlMicpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyIHRkJylbMF0uaW5uZXJIVE1MID09ICJ1bml0IHRlc3QiIH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/oSearch.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggIm9TZWFyY2giICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkRlZmF1bHQgdmFsdWVzIHNob3VsZCBiZSBibGFuayIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBiUmV0dXJuID0gb1NldHRpbmdzLm9QcmV2aW91c1NlYXJjaC5zU2VhcmNoID09ICIiICYmIAoJCQkgICAgICAgICAgICAgICFvU2V0dGluZ3Mub1ByZXZpb3VzU2VhcmNoLmJSZWdleDsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJLyogVGhpcyB0ZXN0IG1pZ2h0IGJlIGNvbnNpZGVyZWQgaWZmeSBzaW5jZSB0aGUgZnVsbCBvYmplY3QgaXNuJ3QgZ2l2ZW4sIGJ1dCBpdCdzIHJlYXNvbmFibGUgdG8KCSAqIGV4cGVjdCBEYXRhVGFibGVzIHRvIGNvcGUgd2l0aCB0aGlzLiBJdCBzaG91bGQganVzdCBhc3N1bWluZSByZWdleCBmYWxzZQoJICovCglvVGVzdC5mblRlc3QoIAoJCSJTZWFyY2ggdGVybSBvbmx5IGluIG9iamVjdCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJvU2VhcmNoIjogewoJCQkJCSJzU2VhcmNoIjogIk1vemlsbGEiCgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09ICJHZWNrbyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIk5ldyBzZWFyY2ggd2lsbCBraWxsIG9sZCBvbmUiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1RhYmxlLmZuRmlsdGVyKCJPcGVyYSIpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gIlByZXN0byI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNlYXJjaCBwbGFpbiB0ZXh0IHRlcm0gYW5kIGVzY2FwZSByZWdleCB0cnVlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJIm9TZWFyY2giOiB7CgkJCQkJInNTZWFyY2giOiAiRFMiLAoJCQkJCSJiUmVnZXgiOiBmYWxzZQoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiTmludGVuZG8gRFMgYnJvd3NlciI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNlYXJjaCBwbGFpbiB0ZXh0IHRlcm0gYW5kIGVzY2FwZSByZWdleCBmYWxzZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJvU2VhcmNoIjogewoJCQkJCSJzU2VhcmNoIjogIk9wZXJhIiwKCQkJCQkiYlJlZ2V4IjogdHJ1ZQoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiUHJlc3RvIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU2VhcmNoIHJlZ2V4IHRleHQgdGVybSBhbmQgZXNjYXBlIHJlZ2V4IHRydWUiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkib1NlYXJjaCI6IHsKCQkJCQkic1NlYXJjaCI6ICIxLioiLAoJCQkJCSJiUmVnZXgiOiBmYWxzZQoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiTm8gbWF0Y2hpbmcgcmVjb3JkcyBmb3VuZCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNlYXJjaCByZWdleCB0ZXh0IHRlcm0gYW5kIGVzY2FwZSByZWdleCBmYWxzZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJvU2VhcmNoIjogewoJCQkJCSJzU2VhcmNoIjogIjEuKiIsCgkJCQkJImJSZWdleCI6IHRydWUKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gIkdlY2tvIjsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/sAjaxSource.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggInNBamF4U291cmNlIiApOwoKLyogTm90IGludGVyZXN0ZWQgaW4gYWpheCBzb3VyY2UgaGVyZSBvdGhlciB0aGFuIHRvIGNoZWNrIGl0J3MgZGVmYXVsdCAqLwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTZXJ2ZXIgc2lkZSBpcyBvZmYgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Muc0FqYXhTb3VyY2UgPT0gbnVsbDsgfQoJKTsKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/sDom.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggInNEb20iICk7CgovKiBUaGlzIGlzIGdvaW5nIHRvIGJlIGJydXRhbCBvbiB0aGUgYnJvd3NlciEgVGhlcmUgaXMgYSBsb3QgdGhhdCBjYW4gYmUgdGVzdGVkIGhlcmUuLi4gKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiRGVmYXVsdCBET00gdmFyYWlibGUiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLnNEb20gPT0gImxmcnRpcCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkRlZmF1bHQgRE9NIGluIGRvY3VtZW50IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIG5Ob2RlcyA9ICQoJyNkZW1vIGRpdiwgI2RlbW8gdGFibGUnKTsKCQkJdmFyIG5XcmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfd3JhcHBlcicpOwoJCQl2YXIgbkxlbmd0aCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2xlbmd0aCcpOwoJCQl2YXIgbkZpbHRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2ZpbHRlcicpOwoJCQl2YXIgbkluZm8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJyk7CgkJCXZhciBuUGFnaW5nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcGFnaW5hdGUnKTsKCQkJdmFyIG5UYWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlJyk7CgkJCQoJCQl2YXIgYlJldHVybiA9IAoJCQkJbk5vZGVzWzBdID09IG5XcmFwcGVyICYmCgkJCQluTm9kZXNbMV0gPT0gbkxlbmd0aCAmJgoJCQkJbk5vZGVzWzJdID09IG5GaWx0ZXIgJiYKCQkJCW5Ob2Rlc1szXSA9PSBuVGFibGUgJiYKCQkJCW5Ob2Rlc1s0XSA9PSBuSW5mbyAmJgoJCQkJbk5vZGVzWzVdID09IG5QYWdpbmc7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoZWNrIGV4YW1wbGUgMSBpbiBjb2RlIHByb3BhZ2F0ZXMiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0RvbSI6ICc8IndyYXBwZXIiZmxpcHQ+JwoJCQl9ICk7CgkJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Muc0RvbSA9PSAnPCJ3cmFwcGVyImZsaXB0Pic7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoZWNrIGV4YW1wbGUgMSBpbiBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIganFOb2RlcyA9ICQoJyNkZW1vIGRpdiwgI2RlbW8gdGFibGUnKTsKCQkJdmFyIG5Ob2RlcyA9IFtdOwoJCQkKCQkJLyogU3RyaXAgdGhlIHBhZ2luZyBub2RlcyAqLwoJCQlmb3IgKCB2YXIgaT0wLCBpTGVuPWpxTm9kZXMubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQkJewoJCQkJaWYgKCBqcU5vZGVzW2ldLmdldEF0dHJpYnV0ZSgnaWQnKSAhPSAiZXhhbXBsZV9wcmV2aW91cyIgJiYKCQkJCSAgICAganFOb2Rlc1tpXS5nZXRBdHRyaWJ1dGUoJ2lkJykgIT0gImV4YW1wbGVfbmV4dCIgKQoJCQkJewoJCQkJCW5Ob2Rlcy5wdXNoKCBqcU5vZGVzW2ldICk7CgkJCQl9CgkJCX0KCQkJCgkJCXZhciBuV3JhcHBlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3dyYXBwZXInKTsKCQkJdmFyIG5MZW5ndGggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9sZW5ndGgnKTsKCQkJdmFyIG5GaWx0ZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9maWx0ZXInKTsKCQkJdmFyIG5JbmZvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpOwoJCQl2YXIgblBhZ2luZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3BhZ2luYXRlJyk7CgkJCXZhciBuVGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZScpOwoJCQl2YXIgbkN1c3RvbVdyYXBwZXIgPSAkKCdkaXYud3JhcHBlcicpWzBdOwoJCQkKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCW5Ob2Rlc1swXSA9PSBuV3JhcHBlciAmJgoJCQkJbk5vZGVzWzFdID09IG5DdXN0b21XcmFwcGVyICYmCgkJCQluTm9kZXNbMl0gPT0gbkZpbHRlciAmJgoJCQkJbk5vZGVzWzNdID09IG5MZW5ndGggJiYKCQkJCW5Ob2Rlc1s0XSA9PSBuSW5mbyAmJgoJCQkJbk5vZGVzWzVdID09IG5QYWdpbmcgJiYKCQkJCW5Ob2Rlc1s2XSA9PSBuVGFibGU7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoZWNrIGV4YW1wbGUgMiBpbiBET00iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0RvbSI6ICc8bGY8dD5pcD4nCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGpxTm9kZXMgPSAkKCcjZGVtbyBkaXYsICNkZW1vIHRhYmxlJyk7CgkJCXZhciBuTm9kZXMgPSBbXTsKCQkJdmFyIG5DdXN0b21XcmFwcGVycyA9IFtdCgkJCQoJCQkvKiBTdHJpcCB0aGUgcGFnaW5nIG5vZGVzICovCgkJCWZvciAoIHZhciBpPTAsIGlMZW49anFOb2Rlcy5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCQl7CgkJCQlpZiAoIGpxTm9kZXNbaV0uZ2V0QXR0cmlidXRlKCdpZCcpICE9ICJleGFtcGxlX3ByZXZpb3VzIiAmJgoJCQkJICAgICBqcU5vZGVzW2ldLmdldEF0dHJpYnV0ZSgnaWQnKSAhPSAiZXhhbXBsZV9uZXh0IiApCgkJCQl7CgkJCQkJbk5vZGVzLnB1c2goIGpxTm9kZXNbaV0gKTsKCQkJCX0KCQkJCQoJCQkJLyogT25seSB0aGUgdHdvIGN1c3RvbSBkaXZzIGRvbid0IGhhdmUgY2xhc3MgbmFtZXMgKi8KCQkJCWlmICgganFOb2Rlc1tpXS5jbGFzc05hbWUgPT0gIiIgKQoJCQkJewoJCQkJCW5DdXN0b21XcmFwcGVycy5wdXNoKCBqcU5vZGVzW2ldICk7CgkJCQl9CgkJCX0KCQkJCgkJCXZhciBuV3JhcHBlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3dyYXBwZXInKTsKCQkJdmFyIG5MZW5ndGggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9sZW5ndGgnKTsKCQkJdmFyIG5GaWx0ZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9maWx0ZXInKTsKCQkJdmFyIG5JbmZvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpOwoJCQl2YXIgblBhZ2luZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3BhZ2luYXRlJyk7CgkJCXZhciBuVGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZScpOwoJCQkKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCW5Ob2Rlc1swXSA9PSBuV3JhcHBlciAmJgoJCQkJbk5vZGVzWzFdID09IG5DdXN0b21XcmFwcGVyc1swXSAmJgoJCQkJbk5vZGVzWzJdID09IG5MZW5ndGggJiYKCQkJCW5Ob2Rlc1szXSA9PSBuRmlsdGVyICYmCgkJCQluTm9kZXNbNF0gPT0gbkN1c3RvbVdyYXBwZXJzWzFdICYmCgkJCQluTm9kZXNbNV0gPT0gblRhYmxlICYmCgkJCQluTm9kZXNbNl0gPT0gbkluZm8gJiYKCQkJCW5Ob2Rlc1s3XSA9PSBuUGFnaW5nOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDaGVjayBubyBsZW5ndGggZWxlbWVudCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzRG9tIjogJ2ZydGlwJwoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBuTm9kZXMgPSAkKCcjZGVtbyBkaXYsICNkZW1vIHRhYmxlJyk7CgkJCXZhciBuV3JhcHBlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3dyYXBwZXInKTsKCQkJdmFyIG5MZW5ndGggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9sZW5ndGgnKTsKCQkJdmFyIG5GaWx0ZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9maWx0ZXInKTsKCQkJdmFyIG5JbmZvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpOwoJCQl2YXIgblBhZ2luZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3BhZ2luYXRlJyk7CgkJCXZhciBuVGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZScpOwoJCQkKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCW5Ob2Rlc1swXSA9PSBuV3JhcHBlciAmJgoJCQkJbnVsbCA9PSBuTGVuZ3RoICYmCgkJCQluTm9kZXNbMV0gPT0gbkZpbHRlciAmJgoJCQkJbk5vZGVzWzJdID09IG5UYWJsZSAmJgoJCQkJbk5vZGVzWzNdID09IG5JbmZvICYmCgkJCQluTm9kZXNbNF0gPT0gblBhZ2luZzsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2hlY2sgbm8gZmlsdGVyIGVsZW1lbnQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0RvbSI6ICdscnRpcCcKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgbk5vZGVzID0gJCgnI2RlbW8gZGl2LCAjZGVtbyB0YWJsZScpOwoJCQl2YXIgbldyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV93cmFwcGVyJyk7CgkJCXZhciBuTGVuZ3RoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfbGVuZ3RoJyk7CgkJCXZhciBuRmlsdGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfZmlsdGVyJyk7CgkJCXZhciBuSW5mbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKTsKCQkJdmFyIG5QYWdpbmcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wYWdpbmF0ZScpOwoJCQl2YXIgblRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGUnKTsKCQkJCgkJCXZhciBiUmV0dXJuID0gCgkJCQluTm9kZXNbMF0gPT0gbldyYXBwZXIgJiYKCQkJCW5Ob2Rlc1sxXSA9PSBuTGVuZ3RoICYmCgkJCQludWxsID09IG5GaWx0ZXIgJiYKCQkJCW5Ob2Rlc1syXSA9PSBuVGFibGUgJiYKCQkJCW5Ob2Rlc1szXSA9PSBuSW5mbyAmJgoJCQkJbk5vZGVzWzRdID09IG5QYWdpbmc7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCS8qIE5vdGUgd2UgZG9uJ3QgdGVzdCBmb3Igbm8gdGFibGUgYXMgdGhpcyBpcyBub3Qgc3VwcG9ydGVkIChhbmQgaXQgd291bGQgYmUgZmFpcmx5IGRhZnQhICovCgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoZWNrIG5vIGluZm8gZWxlbWVudCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzRG9tIjogJ2xmcnRwJwoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBuTm9kZXMgPSAkKCcjZGVtbyBkaXYsICNkZW1vIHRhYmxlJyk7CgkJCXZhciBuV3JhcHBlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3dyYXBwZXInKTsKCQkJdmFyIG5MZW5ndGggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9sZW5ndGgnKTsKCQkJdmFyIG5GaWx0ZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9maWx0ZXInKTsKCQkJdmFyIG5JbmZvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpOwoJCQl2YXIgblBhZ2luZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3BhZ2luYXRlJyk7CgkJCXZhciBuVGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZScpOwoJCQkKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCW5Ob2Rlc1swXSA9PSBuV3JhcHBlciAmJgoJCQkJbk5vZGVzWzFdID09IG5MZW5ndGggJiYKCQkJCW5Ob2Rlc1syXSA9PSBuRmlsdGVyICYmCgkJCQluTm9kZXNbM10gPT0gblRhYmxlICYmCgkJCQludWxsID09IG5JbmZvICYmCgkJCQluTm9kZXNbNF0gPT0gblBhZ2luZzsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2hlY2sgbm8gcGFnaW5nIGVsZW1lbnQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0RvbSI6ICdsZnJ0aScKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgbk5vZGVzID0gJCgnI2RlbW8gZGl2LCAjZGVtbyB0YWJsZScpOwoJCQl2YXIgbldyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV93cmFwcGVyJyk7CgkJCXZhciBuTGVuZ3RoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfbGVuZ3RoJyk7CgkJCXZhciBuRmlsdGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfZmlsdGVyJyk7CgkJCXZhciBuSW5mbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKTsKCQkJdmFyIG5QYWdpbmcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wYWdpbmF0ZScpOwoJCQl2YXIgblRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGUnKTsKCQkJCgkJCXZhciBiUmV0dXJuID0gCgkJCQluTm9kZXNbMF0gPT0gbldyYXBwZXIgJiYKCQkJCW5Ob2Rlc1sxXSA9PSBuTGVuZ3RoICYmCgkJCQluTm9kZXNbMl0gPT0gbkZpbHRlciAmJgoJCQkJbk5vZGVzWzNdID09IG5UYWJsZSAmJgoJCQkJbk5vZGVzWzRdID09IG5JbmZvICYmCgkJCQludWxsID09IG5QYWdpbmc7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkVsZW1lbnQgd2l0aCBhbiBpZCIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJEZXN0cm95IjogdHJ1ZSwKCQkJCSJzRG9tIjogJzwiI3Rlc3QibGY+cnRpJwoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiAkKCcjdGVzdCcpLmxlbmd0aCA9PSAxOwoJCX0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkVsZW1lbnQgd2l0aCBhbiBpZCBhbmQgYSBjbGFzcyIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJEZXN0cm95IjogdHJ1ZSwKCQkJCSJzRG9tIjogJzwiI3Rlc3QuY2xhc3NUZXN0ImxmPnJ0aScKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gKCQoJyN0ZXN0JykubGVuZ3RoID09IDEgJiYgJCgnI3Rlc3QnKVswXS5jbGFzc05hbWUgPT0gImNsYXNzVGVzdCIpOwoJCX0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkVsZW1lbnQgd2l0aCBqdXN0IGEgY2xhc3MiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiRGVzdHJveSI6IHRydWUsCgkJCQkic0RvbSI6ICc8ImNsYXNzVGVzdCJsZj5ydGknCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuICgkKCdkaXYuY2xhc3NUZXN0JykubGVuZ3RoID09IDEgKTsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJUd28gZWxlbWVudHMgd2l0aCBhbiBpZCIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJEZXN0cm95IjogdHJ1ZSwKCQkJCSJzRG9tIjogJzwiI3Rlc3QxImxmPnJ0aTwiI3Rlc3QyImxmPicKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gKCQoJyN0ZXN0MScpLmxlbmd0aCA9PSAxICYmICQoJyN0ZXN0MicpLmxlbmd0aCA9PSAxKTsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJUd28gZWxlbWVudHMgd2l0aCBhbiBpZCBhbmQgb25lIHdpdGggYSBjbGFzcyIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJEZXN0cm95IjogdHJ1ZSwKCQkJCSJzRG9tIjogJzwiI3Rlc3QxImxmPnJ0aTwiI3Rlc3QyLmNsYXNzVGVzdCJsZj4nCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuICgkKCcjdGVzdDEnKS5sZW5ndGggPT0gMSAmJiAkKCcjdGVzdDInKS5sZW5ndGggPT0gMSAmJiAkKCdkaXYuY2xhc3NUZXN0JykubGVuZ3RoID09IDEpOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/sPaginationType.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggInNQYWdpbmF0aW9uVHlwZSIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2hlY2sgdHdvIGJ1dHRvbiBwYWdpbmcgaXMgdGhlIGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLnNQYWdpbmF0aW9uVHlwZSA9PSAidHdvX2J1dHRvbiI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoZWNrIGNsYXNzIGlzIGFwcGxpZWQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGVfcGFnaW5hdGUnKS5oYXNDbGFzcygncGFnaW5nX3R3b19idXR0b24nKTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiVHdvIEEgZWxlbWVudHMgYXJlIGluIHRoZSB3cmFwcGVyIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlX3BhZ2luYXRlIGEnKS5sZW5ndGggPT0gMjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiV2UgaGF2ZSB0aGUgcHJldmlvdXMgYnV0dG9uIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3ByZXZpb3VzJyk7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIldlIGhhdmUgdGhlIG5leHQgYnV0dG9uIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX25leHQnKTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUHJldmlvdXMgYnV0dG9uIGlzIGRpc2FibGVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlX3ByZXZpb3VzJykuaGFzQ2xhc3MoJ3BhZ2luYXRlX2Rpc2FibGVkX3ByZXZpb3VzJyk7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIk5leHQgYnV0dG9uIGlzIGVuYWJsZWQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGVfbmV4dCcpLmhhc0NsYXNzKCdwYWdpbmF0ZV9lbmFibGVkX25leHQnKTsgfQoJKTsKCQoJLyogRG9uJ3QgdGVzdCBwYWdpbmcgLSB0aGF0J3MgZG9uZSBieSB0aGUgemVybyBjb25maWcgdGVzdCBzY3JpcHQuICovCgkKCQoJLyogVHdvIGJ1dHRvbnMgcGFnaW5nICovCglvVGVzdC5mblRlc3QoIAoJCSJDYW4gZW5hYmxlZCBmdWxsIG51bWJlcnMgcGFnaW5nIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNQYWdpbmF0aW9uVHlwZSI6ICJmdWxsX251bWJlcnMiCgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5zUGFnaW5hdGlvblR5cGUgPT0gImZ1bGxfbnVtYmVycyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoZWNrIGZ1bGwgbnVtYmVycyBjbGFzcyBpcyBhcHBsaWVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlX3BhZ2luYXRlJykuaGFzQ2xhc3MoJ3BhZ2luZ19mdWxsX251bWJlcnMnKTsgfQoJKTsKCQoJCgl2YXIgbkZpcnN0LCBuUHJldmlvdXMsIG5OZXh0LCBuTGFzdDsKCW9UZXN0LmZuVGVzdCggCgkJIkp1bXAgdG8gbGFzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW5GaXJzdCA9ICQoJ2Rpdi5kYXRhVGFibGVzX3BhZ2luYXRlIGEuZmlyc3QnKTsKCQkJblByZXZpb3VzID0gJCgnZGl2LmRhdGFUYWJsZXNfcGFnaW5hdGUgYS5wcmV2aW91cycpOwoJCQluTmV4dCA9ICQoJ2Rpdi5kYXRhVGFibGVzX3BhZ2luYXRlIGEubmV4dCcpOwoJCQluTGFzdCA9ICQoJ2Rpdi5kYXRhVGFibGVzX3BhZ2luYXRlIGEubGFzdCcpOwoJCQluTGFzdC5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyA1MSB0byA1NyBvZiA1NyBlbnRyaWVzIjsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJHbyB0byB0d28gcGFnZXMgcHJldmlvdXMiLAoJCWZ1bmN0aW9uICgpIHsKCQkJblByZXZpb3VzLmNsaWNrKCk7CgkJCW5QcmV2aW91cy5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAzMSB0byA0MCBvZiA1NyBlbnRyaWVzIjsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJOZXh0IChzZWNvbmQgbGFzdCkgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQluTmV4dC5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyA0MSB0byA1MCBvZiA1NyBlbnRyaWVzIjsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJKdW1wIHRvIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJbkZpcnN0LmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7CgkJfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/sScrollXY.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggInNTY3JvbGxYIC8gWSIgKTsKCgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLy8gRm9yY2Ugc29tZSB4IHNjcm9sbGluZwoJJCgnYm9keScpLmNzcygnd2hpdGUtc3BhY2UnLCAnbm93cmFwJyk7CgkkKCcjY29udGFpbmVyJykuY3NzKCd3aWR0aCcsICc0MDBweCcpOwoKCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzU2Nyb2xsWCI6ICIxMDAlIiwKCQkic1Njcm9sbFkiOiAiMjAwcHgiLAoJCSJiUGFnaW5hdGUiOiBmYWxzZQoJfSApOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiSGVhZGVyIGZvbGxvd3MgeC1zY3JvbGxpbmciLAoJCWZ1bmN0aW9uICgpIHsgJCgnZGl2LmRhdGFUYWJsZXNfc2Nyb2xsQm9keScpLnNjcm9sbExlZnQoMjApOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJ2Rpdi5kYXRhVGFibGVzX3Njcm9sbEhlYWQnKS5zY3JvbGxMZWZ0KCkgPT0gMjA7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJGb290ZXIgZm9sbG93cyB4LXNjcm9sbGluZyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCdkaXYuZGF0YVRhYmxlc19zY3JvbGxGb290Jykuc2Nyb2xsTGVmdCgpID09IDIwOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkieS1zY3JvbGxpbmcgaGFzIG5vIGVmZmVjdCBvbiBoZWFkZXIiLAoJCWZ1bmN0aW9uICgpIHsgJCgnZGl2LmRhdGFUYWJsZXNfc2Nyb2xsQm9keScpLnNjcm9sbFRvcCgyMCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnZGl2LmRhdGFUYWJsZXNfc2Nyb2xsSGVhZCcpLnNjcm9sbExlZnQoKSA9PSAyMDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkZpbHRlcmluZyByZXN1bHRzIGluIHNldHMgeS1zY3JvbGwgYmFjayB0byAwIiwKCQlmdW5jdGlvbiAoKSB7IG9UYWJsZS5mbkZpbHRlcignMScpIH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnZGl2LmRhdGFUYWJsZXNfc2Nyb2xsQm9keScpLnNjcm9sbFRvcCgpID09IDA7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJGaWx0ZXJpbmcgaGFzIG5vIGVmZmVjdCBvbiB4LXNjcm9sbCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCdkaXYuZGF0YVRhYmxlc19zY3JvbGxCb2R5Jykuc2Nyb2xsTGVmdCgpID09IDIwOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRnVsbCB4LXNjcm9sbCBoYXMgaGVhZGVyIHRyYWNrIGFsbCB0aGUgd2F5IHdpdGggaXQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnZGl2LmRhdGFUYWJsZXNfc2Nyb2xsQm9keScpLnNjcm9sbExlZnQoCgkJCQkkKCcjZXhhbXBsZScpLndpZHRoKCkgLSAkKCdkaXYuZGF0YVRhYmxlc19zY3JvbGxCb2R5JylbMF0uY2xpZW50V2lkdGgKCQkJKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJ2Rpdi5kYXRhVGFibGVzX3Njcm9sbEJvZHknKS5zY3JvbGxMZWZ0KCkgPT0gJCgnZGl2LmRhdGFUYWJsZXNfc2Nyb2xsSGVhZCcpLnNjcm9sbExlZnQoKTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiRm9vdGVyIGFsc28gdHJhY2tlZCBhbGwgdGhlIHdheSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCdkaXYuZGF0YVRhYmxlc19zY3JvbGxCb2R5Jykuc2Nyb2xsTGVmdCgpID09ICQoJ2Rpdi5kYXRhVGFibGVzX3Njcm9sbEZvb3QnKS5zY3JvbGxMZWZ0KCk7IH0KCSk7CgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/th_in_body.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGFfdGgKb1Rlc3QuZm5TdGFydCggIlNhbml0eSBjaGVja3MgZm9yIERhdGFUYWJsZXMgd2l0aCBET00gZGF0YSBhbmQgYSBUSCBpbiB0aGUgYm9keSIgKTsKCm9UZXN0LmZuVGVzdCggCgkialF1ZXJ5LmRhdGFUYWJsZSBmdW5jdGlvbiIsCgludWxsLAoJZnVuY3Rpb24gKCkgeyByZXR1cm4gdHlwZW9mIGpRdWVyeSgpLmRhdGFUYWJsZSA9PSAiZnVuY3Rpb24iOyB9Cik7CgpvVGVzdC5mblRlc3QoCgkialF1ZXJ5LmRhdGFUYWJsZVNldHRpbmdzIHN0b3JhZ2UgYXJyYXkiLAoJbnVsbCwKCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVvZiBqUXVlcnkoKS5kYXRhVGFibGVTZXR0aW5ncyA9PSAib2JqZWN0IjsgfQopOwoKb1Rlc3QuZm5UZXN0KAoJImpRdWVyeS5kYXRhVGFibGVFeHQgcGx1Z2luIG9iamVjdCIsCgludWxsLAoJZnVuY3Rpb24gKCkgeyByZXR1cm4gdHlwZW9mIGpRdWVyeSgpLmRhdGFUYWJsZUV4dCA9PSAib2JqZWN0IjsgfQopOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7CgkKCS8qIEJhc2ljIGNoZWNrcyAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiTGVuZ3RoIGNoYW5naW5nIGRpdiBleGlzdHMiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfbGVuZ3RoJykgIT0gbnVsbDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiRmlsdGVyaW5nIGRpdiBleGlzdHMiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfZmlsdGVyJykgIT0gbnVsbDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiSW5mb3JtYXRpb24gZGl2IGV4aXN0cyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykgIT0gbnVsbDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUGFnaW5hdGlvbiBkaXYgZXhpc3RzIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3BhZ2luYXRlJykgIT0gbnVsbDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUHJvY2Vzc2luZyBkaXYgaXMgb2ZmIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcHJvY2Vzc2luZycpID09IG51bGw7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIjEwIHJvd3Mgc2hvd24gb24gdGhlIGZpcnN0IHBhZ2UiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMTA7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkluaXRpYWwgc29ydCBvY2N1cmVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDApJykuaHRtbCgpID09ICJHZWNrbyI7IH0KCSk7CgkKCS8qIE5lZWQgdG8gdXNlIHRoZSBXYWl0VGVzdCBmb3Igc29ydGluZyBkdWUgdG8gdGhlIHNldFRpbWVvdXQgZGF0YXRhYmxlcyB1c2VzICovCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIChmaXJzdCBjbGljaykgb24gc2Vjb25kIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIChzZWNvbmQgY2xpY2spIG9uIHNlY29uZCBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJTZWFtb25rZXkgMS4xIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyAodGhpcmQgY2xpY2spIG9uIHNlY29uZCBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyAoZmlyc3QgY2xpY2spIG9uIG51bWVyaWMgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiLSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgKHNlY29uZCBjbGljaykgb24gbnVtZXJpYyBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMyknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDMpJykuaHRtbCgpID09ICI1MjIuMSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgbXVsdGktY29sdW1uIChmaXJzdCBjbGljaykiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDApJykuY2xpY2soKTsKCQkJb0Rpc3BhY2hlci5jbGljayggJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKVswXSwgeyAnc2hpZnQnOiB0cnVlIH0gKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHZhciBiID0gCgkJCSQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDApJykuaHRtbCgpID09ICJHZWNrbyIgJiYgCgkJCSQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJDYW1pbm8gMS4wIjsgcmV0dXJuIGI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgbXVsdGktY29sdW1uIC0gc29ydGluZyBzZWNvbmQgY29sdW1uIG9ubHkiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCS8qIEJhc2ljIHBhZ2luZyAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiUGFnaW5nIHRvIHNlY29uZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJJRSBNb2JpbGUiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJQYWdpbmcgdG8gZmlyc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJBdHRlbXB0aW5nIHRvIHBhZ2UgYmFjayBiZXlvbmQgdGhlIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJLyogQ2hhbmdpbmcgbGVuZ3RoICovCglvVGVzdC5mblRlc3QoIAoJCSJDaGFuZ2luZyB0YWJsZSBsZW5ndGggdG8gMjUgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzI1JykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMjU7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoYW5naW5nIHRhYmxlIGxlbmd0aCB0byA1MCByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7ICQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnNTAnKS5jaGFuZ2UoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSA1MDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2hhbmdpbmcgdGFibGUgbGVuZ3RoIHRvIDEwMCByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7ICQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnMTAwJykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gNTc7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoYW5naW5nIHRhYmxlIGxlbmd0aCB0byAxMCByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7ICQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnMTAnKS5jaGFuZ2UoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSAxMDsgfQoJKTsKCQoJLyoKCSAqIEluZm9ybWF0aW9uIGVsZW1lbnQKCSAqLwoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiBvbiB6ZXJvIGNvbmZpZyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gb24gc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAxMSB0byAyMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiBvbiB0aGlyZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMjEgdG8gMzAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gb24gbGFzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDUxIHRvIDU3IG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIGJhY2sgb24gZmlyc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIDI1IHJlY29yZHMiLAoJCWZ1bmN0aW9uICgpIHsgJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcyNScpLmNoYW5nZSgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMSB0byAyNSBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIDI1IHJlY29yZHMgLSBzZWNvbmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDI2IHRvIDUwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggMTAwIHJlY29yZHMgLSBmaXJzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcxMDAnKS5jaGFuZ2UoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMSB0byA1NyBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiBiYWNrIHRvIDEwIHJlY29yZHMiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzEwJykuY2hhbmdlKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbiciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXaW4iKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbicgc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMTEgdG8gMjAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbicgbGFzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDMxIHRvIDMxIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyICdXaW4nIGJhY2sgdG8gZmlyc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciAnV2luJyBzZWNvbmQgcGFnZSAtIHNlY29uZCB0aW1lIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMTEgdG8gMjAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgaW5jcmVhc2VkIHRvICdXaW4gOTgnIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2luIDk4Iikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDkgb2YgOSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciBkZWNyZWFzZWQgdG8gJ1dpbiciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXaW4iKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbicgc2Vjb25kIHBhZ2UgLSB0aGlyZCB0aW1lIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMTEgdG8gMjAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgcmVtb3ZlZCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIiIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJCgkvKgoJICogRmlsdGVyaW5nCgkgKi8KCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXJyAtIHJvd3MiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCS8qIFJlc2V0IHRoZSB0YWJsZSBzdWNoIHRoYXQgdGhlIG9sZCBzb3J0aW5nIGRvZXNuJ3QgbWVzcyB0aGluZ3MgdXAgKi8KCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7CgkJCSQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiVyIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gIkdlY2tvIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1cnIC0gaW5mbyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDQyIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2knIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2kiKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgMzIgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaW4nIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2luIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luJyAtIHNvcnRpbmcgY29sdW1uIDEiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICJBT0wgYnJvd3NlciAoQU9MIGRlc2t0b3ApIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbicgLSBzb3J0aW5nIGNvbHVtbiAxIGluZm8iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbicgLSBzb3J0aW5nIGNvbHVtbiAxIHJldmVyc2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICJTZWFtb25rZXkgMS4xIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbiBYUCcgLSBtYWludGFpbmcgcmV2ZXJzZSBzb3J0aW5nIGNvbCAxIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2luIFhQIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiSW50ZXJuZXQgRXhwbG9yZXIgNyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaW4gWFAnIC0gc29ydGluZyBjb2wgMyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIjQiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luIFhQJyAtIHNvcnRpbmcgY29sIDMgLSByZXZlcnNlZCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIjciOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luJyAtIHNvcnRpbmcgY29sIDMgLSByZXZlcnNlZCBpbmZvIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gNiBvZiA2IGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnbm90aGluZ2hlcmUnIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgibm90aGluZ2hlcmUiKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09IAoJCQkiTm8gbWF0Y2hpbmcgcmVjb3JkcyBmb3VuZCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdub3RoaW5naGVyZScgLSBpbmZvIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDAgdG8gMCBvZiAwIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciBiYWNrIHRvIGJsYW5rIGFuZCAxc3QgY29sdW1uIHNvcnRpbmciLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCIiKS5rZXl1cCgpOwoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgwKScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIlByZWZpeGluZyBhIGZpbHRlciBlbnRyeSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIldpbiIpLmtleXVwKCk7CgkJCSQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiR2Vja29XaW4iKS5rZXl1cCgpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMCB0byAwIG9mIDAgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiUHJlZml4aW5nIGEgZmlsdGVyIGVudHJ5IHdpdGggc3BhY2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJHZWNrbyBXaW4iKS5rZXl1cCgpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAxNyBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJCgkKCQoJCgkKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/_getDataFunctions.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggIkNoZWNrIGJlaGF2aW91ciBvZiB0aGUgZGF0YSBnZXQgZnVuY3Rpb25zIHRoYXQgRGF0YVRhYmxlcyB1c2VzIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8vIFNsaWdodGx5IHVudXN1YWwgdGVzdCBzZXQgdGhpcyBvbmUsIGluIHRoYXQgd2UgZG9uJ3QgcmVhbGx5IGNhcmUgYWJvdXQgdGhlIERPTQoJLy8gYnV0IHdhbnQgdG8gdGVzdCB0aGUgaW50ZXJuYWwgZGF0YSBoYW5kbGluZyBmdW5jdGlvbnMgYnV0IHdlIGRvIG5lZWQgYSB0YWJsZSB0bwoJLy8gZ2V0IGF0IHRoZSBmdW5jdGlvbnMhCgl2YXIgdGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJdmFyIGZuLCB0ZXN0OwoJCgkvLyBPYmplY3QgcHJvcGVydHkgYWNjZXNzCglvVGVzdC5mblRlc3QoCgkJIlNpbmdsZSBvYmplY3QsIHNpbmdsZSBwcm9wZXJ0eSIsCgkJZnVuY3Rpb24gKCkgewoJCQlmbiA9IHRhYmxlLm9BcGkuX2ZuR2V0T2JqZWN0RGF0YUZuKCd0ZXN0Jyk7CgkJCXRlc3QgPSBmbiggeyAidGVzdCI6IHRydWUgfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gdGVzdCB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIlNpbmdsZSBwcm9wZXJ0eSBmcm9tIG9iamVjdCIsCgkJZnVuY3Rpb24gKCkgewoJCQlmbiA9IHRhYmxlLm9BcGkuX2ZuR2V0T2JqZWN0RGF0YUZuKCd0ZXN0Jyk7CgkJCXRlc3QgPSBmbiggeyAidGVzdCI6IHRydWUsICJ0ZXN0MiI6IGZhbHNlIH0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHRlc3QgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJTaW5nbGUgcHJvcGVydHkgZnJvbSBvYmplY3QgLSBkaWZmZXJlbnQgcHJvcGVydHkiLAoJCWZ1bmN0aW9uICgpIHsKCQkJZm4gPSB0YWJsZS5vQXBpLl9mbkdldE9iamVjdERhdGFGbigndGVzdDInKTsKCQkJdGVzdCA9IGZuKCB7ICJ0ZXN0IjogdHJ1ZSwgInRlc3QyIjogZmFsc2UgfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gdGVzdD09PWZhbHNlIH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiVW5kZWZpbmVkIHByb3BlcnR5IGZyb20gb2JqZWN0IiwKCQlmdW5jdGlvbiAoKSB7CgkJCWZuID0gdGFibGUub0FwaS5fZm5HZXRPYmplY3REYXRhRm4oJ3Rlc3QzJyk7CgkJCXRlc3QgPSBmbiggeyAidGVzdCI6IHRydWUsICJ0ZXN0MiI6IGZhbHNlIH0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHRlc3Q9PT11bmRlZmluZWQgfQoJKTsKCQoJLy8gQXJyYXkgaW5kZXggYWNjZXNzCglvVGVzdC5mblRlc3QoCgkJIkFycmF5IGFjY2VzcyAtIGluZGV4IDAiLAoJCWZ1bmN0aW9uICgpIHsKCQkJZm4gPSB0YWJsZS5vQXBpLl9mbkdldE9iamVjdERhdGFGbigwKTsKCQkJdGVzdCA9IGZuKCBbdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZV0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHRlc3QgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJBcnJheSBhY2Nlc3MgLSBpbmRleCAxIiwKCQlmdW5jdGlvbiAoKSB7CgkJCWZuID0gdGFibGUub0FwaS5fZm5HZXRPYmplY3REYXRhRm4oMik7CgkJCXRlc3QgPSBmbiggW2ZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2VdICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiB0ZXN0IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiQXJyYXkgYWNjZXNzIC0gdW5kZWZpbmVkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCWZuID0gdGFibGUub0FwaS5fZm5HZXRPYmplY3REYXRhRm4oNyk7CgkJCXRlc3QgPSBmbiggW2ZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2VdICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiB0ZXN0PT09dW5kZWZpbmVkIH0KCSk7CgoJLy8gbnVsbCBzb3VyY2UKCW9UZXN0LmZuVGVzdCgKCQkibnVsbCBzb3VyY2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJZm4gPSB0YWJsZS5vQXBpLl9mbkdldE9iamVjdERhdGFGbiggbnVsbCApOwoJCQl0ZXN0ID0gZm4oIFtmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlXSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gdGVzdD09PW51bGwgfQoJKTsKCgkvLyBuZXN0ZWQgb2JqZWN0cwoJb1Rlc3QuZm5UZXN0KAoJCSJOZXN0ZWQgb2JqZWN0IHByb3BlcnR5IiwKCQlmdW5jdGlvbiAoKSB7CgkJCWZuID0gdGFibGUub0FwaS5fZm5HZXRPYmplY3REYXRhRm4oICdhLmInICk7CgkJCXRlc3QgPSBmbiggewoJCQkJImEiOnsKCQkJCQkiYiI6IHRydWUsCgkJCQkJImMiOiBmYWxzZSwKCQkJCQkiZCI6IDEKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gdGVzdCB9CgkpOwoKCW9UZXN0LmZuVGVzdCgKCQkiTmVzdGVkIG9iamVjdCBwcm9wZXJ0eSAtIGRpZmZlcmVudCBwcm9wIiwKCQlmdW5jdGlvbiAoKSB7CgkJCWZuID0gdGFibGUub0FwaS5fZm5HZXRPYmplY3REYXRhRm4oICdhLmQnICk7CgkJCXRlc3QgPSBmbiggewoJCQkJImEiOnsKCQkJCQkiYiI6IHRydWUsCgkJCQkJImMiOiBmYWxzZSwKCQkJCQkiZCI6IDEKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gdGVzdD09PTEgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJOZXN0ZWQgb2JqZWN0IHByb3BlcnR5IC0gdW5kZWZpbmVkIHByb3AiLAoJCWZ1bmN0aW9uICgpIHsKCQkJZm4gPSB0YWJsZS5vQXBpLl9mbkdldE9iamVjdERhdGFGbiggJ2EueicgKTsKCQkJdGVzdCA9IGZuKCB7CgkJCQkiYSI6ewoJCQkJCSJiIjogdHJ1ZSwKCQkJCQkiYyI6IGZhbHNlLAoJCQkJCSJkIjogMQoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiB0ZXN0PT09dW5kZWZpbmVkIH0KCSk7CgoJLy8gTmVzdGVkIGFycmF5CglvVGVzdC5mblRlc3QoCgkJIk5lc3RlZCBhcnJheSBpbmRleCBwcm9wZXJ0eSIsCgkJZnVuY3Rpb24gKCkgewoJCQlmbiA9IHRhYmxlLm9BcGkuX2ZuR2V0T2JqZWN0RGF0YUZuKCAnYS4wJyApOwoJCQl0ZXN0ID0gZm4oIHsKCQkJCSJhIjogWwoJCQkJCXRydWUsCgkJCQkJZmFsc2UsCgkJCQkJMQoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiB0ZXN0IH0KCSk7CgoJb1Rlc3QuZm5UZXN0KAoJCSJOZXN0ZWQgYXJyYXkgaW5kZXggcHJvcGVydHkgLSBkaWZmZXJlbnQgaW5kZXgiLAoJCWZ1bmN0aW9uICgpIHsKCQkJZm4gPSB0YWJsZS5vQXBpLl9mbkdldE9iamVjdERhdGFGbiggJ2EuMicgKTsKCQkJdGVzdCA9IGZuKCB7CgkJCQkiYSI6IFsKCQkJCQl0cnVlLAoJCQkJCWZhbHNlLAoJCQkJCTEKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gdGVzdD09PTEgfQoJKTsKCglvVGVzdC5mblRlc3QoCgkJIk5lc3RlZCBhcnJheSBpbmRleCBwcm9wZXJ0eSAtIHVuZGVmaW5lZCBpbmRleCIsCgkJZnVuY3Rpb24gKCkgewoJCQlmbiA9IHRhYmxlLm9BcGkuX2ZuR2V0T2JqZWN0RGF0YUZuKCAnYS4xMCcgKTsKCQkJdGVzdCA9IGZuKCB7CgkJCQkiYSI6IFsKCQkJCQl0cnVlLAoJCQkJCWZhbHNlLAoJCQkJCTEKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gdGVzdD09PXVuZGVmaW5lZCB9CgkpOwoKCS8vIE5lc3RlZCBhcnJheSBvYmplY3QgcHJvcGVydHkKCW9UZXN0LmZuVGVzdCgKCQkiTmVzdGVkIGFycmF5IGluZGV4IG9iamVjdCBwcm9wZXJ0eSIsCgkJZnVuY3Rpb24gKCkgewoJCQlmbiA9IHRhYmxlLm9BcGkuX2ZuR2V0T2JqZWN0RGF0YUZuKCAnYS4wLm0nICk7CgkJCXRlc3QgPSBmbiggewoJCQkJImEiOiBbCgkJCQkJeyAibSI6IHRydWUsICJuIjogMSB9LAoJCQkJCXsgIm0iOiBmYWxzZSwgIm4iOiAyIH0sCgkJCQkJeyAibSI6IGZhbHNlLCAibiI6IDMgfQoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiB0ZXN0IH0KCSk7CgoJb1Rlc3QuZm5UZXN0KAoJCSJOZXN0ZWQgYXJyYXkgaW5kZXggb2JqZWN0IHByb3BlcnR5IC0gZGlmZmVyZW50IGluZGV4IiwKCQlmdW5jdGlvbiAoKSB7CgkJCWZuID0gdGFibGUub0FwaS5fZm5HZXRPYmplY3REYXRhRm4oICdhLjIubicgKTsKCQkJdGVzdCA9IGZuKCB7CgkJCQkiYSI6IFsKCQkJCQl7ICJtIjogdHJ1ZSwgIm4iOiAxIH0sCgkJCQkJeyAibSI6IGZhbHNlLCAibiI6IDIgfSwKCQkJCQl7ICJtIjogZmFsc2UsICJuIjogMyB9CgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHRlc3Q9PT0zIH0KCSk7CgoJb1Rlc3QuZm5UZXN0KAoJCSJOZXN0ZWQgYXJyYXkgaW5kZXggb2JqZWN0IHByb3BlcnR5IC0gdW5kZWZpbmVkIGluZGV4IiwKCQlmdW5jdGlvbiAoKSB7CgkJCWZuID0gdGFibGUub0FwaS5fZm5HZXRPYmplY3REYXRhRm4oICdhLjAueicgKTsKCQkJdGVzdCA9IGZuKCB7CgkJCQkiYSI6IFsKCQkJCQl7ICJtIjogdHJ1ZSwgIm4iOiAxIH0sCgkJCQkJeyAibSI6IGZhbHNlLCAibiI6IDIgfSwKCQkJCQl7ICJtIjogZmFsc2UsICJuIjogMyB9CgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHRlc3Q9PT11bmRlZmluZWQgfQoJKTsKCgkvLyBBcnJheSBub3RhdGlvbiAtIG5vIGpvaW4KCW9UZXN0LmZuVGVzdCgKCQkiQXJyYXkgbm90YXRpb24gLSBubyBqb2luIC0gcHJvcGVydHkiLAoJCWZ1bmN0aW9uICgpIHsKCQkJZm4gPSB0YWJsZS5vQXBpLl9mbkdldE9iamVjdERhdGFGbiggJ2FbXS5uJyApOwoJCQl0ZXN0ID0gZm4oIHsKCQkJCSJhIjogWwoJCQkJCXsgIm0iOiB0cnVlLCAibiI6IDEgfSwKCQkJCQl7ICJtIjogZmFsc2UsICJuIjogMiB9LAoJCQkJCXsgIm0iOiBmYWxzZSwgIm4iOiAzIH0KCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gdGVzdC5sZW5ndGg9PT0zICYmIHRlc3RbMF09PT0xCgkJCQkmJiB0ZXN0WzFdPT09MiAmJiB0ZXN0WzJdPT09MzsKCQl9CgkpOwoKCW9UZXN0LmZuVGVzdCgKCQkiQXJyYXkgbm90YXRpb24gLSBubyBqb2luIC0gcHJvcGVydHkgKDIpIiwKCQlmdW5jdGlvbiAoKSB7CgkJCWZuID0gdGFibGUub0FwaS5fZm5HZXRPYmplY3REYXRhRm4oICdhW10ubScgKTsKCQkJdGVzdCA9IGZuKCB7CgkJCQkiYSI6IFsKCQkJCQl7ICJtIjogdHJ1ZSwgIm4iOiAxIH0sCgkJCQkJeyAibSI6IGZhbHNlLCAibiI6IDIgfQoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiB0ZXN0Lmxlbmd0aD09PTIgJiYgdGVzdFswXT09PXRydWUKCQkJCSYmIHRlc3RbMV09PT1mYWxzZTsKCQl9CgkpOwoKCW9UZXN0LmZuVGVzdCgKCQkiQXJyYXkgbm90YXRpb24gLSBubyBqb2luIC0gdW5kZWZpbmVkIHByb3BlcnR5IiwKCQlmdW5jdGlvbiAoKSB7CgkJCWZuID0gdGFibGUub0FwaS5fZm5HZXRPYmplY3REYXRhRm4oICdhW10ueicgKTsKCQkJdGVzdCA9IGZuKCB7CgkJCQkiYSI6IFsKCQkJCQl7ICJtIjogdHJ1ZSwgIm4iOiAxIH0sCgkJCQkJeyAibSI6IGZhbHNlLCAibiI6IDIgfQoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiB0ZXN0Lmxlbmd0aD09PTIgJiYgdGVzdFswXT09PXVuZGVmaW5lZAoJCQkJJiYgdGVzdFsxXT09PXVuZGVmaW5lZDsKCQl9CgkpOwoKCS8vIEFycmF5IG5vdGF0aW9uIC0gam9pbgoJb1Rlc3QuZm5UZXN0KAoJCSJBcnJheSBub3RhdGlvbiAtIHNwYWNlIGpvaW4gLSBwcm9wZXJ0eSIsCgkJZnVuY3Rpb24gKCkgewoJCQlmbiA9IHRhYmxlLm9BcGkuX2ZuR2V0T2JqZWN0RGF0YUZuKCAnYVsgXS5uJyApOwoJCQl0ZXN0ID0gZm4oIHsKCQkJCSJhIjogWwoJCQkJCXsgIm0iOiB0cnVlLCAibiI6IDEgfSwKCQkJCQl7ICJtIjogZmFsc2UsICJuIjogMiB9LAoJCQkJCXsgIm0iOiBmYWxzZSwgIm4iOiAzIH0KCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gdGVzdCA9PT0gJzEgMiAzJzsgfQoJKTsKCglvVGVzdC5mblRlc3QoCgkJIkFycmF5IG5vdGF0aW9uIC0gc3BhY2Ugam9pbiAtIHByb3BlcnR5ICgyKSIsCgkJZnVuY3Rpb24gKCkgewoJCQlmbiA9IHRhYmxlLm9BcGkuX2ZuR2V0T2JqZWN0RGF0YUZuKCAnYVsgXS5tJyApOwoJCQl0ZXN0ID0gZm4oIHsKCQkJCSJhIjogWwoJCQkJCXsgIm0iOiB0cnVlLCAibiI6IDEgfSwKCQkJCQl7ICJtIjogZmFsc2UsICJuIjogMiB9CgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHRlc3QgPT09ICd0cnVlIGZhbHNlJzsgfQoJKTsKCglvVGVzdC5mblRlc3QoCgkJIkFycmF5IG5vdGF0aW9uIC0gc2FwY2Ugam9pbiAtIHVuZGVmaW5lZCBwcm9wZXJ0eSIsCgkJZnVuY3Rpb24gKCkgewoJCQlmbiA9IHRhYmxlLm9BcGkuX2ZuR2V0T2JqZWN0RGF0YUZuKCAnYVsgXS56JyApOwoJCQl0ZXN0ID0gZm4oIHsKCQkJCSJhIjogWwoJCQkJCXsgIm0iOiB0cnVlLCAibiI6IDEgfSwKCQkJCQl7ICJtIjogZmFsc2UsICJuIjogMiB9CgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHRlc3QgPT09ICcgJzsgfQoJKTsKCW9UZXN0LmZuVGVzdCgKCQkiQXJyYXkgbm90YXRpb24gLSBzdHJpbmcgam9pbiAtIHByb3BlcnR5IiwKCQlmdW5jdGlvbiAoKSB7CgkJCWZuID0gdGFibGUub0FwaS5fZm5HZXRPYmplY3REYXRhRm4oICdhW3F3ZXJ0eV0ubicgKTsKCQkJdGVzdCA9IGZuKCB7CgkJCQkiYSI6IFsKCQkJCQl7ICJtIjogdHJ1ZSwgIm4iOiAxIH0sCgkJCQkJeyAibSI6IGZhbHNlLCAibiI6IDIgfSwKCQkJCQl7ICJtIjogZmFsc2UsICJuIjogMyB9CgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHRlc3QgPT09ICcxcXdlcnR5MnF3ZXJ0eTMnOyB9CgkpOwoKCW9UZXN0LmZuVGVzdCgKCQkiQXJyYXkgbm90YXRpb24gLSBzdHJpbmcgam9pbiAtIHByb3BlcnR5ICgyKSIsCgkJZnVuY3Rpb24gKCkgewoJCQlmbiA9IHRhYmxlLm9BcGkuX2ZuR2V0T2JqZWN0RGF0YUZuKCAnYVtxd2VydHldLm0nICk7CgkJCXRlc3QgPSBmbiggewoJCQkJImEiOiBbCgkJCQkJeyAibSI6IHRydWUsICJuIjogMSB9LAoJCQkJCXsgIm0iOiBmYWxzZSwgIm4iOiAyIH0KCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gdGVzdCA9PT0gJ3RydWVxd2VydHlmYWxzZSc7IH0KCSk7CgkKCS8vIEFycmF5IGFsb25lIGpvaW4KCW9UZXN0LmZuVGVzdCgKCQkiRmxhdCBhcnJheSBqb2luIiwKCQlmdW5jdGlvbiAoKSB7CgkJCWZuID0gdGFibGUub0FwaS5fZm5HZXRPYmplY3REYXRhRm4oICdhWyBdJyApOwoJCQl0ZXN0ID0gZm4oIHsKCQkJCSJhIjogWwoJCQkJCXRydWUsCgkJCQkJZmFsc2UsCgkJCQkJMQoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiB0ZXN0PT09InRydWUgZmFsc2UgMSI7IH0KCSk7CgoJb1Rlc3QuZm5UZXN0KAoJCSJGbGF0IGFycmF5IHN0cmluZyBqb2luIiwKCQlmdW5jdGlvbiAoKSB7CgkJCWZuID0gdGFibGUub0FwaS5fZm5HZXRPYmplY3REYXRhRm4oICdhW3F3ZXJ0eV0nICk7CgkJCXRlc3QgPSBmbiggewoJCQkJImEiOiBbCgkJCQkJdHJ1ZSwKCQkJCQlmYWxzZSwKCQkJCQkxCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHRlc3Q9PT0idHJ1ZXF3ZXJ0eWZhbHNlcXdlcnR5MSI7IH0KCSk7CgoJb1Rlc3QuZm5UZXN0KAoJCSJGbGF0IGFycmF5IG5vIGpvaW4iLAoJCWZ1bmN0aW9uICgpIHsKCQkJZm4gPSB0YWJsZS5vQXBpLl9mbkdldE9iamVjdERhdGFGbiggJ2FbXScgKTsKCQkJdGVzdCA9IGZuKCB7CgkJCQkiYSI6IFsKCQkJCQl0cnVlLAoJCQkJCWZhbHNlLAoJCQkJCTEKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gdGVzdC5sZW5ndGg9PT0zICYmIHRlc3RbMF09PT10cnVlICYmCgkJCXRlc3RbMV09PT1mYWxzZSAmJiB0ZXN0WzJdPT09MTsgfQoJKTsKCQoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/_setDataFunctions.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggIkNoZWNrIGJlaGF2aW91ciBvZiB0aGUgZGF0YSBzZXQgZnVuY3Rpb25zIHRoYXQgRGF0YVRhYmxlcyB1c2VzIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8vIFNsaWdodGx5IHVudXN1YWwgdGVzdCBzZXQgdGhpcyBvbmUsIGluIHRoYXQgd2UgZG9uJ3QgcmVhbGx5IGNhcmUgYWJvdXQgdGhlIERPTQoJLy8gYnV0IHdhbnQgdG8gdGVzdCB0aGUgaW50ZXJuYWwgZGF0YSBoYW5kbGluZyBmdW5jdGlvbnMgYnV0IHdlIGRvIG5lZWQgYSB0YWJsZSB0bwoJLy8gZ2V0IGF0IHRoZSBmdW5jdGlvbnMhCgl2YXIgdGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSgpOwoJdmFyIGZuLCB0ZXN0LCBvOwoJCgkvLyBPYmplY3QgcHJvcGVydHkgYWNjZXNzCglvVGVzdC5mblRlc3QoCgkJIkNyZWF0ZSBwcm9wZXJ0eSIsCgkJZnVuY3Rpb24gKCkgewoJCQlmbiA9IHRhYmxlLm9BcGkuX2ZuU2V0T2JqZWN0RGF0YUZuKCd0ZXN0Jyk7CgoJCQlvID0ge307CgkJCWZuKCBvLCB0cnVlICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvLnRlc3QgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJTaW5nbGUgcHJvcGVydHkgZG9lc24ndCBraWxsIG90aGVyIHByb3BlcnRpZXMiLAoJCWZ1bmN0aW9uICgpIHsKCQkJZm4gPSB0YWJsZS5vQXBpLl9mblNldE9iamVjdERhdGFGbigndGVzdCcpOwoKCQkJbyA9IHsKCQkJCSJ0ZXN0MiI6IGZhbHNlCgkJCX07CgkJCWZuKCBvLCB0cnVlICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvLnRlc3QgJiYgby50ZXN0Mj09PWZhbHNlOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIlNpbmdsZSBwcm9wZXJ0eSBvdmVyd3JpdGUgb2xkIHByb3BlcnR5IiwKCQlmdW5jdGlvbiAoKSB7CgkJCWZuID0gdGFibGUub0FwaS5fZm5TZXRPYmplY3REYXRhRm4oJ3Rlc3QnKTsKCgkJCW8gPSB7CgkJCQkidGVzdCI6IGZhbHNlLAoJCQkJInRlc3QyIjogZmFsc2UKCQkJfTsKCQkJZm4oIG8sIHRydWUgKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG8udGVzdCAmJiBvLnRlc3QyPT09ZmFsc2U7IH0KCSk7CgoKCS8vIE5lc3RlZAoJb1Rlc3QuZm5UZXN0KAoJCSJDcmVhdGUgbmVzdGVkIHByb3BlcnR5IiwKCQlmdW5jdGlvbiAoKSB7CgkJCWZuID0gdGFibGUub0FwaS5fZm5TZXRPYmplY3REYXRhRm4oJ3Rlc3QuaW5uZXInKTsKCgkJCW8gPSB7CgkJCQkidGVzdCI6IHt9CgkJCX07CgkJCWZuKCBvLCB0cnVlICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvLnRlc3QuaW5uZXIgfQoJKTsKCglvVGVzdC5mblRlc3QoCgkJIkRlZXAgY3JlYXRlIG5lc3RlZCBwcm9wZXJ0eSIsCgkJZnVuY3Rpb24gKCkgewoJCQlmbiA9IHRhYmxlLm9BcGkuX2ZuU2V0T2JqZWN0RGF0YUZuKCd0ZXN0LmlubmVyJyk7CgoJCQlvID0ge307CgkJCWZuKCBvLCB0cnVlICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvLnRlc3QuaW5uZXIgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJOZXN0ZWQgcHJvcGVydHkgZG9lc24ndCBraWxsIG90aGVyIHByb3BlcnRpZXMiLAoJCWZ1bmN0aW9uICgpIHsKCQkJZm4gPSB0YWJsZS5vQXBpLl9mblNldE9iamVjdERhdGFGbigndGVzdC5pbm5lcicpOwoKCQkJbyA9IHsKCQkJCSJ0ZXN0IjogewoJCQkJCSJ0ZXN0MiI6IGZhbHNlCgkJCQl9CgkJCX07CgkJCWZuKCBvLCB0cnVlICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvLnRlc3QuaW5uZXIgJiYgby50ZXN0LnRlc3QyPT09ZmFsc2U7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiU2luZ2xlIHByb3BlcnR5IG92ZXJ3cml0ZSBvbGQgcHJvcGVydHkiLAoJCWZ1bmN0aW9uICgpIHsKCQkJZm4gPSB0YWJsZS5vQXBpLl9mblNldE9iamVjdERhdGFGbignbmVzdGVkLnRlc3QnKTsKCgkJCW8gPSB7CgkJCQkibmVzdGVkIjogewoJCQkJCSJ0ZXN0IjogZmFsc2UsCgkJCQkJInRlc3QyIjogZmFsc2UKCQkJCX0KCQkJfTsKCQkJZm4oIG8sIHRydWUgKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG8ubmVzdGVkLnRlc3QgJiYgby5uZXN0ZWQudGVzdDI9PT1mYWxzZTsgfQoJKTsKCgkvLyBTZXQgYXJyYXlzIC8gb2JqZWN0cwoJb1Rlc3QuZm5UZXN0KAoJCSJDcmVhdGUgb2JqZWN0IiwKCQlmdW5jdGlvbiAoKSB7CgkJCWZuID0gdGFibGUub0FwaS5fZm5TZXRPYmplY3REYXRhRm4oJ3Rlc3QnKTsKCgkJCW8gPSB7fTsKCQkJZm4oIG8sIHsiYSI6dHJ1ZSwgImIiOmZhbHNlfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gby50ZXN0LmEgJiYgby50ZXN0LmI9PT1mYWxzZSB9CgkpOwoKCW9UZXN0LmZuVGVzdCgKCQkiQ3JlYXRlIG5lc3RlZCBvYmplY3QiLAoJCWZ1bmN0aW9uICgpIHsKCQkJZm4gPSB0YWJsZS5vQXBpLl9mblNldE9iamVjdERhdGFGbignbmVzdGVkLnRlc3QnKTsKCgkJCW8gPSB7fTsKCQkJZm4oIG8sIHsiYSI6dHJ1ZSwgImIiOmZhbHNlfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gby5uZXN0ZWQudGVzdC5hICYmIG8ubmVzdGVkLnRlc3QuYj09PWZhbHNlIH0KCSk7CgoJb1Rlc3QuZm5UZXN0KAoJCSJDcmVhdGUgYXJyYXkiLAoJCWZ1bmN0aW9uICgpIHsKCQkJZm4gPSB0YWJsZS5vQXBpLl9mblNldE9iamVjdERhdGFGbigndGVzdCcpOwoKCQkJbyA9IHt9OwoJCQlmbiggbywgWzEsMiwzXSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gby50ZXN0WzBdPT09MSAmJiBvLnRlc3RbMl09PT0zIH0KCSk7CgoJb1Rlc3QuZm5UZXN0KAoJCSJDcmVhdGUgbmVzdGVkIGFycmF5IiwKCQlmdW5jdGlvbiAoKSB7CgkJCWZuID0gdGFibGUub0FwaS5fZm5TZXRPYmplY3REYXRhRm4oJ25lc3RlZC50ZXN0Jyk7CgoJCQlvID0ge307CgkJCWZuKCBvLCBbMSwyLDNdICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvLm5lc3RlZC50ZXN0WzBdPT09MSAmJiBvLm5lc3RlZC50ZXN0WzJdPT09MyB9CgkpOwoKCgkvLyBBcnJheSBub3RhdGlvbgoJb1Rlc3QuZm5UZXN0KAoJCSJDcmVhdGUgYXJyYXkgb2Ygb2JqZWN0cyIsCgkJZnVuY3Rpb24gKCkgewoJCQlmbiA9IHRhYmxlLm9BcGkuX2ZuU2V0T2JqZWN0RGF0YUZuKCd0ZXN0W10uYScpOwoKCQkJbyA9IHt9OwoJCQlmbiggbywgWzEsMiwzXSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gby50ZXN0Lmxlbmd0aD09PTMgJiYgby50ZXN0WzBdLmE9PT0xICYmIG8udGVzdFsxXS5hPT09MjsgfQoJKTsKCglvVGVzdC5mblRlc3QoCgkJIkNyZWF0ZSBhcnJheSBvZiBuZXN0ZWQgb2JqZWN0cyIsCgkJZnVuY3Rpb24gKCkgewoJCQlmbiA9IHRhYmxlLm9BcGkuX2ZuU2V0T2JqZWN0RGF0YUZuKCd0ZXN0W10uYS5iJyk7CgoJCQlvID0ge307CgkJCWZuKCBvLCBbMSwyLDNdICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvLnRlc3QubGVuZ3RoPT09MyAmJiBvLnRlc3RbMF0uYS5iPT09MSAmJiBvLnRlc3RbMV0uYS5iPT09MjsgfQoJKTsKCglvVGVzdC5mblRlc3QoCgkJIkNyZWF0ZSBhcnJheSIsCgkJZnVuY3Rpb24gKCkgewoJCQlmbiA9IHRhYmxlLm9BcGkuX2ZuU2V0T2JqZWN0RGF0YUZuKCd0ZXN0W10nKTsKCgkJCW8gPSB7fTsKCQkJZm4oIG8sIFsxLDIsM10gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG8udGVzdC5sZW5ndGg9PT0zICYmIG8udGVzdFswXT09PTEgJiYgby50ZXN0WzFdPT09MjsgfQoJKTsKCgoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/1_dom/_zero_config.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZG9tX2RhdGEKb1Rlc3QuZm5TdGFydCggIlNhbml0eSBjaGVja3MgZm9yIERhdGFUYWJsZXMgd2l0aCBET00gZGF0YSIgKTsKCm9UZXN0LmZuVGVzdCggCgkialF1ZXJ5LmRhdGFUYWJsZSBmdW5jdGlvbiIsCgludWxsLAoJZnVuY3Rpb24gKCkgeyByZXR1cm4gdHlwZW9mIGpRdWVyeSgpLmRhdGFUYWJsZSA9PSAiZnVuY3Rpb24iOyB9Cik7CgpvVGVzdC5mblRlc3QoCgkialF1ZXJ5LmRhdGFUYWJsZVNldHRpbmdzIHN0b3JhZ2UgYXJyYXkiLAoJbnVsbCwKCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVvZiBqUXVlcnkoKS5kYXRhVGFibGVTZXR0aW5ncyA9PSAib2JqZWN0IjsgfQopOwoKb1Rlc3QuZm5UZXN0KAoJImpRdWVyeS5kYXRhVGFibGVFeHQgcGx1Z2luIG9iamVjdCIsCgludWxsLAoJZnVuY3Rpb24gKCkgeyByZXR1cm4gdHlwZW9mIGpRdWVyeSgpLmRhdGFUYWJsZUV4dCA9PSAib2JqZWN0IjsgfQopOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7CgkKCS8qIEJhc2ljIGNoZWNrcyAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiTGVuZ3RoIGNoYW5naW5nIGRpdiBleGlzdHMiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfbGVuZ3RoJykgIT0gbnVsbDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiRmlsdGVyaW5nIGRpdiBleGlzdHMiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfZmlsdGVyJykgIT0gbnVsbDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiSW5mb3JtYXRpb24gZGl2IGV4aXN0cyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykgIT0gbnVsbDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUGFnaW5hdGlvbiBkaXYgZXhpc3RzIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3BhZ2luYXRlJykgIT0gbnVsbDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUHJvY2Vzc2luZyBkaXYgaXMgb2ZmIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcHJvY2Vzc2luZycpID09IG51bGw7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIjEwIHJvd3Mgc2hvd24gb24gdGhlIGZpcnN0IHBhZ2UiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMTA7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkluaXRpYWwgc29ydCBvY2N1cmVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDApJykuaHRtbCgpID09ICJHZWNrbyI7IH0KCSk7CgkKCS8qIE5lZWQgdG8gdXNlIHRoZSBXYWl0VGVzdCBmb3Igc29ydGluZyBkdWUgdG8gdGhlIHNldFRpbWVvdXQgZGF0YXRhYmxlcyB1c2VzICovCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIChmaXJzdCBjbGljaykgb24gc2Vjb25kIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIChzZWNvbmQgY2xpY2spIG9uIHNlY29uZCBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJTZWFtb25rZXkgMS4xIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyAodGhpcmQgY2xpY2spIG9uIHNlY29uZCBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyAoZmlyc3QgY2xpY2spIG9uIG51bWVyaWMgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiLSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgKHNlY29uZCBjbGljaykgb24gbnVtZXJpYyBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMyknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDMpJykuaHRtbCgpID09ICI1MjIuMSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgbXVsdGktY29sdW1uIChmaXJzdCBjbGljaykiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDApJykuY2xpY2soKTsKCQkJb0Rpc3BhY2hlci5jbGljayggJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKVswXSwgeyAnc2hpZnQnOiB0cnVlIH0gKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHZhciBiID0gCgkJCSQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDApJykuaHRtbCgpID09ICJHZWNrbyIgJiYgCgkJCSQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJDYW1pbm8gMS4wIjsgcmV0dXJuIGI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgbXVsdGktY29sdW1uIC0gc29ydGluZyBzZWNvbmQgY29sdW1uIG9ubHkiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCS8qIEJhc2ljIHBhZ2luZyAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiUGFnaW5nIHRvIHNlY29uZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJJRSBNb2JpbGUiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJQYWdpbmcgdG8gZmlyc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJBdHRlbXB0aW5nIHRvIHBhZ2UgYmFjayBiZXlvbmQgdGhlIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJLyogQ2hhbmdpbmcgbGVuZ3RoICovCglvVGVzdC5mblRlc3QoIAoJCSJDaGFuZ2luZyB0YWJsZSBsZW5ndGggdG8gMjUgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzI1JykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMjU7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoYW5naW5nIHRhYmxlIGxlbmd0aCB0byA1MCByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7ICQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnNTAnKS5jaGFuZ2UoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSA1MDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2hhbmdpbmcgdGFibGUgbGVuZ3RoIHRvIDEwMCByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7ICQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnMTAwJykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gNTc7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoYW5naW5nIHRhYmxlIGxlbmd0aCB0byAxMCByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7ICQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnMTAnKS5jaGFuZ2UoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSAxMDsgfQoJKTsKCQoJLyoKCSAqIEluZm9ybWF0aW9uIGVsZW1lbnQKCSAqLwoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiBvbiB6ZXJvIGNvbmZpZyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gb24gc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAxMSB0byAyMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiBvbiB0aGlyZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMjEgdG8gMzAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gb24gbGFzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDUxIHRvIDU3IG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIGJhY2sgb24gZmlyc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIDI1IHJlY29yZHMiLAoJCWZ1bmN0aW9uICgpIHsgJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcyNScpLmNoYW5nZSgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMSB0byAyNSBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIDI1IHJlY29yZHMgLSBzZWNvbmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDI2IHRvIDUwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggMTAwIHJlY29yZHMgLSBmaXJzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcxMDAnKS5jaGFuZ2UoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMSB0byA1NyBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiBiYWNrIHRvIDEwIHJlY29yZHMiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzEwJykuY2hhbmdlKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbiciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXaW4iKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbicgc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMTEgdG8gMjAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbicgbGFzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDMxIHRvIDMxIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyICdXaW4nIGJhY2sgdG8gZmlyc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciAnV2luJyBzZWNvbmQgcGFnZSAtIHNlY29uZCB0aW1lIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMTEgdG8gMjAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgaW5jcmVhc2VkIHRvICdXaW4gOTgnIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2luIDk4Iikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDkgb2YgOSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciBkZWNyZWFzZWQgdG8gJ1dpbiciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXaW4iKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbicgc2Vjb25kIHBhZ2UgLSB0aGlyZCB0aW1lIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMTEgdG8gMjAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgcmVtb3ZlZCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIiIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJCgkvKgoJICogRmlsdGVyaW5nCgkgKi8KCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXJyAtIHJvd3MiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCS8qIFJlc2V0IHRoZSB0YWJsZSBzdWNoIHRoYXQgdGhlIG9sZCBzb3J0aW5nIGRvZXNuJ3QgbWVzcyB0aGluZ3MgdXAgKi8KCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCk7CgkJCSQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiVyIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gIkdlY2tvIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1cnIC0gaW5mbyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDQyIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2knIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2kiKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgMzIgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaW4nIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2luIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luJyAtIHNvcnRpbmcgY29sdW1uIDEiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICJBT0wgYnJvd3NlciAoQU9MIGRlc2t0b3ApIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbicgLSBzb3J0aW5nIGNvbHVtbiAxIGluZm8iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbicgLSBzb3J0aW5nIGNvbHVtbiAxIHJldmVyc2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICJTZWFtb25rZXkgMS4xIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbiBYUCcgLSBtYWludGFpbmcgcmV2ZXJzZSBzb3J0aW5nIGNvbCAxIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2luIFhQIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiSW50ZXJuZXQgRXhwbG9yZXIgNyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaW4gWFAnIC0gc29ydGluZyBjb2wgMyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIjQiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luIFhQJyAtIHNvcnRpbmcgY29sIDMgLSByZXZlcnNlZCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIjciOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luJyAtIHNvcnRpbmcgY29sIDMgLSByZXZlcnNlZCBpbmZvIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gNiBvZiA2IGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnbm90aGluZ2hlcmUnIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgibm90aGluZ2hlcmUiKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09IAoJCQkiTm8gbWF0Y2hpbmcgcmVjb3JkcyBmb3VuZCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdub3RoaW5naGVyZScgLSBpbmZvIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDAgdG8gMCBvZiAwIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciBiYWNrIHRvIGJsYW5rIGFuZCAxc3QgY29sdW1uIHNvcnRpbmciLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCIiKS5rZXl1cCgpOwoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgwKScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIlByZWZpeGluZyBhIGZpbHRlciBlbnRyeSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIldpbiIpLmtleXVwKCk7CgkJCSQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiR2Vja29XaW4iKS5rZXl1cCgpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMCB0byAwIG9mIDAgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiUHJlZml4aW5nIGEgZmlsdGVyIGVudHJ5IHdpdGggc3BhY2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJHZWNrbyBXaW4iKS5rZXl1cCgpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAxNyBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJCgkKCQoJCgkKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/39-nested-null.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIjM5IC0gbmVzdGVkIG51bGwgdmFsdWVzIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCXZhciB0ZXN0ID0gZmFsc2U7CgoJJC5mbi5kYXRhVGFibGUuZXh0LnNFcnJNb2RlID0gInRocm93IjsKCglvVGVzdC5mblRlc3QoCgkJIk5vIGRlZmF1bHQgY29udGVudCB0aHJvd3MgYW4gZXJyb3IiLAoJCWZ1bmN0aW9uICgpIHsKCQkJdHJ5IHsKCQkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkJImFhRGF0YSI6IFsKCQkJCQkJeyAiYSI6ICIwIiwgImIiOiB7ImMiOiAwfSB9LAoJCQkJCQl7ICJhIjogIjEiLCAiYiI6IHsiYyI6IDN9IH0sCgkJCQkJCXsgImEiOiAiMiIsICJiIjogbnVsbCB9CgkJCQkJXSwKCQkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCQl7ICJtRGF0YVByb3AiOiAiYSIgfSwKCQkJCQkJeyAibURhdGFQcm9wIjogImIiIH0sCgkJCQkJCXsgIm1EYXRhUHJvcCI6ICJiLmMiIH0KCQkJCQldCgkJCQl9ICk7CgkJCX0KCQkJY2F0Y2goZXJyKSB7CgkJCQl0ZXN0ID0gdHJ1ZTsKCQkJfQoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gdGVzdDsgfQoJKTsKCglvVGVzdC5mblRlc3QoCgkJIlRhYmxlIHJlbmRlcnMiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IFsKCQkJCQl7ICJhIjogIjAiLCAiYiI6IHsiYyI6IDB9IH0sCgkJCQkJeyAiYSI6ICIxIiwgImIiOiB7ImMiOiAzfSB9LAoJCQkJCXsgImEiOiAiMiIsICJiIjogbnVsbCB9CgkJCQldLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQl7ICJtRGF0YVByb3AiOiAiYSIgfSwKCQkJCQl7ICJtRGF0YVByb3AiOiAiYiIgfSwKCQkJCQl7ICJtRGF0YVByb3AiOiAiYi5jIiwgInNEZWZhdWx0Q29udGVudCI6ICJhbGxhbiIgfQoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgwKScpLmh0bWwoKSA9PT0gIjAiOyB9CgkpOwoKCW9UZXN0LmZuVGVzdCgKCQkiRGVmYXVsdCBjb250ZW50IGFwcGxpZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IFsKCQkJCQl7ICJhIjogIjAiLCAiYiI6IHsiYyI6IDB9IH0sCgkJCQkJeyAiYSI6ICIxIiwgImIiOiB7ImMiOiAzfSB9LAoJCQkJCXsgImEiOiAiMiIsICJiIjogbnVsbCB9CgkJCQldLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQl7ICJtRGF0YVByb3AiOiAiYSIgfSwKCQkJCQl7ICJtRGF0YVByb3AiOiAiYiIgfSwKCQkJCQl7ICJtRGF0YVByb3AiOiAiYi5jIiwgInNEZWZhdWx0Q29udGVudCI6ICJhbGxhbiIgfQoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSg4KScpLmh0bWwoKSA9PT0gImFsbGFuIjsgfQoJKTsKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/6872-default-content-missing-props.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIjY4NzIgLSBtRGF0YVByb3AgYW5kIHNEZWZhdWx0Q29udGVudCBmb3IgZGVlcCBvYmplY3RzIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCXZhciB0ZXN0ID0gZmFsc2U7CgoJJC5mbi5kYXRhVGFibGUuZXh0LnNFcnJNb2RlID0gInRocm93IjsKCgoKCS8qICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICoKCSAqIFNoYWxsb3cgcHJvcGVydGllcwoJICovCgkKCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImFhRGF0YSI6IFsKCQkJewoJCQkJImEiOiAiYSIsCgkJCQkiYiI6ICJiIiwKCQkJCSJjIjogImMiLAoJCQkJImQiOiAiZCIsCgkJCQkiZSI6ICJlIgoJCQl9CgkJXSwKCQkiYW9Db2x1bW5zIjogWwoJCQl7ICJtRGF0YVByb3AiOiAiYSIgfSwKCQkJeyAibURhdGFQcm9wIjogImIiIH0sCgkJCXsgIm1EYXRhUHJvcCI6ICJjIiB9LAoJCQl7ICJtRGF0YVByb3AiOiAiZCIgfSwKCQkJeyAibURhdGFQcm9wIjogImUiIH0KCQldCgl9ICk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkJhc2ljIGluaXRpYWxpc2F0aW9uIG9mIG9iamVjdHMgd29ya3MiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMCknKS5odG1sKCkgPT09ICJhIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiRXJyb3Igd2hlbiBwcm9wZXJ0eSBtaXNzaW5nIChubyBkZWZhdWx0IGNvbnRlbnQpIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQl0ZXN0ID0gZmFsc2U7CgoJCQl0cnkgewoJCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCQkiYWFEYXRhIjogWwoJCQkJCQl7CgkJCQkJCQkiYSI6ICJhIiwKCQkJCQkJCSJiIjogImIiLAoJCQkJCQkJImQiOiAiZCIsCgkJCQkJCQkiZSI6ICJlIgoJCQkJCQl9CgkJCQkJXSwKCQkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCQl7ICJtRGF0YVByb3AiOiAiYSIgfSwKCQkJCQkJeyAibURhdGFQcm9wIjogImIiIH0sCgkJCQkJCXsgIm1EYXRhUHJvcCI6ICJjIiB9LAoJCQkJCQl7ICJtRGF0YVByb3AiOiAiZCIgfSwKCQkJCQkJeyAibURhdGFQcm9wIjogImUiIH0KCQkJCQldCgkJCQl9ICk7CgkJCX0gY2F0Y2ggKGUpIHsKCQkJCXRlc3QgPSB0cnVlOwoJCQl9CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiB0ZXN0OyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJEZWZhdWx0IGNvbnRlbnQgdXNlZCBmb3IgbWlzc2luZyBwcm9wIGFuZCBubyBlcnJvciIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogWwoJCQkJCXsKCQkJCQkJImEiOiAiYSIsCgkJCQkJCSJiIjogImIiLAoJCQkJCQkiZCI6ICJkIiwKCQkJCQkJImUiOiAiZSIKCQkJCQl9CgkJCQldLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQl7ICJtRGF0YVByb3AiOiAiYSIgfSwKCQkJCQl7ICJtRGF0YVByb3AiOiAiYiIgfSwKCQkJCQl7ICJtRGF0YVByb3AiOiAiYyIsICJzRGVmYXVsdENvbnRlbnQiOiAidGVzdCIgfSwKCQkJCQl7ICJtRGF0YVByb3AiOiAiZCIgfSwKCQkJCQl7ICJtRGF0YVByb3AiOiAiZSIgfQoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgyKScpLmh0bWwoKSA9PT0gInRlc3QiOyB9CgkpOwoKCgoJLyogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKgoJICogRGVlcCBwcm9wZXJ0aWVzIHdpdGggYSBzaW5nbGUgb2JqZWN0CgkgKi8KCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQmFzaWMgdGVzdCB3aXRoIGRlZXAgcHJvcGVydGllcyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogWwoJCQkJCXsKCQkJCQkJInoiOiB7CgkJCQkJCQkiYSI6ICJhIiwKCQkJCQkJCSJiIjogImIiLAoJCQkJCQkJImMiOiAiYyIsCgkJCQkJCQkiZCI6ICJkIiwKCQkJCQkJCSJlIjogImUiCgkJCQkJCX0KCQkJCQl9CgkJCQldLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQl7ICJtRGF0YVByb3AiOiAiei5hIiB9LAoJCQkJCXsgIm1EYXRhUHJvcCI6ICJ6LmIiIH0sCgkJCQkJeyAibURhdGFQcm9wIjogInouYyIgfSwKCQkJCQl7ICJtRGF0YVByb3AiOiAiei5kIiB9LAoJCQkJCXsgIm1EYXRhUHJvcCI6ICJ6LmUiIH0KCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMCknKS5odG1sKCkgPT09ICJhIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiRXJyb3Igd2hlbiBwcm9wZXJ0eSBtaXNzaW5nIG9uIGRlZXAgZ2V0IChubyBkZWZhdWx0IGNvbnRlbnQpIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQl0ZXN0ID0gZmFsc2U7CgkJCQoJCQl0cnkgewoJCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCQkiYWFEYXRhIjogWwoJCQkJCQl7CgkJCQkJCQkieiI6IHsKCQkJCQkJCQkiYSI6ICJhIiwKCQkJCQkJCQkiYiI6ICJiIiwKCQkJCQkJCQkiYyI6ICJjIiwKCQkJCQkJCQkiZSI6ICJlIgoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJXSwKCQkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCQl7ICJtRGF0YVByb3AiOiAiei5hIiB9LAoJCQkJCQl7ICJtRGF0YVByb3AiOiAiei5iIiB9LAoJCQkJCQl7ICJtRGF0YVByb3AiOiAiei5jIiB9LAoJCQkJCQl7ICJtRGF0YVByb3AiOiAiei5kIiB9LAoJCQkJCQl7ICJtRGF0YVByb3AiOiAiei5lIiB9CgkJCQkJXQoJCQkJfSApOwoJCQl9IGNhdGNoIChlKSB7CgkJCQl0ZXN0ID0gdHJ1ZTsKCQkJfQoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gdGVzdDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiRGVmYXVsdCBjb250ZW50IHVzZWQgZm9yIG1pc3NpbmcgcHJvcCBvbiBkZWVwIGdldCBhbmQgbm8gZXJyb3IiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IFsKCQkJCQl7CgkJCQkJCSJ6IjogewoJCQkJCQkJImEiOiAiYSIsCgkJCQkJCQkiYiI6ICJiIiwKCQkJCQkJCSJjIjogImMiLAoJCQkJCQkJImUiOiAiZSIKCQkJCQkJfQoJCQkJCX0KCQkJCV0sCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCXsgIm1EYXRhUHJvcCI6ICJ6LmEiIH0sCgkJCQkJeyAibURhdGFQcm9wIjogInouYiIgfSwKCQkJCQl7ICJtRGF0YVByb3AiOiAiei5jIiB9LAoJCQkJCXsgIm1EYXRhUHJvcCI6ICJ6LmQiLCAic0RlZmF1bHRDb250ZW50IjogInRlc3QiIH0sCgkJCQkJeyAibURhdGFQcm9wIjogInouZSIgfQoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgzKScpLmh0bWwoKSA9PT0gInRlc3QiOyB9CgkpOwoKCgoJLyogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKgoJICogRGVlcCBwcm9wZXJ0aWVzIHdpdGggaW5kaXZpZHVhbCBvYmplY3RzCgkgKi8KCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQmFzaWMgdGVzdCB3aXRoIGRlZXAgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBbCgkJCQkJewoJCQkJCQkibSI6IHsgImEiOiAiYSIgfSwKCQkJCQkJIm4iOiB7ICJiIjogImIiIH0sCgkJCQkJCSJvIjogeyAiYyI6ICJjIiB9LAoJCQkJCQkicCI6IHsgImQiOiAiZCIgfSwKCQkJCQkJInEiOiB7ICJlIjogImUiIH0KCQkJCQl9CgkJCQldLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQl7ICJtRGF0YVByb3AiOiAibS5hIiB9LAoJCQkJCXsgIm1EYXRhUHJvcCI6ICJuLmIiIH0sCgkJCQkJeyAibURhdGFQcm9wIjogIm8uYyIgfSwKCQkJCQl7ICJtRGF0YVByb3AiOiAicC5kIiB9LAoJCQkJCXsgIm1EYXRhUHJvcCI6ICJxLmUiIH0KCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMCknKS5odG1sKCkgPT09ICJhIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiRXJyb3Igd2hlbiBwcm9wZXJ0eSBtaXNzaW5nIG9uIGRlZXAgaW5kaXZpZHVhbCBnZXQgKG5vIGRlZmF1bHQgY29udGVudCkiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCXRlc3QgPSBmYWxzZTsKCQkJCgkJCXRyeSB7CgkJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJCSJhYURhdGEiOiBbCgkJCQkJCXsKCQkJCQkJCSJtIjogeyAiYSI6ICJhIiB9LAoJCQkJCQkJIm4iOiB7ICJiIjogImIiIH0sCgkJCQkJCQkicCI6IHsgImQiOiAiZCIgfSwKCQkJCQkJCSJxIjogeyAiZSI6ICJlIiB9CgkJCQkJCX0KCQkJCQldLAoJCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJCXsgIm1EYXRhUHJvcCI6ICJtLmEiIH0sCgkJCQkJCXsgIm1EYXRhUHJvcCI6ICJuLmIiIH0sCgkJCQkJCXsgIm1EYXRhUHJvcCI6ICJvLmMiIH0sCgkJCQkJCXsgIm1EYXRhUHJvcCI6ICJwLmQiIH0sCgkJCQkJCXsgIm1EYXRhUHJvcCI6ICJxLmUiIH0KCQkJCQldCgkJCQl9ICk7CgkJCX0gY2F0Y2ggKGUpIHsKCQkJCXRlc3QgPSB0cnVlOwoJCQl9CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiB0ZXN0OyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJEZWZhdWx0IGNvbnRlbnQgdXNlZCBmb3IgbWlzc2luZyBwcm9wIG9uIGRlZXAgaW5kaXZpZHVhbCBnZXQgYW5kIG5vIGVycm9yIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBbCgkJCQkJewoJCQkJCQkibSI6IHsgImEiOiAiYSIgfSwKCQkJCQkJIm4iOiB7ICJiIjogImIiIH0sCgkJCQkJCSJwIjogeyAiZCI6ICJkIiB9LAoJCQkJCQkicSI6IHsgImUiOiAiZSIgfQoJCQkJCX0KCQkJCV0sCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCXsgIm1EYXRhUHJvcCI6ICJtLmEiIH0sCgkJCQkJeyAibURhdGFQcm9wIjogIm4uYiIgfSwKCQkJCQl7ICJtRGF0YVByb3AiOiAiby5jIiwgInNEZWZhdWx0Q29udGVudCI6ICJ0ZXN0IiB9LAoJCQkJCXsgIm1EYXRhUHJvcCI6ICJwLmQiIH0sCgkJCQkJeyAibURhdGFQcm9wIjogInEuZSIgfQoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgyKScpLmh0bWwoKSA9PT0gInRlc3QiOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/8549--string-sorting-nonstrings.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIjg1NDkgLSBzdHJpbmcgc29ydGluZyBub24tc3RyaW5nIHR5cGVzIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCXZhciB0ZXN0ID0gZmFsc2U7CgoJJC5mbi5kYXRhVGFibGUuZXh0LnNFcnJNb2RlID0gInRocm93IjsKCgoKCS8qICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICoKCSAqIFNoYWxsb3cgcHJvcGVydGllcwoJICovCgkKCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImFhRGF0YSI6IFsKCQkJWyBudWxsIF0sCgkJCVsgNSBdLAoJCQlbICIxYSIgXSwKCQkJWyBuZXcgRGF0ZSgwKSBdCgkJXSwKCQkiYW9Db2x1bW5zIjogWwoJCQl7ICJzVGl0bGUiOiAiVGVzdCIgfQoJCV0KCX0gKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyB3b3JrcyAtIGZpcnN0IGNlbGwgaXMgZW1wdHkiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT09ICIiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTZWNvbmQgY2VsbCBpcyAxYSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKSB0ZDplcSgwKScpLmh0bWwoKSA9PT0gIjFhIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiVGhpcmQgY2VsbCBpcyA1IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDIpIHRkOmVxKDApJykuaHRtbCgpID09PSAiNSI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/aaSorting.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAiYWFTb3J0aW5nIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkiYWFEYXRhIjogZ2FhRGF0YQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkRlZmF1bHQgc29ydGluZyBpcyBzaW5nbGUgY29sdW1uIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuIG9TZXR0aW5ncy5hYVNvcnRpbmcubGVuZ3RoID09IDEgJiYgdHlwZW9mIG9TZXR0aW5ncy5hYVNvcnRpbmdbMF0gPT0gJ29iamVjdCc7CgkJfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiRGVmYXVsdCBzb3J0aW5nIGlzIGZpcnN0IGNvbHVtbiBhc2MiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gb1NldHRpbmdzLmFhU29ydGluZ1swXS5sZW5ndGggPT0gMyAmJiBvU2V0dGluZ3MuYWFTb3J0aW5nWzBdWzBdID09IDAgJiYKCQkJCW9TZXR0aW5ncy5hYVNvcnRpbmdbMF1bMV0gPT0gJ2FzYyc7CgkJfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyBpcyBhcHBsaWVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDApJykuaHRtbCgpID09ICJHZWNrbyI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ3VzdG9tIHNvcnRpbmcgb24gc2luZ2xlIHN0cmluZyBjb2x1bW4gYXNjIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkiYWFTb3J0aW5nIjogW1snMScsJ2FzYyddXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ3VzdG9tIHNvcnRpbmcgb24gc2luZ2xlIHN0cmluZyBjb2x1bW4gZGVzYyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImFhU29ydGluZyI6IFtbJzEnLCdkZXNjJ11dCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJTZWFtb25rZXkgMS4xIjsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJDdXN0b20gc29ydGluZyBvbiBzaW5nbGUgaW50IGNvbHVtbiBhc2MiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJhYVNvcnRpbmciOiBbWycxJywnYXNjJ11dCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDMpJykuaHRtbCgpID09ICItIjsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJDdXN0b20gc29ydGluZyBvbiBzaW5nbGUgaW50IGNvbHVtbiBkZXNjIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkiYWFTb3J0aW5nIjogW1snMScsJ2Rlc2MnXV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIlNlYW1vbmtleSAxLjEiOyB9CgkpOwoJCgkKCW9UZXN0LmZuVGVzdCggCgkJIk11bHRpLWNvbHVtbiBzb3J0aW5nICgyIGNvbHVtbikgLSBzdHJpbmcgYXNjIC8gc3RyaW5nIGFzYyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImFhU29ydGluZyI6IFtbJzAnLCdhc2MnXSwgWycxJywnYXNjJ11dCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJDYW1pbm8gMS4wIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiTXVsdGktY29sdW1uIHNvcnRpbmcgKDIgY29sdW1uKSAtIHN0cmluZyBhc2MgLyBzdHJpbmcgZGVzYyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImFhU29ydGluZyI6IFtbJzAnLCdhc2MnXSwgWycxJywnZGVzYyddXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiU2VhbW9ua2V5IDEuMSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIk11bHRpLWNvbHVtbiBzb3J0aW5nICgyIGNvbHVtbikgLSBzdHJpbmcgZGVzYyAvIHN0cmluZyBhc2MiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJhYVNvcnRpbmciOiBbWycwJywnZGVzYyddLCBbJzEnLCdhc2MnXV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gImlQb2QgVG91Y2ggLyBpUGhvbmUiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJNdWx0aS1jb2x1bW4gc29ydGluZyAoMiBjb2x1bW4pIC0gc3RyaW5nIGRlc2MgLyBzdHJpbmcgZGVzYyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImFhU29ydGluZyI6IFtbJzAnLCdkZXNjJ10sIFsnMScsJ2Rlc2MnXV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIlNhZmFyaSAzLjAiOyB9CgkpOwoJCgkKCW9UZXN0LmZuVGVzdCggCgkJIk11bHRpLWNvbHVtbiBzb3J0aW5nICgyIGNvbHVtbikgLSBzdHJpbmcgYXNjIC8gaW50IGFzYyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImFhU29ydGluZyI6IFtbJzAnLCdhc2MnXSwgWyczJywnYXNjJ11dCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDMpJykuaHRtbCgpID09ICIxIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiTXVsdGktY29sdW1uIHNvcnRpbmcgKDIgY29sdW1uKSAtIHN0cmluZyBhc2MgLyBpbnQgZGVzYyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImFhU29ydGluZyI6IFtbJzAnLCdhc2MnXSwgWyczJywnZGVzYyddXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiMS45IjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiTXVsdGktY29sdW1uIHNvcnRpbmcgKDIgY29sdW1uKSAtIHN0cmluZyBkZXNjIC8gaW50IGFzYyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImFhU29ydGluZyI6IFtbJzAnLCdkZXNjJ10sIFsnMycsJ2FzYyddXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiMTI1LjUiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJNdWx0aS1jb2x1bW4gc29ydGluZyAoMiBjb2x1bW4pIC0gc3RyaW5nIGRlc2MgLyBpbnQgZGVzYyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImFhU29ydGluZyI6IFtbJzAnLCdkZXNjJ10sIFsnMycsJ2Rlc2MnXV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIjUyMi4xIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiTXVsdGktY29sdW1uIHNvcnRpbmcgKDMgY29sdW1uKSAtIHN0cmluZyBhc2MgLyBpbnQgYXNjIC8gc3RyaW5nIGFzYyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImFhU29ydGluZyI6IFtbJzAnLCdhc2MnXSwgWyczJywnYXNjJ10sIFsnMScsJ2FzYyddXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSg3KSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiRmlyZWZveCAxLjAiOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/aaSortingFixed.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAiYWFTb3J0aW5nRml4ZWQiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJhYURhdGEiOiBnYWFEYXRhCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiTm8gZml4ZWQgc29ydGluZyBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuIG9TZXR0aW5ncy5hYVNvcnRpbmdGaXhlZCA9PSBudWxsOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiRml4ZWQgc29ydGluZyBvbiBmaXJzdCBjb2x1bW4gKHN0cmluZy9hc2MpIHdpdGggdXNlciBzb3J0aW5nIG9uIHNlY29uZCBjb2x1bW4gKHN0cmluZy9hc2MpIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkiYWFTb3J0aW5nRml4ZWQiOiBbWycwJywnYXNjJ11dCgkJCX0gKTsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkNhbWlubyAxLjAiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJGaXhlZCBzb3J0aW5nIG9uIGZpcnN0IGNvbHVtbiAoc3RyaW5nL2FzYykgd2l0aCB1c2VyIHNvcnRpbmcgb24gc2Vjb25kIGNvbHVtbiAoc3RyaW5nL2Rlc2MpIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJTZWFtb25rZXkgMS4xIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiRml4ZWQgc29ydGluZyBvbiBmb3VydGggY29sdW1uIChpbnQvYXNjKSB3aXRoIHVzZXIgc29ydGluZyBvbiBzZWNvbmQgY29sdW1uIChzdHJpbmcvYXNjKSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImFhU29ydGluZ0ZpeGVkIjogW1snMycsJ2FzYyddXQoJCQl9ICk7CgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiRml4ZWQgc29ydGluZyBvbiBmb3VydGggY29sdW1uIChpbnQvYXNjKSB3aXRoIHVzZXIgc29ydGluZyBvbiBzZWNvbmQgY29sdW1uIChzdHJpbmcvZGVzYykiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIlBTUCBicm93c2VyIjsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/aoColumns.bSearchable.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAiYW9Db2x1bW5zLmJTZWFjaGFibGUiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJhYURhdGEiOiBnYWFEYXRhCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ29sdW1ucyBhcmUgc2VhcmNoYWJsZSBieSBkZWZhdWx0IiwKCQlmdW5jdGlvbiAoKSB7IG9UYWJsZS5mbkZpbHRlcigiQ2FtaW5vIik7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkubWF0Y2goL0NhbWluby8pOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJEaXNhYmxpbmcgc29ydGluZyBvbiBhIGNvbHVtbiByZW1vdmVzIGl0IGZyb20gdGhlIGdsb2JhbCBmaWx0ZXIiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJbnVsbCwKCQkJCQl7ICJiU2VhcmNoYWJsZSI6IGZhbHNlIH0sCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCQlvVGFibGUuZm5GaWx0ZXIoIkNhbWlubyIpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gIk5vIG1hdGNoaW5nIHJlY29yZHMgZm91bmQiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJEaXNhYmxlZCBvbiBvbmUgY29sdW1uIGhhcyBubyBlZmZlY3Qgb24gb3RoZXIgY29sdW1ucyIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUuZm5GaWx0ZXIoIldlYmtpdCIpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09ICJXZWJraXQiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJEaXNhYmxlIGZpbHRlcmluZyBvbiBtdWx0aXBsZSBjb2x1bW5zIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCXsgImJTZWFyY2hhYmxlIjogZmFsc2UgfSwKCQkJCQl7ICJiU2VhcmNoYWJsZSI6IGZhbHNlIH0sCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCQlvVGFibGUuZm5GaWx0ZXIoIldlYmtpdCIpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gIk5vIG1hdGNoaW5nIHJlY29yZHMgZm91bmQiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJGaWx0ZXIgb24gc2Vjb25kIGRpc2FibGVkIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUuZm5GaWx0ZXIoIkNhbWlubyIpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09ICJObyBtYXRjaGluZyByZWNvcmRzIGZvdW5kIjsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/aoColumns.bSortable.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAiYW9Db2x1bW5zLmJTb3J0YWJsZSIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImFhRGF0YSI6IGdhYURhdGEKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJBbGwgY29sdW1ucyBhcmUgc29ydGFibGUgYnkgZGVmYXVsdCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDYW4gZGlzYWJsZSBzb3J0aW5nIGZyb20gb25lIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQludWxsLAoJCQkJCXsgImJTb3J0YWJsZSI6IGZhbHNlIH0sCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSAhPSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkRpc2FibGVkIGNvbHVtbiBoYXMgbm8gc29ydGluZyBjbGFzcyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmhhc0NsYXNzKCJzb3J0aW5nX2FzYyIpID09IGZhbHNlOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJPdGhlciBjb2x1bW5zIGNhbiBzdGlsbCBzb3J0IiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDQpJykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoNCknKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoNCknKS5odG1sKCkgPT0gIlgiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJEaXNhYmxlIHNvcnRpbmcgb24gbXVsdGlwbGUgY29sdW1ucyAtIG5vIHNvcnRpbmcgY2xhc3NlcyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQludWxsLAoJCQkJCXsgImJTb3J0YWJsZSI6IGZhbHNlIH0sCgkJCQkJbnVsbCwKCQkJCQl7ICJiU29ydGFibGUiOiBmYWxzZSB9LAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYlJldHVybiA9IAoJCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5oYXNDbGFzcygic29ydGluZyIpIHx8CgkJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmhhc0NsYXNzKCJzb3J0aW5nIikKCQkJcmV0dXJuIGJSZXR1cm4gPT0gZmFsc2U7CgkJfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyBvbiBkaXNhYmxlZCBjb2x1bW4gMSBoYXMgbm8gZWZmZWN0IiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpICE9ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyBvbiBkaXNhYmxlZCBjb2x1bW4gMiBoYXMgbm8gZWZmZWN0IiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDMpJykuaHRtbCgpICE9ICItIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU2Vjb25kIHNvcnQgb24gZGlzYWJsZWQgY29sdW1uIDIgaGFzIG5vIGVmZmVjdCIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgzKScpLmh0bWwoKSAhPSAiLSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkV2ZW4gd2l0aCBtdWx0aXBsZSBkaXNhYmxlZCBzb3J0aW5nIGNvbHVtbnMgb3RoZXIgY29sdW1ucyBjYW4gc3RpbGwgc29ydCIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSg0KScpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDQpJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDQpJykuaHRtbCgpID09ICJYIjsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/aoColumns.bUseRendered.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAiYW9Db2x1bW5zLmJVc2VSZW5kZXJlZCIgKTsKCi8qIGJVc2VSZW5kZXJlZCBpcyB1c2VkIHRvIGFsdGVyIHNvcnRpbmcgZGF0YSwgaWYgZmFsc2UgdGhlbiB0aGUgb3JpZ2luYWwgZGF0YSBpcyB1c2VkIGZvcgogKiBzb3J0aW5nIHJhdGhlciB0aGFuIHRoZSByZW5kZXJlZCBkYXRhCiAqLwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgbVRtcCA9IDA7CgkKCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJhYURhdGEiOiBnYWFEYXRhLAoJCSJhb0NvbHVtbnMiOiBbCgkJCW51bGwsCgkJCXsgImZuUmVuZGVyIjogZnVuY3Rpb24gKGEpIHsKCQkJCWlmICggbVRtcCA9PSAwICkgewoJCQkJCW1UbXArKzsKCQkJCQlyZXR1cm4gImFhYSI7CgkJCQl9IGVsc2UKCQkJCQlyZXR1cm4gYS5hRGF0YVthLmlEYXRhQ29sdW1uXTsKCQkJfSB9LAoJCQludWxsLAoJCQludWxsLAoJCQludWxsCgkJXQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkRlZmF1bHQgZm9yIGJVc2VSZW5kZXJlZCBpcyB0cnVlIC0gcmVuZGVyZWQgZGF0YSBpcyB1c2VkIGZvciBzb3J0aW5nIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAnYWFhJzsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiV2hlbiBiVXNlUmVuZGVyZWQgaXMgZmFsc2UsIG9yaWdpbmFsIGRhdGEgaXMgdXNlZCBmb3Igc29ydGluZyIsCgkJZnVuY3Rpb24gKCkgewoJCQltVG1wID0gMDsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJbnVsbCwKCQkJCQl7IAoJCQkJCQkiYlVzZVJlbmRlcmVkIjogZmFsc2UsCgkJCQkJCSJmblJlbmRlciI6IGZ1bmN0aW9uIChhKSB7CgkJCQkJCQlpZiAoIG1UbXAgPT0gMCApIHsKCQkJCQkJCQltVG1wKys7CgkJCQkJCQkJcmV0dXJuICJhYWEiOwoJCQkJCQkJfSBlbHNlIHsKCQkJCQkJCQlyZXR1cm4gYS5hRGF0YVthLmlEYXRhQ29sdW1uXTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCX0sCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAnQWxsIG90aGVycyc7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiYlVzZVJlbmRlcmVkIHNldCB0byBmYWxzZSBvbiBvbmUgY29sdW1ucyBhbmQgdHJ1ZSAoZGVmYXVsdCkgb24gdHdvIG90aGVycyIsCgkJZnVuY3Rpb24gKCkgewoJCQltVG1wID0gMDsKCQkJdmFyIG1UbXAyID0gMDsKCQkJdmFyIG1UbXAzID0gMDsKCQkJCgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCXsKCQkJCQkJImZuUmVuZGVyIjogZnVuY3Rpb24gKGEpIHsKCQkJCQkJCWlmICggbVRtcCA9PSAwICkgewoJCQkJCQkJCW1UbXArKzsKCQkJCQkJCQlyZXR1cm4gImFhYTEiOwoJCQkJCQkJfSBlbHNlIHsKCQkJCQkJCQlyZXR1cm4gYS5hRGF0YVthLmlEYXRhQ29sdW1uXTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCX0sCgkJCQkJeyAKCQkJCQkJImJVc2VSZW5kZXJlZCI6IGZhbHNlLAoJCQkJCQkiZm5SZW5kZXIiOiBmdW5jdGlvbiAoYSkgewoJCQkJCQkJaWYgKCBtVG1wMiA9PSAwICkgewoJCQkJCQkJCW1UbXAyKys7CgkJCQkJCQkJcmV0dXJuICJhYWEyIjsKCQkJCQkJCX0gZWxzZSB7CgkJCQkJCQkJcmV0dXJuIGEuYURhdGFbYS5pRGF0YUNvbHVtbl07CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQl9LAoJCQkJCXsKCQkJCQkJImZuUmVuZGVyIjogZnVuY3Rpb24gKGEpIHsKCQkJCQkJCWlmICggbVRtcDMgPT0gMCApIHsKCQkJCQkJCQltVG1wMysrOwoJCQkJCQkJCXJldHVybiAienp6MyI7CgkJCQkJCQl9IGVsc2UgewoJCQkJCQkJCXJldHVybiBhLmFEYXRhW2EuaURhdGFDb2x1bW5dOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfSwKCQkJCQludWxsLAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gJ2FhYTEnOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJNdWx0aS1jb2x1bW4gcmVuZGVyaW5nIC0gMm5kIGNvbHVtbiBzb3J0aW5nIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAnQWxsIG90aGVycyc7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIk11bHRpLWNvbHVtbiByZW5kZXJpbmcgLSAzcmQgY29sdW1uIHNvcnRpbmciLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMiknKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgyKScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgyKScpLmh0bWwoKSA9PSAnenp6Myc7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIk11bHRpLWNvbHVtbiByZW5kZXJpbmcgLSA0dGggY29sdW1uIHNvcnRpbmciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMyknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDMpJykuaHRtbCgpID09ICctJzsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiTXVsdGktY29sdW1uIHJlbmRlcmluZyAtIDV0aCBjb2x1bW4gc29ydGluZyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSg0KScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoNCknKS5odG1sKCkgPT0gJ0EnOyB9CgkpOwoJCgkKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/aoColumns.bVisible.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAiYW9Db2x1bW5zLmJWaXNpYmxlIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkiYWFEYXRhIjogZ2FhRGF0YQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkFsbCBjb2x1bW5zIGFyZSB2aXNpYmxlIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQnKS5sZW5ndGggPT0gNTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2FuIGhpZGUgb25lIGNvbHVtbiBhbmQgaXQgcmVtb3ZlcyB0ZCBjb2x1bW4gZnJvbSBET00iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJbnVsbCwKCQkJCQl7ICJiVmlzaWJsZSI6IGZhbHNlIH0sCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQnKS5sZW5ndGggPT0gNDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2FuIGhpZGUgb25lIGNvbHVtbiBhbmQgaXQgcmVtb3ZlcyB0aGVhZCB0aCBjb2x1bW4gZnJvbSBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGgnKS5sZW5ndGggPT0gNDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2FuIGhpZGUgb25lIGNvbHVtbiBhbmQgaXQgcmVtb3ZlcyB0Zm9vdCB0aCBjb2x1bW4gZnJvbSBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGZvb3QgdHI6ZXEoMCkgdGgnKS5sZW5ndGggPT0gNDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiVGhlIGNvcnJlY3QgdGJvZHkgY29sdW1uIGhhcyBiZWVuIGhpZGRlbiIsCgkJZnVuY3Rpb24gKCkgewoJCQlvRGlzcGFjaGVyLmNsaWNrKCAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpWzBdLCB7ICdzaGlmdCc6IHRydWUgfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIganFOb2RlcyA9ICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkJyk7CgkJCXZhciBiUmV0dXJuID0gCgkJCQlqcU5vZGVzWzBdLmlubmVySFRNTCA9PSAiR2Vja28iICYmCgkJCQlqcU5vZGVzWzFdLmlubmVySFRNTCA9PSAiR25vbWUiICYmCgkJCQlqcU5vZGVzWzJdLmlubmVySFRNTCA9PSAiMS44IiAmJgoJCQkJanFOb2Rlc1szXS5pbm5lckhUTUwgPT0gIkEiOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuVGVzdCggCgkJIkNhbiBoaWRlIG11bHRpcGxlIGNvbHVtbnMgYW5kIGl0IHJlbW92ZXMgdGQgY29sdW1uIGZyb20gRE9NIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCW51bGwsCgkJCQkJeyAiYlZpc2libGUiOiBmYWxzZSB9LAoJCQkJCXsgImJWaXNpYmxlIjogZmFsc2UgfSwKCQkJCQludWxsLAoJCQkJCXsgImJWaXNpYmxlIjogZmFsc2UgfQoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZCcpLmxlbmd0aCA9PSAyOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJNdWx0aXBsZSBoaWRlIC0gcmVtb3ZlcyB0aGVhZCB0aCBjb2x1bW4gZnJvbSBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGgnKS5sZW5ndGggPT0gMjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiTXVsdGlwbGUgaGlkZSAtIHJlbW92ZXMgdGZvb3QgdGggY29sdW1uIGZyb20gRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRmb290IHRyOmVxKDApIHRoJykubGVuZ3RoID09IDI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIk11bHRpcGxlIGhpZGUgLSB0aGUgY29ycmVjdCB0Ym9keSBjb2x1bW5zIGhhdmUgYmVlbiBoaWRkZW4iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb0Rpc3BhY2hlci5jbGljayggJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKVswXSwgeyAnc2hpZnQnOiB0cnVlIH0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGpxTm9kZXMgPSAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZCcpOwoJCQl2YXIgYlJldHVybiA9IAoJCQkJanFOb2Rlc1swXS5pbm5lckhUTUwgPT0gIkdlY2tvIiAmJgoJCQkJanFOb2Rlc1sxXS5pbm5lckhUTUwgPT0gIjEiCgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/aoColumns.fnRender.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAiYW9Db2x1bW5zLmZuUmVuZGVyIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgbVRtcCA9IDA7Cgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkiYW9Db2x1bW5zIjogWwoJCQludWxsLAoJCQl7ICJmblJlbmRlciI6IGZ1bmN0aW9uIChhKSB7CgkJCQltVG1wKys7CgkJCQlyZXR1cm4gYS5hRGF0YVthLmlEYXRhQ29sdW1uXTsKCQkJfSB9LAoJCQludWxsLAoJCQludWxsLAoJCQludWxsCgkJXQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNpbmdsZSBjb2x1bW4gLSBmblJlbmRlciBpcyBjYWxsZWQgb25jZSBmb3IgZWFjaCByb3ciLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVRtcCA9PSA1NzsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ29uZmlybSB0aGF0IGZuUmVuZGVyIHBhc3NlcyB0d28gYXJndW1lbnRzIHdpdGggZm91ciBwYXJhbWV0ZXJzIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW1UbXAgPSB0cnVlOwoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQludWxsLAoJCQkJCXsgImZuUmVuZGVyIjogZnVuY3Rpb24gKGEpIHsKCQkJCQkJaWYgKCBhcmd1bWVudHMubGVuZ3RoICE9IDIgfHwgdHlwZW9mIGEuaURhdGFSb3c9PSd1bmRlZmluZWQnIHx8CgkJCQkJCSAJdHlwZW9mIGEuaURhdGFDb2x1bW49PSd1bmRlZmluZWQnIHx8IHR5cGVvZiBhLmFEYXRhPT0ndW5kZWZpbmVkJyB8fAoJCQkJCQkgCXR5cGVvZiBhLm1EYXRhUHJvcD09J3VuZGVmaW5lZCcgKQoJCQkJCQl7CgkJCQkJCQltVG1wID0gZmFsc2U7CgkJCQkJCX0KCQkJCQkJcmV0dXJuIGEuYURhdGFbYS5pRGF0YUNvbHVtbl07CgkJCQkJfSB9LAoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1UbXA7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJImZuUmVuZGVyIGlEYXRhQ29sdW1uIGlzIHRoZSBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsKCQkJbVRtcCA9IHRydWU7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCW51bGwsCgkJCQkJeyAiZm5SZW5kZXIiOiBmdW5jdGlvbiAoYSkgewoJCQkJCQlpZiAoIGEuaURhdGFDb2x1bW4gIT0gMSApCgkJCQkJCXsKCQkJCQkJCW1UbXAgPSBmYWxzZTsKCQkJCQkJfQoJCQkJCQlyZXR1cm4gYS5hRGF0YVthLmlEYXRhQ29sdW1uXTsKCQkJCQl9IH0sCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVRtcDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiZm5SZW5kZXIgYURhdGEgaXMgZGF0YSBhcnJheSBvZiBjb3JyZWN0IHNpemUiLAoJCWZ1bmN0aW9uICgpIHsKCQkJbVRtcCA9IHRydWU7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCW51bGwsCgkJCQkJeyAiZm5SZW5kZXIiOiBmdW5jdGlvbiAoYSkgewoJCQkJCQlpZiAoIGEuYURhdGEubGVuZ3RoICE9IDUgKQoJCQkJCQl7CgkJCQkJCQltVG1wID0gZmFsc2U7CgkJCQkJCX0KCQkJCQkJcmV0dXJuIGEuYURhdGFbYS5pRGF0YUNvbHVtbl07CgkJCQkJfSB9LAoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1UbXA7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlBhc3NlZCBiYWNrIGRhdGEgaXMgcHV0IGludG8gdGhlIERPTSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQludWxsLAoJCQkJCXsgImZuUmVuZGVyIjogZnVuY3Rpb24gKGEpIHsKCQkJCQkJcmV0dXJuICd1bml0dGVzdCc7CgkJCQkJfSB9LAoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICd1bml0dGVzdCc7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlBhc3NlZCBiYWNrIGRhdGEgaXMgcHV0IGludG8gdGhlIERPTSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQludWxsLAoJCQkJCW51bGwsCgkJCQkJeyAiZm5SZW5kZXIiOiBmdW5jdGlvbiAoYSkgewoJCQkJCQlyZXR1cm4gJ3VuaXR0ZXN0MSc7CgkJCQkJfSB9LAoJCQkJCXsgImZuUmVuZGVyIjogZnVuY3Rpb24gKGEpIHsKCQkJCQkJcmV0dXJuICd1bml0dGVzdDInOwoJCQkJCX0gfSwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDIpJykuaHRtbCgpID09ICd1bml0dGVzdDEnICYmCgkJCQkkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgzKScpLmh0bWwoKSA9PSAndW5pdHRlc3QyJzsKCQkJcmV0dXJuIGJSZXR1cm47IH0KCSk7CgkKCQoJCgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/aoColumns.iDataSort.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAiYW9Db2x1bW5zLmlEYXRhU29ydCIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBTaG91bGQga25vdyB0aGF0IHNvcnRpbmcgYWxyZWFkeSB3b3JrcyBieSBkZWZhdWx0IGZyb20gb3RoZXIgdGVzdHMsIHNvIHdlIGNhbiBqdW1wCgkgKiByaWdodCBpbiBoZXJlCgkgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJhYURhdGEiOiBnYWFEYXRhLAoJCSJhb0NvbHVtbnMiOiBbCgkJCW51bGwsCgkJCXsgImlEYXRhU29ydCI6IDQgfSwKCQkJbnVsbCwKCQkJbnVsbCwKCQkJbnVsbAoJCV0KCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIG9uIGZpcnN0IGNvbHVtbiBpcyB1bmVmZmVjdGVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09ICdHZWNrbyc7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgb24gc2Vjb25kIGNvbHVtbiBpcyB0aGUgb3JkZXIgb2YgdGhlIGZpZnRoIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSg0KScpLmh0bWwoKSA9PSAnQSc7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlJlc2VydmUgc29ydGluZyBvbiBzZWNvbmQgY29sdW1uIHVzZXMgZmlmdGggY29sdW1uIGFzIHdlbGwiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDQpJykuaHRtbCgpID09ICdYJzsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyBvbiA1dGggY29sdW1uIHJldGFpbnMgaXQncyBvd24gc29ydGluZyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSg0KScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoNCknKS5odG1sKCkgPT0gJ0EnOyB9CgkpOwoJCgkKCW9UZXN0LmZuVGVzdCggCgkJIlVzZSAybmQgY29sIGZvciBzb3J0aW5nIDV0aCBjb2wgYW5kIHZpYS12ZXJzYSAtIG5vIGVmZmVjdCBvbiBmaXJzdCBjb2wgc29ydGluZyIsCgkJZnVuY3Rpb24gKCkgewoJCQltVG1wID0gMDsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJbnVsbCwKCQkJCQl7ICJpRGF0YVNvcnQiOiA0IH0sCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCXsgImlEYXRhU29ydCI6IDEgfQoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAnR2Vja28nOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSIybmQgY29sIHNvcnRpbmcgdXNlcyBmaWZ0aCBjb2wiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDQpJykuaHRtbCgpID09ICdBJzsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiMm5kIGNvbCBzb3J0aW5nIHVzZXMgZmlmdGggY29sIC0gcmV2ZXJzZWQiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDQpJykuaHRtbCgpID09ICdYJzsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiNXRoIGNvbCBzb3J0aW5nIHVzZXMgMm5kIGNvbCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSg0KScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gJ0FsbCBvdGhlcnMnOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSI1dGggY29sIHNvcnRpbmcgdXNlcyAybmQgY29sIC0gcmV2ZXJzZWQiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoNCknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICdTZWFtb25rZXkgMS4xJzsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/aoColumns.sClass.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAiYW9Db2x1bW5zLnNDbGFzcyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImFhRGF0YSI6IGdhYURhdGEKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJCeSBkZWZhdWx0IHRoZSB0ZXN0IGNsYXNzIGhhc24ndCBiZWVuIGFwcGxpZWQgdG8gdGhlIGNvbHVtbiAoc2FuaXR5ISkiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMiknKS5oYXNDbGFzcygndW5pdHRlc3QnKSA9PSBmYWxzZTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQWRkIGEgY2xhc3MgdG8gYSBzaW5nbGUgY29sdW1uIC0gZmlyc3Qgcm93IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQl7ICJzQ2xhc3MiOiAndW5pdHRlc3QnIH0sCgkJCQkJbnVsbCwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDEpIHRkOmVxKDIpJykuaGFzQ2xhc3MoJ3VuaXR0ZXN0Jyk7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkFkZCBhIGNsYXNzIHRvIGEgc2luZ2xlIGNvbHVtbiAtIHRoaXJkIHJvdyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgzKSB0ZDplcSgyKScpLmhhc0NsYXNzKCd1bml0dGVzdCcpOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJBZGQgYSBjbGFzcyB0byBhIHNpbmdsZSBjb2x1bW4gLSBsYXN0IHJvdyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSg5KSB0ZDplcSgyKScpLmhhc0NsYXNzKCd1bml0dGVzdCcpOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJBZGQgYSBjbGFzcyB0byBhIHNpbmdsZSBjb2x1bW4gLSBoYXMgbm90IGFwcGxpZWQgdG8gb3RoZXIgY29sdW1ucyAtIDFzdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgzKSB0ZDplcSgwKScpLmhhc0NsYXNzKCd1bml0dGVzdCcpID09IGZhbHNlOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJBZGQgYSBjbGFzcyB0byBhIHNpbmdsZSBjb2x1bW4gLSBoYXMgbm90IGFwcGxpZWQgdG8gb3RoZXIgY29sdW1ucyAtIDV0aCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgzKSB0ZDplcSg0KScpLmhhc0NsYXNzKCd1bml0dGVzdCcpID09IGZhbHNlOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJBZGQgYSBjbGFzcyB0byBhIHNpbmdsZSBjb2x1bW4gLSBzZXZlbnRoIHJvdyAtIHNlY29uZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDYpIHRkOmVxKDIpJykuaGFzQ2xhc3MoJ3VuaXR0ZXN0Jyk7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkFkZCBhIGNsYXNzIHRvIGEgc2luZ2xlIGNvbHVtbiAtIGhhcyBub3QgYXBwbGllZCB0byBoZWFkZXIiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMykgdGg6ZXEoNCknKS5oYXNDbGFzcygndW5pdHRlc3QnKSA9PSBmYWxzZTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQWRkIGEgY2xhc3MgdG8gYSBzaW5nbGUgY29sdW1uIC0gaGFzIG5vdCBhcHBsaWVkIHRvIGZvb3RlciIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSgzKSB0aDplcSg0KScpLmhhc0NsYXNzKCd1bml0dGVzdCcpID09IGZhbHNlOyB9CgkpOwoJCgkKCW9UZXN0LmZuVGVzdCggCgkJIkNsYXNzIGRlZmluZWQgZm9yIG11bHRpcGxlIGNvbHVtbnMgLSBmaXJzdCByb3ciLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJeyAic0NsYXNzIjogJ3VuaXR0ZXN0MicgfSwKCQkJCQludWxsLAoJCQkJCW51bGwsCgkJCQkJeyAic0NsYXNzIjogJ3VuaXR0ZXN0MScgfSwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDMpIHRkOmVxKDApJykuaGFzQ2xhc3MoJ3VuaXR0ZXN0MicpICYmCgkJCQkkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSg4KSB0ZDplcSgzKScpLmhhc0NsYXNzKCd1bml0dGVzdDEnKTsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2xhc3MgZGVmaW5lZCBmb3IgbXVsdGlwbGUgY29sdW1ucyAtIGhhcyBub3QgYXBwbGllZCB0byBvdGhlciBjb2x1bW5zIC0gNXRoIDEiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoNCknKS5oYXNDbGFzcygndW5pdHRlc3QxJykgPT0gZmFsc2U7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNsYXNzIGRlZmluZWQgZm9yIG11bHRpcGxlIGNvbHVtbnMgLSBoYXMgbm90IGFwcGxpZWQgdG8gb3RoZXIgY29sdW1ucyAtIDV0aCAyIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDYpIHRkOmVxKDQpJykuaGFzQ2xhc3MoJ3VuaXR0ZXN0MicpID09IGZhbHNlOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/aoColumns.sName.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAiYW9Db2x1bW5zLnNOYW1lIiApOwoKLyogVGhpcyBoYXMgbm8gZWZmZWN0IGF0IGFsbCBpbiBET00gbWV0aG9kcyAtIHNvIHdlIGp1c3QgY2hlY2sgdGhhdCBpdCBoYXMgYXBwbGllZCB0aGUgbmFtZSAqLwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkiYW9Db2x1bW5zIjogWwoJCQludWxsLAoJCQludWxsLAoJCQludWxsLAoJCQl7ICJzTmFtZSI6ICd1bml0IHRlc3QnIH0sCgkJCW51bGwKCQldCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiTmFtZXMgYXJlIHN0b3JlZCBpbiB0aGUgY29sdW1ucyBvYmplY3QiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLmFvQ29sdW1uc1szXS5zTmFtZSA9PSJ1bml0IHRlc3QiOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/aoColumns.sTitle.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAiYW9Db2x1bW5zLnNUaXRsZSIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImFhRGF0YSI6IGdhYURhdGEKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJZiBub3QgZ2l2ZW4sIHRoZW4gdGhlIGNvbHVtbnMgdGl0bGVzIGFyZSBlbXB0eSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBqcU5vZGVzID0gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGgnKTsKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCWpxTm9kZXNbMF0uaW5uZXJIVE1MID09ICJSZW5kZXJpbmcgZW5naW5lIiAmJgoJCQkJanFOb2Rlc1sxXS5pbm5lckhUTUwgPT0gIkJyb3dzZXIiICYmCgkJCQlqcU5vZGVzWzJdLmlubmVySFRNTCA9PSAiUGxhdGZvcm0ocykiICYmCgkJCQlqcU5vZGVzWzNdLmlubmVySFRNTCA9PSAiRW5naW5lIHZlcnNpb24iICYmCgkJCQlqcU5vZGVzWzRdLmlubmVySFRNTCA9PSAiQ1NTIGdyYWRlIjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2FuIHNldCBhIHNpbmdsZSBjb2x1bW4gdGl0bGUgLSBhbmQgb3RoZXJzIGFyZSByZWFkIGZyb20gRE9NIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCW51bGwsCgkJCQkJeyAic1RpdGxlIjogJ3VuaXQgdGVzdCcgfSwKCQkJCQludWxsLAoJCQkJCW51bGwsCgkJCQkJbnVsbAoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBqcU5vZGVzID0gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGgnKTsKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCWpxTm9kZXNbMF0uaW5uZXJIVE1MID09ICJSZW5kZXJpbmcgZW5naW5lIiAmJgoJCQkJanFOb2Rlc1sxXS5pbm5lckhUTUwgPT0gInVuaXQgdGVzdCIgJiYKCQkJCWpxTm9kZXNbMl0uaW5uZXJIVE1MID09ICJQbGF0Zm9ybShzKSIgJiYKCQkJCWpxTm9kZXNbM10uaW5uZXJIVE1MID09ICJFbmdpbmUgdmVyc2lvbiIgJiYKCQkJCWpxTm9kZXNbNF0uaW5uZXJIVE1MID09ICJDU1MgZ3JhZGUiOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDYW4gc2V0IG11bHRpcGxlIGNvbHVtbiB0aXRsZXMiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJbnVsbCwKCQkJCQl7ICJzVGl0bGUiOiAndW5pdCB0ZXN0IDEnIH0sCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCXsgInNUaXRsZSI6ICd1bml0IHRlc3QgMicgfQoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBqcU5vZGVzID0gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGgnKTsKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCWpxTm9kZXNbMF0uaW5uZXJIVE1MID09ICJSZW5kZXJpbmcgZW5naW5lIiAmJgoJCQkJanFOb2Rlc1sxXS5pbm5lckhUTUwgPT0gInVuaXQgdGVzdCAxIiAmJgoJCQkJanFOb2Rlc1syXS5pbm5lckhUTUwgPT0gIlBsYXRmb3JtKHMpIiAmJgoJCQkJanFOb2Rlc1szXS5pbm5lckhUTUwgPT0gIkVuZ2luZSB2ZXJzaW9uIiAmJgoJCQkJanFOb2Rlc1s0XS5pbm5lckhUTUwgPT0gInVuaXQgdGVzdCAyIjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/aoColumns.sWidth.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAiYW9Db2x1bW5zLnNXaWR0aCIgKTsKCi8qIE5PVEUgLSB3ZSBuZWVkIHRvIGRpc2FibGUgdGhlIGF1dG8gd2lkdGggZm9yIHRoZSBtYWpvcml0eSBvZiB0aGVzZSB0ZXN0IGluIG9yZGVyIHRvIHByZWZvcm0gCiAqIHRoZXNlIHRlc3RzIGFzIHRoZSBhdXRvIHdpZHRoIHdpbGwgY29udmVydCB0aGUgd2lkdGggdG8gYSBweCB2YWx1ZS4gV2UgY2FuIGRvICdub24tZXhhY3QnIHRlc3RzCiAqIHdpdGggYXV0byB3aWR0aCBlbmFibGVkIGhvd2V2ZXIgdG8gZW5zdXJlIGl0IHNjYWxlcyBjb2x1bW5zIGFzIHJlcXVpcmVkCiAqLwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkiYkF1dG9XaWR0aCI6IGZhbHNlLAoJCSJhb0NvbHVtbnMiOiBbCgkJCW51bGwsCgkJCXsgInNXaWR0aCI6ICc0MCUnIH0sCgkJCW51bGwsCgkJCW51bGwsCgkJCW51bGwKCQldCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiV2l0aCBhdXRvIHdpZHRoIGRpc2FibGVkIHRoZSB3aWR0aCBmb3Igb25lIGNvbHVtbiBpcyBhcHBsZWQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKVswXS5zdHlsZS53aWR0aCA9PSAiNDAlIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiV2l0aCBhdXRvIHdpZHRoIGRpc2FibGVkIHRoZSB3aWR0aCBmb3Igb25lIGNvbHVtbiBpcyBhcHBsZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJiQXV0b1dpZHRoIjogZmFsc2UsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQl7ICJzV2lkdGgiOiAnMjAlJyB9LAoJCQkJCXsgInNXaWR0aCI6ICczMCUnIH0sCgkJCQkJbnVsbAoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBiUmV0dXJuID0KCQkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDIpJylbMF0uc3R5bGUud2lkdGggPT0gIjIwJSIgJiYKCQkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJylbMF0uc3R5bGUud2lkdGggPT0gIjMwJSI7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiV2l0aCBhdXRvIHdpZHRoLCBpdCB3aWxsIG1ha2UgdGhlIHNtYWxsZXN0IGNvbHVtbiB0aGUgbGFyZ2VzdCB3aXRoIHBlcmNlbnRhZ2Ugd2lkdGggZ2l2ZW4iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCW51bGwsCgkJCQkJeyAic1dpZHRoIjogJzQwJScgfSwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGFuVGhzID0gJCgnI2V4YW1wbGUgdGhlYWQgdGgnKTsKCQkJdmFyIGEwID0gYW5UaHNbMF0ub2Zmc2V0V2lkdGg7CgkJCXZhciBhMSA9IGFuVGhzWzFdLm9mZnNldFdpZHRoOwoJCQl2YXIgYTIgPSBhblRoc1syXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGEzID0gYW5UaHNbM10ub2Zmc2V0V2lkdGg7CgkJCXZhciBhNCA9IGFuVGhzWzRdLm9mZnNldFdpZHRoOwoJCQkKCQkJaWYgKCBhMz5hMCAmJiBhMz5hMSAmJiBhMz5hMiAmJiBhMz5hNCApCgkJCQlyZXR1cm4gdHJ1ZTsKCQkJZWxzZQoJCQkJcmV0dXJuIGZhbHNlOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/aoSearchCols.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAiYW9TZWFyY2hDb2xzIiApOwoKLyogV2UgY291bGQgYmUgaGVyZSBmb3JldmVyIHRlc3RpbmcgdGhpcyBvbmUsIHNvIHdlIHRlc3QgYSBsaW1pdGVkIHN1YnNldCBvbiBhIGNvdXBsZSBvZiBjb2x1bXMgKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImFhRGF0YSI6IGdhYURhdGEKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJEZWZhdWx0IHNob3VsZCBiZSB0byBoYXZlIGEgZW1wdHkgY29sdW1zIGFycmF5IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCW9TZXR0aW5ncy5hb1ByZVNlYXJjaENvbHNbMF0uc1NlYXJjaCA9PSAwICYmICFvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzWzBdLmJSZWdleCAmJgoJCQkJb1NldHRpbmdzLmFvUHJlU2VhcmNoQ29sc1sxXS5zU2VhcmNoID09IDAgJiYgIW9TZXR0aW5ncy5hb1ByZVNlYXJjaENvbHNbMV0uYlJlZ2V4ICYmCgkJCQlvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzWzJdLnNTZWFyY2ggPT0gMCAmJiAhb1NldHRpbmdzLmFvUHJlU2VhcmNoQ29sc1syXS5iUmVnZXggJiYKCQkJCW9TZXR0aW5ncy5hb1ByZVNlYXJjaENvbHNbM10uc1NlYXJjaCA9PSAwICYmICFvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzWzNdLmJSZWdleCAmJgoJCQkJb1NldHRpbmdzLmFvUHJlU2VhcmNoQ29sc1s0XS5zU2VhcmNoID09IDAgJiYgIW9TZXR0aW5ncy5hb1ByZVNlYXJjaENvbHNbNF0uYlJlZ2V4OwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuVGVzdCggCgkJIlNlYXJjaCBvbiBhIHNpbmdsZSBjb2x1bW4gLSBubyByZWdleCBzdGF0ZW1lbnQgZ2l2ZW4iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJhb1NlYXJjaENvbHMiOiBbCgkJCQkJbnVsbCwKCQkJCQl7ICJzU2VhcmNoIjogIk1vemlsbGEiIH0sCgkJCQkJbnVsbCwKCQkJCQl7ICJzU2VhcmNoIjogIjEiIH0sCgkJCQkJbnVsbAoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9pbmZvJykuaHRtbCgpID09ICJTaG93aW5nIDEgdG8gOSBvZiA5IGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTZWFyY2ggb24gdHdvIGNvbHVtbnMgLSBubyByZWdleCBzdGF0ZW1lbnQgZ2l2ZW4iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJhb1NlYXJjaENvbHMiOiBbCgkJCQkJbnVsbCwKCQkJCQl7ICJzU2VhcmNoIjogIk1vemlsbGEiIH0sCgkJCQkJbnVsbCwKCQkJCQl7ICJzU2VhcmNoIjogIjEuNSIgfSwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDMpJykuaHRtbCgpID09ICIxLjUiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTZWFyY2ggb24gc2luZ2xlIGNvbHVtbiAtIGVzY2FwZSByZWdleCBmYWxzZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImFvU2VhcmNoQ29scyI6IFsKCQkJCQl7ICJzU2VhcmNoIjogIi4qTUwiLCAiYkVzY2FwZVJlZ2V4IjogZmFsc2UgfSwKCQkJCQludWxsLAoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlX2luZm8nKS5odG1sKCkgPT0gIlNob3dpbmcgMSB0byAzIG9mIDMgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNlYXJjaCBvbiB0d28gY29sdW1ucyAtIGVzY2FwZSByZWdleCBmYWxzZSBvbiBmaXJzdCwgdHJ1ZSBvbiBzZWNvbmQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJhb1NlYXJjaENvbHMiOiBbCgkJCQkJeyAic1NlYXJjaCI6ICIuKk1MIiwgImJFc2NhcGVSZWdleCI6IGZhbHNlIH0sCgkJCQkJeyAic1NlYXJjaCI6ICIzLjMiLCAiYkVzY2FwZVJlZ2V4IjogdHJ1ZSB9LAoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICJLb25xdXJlcm9yIDMuMyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNlYXJjaCBvbiB0d28gY29sdW1ucyAobm8gcmVjb3JkcykgLSBlc2NhcGUgcmVnZXggZmFsc2Ugb24gZmlyc3QsIHRydWUgb24gc2Vjb25kIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkiYW9TZWFyY2hDb2xzIjogWwoJCQkJCXsgInNTZWFyY2giOiAiLipNTCIsICJiRXNjYXBlUmVnZXgiOiBmYWxzZSB9LAoJCQkJCXsgInNTZWFyY2giOiAiQWxsYW4iLCAiYkVzY2FwZVJlZ2V4IjogdHJ1ZSB9LAoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09ICJObyBtYXRjaGluZyByZWNvcmRzIGZvdW5kIjsgfQoJKTsKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/asStripClasses.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAiYXNTdHJpcGVDbGFzc2VzIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJhYURhdGEiOiBnYWFEYXRhCgl9ICk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkRlZmF1bHQgcm93IHN0cmlwaW5nIGlzIGFwcGxpZWQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCknKS5oYXNDbGFzcygnb2RkJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDEpJykuaGFzQ2xhc3MoJ2V2ZW4nKSAmJgoJCQkgICAgICAgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMiknKS5oYXNDbGFzcygnb2RkJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDMpJykuaGFzQ2xhc3MoJ2V2ZW4nKTsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJSb3cgc3RyaXBpbmcgb24gdGhlIHNlY29uZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApJykuaGFzQ2xhc3MoJ29kZCcpICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKScpLmhhc0NsYXNzKCdldmVuJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDIpJykuaGFzQ2xhc3MoJ29kZCcpICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgzKScpLmhhc0NsYXNzKCdldmVuJyk7CgkJfQoJKTsKCQoJLyogTm8gc3RyaXBpbmcgKi8KCW9UZXN0LmZuVGVzdCggCgkJIk5vIHJvdyBzdHJpcGluZyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImFzU3RyaXBlQ2xhc3NlcyI6IFtdCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApJylbMF0uY2xhc3NOYW1lID09ICIiICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKScpWzBdLmNsYXNzTmFtZSA9PSAiIiAmJgoJCQkgICAgICAgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMiknKVswXS5jbGFzc05hbWUgPT0gIiIgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDMpJylbMF0uY2xhc3NOYW1lID09ICIiOwoJCX0KCSk7CgkKCS8qIEN1c3RvbSBzdHJpcGluZyAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiQ3VzdG9tIHN0cmlwaW5nIFsyXSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImFzU3RyaXBlQ2xhc3NlcyI6IFsgJ3Rlc3QxJywgJ3Rlc3QyJyBdCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApJykuaGFzQ2xhc3MoJ3Rlc3QxJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDEpJykuaGFzQ2xhc3MoJ3Rlc3QyJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDIpJykuaGFzQ2xhc3MoJ3Rlc3QxJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDMpJykuaGFzQ2xhc3MoJ3Rlc3QyJyk7CgkJfQoJKTsKCQoJCgkvKiBsb25nIGFycmF5IG9mIHN0cmlwaW5nICovCglvVGVzdC5mblRlc3QoIAoJCSJDdXN0b20gc3RyaXBpbmcgWzRdIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkiYXNTdHJpcGVDbGFzc2VzIjogWyAndGVzdDEnLCAndGVzdDInLCAndGVzdDMnLCAndGVzdDQnIF0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCknKS5oYXNDbGFzcygndGVzdDEnKSAmJgoJCQkgICAgICAgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMSknKS5oYXNDbGFzcygndGVzdDInKSAmJgoJCQkgICAgICAgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMiknKS5oYXNDbGFzcygndGVzdDMnKSAmJgoJCQkgICAgICAgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMyknKS5oYXNDbGFzcygndGVzdDQnKTsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDdXN0b20gc3RyaXBpbmcgaXMgcmVzdGFydGVkIG9uIHNlY29uZCBwYWdlIFsyXSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKScpLmhhc0NsYXNzKCd0ZXN0MScpICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKScpLmhhc0NsYXNzKCd0ZXN0MicpICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgyKScpLmhhc0NsYXNzKCd0ZXN0MycpICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgzKScpLmhhc0NsYXNzKCd0ZXN0NCcpOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/bAutoWidth.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAiYkF1dG9XaWR0aCIgKTsKCi8qIEl0J3MgYWN0dWFsbHkgYSBsaXR0bGUgdHJpY2t5IHRvIHRlc3QgdGhpcy4gV2UgY2FuJ3QgdGVzdCBhYnNvbHV0ZSBudW1iZXJzIGJlY2F1c2UKICogZGlmZmVyZW50IGJyb3dzZXJzIGFuZCBkaWZmZXJlbnQgcGxhdGZvcm1zIHdpbGwgcmVuZGVyIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1ucyBzbGlnaHRseQogKiBkaWZmZXJlbnRseS4gSG93ZXZlciwgd2UgY2VydGFpbmx5IGNhbiB0ZXN0IHRoZSBwcmluY2lwbGUgb2Ygd2hhdCBzaG91bGQgaGFwcGVuIChjb2x1bW4gCiAqIHdpZHRoIGRvZXNuJ3QgY2hhbmdlIG92ZXIgcGFnZXMpCiAqLwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkiYWFEYXRhIjogZ2FhRGF0YQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkF1dG8gd2lkdGggaXMgZW5hYmxlZCBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vRmVhdHVyZXMuYkF1dG9XaWR0aDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiRmlyc3QgY29sdW1uIGhhcyBhIHdpZHRoIGFzc2lnbmVkIHRvIGl0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDApJykuYXR0cignc3R5bGUnKS5tYXRjaCgvd2lkdGgvaSk7IH0KCSk7CgkKCS8qCglUaGlzIHdvdWxkIHNlZW0gbGlrZSBhIGJldHRlciB0ZXN0IC0gYnV0IHRoZXJlIGFwcGVhciB0byBiZSBkaWZmaWN1bHRpZXMgd2l0aCB0YWJsZXMKCXdoaWNoIGFyZSBiaWdnZXIgKGNhbGN1bGF0ZWQpIHRoYW4gdGhlcmUgaXMgYWN0dWFsbHkgcm9vbSBmb3IuIEkgc3VzcGVjdCB0aGlzIGlzIGFjdHVhbGx5CglhIGJ1ZyBpbiBkYXRhdGFibGVzCglvVGVzdC5mblRlc3QoIAoJCSJDaGVjayBjb2x1bW4gd2lkdGhzIG9uIGZpcnN0IHBhZ2UgbWF0Y2ggc2Vjb25kIHBhZ2UiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYW5UaHMgPSAkKCcjZXhhbXBsZSB0aGVhZCB0aCcpOwoJCQl2YXIgYTAgPSBhblRoc1swXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGExID0gYW5UaHNbMV0ub2Zmc2V0V2lkdGg7CgkJCXZhciBhMiA9IGFuVGhzWzJdLm9mZnNldFdpZHRoOwoJCQl2YXIgYTMgPSBhblRoc1szXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGE0ID0gYW5UaHNbNF0ub2Zmc2V0V2lkdGg7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCQl2YXIgYjAgPSBhblRoc1swXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGIxID0gYW5UaHNbMV0ub2Zmc2V0V2lkdGg7CgkJCXZhciBiMiA9IGFuVGhzWzJdLm9mZnNldFdpZHRoOwoJCQl2YXIgYjMgPSBhblRoc1szXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGI0ID0gYW5UaHNbNF0ub2Zmc2V0V2lkdGg7CgkJCWNvbnNvbGUubG9nKCBhMCwgYjAsIGExLCBiMSwgYTIsIGIyLCBhMywgYjMgKTsKCQkJaWYgKCBhMD09YjAgJiYgYTE9PWIxICYmIGEyPT1iMiAmJiBhMz09YjMgKQoJCQkJcmV0dXJuIHRydWU7CgkJCWVsc2UKCQkJCXJldHVybiBmYWxzZTsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDaGVjayBjb2x1bW4gd2lkdGhzIG9uIHNlY29uZCBwYWdlIG1hdGNoIHRoaWQgcGFnZSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBhblRocyA9ICQoJyNleGFtcGxlIHRoZWFkIHRoJyk7CgkJCXZhciBhMCA9IGFuVGhzWzBdLm9mZnNldFdpZHRoOwoJCQl2YXIgYTEgPSBhblRoc1sxXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGEyID0gYW5UaHNbMl0ub2Zmc2V0V2lkdGg7CgkJCXZhciBhMyA9IGFuVGhzWzNdLm9mZnNldFdpZHRoOwoJCQl2YXIgYTQgPSBhblRoc1s0XS5vZmZzZXRXaWR0aDsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJCXZhciBiMCA9IGFuVGhzWzBdLm9mZnNldFdpZHRoOwoJCQl2YXIgYjEgPSBhblRoc1sxXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGIyID0gYW5UaHNbMl0ub2Zmc2V0V2lkdGg7CgkJCXZhciBiMyA9IGFuVGhzWzNdLm9mZnNldFdpZHRoOwoJCQl2YXIgYjQgPSBhblRoc1s0XS5vZmZzZXRXaWR0aDsKCQkJaWYgKCBhMD09YjAgJiYgYTE9PWIxICYmIGEyPT1iMiAmJiBhMz09YjMgKQoJCQkJcmV0dXJuIHRydWU7CgkJCWVsc2UKCQkJCXJldHVybiBmYWxzZTsKCQl9CgkpOwoJKi8KCQoJLyogQ2hlY2sgY2FuIGRpc2FibGUgKi8KCW9UZXN0LmZuVGVzdCggCgkJIkF1dG8gd2lkdGggY2FuIGJlIGRpc2FibGVkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkiYkF1dG9XaWR0aCI6IGZhbHNlCgkJCX0gKTsKCSAJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0ZlYXR1cmVzLmJBdXRvV2lkdGggPT0gZmFsc2U7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkZpcnN0IGNvbHVtbiBkb2VzIG5vdCBoYXZlIGEgd2lkdGggYXNzaWduZWQgdG8gaXQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMCknKS5hdHRyKCdzdHlsZScpID09IG51bGw7IH0KCSk7CgkKCS8qCglvVGVzdC5mblRlc3QoIAoJCSJDaGVjayBjb2x1bW4gd2lkdGhzIG9uIGZpcnN0IHBhZ2UgZG8gbm90IG1hdGNoIHNlY29uZCBwYWdlIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGFuVGhzID0gJCgnI2V4YW1wbGUgdGhlYWQgdGgnKTsKCQkJdmFyIGEwID0gYW5UaHNbMF0ub2Zmc2V0V2lkdGg7CgkJCXZhciBhMSA9IGFuVGhzWzFdLm9mZnNldFdpZHRoOwoJCQl2YXIgYTIgPSBhblRoc1syXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGEzID0gYW5UaHNbM10ub2Zmc2V0V2lkdGg7CgkJCXZhciBhNCA9IGFuVGhzWzRdLm9mZnNldFdpZHRoOwoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQkJdmFyIGIwID0gYW5UaHNbMF0ub2Zmc2V0V2lkdGg7CgkJCXZhciBiMSA9IGFuVGhzWzFdLm9mZnNldFdpZHRoOwoJCQl2YXIgYjIgPSBhblRoc1syXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGIzID0gYW5UaHNbM10ub2Zmc2V0V2lkdGg7CgkJCXZhciBiNCA9IGFuVGhzWzRdLm9mZnNldFdpZHRoOwoJCQlpZiAoIGEwPT1iMCAmJiBhMT09YjEgJiYgYTI9PWIyICYmIGEzPT1iMyApCgkJCQlyZXR1cm4gZmFsc2U7CgkJCWVsc2UKCQkJCXJldHVybiB0cnVlOwoJCX0KCSk7CgkqLwoJCgkvKiBFbmFibGUgbWFrZXMgbm8gZGlmZmVyZW5jZSAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiQXV0byB3aWR0aCBlbmFibGVkIG92ZXJyaWRlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkiYkF1dG9XaWR0aCI6IHRydWUKCQkJfSApOwoJIAkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vRmVhdHVyZXMuYkF1dG9XaWR0aDsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/bFilter.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAiYkZpbHRlciIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkiYWFEYXRhIjogZ2FhRGF0YQoJfSApOwoJCglvVGVzdC5mblRlc3QoIAoJCSJGaWx0ZXJpbmcgZGl2IGV4aXN0cyBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2ZpbHRlcicpICE9IG51bGw7IH0KCSk7CgkKCS8qIENoZWNrIGNhbiBkaXNhYmxlICovCglvVGVzdC5mblRlc3QoIAoJCSJGbHRlcmluZyBjYW4gYmUgZGlzYWJsZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJiRmlsdGVyIjogZmFsc2UKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfZmlsdGVyJykgPT0gbnVsbDsgfQoJKTsKCQoJLyogRW5hYmxlIG1ha2VzIG5vIGRpZmZlcmVuY2UgKi8KCW9UZXN0LmZuVGVzdCggCgkJIkZpbHRlcmluZyBlbmFibGVkIG92ZXJyaWRlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkiYkZpbHRlciI6IHRydWUKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfZmlsdGVyJykgIT0gbnVsbDsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/bInfo.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAiYkluZm8iICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImFhRGF0YSI6IGdhYURhdGEKCX0gKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiSW5mbyBkaXYgZXhpc3RzIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpICE9IG51bGw7IH0KCSk7CgkKCS8qIENoZWNrIGNhbiBkaXNhYmxlICovCglvVGVzdC5mblRlc3QoIAoJCSJJbmZvIGNhbiBiZSBkaXNhYmxlZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImJJbmZvIjogZmFsc2UKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpID09IG51bGw7IH0KCSk7CgkKCS8qIEVuYWJsZSBtYWtlcyBubyBkaWZmZXJlbmNlICovCglvVGVzdC5mblRlc3QoIAoJCSJJbmZvIGVuYWJsZWQgb3ZlcnJpZGUiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJiSW5mbyI6IHRydWUKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpICE9IG51bGw7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/bLengthChange.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAiYkxlbmd0aENoYW5nZSIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkiYWFEYXRhIjogZ2FhRGF0YQoJfSApOwoJCglvVGVzdC5mblRlc3QoIAoJCSJMZW5ndGggZGl2IGV4aXN0cyBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2xlbmd0aCcpICE9IG51bGw7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRm91ciBkZWZhdWx0IG9wdGlvbnMiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIG9wdGlvbiIpLmxlbmd0aCA9PSA0OyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkRlZmF1bHQgb3B0aW9ucyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBvcHRzID0gJCgic2VsZWN0W25hbWU9J2V4YW1wbGVfbGVuZ3RoJ10gb3B0aW9uIik7CgkJCXJldHVybiBvcHRzWzBdLmdldEF0dHJpYnV0ZSgndmFsdWUnKSA9PSAxMCAmJiBvcHRzWzFdLmdldEF0dHJpYnV0ZSgndmFsdWUnKSA9PSAyNSAmJgoJCQkJb3B0c1syXS5nZXRBdHRyaWJ1dGUoJ3ZhbHVlJykgPT0gNTAgJiYgb3B0c1szXS5nZXRBdHRyaWJ1dGUoJ3ZhbHVlJykgPT0gMTAwOwoJCX0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mbyB0YWtlcyBsZW5ndGggaW50byBhY2NvdW50IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCS8qIENoZWNrIGNhbiBkaXNhYmxlICovCglvVGVzdC5mblRlc3QoIAoJCSJDaGFuZ2UgbGVuZ3RoIGNhbiBiZSBkaXNhYmxlZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImJMZW5ndGhDaGFuZ2UiOiBmYWxzZQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9sZW5ndGgnKSA9PSBudWxsOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHRha2VzIGxlbmd0aCBkaXNhYmxlZCBpbnRvIGFjY291bnQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJLyogRW5hYmxlIG1ha2VzIG5vIGRpZmZlcmVuY2UgKi8KCW9UZXN0LmZuVGVzdCggCgkJIkxlbmd0aCBjaGFuZ2UgZW5hYmxlZCBvdmVycmlkZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImJMZW5ndGhDaGFuZ2UiOiB0cnVlCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2xlbmd0aCcpICE9IG51bGw7IH0KCSk7CgkKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/bPaginate.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAiYlBhZ2luYXRlIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJhYURhdGEiOiBnYWFEYXRhCgl9ICk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlBhZ2lhbnRpb24gZGl2IGV4aXN0cyBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3BhZ2luYXRlJykgIT0gbnVsbDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiBkaXYgdGFrZXMgcGFnaW5nIGludG8gYWNjb3VudCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCgkvKiBDaGVjayBjYW4gZGlzYWJsZSAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiUGFnaWFudGlvbiBjYW4gYmUgZGlzYWJsZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJiUGFnaW5hdGUiOiBmYWxzZQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wYWdpbmF0ZScpID09IG51bGw7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gZGl2IHRha2VzIHBhZ2luZyBkaXNhYmxlZCBpbnRvIGFjY291bnQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byA1NyBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJLyogRW5hYmxlIG1ha2VzIG5vIGRpZmZlcmVuY2UgKi8KCW9UZXN0LmZuVGVzdCggCgkJIlBhZ2lhbnRpb24gZW5hYmxlZCBvdmVycmlkZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImJQYWdpbmF0ZSI6IHRydWUKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcGFnaW5hdGUnKSAhPSBudWxsOyB9CgkpOwoJCgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/bProcessing.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAiYlByb2Nlc3NpbmciICk7CgovKiBJdCdzIGFjdHVhbGx5IGEgYml0IGhhcmQgdG8gc2V0IHRoaXMgb25lIGR1ZSB0byB0aGUgZmFjdCB0aGF0IGl0IHdpbGwgb25seSBiZSBzaG93bgogKiB3aGVuIERhdGFUYWJsZXMgaXMgZG9pbmcgc29tZSBraW5kIG9mIHByb2Nlc3NpbmcuIFRoZSBzZXJ2ZXItc2lkZSBwcm9jZXNzaW5nIGlzIGEgYml0CiAqIGJldHRlciB0byB0ZXN0IHRoaXMgdGhhbiBoZXJlIC0gc28gd2UganVzdCB0aGUgaW50ZXJhbCBmdW5jdGlvbnMgdG8gZW5hYmxlIGl0IGFuZCBjaGVjawogKiB0aGF0IGl0IGlzIGF2YWlsYWJsZQogKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImFhRGF0YSI6IGdhYURhdGEKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJQcm9jZXNzaW5nIGlzIG9mZiBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vRmVhdHVyZXMuYlByb2Nlc3NpbmcgPT0gZmFsc2U7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlByb2Nlc3NpbmcgZGl2IGlzIG5vdCBpbiB0aGUgRE9NIiwKCQlmdW5jdGlvbiAoKSB7IG9UYWJsZS5vQXBpLl9mblByb2Nlc3NpbmdEaXNwbGF5KCBvU2V0dGluZ3MsIHRydWUgKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wcm9jZXNzaW5nJykgPT0gbnVsbDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUHJvY2Vzc2luZyBkaXYgY2Fubm90IGJlIHNob3duIiwKCQlmdW5jdGlvbiAoKSB7IG9UYWJsZS5vQXBpLl9mblByb2Nlc3NpbmdEaXNwbGF5KCBvU2V0dGluZ3MsIHRydWUgKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wcm9jZXNzaW5nJykgPT0gbnVsbDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUHJvY2Vzc2luZyBkaXYgY2Fubm90IGJlIGhpZGRlbiIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUub0FwaS5fZm5Qcm9jZXNzaW5nRGlzcGxheSggb1NldHRpbmdzLCBmYWxzZSApOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3Byb2Nlc3NpbmcnKSA9PSBudWxsOyB9CgkpOwoJCgkKCS8qIENoZWNrIGNhbiBkaXNhYmxlICovCglvVGVzdC5mblRlc3QoIAoJCSJQcm9jZXNzaW5nIGNhbiBiZSBlbmFibGVkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkiYlByb2Nlc3NpbmciOiB0cnVlCgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vRmVhdHVyZXMuYlByb2Nlc3NpbmcgPT0gdHJ1ZTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUHJvY2Vzc2luZyBkaXYgaXMgaW4gdGhlIERPTSIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUub0FwaS5fZm5Qcm9jZXNzaW5nRGlzcGxheSggb1NldHRpbmdzLCB0cnVlICk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcHJvY2Vzc2luZycpOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJQcm9jZXNzaW5nIGRpdiBpcyBoaWRkZW4gYnkgZGVmYXVsdCIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUub0FwaS5fZm5Qcm9jZXNzaW5nRGlzcGxheSggb1NldHRpbmdzLCB0cnVlICk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcHJvY2Vzc2luZycpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUHJvY2Vzc2luZyBkaXYgY2FuIGJlIHNob3duIiwKCQlmdW5jdGlvbiAoKSB7IG9UYWJsZS5vQXBpLl9mblByb2Nlc3NpbmdEaXNwbGF5KCBvU2V0dGluZ3MsIHRydWUgKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wcm9jZXNzaW5nJykuc3R5bGUudmlzaWJpbGl0eSA9ICJ2aXNpYmxlIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUHJvY2Vzc2luZyBkaXYgY2FuIGJlIGhpZGRlbiIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUub0FwaS5fZm5Qcm9jZXNzaW5nRGlzcGxheSggb1NldHRpbmdzLCBmYWxzZSApOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3Byb2Nlc3NpbmcnKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7IH0KCSk7CgkKCS8qIEVuYWJsZSBtYWtlcyBubyBkaWZmZXJlbmNlICovCglvVGVzdC5mblRlc3QoIAoJCSJQcm9jZXNzaW5nIGRpc2FibGVkIG92ZXJyaWRlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkiYlByb2Nlc3NpbmciOiBmYWxzZQoJCQl9ICk7CgkJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0ZlYXR1cmVzLmJQcm9jZXNzaW5nID09IGZhbHNlOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJQcm9jZXNzaW5nIGRpdiBpcyBub3QgaW4gdGhlIERPTSIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUub0FwaS5fZm5Qcm9jZXNzaW5nRGlzcGxheSggb1NldHRpbmdzLCB0cnVlICk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcHJvY2Vzc2luZycpID09IG51bGw7IH0KCSk7CgkKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/bServerSide.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAiYlNlcnZlclNpZGUiICk7CgovKiBOb3QgaW50ZXJlc3RlZCBpbiBzZXJ2ZXItc2lkZSBwcm9jZXNzaW5nIGhlcmUgb3RoZXIgdGhhbiB0byBjaGVjayB0aGF0IGl0IGlzIG9mZiAqLwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkiYWFEYXRhIjogZ2FhRGF0YQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNlcnZlciBzaWRlIGlzIG9mZiBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vRmVhdHVyZXMuYlNlcnZlclNpZGUgPT0gZmFsc2U7IH0KCSk7CgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/bSort.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAiYlNvcnQiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImFhRGF0YSI6IGdhYURhdGEKCX0gKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyBpcyBvbiBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDApJykuaHRtbCgpID09ICJHZWNrbyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgQXNjIGJ5IGRlZmF1bHQgY2xhc3MgYXBwbGllZCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgwKScpLmhhc0NsYXNzKCJzb3J0aW5nX2FzYyIpOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkNsaWNrIG9uIHNlY29uZCBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyBjbGFzcyByZW1vdmVkIGZyb20gZmlyc3QgY29sdW1uIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDApJykuaGFzQ2xhc3MoInNvcnRpbmdfYXNjIikgIT0gdHJ1ZTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyBhc2MgY2xhc3MgYXBwbGllZCB0byBzZWNvbmQgY29sdW1uIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuaGFzQ2xhc3MoInNvcnRpbmdfYXNjIik7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiUmV2ZXJzZSBvbiBzZWNvbmQgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiU2VhbW9ua2V5IDEuMSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgYWNzIGNsYXNzIHJlbW92ZWQgZnJvbSBzZWNvbmQgY29sdW1uIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuaGFzQ2xhc3MoInNvcnRpbmdfYXNjIikgIT0gdHJ1ZTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyBkZXNjIGNsYXNzIGFwcGxpZWQgdG8gc2Vjb25kIGNvbHVtbiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmhhc0NsYXNzKCJzb3J0aW5nX2Rlc2MiKTsgfQoJKTsKCQoJLyogQ2hlY2sgY2FuIGRpc2FibGUgKi8KCW9UZXN0LmZuVGVzdCggCgkJIlBhZ2lhbnRpb24gY2FuIGJlIGRpc2FibGVkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkiYlNvcnQiOiBmYWxzZQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiNCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiQ2xpY2sgb24gc2Vjb25kIGNvbHVtbiBoYXMgbm8gZWZmZWN0IiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiNCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiUmV2ZXJzZSBvbiBzZWNvbmQgY29sdW1uIGhhcyBubyBlZmZlY3QiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDMpJykuaHRtbCgpID09ICI0IjsgfQoJKTsKCQoJLyogRW5hYmxlIG1ha2VzIG5vIGRpZmZlcmVuY2UgKi8KCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgZW5hYmxlZCBvdmVycmlkZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImJTb3J0IjogdHJ1ZQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiR2Vja28iOyB9CgkpOwoJCgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/bSortClasses.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAiYlNvcnRDbGFzc2VzIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJhYURhdGEiOiBnYWFEYXRhCgl9ICk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgY2xhc3NlcyBhcmUgYXBwbGllZCBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMScpOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIGNsYXNzZXMgYXJlIGFwcGxpZWQgdG8gYWxsIHJlcXVpcmVkIGNlbGxzIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDcpIHRkOmVxKDApJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMScpOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIGNsYXNzZXMgYXJlIG5vdCBhcHBsaWVkIHRvIG5vbi1zb3J0aW5nIGNvbHVtbnMiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5oYXNDbGFzcygnc29ydGluZ18xJykgPT0gZmFsc2U7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgbXVsdGktY29sdW1uIC0gYWRkIGNvbHVtbiAxIiwKCQlmdW5jdGlvbiAoKSB7IAoJCQlvRGlzcGFjaGVyLmNsaWNrKCAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpWzBdLCB7ICdzaGlmdCc6IHRydWUgfSApOyB9LAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMScpICYmCgkJCQkJCSAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmhhc0NsYXNzKCdzb3J0aW5nXzInKTsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIG11bHRpLWNvbHVtbiAtIGFkZCBjb2x1bW4gMiIsCgkJZnVuY3Rpb24gKCkgeyAKCQkJb0Rpc3BhY2hlci5jbGljayggJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMiknKVswXSwgeyAnc2hpZnQnOiB0cnVlIH0gKTsgfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmhhc0NsYXNzKCdzb3J0aW5nXzEnKSAmJgoJCQkJCQkgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5oYXNDbGFzcygnc29ydGluZ18yJykgJiYKCQkJCQkJICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDIpJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMycpOwoJCX0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgbXVsdGktY29sdW1uIC0gYWRkIGNvbHVtbiAzIiwKCQlmdW5jdGlvbiAoKSB7IAoJCQlvRGlzcGFjaGVyLmNsaWNrKCAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpWzBdLCB7ICdzaGlmdCc6IHRydWUgfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5oYXNDbGFzcygnc29ydGluZ18xJykgJiYKCQkJCQkJICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMicpICYmCgkJCQkJCSAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgyKScpLmhhc0NsYXNzKCdzb3J0aW5nXzMnKSAmJgoJCQkJCQkgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMyknKS5oYXNDbGFzcygnc29ydGluZ18zJyk7CgkJfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUmVtb3ZlIHNvcnRpbmcgY2xhc3NlcyBvbiBzaW5nbGUgY29sdW1uIHNvcnQiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDQpJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMScpID09IGZhbHNlICYmCgkJCQkJCSAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmhhc0NsYXNzKCdzb3J0aW5nXzInKSA9PSBmYWxzZSAmJgoJCQkJCQkgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMiknKS5oYXNDbGFzcygnc29ydGluZ18zJykgPT0gZmFsc2UgJiYKCQkJCQkJICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDMpJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMycpID09IGZhbHNlOwoJCX0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgY2xhc3MgMSB3YXMgYWRkZWQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMSkgdGQ6ZXEoNCknKS5oYXNDbGFzcygnc29ydGluZ18xJyk7IH0KCSk7CgkKCQoJLyogQ2hlY2sgY2FuIGRpc2FibGUgKi8KCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgY2xhc3NlcyBjYW4gYmUgZGlzYWJsZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJiU29ydENsYXNzZXMiOiBmYWxzZQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmhhc0NsYXNzKCdzb3J0aW5nXzEnKSA9PSBmYWxzZTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyBjbGFzc2VzIGRpc2FibGVkIC0gYWRkIGNvbHVtbiAxIC0gbm8gZWZmZWN0IiwKCQlmdW5jdGlvbiAoKSB7IAoJCQlvRGlzcGFjaGVyLmNsaWNrKCAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpWzBdLCB7ICdzaGlmdCc6IHRydWUgfSApOyB9LAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMScpID09IGZhbHNlICYmCgkJCQkJCSAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmhhc0NsYXNzKCdzb3J0aW5nXzInKSA9PSBmYWxzZTsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIGNsYXNzZXMgZGlzYWJsZWQgLSBhZGQgY29sdW1uIDIgLSBubyBlZmZlY3QiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCW9EaXNwYWNoZXIuY2xpY2soICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDIpJylbMF0sIHsgJ3NoaWZ0JzogdHJ1ZSB9ICk7IH0sCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5oYXNDbGFzcygnc29ydGluZ18xJykgPT0gZmFsc2UgJiYKCQkJCQkJICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMicpID09IGZhbHNlICYmCgkJCQkJCSAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgyKScpLmhhc0NsYXNzKCdzb3J0aW5nXzMnKSA9PSBmYWxzZTsKCQl9CgkpOwoJCgkKCS8qIEVuYWJsZSBtYWtlcyBubyBkaWZmZXJlbmNlICovCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIGNsYXNzZXMgZW5hYmxlZCBvdmVycmlkZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImJTb3J0Q2xhc3NlcyI6IHRydWUKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5oYXNDbGFzcygnc29ydGluZ18xJyk7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/fnCreatedCell.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAiZm5DcmVhdGVkQ2VsbCB0ZXN0cyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIgdG1wID0gMDsKCgkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJhYURhdGEiOiBnYWFEYXRhLAoJCSJhb0NvbHVtbkRlZnMiOiBbIHsKCQkJZm5DcmVhdGVkQ2VsbDogZnVuY3Rpb24gKCkgewoJCQkJdG1wKys7CgkJCX0sCgkJCSJhVGFyZ2V0cyI6IFsiX2FsbCJdCgkJfSBdCgl9ICk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNlbGwgY3JlYXRlZCBpcyBjYWxsZWQgb25jZSBmb3IgZWFjaCBjZWxsIG9uIGluaXQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gdG1wPT09Mjg1OyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDcmVhdGVkIGlzbid0IGNhbGxlZCBiYWNrIG9uIG90aGVyIGRyYXdzIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiB0bXA9PT0yODU7IH0KCSk7CgoJb1Rlc3QuZm5UZXN0KAoJCSJGb3VyIGFyZ3VtZW50cyBmb3IgdGhlIGZ1bmN0aW9uIiwKCQlmdW5jdGlvbiAoKSB7IAoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJdG1wID0gdHJ1ZTsKCgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbIHsKCQkJCQlmbkNyZWF0ZWRSb3c6IGZ1bmN0aW9uICgpIHsKCQkJCQkJaWYgKCBhcmd1bWVudHMubGVuZ3RoICE9PSA0ICkgewoJCQkJCQkJdG1wID0gZmFsc2U7CgkJCQkJCX0KCQkJCQl9LAoJCQkJCSJhVGFyZ2V0cyI6IFsiX2FsbCJdCgkJCQl9IF0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gdG1wOyB9CgkpOwoKCW9UZXN0LmZuVGVzdCgKCQkiRmlyc3QgYXJndW1lbnQgaXMgYSBURCBlbGVtZW50IiwKCQlmdW5jdGlvbiAoKSB7IAoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJdG1wID0gdHJ1ZTsKCgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbIHsKCQkJCQlmbkNyZWF0ZWRSb3c6IGZ1bmN0aW9uICgpIHsKCQkJCQkJaWYgKCBhcmd1bWVudHNbMF0ubm9kZU5hbWUgIT09ICJURCIgKSB7CgkJCQkJCQl0bXAgPSBmYWxzZTsKCQkJCQkJfQoJCQkJCX0sCgkJCQkJImFUYXJnZXRzIjogWyJfYWxsIl0KCQkJCX0gXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiB0bXA7IH0KCSk7CgoJb1Rlc3QuZm5UZXN0KAoJCSJTZWNvbmQgYXJndW1lbnQgaXMgdGhlIEhUTUwgdmFsdWUiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQl0bXAgPSB0cnVlOwoKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImFvQ29sdW1uRGVmcyI6IFsgewoJCQkJCWZuQ3JlYXRlZFJvdzogZnVuY3Rpb24gKCkgewoJCQkJCQlpZiAoIGFyZ3VtZW50c1sxXSAhPSAkKCd0ZCcpLmh0bWwoKSApIHsKCQkJCQkJCXRtcCA9IGZhbHNlOwoJCQkJCQl9CgkJCQkJfSwKCQkJCQkiYVRhcmdldHMiOiBbIl9hbGwiXQoJCQkJfSBdCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHRtcDsgfQoJKTsKCglvVGVzdC5mblRlc3QoCgkJIlRoaXJkIGFyZ3VtZW50IGlzIHRoZSBkYXRhIGFycmF5IiwKCQlmdW5jdGlvbiAoKSB7IAoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJdG1wID0gdHJ1ZTsKCgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbIHsKCQkJCQlmbkNyZWF0ZWRSb3c6IGZ1bmN0aW9uICgpIHsKCQkJCQkJaWYgKCBhcmd1bWVudHNbMl0ubGVuZ3RoICE9PSA1ICkgewoJCQkJCQkJdG1wID0gZmFsc2U7CgkJCQkJCX0KCQkJCQl9LAoJCQkJCSJhVGFyZ2V0cyI6IFsiX2FsbCJdCgkJCQl9IF0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gdG1wOyB9CgkpOwoKCW9UZXN0LmZuVGVzdCgKCQkiRm91cnRoIGFyZ3VtZW50IGlzIHRoZSBkYXRhIHNvdXJjZSBmb3IgdGhlIHJvdyIsCgkJZnVuY3Rpb24gKCkgeyAKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCXRtcCA9IHRydWU7CgoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkiYW9Db2x1bW5EZWZzIjogWyB7CgkJCQkJZm5DcmVhdGVkUm93OiBmdW5jdGlvbiAoKSB7CgkJCQkJCWlmICggYXJndW1lbnRzWzJdICE9PSB0aGlzLmZuU2V0dGluZ3MoKS5hb0RhdGFbIGFyZ3VtZW50c1syXSBdLl9hRGF0YSApIHsKCQkJCQkJCXRtcCA9IGZhbHNlOwoJCQkJCQl9CgkJCQkJfSwKCQkJCQkiYVRhcmdldHMiOiBbIl9hbGwiXQoJCQkJfSBdCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHRtcDsgfQoJKTsKCglvVGVzdC5mblRlc3QoCgkJIkZpZnRoIGFyZ3VtZW50IGlzIHRoZSB0aGUgY29sIGluZGV4IiwKCQlmdW5jdGlvbiAoKSB7IAoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJdG1wID0gdHJ1ZTsKCgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbIHsKCQkJCQlmbkNyZWF0ZWRSb3c6IGZ1bmN0aW9uICgpIHsKCQkJCQkJaWYgKCBhcmd1bWVudHNbMV0gIT0gJCgndGQ6ZXEoJythcmd1bWVudHNbNF0rJyknLCBhcmd1bWVudHNbMF0ucGFyZW50Tm9kZSkuaHRtbCgpICkgewoJCQkJCQkJdG1wID0gZmFsc2U7CgkJCQkJCX0KCQkJCQl9LAoJCQkJCSJhVGFyZ2V0cyI6IFsiX2FsbCJdCgkJCQl9IF0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gdG1wOyB9CgkpOwoJCgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/fnCreatedRow.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAiZm5DcmVhdGVkUm93IHRlc3RzIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCXZhciB0bXAgPSAwOwoKCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImFhRGF0YSI6IGdhYURhdGEsCgkJZm5DcmVhdGVkUm93OiBmdW5jdGlvbiAoKSB7CgkJCXRtcCsrOwoJCX0KCX0gKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUm93IGNyZWF0ZWQgaXMgY2FsbGVkIG9uY2UgZm9yIGVhY2ggcm93IG9uIGluaXQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gdG1wPT09NTc7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNyZWF0ZWQgaXNuJ3QgY2FsbGVkIGJhY2sgb24gb3RoZXIgZHJhd3MiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHRtcD09PTU3OyB9CgkpOwoKCW9UZXN0LmZuVGVzdCgKCQkiVGhyZWUgYXJndW1lbnRzIGZvciB0aGUgZnVuY3Rpb24iLAoJCWZ1bmN0aW9uICgpIHsgCgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQl0bXAgPSB0cnVlOwoKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJZm5DcmVhdGVkUm93OiBmdW5jdGlvbiAoKSB7CgkJCQkJaWYgKCBhcmd1bWVudHMubGVuZ3RoICE9PSAzICkgewoJCQkJCQl0bXAgPSBmYWxzZTsKCQkJCQl9CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHRtcDsgfQoJKTsKCglvVGVzdC5mblRlc3QoCgkJIkZpcnN0IGFyZ3VtZW50IGlzIGEgVFIgZWxlbWVudCIsCgkJZnVuY3Rpb24gKCkgeyAKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCXRtcCA9IHRydWU7CgoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQlmbkNyZWF0ZWRSb3c6IGZ1bmN0aW9uICgpIHsKCQkJCQlpZiAoIGFyZ3VtZW50c1swXS5ub2RlTmFtZSAhPT0gIlRSIiApIHsKCQkJCQkJdG1wID0gZmFsc2U7CgkJCQkJfQoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiB0bXA7IH0KCSk7CgoJb1Rlc3QuZm5UZXN0KAoJCSJTZWNvbmQgYXJndW1lbnQgaXMgYW4gYXJyYXkgd2l0aCA1IGVsZW1lbnRzIiwKCQlmdW5jdGlvbiAoKSB7IAoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJdG1wID0gdHJ1ZTsKCgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCWZuQ3JlYXRlZFJvdzogZnVuY3Rpb24gKCkgewoJCQkJCWlmICggYXJndW1lbnRzWzFdLmxlbmd0aCAhPT0gNSApIHsKCQkJCQkJdG1wID0gZmFsc2U7CgkJCQkJfQoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiB0bXA7IH0KCSk7CgoJb1Rlc3QuZm5UZXN0KAoJCSJUaGlyZCBhcmd1bWVudCBpcyB0aGUgZGF0YSBzb3VyY2UgZm9yIHRoZSByb3ciLAoJCWZ1bmN0aW9uICgpIHsgCgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQl0bXAgPSB0cnVlOwoKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJZm5DcmVhdGVkUm93OiBmdW5jdGlvbiAoKSB7CgkJCQkJaWYgKCBhcmd1bWVudHNbMV0gIT09IHRoaXMuZm5TZXR0aW5ncygpLmFvRGF0YVsgYXJndW1lbnRzWzJdIF0uX2FEYXRhICkgewoJCQkJCQl0bXAgPSBmYWxzZTsKCQkJCQl9CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHRtcDsgfQoJKTsKCglvVGVzdC5mblRlc3QoCgkJIlRSIGVsZW1lbnQgaXMgdGllZCB0byB0aGUgY29ycmVjdCBkYXRhIiwKCQlmdW5jdGlvbiAoKSB7IAoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJdG1wID0gZmFsc2U7CgoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQlmbkNyZWF0ZWRSb3c6IGZ1bmN0aW9uICh0ciwgZGF0YSwgaW5kZXgpIHsKCQkJCQlpZiAoIGRhdGFbMV0gPT09ICJGaXJlZm94IDEuMCIgKSB7CgkJCQkJCWlmICggJCgndGQ6ZXEoMyknLCB0cikuaHRtbCgpID09ICIxLjciICkgewoJCQkJCQkJdG1wID0gdHJ1ZTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gdG1wOyB9CgkpOwoJCgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/fnDrawCallback.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAiZm5EcmF3Q2FsbGJhY2siICk7CgovKiBGYWlybHkgYm9yaW5nIGZ1bmN0aW9uIGNvbXBhcmVkIHRvIHRoZSBvdGhlcnMhICovCgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJhYURhdGEiOiBnYWFEYXRhCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCXZhciBtUGFzczsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiRGVmYXVsdCBzaG91bGQgYmUgbnVsbCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3MuZm5EcmF3Q2FsbGJhY2sgPT0gbnVsbDsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJPbmUgYXJndW1lbnQgcGFzc2VkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSAtMTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImZuRHJhd0NhbGxiYWNrIjogZnVuY3Rpb24gKCApIHsKCQkJCQltUGFzcyA9IGFyZ3VtZW50cy5sZW5ndGg7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzID09IDE7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiVGhhdCBvbmUgYXJndW1lbnQgaXMgdGhlIHNldHRpbmdzIG9iamVjdCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJmbkRyYXdDYWxsYmFjayI6IGZ1bmN0aW9uICggb1NldHRpbmdzICkgewoJCQkJCW1QYXNzID0gb1NldHRpbmdzOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvVGFibGUuZm5TZXR0aW5ncygpID09IG1QYXNzOyB9CgkpOwoJCgkKCW9UZXN0LmZuVGVzdCggCgkJImZuUm93Q2FsbGJhY2sgY2FsbGVkIG9uY2Ugb24gZmlyc3QgZHJhdyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gMDsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImZuRHJhd0NhbGxiYWNrIjogZnVuY3Rpb24gKCApIHsKCQkJCQltUGFzcysrOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzcyA9PSAxOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJmblJvd0NhbGxiYWNrIGNhbGxlZCBvbmNlIG9uIGVhY2ggZHJhdyB0aGVyZSBhZnRlciBhcyB3ZWxsIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzcyA9PSA0OyB9CgkpOwoJCgkKCQoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/fnFooterCallback.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAiZm5Gb290ZXJDYWxsYmFjayIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImFhRGF0YSI6IGdhYURhdGEKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJdmFyIG1QYXNzOwoJCglvVGVzdC5mblRlc3QoIAoJCSJEZWZhdWx0IHNob3VsZCBiZSBudWxsIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5mbkZvb3RlckNhbGxiYWNrID09IG51bGw7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiRml2ZSBhcmd1bWVudHMgcGFzc2VkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSAtMTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImZuRm9vdGVyQ2FsbGJhY2siOiBmdW5jdGlvbiAoICkgewoJCQkJCW1QYXNzID0gYXJndW1lbnRzLmxlbmd0aDsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3MgPT0gNTsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJmblJvd0NhbGxiYWNrIGNhbGxlZCBvbmNlIHBlciBkcmF3IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSAwOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkiZm5Gb290ZXJDYWxsYmFjayI6IGZ1bmN0aW9uICggbkZvb3QsIGFhc0RhdGEsIGlTdGFydCwgaUVuZCwgYWlEaXNwbGF5ICkgewoJCQkJCW1QYXNzKys7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzID09IDE7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJImZuUm93Q2FsbGJhY2sgY2FsbGVkIG9uIHBhZ2luZyAoaS5lLiBhbm90aGVyIGRyYXcpIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzID09IDI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiZm5Sb3dDYWxsYmFjayBhbGxvd3MgdXMgdG8gYWx0ZXIgcm93IGluZm9ybWF0aW9uIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkiZm5Gb290ZXJDYWxsYmFjayI6IGZ1bmN0aW9uICggbkZvb3QsIGFhc0RhdGEsIGlTdGFydCwgaUVuZCwgYWlEaXNwbGF5ICkgewoJCQkJCW5Gb290LmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0aCcpWzBdLmlubmVySFRNTCA9ICJEaXNwbGF5aW5nICIrKGlFbmQtaVN0YXJ0KSsiIHJlY29yZHMiOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Zm9vdCB0aDplcSgwKScpLmh0bWwoKSA9PSAiRGlzcGxheWluZyAxMCByZWNvcmRzIjsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJEYXRhIGFycmF5IGhhcyBsZW5ndGggbWF0Y2hpbmcgb3JpZ2luYWwgZGF0YSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gdHJ1ZTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImZuRm9vdGVyQ2FsbGJhY2siOiBmdW5jdGlvbiAoIG5Gb290LCBhYXNEYXRhLCBpU3RhcnQsIGlFbmQsIGFpRGlzcGxheSApIHsKCQkJCQlpZiAoIGFhc0RhdGEubGVuZ3RoICE9IDU3ICkKCQkJCQl7CgkJCQkJCW1QYXNzID0gZmFsc2U7CgkJCQkJfQoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzczsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiRGF0YSBhcnJheSdzIGNvbHVtbiBsZW5ndGhzIG1hdGNoIG9yaWdpbmFsIGRhdGEiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IHRydWU7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJmbkZvb3RlckNhbGxiYWNrIjogZnVuY3Rpb24gKCBuRm9vdCwgYWFzRGF0YSwgaVN0YXJ0LCBpRW5kLCBhaURpc3BsYXkgKSB7CgkJCQkJZm9yICggdmFyIGk9MCwgaUxlbj1hYXNEYXRhLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJCQkJewoJCQkJCQlpZiAoIGFhc0RhdGFbaV0ubGVuZ3RoICE9IDUgKQoJCQkJCQl7CgkJCQkJCQltUGFzcyA9IGZhbHNlOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzczsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJpU3RhcnQgY29ycmVjdCBvbiBmaXJzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSB0cnVlOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkiZm5Gb290ZXJDYWxsYmFjayI6IGZ1bmN0aW9uICggbkZvb3QsIGFhc0RhdGEsIGlTdGFydCwgaUVuZCwgYWlEaXNwbGF5ICkgewoJCQkJCWlmICggaVN0YXJ0ICE9IDAgKQoJCQkJCXsKCQkJCQkJbVBhc3MgPSBmYWxzZTsKCQkJCQl9CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzOyB9CgkpOwoJCgkKCW9UZXN0LmZuVGVzdCggCgkJImlTdGFydCBjb3JyZWN0IG9uIHNlY29uZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSBmYWxzZTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImZuRm9vdGVyQ2FsbGJhY2siOiBmdW5jdGlvbiAoIG5Gb290LCBhYXNEYXRhLCBpU3RhcnQsIGlFbmQsIGFpRGlzcGxheSApIHsKCQkJCQlpZiAoIGlTdGFydCA9PSAxMCApCgkJCQkJewoJCQkJCQltUGFzcyA9IHRydWU7CgkJCQkJfQoJCQkJfQoJCQl9ICk7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3M7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiaUVuZCBjb3JyZWN0IG9uIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IHRydWU7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJmbkZvb3RlckNhbGxiYWNrIjogZnVuY3Rpb24gKCBuRm9vdCwgYWFzRGF0YSwgaVN0YXJ0LCBpRW5kLCBhaURpc3BsYXkgKSB7CgkJCQkJaWYgKCBpRW5kICE9IDEwICkKCQkJCQl7CgkJCQkJCW1QYXNzID0gZmFsc2U7CgkJCQkJfQoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzczsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJpRW5kIGNvcnJlY3Qgb24gc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IGZhbHNlOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkiZm5Gb290ZXJDYWxsYmFjayI6IGZ1bmN0aW9uICggbkZvb3QsIGFhc0RhdGEsIGlTdGFydCwgaUVuZCwgYWlEaXNwbGF5ICkgewoJCQkJCWlmICggaUVuZCA9PSAyMCApCgkJCQkJewoJCQkJCQltUGFzcyA9IHRydWU7CgkJCQkJfQoJCQkJfQoJCQl9ICk7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3M7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiYWlEaXNwbGF5IGxlbmd0aCBpcyBmdWxsIGRhdGEgd2hlbiBub3QgZmlsdGVyZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IGZhbHNlOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkiZm5Gb290ZXJDYWxsYmFjayI6IGZ1bmN0aW9uICggbkZvb3QsIGFhc0RhdGEsIGlTdGFydCwgaUVuZCwgYWlEaXNwbGF5ICkgewoJCQkJCWlmICggYWlEaXNwbGF5Lmxlbmd0aCA9PSA1NyApCgkJCQkJewoJCQkJCQltUGFzcyA9IHRydWU7CgkJCQkJfQoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzczsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiYWlEaXNwbGF5IGxlbmd0aCBpcyA5IHdoZW4gZmlsdGVyaW5nIG9uICdNb3ppbGxhJyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gZmFsc2U7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJmbkZvb3RlckNhbGxiYWNrIjogZnVuY3Rpb24gKCBuRm9vdCwgYWFzRGF0YSwgaVN0YXJ0LCBpRW5kLCBhaURpc3BsYXkgKSB7CgkJCQkJaWYgKCBhaURpc3BsYXkubGVuZ3RoID09IDkgKQoJCQkJCXsKCQkJCQkJbVBhc3MgPSB0cnVlOwoJCQkJCX0KCQkJCX0KCQkJfSApOwoJCQlvVGFibGUuZm5GaWx0ZXIoICJNb3ppbGxhIiApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3M7IH0KCSk7CgkKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/fnHeaderCallback.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAiZm5IZWFkZXJDYWxsYmFjayIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImFhRGF0YSI6IGdhYURhdGEKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJdmFyIG1QYXNzOwoJCglvVGVzdC5mblRlc3QoIAoJCSJEZWZhdWx0IHNob3VsZCBiZSBudWxsIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5mbkhlYWRlckNhbGxiYWNrID09IG51bGw7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiRml2ZSBhcmd1bWVudHMgcGFzc2VkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSAtMTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImZuSGVhZGVyQ2FsbGJhY2siOiBmdW5jdGlvbiAoICkgewoJCQkJCW1QYXNzID0gYXJndW1lbnRzLmxlbmd0aDsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3MgPT0gNTsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJmblJvd0NhbGxiYWNrIGNhbGxlZCBvbmNlIHBlciBkcmF3IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSAwOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkiZm5IZWFkZXJDYWxsYmFjayI6IGZ1bmN0aW9uICggbkhlYWQsIGFhc0RhdGEsIGlTdGFydCwgaUVuZCwgYWlEaXNwbGF5ICkgewoJCQkJCW1QYXNzKys7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzID09IDE7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJImZuUm93Q2FsbGJhY2sgY2FsbGVkIG9uIHBhZ2luZyAoaS5lLiBhbm90aGVyIGRyYXcpIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzID09IDI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiZm5Sb3dDYWxsYmFjayBhbGxvd3MgdXMgdG8gYWx0ZXIgcm93IGluZm9ybWF0aW9uIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkiZm5IZWFkZXJDYWxsYmFjayI6IGZ1bmN0aW9uICggbkhlYWQsIGFhc0RhdGEsIGlTdGFydCwgaUVuZCwgYWlEaXNwbGF5ICkgewoJCQkJCW5IZWFkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0aCcpWzBdLmlubmVySFRNTCA9ICJEaXNwbGF5aW5nICIrKGlFbmQtaVN0YXJ0KSsiIHJlY29yZHMiOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgwKScpLmh0bWwoKSA9PSAiRGlzcGxheWluZyAxMCByZWNvcmRzIjsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJEYXRhIGFycmF5IGhhcyBsZW5ndGggbWF0Y2hpbmcgb3JpZ2luYWwgZGF0YSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gdHJ1ZTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImZuSGVhZGVyQ2FsbGJhY2siOiBmdW5jdGlvbiAoIG5IZWFkLCBhYXNEYXRhLCBpU3RhcnQsIGlFbmQsIGFpRGlzcGxheSApIHsKCQkJCQlpZiAoIGFhc0RhdGEubGVuZ3RoICE9IDU3ICkKCQkJCQl7CgkJCQkJCW1QYXNzID0gZmFsc2U7CgkJCQkJfQoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzczsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiRGF0YSBhcnJheSdzIGNvbHVtbiBsZW5ndGhzIG1hdGNoIG9yaWdpbmFsIGRhdGEiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IHRydWU7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJmbkhlYWRlckNhbGxiYWNrIjogZnVuY3Rpb24gKCBuSGVhZCwgYWFzRGF0YSwgaVN0YXJ0LCBpRW5kLCBhaURpc3BsYXkgKSB7CgkJCQkJZm9yICggdmFyIGk9MCwgaUxlbj1hYXNEYXRhLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJCQkJewoJCQkJCQlpZiAoIGFhc0RhdGFbaV0ubGVuZ3RoICE9IDUgKQoJCQkJCQl7CgkJCQkJCQltUGFzcyA9IGZhbHNlOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzczsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJpU3RhcnQgY29ycmVjdCBvbiBmaXJzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSB0cnVlOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkiZm5IZWFkZXJDYWxsYmFjayI6IGZ1bmN0aW9uICggbkhlYWQsIGFhc0RhdGEsIGlTdGFydCwgaUVuZCwgYWlEaXNwbGF5ICkgewoJCQkJCWlmICggaVN0YXJ0ICE9IDAgKQoJCQkJCXsKCQkJCQkJbVBhc3MgPSBmYWxzZTsKCQkJCQl9CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzOyB9CgkpOwoJCgkKCW9UZXN0LmZuVGVzdCggCgkJImlTdGFydCBjb3JyZWN0IG9uIHNlY29uZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSBmYWxzZTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImZuSGVhZGVyQ2FsbGJhY2siOiBmdW5jdGlvbiAoIG5IZWFkLCBhYXNEYXRhLCBpU3RhcnQsIGlFbmQsIGFpRGlzcGxheSApIHsKCQkJCQlpZiAoIGlTdGFydCA9PSAxMCApCgkJCQkJewoJCQkJCQltUGFzcyA9IHRydWU7CgkJCQkJfQoJCQkJfQoJCQl9ICk7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3M7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiaUVuZCBjb3JyZWN0IG9uIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IHRydWU7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJmbkhlYWRlckNhbGxiYWNrIjogZnVuY3Rpb24gKCBuSGVhZCwgYWFzRGF0YSwgaVN0YXJ0LCBpRW5kLCBhaURpc3BsYXkgKSB7CgkJCQkJaWYgKCBpRW5kICE9IDEwICkKCQkJCQl7CgkJCQkJCW1QYXNzID0gZmFsc2U7CgkJCQkJfQoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzczsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJpRW5kIGNvcnJlY3Qgb24gc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IGZhbHNlOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkiZm5IZWFkZXJDYWxsYmFjayI6IGZ1bmN0aW9uICggbkhlYWQsIGFhc0RhdGEsIGlTdGFydCwgaUVuZCwgYWlEaXNwbGF5ICkgewoJCQkJCWlmICggaUVuZCA9PSAyMCApCgkJCQkJewoJCQkJCQltUGFzcyA9IHRydWU7CgkJCQkJfQoJCQkJfQoJCQl9ICk7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3M7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiYWlEaXNwbGF5IGxlbmd0aCBpcyBmdWxsIGRhdGEgd2hlbiBub3QgZmlsdGVyZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IGZhbHNlOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkiZm5IZWFkZXJDYWxsYmFjayI6IGZ1bmN0aW9uICggbkhlYWQsIGFhc0RhdGEsIGlTdGFydCwgaUVuZCwgYWlEaXNwbGF5ICkgewoJCQkJCWlmICggYWlEaXNwbGF5Lmxlbmd0aCA9PSA1NyApCgkJCQkJewoJCQkJCQltUGFzcyA9IHRydWU7CgkJCQkJfQoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzczsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiYWlEaXNwbGF5IGxlbmd0aCBpcyA5IHdoZW4gZmlsdGVyaW5nIG9uICdNb3ppbGxhJyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gZmFsc2U7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJmbkhlYWRlckNhbGxiYWNrIjogZnVuY3Rpb24gKCBuSGVhZCwgYWFzRGF0YSwgaVN0YXJ0LCBpRW5kLCBhaURpc3BsYXkgKSB7CgkJCQkJaWYgKCBhaURpc3BsYXkubGVuZ3RoID09IDkgKQoJCQkJCXsKCQkJCQkJbVBhc3MgPSB0cnVlOwoJCQkJCX0KCQkJCX0KCQkJfSApOwoJCQlvVGFibGUuZm5GaWx0ZXIoICJNb3ppbGxhIiApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3M7IH0KCSk7CgkKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/fnInitComplete.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAiZm5Jbml0Q29tcGxldGUiICk7CgovKiBGYWlybHkgYm9yaW5nIGZ1bmN0aW9uIGNvbXBhcmVkIHRvIHRoZSBvdGhlcnMhICovCgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJhYURhdGEiOiBnYWFEYXRhCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCXZhciBtUGFzczsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiRGVmYXVsdCBzaG91bGQgYmUgbnVsbCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3MuZm5Jbml0Q29tcGxldGUgPT0gbnVsbDsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJUd28gYXJndW1lbnRzIHBhc3NlZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gLTE7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJmbkluaXRDb21wbGV0ZSI6IGZ1bmN0aW9uICggKSB7CgkJCQkJbVBhc3MgPSBhcmd1bWVudHMubGVuZ3RoPT09MiAmJiBhcmd1bWVudHNbMV09PT11bmRlZmluZWQ7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzOyB9CgkpOwoJCgkKCW9UZXN0LmZuVGVzdCggCgkJIlRoYXQgb25lIGFyZ3VtZW50IGlzIHRoZSBzZXR0aW5ncyBvYmplY3QiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkiZm5Jbml0Q29tcGxldGUiOiBmdW5jdGlvbiAoIG9TZXR0aW5ncyApIHsKCQkJCQltUGFzcyA9IG9TZXR0aW5nczsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1RhYmxlLmZuU2V0dGluZ3MoKSA9PSBtUGFzczsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJmbkluaXRDb21wbGV0ZSBjYWxsZWQgb25jZSBvbiBmaXJzdCBkcmF3IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSAwOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkiZm5Jbml0Q29tcGxldGUiOiBmdW5jdGlvbiAoICkgewoJCQkJCW1QYXNzKys7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzID09IDE7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJImZuSW5pdENvbXBsZXRlIG5ldmVyIGNhbGxlZCB0aGVyZSBhZnRlciIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3MgPT0gMTsgfQoJKTsKCQoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/fnRowCallback.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAiZm5Sb3dDYWxsYmFjayIgKTsKCi8qIE5vdGUgLSBmblJvd0NhbGxiYWNrIE1VU1QgcmV0dXJuIHRoZSBmaXJzdCBhcmd1bWVudHMgKG1vZGlmaWVkIG9yIG5vdCkgKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImFhRGF0YSI6IGdhYURhdGEKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJdmFyIG1QYXNzOwoJCglvVGVzdC5mblRlc3QoIAoJCSJEZWZhdWx0IHNob3VsZCBiZSBudWxsIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5mblJvd0NhbGxiYWNrID09IG51bGw7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiRm91ciBhcmd1bWVudHMgcGFzc2VkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSAtMTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImZuUm93Q2FsbGJhY2siOiBmdW5jdGlvbiAoIG5UciApIHsKCQkJCQltUGFzcyA9IGFyZ3VtZW50cy5sZW5ndGg7CgkJCQkJcmV0dXJuIG5UcjsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3MgPT0gNDsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJmblJvd0NhbGxiYWNrIGNhbGxlZCBvbmNlIGZvciBlYWNoIGRyYXduIHJvdyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gMDsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImZuUm93Q2FsbGJhY2siOiBmdW5jdGlvbiAoIG5UciwgYXNEYXRhLCBpRHJhd0luZGV4LCBpRGF0YUluZGV4ICkgewoJCQkJCW1QYXNzKys7CgkJCQkJcmV0dXJuIG5UcjsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3MgPT0gMTA7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJImZuUm93Q2FsbGJhY2sgYWxsb3dzIHVzIHRvIGFsdGVyIHJvdyBpbmZvcm1hdGlvbiIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImZuUm93Q2FsbGJhY2siOiBmdW5jdGlvbiAoIG5UciwgYXNEYXRhLCBpRHJhd0luZGV4LCBpRGF0YUluZGV4ICkgewoJCQkJCSQoblRyKS5hZGRDbGFzcygndW5pdF90ZXN0Jyk7CgkJCQkJcmV0dXJuIG5UcjsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMSknKS5oYXNDbGFzcygndW5pdF90ZXN0Jyk7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkRhdGEgYXJyYXkgaGFzIGxlbmd0aCBtYXRjaGluZyBjb2x1bW5zIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSB0cnVlOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkiZm5Sb3dDYWxsYmFjayI6IGZ1bmN0aW9uICggblRyLCBhc0RhdGEsIGlEcmF3SW5kZXgsIGlEYXRhSW5kZXggKSB7CgkJCQkJaWYgKCBhc0RhdGEubGVuZ3RoICE9IDUgKQoJCQkJCQltUGFzcyA9IGZhbHNlOwoJCQkJCXJldHVybiBuVHI7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJEYXRhIGFycmF5IGhhcyBsZW5ndGggbWF0Y2hpbmcgY29sdW1ucyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gdHJ1ZTsKCQkJdmFyIGlDb3VudCA9IDA7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJmblJvd0NhbGxiYWNrIjogZnVuY3Rpb24gKCBuVHIsIGFzRGF0YSwgaURyYXdJbmRleCwgaURhdGFJbmRleCApIHsKCQkJCQlpZiAoIGlDb3VudCAhPSBpRHJhd0luZGV4ICkKCQkJCQkJbVBhc3MgPSBmYWxzZTsKCQkJCQlpQ291bnQrKzsKCQkJCQlyZXR1cm4gblRyOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzczsgfQoJKTsKCQoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/iDisplayLength.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAiaURpc3BsYXlMZW5ndGgiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImFhRGF0YSI6IGdhYURhdGEKCX0gKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiRGVmYXVsdCBsZW5ndGggaXMgdGVuIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDEwOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTZWxlY3QgbWVudSBzaG93cyAxMCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9sZW5ndGggc2VsZWN0JykudmFsKCkgPT0gMTA7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU2V0IGluaXRpYWwgbGVuZ3RoIHRvIDI1IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkiaURpc3BsYXlMZW5ndGgiOiAyNQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSAyNTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU2VsZWN0IG1lbnUgc2hvd3MgMjUiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGVfbGVuZ3RoIHNlbGVjdCcpLnZhbCgpID09IDI1OyB9CgkpOwoJCgkKCW9UZXN0LmZuVGVzdCggCgkJIlNldCBpbml0aWFsIGxlbmd0aCB0byAxMDAiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJpRGlzcGxheUxlbmd0aCI6IDEwMAoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSA1NzsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU2VsZWN0IG1lbnUgc2hvd3MgMjUiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGVfbGVuZ3RoIHNlbGVjdCcpLnZhbCgpID09IDEwMDsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJTZXQgaW5pdGlhbCBsZW5ndGggdG8gMjMgKHVua25vd24gc2VsZWN0IG1lbnUgbGVuZ3RoKSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJImlEaXNwbGF5TGVuZ3RoIjogMjMKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMjM7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNlbGVjdCBtZW51IHNob3dzIDEwIChzaW5jZSAyMyBpcyB1bmtub3cpIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlX2xlbmd0aCBzZWxlY3QnKS52YWwoKSA9PSAxMDsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/js_data_mixed_types.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YV9taXhlZF90eXBlcwpvVGVzdC5mblN0YXJ0KCAiU2FuaXR5IGNoZWNrcyBmb3IgRGF0YVRhYmxlcyB3aXRoIGRhdGEgZnJvbSBKUyB3aXRoIG1peGVkIGRhdGEgdHlwZXMiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJdmFyIG9Jbml0ID0gewoJCSJhYURhdGEiOiBnYWFEYXRhCgl9OwoJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIG9Jbml0ICk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIjEwIHJvd3Mgc2hvd24gb24gdGhlIGZpcnN0IHBhZ2UiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMTA7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkluaXRpYWwgc29ydCBvY2N1cmVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09ICIiICYmCgkJICAgICAgICAgICAgICAgICAgICAgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMSkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gIkdlY2tvIjsgfQoJKTsKCQoJLyogTmVlZCB0byB1c2UgdGhlIFdhaXRUZXN0IGZvciBzb3J0aW5nIGR1ZSB0byB0aGUgc2V0VGltZW91dCBkYXRhdGFibGVzIHVzZXMgKi8KCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgKGZpcnN0IGNsaWNrKSBvbiBzZWNvbmQgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyAoc2Vjb25kIGNsaWNrKSBvbiBzZWNvbmQgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAidHJ1ZSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgKHRoaXJkIGNsaWNrKSBvbiBzZWNvbmQgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyAoZmlyc3QgY2xpY2spIG9uIG51bWVyaWMgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiLSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgKHNlY29uZCBjbGljaykgb24gbnVtZXJpYyBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMyknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDMpJykuaHRtbCgpID09ICI1MjIuMSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgbXVsdGktY29sdW1uIChmaXJzdCBjbGljaykiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDApJykuY2xpY2soKTsKCQkJb0Rpc3BhY2hlci5jbGljayggJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKVswXSwgeyAnc2hpZnQnOiB0cnVlIH0gKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHZhciBiID0gCgkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDEpIHRkOmVxKDApJykuaHRtbCgpID09ICJHZWNrbyIgJiYgCgkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDEpIHRkOmVxKDEpJykuaHRtbCgpID09ICJDYW1pbm8gMS4wIjsgcmV0dXJuIGI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgbXVsdGktY29sdW1uIC0gc29ydGluZyBzZWNvbmQgY29sdW1uIG9ubHkiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiIjsgfQoJKTsKCQoJLyogQmFzaWMgcGFnaW5nICovCglvVGVzdC5mblRlc3QoIAoJCSJQYWdpbmcgdG8gc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkZpcmVmb3ggMi4wIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUGFnaW5nIHRvIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICIiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJBdHRlbXB0aW5nIHRvIHBhZ2UgYmFjayBiZXlvbmQgdGhlIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICIiOyB9CgkpOwoJCgkvKiBDaGFuZ2luZyBsZW5ndGggKi8KCW9UZXN0LmZuVGVzdCggCgkJIkNoYW5naW5nIHRhYmxlIGxlbmd0aCB0byAyNSByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7ICQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnMjUnKS5jaGFuZ2UoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSAyNTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2hhbmdpbmcgdGFibGUgbGVuZ3RoIHRvIDUwIHJlY29yZHMiLAoJCWZ1bmN0aW9uICgpIHsgJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCc1MCcpLmNoYW5nZSgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDUwOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDaGFuZ2luZyB0YWJsZSBsZW5ndGggdG8gMTAwIHJlY29yZHMiLAoJCWZ1bmN0aW9uICgpIHsgJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcxMDAnKS5jaGFuZ2UoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSA1NzsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2hhbmdpbmcgdGFibGUgbGVuZ3RoIHRvIDEwIHJlY29yZHMiLAoJCWZ1bmN0aW9uICgpIHsgJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcxMCcpLmNoYW5nZSgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDEwOyB9CgkpOwoJCgkvKgoJICogSW5mb3JtYXRpb24gZWxlbWVudAoJICovCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIG9uIHplcm8gY29uZmlnIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiBvbiBzZWNvbmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDExIHRvIDIwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIG9uIHRoaXJkIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAyMSB0byAzMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiBvbiBsYXN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgNTEgdG8gNTcgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gYmFjayBvbiBmaXJzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggMjUgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzI1JykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAxIHRvIDI1IG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggMjUgcmVjb3JkcyAtIHNlY29uZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMjYgdG8gNTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCAxMDAgcmVjb3JkcyAtIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzEwMCcpLmNoYW5nZSgpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAxIHRvIDU3IG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIGJhY2sgdG8gMTAgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnMTAnKS5jaGFuZ2UoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciAnV2luJyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIldpbiIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciAnV2luJyBzZWNvbmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxMSB0byAyMCBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciAnV2luJyBsYXN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMzEgdG8gMzEgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbicgYmFjayB0byBmaXJzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyICdXaW4nIHNlY29uZCBwYWdlIC0gc2Vjb25kIHRpbWUiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxMSB0byAyMCBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciBpbmNyZWFzZWQgdG8gJ1dpbiA5OCciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXaW4gOTgiKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gOSBvZiA5IGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyIGRlY3JlYXNlZCB0byAnV2luJyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIldpbiIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciAnV2luJyBzZWNvbmQgcGFnZSAtIHRoaXJkIHRpbWUiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxMSB0byAyMCBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciByZW1vdmVkIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCgkKCS8qCgkgKiBGaWx0ZXJpbmcKCSAqLwoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1cnIC0gcm93cyIsCgkJZnVuY3Rpb24gKCkgeyAKCQkJLyogUmVzZXQgdGhlIHRhYmxlIHN1Y2ggdGhhdCB0aGUgb2xkIHNvcnRpbmcgZG9lc24ndCBtZXNzIHRoaW5ncyB1cCAqLwoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIG9Jbml0ICk7CgkJCSQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiVyIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gIiI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXJyAtIGluZm8iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiA0MiBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpJyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIldpIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDMyIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luJyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIldpbiIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbicgLSBzb3J0aW5nIGNvbHVtbiAxIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbicgLSBzb3J0aW5nIGNvbHVtbiAxIGluZm8iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbicgLSBzb3J0aW5nIGNvbHVtbiAxIHJldmVyc2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICJ0cnVlIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbiBYUCcgLSBtYWludGFpbmcgcmV2ZXJzZSBzb3J0aW5nIGNvbCAxIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2luIFhQIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiSW50ZXJuZXQgRXhwbG9yZXIgNyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaW4gWFAnIC0gc29ydGluZyBjb2wgMyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIjUiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luIFhQJyAtIHNvcnRpbmcgY29sIDMgLSByZXZlcnNlZCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIjciOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luJyAtIHNvcnRpbmcgY29sIDMgLSByZXZlcnNlZCBpbmZvIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gNSBvZiA1IGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnbm90aGluZ2hlcmUnIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgibm90aGluZ2hlcmUiKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09IAoJCQkiTm8gbWF0Y2hpbmcgcmVjb3JkcyBmb3VuZCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdub3RoaW5naGVyZScgLSBpbmZvIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDAgdG8gMCBvZiAwIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciBiYWNrIHRvIGJsYW5rIGFuZCAxc3QgY29sdW1uIHNvcnRpbmciLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCIiKS5rZXl1cCgpOwoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgwKScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIlByZWZpeGluZyBhIGZpbHRlciBlbnRyeSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIldpbiIpLmtleXVwKCk7CgkJCSQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiR2Vja29XaW4iKS5rZXl1cCgpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMCB0byAwIG9mIDAgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiUHJlZml4aW5nIGEgZmlsdGVyIGVudHJ5IHdpdGggc3BhY2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJHZWNrbyBXaW4iKS5rZXl1cCgpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAxNyBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJCgkKCQoJCgkKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/oLanguage.oPaginate.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAib0xhbmd1YWdlLm9QYWdpbmF0ZSIgKTsKCi8qIE5vdGUgdGhhdCB0aGUgcGFnaW5nIGxhbmd1YWdlIGluZm9ybWF0aW9uIG9ubHkgaGFzIHJlbGV2ZW5jZSBpbiBmdWxsIG51bWJlcnMgKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImFhRGF0YSI6IGdhYURhdGEsCgkJInNQYWdpbmF0aW9uVHlwZSI6ICJmdWxsX251bWJlcnMiCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkib0xhbmd1YWdlLm9QYWdpbmF0ZSBkZWZhdWx0cyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBiUmV0dXJuID0gCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLm9QYWdpbmF0ZS5zRmlyc3QgPT0gIkZpcnN0IiAmJgoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5vUGFnaW5hdGUuc1ByZXZpb3VzID09ICJQcmV2aW91cyIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uub1BhZ2luYXRlLnNOZXh0ID09ICJOZXh0IiAmJgoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5vUGFnaW5hdGUuc0xhc3QgPT0gIkxhc3QiOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJvTGFuZ3VhZ2Uub1BhZ2luYXRlIGRlZmF1bHRzIGFyZSBpbiB0aGUgRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCSQoJyNleGFtcGxlX3BhZ2luYXRlIC5maXJzdCcpLmh0bWwoKSA9PSAiRmlyc3QiICYmCgkJCQkkKCcjZXhhbXBsZV9wYWdpbmF0ZSAucHJldmlvdXMnKS5odG1sKCkgPT0gIlByZXZpb3VzIiAmJgoJCQkJJCgnI2V4YW1wbGVfcGFnaW5hdGUgLm5leHQnKS5odG1sKCkgPT0gIk5leHQiICYmCgkJCQkkKCcjZXhhbXBsZV9wYWdpbmF0ZSAubGFzdCcpLmh0bWwoKSA9PSAiTGFzdCI7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkib0xhbmd1YWdlLm9QYWdpbmF0ZSBjYW4gYmUgZGVmaW5lZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJInNQYWdpbmF0aW9uVHlwZSI6ICJmdWxsX251bWJlcnMiLAoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkib1BhZ2luYXRlIjogewoJCQkJCQkic0ZpcnN0IjogICAgInVuaXQxIiwKCQkJCQkJInNQcmV2aW91cyI6ICJ0ZXN0MiIsCgkJCQkJCSJzTmV4dCI6ICAgICAidW5pdDMiLAoJCQkJCQkic0xhc3QiOiAgICAgInRlc3Q0IgoJCQkJCX0KCQkJCX0KCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYlJldHVybiA9IAoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5vUGFnaW5hdGUuc0ZpcnN0ID09ICJ1bml0MSIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uub1BhZ2luYXRlLnNQcmV2aW91cyA9PSAidGVzdDIiICYmCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLm9QYWdpbmF0ZS5zTmV4dCA9PSAidW5pdDMiICYmCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLm9QYWdpbmF0ZS5zTGFzdCA9PSAidGVzdDQiOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJvTGFuZ3VhZ2Uub1BhZ2luYXRlIGRlZmluaXRpb25zIGFyZSBpbiB0aGUgRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCSQoJyNleGFtcGxlX3BhZ2luYXRlIC5maXJzdCcpLmh0bWwoKSA9PSAidW5pdDEiICYmCgkJCQkkKCcjZXhhbXBsZV9wYWdpbmF0ZSAucHJldmlvdXMnKS5odG1sKCkgPT0gInRlc3QyIiAmJgoJCQkJJCgnI2V4YW1wbGVfcGFnaW5hdGUgLm5leHQnKS5odG1sKCkgPT0gInVuaXQzIiAmJgoJCQkJJCgnI2V4YW1wbGVfcGFnaW5hdGUgLmxhc3QnKS5odG1sKCkgPT0gInRlc3Q0IjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/oLanguage.sInfo.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAib0xhbmd1YWdlLnNJbmZvIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkiYWFEYXRhIjogZ2FhRGF0YQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkluZm8gbGFuZ3VhZ2UgaXMgJ1Nob3dpbmcgX1NUQVJUXyB0byBfRU5EXyBvZiBfVE9UQUxfIGVudHJpZXMnIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9MYW5ndWFnZS5zSW5mbyA9PSAiU2hvd2luZyBfU1RBUlRfIHRvIF9FTkRfIG9mIF9UT1RBTF8gZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkluZm8gbGFuZ3VhZ2UgZGVmYXVsdCBpcyBpbiB0aGUgRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPSAiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCgkKCW9UZXN0LmZuVGVzdCggCgkJIkluZm8gbGFuZ3VhZ2UgY2FuIGJlIGRlZmluZWQgLSB3aXRob3V0IGFueSBtYWNyb3MiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNJbmZvIjogInVuaXQgdGVzdCIKCQkJCX0KCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9MYW5ndWFnZS5zSW5mbyA9PSAidW5pdCB0ZXN0IjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiSW5mbyBsYW5ndWFnZSBkZWZpbml0aW9uIGlzIGluIHRoZSBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9ICJ1bml0IHRlc3QiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJbmZvIGxhbmd1YWdlIGNhbiBiZSBkZWZpbmVkIC0gd2l0aCBtYWNybyBfU1RBUlRfIG9ubHkiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNJbmZvIjogInVuaXQgX1NUQVJUXyB0ZXN0IgoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID0gInVuaXQgMSB0ZXN0IjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiSW5mbyBsYW5ndWFnZSBjYW4gYmUgZGVmaW5lZCAtIHdpdGggbWFjcm8gX0VORF8gb25seSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic0luZm8iOiAidW5pdCBfRU5EXyB0ZXN0IgoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID0gInVuaXQgMTAgdGVzdCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkluZm8gbGFuZ3VhZ2UgY2FuIGJlIGRlZmluZWQgLSB3aXRoIG1hY3JvIF9UT1RBTF8gb25seSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic0luZm8iOiAidW5pdCBfRU5EXyB0ZXN0IgoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID0gInVuaXQgNTcgdGVzdCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkluZm8gbGFuZ3VhZ2UgY2FuIGJlIGRlZmluZWQgLSB3aXRoIG1hY3JvcyBfU1RBUlRfIGFuZCBfRU5EXyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic0luZm8iOiAidW5pdCBfU1RBUlRfIF9FTkRfIHRlc3QiCgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPSAidW5pdCAxIDEwIHRlc3QiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJbmZvIGxhbmd1YWdlIGNhbiBiZSBkZWZpbmVkIC0gd2l0aCBtYWNyb3MgX1NUQVJUXywgX0VORF8gYW5kIF9UT1RBTF8iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNJbmZvIjogInVuaXQgX1NUQVJUXyBfRU5EXyBfVE9UQUxfIHRlc3QiCgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPSAidW5pdCAxIDEwIDU3IHRlc3QiOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/oLanguage.sInfoEmpty.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAib0xhbmd1YWdlLnNJbmZvRW1wdHkiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJhYURhdGEiOiBnYWFEYXRhCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiSW5mbyBlbXB0eSBsYW5ndWFnZSBpcyAnU2hvd2luZyAwIHRvIDAgb2YgMCBlbnRyaWVzJyBieSBkZWZhdWx0IiwKCQlmdW5jdGlvbiAoKSB7IG9UYWJsZS5mbkZpbHRlcigibm90aGluZ2hlcmUiKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0xhbmd1YWdlLnNJbmZvRW1wdHkgPT0gIlNob3dpbmcgMCB0byAwIG9mIDAgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkluZm8gZW1wdHkgbGFuZ3VhZ2UgZGVmYXVsdCBpcyBpbiB0aGUgRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGJSZXR1cm4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MLnJlcGxhY2UoIAoJCQkJJyAnK29TZXR0aW5ncy5vTGFuZ3VhZ2Uuc0luZm9GaWx0ZXJlZC5yZXBsYWNlKCAnX01BWF8nLCAnNTcnICksICIiICkgPT0KCQkJCQkiU2hvd2luZyAwIHRvIDAgb2YgMCBlbnRyaWVzIjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJJbmZvIGVtcHR5IGxhbmd1YWdlIGNhbiBiZSBkZWZpbmVkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzSW5mb0VtcHR5IjogInVuaXQgdGVzdCIKCQkJCX0KCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCQlvVGFibGUuZm5GaWx0ZXIoIm5vdGhpbmdoZXJlIik7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0xhbmd1YWdlLnNJbmZvRW1wdHkgPT0gInVuaXQgdGVzdCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkluZm8gZW1wdHkgbGFuZ3VhZ2UgZGVmYXVsdCBpcyBpbiB0aGUgRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGJSZXR1cm4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MLnJlcGxhY2UoIAoJCQkJJyAnK29TZXR0aW5ncy5vTGFuZ3VhZ2Uuc0luZm9GaWx0ZXJlZC5yZXBsYWNlKCAnX01BWF8nLCAnNTcnICksICIiICkgPT0KCQkJCQkidW5pdCB0ZXN0IjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJNYWNybydzIHJlcGxhY2VkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzSW5mb0VtcHR5IjogInVuaXQgX1NUQVJUXyBfRU5EXyBfVE9UQUxfIHRlc3QiCgkJCQl9CgkJCX0gKTsKCQkJb1RhYmxlLmZuRmlsdGVyKCJub3RoaW5naGVyZSIpOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYlJldHVybiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwucmVwbGFjZSggCgkJCQknICcrb1NldHRpbmdzLm9MYW5ndWFnZS5zSW5mb0ZpbHRlcmVkLnJlcGxhY2UoICdfTUFYXycsICc1NycgKSwgIiIgKSA9PQoJCQkJCSJ1bml0IDEgMCAwIHRlc3QiOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/oLanguage.sInfoPostFix.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAib0xhbmd1YWdlLnNJbmZvUG9zdEZpeCIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImFhRGF0YSI6IGdhYURhdGEKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJbmZvIHBvc3QgZml4IGxhbmd1YWdlIGlzICcnIChibGFuaykgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0xhbmd1YWdlLnNJbmZvUG9zdEZpeCA9PSAiIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiV2lkdGggbm8gcG9zdCBmaXgsIHRoZSBiYXNpYyBpbmZvIHNob3dzIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPSAiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCgkKCW9UZXN0LmZuVGVzdCggCgkJIkluZm8gcG9zdCBmaXggbGFuZ3VhZ2UgY2FuIGJlIGRlZmluZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNJbmZvUG9zdEZpeCI6ICJ1bml0IHRlc3QiCgkJCQl9CgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc0luZm9Qb3N0Rml4ID09ICJ1bml0IHRlc3QiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJbmZvIGVtcHR5IGxhbmd1YWdlIGRlZmF1bHQgaXMgaW4gdGhlIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID0gIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIHVuaXQgdGVzdCI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiTWFjcm9zIGhhdmUgbm8gZWZmZWN0IGluIHRoZSBwb3N0IGZpeCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic0luZm9Qb3N0Rml4IjogInVuaXQgX1NUQVJUXyBfRU5EXyBfVE9UQUxfIHRlc3QiCgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPSAiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMgdW5pdCBfU1RBUlRfIF9FTkRfIF9UT1RBTF8gdGVzdCI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUG9zdCBmaXggaXMgYXBwbGllZCBhZnRlciBmaW50ZXJpbmcgaW5mbyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic0luZm9Qb3N0Rml4IjogInVuaXQgdGVzdCIKCQkJCX0KCQkJfSApOwoJCQlvVGFibGUuZm5GaWx0ZXIoIm5vdGhpbmdoZXJlIik7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID0gIlNob3dpbmcgMCB0byAwIG9mIDAgZW50cmllcyB1bml0IChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIHRlc3QiOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/oLanguage.sLengthMenu.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAib0xhbmd1YWdlLnNMZW5ndGhNZW51IiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkiYWFEYXRhIjogZ2FhRGF0YQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIk1lbnUgbGFuZ3VhZ2UgaXMgJ1Nob3cgX01FTlVfIGVudHJpZXMnIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9MYW5ndWFnZS5zTGVuZ3RoTWVudSA9PSAiU2hvdyBfTUVOVV8gZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiX01FTlVfIG1hY3JvIGlzIHJlcGxhY2VkIGJ5IHNlbGVjdCBtZW51IGluIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCdzZWxlY3QnLCBvU2V0dGluZ3MuYWFuRmVhdHVyZXMubFswXSkubGVuZ3RoID09IDEgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJBIGxhYmVsIGlucHV0IGlzIHVzZWQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnbGFiZWwnLCBvU2V0dGluZ3MuYWFuRmVhdHVyZXMubFswXSkubGVuZ3RoID09IDEgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJEZWZhdWx0IGlzIHB1dCBpbnRvIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBhbkNoaWxkcmVuID0gJCgnbGFiZWwnLG9TZXR0aW5ncy5hYW5GZWF0dXJlcy5sWzBdKVswXS5jaGlsZE5vZGVzOwoJCQl2YXIgYlJldHVybiA9CgkJCQlhbkNoaWxkcmVuWzBdLm5vZGVWYWx1ZSA9PSAiU2hvdyAiICYmCgkJCQlhbkNoaWxkcmVuWzJdLm5vZGVWYWx1ZSA9PSAiIGVudHJpZXMiOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuVGVzdCggCgkJIk1lbnUgbGVuZ3RoIGxhbmd1YWdlIGNhbiBiZSBkZWZpbmVkIC0gbm8gX01FTlVfIG1hY3JvIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzTGVuZ3RoTWVudSI6ICJ1bml0IHRlc3QiCgkJCQl9CgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc0xlbmd0aE1lbnUgPT0gInVuaXQgdGVzdCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIk1lbnUgbGVuZ3RoIGxhbmd1YWdlIGRlZmluaXRpb24gaXMgaW4gdGhlIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiAkKCdsYWJlbCcsIG9TZXR0aW5ncy5hYW5GZWF0dXJlcy5sWzBdKS50ZXh0KCkgPT0gInVuaXQgdGVzdCI7CgkJfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJNZW51IGxlbmd0aCBsYW5ndWFnZSBjYW4gYmUgZGVmaW5lZCAtIHdpdGggX01FTlVfIG1hY3JvIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzTGVuZ3RoTWVudSI6ICJ1bml0IF9NRU5VXyB0ZXN0IgoJCQkJfQoJCQl9ICk7CgkJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBhbkNoaWxkcmVuID0gJCgnbGFiZWwnLG9TZXR0aW5ncy5hYW5GZWF0dXJlcy5sWzBdKVswXS5jaGlsZE5vZGVzOwoJCQl2YXIgYlJldHVybiA9CgkJCQlhbkNoaWxkcmVuWzBdLm5vZGVWYWx1ZSA9PSAidW5pdCAiICYmCgkJCQlhbkNoaWxkcmVuWzJdLm5vZGVWYWx1ZSA9PSAiIHRlc3QiOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuVGVzdCggCgkJIk9ubHkgdGhlIF9NRU5VXyBtYWNybyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic0xlbmd0aE1lbnUiOiAiX01FTlVfIgoJCQkJfQoJCQl9ICk7CgkJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBhbkNoaWxkcmVuID0gb1NldHRpbmdzLmFhbkZlYXR1cmVzLmxbMF0uY2hpbGROb2RlczsKCQkJdmFyIGJSZXR1cm4gPQoJCQkJYW5DaGlsZHJlbi5sZW5ndGggPT0gMSAmJgoJCQkJJCgnc2VsZWN0Jywgb1NldHRpbmdzLmFhbkZlYXR1cmVzLmxbMF0pLmxlbmd0aCA9PSAxOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/oLanguage.sProcessing.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAib0xhbmd1YWdlLnNQcm9jZXNzaW5nIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkiYlByb2Nlc3NpbmciOiB0cnVlCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUHJvY2Vzc2luZyBsYW5ndWFnZSBpcyAnUHJvY2Vzc2luZy4uLicgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0xhbmd1YWdlLnNQcm9jZXNzaW5nID09ICJQcm9jZXNzaW5nLi4uIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUHJvY2Vzc2luZyBsYW5ndWFnZSBkZWZhdWx0IGlzIGluIHRoZSBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcHJvY2Vzc2luZycpLmlubmVySFRNTCA9ICJQcm9jZXNzaW5nLi4uIjsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJQcm9jZXNzaW5nIGxhbmd1YWdlIGNhbiBiZSBkZWZpbmVkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkiYlByb2Nlc3NpbmciOiB0cnVlLAoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic1Byb2Nlc3NpbmciOiAidW5pdCB0ZXN0IgoJCQkJfQoJCQl9ICk7CgkJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0xhbmd1YWdlLnNQcm9jZXNzaW5nID09ICJ1bml0IHRlc3QiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJQcm9jZXNzaW5nIGxhbmd1YWdlIGRlZmluaXRpb24gaXMgaW4gdGhlIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wcm9jZXNzaW5nJykuaW5uZXJIVE1MID0gInVuaXQgdGVzdCI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/oLanguage.sSearch.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAib0xhbmd1YWdlLnNTZWFyY2giICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJhYURhdGEiOiBnYWFEYXRhCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU2VhcmNoIGxhbmd1YWdlIGlzICdTZWFyY2g6JyBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc1NlYXJjaCA9PSAiU2VhcmNoOiI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiQSBsYWJlbCBpbnB1dCBpcyB1c2VkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJ2xhYmVsJywgb1NldHRpbmdzLmFhbkZlYXR1cmVzLmZbMF0pLmxlbmd0aCA9PSAxIH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNlYXJjaCBsYW5ndWFnZSBkZWZhdWx0IGlzIGluIHRoZSBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnbGFiZWwnLCBvU2V0dGluZ3MuYWFuRmVhdHVyZXMuZlswXSkudGV4dCgpCgkJIAk9PSAiU2VhcmNoOiAiOyB9CgkpOwoJCgkKCW9UZXN0LmZuVGVzdCggCgkJIlNlYXJjaCBsYW5ndWFnZSBjYW4gYmUgZGVmaW5lZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic1NlYXJjaCI6ICJ1bml0IHRlc3QiCgkJCQl9CgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc1NlYXJjaCA9PSAidW5pdCB0ZXN0IjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiSW5mbyBsYW5ndWFnZSBkZWZpbml0aW9uIGlzIGluIHRoZSBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnbGFiZWwnLCBvU2V0dGluZ3MuYWFuRmVhdHVyZXMuZlswXSkudGV4dCgpLmluZGV4T2YoJ3VuaXQgdGVzdCcpICE9PSAtMTsgfQoJKTsKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJCbGFuayBzZWFyY2ggaGFzIGEgbm8gKHNlcGFyYXRvcikgaW5zZXJ0ZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNTZWFyY2giOiAiIgoJCQkJfQoJCQl9ICk7CgkJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9maWx0ZXInKS5jaGlsZE5vZGVzLmxlbmd0aCA9PSAxOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/oLanguage.sUrl.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAib0xhbmd1YWdlLnNVcmwiICk7CgovKiBOb3RlIHRoYXQgd2Ugb25seSB0ZXN0IHRoZSBpbnRlcm5hbCBzdG9yYWdlIG9mIGxhbmd1YWdlIGluZm9ybWF0aW9uIHB1bGxlZCBmb3JtIGEgZmlsZSBoZXJlCiAqIGFzIHRoZSBvdGhlciBsYW5ndWFnZSB0ZXN0cyB3aWxsIGNoZWNrIGl0IGdvZXMgaW50byB0aGUgRE9NIGNvcnJlY3RseQogKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImFhRGF0YSI6IGdhYURhdGEKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJzVXJsIGlzIGJsYW5rIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9MYW5ndWFnZS5zVXJsID09ICIiOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJMb2FkaW5nIG9mIEdlcm1hbiBmaWxlIGxvYWRzIGxhbmd1YWdlIGluZm9ybWF0aW9uIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzVXJsIjogIi4uLy4uLy4uL2V4YW1wbGVzL2V4YW1wbGVzX3N1cHBvcnQvZGVfREUudHh0IgoJCQkJfQoJCQl9ICk7CgkJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBiUmV0dXJuID0gCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLnNQcm9jZXNzaW5nID09ICJCaXR0ZSB3YXJ0ZW4uLi4iICYmCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLnNMZW5ndGhNZW51ID09ICJfTUVOVV8gRWludHLDpGdlIGFuemVpZ2VuIiAmJgoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5zWmVyb1JlY29yZHMgPT0gIktlaW5lIEVpbnRyw6RnZSB2b3JoYW5kZW4uIiAmJgoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5zSW5mbyA9PSAiX1NUQVJUXyBiaXMgX0VORF8gdm9uIF9UT1RBTF8gRWludHLDpGdlbiIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc0luZm9FbXB0eSA9PSAiMCBiaXMgMCB2b24gMCBFaW50csOkZ2VuIiAmJgoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5zSW5mb0ZpbHRlcmVkID09ICIoZ2VmaWx0ZXJ0IHZvbiBfTUFYXyAgRWludHLDpGdlbikiICYmCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLnNJbmZvUG9zdEZpeCA9PSAiIiAmJgoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5zU2VhcmNoID09ICJTdWNoZW4iICYmCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLm9QYWdpbmF0ZS5zRmlyc3QgPT0gIkVyc3RlciIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uub1BhZ2luYXRlLnNQcmV2aW91cyA9PSAiWnVyw7xjayIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uub1BhZ2luYXRlLnNOZXh0ID09ICJOw6RjaHN0ZXIiICYmCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLm9QYWdpbmF0ZS5zTGFzdCA9PSAiTGV0enRlciI7CgkJCQkKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJLyogT25lIERPTSBjaGVjayBqdXN0IHRvIGVuc3VyZSB0aGF0IHRoZXkgZ28gaW50byB0aGUgRE9NICovCglvVGVzdC5mblRlc3QoCgkJIkxvYWRlZCBsYW5ndWFnZSBnb2VzIGludG8gdGhlIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID0gIjEgYmlzIDEwIHZvbiA1NyBFaW50csOkZ2VuIjsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/oLanguage.sZeroRecords.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAib0xhbmd1YWdlLnNaZXJvUmVjb3JkcyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImFhRGF0YSI6IGdhYURhdGEKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJaZXJvIHJlY29yZHMgbGFuZ3VhZ2UgaXMgJ05vIG1hdGNoaW5nIHJlY29yZHMgZm91bmQnIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9MYW5ndWFnZS5zWmVyb1JlY29yZHMgPT0gIk5vIG1hdGNoaW5nIHJlY29yZHMgZm91bmQiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIlRleHQgaXMgc2hvd24gd2hlbiBlbXB0eSB0YWJsZSAoYWZ0ZXIgZmlsdGVyaW5nKSIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUuZm5GaWx0ZXIoJ25vdGhpbmdoZXJlJyk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHIgdGQnKVswXS5pbm5lckhUTUwgPT0gIk5vIG1hdGNoaW5nIHJlY29yZHMgZm91bmQiIH0KCSk7CgkKCQoJCglvVGVzdC5mblRlc3QoIAoJCSJaZXJvIHJlY29yZHMgbGFuZ3VhZ2UgY2FuIGJlIGRlZmluZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNaZXJvUmVjb3JkcyI6ICJ1bml0IHRlc3QiCgkJCQl9CgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc1plcm9SZWNvcmRzID09ICJ1bml0IHRlc3QiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIlRleHQgaXMgc2hvd24gd2hlbiBlbXB0eSB0YWJsZSAoYWZ0ZXIgZmlsdGVyaW5nKSIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUuZm5GaWx0ZXIoJ25vdGhpbmdoZXJlMicpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyIHRkJylbMF0uaW5uZXJIVE1MID09ICJ1bml0IHRlc3QiIH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/oSearch.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAib1NlYXJjaCIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImFhRGF0YSI6IGdhYURhdGEKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJEZWZhdWx0IHZhbHVlcyBzaG91bGQgYmUgYmxhbmsiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYlJldHVybiA9IG9TZXR0aW5ncy5vUHJldmlvdXNTZWFyY2guc1NlYXJjaCA9PSAiIiAmJiAKCQkJICAgICAgICAgICAgICAhb1NldHRpbmdzLm9QcmV2aW91c1NlYXJjaC5iUmVnZXg7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCS8qIFRoaXMgdGVzdCBtaWdodCBiZSBjb25zaWRlcmVkIGlmZnkgc2luY2UgdGhlIGZ1bGwgb2JqZWN0IGlzbid0IGdpdmVuLCBidXQgaXQncyByZWFzb25hYmxlIHRvCgkgKiBleHBlY3QgRGF0YVRhYmxlcyB0byBjb3BlIHdpdGggdGhpcy4gSXQgc2hvdWxkIGp1c3QgYXNzdW1pbmUgcmVnZXggZmFsc2UKCSAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiU2VhcmNoIHRlcm0gb25seSBpbiBvYmplY3QiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJvU2VhcmNoIjogewoJCQkJCSJzU2VhcmNoIjogIk1vemlsbGEiCgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09ICJHZWNrbyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIk5ldyBzZWFyY2ggd2lsbCBraWxsIG9sZCBvbmUiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1RhYmxlLmZuRmlsdGVyKCJPcGVyYSIpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gIlByZXN0byI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNlYXJjaCBwbGFpbiB0ZXh0IHRlcm0gYW5kIGVzY2FwZSByZWdleCB0cnVlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkib1NlYXJjaCI6IHsKCQkJCQkic1NlYXJjaCI6ICJEUyIsCgkJCQkJImJSZWdleCI6IGZhbHNlCgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICJOaW50ZW5kbyBEUyBicm93c2VyIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU2VhcmNoIHBsYWluIHRleHQgdGVybSBhbmQgZXNjYXBlIHJlZ2V4IGZhbHNlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkib1NlYXJjaCI6IHsKCQkJCQkic1NlYXJjaCI6ICJPcGVyYSIsCgkJCQkJImJSZWdleCI6IHRydWUKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gIlByZXN0byI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNlYXJjaCByZWdleCB0ZXh0IHRlcm0gYW5kIGVzY2FwZSByZWdleCB0cnVlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkib1NlYXJjaCI6IHsKCQkJCQkic1NlYXJjaCI6ICIxLioiLAoJCQkJCSJiUmVnZXgiOiBmYWxzZQoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiTm8gbWF0Y2hpbmcgcmVjb3JkcyBmb3VuZCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNlYXJjaCByZWdleCB0ZXh0IHRlcm0gYW5kIGVzY2FwZSByZWdleCBmYWxzZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJIm9TZWFyY2giOiB7CgkJCQkJInNTZWFyY2giOiAiMS4qIiwKCQkJCQkiYlJlZ2V4IjogdHJ1ZQoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiR2Vja28iOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/sAjaxSource.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAic0FqYXhTb3VyY2UiICk7CgovKiBOb3QgaW50ZXJlc3RlZCBpbiBhamF4IHNvdXJjZSBoZXJlIG90aGVyIHRoYW4gdG8gY2hlY2sgaXQncyBkZWZhdWx0ICovCgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJhYURhdGEiOiBnYWFEYXRhCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU2VydmVyIHNpZGUgaXMgb2ZmIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLnNBamF4U291cmNlID09IG51bGw7IH0KCSk7CgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/sDom.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAic0RvbSIgKTsKCi8qIFRoaXMgaXMgZ29pbmcgdG8gYmUgYnJ1dGFsIG9uIHRoZSBicm93c2VyISBUaGVyZSBpcyBhIGxvdCB0aGF0IGNhbiBiZSB0ZXN0ZWQgaGVyZS4uLiAqLwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkiYWFEYXRhIjogZ2FhRGF0YQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkRlZmF1bHQgRE9NIHZhcmFpYmxlIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5zRG9tID09ICJsZnJ0aXAiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJEZWZhdWx0IERPTSBpbiBkb2N1bWVudCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBuTm9kZXMgPSAkKCcjZGVtbyBkaXYsICNkZW1vIHRhYmxlJyk7CgkJCXZhciBuV3JhcHBlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3dyYXBwZXInKTsKCQkJdmFyIG5MZW5ndGggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9sZW5ndGgnKTsKCQkJdmFyIG5GaWx0ZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9maWx0ZXInKTsKCQkJdmFyIG5JbmZvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpOwoJCQl2YXIgblBhZ2luZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3BhZ2luYXRlJyk7CgkJCXZhciBuVGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZScpOwoJCQkKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCW5Ob2Rlc1swXSA9PSBuV3JhcHBlciAmJgoJCQkJbk5vZGVzWzFdID09IG5MZW5ndGggJiYKCQkJCW5Ob2Rlc1syXSA9PSBuRmlsdGVyICYmCgkJCQluTm9kZXNbM10gPT0gblRhYmxlICYmCgkJCQluTm9kZXNbNF0gPT0gbkluZm8gJiYKCQkJCW5Ob2Rlc1s1XSA9PSBuUGFnaW5nOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDaGVjayBleGFtcGxlIDEgaW4gY29kZSBwcm9wYWdhdGVzIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkic0RvbSI6ICc8IndyYXBwZXIiZmxpcHQ+JwoJCQl9ICk7CgkJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Muc0RvbSA9PSAnPCJ3cmFwcGVyImZsaXB0Pic7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoZWNrIGV4YW1wbGUgMSBpbiBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIganFOb2RlcyA9ICQoJyNkZW1vIGRpdiwgI2RlbW8gdGFibGUnKTsKCQkJdmFyIG5Ob2RlcyA9IFtdOwoJCQkKCQkJLyogU3RyaXAgdGhlIHBhZ2luZyBub2RlcyAqLwoJCQlmb3IgKCB2YXIgaT0wLCBpTGVuPWpxTm9kZXMubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQkJewoJCQkJaWYgKCBqcU5vZGVzW2ldLmdldEF0dHJpYnV0ZSgnaWQnKSAhPSAiZXhhbXBsZV9wcmV2aW91cyIgJiYKCQkJCSAgICAganFOb2Rlc1tpXS5nZXRBdHRyaWJ1dGUoJ2lkJykgIT0gImV4YW1wbGVfbmV4dCIgKQoJCQkJewoJCQkJCW5Ob2Rlcy5wdXNoKCBqcU5vZGVzW2ldICk7CgkJCQl9CgkJCX0KCQkJCgkJCXZhciBuV3JhcHBlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3dyYXBwZXInKTsKCQkJdmFyIG5MZW5ndGggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9sZW5ndGgnKTsKCQkJdmFyIG5GaWx0ZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9maWx0ZXInKTsKCQkJdmFyIG5JbmZvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpOwoJCQl2YXIgblBhZ2luZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3BhZ2luYXRlJyk7CgkJCXZhciBuVGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZScpOwoJCQl2YXIgbkN1c3RvbVdyYXBwZXIgPSAkKCdkaXYud3JhcHBlcicpWzBdOwoJCQkKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCW5Ob2Rlc1swXSA9PSBuV3JhcHBlciAmJgoJCQkJbk5vZGVzWzFdID09IG5DdXN0b21XcmFwcGVyICYmCgkJCQluTm9kZXNbMl0gPT0gbkZpbHRlciAmJgoJCQkJbk5vZGVzWzNdID09IG5MZW5ndGggJiYKCQkJCW5Ob2Rlc1s0XSA9PSBuSW5mbyAmJgoJCQkJbk5vZGVzWzVdID09IG5QYWdpbmcgJiYKCQkJCW5Ob2Rlc1s2XSA9PSBuVGFibGU7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoZWNrIGV4YW1wbGUgMiBpbiBET00iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYWFEYXRhIjogZ2FhRGF0YSwKCQkJCSJzRG9tIjogJzxsZjx0PmlwPicKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIganFOb2RlcyA9ICQoJyNkZW1vIGRpdiwgI2RlbW8gdGFibGUnKTsKCQkJdmFyIG5Ob2RlcyA9IFtdOwoJCQl2YXIgbkN1c3RvbVdyYXBwZXJzID0gW10KCQkJCgkJCS8qIFN0cmlwIHRoZSBwYWdpbmcgbm9kZXMgKi8KCQkJZm9yICggdmFyIGk9MCwgaUxlbj1qcU5vZGVzLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJCXsKCQkJCWlmICgganFOb2Rlc1tpXS5nZXRBdHRyaWJ1dGUoJ2lkJykgIT0gImV4YW1wbGVfcHJldmlvdXMiICYmCgkJCQkgICAgIGpxTm9kZXNbaV0uZ2V0QXR0cmlidXRlKCdpZCcpICE9ICJleGFtcGxlX25leHQiICkKCQkJCXsKCQkJCQluTm9kZXMucHVzaCgganFOb2Rlc1tpXSApOwoJCQkJfQoJCQkJCgkJCQkvKiBPbmx5IHRoZSB0d28gY3VzdG9tIGRpdnMgZG9uJ3QgaGF2ZSBjbGFzcyBuYW1lcyAqLwoJCQkJaWYgKCBqcU5vZGVzW2ldLmNsYXNzTmFtZSA9PSAiIiApCgkJCQl7CgkJCQkJbkN1c3RvbVdyYXBwZXJzLnB1c2goIGpxTm9kZXNbaV0gKTsKCQkJCX0KCQkJfQoJCQkKCQkJdmFyIG5XcmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfd3JhcHBlcicpOwoJCQl2YXIgbkxlbmd0aCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2xlbmd0aCcpOwoJCQl2YXIgbkZpbHRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2ZpbHRlcicpOwoJCQl2YXIgbkluZm8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJyk7CgkJCXZhciBuUGFnaW5nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcGFnaW5hdGUnKTsKCQkJdmFyIG5UYWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlJyk7CgkJCQoJCQl2YXIgYlJldHVybiA9IAoJCQkJbk5vZGVzWzBdID09IG5XcmFwcGVyICYmCgkJCQluTm9kZXNbMV0gPT0gbkN1c3RvbVdyYXBwZXJzWzBdICYmCgkJCQluTm9kZXNbMl0gPT0gbkxlbmd0aCAmJgoJCQkJbk5vZGVzWzNdID09IG5GaWx0ZXIgJiYKCQkJCW5Ob2Rlc1s0XSA9PSBuQ3VzdG9tV3JhcHBlcnNbMV0gJiYKCQkJCW5Ob2Rlc1s1XSA9PSBuVGFibGUgJiYKCQkJCW5Ob2Rlc1s2XSA9PSBuSW5mbyAmJgoJCQkJbk5vZGVzWzddID09IG5QYWdpbmc7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoZWNrIG5vIGxlbmd0aCBlbGVtZW50IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkic0RvbSI6ICdmcnRpcCcKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgbk5vZGVzID0gJCgnI2RlbW8gZGl2LCAjZGVtbyB0YWJsZScpOwoJCQl2YXIgbldyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV93cmFwcGVyJyk7CgkJCXZhciBuTGVuZ3RoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfbGVuZ3RoJyk7CgkJCXZhciBuRmlsdGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfZmlsdGVyJyk7CgkJCXZhciBuSW5mbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKTsKCQkJdmFyIG5QYWdpbmcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wYWdpbmF0ZScpOwoJCQl2YXIgblRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGUnKTsKCQkJCgkJCXZhciBiUmV0dXJuID0gCgkJCQluTm9kZXNbMF0gPT0gbldyYXBwZXIgJiYKCQkJCW51bGwgPT0gbkxlbmd0aCAmJgoJCQkJbk5vZGVzWzFdID09IG5GaWx0ZXIgJiYKCQkJCW5Ob2Rlc1syXSA9PSBuVGFibGUgJiYKCQkJCW5Ob2Rlc1szXSA9PSBuSW5mbyAmJgoJCQkJbk5vZGVzWzRdID09IG5QYWdpbmc7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoZWNrIG5vIGZpbHRlciBlbGVtZW50IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImFhRGF0YSI6IGdhYURhdGEsCgkJCQkic0RvbSI6ICdscnRpcCcKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgbk5vZGVzID0gJCgnI2RlbW8gZGl2LCAjZGVtbyB0YWJsZScpOwoJCQl2YXIgbldyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV93cmFwcGVyJyk7CgkJCXZhciBuTGVuZ3RoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfbGVuZ3RoJyk7CgkJCXZhciBuRmlsdGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfZmlsdGVyJyk7CgkJCXZhciBuSW5mbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKTsKCQkJdmFyIG5QYWdpbmcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wYWdpbmF0ZScpOwoJCQl2YXIgblRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGUnKTsKCQkJCgkJCXZhciBiUmV0dXJuID0gCgkJCQluTm9kZXNbMF0gPT0gbldyYXBwZXIgJiYKCQkJCW5Ob2Rlc1sxXSA9PSBuTGVuZ3RoICYmCgkJCQludWxsID09IG5GaWx0ZXIgJiYKCQkJCW5Ob2Rlc1syXSA9PSBuVGFibGUgJiYKCQkJCW5Ob2Rlc1szXSA9PSBuSW5mbyAmJgoJCQkJbk5vZGVzWzRdID09IG5QYWdpbmc7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCS8qIE5vdGUgd2UgZG9uJ3QgdGVzdCBmb3Igbm8gdGFibGUgYXMgdGhpcyBpcyBub3Qgc3VwcG9ydGVkIChhbmQgaXQgd291bGQgYmUgZmFpcmx5IGRhZnQhICovCgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoZWNrIG5vIGluZm8gZWxlbWVudCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJInNEb20iOiAnbGZydHAnCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIG5Ob2RlcyA9ICQoJyNkZW1vIGRpdiwgI2RlbW8gdGFibGUnKTsKCQkJdmFyIG5XcmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfd3JhcHBlcicpOwoJCQl2YXIgbkxlbmd0aCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2xlbmd0aCcpOwoJCQl2YXIgbkZpbHRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2ZpbHRlcicpOwoJCQl2YXIgbkluZm8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJyk7CgkJCXZhciBuUGFnaW5nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcGFnaW5hdGUnKTsKCQkJdmFyIG5UYWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlJyk7CgkJCQoJCQl2YXIgYlJldHVybiA9IAoJCQkJbk5vZGVzWzBdID09IG5XcmFwcGVyICYmCgkJCQluTm9kZXNbMV0gPT0gbkxlbmd0aCAmJgoJCQkJbk5vZGVzWzJdID09IG5GaWx0ZXIgJiYKCQkJCW5Ob2Rlc1szXSA9PSBuVGFibGUgJiYKCQkJCW51bGwgPT0gbkluZm8gJiYKCQkJCW5Ob2Rlc1s0XSA9PSBuUGFnaW5nOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDaGVjayBubyBwYWdpbmcgZWxlbWVudCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJInNEb20iOiAnbGZydGknCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIG5Ob2RlcyA9ICQoJyNkZW1vIGRpdiwgI2RlbW8gdGFibGUnKTsKCQkJdmFyIG5XcmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfd3JhcHBlcicpOwoJCQl2YXIgbkxlbmd0aCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2xlbmd0aCcpOwoJCQl2YXIgbkZpbHRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2ZpbHRlcicpOwoJCQl2YXIgbkluZm8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJyk7CgkJCXZhciBuUGFnaW5nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcGFnaW5hdGUnKTsKCQkJdmFyIG5UYWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlJyk7CgkJCQoJCQl2YXIgYlJldHVybiA9IAoJCQkJbk5vZGVzWzBdID09IG5XcmFwcGVyICYmCgkJCQluTm9kZXNbMV0gPT0gbkxlbmd0aCAmJgoJCQkJbk5vZGVzWzJdID09IG5GaWx0ZXIgJiYKCQkJCW5Ob2Rlc1szXSA9PSBuVGFibGUgJiYKCQkJCW5Ob2Rlc1s0XSA9PSBuSW5mbyAmJgoJCQkJbnVsbCA9PSBuUGFnaW5nOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/sPaginationType.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAic1BhZ2luYXRpb25UeXBlIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkiYWFEYXRhIjogZ2FhRGF0YQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoZWNrIHR3byBidXR0b24gcGFnaW5nIGlzIHRoZSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5zUGFnaW5hdGlvblR5cGUgPT0gInR3b19idXR0b24iOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDaGVjayBjbGFzcyBpcyBhcHBsaWVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlX3BhZ2luYXRlJykuaGFzQ2xhc3MoJ3BhZ2luZ190d29fYnV0dG9uJyk7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlR3byBBIGVsZW1lbnRzIGFyZSBpbiB0aGUgd3JhcHBlciIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9wYWdpbmF0ZSBhJykubGVuZ3RoID09IDI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIldlIGhhdmUgdGhlIHByZXZpb3VzIGJ1dHRvbiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wcmV2aW91cycpOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJXZSBoYXZlIHRoZSBuZXh0IGJ1dHRvbiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9uZXh0Jyk7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlByZXZpb3VzIGJ1dHRvbiBpcyBkaXNhYmxlZCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9wcmV2aW91cycpLmhhc0NsYXNzKCdwYWdpbmF0ZV9kaXNhYmxlZF9wcmV2aW91cycpOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJOZXh0IGJ1dHRvbiBpcyBlbmFibGVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlX25leHQnKS5oYXNDbGFzcygncGFnaW5hdGVfZW5hYmxlZF9uZXh0Jyk7IH0KCSk7CgkKCS8qIERvbid0IHRlc3QgcGFnaW5nIC0gdGhhdCdzIGRvbmUgYnkgdGhlIHplcm8gY29uZmlnIHRlc3Qgc2NyaXB0LiAqLwoJCgkKCS8qIFR3byBidXR0b25zIHBhZ2luZyAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2FuIGVuYWJsZWQgZnVsbCBudW1iZXJzIHBhZ2luZyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJhYURhdGEiOiBnYWFEYXRhLAoJCQkJInNQYWdpbmF0aW9uVHlwZSI6ICJmdWxsX251bWJlcnMiCgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5zUGFnaW5hdGlvblR5cGUgPT0gImZ1bGxfbnVtYmVycyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoZWNrIGZ1bGwgbnVtYmVycyBjbGFzcyBpcyBhcHBsaWVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlX3BhZ2luYXRlJykuaGFzQ2xhc3MoJ3BhZ2luZ19mdWxsX251bWJlcnMnKTsgfQoJKTsKCQoJCgl2YXIgbkZpcnN0LCBuUHJldmlvdXMsIG5OZXh0LCBuTGFzdDsKCW9UZXN0LmZuVGVzdCggCgkJIkp1bXAgdG8gbGFzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW5GaXJzdCA9ICQoJ2Rpdi5kYXRhVGFibGVzX3BhZ2luYXRlIGEuZmlyc3QnKTsKCQkJblByZXZpb3VzID0gJCgnZGl2LmRhdGFUYWJsZXNfcGFnaW5hdGUgYS5wcmV2aW91cycpOwoJCQluTmV4dCA9ICQoJ2Rpdi5kYXRhVGFibGVzX3BhZ2luYXRlIGEubmV4dCcpOwoJCQluTGFzdCA9ICQoJ2Rpdi5kYXRhVGFibGVzX3BhZ2luYXRlIGEubGFzdCcpOwoJCQluTGFzdC5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyA1MSB0byA1NyBvZiA1NyBlbnRyaWVzIjsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJHbyB0byB0d28gcGFnZXMgcHJldmlvdXMiLAoJCWZ1bmN0aW9uICgpIHsKCQkJblByZXZpb3VzLmNsaWNrKCk7CgkJCW5QcmV2aW91cy5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAzMSB0byA0MCBvZiA1NyBlbnRyaWVzIjsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJOZXh0IChzZWNvbmQgbGFzdCkgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQluTmV4dC5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyA0MSB0byA1MCBvZiA1NyBlbnRyaWVzIjsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJKdW1wIHRvIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJbkZpcnN0LmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7CgkJfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/2_js/_zero_config.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAiU2FuaXR5IGNoZWNrcyBmb3IgRGF0YVRhYmxlcyB3aXRoIGRhdGEgZnJvbSBKUyIgKTsKCm9UZXN0LmZuVGVzdCggCgkialF1ZXJ5LmRhdGFUYWJsZSBmdW5jdGlvbiIsCgludWxsLAoJZnVuY3Rpb24gKCkgeyByZXR1cm4gdHlwZW9mIGpRdWVyeSgpLmRhdGFUYWJsZSA9PSAiZnVuY3Rpb24iOyB9Cik7CgpvVGVzdC5mblRlc3QoCgkialF1ZXJ5LmRhdGFUYWJsZVNldHRpbmdzIHN0b3JhZ2UgYXJyYXkiLAoJbnVsbCwKCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVvZiBqUXVlcnkoKS5kYXRhVGFibGVTZXR0aW5ncyA9PSAib2JqZWN0IjsgfQopOwoKb1Rlc3QuZm5UZXN0KAoJImpRdWVyeS5kYXRhVGFibGVFeHQgcGx1Z2luIG9iamVjdCIsCgludWxsLAoJZnVuY3Rpb24gKCkgeyByZXR1cm4gdHlwZW9mIGpRdWVyeSgpLmRhdGFUYWJsZUV4dCA9PSAib2JqZWN0IjsgfQopOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCXZhciBvSW5pdCA9IHsKCQkiYWFEYXRhIjogZ2FhRGF0YQoJfTsKCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCBvSW5pdCApOwoJCgkvKiBCYXNpYyBjaGVja3MgKi8KCW9UZXN0LmZuVGVzdCggCgkJIkxlbmd0aCBjaGFuZ2luZyBkaXYgZXhpc3RzIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2xlbmd0aCcpICE9IG51bGw7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkZpbHRlcmluZyBkaXYgZXhpc3RzIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2ZpbHRlcicpICE9IG51bGw7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkluZm9ybWF0aW9uIGRpdiBleGlzdHMiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpICE9IG51bGw7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlBhZ2luYXRpb24gZGl2IGV4aXN0cyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wYWdpbmF0ZScpICE9IG51bGw7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlByb2Nlc3NpbmcgZGl2IGlzIG9mZiBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3Byb2Nlc3NpbmcnKSA9PSBudWxsOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSIxMCByb3dzIHNob3duIG9uIHRoZSBmaXJzdCBwYWdlIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDEwOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJbml0aWFsIHNvcnQgb2NjdXJlZCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiR2Vja28iOyB9CgkpOwoJCgkvKiBOZWVkIHRvIHVzZSB0aGUgV2FpdFRlc3QgZm9yIHNvcnRpbmcgZHVlIHRvIHRoZSBzZXRUaW1lb3V0IGRhdGF0YWJsZXMgdXNlcyAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyAoZmlyc3QgY2xpY2spIG9uIHNlY29uZCBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyAoc2Vjb25kIGNsaWNrKSBvbiBzZWNvbmQgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiU2VhbW9ua2V5IDEuMSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgKHRoaXJkIGNsaWNrKSBvbiBzZWNvbmQgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgKGZpcnN0IGNsaWNrKSBvbiBudW1lcmljIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIi0iOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIChzZWNvbmQgY2xpY2spIG9uIG51bWVyaWMgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiNTIyLjEiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIG11bHRpLWNvbHVtbiAoZmlyc3QgY2xpY2spIiwKCQlmdW5jdGlvbiAoKSB7IAoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgwKScpLmNsaWNrKCk7CgkJCW9EaXNwYWNoZXIuY2xpY2soICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJylbMF0sIHsgJ3NoaWZ0JzogdHJ1ZSB9ICk7IH0sCgkJZnVuY3Rpb24gKCkgeyB2YXIgYiA9IAoJCQkkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiR2Vja28iICYmIAoJCQkkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQ2FtaW5vIDEuMCI7IHJldHVybiBiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIG11bHRpLWNvbHVtbiAtIHNvcnRpbmcgc2Vjb25kIGNvbHVtbiBvbmx5IiwKCQlmdW5jdGlvbiAoKSB7IAoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCgkvKiBCYXNpYyBwYWdpbmcgKi8KCW9UZXN0LmZuVGVzdCggCgkJIlBhZ2luZyB0byBzZWNvbmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiSUUgTW9iaWxlIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUGFnaW5nIHRvIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQXR0ZW1wdGluZyB0byBwYWdlIGJhY2sgYmV5b25kIHRoZSBmaXJzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCS8qIENoYW5naW5nIGxlbmd0aCAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2hhbmdpbmcgdGFibGUgbGVuZ3RoIHRvIDI1IHJlY29yZHMiLAoJCWZ1bmN0aW9uICgpIHsgJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcyNScpLmNoYW5nZSgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDI1OyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDaGFuZ2luZyB0YWJsZSBsZW5ndGggdG8gNTAgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzUwJykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gNTA7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoYW5naW5nIHRhYmxlIGxlbmd0aCB0byAxMDAgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzEwMCcpLmNoYW5nZSgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDU3OyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDaGFuZ2luZyB0YWJsZSBsZW5ndGggdG8gMTAgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzEwJykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMTA7IH0KCSk7CgkKCS8qCgkgKiBJbmZvcm1hdGlvbiBlbGVtZW50CgkgKi8KCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gb24gemVybyBjb25maWciLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIG9uIHNlY29uZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMTEgdG8gMjAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gb24gdGhpcmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDIxIHRvIDMwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIG9uIGxhc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyA1MSB0byA1NyBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiBiYWNrIG9uIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCAyNSByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7ICQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnMjUnKS5jaGFuZ2UoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDEgdG8gMjUgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCAyNSByZWNvcmRzIC0gc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAyNiB0byA1MCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIDEwMCByZWNvcmRzIC0gZmlyc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnMTAwJykuY2hhbmdlKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDEgdG8gNTcgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gYmFjayB0byAxMCByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcxMCcpLmNoYW5nZSgpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyICdXaW4nIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2luIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyICdXaW4nIHNlY29uZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDExIHRvIDIwIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyICdXaW4nIGxhc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAzMSB0byAzMSBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciAnV2luJyBiYWNrIHRvIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbicgc2Vjb25kIHBhZ2UgLSBzZWNvbmQgdGltZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDExIHRvIDIwIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyIGluY3JlYXNlZCB0byAnV2luIDk4JyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIldpbiA5OCIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byA5IG9mIDkgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgZGVjcmVhc2VkIHRvICdXaW4nIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2luIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyICdXaW4nIHNlY29uZCBwYWdlIC0gdGhpcmQgdGltZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDExIHRvIDIwIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyIHJlbW92ZWQiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCIiKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCQoJLyoKCSAqIEZpbHRlcmluZwoJICovCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnVycgLSByb3dzIiwKCQlmdW5jdGlvbiAoKSB7IAoJCQkvKiBSZXNldCB0aGUgdGFibGUgc3VjaCB0aGF0IHRoZSBvbGQgc29ydGluZyBkb2Vzbid0IG1lc3MgdGhpbmdzIHVwICovCgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggb0luaXQgKTsKCQkJJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiR2Vja28iOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnVycgLSBpbmZvIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgNDIgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaSciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXaSIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAzMiBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbiciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXaW4iKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaW4nIC0gc29ydGluZyBjb2x1bW4gMSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFPTCBicm93c2VyIChBT0wgZGVza3RvcCkiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luJyAtIHNvcnRpbmcgY29sdW1uIDEgaW5mbyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luJyAtIHNvcnRpbmcgY29sdW1uIDEgcmV2ZXJzZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIlNlYW1vbmtleSAxLjEiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luIFhQJyAtIG1haW50YWluZyByZXZlcnNlIHNvcnRpbmcgY29sIDEiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXaW4gWFAiKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICJJbnRlcm5ldCBFeHBsb3JlciA3IjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbiBYUCcgLSBzb3J0aW5nIGNvbCAzIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiNCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaW4gWFAnIC0gc29ydGluZyBjb2wgMyAtIHJldmVyc2VkIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiNyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaW4nIC0gc29ydGluZyBjb2wgMyAtIHJldmVyc2VkIGluZm8iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byA2IG9mIDYgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdub3RoaW5naGVyZSciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJub3RoaW5naGVyZSIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gCgkJCSJObyBtYXRjaGluZyByZWNvcmRzIGZvdW5kIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ25vdGhpbmdoZXJlJyAtIGluZm8iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMCB0byAwIG9mIDAgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyIGJhY2sgdG8gYmxhbmsgYW5kIDFzdCBjb2x1bW4gc29ydGluZyIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIiIpLmtleXVwKCk7CgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDApJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiUHJlZml4aW5nIGEgZmlsdGVyIGVudHJ5IiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2luIikua2V5dXAoKTsKCQkJJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJHZWNrb1dpbiIpLmtleXVwKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAwIHRvIDAgb2YgMCBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJQcmVmaXhpbmcgYSBmaWx0ZXIgZW50cnkgd2l0aCBzcGFjZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIkdlY2tvIFdpbiIpLmtleXVwKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDE3IGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCgkKCQoJCgkKCQoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/aaSorting.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFhU29ydGluZyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IgoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJEZWZhdWx0IHNvcnRpbmcgaXMgc2luZ2xlIGNvbHVtbiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiBvU2V0dGluZ3MuYWFTb3J0aW5nLmxlbmd0aCA9PSAxICYmIHR5cGVvZiBvU2V0dGluZ3MuYWFTb3J0aW5nWzBdID09ICdvYmplY3QnOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJEZWZhdWx0IHNvcnRpbmcgaXMgZmlyc3QgY29sdW1uIGFzYyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiBvU2V0dGluZ3MuYWFTb3J0aW5nWzBdLmxlbmd0aCA9PSAzICYmIG9TZXR0aW5ncy5hYVNvcnRpbmdbMF1bMF0gPT0gMCAmJgoJCQkJb1NldHRpbmdzLmFhU29ydGluZ1swXVsxXSA9PSAnYXNjJzsKCQl9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU29ydGluZyBpcyBhcHBsaWVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDApJykuaHRtbCgpID09ICJHZWNrbyI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkN1c3RvbSBzb3J0aW5nIG9uIHNpbmdsZSBzdHJpbmcgY29sdW1uIGFzYyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYWFTb3J0aW5nIjogW1snMScsJ2FzYyddXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkN1c3RvbSBzb3J0aW5nIG9uIHNpbmdsZSBzdHJpbmcgY29sdW1uIGRlc2MiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImFhU29ydGluZyI6IFtbJzEnLCdkZXNjJ11dCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJTZWFtb25rZXkgMS4xIjsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ3VzdG9tIHNvcnRpbmcgb24gc2luZ2xlIGludCBjb2x1bW4gYXNjIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJhYVNvcnRpbmciOiBbWycxJywnYXNjJ11dCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDMpJykuaHRtbCgpID09ICItIjsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ3VzdG9tIHNvcnRpbmcgb24gc2luZ2xlIGludCBjb2x1bW4gZGVzYyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYWFTb3J0aW5nIjogW1snMScsJ2Rlc2MnXV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIlNlYW1vbmtleSAxLjEiOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJNdWx0aS1jb2x1bW4gc29ydGluZyAoMiBjb2x1bW4pIC0gc3RyaW5nIGFzYyAvIHN0cmluZyBhc2MiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImFhU29ydGluZyI6IFtbJzAnLCdhc2MnXSwgWycxJywnYXNjJ11dCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJDYW1pbm8gMS4wIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk11bHRpLWNvbHVtbiBzb3J0aW5nICgyIGNvbHVtbikgLSBzdHJpbmcgYXNjIC8gc3RyaW5nIGRlc2MiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImFhU29ydGluZyI6IFtbJzAnLCdhc2MnXSwgWycxJywnZGVzYyddXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiU2VhbW9ua2V5IDEuMSI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJNdWx0aS1jb2x1bW4gc29ydGluZyAoMiBjb2x1bW4pIC0gc3RyaW5nIGRlc2MgLyBzdHJpbmcgYXNjIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJhYVNvcnRpbmciOiBbWycwJywnZGVzYyddLCBbJzEnLCdhc2MnXV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gImlQb2QgVG91Y2ggLyBpUGhvbmUiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTXVsdGktY29sdW1uIHNvcnRpbmcgKDIgY29sdW1uKSAtIHN0cmluZyBkZXNjIC8gc3RyaW5nIGRlc2MiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImFhU29ydGluZyI6IFtbJzAnLCdkZXNjJ10sIFsnMScsJ2Rlc2MnXV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIlNhZmFyaSAzLjAiOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJNdWx0aS1jb2x1bW4gc29ydGluZyAoMiBjb2x1bW4pIC0gc3RyaW5nIGFzYyAvIGludCBhc2MiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImFhU29ydGluZyI6IFtbJzAnLCdhc2MnXSwgWyczJywnYXNjJ11dCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDMpJykuaHRtbCgpID09ICIxIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk11bHRpLWNvbHVtbiBzb3J0aW5nICgyIGNvbHVtbikgLSBzdHJpbmcgYXNjIC8gaW50IGRlc2MiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImFhU29ydGluZyI6IFtbJzAnLCdhc2MnXSwgWyczJywnZGVzYyddXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiMS45IjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk11bHRpLWNvbHVtbiBzb3J0aW5nICgyIGNvbHVtbikgLSBzdHJpbmcgZGVzYyAvIGludCBhc2MiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImFhU29ydGluZyI6IFtbJzAnLCdkZXNjJ10sIFsnMycsJ2FzYyddXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiMTI1LjUiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTXVsdGktY29sdW1uIHNvcnRpbmcgKDIgY29sdW1uKSAtIHN0cmluZyBkZXNjIC8gaW50IGRlc2MiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImFhU29ydGluZyI6IFtbJzAnLCdkZXNjJ10sIFsnMycsJ2Rlc2MnXV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIjUyMi4xIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk11bHRpLWNvbHVtbiBzb3J0aW5nICgzIGNvbHVtbikgLSBzdHJpbmcgYXNjIC8gaW50IGFzYyAvIHN0cmluZyBhc2MiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImFhU29ydGluZyI6IFtbJzAnLCdhc2MnXSwgWyczJywnYXNjJ10sIFsnMScsJ2FzYyddXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSg3KSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiRmlyZWZveCAxLjAiOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/aaSortingFixed.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFhU29ydGluZ0ZpeGVkIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk5vIGZpeGVkIHNvcnRpbmcgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiBvU2V0dGluZ3MuYWFTb3J0aW5nRml4ZWQgPT0gbnVsbDsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJGaXhlZCBzb3J0aW5nIG9uIGZpcnN0IGNvbHVtbiAoc3RyaW5nL2FzYykgd2l0aCB1c2VyIHNvcnRpbmcgb24gc2Vjb25kIGNvbHVtbiAoc3RyaW5nL2FzYykiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImFhU29ydGluZ0ZpeGVkIjogW1snMCcsJ2FzYyddXSwKCQkJCSJmbkluaXRDb21wbGV0ZSI6IGZ1bmN0aW9uICgpIHsKCQkJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7CgkJCQl9CgkJCX0gKTsKCQkJLy8KCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJDYW1pbm8gMS4wIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkZpeGVkIHNvcnRpbmcgb24gZmlyc3QgY29sdW1uIChzdHJpbmcvYXNjKSB3aXRoIHVzZXIgc29ydGluZyBvbiBzZWNvbmQgY29sdW1uIChzdHJpbmcvZGVzYykiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIlNlYW1vbmtleSAxLjEiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRml4ZWQgc29ydGluZyBvbiBmb3VydGggY29sdW1uIChpbnQvYXNjKSB3aXRoIHVzZXIgc29ydGluZyBvbiBzZWNvbmQgY29sdW1uIChzdHJpbmcvYXNjKSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYWFTb3J0aW5nRml4ZWQiOiBbWyczJywnYXNjJ11dCgkJCX0gKTsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRml4ZWQgc29ydGluZyBvbiBmb3VydGggY29sdW1uIChpbnQvYXNjKSB3aXRoIHVzZXIgc29ydGluZyBvbiBzZWNvbmQgY29sdW1uIChzdHJpbmcvZGVzYykiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIlBTUCBicm93c2VyIjsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/aoColumns.bSearchable.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5iU2VhY2hhYmxlIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNvbHVtbnMgYXJlIHNlYXJjaGFibGUgYnkgZGVmYXVsdCIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUuZm5GaWx0ZXIoIkNhbWlubyIpOyB9LAoJCWZ1bmN0aW9uICgpIHsKCQkJaWYgKCAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpWzBdICkKCQkJCXJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKS5tYXRjaCgvQ2FtaW5vLyk7CgkJCWVsc2UKCQkJCXJldHVybiBudWxsOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJEaXNhYmxpbmcgc29ydGluZyBvbiBhIGNvbHVtbiByZW1vdmVzIGl0IGZyb20gdGhlIGdsb2JhbCBmaWx0ZXIiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQludWxsLAoJCQkJCXsgImJTZWFyY2hhYmxlIjogZmFsc2UgfSwKCQkJCQludWxsLAoJCQkJCW51bGwsCgkJCQkJbnVsbAoJCQkJXQoJCQl9ICk7CgkJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJCW9UYWJsZS5mbkZpbHRlcigiQ2FtaW5vIik7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiTm8gbWF0Y2hpbmcgcmVjb3JkcyBmb3VuZCI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJEaXNhYmxlZCBvbiBvbmUgY29sdW1uIGhhcyBubyBlZmZlY3Qgb24gb3RoZXIgY29sdW1ucyIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUuZm5GaWx0ZXIoIldlYmtpdCIpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09ICJXZWJraXQiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRGlzYWJsZSBmaWx0ZXJpbmcgb24gbXVsdGlwbGUgY29sdW1ucyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCXsgImJTZWFyY2hhYmxlIjogZmFsc2UgfSwKCQkJCQl7ICJiU2VhcmNoYWJsZSI6IGZhbHNlIH0sCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCQlvVGFibGUuZm5GaWx0ZXIoIldlYmtpdCIpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gIk5vIG1hdGNoaW5nIHJlY29yZHMgZm91bmQiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRmlsdGVyIG9uIHNlY29uZCBkaXNhYmxlZCBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgb1RhYmxlLmZuRmlsdGVyKCJDYW1pbm8iKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiTm8gbWF0Y2hpbmcgcmVjb3JkcyBmb3VuZCI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/aoColumns.bSortable.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5iU29ydGFibGUiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQWxsIGNvbHVtbnMgYXJlIHNvcnRhYmxlIGJ5IGRlZmF1bHQiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNhbiBkaXNhYmxlIHNvcnRpbmcgZnJvbSBvbmUgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJbnVsbCwKCQkJCQl7ICJiU29ydGFibGUiOiBmYWxzZSB9LAoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgIT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRGlzYWJsZWQgY29sdW1uIGhhcyBubyBzb3J0aW5nIGNsYXNzIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuaGFzQ2xhc3MoInNvcnRpbmdfYXNjIikgPT0gZmFsc2U7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJPdGhlciBjb2x1bW5zIGNhbiBzdGlsbCBzb3J0IiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDQpJykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoNCknKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoNCknKS5odG1sKCkgPT0gIlgiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRGlzYWJsZSBzb3J0aW5nIG9uIG11bHRpcGxlIGNvbHVtbnMgLSBubyBzb3J0aW5nIGNsYXNzZXMiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQludWxsLAoJCQkJCXsgImJTb3J0YWJsZSI6IGZhbHNlIH0sCgkJCQkJbnVsbCwKCQkJCQl7ICJiU29ydGFibGUiOiBmYWxzZSB9LAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYlJldHVybiA9IAoJCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5oYXNDbGFzcygic29ydGluZyIpIHx8CgkJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmhhc0NsYXNzKCJzb3J0aW5nIikKCQkJcmV0dXJuIGJSZXR1cm4gPT0gZmFsc2U7CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgb24gZGlzYWJsZWQgY29sdW1uIDEgaGFzIG5vIGVmZmVjdCIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSAhPSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTb3J0aW5nIG9uIGRpc2FibGVkIGNvbHVtbiAyIGhhcyBubyBlZmZlY3QiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMyknKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMyknKS5odG1sKCkgIT0gIi0iOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU2Vjb25kIHNvcnQgb24gZGlzYWJsZWQgY29sdW1uIDIgaGFzIG5vIGVmZmVjdCIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgzKScpLmh0bWwoKSAhPSAiLSI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJFdmVuIHdpdGggbXVsdGlwbGUgZGlzYWJsZWQgc29ydGluZyBjb2x1bW5zIG90aGVyIGNvbHVtbnMgY2FuIHN0aWxsIHNvcnQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoNCknKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSg0KScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSg0KScpLmh0bWwoKSA9PSAiWCI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/aoColumns.bUseRendered.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5iVXNlUmVuZGVyZWQiICk7CgovKiBiVXNlUmVuZGVyZWQgaXMgdXNlZCB0byBhbHRlciBzb3J0aW5nIGRhdGEsIGlmIGZhbHNlIHRoZW4gdGhlIG9yaWdpbmFsIGRhdGEgaXMgdXNlZCBmb3IKICogc29ydGluZyByYXRoZXIgdGhhbiB0aGUgcmVuZGVyZWQgZGF0YQogKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG1UbXAgPSAwOwoJCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCSJhb0NvbHVtbnMiOiBbCgkJCW51bGwsCgkJCXsgImZuUmVuZGVyIjogZnVuY3Rpb24gKGEpIHsKCQkJCWlmICggbVRtcCA9PSAwICkgewoJCQkJCW1UbXArKzsKCQkJCQlyZXR1cm4gImFhYSI7CgkJCQl9IGVsc2UKCQkJCQlyZXR1cm4gYS5hRGF0YVthLmlEYXRhQ29sdW1uXTsKCQkJfSB9LAoJCQludWxsLAoJCQludWxsLAoJCQludWxsCgkJXQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJEZWZhdWx0IGZvciBiVXNlUmVuZGVyZWQgaXMgdHJ1ZSAtIHJlbmRlcmVkIGRhdGEgaXMgdXNlZCBmb3Igc29ydGluZyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gJ2FhYSc7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJXaGVuIGJVc2VSZW5kZXJlZCBpcyBmYWxzZSwgb3JpZ2luYWwgZGF0YSBpcyB1c2VkIGZvciBzb3J0aW5nIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW1UbXAgPSAwOwoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCW51bGwsCgkJCQkJeyAKCQkJCQkJImJVc2VSZW5kZXJlZCI6IGZhbHNlLAoJCQkJCQkiZm5SZW5kZXIiOiBmdW5jdGlvbiAoYSkgewoJCQkJCQkJaWYgKCBtVG1wID09IDAgKSB7CgkJCQkJCQkJbVRtcCsrOwoJCQkJCQkJCXJldHVybiAiYWFhIjsKCQkJCQkJCX0gZWxzZSB7CgkJCQkJCQkJcmV0dXJuIGEuYURhdGFbYS5pRGF0YUNvbHVtbl07CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQl9LAoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gJ0FsbCBvdGhlcnMnOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJiVXNlUmVuZGVyZWQgc2V0IHRvIGZhbHNlIG9uIG9uZSBjb2x1bW5zIGFuZCB0cnVlIChkZWZhdWx0KSBvbiB0d28gb3RoZXJzIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW1UbXAgPSAwOwoJCQl2YXIgbVRtcDIgPSAwOwoJCQl2YXIgbVRtcDMgPSAwOwoJCQkKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQl7CgkJCQkJCSJmblJlbmRlciI6IGZ1bmN0aW9uIChhKSB7CgkJCQkJCQlpZiAoIG1UbXAgPT0gMCApIHsKCQkJCQkJCQltVG1wKys7CgkJCQkJCQkJcmV0dXJuICJhYWExIjsKCQkJCQkJCX0gZWxzZSB7CgkJCQkJCQkJcmV0dXJuIGEuYURhdGFbYS5pRGF0YUNvbHVtbl07CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQl9LAoJCQkJCXsgCgkJCQkJCSJiVXNlUmVuZGVyZWQiOiBmYWxzZSwKCQkJCQkJImZuUmVuZGVyIjogZnVuY3Rpb24gKGEpIHsKCQkJCQkJCWlmICggbVRtcDIgPT0gMCApIHsKCQkJCQkJCQltVG1wMisrOwoJCQkJCQkJCXJldHVybiAiYWFhMiI7CgkJCQkJCQl9IGVsc2UgewoJCQkJCQkJCXJldHVybiBhLmFEYXRhW2EuaURhdGFDb2x1bW5dOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfSwKCQkJCQl7CgkJCQkJCSJmblJlbmRlciI6IGZ1bmN0aW9uIChhKSB7CgkJCQkJCQlpZiAoIG1UbXAzID09IDAgKSB7CgkJCQkJCQkJbVRtcDMrKzsKCQkJCQkJCQlyZXR1cm4gInp6ejMiOwoJCQkJCQkJfSBlbHNlIHsKCQkJCQkJCQlyZXR1cm4gYS5hRGF0YVthLmlEYXRhQ29sdW1uXTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCX0sCgkJCQkJbnVsbCwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09ICdhYWExJzsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk11bHRpLWNvbHVtbiByZW5kZXJpbmcgLSAybmQgY29sdW1uIHNvcnRpbmciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICdBbGwgb3RoZXJzJzsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk11bHRpLWNvbHVtbiByZW5kZXJpbmcgLSAzcmQgY29sdW1uIHNvcnRpbmciLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMiknKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgyKScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgyKScpLmh0bWwoKSA9PSAnenp6Myc7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJNdWx0aS1jb2x1bW4gcmVuZGVyaW5nIC0gNHRoIGNvbHVtbiBzb3J0aW5nIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgzKScpLmh0bWwoKSA9PSAnLSc7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJNdWx0aS1jb2x1bW4gcmVuZGVyaW5nIC0gNXRoIGNvbHVtbiBzb3J0aW5nIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDQpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSg0KScpLmh0bWwoKSA9PSAnQSc7IH0KCSk7CgkKCQoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/aoColumns.bVisible.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5iVmlzaWJsZSIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IgoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJBbGwgY29sdW1ucyBhcmUgdmlzaWJsZSBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkJykubGVuZ3RoID09IDU7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDYW4gaGlkZSBvbmUgY29sdW1uIGFuZCBpdCByZW1vdmVzIHRkIGNvbHVtbiBmcm9tIERPTSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCW51bGwsCgkJCQkJeyAiYlZpc2libGUiOiBmYWxzZSB9LAoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkJykubGVuZ3RoID09IDQ7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDYW4gaGlkZSBvbmUgY29sdW1uIGFuZCBpdCByZW1vdmVzIHRoZWFkIHRoIGNvbHVtbiBmcm9tIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSgwKSB0aCcpLmxlbmd0aCA9PSA0OyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiVGhlIGNvcnJlY3QgdGhlYWQgY29sdW1uIGhhcyBiZWVuIGhpZGRlbiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBqcU5vZGVzID0gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGgnKTsKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCWpxTm9kZXNbMF0uaW5uZXJIVE1MID09ICJSZW5kZXJpbmcgZW5naW5lIiAmJgoJCQkJanFOb2Rlc1sxXS5pbm5lckhUTUwgPT0gIlBsYXRmb3JtKHMpIiAmJgoJCQkJanFOb2Rlc1syXS5pbm5lckhUTUwgPT0gIkVuZ2luZSB2ZXJzaW9uIiAmJgoJCQkJanFOb2Rlc1szXS5pbm5lckhUTUwgPT0gIkNTUyBncmFkZSI7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJUaGUgY29ycmVjdCB0Ym9keSBjb2x1bW4gaGFzIGJlZW4gaGlkZGVuIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9EaXNwYWNoZXIuY2xpY2soICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJylbMF0sIHsgJ3NoaWZ0JzogdHJ1ZSB9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBqcU5vZGVzID0gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQnKTsKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCWpxTm9kZXNbMF0uaW5uZXJIVE1MID09ICJHZWNrbyIgJiYKCQkJCWpxTm9kZXNbMV0uaW5uZXJIVE1MID09ICJHbm9tZSIgJiYKCQkJCWpxTm9kZXNbMl0uaW5uZXJIVE1MID09ICIxLjgiICYmCgkJCQlqcU5vZGVzWzNdLmlubmVySFRNTCA9PSAiQSI7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNhbiBoaWRlIG11bHRpcGxlIGNvbHVtbnMgYW5kIGl0IHJlbW92ZXMgdGQgY29sdW1uIGZyb20gRE9NIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJbnVsbCwKCQkJCQl7ICJiVmlzaWJsZSI6IGZhbHNlIH0sCgkJCQkJeyAiYlZpc2libGUiOiBmYWxzZSB9LAoJCQkJCW51bGwsCgkJCQkJeyAiYlZpc2libGUiOiBmYWxzZSB9CgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkJykubGVuZ3RoID09IDI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJNdWx0aXBsZSBoaWRlIC0gcmVtb3ZlcyB0aGVhZCB0aCBjb2x1bW4gZnJvbSBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGgnKS5sZW5ndGggPT0gMjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk11bHRpcGxlIGhpZGUgLSB0aGUgY29ycmVjdCB0aGVhZCBjb2x1bW5zIGhhdmUgYmVlbiBoaWRkZW4iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIganFOb2RlcyA9ICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDApIHRoJyk7CgkJCXZhciBiUmV0dXJuID0gCgkJCQlqcU5vZGVzWzBdLmlubmVySFRNTCA9PSAiUmVuZGVyaW5nIGVuZ2luZSIgJiYKCQkJCWpxTm9kZXNbMV0uaW5uZXJIVE1MID09ICJFbmdpbmUgdmVyc2lvbiIKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk11bHRpcGxlIGhpZGUgLSB0aGUgY29ycmVjdCB0Ym9keSBjb2x1bW5zIGhhdmUgYmVlbiBoaWRkZW4iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb0Rpc3BhY2hlci5jbGljayggJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKVswXSwgeyAnc2hpZnQnOiB0cnVlIH0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGpxTm9kZXMgPSAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZCcpOwoJCQl2YXIgYlJldHVybiA9IAoJCQkJanFOb2Rlc1swXS5pbm5lckhUTUwgPT0gIkdlY2tvIiAmJgoJCQkJanFOb2Rlc1sxXS5pbm5lckhUTUwgPT0gIjEiCgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/aoColumns.fnRender.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5mblJlbmRlciIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG1UbXAgPSAwOwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkiYW9Db2x1bW5zIjogWwoJCQludWxsLAoJCQl7ICJmblJlbmRlciI6IGZ1bmN0aW9uIChhKSB7CgkJCQltVG1wKys7CgkJCQlyZXR1cm4gYS5hRGF0YVthLmlEYXRhQ29sdW1uXTsKCQkJfSB9LAoJCQludWxsLAoJCQludWxsLAoJCQludWxsCgkJXQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTaW5nbGUgY29sdW1uIC0gZm5SZW5kZXIgaXMgY2FsbGVkIHR3aWNlIGZvciBlYWNoIHJvdyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtVG1wID09IDU3OyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ29uZmlybSB0aGF0IGZuUmVuZGVyIHBhc3NlcyB0d28gYXJndW1lbnRzIHdpdGggZm91ciBwYXJhbWV0ZXJzIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW1UbXAgPSB0cnVlOwoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCW51bGwsCgkJCQkJeyAiZm5SZW5kZXIiOiBmdW5jdGlvbiAoYSkgewoJCQkJCQlpZiAoIGFyZ3VtZW50cy5sZW5ndGggIT0gMiB8fCB0eXBlb2YgYS5pRGF0YVJvdz09J3VuZGVmaW5lZCcgfHwKCQkJCQkJIAl0eXBlb2YgYS5pRGF0YUNvbHVtbj09J3VuZGVmaW5lZCcgfHwgdHlwZW9mIGEuYURhdGE9PSd1bmRlZmluZWQnIHx8CgkJCQkJCSAJdHlwZW9mIGEubURhdGFQcm9wPT0ndW5kZWZpbmVkJyApCgkJCQkJCXsKCQkJCQkJCW1UbXAgPSBmYWxzZTsKCQkJCQkJfQoJCQkJCQlyZXR1cm4gYS5hRGF0YVthLmlEYXRhQ29sdW1uXTsKCQkJCQl9IH0sCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVRtcDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJImZuUmVuZGVyIGlEYXRhQ29sdW1uIGlzIHRoZSBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsKCQkJbVRtcCA9IHRydWU7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJbnVsbCwKCQkJCQl7ICJmblJlbmRlciI6IGZ1bmN0aW9uIChhKSB7CgkJCQkJCWlmICggYS5pRGF0YUNvbHVtbiAhPSAxICkKCQkJCQkJewoJCQkJCQkJbVRtcCA9IGZhbHNlOwoJCQkJCQl9CgkJCQkJCXJldHVybiBhLmFEYXRhW2EuaURhdGFDb2x1bW5dOwoJCQkJCX0gfSwKCQkJCQludWxsLAoJCQkJCW51bGwsCgkJCQkJbnVsbAoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtVG1wOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiZm5SZW5kZXIgYURhdGEgaXMgZGF0YSBhcnJheSBvZiBjb3JyZWN0IHNpemUiLAoJCWZ1bmN0aW9uICgpIHsKCQkJbVRtcCA9IHRydWU7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJbnVsbCwKCQkJCQl7ICJmblJlbmRlciI6IGZ1bmN0aW9uIChhKSB7CgkJCQkJCWlmICggYS5hRGF0YS5sZW5ndGggIT0gNSApCgkJCQkJCXsKCQkJCQkJCW1UbXAgPSBmYWxzZTsKCQkJCQkJfQoJCQkJCQlyZXR1cm4gYS5hRGF0YVthLmlEYXRhQ29sdW1uXTsKCQkJCQl9IH0sCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVRtcDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlBhc3NlZCBiYWNrIGRhdGEgaXMgcHV0IGludG8gdGhlIERPTSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCW51bGwsCgkJCQkJeyAiZm5SZW5kZXIiOiBmdW5jdGlvbiAoYSkgewoJCQkJCQlyZXR1cm4gJ3VuaXR0ZXN0JzsKCQkJCQl9IH0sCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gJ3VuaXR0ZXN0JzsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlBhc3NlZCBiYWNrIGRhdGEgaXMgcHV0IGludG8gdGhlIERPTSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQl7ICJmblJlbmRlciI6IGZ1bmN0aW9uIChhKSB7CgkJCQkJCXJldHVybiAndW5pdHRlc3QxJzsKCQkJCQl9IH0sCgkJCQkJeyAiZm5SZW5kZXIiOiBmdW5jdGlvbiAoYSkgewoJCQkJCQlyZXR1cm4gJ3VuaXR0ZXN0Mic7CgkJCQkJfSB9LAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYlJldHVybiA9IAoJCQkJJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMiknKS5odG1sKCkgPT0gJ3VuaXR0ZXN0MScgJiYKCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDMpJykuaHRtbCgpID09ICd1bml0dGVzdDInOwoJCQlyZXR1cm4gYlJldHVybjsgfQoJKTsKCQoJCgkKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/aoColumns.iDataSort.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5pRGF0YVNvcnQiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogU2hvdWxkIGtub3cgdGhhdCBzb3J0aW5nIGFscmVhZHkgd29ya3MgYnkgZGVmYXVsdCBmcm9tIG90aGVyIHRlc3RzLCBzbyB3ZSBjYW4ganVtcAoJICogcmlnaHQgaW4gaGVyZQoJICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCSJhb0NvbHVtbnMiOiBbCgkJCW51bGwsCgkJCXsgImlEYXRhU29ydCI6IDQgfSwKCQkJbnVsbCwKCQkJbnVsbCwKCQkJbnVsbAoJCV0KCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU29ydGluZyBvbiBmaXJzdCBjb2x1bW4gaXMgdW5lZmZlY3RlZCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAnR2Vja28nOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU29ydGluZyBvbiBzZWNvbmQgY29sdW1uIGlzIHRoZSBvcmRlciBvZiB0aGUgZmlmdGgiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDQpJykuaHRtbCgpID09ICdBJzsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlJlc2VydmUgc29ydGluZyBvbiBzZWNvbmQgY29sdW1uIHVzZXMgZmlmdGggY29sdW1uIGFzIHdlbGwiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDQpJykuaHRtbCgpID09ICdYJzsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgb24gNXRoIGNvbHVtbiByZXRhaW5zIGl0J3Mgb3duIHNvcnRpbmciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoNCknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDQpJykuaHRtbCgpID09ICdBJzsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiVXNlIDJuZCBjb2wgZm9yIHNvcnRpbmcgNXRoIGNvbCBhbmQgdmlhLXZlcnNhIC0gbm8gZWZmZWN0IG9uIGZpcnN0IGNvbCBzb3J0aW5nIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW1UbXAgPSAwOwoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCW51bGwsCgkJCQkJeyAiaURhdGFTb3J0IjogNCB9LAoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQl7ICJpRGF0YVNvcnQiOiAxIH0KCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gJ0dlY2tvJzsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIjJuZCBjb2wgc29ydGluZyB1c2VzIGZpZnRoIGNvbCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoNCknKS5odG1sKCkgPT0gJ0EnOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiMm5kIGNvbCBzb3J0aW5nIHVzZXMgZmlmdGggY29sIC0gcmV2ZXJzZWQiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDQpJykuaHRtbCgpID09ICdYJzsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIjV0aCBjb2wgc29ydGluZyB1c2VzIDJuZCBjb2wiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoNCknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICdBbGwgb3RoZXJzJzsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIjV0aCBjb2wgc29ydGluZyB1c2VzIDJuZCBjb2wgLSByZXZlcnNlZCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSg0KScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gJ1NlYW1vbmtleSAxLjEnOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/aoColumns.sClass.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5zQ2xhc3MiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQnkgZGVmYXVsdCB0aGUgdGVzdCBjbGFzcyBoYXNuJ3QgYmVlbiBhcHBsaWVkIHRvIHRoZSBjb2x1bW4gKHNhbml0eSEpIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDIpJykuaGFzQ2xhc3MoJ3VuaXR0ZXN0JykgPT0gZmFsc2U7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJBZGQgYSBjbGFzcyB0byBhIHNpbmdsZSBjb2x1bW4gLSBmaXJzdCByb3ciLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQludWxsLAoJCQkJCW51bGwsCgkJCQkJeyAic0NsYXNzIjogJ3VuaXR0ZXN0JyB9LAoJCQkJCW51bGwsCgkJCQkJbnVsbAoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKSB0ZDplcSgyKScpLmhhc0NsYXNzKCd1bml0dGVzdCcpOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQWRkIGEgY2xhc3MgdG8gYSBzaW5nbGUgY29sdW1uIC0gdGhpcmQgcm93IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDMpIHRkOmVxKDIpJykuaGFzQ2xhc3MoJ3VuaXR0ZXN0Jyk7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJBZGQgYSBjbGFzcyB0byBhIHNpbmdsZSBjb2x1bW4gLSBsYXN0IHJvdyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSg5KSB0ZDplcSgyKScpLmhhc0NsYXNzKCd1bml0dGVzdCcpOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQWRkIGEgY2xhc3MgdG8gYSBzaW5nbGUgY29sdW1uIC0gaGFzIG5vdCBhcHBsaWVkIHRvIG90aGVyIGNvbHVtbnMgLSAxc3QiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMykgdGQ6ZXEoMCknKS5oYXNDbGFzcygndW5pdHRlc3QnKSA9PSBmYWxzZTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkFkZCBhIGNsYXNzIHRvIGEgc2luZ2xlIGNvbHVtbiAtIGhhcyBub3QgYXBwbGllZCB0byBvdGhlciBjb2x1bW5zIC0gNXRoIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDMpIHRkOmVxKDQpJykuaGFzQ2xhc3MoJ3VuaXR0ZXN0JykgPT0gZmFsc2U7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJBZGQgYSBjbGFzcyB0byBhIHNpbmdsZSBjb2x1bW4gLSBzZXZlbnRoIHJvdyAtIHNlY29uZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDYpIHRkOmVxKDIpJykuaGFzQ2xhc3MoJ3VuaXR0ZXN0Jyk7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJBZGQgYSBjbGFzcyB0byBhIHNpbmdsZSBjb2x1bW4gLSBoYXMgbm90IGFwcGxpZWQgdG8gaGVhZGVyIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDMpIHRoOmVxKDQpJykuaGFzQ2xhc3MoJ3VuaXR0ZXN0JykgPT0gZmFsc2U7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJBZGQgYSBjbGFzcyB0byBhIHNpbmdsZSBjb2x1bW4gLSBoYXMgbm90IGFwcGxpZWQgdG8gZm9vdGVyIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDMpIHRoOmVxKDQpJykuaGFzQ2xhc3MoJ3VuaXR0ZXN0JykgPT0gZmFsc2U7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNsYXNzIGRlZmluZWQgZm9yIG11bHRpcGxlIGNvbHVtbnMgLSBmaXJzdCByb3ciLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQl7ICJzQ2xhc3MiOiAndW5pdHRlc3QyJyB9LAoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQl7ICJzQ2xhc3MiOiAndW5pdHRlc3QxJyB9LAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYlJldHVybiA9IAoJCQkJJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMykgdGQ6ZXEoMCknKS5oYXNDbGFzcygndW5pdHRlc3QyJykgJiYKCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDgpIHRkOmVxKDMpJykuaGFzQ2xhc3MoJ3VuaXR0ZXN0MScpOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ2xhc3MgZGVmaW5lZCBmb3IgbXVsdGlwbGUgY29sdW1ucyAtIGhhcyBub3QgYXBwbGllZCB0byBvdGhlciBjb2x1bW5zIC0gNXRoIDEiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoNCknKS5oYXNDbGFzcygndW5pdHRlc3QxJykgPT0gZmFsc2U7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDbGFzcyBkZWZpbmVkIGZvciBtdWx0aXBsZSBjb2x1bW5zIC0gaGFzIG5vdCBhcHBsaWVkIHRvIG90aGVyIGNvbHVtbnMgLSA1dGggMiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSg2KSB0ZDplcSg0KScpLmhhc0NsYXNzKCd1bml0dGVzdDInKSA9PSBmYWxzZTsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/aoColumns.sName.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5zTmFtZSIgKTsKCi8qIFRoaXMgaGFzIG5vIGVmZmVjdCBhdCBhbGwgaW4gRE9NIG1ldGhvZHMgLSBzbyB3ZSBqdXN0IGNoZWNrIHRoYXQgaXQgaGFzIGFwcGxpZWQgdGhlIG5hbWUgKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkiYW9Db2x1bW5zIjogWwoJCQludWxsLAoJCQludWxsLAoJCQludWxsLAoJCQl7ICJzTmFtZSI6ICd1bml0IHRlc3QnIH0sCgkJCW51bGwKCQldCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk5hbWVzIGFyZSBzdG9yZWQgaW4gdGhlIGNvbHVtbnMgb2JqZWN0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5hb0NvbHVtbnNbM10uc05hbWUgPT0idW5pdCB0ZXN0IjsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/aoColumns.sTitle.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5zVGl0bGUiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiSWYgbm90IGdpdmVuLCB0aGVuIHRoZSBjb2x1bW5zIHRpdGxlcyBhcmUgZW1wdHkiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIganFOb2RlcyA9ICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDApIHRoJyk7CgkJCXZhciBiUmV0dXJuID0gCgkJCQlqcU5vZGVzWzBdLmlubmVySFRNTCA9PSAiUmVuZGVyaW5nIGVuZ2luZSIgJiYKCQkJCWpxTm9kZXNbMV0uaW5uZXJIVE1MID09ICJCcm93c2VyIiAmJgoJCQkJanFOb2Rlc1syXS5pbm5lckhUTUwgPT0gIlBsYXRmb3JtKHMpIiAmJgoJCQkJanFOb2Rlc1szXS5pbm5lckhUTUwgPT0gIkVuZ2luZSB2ZXJzaW9uIiAmJgoJCQkJanFOb2Rlc1s0XS5pbm5lckhUTUwgPT0gIkNTUyBncmFkZSI7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDYW4gc2V0IGEgc2luZ2xlIGNvbHVtbiB0aXRsZSAtIGFuZCBvdGhlcnMgYXJlIHJlYWQgZnJvbSBET00iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQludWxsLAoJCQkJCXsgInNUaXRsZSI6ICd1bml0IHRlc3QnIH0sCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIganFOb2RlcyA9ICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDApIHRoJyk7CgkJCXZhciBiUmV0dXJuID0gCgkJCQlqcU5vZGVzWzBdLmlubmVySFRNTCA9PSAiUmVuZGVyaW5nIGVuZ2luZSIgJiYKCQkJCWpxTm9kZXNbMV0uaW5uZXJIVE1MID09ICJ1bml0IHRlc3QiICYmCgkJCQlqcU5vZGVzWzJdLmlubmVySFRNTCA9PSAiUGxhdGZvcm0ocykiICYmCgkJCQlqcU5vZGVzWzNdLmlubmVySFRNTCA9PSAiRW5naW5lIHZlcnNpb24iICYmCgkJCQlqcU5vZGVzWzRdLmlubmVySFRNTCA9PSAiQ1NTIGdyYWRlIjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNhbiBzZXQgbXVsdGlwbGUgY29sdW1uIHRpdGxlcyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCW51bGwsCgkJCQkJeyAic1RpdGxlIjogJ3VuaXQgdGVzdCAxJyB9LAoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQl7ICJzVGl0bGUiOiAndW5pdCB0ZXN0IDInIH0KCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIganFOb2RlcyA9ICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDApIHRoJyk7CgkJCXZhciBiUmV0dXJuID0gCgkJCQlqcU5vZGVzWzBdLmlubmVySFRNTCA9PSAiUmVuZGVyaW5nIGVuZ2luZSIgJiYKCQkJCWpxTm9kZXNbMV0uaW5uZXJIVE1MID09ICJ1bml0IHRlc3QgMSIgJiYKCQkJCWpxTm9kZXNbMl0uaW5uZXJIVE1MID09ICJQbGF0Zm9ybShzKSIgJiYKCQkJCWpxTm9kZXNbM10uaW5uZXJIVE1MID09ICJFbmdpbmUgdmVyc2lvbiIgJiYKCQkJCWpxTm9kZXNbNF0uaW5uZXJIVE1MID09ICJ1bml0IHRlc3QgMiI7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/aoColumns.sWidth.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5zV2lkdGgiICk7CgovKiBOT1RFIC0gd2UgbmVlZCB0byBkaXNhYmxlIHRoZSBhdXRvIHdpZHRoIGZvciB0aGUgbWFqb3JpdHkgb2YgdGhlc2UgdGVzdCBpbiBvcmRlciB0byBwcmVmb3JtIAogKiB0aGVzZSB0ZXN0cyBhcyB0aGUgYXV0byB3aWR0aCB3aWxsIGNvbnZlcnQgdGhlIHdpZHRoIHRvIGEgcHggdmFsdWUuIFdlIGNhbiBkbyAnbm9uLWV4YWN0JyB0ZXN0cwogKiB3aXRoIGF1dG8gd2lkdGggZW5hYmxlZCBob3dldmVyIHRvIGVuc3VyZSBpdCBzY2FsZXMgY29sdW1ucyBhcyByZXF1aXJlZAogKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkiYkF1dG9XaWR0aCI6IGZhbHNlLAoJCSJhb0NvbHVtbnMiOiBbCgkJCW51bGwsCgkJCXsgInNXaWR0aCI6ICc0MCUnIH0sCgkJCW51bGwsCgkJCW51bGwsCgkJCW51bGwKCQldCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIldpdGggYXV0byB3aWR0aCBkaXNhYmxlZCB0aGUgd2lkdGggZm9yIG9uZSBjb2x1bW4gaXMgYXBwbGVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJylbMF0uc3R5bGUud2lkdGggPT0gIjQwJSI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJXaXRoIGF1dG8gd2lkdGggZGlzYWJsZWQgdGhlIHdpZHRoIGZvciBvbmUgY29sdW1uIGlzIGFwcGxlZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkF1dG9XaWR0aCI6IGZhbHNlLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQludWxsLAoJCQkJCW51bGwsCgkJCQkJeyAic1dpZHRoIjogJzIwJScgfSwKCQkJCQl7ICJzV2lkdGgiOiAnMzAlJyB9LAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYlJldHVybiA9CgkJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgyKScpWzBdLnN0eWxlLndpZHRoID09ICIyMCUiICYmCgkJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpWzBdLnN0eWxlLndpZHRoID09ICIzMCUiOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJXaXRoIGF1dG8gd2lkdGgsIGl0IHdpbGwgbWFrZSB0aGUgc21hbGxlc3QgY29sdW1uIHRoZSBsYXJnZXN0IHdpdGggcGVyY2VudGFnZSB3aWR0aCBnaXZlbiIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCXsgInNXaWR0aCI6ICc0MCUnIH0sCgkJCQkJbnVsbAoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBhblRocyA9ICQoJyNleGFtcGxlIHRoZWFkIHRoJyk7CgkJCXZhciBhMCA9IGFuVGhzWzBdLm9mZnNldFdpZHRoOwoJCQl2YXIgYTEgPSBhblRoc1sxXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGEyID0gYW5UaHNbMl0ub2Zmc2V0V2lkdGg7CgkJCXZhciBhMyA9IGFuVGhzWzNdLm9mZnNldFdpZHRoOwoJCQl2YXIgYTQgPSBhblRoc1s0XS5vZmZzZXRXaWR0aDsKCQkJCgkJCWlmICggYTM+YTAgJiYgYTM+YTEgJiYgYTM+YTIgJiYgYTM+YTQgKQoJCQkJcmV0dXJuIHRydWU7CgkJCWVsc2UKCQkJCXJldHVybiBmYWxzZTsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/aoSearchCols.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvU2VhcmNoQ29scyIgKTsKCi8qIFdlIGNvdWxkIGJlIGhlcmUgZm9yZXZlciB0ZXN0aW5nIHRoaXMgb25lLCBzbyB3ZSB0ZXN0IGEgbGltaXRlZCBzdWJzZXQgb24gYSBjb3VwbGUgb2YgY29sdW1zICovCgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRGVmYXVsdCBzaG91bGQgYmUgdG8gaGF2ZSBhIGVtcHR5IGNvbHVtcyBhcnJheSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBiUmV0dXJuID0gCgkJCQlvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzWzBdLnNTZWFyY2ggPT0gMCAmJiAhb1NldHRpbmdzLmFvUHJlU2VhcmNoQ29sc1swXS5iUmVnZXggJiYKCQkJCW9TZXR0aW5ncy5hb1ByZVNlYXJjaENvbHNbMV0uc1NlYXJjaCA9PSAwICYmICFvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzWzFdLmJSZWdleCAmJgoJCQkJb1NldHRpbmdzLmFvUHJlU2VhcmNoQ29sc1syXS5zU2VhcmNoID09IDAgJiYgIW9TZXR0aW5ncy5hb1ByZVNlYXJjaENvbHNbMl0uYlJlZ2V4ICYmCgkJCQlvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzWzNdLnNTZWFyY2ggPT0gMCAmJiAhb1NldHRpbmdzLmFvUHJlU2VhcmNoQ29sc1szXS5iUmVnZXggJiYKCQkJCW9TZXR0aW5ncy5hb1ByZVNlYXJjaENvbHNbNF0uc1NlYXJjaCA9PSAwICYmICFvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzWzRdLmJSZWdleDsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU2VhcmNoIG9uIGEgc2luZ2xlIGNvbHVtbiAtIG5vIHJlZ2V4IHN0YXRlbWVudCBnaXZlbiIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYW9TZWFyY2hDb2xzIjogWwoJCQkJCW51bGwsCgkJCQkJeyAic1NlYXJjaCI6ICJNb3ppbGxhIiB9LAoJCQkJCW51bGwsCgkJCQkJeyAic1NlYXJjaCI6ICIxIiB9LAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGVfaW5mbycpLmh0bWwoKSA9PSAiU2hvd2luZyAxIHRvIDkgb2YgOSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNlYXJjaCBvbiB0d28gY29sdW1ucyAtIG5vIHJlZ2V4IHN0YXRlbWVudCBnaXZlbiIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYW9TZWFyY2hDb2xzIjogWwoJCQkJCW51bGwsCgkJCQkJeyAic1NlYXJjaCI6ICJNb3ppbGxhIiB9LAoJCQkJCW51bGwsCgkJCQkJeyAic1NlYXJjaCI6ICIxLjUiIH0sCgkJCQkJbnVsbAoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiMS41IjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNlYXJjaCBvbiBzaW5nbGUgY29sdW1uIC0gZXNjYXBlIHJlZ2V4IGZhbHNlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJhb1NlYXJjaENvbHMiOiBbCgkJCQkJeyAic1NlYXJjaCI6ICIuKk1MIiwgImJFc2NhcGVSZWdleCI6IGZhbHNlIH0sCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCW51bGwsCgkJCQkJbnVsbAoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9pbmZvJykuaHRtbCgpID09ICJTaG93aW5nIDEgdG8gMyBvZiAzIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU2VhcmNoIG9uIHR3byBjb2x1bW5zIC0gZXNjYXBlIHJlZ2V4IGZhbHNlIG9uIGZpcnN0LCB0cnVlIG9uIHNlY29uZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYW9TZWFyY2hDb2xzIjogWwoJCQkJCXsgInNTZWFyY2giOiAiLipNTCIsICJiRXNjYXBlUmVnZXgiOiBmYWxzZSB9LAoJCQkJCXsgInNTZWFyY2giOiAiMy4zIiwgImJFc2NhcGVSZWdleCI6IHRydWUgfSwKCQkJCQludWxsLAoJCQkJCW51bGwsCgkJCQkJbnVsbAoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiS29ucXVyZXJvciAzLjMiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU2VhcmNoIG9uIHR3byBjb2x1bW5zIChubyByZWNvcmRzKSAtIGVzY2FwZSByZWdleCBmYWxzZSBvbiBmaXJzdCwgdHJ1ZSBvbiBzZWNvbmQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImFvU2VhcmNoQ29scyI6IFsKCQkJCQl7ICJzU2VhcmNoIjogIi4qTUwiLCAiYkVzY2FwZVJlZ2V4IjogZmFsc2UgfSwKCQkJCQl7ICJzU2VhcmNoIjogIkFsbGFuIiwgImJFc2NhcGVSZWdleCI6IHRydWUgfSwKCQkJCQludWxsLAoJCQkJCW51bGwsCgkJCQkJbnVsbAoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiTm8gbWF0Y2hpbmcgcmVjb3JkcyBmb3VuZCI7IH0KCSk7CgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/asStripClasses.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFzU3RyaXBlQ2xhc3NlcyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiCgl9ICk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJEZWZhdWx0IHJvdyBzdHJpcGluZyBpcyBhcHBsaWVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApJykuaGFzQ2xhc3MoJ29kZCcpICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKScpLmhhc0NsYXNzKCdldmVuJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDIpJykuaGFzQ2xhc3MoJ29kZCcpICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgzKScpLmhhc0NsYXNzKCdldmVuJyk7CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlJvdyBzdHJpcGluZyBvbiB0aGUgc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCknKS5oYXNDbGFzcygnb2RkJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDEpJykuaGFzQ2xhc3MoJ2V2ZW4nKSAmJgoJCQkgICAgICAgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMiknKS5oYXNDbGFzcygnb2RkJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDMpJykuaGFzQ2xhc3MoJ2V2ZW4nKTsKCQl9CgkpOwoJCgkvKiBObyBzdHJpcGluZyAqLwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk5vIHJvdyBzdHJpcGluZyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYXNTdHJpcGVDbGFzc2VzIjogW10KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQlpZiAoIHR5cGVvZiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKScpWzBdID09ICd1bmRlZmluZWQnICkKCQkJewoJCQkJLyogVXNlIHRoZSAnd2FpdCBmb3InIHRvIGFsbG93IHRoaXMgdG8gYmVjb21lIHRydWUgKi8KCQkJCXJldHVybiBmYWxzZTsKCQkJfQoJCQlyZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCknKVswXS5jbGFzc05hbWUgPT0gIiIgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDEpJylbMF0uY2xhc3NOYW1lID09ICIiICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgyKScpWzBdLmNsYXNzTmFtZSA9PSAiIiAmJgoJCQkgICAgICAgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMyknKVswXS5jbGFzc05hbWUgPT0gIiI7CgkJfQoJKTsKCQoJLyogQ3VzdG9tIHN0cmlwaW5nICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ3VzdG9tIHN0cmlwaW5nIFsyXSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYXNTdHJpcGVDbGFzc2VzIjogWyAndGVzdDEnLCAndGVzdDInIF0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCknKS5oYXNDbGFzcygndGVzdDEnKSAmJgoJCQkgICAgICAgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMSknKS5oYXNDbGFzcygndGVzdDInKSAmJgoJCQkgICAgICAgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMiknKS5oYXNDbGFzcygndGVzdDEnKSAmJgoJCQkgICAgICAgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMyknKS5oYXNDbGFzcygndGVzdDInKTsKCQl9CgkpOwoJCgkKCS8qIGxvbmcgYXJyYXkgb2Ygc3RyaXBpbmcgKi8KCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDdXN0b20gc3RyaXBpbmcgWzRdIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJhc1N0cmlwZUNsYXNzZXMiOiBbICd0ZXN0MScsICd0ZXN0MicsICd0ZXN0MycsICd0ZXN0NCcgXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKScpLmhhc0NsYXNzKCd0ZXN0MScpICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKScpLmhhc0NsYXNzKCd0ZXN0MicpICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgyKScpLmhhc0NsYXNzKCd0ZXN0MycpICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgzKScpLmhhc0NsYXNzKCd0ZXN0NCcpOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDdXN0b20gc3RyaXBpbmcgaXMgcmVzdGFydGVkIG9uIHNlY29uZCBwYWdlIFsyXSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKScpLmhhc0NsYXNzKCd0ZXN0MScpICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKScpLmhhc0NsYXNzKCd0ZXN0MicpICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgyKScpLmhhc0NsYXNzKCd0ZXN0MycpICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgzKScpLmhhc0NsYXNzKCd0ZXN0NCcpOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/bAutoWidth.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJBdXRvV2lkdGgiICk7CgovKiBJdCdzIGFjdHVhbGx5IGEgbGl0dGxlIHRyaWNreSB0byB0ZXN0IHRoaXMuIFdlIGNhbid0IHRlc3QgYWJzb2x1dGUgbnVtYmVycyBiZWNhdXNlCiAqIGRpZmZlcmVudCBicm93c2VycyBhbmQgZGlmZmVyZW50IHBsYXRmb3JtcyB3aWxsIHJlbmRlciB0aGUgd2lkdGggb2YgdGhlIGNvbHVtbnMgc2xpZ2h0bHkKICogZGlmZmVyZW50bHkuIEhvd2V2ZXIsIHdlIGNlcnRhaW5seSBjYW4gdGVzdCB0aGUgcHJpbmNpcGxlIG9mIHdoYXQgc2hvdWxkIGhhcHBlbiAoY29sdW1uIAogKiB3aWR0aCBkb2Vzbid0IGNoYW5nZSBvdmVyIHBhZ2VzKQogKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IgoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJBdXRvIHdpZHRoIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0ZlYXR1cmVzLmJBdXRvV2lkdGg7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJGaXJzdCBjb2x1bW4gaGFzIGEgd2lkdGggYXNzaWduZWQgdG8gaXQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMCknKS5hdHRyKCdzdHlsZScpLm1hdGNoKC93aWR0aC9pKTsgfQoJKTsKCQoJLyoKCVRoaXMgd291bGQgc2VlbSBsaWtlIGEgYmV0dGVyIHRlc3QgLSBidXQgdGhlcmUgYXBwZWFyIHRvIGJlIGRpZmZpY3VsdGllcyB3aXRoIHRhYmxlcwoJd2hpY2ggYXJlIGJpZ2dlciAoY2FsY3VsYXRlZCkgdGhhbiB0aGVyZSBpcyBhY3R1YWxseSByb29tIGZvci4gSSBzdXNwZWN0IHRoaXMgaXMgYWN0dWFsbHkKCWEgYnVnIGluIGRhdGF0YWJsZXMKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDaGVjayBjb2x1bW4gd2lkdGhzIG9uIGZpcnN0IHBhZ2UgbWF0Y2ggc2Vjb25kIHBhZ2UiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYW5UaHMgPSAkKCcjZXhhbXBsZSB0aGVhZCB0aCcpOwoJCQl2YXIgYTAgPSBhblRoc1swXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGExID0gYW5UaHNbMV0ub2Zmc2V0V2lkdGg7CgkJCXZhciBhMiA9IGFuVGhzWzJdLm9mZnNldFdpZHRoOwoJCQl2YXIgYTMgPSBhblRoc1szXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGE0ID0gYW5UaHNbNF0ub2Zmc2V0V2lkdGg7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCQl2YXIgYjAgPSBhblRoc1swXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGIxID0gYW5UaHNbMV0ub2Zmc2V0V2lkdGg7CgkJCXZhciBiMiA9IGFuVGhzWzJdLm9mZnNldFdpZHRoOwoJCQl2YXIgYjMgPSBhblRoc1szXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGI0ID0gYW5UaHNbNF0ub2Zmc2V0V2lkdGg7CgkJCWNvbnNvbGUubG9nKCBhMCwgYjAsIGExLCBiMSwgYTIsIGIyLCBhMywgYjMgKTsKCQkJaWYgKCBhMD09YjAgJiYgYTE9PWIxICYmIGEyPT1iMiAmJiBhMz09YjMgKQoJCQkJcmV0dXJuIHRydWU7CgkJCWVsc2UKCQkJCXJldHVybiBmYWxzZTsKCQl9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ2hlY2sgY29sdW1uIHdpZHRocyBvbiBzZWNvbmQgcGFnZSBtYXRjaCB0aGlkIHBhZ2UiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYW5UaHMgPSAkKCcjZXhhbXBsZSB0aGVhZCB0aCcpOwoJCQl2YXIgYTAgPSBhblRoc1swXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGExID0gYW5UaHNbMV0ub2Zmc2V0V2lkdGg7CgkJCXZhciBhMiA9IGFuVGhzWzJdLm9mZnNldFdpZHRoOwoJCQl2YXIgYTMgPSBhblRoc1szXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGE0ID0gYW5UaHNbNF0ub2Zmc2V0V2lkdGg7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCQl2YXIgYjAgPSBhblRoc1swXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGIxID0gYW5UaHNbMV0ub2Zmc2V0V2lkdGg7CgkJCXZhciBiMiA9IGFuVGhzWzJdLm9mZnNldFdpZHRoOwoJCQl2YXIgYjMgPSBhblRoc1szXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGI0ID0gYW5UaHNbNF0ub2Zmc2V0V2lkdGg7CgkJCWlmICggYTA9PWIwICYmIGExPT1iMSAmJiBhMj09YjIgJiYgYTM9PWIzICkKCQkJCXJldHVybiB0cnVlOwoJCQllbHNlCgkJCQlyZXR1cm4gZmFsc2U7CgkJfQoJKTsKCSovCgkKCS8qIENoZWNrIGNhbiBkaXNhYmxlICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQXV0byB3aWR0aCBjYW4gYmUgZGlzYWJsZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJBdXRvV2lkdGgiOiBmYWxzZQoJCQl9ICk7CgkgCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9GZWF0dXJlcy5iQXV0b1dpZHRoID09IGZhbHNlOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRmlyc3QgY29sdW1uIGRvZXMgbm90IGhhdmUgYSB3aWR0aCBhc3NpZ25lZCB0byBpdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgwKScpLmF0dHIoJ3N0eWxlJykgPT0gbnVsbDsgfQoJKTsKCQoJLyoKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDaGVjayBjb2x1bW4gd2lkdGhzIG9uIGZpcnN0IHBhZ2UgZG8gbm90IG1hdGNoIHNlY29uZCBwYWdlIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGFuVGhzID0gJCgnI2V4YW1wbGUgdGhlYWQgdGgnKTsKCQkJdmFyIGEwID0gYW5UaHNbMF0ub2Zmc2V0V2lkdGg7CgkJCXZhciBhMSA9IGFuVGhzWzFdLm9mZnNldFdpZHRoOwoJCQl2YXIgYTIgPSBhblRoc1syXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGEzID0gYW5UaHNbM10ub2Zmc2V0V2lkdGg7CgkJCXZhciBhNCA9IGFuVGhzWzRdLm9mZnNldFdpZHRoOwoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQkJdmFyIGIwID0gYW5UaHNbMF0ub2Zmc2V0V2lkdGg7CgkJCXZhciBiMSA9IGFuVGhzWzFdLm9mZnNldFdpZHRoOwoJCQl2YXIgYjIgPSBhblRoc1syXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGIzID0gYW5UaHNbM10ub2Zmc2V0V2lkdGg7CgkJCXZhciBiNCA9IGFuVGhzWzRdLm9mZnNldFdpZHRoOwoJCQlpZiAoIGEwPT1iMCAmJiBhMT09YjEgJiYgYTI9PWIyICYmIGEzPT1iMyApCgkJCQlyZXR1cm4gZmFsc2U7CgkJCWVsc2UKCQkJCXJldHVybiB0cnVlOwoJCX0KCSk7CgkqLwoJCgkvKiBFbmFibGUgbWFrZXMgbm8gZGlmZmVyZW5jZSAqLwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkF1dG8gd2lkdGggZW5hYmxlZCBvdmVycmlkZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkF1dG9XaWR0aCI6IHRydWUKCQkJfSApOwoJIAkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vRmVhdHVyZXMuYkF1dG9XaWR0aDsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/bFilter.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJGaWx0ZXIiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IgoJfSApOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRmlsdGVyaW5nIGRpdiBleGlzdHMgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9maWx0ZXInKSAhPSBudWxsOyB9CgkpOwoJCgkvKiBDaGVjayBjYW4gZGlzYWJsZSAqLwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkZsdGVyaW5nIGNhbiBiZSBkaXNhYmxlZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkZpbHRlciI6IGZhbHNlCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2ZpbHRlcicpID09IG51bGw7IH0KCSk7CgkKCS8qIEVuYWJsZSBtYWtlcyBubyBkaWZmZXJlbmNlICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRmlsdGVyaW5nIGVuYWJsZWQgb3ZlcnJpZGUiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJGaWx0ZXIiOiB0cnVlCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2ZpbHRlcicpICE9IG51bGw7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/bInfo.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJJbmZvIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIKCX0gKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkluZm8gZGl2IGV4aXN0cyBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKSAhPSBudWxsOyB9CgkpOwoJCgkvKiBDaGVjayBjYW4gZGlzYWJsZSAqLwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkluZm8gY2FuIGJlIGRpc2FibGVkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiSW5mbyI6IGZhbHNlCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKSA9PSBudWxsOyB9CgkpOwoJCgkvKiBFbmFibGUgbWFrZXMgbm8gZGlmZmVyZW5jZSAqLwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkluZm8gZW5hYmxlZCBvdmVycmlkZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkluZm8iOiB0cnVlCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKSAhPSBudWxsOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/bLengthChange.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJMZW5ndGhDaGFuZ2UiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IgoJfSApOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTGVuZ3RoIGRpdiBleGlzdHMgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9sZW5ndGgnKSAhPSBudWxsOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KAoJCSJGb3VyIGRlZmF1bHQgb3B0aW9ucyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0gb3B0aW9uIikubGVuZ3RoID09IDQ7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIkRlZmF1bHQgb3B0aW9ucyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBvcHRzID0gJCgic2VsZWN0W25hbWU9J2V4YW1wbGVfbGVuZ3RoJ10gb3B0aW9uIik7CgkJCXJldHVybiBvcHRzWzBdLmdldEF0dHJpYnV0ZSgndmFsdWUnKSA9PSAxMCAmJiBvcHRzWzFdLmdldEF0dHJpYnV0ZSgndmFsdWUnKSA9PSAyNSAmJgoJCQkJb3B0c1syXS5nZXRBdHRyaWJ1dGUoJ3ZhbHVlJykgPT0gNTAgJiYgb3B0c1szXS5nZXRBdHRyaWJ1dGUoJ3ZhbHVlJykgPT0gMTAwOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIkluZm8gdGFrZXMgbGVuZ3RoIGludG8gYWNjb3VudCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCgkvKiBDaGVjayBjYW4gZGlzYWJsZSAqLwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNoYW5nZSBsZW5ndGggY2FuIGJlIGRpc2FibGVkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiTGVuZ3RoQ2hhbmdlIjogZmFsc2UKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfbGVuZ3RoJykgPT0gbnVsbDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiSW5mb3JtYXRpb24gdGFrZXMgbGVuZ3RoIGRpc2FibGVkIGludG8gYWNjb3VudCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCgkvKiBFbmFibGUgbWFrZXMgbm8gZGlmZmVyZW5jZSAqLwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkxlbmd0aCBjaGFuZ2UgZW5hYmxlZCBvdmVycmlkZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkxlbmd0aENoYW5nZSI6IHRydWUKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfbGVuZ3RoJykgIT0gbnVsbDsgfQoJKTsKCQoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/bPaginate.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJQYWdpbmF0ZSIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiCgl9ICk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJQYWdpYW50aW9uIGRpdiBleGlzdHMgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wYWdpbmF0ZScpICE9IG51bGw7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIkluZm9ybWF0aW9uIGRpdiB0YWtlcyBwYWdpbmcgaW50byBhY2NvdW50IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCS8qIENoZWNrIGNhbiBkaXNhYmxlICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUGFnaWFudGlvbiBjYW4gYmUgZGlzYWJsZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJQYWdpbmF0ZSI6IGZhbHNlCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3BhZ2luYXRlJykgPT0gbnVsbDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiSW5mb3JtYXRpb24gZGl2IHRha2VzIHBhZ2luZyBkaXNhYmxlZCBpbnRvIGFjY291bnQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byA1NyBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJLyogRW5hYmxlIG1ha2VzIG5vIGRpZmZlcmVuY2UgKi8KCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJQYWdpYW50aW9uIGVuYWJsZWQgb3ZlcnJpZGUiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJQYWdpbmF0ZSI6IHRydWUKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcGFnaW5hdGUnKSAhPSBudWxsOyB9CgkpOwoJCgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/bProcessing.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJQcm9jZXNzaW5nIiApOwoKLyogSXQncyBhY3R1YWxseSBhIGJpdCBoYXJkIHRvIHNldCB0aGlzIG9uZSBkdWUgdG8gdGhlIGZhY3QgdGhhdCBpdCB3aWxsIG9ubHkgYmUgc2hvd24KICogd2hlbiBEYXRhVGFibGVzIGlzIGRvaW5nIHNvbWUga2luZCBvZiBwcm9jZXNzaW5nLiBUaGUgc2VydmVyLXNpZGUgcHJvY2Vzc2luZyBpcyBhIGJpdAogKiBiZXR0ZXIgdG8gdGVzdCB0aGlzIHRoYW4gaGVyZSAtIHNvIHdlIGp1c3QgdGhlIGludGVyYWwgZnVuY3Rpb25zIHRvIGVuYWJsZSBpdCBhbmQgY2hlY2sKICogdGhhdCBpdCBpcyBhdmFpbGFibGUKICovCgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUHJvY2Vzc2luZyBpcyBvZmYgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0ZlYXR1cmVzLmJQcm9jZXNzaW5nID09IGZhbHNlOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUHJvY2Vzc2luZyBkaXYgaXMgbm90IGluIHRoZSBET00iLAoJCWZ1bmN0aW9uICgpIHsgb1RhYmxlLm9BcGkuX2ZuUHJvY2Vzc2luZ0Rpc3BsYXkoIG9TZXR0aW5ncywgdHJ1ZSApOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3Byb2Nlc3NpbmcnKSA9PSBudWxsOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUHJvY2Vzc2luZyBkaXYgY2Fubm90IGJlIHNob3duIiwKCQlmdW5jdGlvbiAoKSB7IG9UYWJsZS5vQXBpLl9mblByb2Nlc3NpbmdEaXNwbGF5KCBvU2V0dGluZ3MsIHRydWUgKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wcm9jZXNzaW5nJykgPT0gbnVsbDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlByb2Nlc3NpbmcgZGl2IGNhbm5vdCBiZSBoaWRkZW4iLAoJCWZ1bmN0aW9uICgpIHsgb1RhYmxlLm9BcGkuX2ZuUHJvY2Vzc2luZ0Rpc3BsYXkoIG9TZXR0aW5ncywgZmFsc2UgKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wcm9jZXNzaW5nJykgPT0gbnVsbDsgfQoJKTsKCQoJCgkvKiBDaGVjayBjYW4gZGlzYWJsZSAqLwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlByb2Nlc3NpbmcgY2FuIGJlIGVuYWJsZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJQcm9jZXNzaW5nIjogdHJ1ZQoJCQl9ICk7CgkJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0ZlYXR1cmVzLmJQcm9jZXNzaW5nID09IHRydWU7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJQcm9jZXNzaW5nIGRpdiBpcyBpbiB0aGUgRE9NIiwKCQlmdW5jdGlvbiAoKSB7IG9UYWJsZS5vQXBpLl9mblByb2Nlc3NpbmdEaXNwbGF5KCBvU2V0dGluZ3MsIHRydWUgKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wcm9jZXNzaW5nJyk7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJQcm9jZXNzaW5nIGRpdiBpcyBoaWRkZW4gYnkgZGVmYXVsdCIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUub0FwaS5fZm5Qcm9jZXNzaW5nRGlzcGxheSggb1NldHRpbmdzLCB0cnVlICk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcHJvY2Vzc2luZycpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlByb2Nlc3NpbmcgZGl2IGNhbiBiZSBzaG93biIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUub0FwaS5fZm5Qcm9jZXNzaW5nRGlzcGxheSggb1NldHRpbmdzLCB0cnVlICk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcHJvY2Vzc2luZycpLnN0eWxlLnZpc2liaWxpdHkgPSAidmlzaWJsZSI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJQcm9jZXNzaW5nIGRpdiBjYW4gYmUgaGlkZGVuIiwKCQlmdW5jdGlvbiAoKSB7IG9UYWJsZS5vQXBpLl9mblByb2Nlc3NpbmdEaXNwbGF5KCBvU2V0dGluZ3MsIGZhbHNlICk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcHJvY2Vzc2luZycpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsgfQoJKTsKCQoJLyogRW5hYmxlIG1ha2VzIG5vIGRpZmZlcmVuY2UgKi8KCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJQcm9jZXNzaW5nIGRpc2FibGVkIG92ZXJyaWRlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiUHJvY2Vzc2luZyI6IGZhbHNlCgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vRmVhdHVyZXMuYlByb2Nlc3NpbmcgPT0gZmFsc2U7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJQcm9jZXNzaW5nIGRpdiBpcyBub3QgaW4gdGhlIERPTSIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUub0FwaS5fZm5Qcm9jZXNzaW5nRGlzcGxheSggb1NldHRpbmdzLCB0cnVlICk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcHJvY2Vzc2luZycpID09IG51bGw7IH0KCSk7CgkKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/bServerSide.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJTZXJ2ZXJTaWRlIiApOwoKLyogTm90IGludGVyZXN0ZWQgaW4gc2VydmVyLXNpZGUgcHJvY2Vzc2luZyBoZXJlIG90aGVyIHRoYW4gdG8gY2hlY2sgdGhhdCBpdCBpcyBvZmYgKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IgoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTZXJ2ZXIgc2lkZSBpcyBvZmYgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0ZlYXR1cmVzLmJTZXJ2ZXJTaWRlID09IGZhbHNlOyB9CgkpOwoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/bSort.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJTb3J0IiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIKCX0gKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgaXMgb24gYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiR2Vja28iOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU29ydGluZyBBc2MgYnkgZGVmYXVsdCBjbGFzcyBhcHBsaWVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDApJykuaGFzQ2xhc3MoInNvcnRpbmdfYXNjIik7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIkNsaWNrIG9uIHNlY29uZCBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgY2xhc3MgcmVtb3ZlZCBmcm9tIGZpcnN0IGNvbHVtbiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgwKScpLmhhc0NsYXNzKCJzb3J0aW5nX2FzYyIpICE9IHRydWU7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTb3J0aW5nIGFzYyBjbGFzcyBhcHBsaWVkIHRvIHNlY29uZCBjb2x1bW4iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5oYXNDbGFzcygic29ydGluZ19hc2MiKTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiUmV2ZXJzZSBvbiBzZWNvbmQgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiU2VhbW9ua2V5IDEuMSI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTb3J0aW5nIGFjcyBjbGFzcyByZW1vdmVkIGZyb20gc2Vjb25kIGNvbHVtbiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmhhc0NsYXNzKCJzb3J0aW5nX2FzYyIpICE9IHRydWU7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTb3J0aW5nIGRlc2MgY2xhc3MgYXBwbGllZCB0byBzZWNvbmQgY29sdW1uIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuaGFzQ2xhc3MoInNvcnRpbmdfZGVzYyIpOyB9CgkpOwoJCgkvKiBDaGVjayBjYW4gZGlzYWJsZSAqLwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlBhZ2lhbnRpb24gY2FuIGJlIGRpc2FibGVkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiU29ydCI6IGZhbHNlCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDMpJykuaHRtbCgpID09ICI0IjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiQ2xpY2sgb24gc2Vjb25kIGNvbHVtbiBoYXMgbm8gZWZmZWN0IiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiNCI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIlJldmVyc2Ugb24gc2Vjb25kIGNvbHVtbiBoYXMgbm8gZWZmZWN0IiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiNCI7IH0KCSk7CgkKCS8qIEVuYWJsZSBtYWtlcyBubyBkaWZmZXJlbmNlICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU29ydGluZyBlbmFibGVkIG92ZXJyaWRlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiU29ydCI6IHRydWUKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gIkdlY2tvIjsgfQoJKTsKCQoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/bSortClasses.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJTb3J0Q2xhc3NlcyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiCgl9ICk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTb3J0aW5nIGNsYXNzZXMgYXJlIGFwcGxpZWQgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmhhc0NsYXNzKCdzb3J0aW5nXzEnKTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgY2xhc3NlcyBhcmUgYXBwbGllZCB0byBhbGwgcmVxdWlyZWQgY2VsbHMiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoNykgdGQ6ZXEoMCknKS5oYXNDbGFzcygnc29ydGluZ18xJyk7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTb3J0aW5nIGNsYXNzZXMgYXJlIG5vdCBhcHBsaWVkIHRvIG5vbi1zb3J0aW5nIGNvbHVtbnMiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5oYXNDbGFzcygnc29ydGluZ18xJykgPT0gZmFsc2U7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTb3J0aW5nIG11bHRpLWNvbHVtbiAtIGFkZCBjb2x1bW4gMSIsCgkJZnVuY3Rpb24gKCkgeyAKCQkJb0Rpc3BhY2hlci5jbGljayggJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKVswXSwgeyAnc2hpZnQnOiB0cnVlIH0gKTsgfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmhhc0NsYXNzKCdzb3J0aW5nXzEnKSAmJgoJCQkJCQkgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5oYXNDbGFzcygnc29ydGluZ18yJyk7CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgbXVsdGktY29sdW1uIC0gYWRkIGNvbHVtbiAyIiwKCQlmdW5jdGlvbiAoKSB7IAoJCQlvRGlzcGFjaGVyLmNsaWNrKCAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgyKScpWzBdLCB7ICdzaGlmdCc6IHRydWUgfSApOyB9LAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMScpICYmCgkJCQkJCSAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmhhc0NsYXNzKCdzb3J0aW5nXzInKSAmJgoJCQkJCQkgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMiknKS5oYXNDbGFzcygnc29ydGluZ18zJyk7CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgbXVsdGktY29sdW1uIC0gYWRkIGNvbHVtbiAzIiwKCQlmdW5jdGlvbiAoKSB7IAoJCQlvRGlzcGFjaGVyLmNsaWNrKCAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpWzBdLCB7ICdzaGlmdCc6IHRydWUgfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5oYXNDbGFzcygnc29ydGluZ18xJykgJiYKCQkJCQkJICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMicpICYmCgkJCQkJCSAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgyKScpLmhhc0NsYXNzKCdzb3J0aW5nXzMnKSAmJgoJCQkJCQkgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMyknKS5oYXNDbGFzcygnc29ydGluZ18zJyk7CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlJlbW92ZSBzb3J0aW5nIGNsYXNzZXMgb24gc2luZ2xlIGNvbHVtbiBzb3J0IiwKCQlmdW5jdGlvbiAoKSB7IAoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSg0KScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmhhc0NsYXNzKCdzb3J0aW5nXzEnKSA9PSBmYWxzZSAmJgoJCQkJCQkgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5oYXNDbGFzcygnc29ydGluZ18yJykgPT0gZmFsc2UgJiYKCQkJCQkJICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDIpJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMycpID09IGZhbHNlICYmCgkJCQkJCSAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgzKScpLmhhc0NsYXNzKCdzb3J0aW5nXzMnKSA9PSBmYWxzZTsKCQl9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU29ydGluZyBjbGFzcyAxIHdhcyBhZGRlZCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKSB0ZDplcSg0KScpLmhhc0NsYXNzKCdzb3J0aW5nXzEnKTsgfQoJKTsKCQoJCgkvKiBDaGVjayBjYW4gZGlzYWJsZSAqLwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgY2xhc3NlcyBjYW4gYmUgZGlzYWJsZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJTb3J0Q2xhc3NlcyI6IGZhbHNlCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMScpID09IGZhbHNlOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU29ydGluZyBjbGFzc2VzIGRpc2FibGVkIC0gYWRkIGNvbHVtbiAxIC0gbm8gZWZmZWN0IiwKCQlmdW5jdGlvbiAoKSB7IAoJCQlvRGlzcGFjaGVyLmNsaWNrKCAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpWzBdLCB7ICdzaGlmdCc6IHRydWUgfSApOyB9LAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMScpID09IGZhbHNlICYmCgkJCQkJCSAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmhhc0NsYXNzKCdzb3J0aW5nXzInKSA9PSBmYWxzZTsKCQl9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU29ydGluZyBjbGFzc2VzIGRpc2FibGVkIC0gYWRkIGNvbHVtbiAyIC0gbm8gZWZmZWN0IiwKCQlmdW5jdGlvbiAoKSB7IAoJCQlvRGlzcGFjaGVyLmNsaWNrKCAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgyKScpWzBdLCB7ICdzaGlmdCc6IHRydWUgfSApOyB9LAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMScpID09IGZhbHNlICYmCgkJCQkJCSAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmhhc0NsYXNzKCdzb3J0aW5nXzInKSA9PSBmYWxzZSAmJgoJCQkJCQkgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMiknKS5oYXNDbGFzcygnc29ydGluZ18zJykgPT0gZmFsc2U7CgkJfQoJKTsKCQoJCgkvKiBFbmFibGUgbWFrZXMgbm8gZGlmZmVyZW5jZSAqLwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgY2xhc3NlcyBlbmFibGVkIG92ZXJyaWRlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiU29ydENsYXNzZXMiOiB0cnVlCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMScpOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/fnCreatedCell.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImZuQ3JlYXRlZENlbGwgdGVzdHMiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJdmFyIHRtcCA9IDA7Cgl2YXIgY29tcGxldGUgPSBmYWxzZTsKCgkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJImFvQ29sdW1uRGVmcyI6IFsgewoJCQlmbkNyZWF0ZWRDZWxsOiBmdW5jdGlvbiAoKSB7CgkJCQl0bXArKzsKCQkJfSwKCQkJImFUYXJnZXRzIjogWyJfYWxsIl0KCQl9IF0KCX0gKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNlbGwgY3JlYXRlZCBpcyBjYWxsZWQgb25jZSBmb3IgZWFjaCBjZWxsIG9uIGluaXQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gdG1wPT09Mjg1OyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDcmVhdGVkIGlzbid0IGNhbGxlZCBiYWNrIG9uIG90aGVyIGRyYXdzIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiB0bXA9PT0yODU7IH0KCSk7CgoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiRm91ciBhcmd1bWVudHMgZm9yIHRoZSBmdW5jdGlvbiIsCgkJZnVuY3Rpb24gKCkgeyAKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCXRtcCA9IHRydWU7CgkJCWNvbXBsZXRlID0gZmFsc2U7CgoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbIHsKCQkJCQlmbkNyZWF0ZWRSb3c6IGZ1bmN0aW9uICgpIHsKCQkJCQkJaWYgKCBhcmd1bWVudHMubGVuZ3RoICE9PSA0ICkgewoJCQkJCQkJdG1wID0gZmFsc2U7CgkJCQkJCX0KCQkJCQl9LAoJCQkJCSJhVGFyZ2V0cyI6IFsiX2FsbCJdCgkJCQl9IF0sCgkJCQlmbkluaXRDb21wbGV0ZTogZnVuY3Rpb24gKCkgewoJCQkJCWNvbXBsZXRlID0gdHJ1ZTsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gKHRtcCAmJiBjb21wbGV0ZSk7IH0KCSk7CgoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiRmlyc3QgYXJndW1lbnQgaXMgYSBURCBlbGVtZW50IiwKCQlmdW5jdGlvbiAoKSB7IAoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJdG1wID0gdHJ1ZTsKCQkJY29tcGxldGUgPSBmYWxzZTsKCgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImFvQ29sdW1uRGVmcyI6IFsgewoJCQkJCWZuQ3JlYXRlZFJvdzogZnVuY3Rpb24gKCkgewoJCQkJCQlpZiAoIGFyZ3VtZW50c1swXS5ub2RlTmFtZSAhPT0gIlREIiApIHsKCQkJCQkJCXRtcCA9IGZhbHNlOwoJCQkJCQl9CgkJCQkJfSwKCQkJCQkiYVRhcmdldHMiOiBbIl9hbGwiXQoJCQkJfSBdLAoJCQkJZm5Jbml0Q29tcGxldGU6IGZ1bmN0aW9uICgpIHsKCQkJCQljb21wbGV0ZSA9IHRydWU7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICh0bXAgJiYgY29tcGxldGUpOyB9CgkpOwoKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIlNlY29uZCBhcmd1bWVudCBpcyB0aGUgSFRNTCB2YWx1ZSIsCgkJZnVuY3Rpb24gKCkgeyAKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCXRtcCA9IHRydWU7CgkJCWNvbXBsZXRlID0gZmFsc2U7CgoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbIHsKCQkJCQlmbkNyZWF0ZWRSb3c6IGZ1bmN0aW9uICgpIHsKCQkJCQkJaWYgKCBhcmd1bWVudHNbMV0gIT0gJCgndGQnKS5odG1sKCkgKSB7CgkJCQkJCQl0bXAgPSBmYWxzZTsKCQkJCQkJfQoJCQkJCX0sCgkJCQkJImFUYXJnZXRzIjogWyJfYWxsIl0KCQkJCX0gXSwKCQkJCWZuSW5pdENvbXBsZXRlOiBmdW5jdGlvbiAoKSB7CgkJCQkJY29tcGxldGUgPSB0cnVlOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAodG1wICYmIGNvbXBsZXRlKTsgfQoJKTsKCglvVGVzdC5mbldhaXRUZXN0KAoJCSJUaGlyZCBhcmd1bWVudCBpcyB0aGUgZGF0YSBhcnJheSIsCgkJZnVuY3Rpb24gKCkgeyAKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCXRtcCA9IHRydWU7CgkJCWNvbXBsZXRlID0gZmFsc2U7CgoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbIHsKCQkJCQlmbkNyZWF0ZWRSb3c6IGZ1bmN0aW9uICgpIHsKCQkJCQkJaWYgKCBhcmd1bWVudHNbMl0ubGVuZ3RoICE9PSA1ICkgewoJCQkJCQkJdG1wID0gZmFsc2U7CgkJCQkJCX0KCQkJCQl9LAoJCQkJCSJhVGFyZ2V0cyI6IFsiX2FsbCJdCgkJCQl9IF0sCgkJCQlmbkluaXRDb21wbGV0ZTogZnVuY3Rpb24gKCkgewoJCQkJCWNvbXBsZXRlID0gdHJ1ZTsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gKHRtcCAmJiBjb21wbGV0ZSk7IH0KCSk7CgoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiRm91cnRoIGFyZ3VtZW50IGlzIHRoZSBkYXRhIHNvdXJjZSBmb3IgdGhlIHJvdyIsCgkJZnVuY3Rpb24gKCkgeyAKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCXRtcCA9IHRydWU7CgkJCWNvbXBsZXRlID0gZmFsc2U7CgoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbIHsKCQkJCQlmbkNyZWF0ZWRSb3c6IGZ1bmN0aW9uICgpIHsKCQkJCQkJaWYgKCBhcmd1bWVudHNbMl0gIT09IHRoaXMuZm5TZXR0aW5ncygpLmFvRGF0YVsgYXJndW1lbnRzWzJdIF0uX2FEYXRhICkgewoJCQkJCQkJdG1wID0gZmFsc2U7CgkJCQkJCX0KCQkJCQl9LAoJCQkJCSJhVGFyZ2V0cyI6IFsiX2FsbCJdCgkJCQl9IF0sCgkJCQlmbkluaXRDb21wbGV0ZTogZnVuY3Rpb24gKCkgewoJCQkJCWNvbXBsZXRlID0gdHJ1ZTsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gKHRtcCAmJiBjb21wbGV0ZSk7IH0KCSk7CgoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiRmlmdGggYXJndW1lbnQgaXMgdGhlIHRoZSBjb2wgaW5kZXgiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQl0bXAgPSB0cnVlOwoJCQljb21wbGV0ZSA9IGZhbHNlOwoKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYW9Db2x1bW5EZWZzIjogWyB7CgkJCQkJZm5DcmVhdGVkUm93OiBmdW5jdGlvbiAoKSB7CgkJCQkJCWlmICggYXJndW1lbnRzWzFdICE9ICQoJ3RkOmVxKCcrYXJndW1lbnRzWzRdKycpJywgYXJndW1lbnRzWzBdLnBhcmVudE5vZGUpLmh0bWwoKSApIHsKCQkJCQkJCXRtcCA9IGZhbHNlOwoJCQkJCQl9CgkJCQkJfSwKCQkJCQkiYVRhcmdldHMiOiBbIl9hbGwiXQoJCQkJfSBdLAoJCQkJZm5Jbml0Q29tcGxldGU6IGZ1bmN0aW9uICgpIHsKCQkJCQljb21wbGV0ZSA9IHRydWU7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICh0bXAgJiYgY29tcGxldGUpOyB9CgkpOwoJCgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/fnCreatedRow.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImZuQ3JlYXRlZFJvdyB0ZXN0cyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIgdG1wID0gMDsKCXZhciBjb21wbGV0ZSA9IGZhbHNlOwoKCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQlmbkNyZWF0ZWRSb3c6IGZ1bmN0aW9uICgpIHsKCQkJdG1wKys7CgkJfQoJfSApOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUm93IGNyZWF0ZWQgaXMgY2FsbGVkIG9uY2UgZm9yIGVhY2ggcm93IG9uIGluaXQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gdG1wPT09NTc7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNyZWF0ZWQgaXNuJ3QgY2FsbGVkIGJhY2sgb24gb3RoZXIgZHJhd3MiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHRtcD09PTU3OyB9CgkpOwoKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIlRocmVlIGFyZ3VtZW50cyBmb3IgdGhlIGZ1bmN0aW9uIiwKCQlmdW5jdGlvbiAoKSB7IAoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJdG1wID0gdHJ1ZTsKCQkJY29tcGxldGUgPSBmYWxzZTsKCgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJZm5DcmVhdGVkUm93OiBmdW5jdGlvbiAoKSB7CgkJCQkJaWYgKCBhcmd1bWVudHMubGVuZ3RoICE9PSAzICkgewoJCQkJCQl0bXAgPSBmYWxzZTsKCQkJCQl9CgkJCQl9LAoJCQkJZm5Jbml0Q29tcGxldGU6IGZ1bmN0aW9uICgpIHsKCQkJCQljb21wbGV0ZSA9IHRydWU7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICh0bXAgJiYgY29tcGxldGUpOyB9CgkpOwoKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIkZpcnN0IGFyZ3VtZW50IGlzIGEgVFIgZWxlbWVudCIsCgkJZnVuY3Rpb24gKCkgeyAKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCXRtcCA9IHRydWU7CgkJCWNvbXBsZXRlID0gZmFsc2U7CgoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCWZuQ3JlYXRlZFJvdzogZnVuY3Rpb24gKCkgewoJCQkJCWlmICggYXJndW1lbnRzWzBdLm5vZGVOYW1lICE9PSAiVFIiICkgewoJCQkJCQl0bXAgPSBmYWxzZTsKCQkJCQl9CgkJCQl9LAoJCQkJZm5Jbml0Q29tcGxldGU6IGZ1bmN0aW9uICgpIHsKCQkJCQljb21wbGV0ZSA9IHRydWU7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICh0bXAgJiYgY29tcGxldGUpOyB9CgkpOwoKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIlNlY29uZCBhcmd1bWVudCBpcyBhbiBhcnJheSB3aXRoIDUgZWxlbWVudHMiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQl0bXAgPSB0cnVlOwoJCQljb21wbGV0ZSA9IGZhbHNlOwoKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQlmbkNyZWF0ZWRSb3c6IGZ1bmN0aW9uICgpIHsKCQkJCQlpZiAoIGFyZ3VtZW50c1sxXS5sZW5ndGggIT09IDUgKSB7CgkJCQkJCXRtcCA9IGZhbHNlOwoJCQkJCX0KCQkJCX0sCgkJCQlmbkluaXRDb21wbGV0ZTogZnVuY3Rpb24gKCkgewoJCQkJCWNvbXBsZXRlID0gdHJ1ZTsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gKHRtcCAmJiBjb21wbGV0ZSk7IH0KCSk7CgoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiVGhpcmQgYXJndW1lbnQgaXMgdGhlIGRhdGEgc291cmNlIGZvciB0aGUgcm93IiwKCQlmdW5jdGlvbiAoKSB7IAoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJdG1wID0gdHJ1ZTsKCQkJY29tcGxldGUgPSBmYWxzZTsKCgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJZm5DcmVhdGVkUm93OiBmdW5jdGlvbiAoKSB7CgkJCQkJaWYgKCBhcmd1bWVudHNbMV0gIT09IHRoaXMuZm5TZXR0aW5ncygpLmFvRGF0YVsgYXJndW1lbnRzWzJdIF0uX2FEYXRhICkgewoJCQkJCQl0bXAgPSBmYWxzZTsKCQkJCQl9CgkJCQl9LAoJCQkJZm5Jbml0Q29tcGxldGU6IGZ1bmN0aW9uICgpIHsKCQkJCQljb21wbGV0ZSA9IHRydWU7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICh0bXAgJiYgY29tcGxldGUpOyB9CgkpOwoKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIlRSIGVsZW1lbnQgaXMgdGllZCB0byB0aGUgY29ycmVjdCBkYXRhIiwKCQlmdW5jdGlvbiAoKSB7IAoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJdG1wID0gZmFsc2U7CgkJCWNvbXBsZXRlID0gZmFsc2U7CgoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCWZuQ3JlYXRlZFJvdzogZnVuY3Rpb24gKHRyLCBkYXRhLCBpbmRleCkgewoJCQkJCWlmICggZGF0YVsxXSA9PT0gIkZpcmVmb3ggMS4wIiApIHsKCQkJCQkJaWYgKCAkKCd0ZDplcSgzKScsIHRyKS5odG1sKCkgPT0gIjEuNyIgKSB7CgkJCQkJCQl0bXAgPSB0cnVlOwoJCQkJCQl9CgkJCQkJfQoJCQkJfSwKCQkJCWZuSW5pdENvbXBsZXRlOiBmdW5jdGlvbiAoKSB7CgkJCQkJY29tcGxldGUgPSB0cnVlOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAodG1wICYmIGNvbXBsZXRlKTsgfQoJKTsKCQoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/fnDrawCallback.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImZuRHJhd0NhbGxiYWNrIiApOwoKLyogRmFpcmx5IGJvcmluZyBmdW5jdGlvbiBjb21wYXJlZCB0byB0aGUgb3RoZXJzISAqLwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCXZhciBtUGFzcywgYkluaXQ7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJEZWZhdWx0IHNob3VsZCBiZSBudWxsIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5mbkRyYXdDYWxsYmFjayA9PSBudWxsOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJPbmUgYXJndW1lbnQgcGFzc2VkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSAtMTsKCQkJYkluaXQgPSBmYWxzZTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiZm5EcmF3Q2FsbGJhY2siOiBmdW5jdGlvbiAoICkgewoJCQkJCW1QYXNzID0gYXJndW1lbnRzLmxlbmd0aDsKCQkJCX0sCgkJCQkiZm5Jbml0Q29tcGxldGUiOiBmdW5jdGlvbiAoKSB7CgkJCQkJYkluaXQgPSB0cnVlOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzcyA9PSAxICYmIGJJbml0OyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJUaGF0IG9uZSBhcmd1bWVudCBpcyB0aGUgc2V0dGluZ3Mgb2JqZWN0IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJYkluaXQgPSBmYWxzZTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiZm5EcmF3Q2FsbGJhY2siOiBmdW5jdGlvbiAoIG9TZXR0aW5ncyApIHsKCQkJCQltUGFzcyA9IG9TZXR0aW5nczsKCQkJCX0sCgkJCQkiZm5Jbml0Q29tcGxldGUiOiBmdW5jdGlvbiAoKSB7CgkJCQkJYkluaXQgPSB0cnVlOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvVGFibGUuZm5TZXR0aW5ncygpID09IG1QYXNzICYmIGJJbml0OyB9CgkpOwoJCgkKCS8qIFRoZSBkcmF3IGNhbGxiYWNrIGlzIGNhbGxlZCBvbmNlIGZvciB0aGUgaW5pdCBhbmQgdGhlbiB3aGVuIHRoZSBkYXRhIGlzIGFkZGVkICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiZm5Sb3dDYWxsYmFjayBjYWxsZWQgb25jZSBvbiBmaXJzdCBkcmF3IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSAwOwoJCQliSW5pdCA9IGZhbHNlOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJmbkRyYXdDYWxsYmFjayI6IGZ1bmN0aW9uICggKSB7CgkJCQkJbVBhc3MrKzsKCQkJCX0sCgkJCQkiZm5Jbml0Q29tcGxldGUiOiBmdW5jdGlvbiAoKSB7CgkJCQkJYkluaXQgPSB0cnVlOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzcyA9PSAyICYmIGJJbml0OyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiZm5Sb3dDYWxsYmFjayBjYWxsZWQgb25jZSBvbiBlYWNoIGRyYXcgdGhlcmUgYWZ0ZXIgYXMgd2VsbCIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3MgPT0gNTsgfQoJKTsKCQoJCgkKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/fnHeaderCallback.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImZuSGVhZGVyQ2FsbGJhY2siICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJdmFyIG1QYXNzLCBiSW5pdDsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkRlZmF1bHQgc2hvdWxkIGJlIG51bGwiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLmZuSGVhZGVyQ2FsbGJhY2sgPT0gbnVsbDsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRml2ZSBhcmd1bWVudHMgcGFzc2VkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSAtMTsKCQkJYkluaXQgPSBmYWxzZTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiZm5IZWFkZXJDYWxsYmFjayI6IGZ1bmN0aW9uICggKSB7CgkJCQkJbVBhc3MgPSBhcmd1bWVudHMubGVuZ3RoOwoJCQkJfSwKCQkJCSJmbkluaXRDb21wbGV0ZSI6IGZ1bmN0aW9uICgpIHsKCQkJCQliSW5pdCA9IHRydWU7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzID09IDUgJiYgYkluaXQ7IH0KCSk7CgkKCQoJLyogVGhlIGhlYWRlciBjYWxsYmFjayBpcyBjYWxsZWQgb25jZSBmb3IgdGhlIGluaXQgYW5kIHRoZW4gd2hlbiB0aGUgZGF0YSBpcyBhZGRlZCAqLwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJImZuSGVhZGVyQ2FsbGJhY2sgY2FsbGVkIG9uY2UgcGVyIGRyYXciLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IDA7CgkJCWJJbml0ID0gZmFsc2U7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImZuSGVhZGVyQ2FsbGJhY2siOiBmdW5jdGlvbiAoIG5IZWFkLCBhYXNEYXRhLCBpU3RhcnQsIGlFbmQsIGFpRGlzcGxheSApIHsKCQkJCQltUGFzcysrOwoJCQkJfSwKCQkJCSJmbkluaXRDb21wbGV0ZSI6IGZ1bmN0aW9uICgpIHsKCQkJCQliSW5pdCA9IHRydWU7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzID09IDIgJiYgYkluaXQ7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJmblJvd0NhbGxiYWNrIGNhbGxlZCBvbiBwYWdpbmcgKGkuZS4gYW5vdGhlciBkcmF3KSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzcyA9PSAzOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJmblJvd0NhbGxiYWNrIGFsbG93cyB1cyB0byBhbHRlciByb3cgaW5mb3JtYXRpb24iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImZuSGVhZGVyQ2FsbGJhY2siOiBmdW5jdGlvbiAoIG5IZWFkLCBhYXNEYXRhLCBpU3RhcnQsIGlFbmQsIGFpRGlzcGxheSApIHsKCQkJCQluSGVhZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndGgnKVswXS5pbm5lckhUTUwgPSAiRGlzcGxheWluZyAiKyhpRW5kLWlTdGFydCkrIiByZWNvcmRzIjsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMCknKS5odG1sKCkgPT0gIkRpc3BsYXlpbmcgMTAgcmVjb3JkcyI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJImlTdGFydCBjb3JyZWN0IG9uIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IHRydWU7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImZuSGVhZGVyQ2FsbGJhY2siOiBmdW5jdGlvbiAoIG5IZWFkLCBhYXNEYXRhLCBpU3RhcnQsIGlFbmQsIGFpRGlzcGxheSApIHsKCQkJCQlpZiAoIGlTdGFydCAhPSAwICkKCQkJCQl7CgkJCQkJCW1QYXNzID0gZmFsc2U7CgkJCQkJfQoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzczsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiaVN0YXJ0IGNvcnJlY3Qgb24gc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IGZhbHNlOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJmbkhlYWRlckNhbGxiYWNrIjogZnVuY3Rpb24gKCBuSGVhZCwgYWFzRGF0YSwgaVN0YXJ0LCBpRW5kLCBhaURpc3BsYXkgKSB7CgkJCQkJaWYgKCBpU3RhcnQgPT0gMTAgKQoJCQkJCXsKCQkJCQkJbVBhc3MgPSB0cnVlOwoJCQkJCX0KCQkJCX0sCgkJCQkiZm5Jbml0Q29tcGxldGUiOiBmdW5jdGlvbiAoKSB7CgkJCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJpRW5kIGNvcnJlY3Qgb24gc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IGZhbHNlOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJmbkhlYWRlckNhbGxiYWNrIjogZnVuY3Rpb24gKCBuSGVhZCwgYWFzRGF0YSwgaVN0YXJ0LCBpRW5kLCBhaURpc3BsYXkgKSB7CgkJCQkJaWYgKCBpRW5kID09IDIwICkKCQkJCQl7CgkJCQkJCW1QYXNzID0gdHJ1ZTsKCQkJCQl9CgkJCQl9LAoJCQkJImZuSW5pdENvbXBsZXRlIjogZnVuY3Rpb24gKCkgewoJCQkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzczsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiYWlEaXNwbGF5IGxlbmd0aCBpcyBmdWxsIGRhdGEgd2hlbiBub3QgZmlsdGVyZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IGZhbHNlOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJmbkhlYWRlckNhbGxiYWNrIjogZnVuY3Rpb24gKCBuSGVhZCwgYWFzRGF0YSwgaVN0YXJ0LCBpRW5kLCBhaURpc3BsYXkgKSB7CgkJCQkJaWYgKCBhaURpc3BsYXkubGVuZ3RoID09IDU3ICkKCQkJCQl7CgkJCQkJCW1QYXNzID0gdHJ1ZTsKCQkJCQl9CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiYWlEaXNwbGF5IGxlbmd0aCBpcyA5IHdoZW4gZmlsdGVyaW5nIG9uICdNb3ppbGxhJyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gZmFsc2U7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImZuSGVhZGVyQ2FsbGJhY2siOiBmdW5jdGlvbiAoIG5IZWFkLCBhYXNEYXRhLCBpU3RhcnQsIGlFbmQsIGFpRGlzcGxheSApIHsKCQkJCQlpZiAoIGFpRGlzcGxheS5sZW5ndGggPT0gOSApCgkJCQkJewoJCQkJCQltUGFzcyA9IHRydWU7CgkJCQkJfQoJCQkJfQoJCQl9ICk7CgkJCW9UYWJsZS5mbkZpbHRlciggIk1vemlsbGEiICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzczsgfQoJKTsKCQoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/fnInitComplete.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImZuSW5pdENvbXBsZXRlIiApOwoKLyogRmFpcmx5IGJvcmluZyBmdW5jdGlvbiBjb21wYXJlZCB0byB0aGUgb3RoZXJzISAqLwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCXZhciBtUGFzczsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkRlZmF1bHQgc2hvdWxkIGJlIG51bGwiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLmZuSW5pdENvbXBsZXRlID09IG51bGw7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlR3byBhcmd1bWVudHMgcGFzc2VkIChmb3IgQWpheCEpIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSAtMTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiZm5Jbml0Q29tcGxldGUiOiBmdW5jdGlvbiAoICkgewoJCQkJCW1QYXNzID0gYXJndW1lbnRzLmxlbmd0aDsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3MgPT0gMjsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiVGhhdCBvbmUgYXJndW1lbnQgaXMgdGhlIHNldHRpbmdzIG9iamVjdCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImZuSW5pdENvbXBsZXRlIjogZnVuY3Rpb24gKCBvU2V0dGluZ3MgKSB7CgkJCQkJbVBhc3MgPSBvU2V0dGluZ3M7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9UYWJsZS5mblNldHRpbmdzKCkgPT0gbVBhc3M7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJImZuSW5pdENvbXBsZXRlIGNhbGxlZCBvbmNlIG9uIGZpcnN0IGRyYXciLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IDA7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImZuSW5pdENvbXBsZXRlIjogZnVuY3Rpb24gKCApIHsKCQkJCQltUGFzcysrOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzcyA9PSAxOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiZm5Jbml0Q29tcGxldGUgbmV2ZXIgY2FsbGVkIHRoZXJlIGFmdGVyIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzcyA9PSAxOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSIxMCByb3dzIGluIHRoZSB0YWJsZSBvbiBjb21wbGV0ZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gMDsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiZm5Jbml0Q29tcGxldGUiOiBmdW5jdGlvbiAoICkgewoJCQkJCW1QYXNzID0gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGg7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzID09IDEwOyB9CgkpOwoJCgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/fnRowCallback.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImZuUm93Q2FsbGJhY2siICk7CgovKiBOb3RlIC0gZm5Sb3dDYWxsYmFjayBNVVNUIHJldHVybiB0aGUgZmlyc3QgYXJndW1lbnRzIChtb2RpZmllZCBvciBub3QpICovCgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJdmFyIG1QYXNzOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRGVmYXVsdCBzaG91bGQgYmUgbnVsbCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3MuZm5Sb3dDYWxsYmFjayA9PSBudWxsOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJGb3VyIGFyZ3VtZW50cyBwYXNzZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IC0xOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJmblJvd0NhbGxiYWNrIjogZnVuY3Rpb24gKCBuVHIgKSB7CgkJCQkJbVBhc3MgPSBhcmd1bWVudHMubGVuZ3RoOwoJCQkJCXJldHVybiBuVHI7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzID09IDQ7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJImZuUm93Q2FsbGJhY2sgY2FsbGVkIG9uY2UgZm9yIGVhY2ggZHJhd24gcm93IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSAwOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJmblJvd0NhbGxiYWNrIjogZnVuY3Rpb24gKCBuVHIsIGFzRGF0YSwgaURyYXdJbmRleCwgaURhdGFJbmRleCApIHsKCQkJCQltUGFzcysrOwoJCQkJCXJldHVybiBuVHI7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzID09IDEwOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiZm5Sb3dDYWxsYmFjayBhbGxvd3MgdXMgdG8gYWx0ZXIgcm93IGluZm9ybWF0aW9uIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJmblJvd0NhbGxiYWNrIjogZnVuY3Rpb24gKCBuVHIsIGFzRGF0YSwgaURyYXdJbmRleCwgaURhdGFJbmRleCApIHsKCQkJCQkkKG5UcikuYWRkQ2xhc3MoJ3VuaXRfdGVzdCcpOwoJCQkJCXJldHVybiBuVHI7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDEpJykuaGFzQ2xhc3MoJ3VuaXRfdGVzdCcpOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRGF0YSBhcnJheSBoYXMgbGVuZ3RoIG1hdGNoaW5nIGNvbHVtbnMiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IHRydWU7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImZuUm93Q2FsbGJhY2siOiBmdW5jdGlvbiAoIG5UciwgYXNEYXRhLCBpRHJhd0luZGV4LCBpRGF0YUluZGV4ICkgewoJCQkJCWlmICggYXNEYXRhLmxlbmd0aCAhPSA1ICkKCQkJCQkJbVBhc3MgPSBmYWxzZTsKCQkJCQlyZXR1cm4gblRyOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzczsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkRhdGEgYXJyYXkgaGFzIGxlbmd0aCBtYXRjaGluZyBjb2x1bW5zIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSB0cnVlOwoJCQl2YXIgaUNvdW50ID0gMDsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiZm5Sb3dDYWxsYmFjayI6IGZ1bmN0aW9uICggblRyLCBhc0RhdGEsIGlEcmF3SW5kZXgsIGlEYXRhSW5kZXggKSB7CgkJCQkJaWYgKCBpQ291bnQgIT0gaURyYXdJbmRleCApCgkJCQkJCW1QYXNzID0gZmFsc2U7CgkJCQkJaUNvdW50Kys7CgkJCQkJcmV0dXJuIG5UcjsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3M7IH0KCSk7CgkKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/fnServerData.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImZuU2VydmVyRGF0YSBmb3IgQWpheCBzb3VyY2VkIGRhdGEiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJdmFyIG1QYXNzOwoJCglvVGVzdC5mblRlc3QoIAoJCSJBcmd1bWVudCBsZW5ndGgiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiZm5TZXJ2ZXJEYXRhIjogZnVuY3Rpb24gKCkgewoJCQkJCW1QYXNzID0gYXJndW1lbnRzLmxlbmd0aDsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3MgPT0gNDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiVXJsIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYkRlc3Ryb3kiOiB0cnVlLAoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJmblNlcnZlckRhdGEiOiBmdW5jdGlvbiAoc1VybCwgYW9EYXRhLCBmbkNhbGxiYWNrLCBvU2V0dGluZ3MpIHsKCQkJCQltUGFzcyA9IHNVcmwgPT0gIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IjsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3M7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkRhdGEgYXJyYXkiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiRGVzdHJveSI6IHRydWUsCgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImZuU2VydmVyRGF0YSI6IGZ1bmN0aW9uIChzVXJsLCBhb0RhdGEsIGZuQ2FsbGJhY2ssIG9TZXR0aW5ncykgewoJCQkJCW1QYXNzID0gYW9EYXRhLmxlbmd0aD09MDsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3M7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNhbGxiYWNrIGZ1bmN0aW9uIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYkRlc3Ryb3kiOiB0cnVlLAoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJmblNlcnZlckRhdGEiOiBmdW5jdGlvbiAoc1VybCwgYW9EYXRhLCBmbkNhbGxiYWNrLCBvU2V0dGluZ3MpIHsKCQkJCQltUGFzcyA9IHR5cGVvZiBmbkNhbGxiYWNrID09ICdmdW5jdGlvbic7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/iDisplayLength.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImlEaXNwbGF5TGVuZ3RoIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIKCX0gKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkRlZmF1bHQgbGVuZ3RoIGlzIHRlbiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSAxMDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNlbGVjdCBtZW51IHNob3dzIDEwIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlX2xlbmd0aCBzZWxlY3QnKS52YWwoKSA9PSAxMDsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU2V0IGluaXRpYWwgbGVuZ3RoIHRvIDI1IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJpRGlzcGxheUxlbmd0aCI6IDI1CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDI1OyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU2VsZWN0IG1lbnUgc2hvd3MgMjUiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGVfbGVuZ3RoIHNlbGVjdCcpLnZhbCgpID09IDI1OyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTZXQgaW5pdGlhbCBsZW5ndGggdG8gMTAwIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJpRGlzcGxheUxlbmd0aCI6IDEwMAoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSA1NzsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNlbGVjdCBtZW51IHNob3dzIDI1IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlX2xlbmd0aCBzZWxlY3QnKS52YWwoKSA9PSAxMDA7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNldCBpbml0aWFsIGxlbmd0aCB0byAyMyAodW5rbm93biBzZWxlY3QgbWVudSBsZW5ndGgpIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJpRGlzcGxheUxlbmd0aCI6IDIzCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDIzOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU2VsZWN0IG1lbnUgc2hvd3MgMTAgKHNpbmNlIDIzIGlzIHVua25vdykiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGVfbGVuZ3RoIHNlbGVjdCcpLnZhbCgpID09IDEwOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/oLanguage.oPaginate.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5vUGFnaW5hdGUiICk7CgovKiBOb3RlIHRoYXQgdGhlIHBhZ2luZyBsYW5ndWFnZSBpbmZvcm1hdGlvbiBvbmx5IGhhcyByZWxldmVuY2UgaW4gZnVsbCBudW1iZXJzICovCgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJInNQYWdpbmF0aW9uVHlwZSI6ICJmdWxsX251bWJlcnMiCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIm9MYW5ndWFnZS5vUGFnaW5hdGUgZGVmYXVsdHMiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYlJldHVybiA9IAoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5vUGFnaW5hdGUuc0ZpcnN0ID09ICJGaXJzdCIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uub1BhZ2luYXRlLnNQcmV2aW91cyA9PSAiUHJldmlvdXMiICYmCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLm9QYWdpbmF0ZS5zTmV4dCA9PSAiTmV4dCIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uub1BhZ2luYXRlLnNMYXN0ID09ICJMYXN0IjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkib0xhbmd1YWdlLm9QYWdpbmF0ZSBkZWZhdWx0cyBhcmUgaW4gdGhlIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBiUmV0dXJuID0gCgkJCQkkKCcjZXhhbXBsZV9wYWdpbmF0ZSAuZmlyc3QnKS5odG1sKCkgPT0gIkZpcnN0IiAmJgoJCQkJJCgnI2V4YW1wbGVfcGFnaW5hdGUgLnByZXZpb3VzJykuaHRtbCgpID09ICJQcmV2aW91cyIgJiYKCQkJCSQoJyNleGFtcGxlX3BhZ2luYXRlIC5uZXh0JykuaHRtbCgpID09ICJOZXh0IiAmJgoJCQkJJCgnI2V4YW1wbGVfcGFnaW5hdGUgLmxhc3QnKS5odG1sKCkgPT0gIkxhc3QiOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJvTGFuZ3VhZ2Uub1BhZ2luYXRlIGNhbiBiZSBkZWZpbmVkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJzUGFnaW5hdGlvblR5cGUiOiAiZnVsbF9udW1iZXJzIiwKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJIm9QYWdpbmF0ZSI6IHsKCQkJCQkJInNGaXJzdCI6ICAgICJ1bml0MSIsCgkJCQkJCSJzUHJldmlvdXMiOiAidGVzdDIiLAoJCQkJCQkic05leHQiOiAgICAgInVuaXQzIiwKCQkJCQkJInNMYXN0IjogICAgICJ0ZXN0NCIKCQkJCQl9CgkJCQl9CgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uub1BhZ2luYXRlLnNGaXJzdCA9PSAidW5pdDEiICYmCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLm9QYWdpbmF0ZS5zUHJldmlvdXMgPT0gInRlc3QyIiAmJgoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5vUGFnaW5hdGUuc05leHQgPT0gInVuaXQzIiAmJgoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5vUGFnaW5hdGUuc0xhc3QgPT0gInRlc3Q0IjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkib0xhbmd1YWdlLm9QYWdpbmF0ZSBkZWZpbml0aW9ucyBhcmUgaW4gdGhlIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBiUmV0dXJuID0gCgkJCQkkKCcjZXhhbXBsZV9wYWdpbmF0ZSAuZmlyc3QnKS5odG1sKCkgPT0gInVuaXQxIiAmJgoJCQkJJCgnI2V4YW1wbGVfcGFnaW5hdGUgLnByZXZpb3VzJykuaHRtbCgpID09ICJ0ZXN0MiIgJiYKCQkJCSQoJyNleGFtcGxlX3BhZ2luYXRlIC5uZXh0JykuaHRtbCgpID09ICJ1bml0MyIgJiYKCQkJCSQoJyNleGFtcGxlX3BhZ2luYXRlIC5sYXN0JykuaHRtbCgpID09ICJ0ZXN0NCI7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/oLanguage.sInfo.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zSW5mbyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IgoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJJbmZvIGxhbmd1YWdlIGlzICdTaG93aW5nIF9TVEFSVF8gdG8gX0VORF8gb2YgX1RPVEFMXyBlbnRyaWVzJyBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc0luZm8gPT0gIlNob3dpbmcgX1NUQVJUXyB0byBfRU5EXyBvZiBfVE9UQUxfIGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJbmZvIGxhbmd1YWdlIGRlZmF1bHQgaXMgaW4gdGhlIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID0gIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiSW5mbyBsYW5ndWFnZSBjYW4gYmUgZGVmaW5lZCAtIHdpdGhvdXQgYW55IG1hY3JvcyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzSW5mbyI6ICJ1bml0IHRlc3QiCgkJCQl9CgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc0luZm8gPT0gInVuaXQgdGVzdCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkluZm8gbGFuZ3VhZ2UgZGVmaW5pdGlvbiBpcyBpbiB0aGUgRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPSAidW5pdCB0ZXN0IjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkluZm8gbGFuZ3VhZ2UgY2FuIGJlIGRlZmluZWQgLSB3aXRoIG1hY3JvIF9TVEFSVF8gb25seSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzSW5mbyI6ICJ1bml0IF9TVEFSVF8gdGVzdCIKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9ICJ1bml0IDEgdGVzdCI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJJbmZvIGxhbmd1YWdlIGNhbiBiZSBkZWZpbmVkIC0gd2l0aCBtYWNybyBfRU5EXyBvbmx5IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNJbmZvIjogInVuaXQgX0VORF8gdGVzdCIKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9ICJ1bml0IDEwIHRlc3QiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiSW5mbyBsYW5ndWFnZSBjYW4gYmUgZGVmaW5lZCAtIHdpdGggbWFjcm8gX1RPVEFMXyBvbmx5IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNJbmZvIjogInVuaXQgX0VORF8gdGVzdCIKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9ICJ1bml0IDU3IHRlc3QiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiSW5mbyBsYW5ndWFnZSBjYW4gYmUgZGVmaW5lZCAtIHdpdGggbWFjcm9zIF9TVEFSVF8gYW5kIF9FTkRfIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNJbmZvIjogInVuaXQgX1NUQVJUXyBfRU5EXyB0ZXN0IgoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID0gInVuaXQgMSAxMCB0ZXN0IjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkluZm8gbGFuZ3VhZ2UgY2FuIGJlIGRlZmluZWQgLSB3aXRoIG1hY3JvcyBfU1RBUlRfLCBfRU5EXyBhbmQgX1RPVEFMXyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzSW5mbyI6ICJ1bml0IF9TVEFSVF8gX0VORF8gX1RPVEFMXyB0ZXN0IgoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID0gInVuaXQgMSAxMCA1NyB0ZXN0IjsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/oLanguage.sInfoEmpty.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zSW5mb0VtcHR5IiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkluZm8gZW1wdHkgbGFuZ3VhZ2UgaXMgJ1Nob3dpbmcgMCB0byAwIG9mIDAgZW50cmllcycgYnkgZGVmYXVsdCIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUuZm5GaWx0ZXIoIm5vdGhpbmdoZXJlIik7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9MYW5ndWFnZS5zSW5mb0VtcHR5ID09ICJTaG93aW5nIDAgdG8gMCBvZiAwIGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJbmZvIGVtcHR5IGxhbmd1YWdlIGRlZmF1bHQgaXMgaW4gdGhlIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBiUmV0dXJuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTC5yZXBsYWNlKCAKCQkJCScgJytvU2V0dGluZ3Mub0xhbmd1YWdlLnNJbmZvRmlsdGVyZWQucmVwbGFjZSggJ19NQVhfJywgJzU3JyApLCAiIiApID09CgkJCQkJIlNob3dpbmcgMCB0byAwIG9mIDAgZW50cmllcyI7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkluZm8gZW1wdHkgbGFuZ3VhZ2UgY2FuIGJlIGRlZmluZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic0luZm9FbXB0eSI6ICJ1bml0IHRlc3QiCgkJCQl9CgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQkJb1RhYmxlLmZuRmlsdGVyKCJub3RoaW5naGVyZSIpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9MYW5ndWFnZS5zSW5mb0VtcHR5ID09ICJ1bml0IHRlc3QiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJbmZvIGVtcHR5IGxhbmd1YWdlIGRlZmF1bHQgaXMgaW4gdGhlIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBiUmV0dXJuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTC5yZXBsYWNlKCAKCQkJCScgJytvU2V0dGluZ3Mub0xhbmd1YWdlLnNJbmZvRmlsdGVyZWQucmVwbGFjZSggJ19NQVhfJywgJzU3JyApLCAiIiApID09CgkJCQkJInVuaXQgdGVzdCI7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk1hY3JvJ3MgcmVwbGFjZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic0luZm9FbXB0eSI6ICJ1bml0IF9TVEFSVF8gX0VORF8gX1RPVEFMXyB0ZXN0IgoJCQkJfQoJCQl9ICk7CgkJCW9UYWJsZS5mbkZpbHRlcigibm90aGluZ2hlcmUiKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGJSZXR1cm4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MLnJlcGxhY2UoIAoJCQkJJyAnK29TZXR0aW5ncy5vTGFuZ3VhZ2Uuc0luZm9GaWx0ZXJlZC5yZXBsYWNlKCAnX01BWF8nLCAnNTcnICksICIiICkgPT0KCQkJCQkidW5pdCAxIDAgMCB0ZXN0IjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/oLanguage.sInfoPostFix.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zSW5mb1Bvc3RGaXgiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiSW5mbyBwb3N0IGZpeCBsYW5ndWFnZSBpcyAnJyAoYmxhbmspIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9MYW5ndWFnZS5zSW5mb1Bvc3RGaXggPT0gIiI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIldpZHRoIG5vIHBvc3QgZml4LCB0aGUgYmFzaWMgaW5mbyBzaG93cyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID0gIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiSW5mbyBwb3N0IGZpeCBsYW5ndWFnZSBjYW4gYmUgZGVmaW5lZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzSW5mb1Bvc3RGaXgiOiAidW5pdCB0ZXN0IgoJCQkJfQoJCQl9ICk7CgkJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0xhbmd1YWdlLnNJbmZvUG9zdEZpeCA9PSAidW5pdCB0ZXN0IjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiSW5mbyBlbXB0eSBsYW5ndWFnZSBkZWZhdWx0IGlzIGluIHRoZSBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9ICJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyB1bml0IHRlc3QiOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJNYWNyb3MgaGF2ZSBubyBlZmZlY3QgaW4gdGhlIHBvc3QgZml4IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNJbmZvUG9zdEZpeCI6ICJ1bml0IF9TVEFSVF8gX0VORF8gX1RPVEFMXyB0ZXN0IgoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID0gIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIHVuaXQgX1NUQVJUXyBfRU5EXyBfVE9UQUxfIHRlc3QiOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJQb3N0IGZpeCBpcyBhcHBsaWVkIGFmdGVyIGZpbnRlcmluZyBpbmZvIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNJbmZvUG9zdEZpeCI6ICJ1bml0IHRlc3QiCgkJCQl9CgkJCX0gKTsKCQkJb1RhYmxlLmZuRmlsdGVyKCJub3RoaW5naGVyZSIpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9ICJTaG93aW5nIDAgdG8gMCBvZiAwIGVudHJpZXMgdW5pdCAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSB0ZXN0IjsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/oLanguage.sLengthMenu.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zTGVuZ3RoTWVudSIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IgoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJNZW51IGxhbmd1YWdlIGlzICdTaG93IF9NRU5VXyBlbnRyaWVzJyBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc0xlbmd0aE1lbnUgPT0gIlNob3cgX01FTlVfIGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIl9NRU5VXyBtYWNybyBpcyByZXBsYWNlZCBieSBzZWxlY3QgbWVudSBpbiBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnc2VsZWN0Jywgb1NldHRpbmdzLmFhbkZlYXR1cmVzLmxbMF0pLmxlbmd0aCA9PSAxIH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiQSBsYWJlbCBpbnB1dCBpcyB1c2VkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJ2xhYmVsJywgb1NldHRpbmdzLmFhbkZlYXR1cmVzLmxbMF0pLmxlbmd0aCA9PSAxIH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRGVmYXVsdCBpcyBwdXQgaW50byBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYW5DaGlsZHJlbiA9ICQoJ2xhYmVsJyxvU2V0dGluZ3MuYWFuRmVhdHVyZXMubFswXSlbMF0uY2hpbGROb2RlczsKCQkJdmFyIGJSZXR1cm4gPQoJCQkJYW5DaGlsZHJlblswXS5ub2RlVmFsdWUgPT0gIlNob3cgIiAmJgoJCQkJYW5DaGlsZHJlblsyXS5ub2RlVmFsdWUgPT0gIiBlbnRyaWVzIjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTWVudSBsZW5ndGggbGFuZ3VhZ2UgY2FuIGJlIGRlZmluZWQgLSBubyBfTUVOVV8gbWFjcm8iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic0xlbmd0aE1lbnUiOiAidW5pdCB0ZXN0IgoJCQkJfQoJCQl9ICk7CgkJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0xhbmd1YWdlLnNMZW5ndGhNZW51ID09ICJ1bml0IHRlc3QiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJNZW51IGxlbmd0aCBsYW5ndWFnZSBkZWZpbml0aW9uIGlzIGluIHRoZSBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gJCgnbGFiZWwnLCBvU2V0dGluZ3MuYWFuRmVhdHVyZXMubFswXSkudGV4dCgpID09ICJ1bml0IHRlc3QiOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk1lbnUgbGVuZ3RoIGxhbmd1YWdlIGNhbiBiZSBkZWZpbmVkIC0gd2l0aCBfTUVOVV8gbWFjcm8iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic0xlbmd0aE1lbnUiOiAidW5pdCBfTUVOVV8gdGVzdCIKCQkJCX0KCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYW5DaGlsZHJlbiA9ICQoJ2xhYmVsJyxvU2V0dGluZ3MuYWFuRmVhdHVyZXMubFswXSlbMF0uY2hpbGROb2RlczsKCQkJdmFyIGJSZXR1cm4gPQoJCQkJYW5DaGlsZHJlblswXS5ub2RlVmFsdWUgPT0gInVuaXQgIiAmJgoJCQkJYW5DaGlsZHJlblsyXS5ub2RlVmFsdWUgPT0gIiB0ZXN0IjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiT25seSB0aGUgX01FTlVfIG1hY3JvIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNMZW5ndGhNZW51IjogIl9NRU5VXyIKCQkJCX0KCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYW5DaGlsZHJlbiA9IG9TZXR0aW5ncy5hYW5GZWF0dXJlcy5sWzBdLmNoaWxkTm9kZXM7CgkJCXZhciBiUmV0dXJuID0KCQkJCWFuQ2hpbGRyZW4ubGVuZ3RoID09IDEgJiYKCQkJCSQoJ3NlbGVjdCcsIG9TZXR0aW5ncy5hYW5GZWF0dXJlcy5sWzBdKS5sZW5ndGggPT0gMTsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/oLanguage.sLoadingRecords.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zTG9hZGluZ1JlY29yZHMiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJdmFyIHRtcCA9IGZhbHNlOwoJb1Rlc3QuZm5UZXN0KCAKCQkiRGVmYXVsdCBsb2FkaW5nIHRleHQgaXMgJ0xvYWRpbmcuLi4nIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiCgkJCX0gKTsKCQkJdG1wID0gJCgnI2V4YW1wbGUgdGJvZHkgdHIgdGQnKVswXS5pbm5lckhUTUwgPT0gIkxvYWRpbmcuLi4iOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gdG1wOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIlRleHQgY2FuIGJlIG92ZXJyaWRlbiIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNMb2FkaW5nUmVjb3JkcyI6ICJ1bml0ZXN0IgoJCQkJfSwKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIKCQkJfSApOwoJCQl0bXAgPSAkKCcjZXhhbXBsZSB0Ym9keSB0ciB0ZCcpWzBdLmlubmVySFRNTCA9PSAidW5pdGVzdCI7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiB0bXA7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiV2hlbiBzWmVyb1JlY29yZHMgaXMgZ2l2ZW4gYnV0IHNMb2FkaW5nUmVjb3JkcyBpcyBub3QsIHNaZXJvUmVjb3JkcyBpcyB1c2VkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic1plcm9SZWNvcmRzIjogInVuaXRlc3Rfc1plcm9SZWNvcmRzIgoJCQkJfSwKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIKCQkJfSApOwoJCQl0bXAgPSAkKCcjZXhhbXBsZSB0Ym9keSB0ciB0ZCcpWzBdLmlubmVySFRNTCA9PSAidW5pdGVzdF9zWmVyb1JlY29yZHMiOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gdG1wOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJInNMb2FkaW5nUmVjb3JkcyBhbmQgc1plcm9SZWNvcmRzIGJvdGggZ2l2ZW4iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzWmVyb1JlY29yZHMiOiAidW5pdGVzdF9zWmVyb1JlY29yZHMyIiwKCQkJCQkic0xvYWRpbmdSZWNvcmRzIjogInVuaXRlc3QyIgoJCQkJfSwKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIKCQkJfSApOwoJCQl0bXAgPSAkKCcjZXhhbXBsZSB0Ym9keSB0ciB0ZCcpWzBdLmlubmVySFRNTCA9PSAidW5pdGVzdDIiOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gdG1wOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/oLanguage.sProcessing.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zUHJvY2Vzc2luZyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkiYlByb2Nlc3NpbmciOiB0cnVlCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlByb2Nlc3NpbmcgbGFuZ3VhZ2UgaXMgJ1Byb2Nlc3NpbmcuLi4nIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9MYW5ndWFnZS5zUHJvY2Vzc2luZyA9PSAiUHJvY2Vzc2luZy4uLiI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlByb2Nlc3NpbmcgbGFuZ3VhZ2UgZGVmYXVsdCBpcyBpbiB0aGUgRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3Byb2Nlc3NpbmcnKS5pbm5lckhUTUwgPSAiUHJvY2Vzc2luZy4uLiI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlByb2Nlc3NpbmcgbGFuZ3VhZ2UgY2FuIGJlIGRlZmluZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJQcm9jZXNzaW5nIjogdHJ1ZSwKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNQcm9jZXNzaW5nIjogInVuaXQgdGVzdCIKCQkJCX0KCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9MYW5ndWFnZS5zUHJvY2Vzc2luZyA9PSAidW5pdCB0ZXN0IjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUHJvY2Vzc2luZyBsYW5ndWFnZSBkZWZpbml0aW9uIGlzIGluIHRoZSBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcHJvY2Vzc2luZycpLmlubmVySFRNTCA9ICJ1bml0IHRlc3QiOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/oLanguage.sSearch.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zU2VhcmNoIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNlYXJjaCBsYW5ndWFnZSBpcyAnU2VhcmNoOicgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0xhbmd1YWdlLnNTZWFyY2ggPT0gIlNlYXJjaDoiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkEgbGFiZWwgaW5wdXQgaXMgdXNlZCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCdsYWJlbCcsIG9TZXR0aW5ncy5hYW5GZWF0dXJlcy5mWzBdKS5sZW5ndGggPT0gMSB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTZWFyY2ggbGFuZ3VhZ2UgZGVmYXVsdCBpcyBpbiB0aGUgRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJ2xhYmVsJywgb1NldHRpbmdzLmFhbkZlYXR1cmVzLmZbMF0pLnRleHQoKQoJCSAJPT0gIlNlYXJjaDogIjsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU2VhcmNoIGxhbmd1YWdlIGNhbiBiZSBkZWZpbmVkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNTZWFyY2giOiAidW5pdCB0ZXN0IgoJCQkJfQoJCQl9ICk7CgkJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0xhbmd1YWdlLnNTZWFyY2ggPT0gInVuaXQgdGVzdCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkluZm8gbGFuZ3VhZ2UgZGVmaW5pdGlvbiBpcyBpbiB0aGUgRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJ2xhYmVsJywgb1NldHRpbmdzLmFhbkZlYXR1cmVzLmZbMF0pLnRleHQoKS5pbmRleE9mKCd1bml0IHRlc3QnKSAhPT0gLTE7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkJsYW5rIHNlYXJjaCBoYXMgYSBubyBzcGFjZSAoc2VwYXJhdG9yKSBpbnNlcnRlZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzU2VhcmNoIjogIiIKCQkJCX0KCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfZmlsdGVyJykuY2hpbGROb2Rlcy5sZW5ndGggPT0gMTsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/oLanguage.sUrl.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zVXJsIiApOwoKLyogTm90ZSB0aGF0IHdlIG9ubHkgdGVzdCB0aGUgaW50ZXJuYWwgc3RvcmFnZSBvZiBsYW5ndWFnZSBpbmZvcm1hdGlvbiBwdWxsZWQgZm9ybSBhIGZpbGUgaGVyZQogKiBhcyB0aGUgb3RoZXIgbGFuZ3VhZ2UgdGVzdHMgd2lsbCBjaGVjayBpdCBnb2VzIGludG8gdGhlIERPTSBjb3JyZWN0bHkKICovCgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJzVXJsIGlzIGJsYW5rIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9MYW5ndWFnZS5zVXJsID09ICIiOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJMb2FkaW5nIG9mIEdlcm1hbiBmaWxlIGxvYWRzIGxhbmd1YWdlIGluZm9ybWF0aW9uIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNVcmwiOiAiLi4vLi4vLi4vZXhhbXBsZXMvZXhhbXBsZXNfc3VwcG9ydC9kZV9ERS50eHQiCgkJCQl9CgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc1Byb2Nlc3NpbmcgPT0gIkJpdHRlIHdhcnRlbi4uLiIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc0xlbmd0aE1lbnUgPT0gIl9NRU5VXyBFaW50csOkZ2UgYW56ZWlnZW4iICYmCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLnNaZXJvUmVjb3JkcyA9PSAiS2VpbmUgRWludHLDpGdlIHZvcmhhbmRlbi4iICYmCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLnNJbmZvID09ICJfU1RBUlRfIGJpcyBfRU5EXyB2b24gX1RPVEFMXyBFaW50csOkZ2VuIiAmJgoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5zSW5mb0VtcHR5ID09ICIwIGJpcyAwIHZvbiAwIEVpbnRyw6RnZW4iICYmCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLnNJbmZvRmlsdGVyZWQgPT0gIihnZWZpbHRlcnQgdm9uIF9NQVhfICBFaW50csOkZ2VuKSIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc0luZm9Qb3N0Rml4ID09ICIiICYmCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLnNTZWFyY2ggPT0gIlN1Y2hlbiIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uub1BhZ2luYXRlLnNGaXJzdCA9PSAiRXJzdGVyIiAmJgoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5vUGFnaW5hdGUuc1ByZXZpb3VzID09ICJadXLDvGNrIiAmJgoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5vUGFnaW5hdGUuc05leHQgPT0gIk7DpGNoc3RlciIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uub1BhZ2luYXRlLnNMYXN0ID09ICJMZXR6dGVyIjsKCQkJCQoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCgkvKiBPbmUgRE9NIGNoZWNrIGp1c3QgdG8gZW5zdXJlIHRoYXQgdGhleSBnbyBpbnRvIHRoZSBET00gKi8KCW9UZXN0LmZuVGVzdCgKCQkiTG9hZGVkIGxhbmd1YWdlIGdvZXMgaW50byB0aGUgRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPSAiMSBiaXMgMTAgdm9uIDU3IEVpbnRyw6RnZW4iOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/oLanguage.sZeroRecords.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zWmVyb1JlY29yZHMiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiWmVybyByZWNvcmRzIGxhbmd1YWdlIGlzICdObyBtYXRjaGluZyByZWNvcmRzIGZvdW5kJyBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc1plcm9SZWNvcmRzID09ICJObyBtYXRjaGluZyByZWNvcmRzIGZvdW5kIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiVGV4dCBpcyBzaG93biB3aGVuIGVtcHR5IHRhYmxlIChhZnRlciBmaWx0ZXJpbmcpIiwKCQlmdW5jdGlvbiAoKSB7IG9UYWJsZS5mbkZpbHRlcignbm90aGluZ2hlcmUnKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ciB0ZCcpWzBdLmlubmVySFRNTCA9PSAiTm8gbWF0Y2hpbmcgcmVjb3JkcyBmb3VuZCIgfQoJKTsKCQoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJaZXJvIHJlY29yZHMgbGFuZ3VhZ2UgY2FuIGJlIGRlZmluZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic1plcm9SZWNvcmRzIjogInVuaXQgdGVzdCIKCQkJCX0KCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9MYW5ndWFnZS5zWmVyb1JlY29yZHMgPT0gInVuaXQgdGVzdCI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIlRleHQgaXMgc2hvd24gd2hlbiBlbXB0eSB0YWJsZSAoYWZ0ZXIgZmlsdGVyaW5nKSIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUuZm5GaWx0ZXIoJ25vdGhpbmdoZXJlMicpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyIHRkJylbMF0uaW5uZXJIVE1MID09ICJ1bml0IHRlc3QiIH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/oSearch.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9TZWFyY2giICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRGVmYXVsdCB2YWx1ZXMgc2hvdWxkIGJlIGJsYW5rIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGJSZXR1cm4gPSBvU2V0dGluZ3Mub1ByZXZpb3VzU2VhcmNoLnNTZWFyY2ggPT0gIiIgJiYgCgkJCSAgICAgICAgICAgICAgIW9TZXR0aW5ncy5vUHJldmlvdXNTZWFyY2guYlJlZ2V4OwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCgkvKiBUaGlzIHRlc3QgbWlnaHQgYmUgY29uc2lkZXJlZCBpZmZ5IHNpbmNlIHRoZSBmdWxsIG9iamVjdCBpc24ndCBnaXZlbiwgYnV0IGl0J3MgcmVhc29uYWJsZSB0bwoJICogZXhwZWN0IERhdGFUYWJsZXMgdG8gY29wZSB3aXRoIHRoaXMuIEl0IHNob3VsZCBqdXN0IGFzc3VtaW5lIHJlZ2V4IGZhbHNlCgkgKi8KCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTZWFyY2ggdGVybSBvbmx5IGluIG9iamVjdCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkib1NlYXJjaCI6IHsKCQkJCQkic1NlYXJjaCI6ICJNb3ppbGxhIgoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiR2Vja28iOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTmV3IHNlYXJjaCB3aWxsIGtpbGwgb2xkIG9uZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvVGFibGUuZm5GaWx0ZXIoIk9wZXJhIik7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiUHJlc3RvIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNlYXJjaCBwbGFpbiB0ZXh0IHRlcm0gYW5kIGVzY2FwZSByZWdleCB0cnVlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJvU2VhcmNoIjogewoJCQkJCSJzU2VhcmNoIjogIkRTIiwKCQkJCQkiYlJlZ2V4IjogZmFsc2UKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIk5pbnRlbmRvIERTIGJyb3dzZXIiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU2VhcmNoIHBsYWluIHRleHQgdGVybSBhbmQgZXNjYXBlIHJlZ2V4IGZhbHNlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJvU2VhcmNoIjogewoJCQkJCSJzU2VhcmNoIjogIk9wZXJhIiwKCQkJCQkiYlJlZ2V4IjogdHJ1ZQoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiUHJlc3RvIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNlYXJjaCByZWdleCB0ZXh0IHRlcm0gYW5kIGVzY2FwZSByZWdleCB0cnVlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJvU2VhcmNoIjogewoJCQkJCSJzU2VhcmNoIjogIjEuKiIsCgkJCQkJImJSZWdleCI6IGZhbHNlCgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09ICJObyBtYXRjaGluZyByZWNvcmRzIGZvdW5kIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNlYXJjaCByZWdleCB0ZXh0IHRlcm0gYW5kIGVzY2FwZSByZWdleCBmYWxzZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkib1NlYXJjaCI6IHsKCQkJCQkic1NlYXJjaCI6ICIxLioiLAoJCQkJCSJiUmVnZXgiOiB0cnVlCgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09ICJHZWNrbyI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/sAjaxDataProp.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIkN1c3RvbSBkYXRhIHNvdXJjZSBwcm9wZXJ0eSAtIHByb3BlcnR5IGdpdmVuIiApOwoKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIgb0luaXQgPSB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9jdXN0b21fcHJvcC50eHQiLAoJCSJzQWpheERhdGFQcm9wIjogImRlbW8iCgl9OwoJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIG9Jbml0ICk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSIxMCByb3dzIHNob3duIG9uIHRoZSBmaXJzdCBwYWdlIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDEwOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJbml0aWFsIHNvcnQgb2NjdXJlZCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiR2Vja28iOyB9CgkpOwoJCgkvKiBOZWVkIHRvIHVzZSB0aGUgV2FpdFRlc3QgZm9yIHNvcnRpbmcgZHVlIHRvIHRoZSBzZXRUaW1lb3V0IGRhdGF0YWJsZXMgdXNlcyAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyAoZmlyc3QgY2xpY2spIG9uIHNlY29uZCBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyAoc2Vjb25kIGNsaWNrKSBvbiBzZWNvbmQgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiU2VhbW9ua2V5IDEuMSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgKHRoaXJkIGNsaWNrKSBvbiBzZWNvbmQgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgKGZpcnN0IGNsaWNrKSBvbiBudW1lcmljIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIi0iOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIChzZWNvbmQgY2xpY2spIG9uIG51bWVyaWMgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiNTIyLjEiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIG11bHRpLWNvbHVtbiAoZmlyc3QgY2xpY2spIiwKCQlmdW5jdGlvbiAoKSB7IAoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgwKScpLmNsaWNrKCk7CgkJCW9EaXNwYWNoZXIuY2xpY2soICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJylbMF0sIHsgJ3NoaWZ0JzogdHJ1ZSB9ICk7IH0sCgkJZnVuY3Rpb24gKCkgeyB2YXIgYiA9IAoJCQkkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiR2Vja28iICYmIAoJCQkkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQ2FtaW5vIDEuMCI7IHJldHVybiBiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIG11bHRpLWNvbHVtbiAtIHNvcnRpbmcgc2Vjb25kIGNvbHVtbiBvbmx5IiwKCQlmdW5jdGlvbiAoKSB7IAoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCgkvKiBCYXNpYyBwYWdpbmcgKi8KCW9UZXN0LmZuVGVzdCggCgkJIlBhZ2luZyB0byBzZWNvbmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiSUUgTW9iaWxlIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUGFnaW5nIHRvIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQXR0ZW1wdGluZyB0byBwYWdlIGJhY2sgYmV5b25kIHRoZSBmaXJzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCS8qIENoYW5naW5nIGxlbmd0aCAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2hhbmdpbmcgdGFibGUgbGVuZ3RoIHRvIDI1IHJlY29yZHMiLAoJCWZ1bmN0aW9uICgpIHsgJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcyNScpLmNoYW5nZSgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDI1OyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDaGFuZ2luZyB0YWJsZSBsZW5ndGggdG8gNTAgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzUwJykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gNTA7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoYW5naW5nIHRhYmxlIGxlbmd0aCB0byAxMDAgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzEwMCcpLmNoYW5nZSgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDU3OyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDaGFuZ2luZyB0YWJsZSBsZW5ndGggdG8gMTAgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzEwJykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMTA7IH0KCSk7CgkKCS8qCgkgKiBJbmZvcm1hdGlvbiBlbGVtZW50CgkgKi8KCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gb24gemVybyBjb25maWciLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIG9uIHNlY29uZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMTEgdG8gMjAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gb24gdGhpcmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDIxIHRvIDMwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/sAjaxDataProp2.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIkN1c3RvbSBkYXRhIHNvdXJjZSBwcm9wZXJ0eSAtIGFycmF5IG9ubHkiICk7CgoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCXZhciBvSW5pdCA9IHsKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5X29ubHkudHh0IiwKCQkic0FqYXhEYXRhUHJvcCI6ICIiCgl9OwoJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIG9Jbml0ICk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSIxMCByb3dzIHNob3duIG9uIHRoZSBmaXJzdCBwYWdlIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDEwOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJbml0aWFsIHNvcnQgb2NjdXJlZCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiR2Vja28iOyB9CgkpOwoJCgkvKiBOZWVkIHRvIHVzZSB0aGUgV2FpdFRlc3QgZm9yIHNvcnRpbmcgZHVlIHRvIHRoZSBzZXRUaW1lb3V0IGRhdGF0YWJsZXMgdXNlcyAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyAoZmlyc3QgY2xpY2spIG9uIHNlY29uZCBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyAoc2Vjb25kIGNsaWNrKSBvbiBzZWNvbmQgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiU2VhbW9ua2V5IDEuMSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgKHRoaXJkIGNsaWNrKSBvbiBzZWNvbmQgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgKGZpcnN0IGNsaWNrKSBvbiBudW1lcmljIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIi0iOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIChzZWNvbmQgY2xpY2spIG9uIG51bWVyaWMgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiNTIyLjEiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIG11bHRpLWNvbHVtbiAoZmlyc3QgY2xpY2spIiwKCQlmdW5jdGlvbiAoKSB7IAoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgwKScpLmNsaWNrKCk7CgkJCW9EaXNwYWNoZXIuY2xpY2soICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJylbMF0sIHsgJ3NoaWZ0JzogdHJ1ZSB9ICk7IH0sCgkJZnVuY3Rpb24gKCkgeyB2YXIgYiA9IAoJCQkkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiR2Vja28iICYmIAoJCQkkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQ2FtaW5vIDEuMCI7IHJldHVybiBiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIG11bHRpLWNvbHVtbiAtIHNvcnRpbmcgc2Vjb25kIGNvbHVtbiBvbmx5IiwKCQlmdW5jdGlvbiAoKSB7IAoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCgkvKiBCYXNpYyBwYWdpbmcgKi8KCW9UZXN0LmZuVGVzdCggCgkJIlBhZ2luZyB0byBzZWNvbmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiSUUgTW9iaWxlIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUGFnaW5nIHRvIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQXR0ZW1wdGluZyB0byBwYWdlIGJhY2sgYmV5b25kIHRoZSBmaXJzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCS8qIENoYW5naW5nIGxlbmd0aCAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2hhbmdpbmcgdGFibGUgbGVuZ3RoIHRvIDI1IHJlY29yZHMiLAoJCWZ1bmN0aW9uICgpIHsgJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcyNScpLmNoYW5nZSgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDI1OyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDaGFuZ2luZyB0YWJsZSBsZW5ndGggdG8gNTAgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzUwJykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gNTA7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoYW5naW5nIHRhYmxlIGxlbmd0aCB0byAxMDAgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzEwMCcpLmNoYW5nZSgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDU3OyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDaGFuZ2luZyB0YWJsZSBsZW5ndGggdG8gMTAgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzEwJykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMTA7IH0KCSk7CgkKCS8qCgkgKiBJbmZvcm1hdGlvbiBlbGVtZW50CgkgKi8KCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gb24gemVybyBjb25maWciLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIG9uIHNlY29uZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMTEgdG8gMjAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gb24gdGhpcmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDIxIHRvIDMwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/sAjaxSource.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggInNBamF4U291cmNlIiApOwoKLyogU2FuaXRmeSBjaGVjayByZWFsbHkgLSBhbGwgdGhlIG90aGVyIHRlc3RzIGJsYXN0IHRoaXMgKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IgoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTZXJ2ZXIgc2lkZSBpcyBvZmYgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IAoJCQlyZXR1cm4gb1NldHRpbmdzLnNBamF4U291cmNlID09ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCI7CgkJfQoJKTsKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/sDom.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggInNEb20iICk7CgovKiBUaGlzIGlzIGdvaW5nIHRvIGJlIGJydXRhbCBvbiB0aGUgYnJvd3NlciEgVGhlcmUgaXMgYSBsb3QgdGhhdCBjYW4gYmUgdGVzdGVkIGhlcmUuLi4gKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IgoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJEZWZhdWx0IERPTSB2YXJhaWJsZSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Muc0RvbSA9PSAibGZydGlwIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkRlZmF1bHQgRE9NIGluIGRvY3VtZW50IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIG5Ob2RlcyA9ICQoJyNkZW1vIGRpdiwgI2RlbW8gdGFibGUnKTsKCQkJdmFyIG5XcmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfd3JhcHBlcicpOwoJCQl2YXIgbkxlbmd0aCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2xlbmd0aCcpOwoJCQl2YXIgbkZpbHRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2ZpbHRlcicpOwoJCQl2YXIgbkluZm8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJyk7CgkJCXZhciBuUGFnaW5nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcGFnaW5hdGUnKTsKCQkJdmFyIG5UYWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlJyk7CgkJCQoJCQl2YXIgYlJldHVybiA9IAoJCQkJbk5vZGVzWzBdID09IG5XcmFwcGVyICYmCgkJCQluTm9kZXNbMV0gPT0gbkxlbmd0aCAmJgoJCQkJbk5vZGVzWzJdID09IG5GaWx0ZXIgJiYKCQkJCW5Ob2Rlc1szXSA9PSBuVGFibGUgJiYKCQkJCW5Ob2Rlc1s0XSA9PSBuSW5mbyAmJgoJCQkJbk5vZGVzWzVdID09IG5QYWdpbmc7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDaGVjayBleGFtcGxlIDEgaW4gY29kZSBwcm9wYWdhdGVzIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJzRG9tIjogJzwid3JhcHBlciJmbGlwdD4nCgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5zRG9tID09ICc8IndyYXBwZXIiZmxpcHQ+JzsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNoZWNrIGV4YW1wbGUgMSBpbiBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIganFOb2RlcyA9ICQoJyNkZW1vIGRpdiwgI2RlbW8gdGFibGUnKTsKCQkJdmFyIG5Ob2RlcyA9IFtdOwoJCQkKCQkJLyogU3RyaXAgdGhlIHBhZ2luZyBub2RlcyAqLwoJCQlmb3IgKCB2YXIgaT0wLCBpTGVuPWpxTm9kZXMubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQkJewoJCQkJaWYgKCBqcU5vZGVzW2ldLmdldEF0dHJpYnV0ZSgnaWQnKSAhPSAiZXhhbXBsZV9wcmV2aW91cyIgJiYKCQkJCSAgICAganFOb2Rlc1tpXS5nZXRBdHRyaWJ1dGUoJ2lkJykgIT0gImV4YW1wbGVfbmV4dCIgKQoJCQkJewoJCQkJCW5Ob2Rlcy5wdXNoKCBqcU5vZGVzW2ldICk7CgkJCQl9CgkJCX0KCQkJCgkJCXZhciBuV3JhcHBlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3dyYXBwZXInKTsKCQkJdmFyIG5MZW5ndGggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9sZW5ndGgnKTsKCQkJdmFyIG5GaWx0ZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9maWx0ZXInKTsKCQkJdmFyIG5JbmZvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpOwoJCQl2YXIgblBhZ2luZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3BhZ2luYXRlJyk7CgkJCXZhciBuVGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZScpOwoJCQl2YXIgbkN1c3RvbVdyYXBwZXIgPSAkKCdkaXYud3JhcHBlcicpWzBdOwoJCQkKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCW5Ob2Rlc1swXSA9PSBuV3JhcHBlciAmJgoJCQkJbk5vZGVzWzFdID09IG5DdXN0b21XcmFwcGVyICYmCgkJCQluTm9kZXNbMl0gPT0gbkZpbHRlciAmJgoJCQkJbk5vZGVzWzNdID09IG5MZW5ndGggJiYKCQkJCW5Ob2Rlc1s0XSA9PSBuSW5mbyAmJgoJCQkJbk5vZGVzWzVdID09IG5QYWdpbmcgJiYKCQkJCW5Ob2Rlc1s2XSA9PSBuVGFibGU7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDaGVjayBleGFtcGxlIDIgaW4gRE9NIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJzRG9tIjogJzxsZjx0PmlwPicKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIganFOb2RlcyA9ICQoJyNkZW1vIGRpdiwgI2RlbW8gdGFibGUnKTsKCQkJdmFyIG5Ob2RlcyA9IFtdOwoJCQl2YXIgbkN1c3RvbVdyYXBwZXJzID0gW10KCQkJCgkJCS8qIFN0cmlwIHRoZSBwYWdpbmcgbm9kZXMgKi8KCQkJZm9yICggdmFyIGk9MCwgaUxlbj1qcU5vZGVzLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJCXsKCQkJCWlmICgganFOb2Rlc1tpXS5nZXRBdHRyaWJ1dGUoJ2lkJykgIT0gImV4YW1wbGVfcHJldmlvdXMiICYmCgkJCQkgICAgIGpxTm9kZXNbaV0uZ2V0QXR0cmlidXRlKCdpZCcpICE9ICJleGFtcGxlX25leHQiICkKCQkJCXsKCQkJCQluTm9kZXMucHVzaCgganFOb2Rlc1tpXSApOwoJCQkJfQoJCQkJCgkJCQkvKiBPbmx5IHRoZSB0d28gY3VzdG9tIGRpdnMgZG9uJ3QgaGF2ZSBjbGFzcyBuYW1lcyAqLwoJCQkJaWYgKCBqcU5vZGVzW2ldLmNsYXNzTmFtZSA9PSAiIiApCgkJCQl7CgkJCQkJbkN1c3RvbVdyYXBwZXJzLnB1c2goIGpxTm9kZXNbaV0gKTsKCQkJCX0KCQkJfQoJCQkKCQkJdmFyIG5XcmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfd3JhcHBlcicpOwoJCQl2YXIgbkxlbmd0aCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2xlbmd0aCcpOwoJCQl2YXIgbkZpbHRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2ZpbHRlcicpOwoJCQl2YXIgbkluZm8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJyk7CgkJCXZhciBuUGFnaW5nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcGFnaW5hdGUnKTsKCQkJdmFyIG5UYWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlJyk7CgkJCQoJCQl2YXIgYlJldHVybiA9IAoJCQkJbk5vZGVzWzBdID09IG5XcmFwcGVyICYmCgkJCQluTm9kZXNbMV0gPT0gbkN1c3RvbVdyYXBwZXJzWzBdICYmCgkJCQluTm9kZXNbMl0gPT0gbkxlbmd0aCAmJgoJCQkJbk5vZGVzWzNdID09IG5GaWx0ZXIgJiYKCQkJCW5Ob2Rlc1s0XSA9PSBuQ3VzdG9tV3JhcHBlcnNbMV0gJiYKCQkJCW5Ob2Rlc1s1XSA9PSBuVGFibGUgJiYKCQkJCW5Ob2Rlc1s2XSA9PSBuSW5mbyAmJgoJCQkJbk5vZGVzWzddID09IG5QYWdpbmc7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDaGVjayBubyBsZW5ndGggZWxlbWVudCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkic0RvbSI6ICdmcnRpcCcKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgbk5vZGVzID0gJCgnI2RlbW8gZGl2LCAjZGVtbyB0YWJsZScpOwoJCQl2YXIgbldyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV93cmFwcGVyJyk7CgkJCXZhciBuTGVuZ3RoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfbGVuZ3RoJyk7CgkJCXZhciBuRmlsdGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfZmlsdGVyJyk7CgkJCXZhciBuSW5mbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKTsKCQkJdmFyIG5QYWdpbmcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wYWdpbmF0ZScpOwoJCQl2YXIgblRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGUnKTsKCQkJCgkJCXZhciBiUmV0dXJuID0gCgkJCQluTm9kZXNbMF0gPT0gbldyYXBwZXIgJiYKCQkJCW51bGwgPT0gbkxlbmd0aCAmJgoJCQkJbk5vZGVzWzFdID09IG5GaWx0ZXIgJiYKCQkJCW5Ob2Rlc1syXSA9PSBuVGFibGUgJiYKCQkJCW5Ob2Rlc1szXSA9PSBuSW5mbyAmJgoJCQkJbk5vZGVzWzRdID09IG5QYWdpbmc7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDaGVjayBubyBmaWx0ZXIgZWxlbWVudCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkic0RvbSI6ICdscnRpcCcKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgbk5vZGVzID0gJCgnI2RlbW8gZGl2LCAjZGVtbyB0YWJsZScpOwoJCQl2YXIgbldyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV93cmFwcGVyJyk7CgkJCXZhciBuTGVuZ3RoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfbGVuZ3RoJyk7CgkJCXZhciBuRmlsdGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfZmlsdGVyJyk7CgkJCXZhciBuSW5mbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKTsKCQkJdmFyIG5QYWdpbmcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wYWdpbmF0ZScpOwoJCQl2YXIgblRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGUnKTsKCQkJCgkJCXZhciBiUmV0dXJuID0gCgkJCQluTm9kZXNbMF0gPT0gbldyYXBwZXIgJiYKCQkJCW5Ob2Rlc1sxXSA9PSBuTGVuZ3RoICYmCgkJCQludWxsID09IG5GaWx0ZXIgJiYKCQkJCW5Ob2Rlc1syXSA9PSBuVGFibGUgJiYKCQkJCW5Ob2Rlc1szXSA9PSBuSW5mbyAmJgoJCQkJbk5vZGVzWzRdID09IG5QYWdpbmc7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCS8qIE5vdGUgd2UgZG9uJ3QgdGVzdCBmb3Igbm8gdGFibGUgYXMgdGhpcyBpcyBub3Qgc3VwcG9ydGVkIChhbmQgaXQgd291bGQgYmUgZmFpcmx5IGRhZnQhICovCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDaGVjayBubyBpbmZvIGVsZW1lbnQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJInNEb20iOiAnbGZydHAnCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIG5Ob2RlcyA9ICQoJyNkZW1vIGRpdiwgI2RlbW8gdGFibGUnKTsKCQkJdmFyIG5XcmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfd3JhcHBlcicpOwoJCQl2YXIgbkxlbmd0aCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2xlbmd0aCcpOwoJCQl2YXIgbkZpbHRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2ZpbHRlcicpOwoJCQl2YXIgbkluZm8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJyk7CgkJCXZhciBuUGFnaW5nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcGFnaW5hdGUnKTsKCQkJdmFyIG5UYWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlJyk7CgkJCQoJCQl2YXIgYlJldHVybiA9IAoJCQkJbk5vZGVzWzBdID09IG5XcmFwcGVyICYmCgkJCQluTm9kZXNbMV0gPT0gbkxlbmd0aCAmJgoJCQkJbk5vZGVzWzJdID09IG5GaWx0ZXIgJiYKCQkJCW5Ob2Rlc1szXSA9PSBuVGFibGUgJiYKCQkJCW51bGwgPT0gbkluZm8gJiYKCQkJCW5Ob2Rlc1s0XSA9PSBuUGFnaW5nOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ2hlY2sgbm8gcGFnaW5nIGVsZW1lbnQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJInNEb20iOiAnbGZydGknCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIG5Ob2RlcyA9ICQoJyNkZW1vIGRpdiwgI2RlbW8gdGFibGUnKTsKCQkJdmFyIG5XcmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfd3JhcHBlcicpOwoJCQl2YXIgbkxlbmd0aCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2xlbmd0aCcpOwoJCQl2YXIgbkZpbHRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2ZpbHRlcicpOwoJCQl2YXIgbkluZm8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJyk7CgkJCXZhciBuUGFnaW5nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcGFnaW5hdGUnKTsKCQkJdmFyIG5UYWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlJyk7CgkJCQoJCQl2YXIgYlJldHVybiA9IAoJCQkJbk5vZGVzWzBdID09IG5XcmFwcGVyICYmCgkJCQluTm9kZXNbMV0gPT0gbkxlbmd0aCAmJgoJCQkJbk5vZGVzWzJdID09IG5GaWx0ZXIgJiYKCQkJCW5Ob2Rlc1szXSA9PSBuVGFibGUgJiYKCQkJCW5Ob2Rlc1s0XSA9PSBuSW5mbyAmJgoJCQkJbnVsbCA9PSBuUGFnaW5nOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/sPaginationType.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggInNQYWdpbmF0aW9uVHlwZSIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IgoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDaGVjayB0d28gYnV0dG9uIHBhZ2luZyBpcyB0aGUgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Muc1BhZ2luYXRpb25UeXBlID09ICJ0d29fYnV0dG9uIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNoZWNrIGNsYXNzIGlzIGFwcGxpZWQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGVfcGFnaW5hdGUnKS5oYXNDbGFzcygncGFnaW5nX3R3b19idXR0b24nKTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlR3byBBIGVsZW1lbnRzIGFyZSBpbiB0aGUgd3JhcHBlciIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9wYWdpbmF0ZSBhJykubGVuZ3RoID09IDI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJXZSBoYXZlIHRoZSBwcmV2aW91cyBidXR0b24iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcHJldmlvdXMnKTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIldlIGhhdmUgdGhlIG5leHQgYnV0dG9uIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX25leHQnKTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlByZXZpb3VzIGJ1dHRvbiBpcyBkaXNhYmxlZCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9wcmV2aW91cycpLmhhc0NsYXNzKCdwYWdpbmF0ZV9kaXNhYmxlZF9wcmV2aW91cycpOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTmV4dCBidXR0b24gaXMgZW5hYmxlZCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9uZXh0JykuaGFzQ2xhc3MoJ3BhZ2luYXRlX2VuYWJsZWRfbmV4dCcpOyB9CgkpOwoJCgkvKiBEb24ndCB0ZXN0IHBhZ2luZyAtIHRoYXQncyBkb25lIGJ5IHRoZSB6ZXJvIGNvbmZpZyB0ZXN0IHNjcmlwdC4gKi8KCQoJCgkvKiBUd28gYnV0dG9ucyBwYWdpbmcgKi8KCXZhciBiQ29tcGxldGUgPSBmYWxzZTsKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDYW4gZW5hYmxlZCBmdWxsIG51bWJlcnMgcGFnaW5nIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJzUGFnaW5hdGlvblR5cGUiOiAiZnVsbF9udW1iZXJzIiwKCQkJCSJmbkluaXRDb21wbGV0ZSI6IGZ1bmN0aW9uICgpIHsKCQkJCQliQ29tcGxldGUgPSB0cnVlOwoJCQkJfQoJCQl9ICk7CgkJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCWlmICggYkNvbXBsZXRlICkKCQkJCXJldHVybiBvU2V0dGluZ3Muc1BhZ2luYXRpb25UeXBlID09ICJmdWxsX251bWJlcnMiOwoJCQllbHNlCgkJCQlyZXR1cm4gZmFsc2U7CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNoZWNrIGZ1bGwgbnVtYmVycyBjbGFzcyBpcyBhcHBsaWVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlX3BhZ2luYXRlJykuaGFzQ2xhc3MoJ3BhZ2luZ19mdWxsX251bWJlcnMnKTsgfQoJKTsKCQoJCgl2YXIgbkZpcnN0LCBuUHJldmlvdXMsIG5OZXh0LCBuTGFzdDsKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJKdW1wIHRvIGxhc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQluRmlyc3QgPSAkKCdkaXYuZGF0YVRhYmxlc19wYWdpbmF0ZSBhLmZpcnN0Jyk7CgkJCW5QcmV2aW91cyA9ICQoJ2Rpdi5kYXRhVGFibGVzX3BhZ2luYXRlIGEucHJldmlvdXMnKTsKCQkJbk5leHQgPSAkKCdkaXYuZGF0YVRhYmxlc19wYWdpbmF0ZSBhLm5leHQnKTsKCQkJbkxhc3QgPSAkKCdkaXYuZGF0YVRhYmxlc19wYWdpbmF0ZSBhLmxhc3QnKTsKCQkJbkxhc3QuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgNTEgdG8gNTcgb2YgNTcgZW50cmllcyI7CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkdvIHRvIHR3byBwYWdlcyBwcmV2aW91cyIsCgkJZnVuY3Rpb24gKCkgewoJCQluUHJldmlvdXMuY2xpY2soKTsKCQkJblByZXZpb3VzLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDMxIHRvIDQwIG9mIDU3IGVudHJpZXMiOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJOZXh0IChzZWNvbmQgbGFzdCkgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQluTmV4dC5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyA0MSB0byA1MCBvZiA1NyBlbnRyaWVzIjsKCQl9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiSnVtcCB0byBmaXJzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW5GaXJzdC5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/3_ajax/_zero_config.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIlNhbml0eSBjaGVja3MgZm9yIERhdGFUYWJsZXMgd2l0aCBkYXRhIGZyb20gSlMiICk7CgpvVGVzdC5mblRlc3QoIAoJImpRdWVyeS5kYXRhVGFibGUgZnVuY3Rpb24iLAoJbnVsbCwKCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVvZiBqUXVlcnkoKS5kYXRhVGFibGUgPT0gImZ1bmN0aW9uIjsgfQopOwoKb1Rlc3QuZm5UZXN0KAoJImpRdWVyeS5kYXRhVGFibGVTZXR0aW5ncyBzdG9yYWdlIGFycmF5IiwKCW51bGwsCglmdW5jdGlvbiAoKSB7IHJldHVybiB0eXBlb2YgalF1ZXJ5KCkuZGF0YVRhYmxlU2V0dGluZ3MgPT0gIm9iamVjdCI7IH0KKTsKCm9UZXN0LmZuVGVzdCgKCSJqUXVlcnkuZGF0YVRhYmxlRXh0IHBsdWdpbiBvYmplY3QiLAoJbnVsbCwKCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVvZiBqUXVlcnkoKS5kYXRhVGFibGVFeHQgPT0gIm9iamVjdCI7IH0KKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIgb0luaXQgPSB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IgoJfTsKCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCBvSW5pdCApOwoJCgkvKiBCYXNpYyBjaGVja3MgKi8KCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJMZW5ndGggY2hhbmdpbmcgZGl2IGV4aXN0cyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9sZW5ndGgnKSAhPSBudWxsOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJGaWx0ZXJpbmcgZGl2IGV4aXN0cyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9maWx0ZXInKSAhPSBudWxsOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJbmZvcm1hdGlvbiBkaXYgZXhpc3RzIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKSAhPSBudWxsOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJQYWdpbmF0aW9uIGRpdiBleGlzdHMiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcGFnaW5hdGUnKSAhPSBudWxsOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJQcm9jZXNzaW5nIGRpdiBpcyBvZmYgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wcm9jZXNzaW5nJykgPT0gbnVsbDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIjEwIHJvd3Mgc2hvd24gb24gdGhlIGZpcnN0IHBhZ2UiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMTA7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkluaXRpYWwgc29ydCBvY2N1cmVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDApJykuaHRtbCgpID09ICJHZWNrbyI7IH0KCSk7CgkKCS8qIE5lZWQgdG8gdXNlIHRoZSBXYWl0VGVzdCBmb3Igc29ydGluZyBkdWUgdG8gdGhlIHNldFRpbWVvdXQgZGF0YXRhYmxlcyB1c2VzICovCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIChmaXJzdCBjbGljaykgb24gc2Vjb25kIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIChzZWNvbmQgY2xpY2spIG9uIHNlY29uZCBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJTZWFtb25rZXkgMS4xIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyAodGhpcmQgY2xpY2spIG9uIHNlY29uZCBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyAoZmlyc3QgY2xpY2spIG9uIG51bWVyaWMgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiLSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgKHNlY29uZCBjbGljaykgb24gbnVtZXJpYyBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMyknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDMpJykuaHRtbCgpID09ICI1MjIuMSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgbXVsdGktY29sdW1uIChmaXJzdCBjbGljaykiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDApJykuY2xpY2soKTsKCQkJb0Rpc3BhY2hlci5jbGljayggJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKVswXSwgeyAnc2hpZnQnOiB0cnVlIH0gKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHZhciBiID0gCgkJCSQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDApJykuaHRtbCgpID09ICJHZWNrbyIgJiYgCgkJCSQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJDYW1pbm8gMS4wIjsgcmV0dXJuIGI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgbXVsdGktY29sdW1uIC0gc29ydGluZyBzZWNvbmQgY29sdW1uIG9ubHkiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCS8qIEJhc2ljIHBhZ2luZyAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiUGFnaW5nIHRvIHNlY29uZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJJRSBNb2JpbGUiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJQYWdpbmcgdG8gZmlyc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJBdHRlbXB0aW5nIHRvIHBhZ2UgYmFjayBiZXlvbmQgdGhlIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJLyogQ2hhbmdpbmcgbGVuZ3RoICovCglvVGVzdC5mblRlc3QoIAoJCSJDaGFuZ2luZyB0YWJsZSBsZW5ndGggdG8gMjUgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzI1JykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMjU7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoYW5naW5nIHRhYmxlIGxlbmd0aCB0byA1MCByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7ICQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnNTAnKS5jaGFuZ2UoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSA1MDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2hhbmdpbmcgdGFibGUgbGVuZ3RoIHRvIDEwMCByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7ICQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnMTAwJykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gNTc7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoYW5naW5nIHRhYmxlIGxlbmd0aCB0byAxMCByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7ICQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnMTAnKS5jaGFuZ2UoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSAxMDsgfQoJKTsKCQoJLyoKCSAqIEluZm9ybWF0aW9uIGVsZW1lbnQKCSAqLwoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiBvbiB6ZXJvIGNvbmZpZyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gb24gc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAxMSB0byAyMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiBvbiB0aGlyZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMjEgdG8gMzAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gb24gbGFzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDUxIHRvIDU3IG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIGJhY2sgb24gZmlyc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIDI1IHJlY29yZHMiLAoJCWZ1bmN0aW9uICgpIHsgJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcyNScpLmNoYW5nZSgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMSB0byAyNSBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIDI1IHJlY29yZHMgLSBzZWNvbmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDI2IHRvIDUwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggMTAwIHJlY29yZHMgLSBmaXJzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcxMDAnKS5jaGFuZ2UoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMSB0byA1NyBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiBiYWNrIHRvIDEwIHJlY29yZHMiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzEwJykuY2hhbmdlKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbiciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXaW4iKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbicgc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMTEgdG8gMjAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbicgbGFzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDMxIHRvIDMxIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyICdXaW4nIGJhY2sgdG8gZmlyc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciAnV2luJyBzZWNvbmQgcGFnZSAtIHNlY29uZCB0aW1lIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMTEgdG8gMjAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgaW5jcmVhc2VkIHRvICdXaW4gOTgnIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2luIDk4Iikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDkgb2YgOSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciBkZWNyZWFzZWQgdG8gJ1dpbiciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXaW4iKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbicgc2Vjb25kIHBhZ2UgLSB0aGlyZCB0aW1lIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMTEgdG8gMjAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgcmVtb3ZlZCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIiIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJCgkvKgoJICogRmlsdGVyaW5nCgkgKi8KCW9UZXN0LmZuV2FpdFRlc3QoCgkJIkZpbHRlciAnVycgLSByb3dzIiwKCQlmdW5jdGlvbiAoKSB7IAoJCQkvKiBSZXNldCB0aGUgdGFibGUgc3VjaCB0aGF0IHRoZSBvbGQgc29ydGluZyBkb2Vzbid0IG1lc3MgdGhpbmdzIHVwICovCgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggb0luaXQgKTsKCQkJJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiR2Vja28iOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnVycgLSBpbmZvIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgNDIgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaSciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXaSIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAzMiBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbiciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXaW4iKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaW4nIC0gc29ydGluZyBjb2x1bW4gMSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFPTCBicm93c2VyIChBT0wgZGVza3RvcCkiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luJyAtIHNvcnRpbmcgY29sdW1uIDEgaW5mbyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luJyAtIHNvcnRpbmcgY29sdW1uIDEgcmV2ZXJzZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIlNlYW1vbmtleSAxLjEiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luIFhQJyAtIG1haW50YWluZyByZXZlcnNlIHNvcnRpbmcgY29sIDEiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXaW4gWFAiKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICJJbnRlcm5ldCBFeHBsb3JlciA3IjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbiBYUCcgLSBzb3J0aW5nIGNvbCAzIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiNCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaW4gWFAnIC0gc29ydGluZyBjb2wgMyAtIHJldmVyc2VkIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiNyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaW4nIC0gc29ydGluZyBjb2wgMyAtIHJldmVyc2VkIGluZm8iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byA2IG9mIDYgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdub3RoaW5naGVyZSciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJub3RoaW5naGVyZSIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gCgkJCSJObyBtYXRjaGluZyByZWNvcmRzIGZvdW5kIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ25vdGhpbmdoZXJlJyAtIGluZm8iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMCB0byAwIG9mIDAgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyIGJhY2sgdG8gYmxhbmsgYW5kIDFzdCBjb2x1bW4gc29ydGluZyIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIiIpLmtleXVwKCk7CgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDApJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiUHJlZml4aW5nIGEgZmlsdGVyIGVudHJ5IiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2luIikua2V5dXAoKTsKCQkJJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJHZWNrb1dpbiIpLmtleXVwKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAwIHRvIDAgb2YgMCBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJQcmVmaXhpbmcgYSBmaWx0ZXIgZW50cnkgd2l0aCBzcGFjZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIkdlY2tvIFdpbiIpLmtleXVwKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDE3IGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCgkKCQoJCgkKCQoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/-iDraw.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImlEcmF3IC0gY2hlY2sgdGhhdCBpRHJhdyBpbmNyZW1lbnRzIGZvciBlYWNoIGRyYXciICk7CgoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIgoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJBZnRlciBmaXJzdCBkcmF3LCBpRHJhdyBpcyAxIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5pRHJhdyA9PSAxOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQWZ0ZXIgc2Vjb25kIGRyYXcsIGlEcmF3IGlzIDIiLAoJCWZ1bmN0aW9uICgpIHsgb1RhYmxlLmZuRHJhdygpIH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLmlEcmF3ID09IDI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJBZnRlciBzb3J0IiwKCQlmdW5jdGlvbiAoKSB7IG9UYWJsZS5mblNvcnQoW1sxLCdhc2MnXV0pIH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLmlEcmF3ID09IDM7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJBZnRlciBmaWx0ZXIiLAoJCWZ1bmN0aW9uICgpIHsgb1RhYmxlLmZuRmlsdGVyKCdnZWNrbycpIH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLmlEcmF3ID09IDQ7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJBZnRlciBhbm90aGVyIGZpbHRlciIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUuZm5GaWx0ZXIoJ2dlYycpIH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLmlEcmF3ID09IDU7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/2440.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKLyoKICogTk9URTogVGhlcmUgYXJlIHNvbWUgZGlmZmVyZW5jZXMgaW4gdGhpcyB6ZXJvIGNvbmZpZyBzY3JpcHQgZm9yIHNlcnZlci1zaWRlCiAqIHByb2Nlc3NpbmcgY29tcGFyZWQgdG8gdGhlIG90aGVyIGRhdGEgc291cmNlcy4gVGhlIG1haW4gcmVhc29uIGZvciB0aGlzIGlzIHRoZQogKiBkaWZmZXJlbmNlIGluIGhvdyB0aGUgc2VydmVyLXNpZGUgcHJvY2Vzc2luZyBkb2VzIGl0J3MgZmlsdGVyaW5nLiBBbHNvIHRoZQogKiBzb3J0aW5nIHN0YXRlIGlzIGFsd2F5cyByZXNldCBvbiBlYWNoIGRyYXcuCiAqLwpvVGVzdC5mblN0YXJ0KCAiSW5mbyBlbGVtZW50IHdpdGggZGlzcGxheSBhbGwiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiCgl9ICk7CgkKCW9UYWJsZS5mblNldHRpbmdzKCkuX2lEaXNwbGF5TGVuZ3RoID0gLTE7CglvVGFibGUub0FwaS5fZm5DYWxjdWxhdGVFbmQoIG9UYWJsZS5mblNldHRpbmdzKCkgKTsKCW9UYWJsZS5mbkRyYXcoKTsKCQoJCgkvKiBCYXNpYyBjaGVja3MgKi8KCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDaGVjayBsZW5ndGggaXMgY29ycmVjdCB3aGVuIC0xIGxlbmd0aCBnaXZlbiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkJIlNob3dpbmcgMSB0byA1NyBvZiA1NyBlbnRyaWVzIjsKCQl9CgkpOwoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/2569.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIkRlc3Ryb3kgd2l0aCBoaWRkZW4gY29sdW1ucyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIgbVRlc3Q7CgkKCQoJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJImFvQ29sdW1uRGVmcyI6IFsgCgkJCXsgImJTZWFyY2hhYmxlIjogZmFsc2UsICJiVmlzaWJsZSI6IGZhbHNlLCAiYVRhcmdldHMiOiBbIDIgXSB9LAoJCQl7ICJiVmlzaWJsZSI6IGZhbHNlLCAiYVRhcmdldHMiOiBbIDMgXSB9CgkJXSwKCQkiZm5Jbml0Q29tcGxldGUiOiBmdW5jdGlvbiAoKSB7CgkJCXRoaXMuZm5EZXN0cm95KCk7CgkJfQoJfSApOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ2hlY2sgdGhhdCB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgaW4gdGFibGUgaXMgY29ycmVjdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZCcpLmxlbmd0aCA9PSA1OyB9CgkpOwoJCgkKCW9UZXN0LmZuVGVzdCggCgkJIkFuZCB3aXRoIHNjcm9sbGluZyIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkic1Njcm9sbFkiOiAyMDAsCgkJCQkiYW9Db2x1bW5EZWZzIjogWyAKCQkJCQl7ICJiU2VhcmNoYWJsZSI6IGZhbHNlLCAiYlZpc2libGUiOiBmYWxzZSwgImFUYXJnZXRzIjogWyAyIF0gfSwKCQkJCQl7ICJiVmlzaWJsZSI6IGZhbHNlLCAiYVRhcmdldHMiOiBbIDMgXSB9CgkJCQldLAoJCQkJImZuSW5pdENvbXBsZXRlIjogZnVuY3Rpb24gKCkgewoJCQkJCXRoaXMuZm5EZXN0cm95KCk7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkJykubGVuZ3RoID09IDU7IH0KCSk7CgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/2600.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIjI2MDAgLSBEaXNwbGF5IHJld2luZCB3aGVuIGNoYW5naW5nIGxlbmd0aCIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIgoJfSApOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiSW5mbyBjb3JyZWN0IG9uIGluaXQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGVfaW5mbycpLmh0bWwoKSA9PSAiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUGFnZSAyIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlX2luZm8nKS5odG1sKCkgPT0gIlNob3dpbmcgMTEgdG8gMjAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJQYWdlIDMiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGVfaW5mbycpLmh0bWwoKSA9PSAiU2hvd2luZyAyMSB0byAzMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlBhZ2UgNCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9pbmZvJykuaHRtbCgpID09ICJTaG93aW5nIDMxIHRvIDQwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUGFnZSA1IiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlX2luZm8nKS5odG1sKCkgPT0gIlNob3dpbmcgNDEgdG8gNTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJSZXdpbmQiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbGVuZ3RoIHNlbGVjdCcpLnZhbCgnMTAwJyk7ICQoJyNleGFtcGxlX2xlbmd0aCBzZWxlY3QnKS5jaGFuZ2UoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9pbmZvJykuaHRtbCgpID09ICJTaG93aW5nIDEgdG8gNTcgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/aaSorting.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFhU29ydGluZyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkRlZmF1bHQgc29ydGluZyBpcyBzaW5nbGUgY29sdW1uIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuIG9TZXR0aW5ncy5hYVNvcnRpbmcubGVuZ3RoID09IDEgJiYgdHlwZW9mIG9TZXR0aW5ncy5hYVNvcnRpbmdbMF0gPT0gJ29iamVjdCc7CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkRlZmF1bHQgc29ydGluZyBpcyBmaXJzdCBjb2x1bW4gYXNjIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuIG9TZXR0aW5ncy5hYVNvcnRpbmdbMF0ubGVuZ3RoID09IDMgJiYgb1NldHRpbmdzLmFhU29ydGluZ1swXVswXSA9PSAwICYmCgkJCQlvU2V0dGluZ3MuYWFTb3J0aW5nWzBdWzFdID09ICdhc2MnOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTb3J0aW5nIGlzIGFwcGxpZWQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkZpcmVmb3ggMS4wIjsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ3VzdG9tIHNvcnRpbmcgb24gc2luZ2xlIHN0cmluZyBjb2x1bW4gYXNjIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJImFhU29ydGluZyI6IFtbJzEnLCdhc2MnXV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDdXN0b20gc29ydGluZyBvbiBzaW5nbGUgc3RyaW5nIGNvbHVtbiBkZXNjIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJImFhU29ydGluZyI6IFtbJzEnLCdkZXNjJ11dCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJTZWFtb25rZXkgMS4xIjsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ3VzdG9tIHNvcnRpbmcgb24gc2luZ2xlIGludCBjb2x1bW4gYXNjIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJImFhU29ydGluZyI6IFtbJzEnLCdhc2MnXV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIi0iOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDdXN0b20gc29ydGluZyBvbiBzaW5nbGUgaW50IGNvbHVtbiBkZXNjIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJImFhU29ydGluZyI6IFtbJzEnLCdkZXNjJ11dCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJTZWFtb25rZXkgMS4xIjsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTXVsdGktY29sdW1uIHNvcnRpbmcgKDIgY29sdW1uKSAtIHN0cmluZyBhc2MgLyBzdHJpbmcgYXNjIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJImFhU29ydGluZyI6IFtbJzAnLCdhc2MnXSwgWycxJywnYXNjJ11dCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJDYW1pbm8gMS4wIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk11bHRpLWNvbHVtbiBzb3J0aW5nICgyIGNvbHVtbikgLSBzdHJpbmcgYXNjIC8gc3RyaW5nIGRlc2MiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkiYWFTb3J0aW5nIjogW1snMCcsJ2FzYyddLCBbJzEnLCdkZXNjJ11dCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJTZWFtb25rZXkgMS4xIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk11bHRpLWNvbHVtbiBzb3J0aW5nICgyIGNvbHVtbikgLSBzdHJpbmcgZGVzYyAvIHN0cmluZyBhc2MiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkiYWFTb3J0aW5nIjogW1snMCcsJ2Rlc2MnXSwgWycxJywnYXNjJ11dCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJpUG9kIFRvdWNoIC8gaVBob25lIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk11bHRpLWNvbHVtbiBzb3J0aW5nICgyIGNvbHVtbikgLSBzdHJpbmcgZGVzYyAvIHN0cmluZyBkZXNjIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJImFhU29ydGluZyI6IFtbJzAnLCdkZXNjJ10sIFsnMScsJ2Rlc2MnXV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIlNhZmFyaSAzLjAiOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJNdWx0aS1jb2x1bW4gc29ydGluZyAoMiBjb2x1bW4pIC0gc3RyaW5nIGFzYyAvIGludCBhc2MiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkiYWFTb3J0aW5nIjogW1snMCcsJ2FzYyddLCBbJzMnLCdhc2MnXV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIjEiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTXVsdGktY29sdW1uIHNvcnRpbmcgKDIgY29sdW1uKSAtIHN0cmluZyBhc2MgLyBpbnQgZGVzYyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkJCSJhYVNvcnRpbmciOiBbWycwJywnYXNjJ10sIFsnMycsJ2Rlc2MnXV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIjEuOSI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJNdWx0aS1jb2x1bW4gc29ydGluZyAoMiBjb2x1bW4pIC0gc3RyaW5nIGRlc2MgLyBpbnQgYXNjIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJImFhU29ydGluZyI6IFtbJzAnLCdkZXNjJ10sIFsnMycsJ2FzYyddXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiMTI1LjUiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTXVsdGktY29sdW1uIHNvcnRpbmcgKDIgY29sdW1uKSAtIHN0cmluZyBkZXNjIC8gaW50IGRlc2MiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkiYWFTb3J0aW5nIjogW1snMCcsJ2Rlc2MnXSwgWyczJywnZGVzYyddXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiNTIyLjEiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTXVsdGktY29sdW1uIHNvcnRpbmcgKDMgY29sdW1uKSAtIHN0cmluZyBhc2MgLyBpbnQgYXNjIC8gc3RyaW5nIGFzYyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkJCSJhYVNvcnRpbmciOiBbWycwJywnYXNjJ10sIFsnMycsJ2FzYyddLCBbJzEnLCdhc2MnXV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoNykgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkZpcmVmb3ggMS4wIjsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/aaSortingFixed.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFhU29ydGluZ0ZpeGVkIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTm8gZml4ZWQgc29ydGluZyBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuIG9TZXR0aW5ncy5hYVNvcnRpbmdGaXhlZCA9PSBudWxsOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkZpeGVkIHNvcnRpbmcgb24gZmlyc3QgY29sdW1uIChzdHJpbmcvYXNjKSB3aXRoIHVzZXIgc29ydGluZyBvbiBzZWNvbmQgY29sdW1uIChzdHJpbmcvYXNjKSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkJCSJhYVNvcnRpbmdGaXhlZCI6IFtbJzAnLCdhc2MnXV0KCQkJfSApOwoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQ2FtaW5vIDEuMCI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJGaXhlZCBzb3J0aW5nIG9uIGZpcnN0IGNvbHVtbiAoc3RyaW5nL2FzYykgd2l0aCB1c2VyIHNvcnRpbmcgb24gc2Vjb25kIGNvbHVtbiAoc3RyaW5nL2Rlc2MpIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJTZWFtb25rZXkgMS4xIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkZpeGVkIHNvcnRpbmcgb24gZm91cnRoIGNvbHVtbiAoaW50L2FzYykgd2l0aCB1c2VyIHNvcnRpbmcgb24gc2Vjb25kIGNvbHVtbiAoc3RyaW5nL2FzYykiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkiYWFTb3J0aW5nRml4ZWQiOiBbWyczJywnYXNjJ11dCgkJCX0gKTsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRml4ZWQgc29ydGluZyBvbiBmb3VydGggY29sdW1uIChpbnQvYXNjKSB3aXRoIHVzZXIgc29ydGluZyBvbiBzZWNvbmQgY29sdW1uIChzdHJpbmcvZGVzYykiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIlBTUCBicm93c2VyIjsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/aoColumns.bSearchable.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5iU2VhY2hhYmxlIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ29sdW1ucyBhcmUgc2VhcmNoYWJsZSBieSBkZWZhdWx0IiwKCQlmdW5jdGlvbiAoKSB7IG9UYWJsZS5mbkZpbHRlcigiQ2FtaW5vIik7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkNhbWlubyAxLjAiOyB9CgkpOwoJCgkvKiBOT1QgQUNUVUFMTFkgR09JTkcgVE8gVEVTVCBCU0VBUkNIQUJMRSBIRVJFLiBSZWFzb24gYmVpbmcgaXMgdGhhdCBpdCByZXF1aXJlcyB0aGUgc2VydmVyCgkgKiBzaWRlIHRvIGFsdGVyIGl0J3MgcHJvY2Vzc2luZywgYW5kIHRoaXMgaW5mb3JtYXRpb24gYWJvdXQgY29sdW1ucyBpcyBub3QgYWN0dWFsbHkgc2VudCB0bwoJICogdGhlIHNlcnZlcgoJICovCgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/aoColumns.bSortable.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5iU29ydGFibGUiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIgoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJBbGwgY29sdW1ucyBhcmUgc29ydGFibGUgYnkgZGVmYXVsdCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ2FuIGRpc2FibGUgc29ydGluZyBmcm9tIG9uZSBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCW51bGwsCgkJCQkJeyAiYlNvcnRhYmxlIjogZmFsc2UgfSwKCQkJCQludWxsLAoJCQkJCW51bGwsCgkJCQkJbnVsbAoJCQkJXQoJCQl9ICk7CgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICJGaXJlZm94IDEuMCI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJEaXNhYmxlZCBjb2x1bW4gaGFzIG5vIHNvcnRpbmcgY2xhc3MiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5oYXNDbGFzcygic29ydGluZ19hc2MiKSA9PSBmYWxzZTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk90aGVyIGNvbHVtbnMgY2FuIHN0aWxsIHNvcnQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoNCknKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSg0KScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiSW50ZXJuZXQgRXhwbG9yZXIgNC4wIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkRpc2FibGUgc29ydGluZyBvbiBtdWx0aXBsZSBjb2x1bW5zIC0gbm8gc29ydGluZyBjbGFzc2VzIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQludWxsLAoJCQkJCXsgImJTb3J0YWJsZSI6IGZhbHNlIH0sCgkJCQkJbnVsbCwKCQkJCQl7ICJiU29ydGFibGUiOiBmYWxzZSB9LAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYlJldHVybiA9IAoJCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5oYXNDbGFzcygic29ydGluZyIpIHx8CgkJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmhhc0NsYXNzKCJzb3J0aW5nIikKCQkJcmV0dXJuIGJSZXR1cm4gPT0gZmFsc2U7CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgb24gZGlzYWJsZWQgY29sdW1uIDEgaGFzIG5vIGVmZmVjdCIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiRmlyZWZveCAxLjAiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU29ydGluZyBvbiBkaXNhYmxlZCBjb2x1bW4gMiBoYXMgbm8gZWZmZWN0IiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICJGaXJlZm94IDEuMCI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTZWNvbmQgc29ydCBvbiBkaXNhYmxlZCBjb2x1bW4gMiBoYXMgbm8gZWZmZWN0IiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICJGaXJlZm94IDEuMCI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJFdmVuIHdpdGggbXVsdGlwbGUgZGlzYWJsZWQgc29ydGluZyBjb2x1bW5zIG90aGVyIGNvbHVtbnMgY2FuIHN0aWxsIHNvcnQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoNCknKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSg0KScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiSW50ZXJuZXQgRXhwbG9yZXIgNC4wIjsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/aoColumns.bUseRendered.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5iVXNlUmVuZGVyZWQiICk7CgovKiBiVXNlUmVuZGVyZWQgaXMgdXNlZCB0byBhbHRlciBzb3J0aW5nIGRhdGEsIGlmIGZhbHNlIHRoZW4gdGhlIG9yaWdpbmFsIGRhdGEgaXMgdXNlZCBmb3IKICogc29ydGluZyByYXRoZXIgdGhhbiB0aGUgcmVuZGVyZWQgZGF0YQogKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG1UbXAgPSAwOwoJCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJImFvQ29sdW1ucyI6IFsKCQkJbnVsbCwKCQkJeyAiZm5SZW5kZXIiOiBmdW5jdGlvbiAoYSkgewoJCQkJaWYgKCBtVG1wID09IDAgKSB7CgkJCQkJbVRtcCsrOwoJCQkJCXJldHVybiAiYWFhIjsKCQkJCX0gZWxzZQoJCQkJCXJldHVybiBhLmFEYXRhW2EuaURhdGFDb2x1bW5dOwoJCQl9IH0sCgkJCW51bGwsCgkJCW51bGwsCgkJCW51bGwKCQldCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkRlZmF1bHQgZm9yIGJVc2VSZW5kZXJlZCBpcyB0cnVlIC0gcmVuZGVyZWQgZGF0YSBpcyB1c2VkIGZvciBzb3J0aW5nIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAnYWFhJzsgfQoJKTsKCQoJLyogTGltaXRlZCB0byB3aGF0IHdlIGNhbiBkbyBoZXJlIGFzIHRoZSBzb3J0aW5nIGlzIGRvbmUgb24gdGhlIHNlcnZlciBzaWRlLiBTbyBzdG9wIGhlcmUuICovCgkKCQoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/aoColumns.bVisible.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5iVmlzaWJsZSIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkFsbCBjb2x1bW5zIGFyZSB2aXNpYmxlIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQnKS5sZW5ndGggPT0gNTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNhbiBoaWRlIG9uZSBjb2x1bW4gYW5kIGl0IHJlbW92ZXMgdGQgY29sdW1uIGZyb20gRE9NIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQludWxsLAoJCQkJCXsgImJWaXNpYmxlIjogZmFsc2UgfSwKCQkJCQludWxsLAoJCQkJCW51bGwsCgkJCQkJbnVsbAoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZCcpLmxlbmd0aCA9PSA0OyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ2FuIGhpZGUgb25lIGNvbHVtbiBhbmQgaXQgcmVtb3ZlcyB0aGVhZCB0aCBjb2x1bW4gZnJvbSBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGgnKS5sZW5ndGggPT0gNDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlRoZSBjb3JyZWN0IHRoZWFkIGNvbHVtbiBoYXMgYmVlbiBoaWRkZW4iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIganFOb2RlcyA9ICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDApIHRoJyk7CgkJCXZhciBiUmV0dXJuID0gCgkJCQlqcU5vZGVzWzBdLmlubmVySFRNTCA9PSAiUmVuZGVyaW5nIGVuZ2luZSIgJiYKCQkJCWpxTm9kZXNbMV0uaW5uZXJIVE1MID09ICJQbGF0Zm9ybShzKSIgJiYKCQkJCWpxTm9kZXNbMl0uaW5uZXJIVE1MID09ICJFbmdpbmUgdmVyc2lvbiIgJiYKCQkJCWpxTm9kZXNbM10uaW5uZXJIVE1MID09ICJDU1MgZ3JhZGUiOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiVGhlIGNvcnJlY3QgdGJvZHkgY29sdW1uIGhhcyBiZWVuIGhpZGRlbiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBqcU5vZGVzID0gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQnKTsKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCWpxTm9kZXNbMF0uaW5uZXJIVE1MID09ICJHZWNrbyIgJiYKCQkJCWpxTm9kZXNbMV0uaW5uZXJIVE1MID09ICJXaW4gOTgrIC8gT1NYLjIrIiAmJgoJCQkJanFOb2Rlc1syXS5pbm5lckhUTUwgPT0gIjEuNyIgJiYKCQkJCWpxTm9kZXNbM10uaW5uZXJIVE1MID09ICJBIjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ2FuIGhpZGUgbXVsdGlwbGUgY29sdW1ucyBhbmQgaXQgcmVtb3ZlcyB0ZCBjb2x1bW4gZnJvbSBET00iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCW51bGwsCgkJCQkJeyAiYlZpc2libGUiOiBmYWxzZSB9LAoJCQkJCXsgImJWaXNpYmxlIjogZmFsc2UgfSwKCQkJCQludWxsLAoJCQkJCXsgImJWaXNpYmxlIjogZmFsc2UgfQoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZCcpLmxlbmd0aCA9PSAyOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTXVsdGlwbGUgaGlkZSAtIHJlbW92ZXMgdGhlYWQgdGggY29sdW1uIGZyb20gRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDApIHRoJykubGVuZ3RoID09IDI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJNdWx0aXBsZSBoaWRlIC0gdGhlIGNvcnJlY3QgdGhlYWQgY29sdW1ucyBoYXZlIGJlZW4gaGlkZGVuIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGpxTm9kZXMgPSAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSgwKSB0aCcpOwoJCQl2YXIgYlJldHVybiA9IAoJCQkJanFOb2Rlc1swXS5pbm5lckhUTUwgPT0gIlJlbmRlcmluZyBlbmdpbmUiICYmCgkJCQlqcU5vZGVzWzFdLmlubmVySFRNTCA9PSAiRW5naW5lIHZlcnNpb24iCgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJNdWx0aXBsZSBoaWRlIC0gdGhlIGNvcnJlY3QgdGJvZHkgY29sdW1ucyBoYXZlIGJlZW4gaGlkZGVuIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGpxTm9kZXMgPSAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZCcpOwoJCQl2YXIgYlJldHVybiA9IAoJCQkJanFOb2Rlc1swXS5pbm5lckhUTUwgPT0gIkdlY2tvIiAmJgoJCQkJanFOb2Rlc1sxXS5pbm5lckhUTUwgPT0gIjEuNyIKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/aoColumns.fnRender.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5mblJlbmRlciIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG1UbXAgPSAwOwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCSJhb0NvbHVtbnMiOiBbCgkJCW51bGwsCgkJCXsgImZuUmVuZGVyIjogZnVuY3Rpb24gKGEpIHsKCQkJCW1UbXArKzsKCQkJCXJldHVybiBhLmFEYXRhW2EuaURhdGFDb2x1bW5dOwoJCQl9IH0sCgkJCW51bGwsCgkJCW51bGwsCgkJCW51bGwKCQldCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNpbmdsZSBjb2x1bW4gLSBmblJlbmRlciBpcyBjYWxsZWQgb25jZSBmb3IgZWFjaCByb3ciLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVRtcCA9PSAxMDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNvbmZpcm0gdGhhdCBmblJlbmRlciBwYXNzZXMgdHdvIGFyZ3VtZW50cyB3aXRoIGZvdXIgcGFyYW1ldGVycyIsCgkJZnVuY3Rpb24gKCkgewoJCQltVG1wID0gdHJ1ZTsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCW51bGwsCgkJCQkJeyAiZm5SZW5kZXIiOiBmdW5jdGlvbiAoYSkgewoJCQkJCQlpZiAoIGFyZ3VtZW50cy5sZW5ndGggIT0gMiB8fCB0eXBlb2YgYS5pRGF0YVJvdz09J3VuZGVmaW5lZCcgfHwKCQkJCQkJIAl0eXBlb2YgYS5pRGF0YUNvbHVtbj09J3VuZGVmaW5lZCcgfHwgdHlwZW9mIGEuYURhdGE9PSd1bmRlZmluZWQnIHx8CgkJCQkJCSAJdHlwZW9mIGEubURhdGFQcm9wPT0ndW5kZWZpbmVkJyApCgkJCQkJCXsKCQkJCQkJCW1UbXAgPSBmYWxzZTsKCQkJCQkJfQoJCQkJCQlyZXR1cm4gYS5hRGF0YVthLmlEYXRhQ29sdW1uXTsKCQkJCQl9IH0sCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVRtcDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJImZuUmVuZGVyIGlEYXRhQ29sdW1uIGlzIHRoZSBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsKCQkJbVRtcCA9IHRydWU7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQludWxsLAoJCQkJCXsgImZuUmVuZGVyIjogZnVuY3Rpb24gKGEpIHsKCQkJCQkJaWYgKCBhLmlEYXRhQ29sdW1uICE9IDEgKQoJCQkJCQl7CgkJCQkJCQltVG1wID0gZmFsc2U7CgkJCQkJCX0KCQkJCQkJcmV0dXJuIGEuYURhdGFbYS5pRGF0YUNvbHVtbl07CgkJCQkJfSB9LAoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1UbXA7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJmblJlbmRlciBhRGF0YSBpcyBkYXRhIGFycmF5IG9mIGNvcnJlY3Qgc2l6ZSIsCgkJZnVuY3Rpb24gKCkgewoJCQltVG1wID0gdHJ1ZTsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCW51bGwsCgkJCQkJeyAiZm5SZW5kZXIiOiBmdW5jdGlvbiAoYSkgewoJCQkJCQlpZiAoIGEuYURhdGEubGVuZ3RoICE9IDUgKQoJCQkJCQl7CgkJCQkJCQltVG1wID0gZmFsc2U7CgkJCQkJCX0KCQkJCQkJcmV0dXJuIGEuYURhdGFbYS5pRGF0YUNvbHVtbl07CgkJCQkJfSB9LAoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1UbXA7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJQYXNzZWQgYmFjayBkYXRhIGlzIHB1dCBpbnRvIHRoZSBET00iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCW51bGwsCgkJCQkJeyAiZm5SZW5kZXIiOiBmdW5jdGlvbiAoYSkgewoJCQkJCQlyZXR1cm4gJ3VuaXR0ZXN0JzsKCQkJCQl9IH0sCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gJ3VuaXR0ZXN0JzsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlBhc3NlZCBiYWNrIGRhdGEgaXMgcHV0IGludG8gdGhlIERPTSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCXsgImZuUmVuZGVyIjogZnVuY3Rpb24gKGEpIHsKCQkJCQkJcmV0dXJuICd1bml0dGVzdDEnOwoJCQkJCX0gfSwKCQkJCQl7ICJmblJlbmRlciI6IGZ1bmN0aW9uIChhKSB7CgkJCQkJCXJldHVybiAndW5pdHRlc3QyJzsKCQkJCQl9IH0sCgkJCQkJbnVsbAoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBiUmV0dXJuID0gCgkJCQkkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgyKScpLmh0bWwoKSA9PSAndW5pdHRlc3QxJyAmJgoJCQkJJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gJ3VuaXR0ZXN0Mic7CgkJCXJldHVybiBiUmV0dXJuOyB9CgkpOwoJCgkKCQoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/aoColumns.sClass.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5zQ2xhc3MiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIgoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJCeSBkZWZhdWx0IHRoZSB0ZXN0IGNsYXNzIGhhc24ndCBiZWVuIGFwcGxpZWQgdG8gdGhlIGNvbHVtbiAoc2FuaXR5ISkiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMiknKS5oYXNDbGFzcygndW5pdHRlc3QnKSA9PSBmYWxzZTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkFkZCBhIGNsYXNzIHRvIGEgc2luZ2xlIGNvbHVtbiAtIGZpcnN0IHJvdyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCXsgInNDbGFzcyI6ICd1bml0dGVzdCcgfSwKCQkJCQludWxsLAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMSkgdGQ6ZXEoMiknKS5oYXNDbGFzcygndW5pdHRlc3QnKTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkFkZCBhIGNsYXNzIHRvIGEgc2luZ2xlIGNvbHVtbiAtIHRoaXJkIHJvdyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgzKSB0ZDplcSgyKScpLmhhc0NsYXNzKCd1bml0dGVzdCcpOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQWRkIGEgY2xhc3MgdG8gYSBzaW5nbGUgY29sdW1uIC0gbGFzdCByb3ciLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoOSkgdGQ6ZXEoMiknKS5oYXNDbGFzcygndW5pdHRlc3QnKTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkFkZCBhIGNsYXNzIHRvIGEgc2luZ2xlIGNvbHVtbiAtIGhhcyBub3QgYXBwbGllZCB0byBvdGhlciBjb2x1bW5zIC0gMXN0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDMpIHRkOmVxKDApJykuaGFzQ2xhc3MoJ3VuaXR0ZXN0JykgPT0gZmFsc2U7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJBZGQgYSBjbGFzcyB0byBhIHNpbmdsZSBjb2x1bW4gLSBoYXMgbm90IGFwcGxpZWQgdG8gb3RoZXIgY29sdW1ucyAtIDV0aCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgzKSB0ZDplcSg0KScpLmhhc0NsYXNzKCd1bml0dGVzdCcpID09IGZhbHNlOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQWRkIGEgY2xhc3MgdG8gYSBzaW5nbGUgY29sdW1uIC0gc2V2ZW50aCByb3cgLSBzZWNvbmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSg2KSB0ZDplcSgyKScpLmhhc0NsYXNzKCd1bml0dGVzdCcpOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQWRkIGEgY2xhc3MgdG8gYSBzaW5nbGUgY29sdW1uIC0gaGFzIG5vdCBhcHBsaWVkIHRvIGhlYWRlciIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSgzKSB0aDplcSg0KScpLmhhc0NsYXNzKCd1bml0dGVzdCcpID09IGZhbHNlOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQWRkIGEgY2xhc3MgdG8gYSBzaW5nbGUgY29sdW1uIC0gaGFzIG5vdCBhcHBsaWVkIHRvIGZvb3RlciIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSgzKSB0aDplcSg0KScpLmhhc0NsYXNzKCd1bml0dGVzdCcpID09IGZhbHNlOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDbGFzcyBkZWZpbmVkIGZvciBtdWx0aXBsZSBjb2x1bW5zIC0gZmlyc3Qgcm93IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQl7ICJzQ2xhc3MiOiAndW5pdHRlc3QyJyB9LAoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQl7ICJzQ2xhc3MiOiAndW5pdHRlc3QxJyB9LAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYlJldHVybiA9IAoJCQkJJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMykgdGQ6ZXEoMCknKS5oYXNDbGFzcygndW5pdHRlc3QyJykgJiYKCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDgpIHRkOmVxKDMpJykuaGFzQ2xhc3MoJ3VuaXR0ZXN0MScpOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ2xhc3MgZGVmaW5lZCBmb3IgbXVsdGlwbGUgY29sdW1ucyAtIGhhcyBub3QgYXBwbGllZCB0byBvdGhlciBjb2x1bW5zIC0gNXRoIDEiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoNCknKS5oYXNDbGFzcygndW5pdHRlc3QxJykgPT0gZmFsc2U7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDbGFzcyBkZWZpbmVkIGZvciBtdWx0aXBsZSBjb2x1bW5zIC0gaGFzIG5vdCBhcHBsaWVkIHRvIG90aGVyIGNvbHVtbnMgLSA1dGggMiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSg2KSB0ZDplcSg0KScpLmhhc0NsYXNzKCd1bml0dGVzdDInKSA9PSBmYWxzZTsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/aoColumns.sName.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5zTmFtZSIgKTsKCi8qIFRoaXMgaGFzIG5vIGVmZmVjdCBhdCBhbGwgaW4gRE9NIG1ldGhvZHMgLSBzbyB3ZSBqdXN0IGNoZWNrIHRoYXQgaXQgaGFzIGFwcGxpZWQgdGhlIG5hbWUgKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCSJhb0NvbHVtbnMiOiBbCgkJCW51bGwsCgkJCW51bGwsCgkJCW51bGwsCgkJCXsgInNOYW1lIjogJ3VuaXQgdGVzdCcgfSwKCQkJbnVsbAoJCV0KCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTmFtZXMgYXJlIHN0b3JlZCBpbiB0aGUgY29sdW1ucyBvYmplY3QiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLmFvQ29sdW1uc1szXS5zTmFtZSA9PSJ1bml0IHRlc3QiOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/aoColumns.sTitle.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5zVGl0bGUiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIgoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJJZiBub3QgZ2l2ZW4sIHRoZW4gdGhlIGNvbHVtbnMgdGl0bGVzIGFyZSBlbXB0eSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBqcU5vZGVzID0gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGgnKTsKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCWpxTm9kZXNbMF0uaW5uZXJIVE1MID09ICJSZW5kZXJpbmcgZW5naW5lIiAmJgoJCQkJanFOb2Rlc1sxXS5pbm5lckhUTUwgPT0gIkJyb3dzZXIiICYmCgkJCQlqcU5vZGVzWzJdLmlubmVySFRNTCA9PSAiUGxhdGZvcm0ocykiICYmCgkJCQlqcU5vZGVzWzNdLmlubmVySFRNTCA9PSAiRW5naW5lIHZlcnNpb24iICYmCgkJCQlqcU5vZGVzWzRdLmlubmVySFRNTCA9PSAiQ1NTIGdyYWRlIjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNhbiBzZXQgYSBzaW5nbGUgY29sdW1uIHRpdGxlIC0gYW5kIG90aGVycyBhcmUgcmVhZCBmcm9tIERPTSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJbnVsbCwKCQkJCQl7ICJzVGl0bGUiOiAndW5pdCB0ZXN0JyB9LAoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGpxTm9kZXMgPSAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSgwKSB0aCcpOwoJCQl2YXIgYlJldHVybiA9IAoJCQkJanFOb2Rlc1swXS5pbm5lckhUTUwgPT0gIlJlbmRlcmluZyBlbmdpbmUiICYmCgkJCQlqcU5vZGVzWzFdLmlubmVySFRNTCA9PSAidW5pdCB0ZXN0IiAmJgoJCQkJanFOb2Rlc1syXS5pbm5lckhUTUwgPT0gIlBsYXRmb3JtKHMpIiAmJgoJCQkJanFOb2Rlc1szXS5pbm5lckhUTUwgPT0gIkVuZ2luZSB2ZXJzaW9uIiAmJgoJCQkJanFOb2Rlc1s0XS5pbm5lckhUTUwgPT0gIkNTUyBncmFkZSI7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDYW4gc2V0IG11bHRpcGxlIGNvbHVtbiB0aXRsZXMiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCW51bGwsCgkJCQkJeyAic1RpdGxlIjogJ3VuaXQgdGVzdCAxJyB9LAoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQl7ICJzVGl0bGUiOiAndW5pdCB0ZXN0IDInIH0KCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIganFOb2RlcyA9ICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDApIHRoJyk7CgkJCXZhciBiUmV0dXJuID0gCgkJCQlqcU5vZGVzWzBdLmlubmVySFRNTCA9PSAiUmVuZGVyaW5nIGVuZ2luZSIgJiYKCQkJCWpxTm9kZXNbMV0uaW5uZXJIVE1MID09ICJ1bml0IHRlc3QgMSIgJiYKCQkJCWpxTm9kZXNbMl0uaW5uZXJIVE1MID09ICJQbGF0Zm9ybShzKSIgJiYKCQkJCWpxTm9kZXNbM10uaW5uZXJIVE1MID09ICJFbmdpbmUgdmVyc2lvbiIgJiYKCQkJCWpxTm9kZXNbNF0uaW5uZXJIVE1MID09ICJ1bml0IHRlc3QgMiI7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/aoColumns.sWidth.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5zV2lkdGgiICk7CgovKiBOT1RFIC0gd2UgbmVlZCB0byBkaXNhYmxlIHRoZSBhdXRvIHdpZHRoIGZvciB0aGUgbWFqb3JpdHkgb2YgdGhlc2UgdGVzdCBpbiBvcmRlciB0byBwcmVmb3JtIAogKiB0aGVzZSB0ZXN0cyBhcyB0aGUgYXV0byB3aWR0aCB3aWxsIGNvbnZlcnQgdGhlIHdpZHRoIHRvIGEgcHggdmFsdWUuIFdlIGNhbiBkbyAnbm9uLWV4YWN0JyB0ZXN0cwogKiB3aXRoIGF1dG8gd2lkdGggZW5hYmxlZCBob3dldmVyIHRvIGVuc3VyZSBpdCBzY2FsZXMgY29sdW1ucyBhcyByZXF1aXJlZAogKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCSJiQXV0b1dpZHRoIjogZmFsc2UsCgkJImFvQ29sdW1ucyI6IFsKCQkJbnVsbCwKCQkJeyAic1dpZHRoIjogJzQwJScgfSwKCQkJbnVsbCwKCQkJbnVsbCwKCQkJbnVsbAoJCV0KCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiV2l0aCBhdXRvIHdpZHRoIGRpc2FibGVkIHRoZSB3aWR0aCBmb3Igb25lIGNvbHVtbiBpcyBhcHBsZWQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKVswXS5zdHlsZS53aWR0aCA9PSAiNDAlIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIldpdGggYXV0byB3aWR0aCBkaXNhYmxlZCB0aGUgd2lkdGggZm9yIG9uZSBjb2x1bW4gaXMgYXBwbGVkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJImJBdXRvV2lkdGgiOiBmYWxzZSwKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCXsgInNXaWR0aCI6ICcyMCUnIH0sCgkJCQkJeyAic1dpZHRoIjogJzMwJScgfSwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGJSZXR1cm4gPQoJCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMiknKVswXS5zdHlsZS53aWR0aCA9PSAiMjAlIiAmJgoJCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMyknKVswXS5zdHlsZS53aWR0aCA9PSAiMzAlIjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiV2l0aCBhdXRvIHdpZHRoLCBpdCB3aWxsIG1ha2UgdGhlIHNtYWxsZXN0IGNvbHVtbiB0aGUgbGFyZ2VzdCB3aXRoIHBlcmNlbnRhZ2Ugd2lkdGggZ2l2ZW4iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCXsgInNXaWR0aCI6ICc0MCUnIH0sCgkJCQkJbnVsbAoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBhblRocyA9ICQoJyNleGFtcGxlIHRoZWFkIHRoJyk7CgkJCXZhciBhMCA9IGFuVGhzWzBdLm9mZnNldFdpZHRoOwoJCQl2YXIgYTEgPSBhblRoc1sxXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGEyID0gYW5UaHNbMl0ub2Zmc2V0V2lkdGg7CgkJCXZhciBhMyA9IGFuVGhzWzNdLm9mZnNldFdpZHRoOwoJCQl2YXIgYTQgPSBhblRoc1s0XS5vZmZzZXRXaWR0aDsKCQkJCgkJCWlmICggYTM+YTAgJiYgYTM+YTEgJiYgYTM+YTIgJiYgYTM+YTQgKQoJCQkJcmV0dXJuIHRydWU7CgkJCWVsc2UKCQkJCXJldHVybiBmYWxzZTsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/aoSearchCols.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvU2VhcmNoQ29scyIgKTsKCi8qIFdlIGNvdWxkIGJlIGhlcmUgZm9yZXZlciB0ZXN0aW5nIHRoaXMgb25lLCBzbyB3ZSB0ZXN0IGEgbGltaXRlZCBzdWJzZXQgb24gYSBjb3VwbGUgb2YgY29sdW1zICovCgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvZmlsdGVyX2NvbC5waHAiCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkRlZmF1bHQgc2hvdWxkIGJlIHRvIGhhdmUgYSBlbXB0eSBjb2x1bXMgYXJyYXkiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYlJldHVybiA9IAoJCQkJb1NldHRpbmdzLmFvUHJlU2VhcmNoQ29sc1swXS5zU2VhcmNoID09IDAgJiYgIW9TZXR0aW5ncy5hb1ByZVNlYXJjaENvbHNbMF0uYlJlZ2V4ICYmCgkJCQlvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzWzFdLnNTZWFyY2ggPT0gMCAmJiAhb1NldHRpbmdzLmFvUHJlU2VhcmNoQ29sc1sxXS5iUmVnZXggJiYKCQkJCW9TZXR0aW5ncy5hb1ByZVNlYXJjaENvbHNbMl0uc1NlYXJjaCA9PSAwICYmICFvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzWzJdLmJSZWdleCAmJgoJCQkJb1NldHRpbmdzLmFvUHJlU2VhcmNoQ29sc1szXS5zU2VhcmNoID09IDAgJiYgIW9TZXR0aW5ncy5hb1ByZVNlYXJjaENvbHNbM10uYlJlZ2V4ICYmCgkJCQlvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzWzRdLnNTZWFyY2ggPT0gMCAmJiAhb1NldHRpbmdzLmFvUHJlU2VhcmNoQ29sc1s0XS5iUmVnZXg7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNlYXJjaCBvbiBhIHNpbmdsZSBjb2x1bW4gLSBubyByZWdleCBzdGF0ZW1lbnQgZ2l2ZW4iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL2ZpbHRlcl9jb2wucGhwIiwKCQkJCSJhb1NlYXJjaENvbHMiOiBbCgkJCQkJbnVsbCwKCQkJCQl7ICJzU2VhcmNoIjogIk1vemlsbGEiIH0sCgkJCQkJbnVsbCwKCQkJCQl7ICJzU2VhcmNoIjogIjEiIH0sCgkJCQkJbnVsbAoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiMSI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTZWFyY2ggb24gdHdvIGNvbHVtbnMgLSBubyByZWdleCBzdGF0ZW1lbnQgZ2l2ZW4iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL2ZpbHRlcl9jb2wucGhwIiwKCQkJCSJhb1NlYXJjaENvbHMiOiBbCgkJCQkJbnVsbCwKCQkJCQl7ICJzU2VhcmNoIjogIk1vemlsbGEiIH0sCgkJCQkJbnVsbCwKCQkJCQl7ICJzU2VhcmNoIjogIjEuNSIgfSwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDMpJykuaHRtbCgpID09ICIxLjUiOyB9CgkpOwoJCgkvKiBObyByZWdleCBlc2NhcGUgc2VhcmNoZXMgaGVyZSAtIHdvdWxkIG5lZWQgdG8gYmUgaW1wbGVtZW50ZWQgb24gdGhlIHNlcnZlci1zaWRlICovCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/asStripClasses.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFzU3RyaXBlQ2xhc3NlcyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIKCX0gKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkRlZmF1bHQgcm93IHN0cmlwaW5nIGlzIGFwcGxpZWQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCknKS5oYXNDbGFzcygnb2RkJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDEpJykuaGFzQ2xhc3MoJ2V2ZW4nKSAmJgoJCQkgICAgICAgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMiknKS5oYXNDbGFzcygnb2RkJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDMpJykuaGFzQ2xhc3MoJ2V2ZW4nKTsKCQl9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUm93IHN0cmlwaW5nIG9uIHRoZSBzZWNvbmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKScpLmhhc0NsYXNzKCdvZGQnKSAmJgoJCQkgICAgICAgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMSknKS5oYXNDbGFzcygnZXZlbicpICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgyKScpLmhhc0NsYXNzKCdvZGQnKSAmJgoJCQkgICAgICAgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMyknKS5oYXNDbGFzcygnZXZlbicpOwoJCX0KCSk7CgkKCS8qIE5vIHN0cmlwaW5nICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTm8gcm93IHN0cmlwaW5nIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJImFzU3RyaXBlQ2xhc3NlcyI6IFtdCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJaWYgKCB0eXBlb2YgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMSknKVswXSA9PSAndW5kZWZpbmVkJyApCgkJCXsKCQkJCS8qIFVzZSB0aGUgJ3dhaXQgZm9yJyB0byBhbGxvdyB0aGlzIHRvIGJlY29tZSB0cnVlICovCgkJCQlyZXR1cm4gZmFsc2U7CgkJCX0KCQkJcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApJylbMF0uY2xhc3NOYW1lID09ICIiICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKScpWzBdLmNsYXNzTmFtZSA9PSAiIiAmJgoJCQkgICAgICAgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMiknKVswXS5jbGFzc05hbWUgPT0gIiIgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDMpJylbMF0uY2xhc3NOYW1lID09ICIiOwoJCX0KCSk7CgkKCS8qIEN1c3RvbSBzdHJpcGluZyAqLwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkN1c3RvbSBzdHJpcGluZyBbMl0iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkiYXNTdHJpcGVDbGFzc2VzIjogWyAndGVzdDEnLCAndGVzdDInIF0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCknKS5oYXNDbGFzcygndGVzdDEnKSAmJgoJCQkgICAgICAgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMSknKS5oYXNDbGFzcygndGVzdDInKSAmJgoJCQkgICAgICAgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMiknKS5oYXNDbGFzcygndGVzdDEnKSAmJgoJCQkgICAgICAgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMyknKS5oYXNDbGFzcygndGVzdDInKTsKCQl9CgkpOwoJCgkKCS8qIGxvbmcgYXJyYXkgb2Ygc3RyaXBpbmcgKi8KCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDdXN0b20gc3RyaXBpbmcgWzRdIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJImFzU3RyaXBlQ2xhc3NlcyI6IFsgJ3Rlc3QxJywgJ3Rlc3QyJywgJ3Rlc3QzJywgJ3Rlc3Q0JyBdCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApJykuaGFzQ2xhc3MoJ3Rlc3QxJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDEpJykuaGFzQ2xhc3MoJ3Rlc3QyJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDIpJykuaGFzQ2xhc3MoJ3Rlc3QzJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDMpJykuaGFzQ2xhc3MoJ3Rlc3Q0Jyk7CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkN1c3RvbSBzdHJpcGluZyBpcyByZXN0YXJ0ZWQgb24gc2Vjb25kIHBhZ2UgWzJdIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApJykuaGFzQ2xhc3MoJ3Rlc3QxJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDEpJykuaGFzQ2xhc3MoJ3Rlc3QyJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDIpJykuaGFzQ2xhc3MoJ3Rlc3QzJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDMpJykuaGFzQ2xhc3MoJ3Rlc3Q0Jyk7CgkJfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/bAutoWidth.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJBdXRvV2lkdGgiICk7CgovKiBJdCdzIGFjdHVhbGx5IGEgbGl0dGxlIHRyaWNreSB0byB0ZXN0IHRoaXMuIFdlIGNhbid0IHRlc3QgYWJzb2x1dGUgbnVtYmVycyBiZWNhdXNlCiAqIGRpZmZlcmVudCBicm93c2VycyBhbmQgZGlmZmVyZW50IHBsYXRmb3JtcyB3aWxsIHJlbmRlciB0aGUgd2lkdGggb2YgdGhlIGNvbHVtbnMgc2xpZ2h0bHkKICogZGlmZmVyZW50bHkuIEhvd2V2ZXIsIHdlIGNlcnRhaW5seSBjYW4gdGVzdCB0aGUgcHJpbmNpcGxlIG9mIHdoYXQgc2hvdWxkIGhhcHBlbiAoY29sdW1uIAogKiB3aWR0aCBkb2Vzbid0IGNoYW5nZSBvdmVyIHBhZ2VzKQogKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkF1dG8gd2lkdGggaXMgZW5hYmxlZCBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vRmVhdHVyZXMuYkF1dG9XaWR0aDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkZpcnN0IGNvbHVtbiBoYXMgYSB3aWR0aCBhc3NpZ25lZCB0byBpdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgwKScpLmF0dHIoJ3N0eWxlJykubWF0Y2goL3dpZHRoL2kpOyB9CgkpOwoJCgkvKgoJVGhpcyB3b3VsZCBzZWVtIGxpa2UgYSBiZXR0ZXIgdGVzdCAtIGJ1dCB0aGVyZSBhcHBlYXIgdG8gYmUgZGlmZmljdWx0aWVzIHdpdGggdGFibGVzCgl3aGljaCBhcmUgYmlnZ2VyIChjYWxjdWxhdGVkKSB0aGFuIHRoZXJlIGlzIGFjdHVhbGx5IHJvb20gZm9yLiBJIHN1c3BlY3QgdGhpcyBpcyBhY3R1YWxseQoJYSBidWcgaW4gZGF0YXRhYmxlcwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNoZWNrIGNvbHVtbiB3aWR0aHMgb24gZmlyc3QgcGFnZSBtYXRjaCBzZWNvbmQgcGFnZSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBhblRocyA9ICQoJyNleGFtcGxlIHRoZWFkIHRoJyk7CgkJCXZhciBhMCA9IGFuVGhzWzBdLm9mZnNldFdpZHRoOwoJCQl2YXIgYTEgPSBhblRoc1sxXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGEyID0gYW5UaHNbMl0ub2Zmc2V0V2lkdGg7CgkJCXZhciBhMyA9IGFuVGhzWzNdLm9mZnNldFdpZHRoOwoJCQl2YXIgYTQgPSBhblRoc1s0XS5vZmZzZXRXaWR0aDsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJCXZhciBiMCA9IGFuVGhzWzBdLm9mZnNldFdpZHRoOwoJCQl2YXIgYjEgPSBhblRoc1sxXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGIyID0gYW5UaHNbMl0ub2Zmc2V0V2lkdGg7CgkJCXZhciBiMyA9IGFuVGhzWzNdLm9mZnNldFdpZHRoOwoJCQl2YXIgYjQgPSBhblRoc1s0XS5vZmZzZXRXaWR0aDsKCQkJY29uc29sZS5sb2coIGEwLCBiMCwgYTEsIGIxLCBhMiwgYjIsIGEzLCBiMyApOwoJCQlpZiAoIGEwPT1iMCAmJiBhMT09YjEgJiYgYTI9PWIyICYmIGEzPT1iMyApCgkJCQlyZXR1cm4gdHJ1ZTsKCQkJZWxzZQoJCQkJcmV0dXJuIGZhbHNlOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDaGVjayBjb2x1bW4gd2lkdGhzIG9uIHNlY29uZCBwYWdlIG1hdGNoIHRoaWQgcGFnZSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBhblRocyA9ICQoJyNleGFtcGxlIHRoZWFkIHRoJyk7CgkJCXZhciBhMCA9IGFuVGhzWzBdLm9mZnNldFdpZHRoOwoJCQl2YXIgYTEgPSBhblRoc1sxXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGEyID0gYW5UaHNbMl0ub2Zmc2V0V2lkdGg7CgkJCXZhciBhMyA9IGFuVGhzWzNdLm9mZnNldFdpZHRoOwoJCQl2YXIgYTQgPSBhblRoc1s0XS5vZmZzZXRXaWR0aDsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJCXZhciBiMCA9IGFuVGhzWzBdLm9mZnNldFdpZHRoOwoJCQl2YXIgYjEgPSBhblRoc1sxXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGIyID0gYW5UaHNbMl0ub2Zmc2V0V2lkdGg7CgkJCXZhciBiMyA9IGFuVGhzWzNdLm9mZnNldFdpZHRoOwoJCQl2YXIgYjQgPSBhblRoc1s0XS5vZmZzZXRXaWR0aDsKCQkJaWYgKCBhMD09YjAgJiYgYTE9PWIxICYmIGEyPT1iMiAmJiBhMz09YjMgKQoJCQkJcmV0dXJuIHRydWU7CgkJCWVsc2UKCQkJCXJldHVybiBmYWxzZTsKCQl9CgkpOwoJKi8KCQoJLyogQ2hlY2sgY2FuIGRpc2FibGUgKi8KCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJBdXRvIHdpZHRoIGNhbiBiZSBkaXNhYmxlZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkJCSJiQXV0b1dpZHRoIjogZmFsc2UKCQkJfSApOwoJIAkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vRmVhdHVyZXMuYkF1dG9XaWR0aCA9PSBmYWxzZTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkZpcnN0IGNvbHVtbiBkb2VzIG5vdCBoYXZlIGEgd2lkdGggYXNzaWduZWQgdG8gaXQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMCknKS5hdHRyKCdzdHlsZScpID09IG51bGw7IH0KCSk7CgkKCS8qCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ2hlY2sgY29sdW1uIHdpZHRocyBvbiBmaXJzdCBwYWdlIGRvIG5vdCBtYXRjaCBzZWNvbmQgcGFnZSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBhblRocyA9ICQoJyNleGFtcGxlIHRoZWFkIHRoJyk7CgkJCXZhciBhMCA9IGFuVGhzWzBdLm9mZnNldFdpZHRoOwoJCQl2YXIgYTEgPSBhblRoc1sxXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGEyID0gYW5UaHNbMl0ub2Zmc2V0V2lkdGg7CgkJCXZhciBhMyA9IGFuVGhzWzNdLm9mZnNldFdpZHRoOwoJCQl2YXIgYTQgPSBhblRoc1s0XS5vZmZzZXRXaWR0aDsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJCXZhciBiMCA9IGFuVGhzWzBdLm9mZnNldFdpZHRoOwoJCQl2YXIgYjEgPSBhblRoc1sxXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGIyID0gYW5UaHNbMl0ub2Zmc2V0V2lkdGg7CgkJCXZhciBiMyA9IGFuVGhzWzNdLm9mZnNldFdpZHRoOwoJCQl2YXIgYjQgPSBhblRoc1s0XS5vZmZzZXRXaWR0aDsKCQkJaWYgKCBhMD09YjAgJiYgYTE9PWIxICYmIGEyPT1iMiAmJiBhMz09YjMgKQoJCQkJcmV0dXJuIGZhbHNlOwoJCQllbHNlCgkJCQlyZXR1cm4gdHJ1ZTsKCQl9CgkpOwoJKi8KCQoJLyogRW5hYmxlIG1ha2VzIG5vIGRpZmZlcmVuY2UgKi8KCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJBdXRvIHdpZHRoIGVuYWJsZWQgb3ZlcnJpZGUiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkiYkF1dG9XaWR0aCI6IHRydWUKCQkJfSApOwoJIAkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vRmVhdHVyZXMuYkF1dG9XaWR0aDsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/bFilter.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJGaWx0ZXIiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiCgl9ICk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJGaWx0ZXJpbmcgZGl2IGV4aXN0cyBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2ZpbHRlcicpICE9IG51bGw7IH0KCSk7CgkKCS8qIENoZWNrIGNhbiBkaXNhYmxlICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRmx0ZXJpbmcgY2FuIGJlIGRpc2FibGVkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJImJGaWx0ZXIiOiBmYWxzZQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9maWx0ZXInKSA9PSBudWxsOyB9CgkpOwoJCgkvKiBFbmFibGUgbWFrZXMgbm8gZGlmZmVyZW5jZSAqLwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkZpbHRlcmluZyBlbmFibGVkIG92ZXJyaWRlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJImJGaWx0ZXIiOiB0cnVlCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2ZpbHRlcicpICE9IG51bGw7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/bInfiniteScroll.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJJbmZpbml0ZVNjcm9sbCIgKTsKCgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImJTY3JvbGxJbmZpbml0ZSI6IHRydWUsCgkJInNTY3JvbGxZIjogIjIwMHB4IiwKCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIKCX0gKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIjEwIHJvd3MgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSAxMDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiSW5mbyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9pbmZvJykuaHRtbCgpID09ICJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkdldCBub2RlcyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keT50cicpLmxlbmd0aCA9PSAxMDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiR2V0IG5vZGVzIGZ1bmN0aW9uIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCkuZm5HZXROb2RlcygpLmxlbmd0aCA9PSAxMDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNjcm9sbCBvbiAyMHB4IGFkZHMgMTAgcm93cyIsCgkJZnVuY3Rpb24gKCkgeyAkKCdkaXYuZGF0YVRhYmxlc19zY3JvbGxCb2R5Jykuc2Nyb2xsVG9wKDIwKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSAyMDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiSW5mbyBhZnRlciAyMHB4IHNjcm9sbCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9pbmZvJykuaHRtbCgpID09ICJTaG93aW5nIDEgdG8gMjAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkdldCBub2RlcyBhZnRlciAyMHB4IHNjcm9sbCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keT50cicpLmxlbmd0aCA9PSAyMDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiR2V0IG5vZGVzIGZ1bmN0aW9uIGFmdGVyIDIwcHggc2Nyb2xsIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCkuZm5HZXROb2RlcygpLmxlbmd0aCA9PSAyMDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNjcm9sbCBvbiAxMHB4IG1vcmUgcmVzdWx0cyBpbiB0aGUgc2FtZSBudW1iZXIgb2Ygcm93cyIsCgkJZnVuY3Rpb24gKCkgeyAkKCdkaXYuZGF0YVRhYmxlc19zY3JvbGxCb2R5Jykuc2Nyb2xsVG9wKDMwKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSAyMDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiSW5mbyBhZnRlciAxMCBtb3JlIHB4IHNjcm9sbCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9pbmZvJykuaHRtbCgpID09ICJTaG93aW5nIDEgdG8gMjAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTY3JvbGwgdG8gMjgwcHggYWRkcyBhbm90aGVyIDEwIHJvd3MiLAoJCWZ1bmN0aW9uICgpIHsgJCgnZGl2LmRhdGFUYWJsZXNfc2Nyb2xsQm9keScpLnNjcm9sbFRvcCgyODApOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDMwOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJbmZvIGFmdGVyIDI0MHB4IHNjcm9sbCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9pbmZvJykuaHRtbCgpID09ICJTaG93aW5nIDEgdG8gMzAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkdldCBub2RlcyBhZnRlciAyNDBweCBzY3JvbGwiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHk+dHInKS5sZW5ndGggPT0gMzA7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkdldCBub2RlcyBmdW5jdGlvbiBhZnRlciAyNDBweCBzY3JvbGwiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKS5mbkdldE5vZGVzKCkubGVuZ3RoID09IDMwOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRmlsdGVyaW5nIHdpbGwgZHJvcCBiYWNrIHRvIDEwIHJvd3MiLAoJCWZ1bmN0aW9uICgpIHsgb1RhYmxlLmZuRmlsdGVyKCdnZWMnKSB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDEwOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJbmZvIGFmdGVyIGZpbHRlcmluZyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9pbmZvJykuaHRtbCgpID09ICJTaG93aW5nIDEgdG8gMTAgb2YgMjAgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkdldCBub2RlcyBhZnRlciBmaWx0ZXJpbmciLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHk+dHInKS5sZW5ndGggPT0gMTA7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkdldCBub2RlcyBmdW5jdGlvbiBhZnRlciBmaWx0ZXJpbmciLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKS5mbkdldE5vZGVzKCkubGVuZ3RoID09IDEwOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU2Nyb2xsIGFmdGVyIGZpbHRlcmluZyBhZGRzIDEwIiwKCQlmdW5jdGlvbiAoKSB7ICQoJ2Rpdi5kYXRhVGFibGVzX3Njcm9sbEJvZHknKS5zY3JvbGxUb3AoMjApOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDIwOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiR2V0IG5vZGVzIGFmdGVyIGZpbHRlcmluZyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keT50cicpLmxlbmd0aCA9PSAyMDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkdldCBub2RlcyBmdW5jdGlvbiBhZnRlciBmaWx0ZXJpbmciLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKS5mbkdldE5vZGVzKCkubGVuZ3RoID09IDIwOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU29ydGluZyB3aWxsIGRyb3AgYmFjayB0byAxMCByb3dzIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJ2Rpdi5kYXRhVGFibGVzX3Njcm9sbEJvZHknKS5zY3JvbGxUb3AoMCk7CgkJCW9UYWJsZS5mblNvcnQoW1sxLCdhc2MnXV0pCgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSAxMDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNjcm9sbCBhZnRlciBzb3J0aW5nIGFkZHMgMTAiLAoJCWZ1bmN0aW9uICgpIHsgJCgnZGl2LmRhdGFUYWJsZXNfc2Nyb2xsQm9keScpLnNjcm9sbFRvcCgyMCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMjA7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkdldCBub2RlcyBhZnRlciBzY3JvbGxpbmciLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHk+dHInKS5sZW5ndGggPT0gMjA7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkdldCBub2RlcyBmdW5jdGlvbiBhZnRlciBzY3JvbGxpbmciLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKS5mbkdldE5vZGVzKCkubGVuZ3RoID09IDIwOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/bInfo.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJJbmZvIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIgoJfSApOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiSW5mbyBkaXYgZXhpc3RzIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpICE9IG51bGw7IH0KCSk7CgkKCS8qIENoZWNrIGNhbiBkaXNhYmxlICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiSW5mbyBjYW4gYmUgZGlzYWJsZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkiYkluZm8iOiBmYWxzZQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykgPT0gbnVsbDsgfQoJKTsKCQoJLyogRW5hYmxlIG1ha2VzIG5vIGRpZmZlcmVuY2UgKi8KCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJJbmZvIGVuYWJsZWQgb3ZlcnJpZGUiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkiYkluZm8iOiB0cnVlCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKSAhPSBudWxsOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/bLengthChange.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJMZW5ndGhDaGFuZ2UiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiCgl9ICk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJMZW5ndGggZGl2IGV4aXN0cyBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2xlbmd0aCcpICE9IG51bGw7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIkZvdXIgZGVmYXVsdCBvcHRpb25zIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSBvcHRpb24iKS5sZW5ndGggPT0gNDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiRGVmYXVsdCBvcHRpb25zIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIG9wdHMgPSAkKCJzZWxlY3RbbmFtZT0nZXhhbXBsZV9sZW5ndGgnXSBvcHRpb24iKTsKCQkJcmV0dXJuIG9wdHNbMF0uZ2V0QXR0cmlidXRlKCd2YWx1ZScpID09IDEwICYmIG9wdHNbMV0uZ2V0QXR0cmlidXRlKCd2YWx1ZScpID09IDI1ICYmCgkJCQlvcHRzWzJdLmdldEF0dHJpYnV0ZSgndmFsdWUnKSA9PSA1MCAmJiBvcHRzWzNdLmdldEF0dHJpYnV0ZSgndmFsdWUnKSA9PSAxMDA7CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiSW5mbyB0YWtlcyBsZW5ndGggaW50byBhY2NvdW50IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCS8qIENoZWNrIGNhbiBkaXNhYmxlICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ2hhbmdlIGxlbmd0aCBjYW4gYmUgZGlzYWJsZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkiYkxlbmd0aENoYW5nZSI6IGZhbHNlCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2xlbmd0aCcpID09IG51bGw7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIkluZm9ybWF0aW9uIHRha2VzIGxlbmd0aCBkaXNhYmxlZCBpbnRvIGFjY291bnQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJLyogRW5hYmxlIG1ha2VzIG5vIGRpZmZlcmVuY2UgKi8KCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJMZW5ndGggY2hhbmdlIGVuYWJsZWQgb3ZlcnJpZGUiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkiYkxlbmd0aENoYW5nZSI6IHRydWUKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfbGVuZ3RoJykgIT0gbnVsbDsgfQoJKTsKCQoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/bPaginate.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJQYWdpbmF0ZSIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIKCX0gKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlBhZ2lhbnRpb24gZGl2IGV4aXN0cyBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3BhZ2luYXRlJykgIT0gbnVsbDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiSW5mb3JtYXRpb24gZGl2IHRha2VzIHBhZ2luZyBpbnRvIGFjY291bnQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJLyogQ2hlY2sgY2FuIGRpc2FibGUgKi8KCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJQYWdpYW50aW9uIGNhbiBiZSBkaXNhYmxlZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkJCSJiUGFnaW5hdGUiOiBmYWxzZQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wYWdpbmF0ZScpID09IG51bGw7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIkluZm9ybWF0aW9uIGRpdiB0YWtlcyBwYWdpbmcgZGlzYWJsZWQgaW50byBhY2NvdW50IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gNTcgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCS8qIEVuYWJsZSBtYWtlcyBubyBkaWZmZXJlbmNlICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUGFnaWFudGlvbiBlbmFibGVkIG92ZXJyaWRlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJImJQYWdpbmF0ZSI6IHRydWUKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcGFnaW5hdGUnKSAhPSBudWxsOyB9CgkpOwoJCgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/bProcessing.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJQcm9jZXNzaW5nIiApOwoKLyogSXQncyBhY3R1YWxseSBhIGJpdCBoYXJkIHRvIHNldCB0aGlzIG9uZSBkdWUgdG8gdGhlIGZhY3QgdGhhdCBpdCB3aWxsIG9ubHkgYmUgc2hvd24KICogd2hlbiBEYXRhVGFibGVzIGlzIGRvaW5nIHNvbWUga2luZCBvZiBwcm9jZXNzaW5nLiBUaGUgc2VydmVyLXNpZGUgcHJvY2Vzc2luZyBpcyBhIGJpdAogKiBiZXR0ZXIgdG8gdGVzdCB0aGlzIHRoYW4gaGVyZSAtIHNvIHdlIGp1c3QgdGhlIGludGVyYWwgZnVuY3Rpb25zIHRvIGVuYWJsZSBpdCBhbmQgY2hlY2sKICogdGhhdCBpdCBpcyBhdmFpbGFibGUKICovCgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIgoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJQcm9jZXNzaW5nIGlzIG9mZiBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vRmVhdHVyZXMuYlByb2Nlc3NpbmcgPT0gZmFsc2U7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJQcm9jZXNzaW5nIGRpdiBpcyBub3QgaW4gdGhlIERPTSIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUub0FwaS5fZm5Qcm9jZXNzaW5nRGlzcGxheSggb1NldHRpbmdzLCB0cnVlICk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcHJvY2Vzc2luZycpID09IG51bGw7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJQcm9jZXNzaW5nIGRpdiBjYW5ub3QgYmUgc2hvd24iLAoJCWZ1bmN0aW9uICgpIHsgb1RhYmxlLm9BcGkuX2ZuUHJvY2Vzc2luZ0Rpc3BsYXkoIG9TZXR0aW5ncywgdHJ1ZSApOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3Byb2Nlc3NpbmcnKSA9PSBudWxsOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUHJvY2Vzc2luZyBkaXYgY2Fubm90IGJlIGhpZGRlbiIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUub0FwaS5fZm5Qcm9jZXNzaW5nRGlzcGxheSggb1NldHRpbmdzLCBmYWxzZSApOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3Byb2Nlc3NpbmcnKSA9PSBudWxsOyB9CgkpOwoJCgkKCS8qIENoZWNrIGNhbiBkaXNhYmxlICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUHJvY2Vzc2luZyBjYW4gYmUgZW5hYmxlZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkJCSJiUHJvY2Vzc2luZyI6IHRydWUKCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9GZWF0dXJlcy5iUHJvY2Vzc2luZyA9PSB0cnVlOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUHJvY2Vzc2luZyBkaXYgaXMgaW4gdGhlIERPTSIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUub0FwaS5fZm5Qcm9jZXNzaW5nRGlzcGxheSggb1NldHRpbmdzLCB0cnVlICk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcHJvY2Vzc2luZycpOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUHJvY2Vzc2luZyBkaXYgaXMgaGlkZGVuIGJ5IGRlZmF1bHQiLAoJCWZ1bmN0aW9uICgpIHsgb1RhYmxlLm9BcGkuX2ZuUHJvY2Vzc2luZ0Rpc3BsYXkoIG9TZXR0aW5ncywgdHJ1ZSApOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3Byb2Nlc3NpbmcnKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJQcm9jZXNzaW5nIGRpdiBjYW4gYmUgc2hvd24iLAoJCWZ1bmN0aW9uICgpIHsgb1RhYmxlLm9BcGkuX2ZuUHJvY2Vzc2luZ0Rpc3BsYXkoIG9TZXR0aW5ncywgdHJ1ZSApOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3Byb2Nlc3NpbmcnKS5zdHlsZS52aXNpYmlsaXR5ID0gInZpc2libGUiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUHJvY2Vzc2luZyBkaXYgY2FuIGJlIGhpZGRlbiIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUub0FwaS5fZm5Qcm9jZXNzaW5nRGlzcGxheSggb1NldHRpbmdzLCBmYWxzZSApOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3Byb2Nlc3NpbmcnKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7IH0KCSk7CgkKCS8qIEVuYWJsZSBtYWtlcyBubyBkaWZmZXJlbmNlICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUHJvY2Vzc2luZyBkaXNhYmxlZCBvdmVycmlkZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkJCSJiUHJvY2Vzc2luZyI6IGZhbHNlCgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vRmVhdHVyZXMuYlByb2Nlc3NpbmcgPT0gZmFsc2U7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJQcm9jZXNzaW5nIGRpdiBpcyBub3QgaW4gdGhlIERPTSIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUub0FwaS5fZm5Qcm9jZXNzaW5nRGlzcGxheSggb1NldHRpbmdzLCB0cnVlICk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcHJvY2Vzc2luZycpID09IG51bGw7IH0KCSk7CgkKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/bServerSide.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJTZXJ2ZXJTaWRlIiApOwoKLyogQWxsIHRoZSBvdGhlciBzY3JpcHRzIGJsYXN0IHRoZSBzc3AgcHJvY2Vzc2luZyAqLwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU2VydmVyIHNpZGUgY2FuIGJlIHNldCB0byBvbiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0ZlYXR1cmVzLmJTZXJ2ZXJTaWRlID09IHRydWU7IH0KCSk7CgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/bSort.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJTb3J0IiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIgoJfSApOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU29ydGluZyBpcyBvbiBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJGaXJlZm94IDEuMCI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTb3J0aW5nIEFzYyBieSBkZWZhdWx0IGNsYXNzIGFwcGxpZWQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMCknKS5oYXNDbGFzcygic29ydGluZ19hc2MiKTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiQ2xpY2sgb24gc2Vjb25kIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU29ydGluZyBjbGFzcyByZW1vdmVkIGZyb20gZmlyc3QgY29sdW1uIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDApJykuaGFzQ2xhc3MoInNvcnRpbmdfYXNjIikgIT0gdHJ1ZTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgYXNjIGNsYXNzIGFwcGxpZWQgdG8gc2Vjb25kIGNvbHVtbiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmhhc0NsYXNzKCJzb3J0aW5nX2FzYyIpOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KAoJCSJSZXZlcnNlIG9uIHNlY29uZCBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJTZWFtb25rZXkgMS4xIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgYWNzIGNsYXNzIHJlbW92ZWQgZnJvbSBzZWNvbmQgY29sdW1uIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuaGFzQ2xhc3MoInNvcnRpbmdfYXNjIikgIT0gdHJ1ZTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgZGVzYyBjbGFzcyBhcHBsaWVkIHRvIHNlY29uZCBjb2x1bW4iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5oYXNDbGFzcygic29ydGluZ19kZXNjIik7IH0KCSk7CgkKCS8qIENoZWNrIGNhbiBkaXNhYmxlICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUGFnaWFudGlvbiBjYW4gYmUgZGlzYWJsZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkiYlNvcnQiOiBmYWxzZQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiNCI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIkNsaWNrIG9uIHNlY29uZCBjb2x1bW4gaGFzIG5vIGVmZmVjdCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIjQiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KAoJCSJSZXZlcnNlIG9uIHNlY29uZCBjb2x1bW4gaGFzIG5vIGVmZmVjdCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIjQiOyB9CgkpOwoJCgkvKiBFbmFibGUgbWFrZXMgbm8gZGlmZmVyZW5jZSAqLwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgZW5hYmxlZCBvdmVycmlkZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkJCSJiU29ydCI6IHRydWUKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkZpcmVmb3ggMS4wIjsgfQoJKTsKCQoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/bSortClasses.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJTb3J0Q2xhc3NlcyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIKCX0gKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgY2xhc3NlcyBhcmUgYXBwbGllZCBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMScpOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU29ydGluZyBjbGFzc2VzIGFyZSBhcHBsaWVkIHRvIGFsbCByZXF1aXJlZCBjZWxscyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSg3KSB0ZDplcSgwKScpLmhhc0NsYXNzKCdzb3J0aW5nXzEnKTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgY2xhc3NlcyBhcmUgbm90IGFwcGxpZWQgdG8gbm9uLXNvcnRpbmcgY29sdW1ucyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmhhc0NsYXNzKCdzb3J0aW5nXzEnKSA9PSBmYWxzZTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgbXVsdGktY29sdW1uIC0gYWRkIGNvbHVtbiAxIiwKCQlmdW5jdGlvbiAoKSB7IAoJCQlvRGlzcGFjaGVyLmNsaWNrKCAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpWzBdLCB7ICdzaGlmdCc6IHRydWUgfSApOyB9LAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMScpICYmCgkJCQkJCSAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmhhc0NsYXNzKCdzb3J0aW5nXzInKTsKCQl9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU29ydGluZyBtdWx0aS1jb2x1bW4gLSBhZGQgY29sdW1uIDIiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCW9EaXNwYWNoZXIuY2xpY2soICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDIpJylbMF0sIHsgJ3NoaWZ0JzogdHJ1ZSB9ICk7IH0sCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5oYXNDbGFzcygnc29ydGluZ18xJykgJiYKCQkJCQkJICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMicpICYmCgkJCQkJCSAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgyKScpLmhhc0NsYXNzKCdzb3J0aW5nXzMnKTsKCQl9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU29ydGluZyBtdWx0aS1jb2x1bW4gLSBhZGQgY29sdW1uIDMiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCW9EaXNwYWNoZXIuY2xpY2soICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJylbMF0sIHsgJ3NoaWZ0JzogdHJ1ZSB9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmhhc0NsYXNzKCdzb3J0aW5nXzEnKSAmJgoJCQkJCQkgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5oYXNDbGFzcygnc29ydGluZ18yJykgJiYKCQkJCQkJICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDIpJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMycpICYmCgkJCQkJCSAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgzKScpLmhhc0NsYXNzKCdzb3J0aW5nXzMnKTsKCQl9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUmVtb3ZlIHNvcnRpbmcgY2xhc3NlcyBvbiBzaW5nbGUgY29sdW1uIHNvcnQiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDQpJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMScpID09IGZhbHNlICYmCgkJCQkJCSAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmhhc0NsYXNzKCdzb3J0aW5nXzInKSA9PSBmYWxzZSAmJgoJCQkJCQkgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMiknKS5oYXNDbGFzcygnc29ydGluZ18zJykgPT0gZmFsc2UgJiYKCQkJCQkJICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDMpJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMycpID09IGZhbHNlOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTb3J0aW5nIGNsYXNzIDEgd2FzIGFkZGVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDEpIHRkOmVxKDQpJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMScpOyB9CgkpOwoJCgkKCS8qIENoZWNrIGNhbiBkaXNhYmxlICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU29ydGluZyBjbGFzc2VzIGNhbiBiZSBkaXNhYmxlZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkJCSJiU29ydENsYXNzZXMiOiBmYWxzZQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmhhc0NsYXNzKCdzb3J0aW5nXzEnKSA9PSBmYWxzZTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgY2xhc3NlcyBkaXNhYmxlZCAtIGFkZCBjb2x1bW4gMSAtIG5vIGVmZmVjdCIsCgkJZnVuY3Rpb24gKCkgeyAKCQkJb0Rpc3BhY2hlci5jbGljayggJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKVswXSwgeyAnc2hpZnQnOiB0cnVlIH0gKTsgfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmhhc0NsYXNzKCdzb3J0aW5nXzEnKSA9PSBmYWxzZSAmJgoJCQkJCQkgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5oYXNDbGFzcygnc29ydGluZ18yJykgPT0gZmFsc2U7CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgY2xhc3NlcyBkaXNhYmxlZCAtIGFkZCBjb2x1bW4gMiAtIG5vIGVmZmVjdCIsCgkJZnVuY3Rpb24gKCkgeyAKCQkJb0Rpc3BhY2hlci5jbGljayggJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMiknKVswXSwgeyAnc2hpZnQnOiB0cnVlIH0gKTsgfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmhhc0NsYXNzKCdzb3J0aW5nXzEnKSA9PSBmYWxzZSAmJgoJCQkJCQkgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5oYXNDbGFzcygnc29ydGluZ18yJykgPT0gZmFsc2UgJiYKCQkJCQkJICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDIpJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMycpID09IGZhbHNlOwoJCX0KCSk7CgkKCQoJLyogRW5hYmxlIG1ha2VzIG5vIGRpZmZlcmVuY2UgKi8KCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTb3J0aW5nIGNsYXNzZXMgZW5hYmxlZCBvdmVycmlkZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkJCSJiU29ydENsYXNzZXMiOiB0cnVlCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMScpOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/fnCreatedCell.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImZuQ3JlYXRlZENlbGwgdGVzdHMiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJdmFyIHRtcCA9IDA7Cgl2YXIgY29tcGxldGUgPSBmYWxzZTsKCgkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkiYW9Db2x1bW5EZWZzIjogWyB7CgkJCWZuQ3JlYXRlZENlbGw6IGZ1bmN0aW9uICgpIHsKCQkJCXRtcCsrOwoJCQl9LAoJCQkiYVRhcmdldHMiOiBbIl9hbGwiXQoJCX0gXQoJfSApOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ2VsbCBjcmVhdGVkIGlzIGNhbGxlZCBvbmNlIGZvciBlYWNoIGNlbGwgb24gaW5pdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiB0bXA9PT01MDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNyZWF0ZWQgaXMgY2FsbGVkIGJhY2sgb24gb3RoZXIgZHJhd3MiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHRtcD09PTEwMDsgfQoJKTsKCglvVGVzdC5mbldhaXRUZXN0KAoJCSJGb3VyIGFyZ3VtZW50cyBmb3IgdGhlIGZ1bmN0aW9uIiwKCQlmdW5jdGlvbiAoKSB7IAoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJdG1wID0gdHJ1ZTsKCQkJY29tcGxldGUgPSBmYWxzZTsKCgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbIHsKCQkJCQlmbkNyZWF0ZWRSb3c6IGZ1bmN0aW9uICgpIHsKCQkJCQkJaWYgKCBhcmd1bWVudHMubGVuZ3RoICE9PSA0ICkgewoJCQkJCQkJdG1wID0gZmFsc2U7CgkJCQkJCX0KCQkJCQl9LAoJCQkJCSJhVGFyZ2V0cyI6IFsiX2FsbCJdCgkJCQl9IF0sCgkJCQlmbkluaXRDb21wbGV0ZTogZnVuY3Rpb24gKCkgewoJCQkJCWNvbXBsZXRlID0gdHJ1ZTsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gKHRtcCAmJiBjb21wbGV0ZSk7IH0KCSk7CgoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiRmlyc3QgYXJndW1lbnQgaXMgYSBURCBlbGVtZW50IiwKCQlmdW5jdGlvbiAoKSB7IAoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJdG1wID0gdHJ1ZTsKCQkJY29tcGxldGUgPSBmYWxzZTsKCgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbIHsKCQkJCQlmbkNyZWF0ZWRSb3c6IGZ1bmN0aW9uICgpIHsKCQkJCQkJaWYgKCBhcmd1bWVudHNbMF0ubm9kZU5hbWUgIT09ICJURCIgKSB7CgkJCQkJCQl0bXAgPSBmYWxzZTsKCQkJCQkJfQoJCQkJCX0sCgkJCQkJImFUYXJnZXRzIjogWyJfYWxsIl0KCQkJCX0gXSwKCQkJCWZuSW5pdENvbXBsZXRlOiBmdW5jdGlvbiAoKSB7CgkJCQkJY29tcGxldGUgPSB0cnVlOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAodG1wICYmIGNvbXBsZXRlKTsgfQoJKTsKCglvVGVzdC5mbldhaXRUZXN0KAoJCSJTZWNvbmQgYXJndW1lbnQgaXMgdGhlIEhUTUwgdmFsdWUiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQl0bXAgPSB0cnVlOwoJCQljb21wbGV0ZSA9IGZhbHNlOwoKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJImFvQ29sdW1uRGVmcyI6IFsgewoJCQkJCWZuQ3JlYXRlZFJvdzogZnVuY3Rpb24gKCkgewoJCQkJCQlpZiAoIGFyZ3VtZW50c1sxXSAhPSAkKCd0ZCcpLmh0bWwoKSApIHsKCQkJCQkJCXRtcCA9IGZhbHNlOwoJCQkJCQl9CgkJCQkJfSwKCQkJCQkiYVRhcmdldHMiOiBbIl9hbGwiXQoJCQkJfSBdLAoJCQkJZm5Jbml0Q29tcGxldGU6IGZ1bmN0aW9uICgpIHsKCQkJCQljb21wbGV0ZSA9IHRydWU7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICh0bXAgJiYgY29tcGxldGUpOyB9CgkpOwoKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIlRoaXJkIGFyZ3VtZW50IGlzIHRoZSBkYXRhIGFycmF5IiwKCQlmdW5jdGlvbiAoKSB7IAoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJdG1wID0gdHJ1ZTsKCQkJY29tcGxldGUgPSBmYWxzZTsKCgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbIHsKCQkJCQlmbkNyZWF0ZWRSb3c6IGZ1bmN0aW9uICgpIHsKCQkJCQkJaWYgKCBhcmd1bWVudHNbMl0ubGVuZ3RoICE9PSA1ICkgewoJCQkJCQkJdG1wID0gZmFsc2U7CgkJCQkJCX0KCQkJCQl9LAoJCQkJCSJhVGFyZ2V0cyI6IFsiX2FsbCJdCgkJCQl9IF0sCgkJCQlmbkluaXRDb21wbGV0ZTogZnVuY3Rpb24gKCkgewoJCQkJCWNvbXBsZXRlID0gdHJ1ZTsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gKHRtcCAmJiBjb21wbGV0ZSk7IH0KCSk7CgoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiRm91cnRoIGFyZ3VtZW50IGlzIHRoZSBkYXRhIHNvdXJjZSBmb3IgdGhlIHJvdyIsCgkJZnVuY3Rpb24gKCkgeyAKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCXRtcCA9IHRydWU7CgkJCWNvbXBsZXRlID0gZmFsc2U7CgoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkiYW9Db2x1bW5EZWZzIjogWyB7CgkJCQkJZm5DcmVhdGVkUm93OiBmdW5jdGlvbiAoKSB7CgkJCQkJCWlmICggYXJndW1lbnRzWzJdICE9PSB0aGlzLmZuU2V0dGluZ3MoKS5hb0RhdGFbIGFyZ3VtZW50c1syXSBdLl9hRGF0YSApIHsKCQkJCQkJCXRtcCA9IGZhbHNlOwoJCQkJCQl9CgkJCQkJfSwKCQkJCQkiYVRhcmdldHMiOiBbIl9hbGwiXQoJCQkJfSBdLAoJCQkJZm5Jbml0Q29tcGxldGU6IGZ1bmN0aW9uICgpIHsKCQkJCQljb21wbGV0ZSA9IHRydWU7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICh0bXAgJiYgY29tcGxldGUpOyB9CgkpOwoKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIkZpZnRoIGFyZ3VtZW50IGlzIHRoZSB0aGUgY29sIGluZGV4IiwKCQlmdW5jdGlvbiAoKSB7IAoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJdG1wID0gdHJ1ZTsKCQkJY29tcGxldGUgPSBmYWxzZTsKCgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbIHsKCQkJCQlmbkNyZWF0ZWRSb3c6IGZ1bmN0aW9uICgpIHsKCQkJCQkJaWYgKCBhcmd1bWVudHNbMV0gIT0gJCgndGQ6ZXEoJythcmd1bWVudHNbNF0rJyknLCBhcmd1bWVudHNbMF0ucGFyZW50Tm9kZSkuaHRtbCgpICkgewoJCQkJCQkJdG1wID0gZmFsc2U7CgkJCQkJCX0KCQkJCQl9LAoJCQkJCSJhVGFyZ2V0cyI6IFsiX2FsbCJdCgkJCQl9IF0sCgkJCQlmbkluaXRDb21wbGV0ZTogZnVuY3Rpb24gKCkgewoJCQkJCWNvbXBsZXRlID0gdHJ1ZTsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gKHRtcCAmJiBjb21wbGV0ZSk7IH0KCSk7CgkKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/fnCreatedRow.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImZuQ3JlYXRlZFJvdyB0ZXN0cyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIgdG1wID0gMDsKCXZhciBjb21wbGV0ZSA9IGZhbHNlOwoKCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCWZuQ3JlYXRlZFJvdzogZnVuY3Rpb24gKCkgewoJCQl0bXArKzsKCQl9Cgl9ICk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJSb3cgY3JlYXRlZCBpcyBjYWxsZWQgb25jZSBmb3IgZWFjaCByb3cgb24gaW5pdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiB0bXA9PT0xMDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNyZWF0ZWQgaXMgY2FsbGVkIGJhY2sgb24gb3RoZXIgZHJhd3MiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHRtcD09PTIwOyB9CgkpOwoKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIlRocmVlIGFyZ3VtZW50cyBmb3IgdGhlIGZ1bmN0aW9uIiwKCQlmdW5jdGlvbiAoKSB7IAoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJdG1wID0gdHJ1ZTsKCQkJY29tcGxldGUgPSBmYWxzZTsKCgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkJCWZuQ3JlYXRlZFJvdzogZnVuY3Rpb24gKCkgewoJCQkJCWlmICggYXJndW1lbnRzLmxlbmd0aCAhPT0gMyApIHsKCQkJCQkJdG1wID0gZmFsc2U7CgkJCQkJfQoJCQkJfSwKCQkJCWZuSW5pdENvbXBsZXRlOiBmdW5jdGlvbiAoKSB7CgkJCQkJY29tcGxldGUgPSB0cnVlOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAodG1wICYmIGNvbXBsZXRlKTsgfQoJKTsKCglvVGVzdC5mbldhaXRUZXN0KAoJCSJGaXJzdCBhcmd1bWVudCBpcyBhIFRSIGVsZW1lbnQiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQl0bXAgPSB0cnVlOwoJCQljb21wbGV0ZSA9IGZhbHNlOwoKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJZm5DcmVhdGVkUm93OiBmdW5jdGlvbiAoKSB7CgkJCQkJaWYgKCBhcmd1bWVudHNbMF0ubm9kZU5hbWUgIT09ICJUUiIgKSB7CgkJCQkJCXRtcCA9IGZhbHNlOwoJCQkJCX0KCQkJCX0sCgkJCQlmbkluaXRDb21wbGV0ZTogZnVuY3Rpb24gKCkgewoJCQkJCWNvbXBsZXRlID0gdHJ1ZTsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gKHRtcCAmJiBjb21wbGV0ZSk7IH0KCSk7CgoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiU2Vjb25kIGFyZ3VtZW50IGlzIGFuIGFycmF5IHdpdGggNSBlbGVtZW50cyIsCgkJZnVuY3Rpb24gKCkgeyAKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCXRtcCA9IHRydWU7CgkJCWNvbXBsZXRlID0gZmFsc2U7CgoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQlmbkNyZWF0ZWRSb3c6IGZ1bmN0aW9uICgpIHsKCQkJCQlpZiAoIGFyZ3VtZW50c1sxXS5sZW5ndGggIT09IDUgKSB7CgkJCQkJCXRtcCA9IGZhbHNlOwoJCQkJCX0KCQkJCX0sCgkJCQlmbkluaXRDb21wbGV0ZTogZnVuY3Rpb24gKCkgewoJCQkJCWNvbXBsZXRlID0gdHJ1ZTsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gKHRtcCAmJiBjb21wbGV0ZSk7IH0KCSk7CgoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiVGhpcmQgYXJndW1lbnQgaXMgdGhlIGRhdGEgc291cmNlIGZvciB0aGUgcm93IiwKCQlmdW5jdGlvbiAoKSB7IAoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJdG1wID0gdHJ1ZTsKCQkJY29tcGxldGUgPSBmYWxzZTsKCgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkJCWZuQ3JlYXRlZFJvdzogZnVuY3Rpb24gKCkgewoJCQkJCWlmICggYXJndW1lbnRzWzFdICE9PSB0aGlzLmZuU2V0dGluZ3MoKS5hb0RhdGFbIGFyZ3VtZW50c1syXSBdLl9hRGF0YSApIHsKCQkJCQkJdG1wID0gZmFsc2U7CgkJCQkJfQoJCQkJfSwKCQkJCWZuSW5pdENvbXBsZXRlOiBmdW5jdGlvbiAoKSB7CgkJCQkJY29tcGxldGUgPSB0cnVlOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAodG1wICYmIGNvbXBsZXRlKTsgfQoJKTsKCglvVGVzdC5mbldhaXRUZXN0KAoJCSJUUiBlbGVtZW50IGlzIHRpZWQgdG8gdGhlIGNvcnJlY3QgZGF0YSIsCgkJZnVuY3Rpb24gKCkgeyAKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCXRtcCA9IGZhbHNlOwoJCQljb21wbGV0ZSA9IGZhbHNlOwoKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJZm5DcmVhdGVkUm93OiBmdW5jdGlvbiAodHIsIGRhdGEsIGluZGV4KSB7CgkJCQkJaWYgKCBkYXRhWzFdID09PSAiRmlyZWZveCAxLjAiICkgewoJCQkJCQlpZiAoICQoJ3RkOmVxKDMpJywgdHIpLmh0bWwoKSA9PSAiMS43IiApIHsKCQkJCQkJCXRtcCA9IHRydWU7CgkJCQkJCX0KCQkJCQl9CgkJCQl9LAoJCQkJZm5Jbml0Q29tcGxldGU6IGZ1bmN0aW9uICgpIHsKCQkJCQljb21wbGV0ZSA9IHRydWU7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICh0bXAgJiYgY29tcGxldGUpOyB9CgkpOwoJCgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/fnDrawCallback.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImZuRHJhd0NhbGxiYWNrIiApOwoKLyogRmFpcmx5IGJvcmluZyBmdW5jdGlvbiBjb21wYXJlZCB0byB0aGUgb3RoZXJzISAqLwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJdmFyIG1QYXNzOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRGVmYXVsdCBzaG91bGQgYmUgbnVsbCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3MuZm5EcmF3Q2FsbGJhY2sgPT0gbnVsbDsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiT25lIGFyZ3VtZW50IHBhc3NlZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gLTE7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkiZm5EcmF3Q2FsbGJhY2siOiBmdW5jdGlvbiAoICkgewoJCQkJCW1QYXNzID0gYXJndW1lbnRzLmxlbmd0aDsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3MgPT0gMTsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiVGhhdCBvbmUgYXJndW1lbnQgaXMgdGhlIHNldHRpbmdzIG9iamVjdCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkiZm5EcmF3Q2FsbGJhY2siOiBmdW5jdGlvbiAoIG9TZXR0aW5ncyApIHsKCQkJCQltUGFzcyA9IG9TZXR0aW5nczsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1RhYmxlLmZuU2V0dGluZ3MoKSA9PSBtUGFzczsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiZm5Sb3dDYWxsYmFjayBjYWxsZWQgb25jZSBvbiBmaXJzdCBkcmF3IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSAwOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJImZuRHJhd0NhbGxiYWNrIjogZnVuY3Rpb24gKCApIHsKCQkJCQltUGFzcysrOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzcyA9PSAxOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiZm5Sb3dDYWxsYmFjayBjYWxsZWQgb25jZSBvbiBlYWNoIGRyYXcgdGhlcmUgYWZ0ZXIgYXMgd2VsbCIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3MgPiAxOyB9CgkpOwoJCgkKCQoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/fnHeaderCallback.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImZuSGVhZGVyQ2FsbGJhY2siICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIgoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7Cgl2YXIgbVBhc3M7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJEZWZhdWx0IHNob3VsZCBiZSBudWxsIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5mbkhlYWRlckNhbGxiYWNrID09IG51bGw7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkZpdmUgYXJndW1lbnRzIHBhc3NlZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gLTE7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkiZm5IZWFkZXJDYWxsYmFjayI6IGZ1bmN0aW9uICggKSB7CgkJCQkJbVBhc3MgPSBhcmd1bWVudHMubGVuZ3RoOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzcyA9PSA1OyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJmblJvd0NhbGxiYWNrIGNhbGxlZCBvbmNlIHBlciBkcmF3IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSAwOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJImZuSGVhZGVyQ2FsbGJhY2siOiBmdW5jdGlvbiAoIG5IZWFkLCBhYXNEYXRhLCBpU3RhcnQsIGlFbmQsIGFpRGlzcGxheSApIHsKCQkJCQltUGFzcysrOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzcyA9PSAxOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiZm5Sb3dDYWxsYmFjayBjYWxsZWQgb24gcGFnaW5nIChpLmUuIGFub3RoZXIgZHJhdykiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3MgPT0gMjsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiZm5Sb3dDYWxsYmFjayBhbGxvd3MgdXMgdG8gYWx0ZXIgcm93IGluZm9ybWF0aW9uIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJImZuSGVhZGVyQ2FsbGJhY2siOiBmdW5jdGlvbiAoIG5IZWFkLCBhYXNEYXRhLCBpU3RhcnQsIGlFbmQsIGFpRGlzcGxheSApIHsKCQkJCQluSGVhZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndGgnKVswXS5pbm5lckhUTUwgPSAiRGlzcGxheWluZyAiKyhpRW5kLWlTdGFydCkrIiByZWNvcmRzIjsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMCknKS5odG1sKCkgPT0gIkRpc3BsYXlpbmcgMTAgcmVjb3JkcyI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJImlTdGFydCBjb3JyZWN0IG9uIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IHRydWU7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkiZm5IZWFkZXJDYWxsYmFjayI6IGZ1bmN0aW9uICggbkhlYWQsIGFhc0RhdGEsIGlTdGFydCwgaUVuZCwgYWlEaXNwbGF5ICkgewoJCQkJCWlmICggaVN0YXJ0ICE9IDAgKQoJCQkJCXsKCQkJCQkJbVBhc3MgPSBmYWxzZTsKCQkJCQl9CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJpU3RhcnQgY29ycmVjdCBvbiBzZWNvbmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gZmFsc2U7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkiZm5IZWFkZXJDYWxsYmFjayI6IGZ1bmN0aW9uICggbkhlYWQsIGFhc0RhdGEsIGlTdGFydCwgaUVuZCwgYWlEaXNwbGF5ICkgewoJCQkJCWlmICggaVN0YXJ0ID09IDAgKQoJCQkJCXsKCQkJCQkJbVBhc3MgPSB0cnVlOwoJCQkJCX0KCQkJCX0sCgkJCQkiZm5Jbml0Q29tcGxldGUiOiBmdW5jdGlvbiAoKSB7CgkJCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJpRW5kIGNvcnJlY3Qgb24gc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IGZhbHNlOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJImZuSGVhZGVyQ2FsbGJhY2siOiBmdW5jdGlvbiAoIG5IZWFkLCBhYXNEYXRhLCBpU3RhcnQsIGlFbmQsIGFpRGlzcGxheSApIHsKCQkJCQlpZiAoIGlFbmQgPT0gMTAgKQoJCQkJCXsKCQkJCQkJbVBhc3MgPSB0cnVlOwoJCQkJCX0KCQkJCX0sCgkJCQkiZm5Jbml0Q29tcGxldGUiOiBmdW5jdGlvbiAoKSB7CgkJCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJhaURpc3BsYXkgbGVuZ3RoIGlzIGZ1bGwgZGF0YSB3aGVuIG5vdCBmaWx0ZXJlZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gZmFsc2U7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkiZm5IZWFkZXJDYWxsYmFjayI6IGZ1bmN0aW9uICggbkhlYWQsIGFhc0RhdGEsIGlTdGFydCwgaUVuZCwgYWlEaXNwbGF5ICkgewoJCQkJCWlmICggYWlEaXNwbGF5Lmxlbmd0aCA9PSAxMCApCgkJCQkJewoJCQkJCQltUGFzcyA9IHRydWU7CgkJCQkJfQoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzczsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJImFpRGlzcGxheSBsZW5ndGggaXMgOSB3aGVuIGZpbHRlcmluZyBvbiAnTW96aWxsYSciLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IGZhbHNlOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJImZuSGVhZGVyQ2FsbGJhY2siOiBmdW5jdGlvbiAoIG5IZWFkLCBhYXNEYXRhLCBpU3RhcnQsIGlFbmQsIGFpRGlzcGxheSApIHsKCQkJCQlpZiAoIGFpRGlzcGxheS5sZW5ndGggPT0gOSApCgkJCQkJewoJCQkJCQltUGFzcyA9IHRydWU7CgkJCQkJfQoJCQkJfQoJCQl9ICk7CgkJCW9UYWJsZS5mbkZpbHRlciggIk1vemlsbGEiICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzczsgfQoJKTsKCQoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/fnInitComplete.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImZuSW5pdENvbXBsZXRlIiApOwoKLyogRmFpcmx5IGJvcmluZyBmdW5jdGlvbiBjb21wYXJlZCB0byB0aGUgb3RoZXJzISAqLwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJUd28gYXJndW1lbnRzIHBhc3NlZCIsCgkJZnVuY3Rpb24gKCkgewoJCQkKCQkJbVBhc3MgPSAtMTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkJCSJmbkluaXRDb21wbGV0ZSI6IGZ1bmN0aW9uICggKSB7CgkJCQkJbVBhc3MgPSBhcmd1bWVudHMubGVuZ3RoPT09MiAmJiBhcmd1bWVudHNbMV09PT11bmRlZmluZWQ7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJUaGF0IG9uZSBhcmd1bWVudCBpcyB0aGUgc2V0dGluZ3Mgb2JqZWN0IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkJCSJmbkluaXRDb21wbGV0ZSI6IGZ1bmN0aW9uICggb1NldHRpbmdzICkgewoJCQkJCW1QYXNzID0gb1NldHRpbmdzOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IGNvbnNvbGUubG9nKCBvVGFibGUuZm5TZXR0aW5ncygpLCBtUGFzcyApO3JldHVybiBvVGFibGUuZm5TZXR0aW5ncygpID09PSBtUGFzczsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiZm5Jbml0Q29tcGxldGUgY2FsbGVkIG9uY2Ugb24gZmlyc3QgZHJhdyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gMDsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJImZuSW5pdENvbXBsZXRlIjogZnVuY3Rpb24gKCApIHsKCQkJCQltUGFzcysrOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzcyA9PSAxOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiZm5Jbml0Q29tcGxldGUgbmV2ZXIgY2FsbGVkIHRoZXJlIGFmdGVyIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzcyA9PSAxOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSIxMCByb3dzIGluIHRoZSB0YWJsZSBvbiBjb21wbGV0ZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gMDsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJImZuSW5pdENvbXBsZXRlIjogZnVuY3Rpb24gKCApIHsKCQkJCQltUGFzcyA9ICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzcyA9PSAxMDsgfQoJKTsKCQoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/fnRowCallback.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImZuUm93Q2FsbGJhY2siICk7CgovKiBOb3RlIC0gZm5Sb3dDYWxsYmFjayBNVVNUIHJldHVybiB0aGUgZmlyc3QgYXJndW1lbnRzIChtb2RpZmllZCBvciBub3QpICovCgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIgoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7Cgl2YXIgbVBhc3M7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJEZWZhdWx0IHNob3VsZCBiZSBudWxsIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5mblJvd0NhbGxiYWNrID09IG51bGw7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkZvdXIgYXJndW1lbnRzIHBhc3NlZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gLTE7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkiZm5Sb3dDYWxsYmFjayI6IGZ1bmN0aW9uICggblRyICkgewoJCQkJCW1QYXNzID0gYXJndW1lbnRzLmxlbmd0aDsKCQkJCQlyZXR1cm4gblRyOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzcyA9PSA0OyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJmblJvd0NhbGxiYWNrIGNhbGxlZCBvbmNlIGZvciBlYWNoIGRyYXduIHJvdyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gMDsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkJCSJmblJvd0NhbGxiYWNrIjogZnVuY3Rpb24gKCBuVHIsIGFzRGF0YSwgaURyYXdJbmRleCwgaURhdGFJbmRleCApIHsKCQkJCQltUGFzcysrOwoJCQkJCXJldHVybiBuVHI7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzID09IDEwOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiZm5Sb3dDYWxsYmFjayBhbGxvd3MgdXMgdG8gYWx0ZXIgcm93IGluZm9ybWF0aW9uIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJImZuUm93Q2FsbGJhY2siOiBmdW5jdGlvbiAoIG5UciwgYXNEYXRhLCBpRHJhd0luZGV4LCBpRGF0YUluZGV4ICkgewoJCQkJCSQoblRyKS5hZGRDbGFzcygndW5pdF90ZXN0Jyk7CgkJCQkJcmV0dXJuIG5UcjsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMSknKS5oYXNDbGFzcygndW5pdF90ZXN0Jyk7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJEYXRhIGFycmF5IGhhcyBsZW5ndGggbWF0Y2hpbmcgY29sdW1ucyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gdHJ1ZTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkJCSJmblJvd0NhbGxiYWNrIjogZnVuY3Rpb24gKCBuVHIsIGFzRGF0YSwgaURyYXdJbmRleCwgaURhdGFJbmRleCApIHsKCQkJCQlpZiAoIGFzRGF0YS5sZW5ndGggIT0gNSApCgkJCQkJCW1QYXNzID0gZmFsc2U7CgkJCQkJcmV0dXJuIG5UcjsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3M7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJEYXRhIGFycmF5IGhhcyBsZW5ndGggbWF0Y2hpbmcgY29sdW1ucyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gdHJ1ZTsKCQkJdmFyIGlDb3VudCA9IDA7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkiZm5Sb3dDYWxsYmFjayI6IGZ1bmN0aW9uICggblRyLCBhc0RhdGEsIGlEcmF3SW5kZXgsIGlEYXRhSW5kZXggKSB7CgkJCQkJaWYgKCBpQ291bnQgIT0gaURyYXdJbmRleCApCgkJCQkJCW1QYXNzID0gZmFsc2U7CgkJCQkJaUNvdW50Kys7CgkJCQkJcmV0dXJuIG5UcjsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3M7IH0KCSk7CgkKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/iDeferLoading.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZGVmZXJyZWRfdGFibGUKLyoKICovCm9UZXN0LmZuU3RhcnQoICJEZWZlciBsb2FkaW5nIHRlc3RzIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCXZhciBnb3RTZXJ2ZXJEYXRhID0gZmFsc2U7CgkKCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImlEZWZlckxvYWRpbmciOiA1NywKCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJImZuU2VydmVyRGF0YSI6IGZ1bmN0aW9uICh1cmwsIGRhdGEsIGZuKSB7CgkJCSQuYWpheCggewoJCQkJInVybCI6IHVybCwKCQkJCSJkYXRhIjogZGF0YSwKCQkJCSJzdWNjZXNzIjogZnVuY3Rpb24oanNvbikgewoJCQkJCWdvdFNlcnZlckRhdGEgPSB0cnVlOwoJCQkJCWZuKCBqc29uICk7CgkJCQl9LAoJCQkJImRhdGFUeXBlIjogImpzb24iLAoJCQkJImNhY2hlIjogZmFsc2UKCQkJfSApOwoJCX0KCX0gKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIjEwIHJvd3Mgc2hvd24gb24gdGhlIGZpcnN0IHBhZ2UiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMTA7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJObyByZXF1ZXN0IHRvIHRoZSBzZXJ2ZXIgeWV0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICFnb3RTZXJ2ZXJEYXRhOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIG9uIHplcm8gY29uZmlnIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkluaXRpYWwgZGF0YSBvcmRlciByZXRhaW5lZCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiR2Vja28iOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiSW5pdGlhbCBkYXRhIG9yZGVyIHJldGFpbmVkIDIiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkZpcmVmb3ggMS4wIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlN0aWxsIG5vIHJlcXVlc3QgdG8gdGhlIHNlcnZlciB5ZXQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gIWdvdFNlcnZlckRhdGE7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTb3J0aW5nIChmaXJzdCBjbGljaykgb24gc2Vjb25kIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTm93IHdlJ3ZlIGhhZCBhIHJlcXVlc3QiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZ290U2VydmVyRGF0YTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiBhZnRlciBzb3J0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgKHNlY29uZCBjbGljaykgb24gc2Vjb25kIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIlNlYW1vbmtleSAxLjEiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU29ydGluZyAodGhpcmQgY2xpY2spIG9uIHNlY29uZCBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/iDisplayLength.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImlEaXNwbGF5TGVuZ3RoIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIgoJfSApOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRGVmYXVsdCBsZW5ndGggaXMgdGVuIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDEwOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU2VsZWN0IG1lbnUgc2hvd3MgMTAiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGVfbGVuZ3RoIHNlbGVjdCcpLnZhbCgpID09IDEwOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTZXQgaW5pdGlhbCBsZW5ndGggdG8gMjUiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkiaURpc3BsYXlMZW5ndGgiOiAyNQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSAyNTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNlbGVjdCBtZW51IHNob3dzIDI1IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlX2xlbmd0aCBzZWxlY3QnKS52YWwoKSA9PSAyNTsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU2V0IGluaXRpYWwgbGVuZ3RoIHRvIDEwMCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkJCSJpRGlzcGxheUxlbmd0aCI6IDEwMAoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSA1NzsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNlbGVjdCBtZW51IHNob3dzIDI1IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlX2xlbmd0aCBzZWxlY3QnKS52YWwoKSA9PSAxMDA7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNldCBpbml0aWFsIGxlbmd0aCB0byAyMyAodW5rbm93biBzZWxlY3QgbWVudSBsZW5ndGgpIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJImlEaXNwbGF5TGVuZ3RoIjogMjMKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMjM7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTZWxlY3QgbWVudSBzaG93cyAxMCAoc2luY2UgMjMgaXMgdW5rbm93KSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9sZW5ndGggc2VsZWN0JykudmFsKCkgPT0gMTA7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/oLanguage.oPaginate.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5vUGFnaW5hdGUiICk7CgovKiBOb3RlIHRoYXQgdGhlIHBhZ2luZyBsYW5ndWFnZSBpbmZvcm1hdGlvbiBvbmx5IGhhcyByZWxldmVuY2UgaW4gZnVsbCBudW1iZXJzICovCgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkic1BhZ2luYXRpb25UeXBlIjogImZ1bGxfbnVtYmVycyIKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkib0xhbmd1YWdlLm9QYWdpbmF0ZSBkZWZhdWx0cyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBiUmV0dXJuID0gCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLm9QYWdpbmF0ZS5zRmlyc3QgPT0gIkZpcnN0IiAmJgoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5vUGFnaW5hdGUuc1ByZXZpb3VzID09ICJQcmV2aW91cyIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uub1BhZ2luYXRlLnNOZXh0ID09ICJOZXh0IiAmJgoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5vUGFnaW5hdGUuc0xhc3QgPT0gIkxhc3QiOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJvTGFuZ3VhZ2Uub1BhZ2luYXRlIGRlZmF1bHRzIGFyZSBpbiB0aGUgRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCSQoJyNleGFtcGxlX3BhZ2luYXRlIC5maXJzdCcpLmh0bWwoKSA9PSAiRmlyc3QiICYmCgkJCQkkKCcjZXhhbXBsZV9wYWdpbmF0ZSAucHJldmlvdXMnKS5odG1sKCkgPT0gIlByZXZpb3VzIiAmJgoJCQkJJCgnI2V4YW1wbGVfcGFnaW5hdGUgLm5leHQnKS5odG1sKCkgPT0gIk5leHQiICYmCgkJCQkkKCcjZXhhbXBsZV9wYWdpbmF0ZSAubGFzdCcpLmh0bWwoKSA9PSAiTGFzdCI7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIm9MYW5ndWFnZS5vUGFnaW5hdGUgY2FuIGJlIGRlZmluZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkic1BhZ2luYXRpb25UeXBlIjogImZ1bGxfbnVtYmVycyIsCgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJvUGFnaW5hdGUiOiB7CgkJCQkJCSJzRmlyc3QiOiAgICAidW5pdDEiLAoJCQkJCQkic1ByZXZpb3VzIjogInRlc3QyIiwKCQkJCQkJInNOZXh0IjogICAgICJ1bml0MyIsCgkJCQkJCSJzTGFzdCI6ICAgICAidGVzdDQiCgkJCQkJfQoJCQkJfQoJCQl9ICk7CgkJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBiUmV0dXJuID0gCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLm9QYWdpbmF0ZS5zRmlyc3QgPT0gInVuaXQxIiAmJgoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5vUGFnaW5hdGUuc1ByZXZpb3VzID09ICJ0ZXN0MiIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uub1BhZ2luYXRlLnNOZXh0ID09ICJ1bml0MyIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uub1BhZ2luYXRlLnNMYXN0ID09ICJ0ZXN0NCI7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIm9MYW5ndWFnZS5vUGFnaW5hdGUgZGVmaW5pdGlvbnMgYXJlIGluIHRoZSBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYlJldHVybiA9IAoJCQkJJCgnI2V4YW1wbGVfcGFnaW5hdGUgLmZpcnN0JykuaHRtbCgpID09ICJ1bml0MSIgJiYKCQkJCSQoJyNleGFtcGxlX3BhZ2luYXRlIC5wcmV2aW91cycpLmh0bWwoKSA9PSAidGVzdDIiICYmCgkJCQkkKCcjZXhhbXBsZV9wYWdpbmF0ZSAubmV4dCcpLmh0bWwoKSA9PSAidW5pdDMiICYmCgkJCQkkKCcjZXhhbXBsZV9wYWdpbmF0ZSAubGFzdCcpLmh0bWwoKSA9PSAidGVzdDQiOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/oLanguage.sInfo.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zSW5mbyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkluZm8gbGFuZ3VhZ2UgaXMgJ1Nob3dpbmcgX1NUQVJUXyB0byBfRU5EXyBvZiBfVE9UQUxfIGVudHJpZXMnIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9MYW5ndWFnZS5zSW5mbyA9PSAiU2hvd2luZyBfU1RBUlRfIHRvIF9FTkRfIG9mIF9UT1RBTF8gZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkluZm8gbGFuZ3VhZ2UgZGVmYXVsdCBpcyBpbiB0aGUgRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPSAiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJJbmZvIGxhbmd1YWdlIGNhbiBiZSBkZWZpbmVkIC0gd2l0aG91dCBhbnkgbWFjcm9zIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic0luZm8iOiAidW5pdCB0ZXN0IgoJCQkJfQoJCQl9ICk7CgkJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0xhbmd1YWdlLnNJbmZvID09ICJ1bml0IHRlc3QiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJbmZvIGxhbmd1YWdlIGRlZmluaXRpb24gaXMgaW4gdGhlIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID0gInVuaXQgdGVzdCI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJJbmZvIGxhbmd1YWdlIGNhbiBiZSBkZWZpbmVkIC0gd2l0aCBtYWNybyBfU1RBUlRfIG9ubHkiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzSW5mbyI6ICJ1bml0IF9TVEFSVF8gdGVzdCIKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9ICJ1bml0IDEgdGVzdCI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJJbmZvIGxhbmd1YWdlIGNhbiBiZSBkZWZpbmVkIC0gd2l0aCBtYWNybyBfRU5EXyBvbmx5IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic0luZm8iOiAidW5pdCBfRU5EXyB0ZXN0IgoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID0gInVuaXQgMTAgdGVzdCI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJJbmZvIGxhbmd1YWdlIGNhbiBiZSBkZWZpbmVkIC0gd2l0aCBtYWNybyBfVE9UQUxfIG9ubHkiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzSW5mbyI6ICJ1bml0IF9FTkRfIHRlc3QiCgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPSAidW5pdCA1NyB0ZXN0IjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkluZm8gbGFuZ3VhZ2UgY2FuIGJlIGRlZmluZWQgLSB3aXRoIG1hY3JvcyBfU1RBUlRfIGFuZCBfRU5EXyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNJbmZvIjogInVuaXQgX1NUQVJUXyBfRU5EXyB0ZXN0IgoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID0gInVuaXQgMSAxMCB0ZXN0IjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkluZm8gbGFuZ3VhZ2UgY2FuIGJlIGRlZmluZWQgLSB3aXRoIG1hY3JvcyBfU1RBUlRfLCBfRU5EXyBhbmQgX1RPVEFMXyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNJbmZvIjogInVuaXQgX1NUQVJUXyBfRU5EXyBfVE9UQUxfIHRlc3QiCgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPSAidW5pdCAxIDEwIDU3IHRlc3QiOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/oLanguage.sInfoEmpty.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zSW5mb0VtcHR5IiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiSW5mbyBlbXB0eSBsYW5ndWFnZSBpcyAnU2hvd2luZyAwIHRvIDAgb2YgMCBlbnRyaWVzJyBieSBkZWZhdWx0IiwKCQlmdW5jdGlvbiAoKSB7IG9UYWJsZS5mbkZpbHRlcigibm90aGluZ2hlcmUiKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0xhbmd1YWdlLnNJbmZvRW1wdHkgPT0gIlNob3dpbmcgMCB0byAwIG9mIDAgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJJbmZvIGVtcHR5IGxhbmd1YWdlIGRlZmF1bHQgaXMgaW4gdGhlIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBiUmV0dXJuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTC5yZXBsYWNlKCAKCQkJCScgJytvU2V0dGluZ3Mub0xhbmd1YWdlLnNJbmZvRmlsdGVyZWQucmVwbGFjZSggJ19NQVhfJywgJzU3JyApLCAiIiApID09CgkJCQkJIlNob3dpbmcgMCB0byAwIG9mIDAgZW50cmllcyI7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkluZm8gZW1wdHkgbGFuZ3VhZ2UgY2FuIGJlIGRlZmluZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzSW5mb0VtcHR5IjogInVuaXQgdGVzdCIKCQkJCX0KCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCQlvVGFibGUuZm5GaWx0ZXIoIm5vdGhpbmdoZXJlIik7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0xhbmd1YWdlLnNJbmZvRW1wdHkgPT0gInVuaXQgdGVzdCI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJJbmZvIGVtcHR5IGxhbmd1YWdlIGRlZmF1bHQgaXMgaW4gdGhlIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBiUmV0dXJuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTC5yZXBsYWNlKCAKCQkJCScgJytvU2V0dGluZ3Mub0xhbmd1YWdlLnNJbmZvRmlsdGVyZWQucmVwbGFjZSggJ19NQVhfJywgJzU3JyApLCAiIiApID09CgkJCQkJInVuaXQgdGVzdCI7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk1hY3JvJ3MgcmVwbGFjZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzSW5mb0VtcHR5IjogInVuaXQgX1NUQVJUXyBfRU5EXyBfVE9UQUxfIHRlc3QiCgkJCQl9CgkJCX0gKTsKCQkJb1RhYmxlLmZuRmlsdGVyKCJub3RoaW5naGVyZSIpOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYlJldHVybiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwucmVwbGFjZSggCgkJCQknICcrb1NldHRpbmdzLm9MYW5ndWFnZS5zSW5mb0ZpbHRlcmVkLnJlcGxhY2UoICdfTUFYXycsICc1NycgKSwgIiIgKSA9PQoJCQkJCSJ1bml0IDEgMCAwIHRlc3QiOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/oLanguage.sInfoPostFix.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zSW5mb1Bvc3RGaXgiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIgoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJJbmZvIHBvc3QgZml4IGxhbmd1YWdlIGlzICcnIChibGFuaykgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0xhbmd1YWdlLnNJbmZvUG9zdEZpeCA9PSAiIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiV2lkdGggbm8gcG9zdCBmaXgsIHRoZSBiYXNpYyBpbmZvIHNob3dzIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPSAiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJJbmZvIHBvc3QgZml4IGxhbmd1YWdlIGNhbiBiZSBkZWZpbmVkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic0luZm9Qb3N0Rml4IjogInVuaXQgdGVzdCIKCQkJCX0KCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9MYW5ndWFnZS5zSW5mb1Bvc3RGaXggPT0gInVuaXQgdGVzdCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkluZm8gZW1wdHkgbGFuZ3VhZ2UgZGVmYXVsdCBpcyBpbiB0aGUgRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPSAiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMgdW5pdCB0ZXN0IjsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTWFjcm9zIGhhdmUgbm8gZWZmZWN0IGluIHRoZSBwb3N0IGZpeCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNJbmZvUG9zdEZpeCI6ICJ1bml0IF9TVEFSVF8gX0VORF8gX1RPVEFMXyB0ZXN0IgoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID0gIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIHVuaXQgX1NUQVJUXyBfRU5EXyBfVE9UQUxfIHRlc3QiOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJQb3N0IGZpeCBpcyBhcHBsaWVkIGFmdGVyIGZpbnRlcmluZyBpbmZvIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic0luZm9Qb3N0Rml4IjogInVuaXQgdGVzdCIKCQkJCX0KCQkJfSApOwoJCQlvVGFibGUuZm5GaWx0ZXIoIm5vdGhpbmdoZXJlIik7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID0gIlNob3dpbmcgMCB0byAwIG9mIDAgZW50cmllcyB1bml0IChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIHRlc3QiOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/oLanguage.sLengthMenu.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zTGVuZ3RoTWVudSIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk1lbnUgbGFuZ3VhZ2UgaXMgJ1Nob3cgX01FTlVfIGVudHJpZXMnIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9MYW5ndWFnZS5zTGVuZ3RoTWVudSA9PSAiU2hvdyBfTUVOVV8gZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiX01FTlVfIG1hY3JvIGlzIHJlcGxhY2VkIGJ5IHNlbGVjdCBtZW51IGluIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCdzZWxlY3QnLCBvU2V0dGluZ3MuYWFuRmVhdHVyZXMubFswXSkubGVuZ3RoID09IDEgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJBIGxhYmVsIGlucHV0IGlzIHVzZWQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnbGFiZWwnLCBvU2V0dGluZ3MuYWFuRmVhdHVyZXMubFswXSkubGVuZ3RoID09IDEgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJEZWZhdWx0IGlzIHB1dCBpbnRvIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBhbkNoaWxkcmVuID0gJCgnbGFiZWwnLG9TZXR0aW5ncy5hYW5GZWF0dXJlcy5sWzBdKVswXS5jaGlsZE5vZGVzOwoJCQl2YXIgYlJldHVybiA9CgkJCQlhbkNoaWxkcmVuWzBdLm5vZGVWYWx1ZSA9PSAiU2hvdyAiICYmCgkJCQlhbkNoaWxkcmVuWzJdLm5vZGVWYWx1ZSA9PSAiIGVudHJpZXMiOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJNZW51IGxlbmd0aCBsYW5ndWFnZSBjYW4gYmUgZGVmaW5lZCAtIG5vIF9NRU5VXyBtYWNybyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNMZW5ndGhNZW51IjogInVuaXQgdGVzdCIKCQkJCX0KCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9MYW5ndWFnZS5zTGVuZ3RoTWVudSA9PSAidW5pdCB0ZXN0IjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiTWVudSBsZW5ndGggbGFuZ3VhZ2UgZGVmaW5pdGlvbiBpcyBpbiB0aGUgRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuICQoJ2xhYmVsJywgb1NldHRpbmdzLmFhbkZlYXR1cmVzLmxbMF0pLnRleHQoKSA9PSAidW5pdCB0ZXN0IjsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJNZW51IGxlbmd0aCBsYW5ndWFnZSBjYW4gYmUgZGVmaW5lZCAtIHdpdGggX01FTlVfIG1hY3JvIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic0xlbmd0aE1lbnUiOiAidW5pdCBfTUVOVV8gdGVzdCIKCQkJCX0KCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYW5DaGlsZHJlbiA9ICQoJ2xhYmVsJyxvU2V0dGluZ3MuYWFuRmVhdHVyZXMubFswXSlbMF0uY2hpbGROb2RlczsKCQkJdmFyIGJSZXR1cm4gPQoJCQkJYW5DaGlsZHJlblswXS5ub2RlVmFsdWUgPT0gInVuaXQgIiAmJgoJCQkJYW5DaGlsZHJlblsyXS5ub2RlVmFsdWUgPT0gIiB0ZXN0IjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiT25seSB0aGUgX01FTlVfIG1hY3JvIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic0xlbmd0aE1lbnUiOiAiX01FTlVfIgoJCQkJfQoJCQl9ICk7CgkJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBhbkNoaWxkcmVuID0gb1NldHRpbmdzLmFhbkZlYXR1cmVzLmxbMF0uY2hpbGROb2RlczsKCQkJdmFyIGJSZXR1cm4gPQoJCQkJYW5DaGlsZHJlbi5sZW5ndGggPT0gMSAmJgoJCQkJJCgnc2VsZWN0Jywgb1NldHRpbmdzLmFhbkZlYXR1cmVzLmxbMF0pLmxlbmd0aCA9PSAxOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/oLanguage.sProcessing.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zUHJvY2Vzc2luZyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCSJiUHJvY2Vzc2luZyI6IHRydWUKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUHJvY2Vzc2luZyBsYW5ndWFnZSBpcyAnUHJvY2Vzc2luZy4uLicgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0xhbmd1YWdlLnNQcm9jZXNzaW5nID09ICJQcm9jZXNzaW5nLi4uIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUHJvY2Vzc2luZyBsYW5ndWFnZSBkZWZhdWx0IGlzIGluIHRoZSBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcHJvY2Vzc2luZycpLmlubmVySFRNTCA9ICJQcm9jZXNzaW5nLi4uIjsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUHJvY2Vzc2luZyBsYW5ndWFnZSBjYW4gYmUgZGVmaW5lZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkJCSJiUHJvY2Vzc2luZyI6IHRydWUsCgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzUHJvY2Vzc2luZyI6ICJ1bml0IHRlc3QiCgkJCQl9CgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc1Byb2Nlc3NpbmcgPT0gInVuaXQgdGVzdCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlByb2Nlc3NpbmcgbGFuZ3VhZ2UgZGVmaW5pdGlvbiBpcyBpbiB0aGUgRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3Byb2Nlc3NpbmcnKS5pbm5lckhUTUwgPSAidW5pdCB0ZXN0IjsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/oLanguage.sSearch.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zU2VhcmNoIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU2VhcmNoIGxhbmd1YWdlIGlzICdTZWFyY2g6JyBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc1NlYXJjaCA9PSAiU2VhcmNoOiI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiQSBsYWJlbCBpbnB1dCBpcyB1c2VkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJ2xhYmVsJywgb1NldHRpbmdzLmFhbkZlYXR1cmVzLmZbMF0pLmxlbmd0aCA9PSAxIH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNlYXJjaCBsYW5ndWFnZSBkZWZhdWx0IGlzIGluIHRoZSBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnbGFiZWwnLCBvU2V0dGluZ3MuYWFuRmVhdHVyZXMuZlswXSkudGV4dCgpCgkJIAk9PSAiU2VhcmNoOiAiOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTZWFyY2ggbGFuZ3VhZ2UgY2FuIGJlIGRlZmluZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzU2VhcmNoIjogInVuaXQgdGVzdCIKCQkJCX0KCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9MYW5ndWFnZS5zU2VhcmNoID09ICJ1bml0IHRlc3QiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJbmZvIGxhbmd1YWdlIGRlZmluaXRpb24gaXMgaW4gdGhlIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCdsYWJlbCcsIG9TZXR0aW5ncy5hYW5GZWF0dXJlcy5mWzBdKS50ZXh0KCkuaW5kZXhPZigndW5pdCB0ZXN0JykgIT09IC0xOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJCbGFuayBzZWFyY2ggaGFzIG5vIHNwYWNlIChzZXBhcmF0b3IpIGluc2VydGVkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic1NlYXJjaCI6ICIiCgkJCQl9CgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2ZpbHRlcicpLmNoaWxkTm9kZXMubGVuZ3RoID09IDE7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/oLanguage.sUrl.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zVXJsIiApOwoKLyogTm90ZSB0aGF0IHdlIG9ubHkgdGVzdCB0aGUgaW50ZXJuYWwgc3RvcmFnZSBvZiBsYW5ndWFnZSBpbmZvcm1hdGlvbiBwdWxsZWQgZm9ybSBhIGZpbGUgaGVyZQogKiBhcyB0aGUgb3RoZXIgbGFuZ3VhZ2UgdGVzdHMgd2lsbCBjaGVjayBpdCBnb2VzIGludG8gdGhlIERPTSBjb3JyZWN0bHkKICovCgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIgoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuVGVzdCggCgkJInNVcmwgaXMgYmxhbmsgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0xhbmd1YWdlLnNVcmwgPT0gIiI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkxvYWRpbmcgb2YgR2VybWFuIGZpbGUgbG9hZHMgbGFuZ3VhZ2UgaW5mb3JtYXRpb24iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzVXJsIjogIi4uLy4uLy4uL2V4YW1wbGVzL2V4YW1wbGVzX3N1cHBvcnQvZGVfREUudHh0IgoJCQkJfQoJCQl9ICk7CgkJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBiUmV0dXJuID0gCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLnNQcm9jZXNzaW5nID09ICJCaXR0ZSB3YXJ0ZW4uLi4iICYmCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLnNMZW5ndGhNZW51ID09ICJfTUVOVV8gRWludHLDpGdlIGFuemVpZ2VuIiAmJgoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5zWmVyb1JlY29yZHMgPT0gIktlaW5lIEVpbnRyw6RnZSB2b3JoYW5kZW4uIiAmJgoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5zSW5mbyA9PSAiX1NUQVJUXyBiaXMgX0VORF8gdm9uIF9UT1RBTF8gRWludHLDpGdlbiIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc0luZm9FbXB0eSA9PSAiMCBiaXMgMCB2b24gMCBFaW50csOkZ2VuIiAmJgoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5zSW5mb0ZpbHRlcmVkID09ICIoZ2VmaWx0ZXJ0IHZvbiBfTUFYXyAgRWludHLDpGdlbikiICYmCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLnNJbmZvUG9zdEZpeCA9PSAiIiAmJgoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5zU2VhcmNoID09ICJTdWNoZW4iICYmCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLm9QYWdpbmF0ZS5zRmlyc3QgPT0gIkVyc3RlciIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uub1BhZ2luYXRlLnNQcmV2aW91cyA9PSAiWnVyw7xjayIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uub1BhZ2luYXRlLnNOZXh0ID09ICJOw6RjaHN0ZXIiICYmCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLm9QYWdpbmF0ZS5zTGFzdCA9PSAiTGV0enRlciI7CgkJCQkKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJLyogT25lIERPTSBjaGVjayBqdXN0IHRvIGVuc3VyZSB0aGF0IHRoZXkgZ28gaW50byB0aGUgRE9NICovCglvVGVzdC5mblRlc3QoCgkJIkxvYWRlZCBsYW5ndWFnZSBnb2VzIGludG8gdGhlIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID0gIjEgYmlzIDEwIHZvbiA1NyBFaW50csOkZ2VuIjsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/oLanguage.sZeroRecords.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zWmVyb1JlY29yZHMiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIgoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJaZXJvIHJlY29yZHMgbGFuZ3VhZ2UgaXMgJ05vIG1hdGNoaW5nIHJlY29yZHMgZm91bmQnIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9MYW5ndWFnZS5zWmVyb1JlY29yZHMgPT0gIk5vIG1hdGNoaW5nIHJlY29yZHMgZm91bmQiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KAoJCSJUZXh0IGlzIHNob3duIHdoZW4gZW1wdHkgdGFibGUgKGFmdGVyIGZpbHRlcmluZykiLAoJCWZ1bmN0aW9uICgpIHsgb1RhYmxlLmZuRmlsdGVyKCdub3RoaW5naGVyZScpOyB9LAoJCWZ1bmN0aW9uICgpIHsKCQkJaWYgKCAkKCcjZXhhbXBsZSB0Ym9keSB0ciB0ZCcpLmxlbmd0aCA9PSAwICkKCQkJCXJldHVybiBmYWxzZTsKCQkJcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyIHRkJylbMF0uaW5uZXJIVE1MID09ICJObyBtYXRjaGluZyByZWNvcmRzIGZvdW5kIjsKCQl9CgkpOwoJCgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlplcm8gcmVjb3JkcyBsYW5ndWFnZSBjYW4gYmUgZGVmaW5lZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNaZXJvUmVjb3JkcyI6ICJ1bml0IHRlc3QiCgkJCQl9CgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc1plcm9SZWNvcmRzID09ICJ1bml0IHRlc3QiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KAoJCSJUZXh0IGlzIHNob3duIHdoZW4gZW1wdHkgdGFibGUgKGFmdGVyIGZpbHRlcmluZykiLAoJCWZ1bmN0aW9uICgpIHsgb1RhYmxlLmZuRmlsdGVyKCdub3RoaW5naGVyZTInKTsgfSwKCQlmdW5jdGlvbiAoKSB7CgkJCWlmICggJCgnI2V4YW1wbGUgdGJvZHkgdHIgdGQnKS5sZW5ndGggPT0gMCApCgkJCQlyZXR1cm4gZmFsc2U7CgkJCXJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ciB0ZCcpWzBdLmlubmVySFRNTCA9PSAidW5pdCB0ZXN0IgoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/oSearch.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9TZWFyY2giICk7CgovKiBOb3RlIHdpdGggbXkgc2VydmVyLXNpZGUgc2NyaXB0cyB0aGUgcmVnZXggb3B0aW9uIGhhcyBubyBlZmZlY3QgLSB0aGlzIGp1c3QgcnVucyB0aGF0IGRvd24gKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkRlZmF1bHQgdmFsdWVzIHNob3VsZCBiZSBibGFuayIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBiUmV0dXJuID0gb1NldHRpbmdzLm9QcmV2aW91c1NlYXJjaC5zU2VhcmNoID09ICIiICYmIAoJCQkgICAgICAgICAgICAgICFvU2V0dGluZ3Mub1ByZXZpb3VzU2VhcmNoLmJSZWdleDsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJLyogVGhpcyB0ZXN0IG1pZ2h0IGJlIGNvbnNpZGVyZWQgaWZmeSBzaW5jZSB0aGUgZnVsbCBvYmplY3QgaXNuJ3QgZ2l2ZW4sIGJ1dCBpdCdzIHJlYXNvbmFibGUgdG8KCSAqIGV4cGVjdCBEYXRhVGFibGVzIHRvIGNvcGUgd2l0aCB0aGlzLiBJdCBzaG91bGQganVzdCBhc3N1bWluZSByZWdleCBmYWxzZQoJICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU2VhcmNoIHRlcm0gb25seSBpbiBvYmplY3QiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkib1NlYXJjaCI6IHsKCQkJCQkic1NlYXJjaCI6ICJNb3ppbGxhIgoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiMSI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJOZXcgc2VhcmNoIHdpbGwga2lsbCBvbGQgb25lIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9UYWJsZS5mbkZpbHRlcigiT3BlcmEiKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICJPcGVyYSA3LjAiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU2VhcmNoIHBsYWluIHRleHQgdGVybSBhbmQgZXNjYXBlIHJlZ2V4IHRydWUiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkJCSJvU2VhcmNoIjogewoJCQkJCSJzU2VhcmNoIjogIkRTIiwKCQkJCQkiYlJlZ2V4IjogZmFsc2UKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIk5pbnRlbmRvIERTIGJyb3dzZXIiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU2VhcmNoIHBsYWluIHRleHQgdGVybSBhbmQgZXNjYXBlIHJlZ2V4IGZhbHNlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkib1NlYXJjaCI6IHsKCQkJCQkic1NlYXJjaCI6ICJPcGVyYSIsCgkJCQkJImJSZWdleCI6IHRydWUKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIk9wZXJhIDcuMCI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTZWFyY2ggcmVnZXggdGV4dCB0ZXJtIGFuZCBlc2NhcGUgcmVnZXggdHJ1ZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJIm9TZWFyY2giOiB7CgkJCQkJInNTZWFyY2giOiAiMS4qIiwKCQkJCQkiYlJlZ2V4IjogZmFsc2UKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gIk5vIG1hdGNoaW5nIHJlY29yZHMgZm91bmQiOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/sAjaxDataProp.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKLyoKICogTk9URTogVGhlcmUgYXJlIHNvbWUgZGlmZmVyZW5jZXMgaW4gdGhpcyB6ZXJvIGNvbmZpZyBzY3JpcHQgZm9yIHNlcnZlci1zaWRlCiAqIHByb2Nlc3NpbmcgY29tcGFyZWQgdG8gdGhlIG90aGVyIGRhdGEgc291cmNlcy4gVGhlIG1haW4gcmVhc29uIGZvciB0aGlzIGlzIHRoZQogKiBkaWZmZXJlbmNlIGluIGhvdyB0aGUgc2VydmVyLXNpZGUgcHJvY2Vzc2luZyBkb2VzIGl0J3MgZmlsdGVyaW5nLiBBbHNvIHRoZQogKiBzb3J0aW5nIHN0YXRlIGlzIGFsd2F5cyByZXNldCBvbiBlYWNoIGRyYXcuCiAqLwpvVGVzdC5mblN0YXJ0KCAiQ3VzdG9tIGRhdGEgcHJvcGVydHkgaW4gcmV0dXJuZWQgQWpheCIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvY3VzdG9tX2RhdGFfcHJvcGVydHkucGhwIiwKCQkic0FqYXhEYXRhUHJvcCI6ICJ0ZXN0IgoJfSApOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiMTAgcm93cyBzaG93biBvbiB0aGUgZmlyc3QgcGFnZSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSAxMDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkluaXRpYWwgc29ydCBvY2N1cmVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDApJykuaHRtbCgpID09ICJHZWNrbyI7IH0KCSk7CgkKCS8qIE5lZWQgdG8gdXNlIHRoZSBXYWl0VGVzdCBmb3Igc29ydGluZyBkdWUgdG8gdGhlIHNldFRpbWVvdXQgZGF0YXRhYmxlcyB1c2VzICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU29ydGluZyAoZmlyc3QgY2xpY2spIG9uIHNlY29uZCBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgKHNlY29uZCBjbGljaykgb24gc2Vjb25kIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIlNlYW1vbmtleSAxLjEiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU29ydGluZyAodGhpcmQgY2xpY2spIG9uIHNlY29uZCBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgKGZpcnN0IGNsaWNrKSBvbiBudW1lcmljIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIi0iOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU29ydGluZyAoc2Vjb25kIGNsaWNrKSBvbiBudW1lcmljIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIjUyMi4xIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgbXVsdGktY29sdW1uIChmaXJzdCBjbGljaykiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDApJykuY2xpY2soKTsKCQkJb0Rpc3BhY2hlci5jbGljayggJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKVswXSwgeyAnc2hpZnQnOiB0cnVlIH0gKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHZhciBiID0gCgkJCSQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDApJykuaHRtbCgpID09ICJHZWNrbyIgJiYgCgkJCSQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJDYW1pbm8gMS4wIjsgcmV0dXJuIGI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTb3J0aW5nIG11bHRpLWNvbHVtbiAtIHNvcnRpbmcgZmlyc3QgY29sdW1uIG9ubHkiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDApJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHZhciBiID0gCgkJCSQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDApJykuaHRtbCgpID09ICJHZWNrbyIgJiYgCgkJCSQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJGaXJlZm94IDEuMCI7IHJldHVybiBiOyB9CgkpOwoJCgkvKiBCYXNpYyBwYWdpbmcgKi8KCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJQYWdpbmcgdG8gc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIk1vemlsbGEgMS4xIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlBhZ2luZyB0byBmaXJzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiRmlyZWZveCAxLjAiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQXR0ZW1wdGluZyB0byBwYWdlIGJhY2sgYmV5b25kIHRoZSBmaXJzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiRmlyZWZveCAxLjAiOyB9CgkpOwoJCgkvKiBDaGFuZ2luZyBsZW5ndGggKi8KCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDaGFuZ2luZyB0YWJsZSBsZW5ndGggdG8gMjUgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzI1JykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMjU7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDaGFuZ2luZyB0YWJsZSBsZW5ndGggdG8gNTAgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzUwJykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gNTA7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDaGFuZ2luZyB0YWJsZSBsZW5ndGggdG8gMTAwIHJlY29yZHMiLAoJCWZ1bmN0aW9uICgpIHsgJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcxMDAnKS5jaGFuZ2UoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSA1NzsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNoYW5naW5nIHRhYmxlIGxlbmd0aCB0byAxMCByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7ICQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnMTAnKS5jaGFuZ2UoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSAxMDsgfQoJKTsKCQoJLyoKCSAqIEluZm9ybWF0aW9uIGVsZW1lbnQKCSAqLwoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiSW5mb3JtYXRpb24gb24gemVybyBjb25maWciLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KAoJCSJJbmZvcm1hdGlvbiBvbiBzZWNvbmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDExIHRvIDIwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KAoJCSJJbmZvcm1hdGlvbiBvbiB0aGlyZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMjEgdG8gMzAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/sAjaxSource.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggInNBamF4U291cmNlIiApOwoKLyogU2FuaXRmeSBjaGVjayByZWFsbHkgLSBhbGwgdGhlIG90aGVyIHRlc3RzIGJsYXN0IHRoaXMgKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNlcnZlciBzaWRlIGlzIG9mZiBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgCgkJCXJldHVybiBvU2V0dGluZ3Muc0FqYXhTb3VyY2UgPT0gIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIjsKCQl9CgkpOwoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/sDom.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggInNEb20iICk7CgovKiBUaGlzIGlzIGdvaW5nIHRvIGJlIGJydXRhbCBvbiB0aGUgYnJvd3NlciEgVGhlcmUgaXMgYSBsb3QgdGhhdCBjYW4gYmUgdGVzdGVkIGhlcmUuLi4gKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkRlZmF1bHQgRE9NIHZhcmFpYmxlIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5zRG9tID09ICJsZnJ0aXAiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRGVmYXVsdCBET00gaW4gZG9jdW1lbnQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgbk5vZGVzID0gJCgnI2RlbW8gZGl2LCAjZGVtbyB0YWJsZScpOwoJCQl2YXIgbldyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV93cmFwcGVyJyk7CgkJCXZhciBuTGVuZ3RoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfbGVuZ3RoJyk7CgkJCXZhciBuRmlsdGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfZmlsdGVyJyk7CgkJCXZhciBuSW5mbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKTsKCQkJdmFyIG5QYWdpbmcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wYWdpbmF0ZScpOwoJCQl2YXIgblRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGUnKTsKCQkJCgkJCXZhciBiUmV0dXJuID0gCgkJCQluTm9kZXNbMF0gPT0gbldyYXBwZXIgJiYKCQkJCW5Ob2Rlc1sxXSA9PSBuTGVuZ3RoICYmCgkJCQluTm9kZXNbMl0gPT0gbkZpbHRlciAmJgoJCQkJbk5vZGVzWzNdID09IG5UYWJsZSAmJgoJCQkJbk5vZGVzWzRdID09IG5JbmZvICYmCgkJCQluTm9kZXNbNV0gPT0gblBhZ2luZzsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNoZWNrIGV4YW1wbGUgMSBpbiBjb2RlIHByb3BhZ2F0ZXMiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkic0RvbSI6ICc8IndyYXBwZXIiZmxpcHQ+JwoJCQl9ICk7CgkJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Muc0RvbSA9PSAnPCJ3cmFwcGVyImZsaXB0Pic7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDaGVjayBleGFtcGxlIDEgaW4gRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGpxTm9kZXMgPSAkKCcjZGVtbyBkaXYsICNkZW1vIHRhYmxlJyk7CgkJCXZhciBuTm9kZXMgPSBbXTsKCQkJCgkJCS8qIFN0cmlwIHRoZSBwYWdpbmcgbm9kZXMgKi8KCQkJZm9yICggdmFyIGk9MCwgaUxlbj1qcU5vZGVzLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJCXsKCQkJCWlmICgganFOb2Rlc1tpXS5nZXRBdHRyaWJ1dGUoJ2lkJykgIT0gImV4YW1wbGVfcHJldmlvdXMiICYmCgkJCQkgICAgIGpxTm9kZXNbaV0uZ2V0QXR0cmlidXRlKCdpZCcpICE9ICJleGFtcGxlX25leHQiICkKCQkJCXsKCQkJCQluTm9kZXMucHVzaCgganFOb2Rlc1tpXSApOwoJCQkJfQoJCQl9CgkJCQoJCQl2YXIgbldyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV93cmFwcGVyJyk7CgkJCXZhciBuTGVuZ3RoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfbGVuZ3RoJyk7CgkJCXZhciBuRmlsdGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfZmlsdGVyJyk7CgkJCXZhciBuSW5mbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKTsKCQkJdmFyIG5QYWdpbmcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wYWdpbmF0ZScpOwoJCQl2YXIgblRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGUnKTsKCQkJdmFyIG5DdXN0b21XcmFwcGVyID0gJCgnZGl2LndyYXBwZXInKVswXTsKCQkJCgkJCXZhciBiUmV0dXJuID0gCgkJCQluTm9kZXNbMF0gPT0gbldyYXBwZXIgJiYKCQkJCW5Ob2Rlc1sxXSA9PSBuQ3VzdG9tV3JhcHBlciAmJgoJCQkJbk5vZGVzWzJdID09IG5GaWx0ZXIgJiYKCQkJCW5Ob2Rlc1szXSA9PSBuTGVuZ3RoICYmCgkJCQluTm9kZXNbNF0gPT0gbkluZm8gJiYKCQkJCW5Ob2Rlc1s1XSA9PSBuUGFnaW5nICYmCgkJCQluTm9kZXNbNl0gPT0gblRhYmxlOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ2hlY2sgZXhhbXBsZSAyIGluIERPTSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkJCSJzRG9tIjogJzxsZjx0PmlwPicKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIganFOb2RlcyA9ICQoJyNkZW1vIGRpdiwgI2RlbW8gdGFibGUnKTsKCQkJdmFyIG5Ob2RlcyA9IFtdOwoJCQl2YXIgbkN1c3RvbVdyYXBwZXJzID0gW10KCQkJCgkJCS8qIFN0cmlwIHRoZSBwYWdpbmcgbm9kZXMgKi8KCQkJZm9yICggdmFyIGk9MCwgaUxlbj1qcU5vZGVzLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJCXsKCQkJCWlmICgganFOb2Rlc1tpXS5nZXRBdHRyaWJ1dGUoJ2lkJykgIT0gImV4YW1wbGVfcHJldmlvdXMiICYmCgkJCQkgICAgIGpxTm9kZXNbaV0uZ2V0QXR0cmlidXRlKCdpZCcpICE9ICJleGFtcGxlX25leHQiICkKCQkJCXsKCQkJCQluTm9kZXMucHVzaCgganFOb2Rlc1tpXSApOwoJCQkJfQoJCQkJCgkJCQkvKiBPbmx5IHRoZSB0d28gY3VzdG9tIGRpdnMgZG9uJ3QgaGF2ZSBjbGFzcyBuYW1lcyAqLwoJCQkJaWYgKCBqcU5vZGVzW2ldLmNsYXNzTmFtZSA9PSAiIiApCgkJCQl7CgkJCQkJbkN1c3RvbVdyYXBwZXJzLnB1c2goIGpxTm9kZXNbaV0gKTsKCQkJCX0KCQkJfQoJCQkKCQkJdmFyIG5XcmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfd3JhcHBlcicpOwoJCQl2YXIgbkxlbmd0aCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2xlbmd0aCcpOwoJCQl2YXIgbkZpbHRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2ZpbHRlcicpOwoJCQl2YXIgbkluZm8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJyk7CgkJCXZhciBuUGFnaW5nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcGFnaW5hdGUnKTsKCQkJdmFyIG5UYWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlJyk7CgkJCQoJCQl2YXIgYlJldHVybiA9IAoJCQkJbk5vZGVzWzBdID09IG5XcmFwcGVyICYmCgkJCQluTm9kZXNbMV0gPT0gbkN1c3RvbVdyYXBwZXJzWzBdICYmCgkJCQluTm9kZXNbMl0gPT0gbkxlbmd0aCAmJgoJCQkJbk5vZGVzWzNdID09IG5GaWx0ZXIgJiYKCQkJCW5Ob2Rlc1s0XSA9PSBuQ3VzdG9tV3JhcHBlcnNbMV0gJiYKCQkJCW5Ob2Rlc1s1XSA9PSBuVGFibGUgJiYKCQkJCW5Ob2Rlc1s2XSA9PSBuSW5mbyAmJgoJCQkJbk5vZGVzWzddID09IG5QYWdpbmc7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDaGVjayBubyBsZW5ndGggZWxlbWVudCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiU2VydmVyU2lkZSI6IHRydWUsCgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL3NlcnZlcl9zaWRlL3NjcmlwdHMvc2VydmVyX3Byb2Nlc3NpbmcucGhwIiwKCQkJCSJzRG9tIjogJ2ZydGlwJwoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBuTm9kZXMgPSAkKCcjZGVtbyBkaXYsICNkZW1vIHRhYmxlJyk7CgkJCXZhciBuV3JhcHBlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3dyYXBwZXInKTsKCQkJdmFyIG5MZW5ndGggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9sZW5ndGgnKTsKCQkJdmFyIG5GaWx0ZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9maWx0ZXInKTsKCQkJdmFyIG5JbmZvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpOwoJCQl2YXIgblBhZ2luZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3BhZ2luYXRlJyk7CgkJCXZhciBuVGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZScpOwoJCQkKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCW5Ob2Rlc1swXSA9PSBuV3JhcHBlciAmJgoJCQkJbnVsbCA9PSBuTGVuZ3RoICYmCgkJCQluTm9kZXNbMV0gPT0gbkZpbHRlciAmJgoJCQkJbk5vZGVzWzJdID09IG5UYWJsZSAmJgoJCQkJbk5vZGVzWzNdID09IG5JbmZvICYmCgkJCQluTm9kZXNbNF0gPT0gblBhZ2luZzsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNoZWNrIG5vIGZpbHRlciBlbGVtZW50IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJInNEb20iOiAnbHJ0aXAnCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIG5Ob2RlcyA9ICQoJyNkZW1vIGRpdiwgI2RlbW8gdGFibGUnKTsKCQkJdmFyIG5XcmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfd3JhcHBlcicpOwoJCQl2YXIgbkxlbmd0aCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2xlbmd0aCcpOwoJCQl2YXIgbkZpbHRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2ZpbHRlcicpOwoJCQl2YXIgbkluZm8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJyk7CgkJCXZhciBuUGFnaW5nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcGFnaW5hdGUnKTsKCQkJdmFyIG5UYWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlJyk7CgkJCQoJCQl2YXIgYlJldHVybiA9IAoJCQkJbk5vZGVzWzBdID09IG5XcmFwcGVyICYmCgkJCQluTm9kZXNbMV0gPT0gbkxlbmd0aCAmJgoJCQkJbnVsbCA9PSBuRmlsdGVyICYmCgkJCQluTm9kZXNbMl0gPT0gblRhYmxlICYmCgkJCQluTm9kZXNbM10gPT0gbkluZm8gJiYKCQkJCW5Ob2Rlc1s0XSA9PSBuUGFnaW5nOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCgkvKiBOb3RlIHdlIGRvbid0IHRlc3QgZm9yIG5vIHRhYmxlIGFzIHRoaXMgaXMgbm90IHN1cHBvcnRlZCAoYW5kIGl0IHdvdWxkIGJlIGZhaXJseSBkYWZ0ISAqLwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ2hlY2sgbm8gaW5mbyBlbGVtZW50IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiLAoJCQkJInNEb20iOiAnbGZydHAnCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIG5Ob2RlcyA9ICQoJyNkZW1vIGRpdiwgI2RlbW8gdGFibGUnKTsKCQkJdmFyIG5XcmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfd3JhcHBlcicpOwoJCQl2YXIgbkxlbmd0aCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2xlbmd0aCcpOwoJCQl2YXIgbkZpbHRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2ZpbHRlcicpOwoJCQl2YXIgbkluZm8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJyk7CgkJCXZhciBuUGFnaW5nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcGFnaW5hdGUnKTsKCQkJdmFyIG5UYWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlJyk7CgkJCQoJCQl2YXIgYlJldHVybiA9IAoJCQkJbk5vZGVzWzBdID09IG5XcmFwcGVyICYmCgkJCQluTm9kZXNbMV0gPT0gbkxlbmd0aCAmJgoJCQkJbk5vZGVzWzJdID09IG5GaWx0ZXIgJiYKCQkJCW5Ob2Rlc1szXSA9PSBuVGFibGUgJiYKCQkJCW51bGwgPT0gbkluZm8gJiYKCQkJCW5Ob2Rlc1s0XSA9PSBuUGFnaW5nOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ2hlY2sgbm8gcGFnaW5nIGVsZW1lbnQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkic0RvbSI6ICdsZnJ0aScKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgbk5vZGVzID0gJCgnI2RlbW8gZGl2LCAjZGVtbyB0YWJsZScpOwoJCQl2YXIgbldyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV93cmFwcGVyJyk7CgkJCXZhciBuTGVuZ3RoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfbGVuZ3RoJyk7CgkJCXZhciBuRmlsdGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfZmlsdGVyJyk7CgkJCXZhciBuSW5mbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKTsKCQkJdmFyIG5QYWdpbmcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wYWdpbmF0ZScpOwoJCQl2YXIgblRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGUnKTsKCQkJCgkJCXZhciBiUmV0dXJuID0gCgkJCQluTm9kZXNbMF0gPT0gbldyYXBwZXIgJiYKCQkJCW5Ob2Rlc1sxXSA9PSBuTGVuZ3RoICYmCgkJCQluTm9kZXNbMl0gPT0gbkZpbHRlciAmJgoJCQkJbk5vZGVzWzNdID09IG5UYWJsZSAmJgoJCQkJbk5vZGVzWzRdID09IG5JbmZvICYmCgkJCQludWxsID09IG5QYWdpbmc7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/sPaginationType.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggInNQYWdpbmF0aW9uVHlwZSIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNoZWNrIHR3byBidXR0b24gcGFnaW5nIGlzIHRoZSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5zUGFnaW5hdGlvblR5cGUgPT0gInR3b19idXR0b24iOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ2hlY2sgY2xhc3MgaXMgYXBwbGllZCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9wYWdpbmF0ZScpLmhhc0NsYXNzKCdwYWdpbmdfdHdvX2J1dHRvbicpOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiVHdvIEEgZWxlbWVudHMgYXJlIGluIHRoZSB3cmFwcGVyIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlX3BhZ2luYXRlIGEnKS5sZW5ndGggPT0gMjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIldlIGhhdmUgdGhlIHByZXZpb3VzIGJ1dHRvbiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wcmV2aW91cycpOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiV2UgaGF2ZSB0aGUgbmV4dCBidXR0b24iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfbmV4dCcpOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUHJldmlvdXMgYnV0dG9uIGlzIGRpc2FibGVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlX3ByZXZpb3VzJykuaGFzQ2xhc3MoJ3BhZ2luYXRlX2Rpc2FibGVkX3ByZXZpb3VzJyk7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJOZXh0IGJ1dHRvbiBpcyBlbmFibGVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlX25leHQnKS5oYXNDbGFzcygncGFnaW5hdGVfZW5hYmxlZF9uZXh0Jyk7IH0KCSk7CgkKCS8qIERvbid0IHRlc3QgcGFnaW5nIC0gdGhhdCdzIGRvbmUgYnkgdGhlIHplcm8gY29uZmlnIHRlc3Qgc2NyaXB0LiAqLwoJCgkKCS8qIFR3byBidXR0b25zIHBhZ2luZyAqLwoJdmFyIGJDb21wbGV0ZSA9IGZhbHNlOwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNhbiBlbmFibGVkIGZ1bGwgbnVtYmVycyBwYWdpbmciLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9zZXJ2ZXJfc2lkZS9zY3JpcHRzL3NlcnZlcl9wcm9jZXNzaW5nLnBocCIsCgkJCQkic1BhZ2luYXRpb25UeXBlIjogImZ1bGxfbnVtYmVycyIsCgkJCQkiZm5Jbml0Q29tcGxldGUiOiBmdW5jdGlvbiAoKSB7CgkJCQkJc2V0VGltZW91dCggZnVuY3Rpb24gKCkgewoJCQkJCQliQ29tcGxldGUgPSB0cnVlOwoJCQkJCX0sIDUwMCApOwoJCQkJfQoJCQl9ICk7CgkJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCWlmICggYkNvbXBsZXRlICkKCQkJCXJldHVybiBvU2V0dGluZ3Muc1BhZ2luYXRpb25UeXBlID09ICJmdWxsX251bWJlcnMiOwoJCQllbHNlCgkJCQlyZXR1cm4gZmFsc2U7CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNoZWNrIGZ1bGwgbnVtYmVycyBjbGFzcyBpcyBhcHBsaWVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlX3BhZ2luYXRlJykuaGFzQ2xhc3MoJ3BhZ2luZ19mdWxsX251bWJlcnMnKTsgfQoJKTsKCQoJCgl2YXIgbkZpcnN0LCBuUHJldmlvdXMsIG5OZXh0LCBuTGFzdDsKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJKdW1wIHRvIGxhc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQluRmlyc3QgPSAkKCdkaXYuZGF0YVRhYmxlc19wYWdpbmF0ZSBhLmZpcnN0Jyk7CgkJCW5QcmV2aW91cyA9ICQoJ2Rpdi5kYXRhVGFibGVzX3BhZ2luYXRlIGEucHJldmlvdXMnKTsKCQkJbk5leHQgPSAkKCdkaXYuZGF0YVRhYmxlc19wYWdpbmF0ZSBhLm5leHQnKTsKCQkJbkxhc3QgPSAkKCdkaXYuZGF0YVRhYmxlc19wYWdpbmF0ZSBhLmxhc3QnKTsKCQkJbkxhc3QuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgNTEgdG8gNTcgb2YgNTcgZW50cmllcyI7CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkdvIHRvIHR3byBwYWdlcyBwcmV2aW91cyIsCgkJZnVuY3Rpb24gKCkgewoJCQluUHJldmlvdXMuY2xpY2soKTsKCQkJblByZXZpb3VzLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDMxIHRvIDQwIG9mIDU3IGVudHJpZXMiOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJOZXh0IChzZWNvbmQgbGFzdCkgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQluTmV4dC5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyA0MSB0byA1MCBvZiA1NyBlbnRyaWVzIjsKCQl9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiSnVtcCB0byBmaXJzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW5GaXJzdC5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/4_server-side/_zero_config.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKLyoKICogTk9URTogVGhlcmUgYXJlIHNvbWUgZGlmZmVyZW5jZXMgaW4gdGhpcyB6ZXJvIGNvbmZpZyBzY3JpcHQgZm9yIHNlcnZlci1zaWRlCiAqIHByb2Nlc3NpbmcgY29tcGFyZWQgdG8gdGhlIG90aGVyIGRhdGEgc291cmNlcy4gVGhlIG1haW4gcmVhc29uIGZvciB0aGlzIGlzIHRoZQogKiBkaWZmZXJlbmNlIGluIGhvdyB0aGUgc2VydmVyLXNpZGUgcHJvY2Vzc2luZyBkb2VzIGl0J3MgZmlsdGVyaW5nLiBBbHNvIHRoZQogKiBzb3J0aW5nIHN0YXRlIGlzIGFsd2F5cyByZXNldCBvbiBlYWNoIGRyYXcuCiAqLwpvVGVzdC5mblN0YXJ0KCAiU2FuaXR5IGNoZWNrcyBmb3IgRGF0YVRhYmxlcyB3aXRoIGRhdGEgZnJvbSBKUyIgKTsKCm9UZXN0LmZuV2FpdFRlc3QoIAoJImpRdWVyeS5kYXRhVGFibGUgZnVuY3Rpb24iLAoJbnVsbCwKCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVvZiBqUXVlcnkoKS5kYXRhVGFibGUgPT0gImZ1bmN0aW9uIjsgfQopOwoKb1Rlc3QuZm5XYWl0VGVzdCgKCSJqUXVlcnkuZGF0YVRhYmxlU2V0dGluZ3Mgc3RvcmFnZSBhcnJheSIsCgludWxsLAoJZnVuY3Rpb24gKCkgeyByZXR1cm4gdHlwZW9mIGpRdWVyeSgpLmRhdGFUYWJsZVNldHRpbmdzID09ICJvYmplY3QiOyB9Cik7CgpvVGVzdC5mbldhaXRUZXN0KAoJImpRdWVyeS5kYXRhVGFibGVFeHQgcGx1Z2luIG9iamVjdCIsCgludWxsLAoJZnVuY3Rpb24gKCkgeyByZXR1cm4gdHlwZW9mIGpRdWVyeSgpLmRhdGFUYWJsZUV4dCA9PSAib2JqZWN0IjsgfQopOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvc2VydmVyX3NpZGUvc2NyaXB0cy9zZXJ2ZXJfcHJvY2Vzc2luZy5waHAiCgl9ICk7CgkKCS8qIEJhc2ljIGNoZWNrcyAqLwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkxlbmd0aCBjaGFuZ2luZyBkaXYgZXhpc3RzIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2xlbmd0aCcpICE9IG51bGw7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJGaWx0ZXJpbmcgZGl2IGV4aXN0cyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9maWx0ZXInKSAhPSBudWxsOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiSW5mb3JtYXRpb24gZGl2IGV4aXN0cyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykgIT0gbnVsbDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlBhZ2luYXRpb24gZGl2IGV4aXN0cyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wYWdpbmF0ZScpICE9IG51bGw7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJQcm9jZXNzaW5nIGRpdiBpcyBvZmYgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wcm9jZXNzaW5nJykgPT0gbnVsbDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIjEwIHJvd3Mgc2hvd24gb24gdGhlIGZpcnN0IHBhZ2UiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMTA7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJJbml0aWFsIHNvcnQgb2NjdXJlZCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiR2Vja28iOyB9CgkpOwoJCgkvKiBOZWVkIHRvIHVzZSB0aGUgV2FpdFRlc3QgZm9yIHNvcnRpbmcgZHVlIHRvIHRoZSBzZXRUaW1lb3V0IGRhdGF0YWJsZXMgdXNlcyAqLwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgKGZpcnN0IGNsaWNrKSBvbiBzZWNvbmQgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTb3J0aW5nIChzZWNvbmQgY2xpY2spIG9uIHNlY29uZCBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJTZWFtb25rZXkgMS4xIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgKHRoaXJkIGNsaWNrKSBvbiBzZWNvbmQgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTb3J0aW5nIChmaXJzdCBjbGljaykgb24gbnVtZXJpYyBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMyknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDMpJykuaHRtbCgpID09ICItIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgKHNlY29uZCBjbGljaykgb24gbnVtZXJpYyBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMyknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDMpJykuaHRtbCgpID09ICI1MjIuMSI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTb3J0aW5nIG11bHRpLWNvbHVtbiAoZmlyc3QgY2xpY2spIiwKCQlmdW5jdGlvbiAoKSB7IAoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgwKScpLmNsaWNrKCk7CgkJCW9EaXNwYWNoZXIuY2xpY2soICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJylbMF0sIHsgJ3NoaWZ0JzogdHJ1ZSB9ICk7IH0sCgkJZnVuY3Rpb24gKCkgeyB2YXIgYiA9IAoJCQkkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiR2Vja28iICYmIAoJCQkkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQ2FtaW5vIDEuMCI7IHJldHVybiBiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU29ydGluZyBtdWx0aS1jb2x1bW4gLSBzb3J0aW5nIGZpcnN0IGNvbHVtbiBvbmx5IiwKCQlmdW5jdGlvbiAoKSB7IAoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgwKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyB2YXIgYiA9IAoJCQkkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiR2Vja28iICYmIAoJCQkkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiRmlyZWZveCAxLjAiOyByZXR1cm4gYjsgfQoJKTsKCQoJLyogQmFzaWMgcGFnaW5nICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUGFnaW5nIHRvIHNlY29uZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJNb3ppbGxhIDEuMSI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJQYWdpbmcgdG8gZmlyc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkZpcmVmb3ggMS4wIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkF0dGVtcHRpbmcgdG8gcGFnZSBiYWNrIGJleW9uZCB0aGUgZmlyc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkZpcmVmb3ggMS4wIjsgfQoJKTsKCQoJLyogQ2hhbmdpbmcgbGVuZ3RoICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ2hhbmdpbmcgdGFibGUgbGVuZ3RoIHRvIDI1IHJlY29yZHMiLAoJCWZ1bmN0aW9uICgpIHsgJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcyNScpLmNoYW5nZSgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDI1OyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ2hhbmdpbmcgdGFibGUgbGVuZ3RoIHRvIDUwIHJlY29yZHMiLAoJCWZ1bmN0aW9uICgpIHsgJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCc1MCcpLmNoYW5nZSgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDUwOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ2hhbmdpbmcgdGFibGUgbGVuZ3RoIHRvIDEwMCByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7ICQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnMTAwJykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gNTc7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDaGFuZ2luZyB0YWJsZSBsZW5ndGggdG8gMTAgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzEwJykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMTA7IH0KCSk7CgkKCS8qCgkgKiBJbmZvcm1hdGlvbiBlbGVtZW50CgkgKi8KCW9UZXN0LmZuV2FpdFRlc3QoCgkJIkluZm9ybWF0aW9uIG9uIHplcm8gY29uZmlnIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiSW5mb3JtYXRpb24gb24gc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAxMSB0byAyMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiSW5mb3JtYXRpb24gb24gdGhpcmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDIxIHRvIDMwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KAoJCSJJbmZvcm1hdGlvbiBvbiBsYXN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgNTEgdG8gNTcgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIkluZm9ybWF0aW9uIGJhY2sgb24gZmlyc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCAyNSByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7ICQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnMjUnKS5jaGFuZ2UoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDEgdG8gMjUgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggMjUgcmVjb3JkcyAtIHNlY29uZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMjYgdG8gNTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggMTAwIHJlY29yZHMgLSBmaXJzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcxMDAnKS5jaGFuZ2UoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMSB0byA1NyBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiSW5mb3JtYXRpb24gYmFjayB0byAxMCByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcxMCcpLmNoYW5nZSgpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciAnV2luJyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIldpbiIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbicgc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMTEgdG8gMjAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyICdXaW4nIGxhc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAzMSB0byAzMSBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbicgYmFjayB0byBmaXJzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciAnV2luJyBzZWNvbmQgcGFnZSAtIHNlY29uZCB0aW1lIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMTEgdG8gMjAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyIGluY3JlYXNlZCB0byAnV2luIDk4JyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIldpbiA5OCIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byA5IG9mIDkgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyIGRlY3JlYXNlZCB0byAnV2luJyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIldpbiIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbicgc2Vjb25kIHBhZ2UgLSB0aGlyZCB0aW1lIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMTEgdG8gMjAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyIHJlbW92ZWQiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCIiKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCQoJLyoKCSAqIEZpbHRlcmluZwoJICovCglvVGVzdC5mbldhaXRUZXN0KAoJCSJGaWx0ZXIgJ1cnIC0gcm93cyIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIlciKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDQpIHRkOmVxKDEpJykuaHRtbCgpID09ICJOZXRzY2FwZSA3LjIiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KAoJCSJGaWx0ZXIgJ1cnIC0gaW5mbyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDQyIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KAoJCSJGaWx0ZXIgJ1dpJyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIldpIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDMyIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KAoJCSJGaWx0ZXIgJ1dpbiciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXaW4iKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIkZpbHRlciAnV2luJyAtIHNvcnRpbmcgY29sdW1uIDEiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICJBT0wgYnJvd3NlciAoQU9MIGRlc2t0b3ApIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiRmlsdGVyICdXaW4nIC0gc29ydGluZyBjb2x1bW4gMSBpbmZvIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIkZpbHRlciAnV2luJyAtIHNvcnRpbmcgY29sdW1uIDEgcmV2ZXJzZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIlNlYW1vbmtleSAxLjEiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KAoJCSJGaWx0ZXIgJ1dpbiBYUCcgLSBtYWludGFpbmcgcmV2ZXJzZSBzb3J0aW5nIGNvbCAxIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2luIFhQIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiSW50ZXJuZXQgRXhwbG9yZXIgNyI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIkZpbHRlciAnV2luIFhQJyAtIHNvcnRpbmcgY29sIDMiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMyknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDMpJykuaHRtbCgpID09ICI2IjsgfQoJKTsKCQoJLyogTm90ZSB0aGUgZmlsdGVyaW5nIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBET00gc2luY2UgdGhlIHNlcnZlciBkb2Vzbid0IGRvCgkgKiAic21hcnQgZmlsdGVyaW5nIiBsaWtlIHRoZSBjbGllbnQgc2lkZSBkb2VzCgkgKi8KCW9UZXN0LmZuV2FpdFRlc3QoCgkJIkZpbHRlciAnV2luIFhQJyAtIHNvcnRpbmcgY29sIDMgLSByZXZlcnNlZCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIjciOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KAoJCSJGaWx0ZXIgJ1dpbicgLSBzb3J0aW5nIGNvbCAzIC0gcmV2ZXJzZWQgaW5mbyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDIgb2YgMiBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiRmlsdGVyICdub3RoaW5naGVyZSciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJub3RoaW5naGVyZSIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gCgkJCSJObyBtYXRjaGluZyByZWNvcmRzIGZvdW5kIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiRmlsdGVyICdub3RoaW5naGVyZScgLSBpbmZvIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDAgdG8gMCBvZiAwIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KAoJCSJGaWx0ZXIgYmFjayB0byBibGFuayBhbmQgMXN0IGNvbHVtbiBzb3J0aW5nIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiIikua2V5dXAoKTsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMCknKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/aaSorting.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFhU29ydGluZyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJImFvQ29sdW1ucyI6IFsKCQkJeyAibURhdGEiOiAiZW5naW5lIiB9LAoJCQl7ICJtRGF0YSI6ICJicm93c2VyIiB9LAoJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIgfSwKCQkJeyAibURhdGEiOiAidmVyc2lvbiIgfSwKCQkJeyAibURhdGEiOiAiZ3JhZGUiIH0KCQldCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkRlZmF1bHQgc29ydGluZyBpcyBzaW5nbGUgY29sdW1uIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuIG9TZXR0aW5ncy5hYVNvcnRpbmcubGVuZ3RoID09IDEgJiYgdHlwZW9mIG9TZXR0aW5ncy5hYVNvcnRpbmdbMF0gPT0gJ29iamVjdCc7CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkRlZmF1bHQgc29ydGluZyBpcyBmaXJzdCBjb2x1bW4gYXNjIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuIG9TZXR0aW5ncy5hYVNvcnRpbmdbMF0ubGVuZ3RoID09IDMgJiYgb1NldHRpbmdzLmFhU29ydGluZ1swXVswXSA9PSAwICYmCgkJCQlvU2V0dGluZ3MuYWFTb3J0aW5nWzBdWzFdID09ICdhc2MnOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTb3J0aW5nIGlzIGFwcGxpZWQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gIkdlY2tvIjsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ3VzdG9tIHNvcnRpbmcgb24gc2luZ2xlIHN0cmluZyBjb2x1bW4gYXNjIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIgfSwKCQkJCQl7ICJtRGF0YSI6ICJicm93c2VyIiB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiIH0KCQkJCV0sCgkJCQkiYWFTb3J0aW5nIjogW1snMScsJ2FzYyddXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkN1c3RvbSBzb3J0aW5nIG9uIHNpbmdsZSBzdHJpbmcgY29sdW1uIGRlc2MiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiIH0sCgkJCQkJeyAibURhdGEiOiAicGxhdGZvcm0iIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIgfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIgfQoJCQkJXSwKCQkJCSJhYVNvcnRpbmciOiBbWycxJywnZGVzYyddXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiU2VhbW9ua2V5IDEuMSI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkN1c3RvbSBzb3J0aW5nIG9uIHNpbmdsZSBpbnQgY29sdW1uIGFzYyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIgfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIgfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiB9CgkJCQldLAoJCQkJImFhU29ydGluZyI6IFtbJzEnLCdhc2MnXV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIi0iOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDdXN0b20gc29ydGluZyBvbiBzaW5nbGUgaW50IGNvbHVtbiBkZXNjIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIgfSwKCQkJCQl7ICJtRGF0YSI6ICJicm93c2VyIiB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiIH0KCQkJCV0sCgkJCQkiYWFTb3J0aW5nIjogW1snMScsJ2Rlc2MnXV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIlNlYW1vbmtleSAxLjEiOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJNdWx0aS1jb2x1bW4gc29ydGluZyAoMiBjb2x1bW4pIC0gc3RyaW5nIGFzYyAvIHN0cmluZyBhc2MiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiIH0sCgkJCQkJeyAibURhdGEiOiAicGxhdGZvcm0iIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIgfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIgfQoJCQkJXSwKCQkJCSJhYVNvcnRpbmciOiBbWycwJywnYXNjJ10sIFsnMScsJ2FzYyddXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQ2FtaW5vIDEuMCI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJNdWx0aS1jb2x1bW4gc29ydGluZyAoMiBjb2x1bW4pIC0gc3RyaW5nIGFzYyAvIHN0cmluZyBkZXNjIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIgfSwKCQkJCQl7ICJtRGF0YSI6ICJicm93c2VyIiB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiIH0KCQkJCV0sCgkJCQkiYWFTb3J0aW5nIjogW1snMCcsJ2FzYyddLCBbJzEnLCdkZXNjJ11dCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJTZWFtb25rZXkgMS4xIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk11bHRpLWNvbHVtbiBzb3J0aW5nICgyIGNvbHVtbikgLSBzdHJpbmcgZGVzYyAvIHN0cmluZyBhc2MiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiIH0sCgkJCQkJeyAibURhdGEiOiAicGxhdGZvcm0iIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIgfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIgfQoJCQkJXSwKCQkJCSJhYVNvcnRpbmciOiBbWycwJywnZGVzYyddLCBbJzEnLCdhc2MnXV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gImlQb2QgVG91Y2ggLyBpUGhvbmUiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTXVsdGktY29sdW1uIHNvcnRpbmcgKDIgY29sdW1uKSAtIHN0cmluZyBkZXNjIC8gc3RyaW5nIGRlc2MiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiIH0sCgkJCQkJeyAibURhdGEiOiAicGxhdGZvcm0iIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIgfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIgfQoJCQkJXSwKCQkJCSJhYVNvcnRpbmciOiBbWycwJywnZGVzYyddLCBbJzEnLCdkZXNjJ11dCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJTYWZhcmkgMy4wIjsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTXVsdGktY29sdW1uIHNvcnRpbmcgKDIgY29sdW1uKSAtIHN0cmluZyBhc2MgLyBpbnQgYXNjIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIgfSwKCQkJCQl7ICJtRGF0YSI6ICJicm93c2VyIiB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiIH0KCQkJCV0sCgkJCQkiYWFTb3J0aW5nIjogW1snMCcsJ2FzYyddLCBbJzMnLCdhc2MnXV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIjEiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTXVsdGktY29sdW1uIHNvcnRpbmcgKDIgY29sdW1uKSAtIHN0cmluZyBhc2MgLyBpbnQgZGVzYyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIgfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIgfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiB9CgkJCQldLAoJCQkJImFhU29ydGluZyI6IFtbJzAnLCdhc2MnXSwgWyczJywnZGVzYyddXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiMS45IjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk11bHRpLWNvbHVtbiBzb3J0aW5nICgyIGNvbHVtbikgLSBzdHJpbmcgZGVzYyAvIGludCBhc2MiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiIH0sCgkJCQkJeyAibURhdGEiOiAicGxhdGZvcm0iIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIgfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIgfQoJCQkJXSwKCQkJCSJhYVNvcnRpbmciOiBbWycwJywnZGVzYyddLCBbJzMnLCdhc2MnXV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIjEyNS41IjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk11bHRpLWNvbHVtbiBzb3J0aW5nICgyIGNvbHVtbikgLSBzdHJpbmcgZGVzYyAvIGludCBkZXNjIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIgfSwKCQkJCQl7ICJtRGF0YSI6ICJicm93c2VyIiB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiIH0KCQkJCV0sCgkJCQkiYWFTb3J0aW5nIjogW1snMCcsJ2Rlc2MnXSwgWyczJywnZGVzYyddXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiNTIyLjEiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTXVsdGktY29sdW1uIHNvcnRpbmcgKDMgY29sdW1uKSAtIHN0cmluZyBhc2MgLyBpbnQgYXNjIC8gc3RyaW5nIGFzYyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIgfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIgfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiB9CgkJCQldLAoJCQkJImFhU29ydGluZyI6IFtbJzAnLCdhc2MnXSwgWyczJywnYXNjJ10sIFsnMScsJ2FzYyddXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSg3KSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiRmlyZWZveCAxLjAiOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/aaSortingFixed.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFhU29ydGluZ0ZpeGVkIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkiYW9Db2x1bW5zIjogWwoJCQl7ICJtRGF0YSI6ICJlbmdpbmUiIH0sCgkJCXsgIm1EYXRhIjogImJyb3dzZXIiIH0sCgkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiB9LAoJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiB9LAoJCQl7ICJtRGF0YSI6ICJncmFkZSIgfQoJCV0KCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTm8gZml4ZWQgc29ydGluZyBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuIG9TZXR0aW5ncy5hYVNvcnRpbmdGaXhlZCA9PSBudWxsOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkZpeGVkIHNvcnRpbmcgb24gZmlyc3QgY29sdW1uIChzdHJpbmcvYXNjKSB3aXRoIHVzZXIgc29ydGluZyBvbiBzZWNvbmQgY29sdW1uIChzdHJpbmcvYXNjKSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIgfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIgfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiB9CgkJCQldLAoJCQkJImFhU29ydGluZ0ZpeGVkIjogW1snMCcsJ2FzYyddXSwKCQkJCSJmbkluaXRDb21wbGV0ZSI6IGZ1bmN0aW9uICgpIHsKCQkJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7CgkJCQl9CgkJCX0gKTsKCQkJLy8KCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJDYW1pbm8gMS4wIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkZpeGVkIHNvcnRpbmcgb24gZmlyc3QgY29sdW1uIChzdHJpbmcvYXNjKSB3aXRoIHVzZXIgc29ydGluZyBvbiBzZWNvbmQgY29sdW1uIChzdHJpbmcvZGVzYykiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIlNlYW1vbmtleSAxLjEiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRml4ZWQgc29ydGluZyBvbiBmb3VydGggY29sdW1uIChpbnQvYXNjKSB3aXRoIHVzZXIgc29ydGluZyBvbiBzZWNvbmQgY29sdW1uIChzdHJpbmcvYXNjKSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIgfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIgfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiB9CgkJCQldLAoJCQkJImFhU29ydGluZ0ZpeGVkIjogW1snMycsJ2FzYyddXQoJCQl9ICk7CgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkZpeGVkIHNvcnRpbmcgb24gZm91cnRoIGNvbHVtbiAoaW50L2FzYykgd2l0aCB1c2VyIHNvcnRpbmcgb24gc2Vjb25kIGNvbHVtbiAoc3RyaW5nL2Rlc2MpIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJQU1AgYnJvd3NlciI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bSearchable.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5iU2VhY2hhYmxlIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkiYW9Db2x1bW5zIjogWwoJCQl7ICJtRGF0YSI6ICJlbmdpbmUiIH0sCgkJCXsgIm1EYXRhIjogImJyb3dzZXIiIH0sCgkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiB9LAoJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiB9LAoJCQl7ICJtRGF0YSI6ICJncmFkZSIgfQoJCV0KCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ29sdW1ucyBhcmUgc2VhcmNoYWJsZSBieSBkZWZhdWx0IiwKCQlmdW5jdGlvbiAoKSB7IG9UYWJsZS5mbkZpbHRlcigiQ2FtaW5vIik7IH0sCgkJZnVuY3Rpb24gKCkgewoJCQlpZiAoICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJylbMF0gKQoJCQkJcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpLm1hdGNoKC9DYW1pbm8vKTsKCQkJZWxzZQoJCQkJcmV0dXJuIG51bGw7CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkRpc2FibGluZyBzb3J0aW5nIG9uIGEgY29sdW1uIHJlbW92ZXMgaXQgZnJvbSB0aGUgZ2xvYmFsIGZpbHRlciIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIsICJiU2VhcmNoYWJsZSI6IGZhbHNlIH0sCgkJCQkJeyAibURhdGEiOiAicGxhdGZvcm0iIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIgfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIgfQoJCQkJXQoJCQl9ICk7CgkJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJCW9UYWJsZS5mbkZpbHRlcigiQ2FtaW5vIik7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiTm8gbWF0Y2hpbmcgcmVjb3JkcyBmb3VuZCI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJEaXNhYmxlZCBvbiBvbmUgY29sdW1uIGhhcyBubyBlZmZlY3Qgb24gb3RoZXIgY29sdW1ucyIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUuZm5GaWx0ZXIoIldlYmtpdCIpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09ICJXZWJraXQiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRGlzYWJsZSBmaWx0ZXJpbmcgb24gbXVsdGlwbGUgY29sdW1ucyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiLCAiYlNlYXJjaGFibGUiOiBmYWxzZSB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiYlNlYXJjaGFibGUiOiBmYWxzZSB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiIH0KCQkJCV0KCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCQlvVGFibGUuZm5GaWx0ZXIoIldlYmtpdCIpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gIk5vIG1hdGNoaW5nIHJlY29yZHMgZm91bmQiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRmlsdGVyIG9uIHNlY29uZCBkaXNhYmxlZCBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgb1RhYmxlLmZuRmlsdGVyKCJDYW1pbm8iKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiTm8gbWF0Y2hpbmcgcmVjb3JkcyBmb3VuZCI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bSortable.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5iU29ydGFibGUiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCSJhb0NvbHVtbnMiOiBbCgkJCXsgIm1EYXRhIjogImVuZ2luZSIgfSwKCQkJeyAibURhdGEiOiAiYnJvd3NlciIgfSwKCQkJeyAibURhdGEiOiAicGxhdGZvcm0iIH0sCgkJCXsgIm1EYXRhIjogInZlcnNpb24iIH0sCgkJCXsgIm1EYXRhIjogImdyYWRlIiB9CgkJXQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJBbGwgY29sdW1ucyBhcmUgc29ydGFibGUgYnkgZGVmYXVsdCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ2FuIGRpc2FibGUgc29ydGluZyBmcm9tIG9uZSBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiYlNvcnRhYmxlIjogZmFsc2UgfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIgfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiB9CgkJCQldCgkJCX0gKTsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgIT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRGlzYWJsZWQgY29sdW1uIGhhcyBubyBzb3J0aW5nIGNsYXNzIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuaGFzQ2xhc3MoInNvcnRpbmdfYXNjIikgPT0gZmFsc2U7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJPdGhlciBjb2x1bW5zIGNhbiBzdGlsbCBzb3J0IiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDQpJykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoNCknKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoNCknKS5odG1sKCkgPT0gIlgiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRGlzYWJsZSBzb3J0aW5nIG9uIG11bHRpcGxlIGNvbHVtbnMgLSBubyBzb3J0aW5nIGNsYXNzZXMiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiYlNvcnRhYmxlIjogZmFsc2UgfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIgfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiwgImJTb3J0YWJsZSI6IGZhbHNlIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiIH0KCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYlJldHVybiA9IAoJCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5oYXNDbGFzcygic29ydGluZyIpIHx8CgkJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmhhc0NsYXNzKCJzb3J0aW5nIikKCQkJcmV0dXJuIGJSZXR1cm4gPT0gZmFsc2U7CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgb24gZGlzYWJsZWQgY29sdW1uIDEgaGFzIG5vIGVmZmVjdCIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSAhPSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTb3J0aW5nIG9uIGRpc2FibGVkIGNvbHVtbiAyIGhhcyBubyBlZmZlY3QiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMyknKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMyknKS5odG1sKCkgIT0gIi0iOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU2Vjb25kIHNvcnQgb24gZGlzYWJsZWQgY29sdW1uIDIgaGFzIG5vIGVmZmVjdCIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgzKScpLmh0bWwoKSAhPSAiLSI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJFdmVuIHdpdGggbXVsdGlwbGUgZGlzYWJsZWQgc29ydGluZyBjb2x1bW5zIG90aGVyIGNvbHVtbnMgY2FuIHN0aWxsIHNvcnQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoNCknKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSg0KScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSg0KScpLmh0bWwoKSA9PSAiWCI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bUseRendered.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5iVXNlUmVuZGVyZWQiICk7CgovKiBiVXNlUmVuZGVyZWQgaXMgdXNlZCB0byBhbHRlciBzb3J0aW5nIGRhdGEsIGlmIGZhbHNlIHRoZW4gdGhlIG9yaWdpbmFsIGRhdGEgaXMgdXNlZCBmb3IKICogc29ydGluZyByYXRoZXIgdGhhbiB0aGUgcmVuZGVyZWQgZGF0YQogKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG1UbXAgPSAwOwoJCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkiYW9Db2x1bW5zIjogWwoJCQl7ICJtRGF0YSI6ICJlbmdpbmUiIH0sCgkJCXsKCQkJCSJtRGF0YSI6ICJicm93c2VyIiwKCQkJCSJmblJlbmRlciI6IGZ1bmN0aW9uIChhKSB7CgkJCQkJaWYgKCBtVG1wID09IDAgKSB7CgkJCQkJCW1UbXArKzsKCQkJCQkJcmV0dXJuICJhYWEiOwoJCQkJCX0gZWxzZQoJCQkJCQlyZXR1cm4gYS5hRGF0YVsnYnJvd3NlciddOwoJCQkJfQoJCQl9LAoJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIgfSwKCQkJeyAibURhdGEiOiAidmVyc2lvbiIgfSwKCQkJeyAibURhdGEiOiAiZ3JhZGUiIH0KCQldCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkRlZmF1bHQgZm9yIGJVc2VSZW5kZXJlZCBpcyB0cnVlIC0gcmVuZGVyZWQgZGF0YSBpcyB1c2VkIGZvciBzb3J0aW5nIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAnYWFhJzsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIldoZW4gYlVzZVJlbmRlcmVkIGlzIGZhbHNlLCBvcmlnaW5hbCBkYXRhIGlzIHVzZWQgZm9yIHNvcnRpbmciLAoJCWZ1bmN0aW9uICgpIHsKCQkJbVRtcCA9IDA7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIgfSwKCQkJCQl7IAoJCQkJCQkibURhdGEiOiAiYnJvd3NlciIsCgkJCQkJCSJiVXNlUmVuZGVyZWQiOiBmYWxzZSwKCQkJCQkJImZuUmVuZGVyIjogZnVuY3Rpb24gKGEpIHsKCQkJCQkJCWlmICggbVRtcCA9PSAwICkgewoJCQkJCQkJCW1UbXArKzsKCQkJCQkJCQlyZXR1cm4gImFhYSI7CgkJCQkJCQl9IGVsc2UgewoJCQkJCQkJCXJldHVybiBhLmFEYXRhWydicm93c2VyJ107CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQl9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiIH0KCQkJCV0KCQkJfSApOwoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAnQWxsIG90aGVycyc7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJImJVc2VSZW5kZXJlZCBzZXQgdG8gZmFsc2Ugb24gb25lIGNvbHVtbnMgYW5kIHRydWUgKGRlZmF1bHQpIG9uIHR3byBvdGhlcnMiLAoJCWZ1bmN0aW9uICgpIHsKCQkJbVRtcCA9IDA7CgkJCXZhciBtVG1wMiA9IDA7CgkJCXZhciBtVG1wMyA9IDA7CgkJCQoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQl7CgkJCQkJCSJtRGF0YSI6ICJlbmdpbmUiLAoJCQkJCQkiZm5SZW5kZXIiOiBmdW5jdGlvbiAoYSkgewoJCQkJCQkJaWYgKCBtVG1wID09IDAgKSB7CgkJCQkJCQkJbVRtcCsrOwoJCQkJCQkJCXJldHVybiAiYWFhMSI7CgkJCQkJCQl9IGVsc2UgewoJCQkJCQkJCXJldHVybiBhLmFEYXRhWydlbmdpbmUnXTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCX0sCgkJCQkJeyAKCQkJCQkJIm1EYXRhIjogImJyb3dzZXIiLAoJCQkJCQkiYlVzZVJlbmRlcmVkIjogZmFsc2UsCgkJCQkJCSJmblJlbmRlciI6IGZ1bmN0aW9uIChhKSB7CgkJCQkJCQlpZiAoIG1UbXAyID09IDAgKSB7CgkJCQkJCQkJbVRtcDIrKzsKCQkJCQkJCQlyZXR1cm4gImFhYTIiOwoJCQkJCQkJfSBlbHNlIHsKCQkJCQkJCQlyZXR1cm4gYS5hRGF0YVsnYnJvd3NlciddOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfSwKCQkJCQl7CgkJCQkJCSJtRGF0YSI6ICJwbGF0Zm9ybSIsCgkJCQkJCSJmblJlbmRlciI6IGZ1bmN0aW9uIChhKSB7CgkJCQkJCQlpZiAoIG1UbXAzID09IDAgKSB7CgkJCQkJCQkJbVRtcDMrKzsKCQkJCQkJCQlyZXR1cm4gInp6ejMiOwoJCQkJCQkJfSBlbHNlIHsKCQkJCQkJCQlyZXR1cm4gYS5hRGF0YVsncGxhdGZvcm0nXTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCX0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIgfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIgfQoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAnYWFhMSc7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJNdWx0aS1jb2x1bW4gcmVuZGVyaW5nIC0gMm5kIGNvbHVtbiBzb3J0aW5nIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAnQWxsIG90aGVycyc7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJNdWx0aS1jb2x1bW4gcmVuZGVyaW5nIC0gM3JkIGNvbHVtbiBzb3J0aW5nIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDIpJykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMiknKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMiknKS5odG1sKCkgPT0gJ3p6ejMnOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTXVsdGktY29sdW1uIHJlbmRlcmluZyAtIDR0aCBjb2x1bW4gc29ydGluZyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gJy0nOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTXVsdGktY29sdW1uIHJlbmRlcmluZyAtIDV0aCBjb2x1bW4gc29ydGluZyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSg0KScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoNCknKS5odG1sKCkgPT0gJ0EnOyB9CgkpOwoJCgkKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bVisible.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5iVmlzaWJsZSIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJImFvQ29sdW1ucyI6IFsKCQkJeyAibURhdGEiOiAiZW5naW5lIiB9LAoJCQl7ICJtRGF0YSI6ICJicm93c2VyIiB9LAoJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIgfSwKCQkJeyAibURhdGEiOiAidmVyc2lvbiIgfSwKCQkJeyAibURhdGEiOiAiZ3JhZGUiIH0KCQldCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkFsbCBjb2x1bW5zIGFyZSB2aXNpYmxlIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQnKS5sZW5ndGggPT0gNTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNhbiBoaWRlIG9uZSBjb2x1bW4gYW5kIGl0IHJlbW92ZXMgdGQgY29sdW1uIGZyb20gRE9NIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIgfSwKCQkJCQl7ICJtRGF0YSI6ICJicm93c2VyIiwgImJWaXNpYmxlIjogZmFsc2UgfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIgfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiB9CgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkJykubGVuZ3RoID09IDQ7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDYW4gaGlkZSBvbmUgY29sdW1uIGFuZCBpdCByZW1vdmVzIHRoZWFkIHRoIGNvbHVtbiBmcm9tIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSgwKSB0aCcpLmxlbmd0aCA9PSA0OyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiVGhlIGNvcnJlY3QgdGhlYWQgY29sdW1uIGhhcyBiZWVuIGhpZGRlbiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBqcU5vZGVzID0gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGgnKTsKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCWpxTm9kZXNbMF0uaW5uZXJIVE1MID09ICJSZW5kZXJpbmcgZW5naW5lIiAmJgoJCQkJanFOb2Rlc1sxXS5pbm5lckhUTUwgPT0gIlBsYXRmb3JtKHMpIiAmJgoJCQkJanFOb2Rlc1syXS5pbm5lckhUTUwgPT0gIkVuZ2luZSB2ZXJzaW9uIiAmJgoJCQkJanFOb2Rlc1szXS5pbm5lckhUTUwgPT0gIkNTUyBncmFkZSI7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJUaGUgY29ycmVjdCB0Ym9keSBjb2x1bW4gaGFzIGJlZW4gaGlkZGVuIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9EaXNwYWNoZXIuY2xpY2soICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJylbMF0sIHsgJ3NoaWZ0JzogdHJ1ZSB9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBqcU5vZGVzID0gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQnKTsKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCWpxTm9kZXNbMF0uaW5uZXJIVE1MID09ICJHZWNrbyIgJiYKCQkJCWpxTm9kZXNbMV0uaW5uZXJIVE1MID09ICJHbm9tZSIgJiYKCQkJCWpxTm9kZXNbMl0uaW5uZXJIVE1MID09ICIxLjgiICYmCgkJCQlqcU5vZGVzWzNdLmlubmVySFRNTCA9PSAiQSI7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNhbiBoaWRlIG11bHRpcGxlIGNvbHVtbnMgYW5kIGl0IHJlbW92ZXMgdGQgY29sdW1uIGZyb20gRE9NIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIgfSwKCQkJCQl7ICJtRGF0YSI6ICJicm93c2VyIiwgImJWaXNpYmxlIjogZmFsc2UgfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIsICJiVmlzaWJsZSI6IGZhbHNlIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIgfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIsICJiVmlzaWJsZSI6IGZhbHNlIH0KCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQnKS5sZW5ndGggPT0gMjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk11bHRpcGxlIGhpZGUgLSByZW1vdmVzIHRoZWFkIHRoIGNvbHVtbiBmcm9tIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSgwKSB0aCcpLmxlbmd0aCA9PSAyOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTXVsdGlwbGUgaGlkZSAtIHRoZSBjb3JyZWN0IHRoZWFkIGNvbHVtbnMgaGF2ZSBiZWVuIGhpZGRlbiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBqcU5vZGVzID0gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGgnKTsKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCWpxTm9kZXNbMF0uaW5uZXJIVE1MID09ICJSZW5kZXJpbmcgZW5naW5lIiAmJgoJCQkJanFOb2Rlc1sxXS5pbm5lckhUTUwgPT0gIkVuZ2luZSB2ZXJzaW9uIgoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTXVsdGlwbGUgaGlkZSAtIHRoZSBjb3JyZWN0IHRib2R5IGNvbHVtbnMgaGF2ZSBiZWVuIGhpZGRlbiIsCgkJZnVuY3Rpb24gKCkgewoJCQlvRGlzcGFjaGVyLmNsaWNrKCAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpWzBdLCB7ICdzaGlmdCc6IHRydWUgfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIganFOb2RlcyA9ICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkJyk7CgkJCXZhciBiUmV0dXJuID0gCgkJCQlqcU5vZGVzWzBdLmlubmVySFRNTCA9PSAiR2Vja28iICYmCgkJCQlqcU5vZGVzWzFdLmlubmVySFRNTCA9PSAiMSIKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/aoColumns.fnRender.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5mblJlbmRlciIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG1UbXAgPSAwOwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJImFvQ29sdW1ucyI6IFsKCQkJeyAibURhdGEiOiAiZW5naW5lIiB9LAoJCQl7CgkJCQkibURhdGEiOiAiYnJvd3NlciIsCgkJCQkiZm5SZW5kZXIiOiBmdW5jdGlvbiAoYSkgewoJCQkJCW1UbXArKzsKCQkJCQlyZXR1cm4gYS5hRGF0YVsnYnJvd3NlciddOwoJCQkJfQoJCQl9LAoJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIgfSwKCQkJeyAibURhdGEiOiAidmVyc2lvbiIgfSwKCQkJeyAibURhdGEiOiAiZ3JhZGUiIH0KCQldCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNpbmdsZSBjb2x1bW4gLSBmblJlbmRlciBpcyBjYWxsZWQgdHdpY2UgZm9yIGVhY2ggcm93IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1UbXAgPT0gNTc7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDb25maXJtIHRoYXQgZm5SZW5kZXIgcGFzc2VzIHR3byBhcmd1bWVudHMgd2l0aCBmb3VyIHBhcmFtZXRlcnMiLAoJCWZ1bmN0aW9uICgpIHsKCQkJbVRtcCA9IHRydWU7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIgfSwKCQkJCQl7IAoJCQkJCQkiZm5SZW5kZXIiOiBmdW5jdGlvbiAoYSkgewoJCQkJCQkJaWYgKCBhcmd1bWVudHMubGVuZ3RoICE9IDIgfHwgdHlwZW9mIGEuaURhdGFSb3c9PSd1bmRlZmluZWQnIHx8CgkJCQkJCQkgCXR5cGVvZiBhLmlEYXRhQ29sdW1uPT0ndW5kZWZpbmVkJyB8fCB0eXBlb2YgYS5hRGF0YT09J3VuZGVmaW5lZCcgfHwKCQkJCQkJCSAJdHlwZW9mIGEubURhdGE9PSd1bmRlZmluZWQnICkKCQkJCQkJCXsKCQkJCQkJCQltVG1wID0gZmFsc2U7CgkJCQkJCQl9CgkJCQkJCQlyZXR1cm4gYS5hRGF0YVsnYnJvd3NlciddOwoJCQkJCQl9LAoJCQkJCQkibURhdGEiOiAiYnJvd3NlciIKCQkJCQl9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiIH0KCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVRtcDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJImZuUmVuZGVyIGlEYXRhQ29sdW1uIGlzIHRoZSBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsKCQkJbVRtcCA9IHRydWU7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIgfSwKCQkJCQl7CgkJCQkJCSJtRGF0YSI6ICJicm93c2VyIiwKCQkJCQkJImZuUmVuZGVyIjogZnVuY3Rpb24gKGEpIHsKCQkJCQkJCWlmICggYS5pRGF0YUNvbHVtbiAhPSAxICkKCQkJCQkJCXsKCQkJCQkJCQltVG1wID0gZmFsc2U7CgkJCQkJCQl9CgkJCQkJCQlyZXR1cm4gYS5hRGF0YVsnYnJvd3NlciddOwoJCQkJCQl9CgkJCQkJfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIgfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiB9CgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1UbXA7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJmblJlbmRlciBhRGF0YSBpcyBkYXRhIGFycmF5IG9mIGNvcnJlY3Qgc2l6ZSIsCgkJZnVuY3Rpb24gKCkgewoJCQltVG1wID0gdHJ1ZTsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiB9LAoJCQkJCXsKCQkJCQkJIm1EYXRhIjogImJyb3dzZXIiLAoJCQkJCQkiZm5SZW5kZXIiOiBmdW5jdGlvbiAoYSkgewoJCQkJCQkJaWYgKCBhLmFEYXRhLmxlbmd0aCAhPSA1ICkKCQkJCQkJCXsKCQkJCQkJCQltVG1wID0gZmFsc2U7CgkJCQkJCQl9CgkJCQkJCQlyZXR1cm4gYS5hRGF0YVsnYnJvd3NlciddOwoJCQkJCQl9CgkJCQkJfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIgfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiB9CgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1UbXA7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJQYXNzZWQgYmFjayBkYXRhIGlzIHB1dCBpbnRvIHRoZSBET00iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiB9LAoJCQkJCXsKCQkJCQkJIm1EYXRhIjogImJyb3dzZXIiLAoJCQkJCQkiZm5SZW5kZXIiOiBmdW5jdGlvbiAoYSkgewoJCQkJCQkJcmV0dXJuICd1bml0dGVzdCc7CgkJCQkJCX0KCQkJCQl9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiIH0KCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gJ3VuaXR0ZXN0JzsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlBhc3NlZCBiYWNrIGRhdGEgaXMgcHV0IGludG8gdGhlIERPTSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIgfSwKCQkJCQl7IAoJCQkJCQkibURhdGEiOiAicGxhdGZvcm0iLAoJCQkJCQkiZm5SZW5kZXIiOiBmdW5jdGlvbiAoYSkgewoJCQkJCQkJcmV0dXJuICd1bml0dGVzdDEnOwoJCQkJCQl9CgkJCQkJfSwKCQkJCQl7IAoJCQkJCQkibURhdGEiOiAidmVyc2lvbiIsCgkJCQkJCSJmblJlbmRlciI6IGZ1bmN0aW9uIChhKSB7CgkJCQkJCQlyZXR1cm4gJ3VuaXR0ZXN0Mic7CgkJCQkJCX0KCQkJCQl9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiB9CgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDIpJykuaHRtbCgpID09ICd1bml0dGVzdDEnICYmCgkJCQkkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgzKScpLmh0bWwoKSA9PSAndW5pdHRlc3QyJzsKCQkJcmV0dXJuIGJSZXR1cm47IH0KCSk7CgkKCQoJCgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/aoColumns.iDataSort.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5pRGF0YVNvcnQiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogU2hvdWxkIGtub3cgdGhhdCBzb3J0aW5nIGFscmVhZHkgd29ya3MgYnkgZGVmYXVsdCBmcm9tIG90aGVyIHRlc3RzLCBzbyB3ZSBjYW4ganVtcAoJICogcmlnaHQgaW4gaGVyZQoJICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkiYW9Db2x1bW5zIjogWwoJCQl7ICJtRGF0YSI6ICJlbmdpbmUiIH0sCgkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiaURhdGFTb3J0IjogNCB9LAoJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIgfSwKCQkJeyAibURhdGEiOiAidmVyc2lvbiIgfSwKCQkJeyAibURhdGEiOiAiZ3JhZGUiIH0KCQldCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgb24gZmlyc3QgY29sdW1uIGlzIHVuZWZmZWN0ZWQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gJ0dlY2tvJzsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgb24gc2Vjb25kIGNvbHVtbiBpcyB0aGUgb3JkZXIgb2YgdGhlIGZpZnRoIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSg0KScpLmh0bWwoKSA9PSAnQSc7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJSZXNlcnZlIHNvcnRpbmcgb24gc2Vjb25kIGNvbHVtbiB1c2VzIGZpZnRoIGNvbHVtbiBhcyB3ZWxsIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSg0KScpLmh0bWwoKSA9PSAnWCc7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTb3J0aW5nIG9uIDV0aCBjb2x1bW4gcmV0YWlucyBpdCdzIG93biBzb3J0aW5nIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDQpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSg0KScpLmh0bWwoKSA9PSAnQSc7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlVzZSAybmQgY29sIGZvciBzb3J0aW5nIDV0aCBjb2wgYW5kIHZpYS12ZXJzYSAtIG5vIGVmZmVjdCBvbiBmaXJzdCBjb2wgc29ydGluZyIsCgkJZnVuY3Rpb24gKCkgewoJCQltVG1wID0gMDsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiaURhdGFTb3J0IjogNCB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiLCAiaURhdGFTb3J0IjogMSB9CgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09ICdHZWNrbyc7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSIybmQgY29sIHNvcnRpbmcgdXNlcyBmaWZ0aCBjb2wiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDQpJykuaHRtbCgpID09ICdBJzsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIjJuZCBjb2wgc29ydGluZyB1c2VzIGZpZnRoIGNvbCAtIHJldmVyc2VkIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSg0KScpLmh0bWwoKSA9PSAnWCc7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSI1dGggY29sIHNvcnRpbmcgdXNlcyAybmQgY29sIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDQpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAnQWxsIG90aGVycyc7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSI1dGggY29sIHNvcnRpbmcgdXNlcyAybmQgY29sIC0gcmV2ZXJzZWQiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoNCknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICdTZWFtb25rZXkgMS4xJzsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sClass.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5zQ2xhc3MiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCSJhb0NvbHVtbnMiOiBbCgkJCXsgIm1EYXRhIjogImVuZ2luZSIgfSwKCQkJeyAibURhdGEiOiAiYnJvd3NlciIgfSwKCQkJeyAibURhdGEiOiAicGxhdGZvcm0iIH0sCgkJCXsgIm1EYXRhIjogInZlcnNpb24iIH0sCgkJCXsgIm1EYXRhIjogImdyYWRlIiB9CgkJXQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJCeSBkZWZhdWx0IHRoZSB0ZXN0IGNsYXNzIGhhc24ndCBiZWVuIGFwcGxpZWQgdG8gdGhlIGNvbHVtbiAoc2FuaXR5ISkiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMiknKS5oYXNDbGFzcygndW5pdHRlc3QnKSA9PSBmYWxzZTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkFkZCBhIGNsYXNzIHRvIGEgc2luZ2xlIGNvbHVtbiAtIGZpcnN0IHJvdyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIgfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIsICJzQ2xhc3MiOiAndW5pdHRlc3QnIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIgfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIgfQoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKSB0ZDplcSgyKScpLmhhc0NsYXNzKCd1bml0dGVzdCcpOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQWRkIGEgY2xhc3MgdG8gYSBzaW5nbGUgY29sdW1uIC0gdGhpcmQgcm93IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDMpIHRkOmVxKDIpJykuaGFzQ2xhc3MoJ3VuaXR0ZXN0Jyk7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJBZGQgYSBjbGFzcyB0byBhIHNpbmdsZSBjb2x1bW4gLSBsYXN0IHJvdyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSg5KSB0ZDplcSgyKScpLmhhc0NsYXNzKCd1bml0dGVzdCcpOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQWRkIGEgY2xhc3MgdG8gYSBzaW5nbGUgY29sdW1uIC0gaGFzIG5vdCBhcHBsaWVkIHRvIG90aGVyIGNvbHVtbnMgLSAxc3QiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMykgdGQ6ZXEoMCknKS5oYXNDbGFzcygndW5pdHRlc3QnKSA9PSBmYWxzZTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkFkZCBhIGNsYXNzIHRvIGEgc2luZ2xlIGNvbHVtbiAtIGhhcyBub3QgYXBwbGllZCB0byBvdGhlciBjb2x1bW5zIC0gNXRoIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDMpIHRkOmVxKDQpJykuaGFzQ2xhc3MoJ3VuaXR0ZXN0JykgPT0gZmFsc2U7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJBZGQgYSBjbGFzcyB0byBhIHNpbmdsZSBjb2x1bW4gLSBzZXZlbnRoIHJvdyAtIHNlY29uZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDYpIHRkOmVxKDIpJykuaGFzQ2xhc3MoJ3VuaXR0ZXN0Jyk7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJBZGQgYSBjbGFzcyB0byBhIHNpbmdsZSBjb2x1bW4gLSBoYXMgbm90IGFwcGxpZWQgdG8gaGVhZGVyIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDMpIHRoOmVxKDQpJykuaGFzQ2xhc3MoJ3VuaXR0ZXN0JykgPT0gZmFsc2U7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJBZGQgYSBjbGFzcyB0byBhIHNpbmdsZSBjb2x1bW4gLSBoYXMgbm90IGFwcGxpZWQgdG8gZm9vdGVyIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDMpIHRoOmVxKDQpJykuaGFzQ2xhc3MoJ3VuaXR0ZXN0JykgPT0gZmFsc2U7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNsYXNzIGRlZmluZWQgZm9yIG11bHRpcGxlIGNvbHVtbnMgLSBmaXJzdCByb3ciLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiwgInNDbGFzcyI6ICd1bml0dGVzdDInIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIgfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIgfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiwgInNDbGFzcyI6ICd1bml0dGVzdDEnIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiIH0KCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYlJldHVybiA9IAoJCQkJJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMykgdGQ6ZXEoMCknKS5oYXNDbGFzcygndW5pdHRlc3QyJykgJiYKCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDgpIHRkOmVxKDMpJykuaGFzQ2xhc3MoJ3VuaXR0ZXN0MScpOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ2xhc3MgZGVmaW5lZCBmb3IgbXVsdGlwbGUgY29sdW1ucyAtIGhhcyBub3QgYXBwbGllZCB0byBvdGhlciBjb2x1bW5zIC0gNXRoIDEiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoNCknKS5oYXNDbGFzcygndW5pdHRlc3QxJykgPT0gZmFsc2U7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDbGFzcyBkZWZpbmVkIGZvciBtdWx0aXBsZSBjb2x1bW5zIC0gaGFzIG5vdCBhcHBsaWVkIHRvIG90aGVyIGNvbHVtbnMgLSA1dGggMiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSg2KSB0ZDplcSg0KScpLmhhc0NsYXNzKCd1bml0dGVzdDInKSA9PSBmYWxzZTsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sName.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5zTmFtZSIgKTsKCi8qIFRoaXMgaGFzIG5vIGVmZmVjdCBhdCBhbGwgaW4gRE9NIG1ldGhvZHMgLSBzbyB3ZSBqdXN0IGNoZWNrIHRoYXQgaXQgaGFzIGFwcGxpZWQgdGhlIG5hbWUgKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJImFvQ29sdW1ucyI6IFsKCQkJeyAibURhdGEiOiAiZW5naW5lIiB9LAoJCQl7ICJtRGF0YSI6ICJicm93c2VyIiB9LAoJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIgfSwKCQkJeyAibURhdGEiOiAidmVyc2lvbiIsICJzTmFtZSI6ICd1bml0IHRlc3QnIH0sCgkJCXsgIm1EYXRhIjogImdyYWRlIiB9CgkJXQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJOYW1lcyBhcmUgc3RvcmVkIGluIHRoZSBjb2x1bW5zIG9iamVjdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3MuYW9Db2x1bW5zWzNdLnNOYW1lID09InVuaXQgdGVzdCI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sTitle.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5zVGl0bGUiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCSJhb0NvbHVtbnMiOiBbCgkJCXsgIm1EYXRhIjogImVuZ2luZSIgfSwKCQkJeyAibURhdGEiOiAiYnJvd3NlciIgfSwKCQkJeyAibURhdGEiOiAicGxhdGZvcm0iIH0sCgkJCXsgIm1EYXRhIjogInZlcnNpb24iIH0sCgkJCXsgIm1EYXRhIjogImdyYWRlIiB9CgkJXQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJJZiBub3QgZ2l2ZW4sIHRoZW4gdGhlIGNvbHVtbnMgdGl0bGVzIGFyZSBlbXB0eSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBqcU5vZGVzID0gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGgnKTsKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCWpxTm9kZXNbMF0uaW5uZXJIVE1MID09ICJSZW5kZXJpbmcgZW5naW5lIiAmJgoJCQkJanFOb2Rlc1sxXS5pbm5lckhUTUwgPT0gIkJyb3dzZXIiICYmCgkJCQlqcU5vZGVzWzJdLmlubmVySFRNTCA9PSAiUGxhdGZvcm0ocykiICYmCgkJCQlqcU5vZGVzWzNdLmlubmVySFRNTCA9PSAiRW5naW5lIHZlcnNpb24iICYmCgkJCQlqcU5vZGVzWzRdLmlubmVySFRNTCA9PSAiQ1NTIGdyYWRlIjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNhbiBzZXQgYSBzaW5nbGUgY29sdW1uIHRpdGxlIC0gYW5kIG90aGVycyBhcmUgcmVhZCBmcm9tIERPTSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIsICJzVGl0bGUiOiAndW5pdCB0ZXN0JyB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiIH0KCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIganFOb2RlcyA9ICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDApIHRoJyk7CgkJCXZhciBiUmV0dXJuID0gCgkJCQlqcU5vZGVzWzBdLmlubmVySFRNTCA9PSAiUmVuZGVyaW5nIGVuZ2luZSIgJiYKCQkJCWpxTm9kZXNbMV0uaW5uZXJIVE1MID09ICJ1bml0IHRlc3QiICYmCgkJCQlqcU5vZGVzWzJdLmlubmVySFRNTCA9PSAiUGxhdGZvcm0ocykiICYmCgkJCQlqcU5vZGVzWzNdLmlubmVySFRNTCA9PSAiRW5naW5lIHZlcnNpb24iICYmCgkJCQlqcU5vZGVzWzRdLmlubmVySFRNTCA9PSAiQ1NTIGdyYWRlIjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNhbiBzZXQgbXVsdGlwbGUgY29sdW1uIHRpdGxlcyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIsICJzVGl0bGUiOiAndW5pdCB0ZXN0IDEnIH0sCgkJCQkJeyAibURhdGEiOiAicGxhdGZvcm0iIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIgfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIsICJzVGl0bGUiOiAndW5pdCB0ZXN0IDInIH0KCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIganFOb2RlcyA9ICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDApIHRoJyk7CgkJCXZhciBiUmV0dXJuID0gCgkJCQlqcU5vZGVzWzBdLmlubmVySFRNTCA9PSAiUmVuZGVyaW5nIGVuZ2luZSIgJiYKCQkJCWpxTm9kZXNbMV0uaW5uZXJIVE1MID09ICJ1bml0IHRlc3QgMSIgJiYKCQkJCWpxTm9kZXNbMl0uaW5uZXJIVE1MID09ICJQbGF0Zm9ybShzKSIgJiYKCQkJCWpxTm9kZXNbM10uaW5uZXJIVE1MID09ICJFbmdpbmUgdmVyc2lvbiIgJiYKCQkJCWpxTm9kZXNbNF0uaW5uZXJIVE1MID09ICJ1bml0IHRlc3QgMiI7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sWidth.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5zV2lkdGgiICk7CgovKiBOT1RFIC0gd2UgbmVlZCB0byBkaXNhYmxlIHRoZSBhdXRvIHdpZHRoIGZvciB0aGUgbWFqb3JpdHkgb2YgdGhlc2UgdGVzdCBpbiBvcmRlciB0byBwcmVmb3JtIAogKiB0aGVzZSB0ZXN0cyBhcyB0aGUgYXV0byB3aWR0aCB3aWxsIGNvbnZlcnQgdGhlIHdpZHRoIHRvIGEgcHggdmFsdWUuIFdlIGNhbiBkbyAnbm9uLWV4YWN0JyB0ZXN0cwogKiB3aXRoIGF1dG8gd2lkdGggZW5hYmxlZCBob3dldmVyIHRvIGVuc3VyZSBpdCBzY2FsZXMgY29sdW1ucyBhcyByZXF1aXJlZAogKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJImJBdXRvV2lkdGgiOiBmYWxzZSwKCQkiYW9Db2x1bW5zIjogWwoJCQl7ICJtRGF0YSI6ICJlbmdpbmUiIH0sCgkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAic1dpZHRoIjogJzQwJScgfSwKCQkJeyAibURhdGEiOiAicGxhdGZvcm0iIH0sCgkJCXsgIm1EYXRhIjogInZlcnNpb24iIH0sCgkJCXsgIm1EYXRhIjogImdyYWRlIiB9CgkJXQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJXaXRoIGF1dG8gd2lkdGggZGlzYWJsZWQgdGhlIHdpZHRoIGZvciBvbmUgY29sdW1uIGlzIGFwcGxlZCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpWzBdLnN0eWxlLndpZHRoID09ICI0MCUiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiV2l0aCBhdXRvIHdpZHRoIGRpc2FibGVkIHRoZSB3aWR0aCBmb3Igb25lIGNvbHVtbiBpcyBhcHBsZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJiQXV0b1dpZHRoIjogZmFsc2UsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIgfSwKCQkJCQl7ICJtRGF0YSI6ICJicm93c2VyIiB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiwgInNXaWR0aCI6ICcyMCUnIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIsICJzV2lkdGgiOiAnMzAlJyB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiB9CgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGJSZXR1cm4gPQoJCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMiknKVswXS5zdHlsZS53aWR0aCA9PSAiMjAlIiAmJgoJCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMyknKVswXS5zdHlsZS53aWR0aCA9PSAiMzAlIjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiV2l0aCBhdXRvIHdpZHRoLCBpdCB3aWxsIG1ha2UgdGhlIHNtYWxsZXN0IGNvbHVtbiB0aGUgbGFyZ2VzdCB3aXRoIHBlcmNlbnRhZ2Ugd2lkdGggZ2l2ZW4iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiIH0sCgkJCQkJeyAibURhdGEiOiAicGxhdGZvcm0iIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIsICJzV2lkdGgiOiAnNDAlJyB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiB9CgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGFuVGhzID0gJCgnI2V4YW1wbGUgdGhlYWQgdGgnKTsKCQkJdmFyIGEwID0gYW5UaHNbMF0ub2Zmc2V0V2lkdGg7CgkJCXZhciBhMSA9IGFuVGhzWzFdLm9mZnNldFdpZHRoOwoJCQl2YXIgYTIgPSBhblRoc1syXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGEzID0gYW5UaHNbM10ub2Zmc2V0V2lkdGg7CgkJCXZhciBhNCA9IGFuVGhzWzRdLm9mZnNldFdpZHRoOwoJCQkKCQkJaWYgKCBhMz5hMCAmJiBhMz5hMSAmJiBhMz5hMiAmJiBhMz5hNCApCgkJCQlyZXR1cm4gdHJ1ZTsKCQkJZWxzZQoJCQkJcmV0dXJuIGZhbHNlOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/aoSearchCols.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvU2VhcmNoQ29scyIgKTsKCi8qIFdlIGNvdWxkIGJlIGhlcmUgZm9yZXZlciB0ZXN0aW5nIHRoaXMgb25lLCBzbyB3ZSB0ZXN0IGEgbGltaXRlZCBzdWJzZXQgb24gYSBjb3VwbGUgb2YgY29sdW1zICovCgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCSJhb0NvbHVtbnMiOiBbCgkJCXsgIm1EYXRhIjogImVuZ2luZSIgfSwKCQkJeyAibURhdGEiOiAiYnJvd3NlciIgfSwKCQkJeyAibURhdGEiOiAicGxhdGZvcm0iIH0sCgkJCXsgIm1EYXRhIjogInZlcnNpb24iIH0sCgkJCXsgIm1EYXRhIjogImdyYWRlIiB9CgkJXQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJEZWZhdWx0IHNob3VsZCBiZSB0byBoYXZlIGEgZW1wdHkgY29sdW1zIGFycmF5IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCW9TZXR0aW5ncy5hb1ByZVNlYXJjaENvbHNbMF0uc1NlYXJjaCA9PSAwICYmICFvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzWzBdLmJSZWdleCAmJgoJCQkJb1NldHRpbmdzLmFvUHJlU2VhcmNoQ29sc1sxXS5zU2VhcmNoID09IDAgJiYgIW9TZXR0aW5ncy5hb1ByZVNlYXJjaENvbHNbMV0uYlJlZ2V4ICYmCgkJCQlvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzWzJdLnNTZWFyY2ggPT0gMCAmJiAhb1NldHRpbmdzLmFvUHJlU2VhcmNoQ29sc1syXS5iUmVnZXggJiYKCQkJCW9TZXR0aW5ncy5hb1ByZVNlYXJjaENvbHNbM10uc1NlYXJjaCA9PSAwICYmICFvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzWzNdLmJSZWdleCAmJgoJCQkJb1NldHRpbmdzLmFvUHJlU2VhcmNoQ29sc1s0XS5zU2VhcmNoID09IDAgJiYgIW9TZXR0aW5ncy5hb1ByZVNlYXJjaENvbHNbNF0uYlJlZ2V4OwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTZWFyY2ggb24gYSBzaW5nbGUgY29sdW1uIC0gbm8gcmVnZXggc3RhdGVtZW50IGdpdmVuIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5EZWZzIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIsICJhVGFyZ2V0cyI6IFswXSB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiYVRhcmdldHMiOiBbMV0gfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIsICJhVGFyZ2V0cyI6IFsyXSB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iLCAiYVRhcmdldHMiOiBbM10gfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIsICJhVGFyZ2V0cyI6IFs0XSB9CgkJCQldLAoJCQkJImFvU2VhcmNoQ29scyI6IFsKCQkJCQludWxsLAoJCQkJCXsgInNTZWFyY2giOiAiTW96aWxsYSIgfSwKCQkJCQludWxsLAoJCQkJCXsgInNTZWFyY2giOiAiMSIgfSwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlX2luZm8nKS5odG1sKCkgPT0gIlNob3dpbmcgMSB0byA5IG9mIDkgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTZWFyY2ggb24gdHdvIGNvbHVtbnMgLSBubyByZWdleCBzdGF0ZW1lbnQgZ2l2ZW4iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiwgImFUYXJnZXRzIjogWzBdIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIsICJhVGFyZ2V0cyI6IFsxXSB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiwgImFUYXJnZXRzIjogWzJdIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIsICJhVGFyZ2V0cyI6IFszXSB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiwgImFUYXJnZXRzIjogWzRdIH0KCQkJCV0sCgkJCQkiYW9TZWFyY2hDb2xzIjogWwoJCQkJCW51bGwsCgkJCQkJeyAic1NlYXJjaCI6ICJNb3ppbGxhIiB9LAoJCQkJCW51bGwsCgkJCQkJeyAic1NlYXJjaCI6ICIxLjUiIH0sCgkJCQkJbnVsbAoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiMS41IjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNlYXJjaCBvbiBzaW5nbGUgY29sdW1uIC0gZXNjYXBlIHJlZ2V4IGZhbHNlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5EZWZzIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIsICJhVGFyZ2V0cyI6IFswXSB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiYVRhcmdldHMiOiBbMV0gfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIsICJhVGFyZ2V0cyI6IFsyXSB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iLCAiYVRhcmdldHMiOiBbM10gfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIsICJhVGFyZ2V0cyI6IFs0XSB9CgkJCQldLAoJCQkJImFvU2VhcmNoQ29scyI6IFsKCQkJCQl7ICJzU2VhcmNoIjogIi4qTUwiLCAiYkVzY2FwZVJlZ2V4IjogZmFsc2UgfSwKCQkJCQludWxsLAoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlX2luZm8nKS5odG1sKCkgPT0gIlNob3dpbmcgMSB0byAzIG9mIDMgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTZWFyY2ggb24gdHdvIGNvbHVtbnMgLSBlc2NhcGUgcmVnZXggZmFsc2Ugb24gZmlyc3QsIHRydWUgb24gc2Vjb25kIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5EZWZzIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIsICJhVGFyZ2V0cyI6IFswXSB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiYVRhcmdldHMiOiBbMV0gfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIsICJhVGFyZ2V0cyI6IFsyXSB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iLCAiYVRhcmdldHMiOiBbM10gfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIsICJhVGFyZ2V0cyI6IFs0XSB9CgkJCQldLAoJCQkJImFvU2VhcmNoQ29scyI6IFsKCQkJCQl7ICJzU2VhcmNoIjogIi4qTUwiLCAiYkVzY2FwZVJlZ2V4IjogZmFsc2UgfSwKCQkJCQl7ICJzU2VhcmNoIjogIjMuMyIsICJiRXNjYXBlUmVnZXgiOiB0cnVlIH0sCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIktvbnF1cmVyb3IgMy4zIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNlYXJjaCBvbiB0d28gY29sdW1ucyAobm8gcmVjb3JkcykgLSBlc2NhcGUgcmVnZXggZmFsc2Ugb24gZmlyc3QsIHRydWUgb24gc2Vjb25kIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5EZWZzIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIsICJhVGFyZ2V0cyI6IFswXSB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiYVRhcmdldHMiOiBbMV0gfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIsICJhVGFyZ2V0cyI6IFsyXSB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iLCAiYVRhcmdldHMiOiBbM10gfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIsICJhVGFyZ2V0cyI6IFs0XSB9CgkJCQldLAoJCQkJImFvU2VhcmNoQ29scyI6IFsKCQkJCQl7ICJzU2VhcmNoIjogIi4qTUwiLCAiYkVzY2FwZVJlZ2V4IjogZmFsc2UgfSwKCQkJCQl7ICJzU2VhcmNoIjogIkFsbGFuIiwgImJFc2NhcGVSZWdleCI6IHRydWUgfSwKCQkJCQludWxsLAoJCQkJCW51bGwsCgkJCQkJbnVsbAoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiTm8gbWF0Y2hpbmcgcmVjb3JkcyBmb3VuZCI7IH0KCSk7CgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/asStripClasses.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFzU3RyaXBlQ2xhc3NlcyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkiYW9Db2x1bW5zIjogWwoJCQl7ICJtRGF0YSI6ICJlbmdpbmUiIH0sCgkJCXsgIm1EYXRhIjogImJyb3dzZXIiIH0sCgkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiB9LAoJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiB9LAoJCQl7ICJtRGF0YSI6ICJncmFkZSIgfQoJCV0KCX0gKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkRlZmF1bHQgcm93IHN0cmlwaW5nIGlzIGFwcGxpZWQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCknKS5oYXNDbGFzcygnb2RkJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDEpJykuaGFzQ2xhc3MoJ2V2ZW4nKSAmJgoJCQkgICAgICAgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMiknKS5oYXNDbGFzcygnb2RkJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDMpJykuaGFzQ2xhc3MoJ2V2ZW4nKTsKCQl9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUm93IHN0cmlwaW5nIG9uIHRoZSBzZWNvbmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKScpLmhhc0NsYXNzKCdvZGQnKSAmJgoJCQkgICAgICAgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMSknKS5oYXNDbGFzcygnZXZlbicpICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgyKScpLmhhc0NsYXNzKCdvZGQnKSAmJgoJCQkgICAgICAgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMyknKS5oYXNDbGFzcygnZXZlbicpOwoJCX0KCSk7CgkKCS8qIE5vIHN0cmlwaW5nICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTm8gcm93IHN0cmlwaW5nIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5EZWZzIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIsICJhVGFyZ2V0cyI6IFswXSB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiYVRhcmdldHMiOiBbMV0gfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIsICJhVGFyZ2V0cyI6IFsyXSB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iLCAiYVRhcmdldHMiOiBbM10gfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIsICJhVGFyZ2V0cyI6IFs0XSB9CgkJCQldLAoJCQkJImFzU3RyaXBlQ2xhc3NlcyI6IFtdCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJaWYgKCB0eXBlb2YgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMSknKVswXSA9PSAndW5kZWZpbmVkJyApCgkJCXsKCQkJCS8qIFVzZSB0aGUgJ3dhaXQgZm9yJyB0byBhbGxvdyB0aGlzIHRvIGJlY29tZSB0cnVlICovCgkJCQlyZXR1cm4gZmFsc2U7CgkJCX0KCQkJcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApJylbMF0uY2xhc3NOYW1lID09ICIiICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKScpWzBdLmNsYXNzTmFtZSA9PSAiIiAmJgoJCQkgICAgICAgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMiknKVswXS5jbGFzc05hbWUgPT0gIiIgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDMpJylbMF0uY2xhc3NOYW1lID09ICIiOwoJCX0KCSk7CgkKCS8qIEN1c3RvbSBzdHJpcGluZyAqLwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkN1c3RvbSBzdHJpcGluZyBbMl0iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiwgImFUYXJnZXRzIjogWzBdIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIsICJhVGFyZ2V0cyI6IFsxXSB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiwgImFUYXJnZXRzIjogWzJdIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIsICJhVGFyZ2V0cyI6IFszXSB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiwgImFUYXJnZXRzIjogWzRdIH0KCQkJCV0sCgkJCQkiYXNTdHJpcGVDbGFzc2VzIjogWyAndGVzdDEnLCAndGVzdDInIF0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCknKS5oYXNDbGFzcygndGVzdDEnKSAmJgoJCQkgICAgICAgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMSknKS5oYXNDbGFzcygndGVzdDInKSAmJgoJCQkgICAgICAgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMiknKS5oYXNDbGFzcygndGVzdDEnKSAmJgoJCQkgICAgICAgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMyknKS5oYXNDbGFzcygndGVzdDInKTsKCQl9CgkpOwoJCgkKCS8qIGxvbmcgYXJyYXkgb2Ygc3RyaXBpbmcgKi8KCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDdXN0b20gc3RyaXBpbmcgWzRdIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5EZWZzIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIsICJhVGFyZ2V0cyI6IFswXSB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiYVRhcmdldHMiOiBbMV0gfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIsICJhVGFyZ2V0cyI6IFsyXSB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iLCAiYVRhcmdldHMiOiBbM10gfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIsICJhVGFyZ2V0cyI6IFs0XSB9CgkJCQldLAoJCQkJImFzU3RyaXBlQ2xhc3NlcyI6IFsgJ3Rlc3QxJywgJ3Rlc3QyJywgJ3Rlc3QzJywgJ3Rlc3Q0JyBdCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApJykuaGFzQ2xhc3MoJ3Rlc3QxJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDEpJykuaGFzQ2xhc3MoJ3Rlc3QyJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDIpJykuaGFzQ2xhc3MoJ3Rlc3QzJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDMpJykuaGFzQ2xhc3MoJ3Rlc3Q0Jyk7CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkN1c3RvbSBzdHJpcGluZyBpcyByZXN0YXJ0ZWQgb24gc2Vjb25kIHBhZ2UgWzJdIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApJykuaGFzQ2xhc3MoJ3Rlc3QxJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDEpJykuaGFzQ2xhc3MoJ3Rlc3QyJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDIpJykuaGFzQ2xhc3MoJ3Rlc3QzJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDMpJykuaGFzQ2xhc3MoJ3Rlc3Q0Jyk7CgkJfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/bAutoWidth.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJBdXRvV2lkdGgiICk7CgovKiBJdCdzIGFjdHVhbGx5IGEgbGl0dGxlIHRyaWNreSB0byB0ZXN0IHRoaXMuIFdlIGNhbid0IHRlc3QgYWJzb2x1dGUgbnVtYmVycyBiZWNhdXNlCiAqIGRpZmZlcmVudCBicm93c2VycyBhbmQgZGlmZmVyZW50IHBsYXRmb3JtcyB3aWxsIHJlbmRlciB0aGUgd2lkdGggb2YgdGhlIGNvbHVtbnMgc2xpZ2h0bHkKICogZGlmZmVyZW50bHkuIEhvd2V2ZXIsIHdlIGNlcnRhaW5seSBjYW4gdGVzdCB0aGUgcHJpbmNpcGxlIG9mIHdoYXQgc2hvdWxkIGhhcHBlbiAoY29sdW1uIAogKiB3aWR0aCBkb2Vzbid0IGNoYW5nZSBvdmVyIHBhZ2VzKQogKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJImFvQ29sdW1ucyI6IFsKCQkJeyAibURhdGEiOiAiZW5naW5lIiB9LAoJCQl7ICJtRGF0YSI6ICJicm93c2VyIiB9LAoJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIgfSwKCQkJeyAibURhdGEiOiAidmVyc2lvbiIgfSwKCQkJeyAibURhdGEiOiAiZ3JhZGUiIH0KCQldCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkF1dG8gd2lkdGggaXMgZW5hYmxlZCBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vRmVhdHVyZXMuYkF1dG9XaWR0aDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkZpcnN0IGNvbHVtbiBoYXMgYSB3aWR0aCBhc3NpZ25lZCB0byBpdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgwKScpLmF0dHIoJ3N0eWxlJykubWF0Y2goL3dpZHRoL2kpOyB9CgkpOwoJCgkvKgoJVGhpcyB3b3VsZCBzZWVtIGxpa2UgYSBiZXR0ZXIgdGVzdCAtIGJ1dCB0aGVyZSBhcHBlYXIgdG8gYmUgZGlmZmljdWx0aWVzIHdpdGggdGFibGVzCgl3aGljaCBhcmUgYmlnZ2VyIChjYWxjdWxhdGVkKSB0aGFuIHRoZXJlIGlzIGFjdHVhbGx5IHJvb20gZm9yLiBJIHN1c3BlY3QgdGhpcyBpcyBhY3R1YWxseQoJYSBidWcgaW4gZGF0YXRhYmxlcwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNoZWNrIGNvbHVtbiB3aWR0aHMgb24gZmlyc3QgcGFnZSBtYXRjaCBzZWNvbmQgcGFnZSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBhblRocyA9ICQoJyNleGFtcGxlIHRoZWFkIHRoJyk7CgkJCXZhciBhMCA9IGFuVGhzWzBdLm9mZnNldFdpZHRoOwoJCQl2YXIgYTEgPSBhblRoc1sxXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGEyID0gYW5UaHNbMl0ub2Zmc2V0V2lkdGg7CgkJCXZhciBhMyA9IGFuVGhzWzNdLm9mZnNldFdpZHRoOwoJCQl2YXIgYTQgPSBhblRoc1s0XS5vZmZzZXRXaWR0aDsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJCXZhciBiMCA9IGFuVGhzWzBdLm9mZnNldFdpZHRoOwoJCQl2YXIgYjEgPSBhblRoc1sxXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGIyID0gYW5UaHNbMl0ub2Zmc2V0V2lkdGg7CgkJCXZhciBiMyA9IGFuVGhzWzNdLm9mZnNldFdpZHRoOwoJCQl2YXIgYjQgPSBhblRoc1s0XS5vZmZzZXRXaWR0aDsKCQkJY29uc29sZS5sb2coIGEwLCBiMCwgYTEsIGIxLCBhMiwgYjIsIGEzLCBiMyApOwoJCQlpZiAoIGEwPT1iMCAmJiBhMT09YjEgJiYgYTI9PWIyICYmIGEzPT1iMyApCgkJCQlyZXR1cm4gdHJ1ZTsKCQkJZWxzZQoJCQkJcmV0dXJuIGZhbHNlOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDaGVjayBjb2x1bW4gd2lkdGhzIG9uIHNlY29uZCBwYWdlIG1hdGNoIHRoaWQgcGFnZSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBhblRocyA9ICQoJyNleGFtcGxlIHRoZWFkIHRoJyk7CgkJCXZhciBhMCA9IGFuVGhzWzBdLm9mZnNldFdpZHRoOwoJCQl2YXIgYTEgPSBhblRoc1sxXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGEyID0gYW5UaHNbMl0ub2Zmc2V0V2lkdGg7CgkJCXZhciBhMyA9IGFuVGhzWzNdLm9mZnNldFdpZHRoOwoJCQl2YXIgYTQgPSBhblRoc1s0XS5vZmZzZXRXaWR0aDsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJCXZhciBiMCA9IGFuVGhzWzBdLm9mZnNldFdpZHRoOwoJCQl2YXIgYjEgPSBhblRoc1sxXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGIyID0gYW5UaHNbMl0ub2Zmc2V0V2lkdGg7CgkJCXZhciBiMyA9IGFuVGhzWzNdLm9mZnNldFdpZHRoOwoJCQl2YXIgYjQgPSBhblRoc1s0XS5vZmZzZXRXaWR0aDsKCQkJaWYgKCBhMD09YjAgJiYgYTE9PWIxICYmIGEyPT1iMiAmJiBhMz09YjMgKQoJCQkJcmV0dXJuIHRydWU7CgkJCWVsc2UKCQkJCXJldHVybiBmYWxzZTsKCQl9CgkpOwoJKi8KCQoJLyogQ2hlY2sgY2FuIGRpc2FibGUgKi8KCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJBdXRvIHdpZHRoIGNhbiBiZSBkaXNhYmxlZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1uRGVmcyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiLCAiYVRhcmdldHMiOiBbMF0gfSwKCQkJCQl7ICJtRGF0YSI6ICJicm93c2VyIiwgImFUYXJnZXRzIjogWzFdIH0sCgkJCQkJeyAibURhdGEiOiAicGxhdGZvcm0iLCAiYVRhcmdldHMiOiBbMl0gfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiwgImFUYXJnZXRzIjogWzNdIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiLCAiYVRhcmdldHMiOiBbNF0gfQoJCQkJXSwKCQkJCSJiQXV0b1dpZHRoIjogZmFsc2UKCQkJfSApOwoJIAkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vRmVhdHVyZXMuYkF1dG9XaWR0aCA9PSBmYWxzZTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkZpcnN0IGNvbHVtbiBkb2VzIG5vdCBoYXZlIGEgd2lkdGggYXNzaWduZWQgdG8gaXQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMCknKS5hdHRyKCdzdHlsZScpID09IG51bGw7IH0KCSk7CgkKCS8qCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ2hlY2sgY29sdW1uIHdpZHRocyBvbiBmaXJzdCBwYWdlIGRvIG5vdCBtYXRjaCBzZWNvbmQgcGFnZSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBhblRocyA9ICQoJyNleGFtcGxlIHRoZWFkIHRoJyk7CgkJCXZhciBhMCA9IGFuVGhzWzBdLm9mZnNldFdpZHRoOwoJCQl2YXIgYTEgPSBhblRoc1sxXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGEyID0gYW5UaHNbMl0ub2Zmc2V0V2lkdGg7CgkJCXZhciBhMyA9IGFuVGhzWzNdLm9mZnNldFdpZHRoOwoJCQl2YXIgYTQgPSBhblRoc1s0XS5vZmZzZXRXaWR0aDsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJCXZhciBiMCA9IGFuVGhzWzBdLm9mZnNldFdpZHRoOwoJCQl2YXIgYjEgPSBhblRoc1sxXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGIyID0gYW5UaHNbMl0ub2Zmc2V0V2lkdGg7CgkJCXZhciBiMyA9IGFuVGhzWzNdLm9mZnNldFdpZHRoOwoJCQl2YXIgYjQgPSBhblRoc1s0XS5vZmZzZXRXaWR0aDsKCQkJaWYgKCBhMD09YjAgJiYgYTE9PWIxICYmIGEyPT1iMiAmJiBhMz09YjMgKQoJCQkJcmV0dXJuIGZhbHNlOwoJCQllbHNlCgkJCQlyZXR1cm4gdHJ1ZTsKCQl9CgkpOwoJKi8KCQoJLyogRW5hYmxlIG1ha2VzIG5vIGRpZmZlcmVuY2UgKi8KCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJBdXRvIHdpZHRoIGVuYWJsZWQgb3ZlcnJpZGUiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiwgImFUYXJnZXRzIjogWzBdIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIsICJhVGFyZ2V0cyI6IFsxXSB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiwgImFUYXJnZXRzIjogWzJdIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIsICJhVGFyZ2V0cyI6IFszXSB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiwgImFUYXJnZXRzIjogWzRdIH0KCQkJCV0sCgkJCQkiYkF1dG9XaWR0aCI6IHRydWUKCQkJfSApOwoJIAkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vRmVhdHVyZXMuYkF1dG9XaWR0aDsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/bFilter.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJGaWx0ZXIiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJImFvQ29sdW1ucyI6IFsKCQkJeyAibURhdGEiOiAiZW5naW5lIiB9LAoJCQl7ICJtRGF0YSI6ICJicm93c2VyIiB9LAoJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIgfSwKCQkJeyAibURhdGEiOiAidmVyc2lvbiIgfSwKCQkJeyAibURhdGEiOiAiZ3JhZGUiIH0KCQldCgl9ICk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJGaWx0ZXJpbmcgZGl2IGV4aXN0cyBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2ZpbHRlcicpICE9IG51bGw7IH0KCSk7CgkKCS8qIENoZWNrIGNhbiBkaXNhYmxlICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRmx0ZXJpbmcgY2FuIGJlIGRpc2FibGVkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5EZWZzIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIsICJhVGFyZ2V0cyI6IFswXSB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiYVRhcmdldHMiOiBbMV0gfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIsICJhVGFyZ2V0cyI6IFsyXSB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iLCAiYVRhcmdldHMiOiBbM10gfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIsICJhVGFyZ2V0cyI6IFs0XSB9CgkJCQldLAoJCQkJImJGaWx0ZXIiOiBmYWxzZQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9maWx0ZXInKSA9PSBudWxsOyB9CgkpOwoJCgkvKiBFbmFibGUgbWFrZXMgbm8gZGlmZmVyZW5jZSAqLwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkZpbHRlcmluZyBlbmFibGVkIG92ZXJyaWRlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5EZWZzIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIsICJhVGFyZ2V0cyI6IFswXSB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiYVRhcmdldHMiOiBbMV0gfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIsICJhVGFyZ2V0cyI6IFsyXSB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iLCAiYVRhcmdldHMiOiBbM10gfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIsICJhVGFyZ2V0cyI6IFs0XSB9CgkJCQldLAoJCQkJImJGaWx0ZXIiOiB0cnVlCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2ZpbHRlcicpICE9IG51bGw7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/bInfo.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJJbmZvIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCSJhb0NvbHVtbnMiOiBbCgkJCXsgIm1EYXRhIjogImVuZ2luZSIgfSwKCQkJeyAibURhdGEiOiAiYnJvd3NlciIgfSwKCQkJeyAibURhdGEiOiAicGxhdGZvcm0iIH0sCgkJCXsgIm1EYXRhIjogInZlcnNpb24iIH0sCgkJCXsgIm1EYXRhIjogImdyYWRlIiB9CgkJXQoJfSApOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiSW5mbyBkaXYgZXhpc3RzIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpICE9IG51bGw7IH0KCSk7CgkKCS8qIENoZWNrIGNhbiBkaXNhYmxlICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiSW5mbyBjYW4gYmUgZGlzYWJsZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiwgImFUYXJnZXRzIjogWzBdIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIsICJhVGFyZ2V0cyI6IFsxXSB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiwgImFUYXJnZXRzIjogWzJdIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIsICJhVGFyZ2V0cyI6IFszXSB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiwgImFUYXJnZXRzIjogWzRdIH0KCQkJCV0sCgkJCQkiYkluZm8iOiBmYWxzZQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykgPT0gbnVsbDsgfQoJKTsKCQoJLyogRW5hYmxlIG1ha2VzIG5vIGRpZmZlcmVuY2UgKi8KCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJJbmZvIGVuYWJsZWQgb3ZlcnJpZGUiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiwgImFUYXJnZXRzIjogWzBdIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIsICJhVGFyZ2V0cyI6IFsxXSB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiwgImFUYXJnZXRzIjogWzJdIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIsICJhVGFyZ2V0cyI6IFszXSB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiwgImFUYXJnZXRzIjogWzRdIH0KCQkJCV0sCgkJCQkiYkluZm8iOiB0cnVlCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKSAhPSBudWxsOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/bLengthChange.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJMZW5ndGhDaGFuZ2UiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJImFvQ29sdW1ucyI6IFsKCQkJeyAibURhdGEiOiAiZW5naW5lIiB9LAoJCQl7ICJtRGF0YSI6ICJicm93c2VyIiB9LAoJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIgfSwKCQkJeyAibURhdGEiOiAidmVyc2lvbiIgfSwKCQkJeyAibURhdGEiOiAiZ3JhZGUiIH0KCQldCgl9ICk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJMZW5ndGggZGl2IGV4aXN0cyBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2xlbmd0aCcpICE9IG51bGw7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIkZvdXIgZGVmYXVsdCBvcHRpb25zIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSBvcHRpb24iKS5sZW5ndGggPT0gNDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiRGVmYXVsdCBvcHRpb25zIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIG9wdHMgPSAkKCJzZWxlY3RbbmFtZT0nZXhhbXBsZV9sZW5ndGgnXSBvcHRpb24iKTsKCQkJcmV0dXJuIG9wdHNbMF0uZ2V0QXR0cmlidXRlKCd2YWx1ZScpID09IDEwICYmIG9wdHNbMV0uZ2V0QXR0cmlidXRlKCd2YWx1ZScpID09IDI1ICYmCgkJCQlvcHRzWzJdLmdldEF0dHJpYnV0ZSgndmFsdWUnKSA9PSA1MCAmJiBvcHRzWzNdLmdldEF0dHJpYnV0ZSgndmFsdWUnKSA9PSAxMDA7CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiSW5mbyB0YWtlcyBsZW5ndGggaW50byBhY2NvdW50IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCS8qIENoZWNrIGNhbiBkaXNhYmxlICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ2hhbmdlIGxlbmd0aCBjYW4gYmUgZGlzYWJsZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiwgImFUYXJnZXRzIjogWzBdIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIsICJhVGFyZ2V0cyI6IFsxXSB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiwgImFUYXJnZXRzIjogWzJdIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIsICJhVGFyZ2V0cyI6IFszXSB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiwgImFUYXJnZXRzIjogWzRdIH0KCQkJCV0sCgkJCQkiYkxlbmd0aENoYW5nZSI6IGZhbHNlCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2xlbmd0aCcpID09IG51bGw7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIkluZm9ybWF0aW9uIHRha2VzIGxlbmd0aCBkaXNhYmxlZCBpbnRvIGFjY291bnQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJLyogRW5hYmxlIG1ha2VzIG5vIGRpZmZlcmVuY2UgKi8KCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJMZW5ndGggY2hhbmdlIGVuYWJsZWQgb3ZlcnJpZGUiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiwgImFUYXJnZXRzIjogWzBdIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIsICJhVGFyZ2V0cyI6IFsxXSB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiwgImFUYXJnZXRzIjogWzJdIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIsICJhVGFyZ2V0cyI6IFszXSB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiwgImFUYXJnZXRzIjogWzRdIH0KCQkJCV0sCgkJCQkiYkxlbmd0aENoYW5nZSI6IHRydWUKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfbGVuZ3RoJykgIT0gbnVsbDsgfQoJKTsKCQoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/bPaginate.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJQYWdpbmF0ZSIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkiYW9Db2x1bW5zIjogWwoJCQl7ICJtRGF0YSI6ICJlbmdpbmUiIH0sCgkJCXsgIm1EYXRhIjogImJyb3dzZXIiIH0sCgkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiB9LAoJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiB9LAoJCQl7ICJtRGF0YSI6ICJncmFkZSIgfQoJCV0KCX0gKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlBhZ2lhbnRpb24gZGl2IGV4aXN0cyBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3BhZ2luYXRlJykgIT0gbnVsbDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiSW5mb3JtYXRpb24gZGl2IHRha2VzIHBhZ2luZyBpbnRvIGFjY291bnQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJLyogQ2hlY2sgY2FuIGRpc2FibGUgKi8KCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJQYWdpYW50aW9uIGNhbiBiZSBkaXNhYmxlZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1uRGVmcyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiLCAiYVRhcmdldHMiOiBbMF0gfSwKCQkJCQl7ICJtRGF0YSI6ICJicm93c2VyIiwgImFUYXJnZXRzIjogWzFdIH0sCgkJCQkJeyAibURhdGEiOiAicGxhdGZvcm0iLCAiYVRhcmdldHMiOiBbMl0gfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiwgImFUYXJnZXRzIjogWzNdIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiLCAiYVRhcmdldHMiOiBbNF0gfQoJCQkJXSwKCQkJCSJiUGFnaW5hdGUiOiBmYWxzZQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wYWdpbmF0ZScpID09IG51bGw7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIkluZm9ybWF0aW9uIGRpdiB0YWtlcyBwYWdpbmcgZGlzYWJsZWQgaW50byBhY2NvdW50IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gNTcgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCS8qIEVuYWJsZSBtYWtlcyBubyBkaWZmZXJlbmNlICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUGFnaWFudGlvbiBlbmFibGVkIG92ZXJyaWRlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5EZWZzIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIsICJhVGFyZ2V0cyI6IFswXSB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiYVRhcmdldHMiOiBbMV0gfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIsICJhVGFyZ2V0cyI6IFsyXSB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iLCAiYVRhcmdldHMiOiBbM10gfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIsICJhVGFyZ2V0cyI6IFs0XSB9CgkJCQldLAoJCQkJImJQYWdpbmF0ZSI6IHRydWUKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcGFnaW5hdGUnKSAhPSBudWxsOyB9CgkpOwoJCgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/bProcessing.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJQcm9jZXNzaW5nIiApOwoKLyogSXQncyBhY3R1YWxseSBhIGJpdCBoYXJkIHRvIHNldCB0aGlzIG9uZSBkdWUgdG8gdGhlIGZhY3QgdGhhdCBpdCB3aWxsIG9ubHkgYmUgc2hvd24KICogd2hlbiBEYXRhVGFibGVzIGlzIGRvaW5nIHNvbWUga2luZCBvZiBwcm9jZXNzaW5nLiBUaGUgc2VydmVyLXNpZGUgcHJvY2Vzc2luZyBpcyBhIGJpdAogKiBiZXR0ZXIgdG8gdGVzdCB0aGlzIHRoYW4gaGVyZSAtIHNvIHdlIGp1c3QgdGhlIGludGVyYWwgZnVuY3Rpb25zIHRvIGVuYWJsZSBpdCBhbmQgY2hlY2sKICogdGhhdCBpdCBpcyBhdmFpbGFibGUKICovCgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCSJhb0NvbHVtbnMiOiBbCgkJCXsgIm1EYXRhIjogImVuZ2luZSIgfSwKCQkJeyAibURhdGEiOiAiYnJvd3NlciIgfSwKCQkJeyAibURhdGEiOiAicGxhdGZvcm0iIH0sCgkJCXsgIm1EYXRhIjogInZlcnNpb24iIH0sCgkJCXsgIm1EYXRhIjogImdyYWRlIiB9CgkJXQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJQcm9jZXNzaW5nIGlzIG9mZiBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vRmVhdHVyZXMuYlByb2Nlc3NpbmcgPT0gZmFsc2U7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJQcm9jZXNzaW5nIGRpdiBpcyBub3QgaW4gdGhlIERPTSIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUub0FwaS5fZm5Qcm9jZXNzaW5nRGlzcGxheSggb1NldHRpbmdzLCB0cnVlICk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcHJvY2Vzc2luZycpID09IG51bGw7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJQcm9jZXNzaW5nIGRpdiBjYW5ub3QgYmUgc2hvd24iLAoJCWZ1bmN0aW9uICgpIHsgb1RhYmxlLm9BcGkuX2ZuUHJvY2Vzc2luZ0Rpc3BsYXkoIG9TZXR0aW5ncywgdHJ1ZSApOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3Byb2Nlc3NpbmcnKSA9PSBudWxsOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUHJvY2Vzc2luZyBkaXYgY2Fubm90IGJlIGhpZGRlbiIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUub0FwaS5fZm5Qcm9jZXNzaW5nRGlzcGxheSggb1NldHRpbmdzLCBmYWxzZSApOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3Byb2Nlc3NpbmcnKSA9PSBudWxsOyB9CgkpOwoJCgkKCS8qIENoZWNrIGNhbiBkaXNhYmxlICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUHJvY2Vzc2luZyBjYW4gYmUgZW5hYmxlZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1uRGVmcyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiLCAiYVRhcmdldHMiOiBbMF0gfSwKCQkJCQl7ICJtRGF0YSI6ICJicm93c2VyIiwgImFUYXJnZXRzIjogWzFdIH0sCgkJCQkJeyAibURhdGEiOiAicGxhdGZvcm0iLCAiYVRhcmdldHMiOiBbMl0gfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiwgImFUYXJnZXRzIjogWzNdIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiLCAiYVRhcmdldHMiOiBbNF0gfQoJCQkJXSwKCQkJCSJiUHJvY2Vzc2luZyI6IHRydWUKCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9GZWF0dXJlcy5iUHJvY2Vzc2luZyA9PSB0cnVlOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUHJvY2Vzc2luZyBkaXYgaXMgaW4gdGhlIERPTSIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUub0FwaS5fZm5Qcm9jZXNzaW5nRGlzcGxheSggb1NldHRpbmdzLCB0cnVlICk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcHJvY2Vzc2luZycpOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUHJvY2Vzc2luZyBkaXYgaXMgaGlkZGVuIGJ5IGRlZmF1bHQiLAoJCWZ1bmN0aW9uICgpIHsgb1RhYmxlLm9BcGkuX2ZuUHJvY2Vzc2luZ0Rpc3BsYXkoIG9TZXR0aW5ncywgdHJ1ZSApOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3Byb2Nlc3NpbmcnKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJQcm9jZXNzaW5nIGRpdiBjYW4gYmUgc2hvd24iLAoJCWZ1bmN0aW9uICgpIHsgb1RhYmxlLm9BcGkuX2ZuUHJvY2Vzc2luZ0Rpc3BsYXkoIG9TZXR0aW5ncywgdHJ1ZSApOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3Byb2Nlc3NpbmcnKS5zdHlsZS52aXNpYmlsaXR5ID0gInZpc2libGUiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUHJvY2Vzc2luZyBkaXYgY2FuIGJlIGhpZGRlbiIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUub0FwaS5fZm5Qcm9jZXNzaW5nRGlzcGxheSggb1NldHRpbmdzLCBmYWxzZSApOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3Byb2Nlc3NpbmcnKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7IH0KCSk7CgkKCS8qIEVuYWJsZSBtYWtlcyBubyBkaWZmZXJlbmNlICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUHJvY2Vzc2luZyBkaXNhYmxlZCBvdmVycmlkZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1uRGVmcyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiLCAiYVRhcmdldHMiOiBbMF0gfSwKCQkJCQl7ICJtRGF0YSI6ICJicm93c2VyIiwgImFUYXJnZXRzIjogWzFdIH0sCgkJCQkJeyAibURhdGEiOiAicGxhdGZvcm0iLCAiYVRhcmdldHMiOiBbMl0gfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiwgImFUYXJnZXRzIjogWzNdIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiLCAiYVRhcmdldHMiOiBbNF0gfQoJCQkJXSwKCQkJCSJiUHJvY2Vzc2luZyI6IGZhbHNlCgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vRmVhdHVyZXMuYlByb2Nlc3NpbmcgPT0gZmFsc2U7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJQcm9jZXNzaW5nIGRpdiBpcyBub3QgaW4gdGhlIERPTSIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUub0FwaS5fZm5Qcm9jZXNzaW5nRGlzcGxheSggb1NldHRpbmdzLCB0cnVlICk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcHJvY2Vzc2luZycpID09IG51bGw7IH0KCSk7CgkKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/bServerSide.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJTZXJ2ZXJTaWRlIiApOwoKLyogTm90IGludGVyZXN0ZWQgaW4gc2VydmVyLXNpZGUgcHJvY2Vzc2luZyBoZXJlIG90aGVyIHRoYW4gdG8gY2hlY2sgdGhhdCBpdCBpcyBvZmYgKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJImFvQ29sdW1ucyI6IFsKCQkJeyAibURhdGEiOiAiZW5naW5lIiB9LAoJCQl7ICJtRGF0YSI6ICJicm93c2VyIiB9LAoJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIgfSwKCQkJeyAibURhdGEiOiAidmVyc2lvbiIgfSwKCQkJeyAibURhdGEiOiAiZ3JhZGUiIH0KCQldCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNlcnZlciBzaWRlIGlzIG9mZiBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vRmVhdHVyZXMuYlNlcnZlclNpZGUgPT0gZmFsc2U7IH0KCSk7CgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/bSort.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJTb3J0IiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCSJhb0NvbHVtbnMiOiBbCgkJCXsgIm1EYXRhIjogImVuZ2luZSIgfSwKCQkJeyAibURhdGEiOiAiYnJvd3NlciIgfSwKCQkJeyAibURhdGEiOiAicGxhdGZvcm0iIH0sCgkJCXsgIm1EYXRhIjogInZlcnNpb24iIH0sCgkJCXsgIm1EYXRhIjogImdyYWRlIiB9CgkJXQoJfSApOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU29ydGluZyBpcyBvbiBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDApJykuaHRtbCgpID09ICJHZWNrbyI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTb3J0aW5nIEFzYyBieSBkZWZhdWx0IGNsYXNzIGFwcGxpZWQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMCknKS5oYXNDbGFzcygic29ydGluZ19hc2MiKTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiQ2xpY2sgb24gc2Vjb25kIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU29ydGluZyBjbGFzcyByZW1vdmVkIGZyb20gZmlyc3QgY29sdW1uIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDApJykuaGFzQ2xhc3MoInNvcnRpbmdfYXNjIikgIT0gdHJ1ZTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgYXNjIGNsYXNzIGFwcGxpZWQgdG8gc2Vjb25kIGNvbHVtbiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmhhc0NsYXNzKCJzb3J0aW5nX2FzYyIpOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KAoJCSJSZXZlcnNlIG9uIHNlY29uZCBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJTZWFtb25rZXkgMS4xIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgYWNzIGNsYXNzIHJlbW92ZWQgZnJvbSBzZWNvbmQgY29sdW1uIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuaGFzQ2xhc3MoInNvcnRpbmdfYXNjIikgIT0gdHJ1ZTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgZGVzYyBjbGFzcyBhcHBsaWVkIHRvIHNlY29uZCBjb2x1bW4iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5oYXNDbGFzcygic29ydGluZ19kZXNjIik7IH0KCSk7CgkKCS8qIENoZWNrIGNhbiBkaXNhYmxlICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUGFnaWFudGlvbiBjYW4gYmUgZGlzYWJsZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiwgImFUYXJnZXRzIjogWzBdIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIsICJhVGFyZ2V0cyI6IFsxXSB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiwgImFUYXJnZXRzIjogWzJdIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIsICJhVGFyZ2V0cyI6IFszXSB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiwgImFUYXJnZXRzIjogWzRdIH0KCQkJCV0sCgkJCQkiYlNvcnQiOiBmYWxzZQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiNCI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIkNsaWNrIG9uIHNlY29uZCBjb2x1bW4gaGFzIG5vIGVmZmVjdCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIjQiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KAoJCSJSZXZlcnNlIG9uIHNlY29uZCBjb2x1bW4gaGFzIG5vIGVmZmVjdCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIjQiOyB9CgkpOwoJCgkvKiBFbmFibGUgbWFrZXMgbm8gZGlmZmVyZW5jZSAqLwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgZW5hYmxlZCBvdmVycmlkZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1uRGVmcyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiLCAiYVRhcmdldHMiOiBbMF0gfSwKCQkJCQl7ICJtRGF0YSI6ICJicm93c2VyIiwgImFUYXJnZXRzIjogWzFdIH0sCgkJCQkJeyAibURhdGEiOiAicGxhdGZvcm0iLCAiYVRhcmdldHMiOiBbMl0gfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiwgImFUYXJnZXRzIjogWzNdIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiLCAiYVRhcmdldHMiOiBbNF0gfQoJCQkJXSwKCQkJCSJiU29ydCI6IHRydWUKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gIkdlY2tvIjsgfQoJKTsKCQoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/bSortClasses.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJTb3J0Q2xhc3NlcyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkiYW9Db2x1bW5zIjogWwoJCQl7ICJtRGF0YSI6ICJlbmdpbmUiIH0sCgkJCXsgIm1EYXRhIjogImJyb3dzZXIiIH0sCgkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiB9LAoJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiB9LAoJCQl7ICJtRGF0YSI6ICJncmFkZSIgfQoJCV0KCX0gKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgY2xhc3NlcyBhcmUgYXBwbGllZCBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMScpOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU29ydGluZyBjbGFzc2VzIGFyZSBhcHBsaWVkIHRvIGFsbCByZXF1aXJlZCBjZWxscyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSg3KSB0ZDplcSgwKScpLmhhc0NsYXNzKCdzb3J0aW5nXzEnKTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgY2xhc3NlcyBhcmUgbm90IGFwcGxpZWQgdG8gbm9uLXNvcnRpbmcgY29sdW1ucyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmhhc0NsYXNzKCdzb3J0aW5nXzEnKSA9PSBmYWxzZTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgbXVsdGktY29sdW1uIC0gYWRkIGNvbHVtbiAxIiwKCQlmdW5jdGlvbiAoKSB7IAoJCQlvRGlzcGFjaGVyLmNsaWNrKCAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpWzBdLCB7ICdzaGlmdCc6IHRydWUgfSApOyB9LAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMScpICYmCgkJCQkJCSAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmhhc0NsYXNzKCdzb3J0aW5nXzInKTsKCQl9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU29ydGluZyBtdWx0aS1jb2x1bW4gLSBhZGQgY29sdW1uIDIiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCW9EaXNwYWNoZXIuY2xpY2soICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDIpJylbMF0sIHsgJ3NoaWZ0JzogdHJ1ZSB9ICk7IH0sCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5oYXNDbGFzcygnc29ydGluZ18xJykgJiYKCQkJCQkJICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMicpICYmCgkJCQkJCSAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgyKScpLmhhc0NsYXNzKCdzb3J0aW5nXzMnKTsKCQl9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU29ydGluZyBtdWx0aS1jb2x1bW4gLSBhZGQgY29sdW1uIDMiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCW9EaXNwYWNoZXIuY2xpY2soICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJylbMF0sIHsgJ3NoaWZ0JzogdHJ1ZSB9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmhhc0NsYXNzKCdzb3J0aW5nXzEnKSAmJgoJCQkJCQkgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5oYXNDbGFzcygnc29ydGluZ18yJykgJiYKCQkJCQkJICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDIpJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMycpICYmCgkJCQkJCSAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgzKScpLmhhc0NsYXNzKCdzb3J0aW5nXzMnKTsKCQl9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUmVtb3ZlIHNvcnRpbmcgY2xhc3NlcyBvbiBzaW5nbGUgY29sdW1uIHNvcnQiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDQpJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMScpID09IGZhbHNlICYmCgkJCQkJCSAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmhhc0NsYXNzKCdzb3J0aW5nXzInKSA9PSBmYWxzZSAmJgoJCQkJCQkgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMiknKS5oYXNDbGFzcygnc29ydGluZ18zJykgPT0gZmFsc2UgJiYKCQkJCQkJICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDMpJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMycpID09IGZhbHNlOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTb3J0aW5nIGNsYXNzIDEgd2FzIGFkZGVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDEpIHRkOmVxKDQpJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMScpOyB9CgkpOwoJCgkKCS8qIENoZWNrIGNhbiBkaXNhYmxlICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU29ydGluZyBjbGFzc2VzIGNhbiBiZSBkaXNhYmxlZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1uRGVmcyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiLCAiYVRhcmdldHMiOiBbMF0gfSwKCQkJCQl7ICJtRGF0YSI6ICJicm93c2VyIiwgImFUYXJnZXRzIjogWzFdIH0sCgkJCQkJeyAibURhdGEiOiAicGxhdGZvcm0iLCAiYVRhcmdldHMiOiBbMl0gfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiwgImFUYXJnZXRzIjogWzNdIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiLCAiYVRhcmdldHMiOiBbNF0gfQoJCQkJXSwKCQkJCSJiU29ydENsYXNzZXMiOiBmYWxzZQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmhhc0NsYXNzKCdzb3J0aW5nXzEnKSA9PSBmYWxzZTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgY2xhc3NlcyBkaXNhYmxlZCAtIGFkZCBjb2x1bW4gMSAtIG5vIGVmZmVjdCIsCgkJZnVuY3Rpb24gKCkgeyAKCQkJb0Rpc3BhY2hlci5jbGljayggJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKVswXSwgeyAnc2hpZnQnOiB0cnVlIH0gKTsgfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmhhc0NsYXNzKCdzb3J0aW5nXzEnKSA9PSBmYWxzZSAmJgoJCQkJCQkgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5oYXNDbGFzcygnc29ydGluZ18yJykgPT0gZmFsc2U7CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgY2xhc3NlcyBkaXNhYmxlZCAtIGFkZCBjb2x1bW4gMiAtIG5vIGVmZmVjdCIsCgkJZnVuY3Rpb24gKCkgeyAKCQkJb0Rpc3BhY2hlci5jbGljayggJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMiknKVswXSwgeyAnc2hpZnQnOiB0cnVlIH0gKTsgfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmhhc0NsYXNzKCdzb3J0aW5nXzEnKSA9PSBmYWxzZSAmJgoJCQkJCQkgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5oYXNDbGFzcygnc29ydGluZ18yJykgPT0gZmFsc2UgJiYKCQkJCQkJICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDIpJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMycpID09IGZhbHNlOwoJCX0KCSk7CgkKCQoJLyogRW5hYmxlIG1ha2VzIG5vIGRpZmZlcmVuY2UgKi8KCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTb3J0aW5nIGNsYXNzZXMgZW5hYmxlZCBvdmVycmlkZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1uRGVmcyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiLCAiYVRhcmdldHMiOiBbMF0gfSwKCQkJCQl7ICJtRGF0YSI6ICJicm93c2VyIiwgImFUYXJnZXRzIjogWzFdIH0sCgkJCQkJeyAibURhdGEiOiAicGxhdGZvcm0iLCAiYVRhcmdldHMiOiBbMl0gfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiwgImFUYXJnZXRzIjogWzNdIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiLCAiYVRhcmdldHMiOiBbNF0gfQoJCQkJXSwKCQkJCSJiU29ydENsYXNzZXMiOiB0cnVlCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMScpOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/fnDrawCallback.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImZuRHJhd0NhbGxiYWNrIiApOwoKLyogRmFpcmx5IGJvcmluZyBmdW5jdGlvbiBjb21wYXJlZCB0byB0aGUgb3RoZXJzISAqLwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkiYW9Db2x1bW5zIjogWwoJCQl7ICJtRGF0YSI6ICJlbmdpbmUiIH0sCgkJCXsgIm1EYXRhIjogImJyb3dzZXIiIH0sCgkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiB9LAoJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiB9LAoJCQl7ICJtRGF0YSI6ICJncmFkZSIgfQoJCV0KCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJdmFyIG1QYXNzLCBiSW5pdDsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkRlZmF1bHQgc2hvdWxkIGJlIG51bGwiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLmZuRHJhd0NhbGxiYWNrID09IG51bGw7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk9uZSBhcmd1bWVudCBwYXNzZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IC0xOwoJCQliSW5pdCA9IGZhbHNlOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5EZWZzIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIsICJhVGFyZ2V0cyI6IFswXSB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiYVRhcmdldHMiOiBbMV0gfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIsICJhVGFyZ2V0cyI6IFsyXSB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iLCAiYVRhcmdldHMiOiBbM10gfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIsICJhVGFyZ2V0cyI6IFs0XSB9CgkJCQldLAoJCQkJImZuRHJhd0NhbGxiYWNrIjogZnVuY3Rpb24gKCApIHsKCQkJCQltUGFzcyA9IGFyZ3VtZW50cy5sZW5ndGg7CgkJCQl9LAoJCQkJImZuSW5pdENvbXBsZXRlIjogZnVuY3Rpb24gKCkgewoJCQkJCWJJbml0ID0gdHJ1ZTsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3MgPT0gMSAmJiBiSW5pdDsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiVGhhdCBvbmUgYXJndW1lbnQgaXMgdGhlIHNldHRpbmdzIG9iamVjdCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCWJJbml0ID0gZmFsc2U7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiwgImFUYXJnZXRzIjogWzBdIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIsICJhVGFyZ2V0cyI6IFsxXSB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiwgImFUYXJnZXRzIjogWzJdIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIsICJhVGFyZ2V0cyI6IFszXSB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiwgImFUYXJnZXRzIjogWzRdIH0KCQkJCV0sCgkJCQkiZm5EcmF3Q2FsbGJhY2siOiBmdW5jdGlvbiAoIG9TZXR0aW5ncyApIHsKCQkJCQltUGFzcyA9IG9TZXR0aW5nczsKCQkJCX0sCgkJCQkiZm5Jbml0Q29tcGxldGUiOiBmdW5jdGlvbiAoKSB7CgkJCQkJYkluaXQgPSB0cnVlOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvVGFibGUuZm5TZXR0aW5ncygpID09IG1QYXNzICYmIGJJbml0OyB9CgkpOwoJCgkKCS8qIFRoZSBkcmF3IGNhbGxiYWNrIGlzIGNhbGxlZCBvbmNlIGZvciB0aGUgaW5pdCBhbmQgdGhlbiB3aGVuIHRoZSBkYXRhIGlzIGFkZGVkICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiZm5Sb3dDYWxsYmFjayBjYWxsZWQgb25jZSBvbiBmaXJzdCBkcmF3IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSAwOwoJCQliSW5pdCA9IGZhbHNlOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5EZWZzIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIsICJhVGFyZ2V0cyI6IFswXSB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiYVRhcmdldHMiOiBbMV0gfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIsICJhVGFyZ2V0cyI6IFsyXSB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iLCAiYVRhcmdldHMiOiBbM10gfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIsICJhVGFyZ2V0cyI6IFs0XSB9CgkJCQldLAoJCQkJImZuRHJhd0NhbGxiYWNrIjogZnVuY3Rpb24gKCApIHsKCQkJCQltUGFzcysrOwoJCQkJfSwKCQkJCSJmbkluaXRDb21wbGV0ZSI6IGZ1bmN0aW9uICgpIHsKCQkJCQliSW5pdCA9IHRydWU7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzID09IDIgJiYgYkluaXQ7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJmblJvd0NhbGxiYWNrIGNhbGxlZCBvbmNlIG9uIGVhY2ggZHJhdyB0aGVyZSBhZnRlciBhcyB3ZWxsIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzcyA9PSA1OyB9CgkpOwoJCgkKCQoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/fnHeaderCallback.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImZuSGVhZGVyQ2FsbGJhY2siICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCSJhb0NvbHVtbnMiOiBbCgkJCXsgIm1EYXRhIjogImVuZ2luZSIgfSwKCQkJeyAibURhdGEiOiAiYnJvd3NlciIgfSwKCQkJeyAibURhdGEiOiAicGxhdGZvcm0iIH0sCgkJCXsgIm1EYXRhIjogInZlcnNpb24iIH0sCgkJCXsgIm1EYXRhIjogImdyYWRlIiB9CgkJXQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7Cgl2YXIgbVBhc3MsIGJJbml0OwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRGVmYXVsdCBzaG91bGQgYmUgbnVsbCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3MuZm5IZWFkZXJDYWxsYmFjayA9PSBudWxsOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJGaXZlIGFyZ3VtZW50cyBwYXNzZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IC0xOwoJCQliSW5pdCA9IGZhbHNlOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5EZWZzIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIsICJhVGFyZ2V0cyI6IFswXSB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiYVRhcmdldHMiOiBbMV0gfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIsICJhVGFyZ2V0cyI6IFsyXSB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iLCAiYVRhcmdldHMiOiBbM10gfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIsICJhVGFyZ2V0cyI6IFs0XSB9CgkJCQldLAoJCQkJImZuSGVhZGVyQ2FsbGJhY2siOiBmdW5jdGlvbiAoICkgewoJCQkJCW1QYXNzID0gYXJndW1lbnRzLmxlbmd0aDsKCQkJCX0sCgkJCQkiZm5Jbml0Q29tcGxldGUiOiBmdW5jdGlvbiAoKSB7CgkJCQkJYkluaXQgPSB0cnVlOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzcyA9PSA1ICYmIGJJbml0OyB9CgkpOwoJCgkKCS8qIFRoZSBoZWFkZXIgY2FsbGJhY2sgaXMgY2FsbGVkIG9uY2UgZm9yIHRoZSBpbml0IGFuZCB0aGVuIHdoZW4gdGhlIGRhdGEgaXMgYWRkZWQgKi8KCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJmbkhlYWRlckNhbGxiYWNrIGNhbGxlZCBvbmNlIHBlciBkcmF3IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSAwOwoJCQliSW5pdCA9IGZhbHNlOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5EZWZzIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIsICJhVGFyZ2V0cyI6IFswXSB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiYVRhcmdldHMiOiBbMV0gfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIsICJhVGFyZ2V0cyI6IFsyXSB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iLCAiYVRhcmdldHMiOiBbM10gfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIsICJhVGFyZ2V0cyI6IFs0XSB9CgkJCQldLAoJCQkJImZuSGVhZGVyQ2FsbGJhY2siOiBmdW5jdGlvbiAoIG5IZWFkLCBhYXNEYXRhLCBpU3RhcnQsIGlFbmQsIGFpRGlzcGxheSApIHsKCQkJCQltUGFzcysrOwoJCQkJfSwKCQkJCSJmbkluaXRDb21wbGV0ZSI6IGZ1bmN0aW9uICgpIHsKCQkJCQliSW5pdCA9IHRydWU7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzID09IDIgJiYgYkluaXQ7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJmblJvd0NhbGxiYWNrIGNhbGxlZCBvbiBwYWdpbmcgKGkuZS4gYW5vdGhlciBkcmF3KSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzcyA9PSAzOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJmblJvd0NhbGxiYWNrIGFsbG93cyB1cyB0byBhbHRlciByb3cgaW5mb3JtYXRpb24iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiwgImFUYXJnZXRzIjogWzBdIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIsICJhVGFyZ2V0cyI6IFsxXSB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiwgImFUYXJnZXRzIjogWzJdIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIsICJhVGFyZ2V0cyI6IFszXSB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiwgImFUYXJnZXRzIjogWzRdIH0KCQkJCV0sCgkJCQkiZm5IZWFkZXJDYWxsYmFjayI6IGZ1bmN0aW9uICggbkhlYWQsIGFhc0RhdGEsIGlTdGFydCwgaUVuZCwgYWlEaXNwbGF5ICkgewoJCQkJCW5IZWFkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0aCcpWzBdLmlubmVySFRNTCA9ICJEaXNwbGF5aW5nICIrKGlFbmQtaVN0YXJ0KSsiIHJlY29yZHMiOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgwKScpLmh0bWwoKSA9PSAiRGlzcGxheWluZyAxMCByZWNvcmRzIjsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiaVN0YXJ0IGNvcnJlY3Qgb24gZmlyc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gdHJ1ZTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1uRGVmcyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiLCAiYVRhcmdldHMiOiBbMF0gfSwKCQkJCQl7ICJtRGF0YSI6ICJicm93c2VyIiwgImFUYXJnZXRzIjogWzFdIH0sCgkJCQkJeyAibURhdGEiOiAicGxhdGZvcm0iLCAiYVRhcmdldHMiOiBbMl0gfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiwgImFUYXJnZXRzIjogWzNdIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiLCAiYVRhcmdldHMiOiBbNF0gfQoJCQkJXSwKCQkJCSJmbkhlYWRlckNhbGxiYWNrIjogZnVuY3Rpb24gKCBuSGVhZCwgYWFzRGF0YSwgaVN0YXJ0LCBpRW5kLCBhaURpc3BsYXkgKSB7CgkJCQkJaWYgKCBpU3RhcnQgIT0gMCApCgkJCQkJewoJCQkJCQltUGFzcyA9IGZhbHNlOwoJCQkJCX0KCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3M7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJImlTdGFydCBjb3JyZWN0IG9uIHNlY29uZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSBmYWxzZTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1uRGVmcyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiLCAiYVRhcmdldHMiOiBbMF0gfSwKCQkJCQl7ICJtRGF0YSI6ICJicm93c2VyIiwgImFUYXJnZXRzIjogWzFdIH0sCgkJCQkJeyAibURhdGEiOiAicGxhdGZvcm0iLCAiYVRhcmdldHMiOiBbMl0gfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiwgImFUYXJnZXRzIjogWzNdIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiLCAiYVRhcmdldHMiOiBbNF0gfQoJCQkJXSwKCQkJCSJmbkhlYWRlckNhbGxiYWNrIjogZnVuY3Rpb24gKCBuSGVhZCwgYWFzRGF0YSwgaVN0YXJ0LCBpRW5kLCBhaURpc3BsYXkgKSB7CgkJCQkJaWYgKCBpU3RhcnQgPT0gMTAgKQoJCQkJCXsKCQkJCQkJbVBhc3MgPSB0cnVlOwoJCQkJCX0KCQkJCX0sCgkJCQkiZm5Jbml0Q29tcGxldGUiOiBmdW5jdGlvbiAoKSB7CgkJCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJpRW5kIGNvcnJlY3Qgb24gc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IGZhbHNlOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5EZWZzIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIsICJhVGFyZ2V0cyI6IFswXSB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiYVRhcmdldHMiOiBbMV0gfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIsICJhVGFyZ2V0cyI6IFsyXSB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iLCAiYVRhcmdldHMiOiBbM10gfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIsICJhVGFyZ2V0cyI6IFs0XSB9CgkJCQldLAoJCQkJImZuSGVhZGVyQ2FsbGJhY2siOiBmdW5jdGlvbiAoIG5IZWFkLCBhYXNEYXRhLCBpU3RhcnQsIGlFbmQsIGFpRGlzcGxheSApIHsKCQkJCQlpZiAoIGlFbmQgPT0gMjAgKQoJCQkJCXsKCQkJCQkJbVBhc3MgPSB0cnVlOwoJCQkJCX0KCQkJCX0sCgkJCQkiZm5Jbml0Q29tcGxldGUiOiBmdW5jdGlvbiAoKSB7CgkJCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJhaURpc3BsYXkgbGVuZ3RoIGlzIGZ1bGwgZGF0YSB3aGVuIG5vdCBmaWx0ZXJlZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gZmFsc2U7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiwgImFUYXJnZXRzIjogWzBdIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIsICJhVGFyZ2V0cyI6IFsxXSB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiwgImFUYXJnZXRzIjogWzJdIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIsICJhVGFyZ2V0cyI6IFszXSB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiwgImFUYXJnZXRzIjogWzRdIH0KCQkJCV0sCgkJCQkiZm5IZWFkZXJDYWxsYmFjayI6IGZ1bmN0aW9uICggbkhlYWQsIGFhc0RhdGEsIGlTdGFydCwgaUVuZCwgYWlEaXNwbGF5ICkgewoJCQkJCWlmICggYWlEaXNwbGF5Lmxlbmd0aCA9PSA1NyApCgkJCQkJewoJCQkJCQltUGFzcyA9IHRydWU7CgkJCQkJfQoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzczsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJImFpRGlzcGxheSBsZW5ndGggaXMgOSB3aGVuIGZpbHRlcmluZyBvbiAnTW96aWxsYSciLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IGZhbHNlOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5EZWZzIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIsICJhVGFyZ2V0cyI6IFswXSB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiYVRhcmdldHMiOiBbMV0gfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIsICJhVGFyZ2V0cyI6IFsyXSB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iLCAiYVRhcmdldHMiOiBbM10gfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIsICJhVGFyZ2V0cyI6IFs0XSB9CgkJCQldLAoJCQkJImZuSGVhZGVyQ2FsbGJhY2siOiBmdW5jdGlvbiAoIG5IZWFkLCBhYXNEYXRhLCBpU3RhcnQsIGlFbmQsIGFpRGlzcGxheSApIHsKCQkJCQlpZiAoIGFpRGlzcGxheS5sZW5ndGggPT0gOSApCgkJCQkJewoJCQkJCQltUGFzcyA9IHRydWU7CgkJCQkJfQoJCQkJfQoJCQl9ICk7CgkJCW9UYWJsZS5mbkZpbHRlciggIk1vemlsbGEiICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzczsgfQoJKTsKCQoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/fnInitComplete.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImZuSW5pdENvbXBsZXRlIiApOwoKLyogRmFpcmx5IGJvcmluZyBmdW5jdGlvbiBjb21wYXJlZCB0byB0aGUgb3RoZXJzISAqLwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkiYW9Db2x1bW5zIjogWwoJCQl7ICJtRGF0YSI6ICJlbmdpbmUiIH0sCgkJCXsgIm1EYXRhIjogImJyb3dzZXIiIH0sCgkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiB9LAoJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiB9LAoJCQl7ICJtRGF0YSI6ICJncmFkZSIgfQoJCV0KCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJdmFyIG1QYXNzOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRGVmYXVsdCBzaG91bGQgYmUgbnVsbCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3MuZm5Jbml0Q29tcGxldGUgPT0gbnVsbDsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiVHdvIGFyZ3VtZW50cyBwYXNzZWQgKGZvciBBamF4ISkiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IC0xOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5EZWZzIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIsICJhVGFyZ2V0cyI6IFswXSB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiYVRhcmdldHMiOiBbMV0gfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIsICJhVGFyZ2V0cyI6IFsyXSB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iLCAiYVRhcmdldHMiOiBbM10gfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIsICJhVGFyZ2V0cyI6IFs0XSB9CgkJCQldLAoJCQkJImZuSW5pdENvbXBsZXRlIjogZnVuY3Rpb24gKCApIHsKCQkJCQltUGFzcyA9IGFyZ3VtZW50cy5sZW5ndGg7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzID09IDI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlRoYXQgb25lIGFyZ3VtZW50IGlzIHRoZSBzZXR0aW5ncyBvYmplY3QiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5EZWZzIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIsICJhVGFyZ2V0cyI6IFswXSB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiYVRhcmdldHMiOiBbMV0gfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIsICJhVGFyZ2V0cyI6IFsyXSB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iLCAiYVRhcmdldHMiOiBbM10gfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIsICJhVGFyZ2V0cyI6IFs0XSB9CgkJCQldLAoJCQkJImZuSW5pdENvbXBsZXRlIjogZnVuY3Rpb24gKCBvU2V0dGluZ3MgKSB7CgkJCQkJbVBhc3MgPSBvU2V0dGluZ3M7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9UYWJsZS5mblNldHRpbmdzKCkgPT0gbVBhc3M7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJImZuSW5pdENvbXBsZXRlIGNhbGxlZCBvbmNlIG9uIGZpcnN0IGRyYXciLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IDA7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiwgImFUYXJnZXRzIjogWzBdIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIsICJhVGFyZ2V0cyI6IFsxXSB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiwgImFUYXJnZXRzIjogWzJdIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIsICJhVGFyZ2V0cyI6IFszXSB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiwgImFUYXJnZXRzIjogWzRdIH0KCQkJCV0sCgkJCQkiZm5Jbml0Q29tcGxldGUiOiBmdW5jdGlvbiAoICkgewoJCQkJCW1QYXNzKys7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzID09IDE7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJmbkluaXRDb21wbGV0ZSBuZXZlciBjYWxsZWQgdGhlcmUgYWZ0ZXIiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzID09IDE7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIjEwIHJvd3MgaW4gdGhlIHRhYmxlIG9uIGNvbXBsZXRlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSAwOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5EZWZzIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIsICJhVGFyZ2V0cyI6IFswXSB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiYVRhcmdldHMiOiBbMV0gfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIsICJhVGFyZ2V0cyI6IFsyXSB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iLCAiYVRhcmdldHMiOiBbM10gfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIsICJhVGFyZ2V0cyI6IFs0XSB9CgkJCQldLAoJCQkJImZuSW5pdENvbXBsZXRlIjogZnVuY3Rpb24gKCApIHsKCQkJCQltUGFzcyA9ICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzcyA9PSAxMDsgfQoJKTsKCQoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/fnRowCallback.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImZuUm93Q2FsbGJhY2siICk7CgovKiBOb3RlIC0gZm5Sb3dDYWxsYmFjayBNVVNUIHJldHVybiB0aGUgZmlyc3QgYXJndW1lbnRzIChtb2RpZmllZCBvciBub3QpICovCgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCSJhb0NvbHVtbnMiOiBbCgkJCXsgIm1EYXRhIjogImVuZ2luZSIgfSwKCQkJeyAibURhdGEiOiAiYnJvd3NlciIgfSwKCQkJeyAibURhdGEiOiAicGxhdGZvcm0iIH0sCgkJCXsgIm1EYXRhIjogInZlcnNpb24iIH0sCgkJCXsgIm1EYXRhIjogImdyYWRlIiB9CgkJXQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7Cgl2YXIgbVBhc3M7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJEZWZhdWx0IHNob3VsZCBiZSBudWxsIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5mblJvd0NhbGxiYWNrID09IG51bGw7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkZvdXIgYXJndW1lbnRzIHBhc3NlZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gLTE7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiwgImFUYXJnZXRzIjogWzBdIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIsICJhVGFyZ2V0cyI6IFsxXSB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiwgImFUYXJnZXRzIjogWzJdIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIsICJhVGFyZ2V0cyI6IFszXSB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiwgImFUYXJnZXRzIjogWzRdIH0KCQkJCV0sCgkJCQkiZm5Sb3dDYWxsYmFjayI6IGZ1bmN0aW9uICggblRyICkgewoJCQkJCW1QYXNzID0gYXJndW1lbnRzLmxlbmd0aDsKCQkJCQlyZXR1cm4gblRyOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzcyA9PSA0OyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJmblJvd0NhbGxiYWNrIGNhbGxlZCBvbmNlIGZvciBlYWNoIGRyYXduIHJvdyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gMDsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1uRGVmcyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiLCAiYVRhcmdldHMiOiBbMF0gfSwKCQkJCQl7ICJtRGF0YSI6ICJicm93c2VyIiwgImFUYXJnZXRzIjogWzFdIH0sCgkJCQkJeyAibURhdGEiOiAicGxhdGZvcm0iLCAiYVRhcmdldHMiOiBbMl0gfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiwgImFUYXJnZXRzIjogWzNdIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiLCAiYVRhcmdldHMiOiBbNF0gfQoJCQkJXSwKCQkJCSJmblJvd0NhbGxiYWNrIjogZnVuY3Rpb24gKCBuVHIsIGFzRGF0YSwgaURyYXdJbmRleCwgaURhdGFJbmRleCApIHsKCQkJCQltUGFzcysrOwoJCQkJCXJldHVybiBuVHI7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzID09IDEwOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiZm5Sb3dDYWxsYmFjayBhbGxvd3MgdXMgdG8gYWx0ZXIgcm93IGluZm9ybWF0aW9uIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5EZWZzIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIsICJhVGFyZ2V0cyI6IFswXSB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiYVRhcmdldHMiOiBbMV0gfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIsICJhVGFyZ2V0cyI6IFsyXSB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iLCAiYVRhcmdldHMiOiBbM10gfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIsICJhVGFyZ2V0cyI6IFs0XSB9CgkJCQldLAoJCQkJImZuUm93Q2FsbGJhY2siOiBmdW5jdGlvbiAoIG5UciwgYXNEYXRhLCBpRHJhd0luZGV4LCBpRGF0YUluZGV4ICkgewoJCQkJCSQoblRyKS5hZGRDbGFzcygndW5pdF90ZXN0Jyk7CgkJCQkJcmV0dXJuIG5UcjsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMSknKS5oYXNDbGFzcygndW5pdF90ZXN0Jyk7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJEYXRhIGFycmF5IGhhcyBsZW5ndGggbWF0Y2hpbmcgY29sdW1ucyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gdHJ1ZTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1uRGVmcyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiLCAiYVRhcmdldHMiOiBbMF0gfSwKCQkJCQl7ICJtRGF0YSI6ICJicm93c2VyIiwgImFUYXJnZXRzIjogWzFdIH0sCgkJCQkJeyAibURhdGEiOiAicGxhdGZvcm0iLCAiYVRhcmdldHMiOiBbMl0gfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiwgImFUYXJnZXRzIjogWzNdIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiLCAiYVRhcmdldHMiOiBbNF0gfQoJCQkJXSwKCQkJCSJmblJvd0NhbGxiYWNrIjogZnVuY3Rpb24gKCBuVHIsIGFzRGF0YSwgaURyYXdJbmRleCwgaURhdGFJbmRleCApIHsKCQkJCQlpZiAoIGFzRGF0YS5sZW5ndGggIT0gNSApCgkJCQkJCW1QYXNzID0gZmFsc2U7CgkJCQkJcmV0dXJuIG5UcjsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3M7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJEYXRhIGFycmF5IGhhcyBsZW5ndGggbWF0Y2hpbmcgY29sdW1ucyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gdHJ1ZTsKCQkJdmFyIGlDb3VudCA9IDA7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiwgImFUYXJnZXRzIjogWzBdIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIsICJhVGFyZ2V0cyI6IFsxXSB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiwgImFUYXJnZXRzIjogWzJdIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIsICJhVGFyZ2V0cyI6IFszXSB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiwgImFUYXJnZXRzIjogWzRdIH0KCQkJCV0sCgkJCQkiZm5Sb3dDYWxsYmFjayI6IGZ1bmN0aW9uICggblRyLCBhc0RhdGEsIGlEcmF3SW5kZXgsIGlEYXRhSW5kZXggKSB7CgkJCQkJaWYgKCBpQ291bnQgIT0gaURyYXdJbmRleCApCgkJCQkJCW1QYXNzID0gZmFsc2U7CgkJCQkJaUNvdW50Kys7CgkJCQkJcmV0dXJuIG5UcjsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3M7IH0KCSk7CgkKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/fnServerData.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImZuU2VydmVyRGF0YSBmb3IgQWpheCBzb3VyY2VkIGRhdGEiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJdmFyIG1QYXNzOwoJCglvVGVzdC5mblRlc3QoIAoJCSJBcmd1bWVudCBsZW5ndGgiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1uRGVmcyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiLCAiYVRhcmdldHMiOiBbMF0gfSwKCQkJCQl7ICJtRGF0YSI6ICJicm93c2VyIiwgImFUYXJnZXRzIjogWzFdIH0sCgkJCQkJeyAibURhdGEiOiAicGxhdGZvcm0iLCAiYVRhcmdldHMiOiBbMl0gfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiwgImFUYXJnZXRzIjogWzNdIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiLCAiYVRhcmdldHMiOiBbNF0gfQoJCQkJXSwKCQkJCSJmblNlcnZlckRhdGEiOiBmdW5jdGlvbiAoKSB7CgkJCQkJbVBhc3MgPSBhcmd1bWVudHMubGVuZ3RoOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzcyA9PSA0OyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJVcmwiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiRGVzdHJveSI6IHRydWUsCgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiwgImFUYXJnZXRzIjogWzBdIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIsICJhVGFyZ2V0cyI6IFsxXSB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiwgImFUYXJnZXRzIjogWzJdIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIsICJhVGFyZ2V0cyI6IFszXSB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiwgImFUYXJnZXRzIjogWzRdIH0KCQkJCV0sCgkJCQkiZm5TZXJ2ZXJEYXRhIjogZnVuY3Rpb24gKHNVcmwsIGFvRGF0YSwgZm5DYWxsYmFjaywgb1NldHRpbmdzKSB7CgkJCQkJbVBhc3MgPSBzVXJsID09ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzczsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiRGF0YSBhcnJheSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJEZXN0cm95IjogdHJ1ZSwKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1uRGVmcyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiLCAiYVRhcmdldHMiOiBbMF0gfSwKCQkJCQl7ICJtRGF0YSI6ICJicm93c2VyIiwgImFUYXJnZXRzIjogWzFdIH0sCgkJCQkJeyAibURhdGEiOiAicGxhdGZvcm0iLCAiYVRhcmdldHMiOiBbMl0gfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiwgImFUYXJnZXRzIjogWzNdIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiLCAiYVRhcmdldHMiOiBbNF0gfQoJCQkJXSwKCQkJCSJmblNlcnZlckRhdGEiOiBmdW5jdGlvbiAoc1VybCwgYW9EYXRhLCBmbkNhbGxiYWNrLCBvU2V0dGluZ3MpIHsKCQkJCQltUGFzcyA9IGFvRGF0YS5sZW5ndGg9PTA7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDYWxsYmFjayBmdW5jdGlvbiIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJImJEZXN0cm95IjogdHJ1ZSwKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1uRGVmcyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiLCAiYVRhcmdldHMiOiBbMF0gfSwKCQkJCQl7ICJtRGF0YSI6ICJicm93c2VyIiwgImFUYXJnZXRzIjogWzFdIH0sCgkJCQkJeyAibURhdGEiOiAicGxhdGZvcm0iLCAiYVRhcmdldHMiOiBbMl0gfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiwgImFUYXJnZXRzIjogWzNdIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiLCAiYVRhcmdldHMiOiBbNF0gfQoJCQkJXSwKCQkJCSJmblNlcnZlckRhdGEiOiBmdW5jdGlvbiAoc1VybCwgYW9EYXRhLCBmbkNhbGxiYWNrLCBvU2V0dGluZ3MpIHsKCQkJCQltUGFzcyA9IHR5cGVvZiBmbkNhbGxiYWNrID09ICdmdW5jdGlvbic7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/iDisplayLength.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImlEaXNwbGF5TGVuZ3RoIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCSJhb0NvbHVtbnMiOiBbCgkJCXsgIm1EYXRhIjogImVuZ2luZSIgfSwKCQkJeyAibURhdGEiOiAiYnJvd3NlciIgfSwKCQkJeyAibURhdGEiOiAicGxhdGZvcm0iIH0sCgkJCXsgIm1EYXRhIjogInZlcnNpb24iIH0sCgkJCXsgIm1EYXRhIjogImdyYWRlIiB9CgkJXQoJfSApOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRGVmYXVsdCBsZW5ndGggaXMgdGVuIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDEwOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU2VsZWN0IG1lbnUgc2hvd3MgMTAiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGVfbGVuZ3RoIHNlbGVjdCcpLnZhbCgpID09IDEwOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTZXQgaW5pdGlhbCBsZW5ndGggdG8gMjUiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiwgImFUYXJnZXRzIjogWzBdIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIsICJhVGFyZ2V0cyI6IFsxXSB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiwgImFUYXJnZXRzIjogWzJdIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIsICJhVGFyZ2V0cyI6IFszXSB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiwgImFUYXJnZXRzIjogWzRdIH0KCQkJCV0sCgkJCQkiaURpc3BsYXlMZW5ndGgiOiAyNQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSAyNTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNlbGVjdCBtZW51IHNob3dzIDI1IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlX2xlbmd0aCBzZWxlY3QnKS52YWwoKSA9PSAyNTsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU2V0IGluaXRpYWwgbGVuZ3RoIHRvIDEwMCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1uRGVmcyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiLCAiYVRhcmdldHMiOiBbMF0gfSwKCQkJCQl7ICJtRGF0YSI6ICJicm93c2VyIiwgImFUYXJnZXRzIjogWzFdIH0sCgkJCQkJeyAibURhdGEiOiAicGxhdGZvcm0iLCAiYVRhcmdldHMiOiBbMl0gfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiwgImFUYXJnZXRzIjogWzNdIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiLCAiYVRhcmdldHMiOiBbNF0gfQoJCQkJXSwKCQkJCSJpRGlzcGxheUxlbmd0aCI6IDEwMAoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSA1NzsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNlbGVjdCBtZW51IHNob3dzIDI1IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlX2xlbmd0aCBzZWxlY3QnKS52YWwoKSA9PSAxMDA7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNldCBpbml0aWFsIGxlbmd0aCB0byAyMyAodW5rbm93biBzZWxlY3QgbWVudSBsZW5ndGgpIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5EZWZzIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIsICJhVGFyZ2V0cyI6IFswXSB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiYVRhcmdldHMiOiBbMV0gfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIsICJhVGFyZ2V0cyI6IFsyXSB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iLCAiYVRhcmdldHMiOiBbM10gfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIsICJhVGFyZ2V0cyI6IFs0XSB9CgkJCQldLAoJCQkJImlEaXNwbGF5TGVuZ3RoIjogMjMKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMjM7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTZWxlY3QgbWVudSBzaG93cyAxMCAoc2luY2UgMjMgaXMgdW5rbm93KSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9sZW5ndGggc2VsZWN0JykudmFsKCkgPT0gMTA7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/oLanguage.oPaginate.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5vUGFnaW5hdGUiICk7CgovKiBOb3RlIHRoYXQgdGhlIHBhZ2luZyBsYW5ndWFnZSBpbmZvcm1hdGlvbiBvbmx5IGhhcyByZWxldmVuY2UgaW4gZnVsbCBudW1iZXJzICovCgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCSJhb0NvbHVtbnMiOiBbCgkJCXsgIm1EYXRhIjogImVuZ2luZSIgfSwKCQkJeyAibURhdGEiOiAiYnJvd3NlciIgfSwKCQkJeyAibURhdGEiOiAicGxhdGZvcm0iIH0sCgkJCXsgIm1EYXRhIjogInZlcnNpb24iIH0sCgkJCXsgIm1EYXRhIjogImdyYWRlIiB9CgkJXSwKCQkic1BhZ2luYXRpb25UeXBlIjogImZ1bGxfbnVtYmVycyIKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkib0xhbmd1YWdlLm9QYWdpbmF0ZSBkZWZhdWx0cyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBiUmV0dXJuID0gCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLm9QYWdpbmF0ZS5zRmlyc3QgPT0gIkZpcnN0IiAmJgoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5vUGFnaW5hdGUuc1ByZXZpb3VzID09ICJQcmV2aW91cyIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uub1BhZ2luYXRlLnNOZXh0ID09ICJOZXh0IiAmJgoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5vUGFnaW5hdGUuc0xhc3QgPT0gIkxhc3QiOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJvTGFuZ3VhZ2Uub1BhZ2luYXRlIGRlZmF1bHRzIGFyZSBpbiB0aGUgRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCSQoJyNleGFtcGxlX3BhZ2luYXRlIC5maXJzdCcpLmh0bWwoKSA9PSAiRmlyc3QiICYmCgkJCQkkKCcjZXhhbXBsZV9wYWdpbmF0ZSAucHJldmlvdXMnKS5odG1sKCkgPT0gIlByZXZpb3VzIiAmJgoJCQkJJCgnI2V4YW1wbGVfcGFnaW5hdGUgLm5leHQnKS5odG1sKCkgPT0gIk5leHQiICYmCgkJCQkkKCcjZXhhbXBsZV9wYWdpbmF0ZSAubGFzdCcpLmh0bWwoKSA9PSAiTGFzdCI7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIm9MYW5ndWFnZS5vUGFnaW5hdGUgY2FuIGJlIGRlZmluZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiwgImFUYXJnZXRzIjogWzBdIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIsICJhVGFyZ2V0cyI6IFsxXSB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiwgImFUYXJnZXRzIjogWzJdIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIsICJhVGFyZ2V0cyI6IFszXSB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiwgImFUYXJnZXRzIjogWzRdIH0KCQkJCV0sCgkJCQkic1BhZ2luYXRpb25UeXBlIjogImZ1bGxfbnVtYmVycyIsCgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJvUGFnaW5hdGUiOiB7CgkJCQkJCSJzRmlyc3QiOiAgICAidW5pdDEiLAoJCQkJCQkic1ByZXZpb3VzIjogInRlc3QyIiwKCQkJCQkJInNOZXh0IjogICAgICJ1bml0MyIsCgkJCQkJCSJzTGFzdCI6ICAgICAidGVzdDQiCgkJCQkJfQoJCQkJfQoJCQl9ICk7CgkJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBiUmV0dXJuID0gCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLm9QYWdpbmF0ZS5zRmlyc3QgPT0gInVuaXQxIiAmJgoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5vUGFnaW5hdGUuc1ByZXZpb3VzID09ICJ0ZXN0MiIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uub1BhZ2luYXRlLnNOZXh0ID09ICJ1bml0MyIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uub1BhZ2luYXRlLnNMYXN0ID09ICJ0ZXN0NCI7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIm9MYW5ndWFnZS5vUGFnaW5hdGUgZGVmaW5pdGlvbnMgYXJlIGluIHRoZSBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYlJldHVybiA9IAoJCQkJJCgnI2V4YW1wbGVfcGFnaW5hdGUgLmZpcnN0JykuaHRtbCgpID09ICJ1bml0MSIgJiYKCQkJCSQoJyNleGFtcGxlX3BhZ2luYXRlIC5wcmV2aW91cycpLmh0bWwoKSA9PSAidGVzdDIiICYmCgkJCQkkKCcjZXhhbXBsZV9wYWdpbmF0ZSAubmV4dCcpLmh0bWwoKSA9PSAidW5pdDMiICYmCgkJCQkkKCcjZXhhbXBsZV9wYWdpbmF0ZSAubGFzdCcpLmh0bWwoKSA9PSAidGVzdDQiOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sInfo.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zSW5mbyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJImFvQ29sdW1ucyI6IFsKCQkJeyAibURhdGEiOiAiZW5naW5lIiB9LAoJCQl7ICJtRGF0YSI6ICJicm93c2VyIiB9LAoJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIgfSwKCQkJeyAibURhdGEiOiAidmVyc2lvbiIgfSwKCQkJeyAibURhdGEiOiAiZ3JhZGUiIH0KCQldCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkluZm8gbGFuZ3VhZ2UgaXMgJ1Nob3dpbmcgX1NUQVJUXyB0byBfRU5EXyBvZiBfVE9UQUxfIGVudHJpZXMnIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9MYW5ndWFnZS5zSW5mbyA9PSAiU2hvd2luZyBfU1RBUlRfIHRvIF9FTkRfIG9mIF9UT1RBTF8gZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkluZm8gbGFuZ3VhZ2UgZGVmYXVsdCBpcyBpbiB0aGUgRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPSAiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJJbmZvIGxhbmd1YWdlIGNhbiBiZSBkZWZpbmVkIC0gd2l0aG91dCBhbnkgbWFjcm9zIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5EZWZzIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIsICJhVGFyZ2V0cyI6IFswXSB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiYVRhcmdldHMiOiBbMV0gfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIsICJhVGFyZ2V0cyI6IFsyXSB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iLCAiYVRhcmdldHMiOiBbM10gfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIsICJhVGFyZ2V0cyI6IFs0XSB9CgkJCQldLAoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic0luZm8iOiAidW5pdCB0ZXN0IgoJCQkJfQoJCQl9ICk7CgkJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0xhbmd1YWdlLnNJbmZvID09ICJ1bml0IHRlc3QiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJbmZvIGxhbmd1YWdlIGRlZmluaXRpb24gaXMgaW4gdGhlIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID0gInVuaXQgdGVzdCI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJJbmZvIGxhbmd1YWdlIGNhbiBiZSBkZWZpbmVkIC0gd2l0aCBtYWNybyBfU1RBUlRfIG9ubHkiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiwgImFUYXJnZXRzIjogWzBdIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIsICJhVGFyZ2V0cyI6IFsxXSB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiwgImFUYXJnZXRzIjogWzJdIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIsICJhVGFyZ2V0cyI6IFszXSB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiwgImFUYXJnZXRzIjogWzRdIH0KCQkJCV0sCgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzSW5mbyI6ICJ1bml0IF9TVEFSVF8gdGVzdCIKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9ICJ1bml0IDEgdGVzdCI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJJbmZvIGxhbmd1YWdlIGNhbiBiZSBkZWZpbmVkIC0gd2l0aCBtYWNybyBfRU5EXyBvbmx5IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5EZWZzIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIsICJhVGFyZ2V0cyI6IFswXSB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiYVRhcmdldHMiOiBbMV0gfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIsICJhVGFyZ2V0cyI6IFsyXSB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iLCAiYVRhcmdldHMiOiBbM10gfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIsICJhVGFyZ2V0cyI6IFs0XSB9CgkJCQldLAoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic0luZm8iOiAidW5pdCBfRU5EXyB0ZXN0IgoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID0gInVuaXQgMTAgdGVzdCI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJJbmZvIGxhbmd1YWdlIGNhbiBiZSBkZWZpbmVkIC0gd2l0aCBtYWNybyBfVE9UQUxfIG9ubHkiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiwgImFUYXJnZXRzIjogWzBdIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIsICJhVGFyZ2V0cyI6IFsxXSB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiwgImFUYXJnZXRzIjogWzJdIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIsICJhVGFyZ2V0cyI6IFszXSB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiwgImFUYXJnZXRzIjogWzRdIH0KCQkJCV0sCgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzSW5mbyI6ICJ1bml0IF9FTkRfIHRlc3QiCgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPSAidW5pdCA1NyB0ZXN0IjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkluZm8gbGFuZ3VhZ2UgY2FuIGJlIGRlZmluZWQgLSB3aXRoIG1hY3JvcyBfU1RBUlRfIGFuZCBfRU5EXyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1uRGVmcyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiLCAiYVRhcmdldHMiOiBbMF0gfSwKCQkJCQl7ICJtRGF0YSI6ICJicm93c2VyIiwgImFUYXJnZXRzIjogWzFdIH0sCgkJCQkJeyAibURhdGEiOiAicGxhdGZvcm0iLCAiYVRhcmdldHMiOiBbMl0gfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiwgImFUYXJnZXRzIjogWzNdIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiLCAiYVRhcmdldHMiOiBbNF0gfQoJCQkJXSwKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNJbmZvIjogInVuaXQgX1NUQVJUXyBfRU5EXyB0ZXN0IgoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID0gInVuaXQgMSAxMCB0ZXN0IjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkluZm8gbGFuZ3VhZ2UgY2FuIGJlIGRlZmluZWQgLSB3aXRoIG1hY3JvcyBfU1RBUlRfLCBfRU5EXyBhbmQgX1RPVEFMXyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1uRGVmcyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiLCAiYVRhcmdldHMiOiBbMF0gfSwKCQkJCQl7ICJtRGF0YSI6ICJicm93c2VyIiwgImFUYXJnZXRzIjogWzFdIH0sCgkJCQkJeyAibURhdGEiOiAicGxhdGZvcm0iLCAiYVRhcmdldHMiOiBbMl0gfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiwgImFUYXJnZXRzIjogWzNdIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiLCAiYVRhcmdldHMiOiBbNF0gfQoJCQkJXSwKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNJbmZvIjogInVuaXQgX1NUQVJUXyBfRU5EXyBfVE9UQUxfIHRlc3QiCgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPSAidW5pdCAxIDEwIDU3IHRlc3QiOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sInfoEmpty.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zSW5mb0VtcHR5IiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkiYW9Db2x1bW5zIjogWwoJCQl7ICJtRGF0YSI6ICJlbmdpbmUiIH0sCgkJCXsgIm1EYXRhIjogImJyb3dzZXIiIH0sCgkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiB9LAoJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiB9LAoJCQl7ICJtRGF0YSI6ICJncmFkZSIgfQoJCV0KCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiSW5mbyBlbXB0eSBsYW5ndWFnZSBpcyAnU2hvd2luZyAwIHRvIDAgb2YgMCBlbnRyaWVzJyBieSBkZWZhdWx0IiwKCQlmdW5jdGlvbiAoKSB7IG9UYWJsZS5mbkZpbHRlcigibm90aGluZ2hlcmUiKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0xhbmd1YWdlLnNJbmZvRW1wdHkgPT0gIlNob3dpbmcgMCB0byAwIG9mIDAgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkluZm8gZW1wdHkgbGFuZ3VhZ2UgZGVmYXVsdCBpcyBpbiB0aGUgRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGJSZXR1cm4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MLnJlcGxhY2UoIAoJCQkJJyAnK29TZXR0aW5ncy5vTGFuZ3VhZ2Uuc0luZm9GaWx0ZXJlZC5yZXBsYWNlKCAnX01BWF8nLCAnNTcnICksICIiICkgPT0KCQkJCQkiU2hvd2luZyAwIHRvIDAgb2YgMCBlbnRyaWVzIjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiSW5mbyBlbXB0eSBsYW5ndWFnZSBjYW4gYmUgZGVmaW5lZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1uRGVmcyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiLCAiYVRhcmdldHMiOiBbMF0gfSwKCQkJCQl7ICJtRGF0YSI6ICJicm93c2VyIiwgImFUYXJnZXRzIjogWzFdIH0sCgkJCQkJeyAibURhdGEiOiAicGxhdGZvcm0iLCAiYVRhcmdldHMiOiBbMl0gfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiwgImFUYXJnZXRzIjogWzNdIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiLCAiYVRhcmdldHMiOiBbNF0gfQoJCQkJXSwKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNJbmZvRW1wdHkiOiAidW5pdCB0ZXN0IgoJCQkJfQoJCQl9ICk7CgkJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJCW9UYWJsZS5mbkZpbHRlcigibm90aGluZ2hlcmUiKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc0luZm9FbXB0eSA9PSAidW5pdCB0ZXN0IjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiSW5mbyBlbXB0eSBsYW5ndWFnZSBkZWZhdWx0IGlzIGluIHRoZSBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYlJldHVybiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwucmVwbGFjZSggCgkJCQknICcrb1NldHRpbmdzLm9MYW5ndWFnZS5zSW5mb0ZpbHRlcmVkLnJlcGxhY2UoICdfTUFYXycsICc1NycgKSwgIiIgKSA9PQoJCQkJCSJ1bml0IHRlc3QiOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJNYWNybydzIHJlcGxhY2VkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5EZWZzIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIsICJhVGFyZ2V0cyI6IFswXSB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiYVRhcmdldHMiOiBbMV0gfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIsICJhVGFyZ2V0cyI6IFsyXSB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iLCAiYVRhcmdldHMiOiBbM10gfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIsICJhVGFyZ2V0cyI6IFs0XSB9CgkJCQldLAoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic0luZm9FbXB0eSI6ICJ1bml0IF9TVEFSVF8gX0VORF8gX1RPVEFMXyB0ZXN0IgoJCQkJfQoJCQl9ICk7CgkJCW9UYWJsZS5mbkZpbHRlcigibm90aGluZ2hlcmUiKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGJSZXR1cm4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MLnJlcGxhY2UoIAoJCQkJJyAnK29TZXR0aW5ncy5vTGFuZ3VhZ2Uuc0luZm9GaWx0ZXJlZC5yZXBsYWNlKCAnX01BWF8nLCAnNTcnICksICIiICkgPT0KCQkJCQkidW5pdCAxIDAgMCB0ZXN0IjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sInfoPostFix.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zSW5mb1Bvc3RGaXgiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCSJhb0NvbHVtbnMiOiBbCgkJCXsgIm1EYXRhIjogImVuZ2luZSIgfSwKCQkJeyAibURhdGEiOiAiYnJvd3NlciIgfSwKCQkJeyAibURhdGEiOiAicGxhdGZvcm0iIH0sCgkJCXsgIm1EYXRhIjogInZlcnNpb24iIH0sCgkJCXsgIm1EYXRhIjogImdyYWRlIiB9CgkJXQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJJbmZvIHBvc3QgZml4IGxhbmd1YWdlIGlzICcnIChibGFuaykgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0xhbmd1YWdlLnNJbmZvUG9zdEZpeCA9PSAiIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiV2lkdGggbm8gcG9zdCBmaXgsIHRoZSBiYXNpYyBpbmZvIHNob3dzIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPSAiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJJbmZvIHBvc3QgZml4IGxhbmd1YWdlIGNhbiBiZSBkZWZpbmVkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5EZWZzIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIsICJhVGFyZ2V0cyI6IFswXSB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiYVRhcmdldHMiOiBbMV0gfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIsICJhVGFyZ2V0cyI6IFsyXSB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iLCAiYVRhcmdldHMiOiBbM10gfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIsICJhVGFyZ2V0cyI6IFs0XSB9CgkJCQldLAoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic0luZm9Qb3N0Rml4IjogInVuaXQgdGVzdCIKCQkJCX0KCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9MYW5ndWFnZS5zSW5mb1Bvc3RGaXggPT0gInVuaXQgdGVzdCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkluZm8gZW1wdHkgbGFuZ3VhZ2UgZGVmYXVsdCBpcyBpbiB0aGUgRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPSAiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMgdW5pdCB0ZXN0IjsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTWFjcm9zIGhhdmUgbm8gZWZmZWN0IGluIHRoZSBwb3N0IGZpeCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1uRGVmcyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiLCAiYVRhcmdldHMiOiBbMF0gfSwKCQkJCQl7ICJtRGF0YSI6ICJicm93c2VyIiwgImFUYXJnZXRzIjogWzFdIH0sCgkJCQkJeyAibURhdGEiOiAicGxhdGZvcm0iLCAiYVRhcmdldHMiOiBbMl0gfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiwgImFUYXJnZXRzIjogWzNdIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiLCAiYVRhcmdldHMiOiBbNF0gfQoJCQkJXSwKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNJbmZvUG9zdEZpeCI6ICJ1bml0IF9TVEFSVF8gX0VORF8gX1RPVEFMXyB0ZXN0IgoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID0gIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIHVuaXQgX1NUQVJUXyBfRU5EXyBfVE9UQUxfIHRlc3QiOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJQb3N0IGZpeCBpcyBhcHBsaWVkIGFmdGVyIGZpbnRlcmluZyBpbmZvIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5EZWZzIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIsICJhVGFyZ2V0cyI6IFswXSB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiYVRhcmdldHMiOiBbMV0gfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIsICJhVGFyZ2V0cyI6IFsyXSB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iLCAiYVRhcmdldHMiOiBbM10gfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIsICJhVGFyZ2V0cyI6IFs0XSB9CgkJCQldLAoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic0luZm9Qb3N0Rml4IjogInVuaXQgdGVzdCIKCQkJCX0KCQkJfSApOwoJCQlvVGFibGUuZm5GaWx0ZXIoIm5vdGhpbmdoZXJlIik7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID0gIlNob3dpbmcgMCB0byAwIG9mIDAgZW50cmllcyB1bml0IChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIHRlc3QiOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sLengthMenu.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zTGVuZ3RoTWVudSIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJImFvQ29sdW1ucyI6IFsKCQkJeyAibURhdGEiOiAiZW5naW5lIiB9LAoJCQl7ICJtRGF0YSI6ICJicm93c2VyIiB9LAoJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIgfSwKCQkJeyAibURhdGEiOiAidmVyc2lvbiIgfSwKCQkJeyAibURhdGEiOiAiZ3JhZGUiIH0KCQldCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk1lbnUgbGFuZ3VhZ2UgaXMgJ1Nob3cgX01FTlVfIGVudHJpZXMnIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9MYW5ndWFnZS5zTGVuZ3RoTWVudSA9PSAiU2hvdyBfTUVOVV8gZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiX01FTlVfIG1hY3JvIGlzIHJlcGxhY2VkIGJ5IHNlbGVjdCBtZW51IGluIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCdzZWxlY3QnLCBvU2V0dGluZ3MuYWFuRmVhdHVyZXMubFswXSkubGVuZ3RoID09IDEgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJBIGxhYmVsIGlucHV0IGlzIHVzZWQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnbGFiZWwnLCBvU2V0dGluZ3MuYWFuRmVhdHVyZXMubFswXSkubGVuZ3RoID09IDEgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJEZWZhdWx0IGlzIHB1dCBpbnRvIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBhbkNoaWxkcmVuID0gJCgnbGFiZWwnLG9TZXR0aW5ncy5hYW5GZWF0dXJlcy5sWzBdKVswXS5jaGlsZE5vZGVzOwoJCQl2YXIgYlJldHVybiA9CgkJCQlhbkNoaWxkcmVuWzBdLm5vZGVWYWx1ZSA9PSAiU2hvdyAiICYmCgkJCQlhbkNoaWxkcmVuWzJdLm5vZGVWYWx1ZSA9PSAiIGVudHJpZXMiOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJNZW51IGxlbmd0aCBsYW5ndWFnZSBjYW4gYmUgZGVmaW5lZCAtIG5vIF9NRU5VXyBtYWNybyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1uRGVmcyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiLCAiYVRhcmdldHMiOiBbMF0gfSwKCQkJCQl7ICJtRGF0YSI6ICJicm93c2VyIiwgImFUYXJnZXRzIjogWzFdIH0sCgkJCQkJeyAibURhdGEiOiAicGxhdGZvcm0iLCAiYVRhcmdldHMiOiBbMl0gfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiwgImFUYXJnZXRzIjogWzNdIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiLCAiYVRhcmdldHMiOiBbNF0gfQoJCQkJXSwKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNMZW5ndGhNZW51IjogInVuaXQgdGVzdCIKCQkJCX0KCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9MYW5ndWFnZS5zTGVuZ3RoTWVudSA9PSAidW5pdCB0ZXN0IjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiTWVudSBsZW5ndGggbGFuZ3VhZ2UgZGVmaW5pdGlvbiBpcyBpbiB0aGUgRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuICQoJ2xhYmVsJywgb1NldHRpbmdzLmFhbkZlYXR1cmVzLmxbMF0pLnRleHQoKSA9PSAidW5pdCB0ZXN0IjsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJNZW51IGxlbmd0aCBsYW5ndWFnZSBjYW4gYmUgZGVmaW5lZCAtIHdpdGggX01FTlVfIG1hY3JvIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5EZWZzIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIsICJhVGFyZ2V0cyI6IFswXSB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiYVRhcmdldHMiOiBbMV0gfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIsICJhVGFyZ2V0cyI6IFsyXSB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iLCAiYVRhcmdldHMiOiBbM10gfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIsICJhVGFyZ2V0cyI6IFs0XSB9CgkJCQldLAoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic0xlbmd0aE1lbnUiOiAidW5pdCBfTUVOVV8gdGVzdCIKCQkJCX0KCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYW5DaGlsZHJlbiA9ICQoJ2xhYmVsJyxvU2V0dGluZ3MuYWFuRmVhdHVyZXMubFswXSlbMF0uY2hpbGROb2RlczsKCQkJdmFyIGJSZXR1cm4gPQoJCQkJYW5DaGlsZHJlblswXS5ub2RlVmFsdWUgPT0gInVuaXQgIiAmJgoJCQkJYW5DaGlsZHJlblsyXS5ub2RlVmFsdWUgPT0gIiB0ZXN0IjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiT25seSB0aGUgX01FTlVfIG1hY3JvIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5EZWZzIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIsICJhVGFyZ2V0cyI6IFswXSB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiYVRhcmdldHMiOiBbMV0gfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIsICJhVGFyZ2V0cyI6IFsyXSB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iLCAiYVRhcmdldHMiOiBbM10gfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIsICJhVGFyZ2V0cyI6IFs0XSB9CgkJCQldLAoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic0xlbmd0aE1lbnUiOiAiX01FTlVfIgoJCQkJfQoJCQl9ICk7CgkJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBhbkNoaWxkcmVuID0gb1NldHRpbmdzLmFhbkZlYXR1cmVzLmxbMF0uY2hpbGROb2RlczsKCQkJdmFyIGJSZXR1cm4gPQoJCQkJYW5DaGlsZHJlbi5sZW5ndGggPT0gMSAmJgoJCQkJJCgnc2VsZWN0Jywgb1NldHRpbmdzLmFhbkZlYXR1cmVzLmxbMF0pLmxlbmd0aCA9PSAxOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sProcessing.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zUHJvY2Vzc2luZyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJImFvQ29sdW1ucyI6IFsKCQkJeyAibURhdGEiOiAiZW5naW5lIiB9LAoJCQl7ICJtRGF0YSI6ICJicm93c2VyIiB9LAoJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIgfSwKCQkJeyAibURhdGEiOiAidmVyc2lvbiIgfSwKCQkJeyAibURhdGEiOiAiZ3JhZGUiIH0KCQldLAoJCSJiUHJvY2Vzc2luZyI6IHRydWUKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUHJvY2Vzc2luZyBsYW5ndWFnZSBpcyAnUHJvY2Vzc2luZy4uLicgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0xhbmd1YWdlLnNQcm9jZXNzaW5nID09ICJQcm9jZXNzaW5nLi4uIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUHJvY2Vzc2luZyBsYW5ndWFnZSBkZWZhdWx0IGlzIGluIHRoZSBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcHJvY2Vzc2luZycpLmlubmVySFRNTCA9ICJQcm9jZXNzaW5nLi4uIjsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUHJvY2Vzc2luZyBsYW5ndWFnZSBjYW4gYmUgZGVmaW5lZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1uRGVmcyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiLCAiYVRhcmdldHMiOiBbMF0gfSwKCQkJCQl7ICJtRGF0YSI6ICJicm93c2VyIiwgImFUYXJnZXRzIjogWzFdIH0sCgkJCQkJeyAibURhdGEiOiAicGxhdGZvcm0iLCAiYVRhcmdldHMiOiBbMl0gfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiwgImFUYXJnZXRzIjogWzNdIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiLCAiYVRhcmdldHMiOiBbNF0gfQoJCQkJXSwKCQkJCSJiUHJvY2Vzc2luZyI6IHRydWUsCgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzUHJvY2Vzc2luZyI6ICJ1bml0IHRlc3QiCgkJCQl9CgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc1Byb2Nlc3NpbmcgPT0gInVuaXQgdGVzdCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlByb2Nlc3NpbmcgbGFuZ3VhZ2UgZGVmaW5pdGlvbiBpcyBpbiB0aGUgRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3Byb2Nlc3NpbmcnKS5pbm5lckhUTUwgPSAidW5pdCB0ZXN0IjsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sSearch.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zU2VhcmNoIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkiYW9Db2x1bW5zIjogWwoJCQl7ICJtRGF0YSI6ICJlbmdpbmUiIH0sCgkJCXsgIm1EYXRhIjogImJyb3dzZXIiIH0sCgkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiB9LAoJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiB9LAoJCQl7ICJtRGF0YSI6ICJncmFkZSIgfQoJCV0KCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU2VhcmNoIGxhbmd1YWdlIGlzICdTZWFyY2g6JyBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc1NlYXJjaCA9PSAiU2VhcmNoOiI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiQSBsYWJlbCBpbnB1dCBpcyB1c2VkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJ2xhYmVsJywgb1NldHRpbmdzLmFhbkZlYXR1cmVzLmZbMF0pLmxlbmd0aCA9PSAxIH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNlYXJjaCBsYW5ndWFnZSBkZWZhdWx0IGlzIGluIHRoZSBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnbGFiZWwnLCBvU2V0dGluZ3MuYWFuRmVhdHVyZXMuZlswXSkudGV4dCgpCgkJIAk9PSAiU2VhcmNoOiAiOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTZWFyY2ggbGFuZ3VhZ2UgY2FuIGJlIGRlZmluZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiwgImFUYXJnZXRzIjogWzBdIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIsICJhVGFyZ2V0cyI6IFsxXSB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiwgImFUYXJnZXRzIjogWzJdIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIsICJhVGFyZ2V0cyI6IFszXSB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiwgImFUYXJnZXRzIjogWzRdIH0KCQkJCV0sCgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzU2VhcmNoIjogInVuaXQgdGVzdCIKCQkJCX0KCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9MYW5ndWFnZS5zU2VhcmNoID09ICJ1bml0IHRlc3QiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJbmZvIGxhbmd1YWdlIGRlZmluaXRpb24gaXMgaW4gdGhlIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCdsYWJlbCcsIG9TZXR0aW5ncy5hYW5GZWF0dXJlcy5mWzBdKS50ZXh0KCkuaW5kZXhPZigndW5pdCB0ZXN0JykgIT09IC0xOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJCbGFuayBzZWFyY2ggaGFzIGEgbm8gc3BhY2UgKHNlcGFyYXRvcikgaW5zZXJ0ZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiwgImFUYXJnZXRzIjogWzBdIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIsICJhVGFyZ2V0cyI6IFsxXSB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiwgImFUYXJnZXRzIjogWzJdIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIsICJhVGFyZ2V0cyI6IFszXSB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiwgImFUYXJnZXRzIjogWzRdIH0KCQkJCV0sCgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzU2VhcmNoIjogIiIKCQkJCX0KCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfZmlsdGVyJykuY2hpbGROb2Rlcy5sZW5ndGggPT0gMTsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sUrl.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zVXJsIiApOwoKLyogTm90ZSB0aGF0IHdlIG9ubHkgdGVzdCB0aGUgaW50ZXJuYWwgc3RvcmFnZSBvZiBsYW5ndWFnZSBpbmZvcm1hdGlvbiBwdWxsZWQgZm9ybSBhIGZpbGUgaGVyZQogKiBhcyB0aGUgb3RoZXIgbGFuZ3VhZ2UgdGVzdHMgd2lsbCBjaGVjayBpdCBnb2VzIGludG8gdGhlIERPTSBjb3JyZWN0bHkKICovCgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCSJhb0NvbHVtbnMiOiBbCgkJCXsgIm1EYXRhIjogImVuZ2luZSIgfSwKCQkJeyAibURhdGEiOiAiYnJvd3NlciIgfSwKCQkJeyAibURhdGEiOiAicGxhdGZvcm0iIH0sCgkJCXsgIm1EYXRhIjogInZlcnNpb24iIH0sCgkJCXsgIm1EYXRhIjogImdyYWRlIiB9CgkJXQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuVGVzdCggCgkJInNVcmwgaXMgYmxhbmsgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0xhbmd1YWdlLnNVcmwgPT0gIiI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkxvYWRpbmcgb2YgR2VybWFuIGZpbGUgbG9hZHMgbGFuZ3VhZ2UgaW5mb3JtYXRpb24iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiwgImFUYXJnZXRzIjogWzBdIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIsICJhVGFyZ2V0cyI6IFsxXSB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiwgImFUYXJnZXRzIjogWzJdIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIsICJhVGFyZ2V0cyI6IFszXSB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiwgImFUYXJnZXRzIjogWzRdIH0KCQkJCV0sCgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzVXJsIjogIi4uLy4uLy4uL2V4YW1wbGVzL2V4YW1wbGVzX3N1cHBvcnQvZGVfREUudHh0IgoJCQkJfQoJCQl9ICk7CgkJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBiUmV0dXJuID0gCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLnNQcm9jZXNzaW5nID09ICJCaXR0ZSB3YXJ0ZW4uLi4iICYmCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLnNMZW5ndGhNZW51ID09ICJfTUVOVV8gRWludHLDpGdlIGFuemVpZ2VuIiAmJgoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5zWmVyb1JlY29yZHMgPT0gIktlaW5lIEVpbnRyw6RnZSB2b3JoYW5kZW4uIiAmJgoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5zSW5mbyA9PSAiX1NUQVJUXyBiaXMgX0VORF8gdm9uIF9UT1RBTF8gRWludHLDpGdlbiIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc0luZm9FbXB0eSA9PSAiMCBiaXMgMCB2b24gMCBFaW50csOkZ2VuIiAmJgoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5zSW5mb0ZpbHRlcmVkID09ICIoZ2VmaWx0ZXJ0IHZvbiBfTUFYXyAgRWludHLDpGdlbikiICYmCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLnNJbmZvUG9zdEZpeCA9PSAiIiAmJgoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5zU2VhcmNoID09ICJTdWNoZW4iICYmCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLm9QYWdpbmF0ZS5zRmlyc3QgPT0gIkVyc3RlciIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uub1BhZ2luYXRlLnNQcmV2aW91cyA9PSAiWnVyw7xjayIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uub1BhZ2luYXRlLnNOZXh0ID09ICJOw6RjaHN0ZXIiICYmCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLm9QYWdpbmF0ZS5zTGFzdCA9PSAiTGV0enRlciI7CgkJCQkKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJLyogT25lIERPTSBjaGVjayBqdXN0IHRvIGVuc3VyZSB0aGF0IHRoZXkgZ28gaW50byB0aGUgRE9NICovCglvVGVzdC5mblRlc3QoCgkJIkxvYWRlZCBsYW5ndWFnZSBnb2VzIGludG8gdGhlIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID0gIjEgYmlzIDEwIHZvbiA1NyBFaW50csOkZ2VuIjsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sZeroRecords.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zWmVyb1JlY29yZHMiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCSJhb0NvbHVtbnMiOiBbCgkJCXsgIm1EYXRhIjogImVuZ2luZSIgfSwKCQkJeyAibURhdGEiOiAiYnJvd3NlciIgfSwKCQkJeyAibURhdGEiOiAicGxhdGZvcm0iIH0sCgkJCXsgIm1EYXRhIjogInZlcnNpb24iIH0sCgkJCXsgIm1EYXRhIjogImdyYWRlIiB9CgkJXQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJaZXJvIHJlY29yZHMgbGFuZ3VhZ2UgaXMgJ05vIG1hdGNoaW5nIHJlY29yZHMgZm91bmQnIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9MYW5ndWFnZS5zWmVyb1JlY29yZHMgPT0gIk5vIG1hdGNoaW5nIHJlY29yZHMgZm91bmQiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KAoJCSJUZXh0IGlzIHNob3duIHdoZW4gZW1wdHkgdGFibGUgKGFmdGVyIGZpbHRlcmluZykiLAoJCWZ1bmN0aW9uICgpIHsgb1RhYmxlLmZuRmlsdGVyKCdub3RoaW5naGVyZScpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyIHRkJylbMF0uaW5uZXJIVE1MID09ICJObyBtYXRjaGluZyByZWNvcmRzIGZvdW5kIiB9CgkpOwoJCgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlplcm8gcmVjb3JkcyBsYW5ndWFnZSBjYW4gYmUgZGVmaW5lZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1uRGVmcyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiLCAiYVRhcmdldHMiOiBbMF0gfSwKCQkJCQl7ICJtRGF0YSI6ICJicm93c2VyIiwgImFUYXJnZXRzIjogWzFdIH0sCgkJCQkJeyAibURhdGEiOiAicGxhdGZvcm0iLCAiYVRhcmdldHMiOiBbMl0gfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiwgImFUYXJnZXRzIjogWzNdIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiLCAiYVRhcmdldHMiOiBbNF0gfQoJCQkJXSwKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNaZXJvUmVjb3JkcyI6ICJ1bml0IHRlc3QiCgkJCQl9CgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc1plcm9SZWNvcmRzID09ICJ1bml0IHRlc3QiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KAoJCSJUZXh0IGlzIHNob3duIHdoZW4gZW1wdHkgdGFibGUgKGFmdGVyIGZpbHRlcmluZykiLAoJCWZ1bmN0aW9uICgpIHsgb1RhYmxlLmZuRmlsdGVyKCdub3RoaW5naGVyZTInKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ciB0ZCcpWzBdLmlubmVySFRNTCA9PSAidW5pdCB0ZXN0IiB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/oSearch.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9TZWFyY2giICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCSJhb0NvbHVtbnMiOiBbCgkJCXsgIm1EYXRhIjogImVuZ2luZSIgfSwKCQkJeyAibURhdGEiOiAiYnJvd3NlciIgfSwKCQkJeyAibURhdGEiOiAicGxhdGZvcm0iIH0sCgkJCXsgIm1EYXRhIjogInZlcnNpb24iIH0sCgkJCXsgIm1EYXRhIjogImdyYWRlIiB9CgkJXQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJEZWZhdWx0IHZhbHVlcyBzaG91bGQgYmUgYmxhbmsiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYlJldHVybiA9IG9TZXR0aW5ncy5vUHJldmlvdXNTZWFyY2guc1NlYXJjaCA9PSAiIiAmJiAKCQkJICAgICAgICAgICAgICAhb1NldHRpbmdzLm9QcmV2aW91c1NlYXJjaC5iUmVnZXg7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCS8qIFRoaXMgdGVzdCBtaWdodCBiZSBjb25zaWRlcmVkIGlmZnkgc2luY2UgdGhlIGZ1bGwgb2JqZWN0IGlzbid0IGdpdmVuLCBidXQgaXQncyByZWFzb25hYmxlIHRvCgkgKiBleHBlY3QgRGF0YVRhYmxlcyB0byBjb3BlIHdpdGggdGhpcy4gSXQgc2hvdWxkIGp1c3QgYXNzdW1pbmUgcmVnZXggZmFsc2UKCSAqLwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNlYXJjaCB0ZXJtIG9ubHkgaW4gb2JqZWN0IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5EZWZzIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIsICJhVGFyZ2V0cyI6IFswXSB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiYVRhcmdldHMiOiBbMV0gfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIsICJhVGFyZ2V0cyI6IFsyXSB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iLCAiYVRhcmdldHMiOiBbM10gfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIsICJhVGFyZ2V0cyI6IFs0XSB9CgkJCQldLAoJCQkJIm9TZWFyY2giOiB7CgkJCQkJInNTZWFyY2giOiAiTW96aWxsYSIKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gIkdlY2tvIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk5ldyBzZWFyY2ggd2lsbCBraWxsIG9sZCBvbmUiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1RhYmxlLmZuRmlsdGVyKCJPcGVyYSIpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gIlByZXN0byI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTZWFyY2ggcGxhaW4gdGV4dCB0ZXJtIGFuZCBlc2NhcGUgcmVnZXggdHJ1ZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1uRGVmcyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiLCAiYVRhcmdldHMiOiBbMF0gfSwKCQkJCQl7ICJtRGF0YSI6ICJicm93c2VyIiwgImFUYXJnZXRzIjogWzFdIH0sCgkJCQkJeyAibURhdGEiOiAicGxhdGZvcm0iLCAiYVRhcmdldHMiOiBbMl0gfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiwgImFUYXJnZXRzIjogWzNdIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiLCAiYVRhcmdldHMiOiBbNF0gfQoJCQkJXSwKCQkJCSJvU2VhcmNoIjogewoJCQkJCSJzU2VhcmNoIjogIkRTIiwKCQkJCQkiYlJlZ2V4IjogZmFsc2UKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIk5pbnRlbmRvIERTIGJyb3dzZXIiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU2VhcmNoIHBsYWluIHRleHQgdGVybSBhbmQgZXNjYXBlIHJlZ2V4IGZhbHNlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5EZWZzIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIsICJhVGFyZ2V0cyI6IFswXSB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiYVRhcmdldHMiOiBbMV0gfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIsICJhVGFyZ2V0cyI6IFsyXSB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iLCAiYVRhcmdldHMiOiBbM10gfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIsICJhVGFyZ2V0cyI6IFs0XSB9CgkJCQldLAoJCQkJIm9TZWFyY2giOiB7CgkJCQkJInNTZWFyY2giOiAiT3BlcmEiLAoJCQkJCSJiUmVnZXgiOiB0cnVlCgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09ICJQcmVzdG8iOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU2VhcmNoIHJlZ2V4IHRleHQgdGVybSBhbmQgZXNjYXBlIHJlZ2V4IHRydWUiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiwgImFUYXJnZXRzIjogWzBdIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIsICJhVGFyZ2V0cyI6IFsxXSB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiwgImFUYXJnZXRzIjogWzJdIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIsICJhVGFyZ2V0cyI6IFszXSB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiwgImFUYXJnZXRzIjogWzRdIH0KCQkJCV0sCgkJCQkib1NlYXJjaCI6IHsKCQkJCQkic1NlYXJjaCI6ICIxLioiLAoJCQkJCSJiUmVnZXgiOiBmYWxzZQoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiTm8gbWF0Y2hpbmcgcmVjb3JkcyBmb3VuZCI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTZWFyY2ggcmVnZXggdGV4dCB0ZXJtIGFuZCBlc2NhcGUgcmVnZXggZmFsc2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiwgImFUYXJnZXRzIjogWzBdIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIsICJhVGFyZ2V0cyI6IFsxXSB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiwgImFUYXJnZXRzIjogWzJdIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIsICJhVGFyZ2V0cyI6IFszXSB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiwgImFUYXJnZXRzIjogWzRdIH0KCQkJCV0sCgkJCQkib1NlYXJjaCI6IHsKCQkJCQkic1NlYXJjaCI6ICIxLioiLAoJCQkJCSJiUmVnZXgiOiB0cnVlCgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09ICJHZWNrbyI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/sAjaxSource.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggInNBamF4U291cmNlIiApOwoKLyogU2FuaXRmeSBjaGVjayByZWFsbHkgLSBhbGwgdGhlIG90aGVyIHRlc3RzIGJsYXN0IHRoaXMgKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJImFvQ29sdW1ucyI6IFsKCQkJeyAibURhdGEiOiAiZW5naW5lIiB9LAoJCQl7ICJtRGF0YSI6ICJicm93c2VyIiB9LAoJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIgfSwKCQkJeyAibURhdGEiOiAidmVyc2lvbiIgfSwKCQkJeyAibURhdGEiOiAiZ3JhZGUiIH0KCQldCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNlcnZlciBzaWRlIGlzIG9mZiBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgCgkJCXJldHVybiBvU2V0dGluZ3Muc0FqYXhTb3VyY2UgPT0gIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCI7CgkJfQoJKTsKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/sDom.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggInNEb20iICk7CgovKiBUaGlzIGlzIGdvaW5nIHRvIGJlIGJydXRhbCBvbiB0aGUgYnJvd3NlciEgVGhlcmUgaXMgYSBsb3QgdGhhdCBjYW4gYmUgdGVzdGVkIGhlcmUuLi4gKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJImFvQ29sdW1ucyI6IFsKCQkJeyAibURhdGEiOiAiZW5naW5lIiB9LAoJCQl7ICJtRGF0YSI6ICJicm93c2VyIiB9LAoJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIgfSwKCQkJeyAibURhdGEiOiAidmVyc2lvbiIgfSwKCQkJeyAibURhdGEiOiAiZ3JhZGUiIH0KCQldCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkRlZmF1bHQgRE9NIHZhcmFpYmxlIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5zRG9tID09ICJsZnJ0aXAiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRGVmYXVsdCBET00gaW4gZG9jdW1lbnQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgbk5vZGVzID0gJCgnI2RlbW8gZGl2LCAjZGVtbyB0YWJsZScpOwoJCQl2YXIgbldyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV93cmFwcGVyJyk7CgkJCXZhciBuTGVuZ3RoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfbGVuZ3RoJyk7CgkJCXZhciBuRmlsdGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfZmlsdGVyJyk7CgkJCXZhciBuSW5mbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKTsKCQkJdmFyIG5QYWdpbmcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wYWdpbmF0ZScpOwoJCQl2YXIgblRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGUnKTsKCQkJCgkJCXZhciBiUmV0dXJuID0gCgkJCQluTm9kZXNbMF0gPT0gbldyYXBwZXIgJiYKCQkJCW5Ob2Rlc1sxXSA9PSBuTGVuZ3RoICYmCgkJCQluTm9kZXNbMl0gPT0gbkZpbHRlciAmJgoJCQkJbk5vZGVzWzNdID09IG5UYWJsZSAmJgoJCQkJbk5vZGVzWzRdID09IG5JbmZvICYmCgkJCQluTm9kZXNbNV0gPT0gblBhZ2luZzsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNoZWNrIGV4YW1wbGUgMSBpbiBjb2RlIHByb3BhZ2F0ZXMiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiwgImFUYXJnZXRzIjogWzBdIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIsICJhVGFyZ2V0cyI6IFsxXSB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiwgImFUYXJnZXRzIjogWzJdIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIsICJhVGFyZ2V0cyI6IFszXSB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiwgImFUYXJnZXRzIjogWzRdIH0KCQkJCV0sCgkJCQkic0RvbSI6ICc8IndyYXBwZXIiZmxpcHQ+JwoJCQl9ICk7CgkJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Muc0RvbSA9PSAnPCJ3cmFwcGVyImZsaXB0Pic7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDaGVjayBleGFtcGxlIDEgaW4gRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGpxTm9kZXMgPSAkKCcjZGVtbyBkaXYsICNkZW1vIHRhYmxlJyk7CgkJCXZhciBuTm9kZXMgPSBbXTsKCQkJCgkJCS8qIFN0cmlwIHRoZSBwYWdpbmcgbm9kZXMgKi8KCQkJZm9yICggdmFyIGk9MCwgaUxlbj1qcU5vZGVzLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJCXsKCQkJCWlmICgganFOb2Rlc1tpXS5nZXRBdHRyaWJ1dGUoJ2lkJykgIT0gImV4YW1wbGVfcHJldmlvdXMiICYmCgkJCQkgICAgIGpxTm9kZXNbaV0uZ2V0QXR0cmlidXRlKCdpZCcpICE9ICJleGFtcGxlX25leHQiICkKCQkJCXsKCQkJCQluTm9kZXMucHVzaCgganFOb2Rlc1tpXSApOwoJCQkJfQoJCQl9CgkJCQoJCQl2YXIgbldyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV93cmFwcGVyJyk7CgkJCXZhciBuTGVuZ3RoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfbGVuZ3RoJyk7CgkJCXZhciBuRmlsdGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfZmlsdGVyJyk7CgkJCXZhciBuSW5mbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKTsKCQkJdmFyIG5QYWdpbmcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wYWdpbmF0ZScpOwoJCQl2YXIgblRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGUnKTsKCQkJdmFyIG5DdXN0b21XcmFwcGVyID0gJCgnZGl2LndyYXBwZXInKVswXTsKCQkJCgkJCXZhciBiUmV0dXJuID0gCgkJCQluTm9kZXNbMF0gPT0gbldyYXBwZXIgJiYKCQkJCW5Ob2Rlc1sxXSA9PSBuQ3VzdG9tV3JhcHBlciAmJgoJCQkJbk5vZGVzWzJdID09IG5GaWx0ZXIgJiYKCQkJCW5Ob2Rlc1szXSA9PSBuTGVuZ3RoICYmCgkJCQluTm9kZXNbNF0gPT0gbkluZm8gJiYKCQkJCW5Ob2Rlc1s1XSA9PSBuUGFnaW5nICYmCgkJCQluTm9kZXNbNl0gPT0gblRhYmxlOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ2hlY2sgZXhhbXBsZSAyIGluIERPTSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1uRGVmcyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiLCAiYVRhcmdldHMiOiBbMF0gfSwKCQkJCQl7ICJtRGF0YSI6ICJicm93c2VyIiwgImFUYXJnZXRzIjogWzFdIH0sCgkJCQkJeyAibURhdGEiOiAicGxhdGZvcm0iLCAiYVRhcmdldHMiOiBbMl0gfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiwgImFUYXJnZXRzIjogWzNdIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiLCAiYVRhcmdldHMiOiBbNF0gfQoJCQkJXSwKCQkJCSJzRG9tIjogJzxsZjx0PmlwPicKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIganFOb2RlcyA9ICQoJyNkZW1vIGRpdiwgI2RlbW8gdGFibGUnKTsKCQkJdmFyIG5Ob2RlcyA9IFtdOwoJCQl2YXIgbkN1c3RvbVdyYXBwZXJzID0gW10KCQkJCgkJCS8qIFN0cmlwIHRoZSBwYWdpbmcgbm9kZXMgKi8KCQkJZm9yICggdmFyIGk9MCwgaUxlbj1qcU5vZGVzLmxlbmd0aCA7IGk8aUxlbiA7IGkrKyApCgkJCXsKCQkJCWlmICgganFOb2Rlc1tpXS5nZXRBdHRyaWJ1dGUoJ2lkJykgIT0gImV4YW1wbGVfcHJldmlvdXMiICYmCgkJCQkgICAgIGpxTm9kZXNbaV0uZ2V0QXR0cmlidXRlKCdpZCcpICE9ICJleGFtcGxlX25leHQiICkKCQkJCXsKCQkJCQluTm9kZXMucHVzaCgganFOb2Rlc1tpXSApOwoJCQkJfQoJCQkJCgkJCQkvKiBPbmx5IHRoZSB0d28gY3VzdG9tIGRpdnMgZG9uJ3QgaGF2ZSBjbGFzcyBuYW1lcyAqLwoJCQkJaWYgKCBqcU5vZGVzW2ldLmNsYXNzTmFtZSA9PSAiIiApCgkJCQl7CgkJCQkJbkN1c3RvbVdyYXBwZXJzLnB1c2goIGpxTm9kZXNbaV0gKTsKCQkJCX0KCQkJfQoJCQkKCQkJdmFyIG5XcmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfd3JhcHBlcicpOwoJCQl2YXIgbkxlbmd0aCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2xlbmd0aCcpOwoJCQl2YXIgbkZpbHRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2ZpbHRlcicpOwoJCQl2YXIgbkluZm8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJyk7CgkJCXZhciBuUGFnaW5nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcGFnaW5hdGUnKTsKCQkJdmFyIG5UYWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlJyk7CgkJCQoJCQl2YXIgYlJldHVybiA9IAoJCQkJbk5vZGVzWzBdID09IG5XcmFwcGVyICYmCgkJCQluTm9kZXNbMV0gPT0gbkN1c3RvbVdyYXBwZXJzWzBdICYmCgkJCQluTm9kZXNbMl0gPT0gbkxlbmd0aCAmJgoJCQkJbk5vZGVzWzNdID09IG5GaWx0ZXIgJiYKCQkJCW5Ob2Rlc1s0XSA9PSBuQ3VzdG9tV3JhcHBlcnNbMV0gJiYKCQkJCW5Ob2Rlc1s1XSA9PSBuVGFibGUgJiYKCQkJCW5Ob2Rlc1s2XSA9PSBuSW5mbyAmJgoJCQkJbk5vZGVzWzddID09IG5QYWdpbmc7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDaGVjayBubyBsZW5ndGggZWxlbWVudCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvb2JqZWN0cy50eHQiLAoJCQkJImFvQ29sdW1uRGVmcyI6IFsKCQkJCQl7ICJtRGF0YSI6ICJlbmdpbmUiLCAiYVRhcmdldHMiOiBbMF0gfSwKCQkJCQl7ICJtRGF0YSI6ICJicm93c2VyIiwgImFUYXJnZXRzIjogWzFdIH0sCgkJCQkJeyAibURhdGEiOiAicGxhdGZvcm0iLCAiYVRhcmdldHMiOiBbMl0gfSwKCQkJCQl7ICJtRGF0YSI6ICJ2ZXJzaW9uIiwgImFUYXJnZXRzIjogWzNdIH0sCgkJCQkJeyAibURhdGEiOiAiZ3JhZGUiLCAiYVRhcmdldHMiOiBbNF0gfQoJCQkJXSwKCQkJCSJzRG9tIjogJ2ZydGlwJwoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBuTm9kZXMgPSAkKCcjZGVtbyBkaXYsICNkZW1vIHRhYmxlJyk7CgkJCXZhciBuV3JhcHBlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3dyYXBwZXInKTsKCQkJdmFyIG5MZW5ndGggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9sZW5ndGgnKTsKCQkJdmFyIG5GaWx0ZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9maWx0ZXInKTsKCQkJdmFyIG5JbmZvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpOwoJCQl2YXIgblBhZ2luZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3BhZ2luYXRlJyk7CgkJCXZhciBuVGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZScpOwoJCQkKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCW5Ob2Rlc1swXSA9PSBuV3JhcHBlciAmJgoJCQkJbnVsbCA9PSBuTGVuZ3RoICYmCgkJCQluTm9kZXNbMV0gPT0gbkZpbHRlciAmJgoJCQkJbk5vZGVzWzJdID09IG5UYWJsZSAmJgoJCQkJbk5vZGVzWzNdID09IG5JbmZvICYmCgkJCQluTm9kZXNbNF0gPT0gblBhZ2luZzsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNoZWNrIG5vIGZpbHRlciBlbGVtZW50IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5EZWZzIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIsICJhVGFyZ2V0cyI6IFswXSB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiYVRhcmdldHMiOiBbMV0gfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIsICJhVGFyZ2V0cyI6IFsyXSB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iLCAiYVRhcmdldHMiOiBbM10gfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIsICJhVGFyZ2V0cyI6IFs0XSB9CgkJCQldLAoJCQkJInNEb20iOiAnbHJ0aXAnCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIG5Ob2RlcyA9ICQoJyNkZW1vIGRpdiwgI2RlbW8gdGFibGUnKTsKCQkJdmFyIG5XcmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfd3JhcHBlcicpOwoJCQl2YXIgbkxlbmd0aCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2xlbmd0aCcpOwoJCQl2YXIgbkZpbHRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2ZpbHRlcicpOwoJCQl2YXIgbkluZm8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJyk7CgkJCXZhciBuUGFnaW5nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcGFnaW5hdGUnKTsKCQkJdmFyIG5UYWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlJyk7CgkJCQoJCQl2YXIgYlJldHVybiA9IAoJCQkJbk5vZGVzWzBdID09IG5XcmFwcGVyICYmCgkJCQluTm9kZXNbMV0gPT0gbkxlbmd0aCAmJgoJCQkJbnVsbCA9PSBuRmlsdGVyICYmCgkJCQluTm9kZXNbMl0gPT0gblRhYmxlICYmCgkJCQluTm9kZXNbM10gPT0gbkluZm8gJiYKCQkJCW5Ob2Rlc1s0XSA9PSBuUGFnaW5nOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCgkvKiBOb3RlIHdlIGRvbid0IHRlc3QgZm9yIG5vIHRhYmxlIGFzIHRoaXMgaXMgbm90IHN1cHBvcnRlZCAoYW5kIGl0IHdvdWxkIGJlIGZhaXJseSBkYWZ0ISAqLwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ2hlY2sgbm8gaW5mbyBlbGVtZW50IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJCQkiYW9Db2x1bW5EZWZzIjogWwoJCQkJCXsgIm1EYXRhIjogImVuZ2luZSIsICJhVGFyZ2V0cyI6IFswXSB9LAoJCQkJCXsgIm1EYXRhIjogImJyb3dzZXIiLCAiYVRhcmdldHMiOiBbMV0gfSwKCQkJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIsICJhVGFyZ2V0cyI6IFsyXSB9LAoJCQkJCXsgIm1EYXRhIjogInZlcnNpb24iLCAiYVRhcmdldHMiOiBbM10gfSwKCQkJCQl7ICJtRGF0YSI6ICJncmFkZSIsICJhVGFyZ2V0cyI6IFs0XSB9CgkJCQldLAoJCQkJInNEb20iOiAnbGZydHAnCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIG5Ob2RlcyA9ICQoJyNkZW1vIGRpdiwgI2RlbW8gdGFibGUnKTsKCQkJdmFyIG5XcmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfd3JhcHBlcicpOwoJCQl2YXIgbkxlbmd0aCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2xlbmd0aCcpOwoJCQl2YXIgbkZpbHRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2ZpbHRlcicpOwoJCQl2YXIgbkluZm8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJyk7CgkJCXZhciBuUGFnaW5nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcGFnaW5hdGUnKTsKCQkJdmFyIG5UYWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlJyk7CgkJCQoJCQl2YXIgYlJldHVybiA9IAoJCQkJbk5vZGVzWzBdID09IG5XcmFwcGVyICYmCgkJCQluTm9kZXNbMV0gPT0gbkxlbmd0aCAmJgoJCQkJbk5vZGVzWzJdID09IG5GaWx0ZXIgJiYKCQkJCW5Ob2Rlc1szXSA9PSBuVGFibGUgJiYKCQkJCW51bGwgPT0gbkluZm8gJiYKCQkJCW5Ob2Rlc1s0XSA9PSBuUGFnaW5nOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ2hlY2sgbm8gcGFnaW5nIGVsZW1lbnQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiwgImFUYXJnZXRzIjogWzBdIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIsICJhVGFyZ2V0cyI6IFsxXSB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiwgImFUYXJnZXRzIjogWzJdIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIsICJhVGFyZ2V0cyI6IFszXSB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiwgImFUYXJnZXRzIjogWzRdIH0KCQkJCV0sCgkJCQkic0RvbSI6ICdsZnJ0aScKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgbk5vZGVzID0gJCgnI2RlbW8gZGl2LCAjZGVtbyB0YWJsZScpOwoJCQl2YXIgbldyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV93cmFwcGVyJyk7CgkJCXZhciBuTGVuZ3RoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfbGVuZ3RoJyk7CgkJCXZhciBuRmlsdGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfZmlsdGVyJyk7CgkJCXZhciBuSW5mbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKTsKCQkJdmFyIG5QYWdpbmcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wYWdpbmF0ZScpOwoJCQl2YXIgblRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGUnKTsKCQkJCgkJCXZhciBiUmV0dXJuID0gCgkJCQluTm9kZXNbMF0gPT0gbldyYXBwZXIgJiYKCQkJCW5Ob2Rlc1sxXSA9PSBuTGVuZ3RoICYmCgkJCQluTm9kZXNbMl0gPT0gbkZpbHRlciAmJgoJCQkJbk5vZGVzWzNdID09IG5UYWJsZSAmJgoJCQkJbk5vZGVzWzRdID09IG5JbmZvICYmCgkJCQludWxsID09IG5QYWdpbmc7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/sPaginationType.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggInNQYWdpbmF0aW9uVHlwZSIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9vYmplY3RzLnR4dCIsCgkJImFvQ29sdW1ucyI6IFsKCQkJeyAibURhdGEiOiAiZW5naW5lIiB9LAoJCQl7ICJtRGF0YSI6ICJicm93c2VyIiB9LAoJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIgfSwKCQkJeyAibURhdGEiOiAidmVyc2lvbiIgfSwKCQkJeyAibURhdGEiOiAiZ3JhZGUiIH0KCQldCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNoZWNrIHR3byBidXR0b24gcGFnaW5nIGlzIHRoZSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5zUGFnaW5hdGlvblR5cGUgPT0gInR3b19idXR0b24iOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ2hlY2sgY2xhc3MgaXMgYXBwbGllZCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9wYWdpbmF0ZScpLmhhc0NsYXNzKCdwYWdpbmdfdHdvX2J1dHRvbicpOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiVHdvIEEgZWxlbWVudHMgYXJlIGluIHRoZSB3cmFwcGVyIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlX3BhZ2luYXRlIGEnKS5sZW5ndGggPT0gMjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIldlIGhhdmUgdGhlIHByZXZpb3VzIGJ1dHRvbiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wcmV2aW91cycpOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiV2UgaGF2ZSB0aGUgbmV4dCBidXR0b24iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfbmV4dCcpOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUHJldmlvdXMgYnV0dG9uIGlzIGRpc2FibGVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlX3ByZXZpb3VzJykuaGFzQ2xhc3MoJ3BhZ2luYXRlX2Rpc2FibGVkX3ByZXZpb3VzJyk7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJOZXh0IGJ1dHRvbiBpcyBlbmFibGVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlX25leHQnKS5oYXNDbGFzcygncGFnaW5hdGVfZW5hYmxlZF9uZXh0Jyk7IH0KCSk7CgkKCS8qIERvbid0IHRlc3QgcGFnaW5nIC0gdGhhdCdzIGRvbmUgYnkgdGhlIHplcm8gY29uZmlnIHRlc3Qgc2NyaXB0LiAqLwoJCgkKCS8qIFR3byBidXR0b25zIHBhZ2luZyAqLwoJdmFyIGJDb21wbGV0ZSA9IGZhbHNlOwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNhbiBlbmFibGVkIGZ1bGwgbnVtYmVycyBwYWdpbmciLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL29iamVjdHMudHh0IiwKCQkJCSJhb0NvbHVtbkRlZnMiOiBbCgkJCQkJeyAibURhdGEiOiAiZW5naW5lIiwgImFUYXJnZXRzIjogWzBdIH0sCgkJCQkJeyAibURhdGEiOiAiYnJvd3NlciIsICJhVGFyZ2V0cyI6IFsxXSB9LAoJCQkJCXsgIm1EYXRhIjogInBsYXRmb3JtIiwgImFUYXJnZXRzIjogWzJdIH0sCgkJCQkJeyAibURhdGEiOiAidmVyc2lvbiIsICJhVGFyZ2V0cyI6IFszXSB9LAoJCQkJCXsgIm1EYXRhIjogImdyYWRlIiwgImFUYXJnZXRzIjogWzRdIH0KCQkJCV0sCgkJCQkic1BhZ2luYXRpb25UeXBlIjogImZ1bGxfbnVtYmVycyIsCgkJCQkiZm5Jbml0Q29tcGxldGUiOiBmdW5jdGlvbiAoKSB7CgkJCQkJYkNvbXBsZXRlID0gdHJ1ZTsKCQkJCX0KCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQlpZiAoIGJDb21wbGV0ZSApCgkJCQlyZXR1cm4gb1NldHRpbmdzLnNQYWdpbmF0aW9uVHlwZSA9PSAiZnVsbF9udW1iZXJzIjsKCQkJZWxzZQoJCQkJcmV0dXJuIGZhbHNlOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDaGVjayBmdWxsIG51bWJlcnMgY2xhc3MgaXMgYXBwbGllZCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9wYWdpbmF0ZScpLmhhc0NsYXNzKCdwYWdpbmdfZnVsbF9udW1iZXJzJyk7IH0KCSk7CgkKCQoJdmFyIG5GaXJzdCwgblByZXZpb3VzLCBuTmV4dCwgbkxhc3Q7CglvVGVzdC5mbldhaXRUZXN0KCAKCQkiSnVtcCB0byBsYXN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJbkZpcnN0ID0gJCgnZGl2LmRhdGFUYWJsZXNfcGFnaW5hdGUgYS5maXJzdCcpOwoJCQluUHJldmlvdXMgPSAkKCdkaXYuZGF0YVRhYmxlc19wYWdpbmF0ZSBhLnByZXZpb3VzJyk7CgkJCW5OZXh0ID0gJCgnZGl2LmRhdGFUYWJsZXNfcGFnaW5hdGUgYS5uZXh0Jyk7CgkJCW5MYXN0ID0gJCgnZGl2LmRhdGFUYWJsZXNfcGFnaW5hdGUgYS5sYXN0Jyk7CgkJCW5MYXN0LmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDUxIHRvIDU3IG9mIDU3IGVudHJpZXMiOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJHbyB0byB0d28gcGFnZXMgcHJldmlvdXMiLAoJCWZ1bmN0aW9uICgpIHsKCQkJblByZXZpb3VzLmNsaWNrKCk7CgkJCW5QcmV2aW91cy5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAzMSB0byA0MCBvZiA1NyBlbnRyaWVzIjsKCQl9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTmV4dCAoc2Vjb25kIGxhc3QpIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJbk5leHQuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgNDEgdG8gNTAgb2YgNTcgZW50cmllcyI7CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkp1bXAgdG8gZmlyc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQluRmlyc3QuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/_zero_config.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIlNhbml0eSBjaGVja3MgZm9yIERhdGFUYWJsZXMgd2l0aCBkYXRhIGZyb20gSlMgLSBPYmplY3QgZGF0YSBzb3VyY2UiICk7CgpvVGVzdC5mblRlc3QoIAoJImpRdWVyeS5kYXRhVGFibGUgZnVuY3Rpb24iLAoJbnVsbCwKCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVvZiBqUXVlcnkoKS5kYXRhVGFibGUgPT0gImZ1bmN0aW9uIjsgfQopOwoKb1Rlc3QuZm5UZXN0KAoJImpRdWVyeS5kYXRhVGFibGVTZXR0aW5ncyBzdG9yYWdlIGFycmF5IiwKCW51bGwsCglmdW5jdGlvbiAoKSB7IHJldHVybiB0eXBlb2YgalF1ZXJ5KCkuZGF0YVRhYmxlU2V0dGluZ3MgPT0gIm9iamVjdCI7IH0KKTsKCm9UZXN0LmZuVGVzdCgKCSJqUXVlcnkuZGF0YVRhYmxlRXh0IHBsdWdpbiBvYmplY3QiLAoJbnVsbCwKCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVvZiBqUXVlcnkoKS5kYXRhVGFibGVFeHQgPT0gIm9iamVjdCI7IH0KKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIgb0luaXQgPSB7CgkJImFvQ29sdW1ucyI6IFsKCQkJeyAibURhdGEiOiAiZW5naW5lIiB9LAoJCQl7ICJtRGF0YSI6ICJicm93c2VyIiB9LAoJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIgfSwKCQkJeyAibURhdGEiOiAidmVyc2lvbiIgfSwKCQkJeyAibURhdGEiOiAiZ3JhZGUiIH0KCQldLAoJCSJhYURhdGEiOiBbCgl7CgkJImVuZ2luZSI6ICJUcmlkZW50IiwKCQkiYnJvd3NlciI6ICJJbnRlcm5ldCBFeHBsb3JlciA0LjAiLAoJCSJwbGF0Zm9ybSI6ICJXaW4gOTUrIiwKCQkidmVyc2lvbiI6ICI0IiwKCQkiZ3JhZGUiOiAiWCIKCX0sCgl7CgkJImVuZ2luZSI6ICJUcmlkZW50IiwKCQkiYnJvd3NlciI6ICJJbnRlcm5ldCBFeHBsb3JlciA1LjAiLAoJCSJwbGF0Zm9ybSI6ICJXaW4gOTUrIiwKCQkidmVyc2lvbiI6ICI1IiwKCQkiZ3JhZGUiOiAiQyIKCX0sCgl7CgkJImVuZ2luZSI6ICJUcmlkZW50IiwKCQkiYnJvd3NlciI6ICJJbnRlcm5ldCBFeHBsb3JlciA1LjUiLAoJCSJwbGF0Zm9ybSI6ICJXaW4gOTUrIiwKCQkidmVyc2lvbiI6ICI1LjUiLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIlRyaWRlbnQiLAoJCSJicm93c2VyIjogIkludGVybmV0IEV4cGxvcmVyIDYiLAoJCSJwbGF0Zm9ybSI6ICJXaW4gOTgrIiwKCQkidmVyc2lvbiI6ICI2IiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJUcmlkZW50IiwKCQkiYnJvd3NlciI6ICJJbnRlcm5ldCBFeHBsb3JlciA3IiwKCQkicGxhdGZvcm0iOiAiV2luIFhQIFNQMisiLAoJCSJ2ZXJzaW9uIjogIjciLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIlRyaWRlbnQiLAoJCSJicm93c2VyIjogIkFPTCBicm93c2VyIChBT0wgZGVza3RvcCkiLAoJCSJwbGF0Zm9ybSI6ICJXaW4gWFAiLAoJCSJ2ZXJzaW9uIjogIjYiLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIkdlY2tvIiwKCQkiYnJvd3NlciI6ICJGaXJlZm94IDEuMCIsCgkJInBsYXRmb3JtIjogIldpbiA5OCsgLyBPU1guMisiLAoJCSJ2ZXJzaW9uIjogIjEuNyIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIkZpcmVmb3ggMS41IiwKCQkicGxhdGZvcm0iOiAiV2luIDk4KyAvIE9TWC4yKyIsCgkJInZlcnNpb24iOiAiMS44IiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJHZWNrbyIsCgkJImJyb3dzZXIiOiAiRmlyZWZveCAyLjAiLAoJCSJwbGF0Zm9ybSI6ICJXaW4gOTgrIC8gT1NYLjIrIiwKCQkidmVyc2lvbiI6ICIxLjgiLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIkdlY2tvIiwKCQkiYnJvd3NlciI6ICJGaXJlZm94IDMuMCIsCgkJInBsYXRmb3JtIjogIldpbiAyaysgLyBPU1guMysiLAoJCSJ2ZXJzaW9uIjogIjEuOSIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIkNhbWlubyAxLjAiLAoJCSJwbGF0Zm9ybSI6ICJPU1guMisiLAoJCSJ2ZXJzaW9uIjogIjEuOCIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIkNhbWlubyAxLjUiLAoJCSJwbGF0Zm9ybSI6ICJPU1guMysiLAoJCSJ2ZXJzaW9uIjogIjEuOCIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIk5ldHNjYXBlIDcuMiIsCgkJInBsYXRmb3JtIjogIldpbiA5NSsgLyBNYWMgT1MgOC42LTkuMiIsCgkJInZlcnNpb24iOiAiMS43IiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJHZWNrbyIsCgkJImJyb3dzZXIiOiAiTmV0c2NhcGUgQnJvd3NlciA4IiwKCQkicGxhdGZvcm0iOiAiV2luIDk4U0UrIiwKCQkidmVyc2lvbiI6ICIxLjciLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIkdlY2tvIiwKCQkiYnJvd3NlciI6ICJOZXRzY2FwZSBOYXZpZ2F0b3IgOSIsCgkJInBsYXRmb3JtIjogIldpbiA5OCsgLyBPU1guMisiLAoJCSJ2ZXJzaW9uIjogIjEuOCIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIk1vemlsbGEgMS4wIiwKCQkicGxhdGZvcm0iOiAiV2luIDk1KyAvIE9TWC4xKyIsCgkJInZlcnNpb24iOiAiMSIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIk1vemlsbGEgMS4xIiwKCQkicGxhdGZvcm0iOiAiV2luIDk1KyAvIE9TWC4xKyIsCgkJInZlcnNpb24iOiAiMS4xIiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJHZWNrbyIsCgkJImJyb3dzZXIiOiAiTW96aWxsYSAxLjIiLAoJCSJwbGF0Zm9ybSI6ICJXaW4gOTUrIC8gT1NYLjErIiwKCQkidmVyc2lvbiI6ICIxLjIiLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIkdlY2tvIiwKCQkiYnJvd3NlciI6ICJNb3ppbGxhIDEuMyIsCgkJInBsYXRmb3JtIjogIldpbiA5NSsgLyBPU1guMSsiLAoJCSJ2ZXJzaW9uIjogIjEuMyIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIk1vemlsbGEgMS40IiwKCQkicGxhdGZvcm0iOiAiV2luIDk1KyAvIE9TWC4xKyIsCgkJInZlcnNpb24iOiAiMS40IiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJHZWNrbyIsCgkJImJyb3dzZXIiOiAiTW96aWxsYSAxLjUiLAoJCSJwbGF0Zm9ybSI6ICJXaW4gOTUrIC8gT1NYLjErIiwKCQkidmVyc2lvbiI6ICIxLjUiLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIkdlY2tvIiwKCQkiYnJvd3NlciI6ICJNb3ppbGxhIDEuNiIsCgkJInBsYXRmb3JtIjogIldpbiA5NSsgLyBPU1guMSsiLAoJCSJ2ZXJzaW9uIjogIjEuNiIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIk1vemlsbGEgMS43IiwKCQkicGxhdGZvcm0iOiAiV2luIDk4KyAvIE9TWC4xKyIsCgkJInZlcnNpb24iOiAiMS43IiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJHZWNrbyIsCgkJImJyb3dzZXIiOiAiTW96aWxsYSAxLjgiLAoJCSJwbGF0Zm9ybSI6ICJXaW4gOTgrIC8gT1NYLjErIiwKCQkidmVyc2lvbiI6ICIxLjgiLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIkdlY2tvIiwKCQkiYnJvd3NlciI6ICJTZWFtb25rZXkgMS4xIiwKCQkicGxhdGZvcm0iOiAiV2luIDk4KyAvIE9TWC4yKyIsCgkJInZlcnNpb24iOiAiMS44IiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJHZWNrbyIsCgkJImJyb3dzZXIiOiAiRXBpcGhhbnkgMi4yMCIsCgkJInBsYXRmb3JtIjogIkdub21lIiwKCQkidmVyc2lvbiI6ICIxLjgiLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIldlYmtpdCIsCgkJImJyb3dzZXIiOiAiU2FmYXJpIDEuMiIsCgkJInBsYXRmb3JtIjogIk9TWC4zIiwKCQkidmVyc2lvbiI6ICIxMjUuNSIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiV2Via2l0IiwKCQkiYnJvd3NlciI6ICJTYWZhcmkgMS4zIiwKCQkicGxhdGZvcm0iOiAiT1NYLjMiLAoJCSJ2ZXJzaW9uIjogIjMxMi44IiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJXZWJraXQiLAoJCSJicm93c2VyIjogIlNhZmFyaSAyLjAiLAoJCSJwbGF0Zm9ybSI6ICJPU1guNCsiLAoJCSJ2ZXJzaW9uIjogIjQxOS4zIiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJXZWJraXQiLAoJCSJicm93c2VyIjogIlNhZmFyaSAzLjAiLAoJCSJwbGF0Zm9ybSI6ICJPU1guNCsiLAoJCSJ2ZXJzaW9uIjogIjUyMi4xIiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJXZWJraXQiLAoJCSJicm93c2VyIjogIk9tbmlXZWIgNS41IiwKCQkicGxhdGZvcm0iOiAiT1NYLjQrIiwKCQkidmVyc2lvbiI6ICI0MjAiLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIldlYmtpdCIsCgkJImJyb3dzZXIiOiAiaVBvZCBUb3VjaCAvIGlQaG9uZSIsCgkJInBsYXRmb3JtIjogImlQb2QiLAoJCSJ2ZXJzaW9uIjogIjQyMC4xIiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJXZWJraXQiLAoJCSJicm93c2VyIjogIlM2MCIsCgkJInBsYXRmb3JtIjogIlM2MCIsCgkJInZlcnNpb24iOiAiNDEzIiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJQcmVzdG8iLAoJCSJicm93c2VyIjogIk9wZXJhIDcuMCIsCgkJInBsYXRmb3JtIjogIldpbiA5NSsgLyBPU1guMSsiLAoJCSJ2ZXJzaW9uIjogIi0iLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIlByZXN0byIsCgkJImJyb3dzZXIiOiAiT3BlcmEgNy41IiwKCQkicGxhdGZvcm0iOiAiV2luIDk1KyAvIE9TWC4yKyIsCgkJInZlcnNpb24iOiAiLSIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiUHJlc3RvIiwKCQkiYnJvd3NlciI6ICJPcGVyYSA4LjAiLAoJCSJwbGF0Zm9ybSI6ICJXaW4gOTUrIC8gT1NYLjIrIiwKCQkidmVyc2lvbiI6ICItIiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJQcmVzdG8iLAoJCSJicm93c2VyIjogIk9wZXJhIDguNSIsCgkJInBsYXRmb3JtIjogIldpbiA5NSsgLyBPU1guMisiLAoJCSJ2ZXJzaW9uIjogIi0iLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIlByZXN0byIsCgkJImJyb3dzZXIiOiAiT3BlcmEgOS4wIiwKCQkicGxhdGZvcm0iOiAiV2luIDk1KyAvIE9TWC4zKyIsCgkJInZlcnNpb24iOiAiLSIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiUHJlc3RvIiwKCQkiYnJvd3NlciI6ICJPcGVyYSA5LjIiLAoJCSJwbGF0Zm9ybSI6ICJXaW4gODgrIC8gT1NYLjMrIiwKCQkidmVyc2lvbiI6ICItIiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJQcmVzdG8iLAoJCSJicm93c2VyIjogIk9wZXJhIDkuNSIsCgkJInBsYXRmb3JtIjogIldpbiA4OCsgLyBPU1guMysiLAoJCSJ2ZXJzaW9uIjogIi0iLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIlByZXN0byIsCgkJImJyb3dzZXIiOiAiT3BlcmEgZm9yIFdpaSIsCgkJInBsYXRmb3JtIjogIldpaSIsCgkJInZlcnNpb24iOiAiLSIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiUHJlc3RvIiwKCQkiYnJvd3NlciI6ICJOb2tpYSBOODAwIiwKCQkicGxhdGZvcm0iOiAiTjgwMCIsCgkJInZlcnNpb24iOiAiLSIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiUHJlc3RvIiwKCQkiYnJvd3NlciI6ICJOaW50ZW5kbyBEUyBicm93c2VyIiwKCQkicGxhdGZvcm0iOiAiTmludGVuZG8gRFMiLAoJCSJ2ZXJzaW9uIjogIjguNSIsCgkJImdyYWRlIjogIkMvQTxzdXA+MTwvc3VwPiIKCX0sCgl7CgkJImVuZ2luZSI6ICJLSFRNTCIsCgkJImJyb3dzZXIiOiAiS29ucXVyZXJvciAzLjEiLAoJCSJwbGF0Zm9ybSI6ICJLREUgMy4xIiwKCQkidmVyc2lvbiI6ICIzLjEiLAoJCSJncmFkZSI6ICJDIgoJfSwKCXsKCQkiZW5naW5lIjogIktIVE1MIiwKCQkiYnJvd3NlciI6ICJLb25xdXJlcm9yIDMuMyIsCgkJInBsYXRmb3JtIjogIktERSAzLjMiLAoJCSJ2ZXJzaW9uIjogIjMuMyIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiS0hUTUwiLAoJCSJicm93c2VyIjogIktvbnF1cmVyb3IgMy41IiwKCQkicGxhdGZvcm0iOiAiS0RFIDMuNSIsCgkJInZlcnNpb24iOiAiMy41IiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJUYXNtYW4iLAoJCSJicm93c2VyIjogIkludGVybmV0IEV4cGxvcmVyIDQuNSIsCgkJInBsYXRmb3JtIjogIk1hYyBPUyA4LTkiLAoJCSJ2ZXJzaW9uIjogIi0iLAoJCSJncmFkZSI6ICJYIgoJfSwKCXsKCQkiZW5naW5lIjogIlRhc21hbiIsCgkJImJyb3dzZXIiOiAiSW50ZXJuZXQgRXhwbG9yZXIgNS4xIiwKCQkicGxhdGZvcm0iOiAiTWFjIE9TIDcuNi05IiwKCQkidmVyc2lvbiI6ICIxIiwKCQkiZ3JhZGUiOiAiQyIKCX0sCgl7CgkJImVuZ2luZSI6ICJUYXNtYW4iLAoJCSJicm93c2VyIjogIkludGVybmV0IEV4cGxvcmVyIDUuMiIsCgkJInBsYXRmb3JtIjogIk1hYyBPUyA4LVgiLAoJCSJ2ZXJzaW9uIjogIjEiLAoJCSJncmFkZSI6ICJDIgoJfSwKCXsKCQkiZW5naW5lIjogIk1pc2MiLAoJCSJicm93c2VyIjogIk5ldEZyb250IDMuMSIsCgkJInBsYXRmb3JtIjogIkVtYmVkZGVkIGRldmljZXMiLAoJCSJ2ZXJzaW9uIjogIi0iLAoJCSJncmFkZSI6ICJDIgoJfSwKCXsKCQkiZW5naW5lIjogIk1pc2MiLAoJCSJicm93c2VyIjogIk5ldEZyb250IDMuNCIsCgkJInBsYXRmb3JtIjogIkVtYmVkZGVkIGRldmljZXMiLAoJCSJ2ZXJzaW9uIjogIi0iLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIk1pc2MiLAoJCSJicm93c2VyIjogIkRpbGxvIDAuOCIsCgkJInBsYXRmb3JtIjogIkVtYmVkZGVkIGRldmljZXMiLAoJCSJ2ZXJzaW9uIjogIi0iLAoJCSJncmFkZSI6ICJYIgoJfSwKCXsKCQkiZW5naW5lIjogIk1pc2MiLAoJCSJicm93c2VyIjogIkxpbmtzIiwKCQkicGxhdGZvcm0iOiAiVGV4dCBvbmx5IiwKCQkidmVyc2lvbiI6ICItIiwKCQkiZ3JhZGUiOiAiWCIKCX0sCgl7CgkJImVuZ2luZSI6ICJNaXNjIiwKCQkiYnJvd3NlciI6ICJMeW54IiwKCQkicGxhdGZvcm0iOiAiVGV4dCBvbmx5IiwKCQkidmVyc2lvbiI6ICItIiwKCQkiZ3JhZGUiOiAiWCIKCX0sCgl7CgkJImVuZ2luZSI6ICJNaXNjIiwKCQkiYnJvd3NlciI6ICJJRSBNb2JpbGUiLAoJCSJwbGF0Zm9ybSI6ICJXaW5kb3dzIE1vYmlsZSA2IiwKCQkidmVyc2lvbiI6ICItIiwKCQkiZ3JhZGUiOiAiQyIKCX0sCgl7CgkJImVuZ2luZSI6ICJNaXNjIiwKCQkiYnJvd3NlciI6ICJQU1AgYnJvd3NlciIsCgkJInBsYXRmb3JtIjogIlBTUCIsCgkJInZlcnNpb24iOiAiLSIsCgkJImdyYWRlIjogIkMiCgl9LAoJewoJCSJlbmdpbmUiOiAiT3RoZXIgYnJvd3NlcnMiLAoJCSJicm93c2VyIjogIkFsbCBvdGhlcnMiLAoJCSJwbGF0Zm9ybSI6ICItIiwKCQkidmVyc2lvbiI6ICItIiwKCQkiZ3JhZGUiOiAiVSIKCX0KXQoJfTsKCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCBvSW5pdCApOwoJCgkvKiBCYXNpYyBjaGVja3MgKi8KCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJMZW5ndGggY2hhbmdpbmcgZGl2IGV4aXN0cyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9sZW5ndGgnKSAhPSBudWxsOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJGaWx0ZXJpbmcgZGl2IGV4aXN0cyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9maWx0ZXInKSAhPSBudWxsOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJbmZvcm1hdGlvbiBkaXYgZXhpc3RzIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKSAhPSBudWxsOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJQYWdpbmF0aW9uIGRpdiBleGlzdHMiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcGFnaW5hdGUnKSAhPSBudWxsOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJQcm9jZXNzaW5nIGRpdiBpcyBvZmYgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wcm9jZXNzaW5nJykgPT0gbnVsbDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIjEwIHJvd3Mgc2hvd24gb24gdGhlIGZpcnN0IHBhZ2UiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMTA7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkluaXRpYWwgc29ydCBvY2N1cmVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDApJykuaHRtbCgpID09ICJHZWNrbyI7IH0KCSk7CgkKCS8qIE5lZWQgdG8gdXNlIHRoZSBXYWl0VGVzdCBmb3Igc29ydGluZyBkdWUgdG8gdGhlIHNldFRpbWVvdXQgZGF0YXRhYmxlcyB1c2VzICovCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIChmaXJzdCBjbGljaykgb24gc2Vjb25kIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIChzZWNvbmQgY2xpY2spIG9uIHNlY29uZCBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJTZWFtb25rZXkgMS4xIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyAodGhpcmQgY2xpY2spIG9uIHNlY29uZCBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyAoZmlyc3QgY2xpY2spIG9uIG51bWVyaWMgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiLSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgKHNlY29uZCBjbGljaykgb24gbnVtZXJpYyBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMyknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDMpJykuaHRtbCgpID09ICI1MjIuMSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgbXVsdGktY29sdW1uIChmaXJzdCBjbGljaykiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDApJykuY2xpY2soKTsKCQkJb0Rpc3BhY2hlci5jbGljayggJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKVswXSwgeyAnc2hpZnQnOiB0cnVlIH0gKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHZhciBiID0gCgkJCSQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDApJykuaHRtbCgpID09ICJHZWNrbyIgJiYgCgkJCSQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJDYW1pbm8gMS4wIjsgcmV0dXJuIGI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgbXVsdGktY29sdW1uIC0gc29ydGluZyBzZWNvbmQgY29sdW1uIG9ubHkiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCS8qIEJhc2ljIHBhZ2luZyAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiUGFnaW5nIHRvIHNlY29uZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJJRSBNb2JpbGUiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJQYWdpbmcgdG8gZmlyc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJBdHRlbXB0aW5nIHRvIHBhZ2UgYmFjayBiZXlvbmQgdGhlIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJLyogQ2hhbmdpbmcgbGVuZ3RoICovCglvVGVzdC5mblRlc3QoIAoJCSJDaGFuZ2luZyB0YWJsZSBsZW5ndGggdG8gMjUgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzI1JykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMjU7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoYW5naW5nIHRhYmxlIGxlbmd0aCB0byA1MCByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7ICQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnNTAnKS5jaGFuZ2UoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSA1MDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2hhbmdpbmcgdGFibGUgbGVuZ3RoIHRvIDEwMCByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7ICQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnMTAwJykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gNTc7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoYW5naW5nIHRhYmxlIGxlbmd0aCB0byAxMCByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7ICQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnMTAnKS5jaGFuZ2UoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSAxMDsgfQoJKTsKCQoJLyoKCSAqIEluZm9ybWF0aW9uIGVsZW1lbnQKCSAqLwoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiBvbiB6ZXJvIGNvbmZpZyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gb24gc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAxMSB0byAyMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiBvbiB0aGlyZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMjEgdG8gMzAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gb24gbGFzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDUxIHRvIDU3IG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIGJhY2sgb24gZmlyc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIDI1IHJlY29yZHMiLAoJCWZ1bmN0aW9uICgpIHsgJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcyNScpLmNoYW5nZSgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMSB0byAyNSBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIDI1IHJlY29yZHMgLSBzZWNvbmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDI2IHRvIDUwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggMTAwIHJlY29yZHMgLSBmaXJzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcxMDAnKS5jaGFuZ2UoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMSB0byA1NyBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiBiYWNrIHRvIDEwIHJlY29yZHMiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzEwJykuY2hhbmdlKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbiciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXaW4iKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbicgc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMTEgdG8gMjAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbicgbGFzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDMxIHRvIDMxIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyICdXaW4nIGJhY2sgdG8gZmlyc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciAnV2luJyBzZWNvbmQgcGFnZSAtIHNlY29uZCB0aW1lIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMTEgdG8gMjAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgaW5jcmVhc2VkIHRvICdXaW4gOTgnIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2luIDk4Iikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDkgb2YgOSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciBkZWNyZWFzZWQgdG8gJ1dpbiciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXaW4iKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbicgc2Vjb25kIHBhZ2UgLSB0aGlyZCB0aW1lIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMTEgdG8gMjAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgcmVtb3ZlZCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIiIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJCgkvKgoJICogRmlsdGVyaW5nCgkgKi8KCW9UZXN0LmZuV2FpdFRlc3QoCgkJIkZpbHRlciAnVycgLSByb3dzIiwKCQlmdW5jdGlvbiAoKSB7IAoJCQkvKiBSZXNldCB0aGUgdGFibGUgc3VjaCB0aGF0IHRoZSBvbGQgc29ydGluZyBkb2Vzbid0IG1lc3MgdGhpbmdzIHVwICovCgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggb0luaXQgKTsKCQkJJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiR2Vja28iOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnVycgLSBpbmZvIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgNDIgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaSciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXaSIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAzMiBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbiciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXaW4iKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaW4nIC0gc29ydGluZyBjb2x1bW4gMSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFPTCBicm93c2VyIChBT0wgZGVza3RvcCkiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luJyAtIHNvcnRpbmcgY29sdW1uIDEgaW5mbyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luJyAtIHNvcnRpbmcgY29sdW1uIDEgcmV2ZXJzZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIlNlYW1vbmtleSAxLjEiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luIFhQJyAtIG1haW50YWluZyByZXZlcnNlIHNvcnRpbmcgY29sIDEiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXaW4gWFAiKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICJJbnRlcm5ldCBFeHBsb3JlciA3IjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbiBYUCcgLSBzb3J0aW5nIGNvbCAzIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiNCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaW4gWFAnIC0gc29ydGluZyBjb2wgMyAtIHJldmVyc2VkIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiNyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaW4nIC0gc29ydGluZyBjb2wgMyAtIHJldmVyc2VkIGluZm8iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byA2IG9mIDYgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdub3RoaW5naGVyZSciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJub3RoaW5naGVyZSIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gCgkJCSJObyBtYXRjaGluZyByZWNvcmRzIGZvdW5kIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ25vdGhpbmdoZXJlJyAtIGluZm8iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMCB0byAwIG9mIDAgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyIGJhY2sgdG8gYmxhbmsgYW5kIDFzdCBjb2x1bW4gc29ydGluZyIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIiIpLmtleXVwKCk7CgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDApJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiUHJlZml4aW5nIGEgZmlsdGVyIGVudHJ5IiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2luIikua2V5dXAoKTsKCQkJJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJHZWNrb1dpbiIpLmtleXVwKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAwIHRvIDAgb2YgMCBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJQcmVmaXhpbmcgYSBmaWx0ZXIgZW50cnkgd2l0aCBzcGFjZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIkdlY2tvIFdpbiIpLmtleXVwKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDE3IGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCgkKCQoJCgkKCQoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/_zero_config_arrays_subobjects.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIlNhbml0eSBjaGVja3MgZm9yIERhdGFUYWJsZXMgd2l0aCBkYXRhIGZyb20gSlMgLSBBcnJheSAvIHN1Yi1vYmplY3QgZGF0YSBzb3VyY2UiICk7CgpvVGVzdC5mblRlc3QoIAoJImpRdWVyeS5kYXRhVGFibGUgZnVuY3Rpb24iLAoJbnVsbCwKCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVvZiBqUXVlcnkoKS5kYXRhVGFibGUgPT0gImZ1bmN0aW9uIjsgfQopOwoKb1Rlc3QuZm5UZXN0KAoJImpRdWVyeS5kYXRhVGFibGVTZXR0aW5ncyBzdG9yYWdlIGFycmF5IiwKCW51bGwsCglmdW5jdGlvbiAoKSB7IHJldHVybiB0eXBlb2YgalF1ZXJ5KCkuZGF0YVRhYmxlU2V0dGluZ3MgPT0gIm9iamVjdCI7IH0KKTsKCm9UZXN0LmZuVGVzdCgKCSJqUXVlcnkuZGF0YVRhYmxlRXh0IHBsdWdpbiBvYmplY3QiLAoJbnVsbCwKCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVvZiBqUXVlcnkoKS5kYXRhVGFibGVFeHQgPT0gIm9iamVjdCI7IH0KKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIgb0luaXQgPSB7CgkJImFvQ29sdW1ucyI6IFsKCQkJbnVsbCwKCQkJbnVsbCwKCQkJeyAibURhdGEiOiAyIH0sCgkJCXsgIm1EYXRhIjogIjMudmVyc2lvbiIgfSwKCQkJeyAibURhdGEiOiAiMy5ncmFkZSIgfQoJCV0sCgkJImFhRGF0YSI6IFsKCVsKCQkiVHJpZGVudCIsCgkJIkludGVybmV0IEV4cGxvcmVyIDQuMCIsCgkJIldpbiA5NSsiLAoJCXsKCQkJInZlcnNpb24iOiAiNCIsCgkJCSJncmFkZSI6ICJYIgoJCX0KCV0sCglbCgkJIlRyaWRlbnQiLAoJCSJJbnRlcm5ldCBFeHBsb3JlciA1LjAiLAoJCSJXaW4gOTUrIiwKCQl7CgkJCSJ2ZXJzaW9uIjogIjUiLAoJCQkiZ3JhZGUiOiAiQyIKCQl9CgldLAoJWwoJCSJUcmlkZW50IiwKCQkiSW50ZXJuZXQgRXhwbG9yZXIgNS41IiwKCQkiV2luIDk1KyIsCgkJewoJCQkidmVyc2lvbiI6ICI1LjUiLAoJCQkiZ3JhZGUiOiAiQSIKCQl9CgldLAoJWwoJCSJUcmlkZW50IiwKCQkiSW50ZXJuZXQgRXhwbG9yZXIgNiIsCgkJIldpbiA5OCsiLAoJCXsKCQkJInZlcnNpb24iOiAiNiIsCgkJCSJncmFkZSI6ICJBIgoJCX0KCV0sCglbCgkJIlRyaWRlbnQiLAoJCSJJbnRlcm5ldCBFeHBsb3JlciA3IiwKCQkiV2luIFhQIFNQMisiLAoJCXsKCQkJInZlcnNpb24iOiAiNyIsCgkJCSJncmFkZSI6ICJBIgoJCX0KCV0sCglbCgkJIlRyaWRlbnQiLAoJCSJBT0wgYnJvd3NlciAoQU9MIGRlc2t0b3ApIiwKCQkiV2luIFhQIiwKCQl7CgkJCSJ2ZXJzaW9uIjogIjYiLAoJCQkiZ3JhZGUiOiAiQSIKCQl9CgldLAoJWwoJCSJHZWNrbyIsCgkJIkZpcmVmb3ggMS4wIiwKCQkiV2luIDk4KyAvIE9TWC4yKyIsCgkJewoJCQkidmVyc2lvbiI6ICIxLjciLAoJCQkiZ3JhZGUiOiAiQSIKCQl9CgldLAoJWwoJCSJHZWNrbyIsCgkJIkZpcmVmb3ggMS41IiwKCQkiV2luIDk4KyAvIE9TWC4yKyIsCgkJewoJCQkidmVyc2lvbiI6ICIxLjgiLAoJCQkiZ3JhZGUiOiAiQSIKCQl9CgldLAoJWwoJCSJHZWNrbyIsCgkJIkZpcmVmb3ggMi4wIiwKCQkiV2luIDk4KyAvIE9TWC4yKyIsCgkJewoJCQkidmVyc2lvbiI6ICIxLjgiLAoJCQkiZ3JhZGUiOiAiQSIKCQl9CgldLAoJWwoJCSJHZWNrbyIsCgkJIkZpcmVmb3ggMy4wIiwKCQkiV2luIDJrKyAvIE9TWC4zKyIsCgkJewoJCQkidmVyc2lvbiI6ICIxLjkiLAoJCQkiZ3JhZGUiOiAiQSIKCQl9CgldLAoJWwoJCSJHZWNrbyIsCgkJIkNhbWlubyAxLjAiLAoJCSJPU1guMisiLAoJCXsKCQkJInZlcnNpb24iOiAiMS44IiwKCQkJImdyYWRlIjogIkEiCgkJfQoJXSwKCVsKCQkiR2Vja28iLAoJCSJDYW1pbm8gMS41IiwKCQkiT1NYLjMrIiwKCQl7CgkJCSJ2ZXJzaW9uIjogIjEuOCIsCgkJCSJncmFkZSI6ICJBIgoJCX0KCV0sCglbCgkJIkdlY2tvIiwKCQkiTmV0c2NhcGUgNy4yIiwKCQkiV2luIDk1KyAvIE1hYyBPUyA4LjYtOS4yIiwKCQl7CgkJCSJ2ZXJzaW9uIjogIjEuNyIsCgkJCSJncmFkZSI6ICJBIgoJCX0KCV0sCglbCgkJIkdlY2tvIiwKCQkiTmV0c2NhcGUgQnJvd3NlciA4IiwKCQkiV2luIDk4U0UrIiwKCQl7CgkJCSJ2ZXJzaW9uIjogIjEuNyIsCgkJCSJncmFkZSI6ICJBIgoJCX0KCV0sCglbCgkJIkdlY2tvIiwKCQkiTmV0c2NhcGUgTmF2aWdhdG9yIDkiLAoJCSJXaW4gOTgrIC8gT1NYLjIrIiwKCQl7CgkJCSJ2ZXJzaW9uIjogIjEuOCIsCgkJCSJncmFkZSI6ICJBIgoJCX0KCV0sCglbCgkJIkdlY2tvIiwKCQkiTW96aWxsYSAxLjAiLAoJCSJXaW4gOTUrIC8gT1NYLjErIiwKCQl7CgkJCSJ2ZXJzaW9uIjogIjEiLAoJCQkiZ3JhZGUiOiAiQSIKCQl9CgldLAoJWwoJCSJHZWNrbyIsCgkJIk1vemlsbGEgMS4xIiwKCQkiV2luIDk1KyAvIE9TWC4xKyIsCgkJewoJCQkidmVyc2lvbiI6ICIxLjEiLAoJCQkiZ3JhZGUiOiAiQSIKCQl9CgldLAoJWwoJCSJHZWNrbyIsCgkJIk1vemlsbGEgMS4yIiwKCQkiV2luIDk1KyAvIE9TWC4xKyIsCgkJewoJCQkidmVyc2lvbiI6ICIxLjIiLAoJCQkiZ3JhZGUiOiAiQSIKCQl9CgldLAoJWwoJCSJHZWNrbyIsCgkJIk1vemlsbGEgMS4zIiwKCQkiV2luIDk1KyAvIE9TWC4xKyIsCgkJewoJCQkidmVyc2lvbiI6ICIxLjMiLAoJCQkiZ3JhZGUiOiAiQSIKCQl9CgldLAoJWwoJCSJHZWNrbyIsCgkJIk1vemlsbGEgMS40IiwKCQkiV2luIDk1KyAvIE9TWC4xKyIsCgkJewoJCQkidmVyc2lvbiI6ICIxLjQiLAoJCQkiZ3JhZGUiOiAiQSIKCQl9CgldLAoJWwoJCSJHZWNrbyIsCgkJIk1vemlsbGEgMS41IiwKCQkiV2luIDk1KyAvIE9TWC4xKyIsCgkJewoJCQkidmVyc2lvbiI6ICIxLjUiLAoJCQkiZ3JhZGUiOiAiQSIKCQl9CgldLAoJWwoJCSJHZWNrbyIsCgkJIk1vemlsbGEgMS42IiwKCQkiV2luIDk1KyAvIE9TWC4xKyIsCgkJewoJCQkidmVyc2lvbiI6ICIxLjYiLAoJCQkiZ3JhZGUiOiAiQSIKCQl9CgldLAoJWwoJCSJHZWNrbyIsCgkJIk1vemlsbGEgMS43IiwKCQkiV2luIDk4KyAvIE9TWC4xKyIsCgkJewoJCQkidmVyc2lvbiI6ICIxLjciLAoJCQkiZ3JhZGUiOiAiQSIKCQl9CgldLAoJWwoJCSJHZWNrbyIsCgkJIk1vemlsbGEgMS44IiwKCQkiV2luIDk4KyAvIE9TWC4xKyIsCgkJewoJCQkidmVyc2lvbiI6ICIxLjgiLAoJCQkiZ3JhZGUiOiAiQSIKCQl9CgldLAoJWwoJCSJHZWNrbyIsCgkJIlNlYW1vbmtleSAxLjEiLAoJCSJXaW4gOTgrIC8gT1NYLjIrIiwKCQl7CgkJCSJ2ZXJzaW9uIjogIjEuOCIsCgkJCSJncmFkZSI6ICJBIgoJCX0KCV0sCglbCgkJIkdlY2tvIiwKCQkiRXBpcGhhbnkgMi4yMCIsCgkJIkdub21lIiwKCQl7CgkJCSJ2ZXJzaW9uIjogIjEuOCIsCgkJCSJncmFkZSI6ICJBIgoJCX0KCV0sCglbCgkJIldlYmtpdCIsCgkJIlNhZmFyaSAxLjIiLAoJCSJPU1guMyIsCgkJewoJCQkidmVyc2lvbiI6ICIxMjUuNSIsCgkJCSJncmFkZSI6ICJBIgoJCX0KCV0sCglbCgkJIldlYmtpdCIsCgkJIlNhZmFyaSAxLjMiLAoJCSJPU1guMyIsCgkJewoJCQkidmVyc2lvbiI6ICIzMTIuOCIsCgkJCSJncmFkZSI6ICJBIgoJCX0KCV0sCglbCgkJIldlYmtpdCIsCgkJIlNhZmFyaSAyLjAiLAoJCSJPU1guNCsiLAoJCXsKCQkJInZlcnNpb24iOiAiNDE5LjMiLAoJCQkiZ3JhZGUiOiAiQSIKCQl9CgldLAoJWwoJCSJXZWJraXQiLAoJCSJTYWZhcmkgMy4wIiwKCQkiT1NYLjQrIiwKCQl7CgkJCSJ2ZXJzaW9uIjogIjUyMi4xIiwKCQkJImdyYWRlIjogIkEiCgkJfQoJXSwKCVsKCQkiV2Via2l0IiwKCQkiT21uaVdlYiA1LjUiLAoJCSJPU1guNCsiLAoJCXsKCQkJInZlcnNpb24iOiAiNDIwIiwKCQkJImdyYWRlIjogIkEiCgkJfQoJXSwKCVsKCQkiV2Via2l0IiwKCQkiaVBvZCBUb3VjaCAvIGlQaG9uZSIsCgkJImlQb2QiLAoJCXsKCQkJInZlcnNpb24iOiAiNDIwLjEiLAoJCQkiZ3JhZGUiOiAiQSIKCQl9CgldLAoJWwoJCSJXZWJraXQiLAoJCSJTNjAiLAoJCSJTNjAiLAoJCXsKCQkJInZlcnNpb24iOiAiNDEzIiwKCQkJImdyYWRlIjogIkEiCgkJfQoJXSwKCVsKCQkiUHJlc3RvIiwKCQkiT3BlcmEgNy4wIiwKCQkiV2luIDk1KyAvIE9TWC4xKyIsCgkJewoJCQkidmVyc2lvbiI6ICItIiwKCQkJImdyYWRlIjogIkEiCgkJfQoJXSwKCVsKCQkiUHJlc3RvIiwKCQkiT3BlcmEgNy41IiwKCQkiV2luIDk1KyAvIE9TWC4yKyIsCgkJewoJCQkidmVyc2lvbiI6ICItIiwKCQkJImdyYWRlIjogIkEiCgkJfQoJXSwKCVsKCQkiUHJlc3RvIiwKCQkiT3BlcmEgOC4wIiwKCQkiV2luIDk1KyAvIE9TWC4yKyIsCgkJewoJCQkidmVyc2lvbiI6ICItIiwKCQkJImdyYWRlIjogIkEiCgkJfQoJXSwKCVsKCQkiUHJlc3RvIiwKCQkiT3BlcmEgOC41IiwKCQkiV2luIDk1KyAvIE9TWC4yKyIsCgkJewoJCQkidmVyc2lvbiI6ICItIiwKCQkJImdyYWRlIjogIkEiCgkJfQoJXSwKCVsKCQkiUHJlc3RvIiwKCQkiT3BlcmEgOS4wIiwKCQkiV2luIDk1KyAvIE9TWC4zKyIsCgkJewoJCQkidmVyc2lvbiI6ICItIiwKCQkJImdyYWRlIjogIkEiCgkJfQoJXSwKCVsKCQkiUHJlc3RvIiwKCQkiT3BlcmEgOS4yIiwKCQkiV2luIDg4KyAvIE9TWC4zKyIsCgkJewoJCQkidmVyc2lvbiI6ICItIiwKCQkJImdyYWRlIjogIkEiCgkJfQoJXSwKCVsKCQkiUHJlc3RvIiwKCQkiT3BlcmEgOS41IiwKCQkiV2luIDg4KyAvIE9TWC4zKyIsCgkJewoJCQkidmVyc2lvbiI6ICItIiwKCQkJImdyYWRlIjogIkEiCgkJfQoJXSwKCVsKCQkiUHJlc3RvIiwKCQkiT3BlcmEgZm9yIFdpaSIsCgkJIldpaSIsCgkJewoJCQkidmVyc2lvbiI6ICItIiwKCQkJImdyYWRlIjogIkEiCgkJfQoJXSwKCVsKCQkiUHJlc3RvIiwKCQkiTm9raWEgTjgwMCIsCgkJIk44MDAiLAoJCXsKCQkJInZlcnNpb24iOiAiLSIsCgkJCSJncmFkZSI6ICJBIgoJCX0KCV0sCglbCgkJIlByZXN0byIsCgkJIk5pbnRlbmRvIERTIGJyb3dzZXIiLAoJCSJOaW50ZW5kbyBEUyIsCgkJewoJCQkidmVyc2lvbiI6ICI4LjUiLAoJCQkiZ3JhZGUiOiAiQy9BPHN1cD4xPC9zdXA+IgoJCX0KCV0sCglbCgkJIktIVE1MIiwKCQkiS29ucXVyZXJvciAzLjEiLAoJCSJLREUgMy4xIiwKCQl7CgkJCSJ2ZXJzaW9uIjogIjMuMSIsCgkJCSJncmFkZSI6ICJDIgoJCX0KCV0sCglbCgkJIktIVE1MIiwKCQkiS29ucXVyZXJvciAzLjMiLAoJCSJLREUgMy4zIiwKCQl7CgkJCSJ2ZXJzaW9uIjogIjMuMyIsCgkJCSJncmFkZSI6ICJBIgoJCX0KCV0sCglbCgkJIktIVE1MIiwKCQkiS29ucXVyZXJvciAzLjUiLAoJCSJLREUgMy41IiwKCQl7CgkJCSJ2ZXJzaW9uIjogIjMuNSIsCgkJCSJncmFkZSI6ICJBIgoJCX0KCV0sCglbCgkJIlRhc21hbiIsCgkJIkludGVybmV0IEV4cGxvcmVyIDQuNSIsCgkJIk1hYyBPUyA4LTkiLAoJCXsKCQkJInZlcnNpb24iOiAiLSIsCgkJCSJncmFkZSI6ICJYIgoJCX0KCV0sCglbCgkJIlRhc21hbiIsCgkJIkludGVybmV0IEV4cGxvcmVyIDUuMSIsCgkJIk1hYyBPUyA3LjYtOSIsCgkJewoJCQkidmVyc2lvbiI6ICIxIiwKCQkJImdyYWRlIjogIkMiCgkJfQoJXSwKCVsKCQkiVGFzbWFuIiwKCQkiSW50ZXJuZXQgRXhwbG9yZXIgNS4yIiwKCQkiTWFjIE9TIDgtWCIsCgkJewoJCQkidmVyc2lvbiI6ICIxIiwKCQkJImdyYWRlIjogIkMiCgkJfQoJXSwKCVsKCQkiTWlzYyIsCgkJIk5ldEZyb250IDMuMSIsCgkJIkVtYmVkZGVkIGRldmljZXMiLAoJCXsKCQkJInZlcnNpb24iOiAiLSIsCgkJCSJncmFkZSI6ICJDIgoJCX0KCV0sCglbCgkJIk1pc2MiLAoJCSJOZXRGcm9udCAzLjQiLAoJCSJFbWJlZGRlZCBkZXZpY2VzIiwKCQl7CgkJCSJ2ZXJzaW9uIjogIi0iLAoJCQkiZ3JhZGUiOiAiQSIKCQl9CgldLAoJWwoJCSJNaXNjIiwKCQkiRGlsbG8gMC44IiwKCQkiRW1iZWRkZWQgZGV2aWNlcyIsCgkJewoJCQkidmVyc2lvbiI6ICItIiwKCQkJImdyYWRlIjogIlgiCgkJfQoJXSwKCVsKCQkiTWlzYyIsCgkJIkxpbmtzIiwKCQkiVGV4dCBvbmx5IiwKCQl7CgkJCSJ2ZXJzaW9uIjogIi0iLAoJCQkiZ3JhZGUiOiAiWCIKCQl9CgldLAoJWwoJCSJNaXNjIiwKCQkiTHlueCIsCgkJIlRleHQgb25seSIsCgkJewoJCQkidmVyc2lvbiI6ICItIiwKCQkJImdyYWRlIjogIlgiCgkJfQoJXSwKCVsKCQkiTWlzYyIsCgkJIklFIE1vYmlsZSIsCgkJIldpbmRvd3MgTW9iaWxlIDYiLAoJCXsKCQkJInZlcnNpb24iOiAiLSIsCgkJCSJncmFkZSI6ICJDIgoJCX0KCV0sCglbCgkJIk1pc2MiLAoJCSJQU1AgYnJvd3NlciIsCgkJIlBTUCIsCgkJewoJCQkidmVyc2lvbiI6ICItIiwKCQkJImdyYWRlIjogIkMiCgkJfQoJXSwKCVsKCQkiT3RoZXIgYnJvd3NlcnMiLAoJCSJBbGwgb3RoZXJzIiwKCQkiLSIsCgkJewoJCQkidmVyc2lvbiI6ICItIiwKCQkJImdyYWRlIjogIlUiCgkJfQoJXQpdCgl9OwoJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIG9Jbml0ICk7CgkKCS8qIEJhc2ljIGNoZWNrcyAqLwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkxlbmd0aCBjaGFuZ2luZyBkaXYgZXhpc3RzIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2xlbmd0aCcpICE9IG51bGw7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkZpbHRlcmluZyBkaXYgZXhpc3RzIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2ZpbHRlcicpICE9IG51bGw7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkluZm9ybWF0aW9uIGRpdiBleGlzdHMiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpICE9IG51bGw7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlBhZ2luYXRpb24gZGl2IGV4aXN0cyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wYWdpbmF0ZScpICE9IG51bGw7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlByb2Nlc3NpbmcgZGl2IGlzIG9mZiBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3Byb2Nlc3NpbmcnKSA9PSBudWxsOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiMTAgcm93cyBzaG93biBvbiB0aGUgZmlyc3QgcGFnZSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSAxMDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiSW5pdGlhbCBzb3J0IG9jY3VyZWQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gIkdlY2tvIjsgfQoJKTsKCQoJLyogTmVlZCB0byB1c2UgdGhlIFdhaXRUZXN0IGZvciBzb3J0aW5nIGR1ZSB0byB0aGUgc2V0VGltZW91dCBkYXRhdGFibGVzIHVzZXMgKi8KCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgKGZpcnN0IGNsaWNrKSBvbiBzZWNvbmQgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgKHNlY29uZCBjbGljaykgb24gc2Vjb25kIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIlNlYW1vbmtleSAxLjEiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nICh0aGlyZCBjbGljaykgb24gc2Vjb25kIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIChmaXJzdCBjbGljaykgb24gbnVtZXJpYyBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMyknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDMpJykuaHRtbCgpID09ICItIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyAoc2Vjb25kIGNsaWNrKSBvbiBudW1lcmljIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIjUyMi4xIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyBtdWx0aS1jb2x1bW4gKGZpcnN0IGNsaWNrKSIsCgkJZnVuY3Rpb24gKCkgeyAKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMCknKS5jbGljaygpOwoJCQlvRGlzcGFjaGVyLmNsaWNrKCAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpWzBdLCB7ICdzaGlmdCc6IHRydWUgfSApOyB9LAoJCWZ1bmN0aW9uICgpIHsgdmFyIGIgPSAKCQkJJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gIkdlY2tvIiAmJiAKCQkJJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkNhbWlubyAxLjAiOyByZXR1cm4gYjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyBtdWx0aS1jb2x1bW4gLSBzb3J0aW5nIHNlY29uZCBjb2x1bW4gb25seSIsCgkJZnVuY3Rpb24gKCkgeyAKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJLyogQmFzaWMgcGFnaW5nICovCglvVGVzdC5mblRlc3QoIAoJCSJQYWdpbmcgdG8gc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIklFIE1vYmlsZSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlBhZ2luZyB0byBmaXJzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkF0dGVtcHRpbmcgdG8gcGFnZSBiYWNrIGJleW9uZCB0aGUgZmlyc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCgkvKiBDaGFuZ2luZyBsZW5ndGggKi8KCW9UZXN0LmZuVGVzdCggCgkJIkNoYW5naW5nIHRhYmxlIGxlbmd0aCB0byAyNSByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7ICQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnMjUnKS5jaGFuZ2UoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSAyNTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2hhbmdpbmcgdGFibGUgbGVuZ3RoIHRvIDUwIHJlY29yZHMiLAoJCWZ1bmN0aW9uICgpIHsgJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCc1MCcpLmNoYW5nZSgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDUwOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDaGFuZ2luZyB0YWJsZSBsZW5ndGggdG8gMTAwIHJlY29yZHMiLAoJCWZ1bmN0aW9uICgpIHsgJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcxMDAnKS5jaGFuZ2UoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSA1NzsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2hhbmdpbmcgdGFibGUgbGVuZ3RoIHRvIDEwIHJlY29yZHMiLAoJCWZ1bmN0aW9uICgpIHsgJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcxMCcpLmNoYW5nZSgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDEwOyB9CgkpOwoJCgkvKgoJICogSW5mb3JtYXRpb24gZWxlbWVudAoJICovCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIG9uIHplcm8gY29uZmlnIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiBvbiBzZWNvbmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDExIHRvIDIwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIG9uIHRoaXJkIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAyMSB0byAzMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiBvbiBsYXN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgNTEgdG8gNTcgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gYmFjayBvbiBmaXJzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggMjUgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzI1JykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAxIHRvIDI1IG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggMjUgcmVjb3JkcyAtIHNlY29uZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMjYgdG8gNTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCAxMDAgcmVjb3JkcyAtIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzEwMCcpLmNoYW5nZSgpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAxIHRvIDU3IG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIGJhY2sgdG8gMTAgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnMTAnKS5jaGFuZ2UoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciAnV2luJyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIldpbiIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciAnV2luJyBzZWNvbmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxMSB0byAyMCBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciAnV2luJyBsYXN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMzEgdG8gMzEgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbicgYmFjayB0byBmaXJzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyICdXaW4nIHNlY29uZCBwYWdlIC0gc2Vjb25kIHRpbWUiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxMSB0byAyMCBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciBpbmNyZWFzZWQgdG8gJ1dpbiA5OCciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXaW4gOTgiKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gOSBvZiA5IGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyIGRlY3JlYXNlZCB0byAnV2luJyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIldpbiIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciAnV2luJyBzZWNvbmQgcGFnZSAtIHRoaXJkIHRpbWUiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxMSB0byAyMCBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciByZW1vdmVkIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCgkKCS8qCgkgKiBGaWx0ZXJpbmcKCSAqLwoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiRmlsdGVyICdXJyAtIHJvd3MiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCS8qIFJlc2V0IHRoZSB0YWJsZSBzdWNoIHRoYXQgdGhlIG9sZCBzb3J0aW5nIGRvZXNuJ3QgbWVzcyB0aGluZ3MgdXAgKi8KCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCBvSW5pdCApOwoJCQkkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIlciKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09ICJHZWNrbyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXJyAtIGluZm8iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiA0MiBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpJyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIldpIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDMyIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luJyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIldpbiIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbicgLSBzb3J0aW5nIGNvbHVtbiAxIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQU9MIGJyb3dzZXIgKEFPTCBkZXNrdG9wKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaW4nIC0gc29ydGluZyBjb2x1bW4gMSBpbmZvIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaW4nIC0gc29ydGluZyBjb2x1bW4gMSByZXZlcnNlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiU2VhbW9ua2V5IDEuMSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaW4gWFAnIC0gbWFpbnRhaW5nIHJldmVyc2Ugc29ydGluZyBjb2wgMSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIldpbiBYUCIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkludGVybmV0IEV4cGxvcmVyIDciOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luIFhQJyAtIHNvcnRpbmcgY29sIDMiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMyknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDMpJykuaHRtbCgpID09ICI0IjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbiBYUCcgLSBzb3J0aW5nIGNvbCAzIC0gcmV2ZXJzZWQiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMyknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDMpJykuaHRtbCgpID09ICI3IjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbicgLSBzb3J0aW5nIGNvbCAzIC0gcmV2ZXJzZWQgaW5mbyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDYgb2YgNiBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ25vdGhpbmdoZXJlJyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIm5vdGhpbmdoZXJlIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAKCQkJIk5vIG1hdGNoaW5nIHJlY29yZHMgZm91bmQiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnbm90aGluZ2hlcmUnIC0gaW5mbyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAwIHRvIDAgb2YgMCBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgYmFjayB0byBibGFuayBhbmQgMXN0IGNvbHVtbiBzb3J0aW5nIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiIikua2V5dXAoKTsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMCknKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJQcmVmaXhpbmcgYSBmaWx0ZXIgZW50cnkiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXaW4iKS5rZXl1cCgpOwoJCQkkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIkdlY2tvV2luIikua2V5dXAoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDAgdG8gMCBvZiAwIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIlByZWZpeGluZyBhIGZpbHRlciBlbnRyeSB3aXRoIHNwYWNlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiR2Vja28gV2luIikua2V5dXAoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgMTcgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCQoJCgkKCQoJCgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/_zero_config_deep.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIlNhbml0eSBjaGVja3MgZm9yIERhdGFUYWJsZXMgd2l0aCBkYXRhIGZyb20gSlMgLSBEZWVwIGRhdGEgc291cmNlIiApOwoKb1Rlc3QuZm5UZXN0KCAKCSJqUXVlcnkuZGF0YVRhYmxlIGZ1bmN0aW9uIiwKCW51bGwsCglmdW5jdGlvbiAoKSB7IHJldHVybiB0eXBlb2YgalF1ZXJ5KCkuZGF0YVRhYmxlID09ICJmdW5jdGlvbiI7IH0KKTsKCm9UZXN0LmZuVGVzdCgKCSJqUXVlcnkuZGF0YVRhYmxlU2V0dGluZ3Mgc3RvcmFnZSBhcnJheSIsCgludWxsLAoJZnVuY3Rpb24gKCkgeyByZXR1cm4gdHlwZW9mIGpRdWVyeSgpLmRhdGFUYWJsZVNldHRpbmdzID09ICJvYmplY3QiOyB9Cik7CgpvVGVzdC5mblRlc3QoCgkialF1ZXJ5LmRhdGFUYWJsZUV4dCBwbHVnaW4gb2JqZWN0IiwKCW51bGwsCglmdW5jdGlvbiAoKSB7IHJldHVybiB0eXBlb2YgalF1ZXJ5KCkuZGF0YVRhYmxlRXh0ID09ICJvYmplY3QiOyB9Cik7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJdmFyIG9Jbml0ID0gewoJCSJhb0NvbHVtbnMiOiBbCgkJCXsgIm1EYXRhIjogImVuZ2luZSIgfSwKCQkJeyAibURhdGEiOiAiYnJvd3NlciIgfSwKCQkJeyAibURhdGEiOiAicGxhdGZvcm0uaW5uZXIiIH0sCgkJCXsgIm1EYXRhIjogInBsYXRmb3JtLmRldGFpbHMuMCIgfSwKCQkJeyAibURhdGEiOiAicGxhdGZvcm0uZGV0YWlscy4xIiB9CgkJXSwKCQkiYWFEYXRhIjogWwoJewoJCSJlbmdpbmUiOiAiVHJpZGVudCIsCgkJImJyb3dzZXIiOiAiSW50ZXJuZXQgRXhwbG9yZXIgNC4wIiwKCQkicGxhdGZvcm0iOiB7CgkJCSJpbm5lciI6ICJXaW4gOTUrIiwKCQkJImRldGFpbHMiOiBbCgkJCQkiNCIsCgkJCQkiWCIKCQkJXQoJCX0KCX0sCgl7CgkJImVuZ2luZSI6ICJUcmlkZW50IiwKCQkiYnJvd3NlciI6ICJJbnRlcm5ldCBFeHBsb3JlciA1LjAiLAoJCSJwbGF0Zm9ybSI6IHsKCQkJImlubmVyIjogIldpbiA5NSsiLAoJCQkiZGV0YWlscyI6IFsKCQkJCSI1IiwKCQkJCSJDIgoJCQldCgkJfQoJfSwKCXsKCQkiZW5naW5lIjogIlRyaWRlbnQiLAoJCSJicm93c2VyIjogIkludGVybmV0IEV4cGxvcmVyIDUuNSIsCgkJInBsYXRmb3JtIjogewoJCQkiaW5uZXIiOiAiV2luIDk1KyIsCgkJCSJkZXRhaWxzIjogWwoJCQkJIjUuNSIsCgkJCQkiQSIKCQkJXQoJCX0KCX0sCgl7CgkJImVuZ2luZSI6ICJUcmlkZW50IiwKCQkiYnJvd3NlciI6ICJJbnRlcm5ldCBFeHBsb3JlciA2IiwKCQkicGxhdGZvcm0iOiB7CgkJCSJpbm5lciI6ICJXaW4gOTgrIiwKCQkJImRldGFpbHMiOiBbCgkJCQkiNiIsCgkJCQkiQSIKCQkJXQoJCX0KCX0sCgl7CgkJImVuZ2luZSI6ICJUcmlkZW50IiwKCQkiYnJvd3NlciI6ICJJbnRlcm5ldCBFeHBsb3JlciA3IiwKCQkicGxhdGZvcm0iOiB7CgkJCSJpbm5lciI6ICJXaW4gWFAgU1AyKyIsCgkJCSJkZXRhaWxzIjogWwoJCQkJIjciLAoJCQkJIkEiCgkJCV0KCQl9Cgl9LAoJewoJCSJlbmdpbmUiOiAiVHJpZGVudCIsCgkJImJyb3dzZXIiOiAiQU9MIGJyb3dzZXIgKEFPTCBkZXNrdG9wKSIsCgkJInBsYXRmb3JtIjogewoJCQkiaW5uZXIiOiAiV2luIFhQIiwKCQkJImRldGFpbHMiOiBbCgkJCQkiNiIsCgkJCQkiQSIKCQkJXQoJCX0KCX0sCgl7CgkJImVuZ2luZSI6ICJHZWNrbyIsCgkJImJyb3dzZXIiOiAiRmlyZWZveCAxLjAiLAoJCSJwbGF0Zm9ybSI6IHsKCQkJImlubmVyIjogIldpbiA5OCsgLyBPU1guMisiLAoJCQkiZGV0YWlscyI6IFsKCQkJCSIxLjciLAoJCQkJIkEiCgkJCV0KCQl9Cgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIkZpcmVmb3ggMS41IiwKCQkicGxhdGZvcm0iOiB7CgkJCSJpbm5lciI6ICJXaW4gOTgrIC8gT1NYLjIrIiwKCQkJImRldGFpbHMiOiBbCgkJCQkiMS44IiwKCQkJCSJBIgoJCQldCgkJfQoJfSwKCXsKCQkiZW5naW5lIjogIkdlY2tvIiwKCQkiYnJvd3NlciI6ICJGaXJlZm94IDIuMCIsCgkJInBsYXRmb3JtIjogewoJCQkiaW5uZXIiOiAiV2luIDk4KyAvIE9TWC4yKyIsCgkJCSJkZXRhaWxzIjogWwoJCQkJIjEuOCIsCgkJCQkiQSIKCQkJXQoJCX0KCX0sCgl7CgkJImVuZ2luZSI6ICJHZWNrbyIsCgkJImJyb3dzZXIiOiAiRmlyZWZveCAzLjAiLAoJCSJwbGF0Zm9ybSI6IHsKCQkJImlubmVyIjogIldpbiAyaysgLyBPU1guMysiLAoJCQkiZGV0YWlscyI6IFsKCQkJCSIxLjkiLAoJCQkJIkEiCgkJCV0KCQl9Cgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIkNhbWlubyAxLjAiLAoJCSJwbGF0Zm9ybSI6IHsKCQkJImlubmVyIjogIk9TWC4yKyIsCgkJCSJkZXRhaWxzIjogWwoJCQkJIjEuOCIsCgkJCQkiQSIKCQkJXQoJCX0KCX0sCgl7CgkJImVuZ2luZSI6ICJHZWNrbyIsCgkJImJyb3dzZXIiOiAiQ2FtaW5vIDEuNSIsCgkJInBsYXRmb3JtIjogewoJCQkiaW5uZXIiOiAiT1NYLjMrIiwKCQkJImRldGFpbHMiOiBbCgkJCQkiMS44IiwKCQkJCSJBIgoJCQldCgkJfQoJfSwKCXsKCQkiZW5naW5lIjogIkdlY2tvIiwKCQkiYnJvd3NlciI6ICJOZXRzY2FwZSA3LjIiLAoJCSJwbGF0Zm9ybSI6IHsKCQkJImlubmVyIjogIldpbiA5NSsgLyBNYWMgT1MgOC42LTkuMiIsCgkJCSJkZXRhaWxzIjogWwoJCQkJIjEuNyIsCgkJCQkiQSIKCQkJXQoJCX0KCX0sCgl7CgkJImVuZ2luZSI6ICJHZWNrbyIsCgkJImJyb3dzZXIiOiAiTmV0c2NhcGUgQnJvd3NlciA4IiwKCQkicGxhdGZvcm0iOiB7CgkJCSJpbm5lciI6ICJXaW4gOThTRSsiLAoJCQkiZGV0YWlscyI6IFsKCQkJCSIxLjciLAoJCQkJIkEiCgkJCV0KCQl9Cgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIk5ldHNjYXBlIE5hdmlnYXRvciA5IiwKCQkicGxhdGZvcm0iOiB7CgkJCSJpbm5lciI6ICJXaW4gOTgrIC8gT1NYLjIrIiwKCQkJImRldGFpbHMiOiBbCgkJCQkiMS44IiwKCQkJCSJBIgoJCQldCgkJfQoJfSwKCXsKCQkiZW5naW5lIjogIkdlY2tvIiwKCQkiYnJvd3NlciI6ICJNb3ppbGxhIDEuMCIsCgkJInBsYXRmb3JtIjogewoJCQkiaW5uZXIiOiAiV2luIDk1KyAvIE9TWC4xKyIsCgkJCSJkZXRhaWxzIjogWwoJCQkJMSwKCQkJCSJBIgoJCQldCgkJfQoJfSwKCXsKCQkiZW5naW5lIjogIkdlY2tvIiwKCQkiYnJvd3NlciI6ICJNb3ppbGxhIDEuMSIsCgkJInBsYXRmb3JtIjogewoJCQkiaW5uZXIiOiAiV2luIDk1KyAvIE9TWC4xKyIsCgkJCSJkZXRhaWxzIjogWwoJCQkJMS4xLAoJCQkJIkEiCgkJCV0KCQl9Cgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIk1vemlsbGEgMS4yIiwKCQkicGxhdGZvcm0iOiB7CgkJCSJpbm5lciI6ICJXaW4gOTUrIC8gT1NYLjErIiwKCQkJImRldGFpbHMiOiBbCgkJCQkxLjIsCgkJCQkiQSIKCQkJXQoJCX0KCX0sCgl7CgkJImVuZ2luZSI6ICJHZWNrbyIsCgkJImJyb3dzZXIiOiAiTW96aWxsYSAxLjMiLAoJCSJwbGF0Zm9ybSI6IHsKCQkJImlubmVyIjogIldpbiA5NSsgLyBPU1guMSsiLAoJCQkiZGV0YWlscyI6IFsKCQkJCTEuMywKCQkJCSJBIgoJCQldCgkJfQoJfSwKCXsKCQkiZW5naW5lIjogIkdlY2tvIiwKCQkiYnJvd3NlciI6ICJNb3ppbGxhIDEuNCIsCgkJInBsYXRmb3JtIjogewoJCQkiaW5uZXIiOiAiV2luIDk1KyAvIE9TWC4xKyIsCgkJCSJkZXRhaWxzIjogWwoJCQkJMS40LAoJCQkJIkEiCgkJCV0KCQl9Cgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIk1vemlsbGEgMS41IiwKCQkicGxhdGZvcm0iOiB7CgkJCSJpbm5lciI6ICJXaW4gOTUrIC8gT1NYLjErIiwKCQkJImRldGFpbHMiOiBbCgkJCQkxLjUsCgkJCQkiQSIKCQkJXQoJCX0KCX0sCgl7CgkJImVuZ2luZSI6ICJHZWNrbyIsCgkJImJyb3dzZXIiOiAiTW96aWxsYSAxLjYiLAoJCSJwbGF0Zm9ybSI6IHsKCQkJImlubmVyIjogIldpbiA5NSsgLyBPU1guMSsiLAoJCQkiZGV0YWlscyI6IFsKCQkJCTEuNiwKCQkJCSJBIgoJCQldCgkJfQoJfSwKCXsKCQkiZW5naW5lIjogIkdlY2tvIiwKCQkiYnJvd3NlciI6ICJNb3ppbGxhIDEuNyIsCgkJInBsYXRmb3JtIjogewoJCQkiaW5uZXIiOiAiV2luIDk4KyAvIE9TWC4xKyIsCgkJCSJkZXRhaWxzIjogWwoJCQkJMS43LAoJCQkJIkEiCgkJCV0KCQl9Cgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIk1vemlsbGEgMS44IiwKCQkicGxhdGZvcm0iOiB7CgkJCSJpbm5lciI6ICJXaW4gOTgrIC8gT1NYLjErIiwKCQkJImRldGFpbHMiOiBbCgkJCQkxLjgsCgkJCQkiQSIKCQkJXQoJCX0KCX0sCgl7CgkJImVuZ2luZSI6ICJHZWNrbyIsCgkJImJyb3dzZXIiOiAiU2VhbW9ua2V5IDEuMSIsCgkJInBsYXRmb3JtIjogewoJCQkiaW5uZXIiOiAiV2luIDk4KyAvIE9TWC4yKyIsCgkJCSJkZXRhaWxzIjogWwoJCQkJIjEuOCIsCgkJCQkiQSIKCQkJXQoJCX0KCX0sCgl7CgkJImVuZ2luZSI6ICJHZWNrbyIsCgkJImJyb3dzZXIiOiAiRXBpcGhhbnkgMi4yMCIsCgkJInBsYXRmb3JtIjogewoJCQkiaW5uZXIiOiAiR25vbWUiLAoJCQkiZGV0YWlscyI6IFsKCQkJCSIxLjgiLAoJCQkJIkEiCgkJCV0KCQl9Cgl9LAoJewoJCSJlbmdpbmUiOiAiV2Via2l0IiwKCQkiYnJvd3NlciI6ICJTYWZhcmkgMS4yIiwKCQkicGxhdGZvcm0iOiB7CgkJCSJpbm5lciI6ICJPU1guMyIsCgkJCSJkZXRhaWxzIjogWwoJCQkJIjEyNS41IiwKCQkJCSJBIgoJCQldCgkJfQoJfSwKCXsKCQkiZW5naW5lIjogIldlYmtpdCIsCgkJImJyb3dzZXIiOiAiU2FmYXJpIDEuMyIsCgkJInBsYXRmb3JtIjogewoJCQkiaW5uZXIiOiAiT1NYLjMiLAoJCQkiZGV0YWlscyI6IFsKCQkJCSIzMTIuOCIsCgkJCQkiQSIKCQkJXQoJCX0KCX0sCgl7CgkJImVuZ2luZSI6ICJXZWJraXQiLAoJCSJicm93c2VyIjogIlNhZmFyaSAyLjAiLAoJCSJwbGF0Zm9ybSI6IHsKCQkJImlubmVyIjogIk9TWC40KyIsCgkJCSJkZXRhaWxzIjogWwoJCQkJIjQxOS4zIiwKCQkJCSJBIgoJCQldCgkJfQoJfSwKCXsKCQkiZW5naW5lIjogIldlYmtpdCIsCgkJImJyb3dzZXIiOiAiU2FmYXJpIDMuMCIsCgkJInBsYXRmb3JtIjogewoJCQkiaW5uZXIiOiAiT1NYLjQrIiwKCQkJImRldGFpbHMiOiBbCgkJCQkiNTIyLjEiLAoJCQkJIkEiCgkJCV0KCQl9Cgl9LAoJewoJCSJlbmdpbmUiOiAiV2Via2l0IiwKCQkiYnJvd3NlciI6ICJPbW5pV2ViIDUuNSIsCgkJInBsYXRmb3JtIjogewoJCQkiaW5uZXIiOiAiT1NYLjQrIiwKCQkJImRldGFpbHMiOiBbCgkJCQkiNDIwIiwKCQkJCSJBIgoJCQldCgkJfQoJfSwKCXsKCQkiZW5naW5lIjogIldlYmtpdCIsCgkJImJyb3dzZXIiOiAiaVBvZCBUb3VjaCAvIGlQaG9uZSIsCgkJInBsYXRmb3JtIjogewoJCQkiaW5uZXIiOiAiaVBvZCIsCgkJCSJkZXRhaWxzIjogWwoJCQkJIjQyMC4xIiwKCQkJCSJBIgoJCQldCgkJfQoJfSwKCXsKCQkiZW5naW5lIjogIldlYmtpdCIsCgkJImJyb3dzZXIiOiAiUzYwIiwKCQkicGxhdGZvcm0iOiB7CgkJCSJpbm5lciI6ICJTNjAiLAoJCQkiZGV0YWlscyI6IFsKCQkJCSI0MTMiLAoJCQkJIkEiCgkJCV0KCQl9Cgl9LAoJewoJCSJlbmdpbmUiOiAiUHJlc3RvIiwKCQkiYnJvd3NlciI6ICJPcGVyYSA3LjAiLAoJCSJwbGF0Zm9ybSI6IHsKCQkJImlubmVyIjogIldpbiA5NSsgLyBPU1guMSsiLAoJCQkiZGV0YWlscyI6IFsKCQkJCSItIiwKCQkJCSJBIgoJCQldCgkJfQoJfSwKCXsKCQkiZW5naW5lIjogIlByZXN0byIsCgkJImJyb3dzZXIiOiAiT3BlcmEgNy41IiwKCQkicGxhdGZvcm0iOiB7CgkJCSJpbm5lciI6ICJXaW4gOTUrIC8gT1NYLjIrIiwKCQkJImRldGFpbHMiOiBbCgkJCQkiLSIsCgkJCQkiQSIKCQkJXQoJCX0KCX0sCgl7CgkJImVuZ2luZSI6ICJQcmVzdG8iLAoJCSJicm93c2VyIjogIk9wZXJhIDguMCIsCgkJInBsYXRmb3JtIjogewoJCQkiaW5uZXIiOiAiV2luIDk1KyAvIE9TWC4yKyIsCgkJCSJkZXRhaWxzIjogWwoJCQkJIi0iLAoJCQkJIkEiCgkJCV0KCQl9Cgl9LAoJewoJCSJlbmdpbmUiOiAiUHJlc3RvIiwKCQkiYnJvd3NlciI6ICJPcGVyYSA4LjUiLAoJCSJwbGF0Zm9ybSI6IHsKCQkJImlubmVyIjogIldpbiA5NSsgLyBPU1guMisiLAoJCQkiZGV0YWlscyI6IFsKCQkJCSItIiwKCQkJCSJBIgoJCQldCgkJfQoJfSwKCXsKCQkiZW5naW5lIjogIlByZXN0byIsCgkJImJyb3dzZXIiOiAiT3BlcmEgOS4wIiwKCQkicGxhdGZvcm0iOiB7CgkJCSJpbm5lciI6ICJXaW4gOTUrIC8gT1NYLjMrIiwKCQkJImRldGFpbHMiOiBbCgkJCQkiLSIsCgkJCQkiQSIKCQkJXQoJCX0KCX0sCgl7CgkJImVuZ2luZSI6ICJQcmVzdG8iLAoJCSJicm93c2VyIjogIk9wZXJhIDkuMiIsCgkJInBsYXRmb3JtIjogewoJCQkiaW5uZXIiOiAiV2luIDg4KyAvIE9TWC4zKyIsCgkJCSJkZXRhaWxzIjogWwoJCQkJIi0iLAoJCQkJIkEiCgkJCV0KCQl9Cgl9LAoJewoJCSJlbmdpbmUiOiAiUHJlc3RvIiwKCQkiYnJvd3NlciI6ICJPcGVyYSA5LjUiLAoJCSJwbGF0Zm9ybSI6IHsKCQkJImlubmVyIjogIldpbiA4OCsgLyBPU1guMysiLAoJCQkiZGV0YWlscyI6IFsKCQkJCSItIiwKCQkJCSJBIgoJCQldCgkJfQoJfSwKCXsKCQkiZW5naW5lIjogIlByZXN0byIsCgkJImJyb3dzZXIiOiAiT3BlcmEgZm9yIFdpaSIsCgkJInBsYXRmb3JtIjogewoJCQkiaW5uZXIiOiAiV2lpIiwKCQkJImRldGFpbHMiOiBbCgkJCQkiLSIsCgkJCQkiQSIKCQkJXQoJCX0KCX0sCgl7CgkJImVuZ2luZSI6ICJQcmVzdG8iLAoJCSJicm93c2VyIjogIk5va2lhIE44MDAiLAoJCSJwbGF0Zm9ybSI6IHsKCQkJImlubmVyIjogIk44MDAiLAoJCQkiZGV0YWlscyI6IFsKCQkJCSItIiwKCQkJCSJBIgoJCQldCgkJfQoJfSwKCXsKCQkiZW5naW5lIjogIlByZXN0byIsCgkJImJyb3dzZXIiOiAiTmludGVuZG8gRFMgYnJvd3NlciIsCgkJInBsYXRmb3JtIjogewoJCQkiaW5uZXIiOiAiTmludGVuZG8gRFMiLAoJCQkiZGV0YWlscyI6IFsKCQkJCSI4LjUiLAoJCQkJIkMvQTxzdXA+MTwvc3VwPiIKCQkJXQoJCX0KCX0sCgl7CgkJImVuZ2luZSI6ICJLSFRNTCIsCgkJImJyb3dzZXIiOiAiS29ucXVyZXJvciAzLjEiLAoJCSJwbGF0Zm9ybSI6IHsKCQkJImlubmVyIjogIktERSAzLjEiLAoJCQkiZGV0YWlscyI6IFsKCQkJCSIzLjEiLAoJCQkJIkMiCgkJCV0KCQl9Cgl9LAoJewoJCSJlbmdpbmUiOiAiS0hUTUwiLAoJCSJicm93c2VyIjogIktvbnF1cmVyb3IgMy4zIiwKCQkicGxhdGZvcm0iOiB7CgkJCSJpbm5lciI6ICJLREUgMy4zIiwKCQkJImRldGFpbHMiOiBbCgkJCQkiMy4zIiwKCQkJCSJBIgoJCQldCgkJfQoJfSwKCXsKCQkiZW5naW5lIjogIktIVE1MIiwKCQkiYnJvd3NlciI6ICJLb25xdXJlcm9yIDMuNSIsCgkJInBsYXRmb3JtIjogewoJCQkiaW5uZXIiOiAiS0RFIDMuNSIsCgkJCSJkZXRhaWxzIjogWwoJCQkJIjMuNSIsCgkJCQkiQSIKCQkJXQoJCX0KCX0sCgl7CgkJImVuZ2luZSI6ICJUYXNtYW4iLAoJCSJicm93c2VyIjogIkludGVybmV0IEV4cGxvcmVyIDQuNSIsCgkJInBsYXRmb3JtIjogewoJCQkiaW5uZXIiOiAiTWFjIE9TIDgtOSIsCgkJCSJkZXRhaWxzIjogWwoJCQkJIi0iLAoJCQkJIlgiCgkJCV0KCQl9Cgl9LAoJewoJCSJlbmdpbmUiOiAiVGFzbWFuIiwKCQkiYnJvd3NlciI6ICJJbnRlcm5ldCBFeHBsb3JlciA1LjEiLAoJCSJwbGF0Zm9ybSI6IHsKCQkJImlubmVyIjogIk1hYyBPUyA3LjYtOSIsCgkJCSJkZXRhaWxzIjogWwoJCQkJIjEiLAoJCQkJIkMiCgkJCV0KCQl9Cgl9LAoJewoJCSJlbmdpbmUiOiAiVGFzbWFuIiwKCQkiYnJvd3NlciI6ICJJbnRlcm5ldCBFeHBsb3JlciA1LjIiLAoJCSJwbGF0Zm9ybSI6IHsKCQkJImlubmVyIjogIk1hYyBPUyA4LVgiLAoJCQkiZGV0YWlscyI6IFsKCQkJCSIxIiwKCQkJCSJDIgoJCQldCgkJfQoJfSwKCXsKCQkiZW5naW5lIjogIk1pc2MiLAoJCSJicm93c2VyIjogIk5ldEZyb250IDMuMSIsCgkJInBsYXRmb3JtIjogewoJCQkiaW5uZXIiOiAiRW1iZWRkZWQgZGV2aWNlcyIsCgkJCSJkZXRhaWxzIjogWwoJCQkJIi0iLAoJCQkJIkMiCgkJCV0KCQl9Cgl9LAoJewoJCSJlbmdpbmUiOiAiTWlzYyIsCgkJImJyb3dzZXIiOiAiTmV0RnJvbnQgMy40IiwKCQkicGxhdGZvcm0iOiB7CgkJCSJpbm5lciI6ICJFbWJlZGRlZCBkZXZpY2VzIiwKCQkJImRldGFpbHMiOiBbCgkJCQkiLSIsCgkJCQkiQSIKCQkJXQoJCX0KCX0sCgl7CgkJImVuZ2luZSI6ICJNaXNjIiwKCQkiYnJvd3NlciI6ICJEaWxsbyAwLjgiLAoJCSJwbGF0Zm9ybSI6IHsKCQkJImlubmVyIjogIkVtYmVkZGVkIGRldmljZXMiLAoJCQkiZGV0YWlscyI6IFsKCQkJCSItIiwKCQkJCSJYIgoJCQldCgkJfQoJfSwKCXsKCQkiZW5naW5lIjogIk1pc2MiLAoJCSJicm93c2VyIjogIkxpbmtzIiwKCQkicGxhdGZvcm0iOiB7CgkJCSJpbm5lciI6ICJUZXh0IG9ubHkiLAoJCQkiZGV0YWlscyI6IFsKCQkJCSItIiwKCQkJCSJYIgoJCQldCgkJfQoJfSwKCXsKCQkiZW5naW5lIjogIk1pc2MiLAoJCSJicm93c2VyIjogIkx5bngiLAoJCSJwbGF0Zm9ybSI6IHsKCQkJImlubmVyIjogIlRleHQgb25seSIsCgkJCSJkZXRhaWxzIjogWwoJCQkJIi0iLAoJCQkJIlgiCgkJCV0KCQl9Cgl9LAoJewoJCSJlbmdpbmUiOiAiTWlzYyIsCgkJImJyb3dzZXIiOiAiSUUgTW9iaWxlIiwKCQkicGxhdGZvcm0iOiB7CgkJCSJpbm5lciI6ICJXaW5kb3dzIE1vYmlsZSA2IiwKCQkJImRldGFpbHMiOiBbCgkJCQkiLSIsCgkJCQkiQyIKCQkJXQoJCX0KCX0sCgl7CgkJImVuZ2luZSI6ICJNaXNjIiwKCQkiYnJvd3NlciI6ICJQU1AgYnJvd3NlciIsCgkJInBsYXRmb3JtIjogewoJCQkiaW5uZXIiOiAiUFNQIiwKCQkJImRldGFpbHMiOiBbCgkJCQkiLSIsCgkJCQkiQyIKCQkJXQoJCX0KCX0sCgl7CgkJImVuZ2luZSI6ICJPdGhlciBicm93c2VycyIsCgkJImJyb3dzZXIiOiAiQWxsIG90aGVycyIsCgkJInBsYXRmb3JtIjogewoJCQkiaW5uZXIiOiAiLSIsCgkJCSJkZXRhaWxzIjogWwoJCQkJIi0iLAoJCQkJIlUiCgkJCV0KCQl9Cgl9Cl0KCX07CgkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggb0luaXQgKTsKCQoJLyogQmFzaWMgY2hlY2tzICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTGVuZ3RoIGNoYW5naW5nIGRpdiBleGlzdHMiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfbGVuZ3RoJykgIT0gbnVsbDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiRmlsdGVyaW5nIGRpdiBleGlzdHMiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfZmlsdGVyJykgIT0gbnVsbDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiSW5mb3JtYXRpb24gZGl2IGV4aXN0cyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykgIT0gbnVsbDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUGFnaW5hdGlvbiBkaXYgZXhpc3RzIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3BhZ2luYXRlJykgIT0gbnVsbDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUHJvY2Vzc2luZyBkaXYgaXMgb2ZmIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcHJvY2Vzc2luZycpID09IG51bGw7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSIxMCByb3dzIHNob3duIG9uIHRoZSBmaXJzdCBwYWdlIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDEwOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJbml0aWFsIHNvcnQgb2NjdXJlZCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiR2Vja28iOyB9CgkpOwoJCgkvKiBOZWVkIHRvIHVzZSB0aGUgV2FpdFRlc3QgZm9yIHNvcnRpbmcgZHVlIHRvIHRoZSBzZXRUaW1lb3V0IGRhdGF0YWJsZXMgdXNlcyAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyAoZmlyc3QgY2xpY2spIG9uIHNlY29uZCBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyAoc2Vjb25kIGNsaWNrKSBvbiBzZWNvbmQgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiU2VhbW9ua2V5IDEuMSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgKHRoaXJkIGNsaWNrKSBvbiBzZWNvbmQgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgKGZpcnN0IGNsaWNrKSBvbiBudW1lcmljIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIi0iOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIChzZWNvbmQgY2xpY2spIG9uIG51bWVyaWMgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiNTIyLjEiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIG11bHRpLWNvbHVtbiAoZmlyc3QgY2xpY2spIiwKCQlmdW5jdGlvbiAoKSB7IAoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgwKScpLmNsaWNrKCk7CgkJCW9EaXNwYWNoZXIuY2xpY2soICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJylbMF0sIHsgJ3NoaWZ0JzogdHJ1ZSB9ICk7IH0sCgkJZnVuY3Rpb24gKCkgeyB2YXIgYiA9IAoJCQkkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiR2Vja28iICYmIAoJCQkkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQ2FtaW5vIDEuMCI7IHJldHVybiBiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIG11bHRpLWNvbHVtbiAtIHNvcnRpbmcgc2Vjb25kIGNvbHVtbiBvbmx5IiwKCQlmdW5jdGlvbiAoKSB7IAoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCgkvKiBCYXNpYyBwYWdpbmcgKi8KCW9UZXN0LmZuVGVzdCggCgkJIlBhZ2luZyB0byBzZWNvbmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiSUUgTW9iaWxlIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUGFnaW5nIHRvIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQXR0ZW1wdGluZyB0byBwYWdlIGJhY2sgYmV5b25kIHRoZSBmaXJzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCS8qIENoYW5naW5nIGxlbmd0aCAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2hhbmdpbmcgdGFibGUgbGVuZ3RoIHRvIDI1IHJlY29yZHMiLAoJCWZ1bmN0aW9uICgpIHsgJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcyNScpLmNoYW5nZSgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDI1OyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDaGFuZ2luZyB0YWJsZSBsZW5ndGggdG8gNTAgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzUwJykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gNTA7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoYW5naW5nIHRhYmxlIGxlbmd0aCB0byAxMDAgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzEwMCcpLmNoYW5nZSgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDU3OyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDaGFuZ2luZyB0YWJsZSBsZW5ndGggdG8gMTAgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzEwJykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMTA7IH0KCSk7CgkKCS8qCgkgKiBJbmZvcm1hdGlvbiBlbGVtZW50CgkgKi8KCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gb24gemVybyBjb25maWciLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIG9uIHNlY29uZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMTEgdG8gMjAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gb24gdGhpcmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDIxIHRvIDMwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIG9uIGxhc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyA1MSB0byA1NyBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiBiYWNrIG9uIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCAyNSByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7ICQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnMjUnKS5jaGFuZ2UoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDEgdG8gMjUgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCAyNSByZWNvcmRzIC0gc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAyNiB0byA1MCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIDEwMCByZWNvcmRzIC0gZmlyc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnMTAwJykuY2hhbmdlKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDEgdG8gNTcgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gYmFjayB0byAxMCByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcxMCcpLmNoYW5nZSgpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyICdXaW4nIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2luIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyICdXaW4nIHNlY29uZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDExIHRvIDIwIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyICdXaW4nIGxhc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAzMSB0byAzMSBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciAnV2luJyBiYWNrIHRvIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbicgc2Vjb25kIHBhZ2UgLSBzZWNvbmQgdGltZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDExIHRvIDIwIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyIGluY3JlYXNlZCB0byAnV2luIDk4JyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIldpbiA5OCIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byA5IG9mIDkgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgZGVjcmVhc2VkIHRvICdXaW4nIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2luIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyICdXaW4nIHNlY29uZCBwYWdlIC0gdGhpcmQgdGltZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDExIHRvIDIwIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyIHJlbW92ZWQiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCIiKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCQoJLyoKCSAqIEZpbHRlcmluZwoJICovCglvVGVzdC5mbldhaXRUZXN0KAoJCSJGaWx0ZXIgJ1cnIC0gcm93cyIsCgkJZnVuY3Rpb24gKCkgeyAKCQkJLyogUmVzZXQgdGhlIHRhYmxlIHN1Y2ggdGhhdCB0aGUgb2xkIHNvcnRpbmcgZG9lc24ndCBtZXNzIHRoaW5ncyB1cCAqLwoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIG9Jbml0ICk7CgkJCSQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiVyIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gIkdlY2tvIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1cnIC0gaW5mbyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDQyIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2knIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2kiKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgMzIgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaW4nIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2luIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luJyAtIHNvcnRpbmcgY29sdW1uIDEiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICJBT0wgYnJvd3NlciAoQU9MIGRlc2t0b3ApIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbicgLSBzb3J0aW5nIGNvbHVtbiAxIGluZm8iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbicgLSBzb3J0aW5nIGNvbHVtbiAxIHJldmVyc2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICJTZWFtb25rZXkgMS4xIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbiBYUCcgLSBtYWludGFpbmcgcmV2ZXJzZSBzb3J0aW5nIGNvbCAxIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2luIFhQIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiSW50ZXJuZXQgRXhwbG9yZXIgNyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaW4gWFAnIC0gc29ydGluZyBjb2wgMyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIjQiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luIFhQJyAtIHNvcnRpbmcgY29sIDMgLSByZXZlcnNlZCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIjciOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luJyAtIHNvcnRpbmcgY29sIDMgLSByZXZlcnNlZCBpbmZvIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gNiBvZiA2IGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnbm90aGluZ2hlcmUnIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgibm90aGluZ2hlcmUiKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09IAoJCQkiTm8gbWF0Y2hpbmcgcmVjb3JkcyBmb3VuZCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdub3RoaW5naGVyZScgLSBpbmZvIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDAgdG8gMCBvZiAwIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciBiYWNrIHRvIGJsYW5rIGFuZCAxc3QgY29sdW1uIHNvcnRpbmciLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCIiKS5rZXl1cCgpOwoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgwKScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIlByZWZpeGluZyBhIGZpbHRlciBlbnRyeSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIldpbiIpLmtleXVwKCk7CgkJCSQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiR2Vja29XaW4iKS5rZXl1cCgpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMCB0byAwIG9mIDAgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiUHJlZml4aW5nIGEgZmlsdGVyIGVudHJ5IHdpdGggc3BhY2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJHZWNrbyBXaW4iKS5rZXl1cCgpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAxNyBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJCgkKCQoJCgkKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/_zero_config_mDataProp.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIlNhbml0eSBjaGVja3MgZm9yIERhdGFUYWJsZXMgd2l0aCBkYXRhIGZyb20gSlMgLSBPYmplY3QgZGF0YSBzb3VyY2UiICk7CgpvVGVzdC5mblRlc3QoIAoJImpRdWVyeS5kYXRhVGFibGUgZnVuY3Rpb24iLAoJbnVsbCwKCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVvZiBqUXVlcnkoKS5kYXRhVGFibGUgPT0gImZ1bmN0aW9uIjsgfQopOwoKb1Rlc3QuZm5UZXN0KAoJImpRdWVyeS5kYXRhVGFibGVTZXR0aW5ncyBzdG9yYWdlIGFycmF5IiwKCW51bGwsCglmdW5jdGlvbiAoKSB7IHJldHVybiB0eXBlb2YgalF1ZXJ5KCkuZGF0YVRhYmxlU2V0dGluZ3MgPT0gIm9iamVjdCI7IH0KKTsKCm9UZXN0LmZuVGVzdCgKCSJqUXVlcnkuZGF0YVRhYmxlRXh0IHBsdWdpbiBvYmplY3QiLAoJbnVsbCwKCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVvZiBqUXVlcnkoKS5kYXRhVGFibGVFeHQgPT0gIm9iamVjdCI7IH0KKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIgb0luaXQgPSB7CgkJImFvQ29sdW1ucyI6IFsKCQkJeyAibURhdGFQcm9wIjogImVuZ2luZSIgfSwKCQkJeyAibURhdGFQcm9wIjogImJyb3dzZXIiIH0sCgkJCXsgIm1EYXRhUHJvcCI6ICJwbGF0Zm9ybSIgfSwKCQkJeyAibURhdGFQcm9wIjogInZlcnNpb24iIH0sCgkJCXsgIm1EYXRhUHJvcCI6ICJncmFkZSIgfQoJCV0sCgkJImFhRGF0YSI6IFsKCXsKCQkiZW5naW5lIjogIlRyaWRlbnQiLAoJCSJicm93c2VyIjogIkludGVybmV0IEV4cGxvcmVyIDQuMCIsCgkJInBsYXRmb3JtIjogIldpbiA5NSsiLAoJCSJ2ZXJzaW9uIjogIjQiLAoJCSJncmFkZSI6ICJYIgoJfSwKCXsKCQkiZW5naW5lIjogIlRyaWRlbnQiLAoJCSJicm93c2VyIjogIkludGVybmV0IEV4cGxvcmVyIDUuMCIsCgkJInBsYXRmb3JtIjogIldpbiA5NSsiLAoJCSJ2ZXJzaW9uIjogIjUiLAoJCSJncmFkZSI6ICJDIgoJfSwKCXsKCQkiZW5naW5lIjogIlRyaWRlbnQiLAoJCSJicm93c2VyIjogIkludGVybmV0IEV4cGxvcmVyIDUuNSIsCgkJInBsYXRmb3JtIjogIldpbiA5NSsiLAoJCSJ2ZXJzaW9uIjogIjUuNSIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiVHJpZGVudCIsCgkJImJyb3dzZXIiOiAiSW50ZXJuZXQgRXhwbG9yZXIgNiIsCgkJInBsYXRmb3JtIjogIldpbiA5OCsiLAoJCSJ2ZXJzaW9uIjogIjYiLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIlRyaWRlbnQiLAoJCSJicm93c2VyIjogIkludGVybmV0IEV4cGxvcmVyIDciLAoJCSJwbGF0Zm9ybSI6ICJXaW4gWFAgU1AyKyIsCgkJInZlcnNpb24iOiAiNyIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiVHJpZGVudCIsCgkJImJyb3dzZXIiOiAiQU9MIGJyb3dzZXIgKEFPTCBkZXNrdG9wKSIsCgkJInBsYXRmb3JtIjogIldpbiBYUCIsCgkJInZlcnNpb24iOiAiNiIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIkZpcmVmb3ggMS4wIiwKCQkicGxhdGZvcm0iOiAiV2luIDk4KyAvIE9TWC4yKyIsCgkJInZlcnNpb24iOiAiMS43IiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJHZWNrbyIsCgkJImJyb3dzZXIiOiAiRmlyZWZveCAxLjUiLAoJCSJwbGF0Zm9ybSI6ICJXaW4gOTgrIC8gT1NYLjIrIiwKCQkidmVyc2lvbiI6ICIxLjgiLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIkdlY2tvIiwKCQkiYnJvd3NlciI6ICJGaXJlZm94IDIuMCIsCgkJInBsYXRmb3JtIjogIldpbiA5OCsgLyBPU1guMisiLAoJCSJ2ZXJzaW9uIjogIjEuOCIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIkZpcmVmb3ggMy4wIiwKCQkicGxhdGZvcm0iOiAiV2luIDJrKyAvIE9TWC4zKyIsCgkJInZlcnNpb24iOiAiMS45IiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJHZWNrbyIsCgkJImJyb3dzZXIiOiAiQ2FtaW5vIDEuMCIsCgkJInBsYXRmb3JtIjogIk9TWC4yKyIsCgkJInZlcnNpb24iOiAiMS44IiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJHZWNrbyIsCgkJImJyb3dzZXIiOiAiQ2FtaW5vIDEuNSIsCgkJInBsYXRmb3JtIjogIk9TWC4zKyIsCgkJInZlcnNpb24iOiAiMS44IiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJHZWNrbyIsCgkJImJyb3dzZXIiOiAiTmV0c2NhcGUgNy4yIiwKCQkicGxhdGZvcm0iOiAiV2luIDk1KyAvIE1hYyBPUyA4LjYtOS4yIiwKCQkidmVyc2lvbiI6ICIxLjciLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIkdlY2tvIiwKCQkiYnJvd3NlciI6ICJOZXRzY2FwZSBCcm93c2VyIDgiLAoJCSJwbGF0Zm9ybSI6ICJXaW4gOThTRSsiLAoJCSJ2ZXJzaW9uIjogIjEuNyIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIk5ldHNjYXBlIE5hdmlnYXRvciA5IiwKCQkicGxhdGZvcm0iOiAiV2luIDk4KyAvIE9TWC4yKyIsCgkJInZlcnNpb24iOiAiMS44IiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJHZWNrbyIsCgkJImJyb3dzZXIiOiAiTW96aWxsYSAxLjAiLAoJCSJwbGF0Zm9ybSI6ICJXaW4gOTUrIC8gT1NYLjErIiwKCQkidmVyc2lvbiI6ICIxIiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJHZWNrbyIsCgkJImJyb3dzZXIiOiAiTW96aWxsYSAxLjEiLAoJCSJwbGF0Zm9ybSI6ICJXaW4gOTUrIC8gT1NYLjErIiwKCQkidmVyc2lvbiI6ICIxLjEiLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIkdlY2tvIiwKCQkiYnJvd3NlciI6ICJNb3ppbGxhIDEuMiIsCgkJInBsYXRmb3JtIjogIldpbiA5NSsgLyBPU1guMSsiLAoJCSJ2ZXJzaW9uIjogIjEuMiIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIk1vemlsbGEgMS4zIiwKCQkicGxhdGZvcm0iOiAiV2luIDk1KyAvIE9TWC4xKyIsCgkJInZlcnNpb24iOiAiMS4zIiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJHZWNrbyIsCgkJImJyb3dzZXIiOiAiTW96aWxsYSAxLjQiLAoJCSJwbGF0Zm9ybSI6ICJXaW4gOTUrIC8gT1NYLjErIiwKCQkidmVyc2lvbiI6ICIxLjQiLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIkdlY2tvIiwKCQkiYnJvd3NlciI6ICJNb3ppbGxhIDEuNSIsCgkJInBsYXRmb3JtIjogIldpbiA5NSsgLyBPU1guMSsiLAoJCSJ2ZXJzaW9uIjogIjEuNSIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIk1vemlsbGEgMS42IiwKCQkicGxhdGZvcm0iOiAiV2luIDk1KyAvIE9TWC4xKyIsCgkJInZlcnNpb24iOiAiMS42IiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJHZWNrbyIsCgkJImJyb3dzZXIiOiAiTW96aWxsYSAxLjciLAoJCSJwbGF0Zm9ybSI6ICJXaW4gOTgrIC8gT1NYLjErIiwKCQkidmVyc2lvbiI6ICIxLjciLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIkdlY2tvIiwKCQkiYnJvd3NlciI6ICJNb3ppbGxhIDEuOCIsCgkJInBsYXRmb3JtIjogIldpbiA5OCsgLyBPU1guMSsiLAoJCSJ2ZXJzaW9uIjogIjEuOCIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIlNlYW1vbmtleSAxLjEiLAoJCSJwbGF0Zm9ybSI6ICJXaW4gOTgrIC8gT1NYLjIrIiwKCQkidmVyc2lvbiI6ICIxLjgiLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIkdlY2tvIiwKCQkiYnJvd3NlciI6ICJFcGlwaGFueSAyLjIwIiwKCQkicGxhdGZvcm0iOiAiR25vbWUiLAoJCSJ2ZXJzaW9uIjogIjEuOCIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiV2Via2l0IiwKCQkiYnJvd3NlciI6ICJTYWZhcmkgMS4yIiwKCQkicGxhdGZvcm0iOiAiT1NYLjMiLAoJCSJ2ZXJzaW9uIjogIjEyNS41IiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJXZWJraXQiLAoJCSJicm93c2VyIjogIlNhZmFyaSAxLjMiLAoJCSJwbGF0Zm9ybSI6ICJPU1guMyIsCgkJInZlcnNpb24iOiAiMzEyLjgiLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIldlYmtpdCIsCgkJImJyb3dzZXIiOiAiU2FmYXJpIDIuMCIsCgkJInBsYXRmb3JtIjogIk9TWC40KyIsCgkJInZlcnNpb24iOiAiNDE5LjMiLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIldlYmtpdCIsCgkJImJyb3dzZXIiOiAiU2FmYXJpIDMuMCIsCgkJInBsYXRmb3JtIjogIk9TWC40KyIsCgkJInZlcnNpb24iOiAiNTIyLjEiLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIldlYmtpdCIsCgkJImJyb3dzZXIiOiAiT21uaVdlYiA1LjUiLAoJCSJwbGF0Zm9ybSI6ICJPU1guNCsiLAoJCSJ2ZXJzaW9uIjogIjQyMCIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiV2Via2l0IiwKCQkiYnJvd3NlciI6ICJpUG9kIFRvdWNoIC8gaVBob25lIiwKCQkicGxhdGZvcm0iOiAiaVBvZCIsCgkJInZlcnNpb24iOiAiNDIwLjEiLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIldlYmtpdCIsCgkJImJyb3dzZXIiOiAiUzYwIiwKCQkicGxhdGZvcm0iOiAiUzYwIiwKCQkidmVyc2lvbiI6ICI0MTMiLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIlByZXN0byIsCgkJImJyb3dzZXIiOiAiT3BlcmEgNy4wIiwKCQkicGxhdGZvcm0iOiAiV2luIDk1KyAvIE9TWC4xKyIsCgkJInZlcnNpb24iOiAiLSIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiUHJlc3RvIiwKCQkiYnJvd3NlciI6ICJPcGVyYSA3LjUiLAoJCSJwbGF0Zm9ybSI6ICJXaW4gOTUrIC8gT1NYLjIrIiwKCQkidmVyc2lvbiI6ICItIiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJQcmVzdG8iLAoJCSJicm93c2VyIjogIk9wZXJhIDguMCIsCgkJInBsYXRmb3JtIjogIldpbiA5NSsgLyBPU1guMisiLAoJCSJ2ZXJzaW9uIjogIi0iLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIlByZXN0byIsCgkJImJyb3dzZXIiOiAiT3BlcmEgOC41IiwKCQkicGxhdGZvcm0iOiAiV2luIDk1KyAvIE9TWC4yKyIsCgkJInZlcnNpb24iOiAiLSIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiUHJlc3RvIiwKCQkiYnJvd3NlciI6ICJPcGVyYSA5LjAiLAoJCSJwbGF0Zm9ybSI6ICJXaW4gOTUrIC8gT1NYLjMrIiwKCQkidmVyc2lvbiI6ICItIiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJQcmVzdG8iLAoJCSJicm93c2VyIjogIk9wZXJhIDkuMiIsCgkJInBsYXRmb3JtIjogIldpbiA4OCsgLyBPU1guMysiLAoJCSJ2ZXJzaW9uIjogIi0iLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIlByZXN0byIsCgkJImJyb3dzZXIiOiAiT3BlcmEgOS41IiwKCQkicGxhdGZvcm0iOiAiV2luIDg4KyAvIE9TWC4zKyIsCgkJInZlcnNpb24iOiAiLSIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiUHJlc3RvIiwKCQkiYnJvd3NlciI6ICJPcGVyYSBmb3IgV2lpIiwKCQkicGxhdGZvcm0iOiAiV2lpIiwKCQkidmVyc2lvbiI6ICItIiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJQcmVzdG8iLAoJCSJicm93c2VyIjogIk5va2lhIE44MDAiLAoJCSJwbGF0Zm9ybSI6ICJOODAwIiwKCQkidmVyc2lvbiI6ICItIiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJQcmVzdG8iLAoJCSJicm93c2VyIjogIk5pbnRlbmRvIERTIGJyb3dzZXIiLAoJCSJwbGF0Zm9ybSI6ICJOaW50ZW5kbyBEUyIsCgkJInZlcnNpb24iOiAiOC41IiwKCQkiZ3JhZGUiOiAiQy9BPHN1cD4xPC9zdXA+IgoJfSwKCXsKCQkiZW5naW5lIjogIktIVE1MIiwKCQkiYnJvd3NlciI6ICJLb25xdXJlcm9yIDMuMSIsCgkJInBsYXRmb3JtIjogIktERSAzLjEiLAoJCSJ2ZXJzaW9uIjogIjMuMSIsCgkJImdyYWRlIjogIkMiCgl9LAoJewoJCSJlbmdpbmUiOiAiS0hUTUwiLAoJCSJicm93c2VyIjogIktvbnF1cmVyb3IgMy4zIiwKCQkicGxhdGZvcm0iOiAiS0RFIDMuMyIsCgkJInZlcnNpb24iOiAiMy4zIiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJLSFRNTCIsCgkJImJyb3dzZXIiOiAiS29ucXVyZXJvciAzLjUiLAoJCSJwbGF0Zm9ybSI6ICJLREUgMy41IiwKCQkidmVyc2lvbiI6ICIzLjUiLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIlRhc21hbiIsCgkJImJyb3dzZXIiOiAiSW50ZXJuZXQgRXhwbG9yZXIgNC41IiwKCQkicGxhdGZvcm0iOiAiTWFjIE9TIDgtOSIsCgkJInZlcnNpb24iOiAiLSIsCgkJImdyYWRlIjogIlgiCgl9LAoJewoJCSJlbmdpbmUiOiAiVGFzbWFuIiwKCQkiYnJvd3NlciI6ICJJbnRlcm5ldCBFeHBsb3JlciA1LjEiLAoJCSJwbGF0Zm9ybSI6ICJNYWMgT1MgNy42LTkiLAoJCSJ2ZXJzaW9uIjogIjEiLAoJCSJncmFkZSI6ICJDIgoJfSwKCXsKCQkiZW5naW5lIjogIlRhc21hbiIsCgkJImJyb3dzZXIiOiAiSW50ZXJuZXQgRXhwbG9yZXIgNS4yIiwKCQkicGxhdGZvcm0iOiAiTWFjIE9TIDgtWCIsCgkJInZlcnNpb24iOiAiMSIsCgkJImdyYWRlIjogIkMiCgl9LAoJewoJCSJlbmdpbmUiOiAiTWlzYyIsCgkJImJyb3dzZXIiOiAiTmV0RnJvbnQgMy4xIiwKCQkicGxhdGZvcm0iOiAiRW1iZWRkZWQgZGV2aWNlcyIsCgkJInZlcnNpb24iOiAiLSIsCgkJImdyYWRlIjogIkMiCgl9LAoJewoJCSJlbmdpbmUiOiAiTWlzYyIsCgkJImJyb3dzZXIiOiAiTmV0RnJvbnQgMy40IiwKCQkicGxhdGZvcm0iOiAiRW1iZWRkZWQgZGV2aWNlcyIsCgkJInZlcnNpb24iOiAiLSIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiTWlzYyIsCgkJImJyb3dzZXIiOiAiRGlsbG8gMC44IiwKCQkicGxhdGZvcm0iOiAiRW1iZWRkZWQgZGV2aWNlcyIsCgkJInZlcnNpb24iOiAiLSIsCgkJImdyYWRlIjogIlgiCgl9LAoJewoJCSJlbmdpbmUiOiAiTWlzYyIsCgkJImJyb3dzZXIiOiAiTGlua3MiLAoJCSJwbGF0Zm9ybSI6ICJUZXh0IG9ubHkiLAoJCSJ2ZXJzaW9uIjogIi0iLAoJCSJncmFkZSI6ICJYIgoJfSwKCXsKCQkiZW5naW5lIjogIk1pc2MiLAoJCSJicm93c2VyIjogIkx5bngiLAoJCSJwbGF0Zm9ybSI6ICJUZXh0IG9ubHkiLAoJCSJ2ZXJzaW9uIjogIi0iLAoJCSJncmFkZSI6ICJYIgoJfSwKCXsKCQkiZW5naW5lIjogIk1pc2MiLAoJCSJicm93c2VyIjogIklFIE1vYmlsZSIsCgkJInBsYXRmb3JtIjogIldpbmRvd3MgTW9iaWxlIDYiLAoJCSJ2ZXJzaW9uIjogIi0iLAoJCSJncmFkZSI6ICJDIgoJfSwKCXsKCQkiZW5naW5lIjogIk1pc2MiLAoJCSJicm93c2VyIjogIlBTUCBicm93c2VyIiwKCQkicGxhdGZvcm0iOiAiUFNQIiwKCQkidmVyc2lvbiI6ICItIiwKCQkiZ3JhZGUiOiAiQyIKCX0sCgl7CgkJImVuZ2luZSI6ICJPdGhlciBicm93c2VycyIsCgkJImJyb3dzZXIiOiAiQWxsIG90aGVycyIsCgkJInBsYXRmb3JtIjogIi0iLAoJCSJ2ZXJzaW9uIjogIi0iLAoJCSJncmFkZSI6ICJVIgoJfQpdCgl9OwoJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIG9Jbml0ICk7CgkKCS8qIEJhc2ljIGNoZWNrcyAqLwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkxlbmd0aCBjaGFuZ2luZyBkaXYgZXhpc3RzIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2xlbmd0aCcpICE9IG51bGw7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkZpbHRlcmluZyBkaXYgZXhpc3RzIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2ZpbHRlcicpICE9IG51bGw7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkluZm9ybWF0aW9uIGRpdiBleGlzdHMiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpICE9IG51bGw7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlBhZ2luYXRpb24gZGl2IGV4aXN0cyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wYWdpbmF0ZScpICE9IG51bGw7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlByb2Nlc3NpbmcgZGl2IGlzIG9mZiBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3Byb2Nlc3NpbmcnKSA9PSBudWxsOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiMTAgcm93cyBzaG93biBvbiB0aGUgZmlyc3QgcGFnZSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSAxMDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiSW5pdGlhbCBzb3J0IG9jY3VyZWQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gIkdlY2tvIjsgfQoJKTsKCQoJLyogTmVlZCB0byB1c2UgdGhlIFdhaXRUZXN0IGZvciBzb3J0aW5nIGR1ZSB0byB0aGUgc2V0VGltZW91dCBkYXRhdGFibGVzIHVzZXMgKi8KCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgKGZpcnN0IGNsaWNrKSBvbiBzZWNvbmQgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgKHNlY29uZCBjbGljaykgb24gc2Vjb25kIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIlNlYW1vbmtleSAxLjEiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nICh0aGlyZCBjbGljaykgb24gc2Vjb25kIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIChmaXJzdCBjbGljaykgb24gbnVtZXJpYyBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMyknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDMpJykuaHRtbCgpID09ICItIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyAoc2Vjb25kIGNsaWNrKSBvbiBudW1lcmljIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIjUyMi4xIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyBtdWx0aS1jb2x1bW4gKGZpcnN0IGNsaWNrKSIsCgkJZnVuY3Rpb24gKCkgeyAKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMCknKS5jbGljaygpOwoJCQlvRGlzcGFjaGVyLmNsaWNrKCAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpWzBdLCB7ICdzaGlmdCc6IHRydWUgfSApOyB9LAoJCWZ1bmN0aW9uICgpIHsgdmFyIGIgPSAKCQkJJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gIkdlY2tvIiAmJiAKCQkJJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkNhbWlubyAxLjAiOyByZXR1cm4gYjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyBtdWx0aS1jb2x1bW4gLSBzb3J0aW5nIHNlY29uZCBjb2x1bW4gb25seSIsCgkJZnVuY3Rpb24gKCkgeyAKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJLyogQmFzaWMgcGFnaW5nICovCglvVGVzdC5mblRlc3QoIAoJCSJQYWdpbmcgdG8gc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIklFIE1vYmlsZSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlBhZ2luZyB0byBmaXJzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkF0dGVtcHRpbmcgdG8gcGFnZSBiYWNrIGJleW9uZCB0aGUgZmlyc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCgkvKiBDaGFuZ2luZyBsZW5ndGggKi8KCW9UZXN0LmZuVGVzdCggCgkJIkNoYW5naW5nIHRhYmxlIGxlbmd0aCB0byAyNSByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7ICQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnMjUnKS5jaGFuZ2UoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSAyNTsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2hhbmdpbmcgdGFibGUgbGVuZ3RoIHRvIDUwIHJlY29yZHMiLAoJCWZ1bmN0aW9uICgpIHsgJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCc1MCcpLmNoYW5nZSgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDUwOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDaGFuZ2luZyB0YWJsZSBsZW5ndGggdG8gMTAwIHJlY29yZHMiLAoJCWZ1bmN0aW9uICgpIHsgJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcxMDAnKS5jaGFuZ2UoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSA1NzsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2hhbmdpbmcgdGFibGUgbGVuZ3RoIHRvIDEwIHJlY29yZHMiLAoJCWZ1bmN0aW9uICgpIHsgJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcxMCcpLmNoYW5nZSgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDEwOyB9CgkpOwoJCgkvKgoJICogSW5mb3JtYXRpb24gZWxlbWVudAoJICovCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIG9uIHplcm8gY29uZmlnIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiBvbiBzZWNvbmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDExIHRvIDIwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIG9uIHRoaXJkIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAyMSB0byAzMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiBvbiBsYXN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgNTEgdG8gNTcgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gYmFjayBvbiBmaXJzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggMjUgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzI1JykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAxIHRvIDI1IG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggMjUgcmVjb3JkcyAtIHNlY29uZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMjYgdG8gNTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCAxMDAgcmVjb3JkcyAtIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzEwMCcpLmNoYW5nZSgpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAxIHRvIDU3IG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIGJhY2sgdG8gMTAgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnMTAnKS5jaGFuZ2UoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciAnV2luJyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIldpbiIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciAnV2luJyBzZWNvbmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxMSB0byAyMCBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciAnV2luJyBsYXN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMzEgdG8gMzEgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbicgYmFjayB0byBmaXJzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyICdXaW4nIHNlY29uZCBwYWdlIC0gc2Vjb25kIHRpbWUiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxMSB0byAyMCBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciBpbmNyZWFzZWQgdG8gJ1dpbiA5OCciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXaW4gOTgiKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gOSBvZiA5IGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyIGRlY3JlYXNlZCB0byAnV2luJyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIldpbiIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciAnV2luJyBzZWNvbmQgcGFnZSAtIHRoaXJkIHRpbWUiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxMSB0byAyMCBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciByZW1vdmVkIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCgkKCS8qCgkgKiBGaWx0ZXJpbmcKCSAqLwoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiRmlsdGVyICdXJyAtIHJvd3MiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCS8qIFJlc2V0IHRoZSB0YWJsZSBzdWNoIHRoYXQgdGhlIG9sZCBzb3J0aW5nIGRvZXNuJ3QgbWVzcyB0aGluZ3MgdXAgKi8KCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCBvSW5pdCApOwoJCQkkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIlciKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09ICJHZWNrbyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXJyAtIGluZm8iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiA0MiBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpJyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIldpIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDMyIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luJyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIldpbiIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbicgLSBzb3J0aW5nIGNvbHVtbiAxIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQU9MIGJyb3dzZXIgKEFPTCBkZXNrdG9wKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaW4nIC0gc29ydGluZyBjb2x1bW4gMSBpbmZvIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaW4nIC0gc29ydGluZyBjb2x1bW4gMSByZXZlcnNlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiU2VhbW9ua2V5IDEuMSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaW4gWFAnIC0gbWFpbnRhaW5nIHJldmVyc2Ugc29ydGluZyBjb2wgMSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIldpbiBYUCIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkludGVybmV0IEV4cGxvcmVyIDciOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luIFhQJyAtIHNvcnRpbmcgY29sIDMiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMyknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDMpJykuaHRtbCgpID09ICI0IjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbiBYUCcgLSBzb3J0aW5nIGNvbCAzIC0gcmV2ZXJzZWQiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMyknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDMpJykuaHRtbCgpID09ICI3IjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbicgLSBzb3J0aW5nIGNvbCAzIC0gcmV2ZXJzZWQgaW5mbyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDYgb2YgNiBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ25vdGhpbmdoZXJlJyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIm5vdGhpbmdoZXJlIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAKCQkJIk5vIG1hdGNoaW5nIHJlY29yZHMgZm91bmQiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnbm90aGluZ2hlcmUnIC0gaW5mbyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAwIHRvIDAgb2YgMCBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgYmFjayB0byBibGFuayBhbmQgMXN0IGNvbHVtbiBzb3J0aW5nIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiIikua2V5dXAoKTsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMCknKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJQcmVmaXhpbmcgYSBmaWx0ZXIgZW50cnkiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXaW4iKS5rZXl1cCgpOwoJCQkkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIkdlY2tvV2luIikua2V5dXAoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDAgdG8gMCBvZiAwIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIlByZWZpeGluZyBhIGZpbHRlciBlbnRyeSB3aXRoIHNwYWNlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiR2Vja28gV2luIikua2V5dXAoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgMTcgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCQoJCgkKCQoJCgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/_zero_config_null_source.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURToganNfZGF0YQpvVGVzdC5mblN0YXJ0KCAiU2FuaXR5IGNoZWNrcyBmb3IgRGF0YVRhYmxlcyB3aXRoIGRhdGEgZnJvbSBKUyAtIE51bGwgZGF0YSBzb3VyY2UgZm9yIGxhc3QgY29sdW1uIiApOwoKb1Rlc3QuZm5UZXN0KCAKCSJqUXVlcnkuZGF0YVRhYmxlIGZ1bmN0aW9uIiwKCW51bGwsCglmdW5jdGlvbiAoKSB7IHJldHVybiB0eXBlb2YgalF1ZXJ5KCkuZGF0YVRhYmxlID09ICJmdW5jdGlvbiI7IH0KKTsKCm9UZXN0LmZuVGVzdCgKCSJqUXVlcnkuZGF0YVRhYmxlU2V0dGluZ3Mgc3RvcmFnZSBhcnJheSIsCgludWxsLAoJZnVuY3Rpb24gKCkgeyByZXR1cm4gdHlwZW9mIGpRdWVyeSgpLmRhdGFUYWJsZVNldHRpbmdzID09ICJvYmplY3QiOyB9Cik7CgpvVGVzdC5mblRlc3QoCgkialF1ZXJ5LmRhdGFUYWJsZUV4dCBwbHVnaW4gb2JqZWN0IiwKCW51bGwsCglmdW5jdGlvbiAoKSB7IHJldHVybiB0eXBlb2YgalF1ZXJ5KCkuZGF0YVRhYmxlRXh0ID09ICJvYmplY3QiOyB9Cik7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJdmFyIG9Jbml0ID0gewoJCSJhb0NvbHVtbnMiOiBbCgkJCW51bGwsCgkJCW51bGwsCgkJCW51bGwsCgkJCW51bGwsCgkJCXsgIm1EYXRhIjogbnVsbCB9CgkJXSwKCQkiYWFEYXRhIjogZ2FhRGF0YQoJfTsKCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCBvSW5pdCApOwoJCgkvKiBCYXNpYyBjaGVja3MgKi8KCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJMZW5ndGggY2hhbmdpbmcgZGl2IGV4aXN0cyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9sZW5ndGgnKSAhPSBudWxsOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJGaWx0ZXJpbmcgZGl2IGV4aXN0cyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9maWx0ZXInKSAhPSBudWxsOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJbmZvcm1hdGlvbiBkaXYgZXhpc3RzIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKSAhPSBudWxsOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJQYWdpbmF0aW9uIGRpdiBleGlzdHMiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcGFnaW5hdGUnKSAhPSBudWxsOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJQcm9jZXNzaW5nIGRpdiBpcyBvZmYgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wcm9jZXNzaW5nJykgPT0gbnVsbDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIjEwIHJvd3Mgc2hvd24gb24gdGhlIGZpcnN0IHBhZ2UiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMTA7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkluaXRpYWwgc29ydCBvY2N1cmVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDApJykuaHRtbCgpID09ICJHZWNrbyI7IH0KCSk7CgkKCS8qIE5lZWQgdG8gdXNlIHRoZSBXYWl0VGVzdCBmb3Igc29ydGluZyBkdWUgdG8gdGhlIHNldFRpbWVvdXQgZGF0YXRhYmxlcyB1c2VzICovCglvVGVzdC5mblRlc3QoIAoJCSJEYXRhIGluIGxhc3QgY29sdW1uIGlzIGVtcHR5IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDQpJykuaHRtbCgpID09ICIiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIChmaXJzdCBjbGljaykgb24gc2Vjb25kIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJb1Rlc3QuZm5UZXN0KCAKCQkiRGF0YSBpbiBsYXN0IGNvbHVtbiBpcyBzdGlsbCBlbXB0eSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSg0KScpLmh0bWwoKSA9PSAiIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyAoc2Vjb25kIGNsaWNrKSBvbiBzZWNvbmQgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiU2VhbW9ua2V5IDEuMSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgKHRoaXJkIGNsaWNrKSBvbiBzZWNvbmQgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgKGZpcnN0IGNsaWNrKSBvbiBudW1lcmljIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIi0iOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIChzZWNvbmQgY2xpY2spIG9uIG51bWVyaWMgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiNTIyLjEiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIG11bHRpLWNvbHVtbiAoZmlyc3QgY2xpY2spIiwKCQlmdW5jdGlvbiAoKSB7IAoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgwKScpLmNsaWNrKCk7CgkJCW9EaXNwYWNoZXIuY2xpY2soICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJylbMF0sIHsgJ3NoaWZ0JzogdHJ1ZSB9ICk7IH0sCgkJZnVuY3Rpb24gKCkgeyB2YXIgYiA9IAoJCQkkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiR2Vja28iICYmIAoJCQkkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQ2FtaW5vIDEuMCI7IHJldHVybiBiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIG11bHRpLWNvbHVtbiAtIHNvcnRpbmcgc2Vjb25kIGNvbHVtbiBvbmx5IiwKCQlmdW5jdGlvbiAoKSB7IAoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCgkvKiBCYXNpYyBwYWdpbmcgKi8KCW9UZXN0LmZuVGVzdCggCgkJIlBhZ2luZyB0byBzZWNvbmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiSUUgTW9iaWxlIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUGFnaW5nIHRvIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQXR0ZW1wdGluZyB0byBwYWdlIGJhY2sgYmV5b25kIHRoZSBmaXJzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCS8qIENoYW5naW5nIGxlbmd0aCAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2hhbmdpbmcgdGFibGUgbGVuZ3RoIHRvIDI1IHJlY29yZHMiLAoJCWZ1bmN0aW9uICgpIHsgJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcyNScpLmNoYW5nZSgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDI1OyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDaGFuZ2luZyB0YWJsZSBsZW5ndGggdG8gNTAgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzUwJykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gNTA7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoYW5naW5nIHRhYmxlIGxlbmd0aCB0byAxMDAgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzEwMCcpLmNoYW5nZSgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDU3OyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDaGFuZ2luZyB0YWJsZSBsZW5ndGggdG8gMTAgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzEwJykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMTA7IH0KCSk7CgkKCS8qCgkgKiBJbmZvcm1hdGlvbiBlbGVtZW50CgkgKi8KCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gb24gemVybyBjb25maWciLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIG9uIHNlY29uZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMTEgdG8gMjAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gb24gdGhpcmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDIxIHRvIDMwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIG9uIGxhc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyA1MSB0byA1NyBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiBiYWNrIG9uIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCAyNSByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7ICQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnMjUnKS5jaGFuZ2UoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDEgdG8gMjUgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCAyNSByZWNvcmRzIC0gc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAyNiB0byA1MCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIDEwMCByZWNvcmRzIC0gZmlyc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnMTAwJykuY2hhbmdlKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDEgdG8gNTcgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gYmFjayB0byAxMCByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcxMCcpLmNoYW5nZSgpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyICdXaW4nIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2luIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyICdXaW4nIHNlY29uZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDExIHRvIDIwIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyICdXaW4nIGxhc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAzMSB0byAzMSBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciAnV2luJyBiYWNrIHRvIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbicgc2Vjb25kIHBhZ2UgLSBzZWNvbmQgdGltZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDExIHRvIDIwIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyIGluY3JlYXNlZCB0byAnV2luIDk4JyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIldpbiA5OCIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byA5IG9mIDkgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgZGVjcmVhc2VkIHRvICdXaW4nIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2luIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyICdXaW4nIHNlY29uZCBwYWdlIC0gdGhpcmQgdGltZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDExIHRvIDIwIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyIHJlbW92ZWQiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCIiKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCQoJLyoKCSAqIEZpbHRlcmluZwoJICovCglvVGVzdC5mbldhaXRUZXN0KAoJCSJGaWx0ZXIgJ1cnIC0gcm93cyIsCgkJZnVuY3Rpb24gKCkgeyAKCQkJLyogUmVzZXQgdGhlIHRhYmxlIHN1Y2ggdGhhdCB0aGUgb2xkIHNvcnRpbmcgZG9lc24ndCBtZXNzIHRoaW5ncyB1cCAqLwoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIG9Jbml0ICk7CgkJCSQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiVyIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gIkdlY2tvIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1cnIC0gaW5mbyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDQyIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2knIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2kiKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgMzIgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaW4nIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2luIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luJyAtIHNvcnRpbmcgY29sdW1uIDEiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICJBT0wgYnJvd3NlciAoQU9MIGRlc2t0b3ApIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbicgLSBzb3J0aW5nIGNvbHVtbiAxIGluZm8iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbicgLSBzb3J0aW5nIGNvbHVtbiAxIHJldmVyc2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICJTZWFtb25rZXkgMS4xIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbiBYUCcgLSBtYWludGFpbmcgcmV2ZXJzZSBzb3J0aW5nIGNvbCAxIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2luIFhQIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiSW50ZXJuZXQgRXhwbG9yZXIgNyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaW4gWFAnIC0gc29ydGluZyBjb2wgMyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIjQiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luIFhQJyAtIHNvcnRpbmcgY29sIDMgLSByZXZlcnNlZCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIjciOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luJyAtIHNvcnRpbmcgY29sIDMgLSByZXZlcnNlZCBpbmZvIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gNiBvZiA2IGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnbm90aGluZ2hlcmUnIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgibm90aGluZ2hlcmUiKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09IAoJCQkiTm8gbWF0Y2hpbmcgcmVjb3JkcyBmb3VuZCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdub3RoaW5naGVyZScgLSBpbmZvIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDAgdG8gMCBvZiAwIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciBiYWNrIHRvIGJsYW5rIGFuZCAxc3QgY29sdW1uIHNvcnRpbmciLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCIiKS5rZXl1cCgpOwoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgwKScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIlByZWZpeGluZyBhIGZpbHRlciBlbnRyeSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIldpbiIpLmtleXVwKCk7CgkJCSQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiR2Vja29XaW4iKS5rZXl1cCgpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMCB0byAwIG9mIDAgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiUHJlZml4aW5nIGEgZmlsdGVyIGVudHJ5IHdpdGggc3BhY2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJHZWNrbyBXaW4iKS5rZXl1cCgpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAxNyBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJCgkKCQoJCgkKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/_zero_config_objects.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIlNhbml0eSBjaGVja3MgZm9yIERhdGFUYWJsZXMgd2l0aCBkYXRhIGZyb20gSlMgLSBPYmplY3QgZGF0YSBzb3VyY2UiICk7CgpvVGVzdC5mblRlc3QoIAoJImpRdWVyeS5kYXRhVGFibGUgZnVuY3Rpb24iLAoJbnVsbCwKCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVvZiBqUXVlcnkoKS5kYXRhVGFibGUgPT0gImZ1bmN0aW9uIjsgfQopOwoKb1Rlc3QuZm5UZXN0KAoJImpRdWVyeS5kYXRhVGFibGVTZXR0aW5ncyBzdG9yYWdlIGFycmF5IiwKCW51bGwsCglmdW5jdGlvbiAoKSB7IHJldHVybiB0eXBlb2YgalF1ZXJ5KCkuZGF0YVRhYmxlU2V0dGluZ3MgPT0gIm9iamVjdCI7IH0KKTsKCm9UZXN0LmZuVGVzdCgKCSJqUXVlcnkuZGF0YVRhYmxlRXh0IHBsdWdpbiBvYmplY3QiLAoJbnVsbCwKCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVvZiBqUXVlcnkoKS5kYXRhVGFibGVFeHQgPT0gIm9iamVjdCI7IH0KKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIgb0luaXQgPSB7CgkJImFvQ29sdW1ucyI6IFsKCQkJeyAibURhdGEiOiAiZW5naW5lIiB9LAoJCQl7ICJtRGF0YSI6ICJicm93c2VyIiB9LAoJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIgfSwKCQkJeyAibURhdGEiOiAidmVyc2lvbiIgfSwKCQkJeyAibURhdGEiOiAiZ3JhZGUiIH0KCQldLAoJCSJhYURhdGEiOiBbCgl7CgkJImVuZ2luZSI6ICJUcmlkZW50IiwKCQkiYnJvd3NlciI6ICJJbnRlcm5ldCBFeHBsb3JlciA0LjAiLAoJCSJwbGF0Zm9ybSI6ICJXaW4gOTUrIiwKCQkidmVyc2lvbiI6ICI0IiwKCQkiZ3JhZGUiOiAiWCIKCX0sCgl7CgkJImVuZ2luZSI6ICJUcmlkZW50IiwKCQkiYnJvd3NlciI6ICJJbnRlcm5ldCBFeHBsb3JlciA1LjAiLAoJCSJwbGF0Zm9ybSI6ICJXaW4gOTUrIiwKCQkidmVyc2lvbiI6ICI1IiwKCQkiZ3JhZGUiOiAiQyIKCX0sCgl7CgkJImVuZ2luZSI6ICJUcmlkZW50IiwKCQkiYnJvd3NlciI6ICJJbnRlcm5ldCBFeHBsb3JlciA1LjUiLAoJCSJwbGF0Zm9ybSI6ICJXaW4gOTUrIiwKCQkidmVyc2lvbiI6ICI1LjUiLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIlRyaWRlbnQiLAoJCSJicm93c2VyIjogIkludGVybmV0IEV4cGxvcmVyIDYiLAoJCSJwbGF0Zm9ybSI6ICJXaW4gOTgrIiwKCQkidmVyc2lvbiI6ICI2IiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJUcmlkZW50IiwKCQkiYnJvd3NlciI6ICJJbnRlcm5ldCBFeHBsb3JlciA3IiwKCQkicGxhdGZvcm0iOiAiV2luIFhQIFNQMisiLAoJCSJ2ZXJzaW9uIjogIjciLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIlRyaWRlbnQiLAoJCSJicm93c2VyIjogIkFPTCBicm93c2VyIChBT0wgZGVza3RvcCkiLAoJCSJwbGF0Zm9ybSI6ICJXaW4gWFAiLAoJCSJ2ZXJzaW9uIjogIjYiLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIkdlY2tvIiwKCQkiYnJvd3NlciI6ICJGaXJlZm94IDEuMCIsCgkJInBsYXRmb3JtIjogIldpbiA5OCsgLyBPU1guMisiLAoJCSJ2ZXJzaW9uIjogIjEuNyIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIkZpcmVmb3ggMS41IiwKCQkicGxhdGZvcm0iOiAiV2luIDk4KyAvIE9TWC4yKyIsCgkJInZlcnNpb24iOiAiMS44IiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJHZWNrbyIsCgkJImJyb3dzZXIiOiAiRmlyZWZveCAyLjAiLAoJCSJwbGF0Zm9ybSI6ICJXaW4gOTgrIC8gT1NYLjIrIiwKCQkidmVyc2lvbiI6ICIxLjgiLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIkdlY2tvIiwKCQkiYnJvd3NlciI6ICJGaXJlZm94IDMuMCIsCgkJInBsYXRmb3JtIjogIldpbiAyaysgLyBPU1guMysiLAoJCSJ2ZXJzaW9uIjogIjEuOSIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIkNhbWlubyAxLjAiLAoJCSJwbGF0Zm9ybSI6ICJPU1guMisiLAoJCSJ2ZXJzaW9uIjogIjEuOCIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIkNhbWlubyAxLjUiLAoJCSJwbGF0Zm9ybSI6ICJPU1guMysiLAoJCSJ2ZXJzaW9uIjogIjEuOCIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIk5ldHNjYXBlIDcuMiIsCgkJInBsYXRmb3JtIjogIldpbiA5NSsgLyBNYWMgT1MgOC42LTkuMiIsCgkJInZlcnNpb24iOiAiMS43IiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJHZWNrbyIsCgkJImJyb3dzZXIiOiAiTmV0c2NhcGUgQnJvd3NlciA4IiwKCQkicGxhdGZvcm0iOiAiV2luIDk4U0UrIiwKCQkidmVyc2lvbiI6ICIxLjciLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIkdlY2tvIiwKCQkiYnJvd3NlciI6ICJOZXRzY2FwZSBOYXZpZ2F0b3IgOSIsCgkJInBsYXRmb3JtIjogIldpbiA5OCsgLyBPU1guMisiLAoJCSJ2ZXJzaW9uIjogIjEuOCIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIk1vemlsbGEgMS4wIiwKCQkicGxhdGZvcm0iOiAiV2luIDk1KyAvIE9TWC4xKyIsCgkJInZlcnNpb24iOiAiMSIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIk1vemlsbGEgMS4xIiwKCQkicGxhdGZvcm0iOiAiV2luIDk1KyAvIE9TWC4xKyIsCgkJInZlcnNpb24iOiAiMS4xIiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJHZWNrbyIsCgkJImJyb3dzZXIiOiAiTW96aWxsYSAxLjIiLAoJCSJwbGF0Zm9ybSI6ICJXaW4gOTUrIC8gT1NYLjErIiwKCQkidmVyc2lvbiI6ICIxLjIiLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIkdlY2tvIiwKCQkiYnJvd3NlciI6ICJNb3ppbGxhIDEuMyIsCgkJInBsYXRmb3JtIjogIldpbiA5NSsgLyBPU1guMSsiLAoJCSJ2ZXJzaW9uIjogIjEuMyIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIk1vemlsbGEgMS40IiwKCQkicGxhdGZvcm0iOiAiV2luIDk1KyAvIE9TWC4xKyIsCgkJInZlcnNpb24iOiAiMS40IiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJHZWNrbyIsCgkJImJyb3dzZXIiOiAiTW96aWxsYSAxLjUiLAoJCSJwbGF0Zm9ybSI6ICJXaW4gOTUrIC8gT1NYLjErIiwKCQkidmVyc2lvbiI6ICIxLjUiLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIkdlY2tvIiwKCQkiYnJvd3NlciI6ICJNb3ppbGxhIDEuNiIsCgkJInBsYXRmb3JtIjogIldpbiA5NSsgLyBPU1guMSsiLAoJCSJ2ZXJzaW9uIjogIjEuNiIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIk1vemlsbGEgMS43IiwKCQkicGxhdGZvcm0iOiAiV2luIDk4KyAvIE9TWC4xKyIsCgkJInZlcnNpb24iOiAiMS43IiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJHZWNrbyIsCgkJImJyb3dzZXIiOiAiTW96aWxsYSAxLjgiLAoJCSJwbGF0Zm9ybSI6ICJXaW4gOTgrIC8gT1NYLjErIiwKCQkidmVyc2lvbiI6ICIxLjgiLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIkdlY2tvIiwKCQkiYnJvd3NlciI6ICJTZWFtb25rZXkgMS4xIiwKCQkicGxhdGZvcm0iOiAiV2luIDk4KyAvIE9TWC4yKyIsCgkJInZlcnNpb24iOiAiMS44IiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJHZWNrbyIsCgkJImJyb3dzZXIiOiAiRXBpcGhhbnkgMi4yMCIsCgkJInBsYXRmb3JtIjogIkdub21lIiwKCQkidmVyc2lvbiI6ICIxLjgiLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIldlYmtpdCIsCgkJImJyb3dzZXIiOiAiU2FmYXJpIDEuMiIsCgkJInBsYXRmb3JtIjogIk9TWC4zIiwKCQkidmVyc2lvbiI6ICIxMjUuNSIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiV2Via2l0IiwKCQkiYnJvd3NlciI6ICJTYWZhcmkgMS4zIiwKCQkicGxhdGZvcm0iOiAiT1NYLjMiLAoJCSJ2ZXJzaW9uIjogIjMxMi44IiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJXZWJraXQiLAoJCSJicm93c2VyIjogIlNhZmFyaSAyLjAiLAoJCSJwbGF0Zm9ybSI6ICJPU1guNCsiLAoJCSJ2ZXJzaW9uIjogIjQxOS4zIiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJXZWJraXQiLAoJCSJicm93c2VyIjogIlNhZmFyaSAzLjAiLAoJCSJwbGF0Zm9ybSI6ICJPU1guNCsiLAoJCSJ2ZXJzaW9uIjogIjUyMi4xIiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJXZWJraXQiLAoJCSJicm93c2VyIjogIk9tbmlXZWIgNS41IiwKCQkicGxhdGZvcm0iOiAiT1NYLjQrIiwKCQkidmVyc2lvbiI6ICI0MjAiLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIldlYmtpdCIsCgkJImJyb3dzZXIiOiAiaVBvZCBUb3VjaCAvIGlQaG9uZSIsCgkJInBsYXRmb3JtIjogImlQb2QiLAoJCSJ2ZXJzaW9uIjogIjQyMC4xIiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJXZWJraXQiLAoJCSJicm93c2VyIjogIlM2MCIsCgkJInBsYXRmb3JtIjogIlM2MCIsCgkJInZlcnNpb24iOiAiNDEzIiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJQcmVzdG8iLAoJCSJicm93c2VyIjogIk9wZXJhIDcuMCIsCgkJInBsYXRmb3JtIjogIldpbiA5NSsgLyBPU1guMSsiLAoJCSJ2ZXJzaW9uIjogIi0iLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIlByZXN0byIsCgkJImJyb3dzZXIiOiAiT3BlcmEgNy41IiwKCQkicGxhdGZvcm0iOiAiV2luIDk1KyAvIE9TWC4yKyIsCgkJInZlcnNpb24iOiAiLSIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiUHJlc3RvIiwKCQkiYnJvd3NlciI6ICJPcGVyYSA4LjAiLAoJCSJwbGF0Zm9ybSI6ICJXaW4gOTUrIC8gT1NYLjIrIiwKCQkidmVyc2lvbiI6ICItIiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJQcmVzdG8iLAoJCSJicm93c2VyIjogIk9wZXJhIDguNSIsCgkJInBsYXRmb3JtIjogIldpbiA5NSsgLyBPU1guMisiLAoJCSJ2ZXJzaW9uIjogIi0iLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIlByZXN0byIsCgkJImJyb3dzZXIiOiAiT3BlcmEgOS4wIiwKCQkicGxhdGZvcm0iOiAiV2luIDk1KyAvIE9TWC4zKyIsCgkJInZlcnNpb24iOiAiLSIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiUHJlc3RvIiwKCQkiYnJvd3NlciI6ICJPcGVyYSA5LjIiLAoJCSJwbGF0Zm9ybSI6ICJXaW4gODgrIC8gT1NYLjMrIiwKCQkidmVyc2lvbiI6ICItIiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJQcmVzdG8iLAoJCSJicm93c2VyIjogIk9wZXJhIDkuNSIsCgkJInBsYXRmb3JtIjogIldpbiA4OCsgLyBPU1guMysiLAoJCSJ2ZXJzaW9uIjogIi0iLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIlByZXN0byIsCgkJImJyb3dzZXIiOiAiT3BlcmEgZm9yIFdpaSIsCgkJInBsYXRmb3JtIjogIldpaSIsCgkJInZlcnNpb24iOiAiLSIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiUHJlc3RvIiwKCQkiYnJvd3NlciI6ICJOb2tpYSBOODAwIiwKCQkicGxhdGZvcm0iOiAiTjgwMCIsCgkJInZlcnNpb24iOiAiLSIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiUHJlc3RvIiwKCQkiYnJvd3NlciI6ICJOaW50ZW5kbyBEUyBicm93c2VyIiwKCQkicGxhdGZvcm0iOiAiTmludGVuZG8gRFMiLAoJCSJ2ZXJzaW9uIjogIjguNSIsCgkJImdyYWRlIjogIkMvQTxzdXA+MTwvc3VwPiIKCX0sCgl7CgkJImVuZ2luZSI6ICJLSFRNTCIsCgkJImJyb3dzZXIiOiAiS29ucXVyZXJvciAzLjEiLAoJCSJwbGF0Zm9ybSI6ICJLREUgMy4xIiwKCQkidmVyc2lvbiI6ICIzLjEiLAoJCSJncmFkZSI6ICJDIgoJfSwKCXsKCQkiZW5naW5lIjogIktIVE1MIiwKCQkiYnJvd3NlciI6ICJLb25xdXJlcm9yIDMuMyIsCgkJInBsYXRmb3JtIjogIktERSAzLjMiLAoJCSJ2ZXJzaW9uIjogIjMuMyIsCgkJImdyYWRlIjogIkEiCgl9LAoJewoJCSJlbmdpbmUiOiAiS0hUTUwiLAoJCSJicm93c2VyIjogIktvbnF1cmVyb3IgMy41IiwKCQkicGxhdGZvcm0iOiAiS0RFIDMuNSIsCgkJInZlcnNpb24iOiAiMy41IiwKCQkiZ3JhZGUiOiAiQSIKCX0sCgl7CgkJImVuZ2luZSI6ICJUYXNtYW4iLAoJCSJicm93c2VyIjogIkludGVybmV0IEV4cGxvcmVyIDQuNSIsCgkJInBsYXRmb3JtIjogIk1hYyBPUyA4LTkiLAoJCSJ2ZXJzaW9uIjogIi0iLAoJCSJncmFkZSI6ICJYIgoJfSwKCXsKCQkiZW5naW5lIjogIlRhc21hbiIsCgkJImJyb3dzZXIiOiAiSW50ZXJuZXQgRXhwbG9yZXIgNS4xIiwKCQkicGxhdGZvcm0iOiAiTWFjIE9TIDcuNi05IiwKCQkidmVyc2lvbiI6ICIxIiwKCQkiZ3JhZGUiOiAiQyIKCX0sCgl7CgkJImVuZ2luZSI6ICJUYXNtYW4iLAoJCSJicm93c2VyIjogIkludGVybmV0IEV4cGxvcmVyIDUuMiIsCgkJInBsYXRmb3JtIjogIk1hYyBPUyA4LVgiLAoJCSJ2ZXJzaW9uIjogIjEiLAoJCSJncmFkZSI6ICJDIgoJfSwKCXsKCQkiZW5naW5lIjogIk1pc2MiLAoJCSJicm93c2VyIjogIk5ldEZyb250IDMuMSIsCgkJInBsYXRmb3JtIjogIkVtYmVkZGVkIGRldmljZXMiLAoJCSJ2ZXJzaW9uIjogIi0iLAoJCSJncmFkZSI6ICJDIgoJfSwKCXsKCQkiZW5naW5lIjogIk1pc2MiLAoJCSJicm93c2VyIjogIk5ldEZyb250IDMuNCIsCgkJInBsYXRmb3JtIjogIkVtYmVkZGVkIGRldmljZXMiLAoJCSJ2ZXJzaW9uIjogIi0iLAoJCSJncmFkZSI6ICJBIgoJfSwKCXsKCQkiZW5naW5lIjogIk1pc2MiLAoJCSJicm93c2VyIjogIkRpbGxvIDAuOCIsCgkJInBsYXRmb3JtIjogIkVtYmVkZGVkIGRldmljZXMiLAoJCSJ2ZXJzaW9uIjogIi0iLAoJCSJncmFkZSI6ICJYIgoJfSwKCXsKCQkiZW5naW5lIjogIk1pc2MiLAoJCSJicm93c2VyIjogIkxpbmtzIiwKCQkicGxhdGZvcm0iOiAiVGV4dCBvbmx5IiwKCQkidmVyc2lvbiI6ICItIiwKCQkiZ3JhZGUiOiAiWCIKCX0sCgl7CgkJImVuZ2luZSI6ICJNaXNjIiwKCQkiYnJvd3NlciI6ICJMeW54IiwKCQkicGxhdGZvcm0iOiAiVGV4dCBvbmx5IiwKCQkidmVyc2lvbiI6ICItIiwKCQkiZ3JhZGUiOiAiWCIKCX0sCgl7CgkJImVuZ2luZSI6ICJNaXNjIiwKCQkiYnJvd3NlciI6ICJJRSBNb2JpbGUiLAoJCSJwbGF0Zm9ybSI6ICJXaW5kb3dzIE1vYmlsZSA2IiwKCQkidmVyc2lvbiI6ICItIiwKCQkiZ3JhZGUiOiAiQyIKCX0sCgl7CgkJImVuZ2luZSI6ICJNaXNjIiwKCQkiYnJvd3NlciI6ICJQU1AgYnJvd3NlciIsCgkJInBsYXRmb3JtIjogIlBTUCIsCgkJInZlcnNpb24iOiAiLSIsCgkJImdyYWRlIjogIkMiCgl9LAoJewoJCSJlbmdpbmUiOiAiT3RoZXIgYnJvd3NlcnMiLAoJCSJicm93c2VyIjogIkFsbCBvdGhlcnMiLAoJCSJwbGF0Zm9ybSI6ICItIiwKCQkidmVyc2lvbiI6ICItIiwKCQkiZ3JhZGUiOiAiVSIKCX0KXQoJfTsKCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCBvSW5pdCApOwoJCgkvKiBCYXNpYyBjaGVja3MgKi8KCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJMZW5ndGggY2hhbmdpbmcgZGl2IGV4aXN0cyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9sZW5ndGgnKSAhPSBudWxsOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJGaWx0ZXJpbmcgZGl2IGV4aXN0cyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9maWx0ZXInKSAhPSBudWxsOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJbmZvcm1hdGlvbiBkaXYgZXhpc3RzIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKSAhPSBudWxsOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJQYWdpbmF0aW9uIGRpdiBleGlzdHMiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcGFnaW5hdGUnKSAhPSBudWxsOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJQcm9jZXNzaW5nIGRpdiBpcyBvZmYgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wcm9jZXNzaW5nJykgPT0gbnVsbDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIjEwIHJvd3Mgc2hvd24gb24gdGhlIGZpcnN0IHBhZ2UiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMTA7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkluaXRpYWwgc29ydCBvY2N1cmVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDApJykuaHRtbCgpID09ICJHZWNrbyI7IH0KCSk7CgkKCS8qIE5lZWQgdG8gdXNlIHRoZSBXYWl0VGVzdCBmb3Igc29ydGluZyBkdWUgdG8gdGhlIHNldFRpbWVvdXQgZGF0YXRhYmxlcyB1c2VzICovCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIChmaXJzdCBjbGljaykgb24gc2Vjb25kIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIChzZWNvbmQgY2xpY2spIG9uIHNlY29uZCBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJTZWFtb25rZXkgMS4xIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyAodGhpcmQgY2xpY2spIG9uIHNlY29uZCBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyAoZmlyc3QgY2xpY2spIG9uIG51bWVyaWMgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiLSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgKHNlY29uZCBjbGljaykgb24gbnVtZXJpYyBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMyknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDMpJykuaHRtbCgpID09ICI1MjIuMSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgbXVsdGktY29sdW1uIChmaXJzdCBjbGljaykiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDApJykuY2xpY2soKTsKCQkJb0Rpc3BhY2hlci5jbGljayggJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKVswXSwgeyAnc2hpZnQnOiB0cnVlIH0gKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHZhciBiID0gCgkJCSQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDApJykuaHRtbCgpID09ICJHZWNrbyIgJiYgCgkJCSQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJDYW1pbm8gMS4wIjsgcmV0dXJuIGI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgbXVsdGktY29sdW1uIC0gc29ydGluZyBzZWNvbmQgY29sdW1uIG9ubHkiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCS8qIEJhc2ljIHBhZ2luZyAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiUGFnaW5nIHRvIHNlY29uZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJJRSBNb2JpbGUiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJQYWdpbmcgdG8gZmlyc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJBdHRlbXB0aW5nIHRvIHBhZ2UgYmFjayBiZXlvbmQgdGhlIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJLyogQ2hhbmdpbmcgbGVuZ3RoICovCglvVGVzdC5mblRlc3QoIAoJCSJDaGFuZ2luZyB0YWJsZSBsZW5ndGggdG8gMjUgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzI1JykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMjU7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoYW5naW5nIHRhYmxlIGxlbmd0aCB0byA1MCByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7ICQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnNTAnKS5jaGFuZ2UoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSA1MDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2hhbmdpbmcgdGFibGUgbGVuZ3RoIHRvIDEwMCByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7ICQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnMTAwJykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gNTc7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoYW5naW5nIHRhYmxlIGxlbmd0aCB0byAxMCByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7ICQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnMTAnKS5jaGFuZ2UoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSAxMDsgfQoJKTsKCQoJLyoKCSAqIEluZm9ybWF0aW9uIGVsZW1lbnQKCSAqLwoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiBvbiB6ZXJvIGNvbmZpZyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gb24gc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAxMSB0byAyMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiBvbiB0aGlyZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMjEgdG8gMzAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gb24gbGFzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDUxIHRvIDU3IG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIGJhY2sgb24gZmlyc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIDI1IHJlY29yZHMiLAoJCWZ1bmN0aW9uICgpIHsgJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcyNScpLmNoYW5nZSgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMSB0byAyNSBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIDI1IHJlY29yZHMgLSBzZWNvbmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDI2IHRvIDUwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggMTAwIHJlY29yZHMgLSBmaXJzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcxMDAnKS5jaGFuZ2UoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMSB0byA1NyBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiBiYWNrIHRvIDEwIHJlY29yZHMiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzEwJykuY2hhbmdlKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbiciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXaW4iKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbicgc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMTEgdG8gMjAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbicgbGFzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDMxIHRvIDMxIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyICdXaW4nIGJhY2sgdG8gZmlyc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciAnV2luJyBzZWNvbmQgcGFnZSAtIHNlY29uZCB0aW1lIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMTEgdG8gMjAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgaW5jcmVhc2VkIHRvICdXaW4gOTgnIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2luIDk4Iikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDkgb2YgOSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciBkZWNyZWFzZWQgdG8gJ1dpbiciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXaW4iKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbicgc2Vjb25kIHBhZ2UgLSB0aGlyZCB0aW1lIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMTEgdG8gMjAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgcmVtb3ZlZCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIiIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJCgkvKgoJICogRmlsdGVyaW5nCgkgKi8KCW9UZXN0LmZuV2FpdFRlc3QoCgkJIkZpbHRlciAnVycgLSByb3dzIiwKCQlmdW5jdGlvbiAoKSB7IAoJCQkvKiBSZXNldCB0aGUgdGFibGUgc3VjaCB0aGF0IHRoZSBvbGQgc29ydGluZyBkb2Vzbid0IG1lc3MgdGhpbmdzIHVwICovCgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggb0luaXQgKTsKCQkJJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiR2Vja28iOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnVycgLSBpbmZvIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgNDIgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaSciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXaSIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAzMiBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbiciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXaW4iKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaW4nIC0gc29ydGluZyBjb2x1bW4gMSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFPTCBicm93c2VyIChBT0wgZGVza3RvcCkiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luJyAtIHNvcnRpbmcgY29sdW1uIDEgaW5mbyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luJyAtIHNvcnRpbmcgY29sdW1uIDEgcmV2ZXJzZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIlNlYW1vbmtleSAxLjEiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luIFhQJyAtIG1haW50YWluZyByZXZlcnNlIHNvcnRpbmcgY29sIDEiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXaW4gWFAiKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICJJbnRlcm5ldCBFeHBsb3JlciA3IjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbiBYUCcgLSBzb3J0aW5nIGNvbCAzIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiNCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaW4gWFAnIC0gc29ydGluZyBjb2wgMyAtIHJldmVyc2VkIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiNyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaW4nIC0gc29ydGluZyBjb2wgMyAtIHJldmVyc2VkIGluZm8iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byA2IG9mIDYgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdub3RoaW5naGVyZSciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJub3RoaW5naGVyZSIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gCgkJCSJObyBtYXRjaGluZyByZWNvcmRzIGZvdW5kIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ25vdGhpbmdoZXJlJyAtIGluZm8iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMCB0byAwIG9mIDAgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyIGJhY2sgdG8gYmxhbmsgYW5kIDFzdCBjb2x1bW4gc29ydGluZyIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIiIpLmtleXVwKCk7CgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDApJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiUHJlZml4aW5nIGEgZmlsdGVyIGVudHJ5IiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2luIikua2V5dXAoKTsKCQkJJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJHZWNrb1dpbiIpLmtleXVwKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAwIHRvIDAgb2YgMCBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJQcmVmaXhpbmcgYSBmaWx0ZXIgZW50cnkgd2l0aCBzcGFjZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIkdlY2tvIFdpbiIpLmtleXVwKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDE3IGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCgkKCQoJCgkKCQoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/5_ajax_objects/_zero_config_objects_subarrays.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIlNhbml0eSBjaGVja3MgZm9yIERhdGFUYWJsZXMgd2l0aCBkYXRhIGZyb20gSlMgLSBPYmplY3QgLyBzdWItYXJyYXkgZGF0YSBzb3VyY2UiICk7CgpvVGVzdC5mblRlc3QoIAoJImpRdWVyeS5kYXRhVGFibGUgZnVuY3Rpb24iLAoJbnVsbCwKCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVvZiBqUXVlcnkoKS5kYXRhVGFibGUgPT0gImZ1bmN0aW9uIjsgfQopOwoKb1Rlc3QuZm5UZXN0KAoJImpRdWVyeS5kYXRhVGFibGVTZXR0aW5ncyBzdG9yYWdlIGFycmF5IiwKCW51bGwsCglmdW5jdGlvbiAoKSB7IHJldHVybiB0eXBlb2YgalF1ZXJ5KCkuZGF0YVRhYmxlU2V0dGluZ3MgPT0gIm9iamVjdCI7IH0KKTsKCm9UZXN0LmZuVGVzdCgKCSJqUXVlcnkuZGF0YVRhYmxlRXh0IHBsdWdpbiBvYmplY3QiLAoJbnVsbCwKCWZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVvZiBqUXVlcnkoKS5kYXRhVGFibGVFeHQgPT0gIm9iamVjdCI7IH0KKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIgb0luaXQgPSB7CgkJImFvQ29sdW1ucyI6IFsKCQkJeyAibURhdGEiOiAiZW5naW5lIiB9LAoJCQl7ICJtRGF0YSI6ICJicm93c2VyIiB9LAoJCQl7ICJtRGF0YSI6ICJwbGF0Zm9ybSIgfSwKCQkJeyAibURhdGEiOiAiZGV0YWlscy4wIiB9LAoJCQl7ICJtRGF0YSI6ICJkZXRhaWxzLjEiIH0KCQldLAoJCSJhYURhdGEiOiBbCgl7CgkJImVuZ2luZSI6ICJUcmlkZW50IiwKCQkiYnJvd3NlciI6ICJJbnRlcm5ldCBFeHBsb3JlciA0LjAiLAoJCSJwbGF0Zm9ybSI6ICJXaW4gOTUrIiwKCQkiZGV0YWlscyI6IFsKCQkJIjQiLAoJCQkiWCIKCQldCgl9LAoJewoJCSJlbmdpbmUiOiAiVHJpZGVudCIsCgkJImJyb3dzZXIiOiAiSW50ZXJuZXQgRXhwbG9yZXIgNS4wIiwKCQkicGxhdGZvcm0iOiAiV2luIDk1KyIsCgkJImRldGFpbHMiOiBbCgkJCSI1IiwKCQkJIkMiCgkJXQoJfSwKCXsKCQkiZW5naW5lIjogIlRyaWRlbnQiLAoJCSJicm93c2VyIjogIkludGVybmV0IEV4cGxvcmVyIDUuNSIsCgkJInBsYXRmb3JtIjogIldpbiA5NSsiLAoJCSJkZXRhaWxzIjogWwoJCQkiNS41IiwKCQkJIkEiCgkJXQoJfSwKCXsKCQkiZW5naW5lIjogIlRyaWRlbnQiLAoJCSJicm93c2VyIjogIkludGVybmV0IEV4cGxvcmVyIDYiLAoJCSJwbGF0Zm9ybSI6ICJXaW4gOTgrIiwKCQkiZGV0YWlscyI6IFsKCQkJIjYiLAoJCQkiQSIKCQldCgl9LAoJewoJCSJlbmdpbmUiOiAiVHJpZGVudCIsCgkJImJyb3dzZXIiOiAiSW50ZXJuZXQgRXhwbG9yZXIgNyIsCgkJInBsYXRmb3JtIjogIldpbiBYUCBTUDIrIiwKCQkiZGV0YWlscyI6IFsKCQkJIjciLAoJCQkiQSIKCQldCgl9LAoJewoJCSJlbmdpbmUiOiAiVHJpZGVudCIsCgkJImJyb3dzZXIiOiAiQU9MIGJyb3dzZXIgKEFPTCBkZXNrdG9wKSIsCgkJInBsYXRmb3JtIjogIldpbiBYUCIsCgkJImRldGFpbHMiOiBbCgkJCSI2IiwKCQkJIkEiCgkJXQoJfSwKCXsKCQkiZW5naW5lIjogIkdlY2tvIiwKCQkiYnJvd3NlciI6ICJGaXJlZm94IDEuMCIsCgkJInBsYXRmb3JtIjogIldpbiA5OCsgLyBPU1guMisiLAoJCSJkZXRhaWxzIjogWwoJCQkiMS43IiwKCQkJIkEiCgkJXQoJfSwKCXsKCQkiZW5naW5lIjogIkdlY2tvIiwKCQkiYnJvd3NlciI6ICJGaXJlZm94IDEuNSIsCgkJInBsYXRmb3JtIjogIldpbiA5OCsgLyBPU1guMisiLAoJCSJkZXRhaWxzIjogWwoJCQkiMS44IiwKCQkJIkEiCgkJXQoJfSwKCXsKCQkiZW5naW5lIjogIkdlY2tvIiwKCQkiYnJvd3NlciI6ICJGaXJlZm94IDIuMCIsCgkJInBsYXRmb3JtIjogIldpbiA5OCsgLyBPU1guMisiLAoJCSJkZXRhaWxzIjogWwoJCQkiMS44IiwKCQkJIkEiCgkJXQoJfSwKCXsKCQkiZW5naW5lIjogIkdlY2tvIiwKCQkiYnJvd3NlciI6ICJGaXJlZm94IDMuMCIsCgkJInBsYXRmb3JtIjogIldpbiAyaysgLyBPU1guMysiLAoJCSJkZXRhaWxzIjogWwoJCQkiMS45IiwKCQkJIkEiCgkJXQoJfSwKCXsKCQkiZW5naW5lIjogIkdlY2tvIiwKCQkiYnJvd3NlciI6ICJDYW1pbm8gMS4wIiwKCQkicGxhdGZvcm0iOiAiT1NYLjIrIiwKCQkiZGV0YWlscyI6IFsKCQkJIjEuOCIsCgkJCSJBIgoJCV0KCX0sCgl7CgkJImVuZ2luZSI6ICJHZWNrbyIsCgkJImJyb3dzZXIiOiAiQ2FtaW5vIDEuNSIsCgkJInBsYXRmb3JtIjogIk9TWC4zKyIsCgkJImRldGFpbHMiOiBbCgkJCSIxLjgiLAoJCQkiQSIKCQldCgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIk5ldHNjYXBlIDcuMiIsCgkJInBsYXRmb3JtIjogIldpbiA5NSsgLyBNYWMgT1MgOC42LTkuMiIsCgkJImRldGFpbHMiOiBbCgkJCSIxLjciLAoJCQkiQSIKCQldCgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIk5ldHNjYXBlIEJyb3dzZXIgOCIsCgkJInBsYXRmb3JtIjogIldpbiA5OFNFKyIsCgkJImRldGFpbHMiOiBbCgkJCSIxLjciLAoJCQkiQSIKCQldCgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIk5ldHNjYXBlIE5hdmlnYXRvciA5IiwKCQkicGxhdGZvcm0iOiAiV2luIDk4KyAvIE9TWC4yKyIsCgkJImRldGFpbHMiOiBbCgkJCSIxLjgiLAoJCQkiQSIKCQldCgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIk1vemlsbGEgMS4wIiwKCQkicGxhdGZvcm0iOiAiV2luIDk1KyAvIE9TWC4xKyIsCgkJImRldGFpbHMiOiBbCgkJCTEsCgkJCSJBIgoJCV0KCX0sCgl7CgkJImVuZ2luZSI6ICJHZWNrbyIsCgkJImJyb3dzZXIiOiAiTW96aWxsYSAxLjEiLAoJCSJwbGF0Zm9ybSI6ICJXaW4gOTUrIC8gT1NYLjErIiwKCQkiZGV0YWlscyI6IFsKCQkJMS4xLAoJCQkiQSIKCQldCgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIk1vemlsbGEgMS4yIiwKCQkicGxhdGZvcm0iOiAiV2luIDk1KyAvIE9TWC4xKyIsCgkJImRldGFpbHMiOiBbCgkJCTEuMiwKCQkJIkEiCgkJXQoJfSwKCXsKCQkiZW5naW5lIjogIkdlY2tvIiwKCQkiYnJvd3NlciI6ICJNb3ppbGxhIDEuMyIsCgkJInBsYXRmb3JtIjogIldpbiA5NSsgLyBPU1guMSsiLAoJCSJkZXRhaWxzIjogWwoJCQkxLjMsCgkJCSJBIgoJCV0KCX0sCgl7CgkJImVuZ2luZSI6ICJHZWNrbyIsCgkJImJyb3dzZXIiOiAiTW96aWxsYSAxLjQiLAoJCSJwbGF0Zm9ybSI6ICJXaW4gOTUrIC8gT1NYLjErIiwKCQkiZGV0YWlscyI6IFsKCQkJMS40LAoJCQkiQSIKCQldCgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIk1vemlsbGEgMS41IiwKCQkicGxhdGZvcm0iOiAiV2luIDk1KyAvIE9TWC4xKyIsCgkJImRldGFpbHMiOiBbCgkJCTEuNSwKCQkJIkEiCgkJXQoJfSwKCXsKCQkiZW5naW5lIjogIkdlY2tvIiwKCQkiYnJvd3NlciI6ICJNb3ppbGxhIDEuNiIsCgkJInBsYXRmb3JtIjogIldpbiA5NSsgLyBPU1guMSsiLAoJCSJkZXRhaWxzIjogWwoJCQkxLjYsCgkJCSJBIgoJCV0KCX0sCgl7CgkJImVuZ2luZSI6ICJHZWNrbyIsCgkJImJyb3dzZXIiOiAiTW96aWxsYSAxLjciLAoJCSJwbGF0Zm9ybSI6ICJXaW4gOTgrIC8gT1NYLjErIiwKCQkiZGV0YWlscyI6IFsKCQkJMS43LAoJCQkiQSIKCQldCgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIk1vemlsbGEgMS44IiwKCQkicGxhdGZvcm0iOiAiV2luIDk4KyAvIE9TWC4xKyIsCgkJImRldGFpbHMiOiBbCgkJCTEuOCwKCQkJIkEiCgkJXQoJfSwKCXsKCQkiZW5naW5lIjogIkdlY2tvIiwKCQkiYnJvd3NlciI6ICJTZWFtb25rZXkgMS4xIiwKCQkicGxhdGZvcm0iOiAiV2luIDk4KyAvIE9TWC4yKyIsCgkJImRldGFpbHMiOiBbCgkJCSIxLjgiLAoJCQkiQSIKCQldCgl9LAoJewoJCSJlbmdpbmUiOiAiR2Vja28iLAoJCSJicm93c2VyIjogIkVwaXBoYW55IDIuMjAiLAoJCSJwbGF0Zm9ybSI6ICJHbm9tZSIsCgkJImRldGFpbHMiOiBbCgkJCSIxLjgiLAoJCQkiQSIKCQldCgl9LAoJewoJCSJlbmdpbmUiOiAiV2Via2l0IiwKCQkiYnJvd3NlciI6ICJTYWZhcmkgMS4yIiwKCQkicGxhdGZvcm0iOiAiT1NYLjMiLAoJCSJkZXRhaWxzIjogWwoJCQkiMTI1LjUiLAoJCQkiQSIKCQldCgl9LAoJewoJCSJlbmdpbmUiOiAiV2Via2l0IiwKCQkiYnJvd3NlciI6ICJTYWZhcmkgMS4zIiwKCQkicGxhdGZvcm0iOiAiT1NYLjMiLAoJCSJkZXRhaWxzIjogWwoJCQkiMzEyLjgiLAoJCQkiQSIKCQldCgl9LAoJewoJCSJlbmdpbmUiOiAiV2Via2l0IiwKCQkiYnJvd3NlciI6ICJTYWZhcmkgMi4wIiwKCQkicGxhdGZvcm0iOiAiT1NYLjQrIiwKCQkiZGV0YWlscyI6IFsKCQkJIjQxOS4zIiwKCQkJIkEiCgkJXQoJfSwKCXsKCQkiZW5naW5lIjogIldlYmtpdCIsCgkJImJyb3dzZXIiOiAiU2FmYXJpIDMuMCIsCgkJInBsYXRmb3JtIjogIk9TWC40KyIsCgkJImRldGFpbHMiOiBbCgkJCSI1MjIuMSIsCgkJCSJBIgoJCV0KCX0sCgl7CgkJImVuZ2luZSI6ICJXZWJraXQiLAoJCSJicm93c2VyIjogIk9tbmlXZWIgNS41IiwKCQkicGxhdGZvcm0iOiAiT1NYLjQrIiwKCQkiZGV0YWlscyI6IFsKCQkJIjQyMCIsCgkJCSJBIgoJCV0KCX0sCgl7CgkJImVuZ2luZSI6ICJXZWJraXQiLAoJCSJicm93c2VyIjogImlQb2QgVG91Y2ggLyBpUGhvbmUiLAoJCSJwbGF0Zm9ybSI6ICJpUG9kIiwKCQkiZGV0YWlscyI6IFsKCQkJIjQyMC4xIiwKCQkJIkEiCgkJXQoJfSwKCXsKCQkiZW5naW5lIjogIldlYmtpdCIsCgkJImJyb3dzZXIiOiAiUzYwIiwKCQkicGxhdGZvcm0iOiAiUzYwIiwKCQkiZGV0YWlscyI6IFsKCQkJIjQxMyIsCgkJCSJBIgoJCV0KCX0sCgl7CgkJImVuZ2luZSI6ICJQcmVzdG8iLAoJCSJicm93c2VyIjogIk9wZXJhIDcuMCIsCgkJInBsYXRmb3JtIjogIldpbiA5NSsgLyBPU1guMSsiLAoJCSJkZXRhaWxzIjogWwoJCQkiLSIsCgkJCSJBIgoJCV0KCX0sCgl7CgkJImVuZ2luZSI6ICJQcmVzdG8iLAoJCSJicm93c2VyIjogIk9wZXJhIDcuNSIsCgkJInBsYXRmb3JtIjogIldpbiA5NSsgLyBPU1guMisiLAoJCSJkZXRhaWxzIjogWwoJCQkiLSIsCgkJCSJBIgoJCV0KCX0sCgl7CgkJImVuZ2luZSI6ICJQcmVzdG8iLAoJCSJicm93c2VyIjogIk9wZXJhIDguMCIsCgkJInBsYXRmb3JtIjogIldpbiA5NSsgLyBPU1guMisiLAoJCSJkZXRhaWxzIjogWwoJCQkiLSIsCgkJCSJBIgoJCV0KCX0sCgl7CgkJImVuZ2luZSI6ICJQcmVzdG8iLAoJCSJicm93c2VyIjogIk9wZXJhIDguNSIsCgkJInBsYXRmb3JtIjogIldpbiA5NSsgLyBPU1guMisiLAoJCSJkZXRhaWxzIjogWwoJCQkiLSIsCgkJCSJBIgoJCV0KCX0sCgl7CgkJImVuZ2luZSI6ICJQcmVzdG8iLAoJCSJicm93c2VyIjogIk9wZXJhIDkuMCIsCgkJInBsYXRmb3JtIjogIldpbiA5NSsgLyBPU1guMysiLAoJCSJkZXRhaWxzIjogWwoJCQkiLSIsCgkJCSJBIgoJCV0KCX0sCgl7CgkJImVuZ2luZSI6ICJQcmVzdG8iLAoJCSJicm93c2VyIjogIk9wZXJhIDkuMiIsCgkJInBsYXRmb3JtIjogIldpbiA4OCsgLyBPU1guMysiLAoJCSJkZXRhaWxzIjogWwoJCQkiLSIsCgkJCSJBIgoJCV0KCX0sCgl7CgkJImVuZ2luZSI6ICJQcmVzdG8iLAoJCSJicm93c2VyIjogIk9wZXJhIDkuNSIsCgkJInBsYXRmb3JtIjogIldpbiA4OCsgLyBPU1guMysiLAoJCSJkZXRhaWxzIjogWwoJCQkiLSIsCgkJCSJBIgoJCV0KCX0sCgl7CgkJImVuZ2luZSI6ICJQcmVzdG8iLAoJCSJicm93c2VyIjogIk9wZXJhIGZvciBXaWkiLAoJCSJwbGF0Zm9ybSI6ICJXaWkiLAoJCSJkZXRhaWxzIjogWwoJCQkiLSIsCgkJCSJBIgoJCV0KCX0sCgl7CgkJImVuZ2luZSI6ICJQcmVzdG8iLAoJCSJicm93c2VyIjogIk5va2lhIE44MDAiLAoJCSJwbGF0Zm9ybSI6ICJOODAwIiwKCQkiZGV0YWlscyI6IFsKCQkJIi0iLAoJCQkiQSIKCQldCgl9LAoJewoJCSJlbmdpbmUiOiAiUHJlc3RvIiwKCQkiYnJvd3NlciI6ICJOaW50ZW5kbyBEUyBicm93c2VyIiwKCQkicGxhdGZvcm0iOiAiTmludGVuZG8gRFMiLAoJCSJkZXRhaWxzIjogWwoJCQkiOC41IiwKCQkJIkMvQTxzdXA+MTwvc3VwPiIKCQldCgl9LAoJewoJCSJlbmdpbmUiOiAiS0hUTUwiLAoJCSJicm93c2VyIjogIktvbnF1cmVyb3IgMy4xIiwKCQkicGxhdGZvcm0iOiAiS0RFIDMuMSIsCgkJImRldGFpbHMiOiBbCgkJCSIzLjEiLAoJCQkiQyIKCQldCgl9LAoJewoJCSJlbmdpbmUiOiAiS0hUTUwiLAoJCSJicm93c2VyIjogIktvbnF1cmVyb3IgMy4zIiwKCQkicGxhdGZvcm0iOiAiS0RFIDMuMyIsCgkJImRldGFpbHMiOiBbCgkJCSIzLjMiLAoJCQkiQSIKCQldCgl9LAoJewoJCSJlbmdpbmUiOiAiS0hUTUwiLAoJCSJicm93c2VyIjogIktvbnF1cmVyb3IgMy41IiwKCQkicGxhdGZvcm0iOiAiS0RFIDMuNSIsCgkJImRldGFpbHMiOiBbCgkJCSIzLjUiLAoJCQkiQSIKCQldCgl9LAoJewoJCSJlbmdpbmUiOiAiVGFzbWFuIiwKCQkiYnJvd3NlciI6ICJJbnRlcm5ldCBFeHBsb3JlciA0LjUiLAoJCSJwbGF0Zm9ybSI6ICJNYWMgT1MgOC05IiwKCQkiZGV0YWlscyI6IFsKCQkJIi0iLAoJCQkiWCIKCQldCgl9LAoJewoJCSJlbmdpbmUiOiAiVGFzbWFuIiwKCQkiYnJvd3NlciI6ICJJbnRlcm5ldCBFeHBsb3JlciA1LjEiLAoJCSJwbGF0Zm9ybSI6ICJNYWMgT1MgNy42LTkiLAoJCSJkZXRhaWxzIjogWwoJCQkiMSIsCgkJCSJDIgoJCV0KCX0sCgl7CgkJImVuZ2luZSI6ICJUYXNtYW4iLAoJCSJicm93c2VyIjogIkludGVybmV0IEV4cGxvcmVyIDUuMiIsCgkJInBsYXRmb3JtIjogIk1hYyBPUyA4LVgiLAoJCSJkZXRhaWxzIjogWwoJCQkiMSIsCgkJCSJDIgoJCV0KCX0sCgl7CgkJImVuZ2luZSI6ICJNaXNjIiwKCQkiYnJvd3NlciI6ICJOZXRGcm9udCAzLjEiLAoJCSJwbGF0Zm9ybSI6ICJFbWJlZGRlZCBkZXZpY2VzIiwKCQkiZGV0YWlscyI6IFsKCQkJIi0iLAoJCQkiQyIKCQldCgl9LAoJewoJCSJlbmdpbmUiOiAiTWlzYyIsCgkJImJyb3dzZXIiOiAiTmV0RnJvbnQgMy40IiwKCQkicGxhdGZvcm0iOiAiRW1iZWRkZWQgZGV2aWNlcyIsCgkJImRldGFpbHMiOiBbCgkJCSItIiwKCQkJIkEiCgkJXQoJfSwKCXsKCQkiZW5naW5lIjogIk1pc2MiLAoJCSJicm93c2VyIjogIkRpbGxvIDAuOCIsCgkJInBsYXRmb3JtIjogIkVtYmVkZGVkIGRldmljZXMiLAoJCSJkZXRhaWxzIjogWwoJCQkiLSIsCgkJCSJYIgoJCV0KCX0sCgl7CgkJImVuZ2luZSI6ICJNaXNjIiwKCQkiYnJvd3NlciI6ICJMaW5rcyIsCgkJInBsYXRmb3JtIjogIlRleHQgb25seSIsCgkJImRldGFpbHMiOiBbCgkJCSItIiwKCQkJIlgiCgkJXQoJfSwKCXsKCQkiZW5naW5lIjogIk1pc2MiLAoJCSJicm93c2VyIjogIkx5bngiLAoJCSJwbGF0Zm9ybSI6ICJUZXh0IG9ubHkiLAoJCSJkZXRhaWxzIjogWwoJCQkiLSIsCgkJCSJYIgoJCV0KCX0sCgl7CgkJImVuZ2luZSI6ICJNaXNjIiwKCQkiYnJvd3NlciI6ICJJRSBNb2JpbGUiLAoJCSJwbGF0Zm9ybSI6ICJXaW5kb3dzIE1vYmlsZSA2IiwKCQkiZGV0YWlscyI6IFsKCQkJIi0iLAoJCQkiQyIKCQldCgl9LAoJewoJCSJlbmdpbmUiOiAiTWlzYyIsCgkJImJyb3dzZXIiOiAiUFNQIGJyb3dzZXIiLAoJCSJwbGF0Zm9ybSI6ICJQU1AiLAoJCSJkZXRhaWxzIjogWwoJCQkiLSIsCgkJCSJDIgoJCV0KCX0sCgl7CgkJImVuZ2luZSI6ICJPdGhlciBicm93c2VycyIsCgkJImJyb3dzZXIiOiAiQWxsIG90aGVycyIsCgkJInBsYXRmb3JtIjogIi0iLAoJCSJkZXRhaWxzIjogWwoJCQkiLSIsCgkJCSJVIgoJCV0KCX0KXQoJfTsKCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCBvSW5pdCApOwoJCgkvKiBCYXNpYyBjaGVja3MgKi8KCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJMZW5ndGggY2hhbmdpbmcgZGl2IGV4aXN0cyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9sZW5ndGgnKSAhPSBudWxsOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJGaWx0ZXJpbmcgZGl2IGV4aXN0cyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9maWx0ZXInKSAhPSBudWxsOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJbmZvcm1hdGlvbiBkaXYgZXhpc3RzIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKSAhPSBudWxsOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJQYWdpbmF0aW9uIGRpdiBleGlzdHMiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcGFnaW5hdGUnKSAhPSBudWxsOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJQcm9jZXNzaW5nIGRpdiBpcyBvZmYgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wcm9jZXNzaW5nJykgPT0gbnVsbDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIjEwIHJvd3Mgc2hvd24gb24gdGhlIGZpcnN0IHBhZ2UiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMTA7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkluaXRpYWwgc29ydCBvY2N1cmVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDApJykuaHRtbCgpID09ICJHZWNrbyI7IH0KCSk7CgkKCS8qIE5lZWQgdG8gdXNlIHRoZSBXYWl0VGVzdCBmb3Igc29ydGluZyBkdWUgdG8gdGhlIHNldFRpbWVvdXQgZGF0YXRhYmxlcyB1c2VzICovCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIChmaXJzdCBjbGljaykgb24gc2Vjb25kIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIChzZWNvbmQgY2xpY2spIG9uIHNlY29uZCBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJTZWFtb25rZXkgMS4xIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyAodGhpcmQgY2xpY2spIG9uIHNlY29uZCBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyAoZmlyc3QgY2xpY2spIG9uIG51bWVyaWMgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiLSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgKHNlY29uZCBjbGljaykgb24gbnVtZXJpYyBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMyknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDMpJykuaHRtbCgpID09ICI1MjIuMSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgbXVsdGktY29sdW1uIChmaXJzdCBjbGljaykiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDApJykuY2xpY2soKTsKCQkJb0Rpc3BhY2hlci5jbGljayggJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKVswXSwgeyAnc2hpZnQnOiB0cnVlIH0gKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHZhciBiID0gCgkJCSQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDApJykuaHRtbCgpID09ICJHZWNrbyIgJiYgCgkJCSQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJDYW1pbm8gMS4wIjsgcmV0dXJuIGI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgbXVsdGktY29sdW1uIC0gc29ydGluZyBzZWNvbmQgY29sdW1uIG9ubHkiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCS8qIEJhc2ljIHBhZ2luZyAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiUGFnaW5nIHRvIHNlY29uZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJJRSBNb2JpbGUiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJQYWdpbmcgdG8gZmlyc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJBdHRlbXB0aW5nIHRvIHBhZ2UgYmFjayBiZXlvbmQgdGhlIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJLyogQ2hhbmdpbmcgbGVuZ3RoICovCglvVGVzdC5mblRlc3QoIAoJCSJDaGFuZ2luZyB0YWJsZSBsZW5ndGggdG8gMjUgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzI1JykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMjU7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoYW5naW5nIHRhYmxlIGxlbmd0aCB0byA1MCByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7ICQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnNTAnKS5jaGFuZ2UoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSA1MDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2hhbmdpbmcgdGFibGUgbGVuZ3RoIHRvIDEwMCByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7ICQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnMTAwJykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gNTc7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoYW5naW5nIHRhYmxlIGxlbmd0aCB0byAxMCByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7ICQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnMTAnKS5jaGFuZ2UoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSAxMDsgfQoJKTsKCQoJLyoKCSAqIEluZm9ybWF0aW9uIGVsZW1lbnQKCSAqLwoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiBvbiB6ZXJvIGNvbmZpZyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gb24gc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAxMSB0byAyMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiBvbiB0aGlyZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMjEgdG8gMzAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gb24gbGFzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDUxIHRvIDU3IG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIGJhY2sgb24gZmlyc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIDI1IHJlY29yZHMiLAoJCWZ1bmN0aW9uICgpIHsgJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcyNScpLmNoYW5nZSgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMSB0byAyNSBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIDI1IHJlY29yZHMgLSBzZWNvbmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDI2IHRvIDUwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggMTAwIHJlY29yZHMgLSBmaXJzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcxMDAnKS5jaGFuZ2UoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMSB0byA1NyBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiBiYWNrIHRvIDEwIHJlY29yZHMiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzEwJykuY2hhbmdlKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbiciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXaW4iKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbicgc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMTEgdG8gMjAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbicgbGFzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDMxIHRvIDMxIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyICdXaW4nIGJhY2sgdG8gZmlyc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciAnV2luJyBzZWNvbmQgcGFnZSAtIHNlY29uZCB0aW1lIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMTEgdG8gMjAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgaW5jcmVhc2VkIHRvICdXaW4gOTgnIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2luIDk4Iikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDkgb2YgOSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciBkZWNyZWFzZWQgdG8gJ1dpbiciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXaW4iKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbicgc2Vjb25kIHBhZ2UgLSB0aGlyZCB0aW1lIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMTEgdG8gMjAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgcmVtb3ZlZCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIiIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJCgkvKgoJICogRmlsdGVyaW5nCgkgKi8KCW9UZXN0LmZuV2FpdFRlc3QoCgkJIkZpbHRlciAnVycgLSByb3dzIiwKCQlmdW5jdGlvbiAoKSB7IAoJCQkvKiBSZXNldCB0aGUgdGFibGUgc3VjaCB0aGF0IHRoZSBvbGQgc29ydGluZyBkb2Vzbid0IG1lc3MgdGhpbmdzIHVwICovCgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggb0luaXQgKTsKCQkJJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiR2Vja28iOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnVycgLSBpbmZvIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgNDIgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaSciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXaSIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAzMiBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbiciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXaW4iKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaW4nIC0gc29ydGluZyBjb2x1bW4gMSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFPTCBicm93c2VyIChBT0wgZGVza3RvcCkiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luJyAtIHNvcnRpbmcgY29sdW1uIDEgaW5mbyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luJyAtIHNvcnRpbmcgY29sdW1uIDEgcmV2ZXJzZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIlNlYW1vbmtleSAxLjEiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luIFhQJyAtIG1haW50YWluZyByZXZlcnNlIHNvcnRpbmcgY29sIDEiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJXaW4gWFAiKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICJJbnRlcm5ldCBFeHBsb3JlciA3IjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbiBYUCcgLSBzb3J0aW5nIGNvbCAzIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiNCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaW4gWFAnIC0gc29ydGluZyBjb2wgMyAtIHJldmVyc2VkIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiNyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaW4nIC0gc29ydGluZyBjb2wgMyAtIHJldmVyc2VkIGluZm8iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byA2IG9mIDYgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdub3RoaW5naGVyZSciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJub3RoaW5naGVyZSIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gCgkJCSJObyBtYXRjaGluZyByZWNvcmRzIGZvdW5kIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ25vdGhpbmdoZXJlJyAtIGluZm8iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMCB0byAwIG9mIDAgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyIGJhY2sgdG8gYmxhbmsgYW5kIDFzdCBjb2x1bW4gc29ydGluZyIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIiIpLmtleXVwKCk7CgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDApJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiUHJlZml4aW5nIGEgZmlsdGVyIGVudHJ5IiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2luIikua2V5dXAoKTsKCQkJJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJHZWNrb1dpbiIpLmtleXVwKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAwIHRvIDAgb2YgMCBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJQcmVmaXhpbmcgYSBmaWx0ZXIgZW50cnkgd2l0aCBzcGFjZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIkdlY2tvIFdpbiIpLmtleXVwKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDE3IGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCgkKCQoJCgkKCQoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/aaSorting.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFhU29ydGluZyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJEZWZhdWx0IHNvcnRpbmcgaXMgc2luZ2xlIGNvbHVtbiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiBvU2V0dGluZ3MuYWFTb3J0aW5nLmxlbmd0aCA9PSAxICYmIHR5cGVvZiBvU2V0dGluZ3MuYWFTb3J0aW5nWzBdID09ICdvYmplY3QnOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJEZWZhdWx0IHNvcnRpbmcgaXMgZmlyc3QgY29sdW1uIGFzYyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiBvU2V0dGluZ3MuYWFTb3J0aW5nWzBdLmxlbmd0aCA9PSAzICYmIG9TZXR0aW5ncy5hYVNvcnRpbmdbMF1bMF0gPT0gMCAmJgoJCQkJb1NldHRpbmdzLmFhU29ydGluZ1swXVsxXSA9PSAnYXNjJzsKCQl9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU29ydGluZyBpcyBhcHBsaWVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDApJykuaHRtbCgpID09ICJHZWNrbyI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkN1c3RvbSBzb3J0aW5nIG9uIHNpbmdsZSBzdHJpbmcgY29sdW1uIGFzYyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJhYVNvcnRpbmciOiBbWycxJywnYXNjJ11dCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ3VzdG9tIHNvcnRpbmcgb24gc2luZ2xlIHN0cmluZyBjb2x1bW4gZGVzYyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJhYVNvcnRpbmciOiBbWycxJywnZGVzYyddXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiU2VhbW9ua2V5IDEuMSI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkN1c3RvbSBzb3J0aW5nIG9uIHNpbmdsZSBpbnQgY29sdW1uIGFzYyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJhYVNvcnRpbmciOiBbWycxJywnYXNjJ11dCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDMpJykuaHRtbCgpID09ICItIjsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ3VzdG9tIHNvcnRpbmcgb24gc2luZ2xlIGludCBjb2x1bW4gZGVzYyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJhYVNvcnRpbmciOiBbWycxJywnZGVzYyddXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiU2VhbW9ua2V5IDEuMSI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk11bHRpLWNvbHVtbiBzb3J0aW5nICgyIGNvbHVtbikgLSBzdHJpbmcgYXNjIC8gc3RyaW5nIGFzYyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJhYVNvcnRpbmciOiBbWycwJywnYXNjJ10sIFsnMScsJ2FzYyddXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQ2FtaW5vIDEuMCI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJNdWx0aS1jb2x1bW4gc29ydGluZyAoMiBjb2x1bW4pIC0gc3RyaW5nIGFzYyAvIHN0cmluZyBkZXNjIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJImFhU29ydGluZyI6IFtbJzAnLCdhc2MnXSwgWycxJywnZGVzYyddXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiU2VhbW9ua2V5IDEuMSI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJNdWx0aS1jb2x1bW4gc29ydGluZyAoMiBjb2x1bW4pIC0gc3RyaW5nIGRlc2MgLyBzdHJpbmcgYXNjIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJImFhU29ydGluZyI6IFtbJzAnLCdkZXNjJ10sIFsnMScsJ2FzYyddXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiaVBvZCBUb3VjaCAvIGlQaG9uZSI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJNdWx0aS1jb2x1bW4gc29ydGluZyAoMiBjb2x1bW4pIC0gc3RyaW5nIGRlc2MgLyBzdHJpbmcgZGVzYyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJhYVNvcnRpbmciOiBbWycwJywnZGVzYyddLCBbJzEnLCdkZXNjJ11dCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJTYWZhcmkgMy4wIjsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTXVsdGktY29sdW1uIHNvcnRpbmcgKDIgY29sdW1uKSAtIHN0cmluZyBhc2MgLyBpbnQgYXNjIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJImFhU29ydGluZyI6IFtbJzAnLCdhc2MnXSwgWyczJywnYXNjJ11dCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDMpJykuaHRtbCgpID09ICIxIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk11bHRpLWNvbHVtbiBzb3J0aW5nICgyIGNvbHVtbikgLSBzdHJpbmcgYXNjIC8gaW50IGRlc2MiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJEZWZlclJlbmRlciI6IHRydWUsCgkJCQkiYWFTb3J0aW5nIjogW1snMCcsJ2FzYyddLCBbJzMnLCdkZXNjJ11dCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDMpJykuaHRtbCgpID09ICIxLjkiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTXVsdGktY29sdW1uIHNvcnRpbmcgKDIgY29sdW1uKSAtIHN0cmluZyBkZXNjIC8gaW50IGFzYyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJhYVNvcnRpbmciOiBbWycwJywnZGVzYyddLCBbJzMnLCdhc2MnXV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIjEyNS41IjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk11bHRpLWNvbHVtbiBzb3J0aW5nICgyIGNvbHVtbikgLSBzdHJpbmcgZGVzYyAvIGludCBkZXNjIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJImFhU29ydGluZyI6IFtbJzAnLCdkZXNjJ10sIFsnMycsJ2Rlc2MnXV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIjUyMi4xIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk11bHRpLWNvbHVtbiBzb3J0aW5nICgzIGNvbHVtbikgLSBzdHJpbmcgYXNjIC8gaW50IGFzYyAvIHN0cmluZyBhc2MiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJEZWZlclJlbmRlciI6IHRydWUsCgkJCQkiYWFTb3J0aW5nIjogW1snMCcsJ2FzYyddLCBbJzMnLCdhc2MnXSwgWycxJywnYXNjJ11dCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDcpIHRkOmVxKDEpJykuaHRtbCgpID09ICJGaXJlZm94IDEuMCI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/aaSortingFixed.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFhU29ydGluZ0ZpeGVkIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCSJiRGVmZXJSZW5kZXIiOiB0cnVlCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk5vIGZpeGVkIHNvcnRpbmcgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiBvU2V0dGluZ3MuYWFTb3J0aW5nRml4ZWQgPT0gbnVsbDsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJGaXhlZCBzb3J0aW5nIG9uIGZpcnN0IGNvbHVtbiAoc3RyaW5nL2FzYykgd2l0aCB1c2VyIHNvcnRpbmcgb24gc2Vjb25kIGNvbHVtbiAoc3RyaW5nL2FzYykiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJEZWZlclJlbmRlciI6IHRydWUsCgkJCQkiYWFTb3J0aW5nRml4ZWQiOiBbWycwJywnYXNjJ11dLAoJCQkJImZuSW5pdENvbXBsZXRlIjogZnVuY3Rpb24gKCkgewoJCQkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsKCQkJCX0KCQkJfSApOwoJCQkvLwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkNhbWlubyAxLjAiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRml4ZWQgc29ydGluZyBvbiBmaXJzdCBjb2x1bW4gKHN0cmluZy9hc2MpIHdpdGggdXNlciBzb3J0aW5nIG9uIHNlY29uZCBjb2x1bW4gKHN0cmluZy9kZXNjKSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiU2VhbW9ua2V5IDEuMSI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJGaXhlZCBzb3J0aW5nIG9uIGZvdXJ0aCBjb2x1bW4gKGludC9hc2MpIHdpdGggdXNlciBzb3J0aW5nIG9uIHNlY29uZCBjb2x1bW4gKHN0cmluZy9hc2MpIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJImFhU29ydGluZ0ZpeGVkIjogW1snMycsJ2FzYyddXQoJCQl9ICk7CgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkZpeGVkIHNvcnRpbmcgb24gZm91cnRoIGNvbHVtbiAoaW50L2FzYykgd2l0aCB1c2VyIHNvcnRpbmcgb24gc2Vjb25kIGNvbHVtbiAoc3RyaW5nL2Rlc2MpIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJQU1AgYnJvd3NlciI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.bSearchable.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5iU2VhY2hhYmxlIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCSJiRGVmZXJSZW5kZXIiOiB0cnVlCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNvbHVtbnMgYXJlIHNlYXJjaGFibGUgYnkgZGVmYXVsdCIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUuZm5GaWx0ZXIoIkNhbWlubyIpOyB9LAoJCWZ1bmN0aW9uICgpIHsKCQkJaWYgKCAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpWzBdICkKCQkJCXJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKS5tYXRjaCgvQ2FtaW5vLyk7CgkJCWVsc2UKCQkJCXJldHVybiBudWxsOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJEaXNhYmxpbmcgc29ydGluZyBvbiBhIGNvbHVtbiByZW1vdmVzIGl0IGZyb20gdGhlIGdsb2JhbCBmaWx0ZXIiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJEZWZlclJlbmRlciI6IHRydWUsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCW51bGwsCgkJCQkJeyAiYlNlYXJjaGFibGUiOiBmYWxzZSB9LAoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQkJb1RhYmxlLmZuRmlsdGVyKCJDYW1pbm8iKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09ICJObyBtYXRjaGluZyByZWNvcmRzIGZvdW5kIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkRpc2FibGVkIG9uIG9uZSBjb2x1bW4gaGFzIG5vIGVmZmVjdCBvbiBvdGhlciBjb2x1bW5zIiwKCQlmdW5jdGlvbiAoKSB7IG9UYWJsZS5mbkZpbHRlcigiV2Via2l0Iik7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gIldlYmtpdCI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJEaXNhYmxlIGZpbHRlcmluZyBvbiBtdWx0aXBsZSBjb2x1bW5zIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQl7ICJiU2VhcmNoYWJsZSI6IGZhbHNlIH0sCgkJCQkJeyAiYlNlYXJjaGFibGUiOiBmYWxzZSB9LAoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQkJb1RhYmxlLmZuRmlsdGVyKCJXZWJraXQiKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09ICJObyBtYXRjaGluZyByZWNvcmRzIGZvdW5kIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkZpbHRlciBvbiBzZWNvbmQgZGlzYWJsZWQgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7IG9UYWJsZS5mbkZpbHRlcigiQ2FtaW5vIik7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gIk5vIG1hdGNoaW5nIHJlY29yZHMgZm91bmQiOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.bSortable.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5iU29ydGFibGUiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJImJEZWZlclJlbmRlciI6IHRydWUKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQWxsIGNvbHVtbnMgYXJlIHNvcnRhYmxlIGJ5IGRlZmF1bHQiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNhbiBkaXNhYmxlIHNvcnRpbmcgZnJvbSBvbmUgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQludWxsLAoJCQkJCXsgImJTb3J0YWJsZSI6IGZhbHNlIH0sCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSAhPSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJEaXNhYmxlZCBjb2x1bW4gaGFzIG5vIHNvcnRpbmcgY2xhc3MiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5oYXNDbGFzcygic29ydGluZ19hc2MiKSA9PSBmYWxzZTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk90aGVyIGNvbHVtbnMgY2FuIHN0aWxsIHNvcnQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoNCknKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSg0KScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSg0KScpLmh0bWwoKSA9PSAiWCI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJEaXNhYmxlIHNvcnRpbmcgb24gbXVsdGlwbGUgY29sdW1ucyAtIG5vIHNvcnRpbmcgY2xhc3NlcyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJbnVsbCwKCQkJCQl7ICJiU29ydGFibGUiOiBmYWxzZSB9LAoJCQkJCW51bGwsCgkJCQkJeyAiYlNvcnRhYmxlIjogZmFsc2UgfSwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuaGFzQ2xhc3MoInNvcnRpbmciKSB8fAoJCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMyknKS5oYXNDbGFzcygic29ydGluZyIpCgkJCXJldHVybiBiUmV0dXJuID09IGZhbHNlOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTb3J0aW5nIG9uIGRpc2FibGVkIGNvbHVtbiAxIGhhcyBubyBlZmZlY3QiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgIT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU29ydGluZyBvbiBkaXNhYmxlZCBjb2x1bW4gMiBoYXMgbm8gZWZmZWN0IiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDMpJykuaHRtbCgpICE9ICItIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNlY29uZCBzb3J0IG9uIGRpc2FibGVkIGNvbHVtbiAyIGhhcyBubyBlZmZlY3QiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMyknKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMyknKS5odG1sKCkgIT0gIi0iOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRXZlbiB3aXRoIG11bHRpcGxlIGRpc2FibGVkIHNvcnRpbmcgY29sdW1ucyBvdGhlciBjb2x1bW5zIGNhbiBzdGlsbCBzb3J0IiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDQpJykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoNCknKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoNCknKS5odG1sKCkgPT0gIlgiOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.bUseRendered.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5iVXNlUmVuZGVyZWQiICk7CgovKiBiVXNlUmVuZGVyZWQgaXMgdXNlZCB0byBhbHRlciBzb3J0aW5nIGRhdGEsIGlmIGZhbHNlIHRoZW4gdGhlIG9yaWdpbmFsIGRhdGEgaXMgdXNlZCBmb3IKICogc29ydGluZyByYXRoZXIgdGhhbiB0aGUgcmVuZGVyZWQgZGF0YQogKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG1UbXAgPSAwOwoJCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCSJhb0NvbHVtbnMiOiBbCgkJCW51bGwsCgkJCXsgImZuUmVuZGVyIjogZnVuY3Rpb24gKGEpIHsKCQkJCWlmICggYS5pRGF0YVJvdyA9PSAwICkgewoJCQkJCW1UbXArKzsKCQkJCQlyZXR1cm4gImFhYSI7CgkJCQl9IGVsc2UKCQkJCQlyZXR1cm4gYS5hRGF0YVthLmlEYXRhQ29sdW1uXTsKCQkJfSB9LAoJCQludWxsLAoJCQludWxsLAoJCQludWxsCgkJXQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJEZWZhdWx0IGZvciBiVXNlUmVuZGVyZWQgaXMgdHJ1ZSAtIHJlbmRlcmVkIGRhdGEgaXMgdXNlZCBmb3Igc29ydGluZyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gJ2FhYSc7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJXaGVuIGJVc2VSZW5kZXJlZCBpcyBmYWxzZSwgb3JpZ2luYWwgZGF0YSBpcyB1c2VkIGZvciBzb3J0aW5nIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW1UbXAgPSAwOwoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJbnVsbCwKCQkJCQl7IAoJCQkJCQkiYlVzZVJlbmRlcmVkIjogZmFsc2UsCgkJCQkJCSJmblJlbmRlciI6IGZ1bmN0aW9uIChhKSB7CgkJCQkJCQlpZiAoIGEuaURhdGFSb3cgPT0gMCApIHsKCQkJCQkJCQltVG1wKys7CgkJCQkJCQkJcmV0dXJuICJhYWEiOwoJCQkJCQkJfSBlbHNlIHsKCQkJCQkJCQlyZXR1cm4gYS5hRGF0YVthLmlEYXRhQ29sdW1uXTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCX0sCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAnQWxsIG90aGVycyc7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJImJVc2VSZW5kZXJlZCBzZXQgdG8gZmFsc2Ugb24gb25lIGNvbHVtbnMgYW5kIHRydWUgKGRlZmF1bHQpIG9uIHR3byBvdGhlcnMiLAoJCWZ1bmN0aW9uICgpIHsKCQkJbVRtcCA9IDA7CgkJCXZhciBtVG1wMiA9IDA7CgkJCXZhciBtVG1wMyA9IDA7CgkJCQoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJewoJCQkJCQkiZm5SZW5kZXIiOiBmdW5jdGlvbiAoYSkgewoJCQkJCQkJaWYgKCBhLmlEYXRhUm93ID09IDAgKSB7CgkJCQkJCQkJbVRtcCsrOwoJCQkJCQkJCXJldHVybiAiYWFhMSI7CgkJCQkJCQl9IGVsc2UgewoJCQkJCQkJCXJldHVybiBhLmFEYXRhW2EuaURhdGFDb2x1bW5dOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfSwKCQkJCQl7IAoJCQkJCQkiYlVzZVJlbmRlcmVkIjogZmFsc2UsCgkJCQkJCSJmblJlbmRlciI6IGZ1bmN0aW9uIChhKSB7CgkJCQkJCQlpZiAoIGEuaURhdGFSb3cgPT0gMCApIHsKCQkJCQkJCQltVG1wMisrOwoJCQkJCQkJCXJldHVybiAiYWFhMiI7CgkJCQkJCQl9IGVsc2UgewoJCQkJCQkJCXJldHVybiBhLmFEYXRhW2EuaURhdGFDb2x1bW5dOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfSwKCQkJCQl7CgkJCQkJCSJmblJlbmRlciI6IGZ1bmN0aW9uIChhKSB7CgkJCQkJCQlpZiAoIGEuaURhdGFSb3cgPT0gMCApIHsKCQkJCQkJCQltVG1wMysrOwoJCQkJCQkJCXJldHVybiAienp6MyI7CgkJCQkJCQl9IGVsc2UgewoJCQkJCQkJCXJldHVybiBhLmFEYXRhW2EuaURhdGFDb2x1bW5dOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfSwKCQkJCQludWxsLAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gJ2FhYTEnOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTXVsdGktY29sdW1uIHJlbmRlcmluZyAtIDJuZCBjb2x1bW4gc29ydGluZyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gJ0FsbCBvdGhlcnMnOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTXVsdGktY29sdW1uIHJlbmRlcmluZyAtIDNyZCBjb2x1bW4gc29ydGluZyIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgyKScpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDIpJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDIpJykuaHRtbCgpID09ICd6enozJzsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk11bHRpLWNvbHVtbiByZW5kZXJpbmcgLSA0dGggY29sdW1uIHNvcnRpbmciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMyknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDMpJykuaHRtbCgpID09ICctJzsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk11bHRpLWNvbHVtbiByZW5kZXJpbmcgLSA1dGggY29sdW1uIHNvcnRpbmciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoNCknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDQpJykuaHRtbCgpID09ICdBJzsgfQoJKTsKCQoJCgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.bVisible.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5iVmlzaWJsZSIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJBbGwgY29sdW1ucyBhcmUgdmlzaWJsZSBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkJykubGVuZ3RoID09IDU7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDYW4gaGlkZSBvbmUgY29sdW1uIGFuZCBpdCByZW1vdmVzIHRkIGNvbHVtbiBmcm9tIERPTSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJbnVsbCwKCQkJCQl7ICJiVmlzaWJsZSI6IGZhbHNlIH0sCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQnKS5sZW5ndGggPT0gNDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNhbiBoaWRlIG9uZSBjb2x1bW4gYW5kIGl0IHJlbW92ZXMgdGhlYWQgdGggY29sdW1uIGZyb20gRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDApIHRoJykubGVuZ3RoID09IDQ7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJUaGUgY29ycmVjdCB0aGVhZCBjb2x1bW4gaGFzIGJlZW4gaGlkZGVuIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGpxTm9kZXMgPSAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSgwKSB0aCcpOwoJCQl2YXIgYlJldHVybiA9IAoJCQkJanFOb2Rlc1swXS5pbm5lckhUTUwgPT0gIlJlbmRlcmluZyBlbmdpbmUiICYmCgkJCQlqcU5vZGVzWzFdLmlubmVySFRNTCA9PSAiUGxhdGZvcm0ocykiICYmCgkJCQlqcU5vZGVzWzJdLmlubmVySFRNTCA9PSAiRW5naW5lIHZlcnNpb24iICYmCgkJCQlqcU5vZGVzWzNdLmlubmVySFRNTCA9PSAiQ1NTIGdyYWRlIjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlRoZSBjb3JyZWN0IHRib2R5IGNvbHVtbiBoYXMgYmVlbiBoaWRkZW4iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb0Rpc3BhY2hlci5jbGljayggJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKVswXSwgeyAnc2hpZnQnOiB0cnVlIH0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGpxTm9kZXMgPSAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZCcpOwoJCQl2YXIgYlJldHVybiA9IAoJCQkJanFOb2Rlc1swXS5pbm5lckhUTUwgPT0gIkdlY2tvIiAmJgoJCQkJanFOb2Rlc1sxXS5pbm5lckhUTUwgPT0gIkdub21lIiAmJgoJCQkJanFOb2Rlc1syXS5pbm5lckhUTUwgPT0gIjEuOCIgJiYKCQkJCWpxTm9kZXNbM10uaW5uZXJIVE1MID09ICJBIjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ2FuIGhpZGUgbXVsdGlwbGUgY29sdW1ucyBhbmQgaXQgcmVtb3ZlcyB0ZCBjb2x1bW4gZnJvbSBET00iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJEZWZlclJlbmRlciI6IHRydWUsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCW51bGwsCgkJCQkJeyAiYlZpc2libGUiOiBmYWxzZSB9LAoJCQkJCXsgImJWaXNpYmxlIjogZmFsc2UgfSwKCQkJCQludWxsLAoJCQkJCXsgImJWaXNpYmxlIjogZmFsc2UgfQoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZCcpLmxlbmd0aCA9PSAyOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTXVsdGlwbGUgaGlkZSAtIHJlbW92ZXMgdGhlYWQgdGggY29sdW1uIGZyb20gRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDApIHRoJykubGVuZ3RoID09IDI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJNdWx0aXBsZSBoaWRlIC0gdGhlIGNvcnJlY3QgdGhlYWQgY29sdW1ucyBoYXZlIGJlZW4gaGlkZGVuIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGpxTm9kZXMgPSAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSgwKSB0aCcpOwoJCQl2YXIgYlJldHVybiA9IAoJCQkJanFOb2Rlc1swXS5pbm5lckhUTUwgPT0gIlJlbmRlcmluZyBlbmdpbmUiICYmCgkJCQlqcU5vZGVzWzFdLmlubmVySFRNTCA9PSAiRW5naW5lIHZlcnNpb24iCgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJNdWx0aXBsZSBoaWRlIC0gdGhlIGNvcnJlY3QgdGJvZHkgY29sdW1ucyBoYXZlIGJlZW4gaGlkZGVuIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9EaXNwYWNoZXIuY2xpY2soICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJylbMF0sIHsgJ3NoaWZ0JzogdHJ1ZSB9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBqcU5vZGVzID0gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQnKTsKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCWpxTm9kZXNbMF0uaW5uZXJIVE1MID09ICJHZWNrbyIgJiYKCQkJCWpxTm9kZXNbMV0uaW5uZXJIVE1MID09ICIxIgoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.fnRender.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5mblJlbmRlciIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG1UbXAgPSAwOwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkiYW9Db2x1bW5zIjogWwoJCQludWxsLAoJCQl7ICJmblJlbmRlciI6IGZ1bmN0aW9uIChhKSB7CgkJCQltVG1wKys7CgkJCQlyZXR1cm4gYS5hRGF0YVthLmlEYXRhQ29sdW1uXTsKCQkJfSB9LAoJCQludWxsLAoJCQludWxsLAoJCQludWxsCgkJXQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTaW5nbGUgY29sdW1uIC0gZm5SZW5kZXIgaXMgY2FsbGVkIG9uY2UgZm9yIGVhY2ggcm93IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1UbXAgPT0gNTc7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDb25maXJtIHRoYXQgZm5SZW5kZXIgcGFzc2VzIHR3byBhcmd1bWVudHMgd2l0aCBmb3VyIHBhcmFtZXRlcnMiLAoJCWZ1bmN0aW9uICgpIHsKCQkJbVRtcCA9IHRydWU7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQludWxsLAoJCQkJCXsgImZuUmVuZGVyIjogZnVuY3Rpb24gKGEpIHsKCQkJCQkJaWYgKCBhcmd1bWVudHMubGVuZ3RoICE9IDIgfHwgdHlwZW9mIGEuaURhdGFSb3c9PSd1bmRlZmluZWQnIHx8CgkJCQkJCSAJdHlwZW9mIGEuaURhdGFDb2x1bW49PSd1bmRlZmluZWQnIHx8IHR5cGVvZiBhLmFEYXRhPT0ndW5kZWZpbmVkJyB8fAoJCQkJCQkgCXR5cGVvZiBhLm1EYXRhUHJvcD09J3VuZGVmaW5lZCcgKQoJCQkJCQl7CgkJCQkJCQltVG1wID0gZmFsc2U7CgkJCQkJCX0KCQkJCQkJcmV0dXJuIGEuYURhdGFbYS5pRGF0YUNvbHVtbl07CgkJCQkJfSB9LAoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1UbXA7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJmblJlbmRlciBpRGF0YUNvbHVtbiBpcyByb3cgbnVtYmVyIiwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBpQ291bnQgPSAwOwoJCQltVG1wID0gdHJ1ZTsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJEZWZlclJlbmRlciI6IHRydWUsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCW51bGwsCgkJCQkJeyAiZm5SZW5kZXIiOiBmdW5jdGlvbiAoYSkgewoJCQkJCQlpZiAoIGlDb3VudCAhPSBhLmlEYXRhUm93ICkKCQkJCQkJewoJCQkJCQkJbVRtcCA9IGZhbHNlOwoJCQkJCQl9CgkJCQkJCWlDb3VudCsrOwoJCQkJCQlyZXR1cm4gYS5hRGF0YVthLmlEYXRhQ29sdW1uXTsKCQkJCQl9IH0sCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVRtcDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJImZuUmVuZGVyIGlEYXRhQ29sdW1uIGlzIHRoZSBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsKCQkJbVRtcCA9IHRydWU7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQludWxsLAoJCQkJCXsgImZuUmVuZGVyIjogZnVuY3Rpb24gKGEpIHsKCQkJCQkJaWYgKCBhLmlEYXRhQ29sdW1uICE9IDEgKQoJCQkJCQl7CgkJCQkJCQltVG1wID0gZmFsc2U7CgkJCQkJCX0KCQkJCQkJcmV0dXJuIGEuYURhdGFbYS5pRGF0YUNvbHVtbl07CgkJCQkJfSB9LAoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1UbXA7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJmblJlbmRlciBhRGF0YSBpcyBkYXRhIGFycmF5IG9mIGNvcnJlY3Qgc2l6ZSIsCgkJZnVuY3Rpb24gKCkgewoJCQltVG1wID0gdHJ1ZTsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJEZWZlclJlbmRlciI6IHRydWUsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCW51bGwsCgkJCQkJeyAiZm5SZW5kZXIiOiBmdW5jdGlvbiAoYSkgewoJCQkJCQlpZiAoIGEuYURhdGEubGVuZ3RoICE9IDUgKQoJCQkJCQl7CgkJCQkJCQltVG1wID0gZmFsc2U7CgkJCQkJCX0KCQkJCQkJcmV0dXJuIGEuYURhdGFbYS5pRGF0YUNvbHVtbl07CgkJCQkJfSB9LAoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1UbXA7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJQYXNzZWQgYmFjayBkYXRhIGlzIHB1dCBpbnRvIHRoZSBET00iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJEZWZlclJlbmRlciI6IHRydWUsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCW51bGwsCgkJCQkJeyAiZm5SZW5kZXIiOiBmdW5jdGlvbiAoYSkgewoJCQkJCQlyZXR1cm4gJ3VuaXR0ZXN0JzsKCQkJCQl9IH0sCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gJ3VuaXR0ZXN0JzsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlBhc3NlZCBiYWNrIGRhdGEgaXMgcHV0IGludG8gdGhlIERPTSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCXsgImZuUmVuZGVyIjogZnVuY3Rpb24gKGEpIHsKCQkJCQkJcmV0dXJuICd1bml0dGVzdDEnOwoJCQkJCX0gfSwKCQkJCQl7ICJmblJlbmRlciI6IGZ1bmN0aW9uIChhKSB7CgkJCQkJCXJldHVybiAndW5pdHRlc3QyJzsKCQkJCQl9IH0sCgkJCQkJbnVsbAoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBiUmV0dXJuID0gCgkJCQkkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgyKScpLmh0bWwoKSA9PSAndW5pdHRlc3QxJyAmJgoJCQkJJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gJ3VuaXR0ZXN0Mic7CgkJCXJldHVybiBiUmV0dXJuOyB9CgkpOwoJCgkKCQoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.iDataSort.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5pRGF0YVNvcnQiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogU2hvdWxkIGtub3cgdGhhdCBzb3J0aW5nIGFscmVhZHkgd29ya3MgYnkgZGVmYXVsdCBmcm9tIG90aGVyIHRlc3RzLCBzbyB3ZSBjYW4ganVtcAoJICogcmlnaHQgaW4gaGVyZQoJICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCSJhb0NvbHVtbnMiOiBbCgkJCW51bGwsCgkJCXsgImlEYXRhU29ydCI6IDQgfSwKCQkJbnVsbCwKCQkJbnVsbCwKCQkJbnVsbAoJCV0KCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU29ydGluZyBvbiBmaXJzdCBjb2x1bW4gaXMgdW5lZmZlY3RlZCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAnR2Vja28nOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU29ydGluZyBvbiBzZWNvbmQgY29sdW1uIGlzIHRoZSBvcmRlciBvZiB0aGUgZmlmdGgiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDQpJykuaHRtbCgpID09ICdBJzsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlJlc2VydmUgc29ydGluZyBvbiBzZWNvbmQgY29sdW1uIHVzZXMgZmlmdGggY29sdW1uIGFzIHdlbGwiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDQpJykuaHRtbCgpID09ICdYJzsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgb24gNXRoIGNvbHVtbiByZXRhaW5zIGl0J3Mgb3duIHNvcnRpbmciLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoNCknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDQpJykuaHRtbCgpID09ICdBJzsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiVXNlIDJuZCBjb2wgZm9yIHNvcnRpbmcgNXRoIGNvbCBhbmQgdmlhLXZlcnNhIC0gbm8gZWZmZWN0IG9uIGZpcnN0IGNvbCBzb3J0aW5nIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW1UbXAgPSAwOwoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJbnVsbCwKCQkJCQl7ICJpRGF0YVNvcnQiOiA0IH0sCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCXsgImlEYXRhU29ydCI6IDEgfQoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAnR2Vja28nOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiMm5kIGNvbCBzb3J0aW5nIHVzZXMgZmlmdGggY29sIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSg0KScpLmh0bWwoKSA9PSAnQSc7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSIybmQgY29sIHNvcnRpbmcgdXNlcyBmaWZ0aCBjb2wgLSByZXZlcnNlZCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoNCknKS5odG1sKCkgPT0gJ1gnOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiNXRoIGNvbCBzb3J0aW5nIHVzZXMgMm5kIGNvbCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSg0KScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gJ0FsbCBvdGhlcnMnOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiNXRoIGNvbCBzb3J0aW5nIHVzZXMgMm5kIGNvbCAtIHJldmVyc2VkIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDQpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAnU2VhbW9ua2V5IDEuMSc7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.sClass.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5zQ2xhc3MiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJImJEZWZlclJlbmRlciI6IHRydWUKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQnkgZGVmYXVsdCB0aGUgdGVzdCBjbGFzcyBoYXNuJ3QgYmVlbiBhcHBsaWVkIHRvIHRoZSBjb2x1bW4gKHNhbml0eSEpIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDIpJykuaGFzQ2xhc3MoJ3VuaXR0ZXN0JykgPT0gZmFsc2U7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJBZGQgYSBjbGFzcyB0byBhIHNpbmdsZSBjb2x1bW4gLSBmaXJzdCByb3ciLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJEZWZlclJlbmRlciI6IHRydWUsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQl7ICJzQ2xhc3MiOiAndW5pdHRlc3QnIH0sCgkJCQkJbnVsbCwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDEpIHRkOmVxKDIpJykuaGFzQ2xhc3MoJ3VuaXR0ZXN0Jyk7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJBZGQgYSBjbGFzcyB0byBhIHNpbmdsZSBjb2x1bW4gLSB0aGlyZCByb3ciLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMykgdGQ6ZXEoMiknKS5oYXNDbGFzcygndW5pdHRlc3QnKTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkFkZCBhIGNsYXNzIHRvIGEgc2luZ2xlIGNvbHVtbiAtIGxhc3Qgcm93IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDkpIHRkOmVxKDIpJykuaGFzQ2xhc3MoJ3VuaXR0ZXN0Jyk7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJBZGQgYSBjbGFzcyB0byBhIHNpbmdsZSBjb2x1bW4gLSBoYXMgbm90IGFwcGxpZWQgdG8gb3RoZXIgY29sdW1ucyAtIDFzdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgzKSB0ZDplcSgwKScpLmhhc0NsYXNzKCd1bml0dGVzdCcpID09IGZhbHNlOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQWRkIGEgY2xhc3MgdG8gYSBzaW5nbGUgY29sdW1uIC0gaGFzIG5vdCBhcHBsaWVkIHRvIG90aGVyIGNvbHVtbnMgLSA1dGgiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMykgdGQ6ZXEoNCknKS5oYXNDbGFzcygndW5pdHRlc3QnKSA9PSBmYWxzZTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkFkZCBhIGNsYXNzIHRvIGEgc2luZ2xlIGNvbHVtbiAtIHNldmVudGggcm93IC0gc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoNikgdGQ6ZXEoMiknKS5oYXNDbGFzcygndW5pdHRlc3QnKTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkFkZCBhIGNsYXNzIHRvIGEgc2luZ2xlIGNvbHVtbiAtIGhhcyBub3QgYXBwbGllZCB0byBoZWFkZXIiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMykgdGg6ZXEoNCknKS5oYXNDbGFzcygndW5pdHRlc3QnKSA9PSBmYWxzZTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkFkZCBhIGNsYXNzIHRvIGEgc2luZ2xlIGNvbHVtbiAtIGhhcyBub3QgYXBwbGllZCB0byBmb290ZXIiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMykgdGg6ZXEoNCknKS5oYXNDbGFzcygndW5pdHRlc3QnKSA9PSBmYWxzZTsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ2xhc3MgZGVmaW5lZCBmb3IgbXVsdGlwbGUgY29sdW1ucyAtIGZpcnN0IHJvdyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJhb0NvbHVtbnMiOiBbCgkJCQkJeyAic0NsYXNzIjogJ3VuaXR0ZXN0MicgfSwKCQkJCQludWxsLAoJCQkJCW51bGwsCgkJCQkJeyAic0NsYXNzIjogJ3VuaXR0ZXN0MScgfSwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCSQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDMpIHRkOmVxKDApJykuaGFzQ2xhc3MoJ3VuaXR0ZXN0MicpICYmCgkJCQkkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSg4KSB0ZDplcSgzKScpLmhhc0NsYXNzKCd1bml0dGVzdDEnKTsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNsYXNzIGRlZmluZWQgZm9yIG11bHRpcGxlIGNvbHVtbnMgLSBoYXMgbm90IGFwcGxpZWQgdG8gb3RoZXIgY29sdW1ucyAtIDV0aCAxIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDQpJykuaGFzQ2xhc3MoJ3VuaXR0ZXN0MScpID09IGZhbHNlOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ2xhc3MgZGVmaW5lZCBmb3IgbXVsdGlwbGUgY29sdW1ucyAtIGhhcyBub3QgYXBwbGllZCB0byBvdGhlciBjb2x1bW5zIC0gNXRoIDIiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoNikgdGQ6ZXEoNCknKS5oYXNDbGFzcygndW5pdHRlc3QyJykgPT0gZmFsc2U7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.sName.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5zTmFtZSIgKTsKCi8qIFRoaXMgaGFzIG5vIGVmZmVjdCBhdCBhbGwgaW4gRE9NIG1ldGhvZHMgLSBzbyB3ZSBqdXN0IGNoZWNrIHRoYXQgaXQgaGFzIGFwcGxpZWQgdGhlIG5hbWUgKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkiYW9Db2x1bW5zIjogWwoJCQludWxsLAoJCQludWxsLAoJCQludWxsLAoJCQl7ICJzTmFtZSI6ICd1bml0IHRlc3QnIH0sCgkJCW51bGwKCQldCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk5hbWVzIGFyZSBzdG9yZWQgaW4gdGhlIGNvbHVtbnMgb2JqZWN0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5hb0NvbHVtbnNbM10uc05hbWUgPT0idW5pdCB0ZXN0IjsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.sTitle.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5zVGl0bGUiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJImJEZWZlclJlbmRlciI6IHRydWUKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiSWYgbm90IGdpdmVuLCB0aGVuIHRoZSBjb2x1bW5zIHRpdGxlcyBhcmUgZW1wdHkiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIganFOb2RlcyA9ICQoJyNleGFtcGxlIHRoZWFkIHRyOmVxKDApIHRoJyk7CgkJCXZhciBiUmV0dXJuID0gCgkJCQlqcU5vZGVzWzBdLmlubmVySFRNTCA9PSAiUmVuZGVyaW5nIGVuZ2luZSIgJiYKCQkJCWpxTm9kZXNbMV0uaW5uZXJIVE1MID09ICJCcm93c2VyIiAmJgoJCQkJanFOb2Rlc1syXS5pbm5lckhUTUwgPT0gIlBsYXRmb3JtKHMpIiAmJgoJCQkJanFOb2Rlc1szXS5pbm5lckhUTUwgPT0gIkVuZ2luZSB2ZXJzaW9uIiAmJgoJCQkJanFOb2Rlc1s0XS5pbm5lckhUTUwgPT0gIkNTUyBncmFkZSI7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDYW4gc2V0IGEgc2luZ2xlIGNvbHVtbiB0aXRsZSAtIGFuZCBvdGhlcnMgYXJlIHJlYWQgZnJvbSBET00iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJEZWZlclJlbmRlciI6IHRydWUsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCW51bGwsCgkJCQkJeyAic1RpdGxlIjogJ3VuaXQgdGVzdCcgfSwKCQkJCQludWxsLAoJCQkJCW51bGwsCgkJCQkJbnVsbAoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBqcU5vZGVzID0gJCgnI2V4YW1wbGUgdGhlYWQgdHI6ZXEoMCkgdGgnKTsKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCWpxTm9kZXNbMF0uaW5uZXJIVE1MID09ICJSZW5kZXJpbmcgZW5naW5lIiAmJgoJCQkJanFOb2Rlc1sxXS5pbm5lckhUTUwgPT0gInVuaXQgdGVzdCIgJiYKCQkJCWpxTm9kZXNbMl0uaW5uZXJIVE1MID09ICJQbGF0Zm9ybShzKSIgJiYKCQkJCWpxTm9kZXNbM10uaW5uZXJIVE1MID09ICJFbmdpbmUgdmVyc2lvbiIgJiYKCQkJCWpxTm9kZXNbNF0uaW5uZXJIVE1MID09ICJDU1MgZ3JhZGUiOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ2FuIHNldCBtdWx0aXBsZSBjb2x1bW4gdGl0bGVzIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQludWxsLAoJCQkJCXsgInNUaXRsZSI6ICd1bml0IHRlc3QgMScgfSwKCQkJCQludWxsLAoJCQkJCW51bGwsCgkJCQkJeyAic1RpdGxlIjogJ3VuaXQgdGVzdCAyJyB9CgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGpxTm9kZXMgPSAkKCcjZXhhbXBsZSB0aGVhZCB0cjplcSgwKSB0aCcpOwoJCQl2YXIgYlJldHVybiA9IAoJCQkJanFOb2Rlc1swXS5pbm5lckhUTUwgPT0gIlJlbmRlcmluZyBlbmdpbmUiICYmCgkJCQlqcU5vZGVzWzFdLmlubmVySFRNTCA9PSAidW5pdCB0ZXN0IDEiICYmCgkJCQlqcU5vZGVzWzJdLmlubmVySFRNTCA9PSAiUGxhdGZvcm0ocykiICYmCgkJCQlqcU5vZGVzWzNdLmlubmVySFRNTCA9PSAiRW5naW5lIHZlcnNpb24iICYmCgkJCQlqcU5vZGVzWzRdLmlubmVySFRNTCA9PSAidW5pdCB0ZXN0IDIiOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/aoColumns.sWidth.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvQ29sdW1ucy5zV2lkdGgiICk7CgovKiBOT1RFIC0gd2UgbmVlZCB0byBkaXNhYmxlIHRoZSBhdXRvIHdpZHRoIGZvciB0aGUgbWFqb3JpdHkgb2YgdGhlc2UgdGVzdCBpbiBvcmRlciB0byBwcmVmb3JtIAogKiB0aGVzZSB0ZXN0cyBhcyB0aGUgYXV0byB3aWR0aCB3aWxsIGNvbnZlcnQgdGhlIHdpZHRoIHRvIGEgcHggdmFsdWUuIFdlIGNhbiBkbyAnbm9uLWV4YWN0JyB0ZXN0cwogKiB3aXRoIGF1dG8gd2lkdGggZW5hYmxlZCBob3dldmVyIHRvIGVuc3VyZSBpdCBzY2FsZXMgY29sdW1ucyBhcyByZXF1aXJlZAogKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkiYkF1dG9XaWR0aCI6IGZhbHNlLAoJCSJhb0NvbHVtbnMiOiBbCgkJCW51bGwsCgkJCXsgInNXaWR0aCI6ICc0MCUnIH0sCgkJCW51bGwsCgkJCW51bGwsCgkJCW51bGwKCQldCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIldpdGggYXV0byB3aWR0aCBkaXNhYmxlZCB0aGUgd2lkdGggZm9yIG9uZSBjb2x1bW4gaXMgYXBwbGVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJylbMF0uc3R5bGUud2lkdGggPT0gIjQwJSI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJXaXRoIGF1dG8gd2lkdGggZGlzYWJsZWQgdGhlIHdpZHRoIGZvciBvbmUgY29sdW1uIGlzIGFwcGxlZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJiQXV0b1dpZHRoIjogZmFsc2UsCgkJCQkiYW9Db2x1bW5zIjogWwoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQl7ICJzV2lkdGgiOiAnMjAlJyB9LAoJCQkJCXsgInNXaWR0aCI6ICczMCUnIH0sCgkJCQkJbnVsbAoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBiUmV0dXJuID0KCQkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDIpJylbMF0uc3R5bGUud2lkdGggPT0gIjIwJSIgJiYKCQkJCSQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJylbMF0uc3R5bGUud2lkdGggPT0gIjMwJSI7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIldpdGggYXV0byB3aWR0aCwgaXQgd2lsbCBtYWtlIHRoZSBzbWFsbGVzdCBjb2x1bW4gdGhlIGxhcmdlc3Qgd2l0aCBwZXJjZW50YWdlIHdpZHRoIGdpdmVuIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJImFvQ29sdW1ucyI6IFsKCQkJCQludWxsLAoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQl7ICJzV2lkdGgiOiAnNDAlJyB9LAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYW5UaHMgPSAkKCcjZXhhbXBsZSB0aGVhZCB0aCcpOwoJCQl2YXIgYTAgPSBhblRoc1swXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGExID0gYW5UaHNbMV0ub2Zmc2V0V2lkdGg7CgkJCXZhciBhMiA9IGFuVGhzWzJdLm9mZnNldFdpZHRoOwoJCQl2YXIgYTMgPSBhblRoc1szXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGE0ID0gYW5UaHNbNF0ub2Zmc2V0V2lkdGg7CgkJCQoJCQlpZiAoIGEzPmEwICYmIGEzPmExICYmIGEzPmEyICYmIGEzPmE0ICkKCQkJCXJldHVybiB0cnVlOwoJCQllbHNlCgkJCQlyZXR1cm4gZmFsc2U7CgkJfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/aoSearchCols.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFvU2VhcmNoQ29scyIgKTsKCi8qIFdlIGNvdWxkIGJlIGhlcmUgZm9yZXZlciB0ZXN0aW5nIHRoaXMgb25lLCBzbyB3ZSB0ZXN0IGEgbGltaXRlZCBzdWJzZXQgb24gYSBjb3VwbGUgb2YgY29sdW1zICovCgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJImJEZWZlclJlbmRlciI6IHRydWUKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRGVmYXVsdCBzaG91bGQgYmUgdG8gaGF2ZSBhIGVtcHR5IGNvbHVtcyBhcnJheSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBiUmV0dXJuID0gCgkJCQlvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzWzBdLnNTZWFyY2ggPT0gMCAmJiAhb1NldHRpbmdzLmFvUHJlU2VhcmNoQ29sc1swXS5iUmVnZXggJiYKCQkJCW9TZXR0aW5ncy5hb1ByZVNlYXJjaENvbHNbMV0uc1NlYXJjaCA9PSAwICYmICFvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzWzFdLmJSZWdleCAmJgoJCQkJb1NldHRpbmdzLmFvUHJlU2VhcmNoQ29sc1syXS5zU2VhcmNoID09IDAgJiYgIW9TZXR0aW5ncy5hb1ByZVNlYXJjaENvbHNbMl0uYlJlZ2V4ICYmCgkJCQlvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzWzNdLnNTZWFyY2ggPT0gMCAmJiAhb1NldHRpbmdzLmFvUHJlU2VhcmNoQ29sc1szXS5iUmVnZXggJiYKCQkJCW9TZXR0aW5ncy5hb1ByZVNlYXJjaENvbHNbNF0uc1NlYXJjaCA9PSAwICYmICFvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzWzRdLmJSZWdleDsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU2VhcmNoIG9uIGEgc2luZ2xlIGNvbHVtbiAtIG5vIHJlZ2V4IHN0YXRlbWVudCBnaXZlbiIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJhb1NlYXJjaENvbHMiOiBbCgkJCQkJbnVsbCwKCQkJCQl7ICJzU2VhcmNoIjogIk1vemlsbGEiIH0sCgkJCQkJbnVsbCwKCQkJCQl7ICJzU2VhcmNoIjogIjEiIH0sCgkJCQkJbnVsbAoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9pbmZvJykuaHRtbCgpID09ICJTaG93aW5nIDEgdG8gOSBvZiA5IGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU2VhcmNoIG9uIHR3byBjb2x1bW5zIC0gbm8gcmVnZXggc3RhdGVtZW50IGdpdmVuIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJImFvU2VhcmNoQ29scyI6IFsKCQkJCQludWxsLAoJCQkJCXsgInNTZWFyY2giOiAiTW96aWxsYSIgfSwKCQkJCQludWxsLAoJCQkJCXsgInNTZWFyY2giOiAiMS41IiB9LAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIjEuNSI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTZWFyY2ggb24gc2luZ2xlIGNvbHVtbiAtIGVzY2FwZSByZWdleCBmYWxzZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJhb1NlYXJjaENvbHMiOiBbCgkJCQkJeyAic1NlYXJjaCI6ICIuKk1MIiwgImJFc2NhcGVSZWdleCI6IGZhbHNlIH0sCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCW51bGwsCgkJCQkJbnVsbAoJCQkJXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9pbmZvJykuaHRtbCgpID09ICJTaG93aW5nIDEgdG8gMyBvZiAzIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU2VhcmNoIG9uIHR3byBjb2x1bW5zIC0gZXNjYXBlIHJlZ2V4IGZhbHNlIG9uIGZpcnN0LCB0cnVlIG9uIHNlY29uZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJhb1NlYXJjaENvbHMiOiBbCgkJCQkJeyAic1NlYXJjaCI6ICIuKk1MIiwgImJFc2NhcGVSZWdleCI6IGZhbHNlIH0sCgkJCQkJeyAic1NlYXJjaCI6ICIzLjMiLCAiYkVzY2FwZVJlZ2V4IjogdHJ1ZSB9LAoJCQkJCW51bGwsCgkJCQkJbnVsbCwKCQkJCQludWxsCgkJCQldCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICJLb25xdXJlcm9yIDMuMyI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTZWFyY2ggb24gdHdvIGNvbHVtbnMgKG5vIHJlY29yZHMpIC0gZXNjYXBlIHJlZ2V4IGZhbHNlIG9uIGZpcnN0LCB0cnVlIG9uIHNlY29uZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJhb1NlYXJjaENvbHMiOiBbCgkJCQkJeyAic1NlYXJjaCI6ICIuKk1MIiwgImJFc2NhcGVSZWdleCI6IGZhbHNlIH0sCgkJCQkJeyAic1NlYXJjaCI6ICJBbGxhbiIsICJiRXNjYXBlUmVnZXgiOiB0cnVlIH0sCgkJCQkJbnVsbCwKCQkJCQludWxsLAoJCQkJCW51bGwKCQkJCV0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gIk5vIG1hdGNoaW5nIHJlY29yZHMgZm91bmQiOyB9CgkpOwoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/asStripClasses.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImFzU3RyaXBlQ2xhc3NlcyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCSJiRGVmZXJSZW5kZXIiOiB0cnVlCgl9ICk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJEZWZhdWx0IHJvdyBzdHJpcGluZyBpcyBhcHBsaWVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApJykuaGFzQ2xhc3MoJ29kZCcpICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKScpLmhhc0NsYXNzKCdldmVuJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDIpJykuaGFzQ2xhc3MoJ29kZCcpICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgzKScpLmhhc0NsYXNzKCdldmVuJyk7CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlJvdyBzdHJpcGluZyBvbiB0aGUgc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCknKS5oYXNDbGFzcygnb2RkJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDEpJykuaGFzQ2xhc3MoJ2V2ZW4nKSAmJgoJCQkgICAgICAgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMiknKS5oYXNDbGFzcygnb2RkJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDMpJykuaGFzQ2xhc3MoJ2V2ZW4nKTsKCQl9CgkpOwoJCgkvKiBObyBzdHJpcGluZyAqLwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk5vIHJvdyBzdHJpcGluZyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJhc1N0cmlwZUNsYXNzZXMiOiBbXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCWlmICggdHlwZW9mICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDEpJylbMF0gPT0gJ3VuZGVmaW5lZCcgKQoJCQl7CgkJCQkvKiBVc2UgdGhlICd3YWl0IGZvcicgdG8gYWxsb3cgdGhpcyB0byBiZWNvbWUgdHJ1ZSAqLwoJCQkJcmV0dXJuIGZhbHNlOwoJCQl9CgkJCXJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKScpWzBdLmNsYXNzTmFtZSA9PSAiIiAmJgoJCQkgICAgICAgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMSknKVswXS5jbGFzc05hbWUgPT0gIiIgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDIpJylbMF0uY2xhc3NOYW1lID09ICIiICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgzKScpWzBdLmNsYXNzTmFtZSA9PSAiIjsKCQl9CgkpOwoJCgkvKiBDdXN0b20gc3RyaXBpbmcgKi8KCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDdXN0b20gc3RyaXBpbmcgWzJdIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJImFzU3RyaXBlQ2xhc3NlcyI6IFsgJ3Rlc3QxJywgJ3Rlc3QyJyBdCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApJykuaGFzQ2xhc3MoJ3Rlc3QxJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDEpJykuaGFzQ2xhc3MoJ3Rlc3QyJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDIpJykuaGFzQ2xhc3MoJ3Rlc3QxJykgJiYKCQkJICAgICAgICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDMpJykuaGFzQ2xhc3MoJ3Rlc3QyJyk7CgkJfQoJKTsKCQoJCgkvKiBsb25nIGFycmF5IG9mIHN0cmlwaW5nICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ3VzdG9tIHN0cmlwaW5nIFs0XSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJhc1N0cmlwZUNsYXNzZXMiOiBbICd0ZXN0MScsICd0ZXN0MicsICd0ZXN0MycsICd0ZXN0NCcgXQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKScpLmhhc0NsYXNzKCd0ZXN0MScpICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKScpLmhhc0NsYXNzKCd0ZXN0MicpICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgyKScpLmhhc0NsYXNzKCd0ZXN0MycpICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgzKScpLmhhc0NsYXNzKCd0ZXN0NCcpOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDdXN0b20gc3RyaXBpbmcgaXMgcmVzdGFydGVkIG9uIHNlY29uZCBwYWdlIFsyXSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKScpLmhhc0NsYXNzKCd0ZXN0MScpICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKScpLmhhc0NsYXNzKCd0ZXN0MicpICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgyKScpLmhhc0NsYXNzKCd0ZXN0MycpICYmCgkJCSAgICAgICAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgzKScpLmhhc0NsYXNzKCd0ZXN0NCcpOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/bAutoWidth.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJBdXRvV2lkdGgiICk7CgovKiBJdCdzIGFjdHVhbGx5IGEgbGl0dGxlIHRyaWNreSB0byB0ZXN0IHRoaXMuIFdlIGNhbid0IHRlc3QgYWJzb2x1dGUgbnVtYmVycyBiZWNhdXNlCiAqIGRpZmZlcmVudCBicm93c2VycyBhbmQgZGlmZmVyZW50IHBsYXRmb3JtcyB3aWxsIHJlbmRlciB0aGUgd2lkdGggb2YgdGhlIGNvbHVtbnMgc2xpZ2h0bHkKICogZGlmZmVyZW50bHkuIEhvd2V2ZXIsIHdlIGNlcnRhaW5seSBjYW4gdGVzdCB0aGUgcHJpbmNpcGxlIG9mIHdoYXQgc2hvdWxkIGhhcHBlbiAoY29sdW1uIAogKiB3aWR0aCBkb2Vzbid0IGNoYW5nZSBvdmVyIHBhZ2VzKQogKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJBdXRvIHdpZHRoIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0ZlYXR1cmVzLmJBdXRvV2lkdGg7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJGaXJzdCBjb2x1bW4gaGFzIGEgd2lkdGggYXNzaWduZWQgdG8gaXQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMCknKS5hdHRyKCdzdHlsZScpLm1hdGNoKC93aWR0aC9pKTsgfQoJKTsKCQoJLyoKCVRoaXMgd291bGQgc2VlbSBsaWtlIGEgYmV0dGVyIHRlc3QgLSBidXQgdGhlcmUgYXBwZWFyIHRvIGJlIGRpZmZpY3VsdGllcyB3aXRoIHRhYmxlcwoJd2hpY2ggYXJlIGJpZ2dlciAoY2FsY3VsYXRlZCkgdGhhbiB0aGVyZSBpcyBhY3R1YWxseSByb29tIGZvci4gSSBzdXNwZWN0IHRoaXMgaXMgYWN0dWFsbHkKCWEgYnVnIGluIGRhdGF0YWJsZXMKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDaGVjayBjb2x1bW4gd2lkdGhzIG9uIGZpcnN0IHBhZ2UgbWF0Y2ggc2Vjb25kIHBhZ2UiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYW5UaHMgPSAkKCcjZXhhbXBsZSB0aGVhZCB0aCcpOwoJCQl2YXIgYTAgPSBhblRoc1swXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGExID0gYW5UaHNbMV0ub2Zmc2V0V2lkdGg7CgkJCXZhciBhMiA9IGFuVGhzWzJdLm9mZnNldFdpZHRoOwoJCQl2YXIgYTMgPSBhblRoc1szXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGE0ID0gYW5UaHNbNF0ub2Zmc2V0V2lkdGg7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCQl2YXIgYjAgPSBhblRoc1swXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGIxID0gYW5UaHNbMV0ub2Zmc2V0V2lkdGg7CgkJCXZhciBiMiA9IGFuVGhzWzJdLm9mZnNldFdpZHRoOwoJCQl2YXIgYjMgPSBhblRoc1szXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGI0ID0gYW5UaHNbNF0ub2Zmc2V0V2lkdGg7CgkJCWNvbnNvbGUubG9nKCBhMCwgYjAsIGExLCBiMSwgYTIsIGIyLCBhMywgYjMgKTsKCQkJaWYgKCBhMD09YjAgJiYgYTE9PWIxICYmIGEyPT1iMiAmJiBhMz09YjMgKQoJCQkJcmV0dXJuIHRydWU7CgkJCWVsc2UKCQkJCXJldHVybiBmYWxzZTsKCQl9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ2hlY2sgY29sdW1uIHdpZHRocyBvbiBzZWNvbmQgcGFnZSBtYXRjaCB0aGlkIHBhZ2UiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYW5UaHMgPSAkKCcjZXhhbXBsZSB0aGVhZCB0aCcpOwoJCQl2YXIgYTAgPSBhblRoc1swXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGExID0gYW5UaHNbMV0ub2Zmc2V0V2lkdGg7CgkJCXZhciBhMiA9IGFuVGhzWzJdLm9mZnNldFdpZHRoOwoJCQl2YXIgYTMgPSBhblRoc1szXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGE0ID0gYW5UaHNbNF0ub2Zmc2V0V2lkdGg7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCQl2YXIgYjAgPSBhblRoc1swXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGIxID0gYW5UaHNbMV0ub2Zmc2V0V2lkdGg7CgkJCXZhciBiMiA9IGFuVGhzWzJdLm9mZnNldFdpZHRoOwoJCQl2YXIgYjMgPSBhblRoc1szXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGI0ID0gYW5UaHNbNF0ub2Zmc2V0V2lkdGg7CgkJCWlmICggYTA9PWIwICYmIGExPT1iMSAmJiBhMj09YjIgJiYgYTM9PWIzICkKCQkJCXJldHVybiB0cnVlOwoJCQllbHNlCgkJCQlyZXR1cm4gZmFsc2U7CgkJfQoJKTsKCSovCgkKCS8qIENoZWNrIGNhbiBkaXNhYmxlICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQXV0byB3aWR0aCBjYW4gYmUgZGlzYWJsZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJEZWZlclJlbmRlciI6IHRydWUsCgkJCQkiYkF1dG9XaWR0aCI6IGZhbHNlCgkJCX0gKTsKCSAJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0ZlYXR1cmVzLmJBdXRvV2lkdGggPT0gZmFsc2U7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJGaXJzdCBjb2x1bW4gZG9lcyBub3QgaGF2ZSBhIHdpZHRoIGFzc2lnbmVkIHRvIGl0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDApJykuYXR0cignc3R5bGUnKSA9PSBudWxsOyB9CgkpOwoJCgkvKgoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNoZWNrIGNvbHVtbiB3aWR0aHMgb24gZmlyc3QgcGFnZSBkbyBub3QgbWF0Y2ggc2Vjb25kIHBhZ2UiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYW5UaHMgPSAkKCcjZXhhbXBsZSB0aGVhZCB0aCcpOwoJCQl2YXIgYTAgPSBhblRoc1swXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGExID0gYW5UaHNbMV0ub2Zmc2V0V2lkdGg7CgkJCXZhciBhMiA9IGFuVGhzWzJdLm9mZnNldFdpZHRoOwoJCQl2YXIgYTMgPSBhblRoc1szXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGE0ID0gYW5UaHNbNF0ub2Zmc2V0V2lkdGg7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCQl2YXIgYjAgPSBhblRoc1swXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGIxID0gYW5UaHNbMV0ub2Zmc2V0V2lkdGg7CgkJCXZhciBiMiA9IGFuVGhzWzJdLm9mZnNldFdpZHRoOwoJCQl2YXIgYjMgPSBhblRoc1szXS5vZmZzZXRXaWR0aDsKCQkJdmFyIGI0ID0gYW5UaHNbNF0ub2Zmc2V0V2lkdGg7CgkJCWlmICggYTA9PWIwICYmIGExPT1iMSAmJiBhMj09YjIgJiYgYTM9PWIzICkKCQkJCXJldHVybiBmYWxzZTsKCQkJZWxzZQoJCQkJcmV0dXJuIHRydWU7CgkJfQoJKTsKCSovCgkKCS8qIEVuYWJsZSBtYWtlcyBubyBkaWZmZXJlbmNlICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQXV0byB3aWR0aCBlbmFibGVkIG92ZXJyaWRlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJImJBdXRvV2lkdGgiOiB0cnVlCgkJCX0gKTsKCSAJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0ZlYXR1cmVzLmJBdXRvV2lkdGg7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/bFilter.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJGaWx0ZXIiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZQoJfSApOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRmlsdGVyaW5nIGRpdiBleGlzdHMgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9maWx0ZXInKSAhPSBudWxsOyB9CgkpOwoJCgkvKiBDaGVjayBjYW4gZGlzYWJsZSAqLwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkZsdGVyaW5nIGNhbiBiZSBkaXNhYmxlZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJiRmlsdGVyIjogZmFsc2UKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfZmlsdGVyJykgPT0gbnVsbDsgfQoJKTsKCQoJLyogRW5hYmxlIG1ha2VzIG5vIGRpZmZlcmVuY2UgKi8KCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJGaWx0ZXJpbmcgZW5hYmxlZCBvdmVycmlkZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJiRmlsdGVyIjogdHJ1ZQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9maWx0ZXInKSAhPSBudWxsOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/bInfo.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJJbmZvIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJImJEZWZlclJlbmRlciI6IHRydWUKCX0gKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkluZm8gZGl2IGV4aXN0cyBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKSAhPSBudWxsOyB9CgkpOwoJCgkvKiBDaGVjayBjYW4gZGlzYWJsZSAqLwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkluZm8gY2FuIGJlIGRpc2FibGVkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJImJJbmZvIjogZmFsc2UKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpID09IG51bGw7IH0KCSk7CgkKCS8qIEVuYWJsZSBtYWtlcyBubyBkaWZmZXJlbmNlICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiSW5mbyBlbmFibGVkIG92ZXJyaWRlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJImJJbmZvIjogdHJ1ZQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykgIT0gbnVsbDsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/bLengthChange.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJMZW5ndGhDaGFuZ2UiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZQoJfSApOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTGVuZ3RoIGRpdiBleGlzdHMgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9sZW5ndGgnKSAhPSBudWxsOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KAoJCSJGb3VyIGRlZmF1bHQgb3B0aW9ucyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0gb3B0aW9uIikubGVuZ3RoID09IDQ7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIkRlZmF1bHQgb3B0aW9ucyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBvcHRzID0gJCgic2VsZWN0W25hbWU9J2V4YW1wbGVfbGVuZ3RoJ10gb3B0aW9uIik7CgkJCXJldHVybiBvcHRzWzBdLmdldEF0dHJpYnV0ZSgndmFsdWUnKSA9PSAxMCAmJiBvcHRzWzFdLmdldEF0dHJpYnV0ZSgndmFsdWUnKSA9PSAyNSAmJgoJCQkJb3B0c1syXS5nZXRBdHRyaWJ1dGUoJ3ZhbHVlJykgPT0gNTAgJiYgb3B0c1szXS5nZXRBdHRyaWJ1dGUoJ3ZhbHVlJykgPT0gMTAwOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIkluZm8gdGFrZXMgbGVuZ3RoIGludG8gYWNjb3VudCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCgkvKiBDaGVjayBjYW4gZGlzYWJsZSAqLwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNoYW5nZSBsZW5ndGggY2FuIGJlIGRpc2FibGVkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJImJMZW5ndGhDaGFuZ2UiOiBmYWxzZQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9sZW5ndGgnKSA9PSBudWxsOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KAoJCSJJbmZvcm1hdGlvbiB0YWtlcyBsZW5ndGggZGlzYWJsZWQgaW50byBhY2NvdW50IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCS8qIEVuYWJsZSBtYWtlcyBubyBkaWZmZXJlbmNlICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTGVuZ3RoIGNoYW5nZSBlbmFibGVkIG92ZXJyaWRlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJImJMZW5ndGhDaGFuZ2UiOiB0cnVlCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2xlbmd0aCcpICE9IG51bGw7IH0KCSk7CgkKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/bPaginate.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJQYWdpbmF0ZSIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCSJiRGVmZXJSZW5kZXIiOiB0cnVlCgl9ICk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJQYWdpYW50aW9uIGRpdiBleGlzdHMgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wYWdpbmF0ZScpICE9IG51bGw7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIkluZm9ybWF0aW9uIGRpdiB0YWtlcyBwYWdpbmcgaW50byBhY2NvdW50IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCS8qIENoZWNrIGNhbiBkaXNhYmxlICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUGFnaWFudGlvbiBjYW4gYmUgZGlzYWJsZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJEZWZlclJlbmRlciI6IHRydWUsCgkJCQkiYlBhZ2luYXRlIjogZmFsc2UKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcGFnaW5hdGUnKSA9PSBudWxsOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KAoJCSJJbmZvcm1hdGlvbiBkaXYgdGFrZXMgcGFnaW5nIGRpc2FibGVkIGludG8gYWNjb3VudCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDU3IG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCgkvKiBFbmFibGUgbWFrZXMgbm8gZGlmZmVyZW5jZSAqLwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlBhZ2lhbnRpb24gZW5hYmxlZCBvdmVycmlkZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJiUGFnaW5hdGUiOiB0cnVlCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3BhZ2luYXRlJykgIT0gbnVsbDsgfQoJKTsKCQoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/bProcessing.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJQcm9jZXNzaW5nIiApOwoKLyogSXQncyBhY3R1YWxseSBhIGJpdCBoYXJkIHRvIHNldCB0aGlzIG9uZSBkdWUgdG8gdGhlIGZhY3QgdGhhdCBpdCB3aWxsIG9ubHkgYmUgc2hvd24KICogd2hlbiBEYXRhVGFibGVzIGlzIGRvaW5nIHNvbWUga2luZCBvZiBwcm9jZXNzaW5nLiBUaGUgc2VydmVyLXNpZGUgcHJvY2Vzc2luZyBpcyBhIGJpdAogKiBiZXR0ZXIgdG8gdGVzdCB0aGlzIHRoYW4gaGVyZSAtIHNvIHdlIGp1c3QgdGhlIGludGVyYWwgZnVuY3Rpb25zIHRvIGVuYWJsZSBpdCBhbmQgY2hlY2sKICogdGhhdCBpdCBpcyBhdmFpbGFibGUKICovCgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJImJEZWZlclJlbmRlciI6IHRydWUKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUHJvY2Vzc2luZyBpcyBvZmYgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0ZlYXR1cmVzLmJQcm9jZXNzaW5nID09IGZhbHNlOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUHJvY2Vzc2luZyBkaXYgaXMgbm90IGluIHRoZSBET00iLAoJCWZ1bmN0aW9uICgpIHsgb1RhYmxlLm9BcGkuX2ZuUHJvY2Vzc2luZ0Rpc3BsYXkoIG9TZXR0aW5ncywgdHJ1ZSApOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3Byb2Nlc3NpbmcnKSA9PSBudWxsOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUHJvY2Vzc2luZyBkaXYgY2Fubm90IGJlIHNob3duIiwKCQlmdW5jdGlvbiAoKSB7IG9UYWJsZS5vQXBpLl9mblByb2Nlc3NpbmdEaXNwbGF5KCBvU2V0dGluZ3MsIHRydWUgKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wcm9jZXNzaW5nJykgPT0gbnVsbDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlByb2Nlc3NpbmcgZGl2IGNhbm5vdCBiZSBoaWRkZW4iLAoJCWZ1bmN0aW9uICgpIHsgb1RhYmxlLm9BcGkuX2ZuUHJvY2Vzc2luZ0Rpc3BsYXkoIG9TZXR0aW5ncywgZmFsc2UgKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wcm9jZXNzaW5nJykgPT0gbnVsbDsgfQoJKTsKCQoJCgkvKiBDaGVjayBjYW4gZGlzYWJsZSAqLwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlByb2Nlc3NpbmcgY2FuIGJlIGVuYWJsZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJEZWZlclJlbmRlciI6IHRydWUsCgkJCQkiYlByb2Nlc3NpbmciOiB0cnVlCgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vRmVhdHVyZXMuYlByb2Nlc3NpbmcgPT0gdHJ1ZTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlByb2Nlc3NpbmcgZGl2IGlzIGluIHRoZSBET00iLAoJCWZ1bmN0aW9uICgpIHsgb1RhYmxlLm9BcGkuX2ZuUHJvY2Vzc2luZ0Rpc3BsYXkoIG9TZXR0aW5ncywgdHJ1ZSApOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3Byb2Nlc3NpbmcnKTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlByb2Nlc3NpbmcgZGl2IGlzIGhpZGRlbiBieSBkZWZhdWx0IiwKCQlmdW5jdGlvbiAoKSB7IG9UYWJsZS5vQXBpLl9mblByb2Nlc3NpbmdEaXNwbGF5KCBvU2V0dGluZ3MsIHRydWUgKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wcm9jZXNzaW5nJykuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUHJvY2Vzc2luZyBkaXYgY2FuIGJlIHNob3duIiwKCQlmdW5jdGlvbiAoKSB7IG9UYWJsZS5vQXBpLl9mblByb2Nlc3NpbmdEaXNwbGF5KCBvU2V0dGluZ3MsIHRydWUgKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wcm9jZXNzaW5nJykuc3R5bGUudmlzaWJpbGl0eSA9ICJ2aXNpYmxlIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlByb2Nlc3NpbmcgZGl2IGNhbiBiZSBoaWRkZW4iLAoJCWZ1bmN0aW9uICgpIHsgb1RhYmxlLm9BcGkuX2ZuUHJvY2Vzc2luZ0Rpc3BsYXkoIG9TZXR0aW5ncywgZmFsc2UgKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wcm9jZXNzaW5nJykuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOyB9CgkpOwoJCgkvKiBFbmFibGUgbWFrZXMgbm8gZGlmZmVyZW5jZSAqLwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlByb2Nlc3NpbmcgZGlzYWJsZWQgb3ZlcnJpZGUiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJEZWZlclJlbmRlciI6IHRydWUsCgkJCQkiYlByb2Nlc3NpbmciOiBmYWxzZQoJCQl9ICk7CgkJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0ZlYXR1cmVzLmJQcm9jZXNzaW5nID09IGZhbHNlOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUHJvY2Vzc2luZyBkaXYgaXMgbm90IGluIHRoZSBET00iLAoJCWZ1bmN0aW9uICgpIHsgb1RhYmxlLm9BcGkuX2ZuUHJvY2Vzc2luZ0Rpc3BsYXkoIG9TZXR0aW5ncywgdHJ1ZSApOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3Byb2Nlc3NpbmcnKSA9PSBudWxsOyB9CgkpOwoJCgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/bServerSide.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJTZXJ2ZXJTaWRlIiApOwoKLyogTm90IGludGVyZXN0ZWQgaW4gc2VydmVyLXNpZGUgcHJvY2Vzc2luZyBoZXJlIG90aGVyIHRoYW4gdG8gY2hlY2sgdGhhdCBpdCBpcyBvZmYgKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTZXJ2ZXIgc2lkZSBpcyBvZmYgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0ZlYXR1cmVzLmJTZXJ2ZXJTaWRlID09IGZhbHNlOyB9CgkpOwoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/bSort.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJTb3J0IiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJImJEZWZlclJlbmRlciI6IHRydWUKCX0gKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgaXMgb24gYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiR2Vja28iOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU29ydGluZyBBc2MgYnkgZGVmYXVsdCBjbGFzcyBhcHBsaWVkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDApJykuaGFzQ2xhc3MoInNvcnRpbmdfYXNjIik7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoCgkJIkNsaWNrIG9uIHNlY29uZCBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgY2xhc3MgcmVtb3ZlZCBmcm9tIGZpcnN0IGNvbHVtbiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgwKScpLmhhc0NsYXNzKCJzb3J0aW5nX2FzYyIpICE9IHRydWU7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTb3J0aW5nIGFzYyBjbGFzcyBhcHBsaWVkIHRvIHNlY29uZCBjb2x1bW4iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5oYXNDbGFzcygic29ydGluZ19hc2MiKTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiUmV2ZXJzZSBvbiBzZWNvbmQgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiU2VhbW9ua2V5IDEuMSI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTb3J0aW5nIGFjcyBjbGFzcyByZW1vdmVkIGZyb20gc2Vjb25kIGNvbHVtbiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmhhc0NsYXNzKCJzb3J0aW5nX2FzYyIpICE9IHRydWU7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTb3J0aW5nIGRlc2MgY2xhc3MgYXBwbGllZCB0byBzZWNvbmQgY29sdW1uIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuaGFzQ2xhc3MoInNvcnRpbmdfZGVzYyIpOyB9CgkpOwoJCgkvKiBDaGVjayBjYW4gZGlzYWJsZSAqLwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlBhZ2lhbnRpb24gY2FuIGJlIGRpc2FibGVkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJImJTb3J0IjogZmFsc2UKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIjQiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KAoJCSJDbGljayBvbiBzZWNvbmQgY29sdW1uIGhhcyBubyBlZmZlY3QiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDMpJykuaHRtbCgpID09ICI0IjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiUmV2ZXJzZSBvbiBzZWNvbmQgY29sdW1uIGhhcyBubyBlZmZlY3QiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDMpJykuaHRtbCgpID09ICI0IjsgfQoJKTsKCQoJLyogRW5hYmxlIG1ha2VzIG5vIGRpZmZlcmVuY2UgKi8KCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTb3J0aW5nIGVuYWJsZWQgb3ZlcnJpZGUiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJEZWZlclJlbmRlciI6IHRydWUsCgkJCQkiYlNvcnQiOiB0cnVlCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDApJykuaHRtbCgpID09ICJHZWNrbyI7IH0KCSk7CgkKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/bSortClasses.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImJTb3J0Q2xhc3NlcyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCSJiRGVmZXJSZW5kZXIiOiB0cnVlCgl9ICk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTb3J0aW5nIGNsYXNzZXMgYXJlIGFwcGxpZWQgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmhhc0NsYXNzKCdzb3J0aW5nXzEnKTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgY2xhc3NlcyBhcmUgYXBwbGllZCB0byBhbGwgcmVxdWlyZWQgY2VsbHMiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoNykgdGQ6ZXEoMCknKS5oYXNDbGFzcygnc29ydGluZ18xJyk7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTb3J0aW5nIGNsYXNzZXMgYXJlIG5vdCBhcHBsaWVkIHRvIG5vbi1zb3J0aW5nIGNvbHVtbnMiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5oYXNDbGFzcygnc29ydGluZ18xJykgPT0gZmFsc2U7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTb3J0aW5nIG11bHRpLWNvbHVtbiAtIGFkZCBjb2x1bW4gMSIsCgkJZnVuY3Rpb24gKCkgeyAKCQkJb0Rpc3BhY2hlci5jbGljayggJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKVswXSwgeyAnc2hpZnQnOiB0cnVlIH0gKTsgfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmhhc0NsYXNzKCdzb3J0aW5nXzEnKSAmJgoJCQkJCQkgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5oYXNDbGFzcygnc29ydGluZ18yJyk7CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgbXVsdGktY29sdW1uIC0gYWRkIGNvbHVtbiAyIiwKCQlmdW5jdGlvbiAoKSB7IAoJCQlvRGlzcGFjaGVyLmNsaWNrKCAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgyKScpWzBdLCB7ICdzaGlmdCc6IHRydWUgfSApOyB9LAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMScpICYmCgkJCQkJCSAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmhhc0NsYXNzKCdzb3J0aW5nXzInKSAmJgoJCQkJCQkgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMiknKS5oYXNDbGFzcygnc29ydGluZ18zJyk7CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgbXVsdGktY29sdW1uIC0gYWRkIGNvbHVtbiAzIiwKCQlmdW5jdGlvbiAoKSB7IAoJCQlvRGlzcGFjaGVyLmNsaWNrKCAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpWzBdLCB7ICdzaGlmdCc6IHRydWUgfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5oYXNDbGFzcygnc29ydGluZ18xJykgJiYKCQkJCQkJICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMicpICYmCgkJCQkJCSAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgyKScpLmhhc0NsYXNzKCdzb3J0aW5nXzMnKSAmJgoJCQkJCQkgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMyknKS5oYXNDbGFzcygnc29ydGluZ18zJyk7CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlJlbW92ZSBzb3J0aW5nIGNsYXNzZXMgb24gc2luZ2xlIGNvbHVtbiBzb3J0IiwKCQlmdW5jdGlvbiAoKSB7IAoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSg0KScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmhhc0NsYXNzKCdzb3J0aW5nXzEnKSA9PSBmYWxzZSAmJgoJCQkJCQkgJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMSknKS5oYXNDbGFzcygnc29ydGluZ18yJykgPT0gZmFsc2UgJiYKCQkJCQkJICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDIpJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMycpID09IGZhbHNlICYmCgkJCQkJCSAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgzKScpLmhhc0NsYXNzKCdzb3J0aW5nXzMnKSA9PSBmYWxzZTsKCQl9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU29ydGluZyBjbGFzcyAxIHdhcyBhZGRlZCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgxKSB0ZDplcSg0KScpLmhhc0NsYXNzKCdzb3J0aW5nXzEnKTsgfQoJKTsKCQoJCgkvKiBDaGVjayBjYW4gZGlzYWJsZSAqLwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNvcnRpbmcgY2xhc3NlcyBjYW4gYmUgZGlzYWJsZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJEZWZlclJlbmRlciI6IHRydWUsCgkJCQkiYlNvcnRDbGFzc2VzIjogZmFsc2UKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5oYXNDbGFzcygnc29ydGluZ18xJykgPT0gZmFsc2U7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTb3J0aW5nIGNsYXNzZXMgZGlzYWJsZWQgLSBhZGQgY29sdW1uIDEgLSBubyBlZmZlY3QiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCW9EaXNwYWNoZXIuY2xpY2soICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJylbMF0sIHsgJ3NoaWZ0JzogdHJ1ZSB9ICk7IH0sCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5oYXNDbGFzcygnc29ydGluZ18xJykgPT0gZmFsc2UgJiYKCQkJCQkJICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMicpID09IGZhbHNlOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTb3J0aW5nIGNsYXNzZXMgZGlzYWJsZWQgLSBhZGQgY29sdW1uIDIgLSBubyBlZmZlY3QiLAoJCWZ1bmN0aW9uICgpIHsgCgkJCW9EaXNwYWNoZXIuY2xpY2soICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDIpJylbMF0sIHsgJ3NoaWZ0JzogdHJ1ZSB9ICk7IH0sCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5oYXNDbGFzcygnc29ydGluZ18xJykgPT0gZmFsc2UgJiYKCQkJCQkJICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaGFzQ2xhc3MoJ3NvcnRpbmdfMicpID09IGZhbHNlICYmCgkJCQkJCSAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgyKScpLmhhc0NsYXNzKCdzb3J0aW5nXzMnKSA9PSBmYWxzZTsKCQl9CgkpOwoJCgkKCS8qIEVuYWJsZSBtYWtlcyBubyBkaWZmZXJlbmNlICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU29ydGluZyBjbGFzc2VzIGVuYWJsZWQgb3ZlcnJpZGUiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJEZWZlclJlbmRlciI6IHRydWUsCgkJCQkiYlNvcnRDbGFzc2VzIjogdHJ1ZQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmhhc0NsYXNzKCdzb3J0aW5nXzEnKTsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/fnDrawCallback.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImZuRHJhd0NhbGxiYWNrIiApOwoKLyogRmFpcmx5IGJvcmluZyBmdW5jdGlvbiBjb21wYXJlZCB0byB0aGUgb3RoZXJzISAqLwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCSJiRGVmZXJSZW5kZXIiOiB0cnVlCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCXZhciBtUGFzcywgYkluaXQ7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJEZWZhdWx0IHNob3VsZCBiZSBudWxsIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5mbkRyYXdDYWxsYmFjayA9PSBudWxsOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJPbmUgYXJndW1lbnQgcGFzc2VkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSAtMTsKCQkJYkluaXQgPSBmYWxzZTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJmbkRyYXdDYWxsYmFjayI6IGZ1bmN0aW9uICggKSB7CgkJCQkJbVBhc3MgPSBhcmd1bWVudHMubGVuZ3RoOwoJCQkJfSwKCQkJCSJmbkluaXRDb21wbGV0ZSI6IGZ1bmN0aW9uICgpIHsKCQkJCQliSW5pdCA9IHRydWU7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzID09IDEgJiYgYkluaXQ7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlRoYXQgb25lIGFyZ3VtZW50IGlzIHRoZSBzZXR0aW5ncyBvYmplY3QiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQliSW5pdCA9IGZhbHNlOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJImZuRHJhd0NhbGxiYWNrIjogZnVuY3Rpb24gKCBvU2V0dGluZ3MgKSB7CgkJCQkJbVBhc3MgPSBvU2V0dGluZ3M7CgkJCQl9LAoJCQkJImZuSW5pdENvbXBsZXRlIjogZnVuY3Rpb24gKCkgewoJCQkJCWJJbml0ID0gdHJ1ZTsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1RhYmxlLmZuU2V0dGluZ3MoKSA9PSBtUGFzcyAmJiBiSW5pdDsgfQoJKTsKCQoJCgkvKiBUaGUgZHJhdyBjYWxsYmFjayBpcyBjYWxsZWQgb25jZSBmb3IgdGhlIGluaXQgYW5kIHRoZW4gd2hlbiB0aGUgZGF0YSBpcyBhZGRlZCAqLwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJImZuUm93Q2FsbGJhY2sgY2FsbGVkIG9uY2Ugb24gZmlyc3QgZHJhdyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gMDsKCQkJYkluaXQgPSBmYWxzZTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJmbkRyYXdDYWxsYmFjayI6IGZ1bmN0aW9uICggKSB7CgkJCQkJbVBhc3MrKzsKCQkJCX0sCgkJCQkiZm5Jbml0Q29tcGxldGUiOiBmdW5jdGlvbiAoKSB7CgkJCQkJYkluaXQgPSB0cnVlOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzcyA9PSAyICYmIGJJbml0OyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiZm5Sb3dDYWxsYmFjayBjYWxsZWQgb25jZSBvbiBlYWNoIGRyYXcgdGhlcmUgYWZ0ZXIgYXMgd2VsbCIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3MgPT0gNTsgfQoJKTsKCQoJCgkKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/fnHeaderCallback.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImZuSGVhZGVyQ2FsbGJhY2siICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJImJEZWZlclJlbmRlciI6IHRydWUKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJdmFyIG1QYXNzLCBiSW5pdDsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkRlZmF1bHQgc2hvdWxkIGJlIG51bGwiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLmZuSGVhZGVyQ2FsbGJhY2sgPT0gbnVsbDsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRml2ZSBhcmd1bWVudHMgcGFzc2VkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSAtMTsKCQkJYkluaXQgPSBmYWxzZTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJmbkhlYWRlckNhbGxiYWNrIjogZnVuY3Rpb24gKCApIHsKCQkJCQltUGFzcyA9IGFyZ3VtZW50cy5sZW5ndGg7CgkJCQl9LAoJCQkJImZuSW5pdENvbXBsZXRlIjogZnVuY3Rpb24gKCkgewoJCQkJCWJJbml0ID0gdHJ1ZTsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3MgPT0gNSAmJiBiSW5pdDsgfQoJKTsKCQoJCgkvKiBUaGUgaGVhZGVyIGNhbGxiYWNrIGlzIGNhbGxlZCBvbmNlIGZvciB0aGUgaW5pdCBhbmQgdGhlbiB3aGVuIHRoZSBkYXRhIGlzIGFkZGVkICovCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiZm5IZWFkZXJDYWxsYmFjayBjYWxsZWQgb25jZSBwZXIgZHJhdyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gMDsKCQkJYkluaXQgPSBmYWxzZTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJmbkhlYWRlckNhbGxiYWNrIjogZnVuY3Rpb24gKCBuSGVhZCwgYWFzRGF0YSwgaVN0YXJ0LCBpRW5kLCBhaURpc3BsYXkgKSB7CgkJCQkJbVBhc3MrKzsKCQkJCX0sCgkJCQkiZm5Jbml0Q29tcGxldGUiOiBmdW5jdGlvbiAoKSB7CgkJCQkJYkluaXQgPSB0cnVlOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzcyA9PSAyICYmIGJJbml0OyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiZm5Sb3dDYWxsYmFjayBjYWxsZWQgb24gcGFnaW5nIChpLmUuIGFub3RoZXIgZHJhdykiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3MgPT0gMzsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiZm5Sb3dDYWxsYmFjayBhbGxvd3MgdXMgdG8gYWx0ZXIgcm93IGluZm9ybWF0aW9uIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJImZuSGVhZGVyQ2FsbGJhY2siOiBmdW5jdGlvbiAoIG5IZWFkLCBhYXNEYXRhLCBpU3RhcnQsIGlFbmQsIGFpRGlzcGxheSApIHsKCQkJCQluSGVhZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndGgnKVswXS5pbm5lckhUTUwgPSAiRGlzcGxheWluZyAiKyhpRW5kLWlTdGFydCkrIiByZWNvcmRzIjsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMCknKS5odG1sKCkgPT0gIkRpc3BsYXlpbmcgMTAgcmVjb3JkcyI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJImlTdGFydCBjb3JyZWN0IG9uIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IHRydWU7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJEZWZlclJlbmRlciI6IHRydWUsCgkJCQkiZm5IZWFkZXJDYWxsYmFjayI6IGZ1bmN0aW9uICggbkhlYWQsIGFhc0RhdGEsIGlTdGFydCwgaUVuZCwgYWlEaXNwbGF5ICkgewoJCQkJCWlmICggaVN0YXJ0ICE9IDAgKQoJCQkJCXsKCQkJCQkJbVBhc3MgPSBmYWxzZTsKCQkJCQl9CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJpU3RhcnQgY29ycmVjdCBvbiBzZWNvbmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gZmFsc2U7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJEZWZlclJlbmRlciI6IHRydWUsCgkJCQkiZm5IZWFkZXJDYWxsYmFjayI6IGZ1bmN0aW9uICggbkhlYWQsIGFhc0RhdGEsIGlTdGFydCwgaUVuZCwgYWlEaXNwbGF5ICkgewoJCQkJCWlmICggaVN0YXJ0ID09IDEwICkKCQkJCQl7CgkJCQkJCW1QYXNzID0gdHJ1ZTsKCQkJCQl9CgkJCQl9LAoJCQkJImZuSW5pdENvbXBsZXRlIjogZnVuY3Rpb24gKCkgewoJCQkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzczsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiaUVuZCBjb3JyZWN0IG9uIHNlY29uZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSBmYWxzZTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJmbkhlYWRlckNhbGxiYWNrIjogZnVuY3Rpb24gKCBuSGVhZCwgYWFzRGF0YSwgaVN0YXJ0LCBpRW5kLCBhaURpc3BsYXkgKSB7CgkJCQkJaWYgKCBpRW5kID09IDIwICkKCQkJCQl7CgkJCQkJCW1QYXNzID0gdHJ1ZTsKCQkJCQl9CgkJCQl9LAoJCQkJImZuSW5pdENvbXBsZXRlIjogZnVuY3Rpb24gKCkgewoJCQkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzczsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiYWlEaXNwbGF5IGxlbmd0aCBpcyBmdWxsIGRhdGEgd2hlbiBub3QgZmlsdGVyZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IGZhbHNlOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJImZuSGVhZGVyQ2FsbGJhY2siOiBmdW5jdGlvbiAoIG5IZWFkLCBhYXNEYXRhLCBpU3RhcnQsIGlFbmQsIGFpRGlzcGxheSApIHsKCQkJCQlpZiAoIGFpRGlzcGxheS5sZW5ndGggPT0gNTcgKQoJCQkJCXsKCQkJCQkJbVBhc3MgPSB0cnVlOwoJCQkJCX0KCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3M7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJhaURpc3BsYXkgbGVuZ3RoIGlzIDkgd2hlbiBmaWx0ZXJpbmcgb24gJ01vemlsbGEnIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSBmYWxzZTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJmbkhlYWRlckNhbGxiYWNrIjogZnVuY3Rpb24gKCBuSGVhZCwgYWFzRGF0YSwgaVN0YXJ0LCBpRW5kLCBhaURpc3BsYXkgKSB7CgkJCQkJaWYgKCBhaURpc3BsYXkubGVuZ3RoID09IDkgKQoJCQkJCXsKCQkJCQkJbVBhc3MgPSB0cnVlOwoJCQkJCX0KCQkJCX0KCQkJfSApOwoJCQlvVGFibGUuZm5GaWx0ZXIoICJNb3ppbGxhIiApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3M7IH0KCSk7CgkKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/fnInitComplete.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImZuSW5pdENvbXBsZXRlIiApOwoKLyogRmFpcmx5IGJvcmluZyBmdW5jdGlvbiBjb21wYXJlZCB0byB0aGUgb3RoZXJzISAqLwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCSJiRGVmZXJSZW5kZXIiOiB0cnVlCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCXZhciBtUGFzczsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkRlZmF1bHQgc2hvdWxkIGJlIG51bGwiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLmZuSW5pdENvbXBsZXRlID09IG51bGw7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlR3byBhcmd1bWVudHMgcGFzc2VkIChmb3IgQWpheCEpIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSAtMTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJmbkluaXRDb21wbGV0ZSI6IGZ1bmN0aW9uICggKSB7CgkJCQkJbVBhc3MgPSBhcmd1bWVudHMubGVuZ3RoOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzcyA9PSAyOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJUaGF0IG9uZSBhcmd1bWVudCBpcyB0aGUgc2V0dGluZ3Mgb2JqZWN0IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJmbkluaXRDb21wbGV0ZSI6IGZ1bmN0aW9uICggb1NldHRpbmdzICkgewoJCQkJCW1QYXNzID0gb1NldHRpbmdzOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvVGFibGUuZm5TZXR0aW5ncygpID09IG1QYXNzOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJmbkluaXRDb21wbGV0ZSBjYWxsZWQgb25jZSBvbiBmaXJzdCBkcmF3IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkKCQkJbVBhc3MgPSAwOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJImZuSW5pdENvbXBsZXRlIjogZnVuY3Rpb24gKCApIHsKCQkJCQltUGFzcysrOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzcyA9PSAxOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiZm5Jbml0Q29tcGxldGUgbmV2ZXIgY2FsbGVkIHRoZXJlIGFmdGVyIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzcyA9PSAxOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSIxMCByb3dzIGluIHRoZSB0YWJsZSBvbiBjb21wbGV0ZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJCgkJCW1QYXNzID0gMDsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJmbkluaXRDb21wbGV0ZSI6IGZ1bmN0aW9uICggKSB7CgkJCQkJbVBhc3MgPSAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aDsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3MgPT0gMTA7IH0KCSk7CgkKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/fnRowCallback.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImZuUm93Q2FsbGJhY2siICk7CgovKiBOb3RlIC0gZm5Sb3dDYWxsYmFjayBNVVNUIHJldHVybiB0aGUgZmlyc3QgYXJndW1lbnRzIChtb2RpZmllZCBvciBub3QpICovCgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJImJEZWZlclJlbmRlciI6IHRydWUKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJdmFyIG1QYXNzOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRGVmYXVsdCBzaG91bGQgYmUgbnVsbCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3MuZm5Sb3dDYWxsYmFjayA9PSBudWxsOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJGb3VyIGFyZ3VtZW50cyBwYXNzZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IC0xOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJImZuUm93Q2FsbGJhY2siOiBmdW5jdGlvbiAoIG5UciApIHsKCQkJCQltUGFzcyA9IGFyZ3VtZW50cy5sZW5ndGg7CgkJCQkJcmV0dXJuIG5UcjsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3MgPT0gNDsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiZm5Sb3dDYWxsYmFjayBjYWxsZWQgb25jZSBmb3IgZWFjaCBkcmF3biByb3ciLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IDA7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJEZWZlclJlbmRlciI6IHRydWUsCgkJCQkiZm5Sb3dDYWxsYmFjayI6IGZ1bmN0aW9uICggblRyLCBhc0RhdGEsIGlEcmF3SW5kZXgsIGlEYXRhSW5kZXggKSB7CgkJCQkJbVBhc3MrKzsKCQkJCQlyZXR1cm4gblRyOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzcyA9PSAxMDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJImZuUm93Q2FsbGJhY2sgYWxsb3dzIHVzIHRvIGFsdGVyIHJvdyBpbmZvcm1hdGlvbiIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJmblJvd0NhbGxiYWNrIjogZnVuY3Rpb24gKCBuVHIsIGFzRGF0YSwgaURyYXdJbmRleCwgaURhdGFJbmRleCApIHsKCQkJCQkkKG5UcikuYWRkQ2xhc3MoJ3VuaXRfdGVzdCcpOwoJCQkJCXJldHVybiBuVHI7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDEpJykuaGFzQ2xhc3MoJ3VuaXRfdGVzdCcpOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRGF0YSBhcnJheSBoYXMgbGVuZ3RoIG1hdGNoaW5nIGNvbHVtbnMiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IHRydWU7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJEZWZlclJlbmRlciI6IHRydWUsCgkJCQkiZm5Sb3dDYWxsYmFjayI6IGZ1bmN0aW9uICggblRyLCBhc0RhdGEsIGlEcmF3SW5kZXgsIGlEYXRhSW5kZXggKSB7CgkJCQkJaWYgKCBhc0RhdGEubGVuZ3RoICE9IDUgKQoJCQkJCQltUGFzcyA9IGZhbHNlOwoJCQkJCXJldHVybiBuVHI7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRGF0YSBhcnJheSBoYXMgbGVuZ3RoIG1hdGNoaW5nIGNvbHVtbnMiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCQoJCQltUGFzcyA9IHRydWU7CgkJCXZhciBpQ291bnQgPSAwOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJImZuUm93Q2FsbGJhY2siOiBmdW5jdGlvbiAoIG5UciwgYXNEYXRhLCBpRHJhd0luZGV4LCBpRGF0YUluZGV4ICkgewoJCQkJCWlmICggaUNvdW50ICE9IGlEcmF3SW5kZXggKQoJCQkJCQltUGFzcyA9IGZhbHNlOwoJCQkJCWlDb3VudCsrOwoJCQkJCXJldHVybiBuVHI7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzOyB9CgkpOwoJCgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/fnServerData.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImZuU2VydmVyRGF0YSBmb3IgQWpheCBzb3VyY2VkIGRhdGEiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJdmFyIG1QYXNzOwoJCglvVGVzdC5mblRlc3QoIAoJCSJBcmd1bWVudCBsZW5ndGgiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJmblNlcnZlckRhdGEiOiBmdW5jdGlvbiAoKSB7CgkJCQkJbVBhc3MgPSBhcmd1bWVudHMubGVuZ3RoOwoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBtUGFzcyA9PSA0OyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJVcmwiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJiRGVzdHJveSI6IHRydWUsCgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJEZWZlclJlbmRlciI6IHRydWUsCgkJCQkiZm5TZXJ2ZXJEYXRhIjogZnVuY3Rpb24gKHNVcmwsIGFvRGF0YSwgZm5DYWxsYmFjaywgb1NldHRpbmdzKSB7CgkJCQkJbVBhc3MgPSBzVXJsID09ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCI7CgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG1QYXNzOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJEYXRhIGFycmF5IiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYkRlc3Ryb3kiOiB0cnVlLAoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJImZuU2VydmVyRGF0YSI6IGZ1bmN0aW9uIChzVXJsLCBhb0RhdGEsIGZuQ2FsbGJhY2ssIG9TZXR0aW5ncykgewoJCQkJCW1QYXNzID0gYW9EYXRhLmxlbmd0aD09MDsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3M7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNhbGxiYWNrIGZ1bmN0aW9uIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkiYkRlc3Ryb3kiOiB0cnVlLAoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJImZuU2VydmVyRGF0YSI6IGZ1bmN0aW9uIChzVXJsLCBhb0RhdGEsIGZuQ2FsbGJhY2ssIG9TZXR0aW5ncykgewoJCQkJCW1QYXNzID0gdHlwZW9mIGZuQ2FsbGJhY2sgPT0gJ2Z1bmN0aW9uJzsKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gbVBhc3M7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/iDisplayLength.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggImlEaXNwbGF5TGVuZ3RoIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJImJEZWZlclJlbmRlciI6IHRydWUKCX0gKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkRlZmF1bHQgbGVuZ3RoIGlzIHRlbiIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSAxMDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNlbGVjdCBtZW51IHNob3dzIDEwIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlX2xlbmd0aCBzZWxlY3QnKS52YWwoKSA9PSAxMDsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU2V0IGluaXRpYWwgbGVuZ3RoIHRvIDI1IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJImlEaXNwbGF5TGVuZ3RoIjogMjUKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMjU7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTZWxlY3QgbWVudSBzaG93cyAyNSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9sZW5ndGggc2VsZWN0JykudmFsKCkgPT0gMjU7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNldCBpbml0aWFsIGxlbmd0aCB0byAxMDAiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJEZWZlclJlbmRlciI6IHRydWUsCgkJCQkiaURpc3BsYXlMZW5ndGgiOiAxMDAKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gNTc7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTZWxlY3QgbWVudSBzaG93cyAyNSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9sZW5ndGggc2VsZWN0JykudmFsKCkgPT0gMTAwOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTZXQgaW5pdGlhbCBsZW5ndGggdG8gMjMgKHVua25vd24gc2VsZWN0IG1lbnUgbGVuZ3RoKSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJpRGlzcGxheUxlbmd0aCI6IDIzCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDIzOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU2VsZWN0IG1lbnUgc2hvd3MgMTAgKHNpbmNlIDIzIGlzIHVua25vdykiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGVfbGVuZ3RoIHNlbGVjdCcpLnZhbCgpID09IDEwOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.oPaginate.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5vUGFnaW5hdGUiICk7CgovKiBOb3RlIHRoYXQgdGhlIHBhZ2luZyBsYW5ndWFnZSBpbmZvcm1hdGlvbiBvbmx5IGhhcyByZWxldmVuY2UgaW4gZnVsbCBudW1iZXJzICovCgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJImJEZWZlclJlbmRlciI6IHRydWUsCgkJInNQYWdpbmF0aW9uVHlwZSI6ICJmdWxsX251bWJlcnMiCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIm9MYW5ndWFnZS5vUGFnaW5hdGUgZGVmYXVsdHMiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYlJldHVybiA9IAoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5vUGFnaW5hdGUuc0ZpcnN0ID09ICJGaXJzdCIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uub1BhZ2luYXRlLnNQcmV2aW91cyA9PSAiUHJldmlvdXMiICYmCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLm9QYWdpbmF0ZS5zTmV4dCA9PSAiTmV4dCIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uub1BhZ2luYXRlLnNMYXN0ID09ICJMYXN0IjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkib0xhbmd1YWdlLm9QYWdpbmF0ZSBkZWZhdWx0cyBhcmUgaW4gdGhlIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBiUmV0dXJuID0gCgkJCQkkKCcjZXhhbXBsZV9wYWdpbmF0ZSAuZmlyc3QnKS5odG1sKCkgPT0gIkZpcnN0IiAmJgoJCQkJJCgnI2V4YW1wbGVfcGFnaW5hdGUgLnByZXZpb3VzJykuaHRtbCgpID09ICJQcmV2aW91cyIgJiYKCQkJCSQoJyNleGFtcGxlX3BhZ2luYXRlIC5uZXh0JykuaHRtbCgpID09ICJOZXh0IiAmJgoJCQkJJCgnI2V4YW1wbGVfcGFnaW5hdGUgLmxhc3QnKS5odG1sKCkgPT0gIkxhc3QiOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJvTGFuZ3VhZ2Uub1BhZ2luYXRlIGNhbiBiZSBkZWZpbmVkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJInNQYWdpbmF0aW9uVHlwZSI6ICJmdWxsX251bWJlcnMiLAoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkib1BhZ2luYXRlIjogewoJCQkJCQkic0ZpcnN0IjogICAgInVuaXQxIiwKCQkJCQkJInNQcmV2aW91cyI6ICJ0ZXN0MiIsCgkJCQkJCSJzTmV4dCI6ICAgICAidW5pdDMiLAoJCQkJCQkic0xhc3QiOiAgICAgInRlc3Q0IgoJCQkJCX0KCQkJCX0KCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYlJldHVybiA9IAoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5vUGFnaW5hdGUuc0ZpcnN0ID09ICJ1bml0MSIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uub1BhZ2luYXRlLnNQcmV2aW91cyA9PSAidGVzdDIiICYmCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLm9QYWdpbmF0ZS5zTmV4dCA9PSAidW5pdDMiICYmCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLm9QYWdpbmF0ZS5zTGFzdCA9PSAidGVzdDQiOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJvTGFuZ3VhZ2Uub1BhZ2luYXRlIGRlZmluaXRpb25zIGFyZSBpbiB0aGUgRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCSQoJyNleGFtcGxlX3BhZ2luYXRlIC5maXJzdCcpLmh0bWwoKSA9PSAidW5pdDEiICYmCgkJCQkkKCcjZXhhbXBsZV9wYWdpbmF0ZSAucHJldmlvdXMnKS5odG1sKCkgPT0gInRlc3QyIiAmJgoJCQkJJCgnI2V4YW1wbGVfcGFnaW5hdGUgLm5leHQnKS5odG1sKCkgPT0gInVuaXQzIiAmJgoJCQkJJCgnI2V4YW1wbGVfcGFnaW5hdGUgLmxhc3QnKS5odG1sKCkgPT0gInRlc3Q0IjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.sInfo.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zSW5mbyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJJbmZvIGxhbmd1YWdlIGlzICdTaG93aW5nIF9TVEFSVF8gdG8gX0VORF8gb2YgX1RPVEFMXyBlbnRyaWVzJyBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc0luZm8gPT0gIlNob3dpbmcgX1NUQVJUXyB0byBfRU5EXyBvZiBfVE9UQUxfIGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJbmZvIGxhbmd1YWdlIGRlZmF1bHQgaXMgaW4gdGhlIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID0gIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiSW5mbyBsYW5ndWFnZSBjYW4gYmUgZGVmaW5lZCAtIHdpdGhvdXQgYW55IG1hY3JvcyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNJbmZvIjogInVuaXQgdGVzdCIKCQkJCX0KCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9MYW5ndWFnZS5zSW5mbyA9PSAidW5pdCB0ZXN0IjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiSW5mbyBsYW5ndWFnZSBkZWZpbml0aW9uIGlzIGluIHRoZSBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9ICJ1bml0IHRlc3QiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiSW5mbyBsYW5ndWFnZSBjYW4gYmUgZGVmaW5lZCAtIHdpdGggbWFjcm8gX1NUQVJUXyBvbmx5IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic0luZm8iOiAidW5pdCBfU1RBUlRfIHRlc3QiCgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPSAidW5pdCAxIHRlc3QiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiSW5mbyBsYW5ndWFnZSBjYW4gYmUgZGVmaW5lZCAtIHdpdGggbWFjcm8gX0VORF8gb25seSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNJbmZvIjogInVuaXQgX0VORF8gdGVzdCIKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9ICJ1bml0IDEwIHRlc3QiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiSW5mbyBsYW5ndWFnZSBjYW4gYmUgZGVmaW5lZCAtIHdpdGggbWFjcm8gX1RPVEFMXyBvbmx5IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic0luZm8iOiAidW5pdCBfRU5EXyB0ZXN0IgoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID0gInVuaXQgNTcgdGVzdCI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJJbmZvIGxhbmd1YWdlIGNhbiBiZSBkZWZpbmVkIC0gd2l0aCBtYWNyb3MgX1NUQVJUXyBhbmQgX0VORF8iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJEZWZlclJlbmRlciI6IHRydWUsCgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzSW5mbyI6ICJ1bml0IF9TVEFSVF8gX0VORF8gdGVzdCIKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9ICJ1bml0IDEgMTAgdGVzdCI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJJbmZvIGxhbmd1YWdlIGNhbiBiZSBkZWZpbmVkIC0gd2l0aCBtYWNyb3MgX1NUQVJUXywgX0VORF8gYW5kIF9UT1RBTF8iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJEZWZlclJlbmRlciI6IHRydWUsCgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzSW5mbyI6ICJ1bml0IF9TVEFSVF8gX0VORF8gX1RPVEFMXyB0ZXN0IgoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID0gInVuaXQgMSAxMCA1NyB0ZXN0IjsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.sInfoEmpty.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zSW5mb0VtcHR5IiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCSJiRGVmZXJSZW5kZXIiOiB0cnVlCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkluZm8gZW1wdHkgbGFuZ3VhZ2UgaXMgJ1Nob3dpbmcgMCB0byAwIG9mIDAgZW50cmllcycgYnkgZGVmYXVsdCIsCgkJZnVuY3Rpb24gKCkgeyBvVGFibGUuZm5GaWx0ZXIoIm5vdGhpbmdoZXJlIik7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9MYW5ndWFnZS5zSW5mb0VtcHR5ID09ICJTaG93aW5nIDAgdG8gMCBvZiAwIGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJbmZvIGVtcHR5IGxhbmd1YWdlIGRlZmF1bHQgaXMgaW4gdGhlIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBiUmV0dXJuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTC5yZXBsYWNlKCAKCQkJCScgJytvU2V0dGluZ3Mub0xhbmd1YWdlLnNJbmZvRmlsdGVyZWQucmVwbGFjZSggJ19NQVhfJywgJzU3JyApLCAiIiApID09CgkJCQkJIlNob3dpbmcgMCB0byAwIG9mIDAgZW50cmllcyI7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkluZm8gZW1wdHkgbGFuZ3VhZ2UgY2FuIGJlIGRlZmluZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJEZWZlclJlbmRlciI6IHRydWUsCgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzSW5mb0VtcHR5IjogInVuaXQgdGVzdCIKCQkJCX0KCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCQlvVGFibGUuZm5GaWx0ZXIoIm5vdGhpbmdoZXJlIik7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0xhbmd1YWdlLnNJbmZvRW1wdHkgPT0gInVuaXQgdGVzdCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkluZm8gZW1wdHkgbGFuZ3VhZ2UgZGVmYXVsdCBpcyBpbiB0aGUgRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGJSZXR1cm4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MLnJlcGxhY2UoIAoJCQkJJyAnK29TZXR0aW5ncy5vTGFuZ3VhZ2Uuc0luZm9GaWx0ZXJlZC5yZXBsYWNlKCAnX01BWF8nLCAnNTcnICksICIiICkgPT0KCQkJCQkidW5pdCB0ZXN0IjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTWFjcm8ncyByZXBsYWNlZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNJbmZvRW1wdHkiOiAidW5pdCBfU1RBUlRfIF9FTkRfIF9UT1RBTF8gdGVzdCIKCQkJCX0KCQkJfSApOwoJCQlvVGFibGUuZm5GaWx0ZXIoIm5vdGhpbmdoZXJlIik7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBiUmV0dXJuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTC5yZXBsYWNlKCAKCQkJCScgJytvU2V0dGluZ3Mub0xhbmd1YWdlLnNJbmZvRmlsdGVyZWQucmVwbGFjZSggJ19NQVhfJywgJzU3JyApLCAiIiApID09CgkJCQkJInVuaXQgMSAwIDAgdGVzdCI7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.sInfoPostFix.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zSW5mb1Bvc3RGaXgiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJImJEZWZlclJlbmRlciI6IHRydWUKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiSW5mbyBwb3N0IGZpeCBsYW5ndWFnZSBpcyAnJyAoYmxhbmspIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9MYW5ndWFnZS5zSW5mb1Bvc3RGaXggPT0gIiI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIldpZHRoIG5vIHBvc3QgZml4LCB0aGUgYmFzaWMgaW5mbyBzaG93cyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID0gIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiSW5mbyBwb3N0IGZpeCBsYW5ndWFnZSBjYW4gYmUgZGVmaW5lZCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNJbmZvUG9zdEZpeCI6ICJ1bml0IHRlc3QiCgkJCQl9CgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc0luZm9Qb3N0Rml4ID09ICJ1bml0IHRlc3QiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJbmZvIGVtcHR5IGxhbmd1YWdlIGRlZmF1bHQgaXMgaW4gdGhlIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID0gIlNob3dpbmcgMSB0byAxMCBvZiA1NyBlbnRyaWVzIHVuaXQgdGVzdCI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk1hY3JvcyBoYXZlIG5vIGVmZmVjdCBpbiB0aGUgcG9zdCBmaXgiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJEZWZlclJlbmRlciI6IHRydWUsCgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzSW5mb1Bvc3RGaXgiOiAidW5pdCBfU1RBUlRfIF9FTkRfIF9UT1RBTF8gdGVzdCIKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9ICJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyB1bml0IF9TVEFSVF8gX0VORF8gX1RPVEFMXyB0ZXN0IjsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiUG9zdCBmaXggaXMgYXBwbGllZCBhZnRlciBmaW50ZXJpbmcgaW5mbyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNJbmZvUG9zdEZpeCI6ICJ1bml0IHRlc3QiCgkJCQl9CgkJCX0gKTsKCQkJb1RhYmxlLmZuRmlsdGVyKCJub3RoaW5naGVyZSIpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9ICJTaG93aW5nIDAgdG8gMCBvZiAwIGVudHJpZXMgdW5pdCAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSB0ZXN0IjsgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.sLengthMenu.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zTGVuZ3RoTWVudSIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJNZW51IGxhbmd1YWdlIGlzICdTaG93IF9NRU5VXyBlbnRyaWVzJyBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc0xlbmd0aE1lbnUgPT0gIlNob3cgX01FTlVfIGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIl9NRU5VXyBtYWNybyBpcyByZXBsYWNlZCBieSBzZWxlY3QgbWVudSBpbiBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnc2VsZWN0Jywgb1NldHRpbmdzLmFhbkZlYXR1cmVzLmxbMF0pLmxlbmd0aCA9PSAxIH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiQSBsYWJlbCBpbnB1dCBpcyB1c2VkIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJ2xhYmVsJywgb1NldHRpbmdzLmFhbkZlYXR1cmVzLmxbMF0pLmxlbmd0aCA9PSAxIH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRGVmYXVsdCBpcyBwdXQgaW50byBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYW5DaGlsZHJlbiA9ICQoJ2xhYmVsJyxvU2V0dGluZ3MuYWFuRmVhdHVyZXMubFswXSlbMF0uY2hpbGROb2RlczsKCQkJdmFyIGJSZXR1cm4gPQoJCQkJYW5DaGlsZHJlblswXS5ub2RlVmFsdWUgPT0gIlNob3cgIiAmJgoJCQkJYW5DaGlsZHJlblsyXS5ub2RlVmFsdWUgPT0gIiBlbnRyaWVzIjsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTWVudSBsZW5ndGggbGFuZ3VhZ2UgY2FuIGJlIGRlZmluZWQgLSBubyBfTUVOVV8gbWFjcm8iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJEZWZlclJlbmRlciI6IHRydWUsCgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzTGVuZ3RoTWVudSI6ICJ1bml0IHRlc3QiCgkJCQl9CgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc0xlbmd0aE1lbnUgPT0gInVuaXQgdGVzdCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIk1lbnUgbGVuZ3RoIGxhbmd1YWdlIGRlZmluaXRpb24gaXMgaW4gdGhlIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiAkKCdsYWJlbCcsIG9TZXR0aW5ncy5hYW5GZWF0dXJlcy5sWzBdKS50ZXh0KCkgPT0gInVuaXQgdGVzdCI7CgkJfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTWVudSBsZW5ndGggbGFuZ3VhZ2UgY2FuIGJlIGRlZmluZWQgLSB3aXRoIF9NRU5VXyBtYWNybyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNMZW5ndGhNZW51IjogInVuaXQgX01FTlVfIHRlc3QiCgkJCQl9CgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGFuQ2hpbGRyZW4gPSAkKCdsYWJlbCcsb1NldHRpbmdzLmFhbkZlYXR1cmVzLmxbMF0pWzBdLmNoaWxkTm9kZXM7CgkJCXZhciBiUmV0dXJuID0KCQkJCWFuQ2hpbGRyZW5bMF0ubm9kZVZhbHVlID09ICJ1bml0ICIgJiYKCQkJCWFuQ2hpbGRyZW5bMl0ubm9kZVZhbHVlID09ICIgdGVzdCI7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk9ubHkgdGhlIF9NRU5VXyBtYWNybyIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJvTGFuZ3VhZ2UiOiB7CgkJCQkJInNMZW5ndGhNZW51IjogIl9NRU5VXyIKCQkJCX0KCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYW5DaGlsZHJlbiA9IG9TZXR0aW5ncy5hYW5GZWF0dXJlcy5sWzBdLmNoaWxkTm9kZXM7CgkJCXZhciBiUmV0dXJuID0KCQkJCWFuQ2hpbGRyZW4ubGVuZ3RoID09IDEgJiYKCQkJCSQoJ3NlbGVjdCcsIG9TZXR0aW5ncy5hYW5GZWF0dXJlcy5sWzBdKS5sZW5ndGggPT0gMTsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.sProcessing.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zUHJvY2Vzc2luZyIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkiYlByb2Nlc3NpbmciOiB0cnVlCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlByb2Nlc3NpbmcgbGFuZ3VhZ2UgaXMgJ1Byb2Nlc3NpbmcuLi4nIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9MYW5ndWFnZS5zUHJvY2Vzc2luZyA9PSAiUHJvY2Vzc2luZy4uLiI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlByb2Nlc3NpbmcgbGFuZ3VhZ2UgZGVmYXVsdCBpcyBpbiB0aGUgRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3Byb2Nlc3NpbmcnKS5pbm5lckhUTUwgPSAiUHJvY2Vzc2luZy4uLiI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlByb2Nlc3NpbmcgbGFuZ3VhZ2UgY2FuIGJlIGRlZmluZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJEZWZlclJlbmRlciI6IHRydWUsCgkJCQkiYlByb2Nlc3NpbmciOiB0cnVlLAoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic1Byb2Nlc3NpbmciOiAidW5pdCB0ZXN0IgoJCQkJfQoJCQl9ICk7CgkJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0xhbmd1YWdlLnNQcm9jZXNzaW5nID09ICJ1bml0IHRlc3QiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJQcm9jZXNzaW5nIGxhbmd1YWdlIGRlZmluaXRpb24gaXMgaW4gdGhlIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wcm9jZXNzaW5nJykuaW5uZXJIVE1MID0gInVuaXQgdGVzdCI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.sSearch.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zU2VhcmNoIiApOwoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCS8qIENoZWNrIHRoZSBkZWZhdWx0ICovCgl2YXIgb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCSJiRGVmZXJSZW5kZXIiOiB0cnVlCgl9ICk7Cgl2YXIgb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNlYXJjaCBsYW5ndWFnZSBpcyAnU2VhcmNoOicgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0xhbmd1YWdlLnNTZWFyY2ggPT0gIlNlYXJjaDoiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkEgbGFiZWwgaW5wdXQgaXMgdXNlZCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCdsYWJlbCcsIG9TZXR0aW5ncy5hYW5GZWF0dXJlcy5mWzBdKS5sZW5ndGggPT0gMSB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTZWFyY2ggbGFuZ3VhZ2UgZGVmYXVsdCBpcyBpbiB0aGUgRE9NIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJ2xhYmVsJywgb1NldHRpbmdzLmFhbkZlYXR1cmVzLmZbMF0pLnRleHQoKQoJCSAJPT0gIlNlYXJjaDogIjsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU2VhcmNoIGxhbmd1YWdlIGNhbiBiZSBkZWZpbmVkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic1NlYXJjaCI6ICJ1bml0IHRlc3QiCgkJCQl9CgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc1NlYXJjaCA9PSAidW5pdCB0ZXN0IjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiSW5mbyBsYW5ndWFnZSBkZWZpbml0aW9uIGlzIGluIHRoZSBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnbGFiZWwnLCBvU2V0dGluZ3MuYWFuRmVhdHVyZXMuZlswXSkudGV4dCgpLmluZGV4T2YoJ3VuaXQgdGVzdCcpICE9PSAtMTsgfQoJKTsKCQoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQmxhbmsgc2VhcmNoIGhhcyBhIG5vIHNwYWNlIChzZXBhcmF0b3IpIGluc2VydGVkIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic1NlYXJjaCI6ICIiCgkJCQl9CgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2ZpbHRlcicpLmNoaWxkTm9kZXMubGVuZ3RoID09IDE7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.sUrl.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zVXJsIiApOwoKLyogTm90ZSB0aGF0IHdlIG9ubHkgdGVzdCB0aGUgaW50ZXJuYWwgc3RvcmFnZSBvZiBsYW5ndWFnZSBpbmZvcm1hdGlvbiBwdWxsZWQgZm9ybSBhIGZpbGUgaGVyZQogKiBhcyB0aGUgb3RoZXIgbGFuZ3VhZ2UgdGVzdHMgd2lsbCBjaGVjayBpdCBnb2VzIGludG8gdGhlIERPTSBjb3JyZWN0bHkKICovCgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJImJEZWZlclJlbmRlciI6IHRydWUKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJzVXJsIGlzIGJsYW5rIGJ5IGRlZmF1bHQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLm9MYW5ndWFnZS5zVXJsID09ICIiOyB9CgkpOwoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJMb2FkaW5nIG9mIEdlcm1hbiBmaWxlIGxvYWRzIGxhbmd1YWdlIGluZm9ybWF0aW9uIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJIm9MYW5ndWFnZSI6IHsKCQkJCQkic1VybCI6ICIuLi8uLi8uLi9leGFtcGxlcy9leGFtcGxlc19zdXBwb3J0L2RlX0RFLnR4dCIKCQkJCX0KCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgYlJldHVybiA9IAoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5zUHJvY2Vzc2luZyA9PSAiQml0dGUgd2FydGVuLi4uIiAmJgoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5zTGVuZ3RoTWVudSA9PSAiX01FTlVfIEVpbnRyw6RnZSBhbnplaWdlbiIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc1plcm9SZWNvcmRzID09ICJLZWluZSBFaW50csOkZ2Ugdm9yaGFuZGVuLiIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc0luZm8gPT0gIl9TVEFSVF8gYmlzIF9FTkRfIHZvbiBfVE9UQUxfIEVpbnRyw6RnZW4iICYmCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLnNJbmZvRW1wdHkgPT0gIjAgYmlzIDAgdm9uIDAgRWludHLDpGdlbiIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc0luZm9GaWx0ZXJlZCA9PSAiKGdlZmlsdGVydCB2b24gX01BWF8gIEVpbnRyw6RnZW4pIiAmJgoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5zSW5mb1Bvc3RGaXggPT0gIiIgJiYKCQkJCW9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc1NlYXJjaCA9PSAiU3VjaGVuIiAmJgoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5vUGFnaW5hdGUuc0ZpcnN0ID09ICJFcnN0ZXIiICYmCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLm9QYWdpbmF0ZS5zUHJldmlvdXMgPT0gIlp1csO8Y2siICYmCgkJCQlvU2V0dGluZ3Mub0xhbmd1YWdlLm9QYWdpbmF0ZS5zTmV4dCA9PSAiTsOkY2hzdGVyIiAmJgoJCQkJb1NldHRpbmdzLm9MYW5ndWFnZS5vUGFnaW5hdGUuc0xhc3QgPT0gIkxldHp0ZXIiOwoJCQkJCgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCS8qIE9uZSBET00gY2hlY2sganVzdCB0byBlbnN1cmUgdGhhdCB0aGV5IGdvIGludG8gdGhlIERPTSAqLwoJb1Rlc3QuZm5UZXN0KAoJCSJMb2FkZWQgbGFuZ3VhZ2UgZ29lcyBpbnRvIHRoZSBET00iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9ICIxIGJpcyAxMCB2b24gNTcgRWludHLDpGdlbiI7IH0KCSk7CgkKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/oLanguage.sZeroRecords.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9MYW5ndWFnZS5zWmVyb1JlY29yZHMiICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJImJEZWZlclJlbmRlciI6IHRydWUKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiWmVybyByZWNvcmRzIGxhbmd1YWdlIGlzICdObyBtYXRjaGluZyByZWNvcmRzIGZvdW5kJyBieSBkZWZhdWx0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIG9TZXR0aW5ncy5vTGFuZ3VhZ2Uuc1plcm9SZWNvcmRzID09ICJObyBtYXRjaGluZyByZWNvcmRzIGZvdW5kIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiVGV4dCBpcyBzaG93biB3aGVuIGVtcHR5IHRhYmxlIChhZnRlciBmaWx0ZXJpbmcpIiwKCQlmdW5jdGlvbiAoKSB7IG9UYWJsZS5mbkZpbHRlcignbm90aGluZ2hlcmUnKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ciB0ZCcpWzBdLmlubmVySFRNTCA9PSAiTm8gbWF0Y2hpbmcgcmVjb3JkcyBmb3VuZCIgfQoJKTsKCQoJCgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJaZXJvIHJlY29yZHMgbGFuZ3VhZ2UgY2FuIGJlIGRlZmluZWQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCW9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJEZWZlclJlbmRlciI6IHRydWUsCgkJCQkib0xhbmd1YWdlIjogewoJCQkJCSJzWmVyb1JlY29yZHMiOiAidW5pdCB0ZXN0IgoJCQkJfQoJCQl9ICk7CgkJCW9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Mub0xhbmd1YWdlLnNaZXJvUmVjb3JkcyA9PSAidW5pdCB0ZXN0IjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCgKCQkiVGV4dCBpcyBzaG93biB3aGVuIGVtcHR5IHRhYmxlIChhZnRlciBmaWx0ZXJpbmcpIiwKCQlmdW5jdGlvbiAoKSB7IG9UYWJsZS5mbkZpbHRlcignbm90aGluZ2hlcmUyJyk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHIgdGQnKVswXS5pbm5lckhUTUwgPT0gInVuaXQgdGVzdCIgfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/oSearch.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIm9TZWFyY2giICk7CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJLyogQ2hlY2sgdGhlIGRlZmF1bHQgKi8KCXZhciBvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJImJEZWZlclJlbmRlciI6IHRydWUKCX0gKTsKCXZhciBvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiRGVmYXVsdCB2YWx1ZXMgc2hvdWxkIGJlIGJsYW5rIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGJSZXR1cm4gPSBvU2V0dGluZ3Mub1ByZXZpb3VzU2VhcmNoLnNTZWFyY2ggPT0gIiIgJiYgCgkJCSAgICAgICAgICAgICAgIW9TZXR0aW5ncy5vUHJldmlvdXNTZWFyY2guYlJlZ2V4OwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCgkvKiBUaGlzIHRlc3QgbWlnaHQgYmUgY29uc2lkZXJlZCBpZmZ5IHNpbmNlIHRoZSBmdWxsIG9iamVjdCBpc24ndCBnaXZlbiwgYnV0IGl0J3MgcmVhc29uYWJsZSB0bwoJICogZXhwZWN0IERhdGFUYWJsZXMgdG8gY29wZSB3aXRoIHRoaXMuIEl0IHNob3VsZCBqdXN0IGFzc3VtaW5lIHJlZ2V4IGZhbHNlCgkgKi8KCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTZWFyY2ggdGVybSBvbmx5IGluIG9iamVjdCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJb1RhYmxlID0gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJvU2VhcmNoIjogewoJCQkJCSJzU2VhcmNoIjogIk1vemlsbGEiCgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09ICJHZWNrbyI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJOZXcgc2VhcmNoIHdpbGwga2lsbCBvbGQgb25lIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9UYWJsZS5mbkZpbHRlcigiT3BlcmEiKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09ICJQcmVzdG8iOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU2VhcmNoIHBsYWluIHRleHQgdGVybSBhbmQgZXNjYXBlIHJlZ2V4IHRydWUiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJEZWZlclJlbmRlciI6IHRydWUsCgkJCQkib1NlYXJjaCI6IHsKCQkJCQkic1NlYXJjaCI6ICJEUyIsCgkJCQkJImJSZWdleCI6IGZhbHNlCgkJCQl9CgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICJOaW50ZW5kbyBEUyBicm93c2VyIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNlYXJjaCBwbGFpbiB0ZXh0IHRlcm0gYW5kIGVzY2FwZSByZWdleCBmYWxzZSIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJvU2VhcmNoIjogewoJCQkJCSJzU2VhcmNoIjogIk9wZXJhIiwKCQkJCQkiYlJlZ2V4IjogdHJ1ZQoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiUHJlc3RvIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlNlYXJjaCByZWdleCB0ZXh0IHRlcm0gYW5kIGVzY2FwZSByZWdleCB0cnVlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJIm9TZWFyY2giOiB7CgkJCQkJInNTZWFyY2giOiAiMS4qIiwKCQkJCQkiYlJlZ2V4IjogZmFsc2UKCQkJCX0KCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gIk5vIG1hdGNoaW5nIHJlY29yZHMgZm91bmQiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiU2VhcmNoIHJlZ2V4IHRleHQgdGVybSBhbmQgZXNjYXBlIHJlZ2V4IGZhbHNlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJIm9TZWFyY2giOiB7CgkJCQkJInNTZWFyY2giOiAiMS4qIiwKCQkJCQkiYlJlZ2V4IjogdHJ1ZQoJCQkJfQoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiR2Vja28iOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/sAjaxDataProp.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIkN1c3RvbSBkYXRhIHNvdXJjZSBwcm9wZXJ0eSAtIHByb3BlcnR5IGdpdmVuIiApOwoKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIgb0luaXQgPSB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9jdXN0b21fcHJvcC50eHQiLAoJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCSJzQWpheERhdGFQcm9wIjogImRlbW8iCgl9OwoJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIG9Jbml0ICk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSIxMCByb3dzIHNob3duIG9uIHRoZSBmaXJzdCBwYWdlIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDEwOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJbml0aWFsIHNvcnQgb2NjdXJlZCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiR2Vja28iOyB9CgkpOwoJCgkvKiBOZWVkIHRvIHVzZSB0aGUgV2FpdFRlc3QgZm9yIHNvcnRpbmcgZHVlIHRvIHRoZSBzZXRUaW1lb3V0IGRhdGF0YWJsZXMgdXNlcyAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyAoZmlyc3QgY2xpY2spIG9uIHNlY29uZCBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyAoc2Vjb25kIGNsaWNrKSBvbiBzZWNvbmQgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiU2VhbW9ua2V5IDEuMSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgKHRoaXJkIGNsaWNrKSBvbiBzZWNvbmQgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgKGZpcnN0IGNsaWNrKSBvbiBudW1lcmljIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIi0iOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIChzZWNvbmQgY2xpY2spIG9uIG51bWVyaWMgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiNTIyLjEiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIG11bHRpLWNvbHVtbiAoZmlyc3QgY2xpY2spIiwKCQlmdW5jdGlvbiAoKSB7IAoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgwKScpLmNsaWNrKCk7CgkJCW9EaXNwYWNoZXIuY2xpY2soICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJylbMF0sIHsgJ3NoaWZ0JzogdHJ1ZSB9ICk7IH0sCgkJZnVuY3Rpb24gKCkgeyB2YXIgYiA9IAoJCQkkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiR2Vja28iICYmIAoJCQkkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQ2FtaW5vIDEuMCI7IHJldHVybiBiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIG11bHRpLWNvbHVtbiAtIHNvcnRpbmcgc2Vjb25kIGNvbHVtbiBvbmx5IiwKCQlmdW5jdGlvbiAoKSB7IAoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCgkvKiBCYXNpYyBwYWdpbmcgKi8KCW9UZXN0LmZuVGVzdCggCgkJIlBhZ2luZyB0byBzZWNvbmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiSUUgTW9iaWxlIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUGFnaW5nIHRvIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQXR0ZW1wdGluZyB0byBwYWdlIGJhY2sgYmV5b25kIHRoZSBmaXJzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCS8qIENoYW5naW5nIGxlbmd0aCAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2hhbmdpbmcgdGFibGUgbGVuZ3RoIHRvIDI1IHJlY29yZHMiLAoJCWZ1bmN0aW9uICgpIHsgJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcyNScpLmNoYW5nZSgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDI1OyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDaGFuZ2luZyB0YWJsZSBsZW5ndGggdG8gNTAgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzUwJykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gNTA7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoYW5naW5nIHRhYmxlIGxlbmd0aCB0byAxMDAgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzEwMCcpLmNoYW5nZSgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDU3OyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDaGFuZ2luZyB0YWJsZSBsZW5ndGggdG8gMTAgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzEwJykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMTA7IH0KCSk7CgkKCS8qCgkgKiBJbmZvcm1hdGlvbiBlbGVtZW50CgkgKi8KCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gb24gemVybyBjb25maWciLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIG9uIHNlY29uZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMTEgdG8gMjAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gb24gdGhpcmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDIxIHRvIDMwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/sAjaxDataProp2.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIkN1c3RvbSBkYXRhIHNvdXJjZSBwcm9wZXJ0eSAtIGFycmF5IG9ubHkiICk7CgoKJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uICgpIHsKCXZhciBvSW5pdCA9IHsKCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5X29ubHkudHh0IiwKCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkic0FqYXhEYXRhUHJvcCI6ICIiCgl9OwoJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIG9Jbml0ICk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSIxMCByb3dzIHNob3duIG9uIHRoZSBmaXJzdCBwYWdlIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDEwOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJbml0aWFsIHNvcnQgb2NjdXJlZCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiR2Vja28iOyB9CgkpOwoJCgkvKiBOZWVkIHRvIHVzZSB0aGUgV2FpdFRlc3QgZm9yIHNvcnRpbmcgZHVlIHRvIHRoZSBzZXRUaW1lb3V0IGRhdGF0YWJsZXMgdXNlcyAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyAoZmlyc3QgY2xpY2spIG9uIHNlY29uZCBjb2x1bW4iLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyAoc2Vjb25kIGNsaWNrKSBvbiBzZWNvbmQgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiU2VhbW9ua2V5IDEuMSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgKHRoaXJkIGNsaWNrKSBvbiBzZWNvbmQgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgKGZpcnN0IGNsaWNrKSBvbiBudW1lcmljIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIi0iOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIChzZWNvbmQgY2xpY2spIG9uIG51bWVyaWMgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiNTIyLjEiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIG11bHRpLWNvbHVtbiAoZmlyc3QgY2xpY2spIiwKCQlmdW5jdGlvbiAoKSB7IAoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgwKScpLmNsaWNrKCk7CgkJCW9EaXNwYWNoZXIuY2xpY2soICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJylbMF0sIHsgJ3NoaWZ0JzogdHJ1ZSB9ICk7IH0sCgkJZnVuY3Rpb24gKCkgeyB2YXIgYiA9IAoJCQkkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiR2Vja28iICYmIAoJCQkkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQ2FtaW5vIDEuMCI7IHJldHVybiBiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIG11bHRpLWNvbHVtbiAtIHNvcnRpbmcgc2Vjb25kIGNvbHVtbiBvbmx5IiwKCQlmdW5jdGlvbiAoKSB7IAoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCgkvKiBCYXNpYyBwYWdpbmcgKi8KCW9UZXN0LmZuVGVzdCggCgkJIlBhZ2luZyB0byBzZWNvbmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiSUUgTW9iaWxlIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUGFnaW5nIHRvIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQXR0ZW1wdGluZyB0byBwYWdlIGJhY2sgYmV5b25kIHRoZSBmaXJzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCS8qIENoYW5naW5nIGxlbmd0aCAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2hhbmdpbmcgdGFibGUgbGVuZ3RoIHRvIDI1IHJlY29yZHMiLAoJCWZ1bmN0aW9uICgpIHsgJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcyNScpLmNoYW5nZSgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDI1OyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDaGFuZ2luZyB0YWJsZSBsZW5ndGggdG8gNTAgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzUwJykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gNTA7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoYW5naW5nIHRhYmxlIGxlbmd0aCB0byAxMDAgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzEwMCcpLmNoYW5nZSgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDU3OyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDaGFuZ2luZyB0YWJsZSBsZW5ndGggdG8gMTAgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzEwJykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMTA7IH0KCSk7CgkKCS8qCgkgKiBJbmZvcm1hdGlvbiBlbGVtZW50CgkgKi8KCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gb24gemVybyBjb25maWciLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIG9uIHNlY29uZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMTEgdG8gMjAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gb24gdGhpcmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDIxIHRvIDMwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/sAjaxSource.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggInNBamF4U291cmNlIiApOwoKLyogU2FuaXRmeSBjaGVjayByZWFsbHkgLSBhbGwgdGhlIG90aGVyIHRlc3RzIGJsYXN0IHRoaXMgKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJTZXJ2ZXIgc2lkZSBpcyBvZmYgYnkgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IAoJCQlyZXR1cm4gb1NldHRpbmdzLnNBamF4U291cmNlID09ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCI7CgkJfQoJKTsKCQoJb1Rlc3QuZm5Db21wbGV0ZSgpOwp9ICk7]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/sDom.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggInNEb20iICk7CgovKiBUaGlzIGlzIGdvaW5nIHRvIGJlIGJydXRhbCBvbiB0aGUgYnJvd3NlciEgVGhlcmUgaXMgYSBsb3QgdGhhdCBjYW4gYmUgdGVzdGVkIGhlcmUuLi4gKi8KCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJEZWZhdWx0IERPTSB2YXJhaWJsZSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Muc0RvbSA9PSAibGZydGlwIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkRlZmF1bHQgRE9NIGluIGRvY3VtZW50IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIG5Ob2RlcyA9ICQoJyNkZW1vIGRpdiwgI2RlbW8gdGFibGUnKTsKCQkJdmFyIG5XcmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfd3JhcHBlcicpOwoJCQl2YXIgbkxlbmd0aCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2xlbmd0aCcpOwoJCQl2YXIgbkZpbHRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2ZpbHRlcicpOwoJCQl2YXIgbkluZm8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJyk7CgkJCXZhciBuUGFnaW5nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcGFnaW5hdGUnKTsKCQkJdmFyIG5UYWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlJyk7CgkJCQoJCQl2YXIgYlJldHVybiA9IAoJCQkJbk5vZGVzWzBdID09IG5XcmFwcGVyICYmCgkJCQluTm9kZXNbMV0gPT0gbkxlbmd0aCAmJgoJCQkJbk5vZGVzWzJdID09IG5GaWx0ZXIgJiYKCQkJCW5Ob2Rlc1szXSA9PSBuVGFibGUgJiYKCQkJCW5Ob2Rlc1s0XSA9PSBuSW5mbyAmJgoJCQkJbk5vZGVzWzVdID09IG5QYWdpbmc7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDaGVjayBleGFtcGxlIDEgaW4gY29kZSBwcm9wYWdhdGVzIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJInNEb20iOiAnPCJ3cmFwcGVyImZsaXB0PicKCQkJfSApOwoJCQlvU2V0dGluZ3MgPSBvVGFibGUuZm5TZXR0aW5ncygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gb1NldHRpbmdzLnNEb20gPT0gJzwid3JhcHBlciJmbGlwdD4nOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ2hlY2sgZXhhbXBsZSAxIGluIERPTSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBqcU5vZGVzID0gJCgnI2RlbW8gZGl2LCAjZGVtbyB0YWJsZScpOwoJCQl2YXIgbk5vZGVzID0gW107CgkJCQoJCQkvKiBTdHJpcCB0aGUgcGFnaW5nIG5vZGVzICovCgkJCWZvciAoIHZhciBpPTAsIGlMZW49anFOb2Rlcy5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCQl7CgkJCQlpZiAoIGpxTm9kZXNbaV0uZ2V0QXR0cmlidXRlKCdpZCcpICE9ICJleGFtcGxlX3ByZXZpb3VzIiAmJgoJCQkJICAgICBqcU5vZGVzW2ldLmdldEF0dHJpYnV0ZSgnaWQnKSAhPSAiZXhhbXBsZV9uZXh0IiApCgkJCQl7CgkJCQkJbk5vZGVzLnB1c2goIGpxTm9kZXNbaV0gKTsKCQkJCX0KCQkJfQoJCQkKCQkJdmFyIG5XcmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfd3JhcHBlcicpOwoJCQl2YXIgbkxlbmd0aCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2xlbmd0aCcpOwoJCQl2YXIgbkZpbHRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2ZpbHRlcicpOwoJCQl2YXIgbkluZm8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJyk7CgkJCXZhciBuUGFnaW5nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcGFnaW5hdGUnKTsKCQkJdmFyIG5UYWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlJyk7CgkJCXZhciBuQ3VzdG9tV3JhcHBlciA9ICQoJ2Rpdi53cmFwcGVyJylbMF07CgkJCQoJCQl2YXIgYlJldHVybiA9IAoJCQkJbk5vZGVzWzBdID09IG5XcmFwcGVyICYmCgkJCQluTm9kZXNbMV0gPT0gbkN1c3RvbVdyYXBwZXIgJiYKCQkJCW5Ob2Rlc1syXSA9PSBuRmlsdGVyICYmCgkJCQluTm9kZXNbM10gPT0gbkxlbmd0aCAmJgoJCQkJbk5vZGVzWzRdID09IG5JbmZvICYmCgkJCQluTm9kZXNbNV0gPT0gblBhZ2luZyAmJgoJCQkJbk5vZGVzWzZdID09IG5UYWJsZTsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNoZWNrIGV4YW1wbGUgMiBpbiBET00iLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJEZWZlclJlbmRlciI6IHRydWUsCgkJCQkic0RvbSI6ICc8bGY8dD5pcD4nCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIGpxTm9kZXMgPSAkKCcjZGVtbyBkaXYsICNkZW1vIHRhYmxlJyk7CgkJCXZhciBuTm9kZXMgPSBbXTsKCQkJdmFyIG5DdXN0b21XcmFwcGVycyA9IFtdCgkJCQoJCQkvKiBTdHJpcCB0aGUgcGFnaW5nIG5vZGVzICovCgkJCWZvciAoIHZhciBpPTAsIGlMZW49anFOb2Rlcy5sZW5ndGggOyBpPGlMZW4gOyBpKysgKQoJCQl7CgkJCQlpZiAoIGpxTm9kZXNbaV0uZ2V0QXR0cmlidXRlKCdpZCcpICE9ICJleGFtcGxlX3ByZXZpb3VzIiAmJgoJCQkJICAgICBqcU5vZGVzW2ldLmdldEF0dHJpYnV0ZSgnaWQnKSAhPSAiZXhhbXBsZV9uZXh0IiApCgkJCQl7CgkJCQkJbk5vZGVzLnB1c2goIGpxTm9kZXNbaV0gKTsKCQkJCX0KCQkJCQoJCQkJLyogT25seSB0aGUgdHdvIGN1c3RvbSBkaXZzIGRvbid0IGhhdmUgY2xhc3MgbmFtZXMgKi8KCQkJCWlmICgganFOb2Rlc1tpXS5jbGFzc05hbWUgPT0gIiIgKQoJCQkJewoJCQkJCW5DdXN0b21XcmFwcGVycy5wdXNoKCBqcU5vZGVzW2ldICk7CgkJCQl9CgkJCX0KCQkJCgkJCXZhciBuV3JhcHBlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3dyYXBwZXInKTsKCQkJdmFyIG5MZW5ndGggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9sZW5ndGgnKTsKCQkJdmFyIG5GaWx0ZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9maWx0ZXInKTsKCQkJdmFyIG5JbmZvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpOwoJCQl2YXIgblBhZ2luZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3BhZ2luYXRlJyk7CgkJCXZhciBuVGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZScpOwoJCQkKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCW5Ob2Rlc1swXSA9PSBuV3JhcHBlciAmJgoJCQkJbk5vZGVzWzFdID09IG5DdXN0b21XcmFwcGVyc1swXSAmJgoJCQkJbk5vZGVzWzJdID09IG5MZW5ndGggJiYKCQkJCW5Ob2Rlc1szXSA9PSBuRmlsdGVyICYmCgkJCQluTm9kZXNbNF0gPT0gbkN1c3RvbVdyYXBwZXJzWzFdICYmCgkJCQluTm9kZXNbNV0gPT0gblRhYmxlICYmCgkJCQluTm9kZXNbNl0gPT0gbkluZm8gJiYKCQkJCW5Ob2Rlc1s3XSA9PSBuUGFnaW5nOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ2hlY2sgbm8gbGVuZ3RoIGVsZW1lbnQiLAoJCWZ1bmN0aW9uICgpIHsKCQkJb1Nlc3Npb24uZm5SZXN0b3JlKCk7CgkJCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJCQkic0FqYXhTb3VyY2UiOiAiLi4vLi4vLi4vZXhhbXBsZXMvYWpheC9zb3VyY2VzL2FycmF5cy50eHQiLAoJCQkJImJEZWZlclJlbmRlciI6IHRydWUsCgkJCQkic0RvbSI6ICdmcnRpcCcKCQkJfSApOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQl2YXIgbk5vZGVzID0gJCgnI2RlbW8gZGl2LCAjZGVtbyB0YWJsZScpOwoJCQl2YXIgbldyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV93cmFwcGVyJyk7CgkJCXZhciBuTGVuZ3RoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfbGVuZ3RoJyk7CgkJCXZhciBuRmlsdGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfZmlsdGVyJyk7CgkJCXZhciBuSW5mbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKTsKCQkJdmFyIG5QYWdpbmcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9wYWdpbmF0ZScpOwoJCQl2YXIgblRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGUnKTsKCQkJCgkJCXZhciBiUmV0dXJuID0gCgkJCQluTm9kZXNbMF0gPT0gbldyYXBwZXIgJiYKCQkJCW51bGwgPT0gbkxlbmd0aCAmJgoJCQkJbk5vZGVzWzFdID09IG5GaWx0ZXIgJiYKCQkJCW5Ob2Rlc1syXSA9PSBuVGFibGUgJiYKCQkJCW5Ob2Rlc1szXSA9PSBuSW5mbyAmJgoJCQkJbk5vZGVzWzRdID09IG5QYWdpbmc7CgkJCXJldHVybiBiUmV0dXJuOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDaGVjayBubyBmaWx0ZXIgZWxlbWVudCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJzRG9tIjogJ2xydGlwJwoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBuTm9kZXMgPSAkKCcjZGVtbyBkaXYsICNkZW1vIHRhYmxlJyk7CgkJCXZhciBuV3JhcHBlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3dyYXBwZXInKTsKCQkJdmFyIG5MZW5ndGggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9sZW5ndGgnKTsKCQkJdmFyIG5GaWx0ZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9maWx0ZXInKTsKCQkJdmFyIG5JbmZvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpOwoJCQl2YXIgblBhZ2luZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3BhZ2luYXRlJyk7CgkJCXZhciBuVGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZScpOwoJCQkKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCW5Ob2Rlc1swXSA9PSBuV3JhcHBlciAmJgoJCQkJbk5vZGVzWzFdID09IG5MZW5ndGggJiYKCQkJCW51bGwgPT0gbkZpbHRlciAmJgoJCQkJbk5vZGVzWzJdID09IG5UYWJsZSAmJgoJCQkJbk5vZGVzWzNdID09IG5JbmZvICYmCgkJCQluTm9kZXNbNF0gPT0gblBhZ2luZzsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJLyogTm90ZSB3ZSBkb24ndCB0ZXN0IGZvciBubyB0YWJsZSBhcyB0aGlzIGlzIG5vdCBzdXBwb3J0ZWQgKGFuZCBpdCB3b3VsZCBiZSBmYWlybHkgZGFmdCEgKi8KCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNoZWNrIG5vIGluZm8gZWxlbWVudCIsCgkJZnVuY3Rpb24gKCkgewoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIHsKCQkJCSJzQWpheFNvdXJjZSI6ICIuLi8uLi8uLi9leGFtcGxlcy9hamF4L3NvdXJjZXMvYXJyYXlzLnR4dCIsCgkJCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZSwKCQkJCSJzRG9tIjogJ2xmcnRwJwoJCQl9ICk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXZhciBuTm9kZXMgPSAkKCcjZGVtbyBkaXYsICNkZW1vIHRhYmxlJyk7CgkJCXZhciBuV3JhcHBlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3dyYXBwZXInKTsKCQkJdmFyIG5MZW5ndGggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9sZW5ndGgnKTsKCQkJdmFyIG5GaWx0ZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9maWx0ZXInKTsKCQkJdmFyIG5JbmZvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpOwoJCQl2YXIgblBhZ2luZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX3BhZ2luYXRlJyk7CgkJCXZhciBuVGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZScpOwoJCQkKCQkJdmFyIGJSZXR1cm4gPSAKCQkJCW5Ob2Rlc1swXSA9PSBuV3JhcHBlciAmJgoJCQkJbk5vZGVzWzFdID09IG5MZW5ndGggJiYKCQkJCW5Ob2Rlc1syXSA9PSBuRmlsdGVyICYmCgkJCQluTm9kZXNbM10gPT0gblRhYmxlICYmCgkJCQludWxsID09IG5JbmZvICYmCgkJCQluTm9kZXNbNF0gPT0gblBhZ2luZzsKCQkJcmV0dXJuIGJSZXR1cm47CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNoZWNrIG5vIHBhZ2luZyBlbGVtZW50IiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQkkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJInNEb20iOiAnbGZydGknCgkJCX0gKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJdmFyIG5Ob2RlcyA9ICQoJyNkZW1vIGRpdiwgI2RlbW8gdGFibGUnKTsKCQkJdmFyIG5XcmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfd3JhcHBlcicpOwoJCQl2YXIgbkxlbmd0aCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2xlbmd0aCcpOwoJCQl2YXIgbkZpbHRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2ZpbHRlcicpOwoJCQl2YXIgbkluZm8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJyk7CgkJCXZhciBuUGFnaW5nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcGFnaW5hdGUnKTsKCQkJdmFyIG5UYWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlJyk7CgkJCQoJCQl2YXIgYlJldHVybiA9IAoJCQkJbk5vZGVzWzBdID09IG5XcmFwcGVyICYmCgkJCQluTm9kZXNbMV0gPT0gbkxlbmd0aCAmJgoJCQkJbk5vZGVzWzJdID09IG5GaWx0ZXIgJiYKCQkJCW5Ob2Rlc1szXSA9PSBuVGFibGUgJiYKCQkJCW5Ob2Rlc1s0XSA9PSBuSW5mbyAmJgoJCQkJbnVsbCA9PSBuUGFnaW5nOwoJCQlyZXR1cm4gYlJldHVybjsKCQl9CgkpOwoJCgkKCW9UZXN0LmZuQ29tcGxldGUoKTsKfSApOw==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/sPaginationType.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggInNQYWdpbmF0aW9uVHlwZSIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7CgkvKiBDaGVjayB0aGUgZGVmYXVsdCAqLwoJdmFyIG9UYWJsZSA9ICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZQoJfSApOwoJdmFyIG9TZXR0aW5ncyA9IG9UYWJsZS5mblNldHRpbmdzKCk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDaGVjayB0d28gYnV0dG9uIHBhZ2luZyBpcyB0aGUgZGVmYXVsdCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBvU2V0dGluZ3Muc1BhZ2luYXRpb25UeXBlID09ICJ0d29fYnV0dG9uIjsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkNoZWNrIGNsYXNzIGlzIGFwcGxpZWQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGVfcGFnaW5hdGUnKS5oYXNDbGFzcygncGFnaW5nX3R3b19idXR0b24nKTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlR3byBBIGVsZW1lbnRzIGFyZSBpbiB0aGUgd3JhcHBlciIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9wYWdpbmF0ZSBhJykubGVuZ3RoID09IDI7IH0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJXZSBoYXZlIHRoZSBwcmV2aW91cyBidXR0b24iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfcHJldmlvdXMnKTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIldlIGhhdmUgdGhlIG5leHQgYnV0dG9uIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX25leHQnKTsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIlByZXZpb3VzIGJ1dHRvbiBpcyBkaXNhYmxlZCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9wcmV2aW91cycpLmhhc0NsYXNzKCdwYWdpbmF0ZV9kaXNhYmxlZF9wcmV2aW91cycpOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiTmV4dCBidXR0b24gaXMgZW5hYmxlZCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZV9uZXh0JykuaGFzQ2xhc3MoJ3BhZ2luYXRlX2VuYWJsZWRfbmV4dCcpOyB9CgkpOwoJCgkvKiBEb24ndCB0ZXN0IHBhZ2luZyAtIHRoYXQncyBkb25lIGJ5IHRoZSB6ZXJvIGNvbmZpZyB0ZXN0IHNjcmlwdC4gKi8KCQoJCgkvKiBUd28gYnV0dG9ucyBwYWdpbmcgKi8KCXZhciBiQ29tcGxldGUgPSBmYWxzZTsKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJDYW4gZW5hYmxlZCBmdWxsIG51bWJlcnMgcGFnaW5nIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW9TZXNzaW9uLmZuUmVzdG9yZSgpOwoJCQlvVGFibGUgPSAkKCcjZXhhbXBsZScpLmRhdGFUYWJsZSggewoJCQkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkJCSJiRGVmZXJSZW5kZXIiOiB0cnVlLAoJCQkJInNQYWdpbmF0aW9uVHlwZSI6ICJmdWxsX251bWJlcnMiLAoJCQkJImZuSW5pdENvbXBsZXRlIjogZnVuY3Rpb24gKCkgewoJCQkJCWJDb21wbGV0ZSA9IHRydWU7CgkJCQl9CgkJCX0gKTsKCQkJb1NldHRpbmdzID0gb1RhYmxlLmZuU2V0dGluZ3MoKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJaWYgKCBiQ29tcGxldGUgKQoJCQkJcmV0dXJuIG9TZXR0aW5ncy5zUGFnaW5hdGlvblR5cGUgPT0gImZ1bGxfbnVtYmVycyI7CgkJCWVsc2UKCQkJCXJldHVybiBmYWxzZTsKCQl9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiQ2hlY2sgZnVsbCBudW1iZXJzIGNsYXNzIGlzIGFwcGxpZWQiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGVfcGFnaW5hdGUnKS5oYXNDbGFzcygncGFnaW5nX2Z1bGxfbnVtYmVycycpOyB9CgkpOwoJCgkKCXZhciBuRmlyc3QsIG5QcmV2aW91cywgbk5leHQsIG5MYXN0OwoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIkp1bXAgdG8gbGFzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW5GaXJzdCA9ICQoJ2Rpdi5kYXRhVGFibGVzX3BhZ2luYXRlIGEuZmlyc3QnKTsKCQkJblByZXZpb3VzID0gJCgnZGl2LmRhdGFUYWJsZXNfcGFnaW5hdGUgYS5wcmV2aW91cycpOwoJCQluTmV4dCA9ICQoJ2Rpdi5kYXRhVGFibGVzX3BhZ2luYXRlIGEubmV4dCcpOwoJCQluTGFzdCA9ICQoJ2Rpdi5kYXRhVGFibGVzX3BhZ2luYXRlIGEubGFzdCcpOwoJCQluTGFzdC5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyA1MSB0byA1NyBvZiA1NyBlbnRyaWVzIjsKCQl9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiR28gdG8gdHdvIHBhZ2VzIHByZXZpb3VzIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW5QcmV2aW91cy5jbGljaygpOwoJCQluUHJldmlvdXMuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsKCQkJcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMzEgdG8gNDAgb2YgNTcgZW50cmllcyI7CgkJfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIk5leHQgKHNlY29uZCBsYXN0KSBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7CgkJCW5OZXh0LmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDQxIHRvIDUwIG9mIDU3IGVudHJpZXMiOwoJCX0KCSk7CgkKCW9UZXN0LmZuV2FpdFRlc3QoIAoJCSJKdW1wIHRvIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJbkZpcnN0LmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7CgkJCXJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7CgkJfQoJKTsKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/tests_onhold/6_delayed_rendering/_zero_config.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gREFUQV9URU1QTEFURTogZW1wdHlfdGFibGUKb1Rlc3QuZm5TdGFydCggIlNhbml0eSBjaGVja3MgZm9yIERhdGFUYWJsZXMgd2l0aCBkZWxheWVkIERPTSBjcmVhdGlvbiIgKTsKCiQoZG9jdW1lbnQpLnJlYWR5KCBmdW5jdGlvbiAoKSB7Cgl2YXIgb0luaXQgPSB7CgkJInNBamF4U291cmNlIjogIi4uLy4uLy4uL2V4YW1wbGVzL2FqYXgvc291cmNlcy9hcnJheXMudHh0IiwKCQkiYkRlZmVyUmVuZGVyIjogdHJ1ZQoJfTsKCSQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCBvSW5pdCApOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiMTAgcm93cyBzaG93biBvbiB0aGUgZmlyc3QgcGFnZSIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cicpLmxlbmd0aCA9PSAxMDsgfQoJKTsKCQoJb1Rlc3QuZm5XYWl0VGVzdCggCgkJIjEwIFRSIGVsZW1lbnRzIGF2YWlsYWJsZSBmcm9tIGZuR2V0Tm9kZXMiLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoKS5mbkdldE5vZGVzKCkubGVuZ3RoID09IDEwOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJJbml0aWFsIHNvcnQgb2NjdXJlZCIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiR2Vja28iOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIChmaXJzdCBjbGljaykgb24gc2Vjb25kIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCglvVGVzdC5mbldhaXRUZXN0KCAKCQkiMTQgVFIgZWxlbWVudHMgYXZhaWxhYmxlIGZyb20gZm5HZXROb2RlcyBhZnRlciBzb3J0IiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlJykuZGF0YVRhYmxlKCkuZm5HZXROb2RlcygpLmxlbmd0aCA9PSAxNDsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiU29ydGluZyAoc2Vjb25kIGNsaWNrKSBvbiBzZWNvbmQgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiU2VhbW9ua2V5IDEuMSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgKHRoaXJkIGNsaWNrKSBvbiBzZWNvbmQgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIlNvcnRpbmcgKGZpcnN0IGNsaWNrKSBvbiBudW1lcmljIGNvbHVtbiIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIi0iOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIChzZWNvbmQgY2xpY2spIG9uIG51bWVyaWMgY29sdW1uIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDMpJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgzKScpLmh0bWwoKSA9PSAiNTIyLjEiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIG11bHRpLWNvbHVtbiAoZmlyc3QgY2xpY2spIiwKCQlmdW5jdGlvbiAoKSB7IAoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgwKScpLmNsaWNrKCk7CgkJCW9EaXNwYWNoZXIuY2xpY2soICQoJyNleGFtcGxlIHRoZWFkIHRoOmVxKDEpJylbMF0sIHsgJ3NoaWZ0JzogdHJ1ZSB9ICk7IH0sCgkJZnVuY3Rpb24gKCkgeyB2YXIgYiA9IAoJCQkkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgwKScpLmh0bWwoKSA9PSAiR2Vja28iICYmIAoJCQkkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQ2FtaW5vIDEuMCI7IHJldHVybiBiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJTb3J0aW5nIG11bHRpLWNvbHVtbiAtIHNvcnRpbmcgc2Vjb25kIGNvbHVtbiBvbmx5IiwKCQlmdW5jdGlvbiAoKSB7IAoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgxKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdGQ6ZXEoMSknKS5odG1sKCkgPT0gIkFsbCBvdGhlcnMiOyB9CgkpOwoJCgkvKiBCYXNpYyBwYWdpbmcgKi8KCW9UZXN0LmZuVGVzdCggCgkJIlBhZ2luZyB0byBzZWNvbmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiSUUgTW9iaWxlIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiUGFnaW5nIHRvIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRkOmVxKDEpJykuaHRtbCgpID09ICJBbGwgb3RoZXJzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KCAKCQkiQXR0ZW1wdGluZyB0byBwYWdlIGJhY2sgYmV5b25kIHRoZSBmaXJzdCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiQWxsIG90aGVycyI7IH0KCSk7CgkKCS8qIENoYW5naW5nIGxlbmd0aCAqLwoJb1Rlc3QuZm5UZXN0KCAKCQkiQ2hhbmdpbmcgdGFibGUgbGVuZ3RoIHRvIDI1IHJlY29yZHMiLAoJCWZ1bmN0aW9uICgpIHsgJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcyNScpLmNoYW5nZSgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDI1OyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDaGFuZ2luZyB0YWJsZSBsZW5ndGggdG8gNTAgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzUwJykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gNTA7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCggCgkJIkNoYW5naW5nIHRhYmxlIGxlbmd0aCB0byAxMDAgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzEwMCcpLmNoYW5nZSgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyJykubGVuZ3RoID09IDU3OyB9CgkpOwoJCglvVGVzdC5mblRlc3QoIAoJCSJDaGFuZ2luZyB0YWJsZSBsZW5ndGggdG8gMTAgcmVjb3JkcyIsCgkJZnVuY3Rpb24gKCkgeyAkKCJzZWxlY3RbbmFtZT1leGFtcGxlX2xlbmd0aF0iKS52YWwoJzEwJykuY2hhbmdlKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHInKS5sZW5ndGggPT0gMTA7IH0KCSk7CgkKCS8qCgkgKiBJbmZvcm1hdGlvbiBlbGVtZW50CgkgKi8KCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gb24gemVybyBjb25maWciLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIG9uIHNlY29uZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gIlNob3dpbmcgMTEgdG8gMjAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gb24gdGhpcmQgcGFnZSIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDIxIHRvIDMwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIG9uIGxhc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyA1MSB0byA1NyBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiBiYWNrIG9uIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCAyNSByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7ICQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnMjUnKS5jaGFuZ2UoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDEgdG8gMjUgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCAyNSByZWNvcmRzIC0gc2Vjb25kIHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAyNiB0byA1MCBvZiA1NyBlbnRyaWVzIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIDEwMCByZWNvcmRzIC0gZmlyc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoInNlbGVjdFtuYW1lPWV4YW1wbGVfbGVuZ3RoXSIpLnZhbCgnMTAwJykuY2hhbmdlKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09ICJTaG93aW5nIDEgdG8gNTcgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gYmFjayB0byAxMCByZWNvcmRzIiwKCQlmdW5jdGlvbiAoKSB7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQkJJCgic2VsZWN0W25hbWU9ZXhhbXBsZV9sZW5ndGhdIikudmFsKCcxMCcpLmNoYW5nZSgpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyICdXaW4nIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2luIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyICdXaW4nIHNlY29uZCBwYWdlIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX25leHQnKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDExIHRvIDIwIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyICdXaW4nIGxhc3QgcGFnZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQkJJCgnI2V4YW1wbGVfbmV4dCcpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAzMSB0byAzMSBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJJbmZvcm1hdGlvbiB3aXRoIGZpbHRlciAnV2luJyBiYWNrIHRvIGZpcnN0IHBhZ2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfcHJldmlvdXMnKS5jbGljaygpOwoJCQkkKCcjZXhhbXBsZV9wcmV2aW91cycpLmNsaWNrKCk7CgkJCSQoJyNleGFtcGxlX3ByZXZpb3VzJykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgMzEgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgJ1dpbicgc2Vjb25kIHBhZ2UgLSBzZWNvbmQgdGltZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDExIHRvIDIwIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyIGluY3JlYXNlZCB0byAnV2luIDk4JyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIldpbiA5OCIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byA5IG9mIDkgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiSW5mb3JtYXRpb24gd2l0aCBmaWx0ZXIgZGVjcmVhc2VkIHRvICdXaW4nIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2luIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyICdXaW4nIHNlY29uZCBwYWdlIC0gdGhpcmQgdGltZSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9uZXh0JykuY2xpY2soKTsKCQl9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDExIHRvIDIwIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkluZm9ybWF0aW9uIHdpdGggZmlsdGVyIHJlbW92ZWQiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCIiKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgNTcgZW50cmllcyI7IH0KCSk7CgkKCQoJLyoKCSAqIEZpbHRlcmluZwoJICovCglvVGVzdC5mbldhaXRUZXN0KAoJCSJGaWx0ZXIgJ1cnIC0gcm93cyIsCgkJZnVuY3Rpb24gKCkgeyAKCQkJLyogUmVzZXQgdGhlIHRhYmxlIHN1Y2ggdGhhdCB0aGUgb2xkIHNvcnRpbmcgZG9lc24ndCBtZXNzIHRoaW5ncyB1cCAqLwoJCQlvU2Vzc2lvbi5mblJlc3RvcmUoKTsKCQkJJCgnI2V4YW1wbGUnKS5kYXRhVGFibGUoIG9Jbml0ICk7CgkJCSQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiVyIpLmtleXVwKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMCknKS5odG1sKCkgPT0gIkdlY2tvIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1cnIC0gaW5mbyIsCgkJbnVsbCwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDQyIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2knIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2kiKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gMTAgb2YgMzIgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaW4nIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2luIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDMxIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luJyAtIHNvcnRpbmcgY29sdW1uIDEiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICJBT0wgYnJvd3NlciAoQU9MIGRlc2t0b3ApIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbicgLSBzb3J0aW5nIGNvbHVtbiAxIGluZm8iLAoJCW51bGwsCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAzMSBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbicgLSBzb3J0aW5nIGNvbHVtbiAxIHJldmVyc2UiLAoJCWZ1bmN0aW9uICgpIHsgJCgnI2V4YW1wbGUgdGhlYWQgdGg6ZXEoMSknKS5jbGljaygpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDEpJykuaHRtbCgpID09ICJTZWFtb25rZXkgMS4xIjsgfQoJKTsKCQoJb1Rlc3QuZm5UZXN0KAoJCSJGaWx0ZXIgJ1dpbiBYUCcgLSBtYWludGFpbmcgcmV2ZXJzZSBzb3J0aW5nIGNvbCAxIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiV2luIFhQIikua2V5dXAoKTsgfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiAkKCcjZXhhbXBsZSB0Ym9keSB0cjplcSgwKSB0ZDplcSgxKScpLmh0bWwoKSA9PSAiSW50ZXJuZXQgRXhwbG9yZXIgNyI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdXaW4gWFAnIC0gc29ydGluZyBjb2wgMyIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIjQiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luIFhQJyAtIHNvcnRpbmcgY29sIDMgLSByZXZlcnNlZCIsCgkJZnVuY3Rpb24gKCkgeyAkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgzKScpLmNsaWNrKCk7IH0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gJCgnI2V4YW1wbGUgdGJvZHkgdHI6ZXEoMCkgdGQ6ZXEoMyknKS5odG1sKCkgPT0gIjciOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnV2luJyAtIHNvcnRpbmcgY29sIDMgLSByZXZlcnNlZCBpbmZvIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDEgdG8gNiBvZiA2IGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciAnbm90aGluZ2hlcmUnIiwKCQlmdW5jdGlvbiAoKSB7ICQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgibm90aGluZ2hlcmUiKS5rZXl1cCgpOyB9LAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuICQoJyNleGFtcGxlIHRib2R5IHRyOmVxKDApIHRkOmVxKDApJykuaHRtbCgpID09IAoJCQkiTm8gbWF0Y2hpbmcgcmVjb3JkcyBmb3VuZCI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiRmlsdGVyICdub3RoaW5naGVyZScgLSBpbmZvIiwKCQludWxsLAoJCWZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleGFtcGxlX2luZm8nKS5pbm5lckhUTUwgPT0gCgkJCSJTaG93aW5nIDAgdG8gMCBvZiAwIGVudHJpZXMgKGZpbHRlcmVkIGZyb20gNTcgdG90YWwgZW50cmllcykiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIkZpbHRlciBiYWNrIHRvIGJsYW5rIGFuZCAxc3QgY29sdW1uIHNvcnRpbmciLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCIiKS5rZXl1cCgpOwoJCQkkKCcjZXhhbXBsZSB0aGVhZCB0aDplcSgwKScpLmNsaWNrKCk7CgkJfSwKCQlmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZV9pbmZvJykuaW5uZXJIVE1MID09IAoJCQkiU2hvd2luZyAxIHRvIDEwIG9mIDU3IGVudHJpZXMiOyB9CgkpOwoJCglvVGVzdC5mblRlc3QoCgkJIlByZWZpeGluZyBhIGZpbHRlciBlbnRyeSIsCgkJZnVuY3Rpb24gKCkgewoJCQkkKCcjZXhhbXBsZV9maWx0ZXIgaW5wdXQnKS52YWwoIldpbiIpLmtleXVwKCk7CgkJCSQoJyNleGFtcGxlX2ZpbHRlciBpbnB1dCcpLnZhbCgiR2Vja29XaW4iKS5rZXl1cCgpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMCB0byAwIG9mIDAgZW50cmllcyAoZmlsdGVyZWQgZnJvbSA1NyB0b3RhbCBlbnRyaWVzKSI7IH0KCSk7CgkKCW9UZXN0LmZuVGVzdCgKCQkiUHJlZml4aW5nIGEgZmlsdGVyIGVudHJ5IHdpdGggc3BhY2UiLAoJCWZ1bmN0aW9uICgpIHsKCQkJJCgnI2V4YW1wbGVfZmlsdGVyIGlucHV0JykudmFsKCJHZWNrbyBXaW4iKS5rZXl1cCgpOwoJCX0sCgkJZnVuY3Rpb24gKCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGVfaW5mbycpLmlubmVySFRNTCA9PSAKCQkJIlNob3dpbmcgMSB0byAxMCBvZiAxNyBlbnRyaWVzIChmaWx0ZXJlZCBmcm9tIDU3IHRvdGFsIGVudHJpZXMpIjsgfQoJKTsKCQoJCgkKCQoJCgkKCQoJCglvVGVzdC5mbkNvbXBsZXRlKCk7Cn0gKTs=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/media/unit_testing/unit_test.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogRmlsZTogICAgICAgIHVuaXRfdGVzdC5qcwogKiBWZXJzaW9uOiAgICAgMC4wLjEKICogQ1ZTOiAgICAgICAgICRJZCQKICogRGVzY3JpcHRpb246IFVuaXQgdGVzdCBmcmFtZXdvcmsKICogQXV0aG9yOiAgICAgIEFsbGFuIEphcmRpbmUgKHd3dy5zcHJ5bWVkaWEuY28udWspCiAqIENyZWF0ZWQ6ICAgICBTdW4gTWFyICA4IDIyOjAyOjQ5IEdNVCAyMDA5CiAqIE1vZGlmaWVkOiAgICAkRGF0ZSQgYnkgJEF1dGhvciQKICogTGFuZ3VhZ2U6ICAgIEphdmFzY3JpcHQKICogTGljZW5zZTogICAgIEdQTCB2MiBvciBCU0QgMyBwb2ludCBzdHlsZQogKiBQcm9qZWN0OiAgICAgRGF0YVRhYmxlcwogKiBDb250YWN0OiAgICAgYWxsYW4uamFyZGluZUBzcHJ5bWVkaWEuY28udWsKICogCiAqIENvcHlyaWdodCAyMDA5IEFsbGFuIEphcmRpbmUsIGFsbCByaWdodHMgcmVzZXJ2ZWQuCiAqCiAqIERlc2NyaXB0aW9uOgogKiBUaGlzIGlzIGEgamF2YXNjcmlwdCBsaWJyYXJ5IHN1aXRhYmxlIGZvciB1c2UgYXMgYSB1bml0IHRlc3RpbmcgZnJhbWV3b3JrLiBFbXBsb3lpbmcgYSBxdWV1aW5nCiAqIG1lY2hhbmlzaW0gdG8gdGFrZSBhY2NvdW50IG9mIGFzeW5jIGV2ZW50cyBpbiBqYXZhc2NyaXB0LCB0aGlzIGxpYnJhcnkgd2lsbCBjb21tdW5pY2F0ZXMgd2l0aAogKiBhIGNvbnRyb2xsZXIgZnJhbWUgKHRvIHJlcG9ydCBpbmRpdmlkdWFsIHRlc3Qgc3RhdHVzKS4KICogCiAqLwoKCnZhciBvVGVzdCA9IHsKCS8qIEJsb2NrIGZ1cnRoZXIgdGVzdHMgZnJvbSBvY2N1cmluZyAtIG1pZ2h0IGJlIGVuZCBvZiB0ZXN0cyBvciBkdWUgdG8gYXN5bmMgd2FpdCAqLwoJYkJsb2NrOiBmYWxzZSwKCQoJLyogTnVtYmVyIG9mIHRpbWVzIHRvIHRyeSByZXRlc3RpbmcgZm9yIGEgYmxvY2tpbmcgdGVzdCAqLwoJaVJlVGVzdExpbWl0OiAyMCwKCQoJLyogQW1vdW50IG9mIHRpbWUgdG8gd2FpdCBiZXR3ZWVuIHRyeWluZyBmb3IgYW4gYXN5bmMgdGVzdCAqLwoJaVJlVGVzdERlbGF5OiAxNTAsCgkKCS8qIEVuZCB0ZXN0cyAtIGV4dGVybmFsIGNvbnRyb2wgKi8KCWJFbmQ6IGZhbHNlLAoJCgkvKiBJbnRlcm5hbCB2YXJpYWJsZXMgKi8KCV9hb1F1ZXVlOiBbXSwKCV9pUmVUZXN0OiAwLAoJX2JGaW5pc2hlZDogZmFsc2UsCgkKCQoJLyogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqCgkgKiBSZWNvbW1lbmVkIHB1YmxpYyBmdW5jdGlvbnMKCSAqLwoJCgkvKgoJICogRnVuY3Rpb246IGZuVGVzdAoJICogUHVycG9zZTogIEFkZCBhIHRlc3QgdG8gdGhlIHF1ZXVlCgkgKiBSZXR1cm5zOiAgLQoJICogSW5wdXRzOiAgIHN0cmluZzpzTWVzc2FnZSAtIG5hbWUgb2YgdGhlIHRlc3QKCSAqICAgICAgICAgICBmdW5jdGlvbjpmblRlc3QgLSBmdW5jdGlvbiB3aGljaCB3aWxsIGJlIGV2YWx1ZGF0ZWQgdG8gZ2V0IHRoZSB0ZXN0IHJlc3VsdAoJICovCgkiZm5UZXN0IjogZnVuY3Rpb24gKCBzTWVzc2FnZSwgZm5TZXR1cCwgZm5UZXN0ICkKCXsKCQl0aGlzLl9hb1F1ZXVlLnB1c2goIHsKCQkJInNNZXNzYWdlIjogc01lc3NhZ2UsCgkJCSJmblNldHVwIjogZm5TZXR1cCwKCQkJImZuVGVzdCI6IGZuVGVzdCwKCQkJImJQb2xsIjogZmFsc2UKCQl9ICk7CgkJdGhpcy5fZm5OZXh0KCk7Cgl9LAoJCgkvKgoJICogRnVuY3Rpb246IGZuV2FpdFRlc3QKCSAqIFB1cnBvc2U6ICBBZGQgYSB0ZXN0IHRvIHRoZSBxdWV1ZSB3aGljaCBoYXMgYSByZS10ZXN0IGN5Y2xlCgkgKiBSZXR1cm5zOiAgLQoJICogSW5wdXRzOiAgIHN0cmluZzpzTWVzc2FnZSAtIG5hbWUgb2YgdGhlIHRlc3QKCSAqICAgICAgICAgICBmdW5jdGlvbjpmblRlc3QgLSBmdW5jdGlvbiB3aGljaCB3aWxsIGJlIGV2YWx1ZGF0ZWQgdG8gZ2V0IHRoZSB0ZXN0IHJlc3VsdAoJICovCgkiZm5XYWl0VGVzdCI6IGZ1bmN0aW9uICggc01lc3NhZ2UsIGZuU2V0dXAsIGZuVGVzdCApCgl7CgkJdGhpcy5fYW9RdWV1ZS5wdXNoKCB7CgkJCSJzTWVzc2FnZSI6IHNNZXNzYWdlLAoJCQkiZm5TZXR1cCI6IGZuU2V0dXAsCgkJCSJmblRlc3QiOiBmblRlc3QsCgkJCSJiUG9sbCI6IHRydWUKCQl9ICk7CgkJdGhpcy5fZm5OZXh0KCk7Cgl9LAoJCgkvKgoJICogRnVuY3Rpb246IGZuU3RhcnQKCSAqIFB1cnBvc2U6ICBJbmRpY2F0ZSB0aGF0IHRoaXMgaXMgYSBuZXcgdW5pdCBhbmQgd2hhdCBpdCBpcyB0ZXN0aW5nIChtZXNzYWdlIHRvIGVuZCB1c2VyKQoJICogUmV0dXJuczogIC0KCSAqIElucHV0czogICBzdHJpbmc6c01lc3NhZ2UgLSBtZXNzYWdlIHRvIGdpdmUgdG8gdGhlIHVzZXIgYWJvdXQgdGhpcyB1bml0CgkgKi8KCSJmblN0YXJ0IjogZnVuY3Rpb24gKCBzTWVzc2FnZSApCgl7CgkJd2luZG93LnBhcmVudC5jb250cm9sbGVyLmZuU3RhcnRNZXNzYWdlKCBzTWVzc2FnZSApOwoJfSwKCQoJLyoKCSAqIEZ1bmN0aW9uOiBmbkNvbXBsZXRlCgkgKiBQdXJwb3NlOiAgVGVsbCB0aGUgY29udHJvbGxlciB0aGF0IHdlIGFyZSBhbGwgZG9uZSBoZXJlCgkgKiBSZXR1cm5zOiAgLQoJICogSW5wdXRzOiAgIC0KCSAqLwoJImZuQ29tcGxldGUiOiBmdW5jdGlvbiAoKQoJewoJCXRoaXMuX2JGaW5pc2hlZCA9IHRydWU7CgkJdGhpcy5fZm5OZXh0KCk7Cgl9LAoJCgkvKgoJICogRnVuY3Rpb246IGZuQ29va2llRGVzdHJveQoJICogUHVycG9zZTogIERlc3Ryb3kgYSBjb29raWUgb2YgYSBnaXZlbiBuYW1lCgkgKiBSZXR1cm5zOiAgLQoJICogSW5wdXRzOiAgIC0KCSAqLwoJImZuQ29va2llRGVzdHJveSI6IGZ1bmN0aW9uICggb1RhYmxlICkKCXsKCQl2YXIgc05hbWUgPSBvVGFibGUuZm5TZXR0aW5ncygpLnNDb29raWVQcmVmaXgrb1RhYmxlLmZuU2V0dGluZ3MoKS5zSW5zdGFuY2U7CgkJdmFyIGFQYXJ0cyA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5zcGxpdCgnLycpOwoJCXZhciBzTmFtZUZpbGUgPSBzTmFtZSArICdfJyArIGFQYXJ0cy5wb3AoKS5yZXBsYWNlKC9bXC86XS9nLCIiKS50b0xvd2VyQ2FzZSgpOwoJCWRvY3VtZW50LmNvb2tpZSA9IHNOYW1lRmlsZSsiPTsgZXhwaXJlcz1UaHUsIDAxLUphbi0xOTcwIDAwOjAwOjAxIEdNVDsgcGF0aD0iKwoJCQlhUGFydHMuam9pbignLycpICsgIi8iOwoJfSwKCQoJCgkKCS8qICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKgoJICogSW50ZXJuYWwgZnVuY3Rpb25zCgkgKi8KCQoJCgkiX2ZuUmVUZXN0IjogZnVuY3Rpb24gKCBvVGVzdEluZm8gKQoJewoJCXZhciBiUmVzdWx0ID0gb1Rlc3RJbmZvLmZuVGVzdCggKTsKCQlpZiAoIGJSZXN1bHQgKQoJCXsKCQkJLyogVGVzdCBwYXNzZWQgb24gcmV0cnkgKi8KCQkJdGhpcy5fZm5SZXN1bHQoIHRydWUgKTsKCQkJdGhpcy5fZm5OZXh0KCk7CgkJfQoJCWVsc2UKCQl7CgkJCWlmICggdGhpcy5faVJlVGVzdCA8IHRoaXMuaVJlVGVzdExpbWl0ICkKCQkJewoJCQkJdGhpcy5faVJlVGVzdCsrOwoJCQkJc2V0VGltZW91dCggZnVuY3Rpb24oKSB7CgkJCQkJb1Rlc3QuX2ZuUmVUZXN0KCBvVGVzdEluZm8gKTsKCQkJCX0sIHRoaXMuaVJlVGVzdERlbGF5ICk7CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQl0aGlzLl9mblJlc3VsdCggZmFsc2UgKTsKCQkJfQoJCX0KCX0sCgkKCSJfZm5OZXh0IjogZnVuY3Rpb24gKCkKCXsKCQlpZiAoIHRoaXMuYkVuZCApCgkJewoJCQlyZXR1cm47CgkJfQoJCQoJCWlmICggIXRoaXMuYkJsb2NrICYmIHRoaXMuX2FvUXVldWUubGVuZ3RoID4gMCApCgkJewoJCQl2YXIgb05leHRUZXN0ID0gdGhpcy5fYW9RdWV1ZS5zaGlmdCgpOwoJCQl3aW5kb3cucGFyZW50LmNvbnRyb2xsZXIuZm5UZXN0U3RhcnQoIG9OZXh0VGVzdC5zTWVzc2FnZSApOwoJCQl0aGlzLmJCbG9jayA9IHRydWU7CgkJCQoJCQlpZiAoIHR5cGVvZiBvTmV4dFRlc3QuZm5TZXR1cCA9PSAnZnVuY3Rpb24nICkKCQkJewoJCQkJb05leHRUZXN0LmZuU2V0dXAoICk7CgkJCX0KCQkJdmFyIGJSZXN1bHQgPSBvTmV4dFRlc3QuZm5UZXN0KCApOwoJCQkvL2JSZXN1bHQgPSBmYWxzZTsKCQkJCgkJCWlmICggb05leHRUZXN0LmJQb2xsICkKCQkJewoJCQkJaWYgKCBiUmVzdWx0ICkKCQkJCXsKCQkJCQl0aGlzLl9mblJlc3VsdCggdHJ1ZSApOwoJCQkJCXRoaXMuX2ZuTmV4dCgpOwoJCQkJfQoJCQkJZWxzZQoJCQkJewoJCQkJCV9pUmVUZXN0ID0gMDsKCQkJCQlzZXRUaW1lb3V0KCBmdW5jdGlvbigpIHsKCQkJCQkJb1Rlc3QuX2ZuUmVUZXN0KCBvTmV4dFRlc3QgKTsKCQkJCQl9LCB0aGlzLmlSZVRlc3REZWxheSApOwoJCQkJfQoJCQl9CgkJCWVsc2UKCQkJewoJCQkJdGhpcy5fZm5SZXN1bHQoIGJSZXN1bHQgKTsKCQkJCXRoaXMuX2ZuTmV4dCgpOwoJCQl9CgkJfQoJCWVsc2UgaWYgKCAhdGhpcy5iQmxvY2sgJiYgdGhpcy5fYW9RdWV1ZS5sZW5ndGggPT0gMCAmJiB0aGlzLl9iRmluaXNoZWQgKQoJCXsKCQkJd2luZG93LnBhcmVudC5jb250cm9sbGVyLmZuVW5pdENvbXBsZXRlKCApOwoJCX0KCX0sCgkKCSJfZm5SZXN1bHQiOiBmdW5jdGlvbiAoIGIgKQoJewoJCXdpbmRvdy5wYXJlbnQuY29udHJvbGxlci5mblRlc3RSZXN1bHQoIGIgKTsKCQl0aGlzLmJCbG9jayA9IGZhbHNlOwoJCWlmICggIWIgKQoJCXsKCQkJdGhpcy5iRW5kID0gdHJ1ZTsKCQl9Cgl9Cn07CgoKdmFyIG9EaXNwYWNoZXIgPSB7CgkiY2xpY2siOiBmdW5jdGlvbiAoIG5Ob2RlLCBvU3BlY2lhbCApCgl7CgkJdmFyIGV2dCA9IHRoaXMuZm5DcmVhdGVFdmVudCggJ2NsaWNrJywgbk5vZGUsIG9TcGVjaWFsICk7CgkJaWYgKCBuTm9kZS5kaXNwYXRjaEV2ZW50ICkKCQkJbk5vZGUuZGlzcGF0Y2hFdmVudChldnQpOwoJCWVsc2UKCQkJbk5vZGUuZmlyZUV2ZW50KCdvbmNsaWNrJywgZXZ0KTsKCX0sCgkKCSJjaGFuZ2UiOiBmdW5jdGlvbiAoIG5Ob2RlICkKCXsKCQl2YXIgZXZ0ID0gdGhpcy5mbkNyZWF0ZUV2ZW50KCAnY2hhbmdlJywgbk5vZGUgKTsKCQlpZiAoIG5Ob2RlLmRpc3BhdGNoRXZlbnQgKQoJCW5Ob2RlLmRpc3BhdGNoRXZlbnQoZXZ0KTsKCQllbHNlCgkJCW5Ob2RlLmZpcmVFdmVudCgnb25jaGFuZ2UnLCBldnQpOwoJfSwKCQoJCgkvKgoJICogRnVuY3Rpb246IGZuQ3JlYXRlRXZlbnQKCSAqIFB1cnBvc2U6ICBDcmVhdGUgYW4gZXZlbnQgb2plY3QgYmFzZWQgb24gdGhlIHR5cGUgdG8gdHJpZ2dlciBhbiBldmVudCAtIHgtcGxhdGZvcm0KCSAqIFJldHVybnM6ICBldmVudDpldnQKCSAqIElucHV0czogICBzdHJpbmc6c1R5cGUgLSB0eXBlIG9mIGV2ZW50CgkgKiAgICAgICAgICAgbm9kZTpuVGFyZ2V0IC0gdGFyZ2V0IG5vZGUgb2YgdGhlIGV2ZW50CgkgKi8KCWZuQ3JlYXRlRXZlbnQ6IGZ1bmN0aW9uKCBzVHlwZSwgblRhcmdldCwgb1NwZWNpYWwgKQoJewoJCXZhciBldnQgPSBudWxsOwoJCXZhciBvVGFyZ2V0UG9zID0gdGhpcy5fZm5HZXRQb3MoIG5UYXJnZXQgKTsKCQl2YXIgc1R5cGVHcm91cCA9IHRoaXMuX2ZuRXZlbnRUeXBlR3JvdXAoIHNUeXBlICk7CgkJaWYgKCB0eXBlb2Ygb1NwZWNpYWwgPT0gJ3VuZGVmaW5lZCcgKQoJCXsKCQkJb1NwZWNpYWwgPSB7fTsKCQl9CgkJCgkJdmFyIGN0cmxLZXkgPSBmYWxzZTsKCQl2YXIgYWx0S2V5ID0gZmFsc2U7CgkJdmFyIHNoaWZ0S2V5ID0gKHR5cGVvZiBvU3BlY2lhbC5zaGlmdCAhPSAndW5kZWZpbmVkJykgPyBvU3BlY2lhbC5zaGlmdCA6IGZhbHNlOwoJCXZhciBtZXRhS2V5ID0gZmFsc2U7CgkJdmFyIGJ1dHRvbiA9IGZhbHNlOwoJCQoJCWlmICggZG9jdW1lbnQuY3JlYXRlRXZlbnQgKQoJCXsKCQkJc3dpdGNoICggc1R5cGVHcm91cCApCgkJCXsKCQkJCWNhc2UgJ21vdXNlJzoKCQkJCQlldnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCggIk1vdXNlRXZlbnRzIiApOwoJCQkJCWV2dC5pbml0TW91c2VFdmVudCggc1R5cGUsIHRydWUsIHRydWUsIHdpbmRvdywgMCwgb1RhcmdldFBvc1swXSwgb1RhcmdldFBvc1sxXSwgCgkJCQkJCW9UYXJnZXRQb3NbMF0sIG9UYXJnZXRQb3NbMV0sIGN0cmxLZXksIGFsdEtleSwgc2hpZnRLZXksIAoJCQkJCQltZXRhS2V5LCBidXR0b24sIG51bGwgKTsKCQkJCQlicmVhazsKCQkJCQoJCQkJY2FzZSAnaHRtbCc6CgkJCQkJZXZ0ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoICJIVE1MRXZlbnRzIiApOwoJCQkJCWV2dC5pbml0RXZlbnQoIHNUeXBlLCB0cnVlLCB0cnVlICk7CgkJCQkJYnJlYWs7CgkJCQkJCgkJCQljYXNlICd1aSc6CgkJCQkJZXZ0ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoICJVSUV2ZW50cyIgKTsKCQkJCQlldnQuaW5pdFVJRXZlbnQoIHNUeXBlLCB0cnVlLCB0cnVlLCB3aW5kb3csIDAgKTsKCQkJCQlicmVhazsKCQkJCQoJCQkJZGVmYXVsdDoKCQkJCQlicmVhazsKCQkJfQoJCX0KCQllbHNlIGlmICggZG9jdW1lbnQuY3JlYXRlRXZlbnRPYmplY3QgKQoJCXsKCQkJc3dpdGNoICggc1R5cGVHcm91cCApCgkJCXsKCQkJCWNhc2UgJ21vdXNlJzoKCQkJCQlldnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudE9iamVjdCgpOwoJCQkJCWV2dC5zY3JlZW5YID0gb1RhcmdldFBvc1swXTsKCQkJCQlldnQuc2NyZWVuWCA9IG9UYXJnZXRQb3NbMV07CgkJCQkJZXZ0LmNsaWVudFggPSBvVGFyZ2V0UG9zWzBdOwoJCQkJCWV2dC5jbGllbnRZID0gb1RhcmdldFBvc1sxXTsKCQkJCQlldnQuY3RybEtleSA9IGN0cmxLZXk7CgkJCQkJZXZ0LmFsdEtleSA9IGFsdEtleTsKCQkJCQlldnQuc2hpZnRLZXkgPSBzaGlmdEtleTsKCQkJCQlldnQubWV0YUtleSA9IG1ldGFLZXk7CgkJCQkJZXZ0LmJ1dHRvbiA9IGJ1dHRvbjsKCQkJCQlldnQucmVsYXRlZFRhcmdldCA9IG51bGw7CgkJCQkJYnJlYWs7CgkJCQkKCQkJCWNhc2UgJ2h0bWwnOgoJCQkJCS8qIGZhbGwgdGhyb3VnaCB0byBiYXNpYyBldmVudCBvYmplY3QgKi8KCQkJCQkKCQkJCWNhc2UgJ3VpJzoKCQkJCQlldnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudE9iamVjdCgpOwoJCQkJCWJyZWFrOwoJCQkJCgkJCQlkZWZhdWx0OgoJCQkJCWJyZWFrOwoJCQl9CgkJfQoJCQoJCXJldHVybiBldnQ7Cgl9LAoJCgkvKiAKCSAqIEZ1bmN0aW9uOiBEZXNpZ25Db3JlLmZuR2V0UG9zCgkgKiBQdXJwb3NlOiAgR2V0IHRoZSBwb3NpdGlvbiBvZiBhbiBlbGVtZW50IG9uIHRoZSBwYWdlCgkgKiBSZXR1cm5zOiAgYXJyYXlbIDAtaW50OmxlZnQsIDEtaW50OnRvcCBdCgkgKiBJbnB1dHM6ICAgbm9kZTpvYmogLSBub2RlIHRvIGFuYWx5c2UKCSAqLwoJX2ZuR2V0UG9zOiBmdW5jdGlvbiAoIG9iaiApIAoJewoJCXZhciBjdXJsZWZ0ID0gMDsKCQl2YXIgY3VydG9wID0gMDsKCQkKCQlpZiAob2JqLm9mZnNldFBhcmVudCkgCgkJewoJCQljdXJsZWZ0ID0gb2JqLm9mZnNldExlZnQ7CgkJCWN1cnRvcCA9IG9iai5vZmZzZXRUb3A7CgkJCXdoaWxlIChvYmogPSBvYmoub2Zmc2V0UGFyZW50ICkgCgkJCXsKCQkJCWN1cmxlZnQgKz0gb2JqLm9mZnNldExlZnQ7CgkJCQljdXJ0b3AgKz0gb2JqLm9mZnNldFRvcDsKCQkJfQoJCX0KCQlyZXR1cm4gW2N1cmxlZnQsY3VydG9wXTsKCX0sCgkKCQoJLyoKCSAqIEZ1bmN0aW9uOiBfZm5FdmVudFR5cGVHcm91cAoJICogUHVycG9zZTogIEdyb3VwIHRoZSBldmVudCB0eXBlcyBhcyBwZXIgdzNjIGdyb3VwaW5ncwoJICogUmV0dXJuczogIC0KCSAqIElucHV0czogICBzdHJpbmc6c1R5cGUKCSAqLwoJX2ZuRXZlbnRUeXBlR3JvdXA6IGZ1bmN0aW9uICggc1R5cGUgKQoJewoJCXN3aXRjaCAoIHNUeXBlICkKCQl7CgkJCWNhc2UgJ2NsaWNrJzoKCQkJY2FzZSAnZGJsY2xpY2snOgoJCQljYXNlICdtb3VzZWRvd24nOgoJCQljYXNlICdtb3VzZW1vdmUnOgoJCQljYXNlICdtb3VzZW91dCc6CgkJCWNhc2UgJ21vdXNlb3Zlcic6CgkJCWNhc2UgJ21vdXNldXAnOgoJCQkJcmV0dXJuICdtb3VzZSc7CgkJCQoJCQljYXNlICdjaGFuZ2UnOgoJCQljYXNlICdmb2N1cyc6CgkJCWNhc2UgJ2JsdXInOgoJCQljYXNlICdzZWxlY3QnOgoJCQljYXNlICdzdWJtaXQnOgoJCQkJcmV0dXJuICdodG1sJzsKCQkJCQoJCQljYXNlICdrZXlkb3duJzoKCQkJY2FzZSAna2V5cHJlc3MnOgoJCQljYXNlICdrZXl1cCc6CgkJCWNhc2UgJ2xvYWQnOgoJCQljYXNlICd1bmxvYWQnOgoJCQkJcmV0dXJuICd1aSc7CgkJCQoJCQlkZWZhdWx0OgoJCQkJcmV0dXJuICdjdXN0b20nOwoJCX0KCX0KfQoKCnZhciBvU2Vzc2lvbiA9IHsKCW5UYWJsZTogbnVsbCwKCQoJZm5DYWNoZTogZnVuY3Rpb24gKCkKCXsKCQl0aGlzLm5UYWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZW1vJykuY2xvbmVOb2RlKHRydWUpOwoJfSwKCQoJZm5SZXN0b3JlOiBmdW5jdGlvbiAoKQoJewoJCXdoaWxlKCAkLmZuLmRhdGFUYWJsZVNldHRpbmdzLmxlbmd0aCA+IDAgKQoJCXsKCQkJdHJ5IHsKCQkJCSQuZm4uZGF0YVRhYmxlU2V0dGluZ3NbMF0ub0luc3RhbmNlLmZuRGVzdHJveSgpOwoJCQl9IGNhdGNoIChlKSB7CgkJCQkkLmZuLmRhdGFUYWJsZVNldHRpbmdzLnNwbGljZSggMCwgMSApOwoJCQl9CgkJfQoJCS8vJC5mbi5kYXRhVGFibGVTZXR0aW5ncy5zcGxpY2UoIDAsICQuZm4uZGF0YVRhYmxlU2V0dGluZ3MubGVuZ3RoICk7CgkJdmFyIG5EZW1vID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RlbW8nKTsKCQluRGVtby5pbm5lckhUTUwgPSAiIjsKCQlmb3IgKCB2YXIgaT0wLCBpTGVuPXRoaXMublRhYmxlLmNoaWxkTm9kZXMubGVuZ3RoIDsgaTxpTGVuIDsgaSsrICkKCQl7CgkJCW5EZW1vLmFwcGVuZENoaWxkKCB0aGlzLm5UYWJsZS5jaGlsZE5vZGVzWzBdICk7CgkJfQoJCXRoaXMuZm5DYWNoZSgpOwoJfQp9CgokKGRvY3VtZW50KS5yZWFkeSggZnVuY3Rpb24gKCkgewoJb1Nlc3Npb24uZm5DYWNoZSgpOwp9ICk7Cg==]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/package.json</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ewogICAgIm5hbWUiOiAiRGF0YVRhYmxlcyIsCiAgICAidmVyc2lvbiI6ICIxLjkuMiIsCiAgICAidGl0bGUiOiAiRGF0YVRhYmxlcyIsCiAgICAiYXV0aG9yIjogewogICAgICAgICJuYW1lIjogIkFsbGFuIEphcmRpbmUiLAogICAgICAgICJ1cmwiOiAiaHR0cDovL3NwcnltZWRpYS5jby51ayIKICAgIH0sCiAgICAibGljZW5zZXMiOiBbCiAgICAgICAgewogICAgICAgICAgICAidHlwZSI6ICJCU0QiLAogICAgICAgICAgICAidXJsIjogImh0dHA6Ly9kYXRhdGFibGVzLm5ldC9saWNlbnNlX2JzZCIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgInR5cGUiOiAiR1BMdjIiLAogICAgICAgICAgICAidXJsIjogImh0dHA6Ly9kYXRhdGFibGVzLm5ldC9saWNlbnNlX2dwbDIiCiAgICAgICAgfQogICAgXSwKICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImpxdWVyeSI6ICIxLjMgLSAxLjciCiAgICB9LAogICAgImRlc2NyaXB0aW9uIjogIkRhdGFUYWJsZXMgZW5oYW5jZXMgSFRNTCB0YWJsZXMgd2l0aCB0aGUgYWJpbGl0eSB0byBzb3J0LCBmaWx0ZXIgYW5kIHBhZ2UgdGhlIGRhdGEgaW4gdGhlIHRhYmxlIHZlcnkgZWFzaWx5LiBJdCBwcm92aWRlcyBhIGNvbXByZWhlbnNpdmUgQVBJIGFuZCBzZXQgb2YgY29uZmlndXJhdGlvbiBvcHRpb25zLCBhbGxvd2luZyB5b3UgdG8gY29uc3VtZSBkYXRhIGZyb20gdmlydHVhbGx5IGFueSBkYXRhIHNvdXJjZS4iLAogICAgImtleXdvcmRzIjogWwogICAgICAgICJEYXRhVGFibGVzIiwKICAgICAgICAiRGF0YVRhYmxlIiwKICAgICAgICAidGFibGUiLAogICAgICAgICJncmlkIiwKICAgICAgICAiZmlsdGVyIiwKICAgICAgICAic29ydCIsCiAgICAgICAgInBhZ2UiLAogICAgICAgICJpbnRlcm5hdGlvbmFsaXNhYmxlIgogICAgXSwKICAgICJob21lcGFnZSI6ICJodHRwOi8vZGF0YXRhYmxlcy5uZXQiCn0=]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/scripts/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/scripts/jshint.config</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ewogICAgLy8gU2V0dGluZ3MKICAgICJwYXNzZmFpbCIgICAgICA6IGZhbHNlLCAgLy8gU3RvcCBvbiBmaXJzdCBlcnJvci4KICAgICJtYXhlcnIiICAgICAgICA6IDEwMCwgICAgLy8gTWF4aW11bSBlcnJvciBiZWZvcmUgc3RvcHBpbmcuCgoKICAgIC8vIFByZWRlZmluZWQgZ2xvYmFscyB3aG9tIEpTSGludCB3aWxsIGlnbm9yZS4KICAgICJicm93c2VyIiAgICAgICA6IHRydWUsICAgLy8gU3RhbmRhcmQgYnJvd3NlciBnbG9iYWxzIGUuZy4gYHdpbmRvd2AsIGBkb2N1bWVudGAuCgogICAgIm5vZGUiICAgICAgICAgIDogZmFsc2UsCiAgICAicmhpbm8iICAgICAgICAgOiBmYWxzZSwKICAgICJjb3VjaCIgICAgICAgICA6IGZhbHNlLAogICAgIndzaCIgICAgICAgICAgIDogdHJ1ZSwgICAvLyBXaW5kb3dzIFNjcmlwdGluZyBIb3N0LgoKICAgICJqcXVlcnkiICAgICAgICA6IHRydWUsCiAgICAicHJvdG90eXBlanMiICAgOiBmYWxzZSwKICAgICJtb290b29scyIgICAgICA6IGZhbHNlLAogICAgImRvam8iICAgICAgICAgIDogZmFsc2UsCgogICAgInByZWRlZiIgICAgICAgIDogWyAgLy8gQ3VzdG9tIGdsb2JhbHMuCiAgICAgICAgLy8iZXhhbXBsZVZhciIsCiAgICAgICAgLy8iYW5vdGhlckNvb2xHbG9iYWwiLAogICAgICAgIC8vImlMb3ZlRG91Z2xhcyIKICAgIF0sCgoKICAgIC8vIERldmVsb3BtZW50LgogICAgImRlYnVnIiAgICAgICAgIDogZmFsc2UsICAvLyBBbGxvdyBkZWJ1Z2dlciBzdGF0ZW1lbnRzIGUuZy4gYnJvd3NlciBicmVha3BvaW50cy4KICAgICJkZXZlbCIgICAgICAgICA6IHRydWUsICAgLy8gQWxsb3cgZGV2ZWxvcG1lbnRzIHN0YXRlbWVudHMgZS5nLiBgY29uc29sZS5sb2coKTtgLgoKCiAgICAvLyBFQ01BU2NyaXB0IDUuCiAgICAiZXM1IiAgICAgICAgICAgOiB0cnVlLCAgIC8vIEFsbG93IEVDTUFTY3JpcHQgNSBzeW50YXguCiAgICAic3RyaWN0IiAgICAgICAgOiBmYWxzZSwgIC8vIFJlcXVpcmUgYHVzZSBzdHJpY3RgIHByYWdtYSAgaW4gZXZlcnkgZmlsZS4KICAgICJnbG9iYWxzdHJpY3QiICA6IGZhbHNlLCAgLy8gQWxsb3cgZ2xvYmFsICJ1c2Ugc3RyaWN0IiAoYWxzbyBlbmFibGVzICdzdHJpY3QnKS4KCgogICAgLy8gVGhlIEdvb2QgUGFydHMuCiAgICAiYXNpIiAgICAgICAgICAgOiBmYWxzZSwgIC8vIFRvbGVyYXRlIEF1dG9tYXRpYyBTZW1pY29sb24gSW5zZXJ0aW9uIChubyBzZW1pY29sb25zKS4KICAgICJsYXhicmVhayIgICAgICA6IHRydWUsICAgLy8gVG9sZXJhdGUgdW5zYWZlIGxpbmUgYnJlYWtzIGUuZy4gYHJldHVybiBbXG5dIHhgIHdpdGhvdXQgc2VtaWNvbG9ucy4KICAgICJiaXR3aXNlIiAgICAgICA6IHRydWUsICAgLy8gUHJvaGliaXQgYml0d2lzZSBvcGVyYXRvcnMgKCYsIHwsIF4sIGV0Yy4pLgogICAgImJvc3MiICAgICAgICAgIDogZmFsc2UsICAvLyBUb2xlcmF0ZSBhc3NpZ25tZW50cyBpbnNpZGUgaWYsIGZvciAmIHdoaWxlLiBVc3VhbGx5IGNvbmRpdGlvbnMgJiBsb29wcyBhcmUgZm9yIGNvbXBhcmlzb24sIG5vdCBhc3NpZ25tZW50cy4KICAgICJjdXJseSIgICAgICAgICA6IHRydWUsICAgLy8gUmVxdWlyZSB7fSBmb3IgZXZlcnkgbmV3IGJsb2NrIG9yIHNjb3BlLgogICAgImVxZXFlcSIgICAgICAgIDogZmFsc2UsICAgLy8gUmVxdWlyZSB0cmlwbGUgZXF1YWxzIGkuZS4gYD09PWAuCiAgICAiZXFudWxsIiAgICAgICAgOiBmYWxzZSwgIC8vIFRvbGVyYXRlIHVzZSBvZiBgPT0gbnVsbGAuCiAgICAiZXZpbCIgICAgICAgICAgOiBmYWxzZSwgIC8vIFRvbGVyYXRlIHVzZSBvZiBgZXZhbGAuCiAgICAiZXhwciIgICAgICAgICAgOiBmYWxzZSwgIC8vIFRvbGVyYXRlIGBFeHByZXNzaW9uU3RhdGVtZW50YCBhcyBQcm9ncmFtcy4KICAgICJmb3JpbiIgICAgICAgICA6IGZhbHNlLCAgLy8gVG9sZXJhdGUgYGZvciBpbmAgbG9vcHMgd2l0aG91dCBgaGFzT3duUHJvdG90eXBlYC4KICAgICJpbW1lZCIgICAgICAgICA6IHRydWUsICAgLy8gUmVxdWlyZSBpbW1lZGlhdGUgaW52b2NhdGlvbnMgdG8gYmUgd3JhcHBlZCBpbiBwYXJlbnMgZS5nLiBgKCBmdW5jdGlvbigpe30oKSApO2AKICAgICJsYXRlZGVmIiAgICAgICA6IHRydWUsICAgLy8gUHJvaGlwaXQgdmFyaWFibGUgdXNlIGJlZm9yZSBkZWZpbml0aW9uLgogICAgImxvb3BmdW5jIiAgICAgIDogZmFsc2UsICAvLyBBbGxvdyBmdW5jdGlvbnMgdG8gYmUgZGVmaW5lZCB3aXRoaW4gbG9vcHMuCiAgICAibm9hcmciICAgICAgICAgOiB0cnVlLCAgIC8vIFByb2hpYml0IHVzZSBvZiBgYXJndW1lbnRzLmNhbGxlcmAgYW5kIGBhcmd1bWVudHMuY2FsbGVlYC4KICAgICJyZWdleHAiICAgICAgICA6IGZhbHNlLCAgIC8vIFByb2hpYml0IGAuYCBhbmQgYFteLi4uXWAgaW4gcmVndWxhciBleHByZXNzaW9ucy4KICAgICJyZWdleGRhc2giICAgICA6IGZhbHNlLCAgLy8gVG9sZXJhdGUgdW5lc2NhcGVkIGxhc3QgZGFzaCBpLmUuIGBbLS4uLl1gLgogICAgInNjcmlwdHVybCIgICAgIDogdHJ1ZSwgICAvLyBUb2xlcmF0ZSBzY3JpcHQtdGFyZ2V0ZWQgVVJMcy4KICAgICJzaGFkb3ciICAgICAgICA6IGZhbHNlLCAgLy8gQWxsb3dzIHJlLWRlZmluZSB2YXJpYWJsZXMgbGF0ZXIgaW4gY29kZSBlLmcuIGB2YXIgeD0xOyB4PTI7YC4KICAgICJzdXBlcm5ldyIgICAgICA6IGZhbHNlLCAgLy8gVG9sZXJhdGUgYG5ldyBmdW5jdGlvbiAoKSB7IC4uLiB9O2AgYW5kIGBuZXcgT2JqZWN0O2AuCiAgICAidW5kZWYiICAgICAgICAgOiB0cnVlLCAgIC8vIFJlcXVpcmUgYWxsIG5vbi1nbG9iYWwgdmFyaWFibGVzIGJlIGRlY2xhcmVkIGJlZm9yZSB0aGV5IGFyZSB1c2VkLgoKCiAgICAvLyBQZXJzb25hbCBzdHlsaW5nIHByZWZlcmVuY2VzLgogICAgIm5ld2NhcCIgICAgICAgIDogdHJ1ZSwgICAvLyBSZXF1aXJlIGNhcGl0YWxpemF0aW9uIG9mIGFsbCBjb25zdHJ1Y3RvciBmdW5jdGlvbnMgZS5nLiBgbmV3IEYoKWAuCiAgICAibm9lbXB0eSIgICAgICAgOiB0cnVlLCAgIC8vIFByb2hpYml0IHVzZSBvZiBlbXB0eSBibG9ja3MuCiAgICAibm9uZXciICAgICAgICAgOiB0cnVlLCAgIC8vIFByb2hpYml0IHVzZSBvZiBjb25zdHJ1Y3RvcnMgZm9yIHNpZGUtZWZmZWN0cy4KICAgICJub21lbiIgICAgICAgICA6IGZhbHNlLCAgLy8gUHJvaGliaXQgdXNlIG9mIGluaXRpYWwgb3IgdHJhaWxpbmcgdW5kZXJiYXJzIGluIG5hbWVzLgogICAgIm9uZXZhciIgICAgICAgIDogZmFsc2UsICAvLyBBbGxvdyBvbmx5IG9uZSBgdmFyYCBzdGF0ZW1lbnQgcGVyIGZ1bmN0aW9uLgogICAgInBsdXNwbHVzIiAgICAgIDogZmFsc2UsICAvLyBQcm9oaWJpdCB1c2Ugb2YgYCsrYCAmIGAtLWAuCiAgICAic3ViIiAgICAgICAgICAgOiBmYWxzZSwgIC8vIFRvbGVyYXRlIGFsbCBmb3JtcyBvZiBzdWJzY3JpcHQgbm90YXRpb24gYmVzaWRlcyBkb3Qgbm90YXRpb24gZS5nLiBgZGljdFsna2V5J11gIGluc3RlYWQgb2YgYGRpY3Qua2V5YC4KICAgICJ0cmFpbGluZyIgICAgICA6IHRydWUsICAgLy8gUHJvaGliaXQgdHJhaWxpbmcgd2hpdGVzcGFjZXMuCiAgICAid2hpdGUiICAgICAgICAgOiBmYWxzZSwgICAvLyBDaGVjayBhZ2FpbnN0IHN0cmljdCB3aGl0ZXNwYWNlIGFuZCBpbmRlbnRhdGlvbiBydWxlcy4KICAgICJpbmRlbnQiICAgICAgICA6IDQgICAgICAgLy8gU3BlY2lmeSBpbmRlbnRhdGlvbiBzcGFjaW5nCn0K]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/scripts/make.sh</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[IyEvYmluL3NoCgpjZCAuLi9tZWRpYS9zcmMKCiMgREVGQVVMVFMKQ0xPU1VSRT0iL3Vzci9sb2NhbC9jbG9zdXJlX2NvbXBpbGVyL2NvbXBpbGVyLmphciIKSlNET0M9Ii91c3IvbG9jYWwvanNkb2MvanNkb2MiCkNNRD0kMQoKTUFJTl9GSUxFPSIuLi9qcy9qcXVlcnkuZGF0YVRhYmxlcy5qcyIKTUlOX0ZJTEU9Ii4uL2pzL2pxdWVyeS5kYXRhVGFibGVzLm1pbi5qcyIKVkVSU0lPTj0kKGdyZXAgIiAqIEB2ZXJzaW9uICAgICAiIERhdGFUYWJsZXMuanMgfCBhd2sgLUYiICIgJ3sgcHJpbnQgJDMgfScpCgplY2hvICIiCmVjaG8gIiAgRGF0YVRhYmxlcyBidWlsZCAoJFZFUlNJT04pIgplY2hvICIiCgoKSUZTPSclJwoKY3AgRGF0YVRhYmxlcy5qcyBEYXRhVGFibGVzLmpzLmJ1aWxkCgplY2hvICIgIEJ1aWxkaW5nIG1haW4gc2NyaXB0IgpncmVwICJyZXF1aXJlKCIgRGF0YVRhYmxlcy5qcy5idWlsZCA+IC9kZXYvbnVsbAp3aGlsZSBbICQ/IC1lcSAwIF07IGRvCglSRVFVSVJFPSQoZ3JlcCAicmVxdWlyZSgiIERhdGFUYWJsZXMuanMuYnVpbGQgfCBoZWFkIC1uIDEpCgoJU1BBQ0VSPSQoZWNobyAke1JFUVVJUkV9IHwgY3V0IC1kIHIgLWYgMSkKCUZJTEU9JChlY2hvICR7UkVRVUlSRX0gfCBzZWQgLWUgInMjXi4qcmVxdWlyZSgnIyNnIiAtZSAicyMnKTsjIyIpCglESVI9JChlY2hvICR7RklMRX0gfCBjdXQgLWQgXC4gLWYgMSkKCglzZWQgInMjXiMke1NQQUNFUn0jIiA8ICR7RElSfS8ke0ZJTEV9ID4gJHtESVJ9LyR7RklMRX0uYnVpbGQKCglzZWQgLWUgIi8ke1JFUVVJUkV9L3IgJHtESVJ9LyR7RklMRX0uYnVpbGQiIC1lICIvJHtSRVFVSVJFfS9kIiA8IERhdGFUYWJsZXMuanMuYnVpbGQgPiBEYXRhVGFibGVzLmpzLm91dAoJbXYgRGF0YVRhYmxlcy5qcy5vdXQgRGF0YVRhYmxlcy5qcy5idWlsZAoKCXJtICR7RElSfS8ke0ZJTEV9LmJ1aWxkCgoJZ3JlcCAicmVxdWlyZSgiIERhdGFUYWJsZXMuanMuYnVpbGQgPiAvZGV2L251bGwKZG9uZQoKbXYgRGF0YVRhYmxlcy5qcy5idWlsZCAkTUFJTl9GSUxFCgoKaWYgWyAiJENNRCIgIT0gImRlYnVnIiBdOyB0aGVuCglpZiBbICIkQ01EIiA9ICJqc2hpbnQiIC1vICIkQ01EIiA9ICIiIC1vICIkQ01EIiA9ICJjZG4iIF07IHRoZW4KCQllY2hvICIgIEpTSGludCIKCQlqc2hpbnQgJE1BSU5fRklMRSAtLWNvbmZpZyAuLi8uLi9zY3JpcHRzL2pzaGludC5jb25maWcKCQlpZiBbICQ/IC1uZSAwIF07IHRoZW4KCQkJZWNobyAiICAgIEVycm9ycyBvY2N1cmVkIC0gZXhpdGluZyIKCQkJZXhpdCAxCgkJZWxzZQoJCQllY2hvICIgICAgUGFzcyIgCgkJZmkKCWZpCgoJaWYgWyAiJENNRCIgPSAiY29tcHJlc3MiIC1vICIkQ01EIiA9ICIiIC1vICIkQ01EIiA9ICJjZG4iIF07IHRoZW4KCQllY2hvICIgIE1pbmlmaWNhdGlvbiIKCQllY2hvICIvKgogKiBGaWxlOiAgICAgICAganF1ZXJ5LmRhdGFUYWJsZXMubWluLmpzCiAqIFZlcnNpb246ICAgICAkVkVSU0lPTgogKiBBdXRob3I6ICAgICAgQWxsYW4gSmFyZGluZSAod3d3LnNwcnltZWRpYS5jby51aykKICogSW5mbzogICAgICAgIHd3dy5kYXRhdGFibGVzLm5ldAogKiAKICogQ29weXJpZ2h0IDIwMDgtMjAxMiBBbGxhbiBKYXJkaW5lLCBhbGwgcmlnaHRzIHJlc2VydmVkLgogKgogKiBUaGlzIHNvdXJjZSBmaWxlIGlzIGZyZWUgc29mdHdhcmUsIHVuZGVyIGVpdGhlciB0aGUgR1BMIHYyIGxpY2Vuc2Ugb3IgYQogKiBCU0Qgc3R5bGUgbGljZW5zZSwgYXZhaWxhYmxlIGF0OgogKiAgIGh0dHA6Ly9kYXRhdGFibGVzLm5ldC9saWNlbnNlX2dwbDIKICogICBodHRwOi8vZGF0YXRhYmxlcy5uZXQvbGljZW5zZV9ic2QKICogCiAqIFRoaXMgc291cmNlIGZpbGUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IAogKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSAKICogb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgbGljZW5zZSBmaWxlcyBmb3IgZGV0YWlscy4KICovIiA+ICRNSU5fRklMRSAKCgkJamF2YSAtamFyICRDTE9TVVJFIC0tanMgJE1BSU5fRklMRSA+PiAkTUlOX0ZJTEUKCQllY2hvICIgICAgTWluIEpTIGZpbGUgc2l6ZTogJChscyAtbCAkTUlOX0ZJTEUgfCBhd2sgLUYiICIgJ3sgcHJpbnQgJDUgfScpIgoJZmkKCglpZiBbICIkQ01EIiA9ICJkb2NzIiAtbyAiJENNRCIgPSAiIiBdOyB0aGVuCgkJZWNobyAiICBEb2N1bWVudGF0aW9uIgoJCSRKU0RPQyAtZCAuLi8uLi9kb2NzIC10IEpTRG9jLURhdGFUYWJsZXMgJE1BSU5fRklMRQoJZmkKCglpZiBbICIkQ01EIiA9ICJjZG4iIF07IHRoZW4KCQllY2hvICIgIENETiIKCQlpZiBbIC1kIC4uLy4uL2NkbiBdOyB0aGVuCgkJCXJtIC1SZiAuLi8uLi9jZG4KCQlmaQoJCW1rZGlyIC4uLy4uL2NkbgoJCW1rZGlyIC4uLy4uL2Nkbi9jc3MKCQljcCAkTUFJTl9GSUxFIC4uLy4uL2NkbgoJCWNwICRNSU5fRklMRSAuLi8uLi9jZG4KCQljcCAuLi9jc3MvanF1ZXJ5LmRhdGFUYWJsZXMuY3NzIC4uLy4uL2Nkbi9jc3MKCQljcCAuLi9jc3MvanF1ZXJ5LmRhdGFUYWJsZXNfdGhlbWVyb2xsZXIuY3NzIC4uLy4uL2Nkbi9jc3MKCQljcCAtciAuLi9pbWFnZXMgLi4vLi4vY2RuLwoJCXJtIC4uLy4uL2Nkbi9pbWFnZXMvU29ydGluZ1wgaWNvbnMucHNkCglmaQpmaQoKZWNobyAiICBEb25lXG4iCgoK]]></data>
	</file>
	<file>
	  <filename>/js/DataTables-1.9.3/scripts/unit_tests.sh</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[IyEvYmluL3NoCgpFTkFCTEU9JDEKCmVjaG8gIiIKZWNobyAiICBEYXRhVGFibGVzIHVuaXQgdGVzdHMiCmVjaG8gIiIKCmlmIFsgISAiJEVOQUJMRSIgPSAiRW5hYmxlIiAtYSAhICIkRU5BQkxFIiA9ICJEaXNhYmxlIiAtbyAiRU5BQkxFIiA9ICItaCIgXTsgdGhlbgoJZWNobyAiICBFbmFibGUgb3IgRGlzYWJsZSBtdXN0IGJlIGdpdmVuIGFzIHRoZSBmaXJzdCBhcmd1bWVudC4iCgllY2hvICIgIE9wdGlvbmFsbHkgdGhlIHNlY29uZCBhcmd1bWVudCBjYW4gYmUgZ2l2ZW4gYXMgYW4gaW50ZWdlciB0byBlbmFibGUvZGlzYWJsZSBhIGNlcnRhaW4gIgoJZWNobyAiICBzZXQgb2YgdGVzdHMgb3IgdGhlIHN0cmluZyAnc2FuaXR5JyB0byBydW4gdGhlIHNhbml0eSBjaGVjayBmb3IgYWxsIGRhdGEgdHlwZXMuIgoJZWNobyAiIgoJZXhpdCAxCmZpCgpjZCAuLi9tZWRpYS91bml0X3Rlc3RpbmcKCmlmIFsgIiRFTkFCTEUiID0gIkVuYWJsZSIgXTsgdGhlbgoJaWYgWyAhIC1kIHRlc3RzIF07IHRoZW4KCQllY2hvICIgIEJ1aWxkaW5nIHRlc3QgZGlyZWN0b3J5IgoJCW1rZGlyIHRlc3RzCgkJbWtkaXIgdGVzdHMvMV9kb20KCQlta2RpciB0ZXN0cy8yX2pzCgkJbWtkaXIgdGVzdHMvM19hamF4CgkJbWtkaXIgdGVzdHMvNF9zZXJ2ZXItc2lkZQoJCW1rZGlyIHRlc3RzLzVfYWpheF9vYmplY3RzCgkJbWtkaXIgdGVzdHMvNl9kZWxheWVkX3JlbmRlcmluZwoJZmkKCgllY2hvICIgIEVuYWJsaW5nOiIKCWlmIFsgISAteiAkMiBdOyB0aGVuCgkJaWYgWyAiJDIiID0gInNhbml0eSIgXTsgdGhlbgoJCQllY2hvICIgICAgU2FuaXR5IGNoZWNrcyIKCQkJbXYgdGVzdHNfb25ob2xkLzFfZG9tL196ZXJvX2NvbmZpZy5qcyB0ZXN0cy8xX2RvbS8KCQkJbXYgdGVzdHNfb25ob2xkLzJfanMvX3plcm9fY29uZmlnLmpzIHRlc3RzLzJfanMvCgkJCW12IHRlc3RzX29uaG9sZC8zX2FqYXgvX3plcm9fY29uZmlnLmpzIHRlc3RzLzNfYWpheC8KCQkJbXYgdGVzdHNfb25ob2xkLzRfc2VydmVyLXNpZGUvX3plcm9fY29uZmlnLmpzIHRlc3RzLzRfc2VydmVyLXNpZGUvCgkJCW12IHRlc3RzX29uaG9sZC81X2FqYXhfb2JqZWN0cy9femVyb19jb25maWcuanMgdGVzdHMvNV9hamF4X29iamVjdHMvCgkJCW12IHRlc3RzX29uaG9sZC82X2RlbGF5ZWRfcmVuZGVyaW5nL196ZXJvX2NvbmZpZy5qcyB0ZXN0cy82X2RlbGF5ZWRfcmVuZGVyaW5nLwoJCWVsaWYgWyAkMiAtZXEgMSBdOyB0aGVuCgkJCWVjaG8gIiAgICBET00iCgkJCW12IHRlc3RzX29uaG9sZC8xX2RvbS8qIHRlc3RzLzFfZG9tLwoJCWVsaWYgWyAkMiAtZXEgMiBdOyB0aGVuCgkJCWVjaG8gIiAgICBKUyIKCQkJbXYgdGVzdHNfb25ob2xkLzJfanMvKiB0ZXN0cy8yX2pzLwoJCWVsaWYgWyAkMiAtZXEgMyBdOyB0aGVuCgkJCWVjaG8gIiAgICBBamF4IgoJCQltdiB0ZXN0c19vbmhvbGQvM19hamF4LyogdGVzdHMvM19hamF4LwoJCWVsaWYgWyAkMiAtZXEgNCBdOyB0aGVuCgkJCWVjaG8gIiAgICBTRXJ2ZXItc2lkZSIKCQkJbXYgdGVzdHNfb25ob2xkLzRfc2VydmVyLXNpZGUvKiB0ZXN0cy80X3NlcnZlci1zaWRlLwoJCWVsaWYgWyAkMiAtZXEgNSBdOyB0aGVuCgkJCWVjaG8gIiAgICBBamF4IG9iamVjdHMiCgkJCW12IHRlc3RzX29uaG9sZC81X2FqYXhfb2JqZWN0cy8qIHRlc3RzLzVfYWpheF9vYmplY3RzLwoJCWVsaWYgWyAkMiAtZXEgNiBdOyB0aGVuCgkJCWVjaG8gIiAgICBEZWxheWVkIHJlbmRlcmluZyIKCQkJbXYgdGVzdHNfb25ob2xkLzZfZGVsYXllZF9yZW5kZXJpbmcvKiB0ZXN0cy82X2RlbGF5ZWRfcmVuZGVyaW5nLwoJCWZpCgllbHNlCgkJZWNobyAiICAgIEFsbCB0ZXN0cyIKCQltdiB0ZXN0c19vbmhvbGQvMV9kb20vKiAgICAgICAgICAgICAgIHRlc3RzLzFfZG9tLwoJCW12IHRlc3RzX29uaG9sZC8yX2pzLyogICAgICAgICAgICAgICAgdGVzdHMvMl9qcy8KCQltdiB0ZXN0c19vbmhvbGQvM19hamF4LyogICAgICAgICAgICAgIHRlc3RzLzNfYWpheC8KCQltdiB0ZXN0c19vbmhvbGQvNF9zZXJ2ZXItc2lkZS8qICAgICAgIHRlc3RzLzRfc2VydmVyLXNpZGUvCgkJbXYgdGVzdHNfb25ob2xkLzVfYWpheF9vYmplY3RzLyogICAgICB0ZXN0cy81X2FqYXhfb2JqZWN0cy8KCQltdiB0ZXN0c19vbmhvbGQvNl9kZWxheWVkX3JlbmRlcmluZy8qIHRlc3RzLzZfZGVsYXllZF9yZW5kZXJpbmcvCglmaQoKZWxzZQoJZWNobyAiICBEaXNhYmxpbmc6IgoJaWYgWyAhIC16ICQyIF07IHRoZW4KCQlpZiBbICIkMiIgPSAic2FuaXR5IiBdOyB0aGVuCgkJCWVjaG8gIiAgICBTYW5pdHkgY2hlY2tzIgoJCQltdiB0ZXN0cy8xX2RvbS8qIHRlc3RzX29uaG9sZC8xX2RvbS8KCQkJbXYgdGVzdHMvMl9qcy8qIHRlc3RzX29uaG9sZC8yX2pzLwoJCQltdiB0ZXN0cy8zX2FqYXgvKiB0ZXN0c19vbmhvbGQvM19hamF4LwoJCQltdiB0ZXN0cy80X3NlcnZlci1zaWRlLyogdGVzdHNfb25ob2xkLzRfc2VydmVyLXNpZGUvCgkJCW12IHRlc3RzLzVfYWpheF9vYmplY3RzLyogdGVzdHNfb25ob2xkLzVfYWpheF9vYmplY3RzLwoJCQltdiB0ZXN0cy82X2RlbGF5ZWRfcmVuZGVyaW5nLyogdGVzdHNfb25ob2xkLzZfZGVsYXllZF9yZW5kZXJpbmcvCgkJZWxpZiBbICQyIC1lcSAxIF07IHRoZW4KCQkJZWNobyAiICAgIERPTSIKCQkJbXYgdGVzdHMvMV9kb20vKiB0ZXN0c19vbmhvbGQvMV9kb20vCgkJZWxpZiBbICQyIC1lcSAyIF07IHRoZW4KCQkJZWNobyAiICAgIEpTIgoJCQltdiB0ZXN0cy8yX2pzLyogdGVzdHNfb25ob2xkLzJfanMvCgkJZWxpZiBbICQyIC1lcSAzIF07IHRoZW4KCQkJZWNobyAiICAgIEFqYXgiCgkJCW12IHRlc3RzLzNfYWpheC8qIHRlc3RzX29uaG9sZC8zX2FqYXgvCgkJZWxpZiBbICQyIC1lcSA0IF07IHRoZW4KCQkJZWNobyAiICAgIFNlcnZlci1zaWRlIgoJCQltdiB0ZXN0cy80X3NlcnZlci1zaWRlLyogdGVzdHNfb25ob2xkLzRfc2VydmVyLXNpZGUvCgkJZWxpZiBbICQyIC1lcSA1IF07IHRoZW4KCQkJZWNobyAiICAgIEFqYXggb2JqZWN0cyIKCQkJbXYgdGVzdHMvNV9hamF4X29iamVjdHMvKiB0ZXN0c19vbmhvbGQvNV9hamF4X29iamVjdHMvCgkJZWxpZiBbICQyIC1lcSA2IF07IHRoZW4KCQkJZWNobyAiICAgIERlbGF5ZWQgcmVuZGVyaW5nIgoJCQltdiB0ZXN0cy82X2RlbGF5ZWRfcmVuZGVyaW5nLyogdGVzdHNfb25ob2xkLzZfZGVsYXllZF9yZW5kZXJpbmcvCgkJZmkKCWVsc2UKCQllY2hvICIgICAgQWxsIHRlc3RzIgoJCW12IHRlc3RzLzFfZG9tLyogICAgICAgICAgICAgICB0ZXN0c19vbmhvbGQvMV9kb20vCgkJbXYgdGVzdHMvMl9qcy8qICAgICAgICAgICAgICAgIHRlc3RzX29uaG9sZC8yX2pzLwoJCW12IHRlc3RzLzNfYWpheC8qICAgICAgICAgICAgICB0ZXN0c19vbmhvbGQvM19hamF4LwoJCW12IHRlc3RzLzRfc2VydmVyLXNpZGUvKiAgICAgICB0ZXN0c19vbmhvbGQvNF9zZXJ2ZXItc2lkZS8KCQltdiB0ZXN0cy81X2FqYXhfb2JqZWN0cy8qICAgICAgdGVzdHNfb25ob2xkLzVfYWpheF9vYmplY3RzLwoJCW12IHRlc3RzLzZfZGVsYXllZF9yZW5kZXJpbmcvKiB0ZXN0c19vbmhvbGQvNl9kZWxheWVkX3JlbmRlcmluZy8KCWZpCmZpCg==]]></data>
	</file>
	<file>
	  <filename>/js/DatePicker/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DatePicker/language/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/DatePicker/language/fr_FR.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogRnJlbmNoIGluaXRpYWxpc2F0aW9uIGZvciB0aGUgalF1ZXJ5IFVJIGRhdGUgcGlja2VyIHBsdWdpbi4gKi8KLyogV3JpdHRlbiBieSBLZWl0aCBXb29kIChrYndvb2R7YXR9aWluZXQuY29tLmF1KSwKICAgICAgICAgICAgICBTdMOpcGhhbmUgTmFobWFuaSAoc2hvbGJ5QHNob2xieS5uZXQpLAogICAgICAgICAgICAgIFN0w6lwaGFuZSBSYWltYmF1bHQgPHN0ZXBoYW5lLnJhaW1iYXVsdEBnbWFpbC5jb20+ICovCmpRdWVyeShmdW5jdGlvbigkKXsKCSQuZGF0ZXBpY2tlci5yZWdpb25hbFsnZnInXSA9IHsKCQljbG9zZVRleHQ6ICdGZXJtZXInLAoJCXByZXZUZXh0OiAnUHLDqWPDqWRlbnQnLAoJCW5leHRUZXh0OiAnU3VpdmFudCcsCgkJY3VycmVudFRleHQ6ICdBdWpvdXJkXCdodWknLAoJCW1vbnRoTmFtZXM6IFsnSmFudmllcicsJ0bDqXZyaWVyJywnTWFycycsJ0F2cmlsJywnTWFpJywnSnVpbicsCgkJJ0p1aWxsZXQnLCdBb8O7dCcsJ1NlcHRlbWJyZScsJ09jdG9icmUnLCdOb3ZlbWJyZScsJ0TDqWNlbWJyZSddLAoJCW1vbnRoTmFtZXNTaG9ydDogWydKYW52LicsJ0bDqXZyLicsJ01hcnMnLCdBdnJpbCcsJ01haScsJ0p1aW4nLAoJCSdKdWlsLicsJ0Fvw7t0JywnU2VwdC4nLCdPY3QuJywnTm92LicsJ0TDqWMuJ10sCgkJZGF5TmFtZXM6IFsnRGltYW5jaGUnLCdMdW5kaScsJ01hcmRpJywnTWVyY3JlZGknLCdKZXVkaScsJ1ZlbmRyZWRpJywnU2FtZWRpJ10sCgkJZGF5TmFtZXNTaG9ydDogWydEaW0uJywnTHVuLicsJ01hci4nLCdNZXIuJywnSmV1LicsJ1Zlbi4nLCdTYW0uJ10sCgkJZGF5TmFtZXNNaW46IFsnRCcsJ0wnLCdNJywnTScsJ0onLCdWJywnUyddLAoJCXdlZWtIZWFkZXI6ICdTZW0uJywKCQlkYXRlRm9ybWF0OiAnZGQvbW0veXknLAoJCWZpcnN0RGF5OiAxLAoJCWlzUlRMOiBmYWxzZSwKCQlzaG93TW9udGhBZnRlclllYXI6IGZhbHNlLAoJCXllYXJTdWZmaXg6ICcnfTsKCSQuZGF0ZXBpY2tlci5zZXREZWZhdWx0cygkLmRhdGVwaWNrZXIucmVnaW9uYWxbJ2ZyJ10pOwp9KTsK]]></data>
	</file>
	<file>
	  <filename>/js/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/js/TimePicker/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/TimePicker/jquery-ui-timepicker-addon.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogalF1ZXJ5IHRpbWVwaWNrZXIgYWRkb24KICogQnk6IFRyZW50IFJpY2hhcmRzb24gW2h0dHA6Ly90cmVudHJpY2hhcmRzb24uY29tXQogKiBWZXJzaW9uIDEuMC40CiAqIExhc3QgTW9kaWZpZWQ6IDA5LzI5LzIwMTIKICoKICogQ29weXJpZ2h0IDIwMTIgVHJlbnQgUmljaGFyZHNvbgogKiBZb3UgbWF5IHVzZSB0aGlzIHByb2plY3QgdW5kZXIgTUlUIG9yIEdQTCBsaWNlbnNlcy4KICogaHR0cDovL3RyZW50cmljaGFyZHNvbi5jb20vSW1wcm9tcHR1L0dQTC1MSUNFTlNFLnR4dAogKiBodHRwOi8vdHJlbnRyaWNoYXJkc29uLmNvbS9JbXByb21wdHUvTUlULUxJQ0VOU0UudHh0CiAqCiAqIEhFUkVTIFRIRSBDU1M6CiAqIC51aS10aW1lcGlja2VyLWRpdiAudWktd2lkZ2V0LWhlYWRlciB7IG1hcmdpbi1ib3R0b206IDhweDsgfQogKiAudWktdGltZXBpY2tlci1kaXYgZGwgeyB0ZXh0LWFsaWduOiBsZWZ0OyB9CiAqIC51aS10aW1lcGlja2VyLWRpdiBkbCBkdCB7IGhlaWdodDogMjVweDsgbWFyZ2luLWJvdHRvbTogLTI1cHg7IH0KICogLnVpLXRpbWVwaWNrZXItZGl2IGRsIGRkIHsgbWFyZ2luOiAwIDEwcHggMTBweCA2NXB4OyB9CiAqIC51aS10aW1lcGlja2VyLWRpdiB0ZCB7IGZvbnQtc2l6ZTogOTAlOyB9CiAqIC51aS10cGlja2VyLWdyaWQtbGFiZWwgeyBiYWNrZ3JvdW5kOiBub25lOyBib3JkZXI6IG5vbmU7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgfQogKi8KCi8qanNsaW50IGV2aWw6IHRydWUsIHdoaXRlOiBmYWxzZSwgdW5kZWY6IGZhbHNlLCBub21lbjogZmFsc2UgKi8KCihmdW5jdGlvbigkKSB7CgoJLyoKCSogTGV0cyBub3QgcmVkZWZpbmUgdGltZXBpY2tlciwgUHJldmVudCAiVW5jYXVnaHQgUmFuZ2VFcnJvcjogTWF4aW11bSBjYWxsIHN0YWNrIHNpemUgZXhjZWVkZWQiCgkqLwoJJC51aS50aW1lcGlja2VyID0gJC51aS50aW1lcGlja2VyIHx8IHt9OwoJaWYgKCQudWkudGltZXBpY2tlci52ZXJzaW9uKSB7CgkJcmV0dXJuOwoJfQoKCS8qCgkqIEV4dGVuZCBqUXVlcnlVSSwgZ2V0IGl0IHN0YXJ0ZWQgd2l0aCBvdXIgdmVyc2lvbiBudW1iZXIKCSovCgkkLmV4dGVuZCgkLnVpLCB7CgkJdGltZXBpY2tlcjogewoJCQl2ZXJzaW9uOiAiMS4wLjQiCgkJfQoJfSk7CgoJLyogCgkqIFRpbWVwaWNrZXIgbWFuYWdlci4KCSogVXNlIHRoZSBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgdGhpcyBjbGFzcywgJC50aW1lcGlja2VyLCB0byBpbnRlcmFjdCB3aXRoIHRoZSB0aW1lIHBpY2tlci4KCSogU2V0dGluZ3MgZm9yIChncm91cHMgb2YpIHRpbWUgcGlja2VycyBhcmUgbWFpbnRhaW5lZCBpbiBhbiBpbnN0YW5jZSBvYmplY3QsCgkqIGFsbG93aW5nIG11bHRpcGxlIGRpZmZlcmVudCBzZXR0aW5ncyBvbiB0aGUgc2FtZSBwYWdlLgoJKi8KCWZ1bmN0aW9uIFRpbWVwaWNrZXIoKSB7CgkJdGhpcy5yZWdpb25hbCA9IFtdOyAvLyBBdmFpbGFibGUgcmVnaW9uYWwgc2V0dGluZ3MsIGluZGV4ZWQgYnkgbGFuZ3VhZ2UgY29kZQoJCXRoaXMucmVnaW9uYWxbJyddID0geyAvLyBEZWZhdWx0IHJlZ2lvbmFsIHNldHRpbmdzCgkJCWN1cnJlbnRUZXh0OiAnTm93JywKCQkJY2xvc2VUZXh0OiAnRG9uZScsCgkJCWFtcG06IGZhbHNlLAoJCQlhbU5hbWVzOiBbJ0FNJywgJ0EnXSwKCQkJcG1OYW1lczogWydQTScsICdQJ10sCgkJCXRpbWVGb3JtYXQ6ICdoaDptbSB0dCcsCgkJCXRpbWVTdWZmaXg6ICcnLAoJCQl0aW1lT25seVRpdGxlOiAnQ2hvb3NlIFRpbWUnLAoJCQl0aW1lVGV4dDogJ1RpbWUnLAoJCQlob3VyVGV4dDogJ0hvdXInLAoJCQltaW51dGVUZXh0OiAnTWludXRlJywKCQkJc2Vjb25kVGV4dDogJ1NlY29uZCcsCgkJCW1pbGxpc2VjVGV4dDogJ01pbGxpc2Vjb25kJywKCQkJdGltZXpvbmVUZXh0OiAnVGltZSBab25lJwoJCX07CgkJdGhpcy5fZGVmYXVsdHMgPSB7IC8vIEdsb2JhbCBkZWZhdWx0cyBmb3IgYWxsIHRoZSBkYXRldGltZSBwaWNrZXIgaW5zdGFuY2VzCgkJCXNob3dCdXR0b25QYW5lbDogdHJ1ZSwKCQkJdGltZU9ubHk6IGZhbHNlLAoJCQlzaG93SG91cjogdHJ1ZSwKCQkJc2hvd01pbnV0ZTogdHJ1ZSwKCQkJc2hvd1NlY29uZDogZmFsc2UsCgkJCXNob3dNaWxsaXNlYzogZmFsc2UsCgkJCXNob3dUaW1lem9uZTogZmFsc2UsCgkJCXNob3dUaW1lOiB0cnVlLAoJCQlzdGVwSG91cjogMSwKCQkJc3RlcE1pbnV0ZTogMSwKCQkJc3RlcFNlY29uZDogMSwKCQkJc3RlcE1pbGxpc2VjOiAxLAoJCQlob3VyOiAwLAoJCQltaW51dGU6IDAsCgkJCXNlY29uZDogMCwKCQkJbWlsbGlzZWM6IDAsCgkJCXRpbWV6b25lOiBudWxsLAoJCQl1c2VMb2NhbFRpbWV6b25lOiBmYWxzZSwKCQkJZGVmYXVsdFRpbWV6b25lOiAiKzAwMDAiLAoJCQlob3VyTWluOiAwLAoJCQltaW51dGVNaW46IDAsCgkJCXNlY29uZE1pbjogMCwKCQkJbWlsbGlzZWNNaW46IDAsCgkJCWhvdXJNYXg6IDIzLAoJCQltaW51dGVNYXg6IDU5LAoJCQlzZWNvbmRNYXg6IDU5LAoJCQltaWxsaXNlY01heDogOTk5LAoJCQltaW5EYXRlVGltZTogbnVsbCwKCQkJbWF4RGF0ZVRpbWU6IG51bGwsCgkJCW9uU2VsZWN0OiBudWxsLAoJCQlob3VyR3JpZDogMCwKCQkJbWludXRlR3JpZDogMCwKCQkJc2Vjb25kR3JpZDogMCwKCQkJbWlsbGlzZWNHcmlkOiAwLAoJCQlhbHdheXNTZXRUaW1lOiB0cnVlLAoJCQlzZXBhcmF0b3I6ICcgJywKCQkJYWx0RmllbGRUaW1lT25seTogdHJ1ZSwKCQkJYWx0U2VwYXJhdG9yOiBudWxsLAoJCQlhbHRUaW1lU3VmZml4OiBudWxsLAoJCQlzaG93VGltZXBpY2tlcjogdHJ1ZSwKCQkJdGltZXpvbmVJc284NjAxOiBmYWxzZSwKCQkJdGltZXpvbmVMaXN0OiBudWxsLAoJCQlhZGRTbGlkZXJBY2Nlc3M6IGZhbHNlLAoJCQlzbGlkZXJBY2Nlc3NBcmdzOiBudWxsLAoJCQlkZWZhdWx0VmFsdWU6IG51bGwKCQl9OwoJCSQuZXh0ZW5kKHRoaXMuX2RlZmF1bHRzLCB0aGlzLnJlZ2lvbmFsWycnXSk7Cgl9CgoJJC5leHRlbmQoVGltZXBpY2tlci5wcm90b3R5cGUsIHsKCQkkaW5wdXQ6IG51bGwsCgkJJGFsdElucHV0OiBudWxsLAoJCSR0aW1lT2JqOiBudWxsLAoJCWluc3Q6IG51bGwsCgkJaG91cl9zbGlkZXI6IG51bGwsCgkJbWludXRlX3NsaWRlcjogbnVsbCwKCQlzZWNvbmRfc2xpZGVyOiBudWxsLAoJCW1pbGxpc2VjX3NsaWRlcjogbnVsbCwKCQl0aW1lem9uZV9zZWxlY3Q6IG51bGwsCgkJaG91cjogMCwKCQltaW51dGU6IDAsCgkJc2Vjb25kOiAwLAoJCW1pbGxpc2VjOiAwLAoJCXRpbWV6b25lOiBudWxsLAoJCWRlZmF1bHRUaW1lem9uZTogIiswMDAwIiwKCQlob3VyTWluT3JpZ2luYWw6IG51bGwsCgkJbWludXRlTWluT3JpZ2luYWw6IG51bGwsCgkJc2Vjb25kTWluT3JpZ2luYWw6IG51bGwsCgkJbWlsbGlzZWNNaW5PcmlnaW5hbDogbnVsbCwKCQlob3VyTWF4T3JpZ2luYWw6IG51bGwsCgkJbWludXRlTWF4T3JpZ2luYWw6IG51bGwsCgkJc2Vjb25kTWF4T3JpZ2luYWw6IG51bGwsCgkJbWlsbGlzZWNNYXhPcmlnaW5hbDogbnVsbCwKCQlhbXBtOiAnJywKCQlmb3JtYXR0ZWREYXRlOiAnJywKCQlmb3JtYXR0ZWRUaW1lOiAnJywKCQlmb3JtYXR0ZWREYXRlVGltZTogJycsCgkJdGltZXpvbmVMaXN0OiBudWxsLAoJCXVuaXRzOiBbJ2hvdXInLCdtaW51dGUnLCdzZWNvbmQnLCdtaWxsaXNlYyddLAoKCQkvKiAKCQkqIE92ZXJyaWRlIHRoZSBkZWZhdWx0IHNldHRpbmdzIGZvciBhbGwgaW5zdGFuY2VzIG9mIHRoZSB0aW1lIHBpY2tlci4KCQkqIEBwYXJhbSAgc2V0dGluZ3MgIG9iamVjdCAtIHRoZSBuZXcgc2V0dGluZ3MgdG8gdXNlIGFzIGRlZmF1bHRzIChhbm9ueW1vdXMgb2JqZWN0KQoJCSogQHJldHVybiB0aGUgbWFuYWdlciBvYmplY3QKCQkqLwoJCXNldERlZmF1bHRzOiBmdW5jdGlvbihzZXR0aW5ncykgewoJCQlleHRlbmRSZW1vdmUodGhpcy5fZGVmYXVsdHMsIHNldHRpbmdzIHx8IHt9KTsKCQkJcmV0dXJuIHRoaXM7CgkJfSwKCgkJLyoKCQkqIENyZWF0ZSBhIG5ldyBUaW1lcGlja2VyIGluc3RhbmNlCgkJKi8KCQlfbmV3SW5zdDogZnVuY3Rpb24oJGlucHV0LCBvKSB7CgkJCXZhciB0cF9pbnN0ID0gbmV3IFRpbWVwaWNrZXIoKSwKCQkJCWlubGluZVNldHRpbmdzID0ge307CgoJCQlmb3IgKHZhciBhdHRyTmFtZSBpbiB0aGlzLl9kZWZhdWx0cykgewoJCQkJaWYodGhpcy5fZGVmYXVsdHMuaGFzT3duUHJvcGVydHkoYXR0ck5hbWUpKXsKCQkJCQl2YXIgYXR0clZhbHVlID0gJGlucHV0LmF0dHIoJ3RpbWU6JyArIGF0dHJOYW1lKTsKCQkJCQlpZiAoYXR0clZhbHVlKSB7CgkJCQkJCXRyeSB7CgkJCQkJCQlpbmxpbmVTZXR0aW5nc1thdHRyTmFtZV0gPSBldmFsKGF0dHJWYWx1ZSk7CgkJCQkJCX0gY2F0Y2ggKGVycikgewoJCQkJCQkJaW5saW5lU2V0dGluZ3NbYXR0ck5hbWVdID0gYXR0clZhbHVlOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9CgkJCXRwX2luc3QuX2RlZmF1bHRzID0gJC5leHRlbmQoe30sIHRoaXMuX2RlZmF1bHRzLCBpbmxpbmVTZXR0aW5ncywgbywgewoJCQkJYmVmb3JlU2hvdzogZnVuY3Rpb24oaW5wdXQsIGRwX2luc3QpIHsKCQkJCQlpZiAoJC5pc0Z1bmN0aW9uKG8uYmVmb3JlU2hvdykpIHsKCQkJCQkJcmV0dXJuIG8uYmVmb3JlU2hvdyhpbnB1dCwgZHBfaW5zdCwgdHBfaW5zdCk7CgkJCQkJfQoJCQkJfSwKCQkJCW9uQ2hhbmdlTW9udGhZZWFyOiBmdW5jdGlvbih5ZWFyLCBtb250aCwgZHBfaW5zdCkgewoJCQkJCS8vIFVwZGF0ZSB0aGUgdGltZSBhcyB3ZWxsIDogdGhpcyBwcmV2ZW50cyB0aGUgdGltZSBmcm9tIGRpc2FwcGVhcmluZyBmcm9tIHRoZSAkaW5wdXQgZmllbGQuCgkJCQkJdHBfaW5zdC5fdXBkYXRlRGF0ZVRpbWUoZHBfaW5zdCk7CgkJCQkJaWYgKCQuaXNGdW5jdGlvbihvLm9uQ2hhbmdlTW9udGhZZWFyKSkgewoJCQkJCQlvLm9uQ2hhbmdlTW9udGhZZWFyLmNhbGwoJGlucHV0WzBdLCB5ZWFyLCBtb250aCwgZHBfaW5zdCwgdHBfaW5zdCk7CgkJCQkJfQoJCQkJfSwKCQkJCW9uQ2xvc2U6IGZ1bmN0aW9uKGRhdGVUZXh0LCBkcF9pbnN0KSB7CgkJCQkJaWYgKHRwX2luc3QudGltZURlZmluZWQgPT09IHRydWUgJiYgJGlucHV0LnZhbCgpICE9PSAnJykgewoJCQkJCQl0cF9pbnN0Ll91cGRhdGVEYXRlVGltZShkcF9pbnN0KTsKCQkJCQl9CgkJCQkJaWYgKCQuaXNGdW5jdGlvbihvLm9uQ2xvc2UpKSB7CgkJCQkJCW8ub25DbG9zZS5jYWxsKCRpbnB1dFswXSwgZGF0ZVRleHQsIGRwX2luc3QsIHRwX2luc3QpOwoJCQkJCX0KCQkJCX0sCgkJCQl0aW1lcGlja2VyOiB0cF9pbnN0IC8vIGFkZCB0aW1lcGlja2VyIGFzIGEgcHJvcGVydHkgb2YgZGF0ZXBpY2tlcjogJC5kYXRlcGlja2VyLl9nZXQoZHBfaW5zdCwgJ3RpbWVwaWNrZXInKTsKCQkJfSk7CgkJCXRwX2luc3QuYW1OYW1lcyA9ICQubWFwKHRwX2luc3QuX2RlZmF1bHRzLmFtTmFtZXMsIGZ1bmN0aW9uKHZhbCkgewoJCQkJcmV0dXJuIHZhbC50b1VwcGVyQ2FzZSgpOwoJCQl9KTsKCQkJdHBfaW5zdC5wbU5hbWVzID0gJC5tYXAodHBfaW5zdC5fZGVmYXVsdHMucG1OYW1lcywgZnVuY3Rpb24odmFsKSB7CgkJCQlyZXR1cm4gdmFsLnRvVXBwZXJDYXNlKCk7CgkJCX0pOwoKCQkJaWYgKHRwX2luc3QuX2RlZmF1bHRzLnRpbWV6b25lTGlzdCA9PT0gbnVsbCkgewoJCQkJdmFyIHRpbWV6b25lTGlzdCA9IFsnLTEyMDAnLCAnLTExMDAnLCAnLTEwMDAnLCAnLTA5MzAnLCAnLTA5MDAnLCAnLTA4MDAnLCAnLTA3MDAnLCAnLTA2MDAnLCAnLTA1MDAnLCAnLTA0MzAnLCAnLTA0MDAnLCAnLTAzMzAnLCAnLTAzMDAnLCAnLTAyMDAnLCAnLTAxMDAnLCAnKzAwMDAnLCAKCQkJCQkJCQkJJyswMTAwJywgJyswMjAwJywgJyswMzAwJywgJyswMzMwJywgJyswNDAwJywgJyswNDMwJywgJyswNTAwJywgJyswNTMwJywgJyswNTQ1JywgJyswNjAwJywgJyswNjMwJywgJyswNzAwJywgJyswODAwJywgJyswODQ1JywgJyswOTAwJywgJyswOTMwJywgCgkJCQkJCQkJCScrMTAwMCcsICcrMTAzMCcsICcrMTEwMCcsICcrMTEzMCcsICcrMTIwMCcsICcrMTI0NScsICcrMTMwMCcsICcrMTQwMCddOwoKCQkJCWlmICh0cF9pbnN0Ll9kZWZhdWx0cy50aW1lem9uZUlzbzg2MDEpIHsKCQkJCQl0aW1lem9uZUxpc3QgPSAkLm1hcCh0aW1lem9uZUxpc3QsIGZ1bmN0aW9uKHZhbCkgewoJCQkJCQlyZXR1cm4gdmFsID09ICcrMDAwMCcgPyAnWicgOiAodmFsLnN1YnN0cmluZygwLCAzKSArICc6JyArIHZhbC5zdWJzdHJpbmcoMykpOwoJCQkJCX0pOwoJCQkJfQoJCQkJdHBfaW5zdC5fZGVmYXVsdHMudGltZXpvbmVMaXN0ID0gdGltZXpvbmVMaXN0OwoJCQl9CgoJCQl0cF9pbnN0LnRpbWV6b25lID0gdHBfaW5zdC5fZGVmYXVsdHMudGltZXpvbmU7CgkJCXRwX2luc3QuaG91ciA9IHRwX2luc3QuX2RlZmF1bHRzLmhvdXI7CgkJCXRwX2luc3QubWludXRlID0gdHBfaW5zdC5fZGVmYXVsdHMubWludXRlOwoJCQl0cF9pbnN0LnNlY29uZCA9IHRwX2luc3QuX2RlZmF1bHRzLnNlY29uZDsKCQkJdHBfaW5zdC5taWxsaXNlYyA9IHRwX2luc3QuX2RlZmF1bHRzLm1pbGxpc2VjOwoJCQl0cF9pbnN0LmFtcG0gPSAnJzsKCQkJdHBfaW5zdC4kaW5wdXQgPSAkaW5wdXQ7CgoJCQlpZiAoby5hbHRGaWVsZCkgewoJCQkJdHBfaW5zdC4kYWx0SW5wdXQgPSAkKG8uYWx0RmllbGQpLmNzcyh7CgkJCQkJY3Vyc29yOiAncG9pbnRlcicKCQkJCX0pLmZvY3VzKGZ1bmN0aW9uKCkgewoJCQkJCSRpbnB1dC50cmlnZ2VyKCJmb2N1cyIpOwoJCQkJfSk7CgkJCX0KCgkJCWlmICh0cF9pbnN0Ll9kZWZhdWx0cy5taW5EYXRlID09PSAwIHx8IHRwX2luc3QuX2RlZmF1bHRzLm1pbkRhdGVUaW1lID09PSAwKSB7CgkJCQl0cF9pbnN0Ll9kZWZhdWx0cy5taW5EYXRlID0gbmV3IERhdGUoKTsKCQkJfQoJCQlpZiAodHBfaW5zdC5fZGVmYXVsdHMubWF4RGF0ZSA9PT0gMCB8fCB0cF9pbnN0Ll9kZWZhdWx0cy5tYXhEYXRlVGltZSA9PT0gMCkgewoJCQkJdHBfaW5zdC5fZGVmYXVsdHMubWF4RGF0ZSA9IG5ldyBEYXRlKCk7CgkJCX0KCgkJCS8vIGRhdGVwaWNrZXIgbmVlZHMgbWluRGF0ZS9tYXhEYXRlLCB0aW1lcGlja2VyIG5lZWRzIG1pbkRhdGVUaW1lL21heERhdGVUaW1lLi4KCQkJaWYgKHRwX2luc3QuX2RlZmF1bHRzLm1pbkRhdGUgIT09IHVuZGVmaW5lZCAmJiB0cF9pbnN0Ll9kZWZhdWx0cy5taW5EYXRlIGluc3RhbmNlb2YgRGF0ZSkgewoJCQkJdHBfaW5zdC5fZGVmYXVsdHMubWluRGF0ZVRpbWUgPSBuZXcgRGF0ZSh0cF9pbnN0Ll9kZWZhdWx0cy5taW5EYXRlLmdldFRpbWUoKSk7CgkJCX0KCQkJaWYgKHRwX2luc3QuX2RlZmF1bHRzLm1pbkRhdGVUaW1lICE9PSB1bmRlZmluZWQgJiYgdHBfaW5zdC5fZGVmYXVsdHMubWluRGF0ZVRpbWUgaW5zdGFuY2VvZiBEYXRlKSB7CgkJCQl0cF9pbnN0Ll9kZWZhdWx0cy5taW5EYXRlID0gbmV3IERhdGUodHBfaW5zdC5fZGVmYXVsdHMubWluRGF0ZVRpbWUuZ2V0VGltZSgpKTsKCQkJfQoJCQlpZiAodHBfaW5zdC5fZGVmYXVsdHMubWF4RGF0ZSAhPT0gdW5kZWZpbmVkICYmIHRwX2luc3QuX2RlZmF1bHRzLm1heERhdGUgaW5zdGFuY2VvZiBEYXRlKSB7CgkJCQl0cF9pbnN0Ll9kZWZhdWx0cy5tYXhEYXRlVGltZSA9IG5ldyBEYXRlKHRwX2luc3QuX2RlZmF1bHRzLm1heERhdGUuZ2V0VGltZSgpKTsKCQkJfQoJCQlpZiAodHBfaW5zdC5fZGVmYXVsdHMubWF4RGF0ZVRpbWUgIT09IHVuZGVmaW5lZCAmJiB0cF9pbnN0Ll9kZWZhdWx0cy5tYXhEYXRlVGltZSBpbnN0YW5jZW9mIERhdGUpIHsKCQkJCXRwX2luc3QuX2RlZmF1bHRzLm1heERhdGUgPSBuZXcgRGF0ZSh0cF9pbnN0Ll9kZWZhdWx0cy5tYXhEYXRlVGltZS5nZXRUaW1lKCkpOwoJCQl9CgkJCXRwX2luc3QuJGlucHV0LmJpbmQoJ2ZvY3VzJywgZnVuY3Rpb24oKSB7CgkJCQl0cF9pbnN0Ll9vbkZvY3VzKCk7CgkJCX0pOwoKCQkJcmV0dXJuIHRwX2luc3Q7CgkJfSwKCgkJLyoKCQkqIGFkZCBvdXIgc2xpZGVycyB0byB0aGUgY2FsZW5kYXIKCQkqLwoJCV9hZGRUaW1lUGlja2VyOiBmdW5jdGlvbihkcF9pbnN0KSB7CgkJCXZhciBjdXJyRFQgPSAodGhpcy4kYWx0SW5wdXQgJiYgdGhpcy5fZGVmYXVsdHMuYWx0RmllbGRUaW1lT25seSkgPyB0aGlzLiRpbnB1dC52YWwoKSArICcgJyArIHRoaXMuJGFsdElucHV0LnZhbCgpIDogdGhpcy4kaW5wdXQudmFsKCk7CgoJCQl0aGlzLnRpbWVEZWZpbmVkID0gdGhpcy5fcGFyc2VUaW1lKGN1cnJEVCk7CgkJCXRoaXMuX2xpbWl0TWluTWF4RGF0ZVRpbWUoZHBfaW5zdCwgZmFsc2UpOwoJCQl0aGlzLl9pbmplY3RUaW1lUGlja2VyKCk7CgkJfSwKCgkJLyoKCQkqIHBhcnNlIHRoZSB0aW1lIHN0cmluZyBmcm9tIGlucHV0IHZhbHVlIG9yIF9zZXRUaW1lCgkJKi8KCQlfcGFyc2VUaW1lOiBmdW5jdGlvbih0aW1lU3RyaW5nLCB3aXRoRGF0ZSkgewoJCQlpZiAoIXRoaXMuaW5zdCkgewoJCQkJdGhpcy5pbnN0ID0gJC5kYXRlcGlja2VyLl9nZXRJbnN0KHRoaXMuJGlucHV0WzBdKTsKCQkJfQoKCQkJaWYgKHdpdGhEYXRlIHx8ICF0aGlzLl9kZWZhdWx0cy50aW1lT25seSkgewoJCQkJdmFyIGRwX2RhdGVGb3JtYXQgPSAkLmRhdGVwaWNrZXIuX2dldCh0aGlzLmluc3QsICdkYXRlRm9ybWF0Jyk7CgkJCQl0cnkgewoJCQkJCXZhciBwYXJzZVJlcyA9IHBhcnNlRGF0ZVRpbWVJbnRlcm5hbChkcF9kYXRlRm9ybWF0LCB0aGlzLl9kZWZhdWx0cy50aW1lRm9ybWF0LCB0aW1lU3RyaW5nLCAkLmRhdGVwaWNrZXIuX2dldEZvcm1hdENvbmZpZyh0aGlzLmluc3QpLCB0aGlzLl9kZWZhdWx0cyk7CgkJCQkJaWYgKCFwYXJzZVJlcy50aW1lT2JqKSB7CgkJCQkJCXJldHVybiBmYWxzZTsKCQkJCQl9CgkJCQkJJC5leHRlbmQodGhpcywgcGFyc2VSZXMudGltZU9iaik7CgkJCQl9IGNhdGNoIChlcnIpIHsKCQkJCQlyZXR1cm4gZmFsc2U7CgkJCQl9CgkJCQlyZXR1cm4gdHJ1ZTsKCQkJfSBlbHNlIHsKCQkJCXZhciB0aW1lT2JqID0gJC5kYXRlcGlja2VyLnBhcnNlVGltZSh0aGlzLl9kZWZhdWx0cy50aW1lRm9ybWF0LCB0aW1lU3RyaW5nLCB0aGlzLl9kZWZhdWx0cyk7CgkJCQlpZiAoIXRpbWVPYmopIHsKCQkJCQlyZXR1cm4gZmFsc2U7CgkJCQl9CgkJCQkkLmV4dGVuZCh0aGlzLCB0aW1lT2JqKTsKCQkJCXJldHVybiB0cnVlOwoJCQl9CgkJfSwKCgkJLyoKCQkqIGdlbmVyYXRlIGFuZCBpbmplY3QgaHRtbCBmb3IgdGltZXBpY2tlciBpbnRvIHVpIGRhdGVwaWNrZXIKCQkqLwoJCV9pbmplY3RUaW1lUGlja2VyOiBmdW5jdGlvbigpIHsKCQkJdmFyICRkcCA9IHRoaXMuaW5zdC5kcERpdiwKCQkJCW8gPSB0aGlzLmluc3Quc2V0dGluZ3MsCgkJCQl0cF9pbnN0ID0gdGhpcywKCQkJCWxpdGVtID0gJycsCgkJCQl1aXRlbSA9ICcnLAoJCQkJbWF4ID0ge30sCgkJCQlncmlkU2l6ZSA9IHt9LAoJCQkJc2l6ZSA9IG51bGw7CgoJCQkvLyBQcmV2ZW50IGRpc3BsYXlpbmcgdHdpY2UKCQkJaWYgKCRkcC5maW5kKCJkaXYudWktdGltZXBpY2tlci1kaXYiKS5sZW5ndGggPT09IDAgJiYgby5zaG93VGltZXBpY2tlcikgewoJCQkJdmFyIG5vRGlzcGxheSA9ICcgc3R5bGU9ImRpc3BsYXk6bm9uZTsiJywKCQkJCQlodG1sID0gJzxkaXYgY2xhc3M9InVpLXRpbWVwaWNrZXItZGl2Ij48ZGw+JyArICc8ZHQgY2xhc3M9InVpX3RwaWNrZXJfdGltZV9sYWJlbCInICsgKChvLnNob3dUaW1lKSA/ICcnIDogbm9EaXNwbGF5KSArICc+JyArIG8udGltZVRleHQgKyAnPC9kdD4nICsgCgkJCQkJCQkJJzxkZCBjbGFzcz0idWlfdHBpY2tlcl90aW1lIicgKyAoKG8uc2hvd1RpbWUpID8gJycgOiBub0Rpc3BsYXkpICsgJz48L2RkPic7CgoJCQkJLy8gQ3JlYXRlIHRoZSBtYXJrdXAKCQkJCWZvcih2YXIgaT0wLGw9dGhpcy51bml0cy5sZW5ndGg7IGk8bDsgaSsrKXsKCQkJCQlsaXRlbSA9IHRoaXMudW5pdHNbaV07CgkJCQkJdWl0ZW0gPSBsaXRlbS5zdWJzdHIoMCwxKS50b1VwcGVyQ2FzZSgpICsgbGl0ZW0uc3Vic3RyKDEpOwoJCQkJCS8vIEFkZGVkIGJ5IFBldGVyIE1lZGVpcm9zOgoJCQkJCS8vIC0gRmlndXJlIG91dCB3aGF0IHRoZSBob3VyL21pbnV0ZS9zZWNvbmQgbWF4IHNob3VsZCBiZSBiYXNlZCBvbiB0aGUgc3RlcCB2YWx1ZXMuCgkJCQkJLy8gLSBFeGFtcGxlOiBpZiBzdGVwTWludXRlIGlzIDE1LCB0aGVuIG1pbk1heCBpcyA0NS4KCQkJCQltYXhbbGl0ZW1dID0gcGFyc2VJbnQoKG9bbGl0ZW0rJ01heCddIC0gKChvW2xpdGVtKydNYXgnXSAtIG9bbGl0ZW0rJ01pbiddKSAlIG9bJ3N0ZXAnK3VpdGVtXSkpLCAxMCk7CgkJCQkJZ3JpZFNpemVbbGl0ZW1dID0gMDsKCgkJCQkJaHRtbCArPSAnPGR0IGNsYXNzPSJ1aV90cGlja2VyXycrIGxpdGVtICsnX2xhYmVsIicgKyAoKG9bJ3Nob3cnK3VpdGVtXSkgPyAnJyA6IG5vRGlzcGxheSkgKyAnPicgKyBvW2xpdGVtICsnVGV4dCddICsgJzwvZHQ+JyArIAoJCQkJCQkJCSc8ZGQgY2xhc3M9InVpX3RwaWNrZXJfJysgbGl0ZW0gKyciPjxkaXYgY2xhc3M9InVpX3RwaWNrZXJfJysgbGl0ZW0gKydfc2xpZGVyIicgKyAoKG9bJ3Nob3cnK3VpdGVtXSkgPyAnJyA6IG5vRGlzcGxheSkgKyAnPjwvZGl2Pic7CgoJCQkJCWlmIChvWydzaG93Jyt1aXRlbV0gJiYgb1tsaXRlbSsnR3JpZCddID4gMCkgewoJCQkJCQlodG1sICs9ICc8ZGl2IHN0eWxlPSJwYWRkaW5nLWxlZnQ6IDFweCI+PHRhYmxlIGNsYXNzPSJ1aS10cGlja2VyLWdyaWQtbGFiZWwiPjx0cj4nOwoKCQkJCQkJaWYobGl0ZW0gPT0gJ2hvdXInKXsKCQkJCQkJCWZvciAodmFyIGggPSBvW2xpdGVtKydNaW4nXTsgaCA8PSBtYXhbbGl0ZW1dOyBoICs9IHBhcnNlSW50KG9bbGl0ZW0rJ0dyaWQnXSwgMTApKSB7CgkJCQkJCQkJZ3JpZFNpemVbbGl0ZW1dKys7CgkJCQkJCQkJdmFyIHRtcGggPSAoby5hbXBtICYmIGggPiAxMikgPyBoIC0gMTIgOiBoOwoJCQkJCQkJCWlmICh0bXBoIDwgMTApIHsKCQkJCQkJCQkJdG1waCA9ICcwJyArIHRtcGg7CgkJCQkJCQkJfQoJCQkJCQkJCWlmIChvLmFtcG0pIHsKCQkJCQkJCQkJaWYgKGggPT09IDApIHsKCQkJCQkJCQkJCXRtcGggPSAxMiArICdhJzsKCQkJCQkJCQkJfSBlbHNlIHsKCQkJCQkJCQkJCWlmIChoIDwgMTIpIHsKCQkJCQkJCQkJCQl0bXBoICs9ICdhJzsKCQkJCQkJCQkJCX0gZWxzZSB7CgkJCQkJCQkJCQkJdG1waCArPSAncCc7CgkJCQkJCQkJCQl9CgkJCQkJCQkJCX0KCQkJCQkJCQl9CgkJCQkJCQkJaHRtbCArPSAnPHRkIGRhdGEtZm9yPSInK2xpdGVtKyciPicgKyB0bXBoICsgJzwvdGQ+JzsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCQllbHNlewoJCQkJCQkJZm9yICh2YXIgbSA9IG9bbGl0ZW0rJ01pbiddOyBtIDw9IG1heFtsaXRlbV07IG0gKz0gcGFyc2VJbnQob1tsaXRlbSsnR3JpZCddLCAxMCkpIHsKCQkJCQkJCQlncmlkU2l6ZVtsaXRlbV0rKzsKCQkJCQkJCQlodG1sICs9ICc8dGQgZGF0YS1mb3I9IicrbGl0ZW0rJyI+JyArICgobSA8IDEwKSA/ICcwJyA6ICcnKSArIG0gKyAnPC90ZD4nOwoJCQkJCQkJfQoJCQkJCQl9CgoJCQkJCQlodG1sICs9ICc8L3RyPjwvdGFibGU+PC9kaXY+JzsKCQkJCQl9CgkJCQkJaHRtbCArPSAnPC9kZD4nOwoJCQkJfQoJCQkJCgkJCQkvLyBUaW1lem9uZQoJCQkJaHRtbCArPSAnPGR0IGNsYXNzPSJ1aV90cGlja2VyX3RpbWV6b25lX2xhYmVsIicgKyAoKG8uc2hvd1RpbWV6b25lKSA/ICcnIDogbm9EaXNwbGF5KSArICc+JyArIG8udGltZXpvbmVUZXh0ICsgJzwvZHQ+JzsKCQkJCWh0bWwgKz0gJzxkZCBjbGFzcz0idWlfdHBpY2tlcl90aW1lem9uZSIgJyArICgoby5zaG93VGltZXpvbmUpID8gJycgOiBub0Rpc3BsYXkpICsgJz48L2RkPic7CgoJCQkJLy8gQ3JlYXRlIHRoZSBlbGVtZW50cyBmcm9tIHN0cmluZwoJCQkJaHRtbCArPSAnPC9kbD48L2Rpdj4nOwoJCQkJdmFyICR0cCA9ICQoaHRtbCk7CgoJCQkJLy8gaWYgd2Ugb25seSB3YW50IHRpbWUgcGlja2VyLi4uCgkJCQlpZiAoby50aW1lT25seSA9PT0gdHJ1ZSkgewoJCQkJCSR0cC5wcmVwZW5kKCc8ZGl2IGNsYXNzPSJ1aS13aWRnZXQtaGVhZGVyIHVpLWhlbHBlci1jbGVhcmZpeCB1aS1jb3JuZXItYWxsIj4nICsgJzxkaXYgY2xhc3M9InVpLWRhdGVwaWNrZXItdGl0bGUiPicgKyBvLnRpbWVPbmx5VGl0bGUgKyAnPC9kaXY+JyArICc8L2Rpdj4nKTsKCQkJCQkkZHAuZmluZCgnLnVpLWRhdGVwaWNrZXItaGVhZGVyLCAudWktZGF0ZXBpY2tlci1jYWxlbmRhcicpLmhpZGUoKTsKCQkJCX0KCQkJCQoJCQkJLy8gVXBkYXRlZCBieSBQZXRlciBNZWRlaXJvczoKCQkJCS8vIC0gUGFzcyBpbiBFdmVudCBhbmQgVUkgaW5zdGFuY2UgaW50byBzbGlkZSBmdW5jdGlvbgoJCQkJdGhpcy5ob3VyX3NsaWRlciA9ICR0cC5maW5kKCcudWlfdHBpY2tlcl9ob3VyX3NsaWRlcicpLnByb3AoJ3NsaWRlJywgbnVsbCkuc2xpZGVyKHsKCQkJCQlvcmllbnRhdGlvbjogImhvcml6b250YWwiLAoJCQkJCXZhbHVlOiB0aGlzLmhvdXIsCgkJCQkJbWluOiBvLmhvdXJNaW4sCgkJCQkJbWF4OiBtYXguaG91ciwKCQkJCQlzdGVwOiBvLnN0ZXBIb3VyLAoJCQkJCXNsaWRlOiBmdW5jdGlvbihldmVudCwgdWkpIHsKCQkJCQkJdHBfaW5zdC5ob3VyX3NsaWRlci5zbGlkZXIoIm9wdGlvbiIsICJ2YWx1ZSIsIHVpLnZhbHVlKTsKCQkJCQkJdHBfaW5zdC5fb25UaW1lQ2hhbmdlKCk7CgkJCQkJfSwKCQkJCQlzdG9wOiBmdW5jdGlvbihldmVudCwgdWkpIHsKCQkJCQkJdHBfaW5zdC5fb25TZWxlY3RIYW5kbGVyKCk7CgkJCQkJfQoJCQkJfSk7CgoJCQkJdGhpcy5taW51dGVfc2xpZGVyID0gJHRwLmZpbmQoJy51aV90cGlja2VyX21pbnV0ZV9zbGlkZXInKS5wcm9wKCdzbGlkZScsIG51bGwpLnNsaWRlcih7CgkJCQkJb3JpZW50YXRpb246ICJob3Jpem9udGFsIiwKCQkJCQl2YWx1ZTogdGhpcy5taW51dGUsCgkJCQkJbWluOiBvLm1pbnV0ZU1pbiwKCQkJCQltYXg6IG1heC5taW51dGUsCgkJCQkJc3RlcDogby5zdGVwTWludXRlLAoJCQkJCXNsaWRlOiBmdW5jdGlvbihldmVudCwgdWkpIHsKCQkJCQkJdHBfaW5zdC5taW51dGVfc2xpZGVyLnNsaWRlcigib3B0aW9uIiwgInZhbHVlIiwgdWkudmFsdWUpOwoJCQkJCQl0cF9pbnN0Ll9vblRpbWVDaGFuZ2UoKTsKCQkJCQl9LAoJCQkJCXN0b3A6IGZ1bmN0aW9uKGV2ZW50LCB1aSkgewoJCQkJCQl0cF9pbnN0Ll9vblNlbGVjdEhhbmRsZXIoKTsKCQkJCQl9CgkJCQl9KTsKCgkJCQl0aGlzLnNlY29uZF9zbGlkZXIgPSAkdHAuZmluZCgnLnVpX3RwaWNrZXJfc2Vjb25kX3NsaWRlcicpLnByb3AoJ3NsaWRlJywgbnVsbCkuc2xpZGVyKHsKCQkJCQlvcmllbnRhdGlvbjogImhvcml6b250YWwiLAoJCQkJCXZhbHVlOiB0aGlzLnNlY29uZCwKCQkJCQltaW46IG8uc2Vjb25kTWluLAoJCQkJCW1heDogbWF4LnNlY29uZCwKCQkJCQlzdGVwOiBvLnN0ZXBTZWNvbmQsCgkJCQkJc2xpZGU6IGZ1bmN0aW9uKGV2ZW50LCB1aSkgewoJCQkJCQl0cF9pbnN0LnNlY29uZF9zbGlkZXIuc2xpZGVyKCJvcHRpb24iLCAidmFsdWUiLCB1aS52YWx1ZSk7CgkJCQkJCXRwX2luc3QuX29uVGltZUNoYW5nZSgpOwoJCQkJCX0sCgkJCQkJc3RvcDogZnVuY3Rpb24oZXZlbnQsIHVpKSB7CgkJCQkJCXRwX2luc3QuX29uU2VsZWN0SGFuZGxlcigpOwoJCQkJCX0KCQkJCX0pOwoKCQkJCXRoaXMubWlsbGlzZWNfc2xpZGVyID0gJHRwLmZpbmQoJy51aV90cGlja2VyX21pbGxpc2VjX3NsaWRlcicpLnByb3AoJ3NsaWRlJywgbnVsbCkuc2xpZGVyKHsKCQkJCQlvcmllbnRhdGlvbjogImhvcml6b250YWwiLAoJCQkJCXZhbHVlOiB0aGlzLm1pbGxpc2VjLAoJCQkJCW1pbjogby5taWxsaXNlY01pbiwKCQkJCQltYXg6IG1heC5taWxsaXNlYywKCQkJCQlzdGVwOiBvLnN0ZXBNaWxsaXNlYywKCQkJCQlzbGlkZTogZnVuY3Rpb24oZXZlbnQsIHVpKSB7CgkJCQkJCXRwX2luc3QubWlsbGlzZWNfc2xpZGVyLnNsaWRlcigib3B0aW9uIiwgInZhbHVlIiwgdWkudmFsdWUpOwoJCQkJCQl0cF9pbnN0Ll9vblRpbWVDaGFuZ2UoKTsKCQkJCQl9LAoJCQkJCXN0b3A6IGZ1bmN0aW9uKGV2ZW50LCB1aSkgewoJCQkJCQl0cF9pbnN0Ll9vblNlbGVjdEhhbmRsZXIoKTsKCQkJCQl9CgkJCQl9KTsKCgkJCQkvLyBhZGQgc2xpZGVycywgYWRqdXN0IGdyaWRzLCBhZGQgZXZlbnRzCgkJCQlmb3IodmFyIGk9MCxsPXRwX2luc3QudW5pdHMubGVuZ3RoOyBpPGw7IGkrKyl7CgkJCQkJbGl0ZW0gPSB0cF9pbnN0LnVuaXRzW2ldOwoJCQkJCXVpdGVtID0gbGl0ZW0uc3Vic3RyKDAsMSkudG9VcHBlckNhc2UoKSArIGxpdGVtLnN1YnN0cigxKTsKCQkJCQkKCQkJCQkvKiAKCQkJCQkJU29tZXRoaW5nIGZpc2h5IGhhcHBlbnMgd2hlbiBhc3NpZ25pbmcgdG8gdHBfaW5zdFsnaG91cl9zbGlkZXInXSBpbnN0ZWFkIG9mIHRwX2luc3QuaG91cl9zbGlkZXIsIEkgdGhpbmsgCgkJCQkJCWl0IGlzIGJlY2F1c2UgaXQgaXMgYXNzaWduZWQgYXMgYSBwcm90b3R5cGUuIENsaWNraW5nIHRoZSBzbGlkZXIgd2lsbCBhbHdheXMgY2hhbmdlIHRvIHRoZSBwcmV2aW91cyB2YWx1ZSAKCQkJCQkJbm90IHRoZSBuZXcgb25lIGNsaWNrZWQuIElkZWFsbHkgdGhpcyB3b3JrcyBhbmQgcmVkdWNlcyB0aGUgODArIGxpbmVzIG9mIGNvZGUgYWJvdmUKCQkJCQkvLyBhZGQgdGhlIHNsaWRlcgoJCQkJCXRwX2luc3RbbGl0ZW0rJ19zbGlkZXInXSA9ICR0cC5maW5kKCcudWlfdHBpY2tlcl8nK2xpdGVtKydfc2xpZGVyJykucHJvcCgnc2xpZGUnLCBudWxsKS5zbGlkZXIoewoJCQkJCQlvcmllbnRhdGlvbjogImhvcml6b250YWwiLAoJCQkJCQl2YWx1ZTogdHBfaW5zdFtsaXRlbV0sCgkJCQkJCW1pbjogb1tsaXRlbSsnTWluJ10sCgkJCQkJCW1heDogbWF4W2xpdGVtXSwKCQkJCQkJc3RlcDogb1snc3RlcCcrdWl0ZW1dLAoJCQkJCQlzbGlkZTogZnVuY3Rpb24oZXZlbnQsIHVpKSB7CgkJCQkJCQl0cF9pbnN0W2xpdGVtKydfc2xpZGVyJ10uc2xpZGVyKCJvcHRpb24iLCAidmFsdWUiLCB1aS52YWx1ZSk7CgkJCQkJCQl0cF9pbnN0Ll9vblRpbWVDaGFuZ2UoKTsKCQkJCQkJfSwKCQkJCQkJc3RvcDogZnVuY3Rpb24oZXZlbnQsIHVpKSB7CgkJCQkJCQkvL0VtdWxhdGUgZGF0ZXBpY2tlciBvblNlbGVjdCBiZWhhdmlvci4gQ2FsbCBvbiBzbGlkZXN0b3AuCgkJCQkJCQl0cF9pbnN0Ll9vblNlbGVjdEhhbmRsZXIoKTsKCQkJCQkJfQoJCQkJCX0pOwoJCQkJCSovCgoJCQkJCS8vIGFkanVzdCB0aGUgZ3JpZCBhbmQgYWRkIGNsaWNrIGV2ZW50CgkJCQkJaWYgKG9bJ3Nob3cnK3VpdGVtXSAmJiBvW2xpdGVtKydHcmlkJ10gPiAwKSB7CgkJCQkJCXNpemUgPSAxMDAgKiBncmlkU2l6ZVtsaXRlbV0gKiBvW2xpdGVtKydHcmlkJ10gLyAobWF4W2xpdGVtXSAtIG9bbGl0ZW0rJ01pbiddKTsKCQkJCQkJJHRwLmZpbmQoJy51aV90cGlja2VyXycrbGl0ZW0rJyB0YWJsZScpLmNzcyh7CgkJCQkJCQl3aWR0aDogc2l6ZSArICIlIiwKCQkJCQkJCW1hcmdpbkxlZnQ6IChzaXplIC8gKC0yICogZ3JpZFNpemVbbGl0ZW1dKSkgKyAiJSIsCgkJCQkJCQlib3JkZXJDb2xsYXBzZTogJ2NvbGxhcHNlJwoJCQkJCQl9KS5maW5kKCJ0ZCIpLmNsaWNrKGZ1bmN0aW9uKGUpewoJCQkJCQkJCXZhciAkdCA9ICQodGhpcyksCgkJCQkJCQkJCWggPSAkdC5odG1sKCksCgkJCQkJCQkJCWYgPSAkdC5kYXRhKCdmb3InKTsgLy8gbG9zZXMgc2NvcGUsIHNvIHdlIHVzZSBkYXRhLWZvcgoKCQkJCQkJCQlpZiAoZiA9PSAnaG91cicgJiYgby5hbXBtKSB7CgkJCQkJCQkJCXZhciBhcCA9IGguc3Vic3RyaW5nKDIpLnRvTG93ZXJDYXNlKCksCgkJCQkJCQkJCQlhcGggPSBwYXJzZUludChoLnN1YnN0cmluZygwLCAyKSwgMTApOwoJCQkJCQkJCQlpZiAoYXAgPT0gJ2EnKSB7CgkJCQkJCQkJCQlpZiAoYXBoID09IDEyKSB7CgkJCQkJCQkJCQkJaCA9IDA7CgkJCQkJCQkJCQl9IGVsc2UgewoJCQkJCQkJCQkJCWggPSBhcGg7CgkJCQkJCQkJCQl9CgkJCQkJCQkJCX0gZWxzZSBpZiAoYXBoID09IDEyKSB7CgkJCQkJCQkJCQloID0gMTI7CgkJCQkJCQkJCX0gZWxzZSB7CgkJCQkJCQkJCQloID0gYXBoICsgMTI7CgkJCQkJCQkJCX0KCQkJCQkJCQl9CgkJCQkJCQkJdHBfaW5zdFtmKydfc2xpZGVyJ10uc2xpZGVyKCJvcHRpb24iLCAidmFsdWUiLCBwYXJzZUludChoLDEwKSk7CgkJCQkJCQkJdHBfaW5zdC5fb25UaW1lQ2hhbmdlKCk7CgkJCQkJCQkJdHBfaW5zdC5fb25TZWxlY3RIYW5kbGVyKCk7CgkJCQkJCQl9KQoJCQkJCQkuY3NzKHsKCQkJCQkJCQljdXJzb3I6ICdwb2ludGVyJywKCQkJCQkJCQl3aWR0aDogKDEwMCAvIGdyaWRTaXplW2xpdGVtXSkgKyAnJScsCgkJCQkJCQkJdGV4dEFsaWduOiAnY2VudGVyJywKCQkJCQkJCQlvdmVyZmxvdzogJ2hpZGRlbicKCQkJCQkJCX0pOwoJCQkJCX0gLy8gZW5kIGlmIGdyaWQgPiAwCgkJCQl9IC8vIGVuZCBmb3IgbG9vcAoKCQkJCS8vIEFkZCB0aW1lem9uZSBvcHRpb25zCgkJCQl0aGlzLnRpbWV6b25lX3NlbGVjdCA9ICR0cC5maW5kKCcudWlfdHBpY2tlcl90aW1lem9uZScpLmFwcGVuZCgnPHNlbGVjdD48L3NlbGVjdD4nKS5maW5kKCJzZWxlY3QiKTsKCQkJCSQuZm4uYXBwZW5kLmFwcGx5KHRoaXMudGltZXpvbmVfc2VsZWN0LAoJCQkJJC5tYXAoby50aW1lem9uZUxpc3QsIGZ1bmN0aW9uKHZhbCwgaWR4KSB7CgkJCQkJcmV0dXJuICQoIjxvcHRpb24gLz4iKS52YWwodHlwZW9mIHZhbCA9PSAib2JqZWN0IiA/IHZhbC52YWx1ZSA6IHZhbCkudGV4dCh0eXBlb2YgdmFsID09ICJvYmplY3QiID8gdmFsLmxhYmVsIDogdmFsKTsKCQkJCX0pKTsKCQkJCWlmICh0eXBlb2YodGhpcy50aW1lem9uZSkgIT0gInVuZGVmaW5lZCIgJiYgdGhpcy50aW1lem9uZSAhPT0gbnVsbCAmJiB0aGlzLnRpbWV6b25lICE9PSAiIikgewoJCQkJCXZhciBsb2NhbF9kYXRlID0gbmV3IERhdGUodGhpcy5pbnN0LnNlbGVjdGVkWWVhciwgdGhpcy5pbnN0LnNlbGVjdGVkTW9udGgsIHRoaXMuaW5zdC5zZWxlY3RlZERheSwgMTIpOwoJCQkJCXZhciBsb2NhbF90aW1lem9uZSA9ICQudGltZXBpY2tlci50aW1lWm9uZU9mZnNldFN0cmluZyhsb2NhbF9kYXRlKTsKCQkJCQlpZiAobG9jYWxfdGltZXpvbmUgPT0gdGhpcy50aW1lem9uZSkgewoJCQkJCQlzZWxlY3RMb2NhbFRpbWVab25lKHRwX2luc3QpOwoJCQkJCX0gZWxzZSB7CgkJCQkJCXRoaXMudGltZXpvbmVfc2VsZWN0LnZhbCh0aGlzLnRpbWV6b25lKTsKCQkJCQl9CgkJCQl9IGVsc2UgewoJCQkJCWlmICh0eXBlb2YodGhpcy5ob3VyKSAhPSAidW5kZWZpbmVkIiAmJiB0aGlzLmhvdXIgIT09IG51bGwgJiYgdGhpcy5ob3VyICE9PSAiIikgewoJCQkJCQl0aGlzLnRpbWV6b25lX3NlbGVjdC52YWwoby5kZWZhdWx0VGltZXpvbmUpOwoJCQkJCX0gZWxzZSB7CgkJCQkJCXNlbGVjdExvY2FsVGltZVpvbmUodHBfaW5zdCk7CgkJCQkJfQoJCQkJfQoJCQkJdGhpcy50aW1lem9uZV9zZWxlY3QuY2hhbmdlKGZ1bmN0aW9uKCkgewoJCQkJCXRwX2luc3QuX2RlZmF1bHRzLnVzZUxvY2FsVGltZXpvbmUgPSBmYWxzZTsKCQkJCQl0cF9pbnN0Ll9vblRpbWVDaGFuZ2UoKTsKCQkJCX0pOwoJCQkJLy8gRW5kIHRpbWV6b25lIG9wdGlvbnMKCQkJCQoJCQkJLy8gaW5qZWN0IHRpbWVwaWNrZXIgaW50byBkYXRlcGlja2VyCgkJCQl2YXIgJGJ1dHRvblBhbmVsID0gJGRwLmZpbmQoJy51aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUnKTsKCQkJCWlmICgkYnV0dG9uUGFuZWwubGVuZ3RoKSB7CgkJCQkJJGJ1dHRvblBhbmVsLmJlZm9yZSgkdHApOwoJCQkJfSBlbHNlIHsKCQkJCQkkZHAuYXBwZW5kKCR0cCk7CgkJCQl9CgoJCQkJdGhpcy4kdGltZU9iaiA9ICR0cC5maW5kKCcudWlfdHBpY2tlcl90aW1lJyk7CgoJCQkJaWYgKHRoaXMuaW5zdCAhPT0gbnVsbCkgewoJCQkJCXZhciB0aW1lRGVmaW5lZCA9IHRoaXMudGltZURlZmluZWQ7CgkJCQkJdGhpcy5fb25UaW1lQ2hhbmdlKCk7CgkJCQkJdGhpcy50aW1lRGVmaW5lZCA9IHRpbWVEZWZpbmVkOwoJCQkJfQoKCQkJCS8vIHNsaWRlQWNjZXNzIGludGVncmF0aW9uOiBodHRwOi8vdHJlbnRyaWNoYXJkc29uLmNvbS8yMDExLzExLzExL2pxdWVyeS11aS1zbGlkZXJzLWFuZC10b3VjaC1hY2Nlc3NpYmlsaXR5LwoJCQkJaWYgKHRoaXMuX2RlZmF1bHRzLmFkZFNsaWRlckFjY2VzcykgewoJCQkJCXZhciBzbGlkZXJBY2Nlc3NBcmdzID0gdGhpcy5fZGVmYXVsdHMuc2xpZGVyQWNjZXNzQXJnczsKCQkJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyAvLyBmaXggZm9yIGlubGluZSBtb2RlCgkJCQkJCWlmICgkdHAuZmluZCgnLnVpLXNsaWRlci1hY2Nlc3MnKS5sZW5ndGggPT09IDApIHsKCQkJCQkJCSR0cC5maW5kKCcudWktc2xpZGVyOnZpc2libGUnKS5zbGlkZXJBY2Nlc3Moc2xpZGVyQWNjZXNzQXJncyk7CgoJCQkJCQkJLy8gZml4IGFueSBncmlkcyBzaW5jZSBzbGlkZXJzIGFyZSBzaG9ydGVyCgkJCQkJCQl2YXIgc2xpZGVyQWNjZXNzV2lkdGggPSAkdHAuZmluZCgnLnVpLXNsaWRlci1hY2Nlc3M6ZXEoMCknKS5vdXRlcldpZHRoKHRydWUpOwoJCQkJCQkJaWYgKHNsaWRlckFjY2Vzc1dpZHRoKSB7CgkJCQkJCQkJJHRwLmZpbmQoJ3RhYmxlOnZpc2libGUnKS5lYWNoKGZ1bmN0aW9uKCkgewoJCQkJCQkJCQl2YXIgJGcgPSAkKHRoaXMpLAoJCQkJCQkJCQkJb2xkV2lkdGggPSAkZy5vdXRlcldpZHRoKCksCgkJCQkJCQkJCQlvbGRNYXJnaW5MZWZ0ID0gJGcuY3NzKCdtYXJnaW5MZWZ0JykudG9TdHJpbmcoKS5yZXBsYWNlKCclJywgJycpLAoJCQkJCQkJCQkJbmV3V2lkdGggPSBvbGRXaWR0aCAtIHNsaWRlckFjY2Vzc1dpZHRoLAoJCQkJCQkJCQkJbmV3TWFyZ2luTGVmdCA9ICgob2xkTWFyZ2luTGVmdCAqIG5ld1dpZHRoKSAvIG9sZFdpZHRoKSArICclJzsKCgkJCQkJCQkJCSRnLmNzcyh7CgkJCQkJCQkJCQl3aWR0aDogbmV3V2lkdGgsCgkJCQkJCQkJCQltYXJnaW5MZWZ0OiBuZXdNYXJnaW5MZWZ0CgkJCQkJCQkJCX0pOwoJCQkJCQkJCX0pOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfSwgMTApOwoJCQkJfQoJCQkJLy8gZW5kIHNsaWRlQWNjZXNzIGludGVncmF0aW9uCgoJCQl9CgkJfSwKCgkJLyoKCQkqIFRoaXMgZnVuY3Rpb24gdHJpZXMgdG8gbGltaXQgdGhlIGFiaWxpdHkgdG8gZ28gb3V0c2lkZSB0aGUKCQkqIG1pbi9tYXggZGF0ZSByYW5nZQoJCSovCgkJX2xpbWl0TWluTWF4RGF0ZVRpbWU6IGZ1bmN0aW9uKGRwX2luc3QsIGFkanVzdFNsaWRlcnMpIHsKCQkJdmFyIG8gPSB0aGlzLl9kZWZhdWx0cywKCQkJCWRwX2RhdGUgPSBuZXcgRGF0ZShkcF9pbnN0LnNlbGVjdGVkWWVhciwgZHBfaW5zdC5zZWxlY3RlZE1vbnRoLCBkcF9pbnN0LnNlbGVjdGVkRGF5KTsKCgkJCWlmICghdGhpcy5fZGVmYXVsdHMuc2hvd1RpbWVwaWNrZXIpIHsKCQkJCXJldHVybjsKCQkJfSAvLyBObyB0aW1lIHNvIG5vdGhpbmcgdG8gY2hlY2sgaGVyZQoKCQkJaWYgKCQuZGF0ZXBpY2tlci5fZ2V0KGRwX2luc3QsICdtaW5EYXRlVGltZScpICE9PSBudWxsICYmICQuZGF0ZXBpY2tlci5fZ2V0KGRwX2luc3QsICdtaW5EYXRlVGltZScpICE9PSB1bmRlZmluZWQgJiYgZHBfZGF0ZSkgewoJCQkJdmFyIG1pbkRhdGVUaW1lID0gJC5kYXRlcGlja2VyLl9nZXQoZHBfaW5zdCwgJ21pbkRhdGVUaW1lJyksCgkJCQkJbWluRGF0ZVRpbWVEYXRlID0gbmV3IERhdGUobWluRGF0ZVRpbWUuZ2V0RnVsbFllYXIoKSwgbWluRGF0ZVRpbWUuZ2V0TW9udGgoKSwgbWluRGF0ZVRpbWUuZ2V0RGF0ZSgpLCAwLCAwLCAwLCAwKTsKCgkJCQlpZiAodGhpcy5ob3VyTWluT3JpZ2luYWwgPT09IG51bGwgfHwgdGhpcy5taW51dGVNaW5PcmlnaW5hbCA9PT0gbnVsbCB8fCB0aGlzLnNlY29uZE1pbk9yaWdpbmFsID09PSBudWxsIHx8IHRoaXMubWlsbGlzZWNNaW5PcmlnaW5hbCA9PT0gbnVsbCkgewoJCQkJCXRoaXMuaG91ck1pbk9yaWdpbmFsID0gby5ob3VyTWluOwoJCQkJCXRoaXMubWludXRlTWluT3JpZ2luYWwgPSBvLm1pbnV0ZU1pbjsKCQkJCQl0aGlzLnNlY29uZE1pbk9yaWdpbmFsID0gby5zZWNvbmRNaW47CgkJCQkJdGhpcy5taWxsaXNlY01pbk9yaWdpbmFsID0gby5taWxsaXNlY01pbjsKCQkJCX0KCgkJCQlpZiAoZHBfaW5zdC5zZXR0aW5ncy50aW1lT25seSB8fCBtaW5EYXRlVGltZURhdGUuZ2V0VGltZSgpID09IGRwX2RhdGUuZ2V0VGltZSgpKSB7CgkJCQkJdGhpcy5fZGVmYXVsdHMuaG91ck1pbiA9IG1pbkRhdGVUaW1lLmdldEhvdXJzKCk7CgkJCQkJaWYgKHRoaXMuaG91ciA8PSB0aGlzLl9kZWZhdWx0cy5ob3VyTWluKSB7CgkJCQkJCXRoaXMuaG91ciA9IHRoaXMuX2RlZmF1bHRzLmhvdXJNaW47CgkJCQkJCXRoaXMuX2RlZmF1bHRzLm1pbnV0ZU1pbiA9IG1pbkRhdGVUaW1lLmdldE1pbnV0ZXMoKTsKCQkJCQkJaWYgKHRoaXMubWludXRlIDw9IHRoaXMuX2RlZmF1bHRzLm1pbnV0ZU1pbikgewoJCQkJCQkJdGhpcy5taW51dGUgPSB0aGlzLl9kZWZhdWx0cy5taW51dGVNaW47CgkJCQkJCQl0aGlzLl9kZWZhdWx0cy5zZWNvbmRNaW4gPSBtaW5EYXRlVGltZS5nZXRTZWNvbmRzKCk7CgkJCQkJCQlpZiAodGhpcy5zZWNvbmQgPD0gdGhpcy5fZGVmYXVsdHMuc2Vjb25kTWluKSB7CgkJCQkJCQkJdGhpcy5zZWNvbmQgPSB0aGlzLl9kZWZhdWx0cy5zZWNvbmRNaW47CgkJCQkJCQkJdGhpcy5fZGVmYXVsdHMubWlsbGlzZWNNaW4gPSBtaW5EYXRlVGltZS5nZXRNaWxsaXNlY29uZHMoKTsKCQkJCQkJCX0gZWxzZSB7CgkJCQkJCQkJaWYgKHRoaXMubWlsbGlzZWMgPCB0aGlzLl9kZWZhdWx0cy5taWxsaXNlY01pbikgewoJCQkJCQkJCQl0aGlzLm1pbGxpc2VjID0gdGhpcy5fZGVmYXVsdHMubWlsbGlzZWNNaW47CgkJCQkJCQkJfQoJCQkJCQkJCXRoaXMuX2RlZmF1bHRzLm1pbGxpc2VjTWluID0gdGhpcy5taWxsaXNlY01pbk9yaWdpbmFsOwoJCQkJCQkJfQoJCQkJCQl9IGVsc2UgewoJCQkJCQkJdGhpcy5fZGVmYXVsdHMuc2Vjb25kTWluID0gdGhpcy5zZWNvbmRNaW5PcmlnaW5hbDsKCQkJCQkJCXRoaXMuX2RlZmF1bHRzLm1pbGxpc2VjTWluID0gdGhpcy5taWxsaXNlY01pbk9yaWdpbmFsOwoJCQkJCQl9CgkJCQkJfSBlbHNlIHsKCQkJCQkJdGhpcy5fZGVmYXVsdHMubWludXRlTWluID0gdGhpcy5taW51dGVNaW5PcmlnaW5hbDsKCQkJCQkJdGhpcy5fZGVmYXVsdHMuc2Vjb25kTWluID0gdGhpcy5zZWNvbmRNaW5PcmlnaW5hbDsKCQkJCQkJdGhpcy5fZGVmYXVsdHMubWlsbGlzZWNNaW4gPSB0aGlzLm1pbGxpc2VjTWluT3JpZ2luYWw7CgkJCQkJfQoJCQkJfSBlbHNlIHsKCQkJCQl0aGlzLl9kZWZhdWx0cy5ob3VyTWluID0gdGhpcy5ob3VyTWluT3JpZ2luYWw7CgkJCQkJdGhpcy5fZGVmYXVsdHMubWludXRlTWluID0gdGhpcy5taW51dGVNaW5PcmlnaW5hbDsKCQkJCQl0aGlzLl9kZWZhdWx0cy5zZWNvbmRNaW4gPSB0aGlzLnNlY29uZE1pbk9yaWdpbmFsOwoJCQkJCXRoaXMuX2RlZmF1bHRzLm1pbGxpc2VjTWluID0gdGhpcy5taWxsaXNlY01pbk9yaWdpbmFsOwoJCQkJfQoJCQl9CgoJCQlpZiAoJC5kYXRlcGlja2VyLl9nZXQoZHBfaW5zdCwgJ21heERhdGVUaW1lJykgIT09IG51bGwgJiYgJC5kYXRlcGlja2VyLl9nZXQoZHBfaW5zdCwgJ21heERhdGVUaW1lJykgIT09IHVuZGVmaW5lZCAmJiBkcF9kYXRlKSB7CgkJCQl2YXIgbWF4RGF0ZVRpbWUgPSAkLmRhdGVwaWNrZXIuX2dldChkcF9pbnN0LCAnbWF4RGF0ZVRpbWUnKSwKCQkJCQltYXhEYXRlVGltZURhdGUgPSBuZXcgRGF0ZShtYXhEYXRlVGltZS5nZXRGdWxsWWVhcigpLCBtYXhEYXRlVGltZS5nZXRNb250aCgpLCBtYXhEYXRlVGltZS5nZXREYXRlKCksIDAsIDAsIDAsIDApOwoKCQkJCWlmICh0aGlzLmhvdXJNYXhPcmlnaW5hbCA9PT0gbnVsbCB8fCB0aGlzLm1pbnV0ZU1heE9yaWdpbmFsID09PSBudWxsIHx8IHRoaXMuc2Vjb25kTWF4T3JpZ2luYWwgPT09IG51bGwpIHsKCQkJCQl0aGlzLmhvdXJNYXhPcmlnaW5hbCA9IG8uaG91ck1heDsKCQkJCQl0aGlzLm1pbnV0ZU1heE9yaWdpbmFsID0gby5taW51dGVNYXg7CgkJCQkJdGhpcy5zZWNvbmRNYXhPcmlnaW5hbCA9IG8uc2Vjb25kTWF4OwoJCQkJCXRoaXMubWlsbGlzZWNNYXhPcmlnaW5hbCA9IG8ubWlsbGlzZWNNYXg7CgkJCQl9CgoJCQkJaWYgKGRwX2luc3Quc2V0dGluZ3MudGltZU9ubHkgfHwgbWF4RGF0ZVRpbWVEYXRlLmdldFRpbWUoKSA9PSBkcF9kYXRlLmdldFRpbWUoKSkgewoJCQkJCXRoaXMuX2RlZmF1bHRzLmhvdXJNYXggPSBtYXhEYXRlVGltZS5nZXRIb3VycygpOwoJCQkJCWlmICh0aGlzLmhvdXIgPj0gdGhpcy5fZGVmYXVsdHMuaG91ck1heCkgewoJCQkJCQl0aGlzLmhvdXIgPSB0aGlzLl9kZWZhdWx0cy5ob3VyTWF4OwoJCQkJCQl0aGlzLl9kZWZhdWx0cy5taW51dGVNYXggPSBtYXhEYXRlVGltZS5nZXRNaW51dGVzKCk7CgkJCQkJCWlmICh0aGlzLm1pbnV0ZSA+PSB0aGlzLl9kZWZhdWx0cy5taW51dGVNYXgpIHsKCQkJCQkJCXRoaXMubWludXRlID0gdGhpcy5fZGVmYXVsdHMubWludXRlTWF4OwoJCQkJCQkJdGhpcy5fZGVmYXVsdHMuc2Vjb25kTWF4ID0gbWF4RGF0ZVRpbWUuZ2V0U2Vjb25kcygpOwoJCQkJCQl9IGVsc2UgaWYgKHRoaXMuc2Vjb25kID49IHRoaXMuX2RlZmF1bHRzLnNlY29uZE1heCkgewoJCQkJCQkJdGhpcy5zZWNvbmQgPSB0aGlzLl9kZWZhdWx0cy5zZWNvbmRNYXg7CgkJCQkJCQl0aGlzLl9kZWZhdWx0cy5taWxsaXNlY01heCA9IG1heERhdGVUaW1lLmdldE1pbGxpc2Vjb25kcygpOwoJCQkJCQl9IGVsc2UgewoJCQkJCQkJaWYgKHRoaXMubWlsbGlzZWMgPiB0aGlzLl9kZWZhdWx0cy5taWxsaXNlY01heCkgewoJCQkJCQkJCXRoaXMubWlsbGlzZWMgPSB0aGlzLl9kZWZhdWx0cy5taWxsaXNlY01heDsKCQkJCQkJCX0KCQkJCQkJCXRoaXMuX2RlZmF1bHRzLm1pbGxpc2VjTWF4ID0gdGhpcy5taWxsaXNlY01heE9yaWdpbmFsOwoJCQkJCQl9CgkJCQkJfSBlbHNlIHsKCQkJCQkJdGhpcy5fZGVmYXVsdHMubWludXRlTWF4ID0gdGhpcy5taW51dGVNYXhPcmlnaW5hbDsKCQkJCQkJdGhpcy5fZGVmYXVsdHMuc2Vjb25kTWF4ID0gdGhpcy5zZWNvbmRNYXhPcmlnaW5hbDsKCQkJCQkJdGhpcy5fZGVmYXVsdHMubWlsbGlzZWNNYXggPSB0aGlzLm1pbGxpc2VjTWF4T3JpZ2luYWw7CgkJCQkJfQoJCQkJfSBlbHNlIHsKCQkJCQl0aGlzLl9kZWZhdWx0cy5ob3VyTWF4ID0gdGhpcy5ob3VyTWF4T3JpZ2luYWw7CgkJCQkJdGhpcy5fZGVmYXVsdHMubWludXRlTWF4ID0gdGhpcy5taW51dGVNYXhPcmlnaW5hbDsKCQkJCQl0aGlzLl9kZWZhdWx0cy5zZWNvbmRNYXggPSB0aGlzLnNlY29uZE1heE9yaWdpbmFsOwoJCQkJCXRoaXMuX2RlZmF1bHRzLm1pbGxpc2VjTWF4ID0gdGhpcy5taWxsaXNlY01heE9yaWdpbmFsOwoJCQkJfQoJCQl9CgoJCQlpZiAoYWRqdXN0U2xpZGVycyAhPT0gdW5kZWZpbmVkICYmIGFkanVzdFNsaWRlcnMgPT09IHRydWUpIHsKCQkJCXZhciBob3VyTWF4ID0gcGFyc2VJbnQoKHRoaXMuX2RlZmF1bHRzLmhvdXJNYXggLSAoKHRoaXMuX2RlZmF1bHRzLmhvdXJNYXggLSB0aGlzLl9kZWZhdWx0cy5ob3VyTWluKSAlIHRoaXMuX2RlZmF1bHRzLnN0ZXBIb3VyKSksIDEwKSwKCQkJCQltaW5NYXggPSBwYXJzZUludCgodGhpcy5fZGVmYXVsdHMubWludXRlTWF4IC0gKCh0aGlzLl9kZWZhdWx0cy5taW51dGVNYXggLSB0aGlzLl9kZWZhdWx0cy5taW51dGVNaW4pICUgdGhpcy5fZGVmYXVsdHMuc3RlcE1pbnV0ZSkpLCAxMCksCgkJCQkJc2VjTWF4ID0gcGFyc2VJbnQoKHRoaXMuX2RlZmF1bHRzLnNlY29uZE1heCAtICgodGhpcy5fZGVmYXVsdHMuc2Vjb25kTWF4IC0gdGhpcy5fZGVmYXVsdHMuc2Vjb25kTWluKSAlIHRoaXMuX2RlZmF1bHRzLnN0ZXBTZWNvbmQpKSwgMTApLAoJCQkJCW1pbGxpc2VjTWF4ID0gcGFyc2VJbnQoKHRoaXMuX2RlZmF1bHRzLm1pbGxpc2VjTWF4IC0gKCh0aGlzLl9kZWZhdWx0cy5taWxsaXNlY01heCAtIHRoaXMuX2RlZmF1bHRzLm1pbGxpc2VjTWluKSAlIHRoaXMuX2RlZmF1bHRzLnN0ZXBNaWxsaXNlYykpLCAxMCk7CgoJCQkJaWYgKHRoaXMuaG91cl9zbGlkZXIpIHsKCQkJCQl0aGlzLmhvdXJfc2xpZGVyLnNsaWRlcigib3B0aW9uIiwgewoJCQkJCQltaW46IHRoaXMuX2RlZmF1bHRzLmhvdXJNaW4sCgkJCQkJCW1heDogaG91ck1heAoJCQkJCX0pLnNsaWRlcigndmFsdWUnLCB0aGlzLmhvdXIpOwoJCQkJfQoJCQkJaWYgKHRoaXMubWludXRlX3NsaWRlcikgewoJCQkJCXRoaXMubWludXRlX3NsaWRlci5zbGlkZXIoIm9wdGlvbiIsIHsKCQkJCQkJbWluOiB0aGlzLl9kZWZhdWx0cy5taW51dGVNaW4sCgkJCQkJCW1heDogbWluTWF4CgkJCQkJfSkuc2xpZGVyKCd2YWx1ZScsIHRoaXMubWludXRlKTsKCQkJCX0KCQkJCWlmICh0aGlzLnNlY29uZF9zbGlkZXIpIHsKCQkJCQl0aGlzLnNlY29uZF9zbGlkZXIuc2xpZGVyKCJvcHRpb24iLCB7CgkJCQkJCW1pbjogdGhpcy5fZGVmYXVsdHMuc2Vjb25kTWluLAoJCQkJCQltYXg6IHNlY01heAoJCQkJCX0pLnNsaWRlcigndmFsdWUnLCB0aGlzLnNlY29uZCk7CgkJCQl9CgkJCQlpZiAodGhpcy5taWxsaXNlY19zbGlkZXIpIHsKCQkJCQl0aGlzLm1pbGxpc2VjX3NsaWRlci5zbGlkZXIoIm9wdGlvbiIsIHsKCQkJCQkJbWluOiB0aGlzLl9kZWZhdWx0cy5taWxsaXNlY01pbiwKCQkJCQkJbWF4OiBtaWxsaXNlY01heAoJCQkJCX0pLnNsaWRlcigndmFsdWUnLCB0aGlzLm1pbGxpc2VjKTsKCQkJCX0KCQkJfQoKCQl9LAoKCQkvKgoJCSogd2hlbiBhIHNsaWRlciBtb3Zlcywgc2V0IHRoZSBpbnRlcm5hbCB0aW1lLi4uCgkJKiBvbiB0aW1lIGNoYW5nZSBpcyBhbHNvIGNhbGxlZCB3aGVuIHRoZSB0aW1lIGlzIHVwZGF0ZWQgaW4gdGhlIHRleHQgZmllbGQKCQkqLwoJCV9vblRpbWVDaGFuZ2U6IGZ1bmN0aW9uKCkgewoJCQl2YXIgaG91ciA9ICh0aGlzLmhvdXJfc2xpZGVyKSA/IHRoaXMuaG91cl9zbGlkZXIuc2xpZGVyKCd2YWx1ZScpIDogZmFsc2UsCgkJCQltaW51dGUgPSAodGhpcy5taW51dGVfc2xpZGVyKSA/IHRoaXMubWludXRlX3NsaWRlci5zbGlkZXIoJ3ZhbHVlJykgOiBmYWxzZSwKCQkJCXNlY29uZCA9ICh0aGlzLnNlY29uZF9zbGlkZXIpID8gdGhpcy5zZWNvbmRfc2xpZGVyLnNsaWRlcigndmFsdWUnKSA6IGZhbHNlLAoJCQkJbWlsbGlzZWMgPSAodGhpcy5taWxsaXNlY19zbGlkZXIpID8gdGhpcy5taWxsaXNlY19zbGlkZXIuc2xpZGVyKCd2YWx1ZScpIDogZmFsc2UsCgkJCQl0aW1lem9uZSA9ICh0aGlzLnRpbWV6b25lX3NlbGVjdCkgPyB0aGlzLnRpbWV6b25lX3NlbGVjdC52YWwoKSA6IGZhbHNlLAoJCQkJbyA9IHRoaXMuX2RlZmF1bHRzOwoKCQkJaWYgKHR5cGVvZihob3VyKSA9PSAnb2JqZWN0JykgewoJCQkJaG91ciA9IGZhbHNlOwoJCQl9CgkJCWlmICh0eXBlb2YobWludXRlKSA9PSAnb2JqZWN0JykgewoJCQkJbWludXRlID0gZmFsc2U7CgkJCX0KCQkJaWYgKHR5cGVvZihzZWNvbmQpID09ICdvYmplY3QnKSB7CgkJCQlzZWNvbmQgPSBmYWxzZTsKCQkJfQoJCQlpZiAodHlwZW9mKG1pbGxpc2VjKSA9PSAnb2JqZWN0JykgewoJCQkJbWlsbGlzZWMgPSBmYWxzZTsKCQkJfQoJCQlpZiAodHlwZW9mKHRpbWV6b25lKSA9PSAnb2JqZWN0JykgewoJCQkJdGltZXpvbmUgPSBmYWxzZTsKCQkJfQoKCQkJaWYgKGhvdXIgIT09IGZhbHNlKSB7CgkJCQlob3VyID0gcGFyc2VJbnQoaG91ciwgMTApOwoJCQl9CgkJCWlmIChtaW51dGUgIT09IGZhbHNlKSB7CgkJCQltaW51dGUgPSBwYXJzZUludChtaW51dGUsIDEwKTsKCQkJfQoJCQlpZiAoc2Vjb25kICE9PSBmYWxzZSkgewoJCQkJc2Vjb25kID0gcGFyc2VJbnQoc2Vjb25kLCAxMCk7CgkJCX0KCQkJaWYgKG1pbGxpc2VjICE9PSBmYWxzZSkgewoJCQkJbWlsbGlzZWMgPSBwYXJzZUludChtaWxsaXNlYywgMTApOwoJCQl9CgoJCQl2YXIgYW1wbSA9IG9baG91ciA8IDEyID8gJ2FtTmFtZXMnIDogJ3BtTmFtZXMnXVswXTsKCgkJCS8vIElmIHRoZSB1cGRhdGUgd2FzIGRvbmUgaW4gdGhlIGlucHV0IGZpZWxkLCB0aGUgaW5wdXQgZmllbGQgc2hvdWxkIG5vdCBiZSB1cGRhdGVkLgoJCQkvLyBJZiB0aGUgdXBkYXRlIHdhcyBkb25lIHVzaW5nIHRoZSBzbGlkZXJzLCB1cGRhdGUgdGhlIGlucHV0IGZpZWxkLgoJCQl2YXIgaGFzQ2hhbmdlZCA9IChob3VyICE9IHRoaXMuaG91ciB8fCBtaW51dGUgIT0gdGhpcy5taW51dGUgfHwgc2Vjb25kICE9IHRoaXMuc2Vjb25kIHx8IG1pbGxpc2VjICE9IHRoaXMubWlsbGlzZWMgCgkJCQkJCQkJfHwgKHRoaXMuYW1wbS5sZW5ndGggPiAwICYmIChob3VyIDwgMTIpICE9ICgkLmluQXJyYXkodGhpcy5hbXBtLnRvVXBwZXJDYXNlKCksIHRoaXMuYW1OYW1lcykgIT09IC0xKSkgCgkJCQkJCQkJfHwgKCh0aGlzLnRpbWV6b25lID09PSBudWxsICYmIHRpbWV6b25lICE9IHRoaXMuZGVmYXVsdFRpbWV6b25lKSB8fCAodGhpcy50aW1lem9uZSAhPT0gbnVsbCAmJiB0aW1lem9uZSAhPSB0aGlzLnRpbWV6b25lKSkpOwoKCQkJaWYgKGhhc0NoYW5nZWQpIHsKCgkJCQlpZiAoaG91ciAhPT0gZmFsc2UpIHsKCQkJCQl0aGlzLmhvdXIgPSBob3VyOwoJCQkJfQoJCQkJaWYgKG1pbnV0ZSAhPT0gZmFsc2UpIHsKCQkJCQl0aGlzLm1pbnV0ZSA9IG1pbnV0ZTsKCQkJCX0KCQkJCWlmIChzZWNvbmQgIT09IGZhbHNlKSB7CgkJCQkJdGhpcy5zZWNvbmQgPSBzZWNvbmQ7CgkJCQl9CgkJCQlpZiAobWlsbGlzZWMgIT09IGZhbHNlKSB7CgkJCQkJdGhpcy5taWxsaXNlYyA9IG1pbGxpc2VjOwoJCQkJfQoJCQkJaWYgKHRpbWV6b25lICE9PSBmYWxzZSkgewoJCQkJCXRoaXMudGltZXpvbmUgPSB0aW1lem9uZTsKCQkJCX0KCgkJCQlpZiAoIXRoaXMuaW5zdCkgewoJCQkJCXRoaXMuaW5zdCA9ICQuZGF0ZXBpY2tlci5fZ2V0SW5zdCh0aGlzLiRpbnB1dFswXSk7CgkJCQl9CgoJCQkJdGhpcy5fbGltaXRNaW5NYXhEYXRlVGltZSh0aGlzLmluc3QsIHRydWUpOwoJCQl9CgkJCWlmIChvLmFtcG0pIHsKCQkJCXRoaXMuYW1wbSA9IGFtcG07CgkJCX0KCgkJCS8vdGhpcy5fZm9ybWF0VGltZSgpOwoJCQl0aGlzLmZvcm1hdHRlZFRpbWUgPSAkLmRhdGVwaWNrZXIuZm9ybWF0VGltZSh0aGlzLl9kZWZhdWx0cy50aW1lRm9ybWF0LCB0aGlzLCB0aGlzLl9kZWZhdWx0cyk7CgkJCWlmICh0aGlzLiR0aW1lT2JqKSB7CgkJCQl0aGlzLiR0aW1lT2JqLnRleHQodGhpcy5mb3JtYXR0ZWRUaW1lICsgby50aW1lU3VmZml4KTsKCQkJfQoJCQl0aGlzLnRpbWVEZWZpbmVkID0gdHJ1ZTsKCQkJaWYgKGhhc0NoYW5nZWQpIHsKCQkJCXRoaXMuX3VwZGF0ZURhdGVUaW1lKCk7CgkJCX0KCQl9LAoKCQkvKgoJCSogY2FsbCBjdXN0b20gb25TZWxlY3QuCgkJKiBiaW5kIHRvIHNsaWRlcnMgc2xpZGVzdG9wLCBhbmQgZ3JpZCBjbGljay4KCQkqLwoJCV9vblNlbGVjdEhhbmRsZXI6IGZ1bmN0aW9uKCkgewoJCQl2YXIgb25TZWxlY3QgPSB0aGlzLl9kZWZhdWx0cy5vblNlbGVjdCB8fCB0aGlzLmluc3Quc2V0dGluZ3Mub25TZWxlY3Q7CgkJCXZhciBpbnB1dEVsID0gdGhpcy4kaW5wdXQgPyB0aGlzLiRpbnB1dFswXSA6IG51bGw7CgkJCWlmIChvblNlbGVjdCAmJiBpbnB1dEVsKSB7CgkJCQlvblNlbGVjdC5hcHBseShpbnB1dEVsLCBbdGhpcy5mb3JtYXR0ZWREYXRlVGltZSwgdGhpc10pOwoJCQl9CgkJfSwKCgkJLyoKCQkqIGxlZnQgZm9yIGFueSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eQoJCSovCgkJX2Zvcm1hdFRpbWU6IGZ1bmN0aW9uKHRpbWUsIGZvcm1hdCkgewoJCQl0aW1lID0gdGltZSB8fCB7CgkJCQlob3VyOiB0aGlzLmhvdXIsCgkJCQltaW51dGU6IHRoaXMubWludXRlLAoJCQkJc2Vjb25kOiB0aGlzLnNlY29uZCwKCQkJCW1pbGxpc2VjOiB0aGlzLm1pbGxpc2VjLAoJCQkJYW1wbTogdGhpcy5hbXBtLAoJCQkJdGltZXpvbmU6IHRoaXMudGltZXpvbmUKCQkJfTsKCQkJdmFyIHRtcHRpbWUgPSAoZm9ybWF0IHx8IHRoaXMuX2RlZmF1bHRzLnRpbWVGb3JtYXQpLnRvU3RyaW5nKCk7CgoJCQl0bXB0aW1lID0gJC5kYXRlcGlja2VyLmZvcm1hdFRpbWUodG1wdGltZSwgdGltZSwgdGhpcy5fZGVmYXVsdHMpOwoKCQkJaWYgKGFyZ3VtZW50cy5sZW5ndGgpIHsKCQkJCXJldHVybiB0bXB0aW1lOwoJCQl9IGVsc2UgewoJCQkJdGhpcy5mb3JtYXR0ZWRUaW1lID0gdG1wdGltZTsKCQkJfQoJCX0sCgoJCS8qCgkJKiB1cGRhdGUgb3VyIGlucHV0IHdpdGggdGhlIG5ldyBkYXRlIHRpbWUuLgoJCSovCgkJX3VwZGF0ZURhdGVUaW1lOiBmdW5jdGlvbihkcF9pbnN0KSB7CgkJCWRwX2luc3QgPSB0aGlzLmluc3QgfHwgZHBfaW5zdDsKCQkJdmFyIGR0ID0gJC5kYXRlcGlja2VyLl9kYXlsaWdodFNhdmluZ0FkanVzdChuZXcgRGF0ZShkcF9pbnN0LnNlbGVjdGVkWWVhciwgZHBfaW5zdC5zZWxlY3RlZE1vbnRoLCBkcF9pbnN0LnNlbGVjdGVkRGF5KSksCgkJCQlkYXRlRm10ID0gJC5kYXRlcGlja2VyLl9nZXQoZHBfaW5zdCwgJ2RhdGVGb3JtYXQnKSwKCQkJCWZvcm1hdENmZyA9ICQuZGF0ZXBpY2tlci5fZ2V0Rm9ybWF0Q29uZmlnKGRwX2luc3QpLAoJCQkJdGltZUF2YWlsYWJsZSA9IGR0ICE9PSBudWxsICYmIHRoaXMudGltZURlZmluZWQ7CgkJCXRoaXMuZm9ybWF0dGVkRGF0ZSA9ICQuZGF0ZXBpY2tlci5mb3JtYXREYXRlKGRhdGVGbXQsIChkdCA9PT0gbnVsbCA/IG5ldyBEYXRlKCkgOiBkdCksIGZvcm1hdENmZyk7CgkJCXZhciBmb3JtYXR0ZWREYXRlVGltZSA9IHRoaXMuZm9ybWF0dGVkRGF0ZTsKCgkJCS8qCgkJCSogcmVtb3ZlIGZvbGxvd2luZyBsaW5lcyB0byBmb3JjZSBldmVyeSBjaGFuZ2VzIGluIGRhdGUgcGlja2VyIHRvIGNoYW5nZSB0aGUgaW5wdXQgdmFsdWUKCQkJKiBCdWcgZGVzY3JpcHRpb25zOiB3aGVuIGFuIGlucHV0IGZpZWxkIGhhcyBhIGRlZmF1bHQgdmFsdWUsIGFuZCBjbGljayBvbiB0aGUgZmllbGQgdG8gcG9wIHVwIHRoZSBkYXRlIHBpY2tlci4gCgkJCSogSWYgdGhlIHVzZXIgbWFudWFsbHkgZW1wdHkgdGhlIHZhbHVlIGluIHRoZSBpbnB1dCBmaWVsZCwgdGhlIGRhdGUgcGlja2VyIHdpbGwgbmV2ZXIgY2hhbmdlIHNlbGVjdGVkIHZhbHVlLgoJCQkqLwoJCQkvL2lmIChkcF9pbnN0Lmxhc3RWYWwgIT09IHVuZGVmaW5lZCAmJiAoZHBfaW5zdC5sYXN0VmFsLmxlbmd0aCA+IDAgJiYgdGhpcy4kaW5wdXQudmFsKCkubGVuZ3RoID09PSAwKSkgewoJCQkvLwlyZXR1cm47CgkJCS8vfQoKCQkJaWYgKHRoaXMuX2RlZmF1bHRzLnRpbWVPbmx5ID09PSB0cnVlKSB7CgkJCQlmb3JtYXR0ZWREYXRlVGltZSA9IHRoaXMuZm9ybWF0dGVkVGltZTsKCQkJfSBlbHNlIGlmICh0aGlzLl9kZWZhdWx0cy50aW1lT25seSAhPT0gdHJ1ZSAmJiAodGhpcy5fZGVmYXVsdHMuYWx3YXlzU2V0VGltZSB8fCB0aW1lQXZhaWxhYmxlKSkgewoJCQkJZm9ybWF0dGVkRGF0ZVRpbWUgKz0gdGhpcy5fZGVmYXVsdHMuc2VwYXJhdG9yICsgdGhpcy5mb3JtYXR0ZWRUaW1lICsgdGhpcy5fZGVmYXVsdHMudGltZVN1ZmZpeDsKCQkJfQoKCQkJdGhpcy5mb3JtYXR0ZWREYXRlVGltZSA9IGZvcm1hdHRlZERhdGVUaW1lOwoKCQkJaWYgKCF0aGlzLl9kZWZhdWx0cy5zaG93VGltZXBpY2tlcikgewoJCQkJdGhpcy4kaW5wdXQudmFsKHRoaXMuZm9ybWF0dGVkRGF0ZSk7CgkJCX0gZWxzZSBpZiAodGhpcy4kYWx0SW5wdXQgJiYgdGhpcy5fZGVmYXVsdHMuYWx0RmllbGRUaW1lT25seSA9PT0gdHJ1ZSkgewoJCQkJdGhpcy4kYWx0SW5wdXQudmFsKHRoaXMuZm9ybWF0dGVkVGltZSk7CgkJCQl0aGlzLiRpbnB1dC52YWwodGhpcy5mb3JtYXR0ZWREYXRlKTsKCQkJfSBlbHNlIGlmICh0aGlzLiRhbHRJbnB1dCkgewoJCQkJdGhpcy4kaW5wdXQudmFsKGZvcm1hdHRlZERhdGVUaW1lKTsKCQkJCXZhciBhbHRGb3JtYXR0ZWREYXRlVGltZSA9ICcnLAoJCQkJCWFsdFNlcGFyYXRvciA9IHRoaXMuX2RlZmF1bHRzLmFsdFNlcGFyYXRvciA/IHRoaXMuX2RlZmF1bHRzLmFsdFNlcGFyYXRvciA6IHRoaXMuX2RlZmF1bHRzLnNlcGFyYXRvciwKCQkJCQlhbHRUaW1lU3VmZml4ID0gdGhpcy5fZGVmYXVsdHMuYWx0VGltZVN1ZmZpeCA/IHRoaXMuX2RlZmF1bHRzLmFsdFRpbWVTdWZmaXggOiB0aGlzLl9kZWZhdWx0cy50aW1lU3VmZml4OwoJCQkJaWYgKHRoaXMuX2RlZmF1bHRzLmFsdEZvcm1hdCkgYWx0Rm9ybWF0dGVkRGF0ZVRpbWUgPSAkLmRhdGVwaWNrZXIuZm9ybWF0RGF0ZSh0aGlzLl9kZWZhdWx0cy5hbHRGb3JtYXQsIChkdCA9PT0gbnVsbCA/IG5ldyBEYXRlKCkgOiBkdCksIGZvcm1hdENmZyk7CgkJCQllbHNlIGFsdEZvcm1hdHRlZERhdGVUaW1lID0gdGhpcy5mb3JtYXR0ZWREYXRlOwoJCQkJaWYgKGFsdEZvcm1hdHRlZERhdGVUaW1lKSBhbHRGb3JtYXR0ZWREYXRlVGltZSArPSBhbHRTZXBhcmF0b3I7CgkJCQlpZiAodGhpcy5fZGVmYXVsdHMuYWx0VGltZUZvcm1hdCkgYWx0Rm9ybWF0dGVkRGF0ZVRpbWUgKz0gJC5kYXRlcGlja2VyLmZvcm1hdFRpbWUodGhpcy5fZGVmYXVsdHMuYWx0VGltZUZvcm1hdCwgdGhpcywgdGhpcy5fZGVmYXVsdHMpICsgYWx0VGltZVN1ZmZpeDsKCQkJCWVsc2UgYWx0Rm9ybWF0dGVkRGF0ZVRpbWUgKz0gdGhpcy5mb3JtYXR0ZWRUaW1lICsgYWx0VGltZVN1ZmZpeDsKCQkJCXRoaXMuJGFsdElucHV0LnZhbChhbHRGb3JtYXR0ZWREYXRlVGltZSk7CgkJCX0gZWxzZSB7CgkJCQl0aGlzLiRpbnB1dC52YWwoZm9ybWF0dGVkRGF0ZVRpbWUpOwoJCQl9CgoJCQl0aGlzLiRpbnB1dC50cmlnZ2VyKCJjaGFuZ2UiKTsKCQl9LAoKCQlfb25Gb2N1czogZnVuY3Rpb24oKSB7CgkJCWlmICghdGhpcy4kaW5wdXQudmFsKCkgJiYgdGhpcy5fZGVmYXVsdHMuZGVmYXVsdFZhbHVlKSB7CgkJCQl0aGlzLiRpbnB1dC52YWwodGhpcy5fZGVmYXVsdHMuZGVmYXVsdFZhbHVlKTsKCQkJCXZhciBpbnN0ID0gJC5kYXRlcGlja2VyLl9nZXRJbnN0KHRoaXMuJGlucHV0LmdldCgwKSksCgkJCQkJdHBfaW5zdCA9ICQuZGF0ZXBpY2tlci5fZ2V0KGluc3QsICd0aW1lcGlja2VyJyk7CgkJCQlpZiAodHBfaW5zdCkgewoJCQkJCWlmICh0cF9pbnN0Ll9kZWZhdWx0cy50aW1lT25seSAmJiAoaW5zdC5pbnB1dC52YWwoKSAhPSBpbnN0Lmxhc3RWYWwpKSB7CgkJCQkJCXRyeSB7CgkJCQkJCQkkLmRhdGVwaWNrZXIuX3VwZGF0ZURhdGVwaWNrZXIoaW5zdCk7CgkJCQkJCX0gY2F0Y2ggKGVycikgewoJCQkJCQkJJC5kYXRlcGlja2VyLmxvZyhlcnIpOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9CgkJfQoKCX0pOwoKCSQuZm4uZXh0ZW5kKHsKCQkvKgoJCSogc2hvcnRoYW5kIGp1c3QgdG8gdXNlIHRpbWVwaWNrZXIuLgoJCSovCgkJdGltZXBpY2tlcjogZnVuY3Rpb24obykgewoJCQlvID0gbyB8fCB7fTsKCQkJdmFyIHRtcF9hcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTsKCgkJCWlmICh0eXBlb2YgbyA9PSAnb2JqZWN0JykgewoJCQkJdG1wX2FyZ3NbMF0gPSAkLmV4dGVuZChvLCB7CgkJCQkJdGltZU9ubHk6IHRydWUKCQkJCX0pOwoJCQl9CgoJCQlyZXR1cm4gJCh0aGlzKS5lYWNoKGZ1bmN0aW9uKCkgewoJCQkJJC5mbi5kYXRldGltZXBpY2tlci5hcHBseSgkKHRoaXMpLCB0bXBfYXJncyk7CgkJCX0pOwoJCX0sCgoJCS8qCgkJKiBleHRlbmQgdGltZXBpY2tlciB0byBkYXRlcGlja2VyCgkJKi8KCQlkYXRldGltZXBpY2tlcjogZnVuY3Rpb24obykgewoJCQlvID0gbyB8fCB7fTsKCQkJdmFyIHRtcF9hcmdzID0gYXJndW1lbnRzOwoKCQkJaWYgKHR5cGVvZihvKSA9PSAnc3RyaW5nJykgewoJCQkJaWYgKG8gPT0gJ2dldERhdGUnKSB7CgkJCQkJcmV0dXJuICQuZm4uZGF0ZXBpY2tlci5hcHBseSgkKHRoaXNbMF0pLCB0bXBfYXJncyk7CgkJCQl9IGVsc2UgewoJCQkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCQkJCXZhciAkdCA9ICQodGhpcyk7CgkJCQkJCSR0LmRhdGVwaWNrZXIuYXBwbHkoJHQsIHRtcF9hcmdzKTsKCQkJCQl9KTsKCQkJCX0KCQkJfSBlbHNlIHsKCQkJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCQkJdmFyICR0ID0gJCh0aGlzKTsKCQkJCQkkdC5kYXRlcGlja2VyKCQudGltZXBpY2tlci5fbmV3SW5zdCgkdCwgbykuX2RlZmF1bHRzKTsKCQkJCX0pOwoJCQl9CgkJfQoJfSk7CgoJLyoKCSogUHVibGljIFV0aWxpdHkgdG8gcGFyc2UgZGF0ZSBhbmQgdGltZQoJKi8KCSQuZGF0ZXBpY2tlci5wYXJzZURhdGVUaW1lID0gZnVuY3Rpb24oZGF0ZUZvcm1hdCwgdGltZUZvcm1hdCwgZGF0ZVRpbWVTdHJpbmcsIGRhdGVTZXR0aW5ncywgdGltZVNldHRpbmdzKSB7CgkJdmFyIHBhcnNlUmVzID0gcGFyc2VEYXRlVGltZUludGVybmFsKGRhdGVGb3JtYXQsIHRpbWVGb3JtYXQsIGRhdGVUaW1lU3RyaW5nLCBkYXRlU2V0dGluZ3MsIHRpbWVTZXR0aW5ncyk7CgkJaWYgKHBhcnNlUmVzLnRpbWVPYmopIHsKCQkJdmFyIHQgPSBwYXJzZVJlcy50aW1lT2JqOwoJCQlwYXJzZVJlcy5kYXRlLnNldEhvdXJzKHQuaG91ciwgdC5taW51dGUsIHQuc2Vjb25kLCB0Lm1pbGxpc2VjKTsKCQl9CgoJCXJldHVybiBwYXJzZVJlcy5kYXRlOwoJfTsKCgkvKgoJKiBQdWJsaWMgdXRpbGl0eSB0byBwYXJzZSB0aW1lCgkqLwoJJC5kYXRlcGlja2VyLnBhcnNlVGltZSA9IGZ1bmN0aW9uKHRpbWVGb3JtYXQsIHRpbWVTdHJpbmcsIG9wdGlvbnMpIHsKCQkKCQkvLyBwYXR0ZXJuIGZvciBzdGFuZGFyZCBhbmQgbG9jYWxpemVkIEFNL1BNIG1hcmtlcnMKCQl2YXIgZ2V0UGF0dGVybkFtcG0gPSBmdW5jdGlvbihhbU5hbWVzLCBwbU5hbWVzKSB7CgkJCXZhciBtYXJrZXJzID0gW107CgkJCWlmIChhbU5hbWVzKSB7CgkJCQkkLm1lcmdlKG1hcmtlcnMsIGFtTmFtZXMpOwoJCQl9CgkJCWlmIChwbU5hbWVzKSB7CgkJCQkkLm1lcmdlKG1hcmtlcnMsIHBtTmFtZXMpOwoJCQl9CgkJCW1hcmtlcnMgPSAkLm1hcChtYXJrZXJzLCBmdW5jdGlvbih2YWwpIHsKCQkJCXJldHVybiB2YWwucmVwbGFjZSgvWy4qKz98KClcW1xde31cXF0vZywgJ1xcJCYnKTsKCQkJfSk7CgkJCXJldHVybiAnKCcgKyBtYXJrZXJzLmpvaW4oJ3wnKSArICcpPyc7CgkJfTsKCgkJLy8gZmlndXJlIG91dCBwb3NpdGlvbiBvZiB0aW1lIGVsZW1lbnRzLi4gY2F1c2UganMgY2FudCBkbyBuYW1lZCBjYXB0dXJlcwoJCXZhciBnZXRGb3JtYXRQb3NpdGlvbnMgPSBmdW5jdGlvbih0aW1lRm9ybWF0KSB7CgkJCXZhciBmaW5kcyA9IHRpbWVGb3JtYXQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKGh7MSwyfXxtezEsMn18c3sxLDJ9fGx7MX18dHsxLDJ9fHopL2cpLAoJCQkJb3JkZXJzID0gewoJCQkJCWg6IC0xLAoJCQkJCW06IC0xLAoJCQkJCXM6IC0xLAoJCQkJCWw6IC0xLAoJCQkJCXQ6IC0xLAoJCQkJCXo6IC0xCgkJCQl9OwoKCQkJaWYgKGZpbmRzKSB7CgkJCQlmb3IgKHZhciBpID0gMDsgaSA8IGZpbmRzLmxlbmd0aDsgaSsrKSB7CgkJCQkJaWYgKG9yZGVyc1tmaW5kc1tpXS50b1N0cmluZygpLmNoYXJBdCgwKV0gPT0gLTEpIHsKCQkJCQkJb3JkZXJzW2ZpbmRzW2ldLnRvU3RyaW5nKCkuY2hhckF0KDApXSA9IGkgKyAxOwoJCQkJCX0KCQkJCX0KCQkJfQoJCQlyZXR1cm4gb3JkZXJzOwoJCX07CgoJCXZhciBvID0gZXh0ZW5kUmVtb3ZlKGV4dGVuZFJlbW92ZSh7fSwgJC50aW1lcGlja2VyLl9kZWZhdWx0cyksIG9wdGlvbnMgfHwge30pOwoKCQl2YXIgcmVnc3RyID0gJ14nICsgdGltZUZvcm1hdC50b1N0cmluZygpCgkJCQkJCQkJCS5yZXBsYWNlKC9oezEsMn0vaWcsICcoXFxkP1xcZCknKQoJCQkJCQkJCQkucmVwbGFjZSgvbXsxLDJ9L2lnLCAnKFxcZD9cXGQpJykKCQkJCQkJCQkJLnJlcGxhY2UoL3N7MSwyfS9pZywgJyhcXGQ/XFxkKScpCgkJCQkJCQkJCS5yZXBsYWNlKC9sezF9L2lnLCAnKFxcZD9cXGQ/XFxkKScpCgkJCQkJCQkJCS5yZXBsYWNlKC90ezEsMn0vaWcsIGdldFBhdHRlcm5BbXBtKG8uYW1OYW1lcywgby5wbU5hbWVzKSkKCQkJCQkJCQkJLnJlcGxhY2UoL3p7MX0vaWcsICcoenxbLStdXFxkXFxkOj9cXGRcXGR8XFxTKyk/JykKCQkJCQkJCQkJLnJlcGxhY2UoL1xzL2csICdcXHM/JykgKyAKCQkJCQkJCQkJby50aW1lU3VmZml4ICsgJyQnLAoJCQlvcmRlciA9IGdldEZvcm1hdFBvc2l0aW9ucyh0aW1lRm9ybWF0KSwKCQkJYW1wbSA9ICcnLAoJCQl0cmVnOwoKCQl0cmVnID0gdGltZVN0cmluZy5tYXRjaChuZXcgUmVnRXhwKHJlZ3N0ciwgJ2knKSk7CgoJCXZhciByZXNUaW1lID0gewoJCQlob3VyOiAwLAoJCQltaW51dGU6IDAsCgkJCXNlY29uZDogMCwKCQkJbWlsbGlzZWM6IDAKCQl9OwoKCQlpZiAodHJlZykgewoJCQlpZiAob3JkZXIudCAhPT0gLTEpIHsKCQkJCWlmICh0cmVnW29yZGVyLnRdID09PSB1bmRlZmluZWQgfHwgdHJlZ1tvcmRlci50XS5sZW5ndGggPT09IDApIHsKCQkJCQlhbXBtID0gJyc7CgkJCQkJcmVzVGltZS5hbXBtID0gJyc7CgkJCQl9IGVsc2UgewoJCQkJCWFtcG0gPSAkLmluQXJyYXkodHJlZ1tvcmRlci50XS50b1VwcGVyQ2FzZSgpLCBvLmFtTmFtZXMpICE9PSAtMSA/ICdBTScgOiAnUE0nOwoJCQkJCXJlc1RpbWUuYW1wbSA9IG9bYW1wbSA9PSAnQU0nID8gJ2FtTmFtZXMnIDogJ3BtTmFtZXMnXVswXTsKCQkJCX0KCQkJfQoKCQkJaWYgKG9yZGVyLmggIT09IC0xKSB7CgkJCQlpZiAoYW1wbSA9PSAnQU0nICYmIHRyZWdbb3JkZXIuaF0gPT0gJzEyJykgewoJCQkJCXJlc1RpbWUuaG91ciA9IDA7IC8vIDEyYW0gPSAwIGhvdXIKCQkJCX0gZWxzZSB7CgkJCQkJaWYgKGFtcG0gPT0gJ1BNJyAmJiB0cmVnW29yZGVyLmhdICE9ICcxMicpIHsKCQkJCQkJcmVzVGltZS5ob3VyID0gcGFyc2VJbnQodHJlZ1tvcmRlci5oXSwgMTApICsgMTI7IC8vIDEycG0gPSAxMiBob3VyLCBhbnkgb3RoZXIgcG0gPSBob3VyICsgMTIKCQkJCQl9IGVsc2UgewoJCQkJCQlyZXNUaW1lLmhvdXIgPSBOdW1iZXIodHJlZ1tvcmRlci5oXSk7CgkJCQkJfQoJCQkJfQoJCQl9CgoJCQlpZiAob3JkZXIubSAhPT0gLTEpIHsKCQkJCXJlc1RpbWUubWludXRlID0gTnVtYmVyKHRyZWdbb3JkZXIubV0pOwoJCQl9CgkJCWlmIChvcmRlci5zICE9PSAtMSkgewoJCQkJcmVzVGltZS5zZWNvbmQgPSBOdW1iZXIodHJlZ1tvcmRlci5zXSk7CgkJCX0KCQkJaWYgKG9yZGVyLmwgIT09IC0xKSB7CgkJCQlyZXNUaW1lLm1pbGxpc2VjID0gTnVtYmVyKHRyZWdbb3JkZXIubF0pOwoJCQl9CgkJCWlmIChvcmRlci56ICE9PSAtMSAmJiB0cmVnW29yZGVyLnpdICE9PSB1bmRlZmluZWQpIHsKCQkJCXZhciB0eiA9IHRyZWdbb3JkZXIuel0udG9VcHBlckNhc2UoKTsKCQkJCXN3aXRjaCAodHoubGVuZ3RoKSB7CgkJCQljYXNlIDE6CgkJCQkJLy8gWgoJCQkJCXR6ID0gby50aW1lem9uZUlzbzg2MDEgPyAnWicgOiAnKzAwMDAnOwoJCQkJCWJyZWFrOwoJCQkJY2FzZSA1OgoJCQkJCS8vICtoaG1tCgkJCQkJaWYgKG8udGltZXpvbmVJc284NjAxKSB7CgkJCQkJCXR6ID0gdHouc3Vic3RyaW5nKDEpID09ICcwMDAwJyA/ICdaJyA6IHR6LnN1YnN0cmluZygwLCAzKSArICc6JyArIHR6LnN1YnN0cmluZygzKTsKCQkJCQl9CgkJCQkJYnJlYWs7CgkJCQljYXNlIDY6CgkJCQkJLy8gK2hoOm1tCgkJCQkJaWYgKCFvLnRpbWV6b25lSXNvODYwMSkgewoJCQkJCQl0eiA9IHR6ID09ICdaJyB8fCB0ei5zdWJzdHJpbmcoMSkgPT0gJzAwOjAwJyA/ICcrMDAwMCcgOiB0ei5yZXBsYWNlKC86LywgJycpOwoJCQkJCX0gZWxzZSB7CgkJCQkJCWlmICh0ei5zdWJzdHJpbmcoMSkgPT0gJzAwOjAwJykgewoJCQkJCQkJdHogPSAnWic7CgkJCQkJCX0KCQkJCQl9CgkJCQkJYnJlYWs7CgkJCQl9CgkJCQlyZXNUaW1lLnRpbWV6b25lID0gdHo7CgkJCX0KCgoJCQlyZXR1cm4gcmVzVGltZTsKCQl9CgoJCXJldHVybiBmYWxzZTsKCX07CgoJLyoKCSogUHVibGljIHV0aWxpdHkgdG8gZm9ybWF0IHRoZSB0aW1lCgkqIGZvcm1hdCA9IHN0cmluZyBmb3JtYXQgb2YgdGhlIHRpbWUKCSogdGltZSA9IGEge30sIG5vdCBhIERhdGUoKSBmb3IgdGltZXpvbmVzCgkqIG9wdGlvbnMgPSBlc3NlbnRpYWxseSB0aGUgcmVnaW9uYWxbXS4uIGFtTmFtZXMsIHBtTmFtZXMsIGFtcG0KCSovCgkkLmRhdGVwaWNrZXIuZm9ybWF0VGltZSA9IGZ1bmN0aW9uKGZvcm1hdCwgdGltZSwgb3B0aW9ucykgewoJCW9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OwoJCW9wdGlvbnMgPSAkLmV4dGVuZCh7fSwgJC50aW1lcGlja2VyLl9kZWZhdWx0cywgb3B0aW9ucyk7CgkJdGltZSA9ICQuZXh0ZW5kKHsKCQkJaG91cjogMCwKCQkJbWludXRlOiAwLAoJCQlzZWNvbmQ6IDAsCgkJCW1pbGxpc2VjOiAwLAoJCQl0aW1lem9uZTogJyswMDAwJwoJCX0sIHRpbWUpOwoKCQl2YXIgdG1wdGltZSA9IGZvcm1hdDsKCQl2YXIgYW1wbU5hbWUgPSBvcHRpb25zLmFtTmFtZXNbMF07CgoJCXZhciBob3VyID0gcGFyc2VJbnQodGltZS5ob3VyLCAxMCk7CgkJaWYgKG9wdGlvbnMuYW1wbSkgewoJCQlpZiAoaG91ciA+IDExKSB7CgkJCQlhbXBtTmFtZSA9IG9wdGlvbnMucG1OYW1lc1swXTsKCQkJCWlmIChob3VyID4gMTIpIHsKCQkJCQlob3VyID0gaG91ciAlIDEyOwoJCQkJfQoJCQl9CgkJCWlmIChob3VyID09PSAwKSB7CgkJCQlob3VyID0gMTI7CgkJCX0KCQl9CgkJdG1wdGltZSA9IHRtcHRpbWUucmVwbGFjZSgvKD86aGg/fG1tP3xzcz98W3RUXXsxLDJ9fFtsel18KCcuKj8nfCIuKj8iKSkvZywgZnVuY3Rpb24obWF0Y2gpIHsKCQkJc3dpdGNoIChtYXRjaC50b0xvd2VyQ2FzZSgpKSB7CgkJCWNhc2UgJ2hoJzoKCQkJCXJldHVybiAoJzAnICsgaG91cikuc2xpY2UoLTIpOwoJCQljYXNlICdoJzoKCQkJCXJldHVybiBob3VyOwoJCQljYXNlICdtbSc6CgkJCQlyZXR1cm4gKCcwJyArIHRpbWUubWludXRlKS5zbGljZSgtMik7CgkJCWNhc2UgJ20nOgoJCQkJcmV0dXJuIHRpbWUubWludXRlOwoJCQljYXNlICdzcyc6CgkJCQlyZXR1cm4gKCcwJyArIHRpbWUuc2Vjb25kKS5zbGljZSgtMik7CgkJCWNhc2UgJ3MnOgoJCQkJcmV0dXJuIHRpbWUuc2Vjb25kOwoJCQljYXNlICdsJzoKCQkJCXJldHVybiAoJzAwJyArIHRpbWUubWlsbGlzZWMpLnNsaWNlKC0zKTsKCQkJY2FzZSAneic6CgkJCQlyZXR1cm4gdGltZS50aW1lem9uZSA9PT0gbnVsbD8gb3B0aW9ucy5kZWZhdWx0VGltZXpvbmUgOiB0aW1lLnRpbWV6b25lOwoJCQljYXNlICd0JzoKCQkJY2FzZSAndHQnOgoJCQkJaWYgKG9wdGlvbnMuYW1wbSkgewoJCQkJCWlmIChtYXRjaC5sZW5ndGggPT0gMSkgewoJCQkJCQlhbXBtTmFtZSA9IGFtcG1OYW1lLmNoYXJBdCgwKTsKCQkJCQl9CgkJCQkJcmV0dXJuIG1hdGNoLmNoYXJBdCgwKSA9PT0gJ1QnID8gYW1wbU5hbWUudG9VcHBlckNhc2UoKSA6IGFtcG1OYW1lLnRvTG93ZXJDYXNlKCk7CgkJCQl9CgkJCQlyZXR1cm4gJyc7CgkJCWRlZmF1bHQ6CgkJCQlyZXR1cm4gbWF0Y2gucmVwbGFjZSgvXCcvZywgIiIpIHx8ICInIjsKCQkJfQoJCX0pOwoKCQl0bXB0aW1lID0gJC50cmltKHRtcHRpbWUpOwoJCXJldHVybiB0bXB0aW1lOwoJfTsKCgkvKgoJKiB0aGUgYmFkIGhhY2sgOi8gb3ZlcnJpZGUgZGF0ZXBpY2tlciBzbyBpdCBkb2VzbnQgY2xvc2Ugb24gc2VsZWN0CgkvLyBpbnNwaXJlZDogaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xMjUyNTEyL2pxdWVyeS1kYXRlcGlja2VyLXByZXZlbnQtY2xvc2luZy1waWNrZXItd2hlbi1jbGlja2luZy1hLWRhdGUvMTc2MjM3OCMxNzYyMzc4CgkqLwoJJC5kYXRlcGlja2VyLl9iYXNlX3NlbGVjdERhdGUgPSAkLmRhdGVwaWNrZXIuX3NlbGVjdERhdGU7CgkkLmRhdGVwaWNrZXIuX3NlbGVjdERhdGUgPSBmdW5jdGlvbihpZCwgZGF0ZVN0cikgewoJCXZhciBpbnN0ID0gdGhpcy5fZ2V0SW5zdCgkKGlkKVswXSksCgkJCXRwX2luc3QgPSB0aGlzLl9nZXQoaW5zdCwgJ3RpbWVwaWNrZXInKTsKCgkJaWYgKHRwX2luc3QpIHsKCQkJdHBfaW5zdC5fbGltaXRNaW5NYXhEYXRlVGltZShpbnN0LCB0cnVlKTsKCQkJaW5zdC5pbmxpbmUgPSBpbnN0LnN0YXlfb3BlbiA9IHRydWU7CgkJCS8vVGhpcyB3YXkgdGhlIG9uU2VsZWN0IGhhbmRsZXIgY2FsbGVkIGZyb20gY2FsZW5kYXJwaWNrZXIgZ2V0IHRoZSBmdWxsIGRhdGVUaW1lCgkJCXRoaXMuX2Jhc2Vfc2VsZWN0RGF0ZShpZCwgZGF0ZVN0cik7CgkJCWluc3QuaW5saW5lID0gaW5zdC5zdGF5X29wZW4gPSBmYWxzZTsKCQkJdGhpcy5fbm90aWZ5Q2hhbmdlKGluc3QpOwoJCQl0aGlzLl91cGRhdGVEYXRlcGlja2VyKGluc3QpOwoJCX0gZWxzZSB7CgkJCXRoaXMuX2Jhc2Vfc2VsZWN0RGF0ZShpZCwgZGF0ZVN0cik7CgkJfQoJfTsKCgkvKgoJKiBzZWNvbmQgYmFkIGhhY2sgOi8gb3ZlcnJpZGUgZGF0ZXBpY2tlciBzbyBpdCB0cmlnZ2VycyBhbiBldmVudCB3aGVuIGNoYW5naW5nIHRoZSBpbnB1dCBmaWVsZAoJKiBhbmQgZG9lcyBub3QgcmVkcmF3IHRoZSBkYXRlcGlja2VyIG9uIGV2ZXJ5IHNlbGVjdERhdGUgZXZlbnQKCSovCgkkLmRhdGVwaWNrZXIuX2Jhc2VfdXBkYXRlRGF0ZXBpY2tlciA9ICQuZGF0ZXBpY2tlci5fdXBkYXRlRGF0ZXBpY2tlcjsKCSQuZGF0ZXBpY2tlci5fdXBkYXRlRGF0ZXBpY2tlciA9IGZ1bmN0aW9uKGluc3QpIHsKCgkJLy8gZG9uJ3QgcG9wdXAgdGhlIGRhdGVwaWNrZXIgaWYgdGhlcmUgaXMgYW5vdGhlciBpbnN0YW5jZSBhbHJlYWR5IG9wZW5lZAoJCXZhciBpbnB1dCA9IGluc3QuaW5wdXRbMF07CgkJaWYgKCQuZGF0ZXBpY2tlci5fY3VySW5zdCAmJiAkLmRhdGVwaWNrZXIuX2N1ckluc3QgIT0gaW5zdCAmJiAkLmRhdGVwaWNrZXIuX2RhdGVwaWNrZXJTaG93aW5nICYmICQuZGF0ZXBpY2tlci5fbGFzdElucHV0ICE9IGlucHV0KSB7CgkJCXJldHVybjsKCQl9CgoJCWlmICh0eXBlb2YoaW5zdC5zdGF5X29wZW4pICE9PSAnYm9vbGVhbicgfHwgaW5zdC5zdGF5X29wZW4gPT09IGZhbHNlKSB7CgoJCQl0aGlzLl9iYXNlX3VwZGF0ZURhdGVwaWNrZXIoaW5zdCk7CgoJCQkvLyBSZWxvYWQgdGhlIHRpbWUgY29udHJvbCB3aGVuIGNoYW5naW5nIHNvbWV0aGluZyBpbiB0aGUgaW5wdXQgdGV4dCBmaWVsZC4KCQkJdmFyIHRwX2luc3QgPSB0aGlzLl9nZXQoaW5zdCwgJ3RpbWVwaWNrZXInKTsKCQkJaWYgKHRwX2luc3QpIHsKCQkJCXRwX2luc3QuX2FkZFRpbWVQaWNrZXIoaW5zdCk7CgoJCQkJaWYgKHRwX2luc3QuX2RlZmF1bHRzLnVzZUxvY2FsVGltZXpvbmUpIHsgLy9jaGVja3MgZGF5bGlnaHQgc2F2aW5nIHdpdGggdGhlIG5ldyBkYXRlLgoJCQkJCXZhciBkYXRlID0gbmV3IERhdGUoaW5zdC5zZWxlY3RlZFllYXIsIGluc3Quc2VsZWN0ZWRNb250aCwgaW5zdC5zZWxlY3RlZERheSwgMTIpOwoJCQkJCXNlbGVjdExvY2FsVGltZVpvbmUodHBfaW5zdCwgZGF0ZSk7CgkJCQkJdHBfaW5zdC5fb25UaW1lQ2hhbmdlKCk7CgkJCQl9CgkJCX0KCQl9Cgl9OwoKCS8qCgkqIHRoaXJkIGJhZCBoYWNrIDovIG92ZXJyaWRlIGRhdGVwaWNrZXIgc28gaXQgYWxsb3dzIHNwYWNlcyBhbmQgY29sb24gaW4gdGhlIGlucHV0IGZpZWxkCgkqLwoJJC5kYXRlcGlja2VyLl9iYXNlX2RvS2V5UHJlc3MgPSAkLmRhdGVwaWNrZXIuX2RvS2V5UHJlc3M7CgkkLmRhdGVwaWNrZXIuX2RvS2V5UHJlc3MgPSBmdW5jdGlvbihldmVudCkgewoJCXZhciBpbnN0ID0gJC5kYXRlcGlja2VyLl9nZXRJbnN0KGV2ZW50LnRhcmdldCksCgkJCXRwX2luc3QgPSAkLmRhdGVwaWNrZXIuX2dldChpbnN0LCAndGltZXBpY2tlcicpOwoKCQlpZiAodHBfaW5zdCkgewoJCQlpZiAoJC5kYXRlcGlja2VyLl9nZXQoaW5zdCwgJ2NvbnN0cmFpbklucHV0JykpIHsKCQkJCXZhciBhbXBtID0gdHBfaW5zdC5fZGVmYXVsdHMuYW1wbSwKCQkJCQlkYXRlQ2hhcnMgPSAkLmRhdGVwaWNrZXIuX3Bvc3NpYmxlQ2hhcnMoJC5kYXRlcGlja2VyLl9nZXQoaW5zdCwgJ2RhdGVGb3JtYXQnKSksCgkJCQkJZGF0ZXRpbWVDaGFycyA9IHRwX2luc3QuX2RlZmF1bHRzLnRpbWVGb3JtYXQudG9TdHJpbmcoKQoJCQkJCQkJCQkJCS5yZXBsYWNlKC9baG1zXS9nLCAnJykKCQkJCQkJCQkJCQkucmVwbGFjZSgvVFQvZywgYW1wbSA/ICdBUE0nIDogJycpCgkJCQkJCQkJCQkJLnJlcGxhY2UoL1R0L2csIGFtcG0gPyAnQWFQcE1tJyA6ICcnKQoJCQkJCQkJCQkJCS5yZXBsYWNlKC90VC9nLCBhbXBtID8gJ0FhUHBNbScgOiAnJykKCQkJCQkJCQkJCQkucmVwbGFjZSgvVC9nLCBhbXBtID8gJ0FQJyA6ICcnKQoJCQkJCQkJCQkJCS5yZXBsYWNlKC90dC9nLCBhbXBtID8gJ2FwbScgOiAnJykKCQkJCQkJCQkJCQkucmVwbGFjZSgvdC9nLCBhbXBtID8gJ2FwJyA6ICcnKSArIAoJCQkJCQkJCQkJCSIgIiArIHRwX2luc3QuX2RlZmF1bHRzLnNlcGFyYXRvciArIAoJCQkJCQkJCQkJCXRwX2luc3QuX2RlZmF1bHRzLnRpbWVTdWZmaXggKyAKCQkJCQkJCQkJCQkodHBfaW5zdC5fZGVmYXVsdHMuc2hvd1RpbWV6b25lID8gdHBfaW5zdC5fZGVmYXVsdHMudGltZXpvbmVMaXN0LmpvaW4oJycpIDogJycpICsgCgkJCQkJCQkJCQkJKHRwX2luc3QuX2RlZmF1bHRzLmFtTmFtZXMuam9pbignJykpICsgKHRwX2luc3QuX2RlZmF1bHRzLnBtTmFtZXMuam9pbignJykpICsgCgkJCQkJCQkJCQkJZGF0ZUNoYXJzLAoJCQkJCWNociA9IFN0cmluZy5mcm9tQ2hhckNvZGUoZXZlbnQuY2hhckNvZGUgPT09IHVuZGVmaW5lZCA/IGV2ZW50LmtleUNvZGUgOiBldmVudC5jaGFyQ29kZSk7CgkJCQlyZXR1cm4gZXZlbnQuY3RybEtleSB8fCAoY2hyIDwgJyAnIHx8ICFkYXRlQ2hhcnMgfHwgZGF0ZXRpbWVDaGFycy5pbmRleE9mKGNocikgPiAtMSk7CgkJCX0KCQl9CgoJCXJldHVybiAkLmRhdGVwaWNrZXIuX2Jhc2VfZG9LZXlQcmVzcyhldmVudCk7Cgl9OwoKCS8qCgkqIE92ZXJyaWRlIGtleSB1cCBldmVudCB0byBzeW5jIG1hbnVhbCBpbnB1dCBjaGFuZ2VzLgoJKi8KCSQuZGF0ZXBpY2tlci5fYmFzZV9kb0tleVVwID0gJC5kYXRlcGlja2VyLl9kb0tleVVwOwoJJC5kYXRlcGlja2VyLl9kb0tleVVwID0gZnVuY3Rpb24oZXZlbnQpIHsKCQl2YXIgaW5zdCA9ICQuZGF0ZXBpY2tlci5fZ2V0SW5zdChldmVudC50YXJnZXQpLAoJCQl0cF9pbnN0ID0gJC5kYXRlcGlja2VyLl9nZXQoaW5zdCwgJ3RpbWVwaWNrZXInKTsKCgkJaWYgKHRwX2luc3QpIHsKCQkJaWYgKHRwX2luc3QuX2RlZmF1bHRzLnRpbWVPbmx5ICYmIChpbnN0LmlucHV0LnZhbCgpICE9IGluc3QubGFzdFZhbCkpIHsKCQkJCXRyeSB7CgkJCQkJJC5kYXRlcGlja2VyLl91cGRhdGVEYXRlcGlja2VyKGluc3QpOwoJCQkJfSBjYXRjaCAoZXJyKSB7CgkJCQkJJC5kYXRlcGlja2VyLmxvZyhlcnIpOwoJCQkJfQoJCQl9CgkJfQoKCQlyZXR1cm4gJC5kYXRlcGlja2VyLl9iYXNlX2RvS2V5VXAoZXZlbnQpOwoJfTsKCgkvKgoJKiBvdmVycmlkZSAiVG9kYXkiIGJ1dHRvbiB0byBhbHNvIGdyYWIgdGhlIHRpbWUuCgkqLwoJJC5kYXRlcGlja2VyLl9iYXNlX2dvdG9Ub2RheSA9ICQuZGF0ZXBpY2tlci5fZ290b1RvZGF5OwoJJC5kYXRlcGlja2VyLl9nb3RvVG9kYXkgPSBmdW5jdGlvbihpZCkgewoJCXZhciBpbnN0ID0gdGhpcy5fZ2V0SW5zdCgkKGlkKVswXSksCgkJCSRkcCA9IGluc3QuZHBEaXY7CgkJdGhpcy5fYmFzZV9nb3RvVG9kYXkoaWQpOwoJCXZhciB0cF9pbnN0ID0gdGhpcy5fZ2V0KGluc3QsICd0aW1lcGlja2VyJyk7CgkJc2VsZWN0TG9jYWxUaW1lWm9uZSh0cF9pbnN0KTsKCQl2YXIgbm93ID0gbmV3IERhdGUoKTsKCQl0aGlzLl9zZXRUaW1lKGluc3QsIG5vdyk7CgkJJCgnLnVpLWRhdGVwaWNrZXItdG9kYXknLCAkZHApLmNsaWNrKCk7Cgl9OwoKCS8qCgkqIERpc2FibGUgJiBlbmFibGUgdGhlIFRpbWUgaW4gdGhlIGRhdGV0aW1lcGlja2VyCgkqLwoJJC5kYXRlcGlja2VyLl9kaXNhYmxlVGltZXBpY2tlckRhdGVwaWNrZXIgPSBmdW5jdGlvbih0YXJnZXQpIHsKCQl2YXIgaW5zdCA9IHRoaXMuX2dldEluc3QodGFyZ2V0KTsKCQlpZiAoIWluc3QpIHsKCQkJcmV0dXJuOwoJCX0KCgkJdmFyIHRwX2luc3QgPSB0aGlzLl9nZXQoaW5zdCwgJ3RpbWVwaWNrZXInKTsKCQkkKHRhcmdldCkuZGF0ZXBpY2tlcignZ2V0RGF0ZScpOyAvLyBJbml0IHNlbGVjdGVkW1llYXJ8TW9udGh8RGF5XQoJCWlmICh0cF9pbnN0KSB7CgkJCXRwX2luc3QuX2RlZmF1bHRzLnNob3dUaW1lcGlja2VyID0gZmFsc2U7CgkJCXRwX2luc3QuX3VwZGF0ZURhdGVUaW1lKGluc3QpOwoJCX0KCX07CgoJJC5kYXRlcGlja2VyLl9lbmFibGVUaW1lcGlja2VyRGF0ZXBpY2tlciA9IGZ1bmN0aW9uKHRhcmdldCkgewoJCXZhciBpbnN0ID0gdGhpcy5fZ2V0SW5zdCh0YXJnZXQpOwoJCWlmICghaW5zdCkgewoJCQlyZXR1cm47CgkJfQoKCQl2YXIgdHBfaW5zdCA9IHRoaXMuX2dldChpbnN0LCAndGltZXBpY2tlcicpOwoJCSQodGFyZ2V0KS5kYXRlcGlja2VyKCdnZXREYXRlJyk7IC8vIEluaXQgc2VsZWN0ZWRbWWVhcnxNb250aHxEYXldCgkJaWYgKHRwX2luc3QpIHsKCQkJdHBfaW5zdC5fZGVmYXVsdHMuc2hvd1RpbWVwaWNrZXIgPSB0cnVlOwoJCQl0cF9pbnN0Ll9hZGRUaW1lUGlja2VyKGluc3QpOyAvLyBDb3VsZCBiZSBkaXNhYmxlZCBvbiBwYWdlIGxvYWQKCQkJdHBfaW5zdC5fdXBkYXRlRGF0ZVRpbWUoaW5zdCk7CgkJfQoJfTsKCgkvKgoJKiBDcmVhdGUgb3VyIG93biBzZXQgdGltZSBmdW5jdGlvbgoJKi8KCSQuZGF0ZXBpY2tlci5fc2V0VGltZSA9IGZ1bmN0aW9uKGluc3QsIGRhdGUpIHsKCQl2YXIgdHBfaW5zdCA9IHRoaXMuX2dldChpbnN0LCAndGltZXBpY2tlcicpOwoJCWlmICh0cF9pbnN0KSB7CgkJCXZhciBkZWZhdWx0cyA9IHRwX2luc3QuX2RlZmF1bHRzOwoKCQkJLy8gY2FsbGluZyBfc2V0VGltZSB3aXRoIG5vIGRhdGUgc2V0cyB0aW1lIHRvIGRlZmF1bHRzCgkJCXRwX2luc3QuaG91ciA9IGRhdGUgPyBkYXRlLmdldEhvdXJzKCkgOiBkZWZhdWx0cy5ob3VyOwoJCQl0cF9pbnN0Lm1pbnV0ZSA9IGRhdGUgPyBkYXRlLmdldE1pbnV0ZXMoKSA6IGRlZmF1bHRzLm1pbnV0ZTsKCQkJdHBfaW5zdC5zZWNvbmQgPSBkYXRlID8gZGF0ZS5nZXRTZWNvbmRzKCkgOiBkZWZhdWx0cy5zZWNvbmQ7CgkJCXRwX2luc3QubWlsbGlzZWMgPSBkYXRlID8gZGF0ZS5nZXRNaWxsaXNlY29uZHMoKSA6IGRlZmF1bHRzLm1pbGxpc2VjOwoKCQkJLy9jaGVjayBpZiB3aXRoaW4gbWluL21heCB0aW1lcy4uIAoJCQl0cF9pbnN0Ll9saW1pdE1pbk1heERhdGVUaW1lKGluc3QsIHRydWUpOwoKCQkJdHBfaW5zdC5fb25UaW1lQ2hhbmdlKCk7CgkJCXRwX2luc3QuX3VwZGF0ZURhdGVUaW1lKGluc3QpOwoJCX0KCX07CgoJLyoKCSogQ3JlYXRlIG5ldyBwdWJsaWMgbWV0aG9kIHRvIHNldCBvbmx5IHRpbWUsIGNhbGxhYmxlIGFzICQoKS5kYXRlcGlja2VyKCdzZXRUaW1lJywgZGF0ZSkKCSovCgkkLmRhdGVwaWNrZXIuX3NldFRpbWVEYXRlcGlja2VyID0gZnVuY3Rpb24odGFyZ2V0LCBkYXRlLCB3aXRoRGF0ZSkgewoJCXZhciBpbnN0ID0gdGhpcy5fZ2V0SW5zdCh0YXJnZXQpOwoJCWlmICghaW5zdCkgewoJCQlyZXR1cm47CgkJfQoKCQl2YXIgdHBfaW5zdCA9IHRoaXMuX2dldChpbnN0LCAndGltZXBpY2tlcicpOwoKCQlpZiAodHBfaW5zdCkgewoJCQl0aGlzLl9zZXREYXRlRnJvbUZpZWxkKGluc3QpOwoJCQl2YXIgdHBfZGF0ZTsKCQkJaWYgKGRhdGUpIHsKCQkJCWlmICh0eXBlb2YgZGF0ZSA9PSAic3RyaW5nIikgewoJCQkJCXRwX2luc3QuX3BhcnNlVGltZShkYXRlLCB3aXRoRGF0ZSk7CgkJCQkJdHBfZGF0ZSA9IG5ldyBEYXRlKCk7CgkJCQkJdHBfZGF0ZS5zZXRIb3Vycyh0cF9pbnN0LmhvdXIsIHRwX2luc3QubWludXRlLCB0cF9pbnN0LnNlY29uZCwgdHBfaW5zdC5taWxsaXNlYyk7CgkJCQl9IGVsc2UgewoJCQkJCXRwX2RhdGUgPSBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSk7CgkJCQl9CgkJCQlpZiAodHBfZGF0ZS50b1N0cmluZygpID09ICdJbnZhbGlkIERhdGUnKSB7CgkJCQkJdHBfZGF0ZSA9IHVuZGVmaW5lZDsKCQkJCX0KCQkJCXRoaXMuX3NldFRpbWUoaW5zdCwgdHBfZGF0ZSk7CgkJCX0KCQl9CgoJfTsKCgkvKgoJKiBvdmVycmlkZSBzZXREYXRlKCkgdG8gYWxsb3cgc2V0dGluZyB0aW1lIHRvbyB3aXRoaW4gRGF0ZSBvYmplY3QKCSovCgkkLmRhdGVwaWNrZXIuX2Jhc2Vfc2V0RGF0ZURhdGVwaWNrZXIgPSAkLmRhdGVwaWNrZXIuX3NldERhdGVEYXRlcGlja2VyOwoJJC5kYXRlcGlja2VyLl9zZXREYXRlRGF0ZXBpY2tlciA9IGZ1bmN0aW9uKHRhcmdldCwgZGF0ZSkgewoJCXZhciBpbnN0ID0gdGhpcy5fZ2V0SW5zdCh0YXJnZXQpOwoJCWlmICghaW5zdCkgewoJCQlyZXR1cm47CgkJfQoKCQl2YXIgdHBfZGF0ZSA9IChkYXRlIGluc3RhbmNlb2YgRGF0ZSkgPyBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSkgOiBkYXRlOwoKCQl0aGlzLl91cGRhdGVEYXRlcGlja2VyKGluc3QpOwoJCXRoaXMuX2Jhc2Vfc2V0RGF0ZURhdGVwaWNrZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKCQl0aGlzLl9zZXRUaW1lRGF0ZXBpY2tlcih0YXJnZXQsIHRwX2RhdGUsIHRydWUpOwoJfTsKCgkvKgoJKiBvdmVycmlkZSBnZXREYXRlKCkgdG8gYWxsb3cgZ2V0dGluZyB0aW1lIHRvbyB3aXRoaW4gRGF0ZSBvYmplY3QKCSovCgkkLmRhdGVwaWNrZXIuX2Jhc2VfZ2V0RGF0ZURhdGVwaWNrZXIgPSAkLmRhdGVwaWNrZXIuX2dldERhdGVEYXRlcGlja2VyOwoJJC5kYXRlcGlja2VyLl9nZXREYXRlRGF0ZXBpY2tlciA9IGZ1bmN0aW9uKHRhcmdldCwgbm9EZWZhdWx0KSB7CgkJdmFyIGluc3QgPSB0aGlzLl9nZXRJbnN0KHRhcmdldCk7CgkJaWYgKCFpbnN0KSB7CgkJCXJldHVybjsKCQl9CgoJCXZhciB0cF9pbnN0ID0gdGhpcy5fZ2V0KGluc3QsICd0aW1lcGlja2VyJyk7CgoJCWlmICh0cF9pbnN0KSB7CgkJCS8vIGlmIGl0IGhhc24ndCB5ZXQgYmVlbiBkZWZpbmVkLCBncmFiIGZyb20gZmllbGQKCQkJaWYoaW5zdC5sYXN0VmFsID09PSB1bmRlZmluZWQpewoJCQkJdGhpcy5fc2V0RGF0ZUZyb21GaWVsZChpbnN0LCBub0RlZmF1bHQpOwoJCQl9CgoJCQl2YXIgZGF0ZSA9IHRoaXMuX2dldERhdGUoaW5zdCk7CgkJCWlmIChkYXRlICYmIHRwX2luc3QuX3BhcnNlVGltZSgkKHRhcmdldCkudmFsKCksIHRwX2luc3QudGltZU9ubHkpKSB7CgkJCQlkYXRlLnNldEhvdXJzKHRwX2luc3QuaG91ciwgdHBfaW5zdC5taW51dGUsIHRwX2luc3Quc2Vjb25kLCB0cF9pbnN0Lm1pbGxpc2VjKTsKCQkJfQoJCQlyZXR1cm4gZGF0ZTsKCQl9CgkJcmV0dXJuIHRoaXMuX2Jhc2VfZ2V0RGF0ZURhdGVwaWNrZXIodGFyZ2V0LCBub0RlZmF1bHQpOwoJfTsKCgkvKgoJKiBvdmVycmlkZSBwYXJzZURhdGUoKSBiZWNhdXNlIFVJIDEuOC4xNCB0aHJvd3MgYW4gZXJyb3IgYWJvdXQgIkV4dHJhIGNoYXJhY3RlcnMiCgkqIEFuIG9wdGlvbiBpbiBkYXRhcGlja2VyIHRvIGlnbm9yZSBleHRyYSBmb3JtYXQgY2hhcmFjdGVycyB3b3VsZCBiZSBuaWNlci4KCSovCgkkLmRhdGVwaWNrZXIuX2Jhc2VfcGFyc2VEYXRlID0gJC5kYXRlcGlja2VyLnBhcnNlRGF0ZTsKCSQuZGF0ZXBpY2tlci5wYXJzZURhdGUgPSBmdW5jdGlvbihmb3JtYXQsIHZhbHVlLCBzZXR0aW5ncykgewoJCXZhciBkYXRlOwoJCXRyeSB7CgkJCWRhdGUgPSB0aGlzLl9iYXNlX3BhcnNlRGF0ZShmb3JtYXQsIHZhbHVlLCBzZXR0aW5ncyk7CgkJfSBjYXRjaCAoZXJyKSB7CgkJCS8vIEhhY2shICBUaGUgZXJyb3IgbWVzc2FnZSBlbmRzIHdpdGggYSBjb2xvbiwgYSBzcGFjZSwgYW5kCgkJCS8vIHRoZSAiZXh0cmEiIGNoYXJhY3RlcnMuICBXZSByZWx5IG9uIHRoYXQgaW5zdGVhZCBvZgoJCQkvLyBhdHRlbXB0aW5nIHRvIHBlcmZlY3RseSByZXByb2R1Y2UgdGhlIHBhcnNpbmcgYWxnb3JpdGhtLgoJCQlkYXRlID0gdGhpcy5fYmFzZV9wYXJzZURhdGUoZm9ybWF0LCB2YWx1ZS5zdWJzdHJpbmcoMCx2YWx1ZS5sZW5ndGgtKGVyci5sZW5ndGgtZXJyLmluZGV4T2YoJzonKS0yKSksIHNldHRpbmdzKTsKCQl9CgkJcmV0dXJuIGRhdGU7Cgl9OwoKCS8qCgkqIG92ZXJyaWRlIGZvcm1hdERhdGUgdG8gc2V0IGRhdGUgd2l0aCB0aW1lIHRvIHRoZSBpbnB1dAoJKi8KCSQuZGF0ZXBpY2tlci5fYmFzZV9mb3JtYXREYXRlID0gJC5kYXRlcGlja2VyLl9mb3JtYXREYXRlOwoJJC5kYXRlcGlja2VyLl9mb3JtYXREYXRlID0gZnVuY3Rpb24oaW5zdCwgZGF5LCBtb250aCwgeWVhcikgewoJCXZhciB0cF9pbnN0ID0gdGhpcy5fZ2V0KGluc3QsICd0aW1lcGlja2VyJyk7CgkJaWYgKHRwX2luc3QpIHsKCQkJdHBfaW5zdC5fdXBkYXRlRGF0ZVRpbWUoaW5zdCk7CgkJCXJldHVybiB0cF9pbnN0LiRpbnB1dC52YWwoKTsKCQl9CgkJcmV0dXJuIHRoaXMuX2Jhc2VfZm9ybWF0RGF0ZShpbnN0KTsKCX07CgoJLyoKCSogb3ZlcnJpZGUgb3B0aW9ucyBzZXR0ZXIgdG8gYWRkIHRpbWUgdG8gbWF4RGF0ZShUaW1lKSBhbmQgbWluRGF0ZShUaW1lKS4gTWF4RGF0ZQoJKi8KCSQuZGF0ZXBpY2tlci5fYmFzZV9vcHRpb25EYXRlcGlja2VyID0gJC5kYXRlcGlja2VyLl9vcHRpb25EYXRlcGlja2VyOwoJJC5kYXRlcGlja2VyLl9vcHRpb25EYXRlcGlja2VyID0gZnVuY3Rpb24odGFyZ2V0LCBuYW1lLCB2YWx1ZSkgewoJCXZhciBpbnN0ID0gdGhpcy5fZ2V0SW5zdCh0YXJnZXQpOwoJCWlmICghaW5zdCkgewoJCQlyZXR1cm4gbnVsbDsKCQl9CgoJCXZhciB0cF9pbnN0ID0gdGhpcy5fZ2V0KGluc3QsICd0aW1lcGlja2VyJyk7CgkJaWYgKHRwX2luc3QpIHsKCQkJdmFyIG1pbiA9IG51bGwsCgkJCQltYXggPSBudWxsLAoJCQkJb25zZWxlY3QgPSBudWxsOwoJCQlpZiAodHlwZW9mIG5hbWUgPT0gJ3N0cmluZycpIHsgLy8gaWYgbWluL21heCB3YXMgc2V0IHdpdGggdGhlIHN0cmluZwoJCQkJaWYgKG5hbWUgPT09ICdtaW5EYXRlJyB8fCBuYW1lID09PSAnbWluRGF0ZVRpbWUnKSB7CgkJCQkJbWluID0gdmFsdWU7CgkJCQl9IGVsc2UgewoJCQkJCWlmIChuYW1lID09PSAnbWF4RGF0ZScgfHwgbmFtZSA9PT0gJ21heERhdGVUaW1lJykgewoJCQkJCQltYXggPSB2YWx1ZTsKCQkJCQl9IGVsc2UgewoJCQkJCQlpZiAobmFtZSA9PT0gJ29uU2VsZWN0JykgewoJCQkJCQkJb25zZWxlY3QgPSB2YWx1ZTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJfSBlbHNlIHsKCQkJCWlmICh0eXBlb2YgbmFtZSA9PSAnb2JqZWN0JykgeyAvL2lmIG1pbi9tYXggd2FzIHNldCB3aXRoIHRoZSBKU09OCgkJCQkJaWYgKG5hbWUubWluRGF0ZSkgewoJCQkJCQltaW4gPSBuYW1lLm1pbkRhdGU7CgkJCQkJfSBlbHNlIHsKCQkJCQkJaWYgKG5hbWUubWluRGF0ZVRpbWUpIHsKCQkJCQkJCW1pbiA9IG5hbWUubWluRGF0ZVRpbWU7CgkJCQkJCX0gZWxzZSB7CgkJCQkJCQlpZiAobmFtZS5tYXhEYXRlKSB7CgkJCQkJCQkJbWF4ID0gbmFtZS5tYXhEYXRlOwoJCQkJCQkJfSBlbHNlIHsKCQkJCQkJCQlpZiAobmFtZS5tYXhEYXRlVGltZSkgewoJCQkJCQkJCQltYXggPSBuYW1lLm1heERhdGVUaW1lOwoJCQkJCQkJCX0KCQkJCQkJCX0KCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJfQoJCQlpZiAobWluKSB7IC8vaWYgbWluIHdhcyBzZXQKCQkJCWlmIChtaW4gPT09IDApIHsKCQkJCQltaW4gPSBuZXcgRGF0ZSgpOwoJCQkJfSBlbHNlIHsKCQkJCQltaW4gPSBuZXcgRGF0ZShtaW4pOwoJCQkJfQoKCQkJCXRwX2luc3QuX2RlZmF1bHRzLm1pbkRhdGUgPSBtaW47CgkJCQl0cF9pbnN0Ll9kZWZhdWx0cy5taW5EYXRlVGltZSA9IG1pbjsKCQkJfSBlbHNlIGlmIChtYXgpIHsgLy9pZiBtYXggd2FzIHNldAoJCQkJaWYgKG1heCA9PT0gMCkgewoJCQkJCW1heCA9IG5ldyBEYXRlKCk7CgkJCQl9IGVsc2UgewoJCQkJCW1heCA9IG5ldyBEYXRlKG1heCk7CgkJCQl9CgkJCQl0cF9pbnN0Ll9kZWZhdWx0cy5tYXhEYXRlID0gbWF4OwoJCQkJdHBfaW5zdC5fZGVmYXVsdHMubWF4RGF0ZVRpbWUgPSBtYXg7CgkJCX0gZWxzZSBpZiAob25zZWxlY3QpIHsKCQkJCXRwX2luc3QuX2RlZmF1bHRzLm9uU2VsZWN0ID0gb25zZWxlY3Q7CgkJCX0KCQl9CgkJaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHsKCQkJcmV0dXJuIHRoaXMuX2Jhc2Vfb3B0aW9uRGF0ZXBpY2tlcih0YXJnZXQsIG5hbWUpOwoJCX0KCQlyZXR1cm4gdGhpcy5fYmFzZV9vcHRpb25EYXRlcGlja2VyKHRhcmdldCwgbmFtZSwgdmFsdWUpOwoJfTsKCgkvKgoJKiBqUXVlcnkgZXh0ZW5kIG5vdyBpZ25vcmVzIG51bGxzIQoJKi8KCWZ1bmN0aW9uIGV4dGVuZFJlbW92ZSh0YXJnZXQsIHByb3BzKSB7CgkJJC5leHRlbmQodGFyZ2V0LCBwcm9wcyk7CgkJZm9yICh2YXIgbmFtZSBpbiBwcm9wcykgewoJCQlpZiAocHJvcHNbbmFtZV0gPT09IG51bGwgfHwgcHJvcHNbbmFtZV0gPT09IHVuZGVmaW5lZCkgewoJCQkJdGFyZ2V0W25hbWVdID0gcHJvcHNbbmFtZV07CgkJCX0KCQl9CgkJcmV0dXJuIHRhcmdldDsKCX0KCgkvKgoJKiBTcGxpdHMgZGF0ZXRpbWUgc3RyaW5nIGludG8gZGF0ZSBhbnMgdGltZSBzdWJzdHJpbmdzLgoJKiBUaHJvd3MgZXhjZXB0aW9uIHdoZW4gZGF0ZSBjYW4ndCBiZSBwYXJzZWQKCSogUmV0dXJucyBbZGF0ZVN0cmluZywgdGltZVN0cmluZ10KCSovCgl2YXIgc3BsaXREYXRlVGltZSA9IGZ1bmN0aW9uKGRhdGVGb3JtYXQsIGRhdGVUaW1lU3RyaW5nLCBkYXRlU2V0dGluZ3MsIHRpbWVTZXR0aW5ncykgewoJCXRyeSB7CgkJCS8vIFRoZSBpZGVhIGlzIHRvIGdldCB0aGUgbnVtYmVyIHNlcGFyYXRvciBvY2N1cmFuY2VzIGluIGRhdGV0aW1lIGFuZCB0aGUgdGltZSBmb3JtYXQgcmVxdWVzdGVkIChzaW5jZSB0aW1lIGhhcyAKCQkJLy8gZmV3ZXIgdW5rbm93bnMsIG1vc3RseSBudW1iZXJzIGFuZCBhbS9wbSkuIFdlIHdpbGwgdXNlIHRoZSB0aW1lIHBhdHRlcm4gdG8gc3BsaXQuCgkJCXZhciBzZXBhcmF0b3IgPSB0aW1lU2V0dGluZ3MgJiYgdGltZVNldHRpbmdzLnNlcGFyYXRvciA/IHRpbWVTZXR0aW5ncy5zZXBhcmF0b3IgOiAkLnRpbWVwaWNrZXIuX2RlZmF1bHRzLnNlcGFyYXRvciwKCQkJCWZvcm1hdCA9IHRpbWVTZXR0aW5ncyAmJiB0aW1lU2V0dGluZ3MudGltZUZvcm1hdCA/IHRpbWVTZXR0aW5ncy50aW1lRm9ybWF0IDogJC50aW1lcGlja2VyLl9kZWZhdWx0cy50aW1lRm9ybWF0LAoJCQkJYW1wbSA9IHRpbWVTZXR0aW5ncyAmJiB0aW1lU2V0dGluZ3MuYW1wbSA/IHRpbWVTZXR0aW5ncy5hbXBtIDogJC50aW1lcGlja2VyLl9kZWZhdWx0cy5hbXBtLAoJCQkJdGltZVBhcnRzID0gZm9ybWF0LnNwbGl0KHNlcGFyYXRvciksIC8vIGhvdyBtYW55IG9jY3VyYW5jZXMgb2Ygc2VwYXJhdG9yIG1heSBiZSBpbiBvdXIgZm9ybWF0PwoJCQkJdGltZVBhcnRzTGVuID0gdGltZVBhcnRzLmxlbmd0aCwKCQkJCWFsbFBhcnRzID0gZGF0ZVRpbWVTdHJpbmcuc3BsaXQoc2VwYXJhdG9yKSwKCQkJCWFsbFBhcnRzTGVuID0gYWxsUGFydHMubGVuZ3RoOwoKCQkJLy8gYmVjYXVzZSBvdXIgZGVmYXVsdCBhbXBtPWZhbHNlLCBidXQgb3VyIGRlZmF1bHQgZm9ybWF0IGhhcyB0dCwgd2UgbmVlZCB0byBmaWx0ZXIgdGhpcyBvdXQKCQkJaWYoIWFtcG0pewoJCQkJdGltZVBhcnRzID0gJC50cmltKGZvcm1hdC5yZXBsYWNlKC90L2dpLCcnKSkuc3BsaXQoc2VwYXJhdG9yKTsKCQkJCXRpbWVQYXJ0c0xlbiA9IHRpbWVQYXJ0cy5sZW5ndGg7CgkJCX0KCgkJCWlmIChhbGxQYXJ0c0xlbiA+IDEpIHsKCQkJCXJldHVybiBbCgkJCQkJCWFsbFBhcnRzLnNwbGljZSgwLGFsbFBhcnRzTGVuLXRpbWVQYXJ0c0xlbikuam9pbihzZXBhcmF0b3IpLAoJCQkJCQlhbGxQYXJ0cy5zcGxpY2UoMCx0aW1lUGFydHNMZW4pLmpvaW4oc2VwYXJhdG9yKQoJCQkJCV07CgkJCX0KCgkJfSBjYXRjaCAoZXJyKSB7CgkJCWlmIChlcnIuaW5kZXhPZigiOiIpID49IDApIHsKCQkJCS8vIEhhY2shICBUaGUgZXJyb3IgbWVzc2FnZSBlbmRzIHdpdGggYSBjb2xvbiwgYSBzcGFjZSwgYW5kCgkJCQkvLyB0aGUgImV4dHJhIiBjaGFyYWN0ZXJzLiAgV2UgcmVseSBvbiB0aGF0IGluc3RlYWQgb2YKCQkJCS8vIGF0dGVtcHRpbmcgdG8gcGVyZmVjdGx5IHJlcHJvZHVjZSB0aGUgcGFyc2luZyBhbGdvcml0aG0uCgkJCQl2YXIgZGF0ZVN0cmluZ0xlbmd0aCA9IGRhdGVUaW1lU3RyaW5nLmxlbmd0aCAtIChlcnIubGVuZ3RoIC0gZXJyLmluZGV4T2YoJzonKSAtIDIpLAoJCQkJCXRpbWVTdHJpbmcgPSBkYXRlVGltZVN0cmluZy5zdWJzdHJpbmcoZGF0ZVN0cmluZ0xlbmd0aCk7CgoJCQkJcmV0dXJuIFskLnRyaW0oZGF0ZVRpbWVTdHJpbmcuc3Vic3RyaW5nKDAsIGRhdGVTdHJpbmdMZW5ndGgpKSwgJC50cmltKGRhdGVUaW1lU3RyaW5nLnN1YnN0cmluZyhkYXRlU3RyaW5nTGVuZ3RoKSldOwoKCQkJfSBlbHNlIHsKCQkJCXRocm93IGVycjsKCQkJfQoJCX0KCQlyZXR1cm4gW2RhdGVUaW1lU3RyaW5nLCAnJ107Cgl9OwoKCS8qCgkqIEludGVybmFsIGZ1bmN0aW9uIHRvIHBhcnNlIGRhdGV0aW1lIGludGVydmFsCgkqIFJldHVybnM6IHtkYXRlOiBEYXRlLCB0aW1lT2JqOiBPYmplY3R9LCB3aGVyZQoJKiAgIGRhdGUgLSBwYXJzZWQgZGF0ZSB3aXRob3V0IHRpbWUgKHR5cGUgRGF0ZSkKCSogICB0aW1lT2JqID0ge2hvdXI6ICwgbWludXRlOiAsIHNlY29uZDogLCBtaWxsaXNlYzogfSAtIHBhcnNlZCB0aW1lLiBPcHRpb25hbAoJKi8KCXZhciBwYXJzZURhdGVUaW1lSW50ZXJuYWwgPSBmdW5jdGlvbihkYXRlRm9ybWF0LCB0aW1lRm9ybWF0LCBkYXRlVGltZVN0cmluZywgZGF0ZVNldHRpbmdzLCB0aW1lU2V0dGluZ3MpIHsKCQl2YXIgZGF0ZTsKCQl2YXIgc3BsaXRSZXMgPSBzcGxpdERhdGVUaW1lKGRhdGVGb3JtYXQsIGRhdGVUaW1lU3RyaW5nLCBkYXRlU2V0dGluZ3MsIHRpbWVTZXR0aW5ncyk7CgkJZGF0ZSA9ICQuZGF0ZXBpY2tlci5fYmFzZV9wYXJzZURhdGUoZGF0ZUZvcm1hdCwgc3BsaXRSZXNbMF0sIGRhdGVTZXR0aW5ncyk7CgkJaWYgKHNwbGl0UmVzWzFdICE9PSAnJykgewoJCQl2YXIgdGltZVN0cmluZyA9IHNwbGl0UmVzWzFdLAoJCQkJcGFyc2VkVGltZSA9ICQuZGF0ZXBpY2tlci5wYXJzZVRpbWUodGltZUZvcm1hdCwgdGltZVN0cmluZywgdGltZVNldHRpbmdzKTsKCgkJCWlmIChwYXJzZWRUaW1lID09PSBudWxsKSB7CgkJCQl0aHJvdyAnV3JvbmcgdGltZSBmb3JtYXQnOwoJCQl9CgkJCXJldHVybiB7CgkJCQlkYXRlOiBkYXRlLAoJCQkJdGltZU9iajogcGFyc2VkVGltZQoJCQl9OwoJCX0gZWxzZSB7CgkJCXJldHVybiB7CgkJCQlkYXRlOiBkYXRlCgkJCX07CgkJfQoJfTsKCgkvKgoJKiBJbnRlcm5hbCBmdW5jdGlvbiB0byBzZXQgdGltZXpvbmVfc2VsZWN0IHRvIHRoZSBsb2NhbCB0aW1lem9uZQoJKi8KCXZhciBzZWxlY3RMb2NhbFRpbWVab25lID0gZnVuY3Rpb24odHBfaW5zdCwgZGF0ZSkgewoJCWlmICh0cF9pbnN0ICYmIHRwX2luc3QudGltZXpvbmVfc2VsZWN0KSB7CgkJCXRwX2luc3QuX2RlZmF1bHRzLnVzZUxvY2FsVGltZXpvbmUgPSB0cnVlOwoJCQl2YXIgbm93ID0gdHlwZW9mIGRhdGUgIT09ICd1bmRlZmluZWQnID8gZGF0ZSA6IG5ldyBEYXRlKCk7CgkJCXZhciB0em9mZnNldCA9ICQudGltZXBpY2tlci50aW1lWm9uZU9mZnNldFN0cmluZyhub3cpOwoJCQlpZiAodHBfaW5zdC5fZGVmYXVsdHMudGltZXpvbmVJc284NjAxKSB7CgkJCQl0em9mZnNldCA9IHR6b2Zmc2V0LnN1YnN0cmluZygwLCAzKSArICc6JyArIHR6b2Zmc2V0LnN1YnN0cmluZygzKTsKCQkJfQoJCQl0cF9pbnN0LnRpbWV6b25lX3NlbGVjdC52YWwodHpvZmZzZXQpOwoJCX0KCX07CgoJLyoKCSogQ3JlYXRlIGEgU2luZ2xldG9uIEluc2FuY2UKCSovCgkkLnRpbWVwaWNrZXIgPSBuZXcgVGltZXBpY2tlcigpOwoKCS8qKgoJICogR2V0IHRoZSB0aW1lem9uZSBvZmZzZXQgYXMgc3RyaW5nIGZyb20gYSBkYXRlIG9iamVjdCAoZWcgJyswNTMwJyBmb3IgVVRDKzUuNSkKCSAqIEBwYXJhbSAgZGF0ZQoJICogQHJldHVybiBzdHJpbmcKCSAqLwoJJC50aW1lcGlja2VyLnRpbWVab25lT2Zmc2V0U3RyaW5nID0gZnVuY3Rpb24oZGF0ZSkgewoJCXZhciBvZmYgPSBkYXRlLmdldFRpbWV6b25lT2Zmc2V0KCkgKiAtMSwKCQkJbWludXRlcyA9IG9mZiAlIDYwLAoJCQlob3VycyA9IChvZmYgLSBtaW51dGVzKSAvIDYwOwoJCXJldHVybiAob2ZmID49IDAgPyAnKycgOiAnLScpICsgKCcwJyArIChob3VycyAqIDEwMSkudG9TdHJpbmcoKSkuc3Vic3RyKC0yKSArICgnMCcgKyAobWludXRlcyAqIDEwMSkudG9TdHJpbmcoKSkuc3Vic3RyKC0yKTsKCX07CgoJLyoqCgkgKiBDYWxscyBgdGltZXBpY2tlcigpYCBvbiB0aGUgYHN0YXJ0VGltZWAgYW5kIGBlbmRUaW1lYCBlbGVtZW50cywgYW5kIGNvbmZpZ3VyZXMgdGhlbSB0bwoJICogZW5mb3JjZSBkYXRlIHJhbmdlIGxpbWl0cy4KCSAqIG4uYi4gVGhlIGlucHV0IHZhbHVlIG11c3QgYmUgY29ycmVjdGx5IGZvcm1hdHRlZCAocmVmb3JtYXR0aW5nIGlzIG5vdCBzdXBwb3J0ZWQpCgkgKiBAcGFyYW0gIEVsZW1lbnQgc3RhcnRUaW1lCgkgKiBAcGFyYW0gIEVsZW1lbnQgZW5kVGltZQoJICogQHBhcmFtICBvYmogb3B0aW9ucyBPcHRpb25zIGZvciB0aGUgdGltZXBpY2tlcigpIGNhbGwKCSAqIEByZXR1cm4galF1ZXJ5CgkgKi8KCSQudGltZXBpY2tlci50aW1lUmFuZ2UgPSBmdW5jdGlvbihzdGFydFRpbWUsIGVuZFRpbWUsIG9wdGlvbnMpIHsKCQlyZXR1cm4gJC50aW1lcGlja2VyLmhhbmRsZVJhbmdlKCd0aW1lcGlja2VyJywgc3RhcnRUaW1lLCBlbmRUaW1lLCBvcHRpb25zKTsKCX07CgoJLyoqCgkgKiBDYWxscyBgZGF0ZXRpbWVwaWNrZXJgIG9uIHRoZSBgc3RhcnRUaW1lYCBhbmQgYGVuZFRpbWVgIGVsZW1lbnRzLCBhbmQgY29uZmlndXJlcyB0aGVtIHRvCgkgKiBlbmZvcmNlIGRhdGUgcmFuZ2UgbGltaXRzLgoJICogQHBhcmFtICBFbGVtZW50IHN0YXJ0VGltZQoJICogQHBhcmFtICBFbGVtZW50IGVuZFRpbWUKCSAqIEBwYXJhbSAgb2JqIG9wdGlvbnMgT3B0aW9ucyBmb3IgdGhlIGB0aW1lcGlja2VyKClgIGNhbGwuIEFsc28gc3VwcG9ydHMgYHJlZm9ybWF0YCwKCSAqICAgYSBib29sZWFuIHZhbHVlIHRoYXQgY2FuIGJlIHVzZWQgdG8gcmVmb3JtYXQgdGhlIGlucHV0IHZhbHVlcyB0byB0aGUgYGRhdGVGb3JtYXRgLgoJICogQHBhcmFtICBzdHJpbmcgbWV0aG9kIENhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIHR5cGUgb2YgcGlja2VyIHRvIGJlIGFkZGVkCgkgKiBAcmV0dXJuIGpRdWVyeQoJICovCgkkLnRpbWVwaWNrZXIuZGF0ZVRpbWVSYW5nZSA9IGZ1bmN0aW9uKHN0YXJ0VGltZSwgZW5kVGltZSwgb3B0aW9ucykgewoJCSQudGltZXBpY2tlci5kYXRlUmFuZ2Uoc3RhcnRUaW1lLCBlbmRUaW1lLCBvcHRpb25zLCAnZGF0ZXRpbWVwaWNrZXInKTsKCX07CgoJLyoqCgkgKiBDYWxscyBgbWV0aG9kYCBvbiB0aGUgYHN0YXJ0VGltZWAgYW5kIGBlbmRUaW1lYCBlbGVtZW50cywgYW5kIGNvbmZpZ3VyZXMgdGhlbSB0bwoJICogZW5mb3JjZSBkYXRlIHJhbmdlIGxpbWl0cy4KCSAqIEBwYXJhbSAgRWxlbWVudCBzdGFydFRpbWUKCSAqIEBwYXJhbSAgRWxlbWVudCBlbmRUaW1lCgkgKiBAcGFyYW0gIG9iaiBvcHRpb25zIE9wdGlvbnMgZm9yIHRoZSBgdGltZXBpY2tlcigpYCBjYWxsLiBBbHNvIHN1cHBvcnRzIGByZWZvcm1hdGAsCgkgKiAgIGEgYm9vbGVhbiB2YWx1ZSB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlZm9ybWF0IHRoZSBpbnB1dCB2YWx1ZXMgdG8gdGhlIGBkYXRlRm9ybWF0YC4KCSAqIEBwYXJhbSAgc3RyaW5nIG1ldGhvZCBDYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSB0eXBlIG9mIHBpY2tlciB0byBiZSBhZGRlZAoJICogQHJldHVybiBqUXVlcnkKCSAqLwoJJC50aW1lcGlja2VyLmRhdGVSYW5nZSA9IGZ1bmN0aW9uKHN0YXJ0VGltZSwgZW5kVGltZSwgb3B0aW9ucywgbWV0aG9kKSB7CgkJbWV0aG9kID0gbWV0aG9kIHx8ICdkYXRlcGlja2VyJzsKCQkkLnRpbWVwaWNrZXIuaGFuZGxlUmFuZ2UobWV0aG9kLCBzdGFydFRpbWUsIGVuZFRpbWUsIG9wdGlvbnMpOwoJfTsKCgkvKioKCSAqIENhbGxzIGBtZXRob2RgIG9uIHRoZSBgc3RhcnRUaW1lYCBhbmQgYGVuZFRpbWVgIGVsZW1lbnRzLCBhbmQgY29uZmlndXJlcyB0aGVtIHRvCgkgKiBlbmZvcmNlIGRhdGUgcmFuZ2UgbGltaXRzLgoJICogQHBhcmFtICBzdHJpbmcgbWV0aG9kIENhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIHR5cGUgb2YgcGlja2VyIHRvIGJlIGFkZGVkCgkgKiBAcGFyYW0gIEVsZW1lbnQgc3RhcnRUaW1lCgkgKiBAcGFyYW0gIEVsZW1lbnQgZW5kVGltZQoJICogQHBhcmFtICBvYmogb3B0aW9ucyBPcHRpb25zIGZvciB0aGUgYHRpbWVwaWNrZXIoKWAgY2FsbC4gQWxzbyBzdXBwb3J0cyBgcmVmb3JtYXRgLAoJICogICBhIGJvb2xlYW4gdmFsdWUgdGhhdCBjYW4gYmUgdXNlZCB0byByZWZvcm1hdCB0aGUgaW5wdXQgdmFsdWVzIHRvIHRoZSBgZGF0ZUZvcm1hdGAuCgkgKiBAcmV0dXJuIGpRdWVyeQoJICovCgkkLnRpbWVwaWNrZXIuaGFuZGxlUmFuZ2UgPSBmdW5jdGlvbihtZXRob2QsIHN0YXJ0VGltZSwgZW5kVGltZSwgb3B0aW9ucykgewoJCSQuZm5bbWV0aG9kXS5jYWxsKHN0YXJ0VGltZSwgJC5leHRlbmQoewoJCQlvbkNsb3NlOiBmdW5jdGlvbihkYXRlVGV4dCwgaW5zdCkgewoJCQkJY2hlY2tEYXRlcyh0aGlzLCBlbmRUaW1lLCBkYXRlVGV4dCk7CgkJCX0sCgkJCW9uU2VsZWN0OiBmdW5jdGlvbihzZWxlY3RlZERhdGVUaW1lKSB7CgkJCQlzZWxlY3RlZCh0aGlzLCBlbmRUaW1lLCAnbWluRGF0ZScpOwoJCQl9CgkJfSwgb3B0aW9ucywgb3B0aW9ucy5zdGFydCkpOwoJCSQuZm5bbWV0aG9kXS5jYWxsKGVuZFRpbWUsICQuZXh0ZW5kKHsKCQkJb25DbG9zZTogZnVuY3Rpb24oZGF0ZVRleHQsIGluc3QpIHsKCQkJCWNoZWNrRGF0ZXModGhpcywgc3RhcnRUaW1lLCBkYXRlVGV4dCk7CgkJCX0sCgkJCW9uU2VsZWN0OiBmdW5jdGlvbihzZWxlY3RlZERhdGVUaW1lKSB7CgkJCQlzZWxlY3RlZCh0aGlzLCBzdGFydFRpbWUsICdtYXhEYXRlJyk7CgkJCX0KCQl9LCBvcHRpb25zLCBvcHRpb25zLmVuZCkpOwoJCS8vIHRpbWVwaWNrZXIgZG9lc24ndCBwcm92aWRlIGFjY2VzcyB0byBpdHMgJ3RpbWVGb3JtYXQnIG9wdGlvbiwgCgkJLy8gbm9yIGNvdWxkIEkgZ2V0IGRhdGVwaWNrZXIuZm9ybWF0VGltZSgpIHRvIGJlaGF2ZSB3aXRoIHRpbWVzLCBzbyBJCgkJLy8gaGF2ZSBkaXNhYmxlZCByZWZvcm1hdHRpbmcgZm9yIHRpbWVwaWNrZXIKCQlpZiAobWV0aG9kICE9ICd0aW1lcGlja2VyJyAmJiBvcHRpb25zLnJlZm9ybWF0KSB7CgkJCSQoW3N0YXJ0VGltZSwgZW5kVGltZV0pLmVhY2goZnVuY3Rpb24oKSB7CgkJCQl2YXIgZm9ybWF0ID0gJCh0aGlzKVttZXRob2RdLmNhbGwoJCh0aGlzKSwgJ29wdGlvbicsICdkYXRlRm9ybWF0JyksCgkJCQkJZGF0ZSA9IG5ldyBEYXRlKCQodGhpcykudmFsKCkpOwoJCQkJaWYgKCQodGhpcykudmFsKCkgJiYgZGF0ZSkgewoJCQkJCSQodGhpcykudmFsKCQuZGF0ZXBpY2tlci5mb3JtYXREYXRlKGZvcm1hdCwgZGF0ZSkpOwoJCQkJfQoJCQl9KTsKCQl9CgkJY2hlY2tEYXRlcyhzdGFydFRpbWUsIGVuZFRpbWUsIHN0YXJ0VGltZS52YWwoKSk7CgoJCWZ1bmN0aW9uIGNoZWNrRGF0ZXMoY2hhbmdlZCwgb3RoZXIsIGRhdGVUZXh0KSB7CgkJCWlmIChvdGhlci52YWwoKSAmJiAobmV3IERhdGUoc3RhcnRUaW1lLnZhbCgpKSA+IG5ldyBEYXRlKGVuZFRpbWUudmFsKCkpKSkgewoJCQkJb3RoZXIudmFsKGRhdGVUZXh0KTsKCQkJfQoJCX0KCQlzZWxlY3RlZChzdGFydFRpbWUsIGVuZFRpbWUsICdtaW5EYXRlJyk7CgkJc2VsZWN0ZWQoZW5kVGltZSwgc3RhcnRUaW1lLCAnbWF4RGF0ZScpOwoKCQlmdW5jdGlvbiBzZWxlY3RlZChjaGFuZ2VkLCBvdGhlciwgb3B0aW9uKSB7CgkJCWlmICghJChjaGFuZ2VkKS52YWwoKSkgewoJCQkJcmV0dXJuOwoJCQl9CgkJCXZhciBkYXRlID0gJChjaGFuZ2VkKVttZXRob2RdLmNhbGwoJChjaGFuZ2VkKSwgJ2dldERhdGUnKTsKCQkJLy8gdGltZXBpY2tlciBkb2Vzbid0IGltcGxlbWVudCAnZ2V0RGF0ZScgYW5kIHJldHVybnMgYSBqUXVlcnkKCQkJaWYgKGRhdGUuZ2V0VGltZSkgewoJCQkJJChvdGhlcilbbWV0aG9kXS5jYWxsKCQob3RoZXIpLCAnb3B0aW9uJywgb3B0aW9uLCBkYXRlKTsKCQkJfQoJCX0KCQlyZXR1cm4gJChbc3RhcnRUaW1lLmdldCgwKSwgZW5kVGltZS5nZXQoMCldKTsKCX07CgoJLyoKCSogS2VlcCB1cCB3aXRoIHRoZSB2ZXJzaW9uCgkqLwoJJC50aW1lcGlja2VyLnZlcnNpb24gPSAiMS4wLjQiOwoKfSkoalF1ZXJ5KTs=]]></data>
	</file>
	<file>
	  <filename>/js/TimePicker/language/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/TimePicker/language/fr_FR.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogRnJlbmNoIHRyYW5zbGF0aW9uIGZvciB0aGUgalF1ZXJ5IFRpbWVwaWNrZXIgQWRkb24gKi8KLyogV3JpdHRlbiBieSBUaG9tYXMgTMOpdMOpICovCihmdW5jdGlvbigkKSB7CgkkLnRpbWVwaWNrZXIucmVnaW9uYWxbJ2ZyJ10gPSB7CgkJdGltZU9ubHlUaXRsZTogJ0Nob2lzaXIgdW5lIGhldXJlJywKCQl0aW1lVGV4dDogJ0hldXJlJywKCQlob3VyVGV4dDogJ0hldXJlcycsCgkJbWludXRlVGV4dDogJ01pbnV0ZXMnLAoJCXNlY29uZFRleHQ6ICdTZWNvbmRlcycsCgkJbWlsbGlzZWNUZXh0OiAnTWlsbGlzZWNvbmRlcycsCgkJdGltZXpvbmVUZXh0OiAnRnVzZWF1IGhvcmFpcmUnLAoJCWN1cnJlbnRUZXh0OiAnTWFpbnRlbmFudCcsCgkJY2xvc2VUZXh0OiAnVGVybWluw6knLAoJCXRpbWVGb3JtYXQ6ICdoaDptbScsCgkJYW1OYW1lczogWydBTScsICdBJ10sCgkJcG1OYW1lczogWydQTScsICdQJ10sCgkJYW1wbTogZmFsc2UKCX07CgkkLnRpbWVwaWNrZXIuc2V0RGVmYXVsdHMoJC50aW1lcGlja2VyLnJlZ2lvbmFsWydmciddKTsKfSkoalF1ZXJ5KTs=]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/fr_FR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qCgonIFwyNjQgJmFjdXRlOwrDuyBcMzczICZ1Y2lyYzsKw6AgXDM0MCAmYWdyYXZlOwoKw6ogXDMxMiAmZWNpcmM7CsOoIFwzNTAgJmVncmF2ZTsgIArDqSBcMzUxICZlYWN1dGU7CsOJIFwzMTEgJkVhY3V0ZTsKKi8KCi8vIEVGQUdJU21zTGlnaHQKJGxhbmdbJ0VGQUdJU21zTGlnaHQnXSA9ICdFRkFHSVNtc0xpZ2h0JzsKCi8vIEVycm9ycwokbGFuZ1snVW5kZWZpbmVkIGFjY291bnQhJ10gPSAnQXR0ZW50aW9uLCB2b3VzIG4mYWN1dGU7YXZleiBwYXMgZW5jb3JlIGQmZWFjdXRlO2Zpbml0IGxlIGNvbXB0ZSBTTVMuJzsKJGxhbmdbJ1VuZGVmaW5lZCBvciBiYWQgYWNjb3VudCddID0gJ0NvbmZpZ3VyYXRpb24gZHUgY29tcHRlIFNNUyBub24gb3UgbWFsIGQmZWFjdXRlO2ZpbmlzISc7CiRsYW5nWydzb2FwOjIwMSddID0gJ0NvbXB0ZSBTTVMgb3UgdCZlYWN1dGU7bCZlYWN1dGU7cGhvbmUgZXhwJmVhY3V0ZTtkaXRldXIgaW52YWxpZGUhJzsKJGxhbmdbJ3NvYXA6MjEwJ10gPSAnRXJyZXVyIGRhbnMgbGVzIHBhcmFtJmVjaXJjO3RyZXMgZHUgY29tcHRlISc7CiRsYW5nWydzb2FwOjIwMiddID0gJ0xlIGxvZ2luIGRvaXQgYXZvaXIgNCAmYWdyYXZlOyAyMCBjYXJhY3QmZWNpcmM7cmVzIGFscGhhbnVtJmVhY3V0ZTtyaXF1ZXMgZXQgbGUgbW90IGRlIHBhc3NlIApleGFjdGVtZW50IDggY2FyYWN0JmVjaXJjO3JlcyBhbHBoYW51bSZlYWN1dGU7cmlxdWVzISc7CiRsYW5nWydzb2FwOjQwMSddID0gJ0xvZ2luIG91IG1vdCBkZSBwYXNzZSBpbnZhbGlkZSEnOwokbGFuZ1snc29hcDo0NTEnXSA9ICdWb3VzIG4mYWN1dGU7YXZleiBwbHVzIGFzc2V6IGRlIGNyJmVhY3V0ZTtkaXQhJzsKJGxhbmdbJ3NvYXA6NDYxJ10gPSAnTG9naW4gZXQvb3UgbW90IGRlIHBhc3NlIHV0aWxpc2F0ZXVyIGludmFsaWRlISc7CgovLyBNZXNzYWdlcwokbGFuZ1snU21zIHdhaXRpbmcgb24gdGhlIG5ldHdvcmsuJ10gPSAnU21zIGVuIGF0dGVudGUgc3VyIGxlIHImZWFjdXRlO3NlYXUnOwokbGFuZ1snVGhlIG1lc3NhZ2Ugd2FzIGRlbGl2ZXJlZC4nXSA9ICc8c3BhbiB0aXRsZT0iTGUgbWVzc2FnZSBhICZlYWN1dGU7dCZlYWN1dGU7IGQmZWFjdXRlO2xpdnImZWFjdXRlOy4iPgpEJmVhY3V0ZTtsaXZyJmVhY3V0ZTs8L3NwYW4+JzsKJGxhbmdbJ1RoZSBtZXNzYWdlIGhhcyBiZWVuIGNvbmZpcm1lZCBhcyB1bmRlbGl2ZXJlZCBidXQgbm8gZGV0YWlsZWQgaW5mb3JtYXRpb24gcmVsYXRlZCB0byB0aGUgZmFpbHVyZSBpcyBrbm93bi4nXSA9IAonPHNwYW4gdGl0bGU9IkxhIG1lc3NhZ2UgbiZhY3V0ZTthIHBhcyAmZWFjdXRlO3QmZWFjdXRlOyBkJmVhY3V0ZTtsaXZyJmVhY3V0ZTsgcG91ciB1bmUgcmFpc29uIGluY29ubnVlLiI+CkVycmV1ciBpbmNvbm51ZTwvc3Bhbj4nOwokbGFuZ1snVXNlZCB3aGVuIGEgbWVzc2FnZSBpcyB1bmRlbGl2ZXJhYmxlIGJlY2F1c2UgdGhlIHN1YnNjcmliZXIgaXMgdGVtcG9yYXJpbHkgYWJzZW50LCBlLmcuIHRoZWlyIHBob25lIAppcyBzd2l0Y2ggb2ZmLCB0aGV5IGNhbm5vdCBiZSBsb2NhdGVkIG9uIHRoZSBuZXR3b3JrLiddID0gJzxzcGFuIHRpdGxlPSJMZSBtZXNzYWdlIG4mYWN1dGU7ZXN0IHBhcyBkJmVhY3V0ZTtsaXZyYWJsZSAKY2FyIGxlIGRlc3RpbmF0YWlyZSBuJmFjdXRlO2VzdCBwYXMgam9pZ25hYmxlICh0JmVhY3V0ZTtsJmVhY3V0ZTtwaG9uZSAmZWFjdXRlO3RlaW50LCBob3JzIGNvdXZlcnR1cmUuLi4pIj4KRXJyZXVyIHRlbXBvcmFpcmUgbGkmZWFjdXRlO2UgYXUgZGVzdGluYXRhaXJlPC9zcGFuPic7CgokbGFuZ1snVXNlZCB0byBpbmRpY2F0ZSB0aGF0IHRoZSBtZXNzYWdlIGhhcyBiZWVuIGFjY2VwdGVkIGJ5IHRoZSBvcGVyYXRvci4nXSA9ICdMZSBtZXNzYWdlIGEgJmVhY3V0ZTt0JmVhY3V0ZTsgCmFjY2VwdCZlYWN1dGU7IHBhciBsJmFjdXRlO29wJmVhY3V0ZTtyYXRldXInOwokbGFuZ1snSW50ZXJtZWRpYXRlIHN0YXRlIG5vdGlmaWNhdGlvbiB0aGF0IHRoZSBtZXNzYWdlIGhhcyBub3QgeWV0IGJlZW4gZGVsaXZlcmVkIGR1ZSB0byBhIHBob25lIHJlbGF0ZWQgCnByb2JsZW0gYnV0IGlzIGJlaW5nIHJldHJpZWQuJ10gPSAnTGUgbWVzc2FnZSBuJmFjdXRlO2EgcGFzIGV0ZSBkJmVhY3V0ZTtsaXZyJmVhY3V0ZTsgZW4gcmFpc29uIGQmYWN1dGU7dW4gCnNvdWNpcyBzdXIgbGUgdCZlYWN1dGU7bCZlYWN1dGU7cGhvbmUgZHUgZGVzdGluYXRhaXJlLiBVbmUgbm91dmVsbGUgdGVudGF0aXZlIHNlcmEgZWZmZWN0dSZlYWN1dGU7ZS4nOwoKLy8gTWVzc2FnZXMKJGxhbmdbJ01lc3NhZ2VzJ10gPSAnTWVzc2FnZXMnOwkKJGxhbmdbJ1F1b3RhbGVmdCBJbmZvcm1hdGlvbnMnXSA9ICdJbmZvcm1hdGlvbnMnOwkKJGxhbmdbJ1NNUyBDcmVkaXQnXSA9ICdTb2xkZSBkZSB2b3RyZSBjciZlYWN1dGU7ZGl0IFNNUyc7CiRsYW5nWydXcml0ZSBhIG1lc3NhZ2UnXSA9ICdDb21wb3NlciB1biBtZXNzYWdlJzsJCiRsYW5nWycxIC0gQ29uZmlndXJlIHJlY2lwaWVudCddID0gJzEgLSBDb25maWd1cmVyIGxlKHMpIGRlc3RpbmF0YWlyZShzKSc7CiRsYW5nWydSZWNpcGllbnQnXSA9ICdEZXN0aW5hdGFpcmUnOwokbGFuZ1snU2VsZWN0IFJlY2lwaWVudHMnXSA9ICdEZXN0aW5hdGFpcmUocyknOwokbGFuZ1snMiAtIFdyaXRlIHRoZSBtZXNzYWdlJ10gPSAnMiAtIENvbXBvc2VyIGxlIG1lc3NhZ2UnOwokbGFuZ1snTWVzc2FnZSBvYmplY3QnXSA9ICdPYmpldCBkdSBtZXNzYWdlJzsKJGxhbmdbJ01lc3NhZ2UnXSA9ICdNZXNzYWdlJzsKJGxhbmdbJ1NlbmRlciddID0gJ0V4cCZlYWN1dGU7ZGl0ZXVyJzsKJGxhbmdbJ0NoYXJhY3RlcnMnXSA9ICdDYXJhY3QmZWFjdXRlO3Jlcyc7CiRsYW5nWydTTVMgbnVtYmVyJ10gPSAnTm9tYnJlIGRlIFNNUyc7CiRsYW5nWyczIC0gT3B0aW9ucyddID0gJzMgLSBPcHRpb25zJzsKJGxhbmdbJ1NlbmQgdHlwZSddID0gJ1R5cGUgZCZhY3V0ZTtlbnZvaWUnOwokbGFuZ1snTWVzc2FnZSBOb3cnXSA9ICdFbnZvaSBpbW0mZWFjdXRlO2RpYXQnOwkKJGxhbmdbJ01lc3NhZ2UgTGF0ZXInXSA9ICdFbnZvaSBkaWZmJmVhY3V0ZTtyJmVhY3V0ZTsnOwkKJGxhbmdbJ0RhdGUnXSA9ICdEYXRlJzsKJGxhbmdbJ0hvdXInXSA9ICdIZXVyZSc7CiRsYW5nWydTTVMgdHlwZSddID0gJ1R5cGUgZGUgU01TJzsKJGxhbmdbJ1NNUyBJZCddID0gJ0lkIFNNUyc7CiRsYW5nWydDb25kaXRpb24nXSA9ICdFdGF0JzsKJGxhbmdbJ1N0YXR1cyddID0gJ1N0YXR1dCc7CiRsYW5nWydNZXNzYWdlIHNlbmRpbmcnXSA9ICdMZSA8c3Ryb25nPm1lc3NhZ2U8L3N0cm9uZz4gYSAmZWFjdXRlO3QmZWFjdXRlOyBlbnZveSZlYWN1dGU7IGF1IHNlcnZldXIuJzsKJGxhbmdbJ05vIHBlcm1pc3Npb25zIHRvIGNyZWF0ZSBtZXNzYWdlISddID0gJ1ZvdXMgbiZhY3V0ZTthdmV6IHBhcyBsYSBwZXJtaXNzaW9uIGRlIGNyJmVhY3V0ZTtlciAKZXQgZCZhY3V0ZTtlbnZveWVyIHVuIG1lc3NhZ2UhJzsKCi8vIEhpc3RvcmljCiRsYW5nWydIaXN0b3JpYyddID0gJ0hpc3RvcmlxdWUnOwkKJGxhbmdbJ0RlbGV0ZSBoaXN0b3JpYyddID0gJ1N1cHByaW1lciBsZSBtZXNzYWdlJzsKCi8vIEdyb3VwcwokbGFuZ1snR3JvdXBzJ10gPSAnR3JvdXBlcyc7CQokbGFuZ1snQWRkIGdyb3VwJ10gPSAnQWpvdXRlciB1biBncm91cGUnOwokbGFuZ1snRWRpdCBncm91cCddID0gJ0VkaXRlciBsZSBncm91cGUnOwokbGFuZ1snRGVsZXRlIGdyb3VwJ10gPSAnU3VwcHJpbWVyIGxlIGdyb3VwZSc7CiRsYW5nWydQdWJsaWMnXSA9ICdQdWJsaWMnOwokbGFuZ1snUHJpdmF0ZSddID0gJ1ByaXYmZWFjdXRlOyc7CiRsYW5nWydHcm91cCBJRCddID0gJ0lkJzsKJGxhbmdbJ0dyb3VwIG5hbWUnXSA9ICdJbnRpdHVsJmVhY3V0ZTsgZHUgZ3JvdXBlJzsKJGxhbmdbJ0dyb3VwIHR5cGUnXSA9ICdUeXBlIGRlIGdyb3VwZSc7CiRsYW5nWydHcm91cCBkZXNjcmlwdGlvbiddID0gJ0Rlc2NyaXB0aW9uJzsKCi8vIFJlY2lwaWVudHMKJGxhbmdbJ1JlY2lwaWVudHMnXSA9ICdEZXN0aW5hdGFpcmVzJzsJCiRsYW5nWydBZGQgcmVjaXBpZW50J10gPSAnQWpvdXRlciB1biBkZXN0aW5hdGFpcmUnOwokbGFuZ1snRWRpdCByZWNpcGllbnQnXSA9ICdFZGl0ZXIgbGUgZGVzdGluYXRhaXJlJzsKJGxhbmdbJ0RlbGV0ZSByZWNpcGllbnQnXSA9ICdTdXBwcmltZXIgbGUgZGVzdGluYXRhaXJlJzsKJGxhbmdbJ1JlY2lwaWVudCBJRCddID0gJ0lkJzsKJGxhbmdbJ1JlY2lwaWVudCBsb2dpbiddID0gJ0xvZ2luJzsKJGxhbmdbJ1JlY2lwaWVudCBwYXNzd29yZCddID0gJ01vdCBkZSBwYXNzZSc7CiRsYW5nWydSZWNpcGllbnQgZmlyc3RuYW1lJ10gPSAnUHImZWFjdXRlO25vbSc7CiRsYW5nWydSZWNpcGllbnQgbmFtZSddID0gJ05vbSc7CiRsYW5nWydSZWNpcGllbnQgbW9iaWwnXSA9ICdOdW0mZWFjdXRlO3JvJzsKJGxhbmdbJ1JlY2lwaWVudCBlbWFpbCddID0gJ0FkcmVzc2UgZW1haWwnOwokbGFuZ1snUmVjaXBpZW50IEdyb3VwKHMpJ10gPSAnR3JvdXBlKHMpJzsKJGxhbmdbJ1JlY2lwaWVudCBjb2RlJ10gPSAnVm90cmUgY29kZSBkZSB2YWxpZGF0aW9uJzsKJGxhbmdbJ1JlY2lwaWVudCBpZGVudGlmaWVycyddID0gJ0luZGVudGlmaWFudHMnOwokbGFuZ1snUmVjaXBpZW50IGluZm9ybWF0aW9ucyddID0gJ0luZm9ybWF0aW9ucyc7CiRsYW5nWydSZWNpcGllbnQgaW5zY3JpcHRpb24nXSA9ICdJbnNjcmlwdGlvbic7CgokbGFuZ1snU3RlcCBvbiddID0gJyZFYWN1dGU7dGFwZSAlcyBzdXIgJzsKJGxhbmdbJ1JlY2lwaWVudCBtb2JpbCBhbHJlYWR5IGV4aXN0cyEnXSA9ICdDZSBudW0mZWFjdXRlO3JvIGRlIG1vYmlsZSBlc3QgZCZlYWN1dGU7aiZhZ3JhdmUgZW5yZWdpc3RyJmVhY3V0ZTshJzsKJGxhbmdbJ0ludmFsaWQgY29kZSddID0gJ0xlIGNvZGUgc2Fpc2l0IGVzdCBpbnZhbGlkZSEnOwokbGFuZ1snU29ycnksIHRoZXJlIGlzIGEgcHJvYmxlbSEnXSA9ICdEJmVhY3V0ZTtzb2wmZWFjdXRlOywgbm91cyBhdm9ucyByZW5jb250ciZlYWN1dGU7IHVuIHNvdWNpcy4gPGJyIC8+ClZvdHJlIGNvbXB0ZSBuJmFjdXRlO2EgcGFzIHB1ICZlY2lyYzt0cmUgYWN0aXYmZWFjdXRlOyEnOwokbGFuZ1snR29vZCwgeW91ciBhY2NvdW50IGlzIGFjdGl2ZS4nXSA9ICdNZXJjaSwgdm90cmUgY29tcHRlIGVzdCBtYWludGVuYW50IGFjdGlmLic7CiRsYW5nWydTdW1tYXJ5IGluZm9ybWF0aW9ucyddID0gJ1ImZWFjdXRlO3N1bSZlYWN1dGU7IGRlIHZvcyBpbmZvcm1hdGlvbnMnOwokbGFuZ1snQ29kZSBzZW5kaW5nJ10gPSAnVW4gPHN0cm9uZz5jb2RlIGRlIHZhbGlkYXRpb248L3N0cm9uZz4gYSAmZWFjdXRlO3QmZWFjdXRlOyBlbnZveSZlYWN1dGU7IHN1ciB2b3RyZSBtb2JpbGUuCjxiciAvPlZldWlsbGV6IHBhdGllbnRlciBxdWVscXVlcyBzZWNvbmRlcyBwb3VyIGxlIHJlY2V2b2lyIHB1aXMgc2Fpc2lzc2V6LWxlIGV0IGNsaXF1ZXogc3VyIDxzdHJvbmc+RW52b3llcjwvc3Ryb25nPi4nOwoKJGxhbmdbJ1JlY2lwaWVudCBDYXB0Y2hhJ10gPSAnQ2FwdGNoYSc7CiRsYW5nWydFcnJvciBSZWNpcGllbnQgQ2FwdGNoYSddID0gJ1ImZWFjdXRlO3BvbnNlIGF1IDxzdHJvbmc+Q2FwdGNoYTwvc3Ryb25nPiBpbnZhbGlkZSEnOwokbGFuZ1snY2FsY3VsQ2FwdGNoYV8xJ10gPSAnQ29tYmllbiBmb250IDxzcGFuPiVzPC9zcGFuPic7CiRsYW5nWydsZXR0ZXJzQ2FwdGNoYV8xJ10gPSAnRGFucyA8c3Bhbj4lczwvc3Bhbj4nOwokbGFuZ1snbGV0dGVyc0NhcHRjaGFfMiddID0gJ3F1ZWxsZSBsZXR0cmUgZGUgdHJvdXZlIGVudHJlIDxzcGFuPiVzPC9zcGFuPic7CiRsYW5nWydsZXR0ZXJzQ2FwdGNoYV8zJ10gPSAnZXQgPHNwYW4+JXM8L3NwYW4+JzsKJGxhbmdbJ2FscGhhTnVtQ2FwdGNoYV8xJ10gPSAnUXVlbCBlc3QgPHNwYW4+JXM8L3NwYW4+JzsKJGxhbmdbJ2FscGhhTnVtQ2FwdGNoYV8yJ10gPSAnY2FyYWN0JmVncmF2ZTtyZSBkYW5zIDxzcGFuPiVzPC9zcGFuPic7CiRsYW5nWydjYWxjdWxMZXR0ZXJzQ2FwdGNoYV8xJ10gPSAnQ29tYmllbiBmb250IDxzcGFuPiVzPC9zcGFuPic7CiRsYW5nWydtaW51cyddID0gJ21vaW5zJzsKJGxhbmdbJ2FkZGVkIHRvJ10gPSAnYWpvdXTDqSAmYWdyYXZlJzsKJGxhbmdbJ211bHRpcGxpZWQgYnknXSA9ICdtdWx0aXBsJmVhY3V0ZTsgcGFyJzsKJGxhbmdbJ3plcm8nXSA9ICd6JmVhY3V0ZTtybyc7CiRsYW5nWydvbmUnXSA9ICd1bic7CiRsYW5nWyd0d28nXSA9ICdkZXV4JzsKJGxhbmdbJ3RocmVlJ10gPSAndHJvaXMnOwokbGFuZ1snZm91ciddID0gJ3F1YXRyZSc7CiRsYW5nWydmaXZlJ10gPSAnY2lucSc7CiRsYW5nWydzaXgnXSA9ICdzaXgnOwokbGFuZ1snc2V2ZW4nXSA9ICdzZXB0JzsKJGxhbmdbJ2VpZ2h0J10gPSAnaHVpdCc7CiRsYW5nWyduaW5lJ10gPSAnbmV1Zic7CiRsYW5nWyd0ZW4nXSA9ICdkaXgnOwoKLy8gRGFzaGJvYXJkCiRsYW5nWydEYXNoYm9hcmQnXSA9ICdUYWJsZWF1IGRlIGJvcmQnOwoKLy8gVGVtcGxhdGVzCiRsYW5nWydUZW1wbGF0ZXMnXSA9ICdHYWJhcml0cyc7CiRsYW5nWydUZW1wbGF0ZXMgYWN0dWFscyddID0gJ0dhYmFyaXRzIGFjdHVlbHMnOwoKJGxhbmdbJ0FkZCB0ZW1wbGF0ZSddID0gJ0Fqb3V0ZXIgdW4gZ2FiYXJpdCc7CiRsYW5nWydFZGl0IHRlbXBsYXRlJ10gPSAnTW9kaWZpZXIgbGUgZ2FiYXJpdCA6IDxlbT4lczwvZW0+JzsKJGxhbmdbJ0RlbGV0ZSB0ZW1wbGF0ZSddID0gJ1N1cHByaW1lciBsZSBnYWJhcml0IDogPGVtPiVzPC9lbT4nOwokbGFuZ1snVGVtcGxhdGUgbmFtZSddID0gJ05vbSBkdSBnYWJhcml0JzsKJGxhbmdbJ1RlbXBsYXRlIGNvbnRlbnQnXSA9ICdDb250ZW51IGR1IGdhYmFyaXQnOwokbGFuZ1snVGVtcGxhdGUgaXMgc2F2ZWQuJ10gPSAnTGUgZ2FiYXJpdCBhIGJpZW4gJmVhY3V0ZTt0JmVhY3V0ZTsgc2F1dmVnYXJkJmVhY3V0ZTsuJzsKJGxhbmdbJ1RlbXBsYXRlIGlzIGRlbGV0ZWQuJ10gPSAnTGUgZ2FiYXJpdCA8c3Ryb25nPiVzPC9zdHJvbmc+IGEgYmllbiAmZWFjdXRlO3QmZWFjdXRlOyBzdXBwcmltJmVhY3V0ZTsuJzsKJGxhbmdbJ1RlbXBsYXRlIGV4aXN0ISddID0gJ0NlIG5vbSBkZSBnYWJhcml0IGV4aXN0ZSBkJmVhY3V0ZTtqJmVhY3V0ZTshJzsKCgovLyBBY2NvdW50CiRsYW5nWydBY2NvdW50J10gPSAnQ29tcHRlIFNNUyc7CQokbGFuZ1snVXNlciBhY2NvdW50J10gPSAnQ29uZmlndXJhdGlvbiB1dGlsaXNhdGV1cic7CiRsYW5nWydTTVMgYWNjb3VudCddID0gJ0NvbXB0ZSBTTVMnOwokbGFuZ1snVXNlciBsb2dpbiddID0gJ0lkZW50aWZpYW50JzsKJGxhbmdbJ1VzZXIgbG9naW4gaGVscCddID0gJ0xlIGxvZ2luIGRvaXQgYXZvaXIgNCAmYWdyYXZlOyAyMCBjYXJhY3QmZWNpcmM7cmVzIGFscGhhbnVtJmVhY3V0ZTtyaXF1ZXMuJzsKJGxhbmdbJ1VzZXIgcGFzc3dvcmQnXSA9ICdNb3QgZGUgcGFzc2UnOwokbGFuZ1snVXNlciBwYXNzd29yZCBoZWxwJ10gPSAnTGUgbW90IGRlIHBhc3NlIGRvaXQgYXZvaXIgZXhhY3RlbWVudCA4IGNhcmFjdCZlY2lyYztyZXMgYWxwaGFudW0mZWFjdXRlO3JpcXVlcy4nOwokbGFuZ1snVXNlciBub3RpZmljYXRpb24nXSA9ICdOb3RpZmljYXRpb24gcGFyJzsKJGxhbmdbJ1VzZXIgYWxlcnQgdGhyZXNob2xkJ10gPSAnQWxlcnRlIGFjdGl2ZSc7CiRsYW5nWydVc2VyIGFsZXJ0IGxpbWl0J10gPSAnTGltaXRlJzsKJGxhbmdbJ1VzZXIgbnVtYmVyJ10gPSAnTnVtJmVhY3V0ZTtybyBwb3VyIGxhIG5vdGlmaWNhdGlvbic7CiRsYW5nWydVc2VyIGVtYWlsJ10gPSAnRW1haWwnOwokbGFuZ1snbWFpbCddID0gJ0VtYWlsJzsKJGxhbmdbJ3NtcyddID0gJ1NNUyc7CiRsYW5nWydib3RoJ10gPSAnRW1haWwgZXQgU01TJzsKJGxhbmdbJytYWFhYWFhYWFhYWCddID0gJytYWFhYWFhYWFhYWCc7CiRsYW5nWydTZW5kZXIgYWNjb3VudCddID0gJ0NvbmZpZ3VyYXRpb24gZXhwZWRpdGV1cic7CiRsYW5nWydTZW5kZXIgZmlyc3RuYW1lJ10gPSAnUHImZWFjdXRlO25vbSc7CiRsYW5nWydTZW5kZXIgbmFtZSddID0gJ05vbSc7CiRsYW5nWydTZW5kZXIgbnVtYmVyJ10gPSAnTnVtJmVhY3V0ZTtybyBleHAmIzIzM2RpdGV1cic7CiRsYW5nWydTZW5kZXIgbnVtYmVyIGhlbHAnXSA9ICdFeHAmZWFjdXRlO2RpdGV1ciBudW0mZWFjdXRlO3JpcXVlIChvdSBhbHBoYW51bSZlYWN1dGU7cmlxdWUgc2kgCmlsIGEgJiMyMzN0JiMyMzMgZGVtYW5kJmVhY3V0ZTspLic7CiRsYW5nWydEYXRhIGhhdmUgbm90IGJlZW4gc2F2ZWQhJ10gPSAnTGVzIGRvbm4mIzIzM2VzIG4mYWN1dGU7b250IHBhcyAmIzIzM3QmIzIzMyBzYXV2ZWdhcmQmIzIzM2VzISc7CgovLyBQcmVmZXJlbmNlcwokbGFuZ1snUHJlZmVyZW5jZXMnXSA9ICdQciZlYWN1dGU7ZiZlYWN1dGU7cmVuY2VzJzsJCiRsYW5nWydDYXB0Y2hhJ10gPSAnQ2FwdGNoYSc7CiRsYW5nWydFRkFHSVNtc0xpZ2h0Q2FwdGNoYSddID0gJ0NlIG1vZHVsZSc7CiRsYW5nWydQcmVmZXJlbmNlIENhcHRjaGEnXSA9ICdNb2R1bGUgQ2FwdGNoYSAmYWdyYXZlOyB1dGlsaXNlcic7CiRsYW5nWydEYXRhdGFibGUnXSA9ICdEYXRhdGFibGUnOwokbGFuZ1snUHJlZmVyZW5jZSBEYXRhdGFibGUgUGFnaW5hdGlvbiddID0gJ1N0eWxlIGRlIGxhIHBhZ2luYXRpb24nOwokbGFuZ1snUHJlZmVyZW5jZSBEYXRhdGFibGUgUmVjb3JkcyddID0gJ0Nob2l4IGR1IG5vbWJyZSBkJmFjdXRlO2VucmVnaXN0cmVtZW50cyBwYXIgcGFnZSc7CiRsYW5nWydQcmVmZXJlbmNlIERhdGF0YWJsZSBTZWFyY2gnXSA9ICdSZWNoZXJjaGUgZ2xvYmFsZSc7CiRsYW5nWydQcmVmZXJlbmNlIERhdGF0YWJsZSBDb2xvbm5lcyBGaWx0ZXJzJ10gPSAnRmlsdHJhZ2Ugc3VyIGxlcyBjb2xvbm5lcyc7CiRsYW5nWydQcmVmZXJlbmNlIERhdGF0YWJsZSBDb3B5IFNhdmUnXSA9ICdDb3BpZXIgZXQgZW5yZWdpc3RyZXIgbGVzIGRvbm4mZWFjdXRlO2VzJzsKJGxhbmdbJ0VuYWJsZSByZWNvcmRzJ10gPSAnQWZmaWNoZXInOwokbGFuZ1snRGlzYWJsZSByZWNvcmRzJ10gPSAnTmUgcGFzIGFmZmljaGVyJzsKJGxhbmdbJ0VuYWJsZSBzZWFyY2gnXSA9ICdBZmZpY2hlcic7CiRsYW5nWydEaXNhYmxlIHNlYXJjaCddID0gJ05lIHBhcyBhZmZpY2hlcic7CiRsYW5nWydFbmFibGUgZmlsdGVycyddID0gJ0FmZmljaGVyJzsKJGxhbmdbJ0Rpc2FibGUgZmlsdGVycyddID0gJ05lIHBhcyBhZmZpY2hlcic7CiRsYW5nWydFbmFibGUgY29weSBzYXZlJ10gPSAnQWZmaWNoZXInOwokbGFuZ1snRGlzYWJsZSBjb3B5IHNhdmUnXSA9ICdOZSBwYXMgYWZmaWNoZXInOwokbGFuZ1snUGFnaW5hdGlvbiBEZWZhdWx0J10gPSAnUGFyIGTDqWZhdWx0JzsKJGxhbmdbJ1BhZ2luYXRpb24gRnVsbCBOdW1iZXJzJ10gPSAnTnVtw6lyb3MgY29tcGxldHMnOwoKCi8vIEdlbmVyYWwKJGxhbmdbJ0J1dHRvbiBTZW5kJ10gPSAnRW52b3llcic7CiRsYW5nWydCdXR0b24gQXBwbHknXSA9ICdBcHBsaXF1ZXInOwokbGFuZ1snQnV0dG9uIERlbGV0ZSddID0gJ1N1cHByaW1lcic7CiRsYW5nWydCdXR0b24gQ2FuY2VsJ10gPSAnQW5udWxlcic7CiRsYW5nWydCdXR0b24gUmVzZXQnXSA9ICdSJmVhY3V0ZTtpbml0aWFsaXNlcic7CgokbGFuZ1snRmllbGQgaXMgcmVxdWlyZWQhJ10gPSAnTGUgY2hhbXAgPHN0cm9uZz4lczwvc3Ryb25nPiBlc3QgcmVxdWlzISc7CiRsYW5nWydGaWVsZCBpcyB3cm9uZyEnXSA9ICdMZSBjaGFtcCA8c3Ryb25nPiVzPC9zdHJvbmc+IGVzdCBtYWwgcmVtcGxpISc7CiRsYW5nWydZb3UgbXVzdCBzZWxlY3QhJ10gPSAnVm91cyBkZXZleiBzJmVhY3V0ZTtsZWN0aW9ubmVyIHVuIGl0ZW0gZGFucyBsYSBsaXN0ZSA8c3Ryb25nPiVzPC9zdHJvbmc+ISc7CiRsYW5nWydWYWx1ZShzKSBpcyBzYXZlZC4nXSA9ICdMZXMgZG9ubiZlYWN1dGU7ZXMgPHN0cm9uZz4lczwvc3Ryb25nPiBvbnQgYmllbiAmZWFjdXRlO3QmZWFjdXRlOyBlbnJlZ2lzdHImZWFjdXRlO2VzLic7CiRsYW5nWydSZWNvcmQgaXMgZGVsZXRlZC4nXSA9ICdFbnJlZ2lzdHJlbWVudCBzdXBwcmltJmVhY3V0ZTsuJzsKJGxhbmdbJ0FyZSB5b3Ugc3VyPyddID0gJ1ZvdWxlei12b3VzIHZyYWltZW50IHN1cHByaW1lciBjZXQgJmVhY3V0ZTtsJmVhY3V0ZTttZW50Pyc7CgokbGFuZ1snTm8nXSA9ICdOb24nOwokbGFuZ1snWWVzJ10gPSAnT3VpJzsKJGxhbmdbJ1NlYXJjaCddID0gJ1JlY2hlcmNoZXInOwokbGFuZ1snRGVsZXRlIGZpbHRlcihzKSddID0gJ0VubGV2ZXIgbGUocykgZmlsdHJlKHMpJzsKJGxhbmdbJ0ZpbHRlciddID0gJ0ZpbHRyZXInOwokbGFuZ1snUmVmcmVzaCddID0gJ1JhZnJhaWNoaXInOwokbGFuZ1snUHJpbnQnXSA9ICdJbXByaW1lcic7CiRsYW5nWydDb3B5J10gPSAnQ29waWVyJzsKJGxhbmdbJ1NhdmUgYXMnXSA9ICdFbnJlZ2lzdHJlci1zb3VzJzsKJGxhbmdbJ1Nob3cgLyBIaWRlJ10gPSAnQWZmaWNoZXIgLyBNYXNxdWVyJzsKJGxhbmdbJ0FsbCddID0gJ1RvdXQnOwokbGFuZ1snTm9uZSddID0gJ0F1Y3VuJzsKJGxhbmdbJ0xvYWRpbmcgZGF0YSBmcm9tIHNlcnZlciddID0gJ0NoYXJnZW1lbnQgZGVzIGRvbm4mZWFjdXRlO2VzIGR1IHNlcnZldXInOwokbGFuZ1snQ2xvc2UnXSA9ICdGZXJtZXInOwokbGFuZ1snQ29uZmlybSBkZWxldGUnXSA9ICdDb25maXJtZXIgbGEgc3VwcHJlc3Npb24nOwokbGFuZ1snQWN0aXZlJ10gPSAnQWN0aWYnOwokbGFuZ1snRGVmYXVsdCddID0gJ0QmZWFjdXRlO2ZhdXQnOwokbGFuZ1snVHJ1ZSddID0gJ1ZyYWknOwokbGFuZ1snRmFsc2UnXSA9ICdGYXV4JzsKJGxhbmdbJ0RlZmluZSB0byB0cnVlJ10gPSAnRCZlYWN1dGU7ZmluaXIgJmFncmF2ZTsgdnJhaSc7CiRsYW5nWydEZWZpbmUgdG8gZmFsc2UnXSA9ICdEJmVhY3V0ZTtmaW5pciAmYWdyYXZlOyBmYXV4JzsKJGxhbmdbJ0RlbGV0ZSddID0gJ1N1cHByaW1lcic7CiRsYW5nWydFZGl0J10gPSAnTW9kaWZpZXInOwoKLy8gRXZlbnRzCgovLyBFcnJvcnMKJGxhbmdbJ0Vycm9yJ10gPSAnRXJyZXVyJzsKJGxhbmdbJ1RhYmxlIG5vdCBkZWZpbmUhJ10gPSAnTGEgdGFibGUgbiZhY3V0ZTthIHBhcyAmZWFjdXRlO3QmZWFjdXRlOyBkJmVhY3V0ZTtmaW5pZSEnOwokbGFuZ1snRXJyb3IgOiBjbGFzcyBub3QgZm91bmQuJ10gPSAnRXJyZXVyIDogY2xhc3MgPHN0cm9uZz4lczwvc3Ryb25nPiBub24gdHJvdXYmZWFjdXRlOyEnOwokbGFuZ1snRXJyb3IgOiBjYWxsIHRvIHVuZGVmaW5lZCBtZXRob2QuJ10gPSAnRXJyZXVyIDogbSZlYWN1dGU7dGhvZGUgPHN0cm9uZz4lczwvc3Ryb25nPiBub24gdHJvdXYmZWFjdXRlO2UhJzsKCi8vIE1vZHVsZQokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0xlIG1vZHVsZSBhICZlYWN1dGU7dCZlYWN1dGU7IGQmZWFjdXRlO3NpbnN0YWxsJmVhY3V0ZTsgYXZlYyBzdWNjJmVncmF2ZTtzLic7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ01vZHVsZSBpbnN0YWxsJmVhY3V0ZTsgZW4gdmVyc2lvbiAlcy4nOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bGUgZCZlYWN1dGU7c2luc3RhbGwmZWFjdXRlOy4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnVmVyc2lvbiBkdSBtb2R1bGUgaW5zdGFsbCZlYWN1dGU7IDogJXMuJzsKJGxhbmdbJ2hlbHAnXSA9ICcKPGgzPlF1ZSBmYWl0IGNlIG1vZHVsZSA/PC9oMz4KPHA+Q2UgbW9kdWxlIHBlcm1ldCBkJmFjdXRlO2Vudm95w6kgZGVzIFNNUyBkaXJlY3RlbWVudCBkZXB1aXMgbGEgcGFydGllIEFkbWluaXN0cmF0aW9uIGRlIENNU01TLiBJbCB2b3VzIGZhdWRyYSBhdSBwcsOpYWxhYmxlCmF2b2lyIHVuIGNvbXB0ZSBTTVMgYWN0aWYgY2hleiBPVkguPC9wPgo8aDM+Q29tbWVudCBsJmFjdXRlO3V0aWxpc2VyPzwvaDM+CjxwPkxhIGZhw6dvbiBsYSBwbHVzIGZhY2lsZSBkZSBsJmFjdXRlO3V0aWxpc2VyIGVzdCBhdmVjIGxhIGJhbGlzZSB3cmFwcGVyIHtFRkFHSVNtc0xpZ2h0fSAoZW5nbG9iZSBsZSBtb2R1bGUgZGFucyB1bmUgc2ltcGxlIApiYWxpc2UgcG91ciBzaW1wbGlmaWVyIGxhIHN5bnRheGUpLiBDZWxhIGlucyZlZ3JhdmU7cmVyYSB2b3RyZSBtb2R1bGUgZGFucyB2b3RyZSBnYWJhcml0IG91IHZvdHJlIHBhZ2UgCiZhZ3JhdmU7IGwmYWN1dGU7ZW5kcm9pdCBkJmVhY3V0ZTtzaXImZWFjdXRlOywgZXQgeSBhZmZpY2hlcmEgbGUgZm9ybXVsYWlyZSBkJmFjdXRlO2luc2NyaXB0aW9uLiBFeGVtcGxlIGRlIHN5bnRheGUgOiAKe0VGQUdJU21zTGlnaHQgdGVtcGxhdGU9JmFjdXRlO3RlbXBsYXRlX25hbWUmYWN1dGU7fS48L3A+JzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJy4uLic7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0Vudm9pZSBkZSBTTVMnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdNb2R1bGUgaW5zdGFsbCZlYWN1dGU7IGNvcnJlY3RlbWVudC4nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ01vZHVsZSBkJmVhY3V0ZTtzaW5zdGFsbCZlYWN1dGUgY29ycmVjdGVtZW50Lic7CgokbGFuZ1snaGVscF90ZW1wbGF0ZSddID0gJ1Nww6ljaWZpZSB1biBnYWJhcml0IGRlIGxhIGxpc3RlIGRlcyBnYWJhcml0cyBxdWkgcGV1dCAmZWNpcmM7dHJlIHV0aWxpcyZlYWN1dGU7IApwb3VyIGwmYWN1dGU7YWZmaWNoYWdlIGR1IGZvcm11bGFpcmUgZCZhY3V0ZTtpbnNjcmlwdGlvbi4gU2kgYXVjdW5lIHZhbGV1ciBuJmFjdXRlO2VzdCBkJmVhY3V0ZTtmaW5pZSwgbGUgZ2FiYXJpdCAKbWFycXUmZWFjdXRlOyAmbGFxdW87cGFyIGQmZWFjdXRlO2ZhdXQmcmFxdW87IHNlcmEgdXRpbGlzJmVhY3V0ZTsuJzsK]]></data>
	</file>
	<file>
	  <filename>/lang/ext/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lang/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lang/us_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qCgonIFwyNjQgJmFjdXRlOwrDuyBcMzczICZ1Y2lyYzsKw6AgXDM0MCAmYWdyYXZlOwoKw6ogXDMxMiAmZWNpcmM7CsOoIFwzNTAgJmVncmF2ZTsgIArDqSBcMzUxICZlYWN1dGU7CsOJIFwzMTEgJkVhY3V0ZTsKKi8KCi8vIEVGQUdJU21zTGlnaHQKJGxhbmdbJ0VGQUdJU21zTGlnaHQnXSA9ICdFRkFHSVNtc0xpZ2h0JzsKCi8vIEVycm9ycwokbGFuZ1snVW5kZWZpbmVkIGFjY291bnQhJ10gPSAnQXR0ZW50aW9uLCB2b3VzIG4mYWN1dGU7YXZleiBwYXMgZW5jb3JlIGQmZWFjdXRlO2Zpbml0IGxlIGNvbXB0ZSBTTVMuJzsKJGxhbmdbJ1VuZGVmaW5lZCBvciBiYWQgYWNjb3VudCddID0gJ0NvbmZpZ3VyYXRpb24gZHUgY29tcHRlIFNNUyBub24gb3UgbWFsIGQmZWFjdXRlO2ZpbmlzISc7CiRsYW5nWydzb2FwOjIwMSddID0gJ0NvbXB0ZSBTTVMgb3UgdCZlYWN1dGU7bCZlYWN1dGU7cGhvbmUgZXhwJmVhY3V0ZTtkaXRldXIgaW52YWxpZGUhJzsKJGxhbmdbJ3NvYXA6MjEwJ10gPSAnRXJyZXVyIGRhbnMgbGVzIHBhcmFtJmVjaXJjO3RyZXMgZHUgY29tcHRlISc7CiRsYW5nWydzb2FwOjIwMiddID0gJ0xlIGxvZ2luIGRvaXQgYXZvaXIgNCAmYWdyYXZlOyAyMCBjYXJhY3QmZWNpcmM7cmVzIGFscGhhbnVtJmVhY3V0ZTtyaXF1ZXMgZXQgbGUgbW90IGRlIHBhc3NlIApleGFjdGVtZW50IDggY2FyYWN0JmVjaXJjO3JlcyBhbHBoYW51bSZlYWN1dGU7cmlxdWVzISc7CiRsYW5nWydzb2FwOjQwMSddID0gJ0xvZ2luIG91IG1vdCBkZSBwYXNzZSBpbnZhbGlkZSEnOwokbGFuZ1snc29hcDo0NTEnXSA9ICdWb3VzIG4mYWN1dGU7YXZleiBwbHVzIGFzc2V6IGRlIGNyJmVhY3V0ZTtkaXQhJzsKJGxhbmdbJ3NvYXA6NDYxJ10gPSAnTG9naW4gZXQvb3UgbW90IGRlIHBhc3NlIHV0aWxpc2F0ZXVyIGludmFsaWRlISc7CgovLyBNZXNzYWdlcwokbGFuZ1snU21zIHdhaXRpbmcgb24gdGhlIG5ldHdvcmsuJ10gPSAnU21zIGVuIGF0dGVudGUgc3VyIGxlIHImZWFjdXRlO3NlYXUnOwokbGFuZ1snVGhlIG1lc3NhZ2Ugd2FzIGRlbGl2ZXJlZC4nXSA9ICc8c3BhbiB0aXRsZT0iTGUgbWVzc2FnZSBhICZlYWN1dGU7dCZlYWN1dGU7IGQmZWFjdXRlO2xpdnImZWFjdXRlOy4iPgpEJmVhY3V0ZTtsaXZyJmVhY3V0ZTs8L3NwYW4+JzsKJGxhbmdbJ1RoZSBtZXNzYWdlIGhhcyBiZWVuIGNvbmZpcm1lZCBhcyB1bmRlbGl2ZXJlZCBidXQgbm8gZGV0YWlsZWQgaW5mb3JtYXRpb24gcmVsYXRlZCB0byB0aGUgZmFpbHVyZSBpcyBrbm93bi4nXSA9IAonPHNwYW4gdGl0bGU9IkxhIG1lc3NhZ2UgbiZhY3V0ZTthIHBhcyAmZWFjdXRlO3QmZWFjdXRlOyBkJmVhY3V0ZTtsaXZyJmVhY3V0ZTsgcG91ciB1bmUgcmFpc29uIGluY29ubnVlLiI+CkVycmV1ciBpbmNvbm51ZTwvc3Bhbj4nOwokbGFuZ1snVXNlZCB3aGVuIGEgbWVzc2FnZSBpcyB1bmRlbGl2ZXJhYmxlIGJlY2F1c2UgdGhlIHN1YnNjcmliZXIgaXMgdGVtcG9yYXJpbHkgYWJzZW50LCBlLmcuIHRoZWlyIHBob25lIAppcyBzd2l0Y2ggb2ZmLCB0aGV5IGNhbm5vdCBiZSBsb2NhdGVkIG9uIHRoZSBuZXR3b3JrLiddID0gJzxzcGFuIHRpdGxlPSJMZSBtZXNzYWdlIG4mYWN1dGU7ZXN0IHBhcyBkJmVhY3V0ZTtsaXZyYWJsZSAKY2FyIGxlIGRlc3RpbmF0YWlyZSBuJmFjdXRlO2VzdCBwYXMgam9pZ25hYmxlICh0JmVhY3V0ZTtsJmVhY3V0ZTtwaG9uZSAmZWFjdXRlO3RlaW50LCBob3JzIGNvdXZlcnR1cmUuLi4pIj4KRXJyZXVyIHRlbXBvcmFpcmUgbGkmZWFjdXRlO2UgYXUgZGVzdGluYXRhaXJlPC9zcGFuPic7CgokbGFuZ1snVXNlZCB0byBpbmRpY2F0ZSB0aGF0IHRoZSBtZXNzYWdlIGhhcyBiZWVuIGFjY2VwdGVkIGJ5IHRoZSBvcGVyYXRvci4nXSA9ICdMZSBtZXNzYWdlIGEgJmVhY3V0ZTt0JmVhY3V0ZTsgCmFjY2VwdCZlYWN1dGU7IHBhciBsJmFjdXRlO29wJmVhY3V0ZTtyYXRldXInOwokbGFuZ1snSW50ZXJtZWRpYXRlIHN0YXRlIG5vdGlmaWNhdGlvbiB0aGF0IHRoZSBtZXNzYWdlIGhhcyBub3QgeWV0IGJlZW4gZGVsaXZlcmVkIGR1ZSB0byBhIHBob25lIHJlbGF0ZWQgCnByb2JsZW0gYnV0IGlzIGJlaW5nIHJldHJpZWQuJ10gPSAnTGUgbWVzc2FnZSBuJmFjdXRlO2EgcGFzIGV0ZSBkJmVhY3V0ZTtsaXZyJmVhY3V0ZTsgZW4gcmFpc29uIGQmYWN1dGU7dW4gCnNvdWNpcyBzdXIgbGUgdCZlYWN1dGU7bCZlYWN1dGU7cGhvbmUgZHUgZGVzdGluYXRhaXJlLiBVbmUgbm91dmVsbGUgdGVudGF0aXZlIHNlcmEgZWZmZWN0dSZlYWN1dGU7ZS4nOwoKLy8gTWVzc2FnZXMKJGxhbmdbJ01lc3NhZ2VzJ10gPSAnTWVzc2FnZXMnOwkKJGxhbmdbJ1F1b3RhbGVmdCBJbmZvcm1hdGlvbnMnXSA9ICdJbmZvcm1hdGlvbnMnOwkKJGxhbmdbJ1NNUyBDcmVkaXQnXSA9ICdTb2xkZSBkZSB2b3RyZSBjciZlYWN1dGU7ZGl0IFNNUyc7CiRsYW5nWydXcml0ZSBhIG1lc3NhZ2UnXSA9ICdDb21wb3NlciB1biBtZXNzYWdlJzsJCiRsYW5nWycxIC0gQ29uZmlndXJlIHJlY2lwaWVudCddID0gJzEgLSBDb25maWd1cmVyIGxlKHMpIGRlc3RpbmF0YWlyZShzKSc7CiRsYW5nWydSZWNpcGllbnQnXSA9ICdEZXN0aW5hdGFpcmUnOwokbGFuZ1snU2VsZWN0IFJlY2lwaWVudHMnXSA9ICdEZXN0aW5hdGFpcmUocyknOwokbGFuZ1snMiAtIFdyaXRlIHRoZSBtZXNzYWdlJ10gPSAnMiAtIENvbXBvc2VyIGxlIG1lc3NhZ2UnOwokbGFuZ1snTWVzc2FnZSBvYmplY3QnXSA9ICdPYmpldCBkdSBtZXNzYWdlJzsKJGxhbmdbJ01lc3NhZ2UnXSA9ICdNZXNzYWdlJzsKJGxhbmdbJ1NlbmRlciddID0gJ0V4cCZlYWN1dGU7ZGl0ZXVyJzsKJGxhbmdbJ0NoYXJhY3RlcnMnXSA9ICdDYXJhY3QmZWFjdXRlO3Jlcyc7CiRsYW5nWydTTVMgbnVtYmVyJ10gPSAnTm9tYnJlIGRlIFNNUyc7CiRsYW5nWyczIC0gT3B0aW9ucyddID0gJzMgLSBPcHRpb25zJzsKJGxhbmdbJ1NlbmQgdHlwZSddID0gJ1R5cGUgZCZhY3V0ZTtlbnZvaWUnOwokbGFuZ1snTWVzc2FnZSBOb3cnXSA9ICdFbnZvaSBpbW0mZWFjdXRlO2RpYXQnOwkKJGxhbmdbJ01lc3NhZ2UgTGF0ZXInXSA9ICdFbnZvaSBkaWZmJmVhY3V0ZTtyJmVhY3V0ZTsnOwkKJGxhbmdbJ0RhdGUnXSA9ICdEYXRlJzsKJGxhbmdbJ0hvdXInXSA9ICdIZXVyZSc7CiRsYW5nWydTTVMgdHlwZSddID0gJ1R5cGUgZGUgU01TJzsKJGxhbmdbJ1NNUyBJZCddID0gJ0lkIFNNUyc7CiRsYW5nWydDb25kaXRpb24nXSA9ICdFdGF0JzsKJGxhbmdbJ1N0YXR1cyddID0gJ1N0YXR1dCc7CiRsYW5nWydNZXNzYWdlIHNlbmRpbmcnXSA9ICdMZSA8c3Ryb25nPm1lc3NhZ2U8L3N0cm9uZz4gYSAmZWFjdXRlO3QmZWFjdXRlOyBlbnZveSZlYWN1dGU7IGF1IHNlcnZldXIuJzsKJGxhbmdbJ05vIHBlcm1pc3Npb25zIHRvIGNyZWF0ZSBtZXNzYWdlISddID0gJ1ZvdXMgbiZhY3V0ZTthdmV6IHBhcyBsYSBwZXJtaXNzaW9uIGRlIGNyJmVhY3V0ZTtlciAKZXQgZCZhY3V0ZTtlbnZveWVyIHVuIG1lc3NhZ2UhJzsKCi8vIEhpc3RvcmljCiRsYW5nWydIaXN0b3JpYyddID0gJ0hpc3RvcmlxdWUnOwkKJGxhbmdbJ0RlbGV0ZSBoaXN0b3JpYyddID0gJ1N1cHByaW1lciBsZSBtZXNzYWdlJzsKCi8vIEdyb3VwcwokbGFuZ1snR3JvdXBzJ10gPSAnR3JvdXBlcyc7CQokbGFuZ1snQWRkIGdyb3VwJ10gPSAnQWpvdXRlciB1biBncm91cGUnOwokbGFuZ1snRWRpdCBncm91cCddID0gJ0VkaXRlciBsZSBncm91cGUnOwokbGFuZ1snRGVsZXRlIGdyb3VwJ10gPSAnU3VwcHJpbWVyIGxlIGdyb3VwZSc7CiRsYW5nWydQdWJsaWMnXSA9ICdQdWJsaWMnOwokbGFuZ1snUHJpdmF0ZSddID0gJ1ByaXYmZWFjdXRlOyc7CiRsYW5nWydHcm91cCBJRCddID0gJ0lkJzsKJGxhbmdbJ0dyb3VwIG5hbWUnXSA9ICdJbnRpdHVsJmVhY3V0ZTsgZHUgZ3JvdXBlJzsKJGxhbmdbJ0dyb3VwIHR5cGUnXSA9ICdUeXBlIGRlIGdyb3VwZSc7CiRsYW5nWydHcm91cCBkZXNjcmlwdGlvbiddID0gJ0Rlc2NyaXB0aW9uJzsKCi8vIFJlY2lwaWVudHMKJGxhbmdbJ1JlY2lwaWVudHMnXSA9ICdEZXN0aW5hdGFpcmVzJzsJCiRsYW5nWydBZGQgcmVjaXBpZW50J10gPSAnQWpvdXRlciB1biBkZXN0aW5hdGFpcmUnOwokbGFuZ1snRWRpdCByZWNpcGllbnQnXSA9ICdFZGl0ZXIgbGUgZGVzdGluYXRhaXJlJzsKJGxhbmdbJ0RlbGV0ZSByZWNpcGllbnQnXSA9ICdTdXBwcmltZXIgbGUgZGVzdGluYXRhaXJlJzsKJGxhbmdbJ1JlY2lwaWVudCBJRCddID0gJ0lkJzsKJGxhbmdbJ1JlY2lwaWVudCBsb2dpbiddID0gJ0xvZ2luJzsKJGxhbmdbJ1JlY2lwaWVudCBwYXNzd29yZCddID0gJ01vdCBkZSBwYXNzZSc7CiRsYW5nWydSZWNpcGllbnQgZmlyc3RuYW1lJ10gPSAnUHImZWFjdXRlO25vbSc7CiRsYW5nWydSZWNpcGllbnQgbmFtZSddID0gJ05vbSc7CiRsYW5nWydSZWNpcGllbnQgbW9iaWwnXSA9ICdOdW0mZWFjdXRlO3JvJzsKJGxhbmdbJ1JlY2lwaWVudCBlbWFpbCddID0gJ0FkcmVzc2UgZW1haWwnOwokbGFuZ1snUmVjaXBpZW50IEdyb3VwKHMpJ10gPSAnR3JvdXBlKHMpJzsKJGxhbmdbJ1JlY2lwaWVudCBjb2RlJ10gPSAnVm90cmUgY29kZSBkZSB2YWxpZGF0aW9uJzsKJGxhbmdbJ1JlY2lwaWVudCBpZGVudGlmaWVycyddID0gJ0luZGVudGlmaWFudHMnOwokbGFuZ1snUmVjaXBpZW50IGluZm9ybWF0aW9ucyddID0gJ0luZm9ybWF0aW9ucyc7CiRsYW5nWydSZWNpcGllbnQgaW5zY3JpcHRpb24nXSA9ICdJbnNjcmlwdGlvbic7CgokbGFuZ1snU3RlcCBvbiddID0gJyZFYWN1dGU7dGFwZSAlcyBzdXIgJzsKJGxhbmdbJ1JlY2lwaWVudCBtb2JpbCBhbHJlYWR5IGV4aXN0cyEnXSA9ICdDZSBudW0mZWFjdXRlO3JvIGRlIG1vYmlsZSBlc3QgZCZlYWN1dGU7aiZhZ3JhdmUgZW5yZWdpc3RyJmVhY3V0ZTshJzsKJGxhbmdbJ0ludmFsaWQgY29kZSddID0gJ0xlIGNvZGUgc2Fpc2l0IGVzdCBpbnZhbGlkZSEnOwokbGFuZ1snU29ycnksIHRoZXJlIGlzIGEgcHJvYmxlbSEnXSA9ICdEJmVhY3V0ZTtzb2wmZWFjdXRlOywgbm91cyBhdm9ucyByZW5jb250ciZlYWN1dGU7IHVuIHNvdWNpcy4gPGJyIC8+ClZvdHJlIGNvbXB0ZSBuJmFjdXRlO2EgcGFzIHB1ICZlY2lyYzt0cmUgYWN0aXYmZWFjdXRlOyEnOwokbGFuZ1snR29vZCwgeW91ciBhY2NvdW50IGlzIGFjdGl2ZS4nXSA9ICdNZXJjaSwgdm90cmUgY29tcHRlIGVzdCBtYWludGVuYW50IGFjdGlmLic7CiRsYW5nWydTdW1tYXJ5IGluZm9ybWF0aW9ucyddID0gJ1ImZWFjdXRlO3N1bSZlYWN1dGU7IGRlIHZvcyBpbmZvcm1hdGlvbnMnOwokbGFuZ1snQ29kZSBzZW5kaW5nJ10gPSAnVW4gPHN0cm9uZz5jb2RlIGRlIHZhbGlkYXRpb248L3N0cm9uZz4gYSAmZWFjdXRlO3QmZWFjdXRlOyBlbnZveSZlYWN1dGU7IHN1ciB2b3RyZSBtb2JpbGUuCjxiciAvPlZldWlsbGV6IHBhdGllbnRlciBxdWVscXVlcyBzZWNvbmRlcyBwb3VyIGxlIHJlY2V2b2lyIHB1aXMgc2Fpc2lzc2V6LWxlIGV0IGNsaXF1ZXogc3VyIDxzdHJvbmc+RW52b3llcjwvc3Ryb25nPi4nOwoKJGxhbmdbJ1JlY2lwaWVudCBDYXB0Y2hhJ10gPSAnQ2FwdGNoYSc7CiRsYW5nWydFcnJvciBSZWNpcGllbnQgQ2FwdGNoYSddID0gJ1ImZWFjdXRlO3BvbnNlIGF1IDxzdHJvbmc+Q2FwdGNoYTwvc3Ryb25nPiBpbnZhbGlkZSEnOwokbGFuZ1snY2FsY3VsQ2FwdGNoYV8xJ10gPSAnQ29tYmllbiBmb250IDxzcGFuPiVzPC9zcGFuPic7CiRsYW5nWydsZXR0ZXJzQ2FwdGNoYV8xJ10gPSAnRGFucyA8c3Bhbj4lczwvc3Bhbj4nOwokbGFuZ1snbGV0dGVyc0NhcHRjaGFfMiddID0gJ3F1ZWxsZSBsZXR0cmUgZGUgdHJvdXZlIGVudHJlIDxzcGFuPiVzPC9zcGFuPic7CiRsYW5nWydsZXR0ZXJzQ2FwdGNoYV8zJ10gPSAnZXQgPHNwYW4+JXM8L3NwYW4+JzsKJGxhbmdbJ2FscGhhTnVtQ2FwdGNoYV8xJ10gPSAnUXVlbCBlc3QgPHNwYW4+JXM8L3NwYW4+JzsKJGxhbmdbJ2FscGhhTnVtQ2FwdGNoYV8yJ10gPSAnY2FyYWN0JmVncmF2ZTtyZSBkYW5zIDxzcGFuPiVzPC9zcGFuPic7CiRsYW5nWydjYWxjdWxMZXR0ZXJzQ2FwdGNoYV8xJ10gPSAnQ29tYmllbiBmb250IDxzcGFuPiVzPC9zcGFuPic7CiRsYW5nWydtaW51cyddID0gJ21vaW5zJzsKJGxhbmdbJ2FkZGVkIHRvJ10gPSAnYWpvdXTDqSAmYWdyYXZlJzsKJGxhbmdbJ211bHRpcGxpZWQgYnknXSA9ICdtdWx0aXBsJmVhY3V0ZTsgcGFyJzsKJGxhbmdbJ3plcm8nXSA9ICd6JmVhY3V0ZTtybyc7CiRsYW5nWydvbmUnXSA9ICd1bic7CiRsYW5nWyd0d28nXSA9ICdkZXV4JzsKJGxhbmdbJ3RocmVlJ10gPSAndHJvaXMnOwokbGFuZ1snZm91ciddID0gJ3F1YXRyZSc7CiRsYW5nWydmaXZlJ10gPSAnY2lucSc7CiRsYW5nWydzaXgnXSA9ICdzaXgnOwokbGFuZ1snc2V2ZW4nXSA9ICdzZXB0JzsKJGxhbmdbJ2VpZ2h0J10gPSAnaHVpdCc7CiRsYW5nWyduaW5lJ10gPSAnbmV1Zic7CiRsYW5nWyd0ZW4nXSA9ICdkaXgnOwoKLy8gRGFzaGJvYXJkCiRsYW5nWydEYXNoYm9hcmQnXSA9ICdUYWJsZWF1IGRlIGJvcmQnOwoKLy8gVGVtcGxhdGVzCiRsYW5nWydUZW1wbGF0ZXMnXSA9ICdHYWJhcml0cyc7CiRsYW5nWydUZW1wbGF0ZXMgYWN0dWFscyddID0gJ0dhYmFyaXRzIGFjdHVlbHMnOwoKJGxhbmdbJ0FkZCB0ZW1wbGF0ZSddID0gJ0Fqb3V0ZXIgdW4gZ2FiYXJpdCc7CiRsYW5nWydFZGl0IHRlbXBsYXRlJ10gPSAnTW9kaWZpZXIgbGUgZ2FiYXJpdCA6IDxlbT4lczwvZW0+JzsKJGxhbmdbJ0RlbGV0ZSB0ZW1wbGF0ZSddID0gJ1N1cHByaW1lciBsZSBnYWJhcml0IDogPGVtPiVzPC9lbT4nOwokbGFuZ1snVGVtcGxhdGUgbmFtZSddID0gJ05vbSBkdSBnYWJhcml0JzsKJGxhbmdbJ1RlbXBsYXRlIGNvbnRlbnQnXSA9ICdDb250ZW51IGR1IGdhYmFyaXQnOwokbGFuZ1snVGVtcGxhdGUgaXMgc2F2ZWQuJ10gPSAnTGUgZ2FiYXJpdCBhIGJpZW4gJmVhY3V0ZTt0JmVhY3V0ZTsgc2F1dmVnYXJkJmVhY3V0ZTsuJzsKJGxhbmdbJ1RlbXBsYXRlIGlzIGRlbGV0ZWQuJ10gPSAnTGUgZ2FiYXJpdCA8c3Ryb25nPiVzPC9zdHJvbmc+IGEgYmllbiAmZWFjdXRlO3QmZWFjdXRlOyBzdXBwcmltJmVhY3V0ZTsuJzsKJGxhbmdbJ1RlbXBsYXRlIGV4aXN0ISddID0gJ0NlIG5vbSBkZSBnYWJhcml0IGV4aXN0ZSBkJmVhY3V0ZTtqJmVhY3V0ZTshJzsKCgovLyBBY2NvdW50CiRsYW5nWydBY2NvdW50J10gPSAnQ29tcHRlIFNNUyc7CQokbGFuZ1snVXNlciBhY2NvdW50J10gPSAnQ29uZmlndXJhdGlvbiB1dGlsaXNhdGV1cic7CiRsYW5nWydTTVMgYWNjb3VudCddID0gJ0NvbXB0ZSBTTVMnOwokbGFuZ1snVXNlciBsb2dpbiddID0gJ0lkZW50aWZpYW50JzsKJGxhbmdbJ1VzZXIgbG9naW4gaGVscCddID0gJ0xlIGxvZ2luIGRvaXQgYXZvaXIgNCAmYWdyYXZlOyAyMCBjYXJhY3QmZWNpcmM7cmVzIGFscGhhbnVtJmVhY3V0ZTtyaXF1ZXMuJzsKJGxhbmdbJ1VzZXIgcGFzc3dvcmQnXSA9ICdNb3QgZGUgcGFzc2UnOwokbGFuZ1snVXNlciBwYXNzd29yZCBoZWxwJ10gPSAnTGUgbW90IGRlIHBhc3NlIGRvaXQgYXZvaXIgZXhhY3RlbWVudCA4IGNhcmFjdCZlY2lyYztyZXMgYWxwaGFudW0mZWFjdXRlO3JpcXVlcy4nOwokbGFuZ1snVXNlciBub3RpZmljYXRpb24nXSA9ICdOb3RpZmljYXRpb24gcGFyJzsKJGxhbmdbJ1VzZXIgYWxlcnQgdGhyZXNob2xkJ10gPSAnQWxlcnRlIGFjdGl2ZSc7CiRsYW5nWydVc2VyIGFsZXJ0IGxpbWl0J10gPSAnTGltaXRlJzsKJGxhbmdbJ1VzZXIgbnVtYmVyJ10gPSAnTnVtJmVhY3V0ZTtybyBwb3VyIGxhIG5vdGlmaWNhdGlvbic7CiRsYW5nWydVc2VyIGVtYWlsJ10gPSAnRW1haWwnOwokbGFuZ1snbWFpbCddID0gJ0VtYWlsJzsKJGxhbmdbJ3NtcyddID0gJ1NNUyc7CiRsYW5nWydib3RoJ10gPSAnRW1haWwgZXQgU01TJzsKJGxhbmdbJytYWFhYWFhYWFhYWCddID0gJytYWFhYWFhYWFhYWCc7CiRsYW5nWydTZW5kZXIgYWNjb3VudCddID0gJ0NvbmZpZ3VyYXRpb24gZXhwZWRpdGV1cic7CiRsYW5nWydTZW5kZXIgZmlyc3RuYW1lJ10gPSAnUHImZWFjdXRlO25vbSc7CiRsYW5nWydTZW5kZXIgbmFtZSddID0gJ05vbSc7CiRsYW5nWydTZW5kZXIgbnVtYmVyJ10gPSAnTnVtJmVhY3V0ZTtybyBleHAmIzIzM2RpdGV1cic7CiRsYW5nWydTZW5kZXIgbnVtYmVyIGhlbHAnXSA9ICdFeHAmZWFjdXRlO2RpdGV1ciBudW0mZWFjdXRlO3JpcXVlIChvdSBhbHBoYW51bSZlYWN1dGU7cmlxdWUgc2kgCmlsIGEgJiMyMzN0JiMyMzMgZGVtYW5kJmVhY3V0ZTspLic7CiRsYW5nWydEYXRhIGhhdmUgbm90IGJlZW4gc2F2ZWQhJ10gPSAnTGVzIGRvbm4mIzIzM2VzIG4mYWN1dGU7b250IHBhcyAmIzIzM3QmIzIzMyBzYXV2ZWdhcmQmIzIzM2VzISc7CgovLyBQcmVmZXJlbmNlcwokbGFuZ1snUHJlZmVyZW5jZXMnXSA9ICdQciZlYWN1dGU7ZiZlYWN1dGU7cmVuY2VzJzsJCiRsYW5nWydDYXB0Y2hhJ10gPSAnQ2FwdGNoYSc7CiRsYW5nWydFRkFHSVNtc0xpZ2h0Q2FwdGNoYSddID0gJ0NlIG1vZHVsZSc7CiRsYW5nWydQcmVmZXJlbmNlIENhcHRjaGEnXSA9ICdNb2R1bGUgQ2FwdGNoYSAmYWdyYXZlOyB1dGlsaXNlcic7CiRsYW5nWydEYXRhdGFibGUnXSA9ICdEYXRhdGFibGUnOwokbGFuZ1snUHJlZmVyZW5jZSBEYXRhdGFibGUgUGFnaW5hdGlvbiddID0gJ1N0eWxlIGRlIGxhIHBhZ2luYXRpb24nOwokbGFuZ1snUHJlZmVyZW5jZSBEYXRhdGFibGUgUmVjb3JkcyddID0gJ0Nob2l4IGR1IG5vbWJyZSBkJmFjdXRlO2VucmVnaXN0cmVtZW50cyBwYXIgcGFnZSc7CiRsYW5nWydQcmVmZXJlbmNlIERhdGF0YWJsZSBTZWFyY2gnXSA9ICdSZWNoZXJjaGUgZ2xvYmFsZSc7CiRsYW5nWydQcmVmZXJlbmNlIERhdGF0YWJsZSBDb2xvbm5lcyBGaWx0ZXJzJ10gPSAnRmlsdHJhZ2Ugc3VyIGxlcyBjb2xvbm5lcyc7CiRsYW5nWydQcmVmZXJlbmNlIERhdGF0YWJsZSBDb3B5IFNhdmUnXSA9ICdDb3BpZXIgZXQgZW5yZWdpc3RyZXIgbGVzIGRvbm4mZWFjdXRlO2VzJzsKJGxhbmdbJ0VuYWJsZSByZWNvcmRzJ10gPSAnQWZmaWNoZXInOwokbGFuZ1snRGlzYWJsZSByZWNvcmRzJ10gPSAnTmUgcGFzIGFmZmljaGVyJzsKJGxhbmdbJ0VuYWJsZSBzZWFyY2gnXSA9ICdBZmZpY2hlcic7CiRsYW5nWydEaXNhYmxlIHNlYXJjaCddID0gJ05lIHBhcyBhZmZpY2hlcic7CiRsYW5nWydFbmFibGUgZmlsdGVycyddID0gJ0FmZmljaGVyJzsKJGxhbmdbJ0Rpc2FibGUgZmlsdGVycyddID0gJ05lIHBhcyBhZmZpY2hlcic7CiRsYW5nWydFbmFibGUgY29weSBzYXZlJ10gPSAnQWZmaWNoZXInOwokbGFuZ1snRGlzYWJsZSBjb3B5IHNhdmUnXSA9ICdOZSBwYXMgYWZmaWNoZXInOwokbGFuZ1snUGFnaW5hdGlvbiBEZWZhdWx0J10gPSAnUGFyIGTDqWZhdWx0JzsKJGxhbmdbJ1BhZ2luYXRpb24gRnVsbCBOdW1iZXJzJ10gPSAnTnVtw6lyb3MgY29tcGxldHMnOwoKCi8vIEdlbmVyYWwKJGxhbmdbJ0J1dHRvbiBTZW5kJ10gPSAnRW52b3llcic7CiRsYW5nWydCdXR0b24gQXBwbHknXSA9ICdBcHBsaXF1ZXInOwokbGFuZ1snQnV0dG9uIERlbGV0ZSddID0gJ1N1cHByaW1lcic7CiRsYW5nWydCdXR0b24gQ2FuY2VsJ10gPSAnQW5udWxlcic7CiRsYW5nWydCdXR0b24gUmVzZXQnXSA9ICdSJmVhY3V0ZTtpbml0aWFsaXNlcic7CgokbGFuZ1snRmllbGQgaXMgcmVxdWlyZWQhJ10gPSAnTGUgY2hhbXAgPHN0cm9uZz4lczwvc3Ryb25nPiBlc3QgcmVxdWlzISc7CiRsYW5nWydGaWVsZCBpcyB3cm9uZyEnXSA9ICdMZSBjaGFtcCA8c3Ryb25nPiVzPC9zdHJvbmc+IGVzdCBtYWwgcmVtcGxpISc7CiRsYW5nWydZb3UgbXVzdCBzZWxlY3QhJ10gPSAnVm91cyBkZXZleiBzJmVhY3V0ZTtsZWN0aW9ubmVyIHVuIGl0ZW0gZGFucyBsYSBsaXN0ZSA8c3Ryb25nPiVzPC9zdHJvbmc+ISc7CiRsYW5nWydWYWx1ZShzKSBpcyBzYXZlZC4nXSA9ICdMZXMgZG9ubiZlYWN1dGU7ZXMgPHN0cm9uZz4lczwvc3Ryb25nPiBvbnQgYmllbiAmZWFjdXRlO3QmZWFjdXRlOyBlbnJlZ2lzdHImZWFjdXRlO2VzLic7CiRsYW5nWydSZWNvcmQgaXMgZGVsZXRlZC4nXSA9ICdFbnJlZ2lzdHJlbWVudCBzdXBwcmltJmVhY3V0ZTsuJzsKJGxhbmdbJ0FyZSB5b3Ugc3VyPyddID0gJ1ZvdWxlei12b3VzIHZyYWltZW50IHN1cHByaW1lciBjZXQgJmVhY3V0ZTtsJmVhY3V0ZTttZW50Pyc7CgokbGFuZ1snTm8nXSA9ICdOb24nOwokbGFuZ1snWWVzJ10gPSAnT3VpJzsKJGxhbmdbJ1NlYXJjaCddID0gJ1JlY2hlcmNoZXInOwokbGFuZ1snRGVsZXRlIGZpbHRlcihzKSddID0gJ0VubGV2ZXIgbGUocykgZmlsdHJlKHMpJzsKJGxhbmdbJ0ZpbHRlciddID0gJ0ZpbHRyZXInOwokbGFuZ1snUmVmcmVzaCddID0gJ1JhZnJhaWNoaXInOwokbGFuZ1snUHJpbnQnXSA9ICdJbXByaW1lcic7CiRsYW5nWydDb3B5J10gPSAnQ29waWVyJzsKJGxhbmdbJ1NhdmUgYXMnXSA9ICdFbnJlZ2lzdHJlci1zb3VzJzsKJGxhbmdbJ1Nob3cgLyBIaWRlJ10gPSAnQWZmaWNoZXIgLyBNYXNxdWVyJzsKJGxhbmdbJ0FsbCddID0gJ1RvdXQnOwokbGFuZ1snTm9uZSddID0gJ0F1Y3VuJzsKJGxhbmdbJ0xvYWRpbmcgZGF0YSBmcm9tIHNlcnZlciddID0gJ0NoYXJnZW1lbnQgZGVzIGRvbm4mZWFjdXRlO2VzIGR1IHNlcnZldXInOwokbGFuZ1snQ2xvc2UnXSA9ICdGZXJtZXInOwokbGFuZ1snQ29uZmlybSBkZWxldGUnXSA9ICdDb25maXJtZXIgbGEgc3VwcHJlc3Npb24nOwokbGFuZ1snQWN0aXZlJ10gPSAnQWN0aWYnOwokbGFuZ1snRGVmYXVsdCddID0gJ0QmZWFjdXRlO2ZhdXQnOwokbGFuZ1snVHJ1ZSddID0gJ1ZyYWknOwokbGFuZ1snRmFsc2UnXSA9ICdGYXV4JzsKJGxhbmdbJ0RlZmluZSB0byB0cnVlJ10gPSAnRCZlYWN1dGU7ZmluaXIgJmFncmF2ZTsgdnJhaSc7CiRsYW5nWydEZWZpbmUgdG8gZmFsc2UnXSA9ICdEJmVhY3V0ZTtmaW5pciAmYWdyYXZlOyBmYXV4JzsKJGxhbmdbJ0RlbGV0ZSddID0gJ1N1cHByaW1lcic7CiRsYW5nWydFZGl0J10gPSAnTW9kaWZpZXInOwoKLy8gRXZlbnRzCgovLyBFcnJvcnMKJGxhbmdbJ0Vycm9yJ10gPSAnRXJyZXVyJzsKJGxhbmdbJ1RhYmxlIG5vdCBkZWZpbmUhJ10gPSAnTGEgdGFibGUgbiZhY3V0ZTthIHBhcyAmZWFjdXRlO3QmZWFjdXRlOyBkJmVhY3V0ZTtmaW5pZSEnOwokbGFuZ1snRXJyb3IgOiBjbGFzcyBub3QgZm91bmQuJ10gPSAnRXJyZXVyIDogY2xhc3MgPHN0cm9uZz4lczwvc3Ryb25nPiBub24gdHJvdXYmZWFjdXRlOyEnOwokbGFuZ1snRXJyb3IgOiBjYWxsIHRvIHVuZGVmaW5lZCBtZXRob2QuJ10gPSAnRXJyZXVyIDogbSZlYWN1dGU7dGhvZGUgPHN0cm9uZz4lczwvc3Ryb25nPiBub24gdHJvdXYmZWFjdXRlO2UhJzsKCi8vIE1vZHVsZQokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0xlIG1vZHVsZSBhICZlYWN1dGU7dCZlYWN1dGU7IGQmZWFjdXRlO3NpbnN0YWxsJmVhY3V0ZTsgYXZlYyBzdWNjJmVncmF2ZTtzLic7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ01vZHVsZSBpbnN0YWxsJmVhY3V0ZTsgZW4gdmVyc2lvbiAlcy4nOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bGUgZCZlYWN1dGU7c2luc3RhbGwmZWFjdXRlOy4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnVmVyc2lvbiBkdSBtb2R1bGUgaW5zdGFsbCZlYWN1dGU7IDogJXMuJzsKJGxhbmdbJ2hlbHAnXSA9ICcKPGgzPlF1ZSBmYWl0IGNlIG1vZHVsZSA/PC9oMz4KPHA+Q2UgbW9kdWxlIHBlcm1ldCBkJmFjdXRlO2Vudm95w6kgZGVzIFNNUyBkaXJlY3RlbWVudCBkZXB1aXMgbGEgcGFydGllIEFkbWluaXN0cmF0aW9uIGRlIENNU01TLiBJbCB2b3VzIGZhdWRyYSBhdSBwcsOpYWxhYmxlCmF2b2lyIHVuIGNvbXB0ZSBTTVMgYWN0aWYgY2hleiBPVkguPC9wPgo8aDM+Q29tbWVudCBsJmFjdXRlO3V0aWxpc2VyPzwvaDM+CjxwPkxhIGZhw6dvbiBsYSBwbHVzIGZhY2lsZSBkZSBsJmFjdXRlO3V0aWxpc2VyIGVzdCBhdmVjIGxhIGJhbGlzZSB3cmFwcGVyIHtFRkFHSVNtc0xpZ2h0fSAoZW5nbG9iZSBsZSBtb2R1bGUgZGFucyB1bmUgc2ltcGxlIApiYWxpc2UgcG91ciBzaW1wbGlmaWVyIGxhIHN5bnRheGUpLiBDZWxhIGlucyZlZ3JhdmU7cmVyYSB2b3RyZSBtb2R1bGUgZGFucyB2b3RyZSBnYWJhcml0IG91IHZvdHJlIHBhZ2UgCiZhZ3JhdmU7IGwmYWN1dGU7ZW5kcm9pdCBkJmVhY3V0ZTtzaXImZWFjdXRlOywgZXQgeSBhZmZpY2hlcmEgbGUgZm9ybXVsYWlyZSBkJmFjdXRlO2luc2NyaXB0aW9uLiBFeGVtcGxlIGRlIHN5bnRheGUgOiAKe0VGQUdJU21zTGlnaHQgdGVtcGxhdGU9JmFjdXRlO3RlbXBsYXRlX25hbWUmYWN1dGU7fS48L3A+JzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJy4uLic7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0Vudm9pZSBkZSBTTVMnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdNb2R1bGUgaW5zdGFsbCZlYWN1dGU7IGNvcnJlY3RlbWVudC4nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ01vZHVsZSBkJmVhY3V0ZTtzaW5zdGFsbCZlYWN1dGUgY29ycmVjdGVtZW50Lic7CgokbGFuZ1snaGVscF90ZW1wbGF0ZSddID0gJ1Nww6ljaWZpZSB1biBnYWJhcml0IGRlIGxhIGxpc3RlIGRlcyBnYWJhcml0cyBxdWkgcGV1dCAmZWNpcmM7dHJlIHV0aWxpcyZlYWN1dGU7IApwb3VyIGwmYWN1dGU7YWZmaWNoYWdlIGR1IGZvcm11bGFpcmUgZCZhY3V0ZTtpbnNjcmlwdGlvbi4gU2kgYXVjdW5lIHZhbGV1ciBuJmFjdXRlO2VzdCBkJmVhY3V0ZTtmaW5pZSwgbGUgZ2FiYXJpdCAKbWFycXUmZWFjdXRlOyAmbGFxdW87cGFyIGQmZWFjdXRlO2ZhdXQmcmFxdW87IHNlcmEgdXRpbGlzJmVhY3V0ZTsuJzsK]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.EFAGISmsLight_account.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIEVGQUdJU21zTGlnaHRfYWNjb3VudAp7Cglwcm90ZWN0ZWQgJGlkID0gZmFsc2U7CQoJcHJvdGVjdGVkICRyZXR1cm5pZCA9IGZhbHNlOwoJcHJvdGVjdGVkICRwYXJhbXMgPSBmYWxzZTsJCgoJcHJpdmF0ZSAkY2ZnID0gYXJyYXkoCgkJJ21vZHVsZScgPT4gJ0VGQUdJU21zTGlnaHQnLAoJCSd0aXRsZScgPT4gJ0FjY291bnQnLAoJCSdhZG1pbl9wYW5lbF90ZW1wbGF0ZScgPT4gJ2FkbWluX3BhbmVsX2FjY291bnQudHBsJwoJKTsKCglwcml2YXRlICRmbGRzID0gYXJyYXkoCgkJJ3Ntc19hY2NvdW50JyA9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0cGFzc3dvcmQnLCAnbGFiZWwnPT4nU01TIGFjY291bnQnLCAnc2l6ZSc9PjI1LCAnbWF4bGVuZ3RoJz0+MjUsICdyZXF1aXJlZCc9PicqJyksCgkJJ3VzZXJfbG9naW4nID0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXR0ZXh0JywgJ2xhYmVsJz0+J1VzZXIgbG9naW4nLCAnc2l6ZSc9PjI1LCAnbWF4bGVuZ3RoJz0+MjUsICdyZXF1aXJlZCc9PicqJyksCgkJJ3VzZXJfcGFzc3dvcmQnID0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXRwYXNzd29yZCcsICdsYWJlbCc9PidVc2VyIHBhc3N3b3JkJywgJ3NpemUnPT4yNSwgJ21heGxlbmd0aCc9PjI1LCAncmVxdWlyZWQnPT4nKicpLAoJCSdzZW5kZXJfbmFtZScgPT4gYXJyYXkoJ2NyZWF0ZSc9PidpbnB1dHRleHQnLCAnbGFiZWwnPT4nU2VuZGVyIG5hbWUnLCAnc2l6ZSc9PjI1LCAnbWF4bGVuZ3RoJz0+MjUsICdyZXF1aXJlZCc9PicqJyksCgkJJ3NlbmRlcl9maXJzdG5hbWUnID0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXR0ZXh0JywgJ2xhYmVsJz0+J1NlbmRlciBmaXJzdG5hbWUnLCAnc2l6ZSc9PjI1LCAnbWF4bGVuZ3RoJz0+MjUsICdyZXF1aXJlZCc9PicqJyksCgkJJ3NlbmRlcl9waG9uZScgPT4gYXJyYXkoJ2NyZWF0ZSc9PidpbnB1dHRleHQnLCAnbGFiZWwnPT4nU2VuZGVyIG51bWJlcicsICdzaXplJz0+MjUsICdtYXhsZW5ndGgnPT4yNSwgJ3JlcXVpcmVkJz0+JyonKSwKCgkJJ3N1Ym1pdCcgPT4gYXJyYXkoJ2NyZWF0ZSc9PidpbnB1dHN1Ym1pdCcsICd2YWx1ZSc9PidCdXR0b24gU2VuZCcpLAoJCSdmb3JtJwk9PiBhcnJheSgnY3JlYXRlJz0+J2JhY2tlbmRmb3JtJywgJ2FjdGlvbic9PidhY2NvdW50JywgJ25hbWUnPT4nYWNjb3VudCcpCgkpOwoKCS8qKgoJKiBDb25zdHJ1Y3RvcgoJKgoJKi8KCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGlkID0gZmFsc2UsICRyZXR1cm5pZCA9IGZhbHNlLCAkcGFyYW1zID0gZmFsc2UpCgl7CgkJJHRoaXMtPm1vZCA9IGNhbGxfdXNlcl9mdW5jKGFycmF5KCR0aGlzLT5jZmdbJ21vZHVsZSddLCAnR2V0TW9kdWxlSW5zdGFuY2UnKSwgJHRoaXMtPmNmZ1snbW9kdWxlJ10pOwoJCSR0aGlzLT5pZCA9ICRpZDsKCQkkdGhpcy0+cmV0dXJuaWQgPSAkcmV0dXJuaWQ7CgkJJHRoaXMtPnBhcmFtcyA9ICRwYXJhbXM7CQoJCSR0aGlzLT5ub2RlID0gJHBhcmFtc1snbm9kZSddOwkKCgkJJHRoaXMtPm1vZC0+SW5jbHVkZVRlbXBsYXRlKCk7Cgl9CgoJLyoqCgkqIEFjdGlvbiA6IGFkbWluUGFuZWwKCSoKCSogQHJldHVybiBhcnJheQoJKi8KCglwdWJsaWMgZnVuY3Rpb24gYWRtaW5QYW5lbCgpCgl7CgkJLy8gY3JlYXRlIHRoZSBmb3JtIGZvciBzbXMgYWNjb3VudAoJCSRvID0gc2VsZjo6Y3JlYXRlRm9ybUVsZW1lbnQoKTsKCgkJLy8gYWNjb3VudCBsb2dpbgoJCSRzbXNfYWNjb3VudCA9ICR0aGlzLT5tb2QtPkdldFByZWZlcmVuY2UoJ3Ntc19hY2NvdW50Jyk7CgkJJHVzZXJfbG9naW4gPSAkdGhpcy0+bW9kLT5HZXRQcmVmZXJlbmNlKCd1c2VyX2xvZ2luJyk7CgkJJHVzZXJfcGFzc3dvcmQgPSAkdGhpcy0+bW9kLT5HZXRQcmVmZXJlbmNlKCd1c2VyX3Bhc3N3b3JkJyk7CgoJCS8vIGNoZWNrIC0gZmFsc2UKCQlpZiAoJHNtc19hY2NvdW50ICA9PSAnJyB8fCAJJHVzZXJfbG9naW4gPT0gJycgfHwgJHVzZXJfcGFzc3dvcmQgPT0gJycpCgkJewoJCQkkb1snbXNnVHlwZSddID0gMzsKCQkJJG9bJ21zZ1RleHQnXSA9ICR0aGlzLT5tb2QtPkxhbmcoJ1VuZGVmaW5lZCBvciBiYWQgYWNjb3VudCcpOwoJCQkkcXVvdGFOb3RpZmljYXRpb25UaHJlc2hvbGQgPSAtMjsKCgkJLy8gY2hlY2sgLSB0cnVlCgkJfSBlbHNlIHsKCgkJCS8vIHF1ZXJ5CgkJCSRyZXNwb25zZVF1ZXJ5ID0gRUZBR0lTbXNMaWdodF9vdmhfb3BzOjp0ZWxTbXNHZXRRdW90YU5vdGlmaWNhdGlvbkZvclVzZXIoJHNtc19hY2NvdW50LCAkdXNlcl9sb2dpbiwgJHVzZXJfcGFzc3dvcmQpOwoJCQkKCQkJLy8gZ29vZAoJCQlpZiAoJHJlc3BvbnNlUXVlcnlbJ21zZ1R5cGUnXSA9PSAwKQoJCQl7CgkJCQkkcXVvdGFOb3RpZmljYXRpb25TdXBwb3J0ID0gJHJlc3BvbnNlUXVlcnlbJ3N1cHBvcnQnXTsKCQkJCSRxdW90YU5vdGlmaWNhdGlvblRocmVzaG9sZCA9ICRyZXNwb25zZVF1ZXJ5WydhbGVydFRocmVzaG9sZCddOwoJCQkJJHF1b3RhTm90aWZpY2F0aW9uTnVtYmVyID0gJHJlc3BvbnNlUXVlcnlbJ2FsZXJ0TnVtYmVyJ107CgkJCQkkcXVvdGFOb3RpZmljYXRpb25FbWFpbCA9ICRyZXNwb25zZVF1ZXJ5WydhbGVydEVtYWlsJ107CgkJCQoJCQkvLyBiYWQKCQkJfSBlbHNlIHsKCQkJCSRvWydtc2dUeXBlJ10gPSAtMTsKCQkJCSRvWydtc2dUZXh0J10gPSAkcmVzcG9uc2VRdWVyeVsnbXNnVGV4dCddOwoJCQkJJHF1b3RhTm90aWZpY2F0aW9uVGhyZXNob2xkID0gLTI7CgkJCX0KCQl9CgoJCS8vIHRlbFNtc0dldFF1b3RhTm90aWZpY2F0aW9uRm9yVXNlcgoJCWlmICgkcXVvdGFOb3RpZmljYXRpb25UaHJlc2hvbGQgPiAtMSkKCQl7CgkJCSRvWydxdW90YU5vdGlmaWNhdGlvblRocmVzaG9sZCddWydsYWJlbCddID0gJHRoaXMtPm1vZC0+TGFuZygnVXNlciBhbGVydCB0aHJlc2hvbGQnKTsKCQkJJHF1b3RhTm90aWZpY2F0aW9uVGhyZXNob2xkID0gKCRxdW90YU5vdGlmaWNhdGlvblRocmVzaG9sZCA9PSAtMSkKCQkJCT8gJHRoaXMtPm1vZC0+TGFuZygnTm8nKSAKCQkJCTogJHRoaXMtPm1vZC0+TGFuZygnWWVzJykgLicgLSAnLiAkdGhpcy0+bW9kLT5MYW5nKCdVc2VyIGFsZXJ0IGxpbWl0JykgLicgOiAnLiRxdW90YU5vdGlmaWNhdGlvblRocmVzaG9sZDsKCQkJJG9bJ3F1b3RhTm90aWZpY2F0aW9uVGhyZXNob2xkJ11bJ3ZhbHVlJ10gPSAkcXVvdGFOb3RpZmljYXRpb25UaHJlc2hvbGQ7CgkJCQoJCQlpZiAoJHF1b3RhTm90aWZpY2F0aW9uVGhyZXNob2xkICE9IC0xKQoJCQl7CgkJCQkkb1sncXVvdGFOb3RpZmljYXRpb25TdXBwb3J0J11bJ2xhYmVsJ10gPSAkdGhpcy0+bW9kLT5MYW5nKCdVc2VyIG5vdGlmaWNhdGlvbicpOwoJCQkJJG9bJ3F1b3RhTm90aWZpY2F0aW9uU3VwcG9ydCddWyd2YWx1ZSddID0gJHRoaXMtPm1vZC0+TGFuZygkcXVvdGFOb3RpZmljYXRpb25TdXBwb3J0KTsKCQkJCQoJCQkJaWYgKCRxdW90YU5vdGlmaWNhdGlvblN1cHBvcnQgPT0gJ3NtcycgfHwgJHF1b3RhTm90aWZpY2F0aW9uU3VwcG9ydCA9PSAnYm90aCcpCgkJCQl7CgkJCQkJJG9bJ3F1b3RhTm90aWZpY2F0aW9uTnVtYmVyJ11bJ2xhYmVsJ10gPSAkdGhpcy0+bW9kLT5MYW5nKCdVc2VyIG51bWJlcicpOwoJCQkJCSRvWydxdW90YU5vdGlmaWNhdGlvbk51bWJlciddWyd2YWx1ZSddID0gJHF1b3RhTm90aWZpY2F0aW9uTnVtYmVyOwoJCQkJfQoJCQkJaWYgKCRxdW90YU5vdGlmaWNhdGlvblN1cHBvcnQgPT0gJ21haWwnIHx8ICRxdW90YU5vdGlmaWNhdGlvblN1cHBvcnQgPT0gJ2JvdGgnKQoJCQkJewoJCQkJCSRvWydxdW90YU5vdGlmaWNhdGlvbkVtYWlsJ11bJ2xhYmVsJ10gPSAkdGhpcy0+bW9kLT5MYW5nKCdVc2VyIGVtYWlsJyk7CgkJCQkJJG9bJ3F1b3RhTm90aWZpY2F0aW9uRW1haWwnXVsndmFsdWUnXSA9ICRxdW90YU5vdGlmaWNhdGlvbkVtYWlsOwoJCQkJfQoJCQl9CgkJfQoKCQkvLyBhZGQgZWxlbWVudHMKCQkkb1sndGl0bGUnXQk9ICR0aGlzLT5tb2QtPkxhbmcoJHRoaXMtPmNmZ1sndGl0bGUnXSk7CgoJCS8vIHNtYXJ0eQoJCSR0aGlzLT5tb2QtPnNtYXJ0eS0+YXNzaWduKCdvJywgJG8pOwkKCgkJLy8gdGVtcGxhdGUJCgkJJHRlbXBsYXRlID0gKCRvWydtc2dUeXBlJ10gPT09IDEgfHwgJG9bJ21zZ1R5cGUnXSA9PT0gMiApID8gJ21lc3NhZ2VfYm94LnRwbCcgOiAkdGhpcy0+Y2ZnWydhZG1pbl9wYW5lbF90ZW1wbGF0ZSddOwoKCQkvLyByZXN1bHQKCQlyZXR1cm4gJHRoaXMtPnJlcyA9IGFycmF5KCdtc2dUeXBlJz0+JG9bJ21zZ1R5cGUnXSwgJ3Jlc3VsdCc9PiR0aGlzLT5tb2QtPlByb2Nlc3NUZW1wbGF0ZSgkdGVtcGxhdGUpKTsJCQoJfQoKCgkvKioKCSogQWN0aW9uIDogdXBkYXRlQWNjb3VudAoJKgoJKiBAcmV0dXJuIGFycmF5CgkqLwoKCXB1YmxpYyBmdW5jdGlvbiB1cGRhdGVBY2NvdW50KCkKCXsKCQkvLyBzYXZlCgkJJG8gPSBzZWxmOjpzYXZlQWNjb3VudCgpOwoKCQlpZiAoJG9bJ21zZ1R5cGUnXSA9PSA2KQoJCQkkb1snbXNnVHlwZSddID0gNzsKCgkJLy8gc21hcnR5CQkKCQkkdGhpcy0+bW9kLT5zbWFydHktPmFzc2lnbignbycsICRvKTsKCgkJLy8gcmVzdWx0CgkJcmV0dXJuICR0aGlzLT5yZXMgPSBhcnJheSgnbXNnVHlwZSc9PiRvWydtc2dUeXBlJ10sICdyZXN1bHQnPT4kdGhpcy0+bW9kLT5Qcm9jZXNzVGVtcGxhdGUoJ21lc3NhZ2VfYm94LnRwbCcpKTsKCX0KCgoJLyoqCgkqIEZ1bmN0aW9uIDogY3JlYXRlRm9ybUVsZW1lbnQKCSoKCSogQHJldHVybiBhcnJheQoJKi8KCglwcml2YXRlIGZ1bmN0aW9uIGNyZWF0ZUZvcm1FbGVtZW50KCkKCXsKCQkvLyBsb2FkIHZhbHVlcwoJCXNlbGY6OmxvYWRBY2NvdW50KCk7CgoJCSRvID0gRUZBR0lTbXNMaWdodF9DcmVhdGVGb3JtOjpjcmVhdGVGb3JtRWxlbWVudCgkdGhpcy0+bW9kLCAkdGhpcy0+aWQsICR0aGlzLT5yZXR1cm5pZCwgJHRoaXMtPmZsZHMpOwoKCQkvLyBhZGQgZWxlbWVudHMKCQkkb1snc2VuZGVyX2ZpZWxkJ11bJ2hlbHAnXSA9ICR0aGlzLT5tb2QtPkxhbmcoJ1NlbmRlciBudW1iZXIgaGVscCcpOwoJCSRvWyd1c2VyX2xvZ2luJ11bJ2hlbHAnXSA9ICR0aGlzLT5tb2QtPkxhbmcoJ1VzZXIgbG9naW4gaGVscCcpOwoJCSRvWyd1c2VyX3Bhc3N3b3JkJ11bJ2hlbHAnXSA9ICR0aGlzLT5tb2QtPkxhbmcoJ1VzZXIgcGFzc3dvcmQgaGVscCcpOwoJCSRvWydoaWRkZW5zJ11bXSA9ICR0aGlzLT5tb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCR0aGlzLT5pZCwgJ25vZGUnLCAkdGhpcy0+bm9kZSk7CgkJJG9bJ3VzZXJfYWNjb3VudCddWydmaWVsZHNldCddID0gJHRoaXMtPm1vZC0+Q3JlYXRlRmllbGRzZXRTdGFydCgkdGhpcy0+aWQsICd1c2VyX2Fjb3VudCcsICR0aGlzLT5tb2QtPkxhbmcoJ1VzZXIgYWNjb3VudCcpLCAnJywgJycpOwoJCSRvWydzZW5kZXJfYWNjb3VudCddWydmaWVsZHNldCddID0gJHRoaXMtPm1vZC0+Q3JlYXRlRmllbGRzZXRTdGFydCgkdGhpcy0+aWQsICdzZW5kZXJfYWNjb3VudCcsICR0aGlzLT5tb2QtPkxhbmcoJ1NlbmRlciBhY2NvdW50JyksICcnLCAnJyk7CgkJJG9bJ2VuZCddWydmaWVsZHNldCddID0gJHRoaXMtPm1vZC0+Q3JlYXRlRmllbGRzZXRFbmQoKTsKCQkkb1snbXNnVHlwZSddID0gMDsKCQkkb1snbXNnVGV4dCddID0gJyc7CgoJCS8vIHJlc3VsdAoJCXJldHVybiAkbzsKCX0KCgoJLyoqCgkqIEZ1bmN0aW9uIDogbG9hZEFjY291bnQKCSoKCSovCgoJcHJpdmF0ZSBmdW5jdGlvbiBsb2FkQWNjb3VudCgpCgl7CgkJJHRoaXMtPmZsZHNbJ3Ntc19hY2NvdW50J11bJ3ZhbHVlJ10gPSAkdGhpcy0+bW9kLT5HZXRQcmVmZXJlbmNlKCdzbXNfYWNjb3VudCcpOwoJCSR0aGlzLT5mbGRzWyd1c2VyX2xvZ2luJ11bJ3ZhbHVlJ10gPSAkdGhpcy0+bW9kLT5HZXRQcmVmZXJlbmNlKCd1c2VyX2xvZ2luJyk7CgkJJHRoaXMtPmZsZHNbJ3VzZXJfcGFzc3dvcmQnXVsndmFsdWUnXSA9ICR0aGlzLT5tb2QtPkdldFByZWZlcmVuY2UoJ3VzZXJfcGFzc3dvcmQnKTsKCQkkdGhpcy0+Zmxkc1snc2VuZGVyX25hbWUnXVsndmFsdWUnXSA9ICR0aGlzLT5tb2QtPkdldFByZWZlcmVuY2UoJ3NlbmRlcl9uYW1lJyk7CgkJJHRoaXMtPmZsZHNbJ3NlbmRlcl9maXJzdG5hbWUnXVsndmFsdWUnXSA9ICR0aGlzLT5tb2QtPkdldFByZWZlcmVuY2UoJ3NlbmRlcl9maXJzdG5hbWUnKTsKCQkkdGhpcy0+Zmxkc1snc2VuZGVyX3Bob25lJ11bJ3ZhbHVlJ10gPSAkdGhpcy0+bW9kLT5HZXRQcmVmZXJlbmNlKCdzZW5kZXJfcGhvbmUnKTsKCX0KCgkvKioKCSogRnVuY3Rpb24gOiBzYXZlQWNjb3VudAoJKgoJKiBAcmV0dXJuIGFycmF5CgkqLwoKCXByaXZhdGUgZnVuY3Rpb24gc2F2ZUFjY291bnQoKQoJewoJCS8vIHZhbGlkYXRlIHZhbHVlcwoJCSRvID0gRUZBR0lTbXNMaWdodF9WYWxpZGF0ZUZvcm06OnZhbGlkYXRlRmllbGRzKCR0aGlzLT5tb2QsICR0aGlzLT5mbGRzLCAkdGhpcy0+cGFyYW1zKTsKCgkJaWYgKCRvWydtc2dUeXBlJ10gPT0gMikKCQl7CgkJCS8vIGFjY291bnQgbG9naW4KCQkJJHNtc19hY2NvdW50ID0gJHRoaXMtPnBhcmFtc1snc21zX2FjY291bnQnXTsKCQkJJHVzZXJfbG9naW4gPSAkdGhpcy0+cGFyYW1zWyd1c2VyX2xvZ2luJ107CgkJCSR1c2VyX3Bhc3N3b3JkID0gJHRoaXMtPnBhcmFtc1sndXNlcl9wYXNzd29yZCddOwoKCQkJLy8gcXVlcnkKCQkJJHJlc3BvbnNlUXVlcnkgPSBFRkFHSVNtc0xpZ2h0X292aF9vcHM6OnRlbFNtc0dldFF1b3RhTm90aWZpY2F0aW9uRm9yVXNlcigkc21zX2FjY291bnQsICR1c2VyX2xvZ2luLCAkdXNlcl9wYXNzd29yZCk7CgkJCQoJCQkvLyBnb29kCgkJCWlmICgkcmVzcG9uc2VRdWVyeVsnbXNnVHlwZSddID09IDApCgkJCXsKCQkJCSRxdW90YU5vdGlmaWNhdGlvblN1cHBvcnQgPSAkcmVzcG9uc2VRdWVyeVsnc3VwcG9ydCddOwoJCQkJJHF1b3RhTm90aWZpY2F0aW9uVGhyZXNob2xkID0gJHJlc3BvbnNlUXVlcnlbJ2FsZXJ0VGhyZXNob2xkJ107CgkJCQkkcXVvdGFOb3RpZmljYXRpb25OdW1iZXIgPSAkcmVzcG9uc2VRdWVyeVsnYWxlcnROdW1iZXInXTsKCQkJCSRxdW90YU5vdGlmaWNhdGlvbkVtYWlsID0gJHJlc3BvbnNlUXVlcnlbJ2FsZXJ0RW1haWwnXTsKCQkJCgkJCS8vIGJhZAoJCQl9IGVsc2UgewoJCQkJJG9bJ21zZ1R5cGUnXSA9IDE7CgkJCQkkb1snbXNnVGV4dCddID0gJHJlc3BvbnNlUXVlcnlbJ21zZ1RleHQnXSAuJzxiciAvPicuICR0aGlzLT5tb2QtPkxhbmcoJ0RhdGEgaGF2ZSBub3QgYmVlbiBzYXZlZCEnKTsKCQkJfQoJCQkKCQl9CgoJCWlmICgkb1snbXNnVHlwZSddID09IDIpCgkJewoJCQkkb1snbXNnVHlwZSddID0gNjsKCgkJCSRvWydtc2dUZXh0J10gPSAkdGhpcy0+bW9kLT5MYW5nKCdWYWx1ZShzKSBpcyBzYXZlZC4nLCAkdGhpcy0+bW9kLT5MYW5nKCR0aGlzLT5jZmdbJ3RpdGxlJ10pKTsKCQoJCQkkdGhpcy0+bW9kLT5TZXRQcmVmZXJlbmNlKCdzbXNfYWNjb3VudCcsICRzbXNfYWNjb3VudCk7CgkJCSR0aGlzLT5tb2QtPlNldFByZWZlcmVuY2UoJ3VzZXJfbG9naW4nLCAkdXNlcl9sb2dpbik7CgkJCSR0aGlzLT5tb2QtPlNldFByZWZlcmVuY2UoJ3VzZXJfcGFzc3dvcmQnLCAkdXNlcl9wYXNzd29yZCk7CgkJCQoJCQkkdGhpcy0+bW9kLT5TZXRQcmVmZXJlbmNlKCdzZW5kZXJfbmFtZScsICR0aGlzLT5wYXJhbXNbJ3NlbmRlcl9uYW1lJ10pOwoJCQkkdGhpcy0+bW9kLT5TZXRQcmVmZXJlbmNlKCdzZW5kZXJfZmlyc3RuYW1lJywgJHRoaXMtPnBhcmFtc1snc2VuZGVyX2ZpcnN0bmFtZSddKTsKCQkJJHRoaXMtPm1vZC0+U2V0UHJlZmVyZW5jZSgnc2VuZGVyX3Bob25lJywgJHRoaXMtPnBhcmFtc1snc2VuZGVyX3Bob25lJ10pOwoJCX0KCgkJLy8gcmVzdWx0CgkJcmV0dXJuIGFycmF5KCdtc2dUeXBlJz0+JG9bJ21zZ1R5cGUnXSwgJ21zZ1RleHQnPT4kb1snbXNnVGV4dCddKTsKCX0KfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/class.EFAGISmsLight_Captcha.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIEVGQUdJU21zTGlnaHRfQ2FwdGNoYQp7CgkvKioKCSogRnVuY3Rpb24gOiBjaGVja0NhcHRjaGEKCSoKCSovCgoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjaGVja0NhcHRjaGEoJG1vZCwgJGNhcHRjaGFWYWx1ZSwgJGNhcHRjaGFSZXNwb25zZSkKICB7CiAgCWlmKCRjYXB0Y2hhVmFsdWUgIT0gJGNhcHRjaGFSZXNwb25zZSkKICAgIHsKICAgICAgICAkcmVzWydtc2dUeXBlJ10gPSAxOwogICAgICAgICRyZXNbJ21zZ1RleHQnXSA9ICRtb2QtPkxhbmcoJ0Vycm9yIFJlY2lwaWVudCBDYXB0Y2hhJyk7ICAgICAgICAgCiAgICB9IGVsc2UgewogICAgCSRyZXNbJ21zZ1R5cGUnXSA9IDI7CiAgICB9CgogICAgcmV0dXJuICRyZXM7CiAgfQoKICAvKioKICAqIEZ1bmN0aW9uIDogZ2V0Q2FwdGNoYQogICoKICAqLwoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldENhcHRjaGEoJG1vZCkKICB7CiAgICAkZnVuY3Rpb25zID0gYXJyYXkoJ2NhbGN1bENhcHRjaGEnLCAnbGV0dGVyc0NhcHRjaGEnLCAnYWxwaGFOdW1DYXB0Y2hhJywgJ2NhbGN1bExldHRlcnNDYXB0Y2hhJyk7CiAgICAkY2FwdGNoYSA9ICRmdW5jdGlvbnNbYXJyYXlfcmFuZCgkZnVuY3Rpb25zKV07CgogICAgcmV0dXJuIHNlbGY6OiRjYXB0Y2hhKCRtb2QpOwogIH0KCiAgLyoqCiAgKiBGdW5jdGlvbiA6IGxldHRlcnNDYXB0Y2hhCiAgKgogICovCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gbGV0dGVyc0NhcHRjaGEoJG1vZCkKICB7CiAgICAkc3RyID0gJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6JzsKICAgICRzdHIgLj0gc3RydG91cHBlcigkc3RyKTsKICAgICRsZW5ndGggPSBtdF9yYW5kKDUsMTIpOwogICAgJHN0ciA9IHN1YnN0cihzdHJfc2h1ZmZsZSgkc3RyKSwwLCRsZW5ndGgpOwogICAgJHBvcyA9IG10X3JhbmQoMiwkbGVuZ3RoLTEpOwogICAgJF9TRVNTSU9OWydjYXB0Y2hhUmVzdWx0J10gPSAkc3RyWyRwb3MtMV07CgogICAgcmV0dXJuICRtb2QtPkxhbmcoJ2xldHRlcnNDYXB0Y2hhXzEnLCAkc3RyKSAuJyAnLiAKICAgICAgICAgICAkbW9kLT5MYW5nKCdsZXR0ZXJzQ2FwdGNoYV8yJywgJHN0clskcG9zLTJdKSAuJyAnLgogICAgICAgICAgICRtb2QtPkxhbmcoJ2xldHRlcnNDYXB0Y2hhXzMnLCAkc3RyWyRwb3NdKTsKCiAgfQoKICAvKioKICAqIEZ1bmN0aW9uIDogYWxwaGFOdW1DYXB0Y2hhCiAgKgogICovCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gYWxwaGFOdW1DYXB0Y2hhKCRtb2QpCiAgewogICAgJHN0ciA9IG1kNSh0aW1lKCkpOwogICAgJGxlbmd0aCA9IG10X3JhbmQoNSwxMik7CiAgICAkc3RyID0gc3Vic3RyKCRzdHIsMCwkbGVuZ3RoKTsKICAgICRwb3MgPSBtdF9yYW5kKDEsJGxlbmd0aCk7CiAgICAkX1NFU1NJT05bJ2NhcHRjaGFSZXN1bHQnXSA9ICRzdHJbJHBvcy0xXTsKICAgIGlmKCRwb3MgPT09IDEpCiAgICAgICRwb3MgPSAnbGUgcHJlbWllcic7CiAgICBlbHNlaWYoJHBvcyA9PT0gMikKICAgICAgJHBvcyA9ICdsZSBzZWNvbmQnOwogICAgZWxzZWlmKCRwb3MgPT09ICRsZW5ndGgpCiAgICAgICRwb3MgPSAnbGUgZGVybmllcic7CiAgICBlbHNlaWYoJHBvcyA9PT0gKCRsZW5ndGgtMSkpCiAgICAgICRwb3MgPSAnbFwnYXZhbnQgZGVybmllcic7CiAgICBlbHNlCiAgICAgICRwb3MgPSAnbGUgJy4kcG9zLicmZWdyYXZlO21lJzsKCiAgICByZXR1cm4gJG1vZC0+TGFuZygnYWxwaGFOdW1DYXB0Y2hhXzEnLCAkcG9zKSAuJyAnLiAKICAgICAgICAgICAkbW9kLT5MYW5nKCdhbHBoYU51bUNhcHRjaGFfMicsICRzdHIpOwogIH0KCiAgLyoqCiAgKiBGdW5jdGlvbiA6IGNhbGN1bExldHRlcnNDYXB0Y2hhCiAgKgogICovCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2FsY3VsTGV0dGVyc0NhcHRjaGEoJG1vZCkKICB7CiAgICAkb3BlcmF0b3JzID0gYXJyYXkoJy0nID0+ICdtaW51cycsICcrJyA9PiAnYWRkZWQgdG8nLCAnKicgPT4gJ211bHRpcGxpZWQgYnknKTsKICAgICRvcGVyYXRvciA9IGFycmF5X3JhbmQoJG9wZXJhdG9ycyk7CiAgICAkb3AgPSAkb3BlcmF0b3JzWyRvcGVyYXRvcl07CiAgICAkbnVtID0gYXJyYXkoJ3plcm8nLCAnb25lJywgJ3R3bycsICd0aHJlZScsICdmb3VyJywgJ2ZpdmUnLCAnc2l4JywgJ3NldmVuJywgJ2VpZ2h0JywgJ25pbmUnLCAndGVuJyk7CiAgICAkbmIxID0gYXJyYXlfcmFuZCgkbnVtKTsKICAgICRuYjIgPSBhcnJheV9yYW5kKCRudW0pOwogICAgaWYoJG9wZXJhdG9yID09PSAnLScgJiYgJG5iMSA8ICRuYjIpCiAgICB3aGlsZSgkbmIxIDwgKCRuYjIgPSBhcnJheV9yYW5kKCRudW0pKSk7CiAgICBldmFsKCckX1NFU1NJT05bXCdjYXB0Y2hhUmVzdWx0XCddID0gc3RydmFsKCcuJG5iMS4kb3BlcmF0b3IuJG5iMi4nKTsnKTsKCiAgICByZXR1cm4gJG1vZC0+TGFuZygnY2FsY3VsTGV0dGVyc0NhcHRjaGFfMScsICRtb2QtPkxhbmcoJG51bVskbmIxXSkuJyAnLiAKICAgICAgICAgICAkbW9kLT5MYW5nKCRvcCkgLicgJy4gJG1vZC0+TGFuZygkbnVtWyRuYjJdKSk7CgogIH0KCgkvKioKCSogRnVuY3Rpb24gOiBjYXB0Y2hhQ2FsY3VsCgkqCgkqLwoKCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2FsY3VsQ2FwdGNoYSgkbW9kKQogIHsKICAgICRvcGVyYXRvcnMgPSBhcnJheSgnLScsJysnLCcqJyk7CiAgICAkb3BlcmF0b3IgPSAkb3BlcmF0b3JzW2FycmF5X3JhbmQoJG9wZXJhdG9ycyldOwogICAgJG5iMSA9IHJhbmQoMSwgMTApOwogICAgJG5iMiA9ICgkb3BlcmF0b3IgPT09ICctJykgPyBtdF9yYW5kKDEsICRuYjEpIDogbXRfcmFuZCgxLCAxMCk7CiAgICAkY2FsY3VsID0gJG5iMS4nICcuJG9wZXJhdG9yLicgJy4kbmIyOwogICAgZXZhbCgnJF9TRVNTSU9OW1wncmVjaXBpZW50X2NhcHRjaGFcJ10gPSBzdHJ2YWwoJy4kbmIxLiRvcGVyYXRvci4kbmIyLicpOycpOwoKICAgIHJldHVybiAkbW9kLT5MYW5nKCdjYWxjdWxDYXB0Y2hhXzEnLCAkbmIxLicgJy4oJG9wZXJhdG9yID09PSAnKicgPyAneCcgOiAkb3BlcmF0b3IpIC4nICcuICRuYjIpOwogIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/class.EFAGISmsLight_CreateForm.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIEVGQUdJU21zTGlnaHRfQ3JlYXRlRm9ybQp7CiAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY3JlYXRlRm9ybUVsZW1lbnQoJG1vZCwgJGlkLCAkcmV0dXJuaWQsICRmaWVsZHMsICRjZmcgPSAnJywgJHBhcmFtcyA9ICcnKQogICB7CiAgICAgIC8vIGlkeCBleGlzdCBhbmQgbm90IGZhbHNlCiAgICAgIGlmIChpc3NldCgkcGFyYW1zWydpZHgnXSkgJiYgJHBhcmFtc1snaWR4J10gIT0gLTEpCiAgICAgIHsgICAgICAgIAogICAgICAgICAvLyBsb2FkIHJlY29yZAogICAgICAgICAkbyA9IEVGQUdJU21zTGlnaHRfT3BlcmF0aW9uczo6bG9hZFJlY29yZCgkbW9kLCAkY2ZnLCAkZmllbGRzLCAkcGFyYW1zKTsKICAgICAgICAgaWYgKCRvWydtc2dUeXBlJ10gPT0gMCkKICAgICAgICAgewogICAgICAgICAgICBmb3JlYWNoICgkZmllbGRzIGFzICRrID0+ICR2KSAKICAgICAgICAgICAgewogICAgICAgICAgICAgICAvLyBkZWZhdWx0IHZhbHVlIAogICAgICAgICAgICAgICBpZiAoJGsgIT0gJ2Zvcm0nICYmICRrICE9ICdzdWJtaXQnICYmICRrICE9ICdjYW5jZWwnICYmICFpc3NldCgkdlsnbm9sb2FkJ10pKQoKICAgICAgICAgICAgICAgICAgLy8gZm9yIGNoZWNrYm94IGFuZCBzZWxlY3RsaXN0CiAgICAgICAgICAgICAgICAgIGlmICgkdlsnY3JlYXRlJ10gPT0gJ2lucHV0Y2hlY2tib3gnIHx8ICR2WydjcmVhdGUnXSA9PSAnaW5wdXRzZWxlY3RsaXN0JykKICAgICAgICAgICAgICAgICAgICAgJGZpZWxkc1ska11bJ3NlbGVjdGVkdmFsdWUnXSA9ICRvWydyZXN1bHQnXVska107CgogICAgICAgICAgICAgICAgICAvLyBvdGhlcnMgZWxlbWVudHMKICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAkZmllbGRzWyRrXVsndmFsdWUnXSA9ICRvWydyZXN1bHQnXVska107CiAgICAgICAgICAgIH0KICAgICAgICAgfQoKICAgICAgLy8gaWR4IG5vdCBleGlzdCwgdmFsdWUgZm9yIGNoZWNrYm94IGFuZCBzZWxlY3RsaXN0CiAgICAgIH0gZWxzZSB7CgogICAgICAgICBmb3JlYWNoICgkZmllbGRzIGFzICRrID0+ICR2KSAKICAgICAgICAgICAgaWYgKCR2WydjcmVhdGUnXSA9PSAnaW5wdXRjaGVja2JveCcgfHwgJHZbJ2NyZWF0ZSddID09ICdpbnB1dHNlbGVjdGxpc3QnKQogICAgICAgICAgICAgICAgICAkZmllbGRzWyRrXVsnc2VsZWN0ZWR2YWx1ZSddID0gLTE7CgogICAgICAgICAkb1snbXNnVHlwZSddID0gMDsKICAgICAgICAgJG9bJ21zZ1RleHQnXSA9ICcnOyAgICAgIAogICAgICB9CgogICAgICAvLyBjcmVhdGUgZm9ybSBlbGVtZW50cwogICAgICBmb3JlYWNoICgkZmllbGRzIGFzICRrID0+ICR2KQogICAgICB7CiAgICAgICAgICRjcmVhdGUgPSAkZmllbGRzWyRrXVsnY3JlYXRlJ10gLiAnRWxlbWVudCc7CiAgICAgICAgICRvWyRrXSA9ICgkY3JlYXRlID09ICdiYWNrZW5kZm9ybUVsZW1lbnQnIHx8ICRjcmVhdGUgPT0gJ2Zyb250ZW5kZm9ybUVsZW1lbnQnKQogICAgICAgICAgICA/IHNlbGY6OiRjcmVhdGUoJG1vZCwgJGlkLCAkcmV0dXJuaWQsICRmaWVsZHNbJGtdKQogICAgICAgICAgICA6IHNlbGY6OiRjcmVhdGUoJG1vZCwgJGlkLCAkaywgJGZpZWxkc1ska10pOwogICAgICB9CgogICAgICByZXR1cm4gJG87CiAgIH0KCiAgIHByaXZhdGUgZnVuY3Rpb24gdGV4dGFyZWFFbGVtZW50KCRtb2QsICRpZCwgJG5hbWUsICRhdHRyKQogICB7CiAgICAgICR2YWx1ZSA9IGlzc2V0KCRhdHRyWyd2YWx1ZSddKSA/ICRhdHRyWyd2YWx1ZSddIDogJyc7IAogICAgICAkY29scyA9IGlzc2V0KCRhdHRyWydjb2xzJ10pID8gJGF0dHJbJ2NvbHMnXSA6IDgwOyAKICAgICAgJHJvd3MgPSBpc3NldCgkYXR0clsncm93cyddKSA/ICRhdHRyWydyb3dzJ10gOiAxNTsgCiAgICAgICRhZGR0ZXh0ID0gaXNzZXQoJGF0dHJbJ2FkZHRleHQnXSkgPyAkYXR0clsnYWRkdGV4dCddIDogJyc7IAogICAgICAkYWRkdGV4dCA9IGlzc2V0KCRhdHRyWydyZXF1aXJlZCddKSA/ICRhZGR0ZXh0IC4gJyByZXF1aXJlZD0icmVxdWlyZWQiJyA6ICRhZGR0ZXh0OwoKICAgICAgJG9bJ2xhYmVsJ10gPSAkbW9kLT5DcmVhdGVMYWJlbEZvcklucHV0KCRpZCwgJG5hbWUsICRtb2QtPkxhbmcoJGF0dHJbJ2xhYmVsJ10pKTsKICAgICAgJG9bJ2ZpZWxkJ10gPSAkbW9kLT5DcmVhdGVUZXh0QXJlYSgwLCAkaWQsICR2YWx1ZSwgJG5hbWUsICcnLCAnJywgJycsICcnLCAkY29scywgJHJvd3MsICcnLCAnJywgJGFkZHRleHQpOwoKICAgICAgcmV0dXJuICRvOwogICB9CgogICBwcml2YXRlIGZ1bmN0aW9uIGlucHV0dGV4dEVsZW1lbnQoJG1vZCwgJGlkLCAkbmFtZSwgJGF0dHIpCiAgIHsKICAgICAgJHZhbHVlID0gaXNzZXQoJGF0dHJbJ3ZhbHVlJ10pID8gJGF0dHJbJ3ZhbHVlJ10gOiAnJzsgCiAgICAgICRzaXplID0gaXNzZXQoJGF0dHJbJ3NpemUnXSkgPyAkYXR0clsnc2l6ZSddIDogJyc7IAogICAgICAkbWF4bGVuZ3RoID0gaXNzZXQoJGF0dHJbJ21heGxlbmd0aCddKSA/ICRhdHRyWydtYXhsZW5ndGgnXSA6ICcnOyAKICAgICAgJGFkZHRleHQgPSBpc3NldCgkYXR0clsnYWRkdGV4dCddKSA/ICRhdHRyWydhZGR0ZXh0J10gOiAnJzsgCiAgICAgICRhZGR0ZXh0ID0gaXNzZXQoJGF0dHJbJ3JlcXVpcmVkJ10pID8gJGFkZHRleHQgLiAnIHJlcXVpcmVkPSJyZXF1aXJlZCInIDogJGFkZHRleHQ7IAoKICAgICAgJG9bJ2xhYmVsJ10gPSAkbW9kLT5DcmVhdGVMYWJlbEZvcklucHV0KCRpZCwgJG5hbWUsICRtb2QtPkxhbmcoJGF0dHJbJ2xhYmVsJ10pKTsKICAgICAgJG9bJ2ZpZWxkJ10gPSAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAkbmFtZSwgJHZhbHVlLCAkc2l6ZSwgJG1heGxlbmd0aCwgJGFkZHRleHQpOwoKICAgICAgcmV0dXJuICRvOwogICB9CgogICBwcml2YXRlIGZ1bmN0aW9uIGlucHV0aGlkZGVuRWxlbWVudCgkbW9kLCAkaWQsICRuYW1lLCAkYXR0cikKICAgewogICAgICAkdmFsdWUgPSBpc3NldCgkYXR0clsndmFsdWUnXSkgPyAkYXR0clsndmFsdWUnXSA6ICcnOyAKICAgICAgJGFkZHRleHQgPSBpc3NldCgkYXR0clsnYWRkdGV4dCddKSA/ICRhdHRyWydhZGR0ZXh0J10gOiAnJzsgCgogICAgICAkb1snbGFiZWwnXSA9IGlzc2V0KCRhdHRyWydsYWJlbCddKSA/ICRtb2QtPkNyZWF0ZUxhYmVsRm9ySW5wdXQoJGlkLCAkbmFtZSwgJG1vZC0+TGFuZygkYXR0clsnbGFiZWwnXSkpIDogZmFsc2U7CiAgICAgICRvWydmaWVsZCddID0gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAkbmFtZSwgJHZhbHVlLCAkYWRkdGV4dCk7CgogICAgICByZXR1cm4gJG87CiAgIH0KCiAgIHByaXZhdGUgZnVuY3Rpb24gaW5wdXRwYXNzd29yZEVsZW1lbnQoJG1vZCwgJGlkLCAkbmFtZSwgJGF0dHIpCiAgIHsKICAgICAgJHZhbHVlID0gaXNzZXQoJGF0dHJbJ3ZhbHVlJ10pID8gJGF0dHJbJ3ZhbHVlJ10gOiAnJzsgCiAgICAgICRzaXplID0gaXNzZXQoJGF0dHJbJ3NpemUnXSkgPyAkYXR0clsnc2l6ZSddIDogJyc7IAogICAgICAkbWF4bGVuZ3RoID0gaXNzZXQoJGF0dHJbJ21heGxlbmd0aCddKSA/ICRhdHRyWydtYXhsZW5ndGgnXSA6ICcnOyAKICAgICAgJGFkZHRleHQgPSBpc3NldCgkYXR0clsnYWRkdGV4dCddKSA/ICRhdHRyWydhZGR0ZXh0J10gOiAnJzsgCiAgICAgICRhZGR0ZXh0ID0gaXNzZXQoJGF0dHJbJ3JlcXVpcmVkJ10pID8gJGFkZHRleHQgLiAnIHJlcXVpcmVkPSJyZXF1aXJlZCInIDogJyc7IAoKICAgICAgJG9bJ2xhYmVsJ10gPSAkbW9kLT5DcmVhdGVMYWJlbEZvcklucHV0KCRpZCwgJG5hbWUsICRtb2QtPkxhbmcoJGF0dHJbJ2xhYmVsJ10pKTsKICAgICAgJG9bJ2ZpZWxkJ10gPSAkbW9kLT5DcmVhdGVJbnB1dFBhc3N3b3JkKCRpZCwgJG5hbWUsICR2YWx1ZSwgJHNpemUsICRtYXhsZW5ndGgsICRhZGR0ZXh0KTsKCiAgICAgIHJldHVybiAkbzsKICAgfQoKICAgcHJpdmF0ZSBmdW5jdGlvbiBpbnB1dGVtYWlsRWxlbWVudCgkbW9kLCAkaWQsICRuYW1lLCAkYXR0cikKICAgewogICAgICAkdmFsdWUgPSBpc3NldCgkYXR0clsndmFsdWUnXSkgPyAkYXR0clsndmFsdWUnXSA6ICcnOyAKICAgICAgJHNpemUgPSBpc3NldCgkYXR0clsnc2l6ZSddKSA/ICRhdHRyWydzaXplJ10gOiAnJzsgCiAgICAgICRtYXhsZW5ndGggPSBpc3NldCgkYXR0clsnbWF4bGVuZ3RoJ10pID8gJGF0dHJbJ21heGxlbmd0aCddIDogJyc7IAogICAgICAkYWRkdGV4dCA9IGlzc2V0KCRhdHRyWydhZGR0ZXh0J10pID8gJGF0dHJbJ2FkZHRleHQnXSA6ICcnOyAKICAgICAgJGFkZHRleHQgPSBpc3NldCgkYXR0clsncmVxdWlyZWQnXSkgPyAkYWRkdGV4dCAuICcgcmVxdWlyZWQ9InJlcXVpcmVkIicgOiAnJzsgCgogICAgICAkb1snbGFiZWwnXSA9ICRtb2QtPkNyZWF0ZUxhYmVsRm9ySW5wdXQoJGlkLCAkbmFtZSwgJG1vZC0+TGFuZygkYXR0clsnbGFiZWwnXSkpOwogICAgICAkb1snZmllbGQnXSA9ICRtb2QtPkNyZWF0ZUlucHV0RW1haWwoJGlkLCAkbmFtZSwgJHZhbHVlLCAkc2l6ZSwgJG1heGxlbmd0aCwgJGFkZHRleHQpOwoKICAgICAgcmV0dXJuICRvOwogICB9CgogICBwcml2YXRlIGZ1bmN0aW9uIGlucHV0bnVtYmVyRWxlbWVudCgkbW9kLCAkaWQsICRuYW1lLCAkYXR0cikKICAgewogICAgICAkdmFsdWUgPSBpc3NldCgkYXR0clsndmFsdWUnXSkgPyAkYXR0clsndmFsdWUnXSA6ICcnOyAKICAgICAgJGFkZHRleHQgPSBpc3NldCgkYXR0clsnYWRkdGV4dCddKSA/ICRhdHRyWydhZGR0ZXh0J10gOiAnJzsgCiAgICAgICRhZGR0ZXh0ID0gaXNzZXQoJGF0dHJbJ3N0ZXAnXSkgPyAkYWRkdGV4dCAuICcgc3RlcD0iJy4gJGF0dHJbJ3N0ZXAnXSAuJyInIDogJGFkZHRleHQ7IAogICAgICAkYWRkdGV4dCA9IGlzc2V0KCRhdHRyWydtaW4nXSkgPyAkYWRkdGV4dCAuICcgbWluPSInLiAkYXR0clsnbWluJ10gLiciJyA6ICRhZGR0ZXh0OyAKICAgICAgJGFkZHRleHQgPSBpc3NldCgkYXR0clsnbWF4J10pID8gJGFkZHRleHQgLiAnIG1heD0iJy4gJGF0dHJbJ21heCddIC4nIicgOiAkYWRkdGV4dDsgCiAgICAgICRhZGR0ZXh0ID0gaXNzZXQoJGF0dHJbJ3JlcXVpcmVkJ10pID8gJGFkZHRleHQgLiAnIHJlcXVpcmVkPSJyZXF1aXJlZCInIDogJGFkZHRleHQ7IAoKICAgICAgJG9bJ2xhYmVsJ10gPSAkbW9kLT5DcmVhdGVMYWJlbEZvcklucHV0KCRpZCwgJG5hbWUsICRtb2QtPkxhbmcoJGF0dHJbJ2xhYmVsJ10pKTsKICAgICAgJG9bJ2ZpZWxkJ10gPSAkbW9kLT5DcmVhdGVJbnB1dE51bWJlciAoJGlkLCAkbmFtZSwgJHZhbHVlLCAkYWRkdGV4dCk7CgogICAgICByZXR1cm4gJG87CiAgIH0KCiAgIHByaXZhdGUgZnVuY3Rpb24gaW5wdXR0ZWxFbGVtZW50KCRtb2QsICRpZCwgJG5hbWUsICRhdHRyKQogICB7CiAgICAgICR2YWx1ZSA9IGlzc2V0KCRhdHRyWyd2YWx1ZSddKSA/ICRhdHRyWyd2YWx1ZSddIDogJyc7IAogICAgICAkc2l6ZSA9IGlzc2V0KCRhdHRyWydzaXplJ10pID8gJGF0dHJbJ3NpemUnXSA6ICcnOyAKICAgICAgJG1heGxlbmd0aCA9IGlzc2V0KCRhdHRyWydtYXhsZW5ndGgnXSkgPyAkYXR0clsnbWF4bGVuZ3RoJ10gOiAnJzsgCiAgICAgICRhZGR0ZXh0ID0gaXNzZXQoJGF0dHJbJ2FkZHRleHQnXSkgPyAkYXR0clsnYWRkdGV4dCddIDogJyc7IAogICAgICAkYWRkdGV4dCA9IGlzc2V0KCRhdHRyWydyZXF1aXJlZCddKSA/ICRhZGR0ZXh0IC4gJyByZXF1aXJlZD0icmVxdWlyZWQiJyA6ICRhZGR0ZXh0OyAKICAgICAgJGFkZHRleHQgPSBpc3NldCgkYXR0clsncGxhY2Vob2xkZXInXSkgPyAkYWRkdGV4dCAuICcgcGxhY2Vob2xkZXI9IicuICRtb2QtPkxhbmcoJGF0dHJbJ3BsYWNlaG9sZGVyJ10pLiciJyA6ICRhZGR0ZXh0OyAKCiAgICAgICRvWydsYWJlbCddID0gJG1vZC0+Q3JlYXRlTGFiZWxGb3JJbnB1dCgkaWQsICRuYW1lLCAkbW9kLT5MYW5nKCRhdHRyWydsYWJlbCddKSk7CiAgICAgICRvWydmaWVsZCddID0gJG1vZC0+Q3JlYXRlSW5wdXRUZWwgKCRpZCwgJG5hbWUsICR2YWx1ZSwgJHNpemUsICRtYXhsZW5ndGgsICRhZGR0ZXh0KTsKCiAgICAgIHJldHVybiAkbzsKICAgfQoKICAgcHJpdmF0ZSBmdW5jdGlvbiBpbnB1dGNoZWNrYm94RWxlbWVudCgkbW9kLCAkaWQsICRuYW1lLCAkYXR0cikKICAgewogICAgICAkdmFsdWUgPSBpc3NldCgkYXR0clsndmFsdWUnXSkgPyAkYXR0clsndmFsdWUnXSA6ICcnOyAKICAgICAgJGFkZHRleHQgPSBpc3NldCgkYXR0clsnYWRkdGV4dCddKSA/ICRhdHRyWydhZGR0ZXh0J10gOiAnJzsgCiAgICAgICRzZWxlY3RlZHZhbHVlID0gaXNzZXQoJGF0dHJbJ3NlbGVjdGVkdmFsdWUnXSkgPyAkYXR0clsnc2VsZWN0ZWR2YWx1ZSddIDogJyc7IAoKICAgICAgJG9bJ2xhYmVsJ10gPSAkbW9kLT5DcmVhdGVMYWJlbEZvcklucHV0KCRpZCwgJG5hbWUsICRtb2QtPkxhbmcoJGF0dHJbJ2xhYmVsJ10pKTsKICAgICAgJG9bJ2ZpZWxkJ10gPSAkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94ICgkaWQsICRuYW1lLCAkdmFsdWUsICRzZWxlY3RlZHZhbHVlLCAkYWRkdGV4dCk7CgogICAgICByZXR1cm4gJG87CiAgIH0KCiAgIHByaXZhdGUgZnVuY3Rpb24gaW5wdXRyYWRpb2dyb3VwRWxlbWVudCgkbW9kLCAkaWQsICRuYW1lLCAkYXR0cikKICAgewogICAgICAkYXJyID0gaXNzZXQoJGF0dHJbJ3ZhbHVlJ10pID8gJGF0dHJbJ3ZhbHVlJ10gOiAnJzsKICAgICAgaWYgKCRhcnIgIT0gJycgJiYgaXNzZXQoJGF0dHJbJ2xhbmcnXSkpCiAgICAgICAgIGZvcmVhY2ggKCRhcnIgYXMgJGsgPT4gJHYpCiAgICAgICAgICAgICR2YWx1ZVskbW9kLT5MYW5nKCRrKV0gPSAkdjsKCiAgICAgICRzZWxlY3RlZHZhbHVlID0gaXNzZXQoJGF0dHJbJ3NlbGVjdGVkdmFsdWUnXSkgPyAkYXR0clsnc2VsZWN0ZWR2YWx1ZSddIDogJyc7CiAgICAgICRhZGR0ZXh0ID0gaXNzZXQoJGF0dHJbJ2FkZHRleHQnXSkgPyAkYXR0clsnYWRkdGV4dCddIDogJyc7CgogICAgICAkb1snbGFiZWwnXSA9ICRtb2QtPkNyZWF0ZUxhYmVsRm9ySW5wdXQoJGlkLCAkbmFtZSwgJG1vZC0+TGFuZygkYXR0clsnbGFiZWwnXSkpOwogICAgICAkb1snZmllbGQnXSA9ICRtb2QtPkNyZWF0ZUlucHV0UmFkaW9Hcm91cCAoJGlkLCAkbmFtZSwgJHZhbHVlLCAkc2VsZWN0ZWR2YWx1ZSwgJycsICRhZGR0ZXh0KTsKCiAgICAgIHJldHVybiAkbzsKICAgfQoKICAgcHJpdmF0ZSBmdW5jdGlvbiBpbnB1dGRyb3Bkb3duRWxlbWVudCgkbW9kLCAkaWQsICRuYW1lLCAkYXR0cikKICAgewogICAgICAkdmFsdWUgPSBpc3NldCgkYXR0clsndmFsdWUnXSkgPyAkYXR0clsndmFsdWUnXSA6ICcnOyAKICAgICAgJGFkZHRleHQgPSBpc3NldCgkYXR0clsnYWRkdGV4dCddKSA/ICRhdHRyWydhZGR0ZXh0J10gOiAnJzsgCgogICAgICAkb1snbGFiZWwnXSA9ICRtb2QtPkNyZWF0ZUxhYmVsRm9ySW5wdXQoJGlkLCAkbmFtZSwgJG1vZC0+TGFuZygkYXR0clsnbGFiZWwnXSkpOwogICAgICAkb1snZmllbGQnXSA9ICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAkbmFtZSwgJGF0dHJbJ2l0ZW1zJ10sIC0xLCAkdmFsdWUsICRhZGR0ZXh0KTsKCiAgICAgIHJldHVybiAkbzsKICAgfQoKICAgcHJpdmF0ZSBmdW5jdGlvbiBpbnB1dHNlbGVjdGxpc3RFbGVtZW50KCRtb2QsICRpZCwgJG5hbWUsICRhdHRyKQogICB7CiAgICAgICRzZWxlY3RlZHZhbHVlID0gaXNzZXQoJGF0dHJbJ3NlbGVjdGVkdmFsdWUnXSkgPyBleHBsb2RlKCcsJywgJGF0dHJbJ3NlbGVjdGVkdmFsdWUnXSkgOiBhcnJheSgpOyAKICAgICAgJHNpemUgPSBpc3NldCgkYXR0clsnc2l6ZSddKSA/ICRhdHRyWydzaXplJ10gOiAyOyAKICAgICAgJGFkZHRleHQgPSBpc3NldCgkYXR0clsnYWRkdGV4dCddKSA/ICRhdHRyWydhZGR0ZXh0J10gOiAnJzsgCiAgICAgICRtdWx0aXBsZSA9IGlzc2V0KCRhdHRyWydtdWx0aXBsZSddKSA/ICRhdHRyWydtdWx0aXBsZSddIDogdHJ1ZTsgCiAgICAgICRvWydsYWJlbCddID0gJG1vZC0+Q3JlYXRlTGFiZWxGb3JJbnB1dCgkaWQsICRuYW1lLCAkbW9kLT5MYW5nKCRhdHRyWydsYWJlbCddKSk7CgogICAgICAvLyBjbXNtcyBpbiBmcm9udCAhPwogICAgICAkbmFtZSA9IChpc3NldCgkYXR0clsnZnJvbnQnXSkpID8gJG5hbWUuJ1tdJyA6ICRuYW1lOwogICAgICAkb1snZmllbGQnXSA9ICRtb2QtPkNyZWF0ZUlucHV0U2VsZWN0TGlzdCAoJGlkLCAkbmFtZSwgJGF0dHJbJ2l0ZW1zJ10sICRzZWxlY3RlZHZhbHVlLCAkc2l6ZSwgJGFkZHRleHQsICRtdWx0aXBsZSk7CgogICAgICByZXR1cm4gJG87CiAgIH0KCiAgIHByaXZhdGUgZnVuY3Rpb24gaW5wdXRzdWJtaXRFbGVtZW50KCRtb2QsICRpZCwgJG5hbWUsICRhdHRyKQogICB7CiAgICAgICRuYW1lID0gaXNzZXQoJGF0dHJbJ25hbWUnXSkgPyAkYXR0clsnbmFtZSddIDogJG5hbWU7IAogICAgICAkYWRkdGV4dCA9IGlzc2V0KCRhdHRyWydhZGR0ZXh0J10pID8gJGF0dHJbJ2FkZHRleHQnXSA6ICcnOyAKCiAgICAgICRvWydidXR0b24nXSA9ICRtb2QtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJG5hbWUsICRtb2QtPkxhbmcoJGF0dHJbJ3ZhbHVlJ10pLCAkYWRkdGV4dCk7CgogICAgICByZXR1cm4gJG87CiAgIH0KCiAgIHByaXZhdGUgZnVuY3Rpb24gaW5wdXRyZXNldEVsZW1lbnQoJG1vZCwgJGlkLCAkbmFtZSwgJGF0dHIpCiAgIHsKICAgICAgJG5hbWUgPSBpc3NldCgkYXR0clsnbmFtZSddKSA/ICRhdHRyWyduYW1lJ10gOiAkbmFtZTsgCiAgICAgICRhZGR0ZXh0ID0gaXNzZXQoJGF0dHJbJ2FkZHRleHQnXSkgPyAkYXR0clsnYWRkdGV4dCddIDogJyc7IAoKICAgICAgJG9bJ2J1dHRvbiddID0gJG1vZC0+Q3JlYXRlSW5wdXRSZXNldCgkaWQsICRuYW1lLCAkbW9kLT5MYW5nKCRhdHRyWyd2YWx1ZSddKSwgJGFkZHRleHQpOwoKICAgICAgcmV0dXJuICRvOwogICB9CgogICBwcml2YXRlIGZ1bmN0aW9uIGJhY2tlbmRmb3JtRWxlbWVudCgkbW9kLCAkaWQsICRyZXR1cm5pZCwgJGF0dHIpCiAgIHsKICAgICAgJGFjdGlvbiA9IGlzc2V0KCRhdHRyWydhY3Rpb24nXSkgPyAkYXR0clsnYWN0aW9uJ10gOiAnJzsgCiAgICAgICRtZXRob2QgPSBpc3NldCgkYXR0clsnbWV0aG9kJ10pID8gJGF0dHJbJ21ldGhvZCddIDogJ3Bvc3QnOyAKICAgICAgJGVuY3R5cGUgPSBpc3NldCgkYXR0clsnZW5jdHlwZSddKSA/ICRhdHRyWydlbmN0eXBlJ10gOiAnbXVsdGlwYXJ0L2Zvcm0tZGF0YSc7IAogICAgICAkaW5saW5lID0gaXNzZXQoJGF0dHJbJ2lubGluZSddKSA/ICRhdHRyWydpbmxpbmUnXSA6ICcnOyAKICAgICAgJGlkc3VmZml4ID0gaXNzZXQoJGF0dHJbJ2lkc3VmZml4J10pID8gJGF0dHJbJ2lkc3VmZml4J10gOiAnJzsgCiAgICAgICRwYXJhbXMgPSBpc3NldCgkYXR0clsncGFyYW1zJ10pID8gJGF0dHJbJ3BhcmFtcyddIDogYXJyYXkoKTsgCiAgICAgICRleHRyYSA9IGlzc2V0KCRhdHRyWydleHRyYSddKSA/ICRhdHRyWydleHRyYSddIDogJyc7IAoKICAgICAgJGV4dHJhID0gaXNzZXQoJGF0dHJbJ25hbWUnXSkgPyAkZXh0cmEgLiAnIG5hbWU9IicuICRhdHRyWyduYW1lJ10gLiciJyA6ICRleHRyYTsgCgogICAgICAkb1snc3RhcnQnXSA9ICRtb2QtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICRhY3Rpb24sICRyZXR1cm5pZCwgJG1ldGhvZCwgJGVuY3R5cGUsICRpbmxpbmUsICRpZHN1ZmZpeCwgJHBhcmFtcywgJGV4dHJhKTsKICAgICAgJG9bJ2VuZCddID0gJG1vZC0+Q3JlYXRlRm9ybUVuZCgpOwoKICAgICAgcmV0dXJuICRvOwogICB9CgogICBwcml2YXRlIGZ1bmN0aW9uIGZyb250ZW5kZm9ybUVsZW1lbnQoJG1vZCwgJGlkLCAkcmV0dXJuaWQsICRhdHRyKQogICB7CiAgICAgICRhY3Rpb24gPSBpc3NldCgkYXR0clsnYWN0aW9uJ10pID8gJGF0dHJbJ2FjdGlvbiddIDogJyc7IAogICAgICAkbWV0aG9kID0gaXNzZXQoJGF0dHJbJ21ldGhvZCddKSA/ICRhdHRyWydtZXRob2QnXSA6ICdwb3N0JzsgCiAgICAgICRlbmN0eXBlID0gaXNzZXQoJGF0dHJbJ2VuY3R5cGUnXSkgPyAkYXR0clsnZW5jdHlwZSddIDogJ211bHRpcGFydC9mb3JtLWRhdGEnOyAKICAgICAgJGlubGluZSA9IGlzc2V0KCRhdHRyWydpbmxpbmUnXSkgPyAkYXR0clsnaW5saW5lJ10gOiAnJzsgCiAgICAgICRpZHN1ZmZpeCA9IGlzc2V0KCRhdHRyWydpZHN1ZmZpeCddKSA/ICRhdHRyWydpZHN1ZmZpeCddIDogJyc7IAogICAgICAkcGFyYW1zID0gaXNzZXQoJGF0dHJbJ3BhcmFtcyddKSA/ICRhdHRyWydwYXJhbXMnXSA6IGFycmF5KCk7IAogICAgICAkZXh0cmEgPSBpc3NldCgkYXR0clsnZXh0cmEnXSkgPyAkYXR0clsnZXh0cmEnXSA6ICcnOyAKICAgICAgJGV4dHJhID0gaXNzZXQoJGF0dHJbJ25hbWUnXSkgPyAkZXh0cmEgLiAnIG5hbWU9IicuICRhdHRyWyduYW1lJ10gLiciJyA6ICRleHRyYTsgCgogICAgICAkb1snc3RhcnQnXSA9ICRtb2QtPkNyZWF0ZUZyb250ZW5kRm9ybVN0YXJ0KCRpZCwgJHJldHVybmlkLCAkYWN0aW9uLCAkbWV0aG9kLCAkZW5jdHlwZSwgJGlubGluZSwgJGlkc3VmZml4LCAkcGFyYW1zLCAkZXh0cmEpOwogICAgICAkb1snZW5kJ10gPSAkbW9kLT5DcmVhdGVGb3JtRW5kKCk7CgogICAgICByZXR1cm4gJG87CiAgIH0KCiAgIHByaXZhdGUgZnVuY3Rpb24gbWVzc2FnZUVsZW1lbnQoJG1vZCwgJGlkLCAkcmV0dXJuaWQsICRhdHRyKQogICB7CiAgICAgICRvWyd0ZXh0J10gPSAkbW9kLT5MYW5nKCRhdHRyWyd2YWx1ZSddKTsKCiAgICAgIHJldHVybiAkbzsKICAgfQp9]]></data>
	</file>
	<file>
	  <filename>/lib/class.EFAGISmsLight_front.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIEVGQUdJU21zTGlnaHRfZnJvbnQKewogICBwcm90ZWN0ZWQgJGlkID0gZmFsc2U7ICAKICAgcHJvdGVjdGVkICRyZXR1cm5pZCA9IGZhbHNlOwogICBwcm90ZWN0ZWQgJHBhcmFtcyA9IGZhbHNlOyAKCiAgIHByaXZhdGUgJGNmZyA9IGFycmF5KAogICAgICAnbW9kdWxlJyA9PiAnRUZBR0lTbXNMaWdodCcsCiAgICAgICd0aXRsZScgPT4gJ1JlY2lwaWVudHMnLAogICAgICAndGFibGUnID0+ICdFRkFHSVNtc0xpZ2h0X3JlY2lwaWVudHMnCiAgICk7CgogICBwcml2YXRlICRmbGRzID0gYXJyYXkoICAgICAKICAgICAgJ2lkeCcgPT4gYXJyYXkoJ2NyZWF0ZSc9PidpbnB1dGhpZGRlbicpLAogICAgICAnY3JlYXRlZCcgPT4gYXJyYXkoJ2NyZWF0ZSc9PidpbnB1dGhpZGRlbicpLAogICAgICAnbW9kaWZpZWQnID0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXRoaWRkZW4nKSwKICAgICAgJ21vZGlmaWVkX2J5JyA9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0aGlkZGVuJyksIAogICAgICAvLydyZWNpcGllbnRfbG9naW4nID0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXR0ZXh0JywgJ2xhYmVsJz0+J1JlY2lwaWVudCBsb2dpbicsICdzaXplJz0+MjUsICdtYXhsZW5ndGgnPT4yNSwgJ3JlcXVpcmVkJz0+JyonKSwKICAgICAgLy8ncmVjaXBpZW50X3Bhc3N3b3JkJyA9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0cGFzc3dvcmQnLCAnbGFiZWwnPT4nUmVjaXBpZW50IHBhc3N3b3JkJywgJ3NpemUnPT4yNSwgJ21heGxlbmd0aCc9PjI1LCAncmVxdWlyZWQnPT4nKicpLCAKICAgICAgJ3JlY2lwaWVudF9maXJzdG5hbWUnID0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXR0ZXh0JywgJ2xhYmVsJz0+J1JlY2lwaWVudCBmaXJzdG5hbWUnLCAnc2l6ZSc9PjI1LCAnbWF4bGVuZ3RoJz0+MjU1LCAncmVxdWlyZWQnPT4nKicpLAogICAgICAncmVjaXBpZW50X25hbWUnID0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXR0ZXh0JywgJ2xhYmVsJz0+J1JlY2lwaWVudCBuYW1lJywgJ3NpemUnPT4yNSwgJ21heGxlbmd0aCc9PjI1NSwgJ3JlcXVpcmVkJz0+JyonKSwKICAgICAgJ3JlY2lwaWVudF9tb2JpbCcgPT4gYXJyYXkoJ2NyZWF0ZSc9PidpbnB1dHRlbCcsICdsYWJlbCc9PidSZWNpcGllbnQgbW9iaWwnLCAnc2l6ZSc9PjI1LCAnbWF4bGVuZ3RoJz0+MjU1LCAncmVxdWlyZWQnPT4nKicpLAogICAgICAncmVjaXBpZW50X2VtYWlsJyA9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0ZW1haWwnLCAnbGFiZWwnPT4nUmVjaXBpZW50IGVtYWlsJywgJ3NpemUnPT4yNSwgJ21heGxlbmd0aCc9PjI1NSksICAgIAogICAgICAncmVjaXBpZW50X2dyb3VwJyA9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0c2VsZWN0bGlzdCcsICdmcm9udCc9PjEsICdsYWJlbCc9PidSZWNpcGllbnQgR3JvdXAocyknLCAnc2l6ZSc9PjUsICdtdWx0aXBsZSc9PnRydWUsICdyZXF1aXJlZCc9PicqJyksCiAgICAgICdyZWNpcGllbnRfYWN0aXZlJyA9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0aGlkZGVuJyksCiAgICAgICdyZWNpcGllbnRfY29kZScgPT4gYXJyYXkoJ2NyZWF0ZSc9PidpbnB1dGhpZGRlbicpLAogICAgICAnc3VibWl0JyA9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0c3VibWl0JywgJ3ZhbHVlJz0+J0J1dHRvbiBTZW5kJyksCiAgICAgICdmb3JtJyAgID0+IGFycmF5KCdjcmVhdGUnPT4nZnJvbnRlbmRmb3JtJywgJ2FjdGlvbic9PidkZWZhdWx0JywgJ25hbWUnPT4nZ3JvdXBzJykKICAgKTsKCiAgIHByaXZhdGUgJGZsZHMyID0gYXJyYXkoICAKICAgICAgJ2lkeCcgPT4gYXJyYXkoJ2NyZWF0ZSc9PidpbnB1dGhpZGRlbicpLAogICAgICAnbW9kaWZpZWQnID0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXRoaWRkZW4nKSwKICAgICAgJ3JlY2lwaWVudF9jb2RlX2NoZWNrJyA9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0dGV4dCcsICdsYWJlbCc9PidSZWNpcGllbnQgY29kZScsICdzaXplJz0+MjUsICdtYXhsZW5ndGgnPT4yNTUsICdyZXF1aXJlZCc9PicqJyksCiAgICAgICdzdWJtaXQnID0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXRzdWJtaXQnLCAndmFsdWUnPT4nQnV0dG9uIFNlbmQnKSwKICAgICAgJ2Zvcm0nICAgPT4gYXJyYXkoJ2NyZWF0ZSc9Pidmcm9udGVuZGZvcm0nLCAnYWN0aW9uJz0+J2RlZmF1bHQnLCAnbmFtZSc9Pidncm91cHMnKQogICApOwoKICAgLyoqCiAgICogQ29uc3RydWN0b3IKICAgKgogICAqLwoKICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRpZCA9IGZhbHNlLCAkcmV0dXJuaWQgPSBmYWxzZSwgJHBhcmFtcyA9IGZhbHNlKQogICB7CiAgICAgICR0aGlzLT5tb2QgPSBjYWxsX3VzZXJfZnVuYyhhcnJheSgkdGhpcy0+Y2ZnWydtb2R1bGUnXSwgJ0dldE1vZHVsZUluc3RhbmNlJyksICR0aGlzLT5jZmdbJ21vZHVsZSddKTsKICAgICAgJHRoaXMtPmlkID0gJGlkOwogICAgICAkdGhpcy0+cmV0dXJuaWQgPSAkcmV0dXJuaWQ7CiAgICAgICR0aGlzLT5wYXJhbXMgPSAkcGFyYW1zOyAgIAogICAgICAkdGhpcy0+bm9kZSA9ICRwYXJhbXNbJ25vZGUnXTsgICAKICAgICAgJHRoaXMtPmZsZHNbJ3JlY2lwaWVudF9ncm91cCddWydpdGVtcyddID0gRUZBR0lTbXNMaWdodF9PcGVyYXRpb25zOjpzZWxlY3RSZWNvcmRzRm9yTGlzdCgnRUZBR0lTbXNMaWdodF9ncm91cHMnLCAnZ3JvdXBfbmFtZScsIGFycmF5KCdncm91cF9hY3RpdmUnPT4xLCAnZ3JvdXBfdHlwZSc9PjEpKTsKICAgICAgJHRoaXMtPm1vZC0+SW5jbHVkZVRlbXBsYXRlKCk7CiAgIH0KCiAgIC8qKgogICAqIEFjdGlvbiA6IHVzZXJJbnNjcmlwdGlvbgogICAqCiAgICovCgogICBwdWJsaWMgZnVuY3Rpb24gdXNlckluc2NyaXB0aW9uKCkKICAgewogICAgICAvLyBzdWJtaXQgaW5zY3JpcHRpb24KICAgICAgaWYgKGlzc2V0KCR0aGlzLT5wYXJhbXNbJ3N1Ym1pdCddKSkKICAgICAgeyAgICAgICAgCiAgICAgICAgIC8vIGdvdG8gc3RlcCBvbmUKICAgICAgICAgaWYgKCR0aGlzLT5wYXJhbXNbJ3N0ZXAnXSA9PSAxKQogICAgICAgICAgICAkb3V0cHV0ID0gc2VsZjo6c3RlcE9uZSgpOwoKICAgICAgICAgLy8gZ290byBzdGVwIHR3bwogICAgICAgICBpZiAoJHRoaXMtPnBhcmFtc1snc3RlcCddID09IDIpCiAgICAgICAgICAgICRvdXRwdXQgPSBzZWxmOjpzdGVwVHdvKCk7CgogICAgICAvLyBjcmVhdGUgZm9ybSBpbnNjcmlwdGlvbgogICAgICB9IGVsc2UgewoKICAgICAgICAgLy8gY3JlYXRlIGZvcm0KICAgICAgICAgJG91dHB1dCA9IHNlbGY6OmNyZWF0ZUZvcm1JbnNlcnRSZWNpcGllbnQoKTsKICAgICAgfQoKICAgICAgLy8gcmV0dXJuCiAgICAgIHJldHVybiAkdGhpcy0+cmVzID0gJG91dHB1dDsKICAgfQoKICAgLyoqCiAgICogRnVuY3Rpb24gOiBzdGVwT25lCiAgICoKICAgKi8gIAogICAKICAgcHJpdmF0ZSBmdW5jdGlvbiBzdGVwT25lKCkKICAgewogICAgICAvLyBjaGVjayB2YWx1ZQogICAgICAkcmVzID0gRUZBR0lTbXNMaWdodF9WYWxpZGF0ZUZvcm06OnZhbGlkYXRlRmllbGRzKCR0aGlzLT5tb2QsICR0aGlzLT5mbGRzLCAkdGhpcy0+cGFyYW1zKTsKCiAgICAgIC8vIGNoZWNrIHR5cGUgOjogZXJyb3IgLSByZWxvYWQgZm9ybSB3aXRoIHZhbHVlIGFuZCBtZXNzYWdlCiAgICAgIGlmICgkcmVzWydtc2dUeXBlJ10gPT0gMSkKICAgICAgICAgJG91dHB1dCA9IHNlbGY6OmNyZWF0ZUZvcm1JbnNlcnRSZWNpcGllbnQoJHJlcyk7CgogICAgICAvLyBjaGVjayBjYXB0Y2hhIChvbmx5IHRoaXMgbW91ZHVsZSBmb3IgdGhlIG1vbWVudCkKICAgICAgaWYgKCR0aGlzLT5tb2QtPkdldFByZWZlcmVuY2UoJ3ByZWZlcmVuY2VzX2NhcHRjaGEnKSAhPSAtMSAmJiAkcmVzWydtc2dUeXBlJ10gPT0gMikKICAgICAgewogICAgICAgICAkcmVzID0gRUZBR0lTbXNMaWdodF9DYXB0Y2hhOjpjaGVja0NhcHRjaGEoCiAgICAgICAgICAgICR0aGlzLT5tb2QsCiAgICAgICAgICAgICR0aGlzLT5wYXJhbXNbJ3JlY2lwaWVudF9jYXB0Y2hhJ10sIAogICAgICAgICAgICAkX1NFU1NJT05bJ3JlY2lwaWVudF9jYXB0Y2hhJ10KICAgICAgICAgKTsKCiAgICAgICAgIGlmICgkcmVzWydtc2dUeXBlJ10gPT0gMSkKICAgICAgICAgewogICAgICAgICAgICAkcmVzWydtc2dUZXh0J10gPSAkcmVzWydtc2dUZXh0J107CiAgICAgICAgICAgICRvdXRwdXQgPSBzZWxmOjpjcmVhdGVGb3JtSW5zZXJ0UmVjaXBpZW50KCRyZXMpOwogICAgICAgICB9CiAgICAgIH0KCiAgICAgIC8vIGNoZWNrIHR5cGUgOjogbm8gZXJyb3IKICAgICAgaWYgKCRyZXNbJ21zZ1R5cGUnXSA9PSAyKQogICAgICB7ICAgICAgICAgICAKICAgICAgICAgLy8gc2VhcmNoIHJlY2lwaWVudF9tb2JpbAogICAgICAgICAkcmVzID0gRUZBR0lTbXNMaWdodF9PcGVyYXRpb25zOjpsb2FkUmVjb3JkRXh0ZW5kKCAKICAgICAgICAgICAgJHRoaXMtPmNmZ1sndGFibGUnXSwgCiAgICAgICAgICAgICdpZHgnLCAKICAgICAgICAgICAgYXJyYXkoJ3JlY2lwaWVudF9tb2JpbCc9PiR0aGlzLT5wYXJhbXNbJ3JlY2lwaWVudF9tb2JpbCddKQogICAgICAgICApOwoKICAgICAgICAgLy8gcmVjaXBpZW50IG1vYmlsIGV4aXN0CiAgICAgICAgIGlmICgkcmVzWydjb3VudCddID4gMCkKICAgICAgICAgewogICAgICAgICAgICAkcmVzWydtc2dUeXBlJ10gPSAxOwogICAgICAgICAgICAkcmVzWydtc2dUZXh0J10gPSAkdGhpcy0+bW9kLT5MYW5nKCdSZWNpcGllbnQgbW9iaWwgYWxyZWFkeSBleGlzdHMhJyk7CiAgICAgICAgICAgICRvdXRwdXQgPSBzZWxmOjpjcmVhdGVGb3JtSW5zZXJ0UmVjaXBpZW50KCRyZXMpOwogICAgICAgICAKICAgICAgICAgLy8gaW5zZXJ0IHJlY2lwaWVudCB3aXRoIG5vIGFjdGl2ZQogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkdGhpcy0+cGFyYW1zWydjcmVhdGVkJ10gPSBkYXRlKCdZLW0tZCBIOmk6cycpOwogICAgICAgICAgICAkdGhpcy0+cGFyYW1zWydtb2RpZmllZCddID0gZGF0ZSgnWS1tLWQgSDppOnMnKTsKICAgICAgICAgICAgJHRoaXMtPnBhcmFtc1snbW9kaWZpZWRfYnknXSA9IDA7CiAgICAgICAgICAgICR0aGlzLT5wYXJhbXNbJ3JlY2lwaWVudF9hY3RpdmUnXSA9IDA7CiAgICAgICAgICAgICR0aGlzLT5wYXJhbXNbJ3JlY2lwaWVudF9jb2RlJ10gPSBtdF9yYW5kKDEwMDAsOTk5OSk7CiAgICAgICAgICAgICRzR3JvdXAgPSAnJzsKICAgICAgICAgICAgZm9yZWFjaCAoJHRoaXMtPnBhcmFtc1sncmVjaXBpZW50X2dyb3VwJ10gYXMgJGsgPT4gJHYpCiAgICAgICAgICAgICAgJHNHcm91cCAuPSAkdi4nLCc7CiAgICAgICAgICAgICRzR3JvdXAgPSBzdWJzdHJfcmVwbGFjZSgkc0dyb3VwLCAnJywgLTEpOwogICAgICAgICAgICAkdGhpcy0+cGFyYW1zWydyZWNpcGllbnRfZ3JvdXAnXSA9ICRzR3JvdXA7CgogICAgICAgICAgICAkcmVzID0gRUZBR0lTbXNMaWdodF9PcGVyYXRpb25zOjppbnNlcnRSZWNvcmQKICAgICAgICAgICAgKAogICAgICAgICAgICAgICAkdGhpcy0+bW9kLCAKICAgICAgICAgICAgICAgJHRoaXMtPmNmZywgCiAgICAgICAgICAgICAgICR0aGlzLT5mbGRzLCAKICAgICAgICAgICAgICAgJHRoaXMtPnBhcmFtcwogICAgICAgICAgICApOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8gaWR4IG5ldyByZWNpcGllbnQKICAgICAgICAgICAgaWYgKCRyZXNbJ21zZ1R5cGUnXSA9PSAyKQogICAgICAgICAgICAgICAkdGhpcy0+cGFyYW1zWydpZHgnXSA9ICRyZXNbJ2lkeCddOwoKICAgICAgICAgICAgLy8gc2VuZCBjb2RlCiAgICAgICAgICAgIGlmICgkcmVzWydtc2dUeXBlJ10gPT0gMikKICAgICAgICAgICAgICAgJHJlcyA9IEVGQUdJU21zTGlnaHRfb3ZoX29wczo6dGVsU21zVXNlclNlbmQoCiAgICAgICAgICAgICAgICAgICR0aGlzLT5tb2QtPkdldFByZWZlcmVuY2UoJ3VzZXJfbG9naW4nKSwgCiAgICAgICAgICAgICAgICAgICR0aGlzLT5tb2QtPkdldFByZWZlcmVuY2UoJ3VzZXJfcGFzc3dvcmQnKSwgCiAgICAgICAgICAgICAgICAgICR0aGlzLT5tb2QtPkdldFByZWZlcmVuY2UoJ3Ntc19hY2NvdW50JyksIAogICAgICAgICAgICAgICAgICAkdGhpcy0+bW9kLT5HZXRQcmVmZXJlbmNlKCdzZW5kZXJfcGhvbmUnKSwgCiAgICAgICAgICAgICAgICAgICR0aGlzLT5wYXJhbXNbJ3JlY2lwaWVudF9tb2JpbCddLCAKICAgICAgICAgICAgICAgICAgJHRoaXMtPnBhcmFtc1sncmVjaXBpZW50X2NvZGUnXQogICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgLy8gZGVsZXRlIGNvZGUgaW4gdGhlIHBhcmFtcwogICAgICAgICAgICAkdGhpcy0+cGFyYW1zWydyZWNpcGllbnRfY29kZSddID0gbnVsbDsKCiAgICAgICAgICAgIC8vIGVycm9yCiAgICAgICAgICAgIGlmICgkcmVzWydtc2dUeXBlJ10gPT0gMSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAkcmVzWydtc2dUZXh0J10gPSAkdGhpcy0+bW9kLT5MYW5nKCRyZXNbJ21zZ1RleHQnXSk7CiAgICAgICAgICAgICAgICRvdXRwdXQgPSBzZWxmOjpjcmVhdGVGb3JtSW5zZXJ0UmVjaXBpZW50KCRyZXMpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBnb3RvIHZhbGlkIHJlY2lwaWVudCBmb3JtCiAgICAgICAgICAgIGlmICgkcmVzWydtc2dUeXBlJ10gPT0gMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAkcmVzWydtc2dUZXh0J10gPSAkdGhpcy0+bW9kLT5MYW5nKCdDb2RlIHNlbmRpbmcnKTsKICAgICAgICAgICAgICAgJG91dHB1dCA9IHNlbGY6OmNyZWF0ZUZvcm1WYWxpZFJlY2lwaWVudCgkcmVzKTsgCiAgICAgICAgICAgIH0KICAgICAgICAgfSAgICAgICAgIAogICAgICB9CgogICAgICAvLyByZXR1cm4KICAgICAgcmV0dXJuICRvdXRwdXQ7CiAgIH0KCiAgIC8qKgogICAqIEZ1bmN0aW9uIDogc3RlcFR3bwogICAqCiAgICovCgogICBwcml2YXRlIGZ1bmN0aW9uIHN0ZXBUd28oKQogICB7CiAgICAgIC8vIGNoZWNrIHZhbHVlCiAgICAgICRyZXMgPSBFRkFHSVNtc0xpZ2h0X1ZhbGlkYXRlRm9ybTo6dmFsaWRhdGVGaWVsZHMoJHRoaXMtPm1vZCwgJHRoaXMtPmZsZHMyLCAkdGhpcy0+cGFyYW1zKTsKCiAgICAgIC8vIGNoZWNrIHR5cGUgZXJyb3IgLSByZWxvYWQgZm9ybSB3aXRoIHZhbHVlIGFuZCBtZXNzYWdlCiAgICAgIGlmICgkcmVzWydtc2dUeXBlJ10gPT0gMSkKICAgICAgICAgJG91dHB1dCA9IHNlbGY6OmNyZWF0ZUZvcm1WYWxpZFJlY2lwaWVudCgkcmVzKTsKCiAgICAgIC8vIHNlYXJjaCByZWNpcGllbnRfY29kZQogICAgICBpZiAoJHJlc1snbXNnVHlwZSddID09IDIpCiAgICAgICAgICRyZXMgPSBFRkFHSVNtc0xpZ2h0X09wZXJhdGlvbnM6OmxvYWRSZWNvcmRFeHRlbmQKICAgICAgICAgKAogICAgICAgICAgICAkdGhpcy0+Y2ZnWyd0YWJsZSddLCAKICAgICAgICAgICAgJ2lkeCcsIAogICAgICAgICAgICBhcnJheSgnaWR4Jz0+JHRoaXMtPnBhcmFtc1snaWR4J10sICdyZWNpcGllbnRfY29kZSc9PiR0aGlzLT5wYXJhbXNbJ3JlY2lwaWVudF9jb2RlX2NoZWNrJ10pCiAgICAgICAgICk7CgogICAgICAvLyBlcnJvciByZWNpcGllbnQgY29kZQogICAgICBpZiAoJHJlc1snY291bnQnXSAhPSAxKQogICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAkcmVzWydtc2dUZXh0J10gPSAkdGhpcy0+bW9kLT5sYW5nKCdJbnZhbGlkIGNvZGUnKTsKICAgICAgICAgJG91dHB1dCA9IHNlbGY6OmNyZWF0ZUZvcm1WYWxpZFJlY2lwaWVudCgkcmVzKTsKCiAgICAgIH0gZWxzZSB7ICAgICAgICAgICAgICAgCiAgICAgICAgICR0aGlzLT5wYXJhbXNbJ21vZGlmaWVkJ10gPSBkYXRlKCdZLW0tZCBIOmk6cycpOwogICAgICAgICAkdGhpcy0+cGFyYW1zWydyZWNpcGllbnRfYWN0aXZlJ10gPSAxOwogICAgICAgICAkdGhpcy0+cGFyYW1zWydyZWNpcGllbnRfY29kZSddID0gbnVsbDsKCiAgICAgICAgICRyZXMgPSBFRkFHSVNtc0xpZ2h0X09wZXJhdGlvbnM6OnVwZGF0ZVJlY29yZEV4dGVuZCgKICAgICAgICAgICAgJHRoaXMtPm1vZCwgCiAgICAgICAgICAgICR0aGlzLT5jZmcsIAogICAgICAgICAgICBhcnJheSgnbW9kaWZpZWQnLCAncmVjaXBpZW50X2FjdGl2ZScsICdyZWNpcGllbnRfY29kZScpLCAKICAgICAgICAgICAgJHRoaXMtPnBhcmFtcywgCiAgICAgICAgICAgICdpZHgnLCAkdGhpcy0+cGFyYW1zWydpZHgnXSk7CiAgICAgICAgIAogICAgICAgICBpZiAoJHJlc1snbXNnVHlwZSddID09IDEpCiAgICAgICAgICAgICRyZXNbJ21zZ1RleHQnXSA9ICR0aGlzLT5tb2QtPkxhbmcoJ1NvcnJ5LCB0aGVyZSBpcyBhIHByb2JsZW0hJyk7CgogICAgICAgICBpZiAoJHJlc1snbXNnVHlwZSddID09IDIpCiAgICAgICAgIHsKICAgICAgICAgICAgJHJlcyA9IEVGQUdJU21zTGlnaHRfT3BlcmF0aW9uczo6bG9hZFJlY29yZEV4dGVuZAogICAgICAgICAgICAoCiAgICAgICAgICAgICAgICR0aGlzLT5jZmdbJ3RhYmxlJ10sIAogICAgICAgICAgICAgICAncmVjaXBpZW50X21vYmlsLCByZWNpcGllbnRfZmlyc3RuYW1lLCByZWNpcGllbnRfbmFtZSwgcmVjaXBpZW50X2VtYWlsLCByZWNpcGllbnRfZ3JvdXAnLCAKICAgICAgICAgICAgICAgYXJyYXkoJ2lkeCc9PiR0aGlzLT5wYXJhbXNbJ2lkeCddKQogICAgICAgICAgICApOwogICAgICAgICAgICAkcmVzWydtc2dUZXh0J10gPSAkdGhpcy0+bW9kLT5MYW5nKCdHb29kLCB5b3VyIGFjY291bnQgaXMgYWN0aXZlLicpOwogICAgICAgICB9CgogICAgICAgICAvLyBzdGVwIGZpbmFsCiAgICAgICAgICRvdXRwdXQgPSBzZWxmOjpyZXN1bWVSZWNpcGllbnRJbnNjcmlwdGlvbigkcmVzKTsKICAgICAgfQoKICAgICAgLy8gcmV0dXJuCiAgICAgIHJldHVybiAkb3V0cHV0OwogICB9CgogICAvKioKICAgKiBGdW5jdGlvbiA6IGNyZWF0ZUZvcm1JbnNlcnRSZWNpcGllbnQKICAgKgogICAqLwoKICAgcHJpdmF0ZSBmdW5jdGlvbiBjcmVhdGVGb3JtSW5zZXJ0UmVjaXBpZW50KCRyZXM9JycpCiAgIHsKICAgICAgLy8gdmFsdWVzCiAgICAgIGlmIChpc3NldCgkdGhpcy0+cGFyYW1zWydzdWJtaXQnXSkpCiAgICAgICAgIGZvcmVhY2ggKCR0aGlzLT5mbGRzIGFzICRrID0+ICR2KSAKICAgICAgICAgICAgaWYgKCRrIT0gJ2Zvcm0nICYmICRrICE9ICdzdWJtaXQnICYmICRrICE9ICdjYW5jZWwnKQogICAgICAgICAgICAgICAkdGhpcy0+Zmxkc1ska11bJ3ZhbHVlJ10gPSB0cmltKCR0aGlzLT5wYXJhbXNbJGtdKTsKCiAgICAgIC8vIGlmIGNhcHRjaGEgKG9ubHkgdGhpcyBtb2R1bGUgZm9yIHRoZSBtb21lbnQpCiAgICAgIGlmICgkdGhpcy0+bW9kLT5HZXRQcmVmZXJlbmNlKCdwcmVmZXJlbmNlc19jYXB0Y2hhJykgIT0gLTEpCiAgICAgICAgICR0aGlzLT5mbGRzWydyZWNpcGllbnRfY2FwdGNoYSddID0gYXJyYXkoCiAgICAgICAgICAgICdjcmVhdGUnPT4naW5wdXR0ZXh0JywgCiAgICAgICAgICAgICdsYWJlbCc9PidSZWNpcGllbnQgQ2FwdGNoYScsIAogICAgICAgICAgICAnc2l6ZSc9PjUsICdtYXhsZW5ndGgnPT41LCAKICAgICAgICAgICAgJ3JlcXVpcmVkJz0+JyonKTsKICAgICAgCiAgICAgIC8vIGNyZWF0ZSBmb3JtCiAgICAgICRvID0gRUZBR0lTbXNMaWdodF9DcmVhdGVGb3JtOjpjcmVhdGVGb3JtRWxlbWVudCgKICAgICAgICAgJHRoaXMtPm1vZCwgCiAgICAgICAgICR0aGlzLT5pZCwgCiAgICAgICAgICR0aGlzLT5yZXR1cm5pZCwgCiAgICAgICAgICR0aGlzLT5mbGRzLCAKICAgICAgICAgJHRoaXMtPmNmZywgCiAgICAgICAgICR0aGlzLT5wYXJhbXMpOyAgICAgCiAgICAgIAogICAgICAvLyBhZGQgZmllbGRzZXQKICAgICAgJG9bJ3JlY2lwaWVudF9pbnNjcmlwdGlvbiddWydmaWVsZHNldCddID0gJHRoaXMtPm1vZC0+Q3JlYXRlRmllbGRzZXRTdGFydCgkdGhpcy0+aWQsICdyZWNpcGllbnRfaW5zY3JpcHRpb24nLCAkdGhpcy0+bW9kLT5MYW5nKCdSZWNpcGllbnQgaW5zY3JpcHRpb24nKSwgJycsICcnKTsKICAgICAgJG9bJ3JlY2lwaWVudF9pbmZvcm1hdGlvbnMnXVsnZmllbGRzZXQnXSA9ICR0aGlzLT5tb2QtPkNyZWF0ZUZpZWxkc2V0U3RhcnQoJHRoaXMtPmlkLCAncmVjaXBpZW50X2luZm9ybWF0aW9ucycsICR0aGlzLT5tb2QtPkxhbmcoJ1JlY2lwaWVudCBpbmZvcm1hdGlvbnMnKSwgJycsICcnKTsKICAgICAgJG9bJ3JlY2lwaWVudF9pZGVudGlmaWVycyddWydmaWVsZHNldCddID0gJHRoaXMtPm1vZC0+Q3JlYXRlRmllbGRzZXRTdGFydCgkdGhpcy0+aWQsICdyZWNpcGllbnRfaWRlbnRpZmllcnMnLCAkdGhpcy0+bW9kLT5MYW5nKCdSZWNpcGllbnQgaWRlbnRpZmllcnMnKSwgJycsICcnKTsKICAgICAgJG9bJ2VuZCddWydmaWVsZHNldCddID0gJHRoaXMtPm1vZC0+Q3JlYXRlRmllbGRzZXRFbmQoKTsKCiAgICAgIC8vIGFkZCBzdGVwCiAgICAgICRvWydzdGVwJ11bJ2Fib3V0J10gPSAkdGhpcy0+bW9kLT5MYW5nKCdTdGVwIG9uJywgJzEnKSAuICcyJzsKICAgICAgJG9bJ3N0ZXAnXVsndmFsdWUnXSA9IDE7CiAgICAgICRvWydzdGVwJ11bJ2ZpZWxkJ10gPSAkdGhpcy0+bW9kLT5DcmVhdGVJbnB1dEhpZGRlbigKICAgICAgICAgJHRoaXMtPmlkLCAKICAgICAgICAgJ3N0ZXAnLCAKICAgICAgICAgJG9bJ3N0ZXAnXVsndmFsdWUnXSk7CgogICAgICAvLyBjYXB0Y2hhIHZhbHVlCiAgICAgIGlmICgkdGhpcy0+bW9kLT5HZXRQcmVmZXJlbmNlKCdwcmVmZXJlbmNlc19jYXB0Y2hhJykgIT0gLTEpCiAgICAgICAgICRvWydyZWNpcGllbnRfY2FwdGNoYSddWydxdWVzdGlvbiddID0gRUZBR0lTbXNMaWdodF9DYXB0Y2hhOjpnZXRDYXB0Y2hhKCR0aGlzLT5tb2QpOwogICAgCiAgICAgIC8vIHJlc3BvbnNlIChlcnJvcikgaWYgc3VibWl0CiAgICAgIGlmICgkcmVzWydtc2dUeXBlJ10gPT0gMSkgIAogICAgICB7IAogICAgICAgICAkb1snbXNnVHlwZSddID0gJHJlc1snbXNnVHlwZSddOwogICAgICAgICAkb1snbXNnVGV4dCddID0gJHJlc1snbXNnVGV4dCddOwogICAgICB9CgogICAgICAvLyBzbWFydHkKICAgICAgJHRoaXMtPm1vZC0+c21hcnR5LT5hc3NpZ24oJ28nLCAkbyk7CgogICAgICAvLyB0ZW1wbGF0ZQogICAgICAkdGVtcGxhdGUgPSAoaXNzZXQoJHRoaXMtPnBhcmFtc1sndGVtcGxhdGUnXSkpIAogICAgICAgICA/ICR0aGlzLT5wYXJhbXNbJ3RlbXBsYXRlJ10gCiAgICAgICAgIDogJHRoaXMtPm1vZC0+R2V0UHJlZmVyZW5jZSgndGVtcGxhdGVfZGVmYXVsdCcpOyAKCiAgICAgIC8vIG91dHB1dAogICAgICAkb3V0cHV0ID0gJHRoaXMtPm1vZC0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCR0ZW1wbGF0ZSk7CgogICAgICAvLyByZXR1cm4KICAgICAgcmV0dXJuICRvdXRwdXQ7CiAgIH0KCiAgIC8qKgogICAqIEZ1bmN0aW9uIDogY3JlYXRlRm9ybVZhbGlkUmVjaXBpZW50CiAgICoKICAgKi8KCiAgIHByaXZhdGUgZnVuY3Rpb24gY3JlYXRlRm9ybVZhbGlkUmVjaXBpZW50KCRyZXM9JycpCiAgIHsKICAgICAgLy8gdmFsdWVzCiAgICAgIGZvcmVhY2ggKCR0aGlzLT5mbGRzMiBhcyAkayA9PiAkdikgCiAgICAgICAgIGlmICgkayE9ICdmb3JtJyAmJiAkayAhPSAnc3VibWl0JyAmJiAkayAhPSAnY2FuY2VsJyAmJiAkayAhPScnKQogICAgICAgICAgICAkdGhpcy0+ZmxkczJbJGtdWyd2YWx1ZSddID0gdHJpbSgkdGhpcy0+cGFyYW1zWyRrXSk7CiAgIAogICAgICAvLyBjcmVhdGUgZm9ybQogICAgICAkbyA9IEVGQUdJU21zTGlnaHRfQ3JlYXRlRm9ybTo6Y3JlYXRlRm9ybUVsZW1lbnQoJHRoaXMtPm1vZCwgJHRoaXMtPmlkLCAkdGhpcy0+cmV0dXJuaWQsICR0aGlzLT5mbGRzMiwgJHRoaXMtPmNmZywgJHRoaXMtPnBhcmFtcyk7ICAgICAKCiAgICAgIC8vIGFkZCBzdGVwCiAgICAgICRvWydzdGVwJ11bJ2Fib3V0J10gPSAkdGhpcy0+bW9kLT5MYW5nKCdTdGVwIG9uJywgJzInKSAuICcyJzsKICAgICAgJG9bJ3N0ZXAnXVsndmFsdWUnXSA9IDI7ICAKICAgICAgJG9bJ3N0ZXAnXVsnZmllbGQnXSA9ICR0aGlzLT5tb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCR0aGlzLT5pZCwgJ3N0ZXAnLCAkb1snc3RlcCddWyd2YWx1ZSddKTsKCiAgICAgIC8vIHJlc3BvbnNlCiAgICAgICRvWydtc2dUeXBlJ10gPSAkcmVzWydtc2dUeXBlJ107CiAgICAgICRvWydtc2dUZXh0J10gPSAkcmVzWydtc2dUZXh0J107CgogICAgICAvLyBzbWFydHkKICAgICAgJHRoaXMtPm1vZC0+c21hcnR5LT5hc3NpZ24oJ28nLCAkbyk7CgogICAgICAvLyB0ZW1wbGF0ZQogICAgICAkdGVtcGxhdGUgPSAoaXNzZXQoJHRoaXMtPnBhcmFtc1sndGVtcGxhdGUnXSkpID8gJHRoaXMtPnBhcmFtc1sndGVtcGxhdGUnXSA6ICR0aGlzLT5tb2QtPkdldFByZWZlcmVuY2UoJ3RlbXBsYXRlX2RlZmF1bHQnKTsgCgogICAgICAvLyBvdXRwdXQKICAgICAgJG91dHB1dCA9ICR0aGlzLT5tb2QtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgkdGVtcGxhdGUpOwoKICAgICAgLy8gcmV0dXJuCiAgICAgIHJldHVybiAkb3V0cHV0OwogICB9CgogICAvKioKICAgKiBGdW5jdGlvbiA6IHJlc3VtZVJlY2lwaWVudEluc2NyaXB0aW9uCiAgICoKICAgKi8KCiAgIHByaXZhdGUgZnVuY3Rpb24gcmVzdW1lUmVjaXBpZW50SW5zY3JpcHRpb24oJHJlcykKICAgewogICAgICAvLyByZXNwb25zZQogICAgICAkb1sncmVjaXBpZW50X3N1bW1hcnknXSA9ICR0aGlzLT5tb2QtPkxhbmcoJ1N1bW1hcnkgaW5mb3JtYXRpb25zJyk7CiAgICAgICRvWydyZWNpcGllbnRfbmFtZSddWydsYWJlbCddID0gJHRoaXMtPm1vZC0+TGFuZygnUmVjaXBpZW50IG5hbWUnKTsKICAgICAgJG9bJ3JlY2lwaWVudF9maXJzdG5hbWUnXVsnbGFiZWwnXSA9ICR0aGlzLT5tb2QtPkxhbmcoJ1JlY2lwaWVudCBmaXJzdG5hbWUnKTsKICAgICAgJG9bJ3JlY2lwaWVudF9tb2JpbCddWydsYWJlbCddID0gJHRoaXMtPm1vZC0+TGFuZygnUmVjaXBpZW50IG1vYmlsJyk7CiAgICAgICRvWydyZWNpcGllbnRfZW1haWwnXVsnbGFiZWwnXSA9ICR0aGlzLT5tb2QtPkxhbmcoJ1JlY2lwaWVudCBlbWFpbCcpOwogICAgICAkb1sncmVjaXBpZW50X2dyb3VwJ11bJ2xhYmVsJ10gPSAkdGhpcy0+bW9kLT5MYW5nKCdSZWNpcGllbnQgR3JvdXAocyknKTsKICAgICAgJG9bJ3JlY2lwaWVudF9uYW1lJ11bJ2ZpZWxkJ10gPSAkcmVzWydyZXMnXVsncmVjaXBpZW50X25hbWUnXTsKICAgICAgJG9bJ3JlY2lwaWVudF9maXJzdG5hbWUnXVsnZmllbGQnXSA9ICRyZXNbJ3JlcyddWydyZWNpcGllbnRfZmlyc3RuYW1lJ107CiAgICAgICRvWydyZWNpcGllbnRfbW9iaWwnXVsnZmllbGQnXSA9ICRyZXNbJ3JlcyddWydyZWNpcGllbnRfbW9iaWwnXTsKICAgICAgJG9bJ3JlY2lwaWVudF9lbWFpbCddWydmaWVsZCddID0gJHJlc1sncmVzJ11bJ3JlY2lwaWVudF9lbWFpbCddOwogICAgICAKICAgICAgLy8gZ3JvdXAocykKICAgICAgJGFHcm91cCA9IGV4cGxvZGUoJywnLCAkcmVzWydyZXMnXVsncmVjaXBpZW50X2dyb3VwJ10pOwogICAgICBmb3JlYWNoICgkYUdyb3VwIGFzICRrID0+ICR2KQogICAgICAgICAkc0dyb3VwW10gPSBhcnJheV9zZWFyY2goJHYsICR0aGlzLT5mbGRzWydyZWNpcGllbnRfZ3JvdXAnXVsnaXRlbXMnXSk7CiAgICAgICRvWydyZWNpcGllbnRfZ3JvdXAnXVsnZmllbGQnXSA9ICRzR3JvdXA7CgogICAgICAvLyBtZXNzYWdlCiAgICAgICRvWydtc2dUZXh0J10gPSAkcmVzWydtc2dUZXh0J107CgogICAgICAvLyBhZGQgc3RlcAogICAgICAkb1snc3RlcCddWyd2YWx1ZSddID0gMzsgCgogICAgICAvLyBzbWFydHkKICAgICAgJHRoaXMtPm1vZC0+c21hcnR5LT5hc3NpZ24oJ28nLCAkbyk7CgogICAgICAvLyB0ZW1wbGF0ZQogICAgICAkdGVtcGxhdGUgPSAoaXNzZXQoJHRoaXMtPnBhcmFtc1sndGVtcGxhdGUnXSkpIAogICAgICAgICA/ICR0aGlzLT5wYXJhbXNbJ3RlbXBsYXRlJ10gCiAgICAgICAgIDogJHRoaXMtPm1vZC0+R2V0UHJlZmVyZW5jZSgndGVtcGxhdGVfZGVmYXVsdCcpOyAKCiAgICAgIC8vIG91dHB1dAogICAgICAkb3V0cHV0ID0gJHRoaXMtPm1vZC0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCR0ZW1wbGF0ZSk7CgogICAgICAvLyByZXR1cm4KICAgICAgcmV0dXJuICRvdXRwdXQ7CiAgIH0KCiAgIC8qKgogICAqIEZ1bmN0aW9uIDogc2VhcmNoQWRkcmVzc0lwCiAgICoKICAgKi8KCiAgIC8qcHJpdmF0ZSBmdW5jdGlvbiBzZWFyY2hBZGRyZXNzSXAoKQogICB7CiAgICAgIC8vIGNoZWNrIGFkZHJlc3MgaXAgZm9yIGNvdW50ZXIKICAgICAgaWYoaXNzZXQoJF9TRVJWRVJbJ0hUVFBfWF9GT1JXQVJERURfRk9SJ10pKQogICAgICB7ICAKICAgICAgICAgJGFkZHJlc3NfaXAgPSAkX1NFUlZFUlsnSFRUUF9YX0ZPUldBUkRFRF9GT1InXTsgCiAgICAgIH0gZWxzZWlmIChpc3NldCgkX1NFUlZFUlsnSFRUUF9DTElFTlRfSVAnXSkpIHsgIAogICAgICAgICAkYWRkcmVzc19pcCA9ICRfU0VSVkVSWydIVFRQX0NMSUVOVF9JUCddOwogICAgICB9IGVsc2UgeyAKICAgICAgICAgJGFkZHJlc3NfaXAgPSAkX1NFUlZFUlsnUkVNT1RFX0FERFInXTsKICAgICAgfSAKCiAgICAgIC8vIHJldHVybgogICAgICByZXR1cm4gJGFkZHJlc3NfaXA7CiAgIH0qLwp9]]></data>
	</file>
	<file>
	  <filename>/lib/class.EFAGISmsLight_groups.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIEVGQUdJU21zTGlnaHRfZ3JvdXBzCnsKCXByb3RlY3RlZCAkaWQgPSBmYWxzZTsJCglwcm90ZWN0ZWQgJHJldHVybmlkID0gZmFsc2U7Cglwcm90ZWN0ZWQgJHBhcmFtcyA9IGZhbHNlOwkKCglwcml2YXRlICRjZmcgPSBhcnJheSgKCQknbW9kdWxlJyA9PiAnRUZBR0lTbXNMaWdodCcsCgkJJ3RpdGxlJyA9PiAnR3JvdXBzJywKCQkndGFibGUnID0+ICdFRkFHSVNtc0xpZ2h0X2dyb3VwcycsCgkJJ2FkbWluX3BhbmVsX3RlbXBsYXRlJyA9PiAnYWRtaW5fcGFuZWxfZ3JvdXBzLnRwbCcsCgkJJ2FjdGlvbicgPT4gYXJyYXkoJ2FkZCc9PnRydWUsICdlZGl0Jz0+J3RydWUnLCAnZGVsZXRlJz0+dHJ1ZSkKCSk7CgoJcHJpdmF0ZSAkZmxkcyA9IGFycmF5KAoJCSdpZHgnID0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXRoaWRkZW4nLCAndmFsdWUnPT4tMSwgJ2xhYmVsJz0+J0dyb3VwIElEJywgJ2RhdGF0YWJsZSc9PjEpLAoJCSdjcmVhdGVkJyA9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0aGlkZGVuJyksCgkJJ21vZGlmaWVkJyA9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0aGlkZGVuJyksCgkJJ21vZGlmaWVkX2J5JyA9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0aGlkZGVuJyksCgoJCSdncm91cF9uYW1lJyA9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0dGV4dCcsICdsYWJlbCc9PidHcm91cCBuYW1lJywgJ3NpemUnPT4yNSwgJ21heGxlbmd0aCc9PjI1NSwgJ3JlcXVpcmVkJz0+JyonLCAnZGF0YXRhYmxlJz0+MSksCgkJJ2dyb3VwX3R5cGUnID0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXRkcm9wZG93bicsICdsYWJlbCc9PidHcm91cCB0eXBlJywgJ2RhdGF0YWJsZSc9PjEpLAoJCSdncm91cF9kZWZhdWx0JyA9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0Y2hlY2tib3gnLCAnYWN0aW9uJz0+J21ha2VkZWZhdWx0JywgJ2xhYmVsJz0+J0RlZmF1bHQnLCAndmFsdWUnPT4xLCAndmFsdWVub25lJz0+MCwgJ3NlbGVjdGVkdmFsdWUnPT4wLCAnZGF0YXRhYmxlJz0+MSksCgkJJ2dyb3VwX2FjdGl2ZScgPT4gYXJyYXkoJ2NyZWF0ZSc9PidpbnB1dGNoZWNrYm94JywgJ2FjdGlvbic9PidtYWtlYWN0aXZlJywgJ2xhYmVsJz0+J0FjdGl2ZScsICd2YWx1ZSc9PjEsICd2YWx1ZW5vbmUnPT4wLCAnc2VsZWN0ZWR2YWx1ZSc9PjEsICdkYXRhdGFibGUnPT4xKSwKCQknZ3JvdXBfZGVzYycgPT4gYXJyYXkoJ2NyZWF0ZSc9PidpbnB1dHRleHQnLCAnbGFiZWwnPT4nR3JvdXAgZGVzY3JpcHRpb24nLCAnc2l6ZSc9PjI1LCAnbWF4bGVuZ3RoJz0+MjU1KSwKCgkJJ2NhbmNlbCcgPT4gYXJyYXkoJ2NyZWF0ZSc9PidpbnB1dHN1Ym1pdCcsICd2YWx1ZSc9PidCdXR0b24gQ2FuY2VsJyksCgkJJ3N1Ym1pdCcgPT4gYXJyYXkoJ2NyZWF0ZSc9PidpbnB1dHN1Ym1pdCcsICd2YWx1ZSc9PidCdXR0b24gU2VuZCcpLAoJCSdmb3JtJwk9PiBhcnJheSgnY3JlYXRlJz0+J2JhY2tlbmRmb3JtJywgJ2FjdGlvbic9PidpbnNlcnR1cGRhdGUnLCAnbmFtZSc9Pidncm91cHMnKQoJKTsKCglwcml2YXRlICRkZWxldGUgPSBhcnJheSAoCgkJJ2lkeCcJPT4gYXJyYXkoJ2NyZWF0ZSc9PidpbnB1dGhpZGRlbicpLAoJCSdub2RlJwk9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0aGlkZGVuJywgJ3ZhbHVlJz0+J2dyb3VwcycpLAoJCSdjYW5jZWwnID0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXRzdWJtaXQnLCAndmFsdWUnPT4nQnV0dG9uIENhbmNlbCcpLAoJCSdzdWJtaXQnID0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXRzdWJtaXQnLCAndmFsdWUnPT4nQnV0dG9uIERlbGV0ZScpLAoJCSdmb3JtJwk9PiBhcnJheSgnY3JlYXRlJz0+J2JhY2tlbmRmb3JtJywgJ2FjdGlvbic9PidkZWxldGUnKQoJKTsKCgkvKioKCSogQ29uc3RydWN0b3IKCSoKCSovCgoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRpZCA9IGZhbHNlLCAkcmV0dXJuaWQgPSBmYWxzZSwgJHBhcmFtcyA9IGZhbHNlKQoJewoJCSR0aGlzLT5pZCA9ICRpZDsKCQkkdGhpcy0+cmV0dXJuaWQgPSAkcmV0dXJuaWQ7CgkJJHRoaXMtPnBhcmFtcyA9ICRwYXJhbXM7CQoJCSR0aGlzLT5ub2RlID0gJHBhcmFtc1snbm9kZSddOwkKCQkkdGhpcy0+bW9kID0gY2FsbF91c2VyX2Z1bmMoYXJyYXkoJHRoaXMtPmNmZ1snbW9kdWxlJ10sICdHZXRNb2R1bGVJbnN0YW5jZScpLCAkdGhpcy0+Y2ZnWydtb2R1bGUnXSk7CgoJCSR0aGlzLT5hY3RpdmUgPSAnZ3JvdXBfYWN0aXZlJzsKCQkkdGhpcy0+ZGVmYXVsdCA9ICdncm91cF9kZWZhdWx0JzsJCQoJCSR0aGlzLT5mbGRzWydncm91cF90eXBlJ11bJ2l0ZW1zJ10gPSBhcnJheSgKCQkJJHRoaXMtPm1vZC0+TGFuZygnUHVibGljJyk9PjEsIAoJCQkkdGhpcy0+bW9kLT5MYW5nKCdQcml2YXRlJyk9PjIpOwoKCQkkdGhpcy0+bW9kLT5JbmNsdWRlVGVtcGxhdGUoKTsKCX0KCgoJLyoqCgkqIEFjdGlvbiA6IGFkbWluUGFuZWwKCSoKCSogQHJldHVybiBhcnJheQoJKi8KCglwdWJsaWMgZnVuY3Rpb24gYWRtaW5QYW5lbCgpCgl7CQkKCQlpZiAoaXNzZXQoJHRoaXMtPnBhcmFtc1snZGF0YVRhYmxlJ10pKQoJCXsKCQkJZm9yZWFjaCgkX0dFVCBhcyAkaz0+JHYpCgkJCQkkdGhpcy0+cGFyYW1zWyRrXSA9ICR2OwoKCQkJJG91dHB1dCA9IEVGQUdJU21zTGlnaHRfT3BlcmF0aW9uczo6c2VsZWN0UmVjb3JkcygkdGhpcy0+bW9kLCAkdGhpcy0+Y2ZnLCAkdGhpcy0+ZmxkcywgJHRoaXMtPnBhcmFtcywgJHRoaXMtPmlkLCAkdGhpcy0+cmV0dXJuaWQsICR0aGlzLT5ub2RlKTsKCgkJfSBlbHNlIHsKCgkJCS8vIGluc2VydCByZWNvcmQKCQkJaWYoJHRoaXMtPm1vZC0+Q2hlY2tQZXJtaXNzaW9uKCR0aGlzLT5jZmdbJ21vZHVsZSddIC4nIEFkZCcpICYmIGlzc2V0KCR0aGlzLT5jZmdbJ2FjdGlvbiddWydhZGQnXSkpCgkJCQkkb1snYWRkJ10gPSAkdGhpcy0+bW9kLT5DcmVhdGVMaW5rKAoJCQkJCSR0aGlzLT5pZCwgJ2luc2VydHVwZGF0ZScsICR0aGlzLT5yZXR1cm5pZCwgCgkJCQkJJHRoaXMtPm1vZC0+TGFuZygnQWRkIGdyb3VwJyksIAoJCQkJCWFycmF5KCdub2RlJz0+JHRoaXMtPm5vZGUsICdpZHgnPT4tMSksCgkJCQkJJycsICcnLCAnJywnY2xhc3M9InByZXBlbmQgYWRkIicsICcnLCAnJyk7CgoJCQkvLyBjb2x1bW5zIHRpdGxlCgkJCWZvcmVhY2ggKCR0aGlzLT5mbGRzIGFzICRrID0+ICRjKSAKCQkJCWlmIChpc3NldCgkY1snZGF0YXRhYmxlJ10pKQoJCQkJCSRvWyRrXVsnbGFiZWwnXSA9ICR0aGlzLT5tb2QtPkxhbmcoJGNbJ2xhYmVsJ10pOwoKCQkJLy8gaWYgcGVybWlzc2lvbiB0byBkZWxldGUKCQkJaWYoJHRoaXMtPm1vZC0+Q2hlY2tQZXJtaXNzaW9uKCdFRkFHSVNtc0xpZ2h0IERlbGV0ZScpICYmIGlzc2V0KCR0aGlzLT5jZmdbJ2FjdGlvbiddWydkZWxldGUnXSkpCgkJCQkkb1snZGVsZXRlbGluayddWydsYWJlbCddID0gJHRoaXMtPm1vZC0+TGFuZygnRGVsZXRlJyk7CgoJCQkvLyBpZiBwZXJtaXNzaW9uIGRlIGVkaXQKCQkJaWYoJHRoaXMtPm1vZC0+Q2hlY2tQZXJtaXNzaW9uKCdFRkFHSVNtc0xpZ2h0IEVkaXQnKSAmJiBpc3NldCgkdGhpcy0+Y2ZnWydhY3Rpb24nXVsnZWRpdCddKSkKCQkJCSRvWydlZGl0bGluayddWydsYWJlbCddID0gJHRoaXMtPm1vZC0+TGFuZygnRWRpdCcpOwoKCQkJLy8gZm9yIHRhYmxlVG9vbHMKCQkJJG9bJ2ZpbHRlcnMnXSA9ICgkdGhpcy0+bW9kLT5HZXRQcmVmZXJlbmNlKCdwcmVmZXJlbmNlc19kYXRhdGFibGVfY29sb25uZXNfZmlsdGVycycpID09IDEpID8gMSA6ICcnOwoJCQkkb1snbG9hZGluZyddID0gJHRoaXMtPm1vZC0+TGFuZygnTG9hZGluZyBkYXRhIGZyb20gc2VydmVyJyk7CgkJCSRvWydmaWxlbmFtZSddID0gJHRoaXMtPmNmZ1snbW9kdWxlJ10gLicgJy4gJHRoaXMtPm1vZC0+TGFuZygkdGhpcy0+Y2ZnWyd0aXRsZSddKTsKCQkJJG9bJ3RpdGxlbmFtZSddID0gJHRoaXMtPm1vZC0+TGFuZygkdGhpcy0+Y2ZnWyd0aXRsZSddKTsKCQkJJG9bJ3Nob3doaWRlJ10gPSAkdGhpcy0+bW9kLT5MYW5nKCdTaG93IC8gSGlkZScpOwoKCQkJLy8gZmlsdGVyIGxpc3QgZ3JvdXBzCgkJCSR0aGlzLT5mbGRzWydncm91cF90eXBlJ11bJ2l0ZW1zJ11bJHRoaXMtPm1vZC0+TGFuZygnQWxsJyldID0gJyc7CgkJCSRvWydmaWx0ZXInXVsnZ3JvdXBfdHlwZSddID0gJHRoaXMtPm1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkdGhpcy0+aWQsICdncm91cF90eXBlJywgJHRoaXMtPmZsZHNbJ2dyb3VwX3R5cGUnXVsnaXRlbXMnXSk7CgoJCQkvLyBmaWx0ZXIgYWN0aXZlCgkJCSR0aGlzLT5mbGRzWydncm91cF9hY3RpdmUnXVsnaXRlbXMnXSA9IGFycmF5KCR0aGlzLT5tb2QtPkxhbmcoJ1llcycpPT4xLCAkdGhpcy0+bW9kLT5MYW5nKCdObycpPT4wKTsKCQkJJHRoaXMtPmZsZHNbJ2dyb3VwX2FjdGl2ZSddWydpdGVtcyddWyR0aGlzLT5tb2QtPkxhbmcoJ0FsbCcpXSA9ICcnOwoJCQkkb1snZmlsdGVyJ11bJ2dyb3VwX2FjdGl2ZSddID0gJHRoaXMtPm1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkdGhpcy0+aWQsICdncm91cF9hY3RpdmUnLCAkdGhpcy0+Zmxkc1snZ3JvdXBfYWN0aXZlJ11bJ2l0ZW1zJ10pOwoKCQkJLy8gdGl0bGUKCQkJJG9bJ3RpdGxlJ10JPSAkdGhpcy0+bW9kLT5MYW5nKCR0aGlzLT5jZmdbJ3RpdGxlJ10pOwoKCQkJLy8gc21hcnR5CgkJCSR0aGlzLT5tb2QtPnNtYXJ0eS0+YXNzaWduKCdvJywgJG8pOwoKCQkJJG91dHB1dCA9IGFycmF5KCdtc2dUeXBlJz0+MywgJ3Jlc3VsdCc9PiR0aGlzLT5tb2QtPlByb2Nlc3NUZW1wbGF0ZSgkdGhpcy0+Y2ZnWydhZG1pbl9wYW5lbF90ZW1wbGF0ZSddKSk7CQoJCX0KCgkJLy8gcmV0dXJuCQoJCXJldHVybiAkdGhpcy0+cmVzID0gJG91dHB1dDsJCgl9CgoKCS8qKgoJKiBBY3Rpb24gOiBpbnNlcnRVcGRhdGVSZWNvcmQKCSoKCSogQHJldHVybiBhcnJheQoJKi8KCglwdWJsaWMgZnVuY3Rpb24gaW5zZXJ0VXBkYXRlUmVjb3JkKCkKCXsJCgkJLy8gc3VibWl0CgkJaWYgKGlzc2V0KCR0aGlzLT5wYXJhbXNbJ3N1Ym1pdCddKSkJCgkJewoJCQkvLyB2YWxpZGF0ZSB2YWx1ZXMKCQkJJG8gPSBFRkFHSVNtc0xpZ2h0X1ZhbGlkYXRlRm9ybTo6dmFsaWRhdGVGaWVsZHMoJHRoaXMtPm1vZCwgJHRoaXMtPmZsZHMsICR0aGlzLT5wYXJhbXMpOwoKCQkJaWYgKCR0aGlzLT5wYXJhbXNbJ2lkeCddID09IC0xICYmICRvWydtc2dUeXBlJ10gPT0gMikKCQkJCSRvID0gRUZBR0lTbXNMaWdodF9PcGVyYXRpb25zOjppbnNlcnRSZWNvcmQoJHRoaXMtPm1vZCwgJHRoaXMtPmNmZywgJHRoaXMtPmZsZHMsICR0aGlzLT5wYXJhbXMpOwoKCQkJaWYgKCR0aGlzLT5wYXJhbXNbJ2lkeCddID4gMCAmJiAkb1snbXNnVHlwZSddID09IDIpCgkJCQkkbyA9IEVGQUdJU21zTGlnaHRfT3BlcmF0aW9uczo6dXBkYXRlUmVjb3JkKCR0aGlzLT5tb2QsICR0aGlzLT5jZmcsICR0aGlzLT5mbGRzLCAkdGhpcy0+cGFyYW1zKTsKCQkKCQkvLyBjcmVhdGUgdGhlIGZvcm0KCQl9IGVsc2UgewoJCQkkbyA9IEVGQUdJU21zTGlnaHRfQ3JlYXRlRm9ybTo6Y3JlYXRlRm9ybUVsZW1lbnQoJHRoaXMtPm1vZCwgJHRoaXMtPmlkLCAkdGhpcy0+cmV0dXJuaWQsICR0aGlzLT5mbGRzLCAkdGhpcy0+Y2ZnLCAkdGhpcy0+cGFyYW1zKTsKCQkJJG9bJ25vZGUnXVsnZmllbGQnXSA9ICR0aGlzLT5tb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCR0aGlzLT5pZCwgJ25vZGUnLCAkdGhpcy0+bm9kZSk7CgkJfQoKCQkvLyB0aXRsZQoJCWlmICgkdGhpcy0+cGFyYW1zWydpZHgnXSA9PSAtMSkKCQkJJG9bJ2luc2VydFVwZGF0ZSddWyd0aXRsZSddID0gJHRoaXMtPm1vZC0+TGFuZygnQWRkIGdyb3VwJyk7CgkJZWxzZQoJCQkkb1snaW5zZXJ0VXBkYXRlJ11bJ3RpdGxlJ10gPSAkdGhpcy0+bW9kLT5MYW5nKCdFZGl0IGdyb3VwJyk7CgoJCS8vIHNtYXJ0eQkJCgkJJHRoaXMtPm1vZC0+c21hcnR5LT5hc3NpZ24oJ28nLCAkbyk7CgoJCS8vIHRlbXBsYXRlCgkJJHRlbXBsYXRlID0gKCRvWydtc2dUeXBlJ10gPT09IDEgfHwgJG9bJ21zZ1R5cGUnXSA9PT0gMiApID8gJ21lc3NhZ2VfYm94LnRwbCcgOiAkdGhpcy0+Y2ZnWydhZG1pbl9wYW5lbF90ZW1wbGF0ZSddOwoKCQkvLyByZXN1bHQKCQlyZXR1cm4gJHRoaXMtPnJlcyA9IGFycmF5KCdtc2dUeXBlJz0+JG9bJ21zZ1R5cGUnXSwgJ3Jlc3VsdCc9PiR0aGlzLT5tb2QtPlByb2Nlc3NUZW1wbGF0ZSgkdGVtcGxhdGUpKTsKCX0KCgoJLyoqCgkqIEFjdGlvbiA6IGRlbGV0ZVJlY29yZAoJKgoJKiBAcmV0dXJuIGFycmF5CgkqLwoKCXB1YmxpYyBmdW5jdGlvbiBkZWxldGVSZWNvcmQoKQoJewoJCS8vIHN1Ym1pdAoJCWlmIChpc3NldCgkdGhpcy0+cGFyYW1zWydzdWJtaXQnXSkpCQoJCXsKCQkJJG8gPSBFRkFHSVNtc0xpZ2h0X09wZXJhdGlvbnM6OmRlbGV0ZVJlY29yZCgkdGhpcy0+bW9kLCAkdGhpcy0+Y2ZnLCAkdGhpcy0+cGFyYW1zKTsKCgkJLy8gbG9hZCBjb25maXJtCgkJfSBlbHNlIHsKCgkJCSR0aGlzLT5kZWxldGVbJ25vZGUnXVsndmFsdWUnXSA9ICdncm91cHMnOwoJCQkkdGhpcy0+ZGVsZXRlWydpZHgnXVsndmFsdWUnXSA9ICR0aGlzLT5wYXJhbXNbJ2lkeCddOwoJCQkKCQkJJG9bJ21zZ1R5cGUnXSA9IDQ7CgkJCSRvWydjbGFzcyddID0gJHRoaXMtPm5vZGU7CgkJCSRvWydtc2dUZXh0J10gPSAkdGhpcy0+bW9kLT5sYW5nKCdBcmUgeW91IHN1cj8nKTsKCgkJCSRvWydkZWxldGUnXSA9IEVGQUdJU21zTGlnaHRfQ3JlYXRlRm9ybTo6Y3JlYXRlRm9ybUVsZW1lbnQoJHRoaXMtPm1vZCwgJHRoaXMtPmlkLCAkdGhpcy0+cmV0dXJuaWQsICR0aGlzLT5kZWxldGUpOwoJCX0KCgkJLy8gdGl0bGUKCQkkb1snZGVsZXRlJ11bJ3RpdGxlJ10gPSAkdGhpcy0+bW9kLT5MYW5nKCdEZWxldGUgZ3JvdXAnKTsKCgkJLy8gc21hcnR5CgkJJHRoaXMtPm1vZC0+c21hcnR5LT5hc3NpZ24oJ28nLCAkbyk7CgkJCgkJLy8gdGVtcGxhdGUKCQkkdGVtcGxhdGUgPSAoJG9bJ21zZ1R5cGUnXSA9PT0gMSB8fCAkb1snbXNnVHlwZSddID09PSAyICkgPyAnbWVzc2FnZV9ib3gudHBsJyA6ICR0aGlzLT5jZmdbJ2FkbWluX3BhbmVsX3RlbXBsYXRlJ107CgoJCS8vIHJlc3VsdAoJCXJldHVybiAkdGhpcy0+cmVzID0gYXJyYXkoJ21zZ1R5cGUnPT4kb1snbXNnVHlwZSddLCAncmVzdWx0Jz0+JHRoaXMtPm1vZC0+UHJvY2Vzc1RlbXBsYXRlKCR0ZW1wbGF0ZSkpOwoJfQoKCgkvKioKCSogQWN0aW9uIDogbWFrZUFjdGl2ZQoJKgoJKiBAcmV0dXJuIGFycmF5CgkqLwoKCXB1YmxpYyBmdW5jdGlvbiBtYWtlQWN0aXZlKCkKCXsKCQkkbyA9IEVGQUdJU21zTGlnaHRfT3BlcmF0aW9uczo6bWFrZUFjdGl2ZSgkdGhpcy0+Y2ZnLCAkdGhpcy0+YWN0aXZlLCAkdGhpcy0+cGFyYW1zKTsKCgkJLy8gcmVzdWx0CgkJcmV0dXJuICR0aGlzLT5yZXMgPSBhcnJheSgnbXNnVHlwZSc9PiRvWydtc2dUeXBlJ10sICdyZXN1bHQnPT4nJyk7Cgl9CgoKCS8qKgoJKiBBY3Rpb24gOiBtYWtlRGVmYXVsdAoJKgoJKiBAcmV0dXJuIGFycmF5CgkqLwoKCXB1YmxpYyBmdW5jdGlvbiBtYWtlRGVmYXVsdCgpCgl7CgkJJG8gPSBFRkFHSVNtc0xpZ2h0X09wZXJhdGlvbnM6Om1ha2VEZWZhdWx0KCR0aGlzLT5jZmcsICR0aGlzLT5kZWZhdWx0LCAkdGhpcy0+cGFyYW1zKTsKCgkJLy8gcmVzdWx0CgkJcmV0dXJuICR0aGlzLT5yZXMgPSBhcnJheSgnbXNnVHlwZSc9PiRvWydtc2dUeXBlJ10sICdyZXN1bHQnPT4nJyk7Cgl9Cgp9]]></data>
	</file>
	<file>
	  <filename>/lib/class.EFAGISmsLight_historic.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIEVGQUdJU21zTGlnaHRfaGlzdG9yaWMKewoJcHJvdGVjdGVkICRpZCA9IGZhbHNlOwkKCXByb3RlY3RlZCAkcmV0dXJuaWQgPSBmYWxzZTsKCXByb3RlY3RlZCAkcGFyYW1zID0gZmFsc2U7CQoKCXByaXZhdGUgJGNmZyA9IGFycmF5KAoJCSdtb2R1bGUnID0+ICdFRkFHSVNtc0xpZ2h0JywKCQkndGl0bGUnID0+ICdIaXN0b3JpYycsCgkJJ3RhYmxlJyA9PiAnRUZBR0lTbXNMaWdodF9tZXNzYWdlcycsCgkJJ2FkbWluX3BhbmVsX3RlbXBsYXRlJyA9PiAnYWRtaW5fcGFuZWxfaGlzdG9yaWMudHBsJywKCQknYWN0aW9uJyA9PiBhcnJheSgnZGVsZXRlJz0+dHJ1ZSkKCSk7CgoJcHJpdmF0ZSAkZmxkcyA9IGFycmF5KAoJCSdpZHgnID0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXRoaWRkZW4nLCAndmFsdWUnPT4tMSwgJ2xhYmVsJz0+J0dyb3VwIElEJywgJ2RhdGF0YWJsZSc9PjEpLAoJCSdzbXNfaWQnPT4gYXJyYXkoJ2NyZWF0ZSc9PidpbnB1dHRleHQnLCAnbGFiZWwnPT4nU01TIElkJywgJ2RhdGF0YWJsZSc9PjEpLAoJCSdjcmVhdGVkJyA9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0dGV4dCcsICdsYWJlbCc9PidEYXRlJywgJ2RhdGF0YWJsZSc9PjEpLAoJCSdyZWNpcGllbnQnID0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXRoaWRkZW4nLCAnbGFiZWwnPT4nUmVjaXBpZW50JywgJ3JlcXVpcmVkJz0+JyonLCAnZGF0YXRhYmxlJz0+MSksCgkJJ21lc3NhZ2UnID0+IGFycmF5KCdjcmVhdGUnPT4ndGV4dGFyZWEnLCAnbGFiZWwnPT4nTWVzc2FnZScsICdjb2xzJz0+NTAsICdyb3dzJz0+NSwgJ3JlcXVpcmVkJz0+JyonLCAnZGF0YXRhYmxlJz0+MSksCgkJJ3NlbnQnPT4gYXJyYXkoJ2NyZWF0ZSc9PidpbnB1dHRleHQnLCAnbGFiZWwnPT4nQ29uZGl0aW9uJywgJ2RhdGF0YWJsZSc9PjEpLAoJCSdzdGF0dXMnPT4gYXJyYXkoJ2NyZWF0ZSc9PidpbnB1dHRleHQnLCAnbGFiZWwnPT4nU3RhdHVzJywgJ2RhdGF0YWJsZSc9PjEpCQoJKTsKCglwcml2YXRlICRkZWxldGUgPSBhcnJheSAoCgkJJ2lkeCcJPT4gYXJyYXkoJ2NyZWF0ZSc9PidpbnB1dGhpZGRlbicpLAoJCSdub2RlJwk9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0aGlkZGVuJywgJ3ZhbHVlJz0+J2dyb3VwcycpLAoJCSdjYW5jZWwnID0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXRzdWJtaXQnLCAndmFsdWUnPT4nQnV0dG9uIENhbmNlbCcpLAoJCSdzdWJtaXQnID0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXRzdWJtaXQnLCAndmFsdWUnPT4nQnV0dG9uIERlbGV0ZScpLAoJCSdmb3JtJwk9PiBhcnJheSgnY3JlYXRlJz0+J2JhY2tlbmRmb3JtJywgJ2FjdGlvbic9PidkZWxldGUnKQoJKTsKCgkvKioKCSogQ29uc3RydWN0b3IKCSoKCSovCgoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRpZCA9IGZhbHNlLCAkcmV0dXJuaWQgPSBmYWxzZSwgJHBhcmFtcyA9IGZhbHNlKQoJewoJCSR0aGlzLT5pZCA9ICRpZDsKCQkkdGhpcy0+cmV0dXJuaWQgPSAkcmV0dXJuaWQ7CgkJJHRoaXMtPnBhcmFtcyA9ICRwYXJhbXM7CQoJCSR0aGlzLT5ub2RlID0gJHBhcmFtc1snbm9kZSddOwkKCQkkdGhpcy0+bW9kID0gY2FsbF91c2VyX2Z1bmMoYXJyYXkoJHRoaXMtPmNmZ1snbW9kdWxlJ10sICdHZXRNb2R1bGVJbnN0YW5jZScpLCAkdGhpcy0+Y2ZnWydtb2R1bGUnXSk7CgkJCgkJJHRoaXMtPm1vZC0+SW5jbHVkZVRlbXBsYXRlKCk7Cgl9CgoJLyoqCgkqIEFjdGlvbiA6IGFkbWluUGFuZWwKCSoKCSogQHJldHVybiBhcnJheQoJKi8KCglwdWJsaWMgZnVuY3Rpb24gYWRtaW5QYW5lbCgpCgl7CQkKCQlpZiAoaXNzZXQoJHRoaXMtPnBhcmFtc1snZGF0YVRhYmxlJ10pKQoJCXsKCQkJZm9yZWFjaCgkX0dFVCBhcyAkaz0+JHYpCgkJCQkkdGhpcy0+cGFyYW1zWyRrXSA9ICR2OwoJCQkKCQkJJHRlbXAgPSBFRkFHSVNtc0xpZ2h0X09wZXJhdGlvbnM6OnNlbGVjdFJlY29yZHMoJHRoaXMtPm1vZCwgJHRoaXMtPmNmZywgJHRoaXMtPmZsZHMsICR0aGlzLT5wYXJhbXMsICR0aGlzLT5pZCwgJHRoaXMtPnJldHVybmlkLCAkdGhpcy0+bm9kZSk7CgoJCQlmb3JlYWNoICgkdGVtcFsnYWFEYXRhJ10gYXMgJGsgPT4gJHYpIAoJCQl7CgkJCQkkdGVtcFsnYWFEYXRhJ11bJGtdWzZdID0gJHRoaXMtPm1vZC0+TGFuZygkdGVtcFsnYWFEYXRhJ11bJGtdWzZdKTsKCgkJCQlpZiAoJHRlbXBbJ2FhRGF0YSddWyRrXVs1XSA8IDApCgkJCQl7CgkJCQkJJGhpc3RvcnkgPSBFRkFHSVNtc0xpZ2h0X292aF9vcHM6OnRlbFNtc1VzZXJIaXN0b3J5KCR0aGlzLT5tb2QtPkdldFByZWZlcmVuY2UoJ3VzZXJfbG9naW4nKSwgJHRoaXMtPm1vZC0+R2V0UHJlZmVyZW5jZSgndXNlcl9wYXNzd29yZCcpLCAkdGhpcy0+bW9kLT5HZXRQcmVmZXJlbmNlKCdzbXNfYWNjb3VudCcpLCAkdGVtcFsnYWFEYXRhJ11bJGtdWzFdKTsKCgkJCQkJLy8gdG8gbXVsdGlwbGUgc2VydmljZSwgdGhpcyBwYXJ0IGdvIHRvIHNlcnZpY2Vfb3BzCgkJCQkJaWYgKCRoaXN0b3J5WzBdLT5zdGF0dXMgPT0gJ3NlbnQnKQoJCQkJCXsKCQkJCQkJJHRlbXBbJ2FhRGF0YSddWyRrXVs1XSA9IDE7CgkJCQkJCSR0ZW1wWydhYURhdGEnXVska11bNl0gPSAkdGhpcy0+bW9kLT5MYW5nKCRoaXN0b3J5WzBdLT5wdHREZXNjcmlwdGlvbkRldGFpbCk7CgkJCQkJfQoKCQkJCQkkcmV0dmFsID0gJyc7CgkJCQkJLy8kYXJyID0gZXhwbG9kZSgnICcsJGhpc3RvcnlbMF0tPm1lc3NhZ2UpOwoJCQkJCS8vZWNobyAnPHByZT4nOwoJCQkJCS8vcHJpbnRfcigkaGlzdG9yeSk7CgkJCQkJLy9lY2hvICc8L3ByZT4nOwoJCQkJCS8vaWYgKCRhcnJbOV0gPT0gJ2VycjowMDUnKSAkdGVtcFsnYWFEYXRhJ11bJGtdWzVdID0gMDsKCQkJCQkvKmlmICgkYXJyWzldID09ICdlcnI6MDI0JykgewoJCQkJCQlkYXRlX2RlZmF1bHRfdGltZXpvbmVfc2V0KCdVVEMnKTsgCgkJCQkJCSRyZXR2YWwgPSBpbnR2YWwoKGRhdGUydXRpbWUoZXh0cmFjdGRhdGUoJHRlbXBbJ2FhRGF0YSddWyRrXVsyXSkpIAoJCQkJCQkJLSBkYXRlMnV0aW1lKGV4dHJhY3RkYXRlKGRhdGUoWS1tLWQgSDppOnMpKSkpIC8gKDI0ICogMzYwMCkpOwoJCQkJCX0qLwoKCQkJCQkvLyB1cGRhdGUKCQkJCQkkdGhpcy0+cGFyYW1zWydpZHgnXSA9ICR0ZW1wWydhYURhdGEnXVska11bMF07CgkJCQkJJHRoaXMtPnBhcmFtc1snc21zX2lkJ10gPSAkdGVtcFsnYWFEYXRhJ11bJGtdWzFdOwoJCQkJCSR0aGlzLT5wYXJhbXNbJ2NyZWF0ZWQnXSA9ICR0ZW1wWydhYURhdGEnXVska11bMl07CgkJCQkJJHRoaXMtPnBhcmFtc1sncmVjaXBpZW50J10gPSAkdGVtcFsnYWFEYXRhJ11bJGtdWzNdOwoJCQkJCSR0aGlzLT5wYXJhbXNbJ21lc3NhZ2UnXSA9ICR0ZW1wWydhYURhdGEnXVska11bNF0uJyAnLiRyZXR2YWw7CgkJCQkJJHRoaXMtPnBhcmFtc1snc2VudCddID0gJHRlbXBbJ2FhRGF0YSddWyRrXVs1XTsKCQkJCQkkdGhpcy0+cGFyYW1zWydzdGF0dXMnXSA9ICRoaXN0b3J5WzBdLT5wdHREZXNjcmlwdGlvbkRldGFpbDsKCgkJCQkJJHRoaXMtPnBhcmFtc1snc3RhdHVzJ10gPSAoJHRoaXMtPnBhcmFtc1snc3RhdHVzJ10gPT0gJycpID8gJ1NtcyB3YWl0aW5nIG9uIHRoZSBuZXR3b3JrLicgOiAkdGhpcy0+cGFyYW1zWydzdGF0dXMnXTsKCgkJCQkJRUZBR0lTbXNMaWdodF9PcGVyYXRpb25zOjp1cGRhdGVSZWNvcmQoJHRoaXMtPm1vZCwgJHRoaXMtPmNmZywgJHRoaXMtPmZsZHMsICR0aGlzLT5wYXJhbXMpOwoJCQkJfQoJCQl9CgoJCQlyZXR1cm4gJHRoaXMtPnJlcyA9ICR0ZW1wOwoKCQl9IGVsc2UgewoKCQkJLy8gY29sdW1ucyB0aXRsZQoJCQlmb3JlYWNoICgkdGhpcy0+ZmxkcyBhcyAkayA9PiAkYykgCgkJCQlpZiAoaXNzZXQoJGNbJ2RhdGF0YWJsZSddKSkKCQkJCQkkb1ska11bJ2xhYmVsJ10gPSAkdGhpcy0+bW9kLT5MYW5nKCRjWydsYWJlbCddKTsKCgkJCS8vIGlmIHBlcm1pc3Npb24gdG8gZGVsZXRlCgkJCWlmKCR0aGlzLT5tb2QtPkNoZWNrUGVybWlzc2lvbignRUZBR0lTbXNMaWdodCBEZWxldGUnKSAmJiBpc3NldCgkdGhpcy0+Y2ZnWydhY3Rpb24nXVsnZGVsZXRlJ10pKQoJCQkJJG9bJ2RlbGV0ZWxpbmsnXVsnbGFiZWwnXSA9ICR0aGlzLT5tb2QtPkxhbmcoJ0RlbGV0ZScpOwkKCgkJCS8vIGZvciB0YWJsZVRvb2xzCgkJCSRvWydmaWx0ZXJzJ10gPSAoJHRoaXMtPm1vZC0+R2V0UHJlZmVyZW5jZSgncHJlZmVyZW5jZXNfZGF0YXRhYmxlX2NvbG9ubmVzX2ZpbHRlcnMnKSA9PSAxKSA/IDEgOiAnJzsKCQkJJG9bJ2xvYWRpbmcnXSA9ICR0aGlzLT5tb2QtPkxhbmcoJ0xvYWRpbmcgZGF0YSBmcm9tIHNlcnZlcicpOwoJCQkkb1snZmlsZW5hbWUnXSA9ICR0aGlzLT5jZmdbJ21vZHVsZSddIC4nICcuICR0aGlzLT5tb2QtPkxhbmcoJHRoaXMtPmNmZ1sndGl0bGUnXSk7CgkJCSRvWyd0aXRsZW5hbWUnXSA9ICR0aGlzLT5tb2QtPkxhbmcoJHRoaXMtPmNmZ1sndGl0bGUnXSk7CgkJCSRvWydzaG93aGlkZSddID0gJHRoaXMtPm1vZC0+TGFuZygnU2hvdyAvIEhpZGUnKTsKCgkJCS8vIGZpbHRlciBsaXN0IGdyb3VwcwoJCQkkdGhpcy0+Zmxkc1snc21zX3R5cGUnXVsnaXRlbXMnXVskdGhpcy0+bW9kLT5MYW5nKCdBbGwnKV0gPSAnJzsKCQkJJG9bJ2ZpbHRlciddWydzbXNfdHlwZSddID0gJHRoaXMtPm1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkdGhpcy0+aWQsICdzbXNfdHlwZScsICR0aGlzLT5mbGRzWydzbXNfdHlwZSddWydpdGVtcyddKTsKCgkJCS8vIHRpdGxlCgkJCSRvWyd0aXRsZSddCT0gJHRoaXMtPm1vZC0+TGFuZygkdGhpcy0+Y2ZnWyd0aXRsZSddKTsKCgkJCS8vIHNtYXJ0eQoJCQkkdGhpcy0+bW9kLT5zbWFydHktPmFzc2lnbignbycsICRvKTsKCgkJCXJldHVybiAkdGhpcy0+cmVzID0gYXJyYXkoJ21zZ1R5cGUnPT4zLCAncmVzdWx0Jz0+JHRoaXMtPm1vZC0+UHJvY2Vzc1RlbXBsYXRlKCR0aGlzLT5jZmdbJ2FkbWluX3BhbmVsX3RlbXBsYXRlJ10pKTsJCgkJfQoJfQoKCS8qKgoJKiBBY3Rpb24gOiBkZWxldGVSZWNvcmQKCSoKCSogQHJldHVybiBhcnJheQoJKi8KCglwdWJsaWMgZnVuY3Rpb24gZGVsZXRlUmVjb3JkKCkKCXsKCQkvLyBzdWJtaXQKCQlpZiAoaXNzZXQoJHRoaXMtPnBhcmFtc1snc3VibWl0J10pKQkKCQl7CgkJCSRvID0gRUZBR0lTbXNMaWdodF9PcGVyYXRpb25zOjpkZWxldGVSZWNvcmQoJHRoaXMtPm1vZCwgJHRoaXMtPmNmZywgJHRoaXMtPnBhcmFtcyk7CgoJCS8vIGxvYWQgY29uZmlybQoJCX0gZWxzZSB7CgoJCQkkdGhpcy0+ZGVsZXRlWydub2RlJ11bJ3ZhbHVlJ10gPSAnaGlzdG9yaWMnOwoJCQkkdGhpcy0+ZGVsZXRlWydpZHgnXVsndmFsdWUnXSA9ICR0aGlzLT5wYXJhbXNbJ2lkeCddOwoJCQkKCQkJJG9bJ21zZ1R5cGUnXSA9IDQ7CgkJCSRvWydjbGFzcyddID0gJHRoaXMtPm5vZGU7CgkJCSRvWydtc2dUZXh0J10gPSAkdGhpcy0+bW9kLT5sYW5nKCdBcmUgeW91IHN1cj8nKTsKCgkJCSRvWydkZWxldGUnXSA9IEVGQUdJU21zTGlnaHRfQ3JlYXRlRm9ybTo6Y3JlYXRlRm9ybUVsZW1lbnQoJHRoaXMtPm1vZCwgJHRoaXMtPmlkLCAkdGhpcy0+cmV0dXJuaWQsICR0aGlzLT5kZWxldGUpOwoJCX0KCgkJLy8gdGl0bGUKCQkkb1snZGVsZXRlJ11bJ3RpdGxlJ10gPSAkdGhpcy0+bW9kLT5MYW5nKCdEZWxldGUgaGlzdG9yaWMnKTsKCgoJCS8vIHNtYXJ0eQoJCSR0aGlzLT5tb2QtPnNtYXJ0eS0+YXNzaWduKCdvJywgJG8pOwoJCQoJCS8vIHRlbXBsYXRlCgkJJHRlbXBsYXRlID0gKCRvWydtc2dUeXBlJ10gPT09IDEgfHwgJG9bJ21zZ1R5cGUnXSA9PT0gMiApID8gJ21lc3NhZ2VfYm94LnRwbCcgOiAkdGhpcy0+Y2ZnWydhZG1pbl9wYW5lbF90ZW1wbGF0ZSddOwoKCQkvLyByZXN1bHQKCQlyZXR1cm4gJHRoaXMtPnJlcyA9IGFycmF5KCdtc2dUeXBlJz0+JG9bJ21zZ1R5cGUnXSwgJ3Jlc3VsdCc9PiR0aGlzLT5tb2QtPlByb2Nlc3NUZW1wbGF0ZSgkdGVtcGxhdGUpKTsKCX0KfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/class.EFAGISmsLight_messages.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIEVGQUdJU21zTGlnaHRfbWVzc2FnZXMKewoJcHJpdmF0ZSAkY2ZnID0gYXJyYXkoCgkJJ21vZHVsZScgPT4gJ0VGQUdJU21zTGlnaHQnLAoJCSd0aXRsZScgPT4gJ01lc3NhZ2UnLAoJCSd0YWJsZScgPT4gJ0VGQUdJU21zTGlnaHRfbWVzc2FnZXMnLAoJCSdhZG1pbl9wYW5lbF90ZW1wbGF0ZScgPT4gJ2FkbWluX3BhbmVsX21lc3NhZ2VzLnRwbCcKCSk7CgoJcHJpdmF0ZSAkZmxkcyA9IGFycmF5KAoJCSdpZHgnID0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXRoaWRkZW4nLCAndmFsdWUnPT4tMSwgJ2xhYmVsJz0+J0dyb3VwIElEJywgJ2RhdGF0YWJsZSc9PjEpLAoJCSdjcmVhdGVkJyA9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0aGlkZGVuJyksCgkJJ21vZGlmaWVkJyA9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0aGlkZGVuJyksCgkJJ21vZGlmaWVkX2J5JyA9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0aGlkZGVuJyksCgoJCSdyZWNpcGllbnQnID0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXR0ZXh0JywgJ2xhYmVsJz0+J1JlY2lwaWVudCcsICdyZXF1aXJlZCc9PicqJyksCgkJJ21lc3NhZ2UnID0+IGFycmF5KCdjcmVhdGUnPT4ndGV4dGFyZWEnLCAnbGFiZWwnPT4nTWVzc2FnZScsICdjb2xzJz0+NTAsICdyb3dzJz0+NSwgJ3JlcXVpcmVkJz0+JyonLCAnZGF0YXRhYmxlJz0+MSksCgoJCSdzZW5kX3R5cGUnID0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXRyYWRpb2dyb3VwJywgJ2xhYmVsJz0+J1NlbmQgdHlwZScsICd2YWx1ZSc9PmFycmF5KCdNZXNzYWdlIE5vdyc9PjEvKiwgJ01lc3NhZ2UgTGF0ZXInPT4yKi8pLCAnc2VsZWN0ZWR2YWx1ZSc9PjEsICdsYW5nJz0+MSksCgkJJ3Ntc190eXBlJz0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXRkcm9wZG93bicsICdsYWJlbCc9PidTTVMgdHlwZScsICdkYXRhdGFibGUnPT4xKSwKCQkKCQknc21zX2lkJz0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXRoaWRkZW4nKSwKCQknc2VudCc9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0aGlkZGVuJyksCgkJJ3N0YXR1cyc9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0aGlkZGVuJyksCgoJCSdyZXNldHRvZGVmYXVsdCcgPT4gYXJyYXkoJ2NyZWF0ZSc9PidpbnB1dHJlc2V0JywgJ3ZhbHVlJz0+J0J1dHRvbiBSZXNldCcpLAoJCSdzdWJtaXQnID0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXRzdWJtaXQnLCAndmFsdWUnPT4nQnV0dG9uIFNlbmQnKSwKCQknZm9ybScJPT4gYXJyYXkoJ2NyZWF0ZSc9PidiYWNrZW5kZm9ybScsICdhY3Rpb24nPT4nZGVmYXVsdGFkbWluJywgJ25hbWUnPT4nZ3JvdXBzJykKCSk7CgoJcHJpdmF0ZSAkY2ZnMiA9IGFycmF5KAoJCSdtb2R1bGUnID0+ICdFRkFHSVNtc0xpZ2h0JywKCQkndGFibGUnID0+ICdFRkFHSVNtc0xpZ2h0X3JlY2lwaWVudHMnCgkpOwoKCXByaXZhdGUgJGZsZHMyID0gYXJyYXkoCgkJJ2lkeCcgPT4gYXJyYXkoJ2NyZWF0ZSc9PidpbnB1dGhpZGRlbicsICdsYWJlbCc9PidSZWNpcGllbnQgSUQnLCAnZGF0YXRhYmxlJz0+MSksCgkJJ3JlY2lwaWVudF9maXJzdG5hbWUnID0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXR0ZXh0JywgJ2xhYmVsJz0+J1JlY2lwaWVudCBmaXJzdG5hbWUnLCAnZGF0YXRhYmxlJz0+MSksCgkJJ3JlY2lwaWVudF9uYW1lJyA9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0dGV4dCcsICdsYWJlbCc9PidSZWNpcGllbnQgbmFtZScsICdkYXRhdGFibGUnPT4xKSwKCQkncmVjaXBpZW50X21vYmlsJyA9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0dGVsJywgJ2xhYmVsJz0+J1JlY2lwaWVudCBtb2JpbCcsICdkYXRhdGFibGUnPT4xKSwJCQoJCSdyZWNpcGllbnRfZ3JvdXAnID0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXRzZWxlY3RsaXN0JywgJ2xhYmVsJz0+J1JlY2lwaWVudCBHcm91cChzKScsICdkYXRhdGFibGUnPT4xKQoJCSk7CgoJLyoqCgkqIENvbnN0cnVjdG9yCgkqCgkqLwoKCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkaWQgPSBmYWxzZSwgJHJldHVybmlkID0gZmFsc2UsICRwYXJhbXMgPSBmYWxzZSkKCXsKCQkkdGhpcy0+bW9kID0gY2FsbF91c2VyX2Z1bmMoYXJyYXkoJHRoaXMtPmNmZ1snbW9kdWxlJ10sICdHZXRNb2R1bGVJbnN0YW5jZScpLCAkdGhpcy0+Y2ZnWydtb2R1bGUnXSk7CgkJJHRoaXMtPmlkID0gJGlkOwoJCSR0aGlzLT5yZXR1cm5pZCA9ICRyZXR1cm5pZDsKCQkkdGhpcy0+cGFyYW1zID0gJHBhcmFtczsJCgkJJHRoaXMtPm5vZGUgPSAkcGFyYW1zWydub2RlJ107CQoKCQkkdGhpcy0+Zmxkc1snc21zX3R5cGUnXVsnaXRlbXMnXSA9IGFycmF5KCdTdGFuZGFyZCc9PjEsICdGbGFzaCc9PjIsICdTSU0nPT4zKTsKCQkkdGhpcy0+ZmxkczJbJ3JlY2lwaWVudF9ncm91cCddWydpdGVtcyddID0gRUZBR0lTbXNMaWdodF9PcGVyYXRpb25zOjpzZWxlY3RSZWNvcmRzRm9yTGlzdCgnRUZBR0lTbXNMaWdodF9ncm91cHMnLCAnZ3JvdXBfbmFtZScsIGFycmF5KCdncm91cF9hY3RpdmUnPT4xKSk7CgkJJHRoaXMtPm1vZC0+SW5jbHVkZVRlbXBsYXRlKCk7Cgl9CgoJLyoqCgkqIEFjdGlvbiA6IGFkbWluUGFuZWwKCSoKCSogQHJldHVybiBhcnJheSAvIHRwbAoJKi8KCglwdWJsaWMgZnVuY3Rpb24gYWRtaW5QYW5lbCgkanNvbj0nJykKCXsKCQkvLyBzdWJtaXQKCQlpZiAoaXNzZXQoJHRoaXMtPnBhcmFtc1snc3VibWl0J10pKQkKCQl7CgkJCS8vIHZhbGlkYXRlIHZhbHVlcwoJCQkkbyA9IEVGQUdJU21zTGlnaHRfVmFsaWRhdGVGb3JtOjp2YWxpZGF0ZUZpZWxkcygkdGhpcy0+bW9kLCAkdGhpcy0+ZmxkcywgJHRoaXMtPnBhcmFtcyk7CgoJCQlpZiAoJHRoaXMtPnBhcmFtc1snaWR4J10gPT0gLTEgJiYgJG9bJ21zZ1R5cGUnXSA9PSAyKQoJCQl7CgkJCQkkcmVjaXBpZW50cyA9IHN1YnN0cigkdGhpcy0+cGFyYW1zWydyZWNpcGllbnQnXSwgMCwgLTEpOwoJCQkJJHJlY2lwaWVudHMgPSBleHBsb2RlKCcsJywgJHJlY2lwaWVudHMpOwoKCQkJCSR0cmFucyA9IGFycmF5KCImIzkyO24iID0+ICJcbiIsICImIzkyO3IiID0+ICJcciIsICImcXVvdDsiID0+ICJcIiIpOwoJCQkJJG1lc3NhZ2UgPSBzdHJ0cigkdGhpcy0+cGFyYW1zWydtZXNzYWdlJ10sICR0cmFucyk7CgoJCQkJJHJlc3VsdCA9IEVGQUdJU21zTGlnaHRfb3ZoX29wczo6dGVsU21zVXNlck11bHRpU2VuZCgKCQkJCQkkdGhpcy0+bW9kLT5HZXRQcmVmZXJlbmNlKCd1c2VyX2xvZ2luJyksIAoJCQkJCSR0aGlzLT5tb2QtPkdldFByZWZlcmVuY2UoJ3VzZXJfcGFzc3dvcmQnKSwgCgkJCQkJJHRoaXMtPm1vZC0+R2V0UHJlZmVyZW5jZSgnc21zX2FjY291bnQnKSwgCgkJCQkJJHRoaXMtPm1vZC0+R2V0UHJlZmVyZW5jZSgnc2VuZGVyX3Bob25lJyksIAoJCQkJCSRyZWNpcGllbnRzLCAKCQkJCQkkbWVzc2FnZSwKCQkJCQkkdGhpcy0+cGFyYW1zWydzbXNfdHlwZSddKTsKCgkJCQlpZiAoaXNfYXJyYXkoJHJlc3VsdCkpCgkJCQl7CgkJCQkJJHRyYW5zID0gYXJyYXkoIiYjOTI7biIgPT4gIjxiciAvPiIsICImIzkyO3IiID0+ICI8YnIgLz4iLCAiJnF1b3Q7IiA9PiAiXCIiKTsKCQkJCQkkbWVzc2FnZSA9IHN0cnRyKCR0aGlzLT5wYXJhbXNbJ21lc3NhZ2UnXSwgJHRyYW5zKTsKCQkJCQlmb3JlYWNoICgkcmVjaXBpZW50cyBhcyAkayA9PiAkdikgCgkJCQkJewoJCQkJCQkkdGhpcy0+cGFyYW1zWydjcmVhdGVkJ10gPSBkYXRlKCdZLW0tZCBIOmk6cycpOwoJCQkJCQkkdGhpcy0+cGFyYW1zWydtb2RpZmllZCddID0gZGF0ZSgnWS1tLWQgSDppOnMnKTsKCQkJCQkJJHRoaXMtPnBhcmFtc1snbW9kaWZpZWRfYnknXSA9IGdldF91c2VyaWQoKTsKCQkJCQkJJHRoaXMtPnBhcmFtc1sncmVjaXBpZW50J10gPSAkdjsJCQkJCQoJCQkJCQkkdGhpcy0+cGFyYW1zWydzdGF0dXMnXSA9ICdTbXMgd2FpdGluZyBvbiB0aGUgbmV0d29yay4nOwoJCQkJCQkkdGhpcy0+cGFyYW1zWydzbXNfaWQnXSA9ICRyZXN1bHRbJGtdOwoJCQkJCQkkdGhpcy0+cGFyYW1zWydzZW50J10gPSAtMTsKCQkJCQkJJHRoaXMtPnBhcmFtc1snbWVzc2FnZSddID0gJG1lc3NhZ2U7CgkJCQkJCSRvID0gRUZBR0lTbXNMaWdodF9PcGVyYXRpb25zOjppbnNlcnRSZWNvcmQoJHRoaXMtPm1vZCwgJHRoaXMtPmNmZywgJHRoaXMtPmZsZHMsICR0aGlzLT5wYXJhbXMpOwkJCQkKCQkJCQl9CQkJCQkKCgkJCQl9IGVsc2UgewoJCQkJCSRvWydtc2dUeXBlJ10gPSAxOwoJCQkJCSRvWydtc2dUZXh0J10gPSAkcmVzdWx0OwoJCQkJfQkJCQkKCQkJfQoJCQkKCQkJaWYgKCRvWydtc2dUeXBlJ10gPT09IDIpIAoJCQl7CgkJCQkvLyBubyByZWxvYWQgZGF0YVRhYmxlcyBhbmQgcmVmZXNoIGZvcm0KCQkJCSRvWydtc2dUeXBlJ10gPSA2OwoJCQkJJG9bJ21zZ1RleHQnXSA9ICR0aGlzLT5tb2QtPkxhbmcoJ01lc3NhZ2Ugc2VuZGluZycpOwoJCQl9CgkJCgkJCS8vIHNtYXJ0eQkJCgkJCSR0aGlzLT5tb2QtPnNtYXJ0eS0+YXNzaWduKCdvJywgJG8pOwoKCQkJLy8gdGVtcGxhdGUKCQkJJHRlbXBsYXRlID0gKCRvWydtc2dUeXBlJ10gPT09IDEgfHwgJG9bJ21zZ1R5cGUnXSA9PT0gNiApID8gJ21lc3NhZ2VfYm94LnRwbCcgOiAkdGhpcy0+Y2ZnWydhZG1pbl9wYW5lbF90ZW1wbGF0ZSddOwoKCQkJLy8gb3VwdXQKCQkJJG91dHB1dCA9IGFycmF5KCdtc2dUeXBlJz0+JG9bJ21zZ1R5cGUnXSwgJ3Jlc3VsdCc9PiR0aGlzLT5tb2QtPlByb2Nlc3NUZW1wbGF0ZSgkdGVtcGxhdGUpKTsJCgoJCS8vIGRhdGFUYWJsZXMKCQl9IGVsc2UgaWYgKGlzc2V0KCR0aGlzLT5wYXJhbXNbJ2RhdGFUYWJsZSddKSkgewkJCQoJCQkvLyBwYXJhbXMKCQkJZm9yZWFjaCgkX0dFVCBhcyAkaz0+JHYpCgkJCQkkdGhpcy0+cGFyYW1zWyRrXSA9ICR2OwoKCQkJLy8gb3V0cHV0CgkJCSRvdXRwdXQgPSBFRkFHSVNtc0xpZ2h0X09wZXJhdGlvbnM6OnNlbGVjdFJlY29yZHMoJHRoaXMtPm1vZCwgJHRoaXMtPmNmZzIsICR0aGlzLT5mbGRzMiwgJHRoaXMtPnBhcmFtcywgJHRoaXMtPmlkLCAkdGhpcy0+cmV0dXJuaWQsICR0aGlzLT5ub2RlLCBhcnJheSgncmVjaXBpZW50X2FjdGl2ZSc9PjEpKTsKCgkJLy8gY3JlYXRlIGZvcm0gYW5kIGRhdGFUYWJsZXMKCQl9IGVsc2UgewoKCQkJaWYgKCEkdGhpcy0+bW9kLT5DaGVja1Blcm1pc3Npb24oJHRoaXMtPm1vZC0+R2V0TmFtZSgpIC4nIEFkZCcpKSAKCQkJewoJCQkJJG9bJ21zZ1R5cGUnXSA9IC0xOwoJCQkJJG9bJ21zZ1RleHQnXSA9ICR0aGlzLT5tb2QtPkxhbmcoJ05vIHBlcm1pc3Npb25zIHRvIGNyZWF0ZSBtZXNzYWdlIScpOwoKCQkJfSBlbHNlIHsKCgkJCQkvLyBjcmVhdGUgdGhlIGZvcm0gZm9yIHNlbmQgbWVzc2FnZQoJCQkJJG8gPSBFRkFHSVNtc0xpZ2h0X0NyZWF0ZUZvcm06OmNyZWF0ZUZvcm1FbGVtZW50KCR0aGlzLT5tb2QsICR0aGlzLT5pZCwgJHRoaXMtPnJldHVybmlkLCAkdGhpcy0+ZmxkcywgJHRoaXMtPmNmZywgJHRoaXMtPnBhcmFtcyk7CgoJCQkJLy8gYWNjb3VudCBsb2dpbgoJCQkJJHNtc19hY2NvdW50ID0gJHRoaXMtPm1vZC0+R2V0UHJlZmVyZW5jZSgnc21zX2FjY291bnQnKTsKCQkJCSR1c2VyX2xvZ2luID0gJHRoaXMtPm1vZC0+R2V0UHJlZmVyZW5jZSgndXNlcl9sb2dpbicpOwoJCQkJJHVzZXJfcGFzc3dvcmQgPSAkdGhpcy0+bW9kLT5HZXRQcmVmZXJlbmNlKCd1c2VyX3Bhc3N3b3JkJyk7CgoJCQkJLy8gY2hlY2sgLSBmYWxzZQoJCQkJaWYgKCRzbXNfYWNjb3VudCAgPT0gJycgfHwgCSR1c2VyX2xvZ2luID09ICcnIHx8ICR1c2VyX3Bhc3N3b3JkID09ICcnKQoJCQkJewoJCQkJCSRvWydtc2dUeXBlJ10gPSAzOwoJCQkJCSRvWydtc2dUZXh0J10gPSAkdGhpcy0+bW9kLT5MYW5nKCdVbmRlZmluZWQgb3IgYmFkIGFjY291bnQnKTsKCQkJCQkkdGhpcy0+cXVvdGFMZWZ0ID0gMDsKCgkJCQkvLyBjaGVjayAtIHRydWUKCQkJCX0gZWxzZSB7CgoJCQkJCS8vIHF1ZXJ5CgkJCQkJJHJlc3BvbnNlUXVlcnkgPSBFRkFHSVNtc0xpZ2h0X292aF9vcHM6OnRlbFNtc0dldFVzZXJRdW90YUZvclVzZXIoJHNtc19hY2NvdW50LCAkdXNlcl9sb2dpbiwgJHVzZXJfcGFzc3dvcmQpOwoJCQkJCQoJCQkJCS8vIGdvb2QKCQkJCQlpZiAoJHJlc3BvbnNlUXVlcnlbJ21zZ1R5cGUnXSA9PSAwKQoJCQkJCXsKCQkJCQkJJHRoaXMtPnF1b3RhTGVmdCA9ICRyZXNwb25zZVF1ZXJ5WydxdW90YUxlZnQnXTsKCQkJCQkKCQkJCQkvLyBiYWQKCQkJCQl9IGVsc2UgewoJCQkJCQkkb1snbXNnVHlwZSddID0gMzsKCQkJCQkJJG9bJ21zZ1RleHQnXSA9ICRyZXNwb25zZVF1ZXJ5Wydtc2dUZXh0J107CgkJCQkJCSR0aGlzLT5xdW90YUxlZnQgPSAwOwoJCQkJCX0KCQkJCX0KCgkJCQkkb1sndGl0bGUnXQk9ICR0aGlzLT5tb2QtPkxhbmcoJ1dyaXRlIGEgbWVzc2FnZScpOwoJCQkJaWYgKCRvWydtc2dUeXBlJ10gIT0gMykKCQkJCXsKCQkJCQkvLyBhZGQgZWxlbWVudHMgdG8gdGhlIGZvcm0KCQkJCQkkb1sncXVvdGFMZWZ0J11bJ2ZpZWxkc2V0J10gPSAkdGhpcy0+bW9kLT5DcmVhdGVGaWVsZHNldFN0YXJ0KCR0aGlzLT5pZCwgJ3F1b3RhTGVmdCcsICR0aGlzLT5tb2QtPkxhbmcoJ1F1b3RhbGVmdCBJbmZvcm1hdGlvbnMnKSwgJycsICcnKTsKCQkJCQkkb1sncXVvdGFMZWZ0J11bJ2xhYmVsJ10gPSAkdGhpcy0+bW9kLT5MYW5nKCdTTVMgQ3JlZGl0Jyk7CgkJCQkJJG9bJ3F1b3RhTGVmdCddWyd2YWx1ZSddID0gJHRoaXMtPnF1b3RhTGVmdDsKCQkJCQkkb1snYWxsJ10gPSAkdGhpcy0+bW9kLT5MYW5nKCdBbGwnKTsKCQkJCQkkb1snbm9uZSddID0gJHRoaXMtPm1vZC0+TGFuZygnTm9uZScpOwoJCQkJCSRvWydzZW5kZXInXVsnbGFiZWwnXSA9ICR0aGlzLT5tb2QtPkxhbmcoJ1NlbmRlcicpOwoJCQkJCSRvWydzZW5kZXInXVsnZmllbGQnXSA9ICR0aGlzLT5tb2QtPkdldFByZWZlcmVuY2UoJ3NlbmRlcl9waG9uZScpOwoJCQkJCSRvWydjaGFyYWN0ZXJzJ10gPSAkdGhpcy0+bW9kLT5MYW5nKCdDaGFyYWN0ZXJzJyk7CgkJCQkJJG9bJ3Ntc19udW1iZXInXSA9ICR0aGlzLT5tb2QtPkxhbmcoJ1NNUyBudW1iZXInKTsKCQkJCQkkb1snc2hvd19yZWNpcGllbnRzJ10gPSAkdGhpcy0+bW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkdGhpcy0+aWQsICdzZWxlY3RfcGVyc29uJywgJHRoaXMtPm1vZC0+TGFuZygnU2VsZWN0IFJlY2lwaWVudHMnKSk7CgkJCQkJJG9bJ3NlbGVjdF9kYXRlJ11bJ2xhYmVsJ10gPSAkdGhpcy0+bW9kLT5DcmVhdGVMYWJlbEZvcklucHV0KCR0aGlzLT5pZCwgJ2RhdGUnLCAkdGhpcy0+bW9kLT5MYW5nKCdEYXRlJykpOwkJCQoJCQkJCSRkZWZhdWx0ID0gZGF0ZSgnZC9tL1knKTsKCQkJCQkkb1snc2VsZWN0X2RhdGUnXVsnZmllbGQnXSA9ICR0aGlzLT5tb2QtPkNyZWF0ZUlucHV0VGV4dCgkdGhpcy0+aWQsICdkYXRlJywgJGRlZmF1bHQsICcnKTsKCQkJCQkkb1snc2VsZWN0X2hvdXInXVsnbGFiZWwnXSA9ICR0aGlzLT5tb2QtPkNyZWF0ZUxhYmVsRm9ySW5wdXQoJHRoaXMtPmlkLCAnaG91cicsICR0aGlzLT5tb2QtPkxhbmcoJ0hvdXInKSk7CgkJCQkJJGRlZmF1bHQgPSBkYXRlKCdIOmknKTsKCQkJCQkkb1snc2VsZWN0X2hvdXInXVsnZmllbGQnXSA9ICR0aGlzLT5tb2QtPkNyZWF0ZUlucHV0VGV4dCgkdGhpcy0+aWQsICdob3VyJywgJGRlZmF1bHQsICcnKTsKCQkJCQkkb1snbm9kZSddWydmaWVsZCddID0gJHRoaXMtPm1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJHRoaXMtPmlkLCAnbm9kZScsICR0aGlzLT5ub2RlKTsKCQkJCQkkb1sncmVjaXBpZW50J11bJ2ZpZWxkc2V0J10gPSAkdGhpcy0+bW9kLT5DcmVhdGVGaWVsZHNldFN0YXJ0KCR0aGlzLT5pZCwgJ3JlY2lwaWVudCcsICR0aGlzLT5tb2QtPkxhbmcoJzEgLSBDb25maWd1cmUgcmVjaXBpZW50JyksICcnLCAnJyk7CgkJCQkJJG9bJ3dyaXRlX21lc3NhZ2UnXVsnZmllbGRzZXQnXSA9ICR0aGlzLT5tb2QtPkNyZWF0ZUZpZWxkc2V0U3RhcnQoJHRoaXMtPmlkLCAnd3JpdGVfbWVzc2FnZScsICR0aGlzLT5tb2QtPkxhbmcoJzIgLSBXcml0ZSB0aGUgbWVzc2FnZScpLCAnJywgJycpOwoJCQkJCSRvWydvcHRpb25zJ11bJ2ZpZWxkc2V0J10gPSAkdGhpcy0+bW9kLT5DcmVhdGVGaWVsZHNldFN0YXJ0KCR0aGlzLT5pZCwgJ29wdGlvbnMnLCAkdGhpcy0+bW9kLT5MYW5nKCczIC0gT3B0aW9ucycpLCAnJywgJycpOwoJCQkJCSRvWydlbmQnXVsnZmllbGRzZXQnXSA9ICR0aGlzLT5tb2QtPkNyZWF0ZUZpZWxkc2V0RW5kKCk7CgkJCQkJZm9yZWFjaCAoJHRoaXMtPmZsZHMyIGFzICRrID0+ICRjKSAKCQkJCQkJaWYgKGlzc2V0KCRjWydkYXRhdGFibGUnXSkpCgkJCQkJCQkkb1ska11bJ2xhYmVsJ10gPSAkdGhpcy0+bW9kLT5MYW5nKCRjWydsYWJlbCddKTsKCQkJCQkkb1snaGlkZV9yZWNpcGllbnRzJ10gPSAkdGhpcy0+bW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkdGhpcy0+aWQsICdjYW5jZWwnLCAkdGhpcy0+bW9kLT5MYW5nKCdDbG9zZScpKTsKCQkJCQkkb1snbG9hZGluZyddID0gJHRoaXMtPm1vZC0+TGFuZygnTG9hZGluZyBkYXRhIGZyb20gc2VydmVyJyk7CgkJCQkJJHRoaXMtPmZsZHMyWydyZWNpcGllbnRfZ3JvdXAnXVsnaXRlbXMnXVskdGhpcy0+bW9kLT5MYW5nKCdBbGwnKV0gPSAnJzsKCQkJCQkkb1snZmlsdGVyJ11bJ2dyb3VwJ10gPSAkdGhpcy0+bW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCR0aGlzLT5pZCwgJ3JlY2lwaWVudF9ncm91cCcsICR0aGlzLT5mbGRzMlsncmVjaXBpZW50X2dyb3VwJ11bJ2l0ZW1zJ10pOwoJCQkJfQoJCQl9CgoJCQkvLyBzbWFydHkJCQoJCQkkdGhpcy0+bW9kLT5zbWFydHktPmFzc2lnbignbycsICRvKTsKCgkJCS8vIHRlbXBsYXRlCgkJCSR0ZW1wbGF0ZSA9ICgkb1snbXNnVHlwZSddID09PSAxIHx8ICRvWydtc2dUeXBlJ10gPT09IDIgKSA/ICdtZXNzYWdlX2JveC50cGwnIDogJHRoaXMtPmNmZ1snYWRtaW5fcGFuZWxfdGVtcGxhdGUnXTsKCQkJCgkJCS8vIG91dHB1dCAoaWYgbm8ganNvbiwgdXNlZCBmb3IgdGhlIGZpcnN0IHRhYikKCQkJaWYgKCRqc29uID09PSAtMSkKCQkJCSRvdXRwdXQgPSAkdGhpcy0+bW9kLT5Qcm9jZXNzVGVtcGxhdGUoJHRlbXBsYXRlKTsKCQkJLy8gb3V0cHV0IChpZiBqc29uLCB1c2VkIGZvciB0aGUgZmlyc3QgdGFiKQoJCQllbHNlCgkJCQkkb3V0cHV0ID0gYXJyYXkoJ21zZ1R5cGUnPT4kb1snbXNnVHlwZSddLCAncmVzdWx0Jz0+JHRoaXMtPm1vZC0+UHJvY2Vzc1RlbXBsYXRlKCR0ZW1wbGF0ZSkpOwkKCQl9CgoJCS8vIHJldHVybgoJCXJldHVybiAkdGhpcy0+cmVzID0gJG91dHB1dDsKCX0KfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/class.EFAGISmsLight_Operations.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIEVGQUdJU21zTGlnaHRfT3BlcmF0aW9ucwp7CglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHVwZGF0ZVJlY29yZCgkbW9kLCAkY2ZnLCAkZmllbGRzLCAkcGFyYW1zKQogICAJewoJCSRkYiA9IGNtc21zKCktPkdldERiKCk7CgoJCSRjb2wgPSAnJzsKCQlmb3JlYWNoICgkZmllbGRzIGFzICRrID0+ICR2KSAKCQl7CgkJCWlmICgkayAhPSAnZm9ybScgJiYgJGsgIT0gJ3N1Ym1pdCcgJiYgJGsgIT0gJ2NhbmNlbCcgJiYgJGsgIT0gJ3Jlc2V0dG9kZWZhdWx0JyAmJiAkayAhPSAnaWR4JykKCQkJewoJCQkJaWYgKCR2WydjcmVhdGUnXSA9PSAnaW5wdXRjaGVja2JveCcpCgkJCQkJJHZhbHVlID0gKGlzc2V0KCRwYXJhbXNbJGtdKSkgPyAkcGFyYW1zWyRrXSA6ICR2Wyd2YWx1ZW5vbmUnXTsKCQkJCWVsc2UKCQkJCQkkdmFsdWUgPSAkcGFyYW1zWyRrXTsKCgkJCQkkY29sIC49ICRrIC4nPT8sICc7CgkJCQkkcHF1ZXJ5W10gPSAkdmFsdWU7CgkJCX0KCQl9CgoJCSRwcXVlcnlbXSA9ICRwYXJhbXNbJ2lkeCddOwoKCQkkY29sID0gc3Vic3RyKCRjb2wsMCwtMik7IAoKCQkkcXVlcnkgID0gJ1VQREFURSAnLiBjbXNfZGJfcHJlZml4KCkgLiJtb2R1bGVfIiAuICRjZmdbJ3RhYmxlJ10gLicgU0VUICcuICRjb2wgLicgV0hFUkUgaWR4PT8nOwkKCQkkcmVzID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgJHBxdWVyeSk7CgoJCWlmICghJHJlcykgCgkJewoJCQkkb1snbXNnVHlwZSddID0gMTsKCQkJJG9bJ21zZ1RleHQnXSA9ICJERUJVRzogU1FMID0gIi4kZGItPnNxbCAuJzxici8+Jy4gJGRiLT5FcnJvck1zZygpOwoJCQoJCX0gZWxzZSB7CgkJCSRvWydtc2dUeXBlJ10gPSAyOwoJCQkkb1snbXNnVGV4dCddID0gJG1vZC0+TGFuZygnVmFsdWUocykgaXMgc2F2ZWQuJywgJG1vZC0+TGFuZygkY2ZnWyd0aXRsZSddKSk7CgkJfQoKCQkvLyByZXN1bHQKCQlyZXR1cm4gJG87CQkKICAgCX0KCiAgIAlwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHVwZGF0ZVJlY29yZEV4dGVuZCgkbW9kLCAkY2ZnLCAkZmllbGRzLCAkcGFyYW1zLCAkd2hlcmVGaWVsZCwgJHZhbHVlRmllbGQpCiAgIAl7CgkJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCgkJJGNvbCA9ICcnOwoJCWZvcmVhY2ggKCRmaWVsZHMgYXMgJGsgPT4gJHYpIAoJCXsKCQkJCSRjb2wgLj0gJHYgLic9PywgJzsKCQkJCSRwcXVlcnlbXSA9ICRwYXJhbXNbJHZdOwoJCX0KCgkJJHBxdWVyeVtdID0gJHZhbHVlRmllbGQ7CgoJCSRjb2wgPSBzdWJzdHIoJGNvbCwwLC0yKTsgCgoJCSRxdWVyeSAgPSAnVVBEQVRFICcuIGNtc19kYl9wcmVmaXgoKSAuIm1vZHVsZV8iIC4gJGNmZ1sndGFibGUnXSAuJyBTRVQgJy4gJGNvbCAuJyBXSEVSRSAnLiAkd2hlcmVGaWVsZCAuJyA9Pyc7CQoJCSRyZXMgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCAkcHF1ZXJ5KTsKCgkJaWYgKCEkcmVzKSAKCQl7CgkJCSRvWydtc2dUeXBlJ10gPSAxOwoJCQkkb1snbXNnVGV4dCddID0gIkRFQlVHOiBTUUwgPSAiLiRkYi0+c3FsIC4nPGJyLz4nLiAkZGItPkVycm9yTXNnKCk7CgkJCgkJfSBlbHNlIHsKCQkJJG9bJ21zZ1R5cGUnXSA9IDI7CgkJCSRvWydtc2dUZXh0J10gPSAkbW9kLT5MYW5nKCdWYWx1ZShzKSBpcyBzYXZlZC4nLCAkbW9kLT5MYW5nKCRjZmdbJ3RpdGxlJ10pKTsKCQl9CgoJCS8vZWNobyAiREVCVUc6IFNRTCA9ICIuJGRiLT5zcWwgLic8YnIvPicuICRkYi0+RXJyb3JNc2coKTsKCgkJLy8gcmVzdWx0CgkJcmV0dXJuICRvOwkJCiAgIAl9CgogICAJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBpbnNlcnRSZWNvcmQoJG1vZCwgJGNmZywgJGZpZWxkcywgJHBhcmFtcykKICAgCXsKCQkkZGIgPSBjbXNtcygpLT5HZXREYigpOwoKCQkkaWR4ID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkgLiJtb2R1bGVfIiAuICRjZmdbJ3RhYmxlJ10gLidfc2VxJyk7CgoJCSRjb2wgPSAnaWR4LCAnOwoJCSRjb2x2ID0gJz8sICc7CgkJJHBxdWVyeSA9IGFycmF5KCRpZHgpOwoJCWZvcmVhY2ggKCRmaWVsZHMgYXMgJGsgPT4gJHYpIAoJCXsKCQkJaWYgKCRrICE9ICdmb3JtJyAmJiAkayAhPSAnc3VibWl0JyAmJiAkayAhPSAnY2FuY2VsJyAmJiAkayAhPSAncmVzZXR0b2RlZmF1bHQnICYmICRrICE9ICdpZHgnKQoJCQl7CgkJCQlpZiAoJHZbJ2NyZWF0ZSddID09ICdpbnB1dGNoZWNrYm94JykKCQkJCQkkdmFsdWUgPSAoaXNzZXQoJHBhcmFtc1ska10pKSA/ICRwYXJhbXNbJGtdIDogJHZbJ3ZhbHVlbm9uZSddOwoJCQkJZWxzZQoJCQkJCSR2YWx1ZSA9ICRwYXJhbXNbJGtdOwoKCQkJCSRjb2wgLj0gJGsgLicsICc7CgkJCQkkY29sdiAuPSAnPywgJzsKCQkJCSRwcXVlcnlbXSA9ICR2YWx1ZTsKCQkJfQoJCX0KCgkJJGNvbCA9IHN1YnN0cigkY29sLDAsLTIpOyAKCQkkY29sdiA9IHN1YnN0cigkY29sdiwwLC0yKTsKCgkJJHF1ZXJ5ID0gIklOU0VSVCBJTlRPICIuIGNtc19kYl9wcmVmaXgoKSAuIm1vZHVsZV8iIC4gJGNmZ1sndGFibGUnXSAuIiAoIi4gJGNvbCAuIikgVkFMVUVTICgiLiAkY29sdiAuIikiOwoJCSRyZXMgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCAkcHF1ZXJ5KTsKCgkJaWYgKCEkcmVzKSAKCQl7CgkJCSRvWydpZHgnXSA9ICRpZHg7CgkJCSRvWydtc2dUeXBlJ10gPSAxOwoJCQkkb1snbXNnVGV4dCddID0gIkRFQlVHOiBTUUwgPSAiLiRkYi0+c3FsIC4nPGJyLz4nLiAkZGItPkVycm9yTXNnKCk7CgkJCgkJfSBlbHNlIHsKCQkJJG9bJ2lkeCddID0gJGlkeDsKCQkJJG9bJ21zZ1R5cGUnXSA9IDI7CgkJCSRvWydtc2dUZXh0J10gPSAkbW9kLT5MYW5nKCdWYWx1ZShzKSBpcyBzYXZlZC4nLCAkbW9kLT5MYW5nKCRjZmdbJ3RpdGxlJ10pKTsKCQl9CgoJCXJldHVybiAkbzsJCQogICAJfQoKICAgCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaW5zZXJ0UmVjb3JkRXh0ZW5kKCRtb2QsICRjZmcsICRmaWVsZHMsICRwYXJhbXMpCiAgIAl7CgkJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCgkJJGlkeCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpIC4ibW9kdWxlXyIgLiAkY2ZnWyd0YWJsZSddIC4nX3NlcScpOwoKCQkkY29sID0gJ2lkeCwgJzsKCQkkY29sdiA9ICc/LCAnOwoJCSRwcXVlcnkgPSBhcnJheSgkaWR4KTsKCQlmb3JlYWNoICgkZmllbGRzIGFzICRrID0+ICR2KSAKCQl7CgkJCWlmICgkayAhPSAnZm9ybScgJiYgJGsgIT0gJ3N1Ym1pdCcgJiYgJGsgIT0gJ2NhbmNlbCcgJiYgJGsgIT0gJ3Jlc2V0dG9kZWZhdWx0JyAmJiAkayAhPSAnaWR4JykKCQkJewoJCQkJaWYgKCR2WydjcmVhdGUnXSA9PSAnaW5wdXRjaGVja2JveCcpCgkJCQkJJHZhbHVlID0gKGlzc2V0KCRwYXJhbXNbJGtdKSkgPyAkcGFyYW1zWyRrXSA6ICR2Wyd2YWx1ZW5vbmUnXTsKCQkJCWVsc2UKCQkJCQkkdmFsdWUgPSAkcGFyYW1zWyRrXTsKCgkJCQkkY29sIC49ICRrIC4nLCAnOwoJCQkJJGNvbHYgLj0gJz8sICc7CgkJCQkkcHF1ZXJ5W10gPSAkdmFsdWU7CgkJCX0KCQl9CgoJCSRjb2wgPSBzdWJzdHIoJGNvbCwwLC0yKTsgCgkJJGNvbHYgPSBzdWJzdHIoJGNvbHYsMCwtMik7CgoJCSRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiLiBjbXNfZGJfcHJlZml4KCkgLiJtb2R1bGVfIiAuICRjZmdbJ3RhYmxlJ10gLiIgKCIuICRjb2wgLiIpIFZBTFVFUyAoIi4gJGNvbHYgLiIpIjsKCQkkcmVzID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgJHBxdWVyeSk7CgoJCWlmICghJHJlcykgCgkJewoJCQkkb1snaWR4J10gPSAkaWR4OwoJCQkkb1snbXNnVHlwZSddID0gMTsKCQkJJG9bJ21zZ1RleHQnXSA9ICJERUJVRzogU1FMID0gIi4kZGItPnNxbCAuJzxici8+Jy4gJGRiLT5FcnJvck1zZygpOwoJCQoJCX0gZWxzZSB7CgkJCSRvWydpZHgnXSA9ICRpZHg7CgkJCSRvWydtc2dUeXBlJ10gPSAyOwoJCQkkb1snbXNnVGV4dCddID0gJG1vZC0+TGFuZygnVmFsdWUocykgaXMgc2F2ZWQuJywgJG1vZC0+TGFuZygkY2ZnWyd0aXRsZSddKSk7CgkJfQoKCQlyZXR1cm4gJG87CQkKICAgCX0KCiAgIAlwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGxvYWRSZWNvcmQoJG1vZCwgJGNmZywgJGZpZWxkcywgJHBhcmFtcykKICAgCXsKICAgCQlpZiAoaXNzZXQoJGNmZ1sndGFibGUnXSkpCiAgIAkJewogICAJCQkvLyBtb2R1bGUgdGFibGVzCiAgIAkJCWlmICgkY2ZnWyd0YWJsZSddICE9ICd0ZW1wbGF0ZXMnKQogICAJCQl7CgkJICAgCQkkZGIgPSBjbXNtcygpLT5HZXREYigpOwoJCSAgICAgIAkkcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiLiBjbXNfZGJfcHJlZml4KCkgLiJtb2R1bGVfIiAuICRjZmdbJ3RhYmxlJ10gLiIgV0hFUkUgaWR4PT8gIjsJCgkJICAgICAgCSRyZXMgPSAkZGItPkdldFJvdygkcXVlcnksYXJyYXkoJHBhcmFtc1snaWR4J10pKTsgIAoKCQkJCWlmICghJHJlcykgCgkJCQl7CgkJICAgICAgICAJJG9bJ21zZ1R5cGUnXSA9IDE7CgkJCQkJJG9bJ21zZ1RleHQnXSA9ICJERUJVRzogU1FMID0gIi4kZGItPnNxbCAuJzxici8+Jy4gJGRiLT5FcnJvck1zZygpOwkgCgoJCQkJfSBlbHNlIHsKCgkJCSAgIAkJJG9bJ21zZ1R5cGUnXSA9IDA7CgkJCQkJJG9bJ21zZ1RleHQnXSA9ICcnOwkKCgkJCQkJZm9yZWFjaCAoJGZpZWxkcyBhcyAkayA9PiAkdikgCgkJCQkJCWlmICgkayAhPSAnZm9ybScgJiYgJGsgIT0gJ3N1Ym1pdCcgJiYgJGsgIT0gJ2NhbmNlbCcpCgkJCQkJCQkkb1sncmVzdWx0J11bJGtdID0gJHJlc1ska107CgkJCQl9CgoJCQkvLyB0YWJsZSBtb2R1bGVfdGVtcGxhdGVzCgkJCX0gZWxzZSB7CgoJCQkJJG9bJ21zZ1R5cGUnXSA9IDA7CgkJCQkkb1snbXNnVGV4dCddID0gJyc7CQoKCQkJCSRvWydyZXN1bHQnXVsnaWR4J10gPSB1cmxkZWNvZGUoJHBhcmFtc1snaWR4J10pOwoJCQkJJG9bJ3Jlc3VsdCddWyd0ZW1wbGF0ZV9uYW1lJ10gPSB1cmxkZWNvZGUoJHBhcmFtc1snaWR4J10pOwogICAgICAJCQkkb1sncmVzdWx0J11bJ3RlbXBsYXRlX2NvbnRlbnQnXSA9ICRtb2QtPkdldFRlbXBsYXRlKCRvWydyZXN1bHQnXVsnaWR4J10pOwogICAgICAJCQkkb1sncmVzdWx0J11bJ3RlbXBsYXRlX2RlZmF1bHQnXSA9IAogCQkJCSgkb1sncmVzdWx0J11bJ2lkeCddID09ICRtb2QtPkdldFByZWZlcmVuY2UoJ3RlbXBsYXRlX2RlZmF1bHQnKSkKCSAJCQkJPyB0cnVlCgkgCQkJCTogZmFsc2U7CgkJCX0KCgkJfSBlbHNlIHsKCQkJJG9bJ21zZ1R5cGUnXSA9IDE7CgkJCSRvWydtc2dUZXh0J10gPSAnVGFibGUgbm90IGRlZmluZSEnOwoJCX0KCgkJcmV0dXJuICRvOwogICAJfQoKCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gbG9hZFJlY29yZEV4dGVuZCgkdGFibGUsICRmaWVsZHMsICRhV2hlcmUpCiAgIAl7CiAgIAkJJHFXaGVyZSA9ICIiOwoJCWlmICgkYVdoZXJlICE9ICcnKQoJCXsKCQkJJHFXaGVyZSA9ICcgV0hFUkUgKCc7CgkJCWZvcmVhY2ggKCRhV2hlcmUgYXMgJGsgPT4gJHYpIHsKCQkJCSRxV2hlcmUgLj0gJyAnLiAkay4gJyA9ID8gQU5EICc7CgkJCQkkcFF1ZXJ5W10gPSAkdjsKCQkJfQoJCQkkcVdoZXJlID0gc3Vic3RyX3JlcGxhY2UoJHFXaGVyZSwgJycsIC00KTsKCQkJJHFXaGVyZSAuPSAnKSAnOwoJCX0KCgkJJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgCQkkcXVlcnkgPSAiU0VMRUNUICIuICRmaWVsZHMgLiIgRlJPTSAiLiBjbXNfZGJfcHJlZml4KCkgLiJtb2R1bGVfIiAuICR0YWJsZSAuICRxV2hlcmU7IAogICAJCWlmIChpc3NldCgkcFF1ZXJ5KSkKCQkJJHJlcyA9ICRkYi0+R2V0Um93KCRxdWVyeSwgJHBRdWVyeSk7CQoJCWVsc2UKCQkJJHJlcyA9ICRkYi0+R2V0Um93KCRxdWVyeSk7CgoJCWlmICghJHJlcykgCgkJewoJCQkkb1snbXNnVHlwZSddID0gMTsKCQkJJG9bJ21zZ1RleHQnXSA9ICJERUJVRzogU1FMID0gIi4kZGItPnNxbCAuJzxici8+Jy4gJGRiLT5FcnJvck1zZygpOwoJCQoJCX0gZWxzZSB7CgkJCSRvWydpZHgnXSA9ICRpZHg7CgkJCSRvWydjb3VudCddID0gY291bnQoJHJlcyk7CgkJCSRvWydyZXMnXSA9ICRyZXM7CgkJCSRvWydtc2dUeXBlJ10gPSAyOwoJCQkkb1snbXNnVGV4dCddID0gJyc7CgkJfQoKICAgICAgICByZXR1cm4gJG87CiAgICB9CgogICAJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjb3VudFJlY29yZCgkdGFibGUsICRmaWVsZCwgJGFXaGVyZSkKICAgCXsKICAgCQkkcVdoZXJlID0gIiI7CgkJaWYgKCRhV2hlcmUgIT0gJycpCgkJewoJCQkkcVdoZXJlID0gJyBXSEVSRSAoJzsKCQkJZm9yZWFjaCAoJGFXaGVyZSBhcyAkayA9PiAkdikgewoJCQkJJHFXaGVyZSAuPSAnICcuICRrLiAnID0gPyBBTkQgJzsKCQkJCSRwUXVlcnlbXSA9ICR2OwoJCQl9CgkJCSRxV2hlcmUgPSBzdWJzdHJfcmVwbGFjZSgkcVdoZXJlLCAnJywgLTQpOwoJCQkkcVdoZXJlIC49ICcpICc7CgkJfQoKCQkkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAJCSRxdWVyeSA9ICJTRUxFQ1QgY291bnQoIi4gJGZpZWxkIC4iKSBhcyBjb3VudCBGUk9NICIuIGNtc19kYl9wcmVmaXgoKSAuIm1vZHVsZV8iIC4gJHRhYmxlIC4gJHFXaGVyZTsgCiAgIAkJaWYgKGlzc2V0KCRwUXVlcnkpKQoJCQkkcmVzID0gJGRiLT5HZXRSb3coJHF1ZXJ5LCAkcFF1ZXJ5KTsJCgkJZWxzZQoJCQkkcmVzID0gJGRiLT5HZXRSb3coJHF1ZXJ5KTsKCiAgICAgICAgcmV0dXJuICRyZXNbJ2NvdW50J107CiAgICB9CgogICAJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBkZWxldGVSZWNvcmQoJG1vZCwgJGNmZywgJHBhcmFtcykKICAgCXsKICAgCQkkZGIgPSBjbXNtcygpLT5HZXREYigpOwoJCSRxdWVyeSA9ICJERUxFVEUgRlJPTSAiLiBjbXNfZGJfcHJlZml4KCkgLiJtb2R1bGVfIiAuICRjZmdbJ3RhYmxlJ10gLiIgV0hFUkUgaWR4ID0gPyI7CgkJJHJlcyA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRwYXJhbXNbJ2lkeCddKSk7CgoJCWlmICghJHJlcykgCgkJewoJCQkkb1snbXNnVHlwZSddID0gMTsKCQkJJG9bJ21zZ1RleHQnXSA9ICJERUJVRzogU1FMID0gIi4kZGItPnNxbCAuJzxici8+Jy4gJGRiLT5FcnJvck1zZygpOwoJCQoJCX0gZWxzZSB7CgkJCSRvWydtc2dUeXBlJ10gPSAyOwoJCQkkb1snbXNnVGV4dCddID0gJG1vZC0+TGFuZygnUmVjb3JkIGlzIGRlbGV0ZWQuJywgJG1vZC0+TGFuZygkY2ZnWyd0aXRsZSddKSk7CgkJfQoKCQlyZXR1cm4gJG87CQogICAJfQoKICAgCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gbWFrZUFjdGl2ZSgkY2ZnLCAkZmllbGQsICRwYXJhbXMpCiAgIAl7CgkJJHNldCA9ICgkcGFyYW1zWydzZXQnXSA9PSAndHJ1ZScpID8gMSA6IDA7CgoJCSRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAgIAkkcXVlcnkgID0gIlVQREFURSAiLiBjbXNfZGJfcHJlZml4KCkgLiJtb2R1bGVfIiAuICRjZmdbJ3RhYmxlJ10gLiIgU0VUICIuICRmaWVsZCAuIiA9ID8gV0hFUkUgaWR4ID0gPyI7CiAgICAgIAkkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRzZXQsICRwYXJhbXNbJ2lkeCddKSk7CgogICAgICAJJG9bJ21zZ1R5cGUnXSA9IDU7CgogICAgICAJcmV0dXJuICRvOwoJfQoKCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gbWFrZURlZmF1bHQoJGNmZywgJGZpZWxkLCAkcGFyYW1zKQogICAJewogICAJCSRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAgIAkkcXVlcnkgID0gIlVQREFURSAiLiBjbXNfZGJfcHJlZml4KCkgLiJtb2R1bGVfIiAuICRjZmdbJ3RhYmxlJ10gLiIgU0VUICIuICRmaWVsZCAuIiA9ID8iOwogICAgICAJJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgwKSk7CgogICAJCSRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAgIAkkcXVlcnkgID0gIlVQREFURSAiLiBjbXNfZGJfcHJlZml4KCkgLiJtb2R1bGVfIiAuICRjZmdbJ3RhYmxlJ10gLiIgU0VUICIuICRmaWVsZCAuIiA9ID8gV0hFUkUgaWR4ID0gPyI7CiAgICAgIAkkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KDEsICRwYXJhbXNbJ2lkeCddKSk7CgogICAgICAJJG9bJ21zZ1R5cGUnXSA9IDU7CgogICAgICAJcmV0dXJuICRvOwogICAJfQoKICAgCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gc2VsZWN0UmVjb3Jkc0Zvckxpc3QoJHRhYmxlLCAkZiwgJGFXaGVyZT0nJykKICAgCXsKICAgCQkkZGIgPSBjbXNtcygpLT5HZXREYigpOwoKICAgCQkkcm93ID0gJyc7CgogICAJCWlmIChpc19hcnJheSgkZikpCiAgIAkJewogICAgCQkkcm93c05hbWVzID0gJyc7CiAgCQkJZm9yZWFjaCAoJGYgYXMgJGsgPT4gJHYpIAogICAJCQkJJHJvd3NOYW1lcyAuPSAkdiAuJywgJzsKICAgCQkJJHJvd3MgPSAkcm93c05hbWVzOwoKICAgCQl9IGVsc2UgewogICAJCQkkcm93cyA9ICRmIC4nLCAnOwogICAJCX0KCiAgIAkJJHFXaGVyZSA9ICIiOwoJCWlmICgkYVdoZXJlICE9ICcnKQoJCXsKCQkJJHFXaGVyZSA9ICcgV0hFUkUgKCc7CgkJCWZvcmVhY2ggKCRhV2hlcmUgYXMgJGsgPT4gJHYpIHsKCQkJCSRxV2hlcmUgLj0gJyAnLiAkay4gJyBMSUtFID8gQU5EICc7CgkJCQkkcFF1ZXJ5W10gPSAnJScuICR2IC4nJSc7CgkJCX0KCQkJJHFXaGVyZSA9IHN1YnN0cl9yZXBsYWNlKCRxV2hlcmUsICcnLCAtNCk7CgkJCSRxV2hlcmUgLj0gJykgJzsKCQl9CgoJCSRxdWVyeSA9ICdTRUxFQ1QgICcuICRyb3dzIC4nIGlkeCBGUk9NICcuIGNtc19kYl9wcmVmaXgoKSAuJ21vZHVsZV8nIC4gJHRhYmxlIC4gJHFXaGVyZTsJCgkJaWYgKGlzc2V0KCRwUXVlcnkpKQoJCQkkcmVzID0gJGRiLT5HZXRBcnJheSgkcXVlcnksICRwUXVlcnkpOwkKCQllbHNlCgkJCSRyZXMgPSAkZGItPkdldEFycmF5KCRxdWVyeSk7CQoKCQkvL2VjaG8gIkRFQlVHOiBTUUwgPSAiLiRkYi0+c3FsIC4nPGJyLz4nLiAkZGItPkVycm9yTXNnKCk7CgoJCWlmICghaXNfYXJyYXkoJGYpKQoJCQlmb3JlYWNoICgkcmVzIGFzICRrID0+ICR2KQoJCQkJJHJvd1skdlskZl1dID0gJHZbJ2lkeCddOwoKCQlpZiAoaXNfYXJyYXkoJGYpKQoJCQlmb3JlYWNoICgkcmVzIGFzICRrMSA9PiAkdjEpCgkJCXsKCQkJCSRyID0gJyc7CgkJCQlmb3JlYWNoICgkZiBhcyAkazIgPT4gJHYyKSAKCQkJCQkkciAuPSAkdjFbJHYyXSAuJyAnOwoKCQkJCSRyb3dbJHJdID0gJHYxWydpZHgnXTsKCQkJfQoKCQlyZXR1cm4gJHJvdzsKICAgCX0KCiAgIAlwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHNlbGVjdFJlY29yZHMoJG1vZCwgJGNmZywgJGZpZWxkcywgJHBhcmFtcywgJGlkLCAkcmV0dXJuaWQsICRub2RlLCAkYVdoZXJlPScnKQogICAJewogICAJCSRkYiA9IGNtc21zKCktPkdldERiKCk7CgoJCS8vIGNvbHVtbnMKCQkkc0NvbHVtbnMgPSAnJzsKCQlmb3JlYWNoICgkZmllbGRzIGFzICRrID0+ICRjKSAKCQkJaWYgKGlzc2V0KCRjWydkYXRhdGFibGUnXSkpCgkJCXsKCQkJCSRhQ29sdW1uc1tdID0gJGs7CgkJCQkkc0NvbHVtbnMgLj0gJGsgLicsICc7CgkJCX0KCgkJJHNDb2x1bW5zID0gc3Vic3RyX3JlcGxhY2UoJHNDb2x1bW5zLCAnJywgLTIpOwoKCQkvLyBxdWVyeSB3aGVyZQoJCSRxV2hlcmUgPSAiIjsKCgkJLy8gZmlsdGVyCgkJaWYgKCRhV2hlcmUhPScnKQoJCXsKCQkJJHFXaGVyZSA9ICcgV0hFUkUgKCc7CgkJCWZvcmVhY2ggKCRhV2hlcmUgYXMgJGsgPT4gJHYpIAoJCQl7CgkJCQkkcVdoZXJlIC49ICcgJy4gJGsuICcgPSA/IEFORCAnOwoJCQkJJHBRdWVyeVtdID0gJHY7CgkJCX0KCQkJJHFXaGVyZSA9IHN1YnN0cl9yZXBsYWNlKCRxV2hlcmUsICcnLCAtNCk7CgkJCSRxV2hlcmUgLj0gJykgJzsKCQl9CgoJCS8vIHRvdGFsIHJlY29yZHMKCQkkcXVlcnkgPSAiU0VMRUNUIGlkeCBGUk9NICIuIGNtc19kYl9wcmVmaXgoKSAuIm1vZHVsZV8iIC4gJGNmZ1sndGFibGUnXSAuICRxV2hlcmU7CQoJCWlmIChpc3NldCgkcFF1ZXJ5KSkKCQkJJHJlcyA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5LCAkcFF1ZXJ5KTsJCgkJZWxzZQoJCQkkcmVzID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwkKCgkJJGlUb3RhbFJlY29yZHMgPSBjb3VudCgkcmVzKTsJCgoJCS8vIGdsb2JhbCBmaWx0ZXIKCQlpZiAoaXNzZXQoJHBhcmFtc1snc1NlYXJjaCddKSAmJiAkcGFyYW1zWydzU2VhcmNoJ10gIT0gJycpCgkJewoJCQlpZiAoJHFXaGVyZSA9PSAnJykKCQkJCSRxV2hlcmUgPSAnIFdIRVJFICgnOwoJCQllbHNlIAoJCQkJJHFXaGVyZSAuPSAnIEFORCAoJzsgCgkJCWZvciAoJGk9MCA7ICRpPGNvdW50KCRhQ29sdW1ucykgOyAkaSsrKQoJCQkJaWYgKGlzc2V0KCRwYXJhbXNbJ2JTZWFyY2hhYmxlXycuJGldKSAmJiAkcGFyYW1zWydiU2VhcmNoYWJsZV8nLiRpXSA9PSAndHJ1ZScpCgkJCQl7CgkJCQkJJHFXaGVyZSAuPSAnICcuICRhQ29sdW1uc1skaV0uICcgTElLRSA/IE9SICc7CgkJCQkJJHBRdWVyeVtdID0gJyUnLiAoJHBhcmFtc1snc1NlYXJjaCddKSAuJyUnOwoJCQkJCS8vJHBRdWVyeVtdID0gJyUnLiBteXNxbF9yZWFsX2VzY2FwZV9zdHJpbmcoICRwYXJhbXNbJ3NTZWFyY2gnXSApIC4nJSc7CgkJCQl9CgoJCQkkcVdoZXJlID0gc3Vic3RyX3JlcGxhY2UoJHFXaGVyZSwgJycsIC0zKTsKCQkJJHFXaGVyZSAuPSAnKSAnOwoJCX0KCgkJLy8gaW5kaXZpZHVhbCBjb2x1bW4gZmlsdGVyaW5nCgkJZm9yICgkaT0wIDsgJGk8Y291bnQoJGFDb2x1bW5zKTsgJGkrKykKCQl7CgkJCWlmIChpc3NldCgkcGFyYW1zWydiU2VhcmNoYWJsZV8nLiRpXSkgJiYgJHBhcmFtc1snYlNlYXJjaGFibGVfJy4kaV0gPT0gInRydWUiICYmICRwYXJhbXNbJ3NTZWFyY2hfJy4kaV0gIT0gJycpCgkJCXsKCQkJCWlmICggJHFXaGVyZSA9PSAnJyApCgkJCQkJJHFXaGVyZSA9ICcgV0hFUkUgJzsKCQkJCWVsc2UKCQkJCQkkcVdoZXJlIC49ICcgQU5EICc7CgoJCQkJJHFXaGVyZSAuPSAnICcuJGFDb2x1bW5zWyRpXS4nIExJS0UgPyAnOwoJCQkJJHBRdWVyeVtdID0gJyUnLigkcGFyYW1zWydzU2VhcmNoXycuJGldKS4nJSc7CgkJCQkvLyRwUXVlcnlbXSA9ICclJy5teXNxbF9yZWFsX2VzY2FwZV9zdHJpbmcoJHBhcmFtc1snc1NlYXJjaF8nLiRpXSkuJyUnOwoJCQl9CgkJfQoKCQkvLyBvcmRlcgoJCSRxT3JkZXIgPSAiIjsKCQlpZiAoaXNzZXQoJHBhcmFtc1snaVNvcnRDb2xfMCddKSkKCQl7CgkJCSRxT3JkZXIgPSAnIE9SREVSIEJZICc7CgoJCQlmb3IgKCRpPTAgOyAkaTxpbnR2YWwoJHBhcmFtc1snaVNvcnRpbmdDb2xzJ10pIDsgJGkrKykKCQkJCWlmICgkcGFyYW1zWyAnYlNvcnRhYmxlXycuaW50dmFsKCRwYXJhbXNbJ2lTb3J0Q29sXycuJGldKSBdID09ICJ0cnVlIikKCQkJCQkkcU9yZGVyIC49ICcgJy4gJGFDb2x1bW5zW2ludHZhbCggJHBhcmFtc1snaVNvcnRDb2xfJy4kaV0pXSAuJyAnLiAoJHBhcmFtc1snc1NvcnREaXJfJy4kaV0pIC4nLCAnOwoJCQkJCS8vJHFPcmRlciAuPSAnICcuICRhQ29sdW1uc1tpbnR2YWwoICRwYXJhbXNbJ2lTb3J0Q29sXycuJGldKV0gLicgJy4gbXlzcWxfcmVhbF9lc2NhcGVfc3RyaW5nKCRwYXJhbXNbJ3NTb3J0RGlyXycuJGldKSAuJywgJzsKCQkJCgkJCSRxT3JkZXIgPSBzdWJzdHJfcmVwbGFjZSgkcU9yZGVyLCAiIiwgLTIpOwoJCQlpZiAoJHFPcmRlciA9PSAnIE9SREVSIEJZICcpCgkJCQkkcU9yZGVyID0gJyc7CgkJfQoKCQkvLyBwYWdpbmcKCQkkcUxpbWl0ID0gJyc7CgkJaWYgKGlzc2V0KCRwYXJhbXNbJ2lEaXNwbGF5U3RhcnQnXSkgJiYgJHBhcmFtc1snaURpc3BsYXlMZW5ndGgnXSAhPSAnLTEnKQoJCXsKCQkJJHFMaW1pdCA9ICcgTElNSVQgPywgPyc7CgkJCSRwUXVlcnlbXSA9IGludHZhbCgkcGFyYW1zWydpRGlzcGxheVN0YXJ0J10pOwoJCQkkcFF1ZXJ5W10gPSBpbnR2YWwoJHBhcmFtc1snaURpc3BsYXlMZW5ndGgnXSk7CgkJfQoKCQkvLyBxdWVyeQoJCSRxdWVyeSA9ICdTRUxFQ1QgJy4gJHNDb2x1bW5zIC4nIEZST00gJy4gY21zX2RiX3ByZWZpeCgpIC4nbW9kdWxlXycgLiAkY2ZnWyd0YWJsZSddIC4gJHFXaGVyZSAuICRxT3JkZXIgLiAkcUxpbWl0OwkKCQlpZiAoaXNzZXQoJHBRdWVyeSkpCgkJCSRyZXMgPSAkZGItPkdldEFycmF5KCRxdWVyeSwgJHBRdWVyeSk7CQoJCWVsc2UKCQkJJHJlcyA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5KTsJCgoJCS8vZWNobyAiREVCVUc6IFNRTCA9ICIuJGRiLT5zcWwgLic8YnIvPicuICRkYi0+RXJyb3JNc2coKTsKCQkKCQkvLyB0b3RhbCBkaXNwbGF5IHJlY29yZHMKCQlpZiAoJHFXaGVyZSAhPSAnJyAmJiAkYVdoZXJlID09ICcnKQoJCQkkaVRvdGFsRGlzcGxheVJlY29yZHMgPSBjb3VudCgkcmVzKTsKCQllbHNlIGlmICgkcVdoZXJlICE9ICcnICYmICRhV2hlcmUgIT0gJycpCgkJCSRpVG90YWxEaXNwbGF5UmVjb3JkcyA9ICRpVG90YWxSZWNvcmRzOwoJCWVsc2UKCQkJJGlUb3RhbERpc3BsYXlSZWNvcmRzID0gJGlUb3RhbFJlY29yZHM7CgoJCS8vIGRhdGF0YWJsZQoJCSRvID0gYXJyYXkgKAoJCQkic0VjaG8iID0+IGludHZhbCgkcGFyYW1zWydzRWNobyddKSwKCQkJImlUb3RhbFJlY29yZHMiID0+ICRpVG90YWxSZWNvcmRzLAoJCQkiaVRvdGFsRGlzcGxheVJlY29yZHMiID0+ICRpVG90YWxEaXNwbGF5UmVjb3JkcywKCQkJImFhRGF0YSIgPT4gYXJyYXkoKQoJCQkpOwoKCQlmb3JlYWNoICgkcmVzIGFzICRrMSA9PiAkYzEpCgkJewoJCQkkZGVsZXRlID0gMTsKCgkJCSRyb3cgPSBhcnJheSgpOwoJCQlmb3IgKCRpPTAgOyAkaTxjb3VudCgkYUNvbHVtbnMpIDsgJGkrKykKCQkJewoJCQkJaWYgKCRhQ29sdW1uc1skaV0gIT0gJyAnKQoJCQkJewoJCQkJCWlmICgkZmllbGRzWyRhQ29sdW1uc1skaV1dWydjcmVhdGUnXSA9PSAnaW5wdXRkcm9wZG93bicpCgkJCQkJewoJCQkJCQkkcm93W10gPSBhcnJheV9zZWFyY2goJGMxWyRhQ29sdW1uc1skaV1dLCAkZmllbGRzWyRhQ29sdW1uc1skaV1dWydpdGVtcyddKTsKCgkJCQkJfSBlbHNlIGlmICgkZmllbGRzWyRhQ29sdW1uc1skaV1dWydjcmVhdGUnXSA9PSAnaW5wdXRzZWxlY3RsaXN0JykgewoJCQkJCQkkaXRlbXNLZXkgPSBleHBsb2RlKCcsJywgJGMxWyRhQ29sdW1uc1skaV1dKTsKCQkJCQkJJGl0ZW1zVmFsID0gJyc7CgkJCQkJCWZvcmVhY2ggKCRpdGVtc0tleSBhcyAkazIgPT4gJHYyKSB7CgkJCQkJCQkkaXRlbXNWYWwgLj0gYXJyYXlfc2VhcmNoKCR2MiwgJGZpZWxkc1skYUNvbHVtbnNbJGldXVsnaXRlbXMnXSkgLicgJzsKCQkJCQkJfQoJCQkJCQkkcm93W10gPSAkaXRlbXNWYWw7CgoJCQkJCX0gZWxzZSBpZiAoJGZpZWxkc1skYUNvbHVtbnNbJGldXVsnY3JlYXRlJ10gPT0gJ2lucHV0Y2hlY2tib3gnIHx8ICRmaWVsZHNbJGFDb2x1bW5zWyRpXV1bJ2NyZWF0ZSddID09ICdpbnB1dGhpZGRlbicpIHsKCQkJCQkJCgkJCQkJCWlmIChpc3NldCgkZmllbGRzWyRhQ29sdW1uc1skaV1dWydhY3Rpb24nXSkgJiYgJG1vZC0+Q2hlY2tQZXJtaXNzaW9uKCRjZmdbJ21vZHVsZSddIC4nIEVkaXQnKSAmJiBpc3NldCgkY2ZnWydhY3Rpb24nXVsnZWRpdCddKSkKCQkJCQkJewoJCQkJCQkJJGljb24gPSAoJGMxWyRhQ29sdW1uc1skaV1dID09ICRmaWVsZHNbJGFDb2x1bW5zWyRpXV1bJ3ZhbHVlJ10pID8gJ3RydWUnIDogJ2ZhbHNlJzsKCQkJCQkJCSRzZXQgPSAoJGMxWyRhQ29sdW1uc1skaV1dID09ICRmaWVsZHNbJGFDb2x1bW5zWyRpXV1bJ3ZhbHVlJ10pID8gJ2ZhbHNlJyA6ICd0cnVlJzsKCQkJCQkJCSR0ZXh0ID0gKCRjMVskYUNvbHVtbnNbJGldXSA9PSAkZmllbGRzWyRhQ29sdW1uc1skaV1dWyd2YWx1ZSddKSA/ICdEZWZpbmUgdG8gZmFsc2UnIDogJ0RlZmluZSB0byB0cnVlJzsKCQkJCQkJCSRhbHQgPSAoJGMxWyRhQ29sdW1uc1skaV1dID09ICRmaWVsZHNbJGFDb2x1bW5zWyRpXV1bJ3ZhbHVlJ10pID8gJ1RydWUnIDogJ0ZhbHNlJzsKCgkJCQkJCQlpZiAoJGZpZWxkc1skYUNvbHVtbnNbJGldXVsnYWN0aW9uJ10gPT0gJ21ha2VkZWZhdWx0JyAmJiAkc2V0ID09ICdmYWxzZScpCgkJCQkJCQl7CgkJCQkJCQkJJGRlbGV0ZSA9IDA7CgkJCQkJCQkJJHJvd1tdID0gc2VsZjo6Y3JlYXRlU3lzdGVtSWNvbigkbW9kLCAkaWNvbiwgJGFsdCwgJ1RydWUnKTsKCgkJCQkJCQl9IGVsc2UgaWYgKCRmaWVsZHNbJGFDb2x1bW5zWyRpXV1bJ2FjdGlvbiddID09ICdtYWtlYWN0aXZlJyAmJiAkZGVsZXRlID09IDApIHsKCQkJCQkJCQkkcm93W10gPSBzZWxmOjpjcmVhdGVTeXN0ZW1JY29uKCRtb2QsICRpY29uLCAkYWx0LCAnVHJ1ZScpOwoKCQkJCQkJCX0gZWxzZSB7CgkJCQkJCQkJJHJvd1tdID0gJG1vZC0+Q3JlYXRlTGluaygKCQkJCQkJCQkJJGlkLCAKCQkJCQkJCQkJJGZpZWxkc1skYUNvbHVtbnNbJGldXVsnYWN0aW9uJ10sIAoJCQkJCQkJCQkkcmV0dXJuaWQsIAoJCQkJCQkJCQlzZWxmOjpjcmVhdGVTeXN0ZW1JY29uKCRtb2QsICRpY29uLCAkYWx0LCAkdGV4dCksIAoJCQkJCQkJCQlhcnJheSgnbm9kZSc9PiRub2RlLCAnaWR4Jz0+JGMxWydpZHgnXSwgJ3NldCc9PiRzZXQpLAoJCQkJCQkJCQknJywgJycsICcnLCAnY2xhc3M9InJlcGxhY2Ugc2V0IicsICcnLCAnJyk7CgkJCQkJCQl9CgoJCQkJCQl9IGVsc2UgewoJCQkJCQkJJHJvd1tdID0gJGMxWyRhQ29sdW1uc1skaV1dOwoJCQkJCQl9CgoJCQkJCX0gZWxzZSB7CgkJCQkJCSRyb3dbXSA9ICRjMVskYUNvbHVtbnNbJGldXTsKCQkJCQl9CgkJCQl9CgkJCX0JCQkKCgkJCWlmKCRtb2QtPkNoZWNrUGVybWlzc2lvbigkY2ZnWydtb2R1bGUnXSAuJyBFZGl0JykgJiYgaXNzZXQoJGNmZ1snYWN0aW9uJ11bJ2VkaXQnXSkpCgkJCQkkcm93W109ICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnaW5zZXJ0dXBkYXRlJywgJHJldHVybmlkLCBzZWxmOjpjcmVhdGVTeXN0ZW1JY29uKCRtb2QsICdlZGl0JywgJ0VkaXQnLCAnRWRpdCcpLCBhcnJheSgnbm9kZSc9PiRub2RlLCAnaWR4Jz0+JGMxWydpZHgnXSksCgkJCQkJCQkJCQkgJycsICcnLCAnJywnY2xhc3M9InByZXBlbmQgZWRpdCInLCAnJywgJycpOwoJCQllbHNlICRyb3dbXSA9ICcnOwoKCQkJaWYgKCRtb2QtPkNoZWNrUGVybWlzc2lvbigkY2ZnWydtb2R1bGUnXSAuJyBEZWxldGUnKSAmJiBpc3NldCgkY2ZnWydhY3Rpb24nXVsnZGVsZXRlJ10pKQoJCQkJaWYgKCRkZWxldGUgPT0gMCkKCQkJCQkkcm93W10gPSAnJzsKCQkJCWVsc2UKCQkJCQkkcm93W10gPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2RlbGV0ZScsICRyZXR1cm5pZCwgc2VsZjo6Y3JlYXRlU3lzdGVtSWNvbigkbW9kLCAnZGVsZXRlJywgJ0RlbGV0ZScsICdEZWxldGUnKSwgYXJyYXkoJ25vZGUnPT4kbm9kZSwgJ2lkeCc9PiRjMVsnaWR4J10pLAoJCQkJCQkJCQkJCSAgJycsICcnLCAnJywnY2xhc3M9InByZXBlbmQgZGVsZXRlIicsICcnLCAnJyk7CgkJCWVsc2UgJHJvd1tdID0gJyc7CgkJCQoJCQkkb1snYWFEYXRhJ11bXSA9ICRyb3c7CgkJfQoKCQkvLyByZXN1bHQKCQlyZXR1cm4gJG87CiAgIAl9CgoKCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY3JlYXRlU3lzdGVtSWNvbiAoJG1vZCwgJGljbywgJGFsdCA9ICcnLCAkdGl0bGUgPSAnJykKCXsKCQkkdGhlbWVhZG1pbiA9IGdldF9wcmVmZXJlbmNlKGdldF91c2VyaWQoKSwgJ2FkbWludGhlbWUnLCAnZGVmYXVsdCcpOwoKCQkkYWx0ID0gKCRhbHQgIT0gJycpID8gJyBhbHQgPSAiJy4gJG1vZC0+TGFuZygkYWx0KSAuJyInIDogJyc7CgkJJHRpdGxlID0gKCR0aXRsZSAhPSAnJykgPyAnIHRpdGxlID0gIicuICRtb2QtPkxhbmcoJHRpdGxlKSAuJyInIDogJyc7CgoJCXJldHVybiAnPGltZyBjbGFzcz0ic3lzdGVtaWNvbiIgc3JjPSJ0aGVtZXMvJy4gJHRoZW1lYWRtaW4gLicvaW1hZ2VzL2ljb25zL3N5c3RlbS8nLiAkaWNvIC4nLmdpZiIgJy4gJGFsdCAuICR0aXRsZSAuJyAvPic7Cgl9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/class.EFAGISmsLight_ovh_ops.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKY2xhc3MgRUZBR0lTbXNMaWdodF9vdmhfb3BzCnsKCgkvKioKCSogRXJyb3JzCgkqCgkqLwoKCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gdGVsRXJyb3JTb2FwaSgkZmF1bHRjb2RlLCAkZmF1bHRzdHJpbmcpCgl7ICAKCQkkbW9kID0gY2FsbF91c2VyX2Z1bmMoYXJyYXkoJ0VGQUdJU21zTGlnaHQnLCAnR2V0TW9kdWxlSW5zdGFuY2UnKSwgJ0VGQUdJU21zTGlnaHQnKTsKCgkJaWYgKCRmYXVsdGNvZGUgPT0gJ3NvYXA6MjAxJykKCQkJJG1zZyA9ICRtb2QtPkxhbmcoJ3NvYXA6MjAxJyk7CgoJCWlmICgkZmF1bHRjb2RlID09ICdzb2FwOjIxMCcpCgkJCSRtc2cgPSAkbW9kLT5MYW5nKCdzb2FwOjIxMCcpOwoKCQllbHNlIGlmICgkZmF1bHRjb2RlID09ICdzb2FwOjQwMScpCgkJCSRtc2cgPSAkbW9kLT5MYW5nKCdzb2FwOjQwMScpOwoKCQllbHNlIGlmICgkZmF1bHRjb2RlID09ICdzb2FwOjIwMicpCgkJCSRtc2cgPSAkbW9kLT5MYW5nKCdzb2FwOjIwMicpOwoKCQllbHNlIGlmICgkZmF1bHRjb2RlID09ICdzb2FwOjQ1MScpCgkJCSRtc2cgPSAkbW9kLT5MYW5nKCdzb2FwOjQ1MScpOwoKCQllbHNlIGlmICgkZmF1bHRjb2RlID09ICdzb2FwOjQ2MScpCgkJCSRtc2cgPSAkbW9kLT5MYW5nKCdzb2FwOjQ2MScpOwoKCQllbHNlCgkJCSRtc2cgPSAkZmF1bHRjb2RlIC4nICcuICRmYXVsdHN0cmluZyA7CgoJCXJldHVybiAkbXNnOwoJfQoKCgkvKioKCSogU29hcGkKCSoKCSovCgoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiB0ZWxTbXNVc2VySGlzdG9yeSgkdXNlckxvZ2luLCAkdXNlclBhc3N3b3JkLCAkc21zQWNjb3VudCwgJHNtc0lkKQoJewoJCSR1c2VyID0gJyc7CgkJJHBhZ2luZ1N0YXJ0ID0gMDsKCQkkcGFnaW5nTGltaXQgPSAnJzsKCQkkc29ydEZpZWxkID0gJyc7CgkJJHNvcnRPcmRlciA9ICcnOwoJCSR0YWcgPSAnJzsKCQkkZmlsdGVyID0gJyc7CgoJCXRyeSB7CgkJCSRzb2FwID0gbmV3IFNvYXBDbGllbnQoImh0dHBzOi8vd3d3Lm92aC5jb20vc29hcGkvc29hcGktcmUtMS40OS53c2RsIik7CgkJCSRvdXRwdXQgPSAkc29hcC0+dGVsZXBob255U21zVXNlckhpc3RvcnkoJHVzZXJMb2dpbiwgJHVzZXJQYXNzd29yZCwgJHNtc0FjY291bnQsICRzbXNJZCwgJHVzZXIsICRwYWdpbmdTdGFydCwgJHBhZ2luZ0xpbWl0LCAkc29ydEZpZWxkLCAkc29ydE9yZGVyLCAkdGFnLCAkZmlsdGVyKTsKCgkJfSBjYXRjaChTb2FwRmF1bHQgJGZhdWx0KSB7CgkJCSRvdXRwdXQgPSBFRkFHSVNtc0xpZ2h0X292aF9vcHM6OnRlbEVycm9yU29hcGkoJGZhdWx0LT5mYXVsdGNvZGUsICRmYXVsdC0+ZmF1bHRzdHJpbmcpOwoJCX0KCgkJcmV0dXJuICRvdXRwdXQ7Cgl9CgoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiB0ZWxTbXNVc2VyU2VuZCgkdXNlckxvZ2luLCAkdXNlclBhc3N3b3JkLCAkc21zQWNjb3VudCwgJG51bWJlckZyb20sICRudW1iZXJUbywgJG1lc3NhZ2UpCgl7CgkJJHNtc1ZhbGlkaXR5ID0gJzEwJzsgLy8gbW4KCQkkc21zQ2xhc3MgPSAxOwoJCSRzbXNEZWZlcnJlZCA9ICcxMCc7IC8vIG1uCgkJJHNtc1ByaW9yaXR5ID0gJzMnOwoJCSRzbXNDb2RpbmcgPSAxOwoJCSR0YWcgPSAnJzsKCQkkbnVtYmVyVG9Dc3YgPSAnJzsKCQkkbm9TdG9wID0gZmFsc2U7CgoJCXRyeSB7CgkJCSRzb2FwID0gbmV3IFNvYXBDbGllbnQoImh0dHBzOi8vd3d3Lm92aC5jb20vc29hcGkvc29hcGktcmUtMS40OS53c2RsIik7CgkJCSRyZXNwb25zZVF1ZXJ5ID0gJHNvYXAtPnRlbGVwaG9ueVNtc1VzZXJTZW5kKCR1c2VyTG9naW4sICR1c2VyUGFzc3dvcmQsICRzbXNBY2NvdW50LCAkbnVtYmVyRnJvbSwgJG51bWJlclRvLCAkbWVzc2FnZSwgJHNtc1ZhbGlkaXR5LCAkc21zQ2xhc3MsICRzbXNEZWZlcnJlZCwgJHNtc1ByaW9yaXR5LCAkc21zQ29kaW5nLCAkdGFnLCAkbnVtYmVyVG9Dc3YsICRub1N0b3ApOwoJCQkkb3V0cHV0ID0gYXJyYXkoJ21zZ1R5cGUnPT4yLCAnbXNnVGV4dCc9PidDb2RlIHNlbmRpbmcnKTsKCgkJfSBjYXRjaChTb2FwRmF1bHQgJGZhdWx0KSB7CgkJCSRyZXNwb25zZVF1ZXJ5ID0gRUZBR0lTbXNMaWdodF9vdmhfb3BzOjp0ZWxFcnJvclNvYXBpKCRmYXVsdC0+ZmF1bHRjb2RlLCAkZmF1bHQtPmZhdWx0c3RyaW5nKTsKCQkJJG91dHB1dCA9IGFycmF5KCdtc2dUeXBlJz0+MSwgJ21zZ1RleHQnPT4kcmVzcG9uc2VRdWVyeSk7CgkJfQoKCQlyZXR1cm4gJG91dHB1dDsKCX0KCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHRlbFNtc1VzZXJNdWx0aVNlbmQoJHVzZXJMb2dpbiwgJHVzZXJQYXNzd29yZCwgJHNtc0FjY291bnQsICRudW1iZXJGcm9tLCAkbnVtYmVyVG8sICRtZXNzYWdlLCAkc21zQ2xhc3MpCgl7CgkJJHNtc1ZhbGlkaXR5ID0gJzEwJzsgLy8gbW4KCQkkc21zRGVmZXJyZWQgPSAnMTAnOyAvLyBtbgoJCSRzbXNQcmlvcml0eSA9ICczJzsKCQkkc21zQ29kaW5nID0gMTsKCQkkdGFnID0gJyc7CgkJJG51bWJlclRvQ3N2ID0gJyc7CgkJJG5vU3RvcCA9IGZhbHNlOwoKCQl0cnkgCgkJewoJCQkkc29hcCA9IG5ldyBTb2FwQ2xpZW50KCJodHRwczovL3d3dy5vdmguY29tL3NvYXBpL3NvYXBpLXJlLTEuNDkud3NkbCIpOwoJCQkkb3V0cHV0ID0gJHNvYXAtPnRlbGVwaG9ueVNtc1VzZXJNdWx0aVNlbmQoJHVzZXJMb2dpbiwgJHVzZXJQYXNzd29yZCwgJHNtc0FjY291bnQsICRudW1iZXJGcm9tLCAkbnVtYmVyVG8sICRtZXNzYWdlLCAkc21zVmFsaWRpdHksICRzbXNDbGFzcywgJHNtc0RlZmVycmVkLCAkc21zUHJpb3JpdHksICRzbXNDb2RpbmcsICR0YWcsICRudW1iZXJUb0NzdiwgJG5vU3RvcCk7CgkJCgkJfSBjYXRjaChTb2FwRmF1bHQgJGZhdWx0KSB7CgkJCSRvdXRwdXQgPSBFRkFHSVNtc0xpZ2h0X292aF9vcHM6OnRlbEVycm9yU29hcGkoJGZhdWx0LT5mYXVsdGNvZGUsICRmYXVsdC0+ZmF1bHRzdHJpbmcpOwoJCX0KCgkJcmV0dXJuICRvdXRwdXQ7Cgl9CgoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiB0ZWxTbXNHZXRRdW90YU5vdGlmaWNhdGlvbkZvclVzZXIoJHNtc0FjY291bnQsICR1c2VyTG9naW4sICR1c2VyUGFzc3dvcmQpCgl7IAoJCXRyeSAKCQl7CgkJIAkkc29hcCA9IG5ldyBTb2FwQ2xpZW50KCJodHRwczovL3d3dy5vdmguY29tL3NvYXBpL3NvYXBpLXJlLTEuNDkud3NkbCIpOwogCQkJJHJlc3BvbnNlUXVlcnkgPSAkc29hcC0+dGVsZXBob255U21zR2V0UXVvdGFOb3RpZmljYXRpb25Gb3JVc2VyKCRzbXNBY2NvdW50LCAkdXNlckxvZ2luLCAkdXNlclBhc3N3b3JkKTsJCiAJCQkkb3V0cHV0ID0gYXJyYXkoJ21zZ1R5cGUnPT4wLCAnc3VwcG9ydCc9PiRyZXNwb25zZVF1ZXJ5LT5zdXBwb3J0LCAnYWxlcnRUaHJlc2hvbGQnPT4kcmVzcG9uc2VRdWVyeS0+YWxlcnRUaHJlc2hvbGQsICdhbGVydE51bWJlcic9PiRyZXNwb25zZVF1ZXJ5LT5hbGVydE51bWJlciwgJ2FsZXJ0RW1haWwnPT4kcmVzcG9uc2VRdWVyeS0+YWxlcnRFbWFpbCk7CgkJCS8qc3RkQ2xhc3MgT2JqZWN0IAoJCQkoIAoJCQkJW3N1cHBvcnRdID0+IG1haWwvc21zL2JvdGggCgkJCQlbYWxlcnRUaHJlc2hvbGRdID0+IC0xIG5vbmUKCQkJCVthbGVydE51bWJlcl0gPT4gMDAzM3h4eHh4eHh4eCAKCQkJCVthbGVydEVtYWlsXSA9PiB4eHhAeHgueHgKCQkJKSAqLwoJCQoJCX0gY2F0Y2goU29hcEZhdWx0ICRmYXVsdCkgewoJCSAJJHJlc3BvbnNlUXVlcnkgPSBFRkFHSVNtc0xpZ2h0X292aF9vcHM6OnRlbEVycm9yU29hcGkoJGZhdWx0LT5mYXVsdGNvZGUsICRmYXVsdC0+ZmF1bHRzdHJpbmcpOwoJCSAJJG91dHB1dCA9IGFycmF5KCdtc2dUeXBlJz0+MSwgJ21zZ1RleHQnPT4kcmVzcG9uc2VRdWVyeSk7CgkJfQoKCQlyZXR1cm4gJG91dHB1dDsKCX0KCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHRlbFNtc0dldFVzZXJRdW90YUZvclVzZXIoJHNtc0FjY291bnQsICR1c2VyTG9naW4sICR1c2VyUGFzc3dvcmQpCgl7CgkJdHJ5IAoJCXsKCQkJJHNvYXAgPSBuZXcgU29hcENsaWVudCgiaHR0cHM6Ly93d3cub3ZoLmNvbS9zb2FwaS9zb2FwaS1yZS0xLjQ5LndzZGwiKTsKCQkJJHJlc3BvbnNlUXVlcnkgPSAkc29hcC0+dGVsZXBob255U21zR2V0VXNlclF1b3RhRm9yVXNlcigkc21zQWNjb3VudCwgJHVzZXJMb2dpbiwgJHVzZXJQYXNzd29yZCk7CgkJCSRvdXRwdXQgPSBhcnJheSgnbXNnVHlwZSc9PjAsICdxdW90YUxlZnQnPT4kcmVzcG9uc2VRdWVyeS0+cXVvdGFMZWZ0KTsKCQkJLypzdGRDbGFzcyBPYmplY3QgCgkJCSggCgkJCQlbcXVvdGFMZWZ0XSA9PiB4eAoJCQkJW3F1b3RhU3RhdHVzXSA9PiBhY3RpdmUgCgkJCSkqLwoJCX0gY2F0Y2goU29hcEZhdWx0ICRmYXVsdCkgewoJCSAJJHJlc3BvbnNlUXVlcnkgPSBFRkFHSVNtc0xpZ2h0X292aF9vcHM6OnRlbEVycm9yU29hcGkoJGZhdWx0LT5mYXVsdGNvZGUsICRmYXVsdC0+ZmF1bHRzdHJpbmcpOwoJCSAJJG91dHB1dCA9IGFycmF5KCdtc2dUeXBlJz0+MSwgJ21zZ1RleHQnPT4kcmVzcG9uc2VRdWVyeSk7CgkJfQoKCQlyZXR1cm4gJG91dHB1dDsKCX0KfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/class.EFAGISmsLight_preferences.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIEVGQUdJU21zTGlnaHRfcHJlZmVyZW5jZXMKewoJcHJvdGVjdGVkICRpZCA9IGZhbHNlOwkKCXByb3RlY3RlZCAkcmV0dXJuaWQgPSBmYWxzZTsKCXByb3RlY3RlZCAkcGFyYW1zID0gZmFsc2U7CQoKCXByaXZhdGUgJGNmZyA9IGFycmF5KAoJCSdtb2R1bGUnID0+ICdFRkFHSVNtc0xpZ2h0JywKCQkndGl0bGUnID0+ICdQcmVmZXJlbmNlcycsCgkJJ2FkbWluX3BhbmVsX3RlbXBsYXRlJyA9PiAnYWRtaW5fcGFuZWxfcHJlZmVyZW5jZXMudHBsJwoJKTsKCglwcml2YXRlICRmbGRzID0gYXJyYXkoCgkJJ3ByZWZlcmVuY2VzX2NhcHRjaGEnID0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXRkcm9wZG93bicsICdsYWJlbCc9PidQcmVmZXJlbmNlIENhcHRjaGEnKSwKCQkncHJlZmVyZW5jZXNfZGF0YXRhYmxlX3BhZ2luYXRpb24nID0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXRkcm9wZG93bicsICdsYWJlbCc9PidQcmVmZXJlbmNlIERhdGF0YWJsZSBQYWdpbmF0aW9uJyksCgkJJ3ByZWZlcmVuY2VzX2RhdGF0YWJsZV9yZWNvcmRzJyA9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0ZHJvcGRvd24nLCAnbGFiZWwnPT4nUHJlZmVyZW5jZSBEYXRhdGFibGUgUmVjb3JkcycpLAoJCSdwcmVmZXJlbmNlc19kYXRhdGFibGVfc2VhcmNoJyA9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0ZHJvcGRvd24nLCAnbGFiZWwnPT4nUHJlZmVyZW5jZSBEYXRhdGFibGUgU2VhcmNoJyksCgkJJ3ByZWZlcmVuY2VzX2RhdGF0YWJsZV9jb2xvbm5lc19maWx0ZXJzJyA9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0ZHJvcGRvd24nLCAnbGFiZWwnPT4nUHJlZmVyZW5jZSBEYXRhdGFibGUgQ29sb25uZXMgRmlsdGVycycpLAoJCSdwcmVmZXJlbmNlc19kYXRhdGFibGVfY29weV9zYXZlJyA9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0ZHJvcGRvd24nLCAnbGFiZWwnPT4nUHJlZmVyZW5jZSBEYXRhdGFibGUgQ29weSBTYXZlJyksCgkJJ3N1Ym1pdCcgPT4gYXJyYXkoJ2NyZWF0ZSc9PidpbnB1dHN1Ym1pdCcsICd2YWx1ZSc9PidCdXR0b24gU2VuZCcpLAoJCSdmb3JtJwk9PiBhcnJheSgnY3JlYXRlJz0+J2JhY2tlbmRmb3JtJywgJ2FjdGlvbic9PidwcmVmZXJlbmNlcycsICduYW1lJz0+J3ByZWZlcmVuY2VzJykKCSk7CgoJLyoqCgkqIENvbnN0cnVjdG9yCgkqCgkqLwoKCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkaWQgPSBmYWxzZSwgJHJldHVybmlkID0gZmFsc2UsICRwYXJhbXMgPSBmYWxzZSkKCXsKCQkkdGhpcy0+bW9kID0gY2FsbF91c2VyX2Z1bmMoYXJyYXkoJHRoaXMtPmNmZ1snbW9kdWxlJ10sICdHZXRNb2R1bGVJbnN0YW5jZScpLCAkdGhpcy0+Y2ZnWydtb2R1bGUnXSk7CgkJJHRoaXMtPmlkID0gJGlkOwoJCSR0aGlzLT5yZXR1cm5pZCA9ICRyZXR1cm5pZDsKCQkkdGhpcy0+cGFyYW1zID0gJHBhcmFtczsJCgkJJHRoaXMtPm5vZGUgPSAkcGFyYW1zWydub2RlJ107CgkJJHRoaXMtPmZsZHNbJ3ByZWZlcmVuY2VzX2NhcHRjaGEnXVsnaXRlbXMnXSA9IGFycmF5KCR0aGlzLT5tb2QtPkxhbmcoJ05vbmUnKT0+LTEsICR0aGlzLT5tb2QtPkxhbmcoJ0VGQUdJU21zTGlnaHRDYXB0Y2hhJyk9PidFRkFHSVNtc0xpZ2h0Jyk7CgkJLy9pZiAoJHRoaXMtPm1vZC0+Z2V0TW9kdWxlSW5zdGFuY2UoJ0NhcHRjaGEnKSkgJHRoaXMtPmZsZHNbJ3ByZWZlcmVuY2VzX2NhcHRjaGEnXVsnaXRlbXMnXVskdGhpcy0+bW9kLT5MYW5nKCdDYXB0Y2hhJyldID0gJ0NhcHRjaGEnOwoJCSR0aGlzLT5mbGRzWydwcmVmZXJlbmNlc19kYXRhdGFibGVfcGFnaW5hdGlvbiddWydpdGVtcyddID0gYXJyYXkoJHRoaXMtPm1vZC0+TGFuZygnUGFnaW5hdGlvbiBEZWZhdWx0Jyk9PjEsICR0aGlzLT5tb2QtPkxhbmcoJ1BhZ2luYXRpb24gRnVsbCBOdW1iZXJzJyk9PjIpOwoJCSR0aGlzLT5mbGRzWydwcmVmZXJlbmNlc19kYXRhdGFibGVfcmVjb3JkcyddWydpdGVtcyddID0gYXJyYXkoJHRoaXMtPm1vZC0+TGFuZygnRW5hYmxlIHJlY29yZHMnKT0+MSwgJHRoaXMtPm1vZC0+TGFuZygnRGlzYWJsZSByZWNvcmRzJyk9Pi0xKTsKCQkkdGhpcy0+Zmxkc1sncHJlZmVyZW5jZXNfZGF0YXRhYmxlX3NlYXJjaCddWydpdGVtcyddID0gYXJyYXkoJHRoaXMtPm1vZC0+TGFuZygnRW5hYmxlIHNlYXJjaCcpPT4xLCAkdGhpcy0+bW9kLT5MYW5nKCdEaXNhYmxlIHNlYXJjaCcpPT4tMSk7CgkJJHRoaXMtPmZsZHNbJ3ByZWZlcmVuY2VzX2RhdGF0YWJsZV9jb2xvbm5lc19maWx0ZXJzJ11bJ2l0ZW1zJ10gPSBhcnJheSgkdGhpcy0+bW9kLT5MYW5nKCdFbmFibGUgZmlsdGVycycpPT4xLCAkdGhpcy0+bW9kLT5MYW5nKCdEaXNhYmxlIGZpbHRlcnMnKT0+LTEpOwoJCSR0aGlzLT5mbGRzWydwcmVmZXJlbmNlc19kYXRhdGFibGVfY29weV9zYXZlJ11bJ2l0ZW1zJ10gPSBhcnJheSgkdGhpcy0+bW9kLT5MYW5nKCdFbmFibGUgY29weSBzYXZlJyk9PjEsICR0aGlzLT5tb2QtPkxhbmcoJ0Rpc2FibGUgY29weSBzYXZlJyk9Pi0xKTsKCQkKCQkkdGhpcy0+bW9kLT5JbmNsdWRlVGVtcGxhdGUoKTsKCX0KCgkvKioKCSogQWN0aW9uIDogYWRtaW5QYW5lbAoJKgoJKiBAcmV0dXJuIGFycmF5CgkqLwoKCXB1YmxpYyBmdW5jdGlvbiBhZG1pblBhbmVsKCkKCXsKCQkvLyBjcmVhdGUgdGhlIGZvcm0KCQkkbyA9IHNlbGY6OmNyZWF0ZUZvcm1FbGVtZW50KCk7CgkJCgkJLy8gYWRkIGVsZW1lbnRzCgkJJG9bJ3RpdGxlJ10JPSAkdGhpcy0+bW9kLT5MYW5nKCR0aGlzLT5jZmdbJ3RpdGxlJ10pOwoKCQkvLyBzbWFydHkKCQkkdGhpcy0+bW9kLT5zbWFydHktPmFzc2lnbignbycsICRvKTsJCgoJCS8vIHRlbXBsYXRlCQoJCSR0ZW1wbGF0ZSA9ICgkb1snbXNnVHlwZSddID09PSAxIHx8ICRvWydtc2dUeXBlJ10gPT09IDIgKSA/ICdtZXNzYWdlX2JveC50cGwnIDogJHRoaXMtPmNmZ1snYWRtaW5fcGFuZWxfdGVtcGxhdGUnXTsKCgkJLy8gcmVzdWx0CgkJcmV0dXJuICR0aGlzLT5yZXMgPSBhcnJheSgnbXNnVHlwZSc9PiRvWydtc2dUeXBlJ10sICdyZXN1bHQnPT4kdGhpcy0+bW9kLT5Qcm9jZXNzVGVtcGxhdGUoJHRlbXBsYXRlKSk7CQkKCX0KCgkvKioKCSogQWN0aW9uIDogdXBkYXRlUHJlZmVyZW5jZXMKCSoKCSogQHJldHVybiBhcnJheQoJKi8KCglwdWJsaWMgZnVuY3Rpb24gdXBkYXRlUHJlZmVyZW5jZXMoKQoJewoJCS8vIHNhdmUKCQkkbyA9IHNlbGY6OnNhdmVQcmVmZXJlbmNlcygpOwoKCQkvLyBzbWFydHkJCQoJCSR0aGlzLT5tb2QtPnNtYXJ0eS0+YXNzaWduKCdvJywgJG8pOwoKCQkvLyByZXN1bHQKCQlyZXR1cm4gJHRoaXMtPnJlcyA9IGFycmF5KCdtc2dUeXBlJz0+JG9bJ21zZ1R5cGUnXSwgJ3Jlc3VsdCc9PiR0aGlzLT5tb2QtPlByb2Nlc3NUZW1wbGF0ZSgnbWVzc2FnZV9ib3gudHBsJykpOwoJfQoKCS8qKgoJKiBGdW5jdGlvbiA6IGNyZWF0ZUZvcm1FbGVtZW50CgkqCgkqIEByZXR1cm4gYXJyYXkKCSovCgoJcHJpdmF0ZSBmdW5jdGlvbiBjcmVhdGVGb3JtRWxlbWVudCgpCgl7CQkKCQkvLyBsb2FkIHZhbHVlcwoJCXNlbGY6OmxvYWRQcmVmcmVuY2VzKCk7CgoJCSRvID0gRUZBR0lTbXNMaWdodF9DcmVhdGVGb3JtOjpjcmVhdGVGb3JtRWxlbWVudCgkdGhpcy0+bW9kLCAkdGhpcy0+aWQsICR0aGlzLT5yZXR1cm5pZCwgJHRoaXMtPmZsZHMpOwoKCQkvLyBhZGQgZWxlbWVudHMKCQkkb1snaGlkZGVucyddW10gPSAkdGhpcy0+bW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkdGhpcy0+aWQsICdub2RlJywgJHRoaXMtPm5vZGUpOwoJCSRvWydwcmVmZXJlbmNlc19jYXB0Y2hhJ11bJ2ZpZWxkc2V0J10gPSAkdGhpcy0+bW9kLT5DcmVhdGVGaWVsZHNldFN0YXJ0KCR0aGlzLT5pZCwgJ3ByZWZlcmVuY2VzX2NhcHRjaGEnLCAkdGhpcy0+bW9kLT5MYW5nKCdDYXB0Y2hhJyksICcnLCAnJyk7CgkJJG9bJ3ByZWZlcmVuY2VzX2RhdGF0YWJsZSddWydmaWVsZHNldCddID0gJHRoaXMtPm1vZC0+Q3JlYXRlRmllbGRzZXRTdGFydCgkdGhpcy0+aWQsICdwcmVmZXJlbmNlc19kYXRhdGFibGUnLCAkdGhpcy0+bW9kLT5MYW5nKCdEYXRhdGFibGUnKSwgJycsICcnKTsKCQkkb1snZW5kJ11bJ2ZpZWxkc2V0J10gPSAkdGhpcy0+bW9kLT5DcmVhdGVGaWVsZHNldEVuZCgpOwoJCSRvWydtc2dUeXBlJ10gPSAwOwoJCSRvWydtc2dUZXh0J10gPSAnJzsKCgkJLy8gcmVzdWx0CgkJcmV0dXJuICRvOwoJfQoKCS8qKgoJKiBGdW5jdGlvbiA6IGxvYWRQcmVmcmVuY2VzCgkqCgkqLwoKCXByaXZhdGUgZnVuY3Rpb24gbG9hZFByZWZyZW5jZXMoKQoJewoJCSR0aGlzLT5mbGRzWydwcmVmZXJlbmNlc19jYXB0Y2hhJ11bJ3ZhbHVlJ10gPSAkdGhpcy0+bW9kLT5HZXRQcmVmZXJlbmNlKCdwcmVmZXJlbmNlc19jYXB0Y2hhJyk7CgkJJHRoaXMtPmZsZHNbJ3ByZWZlcmVuY2VzX2RhdGF0YWJsZV9wYWdpbmF0aW9uJ11bJ3ZhbHVlJ10gPSAkdGhpcy0+bW9kLT5HZXRQcmVmZXJlbmNlKCdwcmVmZXJlbmNlc19kYXRhdGFibGVfcGFnaW5hdGlvbicpOwoJCSR0aGlzLT5mbGRzWydwcmVmZXJlbmNlc19kYXRhdGFibGVfcmVjb3JkcyddWyd2YWx1ZSddID0gJHRoaXMtPm1vZC0+R2V0UHJlZmVyZW5jZSgncHJlZmVyZW5jZXNfZGF0YXRhYmxlX3JlY29yZHMnKTsKCQkkdGhpcy0+Zmxkc1sncHJlZmVyZW5jZXNfZGF0YXRhYmxlX3NlYXJjaCddWyd2YWx1ZSddID0gJHRoaXMtPm1vZC0+R2V0UHJlZmVyZW5jZSgncHJlZmVyZW5jZXNfZGF0YXRhYmxlX3NlYXJjaCcpOwoJCSR0aGlzLT5mbGRzWydwcmVmZXJlbmNlc19kYXRhdGFibGVfY29sb25uZXNfZmlsdGVycyddWyd2YWx1ZSddID0gJHRoaXMtPm1vZC0+R2V0UHJlZmVyZW5jZSgncHJlZmVyZW5jZXNfZGF0YXRhYmxlX2NvbG9ubmVzX2ZpbHRlcnMnKTsKCQkkdGhpcy0+Zmxkc1sncHJlZmVyZW5jZXNfZGF0YXRhYmxlX2NvcHlfc2F2ZSddWyd2YWx1ZSddID0gJHRoaXMtPm1vZC0+R2V0UHJlZmVyZW5jZSgncHJlZmVyZW5jZXNfZGF0YXRhYmxlX2NvcHlfc2F2ZScpOwoJfQoKCS8qKgoJKiBGdW5jdGlvbiA6IHNhdmVQcmVmZXJlbmNlcwoJKgoJKiBAcmV0dXJuIGFycmF5CgkqLwoKCXByaXZhdGUgZnVuY3Rpb24gc2F2ZVByZWZlcmVuY2VzKCkKCXsKCQkvLyB2YWxpZGF0ZSB2YWx1ZXMKCQkkbyA9IEVGQUdJU21zTGlnaHRfVmFsaWRhdGVGb3JtOjp2YWxpZGF0ZUZpZWxkcygkdGhpcy0+bW9kLCAkdGhpcy0+ZmxkcywgJHRoaXMtPnBhcmFtcyk7CgoJCWlmICgkb1snbXNnVHlwZSddID09IDIpCgkJewoJCQkkb1snbXNnVHlwZSddID0gNzsKCQkJJG9bJ21zZ1RleHQnXSA9ICR0aGlzLT5tb2QtPkxhbmcoJ1ZhbHVlKHMpIGlzIHNhdmVkLicsICR0aGlzLT5tb2QtPkxhbmcoJHRoaXMtPmNmZ1sndGl0bGUnXSkpOwkKCQkJJHRoaXMtPm1vZC0+U2V0UHJlZmVyZW5jZSgncHJlZmVyZW5jZXNfY2FwdGNoYScsICR0aGlzLT5wYXJhbXNbJ3ByZWZlcmVuY2VzX2NhcHRjaGEnXSk7CgkJCSR0aGlzLT5tb2QtPlNldFByZWZlcmVuY2UoJ3ByZWZlcmVuY2VzX2RhdGF0YWJsZV9wYWdpbmF0aW9uJywgJHRoaXMtPnBhcmFtc1sncHJlZmVyZW5jZXNfZGF0YXRhYmxlX3BhZ2luYXRpb24nXSk7CgkJCSR0aGlzLT5tb2QtPlNldFByZWZlcmVuY2UoJ3ByZWZlcmVuY2VzX2RhdGF0YWJsZV9yZWNvcmRzJywgJHRoaXMtPnBhcmFtc1sncHJlZmVyZW5jZXNfZGF0YXRhYmxlX3JlY29yZHMnXSk7CgkJCSR0aGlzLT5tb2QtPlNldFByZWZlcmVuY2UoJ3ByZWZlcmVuY2VzX2RhdGF0YWJsZV9zZWFyY2gnLCAkdGhpcy0+cGFyYW1zWydwcmVmZXJlbmNlc19kYXRhdGFibGVfc2VhcmNoJ10pOwoJCQkkdGhpcy0+bW9kLT5TZXRQcmVmZXJlbmNlKCdwcmVmZXJlbmNlc19kYXRhdGFibGVfY29sb25uZXNfZmlsdGVycycsICR0aGlzLT5wYXJhbXNbJ3ByZWZlcmVuY2VzX2RhdGF0YWJsZV9jb2xvbm5lc19maWx0ZXJzJ10pOwoJCQkkdGhpcy0+bW9kLT5TZXRQcmVmZXJlbmNlKCdwcmVmZXJlbmNlc19kYXRhdGFibGVfY29weV9zYXZlJywgJHRoaXMtPnBhcmFtc1sncHJlZmVyZW5jZXNfZGF0YXRhYmxlX2NvcHlfc2F2ZSddKTsKCQl9CgoJCS8vIHJlc3VsdAoJCXJldHVybiBhcnJheSgnbXNnVHlwZSc9PiRvWydtc2dUeXBlJ10sICdtc2dUZXh0Jz0+JG9bJ21zZ1RleHQnXSk7Cgl9Cn0=]]></data>
	</file>
	<file>
	  <filename>/lib/class.EFAGISmsLight_recipients.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIEVGQUdJU21zTGlnaHRfcmVjaXBpZW50cwp7Cglwcm90ZWN0ZWQgJGlkID0gZmFsc2U7CQoJcHJvdGVjdGVkICRyZXR1cm5pZCA9IGZhbHNlOwoJcHJvdGVjdGVkICRwYXJhbXMgPSBmYWxzZTsJCgoJcHJpdmF0ZSAkY2ZnID0gYXJyYXkoCgkJJ21vZHVsZScgPT4gJ0VGQUdJU21zTGlnaHQnLAoJCSd0aXRsZScgPT4gJ1JlY2lwaWVudHMnLAoJCSd0YWJsZScgPT4gJ0VGQUdJU21zTGlnaHRfcmVjaXBpZW50cycsCgkJJ2FkbWluX3BhbmVsX3RlbXBsYXRlJyA9PiAnYWRtaW5fcGFuZWxfcmVjaXBpZW50cy50cGwnLAoJCSdhY3Rpb24nID0+IGFycmF5KCdhZGQnPT50cnVlLCAnZWRpdCc9Pid0cnVlJywgJ2RlbGV0ZSc9PnRydWUpCgkpOwoKCXByaXZhdGUgJGZsZHMgPSBhcnJheSgKCQknaWR4JyA9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0aGlkZGVuJywgJ3ZhbHVlJz0+LTEsICdsYWJlbCc9PidSZWNpcGllbnQgSUQnLCAnZGF0YXRhYmxlJz0+MSksCgkJJ2NyZWF0ZWQnID0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXRoaWRkZW4nKSwKCQknbW9kaWZpZWQnID0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXRoaWRkZW4nKSwKCQknbW9kaWZpZWRfYnknID0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXRoaWRkZW4nKSwJCgkJLy8ncmVjaXBpZW50X2xvZ2luJyA9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0dGV4dCcsICdsYWJlbCc9PidSZWNpcGllbnQgbG9naW4nLCAnc2l6ZSc9PjI1LCAnbWF4bGVuZ3RoJz0+MjUsICdyZXF1aXJlZCc9PicqJyksCgkJLy8ncmVjaXBpZW50X3Bhc3N3b3JkJyA9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0cGFzc3dvcmQnLCAnbGFiZWwnPT4nUmVjaXBpZW50IHBhc3N3b3JkJywgJ3NpemUnPT4yNSwgJ21heGxlbmd0aCc9PjI1LCAncmVxdWlyZWQnPT4nKicsICdub2xvYWQnPT4xKSwJCgkJJ3JlY2lwaWVudF9maXJzdG5hbWUnID0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXR0ZXh0JywgJ2xhYmVsJz0+J1JlY2lwaWVudCBmaXJzdG5hbWUnLCAnc2l6ZSc9PjI1LCAnbWF4bGVuZ3RoJz0+MjU1LCAncmVxdWlyZWQnPT4nKicsICdkYXRhdGFibGUnPT4xKSwKCQkncmVjaXBpZW50X25hbWUnID0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXR0ZXh0JywgJ2xhYmVsJz0+J1JlY2lwaWVudCBuYW1lJywgJ3NpemUnPT4yNSwgJ21heGxlbmd0aCc9PjI1NSwgJ3JlcXVpcmVkJz0+JyonLCAnZGF0YXRhYmxlJz0+MSksCgkJJ3JlY2lwaWVudF9tb2JpbCcgPT4gYXJyYXkoJ2NyZWF0ZSc9PidpbnB1dHRlbCcsICdsYWJlbCc9PidSZWNpcGllbnQgbW9iaWwnLCAnc2l6ZSc9PjI1LCAnbWF4bGVuZ3RoJz0+MjU1LCAncmVxdWlyZWQnPT4nKicsICdkYXRhdGFibGUnPT4xKSwKCQkncmVjaXBpZW50X2VtYWlsJyA9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0ZW1haWwnLCAnbGFiZWwnPT4nUmVjaXBpZW50IGVtYWlsJywgJ3NpemUnPT4yNSwgJ21heGxlbmd0aCc9PjI1NSwgJ2RhdGF0YWJsZSc9PjEpLAkJCgkJJ3JlY2lwaWVudF9ncm91cCcgPT4gYXJyYXkoJ2NyZWF0ZSc9PidpbnB1dHNlbGVjdGxpc3QnLCAnbGFiZWwnPT4nUmVjaXBpZW50IEdyb3VwKHMpJywgJ3NpemUnPT41LCAnbXVsdGlwbGUnPT50cnVlLCAncmVxdWlyZWQnPT4nKicsICdkYXRhdGFibGUnPT4xKSwKCQkncmVjaXBpZW50X2FjdGl2ZScgPT4gYXJyYXkoJ2NyZWF0ZSc9PidpbnB1dGNoZWNrYm94JywgJ2FjdGlvbic9PidtYWtlYWN0aXZlJywgJ2xhYmVsJz0+J0FjdGl2ZScsICd2YWx1ZSc9PjEsICd2YWx1ZW5vbmUnPT4wLCAnc2VsZWN0ZWR2YWx1ZSc9PjEsICdkYXRhdGFibGUnPT4xKSwKCgkJJ2NhbmNlbCcgPT4gYXJyYXkoJ2NyZWF0ZSc9PidpbnB1dHN1Ym1pdCcsICd2YWx1ZSc9PidCdXR0b24gQ2FuY2VsJyksCgkJJ3N1Ym1pdCcgPT4gYXJyYXkoJ2NyZWF0ZSc9PidpbnB1dHN1Ym1pdCcsICd2YWx1ZSc9PidCdXR0b24gU2VuZCcpLAoJCSdmb3JtJwk9PiBhcnJheSgnY3JlYXRlJz0+J2JhY2tlbmRmb3JtJywgJ2FjdGlvbic9PidpbnNlcnR1cGRhdGUnLCAnbmFtZSc9Pidncm91cHMnKQoJKTsKCglwcml2YXRlICRkZWxldGUgPSBhcnJheSAoCgkJJ2lkeCcJPT4gYXJyYXkoJ2NyZWF0ZSc9PidpbnB1dGhpZGRlbicpLAoJCSdub2RlJwk9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0aGlkZGVuJywgJ3ZhbHVlJz0+J3JlY2lwaWVudHMnKSwKCQknY2FuY2VsJyA9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0c3VibWl0JywgJ3ZhbHVlJz0+J0J1dHRvbiBDYW5jZWwnKSwKCQknc3VibWl0JyA9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0c3VibWl0JywgJ3ZhbHVlJz0+J0J1dHRvbiBEZWxldGUnKSwKCQknZm9ybScJPT4gYXJyYXkoJ2NyZWF0ZSc9PidiYWNrZW5kZm9ybScsICdhY3Rpb24nPT4nZGVsZXRlJykKCSk7CgoJLyoqCgkqIENvbnN0cnVjdG9yCgkqCgkqLwoKCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkaWQgPSBmYWxzZSwgJHJldHVybmlkID0gZmFsc2UsICRwYXJhbXMgPSBmYWxzZSkKCXsKCQkkdGhpcy0+aWQgPSAkaWQ7CgkJJHRoaXMtPnJldHVybmlkID0gJHJldHVybmlkOwoJCSR0aGlzLT5wYXJhbXMgPSAkcGFyYW1zOwkKCQkkdGhpcy0+bm9kZSA9ICRwYXJhbXNbJ25vZGUnXTsJCgkJJHRoaXMtPm1vZCA9IGNhbGxfdXNlcl9mdW5jKGFycmF5KCR0aGlzLT5jZmdbJ21vZHVsZSddLCAnR2V0TW9kdWxlSW5zdGFuY2UnKSwgJHRoaXMtPmNmZ1snbW9kdWxlJ10pOwoKCQkkdGhpcy0+YWN0aXZlID0gJ3JlY2lwaWVudF9hY3RpdmUnOwkJCQkKCQkkdGhpcy0+Zmxkc1sncmVjaXBpZW50X2dyb3VwJ11bJ2l0ZW1zJ10gPSBFRkFHSVNtc0xpZ2h0X09wZXJhdGlvbnM6OnNlbGVjdFJlY29yZHNGb3JMaXN0KCdFRkFHSVNtc0xpZ2h0X2dyb3VwcycsICdncm91cF9uYW1lJywgYXJyYXkoJ2dyb3VwX2FjdGl2ZSc9PjEpKTsKCgkJJHRoaXMtPm1vZC0+SW5jbHVkZVRlbXBsYXRlKCk7Cgl9CgoJLyoqCgkqIEFjdGlvbiA6IGFkbWluUGFuZWwKCSoKCSogQHJldHVybiBhcnJheQoJKi8KCglwdWJsaWMgZnVuY3Rpb24gYWRtaW5QYW5lbCgpCgl7CQkKCQlpZiAoaXNzZXQoJHRoaXMtPnBhcmFtc1snZGF0YVRhYmxlJ10pKQoJCXsKCQkJZm9yZWFjaCgkX0dFVCBhcyAkaz0+JHYpCgkJCQkkdGhpcy0+cGFyYW1zWyRrXSA9ICR2OwoKCQkJcmV0dXJuICR0aGlzLT5yZXMgPSBFRkFHSVNtc0xpZ2h0X09wZXJhdGlvbnM6OnNlbGVjdFJlY29yZHMoJHRoaXMtPm1vZCwgJHRoaXMtPmNmZywgJHRoaXMtPmZsZHMsICR0aGlzLT5wYXJhbXMsICR0aGlzLT5pZCwgJHRoaXMtPnJldHVybmlkLCAkdGhpcy0+bm9kZSk7CgoJCX0gZWxzZSB7CgoJCQkvLyBmb3IgYWN0aW9ucyByZWNvcmQKCQkJaWYoJHRoaXMtPm1vZC0+Q2hlY2tQZXJtaXNzaW9uKCR0aGlzLT5jZmdbJ21vZHVsZSddIC4nIEFkZCcpICYmIGlzc2V0KCR0aGlzLT5jZmdbJ2FjdGlvbiddWydhZGQnXSkpCgkJCQkkb1snYWRkJ10gPSAkdGhpcy0+bW9kLT5DcmVhdGVMaW5rKAoJCQkJCSR0aGlzLT5pZCwgJ2luc2VydHVwZGF0ZScsICR0aGlzLT5yZXR1cm5pZCwgCgkJCQkJJHRoaXMtPm1vZC0+TGFuZygnQWRkIHJlY2lwaWVudCcpLCAKCQkJCQlhcnJheSgnbm9kZSc9PiR0aGlzLT5ub2RlLCAnaWR4Jz0+LTEpLAoJCQkJCScnLCAnJywgJycsJ2NsYXNzPSJwcmVwZW5kIGFkZCInLCAnJywgJycpOwoKCQkJaWYoJHRoaXMtPm1vZC0+Q2hlY2tQZXJtaXNzaW9uKCdFRkFHSVNtc0xpZ2h0IERlbGV0ZScpICYmIGlzc2V0KCR0aGlzLT5jZmdbJ2FjdGlvbiddWydkZWxldGUnXSkpCgkJCQkkb1snZGVsZXRlbGluayddWydsYWJlbCddID0gJHRoaXMtPm1vZC0+TGFuZygnRGVsZXRlJyk7CgoJCQlpZigkdGhpcy0+bW9kLT5DaGVja1Blcm1pc3Npb24oJ0VGQUdJU21zTGlnaHQgRWRpdCcpICYmIGlzc2V0KCR0aGlzLT5jZmdbJ2FjdGlvbiddWydlZGl0J10pKQoJCQkJJG9bJ2VkaXRsaW5rJ11bJ2xhYmVsJ10gPSAkdGhpcy0+bW9kLT5MYW5nKCdFZGl0Jyk7CgoJCQkvLyBjb2x1bW5zIHRpdGxlCgkJCWZvcmVhY2ggKCR0aGlzLT5mbGRzIGFzICRrID0+ICRjKSAKCQkJCWlmIChpc3NldCgkY1snZGF0YXRhYmxlJ10pKQoJCQkJCSRvWyRrXVsnbGFiZWwnXSA9ICR0aGlzLT5tb2QtPkxhbmcoJGNbJ2xhYmVsJ10pOwoKCgkJCS8vIGZvciB0YWJsZVRvb2xzCgkJCSRvWydmaWx0ZXJzJ10gPSAoJHRoaXMtPm1vZC0+R2V0UHJlZmVyZW5jZSgncHJlZmVyZW5jZXNfZGF0YXRhYmxlX2NvbG9ubmVzX2ZpbHRlcnMnKSA9PSAxKSA/IDEgOiAnJzsKCQkJJG9bJ2xvYWRpbmcnXSA9ICR0aGlzLT5tb2QtPkxhbmcoJ0xvYWRpbmcgZGF0YSBmcm9tIHNlcnZlcicpOwoJCQkkb1snZmlsZW5hbWUnXSA9ICR0aGlzLT5jZmdbJ21vZHVsZSddIC4nICcuICR0aGlzLT5tb2QtPkxhbmcoJHRoaXMtPmNmZ1sndGl0bGUnXSk7CgkJCSRvWyd0aXRsZW5hbWUnXSA9ICR0aGlzLT5tb2QtPkxhbmcoJHRoaXMtPmNmZ1sndGl0bGUnXSk7CgkJCSRvWydzaG93aGlkZSddID0gJHRoaXMtPm1vZC0+TGFuZygnU2hvdyAvIEhpZGUnKTsKCgkJCS8vIGZpbHRlciBsaXN0IGdyb3VwcwoJCQkkdGhpcy0+Zmxkc1sncmVjaXBpZW50X2dyb3VwJ11bJ2l0ZW1zJ11bJHRoaXMtPm1vZC0+TGFuZygnQWxsJyldID0gJyc7CgkJCSRvWydmaWx0ZXInXVsnZ3JvdXAnXSA9ICR0aGlzLT5tb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJHRoaXMtPmlkLCAncmVjaXBpZW50X2dyb3VwJywgJHRoaXMtPmZsZHNbJ3JlY2lwaWVudF9ncm91cCddWydpdGVtcyddKTsKCgkJCS8vIGZpbHRlciBhY3RpdmUKCQkJJHRoaXMtPmZsZHNbJ3JlY2lwaWVudF9hY3RpdmUnXVsnaXRlbXMnXSA9IGFycmF5KCR0aGlzLT5tb2QtPkxhbmcoJ1llcycpPT4xLCAkdGhpcy0+bW9kLT5MYW5nKCdObycpPT4wKTsKCQkJJHRoaXMtPmZsZHNbJ3JlY2lwaWVudF9hY3RpdmUnXVsnaXRlbXMnXVskdGhpcy0+bW9kLT5MYW5nKCdBbGwnKV0gPSAnJzsKCQkJJG9bJ2ZpbHRlciddWydyZWNpcGllbnRfYWN0aXZlJ10gPSAkdGhpcy0+bW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCR0aGlzLT5pZCwgJ3JlY2lwaWVudF9hY3RpdmUnLCAkdGhpcy0+Zmxkc1sncmVjaXBpZW50X2FjdGl2ZSddWydpdGVtcyddKTsKCgkJCS8vIHRpdGxlCgkJCSRvWyd0aXRsZSddCT0gJHRoaXMtPm1vZC0+TGFuZygkdGhpcy0+Y2ZnWyd0aXRsZSddKTsKCgkJCS8vIHNtYXJ0eQoJCQkkdGhpcy0+bW9kLT5zbWFydHktPmFzc2lnbignbycsICRvKTsKCgkJCXJldHVybiAkdGhpcy0+cmVzID0gYXJyYXkoJ21zZ1R5cGUnPT4zLCAncmVzdWx0Jz0+JHRoaXMtPm1vZC0+UHJvY2Vzc1RlbXBsYXRlKCR0aGlzLT5jZmdbJ2FkbWluX3BhbmVsX3RlbXBsYXRlJ10pKTsJCgkJfQoJfQoKCgkvKioKCSogQWN0aW9uIDogaW5zZXJ0VXBkYXRlUmVjb3JkCgkqCgkqIEByZXR1cm4gYXJyYXkKCSovCgoJcHVibGljIGZ1bmN0aW9uIGluc2VydFVwZGF0ZVJlY29yZCgpCgl7CQoJCS8vIHN1Ym1pdAoJCWlmIChpc3NldCgkdGhpcy0+cGFyYW1zWydzdWJtaXQnXSkpCQoJCXsKCQkJLy8gdmFsaWRhdGUgdmFsdWVzCgkJCSRvID0gRUZBR0lTbXNMaWdodF9WYWxpZGF0ZUZvcm06OnZhbGlkYXRlRmllbGRzKCR0aGlzLT5tb2QsICR0aGlzLT5mbGRzLCAkdGhpcy0+cGFyYW1zKTsKCgkJCWlmICgkdGhpcy0+cGFyYW1zWydpZHgnXSA9PSAtMSAmJiAkb1snbXNnVHlwZSddID09IDIpCgkJCQkkbyA9IEVGQUdJU21zTGlnaHRfT3BlcmF0aW9uczo6aW5zZXJ0UmVjb3JkKCR0aGlzLT5tb2QsICR0aGlzLT5jZmcsICR0aGlzLT5mbGRzLCAkdGhpcy0+cGFyYW1zKTsKCgkJCWlmICgkdGhpcy0+cGFyYW1zWydpZHgnXSA+IDAgJiYgJG9bJ21zZ1R5cGUnXSA9PSAyKQoJCQkJJG8gPSBFRkFHSVNtc0xpZ2h0X09wZXJhdGlvbnM6OnVwZGF0ZVJlY29yZCgkdGhpcy0+bW9kLCAkdGhpcy0+Y2ZnLCAkdGhpcy0+ZmxkcywgJHRoaXMtPnBhcmFtcyk7CgkJCgkJLy8gY3JlYXRlIHRoZSBmb3JtCgkJfSBlbHNlIHsKCQkJJG8gPSBFRkFHSVNtc0xpZ2h0X0NyZWF0ZUZvcm06OmNyZWF0ZUZvcm1FbGVtZW50KCR0aGlzLT5tb2QsICR0aGlzLT5pZCwgJHRoaXMtPnJldHVybmlkLCAkdGhpcy0+ZmxkcywgJHRoaXMtPmNmZywgJHRoaXMtPnBhcmFtcyk7CgkJCSRvWydub2RlJ11bJ2ZpZWxkJ10gPSAkdGhpcy0+bW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkdGhpcy0+aWQsICdub2RlJywgJHRoaXMtPm5vZGUpOwoJCQkkb1sncmVjaXBpZW50X2luc2NyaXB0aW9uJ11bJ2ZpZWxkc2V0J10gPSAkdGhpcy0+bW9kLT5DcmVhdGVGaWVsZHNldFN0YXJ0KCR0aGlzLT5pZCwgJ3JlY2lwaWVudF9pbnNjcmlwdGlvbicsICR0aGlzLT5tb2QtPkxhbmcoJ1JlY2lwaWVudCBpbnNjcmlwdGlvbicpLCAnJywgJycpOwoJCQkkb1sncmVjaXBpZW50X2luZm9ybWF0aW9ucyddWydmaWVsZHNldCddID0gJHRoaXMtPm1vZC0+Q3JlYXRlRmllbGRzZXRTdGFydCgkdGhpcy0+aWQsICdyZWNpcGllbnRfaW5mb3JtYXRpb25zJywgJHRoaXMtPm1vZC0+TGFuZygnUmVjaXBpZW50IGluZm9ybWF0aW9ucycpLCAnJywgJycpOwoJCQkkb1sncmVjaXBpZW50X2lkZW50aWZpZXJzJ11bJ2ZpZWxkc2V0J10gPSAkdGhpcy0+bW9kLT5DcmVhdGVGaWVsZHNldFN0YXJ0KCR0aGlzLT5pZCwgJ3JlY2lwaWVudF9pZGVudGlmaWVycycsICR0aGlzLT5tb2QtPkxhbmcoJ1JlY2lwaWVudCBpZGVudGlmaWVycycpLCAnJywgJycpOwoJCQkkb1snZW5kJ11bJ2ZpZWxkc2V0J10gPSAkdGhpcy0+bW9kLT5DcmVhdGVGaWVsZHNldEVuZCgpOwoJCX0KCgkJLy8gZm9yIGNzcwoJCSRvWydjbGFzcyddID0gJHRoaXMtPm5vZGU7CgoJCS8vIHRpdGxlCgkJaWYgKCR0aGlzLT5wYXJhbXNbJ2lkeCddID09IC0xKQoJCQkkb1snaW5zZXJ0VXBkYXRlJ11bJ3RpdGxlJ10gPSAkdGhpcy0+bW9kLT5MYW5nKCdBZGQgcmVjaXBpZW50Jyk7CgkJZWxzZQoJCQkkb1snaW5zZXJ0VXBkYXRlJ11bJ3RpdGxlJ10gPSAkdGhpcy0+bW9kLT5MYW5nKCdFZGl0IHJlY2lwaWVudCcpOwoKCQkvLyBzbWFydHkJCQoJCSR0aGlzLT5tb2QtPnNtYXJ0eS0+YXNzaWduKCdvJywgJG8pOwoKCQkvLyB0ZW1wbGF0ZQoJCSR0ZW1wbGF0ZSA9ICgkb1snbXNnVHlwZSddID09PSAxIHx8ICRvWydtc2dUeXBlJ10gPT09IDIgKSA/ICdtZXNzYWdlX2JveC50cGwnIDogJHRoaXMtPmNmZ1snYWRtaW5fcGFuZWxfdGVtcGxhdGUnXTsKCgkJLy8gcmVzdWx0CgkJcmV0dXJuICR0aGlzLT5yZXMgPSBhcnJheSgnbXNnVHlwZSc9PiRvWydtc2dUeXBlJ10sICdyZXN1bHQnPT4kdGhpcy0+bW9kLT5Qcm9jZXNzVGVtcGxhdGUoJHRlbXBsYXRlKSk7Cgl9CgoKCS8qKgoJKiBBY3Rpb24gOiBkZWxldGVSZWNvcmQKCSoKCSogQHJldHVybiBhcnJheQoJKi8KCglwdWJsaWMgZnVuY3Rpb24gZGVsZXRlUmVjb3JkKCkKCXsKCQkvLyBzdWJtaXQKCQlpZiAoaXNzZXQoJHRoaXMtPnBhcmFtc1snc3VibWl0J10pKQkKCQl7CgkJCSRvID0gRUZBR0lTbXNMaWdodF9PcGVyYXRpb25zOjpkZWxldGVSZWNvcmQoJHRoaXMtPm1vZCwgJHRoaXMtPmNmZywgJHRoaXMtPnBhcmFtcyk7CgoJCS8vIGxvYWQgY29uZmlybQoJCX0gZWxzZSB7CgoJCQkkdGhpcy0+ZGVsZXRlWydub2RlJ11bJ3ZhbHVlJ10gPSAncmVjaXBpZW50cyc7CgkJCSR0aGlzLT5kZWxldGVbJ2lkeCddWyd2YWx1ZSddID0gJHRoaXMtPnBhcmFtc1snaWR4J107CgoJCQkkb1snbXNnVHlwZSddID0gNDsKCQkJJG9bJ2NsYXNzJ10gPSAkdGhpcy0+bm9kZTsKCQkJJG9bJ21zZ1RleHQnXSA9ICR0aGlzLT5tb2QtPmxhbmcoJ0FyZSB5b3Ugc3VyPycpOwoJCQkkb1snc3RhcnQnXVsnZmllbGRzZXQnXSA9ICR0aGlzLT5tb2QtPkNyZWF0ZUZpZWxkc2V0U3RhcnQoJHRoaXMtPmlkLCAnc3RhcnQnLCAkdGhpcy0+bW9kLT5MYW5nKCdDb25maXJtIGRlbGV0ZScpLCAnJywgJycpOwoJCQkkb1snZW5kJ11bJ2ZpZWxkc2V0J10gPSAkdGhpcy0+bW9kLT5DcmVhdGVGaWVsZHNldEVuZCgpOwoKCQkJJG9bJ2RlbGV0ZSddID0gRUZBR0lTbXNMaWdodF9DcmVhdGVGb3JtOjpjcmVhdGVGb3JtRWxlbWVudCgkdGhpcy0+bW9kLCAkdGhpcy0+aWQsICR0aGlzLT5yZXR1cm5pZCwgJHRoaXMtPmRlbGV0ZSk7CgkJfQoKCQkvLyB0aXRsZQoJCSRvWydkZWxldGUnXVsndGl0bGUnXSA9ICR0aGlzLT5tb2QtPkxhbmcoJ0RlbGV0ZSByZWNpcGllbnQnKTsKCgkJLy8gc21hcnR5CgkJJHRoaXMtPm1vZC0+c21hcnR5LT5hc3NpZ24oJ28nLCAkbyk7CgkJCgkJLy8gdGVtcGxhdGUKCQkkdGVtcGxhdGUgPSAoJG9bJ21zZ1R5cGUnXSA9PT0gMSB8fCAkb1snbXNnVHlwZSddID09PSAyICkgPyAnbWVzc2FnZV9ib3gudHBsJyA6ICR0aGlzLT5jZmdbJ2FkbWluX3BhbmVsX3RlbXBsYXRlJ107CgoJCS8vIHJlc3VsdAoJCXJldHVybiAkdGhpcy0+cmVzID0gYXJyYXkoJ21zZ1R5cGUnPT4kb1snbXNnVHlwZSddLCAncmVzdWx0Jz0+JHRoaXMtPm1vZC0+UHJvY2Vzc1RlbXBsYXRlKCR0ZW1wbGF0ZSkpOwoJfQoKCgkvKioKCSogQWN0aW9uIDogbWFrZUFjdGl2ZQoJKgoJKiBAcmV0dXJuIGFycmF5CgkqLwoKCXB1YmxpYyBmdW5jdGlvbiBtYWtlQWN0aXZlKCkKCXsKCQkkbyA9IEVGQUdJU21zTGlnaHRfT3BlcmF0aW9uczo6bWFrZUFjdGl2ZSgkdGhpcy0+Y2ZnLCAkdGhpcy0+YWN0aXZlLCAkdGhpcy0+cGFyYW1zKTsKCgkJLy8gcmVzdWx0CgkJcmV0dXJuICR0aGlzLT5yZXMgPSBhcnJheSgnbXNnVHlwZSc9PiRvWydtc2dUeXBlJ10sICdyZXN1bHQnPT4nJyk7Cgl9Cgp9]]></data>
	</file>
	<file>
	  <filename>/lib/class.EFAGISmsLight_templates.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIEVGQUdJU21zTGlnaHRfdGVtcGxhdGVzCnsKCXByb3RlY3RlZCAkaWQgPSBmYWxzZTsJCglwcm90ZWN0ZWQgJHJldHVybmlkID0gZmFsc2U7Cglwcm90ZWN0ZWQgJHBhcmFtcyA9IGZhbHNlOwkKCglwcml2YXRlICRjZmcgPSBhcnJheSgKCQknbW9kdWxlJyA9PiAnRUZBR0lTbXNMaWdodCcsCgkJJ3RpdGxlJyA9PiAnVGVtcGxhdGVzIGFjdHVhbHMnLAoJCSd0YWJsZScgPT4gJ3RlbXBsYXRlcycsCgkJJ2FkbWluX3BhbmVsX3RlbXBsYXRlJyA9PiAnYWRtaW5fcGFuZWxfdGVtcGxhdGVzLnRwbCcsCgkJJ2FjdGlvbicgPT4gYXJyYXkoJ2FkZCc9PnRydWUsICdlZGl0Jz0+J3RydWUnLCAnZGVsZXRlJz0+dHJ1ZSkKCSk7CgoJcHJpdmF0ZSAkZmxkcyA9IGFycmF5KAoJCSdpZHgnID0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXRoaWRkZW4nLCAndmFsdWUnPT4tMSksCgkJJ3RlbXBsYXRlX25hbWUnID0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXR0ZXh0JywgJ2xhYmVsJz0+J1RlbXBsYXRlIG5hbWUnLCAncGFuZWwnPT50cnVlLCAndGhlYWQnPT50cnVlLCAnc2l6ZSc9Pic0NScsICdtYXhsZW5ndGgnPT4nMjU1JywgJ3JlcXVpcmVkJz0+JyonLCAnZGF0YXRhYmxlJz0+MSksCgkJJ3RlbXBsYXRlX2NvbnRlbnQnID0+IGFycmF5KCdjcmVhdGUnPT4ndGV4dGFyZWEnLCAnbGFiZWwnPT4nVGVtcGxhdGUgY29udGVudCcsICdyZXF1aXJlZCc9PicqJyksCgkJJ3RlbXBsYXRlX2RlZmF1bHQnID0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXRjaGVja2JveCcsICdhY3Rpb24nPT4nbWFrZWRlZmF1bHQnLCAnbGFiZWwnPT4nRGVmYXVsdCcsICd2YWx1ZSc9PjEsICd2YWx1ZW5vbmUnPT4wLCAnc2VsZWN0ZWR2YWx1ZSc9PjAsICdkYXRhdGFibGUnPT4xKSwKCQoJCSdjYW5jZWwnID0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXRzdWJtaXQnLCAndmFsdWUnPT4nQnV0dG9uIENhbmNlbCcpLAoJCSdzdWJtaXQnID0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXRzdWJtaXQnLCAndmFsdWUnPT4nQnV0dG9uIFNlbmQnKSwKCQknZm9ybScJPT4gYXJyYXkoJ2NyZWF0ZSc9PidiYWNrZW5kZm9ybScsICdhY3Rpb24nPT4naW5zZXJ0dXBkYXRlJywgJ25hbWUnPT4ndGVtcGxhdGVzJykKCSk7CgoJcHJpdmF0ZSAkZGVsZXRlID0gYXJyYXkgKAoJCSdpZHgnCT0+IGFycmF5KCdjcmVhdGUnPT4naW5wdXRoaWRkZW4nKSwKCQknbm9kZScJPT4gYXJyYXkoJ2NyZWF0ZSc9PidpbnB1dGhpZGRlbicsICd2YWx1ZSc9Pidncm91cHMnKSwKCQknY2FuY2VsJyA9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0c3VibWl0JywgJ3ZhbHVlJz0+J0J1dHRvbiBDYW5jZWwnKSwKCQknc3VibWl0JyA9PiBhcnJheSgnY3JlYXRlJz0+J2lucHV0c3VibWl0JywgJ3ZhbHVlJz0+J0J1dHRvbiBEZWxldGUnKSwKCQknZm9ybScJPT4gYXJyYXkoJ2NyZWF0ZSc9PidiYWNrZW5kZm9ybScsICdhY3Rpb24nPT4nZGVsZXRlJykKCSk7CgoJLyoqCiAgICAqIENvbnN0cnVjdAoJKgoJKi8KCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGlkPScnLCAkcmV0dXJuaWQ9JycsICRwYXJhbXM9JycpCgl7ICAKCQkkdGhpcy0+bW9kID0gY2FsbF91c2VyX2Z1bmMoYXJyYXkoJHRoaXMtPmNmZ1snbW9kdWxlJ10sICdHZXRNb2R1bGVJbnN0YW5jZScpLCAkdGhpcy0+Y2ZnWydtb2R1bGUnXSk7CQkKCQkkdGhpcy0+aWQgPSAkaWQ7CgkJJHRoaXMtPnJldHVybmlkID0gJHJldHVybmlkOwoJCSR0aGlzLT5wYXJhbXMgPSAkcGFyYW1zOwkKCQkkdGhpcy0+bm9kZSA9ICRwYXJhbXNbJ25vZGUnXTsJCgkJJHRoaXMtPmRlZmF1bHQgPSAnZ3JvdXBfZGVmYXVsdCc7CgkJJHRoaXMtPm1vZC0+SW5jbHVkZVRlbXBsYXRlKCk7IAoJfSAKCgkvKioKCSogQWN0aW9uIDogYWRtaW5QYW5lbAoJKgoJKiBAcmV0dXJuIGFycmF5CgkqLwoKCXB1YmxpYyBmdW5jdGlvbiBhZG1pblBhbmVsKCkKCXsJCgkJaWYgKGlzc2V0KCR0aGlzLT5wYXJhbXNbJ2RhdGFUYWJsZSddKSkKCQl7CgkJCWZvcmVhY2goJF9HRVQgYXMgJGs9PiR2KQoJCQkJJHRoaXMtPnBhcmFtc1ska10gPSAkdjsKCgkJCSRvdXRwdXQgPSBFRkFHSVNtc0xpZ2h0X3RlbXBsYXRlczo6c2VsZWN0UmVjb3JkcygkdGhpcy0+bW9kLCAkdGhpcy0+Y2ZnLCAkdGhpcy0+ZmxkcywgJHRoaXMtPnBhcmFtcywgJHRoaXMtPmlkLCAkdGhpcy0+cmV0dXJuaWQsICR0aGlzLT5ub2RlKTsKCgkJfSBlbHNlIHsKCQkJLy8gaW5zZXJ0IHJlY29yZAoJCQlpZigkdGhpcy0+bW9kLT5DaGVja1Blcm1pc3Npb24oJHRoaXMtPmNmZ1snbW9kdWxlJ10gLicgQWRkJykgJiYgaXNzZXQoJHRoaXMtPmNmZ1snYWN0aW9uJ11bJ2FkZCddKSkKCQkJCSRvWydhZGQnXSA9ICR0aGlzLT5tb2QtPkNyZWF0ZUxpbmsoCgkJCQkJJHRoaXMtPmlkLCAnaW5zZXJ0dXBkYXRlJywgJHRoaXMtPnJldHVybmlkLCAKCQkJCQkkdGhpcy0+bW9kLT5MYW5nKCdBZGQgdGVtcGxhdGUnKSwgCgkJCQkJYXJyYXkoJ25vZGUnPT4kdGhpcy0+bm9kZSwgJ2lkeCc9Pi0xKSwKCQkJCQknJywgJycsICcnLCdjbGFzcz0icHJlcGVuZCBhZGQiJywgJycsICcnKTsKCgkJCS8vIGNvbHVtbnMgdGl0bGUKCQkJZm9yZWFjaCAoJHRoaXMtPmZsZHMgYXMgJGsgPT4gJGMpIAoJCQkJaWYgKGlzc2V0KCRjWydkYXRhdGFibGUnXSkpCgkJCQkJJG9bJGtdWydsYWJlbCddID0gJHRoaXMtPm1vZC0+TGFuZygkY1snbGFiZWwnXSk7CgoJCQkvLyBpZiBwZXJtaXNzaW9uIHRvIGRlbGV0ZQoJCQlpZigkdGhpcy0+bW9kLT5DaGVja1Blcm1pc3Npb24oJ0VGQUdJU21zTGlnaHQgRGVsZXRlJykgJiYgaXNzZXQoJHRoaXMtPmNmZ1snYWN0aW9uJ11bJ2RlbGV0ZSddKSkKCQkJCSRvWydkZWxldGVsaW5rJ11bJ2xhYmVsJ10gPSAkdGhpcy0+bW9kLT5MYW5nKCdEZWxldGUnKTsKCgkJCS8vIGlmIHBlcm1pc3Npb24gZGUgZWRpdAoJCQlpZigkdGhpcy0+bW9kLT5DaGVja1Blcm1pc3Npb24oJ0VGQUdJU21zTGlnaHQgRWRpdCcpICYmIGlzc2V0KCR0aGlzLT5jZmdbJ2FjdGlvbiddWydlZGl0J10pKQoJCQkJJG9bJ2VkaXRsaW5rJ11bJ2xhYmVsJ10gPSAkdGhpcy0+bW9kLT5MYW5nKCdFZGl0Jyk7CgoJCQkvLyBmb3IgdGFibGVUb29scwoJCQkkb1snbG9hZGluZyddID0gJHRoaXMtPm1vZC0+TGFuZygnTG9hZGluZyBkYXRhIGZyb20gc2VydmVyJyk7CgoJCQkvLyB0aXRsZQoJCQkkb1sndGl0bGUnXQk9ICR0aGlzLT5tb2QtPkxhbmcoJHRoaXMtPmNmZ1sndGl0bGUnXSk7CgoJCQkvLyBzbWFydHkKCQkJJHRoaXMtPm1vZC0+c21hcnR5LT5hc3NpZ24oJ28nLCAkbyk7CgoJCQkvLyBvdXRwdXQKCQkJJG91dHB1dCA9IGFycmF5KCdtc2dUeXBlJz0+MywgJ3Jlc3VsdCc9PiR0aGlzLT5tb2QtPlByb2Nlc3NUZW1wbGF0ZSgkdGhpcy0+Y2ZnWydhZG1pbl9wYW5lbF90ZW1wbGF0ZSddKSk7CSAgICAgCQoJCX0KCgkJLy8gcmV0dXJuCQoJCXJldHVybiAkdGhpcy0+cmVzID0gJG91dHB1dDsJCgl9CgoJLyoqCgkqIEFjdGlvbiA6IGluc2VydFVwZGF0ZVJlY29yZAoJKgoJKiBAcmV0dXJuIGFycmF5CgkqLwoKCXB1YmxpYyBmdW5jdGlvbiBpbnNlcnRVcGRhdGVSZWNvcmQoKQoJewkKCQkvLyBzdWJtaXQKCQlpZiAoaXNzZXQoJHRoaXMtPnBhcmFtc1snc3VibWl0J10pKQkKCQl7CgkJCS8vIHZhbGlkYXRlIHZhbHVlcwoJCQkkbyA9IEVGQUdJU21zTGlnaHRfVmFsaWRhdGVGb3JtOjp2YWxpZGF0ZUZpZWxkcygkdGhpcy0+bW9kLCAkdGhpcy0+ZmxkcywgJHRoaXMtPnBhcmFtcyk7CgoJCQkvLyB0ZW1wbGF0ZSB2YWx1ZQoJCQkkdGVtcGxhdGVfbmFtZSA9IHRyaW0oJHRoaXMtPnBhcmFtc1sndGVtcGxhdGVfbmFtZSddKTsKICAgICAJCSR0ZW1wbGF0ZV9jb250ZW50ID0gdHJpbSgkdGhpcy0+cGFyYW1zWyd0ZW1wbGF0ZV9jb250ZW50J10pOwogICAgIAkJJHRyYW5zID0gYXJyYXkoIiYjOTI7biIgPT4gIlxuIiwgIiYjOTI7ciIgPT4gIlxyIiwgIiZxdW90OyIgPT4gIlwiIik7CiAgICAgCQkkdGVtcGxhdGVfY29udGVudCA9IHN0cnRyKCR0ZW1wbGF0ZV9jb250ZW50LCAkdHJhbnMpOwoKICAgICAJCWlmICgkb1snbXNnVHlwZSddID09IDIpCiAgICAgCQl7CiAgICAgCQkJJHRlbXBsYXRlX2V4aXN0ID0gZmFsc2U7CgogICAgIAkJCS8vIGlmIGluc2VydCB2ZXJpZnkgdGVtcGxhdGUgZXhpc3QKICAgICAJCQlpZiAoJHRoaXMtPnBhcmFtc1snaWR4J10gPT0gLTEpCiAgICAgCQkJCSR0ZW1wbGF0ZV9leGlzdCA9ICh0cmltKCR0aGlzLT5tb2QtPkdldFRlbXBsYXRlKCR0ZW1wbGF0ZV9uYW1lKSkgIT0gJycpID8gdHJ1ZSA6IGZhbHNlOwoKICAgICAJCQkvLyBpZiB1cGRhdGUgYW5kIGNoYW5nZSB0ZW1wbGF0ZSBuYW1lLCB2ZXJpZnkgdGVtcGxhdGUgZXhpc3QKICAgICAJCQllbHNlIGlmICgkdGhpcy0+cGFyYW1zWydpZHgnXSAhPSAkdGVtcGxhdGVfbmFtZSkKICAgICAgICAgCQkJJHRlbXBsYXRlX2V4aXN0ID0gKHRyaW0oJHRoaXMtPm1vZC0+R2V0VGVtcGxhdGUoJHRlbXBsYXRlX25hbWUpKSAhPSAnJykgPyB0cnVlIDogZmFsc2U7CgogICAgICAgICAJCS8vIHRlbXBsYXRlIG5hbWUgZXhpc3QKICAgICAgICAgCQlpZiAoJHRlbXBsYXRlX2V4aXN0ID09IHRydWUpIAoJCQkJewoJCQkJCSRvWydtc2dUeXBlJ10gPSAxOwoJCQkJCSRvWydtc2dUZXh0J10gPSAkdGhpcy0+bW9kLT5MYW5nKCdUZW1wbGF0ZSBleGlzdCEnKTsKCgkJCQkvLyBpbnNlcnQgb3IgdXBhZGF0ZQoJCQkJfSBlbHNlIHsKCSAgICAgICAgICAgIAkkdGhpcy0+bW9kLT5TZXRUZW1wbGF0ZSgkdGVtcGxhdGVfbmFtZSwgJHRlbXBsYXRlX2NvbnRlbnQpOwoJICAgICAgICAgICAgCSRvWydtc2dUeXBlJ10gPSAyOwoJCQkJCSRvWydtc2dUZXh0J10gPSAkdGhpcy0+bW9kLT5MYW5nKCdUZW1wbGF0ZSBpcyBzYXZlZC4nKTsJCQkJCQoJCQkJfQogICAgIAkJfQoJCQoJCS8vIGNyZWF0ZSB0aGUgZm9ybQoJCX0gZWxzZSB7CgkJCS8vIGRlZmF1bHQgdmFsdWUKCQkJaWYgKCR0aGlzLT5wYXJhbXNbJ2lkeCddID09IC0xKQogICAgICAJCQkkdGhpcy0+Zmxkc1sndGVtcGxhdGVfY29udGVudCddWyd2YWx1ZSddID0gJHRoaXMtPm1vZC0+R2V0UHJlZmVyZW5jZSgndGVtcGxhdGVfbmV3JywgJycpOwoKCQkJJG8gPSBFRkFHSVNtc0xpZ2h0X0NyZWF0ZUZvcm06OmNyZWF0ZUZvcm1FbGVtZW50KCR0aGlzLT5tb2QsICR0aGlzLT5pZCwgJHRoaXMtPnJldHVybmlkLCAkdGhpcy0+ZmxkcywgJHRoaXMtPmNmZywgJHRoaXMtPnBhcmFtcyk7CgkJCSRvWydub2RlJ11bJ2ZpZWxkJ10gPSAkdGhpcy0+bW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkdGhpcy0+aWQsICdub2RlJywgJHRoaXMtPm5vZGUpOwoJCX0KCgkJLy8gdGl0bGUKCQlpZiAoJHRoaXMtPnBhcmFtc1snaWR4J10gPT0gLTEpCgkJCSRvWydpbnNlcnRVcGRhdGUnXVsndGl0bGUnXSA9ICR0aGlzLT5tb2QtPkxhbmcoJ0FkZCB0ZW1wbGF0ZScpOwoJCWVsc2UKCQkJJG9bJ2luc2VydFVwZGF0ZSddWyd0aXRsZSddID0gJHRoaXMtPm1vZC0+TGFuZygnRWRpdCB0ZW1wbGF0ZScsICR0aGlzLT5wYXJhbXNbJ2lkeCddKTsKCgkJLy8gc21hcnR5CQkKCQkkdGhpcy0+bW9kLT5zbWFydHktPmFzc2lnbignbycsICRvKTsKCgkJLy8gdGVtcGxhdGUKCQkkdGVtcGxhdGUgPSAoJG9bJ21zZ1R5cGUnXSA9PT0gMSB8fCAkb1snbXNnVHlwZSddID09PSAyICkgPyAnbWVzc2FnZV9ib3gudHBsJyA6ICR0aGlzLT5jZmdbJ2FkbWluX3BhbmVsX3RlbXBsYXRlJ107CgoJCS8vIHJlc3VsdAoJCXJldHVybiAkdGhpcy0+cmVzID0gYXJyYXkoJ21zZ1R5cGUnPT4kb1snbXNnVHlwZSddLCAncmVzdWx0Jz0+JHRoaXMtPm1vZC0+UHJvY2Vzc1RlbXBsYXRlKCR0ZW1wbGF0ZSkpOwoJfQoKICAgCS8qKgoJKiBBY3Rpb24gOiBkZWxldGVSZWNvcmQKCSoKCSogQHJldHVybiBhcnJheQoJKi8KCglwdWJsaWMgZnVuY3Rpb24gZGVsZXRlUmVjb3JkKCkKCXsKCQkvLyBzdWJtaXQKCQlpZiAoaXNzZXQoJHRoaXMtPnBhcmFtc1snc3VibWl0J10pKQkKCQl7CgkJCSR0ZW1wbGF0ZV9uYW1lID0gdXJsZGVjb2RlKCR0aGlzLT5wYXJhbXNbJ2lkeCddKTsKICAgICAgCQkkdGhpcy0+bW9kLT5EZWxldGVUZW1wbGF0ZSgkdGVtcGxhdGVfbmFtZSk7CiAgICAgIAkJJG9bJ21zZ1R5cGUnXSA9IDI7CgkJCSRvWydtc2dUZXh0J10gPSAkdGhpcy0+bW9kLT5MYW5nKCdUZW1wbGF0ZSBpcyBkZWxldGVkLicsICR0ZW1wbGF0ZV9uYW1lKTsKCgkJLy8gbG9hZCBjb25maXJtCgkJfSBlbHNlIHsKCgkJCSR0aGlzLT5kZWxldGVbJ25vZGUnXVsndmFsdWUnXSA9ICd0ZW1wbGF0ZXMnOwoJCQkkdGhpcy0+ZGVsZXRlWydpZHgnXVsndmFsdWUnXSA9ICR0aGlzLT5wYXJhbXNbJ2lkeCddOwoJCQkKCQkJJG9bJ21zZ1R5cGUnXSA9IDQ7CgkJCSRvWydjbGFzcyddID0gJHRoaXMtPm5vZGU7CgkJCSRvWydtc2dUZXh0J10gPSAkdGhpcy0+bW9kLT5sYW5nKCdBcmUgeW91IHN1cj8nKTsKCgkJCSRvWydkZWxldGUnXSA9IEVGQUdJU21zTGlnaHRfQ3JlYXRlRm9ybTo6Y3JlYXRlRm9ybUVsZW1lbnQoJHRoaXMtPm1vZCwgJHRoaXMtPmlkLCAkdGhpcy0+cmV0dXJuaWQsICR0aGlzLT5kZWxldGUpOwoJCX0KCgkJLy8gdGl0bGUKCQkkb1snZGVsZXRlJ11bJ3RpdGxlJ10gPSAkdGhpcy0+bW9kLT5MYW5nKCdEZWxldGUgdGVtcGxhdGUnLCAkdGhpcy0+cGFyYW1zWydpZHgnXSk7CgoJCS8vIHNtYXJ0eQoJCSR0aGlzLT5tb2QtPnNtYXJ0eS0+YXNzaWduKCdvJywgJG8pOwoJCQoJCS8vIHRlbXBsYXRlCgkJJHRlbXBsYXRlID0gKCRvWydtc2dUeXBlJ10gPT09IDEgfHwgJG9bJ21zZ1R5cGUnXSA9PT0gMiApID8gJ21lc3NhZ2VfYm94LnRwbCcgOiAkdGhpcy0+Y2ZnWydhZG1pbl9wYW5lbF90ZW1wbGF0ZSddOwoKCQkvLyByZXN1bHQKCQlyZXR1cm4gJHRoaXMtPnJlcyA9IGFycmF5KCdtc2dUeXBlJz0+JG9bJ21zZ1R5cGUnXSwgJ3Jlc3VsdCc9PiR0aGlzLT5tb2QtPlByb2Nlc3NUZW1wbGF0ZSgkdGVtcGxhdGUpKTsKCX0KCgkvKioKCSogQWN0aW9uIDogbWFrZURlZmF1bHQKCSoKCSogQHJldHVybiBhcnJheQoJKi8KCglwdWJsaWMgZnVuY3Rpb24gbWFrZURlZmF1bHQoKQoJewoJCSR0ZW1wbGF0ZV9uYW1lID0gdXJsZGVjb2RlKCR0aGlzLT5wYXJhbXNbJ2lkeCddKTsKICAgICAgICAkdGhpcy0+bW9kLT5TZXRQcmVmZXJlbmNlKCd0ZW1wbGF0ZV9kZWZhdWx0JywgJHRlbXBsYXRlX25hbWUpOwoKCQkvLyByZXN1bHQKCQlyZXR1cm4gJHRoaXMtPnJlcyA9IGFycmF5KCdtc2dUeXBlJz0+NSwgJ3Jlc3VsdCc9PicnKTsKCX0KCgkvKioKCSogRnVuY3Rpb24gOiBzZWxlY3RSZWNvcmRzCgkqCgkqIEByZXR1cm4gYXJyYXkKCSovCgogICAJcHJpdmF0ZSBmdW5jdGlvbiBzZWxlY3RSZWNvcmRzKCRtb2QsICRjZmcsICRmaWVsZHMsICRwYXJhbXMsICRpZCwgJHJldHVybmlkLCAkbm9kZSwgJGFXaGVyZT0nJykKICAgCXsKICAgCQkvLyBjb2x1bW5zCgkJJHNDb2x1bW5zID0gJyc7CgkJZm9yZWFjaCAoJGZpZWxkcyBhcyAkayA9PiAkYykgCgkJCWlmIChpc3NldCgkY1snZGF0YXRhYmxlJ10pKQoJCQl7CgkJCQkkYUNvbHVtbnNbXSA9ICRrOwoJCQkJJHNDb2x1bW5zIC49ICRrIC4nLCAnOwoJCQl9CgkJJHNDb2x1bW5zID0gc3Vic3RyX3JlcGxhY2UoJHNDb2x1bW5zLCAnJywgLTIpOwoKCQkvLyBsb2FkIGxpc3QgICAgICAKICAgICAJJGxpc3RUZW1wbGF0ZXMgPSAkbW9kLT5MaXN0VGVtcGxhdGVzKCk7CgogICAgIAkkcmVzPSBhcnJheSgpOwogICAgIAlmb3JlYWNoICgkbGlzdFRlbXBsYXRlcyBhcyAkayA9PiAkdikgCiAgICAgCXsKICAgICAJCSRyZXNbJGtdWyd0ZW1wbGF0ZV9uYW1lJ10gPSAkdjsKIAkJCSRyZXNbJGtdWyd0ZW1wbGF0ZV9kZWZhdWx0J10gPSAKIAkJCQkoJHYgPT0gJHRoaXMtPm1vZC0+R2V0UHJlZmVyZW5jZSgndGVtcGxhdGVfZGVmYXVsdCcpKQogCQkJCT8gdHJ1ZQogCQkJCTogZmFsc2U7CiAgICAgCX0KCgkJLy8gdG90YWwgcmVjb3JkcwoJCSRpVG90YWxSZWNvcmRzID0gY291bnQoJHJlcyk7CQoJCSRpVG90YWxEaXNwbGF5UmVjb3JkcyA9ICRpVG90YWxSZWNvcmRzOwoKCQkvLyBkYXRhdGFibGUKCQkkbyA9IGFycmF5ICgKCQkJInNFY2hvIiA9PiBpbnR2YWwoJHBhcmFtc1snc0VjaG8nXSksCgkJCSJpVG90YWxSZWNvcmRzIiA9PiAkaVRvdGFsUmVjb3JkcywKCQkJImlUb3RhbERpc3BsYXlSZWNvcmRzIiA9PiAkaVRvdGFsRGlzcGxheVJlY29yZHMsCgkJCSJhYURhdGEiID0+IGFycmF5KCkKCQkpOwoKCQlmb3JlYWNoICgkcmVzIGFzICRrMSA9PiAkYzEpCgkJewoJCQkkZGVsZXRlID0gMTsKCQkJJGMxWydpZHgnXSA9IHVybGVuY29kZSgkYzFbJ3RlbXBsYXRlX25hbWUnXSk7CgoJCQkkcm93ID0gYXJyYXkoKTsKCQkJZm9yICgkaT0wIDsgJGk8Y291bnQoJGFDb2x1bW5zKSA7ICRpKyspCgkJCXsKCQkJCWlmICgkYUNvbHVtbnNbJGldICE9ICcgJykKCQkJCXsKCQkJCQlpZiAoJGZpZWxkc1skYUNvbHVtbnNbJGldXVsnY3JlYXRlJ10gPT0gJ2lucHV0Y2hlY2tib3gnKSB7CgkJCQkJCQoJCQkJCQlpZiAoaXNzZXQoJGZpZWxkc1skYUNvbHVtbnNbJGldXVsnYWN0aW9uJ10pICYmICRtb2QtPkNoZWNrUGVybWlzc2lvbigkY2ZnWydtb2R1bGUnXSAuJyBFZGl0JykgJiYgaXNzZXQoJGNmZ1snYWN0aW9uJ11bJ2VkaXQnXSkpCgkJCQkJCXsKCQkJCQkJCSRpY29uID0gKCRjMVskYUNvbHVtbnNbJGldXSA9PSAkZmllbGRzWyRhQ29sdW1uc1skaV1dWyd2YWx1ZSddKSA/ICd0cnVlJyA6ICdmYWxzZSc7CgkJCQkJCQkkc2V0ID0gKCRjMVskYUNvbHVtbnNbJGldXSA9PSAkZmllbGRzWyRhQ29sdW1uc1skaV1dWyd2YWx1ZSddKSA/ICdmYWxzZScgOiAndHJ1ZSc7CgkJCQkJCQkkdGV4dCA9ICgkYzFbJGFDb2x1bW5zWyRpXV0gPT0gJGZpZWxkc1skYUNvbHVtbnNbJGldXVsndmFsdWUnXSkgPyAnRGVmaW5lIHRvIGZhbHNlJyA6ICdEZWZpbmUgdG8gdHJ1ZSc7CgkJCQkJCQkkYWx0ID0gKCRjMVskYUNvbHVtbnNbJGldXSA9PSAkZmllbGRzWyRhQ29sdW1uc1skaV1dWyd2YWx1ZSddKSA/ICdUcnVlJyA6ICdGYWxzZSc7CgoJCQkJCQkJaWYgKCRmaWVsZHNbJGFDb2x1bW5zWyRpXV1bJ2FjdGlvbiddID09ICdtYWtlZGVmYXVsdCcgJiYgJHNldCA9PSAnZmFsc2UnKQoJCQkJCQkJewoJCQkJCQkJCSRkZWxldGUgPSAwOwoJCQkJCQkJCSRyb3dbXSA9IEVGQUdJU21zTGlnaHRfT3BlcmF0aW9uczo6Y3JlYXRlU3lzdGVtSWNvbigkbW9kLCAkaWNvbiwgJGFsdCwgJ1RydWUnKTsKCgkJCQkJCQl9IGVsc2UgaWYgKCRmaWVsZHNbJGFDb2x1bW5zWyRpXV1bJ2FjdGlvbiddID09ICdtYWtlYWN0aXZlJyAmJiAkZGVsZXRlID09IDApIHsKCQkJCQkJCQkkcm93W10gPSBFRkFHSVNtc0xpZ2h0X09wZXJhdGlvbnM6OmNyZWF0ZVN5c3RlbUljb24oJG1vZCwgJGljb24sICRhbHQsICdUcnVlJyk7CgoJCQkJCQkJfSBlbHNlIHsKCQkJCQkJCQkkcm93W10gPSAkbW9kLT5DcmVhdGVMaW5rKAoJCQkJCQkJCQkkaWQsIAoJCQkJCQkJCQkkZmllbGRzWyRhQ29sdW1uc1skaV1dWydhY3Rpb24nXSwgCgkJCQkJCQkJCSRyZXR1cm5pZCwgCgkJCQkJCQkJCUVGQUdJU21zTGlnaHRfT3BlcmF0aW9uczo6Y3JlYXRlU3lzdGVtSWNvbigkbW9kLCAkaWNvbiwgJGFsdCwgJHRleHQpLCAKCQkJCQkJCQkJYXJyYXkoJ25vZGUnPT4kbm9kZSwgJ2lkeCc9PiRjMVsnaWR4J10sICdzZXQnPT4kc2V0KSwKCQkJCQkJCQkJJycsICcnLCAnJywgJ2NsYXNzPSJyZXBsYWNlIHNldCInLCAnJywgJycpOwoJCQkJCQkJfQoKCQkJCQkJfSBlbHNlIHsKCQkJCQkJCSRyb3dbXSA9ICRjMVskYUNvbHVtbnNbJGldXTsKCQkJCQkJfQoKCQkJCQl9IGVsc2UgewoJCQkJCQkkcm93W10gPSAkYzFbJGFDb2x1bW5zWyRpXV07CgkJCQkJfQoJCQkJfQoJCQl9CQkJCgoJCQlpZigkbW9kLT5DaGVja1Blcm1pc3Npb24oJGNmZ1snbW9kdWxlJ10gLicgRWRpdCcpICYmIGlzc2V0KCRjZmdbJ2FjdGlvbiddWydlZGl0J10pKQoJCQkJJHJvd1tdPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2luc2VydHVwZGF0ZScsICRyZXR1cm5pZCwgRUZBR0lTbXNMaWdodF9PcGVyYXRpb25zOjpjcmVhdGVTeXN0ZW1JY29uKCRtb2QsICdlZGl0JywgJ0VkaXQnLCAnRWRpdCcpLCBhcnJheSgnbm9kZSc9PiRub2RlLCAnaWR4Jz0+JGMxWydpZHgnXSksCgkJCQkJCQkJCQkgJycsICcnLCAnJywnY2xhc3M9InByZXBlbmQgZWRpdCInLCAnJywgJycpOwoJCQllbHNlICRyb3dbXSA9ICcnOwoKCQkJaWYgKCRtb2QtPkNoZWNrUGVybWlzc2lvbigkY2ZnWydtb2R1bGUnXSAuJyBEZWxldGUnKSAmJiBpc3NldCgkY2ZnWydhY3Rpb24nXVsnZGVsZXRlJ10pKQoJCQkJaWYgKCRkZWxldGUgPT0gMCkKCQkJCQkkcm93W10gPSAnJzsKCQkJCWVsc2UKCQkJCQkkcm93W10gPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2RlbGV0ZScsICRyZXR1cm5pZCwgRUZBR0lTbXNMaWdodF9PcGVyYXRpb25zOjpjcmVhdGVTeXN0ZW1JY29uKCRtb2QsICdkZWxldGUnLCAnRGVsZXRlJywgJ0RlbGV0ZScpLCBhcnJheSgnbm9kZSc9PiRub2RlLCAnaWR4Jz0+JGMxWydpZHgnXSksCgkJCQkJCQkJCQkJICAnJywgJycsICcnLCdjbGFzcz0icHJlcGVuZCBkZWxldGUiJywgJycsICcnKTsKCQkJZWxzZSAkcm93W10gPSAnJzsKCQkJCgkJCSRvWydhYURhdGEnXVtdID0gJHJvdzsKCQl9CgoJCS8vIHJlc3VsdAoJCXJldHVybiAkbzsKICAgCX0KfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/class.EFAGISmsLight_ValidateForm.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIEVGQUdJU21zTGlnaHRfVmFsaWRhdGVGb3JtCnsKICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiB2YWxpZGF0ZUZpZWxkcygkbW9kLCAkZmllbGRzLCAkcGFyYW1zKQogICB7ICAgICAgICAgICAgICAgICAKICAgICAgZm9yZWFjaCAoJGZpZWxkcyBhcyAkayA9PiAkdikKICAgICAgICAgaWYgKCRrIT0gJ2Zvcm0nICYmICRrICE9ICdzdWJtaXQnICYmICRrICE9ICdjYW5jZWwnIC8qJiYgJHZbJ2NyZWF0ZSddICE9ICdpbnB1dGhpZGRlbicqLyAmJiAkayAhPSAncmVzZXR0b2RlZmF1bHQnKQogICAgICAgICB7CiAgICAgICAgICAgICR2ZXJpZiA9ICR2WydjcmVhdGUnXSAuICdGaWVsZCc7CiAgICAgICAgICAgICRyZXMgPSBzZWxmOjokdmVyaWYoJG1vZCwgJGZpZWxkcywgJHBhcmFtcywgJGssICR2KTsKCiAgICAgICAgICAgICgkcmVzICE9IGZhbHNlKSA/ICRvWydtc2dUZXh0J11bXSA9ICRyZXMgOiBmYWxzZTsKICAgICAgICAgfQoKICAgICAgJG9bJ21zZ1R5cGUnXSA9IChpc3NldCgkb1snbXNnVGV4dCddKSkgPyAxIDogMjsKCiAgICAgIHJldHVybiAkbzsKICAgfQoKICAgcHJpdmF0ZSBmdW5jdGlvbiByZXF1aXJlZEZpZWxkKCRtb2QsICRmaWVsZHMsICRwYXJhbXMsICRrLCAkdikKICAgewogICAgICAkcmVzID0gKHRyaW0oJHBhcmFtc1ska10pID09ICcnKSA/ICRtb2QtPkxhbmcoJ0ZpZWxkIGlzIHJlcXVpcmVkIScsICRtb2QtPkxhbmcoJHZbJ2xhYmVsJ10pKSA6IGZhbHNlOwoKICAgICAgcmV0dXJuICRyZXM7CiAgIH0KCiAgIHByaXZhdGUgZnVuY3Rpb24gdGV4dGFyZWFGaWVsZCAoJG1vZCwgJGZpZWxkcywgJHBhcmFtcywgJGssICR2KQogICB7CiAgICAgICRyZXMgPSAoaXNzZXQoJHZbJ3JlcXVpcmVkJ10pKSA/IHNlbGY6OnJlcXVpcmVkRmllbGQoJG1vZCwgJGZpZWxkcywgJHBhcmFtcywgJGssICR2KSA6IGZhbHNlOwoKICAgICAgcmV0dXJuICRyZXM7CiAgIH0KCiAgIHByaXZhdGUgZnVuY3Rpb24gaW5wdXRoaWRkZW5GaWVsZCAoJG1vZCwgJGZpZWxkcywgJHBhcmFtcywgJGssICR2KQogICB7CiAgICAgICRyZXMgPSAoaXNzZXQoJHZbJ3JlcXVpcmVkJ10pKSA/IHNlbGY6OnJlcXVpcmVkRmllbGQoJG1vZCwgJGZpZWxkcywgJHBhcmFtcywgJGssICR2KSA6IGZhbHNlOwoKICAgICAgcmV0dXJuICRyZXM7CiAgIH0KCiAgIHByaXZhdGUgZnVuY3Rpb24gaW5wdXR0ZXh0RmllbGQgKCRtb2QsICRmaWVsZHMsICRwYXJhbXMsICRrLCAkdikKICAgewogICAgICAkcmVzID0gKGlzc2V0KCR2WydyZXF1aXJlZCddKSkgPyBzZWxmOjpyZXF1aXJlZEZpZWxkKCRtb2QsICRmaWVsZHMsICRwYXJhbXMsICRrLCAkdikgOiBmYWxzZTsKCiAgICAgIHJldHVybiAkcmVzOwogICB9CgogICBwcml2YXRlIGZ1bmN0aW9uIGlucHV0cGFzc3dvcmRGaWVsZCAoJG1vZCwgJGZpZWxkcywgJHBhcmFtcywgJGssICR2KQogICB7CiAgICAgICRyZXMgPSAoaXNzZXQoJHZbJ3JlcXVpcmVkJ10pKSA/IHNlbGY6OnJlcXVpcmVkRmllbGQoJG1vZCwgJGZpZWxkcywgJHBhcmFtcywgJGssICR2KSA6IGZhbHNlOwoKICAgICAgcmV0dXJuICRyZXM7CiAgIH0KCiAgIHByaXZhdGUgZnVuY3Rpb24gaW5wdXRkcm9wZG93bkZpZWxkICgkbW9kLCAkZmllbGRzLCAkcGFyYW1zLCAkaywgJHYpCiAgIHsKICAgICAgJHJlcyA9ICh0cmltKCRwYXJhbXNbJGtdKSA9PSAnbnVsbCcpID8gJG1vZC0+TGFuZygnWW91IG11c3Qgc2VsZWN0IScsICRtb2QtPkxhbmcoJHZbJ2xhYmVsJ10pKSA6IGZhbHNlOwoKICAgICAgcmV0dXJuICRyZXM7CiAgIH0KCiAgIHByaXZhdGUgZnVuY3Rpb24gaW5wdXRzZWxlY3RsaXN0RmllbGQgKCRtb2QsICRmaWVsZHMsICRwYXJhbXMsICRrLCAkdikKICAgewogICAgICAkcmVzID0gKHRyaW0oJHBhcmFtc1ska10pID09ICdudWxsJyAmJiBpc3NldCgkdlsncmVxdWlyZWQnXSkgfHwgIWlzc2V0KCRwYXJhbXNbJGtdKSkgPyAkbW9kLT5MYW5nKCdZb3UgbXVzdCBzZWxlY3QhJywgJG1vZC0+TGFuZygkdlsnbGFiZWwnXSkpIDogZmFsc2U7CgogICAgICByZXR1cm4gJHJlczsKICAgfQoKICAgcHJpdmF0ZSBmdW5jdGlvbiBpbnB1dGNoZWNrYm94RmllbGQgKCRtb2QsICRmaWVsZHMsICRwYXJhbXMsICRrLCAkdikKICAgewogICAgICAkcmVzID0gZmFsc2U7CgogICAgICByZXR1cm4gJHJlczsKICAgfQoKICAgcHJpdmF0ZSBmdW5jdGlvbiBpbnB1dHJhZGlvZ3JvdXBGaWVsZCAoJG1vZCwgJGZpZWxkcywgJHBhcmFtcywgJGssICR2KQogICB7CiAgICAgICRyZXMgPSBmYWxzZTsKCiAgICAgIHJldHVybiAkcmVzOwogICB9CgogICBwcml2YXRlIGZ1bmN0aW9uIGlucHV0ZW1haWxGaWVsZCgkbW9kLCAkZmllbGRzLCAkcGFyYW1zLCAkaywgJHYpCiAgIHsKICAgICAgLy8kYXJyID0gc3RyX3NwbGl0KCRlbWFpbCk7CiAgICAgIC8vJGtleSA9IGFycmF5X3NlYXJjaCgnQCcsICRhcnIpOwogICAgICAvLyRlcnJvciA9ICgkYXJyWzBdID09ICcuJyB8fCAkYXJyW2NvdW50KCRhcnIpLTFdID09ICcuJyB8fCAkYXJyWyRrZXktMV0gPT0gJy4nIHx8ICRhcnJbJGtleSsxXSA9PSAnLicpID8gdHJ1ZSA6IGZhbHNlOwogICAgICAKICAgICAgJHJlcyA9IChpc3NldCgkdlsncmVxdWlyZWQnXSkpID8gc2VsZjo6cmVxdWlyZWRGaWVsZCgkbW9kLCAkZmllbGRzLCAkcGFyYW1zLCAkaywgJHYpIDogZmFsc2U7CgogICAgICBpZiAoJHJlcyA9PSBmYWxzZSAmJiB0cmltKCRwYXJhbXNbJGtdKSAhPSAnJykKICAgICAgICAgJHJlcyA9ICghaXNfZW1haWwoJHBhcmFtc1ska10sIGZhbHNlKSkgPyAkbW9kLT5MYW5nKCdGaWVsZCBpcyB3cm9uZyEnLCAkbW9kLT5MYW5nKCR2WydsYWJlbCddKSkgOiBmYWxzZTsKCiAgICAgIHJldHVybiAkcmVzOwogICB9CgogICBwcml2YXRlIGZ1bmN0aW9uIGlucHV0dGVsRmllbGQoJG1vZCwgJGZpZWxkcywgJHBhcmFtcywgJGssICR2KQogICB7CiAgICAgICRwaG9uZSA9ICRwYXJhbXNbJGtdOwoKICAgICAgJHJlcyA9IChpc3NldCgkdlsncmVxdWlyZWQnXSkpID8gc2VsZjo6cmVxdWlyZWRGaWVsZCgkbW9kLCAkZmllbGRzLCAkcGFyYW1zLCAkaywgJHYpIDogZmFsc2U7CgogICAgICBpZiAoJHJlcyA9PSBmYWxzZSAmJiB0cmltKCRwYXJhbXNbJGtdKSAhPSAnJykKICAgICAgewogICAgICAgICAkYXJyID0gc3RyX3NwbGl0KHRyaW0oJHBob25lKSk7CiAgICAgICAgICRlcnJvciA9ICgkYXJyWzBdICE9ICcrJykgPyB0cnVlIDogZmFsc2U7CgogICAgICAgICBpZiAoJGVycm9yID09IGZhbHNlKQogICAgICAgICB7CiAgICAgICAgICAgIC8vIHRlc3QgbnVtYmVyCiAgICAgICAgICAgICR0cmFucyA9IGFycmF5KCcrJz0+ICcnLCAnICc9PiAnJyk7CiAgICAgICAgICAgICRudW1iZXIgPSBzdHJ0cigkcGhvbmUsICR0cmFucyk7CiAgICAgICAgICAgICRlcnJvciA9ICghY3R5cGVfZGlnaXQoJG51bWJlcikpID8gdHJ1ZSA6IGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBpZiAoJGVycm9yID09IGZhbHNlKQogICAgICAgICB7CiAgICAgICAgICAgIC8vIGZvciB0aGUgbW9tZW50CiAgICAgICAgICAgICRlcnJvciA9IChzdHJsZW4oJG51bWJlcikgPCAxMSkgPyB0cnVlIDogZmFsc2U7CiAgICAgICAgIH0KCiAgICAgICAgICRyZXMgPSAoJGVycm9yID09IHRydWUpID8gJG1vZC0+TGFuZygnRmllbGQgaXMgd3JvbmchJywgJG1vZC0+TGFuZygkdlsnbGFiZWwnXSkpIDogZmFsc2U7CiAgICAgIH0KICAgICAgICAgIAogICAgICByZXR1cm4gJHJlczsKICAgfQoKICAgcHJpdmF0ZSBmdW5jdGlvbiBpbnB1dG51bWJlckZpZWxkKCRtb2QsICRmaWVsZHMsICRwYXJhbXMsICRrLCAkdikKICAgewogICAgICAkbWluID0gKGlzc2V0KCRmaWVsZHNbJGtdWydtaW4nXSkpID8gJ01pbiA6ICcuICRmaWVsZHNbJGtdWydtaW4nXSA6ICcnOwogICAgICAkbWF4ID0gKGlzc2V0KCRmaWVsZHNbJGtdWydtYXgnXSkpID8gJ01heCA6ICcuICRmaWVsZHNbJGtdWydtYXgnXSA6ICcnOwoKICAgICAgJG1pbm1heCA9ICcnOwogICAgICBpZiAoJG1pbiAhPSAnJyAmJiAkbWF4ID09ICcnKSAkbWlubWF4ID0gJyAoJy4gJG1pbiAuJyknOwogICAgICBpZiAoJG1pbiA9PSAnJyAmJiAkbWF4ICE9ICcnKSAkbWlubWF4ID0gJyAoJy4gJG1heCAuJyknOwogICAgICBpZiAoJG1pbiAhPSAnJyAmJiAkbWF4ICE9ICcnKSAkbWlubWF4ID0gJyAoJy4gJG1pbiAuJyAvICcuICRtYXggLicpJzsKCiAgICAgICRyZXMgPSAoaXNzZXQoJHZbJ3JlcXVpcmVkJ10pKSA/IHNlbGY6OnJlcXVpcmVkRmllbGQoJG1vZCwgJGZpZWxkcywgJHBhcmFtcywgJGssICR2KSA6IGZhbHNlOwoKICAgICAgaWYgKCRyZXMgPT0gZmFsc2UgJiYgdHJpbSgkcGFyYW1zWyRrXSkgIT0gJycpCiAgICAgIHsKICAgICAgICAgJHJlcyA9ICghaXNfaW50KGFicygkcGFyYW1zWyRrXSkpKSA/IHRydWUgOiBmYWxzZTsKCiAgICAgICAgIGlmICgkcmVzID09IGZhbHNlICYmIGlzc2V0KCRmaWVsZHNbJGtdWydtaW4nXSkpCiAgICAgICAgICAgICRyZXMgPSAoJHBhcmFtc1ska10gPCAkZmllbGRzWyRrXVsnbWluJ10pID8gdHJ1ZSA6IGZhbHNlOwoKICAgICAgICAgaWYgKCRyZXMgPT0gZmFsc2UgJiYgaXNzZXQoJGZpZWxkc1ska11bJ21heCddKSkKICAgICAgICAgICAgJHJlcyA9ICgkcGFyYW1zWyRrXSA+ICRmaWVsZHNbJGtdWydtYXgnXSkgPyB0cnVlIDogZmFsc2U7CgogICAgICAgICAkcmVzID0gKCRyZXMgPT0gdHJ1ZSkgPyAkbW9kLT5MYW5nKCdGaWVsZCBpcyB3cm9uZyEnLCAkbW9kLT5MYW5nKCR2WydsYWJlbCddKSkgLiAkbWlubWF4IDogZmFsc2U7CiAgICAgIH0KICAgICAgCiAgICAgIHJldHVybiAkcmVzOwogICB9Cn0=]]></data>
	</file>
	<file>
	  <filename>/lib/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKIyBEYXRhYmFzZSBvcGVyYXRpb25zCiRkYiA9ICR0aGlzLT5HZXREYigpOwoKJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwokdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwoKLy8gVGFibGUgOiBtb2R1bGVfRUZBR0lTbXNMaWdodF9ncm91cHMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgokZmxkcyA9ICIKCWlkeCBJLAoJY3JlYXRlZCAiLiBDTVNfQURPREJfRFQgLiIsCgltb2RpZmllZCAiLiBDTVNfQURPREJfRFQgLiIsCgltb2RpZmllZF9ieSBJLAoJZ3JvdXBfYWN0aXZlIEksCglncm91cF9kZWZhdWx0IEksCglncm91cF9uYW1lIEMoMjU1KSwKCWdyb3VwX3R5cGUgSSwKCWdyb3VwX2Rlc2MgWCI7Cgokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfRUZBR0lTbXNMaWdodF9ncm91cHMiLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX0VGQUdJU21zTGlnaHRfZ3JvdXBzX3NlcSIpOwoKLy8gVGFibGUgOiBtb2R1bGVfRUZBR0lTbXNMaWdodF9yZWNpcGllbnRzICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKJGZsZHMgPSAiCglpZHggSSwKCWNyZWF0ZWQgIi4gQ01TX0FET0RCX0RUIC4iLAoJbW9kaWZpZWQgIi4gQ01TX0FET0RCX0RUIC4iLAoJbW9kaWZpZWRfYnkgSSwKCXJlY2lwaWVudF9hY3RpdmUgSSwKCXJlY2lwaWVudF9uYW1lIEMoMjU1KSwKCXJlY2lwaWVudF9maXJzdG5hbWUgQygyNTUpLAoJcmVjaXBpZW50X21vYmlsIEMoMjU1KSwKCXJlY2lwaWVudF9lbWFpbCBDKDI1NSksCglyZWNpcGllbnRfZ3JvdXAgQygyNTUpLAoJcmVjaXBpZW50X2NvZGUgQygyNTUpLAoJcmVjaXBpZW50X2xvZ2luIEMoMjU1KSwKCXJlY2lwaWVudF9wYXNzd29yZCBDKDI1NSkKCSI7Cgokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfRUZBR0lTbXNMaWdodF9yZWNpcGllbnRzIiwgJGZsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9FRkFHSVNtc0xpZ2h0X3JlY2lwaWVudHNfc2VxIik7CgovLyBUYWJsZSA6IG1vZHVsZV9FRkFHSVNtc0xpZ2h0X21lc3NhZ2VzICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKJGZsZHMgPSAiCglpZHggSSwKCWNyZWF0ZWQgIi4gQ01TX0FET0RCX0RUIC4iLAoJbW9kaWZpZWQgIi4gQ01TX0FET0RCX0RUIC4iLAoJbW9kaWZpZWRfYnkgSSwKCXJlY2lwaWVudCBDKDI1NSksCgltZXNzYWdlIFgsCglzZW5kX3R5cGUgSSwKCXNtc190eXBlIEksCglzbXNfaWQgSSwKCXNlbnQgSSwKCXN0YXR1cyBDKDI1NSkiOwoKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX0VGQUdJU21zTGlnaHRfbWVzc2FnZXMiLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX0VGQUdJU21zTGlnaHRfbWVzc2FnZXNfc2VxIik7CgojIEFjY291bnQKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3Ntc19hY2NvdW50JywgJycpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgndXNlcl9sb2dpbicsICcnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VzZXJfcGFzc3dvcmQnLCAnJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzZW5kZXJfZmlyc3RuYW1lJywgJycpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnc2VuZGVyX25hbWUnLCAnJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzZW5kZXJfcGhvbmUnLCAnJyk7CgojIFRlbXBsYXRlcwokdGVtcGxhdGVfZmlsZSA9IGRpcm5hbWUoX19GSUxFX18pLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4ndGVtcGxhdGVzJy4gRElSRUNUT1JZX1NFUEFSQVRPUiAuJ2luc2NyaXB0aW9uX3RlbXBsYXRlX29yaWcudHBsJzsKaWYgKGZpbGVfZXhpc3RzKCR0ZW1wbGF0ZV9maWxlKSkKewogICAgJHRlbXBsYXRlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCR0ZW1wbGF0ZV9maWxlKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCd0ZW1wbGF0ZV9uZXcnLCAkdGVtcGxhdGUpOwogICAgJHRoaXMtPlNldFRlbXBsYXRlKCdJbnNjcmlwdGlvbiBTYW1wbGUnLCAkdGVtcGxhdGUpOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3RlbXBsYXRlX2RlZmF1bHQnLCdJbnNjcmlwdGlvbiBTYW1wbGUnKTsKfQoKIyBFdmVudHMKLyokdGhpcy0+Q3JlYXRlRXZlbnQoJ0VGQUdJU21zTGlnaHRHcm91cEFkZGVkJyk7CiR0aGlzLT5DcmVhdGVFdmVudCgnRUZBR0lTbXNMaWdodEdyb3VwRWRpdGVkJyk7CiR0aGlzLT5DcmVhdGVFdmVudCgnRUZBR0lTbXNMaWdodEdyb3VwRGVsZXRlZCcpOwokdGhpcy0+Q3JlYXRlRXZlbnQoJ0VGQUdJU21zTGlnaHRSZWNpcGllbnRBZGRlZCcpOwokdGhpcy0+Q3JlYXRlRXZlbnQoJ0VGQUdJU21zTGlnaHRSZWNpcGllbnRFZGl0ZWQnKTsKJHRoaXMtPkNyZWF0ZUV2ZW50KCdFRkFHSVNtc0xpZ2h0UmVjaXBpZW50RGVsZXRlZCcpOwokdGhpcy0+Q3JlYXRlRXZlbnQoJ0VGQUdJU21zTGlnaHRNZXNzYWdlQWRkZWQnKTsKJHRoaXMtPkNyZWF0ZUV2ZW50KCdFRkFHSVNtc0xpZ2h0TWVzc2FnZUVkaXRlZCcpOwokdGhpcy0+Q3JlYXRlRXZlbnQoJ0VGQUdJU21zTGlnaHRNZXNzYWdlRGVsZXRlZCcpOwokdGhpcy0+Q3JlYXRlRXZlbnQoJ0VGQUdJU21zTGlnaHRNZXNzYWdlU2VuZCcpOwokdGhpcy0+Q3JlYXRlRXZlbnQoJ0VGQUdJU21zTGlnaHRBY2NvdW50RWRpdGVkJyk7CiR0aGlzLT5DcmVhdGVFdmVudCgnRUZBR0lTbXNMaWdodFByZWZlcmVuY2VzRWRpdGVkJyk7Ki8KCiMgUGVybWlzc2lvbnMKJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ0VGQUdJU21zTGlnaHQgVXNlJywgJ0VGQUdJU21zTGlnaHQgVXNlJyk7CiR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdFRkFHSVNtc0xpZ2h0IEFkZCcsICdFRkFHSVNtc0xpZ2h0IEFkZCcpOwokdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignRUZBR0lTbXNMaWdodCBFZGl0JywgJ0VGQUdJU21zTGlnaHQgRWRpdCcpOwokdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignRUZBR0lTbXNMaWdodCBEZWxldGUnLCAnRUZBR0lTbXNMaWdodCBEZWxldGUnKTsKJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ0VGQUdJU21zTGlnaHQgQWNjb3VudCBFZGl0JywgJ0VGQUdJU21zTGlnaHQgQWNjb3VudCBFZGl0Jyk7CiR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdFRkFHSVNtc0xpZ2h0IFByZWZlcmVuY2VzIEVkaXQnLCAnRUZBR0lTbXNMaWdodCBQcmVmZXJlbmNlcyBFZGl0Jyk7CgojIExvZwokdGhpcy0+QXVkaXQoMCwgJHRoaXMtPkxhbmcoJ0VGQUdJU21zTGlnaHQnKSwgJHRoaXMtPkxhbmcoJ2luc3RhbGxlZCcsICR0aGlzLT5HZXRWZXJzaW9uKCkpKTs=]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKIyBEYXRhYmFzZSBvcGVyYXRpb25zCiRkYiA9ICR0aGlzLT5HZXREYigpOwokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CgokdGJscyA9IGFycmF5KCdncm91cHMnLCAncmVjaXBpZW50cycsICdtZXNzYWdlcycpOwoKZm9yZWFjaCAoJHRibHMgYXMgJHRibCkKewoJJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9FRkFHSVNtc0xpZ2h0XyIgLiAkdGJsKTsKCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkkZGItPkRyb3BTZXF1ZW5jZSggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfRUZBR0lTbXNMaWdodF8iICAuICR0YmwgLidfc2VxJyk7Cn0KCiMgUGVybWlzc2lvbnMKJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ0VGQUdJU21zTGlnaHQgVXNlJywgJ0VGQUdJU21zTGlnaHQgVXNlJyk7CiR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdFRkFHSVNtc0xpZ2h0IEFkZCcsICdFRkFHSVNtc0xpZ2h0IEFkZCcpOwokdGhpcy0+UmVtb3ZlUGVybWlzc2lvbignRUZBR0lTbXNMaWdodCBFZGl0JywgJ0VGQUdJU21zTGlnaHQgRWRpdCcpOwokdGhpcy0+UmVtb3ZlUGVybWlzc2lvbignRUZBR0lTbXNMaWdodCBEZWxldGUnLCAnRUZBR0lTbXNMaWdodCBEZWxldGUnKTsKJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ0VGQUdJU21zTGlnaHQgUHJlZmVyZW5jZXMgRWRpdCcsICdFRkFHSVNtc0xpZ2h0IFByZWZlcmVuY2VzIEVkaXQnKTsKCiMgUHJlZmVyZW5jZXMKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoKTsKCiMgVGVtcGxhdGVzCiR0aGlzLT5EZWxldGVUZW1wbGF0ZSgpOwoKIyBFdmVudHMKLyokdGhpcy0+UmVtb3ZlRXZlbnQoJ0VGQUdJU21zTGlnaHRHcm91cEFkZGVkJyk7CiR0aGlzLT5SZW1vdmVFdmVudCgnRUZBR0lTbXNMaWdodEdyb3VwRWRpdGVkJyk7CiR0aGlzLT5SZW1vdmVFdmVudCgnRUZBR0lTbXNMaWdodEdyb3VwRGVsZXRlZCcpOwokdGhpcy0+UmVtb3ZlRXZlbnQoJ0VGQUdJU21zTGlnaHRSZWNpcGllbnRBZGRlZCcpOwokdGhpcy0+UmVtb3ZlRXZlbnQoJ0VGQUdJU21zTGlnaHRSZWNpcGllbnRFZGl0ZWQnKTsKJHRoaXMtPlJlbW92ZUV2ZW50KCdFRkFHSVNtc0xpZ2h0UmVjaXBpZW50RGVsZXRlZCcpOwokdGhpcy0+UmVtb3ZlRXZlbnQoJ0VGQUdJU21zTGlnaHRNZXNzYWdlQWRkZWQnKTsKJHRoaXMtPlJlbW92ZUV2ZW50KCdFRkFHSVNtc0xpZ2h0TWVzc2FnZUVkaXRlZCcpOwokdGhpcy0+UmVtb3ZlRXZlbnQoJ0VGQUdJU21zTGlnaHRNZXNzYWdlRGVsZXRlZCcpOwokdGhpcy0+UmVtb3ZlRXZlbnQoJ0VGQUdJU21zTGlnaHRNZXNzYWdlU2VuZCcpOwokdGhpcy0+UmVtb3ZlRXZlbnQoJ0VGQUdJU21zTGlnaHRBY2NvdW50RWRpdGVkJyk7CiR0aGlzLT5SZW1vdmVFdmVudCgnRUZBR0lTbXNMaWdodFByZWZlcmVuY2VzRWRpdGVkJyk7Ki8KCiMgbG9nCiR0aGlzLT5BdWRpdCgwLCAkdGhpcy0+TGFuZygnRUZBR0lTbXNMaWdodCcpLCAkdGhpcy0+TGFuZygndW5pbnN0YWxsZWQnLCAkdGhpcy0+R2V0VmVyc2lvbigpKSk7]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmICghaXNzZXQoJGdDbXMpKSBleGl0Ow==]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/admin_panel_account.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBhZG1pbl9wYW5lbF9hY2NvdW50LnRwbCAtLT4gCgo8aDI+eyRvLnRpdGxlfTwvaDI+Cgp7KiBwYWdlIGVycm9yICp9CntpZiAkby5tc2dUeXBlIGVxIDMgfHwgJG8ubXNnVHlwZSBlcSAtMX0Ke2luY2x1ZGUgZmlsZT0naW5jX3BhZ2VfZXJyb3IudHBsJ30Key9pZn0KCnskby5mb3JtLnN0YXJ0fQoJeyRvLnVzZXJfYWNjb3VudC5maWVsZHNldH0KCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQk8cCBjbGFzcz0icGFnZXRleHQiPnskby51c2VyX2xvZ2luLmxhYmVsfTwvcD4KCQkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRvLnVzZXJfbG9naW4uZmllbGR9PC9wPgoJCQk8cCBjbGFzcz0iZmllbGRIZWxwIj57JG8udXNlcl9sb2dpbi5oZWxwfTwvcD4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQk8cCBjbGFzcz0icGFnZXRleHQiPnskby51c2VyX3Bhc3N3b3JkLmxhYmVsfTwvcD4KCQkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRvLnVzZXJfcGFzc3dvcmQuZmllbGR9PC9wPgoJCQk8cCBjbGFzcz0iZmllbGRIZWxwIj57JG8udXNlcl9wYXNzd29yZC5oZWxwfTwvcD4KCQk8L2Rpdj4gIAoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRvLnNtc19hY2NvdW50LmxhYmVsfTwvcD4KCQkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRvLnNtc19hY2NvdW50LmZpZWxkfTwvcD4KCQk8L2Rpdj4KCgkJe2lmIGlzc2V0KCRvLnF1b3RhTm90aWZpY2F0aW9uVGhyZXNob2xkKX0KCQk8ZmllbGRzZXQgY2xhc3M9InF1b3RhTm90aWZpY2F0aW9uIj4KCQkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJCTxwPgoJCQkJCXskby5xdW90YU5vdGlmaWNhdGlvblRocmVzaG9sZC5sYWJlbH0gOiAKCQkJCQk8c3Bhbj57JG8ucXVvdGFOb3RpZmljYXRpb25UaHJlc2hvbGQudmFsdWV9PC9zcGFuPgoJCQkJPC9wPgoJCQk8L2Rpdj4JCQoJCQl7aWYgaXNzZXQoJG8ucXVvdGFOb3RpZmljYXRpb25TdXBwb3J0LnZhbHVlKX0KCQkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJCTxwPgoJCQkJCXskby5xdW90YU5vdGlmaWNhdGlvblN1cHBvcnQubGFiZWx9IDogCgkJCQkJPHNwYW4+eyRvLnF1b3RhTm90aWZpY2F0aW9uU3VwcG9ydC52YWx1ZX08L3NwYW4+CgkJCQk8L3A+CgkJCTwvZGl2PgoJCQl7L2lmfQoJCQl7aWYgaXNzZXQoJG8ucXVvdGFOb3RpZmljYXRpb25OdW1iZXIudmFsdWUpfQoJCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQkJPHA+CgkJCQkJeyRvLnF1b3RhTm90aWZpY2F0aW9uTnVtYmVyLmxhYmVsfSA6IAoJCQkJCTxzcGFuPnskby5xdW90YU5vdGlmaWNhdGlvbk51bWJlci52YWx1ZX08L3NwYW4+CgkJCQk8L3A+CgkJCTwvZGl2PgoJCQl7L2lmfQoJCQl7aWYgaXNzZXQoJG8ucXVvdGFOb3RpZmljYXRpb25FbWFpbC52YWx1ZSl9CgkJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCQk8cD4KCQkJCQl7JG8ucXVvdGFOb3RpZmljYXRpb25FbWFpbC5sYWJlbH0gOiAKCQkJCQk8c3Bhbj57JG8ucXVvdGFOb3RpZmljYXRpb25FbWFpbC52YWx1ZX08L3NwYW4+CgkJCQk8L3A+CgkJCTwvZGl2PgoJCQl7L2lmfQoJCTwvZmllbGRzZXQ+CgkJey9pZn0KCXskby5lbmQuZmllbGRzZXR9Cgl7JG8uc2VuZGVyX2FjY291bnQuZmllbGRzZXR9CgoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRvLnNlbmRlcl9uYW1lLmxhYmVsfTwvcD4KCQkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRvLnNlbmRlcl9uYW1lLmZpZWxkfTwvcD4KCQk8L2Rpdj4KCgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG8uc2VuZGVyX2ZpcnN0bmFtZS5sYWJlbH08L3A+CgkJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskby5zZW5kZXJfZmlyc3RuYW1lLmZpZWxkfTwvcD4KCQk8L2Rpdj4KCgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG8uc2VuZGVyX3Bob25lLmxhYmVsfTwvcD4KCQkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRvLnNlbmRlcl9waG9uZS5maWVsZH08L3A+CgkJCTxwIGNsYXNzPSJmaWVsZEhlbHAiPnskby5zZW5kZXJfZmllbGQuaGVscH08L3A+CgkJPC9kaXY+CgoJeyRvLmVuZC5maWVsZHNldH0KCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJe2ZvcmVhY2gga2V5PWtleSBpdGVtPWhpZGRlbiBmcm9tPSRvLmhpZGRlbnN9CgkgICAgICB7JGhpZGRlbn0KCXsvZm9yZWFjaH0KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPgoJCXskby5zdWJtaXQuYnV0dG9ufQoJPC9wPgoJPC9kaXY+Cnskby5mb3JtLmVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_panel_groups.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBhZG1pbl9wYW5lbF9ncm91cHMudHBsIC0tPiAgIAoKeyogcGFnZSBlcnJvciAqfQp7aWYgJG8ubXNnVHlwZSBlcSAzfQp7aW5jbHVkZSBmaWxlPSdpbmNfcGFnZV9lcnJvci50cGwnfQp7L2lmfQoKe2lmICFpc3NldCgkby5mb3JtKSAmJiAhaXNzZXQoJG8uZGVsZXRlKX0Ke2luY2x1ZGUgZmlsZT0naW5jX2xpc3RfZ3JvdXBzLnRwbCd9CnsvaWZ9Cgp7aWYgaXNzZXQoJG8uZm9ybSl9CntpbmNsdWRlIGZpbGU9J2luY19pbnNlcnRfdXBkYXRlX2dyb3VwLnRwbCd9CnsvaWZ9Cgp7aWYgaXNzZXQoJG8uZGVsZXRlKX0Ke2luY2x1ZGUgZmlsZT0naW5jX2RlbGV0ZS50cGwnfQp7L2lmfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_panel_historic.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBhZG1pbl9wYW5lbF9oaXN0b3JpYy50cGwgLS0+ICAgCgp7KiBwYWdlIGVycm9yICp9CntpZiAkby5tc2dUeXBlIGVxIDN9CntpbmNsdWRlIGZpbGU9J2luY19wYWdlX2Vycm9yLnRwbCd9CnsvaWZ9Cgp7aWYgIWlzc2V0KCRvLmZvcm0pICYmICFpc3NldCgkby5kZWxldGUpfQp7aW5jbHVkZSBmaWxlPSdpbmNfbGlzdF9oaXN0b3JpYy50cGwnfQp7L2lmfQoKe2lmIGlzc2V0KCRvLmRlbGV0ZSl9CntpbmNsdWRlIGZpbGU9J2luY19kZWxldGUudHBsJ30Key9pZn0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_panel_messages.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBhZG1pbl9wYW5lbF9tZXNzYWdlcy50cGwgLS0+ICAgCgp7KiBwYWdlIGVycm9yICp9CntpZiAkby5tc2dUeXBlIGVxIDN9CjxoMj57JG8udGl0bGV9PC9oMj4Ke2luY2x1ZGUgZmlsZT0naW5jX3BhZ2VfZXJyb3IudHBsJ30Ke2Vsc2V9CnsqIGRhdGFUYWJsZXMgKn0Ke2luY2x1ZGUgZmlsZT0naW5jX3NlbGVjdF9yZWNpcGllbnRzLnRwbCd9CnsqIGZvcm0gKn0Ke2luY2x1ZGUgZmlsZT0naW5jX2NyZWF0ZV9tZXNzYWdlLnRwbCd9CnsvaWZ9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_panel_preferences.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBhZG1pbl9wYW5lbF9wcmVmZXJlbmNlcy50cGwgLS0+IAoKPGgyPnskby50aXRsZX08L2gyPgoKeyogcGFnZSBlcnJvciAqfQp7aWYgJG8ubXNnVHlwZSBlcSAzIHx8ICRvLm1zZ1R5cGUgZXEgLTF9CntpbmNsdWRlIGZpbGU9J2luY19wYWdlX2Vycm9yLnRwbCd9CnsvaWZ9Cgp7JG8uZm9ybS5zdGFydH0KCXskby5wcmVmZXJlbmNlc19jYXB0Y2hhLmZpZWxkc2V0fQoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRvLnByZWZlcmVuY2VzX2NhcHRjaGEubGFiZWx9PC9wPgoJCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JG8ucHJlZmVyZW5jZXNfY2FwdGNoYS5maWVsZH08L3A+CgkJPC9kaXY+CQkKCXskby5lbmQuZmllbGRzZXR9Cgl7JG8ucHJlZmVyZW5jZXNfZGF0YXRhYmxlLmZpZWxkc2V0fQoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRvLnByZWZlcmVuY2VzX2RhdGF0YWJsZV9wYWdpbmF0aW9uLmxhYmVsfTwvcD4KCQkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRvLnByZWZlcmVuY2VzX2RhdGF0YWJsZV9wYWdpbmF0aW9uLmZpZWxkfTwvcD4KCQk8L2Rpdj4JCQoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRvLnByZWZlcmVuY2VzX2RhdGF0YWJsZV9yZWNvcmRzLmxhYmVsfTwvcD4KCQkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRvLnByZWZlcmVuY2VzX2RhdGF0YWJsZV9yZWNvcmRzLmZpZWxkfTwvcD4KCQk8L2Rpdj4JCQoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRvLnByZWZlcmVuY2VzX2RhdGF0YWJsZV9zZWFyY2gubGFiZWx9PC9wPgoJCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JG8ucHJlZmVyZW5jZXNfZGF0YXRhYmxlX3NlYXJjaC5maWVsZH08L3A+CgkJPC9kaXY+CQkKCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQk8cCBjbGFzcz0icGFnZXRleHQiPnskby5wcmVmZXJlbmNlc19kYXRhdGFibGVfY29sb25uZXNfZmlsdGVycy5sYWJlbH08L3A+CgkJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskby5wcmVmZXJlbmNlc19kYXRhdGFibGVfY29sb25uZXNfZmlsdGVycy5maWVsZH08L3A+CgkJPC9kaXY+CQkKCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQk8cCBjbGFzcz0icGFnZXRleHQiPnskby5wcmVmZXJlbmNlc19kYXRhdGFibGVfY29weV9zYXZlLmxhYmVsfTwvcD4KCQkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRvLnByZWZlcmVuY2VzX2RhdGF0YWJsZV9jb3B5X3NhdmUuZmllbGR9PC9wPgoJCTwvZGl2PgkJCgl7JG8uZW5kLmZpZWxkc2V0fQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCXtmb3JlYWNoIGtleT1rZXkgaXRlbT1oaWRkZW4gZnJvbT0kby5oaWRkZW5zfQoJICAgICAgeyRoaWRkZW59Cgl7L2ZvcmVhY2h9Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij4KCQl7JG8uc3VibWl0LmJ1dHRvbn0KCTwvcD4KCTwvZGl2Pgp7JG8uZm9ybS5lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_panel_recipients.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBhZG1pbl9wYW5lbF9yZWNpcGllbnRzLnRwbCAtLT4gICAKCnsqIHBhZ2UgZXJyb3IgKn0Ke2lmICRvLm1zZ1R5cGUgZXEgM30Ke2luY2x1ZGUgZmlsZT0naW5jX3BhZ2VfZXJyb3IudHBsJ30Key9pZn0KCntpZiAhaXNzZXQoJG8uZm9ybSkgJiYgIWlzc2V0KCRvLmRlbGV0ZSl9CntpbmNsdWRlIGZpbGU9J2luY19saXN0X3JlY2lwaWVudHMudHBsJ30Key9pZn0KCntpZiBpc3NldCgkby5mb3JtKX0Ke2luY2x1ZGUgZmlsZT0naW5jX2luc2VydF91cGRhdGVfcmVjaXBpZW50LnRwbCd9CnsvaWZ9Cgp7aWYgaXNzZXQoJG8uZGVsZXRlKX0Ke2luY2x1ZGUgZmlsZT0naW5jX2RlbGV0ZS50cGwnfQp7L2lmfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_panel_templates.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBhZG1pbl9wYW5lbF90ZW1wbGF0ZXMudHBsIC0tPiAgIAoKe2lmICFpc3NldCgkby5mb3JtKSAmJiAhaXNzZXQoJG8uZGVsZXRlKX0Ke2luY2x1ZGUgZmlsZT0naW5jX2xpc3RfdGVtcGxhdGVzLnRwbCd9CnsvaWZ9Cgp7aWYgaXNzZXQoJG8uZm9ybSl9CntpbmNsdWRlIGZpbGU9J2luY19pbnNlcnRfdXBkYXRlX3RlbXBsYXRlLnRwbCd9CnsvaWZ9Cgp7aWYgaXNzZXQoJG8uZGVsZXRlKX0Ke2luY2x1ZGUgZmlsZT0naW5jX2RlbGV0ZS50cGwnfQp7L2lmfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/inc_create_message.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBpbmNfY3JlYXRlX21lc3NhZ2UudHBsIC0tPiAKCjxkaXYgaWQ9ImNyZWF0ZU1lc3NhZ2UiIGNsYXNzPSJ0b0Rpc3BsYXkiPgoJPGgyPnskby50aXRsZX08L2gyPgoJeyRvLmZvcm0uc3RhcnR9CgkJeyRvLnF1b3RhTGVmdC5maWVsZHNldH0KCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQk8cCBpZD0icXVvdGFMZWZ0Ij57JG8ucXVvdGFMZWZ0LmxhYmVsfSA6IDxzcGFuPnskby5xdW90YUxlZnQudmFsdWV9PC9zcGFuPjwvcD4KCQk8L2Rpdj4KCQl7JG8uZW5kLmZpZWxkc2V0fQoJCXskby5yZWNpcGllbnQuZmllbGRzZXR9CgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG8ucmVjaXBpZW50LmxhYmVsfTwvcD4KCQkJPHAgY2xhc3M9InBhZ2VpbnB1dCBoaWRlZGlzcGxheWZpZWxkcyI+CgkJCQl7JG8ucmVjaXBpZW50LmZpZWxkfQoJCQkJPGlucHV0IHR5cGU9InRleHQiIHZhbHVlPSIiIGlkPSJyZWNpcGllbnRzTW9iaWwiIHN0eWxlPSJkaXNwbGF5OiBub25lIiAvPgoJCQk8L3A+CQkKCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQk8cCBjbGFzcz0icGFnZWlucHV0Ij4KCQkJCTxzcGFuIGlkPSJzaG93TGlzdFJlY2lwaWVudHMiPnskby5zaG93X3JlY2lwaWVudHN9PC9zcGFuPiAKCQkJPC9wPgoJCTwvZGl2PgoJCXskby5lbmQuZmllbGRzZXR9CgkJeyRvLndyaXRlX21lc3NhZ2UuZmllbGRzZXR9CgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG8uc2VuZGVyLmxhYmVsfSA6IHskby5zZW5kZXIuZmllbGR9PC9wPgoJCTwvZGl2PgkJCgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG8ubWVzc2FnZS5sYWJlbH08L3A+CgkJCTxwIGNsYXNzPSJwYWdlaW5wdXQiIGlkPSJtZXNzYWdlIj57JG8ubWVzc2FnZS5maWVsZH08L3A+CgkJPC9kaXY+CgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG8uY2hhcmFjdGVyc30gOiA8c3BhbiBpZD0iY3VycmVuY3RDaGFyYWN0ZXJzIj4wPC9zcGFuPi88c3BhbiBpZD0ibWF4Q2hhcmFjdGVycyI+MTYwPC9zcGFuPjwvcD4KCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG8uc21zX251bWJlcn0gOiA8c3BhbiBpZD0iY3VycmVudFNtcyI+MTwvc3Bhbj48L3A+CgkJPC9kaXY+CgkJeyRvLmVuZC5maWVsZHNldH0KCQl7JG8ub3B0aW9ucy5maWVsZHNldH0KCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciIGlkPSJzZW5kVHlwZSI+CgkJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskby5zZW5kX3R5cGUuZmllbGR9PC9wPgoJCTwvZGl2PgoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyBzZWxlY3REYXRlSG91ciIgaWQ9InNlbGVjdERhdGUiIHN0eWxlPSJkaXNwbGF5OiBub25lIj4KCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG8uc2VsZWN0X2RhdGUubGFiZWx9PC9wPgoJCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JG8uc2VsZWN0X2RhdGUuZmllbGR9PC9wPgoJCTwvZGl2PgkKCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3cgc2VsZWN0RGF0ZUhvdXIiIGlkPSJzZWxlY3RIb3VyIiBzdHlsZT0iZGlzcGxheTogbm9uZSI+CgkJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRvLnNlbGVjdF9ob3VyLmxhYmVsfTwvcD4KCQkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRvLnNlbGVjdF9ob3VyLmZpZWxkfTwvcD4KCQk8L2Rpdj4JCgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG8uc21zX3R5cGUubGFiZWx9PC9wPgoJCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JG8uc21zX3R5cGUuZmllbGR9PC9wPgoJCTwvZGl2PgoJCXskby5lbmQuZmllbGRzZXR9CgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJeyRvLmlkeC5maWVsZH0KCQkJeyRvLm5vZGUuZmllbGR9CgkJCXskby5jcmVhdGVkLmZpZWxkfQoJCQl7JG8ubW9kaWZpZWQuZmllbGR9CgkJCXskby5tb2RpZmllZF9ieS5maWVsZH0KCQkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRvLnN1Ym1pdC5idXR0b259IHskby5yZXNldHRvZGVmYXVsdC5idXR0b259PC9wPgoJCTwvZGl2PgoJeyRvLmZvcm0uZW5kfQo8L2Rpdj4KCjxzY3JpcHQ+e2xpdGVyYWx9CnZhciBvQ3JlYXRlTWVzc2FnZSA9ICQoIiNjcmVhdGVNZXNzYWdlIik7CnZhciBvU2hvd0xpc3RSZWNpcGllbnRzID0gJCgiI3Nob3dMaXN0UmVjaXBpZW50cyIpOwp2YXIgb1NlbmRUeXBlID0gJCgiI3NlbmRUeXBlIGlucHV0Iik7CnZhciBvTGlzdFJlY2lwaWVudHNBY3RpdmVzID0gJCgiI2xpc3RSZWNpcGllbnRzQWN0aXZlcyIpOwp2YXIgb1NlbGVjdERhdGVIb3VyID0gJCgiZGl2LnNlbGVjdERhdGVIb3VyIik7CnZhciBvU21zID0gJCgiI21lc3NhZ2UgdGV4dGFyZWEiKTsKdmFyIG9OYkNoYXJzID0gJCgiI2N1cnJlbmN0Q2hhcmFjdGVycyIpOwp2YXIgb01heENoYXJzID0gJCgiI21heENoYXJhY3RlcnMiKTsKdmFyIG9OYlNtcyA9ICQoIiNjdXJyZW50U21zIik7CnZhciBzVG90YWxTbXMgPSAwOwp2YXIgc1NpbXBsZUNoYXIgID0gIiAwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiMlJigpKissLS4vOjs8Pj0kIT9AXCJcJyI7CnZhciBhT25lQ2hhciA9IFtdOwphT25lQ2hhclsiXHUwMERGIl0gPSBhT25lQ2hhclsiXHUwMEM3Il0gPSBhT25lQ2hhclsiXHUwMEUwIl0gPSBhT25lQ2hhclsiXHUwMEU0Il0gPSBhT25lQ2hhclsiXHUwMEU1Il0gPSBhT25lQ2hhclsiXHUwMEU2Il0gPSAKYU9uZUNoYXJbIlx1MDBDNSJdID0gYU9uZUNoYXJbIlx1MDBDNCJdID0gYU9uZUNoYXJbIlx1MDBDNiJdID0gYU9uZUNoYXJbIlx1MDBFOSJdID0gYU9uZUNoYXJbIlx1MDBFOCJdID0gYU9uZUNoYXJbIlx1MDBDOSJdID0gCmFPbmVDaGFyWyJcdTAwRUMiXSA9IGFPbmVDaGFyWyJcdTAwRjYiXSA9IGFPbmVDaGFyWyJcdTAwRjIiXSA9IGFPbmVDaGFyWyJcdTAwRDYiXSA9IGFPbmVDaGFyWyJcdTAwRjgiXSA9IGFPbmVDaGFyWyJcdTAwRDgiXSA9IAphT25lQ2hhclsiXHUwMEYxIl0gPSBhT25lQ2hhclsiXHUwMEQxIl0gPSBhT25lQ2hhclsiXHUwMEY5Il0gPSBhT25lQ2hhclsiXHUwMEZDIl0gPSBhT25lQ2hhclsiXHUwMERDIl0gPSBhT25lQ2hhclsiXHUwMEE0Il0gPSAKYU9uZUNoYXJbIlx1MDBBNyJdID0gYU9uZUNoYXJbIlx1MDBBMyJdID0gYU9uZUNoYXJbIlx1MDBCRiJdID0gYU9uZUNoYXJbIlx1MDBBMSJdID0gYU9uZUNoYXJbIlx1MDBBNSJdID0gYU9uZUNoYXJbIlxyXG4iXSA9IAphT25lQ2hhclsiXG4iXSA9IDE7CnZhciBhVHdvQ2hhciA9IFtdOwphVHdvQ2hhclsiXHUwMDdCIl0gPSBhVHdvQ2hhclsiXHUwMDdDIl0gPSBhVHdvQ2hhclsiXHUwMDdEIl0gPSBhVHdvQ2hhclsiXHUwMDdFIl0gPSBhVHdvQ2hhclsiXHUwMDVCIl0gPSBhVHdvQ2hhclsiXHUwMDVDIl0gPSAKYVR3b0NoYXJbIlx1MDA1RCJdID0gYVR3b0NoYXJbIlx1MDA1RSJdID0gYVR3b0NoYXJbIlx1MjBBQyJdID0gMjsKCihmdW5jdGlvbigkKSB7Cm9TaG93TGlzdFJlY2lwaWVudHMub24oImNsaWNrIiwgZnVuY3Rpb24oKSB7CglvQ3JlYXRlTWVzc2FnZS5oaWRlKCk7CglvTGlzdFJlY2lwaWVudHNBY3RpdmVzLnNob3coKTsKCXJldHVybiBmYWxzZTsKfSk7CQkKCm9TZW5kVHlwZS5vbigiY2xpY2siLCBmdW5jdGlvbihldmVudCkgeyAKCWlmICgkKHRoaXMpLnZhbCgpID09IDIpIAoJCW9TZWxlY3REYXRlSG91ci5zaG93KCk7CgllbHNlCgkJb1NlbGVjdERhdGVIb3VyLmhpZGUoKTsKfSk7CgpvU21zLm9uKCJrZXl1cCIsIGZ1bmN0aW9uICgpIHsKICAgIGZuU21zTGVuZ3RoKCk7ICAgICAgICAgICAgICAgCn0pOwoKLy8gZGF0ZSBhbmQgdGltZSBwaWNrZXIKJCgiaW5wdXQjbTFfZGF0ZSIpLmRhdGVwaWNrZXIoJC5kYXRlcGlja2VyLnJlZ2lvbmFsW3NMYW5nXSk7CiQoImlucHV0I20xX2hvdXIiKS50aW1lcGlja2VyKCQudGltZXBpY2tlci5yZWdpb25hbFtzTGFuZ10pOwoKfSkoalF1ZXJ5KTsKey9saXRlcmFsfTwvc2NyaXB0Pg==]]></data>
	</file>
	<file>
	  <filename>/templates/inc_delete.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBpbmNfZGVsZXRlLnRwbCAtLT4gICAKCjxkaXYgaWQ9ImRlbGV0ZVJlY29yZCIgY2xhc3M9InRvUmVtb3ZlIj4KCTxoMj57JG8uZGVsZXRlLnRpdGxlfTwvaDI+Cgl7JG8uZGVsZXRlLmZvcm0uc3RhcnR9Cgl7JG8uc3RhcnQuZmllbGRzZXR9Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRvLm1zZ1RleHR9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCXskby5kZWxldGUuaWR4LmZpZWxkfQoJCXskby5kZWxldGUubm9kZS5maWVsZH0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JG8uZGVsZXRlLnN1Ym1pdC5idXR0b259ICB7JG8uZGVsZXRlLmNhbmNlbC5idXR0b259PC9wPgoJPC9kaXY+Cgl7JG8uZW5kLmZpZWxkc2V0fQoJeyRvLmRlbGV0ZS5mb3JtLmVuZH0KPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/templates/inc_insert_update_group.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBpbmNfaW5zZXJ0X3VwZGF0ZV9ncm91cC50cGwgLS0+ICAgCgo8ZGl2IGlkPSJpbnNlcnRVcGRhdGVSZWNvcmQiIGNsYXNzPSJ0b1JlbW92ZSI+Cgk8aDI+eyRvLmluc2VydFVwZGF0ZS50aXRsZX08L2gyPgoJeyRvLmZvcm0uc3RhcnR9Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRvLmdyb3VwX25hbWUubGFiZWx9PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskby5ncm91cF9uYW1lLmZpZWxkfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskby5ncm91cF90eXBlLmxhYmVsfTwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JG8uZ3JvdXBfdHlwZS5maWVsZH08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG8uZ3JvdXBfZGVzYy5sYWJlbH08L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRvLmdyb3VwX2Rlc2MuZmllbGR9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRvLmdyb3VwX2FjdGl2ZS5maWVsZH0geyRvLmdyb3VwX2FjdGl2ZS5sYWJlbH08L3A+Cgk8L2Rpdj4KCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCXskby5pZHguZmllbGR9CgkJeyRvLm5vZGUuZmllbGR9CgkJeyRvLmNyZWF0ZWQuZmllbGR9CgkJeyRvLm1vZGlmaWVkLmZpZWxkfQoJCXskby5tb2RpZmllZF9ieS5maWVsZH0KCQk8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+eyRvLmdyb3VwX2RlZmF1bHQuZmllbGR9PC9zcGFuPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskby5zdWJtaXQuYnV0dG9ufSB7JG8uY2FuY2VsLmJ1dHRvbn08L3A+Cgk8L2Rpdj4KCXskby5mb3JtLmVuZH0KPGRpdj4=]]></data>
	</file>
	<file>
	  <filename>/templates/inc_insert_update_recipient.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBpbmNfaW5zZXJ0X3VwZGF0ZV9yZWNpcGllbnQudHBsIC0tPiAgCgo8ZGl2IGlkPSJpbnNlcnRVcGRhdGVSZWNvcmQiIGNsYXNzPSJ0b1JlbW92ZSI+Cgk8aDI+eyRvLmluc2VydFVwZGF0ZS50aXRsZX08L2gyPgoJeyRvLmZvcm0uc3RhcnR9Cgl7KiAkby5yZWNpcGllbnRfaWRlbnRpZmllcnMuZmllbGRzZXR9Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRvLnJlY2lwaWVudF9sb2dpbi5sYWJlbH0qPC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskby5yZWNpcGllbnRfbG9naW4uZmllbGR9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRvLnJlY2lwaWVudF9wYXNzd29yZC5sYWJlbH0qPC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskby5yZWNpcGllbnRfcGFzc3dvcmQuZmllbGR9PC9wPgoJPC9kaXY+Cgl7JG8uZW5kLmZpZWxkc2V0ICp9Cgl7JG8ucmVjaXBpZW50X2luZm9ybWF0aW9ucy5maWVsZHNldH0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG8ucmVjaXBpZW50X25hbWUubGFiZWx9KjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JG8ucmVjaXBpZW50X25hbWUuZmllbGR9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRvLnJlY2lwaWVudF9maXJzdG5hbWUubGFiZWx9KjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JG8ucmVjaXBpZW50X2ZpcnN0bmFtZS5maWVsZH08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG8ucmVjaXBpZW50X21vYmlsLmxhYmVsfSo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRvLnJlY2lwaWVudF9tb2JpbC5maWVsZH08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG8ucmVjaXBpZW50X2VtYWlsLmxhYmVsfTwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JG8ucmVjaXBpZW50X2VtYWlsLmZpZWxkfTwvcD4KCTwvZGl2PgoJeyRvLmVuZC5maWVsZHNldH0KCXskby5yZWNpcGllbnRfaW5zY3JpcHRpb24uZmllbGRzZXR9CQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskby5yZWNpcGllbnRfZ3JvdXAubGFiZWx9KjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JG8ucmVjaXBpZW50X2dyb3VwLmZpZWxkfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskby5yZWNpcGllbnRfYWN0aXZlLmZpZWxkfSB7JG8ucmVjaXBpZW50X2FjdGl2ZS5sYWJlbH08L3A+Cgk8L2Rpdj4KCXskby5lbmQuZmllbGRzZXR9Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCXskby5pZHguZmllbGR9CgkJeyRvLm5vZGUuZmllbGR9CgkJeyRvLmNyZWF0ZWQuZmllbGR9CgkJeyRvLm1vZGlmaWVkLmZpZWxkfQoJCXskby5tb2RpZmllZF9ieS5maWVsZH0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JG8uc3VibWl0LmJ1dHRvbn0geyRvLmNhbmNlbC5idXR0b259PC9wPgoJPC9kaXY+Cgl7JG8uZm9ybS5lbmR9CjwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/templates/inc_insert_update_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBpbmNfaW5zZXJ0X3VwZGF0ZV90ZW1wbGF0ZS50cGwgLS0+ICAgCgo8ZGl2IGlkPSJpbnNlcnRVcGRhdGVUZW1wbGF0ZSIgY2xhc3M9InRvUmVtb3ZlIj4KCTxoMj57JG8uaW5zZXJ0VXBkYXRlLnRpdGxlfTwvaDI+Cgl7JG8uZm9ybS5zdGFydH0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG8udGVtcGxhdGVfbmFtZS5sYWJlbH08L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRvLnRlbXBsYXRlX25hbWUuZmllbGR9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRvLnRlbXBsYXRlX2NvbnRlbnQubGFiZWx9PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskby50ZW1wbGF0ZV9jb250ZW50LmZpZWxkfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQl7JG8uaWR4LmZpZWxkfQoJCXskby5ub2RlLmZpZWxkfQoJCTxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj57JG8udGVtcGxhdGVfZGVmYXVsdC5maWVsZH08L3NwYW4+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRvLnN1Ym1pdC5idXR0b259IHskby5jYW5jZWwuYnV0dG9ufTwvcD4KCTwvZGl2PgoJeyRvLmZvcm0uZW5kfQo8ZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/templates/inc_list_groups.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBpbmNfbGlzdF9ncm91cHMudHBsIC0tPiAgCgo8ZGl2IGNsYXNzPSJ0b0Rpc3BsYXkiPgoJPGgyPnskby50aXRsZX08L2gyPgoJe2lmIGlzc2V0KCRvLmFkZCl9CgkJeyRvLmFkZH0KCXsvaWZ9Cgk8ZGl2IGlkPSJsaXN0R3JvdXBzIiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8dGFibGUgaWQ9InJlY29yZHNfMyIgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUgZGlzcGxheSI+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGggY2xhc3M9ImlkeCI+eyRvLmlkeC5sYWJlbH08L3RoPgoJCQkJCTx0aD57JG8uZ3JvdXBfbmFtZS5sYWJlbH08L3RoPgoJCQkJCTx0aD57JG8uZ3JvdXBfdHlwZS5sYWJlbH08L3RoPgoJCQkJCTx0aCBjbGFzcz0ibm8tb3JkZXIiPnskby5ncm91cF9kZWZhdWx0LmxhYmVsfTwvdGg+CgkJCQkJPHRoIGNsYXNzPSJuby1vcmRlciI+eyRvLmdyb3VwX2FjdGl2ZS5sYWJlbH08L3RoPgoJCQkJCTx0aCBjbGFzcz0ibm8tb3JkZXIgbm8tdGhlYWQiPnskby5lZGl0bGluay5sYWJlbH08L3RoPgoJCQkJCTx0aCBjbGFzcz0ibm8tb3JkZXIgbm8tdGhlYWQiPnskby5kZWxldGVsaW5rLmxhYmVsfTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHk+CgkJCQk8dHI+CgkJCQkJPHRkIGNvbHNwYW49IjciIGNsYXNzPSJkYXRhVGFibGVzX2VtcHR5Ij57JG8ubG9hZGluZ308L3RkPgoJCQkJPC90cj4KCQkJPC90Ym9keT4KCQkJe2lmICRvLmZpbHRlcnMgZXEgMX0KCQkJPHRmb290PgoJCQkJPHRyPgoJCQkJCTx0aD48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtMV9pZHgiIHZhbHVlPSIiIGNsYXNzPSJzZWFyY2hfaW5pdCIgLz48L3RoPgoJCQkJCTx0aD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibTFfZ3JvdXBfbmFtZSIgdmFsdWU9IiIgY2xhc3M9InNlYXJjaF9pbml0IiAvPjwvdGg+CgkJCQkJPHRoPnskby5maWx0ZXIuZ3JvdXBfdHlwZX08L3RoPgoJCQkJCTx0aD48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJncm91cF9kZWZhdWx0IiB2YWx1ZT0iIiBjbGFzcz0ic2VhcmNoX2luaXQiIC8+PC90aD4KCQkJCQk8dGg+eyRvLmZpbHRlci5ncm91cF9hY3RpdmV9PC90aD4KCQkJCQk8dGg+PC90aD4KCQkJCQk8dGg+PC90aD4KCQkJCTwvdHI+CgkJCTwvdGZvb3Q+CgkJCXsvaWZ9CgkJPC90YWJsZT4KCTwvZGl2PgkKCTxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4KPC9kaXY+Cgo8c2NyaXB0Pgp2YXIgc0ZpbGVOYW1lID0gInskby5maWxlbmFtZX0iOwp2YXIgc1RpdGxlID0gInskby50aXRsZW5hbWV9IjsKe2xpdGVyYWx9CihmdW5jdGlvbigkKSB7Cgl2YXIgc1NvdXJjZSA9ICQoIiNwYWdlX3RhYnMgI2dyb3VwcyBhIikuYXR0cigiaHJlZiIpICsgIiZkaXNhYmxlX3RoZW1lPXRydWUmc2hvd3RlbXBsYXRlPWZhbHNlJm0xX2RhdGFUYWJsZT10cnVlIjsKCXZhciBvTGlzdEdyb3VwcyA9ICQoInRhYmxlI3JlY29yZHNfMyIpOwoJdmFyIGFUYWJsZVRvb2xzRGVmID0gewoJCSJzU3dmUGF0aCI6IHNTd2ZQYXRoLAoJICAgICJhQnV0dG9ucyI6IFsKCSAgICAJeyJzRXh0ZW5kcyI6ICJjb3B5IiwgInNCdXR0b25UZXh0Ijogc0NvcHksICJiRm9vdGVyIjogZmFsc2UsICJtQ29sdW1ucyI6IFsgMCwgMSwgMiwgM119LAoJICAgIAl7CgkgICAgCQkic0V4dGVuZHMiOiAiY29sbGVjdGlvbiIsCiAgICAgICAgICAgICAgICAic0J1dHRvblRleHQiOiBzU2F2ZUFzLAogICAgICAgICAgICAgICAgImFCdXR0b25zIjogWwoJCQkgICAgCXsic0V4dGVuZHMiOiAiY3N2IiwgInNCdXR0b25UZXh0IjogIkZvcm1hdCBDU1YiLCAiYkZvb3RlciI6IGZhbHNlLCAibUNvbHVtbnMiOiBbIDAsIDEsIDIsIDNdLCAic0NoYXJTZXQiOiAidXRmMTZsZSIsICJzRmlsZU5hbWUiOiBzRmlsZU5hbWUgKyIuY3N2In0sCgkJCSAgICAJeyJzRXh0ZW5kcyI6ICJ4bHMiLCAic0J1dHRvblRleHQiOiAiRm9ybWF0IEV4Y2VsIiwgImJGb290ZXIiOiBmYWxzZSwgIm1Db2x1bW5zIjogWyAwLCAxLCAyLCAzXSwgInNDaGFyU2V0IjogInV0ZjE2bGUiLCAic0ZpbGVOYW1lIjogc0ZpbGVOYW1lICsiLnhscyJ9LAoJCQkgICAgCXsic0V4dGVuZHMiOiAicGRmIiwgInNCdXR0b25UZXh0IjogIkZvcm1hdCBQREYiLCAiYkZvb3RlciI6IGZhbHNlLCAibUNvbHVtbnMiOiBbIDAsIDEsIDIsIDNdLCAic0ZpbGVOYW1lIjogc0ZpbGVOYW1lICsiLnBkZiIsICJzUGRmT3JpZW50YXRpb24iOiAibGFuZHNjYXBlIiwgInNUaXRsZSI6IHNUaXRsZX0KCQkgICAgCV0KCQkgICAgfQoJICAgIF0KICAgIH07CgoJLy8gZGF0YVRhYmxlcwoJaWYgKHNEb21QYWdpbmF0aW9uVHlwZSA9PSAxKQoJb1RhYmxlWyJncm91cHNfYyJdID0gb0xpc3RHcm91cHMuZGF0YVRhYmxlKHsKCQkic0RvbSI6ICc8InRvcExlbmd0aEZpbHRlciInK3NEb21SZWNvcmRzK3NEb21TZWFyY2grJz4nKyBzQ29weVNhdmUgKyc8InRvcEluZm9QYWdpbmF0aW9uImlwPnJ0PCJib3R0b21JbmZvUGFnaW5hdGlvbiJpcD4nLAoJICAgICJhTGVuZ3RoTWVudSI6IFtbNSwgMTAsIDI1LCA1MCwgMTAwLCAtMV0sIFs1LCAxMCwgMjUsIDUwLCAxMDAsIGFsbF1dLAoJICAgICJhYVNvcnRpbmciOiBbWyAwLCAiYXNjIiBdXSwKCSAgICAiYlByb2Nlc3NpbmciOiB0cnVlLAoJICAgICJiU2VydmVyU2lkZSI6IHRydWUsCgkgICAgImJTdGF0ZVNhdmUiOiB0cnVlLAoJCSJiUmV0cmlldmUiOiB0cnVlLAoJCSJvTGFuZ3VhZ2UiOiB7InNVcmwiOiBzTGFuZ2FnZX0sCgkJInNBamF4U291cmNlIjogc1NvdXJjZSwKCQkib1RhYmxlVG9vbHMiOiBhVGFibGVUb29sc0RlZiwKCQkiZm5Jbml0Q29tcGxldGUiOiBmdW5jdGlvbigpIHsKCSAgICAgIHZhciBvU2V0dGluZ3MgPSBvVGFibGVbImdyb3Vwc19jIl0uZGF0YVRhYmxlKCkuZm5TZXR0aW5ncygpOwoJICAgICAgZm9yICh2YXIgaT0wOyBpPG9TZXR0aW5ncy5hb1ByZVNlYXJjaENvbHMubGVuZ3RoOyBpKyspewoJICAgICAgICBpZihvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzW2ldLnNTZWFyY2gubGVuZ3RoPjApewoJICAgICAgICAgICAgJCgidGZvb3QgaW5wdXQsIHRmb290IHNlbGVjdCIsIG9MaXN0R3JvdXBzKVtpXS52YWx1ZSA9IG9TZXR0aW5ncy5hb1ByZVNlYXJjaENvbHNbaV0uc1NlYXJjaDsKCSAgICAgICAgICAgICQoInRmb290IGlucHV0LCB0Zm9vdCBzZWxlY3QiLCBvTGlzdEdyb3VwcylbaV0uY2xhc3NOYW1lID0gIiI7CgkgICAgICAgIH0KCSAgICAgIH0KCSAgICB9LAoJfSk7IAoJZWxzZSBpZiAoc0RvbVBhZ2luYXRpb25UeXBlID09IDIpCglvVGFibGVbImdyb3Vwc19jIl0gPSBvTGlzdEdyb3Vwcy5kYXRhVGFibGUoewoJCSJzRG9tIjogJzwidG9wTGVuZ3RoRmlsdGVyIicrc0RvbVJlY29yZHMrc0RvbVNlYXJjaCsnPicrIHNDb3B5U2F2ZSArJzwidG9wSW5mb1BhZ2luYXRpb24iaXA+cnQ8ImJvdHRvbUluZm9QYWdpbmF0aW9uImlwPicsCgkgICAgImFMZW5ndGhNZW51IjogW1s1LCAxMCwgMjUsIDUwLCAxMDAsIC0xXSwgWzUsIDEwLCAyNSwgNTAsIDEwMCwgYWxsXV0sCgkgICAgImFhU29ydGluZyI6IFtbIDAsICJhc2MiIF1dLAoJICAgICJiUHJvY2Vzc2luZyI6IHRydWUsCgkgICAgImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCSAgICAiYlN0YXRlU2F2ZSI6IHRydWUsCgkJImJSZXRyaWV2ZSI6IHRydWUsCgkgICAgInNQYWdpbmF0aW9uVHlwZSI6ICJmdWxsX251bWJlcnMiLAoJCSJvTGFuZ3VhZ2UiOiB7InNVcmwiOiBzTGFuZ2FnZX0sCgkJInNBamF4U291cmNlIjogc1NvdXJjZSwKCQkib1RhYmxlVG9vbHMiOiBhVGFibGVUb29sc0RlZiwKCQkiZm5Jbml0Q29tcGxldGUiOiBmdW5jdGlvbigpIHsKCSAgICAgIHZhciBvU2V0dGluZ3MgPSBvVGFibGVbImdyb3Vwc19jIl0uZGF0YVRhYmxlKCkuZm5TZXR0aW5ncygpOwoJICAgICAgZm9yICh2YXIgaT0wOyBpPG9TZXR0aW5ncy5hb1ByZVNlYXJjaENvbHMubGVuZ3RoOyBpKyspewoJICAgICAgICBpZihvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzW2ldLnNTZWFyY2gubGVuZ3RoPjApewoJICAgICAgICAgICAgJCgidGZvb3QgaW5wdXQsIHRmb290IHNlbGVjdCIsIG9MaXN0R3JvdXBzKVtpXS52YWx1ZSA9IG9TZXR0aW5ncy5hb1ByZVNlYXJjaENvbHNbaV0uc1NlYXJjaDsKCSAgICAgICAgICAgICQoInRmb290IGlucHV0LCB0Zm9vdCBzZWxlY3QiLCBvTGlzdEdyb3VwcylbaV0uY2xhc3NOYW1lID0gIiI7CgkgICAgICAgIH0KCSAgICAgIH0KCSAgICB9LAoJfSk7IAoKCS8vIGRhdGFUYWJsZXMgZmlsdGVycwoJJCgidGZvb3QgdGg6ZXEoMSkgaW5wdXQiLCBvTGlzdEdyb3Vwcykua2V5dXAoIGZ1bmN0aW9uKGV2ZW50KSB7IAoJCW9UYWJsZVsiZ3JvdXBzX2MiXS5mbkZpbHRlcih0aGlzLnZhbHVlLCAxKTsKCX0pOwoKCSQoInRmb290IHRoOmVxKDIpIHNlbGVjdCIsIG9MaXN0R3JvdXBzKS5jaGFuZ2UoIGZ1bmN0aW9uKGV2ZW50KSB7IAoJCW9UYWJsZVsiZ3JvdXBzX2MiXS5mbkZpbHRlcih0aGlzLnZhbHVlLCAyKTsKCX0pOwoKCSQoInRmb290IHRoOmVxKDIpIHNlbGVjdCIsIG9MaXN0R3JvdXBzKS5jaGFuZ2UoIGZ1bmN0aW9uKGV2ZW50KSB7IAoJCW9UYWJsZVsiZ3JvdXBzX2MiXS5mbkZpbHRlcih0aGlzLnZhbHVlLCAyKTsKCX0pOwoJCQoJJCgidGZvb3QgaW5wdXQiLCBvTGlzdEdyb3VwcykuZWFjaCggZnVuY3Rpb24gKGkpIHsKCQl0aGlzLmluaXRWYWwgPSB0aGlzLnZhbHVlOwoJfSk7CgoJJCgidGZvb3Qgc2VsZWN0Iiwgb0xpc3RHcm91cHMpLmVhY2goIGZ1bmN0aW9uIChpKSB7CgkJdGhpcy5pbml0VmFsID0gdGhpcy52YWx1ZTsKCQlpZiAodGhpcy52YWx1ZSAhPSAtMSkKCQkJJCh0aGlzKS5hZGRDbGFzcygic2VhcmNoX2luaXQiKTsKCX0pOwoKCSQoInRmb290IGlucHV0Iiwgb0xpc3RHcm91cHMpLmZvY3VzKCBmdW5jdGlvbihldmVudCkgeyAKCQlpZiAodGhpcy5jbGFzc05hbWUgPT0gInNlYXJjaF9pbml0IikKCQkJe3RoaXMuY2xhc3NOYW1lID0gIiI7IHRoaXMudmFsdWUgPSAiIjt9Cgl9KTsKCgkkKCJ0Zm9vdCBpbnB1dCIsIG9MaXN0R3JvdXBzKS5ibHVyKCBmdW5jdGlvbihldmVudCkgeyAKCQlpZiAodGhpcy52YWx1ZSA9PSAiIikKCQkJe3RoaXMuY2xhc3NOYW1lID0gInNlYXJjaF9pbml0IjsgdGhpcy52YWx1ZSA9IHRoaXMuaW5pdFZhbDt9Cgl9KTsKfSkoalF1ZXJ5KTsKey9saXRlcmFsfQo8L3NjcmlwdD4=]]></data>
	</file>
	<file>
	  <filename>/templates/inc_list_historic.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBpbmNfbGlzdF9oaXN0b3JpYy50cGwgLS0+ICAKCjxkaXYgY2xhc3M9InRvRGlzcGxheSI+Cgk8aDI+eyRvLnRpdGxlfTwvaDI+Cgk8ZGl2IGlkPSJsaXN0SGlzdG9yaWMiIGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTx0YWJsZSBpZD0icmVjb3Jkc18xIiBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSBkaXNwbGF5Ij4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aCBjbGFzcz0iaWR4Ij57JG8uaWR4LmxhYmVsfTwvdGg+CgkJCQkJPHRoPnskby5zbXNfaWQubGFiZWx9PC90aD4KCQkJCQk8dGg+eyRvLmNyZWF0ZWQubGFiZWx9PC90aD4KCQkJCQk8dGg+eyRvLnJlY2lwaWVudC5sYWJlbH08L3RoPgoJCQkJCTx0aD57JG8ubWVzc2FnZS5sYWJlbH08L3RoPgoJCQkJCTx0aD57JG8uc2VudC5sYWJlbH08L3RoPgoJCQkJCTx0aD57JG8uc3RhdHVzLmxhYmVsfTwvdGg+CgkJCQkJPHRoIGNsYXNzPSJuby1vcmRlciBuby10aGVhZCI+eyRvLmRlbGV0ZWxpbmsubGFiZWx9PC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keT4KCQkJCTx0cj4KCQkJCQk8dGQgY29sc3Bhbj0iOCIgY2xhc3M9ImRhdGFUYWJsZXNfZW1wdHkiPnskby5sb2FkaW5nfTwvdGQ+CgkJCQk8L3RyPgoJCQk8L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4KPC9kaXY+Cgo8c2NyaXB0Pgp2YXIgc0ZpbGVOYW1lID0gInskby5maWxlbmFtZX0iOwp2YXIgc1RpdGxlID0gInskby50aXRsZW5hbWV9IjsKe2xpdGVyYWx9CihmdW5jdGlvbigkKSB7Cgl2YXIgc1NvdXJjZSA9ICQoIiNwYWdlX3RhYnMgI2hpc3RvcmljIGEiKS5hdHRyKCJocmVmIikgKyAiJmRpc2FibGVfdGhlbWU9dHJ1ZSZzaG93dGVtcGxhdGU9ZmFsc2UmbTFfZGF0YVRhYmxlPXRydWUiOwoJdmFyIG9MaXN0SGlzdG9yaWMgPSAkKCJ0YWJsZSNyZWNvcmRzXzEiKTsKCXZhciBhVGFibGVUb29sc0RlZiA9IHsKCQkic1N3ZlBhdGgiOiBzU3dmUGF0aCwKCSAgICAiYUJ1dHRvbnMiOiBbCgkgICAgCXsic0V4dGVuZHMiOiAiY29weSIsICJzQnV0dG9uVGV4dCI6IHNDb3B5LCAiYkZvb3RlciI6IGZhbHNlLCAibUNvbHVtbnMiOiBbIDAsIDEsIDIsIDMsIDRdfSwKCSAgICAJewoJICAgIAkJInNFeHRlbmRzIjogImNvbGxlY3Rpb24iLAogICAgICAgICAgICAgICAgInNCdXR0b25UZXh0Ijogc1NhdmVBcywKICAgICAgICAgICAgICAgICJhQnV0dG9ucyI6IFsKCQkJICAgIAl7InNFeHRlbmRzIjogImNzdiIsICJzQnV0dG9uVGV4dCI6ICJGb3JtYXQgQ1NWIiwgImJGb290ZXIiOiBmYWxzZSwgIm1Db2x1bW5zIjogWyAwLCAxLCAyLCAzLCA0XSwgInNDaGFyU2V0IjogInV0ZjE2bGUiLCAic0ZpbGVOYW1lIjogc0ZpbGVOYW1lICsiLmNzdiJ9LAoJCQkgICAgCXsic0V4dGVuZHMiOiAieGxzIiwgInNCdXR0b25UZXh0IjogIkZvcm1hdCBFeGNlbCIsICJiRm9vdGVyIjogZmFsc2UsICJtQ29sdW1ucyI6IFsgMCwgMSwgMiwgMywgNF0sICJzQ2hhclNldCI6ICJ1dGYxNmxlIiwgInNGaWxlTmFtZSI6IHNGaWxlTmFtZSArIi54bHMifSwKCQkJICAgIAl7InNFeHRlbmRzIjogInBkZiIsICJzQnV0dG9uVGV4dCI6ICJGb3JtYXQgUERGIiwgImJGb290ZXIiOiBmYWxzZSwgIm1Db2x1bW5zIjogWyAwLCAxLCAyLCAzLCA0XSwgInNGaWxlTmFtZSI6IHNGaWxlTmFtZSArIi5wZGYiLCAic1BkZk9yaWVudGF0aW9uIjogImxhbmRzY2FwZSIsICJzVGl0bGUiOiBzVGl0bGV9CgkJICAgIAldCgkJICAgIH0KCSAgICBdCiAgICB9OwoJCgkvLyBkYXRhVGFibGVzCglpZiAoc0RvbVBhZ2luYXRpb25UeXBlID09IDEpCglvVGFibGVbImhpc3RvcmljX2MiXSA9IG9MaXN0SGlzdG9yaWMuZGF0YVRhYmxlKHsKCQkic0RvbSI6ICc8InRvcExlbmd0aEZpbHRlciInK3NEb21SZWNvcmRzK3NEb21TZWFyY2grJz4nKyBzQ29weVNhdmUgKyc8InRvcEluZm9QYWdpbmF0aW9uImlwPnJ0PCJib3R0b21JbmZvUGFnaW5hdGlvbiJpcD4nLAoJICAgICJhTGVuZ3RoTWVudSI6IFtbNSwgMTAsIDI1LCA1MCwgMTAwLCAtMV0sIFs1LCAxMCwgMjUsIDUwLCAxMDAsIGFsbF1dLAoJICAgICJhYVNvcnRpbmciOiBbWyAwLCAiZGVzYyIgXV0sCgkgICAgImJQcm9jZXNzaW5nIjogdHJ1ZSwKCSAgICAiYlNlcnZlclNpZGUiOiB0cnVlLAoJCSJvTGFuZ3VhZ2UiOiB7InNVcmwiOiBzTGFuZ2FnZX0sCgkJInNBamF4U291cmNlIjogc1NvdXJjZSwKCQkib1RhYmxlVG9vbHMiOiBhVGFibGVUb29sc0RlZgoJfSk7IAoJZWxzZSBpZiAoc0RvbVBhZ2luYXRpb25UeXBlID09IDIpCglvVGFibGVbImhpc3RvcmljX2MiXSA9IG9MaXN0SGlzdG9yaWMuZGF0YVRhYmxlKHsKCQkic0RvbSI6ICc8InRvcExlbmd0aEZpbHRlciInK3NEb21SZWNvcmRzK3NEb21TZWFyY2grJz4nK3NDb3B5U2F2ZSsnPCJ0b3BJbmZvUGFnaW5hdGlvbiJpcD5ydDwiYm90dG9tSW5mb1BhZ2luYXRpb24iaXA+JywKCSAgICAiYUxlbmd0aE1lbnUiOiBbWzUsIDEwLCAyNSwgNTAsIDEwMCwgLTFdLCBbNSwgMTAsIDI1LCA1MCwgMTAwLCBhbGxdXSwKCSAgICAiYWFTb3J0aW5nIjogW1sgMCwgImRlc2MiIF1dLAoJICAgICJiUHJvY2Vzc2luZyI6IHRydWUsCgkgICAgImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCQkib0xhbmd1YWdlIjogeyJzVXJsIjogc0xhbmdhZ2V9LAoJCSJzQWpheFNvdXJjZSI6IHNTb3VyY2UsCgkJInNQYWdpbmF0aW9uVHlwZSI6ICJmdWxsX251bWJlcnMiLAoJCSJvVGFibGVUb29scyI6IGFUYWJsZVRvb2xzRGVmCgl9KTsgCgoKCSQoIiNwYWdlX3RhYnMgI2hpc3RvcmljIGEiKS5jbGljayggZnVuY3Rpb24oKSB7CgkJb1RhYmxlWyJoaXN0b3JpY19jIl0uZm5TdGFuZGluZ1JlZHJhdygpOwoJfSk7Cn0pKGpRdWVyeSk7CnsvbGl0ZXJhbH0KPC9zY3JpcHQ+]]></data>
	</file>
	<file>
	  <filename>/templates/inc_list_recipients.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBpbmNfbGlzdF9yZWNpcGllbnRzLnRwbCAtLT4gIAoKPGRpdiBjbGFzcz0idG9EaXNwbGF5Ij4KCTxoMj57JG8udGl0bGV9PC9oMj4KCXtpZiBpc3NldCgkby5hZGQpfQoJCXskby5hZGR9Cgl7L2lmfQoJPGRpdiBpZD0ibGlzdFJlY2lwaWVudHMiIGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTx0YWJsZSBpZD0icmVjb3Jkc18yIiBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSBkaXNwbGF5Ij4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aCBjbGFzcz0iaWR4Ij57JG8uaWR4LmxhYmVsfTwvdGg+CgkJCQkJPHRoPnskby5yZWNpcGllbnRfZmlyc3RuYW1lLmxhYmVsfTwvdGg+CgkJCQkJPHRoPnskby5yZWNpcGllbnRfbmFtZS5sYWJlbH08L3RoPgoJCQkJCTx0aD57JG8ucmVjaXBpZW50X21vYmlsLmxhYmVsfTwvdGg+CgkJCQkJPHRoPnskby5yZWNpcGllbnRfZW1haWwubGFiZWx9PC90aD4KCQkJCQk8dGggY2xhc3M9Im5vLW9yZGVyIj57JG8ucmVjaXBpZW50X2dyb3VwLmxhYmVsfTwvdGg+CgkJCQkJPHRoIGNsYXNzPSJuby1vcmRlciI+eyRvLnJlY2lwaWVudF9hY3RpdmUubGFiZWx9PC90aD4KCQkJCQk8dGggY2xhc3M9Im5vLW9yZGVyIG5vLXRoZWFkIj57JG8uZWRpdGxpbmsubGFiZWx9PC90aD4KCQkJCQk8dGggY2xhc3M9Im5vLW9yZGVyIG5vLXRoZWFkIj57JG8uZGVsZXRlbGluay5sYWJlbH08L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5PgoJCQkJPHRyPgoJCQkJCTx0ZCBjb2xzcGFuPSI5IiBjbGFzcz0iZGF0YVRhYmxlc19lbXB0eSI+eyRvLmxvYWRpbmd9PC90ZD4KCQkJCTwvdHI+CgkJCTwvdGJvZHk+CgkJCXtpZiAkby5maWx0ZXJzIGVxIDF9CgkJCTx0Zm9vdD4KCQkJCTx0cj4KCQkJCQk8dGg+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibTFfaWR4IiB2YWx1ZT0iIiBjbGFzcz0ic2VhcmNoX2luaXQiIC8+PC90aD4KCQkJCQk8dGg+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9Im0xX3JlY2lwaWVudF9maXJzdG5hbWUiIHZhbHVlPSIiIGNsYXNzPSJzZWFyY2hfaW5pdCIgLz48L3RoPgoJCQkJCTx0aD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibTFfcmVjaXBpZW50X25hbWUiIHZhbHVlPSIiIGNsYXNzPSJzZWFyY2hfaW5pdCIgLz48L3RoPgoJCQkJCTx0aD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibTFfcmVjaXBpZW50X21vYmlsIiB2YWx1ZT0iIiBjbGFzcz0ic2VhcmNoX2luaXQiIC8+PC90aD4KCQkJCQk8dGg+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9Im0xX3JlY2lwaWVudF9lbWFpbCIgdmFsdWU9IiIgY2xhc3M9InNlYXJjaF9pbml0IiAvPjwvdGg+CgkJCQkJPHRoPnskby5maWx0ZXIuZ3JvdXB9PC90aD4KCQkJCQk8dGg+eyRvLmZpbHRlci5yZWNpcGllbnRfYWN0aXZlfTwvdGg+CgkJCQkJPHRoPjwvdGg+CgkJCQkJPHRoPjwvdGg+CgkJCQk8L3RyPgoJCQk8L3Rmb290PgoJCQl7L2lmfQoJCTwvdGFibGU+Cgk8L2Rpdj4JCgk8ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+CjwvZGl2PgoKPHNjcmlwdD4KdmFyIHNGaWxlTmFtZSA9ICJ7JG8uZmlsZW5hbWV9IjsKdmFyIHNUaXRsZSA9ICJ7JG8udGl0bGVuYW1lfSI7Cgp7bGl0ZXJhbH0KKGZ1bmN0aW9uKCQpIHsKCXZhciBzU291cmNlID0gJCgiI3BhZ2VfdGFicyAjcmVjaXBpZW50cyBhIikuYXR0cigiaHJlZiIpICsgIiZkaXNhYmxlX3RoZW1lPXRydWUmc2hvd3RlbXBsYXRlPWZhbHNlJm0xX2RhdGFUYWJsZT10cnVlIjsKCXZhciBvTGlzdFJlY2lwaWVudHMgPSAkKCJ0YWJsZSNyZWNvcmRzXzIiKTsKCXZhciBhVGFibGVUb29sc0RlZiA9IHsKCQkic1N3ZlBhdGgiOiBzU3dmUGF0aCwKCSAgICAiYUJ1dHRvbnMiOiBbCgkgICAgCXsic0V4dGVuZHMiOiAiY29weSIsICJzQnV0dG9uVGV4dCI6IHNDb3B5LCAiYkZvb3RlciI6IGZhbHNlLCAibUNvbHVtbnMiOiBbIDAsIDEsIDIsIDMsIDQsIDUsIDZdfSwKCSAgICAJewoJICAgIAkJInNFeHRlbmRzIjogImNvbGxlY3Rpb24iLAogICAgICAgICAgICAgICAgInNCdXR0b25UZXh0Ijogc1NhdmVBcywKICAgICAgICAgICAgICAgICJhQnV0dG9ucyI6IFsKCQkJICAgIAl7InNFeHRlbmRzIjogImNzdiIsICJzQnV0dG9uVGV4dCI6ICJGb3JtYXQgQ1NWIiwgImJGb290ZXIiOiBmYWxzZSwgIm1Db2x1bW5zIjogWyAwLCAxLCAyLCAzLCA0LCA1LCA2XSwgInNDaGFyU2V0IjogInV0ZjE2bGUiLCAic0ZpbGVOYW1lIjogc0ZpbGVOYW1lICsiLmNzdiJ9LAoJCQkgICAgCXsic0V4dGVuZHMiOiAieGxzIiwgInNCdXR0b25UZXh0IjogIkZvcm1hdCBFeGNlbCIsICJiRm9vdGVyIjogZmFsc2UsICJtQ29sdW1ucyI6IFsgMCwgMSwgMiwgMywgNCwgNSwgNl0sICJzQ2hhclNldCI6ICJ1dGYxNmxlIiwgInNGaWxlTmFtZSI6IHNGaWxlTmFtZSArIi54bHMifSwKCQkJICAgIAl7InNFeHRlbmRzIjogInBkZiIsICJzQnV0dG9uVGV4dCI6ICJGb3JtYXQgUERGIiwgImJGb290ZXIiOiBmYWxzZSwgIm1Db2x1bW5zIjogWyAwLCAxLCAyLCAzLCA0LCA1LCA2XSwgInNGaWxlTmFtZSI6IHNGaWxlTmFtZSArIi5wZGYiLCAic1BkZk9yaWVudGF0aW9uIjogImxhbmRzY2FwZSIsICJzVGl0bGUiOiBzVGl0bGV9CgkJICAgIAldCgkJICAgIH0KCSAgICBdCiAgICB9OwoKCS8vIGRhdGFUYWJsZXMKCWlmIChzRG9tUGFnaW5hdGlvblR5cGUgPT0gMSkKCW9UYWJsZVsicmVjaXBpZW50c19jIl0gPSBvTGlzdFJlY2lwaWVudHMuZGF0YVRhYmxlKHsKCQkic0RvbSI6ICc8InRvcExlbmd0aEZpbHRlciInK3NEb21SZWNvcmRzK3NEb21TZWFyY2grJz4nKyBzQ29weVNhdmUgKyc8InRvcEluZm9QYWdpbmF0aW9uImlwPnJ0PCJib3R0b21JbmZvUGFnaW5hdGlvbiJpcD4nLAoJICAgICJhTGVuZ3RoTWVudSI6IFtbNSwgMTAsIDI1LCA1MCwgMTAwLCAtMV0sIFs1LCAxMCwgMjUsIDUwLCAxMDAsIGFsbF1dLAoJICAgICJhYVNvcnRpbmciOiBbWyAwLCAiYXNjIiBdXSwKCSAgICAiYlByb2Nlc3NpbmciOiB0cnVlLAoJICAgICJiU2VydmVyU2lkZSI6IHRydWUsCgkgICAgImJTdGF0ZVNhdmUiOiB0cnVlLAoJCSJiUmV0cmlldmUiOiB0cnVlLAoJCSJvTGFuZ3VhZ2UiOiB7InNVcmwiOiBzTGFuZ2FnZX0sCgkJInNBamF4U291cmNlIjogc1NvdXJjZSwKCQkib1RhYmxlVG9vbHMiOiBhVGFibGVUb29sc0RlZiwKCQkiZm5Jbml0Q29tcGxldGUiOiBmdW5jdGlvbigpIHsKCSAgICAgIHZhciBvU2V0dGluZ3MgPSBvVGFibGVbInJlY2lwaWVudHNfYyJdLmRhdGFUYWJsZSgpLmZuU2V0dGluZ3MoKTsKCSAgICAgIGZvciAodmFyIGk9MDsgaTxvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzLmxlbmd0aDsgaSsrKXsKCSAgICAgICAgaWYob1NldHRpbmdzLmFvUHJlU2VhcmNoQ29sc1tpXS5zU2VhcmNoLmxlbmd0aD4wKXsKCSAgICAgICAgICAgICQoInRmb290IGlucHV0LCB0Zm9vdCBzZWxlY3QiLCBvTGlzdFJlY2lwaWVudHMpW2ldLnZhbHVlID0gb1NldHRpbmdzLmFvUHJlU2VhcmNoQ29sc1tpXS5zU2VhcmNoOwoJICAgICAgICAgICAgJCgidGZvb3QgaW5wdXQsIHRmb290IHNlbGVjdCIsIG9MaXN0UmVjaXBpZW50cylbaV0uY2xhc3NOYW1lID0gIiI7CgkgICAgICAgIH0KCSAgICAgIH0KCSAgICB9LAoJfSk7IAoJZWxzZSBpZiAoc0RvbVBhZ2luYXRpb25UeXBlID09IDIpCglvVGFibGVbInJlY2lwaWVudHNfYyJdID0gb0xpc3RSZWNpcGllbnRzLmRhdGFUYWJsZSh7CgkJInNEb20iOiAnPCJ0b3BMZW5ndGhGaWx0ZXIiJytzRG9tUmVjb3JkcytzRG9tU2VhcmNoKyc+Jysgc0NvcHlTYXZlICsnPCJ0b3BJbmZvUGFnaW5hdGlvbiJpcD5ydDwiYm90dG9tSW5mb1BhZ2luYXRpb24iaXA+JywKCSAgICAiYUxlbmd0aE1lbnUiOiBbWzUsIDEwLCAyNSwgNTAsIDEwMCwgLTFdLCBbNSwgMTAsIDI1LCA1MCwgMTAwLCBhbGxdXSwKCSAgICAiYWFTb3J0aW5nIjogW1sgMCwgImFzYyIgXV0sCgkgICAgImJQcm9jZXNzaW5nIjogdHJ1ZSwKCSAgICAiYlNlcnZlclNpZGUiOiB0cnVlLAoJICAgICJiU3RhdGVTYXZlIjogdHJ1ZSwKCQkiYlJldHJpZXZlIjogdHJ1ZSwKCSAgICAic1BhZ2luYXRpb25UeXBlIjogImZ1bGxfbnVtYmVycyIsCgkJIm9MYW5ndWFnZSI6IHsic1VybCI6IHNMYW5nYWdlfSwKCQkic0FqYXhTb3VyY2UiOiBzU291cmNlLAoJCSJvVGFibGVUb29scyI6IGFUYWJsZVRvb2xzRGVmLAoJCSJmbkluaXRDb21wbGV0ZSI6IGZ1bmN0aW9uKCkgewoJICAgICAgdmFyIG9TZXR0aW5ncyA9IG9UYWJsZVsicmVjaXBpZW50c19jIl0uZGF0YVRhYmxlKCkuZm5TZXR0aW5ncygpOwoJICAgICAgZm9yICh2YXIgaT0wOyBpPG9TZXR0aW5ncy5hb1ByZVNlYXJjaENvbHMubGVuZ3RoOyBpKyspewoJICAgICAgICBpZihvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzW2ldLnNTZWFyY2gubGVuZ3RoPjApewoJICAgICAgICAgICAgJCgidGZvb3QgaW5wdXQsIHRmb290IHNlbGVjdCIsIG9MaXN0UmVjaXBpZW50cylbaV0udmFsdWUgPSBvU2V0dGluZ3MuYW9QcmVTZWFyY2hDb2xzW2ldLnNTZWFyY2g7CgkgICAgICAgICAgICAkKCJ0Zm9vdCBpbnB1dCwgdGZvb3Qgc2VsZWN0Iiwgb0xpc3RSZWNpcGllbnRzKVtpXS5jbGFzc05hbWUgPSAiIjsKCSAgICAgICAgfQoJICAgICAgfQoJICAgIH0sCgl9KTsgCgoJJCgiI3BhZ2VfdGFicyAjcmVjaXBpZW50cyBhIikuY2xpY2soIGZ1bmN0aW9uKCkgewoJCW9UYWJsZVsicmVjaXBpZW50c19jIl0uZm5TdGFuZGluZ1JlZHJhdygpOwoJfSk7CQoKCS8vIGRhdGFUYWJsZXMgZmlsdGVycwoJJCgidGZvb3QgdGg6ZXEoMSkgaW5wdXQiLCBvTGlzdFJlY2lwaWVudHMpLmtleXVwKCBmdW5jdGlvbihldmVudCkgeyAKCQlvVGFibGVbInJlY2lwaWVudHNfYyJdLmZuRmlsdGVyKHRoaXMudmFsdWUsIDEpOwoJfSk7CgoJJCgidGZvb3QgdGg6ZXEoMikgaW5wdXQiLCBvTGlzdFJlY2lwaWVudHMpLmtleXVwKCBmdW5jdGlvbihldmVudCkgeyAKCQlvVGFibGVbInJlY2lwaWVudHNfYyJdLmZuRmlsdGVyKHRoaXMudmFsdWUsIDIpOwoJfSk7CgoJJCgidGZvb3QgdGg6ZXEoMykgaW5wdXQiLCBvTGlzdFJlY2lwaWVudHMpLmtleXVwKCBmdW5jdGlvbihldmVudCkgeyAKCQlvVGFibGVbInJlY2lwaWVudHNfYyJdLmZuRmlsdGVyKHRoaXMudmFsdWUsIDMpOwoJfSk7CgoJJCgidGZvb3QgdGg6ZXEoNCkgaW5wdXQiLCBvTGlzdFJlY2lwaWVudHMpLmtleXVwKCBmdW5jdGlvbihldmVudCkgeyAKCQlvVGFibGVbInJlY2lwaWVudHNfYyJdLmZuRmlsdGVyKHRoaXMudmFsdWUsIDQpOwoJfSk7CgoJJCgidGZvb3QgdGg6ZXEoNSkgc2VsZWN0Iiwgb0xpc3RSZWNpcGllbnRzKS5jaGFuZ2UoIGZ1bmN0aW9uKGV2ZW50KSB7IAoJCW9UYWJsZVsicmVjaXBpZW50c19jIl0uZm5GaWx0ZXIodGhpcy52YWx1ZSwgNSk7Cgl9KTsKCgkkKCJ0Zm9vdCB0aDplcSg1KSBzZWxlY3QiLCBvTGlzdFJlY2lwaWVudHMpLmNoYW5nZSggZnVuY3Rpb24oZXZlbnQpIHsgCgkJb1RhYmxlWyJyZWNpcGllbnRzX2MiXS5mbkZpbHRlcih0aGlzLnZhbHVlLCA1KTsKCX0pOwoJCQoJJCgidGZvb3QgaW5wdXQiLCBvTGlzdFJlY2lwaWVudHMpLmVhY2goIGZ1bmN0aW9uIChpKSB7CgkJdGhpcy5pbml0VmFsID0gdGhpcy52YWx1ZTsKCX0pOwoKCSQoInRmb290IHNlbGVjdCIsIG9MaXN0UmVjaXBpZW50cykuZWFjaCggZnVuY3Rpb24gKGkpIHsKCQl0aGlzLmluaXRWYWwgPSB0aGlzLnZhbHVlOwoJCWlmICh0aGlzLnZhbHVlICE9IC0xKQoJCQkkKHRoaXMpLmFkZENsYXNzKCJzZWFyY2hfaW5pdCIpOwoJfSk7CgoJJCgidGZvb3QgaW5wdXQiLCBvTGlzdFJlY2lwaWVudHMpLmZvY3VzKCBmdW5jdGlvbihldmVudCkgeyAKCQlpZiAodGhpcy5jbGFzc05hbWUgPT0gInNlYXJjaF9pbml0IikKCQkJe3RoaXMuY2xhc3NOYW1lID0gIiI7IHRoaXMudmFsdWUgPSAiIjt9Cgl9KTsKCgkkKCJ0Zm9vdCBpbnB1dCIsIG9MaXN0UmVjaXBpZW50cykuYmx1ciggZnVuY3Rpb24oZXZlbnQpIHsgCgkJaWYgKHRoaXMudmFsdWUgPT0gIiIpCgkJCXt0aGlzLmNsYXNzTmFtZSA9ICJzZWFyY2hfaW5pdCI7IHRoaXMudmFsdWUgPSB0aGlzLmluaXRWYWw7fQoJfSk7Cn0pKGpRdWVyeSk7CnsvbGl0ZXJhbH0KPC9zY3JpcHQ+]]></data>
	</file>
	<file>
	  <filename>/templates/inc_list_templates.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBpbmNfbGlzdF90ZW1wbGF0ZXMudHBsIC0tPiAgCgo8ZGl2IGNsYXNzPSJ0b0Rpc3BsYXkiPgoJPGgyPnskby50aXRsZX08L2gyPgoJe2lmIGlzc2V0KCRvLmFkZCl9CgkJeyRvLmFkZH0KCXsvaWZ9Cgk8ZGl2IGlkPSJsaXN0VGVtcGxhdGVzIiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8dGFibGUgaWQ9InJlY29yZHNfNCIgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUgZGlzcGxheSI+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+eyRvLnRlbXBsYXRlX25hbWUubGFiZWx9PC90aD4KCQkJCQk8dGggY2xhc3M9Im5vLW9yZGVyIj57JG8udGVtcGxhdGVfZGVmYXVsdC5sYWJlbH08L3RoPgoJCQkJCTx0aCBjbGFzcz0ibm8tb3JkZXIgbm8tdGhlYWQiPnskby5lZGl0bGluay5sYWJlbH08L3RoPgoJCQkJCTx0aCBjbGFzcz0ibm8tb3JkZXIgbm8tdGhlYWQiPnskby5kZWxldGVsaW5rLmxhYmVsfTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHk+CgkJCQk8dHI+CgkJCQkJPHRkIGNvbHNwYW49IjQiIGNsYXNzPSJkYXRhVGFibGVzX2VtcHR5Ij57JG8ubG9hZGluZ308L3RkPgoJCQkJPC90cj4KCQkJPC90Ym9keT4JCQkKCQk8L3RhYmxlPgoJPC9kaXY+CQoJPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pgo8L2Rpdj4KCjxzY3JpcHQ+CntsaXRlcmFsfQooZnVuY3Rpb24oJCkgewoJdmFyIHNTb3VyY2UgPSAkKCIjcGFnZV90YWJzICN0ZW1wbGF0ZXMgYSIpLmF0dHIoImhyZWYiKSArICImZGlzYWJsZV90aGVtZT10cnVlJnNob3d0ZW1wbGF0ZT1mYWxzZSZtMV9kYXRhVGFibGU9dHJ1ZSI7Cgl2YXIgb0xpc3RUZW1wbGF0ZXMgPSAkKCJ0YWJsZSNyZWNvcmRzXzQiKTsKCgkvLyBkYXRhVGFibGVzCglvVGFibGVbInRlbXBsYXRlc19jIl0gPSBvTGlzdFRlbXBsYXRlcy5kYXRhVGFibGUoewoJCSJzRG9tIjogInJ0IiwKCSAgICAiYlByb2Nlc3NpbmciOiB0cnVlLAoJICAgICJiU2VydmVyU2lkZSI6IHRydWUsCgkJIm9MYW5ndWFnZSI6IHsic1VybCI6IHNMYW5nYWdlfSwKCQkic0FqYXhTb3VyY2UiOiBzU291cmNlCgl9KTsgCn0pKGpRdWVyeSk7CnsvbGl0ZXJhbH0KPC9zY3JpcHQ+]]></data>
	</file>
	<file>
	  <filename>/templates/inc_page_error.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBpbmNfcGFnZV9lcnJvci50cGwgLS0+ICAgCgo8YXNpZGUgY2xhc3M9ImFsZXJ0IiByb2xlPSJzdGF0dXMiPgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQl7aWYgJG8ubXNnVGV4dHxpc19hcnJheX0KCQk8dWwgY2xhc3M9InBhZ2VlcnJvciI+CgkJe2ZvcmVhY2gga2V5PWtleSBpdGVtPW1zZ1RleHQgZnJvbT0kby5tc2dUZXh0fQoJCQk8bGk+eyRtc2dUZXh0fTwvbGk+CgkJey9mb3JlYWNofQoJCTwvdWw+CgkJe2Vsc2V9CgkJPHAgY2xhc3M9InBhZ2VlcnJvciI+eyRvLm1zZ1RleHR9PC9wPgoJCXsvaWZ9Cgk8L2Rpdj4KPC9hc2lkZT4=]]></data>
	</file>
	<file>
	  <filename>/templates/inc_select_recipients.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBpbmNfc2VsZWN0X3JlY2lwaWVudHMudHBsIC0tPiAgIAoKPGRpdiBpZD0ibGlzdFJlY2lwaWVudHNBY3RpdmVzIiBjbGFzcz0idG9IaWRlIiBzdHlsZT0iZGlzcGxheTogbm9uZSI+Cgk8aDI+eyRvLnRpdGxlfTwvaDI+Cgl7JG8ucmVjaXBpZW50LmZpZWxkc2V0fQoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCTxzcGFuIGlkPSJoaWRlTGlzdFJlY2lwaWVudHMiPnskby5oaWRlX3JlY2lwaWVudHN9PC9zcGFuPgoJCTwvZGl2PgoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCTx0YWJsZSBpZD0icmVjb3Jkc18wIiBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSBkaXNwbGF5Ij4KCQkJCTx0aGVhZD4KCQkJCQk8dHI+CgkJCQkJCTx0aD48aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJzZWxlY3RBbGxSZWNpcGllbnRzIiAvPjwvdGg+CgkJCQkJCTx0aD57JG8ucmVjaXBpZW50X2ZpcnN0bmFtZS5sYWJlbH08L3RoPgoJCQkJCQk8dGg+eyRvLnJlY2lwaWVudF9uYW1lLmxhYmVsfTwvdGg+CgkJCQkJCTx0aD57JG8ucmVjaXBpZW50X21vYmlsLmxhYmVsfTwvdGg+CgkJCQkJCTx0aD57JG8ucmVjaXBpZW50X2dyb3VwLmxhYmVsfTwvdGg+CgkJCQkJPC90cj4KCQkJCTwvdGhlYWQ+CgkJCQk8dGJvZHk+CgkJCQkJPHRyPgoJCQkJCQk8dGQgY29sc3Bhbj0iNSIgY2xhc3M9ImRhdGFUYWJsZXNfZW1wdHkiPnskby5sb2FkaW5nfTwvdGQ+CgkJCQkJPC90cj4KCQkJCTwvdGJvZHk+CgkJCQk8dGZvb3Q+CgkJCQkJPHRyPgoJCQkJCQk8dGg+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibTFfaWR4IiB2YWx1ZT0iIiBjbGFzcz0ic2VhcmNoX2luaXQiIC8+PC90aD4KCQkJCQkJPHRoPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJtMV9yZWNpcGllbnRfZmlyc3RuYW1lIiB2YWx1ZT0iIiBjbGFzcz0ic2VhcmNoX2luaXQiIC8+PC90aD4KCQkJCQkJPHRoPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJtMV9yZWNpcGllbnRfbmFtZSIgdmFsdWU9IiIgY2xhc3M9InNlYXJjaF9pbml0IiAvPjwvdGg+CgkJCQkJCTx0aD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibTFfcmVjaXBpZW50X21vYmlsIiB2YWx1ZT0iIiBjbGFzcz0ic2VhcmNoX2luaXQiIC8+PC90aD4KCQkJCQkJPHRoPnskby5maWx0ZXIuZ3JvdXB9PC90aD4KCQkJCQk8L3RyPgoJCQkJPC90Zm9vdD4KCQkJPC90YWJsZT4KCQkJPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2PgoJCTwvZGl2PgoJeyRvLmVuZC5maWVsZHNldH0KPC9kaXY+Cgo8c2NyaXB0Pgp7bGl0ZXJhbH0KJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0aW9uKCkgewoJdmFyIGFTZWxlY3RlZFJlY2lwaWVudHMgPSB7fTsKCXZhciBzU291cmNlID0gJCgiI3BhZ2VfdGFicyAjbWVzc2FnZXMgYSIpLmF0dHIoImhyZWYiKSArICImZGlzYWJsZV90aGVtZT10cnVlJnNob3d0ZW1wbGF0ZT1mYWxzZSZtMV9kYXRhVGFibGU9dHJ1ZSI7Cgl2YXIgb0xpc3RSZWNpcGllbnRzQWN0aXZlcyA9ICQoInRhYmxlI3JlY29yZHNfMCIpOwoJdmFyIG9SZWNpcGllbnRzTW9iaWwgPSAkKCIjcmVjaXBpZW50c01vYmlsIik7Cgl2YXIgb1NlbGVjdEFsbFJlY2lwaWVudHMgPSAkKCIjc2VsZWN0QWxsUmVjaXBpZW50cyIpOwoJdmFyIG9SZWNpcGllbnRzU2VsZWN0ZWQgPSAkKCIjbTFfcmVjaXBpZW50Iik7Cgl2YXIgb0NhbGN1bFJlY2lwaWVudHMgPSAkKCIjc2hvd0xpc3RSZWNpcGllbnRzIHNwYW4udWktYnV0dG9uLXRleHQiKTsKCXZhciBzQ2FsY3VsUmVjaXBpZW50c0xhYmVsID0gJCgiI3Nob3dMaXN0UmVjaXBpZW50cyBzcGFuLnVpLWJ1dHRvbi10ZXh0IikuaHRtbCgpOwoJdmFyIG9SZXNldCA9ICQoImJ1dHRvbltuYW1lPW0xX3Jlc2V0dG9kZWZhdWx0XSIpOwoKCW9SZXNldC5vbigiY2xpY2siLCBmdW5jdGlvbigpIHsKCQlvUmVjaXBpZW50c1NlbGVjdGVkLnZhbCgiIik7CgkJYVNlbGVjdGVkUmVjaXBpZW50cyA9IHt9OwoJCSQoImlucHV0W3R5cGU9Y2hlY2tib3hdIiwgb0xpc3RSZWNpcGllbnRzQWN0aXZlcykuZWFjaCggZnVuY3Rpb24gKGkpIHsKICAJCQlrID0gdGhpcy52YWx1ZTsKCQkJJCgiaW5wdXRbdHlwZT1jaGVja2JveF0iLCBvTGlzdFJlY2lwaWVudHNBY3RpdmVzKS5hdHRyKCJjaGVja2VkIiwgZmFsc2UpOwoJCX0pOwoJCW9DYWxjdWxSZWNpcGllbnRzLmh0bWwoc0NhbGN1bFJlY2lwaWVudHNMYWJlbCk7CgkJb1JlY2lwaWVudHNNb2JpbC5oaWRlKCk7CgkJb1JlY2lwaWVudHNTZWxlY3RlZC5zaG93KCkuZm9jdXMoKTsKCQlvU2VsZWN0RGF0ZUhvdXIuaGlkZSgpOwoJCW9OYkNoYXJzLnRleHQoIjAiKTsKCQlvTWF4Q2hhcnMudGV4dCgiMTYwIik7CgkJb05iU21zLnRleHQoIjEiKTsgIAkJCgl9KTsKCgkvLyBhZGQgb25lIHJlY2lwaWVudCBmb3IgbWVzc2FnZQoJb1JlY2lwaWVudHNNb2JpbC5vbigiY2xpY2siLCBmdW5jdGlvbigpIHsKCQlvUmVjaXBpZW50c1NlbGVjdGVkLnZhbCgiIik7CgkJYVNlbGVjdGVkUmVjaXBpZW50cyA9IHt9OwoJCSQoImlucHV0W3R5cGU9Y2hlY2tib3hdIiwgb0xpc3RSZWNpcGllbnRzQWN0aXZlcykuZWFjaCggZnVuY3Rpb24gKGkpIHsKICAJCQlrID0gdGhpcy52YWx1ZTsKCQkJJCgiaW5wdXRbdHlwZT1jaGVja2JveF0iLCBvTGlzdFJlY2lwaWVudHNBY3RpdmVzKS5hdHRyKCJjaGVja2VkIiwgZmFsc2UpOwoJCX0pOwoJCW9DYWxjdWxSZWNpcGllbnRzLmh0bWwoc0NhbGN1bFJlY2lwaWVudHNMYWJlbCk7CgkJb1JlY2lwaWVudHNNb2JpbC5oaWRlKCk7CgkJb1JlY2lwaWVudHNTZWxlY3RlZC5zaG93KCkuZm9jdXMoKTsKCX0pOwoKCS8vIGFkZCBtdWx0aXBsZSByZWNpcGllbnRzIGZvciBtZXNzYWdlCglvTGlzdFJlY2lwaWVudHNBY3RpdmVzLm9uKCJjbGljayIsICJpbnB1dCNzZWxlY3RBbGxSZWNpcGllbnRzIiwgZnVuY3Rpb24oZXZlbnQpIHsKCgkJaWYgKCQodGhpcykuYXR0cigiY2hlY2tlZCIpID09ICJjaGVja2VkIikKCQkJJCgidGQgaW5wdXRbdHlwZT1jaGVja2JveF0iLCBvTGlzdFJlY2lwaWVudHNBY3RpdmVzKS5hdHRyKCJjaGVja2VkIiwgdHJ1ZSk7CgkJZWxzZQoJCQkkKCJ0ZCBpbnB1dFt0eXBlPWNoZWNrYm94XSIsIG9MaXN0UmVjaXBpZW50c0FjdGl2ZXMpLmF0dHIoImNoZWNrZWQiLCBmYWxzZSk7CgogIAkJJCgidGQgaW5wdXRbdHlwZT1jaGVja2JveF0iLCBvTGlzdFJlY2lwaWVudHNBY3RpdmVzKS5lYWNoKCBmdW5jdGlvbiAoaSkgewogIAkJCWsgPSB0aGlzLnZhbHVlOwoJCQlpZiAoJCh0aGlzKS5hdHRyKCJjaGVja2VkIikgPT0gImNoZWNrZWQiKQoJCQkJYVNlbGVjdGVkUmVjaXBpZW50c1trXSA9ICJjaGVja2VkIjsKCQkJZWxzZQoJCQkJYVNlbGVjdGVkUmVjaXBpZW50c1trXSA9ICJ1bmNoZWNrZWQiOwoJCX0pOwoKICAJCXRvdGFsUmVjaXBpZW50cyA9IDA7CiAgCQltb2JpbFJlY2lwaWVudHMgPSAiIjsKCQkkLmVhY2goYVNlbGVjdGVkUmVjaXBpZW50cywgZnVuY3Rpb24oa2V5LCB2YWx1ZSkgewoJCSAgaWYgKHZhbHVlID09ICJjaGVja2VkIikKCQkgIHsKCQkgIAltb2JpbFJlY2lwaWVudHMgKz0ga2V5KycsJzsKCQkgIAl0b3RhbFJlY2lwaWVudHMgKz0gMTsKCQkgIH0KCQl9KTsKCgkJaWYgKHRvdGFsUmVjaXBpZW50cyA+IDApCgkJewoJCQlvUmVjaXBpZW50c01vYmlsLnNob3coKTsKCQkJb1JlY2lwaWVudHNTZWxlY3RlZC5oaWRlKCk7CgkJCW9DYWxjdWxSZWNpcGllbnRzLmh0bWwodG90YWxSZWNpcGllbnRzICsgIiAiICsgc0NhbGN1bFJlY2lwaWVudHNMYWJlbCk7CgkJfSBlbHNlIHsKCQkJb1JlY2lwaWVudHNNb2JpbC5oaWRlKCk7CgkJCW9SZWNpcGllbnRzU2VsZWN0ZWQuc2hvdygpOwoJCQlvQ2FsY3VsUmVjaXBpZW50cy5odG1sKHNDYWxjdWxSZWNpcGllbnRzTGFiZWwpOwoJCX0KCgkJb1JlY2lwaWVudHNNb2JpbC52YWwoIiIpOwogIAkJb1JlY2lwaWVudHNTZWxlY3RlZC52YWwobW9iaWxSZWNpcGllbnRzKTsKICAJfSk7CgogIAlvTGlzdFJlY2lwaWVudHNBY3RpdmVzLm9uKCJjbGljayIsICJ0ZCBpbnB1dFt0eXBlPWNoZWNrYm94XSIsIGZ1bmN0aW9uKGV2ZW50KSB7CiAgCQlrID0gdGhpcy52YWx1ZTsKCQlpZiAoJCh0aGlzKS5pcygiOmNoZWNrZWQiKSkKCQkJYVNlbGVjdGVkUmVjaXBpZW50c1trXSA9ICJjaGVja2VkIjsKCQllbHNlCgkJCWFTZWxlY3RlZFJlY2lwaWVudHNba10gPSAidW5jaGVja2VkIjsKCgkJdG90YWxSZWNpcGllbnRzID0gMDsKCQltb2JpbFJlY2lwaWVudHMgPSAiIjsKCQkkLmVhY2goYVNlbGVjdGVkUmVjaXBpZW50cywgZnVuY3Rpb24oa2V5LCB2YWx1ZSkgewoJCSAgaWYgKHZhbHVlID09ICJjaGVja2VkIikKCQkgIHsKCQkgIAltb2JpbFJlY2lwaWVudHMgKz0ga2V5KycsJzsKCQkgIAl0b3RhbFJlY2lwaWVudHMgKz0gMTsKCQkgIH0KCQl9KTsKCgkJaWYgKHRvdGFsUmVjaXBpZW50cyA+IDApCgkJewoJCQlvUmVjaXBpZW50c01vYmlsLnNob3coKTsKCQkJb1JlY2lwaWVudHNTZWxlY3RlZC5oaWRlKCk7CgkJCW9DYWxjdWxSZWNpcGllbnRzLmh0bWwodG90YWxSZWNpcGllbnRzICsgIiAiICsgc0NhbGN1bFJlY2lwaWVudHNMYWJlbCk7CgkJfSBlbHNlIHsKCQkJb1JlY2lwaWVudHNNb2JpbC5oaWRlKCk7CgkJCW9SZWNpcGllbnRzU2VsZWN0ZWQuc2hvdygpOwoJCQlvQ2FsY3VsUmVjaXBpZW50cy5odG1sKHNDYWxjdWxSZWNpcGllbnRzTGFiZWwpOwoJCX0KCgkJb1JlY2lwaWVudHNNb2JpbC52YWwoIiIpOwogIAkJb1JlY2lwaWVudHNTZWxlY3RlZC52YWwobW9iaWxSZWNpcGllbnRzKTsKICAJfSk7CgoJLy8gZGF0YVRhYmxlcwkKCW9UYWJsZVsibWVzc2FnZXNfYyJdID0gb0xpc3RSZWNpcGllbnRzQWN0aXZlcy5kYXRhVGFibGUoewoJCSJzRG9tIjogJzwidG9wTGVuZ3RoRmlsdGVyImZsPjwidG9wSW5mb1BhZ2luYXRpb24iaXA+cnQ8ImJvdHRvbUluZm9QYWdpbmF0aW9uImlwPicsCgkgICAgImFMZW5ndGhNZW51IjogW1s1LCAxMCwgMjUsIDUwLCAxMDAsIC0xXSwgWzUsIDEwLCAyNSwgNTAsIDEwMCwgYWxsXV0sCgkgICAgImFhU29ydGluZyI6IFtbIDQsICJhc2MiIF1dLAoJICAgICJiUHJvY2Vzc2luZyI6IHRydWUsCgkgICAgImJTZXJ2ZXJTaWRlIjogdHJ1ZSwKCSAgICAic1BhZ2luYXRpb25UeXBlIjogImZ1bGxfbnVtYmVycyIsCgkJIm9MYW5ndWFnZSI6IHsic1VybCI6IHNMYW5nYWdlfSwKCQkic0FqYXhTb3VyY2UiOiBzU291cmNlLAkJICAgIAoJCSJhb0NvbHVtbkRlZnMiOiAKCSAgICBbCgkJCXsgImJTb3J0YWJsZSI6IGZhbHNlLCAiYVRhcmdldHMiOiBbMF0gfSwKCSAgICAJeyAiZm5SZW5kZXIiOiBmdW5jdGlvbiAob09iaikgCgkJCQl7IAkJCQkJCSAgICAgIAoJCQkJCSQoImlucHV0I3NlbGVjdEFsbFJlY2lwaWVudHMiKS5hdHRyKCJjaGVja2VkIiwgZmFsc2UpOwoJCQkJCQoJCQkJCWlmIChhU2VsZWN0ZWRSZWNpcGllbnRzW29PYmouYURhdGFbM11dID09ICJjaGVja2VkIikKCQkJCQkJcmV0dXJuICc8aW5wdXQgdHlwZT0iY2hlY2tib3giIHZhbHVlPSInK29PYmouYURhdGFbM10rJyIgbmFtZT0iaWRfJytvT2JqLmFEYXRhWzBdKyciIGNoZWNrZWQ9ImNoZWNrZWQiIC8+JzsKCQkJCQllbHNlCgkJCQkJCXJldHVybiAnPGlucHV0IHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iJytvT2JqLmFEYXRhWzNdKyciIG5hbWU9ImlkXycrb09iai5hRGF0YVswXSsnIiAvPic7CgkJCQl9LAoJCQkJImFUYXJnZXRzIjogWzBdCgkJCX0KCQldCgl9KTsgCQkKCgkkKCIjcGFnZV90YWJzICNtZXNzYWdlcyBhIikuY2xpY2soIGZ1bmN0aW9uKCkgewoJCW9UYWJsZVsibWVzc2FnZXNfYyJdLmZuU3RhbmRpbmdSZWRyYXcoKTsKCX0pOwkKCgkvLyBmaWx0ZXJzCQkKCSQoInRmb290IHRoOmVxKDEpIGlucHV0Iiwgb0xpc3RSZWNpcGllbnRzQWN0aXZlcykua2V5dXAoIGZ1bmN0aW9uKGV2ZW50KSB7IAoJCW9UYWJsZVsibWVzc2FnZXNfYyJdLmZuRmlsdGVyKHRoaXMudmFsdWUsIDEpOwoJfSk7CgoJJCgidGZvb3QgdGg6ZXEoMikgaW5wdXQiLCBvTGlzdFJlY2lwaWVudHNBY3RpdmVzKS5rZXl1cCggZnVuY3Rpb24oZXZlbnQpIHsgCgkJb1RhYmxlWyJtZXNzYWdlc19jIl0uZm5GaWx0ZXIodGhpcy52YWx1ZSwgMik7Cgl9KTsKCgkkKCJ0Zm9vdCB0aDplcSgzKSBpbnB1dCIsIG9MaXN0UmVjaXBpZW50c0FjdGl2ZXMpLmtleXVwKCBmdW5jdGlvbihldmVudCkgeyAKCQlvVGFibGVbIm1lc3NhZ2VzX2MiXS5mbkZpbHRlcih0aGlzLnZhbHVlLCAzKTsKCX0pOwoKCSQoInRmb290IHRoOmVxKDQpIHNlbGVjdCIsIG9MaXN0UmVjaXBpZW50c0FjdGl2ZXMpLmNoYW5nZSggZnVuY3Rpb24oZXZlbnQpIHsgCgkJb1RhYmxlWyJtZXNzYWdlc19jIl0uZm5GaWx0ZXIodGhpcy52YWx1ZSwgNCk7Cgl9KTsKCQkKCSQoInRmb290IGlucHV0Iiwgb0xpc3RSZWNpcGllbnRzQWN0aXZlcykuZWFjaCggZnVuY3Rpb24gKGkpIHsKCQl0aGlzLmluaXRWYWwgPSB0aGlzLnZhbHVlOwoJfSk7CgoJJCgidGZvb3Qgc2VsZWN0Iiwgb0xpc3RSZWNpcGllbnRzQWN0aXZlcykuZWFjaCggZnVuY3Rpb24gKGkpIHsKCQl0aGlzLmluaXRWYWwgPSB0aGlzLnZhbHVlOwoJCWlmICh0aGlzLnZhbHVlICE9IC0xKQoJCQkkKHRoaXMpLmFkZENsYXNzKCJzZWFyY2hfaW5pdCIpOwoJfSk7CgoJJCgidGZvb3QgaW5wdXQiLCBvTGlzdFJlY2lwaWVudHNBY3RpdmVzKS5mb2N1cyggZnVuY3Rpb24oZXZlbnQpIHsgCgkJaWYgKHRoaXMuY2xhc3NOYW1lID09ICJzZWFyY2hfaW5pdCIpCgkJCXt0aGlzLmNsYXNzTmFtZSA9ICIiOyB0aGlzLnZhbHVlID0gIiI7fQoJfSk7CgoJJCgidGZvb3QgaW5wdXQiLCBvTGlzdFJlY2lwaWVudHNBY3RpdmVzKS5ibHVyKCBmdW5jdGlvbihldmVudCkgeyAKCQlpZiAodGhpcy52YWx1ZSA9PSAiIikKCQkJe3RoaXMuY2xhc3NOYW1lID0gInNlYXJjaF9pbml0IjsgdGhpcy52YWx1ZSA9IHRoaXMuaW5pdFZhbDt9Cgl9KTsKfSk7CnsvbGl0ZXJhbH0KPC9zY3JpcHQ+]]></data>
	</file>
	<file>
	  <filename>/templates/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/templates/inscription_template_orig.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBpbnNjcmlwdGlvbl90ZW1wbGF0ZV9vcmlnLnRwbCAtLT4Ke2lmIGlzc2V0KCRvLm1zZ1R5cGUpfQogICB7aWYgJG8ubXNnVHlwZSBlcSAxfQogICA8dWwgY2xhc3M9IkVGQUdJU01TX2Vycm9yIj4KICAgICAge2lmICRvLm1zZ1RleHR8aXNfYXJyYXl9CiAgICAgIHtmb3JlYWNoIGtleT1rZXkgaXRlbT1tc2dUZXh0IGZyb209JG8ubXNnVGV4dH0KICAgICAgICAgPGxpPnskbXNnVGV4dH08L2xpPgogICAgICB7L2ZvcmVhY2h9CiAgICAgIHtlbHNlfQogICAgICA8bGk+eyRvLm1zZ1RleHR9PC9saT4KICAgICAgey9pZn0KICAgPC91bD4KICAgey9pZn0Key9pZn0KCntpZiAkby5zdGVwLnZhbHVlIGVxIDF9CjxkaXYgY2xhc3M9IkVGQUdJU21zX2luc2NyaXB0aW9uIj4KICAgPHA+eyRvLnN0ZXAuYWJvdXR9PC9wPgogICB7JG8uZm9ybS5zdGFydH0KICAgICAgeyRvLnJlY2lwaWVudF9pbmZvcm1hdGlvbnMuZmllbGRzZXR9CiAgICAgIDxkaXY+CiAgICAgICAgIDxwPnskby5yZWNpcGllbnRfbmFtZS5sYWJlbH0gKjwvcD4KICAgICAgICAgPHA+eyRvLnJlY2lwaWVudF9uYW1lLmZpZWxkfTwvcD4KICAgICAgPC9kaXY+CiAgICAgIDxkaXY+CiAgICAgICAgIDxwPnskby5yZWNpcGllbnRfZmlyc3RuYW1lLmxhYmVsfSAqPC9wPgogICAgICAgICA8cD57JG8ucmVjaXBpZW50X2ZpcnN0bmFtZS5maWVsZH08L3A+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2PgogICAgICAgICA8cD57JG8ucmVjaXBpZW50X21vYmlsLmxhYmVsfSAqPC9wPgogICAgICAgICA8cD57JG8ucmVjaXBpZW50X21vYmlsLmZpZWxkfTwvcD4KICAgICAgPC9kaXY+CiAgICAgIDxkaXY+CiAgICAgICAgIDxwPnskby5yZWNpcGllbnRfZW1haWwubGFiZWx9PC9wPgogICAgICAgICA8cD57JG8ucmVjaXBpZW50X2VtYWlsLmZpZWxkfTwvcD4KICAgICAgPC9kaXY+CiAgICAgIHskby5lbmQuZmllbGRzZXR9CiAgICAgIHskby5yZWNpcGllbnRfaW5zY3JpcHRpb24uZmllbGRzZXR9CiAgICAgIDxkaXY+CiAgICAgICAgIDxwPnskby5yZWNpcGllbnRfZ3JvdXAubGFiZWx9ICo8L3A+CiAgICAgICAgIDxwPnskby5yZWNpcGllbnRfZ3JvdXAuZmllbGR9PC9wPgogICAgICA8L2Rpdj4gICAgIAogICAgICB7JG8uZW5kLmZpZWxkc2V0fQogICAgICB7aWYgaXNzZXQoJG8ucmVjaXBpZW50X2NhcHRjaGEpfQogICAgICA8ZGl2IGNsYXNzPSJFRkFHSVNtc19jYXB0Y2hhIj4KICAgICAgICAgPHA+eyRvLnJlY2lwaWVudF9jYXB0Y2hhLmxhYmVsfSB7JG8ucmVjaXBpZW50X2NhcHRjaGEuZmllbGR9PHA+CiAgICAgICAgIDxwPnskby5yZWNpcGllbnRfY2FwdGNoYS5xdWVzdGlvbn0gPzwvcD4KICAgICAgPC9kaXY+CiAgICAgIHsvaWZ9CiAgICAgIDxkaXY+CiAgICAgICAgIHskby5zdGVwLmZpZWxkfQogICAgICAgICA8cD57JG8uc3VibWl0LmJ1dHRvbn08L3A+CiAgICAgIDwvZGl2PgogICB7JG8uZm9ybS5lbmR9CjwvZGl2Pgp7L2lmfQoKe2lmICRvLnN0ZXAudmFsdWUgZXEgMn0KPGRpdiBjbGFzcz0iRUZBR0lTbXNfaW5zY3JpcHRpb24iPgogICB7aWYgJG8ubXNnVHlwZSBlcSAyfQogICA8cCBjbGFzcz0iRUZBR0lTTVNfcmVzcG9uc2UiPnskby5tc2dUZXh0fTwvcD4KICAgey9pZn0KICAgPHA+eyRvLnN0ZXAuYWJvdXR9PC9wPgogICB7JG8uZm9ybS5zdGFydH0KICAgICAgPGRpdj4KICAgICAgICAgPHA+eyRvLnJlY2lwaWVudF9jb2RlX2NoZWNrLmxhYmVsfTwvcD4KICAgICAgICAgPHA+eyRvLnJlY2lwaWVudF9jb2RlX2NoZWNrLmZpZWxkfTwvcD4KICAgICAgPC9kaXY+CiAgICAgIDxkaXY+CiAgICAgICAgIHskby5pZHguZmllbGR9CiAgICAgICAgIHskby5tb2RpZmllZC5maWVsZH0KICAgICAgICAgeyRvLnN0ZXAuZmllbGR9CiAgICAgICAgIDxwPnskby5zdWJtaXQuYnV0dG9ufTwvcD4KICAgICAgPC9kaXY+CiAgIHskby5mb3JtLmVuZH0KPC9kaXY+CnsvaWZ9Cgp7aWYgJG8uc3RlcC52YWx1ZSBlcSAzfQoJe2lmICRvLm1zZ1R5cGUgZXEgMX0KCTxwIGNsYXNzPSJFRkFHSVNNU19lcnJvciI+eyRvLm1zZ1RleHR9PC9wPgoJe2Vsc2V9Cgk8cCBjbGFzcz0iRUZBR0lTTVNfdmFsaWQiPnskby5tc2dUZXh0fTwvcD4KCTxoMj57JG8ucmVjaXBpZW50X3N1bW1hcnl9PC9oMj4KCTxwPnskby5yZWNpcGllbnRfZmlyc3RuYW1lLmxhYmVsfSA6IHskby5yZWNpcGllbnRfZmlyc3RuYW1lLmZpZWxkfTwvcD4KCTxwPnskby5yZWNpcGllbnRfbmFtZS5sYWJlbH0gOiB7JG8ucmVjaXBpZW50X25hbWUuZmllbGR9PC9wPgoJPHA+eyRvLnJlY2lwaWVudF9tb2JpbC5sYWJlbH0gOiB7JG8ucmVjaXBpZW50X21vYmlsLmZpZWxkfTwvcD4KCXtpZiAkby5yZWNpcGllbnRfZW1haWwuZmllbGQgIT0gJyd9PHA+eyRvLnJlY2lwaWVudF9lbWFpbC5sYWJlbH0gOiB7JG8ucmVjaXBpZW50X2VtYWlsLmZpZWxkfTwvcD57L2lmfQoJPHA+eyRvLnJlY2lwaWVudF9ncm91cC5sYWJlbH0gOjwvcD4KCTx1bD4KCQl7Zm9yZWFjaCBrZXk9a2V5IGl0ZW09Z3JvdXAgZnJvbT0kby5yZWNpcGllbnRfZ3JvdXAuZmllbGR9PGxpPnskZ3JvdXB9PC9saT57L2ZvcmVhY2h9Cgk8L3VsPgoJey9pZn0Key9pZn0=]]></data>
	</file>
	<file>
	  <filename>/templates/message_box.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBtZXNzYWdlX2JveC50cGwgLS0+ICAgCiAgICAgCntpZiAkby5tc2dUeXBlIGVxIDF9ICAgICAKPGFzaWRlIGNsYXNzPSJtZXNzYWdlIHBhZ2VlcnJvcmNvbnRhaW5lciIgcm9sZT0ic3RhdHVzIj4KCXtpZiAhaXNzZXQoJG8uY2xvc2UpfTxzcGFuIGNsYXNzPSJjbG9zZS13YXJuaW5nIj48L3NwYW4+ey9pZn0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJe2lmICRvLm1zZ1RleHR8aXNfYXJyYXl9CgkJPHVsIGNsYXNzPSJwYWdlZXJyb3IiPgoJCXtmb3JlYWNoIGtleT1rZXkgaXRlbT1tc2dUZXh0IGZyb209JG8ubXNnVGV4dH0KCQkJPGxpPnskbXNnVGV4dH08L2xpPgoJCXsvZm9yZWFjaH0KCQk8L3VsPgoJCXtlbHNlfQoJCTxwIGNsYXNzPSJwYWdlZXJyb3IiPnskby5tc2dUZXh0fTwvcD4KCQl7L2lmfQoJPC9kaXY+CjwvYXNpZGU+CnsvaWZ9Cgp7aWYgJG8ubXNnVHlwZSBlcSAyIHx8ICRvLm1zZ1R5cGUgZXEgNiB8fCAkby5tc2dUeXBlIGVxIDd9Cjxhc2lkZSBjbGFzcz0ibWVzc2FnZSBwYWdlbWNvbnRhaW5lciIgcm9sZT0ic3RhdHVzIj4KCXtpZiAhaXNzZXQoJG8uY2xvc2UpfTxzcGFuIGNsYXNzPSJjbG9zZS13YXJuaW5nIj48L3NwYW4+ey9pZn0KCXtpZiAkby5tc2dUZXh0fGlzX2FycmF5fQoJPHVsPgoJe2ZvcmVhY2gga2V5PWtleSBpdGVtPW1zZ1RleHQgZnJvbT0kby5tc2dUZXh0fQoJCTxsaT57JG1zZ1RleHR9PC9saT4KCXsvZm9yZWFjaH0KCTwvdWw+Cgl7ZWxzZX0KCTxwPnskby5tc2dUZXh0fTwvcD4KCXsvaWZ9CjwvYXNpZGU+CnsvaWZ9Cgo8c2NyaXB0PntsaXRlcmFsfQooZnVuY3Rpb24oJCkgewp2YXIgb01lc3NhZ2UgPSAkKCJhc2lkZS5tZXNzYWdlIik7CnZhciBvQ2xvc2VXYXJuaW5nID0gJCgic3Bhbi5jbG9zZS13YXJuaW5nIik7CgpvTWVzc2FnZS5oaWRlKCkKCS5zbGlkZURvd24oNzUwLCBmdW5jdGlvbigpIHsKICAJCXdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgCQlvTWVzc2FnZS5zbGlkZVVwKCk7CiAgCX0sIDE1MDApOwp9KTsKCm9DbG9zZVdhcm5pbmcuY2xpY2soIGZ1bmN0aW9uKCkgewoJb01lc3NhZ2Uuc2xpZGVVcCgpOwp9KTsKfSkoalF1ZXJ5KTsKey9saXRlcmFsfTwvc2NyaXB0Pg==]]></data>
	</file>
</module>
